{"version":3,"file":"main.40a4eb25b6190b5d.js","mappings":"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8CACAA,sDACAA,sCACAA,0CACAA,iCACAA,uCACAA,gCACAA,oCACAA,sCACAA,kCACAA,kCACAA,kCACAA,0BACAA,qCACAA,sBACAA,oDACAA,YACAA,sCACAA,kBACAA,iCACAA,6BACAA,qDACAA,0DACAA,kCACAA,8CACAA,kCACAA,8BACAA,+BACAA,gCACAA,8BACAA,uCACAA,+BACAA,iCACAA,+BACAA,0CACAA,6BACAA,+BACAA,oBACAA,gBACAA,qDACAA,sBACAA,gBACAA,mCACAA,4BACAA,6CACAA,cACAA,QACAA,UACAA,wBACAA,kBACAA,mCACAA,2CACAA,yBACAA,kBACAA,mCACAA,wBACAA,8BACAA,sCACAA,+CACAA,yDACAA,8BACAA,+CACAA,kEArEUA,GAAZ,IAAYA,GAsEX,GCtEWC,GAoFX,aApFWA,UAAsB,KAChCA,cACAA,4CACAA,sBACAA,8CACAA,cACAA,8BACAA,0BACAA,gCACAA,4BACAA,sBACAA,sDACAA,wCACAA,kDACAA,gDACAA,oCACAA,gCACAA,gCACAA,kCACAA,4CACAA,4BACAA,wBACAA,wBACAA,gDACAA,uCACAA,8BACAA,wCACAA,kCACAA,4CACAA,oCACAA,gDACAA,kBACAA,wBACAA,gDACAA,cACAA,gCACAA,4BACAA,kCACAA,gDACAA,4DACAA,sCACAA,kCACAA,kDACAA,4BACAA,8CACAA,gDACAA,kCACAA,gDACAA,8BACAA,8BACAA,8BACAA,8BACAA,0CACAA,gCACAA,6BACAA,oCACAA,0CACAA,gDACAA,sCACAA,0DACAA,gDACAA,gBACAA,sBACAA,gCACAA,gCACAA,kCACAA,4CACAA,0CACAA,oBACAA,0CACAA,4BACAA,oCACAA,oCACAA,sDACAA,4BACAA,sCACAA,sCACAA,4CACAA,0CACAA,4BACAA,gDACAA,UACAA,wBACAA,kCAnFUA,GAAZ,IAAYA,GAoFX,GCpFM,MAAMC,GACX,25CCDK,IAAKC,GAGX,aAHWA,UAAiB,KAC3BA,gBACAA,oBAFUA,GAAZ,IAAYA,GAGX,GAEWC,GAGX,aAHWA,UAA2B,KACrCA,gBACAA,cAFUA,GAAZ,IAAYA,GAGX,GCRWC,GAKX,aALWA,UAAsB,KAChCA,sBACAA,4CACAA,4CACAA,gBAJUA,GAAZ,IAAYA,GAKX,GCGK,MAAgBC,WAAsBjL,GAO1ChqF,YAAsBk1F,EAAoBjL,GACxChqF,MAAMi1F,EAAc7pF,GAAI4+E,GAJ1B9pF,cAAgB,GAKdA,KAAK8Q,IAAMikF,EAAcjkF,KAAO,GAChC9Q,KAAKoD,KAAO2xF,EAAc3xF,MAAQ,GAClCpD,KAAKg1F,YAAcD,EAAcC,aAAe,GAGhDh1F,KAAKi1F,UAAYF,EAAcE,WAAaJ,aAExCE,EAAc3sD,WAChBpoC,KAAKooC,SAAS/T,EAAI0gE,EAAc3sD,SAAS/T,EACzCr0B,KAAKooC,SAAS8sD,EAAIH,EAAc3sD,SAAS8sD,GAG3Cl1F,KAAKm1F,SAAWJ,EAAcI,UAAY,EAC5C,CAMAC,gBAAiB,CAGjBC,mBAAoB,CAEpBC,eACE,MAAMC,EAAev1F,KAAK2qF,aAC1B,UAAWN,KAAUkL,EACflL,EAAO8C,gBAAkB9C,EAAO0E,uBAClC1E,EAAOn+E,WAAQ+B,EAGrB,CAEAunF,WAAWtN,GACT,MAAMuN,EAAmBz1F,KAAK6rF,sBACxB6J,EAAWxN,EAAMyN,mBAAmB31F,KAAK8Q,KAG/C,IAAI8xE,EAEJ,IAAKA,KAJLsF,EAAM0N,iBAAiB,QAINH,EACfvN,EAAM2N,gBAAgBH,EAAU9S,EAAU6S,EAAiB7S,IAG7DsF,EAAM4N,kBAAkB,OAC1B,CAEmB9J,sBAAsBpJ,GACvC,OAAOA,aAAoBqJ,IAA4B,mBAAbrJ,GAA2BA,aAAoBkS,EAC3F,CAEAiB,mBAAmBC,GACjB,OAAO,CACT,CAEAC,iBAAiBC,GACXA,GACFvqF,OAAOtE,KAAK6uF,GAAcvwF,QAAQ0wB,IAChC,MAAM2/D,EAASh2F,KAAKq2B,GACd3qB,EAAOwqF,EAAa7/D,GACtB2/D,GAAUtqF,IACZsqF,EAAO1I,WAAa5hF,EAAK4hF,WACzB0I,EAAOzI,WAAa7hF,EAAK6hF,aAIjC,CAEA4I,yBACE,OT4SE,SAAUC,GAAuC7K,GAGrD,OAFe5/E,OAAO+N,QAAQu1E,IAAsBrvD,KAAM83C,GAAeA,EAAM,GAAG5mE,MAAQy6E,GAAU,GAE7E4D,WACzB,CShTWiH,CAAuCp2F,KAAKurF,SACrD,CAEA8K,iBACEr2F,KAAKi1F,UAAYJ,YACnB,CAEIyB,uBACF,OAAO,CACT,CAGOvK,SACL,MAAMwK,EAAyB,GAC/B,IAAIh6E,EACJ,IAAKA,KAAOvc,KACNA,KAAKgsF,sBAAsBhsF,KAAKuc,MAMhCvc,KAAKuc,aAAgBguE,GACvBgM,EAAkBh6E,GAA4Bvc,KAAKuc,GAAMrR,GAChDlL,KAAKgsF,sBAAsBhsF,KAAKuc,MAGzCg6E,EAAkBh6E,GAAOvc,KAAKuc,KAIlC,OAAOg6E,CACT,EC9GI,MAAgBC,WAA4B1B,GAAlDj1F,kCAqBEG,uBAA8B,GAC9BA,wBAA+B,EAkJjC,CAhJWk0F,WAAWa,GAClB/0F,KAAKy2F,UAAY,IAAIlM,GAAmBwK,EAAc0B,UAAWz2F,KAAK8pF,UAAW9pF,MACjFA,KAAK02F,QAAU,IAAInM,GAAmBwK,EAAc2B,QAAS12F,KAAK8pF,UAAW9pF,MAC7EA,KAAK22F,iBAAmB,IAAIpM,GAAmBwK,EAAc4B,iBAAkB32F,KAAK8pF,UAAW9pF,MAE/FA,KAAK42F,UAAY,IAAIrM,GAAmBwK,EAAc6B,UAAW52F,KAAK8pF,UAAW9pF,MACjFA,KAAK62F,QAAU,IAAItM,GAAmBwK,EAAc8B,QAAS72F,KAAK8pF,UAAW9pF,MAC7EA,KAAK82F,cAAgB,IAAIvM,GAAmBwK,EAAc+B,cAAe92F,KAAK8pF,UAAW9pF,MACzFA,KAAK+2F,UAAY,IAAIxM,GAAmBwK,EAAcgC,UAAW/2F,KAAK8pF,UAAW9pF,MACjFA,KAAKg3F,kBAAoB,IAAIzM,GAAmBwK,EAAciC,kBAAmBh3F,KAAK8pF,UAAW9pF,MACjGA,KAAKi3F,UAAY,IAAI1M,GAAmBwK,EAAckC,UAAWj3F,KAAK8pF,UAAW9pF,MACjFA,KAAKk3F,eAAiB,IAAI3M,GAAmBwK,EAAcmC,eAAgBl3F,KAAK8pF,UAAW9pF,MAC3FA,KAAKm3F,WAAa,IAAI5M,GAAmBwK,EAAcoC,WAAYn3F,KAAK8pF,UAAW9pF,MACnFA,KAAKo3F,SAAW,IAAI7M,GAAmBwK,EAAcqC,SAAUp3F,KAAK8pF,UAAW9pF,MAC/EA,KAAKq3F,YAAc,IAAI9M,GAAmBwK,EAAcsC,YAAar3F,KAAK8pF,UAAW9pF,MAErFA,KAAKs3F,aAAe,IAAI/M,GAAmBwK,EAAcuC,aAAct3F,KAAK8pF,UAAW9pF,MACvFA,KAAKu3F,aAAe,IAAIhN,GAAmBwK,EAAcwC,aAAcv3F,KAAK8pF,UAAW9pF,MACvFA,KAAKw3F,kBAAoBzC,EAAcyC,mBAAqB,GAC5Dx3F,KAAKy3F,mBAAqB1C,EAAc0C,oBAAsB,EAChE,CAESpC,mBACHr1F,KAAK42F,UAAU9H,eACjB9uF,KAAK42F,UAAUnI,gBAAgB,GAE7BzuF,KAAK62F,QAAQ/H,eACf9uF,KAAK62F,QAAQpI,gBAAgB,GAE3BzuF,KAAK82F,cAAchI,eACrB9uF,KAAK82F,cAAcrI,gBAAgB,GAEjCzuF,KAAK+2F,UAAUjI,eACjB9uF,KAAK+2F,UAAUtI,gBAAgB,GAE7BzuF,KAAKg3F,kBAAkBlI,eACzB9uF,KAAKg3F,kBAAkBvI,gBAAgB,GAErCzuF,KAAKi3F,UAAUnI,eACjB9uF,KAAKi3F,UAAUxI,gBAAgB,GAG7BzuF,KAAKk3F,eAAepI,eACtB9uF,KAAKk3F,eAAezI,gBAAgB,GAGlCzuF,KAAKm3F,WAAWrI,eAClB9uF,KAAKm3F,WAAW1I,gBAAgB,GAG9BzuF,KAAKy2F,UAAU3H,eACjB9uF,KAAKy2F,UAAUhI,gBAAgB,GAE7BzuF,KAAK02F,QAAQ5H,eACf9uF,KAAK02F,QAAQjI,gBAAgB,GAE3BzuF,KAAK22F,iBAAiB7H,eACxB9uF,KAAK22F,iBAAiBlI,gBAAgB,IAOpCzuF,KAAKs3F,aAAaxI,eACpB9uF,KAAKs3F,aAAa7I,gBAAgB,EAAKf,cAAcgK,MAAMC,aAAaC,OAGtE53F,KAAKu3F,aAAazI,eACpB9uF,KAAKu3F,aAAa9I,gBAAgB,EAAKf,cAAcgK,MAAMG,cAAcC,OAE7E,CAES1C,gBACPp1F,KAAKy2F,UAAUjJ,YAAYgH,sBAC3Bx0F,KAAK02F,QAAQlJ,YAAYgH,sBACzBx0F,KAAK22F,iBAAiBnJ,YAAYgH,6BAClCx0F,KAAK42F,UAAUpJ,YAAYgH,sBAC3Bx0F,KAAK62F,QAAQrJ,YAAYgH,wBACzBx0F,KAAK82F,cAActJ,YAAYgH,wBAC/Bx0F,KAAK+2F,UAAUvJ,YAAYgH,wBAC3Bx0F,KAAKg3F,kBAAkBxJ,YAAYgH,wBACnCx0F,KAAKi3F,UAAUzJ,YAAYgH,sBAC3Bx0F,KAAKk3F,eAAe1J,YAAYgH,sBAChCx0F,KAAKm3F,WAAW3J,YAAYgH,sBAC5Bx0F,KAAKo3F,SAAS5J,YAAYgH,wBAC1Bx0F,KAAKq3F,YAAY7J,YAAYgH,wBAE7Bx0F,KAAKs3F,aAAa9J,YAAYgH,iBAC9Bx0F,KAAKu3F,aAAa/J,YAAYgH,mBAChC,CAESuD,6BACP/3F,KAAKy2F,UAAUzM,QAAQ,cACvBhqF,KAAK02F,QAAQ1M,QAAQ,WACrBhqF,KAAK22F,iBAAiB3M,QAAQ,qBAC9BhqF,KAAK42F,UAAU5M,QAAQ,cACvBhqF,KAAK62F,QAAQ7M,QAAQ,YACrBhqF,KAAK82F,cAAc9M,QAAQ,mBAC3BhqF,KAAK+2F,UAAU/M,QAAQ,cACvBhqF,KAAKg3F,kBAAkBhN,QAAQ,YAC/BhqF,KAAKi3F,UAAUjN,QAAQ,cACvBhqF,KAAKm3F,WAAWnN,QAAQ,eACxBhqF,KAAKo3F,SAASpN,QAAQyK,0BACtBz0F,KAAKq3F,YAAYrN,QAAQyK,iBACzBz0F,KAAKk3F,eAAelN,QAAQ,mBAE5BhqF,KAAKs3F,aAAatN,QAAQ,iBAC1BhqF,KAAKu3F,aAAavN,QAAQ,gBAC5B,CAESkC,UAAU8L,GACjBh4F,KAAKooC,SAAW,CAAE/T,GAAI2jE,EAAwB5vD,SAAS/T,EAAG6gE,GAAI8C,EAAwB5vD,SAAS8sD,GAC/Fl1F,KAAKy2F,UAAYz2F,KAAKorF,0BAA0B4M,EAAwBvB,WACxEz2F,KAAK02F,QAAU12F,KAAKorF,0BAA0B4M,EAAwBtB,SACtE12F,KAAK22F,iBAAmB32F,KAAKorF,0BAA0B4M,EAAwBrB,kBAC/E32F,KAAK42F,UAAY52F,KAAKorF,0BAA0B4M,EAAwBpB,WACxE52F,KAAK62F,QAAU72F,KAAKorF,0BAA0B4M,EAAwBnB,SACtE72F,KAAK82F,cAAgB92F,KAAKorF,0BAA0B4M,EAAwBlB,eAC5E92F,KAAK+2F,UAAY/2F,KAAKorF,0BAA0B4M,EAAwBjB,WACxE/2F,KAAKg3F,kBAAoBh3F,KAAKorF,0BAA0B4M,EAAwBhB,mBAChFh3F,KAAKi3F,UAAYj3F,KAAKorF,0BAA0B4M,EAAwBf,WACxEj3F,KAAKk3F,eAAiBl3F,KAAKorF,0BAA0B4M,EAAwBd,gBAC7El3F,KAAKm3F,WAAan3F,KAAKorF,0BAA0B4M,EAAwBb,YACzEn3F,KAAKo3F,SAAWp3F,KAAKorF,0BAA0B4M,EAAwBZ,UACvEp3F,KAAKq3F,YAAcr3F,KAAKorF,0BAA0B4M,EAAwBX,aAC1Er3F,KAAKs3F,aAAet3F,KAAKorF,0BAA0B4M,EAAwBV,cAC3Et3F,KAAKu3F,aAAev3F,KAAKorF,0BAA0B4M,EAAwBT,cAC3Ev3F,KAAKo1F,eACP,CAQSE,eACPx1F,MAAMw1F,eACNt1F,KAAKs3F,aAAaprF,WAAQ+B,EAC1BjO,KAAKg3F,kBAAkB9qF,WAAQ+B,EAC/BjO,KAAKi3F,UAAU/qF,WAAQ+B,EACvBjO,KAAKm3F,WAAWjrF,WAAQ+B,CAC1B,EC/KK,IAAKgqF,GAKX,aALWA,UAAS,KACnBA,gBACAA,kBACAA,kBACAA,gBAJUA,GAAZ,IAAYA,GAKX,GCDK,MAAgBC,WAA8B1B,GAazCtC,WAAWa,GAClBj1F,MAAMo0F,WAAWa,GACjB/0F,KAAKm4F,aAAe,IAAI5N,GAAmBwK,EAAcoD,cAAgB,GAAIn4F,KAAK8pF,UAAW9pF,MAC7FA,KAAKo4F,YAAc,IAAI7N,GAAmBwK,EAAcqD,aAAe,GAAIp4F,KAAK8pF,UAAW9pF,MAC3FA,KAAKq4F,aAAe,IAAI9N,GAAmBwK,EAAcsD,cAAgB,GAAIr4F,KAAK8pF,UAAW9pF,MAC7FA,KAAKs4F,YAAc,IAAI/N,GAAmBwK,EAAcuD,aAAe,GAAIt4F,KAAK8pF,UAAW9pF,MAC3FA,KAAKu4F,aAAe,IAAIhO,GAAmBwK,EAAcwD,cAAgB,GAAIv4F,KAAK8pF,UAAW9pF,MAC7FA,KAAKw4F,YAAc,IAAIjO,GAAmBwK,EAAcyD,aAAe,GAAIx4F,KAAK8pF,UAAW9pF,MAC3FA,KAAKy4F,YAAc,IAAIlO,GAAmBwK,EAAc0D,aAAe,GAAIz4F,KAAK8pF,UAAW9pF,MAC3FA,KAAK04F,WAAa,IAAInO,GAAmBwK,EAAc2D,YAAc,GAAI14F,KAAK8pF,UAAW9pF,MACzFA,KAAK24F,sBAAwB5D,EAAc4D,oBAC3C34F,KAAK44F,iBAAmB7D,EAAc6D,kBAAoB,EAC5D,CAESxD,gBACPt1F,MAAMs1F,gBACNp1F,KAAKm4F,aAAa3K,YAAY,gBAC9BxtF,KAAKo4F,YAAY5K,YAAY,gBAC7BxtF,KAAKq4F,aAAa7K,YAAY,gBAC9BxtF,KAAKs4F,YAAY9K,YAAY,gBAC7BxtF,KAAKu4F,aAAa/K,YAAY,gBAC9BxtF,KAAKw4F,YAAYhL,YAAY,gBAC7BxtF,KAAKy4F,YAAYjL,YAAY,gBAC7BxtF,KAAK04F,WAAWlL,YAAY,eAC9B,CAESuK,6BACPj4F,MAAMi4F,6BAEN/3F,KAAKm4F,aAAanO,QAAQ,mBAC1BhqF,KAAKq4F,aAAarO,QAAQ,mBAC1BhqF,KAAKu4F,aAAavO,QAAQ,mBAC1BhqF,KAAKy4F,YAAYzO,QAAQ,kBAEzBhqF,KAAKo4F,YAAYpO,QAAQ,kBACzBhqF,KAAKs4F,YAAYtO,QAAQ,kBACzBhqF,KAAKw4F,YAAYxO,QAAQ,kBACzBhqF,KAAK04F,WAAW1O,QAAQ,gBAC1B,CAESkC,UAAU2M,GACjB/4F,MAAMosF,UAAU2M,GAChB74F,KAAKm4F,aAAen4F,KAAKorF,0BAA0ByN,EAAGV,cACtDn4F,KAAKo4F,YAAcp4F,KAAKorF,0BAA0ByN,EAAGT,aACrDp4F,KAAKq4F,aAAer4F,KAAKorF,0BAA0ByN,EAAGR,cACtDr4F,KAAKs4F,YAAct4F,KAAKorF,0BAA0ByN,EAAGP,aACrDt4F,KAAKu4F,aAAev4F,KAAKorF,0BAA0ByN,EAAGN,cACtDv4F,KAAKw4F,YAAcx4F,KAAKorF,0BAA0ByN,EAAGL,aACrDx4F,KAAKy4F,YAAcz4F,KAAKorF,0BAA0ByN,EAAGJ,aACrDz4F,KAAK04F,WAAa14F,KAAKorF,0BAA0ByN,EAAGH,WACtD,CAESpD,eACPx1F,MAAMw1F,eACNt1F,KAAKm4F,aAAajsF,MAAQ,KAC1BlM,KAAKo4F,YAAYlsF,MAAQ,KACzBlM,KAAKq4F,aAAansF,MAAQ,KAC1BlM,KAAKs4F,YAAYpsF,MAAQ,KACzBlM,KAAKu4F,aAAarsF,MAAQ,KAC1BlM,KAAKw4F,YAAYtsF,MAAQ,KACzBlM,KAAKy4F,YAAYvsF,MAAQ,KACzBlM,KAAK04F,WAAWxsF,MAAQ,IAC1B,CAEA4sF,2BAA2BC,GACzB,OAAQA,GACN,KAAKd,YACH,OAAOj4F,KAAKm4F,aACd,KAAKF,YACH,OAAOj4F,KAAKq4F,aACd,KAAKJ,YACH,OAAOj4F,KAAKu4F,aACd,KAAKN,WACH,OAAOj4F,KAAKy4F,YAElB,CAEAO,0BAA0BD,GACxB,OAAQA,GACN,KAAKd,YACH,OAAOj4F,KAAKo4F,YACd,KAAKH,YACH,OAAOj4F,KAAKs4F,YACd,KAAKL,YACH,OAAOj4F,KAAKw4F,YACd,KAAKP,WACH,OAAOj4F,KAAK04F,WAElB,CAEStsC,cAAc+9B,GAErB,OADgBrqF,MAAMssD,cAAc+9B,IAClBA,EAAQyO,mBAAqB54F,KAAK44F,gBACtD,ECxGI,MAAgBK,WAAoCf,GAS/ChE,WAAWa,GAClBj1F,MAAMo0F,WAAWa,GAEjB/0F,KAAKk5F,WAAa,IAAI3O,GAAmBwK,EAAcmE,YAAc,GAAIl5F,KAAK8pF,UAAW9pF,MACzFA,KAAKm5F,SAAW,IAAI5O,GAAmBwK,EAAcoE,UAAY,GAAIn5F,KAAK8pF,UAAW9pF,MACrFA,KAAKo5F,sBAAwB,IAAI7O,GAC/BwK,EAAcqE,uBAAyB,GACvCp5F,KAAK8pF,UACL9pF,MAEFA,KAAKq5F,oBAAsB,IAAI9O,GAAmBwK,EAAcsE,qBAAuB,GAAIr5F,KAAK8pF,UAAW9pF,MAC3GA,KAAKs5F,oBAAsBvE,EAAcuE,kBACzCt5F,KAAKu5F,eAAiBxE,EAAcwE,gBAAkB,GACtDv5F,KAAKw5F,cAAgBzE,EAAcyE,eAAiB,EACtD,CAESlE,eACPx1F,MAAMw1F,eACNt1F,KAAKk5F,WAAWhtF,WAAQ+B,EACxBjO,KAAKm5F,SAASjtF,WAAQ+B,EAElBjO,KAAKq5F,oBAAoBtK,uBAC3B/uF,KAAKq5F,oBAAoBlM,eAAiBd,aAC1CrsF,KAAKq1F,oBAGHr1F,KAAKo5F,sBAAsBrK,uBAC7B/uF,KAAKo5F,sBAAsBjM,eAAiBd,aAC5CrsF,KAAKq1F,mBAET,CAESD,gBACPt1F,MAAMs1F,gBAENp1F,KAAKk5F,WAAW1L,YAAYgH,eAC5Bx0F,KAAKm5F,SAAS3L,YAAYgH,kBAC1Bx0F,KAAKo5F,sBAAsB5L,YAAYgH,8BACvCx0F,KAAKq5F,oBAAoB7L,YAAYgH,qBACvC,CAESa,mBACPv1F,MAAMu1F,mBACFr1F,KAAKo5F,sBAAsBtK,eAC7B9uF,KAAKo5F,sBAAsB3K,gBAAgB,MAAQf,cAAcgK,MAAM+B,uBAAuBC,QAE5F15F,KAAKq5F,oBAAoBvK,eAC3B9uF,KAAKq5F,oBAAoB5K,gBAAgB,OAAQf,cAAcgK,MAAMiC,gBAAgBC,QAEzF,CAES1N,UAAU2M,GACjB/4F,MAAMosF,UAAU2M,GAEhB74F,KAAKk5F,WAAal5F,KAAKorF,0BAA0ByN,EAAGK,YACpDl5F,KAAKm5F,SAAWn5F,KAAKorF,0BAA0ByN,EAAGM,UAClDn5F,KAAKo5F,sBAAwBp5F,KAAKorF,0BAA0ByN,EAAGO,uBAC/Dp5F,KAAKq5F,oBAAsBr5F,KAAKorF,0BAA0ByN,EAAGQ,oBAC/D,CAESjtC,cAAc+9B,GAErB,OADgBrqF,MAAMssD,cAAc+9B,IAClBA,EAAQoP,iBAAmBv5F,KAAKu5F,cACpD,EC3DI,MAAOM,WACHZ,GAgCRp5F,YAAYk1F,EAAoBjL,GAC9BhqF,MAAMi1F,EAAejL,GA9BvB9pF,cAAWivF,yBAmBXjvF,aAAqC,GAIrCA,qBAAiB,EACjBA,uBAAoB,GAOlBA,KAAKk0F,WAAWa,GAChB/0F,KAAK+3F,4BACP,CAES7D,WAAWa,GA+BlB,GA9BAj1F,MAAMo0F,WAAWa,GACjB/0F,KAAK85F,WAAa/E,EAAc+E,YAAclF,UAC9C50F,KAAK+5F,WAAa,IAAIxP,GAAmBwK,EAAcgF,WAAY/5F,KAAK8pF,UAAW9pF,MACnFA,KAAKg6F,aAAe,IAAIzP,GAAmBwK,EAAciF,aAAch6F,KAAK8pF,UAAW9pF,MACvFA,KAAKi6F,aAAe,IAAI1P,GAAmBwK,EAAckF,aAAcj6F,KAAK8pF,UAAW9pF,MACvFA,KAAKk6F,kBAAoB,IAAI3P,GAAmBwK,EAAcmF,kBAAmBl6F,KAAK8pF,UAAW9pF,MACjGA,KAAKm6F,gBAAkB,IAAI5P,GAAmBwK,EAAcoF,gBAAiBn6F,KAAK8pF,UAAW9pF,MAC7FA,KAAKo6F,kBAAoB,IAAI7P,GAAmBwK,EAAcqF,kBAAmBp6F,KAAK8pF,UAAW9pF,MACjGA,KAAKq6F,qBAAuB,IAAI9P,GAAmBwK,EAAcsF,qBAAsBr6F,KAAK8pF,UAAW9pF,MACvGA,KAAKo0F,gBAAkBW,EAAcX,iBAAmB,GACxDp0F,KAAKs6F,gBAAkB,IAAI/P,GAAmBwK,EAAcuF,gBAAiBt6F,KAAK8pF,UAAW9pF,MAE7FA,KAAKu6F,oBAAsB,IAAIhQ,GAAmBwK,EAAcwF,qBAAuB,GAAIv6F,KAAK8pF,UAAW9pF,MAC3GA,KAAKw6F,WAAa,IAAIjQ,GAAmBwK,EAAcyF,YAAc,GAAIx6F,KAAK8pF,UAAW9pF,MACzFA,KAAKy6F,uBAAyB,IAAIlQ,GAChCwK,EAAc0F,wBAA0B,GACxCz6F,KAAK8pF,UACL9pF,MAEFA,KAAK06F,cAAgB,IAAInQ,GAAmBwK,EAAc2F,eAAiB,GAAI16F,KAAK8pF,UAAW9pF,MAC/FA,KAAK26F,yBAA2B,IAAIpQ,GAClCwK,EAAc4F,0BAA4B,GAC1C36F,KAAK8pF,UACL9pF,MAEFA,KAAK46F,gBAAkB,IAAIrQ,GAAmBwK,EAAc6F,iBAAmB,GAAI56F,KAAK8pF,UAAW9pF,MACnGA,KAAK66F,YAAc,IAAItQ,GAAmBwK,EAAc8F,aAAe,GAAI76F,KAAK8pF,UAAW9pF,MAE3FA,KAAK86F,UAAY/F,EAAc+F,WAAanG,WAExCI,EAAcp3D,mBAAmB7jB,MACnC,QAAStV,EAAI,EAAGA,EAAIuwF,EAAcp3D,QAAQl5B,OAAQD,IAEhDxE,KAAK29B,QAAQ/0B,KAAK,IAAIorF,GADZe,EAAcp3D,QAAQn5B,GACiBxE,KAAK8pF,UAAW9pF,OAIrEA,KAAK+6F,kBAAoBhG,EAAcgG,mBAAqBrG,GAC5D10F,KAAKg7F,iBAAmBjG,EAAciG,eAEtCh7F,KAAKi7F,iBACP,CAEAA,kBACEj7F,KAAK4zF,YAAc,IAAIF,GACvB1zF,KAAK4zF,YAAYD,cAAc,WAAY3zF,KAAKo3F,SAClD,CAES5L,mBACP1rF,MAAM0rF,mBACNxrF,KAAK29B,QAAQh4B,QAASg7B,IACpBA,EAAO6qD,kBAAgB,EAE3B,CAEA0P,mBACE,MAAO,CACLl7F,KAAKs6F,gBACLt6F,KAAKg6F,aACLh6F,KAAK66F,YACL76F,KAAKu3F,aACLv3F,KAAKs3F,aACLt3F,KAAKi3F,UACLj3F,KAAKm3F,WACLn3F,KAAKi6F,aACLj6F,KAAKw6F,WACLx6F,KAAKu6F,oBACLv6F,KAAKy6F,uBACLz6F,KAAKk6F,kBACLl6F,KAAK46F,gBACL56F,KAAK26F,yBAET,CAEAQ,wCACE,MAAO,CACLn7F,KAAKm6F,gBACLn6F,KAAKu3F,aACLv3F,KAAK42F,UACL52F,KAAK62F,QACL72F,KAAKk3F,eACLl3F,KAAKi6F,aACLj6F,KAAKw6F,WACLx6F,KAAKu6F,oBACLv6F,KAAK06F,cACL16F,KAAKy6F,uBACLz6F,KAAKk6F,kBACLl6F,KAAK46F,gBACL56F,KAAK26F,yBAET,CAESrF,eAAgB,CAEN3J,mBAAmBhb,GACpC,OAAO7wE,MAAM6rF,mBAAmBhb,IAAkC,YAAjBA,CACnD,CAES8a,gBAAgBtB,GACvBrqF,MAAM2rF,gBAAgBtB,GACtBnqF,KAAK29B,QAAQh4B,QAAQ,CAACg7B,EAAiCtvB,KACrDsvB,EAAO0zD,MAAM5I,gBAAgBtB,EAAQxsD,QAAQtsB,GAAOgjF,OACpD1zD,EAAO2zD,MAAM7I,gBAAgBtB,EAAQxsD,QAAQtsB,GAAOijF,OACpD3zD,EAAOyzD,gBAAkBjK,EAAQxsD,QAAQtsB,GAAO+iF,iBAEpD,CAESxJ,8BACP9qF,MAAM8qF,6BACR,CAESmN,6BACPj4F,MAAMi4F,6BACN/3F,KAAK+5F,WAAW/P,QAAQ,eACxBhqF,KAAKs6F,gBAAgBtQ,QAAQ,SAC7BhqF,KAAKq6F,qBAAqBrQ,QAAQ,0BAClChqF,KAAKg6F,aAAahQ,QAAQ,iBAC1BhqF,KAAKi6F,aAAajQ,QAAQ,kBAC1BhqF,KAAKm6F,gBAAgBnQ,QAAQ,qBAC7BhqF,KAAKk6F,kBAAkBlQ,QAAQ,wBAC/BhqF,KAAKo3F,SAASpN,QAAQyK,aACtBz0F,KAAKo6F,kBAAkBpQ,QAAQyK,uBAC/Bz0F,KAAK66F,YAAY7Q,QAAQ,gBACzBhqF,KAAK06F,cAAc1Q,QAAQyK,mBAC3Bz0F,KAAKu3F,aAAavN,QAAQ,iBAC1BhqF,KAAKs3F,aAAatN,QAAQ,iBAC1BhqF,KAAKi3F,UAAUjN,QAAQ,cACvBhqF,KAAKm3F,WAAWnN,QAAQ,eACxBhqF,KAAKw6F,WAAWxQ,QAAQ,eACxBhqF,KAAKu6F,oBAAoBvQ,QAAQ,yBACjChqF,KAAKy6F,uBAAuBzQ,QAAQ,4BACpChqF,KAAK46F,gBAAgB5Q,QAAQ,qBAC7BhqF,KAAK26F,yBAAyB3Q,QAAQ,8BACxC,CAESqL,mBACHr1F,KAAK+5F,WAAWjL,eAClB9uF,KAAK+5F,WAAWtL,gBAAgB,IAG9BzuF,KAAKk6F,kBAAkBpL,eACzB9uF,KAAKk6F,kBAAkBzL,qBAAgBxgF,EAAWy/E,cAAcgK,MAAMiC,gBAAgByB,OAGpFp7F,KAAKy6F,uBAAuB3L,eAC9B9uF,KAAKy6F,uBAAuBhM,gBAAgB,KAAMf,cAAcgK,MAAM2D,mBAAmBC,cAGvFt7F,KAAK06F,cAAc5L,eACrB9uF,KAAK06F,cAAcjM,gBAAgB,KAAMf,cAAcgK,MAAM6D,uBAAuBC,WAGlFx7F,KAAKu6F,oBAAoBzL,eAC3B9uF,KAAKu6F,oBAAoB9L,gBAAgB,GAAKf,cAAcgK,MAAM+D,cAAcC,QAG9E17F,KAAKw6F,WAAW1L,eAClB9uF,KAAKw6F,WAAW/L,gBAAgB,GAAIf,cAAcgK,MAAMiE,uBAAuBC,YAG7E57F,KAAK26F,yBAAyB7L,eAChC9uF,KAAK26F,yBAAyBlM,gBAAgB,OAG5CzuF,KAAK46F,gBAAgB9L,eACvB9uF,KAAK46F,gBAAgBnM,gBAAgB,MAGnCzuF,KAAKq6F,qBAAqBvL,eAC5B9uF,KAAKq6F,qBAAqB5L,gBAAgB,EAAKf,cAAcgK,MAAMC,aAAaC,OAGlF93F,MAAMu1F,kBACR,CAESD,gBACPt1F,MAAMs1F,gBACNp1F,KAAK+5F,WAAWvM,YAAYgH,YAC5Bx0F,KAAKk6F,kBAAkB1M,YAAYgH,sBACnCx0F,KAAKm6F,gBAAgB3M,YAAYgH,8BACjCx0F,KAAKi6F,aAAazM,YAAYgH,8BAC9Bx0F,KAAKq6F,qBAAqB7M,YAAYgH,iBACtCx0F,KAAKg6F,aAAaxM,YAAYgH,wBAC9Bx0F,KAAKs6F,gBAAgB9M,YAAY,WACjCxtF,KAAKo6F,kBAAkB5M,YAAYgH,iBACnCx0F,KAAKu6F,oBAAoB/M,YAAYgH,oBACrCx0F,KAAKw6F,WAAWhN,YAAYgH,6BAC5Bx0F,KAAKy6F,uBAAuBjN,YAAYgH,2BACxCx0F,KAAK06F,cAAclN,YAAYgH,+BAC/Bx0F,KAAK66F,YAAYrN,YAAYgH,iBAC7Bx0F,KAAK46F,gBAAgBpN,YAAYgH,wBACjCx0F,KAAK26F,yBAAyBnN,YAAYgH,mBAC5C,CAES/J,wBACP3qF,MAAM2qF,wBACNzqF,KAAK29B,QAAQh4B,QAAQg7B,IACnBA,EAAO2zD,MAAMpoF,MAAQy0B,EAAO2zD,MAAM7J,wBAClC9pD,EAAO0zD,MAAMnoF,MAAQy0B,EAAO0zD,MAAM5J,uBAAqB,EAE3D,CAESr+B,cAAc+9B,GACrB,OAAOrqF,MAAMssD,cAAc+9B,EAC7B,CAUSc,+BACP,OAAOnrF,MAAMmrF,8BACf,CAESf,aAAaC,GACpBnqF,KAAKoqF,gCAAgCD,EACvC,CAEA0R,6BACE,OAAO,IAAItR,GAAmBvqF,KAAKu3F,aAAcv3F,KAAK8pF,UAAW9pF,KACnE,CAEA87F,yBACE,MAAMjnF,EAAS,CAAC7U,KAAK+5F,WAAY/5F,KAAKu3F,aAAcv3F,KAAKg6F,aAAch6F,KAAK42F,UAAW52F,KAAK62F,SAC5F,OAAI72F,KAAK86F,YAAcnG,YACrB9/E,EAAOjM,KAAK5I,KAAKi6F,aAAcj6F,KAAKm6F,gBAAiBn6F,KAAKk6F,mBAErDrlF,CACT,CAEAknF,qBACE,MAAMC,EAAch8F,KAAK8pF,UAAUmS,4BAA4BtyF,GACtDA,EAAEuyF,wBAA0Bl8F,KAAKkL,IACvC,GAEH,OAAO8wF,GAAeh8F,KAAK4zF,YAAYL,wBAAwB,WAAYyI,EAAYG,mBAAmBjwF,MAC5G,CAEAonF,yBACE,OAAOtzF,KAAK4zF,YAAYG,2BAC1B,CAEAqI,WAAWjI,GACT,OAAOn0F,KAAK29B,QAAQiC,KAAK4O,GAAKA,EAAE2lD,kBAAoBA,EACtD,CAEAkI,UAAUlI,GACR,MAAMxzD,EAAS,IAAIqzD,GAAwB,CAAEG,mBAAmBn0F,KAAK8pF,UAAW9pF,MAChFA,KAAK29B,QAAQ/0B,KAAK+3B,GAClB3gC,KAAK8pF,UAAUwB,WAAW3qD,EAAO2zD,OACjCt0F,KAAK8pF,UAAUwB,WAAW3qD,EAAO0zD,MACnC,CAEAiI,aAAaC,GACX,MAAMlrF,EAAQrR,KAAK29B,QAAQ6+D,UAAU77D,GAC5BA,EAAOwzD,kBAAoBoI,GAGpC,IAAc,IAAVlrF,EACF,OAEF,MAAMsvB,EAAS3gC,KAAK29B,QAAQtsB,GAC5BrR,KAAK8pF,UAAU2S,gBAAgB97D,EAAO2zD,OACtCt0F,KAAK8pF,UAAU2S,gBAAgB97D,EAAO0zD,OACtCr0F,KAAK29B,QAAQxsB,OAAOE,EAAO,EAC7B,CAEAqrF,oCACE,MAAO,CAAC18F,KAAKo3F,SACf,CAESlL,UAAUyQ,GACjB78F,MAAMosF,UAAUyQ,GAChB38F,KAAKk6F,kBAAoBl6F,KAAKorF,0BAA0BuR,EAAIzC,mBAC5Dl6F,KAAKm6F,gBAAkBn6F,KAAKorF,0BAA0BuR,EAAIxC,iBAC1Dn6F,KAAK66F,YAAc76F,KAAKorF,0BAA0BuR,EAAI9B,aACtD76F,KAAKi6F,aAAej6F,KAAKorF,0BAA0BuR,EAAI1C,cACvDj6F,KAAKq6F,qBAAuBr6F,KAAKorF,0BAA0BuR,EAAItC,sBAC/Dr6F,KAAKs6F,gBAAkBt6F,KAAKorF,0BAA0BuR,EAAIrC,iBAC1Dt6F,KAAKo6F,kBAAoBp6F,KAAKorF,0BAA0BuR,EAAIvC,mBAC5Dp6F,KAAKw6F,WAAax6F,KAAKorF,0BAA0BuR,EAAInC,YACrDx6F,KAAKu6F,oBAAsBv6F,KAAKorF,0BAA0BuR,EAAIpC,qBAC9Dv6F,KAAK46F,gBAAkB56F,KAAKorF,0BAA0BuR,EAAI/B,iBAC1D56F,KAAK26F,yBAA2B36F,KAAKorF,0BAA0BuR,EAAIhC,0BACnE36F,KAAK06F,cAAgB16F,KAAKorF,0BAA0BuR,EAAIjC,eACxD16F,KAAKy6F,uBAAyBz6F,KAAKorF,0BAA0BuR,EAAIlC,wBACjEz6F,KAAK29B,QAAQh4B,QAAQ,CAACg7B,EAAiCtvB,KACrDsvB,EAAOurD,UAAUyQ,EAAIh/D,QAAQtsB,GAAM,GAErCrR,KAAKo1F,gBACLp1F,KAAKq1F,mBACLr1F,KAAKi7F,iBACP,ECrVI,MAAO2B,WACHpG,GAcR32F,YAAYk1F,EAAoBjL,GAC9BhqF,MAAMi1F,EAAejL,GAZvB9pF,cAAWivF,qBAaTjvF,KAAKk0F,WAAWa,GAChB/0F,KAAK+3F,4BACP,CAESvM,mBACP1rF,MAAM0rF,kBACR,CAESC,gBAAgBtB,GACvBrqF,MAAM2rF,gBAAgBtB,GAEtBnqF,KAAK68F,cADM1S,EACa0S,aAC1B,CAEmBlR,mBAAmBhb,GACpC,OAAO7wE,MAAM6rF,mBAAmBhb,EAClC,CAEAuqB,mBACE,MAAO,CAACl7F,KAAKm8F,mBAAoBn8F,KAAKs0F,MAAOt0F,KAAK88F,qBAAsB98F,KAAKu3F,aAAcv3F,KAAKs3F,aAClG,CAEAoF,oCACE,MAAO,CAAC18F,KAAKm8F,mBACf,CAES7G,eACPx1F,MAAMw1F,eACNt1F,KAAKs3F,aAAaprF,MAAQ,KAC1BlM,KAAKg3F,kBAAkB9qF,MAAQ,KAC/BlM,KAAK62F,QAAQ3qF,MAAQ,KACrBlM,KAAKi3F,UAAU/qF,MAAQ,KACvBlM,KAAKs0F,MAAMpoF,MAAQ,KACflM,KAAK68F,gBACP78F,KAAKm8F,mBAAmBjwF,MAAQ,KAEpC,CAESgoF,WAAWa,GAClBj1F,MAAMo0F,WAAWa,GAIf/0F,KAAK68F,qBAFI9H,EAAc8H,cAAkB,OAIlB9H,EAAc8H,cAGvC78F,KAAKm8F,mBAAqB,IAAI5R,GAAmBwK,EAAcoH,mBAAoBn8F,KAAK8pF,UAAW9pF,MACnGA,KAAKs0F,MAAQ,IAAI/J,GAAmBwK,EAAcT,MAAOt0F,KAAK8pF,UAAW9pF,MACzEA,KAAK88F,qBAAuB,IAAIvS,GAAmBwK,EAAc+H,qBAAsB98F,KAAK8pF,UAAW9pF,MAEvGA,KAAKo0F,gBAAkBW,EAAcX,iBAAmB,GACxDp0F,KAAKi7F,iBACP,CAES7F,gBACPt1F,MAAMs1F,gBACNp1F,KAAKm8F,mBAAmB3O,YAAY,sBACpCxtF,KAAKs0F,MAAM9G,YAAY,qBACvBxtF,KAAK88F,qBAAqBtP,YAAY,UACxC,CAESuK,6BACPj4F,MAAMi4F,6BACN/3F,KAAKm8F,mBAAmBnS,QAAQ,uBAChChqF,KAAKu3F,aAAavN,QAAQ,iBAC1BhqF,KAAKs3F,aAAatN,QAAQ,iBAC1BhqF,KAAKs0F,MAAMtK,QAAQ,iBACnBhqF,KAAK88F,qBAAqB9S,QAAQ,2BAClChqF,KAAKo3F,SAASpN,QAAQ,oBACxB,CAESY,8BACP9qF,MAAM8qF,6BACR,CAESyK,mBACPv1F,MAAMu1F,mBAKFr1F,KAAKu3F,aAAazI,eACpB9uF,KAAKu3F,aAAa9I,gBAAgB,GAAIf,cAAcgK,MAAMG,cAAcC,QAEtE93F,KAAK88F,qBAAqBhO,eAC5B9uF,KAAK88F,qBAAqBrO,gBAAgB,EAE9C,CAEShE,wBACP3qF,MAAM2qF,uBACR,CAESr+B,cAAc+9B,GACrB,OAAOrqF,MAAMssD,cAAc+9B,EAC7B,CAESc,+BACP,OAAOnrF,MAAMmrF,8BACf,CAEA4Q,6BACE,OAAO,IAAItR,GAAmBvqF,KAAKu3F,aAAcv3F,KAAK8pF,UAAW9pF,KACnE,CAGA+8F,eAAeF,GACb78F,KAAK68F,cAAgBA,EAEjB78F,KAAK68F,gBACP78F,KAAKm8F,mBAAmBjwF,MAAQ,KAEpC,CAGA4vF,yBACE,MAAO,CAAC97F,KAAK88F,qBAAsB98F,KAAKu3F,aAC1C,CAESrL,UAAU8L,GACjBl4F,MAAMosF,UAAU8L,GAEhBh4F,KAAK68F,cAAgB7E,EAAwB6E,cAE7C78F,KAAKm8F,mBAAqBn8F,KAAKorF,0BAA0B4M,EAAwBmE,oBACjFn8F,KAAKs0F,MAAQt0F,KAAKorF,0BAA0B4M,EAAwB1D,OACpEt0F,KAAK88F,qBAAuB98F,KAAKorF,0BAA0B4M,EAAwB8E,sBAEnF98F,KAAKo1F,gBACLp1F,KAAKq1F,mBACLr1F,KAAKi7F,iBACP,CAESlF,mBAAmBC,GAC1B,IAAI1kF,EAASxR,MAAMi2F,mBAAmBC,GACtC,OAAIh2F,KAAK68F,gBACPvrF,EAASA,GAAU0kF,IAAWh2F,KAAKm8F,oBAErC7qF,EAASA,GAAU0kF,IAAWh2F,KAAKo3F,UAAYpB,IAAWh2F,KAAKq3F,aAAer3F,KAAKs0F,QAAU0B,EACtF1kF,CACT,CAEA6pF,wCACE,MAAO,CAACn7F,KAAK88F,qBAAsB98F,KAAKm8F,mBAAoBn8F,KAAKu3F,aACnE,CAEAjE,yBACE,OAAOtzF,KAAK4zF,YAAYG,2BAC1B,CAEAgI,qBACE,OAAO,CACT,CAEAd,kBACEj7F,KAAK4zF,YAAc,IAAIF,GACvB1zF,KAAK4zF,YAAYD,cAAc,oBAAqB3zF,KAAKo3F,SAC3D,EC3LI,MAAgB4F,WAA8BxG,GAOzCtC,WAAWa,GAClBj1F,MAAMo0F,WAAWa,GAEjB/0F,KAAKi9F,2BAA6B,IAAI1S,GACpCwK,EAAckI,2BACdj9F,KAAK8pF,UACL9pF,MAEFA,KAAKk9F,qBAAuB,IAAI3S,GAAmBwK,EAAcmI,qBAAsBl9F,KAAK8pF,UAAW9pF,MACvGA,KAAKm9F,cAAgB,IAAI5S,GAAmBwK,EAAcoI,cAAen9F,KAAK8pF,UAAW9pF,MACzFA,KAAKo9F,eAAiB,IAAI7S,GAAmBwK,EAAcqI,eAAgBp9F,KAAK8pF,UAAW9pF,KAC7F,CAESq1F,mBACPv1F,MAAMu1F,mBAIFr1F,KAAKi9F,2BAA2BnO,eAClC9uF,KAAKi9F,2BAA2BxO,gBAAgB,GAG9CzuF,KAAKk9F,qBAAqBpO,eAC5B9uF,KAAKk9F,qBAAqBzO,gBAAgB,GAGxCzuF,KAAKm9F,cAAcrO,eACrB9uF,KAAKm9F,cAAc1O,gBAAgB,GAGjCzuF,KAAKo9F,eAAetO,eACtB9uF,KAAKo9F,eAAe3O,gBAAgB,EAExC,CAES2G,gBACPt1F,MAAMs1F,gBAENp1F,KAAKi9F,2BAA2BzP,YAAY,SAC5CxtF,KAAKk9F,qBAAqB1P,YAAY,SACtCxtF,KAAKm9F,cAAc3P,YAAY,iBAC/BxtF,KAAKo9F,eAAe5P,YAAY,gBAClC,CAESuK,6BACPj4F,MAAMi4F,6BAEN/3F,KAAKi9F,2BAA2BjT,QAAQ,gCACxChqF,KAAKk9F,qBAAqBlT,QAAQ,0BAClChqF,KAAKm9F,cAAcnT,QAAQ,kBAC3BhqF,KAAKo9F,eAAepT,QAAQ,kBAC9B,CAESkC,UAAU8L,GACjBl4F,MAAMosF,UAAU8L,GAEhBh4F,KAAKi9F,2BAA6Bj9F,KAAKorF,0BACrC4M,EAAwBiF,4BAE1Bj9F,KAAKk9F,qBAAuBl9F,KAAKorF,0BAA0B4M,EAAwBkF,sBACnFl9F,KAAKm9F,cAAgBn9F,KAAKorF,0BAA0B4M,EAAwBmF,eAC5En9F,KAAKo9F,eAAiBp9F,KAAKorF,0BAA0B4M,EAAwBoF,eAC/E,EC5DI,MAAOC,WACHL,GAaRn9F,YAAYk1F,EAAoBjL,GAC9BhqF,MAAMi1F,EAAejL,GAXvB9pF,cAAW,cAYTA,KAAKk0F,WAAWa,GAChB/0F,KAAK+3F,4BACP,CAES7D,WAAWa,GAClBj1F,MAAMo0F,WAAWa,GACjB/0F,KAAKm8F,mBAAqB,IAAI5R,GAAmBwK,EAAcoH,mBAAoBn8F,KAAK8pF,UAAW9pF,MACnGA,KAAKq6F,qBAAuB,IAAI9P,GAAmBwK,EAAcsF,qBAAsBr6F,KAAK8pF,UAAW9pF,MACvGA,KAAKs0F,MAAQ,IAAI/J,GAAmBwK,EAAcT,MAAOt0F,KAAK8pF,UAAW9pF,MACzEA,KAAKo0F,gBAAkBW,EAAcX,iBAAmB,GACxDp0F,KAAKi7F,iBACP,CAEAA,kBACEj7F,KAAK4zF,YAAc,IAAIF,GACvB1zF,KAAK4zF,YAAYD,cAAc,oBAAqB3zF,KAAKo3F,SAC3D,CAESW,6BACPj4F,MAAMi4F,6BACN/3F,KAAKm8F,mBAAmBnS,QAAQ,uBAChChqF,KAAKq6F,qBAAqBrQ,QAAQ,0BAClChqF,KAAKi9F,2BAA2BjT,QAAQ,gCACxChqF,KAAKs0F,MAAMtK,QAAQ,iBACnBhqF,KAAKo3F,SAASpN,QAAQ,oBACxB,CAESqL,mBACPv1F,MAAMu1F,mBACFr1F,KAAKm8F,mBAAmBrN,eAC1B9uF,KAAKm8F,mBAAmB1N,gBAAgB,GAEtCzuF,KAAKq6F,qBAAqBvL,eAC5B9uF,KAAKq6F,qBAAqB5L,gBAAgB,EAAKf,cAAcgK,MAAMC,aAAaC,OAE9E53F,KAAKs0F,MAAMxF,eACb9uF,KAAKs0F,MAAM7F,gBAAgB,GAE/B,CAESjD,mBACP1rF,MAAM0rF,kBACR,CAESZ,8BACP9qF,MAAM8qF,6BACR,CAESwK,gBACPt1F,MAAMs1F,gBACNp1F,KAAKm8F,mBAAmB3O,YAAY,sBACpCxtF,KAAKq6F,qBAAqB7M,YAAY,gBACtCxtF,KAAKs0F,MAAM9G,YAAY,oBACzB,CAEAqO,6BACE,OAAO,IAAItR,GAAmBvqF,KAAKu3F,aAAcv3F,KAAK8pF,UAAW9pF,KACnE,CAEAk7F,mBACE,MAAO,CAACl7F,KAAKi9F,2BAA4Bj9F,KAAKq6F,qBAAsBr6F,KAAKm8F,mBAAoBn8F,KAAKs0F,MACpG,CAEAoI,oCACE,MAAO,CAAC18F,KAAKm8F,mBACf,CAEAL,yBACE,MAAO,CACL97F,KAAKm8F,mBACLn8F,KAAKu3F,aACLv3F,KAAKs0F,MACLt0F,KAAK62F,QACL72F,KAAK82F,cACL92F,KAAK+2F,UACL/2F,KAAK42F,UAET,CAEAuE,wCACE,MAAO,CACLn7F,KAAKm8F,mBACLn8F,KAAKu3F,aACLv3F,KAAKi9F,2BACLj9F,KAAKk9F,qBACLl9F,KAAKo9F,eACLp9F,KAAKm9F,cACLn9F,KAAKs0F,MACLt0F,KAAK22F,iBACL32F,KAAK62F,QACL72F,KAAK82F,cACL92F,KAAK+2F,UACL/2F,KAAK42F,UACL52F,KAAKk3F,eAET,CAESnB,mBAAmBC,GAE1B,OAAOl2F,MAAMi2F,mBAAmBC,IAAWA,IAAWh2F,KAAKq3F,aAAerB,IAAWh2F,KAAKo3F,QAC5F,CAEA9D,yBACE,OAAO,CACT,CAEAyI,qBACE,OAAO,CACT,CAESzG,eACPx1F,MAAMw1F,eACNt1F,KAAKq6F,qBAAqBnuF,MAAQ,KAClClM,KAAKs3F,aAAaprF,MAAQ,KAC1BlM,KAAK02F,QAAQxqF,MAAQ,KACrBlM,KAAKy2F,UAAUvqF,MAAQ,KACvBlM,KAAKg3F,kBAAkB9qF,MAAQ,KAC/BlM,KAAKi3F,UAAU/qF,MAAQ,KACvBlM,KAAKm3F,WAAWjrF,MAAQ,IAC1B,CAEmBy/E,mBAAmBhb,GACpC,OAAO7wE,MAAM6rF,mBAAmBhb,EAClC,CAESub,UAAUyQ,GACjB78F,MAAMosF,UAAUyQ,GAChB38F,KAAKm8F,mBAAqBn8F,KAAKorF,0BAA0BuR,EAAIR,oBAC7Dn8F,KAAKq6F,qBAAuBr6F,KAAKorF,0BAA0BuR,EAAItC,sBAC/Dr6F,KAAKs0F,MAAQt0F,KAAKorF,0BAA0BuR,EAAIrI,OAEhDt0F,KAAKo1F,gBACLp1F,KAAKq1F,mBACLr1F,KAAKi7F,iBACP,EClKK,IAAKqC,GAGX,aAHWA,UAAqB,KAC/BA,YACAA,2BAFUA,GAAZ,IAAYA,GAGX,GAEWC,GAGX,aAHWA,UAAsB,KAChCA,cACAA,gBAFUA,GAAZ,IAAYA,GAGX,GCRK,MAAOC,GAMX39F,YAAYs0F,EAAyBjoF,GACnClM,KAAKm0F,gBAAkBA,EACvBn0F,KAAKkM,MAAQA,CACf,ECPI,MAAOuxF,WAAuCD,GAIlD39F,YAAY69F,GACV59F,MAAM49F,EAAGvJ,gBAAiBuJ,EAAGxxF,OAC7BlM,KAAK29F,aAAeD,EAAGC,aACvB39F,KAAK49F,aAAeF,EAAGE,YACzB,ECPI,MAAOC,GAOXh+F,YACEqL,EACA4yF,EACAC,EACAC,EACAt8C,GAEA1hD,KAAKkL,GAAKA,EACVlL,KAAK89F,sBAAwBA,EAC7B99F,KAAK+9F,eAAiBA,EACtB/9F,KAAKg+F,gBAAkBA,EACvBh+F,KAAK0hD,SAAWA,IAAY,CAC9B,CAEA4xC,yBACE,OACG1G,GAAkB5sF,KAAKg+F,mBACvBnR,GAAa7sF,KAAKg+F,mBAClBzR,OAAO5/D,MAAM3sB,KAAKg+F,gBAEvB,CAEAzK,wBAAwBC,GACtB,OAAO,CACT,EChCI,MAAOyK,GAAbp+F,cACEG,iBAA6D,EA+B/D,CA7BEk+F,iBAAiBhzF,EAAY9H,EAAc8I,EAAeioF,EAAyBzyC,GACjF1hD,KAAK4zF,YAAY1oF,GAAM,IAAI2yF,GAA4B3yF,EAAIipF,EAAiB/wF,EAAM8I,EAAOw1C,EAC3F,CAEAy8C,iBAAiBhK,GACfxoF,OAAO+N,QAAQ1Z,KAAK4zF,aAAajuF,QAAQy4F,IACnCA,EAAK,GAAGN,wBAA0B3J,UAAwBn0F,KAAK4zF,YAAYwK,EAAK,GAAE,EAE1F,CAEAC,+BAA+BlK,GACzBn0F,KAAKs+F,2BAA2BnK,IAClCn0F,KAAKm+F,iBAAiBhK,EAE1B,CAEAoK,mCAAmCpK,GAC7Bn0F,KAAKw+F,2BAA2BrK,IAClCn0F,KAAKm+F,iBAAiBhK,EAE1B,CAEAmK,2BAA2BnK,GACzB,SAAUn0F,KAAK4zF,YAAY,eAAeO,OAAsBn0F,KAAK4zF,YAAY,eAAeO,KAClG,CAEAqK,2BAA2BrK,GACzB,QAASn0F,KAAK4zF,YAAY,aAAaO,IACzC,ECrBI,MAAOsK,WAAcjI,GAUzB32F,YAAYk1F,EAAoBjL,GAC9BhqF,MAAMi1F,EAAejL,GAVvB9pF,cAAWivF,aAGXjvF,0BAAyD,GASvDA,KAAKk0F,WAAWa,GAChB/0F,KAAKo1F,eACP,CAEAyG,6BAEA,CAEA6C,mCAAmCvK,GACjCn0F,KAAK2+F,uBAAuBxK,EAC9B,CAEQwK,uBAAuBxK,GAC7Bn0F,KAAK4+F,+BACL,MAAMC,EAA4B,IAAIpB,GAA+B,CAAEtJ,oBACvEn0F,KAAK8+F,qBAAqBl2F,KAAKi2F,GAEU,IAArC7+F,KAAK8+F,qBAAqBr6F,SAC5BzE,KAAK8+F,qBAAqB,GAAG5yF,MAAQ,GAGvClM,KAAK++F,+BACL/+F,KAAKg/F,mCAAmCH,EAC1C,CAEAI,wBAAwB9K,GACtB,OAAOn0F,KAAK8+F,qBAAqBl/D,KAAKs/D,GAC7BA,EAAI/K,kBAAoBA,EAEnC,CAEAgL,sCAAsChL,GACpC,MAAM9iF,EAAQrR,KAAK8+F,qBAAqB5tF,QAAQlR,KAAKi/F,wBAAwB9K,IAEzE9iF,GAAS,IACXrR,KAAK8+F,qBAAqB3tF,OAAOE,EAAO,GACxCrR,KAAK4zF,YAAYuK,iBAAiBhK,GAEtC,CAEAyK,+BACE,UAAWlB,KAAM19F,KAAK8+F,qBACpBpB,EAAGxxF,MAAQ,IAEf,CAESgoF,WAAWa,GAQlB,GAPAj1F,MAAMo0F,WAAWa,GAEjB/0F,KAAKo/F,iBAAmBrK,EAAcqK,kBAAoB9B,QAC1Dt9F,KAAKq/F,kBAAoB1S,GAAgBoI,EAAcsK,mBACnD9B,SACAxI,EAAcsK,kBAEdtK,EAAc+J,gCAAgChlF,MAAO,CACvD9Z,KAAK++F,6BAA6BhK,GAClC,UAAW2I,KAAM3I,EAAc+J,qBAAsB,CACnD,MAAMD,EAA4B,IAAIpB,GAA+BC,GACrE19F,KAAK8+F,qBAAqBl2F,KAAKi2F,GAC/B7+F,KAAKg/F,mCAAmCH,EAAyB,EAGvE,CAEAG,mCAAmCH,GACjC,GAAI7+F,KAAKo/F,mBAAqB9B,eAAmC,CAC/D,MAAMgC,EAAWT,EAA0B1K,gBACrCY,EAAgB/0F,KAAK8pF,UAAUyV,iBAAiBD,GAEtD,GAAIt/F,KAAKq/F,oBAAsB9B,SAA8B,CAC3D,GACEv9F,KAAK4zF,YAAYA,YAAY,eAAe0L,MAC5Ct/F,KAAK4zF,YAAYA,YAAY,eAAe0L,KAE5C,OAEFt/F,KAAK4zF,YAAYsK,iBACf,eAAeoB,IACfvK,EAAgB,WAAWA,EAAc3xF,aAAe,UACxDy7F,EAA0BlB,aAC1B2B,GAEFt/F,KAAK4zF,YAAYsK,iBACf,eAAeoB,IACfvK,EAAgB,WAAWA,EAAc3xF,aAAe,UACxDy7F,EAA0BjB,aAC1B0B,EAAQ,CAIZ,GAAIt/F,KAAKq/F,oBAAsB9B,SAA8B,CAC3D,GAAIv9F,KAAK4zF,YAAYA,YAAY,aAAa0L,KAAa,OAC3Dt/F,KAAK4zF,YAAYsK,iBACf,aAAaoB,IACbvK,EAAgB,SAASA,EAAc3xF,aAAe,QACtDy7F,EAA0B3yF,MAC1BozF,EAAQ,EAIhB,CAEAE,0CAA0CzK,GACxCppF,OAAO+N,QAAQq7E,EAAcnB,YAAYA,aAAajuF,QAAS+xE,IAC7D13E,KAAK4zF,YAAYsK,iBACfxmB,EAAM,GACNA,EAAM,GAAGqmB,eACTrmB,EAAM,GAAGsmB,gBACTtmB,EAAM,GAAGomB,sBACTpmB,EAAM,GAAGh2B,SAAQ,EAGvB,CAEAq9C,6BAA6BhK,GACvBpI,GAAgB3sF,KAAK4zF,eACvB5zF,KAAK4zF,YAAc,IAAIqK,KAErBtR,GAAgBoI,KACfpI,GAAgBoI,EAAcnB,cAC7BjoF,OAAOtE,KAAK0tF,EAAcnB,YAAYA,aAAanvF,OAAS,GAC9DzE,KAAKw/F,0CAA0CzK,GAErD,ECxII,MAAO0K,WACHzC,GAaRn9F,YAAYk1F,EAAoBjL,GAC9BhqF,MAAMi1F,EAAejL,GAXvB9pF,cAAW,cAYTA,KAAKk0F,WAAWa,GAChB/0F,KAAK+3F,4BACP,CAESvM,mBACP1rF,MAAM0rF,kBACR,CAEmBG,mBAAmBhb,GACpC,OAAO7wE,MAAM6rF,mBAAmBhb,EAClC,CAEAuqB,mBACE,MAAO,CAACl7F,KAAKi9F,2BAA4Bj9F,KAAKq6F,qBAAsBr6F,KAAKm8F,mBAAoBn8F,KAAKs0F,MACpG,CAEAoI,oCACE,MAAO,CAAC18F,KAAKm8F,mBACf,CAEAhB,wCACE,MAAO,CACLn7F,KAAKm8F,mBACLn8F,KAAKu3F,aACLv3F,KAAKi9F,2BACLj9F,KAAKk9F,qBACLl9F,KAAKo9F,eACLp9F,KAAKm9F,cACLn9F,KAAKs0F,MACLt0F,KAAK22F,iBACL32F,KAAK62F,QACL72F,KAAK82F,cACL92F,KAAK+2F,UACL/2F,KAAK42F,UACL52F,KAAKk3F,eAET,CAES5B,eACPx1F,MAAMw1F,eACNt1F,KAAKq6F,qBAAqBnuF,MAAQ,KAClClM,KAAKs3F,aAAaprF,MAAQ,KAC1BlM,KAAKg3F,kBAAkB9qF,MAAQ,KAC/BlM,KAAKi3F,UAAU/qF,MAAQ,KACvBlM,KAAK02F,QAAQxqF,MAAQ,KACrBlM,KAAKy2F,UAAUvqF,MAAQ,IACzB,CAESgoF,WAAWa,GAClBj1F,MAAMo0F,WAAWa,GACjB/0F,KAAKm8F,mBAAqB,IAAI5R,GAAmBwK,EAAcoH,mBAAoBn8F,KAAK8pF,UAAW9pF,MACnGA,KAAKq6F,qBAAuB,IAAI9P,GAAmBwK,EAAcsF,qBAAsBr6F,KAAK8pF,UAAW9pF,MACvGA,KAAKs0F,MAAQ,IAAI/J,GAAmBwK,EAAcT,MAAOt0F,KAAK8pF,UAAW9pF,MACzEA,KAAKo0F,gBAAkBW,EAAcX,iBAAmB,GACxDp0F,KAAKi7F,iBACP,CAESlD,6BACPj4F,MAAMi4F,6BACN/3F,KAAKm8F,mBAAmBnS,QAAQ,uBAChChqF,KAAKq6F,qBAAqBrQ,QAAQ,0BAClChqF,KAAKi9F,2BAA2BjT,QAAQ,gCACxChqF,KAAKs0F,MAAMtK,QAAQ,iBACnBhqF,KAAKo3F,SAASpN,QAAQ,oBACxB,CAESY,8BACP9qF,MAAM8qF,6BACR,CAESyK,mBACPv1F,MAAMu1F,mBACFr1F,KAAKm8F,mBAAmBrN,eAC1B9uF,KAAKm8F,mBAAmB1N,gBAAgB,GAGtCzuF,KAAKq6F,qBAAqBvL,eAC5B9uF,KAAKq6F,qBAAqB5L,gBAAgB,EAAKf,cAAcgK,MAAMC,aAAaC,OAG9E53F,KAAKs0F,MAAMxF,eACb9uF,KAAKs0F,MAAM7F,gBAAgB,GAE/B,CAES2G,gBACPt1F,MAAMs1F,gBACNp1F,KAAKm8F,mBAAmB3O,YAAY,sBACpCxtF,KAAKq6F,qBAAqB7M,YAAY,gBACtCxtF,KAAKs0F,MAAM9G,YAAY,oBACzB,CAES/C,wBACP3qF,MAAM2qF,uBACR,CAEAoR,6BACE,OAAO,IAAItR,GAAmBvqF,KAAKu3F,aAAcv3F,KAAK8pF,UAAW9pF,KACnE,CAEA87F,yBACE,MAAO,CACL97F,KAAKm8F,mBACLn8F,KAAKu3F,aACLv3F,KAAKs0F,MACLt0F,KAAK62F,QACL72F,KAAK82F,cACL92F,KAAK+2F,UACL/2F,KAAK42F,UAET,CAESb,mBAAmBC,GAC1B,OAAOl2F,MAAMi2F,mBAAmBC,IAAWA,IAAWh2F,KAAKq3F,aAAerB,IAAWh2F,KAAKo3F,QAC5F,CAESlL,UAAUyQ,GACjB78F,MAAMosF,UAAUyQ,GAChB38F,KAAKm8F,mBAAqBn8F,KAAKorF,0BAA0BuR,EAAIR,oBAC7Dn8F,KAAKq6F,qBAAuBr6F,KAAKorF,0BAA0BuR,EAAItC,sBAC/Dr6F,KAAKs0F,MAAQt0F,KAAKorF,0BAA0BuR,EAAIrI,OAChDt0F,KAAKo1F,gBACLp1F,KAAKq1F,mBACLr1F,KAAKi7F,iBACP,CAEA3H,yBACE,OAAO,CACT,CAEAyI,qBACE,OAAO,CACT,CAEAd,kBACEj7F,KAAK4zF,YAAc,IAAIF,GACvB1zF,KAAK4zF,YAAYD,cAAc,oBAAqB3zF,KAAKo3F,SAC3D,ECvJI,MAAOsI,WACHlJ,GAgBR32F,YAAYk1F,EAAoBjL,GAC9BhqF,MAAMi1F,EAAejL,GAdvB9pF,cAAWivF,YAeTjvF,KAAKk0F,WAAWa,GAChB/0F,KAAK+3F,4BACP,CAEAmD,mBACE,OAAIl7F,KAAK8pF,UAAU6V,mBACV,CAAC3/F,KAAK4/F,aAAc5/F,KAAK6/F,4BAA6B7/F,KAAKs3F,cAE7D,CAACt3F,KAAK8/F,WAAY9/F,KAAK4/F,aAAc5/F,KAAK6/F,4BAA6B7/F,KAAKs3F,aACrF,CAEA6D,wCACE,MAAO,CAACn7F,KAAK8/F,WAAY9/F,KAAK4/F,aAAc5/F,KAAKu3F,aAAcv3F,KAAK42F,UAAW52F,KAAK62F,QACtF,CAEAiF,yBAEA,CAESxG,eACPx1F,MAAMw1F,eACNt1F,KAAKs3F,aAAaprF,MAAQ,KAC1BlM,KAAKg3F,kBAAkB9qF,MAAQ,KAC/BlM,KAAKi3F,UAAU/qF,MAAQ,IACzB,CAESgoF,WAAWa,GAClBj1F,MAAMo0F,WAAWa,GACjB/0F,KAAK8/F,WAAa,IAAIvV,GAAmBwK,EAAc+K,WAAY9/F,KAAK8pF,UAAW9pF,MACnFA,KAAK4/F,aAAe,IAAIrV,GAAmBwK,EAAc6K,aAAc5/F,KAAK8pF,UAAW9pF,MACvFA,KAAK+/F,gBAAkB,IAAIxV,GAAmBwK,EAAcgL,gBAAiB//F,KAAK8pF,UAAW9pF,MAE7FA,KAAK6/F,4BAA8B,IAAItV,GACrCwK,EAAc8K,4BACd7/F,KAAK8pF,UACL9pF,MAEFA,KAAKi7F,iBACP,CAEAA,kBACEj7F,KAAK4zF,YAAc,IAAIF,GACvB1zF,KAAK4zF,YAAYD,cAAc,WAAY3zF,KAAKo3F,UAChDp3F,KAAK4zF,YAAYD,cAAc,kBAAmB3zF,KAAK+/F,iBACvD//F,KAAK4zF,YAAYD,cAAc,cAAe3zF,KAAKq3F,YACrD,CAESU,6BACPj4F,MAAMi4F,6BACN/3F,KAAK8/F,WAAW9V,QAAQ,eACxBhqF,KAAK4/F,aAAa5V,QAAQ,iBAC1BhqF,KAAK+/F,gBAAgB/V,QAAQ,gBAC7BhqF,KAAKo3F,SAASpN,QAAQyK,aACtBz0F,KAAK6/F,4BAA4B7V,QAAQyK,iBAC3C,CAESY,mBACHr1F,KAAK8/F,WAAWhR,eAClB9uF,KAAK8/F,WAAWrR,gBAAgB,GAE9BzuF,KAAK4/F,aAAa9Q,eACpB9uF,KAAK4/F,aAAanR,gBAAgB,GAEhCzuF,KAAK+/F,gBAAgBjR,eACvB9uF,KAAK+/F,gBAAgBtR,gBAAgB,OAAQf,cAAcgK,MAAMsI,cAAcC,OAE7EjgG,KAAK6/F,4BAA4B/Q,eACnC9uF,KAAK6/F,4BAA4BpR,gBAAgB,KAGnD3uF,MAAMu1F,kBACR,CAESD,gBACPt1F,MAAMs1F,gBACNp1F,KAAK8/F,WAAWtS,YAAY,UAG5BxtF,KAAK4/F,aAAapS,YAAY,YAC9BxtF,KAAK+/F,gBAAgBvS,YAAY,iBAEjCxtF,KAAK6/F,4BAA4BrS,YAAY,yBAC/C,CAEStD,aAAaC,GACpBnqF,KAAKoqF,gCAAgCD,EACvC,CAEA0R,6BACE,MAAMG,EAAch8F,KAAK8pF,UAAUmS,4BAA4BtyF,GACtDA,EAAEuyF,wBAA0Bl8F,KAAKkL,IAG1C,GAAI8wF,EAAYv3F,OAAQ,CACtB,MAAMy7F,EAAkB,IAAI3V,GAAmBvqF,KAAKs3F,aAAct3F,KAAK8pF,UAAW9pF,MAClFkgG,SAAgBh0F,MAAQlM,KAAKs3F,aAAaprF,MAAQ8vF,EAAY,GAAGG,mBAAmBjwF,MACpFg0F,EAAgB1S,YAAY,iBACrB0S,EAIX,CAEShU,UAAUyQ,GACjB78F,MAAMosF,UAAUyQ,GAEhB38F,KAAK8/F,WAAa9/F,KAAKorF,0BAA0BuR,EAAImD,YACrD9/F,KAAK4/F,aAAe5/F,KAAKorF,0BAA0BuR,EAAIiD,cACvD5/F,KAAK+/F,gBAAkB//F,KAAKorF,0BAA0BuR,EAAIoD,iBAC1D//F,KAAK6/F,4BAA8B7/F,KAAKorF,0BAA0BuR,EAAIkD,6BAEtE7/F,KAAKo1F,gBACLp1F,KAAKq1F,mBACLr1F,KAAKi7F,iBACP,CAESlF,mBAAmBC,GAC1B,OAAOl2F,MAAMi2F,mBAAmBC,EAClC,CAGA+F,qBACE,MAAMC,EAAch8F,KAAK8pF,UAAUmS,4BAA4BtyF,GACtDA,EAAEuyF,wBAA0Bl8F,KAAKkL,IACvC,GAEH,QAAO8wF,IACHh8F,KAAK4zF,YAAYL,wBAAwB,WAAYyI,EAAYG,mBAAmBjwF,QAClFlM,KAAK4zF,YAAYL,wBAAwB,kBAAmByI,EAAYmE,YAAYj0F,OAE5F,CAEAonF,yBACE,OAAOtzF,KAAK4zF,YAAYG,2BAC1B,CAGA2I,oCACE,MAAO,CAAC18F,KAAKo3F,SACf,EChKI,MAAOgJ,WACH5J,GA4BR32F,YAAYk1F,EAAoBjL,GAC9BhqF,MAAMi1F,EAAejL,GA1BvB9pF,cAAWivF,gBA2BTjvF,KAAKk0F,WAAWa,GAChB/0F,KAAK+3F,4BACP,CAEAmD,mBACE,MAAO,CACLl7F,KAAKqgG,eACLrgG,KAAKsgG,uBACLtgG,KAAKm8F,mBACLn8F,KAAKugG,gBACLvgG,KAAKwgG,cACLxgG,KAAKygG,iBACLzgG,KAAK0gG,aACL1gG,KAAK2gG,oBACL3gG,KAAKu3F,aACLv3F,KAAKs3F,aAET,CAEAoF,oCACE,MAAO,CAAC18F,KAAK4gG,eAAgB5gG,KAAK6gG,eACpC,CAESvL,eACPx1F,MAAMw1F,eACNt1F,KAAKm8F,mBAAmBjwF,MAAQ,KAChClM,KAAKqgG,eAAen0F,MAAQ,KAC5BlM,KAAKu3F,aAAarrF,MAAQ,KAC1BlM,KAAKs3F,aAAaprF,MAAQ,KAC1BlM,KAAKsgG,uBAAuBp0F,MAAQ,KACpClM,KAAK02F,QAAQxqF,MAAQ,KACrBlM,KAAKy2F,UAAUvqF,MAAQ,KACvBlM,KAAKg3F,kBAAkB9qF,MAAQ,KAC/BlM,KAAKi3F,UAAU/qF,MAAQ,KACvBlM,KAAKm3F,WAAWjrF,MAAQ,IAC1B,CAESgoF,WAAWa,GAClBj1F,MAAMo0F,WAAWa,GACjB/0F,KAAKm8F,mBAAqB,IAAI5R,GAAmBwK,EAAcoH,mBAAoBn8F,KAAK8pF,UAAW9pF,MACnGA,KAAKsgG,uBAAyB,IAAI/V,GAAmBwK,EAAcuL,uBAAwBtgG,KAAK8pF,UAAW9pF,MAC3GA,KAAKqgG,eAAiB,IAAI9V,GAAmBwK,EAAcsL,eAAgBrgG,KAAK8pF,UAAW9pF,MAC3FA,KAAKugG,gBAAkB,IAAIhW,GAAmBwK,EAAcwL,gBAAiBvgG,KAAK8pF,UAAW9pF,MAC7FA,KAAKwgG,cAAgB,IAAIjW,GAAmBwK,EAAcyL,cAAexgG,KAAK8pF,UAAW9pF,MACzFA,KAAKygG,iBAAmB,IAAIlW,GAAmBwK,EAAc0L,iBAAkBzgG,KAAK8pF,UAAW9pF,MAC/FA,KAAK0gG,aAAe,IAAInW,GAAmBwK,EAAc2L,aAAc1gG,KAAK8pF,UAAW9pF,MACvFA,KAAK2gG,oBAAsB,IAAIpW,GAAmBwK,EAAc4L,oBAAqB3gG,KAAK8pF,UAAW9pF,MACrGA,KAAK8gG,qBAAuB,IAAIvW,GAAmBwK,EAAc+L,qBAAsB9gG,KAAK8pF,UAAW9pF,MACvGA,KAAK+gG,mBAAqB,IAAIxW,GAAmBwK,EAAcgM,mBAAoB/gG,KAAK8pF,UAAW9pF,MACnGA,KAAKghG,2BAA6B,IAAIzW,GACpCwK,EAAciM,2BACdhhG,KAAK8pF,UACL9pF,MAEFA,KAAKihG,yBAA2B,IAAI1W,GAClCwK,EAAckM,yBACdjhG,KAAK8pF,UACL9pF,MAEFA,KAAK4gG,eAAiB,IAAIrW,GAAmBwK,EAAc6L,eAAgB5gG,KAAK8pF,UAAW9pF,MAC3FA,KAAK6gG,eAAiB,IAAItW,GAAmBwK,EAAc8L,eAAgB7gG,KAAK8pF,UAAW9pF,MAC3FA,KAAKkhG,qBAAuB,IAAI3W,GAAmBwK,EAAcmM,qBAAsBlhG,KAAK8pF,UAAW9pF,MACvGA,KAAKmhG,kBAAoB,IAAI5W,GAAmBwK,EAAcoM,kBAAmBnhG,KAAK8pF,UAAW9pF,MAE/FA,KAAKohG,sBADIrM,EAAcqM,aAAiB,MAGpBrM,EAAcqM,aAEpCphG,KAAKi7F,iBACP,CAEAA,kBACEj7F,KAAK4zF,YAAc,IAAIF,GACvB1zF,KAAK4zF,YAAYD,cAAc,iBAAkB3zF,KAAK4gG,gBACtD5gG,KAAK4zF,YAAYD,cAAc,uBAAwB3zF,KAAK8gG,sBAC5D9gG,KAAK4zF,YAAYD,cAAcc,wBAA6Cz0F,KAAK+gG,oBACjF/gG,KAAK4zF,YAAYD,cAAc,cAAe3zF,KAAKq3F,aACnDr3F,KAAK4zF,YAAYD,cAAc,iBAAkB3zF,KAAK6gG,gBACtD7gG,KAAK4zF,YAAYD,cAAc,oBAAqB3zF,KAAKmhG,mBACzDnhG,KAAK4zF,YAAYD,cAAc,6BAA8B3zF,KAAKghG,4BAClEhhG,KAAK4zF,YAAYD,cAAc,2BAA4B3zF,KAAKihG,yBAClE,CAESlJ,6BACPj4F,MAAMi4F,6BACN/3F,KAAKm8F,mBAAmBnS,QAAQ,uBAChChqF,KAAKsgG,uBAAuBtW,QAAQ,4BACpChqF,KAAKqgG,eAAerW,QAAQ,mBAC5BhqF,KAAKugG,gBAAgBvW,QAAQ,qBAC7BhqF,KAAKwgG,cAAcxW,QAAQ,kBAC3BhqF,KAAKygG,iBAAiBzW,QAAQ,qBAC9BhqF,KAAK0gG,aAAa1W,QAAQ,kBAC1BhqF,KAAK2gG,oBAAoB3W,QAAQ,yBACjChqF,KAAK8gG,qBAAqB9W,QAAQyK,2BAClCz0F,KAAK+gG,mBAAmB/W,QAAQyK,yBAChCz0F,KAAKghG,2BAA2BhX,QAAQ,kCACxChqF,KAAKihG,yBAAyBjX,QAAQ,gCACtChqF,KAAK4gG,eAAe5W,QAAQ,iCAC5BhqF,KAAK6gG,eAAe7W,QAAQ,iCAC5BhqF,KAAKmhG,kBAAkBnX,QAAQ,uBACjC,CAESoL,gBACPt1F,MAAMs1F,gBACNp1F,KAAKm8F,mBAAmB3O,YAAY,sBACpCxtF,KAAKsgG,uBAAuB9S,YAAY,gBACxCxtF,KAAKqgG,eAAe7S,YAAY,qBAChCxtF,KAAKugG,gBAAgB/S,YAAY,WACjCxtF,KAAKwgG,cAAchT,YAAY,WAC/BxtF,KAAKygG,iBAAiBjT,YAAY,WAClCxtF,KAAK0gG,aAAalT,YAAY,WAC9BxtF,KAAK2gG,oBAAoBnT,YAAY,WAErCxtF,KAAK8gG,qBAAqBtT,YAAY,gBACtCxtF,KAAK+gG,mBAAmBvT,YAAY,iBACpCxtF,KAAKghG,2BAA2BxT,YAAY,gBAC5CxtF,KAAKihG,yBAAyBzT,YAAY,iBAC1CxtF,KAAK4gG,eAAepT,YAAY,sBAChCxtF,KAAK6gG,eAAerT,YAAY,sBAChCxtF,KAAKmhG,kBAAkB3T,YAAY,sBACnCxtF,KAAKkhG,qBAAqB1T,YAAY,oBACxC,CAES6H,mBACPv1F,MAAMu1F,mBACFr1F,KAAKm8F,mBAAmBrN,eAC1B9uF,KAAKm8F,mBAAmB1N,gBAAgB,GAGtCzuF,KAAKsgG,uBAAuBxR,eAC9B9uF,KAAKsgG,uBAAuB7R,gBAAgB,EAAKf,cAAcgK,MAAMC,aAAaC,OAGhF53F,KAAKqgG,eAAevR,eACtB9uF,KAAKqgG,eAAe5R,gBAAgB,GAElCzuF,KAAKkhG,qBAAqBpS,eAC5B9uF,KAAKkhG,qBAAqBzS,gBAAgB,GAGxCzuF,KAAKugG,gBAAgBzR,eACvB9uF,KAAKugG,gBAAgB9R,iBAAgB,GAGnCzuF,KAAKwgG,cAAc1R,eACrB9uF,KAAKwgG,cAAc/R,gBAAgB,GAGjCzuF,KAAKygG,iBAAiB3R,eACxB9uF,KAAKygG,iBAAiBhS,gBAAgB,IAGpCzuF,KAAK0gG,aAAa5R,eACpB9uF,KAAK0gG,aAAajS,gBAAgB,IAGhCzuF,KAAK2gG,oBAAoB7R,eAC3B9uF,KAAK2gG,oBAAoBlS,gBAAgB,GAGvCzuF,KAAK+gG,mBAAmBjS,eAC1B9uF,KAAK+gG,mBAAmBtS,gBAAgB,KAAMf,cAAcgK,MAAMsI,cAAcC,OAG9EjgG,KAAKihG,yBAAyBnS,eAChC9uF,KAAKihG,yBAAyBxS,gBAAgB,KAAMf,cAAcgK,MAAMsI,cAAcC,MAE1F,CAEApE,6BACE,OAAO,IAAItR,GAAmBvqF,KAAKu3F,aAAcv3F,KAAK8pF,UAAW9pF,KACnE,CAESksF,UAAUyQ,GACjB78F,MAAMosF,UAAUyQ,GAEhB38F,KAAKm8F,mBAAqBn8F,KAAKorF,0BAA0BuR,EAAIR,oBAC7Dn8F,KAAKsgG,uBAAyBtgG,KAAKorF,0BAA0BuR,EAAI2D,wBACjEtgG,KAAKqgG,eAAiBrgG,KAAKorF,0BAA0BuR,EAAI0D,gBACzDrgG,KAAKugG,gBAAkBvgG,KAAKorF,0BAA0BuR,EAAI4D,iBAC1DvgG,KAAKwgG,cAAgBxgG,KAAKorF,0BAA0BuR,EAAI6D,eACxDxgG,KAAKygG,iBAAmBzgG,KAAKorF,0BAA0BuR,EAAI8D,kBAC3DzgG,KAAK0gG,aAAe1gG,KAAKorF,0BAA0BuR,EAAI+D,cACvD1gG,KAAK2gG,oBAAsB3gG,KAAKorF,0BAA0BuR,EAAIgE,qBAE9D3gG,KAAK8gG,qBAAuB9gG,KAAKorF,0BAA0BuR,EAAImE,sBAC/D9gG,KAAK+gG,mBAAqB/gG,KAAKorF,0BAA0BuR,EAAIoE,oBAC7D/gG,KAAKghG,2BAA6BhhG,KAAKorF,0BAA0BuR,EAAIqE,4BACrEhhG,KAAKihG,yBAA2BjhG,KAAKorF,0BAA0BuR,EAAIsE,0BACnEjhG,KAAK4gG,eAAiB5gG,KAAKorF,0BAA0BuR,EAAIiE,gBACzD5gG,KAAK6gG,eAAiB7gG,KAAKorF,0BAA0BuR,EAAIkE,gBACzD7gG,KAAKmhG,kBAAoBnhG,KAAKorF,0BAA0BuR,EAAIwE,mBAC5DnhG,KAAKkhG,qBAAuBlhG,KAAKorF,0BAA0BuR,EAAIuE,sBAE/DlhG,KAAKo1F,gBACLp1F,KAAKq1F,mBACLr1F,KAAKi7F,iBACP,CAGAc,qBACE,MAAMC,EAAch8F,KAAK8pF,UAAUmS,4BAA4BtyF,GACtDA,EAAEuyF,wBAA0Bl8F,KAAKkL,IACvC,GAEH,OACE8wF,IACCh8F,KAAK4zF,YAAYL,wBAAwB,iBAAkByI,EAAYG,mBAAmBjwF,QACzFlM,KAAK4zF,YAAYL,wBAAwB,uBAAwByI,EAAYqF,OAAOn1F,QACpFlM,KAAK4zF,YAAYL,wBACfkB,wBACAuH,EAAYmE,YAAYj0F,OAGhC,CAEAonF,yBAGE,OAAOtzF,KAAK4zF,YAAYG,2BAC1B,CAGS/H,sBAAsBpJ,GAC7B,OAAO9iF,MAAMksF,sBAAsBpJ,IAAaA,IAAa5iF,KAAK4zF,WACpE,CAEAkI,yBAEA,CAEAX,wCACE,MAAO,CACLn7F,KAAK22F,iBACL32F,KAAK62F,QACL72F,KAAK82F,cACL92F,KAAK+2F,UACL/2F,KAAK42F,UACL52F,KAAKk3F,eAET,EC9QI,MAAOoK,WACH9K,GAyBR32F,YAAYk1F,EAAoBjL,GAC9BhqF,MAAMi1F,EAAejL,GAvBvB9pF,cAAWivF,0BAwBTjvF,KAAKk0F,WAAWa,GAChB/0F,KAAK+3F,4BACP,CAESzC,eACPx1F,MAAMw1F,eACNt1F,KAAKm8F,mBAAmBjwF,MAAQ,KAChClM,KAAKqgG,eAAen0F,MAAQ,KAC5BlM,KAAKu3F,aAAarrF,MAAQ,KAC1BlM,KAAKs3F,aAAaprF,MAAQ,KAC1BlM,KAAKsgG,uBAAuBp0F,MAAQ,IACtC,CAESgoF,WAAWa,GAClBj1F,MAAMo0F,WAAWa,GACjB/0F,KAAKm8F,mBAAqB,IAAI5R,GAAmBwK,EAAcoH,mBAAoBn8F,KAAK8pF,UAAW9pF,MACnGA,KAAKsgG,uBAAyB,IAAI/V,GAAmBwK,EAAcuL,uBAAwBtgG,KAAK8pF,UAAW9pF,MAC3GA,KAAKqgG,eAAiB,IAAI9V,GAAmBwK,EAAcsL,eAAgBrgG,KAAK8pF,UAAW9pF,MAE3FA,KAAKugG,gBAAkB,IAAIhW,GAAmBwK,EAAcwL,gBAAiBvgG,KAAK8pF,UAAW9pF,MAC7FA,KAAKwgG,cAAgB,IAAIjW,GAAmBwK,EAAcyL,cAAexgG,KAAK8pF,UAAW9pF,MACzFA,KAAKygG,iBAAmB,IAAIlW,GAAmBwK,EAAc0L,iBAAkBzgG,KAAK8pF,UAAW9pF,MAC/FA,KAAK0gG,aAAe,IAAInW,GAAmBwK,EAAc2L,aAAc1gG,KAAK8pF,UAAW9pF,MACvFA,KAAK2gG,oBAAsB,IAAIpW,GAAmBwK,EAAc4L,oBAAqB3gG,KAAK8pF,UAAW9pF,MAErGA,KAAKuhG,uBAAyB,IAAIhX,GAAmBwK,EAAcwM,uBAAwBvhG,KAAK8pF,UAAW9pF,MAE3GA,KAAK8gG,qBAAuB,IAAIvW,GAAmBwK,EAAc+L,qBAAsB9gG,KAAK8pF,UAAW9pF,MACvGA,KAAK+gG,mBAAqB,IAAIxW,GAAmBwK,EAAcgM,mBAAoB/gG,KAAK8pF,UAAW9pF,MACnGA,KAAKi7F,iBACP,CAEAA,kBACEj7F,KAAK4zF,YAAc,IAAIF,GACvB1zF,KAAK4zF,YAAYD,cAAc,WAAY3zF,KAAKo3F,UAChDp3F,KAAK4zF,YAAYD,cAAc,uBAAwB3zF,KAAK8gG,sBAC5D9gG,KAAK4zF,YAAYD,cAAc,qBAAsB3zF,KAAK+gG,mBAC5D,CAEA7F,mBACE,MAAO,CACLl7F,KAAKm8F,mBACLn8F,KAAKqgG,eACLrgG,KAAKsgG,uBACLtgG,KAAKu3F,aACLv3F,KAAKs3F,aAET,CAEAoF,oCACE,MAAO,CAAC18F,KAAKo3F,SACf,CAEA+D,wCACE,MAAO,CACLn7F,KAAKugG,gBACLvgG,KAAKwgG,cACLxgG,KAAKygG,iBACLzgG,KAAK0gG,aACL1gG,KAAK2gG,oBACL3gG,KAAKuhG,uBAET,CAEAzF,yBACE,MAAO,CAAC97F,KAAKu3F,aACf,CAESQ,6BACPj4F,MAAMi4F,6BACN/3F,KAAKm8F,mBAAmBnS,QAAQ,uBAChChqF,KAAKsgG,uBAAuBtW,QAAQ,4BACpChqF,KAAKqgG,eAAerW,QAAQ,mBAC5BhqF,KAAKuhG,uBAAuBvX,QAAQyK,6BAEpCz0F,KAAKugG,gBAAgBvW,QAAQ,qBAC7BhqF,KAAKwgG,cAAcxW,QAAQ,kBAC3BhqF,KAAKygG,iBAAiBzW,QAAQ,qBAC9BhqF,KAAK0gG,aAAa1W,QAAQ,kBAC1BhqF,KAAK2gG,oBAAoB3W,QAAQ,yBACjChqF,KAAK+gG,mBAAmB/W,QAAQyK,yBAChCz0F,KAAK8gG,qBAAqB9W,QAAQyK,2BAClCz0F,KAAKo3F,SAASpN,QAAQyK,YACxB,CAESW,gBACPt1F,MAAMs1F,gBACNp1F,KAAKqgG,eAAe7S,YAAY,qBAChCxtF,KAAKm8F,mBAAmB3O,YAAY,sBACpCxtF,KAAKsgG,uBAAuB9S,YAAY,gBAExCxtF,KAAKugG,gBAAgB/S,YAAY,WACjCxtF,KAAKwgG,cAAchT,YAAY,WAC/BxtF,KAAKygG,iBAAiBjT,YAAY,WAClCxtF,KAAK0gG,aAAalT,YAAY,WAC9BxtF,KAAK2gG,oBAAoBnT,YAAY,WAErCxtF,KAAKuhG,uBAAuB/T,YAAY,WAExCxtF,KAAK8gG,qBAAqBtT,YAAYgH,kBACtCx0F,KAAK+gG,mBAAmBvT,YAAY,gBACtC,CAES6H,mBACPv1F,MAAMu1F,mBAEFr1F,KAAKm8F,mBAAmBrN,eAC1B9uF,KAAKm8F,mBAAmB1N,gBAAgB,GAGtCzuF,KAAKsgG,uBAAuBxR,eAC9B9uF,KAAKsgG,uBAAuB7R,gBAAgB,EAAKf,cAAcgK,MAAMC,aAAaC,OAGhF53F,KAAKqgG,eAAevR,eACtB9uF,KAAKqgG,eAAe5R,gBAAgB,GAGlCzuF,KAAKugG,gBAAgBzR,eACvB9uF,KAAKugG,gBAAgB9R,iBAAgB,GAGnCzuF,KAAKwgG,cAAc1R,eACrB9uF,KAAKwgG,cAAc/R,gBAAgB,GAGjCzuF,KAAKygG,iBAAiB3R,eACxB9uF,KAAKygG,iBAAiBhS,gBAAgB,IAGpCzuF,KAAK0gG,aAAa5R,eACpB9uF,KAAK0gG,aAAajS,gBAAgB,IAGhCzuF,KAAK2gG,oBAAoB7R,eAC3B9uF,KAAK2gG,oBAAoBlS,gBAAgB,GAEvCzuF,KAAK+gG,mBAAmBjS,eAC1B9uF,KAAK+gG,mBAAmBtS,gBAAgB,KAAMf,cAAcgK,MAAMsI,cAAcC,MAEpF,CAESlK,mBAAmBC,GAC1B,OACEl2F,MAAMi2F,mBAAmBC,IACzBA,IAAWh2F,KAAKm8F,oBAChBnG,IAAWh2F,KAAKo3F,UAChBpB,IAAWh2F,KAAK8gG,sBAChB9K,IAAWh2F,KAAK+gG,oBAChB/K,IAAWh2F,KAAKq3F,WAEpB,CAEAwE,6BACE,OAAO,IAAItR,GAAmBvqF,KAAKu3F,aAAcv3F,KAAK8pF,UAAW9pF,KACnE,CAESksF,UAAUsV,GACjB1hG,MAAMosF,UAAUsV,GAEhBxhG,KAAKqgG,eAAiBrgG,KAAKorF,0BAA0BoW,EAAInB,gBACzDrgG,KAAKm8F,mBAAqBn8F,KAAKorF,0BAA0BoW,EAAIrF,oBAC7Dn8F,KAAKsgG,uBAAyBtgG,KAAKorF,0BAA0BoW,EAAIlB,wBAEjEtgG,KAAKugG,gBAAkBvgG,KAAKorF,0BAA0BoW,EAAIjB,iBAC1DvgG,KAAKwgG,cAAgBxgG,KAAKorF,0BAA0BoW,EAAIhB,eACxDxgG,KAAKygG,iBAAmBzgG,KAAKorF,0BAA0BoW,EAAIf,kBAC3DzgG,KAAK0gG,aAAe1gG,KAAKorF,0BAA0BoW,EAAId,cACvD1gG,KAAK2gG,oBAAsB3gG,KAAKorF,0BAA0BoW,EAAIb,qBAE9D3gG,KAAKuhG,uBAAyBvhG,KAAKorF,0BAA0BoW,EAAID,wBAEjEvhG,KAAK8gG,qBAAuB9gG,KAAKorF,0BAA0BoW,EAAIV,sBAC/D9gG,KAAK+gG,mBAAqB/gG,KAAKorF,0BAA0BoW,EAAIT,oBAE7D/gG,KAAKo1F,gBACLp1F,KAAKq1F,mBACLr1F,KAAKi7F,iBACP,CAEAc,qBACE,MAAMC,EAAch8F,KAAK8pF,UAAUmS,4BAA4BtyF,GACtDA,EAAEuyF,wBAA0Bl8F,KAAKkL,IACvC,GAGH,OACE8wF,IACCh8F,KAAK4zF,YAAYL,wBAAwB,WAAYyI,EAAYG,mBAAmBjwF,QACnFlM,KAAK4zF,YAAYL,wBAAwB,uBAAwByI,EAAYqF,OAAOn1F,QACpFlM,KAAK4zF,YAAYL,wBAAwB,qBAAsByI,EAAYmE,YAAYj0F,OAG7F,CAEAonF,yBACE,OAAOtzF,KAAK4zF,YAAYG,2BAC1B,ECpOI,MAAO0N,WAAiBjL,GAU5B32F,YAAYk1F,EAAoBjL,GAC9BhqF,MAAMi1F,EAAejL,GAVvB9pF,cAAW,WAEXA,gCAA+D,GAS7DA,KAAKk0F,WAAWa,EAClB,CAESb,WAAWa,GASlB,GARAj1F,MAAMo0F,WAAWa,GAGf/0F,KAAK68F,gBADHlQ,GAAgBoI,EAAc8H,kBAGT9H,EAAc8H,cAGnC9H,EAAc2M,sCAAsC5nF,MAAO,CAC7D9Z,KAAK++F,6BAA6BhK,GAClC,UAAW2I,KAAM3I,EAAc2M,2BAA4B,CACzD,MAAM7C,EAA4B,IAAIpB,GAA+BC,GACrE19F,KAAK0hG,2BAA2B94F,KAAKi2F,GACrC7+F,KAAK2hG,yCAAyC9C,EAAyB,EAG3E7+F,KAAKo1F,eACP,CAGAwM,oCAAoCzN,GAClCn0F,KAAK6hG,yBACL,MAAMC,EAAuB,IAAItE,GAA0BrJ,EAAiB,MAC5En0F,KAAK0hG,2BAA2B94F,KAAKk5F,GAEU,IAA3C9hG,KAAK0hG,2BAA2Bj9F,SAClCzE,KAAK0hG,2BAA2B,GAAGx1F,MAAQ,GAG7ClM,KAAK++F,+BACL/+F,KAAK2hG,yCAAyCG,EAChD,CAEQD,yBACN,UAAWnE,KAAM19F,KAAK0hG,2BACpBhE,EAAGxxF,MAAQ,IAEf,CAEA61F,8BAA8B5N,GAC5B,OAAOn0F,KAAK0hG,2BAA2B9hE,KAAKs/D,GACnCA,EAAI/K,kBAAoBA,EAEnC,CAEA6N,kCAAkCx9F,GAChC,MAAMk5F,EAAK19F,KAAK0hG,2BAA2Bl9F,GAE3C,GAAIk5F,EAAI,CACN,MAAM7E,EAAK74F,KAAK8pF,UAAUyV,iBAAiB7B,EAAGvJ,iBAC9C,OAAO0E,EAAKA,EAAGz1F,KAAO,KAGxB,OAAO,IACT,CAEA6+F,uCAAuC9N,GACrC,MAAM9iF,EAAQrR,KAAK0hG,2BAA2BxwF,QAAQlR,KAAK+hG,8BAA8B5N,IAErF9iF,GAAS,IACXrR,KAAK0hG,2BAA2BvwF,OAAOE,EAAO,GAC9CrR,KAAK4zF,YAAYuK,iBAAiBhK,GAEtC,CAEA4I,eAAeF,GACb78F,KAAK68F,cAAgBA,CACvB,CAGAhB,6BAEA,CAGA8F,yCAAyC9C,GACvC,MAAMS,EAAWT,EAA0B1K,gBACrCY,EAAgB/0F,KAAK8pF,UAAUyV,iBAAiBD,GAEtD,GAAIt/F,KAAK68F,cAAe,CACtB,GAAI78F,KAAK4zF,YAAY0K,2BAA2BgB,GAAW,OAE3Dt/F,KAAK4zF,YAAY2K,mCAAmCe,GAEpDt/F,KAAK4zF,YAAYsK,iBACf,eAAeoB,IACfvK,EAAgB,WAAWA,EAAc3xF,aAAe,UACxDy7F,EAA0BlB,aAC1B2B,GAEFt/F,KAAK4zF,YAAYsK,iBACf,eAAeoB,IACfvK,EAAgB,WAAWA,EAAc3xF,aAAe,UACxDy7F,EAA0BjB,aAC1B0B,EAAQ,KAEL,CACL,GAAIt/F,KAAK4zF,YAAY4K,2BAA2Bc,GAAW,OAE3Dt/F,KAAK4zF,YAAYyK,+BAA+BiB,GAEhDt/F,KAAK4zF,YAAYsK,iBACf,aAAaoB,IACbvK,EAAgB,SAASA,EAAc3xF,aAAe,QACtDy7F,EAA0B3yF,MAC1BozF,EAAQ,CAGd,CAEAE,0CAA0CzK,GACxCppF,OAAO+N,QAAQq7E,EAAcnB,YAAYA,aAAajuF,QAAS+xE,IAC7D13E,KAAK4zF,YAAYsK,iBACfxmB,EAAM,GACNA,EAAM,GAAGqmB,eACTrmB,EAAM,GAAGsmB,gBACTtmB,EAAM,GAAGomB,sBACTpmB,EAAM,GAAGh2B,SAAQ,EAGvB,CAEAq9C,6BAA6BhK,GACvBpI,GAAgB3sF,KAAK4zF,eACvB5zF,KAAK4zF,YAAc,IAAIqK,KAErBtR,GAAgBoI,KACfpI,GAAgBoI,EAAcnB,cAC7BjoF,OAAOtE,KAAK0tF,EAAcnB,YAAYA,aAAanvF,OAAS,GAC9DzE,KAAKw/F,0CAA0CzK,GAErD,EC3JK,MAAMmN,GAAuB,46BCY9B,MAAOC,WACHnF,GAkDRn9F,YAAYk1F,EAAoBjL,GAC9BhqF,MAAMi1F,EAAejL,GAhDvB9pF,cAAW,WAiDTA,KAAKk0F,WAAWa,GAChB/0F,KAAK+3F,4BACP,CAEAmD,mBACE,OAAIl7F,KAAK8pF,UAAU6V,mBACV,CACL3/F,KAAKq6F,qBACLr6F,KAAKoiG,qBACLpiG,KAAKi9F,2BACLj9F,KAAKs3F,aACLt3F,KAAK66F,YACL76F,KAAKqiG,iBACLriG,KAAKsiG,iBACLtiG,KAAKuiG,kBACLviG,KAAKwiG,kBACLxiG,KAAKyiG,oBAGF,CACLziG,KAAKq6F,qBACLr6F,KAAKoiG,qBACLpiG,KAAKi9F,2BACLj9F,KAAKs3F,aACLt3F,KAAK66F,YACL76F,KAAKqiG,iBACLriG,KAAKsiG,iBACLtiG,KAAKm4F,aACLn4F,KAAKo4F,YACLp4F,KAAKuiG,kBACLviG,KAAKwiG,kBACLxiG,KAAKyiG,mBAET,CAEA/F,oCACE,MAAO,CAAC18F,KAAKo3F,SACf,CAEA+D,wCACE,MAAO,CACLn7F,KAAK0iG,WACL1iG,KAAK2iG,gBACL3iG,KAAK4iG,cACL5iG,KAAK6iG,kBACL7iG,KAAKuiG,kBACLviG,KAAKqiG,iBACLriG,KAAKi9F,2BACLj9F,KAAKk9F,qBACLl9F,KAAKm9F,cACLn9F,KAAKo9F,eACLp9F,KAAK8iG,WACL9iG,KAAKwiG,kBACLxiG,KAAKsiG,iBACLtiG,KAAK22F,iBACL32F,KAAK62F,QACL72F,KAAK82F,cACL92F,KAAK+2F,UACL/2F,KAAK42F,UACL52F,KAAKk3F,eAET,CAES5B,eACPx1F,MAAMw1F,eACNt1F,KAAKq6F,qBAAqBnuF,MAAQ,KAClClM,KAAKs3F,aAAaprF,MAAQ,KAC1BlM,KAAK02F,QAAQxqF,MAAQ,KACrBlM,KAAKy2F,UAAUvqF,MAAQ,KACvBlM,KAAKg3F,kBAAkB9qF,MAAQ,KAC/BlM,KAAKi3F,UAAU/qF,MAAQ,KACvBlM,KAAKm3F,WAAWjrF,MAAQ,KACxBlM,KAAKs6F,gBAAgBpuF,MAAQ,IAC/B,CAESgoF,WAAWa,GAClBj1F,MAAMo0F,WAAWa,GACjB/0F,KAAKq6F,qBAAuB,IAAI9P,GAAmBwK,EAAcsF,qBAAsBr6F,KAAK8pF,UAAW9pF,MACvGA,KAAK6iG,kBAAoB,IAAItY,GAAmBwK,EAAc8N,kBAAmB7iG,KAAK8pF,UAAW9pF,MACjGA,KAAKuiG,kBAAoB,IAAIhY,GAAmBwK,EAAcwN,kBAAmBviG,KAAK8pF,UAAW9pF,MACjGA,KAAKqiG,iBAAmB,IAAI9X,GAAmBwK,EAAcsN,iBAAkBriG,KAAK8pF,UAAW9pF,MAC/FA,KAAK4iG,cAAgB,IAAIrY,GAAmBwK,EAAc6N,cAAe5iG,KAAK8pF,UAAW9pF,MACzFA,KAAK2iG,gBAAkB,IAAIpY,GAAmBwK,EAAc4N,gBAAiB3iG,KAAK8pF,UAAW9pF,MAC7FA,KAAK0iG,WAAa,IAAInY,GAAmBwK,EAAc2N,WAAY1iG,KAAK8pF,UAAW9pF,MACnFA,KAAKwiG,kBAAoB,IAAIjY,GAAmBwK,EAAcyN,kBAAmBxiG,KAAK8pF,UAAW9pF,MACjGA,KAAKsiG,iBAAmB,IAAI/X,GAAmBwK,EAAcuN,iBAAkBtiG,KAAK8pF,UAAW9pF,MAC/FA,KAAKs6F,gBAAkB,IAAI/P,GAAmBwK,EAAcuF,gBAAiBt6F,KAAK8pF,UAAW9pF,MAC7FA,KAAK8gG,qBAAuB,IAAIvW,GAAmBwK,EAAc+L,qBAAsB9gG,KAAK8pF,UAAW9pF,MACvGA,KAAK+gG,mBAAqB,IAAIxW,GAAmBwK,EAAcgM,mBAAoB/gG,KAAK8pF,UAAW9pF,MACnGA,KAAK+iG,0BAA4B,IAAIxY,GACnCwK,EAAcgO,0BACd/iG,KAAK8pF,UACL9pF,MAEFA,KAAK66F,YAAc,IAAItQ,GAAmBwK,EAAc8F,YAAa76F,KAAK8pF,UAAW9pF,MACrFA,KAAKgjG,YAAc,IAAIzY,GAAmBwK,EAAciO,YAAahjG,KAAK8pF,UAAW9pF,MAGrFA,KAAKyiG,mBAAqB,IAAIlY,GAAmBwK,EAAc0N,oBAAsB,GAAIziG,KAAK8pF,UAAW9pF,MACzGA,KAAK8iG,WAAa,IAAIvY,GAAmBwK,EAAc+N,YAAc,GAAI9iG,KAAK8pF,UAAW9pF,MACzFA,KAAKoiG,qBAAuB,IAAI7X,GAAmBwK,EAAcqN,sBAAwB,GAAIpiG,KAAK8pF,UAAW9pF,MAC7GA,KAAKijG,kBAAoB,IAAI1Y,GAAmBwK,EAAckO,mBAAqB,GAAIjjG,KAAK8pF,UAAW9pF,MACvGA,KAAKkjG,eAAiB,IAAI3Y,GAAmBwK,EAAcmO,gBAAkB,GAAIljG,KAAK8pF,UAAW9pF,MAGjGA,KAAKm4F,aAAe,IAAI5N,GAAmBwK,EAAcoD,cAAgB,GAAIn4F,KAAK8pF,UAAW9pF,MAC7FA,KAAKo4F,YAAc,IAAI7N,GAAmBwK,EAAcqD,aAAe,GAAIp4F,KAAK8pF,UAAW9pF,MAC3FA,KAAKq4F,aAAe,IAAI9N,GAAmBwK,EAAcsD,cAAgB,GAAIr4F,KAAK8pF,UAAW9pF,MAC7FA,KAAKs4F,YAAc,IAAI/N,GAAmBwK,EAAcuD,aAAe,GAAIt4F,KAAK8pF,UAAW9pF,MAC3FA,KAAKu4F,aAAe,IAAIhO,GAAmBwK,EAAcwD,cAAgB,GAAIv4F,KAAK8pF,UAAW9pF,MAC7FA,KAAKw4F,YAAc,IAAIjO,GAAmBwK,EAAcyD,aAAe,GAAIx4F,KAAK8pF,UAAW9pF,MAC3FA,KAAKy4F,YAAc,IAAIlO,GAAmBwK,EAAc0D,aAAe,GAAIz4F,KAAK8pF,UAAW9pF,MAC3FA,KAAK04F,WAAa,IAAInO,GAAmBwK,EAAc2D,YAAc,GAAI14F,KAAK8pF,UAAW9pF,MAGvFA,KAAKg7F,wBADIjG,EAAciG,eAAmB,MAGpBjG,EAAciG,eAGpCh7F,KAAKmjG,yBADIpO,EAAcoO,gBAAoB,MAGpBpO,EAAcoO,gBAIrCnjG,KAAKohG,sBADIrM,EAAcqM,aAAiB,MAGpBrM,EAAcqM,aAEpCphG,KAAKojG,0BAA4BrO,EAAcqO,0BAC/CpjG,KAAKqjG,gCAAkCtO,EAAcsO,gCAErDrjG,KAAKsjG,2BACIvO,EAAcuO,oBAAwB,IACzCpB,GACAnN,EAAcuO,oBAEpBtjG,KAAKi7F,iBACP,CAEAA,kBACEj7F,KAAK4zF,YAAc,IAAIF,GACvB1zF,KAAK4zF,YAAYD,cAAc,WAAY3zF,KAAKo3F,UAChDp3F,KAAK4zF,YAAYD,cAAc,uBAAwB3zF,KAAK8gG,sBAC5D9gG,KAAK4zF,YAAYD,cAAc,qBAAsB3zF,KAAK+gG,oBAC1D/gG,KAAK4zF,YAAYD,cAAc,4BAA6B3zF,KAAK+iG,2BACjE/iG,KAAK4zF,YAAYD,cAAc,oBAAqB3zF,KAAKijG,mBACzDjjG,KAAK4zF,YAAYD,cAAc,iBAAkB3zF,KAAKkjG,eACxD,CAES7N,mBACPv1F,MAAMu1F,mBAEFr1F,KAAKq6F,qBAAqBvL,eAC5B9uF,KAAKq6F,qBAAqB5L,gBAAgB,EAAKf,cAAcgK,MAAMC,aAAaC,OAG9E53F,KAAK0iG,WAAW5T,eAClB9uF,KAAK0iG,WAAWjU,gBAAgB,IAG9BzuF,KAAK4iG,cAAc9T,eACrB9uF,KAAK4iG,cAAcnU,gBAAgB,IAGjCzuF,KAAK2iG,gBAAgB7T,eACvB9uF,KAAK2iG,gBAAgBlU,gBAAgB,IAGnCzuF,KAAK6iG,kBAAkB/T,eACzB9uF,KAAK6iG,kBAAkBpU,gBAAgB,IAGrCzuF,KAAKwiG,kBAAkB1T,eACzB9uF,KAAKwiG,kBAAkB/T,gBAAgB,IAGrCzuF,KAAKsiG,iBAAiBxT,eACxB9uF,KAAKsiG,iBAAiB7T,gBAAgB,IAGpCzuF,KAAKqiG,iBAAiBvT,eACxB9uF,KAAKqiG,iBAAiB5T,gBAAgB,KAAMf,cAAcgK,MAAMG,cAAcC,QAG5E93F,KAAKuiG,kBAAkBzT,eACzB9uF,KAAKuiG,kBAAkB9T,gBAAgB,KAAMf,cAAcgK,MAAMG,cAAcC,QAE7E93F,KAAKs6F,gBAAgBxL,eACvB9uF,KAAKs6F,gBAAgB7L,gBAAgB,MAEnCzuF,KAAKgjG,YAAYlU,eACnB9uF,KAAKgjG,YAAYvU,gBAAgB,KAErC,CAESsJ,6BACPj4F,MAAMi4F,6BACN/3F,KAAKq6F,qBAAqBrQ,QAAQ,0BAClChqF,KAAK6iG,kBAAkB7Y,QAAQ,uBAC/BhqF,KAAKuiG,kBAAkBvY,QAAQ,+BAC/BhqF,KAAKqiG,iBAAiBrY,QAAQ,8BAC9BhqF,KAAK4iG,cAAc5Y,QAAQ,kBAC3BhqF,KAAK2iG,gBAAgB3Y,QAAQ,oBAC7BhqF,KAAK0iG,WAAW1Y,QAAQ,eACxBhqF,KAAKwiG,kBAAkBxY,QAAQ,uBAC/BhqF,KAAKsiG,iBAAiBtY,QAAQ,sBAC9BhqF,KAAK8iG,WAAW9Y,QAAQyK,iBAExBz0F,KAAKs6F,gBAAgBtQ,QAAQ,gBAC7BhqF,KAAK+iG,0BAA0B/Y,QAAQyK,gCACvCz0F,KAAK+gG,mBAAmB/W,QAAQyK,yBAChCz0F,KAAK8gG,qBAAqB9W,QAAQyK,2BAClCz0F,KAAKijG,kBAAkBjZ,QAAQyK,wBAC/Bz0F,KAAKkjG,eAAelZ,QAAQyK,oBAE5Bz0F,KAAK66F,YAAY7Q,QAAQ,gBACzBhqF,KAAKyiG,mBAAmBzY,QAAQ,wBAChChqF,KAAKoiG,qBAAqBpY,QAAQ,0BAClChqF,KAAKm4F,aAAanO,QAAQ,mBAC1BhqF,KAAKo4F,YAAYpO,QAAQ,kBACzBhqF,KAAKo3F,SAASpN,QAAQyK,YACxB,CAESW,gBACPt1F,MAAMs1F,gBACNp1F,KAAKq6F,qBAAqB7M,YAAY,gBACtCxtF,KAAK6iG,kBAAkBrV,YAAY,WACnCxtF,KAAKuiG,kBAAkB/U,YAAY,iBACnCxtF,KAAKqiG,iBAAiB7U,YAAY,iBAClCxtF,KAAK4iG,cAAcpV,YAAY,WAC/BxtF,KAAK2iG,gBAAgBnV,YAAY,WACjCxtF,KAAK0iG,WAAWlV,YAAY,WAC5BxtF,KAAKwiG,kBAAkBhV,YAAY,qBACnCxtF,KAAKsiG,iBAAiB9U,YAAY,qBAClCxtF,KAAKs6F,gBAAgB9M,YAAY,WACjCxtF,KAAK8gG,qBAAqBtT,YAAY,gBACtCxtF,KAAK+gG,mBAAmBvT,YAAY,iBACpCxtF,KAAK+iG,0BAA0BvV,YAAY,gBAC3CxtF,KAAKgjG,YAAYxV,YAAY,iBAC7BxtF,KAAK66F,YAAYrN,YAAY,gBAC7BxtF,KAAKkjG,eAAe1V,YAAY,gBAGhCxtF,KAAKyiG,mBAAmBjV,YAAY,gBACpCxtF,KAAK8iG,WAAWtV,YAAY,gBAC5BxtF,KAAKoiG,qBAAqB5U,YAAY,sBACtCxtF,KAAKijG,kBAAkBzV,YAAY,sBAGnCxtF,KAAKm4F,aAAa3K,YAAY,gBAC9BxtF,KAAKo4F,YAAY5K,YAAY,gBAC7BxtF,KAAKq4F,aAAa7K,YAAY,gBAC9BxtF,KAAKs4F,YAAY9K,YAAY,gBAC7BxtF,KAAKu4F,aAAa/K,YAAY,gBAC9BxtF,KAAKw4F,YAAYhL,YAAY,gBAC7BxtF,KAAKy4F,YAAYjL,YAAY,gBAC7BxtF,KAAK04F,WAAWlL,YAAY,eAC9B,CAEAqO,6BACE,MAAMG,EAAch8F,KAAK8pF,UAAUmS,4BAA4BtyF,GACtDA,EAAEuyF,wBAA0Bl8F,KAAKkL,IAG1C,GAAI8wF,EAAYv3F,OAAQ,CACtB,MAAMy7F,EAAkB,IAAI3V,GAAmBvqF,KAAKs3F,aAAct3F,KAAK8pF,UAAW9pF,MAClFkgG,SAAgBh0F,MAAQlM,KAAKs3F,aAAaprF,MAAQ8vF,EAAY,GAAGG,mBAAmBjwF,MACpFg0F,EAAgB1S,YAAY,iBACrB0S,EAIX,CAEApE,yBACE,MAAO,CACL97F,KAAKqiG,iBACLriG,KAAKuiG,kBACLviG,KAAKsiG,iBACLtiG,KAAKwiG,kBACLxiG,KAAK22F,iBACL32F,KAAK62F,QACL72F,KAAK82F,cACL92F,KAAK+2F,UACL/2F,KAAK42F,UAET,CAES1K,UAAUyQ,GACjB78F,MAAMosF,UAAUyQ,GAEhB38F,KAAKq6F,qBAAuBr6F,KAAKorF,0BAA0BuR,EAAItC,sBAC/Dr6F,KAAK6iG,kBAAoB7iG,KAAKorF,0BAA0BuR,EAAIkG,mBAC5D7iG,KAAKuiG,kBAAoBviG,KAAKorF,0BAA0BuR,EAAI4F,mBAC5DviG,KAAKqiG,iBAAmBriG,KAAKorF,0BAA0BuR,EAAI0F,kBAC3DriG,KAAK4iG,cAAgB5iG,KAAKorF,0BAA0BuR,EAAIiG,eACxD5iG,KAAK2iG,gBAAkB3iG,KAAKorF,0BAA0BuR,EAAIgG,iBAC1D3iG,KAAK0iG,WAAa1iG,KAAKorF,0BAA0BuR,EAAI+F,YACrD1iG,KAAKwiG,kBAAoBxiG,KAAKorF,0BAA0BuR,EAAI6F,mBAC5DxiG,KAAKsiG,iBAAmBtiG,KAAKorF,0BAA0BuR,EAAI2F,kBAC3DtiG,KAAKs6F,gBAAkBt6F,KAAKorF,0BAA0BuR,EAAIrC,iBAC1Dt6F,KAAK8gG,qBAAuB9gG,KAAKorF,0BAA0BuR,EAAImE,sBAC/D9gG,KAAK+gG,mBAAqB/gG,KAAKorF,0BAA0BuR,EAAIoE,oBAC7D/gG,KAAK+iG,0BAA4B/iG,KAAKorF,0BAA0BuR,EAAIoG,2BACpE/iG,KAAK66F,YAAc76F,KAAKorF,0BAA0BuR,EAAI9B,aACtD76F,KAAKgjG,YAAchjG,KAAKorF,0BAA0BuR,EAAIqG,aAGtDhjG,KAAKyiG,mBAAqBziG,KAAKorF,0BAA0BuR,EAAI8F,oBAC7DziG,KAAK8iG,WAAa9iG,KAAKorF,0BAA0BuR,EAAImG,YACrD9iG,KAAKoiG,qBAAuBpiG,KAAKorF,0BAA0BuR,EAAIyF,sBAC/DpiG,KAAKijG,kBAAoBjjG,KAAKorF,0BAA0BuR,EAAIsG,mBAC5DjjG,KAAKkjG,eAAiBljG,KAAKorF,0BAA0BuR,EAAIuG,gBAGzDljG,KAAKm4F,aAAen4F,KAAKorF,0BAA0BuR,EAAIxE,cACvDn4F,KAAKo4F,YAAcp4F,KAAKorF,0BAA0BuR,EAAIvE,aACtDp4F,KAAKq4F,aAAer4F,KAAKorF,0BAA0BuR,EAAItE,cACvDr4F,KAAKs4F,YAAct4F,KAAKorF,0BAA0BuR,EAAIrE,aACtDt4F,KAAKu4F,aAAev4F,KAAKorF,0BAA0BuR,EAAIpE,cACvDv4F,KAAKw4F,YAAcx4F,KAAKorF,0BAA0BuR,EAAInE,aACtDx4F,KAAKy4F,YAAcz4F,KAAKorF,0BAA0BuR,EAAIlE,aACtDz4F,KAAK04F,WAAa14F,KAAKorF,0BAA0BuR,EAAIjE,YAErD14F,KAAKo1F,gBACLp1F,KAAKq1F,mBACLr1F,KAAKi7F,iBACP,CAEa3E,uBACX,OAAOt2F,KAAKmjG,eACd,CAGApH,qBACE,MAAMC,EAAch8F,KAAK8pF,UAAUmS,4BAA4BtyF,GACtDA,EAAEuyF,wBAA0Bl8F,KAAKkL,IACvC,GAEH,OACE8wF,IACCh8F,KAAK4zF,YAAYL,wBAAwB,WAAYyI,EAAYG,mBAAmBjwF,QACnFlM,KAAK4zF,YAAYL,wBAAwB,uBAAwByI,EAAYqF,OAAOn1F,QACpFlM,KAAK4zF,YAAYL,wBAAwB,qBAAsByI,EAAYmE,YAAYj0F,OAE7F,CAES6pF,mBAAmBC,GAC1B,OAAKh2F,KAAKmjG,gBAWRrjG,MAAMi2F,mBAAmBC,IACzBA,IAAWh2F,KAAKs6F,iBAChBtE,IAAWh2F,KAAKq3F,aAChBrB,IAAWh2F,KAAK66F,aAChB7E,IAAWh2F,KAAKg3F,mBAChBhB,IAAWh2F,KAAKi3F,WAChBjB,IAAWh2F,KAAKuiG,mBAChBvM,IAAWh2F,KAAKqiG,kBAChBrM,IAAWh2F,KAAKwiG,mBAChBxM,IAAWh2F,KAAKsiG,kBAChBtM,IAAWh2F,KAAK22F,kBAChBX,IAAWh2F,KAAK6iG,mBAChB7M,IAAWh2F,KAAK4iG,eAChB5M,IAAWh2F,KAAK2iG,iBAChB3M,IAAWh2F,KAAK0iG,YAChB1M,IAAWh2F,KAAKgjG,YAxBdljG,MAAMi2F,mBAAmBC,IACzBA,IAAWh2F,KAAKs6F,iBAChBtE,IAAWh2F,KAAKq3F,aAChBrB,IAAWh2F,KAAK66F,aAChB7E,IAAWh2F,KAAKg3F,mBAChBhB,IAAWh2F,KAAKi3F,SAqBtB,CAEA3D,yBACE,OAAOtzF,KAAK4zF,YAAYG,2BAC1B,CAGS/H,sBAAsBpJ,GAC7B,OAAO9iF,MAAMksF,sBAAsBpJ,IAAaA,IAAa5iF,KAAK4zF,WACpE,EC7bI,MAAO2P,WACH/M,GAaR32F,YAAYk1F,EAAoBjL,GAC9BhqF,MAAMi1F,EAAejL,GAXvB9pF,cAAWivF,wBAYTjvF,KAAKk0F,WAAWa,GAChB/0F,KAAK+3F,4BACP,CAESvM,mBACP1rF,MAAM0rF,kBACR,CAESC,gBAAgBtB,GACvBrqF,MAAM2rF,gBAAgBtB,GAEtBnqF,KAAK68F,cADM1S,EACa0S,aAC1B,CAESlR,mBAAmBhb,GAC1B,OAAO7wE,MAAM6rF,mBAAmBhb,EAClC,CAEAuqB,mBACE,MAAO,CAACl7F,KAAKm8F,mBAAoBn8F,KAAKs0F,MAAOt0F,KAAKu3F,aAAcv3F,KAAKs3F,aACvE,CAEAoF,oCACE,MAAO,CAAC18F,KAAKm8F,mBACf,CAEAhB,wCACE,MAAO,CAACn7F,KAAKm8F,mBAAoBn8F,KAAKu3F,aAAcv3F,KAAKs0F,MAC3D,CAESgB,eACPx1F,MAAMw1F,eACNt1F,KAAKs3F,aAAaprF,MAAQ,KAC1BlM,KAAKg3F,kBAAkB9qF,MAAQ,KAC/BlM,KAAK62F,QAAQ3qF,MAAQ,KACrBlM,KAAKi3F,UAAU/qF,MAAQ,KAEnBlM,KAAK68F,gBACP78F,KAAKm8F,mBAAmBjwF,MAAQ,KAEpC,CAESgoF,WAAWa,GAClBj1F,MAAMo0F,WAAWa,GAIf/0F,KAAK68F,qBAFI9H,EAAc8H,cAAkB,OAIlB9H,EAAc8H,cAGvC78F,KAAKm8F,mBAAqB,IAAI5R,GAAmBwK,EAAcoH,mBAAoBn8F,KAAK8pF,UAAW9pF,MACnGA,KAAKs0F,MAAQ,IAAI/J,GAAmBwK,EAAcT,MAAOt0F,KAAK8pF,UAAW9pF,MACzEA,KAAKo0F,gBAAkBW,EAAcX,iBAAmB,EAC1D,CAES2D,6BACPj4F,MAAMi4F,6BACN/3F,KAAKm8F,mBAAmBnS,QAAQ,uBAChChqF,KAAKs0F,MAAMtK,QAAQ,QAErB,CAESY,8BACP9qF,MAAM8qF,6BACR,CAESyK,mBACPv1F,MAAMu1F,mBAEFr1F,KAAKs0F,MAAMxF,eACb9uF,KAAKs0F,MAAM7F,gBAAgB,GAE/B,CAES2G,gBACPt1F,MAAMs1F,gBACNp1F,KAAKm8F,mBAAmB3O,YAAY,sBACpCxtF,KAAKs0F,MAAM9G,YAAY,oBACzB,CAES/C,wBACP3qF,MAAM2qF,uBACR,CAEAqR,yBACE,MAAO,CAAC97F,KAAKu3F,aAAcv3F,KAAKs0F,MAClC,CAEAuH,6BACE,OAAO,IAAItR,GAAmBvqF,KAAKu3F,aAAcv3F,KAAK8pF,UAAW9pF,KACnE,CAGA+8F,eAAeF,GACb78F,KAAK68F,cAAgBA,EAEjB78F,KAAK68F,gBACP78F,KAAKm8F,mBAAmBjwF,MAAQ,KAEpC,CAES6pF,mBAAmBC,GAC1B,IAAI1kF,EAASxR,MAAMi2F,mBAAmBC,GACtC,OAAIh2F,KAAK68F,gBACPvrF,EAASA,GAAU0kF,IAAWh2F,KAAKm8F,oBAErC7qF,EAASA,GAAU0kF,IAAWh2F,KAAKo3F,UAAYpB,IAAWh2F,KAAKq3F,YACxD/lF,CACT,CAGS46E,UAAUyQ,GACjB78F,MAAMosF,UAAUyQ,GAChB38F,KAAKm8F,mBAAqBn8F,KAAKorF,0BAA0BuR,EAAIR,oBAC7Dn8F,KAAKs0F,MAAQt0F,KAAKorF,0BAA0BuR,EAAIrI,OAEhDt0F,KAAKo1F,gBACLp1F,KAAKq1F,kBACP,ECtII,MAAOmO,WACHxG,GAaRn9F,YAAYk1F,EAAoBjL,GAC9BhqF,MAAMi1F,EAAejL,GAXvB9pF,cAAWivF,gBAYTjvF,KAAKk0F,WAAWa,GAChB/0F,KAAK+3F,4BACP,CAESvM,mBACP1rF,MAAM0rF,kBACR,CAESC,gBAAgBtB,GACvBrqF,MAAM2rF,gBAAgBtB,EACxB,CAEA+Q,mBACE,MAAO,CAACl7F,KAAKi9F,2BAA4Bj9F,KAAKq6F,qBAAsBr6F,KAAKm8F,mBAAoBn8F,KAAKs0F,MACpG,CAEAoI,oCACE,MAAO,CAAC18F,KAAKm8F,mBACf,CAEAhB,wCACE,MAAO,CACLn7F,KAAKm8F,mBACLn8F,KAAKu3F,aACLv3F,KAAKi9F,2BACLj9F,KAAKk9F,qBACLl9F,KAAKo9F,eACLp9F,KAAKm9F,cACLn9F,KAAKs0F,MACLt0F,KAAK22F,iBACL32F,KAAK62F,QACL72F,KAAK82F,cACL92F,KAAK+2F,UACL/2F,KAAK42F,UACL52F,KAAKk3F,eAET,CAES5B,eACPx1F,MAAMw1F,eACNt1F,KAAKq6F,qBAAqBnuF,MAAQ,KAClClM,KAAKs3F,aAAaprF,MAAQ,KAC1BlM,KAAK02F,QAAQxqF,MAAQ,KACrBlM,KAAKy2F,UAAUvqF,MAAQ,KACvBlM,KAAKg3F,kBAAkB9qF,MAAQ,KAC/BlM,KAAKi3F,UAAU/qF,MAAQ,KACvBlM,KAAKm3F,WAAWjrF,MAAQ,IAC1B,CAESgoF,WAAWa,GAClBj1F,MAAMo0F,WAAWa,GACjB/0F,KAAKm8F,mBAAqB,IAAI5R,GAAmBwK,EAAcoH,mBAAoBn8F,KAAK8pF,UAAW9pF,MACnGA,KAAKq6F,qBAAuB,IAAI9P,GAAmBwK,EAAcsF,qBAAsBr6F,KAAK8pF,UAAW9pF,MACvGA,KAAKs0F,MAAQ,IAAI/J,GAAmBwK,EAAcT,MAAOt0F,KAAK8pF,UAAW9pF,MAEzEA,KAAKo0F,gBAAkBW,EAAcX,iBAAmB,EAC1D,CAES2D,6BACPj4F,MAAMi4F,6BACN/3F,KAAKm8F,mBAAmBnS,QAAQ,uBAChChqF,KAAKq6F,qBAAqBrQ,QAAQ,0BAClChqF,KAAKi9F,2BAA2BjT,QAAQ,gCACxChqF,KAAKs0F,MAAMtK,QAAQ,gBACrB,CAESqL,mBACPv1F,MAAMu1F,mBACFr1F,KAAKm8F,mBAAmBrN,eAC1B9uF,KAAKm8F,mBAAmB1N,gBAAgB,GAEtCzuF,KAAKq6F,qBAAqBvL,eAC5B9uF,KAAKq6F,qBAAqB5L,gBAAgB,EAAKf,cAAcgK,MAAMC,aAAaC,OAE9E53F,KAAKs0F,MAAMxF,eACb9uF,KAAKs0F,MAAM7F,gBAAgB,GAE/B,CAES2G,gBACPt1F,MAAMs1F,gBACNp1F,KAAKm8F,mBAAmB3O,YAAY,sBACpCxtF,KAAKq6F,qBAAqB7M,YAAY,gBACtCxtF,KAAKs0F,MAAM9G,YAAY,oBACzB,CAES/C,wBACP3qF,MAAM2qF,uBACR,CAEAoR,6BACE,OAAO,IAAItR,GAAmBvqF,KAAKu3F,aAAcv3F,KAAK8pF,UAAW9pF,KACnE,CAEA87F,yBACE,MAAO,CACL97F,KAAKm8F,mBACLn8F,KAAKu3F,aACLv3F,KAAKs0F,MACLt0F,KAAK62F,QACL72F,KAAK82F,cACL92F,KAAK+2F,UACL/2F,KAAK42F,UAET,CAESb,mBAAmBC,GAC1B,OAAOl2F,MAAMi2F,mBAAmBC,IAAWA,IAAWh2F,KAAKo3F,UAAYpB,IAAWh2F,KAAKq3F,WACzF,CAESnL,UAAUyQ,GACjB78F,MAAMosF,UAAUyQ,GAChB38F,KAAKm8F,mBAAqBn8F,KAAKorF,0BAA0BuR,EAAIR,oBAC7Dn8F,KAAKq6F,qBAAuBr6F,KAAKorF,0BAA0BuR,EAAItC,sBAC/Dr6F,KAAKs0F,MAAQt0F,KAAKorF,0BAA0BuR,EAAIrI,OAEhDt0F,KAAKo1F,gBACLp1F,KAAKq1F,kBACP,EC7IK,IAAKoO,GAIX,aAJWA,UAAc,KACxBA,YACAA,gBACAA,kBAHUA,GAAZ,IAAYA,GAIX,GAEK,MAAOC,WAAwB7Z,GAYnChqF,YAAY8jG,EAAgB1W,EAA6BnD,GACvDhqF,MAAM6jG,EAAUz4F,GAAI4+E,GAZtB9pF,cAAW,kBAaTA,KAAKitF,gBAAkBA,EACvBjtF,KAAKk0F,WAAWyP,EAClB,CAEAzP,WAAWyP,GACT3jG,KAAKoD,KAAOugG,EAAUvgG,MAAQ,GAC9BpD,KAAK4jG,cAAgBD,EAAUC,eAAiBH,GAAeI,OAC/D7jG,KAAKo3F,SAAW,IAAI7M,GAAmBoZ,EAAUvM,SAAUp3F,KAAK8pF,UAAW9pF,MAC3EA,KAAK8jG,eAAiB,IAAIvZ,GAAmBoZ,EAAUG,eAAgB9jG,KAAK8pF,UAAW9pF,MACvFA,KAAK+jG,UAAY,IAAIxZ,GAAmBoZ,EAAUI,UAAW/jG,KAAK8pF,UAAW9pF,MAC7EA,KAAKgkG,KAAO,IAAIzZ,GAAmBoZ,EAAUK,KAAMhkG,KAAK8pF,UAAW9pF,MACnEA,KAAKikG,eAAiB,IAAI1Z,GAAmBoZ,EAAUM,eAAgBjkG,KAAK8pF,UAAW9pF,MACvFA,KAAK22F,iBAAmB,IAAIpM,GAAmBoZ,EAAUhN,iBAAkB32F,KAAK8pF,UAAW9pF,MAE3FA,KAAKo1F,eACP,CAEAA,gBACEp1F,KAAKo3F,SAAS5J,YAAY,SAC1BxtF,KAAK8jG,eAAetW,YAAY,WAChCxtF,KAAK+jG,UAAUvW,YAAY,iBAC3BxtF,KAAKgkG,KAAKxW,YAAY,mBACtBxtF,KAAKikG,eAAezW,YAAY,mBAChCxtF,KAAK22F,iBAAiBnJ,YAAY,yBACpC,CAEStB,UAAUyX,GACjB3jG,KAAKo3F,SAAWp3F,KAAKorF,0BAA0BuY,EAAUvM,UACzDp3F,KAAK8jG,eAAiB9jG,KAAKorF,0BAA0BuY,EAAUG,gBAC/D9jG,KAAK+jG,UAAY/jG,KAAKorF,0BAA0BuY,EAAUI,WAC1D/jG,KAAKgkG,KAAOhkG,KAAKorF,0BAA0BuY,EAAUK,MACrDhkG,KAAKikG,eAAiBjkG,KAAKorF,0BAA0BuY,EAAUM,gBAC/DjkG,KAAK22F,iBAAmB32F,KAAKorF,0BAA0BuY,EAAUhN,iBACnE,CAEO5K,SACL,MAAO,CACL7gF,GAAIlL,KAAKkL,GACTqgF,SAAUvrF,KAAKurF,SACfnoF,KAAMpD,KAAKoD,KACXwgG,cAAe5jG,KAAK4jG,cACpBxM,SAAUp3F,KAAKo3F,SAASlsF,GACxB44F,eAAgB9jG,KAAK8jG,eAAe54F,GACpC64F,UAAW/jG,KAAK+jG,UAAU74F,GAC1B84F,KAAMhkG,KAAKgkG,KAAK94F,GAChB+4F,eAAgBjkG,KAAKikG,eAAe/4F,GACpCyrF,iBAAkB32F,KAAK22F,iBAAiBzrF,GAE5C,ECjEI,MAAOg5F,WAA6B1N,GAKxC32F,YAAYk1F,EAAoBjL,GAC9BhqF,MAAMi1F,EAAejL,GALvB9pF,cAAWivF,4BAEXjvF,oBAAoC,GAIlCA,KAAKk0F,WAAWa,GAChB/0F,KAAK+3F,4BACP,CAES7D,WAAWa,GAGlB,GAFAj1F,MAAMo0F,WAAWa,GAEbA,EAAcoP,0BAA0BrqF,MAC1C,UAAWsqF,KAAMrP,EAAcoP,eACzBC,aAAcV,IAChB1jG,KAAKmkG,eAAev7F,KAAK,IAAI86F,GAAgBU,EAAIpkG,KAAMA,KAAK8pF,WAIpE,CAES2B,gBAAgBtB,GACvBrqF,MAAM2rF,gBAAgBtB,GACtB,MAAMka,EAAala,EAEbma,EAAqB,GAC3B,UAAWF,KAAMpkG,KAAKmkG,eACfE,EAAWE,kBAAkBH,EAAGl5F,KACnCo5F,EAAmB17F,KAAKw7F,GAI5B,UAAWI,KAAqBF,EAAoB,CAClD,MAAMvnF,EAAM/c,KAAKmkG,eAAe3H,UAAU4H,GAAMA,EAAGl5F,KAAOs5F,EAAkBt5F,IAC5ElL,KAAKmkG,eAAehzF,OAAO4L,EAAK,GAChC/c,KAAK8pF,UAAU2S,gBAAgB+H,EAAiB,CAIlD,UAAWC,KAAaJ,EAAWF,eAAgB,CACjD,IAAIC,EAAKpkG,KAAKukG,kBAAkBE,EAAUv5F,IAEtCk5F,EACFA,EAAG3Y,gBAAgBgZ,IAEnBL,EAAK,IAAIV,GAAgBe,EAAWzkG,KAAMA,KAAK8pF,WAC/C9pF,KAAKmkG,eAAev7F,KAAKw7F,GACzBA,EAAG5Y,mBAAgB,CAGzB,CAESG,mBAAmBhb,GAC1B,OAAO7wE,MAAM6rF,mBAAmBhb,IAAiB3wE,KAAK2wE,KAAkB3wE,KAAKmkG,cAC/E,CAEAI,kBAAkBr5F,GAChB,OAAOlL,KAAKmkG,eAAevkE,KAAKwkE,GAAMA,EAAGl5F,KAAOA,EAClD,CAES6sF,6BACPj4F,MAAMi4F,4BACR,CAEStN,wBACP3qF,MAAM2qF,wBACN,UAAW2Z,KAAMpkG,KAAKmkG,eACpBC,EAAG3Z,uBAEP,CAESE,aACP,MAAMD,EAAU5qF,MAAM6qF,aACtB,UAAWyZ,KAAMpkG,KAAKmkG,eACpBzZ,EAAQ9hF,KAAKgoB,MAAMwzE,EAAGzZ,aAAc3qF,KAAKmkG,gBAG3C,OAAOzZ,CACT,CAES0K,gBACPt1F,MAAMs1F,gBACN,UAAWgP,KAAMpkG,KAAKmkG,eACpBC,EAAGhP,eAEP,CAEAyG,6BAEA,CAES9F,mBAAmBC,GAC1B,OAAOl2F,MAAMi2F,mBAAmBC,IAAWA,IAAWh2F,KAAKo3F,UAAYpB,IAAWh2F,KAAKq3F,WACzF,CAESnL,UAAUwY,GAGjB,GAFA5kG,MAAMosF,UAAUwY,GAEZA,EAAeP,0BAA0BrqF,MAC3C,UAAWsqF,KAAMM,EAAeP,eAAgB,CAC9C,MAAMQ,EAAQ,IAAIjB,GAAgBU,EAAIpkG,KAAMA,KAAK8pF,WACjD6a,EAAMzY,UAAUkY,GAChBpkG,KAAKmkG,eAAev7F,KAAK+7F,EAAK,CAIlC3kG,KAAKo1F,gBACLp1F,KAAKq1F,kBACP,ECrHI,MAAOuP,GAWX/kG,YAAYs0F,EAAyBh3C,GACnCn9C,KAAKm0F,gBAAkBA,EACvBn0F,KAAK6kG,UAAY1nD,EAAI0nD,UACrB7kG,KAAK8kG,aAAe3nD,EAAI2nD,aACxB9kG,KAAK+kG,aAAe5nD,EAAI4nD,aACxB/kG,KAAKglG,WAAa7nD,EAAI6nD,WACtBhlG,KAAKilG,IAAM9nD,EAAI8nD,IACfjlG,KAAKklG,IAAM/nD,EAAI+nD,IACfllG,KAAKmlG,IAAMhoD,EAAIgoD,IACfnlG,KAAKolG,KAAOjoD,EAAIioD,KAChBplG,KAAKqlG,MAAQloD,EAAIkoD,KACnB,CAEAC,YACEtlG,KAAK6kG,UAAY,EACjB7kG,KAAK8kG,aAAe,EACpB9kG,KAAK+kG,aAAe,EACpB/kG,KAAKglG,WAAa,EAClBhlG,KAAKilG,IAAM,EACXjlG,KAAKklG,IAAM,EACXllG,KAAKmlG,IAAM,EACXnlG,KAAKolG,KAAO,EACZplG,KAAKqlG,MAAQ,CACf,EC/BI,MAAOE,WAAwB1b,GAMnChqF,YAAY2lG,EAAKC,EAAI3b,EAAW4b,GAC9B5lG,MAAM0lG,EAAK1b,GANb9pF,cAAW,kBAEXA,YAA+B,GAK7BA,KAAKitF,gBAAkByY,EACvB1lG,KAAKm0F,gBAAkBqR,EAAIrR,gBAC3B,MAAMx6E,EAAS6rF,EAAI7rF,QAAU,GAC7B,QAASoD,EAAM,EAAGA,EAAM0oF,EAAI1oF,KACtBpD,EAAOoD,aAAgBwtE,WAA6B5wE,EAAOoD,GAAS,MACtE/c,KAAK2Z,OAAO/Q,KAAK,IAAI2hF,GAAmB5wE,EAAOoD,GAAM/c,KAAK8pF,UAAW9pF,OAGnD,IAAlB2Z,EAAOlV,QACTzE,KAAKwrF,mBAEPxrF,KAAKo1F,eACP,CAEAkQ,UAAU7gG,GACR,QAASD,EAAI,EAAGA,EAAIC,EAAQD,IAC1BxE,KAAK2Z,OAAO/Q,KAAK,IAAI2hF,GAAmB,GAAIvqF,KAAK8pF,UAAW9pF,OAE9DA,KAAKwrF,mBACLxrF,KAAKo1F,eACP,CAES3J,gBAAgBtB,GACvBrqF,MAAM2rF,gBAAgBtB,GACtBnqF,KAAKm0F,gBAAkBhK,EAAQgK,gBAC/B,QAAS3vF,EAAI,EAAGA,EAAIxE,KAAK2Z,OAAOlV,OAAQD,IACtCxE,KAAK2Z,OAAOnV,GAAGinF,gBAAgBtB,EAAQxwE,OAAOnV,GAElD,CAEmBmnF,mBAAmBhb,GACpC,OAAO7wE,MAAM6rF,mBAAmBhb,IAAiB3wE,KAAK2wE,aAAyB72D,KACjF,CAEAs7E,gBACE,UAAWvK,KAAM7qF,KAAK2Z,OACpBkxE,EAAG2C,YAAY,cAEnB,CAES/C,wBACP3qF,MAAM2qF,wBACN,UAAWJ,KAAUrqF,KAAK2Z,OACxB0wE,EAAOn+E,MAAQm+E,EAAOI,uBAE1B,CAESe,mBACP1rF,MAAM0rF,mBACN,UAAWX,KAAM7qF,KAAK2Z,OACpB3Z,KAAK8pF,UAAUwB,WAAWT,EAE9B,CAESz+B,cAAc+9B,GACrB,IAAIxhD,EAAU7oC,MAAMssD,cAAc+9B,GAClC,QAASptE,EAAM,EAAGA,EAAMotE,EAAQxwE,OAAOlV,OAAQsY,IAC7C4rB,EAAUA,GAAW3oC,KAAK2Z,OAAOoD,GAAK6uE,kBAAkBzB,EAAQxwE,OAAOoD,IAEzE,OAAO4rB,CACT,CAESujD,UAAUC,GACjB,QAASpvE,EAAM,EAAGA,EAAMovE,EAAaxyE,OAAOlV,OAAQsY,IAClD/c,KAAK2Z,OAAO/Q,KAAK5I,KAAK8pF,UAAUuB,sBAAsBc,EAAaxyE,OAAOoD,KAE5E/c,KAAK4qF,6BACP,CAESA,8BACP,UAAWC,KAAM7qF,KAAK2Z,OACpBkxE,EAAGC,mBAAmB9qF,KAE1B,CAEA+rF,SACE,MAAO,CACLR,SAAUvrF,KAAKurF,SACf4I,gBAAiBn0F,KAAKm0F,gBACtBx6E,OAAQ3Z,KAAK2Z,OAAOpS,IAAIsjF,GAAMA,EAAG3/E,IAErC,EC7EI,MAAOy6F,WACH1M,GAYRp5F,YAAYk1F,EAAoBjL,GAC9BhqF,MAAMi1F,EAAejL,GAVvB9pF,cAAWivF,WACXjvF,gCAAqE,GACrEA,sBAA2C,GAI3CA,iBAAc,CAAC,EAAG,IAAM,GAAK,IAAM,GAKjCA,KAAKk0F,WAAWa,GAChB/0F,KAAK+3F,4BACP,CAEAmD,mBACE,OAAIl7F,KAAK8pF,UAAU6V,mBACV,CAAC3/F,KAAKs3F,aAAct3F,KAAKu3F,aAAcv3F,KAAKi3F,UAAWj3F,KAAKm3F,YAE9D,CACLn3F,KAAKs3F,aACLt3F,KAAKu3F,aACLv3F,KAAKq4F,aACLr4F,KAAKs4F,YACLt4F,KAAKo4F,YACLp4F,KAAKm4F,aACLn4F,KAAKu4F,aACLv4F,KAAKw4F,YACLx4F,KAAKy4F,YACLz4F,KAAK04F,WACL14F,KAAKi3F,UACLj3F,KAAKm3F,WACLn3F,KAAKq5F,oBACLr5F,KAAKo5F,sBACLp5F,KAAKk5F,WACLl5F,KAAKm5F,SAET,CAEAgC,wCACE,MAAO,CAACn7F,KAAK62F,QAAS72F,KAAK82F,cAAe92F,KAAK+2F,UAAW/2F,KAAK42F,UAAW52F,KAAKk3F,eACjF,CAEA4E,yBAEA,CAEAD,6BAEA,CAES3H,WAAWa,GAGlB,GAFAj1F,MAAMo0F,WAAWa,GACjB/0F,KAAKq6F,qBAAuB,IAAI9P,GAAmBwK,EAAcsF,qBAAsBr6F,KAAK8pF,UAAW9pF,MACnG+0F,EAAc2M,sCAAsC5nF,MACtD,QAAStV,EAAI,EAAGA,EAAIuwF,EAAc2M,2BAA2Bj9F,OAAQD,IAAK,CACxE,MAAMk5F,EAAK3I,EAAc2M,2BAA2Bl9F,GACpDxE,KAAK0hG,2BAA2B94F,KAAK,IAAIg8F,GAAgClH,EAAGvJ,gBAAiBuJ,IAC7F,MACM8H,EAAM,IAAID,GADLxQ,EAAc6Q,iBAAmB7Q,EAAc6Q,iBAAiBphG,GAAK,GAC5CxE,KAAK6lG,YAAYphG,OAAQzE,KAAK8pF,UAAW9pF,MAC7EwlG,EAAIrR,gBAAkBuJ,EAAGvJ,gBACzBn0F,KAAK4lG,iBAAiBh9F,KAAK48F,EAAG,CAGlCxlG,KAAK8lG,mBAAqB/Q,EAAc+Q,YAAgB,IAAc,kBAAoB/Q,EAAc+Q,YAExG9lG,KAAK85F,kBAAoB/E,EAAc+E,WAAe,IAAc,eAAiB/E,EAAc+E,WACnG95F,KAAKi7F,kBACLj7F,KAAKo1F,eACP,CAEA6F,kBACEj7F,KAAK4zF,YAAc,IAAIF,GACvB1zF,KAAK4zF,YAAYD,cAAc,WAAY3zF,KAAKo3F,UAChDp3F,KAAK4zF,YAAYD,cAAc,cAAe3zF,KAAKq3F,YACrD,CAEShC,mBACPv1F,MAAMu1F,mBACFr1F,KAAKq6F,qBAAqBvL,eAC5B9uF,KAAKq6F,qBAAqB5L,gBAAgB,GAExCzuF,KAAKk5F,WAAWpK,eAClB9uF,KAAKk5F,WAAWzK,gBAAgB,EAAKf,cAAcgK,MAAMqO,WAAWC,KAExE,CAESjO,6BACPj4F,MAAMi4F,6BACN/3F,KAAKm4F,aAAanO,QAAQ,mBAC1BhqF,KAAKo4F,YAAYpO,QAAQ,kBACzBhqF,KAAKq4F,aAAarO,QAAQ,mBAC1BhqF,KAAKs4F,YAAYtO,QAAQ,kBACzBhqF,KAAKu4F,aAAavO,QAAQ,mBAC1BhqF,KAAKw4F,YAAYxO,QAAQ,kBACzBhqF,KAAKy4F,YAAYzO,QAAQ,kBACzBhqF,KAAK04F,WAAW1O,QAAQ,iBACxBhqF,KAAKi3F,UAAUjN,QAAQ,cACvBhqF,KAAKm3F,WAAWnN,QAAQ,eACxBhqF,KAAKo3F,SAASpN,QAAQyK,aACtBz0F,KAAKq5F,oBAAoBrP,QAAQyK,2BACjCz0F,KAAKo5F,sBAAsBpP,QAAQyK,6BACnCz0F,KAAKk5F,WAAWlP,QAAQyK,gBACxBz0F,KAAKm5F,SAASnP,QAAQyK,qBACxB,CAESjJ,mBACP1rF,MAAM0rF,mBACN,QAASzuE,EAAM,EAAGA,EAAM/c,KAAK4lG,iBAAiBnhG,OAAQsY,IACpD/c,KAAK4lG,iBAAiB7oF,GAAKyuE,kBAE/B,CAES4J,gBACPt1F,MAAMs1F,gBACNp1F,KAAKq6F,qBAAqB7M,YAAY,gBACtC,UAAW3C,KAAM7qF,KAAK4lG,iBACpB/a,EAAGuK,eAEP,CAEA6Q,wBAAwB9R,GACtB,MAAMuJ,EAAK,IAAIkH,GAAgCzQ,EAAiB,IAChEuJ,EAAG4H,YACH,MAAME,EAAM,IAAID,GAAgB,GAAIvlG,KAAK6lG,YAAYphG,OAAQzE,KAAK8pF,UAAW9pF,MAC7EwlG,EAAIrR,gBAAkBA,EACtBn0F,KAAK4lG,iBAAiBh9F,KAAK48F,GAC3BxlG,KAAK0hG,2BAA2B94F,KAAK80F,GACU,IAA3C19F,KAAK0hG,2BAA2Bj9F,SAClCzE,KAAK0hG,2BAA2B,GAAGmD,UAAY,EAC/C7kG,KAAK0hG,2BAA2B,GAAGoD,aAAe,EAClD9kG,KAAK0hG,2BAA2B,GAAGqD,aAAe,EAClD/kG,KAAK0hG,2BAA2B,GAAGsD,WAAa,EAChDhlG,KAAK0hG,2BAA2B,GAAGuD,IAAM,EACzCjlG,KAAK0hG,2BAA2B,GAAGwD,IAAM,EACzCllG,KAAK0hG,2BAA2B,GAAGyD,IAAM,EACzCnlG,KAAK0hG,2BAA2B,GAAG0D,KAAO,EAC1CplG,KAAK0hG,2BAA2B,GAAG2D,MAAQ,EAE/C,CAEAa,0BACE,UAAWxI,KAAM19F,KAAK0hG,2BACpBhE,EAAGmH,UAAY,KACfnH,EAAGoH,aAAe,KAClBpH,EAAGqH,aAAe,KAClBrH,EAAGsH,WAAa,KAChBtH,EAAGuH,IAAM,KACTvH,EAAGwH,IAAM,KACTxH,EAAGyH,IAAM,KACTzH,EAAG0H,KAAO,KACV1H,EAAG2H,MAAQ,IAEf,CAEAtD,8BAA8B5N,GAC5B,OAAOn0F,KAAK0hG,2BAA2B9hE,KAAKs/D,GACnCA,EAAI/K,kBAAoBA,EAEnC,CAEAgS,gCAAgChS,GAC9B,MAAM9iF,EAAQrR,KAAK0hG,2BAA2BxwF,QAAQlR,KAAK+hG,8BAA8B5N,IACrF9iF,GAAS,IACXrR,KAAK0hG,2BAA2BvwF,OAAOE,EAAO,GAC9CrR,KAAK4lG,iBAAiBz0F,OAAOE,EAAO,IAES,IAA3CrR,KAAK0hG,2BAA2Bj9F,SAClCzE,KAAK0hG,2BAA2B,GAAGmD,UAAY,EAC/C7kG,KAAK0hG,2BAA2B,GAAGoD,aAAe,EAClD9kG,KAAK0hG,2BAA2B,GAAGqD,aAAe,EAClD/kG,KAAK0hG,2BAA2B,GAAGsD,WAAa,EAChDhlG,KAAK0hG,2BAA2B,GAAGuD,IAAM,EACzCjlG,KAAK0hG,2BAA2B,GAAGwD,IAAM,EACzCllG,KAAK0hG,2BAA2B,GAAGyD,IAAM,EACzCnlG,KAAK0hG,2BAA2B,GAAG0D,KAAO,EAC1CplG,KAAK0hG,2BAA2B,GAAG2D,MAAQ,GAE7CrlG,KAAKomG,gCACP,CAEAA,iCACE,MAAM5/C,EAAa,CACjB,YACA,eACA,eACA,aACA,MACA,MACA,MACA,OACA,SAEF,QAAS24B,EAAI,EAAGA,EAAI34B,EAAW/hD,OAAQ06E,IAAK,CAC1C,MAAMhxE,EAAYq4C,EAAW24B,GACvBknB,EAAMrmG,KAAK0hG,2BAA2B9iF,OAAO,CAAC0nF,EAAMjmE,IAASksD,OAAO+Z,GAAQ/Z,OAAOlsD,EAAKlyB,IAAa,GAC3G,QAAS3J,EAAI,EAAGA,EAAIxE,KAAK0hG,2BAA2Bj9F,OAAQD,IAC9C,IAAR6hG,IACFrmG,KAAK0hG,2BAA2Bl9F,GAAG2J,IAAck4F,GAEvC,IAARA,IACFrmG,KAAK0hG,2BAA2Bl9F,GAAG2J,GAAa,EAAInO,KAAK0hG,2BAA2Bj9F,QAI5F,CAESgnF,gBAAgBtB,GACvB,MAAMxgF,EAAIwgF,EACVrqF,MAAM2rF,gBAAgBtB,GACtBnqF,KAAKoD,KAAO+mF,EAAQ/mF,KACpB,QAASoB,EAAI,EAAGA,EAAImF,EAAE+3F,2BAA2Bj9F,OAAQD,IACvDxE,KAAK0hG,2BAA2Bl9F,GAAGqgG,UAAYl7F,EAAE+3F,2BAA2Bl9F,GAAGqgG,UAC/E7kG,KAAK0hG,2BAA2Bl9F,GAAGsgG,aAAen7F,EAAE+3F,2BAA2Bl9F,GAAGsgG,aAClF9kG,KAAK0hG,2BAA2Bl9F,GAAGugG,aAAep7F,EAAE+3F,2BAA2Bl9F,GAAGugG,aAClF/kG,KAAK0hG,2BAA2Bl9F,GAAGwgG,WAAar7F,EAAE+3F,2BAA2Bl9F,GAAGwgG,WAChFhlG,KAAK0hG,2BAA2Bl9F,GAAGygG,IAAMt7F,EAAE+3F,2BAA2Bl9F,GAAGygG,IACzEjlG,KAAK0hG,2BAA2Bl9F,GAAG0gG,IAAMv7F,EAAE+3F,2BAA2Bl9F,GAAG0gG,IACzEllG,KAAK0hG,2BAA2Bl9F,GAAG2gG,IAAMx7F,EAAE+3F,2BAA2Bl9F,GAAG2gG,IACzEnlG,KAAK0hG,2BAA2Bl9F,GAAG4gG,KAAOz7F,EAAE+3F,2BAA2Bl9F,GAAG4gG,KAC1EplG,KAAK0hG,2BAA2Bl9F,GAAG6gG,MAAQ17F,EAAE+3F,2BAA2Bl9F,GAAG6gG,MAC3ErlG,KAAK4lG,iBAAiBphG,GAAGinF,gBAAgBtB,EAAQyb,iBAAiBphG,GAEtE,CAEmBmnF,mBAAmBhb,GACpC,OAAO7wE,MAAM6rF,mBAAmBhb,IAAiB3wE,KAAK2wE,aAAyB72D,KACjF,CAEAkoF,kCAAkCx9F,GAChC,MAAMk5F,EAAK19F,KAAK0hG,2BAA2Bl9F,GAE3C,GAAIk5F,EAAI,CACN,MAAM7E,EAAK74F,KAAK8pF,UAAUyV,iBAAiB7B,EAAGvJ,iBAC9C,OAAO0E,EAAKA,EAAGz1F,KAAO,KAGxB,OAAO,IACT,CAES8oF,UAAU8L,GAGjB,GAFAl4F,MAAMosF,UAAU8L,GAChBh4F,KAAKq6F,qBAAuBr6F,KAAKorF,0BAA0B4M,EAAwBqC,sBAC/ErC,EAAwB4N,iBAC1B,QAAS7oF,EAAM,EAAGA,EAAM/c,KAAK4lG,iBAAiBnhG,OAAQsY,IACpD/c,KAAK4lG,iBAAiB7oF,GAAKmvE,UAAU8L,EAAwB4N,iBAAiB7oF,IAGlF/c,KAAKo1F,gBACLp1F,KAAKq1F,mBACLr1F,KAAKi7F,iBACP,CAES7uC,cAAc+9B,GACrB,IAAIxhD,EAAU7oC,MAAMssD,cAAc+9B,GAClC,QAASptE,EAAM,EAAGA,EAAMotE,EAAQyb,iBAAiBnhG,OAAQsY,IACvD4rB,EAAUA,GAAW3oC,KAAK4lG,iBAAiB7oF,GAAKqvC,cAAc+9B,EAAQyb,iBAAiB7oF,IAEzF,OAAO4rB,CACT,CAES8hD,wBACP3qF,MAAM2qF,wBACN,QAAS1tE,EAAM,EAAGA,EAAM/c,KAAK4lG,iBAAiBnhG,OAAQsY,IACpD/c,KAAK4lG,iBAAiB7oF,GAAK0tE,uBAE/B,CAEAsR,qBACE,MAAMC,EAAch8F,KAAK8pF,UAAUmS,4BAA4BtyF,GACtDA,EAAEuyF,wBAA0Bl8F,KAAKkL,IACvC,GAEH,OAAO8wF,GAAeh8F,KAAK4zF,YAAYL,wBAAwB,WAAYyI,EAAYG,mBAAmBjwF,MAC5G,CAEAonF,yBACE,OAAOtzF,KAAK4zF,YAAYG,2BAC1B,CAEAwS,eAAep4F,GACb,QAAS3J,EAAI,EAAGA,EAAIxE,KAAK0hG,2BAA2Bj9F,OAAQD,IAC1DxE,KAAK0hG,2BAA2Bl9F,GAAG2J,GAAa,IAEpD,CAEAuuF,oCACE,MAAO,CAAC18F,KAAKo3F,SACf,ECpSI,MAAOoP,WACHvN,GAcRp5F,YAAYk1F,EAAoBjL,GAC9BhqF,MAAMi1F,EAAejL,GAZvB9pF,cAAWivF,WACXjvF,gCAAqE,GACrEA,sBAA2C,GAI3CA,iBAAc,CAAC,EAAG,IAAM,GAAK,IAAM,GAOjCA,KAAKk0F,WAAWa,GAChB/0F,KAAK+3F,4BACP,CAEAmD,mBACE,OAAIl7F,KAAK8pF,UAAU6V,mBACV,CACL3/F,KAAKs3F,aACLt3F,KAAKu3F,aACLv3F,KAAKymG,kBACLzmG,KAAK0mG,cACL1mG,KAAKi3F,UACLj3F,KAAKm3F,YAGF,CACLn3F,KAAKs3F,aACLt3F,KAAKu3F,aACLv3F,KAAKq4F,aACLr4F,KAAKs4F,YACLt4F,KAAKo4F,YACLp4F,KAAKm4F,aACLn4F,KAAKu4F,aACLv4F,KAAKw4F,YACLx4F,KAAKy4F,YACLz4F,KAAK04F,WACL14F,KAAKymG,kBACLzmG,KAAK0mG,cACL1mG,KAAKi3F,UACLj3F,KAAKm3F,WACLn3F,KAAKq5F,oBACLr5F,KAAKo5F,sBACLp5F,KAAKk5F,WACLl5F,KAAKm5F,SAET,CAEAgC,wCACE,MAAO,CACLn7F,KAAKymG,kBACLzmG,KAAK62F,QACL72F,KAAK82F,cACL92F,KAAK+2F,UACL/2F,KAAK42F,UACL52F,KAAKk3F,eAET,CAEA4E,yBAEA,CAES5H,WAAWa,GAKlB,GAJAj1F,MAAMo0F,WAAWa,GACjB/0F,KAAKq6F,qBAAuB,IAAI9P,GAAmBwK,EAAcsF,qBAAsBr6F,KAAK8pF,UAAW9pF,MACvGA,KAAKymG,kBAAoB,IAAIlc,GAAmBwK,EAAc0R,mBAAqB,GAAIzmG,KAAK8pF,UAAW9pF,MACvGA,KAAK0mG,cAAgB,IAAInc,GAAmBwK,EAAc2R,eAAiB,GAAI1mG,KAAK8pF,UAAW9pF,MAC3F+0F,EAAc2M,sCAAsC5nF,MACtD,QAAStV,EAAI,EAAGA,EAAIuwF,EAAc2M,2BAA2Bj9F,OAAQD,IAAK,CACxE,MAAMk5F,EAAK3I,EAAc2M,2BAA2Bl9F,GACpDxE,KAAK0hG,2BAA2B94F,KAAK,IAAIg8F,GAAgClH,EAAGvJ,gBAAiBuJ,IAC7F,MACM8H,EAAM,IAAID,GADLxQ,EAAc6Q,iBAAmB7Q,EAAc6Q,iBAAiBphG,GAAK,GAC5CxE,KAAK6lG,YAAYphG,OAAQzE,KAAK8pF,UAAW9pF,MAC7EwlG,EAAIrR,gBAAkBuJ,EAAGvJ,gBACzBn0F,KAAK4lG,iBAAiBh9F,KAAK48F,EAAG,CAGlCxlG,KAAK8lG,mBAAqB/Q,EAAc+Q,YAAgB,IAAc,kBAAoB/Q,EAAc+Q,YAExG9lG,KAAK85F,kBAAoB/E,EAAc+E,WAAe,IAAc,eAAiB/E,EAAc+E,WACnG95F,KAAKi7F,kBACLj7F,KAAKo1F,eACP,CAEA6F,kBACEj7F,KAAK4zF,YAAc,IAAIF,GACvB1zF,KAAK4zF,YAAYD,cAAc,WAAY3zF,KAAKo3F,UAChDp3F,KAAK4zF,YAAYD,cAAc,cAAe3zF,KAAKq3F,YACrD,CAEAwE,6BAEA,CAEAoK,wBAAwB9R,GACtB,MAAMuJ,EAAK,IAAIkH,GAAgCzQ,EAAiB,IAChEuJ,EAAG4H,YACH,MAAME,EAAM,IAAID,GAAgB,GAAIvlG,KAAK6lG,YAAYphG,OAAQzE,KAAK8pF,UAAW9pF,MAC7EwlG,EAAIrR,gBAAkBA,EACtBn0F,KAAK4lG,iBAAiBh9F,KAAK48F,GAC3BxlG,KAAK0hG,2BAA2B94F,KAAK80F,GACU,IAA3C19F,KAAK0hG,2BAA2Bj9F,SAClCzE,KAAK0hG,2BAA2B,GAAGmD,UAAY,EAC/C7kG,KAAK0hG,2BAA2B,GAAGoD,aAAe,EAClD9kG,KAAK0hG,2BAA2B,GAAGqD,aAAe,EAClD/kG,KAAK0hG,2BAA2B,GAAGsD,WAAa,EAChDhlG,KAAK0hG,2BAA2B,GAAGuD,IAAM,EACzCjlG,KAAK0hG,2BAA2B,GAAGwD,IAAM,EACzCllG,KAAK0hG,2BAA2B,GAAGyD,IAAM,EACzCnlG,KAAK0hG,2BAA2B,GAAG0D,KAAO,EAC1CplG,KAAK0hG,2BAA2B,GAAG2D,MAAQ,EAE/C,CAEAtJ,qBACE,MAAMC,EAAch8F,KAAK8pF,UAAUmS,4BAA4BtyF,GACtDA,EAAEuyF,wBAA0Bl8F,KAAKkL,IACvC,GAEH,OAAO8wF,GAAeh8F,KAAK4zF,YAAYL,wBAAwB,WAAYyI,EAAYG,mBAAmBjwF,MAC5G,CAEAonF,yBACE,OAAOtzF,KAAK4zF,YAAYG,2BAC1B,CAESsB,mBACPv1F,MAAMu1F,mBACFr1F,KAAKq6F,qBAAqBvL,eAC5B9uF,KAAKq6F,qBAAqB5L,gBAAgB,GAExCzuF,KAAKk5F,WAAWpK,eAClB9uF,KAAKk5F,WAAWzK,gBAAgB,EAAKf,cAAcgK,MAAMqO,WAAWC,KAExE,CAESjO,6BACPj4F,MAAMi4F,6BACN/3F,KAAKm4F,aAAanO,QAAQ,mBAC1BhqF,KAAKo4F,YAAYpO,QAAQ,kBACzBhqF,KAAKq4F,aAAarO,QAAQ,mBAC1BhqF,KAAKs4F,YAAYtO,QAAQ,kBACzBhqF,KAAKu4F,aAAavO,QAAQ,mBAC1BhqF,KAAKw4F,YAAYxO,QAAQ,kBACzBhqF,KAAKy4F,YAAYzO,QAAQ,kBACzBhqF,KAAK04F,WAAW1O,QAAQ,iBACxBhqF,KAAKymG,kBAAkBzc,QAAQ,uBAC/BhqF,KAAK0mG,cAAc1c,QAAQ,kBAC3BhqF,KAAKi3F,UAAUjN,QAAQ,cACvBhqF,KAAKm3F,WAAWnN,QAAQ,eACxBhqF,KAAKo3F,SAASpN,QAAQyK,aACtBz0F,KAAKq5F,oBAAoBrP,QAAQyK,2BACjCz0F,KAAKo5F,sBAAsBpP,QAAQyK,6BACnCz0F,KAAKk5F,WAAWlP,QAAQyK,gBACxBz0F,KAAKm5F,SAASnP,QAAQyK,qBACxB,CAESW,gBACPt1F,MAAMs1F,gBACNp1F,KAAKq6F,qBAAqB7M,YAAY,gBACtCxtF,KAAK0mG,cAAclZ,YAAY,gBAC/BxtF,KAAKymG,kBAAkBjZ,YAAY,yBACnC,UAAW3C,KAAM7qF,KAAK4lG,iBACpB/a,EAAGuK,eAEP,CAESlJ,UAAU8L,GAKjB,GAJAl4F,MAAMosF,UAAU8L,GAChBh4F,KAAKq6F,qBAAuBr6F,KAAKorF,0BAA0B4M,EAAwBqC,sBACnFr6F,KAAK0mG,cAAgB1mG,KAAKorF,0BAA0B4M,EAAwB0O,eAC5E1mG,KAAKymG,kBAAoBzmG,KAAKorF,0BAA0B4M,EAAwByO,mBAC5EzO,EAAwB4N,iBAC1B,QAAS7oF,EAAM,EAAGA,EAAM/c,KAAK4lG,iBAAiBnhG,OAAQsY,IACpD/c,KAAK4lG,iBAAiB7oF,GAAKmvE,UAAU8L,EAAwB4N,iBAAiB7oF,IAGlF/c,KAAKo1F,gBACLp1F,KAAKq1F,mBACLr1F,KAAKi7F,iBACP,CAEAmL,iCACE,MAAM5/C,EAAa,CACjB,YACA,eACA,eACA,aACA,MACA,MACA,MACA,OACA,SAEF,QAAS24B,EAAI,EAAGA,EAAI34B,EAAW/hD,OAAQ06E,IAAK,CAC1C,MAAMhxE,EAAYq4C,EAAW24B,GACvBknB,EAAMrmG,KAAK0hG,2BAA2B9iF,OAAO,CAAC0nF,EAAMjmE,IAASksD,OAAO+Z,GAAQ/Z,OAAOlsD,EAAKlyB,IAAa,GAC3G,QAAS3J,EAAI,EAAGA,EAAIxE,KAAK0hG,2BAA2Bj9F,OAAQD,IAC9C,IAAR6hG,IACFrmG,KAAK0hG,2BAA2Bl9F,GAAG2J,IAAck4F,GAEvC,IAARA,IACFrmG,KAAK0hG,2BAA2Bl9F,GAAG2J,GAAa,EAAInO,KAAK0hG,2BAA2Bj9F,QAI5F,CAEAyhG,0BACE,UAAWxI,KAAM19F,KAAK0hG,2BACpBhE,EAAGmH,UAAY,KACfnH,EAAGoH,aAAe,KAClBpH,EAAGqH,aAAe,KAClBrH,EAAGsH,WAAa,KAChBtH,EAAGuH,IAAM,KACTvH,EAAGwH,IAAM,KACTxH,EAAGyH,IAAM,KACTzH,EAAG0H,KAAO,KACV1H,EAAG2H,MAAQ,IAEf,CAEAtD,8BAA8B5N,GAC5B,OAAOn0F,KAAK0hG,2BAA2B9hE,KAAKs/D,GACnCA,EAAI/K,kBAAoBA,EAEnC,CAEAgS,gCAAgChS,GAC9B,MAAM9iF,EAAQrR,KAAK0hG,2BAA2BxwF,QAAQlR,KAAK+hG,8BAA8B5N,IACrF9iF,GAAS,IACXrR,KAAK4lG,iBAAiBz0F,OAAOE,EAAO,GACpCrR,KAAK0hG,2BAA2BvwF,OAAOE,EAAO,IAED,IAA3CrR,KAAK0hG,2BAA2Bj9F,SAClCzE,KAAK0hG,2BAA2B,GAAGmD,UAAY,EAC/C7kG,KAAK0hG,2BAA2B,GAAGoD,aAAe,EAClD9kG,KAAK0hG,2BAA2B,GAAGqD,aAAe,EAClD/kG,KAAK0hG,2BAA2B,GAAGsD,WAAa,EAChDhlG,KAAK0hG,2BAA2B,GAAGuD,IAAM,EACzCjlG,KAAK0hG,2BAA2B,GAAGwD,IAAM,EACzCllG,KAAK0hG,2BAA2B,GAAGyD,IAAM,EACzCnlG,KAAK0hG,2BAA2B,GAAG0D,KAAO,EAC1CplG,KAAK0hG,2BAA2B,GAAG2D,MAAQ,GAE7CrlG,KAAKomG,gCACP,CAES3a,gBAAgBtB,GACvBrqF,MAAM2rF,gBAAgBtB,GACtB,MAAMxgF,EAAIwgF,EACVnqF,KAAKoD,KAAO+mF,EAAQ/mF,KACpB,QAASoB,EAAI,EAAGA,EAAImF,EAAE+3F,2BAA2Bj9F,OAAQD,IACvDxE,KAAK0hG,2BAA2Bl9F,GAAGqgG,UAAYl7F,EAAE+3F,2BAA2Bl9F,GAAGqgG,UAC/E7kG,KAAK0hG,2BAA2Bl9F,GAAGsgG,aAAen7F,EAAE+3F,2BAA2Bl9F,GAAGsgG,aAClF9kG,KAAK0hG,2BAA2Bl9F,GAAGugG,aAAep7F,EAAE+3F,2BAA2Bl9F,GAAGugG,aAClF/kG,KAAK0hG,2BAA2Bl9F,GAAGwgG,WAAar7F,EAAE+3F,2BAA2Bl9F,GAAGwgG,WAChFhlG,KAAK0hG,2BAA2Bl9F,GAAGygG,IAAMt7F,EAAE+3F,2BAA2Bl9F,GAAGygG,IACzEjlG,KAAK0hG,2BAA2Bl9F,GAAG0gG,IAAMv7F,EAAE+3F,2BAA2Bl9F,GAAG0gG,IACzEllG,KAAK0hG,2BAA2Bl9F,GAAG2gG,IAAMx7F,EAAE+3F,2BAA2Bl9F,GAAG2gG,IACzEnlG,KAAK0hG,2BAA2Bl9F,GAAG4gG,KAAOz7F,EAAE+3F,2BAA2Bl9F,GAAG4gG,KAC1EplG,KAAK0hG,2BAA2Bl9F,GAAG6gG,MAAQ17F,EAAE+3F,2BAA2Bl9F,GAAG6gG,MAC3ErlG,KAAK4lG,iBAAiBphG,GAAGinF,gBAAgBtB,EAAQyb,iBAAiBphG,GAEtE,CAEmBmnF,mBAAmBhb,GACpC,OAAO7wE,MAAM6rF,mBAAmBhb,IAAiB3wE,KAAK2wE,aAAyB72D,KACjF,CAESsyC,cAAc+9B,GACrB,IAAIxhD,EAAU7oC,MAAMssD,cAAc+9B,GAClC,QAASptE,EAAM,EAAGA,EAAMotE,EAAQyb,iBAAiBnhG,OAAQsY,IACvD4rB,EAAUA,GAAW3oC,KAAK4lG,iBAAiB7oF,GAAKqvC,cAAc+9B,EAAQyb,iBAAiB7oF,IAEzF,OAAO4rB,CACT,CAES8hD,wBACP3qF,MAAM2qF,wBACN,QAAS1tE,EAAM,EAAGA,EAAM/c,KAAK4lG,iBAAiBnhG,OAAQsY,IACpD/c,KAAK4lG,iBAAiB7oF,GAAK0tE,uBAE/B,CAESe,mBACP1rF,MAAM0rF,mBACN,QAASzuE,EAAM,EAAGA,EAAM/c,KAAK4lG,iBAAiBnhG,OAAQsY,IACpD/c,KAAK4lG,iBAAiB7oF,GAAKyuE,kBAE/B,CAEAwW,kCAAkCx9F,GAChC,MAAMk5F,EAAK19F,KAAK0hG,2BAA2Bl9F,GAE3C,GAAIk5F,EAAI,CACN,MAAM7E,EAAK74F,KAAK8pF,UAAUyV,iBAAiB7B,EAAGvJ,iBAC9C,OAAO0E,EAAKA,EAAGz1F,KAAO,KAGxB,OAAO,IACT,CAEAmjG,eAAep4F,GACb,QAAS3J,EAAI,EAAGA,EAAIxE,KAAK0hG,2BAA2Bj9F,OAAQD,IAC1DxE,KAAK0hG,2BAA2Bl9F,GAAG2J,GAAa,IAEpD,CAEAuuF,oCACE,MAAO,CAAC18F,KAAKo3F,SACf,ECzUI,MAAOuP,WAAsB7R,GAGjCj1F,YAAYk1F,EAAoBjL,GAC9BhqF,MAAMi1F,EAAejL,GAHvB9pF,cAAW,iBAITA,KAAKk0F,WAAWa,GAChB/0F,KAAK+3F,4BACP,CAGS7D,WAAWa,GAAqB,CAGhC7I,UAAU8L,GAA+B,CAEzCD,6BAA8B,CAEvC8D,6BAEA,CAESzG,gBAAiB,CAEjBE,eAAgB,CAEhBD,mBAAoB,ECZzB,MAAOuR,WACH3N,GAqCRp5F,YAAYk1F,EAAoBjL,GAC9BhqF,MAAMi1F,EAAejL,GAnCvB9pF,cAAW,eAqBXA,gCAAoE,GACpEA,8BAA6D,GAc3DA,KAAKk0F,WAAWa,GAChB/0F,KAAK+3F,4BACP,CAEAmD,mBACE,OAAIl7F,KAAK8pF,UAAU6V,mBACV,CACL3/F,KAAKs3F,aACLt3F,KAAKu3F,aACLv3F,KAAK+5F,WACL/5F,KAAKi3F,UACLj3F,KAAKm3F,WACLn3F,KAAKm6F,gBACLn6F,KAAKymG,kBACLzmG,KAAK0mG,cACL1mG,KAAKi6F,aACLj6F,KAAKk6F,mBAGF,CACLl6F,KAAKs3F,aACLt3F,KAAKu3F,aACLv3F,KAAK+5F,WACL/5F,KAAKi3F,UACLj3F,KAAKm3F,WACLn3F,KAAKm6F,gBACLn6F,KAAKymG,kBACLzmG,KAAK0mG,cACL1mG,KAAKi6F,aACLj6F,KAAKk6F,kBACLl6F,KAAKq4F,aACLr4F,KAAKs4F,YACLt4F,KAAKo4F,YACLp4F,KAAKm4F,aACLn4F,KAAKu4F,aACLv4F,KAAKw4F,YACLx4F,KAAKy4F,YACLz4F,KAAK04F,WACL14F,KAAKq5F,oBACLr5F,KAAKo5F,sBACLp5F,KAAKk5F,WACLl5F,KAAKm5F,SAET,CAEAgC,wCACE,MAAO,CACLn7F,KAAK+5F,WACL/5F,KAAK62F,QACL72F,KAAK42F,UACL52F,KAAKk3F,eACLl3F,KAAKymG,kBACLzmG,KAAKi6F,aACLj6F,KAAKk6F,kBAET,CAES5E,eACPx1F,MAAMw1F,eACNt1F,KAAK66F,YAAY3uF,MAAQ,KACzBlM,KAAK0mG,cAAcx6F,MAAQ,IAC7B,CAEmBy/E,mBAAmBhb,GACpC,OAAO7wE,MAAM6rF,mBAAmBhb,IAAkC,qBAAjBA,CACnD,CAESujB,WAAWa,GAiClB,GAhCAj1F,MAAMo0F,WAAWa,GACjB/0F,KAAK+5F,WAAa,IAAIxP,GAAmBwK,EAAcgF,WAAY/5F,KAAK8pF,UAAW9pF,MACnFA,KAAKi6F,aAAe,IAAI1P,GAAmBwK,EAAckF,aAAcj6F,KAAK8pF,UAAW9pF,MACvFA,KAAKk6F,kBAAoB,IAAI3P,GAAmBwK,EAAcmF,kBAAmBl6F,KAAK8pF,UAAW9pF,MACjGA,KAAKo0F,gBAAkBW,EAAcX,iBAAmB,GACxDp0F,KAAKu6F,oBAAsB,IAAIhQ,GAAmBwK,EAAcwF,qBAAuB,GAAIv6F,KAAK8pF,UAAW9pF,MAC3GA,KAAKw6F,WAAa,IAAIjQ,GAAmBwK,EAAcyF,YAAc,GAAIx6F,KAAK8pF,UAAW9pF,MACzFA,KAAKy6F,uBAAyB,IAAIlQ,GAChCwK,EAAc0F,wBAA0B,GACxCz6F,KAAK8pF,UACL9pF,MAEFA,KAAK06F,cAAgB,IAAInQ,GAAmBwK,EAAc2F,eAAiB,GAAI16F,KAAK8pF,UAAW9pF,MAC/FA,KAAK26F,yBAA2B,IAAIpQ,GAClCwK,EAAc4F,0BAA4B,GAC1C36F,KAAK8pF,UACL9pF,MAEFA,KAAK46F,gBAAkB,IAAIrQ,GAAmBwK,EAAc6F,iBAAmB,GAAI56F,KAAK8pF,UAAW9pF,MACnGA,KAAK66F,YAAc,IAAItQ,GAAmBwK,EAAc8F,aAAe,GAAI76F,KAAK8pF,UAAW9pF,MAC3FA,KAAKm6F,gBAAkB,IAAI5P,GAAmBwK,EAAcoF,iBAAmB,GAAIn6F,KAAK8pF,UAAW9pF,MACnGA,KAAK8gG,qBAAuB,IAAIvW,GAAmBwK,EAAc+L,qBAAsB9gG,KAAK8pF,UAAW9pF,MACvGA,KAAK6mG,gBAAkB,IAAItc,GAAmBwK,EAAc8R,gBAAiB7mG,KAAK8pF,UAAW9pF,MAC7FA,KAAK8mG,eAAiB,IAAIvc,GAAmBwK,EAAc+R,eAAgB9mG,KAAK8pF,UAAW9pF,MAC3FA,KAAK86F,UAAY/F,EAAc+F,WAAanG,WAC5C30F,KAAK+mG,yBAA2BhS,EAAcgS,yBAC9C/mG,KAAKgnG,iBAAmB,IAAIzc,GAAmBwK,EAAciS,iBAAkBhnG,KAAK8pF,UAAW9pF,MAC/FA,KAAKinG,iBAAmB,IAAI1c,GAAmBwK,EAAckS,iBAAkBjnG,KAAK8pF,UAAW9pF,MAC/FA,KAAKknG,mBAAqB,IAAI3c,GAAmBwK,EAAcmS,mBAAoBlnG,KAAK8pF,UAAW9pF,MACnGA,KAAKymG,kBAAoB,IAAIlc,GAAmBwK,EAAc0R,mBAAqB,GAAIzmG,KAAK8pF,UAAW9pF,MACvGA,KAAK0mG,cAAgB,IAAInc,GAAmBwK,EAAc2R,eAAiB,GAAI1mG,KAAK8pF,UAAW9pF,MAC/FA,KAAKo/F,iBAAmBrK,EAAcqK,iBAClCrK,EAAc2M,sCAAsC5nF,MACtD,UAAW4jF,KAAM3I,EAAc2M,2BAC7B1hG,KAAK0hG,2BAA2B94F,KAAK,IAAI60F,GAA+BC,IAG5E,GAAI3I,EAAcoS,oCAAoCrtF,MACpD,UAAW4jF,KAAM3I,EAAcoS,yBAC7BnnG,KAAKmnG,yBAAyBv+F,KAAK,IAAI40F,GAA0BE,EAAGvJ,gBAAiBuJ,EAAGxxF,QAI1FlM,KAAKq/F,yBADItK,EAAcsK,kBAAsB,IACpB,QAEAtK,EAAcsK,kBAGvCr/F,KAAKonG,2BADIrS,EAAcqS,kBAAsB,MAGlBrS,EAAcqS,mBAE3CpnG,KAAKi7F,iBACP,CAESzP,mBACP1rF,MAAM0rF,kBACR,CAESC,gBAAgBtB,GACvBrqF,MAAM2rF,gBAAgBtB,GACtB,MAAMkd,EAAKld,EACX,QAAS3lF,EAAI,EAAGA,EAAI6iG,EAAG3F,2BAA2Bj9F,OAAQD,IACxDxE,KAAK0hG,2BAA2Bl9F,GAAG0H,MAAQm7F,EAAG3F,2BAA2Bl9F,GAAG0H,MAC5ElM,KAAK0hG,2BAA2Bl9F,GAAGm5F,aAAe0J,EAAG3F,2BAA2Bl9F,GAAGm5F,aACnF39F,KAAK0hG,2BAA2Bl9F,GAAGo5F,aAAeyJ,EAAG3F,2BAA2Bl9F,GAAGo5F,aAErF,QAASp5F,EAAI,EAAGA,EAAI6iG,EAAGF,yBAAyB1iG,OAAQD,IACtDxE,KAAKmnG,yBAAyB3iG,GAAG0H,MAAQm7F,EAAGF,yBAAyB3iG,GAAG0H,KAE5E,CAES0+E,8BACP9qF,MAAM8qF,6BACR,CAESmN,6BACPj4F,MAAMi4F,6BACN/3F,KAAK+5F,WAAW/P,QAAQ,oBACxBhqF,KAAKi6F,aAAajQ,QAAQ,kBAC1BhqF,KAAKi3F,UAAUjN,QAAQ,cACvBhqF,KAAKm3F,WAAWnN,QAAQ,eACxBhqF,KAAKm6F,gBAAgBnQ,QAAQ,qBAC7BhqF,KAAKymG,kBAAkBzc,QAAQ,uBAC/BhqF,KAAK0mG,cAAc1c,QAAQ,kBAC3BhqF,KAAKk6F,kBAAkBlQ,QAAQ,wBAC/BhqF,KAAKm4F,aAAanO,QAAQ,mBAC1BhqF,KAAKo4F,YAAYpO,QAAQ,kBACzBhqF,KAAKq4F,aAAarO,QAAQ,mBAC1BhqF,KAAKs4F,YAAYtO,QAAQ,kBACzBhqF,KAAKu4F,aAAavO,QAAQ,mBAC1BhqF,KAAKw4F,YAAYxO,QAAQ,kBACzBhqF,KAAKy4F,YAAYzO,QAAQ,kBACzBhqF,KAAK04F,WAAW1O,QAAQ,iBACxBhqF,KAAK6mG,gBAAgB7c,QAAQyK,qBAC7Bz0F,KAAK8gG,qBAAqB9W,QAAQyK,2BAClCz0F,KAAKgnG,iBAAiBhd,QAAQ,sBAC9BhqF,KAAKinG,iBAAiBjd,QAAQ,sBAC9BhqF,KAAKknG,mBAAmBld,QAAQ,wBAChChqF,KAAKo3F,SAASpN,QAAQyK,aACtBz0F,KAAKq5F,oBAAoBrP,QAAQyK,2BACjCz0F,KAAKo5F,sBAAsBpP,QAAQyK,6BACnCz0F,KAAKk5F,WAAWlP,QAAQyK,gBACxBz0F,KAAKm5F,SAASnP,QAAQyK,qBACxB,CAEAwR,wBAAwB9R,GACtBn0F,KAAKkmG,0BACLlmG,KAAK0hG,2BAA2B94F,KAAK,IAAI60F,GAA+B,CAAEtJ,qBAC1En0F,KAAKmnG,yBAAyBv+F,KAAK,IAAI40F,GAA0BrJ,EAAiB,OAEnC,IAA3Cn0F,KAAK0hG,2BAA2Bj9F,SAClCzE,KAAK0hG,2BAA2B,GAAGx1F,MAAQ,EAE/C,CAEAg6F,0BACE,UAAWxI,KAAM19F,KAAK0hG,2BACpBhE,EAAGxxF,MAAQ,IAEf,CAEA61F,8BAA8B5N,GAC5B,OAAOn0F,KAAK0hG,2BAA2B9hE,KAAKs/D,GACnCA,EAAI/K,kBAAoBA,EAEnC,CAEAmT,4BAA4BnT,GAC1B,OAAOn0F,KAAKmnG,yBAAyBvnE,KAAKs/D,GACjCA,EAAI/K,kBAAoBA,EAEnC,CAEA6N,kCAAkCx9F,GAChC,MAAMk5F,EAAK19F,KAAK0hG,2BAA2Bl9F,GAE3C,GAAIk5F,EAAI,CACN,MAAM7E,EAAK74F,KAAK8pF,UAAUyV,iBAAiB7B,EAAGvJ,iBAC9C,OAAO0E,EAAKA,EAAGz1F,KAAO,KAGxB,OAAO,IACT,CAEA+iG,gCAAgChS,GAC9B,MAAM9iF,EAAQrR,KAAK0hG,2BAA2BxwF,QAAQlR,KAAK+hG,8BAA8B5N,IAErF9iF,GAAS,IACXrR,KAAK0hG,2BAA2BvwF,OAAOE,EAAO,GAC9CrR,KAAKmnG,yBAAyBh2F,OAAOE,EAAO,GAEhD,CAESgkF,mBACHr1F,KAAK+5F,WAAWjL,eAClB9uF,KAAK+5F,WAAWtL,gBAAgB,IAG9BzuF,KAAKk6F,kBAAkBpL,eACzB9uF,KAAKk6F,kBAAkBzL,qBAAgBxgF,EAAWy/E,cAAcgK,MAAMiC,gBAAgByB,OAGpFp7F,KAAKy6F,uBAAuB3L,eAC9B9uF,KAAKy6F,uBAAuBhM,gBAAgB,KAAMf,cAAcgK,MAAM2D,mBAAmBC,cAGvFt7F,KAAK06F,cAAc5L,eACrB9uF,KAAK06F,cAAcjM,gBAAgB,KAAMf,cAAcgK,MAAM6D,uBAAuBC,WAGlFx7F,KAAKu6F,oBAAoBzL,eAC3B9uF,KAAKu6F,oBAAoB9L,gBAAgB,GAAKf,cAAcgK,MAAM+D,cAAcC,QAG9E17F,KAAKw6F,WAAW1L,eAClB9uF,KAAKw6F,WAAW/L,gBAAgB,GAAIf,cAAcgK,MAAMiE,uBAAuBC,YAG7E57F,KAAK26F,yBAAyB7L,eAChC9uF,KAAK26F,yBAAyBlM,gBAAgB,OAG5CzuF,KAAK46F,gBAAgB9L,eACvB9uF,KAAK46F,gBAAgBnM,gBAAgB,MAGnCzuF,KAAK8mG,eAAehY,eACtB9uF,KAAK8mG,eAAerY,gBAAgB,IAGjCzuF,KAAKo/F,mBACRp/F,KAAKo/F,iBAAmB,cAGtBp/F,KAAKk5F,WAAWpK,eAClB9uF,KAAKk5F,WAAWzK,gBAAgB,EAAKf,cAAcgK,MAAMqO,WAAWC,MAGtElmG,MAAMu1F,kBACR,CAESD,gBACPt1F,MAAMs1F,gBACNp1F,KAAK+5F,WAAWvM,YAAY,WAC5BxtF,KAAKk6F,kBAAkB1M,YAAY,mBACnCxtF,KAAKi6F,aAAazM,YAAY,0BAC9BxtF,KAAKgnG,iBAAiBxZ,YAAY,sBAClCxtF,KAAKinG,iBAAiBzZ,YAAYgH,kBAClCx0F,KAAKknG,mBAAmB1Z,YAAYgH,kBACpCx0F,KAAKu6F,oBAAoB/M,YAAY,iBACrCxtF,KAAKw6F,WAAWhN,YAAY,0BAC5BxtF,KAAKy6F,uBAAuBjN,YAAY,sBACxCxtF,KAAK06F,cAAclN,YAAY,0BAC/BxtF,KAAK46F,gBAAgBpN,YAAY,qBACjCxtF,KAAK66F,YAAYrN,YAAY,gBAC7BxtF,KAAKm6F,gBAAgB3M,YAAYgH,8BACjCx0F,KAAK26F,yBAAyBnN,YAAY,iBAC1CxtF,KAAK8gG,qBAAqBtT,YAAYgH,kBACtCx0F,KAAK6mG,gBAAgBrZ,YAAYgH,kBACjCx0F,KAAK8mG,eAAetZ,YAAY,WAChCxtF,KAAK0mG,cAAclZ,YAAY,gBAC/BxtF,KAAKymG,kBAAkBjZ,YAAY,wBACrC,CAES/C,wBACP3qF,MAAM2qF,uBACR,CAESr+B,cAAc+9B,GACrB,OAAOrqF,MAAMssD,cAAc+9B,EAC7B,CAESc,+BACP,OAAOnrF,MAAMmrF,8BACf,CAESf,aAAaC,GACpBnqF,KAAKoqF,gCAAgCD,EACvC,CAEA0R,6BACE,OAAO,IAAItR,GAAmBvqF,KAAKu3F,aAAcv3F,KAAK8pF,UAAW9pF,KACnE,CAESksF,UAAUyQ,GACjB78F,MAAMosF,UAAUyQ,GAChB38F,KAAK+5F,WAAa/5F,KAAKorF,0BAA0BuR,EAAI5C,YACrD/5F,KAAKk6F,kBAAoBl6F,KAAKorF,0BAA0BuR,EAAIzC,mBAC5Dl6F,KAAKm6F,gBAAkBn6F,KAAKorF,0BAA0BuR,EAAIxC,iBAC1Dn6F,KAAKi6F,aAAej6F,KAAKorF,0BAA0BuR,EAAI1C,cAEvDj6F,KAAKw6F,WAAax6F,KAAKorF,0BAA0BuR,EAAInC,YACrDx6F,KAAKu6F,oBAAsBv6F,KAAKorF,0BAA0BuR,EAAIpC,qBAC9Dv6F,KAAK46F,gBAAkB56F,KAAKorF,0BAA0BuR,EAAI/B,iBAC1D56F,KAAK66F,YAAc76F,KAAKorF,0BAA0BuR,EAAI9B,aACtD76F,KAAK26F,yBAA2B36F,KAAKorF,0BAA0BuR,EAAIhC,0BACnE36F,KAAK06F,cAAgB16F,KAAKorF,0BAA0BuR,EAAIjC,eACxD16F,KAAKy6F,uBAAyBz6F,KAAKorF,0BAA0BuR,EAAIlC,wBACjEz6F,KAAK6mG,gBAAkB7mG,KAAKorF,0BAA0BuR,EAAIkK,iBAC1D7mG,KAAK8gG,qBAAuB9gG,KAAKorF,0BAA0BuR,EAAImE,sBAC/D9gG,KAAK8mG,eAAiB9mG,KAAKorF,0BAA0BuR,EAAImK,gBACzD9mG,KAAKgnG,iBAAmBhnG,KAAKorF,0BAA0BuR,EAAIqK,kBAC3DhnG,KAAKinG,iBAAmBjnG,KAAKorF,0BAA0BuR,EAAIsK,kBAC3DjnG,KAAKknG,mBAAqBlnG,KAAKorF,0BAA0BuR,EAAIuK,oBAC7DlnG,KAAK0mG,cAAgB1mG,KAAKorF,0BAA0BuR,EAAI+J,eACxD1mG,KAAKymG,kBAAoBzmG,KAAKorF,0BAA0BuR,EAAI8J,mBAC5DzmG,KAAKo1F,gBACLp1F,KAAKq1F,mBACLr1F,KAAKi7F,iBACP,CAEAA,kBACEj7F,KAAK4zF,YAAc,IAAIF,GACvB1zF,KAAK4zF,YAAYD,cAAc,WAAY3zF,KAAKo3F,UAChDp3F,KAAK4zF,YAAYD,cAAc,cAAe3zF,KAAKq3F,aACnDr3F,KAAK4zF,YAAYD,cAAc,uBAAwB3zF,KAAK8gG,sBAC5D9gG,KAAK4zF,YAAYD,cAAc,kBAAmB3zF,KAAK6mG,gBACzD,CAEA9K,qBACE,MAAMC,EAAch8F,KAAK8pF,UAAUmS,4BAA4BtyF,GACtDA,EAAEuyF,wBAA0Bl8F,KAAKkL,IACvC,GACH,OACE8wF,IACCh8F,KAAK4zF,YAAYL,wBAAwB,WAAYyI,EAAYG,mBAAmBjwF,QACnFlM,KAAK4zF,YAAYL,wBAAwB,uBAAwByI,EAAYqF,OAAOn1F,QACpFlM,KAAK4zF,YAAYL,wBAAwB,kBAAmByI,EAAYuL,SAASr7F,OAEvF,CAEA4vF,yBACE,MAAMjnF,EAAS,CAAC7U,KAAK+5F,WAAY/5F,KAAKu3F,aAAcv3F,KAAK42F,UAAW52F,KAAK62F,SACzE,OAAI72F,KAAK86F,YAAcnG,YACrB9/E,EAAOjM,KAAK5I,KAAKi6F,aAAcj6F,KAAKk6F,mBAE/BrlF,CACT,CAEAy+E,yBACE,OAAOtzF,KAAK4zF,YAAYG,2BAC1B,CAEA2I,oCACE,MAAO,CAAC18F,KAAKo3F,SACf,EC/aK,MAAMoQ,GACX,6jFCeI,MAAOC,WACHxO,GAgBRp5F,YAAYk1F,EAAoBjL,GAC9BhqF,MAAMi1F,EAAejL,GAdvB9pF,cAAWivF,WAeTjvF,KAAKk0F,WAAWa,GAChB/0F,KAAK+3F,4BACP,CAEAmD,mBACE,OAAIl7F,KAAK8pF,UAAU6V,mBACV,CACL3/F,KAAKs3F,aACLt3F,KAAKu3F,aACLv3F,KAAKs6F,gBACLt6F,KAAK0nG,aACL1nG,KAAKymG,kBACLzmG,KAAK0mG,cACL1mG,KAAKi3F,UACLj3F,KAAKm3F,WACLn3F,KAAK2nG,wBACL3nG,KAAK4nG,oBAGF,CACL5nG,KAAKs3F,aACLt3F,KAAKu3F,aACLv3F,KAAKs6F,gBACLt6F,KAAK0nG,aACL1nG,KAAKymG,kBACLzmG,KAAK0mG,cACL1mG,KAAKo4F,YACLp4F,KAAKm4F,aACLn4F,KAAKq4F,aACLr4F,KAAKs4F,YACLt4F,KAAKu4F,aACLv4F,KAAKw4F,YACLx4F,KAAKy4F,YACLz4F,KAAK04F,WACL14F,KAAKi3F,UACLj3F,KAAKm3F,WACLn3F,KAAK2nG,wBACL3nG,KAAK4nG,mBACL5nG,KAAKq5F,oBACLr5F,KAAKo5F,sBACLp5F,KAAKk5F,WACLl5F,KAAKm5F,SAET,CAEAgC,wCACE,MAAO,CACLn7F,KAAK2nG,wBACL3nG,KAAK4nG,mBACL5nG,KAAKymG,kBACLzmG,KAAK62F,QACL72F,KAAK82F,cACL92F,KAAK+2F,UACL/2F,KAAK42F,UACL52F,KAAKk3F,eAET,CAEA4E,yBAEA,CAEAD,6BAEA,CAES3H,WAAWa,GAClBj1F,MAAMo0F,WAAWa,GACjB/0F,KAAKs6F,gBAAkB,IAAI/P,GAAmBwK,EAAcuF,gBAAiBt6F,KAAK8pF,UAAW9pF,MAC7FA,KAAK0nG,aAAe,IAAInd,GAAmBwK,EAAc2S,aAAc1nG,KAAK8pF,UAAW9pF,MACvFA,KAAKymG,kBAAoB,IAAIlc,GAAmBwK,EAAc0R,mBAAqB,GAAIzmG,KAAK8pF,UAAW9pF,MACvGA,KAAK0mG,cAAgB,IAAInc,GAAmBwK,EAAc2R,eAAiB,GAAI1mG,KAAK8pF,UAAW9pF,MAC/FA,KAAK6nG,WAAa,IAAItd,GAAmBwK,EAAc8S,YAAc,GAAI7nG,KAAK8pF,UAAW9pF,MACzFA,KAAK8nG,WAAa,IAAIvd,GAAmBwK,EAAc+S,YAAc,GAAI9nG,KAAK8pF,UAAW9pF,MACzFA,KAAK4nG,mBAAqB,IAAIrd,GAAmBwK,EAAc6S,oBAAsB,GAAI5nG,KAAK8pF,UAAW9pF,MACzGA,KAAK2nG,wBAA0B,IAAIpd,GACjCwK,EAAc4S,yBAA2B,GACzC3nG,KAAK8pF,UACL9pF,MAGAA,KAAKg7F,wBADIjG,EAAciG,eAAmB,MAGpBjG,EAAciG,eAEtCh7F,KAAK+nG,mBAAqBhT,EAAcgT,YAAgB,IAAcP,GAAkBzS,EAAcgT,YAEtG/nG,KAAKi7F,iBACP,CAEAA,kBACEj7F,KAAK4zF,YAAc,IAAIF,GACvB1zF,KAAK4zF,YAAYD,cAAc,WAAY3zF,KAAKo3F,UAChDp3F,KAAK4zF,YAAYD,cAAc,cAAe3zF,KAAKq3F,aACnDr3F,KAAK4zF,YAAYD,cAAc,aAAc3zF,KAAK6nG,YAClD7nG,KAAK4zF,YAAYD,cAAc,aAAc3zF,KAAK8nG,WACpD,CAES1S,gBACPt1F,MAAMs1F,gBACNp1F,KAAKs6F,gBAAgB9M,YAAY,WACjCxtF,KAAK0nG,aAAala,YAAY,gBAC9BxtF,KAAK0mG,cAAclZ,YAAY,gBAC/BxtF,KAAKymG,kBAAkBjZ,YAAY,yBACnCxtF,KAAK6nG,WAAWra,YAAY,iBAC5BxtF,KAAK8nG,WAAWta,YAAY,gBAC5BxtF,KAAK2nG,wBAAwBna,YAAYgH,YACzCx0F,KAAK4nG,mBAAmBpa,YAAYgH,gCACtC,CAESa,mBACPv1F,MAAMu1F,mBACFr1F,KAAK4nG,mBAAmB9Y,eAC1B9uF,KAAK4nG,mBAAmBnZ,gBAAgB,QAEtCzuF,KAAK2nG,wBAAwB7Y,eAC/B9uF,KAAK2nG,wBAAwBlZ,gBAAgB,IAE3CzuF,KAAKk5F,WAAWpK,eAClB9uF,KAAKk5F,WAAWzK,gBAAgB,EAAKf,cAAcgK,MAAMqO,WAAWC,KAExE,CAES9Z,UAAUyQ,GACjB78F,MAAMosF,UAAUyQ,GAChB38F,KAAKs6F,gBAAkBt6F,KAAKorF,0BAA0BuR,EAAIrC,iBAC1Dt6F,KAAK0nG,aAAe1nG,KAAKorF,0BAA0BuR,EAAI+K,cACvD1nG,KAAK0mG,cAAgB1mG,KAAKorF,0BAA0BuR,EAAI+J,eACxD1mG,KAAKymG,kBAAoBzmG,KAAKorF,0BAA0BuR,EAAI8J,mBAC5DzmG,KAAK6nG,WAAa7nG,KAAKorF,0BAA0BuR,EAAIkL,YACrD7nG,KAAK8nG,WAAa9nG,KAAKorF,0BAA0BuR,EAAImL,YACrD9nG,KAAK4nG,mBAAqB5nG,KAAKorF,0BAA0BuR,EAAIiL,oBAC7D5nG,KAAK2nG,wBAA0B3nG,KAAKorF,0BAA0BuR,EAAIgL,yBAClE3nG,KAAKo1F,gBACLp1F,KAAKq1F,mBACLr1F,KAAKi7F,iBACP,CAEAc,qBACE,MAAMC,EAAch8F,KAAK8pF,UAAUmS,4BAA4BtyF,GACtDA,EAAEuyF,wBAA0Bl8F,KAAKkL,IACvC,GAEH,OAAO8wF,GAAeh8F,KAAK4zF,YAAYL,wBAAwB,WAAYyI,EAAYG,mBAAmBjwF,MAC5G,CAEAonF,yBACE,OAAOtzF,KAAK4zF,YAAYG,2BAC1B,CAESgE,6BACPj4F,MAAMi4F,6BACN/3F,KAAKs6F,gBAAgBtQ,QAAQ,oBAC7BhqF,KAAK0nG,aAAa1d,QAAQ,iBAC1BhqF,KAAK8nG,WAAW9d,QAAQyK,gBACxBz0F,KAAK6nG,WAAW7d,QAAQyK,gBACxBz0F,KAAKi3F,UAAUjN,QAAQ,cACvBhqF,KAAKm3F,WAAWnN,QAAQ,eACxBhqF,KAAKymG,kBAAkBzc,QAAQ,uBAC/BhqF,KAAK0mG,cAAc1c,QAAQ,kBAC3BhqF,KAAKm4F,aAAanO,QAAQ,mBAC1BhqF,KAAKo4F,YAAYpO,QAAQ,kBACzBhqF,KAAKq4F,aAAarO,QAAQ,mBAC1BhqF,KAAKs4F,YAAYtO,QAAQ,kBACzBhqF,KAAKu4F,aAAavO,QAAQ,mBAC1BhqF,KAAKw4F,YAAYxO,QAAQ,kBACzBhqF,KAAKy4F,YAAYzO,QAAQ,kBACzBhqF,KAAK04F,WAAW1O,QAAQ,iBAExBhqF,KAAK2nG,wBAAwB3d,QAAQyK,+BACrCz0F,KAAK4nG,mBAAmB5d,QAAQyK,yBAChCz0F,KAAKq5F,oBAAoBrP,QAAQyK,2BACjCz0F,KAAKo5F,sBAAsBpP,QAAQyK,6BACnCz0F,KAAKk5F,WAAWlP,QAAQyK,gBACxBz0F,KAAKm5F,SAASnP,QAAQyK,sBACtBz0F,KAAKo3F,SAASpN,QAAQyK,YACxB,CAEAiI,oCACE,MAAO,CAAC18F,KAAKo3F,SACf,CAEShrC,cAAc+9B,GAErB,OADgBrqF,MAAMssD,cAAc+9B,IAClBA,EAAQ4d,cAAgB/nG,KAAK+nG,WACjD,ECtNI,MAAOC,WAAoBlT,GAG/Bj1F,YAAYk1F,EAAoBjL,GAC9BhqF,MAAMi1F,EAAejL,GAHvB9pF,cAAWivF,mBAITjvF,KAAKk0F,WAAWa,GAChB/0F,KAAK+3F,4BACP,CAEAmD,mBACE,MAAO,CAACl7F,KAAKioG,iBAAiB9L,mBAChC,CAEA8L,iBACE,OAAOjoG,KAAK8pF,UAAUmS,4BAA4BtyF,GACzCA,EAAEuyF,wBAA0Bl8F,KAAKkL,IACvC,EACL,CAGSgpF,WAAWa,GAAqB,CAEhCgD,6BAA8B,CAEvC8D,6BAEA,CAESzG,gBAAiB,CAEjBC,mBAAoB,CACpBC,eAAgB,ECrCpB,IAAK4S,GAGX,aAHWA,UAA6B,KACvCA,yBACAA,0BAFUA,GAAZ,IAAYA,GAGX,GCcK,MAAOC,WACH3R,GAoBRqF,6BAEA,CAEAh8F,YAAYk1F,EAAoBjL,GAC9BhqF,MAAMi1F,EAAejL,GAtBvB9pF,cAAWivF,qBACXjvF,gCAAoE,GAsBlEA,KAAKk0F,WAAWa,GAChB/0F,KAAK+3F,4BACP,CAEAmD,mBACE,MAAO,CACLl7F,KAAKg6F,aACLh6F,KAAKooG,gBACLpoG,KAAKqoG,gBACLroG,KAAKsoG,kBACLtoG,KAAKuoG,iBAET,CAEApN,wCACE,MAAO,CAACn7F,KAAKg6F,aACf,CAEA8B,yBAEA,CAES5H,WAAWa,GAuBlB,GAtBAj1F,MAAMo0F,WAAWa,GACjB/0F,KAAKg6F,aAAe,IAAIzP,GAAmBwK,EAAciF,aAAch6F,KAAK8pF,UAAW9pF,MACvFA,KAAKooG,gBAAkB,IAAI7d,GAAmBwK,EAAcqT,gBAAiBpoG,KAAK8pF,UAAW9pF,MAC7FA,KAAKwoG,UAAY,IAAIje,GAAmBwK,EAAcyT,UAAWxoG,KAAK8pF,UAAW9pF,MACjFA,KAAKyoG,WAAa,IAAIle,GAAmBwK,EAAc0T,WAAYzoG,KAAK8pF,UAAW9pF,MACnFA,KAAK0oG,YAAc,IAAIne,GAAmBwK,EAAc2T,YAAa1oG,KAAK8pF,UAAW9pF,MAErFA,KAAKqoG,gBAAkB,IAAI9d,GAAmBwK,EAAcsT,gBAAiBroG,KAAK8pF,UAAW9pF,MAC7FA,KAAKsoG,kBAAoB,IAAI/d,GAAmBwK,EAAcuT,kBAAmBtoG,KAAK8pF,UAAW9pF,MACjGA,KAAKuoG,iBAAmB,IAAIhe,GAAmBwK,EAAcwT,iBAAkBvoG,KAAK8pF,UAAW9pF,MAE/FA,KAAKo/F,iBAAmBrK,EAAcqK,iBAEpCp/F,KAAK2oG,mBADI5T,EAAc4T,UAAc,MAGlB5T,EAAc4T,WAGjC3oG,KAAK4oG,4BADI7T,EAAc6T,qBAAyB,OAGlB7T,EAAc6T,qBAE1C7T,EAAc2M,sCAAsC5nF,MACtD,UAAW4jF,KAAM3I,EAAc2M,2BAC7B1hG,KAAK0hG,2BAA2B94F,KAAK,IAAI60F,GAA+BC,IAI1E19F,KAAKq/F,yBADItK,EAAcsK,kBAAsB,IACpB,QAEAtK,EAAcsK,kBAGzCr/F,KAAKi7F,iBACP,CAESxP,gBAAgBtB,GACvBrqF,MAAM2rF,gBAAgBtB,GACtB,MAAMxgF,EAAIwgF,EACVnqF,KAAKoD,KAAO+mF,EAAQ/mF,KACpBpD,KAAK2oG,UAAYh/F,EAAEg/F,UACnB3oG,KAAK4oG,qBAAuBj/F,EAAEi/F,qBAC9B,QAASpkG,EAAI,EAAGA,EAAImF,EAAE+3F,2BAA2Bj9F,OAAQD,IACvDxE,KAAK0hG,2BAA2Bl9F,GAAG0H,MAAQvC,EAAE+3F,2BAA2Bl9F,GAAG0H,MAC3ElM,KAAK0hG,2BAA2Bl9F,GAAGm5F,aAAeh0F,EAAE+3F,2BAA2Bl9F,GAAGm5F,aAClF39F,KAAK0hG,2BAA2Bl9F,GAAGo5F,aAAej0F,EAAE+3F,2BAA2Bl9F,GAAGo5F,YAEtF,CAEA3C,kBACEj7F,KAAK4zF,YAAc,IAAIF,GACvB1zF,KAAK4zF,YAAYD,cAAc,iBAAkB3zF,KAAKo3F,UACtDp3F,KAAK4zF,YAAYD,cAAc,cAAe3zF,KAAKq3F,aACnDr3F,KAAK4zF,YAAYD,cAAcc,kBAAuCz0F,KAAKwoG,WAC3ExoG,KAAK4zF,YAAYD,cAAcc,wBAA6Cz0F,KAAKyoG,YACjFzoG,KAAK4zF,YAAYD,cAAcc,oBAAyCz0F,KAAK0oG,YAC/E,CAESrT,mBACPv1F,MAAMu1F,mBACFr1F,KAAKyoG,WAAW3Z,eAClB9uF,KAAKyoG,WAAWha,gBAAgB,KAAMf,cAAcgK,MAAMsI,cAAcC,OAErEjgG,KAAKo/F,mBACRp/F,KAAKo/F,iBAAmB8I,eAE5B,CAES9S,gBACPt1F,MAAMs1F,gBACNp1F,KAAKg6F,aAAaxM,YAAY,qBAC9BxtF,KAAKooG,gBAAgB5a,YAAY,sBACjCxtF,KAAKwoG,UAAUhb,YAAY,gBAC3BxtF,KAAK0oG,YAAYlb,YAAY,gBAC7BxtF,KAAKyoG,WAAWjb,YAAY,iBAC5BxtF,KAAKqoG,gBAAgB7a,YAAY,gBACjCxtF,KAAKsoG,kBAAkB9a,YAAY,gBACnCxtF,KAAKuoG,iBAAiB/a,YAAY,gBACpC,CAESuK,6BACPj4F,MAAMi4F,6BACN/3F,KAAKo3F,SAASpN,QAAQyK,mBACtBz0F,KAAKq3F,YAAYrN,QAAQyK,mBACzBz0F,KAAKwoG,UAAUxe,QAAQyK,mBACvBz0F,KAAKyoG,WAAWze,QAAQ,eACxBhqF,KAAK0oG,YAAY1e,QAAQyK,qBACzBz0F,KAAKg6F,aAAahQ,QAAQ,iBAC1BhqF,KAAKooG,gBAAgBpe,QAAQ,oBAC7BhqF,KAAKqoG,gBAAgBre,QAAQ,oBAC7BhqF,KAAKsoG,kBAAkBte,QAAQ,sBAC/BhqF,KAAKuoG,iBAAiBve,QAAQ,oBAChC,CAEA0S,oCACE,MAAO,CAAC18F,KAAKo3F,SACf,CAEAyR,iCACE,OAAO7oG,KAAKo/F,mBAAqB8I,cACnC,CAEAjC,wBAAwB9R,GACtBn0F,KAAKkmG,0BACLlmG,KAAK0hG,2BAA2B94F,KAAK,IAAI60F,GAA+B,CAAEtJ,qBAE3B,IAA3Cn0F,KAAK0hG,2BAA2Bj9F,SAClCzE,KAAK0hG,2BAA2B,GAAGx1F,MAAQ,EAE/C,CAEAg6F,0BACE,UAAWxI,KAAM19F,KAAK0hG,2BACpBhE,EAAGxxF,MAAQ,IAEf,CAEA61F,8BAA8B5N,GAC5B,OAAOn0F,KAAK0hG,2BAA2B9hE,KAAKs/D,GACnCA,EAAI/K,kBAAoBA,EAEnC,CAEA6N,kCAAkCx9F,GAChC,MAAMk5F,EAAK19F,KAAK0hG,2BAA2Bl9F,GAE3C,GAAIk5F,EAAI,CACN,MAAM7E,EAAK74F,KAAK8pF,UAAUyV,iBAAiB7B,EAAGvJ,iBAC9C,OAAO0E,EAAKA,EAAGz1F,KAAO,KAGxB,OAAO,IACT,CAEA+iG,gCAAgChS,GAC9B,MAAM9iF,EAAQrR,KAAK0hG,2BAA2BxwF,QAAQlR,KAAK+hG,8BAA8B5N,IAErF9iF,GAAS,GACXrR,KAAK0hG,2BAA2BvwF,OAAOE,EAAO,EAElD,CAEA0qF,qBACE,MAAMC,EAAch8F,KAAK8pF,UAAUmS,4BAA4BtyF,GACtDA,EAAEuyF,wBAA0Bl8F,KAAKkL,IACvC,GAEH,OACE8wF,GAAeh8F,KAAK4zF,YAAYL,wBAAwB,iBAAkByI,EAAYG,mBAAmBjwF,MAE7G,CAEAonF,yBACE,OAAOtzF,KAAK4zF,YAAYG,2BAC1B,CAES7H,UAAUyQ,GACjB78F,MAAMosF,UAAUyQ,GAChB38F,KAAKg6F,aAAeh6F,KAAKorF,0BAA0BuR,EAAI3C,cACvDh6F,KAAKooG,gBAAkBpoG,KAAKorF,0BAA0BuR,EAAIyL,iBAC1DpoG,KAAKwoG,UAAYxoG,KAAKorF,0BAA0BuR,EAAI6L,WACpDxoG,KAAKyoG,WAAazoG,KAAKorF,0BAA0BuR,EAAI8L,YACrDzoG,KAAK0oG,YAAc1oG,KAAKorF,0BAA0BuR,EAAI+L,aACtD1oG,KAAKsoG,kBAAoBtoG,KAAKorF,0BAA0BuR,EAAI2L,mBAC5DtoG,KAAKqoG,gBAAkBroG,KAAKorF,0BAA0BuR,EAAI0L,iBAC1DroG,KAAKuoG,iBAAmBvoG,KAAKorF,0BAA0BuR,EAAI4L,kBAE3DvoG,KAAKo1F,gBACLp1F,KAAKq1F,mBACLr1F,KAAKi7F,iBACP,ECrOI,MAAO6N,WAAoBtS,GAY/B32F,YAAYk1F,EAAoBjL,GAC9BhqF,MAAMi1F,EAAejL,GAZvB9pF,cAAW,eACXA,gCAA0D,GAYxDA,KAAKk0F,WAAWa,GAChB/0F,KAAK+3F,4BACP,CAEAmD,mBACE,OAAIl7F,KAAK8pF,UAAU6V,mBACV,CAAC3/F,KAAK+oG,WAER,CAAC/oG,KAAKgpG,cACf,CAEAnN,6BAEA,CAES3H,WAAWa,GAQlB,GAPAj1F,MAAMo0F,WAAWa,GACjB/0F,KAAKgpG,cAAgB,IAAIze,GAAmBwK,EAAciU,cAAehpG,KAAK8pF,UAAW9pF,MACzFA,KAAKipG,UAAY,IAAI1e,GAAmBwK,EAAckU,UAAWjpG,KAAK8pF,UAAW9pF,MACjFA,KAAKkpG,UAAY,IAAI3e,GAAmBwK,EAAcmU,UAAWlpG,KAAK8pF,UAAW9pF,MACjFA,KAAKmpG,cAAgB,IAAI5e,GAAmBwK,EAAcoU,cAAenpG,KAAK8pF,UAAW9pF,MACzFA,KAAK+oG,UAAY,IAAIxe,GAAmBwK,EAAcgU,UAAW/oG,KAAK8pF,UAAW9pF,MAE7E+0F,EAAc2M,sCAAsC5nF,MACtD,UAAW4jF,KAAM3I,EAAc2M,2BAC7B1hG,KAAK0hG,2BAA2B94F,KAAK,IAAI40F,GAA0BE,EAAGvJ,gBAAiBuJ,EAAGxxF,QAG9FlM,KAAKopG,YAAcrU,EAAcqU,aAAe,GAE9CppG,KAAK68F,qBADI9H,EAAc8H,cAAkB,OAGlB9H,EAAc8H,aAEzC,CAESpR,gBAAgBtB,GACvBrqF,MAAM2rF,gBAAgBtB,GACtB,MAAMxgF,EAAIwgF,EACVnqF,KAAKoD,KAAO+mF,EAAQ/mF,KACpBpD,KAAKm1F,SAAWxrF,EAAEwrF,SAClBn1F,KAAKopG,YAAcz/F,EAAEy/F,YACrBppG,KAAK+oG,UAAYp/F,EAAEo/F,UACnB/oG,KAAK68F,cAAgBlzF,EAAEkzF,cACvB,QAASr4F,EAAI,EAAGA,EAAImF,EAAE+3F,2BAA2Bj9F,OAAQD,IACvDxE,KAAK0hG,2BAA2Bl9F,GAAG0H,MAAQvC,EAAE+3F,2BAA2Bl9F,GAAG0H,MAI7ElM,KAAKkpG,UAAUzd,gBAAgB9hF,EAAEu/F,WACjClpG,KAAKipG,UAAUxd,gBAAgB9hF,EAAEs/F,WACjCjpG,KAAKmpG,cAAc1d,gBAAgB9hF,EAAEw/F,cACvC,CAES/T,gBACPt1F,MAAMs1F,gBACNp1F,KAAKgpG,cAAcxb,YAAY,sBAC/BxtF,KAAKkpG,UAAU1b,YAAY,UAC3BxtF,KAAKipG,UAAUzb,YAAY,UAC3BxtF,KAAKmpG,cAAc3b,YAAY,UAC/BxtF,KAAK+oG,UAAUvb,YAAY,SAC7B,CAESuK,6BACPj4F,MAAMi4F,6BACN/3F,KAAKgpG,cAAchf,QAAQ,kBAC3BhqF,KAAK+oG,UAAU/e,QAAQ,YACzB,CAEAic,wBAAwB9R,GACtBn0F,KAAKkmG,0BACLlmG,KAAK0hG,2BAA2B94F,KAAK,IAAI40F,GAA0BrJ,EAAiB,OAErC,IAA3Cn0F,KAAK0hG,2BAA2Bj9F,SAClCzE,KAAK0hG,2BAA2B,GAAGx1F,MAAQ,EAE/C,CAEQg6F,0BACN,UAAWxI,KAAM19F,KAAK0hG,2BACpBhE,EAAGxxF,MAAQ,IAEf,CAEA61F,8BAA8B5N,GAC5B,OAAOn0F,KAAK0hG,2BAA2B9hE,KAAKs/D,GACnCA,EAAI/K,kBAAoBA,EAEnC,CAEA6N,kCAAkCx9F,GAChC,MAAMk5F,EAAK19F,KAAK0hG,2BAA2Bl9F,GAE3C,GAAIk5F,EAAI,CACN,MAAM7E,EAAK74F,KAAK8pF,UAAUyV,iBAAiB7B,EAAGvJ,iBAC9C,OAAO0E,EAAKA,EAAGz1F,KAAO,KAGxB,OAAO,IACT,CAEA+iG,gCAAgChS,GAC9B,MAAM9iF,EAAQrR,KAAK0hG,2BAA2BxwF,QAAQlR,KAAK+hG,8BAA8B5N,IAErF9iF,GAAS,GACXrR,KAAK0hG,2BAA2BvwF,OAAOE,EAAO,EAElD,CAEA0rF,eAAeF,GACb78F,KAAK68F,cAAgBA,CACvB,CAES3Q,UAAUyQ,GACjB78F,MAAMosF,UAAUyQ,GAChB38F,KAAKgpG,cAAgBhpG,KAAKorF,0BAA0BuR,EAAIqM,eACxDhpG,KAAK+oG,UAAY/oG,KAAKorF,0BAA0BuR,EAAIoM,WAEpD/oG,KAAKipG,UAAYjpG,KAAKorF,0BAA0BuR,EAAIsM,WACpDjpG,KAAKkpG,UAAYlpG,KAAKorF,0BAA0BuR,EAAIuM,WACpDlpG,KAAKmpG,cAAgBnpG,KAAKorF,0BAA0BuR,EAAIwM,eAExDnpG,KAAKo1F,gBACLp1F,KAAKq1F,kBACP,ECjJK,MAAMgU,GACX,02GCcI,MAAOC,WACHrQ,GAeRp5F,YAAYk1F,EAAoBjL,GAC9BhqF,MAAMi1F,EAAejL,GAbvB9pF,cAAWivF,oBAcTjvF,KAAKk0F,WAAWa,GAChB/0F,KAAK+3F,4BACP,CAEAmD,mBACE,OAAIl7F,KAAK8pF,UAAU6V,mBACV,CACL3/F,KAAKu3F,aACLv3F,KAAKs3F,aACLt3F,KAAK66F,YACL76F,KAAKymG,kBACLzmG,KAAK0mG,cACL1mG,KAAKi3F,UACLj3F,KAAKm3F,YAGF,CACLn3F,KAAKu3F,aACLv3F,KAAKs3F,aACLt3F,KAAK66F,YACL76F,KAAKymG,kBACLzmG,KAAK0mG,cACL1mG,KAAKo4F,YACLp4F,KAAKm4F,aACLn4F,KAAKq4F,aACLr4F,KAAKs4F,YACLt4F,KAAKu4F,aACLv4F,KAAKw4F,YACLx4F,KAAKy4F,YACLz4F,KAAK04F,WACL14F,KAAKi3F,UACLj3F,KAAKm3F,WACLn3F,KAAKq5F,oBACLr5F,KAAKo5F,sBACLp5F,KAAKk5F,WACLl5F,KAAKm5F,SAET,CAEAgC,wCACE,MAAO,CACLn7F,KAAKm6F,gBACLn6F,KAAKymG,kBACLzmG,KAAK62F,QACL72F,KAAK82F,cACL92F,KAAK+2F,UACL/2F,KAAK42F,UACL52F,KAAKk3F,eAET,CAEA4E,yBAEA,CAEAD,6BAEA,CAES3H,WAAWa,GAClBj1F,MAAMo0F,WAAWa,GACjB/0F,KAAKs6F,gBAAkB,IAAI/P,GAAmBwK,EAAcuF,gBAAiBt6F,KAAK8pF,UAAW9pF,MAC7FA,KAAK66F,YAAc,IAAItQ,GAAmBwK,EAAc8F,aAAe,GAAI76F,KAAK8pF,UAAW9pF,MAC3FA,KAAKm6F,gBAAkB,IAAI5P,GAAmBwK,EAAcoF,iBAAmB,GAAIn6F,KAAK8pF,UAAW9pF,MACnGA,KAAKymG,kBAAoB,IAAIlc,GAAmBwK,EAAc0R,mBAAqB,GAAIzmG,KAAK8pF,UAAW9pF,MACvGA,KAAK0mG,cAAgB,IAAInc,GAAmBwK,EAAc2R,eAAiB,GAAI1mG,KAAK8pF,UAAW9pF,MAC/FA,KAAK6nG,WAAa,IAAItd,GAAmBwK,EAAc8S,YAAc,GAAI7nG,KAAK8pF,UAAW9pF,MACzFA,KAAK8nG,WAAa,IAAIvd,GAAmBwK,EAAc+S,YAAc,GAAI9nG,KAAK8pF,UAAW9pF,MAEvFA,KAAKg7F,wBADIjG,EAAciG,eAAmB,MAGpBjG,EAAciG,eAEtCh7F,KAAK+nG,mBACIhT,EAAcgT,YAAgB,IAAcsB,GAA6BtU,EAAcgT,YAChG/nG,KAAKi7F,iBACP,CAEAA,kBACEj7F,KAAK4zF,YAAc,IAAIF,GACvB1zF,KAAK4zF,YAAYD,cAAc,WAAY3zF,KAAKo3F,UAChDp3F,KAAK4zF,YAAYD,cAAc,cAAe3zF,KAAKq3F,aACnDr3F,KAAK4zF,YAAYD,cAAc,aAAc3zF,KAAK6nG,YAClD7nG,KAAK4zF,YAAYD,cAAc,aAAc3zF,KAAK8nG,WACpD,CAES1S,gBACPt1F,MAAMs1F,gBACNp1F,KAAK66F,YAAYrN,YAAYgH,iBAC7Bx0F,KAAKm6F,gBAAgB3M,YAAYgH,8BACjCx0F,KAAK0mG,cAAclZ,YAAYgH,iBAC/Bx0F,KAAKymG,kBAAkBjZ,YAAYgH,8BACnCx0F,KAAKs6F,gBAAgB9M,YAAY,WACjCxtF,KAAK6nG,WAAWra,YAAY,iBAC5BxtF,KAAK8nG,WAAWta,YAAY,eAC9B,CAEStB,UAAUyQ,GACjB78F,MAAMosF,UAAUyQ,GAChB38F,KAAKs6F,gBAAkBt6F,KAAKorF,0BAA0BuR,EAAIrC,iBAC1Dt6F,KAAK66F,YAAc76F,KAAKorF,0BAA0BuR,EAAI9B,aACtD76F,KAAKm6F,gBAAkBn6F,KAAKorF,0BAA0BuR,EAAIxC,iBAC1Dn6F,KAAK0mG,cAAgB1mG,KAAKorF,0BAA0BuR,EAAI+J,eACxD1mG,KAAKymG,kBAAoBzmG,KAAKorF,0BAA0BuR,EAAI8J,mBAC5DzmG,KAAK6nG,WAAa7nG,KAAKorF,0BAA0BuR,EAAIkL,YACrD7nG,KAAK8nG,WAAa9nG,KAAKorF,0BAA0BuR,EAAImL,YACrD9nG,KAAKo1F,gBACLp1F,KAAKq1F,mBACLr1F,KAAKi7F,iBACP,CAES5F,mBACPv1F,MAAMu1F,mBACFr1F,KAAKk5F,WAAWpK,eAClB9uF,KAAKk5F,WAAWzK,gBAAgB,EAAKf,cAAcgK,MAAMqO,WAAWC,KAExE,CAEAjK,qBACE,MAAMC,EAAch8F,KAAK8pF,UAAUmS,4BAA4BtyF,GACtDA,EAAEuyF,wBAA0Bl8F,KAAKkL,IACvC,GAEH,OAAO8wF,GAAeh8F,KAAK4zF,YAAYL,wBAAwB,WAAYyI,EAAYG,mBAAmBjwF,MAC5G,CAESopF,eACPx1F,MAAMw1F,eACNt1F,KAAK66F,YAAY3uF,MAAQ,KACzBlM,KAAK0mG,cAAcx6F,MAAQ,IAC7B,CAEAonF,yBACE,OAAOtzF,KAAK4zF,YAAYG,2BAC1B,CAESgE,6BACPj4F,MAAMi4F,6BACN/3F,KAAKs6F,gBAAgBtQ,QAAQ,oBAC7BhqF,KAAK8nG,WAAW9d,QAAQyK,gBACxBz0F,KAAK6nG,WAAW7d,QAAQyK,gBACxBz0F,KAAK66F,YAAY7Q,QAAQ,gBACzBhqF,KAAKm6F,gBAAgBnQ,QAAQyK,sBAC7Bz0F,KAAKi3F,UAAUjN,QAAQ,cACvBhqF,KAAKm3F,WAAWnN,QAAQ,eACxBhqF,KAAKymG,kBAAkBzc,QAAQ,uBAC/BhqF,KAAK0mG,cAAc1c,QAAQ,kBAC3BhqF,KAAKm4F,aAAanO,QAAQ,mBAC1BhqF,KAAKo4F,YAAYpO,QAAQ,kBACzBhqF,KAAKq4F,aAAarO,QAAQ,mBAC1BhqF,KAAKs4F,YAAYtO,QAAQ,kBACzBhqF,KAAKu4F,aAAavO,QAAQ,mBAC1BhqF,KAAKw4F,YAAYxO,QAAQ,kBACzBhqF,KAAKy4F,YAAYzO,QAAQ,kBACzBhqF,KAAK04F,WAAW1O,QAAQ,iBACxBhqF,KAAKo3F,SAASpN,QAAQyK,aACtBz0F,KAAKq5F,oBAAoBrP,QAAQyK,2BACjCz0F,KAAKo5F,sBAAsBpP,QAAQyK,6BACnCz0F,KAAKk5F,WAAWlP,QAAQyK,gBACxBz0F,KAAKm5F,SAASnP,QAAQyK,qBACxB,CAEAiI,oCACE,MAAO,CAAC18F,KAAKo3F,SACf,CAEShrC,cAAc+9B,GAErB,OADgBrqF,MAAMssD,cAAc+9B,IAClBA,EAAQ4d,cAAgB/nG,KAAK+nG,WACjD,EClMI,MAAOwB,WAAmB/S,GAU9B32F,YAAYk1F,EAAoBjL,GAC9BhqF,MAAMi1F,EAAejL,GAVvB9pF,cAAWivF,kBAWTjvF,KAAKk0F,WAAWa,GAChB/0F,KAAK+3F,4BACP,CAESzC,eACPx1F,MAAMw1F,eACNt1F,KAAKs3F,aAAaprF,MAAQ,KAC1BlM,KAAKy2F,UAAUvqF,MAAQ,KACvBlM,KAAKg3F,kBAAkB9qF,MAAQ,KAC/BlM,KAAKi3F,UAAU/qF,MAAQ,KACvBlM,KAAKm3F,WAAWjrF,MAAQ,IAC1B,CAESgoF,WAAWa,GAClBj1F,MAAMo0F,WAAWa,GACjB/0F,KAAKq0F,MAAQ,IAAI9J,GAAmBwK,EAAcV,MAAOr0F,KAAK8pF,UAAW9pF,MACzEA,KAAKwpG,qBAAuB,IAAIjf,GAAmBwK,EAAcyU,qBAAsBxpG,KAAK8pF,UAAW9pF,MACvGA,KAAKs0F,MAAQ,IAAI/J,GAAmBwK,EAAcT,MAAOt0F,KAAK8pF,UAAW9pF,MACzEA,KAAKo0F,gBAAkBW,EAAcX,iBAAmB,GACxDp0F,KAAKmjG,iBAAkBxW,GAAgBoI,EAAcoO,kBAA2BpO,EAAcoO,eAChG,CAES3X,mBACP1rF,MAAM0rF,kBACR,CAESC,gBAAgBtB,GACvBrqF,MAAM2rF,gBAAgBtB,EACxB,CAEmBwB,mBAAmBhb,GACpC,OAAO7wE,MAAM6rF,mBAAmBhb,EAClC,CAESonB,6BACPj4F,MAAMi4F,6BACN/3F,KAAKq0F,MAAMrK,QAAQ,SACnBhqF,KAAKwpG,qBAAqBxf,QAAQ,2BAClChqF,KAAKs0F,MAAMtK,QAAQ,QACrB,CAESoL,gBACPt1F,MAAMs1F,gBACNp1F,KAAKq0F,MAAM7G,YAAY,WACvBxtF,KAAKwpG,qBAAqBhc,YAAY,gBACtCxtF,KAAKs0F,MAAM9G,YAAY,oBACzB,CAES6H,mBACHr1F,KAAKq0F,MAAMvF,eACb9uF,KAAKq0F,MAAM5F,gBAAgB,IAEzBzuF,KAAKs0F,MAAMxF,eACb9uF,KAAKs0F,MAAM7F,gBAAgB,IAE7B3uF,MAAMu1F,kBACR,CAEA8F,wCACE,MAAO,CAACn7F,KAAKq0F,MAAOr0F,KAAKu3F,aAAcv3F,KAAKs0F,MAAOt0F,KAAK42F,UAAW52F,KAAK62F,QAAS72F,KAAKk3F,eACxF,CAEA4E,yBACE,MAAO,CAAC97F,KAAKu3F,aAAcv3F,KAAKs0F,MAAOt0F,KAAK62F,QAAS72F,KAAK42F,UAC5D,CAESb,mBAAmBC,GAC1B,OAAOl2F,MAAMi2F,mBAAmBC,IAAWA,IAAWh2F,KAAKo3F,UAAYpB,IAAWh2F,KAAKq3F,WACzF,CAEaf,uBACX,OAAO,CACT,CAESpK,UAAUyQ,GACjB78F,MAAMosF,UAAUyQ,GAChB38F,KAAKq0F,MAAQr0F,KAAKorF,0BAA0BuR,EAAItI,OAChDr0F,KAAKwpG,qBAAuBxpG,KAAKorF,0BAA0BuR,EAAI6M,sBAC/DxpG,KAAKs0F,MAAQt0F,KAAKorF,0BAA0BuR,EAAIrI,OAEhDt0F,KAAKo1F,gBACLp1F,KAAKq1F,kBACP,CAEAwG,6BACE,OAAO,IAAItR,GAAmBvqF,KAAKu3F,aAAcv3F,KAAK8pF,UAAW9pF,KACnE,ECvGI,MAAOypG,WAA0B3U,GAGrCj1F,YAAYk1F,EAAoBjL,GAC9BhqF,MAAMi1F,EAAejL,GAHvB9pF,cAAW,sBAITA,KAAKk0F,WAAWa,GAChB/0F,KAAK+3F,4BACP,CAIS7D,WAAWa,GAAqB,CAGhC7I,UAAU8L,GAA+B,CAEzCD,6BAA8B,CAEvC8D,6BAEA,CAESzG,gBAAiB,CAEjBE,eAAgB,CAEhBD,mBAAoB,EC1BzB,MAAOqU,WAA2B5U,GAGtCj1F,YAAYk1F,EAAoBjL,GAC9BhqF,MAAMi1F,EAAejL,GAHvB9pF,cAAW,uBAITA,KAAKk0F,WAAWa,GAChB/0F,KAAK+3F,4BACP,CAIS7D,WAAWa,GAAqB,CAGhC7I,UAAU8L,GAA+B,CAEzCD,6BAA8B,CAEvC8D,6BAEA,CAESzG,gBAAiB,CAEjBE,eAAgB,CAEhBD,mBAAoB,EC3BzB,MAAgBsU,WAA2B7U,GAEtCZ,WAAWa,GAAqB,CAEhCgD,6BAA8B,CAE9B1C,mBAA0B,CAE1BD,gBAAiB,CAGjBlJ,UAAU6I,GACjB/0F,KAAKo1F,eACP,ECHI,MAAOwU,WAAoBD,GAQ/B9pG,YAAYk1F,EAAkCjL,GAC5ChqF,MAAMi1F,EAAejL,GARvB9pF,cAAWivF,mBASTjvF,KAAKk0F,WAAWa,GAChB/0F,KAAK+3F,4BACP,CAES7D,WAAWa,GAClBj1F,MAAMo0F,WAAWa,GACjB/0F,KAAK6pG,aAAe,IAAItf,GAAmBwK,EAAc8U,aAAc7pG,KAAK8pF,UAAW9pF,MACvFA,KAAK8pG,YAAc,IAAIvf,GAAmBwK,EAAc+U,YAAa9pG,KAAK8pF,UAAW9pF,MACrFA,KAAK+pG,SAAW,IAAIxf,GAAmBwK,EAAcgV,SAAU/pG,KAAK8pF,UAAW9pF,MAC/EA,KAAKgqG,cAAgB,IAAIzf,GAAmBwK,EAAciV,cAAehqG,KAAK8pF,UAAW9pF,MAGvFA,KAAK68F,uBADI9H,EAAc8H,cAAkB,MAGlB9H,EAAc8H,cAEzC,CAESvH,eACPx1F,MAAMw1F,eAEFt1F,KAAK68F,gBACP78F,KAAK6pG,aAAa39F,WAAQ+B,GAGxBjO,KAAK8pG,YAAY3c,iBAAmBd,qBACtCrsF,KAAK8pG,YAAY59F,WAAQ+B,EAChBjO,KAAK+pG,SAAS5c,iBAAmBd,qBAC1CrsF,KAAK+pG,SAAS79F,WAAQ+B,EACbjO,KAAKgqG,cAAc7c,iBAAmBd,uBAC/CrsF,KAAKgqG,cAAc99F,WAAQ+B,EAE/B,CAESw9E,gBAAgBtB,GACvBrqF,MAAM2rF,gBAAgBtB,GAEtBnqF,KAAK68F,cADM1S,EACa0S,aAC1B,CAES9E,6BACPj4F,MAAMi4F,6BACN/3F,KAAK6pG,aAAa7f,QAAQyK,kBAC1Bz0F,KAAK8pG,YAAY9f,QAAQyK,gBACzBz0F,KAAK+pG,SAAS/f,QAAQyK,aACtBz0F,KAAKgqG,cAAchgB,QAAQyK,kBAC7B,CAESW,gBACPt1F,MAAMs1F,gBACNp1F,KAAK6pG,aAAarc,YAAYgH,iBAC9Bx0F,KAAK8pG,YAAYtc,YAAYgH,gBAC7Bx0F,KAAK+pG,SAASvc,YAAYgH,aAC1Bx0F,KAAKgqG,cAAcxc,YAAYgH,YACjC,CAESa,mBACPv1F,MAAMu1F,mBAEFr1F,KAAK6pG,aAAa/a,eACpB9uF,KAAK6pG,aAAapb,gBAAgB,KAAMf,cAAcgK,MAAMC,aAAasS,KAE7E,CAEA/O,mBACE,MAAO,CAACl7F,KAAK6pG,aAAc7pG,KAAK8pG,YAAa9pG,KAAK+pG,SAAU/pG,KAAKgqG,cACnE,CAEA7O,wCACE,MAAO,CAACn7F,KAAK6pG,aAAc7pG,KAAK8pG,YAAa9pG,KAAK+pG,SAAU/pG,KAAKgqG,cACnE,CAEAlO,yBAEA,CAES5P,UAAUyQ,GACjB78F,MAAMosF,UAAUyQ,GAChB38F,KAAK6pG,aAAe7pG,KAAKorF,0BAA0BuR,EAAIkN,cACvD7pG,KAAK8pG,YAAc9pG,KAAKorF,0BAA0BuR,EAAImN,aACtD9pG,KAAK+pG,SAAW/pG,KAAKorF,0BAA0BuR,EAAIoN,UACnD/pG,KAAKgqG,cAAgBhqG,KAAKorF,0BAA0BuR,EAAIqN,eACxDhqG,KAAK68F,cAAgBF,EAAIE,cAEzB78F,KAAKo1F,gBACLp1F,KAAKq1F,kBACP,EC7GK,IAAK6U,GAGX,aAHWA,UAA+B,KACzCA,kCACAA,0BAFUA,GAAZ,IAAYA,GAGX,GCHWC,GAIX,aAJWA,UAA4C,KACtDA,oDACAA,wDACAA,UAHUA,GAAZ,IAAYA,GAIX,GCSK,MAAOC,WAA2BT,GAiBtC9pG,YAAYk1F,EAAyCjL,GACnDhqF,MAAMi1F,EAAejL,GAjBvB9pF,cAAWivF,0BAkBTjvF,KAAKk0F,WAAWa,GAChB/0F,KAAK+3F,4BACP,CAES7D,WAAWa,GAClBj1F,MAAMo0F,WAAWa,GACjB/0F,KAAKqqG,cAAgBtV,EAAcsV,eAAiB,GACpDrqG,KAAKsqG,2BAA6BvV,EAAcuV,4BAA8B,GAC9EtqG,KAAKuqG,kBAAoB,IAAIhgB,GAAmBwK,EAAcwV,kBAAmBvqG,KAAK8pF,UAAW9pF,MACjGA,KAAKwqG,iBAAmB,IAAIjgB,GAAmBwK,EAAcyV,iBAAkBxqG,KAAK8pF,UAAW9pF,MAC/FA,KAAKyqG,kBAAoB,IAAIlgB,GAAmBwK,EAAc0V,kBAAmBzqG,KAAK8pF,UAAW9pF,MACjGA,KAAK0qG,eAAiB,IAAIngB,GAAmBwK,EAAc2V,eAAgB1qG,KAAK8pF,UAAW9pF,MAE3FA,KAAK2qG,KAAO,IAAIpgB,GAAmBwK,EAAc4V,KAAM3qG,KAAK8pF,UAAW9pF,MACvEA,KAAK4qG,GAAK,IAAIrgB,GAAmBwK,EAAc6V,GAAI5qG,KAAK8pF,UAAW9pF,MAEnEA,KAAK6qG,SAAW,IAAItgB,GAAmBwK,EAAc8V,SAAU7qG,KAAK8pF,UAAW9pF,MAE/EA,KAAK8qG,KAAO,IAAIvgB,GAAmBwK,EAAc+V,KAAM9qG,KAAK8pF,UAAW9pF,KACzE,CAESs1F,eACPx1F,MAAMw1F,eACNt1F,KAAK2qG,KAAKz+F,MAAQ,KAClBlM,KAAK6qG,SAAS3+F,MAAQ,KACtBlM,KAAK8qG,KAAK5+F,MAAQ,IACpB,CAES6rF,6BACPj4F,MAAMi4F,6BACN/3F,KAAKuqG,kBAAkBvgB,QAAQyK,uBAC/Bz0F,KAAKwqG,iBAAiBxgB,QAAQyK,uBAC9Bz0F,KAAKyqG,kBAAkBzgB,QAAQyK,wBAC/Bz0F,KAAK0qG,eAAe1gB,QAAQyK,oBAE5Bz0F,KAAK2qG,KAAK3gB,QAAQyK,SAClBz0F,KAAK4qG,GAAG5gB,QAAQyK,OAEhBz0F,KAAK6qG,SAAS7gB,QAAQyK,cAEtBz0F,KAAK8qG,KAAK9gB,QAAQyK,QACpB,CAESW,gBACPt1F,MAAMs1F,gBACNp1F,KAAKuqG,kBAAkB/c,YAAYgH,gBACnCx0F,KAAKwqG,iBAAiBhd,YAAYgH,mBAClCx0F,KAAKyqG,kBAAkBjd,YAAYgH,mBACnCx0F,KAAK0qG,eAAeld,YAAYgH,kBAEhCx0F,KAAK2qG,KAAKnd,YAAYgH,UACtBx0F,KAAK4qG,GAAGpd,YAAYgH,OAEpBx0F,KAAK6qG,SAASrd,YAAYgH,OAE1Bx0F,KAAK8qG,KAAKtd,YAAYgH,qBACxB,CAESa,mBACPv1F,MAAMu1F,mBACqB,KAAvBr1F,KAAKqqG,gBACPrqG,KAAKqqG,cAAgBH,oBAEiB,KAApClqG,KAAKsqG,6BACPtqG,KAAKsqG,2BAA6BH,4BAEhCnqG,KAAKuqG,kBAAkBzb,eACzB9uF,KAAKuqG,kBAAkB9b,gBAAgB,KAAMf,cAAcgK,MAAMqT,YAAYC,SAE3EhrG,KAAKwqG,iBAAiB1b,eACxB9uF,KAAKwqG,iBAAiB/b,gBAAgB,GAEpCzuF,KAAKyqG,kBAAkB3b,eACzB9uF,KAAKyqG,kBAAkBhc,gBAAgB,GAErCzuF,KAAK0qG,eAAe5b,eACtB9uF,KAAK0qG,eAAejc,gBAAgB,GAElCzuF,KAAK4qG,GAAG9b,eACV9uF,KAAK4qG,GAAGnc,gBAAgB,MAGtBzuF,KAAK6qG,SAAS/b,eAChB9uF,KAAK6qG,SAASpc,gBAAgB,KAElC,CAEAyM,mBACE,OAAIl7F,KAAK8pF,UAAU6V,mBACV,CAAC3/F,KAAKuqG,kBAAmBvqG,KAAK2qG,KAAM3qG,KAAK4qG,IAE3C,CACL5qG,KAAKuqG,kBACLvqG,KAAKwqG,iBACLxqG,KAAKyqG,kBACLzqG,KAAK0qG,eACL1qG,KAAK2qG,KACL3qG,KAAK4qG,GACL5qG,KAAK8qG,KAET,CAEA3P,wCACE,MAAO,CAACn7F,KAAKwqG,iBAAkBxqG,KAAKyqG,kBAAmBzqG,KAAK0qG,eAC9D,CAEA5O,yBAEA,CAES5P,UAAUyQ,GACjB78F,MAAMosF,UAAUyQ,GAEhB38F,KAAKuqG,kBAAoBvqG,KAAKorF,0BAA0BuR,EAAI4N,mBAC5DvqG,KAAKwqG,iBAAmBxqG,KAAKorF,0BAA0BuR,EAAI6N,kBAC3DxqG,KAAKyqG,kBAAoBzqG,KAAKorF,0BAA0BuR,EAAI8N,mBAC5DzqG,KAAK0qG,eAAiB1qG,KAAKorF,0BAA0BuR,EAAI+N,gBACzD1qG,KAAK2qG,KAAO3qG,KAAKorF,0BAA0BuR,EAAIgO,MAC/C3qG,KAAK4qG,GAAK5qG,KAAKorF,0BAA0BuR,EAAIiO,IAE7C5qG,KAAK6qG,SAAW7qG,KAAKorF,0BAA0BuR,EAAIkO,UAEnD7qG,KAAK8qG,KAAO9qG,KAAKorF,0BAA0BuR,EAAImO,MAE/C9qG,KAAKo1F,gBACLp1F,KAAKq1F,kBACP,EC9JK,IAAK4V,GAMX,aANWA,UAAuB,KACjCA,8BACAA,gCACAA,oCACAA,cACAA,kBALUA,GAAZ,IAAYA,GAMX,GCQK,MAAOC,WAAqBvB,GAqBhC9pG,YAAYk1F,EAAmCjL,GAC7ChqF,MAAMi1F,EAAejL,GArBvB9pF,cAAWivF,oBAsBTjvF,KAAKk0F,WAAWa,GAChB/0F,KAAK+3F,4BACP,CAES7D,WAAWa,GAClBj1F,MAAMo0F,WAAWa,GACjB/0F,KAAKmrG,wBAA0BpW,EAAcoW,yBAA2B,GACxEnrG,KAAK4/F,aAAe,IAAIrV,GAAmBwK,EAAc6K,aAAc5/F,KAAK8pF,UAAW9pF,MACvFA,KAAKorG,eAAiB,IAAI7gB,GAAmBwK,EAAcqW,eAAgBprG,KAAK8pF,UAAW9pF,MAC3FA,KAAK2qG,KAAO,IAAIpgB,GAAmBwK,EAAc4V,KAAM3qG,KAAK8pF,UAAW9pF,MACvEA,KAAKqrG,qBAAuB,IAAI9gB,GAAmBwK,EAAcsW,qBAAsBrrG,KAAK8pF,UAAW9pF,MACvGA,KAAKsrG,qBAAuB,IAAI/gB,GAAmBwK,EAAcuW,qBAAsBtrG,KAAK8pF,UAAW9pF,MACvGA,KAAKurG,cAAgB,IAAIhhB,GAAmBwK,EAAcwW,cAAevrG,KAAK8pF,UAAW9pF,MAEzFA,KAAKwrG,WAAa,IAAIjhB,GAAmBwK,EAAcyW,WAAYxrG,KAAK8pF,UAAW9pF,MAEnFA,KAAKyrG,aAAe,IAAIlhB,GAAmBwK,EAAc0W,aAAczrG,KAAK8pF,UAAW9pF,MACvFA,KAAK0rG,oBAAsB,IAAInhB,GAAmBwK,EAAc2W,oBAAqB1rG,KAAK8pF,UAAW9pF,MACrGA,KAAK2rG,YAAc,IAAIphB,GAAmBwK,EAAc4W,YAAa3rG,KAAK8pF,UAAW9pF,MACrFA,KAAK4rG,YAAc,IAAIrhB,GAAmBwK,EAAc6W,YAAa5rG,KAAK8pF,UAAW9pF,MAErFA,KAAKi7F,iBACP,CAEAA,kBACEj7F,KAAK4zF,YAAc,IAAIF,GACvB1zF,KAAK4zF,YAAYD,cAAc,eAAgB3zF,KAAKyrG,cACpDzrG,KAAK4zF,YAAYD,cAAc,sBAAuB3zF,KAAK0rG,qBAC3D1rG,KAAK4zF,YAAYD,cAAc,cAAe3zF,KAAK2rG,aACnD3rG,KAAK4zF,YAAYD,cAAc,cAAe3zF,KAAK4rG,YACrD,CAEStW,eACPx1F,MAAMw1F,eACNt1F,KAAKwrG,WAAWt/F,MAAQ,KACxBlM,KAAKurG,cAAcr/F,MAAQ,KAC3BlM,KAAKsrG,qBAAqBp/F,MAAQ,IACpC,CAES0+E,8BACP9qF,MAAM8qF,6BACR,CAESY,mBACP1rF,MAAM0rF,kBACR,CAESC,gBAAgBtB,GACvBrqF,MAAM2rF,gBAAgBtB,EACxB,CAEmBwB,mBAAmBhb,GACpC,OAAO7wE,MAAM6rF,mBAAmBhb,EAClC,CAESonB,6BACPj4F,MAAMi4F,6BACN/3F,KAAK4/F,aAAa5V,QAAQyK,kBAC1Bz0F,KAAKorG,eAAephB,QAAQyK,oBAC5Bz0F,KAAK2qG,KAAK3gB,QAAQyK,SAClBz0F,KAAKqrG,qBAAqBrhB,QAAQyK,0BAClCz0F,KAAKsrG,qBAAqBthB,QAAQyK,0BAClCz0F,KAAKurG,cAAcvhB,QAAQyK,mBAE3Bz0F,KAAKwrG,WAAWxhB,QAAQyK,SAExBz0F,KAAKyrG,aAAazhB,QAAQyK,0BAC1Bz0F,KAAK0rG,oBAAoB1hB,QAAQyK,0BACjCz0F,KAAK2rG,YAAY3hB,QAAQyK,iBACzBz0F,KAAK4rG,YAAY5hB,QAAQyK,gBAC3B,CAESY,mBAC8B,KAAjCr1F,KAAKmrG,0BACPnrG,KAAKmrG,wBAA0BF,kBAE7BjrG,KAAK4/F,aAAa9Q,eACpB9uF,KAAK4/F,aAAanR,gBAAgB,MAEhCzuF,KAAKorG,eAAetc,eACtB9uF,KAAKorG,eAAe3c,gBAAgB,MAElCzuF,KAAK2qG,KAAK7b,eACZ9uF,KAAK2qG,KAAKlc,gBAAgB,KAAMf,cAAcgK,MAAMmU,MAAMC,IAGxD9rG,KAAKwrG,WAAW1c,eAClB9uF,KAAKwrG,WAAW/c,gBAAgB,KAAMf,cAAcgK,MAAMmU,MAAMC,IAG9D9rG,KAAKqrG,qBAAqBvc,eAC5B9uF,KAAKqrG,qBAAqB5c,gBAAgB,GAAIf,cAAcgK,MAAMqU,cAAcC,SAE9EhsG,KAAKsrG,qBAAqBxc,eAC5B9uF,KAAKsrG,qBAAqB7c,gBAAgB,KAAMf,cAAcgK,MAAMqU,cAAcC,SAEhFhsG,KAAKurG,cAAczc,eACrB9uF,KAAKurG,cAAc9c,gBAAgB,MAGjCzuF,KAAK0rG,oBAAoB5c,eAC3B9uF,KAAK0rG,oBAAoBjd,gBAAgB,KAAMf,cAAcgK,MAAMC,aAAasS,MAG9EjqG,KAAKyrG,aAAa3c,eACpB9uF,KAAKyrG,aAAahd,gBAAgB,KAAMf,cAAcgK,MAAMC,aAAasS,MAGvEjqG,KAAK2rG,YAAY7c,eACnB9uF,KAAK2rG,YAAYld,gBAAgB,KAAMf,cAAcgK,MAAMmU,MAAMC,IAE/D9rG,KAAK4rG,YAAY9c,eACnB9uF,KAAK4rG,YAAYnd,gBAAgB,KAAMf,cAAcgK,MAAMmU,MAAMC,IAGnEhsG,MAAMu1F,kBACR,CAESD,gBACPt1F,MAAMs1F,gBACNp1F,KAAK4/F,aAAapS,YAAYgH,mBAC9Bx0F,KAAKorG,eAAe5d,YAAYgH,aAChCx0F,KAAK2qG,KAAKnd,YAAYgH,UACtBx0F,KAAKqrG,qBAAqB7d,YAAYgH,kBACtCx0F,KAAKurG,cAAc/d,YAAYgH,kBAC/Bx0F,KAAKsrG,qBAAqB9d,YAAYgH,kBAEtCx0F,KAAKwrG,WAAWhe,YAAYgH,UAE5Bx0F,KAAKyrG,aAAaje,YAAYgH,iBAC9Bx0F,KAAK0rG,oBAAoBle,YAAYgH,iBAErCx0F,KAAK2rG,YAAYne,YAAYgH,UAC7Bx0F,KAAK4rG,YAAYpe,YAAYgH,SAC/B,CAEA0G,mBACE,OAAIl7F,KAAK8pF,UAAU6V,mBACV,CAAC3/F,KAAKorG,eAAgBprG,KAAKwrG,YAE7B,CAACxrG,KAAKorG,eAAgBprG,KAAKqrG,qBAAsBrrG,KAAKwrG,WAAYxrG,KAAKurG,cAChF,CAEApQ,wCACE,MAAO,CAACn7F,KAAKqrG,qBACf,CAEAvP,yBAEA,CAES5P,UAAUyQ,GACjB78F,MAAMosF,UAAUyQ,GAEhB38F,KAAK4/F,aAAe5/F,KAAKorF,0BAA0BuR,EAAIiD,cACvD5/F,KAAKorG,eAAiBprG,KAAKorF,0BAA0BuR,EAAIyO,gBACzDprG,KAAK2qG,KAAO3qG,KAAKorF,0BAA0BuR,EAAIgO,MAC/C3qG,KAAKqrG,qBAAuBrrG,KAAKorF,0BAA0BuR,EAAI0O,sBAC/DrrG,KAAKurG,cAAgBvrG,KAAKorF,0BAA0BuR,EAAI4O,eACxDvrG,KAAKsrG,qBAAuBtrG,KAAKorF,0BAA0BuR,EAAI2O,sBAE/DtrG,KAAKwrG,WAAaxrG,KAAKorF,0BAA0BuR,EAAI6O,YAErDxrG,KAAKyrG,aAAezrG,KAAKorF,0BAA0BuR,EAAI8O,cACvDzrG,KAAK0rG,oBAAsB1rG,KAAKorF,0BAA0BuR,EAAI+O,qBAC9D1rG,KAAK2rG,YAAc3rG,KAAKorF,0BAA0BuR,EAAIgP,aACtD3rG,KAAK4rG,YAAc5rG,KAAKorF,0BAA0BuR,EAAIiP,aAEtD5rG,KAAKq1F,mBACLr1F,KAAKo1F,gBACLp1F,KAAKi7F,iBACP,EChNK,IAAKgR,GAIX,aAJWA,UAA0B,KACpCA,oCACAA,0CACAA,sCAHUA,GAAZ,IAAYA,GAIX,GCQK,MAAOC,WAAoBvC,GAQ/B9pG,YAAYk1F,EAAkCjL,GAC5ChqF,MAAMi1F,EAAejL,GARvB9pF,cAAWivF,mBASTjvF,KAAKk0F,WAAWa,GAChB/0F,KAAK+3F,4BACP,CAES7D,WAAWa,GAClBj1F,MAAMo0F,WAAWa,GACjB/0F,KAAKmsG,gBAAkB,IAAI5hB,GAAmBwK,EAAcoX,gBAAiBnsG,KAAK8pF,UAAW9pF,MAC7FA,KAAK4/F,aAAe,IAAIrV,GAAmBwK,EAAc6K,aAAc5/F,KAAK8pF,UAAW9pF,MACvFA,KAAK2qG,KAAO,IAAIpgB,GAAmBwK,EAAc4V,KAAM3qG,KAAK8pF,UAAW9pF,MACvEA,KAAKuqG,kBAAoB,IAAIhgB,GAAmBwK,EAAcwV,kBAAmBvqG,KAAK8pF,UAAW9pF,MACjGA,KAAKsqG,2BAA6BvV,EAAcuV,4BAA8B,EAChF,CAEShV,eACPx1F,MAAMw1F,eACNt1F,KAAK2qG,KAAKz+F,MAAQ,IACpB,CAES6rF,6BACPj4F,MAAMi4F,6BACN/3F,KAAKmsG,gBAAgBniB,QAAQyK,qBAC7Bz0F,KAAK4/F,aAAa5V,QAAQyK,kBAC1Bz0F,KAAK2qG,KAAK3gB,QAAQyK,SAClBz0F,KAAKuqG,kBAAkBvgB,QAAQyK,sBACjC,CAESW,gBACPt1F,MAAMs1F,gBACNp1F,KAAKmsG,gBAAgB3e,YAAYgH,sBACjCx0F,KAAK4/F,aAAapS,YAAYgH,mBAC9Bx0F,KAAK2qG,KAAKnd,YAAYgH,UACtBx0F,KAAKuqG,kBAAkB/c,YAAYgH,eACrC,CAESa,mBACPv1F,MAAMu1F,mBACkC,KAApCr1F,KAAKsqG,6BACPtqG,KAAKsqG,2BAA6B2B,qBAEhCjsG,KAAK4/F,aAAa9Q,eACpB9uF,KAAK4/F,aAAanR,gBAAgB,GAEhCzuF,KAAK2qG,KAAK7b,eACZ9uF,KAAK2qG,KAAKlc,gBAAgB,KAAMf,cAAcgK,MAAMmU,MAAMC,IAExD9rG,KAAKuqG,kBAAkBzb,eACzB9uF,KAAKuqG,kBAAkB9b,gBAAgB,KAAMf,cAAcgK,MAAMqT,YAAYC,QAEjF,CAEA9P,mBACE,OAAIl7F,KAAK8pF,UAAU6V,mBACV,CAAC3/F,KAAKmsG,gBAAiBnsG,KAAK2qG,MAE9B,CAAC3qG,KAAKmsG,gBAAiBnsG,KAAK4/F,aAAc5/F,KAAK2qG,KACxD,CAEAxP,wCACE,MAAO,CAACn7F,KAAK4/F,aACf,CAEA9D,yBAEA,CAES5P,UAAU6I,GACjBj1F,MAAMosF,UAAU6I,GAChB/0F,KAAKmsG,gBAAkBnsG,KAAKorF,0BAA0B2J,EAAcoX,iBACpEnsG,KAAK4/F,aAAe5/F,KAAKorF,0BAA0B2J,EAAc6K,cACjE5/F,KAAK2qG,KAAO3qG,KAAKorF,0BAA0B2J,EAAc4V,MACzD3qG,KAAKuqG,kBAAoBvqG,KAAKorF,0BAA0B2J,EAAcwV,mBACtEvqG,KAAKo1F,gBACLp1F,KAAKq1F,kBACP,ECnFI,MAAO+W,WAAoBzC,GAS/B9pG,YAAYk1F,EAAkCjL,GAC5ChqF,MAAMi1F,EAAejL,GATvB9pF,cAAWivF,mBAUTjvF,KAAKk0F,WAAWa,GAChB/0F,KAAK+3F,4BACP,CAES7D,WAAWa,GAClBj1F,MAAMo0F,WAAWa,GACjB/0F,KAAKsqG,2BAA6BvV,EAAcuV,4BAA8B,GAC9EtqG,KAAKqsG,gBAAkB,IAAI9hB,GAAmBwK,EAAcsX,gBAAiBrsG,KAAK8pF,UAAW9pF,MAC7FA,KAAKuqG,kBAAoB,IAAIhgB,GAAmBwK,EAAcwV,kBAAmBvqG,KAAK8pF,UAAW9pF,MACjGA,KAAK4/F,aAAe,IAAIrV,GAAmBwK,EAAc6K,aAAc5/F,KAAK8pF,UAAW9pF,MAEvFA,KAAK2qG,KAAO,IAAIpgB,GAAmBwK,EAAc4V,KAAM3qG,KAAK8pF,UAAW9pF,KACzE,CAESs1F,eACPx1F,MAAMw1F,eACNt1F,KAAK2qG,KAAKz+F,MAAQ,IACpB,CAES6rF,6BACPj4F,MAAMi4F,6BACN/3F,KAAKqsG,gBAAgBriB,QAAQyK,qBAC7Bz0F,KAAKuqG,kBAAkBvgB,QAAQyK,uBAC/Bz0F,KAAK4/F,aAAa5V,QAAQyK,kBAC1Bz0F,KAAK2qG,KAAK3gB,QAAQyK,QACpB,CAESW,gBACPt1F,MAAMs1F,gBACNp1F,KAAKqsG,gBAAgB7e,YAAYgH,sBACjCx0F,KAAKuqG,kBAAkB/c,YAAYgH,gBACnCx0F,KAAK4/F,aAAapS,YAAYgH,mBAC9Bx0F,KAAK2qG,KAAKnd,YAAYgH,SACxB,CAESa,mBACPv1F,MAAMu1F,mBAEkC,KAApCr1F,KAAKsqG,6BACPtqG,KAAKsqG,2BAA6B2B,qBAGhCjsG,KAAK2qG,KAAK7b,eACZ9uF,KAAK2qG,KAAKlc,gBAAgB,KAAMf,cAAcgK,MAAMmU,MAAMC,GAE9D,CAEA5Q,mBACE,OAAIl7F,KAAK8pF,UAAU6V,mBACV,CAAC3/F,KAAKqsG,gBAAiBrsG,KAAKuqG,kBAAmBvqG,KAAK2qG,MAEtD,CAAC3qG,KAAKqsG,gBAAiBrsG,KAAKuqG,kBAAmBvqG,KAAK4/F,aAAc5/F,KAAK2qG,KAChF,CAEAxP,wCACE,MAAO,CAACn7F,KAAK4/F,aACf,CAEA9D,yBAEA,CAES5P,UAAU6I,GACjBj1F,MAAMosF,UAAU6I,GAChB/0F,KAAKqsG,gBAAkBrsG,KAAKorF,0BAA0B2J,EAAcsX,iBACpErsG,KAAKuqG,kBAAoBvqG,KAAKorF,0BAA0B2J,EAAcwV,mBACtEvqG,KAAK4/F,aAAe5/F,KAAKorF,0BAA0B2J,EAAc6K,cACjE5/F,KAAK2qG,KAAO3qG,KAAKorF,0BAA0B2J,EAAc4V,MACzD3qG,KAAKo1F,gBACLp1F,KAAKq1F,kBACP,ECpFI,MAAOiX,WAA+B3C,GAM1C9pG,YAAYk1F,EAA6CjL,GACvDhqF,MAAMi1F,EAAejL,GANvB9pF,cAAWivF,8BAOTjvF,KAAKk0F,WAAWa,GAChB/0F,KAAK+3F,4BACP,CAES7D,WAAWa,GAClBj1F,MAAMo0F,WAAWa,GACjB/0F,KAAKusG,mBAAqB,IAAIhiB,GAAmBwK,EAAcwX,mBAAoBvsG,KAAK8pF,UAAW9pF,MACnGA,KAAKwsG,mBAAqB,IAAIjiB,GAAmBwK,EAAcyX,mBAAoBxsG,KAAK8pF,UAAW9pF,KACrG,CAES+3F,6BACPj4F,MAAMi4F,6BACN/3F,KAAKusG,mBAAmBviB,QAAQyK,0BAChCz0F,KAAKwsG,mBAAmBxiB,QAAQyK,yBAClC,CAESW,gBACPt1F,MAAMs1F,gBACNp1F,KAAKusG,mBAAmB/e,YAAYgH,kBACpCx0F,KAAKwsG,mBAAmBhf,YAAYgH,iBACtC,CAEA0G,mBACE,OAAKl7F,KAAK8pF,UAAU6V,mBAGb,GAFE,CAAC3/F,KAAKusG,mBAAoBvsG,KAAKwsG,mBAG1C,CAEArR,wCACE,MAAO,CAACn7F,KAAKusG,mBAAoBvsG,KAAKwsG,mBACxC,CAEA1Q,yBAEA,CAES5P,UAAU6I,GACjBj1F,MAAMosF,UAAU6I,GAChB/0F,KAAKusG,mBAAqBvsG,KAAKorF,0BAA0B2J,EAAcwX,oBACvEvsG,KAAKwsG,mBAAqBxsG,KAAKorF,0BAA0B2J,EAAcyX,oBACvExsG,KAAKo1F,gBACLp1F,KAAKq1F,kBACP,EChDI,MAAOoX,WAAkB9C,GAS7B9pG,YAAYk1F,EAAgCjL,GAC1ChqF,MAAMi1F,EAAejL,GATvB9pF,cAAWivF,iBAUTjvF,KAAKk0F,WAAWa,GAChB/0F,KAAK+3F,4BACP,CAES7D,WAAWa,GAClBj1F,MAAMo0F,WAAWa,GACjB/0F,KAAKmrG,wBAA0BpW,EAAcoW,yBAA2B,GACxEnrG,KAAK0sG,aAAe,IAAIniB,GAAmBwK,EAAc2X,aAAc1sG,KAAK8pF,UAAW9pF,MACvFA,KAAKorG,eAAiB,IAAI7gB,GAAmBwK,EAAcqW,eAAgBprG,KAAK8pF,UAAW9pF,MAC3FA,KAAK2qG,KAAO,IAAIpgB,GAAmBwK,EAAc4V,KAAM3qG,KAAK8pF,UAAW9pF,MACvEA,KAAK2sG,WAAa,IAAIpiB,GAAmBwK,EAAc4X,WAAY3sG,KAAK8pF,UAAW9pF,MACnFA,KAAKwrG,WAAa,IAAIjhB,GAAmBwK,EAAcyW,WAAYxrG,KAAK8pF,UAAW9pF,KACrF,CAESs1F,eACPx1F,MAAMw1F,eACNt1F,KAAKwrG,WAAWt/F,MAAQ,IAC1B,CAES6rF,6BACPj4F,MAAMi4F,6BACN/3F,KAAK0sG,aAAa1iB,QAAQyK,kBAC1Bz0F,KAAKorG,eAAephB,QAAQyK,oBAC5Bz0F,KAAK2qG,KAAK3gB,QAAQyK,SAClBz0F,KAAK2sG,WAAW3iB,QAAQyK,eACxBz0F,KAAKwrG,WAAWxhB,QAAQyK,QAC1B,CAESW,gBACPt1F,MAAMs1F,gBACNp1F,KAAK0sG,aAAalf,YAAYgH,aAC9Bx0F,KAAKorG,eAAe5d,YAAYgH,aAChCx0F,KAAK2qG,KAAKnd,YAAYgH,UACtBx0F,KAAK2sG,WAAWnf,YAAYgH,kBAC5Bx0F,KAAKwrG,WAAWhe,YAAYgH,SAC9B,CAESa,mBACPv1F,MAAMu1F,mBAC+B,KAAjCr1F,KAAKmrG,0BACPnrG,KAAKmrG,wBAA0BF,kBAE7BjrG,KAAK2sG,WAAW7d,eAClB9uF,KAAK2sG,WAAWle,gBAAgB,GAAIf,cAAcgK,MAAMqU,cAAcC,SAEpEhsG,KAAK2qG,KAAK7b,eACZ9uF,KAAK2qG,KAAKlc,gBAAgB,KAAMf,cAAcgK,MAAMmU,MAAMC,IAExD9rG,KAAKwrG,WAAW1c,eAClB9uF,KAAKwrG,WAAW/c,gBAAgB,KAAMf,cAAcgK,MAAMmU,MAAMC,GAEpE,CAEA5Q,mBACE,OAAIl7F,KAAK8pF,UAAU6V,mBACV,CAAC3/F,KAAKorG,eAAgBprG,KAAKwrG,YAE7B,CAACxrG,KAAKorG,eAAgBprG,KAAK2sG,WAAY3sG,KAAKwrG,WACrD,CAEArQ,wCACE,MAAO,CAACn7F,KAAK2sG,WACf,CAEA7Q,yBAEA,CAES5P,UAAU6I,GACjBj1F,MAAMosF,UAAU6I,GAChB/0F,KAAK0sG,aAAe1sG,KAAKorF,0BAA0B2J,EAAc2X,cACjE1sG,KAAKorG,eAAiBprG,KAAKorF,0BAA0B2J,EAAcqW,gBACnEprG,KAAK2qG,KAAO3qG,KAAKorF,0BAA0B2J,EAAc4V,MACzD3qG,KAAK2sG,WAAa3sG,KAAKorF,0BAA0B2J,EAAc4X,YAC/D3sG,KAAKwrG,WAAaxrG,KAAKorF,0BAA0B2J,EAAcyW,YAC/DxrG,KAAKo1F,gBACLp1F,KAAKq1F,kBACP,EChGI,MAAOuX,WAAkC9X,GAI7Cj1F,YAAYk1F,EAAgDjL,GAC1DhqF,MAAMi1F,EAAejL,GAJvB9pF,cAAWivF,iCAKTjvF,KAAKk0F,WAAWa,EAClB,CAESb,WAAWa,GAClB/0F,KAAK6sG,SAAW9X,EAAc8X,QAChC,CAESvX,eACPx1F,MAAMw1F,eACNt1F,KAAK6sG,UAAW,CAClB,CAES9U,6BAA8B,CAE1BzB,uBACX,OAAO,CACT,ECdI,MAAOwW,WAAmBnD,GAS9B9pG,YAAYk1F,EAAiCjL,GAC3ChqF,MAAMi1F,EAAejL,GATvB9pF,cAAWivF,kBAUTjvF,KAAKk0F,WAAWa,GAChB/0F,KAAK+3F,4BACP,CAES7D,WAAWa,GAClBj1F,MAAMo0F,WAAWa,GACjB/0F,KAAKmrG,wBAA0BpW,EAAcoW,yBAA2B,GACxEnrG,KAAK4/F,aAAe,IAAIrV,GAAmBwK,EAAc6K,aAAc5/F,KAAK8pF,UAAW9pF,MACvFA,KAAKorG,eAAiB,IAAI7gB,GAAmBwK,EAAcqW,eAAgBprG,KAAK8pF,UAAW9pF,MAE3FA,KAAKyrG,aAAe,IAAIlhB,GAAmBwK,EAAc0W,aAAczrG,KAAK8pF,UAAW9pF,MACvFA,KAAKi7F,iBACP,CAEAA,kBACEj7F,KAAK4zF,YAAc,IAAIF,GACvB1zF,KAAK4zF,YAAYD,cAAc,eAAgB3zF,KAAKyrG,aACtD,CAES1T,6BACPj4F,MAAMi4F,6BACN/3F,KAAK4/F,aAAa5V,QAAQyK,kBAC1Bz0F,KAAKorG,eAAephB,QAAQyK,oBAC5Bz0F,KAAKyrG,aAAazhB,QAAQyK,yBAC5B,CAESW,gBACPt1F,MAAMs1F,gBACNp1F,KAAK4/F,aAAapS,YAAYgH,mBAC9Bx0F,KAAKorG,eAAe5d,YAAYgH,aAEhCx0F,KAAKyrG,aAAaje,YAAYgH,gBAChC,CAESa,mBACPv1F,MAAMu1F,mBAC+B,KAAjCr1F,KAAKmrG,0BACPnrG,KAAKmrG,wBAA0BF,kBAG7BjrG,KAAKyrG,aAAa3c,eACpB9uF,KAAKyrG,aAAahd,gBAAgB,KAAMf,cAAcgK,MAAMC,aAAasS,KAE7E,CAEA/O,mBACE,MAAO,CAACl7F,KAAKorG,eAAgBprG,KAAK4/F,aACpC,CAES1T,UAAU6I,GACjBj1F,MAAMosF,UAAU6I,GAChB/0F,KAAK4/F,aAAe5/F,KAAKorF,0BAA0B2J,EAAc6K,cACjE5/F,KAAKorG,eAAiBprG,KAAKorF,0BAA0B2J,EAAcqW,gBACnEprG,KAAKyrG,aAAezrG,KAAKorF,0BAA0B2J,EAAc0W,cACjEzrG,KAAKo1F,gBACLp1F,KAAKq1F,mBACLr1F,KAAKi7F,iBACP,ECpEI,MAAO8R,WAAkBpD,GAa7B9pG,YAAYk1F,EAAgCjL,GAC1ChqF,MAAMi1F,EAAejL,GAbvB9pF,cAAWivF,iBAcTjvF,KAAKk0F,WAAWa,GAChB/0F,KAAK+3F,4BACP,CAES7D,WAAWa,GAClBj1F,MAAMo0F,WAAWa,GACjB/0F,KAAK6pG,aAAe,IAAItf,GAAmBwK,EAAc8U,aAAc7pG,KAAK8pF,UAAW9pF,MACvFA,KAAK8pG,YAAc,IAAIvf,GAAmBwK,EAAc+U,YAAa9pG,KAAK8pF,UAAW9pF,MACrFA,KAAK+pG,SAAW,IAAIxf,GAAmBwK,EAAcgV,SAAU/pG,KAAK8pF,UAAW9pF,MAC/EA,KAAKgqG,cAAgB,IAAIzf,GAAmBwK,EAAciV,cAAehqG,KAAK8pF,UAAW9pF,MAEzFA,KAAKgtG,oBAAsB,IAAIziB,GAAmBwK,EAAciY,oBAAqBhtG,KAAK8pF,UAAW9pF,MACrGA,KAAK0rG,oBAAsB,IAAInhB,GAAmBwK,EAAc2W,oBAAqB1rG,KAAK8pF,UAAW9pF,MACrGA,KAAKi7F,iBACP,CAEAA,kBACEj7F,KAAK4zF,YAAc,IAAIF,GACvB1zF,KAAK4zF,YAAYD,cAAc,sBAAuB3zF,KAAKgtG,qBAC3DhtG,KAAK4zF,YAAYD,cAAc,sBAAuB3zF,KAAK0rG,oBAC7D,CAESpW,eACPx1F,MAAMw1F,eACNt1F,KAAK6pG,aAAa39F,MAAQ,KAC1BlM,KAAK8pG,YAAY59F,MAAQ,KACzBlM,KAAK+pG,SAAS79F,MAAQ,KACtBlM,KAAKgqG,cAAc99F,MAAQ,IAC7B,CAES6rF,6BACPj4F,MAAMi4F,6BACN/3F,KAAK6pG,aAAa7f,QAAQ,iBAC1BhqF,KAAK8pG,YAAY9f,QAAQ,eACzBhqF,KAAK+pG,SAAS/f,QAAQ,YACtBhqF,KAAKgqG,cAAchgB,QAAQ,kBAE3BhqF,KAAKgtG,oBAAoBhjB,QAAQyK,0BACjCz0F,KAAK0rG,oBAAoB1hB,QAAQyK,yBACnC,CAESW,gBACPt1F,MAAMs1F,gBACNp1F,KAAK6pG,aAAarc,YAAYgH,iBAC9Bx0F,KAAK8pG,YAAYtc,YAAYgH,gBAC7Bx0F,KAAK+pG,SAASvc,YAAYgH,aAC1Bx0F,KAAKgqG,cAAcxc,YAAYgH,aAE/Bx0F,KAAKgtG,oBAAoBxf,YAAYgH,iBACrCx0F,KAAK0rG,oBAAoBle,YAAYgH,gBACvC,CAESa,mBACPv1F,MAAMu1F,mBAEFr1F,KAAK6pG,aAAa/a,eACpB9uF,KAAK6pG,aAAapb,gBAAgB,KAAMf,cAAcgK,MAAMC,aAAasS,MAGvEjqG,KAAKgtG,oBAAoBle,eAC3B9uF,KAAKgtG,oBAAoBve,gBAAgB,KAAMf,cAAcgK,MAAMC,aAAasS,MAG9EjqG,KAAK0rG,oBAAoB5c,eAC3B9uF,KAAK0rG,oBAAoBjd,gBAAgB,KAAMf,cAAcgK,MAAMC,aAAasS,KAEpF,CAEAgD,+BACE,OAAOjtG,KAAK8pF,UAAUojB,kCAAkCltG,KAAKkL,GAC/D,CAEAgwF,mBACE,MAAO,CACLl7F,KAAKitG,+BAA+B,GAAGpD,aACvC7pG,KAAKitG,+BAA+B,GAAGnD,YACvC9pG,KAAKitG,+BAA+B,GAAGlD,SAE3C,CAES7d,UAAUyQ,GACjB78F,MAAMosF,UAAUyQ,GAChB38F,KAAK6pG,aAAe7pG,KAAKorF,0BAA0BuR,EAAIkN,cACvD7pG,KAAK8pG,YAAc9pG,KAAKorF,0BAA0BuR,EAAImN,aACtD9pG,KAAK+pG,SAAW/pG,KAAKorF,0BAA0BuR,EAAIoN,UACnD/pG,KAAKgqG,cAAgBhqG,KAAKorF,0BAA0BuR,EAAIqN,eAExDhqG,KAAKgtG,oBAAsBhtG,KAAKorF,0BAA0BuR,EAAIqQ,qBAC9DhtG,KAAK0rG,oBAAsB1rG,KAAKorF,0BAA0BuR,EAAI+O,qBAC9D1rG,KAAKo1F,gBACLp1F,KAAKq1F,mBACLr1F,KAAKi7F,iBACP,EChHI,MAAOkS,WAAmBxD,GAM9B9pG,YAAYk1F,EAAiCjL,GAC3ChqF,MAAMi1F,EAAejL,GANvB9pF,cAAWivF,kBAOTjvF,KAAKk0F,WAAWa,GAChB/0F,KAAK+3F,4BACP,CAES7D,WAAWa,GAClBj1F,MAAMo0F,WAAWa,GACjB/0F,KAAKmrG,wBAA0BpW,EAAcoW,yBAA2B,GACxEnrG,KAAKorG,eAAiB,IAAI7gB,GAAmBwK,EAAcqW,eAAgBprG,KAAK8pF,UAAW9pF,KAC7F,CAESq1F,mBACPv1F,MAAMu1F,mBAC+B,KAAjCr1F,KAAKmrG,0BACPnrG,KAAKmrG,wBAA0BF,UAEnC,CAESlT,6BACPj4F,MAAMi4F,6BACN/3F,KAAKorG,eAAephB,QAAQ,kBAC9B,CAESoL,gBACPt1F,MAAMs1F,gBACNp1F,KAAKorG,eAAe5d,YAAYgH,YAClC,CAEStI,UAAU6I,GACjBj1F,MAAMosF,UAAU6I,GAChB/0F,KAAKorG,eAAiBprG,KAAKorF,0BAA0B2J,EAAcqW,gBACnEprG,KAAKo1F,gBACLp1F,KAAKq1F,kBACP,EC1CI,MAAgB+X,WAA0BzD,GAAhD9pG,kCAIEG,gCAA0D,EAyD5D,CAvDWk0F,WAAWa,GAIlB,GAHAj1F,MAAMo0F,WAAWa,GAEjB/0F,KAAK68F,eAAgBlQ,GAAgBoI,EAAc8H,gBAAyB9H,EAAc8H,cACtF9H,EAAc2M,sCAAsC5nF,MACtD,UAAW4jF,KAAM3I,EAAc2M,2BAC7B1hG,KAAK0hG,2BAA2B94F,KAAK,IAAI40F,GAA0BE,EAAGvJ,gBAAiBuJ,EAAGxxF,OAGhG,CAEA+5F,wBAAwB9R,GACtBn0F,KAAKkmG,0BACLlmG,KAAK0hG,2BAA2B94F,KAAK,IAAI40F,GAA0BrJ,EAAiB,MACtF,CAEQ+R,0BACN,UAAWxI,KAAM19F,KAAK0hG,2BACpBhE,EAAGxxF,MAAQ,IAEf,CAEA61F,8BAA8B5N,GAC5B,OAAOn0F,KAAK0hG,2BAA2B9hE,KAAKs/D,GACnCA,EAAI/K,kBAAoBA,EAEnC,CAEA6N,kCAAkCx9F,GAChC,MAAMk5F,EAAK19F,KAAK0hG,2BAA2Bl9F,GAE3C,GAAIk5F,EAAI,CACN,MAAM7E,EAAK74F,KAAK8pF,UAAUyV,iBAAiB7B,EAAGvJ,iBAExCkZ,EAAertG,KAAK8pF,UAAUwjB,yBAA0BC,GACrDA,EAAGrR,wBAA0BrD,GAAI3tF,IAG1C,OAAOmiG,EAAa5oG,OAAS4oG,EAAa,GAAGG,oBAAoBpqG,UAAO6K,EAI5E,CAEAw/F,mCAAmCtZ,GACjC,OAAOn0F,KAAK0hG,2BAA2BxwF,QAAQlR,KAAK+hG,8BAA8B5N,GACpF,CAEAgS,gCAAgChS,GAC9B,MAAM9iF,EAAQrR,KAAKytG,mCAAmCtZ,GAElD9iF,GAAS,GACXrR,KAAK0hG,2BAA2BvwF,OAAOE,EAAO,EAElD,EC5DI,MAAOq8F,WAAsBN,GAGjCvtG,YAAYk1F,EAAoBjL,GAC9BhqF,MAAMi1F,EAAejL,GAHvB9pF,cAAWivF,qBAITjvF,KAAKk0F,WAAWa,EAClB,CAESb,WAAWa,GAClBj1F,MAAMo0F,WAAWa,GACjB/0F,KAAKo1F,eACP,CAESE,eACPx1F,MAAMw1F,cACR,CAES7J,gBAAgBtB,GACvB,MAAMojB,EAAKpjB,EACXnqF,KAAK68F,cAAgB0Q,EAAG1Q,cAExB78F,KAAKoD,KAAO+mF,EAAQ/mF,KACpB,QAASoB,EAAI,EAAGA,EAAI+oG,EAAG7L,2BAA2Bj9F,OAAQD,IACxDxE,KAAK0hG,2BAA2Bl9F,GAAG0H,MAAQqhG,EAAG7L,2BAA2Bl9F,GAAG0H,KAEhF,CAEA6wF,eAAeF,GACb78F,KAAK68F,cAAgBA,CACvB,ECnBI,MAAO8Q,WACH1U,GAuBRp5F,YAAYk1F,EAAoBjL,GAC9BhqF,MAAMi1F,EAAejL,GArBvB9pF,cAAWivF,kBAsBTjvF,KAAKk0F,WAAWa,GAChB/0F,KAAK+3F,4BACP,CAEAmD,mBACE,OAAIl7F,KAAK8pF,UAAU6V,mBACV,CACL3/F,KAAKgnG,iBACLhnG,KAAK4tG,YACL5tG,KAAK6tG,aACL7tG,KAAK8tG,YACL9tG,KAAK0nG,aACL1nG,KAAK+tG,oBACL/tG,KAAKu3F,aACLv3F,KAAK2nG,wBACL3nG,KAAK4nG,mBACL5nG,KAAKs3F,aACLt3F,KAAKymG,kBACLzmG,KAAK0mG,cACL1mG,KAAKi3F,UACLj3F,KAAKm3F,YAGF,CACLn3F,KAAKgnG,iBACLhnG,KAAK4tG,YACL5tG,KAAK6tG,aACL7tG,KAAK8tG,YACL9tG,KAAK0nG,aACL1nG,KAAK+tG,oBACL/tG,KAAKu3F,aACLv3F,KAAK2nG,wBACL3nG,KAAK4nG,mBACL5nG,KAAKs3F,aACLt3F,KAAKymG,kBACLzmG,KAAK0mG,cACL1mG,KAAKq4F,aACLr4F,KAAKs4F,YACLt4F,KAAKo4F,YACLp4F,KAAKm4F,aACLn4F,KAAKu4F,aACLv4F,KAAKw4F,YACLx4F,KAAKy4F,YACLz4F,KAAK04F,WACL14F,KAAKq5F,oBACLr5F,KAAKo5F,sBACLp5F,KAAKk5F,WACLl5F,KAAKm5F,SACLn5F,KAAKi3F,UACLj3F,KAAKm3F,WAET,CAEAgE,wCACE,MAAO,CACLn7F,KAAK2nG,wBACL3nG,KAAK4nG,mBACL5nG,KAAKymG,kBACLzmG,KAAK62F,QACL72F,KAAK82F,cACL92F,KAAK+2F,UACL/2F,KAAK42F,UACL52F,KAAKk3F,eAET,CAEA4E,yBAEA,CAEAD,6BAEA,CAES3H,WAAWa,GAClBj1F,MAAMo0F,WAAWa,GAGf/0F,KAAKguG,0BADHrhB,GAAgBoI,EAAciZ,0BAGDjZ,EAAciZ,wBAG/ChuG,KAAKgnG,iBAAmB,IAAIzc,GAAmBwK,EAAciS,iBAAkBhnG,KAAK8pF,UAAW9pF,MAC/FA,KAAK4tG,YAAc,IAAIrjB,GAAmBwK,EAAc6Y,YAAa5tG,KAAK8pF,UAAW9pF,MACrFA,KAAK6tG,aAAe,IAAItjB,GAAmBwK,EAAc8Y,aAAc7tG,KAAK8pF,UAAW9pF,MACvFA,KAAK8tG,YAAc,IAAIvjB,GAAmBwK,EAAc+Y,YAAa9tG,KAAK8pF,UAAW9pF,MACrFA,KAAK+tG,oBAAsB,IAAIxjB,GAAmBwK,EAAcgZ,oBAAqB/tG,KAAK8pF,UAAW9pF,MACrGA,KAAKiuG,gBAAkB,IAAI1jB,GAAmBwK,EAAckZ,gBAAiBjuG,KAAK8pF,UAAW9pF,MAC7FA,KAAK0nG,aAAe,IAAInd,GAAmBwK,EAAc2S,aAAc1nG,KAAK8pF,UAAW9pF,MACvFA,KAAKymG,kBAAoB,IAAIlc,GAAmBwK,EAAc0R,mBAAqB,GAAIzmG,KAAK8pF,UAAW9pF,MACvGA,KAAK0mG,cAAgB,IAAInc,GAAmBwK,EAAc2R,eAAiB,GAAI1mG,KAAK8pF,UAAW9pF,MAC/FA,KAAKkuG,WAAa,IAAI3jB,GAAmBwK,EAAcmZ,YAAc,GAAIluG,KAAK8pF,UAAW9pF,MACzFA,KAAKmuG,WAAa,IAAI5jB,GAAmBwK,EAAcoZ,YAAc,GAAInuG,KAAK8pF,UAAW9pF,MACzFA,KAAK4nG,mBAAqB,IAAIrd,GAAmBwK,EAAc6S,oBAAsB,GAAI5nG,KAAK8pF,UAAW9pF,MACzGA,KAAK2nG,wBAA0B,IAAIpd,GACjCwK,EAAc4S,yBAA2B,GACzC3nG,KAAK8pF,UACL9pF,MAGAA,KAAKg7F,gBADHrO,GAAgBoI,EAAciG,iBAGVjG,EAAciG,eAGtCh7F,KAAK+nG,aAAqBpb,GAAgBoI,EAAcgT,aAAe,IAEvE/nG,KAAKi7F,iBACP,CAEAA,kBACEj7F,KAAK4zF,YAAc,IAAIF,GACvB1zF,KAAK4zF,YAAYD,cAAc,WAAY3zF,KAAKo3F,UAChDp3F,KAAK4zF,YAAYD,cAAc,cAAe3zF,KAAKq3F,aACnDr3F,KAAK4zF,YAAYD,cAAc,aAAc3zF,KAAKkuG,YAClDluG,KAAK4zF,YAAYD,cAAc,aAAc3zF,KAAKmuG,WACpD,CAES/Y,gBACPt1F,MAAMs1F,gBACNp1F,KAAK4tG,YAAYpgB,YAAYgH,mBAC7Bx0F,KAAKgnG,iBAAiBxZ,YAAYgH,wBAClCx0F,KAAK6tG,aAAargB,YAAYgH,YAC9Bx0F,KAAK8tG,YAAYtgB,YAAYgH,YAC7Bx0F,KAAK+tG,oBAAoBvgB,YAAYgH,8BACrCx0F,KAAKiuG,gBAAgBzgB,YAAYgH,iBACjCx0F,KAAK0nG,aAAala,YAAYgH,iBAC9Bx0F,KAAK0mG,cAAclZ,YAAYgH,iBAC/Bx0F,KAAKymG,kBAAkBjZ,YAAYgH,8BACnCx0F,KAAKkuG,WAAW1gB,YAAYgH,mBAC5Bx0F,KAAKmuG,WAAW3gB,YAAYgH,kBAC5Bx0F,KAAK2nG,wBAAwBna,YAAYgH,YACzCx0F,KAAK4nG,mBAAmBpa,YAAYgH,gCACtC,CAEStI,UAAUyQ,GACjB78F,MAAMosF,UAAUyQ,GAChB38F,KAAKgnG,iBAAmBhnG,KAAKorF,0BAA0BuR,EAAIqK,kBAC3DhnG,KAAK4tG,YAAc5tG,KAAKorF,0BAA0BuR,EAAIiR,aACtD5tG,KAAK6tG,aAAe7tG,KAAKorF,0BAA0BuR,EAAIkR,cACvD7tG,KAAK8tG,YAAc9tG,KAAKorF,0BAA0BuR,EAAImR,aACtD9tG,KAAK+tG,oBAAsB/tG,KAAKorF,0BAA0BuR,EAAIoR,qBAC9D/tG,KAAKiuG,gBAAkBjuG,KAAKorF,0BAA0BuR,EAAIsR,iBAC1DjuG,KAAK0nG,aAAe1nG,KAAKorF,0BAA0BuR,EAAI+K,cACvD1nG,KAAK0mG,cAAgB1mG,KAAKorF,0BAA0BuR,EAAI+J,eACxD1mG,KAAKymG,kBAAoBzmG,KAAKorF,0BAA0BuR,EAAI8J,mBAC5DzmG,KAAKkuG,WAAaluG,KAAKorF,0BAA0BuR,EAAIuR,YACrDluG,KAAKmuG,WAAanuG,KAAKorF,0BAA0BuR,EAAIwR,YACrDnuG,KAAK4nG,mBAAqB5nG,KAAKorF,0BAA0BuR,EAAIiL,oBAC7D5nG,KAAK2nG,wBAA0B3nG,KAAKorF,0BAA0BuR,EAAIgL,yBAClE3nG,KAAKo1F,gBACLp1F,KAAKq1F,mBACLr1F,KAAKi7F,iBACP,CAEAc,qBACE,MAAMC,EAAch8F,KAAK8pF,UAAUmS,4BAA4BtyF,GACtDA,EAAEuyF,wBAA0Bl8F,KAAKkL,IACvC,GAEH,OAAO8wF,GAAeh8F,KAAK4zF,YAAYL,wBAAwB,WAAYyI,EAAYG,mBAAmBjwF,MAC5G,CAESmpF,mBACPv1F,MAAMu1F,mBACFr1F,KAAK4nG,mBAAmB9Y,eAC1B9uF,KAAK4nG,mBAAmBnZ,gBAAgB,QAEtCzuF,KAAK2nG,wBAAwB7Y,eAC/B9uF,KAAK2nG,wBAAwBlZ,gBAAgB,IAE3CzuF,KAAK0nG,aAAa5Y,eACpB9uF,KAAK0nG,aAAajZ,gBAAgB,EAAKf,cAAcgK,MAAMC,aAAayW,UAEtEpuG,KAAKk5F,WAAWpK,eAClB9uF,KAAKk5F,WAAWzK,gBAAgB,EAAKf,cAAcgK,MAAMqO,WAAWC,KAExE,CAEA1S,yBACE,OAAOtzF,KAAK4zF,YAAYG,2BAC1B,CAESgE,6BACPj4F,MAAMi4F,6BACN/3F,KAAK4tG,YAAY5jB,QAAQ,gBACzBhqF,KAAKgnG,iBAAiBhd,QAAQ,sBAC9BhqF,KAAK+tG,oBAAoB/jB,QAAQ,0BACjChqF,KAAKiuG,gBAAgBjkB,QAAQ,qBAC7BhqF,KAAK0nG,aAAa1d,QAAQ,iBAC1BhqF,KAAK4nG,mBAAmB5d,QAAQ,wBAChChqF,KAAK2nG,wBAAwB3d,QAAQ,uBACrChqF,KAAKmuG,WAAWnkB,QAAQyK,gBACxBz0F,KAAKkuG,WAAWlkB,QAAQyK,gBACxBz0F,KAAK0mG,cAAc1c,QAAQyK,mBAC3Bz0F,KAAKymG,kBAAkBzc,QAAQyK,wBAC/Bz0F,KAAK8tG,YAAY9jB,QAAQyK,cACzBz0F,KAAK6tG,aAAa7jB,QAAQyK,kBAC1Bz0F,KAAKm4F,aAAanO,QAAQ,mBAC1BhqF,KAAKo4F,YAAYpO,QAAQ,kBACzBhqF,KAAKq4F,aAAarO,QAAQ,mBAC1BhqF,KAAKs4F,YAAYtO,QAAQ,kBACzBhqF,KAAKu4F,aAAavO,QAAQ,mBAC1BhqF,KAAKw4F,YAAYxO,QAAQ,kBACzBhqF,KAAKy4F,YAAYzO,QAAQ,kBACzBhqF,KAAK04F,WAAW1O,QAAQ,iBACxBhqF,KAAKi3F,UAAUjN,QAAQ,cACvBhqF,KAAKm3F,WAAWnN,QAAQ,eACxBhqF,KAAKq5F,oBAAoBrP,QAAQyK,2BACjCz0F,KAAKo5F,sBAAsBpP,QAAQyK,6BACnCz0F,KAAKk5F,WAAWlP,QAAQyK,gBACxBz0F,KAAKm5F,SAASnP,QAAQyK,qBACxB,CAESroC,cAAc+9B,GAErB,OADgBrqF,MAAMssD,cAAc+9B,IAClBA,EAAQ4d,cAAgB/nG,KAAK+nG,WACjD,ECnQK,IAAKsG,GAIX,aAJWA,UAAsB,KAChCA,sBACAA,0BACAA,oBAHUA,GAAZ,IAAYA,GAIX,GCJWC,GAEX,OAFWA,QAAsB,KAChCA,0BADUA,IAEX,GCOK,MAAOC,WAAyB1kB,GAWpChqF,YAAY2uG,EAA0C1kB,GACpDhqF,MAAM0uG,EAAiBtjG,GAAI4+E,GAX7B9pF,cAAW,mBAYTA,KAAKk0F,WAAWsa,GAChBxuG,KAAK+3F,4BACP,CAEA7D,WAAWsa,GACTxuG,KAAKoD,KAAOorG,EAAiBprG,KAC7BpD,KAAKyuG,cAAgB,IAAIlkB,GAAmBikB,EAAiBC,cAAezuG,KAAK8pF,UAAW9pF,MAC5FA,KAAK0uG,eAAiB,IAAInkB,GAAmBikB,EAAiBE,eAAgB1uG,KAAK8pF,UAAW9pF,MAC9FA,KAAK2uG,gBAAkB,IAAIpkB,GAAmBikB,EAAiBG,gBAAiB3uG,KAAK8pF,UAAW9pF,MAChGA,KAAK4uG,aAAe,IAAIrkB,GAAmBikB,EAAiBI,aAAc5uG,KAAK8pF,UAAW9pF,MAC1FA,KAAK6uG,kBAAoB,IAAItkB,GAAmBikB,EAAiBK,kBAAmB7uG,KAAK8pF,UAAW9pF,MACpGA,KAAK8uG,SAAW,IAAIvkB,GAAmBikB,EAAiBM,SAAU9uG,KAAK8pF,UAAW9pF,MAClFA,KAAK+uG,wBAA0B,IAAIxkB,GACjCikB,EAAiBO,wBACjB/uG,KAAK8pF,UACL9pF,MAEFA,KAAKgvG,yBAA2B,IAAIzkB,GAClCikB,EAAiBQ,yBACjBhvG,KAAK8pF,UACL9pF,MAGFA,KAAKo1F,gBACLp1F,KAAKq1F,kBACP,CAEA0C,6BACE/3F,KAAKyuG,cAAczkB,QAAQyK,WAC3Bz0F,KAAK0uG,eAAe1kB,QAAQyK,oBAC5Bz0F,KAAK2uG,gBAAgB3kB,QAAQyK,qBAC7Bz0F,KAAK4uG,aAAa5kB,QAAQyK,UAC1Bz0F,KAAK6uG,kBAAkB7kB,QAAQyK,sBACjC,CAEAW,gBACEp1F,KAAKyuG,cAAcjhB,YAAYgH,WAC/Bx0F,KAAK0uG,eAAelhB,YAAYgH,WAChCx0F,KAAK2uG,gBAAgBnhB,YAAYgH,WACjCx0F,KAAK4uG,aAAaphB,YAAYgH,UAC9Bx0F,KAAK6uG,kBAAkBrhB,YAAYgH,kBACnCx0F,KAAK8uG,SAASthB,YAAYgH,MAC1Bx0F,KAAK+uG,wBAAwBvhB,YAAYgH,gBACzCx0F,KAAKgvG,yBAAyBxhB,YAAYgH,eAC5C,CAEAa,mBACMr1F,KAAKyuG,cAAc3f,eACrB9uF,KAAKyuG,cAAchgB,gBAAgB,KAAMf,cAAcgK,MAAMuX,OAAOC,GAElElvG,KAAK0uG,eAAe5f,eACtB9uF,KAAK0uG,eAAejgB,gBAAgB,KAAMf,cAAcgK,MAAMuX,OAAOE,IAEnEnvG,KAAK2uG,gBAAgB7f,eACvB9uF,KAAK2uG,gBAAgBlgB,gBAAgB,KAAMf,cAAcgK,MAAMuX,OAAOE,GAE1E,CAEAjU,mBACE,OAAKl7F,KAAK8pF,UAAU6V,mBAGb,GAFE,CAAC3/F,KAAKyuG,cAAezuG,KAAK0uG,eAAgB1uG,KAAK2uG,gBAAiB3uG,KAAK4uG,aAAc5uG,KAAK6uG,kBAGnG,CAEAO,yBAAyBC,GAEvB,IAAIC,EACJC,OAFmBvvG,KAAK8pF,UAAU0lB,qBAAqB3W,GAAMA,aAAc4W,IAEhE9pG,QAAQ+pG,IACjBA,EAAG16E,SAASrvB,QAAQgqG,IACdA,EAAWzkG,KAAOmkG,IACpBC,EAAiBI,IAEpB,GAGIJ,CACT,CAESpjB,UAAUC,GACjBrsF,MAAMosF,UAAUC,GAChBnsF,KAAKyuG,cAAgBzuG,KAAKorF,0BAA0Be,EAAasiB,eACjEzuG,KAAK0uG,eAAiB1uG,KAAKorF,0BAA0Be,EAAauiB,gBAClE1uG,KAAK2uG,gBAAkB3uG,KAAKorF,0BAA0Be,EAAawiB,iBACnE3uG,KAAK4uG,aAAe5uG,KAAKorF,0BAA0Be,EAAayiB,cAChE5uG,KAAK6uG,kBAAoB7uG,KAAKorF,0BAA0Be,EAAa0iB,mBACrE7uG,KAAK8uG,SAAW9uG,KAAKorF,0BAA0Be,EAAa2iB,UAC5D9uG,KAAK+uG,wBAA0B/uG,KAAKorF,0BAA0Be,EAAa4iB,yBAC3E/uG,KAAKgvG,yBAA2BhvG,KAAKorF,0BAA0Be,EAAa6iB,0BAE5EhvG,KAAKo1F,gBACLp1F,KAAKq1F,mBACLr1F,KAAK4qF,8BACL5qF,KAAK+3F,4BACP,CAEOhM,SACL,MAAO,CACL7gF,GAAIlL,KAAKkL,GACT9H,KAAMpD,KAAKoD,KACXmoF,SAAUvrF,KAAKurF,SACfkjB,cAAezuG,KAAKyuG,cAAcvjG,GAClCwjG,eAAgB1uG,KAAK0uG,eAAexjG,GACpCyjG,gBAAiB3uG,KAAK2uG,gBAAgBzjG,GACtC0jG,aAAc5uG,KAAK4uG,aAAa1jG,GAChC2jG,kBAAmB7uG,KAAK6uG,kBAAkB3jG,GAC1C4jG,SAAU9uG,KAAK8uG,SAAS5jG,GACxB6jG,wBAAyB/uG,KAAK+uG,wBAAwB7jG,GACtD8jG,yBAA0BhvG,KAAKgvG,yBAAyB9jG,GAE5D,ECpII,MAAO0kG,GACX/vG,YAAoBgwG,mBAAiB,CAQrCC,KAAQC,EAAcC,GAIpB,MAAO,CAAEC,KAHUjwG,KAAKiwG,KAAKF,EAASC,GAGXE,MAFPlwG,KAAKkwG,MAAMH,EAASC,GAEOG,aAD1BnwG,KAAKmwG,aAAaJ,EAASC,GAElD,CAQAC,KAAQF,EAAcC,GACpB,OAAOhwG,KAAK6vG,UAAU93F,OAAOq4F,IAC8B,IAAlDL,EAAQvT,UAAU5mF,GAAKo6F,EAAgBI,EAAGx6F,IAErD,CAQAs6F,MAASH,EAAcC,GACrB,OAAOD,EAAQh4F,OAAOnC,IAC4C,IAAzD5V,KAAK6vG,UAAUrT,UAAU4T,GAAKJ,EAAgBI,EAAGx6F,IAE5D,CAQAu6F,aAAgBJ,EAAcC,GAC5B,OAAOhwG,KAAK6vG,UAAU93F,OAAOq4F,GAAKL,EAAQvT,UAAU5mF,GAAKo6F,EAAgBI,EAAGx6F,KAAO,EACrF,EChCI,MAAO65F,WAAkB9F,GAO7B9pG,YAAYk1F,EAAgCjL,GAC1ChqF,MAAMi1F,EAAejL,GAPvB9pF,cAAWivF,iBAQTjvF,KAAKk0F,WAAWa,GAChB/0F,KAAK+3F,4BACP,CAES7D,WAAWa,GAClBj1F,MAAMo0F,WAAWa,GACjB/0F,KAAKqwG,kBAAoBtb,EAAcsb,mBAAqB/B,eAC5DtuG,KAAKswG,uBAAyBvb,EAAcub,wBAA0BjC,aACtEruG,KAAKuwG,WAAa,IAAIhmB,GAAmBwK,EAAcwb,WAAYvwG,KAAK8pF,UAAW9pF,MACnFA,KAAKg1B,SAAW,GAEZ+/D,EAAc//D,oBAAoBlb,QACXi7E,EAAc//D,SAASvwB,OAASswF,EAAc//D,SAAS,QAAK/mB,aACrDsgG,KAC9BvuG,KAAKg1B,SAAW+/D,EAAc//D,SAGpC,CAES+iE,6BACPj4F,MAAMi4F,6BACN/3F,KAAKuwG,WAAWvmB,QAAQyK,eAC1B,CAEShJ,gBAAgBtB,GACvB,MAAMqmB,EAAkBrmB,EAClBsmB,EAAuBzwG,KAE7BywG,EAAqBJ,kBAAoBG,EAAgBH,kBACzDI,EAAqBH,uBAAyBE,EAAgBF,uBAC9DtwG,KAAK0wG,sBAAsBF,EAAiBC,GAC5CA,EAAqBtb,SAAWqb,EAAgBrb,SAIhD,MAAM2a,EAFY,IAAIF,GAAUY,EAAgBx7E,UAEzB86E,KAAKW,EAAqBz7E,SAAU,CAACo7E,EAAqBx6F,IACxEw6F,EAAEllG,KAAO0K,EAAE1K,IAGpB,UAAWylG,KAA0Bb,EAAKK,aAAc,CACtD,MAAMS,EAA8BH,EAAqBz7E,SAAS4K,KAChEixE,GAAqBA,EAAkB3lG,KAAOylG,EAAuBzlG,IAGvElL,KAAK8wG,uBAAuBH,EAAwBC,EAA2B,CAGjF,MAAMG,EAAyBjB,EAAKG,KACpC,UAAWU,KAA0BI,EAAwB,CAC3D,MAAMH,EAA8B,IAAIrC,GAAiBoC,EAAwBF,EAAqB3mB,WACtG2mB,EAAqBO,qBAAqBJ,EAA2B,CAGvE,MAAMK,EAA4BnB,EAAKI,MACvC,UAAWgB,KAA4BD,EACrCR,EAAqBU,uBAAuBD,EAEhD,CAEAR,sBAAsBx4F,EAAmBQ,GACvCA,EAAY63F,WAAWrjB,SAAWh1E,EAAOq4F,WAAWrjB,SACpDx0E,EAAY63F,WAAWrkG,MAAQgM,EAAOq4F,WAAWrkG,MACjDwM,EAAY63F,WAAWpxC,KAAOjnD,EAAOq4F,WAAWpxC,KAChDzmD,EAAY63F,WAAWpjB,eAAiBj1E,EAAOq4F,WAAWpjB,cAC5D,CAEA2jB,uBAAuB54F,EAAoBQ,GACzC,MAAMrR,EAAOsE,OAAOtE,KAAK6Q,GAEzB,UAAWpH,KAAOzJ,EACKqR,EAAY5H,aAELy5E,IACtBryE,EAAOpH,GAAK5F,KACdwN,EAAY5H,GAAK5F,GAAKgN,EAAOpH,GAAK5F,IAGhCgN,EAAOpH,GAAKo8E,WACdx0E,EAAY5H,GAAKo8E,SAAWh1E,EAAOpH,GAAKo8E,UAIxCx0E,EAAY5H,GAAK5E,MADfogF,GAAgBp0E,EAAOpH,GAAK5E,QACJgM,EAAOpH,GAAK5E,WAEb+B,EAGvBiK,EAAOpH,GAAKquD,OACdzmD,EAAY5H,GAAKquD,KAAOjnD,EAAOpH,GAAKquD,MAGlCjnD,EAAOpH,GAAK0O,SACd9G,EAAY5H,GAAKq8E,eAAiBj1E,EAAOpH,GAAKq8E,iBAGhDz0E,EAAY5H,GAAOoH,EAAOpH,EAGhC,CAEAkgG,qBAAqBxC,GACLxuG,KAAKg1B,SAASwnE,UAAU4U,GAAOA,EAAIlmG,KAAOsjG,EAAiBtjG,KAC7D,IAIZlL,KAAKg1B,SAASpsB,KAAK4lG,GACnBxuG,KAAKqxG,2BACLrxG,KAAK8pF,UAAUwB,WAAWkjB,GAC1BA,EAAiBhjB,mBACnB,CAEA2lB,uBAAuBC,GACrB,MAAM//F,EAAQrR,KAAKg1B,SAASwnE,UAAU7yF,GAAKA,EAAEuB,KAAOkmG,EAAIlmG,KAC1C,IAAVmG,IAIJrR,KAAKg1B,SAAS7jB,OAAOE,EAAO,GAC5BrR,KAAK8pF,UAAU2S,gBAAgB2U,GAC/BpxG,KAAK8pF,UAAU2S,gBAAgB2U,EAAI3C,eACnCzuG,KAAK8pF,UAAU2S,gBAAgB2U,EAAI1C,gBACnC1uG,KAAK8pF,UAAU2S,gBAAgB2U,EAAIzC,iBACnC3uG,KAAK8pF,UAAU2S,gBAAgB2U,EAAIxC,cACnC5uG,KAAK8pF,UAAU2S,gBAAgB2U,EAAIvC,mBACnC7uG,KAAK8pF,UAAU2S,gBAAgB2U,EAAItC,UACnC9uG,KAAK8pF,UAAU2S,gBAAgB2U,EAAIrC,yBACnC/uG,KAAK8pF,UAAU2S,gBAAgB2U,EAAIpC,0BACrC,CAES5Z,gBACPt1F,MAAMs1F,gBACNp1F,KAAKuwG,WAAW/iB,YAAYgH,UAC9B,CAESa,mBACPv1F,MAAMu1F,mBACFr1F,KAAKuwG,WAAWzhB,eAClB9uF,KAAKuwG,WAAW9hB,gBAAgB,EAAKf,cAAcgK,MAAMuX,OAAOC,EAEpE,CAEAmC,2BACE,QAAS7sG,EAAI,EAAGA,EAAIxE,KAAKg1B,SAASvwB,OAAQD,IACxCxE,KAAKg1B,SAASxwB,GAAGpB,KAAO,GAAGpD,KAAKoD,kBAAkBoB,EAAI,GAE1D,CAESymF,+BACP,MAAMqmB,EAAOxxG,MAAMmrF,+BACnBqmB,SAAK1oG,QAAQ5I,KAAKg1B,UACXs8E,CACT,CAEApW,mBACE,OAAKl7F,KAAK8pF,UAAU6V,mBAGb,GAFE,CAAC3/F,KAAKuwG,WAGjB,CAEApV,wCACE,MAAO,CAACn7F,KAAKuwG,WACf,CAEAzU,yBAEA,CAES5P,UAAU6I,GACjBj1F,MAAMosF,UAAU6I,GAChB/0F,KAAKuwG,WAAavwG,KAAKorF,0BAA0B2J,EAAcwb,YAE/DvwG,KAAKo1F,gBACLp1F,KAAKq1F,mBACLr1F,KAAK+3F,4BACP,CAEAwZ,sBAAsBplB,GACfA,EAAan3D,UAIlBm3D,EAAan3D,SAASrvB,QAAQ6rG,IAC5BxxG,KAAKg1B,SAASpsB,KAAK5I,KAAK8pF,UAAU2nB,mBAAmBD,GAAyB,EAElF,CAEgBzlB,SACd,MAAO,CACL7gF,GAAIlL,KAAKkL,GACTk9B,SAAUpoC,KAAKooC,SACft3B,IAAK9Q,KAAK8Q,IACV1N,KAAMpD,KAAKoD,KACX4xF,YAAah1F,KAAKg1F,YAClBC,UAAWj1F,KAAKi1F,UAChBE,SAAUn1F,KAAKm1F,SACf5J,SAAUvrF,KAAKurF,SACfv2D,SAAUh1B,KAAKg1B,SAASztB,IAAI6pG,GAAOA,EAAIlmG,IACvCmlG,kBAAmBrwG,KAAKqwG,kBACxBC,uBAAwBtwG,KAAKswG,uBAC7BC,WAAYvwG,KAAKuwG,WAAWrlG,GAEhC,ECpOK,IAAKwmG,GAGX,aAHWA,UAAyB,KACnCA,UACAA,YAFUA,GAAZ,IAAYA,GAGX,GCHM,MAAMC,GACT,+zCCcE,MAAOC,WAAwB3Y,GAsBnCp5F,YAAYk1F,EAAsCjL,GAChDhqF,MAAMi1F,EAAejL,GAtBvB9pF,cAAWivF,uBAuBTjvF,KAAKk0F,WAAWa,GAChB/0F,KAAK+3F,4BACP,CAEAmD,mBACE,OAAIl7F,KAAK8pF,UAAU6V,mBACV,CACL3/F,KAAK6tG,aACL7tG,KAAK6xG,SACL7xG,KAAK8xG,SACL9xG,KAAK+5F,WACL/5F,KAAKgnG,iBACLhnG,KAAKu3F,aACLv3F,KAAKs3F,aACLt3F,KAAK66F,YACL76F,KAAKm6F,gBACLn6F,KAAKymG,kBACLzmG,KAAK0mG,eAGF,CACL1mG,KAAK6tG,aACL7tG,KAAK6xG,SACL7xG,KAAK8xG,SACL9xG,KAAK+5F,WACL/5F,KAAKgnG,iBACLhnG,KAAKu3F,aACLv3F,KAAKs3F,aACLt3F,KAAK66F,YACL76F,KAAKm6F,gBACLn6F,KAAKymG,kBACLzmG,KAAK0mG,cACL1mG,KAAKq4F,aACLr4F,KAAKs4F,YACLt4F,KAAKo4F,YACLp4F,KAAKm4F,aACLn4F,KAAKu4F,aACLv4F,KAAKw4F,YACLx4F,KAAKy4F,YACLz4F,KAAK04F,WACL14F,KAAKq5F,oBACLr5F,KAAKo5F,sBACLp5F,KAAKk5F,WACLl5F,KAAKm5F,SAET,CAESjF,WAAWa,GAClBj1F,MAAMo0F,WAAWa,GAEjB/0F,KAAKo0F,gBAAkBW,EAAcX,iBAAmB,GACxDp0F,KAAK+xG,YAAchd,EAAcgd,aAAeL,OAChD1xG,KAAK6tG,aAAe,IAAItjB,GAAmBwK,EAAc8Y,aAAc7tG,KAAK8pF,UAAW9pF,MACvFA,KAAK8xG,SAAW,IAAIvnB,GAAmBwK,EAAc+c,SAAU9xG,KAAK8pF,UAAW9pF,MAC/EA,KAAK6xG,SAAW,IAAItnB,GAAmBwK,EAAc8c,SAAU7xG,KAAK8pF,UAAW9pF,MAC/EA,KAAK+5F,WAAa,IAAIxP,GAAmBwK,EAAcgF,WAAY/5F,KAAK8pF,UAAW9pF,MACnFA,KAAKgnG,iBAAmB,IAAIzc,GAAmBwK,EAAciS,iBAAkBhnG,KAAK8pF,UAAW9pF,MAC/FA,KAAK66F,YAAc,IAAItQ,GAAmBwK,EAAc8F,aAAe,GAAI76F,KAAK8pF,UAAW9pF,MAC3FA,KAAKm6F,gBAAkB,IAAI5P,GAAmBwK,EAAcoF,iBAAmB,GAAIn6F,KAAK8pF,UAAW9pF,MACnGA,KAAKymG,kBAAoB,IAAIlc,GAAmBwK,EAAc0R,mBAAqB,GAAIzmG,KAAK8pF,UAAW9pF,MACvGA,KAAK0mG,cAAgB,IAAInc,GAAmBwK,EAAc2R,eAAiB,GAAI1mG,KAAK8pF,UAAW9pF,MAC/FA,KAAK8gG,qBAAuB,IAAIvW,GAAmBwK,EAAc+L,qBAAsB9gG,KAAK8pF,UAAW9pF,MACvGA,KAAK6mG,gBAAkB,IAAItc,GAAmBwK,EAAc8R,gBAAiB7mG,KAAK8pF,UAAW9pF,MAE7FA,KAAKg7F,gBAAiBrO,GAAgBoI,EAAciG,iBAA0BjG,EAAciG,eAC5Fh7F,KAAK+6F,kBAAoBpO,GAAgBoI,EAAcgG,mBACnD4W,GACA5c,EAAcgG,kBAClB/6F,KAAKi7F,iBACP,CAES7F,gBACPt1F,MAAMs1F,gBACNp1F,KAAK6tG,aAAargB,YAAYgH,YAC9Bx0F,KAAK6xG,SAASrkB,YAAYgH,YAC1Bx0F,KAAK8xG,SAAStkB,YAAYgH,YAC1Bx0F,KAAK+5F,WAAWvM,YAAYgH,YAC5Bx0F,KAAKgnG,iBAAiBxZ,YAAYgH,wBAClCx0F,KAAK66F,YAAYrN,YAAYgH,iBAC7Bx0F,KAAKm6F,gBAAgB3M,YAAYgH,8BACjCx0F,KAAK0mG,cAAclZ,YAAYgH,iBAC/Bx0F,KAAKymG,kBAAkBjZ,YAAYgH,8BACnCx0F,KAAK8gG,qBAAqBtT,YAAYgH,kBACtCx0F,KAAK6mG,gBAAgBrZ,YAAYgH,iBACnC,CAESuD,6BACPj4F,MAAMi4F,6BACN/3F,KAAK8gG,qBAAqB9W,QAAQyK,2BAClCz0F,KAAK6mG,gBAAgB7c,QAAQyK,qBAE7Bz0F,KAAK6tG,aAAa7jB,QAAQyK,kBAC1Bz0F,KAAK6xG,SAAS7nB,QAAQyK,cACtBz0F,KAAK8xG,SAAS9nB,QAAQyK,cACtBz0F,KAAK+5F,WAAW/P,QAAQyK,gBACxBz0F,KAAKgnG,iBAAiBhd,QAAQyK,uBAC9Bz0F,KAAK66F,YAAY7Q,QAAQyK,iBACzBz0F,KAAKm6F,gBAAgBnQ,QAAQyK,sBAC7Bz0F,KAAK0mG,cAAc1c,QAAQyK,mBAC3Bz0F,KAAKymG,kBAAkBzc,QAAQyK,wBAC/Bz0F,KAAKq5F,oBAAoBrP,QAAQyK,2BACjCz0F,KAAKo5F,sBAAsBpP,QAAQyK,6BACnCz0F,KAAKk5F,WAAWlP,QAAQyK,gBACxBz0F,KAAKm5F,SAASnP,QAAQyK,qBACxB,CAESY,mBACPv1F,MAAMu1F,mBAEFr1F,KAAKk5F,WAAWpK,eAClB9uF,KAAKk5F,WAAWzK,gBAAgB,EAAKf,cAAcgK,MAAMqO,WAAWC,KAExE,CAEAnK,6BAEA,CAEAvI,yBACE,OAAOtzF,KAAK4zF,YAAYG,2BAC1B,CAEAgI,qBACE,MAAMC,EAAch8F,KAAK8pF,UAAUmS,4BAA4BtyF,GACtDA,EAAEuyF,wBAA0Bl8F,KAAKkL,IACvC,GACH,OACE8wF,IACCh8F,KAAK4zF,YAAYL,wBAAwB,WAAYyI,EAAYG,mBAAmBjwF,QACnFlM,KAAK4zF,YAAYL,wBAAwB,uBAAwByI,EAAYqF,OAAOn1F,QACpFlM,KAAK4zF,YAAYL,wBAAwB,kBAAmByI,EAAYuL,SAASr7F,OAEvF,CAEA+uF,kBACEj7F,KAAK4zF,YAAc,IAAIF,GACvB1zF,KAAK4zF,YAAYD,cAAc,WAAY3zF,KAAKo3F,UAChDp3F,KAAK4zF,YAAYD,cAAc,cAAe3zF,KAAKq3F,aACnDr3F,KAAK4zF,YAAYD,cAAc,uBAAwB3zF,KAAK8gG,sBAC5D9gG,KAAK4zF,YAAYD,cAAc,kBAAmB3zF,KAAK6mG,gBACzD,CAESvR,eACPx1F,MAAMw1F,eACNt1F,KAAKgnG,iBAAiB96F,WAAQ+B,EAC9BjO,KAAK6tG,aAAa3hG,WAAQ+B,EAC1BjO,KAAK6xG,SAAS3lG,WAAQ+B,EACtBjO,KAAK8xG,SAAS5lG,WAAQ+B,EACtBjO,KAAK+5F,WAAW7tF,WAAQ+B,EACxBjO,KAAK0mG,cAAcx6F,WAAQ+B,EAC3BjO,KAAKymG,kBAAkBv6F,WAAQ+B,EAC/BjO,KAAK66F,YAAY3uF,WAAQ+B,EACzBjO,KAAKm6F,gBAAgBjuF,WAAQ+B,CAC/B,CAESi+E,UAAUyQ,GACjB78F,MAAMosF,UAAUyQ,GAChB38F,KAAK6tG,aAAe7tG,KAAKorF,0BAA0BuR,EAAIkR,cACvD7tG,KAAK6xG,SAAW7xG,KAAKorF,0BAA0BuR,EAAIkV,UACnD7xG,KAAK8xG,SAAW9xG,KAAKorF,0BAA0BuR,EAAImV,UACnD9xG,KAAK+5F,WAAa/5F,KAAKorF,0BAA0BuR,EAAI5C,YACrD/5F,KAAKgnG,iBAAmBhnG,KAAKorF,0BAA0BuR,EAAIqK,kBAC3DhnG,KAAK66F,YAAc76F,KAAKorF,0BAA0BuR,EAAI9B,aACtD76F,KAAKm6F,gBAAkBn6F,KAAKorF,0BAA0BuR,EAAIxC,iBAC1Dn6F,KAAK0mG,cAAgB1mG,KAAKorF,0BAA0BuR,EAAI+J,eACxD1mG,KAAKymG,kBAAoBzmG,KAAKorF,0BAA0BuR,EAAI8J,mBAC5DzmG,KAAK8gG,qBAAuB9gG,KAAKorF,0BAA0BuR,EAAImE,sBAC/D9gG,KAAK6mG,gBAAkB7mG,KAAKorF,0BAA0BuR,EAAIkK,iBAE1D7mG,KAAKo1F,gBACLp1F,KAAKq1F,mBACLr1F,KAAKi7F,iBACP,CAES7uC,cAAc+9B,GAErB,OADgBrqF,MAAMssD,cAAc+9B,IAClBA,EAAQ4Q,oBAAsB/6F,KAAK+6F,iBACvD,ECnNI,MAAOiX,WAAqCnoB,GAUhDhqF,YAAYoyG,EAAkEnoB,GAC5EhqF,MAAMmyG,EAA6B/mG,GAAI4+E,GAVzC9pF,cAAW,kCAWTA,KAAKk0F,WAAW+d,GAChBjyG,KAAKo1F,eACP,CAEQlB,WAAW+d,GACjBjyG,KAAKkyG,qBAAuBD,EAA6BC,qBACzDlyG,KAAKmyG,wBAA0BF,EAA6BE,wBAC5DnyG,KAAK8pG,YAAc,IAAIvf,GAAmB0nB,EAA6BnI,YAAa9pG,KAAK8pF,UAAW9pF,MACpGA,KAAK+pG,SAAW,IAAIxf,GAAmB0nB,EAA6BlI,SAAU/pG,KAAK8pF,UAAW9pF,MAC9FA,KAAK6pG,aAAe,IAAItf,GAAmB0nB,EAA6BpI,aAAc7pG,KAAK8pF,UAAW9pF,MACtGA,KAAKgqG,cAAgB,IAAIzf,GAAmB0nB,EAA6BjI,cAAehqG,KAAK8pF,UAAW9pF,KAC1G,CAEAo1F,gBACEp1F,KAAK8pG,YAAYtc,YAAYgH,gBAC7Bx0F,KAAK+pG,SAASvc,YAAYgH,aAC1Bx0F,KAAK6pG,aAAarc,YAAYgH,iBAC9Bx0F,KAAKgqG,cAAcxc,YAAYgH,YACjC,CAEA5G,cACE,OAAO5tF,KAAKqrF,wBAAwBuC,aACtC,CAEAvC,wBACE,OAAOrrF,KAAK8pF,UAAUuB,sBAAsBrrF,KAAKkyG,qBACnD,CAEShmB,UAAUC,GACjBrsF,MAAMosF,UAAUC,GAChBnsF,KAAK8pG,YAAc9pG,KAAKorF,0BAA0Be,EAAa2d,aAC/D9pG,KAAK+pG,SAAW/pG,KAAKorF,0BAA0Be,EAAa4d,UAC5D/pG,KAAK6pG,aAAe7pG,KAAKorF,0BAA0Be,EAAa0d,cAChE7pG,KAAKgqG,cAAgBhqG,KAAKorF,0BAA0Be,EAAa6d,eACjEhqG,KAAK4qF,8BACL5qF,KAAKo1F,eACP,CAEArJ,SACE,MAAO,CACL7gF,GAAIlL,KAAKkL,GACT9H,KAAMpD,KAAKoD,KACXmoF,SAAUvrF,KAAKurF,SACf2mB,qBAAsBlyG,KAAKkyG,qBAC3BC,wBAAyBnyG,KAAKmyG,wBAC9BrI,YAAa9pG,KAAK8pG,YAAY5+F,GAC9B6+F,SAAU/pG,KAAK+pG,SAAS7+F,GACxB2+F,aAAc7pG,KAAK6pG,aAAa3+F,GAChC8+F,cAAehqG,KAAKgqG,cAAc9+F,GAEtC,ECvDI,MAAgBknG,WAAqCzI,GAMzD9pG,YAAYk1F,EAAmDjL,GAC7DhqF,MAAMi1F,EAAejL,GACrB9pF,KAAKk0F,WAAWa,GAChB/0F,KAAK+3F,4BACP,CAES7D,WAAWa,GAClBj1F,MAAMo0F,WAAWa,GAEjB/0F,KAAK+4F,UAAYhE,EAAcgE,WAAad,YAC5Cj4F,KAAKqyG,8BAAgC,IAGlC1lB,GAAgBoI,EAAcsd,gCAC/Btd,EAAcsd,yCAAyCv4F,QAG7Bi7E,EAAcsd,8BAA8B5tG,OAClEswF,EAAcsd,8BAA8B,QAC5CpkG,aAI6B+jG,KAC/BhyG,KAAKqyG,8BAAgCtd,EAAcsd,+BAIvDryG,KAAKmrG,wBAA0BpW,EAAcoW,yBAA2BF,UACxEjrG,KAAKorG,eAAiB,IAAI7gB,GAAmBwK,EAAcqW,eAAgBprG,KAAK8pF,UAAW9pF,KAC7F,CAESo1F,gBACPt1F,MAAMs1F,gBACNp1F,KAAKorG,eAAe5d,YAAYgH,YAClC,CAEA8d,qBAAqBzB,GAEnB,KADc7wG,KAAKqyG,8BAA8B7V,UAAUrT,GAAMA,EAAGj+E,KAAO2lG,EAAkB3lG,KACjF,GAMZ,IAFA2lG,EAAkBsB,wBAA0BtB,EAAkBxlB,wBAAwB4B,gBAAgB/hF,IAEjG2lG,EAAkBsB,wBACrB,MAAM,IAAI1rG,MAAM,gEAGlBzG,KAAKqyG,8BAA8BzpG,KAAKioG,GACxC7wG,KAAK8pF,UAAUwB,WAAWulB,GAC1BA,EAAkBrlB,kBAAgB,CACpC,CAEA+mB,wBAAwBL,GACtB,MAAM7gG,EAAQrR,KAAKqyG,8BAA8B7V,UAAUh4F,GAAKA,EAAE0tG,uBAAyBA,GAC3F,IAAc,IAAV7gG,EACF,OAGF,MAAMw/F,EAAoB7wG,KAAKqyG,8BAA8BlhG,OAAOE,EAAO,GAAG,GAC9ErR,KAAK8pF,UAAU2S,gBAAgBoU,EACjC,CAEA2B,kDAAkDL,GAChD,MAAMM,EAAkBzyG,KAAKqyG,8BAA8Bt6F,OACzDpO,GAAKA,EAAEwoG,0BAA4BA,GAGrC,UAAWtB,KAAqB4B,EAC9BzyG,KAAKuyG,wBAAwB1B,EAAkBqB,qBAEnD,CAESjnB,+BACP,MAAMqmB,EAAOxxG,MAAMmrF,+BACnBqmB,SAAK1oG,QAAQ5I,KAAKqyG,+BAEXf,CACT,CAEArE,+BACE,OAAOjtG,KAAK8pF,UAAUojB,kCAAkCltG,KAAKkL,GAC/D,CAEAwnG,gCACE,OAAO1yG,KAAK8pF,UAAU6oB,iCAAiC3yG,KAAKkL,GAC9D,CAEAgwF,mBACE,OAAKl7F,KAAK8pF,UAAU6V,mBAOb,GANE,CACL3/F,KAAK0yG,gCAAgC,GAAG7I,aACxC7pG,KAAK0yG,gCAAgC,GAAG5I,YACxC9pG,KAAK0yG,gCAAgC,GAAG3I,SAI9C,CAES7d,UAAUyQ,GACjB78F,MAAMosF,UAAUyQ,GAChB38F,KAAKorG,eAAiBprG,KAAKorF,0BAA0BuR,EAAIyO,eAC3D,CAEAwH,4BAA4BzmB,GAErBA,EAAakmB,+BAIlBlmB,EAAakmB,8BAA8B1sG,QAAQ6rG,IACjDxxG,KAAKqyG,8BAA8BzpG,KAAK5I,KAAK8pF,UAAU2nB,mBAAmBD,GAAqC,EAEnH,CAEmBxlB,sBAAsBpJ,GACvC,OAAO9iF,MAAMksF,sBAAsBpJ,IAAaA,IAAa5iF,KAAKqyG,6BACpE,CAEStmB,SACP,MAAMD,EAAchsF,MAAMisF,SAC1BD,SAAYumB,8BAAgCryG,KAAKqyG,8BAA8B9qG,IAAI/C,GAAKA,EAAE0G,IAEnF4gF,CACT,EC5II,MAAO+mB,WAA0BT,GAAvCvyG,kCACEG,cAAWivF,wBACb,ECMM,MAAO6jB,WAAwBV,GAQnCvyG,YAAYk1F,EAAsCjL,GAChDhqF,MAAMi1F,EAAejL,GARvB9pF,cAAWivF,uBASTjvF,KAAKk0F,WAAWa,GAChB/0F,KAAK+3F,4BACP,CAES7D,WAAWa,GAClBj1F,MAAMo0F,WAAWa,GACjB/0F,KAAK6pG,aAAe,IAAItf,GAAmBwK,EAAc8U,aAAc7pG,KAAK8pF,UAAW9pF,MACvFA,KAAK+pG,SAAW,IAAIxf,GAAmBwK,EAAcgV,SAAU/pG,KAAK8pF,UAAW9pF,MAC/EA,KAAK8pG,YAAc,IAAIvf,GAAmBwK,EAAc+U,YAAa9pG,KAAK8pF,UAAW9pF,MACrFA,KAAKi7F,iBACP,CAEAA,kBACEj7F,KAAK4zF,YAAc,IAAIF,GACvB1zF,KAAK4zF,YAAYD,cAAc,WAAY3zF,KAAK6pG,cAChD7pG,KAAK4zF,YAAYD,cAAc,cAAe3zF,KAAK8pG,aACnD9pG,KAAK4zF,YAAYD,cAAc,WAAY3zF,KAAK+pG,SAClD,CAEShS,6BACPj4F,MAAMi4F,6BACN/3F,KAAK6pG,aAAa7f,QAAQyK,aAC1Bz0F,KAAK+pG,SAAS/f,QAAQyK,aACtBz0F,KAAK8pG,YAAY9f,QAAQyK,eAC3B,CAESY,mBACPv1F,MAAMu1F,mBACFr1F,KAAK6pG,aAAa/a,gBACpB9uF,KAAK6pG,aAAapb,gBAAgB,KAAMf,cAAcgK,MAAMC,aAAasS,MACzEjqG,KAAK6pG,aAAahb,aAAY,IAE5B7uF,KAAK+pG,SAASjb,eAChB9uF,KAAK+pG,SAAStb,gBAAgB,KAAMf,cAAcgK,MAAMqb,SAASC,MAG/DhzG,KAAK8pG,YAAYhb,eACnB9uF,KAAK8pG,YAAYrb,gBAAgB,KAAMf,cAAcgK,MAAMqT,YAAYC,QAE3E,CAES5V,gBACPt1F,MAAMs1F,gBACNp1F,KAAK6pG,aAAarc,YAAYgH,iBAC9Bx0F,KAAK8pG,YAAYtc,YAAYgH,gBAC7Bx0F,KAAK+pG,SAASvc,YAAYgH,YAC5B,CAES0G,mBACP,OAAKl7F,KAAK8pF,UAAU6V,mBAOb,GANE,CACL3/F,KAAKitG,+BAA+B,GAAGpD,aACvC7pG,KAAKitG,+BAA+B,GAAGnD,YACvC9pG,KAAKitG,+BAA+B,GAAGlD,SAI7C,CAES7d,UAAUyQ,GACjB78F,MAAMosF,UAAUyQ,GAEhB38F,KAAK6pG,aAAe7pG,KAAKorF,0BAA0BuR,EAAIkN,cACvD7pG,KAAK+pG,SAAW/pG,KAAKorF,0BAA0BuR,EAAIoN,UACnD/pG,KAAK8pG,YAAc9pG,KAAKorF,0BAA0BuR,EAAImN,aAEtD9pG,KAAKq1F,mBACLr1F,KAAKo1F,gBACLp1F,KAAKi7F,iBACP,EC1FK,IAAKgY,GAGX,aAHWA,UAAyB,KACnCA,UACAA,YAFUA,GAAZ,IAAYA,GAGX,GACWC,GAGX,aAHWA,UAAe,KACzBA,YACAA,YAFUA,GAAZ,IAAYA,GAGX,GCPM,MAAMC,GACT,4xCCcE,MAAOC,WAAwBna,GAsBnCp5F,YAAYk1F,EAAsCjL,GAChDhqF,MAAMi1F,EAAejL,GAtBvB9pF,cAAWivF,uBAuBTjvF,KAAKk0F,WAAWa,GAChB/0F,KAAK+3F,4BACP,CAEAmD,mBACE,OAAIl7F,KAAK8pF,UAAU6V,mBACV,CACL3/F,KAAK6tG,aACL7tG,KAAK6xG,SACL7xG,KAAK8xG,SACL9xG,KAAK+5F,WACL/5F,KAAKgnG,iBACLhnG,KAAKu3F,aACLv3F,KAAKs3F,aACLt3F,KAAK66F,YACL76F,KAAKm6F,gBACLn6F,KAAKymG,kBACLzmG,KAAK0mG,eAGF,CACL1mG,KAAK6tG,aACL7tG,KAAK6xG,SACL7xG,KAAK8xG,SACL9xG,KAAK+5F,WACL/5F,KAAKgnG,iBACLhnG,KAAKu3F,aACLv3F,KAAKs3F,aACLt3F,KAAK66F,YACL76F,KAAKm6F,gBACLn6F,KAAKymG,kBACLzmG,KAAK0mG,cACL1mG,KAAKq4F,aACLr4F,KAAKs4F,YACLt4F,KAAKo4F,YACLp4F,KAAKm4F,aACLn4F,KAAKu4F,aACLv4F,KAAKw4F,YACLx4F,KAAKy4F,YACLz4F,KAAK04F,WACL14F,KAAKq5F,oBACLr5F,KAAKo5F,sBACLp5F,KAAKk5F,WACLl5F,KAAKm5F,SAET,CAESjF,WAAWa,GAClBj1F,MAAMo0F,WAAWa,GAEjB/0F,KAAKo0F,gBAAkBW,EAAcX,iBAAmB,GACxDp0F,KAAK+xG,YAAchd,EAAcgd,aAAekB,OAChDjzG,KAAKqzG,aAAete,EAAcse,cAAgBH,QAClDlzG,KAAK6tG,aAAe,IAAItjB,GAAmBwK,EAAc8Y,aAAc7tG,KAAK8pF,UAAW9pF,MACvFA,KAAK6xG,SAAW,IAAItnB,GAAmBwK,EAAc8c,SAAU7xG,KAAK8pF,UAAW9pF,MAC/EA,KAAK8xG,SAAW,IAAIvnB,GAAmBwK,EAAc+c,SAAU9xG,KAAK8pF,UAAW9pF,MAC/EA,KAAK+5F,WAAa,IAAIxP,GAAmBwK,EAAcgF,WAAY/5F,KAAK8pF,UAAW9pF,MACnFA,KAAKgnG,iBAAmB,IAAIzc,GAAmBwK,EAAciS,iBAAkBhnG,KAAK8pF,UAAW9pF,MAC/FA,KAAK66F,YAAc,IAAItQ,GAAmBwK,EAAc8F,aAAe,GAAI76F,KAAK8pF,UAAW9pF,MAC3FA,KAAKm6F,gBAAkB,IAAI5P,GAAmBwK,EAAcoF,iBAAmB,GAAIn6F,KAAK8pF,UAAW9pF,MACnGA,KAAKymG,kBAAoB,IAAIlc,GAAmBwK,EAAc0R,mBAAqB,GAAIzmG,KAAK8pF,UAAW9pF,MACvGA,KAAK0mG,cAAgB,IAAInc,GAAmBwK,EAAc2R,eAAiB,GAAI1mG,KAAK8pF,UAAW9pF,MAC/FA,KAAK8gG,qBAAuB,IAAIvW,GAAmBwK,EAAc+L,qBAAsB9gG,KAAK8pF,UAAW9pF,MACvGA,KAAK6mG,gBAAkB,IAAItc,GAAmBwK,EAAc8R,gBAAiB7mG,KAAK8pF,UAAW9pF,MAE7FA,KAAKg7F,gBAAiBrO,GAAgBoI,EAAciG,iBAA0BjG,EAAciG,eAC5Fh7F,KAAK+6F,kBAAoBpO,GAAgBoI,EAAcgG,mBACnDoY,GACApe,EAAcgG,kBAClB/6F,KAAKi7F,iBACP,CAES7F,gBACPt1F,MAAMs1F,gBACNp1F,KAAK6tG,aAAargB,YAAYgH,YAC9Bx0F,KAAK6xG,SAASrkB,YAAYgH,YAC1Bx0F,KAAK8xG,SAAStkB,YAAYgH,YAC1Bx0F,KAAK+5F,WAAWvM,YAAYgH,YAC5Bx0F,KAAKgnG,iBAAiBxZ,YAAYgH,wBAClCx0F,KAAK66F,YAAYrN,YAAYgH,iBAC7Bx0F,KAAKm6F,gBAAgB3M,YAAYgH,8BACjCx0F,KAAK0mG,cAAclZ,YAAYgH,iBAC/Bx0F,KAAKymG,kBAAkBjZ,YAAYgH,8BACnCx0F,KAAK8gG,qBAAqBtT,YAAYgH,kBACtCx0F,KAAK6mG,gBAAgBrZ,YAAYgH,iBACnC,CAESuD,6BACPj4F,MAAMi4F,6BACN/3F,KAAK8gG,qBAAqB9W,QAAQyK,2BAClCz0F,KAAK6mG,gBAAgB7c,QAAQyK,qBAE7Bz0F,KAAK6tG,aAAa7jB,QAAQyK,kBAC1Bz0F,KAAK6xG,SAAS7nB,QAAQyK,cACtBz0F,KAAK8xG,SAAS9nB,QAAQyK,cACtBz0F,KAAK+5F,WAAW/P,QAAQyK,gBACxBz0F,KAAKgnG,iBAAiBhd,QAAQyK,uBAC9Bz0F,KAAK66F,YAAY7Q,QAAQyK,iBACzBz0F,KAAKm6F,gBAAgBnQ,QAAQyK,sBAC7Bz0F,KAAK0mG,cAAc1c,QAAQyK,mBAC3Bz0F,KAAKymG,kBAAkBzc,QAAQyK,wBAC/Bz0F,KAAKq5F,oBAAoBrP,QAAQyK,2BACjCz0F,KAAKo5F,sBAAsBpP,QAAQyK,6BACnCz0F,KAAKk5F,WAAWlP,QAAQyK,gBACxBz0F,KAAKm5F,SAASnP,QAAQyK,qBACxB,CAESY,mBACPv1F,MAAMu1F,mBAEFr1F,KAAKk5F,WAAWpK,eAClB9uF,KAAKk5F,WAAWzK,gBAAgB,EAAKf,cAAcgK,MAAMqO,WAAWC,KAExE,CAEAnK,6BAEA,CAEAvI,yBACE,OAAOtzF,KAAK4zF,YAAYG,2BAC1B,CAEAgI,qBACE,MAAMC,EAAch8F,KAAK8pF,UAAUmS,4BAA4BtyF,GACtDA,EAAEuyF,wBAA0Bl8F,KAAKkL,IACvC,GACH,OACE8wF,IACCh8F,KAAK4zF,YAAYL,wBAAwB,WAAYyI,EAAYG,mBAAmBjwF,QACnFlM,KAAK4zF,YAAYL,wBAAwB,uBAAwByI,EAAYqF,OAAOn1F,QACpFlM,KAAK4zF,YAAYL,wBAAwB,kBAAmByI,EAAYuL,SAASr7F,OAEvF,CAEA+uF,kBACEj7F,KAAK4zF,YAAc,IAAIF,GACvB1zF,KAAK4zF,YAAYD,cAAc,WAAY3zF,KAAKo3F,UAChDp3F,KAAK4zF,YAAYD,cAAc,cAAe3zF,KAAKq3F,aACnDr3F,KAAK4zF,YAAYD,cAAc,uBAAwB3zF,KAAK8gG,sBAC5D9gG,KAAK4zF,YAAYD,cAAc,kBAAmB3zF,KAAK6mG,gBACzD,CAESvR,eACPx1F,MAAMw1F,eACNt1F,KAAK6tG,aAAa3hG,WAAQ+B,EAC1BjO,KAAK6xG,SAAS3lG,WAAQ+B,EACtBjO,KAAK8xG,SAAS5lG,WAAQ+B,EACtBjO,KAAK+5F,WAAW7tF,WAAQ+B,EACxBjO,KAAKgnG,iBAAiB96F,WAAQ+B,EAC9BjO,KAAK66F,YAAY3uF,WAAQ+B,EACzBjO,KAAK0mG,cAAcx6F,WAAQ+B,EAEvBjO,KAAKg7F,iBACPh7F,KAAKymG,kBAAkBv6F,WAAQ+B,EAC/BjO,KAAKm6F,gBAAgBjuF,WAAQ+B,EAEjC,CAESi+E,UAAUyQ,GACjB78F,MAAMosF,UAAUyQ,GAChB38F,KAAK6tG,aAAe7tG,KAAKorF,0BAA0BuR,EAAIkR,cACvD7tG,KAAK6xG,SAAW7xG,KAAKorF,0BAA0BuR,EAAIkV,UACnD7xG,KAAK8xG,SAAW9xG,KAAKorF,0BAA0BuR,EAAImV,UACnD9xG,KAAK+5F,WAAa/5F,KAAKorF,0BAA0BuR,EAAI5C,YACrD/5F,KAAKgnG,iBAAmBhnG,KAAKorF,0BAA0BuR,EAAIqK,kBAC3DhnG,KAAK66F,YAAc76F,KAAKorF,0BAA0BuR,EAAI9B,aACtD76F,KAAKm6F,gBAAkBn6F,KAAKorF,0BAA0BuR,EAAIxC,iBAC1Dn6F,KAAK0mG,cAAgB1mG,KAAKorF,0BAA0BuR,EAAI+J,eACxD1mG,KAAKymG,kBAAoBzmG,KAAKorF,0BAA0BuR,EAAI8J,mBAC5DzmG,KAAK8gG,qBAAuB9gG,KAAKorF,0BAA0BuR,EAAImE,sBAC/D9gG,KAAK6mG,gBAAkB7mG,KAAKorF,0BAA0BuR,EAAIkK,iBAE1D7mG,KAAKo1F,gBACLp1F,KAAKq1F,mBACLr1F,KAAKi7F,iBACP,CAES7uC,cAAc+9B,GAErB,OADgBrqF,MAAMssD,cAAc+9B,IAClBA,EAAQ4Q,oBAAsB/6F,KAAK+6F,iBACvD,EC/MI,MAAOuY,WAAoB3J,GAc/B9pG,YAAYk1F,EAAkCjL,GAC5ChqF,MAAMi1F,EAAejL,GAdvB9pF,cAAWivF,mBAeTjvF,KAAKk0F,WAAWa,GAChB/0F,KAAK+3F,4BACP,CAES7D,WAAWa,GAClBj1F,MAAMo0F,WAAWa,GACjB/0F,KAAKuqG,kBAAoB,IAAIhgB,GAAmBwK,EAAcwV,kBAAmBvqG,KAAK8pF,UAAW9pF,MACjGA,KAAKorG,eAAiB,IAAI7gB,GAAmBwK,EAAcqW,eAAgBprG,KAAK8pF,UAAW9pF,MAC3FA,KAAKuzG,oBAAsB,IAAIhpB,GAAmBwK,EAAcwe,oBAAqBvzG,KAAK8pF,UAAW9pF,MACrGA,KAAKwzG,MAAQ,IAAIjpB,GAAmBwK,EAAcye,MAAOxzG,KAAK8pF,UAAW9pF,MACzEA,KAAKo5F,sBAAwB,IAAI7O,GAC/BwK,EAAcqE,uBAAyB,GACvCp5F,KAAK8pF,UACL9pF,MAEFA,KAAKq5F,oBAAsB,IAAI9O,GAAmBwK,EAAcsE,qBAAuB,GAAIr5F,KAAK8pF,UAAW9pF,MAC3GA,KAAKs3F,aAAe,IAAI/M,GAAmBwK,EAAcuC,cAAgB,GAAIt3F,KAAK8pF,UAAW9pF,MAE7FA,KAAKyrG,aAAe,IAAIlhB,GAAmBwK,EAAc0W,aAAczrG,KAAK8pF,UAAW9pF,MACvFA,KAAK0rG,oBAAsB,IAAInhB,GAAmBwK,EAAc2W,oBAAqB1rG,KAAK8pF,UAAW9pF,MAErGA,KAAKo1F,gBACLp1F,KAAKi7F,iBACP,CAEAA,kBACEj7F,KAAK4zF,YAAc,IAAIF,GACvB1zF,KAAK4zF,YAAYD,cAAc,eAAgB3zF,KAAKyrG,cACpDzrG,KAAK4zF,YAAYD,cAAc,sBAAuB3zF,KAAK0rG,oBAC7D,CAESpW,eACPx1F,MAAMw1F,eACFt1F,KAAKuqG,kBAAkBxb,uBACzB/uF,KAAKuqG,kBAAkBr+F,WAAQ+B,GAG7BjO,KAAKorG,eAAerc,uBACtB/uF,KAAKorG,eAAel/F,WAAQ+B,GAG1BjO,KAAKwzG,MAAMzkB,uBACb/uF,KAAKwzG,MAAMtnG,WAAQ+B,GAGjBjO,KAAKuzG,oBAAoBxkB,uBAC3B/uF,KAAKuzG,oBAAoBrnG,WAAQ+B,GAG/BjO,KAAKq5F,oBAAoBtK,uBAC3B/uF,KAAKq5F,oBAAoBlM,eAAiBd,aAC1CrsF,KAAKq1F,oBAGHr1F,KAAKo5F,sBAAsBrK,uBAC7B/uF,KAAKo5F,sBAAsBjM,eAAiBd,aAC5CrsF,KAAKq1F,mBAET,CAES0C,6BACPj4F,MAAMi4F,6BACN/3F,KAAKorG,eAAephB,QAAQyK,oBAC5Bz0F,KAAKuqG,kBAAkBvgB,QAAQyK,uBAC/Bz0F,KAAKuzG,oBAAoBvpB,QAAQyK,0BACjCz0F,KAAKwzG,MAAMxpB,QAAQyK,UACnBz0F,KAAKo5F,sBAAsBpP,QAAQyK,6BACnCz0F,KAAKq5F,oBAAoBrP,QAAQyK,2BACjCz0F,KAAKs3F,aAAatN,QAAQyK,kBAE1Bz0F,KAAKyrG,aAAazhB,QAAQyK,0BAC1Bz0F,KAAK0rG,oBAAoB1hB,QAAQyK,yBACnC,CAESW,gBACPt1F,MAAMs1F,gBACNp1F,KAAKorG,eAAe5d,YAAYgH,aAChCx0F,KAAKuqG,kBAAkB/c,YAAYgH,gBACnCx0F,KAAKuzG,oBAAoB/lB,YAAYgH,aACrCx0F,KAAKwzG,MAAMhmB,YAAYgH,UAEvBx0F,KAAKyrG,aAAaje,YAAYgH,iBAC9Bx0F,KAAK0rG,oBAAoBle,YAAYgH,iBAErCx0F,KAAKs3F,aAAa9J,YAAYgH,iBAC9Bx0F,KAAKo5F,sBAAsB5L,YAAYgH,8BACvCx0F,KAAKq5F,oBAAoB7L,YAAYgH,qBACvC,CAESa,mBACHr1F,KAAKyrG,aAAa3c,eACpB9uF,KAAKyrG,aAAahd,gBAAgB,KAAMf,cAAcgK,MAAMC,aAAasS,MAGvEjqG,KAAK0rG,oBAAoB5c,eAC3B9uF,KAAK0rG,oBAAoBjd,gBAAgB,KAAMf,cAAcgK,MAAMC,aAAasS,MAG9EjqG,KAAKo5F,sBAAsBtK,eAC7B9uF,KAAKo5F,sBAAsB3K,gBAAgB,MAAQf,cAAcgK,MAAM+B,uBAAuBC,QAG5F15F,KAAKq5F,oBAAoBvK,eAC3B9uF,KAAKq5F,oBAAoB5K,gBAAgB,OAAQf,cAAcgK,MAAMiC,gBAAgBC,SAGnF55F,KAAKs3F,aAAaxI,eACpB9uF,KAAKs3F,aAAa7I,gBAAgB,EAAKf,cAAcgK,MAAMC,aAAaC,OAE1E93F,MAAMu1F,kBACR,CAEA6F,mBACE,OAAIl7F,KAAK8pF,UAAU6V,mBACV,CAAC3/F,KAAKuzG,oBAAqBvzG,KAAKuqG,kBAAmBvqG,KAAKorG,eAAgBprG,KAAKwzG,MAAOxzG,KAAKs3F,cAE3F,CACLt3F,KAAKuzG,oBACLvzG,KAAKuqG,kBACLvqG,KAAKorG,eACLprG,KAAKwzG,MACLxzG,KAAKo5F,sBACLp5F,KAAKq5F,oBACLr5F,KAAKs3F,aAET,CAEA6D,wCACE,MAAO,CAACn7F,KAAKuqG,kBAAmBvqG,KAAKorG,eAAgBprG,KAAKuzG,oBAC5D,CAEAzX,yBAEA,CAES5P,UAAUyQ,GACjB78F,MAAMosF,UAAUyQ,GAChB38F,KAAKuqG,kBAAoBvqG,KAAKorF,0BAA0BuR,EAAI4N,mBAC5DvqG,KAAKorG,eAAiBprG,KAAKorF,0BAA0BuR,EAAIyO,gBACzDprG,KAAKuzG,oBAAsBvzG,KAAKorF,0BAA0BuR,EAAI4W,qBAC9DvzG,KAAKwzG,MAAQxzG,KAAKorF,0BAA0BuR,EAAI6W,OAChDxzG,KAAKyrG,aAAezrG,KAAKorF,0BAA0BuR,EAAI8O,cACvDzrG,KAAK0rG,oBAAsB1rG,KAAKorF,0BAA0BuR,EAAI+O,qBAC9D1rG,KAAKs3F,aAAet3F,KAAKorF,0BAA0BuR,EAAIrF,cACvDt3F,KAAKo5F,sBAAwBp5F,KAAKorF,0BAA0BuR,EAAIvD,uBAChEp5F,KAAKq5F,oBAAsBr5F,KAAKorF,0BAA0BuR,EAAItD,qBAC9Dr5F,KAAKo1F,gBACLp1F,KAAKq1F,mBACLr1F,KAAKi7F,iBACP,EC1KI,MAAOwY,WAAoBrG,GAS/BvtG,YAAYk1F,EAAkCjL,GAC5ChqF,MAAMi1F,EAAejL,GATvB9pF,cAAWivF,mBAMFjvF,gCAA0D,GAIjEA,KAAKk0F,WAAWa,EAClB,CAESb,WAAWa,GAClBj1F,MAAMo0F,WAAWa,GAEjB/0F,KAAKmrG,wBAA0BpW,EAAcoW,yBAA2BF,UACxEjrG,KAAKorG,eAAiB,IAAI7gB,GAAmBwK,EAAcqW,eAAgBprG,KAAK8pF,UAAW9pF,MAC3FA,KAAKo1F,eACP,CAES2C,6BACPj4F,MAAMi4F,6BACN/3F,KAAKorG,eAAephB,QAAQ,kBAC9B,CAESoL,gBACPt1F,MAAMs1F,gBACNp1F,KAAKorG,eAAe5d,YAAYgH,YAClC,CAEStI,UAAU6I,GACjBj1F,MAAMosF,UAAU6I,GAChB/0F,KAAKorG,eAAiBprG,KAAKorF,0BAA0B2J,EAAcqW,gBACnEprG,KAAKo1F,gBACLp1F,KAAKq1F,kBACP,ECjCI,MAAOqe,WAAsBza,GAQjCp5F,YAAYk1F,EAAoBjL,GAC9BhqF,MAAMi1F,EAAejL,GARvB9pF,cAAWivF,qBASTjvF,KAAKk0F,WAAWa,GAChB/0F,KAAK2zG,qBAAuB,IAAIppB,GAAmBwK,EAAc4e,qBAAsB3zG,KAAK8pF,UAAW9pF,MACvGA,KAAK4zG,mBAAqB,IAAIrpB,GAAmBwK,EAAc6e,mBAAoB5zG,KAAK8pF,UAAW9pF,MACnGA,KAAK+iG,0BAA4B,IAAIxY,GACnCwK,EAAcgO,0BACd/iG,KAAK8pF,UACL9pF,MAEFA,KAAK+3F,4BACP,CAEAmD,mBACE,OAAIl7F,KAAK8pF,UAAU6V,mBACV,CACL3/F,KAAK+iG,0BACL/iG,KAAK4zG,mBACL5zG,KAAK2zG,qBACL3zG,KAAKs3F,aACLt3F,KAAKi3F,UACLj3F,KAAKm3F,YAGF,CACLn3F,KAAK+iG,0BACL/iG,KAAK4zG,mBACL5zG,KAAK2zG,qBACL3zG,KAAKs3F,aACLt3F,KAAKo4F,YACLp4F,KAAKm4F,aACLn4F,KAAKq4F,aACLr4F,KAAKs4F,YACLt4F,KAAKu4F,aACLv4F,KAAKw4F,YACLx4F,KAAKy4F,YACLz4F,KAAK04F,WACL14F,KAAKq5F,oBACLr5F,KAAKo5F,sBACLp5F,KAAKk5F,WACLl5F,KAAKm5F,SACLn5F,KAAKi3F,UACLj3F,KAAKm3F,WAET,CAEAgE,wCACE,MAAO,CAACn7F,KAAKu3F,aAAcv3F,KAAK62F,QAAS72F,KAAK82F,cAAe92F,KAAK+2F,UAAW/2F,KAAK42F,UAAW52F,KAAKk3F,eACpG,CAEA4E,yBAEA,CAEAD,6BAEA,CAES3H,WAAWa,GAClBj1F,MAAMo0F,WAAWa,EACnB,CAESK,gBACPt1F,MAAMs1F,gBACNp1F,KAAK2zG,qBAAqBnmB,YAAYgH,2BACtCx0F,KAAK4zG,mBAAmBpmB,YAAYgH,iBACpCx0F,KAAK+iG,0BAA0BvV,YAAYgH,gBAC7C,CAEStI,UAAUyQ,GACjB78F,MAAMosF,UAAUyQ,GAChB38F,KAAK2zG,qBAAuB3zG,KAAKorF,0BAA0BuR,EAAIgX,sBAC/D3zG,KAAK4zG,mBAAqB5zG,KAAKorF,0BAA0BuR,EAAIiX,oBAC7D5zG,KAAK+iG,0BAA4B/iG,KAAKorF,0BAA0BuR,EAAIoG,2BACpE/iG,KAAKo1F,gBACLp1F,KAAKq1F,kBACP,CAESA,mBACHr1F,KAAK2zG,qBAAqB7kB,eAC5B9uF,KAAK2zG,qBAAqBllB,gBAAgB,GAExCzuF,KAAKk5F,WAAWpK,eAClB9uF,KAAKk5F,WAAWzK,gBAAgB,EAAKf,cAAcgK,MAAMqO,WAAWC,MAGtElmG,MAAMu1F,kBACR,CAEA/B,yBACE,OAAOtzF,KAAK4zF,YAAYG,2BAC1B,CAESgE,6BACPj4F,MAAMi4F,6BACN/3F,KAAK+iG,0BAA0B/Y,QAAQyK,gCACvCz0F,KAAK4zG,mBAAmB5pB,QAAQyK,wBAChCz0F,KAAK2zG,qBAAqB3pB,QAAQyK,0BAClCz0F,KAAKq5F,oBAAoBrP,QAAQyK,2BACjCz0F,KAAKo5F,sBAAsBpP,QAAQyK,6BACnCz0F,KAAKk5F,WAAWlP,QAAQyK,gBACxBz0F,KAAKm5F,SAASnP,QAAQyK,qBACxB,EC9GI,MAAOof,WAAoB5a,GAQ/Bp5F,YAAYk1F,EAAoBjL,GAC9BhqF,MAAMi1F,EAAejL,GARvB9pF,cAAWivF,mBASTjvF,KAAKk0F,WAAWa,GAChB/0F,KAAK8zG,mBAAqB,IAAIvpB,GAAmBwK,EAAc+e,mBAAoB9zG,KAAK8pF,UAAW9pF,MACnGA,KAAK+zG,eAAiB,IAAIxpB,GAAmBwK,EAAcgf,eAAgB/zG,KAAK8pF,UAAW9pF,MAC3FA,KAAKkjG,eAAiB,IAAI3Y,GAAmBwK,EAAcmO,eAAgBljG,KAAK8pF,UAAW9pF,MAC3FA,KAAK+3F,4BACP,CAEAmD,mBACE,OAAIl7F,KAAK8pF,UAAU6V,mBACV,CACL3/F,KAAKkjG,eACLljG,KAAK+zG,eACL/zG,KAAK8zG,mBACL9zG,KAAKs3F,aACLt3F,KAAKi3F,UACLj3F,KAAKm3F,YAGF,CACLn3F,KAAKkjG,eACLljG,KAAK+zG,eACL/zG,KAAK8zG,mBACL9zG,KAAKs3F,aACLt3F,KAAKo4F,YACLp4F,KAAKm4F,aACLn4F,KAAKq4F,aACLr4F,KAAKs4F,YACLt4F,KAAKu4F,aACLv4F,KAAKw4F,YACLx4F,KAAKy4F,YACLz4F,KAAK04F,WACL14F,KAAKq5F,oBACLr5F,KAAKo5F,sBACLp5F,KAAKk5F,WACLl5F,KAAKm5F,SACLn5F,KAAKi3F,UACLj3F,KAAKm3F,WAET,CAEAgE,wCACE,MAAO,CAACn7F,KAAKu3F,aAAcv3F,KAAK62F,QAAS72F,KAAK82F,cAAe92F,KAAK+2F,UAAW/2F,KAAK42F,UAAW52F,KAAKk3F,eACpG,CAEA4E,yBAEA,CAESxG,eACPx1F,MAAMw1F,eACNt1F,KAAK+zG,eAAe7nG,WAAQ+B,CAC9B,CAEA4tF,6BAEA,CAES3H,WAAWa,GAClBj1F,MAAMo0F,WAAWa,EACnB,CAESM,mBACHr1F,KAAK8zG,mBAAmBhlB,eAC1B9uF,KAAK8zG,mBAAmBrlB,gBAAgB,GAEtCzuF,KAAKk5F,WAAWpK,eAClB9uF,KAAKk5F,WAAWzK,gBAAgB,EAAKf,cAAcgK,MAAMqO,WAAWC,MAGtElmG,MAAMu1F,kBACR,CAESD,gBACPt1F,MAAMs1F,gBACNp1F,KAAK8zG,mBAAmBtmB,YAAYgH,2BACpCx0F,KAAK+zG,eAAevmB,YAAYgH,iBAChCx0F,KAAKkjG,eAAe1V,YAAYgH,gBAClC,CAEStI,UAAUyQ,GACjB78F,MAAMosF,UAAUyQ,GAChB38F,KAAK8zG,mBAAqB9zG,KAAKorF,0BAA0BuR,EAAImX,oBAC7D9zG,KAAK+zG,eAAiB/zG,KAAKorF,0BAA0BuR,EAAIoX,gBACzD/zG,KAAKkjG,eAAiBljG,KAAKorF,0BAA0BuR,EAAIuG,gBACzDljG,KAAKo1F,gBACLp1F,KAAKq1F,kBACP,CAEA/B,yBACE,OAAOtzF,KAAK4zF,YAAYG,2BAC1B,CAESgE,6BACPj4F,MAAMi4F,6BACN/3F,KAAKkjG,eAAelZ,QAAQyK,oBAC5Bz0F,KAAK+zG,eAAe/pB,QAAQyK,oBAC5Bz0F,KAAK8zG,mBAAmB9pB,QAAQyK,0BAChCz0F,KAAKq5F,oBAAoBrP,QAAQyK,2BACjCz0F,KAAKo5F,sBAAsBpP,QAAQyK,6BACnCz0F,KAAKk5F,WAAWlP,QAAQyK,gBACxBz0F,KAAKm5F,SAASnP,QAAQyK,qBACxB,ECvHI,MAAOuf,WAAoClf,GAI/Cj1F,YAAYk1F,EAAkDjL,GAC5DhqF,MAAMi1F,EAAejL,GAJvB9pF,cAAWivF,mCAKTjvF,KAAKk0F,WAAWa,EAClB,CAESb,WAAWa,GAClB/0F,KAAK6sG,SAAW9X,EAAc8X,QAChC,CAESvX,eACPx1F,MAAMw1F,eACNt1F,KAAK6sG,UAAW,CAClB,CAES9U,6BAA8B,CAE1BzB,uBACX,OAAO,CACT,ECxBI,MAAgB2d,UAA6Bnf,GAExCZ,WAAWa,GAAqB,CAEhCM,mBAAoB,CAEpBD,gBAAiB,ECEtB,MAAO8e,UAAqBD,EAMhCp0G,YAAYk1F,EAAmCjL,GAC7ChqF,MAAMi1F,EAAejL,GANvB9pF,cAAWivF,oBAOTjvF,KAAKk0F,WAAWa,EAClB,CAESb,WAAWa,GAClBj1F,MAAMo0F,WAAWa,GACjB/0F,KAAKm5F,SAAW,IAAI5O,GAAmBwK,EAAcoE,UAAY,GAAIn5F,KAAK8pF,UAAW9pF,MACrFA,KAAKo5F,sBAAwB,IAAI7O,GAC/BwK,EAAcqE,uBAAyB,GACvCp5F,KAAK8pF,UACL9pF,MAEFA,KAAKs3F,aAAe,IAAI/M,GAAmBwK,EAAcuC,cAAgB,GAAIt3F,KAAK8pF,UAAW9pF,MAC7FA,KAAKo1F,eACP,CAES2C,6BACP/3F,KAAKm5F,SAASnP,QAAQyK,aACtBz0F,KAAKo5F,sBAAsBpP,QAAQyK,6BACnCz0F,KAAKs3F,aAAatN,QAAQyK,iBAC5B,CAESY,mBACHr1F,KAAKo5F,sBAAsBtK,eAC7B9uF,KAAKo5F,sBAAsB3K,gBAAgB,MAAQf,cAAcgK,MAAM+B,uBAAuBwG,OAE5FjgG,KAAKs3F,aAAaxI,eACpB9uF,KAAKs3F,aAAa7I,gBAAgB,KAAMf,cAAcgK,MAAMC,aAAaC,MAE7E,CAESxC,gBACPt1F,MAAMs1F,gBACNp1F,KAAKm5F,SAAS3L,YAAYgH,kBAC1Bx0F,KAAKs3F,aAAa9J,YAAYgH,iBAC9Bx0F,KAAKo5F,sBAAsB5L,YAAYgH,6BACzC,CAEA0G,mBACE,OAAIl7F,KAAK8pF,UAAU6V,mBACV,CAAC3/F,KAAKs3F,cAER,CAACt3F,KAAKm5F,SAAUn5F,KAAKo5F,sBAAuBp5F,KAAKs3F,aAC1D,CAESpL,UAAUyQ,GACjB78F,MAAMosF,UAAUyQ,GAChB38F,KAAKm5F,SAAWn5F,KAAKorF,0BAA0BuR,EAAIxD,UACnDn5F,KAAKo5F,sBAAwBp5F,KAAKorF,0BAA0BuR,EAAIvD,uBAChEp5F,KAAKs3F,aAAet3F,KAAKorF,0BAA0BuR,EAAIrF,cACvDt3F,KAAKo1F,eACP,EC5DI,MAAO+e,UAAoBF,EAI/Bp0G,YAAYk1F,EAAkCjL,GAC5ChqF,MAAMi1F,EAAejL,GAJvB9pF,cAAWivF,mBAKTjvF,KAAKk0F,WAAWa,EAClB,CAESb,WAAWa,GAClBj1F,MAAMo0F,WAAWa,GACjB/0F,KAAKm5F,SAAW,IAAI5O,GAAmBwK,EAAcoE,UAAY,GAAIn5F,KAAK8pF,UAAW9pF,MACrFA,KAAKo1F,eACP,CAESA,gBACPt1F,MAAMs1F,gBACNp1F,KAAKm5F,SAAS3L,YAAYgH,iBAC5B,CAESuD,6BACP/3F,KAAKm5F,SAASnP,QAAQyK,YACxB,CAEAyG,mBACE,OAAKl7F,KAAK8pF,UAAU6V,mBAGb,GAFE,CAAC3/F,KAAKm5F,SAGjB,CAESjN,UAAUyQ,GACjB78F,MAAMosF,UAAUyQ,GAChB38F,KAAKm5F,SAAWn5F,KAAKorF,0BAA0BuR,EAAIxD,UACnDn5F,KAAKo1F,eACP,ECtCI,MAAOgf,UAAqBvqB,GAKhChqF,YAAYw0G,EAAkCvqB,GAC5ChqF,MAAMu0G,EAAanpG,GAAI4+E,GALzB9pF,cAAW,eAMTA,KAAKk0F,WAAWmgB,GAChBr0G,KAAKo1F,eACP,CAEQlB,WAAWmgB,GACjBr0G,KAAKmyG,wBAA0BkC,EAAalC,wBAC5CnyG,KAAKk5F,WAAa,IAAI3O,GAAmB8pB,EAAanb,WAAYl5F,KAAK8pF,UAAW9pF,KACpF,CAEAo1F,gBACEp1F,KAAKk5F,WAAW1L,YAAYgH,SAC9B,CAEA5G,cACE,MAAO,GAAG5tF,KAAK8pF,UAAUyV,iBAAiBv/F,KAAKmyG,yBAAyB/uG,2BAC1E,CAES8oF,UAAUC,GACjBrsF,MAAMosF,UAAUC,GAChBnsF,KAAKk5F,WAAal5F,KAAKorF,0BAA0Be,EAAa+M,YAC9Dl5F,KAAK4qF,8BACL5qF,KAAKo1F,eACP,CAEArJ,SACE,MAAO,CACL7gF,GAAIlL,KAAKkL,GACT9H,KAAMpD,KAAKoD,KACXmoF,SAAUvrF,KAAKurF,SACf4mB,wBAAyBnyG,KAAKmyG,wBAC9BjZ,WAAYl5F,KAAKk5F,WAAWhuF,GAEhC,EChCI,MAAOopG,UAA0BL,EAMrCp0G,YAAYk1F,EAAwCjL,GAClDhqF,MAAMi1F,EAAejL,GANvB9pF,cAAWivF,yBAOTjvF,KAAKk0F,WAAWa,GAChB/0F,KAAK+3F,4BACP,CAES7D,WAAWa,GAClBj1F,MAAMo0F,WAAWa,GACjB/0F,KAAKu0G,cAAgB,IAEhB5nB,GAAgBoI,EAAcwf,gBAAkBxf,EAAcwf,yBAAyBz6F,QAErEi7E,EAAcwf,cAAc9vG,OAASswF,EAAcwf,cAAc,QAAKtmG,aAI/DmmG,IAC1Bp0G,KAAKu0G,cAAgBxf,EAAcwf,eAIvCv0G,KAAKw0G,SAAW,IAAIjqB,GAAmBwK,EAAcyf,SAAUx0G,KAAK8pF,UAAW9pF,MAC/EA,KAAKi7F,iBACP,CAEAA,kBACEj7F,KAAK4zF,YAAc,IAAIF,GACvB1zF,KAAK4zF,YAAYD,cAAc,eAAgB3zF,KAAKw0G,SACtD,CAESzc,6BACP/3F,KAAKw0G,SAASxqB,QAAQyK,iBACxB,CAESW,gBACPp1F,KAAKw0G,SAAShnB,YAAYgH,cAC5B,CAEAigB,gBAAgBJ,GAId,KAHcr0G,KAAKu0G,cAAc/X,UAC/BkY,GAAMA,EAAGvC,0BAA4BkC,EAAalC,0BAExC,GAIZ,KAAKkC,EAAalC,wBAChB,MAAM,IAAI1rG,MAAM,2DAGlBzG,KAAKu0G,cAAc3rG,KAAKyrG,GACxBr0G,KAAK8pF,UAAUwB,WAAW+oB,GAC1BA,EAAa7oB,kBAAgB,CAC/B,CAEAmpB,mBAAmBxC,GACjB,MAAM9gG,EAAQrR,KAAKu0G,cAAc/X,UAAUh4F,GAAKA,EAAE2tG,0BAA4BA,GAC9E,IAAc,IAAV9gG,EACF,OAGF,MAAMgjG,EAAer0G,KAAKu0G,cAAcpjG,OAAOE,EAAO,GAAG,GACzDrR,KAAK8pF,UAAU2S,gBAAgB4X,EACjC,CAESppB,+BACP,MAAMqmB,EAAOxxG,MAAMmrF,+BACnBqmB,SAAK1oG,QAAQ5I,KAAKu0G,eACXjD,CACT,CAEmBtlB,sBAAsBpJ,GACvC,OAAO9iF,MAAMksF,sBAAsBpJ,IAAaA,IAAa5iF,KAAKu0G,aACpE,CAEArZ,mBACE,OAAKl7F,KAAK8pF,UAAU6V,mBAGb,GAFE,CAAC3/F,KAAKw0G,SAGjB,CAEAI,uBAAuBzoB,GAEhBA,EAAaooB,eAIlBpoB,EAAaooB,cAAc5uG,QAAQ6rG,IACjCxxG,KAAKu0G,cAAc3rG,KAAK5I,KAAK8pF,UAAU2nB,mBAAmBD,GAAqB,EAEnF,CAEStlB,UAAUyQ,GACjB78F,MAAMosF,UAAUyQ,GAEhB38F,KAAKw0G,SAAWx0G,KAAKorF,0BAA0BuR,EAAI6X,UACnDx0G,KAAKo1F,gBACLp1F,KAAKi7F,iBACP,CAESlP,SACP,MAAMD,EAAchsF,MAAMisF,SAC1BD,SAAYyoB,cAAgBv0G,KAAKu0G,cAAchtG,IAAI/C,GAAKA,EAAE0G,IAEnD4gF,CACT,ECvHI,MAAO+oB,UAAuChrB,GAKlDhqF,YAAYgxG,EAAyD/mB,GACnEhqF,MAAM+wG,EAAkB3lG,GAAI4+E,GAL9B9pF,cAAW,iCAMTA,KAAKk0F,WAAW2c,GAChB7wG,KAAKo1F,eACP,CAEQlB,WAAW2c,GACjB7wG,KAAKmyG,wBAA0BtB,EAAkBsB,wBACjDnyG,KAAKm5F,SAAW,IAAI5O,GAAmBsmB,EAAkB1X,SAAUn5F,KAAK8pF,UAAW9pF,KACrF,CAEAo1F,gBACEp1F,KAAKm5F,SAAS3L,YAAYgH,iBAC5B,CAEA5G,cACE,MAAO,GAAG5tF,KAAK8pF,UAAUyV,iBAAiBv/F,KAAKmyG,yBAAyB/uG,MAC1E,CAES8oF,UAAUC,GACjBrsF,MAAMosF,UAAUC,GAChBnsF,KAAKm5F,SAAWn5F,KAAKorF,0BAA0Be,EAAagN,UAC5Dn5F,KAAK4qF,8BACL5qF,KAAKo1F,eACP,CAEArJ,SACE,MAAO,CACL7gF,GAAIlL,KAAKkL,GACT9H,KAAMpD,KAAKoD,KACXmoF,SAAUvrF,KAAKurF,SACf4mB,wBAAyBnyG,KAAKmyG,wBAC9BhZ,SAAUn5F,KAAKm5F,SAASjuF,GAE5B,EClCI,MAAO4pG,UAA4Bb,EAIvCp0G,YAAYk1F,EAA0CjL,GACpDhqF,MAAMi1F,EAAejL,GAJvB9pF,cAAWivF,2BAMTjvF,KAAKk0F,WAAWa,GAChB/0F,KAAK+3F,4BACP,CAES7D,WAAWa,GAClBj1F,MAAMo0F,WAAWa,GAEjB/0F,KAAKqyG,8BAAgC,IAGlC1lB,GAAgBoI,EAAcsd,gCAC/Btd,EAAcsd,yCAAyCv4F,QAG7Bi7E,EAAcsd,8BAA8B5tG,OAClEswF,EAAcsd,8BAA8B,QAC5CpkG,aAI6B4mG,IAC/B70G,KAAKqyG,8BAAgCtd,EAAcsd,8BAGzD,CAESjd,gBAAiB,CAEjB2C,6BAA8B,CAEvCua,qBAAqBzB,GAKnB,KAJc7wG,KAAKqyG,8BAA8B7V,UAC/CrT,GAAMA,EAAGgpB,0BAA4BtB,EAAkBsB,0BAG7C,GAIZ,KAAKtB,EAAkBsB,wBACrB,MAAM,IAAI1rG,MAAM,gEAGlBzG,KAAKqyG,8BAA8BzpG,KAAKioG,GACxC7wG,KAAK8pF,UAAUwB,WAAWulB,GAC1BA,EAAkBrlB,kBAAgB,CACpC,CAEA+mB,wBAAwBJ,GACtB,MAAM9gG,EAAQrR,KAAKqyG,8BAA8B7V,UAC/Ch4F,GAAKA,EAAE2tG,0BAA4BA,GAErC,IAAc,IAAV9gG,EACF,OAGF,MAAMw/F,EAAoB7wG,KAAKqyG,8BAA8BlhG,OAAOE,EAAO,GAAG,GAC9ErR,KAAK8pF,UAAU2S,gBAAgBoU,EACjC,CAES5lB,+BACP,MAAMqmB,EAAOxxG,MAAMmrF,+BACnBqmB,SAAK1oG,QAAQ5I,KAAKqyG,+BACXf,CACT,CAEmBtlB,sBAAsBpJ,GACvC,OAAO9iF,MAAMksF,sBAAsBpJ,IAAaA,IAAa5iF,KAAKqyG,6BACpE,CAEAK,gCACE,OAAO1yG,KAAK8pF,UAAU6oB,iCAAiC3yG,KAAKkL,GAC9D,CAEAgwF,mBACE,OAAKl7F,KAAK8pF,UAAU6V,mBAGb,GAFE,CAAC3/F,KAAK0yG,gCAAgC,GAAGvZ,SAGpD,CAESjN,UAAUC,GACjBrsF,MAAMosF,UAAUC,GAChBnsF,KAAKo1F,eACP,CAEAwd,4BAA4BzmB,GAC1BA,EAAakmB,8BAA8B1sG,QAAQ6rG,IACjDxxG,KAAKqyG,8BAA8BzpG,KACjC5I,KAAK8pF,UAAU2nB,mBAAmBD,GAAuC,EAG/E,CAESzlB,SACP,MAAMD,EAAchsF,MAAMisF,SAC1BD,SAAYumB,8BAAgCryG,KAAKqyG,8BAA8B9qG,IAAI/C,GAAKA,EAAE0G,IAEnF4gF,CACT,EChHI,MAAOipB,UAAqBd,EAIhCp0G,YAAYk1F,EAAmCjL,GAC7ChqF,MAAMi1F,EAAejL,GAJvB9pF,cAAWivF,mBAKX,CAGSiF,WAAWa,GAAqB,CAEhCgD,6BAA8B,CAE9B3C,gBAAiB,ECPtB,MAAO4f,UAAsBf,EAMjCp0G,YAAYk1F,EAAoCjL,GAC9ChqF,MAAMi1F,EAAejL,GANvB9pF,cAAWivF,qBAOTjvF,KAAKk0F,WAAWa,GAChB/0F,KAAK+3F,4BACP,CAES7D,WAAWa,GAClB/0F,KAAKm5F,SAAW,IAAI5O,GAAmBwK,EAAcoE,SAAUn5F,KAAK8pF,UAAW9pF,MAC/EA,KAAKo0F,gBAAkBW,EAAcX,iBAAmB,GAGtDp0F,KAAK68F,uBADI9H,EAAc8H,cAAkB,MAGlB9H,EAAc8H,eAEvC78F,KAAKo1F,eACP,CAESE,eACPx1F,MAAMw1F,eAEFt1F,KAAK68F,gBACP78F,KAAKm5F,SAASjtF,MAAQ,KAE1B,CAESu/E,gBAAgBtB,GACvBrqF,MAAM2rF,gBAAgBtB,GACtB,MAAM8qB,EAAM9qB,EACZnqF,KAAK68F,cAAgBoY,EAAIpY,cACzB78F,KAAKo0F,gBAAkB6gB,EAAI7gB,eAC7B,CAES2D,6BACP/3F,KAAKm5F,SAASnP,QAAQyK,YACxB,CAESW,gBACPp1F,KAAKm5F,SAAS3L,YAAYgH,iBAC5B,CAEA0G,mBACE,MAAO,CAACl7F,KAAKm5F,SACf,CAEAgC,wCACE,MAAO,CAACn7F,KAAKm5F,SACf,CAEA2C,yBAEA,CAES5P,UAAUC,GACjBrsF,MAAMosF,UAAUC,GAChBnsF,KAAKm5F,SAAWn5F,KAAKorF,0BAA0Be,EAAagN,UAC5Dn5F,KAAK68F,cAAgB1Q,EAAa0Q,cAElC78F,KAAKo1F,gBACLp1F,KAAKq1F,kBACP,ECvEI,MAAgB6f,UAA4BjB,EAAlDp0G,kCAIEG,gCAA0D,EAyD5D,CAvDWk0F,WAAWa,GAIlB,GAHAj1F,MAAMo0F,WAAWa,GAEjB/0F,KAAK68F,eAAgBlQ,GAAgBoI,EAAc8H,gBAAyB9H,EAAc8H,cACtF9H,EAAc2M,sCAAsC5nF,MACtD,UAAW4jF,KAAM3I,EAAc2M,2BAC7B1hG,KAAK0hG,2BAA2B94F,KAAK,IAAI40F,GAA0BE,EAAGvJ,gBAAiBuJ,EAAGxxF,OAGhG,CAEA+5F,wBAAwB9R,GACtBn0F,KAAKkmG,0BACLlmG,KAAK0hG,2BAA2B94F,KAAK,IAAI40F,GAA0BrJ,EAAiB,MACtF,CAEQ+R,0BACN,UAAWxI,KAAM19F,KAAK0hG,2BACpBhE,EAAGxxF,MAAQ,IAEf,CAEA61F,8BAA8B5N,GAC5B,OAAOn0F,KAAK0hG,2BAA2B9hE,KAAKs/D,GACnCA,EAAI/K,kBAAoBA,EAEnC,CAEA6N,kCAAkCx9F,GAChC,MAAMk5F,EAAK19F,KAAK0hG,2BAA2Bl9F,GAE3C,GAAIk5F,EAAI,CACN,MAAM7E,EAAK74F,KAAK8pF,UAAUyV,iBAAiB7B,EAAGvJ,iBAExCghB,EAAUn1G,KAAK8pF,UAAUwjB,yBAA0B8H,GAChDA,EAAGlZ,wBAA0BrD,GAAI3tF,IAG1C,OAAOiqG,EAAQ1wG,OAAS0wG,EAAQ,GAAG3H,oBAAoBpqG,UAAO6K,EAIlE,CAEAw/F,mCAAmCtZ,GACjC,OAAOn0F,KAAK0hG,2BAA2BxwF,QAAQlR,KAAK+hG,8BAA8B5N,GACpF,CAEAgS,gCAAgChS,GAC9B,MAAM9iF,EAAQrR,KAAKytG,mCAAmCtZ,GAElD9iF,GAAS,GACXrR,KAAK0hG,2BAA2BvwF,OAAOE,EAAO,EAElD,EC5DI,MAAOgkG,UAAwBH,EAGnCr1G,YAAYk1F,EAAoBjL,GAC9BhqF,MAAMi1F,EAAejL,GAHvB9pF,cAAWivF,uBAITjvF,KAAKk0F,WAAWa,EAClB,CAESb,WAAWa,GAClBj1F,MAAMo0F,WAAWa,GACjB/0F,KAAKo1F,eACP,CAESE,eACPx1F,MAAMw1F,cACR,CAES7J,gBAAgBtB,GACvB,MAAM8qB,EAAM9qB,EACZnqF,KAAK68F,cAAgBoY,EAAIpY,cAEzB78F,KAAKoD,KAAO+mF,EAAQ/mF,KACpB,QAASoB,EAAI,EAAGA,EAAIywG,EAAIvT,2BAA2Bj9F,OAAQD,IACzDxE,KAAK0hG,2BAA2Bl9F,GAAG0H,MAAQ+oG,EAAIvT,2BAA2Bl9F,GAAG0H,KAEjF,CAEA6wF,eAAeF,GACb78F,KAAK68F,cAAgBA,CACvB,CAES9E,6BAA8B,EC3BnC,MAAOud,UAA8BrB,EAIzCp0G,YAAYk1F,EAA4CjL,GACtDhqF,MAAMi1F,EAAejL,GAJvB9pF,cAAWivF,6BAKTjvF,KAAKk0F,WAAWa,EAClB,CAESb,WAAWa,GAClBj1F,MAAMo0F,WAAWa,GACjB/0F,KAAKu1G,mBAAqB,IAAIhrB,GAAmBwK,EAAcwgB,oBAAsB,GAAIv1G,KAAK8pF,UAAW9pF,MACzGA,KAAKo1F,eACP,CAES2C,6BACP/3F,KAAKu1G,mBAAmBvrB,QAAQyK,eAClC,CAESW,gBACPt1F,MAAMs1F,gBACNp1F,KAAKu1G,mBAAmB/nB,YAAYgH,WACtC,CAEA0G,mBACE,MAAO,CAACl7F,KAAKu1G,mBACf,CAEApa,wCACE,MAAO,CAACn7F,KAAKu1G,mBACf,CAEAzZ,yBAEA,CAES5P,UAAUyQ,GACjB78F,MAAMosF,UAAUyQ,GAChB38F,KAAKu1G,mBAAqBv1G,KAAKorF,0BAA0BuR,EAAI4Y,oBAC7Dv1G,KAAKo1F,eACP,ECpCI,MAAOogB,WAA0B7L,GAqBrC9pG,YAAYk1F,EAAwCjL,GAClDhqF,MAAMi1F,EAAejL,GArBvB9pF,cAAWivF,yBAsBTjvF,KAAKk0F,WAAWa,GAChB/0F,KAAK+3F,4BACP,CAES7D,WAAWa,GAClBj1F,MAAMo0F,WAAWa,GACjB/0F,KAAKy1G,SAAW,IAAIlrB,GAAmBwK,EAAc0gB,SAAUz1G,KAAK8pF,UAAW9pF,MAC/EA,KAAKwzG,MAAQ,IAAIjpB,GAAmBwK,EAAcye,MAAOxzG,KAAK8pF,UAAW9pF,MACzEA,KAAK01G,QAAU,IAAInrB,GAAmBwK,EAAc2gB,QAAS11G,KAAK8pF,UAAW9pF,MAE7EA,KAAKo5F,sBAAwB,IAAI7O,GAC/BwK,EAAcqE,uBAAyB,GACvCp5F,KAAK8pF,UACL9pF,MAEFA,KAAKq5F,oBAAsB,IAAI9O,GAAmBwK,EAAcsE,qBAAuB,GAAIr5F,KAAK8pF,UAAW9pF,MAC3GA,KAAKs3F,aAAe,IAAI/M,GAAmBwK,EAAcuC,cAAgB,GAAIt3F,KAAK8pF,UAAW9pF,MAE7FA,KAAK21G,iBAAmB,IAAIprB,GAAmBwK,EAAc4gB,kBAAoB,GAAI31G,KAAK8pF,UAAW9pF,MACrGA,KAAK41G,oBAAsB,IAAIrrB,GAAmBwK,EAAc6gB,qBAAuB,GAAI51G,KAAK8pF,UAAW9pF,MAC3GA,KAAK61G,kBAAoB,IAAItrB,GAAmBwK,EAAc8gB,mBAAqB,GAAI71G,KAAK8pF,UAAW9pF,MAEvGA,KAAKg7F,iBAAmBjG,EAAciG,eACtCh7F,KAAK81G,WAAa/gB,EAAc+gB,YAAc,GAE9C91G,KAAKyrG,aAAe,IAAIlhB,GAAmBwK,EAAc0W,aAAczrG,KAAK8pF,UAAW9pF,MACvFA,KAAK0rG,oBAAsB,IAAInhB,GAAmBwK,EAAc2W,oBAAqB1rG,KAAK8pF,UAAW9pF,MAErGA,KAAKi7F,iBACP,CAESlD,6BACPj4F,MAAMi4F,6BACN/3F,KAAKy1G,SAASzrB,QAAQyK,cACtBz0F,KAAKwzG,MAAMxpB,QAAQyK,UACnBz0F,KAAK01G,QAAQ1rB,QAAQyK,YACrBz0F,KAAK21G,iBAAiB3rB,QAAQyK,uBAC9Bz0F,KAAK41G,oBAAoB5rB,QAAQyK,0BACjCz0F,KAAK61G,kBAAkB7rB,QAAQyK,wBAC/Bz0F,KAAKo5F,sBAAsBpP,QAAQyK,6BACnCz0F,KAAKq5F,oBAAoBrP,QAAQyK,2BACjCz0F,KAAKs3F,aAAatN,QAAQyK,kBAC1Bz0F,KAAKyrG,aAAazhB,QAAQyK,0BAC1Bz0F,KAAK0rG,oBAAoB1hB,QAAQyK,yBACnC,CAEAwG,kBACEj7F,KAAK4zF,YAAc,IAAIF,GACvB1zF,KAAK4zF,YAAYD,cAAc,eAAgB3zF,KAAKyrG,cACpDzrG,KAAK4zF,YAAYD,cAAc,sBAAuB3zF,KAAK0rG,oBAC7D,CAEStW,gBACPt1F,MAAMs1F,gBACNp1F,KAAKy1G,SAASjoB,YAAYgH,qBAC1Bx0F,KAAKwzG,MAAMhmB,YAAYgH,UACvBx0F,KAAK01G,QAAQloB,YAAYgH,aAEzBx0F,KAAKs3F,aAAa9J,YAAYgH,iBAC9Bx0F,KAAKo5F,sBAAsB5L,YAAYgH,8BACvCx0F,KAAKq5F,oBAAoB7L,YAAYgH,sBAErCx0F,KAAK21G,iBAAiBnoB,YAAYgH,eAClCx0F,KAAK41G,oBAAoBpoB,YAAYgH,eACrCx0F,KAAK61G,kBAAkBroB,YAAYgH,eAEnCx0F,KAAKyrG,aAAaje,YAAYgH,iBAC9Bx0F,KAAK0rG,oBAAoBle,YAAYgH,gBACvC,CAESa,mBACHr1F,KAAKo5F,sBAAsBtK,eAC7B9uF,KAAKo5F,sBAAsB3K,gBAAgB,MAAQf,cAAcgK,MAAM+B,uBAAuBC,QAE5F15F,KAAKq5F,oBAAoBvK,eAC3B9uF,KAAKq5F,oBAAoB5K,gBAAgB,OAAQf,cAAcgK,MAAMiC,gBAAgBC,SAEnF55F,KAAKy1G,SAAS3mB,eAChB9uF,KAAKy1G,SAAShnB,gBAAgB,MAAOf,cAAcgK,MAAMqe,eAAeC,QAEtEh2G,KAAKs3F,aAAaxI,eACpB9uF,KAAKs3F,aAAa7I,gBAAgB,EAAKf,cAAcgK,MAAMC,aAAaC,OAE1E93F,MAAMu1F,kBACR,CAESC,eACPx1F,MAAMw1F,eAEFt1F,KAAKq5F,oBAAoBtK,uBAC3B/uF,KAAKq5F,oBAAoBlM,eAAiBd,aAC1CrsF,KAAKq1F,oBAGHr1F,KAAKo5F,sBAAsBrK,uBAC7B/uF,KAAKo5F,sBAAsBjM,eAAiBd,aAC5CrsF,KAAKq1F,mBAET,CAEA6F,mBACE,OAAIl7F,KAAK8pF,UAAU6V,mBACV,CAAC3/F,KAAKy1G,SAAUz1G,KAAKwzG,MAAOxzG,KAAK01G,QAAS11G,KAAK61G,kBAAmB71G,KAAKs3F,cAEzE,CACLt3F,KAAKy1G,SACLz1G,KAAKwzG,MACLxzG,KAAK01G,QACL11G,KAAK21G,iBACL31G,KAAK41G,oBACL51G,KAAK61G,kBACL71G,KAAKo5F,sBACLp5F,KAAKq5F,oBACLr5F,KAAKs3F,aAET,CAEA6D,wCACE,MAAO,CAACn7F,KAAKy1G,SAAUz1G,KAAKwzG,MAAOxzG,KAAK01G,QAC1C,CAEA5Z,yBAEA,CAES5P,UAAUyQ,GACjB78F,MAAMosF,UAAUyQ,GAChB38F,KAAKy1G,SAAWz1G,KAAKorF,0BAA0BuR,EAAI8Y,UACnDz1G,KAAKwzG,MAAQxzG,KAAKorF,0BAA0BuR,EAAI6W,OAChDxzG,KAAK01G,QAAU11G,KAAKorF,0BAA0BuR,EAAI+Y,SAClD11G,KAAKs3F,aAAet3F,KAAKorF,0BAA0BuR,EAAIrF,cACvDt3F,KAAKo5F,sBAAwBp5F,KAAKorF,0BAA0BuR,EAAIvD,uBAChEp5F,KAAKq5F,oBAAsBr5F,KAAKorF,0BAA0BuR,EAAItD,qBAC9Dr5F,KAAK21G,iBAAmB31G,KAAKorF,0BAA0BuR,EAAIgZ,kBAC3D31G,KAAK41G,oBAAsB51G,KAAKorF,0BAA0BuR,EAAIiZ,qBAC9D51G,KAAK61G,kBAAoB71G,KAAKorF,0BAA0BuR,EAAIkZ,mBAC5D71G,KAAKyrG,aAAezrG,KAAKorF,0BAA0BuR,EAAI8O,cACvDzrG,KAAK0rG,oBAAsB1rG,KAAKorF,0BAA0BuR,EAAI+O,qBAE9D1rG,KAAKo1F,gBACLp1F,KAAKq1F,mBACLr1F,KAAKi7F,iBACP,ECrHI,MAAOgb,GACX91G,8CACE+1G,EACApsB,EACAoM,GAEA,MAAM2C,EAAK74F,KAAKm2G,oBAAoBD,EAAqBpsB,GAEzD+O,SAAGzD,gBACHyD,EAAGxD,mBACCa,GACF2C,EAAG5C,iBAAiBC,GAEf2C,CACT,CAGA14F,2BAA2B+1G,EAA0BpsB,GACnD,OAAQosB,EAAoB3qB,UAC1B,KAAK0D,yBACH,OAAO,IAAI4K,GAAkBqc,EAAqBpsB,GACpD,KAAKmF,qBACH,OAAO,IAAIykB,GAAcwC,EAAqBpsB,GAChD,KAAKmF,mBACH,OAAO,IAAI4kB,GAAYqC,EAAqBpsB,GAC9C,KAAKmF,qBACH,OAAO,IAAI2N,GAAcsZ,EAAqBpsB,GAChD,KAAKmF,kBACH,OAAO,IAAIsa,GAAW2M,EAAqBpsB,GAC7C,KAAKmF,YACH,OAAO,IAAIoO,GAAW6Y,EAAqBpsB,GAC7C,KAAKmF,aACH,OAAO,IAAIwP,GAAMyX,EAAqBpsB,GACxC,KAAKmF,gBACH,OAAO,IAAIuU,GAAe0S,EAAqBpsB,GACjD,KAAKmF,YACH,OAAO,IAAIyQ,GAAKwW,EAAqBpsB,GACvC,KAAKmF,gBACH,OAAO,IAAImR,GAAS8V,EAAqBpsB,GAC3C,KAAKmF,4BACH,OAAO,IAAIiV,GAAqBgS,EAAqBpsB,GACvD,KAAKmF,YACH,OAAO,IAAIwQ,GAAWyW,EAAqBpsB,GAC7C,KAAKmF,gBACH,OAAO,IAAIwS,GAASyU,EAAqBpsB,GAC3C,KAAKmF,0BACH,OAAO,IAAIqS,GAAmB4U,EAAqBpsB,GACrD,KAAKmF,wBACH,OAAO,IAAIsU,GAAiB2S,EAAqBpsB,GACnD,KAAKmF,gBACH,OAAO,IAAIkT,GAAS+T,EAAqBpsB,GAC3C,KAAKmF,WACH,OAAO,IAAI0W,GAAIuQ,EAAqBpsB,GACtC,KAAKmF,WACH,OAAO,IAAIuX,GAAI0P,EAAqBpsB,GACtC,KAAKmF,qBACH,OAAO,IAAI0X,GAAcuP,EAAqBpsB,GAChD,KAAKmF,oBACH,OAAO,IAAI2X,GAAasP,EAAqBpsB,GAC/C,KAAKmF,uBACH,OAAO,IAAI2iB,GAAgBsE,EAAqBpsB,GAClD,KAAKmF,uBACH,OAAO,IAAImkB,GAAgB8C,EAAqBpsB,GAClD,KAAKmF,WACH,OAAO,IAAIwY,GAAIyO,EAAqBpsB,GACtC,KAAKmF,kBACH,OAAO,IAAI0e,GAAWuI,EAAqBpsB,GAC7C,KAAKmF,mBACH,OAAO,IAAI+Y,GAAYkO,EAAqBpsB,GAC9C,KAAKmF,qBACH,OAAO,IAAIkZ,GAAc+N,EAAqBpsB,GAChD,KAAKmF,mBACH,OAAO,IAAI6Z,GAAYoN,EAAqBpsB,GAC9C,KAAKmF,oBACH,OAAO,IAAIqa,GAAa4M,EAAqBpsB,GAC/C,KAAKmF,yBACH,OAAO,IAAIwa,GAAkByM,EAAqBpsB,GACpD,KAAKmF,0BACH,OAAO,IAAIya,GAAmBwM,EAAqBpsB,GAGrD,KAAKmF,iCACH,OAAO,IAAI2d,GAA0BsJ,EAAqBpsB,GAC5D,KAAKmF,yBACH,OAAO,IAAI4jB,GAAkBqD,EAAqBpsB,GACpD,KAAKmF,uBACH,OAAO,IAAI6jB,GAAgBoD,EAAqBpsB,GAClD,KAAKmF,mBACH,OAAO,IAAI2a,GAAYsM,EAAqBpsB,GAC9C,KAAKmF,0BACH,OAAO,IAAImb,GAAmB8L,EAAqBpsB,GACrD,KAAKmF,oBACH,OAAO,IAAIic,GAAagL,EAAqBpsB,GAC/C,KAAKmF,mBACH,OAAO,IAAIid,GAAYgK,EAAqBpsB,GAC9C,KAAKmF,mBACH,OAAO,IAAImd,GAAY8J,EAAqBpsB,GAC9C,KAAKmF,8BACH,OAAO,IAAIqd,GAAuB4J,EAAqBpsB,GACzD,KAAKmF,iBACH,OAAO,IAAIwd,GAAUyJ,EAAqBpsB,GAC5C,KAAKmF,kBACH,OAAO,IAAI6d,GAAWoJ,EAAqBpsB,GAC7C,KAAKmF,iBACH,OAAO,IAAI8d,GAAUmJ,EAAqBpsB,GAC5C,KAAKmF,kBACH,OAAO,IAAIke,GAAW+I,EAAqBpsB,GAC7C,KAAKmF,qBACH,OAAO,IAAIye,GAAcwI,EAAqBpsB,GAChD,KAAKmF,mBACH,OAAO,IAAIwkB,GAAYyC,EAAqBpsB,GAC9C,KAAKmF,iBACH,OAAO,IAAIwgB,GAAUyG,EAAqBpsB,GAC5C,KAAKmF,mBACH,OAAO,IAAIqkB,GAAY4C,EAAqBpsB,GAC9C,KAAKmF,yBACH,OAAO,IAAIumB,GAAkBU,EAAqBpsB,GAGpD,KAAKmF,mCACH,OAAO,IAAI+kB,GAA4BkC,EAAqBpsB,GAC9D,KAAKmF,oBACH,OAAO,IAAIilB,EAAagC,EAAqBpsB,GAC/C,KAAKmF,mBACH,OAAO,IAAIklB,EAAY+B,EAAqBpsB,GAC9C,KAAKmF,yBACH,OAAO,IAAIqlB,EAAkB4B,EAAqBpsB,GACpD,KAAKmF,2BACH,OAAO,IAAI6lB,EAAoBoB,EAAqBpsB,GACtD,KAAKmF,oBACH,OAAO,IAAI8lB,EAAamB,EAAqBpsB,GAC/C,KAAKmF,qBACH,OAAO,IAAI+lB,EAAckB,EAAqBpsB,GAChD,KAAKmF,uBACH,OAAO,IAAIomB,EAAgBa,EAAqBpsB,GAClD,KAAKmF,6BACH,OAAO,IAAIqmB,EAAsBY,EAAqBpsB,GACxD,QACE,MAAM,IAAIrjF,MAAM,0BAA0ByvG,EAAoB3qB,YAEpE,EClMI,MAAO6qB,WAAYvsB,GAgBvBhqF,YAAYw2G,EAAUvsB,EAAiBmD,GACrCntF,MAAMu2G,EAAInrG,GAAI4+E,GAhBhB9pF,cAAW,aAiBTA,KAAKitF,gBAAkBA,EACvBjtF,KAAKk0F,WAAWmiB,EAClB,CAEAniB,WAAWmiB,GACTr2G,KAAKs2G,cAAgB,IAAI/rB,GAAmB8rB,EAAIC,cAAet2G,KAAK8pF,UAAW9pF,MAC/EA,KAAKu2G,eAAiB,IAAIhsB,GAAmB8rB,EAAIE,eAAgBv2G,KAAK8pF,UAAW9pF,MACjFA,KAAKmgG,YAAc,IAAI5V,GAAmB8rB,EAAIlW,YAAangG,KAAK8pF,UAAW9pF,MAC3EA,KAAKqhG,OAAS,IAAI9W,GAAmB8rB,EAAIhV,OAAQrhG,KAAK8pF,UAAW9pF,MACjEA,KAAKw2G,kBAAoB,IAAIjsB,GAAmB8rB,EAAIG,kBAAmBx2G,KAAK8pF,UAAW9pF,MACvFA,KAAKy2G,aAAe,IAAIlsB,GAAmB8rB,EAAII,aAAcz2G,KAAK8pF,UAAW9pF,MAE7EA,KAAK02G,IAAM,IAAInsB,GAAmB8rB,EAAIK,IAAK12G,KAAK8pF,UAAW9pF,MAC3DA,KAAKunG,SAAW,IAAIhd,GAAmB8rB,EAAI9O,SAAUvnG,KAAK8pF,UAAW9pF,MACrEA,KAAK22G,IAAM,IAAIpsB,GAAmB8rB,EAAIM,IAAK32G,KAAK8pF,UAAW9pF,MAC3DA,KAAK42G,eAAiB,IAAIrsB,GAAmB8rB,EAAIO,eAAgB52G,KAAK8pF,UAAW9pF,MAGjFA,KAAKo1F,gBACDp1F,KAAKunG,SAASzY,eAChB9uF,KAAKunG,SAAS9Y,gBAAgB,KAAMf,cAAcgK,MAAMmf,aAAaC,KAEzE,CAEA1hB,gBAEEp1F,KAAKs2G,cAAc9oB,YAAY,iBAC/BxtF,KAAKu2G,eAAe/oB,YAAY,iBAChCxtF,KAAKmgG,YAAY3S,YAAY,iBAC7BxtF,KAAKqhG,OAAO7T,YAAY,gBACxBxtF,KAAKw2G,kBAAkBhpB,YAAY,iBACnCxtF,KAAKy2G,aAAajpB,YAAY,eAE9BxtF,KAAK02G,IAAIlpB,YAAY,iBACrBxtF,KAAKunG,SAAS/Z,YAAY,gBAC1BxtF,KAAK22G,IAAInpB,YAAY,gBACrBxtF,KAAK42G,eAAeppB,YAAY,gBAClC,CAEAupB,cACE/2G,KAAKs2G,cAAcpqG,MAAQ,KAC3BlM,KAAKu2G,eAAerqG,MAAQ,KAC5BlM,KAAKmgG,YAAYj0F,MAAQ,KACzBlM,KAAKqhG,OAAOn1F,MAAQ,KACpBlM,KAAKw2G,kBAAkBtqG,MAAQ,KAC/BlM,KAAKy2G,aAAavqG,MAAQ,KAE1BlM,KAAK02G,IAAIxqG,MAAQ,KACjBlM,KAAKunG,SAASr7F,MAAQ,KACtBlM,KAAK22G,IAAIzqG,MAAQ,KACjBlM,KAAK42G,eAAe1qG,MAAQ,IAC9B,CAESggF,UAAU50D,GACbA,IACFt3B,KAAKs2G,cAAgBt2G,KAAKorF,0BAA0B9zD,EAAEg/E,eACtDt2G,KAAKu2G,eAAiBv2G,KAAKorF,0BAA0B9zD,EAAEi/E,gBACvDv2G,KAAKmgG,YAAcngG,KAAKorF,0BAA0B9zD,EAAE6oE,aACpDngG,KAAKqhG,OAASrhG,KAAKorF,0BAA0B9zD,EAAE+pE,QAC/CrhG,KAAKw2G,kBAAoBx2G,KAAKorF,0BAA0B9zD,EAAEk/E,mBAC1Dx2G,KAAKy2G,aAAez2G,KAAKorF,0BAA0B9zD,EAAEm/E,cAErDz2G,KAAK02G,IAAM12G,KAAKorF,0BAA0B9zD,EAAEo/E,KAC5C12G,KAAKunG,SAAWvnG,KAAKorF,0BAA0B9zD,EAAEiwE,UACjDvnG,KAAK22G,IAAM32G,KAAKorF,0BAA0B9zD,EAAEq/E,KAC5C32G,KAAK42G,eAAiB52G,KAAKorF,0BAA0B9zD,EAAEs/E,gBACvD52G,KAAK4qF,8BAET,CAEAosB,WACEh3G,KAAKkL,GAAWlJ,OAAQ+nF,OACR/pF,KAAK2qF,aACbhlF,QAAQqwF,IACdA,EAAO9qF,GAAWlJ,OAAQ+nF,MAAI,EAElC,CAEAkM,iBAAiBC,GACXA,GACFvqF,OAAOtE,KAAK6uF,GAAcvwF,QAAQ0wB,IAChC,MAAMg0D,EAASrqF,KAAKq2B,GACd3qB,EAAOwqF,EAAa7/D,GACtBg0D,GAAU3+E,IACZ2+E,EAAOiD,WAAa5hF,EAAK4hF,WACzBjD,EAAOkD,WAAa7hF,EAAK6hF,aAIjC,CAEAxB,SACE,MAAO,CACLR,SAAUvrF,KAAKurF,SACf+qB,cAAet2G,KAAKs2G,cAAcprG,GAClCqrG,eAAgBv2G,KAAKu2G,eAAerrG,GACpCi1F,YAAangG,KAAKmgG,YAAYj1F,GAC9Bm2F,OAAQrhG,KAAKqhG,OAAOn2F,GACpBsrG,kBAAmBx2G,KAAKw2G,kBAAkBtrG,GAC1CurG,aAAcz2G,KAAKy2G,aAAavrG,GAEhCwrG,IAAK12G,KAAK02G,IAAIxrG,GACdq8F,SAAUvnG,KAAKunG,SAASr8F,GACxByrG,IAAK32G,KAAK22G,IAAIzrG,GACd0rG,eAAgB52G,KAAK42G,eAAe1rG,GAExC,EClHF,MAAM+rG,GAAuB,CAC3B,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,WAGIC,GAAS,CACb,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,WAcI,SAAUC,GAASC,GACvB,OAAIH,GAAqBI,SAASD,GACzBF,GAAOhsF,KAAKosF,MAAMpsF,KAAKqsF,SAAWL,GAAOzyG,SAG3C2yG,GAASF,GAAOhsF,KAAKosF,MAAMpsF,KAAKqsF,SAAWL,GAAOzyG,QAC3D,CClFM,MAAgB+yG,WAAmB3tB,GAiBvCqK,WAAWujB,GACTz3G,KAAK8Q,IAAM2mG,EAAW3mG,IACtB9Q,KAAKoD,KAAOq0G,EAAWr0G,KACvBpD,KAAK03G,YAAcP,GAASM,EAAWL,OACvCp3G,KAAK23G,SAAWF,EAAWE,SAC3B33G,KAAK43G,OAASH,EAAWG,OACzB53G,KAAK63G,qBAAuBJ,EAAWI,qBACvC73G,KAAKk8F,sBAAwBub,EAAWvb,sBACxCl8F,KAAK83G,kBAAoBL,EAAWK,eACtC,CAEIC,yBACF,OAAO/3G,KAAK8pF,UAAUyV,iBAAiBv/F,KAAK63G,qBAC9C,CAEIrK,0BACF,OAAOxtG,KAAK8pF,UAAUyV,iBAAiBv/F,KAAKk8F,sBAC9C,CAEI8b,qBACF,MAAO,GAAGh4G,KAAK+3G,mBAAmB30G,UAAUpD,KAAKwtG,oBAAoBpqG,MACvE,ECzCK,IAAK60G,GAUX,aAVWA,UAAsB,KAChCA,wBACAA,gCACAA,gCACAA,0BACAA,YACAA,YACAA,YACAA,cACAA,gBATUA,GAAZ,IAAYA,GAUX,GCVK,SAAUC,GAAkBC,GAChC,OAAOxsG,OAAOtE,KAAK8wG,GAChBpgG,OAAO,CAACjH,EAAK5E,IACLygB,MAAM4/D,OAAOz7E,KAErBvJ,IAAI2E,GACIisG,EAAcjsG,GAE3B,CCRO,IAAKksG,GAMX,aANWA,UAA4B,KACtCA,kBACAA,sBACAA,gCACAA,gCACAA,oBALUA,GAAZ,IAAYA,GAMX,GCWK,MAAOC,WAA6Bb,GA0CxC33G,YAAYy4G,EAAqBxuB,GAC/BhqF,MAAMw4G,EAAeptG,GAAI4+E,GA1C3B9pF,cAAW,kBACMA,wBAAqB,EACrBA,8BAA2B,EAqB5CA,UAAmB,GAcnBA,iBAAyC,GACzCA,uBAA0C,GAC1CA,6BAAgD,GAK9CA,KAAKk0F,WAAWokB,GAChBt4G,KAAKu4G,uBAAuBD,GAC5Bt4G,KAAK+3F,4BACP,CAEAmD,mBACE,OAAIl7F,KAAK8pF,UAAU6V,mBACV,IAIT3/F,KAAK+3F,6BACE,CACL/3F,KAAK22G,IACL32G,KAAKu3F,aACLv3F,KAAKs3F,aACLt3F,KAAKs0F,MACLt0F,KAAKunG,SACLvnG,KAAKmgG,YACLngG,KAAKqhG,OACLrhG,KAAKm8F,oBAET,CAESlR,+BACP,MAAM1zD,EAAWz3B,MAAMmrF,+BACvB1zD,SAAS3uB,KAAK5I,KAAKw4G,cACnBjhF,EAAS3uB,KAAK5I,KAAKy4G,iBACnBlhF,EAAS3uB,KAAK5I,KAAK04G,iBACnBnhF,EAAS3uB,KAAK5I,KAAK24G,eACnBphF,EAAS3uB,KAAK5I,KAAK44G,QACnBrhF,EAAS3uB,KAAK5I,KAAK64G,QACnBthF,EAAS3uB,KAAK5I,KAAK84G,QACnBvhF,EAAS3uB,KAAK5I,KAAK+4G,SACnBxhF,EAAS3uB,KAAK5I,KAAKg5G,UAEZzhF,CACT,CAIS28D,WAAWokB,GAClBx4G,MAAMo0F,WAAWokB,GAEjBt4G,KAAKs0F,MAAQ,IAAI/J,GAAmB+tB,EAAehkB,MAAOt0F,KAAK8pF,UAAW9pF,MAC1EA,KAAKmgG,YAAc,IAAI5V,GAAmB+tB,EAAenY,YAAangG,KAAK8pF,UAAW9pF,MACtFA,KAAK22G,IAAM,IAAIpsB,GAAmB+tB,EAAe3B,IAAK32G,KAAK8pF,UAAW9pF,MACtEA,KAAKqhG,OAAS,IAAI9W,GAAmB+tB,EAAejX,OAAQrhG,KAAK8pF,UAAW9pF,MAC5EA,KAAKunG,SAAW,IAAIhd,GAAmB+tB,EAAe/Q,SAAUvnG,KAAK8pF,UAAW9pF,MAEhFA,KAAKm8F,mBAAqB,IAAI5R,GAAmB+tB,EAAenc,mBAAoBn8F,KAAK8pF,UAAW9pF,MACpGA,KAAK6pG,aAAe,IAAItf,GAAmB+tB,EAAezO,aAAc7pG,KAAK8pF,UAAW9pF,MACxFA,KAAKs3F,aAAe,IAAI/M,GAAmB+tB,EAAehhB,aAAct3F,KAAK8pF,UAAW9pF,MACxFA,KAAKu3F,aAAe,IAAIhN,GAAmB+tB,EAAe/gB,aAAcv3F,KAAK8pF,UAAW9pF,MAExFA,KAAKw4G,aAAe,IAAIpC,GAAIkC,EAAeE,cAAgB,GAAIx4G,KAAK8pF,UAAW9pF,MAC/EA,KAAKy4G,gBAAkB,IAAIrC,GAAIkC,EAAeG,iBAAmB,GAAIz4G,KAAK8pF,UAAW9pF,MACrFA,KAAK04G,gBAAkB,IAAItC,GAAIkC,EAAeI,iBAAmB,GAAI14G,KAAK8pF,UAAW9pF,MACrFA,KAAK24G,cAAgB,IAAIvC,GAAIkC,EAAeK,eAAiB,GAAI34G,KAAK8pF,UAAW9pF,MACjFA,KAAK44G,OAAS,IAAIxC,GAAIkC,EAAeM,QAAU,GAAI54G,KAAK8pF,UAAW9pF,MACnEA,KAAK64G,OAAS,IAAIzC,GAAIkC,EAAeO,QAAU,GAAI74G,KAAK8pF,UAAW9pF,MACnEA,KAAK84G,OAAS,IAAI1C,GAAIkC,EAAeQ,QAAU,GAAI94G,KAAK8pF,UAAW9pF,MACnEA,KAAK+4G,QAAU,IAAI3C,GAAIkC,EAAeS,SAAW,GAAI/4G,KAAK8pF,UAAW9pF,MACrEA,KAAKg5G,SAAW,IAAI5C,GAAIkC,EAAeU,UAAY,GAAIh5G,KAAK8pF,UAAW9pF,KACzE,CAES+3F,6BACP/3F,KAAKs0F,MAAMtK,QAAQ,SACnBhqF,KAAKmgG,YAAYnW,QAAQ,gBACzBhqF,KAAK22G,IAAI3sB,QAAQ,eACjBhqF,KAAKqhG,OAAOrX,QAAQ,mBACpBhqF,KAAKunG,SAASvd,QAAQ,oBACtBhqF,KAAKm8F,mBAAmBnS,QAAQ,uBAChChqF,KAAK6pG,aAAa7f,QAAQ,iBAC1BhqF,KAAKs3F,aAAatN,QAAQ,iBAC1BhqF,KAAKu3F,aAAavN,QAAQ,iBAC1BhqF,KAAKmgG,YAAYnW,QAAQ,gBAEzBhqF,KAAKi5G,oBAAoBj5G,KAAKk5G,aAC9Bl5G,KAAKi5G,oBAAoBj5G,KAAKm5G,mBAC9Bn5G,KAAKi5G,oBAAoBj5G,KAAKo5G,wBAChC,CAES/jB,mBACHr1F,KAAKs0F,MAAMxF,eACb9uF,KAAKs0F,MAAM7F,gBAAgB,MAEzBzuF,KAAKmgG,YAAYrR,eACnB9uF,KAAKmgG,YAAY1R,gBAAgB,MAE/BzuF,KAAK22G,IAAI7nB,eACX9uF,KAAK22G,IAAIloB,gBAAgB,MAEvBzuF,KAAKqhG,OAAOvS,eACd9uF,KAAKqhG,OAAO5S,gBAAgB,MAE1BzuF,KAAKunG,SAASzY,eAChB9uF,KAAKunG,SAAS9Y,gBAAgB,MAE5BzuF,KAAKm8F,mBAAmBrN,eAC1B9uF,KAAKm8F,mBAAmB1N,gBAAgB,MAEtCzuF,KAAK6pG,aAAa/a,eACpB9uF,KAAK6pG,aAAapb,gBAAgB,KAAMf,cAAcgK,MAAMC,aAAasS,MAEvEjqG,KAAKs3F,aAAaxI,eACpB9uF,KAAKs3F,aAAa7I,gBAAgB,KAAMf,cAAcgK,MAAMC,aAAaC,OAEvE53F,KAAKu3F,aAAazI,eACpB9uF,KAAKu3F,aAAa9I,gBAAgB,KAEtC,CAEA8pB,uBAAuBD,GACrB,IAAKt4G,KAAKk5G,YAAYz0G,SACpBzE,KAAKq5G,sBAAsBf,EAAeY,YAAal5G,KAAKk5G,YAAal5G,KAAKs5G,oBAE1Et5G,KAAKk5G,YAAYz0G,SAAWzE,KAAKs5G,oBACnC,MAAM,IAAI7yG,MAAM,gDAIpB,IAAKzG,KAAKm5G,kBAAkB10G,SAC1BzE,KAAKq5G,sBAAsBf,EAAea,kBAAmBn5G,KAAKm5G,kBAAmBn5G,KAAKs5G,oBACtFt5G,KAAKm5G,kBAAkB10G,SAAWzE,KAAKs5G,oBACzC,MAAM,IAAI7yG,MAAM,uDAIpB,IAAKzG,KAAKo5G,wBAAwB30G,SAChCzE,KAAKq5G,sBACHf,EAAec,wBACfp5G,KAAKo5G,wBACLp5G,KAAKu5G,0BAEHv5G,KAAKo5G,wBAAwB30G,SAAWzE,KAAKu5G,0BAC/C,MAAM,IAAI9yG,MAAM,4DAGtB,CAEA4yG,sBACEG,EACAC,EACAC,GAEA,MAAMC,EAAoB35G,KAAK45G,0BAA0BJ,GACzDx5G,KAAK65G,mBAAmBJ,EAAwBE,EAAmBD,GACnE15G,KAAKi5G,oBAAoBQ,EAC3B,CAEAI,mBACEC,EACAC,EACAL,GAEA,IAAIM,EACJ,QAASx1G,EAAI,EAAGA,EAAIk1G,EAAmBl1G,IACrCw1G,EAAW,IAAIzvB,GAAmBwvB,EAAuBv1G,IAAM,GAAIxE,KAAK8pF,UAAW9pF,MACnF85G,EAA4BlxG,KAAKoxG,EAErC,CAEAJ,0BAA0BJ,GACxB,OAAOA,GAAqBA,EAAkBtjF,MAAO20D,GAAYA,aAAcN,IAC3EivB,EACA,EACN,CAEQP,oBAAoBC,GAE1B,IAAIe,EAA6B,GAC7Bf,EAAYz0G,SAAWzE,KAAKs5G,mBAC9BW,EAAmB/B,GAAkBD,IAC5BiB,EAAYz0G,SAAWzE,KAAKu5G,2BACrCU,EAAmB/B,GAAkBE,KAGvC,QAAS5zG,EAAI,EAAGA,EAAI00G,EAAYz0G,OAAQD,IACrB00G,EAAY10G,GACpBwlF,QAAQiwB,EAAiBz1G,GAEtC,CAES4wF,gBAEPp1F,KAAKm8F,mBAAmB3O,YAAY,sBACpCxtF,KAAK6pG,aAAarc,YAAYgH,iBAC9Bx0F,KAAKs3F,aAAa9J,YAAY,gBAC9BxtF,KAAKu3F,aAAa/J,YAAY,iBAC9BxtF,KAAKs0F,MAAM9G,YAAY,qBAEvBxtF,KAAKmgG,YAAY3S,YAAY,iBAC7BxtF,KAAK22G,IAAInpB,YAAY,gBACrBxtF,KAAKqhG,OAAO7T,YAAY,gBACxBxtF,KAAKunG,SAAS/Z,YAAY,gBAE1BxtF,KAAKk6G,yBAAyBl6G,KAAKk5G,YAAa1kB,kBAChDx0F,KAAKk6G,yBAAyBl6G,KAAKm5G,kBAAmB3kB,oBACtDx0F,KAAKk6G,yBAAyBl6G,KAAKo5G,wBAAyB5kB,mBAC9D,CAEA0lB,yBAAyBhB,EAAmChsB,GAC1D,UAAWrC,KAAMquB,EACfruB,EAAG2C,YAAYN,EAEnB,CAEAitB,cACE,OAAOn6G,KAAKm8F,mBAAmBjwF,MAAQ,IACzC,CAEmB8/E,sBAAsBpJ,GACvC,OAAOA,aAAoBqJ,IAA4B,mBAAbrJ,GAA2BA,aAAoB4T,EAC3F,CAGSlB,eACPt1F,KAAKmgG,YAAYj0F,MAAQ,KACzBlM,KAAK22G,IAAIzqG,MAAQ,KACjBlM,KAAKqhG,OAAOn1F,MAAQ,KACpBlM,KAAKunG,SAASr7F,MAAQ,KACtBlM,KAAKm8F,mBAAmBjwF,MAAQ,KAChClM,KAAK6pG,aAAa39F,MAAQ,KAC1BlM,KAAKs3F,aAAaprF,MAAQ,KAC1BlM,KAAKu3F,aAAarrF,MAAQ,KAC1BlM,KAAKs0F,MAAMpoF,MAAQ,KACnBlM,KAAKo6G,wBAAwBp6G,KAAKk5G,aAClCl5G,KAAKo6G,wBAAwBp6G,KAAKm5G,mBAClCn5G,KAAKo6G,wBAAwBp6G,KAAKo5G,yBAElCp5G,KAAKw4G,aAAazB,cAClB/2G,KAAKy4G,gBAAgB1B,cACrB/2G,KAAK04G,gBAAgB3B,cACrB/2G,KAAK24G,cAAc5B,cACnB/2G,KAAK44G,OAAO7B,cACZ/2G,KAAK64G,OAAO9B,cACZ/2G,KAAK84G,OAAO/B,cACZ/2G,KAAK+4G,QAAQhC,cACb/2G,KAAKg5G,SAASjC,aAChB,CAEAqD,wBAAwBlB,GACtB,UAAW5hF,KAAK4hF,EACd5hF,EAAEprB,MAAQ,IAEd,CAISggF,UAAUmuB,GACjBr6G,KAAKmgG,YAAcngG,KAAKorF,0BAA0BivB,EAAIla,aACtDngG,KAAK22G,IAAM32G,KAAKorF,0BAA0BivB,EAAI1D,KAC9C32G,KAAKqhG,OAASrhG,KAAKorF,0BAA0BivB,EAAIhZ,QACjDrhG,KAAKunG,SAAWvnG,KAAKorF,0BAA0BivB,EAAI9S,UACnDvnG,KAAKm8F,mBAAqBn8F,KAAKorF,0BAA0BivB,EAAIle,oBAC7Dn8F,KAAK6pG,aAAe7pG,KAAKorF,0BAA0BivB,EAAIxQ,cACvD7pG,KAAKs3F,aAAet3F,KAAKorF,0BAA0BivB,EAAI/iB,cACvDt3F,KAAKu3F,aAAev3F,KAAKorF,0BAA0BivB,EAAI9iB,cACvDv3F,KAAKs0F,MAAQt0F,KAAKorF,0BAA0BivB,EAAI/lB,OAChDt0F,KAAK83G,gBAAkBuC,EAAIvC,gBAc3B93G,KAAKk5G,YAAcl5G,KAAKs6G,qBAAqBt6G,KAAKk5G,YAAamB,EAAInB,YAAal5G,KAAKs5G,oBACrFt5G,KAAKm5G,kBAAoBn5G,KAAKs6G,qBAC5Bt6G,KAAKm5G,kBACLkB,EAAIlB,kBACJn5G,KAAKs5G,oBAEPt5G,KAAKo5G,wBAA0Bp5G,KAAKs6G,qBAClCt6G,KAAKo5G,wBACLiB,EAAIjB,wBACJp5G,KAAKu5G,0BAGPv5G,KAAK03G,YAAcP,GAASkD,EAAI3C,YAClC,CAEA4C,qBACEb,EACAE,EACAD,GAGA,GADAD,EAAyB,GACrBE,aAA6B7/F,OAAS6/F,EAAkBzjF,MAAM62D,IAChE,UAAWwtB,KAAQZ,EACjBF,EAAuB7wG,KAAK5I,KAAKorF,0BAA0BmvB,QAExD,IAAKZ,EAKV,MAAM,IAAIlzG,MAAM,gEAJhB,QAASjC,EAAI,EAAGA,EAAIk1G,EAAmBl1G,IACrCi1G,EAAuB7wG,KAAK5I,KAAKorF,0BAA0B,IAAG,CAMlE,OAAOquB,CACT,CAES9uB,aACP,MAAMD,EAAU5qF,MAAM6qF,aACtB,YAAK6vB,sBAAsB9vB,EAAS1qF,KAAKk5G,aACzCl5G,KAAKw6G,sBAAsB9vB,EAAS1qF,KAAKm5G,mBACzCn5G,KAAKw6G,sBAAsB9vB,EAAS1qF,KAAKo5G,yBAElC1uB,CACT,CAEA8vB,sBAAsB9vB,EAA+BwuB,GACnD,UAAWuB,KAAMvB,EACfxuB,EAAQ9hF,KAAK6xG,EAEjB,CAEO1uB,SACL,MAAO,CACLj7E,IAAK9Q,KAAK8Q,IACV4mG,YAAa13G,KAAK03G,YAClBxsG,GAAIlL,KAAKkL,GACTqgF,SAAUvrF,KAAKurF,SACfnoF,KAAMpD,KAAKoD,KACXy0G,qBAAsB73G,KAAK63G,qBAC3B3b,sBAAuBl8F,KAAKk8F,sBAC5Byb,SAAU33G,KAAK23G,SACfC,OAAQ53G,KAAK43G,OACbzX,YAAangG,KAAKmgG,YAAYj1F,GAC9ByrG,IAAK32G,KAAK22G,IAAIzrG,GACdm2F,OAAQrhG,KAAKqhG,OAAOn2F,GACpBq8F,SAAUvnG,KAAKunG,SAASr8F,GACxBixF,mBAAoBn8F,KAAKm8F,mBAAmBjxF,GAC5C2+F,aAAc7pG,KAAK6pG,aAAa3+F,GAChCosF,aAAct3F,KAAKs3F,aAAapsF,GAChCqsF,aAAcv3F,KAAKu3F,aAAarsF,GAChCopF,MAAOt0F,KAAKs0F,MAAMppF,GAClB4sG,gBAAiB93G,KAAK83G,gBACtBoB,YAAal5G,KAAKk5G,YAAY3xG,IAAIsjF,GAAMA,EAAG3/E,IAC3CiuG,kBAAmBn5G,KAAKm5G,kBAAkB5xG,IAAIsjF,GAAMA,EAAG3/E,IACvDkuG,wBAAyBp5G,KAAKo5G,wBAAwB7xG,IAAIsjF,GAAMA,EAAG3/E,IAEvE,ECvZK,IAAKwvG,GAGX,aAHWA,UAAwB,KAClCA,gBACAA,YAFUA,GAAZ,IAAYA,GAGX,GAEK,MAAOC,WAAqB9wB,GAUhChqF,YAAY+6G,EAAmB9wB,GAC7BhqF,MAAM86G,EAAa1vG,GAAI4+E,GAVzB9pF,cAAW,eAWTA,KAAKk0F,WAAW0mB,GAChB56G,KAAKoD,KAAO,gBACZpD,KAAKo1F,eACP,CAEShpC,cAAc+9B,GACrB,IAAIxhD,EAAU7oC,MAAMssD,cAAc+9B,GAGlC,OAAIA,aAAmBwwB,KACrBhyE,EACEA,GACAwhD,EAAQ0wB,mBAAqB76G,KAAK66G,kBAClC1wB,EAAQ2wB,uBAAyB96G,KAAK86G,sBACtC3wB,EAAQ4wB,iBAAmB/6G,KAAK+6G,gBAChC5wB,EAAQ6wB,oBAAsBh7G,KAAKg7G,mBAGhCryE,CACT,CAEAurD,WAAW0mB,GAET56G,KAAK66G,iBAAmBD,EAAaC,kBAAoB,MAGvD76G,KAAK86G,4BADIF,EAAaE,qBAAyB,IACnB,IAEAF,EAAaE,qBAG3C96G,KAAKi7G,YAAc,IAAI1wB,GAAmBqwB,EAAaK,YAAaj7G,KAAK8pF,UAAW9pF,MACpFA,KAAKk7G,SAAW,IAAI3wB,GAAmBqwB,EAAaM,SAAUl7G,KAAK8pF,UAAW9pF,MAG5EA,KAAK+6G,sBADIH,EAAaG,eAAmB,IACnB,IAEAH,EAAaG,eAGrC/6G,KAAKg7G,kBAAoBJ,EAAaI,mBAAqBN,GAAyBS,OAEpFn7G,KAAK+3F,4BACP,CAEA3C,gBACEp1F,KAAKi7G,YAAYztB,YAAY,mBAC7BxtF,KAAKk7G,SAAS1tB,YAAY,oBAC5B,CAEA6H,mBACMr1F,KAAKi7G,YAAYnsB,eACnB9uF,KAAKi7G,YAAYxsB,gBAAgB,IAE/BzuF,KAAKk7G,SAASpsB,eAChB9uF,KAAKk7G,SAASzsB,gBAAgB,GAElC,CAESvC,UAAUyQ,GACjB38F,KAAKi7G,YAAcj7G,KAAKorF,0BAA0BuR,EAAIse,aACtDj7G,KAAKk7G,SAAWl7G,KAAKorF,0BAA0BuR,EAAIue,UAEnDl7G,KAAK4qF,8BACL5qF,KAAKo1F,gBACLp1F,KAAKq1F,mBACLr1F,KAAK+3F,4BACP,CAEAA,6BACE/3F,KAAKi7G,YAAY73G,KAAO,eACxBpD,KAAKk7G,SAAS93G,KAAO,WACvB,CAEA04F,yBACE,MAAM,IAAIr1F,MAAM,0BAClB,CAEA00F,wCACE,MAAO,CAACn7F,KAAKi7G,YAAaj7G,KAAKk7G,SACjC,CAEOnvB,SACL,MAAO,CACL7gF,GAAIlL,KAAKkL,GACTqgF,SAAUvrF,KAAKurF,SACfsvB,iBAAkB76G,KAAK66G,iBACvBC,qBAAsB96G,KAAK86G,qBAC3BC,eAAgB/6G,KAAK+6G,eACrBE,YAAaj7G,KAAKi7G,YAAY/vG,GAC9BgwG,SAAUl7G,KAAKk7G,SAAShwG,GACxB8vG,kBAAmBh7G,KAAKg7G,kBAE5B,ECjHI,MAAOI,GAQXv7G,YAAYw7G,EAAsBrtG,GAChChO,KAAKq7G,aAAeA,EACpBr7G,KAAKs7G,eAAiBttG,CACxB,ECRI,MAAOutG,WAAyB1xB,GAapChqF,YAAY27G,EAAiB1xB,GAC3BhqF,MAAM07G,EAAWtwG,GAAI4+E,GAbvB9pF,cAAW,mBACFA,UAAO,WAadA,KAAKk0F,WAAWsnB,GAChBx7G,KAAK+3F,6BACL/3F,KAAK4qF,6BACP,CAEAsJ,WAAWsnB,GACTx7G,KAAKy7G,YAAc,IAAIlxB,GAAmBixB,EAAWC,YAAaz7G,KAAK8pF,UAAW9pF,MAClFA,KAAK07G,SAAW,IAAInxB,GAAmBixB,EAAWE,SAAU17G,KAAK8pF,UAAW9pF,MAC5EA,KAAK27G,eAAiB,IAAIpxB,GAAmBixB,EAAWG,eAAgB37G,KAAK8pF,UAAW9pF,MACxFA,KAAK47G,aAAe,IAAIrxB,GAAmBixB,EAAWI,aAAc57G,KAAK8pF,UAAW9pF,MACpFA,KAAK67G,UAAY,IAAItxB,GAAmBixB,EAAWK,UAAW77G,KAAK8pF,UAAW9pF,MAC9EA,KAAK87G,WAAa,IAAIvxB,GAAmBixB,EAAWM,WAAY97G,KAAK8pF,UAAW9pF,MAChFA,KAAK+7G,WAAa,IAAIxxB,GAAmBixB,EAAWO,WAAY/7G,KAAK8pF,UAAW9pF,MAChFA,KAAKg8G,kBAAoB,IAAIzxB,GAAmBixB,EAAWQ,kBAAmBh8G,KAAK8pF,UAAW9pF,MAC9FA,KAAKi8G,wBAA0B,IAAI1xB,GAAmBixB,EAAWS,wBAAyBj8G,KAAK8pF,UAAW9pF,MAC1GA,KAAKo1F,gBACLp1F,KAAK4qF,6BACP,CAEAwK,gBACEp1F,KAAKy7G,YAAYjuB,YAAY,WAC7BxtF,KAAK07G,SAASluB,YAAY,gBAC1BxtF,KAAK27G,eAAenuB,YAAY,gBAChCxtF,KAAK67G,UAAUruB,YAAY,mBAC3BxtF,KAAK47G,aAAapuB,YAAY,mBAC9BxtF,KAAK87G,WAAWtuB,YAAY,mBAC5BxtF,KAAK+7G,WAAWvuB,YAAY,mBAC5BxtF,KAAKg8G,kBAAkBxuB,YAAY,iBACnCxtF,KAAKi8G,wBAAwBzuB,YAAY,gBAC3C,CAEStB,UAAUgwB,GACjBl8G,KAAKy7G,YAAcz7G,KAAKorF,0BAA0B8wB,EAAGT,aACrDz7G,KAAK07G,SAAW17G,KAAKorF,0BAA0B8wB,EAAGR,UAClD17G,KAAK27G,eAAiB37G,KAAKorF,0BAA0B8wB,EAAGP,gBACxD37G,KAAK47G,aAAe57G,KAAKorF,0BAA0B8wB,EAAGN,cACtD57G,KAAK67G,UAAY77G,KAAKorF,0BAA0B8wB,EAAGL,WACnD77G,KAAK87G,WAAa97G,KAAKorF,0BAA0B8wB,EAAGJ,YACpD97G,KAAK+7G,WAAa/7G,KAAKorF,0BAA0B8wB,EAAGH,YACpD/7G,KAAKg8G,kBAAoBh8G,KAAKorF,0BAA0B8wB,EAAGF,mBAC3Dh8G,KAAKi8G,wBAA0Bj8G,KAAKorF,0BAA0B8wB,EAAGD,yBACjEj8G,KAAK+3F,6BACL/3F,KAAK4qF,6BACP,CAEAsQ,mBACE,OAAKl7F,KAAK8pF,UAAU6V,mBAYb,GAXE,CACL3/F,KAAKy7G,YACLz7G,KAAK07G,SACL17G,KAAK47G,aACL57G,KAAK67G,UACL77G,KAAK87G,WACL97G,KAAK+7G,WACL/7G,KAAKg8G,kBACLh8G,KAAKi8G,wBAIX,CAEAlkB,6BACE/3F,KAAKy7G,YAAYzxB,QAAQ,eACzBhqF,KAAK07G,SAAS1xB,QAAQ,aACtBhqF,KAAK47G,aAAa5xB,QAAQ,iBAC1BhqF,KAAK67G,UAAU7xB,QAAQ,cACvBhqF,KAAK87G,WAAW9xB,QAAQ,eACxBhqF,KAAK+7G,WAAW/xB,QAAQ,eACxBhqF,KAAKg8G,kBAAkBhyB,QAAQ,uBAC/BhqF,KAAKi8G,wBAAwBjyB,QAAQ,6BACvC,CAEO+B,SACL,MAAO,CACL7gF,GAAIlL,KAAKkL,GACTqgF,SAAUvrF,KAAKurF,SACfkwB,YAAaz7G,KAAKy7G,YAAYvwG,GAC9BwwG,SAAU17G,KAAK07G,SAASxwG,GACxBywG,eAAgB37G,KAAK27G,eAAezwG,GACpC0wG,aAAc57G,KAAK47G,aAAa1wG,GAChC2wG,UAAW77G,KAAK67G,UAAU3wG,GAC1B4wG,WAAY97G,KAAK87G,WAAW5wG,GAC5B6wG,WAAY/7G,KAAK+7G,WAAW7wG,GAC5B8wG,kBAAmBh8G,KAAKg8G,kBAAkB9wG,GAC1C+wG,wBAAyBj8G,KAAKi8G,wBAAwB/wG,GAE1D,ECvGI,MAAOixG,WAAkBtyB,GAI7BhqF,YAAYu8G,EAAgBtyB,GAC1BhqF,MAAMs8G,EAAUlxG,GAAI4+E,GAJtB9pF,cAAW,WAKX,CAEAq8G,iBACE,QAASr8G,KAAKm0F,eAChB,CAEAmoB,iBACE,OAAOt8G,KAAKu8G,WACd,CAEAC,eAAeD,GACbv8G,KAAKu8G,YAAcA,CACrB,CAESrwB,UAAUC,GACjBnsF,KAAKm0F,gBAAkBhI,EAAagI,eACtC,CAEApI,SACE,MAAO,CACLoI,gBAAiBn0F,KAAKm0F,gBAE1B,EC/BK,IAAKsoB,GAIX,aAJWA,UAAc,KACxBA,kCACAA,gDACAA,sDAHUA,GAAZ,IAAYA,GAIX,GCOK,MAAOC,WAA4BlF,GAOvC33G,YAAY88G,EAAgD7yB,GAC1DhqF,MAAM68G,EAAoBzxG,GAAI4+E,GAPhC9pF,cAAWy8G,yBASTz8G,KAAKk0F,WAAWyoB,GAChB38G,KAAK+3F,4BACP,CAEAmD,mBACE,OAAIl7F,KAAK8pF,UAAU6V,mBACV,IAET3/F,KAAK+3F,6BACE,CAAC/3F,KAAK6pG,aAAc7pG,KAAK8pG,YAAa9pG,KAAK+pG,UACpD,CAES7V,WAAWujB,GAClB33G,MAAMo0F,WAAWujB,GAEjBz3G,KAAK6pG,aAAe,IAAItf,GAAmBktB,EAAW5N,aAAc7pG,KAAK8pF,UAAW9pF,MACpFA,KAAK8pG,YAAc,IAAIvf,GAAmBktB,EAAW3N,YAAa9pG,KAAK8pF,UAAW9pF,MAClFA,KAAK+pG,SAAW,IAAIxf,GAAmBktB,EAAW1N,SAAU/pG,KAAK8pF,UAAW9pF,KAC9E,CAESs1F,eACPt1F,KAAK6pG,aAAa39F,WAAQ+B,EAC1BjO,KAAK8pG,YAAY59F,WAAQ+B,EACzBjO,KAAK+pG,SAAS79F,WAAQ+B,CACxB,CAESmnF,gBACPp1F,KAAK6pG,aAAarc,YAAYgH,iBAC9Bx0F,KAAK8pG,YAAYtc,YAAYgH,gBAC7Bx0F,KAAK+pG,SAASvc,YAAYgH,YAC5B,CAESuD,6BACP/3F,KAAK6pG,aAAa7f,QAAQyK,kBAC1Bz0F,KAAK8pG,YAAY9f,QAAQyK,gBACzBz0F,KAAK+pG,SAAS/f,QAAQyK,YACxB,CAESY,mBACHr1F,KAAK6pG,aAAa/a,eACpB9uF,KAAK6pG,aAAapb,qBAAgBxgF,EAAWy/E,cAAcgK,MAAMC,aAAasS,KAElF,CAEAkQ,cACE,OAAOn6G,KAAK6pG,aAAa39F,MAAQ,IACnC,CAEmB8/E,sBAAsBpJ,GACvC,OAAOA,aAAoBqJ,IAA4B,mBAAbrJ,GAA2BA,aAAoBkS,EAC3F,CAES5I,UAAUC,GACjBnsF,KAAK6pG,aAAe7pG,KAAKorF,0BAA0Be,EAAa0d,cAChE7pG,KAAK8pG,YAAc9pG,KAAKorF,0BAA0Be,EAAa2d,aAC/D9pG,KAAK+pG,SAAW/pG,KAAKorF,0BAA0Be,EAAa4d,SAC9D,CAEOhe,SACL,MAAO,CACLj7E,IAAK9Q,KAAK8Q,IACV4mG,YAAa13G,KAAK03G,YAClBxsG,GAAIlL,KAAKkL,GACTqgF,SAAUvrF,KAAKurF,SACfnoF,KAAMpD,KAAKoD,KACXy0G,qBAAsB73G,KAAK63G,qBAC3B3b,sBAAuBl8F,KAAKk8F,sBAC5Byb,SAAU33G,KAAK23G,SACfC,OAAQ53G,KAAK43G,OACb/N,aAAc7pG,KAAK6pG,aAAa3+F,GAChC4+F,YAAa9pG,KAAK8pG,YAAY5+F,GAC9B6+F,SAAU/pG,KAAK+pG,SAAS7+F,GACxB4sG,gBAAiB93G,KAAK83G,gBAE1B,ECpFI,MAAO8E,WAA8BpF,GAQzC33G,YAAYg9G,EAAqC/yB,GAC/ChqF,MAAM+8G,EAAO3xG,GAAI4+E,GARnB9pF,cAAWy8G,4BAKXz8G,iBAAoC,GAKlCA,KAAKk0F,WAAW2oB,GAChB78G,KAAK+3F,4BACP,CAEAmD,mBACE,OAAIl7F,KAAK8pF,UAAU6V,mBACV,IAET3/F,KAAK+3F,6BACE,CAAC/3F,KAAKm5F,SAAUn5F,KAAKw0G,SAAUx0G,KAAK88G,KAC7C,CAES5oB,WAAW2oB,GAClB/8G,MAAMo0F,WAAW2oB,GAEjB78G,KAAKm5F,SAAW,IAAI5O,GAAmBsyB,EAAO1jB,SAAUn5F,KAAK8pF,UAAW9pF,MACxEA,KAAKw0G,SAAW,IAAIjqB,GAAmBsyB,EAAOrI,SAAUx0G,KAAK8pF,UAAW9pF,MACxEA,KAAK88G,IAAM,IAAIvyB,GAAmBsyB,EAAOC,IAAK98G,KAAK8pF,UAAW9pF,MAE9DA,KAAK+8G,gBAAgBF,GACrB78G,KAAKo1F,eACP,CAEQ2nB,gBAAgBF,GACtB,GAAI78G,KAAKk5G,YAAYz0G,OACnB,OAGF,MAAMy0G,EAAc2D,EAAO3D,aAAe,GAE1C,IAAIc,EAAW,IAAIzvB,GAAmB2uB,EAAY,IAAM,GAAIl5G,KAAK8pF,UAAW9pF,MAC5EA,KAAKk5G,YAAYtwG,KAAKoxG,GAEtBA,EAAW,IAAIzvB,GAAmB2uB,EAAY,IAAM,GAAIl5G,KAAK8pF,UAAW9pF,MACxEA,KAAKk5G,YAAYtwG,KAAKoxG,GAEtBA,EAAW,IAAIzvB,GAAmB2uB,EAAY,IAAM,GAAIl5G,KAAK8pF,UAAW9pF,MACxEA,KAAKk5G,YAAYtwG,KAAKoxG,GAEtBA,EAAW,IAAIzvB,GAAmB2uB,EAAY,IAAM,GAAIl5G,KAAK8pF,UAAW9pF,MACxEA,KAAKk5G,YAAYtwG,KAAKoxG,GAEtBA,EAAW,IAAIzvB,GAAmB2uB,EAAY,IAAM,GAAIl5G,KAAK8pF,UAAW9pF,MACxEA,KAAKk5G,YAAYtwG,KAAKoxG,GAEtBA,EAAW,IAAIzvB,GAAmB2uB,EAAY,IAAM,GAAIl5G,KAAK8pF,UAAW9pF,MACxEA,KAAKk5G,YAAYtwG,KAAKoxG,GAEtBA,EAAW,IAAIzvB,GAAmB2uB,EAAY,IAAM,GAAIl5G,KAAK8pF,UAAW9pF,MACxEA,KAAKk5G,YAAYtwG,KAAKoxG,GAEtBA,EAAW,IAAIzvB,GAAmB2uB,EAAY,IAAM,GAAIl5G,KAAK8pF,UAAW9pF,MACxEA,KAAKk5G,YAAYtwG,KAAKoxG,GAEtBA,EAAW,IAAIzvB,GAAmB2uB,EAAY,IAAM,GAAIl5G,KAAK8pF,UAAW9pF,MACxEA,KAAKk5G,YAAYtwG,KAAKoxG,GAEtBA,EAAW,IAAIzvB,GAAmB2uB,EAAY,IAAM,GAAIl5G,KAAK8pF,UAAW9pF,MACxEA,KAAKk5G,YAAYtwG,KAAKoxG,GAEtBA,EAAW,IAAIzvB,GAAmB2uB,EAAY,KAAO,GAAIl5G,KAAK8pF,UAAW9pF,MACzEA,KAAKk5G,YAAYtwG,KAAKoxG,GAEtBA,EAAW,IAAIzvB,GAAmB2uB,EAAY,KAAO,GAAIl5G,KAAK8pF,UAAW9pF,MACzEA,KAAKk5G,YAAYtwG,KAAKoxG,GAEtBA,EAAW,IAAIzvB,GAAmB2uB,EAAY,KAAO,GAAIl5G,KAAK8pF,UAAW9pF,MACzEA,KAAKk5G,YAAYtwG,KAAKoxG,GAEtBA,EAAW,IAAIzvB,GAAmB2uB,EAAY,KAAO,GAAIl5G,KAAK8pF,UAAW9pF,MACzEA,KAAKk5G,YAAYtwG,KAAKoxG,EACxB,CAES3kB,mBACHr1F,KAAKw0G,SAAS1lB,eAChB9uF,KAAKw0G,SAAS/lB,gBAAgB,EAAKf,cAAcgK,MAAMqO,WAAWC,KAEtE,CAES5Q,gBACPp1F,KAAKm5F,SAAS3L,YAAYgH,kBAC1Bx0F,KAAKw0G,SAAShnB,YAAYgH,eAC1Bx0F,KAAK88G,IAAItvB,YAAYgH,sBAErB,UAAW3J,KAAM7qF,KAAKk5G,YACpBruB,EAAG2C,YAAYgH,iBAEnB,CAESuD,6BACP/3F,KAAKm5F,SAASnP,QAAQ,YACtBhqF,KAAKw0G,SAASxqB,QAAQ,aACtBhqF,KAAK88G,IAAI9yB,QAAQ,OACjBhqF,KAAKi5G,qBACP,CAEAA,sBACE,MAAM+D,EAAgB,CACpB,KACA,MACA,KACA,KACA,MACA,MACA,UACA,SACA,UACA,MACA,MACA,MACA,MACA,OAGF,QAASx4G,EAAI,EAAGA,EAAIxE,KAAKk5G,YAAYz0G,OAAQD,IAC3CxE,KAAKk5G,YAAY10G,GAAGpB,KAAO45G,EAAcx4G,EAE7C,CAES8wF,eACPt1F,KAAKm5F,SAASjtF,WAAQ+B,EACtBjO,KAAKw0G,SAAStoG,WAAQ+B,EACtBjO,KAAK88G,IAAI5wG,WAAQ+B,EAEjB,UAAW48E,KAAM7qF,KAAKk5G,YACpBruB,EAAG3+E,WAAQ+B,CAEf,CAESg9E,+BACP,MAAMqmB,EAAOxxG,MAAMmrF,+BACnBqmB,SAAK1oG,QAAQ5I,KAAKk5G,aACX5H,CACT,CAES3mB,aACP,MAAMD,EAAU5qF,MAAM6qF,aACtB,UAAWE,KAAM7qF,KAAKk5G,YACpBxuB,EAAQ9hF,KAAKiiF,GAGf,OAAOH,CACT,CAEAyvB,cACE,OAAOn6G,KAAKm5F,SAASjtF,MAAQ,IAC/B,CAEmB8/E,sBAAsBpJ,GACvC,OAAOA,aAAoBqJ,IAA4B,mBAAbrJ,GAA2BA,aAAoBkS,EAC3F,CAES5I,UAAU+wB,GAKjB,GAJAj9G,KAAKm5F,SAAWn5F,KAAKorF,0BAA0B6xB,EAAK9jB,UACpDn5F,KAAKw0G,SAAWx0G,KAAKorF,0BAA0B6xB,EAAKzI,UACpDx0G,KAAK88G,IAAM98G,KAAKorF,0BAA0B6xB,EAAKH,KAE3CG,EAAK/D,uBAAuBp/F,MAC9B,QAAStV,EAAI,EAAGA,EAAIy4G,EAAK/D,YAAYz0G,OAAQD,IAC3CxE,KAAKk5G,YAAY10G,GAAKxE,KAAKorF,0BAA0B6xB,EAAK/D,YAAY10G,IAI1ExE,KAAKo1F,eACP,CAEOrJ,SACL,MAAO,CACLj7E,IAAK9Q,KAAK8Q,IACV4mG,YAAa13G,KAAK03G,YAClBxsG,GAAIlL,KAAKkL,GACTqgF,SAAUvrF,KAAKurF,SACfnoF,KAAMpD,KAAKoD,KACXy0G,qBAAsB73G,KAAK63G,qBAC3B3b,sBAAuBl8F,KAAKk8F,sBAC5Byb,SAAU33G,KAAK23G,SACfC,OAAQ53G,KAAK43G,OACbze,SAAUn5F,KAAKm5F,SAASjuF,GACxBspG,SAAUx0G,KAAKw0G,SAAStpG,GACxB4xG,IAAK98G,KAAK88G,IAAI5xG,GACdguG,YAAal5G,KAAKk5G,YAAY3xG,IAAIsjF,GAAMA,EAAG3/E,IAC3C4sG,gBAAiB93G,KAAK83G,gBAE1B,EC1II,MAAO7rB,WAAapC,GAuExBhqF,YAAYy3B,GACVx3B,MAAMw3B,EAAEpsB,GAAI,MAvEdlL,cAAW,OAEXA,cAAgB,CAAE0jB,KAAM,IAcxB1jB,4BAA+D,GAC/DA,uBAAqD,GACrDA,wBAAmD,GACnDA,yBAAoD,GACpDA,kBAAoC,GAOpCA,mBAA6C,GAE7CA,gCAAyD,GACzDA,0BAA6C,GAKrCA,sCAAmC,IAAIooB,MAC/CpoB,sCAAmCA,KAAKk9G,iCAAiCj0D,eAIzEjpD,uBAAoB,IAAIooB,MACxBpoB,uBAAoBA,KAAKm9G,kBAAkBl0D,eA+BzCjpD,KAAK6sG,WAAav1E,EAAEu1E,SACpB7sG,KAAKo9G,UAAY9lF,EAAE8lF,QACnBp9G,KAAKoD,KAAOk0B,EAAEl0B,KACdpD,KAAKg1F,YAAc19D,EAAE09D,YACrBh1F,KAAK8lG,YAAcxuE,EAAEwuE,aAAe,iBACpC9lG,KAAK2/F,qBAAuBroE,EAAEqoE,mBAE1BroE,EAAE69D,WACJn1F,KAAKm1F,SAAW79D,EAAE69D,SAEtB,CAGAkoB,mBAAmBC,GACjB,OAAOrH,uBAAyCqH,EAAct9G,KAChE,CAEAu9G,6BAA6BD,EAAmBpnB,GAC9C,MAAMnB,EAAgB/0F,KAAKm2G,oBAAoBmH,EAAcpnB,GAC7D,YAAKsnB,oBAAoBzoB,GAClBA,CACT,CAEAohB,oBAAoBmH,EAAmBpnB,GACrC,OAAO+f,0CAA4DqH,EAAct9G,KAAMk2F,EACzF,CAEAsnB,oBAAoBzoB,GAClBA,EAAcvJ,mBACdxrF,KAAKsrF,WAAWyJ,EAClB,CAOA0oB,sBAAsBlyB,GACpB,OAAOvrF,KAAKwvG,qBAAsB3W,GACzBA,EAAGtN,WAAaA,EAE3B,CAEAmyB,gCAAgC1oB,GAC9B,OAAOh1F,KAAKwvG,qBAAqB3W,GAAMA,EAAG7D,cAAgBA,EAC5D,CASAwa,qBAAqBxhG,GACnB,MAAMsD,EAA+B,GACrC,UAAWunF,KAAM74F,KAAK29G,kBAChB3vG,EAAShO,KAAK29G,kBAAkB9kB,KAClCvnF,EAAO1I,KAAK5I,KAAK29G,kBAAkB9kB,IAIvC,OAAOvnF,CACT,CAEAssG,4BACE,MAAMC,EAAoC,GAC1C,UAAWhlB,KAAM74F,KAAK29G,kBAChB39G,KAAK29G,kBAAkB9kB,GAAItN,WAAa0D,0BAC1C4uB,EAAaj1G,KAAK5I,KAAK29G,kBAAkB9kB,IAG7C,OAAOglB,CACT,CAEAvQ,yBAAyBt/F,GACvB,MAAMsD,EAAuB,GAE7B,UAAWwsG,KAAO99G,KAAK+9G,mBAAoB,CACzC,MAAMlB,EAAS78G,KAAKg+G,kBAAkBF,GAClC9vG,EAAS6uG,IACXvrG,EAAO1I,KAAKi0G,EAAM,CAItB,OAAOvrG,CACT,CAEA2sG,2BAA2BjwG,GACzB,MAAMsD,EAAqC,GAE3C,UAAWwsG,KAAO99G,KAAK+9G,mBAAoB,CACzC,MAAMlB,EAAS78G,KAAKk+G,eAAeJ,GAC/BjB,aAAkBH,IAChB1uG,EAAS6uG,IACXvrG,EAAO1I,KAAKi0G,EAAM,CAKxB,OAAOvrG,CACT,CAEA6sG,6BAA6BnwG,GAC3B,MAAMsD,EAAuC,GAE7C,UAAWwsG,KAAO99G,KAAK+9G,mBAAoB,CACzC,MAAMlB,EAAS78G,KAAKo+G,iBAAiBN,GACjCjB,aAAkBD,IAChB5uG,EAAS6uG,IACXvrG,EAAO1I,KAAKi0G,EAAM,CAKxB,OAAOvrG,CACT,CAEA2qF,4BAA4BjuF,GAC1B,MAAMsD,EAAsC,GAE5C,UAAWwsG,KAAO99G,KAAK+9G,mBAAoB,CACzC,MAAMlB,EAAS78G,KAAKq+G,wBAAwBP,GACxCjB,aAAkBxE,IAChBrqG,EAAS6uG,IACXvrG,EAAO1I,KAAKi0G,EAAM,CAKxB,OAAOvrG,CACT,CAEAgtG,cAActwG,GACZ,MAAMsD,EAAoC,GAC1C,UAAW3H,KAAK3J,KAAKu+G,uBACfvwG,EAAShO,KAAKu+G,uBAAuB50G,KACvC2H,EAAO1I,KAAK5I,KAAKu+G,uBAAuB50G,IAI5C,OAAO2H,CACT,CAEAktG,iBAAiBxwG,GACf,MAAMsD,EAA2B,GACjC,UAAW3H,KAAK3J,KAAKy+G,cACfzwG,EAAShO,KAAKy+G,cAAc90G,KAC9B2H,EAAO1I,KAAK5I,KAAKy+G,cAAc90G,IAInC,OAAO2H,CACT,CAEAotG,yBACE,OAAO1+G,KAAKw+G,iBAAiBp9D,IAAMA,EAAEi7D,kBAAkB,EACzD,CAEAhxB,sBAAsBngF,GACpB,OAAOlL,KAAKu+G,uBAAuBrzG,EACrC,CAEAq0F,iBAAiBr0F,GACf,OAAOlL,KAAK29G,kBAAkBzyG,EAChC,CAEAyzG,qBAAqBzzG,GACnB,OAAOlL,KAAK29G,kBAAkBzyG,GAAI9H,IACpC,CAEAw7G,gCACE,OAAO5+G,KAAKi8F,4BAA4B,KAAM,GAAM10F,IAAIoC,GAAKA,EAAEuB,GACjE,CAEA2zG,+BACE,OAAO7+G,KAAKi+G,2BAA2B,KAAM,GAAM12G,IAAIoC,GAAKA,EAAEuB,GAChE,CAEA4zG,0BACE,OAAO9+G,KAAKstG,yBAAyB,KAAM,GAAM/lG,IAAIoC,GAAKA,EAAEuB,GAC9D,CAEA6zG,iCACE,OAAO/+G,KAAKm+G,6BAA6B,KAAM,GAAM52G,IAAIoC,GAAKA,EAAEuB,GAClE,CAEA8yG,kBAAkB9yG,GAChB,OAAOlL,KAAK+9G,mBAAmB7yG,EACjC,CAEAmzG,wBAAwBnzG,GACtB,MAAMvB,EAAI3J,KAAK+9G,mBAAmB7yG,GAClC,OAAOvB,aAAa0uG,GAAuB1uG,OAAIsE,CACjD,CAEAiwG,eAAehzG,GACb,MAAMvB,EAAI3J,KAAK+9G,mBAAmB7yG,GAClC,OAAOvB,aAAa+yG,GAAsB/yG,OAAIsE,CAChD,CAEAmwG,iBAAiBlzG,GACf,MAAMvB,EAAI3J,KAAK+9G,mBAAmB7yG,GAClC,OAAOvB,aAAaizG,GAAwBjzG,OAAIsE,CAClD,CAEA0kG,iCAAiCkF,GAC/B,OAAOlsG,OAAO+N,QAAQ1Z,KAAK+9G,oBACxBhmG,OAAO2/D,GAASA,EAAM,GAAGmgC,uBAAyBA,GAClDtwG,IAAImwE,GAASA,EAAM,GACxB,CAEAw1B,kCAAkChR,GAChC,OAAOvwF,OAAO+N,QAAQ1Z,KAAK+9G,oBACxBhmG,OAAO2/D,GAASA,EAAM,GAAGwkB,wBAA0BA,GACnD30F,IAAImwE,GAASA,EAAM,GACxB,CAEAsnC,mBAAmB7qB,GACjB,OAAOxoF,OAAO+N,QAAQ1Z,KAAK+9G,oBACxBhmG,OACC2/D,GAASA,EAAM,GAAGmgC,uBAAyB1jB,GAAmBzc,EAAM,GAAGwkB,wBAA0B/H,GAElG5sF,IAAImwE,GAASA,EAAM,GACxB,CAEAunC,gBAAgB9qB,GACd,MAAMioB,EAAY,IAAID,GAAU,GAAIn8G,MACpCo8G,SAAUjoB,gBAAkBA,EAE5Bn0F,KAAKsrF,WAAW8wB,GACTA,CACT,CAEA8C,aAAah0G,GACX,OAAOlL,KAAKy+G,cAAcvzG,EAC5B,CAEAi0G,+BAA+Bj0G,GAC7B,IAAIkxG,EACJ,UAAWh7D,KAAKphD,KAAKy+G,cACfz+G,KAAKy+G,cAAcr9D,GAAG+yC,kBAAoBjpF,IAC5CkxG,EAAYp8G,KAAKy+G,cAAcr9D,IAGnC,OAAOg7D,CACT,CAEA3K,mBAAmBvmG,GACjB,OAAOlL,KAAKo/G,oBAAoBl0G,EAClC,CAEAm0G,cAAcn0G,GACZ,OAAOlL,KAAK29G,kBAAkBzyG,IAAOlL,KAAK+9G,mBAAmB7yG,IAAOlL,KAAKo/G,oBAAoBl0G,EAC/F,CAEAuxF,gBAAgBt/C,GAEd,MAAMmiE,EAA4BniE,EAAI8tC,+BACtC,UAAWzwD,KAAS8kF,EAEd9kF,aAAiB+vD,GACf/vD,EAAMyyD,kBAAoB9vC,GAAOn9C,KAAKu+G,uBAAuB/jF,EAAMtvB,KACrElL,KAAKy8F,gBAAgBjiE,GAGvBx6B,KAAKy8F,gBAAgBjiE,GAIrB2iB,aAAe23C,UACV90F,KAAK29G,kBAAkBxgE,EAAIjyC,IACzBiyC,aAAeotC,IACxBvqF,KAAKu/G,4BAA4BpiE,UAC1Bn9C,KAAKu+G,uBAAuBphE,EAAIjyC,KAC9BiyC,aAAeq6D,UACjBx3G,KAAK+9G,mBAAmB5gE,EAAIjyC,IAC1BiyC,aAAeg/D,UACjBn8G,KAAKy+G,cAActhE,EAAIjyC,WAEvBlL,KAAKo/G,oBAAoBjiE,EAAIjyC,IAGtClL,KAAKw/G,eAAeriE,EAAIjyC,GAC1B,CAEQq0G,4BAA4B10B,GAClC7qF,KAAKk9G,iCAAiCpkG,KAAK+xE,GAC3C7qF,KAAKy/G,oBAAoBC,iDAAiD70B,EAAG3/E,GAC/E,CAEAy0G,wBAAwBz0G,GACtB,MAAM2tF,EAAK74F,KAAKu/F,iBAAiBr0F,GAOjC,GAJAlL,KAAK4/G,sBAAsB/mB,EAAG3tF,IAI1B2tF,aAAcX,GAAuB,CAEvC,MAAM2nB,EAA4B7/G,KAAKwvG,qBACrCsQ,GAAOA,aAAe1N,IAGxB,UAAW2N,KAA4BF,EACrCE,EAAyBvN,kDAAkD3Z,EAAG3tF,GAAE,CAMpF,GAAI2tF,aAAcI,GAA6B,CAC7C,MAAM+mB,EAA0BhgH,KAAKwvG,qBACnCyQ,GAAMA,aAAcnL,GAEtB,UAAWhiB,KAAuBktB,EAChCltB,EAAoByf,wBAAwB1Z,EAAG3tF,IAGjD,MAAMg1G,EAAwBlgH,KAAKwvG,qBACjCyQ,GAAMA,aAAc3L,GAEtB,UAAWzhB,KAAqBqtB,EAC9BrtB,EAAkB8hB,mBAAmB9b,EAAG3tF,GAAE,CAI9ClL,KAAKy8F,gBAAgB5D,EACvB,CAEAsnB,yBAAyBj1G,GACvB,MAAMkqG,EAAKp1G,KAAKg+G,kBAAkB9yG,GAClClL,KAAKy8F,gBAAgB2Y,EACvB,CAGAwK,sBAAsBzrB,GACpB,MAAMioB,EAAYp8G,KAAKm/G,+BAA+BhrB,GAClDioB,GACFp8G,KAAKy8F,gBAAgB2f,GAEvB,MAAMgE,EAAsBpgH,KAAK09G,gCAAgCvpB,GAEjE,QAAS3vF,EAAI,EAAGA,EAAI47G,EAAoB37G,OAAQD,IAAK,CACnDxE,KAAK2/G,wBAAwBS,EAAoB57G,GAAG0G,IACpD,MAAMiqG,EAAUn1G,KAAKstG,yBAA0B8H,GAE3CA,EAAGyC,uBAAyBuI,EAAoB57G,GAAG0G,IACnDkqG,EAAGlZ,wBAA0BkkB,EAAoB57G,GAAG0G,IAGxD,UAAWkqG,KAAMD,EACfn1G,KAAKmgH,yBAAyB/K,EAAGlqG,GAAE,CAGzC,CAEAoqF,eACEt1F,KAAK6sG,UAAW,EAEhB,UAAWljG,KAAKgC,OAAOtE,KAAKrH,KAAK+9G,oBAC/B/9G,KAAK+9G,mBAAmBp0G,GAAG2rF,eAG7B,UAAW/mE,KAAK5iB,OAAOtE,KAAKrH,KAAK29G,mBAC/B39G,KAAK29G,kBAAkBpvF,GAAG+mE,cAE9B,CAEA+qB,kBAAkBtrB,GAChB/0F,KAAK29G,kBAAkB5oB,EAAc7pF,IAAIugF,gBAAgBsJ,EAC3D,CAEAurB,iBAAiB3tE,GACfA,EAAGu3C,aAAalqF,KAAK46G,cACrBjoE,EAAG83C,wBACHzqF,KAAK46G,aAAanvB,gBAAgB94C,EACpC,CAGA4tE,iCAEEvgH,KAAKwgH,iBAAiBC,2BACpB,IAAIrF,GAAkB,eAAiBsF,GAC9BA,EAAGn1B,WAAa0D,cAG3BjvF,KAAKwgH,iBAAiBC,2BACpB,IAAIrF,GAAkB,eAAiBsF,GAC9BA,EAAGn1B,WAAa0D,cAG3BjvF,KAAKwgH,iBAAiBC,2BACpB,IAAIrF,GAAkB,mBAAqBsF,GAClCA,EAAGn1B,WAAa0D,kBAG3BjvF,KAAKwgH,iBAAiBC,2BACpB,IAAIrF,GAAkB,kBAAoBsF,GACjCA,EAAGn1B,WAAa0D,uBAG3BjvF,KAAKwgH,iBAAiBC,2BACpB,IAAIrF,GAAkB,YAAcsF,GAC3BA,EAAGn1B,WAAa0D,kBAG3BjvF,KAAKwgH,iBAAiBC,2BACpB,IAAIrF,GAAkB,sBAAwBsF,GACrCA,EAAGn1B,WAAa0D,0BAG3BjvF,KAAKwgH,iBAAiBC,2BACpB,IAAIrF,GAAkB,qBAAuBsF,GACpCA,EAAGn1B,WAAa0D,0BAG7B,CAEA0xB,6CACE3gH,KAAKwgH,iBAAiBI,+BACpB,IAAIxF,GAAkB,kBAAoBsF,GACjCA,aAAc9jB,KAIzB58F,KAAKwgH,iBAAiBI,+BACpB,IAAIxF,GAAkB,aAAcviB,GAC3BA,aAAcuH,KAIzBpgG,KAAKwgH,iBAAiBI,+BACpB,IAAIxF,GAAkB,gBAAiBzoE,GAC9BA,aAAcgoE,KAIzB36G,KAAKwgH,iBAAiBI,+BACpB,IAAIxF,GAAkB,eAAgBzoE,GAC7BA,aAAc8sD,KAIzBz/F,KAAKwgH,iBAAiBI,+BACpB,IAAIxF,GAAkB,eAAgBzoE,GAC7BA,aAAc0qD,KAIzBr9F,KAAKwgH,iBAAiBI,+BACpB,IAAIxF,GAAkB,sBAAuBzoE,GACpCA,aAAc4wD,KAIzBvjG,KAAKwgH,iBAAiBI,+BACpB,IAAIxF,GAAkB,mBAAoBzoE,GACjCA,aAAc6wD,KAIzBxjG,KAAKwgH,iBAAiBI,+BACpB,IAAIxF,GAAkB,YAAazoE,GAC1BA,aAAcwvD,KAIzBniG,KAAKwgH,iBAAiBI,+BACpB,IAAIxF,GAAkB,qBAAsBzoE,GACnCA,aAAcknD,KAIzB75F,KAAKwgH,iBAAiBI,+BACpB,IAAIxF,GAAkB,yBAA0BzoE,GACvCA,aAAc2uD,KAIzBthG,KAAKwgH,iBAAiBI,+BACpB,IAAIxF,GAAkB,cAAezoE,GAC5BA,aAAc42D,KAIzBvpG,KAAKwgH,iBAAiBI,+BACpB,IAAIxF,GAAkB,QAASzoE,GACtBA,aAAc+sD,IAG3B,CAEAmhB,iDACE7gH,KAAKwgH,iBAAiBI,+BACpB,IAAIxF,GAAkB,kBAAmBzoE,GAChCA,aAAcw1D,KAIzBnoG,KAAKwgH,iBAAiBI,+BACpB,IAAIxF,GAAkB,QAASsF,GACtBA,aAAchhB,KAIzB1/F,KAAKwgH,iBAAiBI,+BACpB,IAAIxF,GAAkB,OAAQzoE,GACrBA,aAAcgzD,KAIzB3lG,KAAKwgH,iBAAiBI,+BACpB,IAAIxF,GAAkB,OAASsF,GACtBA,aAAcla,KAIzBxmG,KAAKwgH,iBAAiBI,+BACpB,IAAIxF,GAAkB,qBAAsBzoE,GACnCA,aAAcknD,KAIzB75F,KAAKwgH,iBAAiBI,+BACpB,IAAIxF,GAAkB,gBAAiBzoE,GAC9BA,aAAci0D,KAIzB5mG,KAAKwgH,iBAAiBI,+BACpB,IAAIxF,GAAkB,OAAQzoE,GACrBA,aAAc80D,KAIzBznG,KAAKwgH,iBAAiBI,+BACpB,IAAIxF,GAAkB,eAAgBzoE,GAC7BA,aAAcg7D,KAIzB3tG,KAAKwgH,iBAAiBI,+BACpB,IAAIxF,GAAkB,gBAAiBzoE,GAC9BA,aAAc22D,KAIzBtpG,KAAKwgH,iBAAiBI,+BACpB,IAAIxF,GAAkB,gBAAiBzoE,GAC9BA,aAAckhE,KAIzB7zG,KAAKwgH,iBAAiBI,+BACpB,IAAIxF,GAAkB,kBAAmBzoE,GAChCA,aAAc+gE,IAG3B,CAEAoN,8CACE9gH,KAAKwgH,iBAAiBI,+BACpB,IAAIxF,GAAkB,UAAWzoE,GACxBA,aAAc2gE,KAIzBtzG,KAAKwgH,iBAAiBI,+BACpB,IAAIxF,GAAkB,UAAWzoE,GACxBA,aAAci3D,KAIzB5pG,KAAKwgH,iBAAiBI,+BACpB,IAAIxF,GAAkB,kBAAmBzoE,GAChCA,aAAcy3D,KAIzBpqG,KAAKwgH,iBAAiBI,+BACpB,IAAIxF,GAAkB,WAAYzoE,GACzBA,aAAcu4D,KAIzBlrG,KAAKwgH,iBAAiBI,+BACpB,IAAIxF,GAAkB,UAAWzoE,GACxBA,aAAcu5D,KAIzBlsG,KAAKwgH,iBAAiBI,+BACpB,IAAIxF,GAAkB,UAAWzoE,GACxBA,aAAcy5D,KAIzBpsG,KAAKwgH,iBAAiBI,+BACpB,IAAIxF,GAAkB,uBAAwBzoE,GACrCA,aAAc25D,KAIzBtsG,KAAKwgH,iBAAiBI,+BACpB,IAAIxF,GAAkB,QAASzoE,GACtBA,aAAc85D,KAIzBzsG,KAAKwgH,iBAAiBI,+BACpB,IAAIxF,GAAkB,QAASzoE,GACtBA,aAAc88D,KAIzBzvG,KAAKwgH,iBAAiBI,+BACpB,IAAIxF,GAAkB,gBAAiBzoE,GAC9BA,aAAc6iE,IAG3B,CAEAuL,gDACE/gH,KAAKwgH,iBAAiBI,+BACpB,IAAIxF,GAAkB,cAAezoE,GAC5BA,aAAcqiE,IAIzBh1G,KAAKwgH,iBAAiBI,+BACpB,IAAIxF,GAAkB,uBAAwBzoE,GACrCA,aAAc2iE,GAG3B,CAEA0L,mDACEhhH,KAAKwgH,iBAAiBI,+BACpB,IAAIxF,GAAkB,qBAAsBzoE,GACnCA,aAAcknD,IAG3B,CAEAonB,8BACEjhH,KAAKwgH,iBAAiBU,WAAWC,gBAC/B,IAAI/F,GAAkB,YAAcsF,GAC3BA,aAAcnF,KAGzBv7G,KAAKwgH,iBAAiBU,WAAWC,gBAC/B,IAAI/F,GAAkB,eAAiBsF,GAC9BA,EAAGn1B,WAAa0D,cAG3BjvF,KAAKwgH,iBAAiBU,WAAWC,gBAC/B,IAAI/F,GAAkB,mBAAqBsF,GAClCA,EAAGn1B,WAAa0D,kBAG3BjvF,KAAKwgH,iBAAiBU,WAAWC,gBAC/B,IAAI/F,GAAkB,eAAiBsF,GAC9BA,EAAGn1B,WAAa0D,cAG3BjvF,KAAKwgH,iBAAiBU,WAAWC,gBAC/B,IAAI/F,GAAkB,sBAAwBsF,GACrCA,EAAGn1B,WAAa0D,0BAG3BjvF,KAAKwgH,iBAAiBU,WAAWC,gBAC/B,IAAI/F,GAAkB,kBAAoBsF,GACjCA,EAAGn1B,WAAa0D,uBAG3BjvF,KAAKwgH,iBAAiBU,WAAWC,gBAC/B,IAAI/F,GAAkB,YAAcsF,GAC3BA,EAAGn1B,WAAa0D,kBAG3BjvF,KAAKwgH,iBAAiBU,WAAWC,gBAC/B,IAAI/F,GAAkB,aAAesF,GAC5BA,EAAGn1B,WAAa0D,kBAG3BjvF,KAAKwgH,iBAAiBU,WAAWC,gBAC/B,IAAI/F,GAAkB,yBAA2BsF,GACxCA,EAAGn1B,WAAa0D,4BAG3BjvF,KAAKohH,qBACP,CAEAC,kCACErhH,KAAKwgH,iBAAiBU,WAAWC,gBAC/B,IAAI/F,GAAkB,kBAAoBsF,GACjCA,EAAGn1B,WAAa0D,uBAG3BjvF,KAAKwgH,iBAAiBU,WAAWC,gBAC/B,IAAI/F,GAAkB,gBAAkBsF,GAC/BA,EAAGn1B,WAAa0D,qBAG3BjvF,KAAKwgH,iBAAiBU,WAAWC,gBAC/B,IAAI/F,GAAkB,QAAUsF,GACvBA,EAAGn1B,WAAa0D,cAG3BjvF,KAAKwgH,iBAAiBU,WAAWC,gBAC/B,IAAI/F,GAAkB,gBAAkBsF,GAC/BA,EAAGn1B,WAAa0D,qBAG3BjvF,KAAKwgH,iBAAiBU,WAAWC,gBAC/B,IAAI/F,GAAkB,OAASsF,GACtBA,EAAGn1B,WAAa0D,aAG3BjvF,KAAKwgH,iBAAiBU,WAAWC,gBAC/B,IAAI/F,GAAkB,OAASsF,GACtBA,EAAGn1B,WAAa0D,aAG3BjvF,KAAKwgH,iBAAiBU,WAAWC,gBAC/B,IAAI/F,GAAkB,qBAAuBsF,GACpCA,EAAGn1B,WAAa0D,2BAG3BjvF,KAAKwgH,iBAAiBU,WAAWC,gBAC/B,IAAI/F,GAAkB,gBAAkBsF,GAC/BA,EAAGn1B,WAAa0D,sBAG3BjvF,KAAKwgH,iBAAiBU,WAAWC,gBAC/B,IAAI/F,GAAkB,oBAAsBsF,GACnCA,EAAGn1B,WAAa0D,yBAG3BjvF,KAAKwgH,iBAAiBU,WAAWC,gBAC/B,IAAI/F,GAAkB,oBAAsBsF,GACnCA,EAAGn1B,WAAa0D,yBAG3BjvF,KAAKwgH,iBAAiBU,WAAWC,gBAC/B,IAAI/F,GAAkB,OAASsF,GACtBA,EAAGn1B,WAAa0D,aAG3BjvF,KAAKwgH,iBAAiBU,WAAWC,gBAC/B,IAAI/F,GAAkB,eAAiBsF,GAC9BA,EAAGn1B,WAAa0D,oBAG3BjvF,KAAKwgH,iBAAiBU,WAAWC,gBAC/B,IAAI/F,GAAkB,gBAAkBsF,GAC/BA,EAAGn1B,WAAa0D,sBAG3BjvF,KAAKwgH,iBAAiBU,WAAWC,gBAC/B,IAAI/F,GAAkB,gBAAkBsF,GAC/BA,EAAGn1B,WAAa0D,qBAG3BjvF,KAAKwgH,iBAAiBU,WAAWC,gBAC/B,IAAI/F,GAAkB,kBAAoBsF,GACjCA,EAAGn1B,WAAa0D,uBAG3BjvF,KAAKohH,qBACP,CAEAE,+BACEthH,KAAKwgH,iBAAiBU,WAAWC,gBAC/B,IAAI/F,GAAkB,UAAYsF,GACzBA,EAAGn1B,WAAa0D,qBAG3BjvF,KAAKwgH,iBAAiBU,WAAWC,gBAC/B,IAAI/F,GAAkB,0BAA4BsF,GACzCA,EAAGn1B,WAAa0D,qBAG3BjvF,KAAKwgH,iBAAiBU,WAAWC,gBAC/B,IAAI/F,GAAkB,sBAAwBsF,GACrCA,EAAGn1B,WAAa0D,2BAG3BjvF,KAAKwgH,iBAAiBU,WAAWC,gBAC/B,IAAI/F,GAAkB,qBAAuBsF,GACpCA,EAAGn1B,WAAa0D,yBAG3BjvF,KAAKwgH,iBAAiBU,WAAWC,gBAC/B,IAAI/F,GAAkB,kBAAoBsF,GACjCA,EAAGn1B,WAAa0D,4BAG3BjvF,KAAKwgH,iBAAiBU,WAAWC,gBAC/B,IAAI/F,GAAkB,WAAasF,GAC1BA,EAAGn1B,WAAa0D,sBAG3BjvF,KAAKwgH,iBAAiBU,WAAWC,gBAC/B,IAAI/F,GAAkB,UAAYsF,GACzBA,EAAGn1B,WAAa0D,qBAG3BjvF,KAAKwgH,iBAAiBU,WAAWC,gBAC/B,IAAI/F,GAAkB,UAAYsF,GACzBA,EAAGn1B,WAAa0D,qBAG3BjvF,KAAKwgH,iBAAiBU,WAAWC,gBAC/B,IAAI/F,GAAkB,uBAAyBsF,GACtCA,EAAGn1B,WAAa0D,gCAG3BjvF,KAAKwgH,iBAAiBU,WAAWC,gBAC/B,IAAI/F,GAAkB,QAAUsF,GACvBA,EAAGn1B,WAAa0D,mBAG3BjvF,KAAKwgH,iBAAiBU,WAAWC,gBAC/B,IAAI/F,GAAkB,SAAWsF,GACxBA,EAAGn1B,WAAa0D,oBAG3BjvF,KAAKwgH,iBAAiBU,WAAWC,gBAC/B,IAAI/F,GAAkB,wBAA0BsF,GACvCA,EAAGn1B,WAAa0D,mBAG3BjvF,KAAKwgH,iBAAiBU,WAAWC,gBAC/B,IAAI/F,GAAkB,wBAA0BsF,GACvCA,EAAGn1B,WAAa0D,mBAG3BjvF,KAAKwgH,iBAAiBU,WAAWC,gBAC/B,IAAI/F,GAAkB,gCAAkCsF,GAC/CA,aAAcnS,KAGzBvuG,KAAKwgH,iBAAiBU,WAAWC,gBAC/B,IAAI/F,GAAkB,gBAAkBsF,GAC/BA,EAAGn1B,WAAa0D,2BAG3BjvF,KAAKohH,qBACP,CAEAG,iCACEvhH,KAAKwgH,iBAAiBU,WAAWC,gBAC/B,IAAI/F,GAAkB,cAAgBsF,GAC7BA,EAAGn1B,WAAa0D,uBAG3BjvF,KAAKwgH,iBAAiBU,WAAWC,gBAC/B,IAAI/F,GAAkB,SAAWsF,GACxBA,EAAGn1B,WAAa0D,sBAG3BjvF,KAAKwgH,iBAAiBU,WAAWC,gBAC/B,IAAI/F,GAAkB,YAAcsF,GAC3BA,EAAGn1B,WAAa0D,qBAG3BjvF,KAAKwgH,iBAAiBU,WAAWC,gBAC/B,IAAI/F,GAAkB,UAAYsF,GACzBA,EAAGn1B,WAAa0D,2BAG3BjvF,KAAKwgH,iBAAiBU,WAAWC,gBAC/B,IAAI/F,GAAkB,WAAasF,GAC1BA,EAAGn1B,WAAa0D,6BAG3BjvF,KAAKwgH,iBAAiBU,WAAWC,gBAC/B,IAAI/F,GAAkB,mBAAqBsF,GAClCA,EAAGn1B,WAAa0D,+BAG3BjvF,KAAKohH,qBACP,CAEAA,sBACEphH,KAAKwgH,iBAAiBU,WAAWC,gBAC/B,IAAI/F,GAAkB,UAAYsF,GACzBA,aAAclJ,KAGzBx3G,KAAKwgH,iBAAiBU,WAAWC,gBAC/B,IAAI/F,GAAkB,QAAUsF,GACvBA,EAAGn1B,WAAa0D,qBAK3BjvF,KAAKwgH,iBAAiBC,2BACpB,IAAIrF,GAAkB,eAAiBsF,GAC9BA,EAAGn1B,WAAa0D,cAG3BjvF,KAAKwgH,iBAAiBC,2BACpB,IAAIrF,GAAkB,eAAiBsF,GAC9BA,EAAGn1B,WAAa0D,cAG3BjvF,KAAKwgH,iBAAiBC,2BACpB,IAAIrF,GAAkB,mBAAqBsF,GAClCA,EAAGn1B,WAAa0D,kBAG3BjvF,KAAKwgH,iBAAiBC,2BACpB,IAAIrF,GAAkB,kBAAoBsF,GACjCA,EAAGn1B,WAAa0D,uBAG3BjvF,KAAKwgH,iBAAiBC,2BACpB,IAAIrF,GAAkB,YAAcsF,GAC3BA,EAAGn1B,WAAa0D,kBAG3BjvF,KAAKwgH,iBAAiBC,2BACpB,IAAIrF,GAAkB,sBAAwBsF,GACrCA,EAAGn1B,WAAa0D,0BAG3BjvF,KAAKwgH,iBAAiBC,2BACpB,IAAIrF,GAAkB,qBAAuBsF,GACpCA,EAAGn1B,WAAa0D,0BAG7B,CAEAuyB,4BACExhH,KAAKy/G,oBAAoB0B,gBACvB,IAAI/F,GAAkB,kBAAoBsF,GACjCA,aAAc5rB,IAG3B,CAGAxJ,WAAWnuC,GACLA,aAAe23C,GACjB90F,KAAK29G,kBAAkBxgE,EAAIjyC,IAAMiyC,EACxBA,aAAeotC,GACxBvqF,KAAKu+G,uBAAuBphE,EAAIjyC,IAAMiyC,EAC7BA,aAAeq6D,GACxBx3G,KAAK+9G,mBAAmB5gE,EAAIjyC,IAAMiyC,EACzBA,aAAeg/D,GACxBn8G,KAAKy+G,cAActhE,EAAIjyC,IAAMiyC,EAE7Bn9C,KAAKo/G,oBAAoBjiE,EAAIjyC,IAAMiyC,CAEvC,CAEAskE,0BAA0Br+G,GACxB,UAAWy1F,KAAM74F,KAAK29G,kBACpB,GAAI39G,KAAK29G,kBAAkB9kB,GAAIz1F,OAASA,EACtC,OAAO,EAGX,OAAO,CACT,CAEAs+G,oBAAoBC,GACN3hH,KAAKwvG,qBAAqB3W,GAC5BA,EAAWzE,kBAAoButB,GAErCh8G,QAAQkzF,IACGA,EACRzE,gBAAkB,IAE3B,CAEAwtB,2BAA2BC,GACzB,IAAIC,EAAY,EAChB,UAAWjpB,KAAM74F,KAAK29G,kBAChB39G,KAAKyhH,0BAA0B,GAAGI,KAAgBC,MACpDA,IAGJ,MAAO,GAAGD,KAAgBC,GAC5B,CAEAC,4BAA4BF,GAC1B,IAAIr9G,EACJ,IAAKA,EAAI,EAAGA,EAAImH,OAAOtE,KAAKrH,KAAK+9G,oBAAoBt5G,QAC3BzE,KAAKstG,yBAAyB3jG,GAAKA,EAAEvG,OAAS,UAAUoB,EAAI,KAC/DC,OAFsCD,KAM7D,MAAO,GAAGq9G,KAAgBr9G,EAAI,GAChC,CAEAg7G,eAAewC,GAGb,MAAMC,EAFmBjiH,KAAKkiH,aAAanqG,OAAOuf,GAAKA,EAAE6qF,UAAYH,GAEpCz6G,IAAI+vB,GAAKt3B,KAAKkiH,aAAahxG,QAAQomB,IAEpE,UAAW8qF,KAAgBH,EACzBjiH,KAAKkiH,aAAa/wG,OAAOixG,EAAc,EAE3C,CAIAC,mBACE,OAAOriH,KAAKsiH,OACd,CAMAC,iBAAiBD,GACftiH,KAAKsiH,QAAUA,CACjB,CAEAE,qBACE,OAAOxiH,KAAKyiH,eACd,CAEAC,mBAAmBtG,GACjBp8G,KAAKyiH,gBAAkBrG,CACzB,CAEAuG,qBACE,OAAO3iH,KAAKg1F,WACd,CAMA4tB,mBAAmB5tB,GACjBh1F,KAAKg1F,YAAcA,CACrB,CAGOjJ,SACL,MAAO,CACLR,SAAUvrF,KAAKurF,SACfrgF,GAAIlL,KAAKkL,GACT9H,KAAMpD,KAAKoD,KACX+xF,SAAUn1F,KAAKm1F,SACf0X,SAAU7sG,KAAK6sG,SACfuQ,QAASp9G,KAAKo9G,QACd5B,WAAYx7G,KAAKw7G,WAAWtwG,GAC5B0vG,aAAc56G,KAAK46G,aAAa1vG,GAChCs1G,iBAAkBxgH,KAAKwgH,iBAAiBt1G,GACxC23G,aAAc7iH,KAAK6iH,aAAa33G,GAChC43G,kBAAmB9iH,KAAK8iH,kBAAkB53G,GAC1CyyG,kBAAmB39G,KAAK29G,kBACxBI,mBAAoB/9G,KAAK+9G,mBACzBQ,uBAAwBv+G,KAAKu+G,uBAC7Ba,oBAAqBp/G,KAAKo/G,oBAC1BX,cAAez+G,KAAKy+G,cACpBsE,2BAA4B/iH,KAAK+iH,2BACjCC,qBAAsBhjH,KAAKgjH,qBAC3BhuB,YAAah1F,KAAKg1F,YAClB8Q,YAAa9lG,KAAK8lG,YAClBnG,mBAAoB3/F,KAAK2/F,mBACzB8f,oBAAqBz/G,KAAKy/G,oBAAoBv0G,GAC9Cg3G,aAAcliH,KAAKkiH,aAEvB,ECtrCI,MAAOe,WAAkBp5B,GAK7BhqF,YAAYqjH,EAAgBp5B,GAC1BhqF,MAAMojH,EAAUh4G,GAAI4+E,GALtB9pF,cAAW,YAMLkjH,EAAUC,8BAA8B54B,KAC1CvqF,KAAKmjH,mBAAqBnjH,KAAK8pF,UAAUuB,sBAAsB63B,EAAUC,mBAAmBj4G,IAC5FlL,KAAKojH,oBAAoBF,GAE7B,CAEUE,oBAAoBF,GAE1BljH,KAAK49F,aAAe,IAAIrT,GADI,MAA1B24B,EAAUtlB,aAEV,CACE1xF,MAAuC,KAAhClM,KAAKmjH,mBAAmBj3G,MAC/BizD,KAAMn/D,KAAKmjH,mBAAmBhkD,KAC9B+tB,SAAUltF,KAAKmjH,mBAAmBj2B,UAOpC,CACEhhF,MAAOg3G,EAAUtlB,aAAa1xF,MAC9BizD,KAAM+jD,EAAUtlB,aAAaz+B,KAC7B+tB,SAAUltF,KAAKmjH,mBAAmBj2B,UARpCltF,KAAK8pF,UACL9pF,MAeFA,KAAK29F,aAAe,IAAIpT,GADI,MAA1B24B,EAAUvlB,aAEV,CACEzxF,MAAuC,IAAhClM,KAAKmjH,mBAAmBj3G,MAC/BizD,KAAMn/D,KAAKmjH,mBAAmBhkD,KAC9B+tB,SAAUltF,KAAKmjH,mBAAmBj2B,UAOpC,CACEhhF,MAAOg3G,EAAUvlB,aAAazxF,MAC9BizD,KAAM+jD,EAAUvlB,aAAax+B,KAC7B+tB,SAAUltF,KAAKmjH,mBAAmBj2B,UARpCltF,KAAK8pF,UACL9pF,KAaN,CAESyqF,wBACPzqF,KAAK49F,aAAa1xF,MAAQlM,KAAK49F,aAAanT,wBAC5CzqF,KAAK29F,aAAazxF,MAAQlM,KAAK29F,aAAalT,uBAC9C,CAESgB,gBAAgBhyD,GACvBz5B,KAAK29F,aAAalS,gBAAgBhyD,EAAEkkE,cACpC39F,KAAK49F,aAAanS,gBAAgBhyD,EAAEmkE,aACtC,CAEShT,8BACP5qF,KAAK49F,aAAa9S,mBAAmB9qF,MACrCA,KAAK29F,aAAa7S,mBAAmB9qF,KACvC,CAESksF,UAAUC,GACjBnsF,KAAKmjH,mBAAqBnjH,KAAK8pF,UAAUuB,sBAAsBc,EAAag3B,oBAC5EnjH,KAAK49F,aAAe59F,KAAKorF,0BAA0Be,EAAayR,cAChE59F,KAAK29F,aAAe39F,KAAKorF,0BAA0Be,EAAawR,aAClE,CAEO5R,SACL,MAAO,CACL7gF,GAAIlL,KAAKkL,GACT9H,KAAMpD,KAAKoD,KACXmoF,SAAUvrF,KAAKurF,SACf43B,mBAAoBnjH,KAAKmjH,mBAAmBj4G,GAC5C0yF,aAAc59F,KAAK49F,aAAa1yF,GAChCyyF,aAAc39F,KAAK29F,aAAazyF,GAEpC,EC1FI,MAAOm4G,WAA2BJ,GAMtCpjH,YAAYyjH,EAAyBx5B,GACnChqF,MAAMwjH,EAAoBx5B,GANnB9pF,cAAW,qBAOdsjH,EAAmBH,8BAA8B54B,IACnDvqF,KAAKojH,oBAAoBE,EAE7B,CAESF,oBAAoBE,GAC3BxjH,MAAMsjH,oBAAoBE,GAExBtjH,KAAKsO,KAAO,IAAIi8E,GADa,MAA3B+4B,EAAmBh1G,KAEnB,CACE6wD,KAAMn/D,KAAKmjH,mBAAmBhkD,KAC9B+tB,SAAUltF,KAAKmjH,mBAAmBj2B,UAOpC,CACEhhF,MAAOo3G,EAAmBh1G,KAAKpC,MAC/BizD,KAAMmkD,EAAmBh1G,KAAK6wD,KAC9B+tB,SAAUltF,KAAKmjH,mBAAmBj2B,UARpCltF,KAAK8pF,UACL9pF,MAaJA,KAAKujH,iBAAmBD,EAAmBC,kBAAoB,SAC/DvjH,KAAKwjH,mBACsC,MAAzCF,EAAmBE,mBAA6B,IAAOF,EAAmBE,kBAC9E,CAES/4B,wBACP3qF,MAAM2qF,wBACNzqF,KAAKsO,KAAKpC,MAAQlM,KAAKsO,KAAKm8E,uBAC9B,CAESG,8BACP9qF,MAAM8qF,8BACN5qF,KAAKsO,KAAKw8E,mBAAmB9qF,KAC/B,CAESyrF,gBAAgBg4B,GACvB3jH,MAAM2rF,gBAAgBg4B,GACtBzjH,KAAKujH,iBAAmBE,EAAGF,iBAC3BvjH,KAAKsO,KAAKm9E,gBAAgBg4B,EAAGn1G,MAC7BtO,KAAKwjH,mBAAqBC,EAAGD,kBAC/B,CAESt3B,UAAUC,GACjBrsF,MAAMosF,UAAUC,GAChBnsF,KAAKsO,KAAOtO,KAAKorF,0BAA0Be,EAAa79E,MACxDtO,KAAKwjH,oBAAsBr3B,EAAaq3B,mBACxCxjH,KAAKujH,iBAAmBp3B,EAAao3B,iBAErCvjH,KAAK4qF,6BACP,CAEgBmB,SACd,MAAO,CACL7gF,GAAIlL,KAAKkL,GACT9H,KAAMpD,KAAKoD,KACXmoF,SAAUvrF,KAAKurF,SACf43B,mBAAoBnjH,KAAKmjH,mBAAmBj4G,GAC5CoD,KAAMtO,KAAKsO,KAAKpD,GAChB0yF,aAAc59F,KAAK49F,aAAa1yF,GAChCyyF,aAAc39F,KAAK29F,aAAazyF,GAChCs4G,mBAAoBxjH,KAAKwjH,mBACzBD,iBAAkBvjH,KAAKujH,iBAE3B,EChFI,MAAOG,GAOX7jH,YAAY8jH,GALZ3jH,6BAAyC,GACzCA,YAAwB,GAMpBA,KAAK4jH,IAAMD,EAAUC,IACrB5jH,KAAK6jH,wBAA0B/pG,MAAMC,KAAK4pG,EAAUE,yBACpD7jH,KAAK2Z,OAASG,MAAMC,KAAK4pG,EAAUhqG,QACnC3Z,KAAK8jH,SAAWH,EAAUG,SAC1B9jH,KAAK+jH,SAAWJ,EAAUI,QAQ9B,CAEOh4B,SACL,MAAO,CACL63B,IAAK5jH,KAAK4jH,IAAI14G,GACd24G,wBAAyB7jH,KAAK6jH,wBAC9BlqG,OAAQ3Z,KAAK2Z,OACbmqG,SAAU9jH,KAAK8jH,SACfC,SAAU/jH,KAAK+jH,SAEnB,EC9BI,MAAOC,GAaXnkH,YAAYokH,GAERjkH,KAAK4jH,IAAMK,EAAYL,IACvB5jH,KAAKkjH,UAAYe,EAAYf,UAC7BljH,KAAKkkH,oBAAsBD,EAAYC,oBACvClkH,KAAKmkH,WAAaF,EAAYE,WAC9BnkH,KAAKokH,mBAAqBH,EAAYG,mBACtCpkH,KAAKqkH,iBAAmBJ,EAAYI,iBACpCrkH,KAAKskH,YAAcL,EAAYK,YAC/BtkH,KAAKukH,WAAaN,EAAYM,WAC9BvkH,KAAKwkH,WAAaP,EAAYO,WAC9BxkH,KAAKykH,YAAcR,EAAYQ,WAanC,CAEAC,sBAAsB12B,GACpB,OAAO,IAAIzD,GACT,CACEr+E,MAAOlM,KAAKskH,YACZnlD,KAAMn/D,KAAK4jH,IAAIzkD,KACf+tB,SAAUltF,KAAK4jH,IAAI12B,UAErB,KACA,MACAa,qBAAqBC,EACzB,CAEA22B,qBAAqB32B,GACnB,OAAO,IAAIzD,GACT,CACEr+E,MAAOlM,KAAKukH,WACZplD,KAAMn/D,KAAK4jH,IAAIzkD,KACf+tB,SAAUltF,KAAK4jH,IAAI12B,UAErB,KACA,MACAa,qBAAqBC,EACzB,CAEA42B,qBAAqB52B,GACnB,OAAO,IAAIzD,GACT,CACEr+E,MAAOlM,KAAKwkH,WACZrlD,KAAMn/D,KAAK4jH,IAAIzkD,KACf+tB,SAAUltF,KAAK4jH,IAAI12B,UAErB,KACA,MACAa,qBAAqBC,EACzB,CAEOjC,SACL,MAAO,CACL63B,IAAK5jH,KAAK4jH,IAAI14G,GACdg4G,UAAWljH,KAAKkjH,UAAUh4G,GAC1Bg5G,oBAAqBlkH,KAAKkkH,oBAC1BC,WAAYnkH,KAAKmkH,WACjBC,mBAAoBpkH,KAAKokH,mBACzBC,iBAAkBrkH,KAAKqkH,iBACvBC,YAAatkH,KAAKskH,YAClBC,WAAYvkH,KAAKukH,WACjBC,WAAYxkH,KAAKwkH,WACjBC,YAAazkH,KAAKykH,YAEtB,EClFI,MAAOI,WAA4Bh7B,GAQvChqF,YAAYilH,EAA0Bh7B,GAIpC,GAHAhqF,MAAMglH,EAAoB55G,GAAI4+E,GARhC9pF,cAAW,sBACXA,yBAAiD,GAEjDA,4BAAsD,GACtDA,gBAA+B,GAC/BA,uBAAmB,EAIjBA,KAAKoD,KAAO0hH,EAAoB1hH,MAAQ,GAEpC0hH,EAAoBC,+BAA+BjrG,MACrD,UAAW2pG,KAAMqB,EAAoBC,oBACnC/kH,KAAK+kH,oBAAoBn8G,KAAK,IAAIy6G,GAAmBI,EAAIzjH,KAAK8pF,YAGlE,GAAIg7B,EAAoBE,kCAAkClrG,MACxD,UAAWmrG,KAAMH,EAAoBE,uBAC/BC,aAAcjB,IAChBhkH,KAAKglH,uBAAuBp8G,KAAKq8G,GAIvC,GAAIH,EAAoBI,sBAAsBprG,MAC5C,UAAW6pG,KAAamB,EAAoBI,WACtCvB,aAAqBD,IACvB1jH,KAAKklH,WAAWt8G,KAAK+6G,GAI3B3jH,KAAKmlH,WAA+C,MAAlCL,EAAoBK,WAAqB,IAAML,EAAoBK,WAErFnlH,KAAK8pF,UAAUs7B,iCAAiC7sG,UAAWsyE,IAEzD7qF,KAAKqlH,+CAA+Cx6B,GACpD7qF,KAAKslH,oCAAoCz6B,GACzC7qF,KAAKulH,sBAAsB16B,EAAE,GAE/B7qF,KAAK8pF,UAAU07B,kBAAkBjtG,UAAWqrG,IAC1C5jH,KAAKylH,gCAAgC7B,GACrC5jH,KAAKulH,sBAAsB3B,EAAG,EAElC,CAEA8B,mCAAmCx6G,GAC7BlL,KAAK8pF,UAAUuB,sBAAsBngF,IACvClL,KAAK2lH,iCAAiC3lH,KAAK8pF,UAAUuB,sBAAsBngF,GAE/E,CAEAy6G,iCAAiC96B,GAC/B,IAAK7qF,KAAK4lH,oCAAoC/6B,EAAG3/E,IAAK,CACpD,MAAMu4G,EAAK,IAAIJ,GAAmB,CAAEF,mBAAoBt4B,GAAM7qF,KAAK8pF,WACnE,YAAK+7B,aAAapC,GACXA,EAGT,OAAO,IACT,CAEAoC,aAAapC,GACXzjH,KAAK+kH,oBAAoBn8G,KAAK66G,GAC1BzjH,KAAK8lH,mBACP9lH,KAAK8pF,UAAUwB,WAAWm4B,GAC1BzjH,KAAK8pF,UAAUwB,WAAWm4B,EAAGn1G,MAC7BtO,KAAK8pF,UAAUwB,WAAWm4B,EAAG9lB,cAC7B39F,KAAK8pF,UAAUwB,WAAWm4B,EAAG7lB,cAEjC,CAEAmoB,oBAAoB76G,GAClBlL,KAAKgmH,gBAAgBhmH,KAAK+kH,oBAAoBnlF,KAAK6jF,GAAMA,EAAGv4G,KAAOA,GACrE,CAEAo6G,oCAAoCz6B,GAClC,MAAMq4B,EAAYljH,KAAK4lH,oCAAoC/6B,EAAG3/E,IAC1Dg4G,GACFljH,KAAKgmH,gBAAgB9C,EAEzB,CAEA8C,gBAAgB9C,GACd,MAAM7xG,EAAQrR,KAAK+kH,oBAAoB7zG,QAAQgyG,GAC/C,GAAI7xG,GAAQ,EAAI,CACd,MAAM40G,EAAmBjmH,KAAK+kH,oBAAoB5zG,OAAOE,EAAO,GAAG,GACnErR,KAAKkmH,sCAAsCD,GACvCjmH,KAAK8lH,mBACP9lH,KAAK8pF,UAAU2S,gBAAgBwpB,GAC/BjmH,KAAK8pF,UAAU2S,gBAAgBwpB,EAAiBroB,cAChD59F,KAAK8pF,UAAU2S,gBAAgBwpB,EAAiBtoB,cAChD39F,KAAK8pF,UAAU2S,gBAAgBwpB,EAAiB33G,MAAI,CAG1D,CAEAs3G,oCAAoC16G,GAClC,OAAOlL,KAAK+kH,oBAAoBnlF,KAAK6jF,GAAMA,EAAGN,mBAAmBj4G,KAAOA,EAC1E,CAEAi7G,kBAAkBj7G,GAChB,OAAOlL,KAAK+kH,oBAAoBnlF,KAAK6jF,GAAMA,EAAGv4G,KAAOA,EACvD,CAESugF,gBAAgBmf,GACvB,MAAMwb,EAAqBpmH,KAAK+kH,oBAAoBhtG,OAAQ0rG,GACnD7Y,EAAGma,oBAAoB7zG,QAAQ05F,EAAGub,kBAAkB1C,EAAGv4G,KAAO,GAEvE,UAAWuuB,KAAK2sF,EACdpmH,KAAKgmH,gBAAgBvsF,GAEvB,UAAWgqF,KAAM7Y,EAAGma,oBAAqB,CACvC,MAAMsB,EAAoBrmH,KAAK4lH,oCAAoCnC,EAAGN,mBAAmBj4G,IACrFm7G,EACFA,EAAkB56B,gBAAgBg4B,GAElCzjH,KAAK6lH,aAAapC,EAAE,CAGxBzjH,KAAKglH,uBAAyB,GAC9B,UAAWC,KAAMra,EAAGoa,uBAClBhlH,KAAKglH,uBAAuBp8G,KAAKq8G,GAEnCjlH,KAAKklH,WAAa,GAClB,UAAWvB,KAAa/Y,EAAGsa,WACzBllH,KAAKklH,WAAWt8G,KAAK+6G,GAEvB3jH,KAAKmlH,WAAava,EAAGua,UACvB,CAES16B,wBACP,UAAWg5B,KAAMzjH,KAAK+kH,oBAEpBtB,EAAGh5B,wBAELzqF,KAAKmlH,WAAaz3B,cAAcI,iBAAiB9tF,KAAKmlH,WACxD,CAEAM,gCAAgC7B,GAC9B,MAAM0C,EAAkBtmH,KAAKglH,uBAAuBjtG,OAAQktG,GAA6BA,EAAGrB,IAAI14G,KAAO04G,EAAI14G,IAC3G,UAAW+5G,KAAMqB,EACftmH,KAAKglH,uBAAuB7zG,OAAOnR,KAAKglH,uBAAuB9zG,QAAQ+zG,GAAK,EAEhF,CAEAiB,sCAAsChD,GACpC,MAAMoD,EAAkBtmH,KAAKglH,uBAAuBjtG,OAAQktG,GACnDA,EAAG/B,UAAUh4G,KAAOg4G,EAAUh4G,IAEvC,UAAW+5G,KAAMqB,EACftmH,KAAKglH,uBAAuB7zG,OAAOnR,KAAKglH,uBAAuB9zG,QAAQ+zG,GAAK,EAEhF,CAEAI,+CAA+Cx6B,GAC7C7qF,KAAKylH,gCAAgC56B,GACrC,MAAMpxD,EAAIz5B,KAAK4lH,oCAAoC/6B,EAAG3/E,IAClDuuB,GACFz5B,KAAKkmH,sCAAsCzsF,EAE/C,CAEA8rF,sBAAsB3B,GACpB,MAAM0C,EAAkBtmH,KAAKklH,WAAWntG,OAAOzG,GACtCA,EAAOsyG,IAAI14G,KAAO04G,EAAI14G,IAE/B,UAAWq7G,KAAkBD,EAC3BtmH,KAAKklH,WAAW/zG,OAAOnR,KAAKklH,WAAWh0G,QAAQq1G,GAAiB,EAEpE,CAEAjxB,eACEt1F,KAAKglH,uBAAyB,GAC9BhlH,KAAKklH,WAAa,EACpB,CAEOsB,sBACL,GAAIxmH,KAAK8lH,iBACP,UAAWrsF,KAAKz5B,KAAK+kH,oBACnB/kH,KAAK8pF,UAAUwB,WAAW7xD,GAC1Bz5B,KAAK8pF,UAAUwB,WAAW7xD,EAAEnrB,MAC5BtO,KAAK8pF,UAAUwB,WAAW7xD,EAAEmkE,cAC5B59F,KAAK8pF,UAAUwB,WAAW7xD,EAAEkkE,aAGlC,CAESzR,UAAUC,GACjBnsF,KAAK+kH,oBAAsB,GAC3B,UAAW0B,KAAOt6B,EAAa44B,oBAAqB,CAClD,MAAMtB,EAAyBzjH,KAAK8pF,UAAU2nB,mBAAmBgV,GAC7DhD,GACFzjH,KAAK+kH,oBAAoBn8G,KAAK66G,EAAE,CAGpCzjH,KAAK0mH,iBAAiBv6B,EACxB,CAEOu6B,iBAAiBC,GACtB,UAAW1B,KAAM0B,EAAkB3B,uBAAwB,CACzD,MAAMpB,EAAM5jH,KAAK8pF,UAAUuB,sBAAsB45B,EAAGrB,KAC9CV,EAAgCljH,KAAK8pF,UAAU2nB,mBAAmBwT,EAAG/B,WACvEU,GAAOV,IACT+B,EAAGrB,IAAMA,EACTqB,EAAG/B,UAAYA,EACfljH,KAAKglH,uBAAuBp8G,KAAK,IAAIo7G,GAAqBiB,IAAG,CAGjE,GAAI0B,EAAkBzB,WACpB,UAAWvB,KAAagD,EAAkBzB,WAAY,CACpD,MAAMtB,EAAM5jH,KAAK8pF,UAAUuB,sBAAsBs4B,EAAUC,KACvDA,IACFD,EAAUC,IAAMA,EAChB5jH,KAAKklH,WAAWt8G,KAAK,IAAI86G,GAAUC,IAAU,CAIrD,CAEO53B,SACL,MAAO,CACL7gF,GAAIlL,KAAKkL,GACT9H,KAAMpD,KAAKoD,KACXmoF,SAAUvrF,KAAKurF,SACfw5B,oBAAqB/kH,KAAK+kH,oBAAoBx9G,IAAKk8G,GAA2BA,EAAGv4G,IACjFi6G,WAAYnlH,KAAKmlH,WACjBH,uBAAwBhlH,KAAKglH,uBAC7BE,WAAYllH,KAAKklH,WAErB,EC5OI,MAAO0B,GAIX/mH,YAAYgnH,GAFZ7mH,oBAA2B,GAGrB6mH,EAAsBjD,eAAer5B,KACvCvqF,KAAK4jH,IAAMiD,EAAsBjD,IACjC5jH,KAAK8mH,eAAiBhtG,MAAMC,KAAK8sG,EAAsBC,gBAE3D,CAEIriH,aACF,OAAOzE,KAAK8mH,eAAeriH,MAC7B,CAEOsnF,SACL,MAAO,CACL63B,IAAK5jH,KAAK4jH,IAAI14G,GAAGoL,WACjBwwG,eAAgB9mH,KAAK8mH,eAEzB,EClBI,MAAOC,WAAgCl9B,GAQ3ChqF,YAAYmnH,EAA8Bl9B,EAAiBmD,GAGzD,GAFAntF,MAAMknH,EAA0BA,EAAwB97G,GAAK,GAAI4+E,GARnE9pF,cAAW,0BACXA,YAAwB,GASlBgnH,aAAmCr7G,OAAQ,CAC7C,GAAIq7G,EAAwBrtG,kBAAkBG,MAC5C,UAAW5N,KAAS86G,EAAwBrtG,OAC1C3Z,KAAK2Z,OAAO/Q,KAAKsD,GAIrBlM,KAAKm/D,KAAO6nD,EAAwB7nD,KACpCn/D,KAAKktF,SAAW85B,EAAwB95B,SACxCltF,KAAKmtF,eAAiB65B,EAAwB75B,eAC9CntF,KAAKqtF,wBAAsB,MAE3BrtF,KAAKm/D,KAAO,GACZn/D,KAAKktF,SAAW,GAChBltF,KAAKmtF,eAAiB,YAGxBntF,KAAKitF,gBAAkBA,CACzB,CAEAg6B,SAAS/6G,GACPlM,KAAK2Z,OAAO/Q,KAAKsD,EACnB,CAEAg7G,YAAY71G,GACVrR,KAAK2Z,OAAOxI,OAAOE,EAAO,EAC5B,CAEAm8E,YAAYN,GACVltF,KAAKktF,SAAWA,EAChBltF,KAAKqtF,wBACP,CAEAvC,mBAAmBmC,GACjBjtF,KAAKitF,gBAAkBA,CACzB,CAEAQ,iBACE,OAAOC,cAAc1tF,KAAKktF,UAAUO,gBACtC,CAEAE,kBACE,OAAOD,cAAc1tF,KAAKktF,UAAUS,iBACtC,CAEAC,cACE,MAAO,GAAG5tF,KAAKitF,gBAAgB7pF,UAAUpD,KAAKoD,MAChD,CAEA0rF,cACE,MAA+B,cAAxB9uF,KAAKmtF,wBAA0CntF,KAAK2Z,OAAW,KAAsC,IAAvB3Z,KAAK2Z,OAAOlV,OACnG,CAEA4oF,0BAEmB,KAAdrtF,KAAKm/D,MAAen/D,KAAKktF,UACzBltF,KAAKktF,WAAaQ,cAAc1tF,KAAKktF,UAAUsB,eAAexuF,KAAKm/D,SAEpEn/D,KAAKm/D,KAAOn/D,KAAKytF,iBAErB,CAEAjD,qBAAqBL,GACfnqF,KAAK4rF,kBAAkBzB,KACzBnqF,KAAKmtF,eAAiB,gBAE1B,CAEAvB,kBAAkBzB,GAEhB,UAAW3lF,KAAK2lF,EAAQxwE,OAAQ,CAC9B,MAAMg1E,EAAejB,cAAcI,iBACjC3D,EAAQg9B,0BAA0Bh9B,EAAQxwE,OAAOnV,GAAIxE,KAAKm/D,OAGtDyvB,EAAY5uF,KAAKonH,WAAWpnH,KAAK2Z,OAAOnV,IAG9C,KAAIoqF,IAAcD,GAAkBhiE,MAAMgiE,IAAiBhiE,MAAMiiE,IAC/D,OAAO,EAIX,OAAO,CACT,CAEQu4B,0BAA0Bj7G,EAAemiF,GAC/C,OAAKruF,KAAKktF,UAAamB,EAIhBX,cAAc1tF,KAAKktF,UAAUW,QAAQ3hF,EAAOlM,KAAK2tF,kBAAmBU,GAAa9d,QAAQ1hD,WAHvF6+D,cAAcI,iBAAiB5hF,EAI1C,CAESu+E,wBACP,MAAM48B,EAAkB,GAExB,IAAKrnH,KAAKktF,WAAaltF,KAAKm/D,KAAM,CAChC,UAAWjzD,KAASlM,KAAK2Z,OACvB0tG,EAAgBz+G,KAAK8kF,cAAcI,iBAAiB5hF,IAGtD,OAAOm7G,EAGT,UAAWn7G,KAASlM,KAAK2Z,OACvB0tG,EAAgBz+G,KAAK5I,KAAKsnH,2BAA2Bp7G,IAGvD,OAAOm7G,CACT,CAEAC,2BAA2Bp7G,GACzB,OAAOwhF,cAAc1tF,KAAKktF,UAAUW,QAAQ3hF,EAAOlM,KAAKm/D,KAAMn/D,KAAK2tF,mBAAmB9+D,UACxF,CAEA04F,0BAA0Bv5B,EAAmBzd,GAC3C,MAAM82C,EAAkB,GAElBG,GAAoBxnH,KAAKktF,WAAaltF,KAAKm/D,KAEjD,UAAWjzD,KAASlM,KAAK2Z,OACvB,GAAI6tG,EAEAH,EAAgBz+G,KADdolF,EACmBN,cAAcI,iBAAiB5hF,GAE/BwhF,cAAcO,aAAa/hF,QAE7C,CACL,IAAIgiF,EAAaR,cAAc1tF,KAAKktF,UAAUW,QAAQ3hF,EAAOlM,KAAK2tF,kBAAmB3tF,KAAKm/D,MAEtFoR,IACF2d,EAAaA,EAAW3d,SAIxB82C,EAAgBz+G,KADdolF,EACmBE,EAAWr/D,WAEXq/D,EAAWC,SAAQ,CAK9C,OAAOk5B,CACT,CAEAt5B,qBAAqB05B,EAAqBC,GACxC,MAAML,EAAkB,GACxB,UAAWn7G,KAASlM,KAAK2Z,OAAQ,CAC/B,IAAIu0E,EAAaR,cAAc1tF,KAAKktF,UAAUW,QAAQ3hF,EAAOw7G,EAAcD,GAC3Ev5B,EAAaA,EAAW3d,QACxB82C,EAAgBz+G,KAAKslF,EAAWr/D,WAAU,CAE5C,OAAOw4F,CACT,CAEAM,0BAA0B35B,EAAmBzd,EAAgBpR,GAC3D,MAAMkoD,EAAkB,GAExB,UAAWn7G,KAASlM,KAAK2Z,OACvB,GAAK3Z,KAAKktF,SAMH,CACL,IAAIgB,EAAaR,cAAc1tF,KAAKktF,UAAUW,QAAQ3hF,EAAOlM,KAAK2tF,kBAAmBxuB,GACjFoR,IACF2d,EAAaA,EAAW3d,SAIxB82C,EAAgBz+G,KADdolF,EACmBE,EAAWr/D,WAEXq/D,EAAWC,SAAQ,MAbxCk5B,EAAgBz+G,KADdolF,EACmBN,cAAcI,iBAAiB5hF,GAE/BwhF,cAAcO,aAAa/hF,IAgBtD,OAAOm7G,CACT,CAEQD,WAAWl7G,GACjB,OAAOwhF,cAAcI,iBAAiB5hF,EACxC,CAESu/E,gBAAgBtB,GAEvBnqF,KAAKm/D,KAAOgrB,EAAQhrB,KAEpBn/D,KAAK2Z,OAAS,GAEd,UAAWzN,KAASi+E,EAAQxwE,OAC1B3Z,KAAK2Z,OAAO/Q,KAAKsD,GAGnBlM,KAAKmtF,eAAiBhD,EAAQgD,cAChC,CAEgBjB,YAAa,CAEzBznF,aACF,OAAOzE,KAAK2Z,OAAOlV,MACrB,CAEOsnF,SACL,MAAO,CACLR,SAAUvrF,KAAKurF,SACfrgF,GAAIlL,KAAKkL,GACTyO,OAAQ3Z,KAAK2Z,OACbwlD,KAAMn/D,KAAKm/D,KACX+tB,SAAUltF,KAAKktF,SACfC,eAAgBntF,KAAKmtF,eAEzB,ECjOI,MAAOy6B,WAAiC/9B,GAK5ChqF,YAAYqjH,EAAgBp5B,GAC1BhqF,MAAMojH,EAAUh4G,GAAI4+E,GALtB9pF,cAAW,2BAMTA,KAAKk0F,WAAWgvB,EAClB,CAEAhvB,WAAWgvB,GAYT,GAXIA,EAAUC,8BAA8B54B,KAC1CvqF,KAAKmjH,mBAAqBD,EAAUC,oBAGtCnjH,KAAK8mH,eAAiB,IAAIC,GAAwB7D,EAAU4D,eAAgB,KAAM,MAE7E9mH,KAAK8mH,eAAe55B,WACvBltF,KAAK8mH,eAAet5B,YAAYxtF,KAAKmjH,mBAAmBj2B,UACxDltF,KAAK8mH,eAAe3nD,KAAOn/D,KAAKmjH,mBAAmBhkD,MAGjD+jD,EAAU4D,0BAA0BC,GACtC,UAAW/jF,KAAKkgF,EAAU4D,eACxB9mH,KAAK8mH,eAAeG,SAASjkF,EAGnC,CAESynD,wBACP,MAAM48B,EAAkBrnH,KAAK8mH,eAAer8B,wBAE5C,QAASjmF,EAAI,EAAGA,EAAI6iH,EAAgB5iH,OAAQD,IAC1CxE,KAAK8mH,eAAentG,OAAOnV,GAAK6iH,EAAgB7iH,EAEpD,CAEAupF,uBACE,MAAMs5B,EAAkBrnH,KAAK8mH,eAAeS,2BAA0B,GAAM,GAE5E,QAAS/iH,EAAI,EAAGA,EAAI6iH,EAAgB5iH,OAAQD,IAC1CxE,KAAK8mH,eAAentG,OAAOnV,GAAK6iH,EAAgB7iH,EAEpD,CAEAqjH,WACE7nH,KAAK8mH,eAAeG,SAASjnH,KAAKmjH,mBAAmBj3G,MACvD,CAEA47G,kBACE9nH,KAAK8mH,eAAeI,YAAYlnH,KAAK8mH,eAAentG,OAAOlV,OAAS,EACtE,CAGSynF,UAAUC,GACjBnsF,KAAKmjH,mBAAqBnjH,KAAK8pF,UAAUuB,sBAAsBc,EAAag3B,oBAC5EnjH,KAAK8mH,eAAiB,IAAIC,GAAwB56B,EAAa26B,eAAgB,KAAM,KACvF,CAEO/6B,SACL,MAAO,CACL7gF,GAAIlL,KAAKkL,GACT9H,KAAMpD,KAAKoD,KACXmoF,SAAUvrF,KAAKurF,SACf43B,mBAAoBnjH,KAAKmjH,mBAAmBj4G,GAC5C47G,eAAgB9mH,KAAK8mH,eAEzB,EClEI,MAAOiB,WAAwBl+B,GAMnChqF,YAAYmoH,EAAsBl+B,GAChChqF,MAAMkoH,EAAgB98G,GAAI4+E,GAN5B9pF,cAAW,kBAGXA,gBAAyC,GAIvCA,KAAKoD,KAAO4kH,EAAgB5kH,MAAQ,EACtC,CAEAkyF,eACEt1F,KAAKklH,WAAa,EACpB,CAEQI,oCAAoCz6B,GACtC7qF,KAAKkjH,WAAar4B,IAAO7qF,KAAKkjH,UAAUC,qBAC1CnjH,KAAKkjH,eAAYj1G,EACjBjO,KAAKs1F,eAET,CAEQ2yB,kBAAkBrE,GACxB,MAAMp/G,EAAIxE,KAAKklH,WAAW1oB,UAAU9/E,GAAOA,EAAIknG,IAAI14G,KAAO04G,EAAI14G,IAC1D1G,GAAI,GACNxE,KAAKklH,WAAW/zG,OAAO3M,EAAG,EAE9B,CAEA0jH,mCAAmCh9G,GACjC,MAAM2/E,EAAK7qF,KAAK8pF,UAAUuB,sBAAsBngF,GAChD,GAAI2/E,EAAI,CACN,MAAMpxD,EAAI,IAAImuF,GAAyB,CAAEzE,mBAAoBt4B,GAAM7qF,KAAK8pF,WACxE,YAAKq+B,aAAa1uF,GACXA,EAGT,OAAO,IACT,CAEA0uF,aAAajF,GACPljH,KAAKkjH,WACPljH,KAAK8pF,UAAU2S,gBAAgBz8F,KAAKkjH,WAGtCljH,KAAKkjH,UAAYA,EACjBljH,KAAK8pF,UAAUwB,WAAW43B,EAC5B,CAEA8C,kBACMhmH,KAAKkjH,YACPljH,KAAK8pF,UAAU2S,gBAAgBz8F,KAAKkjH,WACpCljH,KAAKkjH,eAAYj1G,EAErB,CAESw8E,wBACP3qF,MAAM2qF,wBAEFzqF,KAAKkjH,WACPljH,KAAKkjH,UAAUz4B,uBAEnB,CAEAsD,uBACM/tF,KAAKkjH,WACPljH,KAAKkjH,UAAUn1B,sBAEnB,CAEAq6B,6BACEpoH,KAAK8pF,UAAUs7B,iCAAiC7sG,UAAUsyE,IACxD7qF,KAAKslH,oCAAoCz6B,EAAE,GAG7C7qF,KAAK8pF,UAAU07B,kBAAkBjtG,UAAUqrG,GAAO5jH,KAAKioH,kBAAkBrE,GAC3E,CAES13B,UAAUC,GACjBnsF,KAAKkjH,UAAYljH,KAAK8pF,UAAU2nB,mBAAmBtlB,EAAa+2B,WAChEljH,KAAK0mH,iBAAiBv6B,EACxB,CAEAu6B,iBAAiBv6B,GACf,GAAIA,EAAa+4B,sBAAsBprG,MACrC,UAAW6pG,KAAax3B,EAAa+4B,WACnCvB,EAAUC,IAAM5jH,KAAK8pF,UAAUuB,sBAAsBs4B,EAAUC,KAC/D5jH,KAAKklH,WAAWt8G,KAAK,IAAIg+G,GAAyBjD,GAGxD,CAEO53B,SACL,MAAO,CACL7gF,GAAIlL,KAAKkL,GACT9H,KAAMpD,KAAKoD,KACXmoF,SAAUvrF,KAAKurF,SACf23B,UAAWljH,KAAKkjH,UAAYljH,KAAKkjH,UAAUh4G,GAAK,GAChDg6G,WAAYllH,KAAKklH,WAAW39G,IAAImV,GAAOA,GAE3C,ECpGI,SAAU2rG,GAAoBC,GAClC,OAAc,OAAPA,GAA2E,mBAApDA,EAAyBxsB,sBACzD,CCFM,SAAUysB,GAAcr8G,GAC5B,MAAyC,mBAA3BA,EAAMgvF,gBACtB,CCJM,MAAOstB,WAA6B3+B,GAOxChqF,YAAYqjH,EAAuCp5B,GACjDhqF,MAAMojH,EAAUh4G,GAAI4+E,GAPtB9pF,cAAW,uBAQTA,KAAKyoH,kBAAoBvF,EAAUuF,mBAAqB,GAEpDvF,EAAUC,8BAA8B54B,KAC1CvqF,KAAKmjH,mBAAqBD,EAAUC,mBAExC,CAEAv1B,cACE,OAAO5tF,KAAKmjH,mBAAmBv1B,aACjC,CAEAH,iBACE,OAAOztF,KAAKmjH,mBAAmB11B,gBACjC,CAESvB,UAAUC,GACjBnsF,KAAKmjH,mBAAqBnjH,KAAK8pF,UAAUuB,sBAAsBc,EAAag3B,mBAC9E,CAEOp3B,SACL,MAAO,CACL7gF,GAAIlL,KAAKkL,GACTqgF,SAAUvrF,KAAKurF,SACf43B,mBAAoBnjH,KAAKmjH,mBAAmBj4G,GAC5Cu9G,kBAAmBzoH,KAAKyoH,kBAE5B,EAGI,SAAUC,GAAuBx8G,GACrC,MAA0D,mBAA5CA,EAAMwwF,iCACtB,CC9BM,MAAOisB,WAAyB9+B,GAqBpChqF,YAAY2gH,EAAuB12B,GAGjC,GAFAhqF,MAAM0gH,EAAiBt1G,GAAI4+E,GArB7B9pF,cAAW,mBAIXA,yBAAkD,GAElDA,uBAAuC,GAMvCA,2BAAkD,GAElDA,+BAAiD,GAEzCA,0BAAuB,IAAIooB,MAEnCpoB,iCAA8BA,KAAK4oH,qBAAqB3/D,eAKlDu3D,EAAiBqI,+BAA+B/uG,MAClD,UAAWgrG,KAAuBtE,EAAiBqI,oBAC7C/D,aAA+BD,IACjC7kH,KAAK6oH,oBAAoBjgH,KAAKk8G,GAOpC,GAHItE,EAAiBsI,iBACnB9oH,KAAK8oH,eAAiBtI,EAAiBsI,gBAErCtI,EAAiBuI,6BAA6BjvG,MAChD,UAAWmrG,KAAMzE,EAAiBuI,kBAChC/oH,KAAK+oH,kBAAkBngH,KAAKq8G,GAGhCjlH,KAAK8oH,eAAiBtI,EAAiBsI,gBAAkB,GACzD9oH,KAAKgpH,kBAAoBxI,EAAiBwI,mBAAqB,EACjE,CAEQC,0BACNjpH,KAAKkpH,0BAA0BtgH,KAC7B,IAAIwyG,GAAkB,kBAAmBviB,GAChCA,aAAc+D,KAIzB58F,KAAKkpH,0BAA0BtgH,KAC7B,IAAIwyG,GAAkB,aAAcviB,GAC3BA,aAAcuH,KAIzBpgG,KAAKkpH,0BAA0BtgH,KAC7B,IAAIwyG,GAAkB,gBAAiBzoE,GAC9BA,aAAcgoE,IAG3B,CAEAwO,uBAAuB/lH,GACrB,MAAMwnG,EAA0B,IAAIia,GAAoB,GAAI7kH,KAAK8pF,WACjE8gB,SAAG5gB,QAAQ5mF,GAEXpD,KAAK6oH,oBAAoBjgH,KAAKgiG,GAC9B5qG,KAAK8pF,UAAUwB,WAAWsf,GAEnBA,CACT,CAEAwe,mBAAmBhmH,GACjB,MAAM6hH,EAAK,IAAI8C,GAAgB,GAAI/nH,KAAK8pF,WACxCm7B,SAAGj7B,QAAQ5mF,GAEXpD,KAAK+oH,kBAAkBngH,KAAKq8G,GAC5BjlH,KAAK8pF,UAAUwB,WAAW25B,GAEnBA,CACT,CAEAoE,0BAA0Bn+G,GACxB,MAAMo+G,EAAWtpH,KAAK6oH,oBAAoB9wG,OAAO6yF,GACxCA,EAAG1/F,KAAOA,GAGnB,GAAIo+G,EAAS7kH,OAAQ,CACnB,MAAM4M,EAAQrR,KAAK6oH,oBAAoB33G,QAAQo4G,EAAS,IAEpDj4G,GAAQ,IACVrR,KAAK6oH,oBAAoB13G,OAAOE,EAAO,GACvCrR,KAAK8pF,UAAU2S,gBAAgB6sB,EAAS,IACxCtpH,KAAK8pF,UAAU02B,iBAAiBwI,kBAAoB,IAG1D,CAEAO,sBAAsBr+G,GACpB,MAAM+5G,EAAKjlH,KAAK+oH,kBAAkBnpF,KAAKnG,GAAKA,EAAEvuB,KAAOA,GAErD,GAAI+5G,EAAI,CACN,MAAMzgH,EAAIxE,KAAK+oH,kBAAkB73G,QAAQ+zG,GACzCjlH,KAAK+oH,kBAAkB53G,OAAO3M,EAAG,GACjCxE,KAAK8pF,UAAU2S,gBAAgBwoB,EAAE,CAErC,CAEAxE,2BAA2Bl1B,GACzBvrF,KAAKwpH,sBAAsB5gH,KAAK2iF,EAClC,CAEAq1B,+BAA+Br1B,GAC7BvrF,KAAKkpH,0BAA0BtgH,KAAK2iF,EACtC,CAEAk+B,4BAA4Bv+G,GAC1B,OAAOlL,KAAK6oH,oBAAoBjpF,KAAKgrE,GAAMA,EAAG1/F,KAAOA,EACvD,CAEAw+G,oBAAoBx+G,GAClB,OAAOlL,KAAK+oH,kBAAkBnpF,KAAKqlF,GAAMA,EAAG/5G,KAAOA,EACrD,CAEAy+G,gCAEE3pH,KAAK4oH,qBAAqB9vG,KADF9Y,KAAK6oH,oBAAoB,GAEnD,CAQAe,2BACE,MAAM70G,EAA0B,GAE1B80G,EAASl+G,OAAOtE,KAAKrH,KAAK8pF,UAAU6zB,mBAC1C,UAAWzyG,KAAM2+G,EAEXtB,GADOvoH,KAAK8pF,UAAU6zB,kBAAkBzyG,KAE1C6J,EAAUnM,KAAK5I,KAAK8pF,UAAU6zB,kBAAkBzyG,IAIpD,MAAM4+G,EAAY9pH,KAAK8pF,UAAUg1B,0BAEjC,UAAW5zG,KAAM4+G,EAAW,CAC1B,MAAMjN,EAAS78G,KAAK8pF,UAAUk0B,kBAAkB9yG,GAC5Cq9G,GAAc1L,IAChB9nG,EAAUnM,KAAKi0G,EAAM,CAIzB,MAAMkN,EAASp+G,OAAOtE,KAAKrH,KAAK8pF,UAAUs1B,qBAC1C,UAAWl0G,KAAM6+G,EAAQ,CACvB,MAAMrJ,EAAK1gH,KAAK8pF,UAAUs1B,oBAAoBl0G,GAC1Cq9G,GAAc7H,IAChB3rG,EAAUnM,KAAK83G,EAAE,CAIrB,OAAO3rG,CACT,CAEAi1G,mCACE,MAAMC,EAAuB,GAEvBJ,EAASl+G,OAAOtE,KAAKrH,KAAK8pF,UAAU6zB,mBAE1C,UAAWzyG,KAAM2+G,EAAQ,CACvB,MAAMhxB,EAAK74F,KAAK8pF,UAAU6zB,kBAAkBzyG,GACxCw9G,GAAuB7vB,IACzBoxB,EAAqBrhH,KAAKiwF,EAAE,CAIhC,MAAMkxB,EAASp+G,OAAOtE,KAAKrH,KAAK8pF,UAAUs1B,qBAC1C,UAAWl0G,KAAM6+G,EAAQ,CACvB,MAAMrJ,EAAK1gH,KAAK8pF,UAAUs1B,oBAAoBl0G,GAC1Cw9G,GAAuBhI,IACzBuJ,EAAqBrhH,KAAK83G,EAAE,CAIhC,OAAOuJ,CACT,CAOAC,2BAA2B3+B,GACzB,MAAM4+B,EAAwBnqH,KAAK4pH,2BAC7BQ,EAAsC,GAE5C,UAAWC,KAAeF,EACpB5+B,EAAS+vB,eAAe+O,IAC1BD,EAAsBxhH,KAAKyhH,GAI/B,OAAOD,EAAsBp0F,MAC/B,CAEAs0F,mCAAmC/+B,GACjC,MAAMg/B,EAAgCvqH,KAAKgqH,mCACrCI,EAAsC,GAE5C,UAAWI,KAAuBD,EAC5Bh/B,EAAS+vB,eAAekP,IAC1BJ,EAAsBxhH,KAAK4hH,GAI/B,OAAOJ,EAAsBp0F,MAC/B,CAOAy0F,iCACE,MAAM11G,EAA0B,GAE1B80G,EAASl+G,OAAOtE,KAAKrH,KAAK8pF,UAAU6zB,mBAC1C,UAAWzyG,KAAM2+G,EAAQ,CACvB,MAAMhxB,EAAK74F,KAAK8pF,UAAU6zB,kBAAkBzyG,GACxCm9G,GAAoBxvB,IACtB9jF,EAAUnM,KAAKiwF,EAAE,CAIrB,MAAMixB,EAAY9pH,KAAK8pF,UAAU80B,gCACjC,UAAW1zG,KAAM4+G,EAAW,CAC1B,MAAMjN,EAAS78G,KAAK8pF,UAAUu0B,wBAAwBnzG,GAClDm9G,GAAoBxL,IACtB9nG,EAAUnM,KAAKi0G,EAAM,CAIzB,MAAMkN,EAASp+G,OAAOtE,KAAKrH,KAAK8pF,UAAUs1B,qBAC1C,UAAWl0G,KAAM6+G,EAAQ,CACvB,MAAMrJ,EAAK1gH,KAAK8pF,UAAUs1B,oBAAoBl0G,GAC1Cm9G,GAAoB3H,IACtB3rG,EAAUnM,KAAK83G,EAAE,CAGrB,OAAO3rG,CACT,CAEA21G,yCAAyCn/B,GACvC,MAAMo/B,EAA8B3qH,KAAKyqH,iCACnCL,EAA2C,GAEjD,UAAWQ,KAAiBD,EACtBp/B,EAAS+vB,eAAesP,IAC1BR,EAAsBxhH,KAAKgiH,GAI/B,OAAOR,EAAsBp0F,MAC/B,CAEA60F,gCAAgCt/B,GAC9B,MAAMo/B,EAA8B3qH,KAAKyqH,iCACnCL,EAAwB,GAE9B,UAAWQ,KAAiBD,EACtBp/B,EAAS+vB,eAAesP,IAC1BR,EAAsBxhH,KAAKgiH,GAI/B,OAAOR,EAAsBp0F,MAC/B,CAEA80F,6CAA6CzP,GAC3C,MAAM0P,EAAsC/qH,KAAKwpH,sBAAsB5pF,KAAKtI,GAAKA,EAAE+jF,eAAiBA,GACpG,OAAOr7G,KAAK0qH,yCAAyCK,EACvD,CAEAC,oCAAoC3P,GAClC,MAAM0P,EAAsC/qH,KAAKkpH,0BAA0BtpF,KACzEtI,GAAKA,EAAE+jF,eAAiBA,GAG1B,OAAOr7G,KAAK6qH,gCAAgCE,EAC9C,CAIS7+B,UAAUC,GAEjB,GADAnsF,KAAKkhH,WAAyBlhH,KAAK8pF,UAAU2nB,mBAAmBtlB,EAAa+0B,YACzE/0B,EAAa48B,kBACf,QAASvkH,EAAI,EAAGA,EAAI2nF,EAAa48B,kBAAkBtkH,OAAQD,IACzDxE,KAAK+oH,kBAAkBvkH,GAAKxE,KAAK8pF,UAAU2nB,mBACzCtlB,EAAa48B,kBAAkBvkH,IAIrC,GAAI2nF,EAAa48B,kBACf,UAAWpH,KAAcx1B,EAAa08B,oBAAqB,CACzD,MAAMje,EAA0B5qG,KAAK8pF,UAAU2nB,mBAAmBkQ,GAClE3hH,KAAK6oH,oBAAoBjgH,KAAKgiG,EAAE,CAGtC,CAEO7e,SACL,MAAO,CACL7gF,GAAIlL,KAAKkL,GACT9H,KAAMpD,KAAKoD,KACXmoF,SAAUvrF,KAAKurF,SACf21B,WAAYlhH,KAAKkhH,WAAWh2G,GAC5B29G,oBAAqB7oH,KAAK6oH,oBAAoBthH,IAAIqjG,GAAMA,EAAG1/F,IAC3D89G,kBAAmBhpH,KAAKgpH,kBACxBD,kBAAmB/oH,KAAK+oH,kBAAkBxhH,IAAI09G,GAAMA,EAAG/5G,IACvD49G,eAAgB9oH,KAAK8oH,eAEzB,EC3UI,MAAOmC,WAAmBphC,GAK9BhqF,YAAYqhH,EAAiBp3B,GAG3B,GAFAhqF,MAAMohH,EAAWh2G,GAAI4+E,GALvB9pF,cAAW,aACXA,kBAAqC,GACrCA,gBAAkC,GAK5BkhH,EAAWgK,wBAAwBpxG,MACrC,UAAW8pG,KAAO1C,EAAWgK,aACvBtH,aAAer5B,IACjBvqF,KAAKkrH,aAAatiH,KAAK5I,KAAK8pF,UAAUuB,sBAAsBu4B,EAAI14G,KAKtElL,KAAK8pF,UAAUs7B,iCAAiC7sG,UAAWsyE,IACzD7qF,KAAKmrH,UAAUtgC,EAAE,EAErB,CAEAs2B,gBAAgB51B,GACWvrF,KAAKorH,WAAWxrF,KAAKyrF,GACrCA,EAAIC,mBAAqBD,EAAIC,oBAAsB//B,EAAS+/B,oBAKrEtrH,KAAKorH,WAAWxiH,KAAK2iF,EACvB,CAMAggC,8BAA8BlQ,GAC5B,IAAI0P,EAAsC,KAC1C,UAAWx/B,KAAYvrF,KAAKorH,WACtB7/B,EAAS8vB,eAAiBA,IAC5B0P,EAAmBx/B,GAGvB,OAAOvrF,KAAKwgH,iBAAiB0J,2BAA2Ba,EAC1D,CAEAS,WAAWtgH,GACTlL,KAAKyrH,OAAOzrH,KAAK8pF,UAAUuB,sBAAsBngF,GACnD,CAEAugH,OAAO5gC,GACD7qF,KAAKkrH,aAAah6G,QAAQ25E,IAAM,GAIpC7qF,KAAKkrH,aAAatiH,KAAKiiF,EACzB,CAEAsgC,UAAUtgC,GACR,MAAMx5E,EAAQrR,KAAKkrH,aAAah6G,QAAQ25E,GAEpCx5E,GAAQ,IACVrR,KAAK8pF,UAAUqzB,kBAAkBrkG,KAAK9Y,KAAKkrH,aAAa75G,IACxDrR,KAAKkrH,aAAa/5G,OAAOE,EAAO,GAEpC,CAEAq6G,cAAcxgH,GACZlL,KAAKmrH,UAAUnrH,KAAK8pF,UAAUuB,sBAAsBngF,GACtD,CAESghF,UAAUg1B,GACjB,UAAWyK,KAASzK,EAAWgK,aAC7BlrH,KAAKkrH,aAAatiH,KAAK5I,KAAK8pF,UAAUuB,sBAAsBsgC,GAEhE,CAEInL,uBACF,OAAOxgH,KAAK8pF,UAAU02B,gBACxB,CAEOz0B,SACL,MAAO,CACLR,SAAUvrF,KAAKurF,SACfrgF,GAAIlL,KAAKkL,GACTggH,aAAclrH,KAAKkrH,aAAa3jH,IAAKsjF,GAC5BA,EAAG3/E,IAGhB,CAEQ0gH,eAAepQ,GACrB,OAAOA,EAAWtgB,kBACpB,CAEA2wB,eAAerQ,GACb,MAAMsQ,EAAc9rH,KAAK4rH,eAAepQ,GACxC,UAAWoI,KAAOkI,EAChB9rH,KAAKyrH,OAAO7H,EAEhB,CAEAmI,kBAAkBvQ,GAChB,MAAMsQ,EAAc9rH,KAAK4rH,eAAepQ,GACxC,UAAWoI,KAAOkI,EAChB9rH,KAAKmrH,UAAUvH,EAEnB,EC9GK,MAAMoI,GAAwB,CACnCC,KAAM,CACJ98B,YAAa,iBACbjkF,GAAI,QAENghH,IAAK,CACH/8B,YAAa,eACbjkF,GAAI,QAIF,MAAOihH,WAA0BtiC,GAKrChqF,YAAYijH,EAAwBh5B,GAClChqF,MAAMgjH,EAAkB53G,GAAI4+E,GAL9B9pF,cAAW,oBAOTA,KAAKk0F,WAAW4uB,EAClB,CAEA5uB,WAAW4uB,GACT9iH,KAAKgsH,sBAAwBlJ,EAAkBkJ,uBAAyBA,GAAsBC,KAAK/gH,EACrG,CAEIkhH,4BACF,OAAOJ,GAAsBhsH,KAAKgsH,uBAAuB78B,WAC3D,CAIOpD,SACL,MAAO,CACL7gF,GAAIlL,KAAKkL,GACTqgF,SAAUvrF,KAAKurF,SACfygC,sBAAuBhsH,KAAKgsH,sBAEhC,ECtCI,MAAgBK,WAAsBxiC,GAC1ChqF,YAAYysH,EAAoBxiC,GAC9BhqF,MAAMwsH,EAAcphH,GAAI4+E,EAC1B,ECJI,MAAgByiC,WAAiB1iC,ICEjC,MAAO2iC,WAAmCD,GAiB9C1sH,YAAYm6G,EAAelwB,GACzBhqF,MAAMk6G,EAAS9uG,GAAI4+E,GAjBrB9pF,cAAW,wBAmBTA,KAAKk0F,WAAW8lB,GAChBh6G,KAAK+3F,4BACP,CAEA7D,WAAW8lB,GACTh6G,KAAKmgG,YAAc,IAAI5V,GAAmByvB,EAAS7Z,YAAangG,KAAK8pF,UAAW9pF,MAChFA,KAAKs2G,cAAgB,IAAI/rB,GAAmByvB,EAAS1D,cAAet2G,KAAK8pF,UAAW9pF,MACpFA,KAAKw2G,kBAAoB,IAAIjsB,GAAmByvB,EAASxD,kBAAmBx2G,KAAK8pF,UAAW9pF,MAC5FA,KAAKy2G,aAAe,IAAIlsB,GAAmByvB,EAASvD,aAAcz2G,KAAK8pF,UAAW9pF,MAClFA,KAAKysH,gBAAkB,IAAIliC,GAAmByvB,EAASyS,gBAAiBzsH,KAAK8pF,UAAW9pF,MACxFA,KAAK0sH,cAAgB,IAAIniC,GAAmByvB,EAAS0S,cAAe1sH,KAAK8pF,UAAW9pF,MACpFA,KAAK2sH,WAAa,IAAIpiC,GAAmByvB,EAAS2S,WAAY3sH,KAAK8pF,UAAW9pF,MAC9EA,KAAK4sH,KAAO,IAAIriC,GAAmByvB,EAAS4S,KAAM5sH,KAAK8pF,UAAW9pF,MAClEA,KAAK6sH,IAAM,IAAItiC,GAAmByvB,EAAS6S,IAAK7sH,KAAK8pF,UAAW9pF,MAChEA,KAAK8sH,IAAM,IAAIviC,GAAmByvB,EAAS8S,IAAK9sH,KAAK8pF,UAAW9pF,KAClE,CAEA+3F,6BACE/3F,KAAKmgG,YAAYnW,QAAQ,gBACzBhqF,KAAKs2G,cAActsB,QAAQ,kBAC3BhqF,KAAKw2G,kBAAkBxsB,QAAQ,sBAC/BhqF,KAAKy2G,aAAazsB,QAAQ,iBAC1BhqF,KAAKysH,gBAAgBziC,QAAQ,oBAC7BhqF,KAAK0sH,cAAc1iC,QAAQ,kBAC3BhqF,KAAK2sH,WAAW3iC,QAAQ,eACxBhqF,KAAK4sH,KAAK5iC,QAAQ,QAClBhqF,KAAK6sH,IAAI7iC,QAAQ,OACjBhqF,KAAK8sH,IAAI9iC,QAAQ,MACnB,CAImBgC,sBAAsBpJ,GACvC,OAAOA,aAAoBqJ,IAA4B,mBAAbrJ,CAC5C,CAGOmJ,SACL,MAAMwK,EAAyB,GAC/B,IAAIh6E,EACJ,IAAKA,KAAOvc,KAGNA,KAAKuc,aAAgBguE,GACvBgM,EAAkBh6E,GAA4Bvc,KAAKuc,GAAMrR,GAChDlL,KAAKgsF,sBAAsBhsF,KAAKuc,MAGzCg6E,EAAkBh6E,GAAOvc,KAAKuc,IAIlC,OAAOg6E,CACT,ECnEI,MAAOw2B,WAA4BV,GAoCvCxsH,YAAYysH,EAAoBxiC,EAAiBmD,GAC/CntF,MAAMwsH,EAAexiC,GApCvB9pF,cAAW,iBAqCLssH,EAAcpT,aACZoT,EAAcpT,YAAYz0G,OAAS,IACrC6nH,EAAcpT,YAAc,GAC5BoT,EAAcU,iBAAmB,IAGrChtH,KAAKitF,gBAAkBA,EACvBjtF,KAAKitH,UAAYX,EAAcW,WAAa,GAC5CjtH,KAAKktH,UAAYZ,EAAcY,WAAa,GAC5CltH,KAAKk5G,YAAc,GACnBl5G,KAAKgtH,iBAAmBV,EAAcU,kBAAoB,GAE1DhtH,KAAKmtH,YAAYb,GAEZtsH,KAAKgtH,iBAAiBvoH,QACzBzE,KAAKotH,mBAGPptH,KAAK+8G,gBAAgBuP,EAAcpT,aAAe,IAElDl5G,KAAKo1F,gBAELp1F,KAAKutF,WAAa++B,EAAc/+B,WAChCvtF,KAAKstF,WAAag/B,EAAch/B,WAChCttF,KAAKotF,YAAck/B,EAAcl/B,aAAehB,YAClD,CAESZ,mBACP1rF,MAAM0rF,mBACN,UAAWl0D,KAAKt3B,KAAKk5G,YACnBl5G,KAAK8pF,UAAUwB,WAAWh0D,GAE5Bt3B,KAAKw4G,aAAahtB,mBAClBxrF,KAAKy4G,gBAAgBjtB,mBACrBxrF,KAAK04G,gBAAgBltB,mBACrBxrF,KAAK24G,cAAcntB,mBACnBxrF,KAAK44G,OAAOptB,mBACZxrF,KAAK64G,OAAOrtB,mBACZxrF,KAAK84G,OAAOttB,mBACZxrF,KAAK+4G,QAAQvtB,mBACbxrF,KAAKg5G,SAASxtB,kBAChB,CAESC,gBAAgBtB,GACvBrqF,MAAM2rF,gBAAgBtB,GAEtB,MAAMkjC,EAAKljC,EAEX,QAAS3lF,EAAI,EAAGA,EAAIxE,KAAKk5G,YAAYz0G,OAAQD,IAC3CxE,KAAKk5G,YAAY10G,GAAGinF,gBAAgB4hC,EAAGnU,YAAY10G,IAErDxE,KAAKw4G,aAAa/sB,gBAAgB4hC,EAAG7U,cACrCx4G,KAAKy4G,gBAAgBhtB,gBAAgB4hC,EAAG5U,iBACxCz4G,KAAK04G,gBAAgBjtB,gBAAgB4hC,EAAG3U,iBACxC14G,KAAK24G,cAAcltB,gBAAgB4hC,EAAG1U,eACtC34G,KAAK44G,OAAOntB,gBAAgB4hC,EAAGzU,QAC/B54G,KAAK64G,OAAOptB,gBAAgB4hC,EAAGxU,QAC/B74G,KAAK84G,OAAOrtB,gBAAgB4hC,EAAGvU,QAC/B94G,KAAK+4G,QAAQttB,gBAAgB4hC,EAAGtU,SAChC/4G,KAAKg5G,SAASvtB,gBAAgB4hC,EAAGrU,SACnC,CAESvuB,wBACP3qF,MAAM2qF,wBACNzqF,KAAKw4G,aAAa/tB,wBAClBzqF,KAAKy4G,gBAAgBhuB,wBACrBzqF,KAAK04G,gBAAgBjuB,wBACrBzqF,KAAK24G,cAAcluB,wBACnBzqF,KAAK44G,OAAOnuB,wBACZzqF,KAAK64G,OAAOpuB,wBACZzqF,KAAK84G,OAAOruB,wBACZzqF,KAAK+4G,QAAQtuB,wBACbzqF,KAAKg5G,SAASvuB,uBAChB,CAEmBkB,mBAAmBhb,GACpC,OACE7wE,MAAM6rF,mBAAmBhb,IAAiB3wE,KAAK2wE,aAAyB72D,OAAS9Z,KAAK2wE,aAAyBylC,EAEnH,CAESnsB,UACP,OAAOjqF,KAAKitF,gBAAgBhD,SAC9B,CAEA8N,6BACE/3F,KAAKmgG,YAAYnW,QAAQ,gBACzBhqF,KAAK22G,IAAI3sB,QAAQ,MACnB,CAESY,8BACP9qF,MAAM8qF,8BACN,QAASpmF,EAAI,EAAGA,EAAIxE,KAAKk5G,YAAYz0G,OAAQD,IAC3CxE,KAAKk5G,YAAY10G,GAAGomF,6BAExB,CAEAuiC,YAAYb,GACVtsH,KAAKmgG,YAAc,IAAI5V,GAAmB+hC,EAAcnsB,YAAangG,KAAK8pF,UAAW9pF,MACrFA,KAAK22G,IAAM,IAAIpsB,GAAmB+hC,EAAc3V,IAAK32G,KAAK8pF,UAAW9pF,MACrEA,KAAKqhG,OAAS,IAAI9W,GAAmB+hC,EAAcjrB,OAAQrhG,KAAK8pF,UAAW9pF,MAC3EA,KAAKunG,SAAW,IAAIhd,GAAmB+hC,EAAc/kB,SAAUvnG,KAAK8pF,UAAW9pF,MAE/EA,KAAKw4G,aAAe,IAAIpC,GAAIkW,EAAc9T,cAAgB,GAAIx4G,KAAK8pF,UAAW9pF,MAC9EA,KAAKy4G,gBAAkB,IAAIrC,GAAIkW,EAAc7T,iBAAmB,GAAIz4G,KAAK8pF,UAAW9pF,MACpFA,KAAK04G,gBAAkB,IAAItC,GAAIkW,EAAc5T,iBAAmB,GAAI14G,KAAK8pF,UAAW9pF,MACpFA,KAAK24G,cAAgB,IAAIvC,GAAIkW,EAAc3T,eAAiB,GAAI34G,KAAK8pF,UAAW9pF,MAChFA,KAAK44G,OAAS,IAAIxC,GAAIkW,EAAc1T,QAAU,GAAI54G,KAAK8pF,UAAW9pF,MAClEA,KAAK64G,OAAS,IAAIzC,GAAIkW,EAAczT,QAAU,GAAI74G,KAAK8pF,UAAW9pF,MAClEA,KAAK84G,OAAS,IAAI1C,GAAIkW,EAAcxT,QAAU,GAAI94G,KAAK8pF,UAAW9pF,MAClEA,KAAK+4G,QAAU,IAAI3C,GAAIkW,EAAcvT,SAAW,GAAI/4G,KAAK8pF,UAAW9pF,MACpEA,KAAKg5G,SAAW,IAAI5C,GAAIkW,EAActT,UAAY,GAAIh5G,KAAK8pF,UAAW9pF,KACxE,CAEA8qF,mBAAmBmC,GACjBjtF,KAAKitF,gBAAkBA,CACzB,CAGAmgC,mBAIE,IAAIE,EAEJA,EAAO,IAAId,GAA2B,GAAIxsH,KAAK8pF,WAC/CwjC,EAAKtjC,QAAQ,cACbhqF,KAAKgtH,iBAAiBpkH,KAAK0kH,GAE3BA,EAAO,IAAId,GAA2B,GAAIxsH,KAAK8pF,WAC/CwjC,EAAKtjC,QAAQ,iBACbhqF,KAAKgtH,iBAAiBpkH,KAAK0kH,GAE3BA,EAAO,IAAId,GAA2B,GAAIxsH,KAAK8pF,WAC/CwjC,EAAKtjC,QAAQ,iBACbhqF,KAAKgtH,iBAAiBpkH,KAAK0kH,GAE3BA,EAAO,IAAId,GAA2B,GAAIxsH,KAAK8pF,WAC/CwjC,EAAKtjC,QAAQ,cACbhqF,KAAKgtH,iBAAiBpkH,KAAK0kH,GAE3BA,EAAO,IAAId,GAA2B,GAAIxsH,KAAK8pF,WAC/CwjC,EAAKtjC,QAAQ,OACbhqF,KAAKgtH,iBAAiBpkH,KAAK0kH,GAE3BA,EAAO,IAAId,GAA2B,GAAIxsH,KAAK8pF,WAC/CwjC,EAAKtjC,QAAQ,OACbhqF,KAAKgtH,iBAAiBpkH,KAAK0kH,GAE3BA,EAAO,IAAId,GAA2B,GAAIxsH,KAAK8pF,WAC/CwjC,EAAKtjC,QAAQ,OACbhqF,KAAKgtH,iBAAiBpkH,KAAK0kH,GAE3BA,EAAO,IAAId,GAA2B,GAAIxsH,KAAK8pF,WAC/CwjC,EAAKtjC,QAAQ,QACbhqF,KAAKgtH,iBAAiBpkH,KAAK0kH,GAE3BA,EAAO,IAAId,GAA2B,GAAIxsH,KAAK8pF,WAC/CwjC,EAAKtjC,QAAQ,SACbhqF,KAAKgtH,iBAAiBpkH,KAAK0kH,EAC7B,CAEAvQ,gBAAgB7D,GAEd,QAASn8F,EAAM,EAAGA,EAAM,EAAGA,KAErBm8F,EAAYn8F,aAAgBwtE,WAA6B2uB,EAAYn8F,GAAS,OAChF/c,KAAKk5G,YAAYtwG,KAAK,IAAI2hF,GAAmB2uB,EAAYn8F,GAAM/c,KAAK8pF,UAAW9pF,OAC/EA,KAAKk5G,YAAYn8F,GAAKitE,QAAQhqF,KAAKgtH,iBAAiBjwG,GAAK3Z,MAG/D,CAEAmqH,sBAAsBnqH,GACpB,OAAOpD,KAAKk5G,YAAYt5E,KAAKirD,GAAMA,EAAGznF,OAASA,EACjD,CAEA61G,sBACE,MAAMuU,EAAQ,CAAC,aAAc,gBAAiB,gBAAiB,aAAc,MAAO,MAAO,MAAO,OAAQ,SAC1G,QAASzwG,EAAM,EAAGA,EAAM,EAAGA,IACzB/c,KAAKk5G,YAAYn8F,GAAKitE,QAAQwjC,EAAMzwG,GAExC,CAEAq4E,gBACEp1F,KAAKmgG,YAAY3S,YAAY,iBAC7BxtF,KAAK22G,IAAInpB,YAAY,gBACrBxtF,KAAKqhG,OAAO7T,YAAY,gBACxBxtF,KAAKunG,SAAS/Z,YAAY,gBAE1B,UAAW3C,KAAM7qF,KAAKk5G,YACpBruB,EAAG2C,YAAY,gBAGjBxtF,KAAKktF,SAAW,cAClB,CAES9gC,cAAc+9B,GACrB,IAAIxhD,EAAU7oC,MAAMssD,cAAc+9B,GAElC,QAASptE,EAAM,EAAGA,EAAMotE,EAAQ+uB,YAAYz0G,OAAQsY,IAClD4rB,EAAUA,GAAW3oC,KAAKk5G,YAAYn8F,GAAK6uE,kBAAkBzB,EAAQ+uB,YAAYn8F,IAEnF,OAAO4rB,CACT,CAESgiD,aACP,MAAMD,EAAU5qF,MAAM6qF,aACtB,UAAW8vB,KAAMz6G,KAAKk5G,YACpBxuB,EAAQ9hF,KAAK6xG,GAGf,OAAO/vB,CACT,CAEmBsB,sBAAsBpJ,GACvC,OAAOA,aAAoBqJ,IAA4B,mBAAbrJ,GAA2BA,IAAa5iF,KAAKitF,eACzF,CAEShC,+BACP,MAAM1zD,EAAWz3B,MAAMmrF,+BACvB1zD,SAAS3uB,KAAK5I,KAAKw4G,cACnBjhF,EAAS3uB,KAAK5I,KAAKy4G,iBACnBlhF,EAAS3uB,KAAK5I,KAAK04G,iBACnBnhF,EAAS3uB,KAAK5I,KAAK24G,eACnBphF,EAAS3uB,KAAK5I,KAAK44G,QACnBrhF,EAAS3uB,KAAK5I,KAAK64G,QACnBthF,EAAS3uB,KAAK5I,KAAK84G,QACnBvhF,EAAS3uB,KAAK5I,KAAK+4G,SACnBxhF,EAAS3uB,KAAK5I,KAAKg5G,UACZzhF,CACT,CAEA0+D,iBAAiBC,GACfl2F,KAAKw4G,aAAaviB,iBAAiBC,EAAamgB,KAChDr2G,KAAKy4G,gBAAgBxiB,iBAAiBC,EAAamgB,KACnDr2G,KAAK04G,gBAAgBziB,iBAAiBC,EAAamgB,KACnDr2G,KAAK24G,cAAc1iB,iBAAiBC,EAAamgB,KACjDr2G,KAAK44G,OAAO3iB,iBAAiBC,EAAamgB,KAC1Cr2G,KAAK64G,OAAO5iB,iBAAiBC,EAAamgB,KAC1Cr2G,KAAK84G,OAAO7iB,iBAAiBC,EAAamgB,KAC1Cr2G,KAAK+4G,QAAQ9iB,iBAAiBC,EAAamgB,KAC3Cr2G,KAAKg5G,SAAS/iB,iBAAiBC,EAAamgB,KAE5Cr2G,KAAKutF,WAAa2I,EAAagjB,YAAY3rB,WAC3CvtF,KAAKstF,WAAa4I,EAAagjB,YAAY5rB,WAE3C,UAAWzC,KAAM7qF,KAAKk5G,YAEpBruB,EAAG0C,WAAa2I,EAAagjB,YAAY3rB,WACzC1C,EAAGyC,WAAa4I,EAAagjB,YAAY5rB,UAE7C,CAGOvB,SAEL,MAAMwK,EAAyB,GAC/B,IAAIh6E,EACJ,IAAKA,KAAOvc,KAGV,GAAIA,KAAKuc,aAAgBguE,GACvBgM,EAAkBh6E,GAA4Bvc,KAAKuc,GAAMrR,WAChDlL,KAAKuc,KAASvc,KAAKk5G,YAAa,CACzC3iB,EAAkB2iB,YAAc,GAChC,UAAW5hF,KAAKt3B,KAAKk5G,YACnB3iB,EAAkB2iB,YAAYtwG,KAAK0uB,EAAEpsB,GAAE,MAEhClL,KAAKgsF,sBAAsBhsF,KAAKuc,MAGzCg6E,EAAkBh6E,GAAOvc,KAAKuc,IAIlC,OAAOg6E,CACT,CAESrK,UAAUuhC,GAMjB,GALAztH,KAAKmgG,YAAcngG,KAAKorF,0BAA0BqiC,EAAIttB,aACtDngG,KAAK22G,IAAM32G,KAAKorF,0BAA0BqiC,EAAI9W,KAC9C32G,KAAKqhG,OAASrhG,KAAKorF,0BAA0BqiC,EAAIpsB,QACjDrhG,KAAKunG,SAAWvnG,KAAKorF,0BAA0BqiC,EAAIlmB,UAEpB,IAA3BkmB,EAAIvU,YAAYz0G,OAAc,CAChCzE,KAAKw4G,aAAatsB,UAAUuhC,EAAIjV,cAChCx4G,KAAKy4G,gBAAgBvsB,UAAUuhC,EAAIhV,iBACnCz4G,KAAK04G,gBAAgBxsB,UAAUuhC,EAAI/U,iBACnC14G,KAAK24G,cAAczsB,UAAUuhC,EAAI9U,eACjC34G,KAAK44G,OAAO1sB,UAAUuhC,EAAI7U,QAC1B54G,KAAK64G,OAAO3sB,UAAUuhC,EAAI5U,QAC1B74G,KAAK84G,OAAO5sB,UAAUuhC,EAAI3U,QAC1B94G,KAAK+4G,QAAQ7sB,UAAUuhC,EAAI1U,SAC3B/4G,KAAKg5G,SAAS9sB,UAAUuhC,EAAIzU,UAE5B,QAASj8F,EAAM,EAAGA,EAAM,EAAGA,IACzB/c,KAAKk5G,YAAYtwG,KAAK5I,KAAK8pF,UAAUuB,sBAAsBoiC,EAAIvU,YAAYn8F,KAE7E/c,KAAKi5G,qBAAmB,CAE5B,ECtVI,MAAOyU,WAAyBrB,GAapCxsH,YAAY8tH,EAAuB7jC,EAAiBmD,GAClDntF,MAAM6tH,EAAkB7jC,GAb1B9pF,cAAW,qBAcL2tH,EAAiBzU,aACfyU,EAAiBzU,YAAYz0G,OAAS,KACxCkpH,EAAiBzU,YAAc,IAInCl5G,KAAKitF,gBAAkBA,EACvBjtF,KAAKitH,UAAYU,EAAiBV,WAAa,GAC/CjtH,KAAKktH,UAAYS,EAAiBT,WAAa,GAC/CltH,KAAKk5G,YAAc,GAEnBl5G,KAAKmtH,cAELntH,KAAK+8G,gBAAgB4Q,EAAiBzU,aAAe,IAErDl5G,KAAKo1F,gBAELp1F,KAAKutF,WAAaogC,EAAiBpgC,WACnCvtF,KAAKstF,WAAaqgC,EAAiBrgC,WACnCttF,KAAKotF,YAAcugC,EAAiBvgC,aAAehB,YACrD,CAESZ,mBACP1rF,MAAM0rF,mBACN,UAAWl0D,KAAKt3B,KAAKk5G,YACnBl5G,KAAK8pF,UAAUwB,WAAWh0D,EAE9B,CAESm0D,gBAAgBtB,GACvBrqF,MAAM2rF,gBAAgBtB,GAEtB,MAAM81B,EAAK91B,EAEX,QAAS3lF,EAAI,EAAGA,EAAIxE,KAAKk5G,YAAYz0G,OAAQD,IAC3CxE,KAAKk5G,YAAY10G,GAAGinF,gBAAgBw0B,EAAG/G,YAAY10G,GAEvD,CAESimF,wBACP3qF,MAAM2qF,uBACR,CAEmBkB,mBAAmBhb,GACpC,OAAO7wE,MAAM6rF,mBAAmBhb,IAAiB3wE,KAAK2wE,aAAyB72D,KACjF,CAESmwE,UACP,OAAOjqF,KAAKitF,gBAAgBhD,SAC9B,CAEA8N,6BAAoC,CAE3BnN,8BACP9qF,MAAM8qF,8BACN,QAASpmF,EAAI,EAAGA,EAAIxE,KAAKk5G,YAAYz0G,OAAQD,IAC3CxE,KAAKk5G,YAAY10G,GAAGomF,6BAExB,CAEAuiC,cAAqB,CAErBriC,mBAAmBmC,GACjBjtF,KAAKitF,gBAAkBA,CACzB,CAEA8vB,gBAAgB7D,GACd,QAASn8F,EAAM,EAAGA,EAAM,GAAIA,KACtBm8F,EAAYn8F,aAAgBwtE,WAA6B2uB,EAAYn8F,GAAS,MAChF/c,KAAKk5G,YAAYtwG,KAAK,IAAI2hF,GAAmB2uB,EAAYn8F,GAAM/c,KAAK8pF,UAAW9pF,OAInFA,KAAKi5G,qBACP,CAEAsU,sBAAsBnqH,GACpB,OAAOpD,KAAKk5G,YAAYt5E,KAAKirD,GAAMA,EAAGznF,OAASA,EACjD,CAEA61G,sBACE,MAAMuU,EAAQ,CACZ,KACA,MACA,KACA,KACA,MACA,MACA,UACA,SACA,UACA,MACA,MACA,MACA,MACA,OAEF,GAAgC,KAA5BxtH,KAAKk5G,YAAYz0G,OACnB,QAASsY,EAAM,EAAGA,EAAM,GAAIA,IAC1B/c,KAAKk5G,YAAYn8F,GAAKitE,QAAQwjC,EAAMzwG,GAG1C,CAEAq4E,gBACE,UAAWvK,KAAM7qF,KAAKk5G,YACpBruB,EAAG2C,YAAY,gBAGjBxtF,KAAKktF,SAAW,cAClB,CAES9gC,cAAc+9B,GACrB,IAAIxhD,EAAU7oC,MAAMssD,cAAc+9B,GAElC,QAASptE,EAAM,EAAGA,EAAMotE,EAAQ+uB,YAAYz0G,OAAQsY,IAClD4rB,EAAUA,GAAW3oC,KAAKk5G,YAAYn8F,GAAK6uE,kBAAkBzB,EAAQ+uB,YAAYn8F,IAEnF,OAAO4rB,CACT,CAESgiD,aACP,MAAMD,EAAU5qF,MAAM6qF,aACtB,UAAW8vB,KAAMz6G,KAAKk5G,YACpBxuB,EAAQ9hF,KAAK6xG,GAGf,OAAO/vB,CACT,CAEmBsB,sBAAsBpJ,GACvC,OAAOA,aAAoBqJ,IAA4B,mBAAbrJ,GAA2BA,IAAa5iF,KAAKitF,eACzF,CAEShC,+BACP,OAAOnrF,MAAMmrF,8BACf,CAEAgL,iBAAiBC,GACfl2F,KAAKutF,WAAa2I,EAAagjB,YAAY3rB,WAC3CvtF,KAAKstF,WAAa4I,EAAagjB,YAAY5rB,WAE3C,UAAWzC,KAAM7qF,KAAKk5G,YACpBruB,EAAG0C,WAAa2I,EAAagjB,YAAY3rB,WACzC1C,EAAGyC,WAAa4I,EAAagjB,YAAY5rB,UAE7C,CAEOvB,SACL,MAAMwK,EAAyB,GAC/B,IAAIh6E,EACJ,IAAKA,KAAOvc,KACV,GAAIA,KAAKuc,aAAgBguE,GACvBgM,EAAkBh6E,GAA4Bvc,KAAKuc,GAAMrR,WAChDlL,KAAKuc,KAASvc,KAAKk5G,YAAa,CACzC3iB,EAAkB2iB,YAAc,GAChC,UAAW5hF,KAAKt3B,KAAKk5G,YACnB3iB,EAAkB2iB,YAAYtwG,KAAK0uB,EAAEpsB,GAAE,MAEhClL,KAAKgsF,sBAAsBhsF,KAAKuc,MAGzCg6E,EAAkBh6E,GAAOvc,KAAKuc,IAIlC,OAAOg6E,CACT,CAESrK,UAAU0hC,GACjB,GAA+B,KAA3BA,EAAI1U,YAAYz0G,OAAe,CACjC,QAASsY,EAAM,EAAGA,EAAM,GAAIA,IAC1B/c,KAAKk5G,YAAYtwG,KAAK5I,KAAK8pF,UAAUuB,sBAAsBuiC,EAAI1U,YAAYn8F,KAE7E/c,KAAKi5G,qBAAmB,CAE5B,EChMI,MAAO4U,WAAqBhkC,GAKhChqF,YAAYgjH,EAAmB/4B,GAG7B,GAFAhqF,MAAM+iH,EAAa33G,GAAI4+E,GALzB9pF,cAAW,eACXA,mBAA+D,GAMzD6iH,EAAaiL,yBAAyBh0G,MACxC,UAAWwyG,KAAiBzJ,EAAaiL,eACnCxB,aAAyBS,IAAuBT,aAAyBoB,KAC3E1tH,KAAK8tH,cAAcllH,KAAK0jH,GAI9BtsH,KAAKgpH,kBAAoBnG,EAAamG,mBAAqB,EAC7D,CAEA+E,iBAAiB3qH,EAAcuH,GAC7B,IAAIqjH,EACJ,OACEA,EADW,QAATrjH,EACG,IAAI+iH,GAAiB,GAAI1tH,KAAK8pF,UAAW9pF,MAEzC,IAAI+sH,GAAoB,GAAI/sH,KAAK8pF,UAAW9pF,MAGnDguH,EAAGf,UAAY7pH,EACf4qH,EAAGd,UAAYviH,GAAQ,sBAIvB3K,KAAK8tH,cAAcllH,KAAKolH,GACxBhuH,KAAK8pF,UAAUwB,WAAW0iC,GAC1BA,EAAGxiC,mBACIwiC,CACT,CAEAtM,oBAAoBx2G,GAClB,MAAMo+G,EAAWtpH,KAAK8tH,cAAc/1G,OAAOi2G,GAClCA,EAAG9iH,KAAOA,GAGnB,GAAIo+G,EAAS7kH,OAAQ,CACnB,MAAM4M,EAAQrR,KAAK8tH,cAAc58G,QAAQo4G,EAAS,IAE9Cj4G,GAAQ,IACVrR,KAAK8tH,cAAc38G,OAAOE,EAAO,GACjCrR,KAAK8pF,UAAU2S,gBAAgB6sB,EAAS,IACxCtpH,KAAK8pF,UAAU43B,oBAAoBx2G,GACnClL,KAAK8pF,UAAU+4B,aAAamG,kBAAoB,IAGtD,CAEAiF,sBAAsB/iH,GACpB,OAAOlL,KAAK8tH,cAAcluF,KAAKouF,GAAMA,EAAG9iH,KAAOA,EACjD,CAES0/E,8BACP9qF,MAAM8qF,8BACN,UAAWojC,KAAMhuH,KAAK8tH,cACpBE,EAAGpjC,6BAEP,CAEAsjC,oBAAoBvjH,GAClB,OAAO3K,KAAK8tH,cAAc/1G,OAAOi2G,GACxBA,EAAGd,YAAcviH,EAE5B,CAEAwjH,eAAe/qH,GACb,IAAKupF,GAAgBvpF,GACnB,OAAOpD,KAAK8tH,cAAcluF,KAAKouF,GACtBA,EAAGf,UAAUr8G,gBAAkBxN,EAAKwN,cAIjD,CAEAw9G,eACE,OAAOpuH,KAAK8tH,aACd,CAES5hC,UAAUC,GACjB,GAAIA,EAAa2hC,cACf,QAAStpH,EAAI,EAAGA,EAAI2nF,EAAa2hC,cAAcrpH,OAAQD,IACrDxE,KAAK8tH,cAActpH,GAAKxE,KAAK8pF,UAAU2nB,mBAAmBtlB,EAAa2hC,cAActpH,GAK3F,CAEA6pH,WAAWnjH,GACT,MAAMojH,EAAQtuH,KAAKiuH,sBAAsB/iH,GACzC,IAAIqjH,EAEAD,aAAiBZ,GACnBa,EAAc,IAAIb,GAAiBY,EAAOtuH,KAAK8pF,UAAW9pF,MACjDsuH,aAAiBvB,KAC1BwB,EAAc,IAAIxB,GAAoBuB,EAAOtuH,KAAK8pF,UAAW9pF,OAG/DuuH,EAAYtB,UAAY,GAAGqB,EAAMrB,mBACjCsB,EAAYrjH,GAAWlJ,OAAQ+nF,OAEfwkC,EAAY5jC,aACpBhlF,QAAQqwF,IACdA,EAAO9qF,GAAWlJ,OAAQ+nF,MAAI,GAG5BwkC,aAAuBxB,KACzBwB,EAAY/V,aAAaxB,WACzBuX,EAAY9V,gBAAgBzB,WAC5BuX,EAAY7V,gBAAgB1B,WAC5BuX,EAAY5V,cAAc3B,WAC1BuX,EAAY3V,OAAO5B,WACnBuX,EAAY1V,OAAO7B,WACnBuX,EAAYzV,OAAO9B,WACnBuX,EAAYxV,QAAQ/B,WACpBuX,EAAYvV,SAAShC,YAGvB,QAASxyG,EAAI,EAAGA,EAAI+pH,EAAYrV,YAAYz0G,OAAQD,IAClD+pH,EAAYrV,YAAY10G,GAAG0G,GAAWlJ,OAAQ+nF,OAEhDwkC,SAAY/iC,mBACZxrF,KAAK8pF,UAAUwB,WAAWijC,GAC1BvuH,KAAK8tH,cAAcllH,KAAK2lH,GACjBA,CACT,CAEOxiC,SACL,MAAO,CACL7gF,GAAIlL,KAAKkL,GACTqgF,SAAUvrF,KAAKurF,SACfuiC,cAAe9tH,KAAK8tH,cAAcvmH,IAAIymH,GAAMA,EAAG9iH,IAC/C89G,kBAAmBhpH,KAAKgpH,kBAE5B,EC3II,MAAOwF,WAA4B3kC,GAUvChqF,YAAY4/G,EAAgD31B,GAC1DhqF,MAAM2/G,EAAoBv0G,GAAI4+E,GAVhC9pF,cAAW,sBAIXA,2BAAgD,GAChDA,wBAA+C,GAE/CA,gBAAuC,GAIrCA,KAAKyuH,cAAgBhP,EAAoBgP,cACzCzuH,KAAK0uH,oBAAsBjP,EAAoBiP,iBACjD,CAEAvN,gBAAgB51B,GACdvrF,KAAKorH,WAAWxiH,KAAK2iF,EACvB,CAEAojC,sCAAsCtT,GACpC,IAAI0P,EAAsC,KAE1C,UAAWx/B,KAAYvrF,KAAKorH,WACtB7/B,EAAS8vB,eAAiBA,IAC5B0P,EAAmBx/B,GAIvB,OAAOvrF,KAAKwgH,iBAAiB8J,mCAAmCS,EAClE,CAEA6D,wBAAwB1c,GACtB,MAAMrnB,EAAK7qF,KAAK8pF,UAAUuB,sBAAsB6mB,GAEhD,GAAIlyG,KAAK6uH,sBAAsBjvF,KAAKnG,GAAKA,EAAE0pF,qBAAuBt4B,GAChE,OAGF,MAAMikC,EAAM,IAAItG,GAAqB,CAAErF,mBAAoBt4B,GAAM7qF,KAAK8pF,WAEtE9pF,KAAK6uH,sBAAsBjmH,KAAKkmH,GAChC9uH,KAAK8pF,UAAUwB,WAAWwjC,EAC5B,CAEAC,2BAA2B7jH,GACzB,MAAMmG,EAAQrR,KAAK6uH,sBAAsBryB,UAAU/iE,GAAKA,EAAEvuB,KAAOA,GAE7DmG,GAAQ,GACVrR,KAAK6uH,sBAAsB19G,OAAOE,EAAO,EAE7C,CAEAquG,iDAAiDxN,GAC/C,MAAM7gG,EAAQrR,KAAK6uH,sBAAsBryB,UAAU/iE,GAAKA,EAAE0pF,mBAAmBj4G,KAAOgnG,GAEhF7gG,GAAQ,GACVrR,KAAK6uH,sBAAsB19G,OAAOE,EAAO,EAE7C,CAEImvG,uBACF,OAAOxgH,KAAK8pF,UAAU02B,gBACxB,CAESt0B,UAAUC,GACjB,UAAWs6B,KAAOt6B,EAAa0iC,sBAAuB,CACpD,MAAMC,EAAM9uH,KAAK8pF,UAAU2nB,mBAAmBgV,GAC1CqI,GACF9uH,KAAK6uH,sBAAsBjmH,KAAKkmH,EAAG,CAIvC9uH,KAAKgvH,mBAAqB7iC,EAAa6iC,kBACzC,CAEOjjC,SACL,MAAO,CACLR,SAAUvrF,KAAKurF,SACfrgF,GAAIlL,KAAKkL,GACTujH,cAAezuH,KAAKyuH,cACpBC,kBAAmB1uH,KAAK0uH,kBACxBG,sBAAuB7uH,KAAK6uH,sBAAsBtnH,IAAKunH,GAA8BA,EAAI5jH,IACzF8jH,mBAAoBhvH,KAAKgvH,mBAE7B,EClFI,MAAOC,GAAbpvH,cACEG,WAAqB,EAqEvB,CA/DEkvH,aACE,MAAM53F,EAAI,IAAI20D,GAAK,IACnB,YAAKkjC,MAAMvmH,KAAK0uB,GACTA,CACT,CAEA83F,kBACE,MAAM93F,EAAIt3B,KAAKkvH,aAEf53F,SAAEkkF,WAAa,IAAID,GAAiB,GAAIjkF,GACxCA,EAAEg0D,WAAWh0D,EAAEkkF,YACflkF,EAAEkkF,WAAWhwB,mBAEbl0D,EAAEsjF,aAAe,IAAID,GAAa,GAAIrjF,GACtCA,EAAEsjF,aAAavlB,mBACf/9D,EAAEg0D,WAAWh0D,EAAEsjF,cACftjF,EAAEsjF,aAAapvB,mBAEfl0D,EAAEkpF,iBAAmB,IAAImI,GAAiB,GAAIrxF,GAC9CA,EAAEg0D,WAAWh0D,EAAEkpF,kBAEflpF,EAAEurF,aAAe,IAAIgL,GAAa,GAAIv2F,GACtCA,EAAEg0D,WAAWh0D,EAAEurF,cAEfvrF,EAAEkpF,iBAAiBU,WAAa,IAAI+J,GAAW,GAAI3zF,GACnDA,EAAEipF,iCACFjpF,EAAEg0D,WAAWh0D,EAAEkpF,iBAAiBU,YAChC5pF,EAAEkpF,iBAAiBU,WAAW2K,eAAev0F,EAAEkkF,YAE/ClkF,EAAEwrF,kBAAoB,IAAIqJ,GAAkB,GAAI70F,GAChDA,EAAEg0D,WAAWh0D,EAAEwrF,mBACfxrF,EAAEl0B,KAAO,aACTk0B,EAAEorF,mBAAmB,IAAIvG,GAAU,GAAI7kF,IACvCA,EAAEsrF,mBAAmBtrF,EAAEkrF,qBAAqBt3G,IAC5CosB,EAAEg0D,WAAWh0D,EAAEkrF,sBAEflrF,EAAEmoF,oBAAsB,IAAI+O,GAAoB,GAAIl3F,GACpDA,EAAEkqF,4BACFlqF,EAAEg0D,WAAWh0D,EAAEmoF,qBACfnoF,EAAEmoF,oBAAoBj0B,mBAEfl0D,CACT,CAEA+3F,QAAQ/3F,GACNt3B,KAAKmvH,MAAMvmH,KAAK0uB,EAClB,CAEAg4F,aAAapkH,GACX,OAAOlL,KAAKmvH,MAAMvvF,KAAKtI,GAAKA,EAAEpsB,KAAOA,EACvC,CAEAqkH,kBAAkBrkH,GAChB,OAAOlL,KAAKmvH,MAAM3yB,UAAUllE,GAAKA,EAAEpsB,KAAOA,EAC5C,CAEA6gF,SACE,MAAO,CACLojC,MAAOnvH,KAAKmvH,MACZK,QAASxvH,KAAKwvH,QACdpsH,KAAMpD,KAAKoD,KAEf,EC5EI,MAAOqsH,GAGX5vH,YAAY6vH,GACV1vH,KAAK0vH,WAAaA,CACpB,CAEAC,cACE3vH,KAAK0vH,WAAWE,iBAClB,ECPI,MAAOC,GAOX1vH,kCAAkCm3B,GAEhC,MAAQkkF,cAAelkF,EACvBA,SAAEmlE,gBAAgB+e,GAEX,CACL1xB,UAAWxyD,EACXkkF,aAEJ,CAEAr7G,yBAAyB2vH,GACvB,MAAMx4F,EAAIw4F,EAAahmC,UAEvBxyD,EAAEkkF,WAAasU,EAAatU,WAC5BlkF,EAAEg0D,WAAWh0D,EAAEkkF,YACflkF,EAAEkkF,WAAWhwB,kBACf,CAEArrF,8BAA8B4vH,GAE5B,UAAWnlB,KAAMmlB,EACfnlB,EAAG9gB,UAAU02B,iBAAiBqI,oBAAoBjgH,KAAKgiG,GACvDA,EAAG9gB,UAAUwB,WAAWsf,GACxBA,EAAG4b,qBAEP,CAEArmH,sCAAsC6vH,GACpC,MAAMC,EAAmBD,EAAelmC,UAAU02B,iBAAiBqI,oBAAoB9wG,OACpF6yF,GACQA,EAAG1/F,KAAO8kH,EAAe9kH,IAIpC,UAAW0/F,KAAMqlB,EAAkB,CACjCD,EAAelmC,UAAU02B,iBAAiBqI,oBAAoB13G,OAC5D6+G,EAAelmC,UAAU02B,iBAAiBqI,oBAAoB33G,QAAQ05F,GACtE,GAGFolB,EAAelmC,UAAU2S,gBAAgBmO,GAEzC,UAAWnxE,KAAKmxE,EAAGma,oBACjBiL,EAAelmC,UAAU2S,gBAAgBhjE,EAAC,CAI9C,OAAOw2F,CACT,CAEA9vH,+BAA+Bm3B,EAAS44F,GACtC,MAAMC,EAAM74F,EAAEkpF,iBAER4P,EAAkBD,EAAIpH,kBAAkBhxG,OAAOktG,IAC5CiL,GAAcA,EAAYhlH,KAAO+5G,EAAG/5G,IAG7C,UAAW+5G,KAAMmL,EAAiB,CAChCD,EAAIpH,kBAAkB53G,OAAOg/G,EAAIpH,kBAAkB73G,QAAQ+zG,GAAK,GAChE,MAAMxrF,EAAIwrF,EAAG/B,UACb5rF,EAAEmlE,gBAAgBwoB,GAClB3tF,EAAEmlE,gBAAgBhjE,GAClBwrF,EAAG/B,UAAYzpF,EAGjB,OAAO22F,CACT,CAEAjwH,6BAA6Bm3B,EAAS+4F,GACpC,UAAWpL,KAAMoL,EACfpL,EAAGn7B,UAAYxyD,EACfA,EAAEg0D,WAAW25B,GACb3tF,EAAEkpF,iBAAiBuI,kBAAkBngH,KAAKq8G,GAGtCA,EAAG/B,WACL5rF,EAAEg0D,WAAW25B,EAAG/B,UAGtB,ECxFK,IAAMoN,GAAiB,MAAxB,MAAOA,EADbzwH,cAEUG,uBAAoB,IAAIooB,MAChCpoB,uBAAoBA,KAAKuwH,kBAAkBtnE,eAEnCjpD,kCAA+B,IAAIooB,MAC3CpoB,kCAA+BA,KAAKwwH,6BAA6BvnE,eAEzDjpD,4BAAyB,IAAIooB,MACrCpoB,4BAAyBA,KAAKywH,uBAAuBxnE,eAE7CjpD,4BAAyB,IAAIooB,MACrCpoB,4BAAyBA,KAAK0wH,uBAAuBznE,eAErDsN,KAAKz2C,GACH9f,KAAKuwH,kBAAkBz3G,KAAK,CAAEgH,UAAS6wG,SAAU,OAAQC,UAAW,IAAI7nG,MAC1E,CAEAytC,QAAQ12C,GACN9f,KAAKuwH,kBAAkBz3G,KAAK,CAAEgH,UAAS6wG,SAAU,UAAWC,UAAW,IAAI7nG,MAC7E,CAEAlQ,MAAMiH,GACJ9f,KAAKuwH,kBAAkBz3G,KAAK,CAAEgH,UAAS6wG,SAAU,QAASC,UAAW,IAAI7nG,MAC3E,CAEA8nG,sBAAsBC,GACpB9wH,KAAKwwH,6BAA6B13G,KAAKg4G,EACzC,CAEAC,kBACE/wH,KAAKywH,uBAAuB33G,MAC9B,CAEAk4G,kBACEhxH,KAAK0wH,uBAAuB53G,MAC9B,CAAC3Y,kDAnCUmwH,EAAiB,iEAAjBA,EAAiBlrH,QAAjBkrH,EAAiB,mBAAjBA,CAAiB,KCEjBW,GAAwB,MAA/B,MAAOA,EADbpxH,cAKUG,iBAAc,IAAIooB,MAC1BpoB,iBAAcA,KAAKkxH,YAAYjoE,eAEvBjpD,iBAAc,IAAIooB,MAC1BpoB,iBAAcA,KAAKmxH,YAAYloE,eAEvBjpD,mBAAgB,IAAIooB,MAC5BpoB,mBAAgBA,KAAKoxH,cAAcnoE,eAEnCkN,KAAKzqD,GACCA,IACF1L,KAAKqxH,eAAiB3lH,EAAK2lH,gBAE7BrxH,KAAKkxH,YAAYp4G,KAAKpN,GAAQ,GAChC,CAEAg9E,OACE1oF,KAAKmxH,YAAYr4G,MACnB,CAEAwrE,SAEEtkF,KAAKqxH,eAAe1B,cACpB3vH,KAAK0oF,OACL1oF,KAAKqxH,oBAAiBpjH,CACxB,CAEAqjH,cAAc5B,GACZ1vH,KAAK0vH,WAAaA,CACpB,CAACvvH,kDAjCU8wH,EAAwB,iEAAxBA,EAAwB7rH,QAAxB6rH,EAAwB,mBAAxBA,CAAwB,KCQxBM,GAAU,MAAjB,MAAOA,EAKX1xH,YACUwsB,EACAmlG,EACAC,EACA3oE,GAHA9oD,YACAA,kBACAA,yBACAA,mBAERA,KAAKqxH,eAAiB,IAAI5B,GAAmBzvH,KAC/C,CAEA0xH,mBACE,OAAO1xH,KAAKqsB,KAAKroB,IAAI,yBACvB,CAEA2tH,UAAU/5G,EAAkBg6G,GAC1B,MAAMC,EAAcj6G,EAAQu3G,MAAMvvF,KAAKtI,GAAKA,EAAEpsB,KAAO0mH,GAC/CE,EAAaD,EAAYpT,cACzBgE,EAAkBoP,EAAYrP,qBAC9BuP,EAA+B,CACnCjsB,YAAa+rB,EAAY/rB,YACzB0pB,QAAS53G,EAAQ43G,QACjBwC,UAAWH,EACX3kG,SAAUltB,KAAK8oD,YAAYt6B,yBAC3ByjG,MAAOjyH,KAAK8oD,YAAYn6B,gBACxBg7B,OAAQ3pD,KAAK8oD,YAAY16B,oBAIrB8jG,EAAe,IAAI9pG,MACnB+pG,EAAkBD,EAAajpE,eACrC,IAAImpE,EAAoBC,YAAYvpG,MAEpC,YAAK5I,QAAUlgB,KAAKqsB,KAAKzL,KpN/CnB,0CoN+C4CmxG,EAAY,CAAE74G,QAASlZ,KAAKytB,eAAgBlV,UAC5F+K,IACYA,EAAUgvG,YAClBJ,EAAap5G,KAAK,CAAE0wC,SAAS,EAAO3wC,MAAOyK,IAC3CtjB,KAAK2rD,aAAeroC,IAEpB8uG,EAAoBC,YAAYvpG,MAAQspG,EACxCF,EAAap5G,KAAK,CAChB0wC,SAAS,EACT+oE,eAAgBjvG,EAChBkvG,iBAAkBV,EAClBrP,gBAAiBA,EAAgBv3G,GACjCknH,sBACD,EAGLv5G,IACEq5G,EAAap5G,KAAK,CAAE0wC,SAAS,EAAO3wC,UAGlC7Y,KAAK2rD,aADH9yC,EAAMA,MACYA,EAAMA,MAENA,IAOnBs5G,CACT,CAOAM,yBAAyBC,GAgBvB,OAfY,IAAInwG,KAAWC,IACzBkwG,EAASvuH,KAAKuH,IACZA,EAAKuO,OAAO,QAASja,KAAK2rD,cAC1BjgD,EAAKuO,OAAO,OAAQuE,KAAKC,UAAUze,KAAK8oD,YAAYz6B,mBACpD3iB,EAAKuO,OAAO,eAAgBja,KAAK2rD,aAAaH,WAAa,GAAKhtC,KAAKC,UAAUze,KAAK2rD,eACpF3rD,KAAKqsB,KAAKzL,KpNrFH,4CoNqFiClV,EAAM,CAAEwN,QAASlZ,KAAK2yH,wBAAyBp6G,UACrF,KACEiK,EAAS1J,MAAI,EAEf,KACE0J,EAAS3J,OAAK,EACf,EAEJ,EAGL,CAEA+5G,eAAeF,EAAUG,GACvB,OAAO,IAAItwG,KAAWC,IACpBkwG,EAASvuH,KAAKuH,IACZA,EAAKuO,OAAO,OAAQuE,KAAKC,UAAUze,KAAK8oD,YAAYz6B,mBACpD3iB,EAAKuO,OAAO,mBAAoB44G,GAChC7yH,KAAK8yH,sBAAsBpnH,EAAM8W,EAAQ,EAC1C,EAEL,CAEQswG,sBAAsBpnH,EAAM8W,GAClCxiB,KAAKqsB,KAAKzL,KpNjHK,0CoNiH6BlV,EAAM,CAAEwN,QAASlZ,KAAK2yH,wBAAyBp6G,UACzF+K,IACEd,EAAS1J,KAAK,CAAE0wC,SAAS,EAAM+oE,eAAgBjvG,GAAU,EAE3DzK,IACE2J,EAAS3J,OAAK,EAGpB,CAEA+2G,kBACE5vH,KAAKkgB,QAAQiI,cAIbnoB,KAAKwxH,WAAWh7D,QAAQ,iCAC1B,CAEQ/oC,aACN,OAAO,IAAIxU,IAAczS,IAAI,SAAU,mBACzC,CAEQmsH,sBACN,OAAO,IAAI15G,IAAczS,IAAI,UAAW,sBAC1C,CAEAusH,qBAAqBjD,GACnBD,qBAA0CC,EAC5C,CAAC3vH,kDAnIUoxH,GAAUzjG,qKAAVyjG,EAAUnsH,QAAVmsH,EAAU,mBAAVA,CAAU,KCZjB,MAAgByB,GAapBnzH,YAAsB8J,GACpB3J,KAAKkL,GAAKvB,EAAEuB,GACZlL,KAAKizH,QAAUtpH,EAAEmH,IACjB9Q,KAAK+Z,KAAOpQ,EAAEouG,mBAAmBjnG,IACjC9Q,KAAKkzH,GAAKvpH,EAAE6jG,oBAAoB18F,IAChC9Q,KAAK23G,SAAWhuG,EAAEguG,SAClB33G,KAAK43G,OAASjuG,EAAEiuG,OAChB53G,KAAKoD,KAAOuG,EAAEvG,MAAQuG,EAAEquG,eACxBh4G,KAAKg4G,eAAiBruG,EAAEquG,eACxBh4G,KAAK03G,YAAc/tG,EAAE+tG,WACvB,ECnBI,MAAOyb,WAAiCH,GAS5CnzH,YAAY8J,GACV7J,MAAM6J,GATC3J,cAAWy8G,mBAWlBz8G,KAAKozH,uBAAyB1lC,cAAcgK,MAAM27B,mBAAmBC,MACrEtzH,KAAKm8F,mBAAqBxyF,EAAEwyF,mBAAmB/N,qBAAqBpuF,KAAKozH,wBAAwB,GAEjGpzH,KAAKuzH,iBAAmB7lC,cAAcgK,MAAMG,cAAcC,OAC1D93F,KAAKu3F,aAAe5tF,EAAE4tF,aAAanJ,qBAAqBpuF,KAAKuzH,kBAAkB,GAE/EvzH,KAAKwzH,UAAY9lC,cAAcgK,MAAM+7B,kBAAkBC,QACvD1zH,KAAKs0F,MAAQ3qF,EAAE2qF,MAAMlG,qBAAqBpuF,KAAKwzH,WAAW,GAE1DxzH,KAAK2zH,YAAchqH,EAAEwwG,aACvB,ECpBF,MAAMyZ,GACJzzH,iBAAiB04F,GAEf,MAAMmD,EADInD,EAAG/O,UACSmS,4BAA4BtyF,GACzCA,EAAEuyF,wBAA0BrD,EAAG3tF,IACrC,GAEG2oH,EAAuC,GAE7CA,SAAe,GAAK,CAClBC,aAAcj7B,EAAGzB,SAASh0F,KAC1B2wH,cAAel7B,EAAGzB,SAAS9I,sBAAqB,GAAM,GACtDnvB,KAAM05B,EAAGzB,SAAS3J,iBAClBsQ,eAAgB,iBAChBC,gBAAiBhC,EAAcA,EAAYG,mBAAmB7N,sBAAqB,GAAM,QAAQrgF,GAG/F4qF,aAAc6G,KAChBm0B,EAAe,GAAK,CAClBC,aAAcj7B,EAAGkH,gBAAgB38F,KACjC2wH,cAAel7B,EAAGkH,gBAAgBzR,sBAAqB,GAAM,GAC7DnvB,KAAM05B,EAAGkH,gBAAgBtS,iBACzBsQ,eAAgB,eAChBC,gBAAiBhC,EAAcA,EAAYmE,YAAY7R,sBAAqB,GAAM,QAAQrgF,IAIvF4lH,CACT,EAGI,MAAOG,GAYXn0H,YAAYg5F,GAgBV,GAfA74F,KAAKkL,GAAK2tF,EAAG3tF,GACblL,KAAKoD,KAAOy1F,EAAGz1F,KAEfpD,KAAKooC,SAAWywD,EAAGzwD,SACnBpoC,KAAK8Q,IAAM+nF,EAAG/nF,IACd9Q,KAAKurF,SAAWsN,EAAGtN,SACnBvrF,KAAKi1F,UAAY4D,EAAG5D,UAEhB4D,aAAc+T,KAChB5sG,KAAK6sG,SAAWhU,EAAGgU,UAEjBhU,aAAcmb,KAChBh0G,KAAK6sG,SAAWhU,EAAGgU,UCvDnB,SAAUonB,GAAsBC,GACpC,MAAiE,mBAAlDA,EAA2Bn4B,kBAC5C,CDwDQk4B,CAAsBp7B,GAAK,CAC7B,MAAMq7B,EAAKr7B,EAEX74F,KAAKm0H,eAAiB,CACpB7gC,uBAAwB4gC,EAAG5gC,yBAC3B7zE,WAAYy0G,EAAGn4B,qBAAuB,sBAAwB,2BAC9D83B,eAAgBD,GAAqBQ,UAAUF,GAC/CG,gBAAiB,IAGfr0H,KAAKm0H,eAAe7gC,yBAGlBtzF,KAAKm0H,eAAeE,gBAFpBx7B,EAAG/O,UAAU+iB,SACXqnB,EAAGn4B,qBACiC,MAEA,QAGF,UAI9C,EEnFI,MAAOu4B,WAAgCtB,GAW3CnzH,YAAY8J,GACV7J,MAAM6J,GAXC3J,cAAWy8G,yBAalBz8G,KAAKu0H,iBAAmB7mC,cAAcgK,MAAMC,aAAasS,KACzDjqG,KAAK6pG,aAAelgG,EAAEkgG,aAAazb,qBAAqBpuF,KAAKu0H,kBAAkB,GAE/Ev0H,KAAKw0H,gBAAkB7qH,EAAEmgG,YAAYrc,iBACrCztF,KAAK8pG,YAAcngG,EAAEmgG,YAAYxb,sBAAqB,GAAM,GAE5DtuF,KAAKy0H,aAAe9qH,EAAEogG,SAAStc,iBAC/BztF,KAAK+pG,SAAWpgG,EAAEogG,SAASzb,sBAAqB,GAAM,GAEtDtuF,KAAK2zH,YAAchqH,EAAEwwG,aACvB,EC1BI,MAAOua,WAAkC1B,GAS7CnzH,YAAY8J,GACV7J,MAAM6J,GATC3J,cAAWy8G,4BAWlBz8G,KAAKm5F,SAAWxvF,EAAEwvF,SAAS7K,sBAAqB,GAAM,GACtDtuF,KAAK20H,aAAehrH,EAAEwvF,SAAS1L,iBAE/BztF,KAAKw0G,SAAW7qG,EAAE6qG,SAASlmB,sBAAqB,GAAM,GACtDtuF,KAAK40H,aAAejrH,EAAE6qG,SAAS/mB,iBAE/BztF,KAAK88G,IAAMnzG,EAAEmzG,IAAIxuB,sBAAqB,GAAM,GAC5CtuF,KAAK60H,QAAUlrH,EAAEmzG,IAAIrvB,iBAErBztF,KAAK2zH,YAAchqH,EAAEwwG,aACvB,ECjBI,MAAO2a,GACX30H,cAAc08G,GACZ,GAAIA,aAAkBxE,GACpB,OAAO,IAAI8a,GAAyBtW,GAEtC,GAAIA,aAAkBH,GACpB,OAAO,IAAI4X,GAAwBzX,GAErC,GAAIA,aAAkBD,GACpB,OAAO,IAAI8X,GAA0B7X,GAGvC,MAAM,IAAIp2G,MAAM,uBAAuBo2G,EAAOtxB,WAChD,ECFK,IAAMwpC,GAAuB,MAA9B,MAAOA,EADbl1H,cAMUG,sBAAmB,IAAIooB,MAC/BpoB,sBAAmBA,KAAKg1H,iBAAiB/rE,eAEjCjpD,+BAA4B,IAAIooB,MACxCpoB,+BAA4BA,KAAKi1H,0BAA0BhsE,eAEnDjpD,8BAA2B,IAAIooB,MACvCpoB,8BAA2BA,KAAKk1H,yBAAyBjsE,eAEjDjpD,8BAA2B,IAAIooB,MACvCpoB,8BAA2BA,KAAKm1H,yBAAyBlsE,eAEjDjpD,mCAAgC,IAAIooB,MAC5CpoB,mCAAgCA,KAAKo1H,8BAA8BnsE,eAE3DjpD,qCAAkC,IAAIooB,MAC9CpoB,qCAAkCA,KAAKq1H,gCAAgCpsE,eAE/DjpD,mCAAgC,IAAIooB,MAC5CpoB,mCAAgCA,KAAKs1H,8BAA8BrsE,eAE3DjpD,4CAAyC,IAAIooB,MACrDpoB,4CAAyCA,KAAKu1H,uCAAuCtsE,eAE7EjpD,uCAAoC,IAAIooB,MAChDpoB,uCAAoCA,KAAKw1H,kCAAkCvsE,eAEnEjpD,8BAA2B,IAAIooB,MACvCpoB,8BAA2BA,KAAKy1H,yBAAyBxsE,eAEjDjpD,wBAAqB,IAAIooB,MACjCpoB,wBAAqBA,KAAK01H,mBAAmBzsE,eAErCjpD,wBAAqB,IAAIooB,MACjCpoB,wBAAqBA,KAAK21H,mBAAmB1sE,eAErCjpD,0BAAuB,IAAIooB,MACnCpoB,0BAAuBA,KAAK41H,qBAAqB3sE,eAEzCjpD,wBAAqB,IAAIooB,MACjCpoB,wBAAqBA,KAAK61H,mBAAmB5sE,eAErCjpD,wBAAqB,IAAIooB,MACjCpoB,wBAAqBA,KAAK81H,mBAAmB7sE,eAErCjpD,wBAAqB,IAAIooB,MACjCpoB,wBAAqBA,KAAK+1H,mBAAmB9sE,eAErCjpD,wBAAqB,IAAIooB,MACjCpoB,wBAAqBA,KAAKg2H,mBAAmB/sE,eAE7CgtE,kBAAkB1qC,GAChBvrF,KAAKk2H,eAAiB3qC,CACxB,CAGA4qC,mBACEn2H,KAAKg1H,iBAAiBl8G,MACxB,CAEAs9G,mBAAmBC,GACjBr2H,KAAKi1H,0BAA0Bn8G,KAAKu9G,EACtC,CAEAC,kBAAkBD,GAChBr2H,KAAKk1H,yBAAyBp8G,KAAKu9G,EACrC,CAEAE,kBAAkBC,GAChBx2H,KAAKm1H,yBAAyBr8G,KAAK09G,EACrC,CAEAC,uBAAuBD,GACrBx2H,KAAKo1H,8BAA8Bt8G,KAAK09G,EAC1C,CAEAE,yBAAyBF,GACvBx2H,KAAKq1H,gCAAgCv8G,KAAK09G,EAC5C,CAEAG,YAAYC,GACV,MAAMC,EAAU72H,KAAK82H,YAAY5uC,MAAMyN,mBAAmBihC,EAAS78G,MAAM7O,GACnEqxF,EAAWv8F,KAAK82H,YAAY5uC,MAAMyN,mBAAmBihC,EAAS1D,IAAIhoH,GAExElL,KAAK21H,mBAAmB78G,KAAK,CAAE5N,GAAI0rH,EAAS1rH,GAAI6rH,cAAeF,EAASG,eAAgBz6B,GAC1F,CAEA06B,YAAYvhC,GACV11F,KAAK61H,mBAAmB/8G,KAAK48E,EAC/B,CAEAwhC,YAAYxhC,GACV11F,KAAK+1H,mBAAmBj9G,KAAK48E,EAC/B,CAEAyhC,YAAYzhC,GACV11F,KAAK82H,YAAY5uC,MAAM0N,iBAAiB,cACxC51F,KAAK82H,YAAY5uC,MAAMivC,YAAYzhC,GACnC11F,KAAK82H,YAAY5uC,MAAM4N,kBAAkB,cACzC91F,KAAK82H,YAAYM,eACnB,CAEAC,YAAYhB,GACVr2H,KAAK81H,mBAAmBh9G,KAAKu9G,EAC/B,CAMAiB,YAAYhgG,GACVt3B,KAAKg2H,mBAAmBl9G,KAAKwe,GAC7Bt3B,KAAKu3H,gBAAgBjgG,EACvB,CAOAkgG,kCAAkClgG,GAEhC,UAAWmgG,KAAQngG,EAAEqmF,kBACnB39G,KAAK03H,yBAAyBpgG,EAAEioE,iBAAiBk4B,GAErD,CAKAC,yBAAyB7+B,EAAmBntF,GAC1C,MAAMisH,EAAS,IAAI3D,GAAkBn7B,GAErC,IAAIh4F,EAOJ,GALEA,EADE6K,EACK1L,KAAK82H,YAAYc,gBAAgBlsH,GAEjC1L,KAAK82H,YAAYe,mBAAmB,CAAE3sH,GAAI2tF,EAAG3tF,KAAMiV,QAGxDtf,EAAM,CACR,MAAM60F,EAAW70F,EAAK6K,KACtB1L,KAAK82H,YAAY5uC,MAAM0N,iBAAiB,QACxC51F,KAAK82H,YAAY5uC,MAAM2N,gBAAgBH,EAAU,KAAMiiC,EAAOzsH,IAC9DlL,KAAK82H,YAAY5uC,MAAM2N,gBAAgBH,EAAU,OAAQiiC,EAAOv0H,MAChEpD,KAAK82H,YAAY5uC,MAAM2N,gBAAgBH,EAAU,YAAaiiC,EAAO1iC,WACrEj1F,KAAK82H,YAAY5uC,MAAM2N,gBAAgBH,EAAU,iBAAkBiiC,EAAOxD,gBACtEt7B,aAAc+T,IAChB5sG,KAAK82H,YAAY5uC,MAAM2N,gBAAgBH,EAAU,WAAYiiC,EAAO9qB,UAElEhU,aAAcmb,IAChBh0G,KAAK82H,YAAY5uC,MAAM2N,gBAAgBH,EAAU,WAAYiiC,EAAO9qB,UAGtE7sG,KAAK82H,YAAY5uC,MAAM4N,kBAAkB,OAAM,CAEnD,CAEAgiC,kBAAkBnuH,GAChB,MAAMitH,EAAY52H,KAAK82H,YAAY5uC,MAA0B6vC,mBAAmBpuH,EAAEmH,KAC5EknH,EAAKlD,UAAyBnrH,GAEpC3J,KAAK82H,YAAY5uC,MAAM0N,iBAAiB,cACxC51F,KAAK82H,YAAY5uC,MAAM2N,gBAAgB+gC,EAAU,WAAYoB,EAAGzsC,UAChEvrF,KAAK82H,YAAY5uC,MAAM2N,gBAAgB+gC,EAAU,KAAMoB,EAAG9sH,IAC1DlL,KAAK82H,YAAY5uC,MAAM2N,gBAAgB+gC,EAAU,cAAeoB,EAAGtgB,aACnE13G,KAAK82H,YAAY5uC,MAAM2N,gBAAgB+gC,EAAU,OAAQoB,EAAG50H,MAC5DpD,KAAK82H,YAAY5uC,MAAM2N,gBAAgB+gC,EAAU,uBAAwBjtH,EAAEkuG,sBAC3E73G,KAAK82H,YAAY5uC,MAAM2N,gBAAgB+gC,EAAU,wBAAyBjtH,EAAEuyF,uBAC5El8F,KAAK82H,YAAY5uC,MAAM2N,gBAAgB+gC,EAAU,iBAAkBoB,EAAGhgB,gBACtEh4G,KAAK82H,YAAY5uC,MAAM4N,kBAAkB,aAC3C,CAKAmiC,iCAC4Bj4H,KAAK82H,YAAYe,mBAAmB,CAAEK,WAAW,IAEzDC,KAAKt3H,IACrBb,KAAK82H,YAAY5uC,MAAM0N,iBAAiB,iBACxC51F,KAAK82H,YAAY5uC,MAAM2N,gBAAgBh1F,EAAK6K,KAAM,aAAa,GAC/D1L,KAAK82H,YAAY5uC,MAAM4N,kBAAkB,gBAAe,EAE5D,CAMAsiC,6BAA6Bv/B,GAC3B,MAAMnD,EAAW11F,KAAK82H,YAAY5uC,MAAMyN,mBAAmBkD,EAAG/nF,KAC9D9Q,KAAK82H,YAAY5uC,MAAM0N,iBAAiB,QACxC51F,KAAK82H,YAAY5uC,MAAM2N,gBAAgBH,EAAU,aAAa,GAC9D11F,KAAK82H,YAAY5uC,MAAM4N,kBAAkB,OAC3C,CAEAuiC,UAAUlwH,GACJA,EAAEmwH,QAAQC,SAAS7sH,KAAK6/E,WAAa0D,gBACvCjvF,KAAKs1H,8BAA8Bx8G,KAAK,CACtC0/G,WAAYrwH,EAAEmwH,QAAQC,SAAS7sH,KAAKR,GACpCipF,gBAAiBhsF,EAAEmwH,QAAQG,OAAO/sH,KAAKR,KAEhC/C,EAAEmwH,QAAQG,OAAO/sH,KAAK6/E,WAAa0D,cAC5CjvF,KAAKy1H,yBAAyB38G,KAAK3Q,EAAEmwH,QAAQG,OAAO/sH,MAGlDvD,EAAEmwH,QAAQC,SAAS7sH,KAAK6/E,WAAa0D,sBACvCjvF,KAAKs1H,8BAA8Bx8G,KAAK,CACtC0/G,WAAYrwH,EAAEmwH,QAAQC,SAAS7sH,KAAKR,GACpCipF,gBAAiBhsF,EAAEmwH,QAAQG,OAAO/sH,KAAKR,KAIvC/C,EAAEmwH,QAAQC,SAAS7sH,KAAK6/E,WAAa0D,wBACvCjvF,KAAKs1H,8BAA8Bx8G,KAAK,CACtC0/G,WAAYrwH,EAAEmwH,QAAQC,SAAS7sH,KAAKR,GACpCipF,gBAAiBhsF,EAAEmwH,QAAQG,OAAO/sH,KAAKR,KAIvC/C,EAAEmwH,QAAQC,SAAS7sH,KAAK6/E,WAAa0D,oBACvCjvF,KAAKs1H,8BAA8Bx8G,KAAK,CACtC0/G,WAAYrwH,EAAEmwH,QAAQC,SAAS7sH,KAAKR,GACpCipF,gBAAiBhsF,EAAEmwH,QAAQG,OAAO/sH,KAAKR,MAIzC/C,EAAEmwH,QAAQC,SAAS7sH,KAAK6/E,WAAa0D,YACrC9mF,EAAEmwH,QAAQC,SAAS7sH,KAAK6/E,WAAa0D,aAErCjvF,KAAKw1H,kCAAkC18G,KAAK,CAC1C5N,GAAI/C,EAAEmwH,QAAQC,SAAS7sH,KAAKR,GAC5BipF,gBAAiBhsF,EAAEmwH,QAAQG,OAAO/sH,KAAKR,KAIvC/C,EAAEmwH,QAAQG,OAAO/sH,KAAK6/E,WAAa0D,sBACrCjvF,KAAKs1H,8BAA8Bx8G,KAAK,CACtC0/G,WAAYrwH,EAAEmwH,QAAQG,OAAO/sH,KAAKR,GAClCipF,gBAAiBhsF,EAAEmwH,QAAQC,SAAS7sH,KAAKR,KAIzC/C,EAAEmwH,QAAQC,SAAS7sH,KAAK6/E,WAAa0D,0BACvCjvF,KAAKu1H,uCAAuCz8G,KAAK,CAC/C5N,GAAI/C,EAAEmwH,QAAQC,SAAS7sH,KAAKR,GAC5BipF,gBAAiBhsF,EAAEmwH,QAAQG,OAAO/sH,KAAKR,MAKzC/C,EAAEmwH,QAAQG,OAAO/sH,KAAK6/E,WAAa0D,qBACnC9mF,EAAEmwH,QAAQG,OAAO/sH,KAAK6/E,WAAa0D,+BAEnCjvF,KAAKs1H,8BAA8Bx8G,KAAK,CACtC0/G,WAAYrwH,EAAEmwH,QAAQG,OAAO/sH,KAAKR,GAClCipF,gBAAiBhsF,EAAEmwH,QAAQC,SAAS7sH,KAAKR,KAI7ClL,KAAK01H,mBAAmB58G,KAAK,CAC3B++F,qBAAsB1vG,EAAEmwH,QAAQC,SAAS7sH,KAAKR,GAC9CgxF,sBAAuB/zF,EAAEmwH,QAAQG,OAAO/sH,KAAKR,GAC7CA,GAAI/C,EAAEmwH,QAAQ5sH,KAAKR,GACnBysG,SAAUxvG,EAAEmwH,QAAQ5sH,KAAKisG,SACzBC,OAAQzvG,EAAEmwH,QAAQ5sH,KAAKksG,OACvB9mG,IAAK3I,EAAEmwH,QAAQ5sH,KAAKunH,QACpB1nC,SAAUvrF,KAAKk2H,eACfpe,iBAAiB,GAErB,CAIQyf,gBAAgBjgG,GACtB,MAAMohG,EAAgB,GAChBC,EAAgB,GAChBC,EAAe,GAGrB,UAAWnB,KAAQngG,EAAEqmF,kBAAmB,CACtC,MAAMnvE,EAAI,IAAIwlF,GAAkB18F,EAAEqmF,kBAAkB8Z,IAGhD7qC,GAAkBp+C,EAAE19B,MAAuB,KAAV09B,EAAE19B,YAC9B09B,EAAE19B,IACT8nH,EAAahwH,KAAK4lC,IAElBkqF,EAAc9vH,KAAK4lC,EAAC,CAKxBxuC,KAAK82H,YAAYnvH,QACjB3H,KAAK82H,YAAY5uC,MAAM0N,iBAAiB,eACxC51F,KAAK82H,YAAY5uC,MAAM2wC,sBAAsBH,GAC7C14H,KAAK82H,YAAY5uC,MAAM4N,kBAAkB,eAGzC,UAAWj1F,KAAQ+3H,EACjB54H,KAAKm3H,YAAYt2H,GACjBy2B,EAAEioE,iBAAiB1+F,EAAKqK,IAAI4F,IAAMjQ,EAAKiQ,IAGzC9Q,KAAK82H,YAAY5uC,MAAM0N,iBAAiB,eAGxC,MAAMk0B,EAAYxyF,EAAEsnF,gCAEpB,UAAW1zG,KAAM4+G,EAAW,CAC1B,MAAMjN,EAASvlF,EAAE+mF,wBAAwBnzG,GAEzC,IAAK2xG,EACH,OAGF8b,EAAc/vH,KAAKksH,UAAyBjY,GAAO,CAGpD78G,KAAK82H,YAAY5uC,MAA0B4wC,sBAAsBH,GAClE34H,KAAK82H,YAAY5uC,MAAM4N,kBAAkB,eAEzC91F,KAAK82H,YAAYiC,UAAU/4H,KAAK82H,YAAY/hF,MAAO,IAAIikF,SAAM,EAAG,IAAI,EACtE,CAEAC,wBAAwB7jB,GAEtB,UAAW0I,KAAO1I,EAAG2I,mBAAoB,CACvC,MAAMlB,EAASzH,EAAG2I,mBAAmBD,GAC/Bob,EAAOl5H,KAAK82H,YAAYe,mBAAmB,CAAE3sH,GAAI2xG,EAAO3xG,KAAMiV,QAChE+4G,IACFl5H,KAAK82H,YAAY5uC,MAAM0N,iBAAiB,oBACxC51F,KAAK82H,YAAY5uC,MAAM2N,gBAAgBqjC,EAAKxtH,KAAM,kBAAmBmxG,EAAO/E,iBAC5E93G,KAAK82H,YAAY5uC,MAAM4N,kBAAkB,oBAAkB,CAGjE,CAEAqjC,iBAAiB7hG,EAAS8hG,GAKxB,MAAMtP,EAAYxyF,EAAEwnF,0BACpB,UAAWhB,KAAOgM,EAAW,CAC3B,MAAMjN,EAASvlF,EAAE0mF,kBAAkBF,GAEnC,IAAKjB,EACH,OAGF,MAAMwc,EAAWr5H,KAAK82H,YAAYwC,mBAAmB,CAAEpuH,GAAI2xG,EAAO3xG,KAAMiV,QAClEo5G,EAAazE,UAAyBjY,GACxCwc,IACFr5H,KAAK82H,YAAY5uC,MAAM0N,iBAAiB,gBAEnCwjC,IACHp5H,KAAK82H,YAAY5uC,MAAM2N,gBAAgBwjC,EAAS3tH,KAAM,aAAc6tH,EAAW5F,YAE3E4F,aAAsBpG,IACxBnzH,KAAK82H,YAAY5uC,MAAM2N,gBAAgBwjC,EAAS3tH,KAAM,qBAAsB6tH,EAAWp9B,oBACvFn8F,KAAK82H,YAAY5uC,MAAM2N,gBACrBwjC,EAAS3tH,KACT,yBACA6tH,EAAWnG,wBAEbpzH,KAAK82H,YAAY5uC,MAAM2N,gBAAgBwjC,EAAS3tH,KAAM,eAAgB6tH,EAAWhiC,cACjFv3F,KAAK82H,YAAY5uC,MAAM2N,gBAAgBwjC,EAAS3tH,KAAM,mBAAoB6tH,EAAWhG,mBAC5EgG,aAAsBjF,IAC/Bt0H,KAAK82H,YAAY5uC,MAAM2N,gBAAgBwjC,EAAS3tH,KAAM,eAAgB6tH,EAAW1vB,cACjF7pG,KAAK82H,YAAY5uC,MAAM2N,gBAAgBwjC,EAAS3tH,KAAM,mBAAoB6tH,EAAWhF,kBACrFv0H,KAAK82H,YAAY5uC,MAAM2N,gBAAgBwjC,EAAS3tH,KAAM,cAAe6tH,EAAWzvB,aAChF9pG,KAAK82H,YAAY5uC,MAAM2N,gBAAgBwjC,EAAS3tH,KAAM,kBAAmB6tH,EAAW/E,iBACpFx0H,KAAK82H,YAAY5uC,MAAM2N,gBAAgBwjC,EAAS3tH,KAAM,WAAY6tH,EAAWxvB,UAC7E/pG,KAAK82H,YAAY5uC,MAAM2N,gBAAgBwjC,EAAS3tH,KAAM,eAAgB6tH,EAAW9E,eACxE8E,aAAsB7E,KAC/B10H,KAAK82H,YAAY5uC,MAAM2N,gBAAgBwjC,EAAS3tH,KAAM,WAAY6tH,EAAWpgC,UAC7En5F,KAAK82H,YAAY5uC,MAAM2N,gBAAgBwjC,EAAS3tH,KAAM,eAAgB6tH,EAAW5E,cACjF30H,KAAK82H,YAAY5uC,MAAM2N,gBAAgBwjC,EAAS3tH,KAAM,WAAY6tH,EAAW/kB,UAC7Ex0G,KAAK82H,YAAY5uC,MAAM2N,gBAAgBwjC,EAAS3tH,KAAM,eAAgB6tH,EAAW3E,cACjF50H,KAAK82H,YAAY5uC,MAAM2N,gBAAgBwjC,EAAS3tH,KAAM,MAAO6tH,EAAWzc,KACxE98G,KAAK82H,YAAY5uC,MAAM2N,gBAAgBwjC,EAAS3tH,KAAM,UAAW6tH,EAAW1E,WAIhF70H,KAAK82H,YAAY5uC,MAAM2N,gBAAgBwjC,EAAS3tH,KAAM,WAAYmxG,EAAOtxB,UACzEvrF,KAAK82H,YAAY5uC,MAAM2N,gBAAgBwjC,EAAS3tH,KAAM,OAAQmxG,EAAOz5G,MACrEpD,KAAK82H,YAAY5uC,MAAM2N,gBAAgBwjC,EAAS3tH,KAAM,iBAAkB6tH,EAAWvhB,gBACnFh4G,KAAK82H,YAAY5uC,MAAM2N,gBAAgBwjC,EAAS3tH,KAAM,uBAAwBmxG,EAAOhF,sBACrF73G,KAAK82H,YAAY5uC,MAAM2N,gBAAgBwjC,EAAS3tH,KAAM,wBAAyBmxG,EAAO3gB,uBACtFl8F,KAAK82H,YAAY5uC,MAAM2N,gBAAgBwjC,EAAS3tH,KAAM,kBAAmBmxG,EAAO/E,iBAGhF93G,KAAK82H,YAAY5uC,MAAM2N,gBAAgBwjC,EAAS3tH,KAAM,cAAemxG,EAAOnF,aAC5E13G,KAAK82H,YAAY5uC,MAAM4N,kBAAkB,gBAAc,CAG7D,CAEA0jC,YACEx5H,KAAK82H,YAAY0C,WACnB,CAEAC,sBACEz5H,KAAK82H,YAAY4C,MAAMvB,KAAKe,IACtBA,EAAKxtH,KAAKioH,aACZuF,EAAK7+D,QAAU,IAGrB,CAEAs/D,sBACE35H,KAAK82H,YAAY4C,MAAMvB,KAAKe,IACtBA,EAAKxtH,KAAKioH,aACZuF,EAAK7+D,QAAU,IAGrB,CAEAu/D,oBACE55H,KAAKy5H,sBACLz5H,KAAK82H,YAAY/hF,MAAMojF,KAAKt3H,IAC1B,IAAIg5H,GAAiB,EACrBh5H,EAAKi5H,qBAAqB3B,KAAKe,IACxBA,EAAKxtH,KAAKioH,aACbkG,GAAiB,KAGrBh5H,EAAKw5D,QAAUw/D,EAAiB,EAAI,GAExC,CAEAE,oBACE/5H,KAAK25H,sBACL35H,KAAK82H,YAAY/hF,MAAMojF,KAAKt3H,IAC1BA,EAAKw5D,QAAU,GAEnB,CAEA2/D,iBACEh6H,KAAK82H,YAAY/hF,MAAMojF,KAAKt3H,IAC1BA,EAAK6K,KAAKuuH,aAAc,EACxBp5H,EAAKq5H,sBAAoB,EAE7B,CAEAC,iBACEn6H,KAAK82H,YAAY/hF,MAAMojF,KAAKt3H,IAC1BA,EAAK6K,KAAKuuH,aAAc,EACxBp5H,EAAKq5H,sBAAoB,EAE7B,CAEA5d,iBACE,OAAOt8G,KAAK82H,YAAY5uC,MAAMkyC,QAChC,CAEAC,gBAAgB/X,GACdtiH,KAAK82H,YAAY5uC,MAAQoyC,kBAAehY,EAC1C,CAEAiY,aAGEv6H,KAAK82H,YAAYnvH,QACjB3H,KAAK82H,YAAY5uC,MAAM0N,iBAAiB,eACxC51F,KAAK82H,YAAY5uC,MAAM2wC,sBAJD,IAKtB74H,KAAK82H,YAAY5uC,MAAM4N,kBAAkB,cAC3C,CAEA0kC,eAAermC,EAAyBsmC,GACtC,MAAM55H,EAAOb,KAAK82H,YAAYe,mBAAmB,CAAE3sH,GAAIipF,IAAmBh0E,QAC1EngB,KAAK82H,YAAY5uC,MAAMwyC,uBAAuB75H,EAAK6K,KAAM+uH,EAC3D,CAEAE,oBAAoBxmC,GAClB,MAAMymC,EAAgB,GACT56H,KAAK82H,YAAYe,mBAAmB,CAAE3sH,GAAIipF,IAAmBh0E,QAC/C06G,iBACb1C,KAAKe,IACjB0B,EAAchyH,KAAKswH,EAAI,GAEzBl5H,KAAK82H,YAAYgE,iBAAiBF,GAClC56H,KAAK82H,YAAYiE,eAAeC,iBAClC,CAEAC,gBAAgBC,GACdA,EAAUv1H,QAAQuqF,IAChB,MAAMrvF,EAAOb,KAAK82H,YAAYe,mBAAmB,CAAE3sH,GAAIglF,EAAShlF,KAAMiV,QAClEtf,EAAKs6H,SAAS,WAAat6H,IAE3Bb,KAAKw6H,eAAetqC,EAAShlF,GAD3BglF,EAASkR,aACsBnS,6BAEAA,uBAEnCjvF,KAAKo7H,mBAAmBlrC,EAAShlF,IACjClL,KAAK26H,oBAAoBzqC,EAAShlF,KAEhCrK,EAAKs6H,SAAS,YAAct6H,GAAQqvF,EAASiT,kBAC/CnjG,KAAKw6H,eAAetqC,EAAShlF,GAAI+jF,yBACjCjvF,KAAKo7H,mBAAmBlrC,EAAShlF,IAAE,EAGzC,CAEAkwH,mBAAmBjnC,GACjB,MAAMymC,EAAgB,GACT56H,KAAK82H,YAAYe,mBAAmB,CAAE3sH,GAAIipF,IAAmBh0E,QAC/Ck7G,gBACblD,KAAKe,IACjB0B,EAAchyH,KAAKswH,EAAI,GAEzBl5H,KAAK82H,YAAYgE,iBAAiBF,GAClC56H,KAAK82H,YAAYiE,eAAeC,iBAClC,CAEAM,oBAAoBpwH,GAClB,MAAMrK,EAAOb,KAAK82H,YAAYe,mBAAmB,CAAE3sH,OAAMiV,QACzD,IAAKtf,EACH,OAEFb,KAAK82H,YAAYyE,OAAO16H,GACxB,MAAM26H,EAAO,IAAIt5E,aACjBs5E,EAAKlzH,IAAIzH,EAAM,QAAS,EAAG,GAC3B26H,EAAKC,YAAa,EAClBD,EAAKn4C,QACLrjF,KAAK82H,YAAYiE,eAAeW,aAAa76H,EAC/C,CAEA86H,sBACEpvE,EAAE,8BAA8Bm9B,IAAI,aAAc,UACpD,CAEAkyC,iBACErvE,EAAE,8BAA8Bm9B,IAAI,aAAc,OACpD,CAEAmyC,uBACE77H,KAAK82H,YAAYgF,YAAa,CAChC,CAEAC,uBACE/7H,KAAK82H,YAAYgF,YAAa,CAChC,CAAC37H,kDAriBU40H,EAAuB,iEAAvBA,EAAuB3vH,QAAvB2vH,EAAuB,mBAAvBA,CAAuB,KCb9B,MAAOiH,GACX77H,gBAAgBm3B,GACd,MAAM2kG,EAAWD,GAAiBE,kBAAkB5kG,GACjD7c,OAAOuhH,GAAiBG,gBAAgB7kG,IACxC7c,OAAOuhH,GAAiBI,mBAAmB9kG,IAC3C7c,OAAOuhH,GAAiBK,cAAc/kG,IACtC7c,OAAOuhH,GAAiBM,kBAAkBhlG,GAAG7c,OAAOuhH,GAAiBO,sBAAsBjlG,KAC9F,MAAO,CAAEklG,OAAQP,EAASx3H,OAAQw3H,WACpC,CAEA97H,yBAAyBm3B,GACvB,MAAMmlG,EAAYnlG,EAAEk4E,qBAAqB3W,GAChCA,EAAGtN,WAAa0D,kBAAiD4J,EAAIgE,eAGxEo/B,EAAqB,GAE3B,UAAWtyH,KAAK8yH,EACd,QAASj4H,EAAI,EAAGA,EAAImF,EAAE+3F,2BAA2Bj9F,OAAQD,IAAK,CAC5D,MAAM06F,EAAMv1F,EAAE+3F,2BAA2Bl9F,GACpCsoF,GAAaoS,EAAIhzF,QACpB+vH,EAASrzH,KACP,+CAA+C0uB,EAAEqnF,qBAAqBzf,EAAI/K,uBAAuBxqF,EAAEvG,OAAM,CAMjH,OAAO64H,CACT,CAEA97H,uBAAuBm3B,GACrB,MAAM2kG,EAAW,GACXS,EAAiBplG,EAAEk4E,qBAAqB3W,GAE1CA,EAAGtN,WAAa0D,sBAChB4J,EAAGtN,WAAa0D,aAChB4J,EAAGtN,WAAa0D,iBAChB4J,EAAGtN,WAAa0D,aAChB4J,EAAGtN,WAAa0D,yBAIpB,UAAW4J,KAAM6jC,EACqE,IAAhFplG,EAAE2kE,4BAA4BtyF,GAAKA,EAAEkuG,uBAAyBhf,EAAG3tF,IAAIzG,QACvEw3H,EAASrzH,KAAK,+BAA+BiwF,EAAGz1F,QAIpD,OAAO64H,CACT,CAEA97H,0BAA0Bm3B,GACxB,MAAM2kG,EAAW,GACXS,EAAiBplG,EAAEk4E,qBAAqB3W,GAE1CA,EAAGtN,WAAa0D,iBAAqC4J,EAAGtN,WAAa0D,2BAGzE,UAAW4J,KAAM6jC,EACE7jC,EACJuI,aAC0E,IAAjF9pE,EAAE2kE,4BAA4BtyF,GAAKA,EAAEuyF,wBAA0BrD,EAAG3tF,IAAIzG,QACxEw3H,EAASrzH,KAAK,8BAA8BiwF,EAAGz1F,QAEyC,IAAjFk0B,EAAE2kE,4BAA4BtyF,GAAKA,EAAEuyF,wBAA0BrD,EAAG3tF,IAAIzG,QAC/Ew3H,EAASrzH,KAAK,8BAA8BiwF,EAAGz1F,QAInD,OAAO64H,CACT,CAEA97H,qBAAqBm3B,GACnB,MAAM2kG,EAAW,GACXS,EAAiBplG,EAAEmmF,sBAAsBxuB,aAE/C,UAAW4J,KAAM6jC,EACsE,IAAjFplG,EAAE2kE,4BAA4BtyF,GAAKA,EAAEuyF,wBAA0BrD,EAAG3tF,IAAIzG,QACxEw3H,EAASrzH,KAAK,8BAA8BiwF,EAAGz1F,QAGmC,IAAhFk0B,EAAE2kE,4BAA4BtyF,GAAKA,EAAEkuG,uBAAyBhf,EAAG3tF,IAAIzG,QACvEw3H,EAASrzH,KAAK,+BAA+BiwF,EAAGz1F,QAIpD,OAAO64H,CACT,CAEA97H,6BAA6Bm3B,GAC3B,MAAM2kG,EAAW,GACXS,EAAiBplG,EAAEmmF,sBAAsBxuB,qBAE/C,UAAW4J,KAAM6jC,EACsE,IAAjFplG,EAAE2kE,4BAA4BtyF,GAAKA,EAAEuyF,wBAA0BrD,EAAG3tF,IAAIzG,QACxEw3H,EAASrzH,KAAK,8BAA8BiwF,EAAGz1F,QAGmC,IAAhFk0B,EAAE2kE,4BAA4BtyF,GAAKA,EAAEkuG,uBAAyBhf,EAAG3tF,IAAIzG,QACvEw3H,EAASrzH,KAAK,GAAGiwF,EAAGz1F,kCAGxB,OAAO64H,CACT,CAEA97H,yBAAyBm3B,GACvB,MAAM2kG,EAAW,GACXS,EAAiBplG,EAAEmmF,sBAAsBxuB,iBAE/C,UAAW4J,KAAM6jC,EACE7jC,EACHsK,iBAQyE,IAAjF7rE,EAAE2kE,4BAA4BtyF,GAAKA,EAAEuyF,wBAA0BrD,EAAG3tF,IAAIzG,QACxEw3H,EAASrzH,KAAK,8BAA8BiwF,EAAGz1F,QAEmC,IAAhFk0B,EAAE2kE,4BAA4BtyF,GAAKA,EAAEkuG,uBAAyBhf,EAAG3tF,IAAIzG,QACvEw3H,EAASrzH,KAAK,iCAAiCiwF,EAAGz1F,UAXiC,IAAjFk0B,EAAE2kE,4BAA4BtyF,GAAKA,EAAEuyF,wBAA0BrD,EAAG3tF,IAAIzG,QACxEw3H,EAASrzH,KAAK,8BAA8BiwF,EAAGz1F,QAE7Ck0B,EAAE2kE,4BAA4BtyF,GAAKA,EAAEkuG,uBAAyBhf,EAAG3tF,IAAIzG,OAAS,GAChFw3H,EAASrzH,KAAK,iCAAiCiwF,EAAGz1F,SAWxD,OAAO64H,CACT,ECxIK,IAAKU,GAGX,aAHWA,UAAO,KACjBA,qBACAA,uBAFUA,GAAZ,IAAYA,GAGX,GCoBK,MAAOC,GACXz8H,cAAc08H,EAAgB/yC,GAC5B,IAAI42B,EAEJ,OAAQmc,EAAUtxC,UAChB,IAAK,eACHm1B,EAAK,IAAI/F,GAAakiB,EAAW/yC,GACjC,MAEF,IAAK,mBACH42B,EAAK,IAAIiI,GAAiBkU,EAAW/yC,GACrC,MAEF,IAAK,eACH42B,EAAK,IAAImN,GAAagP,EAAW/yC,GACjC,MAEF,IAAK,iBACH42B,EAAK,IAAIqM,GAAoB8P,EAAW/yC,GACxC,MAEF,IAAK,qBACH42B,EAAK,IAAIgN,GAAiBmP,EAAW/yC,GACrC,MAEF,IAAK,aACH42B,EAAK,IAAIuK,GAAW4R,EAAW/yC,GAC/B,MAEF,IAAK,oBACH42B,EAAK,IAAIyL,GAAkB0Q,EAAW/yC,GACtC,MAEF,IAAK,mBACH42B,EAAK,IAAInF,GAAiBshB,EAAW/yC,GACrC,MACF,IAAK,kBACH42B,EAAK,IAAIqH,GAAgB8U,EAAW/yC,GACpC,MACF,IAAK,YACH42B,EAAK,IAAIuC,GAAU4Z,EAAW/yC,GAC9B,MACF,IAAK,2BACH42B,EAAK,IAAIkH,GAAyBiV,EAAW/yC,GAC7C,MACF,IAAK,sBACH42B,EAAK,IAAImE,GAAoBgY,EAAW/yC,GACxC,MACF,IAAK,qBACH42B,EAAK,IAAI2C,GAAmBwZ,EAAW/yC,GACvC,MACF,IAAK,0BACH42B,EAAK,IAAIqG,GAAwB8V,EAAW/yC,EAAW,MACvD,MAEF,IAAK,kCACH42B,EAAK,IAAI1O,GAA6B6qB,EAAW/yC,GACjD,MACF,IAAK,mBACH42B,EAAK,IAAInS,GAAiBsuB,EAAW/yC,GACrC,MAEF,IAAK,sBACH42B,EAAK,IAAI8N,GAAoBqO,EAAW/yC,GACxC,MAEF,IAAK,uBACH42B,EAAK,IAAI8H,GAAqBqU,EAAW/yC,GACzC,MAEF,IAAK,eACH42B,EAAK,IAAItM,EAAayoB,EAAW/yC,GACjC,MACF,IAAK,iCACH42B,EAAK,IAAI7L,EAA+BgoB,EAAW/yC,GAIvD,OAAO42B,CACT,EC9FF,IAAKoc,GAKJ,aALIA,UAAmB,KACtBA,eACAA,uBACAA,qBACAA,uBAJGA,GAAL,IAAKA,GAKJ,GAEK,MAAOC,GAIXl9H,YAAYm9H,GACVh9H,KAAKi9H,aAAe,GACpBj9H,KAAKk9H,YAAYF,EAAe5d,qBAChCp/G,KAAKg9H,eAAiBA,CACxB,CAEQE,YAAYC,GAClB,IAAI34H,EACJ,IAAKA,EAAI,EAAGA,EAAI0zG,GAAkB4kB,IAAqBr4H,OAAQD,IAC7DxE,KAAKi9H,aAAaz4H,GAAK,GAGzB,UAAW0G,KAAMiyH,EAAgB,CAC/B,IAAKA,EAAetoG,eAAe3pB,GACjC,SAGF,MAAMmtB,EAAU8kG,EAAejyH,GAE/B,OAAQmtB,EAAQkzD,UACd,IAAK,0BACHvrF,KAAKi9H,aAAaH,GAAoBM,KAAKx0H,KAAKyvB,GAChD,MAEF,IAAK,uBAGL,IAAK,mBAIL,IAAK,qBAGL,IAAK,2BAGL,IAAK,2BACHr4B,KAAKi9H,aAAaH,GAAoBO,QAAQz0H,KAAKyvB,GACnD,MAEF,IAAK,aACL,IAAK,sBACL,IAAK,sBAGL,IAAK,kBAGL,IAAK,iBAGL,IAAK,qBACHr4B,KAAKi9H,aAAaH,GAAoBQ,OAAO10H,KAAKyvB,GAClD,MAEF,QACEr4B,KAAKi9H,aAAaH,GAAoBS,QAAQ30H,KAAKyvB,GAAS,CAGpE,CAEAmlG,oCAAoClmG,GAClC,UAAWmmG,KAAmBz9H,KAAKi9H,aAAaH,GAAoBM,KAAM,CACxE,MAAMM,EAAMd,UAAyBa,EAAiBnmG,GACtDomG,EAAIxxC,UAAUuxC,GACdnmG,EAAEg0D,WAAWoyC,EAAG,CAEpB,CAEAC,iCAAiCrmG,GAC/B,QAAS9yB,EAAI,EAAGA,EAAI0zG,GAAkB4kB,IAAqBr4H,OAAQD,IAAK,CACtE,MAAMo5H,EAAqB59H,KAAKi9H,aAAaz4H,GAE7C,UAAWq5H,KAAoBD,EAAoB,CACjD,MAAMld,EAAKkc,UAAyBiB,EAAkBvmG,GACtDopF,EAAGx0B,UAAU2xC,GACbvmG,EAAEg0D,WAAWo1B,EAAE,EAKrB,CAEAod,oBAAoBxmG,GAClBA,EAAEsjF,aAA6BtjF,EAAEm6E,mBAAmBzxG,KAAKg9H,eAAepiB,cAEnEtjF,EAAEsjF,eACLtjF,EAAEsjF,aAAe,IAAID,GAAa,GAAIrjF,GACtCA,EAAEg0D,WAAWh0D,EAAEsjF,cACftjF,EAAEsjF,aAAapvB,oBAGjBl0D,EAAEwrF,kBAAuCxrF,EAAEm6E,mBAAmBzxG,KAAKg9H,eAAela,mBAE7ExrF,EAAEwrF,oBACLxrF,EAAEwrF,kBAAoB,IAAIqJ,GAAkB,GAAI70F,GAChDA,EAAEg0D,WAAWh0D,EAAEwrF,mBACfxrF,EAAEwrF,kBAAkBt3B,oBAEtBl0D,EAAEkpF,iBAAqClpF,EAAEm6E,mBAAmBzxG,KAAKg9H,eAAexc,kBAC3ElpF,EAAEkpF,mBACLlpF,EAAEkpF,iBAAmB,IAAImI,GAAiB,GAAIrxF,GAC9CA,EAAEkpF,iBAAiBU,WAAa,IAAI+J,GAAW,GAAI3zF,GACnDA,EAAEg0D,WAAWh0D,EAAEkpF,mBAGjBlpF,EAAEkkF,WAA+BlkF,EAAEm6E,mBAAmBzxG,KAAKg9H,eAAexhB,YAErElkF,EAAEkkF,aACLlkF,EAAEkkF,WAAa,IAAID,GAAiB,GAAIjkF,GACxCA,EAAEg0D,WAAWh0D,EAAEkkF,YAEnB,ECvHK,IAAMuiB,GAAmB,MAA1B,MAAOA,EAIXl+H,YAAoB6vH,oBAAyB,CAE7CsO,mBACEh+H,KAAKk2F,aAAe,GACpBl2F,KAAK0xH,mBAAmBn5G,UAAW7M,IACjC1L,KAAKk2F,aAAexqF,EAAKuyH,eACzBj+H,KAAKk+H,yBAA2BxyH,EAAKmiH,cAEzC,CAEA6D,mBACE,OAAO1xH,KAAK0vH,WAAWgC,kBACzB,CAEAyM,kBAAkB5yC,GAChB,OAAIvrF,KAAKk2F,aAAarhE,eAAe02D,GAC5BvrF,KAAKk2F,aAAa3K,GAEpB,IACT,CAEA6yC,8BACE,OAAOp+H,KAAKk+H,wBACd,CAAC/9H,kDA3BU49H,GAAmBjwG,0FAAnBiwG,EAAmB34H,QAAnB24H,EAAmB,qBAFlB,gBAEDA,CAAmB,KCb1B,MAAOM,GAKXx+H,YAAY6gH,GACV1gH,KAAKs+H,mBAAqB5d,EAAG4d,mBAC7Bt+H,KAAKu+H,2BAA6B7d,EAAG6d,2BACrCv+H,KAAK8zH,aAAepT,EAAGoT,YACzB,ECTI,MAAO0K,GASX3+H,YAAY63E,GACV13E,KAAKy+H,kBAAoB/mD,EAAM+mD,kBAC/Bz+H,KAAK8zH,aAAep8C,EAAMo8C,aAC1B9zH,KAAKkM,MAAQwrE,EAAMxrE,MACnBlM,KAAKm/D,KAAOuY,EAAMvY,KAClBn/D,KAAK0+H,sBAAwBhnD,EAAMgnD,sBACnC1+H,KAAK2+H,0BAA4BjnD,EAAMinD,0BACvC3+H,KAAK4+H,iBAAmBlnD,EAAMknD,gBAChC,ECVI,MAAOC,GACJ1+H,cAAc2+H,EAAYh1C,GAC/B,OAAQg1C,EAAWvzC,UACjB,KAAKkxB,mBACL,QACE,OAAO,IAAIpE,GAAqBymB,EAAYh1C,GAE9C,KAAK2yB,yBACH,OAAO,IAAIC,GAAoBoiB,EAAYh1C,GAE7C,KAAK2yB,4BACH,OAAO,IAAIG,GAAsBkiB,EAAYh1C,GAEnD,ECpBI,MAAOi1C,GAQX5+H,iCAAiC2rF,GAC/B,MAAMkzC,EAAU,IAAID,GACpBC,SAAQ9zH,GAAK4gF,EAAY5gF,GACzB8zH,EAAQ7c,QAAUr2B,EAAYq2B,QAC9B6c,EAAQC,YAAcnzC,EAAYmzC,YAClCD,EAAQt7G,KAAOooE,EAAYpoE,KAC3Bs7G,EAAQ9xG,SAAW4+D,EAAY5+D,SAC/B8xG,EAAQr1E,OAASmiC,EAAYniC,OACtBq1E,CACT,CAEA7+H,cAAc6hH,GACZ,MAAMgd,EAAU,IAAID,GACpBC,SAAQ9zH,GAAWlJ,OAAQ+nF,OAE3Bi1C,EAAQ7c,QAAUH,EACXgd,CACT,CAEA9yC,UAAUJ,GACR9rF,KAAKkL,GAAK4gF,EAAY5gF,GACtBlL,KAAKmiH,QAAUr2B,EAAYq2B,QAC3BniH,KAAKi/H,YAAc,IAAIl2G,KAAK+iE,EAAYmzC,aACxCj/H,KAAK0jB,KAAOooE,EAAYpoE,KACxB1jB,KAAKktB,SAAW4+D,EAAY5+D,SAC5BltB,KAAK2pD,OAASmiC,EAAYniC,MAC5B,ECXK,IAAMu1E,GAAuB,MAA9B,MAAOA,EACXr/H,YAAoBs/H,6BAA2C,CAE/DC,YAAYpC,GACV,MAAMqC,EAAY7gH,KAAKiF,MAAMu5G,GAC7B,OAAOh9H,KAAKs/H,kBAAkBD,EAChC,CAEAC,kBAAkBD,GAChB,MAAM/nG,EAAI,IAAI20D,GAAKozC,GAEnBr/H,KAAKu/H,wBAAwBF,EAAW/nG,GAExC,MAAMkoG,EAA8B,IAAIzC,GAAgCsC,GACxEG,SAA4BhC,oCAAoClmG,GAEhEt3B,KAAKy/H,mBAAmBJ,EAAW/nG,GACnCt3B,KAAK0/H,oBAAoBL,EAAW/nG,GACpCt3B,KAAK2/H,eAAeN,EAAW/nG,GAC/Bt3B,KAAK4/H,aAAaP,EAAW/nG,GAC7BkoG,EAA4B7B,iCAAiCrmG,GAC7Dt3B,KAAK6/H,qBAAqBR,EAAW/nG,GAC9BA,CACT,CAEQioG,wBAAwBF,EAAW/nG,GAIzC,UAAWijF,KAAQ8kB,EAAU9gB,uBAAwB,CAEK,gBAApD8gB,EAAU9gB,uBAAuBhE,GAAMrtB,WACzCmyC,EAAU9gB,uBAAuBhE,GAAMrtB,SAAW,eAGpD,MAAMrC,EAAyB,IAAIN,GAAmB80C,EAAU9gB,uBAAuBhE,GAAOjjF,EAAG,MACjGA,EAAEg0D,WAAWT,EAAE,CAEnB,CAEQ40C,mBAAmBJ,EAAW/nG,GAGpC,UAAWmgG,KAAQ4H,EAAU1hB,kBAAmB,CAC9C,MAAM3lB,EAA0BqnC,EAAU1hB,kBAAkB8Z,GACtDqI,EAAK9/H,KAAKm/H,oBAAoBhB,kBAAkBnmC,EAAwBzM,UACxEsN,EAAKod,0CAA4Dje,EAAyB1gE,GAEhGuhE,EAAG3M,UAAU8L,GACba,EAAGjO,8BACHiO,EAAGd,6BACHc,EAAG5C,iBAAiB6pC,GACpBxoG,EAAEg0D,WAAWuN,EAAE,CAEnB,CAEQ+mC,aAAaP,EAAW/nG,GAC9B,GAAK+nG,EAAUnd,aAIf,UAAW8c,KAAWK,EAAUnd,aAAc,CAC5C,MAAM6d,EAAahB,6BAA4CC,GAC/De,EAAW7zC,UAAU8yC,GACrB1nG,EAAE4qF,aAAat5G,KAAKm3H,EAAU,CAElC,CAEQL,oBAAoBL,EAAW/nG,GAErC,UAAW0oG,KAAYX,EAAUthB,mBAAoB,CACnD,MAAMkiB,EAAmBZ,EAAUthB,mBAAmBiiB,GAChDnjB,EAASgiB,UAAqBoB,EAAkB3oG,GACtDulF,EAAO3wB,UAAU+zC,GACjBpjB,EAAOznB,gBACPynB,EAAOjyB,8BACPiyB,EAAO9kB,6BACPzgE,EAAEg0D,WAAWuxB,EAAM,CAEvB,CAEQ8iB,eAAeN,EAAW/nG,GAEhC,UAAW4oG,KAAOb,EAAU5gB,cAAe,CACzC,MAAM0hB,EAAsBd,EAAU5gB,cAAcyhB,GAC9C9jB,EAAY,IAAID,GAAUgkB,EAAqB7oG,GACrD8kF,EAAUlwB,UAAUi0C,GACpB7oG,EAAEg0D,WAAW8wB,EAAS,CAE1B,CAEQyjB,qBAAqBR,EAAW/nG,GAEtCt3B,KAAKogI,iBAAiBf,EAAW/nG,GACjCt3B,KAAKqgI,wBAAwBhB,EAAW/nG,GACxCt3B,KAAKsgI,qBAAqBjB,EAAW/nG,GACrCt3B,KAAKugI,iBAAiBlB,EAAW/nG,GACjCt3B,KAAKwgI,sBAAsBnB,EAAW/nG,GACtCt3B,KAAKygI,eAAepB,EAAW/nG,GAC/Bt3B,KAAK0gI,+BAA+BrB,EAAW/nG,GAC/Ct3B,KAAK2gI,sBAAsBtB,EAAW/nG,GACtCt3B,KAAK4gI,wCAAwCvB,EAAW/nG,GACxDt3B,KAAK6gI,sCAAsCxB,EAAW/nG,GACtDt3B,KAAK8gI,mCAAmCzB,EAAW/nG,GACnDt3B,KAAK+gI,0CAA0C1B,EAAW/nG,EAC5D,CAEQ8oG,iBAAiBf,EAAgB/nG,GACvCA,EAAEsjF,aAA6BtjF,EAAEm6E,mBAAmB4tB,EAAUzkB,cAEzDtjF,EAAEsjF,eACLtjF,EAAEsjF,aAAe,IAAID,GAAa,GAAIrjF,GACtCA,EAAEg0D,WAAWh0D,EAAEsjF,cACftjF,EAAEsjF,aAAapvB,mBAEnB,CAEQk1C,+BAA+BrB,EAAgB/nG,GACrD,GAAI+nG,EAAUxqG,eAAe,8BAC3B,QAASrwB,EAAI,EAAGA,EAAI66H,EAAUtc,2BAA2Bt+G,OAAQD,IAC/D8yB,EAAEyrF,2BAA2Bn6G,KAAK,IAAIy1H,GAAyBgB,EAAUtc,2BAA2Bv+G,KAGxG,GAAI66H,EAAUxqG,eAAe,wBAC3B,QAASrwB,EAAI,EAAGA,EAAI66H,EAAUrc,qBAAqBv+G,OAAQD,IACzD8yB,EAAE0rF,qBAAqBp6G,KAAK,IAAI41H,GAAmBa,EAAUrc,qBAAqBx+G,IAGxF,CAEQ87H,qBAAqBjB,EAAgB/nG,GAC3CA,EAAEkpF,iBAAqClpF,EAAEm6E,mBAAmB4tB,EAAU7e,kBACjElpF,EAAEkpF,iBAQLlpF,EAAEkpF,iBAAiBU,WAAyB5pF,EAAEm6E,mBADlB4tB,EAAUjgB,oBAAoBigB,EAAU7e,kBACiBU,aAPrF5pF,EAAEkpF,iBAAmB,IAAImI,GAAiB,GAAIrxF,GAC9CA,EAAEg0D,WAAWh0D,EAAEkpF,kBAEflpF,EAAEkpF,iBAAiBU,WAAa,IAAI+J,GAAW,GAAI3zF,GACnDA,EAAEg0D,WAAWh0D,EAAEkpF,iBAAiBU,aAKlC5pF,EAAEipF,gCACJ,CAEQggB,iBAAiBlB,EAAgB/nG,GACvCA,EAAEurF,aAA6BvrF,EAAEm6E,mBAAmB4tB,EAAUxc,cACzDvrF,EAAEurF,eACLvrF,EAAEurF,aAAe,IAAIgL,GAAa,GAAIv2F,GACtCA,EAAEg0D,WAAWh0D,EAAEurF,eAEjBvrF,EAAEurF,aAAaj4B,6BACjB,CAEQ41C,sBAAsBnB,EAAgB/nG,GAC5CA,EAAEwrF,kBAAuCxrF,EAAEm6E,mBAAmB4tB,EAAUvc,mBAEnExrF,EAAEwrF,oBACLxrF,EAAEwrF,kBAAoB,IAAIqJ,GAAkB,GAAI70F,GAChDA,EAAEg0D,WAAWh0D,EAAEwrF,mBAGnB,CAEQ2d,eAAepB,EAAgB/nG,GACrCA,EAAEkkF,WAA+BlkF,EAAEm6E,mBAAmB4tB,EAAU7jB,YAC3DlkF,EAAEkkF,aACLlkF,EAAEkkF,WAAa,IAAID,GAAiB,GAAIjkF,GACxCA,EAAEg0D,WAAWh0D,EAAEkkF,YACflkF,EAAEkkF,WAAWhwB,mBAEjB,CAEQm1C,sBAAsBtB,EAAW/nG,GACvC,MAAM0pG,EAAgB1pG,EAAEk4E,qBAAqB3W,GAAMA,aAAc4W,IAEjE,UAAWnd,KAAa0uC,EAEtB1uC,EAAUif,sBADa8tB,EAAU1hB,kBAAkBrrB,EAAUpnF,IAGjE,CAEQ01H,wCAAwCvB,EAAgB/nG,GAC9D,MAAM2pG,EAAwB3pG,EAAEk4E,qBAAqB3W,GAAMA,aAAcga,IAEzE,UAAWnhB,KAAqBuvC,EAE9BvvC,EAAkBkhB,4BADaysB,EAAU1hB,kBAAkBjsB,EAAkBxmF,IAGjF,CAEQ21H,sCAAsCxB,EAAgB/nG,GAC5D,MAAM4pG,EAAsB5pG,EAAEk4E,qBAAqB3W,GAAMA,aAAcia,IAEvE,UAAWnhB,KAAmBuvC,EAE5BvvC,EAAgBihB,4BADeysB,EAAU1hB,kBAAkBhsB,EAAgBzmF,IAG/E,CAEQm1H,wBAAwBhB,EAAgB/nG,GAC9CA,EAAEmoF,oBAAsBnoF,EAAEm6E,mBAAmB4tB,EAAU5f,qBAElDnoF,EAAEmoF,sBACLnoF,EAAEmoF,oBAAsB,IAAI+O,GAAoB,GAAIl3F,GACpDA,EAAEg0D,WAAWh0D,EAAEmoF,qBACfnoF,EAAEmoF,oBAAoBj0B,oBAExBl0D,EAAEkqF,2BACJ,CAEQsf,mCAAmCzB,EAAgB/nG,GACzD,MAAM6pG,EAAoB7pG,EAAEk4E,qBAAqB3W,GAAMA,aAAcyb,GACrE,UAAW8sB,KAAiBD,EAE1BC,EAAcxsB,uBADayqB,EAAU1hB,kBAAkByjB,EAAcl2H,IAGzE,CAEQ61H,0CAA0C1B,EAAgB/nG,GAChE,MAAM+pG,EAAoB/pG,EAAEk4E,qBAAqB3W,GAAMA,aAAcic,GAErE,UAAWhiB,KAAuBuuC,EAEhCvuC,EAAoB8f,4BADaysB,EAAU1hB,kBAAkB7qB,EAAoB5nF,IAGrF,CAAC/K,kDAlOU++H,GAAuBpxG,0FAAvBoxG,EAAuB95H,QAAvB85H,EAAuB,mBAAvBA,CAAuB,KCtB9B,MAAOoC,GACXnhI,mCAAmC68H,GAGjC,MAAMuE,EAAyB51H,OAAOgO,OAAOqjH,EAAerf,mBAAmB5lG,OAAO8gF,GACpFA,EAAGhkE,eAAe,kBAGpB,UAAWgkE,KAAM0oC,EAAwB,CACvC,MAAMC,EAAiB3oC,EAAGyzB,cAAcpT,YACxCrgB,EAAGyzB,cAAcpT,YAAc,GAE/B,QAAS10G,EAAI,EAAGA,EAAIg9H,EAAe/8H,OAAQD,IACzCq0F,EAAGyzB,cAAcpT,YAAYtwG,KAAK44H,EAAeh9H,GAAG0G,IACpD8xH,EAAeze,uBAAuBijB,EAAeh9H,GAAG0G,IAAMs2H,EAAeh9H,EAAC,CAGpF,ECfI,MAAOi9H,GACXthI,yCAAyC68H,GACvC,MAAM0E,EAAgB/1H,OAAOgO,OAAOqjH,EAAerf,mBAAmB5lG,OAAQ8gF,GACrEA,EAAGtN,WAAa0D,sBAA0C4J,EAAGhkE,eAAe,+BAGrF,UAAWgkE,KAAM6oC,EAAe,CAC9B,MAAMvsB,EAAUxpG,OAAOgO,OAAOqjH,EAAejf,oBAAoBhmG,OAC9DpO,GAAWA,EAAEuyF,wBAA0BrD,EAAG3tF,IAEzCiqG,IACFtc,EAAG6I,2BAA6B,GAChC7I,EAAGsO,yBAA2B,GAC9BgO,EAAQxvG,QAASk3G,IACf,MAAM8kB,EAAgB,IAAInkC,GAA0Bqf,EAAOhF,qBAAsB,EAAI1C,EAAQ1wG,QAC7Fo0F,EAAG6I,2BAA2B94F,KAAK+4H,GACnC,MAAMt3C,EAAS1+E,OAAOgO,OAAOqjH,EAAeze,wBAAwBxmG,OAAQ8yE,GACnEA,EAAG3/E,KAAO2tF,EAAGsB,iBACnB,GAEDtB,EAAGsO,yBAAyBv+F,KAAK,IAAI40F,GAA0Bqf,EAAOhF,qBADpExtB,EAC0FA,EAAOn+E,MAEP,MAAK,GAEpG,CAGP,EC3BI,MAAO01H,GACXzhI,uCAAuC68H,GACrC,IAAKA,EAAena,aAAc,CAChC,MAAMgf,EAAoBl2H,OAAOgO,OAAOqjH,EAAerf,mBAAmB5lG,OAAQ8gF,GACzEA,EAAGhkE,eAAe,kBAErBitG,EAAK,IAAIjU,GAAa,GAAI,MAChCgU,EAAkBl8H,QAASkzF,IACzBA,EAAGyzB,cAAcW,UAAY,GAAGp0B,EAAGz1F,aAEjCy1F,EAAGyzB,cAAcY,UADfr0B,EAAGtN,WAAa0D,qBACW,UAE7B4J,EAAGtN,WAAa0D,qBAChB4J,EAAGtN,WAAa0D,yBAEa,UAEA,sBAE/B+tC,EAAe5d,oBAAoBvmB,EAAGyzB,cAAcphH,IAAM2tF,EAAGyzB,cAC7DwV,EAAGhU,cAAcllH,KAAKiwF,EAAGyzB,cAAcphH,IACvC2tF,EAAGzE,gBAAkByE,EAAGyzB,cAAcphH,KAExC8xH,EAAena,aAAeif,EAAG52H,GACjC8xH,EAAe5d,oBAAoB0iB,EAAG52H,IAAM42H,EAEhD,ECzBI,MAAOC,GACX5hI,wCAAwC68H,GACtC,MAAMgF,EAASr2H,OAAOgO,OAAOqjH,EAAerf,mBAAmB5lG,OAAQ8gF,GAC9DA,EAAGtN,WAAa0D,2BAA+C4J,EAAGhkE,eAAe,YAG1F,UAAWgkE,KAAMmpC,EAAQ,CACvB,MAAMnlB,EAASlxG,OAAOgO,OAAOqjH,EAAejf,oBAAoBhmG,OAC7DpO,GAAWA,EAAEkuG,uBAAyBhf,EAAG3tF,IAC1C,GACF,GAAI2xG,EAAQ,CACVhkB,EAAGl7D,QAAU,GACb,MAAMgD,EAAS,IAAIqzD,GACjB,CACEG,gBAAiB0oB,EAAO3gB,uBAE1B,KACA,MAEFv7D,EAAOyzD,gBAAkByE,EAAGzE,gBAC5BzzD,EAAO0zD,MAAQwE,EAAGkB,WAClBp5D,EAAO2zD,MAAQuE,EAAGmB,aAClBnB,EAAGl7D,QAAQ/0B,KAAK+3B,EAAM,EAG5B,ECtBK,IAAMshG,GAAoB,MAA3B,MAAOA,EACXC,eAAeC,GACb,MAAMC,EAAyBpiI,KAAKqiI,4BAC9BC,EAAe32H,OAAOtE,KAAK+6H,GAAwBpsG,OACnDusG,EAAuBD,EAAa9lC,UAAU1rF,GAAOA,EAAMqxH,EAAkB3S,SAEnF,GAAI+S,GAAuB,EACzB,QAAS/9H,EAAI+9H,EAAsB/9H,EAAI89H,EAAa79H,OAAQD,IAC1D,UAAWw4H,KAAkBmF,EAAkBhT,MAC7CiT,EAAuBE,EAAa99H,IAAIw4H,EAIhD,CAEAqF,4BACE,MAAO,CACL,QAASf,+BACT,QAASG,qCACT,QAASG,mCACT,SAAUG,oCAEd,CAAC5hI,kDAtBU8hI,EAAoB,iEAApBA,EAAoB78H,QAApB68H,EAAoB,mBAApBA,CAAoB,KCGpBO,GAAwC,MAA/C,MAAOA,EACXN,eAAetqH,GACb,UAAW0f,KAAK1f,EAAQu3G,MACtBnvH,KAAKyiI,mBAAmBnrG,EAE5B,CAEQmrG,mBAAmBnrG,GACzBt3B,KAAK0iI,yCAAyCprG,GAC9Ct3B,KAAK2iI,4DAA4DrrG,GACjEt3B,KAAK4iI,wBAAwBtrG,EAC/B,CAEQorG,yCAAyCprG,GAC/C,MAAMurG,EAAavrG,EAAEmmF,sBAAsBxuB,cAE3C,UAAWQ,KAASozC,EAAY,CAC9B,MAAMC,EAAmBxrG,EAAE41E,kCAAkCzd,EAAMvkF,IAInE,GAFwCukF,EAAMqP,qBAAqBr6F,SAAUq+H,EAAiBr+H,OAG5F,OAGFq7C,QAAQQ,KAAK,GAAGmvC,EAAMrsF,6CACtB,UAAW44F,KAAe8mC,EAAkB,CAC1C,MAAMC,EAAYzrG,EAAEqnF,qBAAqB3iB,EAAY6b,sBACrD/3D,QAAQQ,KAAK,GAAGyiF,qBAA6BtzC,EAAMrsF,QACnDqsF,EAAMiP,mCAAmC1C,EAAY6b,qBAAoB,CAG3E/3D,QAAQQ,KAAK,QACbR,QAAQQ,KAAK,OAAM,CAEvB,CAEQqiF,4DAA4DrrG,GAClE,MAAM0rG,EAA2B1rG,EAAEk4E,qBACjC3W,GAAMA,aAAc4I,IAAY5I,EAAGgE,eAGrC,UAAW9M,KAAYizC,EACrB,UAAW9jC,KAAOnP,EAAS2R,2BAA4B,CACrD,GAAI/U,GAAgBuS,EAAIvB,cAAe,CACrCuB,EAAIvB,aAAe,EACnB,MAAMphE,EAAajF,EAAEqnF,qBAAqBzf,EAAI/K,iBAC9Cr0C,QAAQQ,KACN,wCAAwCyvC,EAAS3sF,oDACCm5B,IAAY,CAIlE,GAAIowD,GAAgBuS,EAAItB,cAAe,CACrCsB,EAAItB,aAAe,EACnB,MAAMrhE,EAAajF,EAAEqnF,qBAAqBzf,EAAI/K,iBAC9Cr0C,QAAQQ,KACN,wCAAwCyvC,EAAS3sF,oDACCm5B,eAAuB,EAKnF,CAEQqmG,wBAAwBtrG,GACHA,EAAEk4E,qBAC3Bza,GAAiBA,aAAyB0J,IAAS1J,aAAyB0M,IAG3D97F,QAASovF,IAC1B,MAAMkuC,EAA8B,GAEpC,IAAIt2C,GAAgBoI,EAAcnB,cAAkE,IAAlDjoF,OAAOtE,KAAK0tF,EAAcnB,aAAanvF,OAEzFkH,QAAOgO,OAAOo7E,EAAcnB,YAAYA,aAAajuF,QAAQy4F,IAC3D,MAAM8X,EAAsB5+E,EAAEioE,iBAAiBnB,EAAKN,uBAE/CoY,EAGH9X,EAAKL,eADIK,EAAKlzF,GAAGmsG,SAAS,gBACJ,WAAWnB,EAAoB9yG,aAC5Cg7F,EAAKlzF,GAAGmsG,SAAS,gBACJ,WAAWnB,EAAoB9yG,aAE/B,SAAS8yG,EAAoB9yG,aANnD6/H,EAA4Br6H,KAAKw1F,EAAI,GAazC,UAAWA,KAAQ6kC,EAEjBnjF,QAAQQ,KACN,8DAA8D89C,EAAKN,wBACnE,QAAQ/I,EAAc3xF,iCAGpB2xF,aAAyB0J,GAC3B1J,EAAcoK,sCAAsCf,EAAKN,uBAChD/I,aAAyB0M,IAClC1M,EAAckN,uCAAuC7D,EAAKN,sBAAqB,GAIvF,CAAC39F,kDA1GUqiI,EAAwC,iEAAxCA,EAAwCp9H,QAAxCo9H,EAAwC,mBAAxCA,CAAwC,KCDxCU,GAA0B,MAAjC,MAAOA,EACXrjI,YACUsjI,EACAC,EACAC,GAFArjI,wBACAA,qBACAA,wCACP,CAEHo/H,YAAY+C,GACV,MAAMmB,EAAe9kH,KAAKiF,MAAM0+G,GAChCniI,KAAKojI,cAAclB,eAAeoB,GAElC,MAAM1rH,EAAU5X,KAAKujI,qBAAqBD,GAE1C,YAAKD,kCAAkCnB,eAAetqH,GAC/CA,CACT,CAEA2rH,qBAAqBD,GACnB,MAAM1rH,EAAU,IAAIq3G,GACpBr3G,EAAQxU,KAAOkgI,EAAalgI,MAAQ,GACpCwU,EAAQ43G,QAAU8T,EAAa9T,SAAWmN,2BAE1C,UAAWK,KAAkBsG,EAAanU,MAAO,CAC/C,MAAM73F,EAAIt3B,KAAKmjI,iBAAiB7D,kBAAkBtC,GAGlD,GAFAplH,EAAQu3G,MAAMvmH,KAAK0uB,IAEdA,EAAEkrF,qBAAsB,CAC3B,MAAMghB,EAAgBlsG,EAAE4nF,aAAa5nF,EAAEqrF,sBAClC6gB,EAKHlsG,EAAEorF,mBAAmB8gB,IAJrBlsG,EAAEorF,mBAAmB,IAAIvG,GAAU,GAAI7kF,IACvCA,EAAEsrF,mBAAmBtrF,EAAEkrF,qBAAqBt3G,IAC5CosB,EAAEg0D,WAAWh0D,EAAEkrF,sBAAoB,EAOzC,OAAO5qG,CACT,CAACzX,kDAvCU+iI,GAA0Bp1G,4IAA1Bo1G,EAA0B99H,QAA1B89H,EAA0B,mBAA1BA,CAA0B,KCPjC,MAAOO,GAQX5jI,YAAYg5F,GACV74F,KAAKkL,GAAK2tF,EAAG3tF,GACblL,KAAKoD,KAAOy1F,EAAGz1F,KACfpD,KAAKooC,SAAWywD,EAAGzwD,SACnBpoC,KAAK8Q,IAAM+nF,EAAG/nF,IACd9Q,KAAKurF,SAAWsN,EAAGtN,SACnBvrF,KAAKo3G,MnEoDH,SAAUssB,KACd,OAAOxsB,GAAOhsF,KAAKosF,MAAMpsF,KAAKqsF,SAAWL,GAAOzyG,QAClD,CmEtDiBi/H,EACf,ECbI,MAAOC,GASX9jI,YAAY8J,GACV3J,KAAKkL,GAAKvB,EAAEuB,GACZlL,KAAK+Z,KAAOpQ,EAAEouG,mBAAmBjnG,IACjC9Q,KAAKkzH,GAAKvpH,EAAE6jG,oBAAoB18F,IAChC9Q,KAAKoD,KAAOuG,EAAEvG,MAAQuG,EAAEquG,eACxBh4G,KAAKozH,uBAAyB1lC,cAAcgK,MAAM27B,mBAAmBC,MACrEtzH,KAAKm8F,mBAAqBxyF,EAAEwyF,mBAAmB/N,qBAAqBpuF,KAAKozH,wBAAwB,GACjGpzH,KAAKy4D,MAAQz4D,KAAKm8F,mBAAqB,IAAM,IAAMn8F,KAAKm8F,kBAC1D,ECjBI,MAAOynC,GASX/jI,YAAY8J,GACV3J,KAAKkL,GAAKvB,EAAEuB,GACZlL,KAAK+Z,KAAOpQ,EAAEouG,mBAAmBjnG,IACjC9Q,KAAKkzH,GAAKvpH,EAAE6jG,oBAAoB18F,IAChC9Q,KAAKoD,KAAOuG,EAAEvG,MAAQuG,EAAEquG,eACxBh4G,KAAKu0H,iBAAmB7mC,cAAcgK,MAAMC,aAAasS,KACzDjqG,KAAK6pG,aAAelgG,EAAEkgG,aAAazb,qBAAqBpuF,KAAKu0H,kBAAkB,GAC/Ev0H,KAAKy4D,MAAQz4D,KAAK6pG,aAAe,IAAM,IAAM7pG,KAAK6pG,YACpD,ECjBI,MAAOg6B,GASXhkI,YAAY8J,GACV3J,KAAKkL,GAAKvB,EAAEuB,GACZlL,KAAK+Z,KAAOpQ,EAAEouG,mBAAmBjnG,IACjC9Q,KAAKkzH,GAAKvpH,EAAE6jG,oBAAoB18F,IAChC9Q,KAAKoD,KAAOuG,EAAEvG,MAAQuG,EAAEquG,eACxBh4G,KAAK20H,aAAejnC,cAAcgK,MAAMosC,cAAcC,OACtD/jI,KAAKm5F,SAAWxvF,EAAEwvF,SAAS/K,qBAAqBpuF,KAAK20H,cAAc,GACnE30H,KAAKy4D,MAAQz4D,KAAKm5F,SAAW,IAAM,IAAMn5F,KAAKm5F,QAChD,ECHK,IAAM6qC,GAAoB,MAA3B,MAAOA,EAEXnkI,YAAoBokI,iCAAmD,CAEvEC,oBAAoB5sG,EAAS6sG,EAAgBC,GAC3C,GAAI9sG,EAAEu1E,SAAU,CACd,MAAM6rB,EAAgB,GAChBC,EAAgB,GAEtB,UAAWlB,KAAQngG,EAAEqmF,kBACnB,GAAIymB,GAEF,GADApkI,KAAKqkI,oBAAoB/sG,GACrBA,EAAEqmF,kBAAkB8Z,GAAMziC,aAAe19D,EAAEqmF,kBAAkB8Z,GAAMziC,cAAgBmvC,EAAO,CAC5F,MAAM31F,EAAI,IAAIi1F,GAAoBnsG,EAAEqmF,kBAAkB8Z,IAElD7qC,GAAkBp+C,EAAE19B,MAAuB,KAAV09B,EAAE19B,WAC9B09B,EAAE19B,IAET4nH,EAAc9vH,KAAK4lC,EAAC,WAGdlX,EAAEqmF,kBAAkB8Z,GAAMziC,YAAa,CACjD,MAAMxmD,EAAI,IAAIi1F,GAAoBnsG,EAAEqmF,kBAAkB8Z,IAElD7qC,GAAkBp+C,EAAE19B,MAAuB,KAAV09B,EAAE19B,WAC9B09B,EAAE19B,IAET4nH,EAAc9vH,KAAK4lC,EAAC,CAI1BxuC,KAAKskI,cAAc38H,QAEnB,MAAMmiH,EAAYxyF,EAAEwnF,0BAEpB,UAAW5zG,KAAM4+G,EAAW,CAC1B,IAAIjN,EACJA,EAASvlF,EAAE+mF,wBAAwBnzG,GAE7B2xG,aAAkBxE,KACtBwE,EAASvlF,EAAE4mF,eAAehzG,GACpB2xG,aAAkBH,KACtBG,EAASvlF,EAAE8mF,iBAAiBlzG,KAI3B2xG,IAIDunB,EACa9sG,EAAEqmF,kBAAkBd,EAAO3gB,uBAE/BlH,cAAgBmvC,GADV7sG,EAAEqmF,kBAAkBd,EAAOhF,sBACC7iB,cAAgBmvC,GACvDtnB,EAAO1C,eAAiB0C,EAAO9E,mBAAmBjnG,KAAO+rG,EAAOrP,oBAAoB18F,KACtF6nH,EAAc/vH,KAAK5I,KAAKukI,oCAAoC1nB,KAIjDvlF,EAAEqmF,kBAAkBd,EAAO3gB,uBAE9BlH,cADK19D,EAAEqmF,kBAAkBd,EAAOhF,sBACP7iB,aAC/B6nB,EAAO1C,eACTwe,EAAc/vH,KAAK5I,KAAKukI,oCAAoC1nB,IAAO,CAM3E78G,KAAKskI,cAAcp8C,MAAM0N,iBAAiB,oBAC1C51F,KAAKskI,cAAcp8C,MAAM2wC,sBAAsBH,GAC/C14H,KAAKskI,cAAcp8C,MAAM4N,kBAAkB,oBAE3C91F,KAAKskI,cAAcp8C,MAAM0N,iBAAiB,oBACzC51F,KAAKskI,cAAcp8C,MAA0B4wC,sBAAsBH,GACpE34H,KAAKskI,cAAcp8C,MAAM4N,kBAAkB,oBAC3C91F,KAAKwkI,cACLxkI,KAAKykI,eACLzkI,KAAK0kI,8BACL1kI,KAAK2kI,+BACL3kI,KAAK4kI,0BAEL5kI,KAAKw5H,WAAS,CAElB,CAEA+K,oCAAoC1nB,GAClC,GAAIA,aAAkBxE,GACpB,OAAO,IAAIsrB,GAA2B9mB,GAExC,GAAIA,aAAkBH,GACpB,OAAO,IAAIknB,GAA0B/mB,GAEvC,GAAIA,aAAkBD,GACpB,OAAO,IAAIinB,GAA4BhnB,GAGzC,MAAM,IAAIp2G,MAAM,2BAA2Bo2G,EAAOtxB,WACpD,CAEA84C,oBAAoB/sG,GACJA,EAAEk4E,qBAAqBhhE,GAC5Bo+C,GAAkBp+C,EAAE19B,MAAuB,KAAV09B,EAAE19B,KAEtCnL,QAAQkzF,IACZ,MAAMh4F,EAAOb,KAAKikI,wBAAwBnN,YAAYe,mBAAmB,CAAE3sH,GAAI2tF,EAAG3tF,KAAMiV,QACpFtf,IACFg4F,EAAG/nF,IAAMjQ,EAAK6K,KAAKoF,MAGzB,CAEA0zH,cACE,MAAMK,EAAgB,GAChBC,EAAK9kI,KAAKskI,cAAc5K,MAC9B,KAAOoL,EAAGhsH,QAAQ,CAChB,MAAMogH,EAAO4L,EAAG54H,MACVusH,EAASz4H,KAAKskI,cAAcS,eAAe7L,EAAKxtH,KAAKwnH,IACvDuF,IAAoC,SAAzBA,EAAO/sH,KAAK6/E,UAAgD,eAAzBktC,EAAO/sH,KAAK6/E,YAC5D2tC,EAAKT,OAASz4H,KAAKglI,aAAa9L,GAChC2L,EAAcj8H,KAAK6vH,GACnBoM,EAAcj8H,KAAK6vH,EAAOoC,iBAAiB16G,SAAO,CAItD0kH,EAAcl/H,QAAQ9E,IACpBb,KAAKskI,cAAc1jI,OAAOC,EAAI,EAElC,CAEA4jI,eACE,MAAMI,EAAgB,GAChBC,EAAK9kI,KAAKskI,cAAc5K,MAC9B,KAAOoL,EAAGhsH,QAAQ,CAChB,MAAMogH,EAAO4L,EAAG54H,MAEVusH,EAASz4H,KAAKskI,cAAcS,eAAe7L,EAAKxtH,KAAKwnH,IAEzDuF,IAC0B,UAAzBA,EAAO/sH,KAAK6/E,UACc,gBAAzBktC,EAAO/sH,KAAK6/E,UACa,mBAAzBktC,EAAO/sH,KAAK6/E,YAEd2tC,EAAKT,OAASz4H,KAAKglI,aAAa9L,GAChC2L,EAAcj8H,KAAK6vH,GACnBoM,EAAcj8H,KAAK6vH,EAAOoC,iBAAiB16G,SAAO,CAItD0kH,EAAcl/H,QAAQ9E,IACpBb,KAAKskI,cAAc1jI,OAAOC,EAAI,EAElC,CAEA6jI,8BACE,MAAMG,EAAgB,GAEhBC,EAAK9kI,KAAKskI,cAAc5K,MAC9B,KAAOoL,EAAGhsH,QAAQ,CAChB,MAEM2/G,EAASz4H,KAAKskI,cAAcS,eAFrBD,EAAG54H,MAEsCR,KAAKwnH,IAC3D,GACEuF,IAC0B,aAAzBA,EAAO/sH,KAAK6/E,UACc,mBAAzBktC,EAAO/sH,KAAK6/E,UACa,sBAAzBktC,EAAO/sH,KAAK6/E,WAEuB,IAAjCktC,EAAO4C,gBAAgB5nH,MAAa,CACtC,MAAMwxH,EAAiB,GACNxM,EAAOoC,iBACf1C,KAAK/nB,IACZ60B,EAAer8H,KAAKwnG,EAAC,GAEvB60B,EAAet/H,QAAQyqG,IACrBA,EAAEmoB,SAAWE,EAAO4C,gBAAgBl7G,QAAQo4G,WAE9CsM,EAAcj8H,KAAK6vH,EAAM,EAK/BoM,EAAcl/H,QAAQ9E,IACpBb,KAAKskI,cAAc1jI,OAAOC,EAAI,EAElC,CAEA8jI,+BACE,MAAMlI,EAAYz8H,KAAKskI,cAAcvvF,MAAMh9B,OAAOirB,IAEzB,aAApBA,EAAEt3B,KAAK6/E,UACc,mBAApBvoD,EAAEt3B,KAAK6/E,UACa,sBAApBvoD,EAAEt3B,KAAK6/E,WACoB,IAA7BvoD,EAAE63F,iBAAiBpnH,OAIvB,KAAOgpH,EAAU3jH,QAAQ,CACvB,MAAMkqB,EAAIy5F,EAAUvwH,MACd+4H,EAAiB,GACjBvL,EAAQ12F,EAAEq4F,gBACV6J,EAAWliG,EAAE63F,iBAAiB16G,QAAQs4G,OAC5CiB,EAAMvB,KAAK/nB,IACT60B,EAAer8H,KAAKwnG,EAAC,GAEvB60B,EAAet/H,QAAQyqG,IACrBA,EAAEqoB,OAASyM,GACZ,CAGHllI,KAAKskI,cAAca,YAAY1I,GAAW,EAC5C,CAEAmI,0BACE,MAAMQ,EAAoBplI,KAAKskI,cAAcvvF,MAAMh9B,OAAOirB,GACtB,IAA3BA,EAAEqiG,eAAe5xH,OAE1BzT,KAAKskI,cAAca,YAAYC,GAAmB,EACpD,CAEAJ,aAAa9L,GACX,MAAMr4H,EAAOq4H,EAAKT,OAClB,GACyB,UAAvB53H,EAAK6K,KAAK6/E,UACa,SAAvB1qF,EAAK6K,KAAK6/E,UACa,gBAAvB1qF,EAAK6K,KAAK6/E,UACa,eAAvB1qF,EAAK6K,KAAK6/E,UACa,mBAAvB1qF,EAAK6K,KAAK6/E,SACV,CACA,MAAM+5C,EAAUzkI,EAAKg6H,iBAAiB16G,QACtC,OAAOngB,KAAKglI,aAAaM,EAAO,CAElC,OAAOzkI,CACT,CAEA0kI,wBACE,MAAM52F,EAAqB,GAC3B,YAAK21F,cAAc5K,MAAMvB,KAAKe,KAE1BA,EAAKT,OAAO/sH,KAAK6/E,WAAa0D,oBAC9BiqC,EAAKT,OAAO/sH,KAAK6/E,WAAa0D,kBAC9BiqC,EAAKT,OAAO/sH,KAAK6/E,WAAa0D,qBAE9BtgD,EAAQ/lC,KAAKswH,EAAI,GAGdvqF,CACT,CAEA62F,mBAEgBxlI,KAAKulI,wBACb5/H,QAAQuzH,IACZA,EAAKuM,SAAU,EACfvM,EAAKT,OAAOgN,SAAU,GAE1B,CAEAC,mBACgB1lI,KAAKulI,wBACb5/H,QAAQuzH,IACZA,EAAKuM,SAAU,EACfvM,EAAKT,OAAOgN,SAAU,GAE1B,CAEAjM,YACEx5H,KAAKskI,cAAc9K,WACrB,CAACr5H,kDA5QU6jI,GAAoBl2G,0FAApBk2G,EAAoB5+H,QAApB4+H,EAAoB,qBAFnB,gBAEDA,CAAoB,iCCV1B,IAAM2B,GAAW,MAAlB,MAAOA,EACXC,aAAazW,EAAegT,EAA2B0D,GACrD7lI,KAAK8lI,aAAa3W,EAAOgT,GAAmBh+H,KAAK,SAAUqI,IACzDu5H,aAAOv5H,EAASq5H,EAClB,EACF,CAEAC,aAAa3W,EAAegT,GAC1B,MAAM6D,EAAQ,IAAIC,GAElB9W,SAAMxpH,QAAQ,SAAU2xB,GACtB,MAAMgrF,EAAUhrF,EAAE+qF,mBAIlB2jB,EAAME,KAAK5uG,EAAEl0B,MAAQ,UAAWk/G,EAAS,CAAE6jB,QAAQ,IAGnD,UAAW/pB,KAAa9kF,EAAEmnF,cAAe,CACvC,MAAMr9D,EAAI9pB,EAAEmnF,cAAcrC,GAItBh7D,EAAE+yC,iBACJ6xC,EAAME,KAAK,GAAG9kF,EAAE+yC,mBAAmB78D,EAAEpsB,MAAQ,UAAWk2C,EAAEk7D,iBAAkB,CAAE6pB,QAAQ,GAAM,CAGlG,GAEAH,EAAME,KAAK,QAAS/D,EAAmB,CAAEgE,QAAQ,IAC1CH,EAAMI,cAAc,CAAEz7H,KAAM,QACrC,CAEA07H,SAASH,GACP,OAAOlmI,KAAKsmI,QAAQJ,EAAM,QAC5B,CAEAI,QAAQJ,EAAML,GACZ,OAAOI,aAAgBC,GAAM/hI,KAAK,SAAUi9C,GAC1C,OAAOA,EAAE8kF,KAAKL,GAAUr8G,MAAM,OAChC,EACF,CAACrpB,kDAzCUwlI,EAAW,iEAAXA,EAAWvgI,QAAXugI,EAAW,qBAFV,gBAEDA,CAAW,KCJlB,MAAOY,GACX1mI,YAAsB2mI,sBAAyC,CAE/Dj/H,IAAI2Q,EAAoBQ,GACtB,MAAMrR,EAAOsE,OAAOtE,KAAK6Q,GAEzB,UAAWpH,KAAOzJ,EAAM,CACtB,MAAMqkF,EAAehzE,EAAY5H,GAE7B9Q,KAAKymI,qBAAqB31H,EAAKoH,EAAQQ,KAIvCgzE,aAAwBnB,GAC1BvqF,KAAKwmI,aAAaj/H,IAAI2Q,EAAOpH,GAAM46E,GAEnChzE,EAAY5H,GAAOoH,EAAOpH,GAAG,CAGnC,CAEA21H,qBAAqB31H,EAAaoH,EAAoBQ,GACpD,MAAmC,mBAArBA,EAAY5H,EAC5B,CAEA05E,qBAAqBtyE,EAAoBQ,GAEvC,UAAW5H,KAAO4H,EAAa,CAC7B,MAAMkqE,EAAWlqE,EAAY5H,GAE7B,GAAI8xE,aAAoB2H,IAAsBryE,EAAO2c,eAAe/jB,GAAM,CACxE,MACM41H,EAAc,IAAIn8C,GADLryE,EAAOpH,GAC6B,KAAM,MAC7D41H,EAAYl5C,YAAY5K,EAASsK,UACjCtK,EAAS4H,qBAAqBk8C,EAAW,EAG/C,ECnCI,MAAOC,WAAmCJ,GACrCh/H,IAAI2Q,EAAoBQ,GAC/B5Y,MAAMyH,IAAI2Q,EAAQQ,GAElB,MAEMgyE,EAAU,CAFDhyE,EAES6xF,kBAFT7xF,EAEmC0yF,eAFnC1yF,EAE0D66F,oBAF1D76F,EAEsF86F,OAE/FozB,EAA4Bl8C,EAAQ3yE,OAAO8yE,IAAOyB,GAAgBzB,EAAG3+E,QACrE26H,EAAyBn8C,EAAQ3yE,OAAO8yE,GAAMyB,GAAgBzB,EAAG3+E,QAGnE06H,EAA0BniI,SAAWoiI,EAAuBpiI,SAC9DmiI,EAA0BjhI,QAAQklF,IAChCA,EAAGsC,eAAiBd,uBAGtBw6C,EAAuBlhI,QAAQklF,IAC7BA,EAAGsC,eAAiBd,oBAG1B,ECrBI,MAAOy6C,WAAyCP,GAC3Ch/H,IAAI2Q,EAAoBQ,GAC/B5Y,MAAMyH,IAAI2Q,EAAQQ,GAElB,MACMquH,EAAsBruH,EAKtBo3F,EAHY,IAAIF,GAHI13F,EAGwBm6F,+BAG3BvC,KACrBi3B,EAAoB10B,8BACpB,CAACjC,EAAiCx6F,IACzBw6F,EAAE8B,uBAAyBt8F,EAAEs8F,sBAKxC,UAAW80B,KAA2Bl3B,EAAKK,aAAc,CACvD,MAAM82B,EAAoBF,EAAoB10B,8BAA8BzyE,KAC1EixE,GAAqBA,EAAkBqB,uBAAyB80B,EAAwB90B,sBAG1FpyG,MAAMyH,IAAIy/H,EAAyBC,EAAiB,CAItD,MAAMC,EAA0Bp3B,EAAKG,KACrC,UAAW+2B,KAA2BE,EAAyB,CAC7D,MAAMC,EAA+B,IAAIn1B,GACvCg1B,EACAD,EAAoBj9C,WAEtBi9C,EAAoBz0B,qBAAqB60B,EAA4B,CAIvE,MAAMC,EAA6Bt3B,EAAKI,MACxC,UAAWm3B,KAA6BD,EACtCL,EAAoBx0B,wBAAwB80B,EAA0Bn1B,qBAE1E,CAESu0B,qBAAqB31H,EAA8BoH,EAAoBQ,GAC9E,MAAMpH,EAASxR,MAAM2mI,qBAAqB31H,EAAKoH,EAAQQ,GACvD,MAAe,kCAAR5H,GAA2CQ,CACpD,EC9CI,MAAOg2H,WAAuCf,GACzCh/H,IAAI2Q,EAAoBQ,GAC/B5Y,MAAMyH,IAAI2Q,EAAQQ,GAElB,MACMquH,EAAsBruH,EAKtBo3F,EAHY,IAAIF,GAHI13F,EAGwBm6F,+BAG3BvC,KACrBi3B,EAAoB10B,8BACpB,CAACjC,EAAiCx6F,IACzBw6F,EAAE8B,uBAAyBt8F,EAAEs8F,sBAKxC,UAAW80B,KAA2Bl3B,EAAKK,aAAc,CACvD,MAAM82B,EAAoBF,EAAoB10B,8BAA8BzyE,KAC1EixE,GAAqBA,EAAkBqB,uBAAyB80B,EAAwB90B,sBAG1FpyG,MAAMyH,IAAIy/H,EAAyBC,EAAiB,CAItD,MAAMC,EAA0Bp3B,EAAKG,KACrC,UAAW+2B,KAA2BE,EAAyB,CAC7D,MAAMC,EAA+B,IAAIn1B,GACvCg1B,EACAD,EAAoBj9C,WAEtBi9C,EAAoBz0B,qBAAqB60B,EAA4B,CAIvE,MAAMC,EAA6Bt3B,EAAKI,MACxC,UAAWm3B,KAA6BD,EACtCL,EAAoBx0B,wBAAwB80B,EAA0Bn1B,qBAE1E,CAESu0B,qBAAqB31H,EAA4BoH,EAAoBQ,GAC5E,MAAMpH,EAASxR,MAAM2mI,qBAAqB31H,EAAKoH,EAAQQ,GACvD,MAAe,kCAAR5H,GAA2CQ,CACpD,EC/CI,MAAgBi2H,WAAyChB,GACpDh/H,IAAI2Q,EAAoBQ,GAC/B5Y,MAAMyH,IAAI2Q,EAAQQ,GAClB,MAAM8uH,EAAoBtvH,EACpB6uH,EAAsBruH,EAE5BquH,EAAoBlqC,gBAAkB2qC,EAAkB3qC,cACxD78F,KAAKynI,kBAAkBD,EAAmBT,EAC5C,CAEAU,kBAAkBvvH,EAA2BQ,GAC3C,QAASlU,EAAI,EAAGA,EAAI0T,EAAOwpF,2BAA2Bj9F,OAAQD,IAAK,CACjE,MAAMkjI,EAAcxvH,EAAOwpF,2BAA2Bl9F,GAAG0H,MAGzDwM,EAAYgpF,2BAA2Bl9F,GAAG0H,MAAQogF,GAAgBo7C,IAAgBA,OAAcz5H,EAEpG,CAESw4H,qBAAqB31H,EAAaoH,EAAoBQ,GAC7D,MAAM8uH,EAAoBtvH,EAC1B,OACEpY,MAAM2mI,qBAAqB31H,EAAKoH,EAAQQ,IACxCR,EAAOpH,KAAS02H,EAAkB9lC,0BAEtC,EC3BI,MAAOimC,WAAmCJ,GACrChgI,IAAI2Q,EAAoBQ,GAC/B5Y,MAAMyH,IAAI2Q,EAAQQ,EACpB,ECHI,MAAOkvH,WAAqCL,GACvChgI,IAAI2Q,EAAoBQ,GAC/B5Y,MAAMyH,IAAI2Q,EAAQQ,EACpB,ECAI,MAAOmvH,WAAyCtB,GAC3Ch/H,IAAI2Q,EAAoBQ,GAC/B5Y,MAAMyH,IAAI2Q,EAAQQ,GAElB,MACMquH,EAAsBruH,EAKtBo3F,EAHY,IAAIF,GAHI13F,EAGwBq8F,eAG3BzE,KAAKi3B,EAAoBxyB,cAAe,CAACnE,EAAiBx6F,IACxEw6F,EAAE+B,0BAA4Bv8F,EAAEu8F,yBAIzC,UAAW21B,KAAsBh4B,EAAKK,aAAc,CAClD,MAAM82B,EAAoBF,EAAoBxyB,cAAc30E,KAC1Dy0E,GAAgBA,EAAalC,0BAA4B21B,EAAmB31B,yBAG9EryG,MAAMyH,IAAIugI,EAAoBb,EAAiB,CAIjD,MAAMc,EAAqBj4B,EAAKG,KAChC,UAAWoE,KAAgB0zB,EAAoB,CAC7C,MAAMC,EAA0B,IAAI5zB,EAAaC,EAAc0yB,EAAoBj9C,WACnFi9C,EAAoBtyB,gBAAgBuzB,EAAuB,CAI7D,MAAMC,EAAwBn4B,EAAKI,MACnC,UAAWg4B,KAAwBD,EACjClB,EAAoBpyB,mBAAmBuzB,EAAqB/1B,wBAEhE,CAESs0B,qBAAqB31H,EAAaoH,EAAoBQ,GAC7D,MAAMpH,EAASxR,MAAM2mI,qBAAqB31H,EAAKoH,EAAQQ,GACvD,MAAe,kBAAR5H,GAA2BQ,CACpC,ECxCI,MAAO62H,WAA2C5B,GAC7Ch/H,IAAI2Q,EAAoBQ,GAC/B5Y,MAAMyH,IAAI2Q,EAAQQ,GAElB,MACMquH,EAAsBruH,EAKtBo3F,EAHY,IAAIF,GAHI13F,EAGwBm6F,+BAG3BvC,KACrBi3B,EAAoB10B,8BACpB,CAACjC,EAAmCx6F,IAC3Bw6F,EAAE+B,0BAA4Bv8F,EAAEu8F,yBAK3C,UAAW60B,KAA2Bl3B,EAAKK,aAAc,CACvD,MAAM82B,EAAoBF,EAAoB10B,8BAA8BzyE,KAC1EixE,GACEA,EAAkBsB,0BAA4B60B,EAAwB70B,yBAG1EryG,MAAMyH,IAAIy/H,EAAyBC,EAAiB,CAItD,MAAMC,EAA0Bp3B,EAAKG,KACrC,UAAWY,KAAqBq2B,EAAyB,CACvD,MAAMC,EAA+B,IAAItyB,EACvChE,EACAk2B,EAAoBj9C,WAEtBi9C,EAAoBz0B,qBAAqB60B,EAA4B,CAIvE,MAAMC,EAA6Bt3B,EAAKI,MACxC,UAAWW,KAAqBu2B,EAC9BL,EAAoBx0B,wBAAwB1B,EAAkBsB,wBAElE,CAESs0B,qBAAqB31H,EAAaoH,EAAoBQ,GAC7D,MAAMpH,EAASxR,MAAM2mI,qBAAqB31H,EAAKoH,EAAQQ,GACvD,MAAe,kCAAR5H,GAA2CQ,CACpD,EChDI,MAAgB82H,WAA2C7B,GACtDh/H,IAAI2Q,EAAoBQ,GAC/B5Y,MAAMyH,IAAI2Q,EAAQQ,GAClB,MAAM8uH,EAAoBtvH,EACpB6uH,EAAsBruH,EAE5BquH,EAAoBlqC,gBAAkB2qC,EAAkB3qC,cACxD78F,KAAKynI,kBAAkBD,EAAmBT,EAC5C,CAEAU,kBAAkBvvH,EAA6BQ,GAC7C,QAASlU,EAAI,EAAGA,EAAI0T,EAAOwpF,2BAA2Bj9F,OAAQD,IAAK,CACjE,MAAMkjI,EAAcxvH,EAAOwpF,2BAA2Bl9F,GAAG0H,MAGzDwM,EAAYgpF,2BAA2Bl9F,GAAG0H,MAAQogF,GAAgBo7C,IAAgBA,OAAcz5H,EAEpG,CAESw4H,qBAAqB31H,EAAaoH,EAAoBQ,GAC7D,MAAM8uH,EAAoBtvH,EAC1B,OACEpY,MAAM2mI,qBAAqB31H,EAAKoH,EAAQQ,IACxCR,EAAOpH,KAAS02H,EAAkB9lC,0BAEtC,EC3BI,MAAO2mC,WAAuCD,GACzC7gI,IAAI2Q,EAAoBQ,GAC/B5Y,MAAMyH,IAAI2Q,EAAQQ,EACpB,ECAI,MAAO4vH,WAAmC/B,GACrCh/H,IAAI2Q,EAAoBQ,GAC/B5Y,MAAMyH,IAAI2Q,EAAQQ,GAElB,MACMgyE,EAAU,CADIhyE,EACSoxF,YADTpxF,EACkCqxF,SADlCrxF,EACwDsxF,eACtE48B,EAA4Bl8C,EAAQ3yE,OAAO8yE,IAAOyB,GAAgBzB,EAAG3+E,QACrE26H,EAAyBn8C,EAAQ3yE,OAAO8yE,GAAMyB,GAAgBzB,EAAG3+E,QAEnE26H,EAAuBpiI,OAASoiI,EAAuBpiI,SAAWmiI,EAA0BniI,SAC9FmiI,EAA0BjhI,QAAQklF,IAChCA,EAAGsC,eAAiBd,uBAGtBw6C,EAAuBlhI,QAAQklF,IAC7BA,EAAGsC,eAAiBd,oBAG1B,ECnBI,MAAgBk8C,WAAoChC,GAC/Ch/H,IAAI2Q,EAAoBQ,GAC/B5Y,MAAMyH,IAAI2Q,EAAQQ,GAClB,MAAM8uH,EAAoBtvH,EACpB6uH,EAAsBruH,EAE5BquH,EAAoBlqC,gBAAkB2qC,EAAkB3qC,cACxD78F,KAAKynI,kBAAkBD,EAAmBT,EAC5C,CAEAU,kBAAkBvvH,EAAkBQ,GAClC,QAASlU,EAAI,EAAGA,EAAI0T,EAAOwpF,2BAA2Bj9F,OAAQD,IAAK,CACjE,MAAMkjI,EAAcxvH,EAAOwpF,2BAA2Bl9F,GAAG0H,MAGzDwM,EAAYgpF,2BAA2Bl9F,GAAG0H,MAAQogF,GAAgBo7C,IAAgBA,OAAcz5H,EAEpG,CAESw4H,qBAAqB31H,EAAaoH,EAAoBQ,GAC7D,MAAM8uH,EAAoBtvH,EAC1B,OACEpY,MAAM2mI,qBAAqB31H,EAAKoH,EAAQQ,IACxCR,EAAOpH,KAAS02H,EAAkB9lC,0BAEtC,ECzBI,MAAO8mC,WAAgCD,GAClChhI,IAAI2Q,EAAoBQ,GAC/B5Y,MAAMyH,IAAI2Q,EAAQQ,GAElB,MACMquH,EAAsBruH,EAE5B1Y,KAAKyoI,8BAHqBvwH,EAG4B6uH,GACtD/mI,KAAK0oI,oBAAoB3B,EAC3B,CAEQ0B,8BAA8BjB,EAA6BT,GACjE,GAAIS,EAAkB9lC,2BAA4B,CAEhD,GACE8lC,EAAkB9lC,2BAA2Bj9F,SAAWsiI,EAAoBrlC,2BAA2Bj9F,OAEvG,MAAM,IAAIgC,MACR,sEACK+gI,EAAkBpkI,UAAU2jI,EAAoBrlC,8BAIzD,QAASl9F,EAAI,EAAGA,EAAIgjI,EAAkB9lC,2BAA2Bj9F,OAAQD,IAErEuiI,EAAoBrlC,2BAA2Bl9F,GAAG0H,MADhDogF,GAAgBk7C,EAAkB9lC,2BAA2Bl9F,GAAG0H,QAE/Ds7H,EAAkB9lC,2BAA2Bl9F,GAAG0H,WAEO+B,EAI1D84H,EAAoBrlC,2BAA2Bl9F,GAAGm5F,aADhDrR,GAAgBk7C,EAAkB9lC,2BAA2Bl9F,GAAGm5F,eAE/D6pC,EAAkB9lC,2BAA2Bl9F,GAAGm5F,kBAEc1vF,EAIjE84H,EAAoBrlC,2BAA2Bl9F,GAAGo5F,aADhDtR,GAAgBk7C,EAAkB9lC,2BAA2Bl9F,GAAGo5F,eAE/D4pC,EAAkB9lC,2BAA2Bl9F,GAAGo5F,kBAEc3vF,EAIzE,CAEAy6H,oBAAoB3B,GAClB,IAAI4B,EAAoBh9H,OAAOtE,KAAK0/H,EAAoBnzC,YAAYA,aAAanvF,OAC7EkkI,EAAoB,IACtBh9H,OAAOgO,OAAOotH,EAAoBnzC,YAAYA,aAAajuF,QAAQy4F,IACjE,MAAMwqC,EAAsB7B,EAAoBhlC,8BAA8B3D,EAAKN,uBAEnF,OAAQipC,EAAoBlqC,eAC1B,KAAK,EACCuB,EAAKL,eAAesZ,SAAS,YAAcjZ,EAAKL,eAAesZ,SAAS,kBACnE0vB,EAAoBnzC,YAAYA,YAAYwK,EAAKlzF,IAExDkzF,EAAKJ,gBAAkB4qC,EAAoB18H,MAE7C,MACF,KAAK,EACCkyF,EAAKL,eAAesZ,SAAS,WAC/BjZ,EAAKJ,gBAAkB4qC,EAAoBjrC,aAClCS,EAAKL,eAAesZ,SAAS,WACtCjZ,EAAKJ,gBAAkB4qC,EAAoBhrC,oBAEpCmpC,EAAoBnzC,YAAYA,YAAYwK,EAAKlzF,IAE1D,MACF,QACE,MAAM,IAAIzE,MAAM,8BAA8B,GAGpDkiI,EAAoBh9H,OAAOgO,OAAOotH,EAAoBnzC,YAAYA,aAAanvF,QAGvD,IAAtBkkI,GACF5B,EAAoBrlC,2BAA2B/7F,QAAQkjI,IACrD9B,EAAoBplC,yCAAyCknC,EAAW,EAG9E,CAESpC,qBAAqB31H,EAAaoH,EAAoBQ,GAC7D,MAAM8uH,EAAoBtvH,EAE1B,OACEpY,MAAM2mI,qBAAqB31H,EAAKoH,EAAQQ,IACxCR,EAAOpH,KAAS02H,EAAkB9lC,0BAEtC,EC5FI,MAAgBonC,WAAuCvC,GAClDh/H,IAAI2Q,EAAoBQ,GAC/B5Y,MAAMyH,IAAI2Q,EAAQQ,GAClB,MAAM8uH,EAAoBtvH,EACpB6uH,EAAsBruH,EAE5BquH,EAAoBlqC,gBAAkB2qC,EAAkB3qC,cACxD78F,KAAKynI,kBAAkBD,EAAmBT,EAC5C,CAEAU,kBAAkBvvH,EAAqBQ,GACrC,QAASlU,EAAI,EAAGA,EAAI0T,EAAOwpF,2BAA2Bj9F,OAAQD,IAAK,CACjE,MAAMkjI,EAAcxvH,EAAOwpF,2BAA2Bl9F,GAAG0H,MAGzDwM,EAAYgpF,2BAA2Bl9F,GAAG0H,MAAQogF,GAAgBo7C,IAAgBA,OAAcz5H,EAEpG,CAESw4H,qBAAqB31H,EAAaoH,EAAoBQ,GAC7D,MAAM8uH,EAAoBtvH,EAC1B,OACEpY,MAAM2mI,qBAAqB31H,EAAKoH,EAAQQ,IACxCR,EAAOpH,KAAS02H,EAAkB9lC,0BAEtC,EC1BI,MAAOqnC,WAAmCD,GACrCvhI,IAAI2Q,EAAoBQ,GAC/B5Y,MAAMyH,IAAI2Q,EAAQQ,EACpB,ECFI,MAAOswH,WAAoCzC,GACtCh/H,IAAI2Q,EAAoBQ,GAC/B5Y,MAAMyH,IAAI2Q,EAAQQ,GAElB,MAAMuwH,EAA0BvwH,EAC1BwwH,EAAqBhxH,EAE3B,GACEgxH,EAAmB/hC,yBAAyB1iG,SAAWwkI,EAAwB9hC,yBAAyB1iG,OAExG,MAAM,IAAIgC,MAAM,sFAGlB,QAASjC,EAAI,EAAGA,EAAI0kI,EAAmB/hC,yBAAyB1iG,OAAQD,IACtEykI,EAAwB9hC,yBAAyB3iG,GAAG0H,MAAQg9H,EAAmB/hC,yBAAyB3iG,GAAG0H,KAE/G,CAESu6H,qBAAqB31H,EAAaoH,EAAoBQ,GAC7D,OACE5Y,MAAM2mI,qBAAqB31H,EAAKoH,EAAQQ,IAAgD,6BAA/B5H,CAE7D,ECrBI,MAAOq4H,WAA6B5C,GAC/Bh/H,IAAI2Q,EAAoBQ,GAC/B5Y,MAAMyH,IAAI2Q,EAAQQ,GAGlB,MACMquH,EAAsBruH,EAE5B1Y,KAAKopI,wBAHqBlxH,EAGsB6uH,GAChD/mI,KAAK0oI,oBAAoB3B,EAC3B,CAEQqC,wBAAwB5B,EAA0BT,GACxD,GAAIS,EAAkB1oC,qBAAsB,CAE1C,GAAI0oC,EAAkB1oC,qBAAqBr6F,SAAWsiI,EAAoBjoC,qBAAqBr6F,OAC7F,MAAM,IAAIgC,MACR,sEACK+gI,EAAkBpkI,UAAU2jI,EAAoBjoC,wBAIzD,QAASt6F,EAAI,EAAGA,EAAIgjI,EAAkB1oC,qBAAqBr6F,OAAQD,IAE/DuiI,EAAoBjoC,qBAAqBt6F,GAAG0H,MAD1CogF,GAAgBk7C,EAAkB1oC,qBAAqBt6F,GAAG0H,QACPs7H,EAAkB1oC,qBAAqBt6F,GAAG0H,WAE3C+B,EAIpD84H,EAAoBjoC,qBAAqBt6F,GAAGm5F,aAD1CrR,GAAgBk7C,EAAkB1oC,qBAAqBt6F,GAAGm5F,eAEzD6pC,EAAkB1oC,qBAAqBt6F,GAAGm5F,kBAEc1vF,EAI3D84H,EAAoBjoC,qBAAqBt6F,GAAGo5F,aAD1CtR,GAAgBk7C,EAAkB1oC,qBAAqBt6F,GAAGo5F,eAEzD4pC,EAAkB1oC,qBAAqBt6F,GAAGo5F,kBAEc3vF,EAInE,CAEAy6H,oBAAoB3B,GAClB,IAAI4B,EAAoBh9H,OAAOtE,KAAK0/H,EAAoBnzC,YAAYA,aAAanvF,OAC7EkkI,EAAoB,IACtBh9H,OAAOgO,OAAOotH,EAAoBnzC,YAAYA,aAAajuF,QAAQy4F,IACjE,MAAMwqC,EAAsB7B,EAAoB9nC,wBAAwBb,EAAKN,uBAE7E,OAAQipC,EAAoB1nC,mBAC1B,KAAK9B,SACCa,EAAKL,eAAesZ,SAAS,YAAcjZ,EAAKL,eAAesZ,SAAS,kBACnE0vB,EAAoBnzC,YAAYA,YAAYwK,EAAKlzF,IAExDkzF,EAAKJ,gBAAkB4qC,EAAoB18H,MAE7C,MACF,KAAKqxF,SACCa,EAAKL,eAAesZ,SAAS,WAC/BjZ,EAAKJ,gBAAkB4qC,EAAoBjrC,aAClCS,EAAKL,eAAesZ,SAAS,WACtCjZ,EAAKJ,gBAAkB4qC,EAAoBhrC,oBAEpCmpC,EAAoBnzC,YAAYA,YAAYwK,EAAKlzF,IAE1D,MACF,QACE,MAAM,IAAIzE,MAAM,+BAA+B,GAGrDkiI,EAAoBh9H,OAAOgO,OAAOotH,EAAoBnzC,YAAYA,aAAanvF,QAGvD,IAAtBkkI,GACF5B,EAAoBjoC,qBAAqBn5F,QAAQkjI,IAC/C9B,EAAoB/nC,mCAAmC6pC,EAAW,EAGxE,CAESpC,qBAAqB31H,EAAaoH,EAAoBQ,GAC7D,MAAM8uH,EAAoBtvH,EAC1B,OACEpY,MAAM2mI,qBAAqB31H,EAAKoH,EAAQQ,IAAgBR,EAAOpH,KAAS02H,EAAkB1oC,oBAE9F,ECxFI,MAAOuqC,WAAyC9C,GAC3Ch/H,IAAI2Q,EAAoBQ,GAC/B5Y,MAAMyH,IAAI2Q,EAAQQ,GAElB,MAAM4wH,EAA+B5wH,EAC/B8uH,EAAoBtvH,EAE1B,GAAIsvH,EAAkB7pG,QAAQl5B,SAAW6kI,EAA6B3rG,QAAQl5B,OAC5E,MAAM,IAAIgC,MAAM,kEAGlB+gI,EAAkB7pG,QAAQh4B,QAAQ,CAAC4jI,EAAyD/kI,KAC1F,MAAMglI,EAAoBF,EAA6B3rG,QAAQn5B,GAC/DxE,KAAKwmI,aAAaj/H,IAAIgiI,EAAYl1C,MAAOm1C,EAAkBn1C,OAC3Dr0F,KAAKwmI,aAAaj/H,IAAIgiI,EAAYj1C,MAAOk1C,EAAkBl1C,OAC3Dk1C,EAAkBp1C,gBAAkBm1C,EAAYn1C,iBAEpD,CAESqyC,qBAAqB31H,EAAaoH,EAAoBQ,GAC7D,OAAO5Y,MAAM2mI,qBAAqB31H,EAAKoH,EAAQQ,IAAqD,YAApC5H,CAClE,ECPI,MAAO24H,GAIX5pI,YAAoB2mI,uBAClBxmI,KAAK0pI,QAAU,GAEf1pI,KAAK0pI,QAAQz6C,0BAA8C,IAAIo6C,GAAiCrpI,KAAKwmI,cACrGxmI,KAAK0pI,QAAQz6C,iBAAqC,IAAIs3C,GAAiCvmI,KAAKwmI,cAC5FxmI,KAAK0pI,QAAQz6C,aAAiC,IAAIs3C,GAAiCvmI,KAAKwmI,cACxFxmI,KAAK0pI,QAAQz6C,qBAAyC,IAAI+5C,GAA4BhpI,KAAKwmI,cAC3FxmI,KAAK0pI,QAAQz6C,wBAA4C,IAAIs3C,GAAiCvmI,KAAKwmI,cACnGxmI,KAAK0pI,QAAQz6C,iBAAqC,IAAIu5C,GAAwBxoI,KAAKwmI,cACnFxmI,KAAK0pI,QAAQz6C,cAAkC,IAAIk6C,GAAqBnpI,KAAKwmI,cAC7ExmI,KAAK0pI,QAAQz6C,oBAAwC,IAAI85C,GAA2B/oI,KAAKwmI,cAEzFxmI,KAAK0pI,QAAQz6C,oBAAwC,IAAIq5C,GAA2BtoI,KAAKwmI,cACzFxmI,KAAK0pI,QAAQz6C,0BAA8C,IAAI63C,GAAiC9mI,KAAKwmI,cACrGxmI,KAAK0pI,QAAQz6C,wBAA4C,IAAIq4C,GAA+BtnI,KAAKwmI,cAEjGxmI,KAAK0pI,QAAQz6C,oBAAwC,IAAI03C,GAA2B3mI,KAAKwmI,cAEzFxmI,KAAK0pI,QAAQz6C,oBAAwC,IAAI04C,GAA2B3nI,KAAKwmI,cACzFxmI,KAAK0pI,QAAQz6C,sBAA0C,IAAI24C,GAA6B5nI,KAAKwmI,cAC7FxmI,KAAK0pI,QAAQz6C,oBAAwC,IAAIs3C,GAAiCvmI,KAAKwmI,cAC/FxmI,KAAK0pI,QAAQz6C,qBAAyC,IAAIs3C,GAAiCvmI,KAAKwmI,cAChGxmI,KAAK0pI,QAAQz6C,0BAA8C,IAAIs3C,GAAiCvmI,KAAKwmI,cAErGxmI,KAAK0pI,QAAQz6C,0BAA8C,IAAI44C,GAAiC7nI,KAAKwmI,cACrGxmI,KAAK0pI,QAAQz6C,4BAAgD,IAAIk5C,GAC/DnoI,KAAKwmI,cAEPxmI,KAAK0pI,QAAQz6C,oBAAwC,IAAIs3C,GAAiCvmI,KAAKwmI,cAC/FxmI,KAAK0pI,QAAQz6C,qBAAyC,IAAIs3C,GAAiCvmI,KAAKwmI,cAEhGxmI,KAAK0pI,QAAQz6C,sBAA0C,IAAIs3C,GAAiCvmI,KAAKwmI,cACjGxmI,KAAK0pI,QAAQz6C,wBAA4C,IAAIo5C,GAA+BroI,KAAKwmI,cACjGxmI,KAAK0pI,QAAQz6C,8BAAkD,IAAIs3C,GACjEvmI,KAAKwmI,aAET,CAQAj/H,IAAI2Q,EAAoBQ,GACtB1Y,KAAK0pI,QAAQhxH,EAAY6yE,UAAUhkF,IAAI2Q,EAAQQ,EACjD,CAEA8xE,qBAAqBtyE,EAAoBQ,GACvC1Y,KAAK0pI,QAAQhxH,EAAY6yE,UAAUf,qBAAqBtyE,EAAQQ,EAClE,ECnEK,IAAMixH,GAAwB,MAA/B,MAAOA,EACXpiI,IAAI2Q,EAAkCQ,GAChCR,EAAOhN,KACTwN,EAAYxN,GAAKgN,EAAOhN,IAGtBgN,EAAOg1E,WACTx0E,EAAYw0E,SAAWh1E,EAAOg1E,UAI9Bx0E,EAAYxM,MADVogF,GAAgBp0E,EAAOhM,QACJgM,EAAOhM,WAER+B,EAGlBiK,EAAOinD,OACTzmD,EAAYymD,KAAOjnD,EAAOinD,MAGxBjnD,EAAOsH,SACT9G,EAAYy0E,eAAiBj1E,EAAOi1E,gBAGjCP,GAAkB10E,EAAOwpC,YAC5BhpC,EAAYgpC,WAAaxpC,EAAOwpC,SAEpC,CAACvhD,kDA3BUwpI,EAAwB,iEAAxBA,EAAwBvkI,QAAxBukI,EAAwB,qBAFvB,gBAEDA,CAAwB,KCA/B,SAAUC,GAAuCrtH,GACrD,OACEywE,GAAezwE,EAAImiF,qCAAuC1R,GAAezwE,EAAI4iF,sCAEjF,CCJM,SAAU0qC,GAAwCttH,GACtD,OACEywE,GAAezwE,EAAIqlF,sCACnB5U,GAAezwE,EAAI0lF,uCAEvB,CCRO,IAAM6nC,GAAoB,MAA3B,MAAOA,EADbjqI,cAEUG,iBAAc,IAAIooB,MAC1BpoB,iBAAcA,KAAKkxH,YAAYjoE,eAE/BkN,OACEn2D,KAAKkxH,YAAYp4G,MACnB,CAAC3Y,kDANU2pI,EAAoB,iEAApBA,EAAoB1kI,QAApB0kI,EAAoB,mBAApBA,CAAoB,KCqCpBC,GAAW,MAAlB,MAAOA,EA2CXlqI,YACU6vH,EACAuU,EACAzS,EACAC,EACAuY,EACAC,EACA9G,EACA+G,EACAC,EACAhL,EACAiL,GAVApqI,kBACAA,+BACAA,kBACAA,yBACAA,qBACAA,2BACAA,wBACAA,mBACAA,cACAA,2BACAA,4BA/CFA,wBAAqB,IAAIooB,MACjCpoB,wBAAqBA,KAAKqqI,mBAAmBphF,eAIrCjpD,gCAA6B,IAAIooB,MACzCpoB,gCAA6BA,KAAKsqI,2BAA2BrhF,eAErDjpD,+BAA4B,IAAIooB,MACxCpoB,+BAA4BA,KAAKuqI,0BAA0BthF,eAEnDjpD,uBAAoB,IAAIooB,MAChCpoB,uBAAoBA,KAAKwqI,kBAAkBvhF,eAEnCjpD,iCAA8B,IAAIooB,MAC1CpoB,iCAA8BA,KAAKyqI,4BAA4BxhF,eAEvDjpD,yBAAsB,IAAIooB,MAKlCpoB,yBAAsBA,KAAK0qI,oBAAoBzhF,eAEvCjpD,iCAA8B,IAAIooB,MAC1CpoB,iCAA8BA,KAAK2qI,4BAA4B1hF,eAEvDjpD,yBAAsB,IAAIooB,MAClCpoB,yBAAsBA,KAAK4qI,oBAAoB3hF,eAEvCjpD,0BAAuB,IAAIooB,MACnCpoB,0BAAuBA,KAAK6qI,qBAAqB5hF,eAEzCjpD,wBAAqB,IAAIooB,MACjCpoB,wBAAqBA,KAAK8qI,mBAAmB7hF,eAe3CjpD,KAAKm/H,oBAAoBnB,mBACzBh+H,KAAK+qI,oBAAmB,GAElB/oI,OAAQgpI,QAAUhrI,KAExBA,KAAKikI,wBAAwBgH,mBAAmB1yH,UAAUm9E,KACxD11F,KAAKkrI,yBAAyBx1C,GAAQ,GAIxC11F,KAAKikI,wBAAwBkH,8BAA8B5yH,UAAW7M,KACpE1L,KAAKorI,gCAAgC1/H,GAAK8sH,WAAY9sH,GAAKyoF,gBAAe,GAI5En0F,KAAKikI,wBAAwBoH,kCAAkC9yH,UAAW7M,KACxE1L,KAAKsrI,8BAA8B5/H,GAAKR,GAAIQ,GAAKyoF,gBAAe,GAIlEn0F,KAAKikI,wBAAwBsH,uCAAuChzH,UAAW7M,KAC7E1L,KAAKwrI,8BAA8B9/H,GAAKR,GAAIQ,GAAKyoF,gBAAe,GAGlEn0F,KAAKikI,wBAAwBwH,mBAAmBlzH,UAAW7M,KACzD1L,KAAK0rI,UAAUhgI,GAAI,GAGrB1L,KAAKikI,wBAAwB0H,mBAAmBpzH,UAAW7M,KACzD1L,KAAK4rI,aAAalgI,GAAI,GAGxB1L,KAAKikI,wBAAwB4H,iBAAiBtzH,UAAU,KACtDvY,KAAK8rI,yBAAuB,GAG9B9rI,KAAKikI,wBAAwB8H,mBAAmBxzH,UAAW47E,KACzDn0F,KAAKgsI,oBAAoB73C,GAAe,GAG1Cn0F,KAAKikI,wBAAwBgI,mBAAmB1zH,UAAW2zH,KACzDlsI,KAAKmsI,4BAA4BD,GAAiB,GAGpDlsI,KAAKosI,4BAA4B7zH,UAAU7M,KACzC1L,KAAKqsI,qBAAqB3gI,GAAKqpF,cAAerpF,GAAK4gI,gBAAe,EAEtE,CAGAvB,mBAAmBwB,GACjBvsI,KAAK4X,QAAU,IAAIq3G,GACnBjvH,KAAK4X,QAAQ43G,QAAUmN,2BACvB38H,KAAK4X,QAAQxU,KAAO,UAEpBpD,KAAK6xH,YAAc7xH,KAAK4X,QAAQw3G,kBAGhCpvH,KAAKwsI,oBAGLxsI,KAAKysI,0BAA0B,CAAEC,sBAAsB,IAEnDH,GACFvsI,KAAKu3H,gBAAgBv3H,KAAK6xH,YAE9B,CAGAuZ,gCAAgC5S,EAAoBrkC,GAClD,MAAMpE,EAAW/vF,KAAK6xH,YAAYtyB,iBAAiBi5B,IAE/CzoC,aAAoB2d,IAEb3d,aAAoBslB,GAEpBtlB,aAAoB6W,IAIpB7W,aAAoBoY,IAEpBpY,aAAoB+Y,KAC7B/Y,EAASkW,wBAAwB9R,EAErC,CAEAm3C,8BAA8BqB,EAAax4C,GACnBn0F,KAAK6xH,YAAYtyB,iBAAiBotC,GACrD1mC,wBAAwB9R,EAC7B,CAEAq3C,8BAA8BtgI,EAAYipF,GACxC,MAAM0E,EAAwB74F,KAAK6xH,YAAYtyB,iBAAiBr0F,GAC5D2tF,GACFA,EAAGwD,UAAUlI,EAEjB,CAMA+2C,yBAAyBx1C,GAEvB,MAAMmD,EAAK74F,KAAK6xH,YAAYtU,6BAC1B,CACEhyB,SAAUmK,EAASnK,SACnBz6E,IAAK4kF,EAAS5kF,IACd1N,KAAMsyF,EAAStyF,KACf4xF,YAAaU,EAASV,aAAeh1F,KAAK6xH,YAAYrP,qBAAqBruB,gBAC3E/rD,SAAU,CAAE/T,EAAGqhE,EAASttD,SAAS/T,EAAG6gE,EAAGQ,EAASttD,SAAS8sD,IAE3Dl1F,KAAKm/H,oBAAoBhB,kBAAkBzoC,EAASnK,WAGtDsN,EAAGz1F,KAAOy1F,EAAG/O,UAAU83B,2BAA2B/oB,EAAGz1F,MACrDpD,KAAKikI,wBAAwBvM,yBAAyB7+B,EAAInD,GAE1D11F,KAAKuqI,0BAA0BzxH,KAAK+/E,GACpC74F,KAAK8rI,yBACP,CAQAc,sBAAsB1hI,GACpB,OAAOlL,KAAK6xH,YAAYxU,mBAAmBr9G,KAAK6xH,YAAYtyB,iBAAiBr0F,GAC/E,CAOA2hI,wCAAwCC,GACtC,MAAMC,EAAwB/sI,KAAK6xH,YAAYtyB,iBAAiButC,EAAkB5hI,IAC5E22G,EAAekrB,EAAsB3pI,KAE3C,IAAIkpI,GAAkB,EAClBQ,EAAkB1gF,cAAc2gF,KAClCT,GAAkB,GAGpBQ,EAAkB5iD,aAAa6iD,GAC/BD,EAAkBriD,wBAElBzqF,KAAK6xH,YAAYxR,kBAAiCysB,IAI9CR,GAHkBzqB,IAAiBirB,EAAkB1pI,OAIvDpD,KAAKgtI,2BAA2BD,EAAuBT,EAE3D,CAGAW,sDACEH,EACAI,GAEA,MAAMH,EAAwB/sI,KAAK6xH,YAAYtyB,iBAAiButC,EAAkB5hI,IAC5EohI,EAAkBY,EAAiBC,sBAAsBJ,EAAsBxhD,UAEjF+gD,GACFtsI,KAAKgtI,2BAA2BF,EAAmBR,EAEvD,CAGAc,sCAAsCN,GACpC,MAAMC,EAAwB/sI,KAAK6xH,YAAYtyB,iBAAiButC,EAAkB5hI,IAC5EohI,EAAkBQ,EAAkB1gF,cAAc2gF,GAEpDT,GACFtsI,KAAKgtI,2BAA2BF,EAAmBR,EAEvD,CAEAe,kCAAkCH,EAA8CJ,GAC9E,MAAMQ,EAAW,IAAI3D,GACf4D,EAAS,IAAI9D,GAA0B6D,GAG7CJ,EAAiBM,gCAAgCV,EAAkB1pI,MAEnE,MAAMqqI,EAAsBztI,KAAK6xH,YAAYtyB,iBAAiButC,EAAkB5hI,IAE1EgN,EAASg1H,EAAiBQ,cAChCH,EAAO/iD,qBAAqBtyE,EAAQu1H,GACpCF,EAAOhmI,IAAI2Q,EAAQu1H,GAGnB,MAAMnB,EAAkBY,EAAiBC,sBAAsBL,EAAkBvhD,UAC3EoiD,EAAgBT,EAAiBU,uBACnCtB,GAAmBqB,IACrB3tI,KAAKgtI,2BAA2BS,EAA4CnB,EAEhF,CAOAD,qBAAqBt3C,EAA8Bu3C,GAC7CA,GACFv3C,EAAcsB,iBAGhBr2F,KAAKikI,wBAAwBvM,yBAAyB3iC,GAElDu3C,GACFtsI,KAAK8rI,wBAAwB,wEAEjC,CAEAkB,2BAA2Bj4C,EAA8Bu3C,GACvDtsI,KAAKyqI,4BAA4B3xH,KAAK,CAAEi8E,gBAAeu3C,mBACzD,CAEAuB,mBAAmBvf,EAA+Cge,GAChEtsI,KAAK0qI,oBAAoB5xH,KAAK,CAAEw1G,QAAOge,mBACzC,CAEAwB,iBAAiBxf,GACftuH,KAAKwqI,kBAAkB1xH,KAAKw1G,EAC9B,CAEAyf,mBAAmBzf,GACjBtuH,KAAK4qI,oBAAoB9xH,KAAKw1G,EAChC,CAEAhO,iBAAiB3tE,GACXA,EAAGyZ,cAAcpsD,KAAK6xH,YAAYjX,eACpC56G,KAAK8rI,0BAGP9rI,KAAK6xH,YAAYvR,iBAAiB3tE,EACpC,CAEAq7F,WAAWrkI,GAET3J,KAAKikI,wBAAwBnM,kBAAkBnuH,EACjD,CAEAskI,uBACOjuI,KAAK6xH,YAAYrP,uBAEpB1iE,QAAQQ,KAAK,kEACbtgD,KAAK6xH,YAAYnP,mBAAmB,IAAIvG,GAAU,GAAIn8G,KAAK6xH,cAC3D7xH,KAAK6xH,YAAYjP,mBAAmB5iH,KAAK6xH,YAAYrP,qBAAqBt3G,IAC1ElL,KAAK6xH,YAAYvmC,WAAWtrF,KAAK6xH,YAAYrP,sBAC7CxiH,KAAKikI,wBAAwBzM,kCAAkCx3H,KAAK6xH,cAItE7xH,KAAK6xH,YAAYpT,cAAcz+G,KAAK6xH,YAAYrP,qBAAqBt3G,IAAIsxG,eACvEx8G,KAAKikI,wBAAwB3nB,iBAEjC,CAMQovB,UAAU5M,GAChB,MAAMn1H,EAAIk1H,UAAqBC,EAAY9+H,KAAK6xH,aAChDloH,EAAEkuG,qBAAuBinB,EAAWjnB,qBACpCluG,EAAEuyF,sBAAwB4iC,EAAW5iC,sBACrCvyF,EAAEqgF,QAAQhqF,KAAK6xH,YAAY9P,4BAA4B,WACvDp4G,EAAEyrF,gBACFzrF,EAAE0rF,mBACF1rF,EAAEmuG,gBAAkBgnB,EAAWhnB,gBAC/B93G,KAAK6xH,YAAYvmC,WAAW3hF,GAC5BA,EAAE6hF,mBACFxrF,KAAKikI,wBAAwBnM,kBAAkBnuH,GAE/C,MAAQouG,qBAAoBvK,uBAAwB7jG,EAChDouG,aAA8BtE,IAChCsE,EAAmB9R,wBAAwBt8F,EAAEuyF,uBAK3C0tC,GAAuCp8B,IACzCA,EAAoB9O,mCAAmC/0F,EAAEkuG,sBAGvDgyB,GAAwC9xB,IAC1CA,EAAmBnW,oCAAoCj4F,EAAE6jG,oBAAoBtiG,IAG/ElL,KAAK8qI,mBAAmBhyH,KAAKnP,EAC/B,CAEQiiI,aAAa9M,EAA4BoP,GAC/C,MAAMrxB,EAAS78G,KAAK6xH,YAAY7T,kBAAkB8gB,EAAW5zH,IAExD2xG,IAIL78G,KAAKmuI,aAAatxB,EAAQqxB,GAE1BluI,KAAK6qI,qBAAqB/xH,KAAK+jG,GAC/B78G,KAAK6xH,YAAY1R,yBAAyBtD,EAAO3xG,IACnD,CAOAijI,aAAatxB,EAAoBqxB,GAC/B,MAAME,EAAcvxB,EAAO9E,mBACrBs2B,EAAexxB,EAAOrP,oBAIxB0gC,IAA8BE,IAC5BvE,GAAwCuE,KAC1CA,EAAYnsC,uCAAuCosC,EAAanjI,IAChElL,KAAKyqI,4BAA4B3xH,KAAK,CAAEi8E,cAAeq5C,EAAa9B,iBAAiB,KAGnF8B,aAAuBzoC,IAAOyoC,aAAuB5nC,IACvD4nC,EAAYjoC,gCAAgC0W,EAAO3gB,uBACnDkyC,EAAYhoC,kCACHgoC,aAAuBtlC,GAChCslC,EAAYjoC,gCAAgC0W,EAAO3gB,uBAC1CkyC,aAAuBv0C,GAChCu0C,EAAY9xC,aAAa+xC,EAAanjI,KAC7BkjI,aAAuB1gC,IAEvB0gC,aAAuB/4B,GAEvB+4B,aAAuB36B,KAChC26B,EAAYjoC,gCAAgC0W,EAAO3gB,wBAMnDgyC,IAA8BG,IAC5BA,aAAwBlmC,IAC1BkmC,EAAaloC,gCAAgC0W,EAAOhF,sBAElDw2B,aAAwBznC,IAC1BynC,EAAaloC,gCAAgC0W,EAAOhF,sBAGlD+xB,GAAuCyE,KACzCA,EAAalvC,sCAAsCivC,EAAYljI,IAC/DlL,KAAKyqI,4BAA4B3xH,KAAK,CAAEi8E,cAAes5C,EAAc/B,iBAAiB,KAG5F,CAQAN,oBAAoB9gI,GAClB,MAAM2tF,EAAK74F,KAAK6xH,YAAYtyB,iBAAiBr0F,GAGvCojI,EAAkBtuI,KAAK6xH,YAAY7S,mBAAmB9zG,GAE5D,UAAWqjI,KAAkBD,EAC3BtuI,KAAK4rI,aAAa2C,EAAgB11C,GAGpC74F,KAAK2qI,4BAA4B7xH,KAAK+/E,GAElCA,EAAGvC,kBACLt2F,KAAKwuI,oCAAoC31C,GAK3C74F,KAAK6xH,YAAYlS,wBAAwBz0G,EAG3C,CAEQsjI,oCAAoC9oC,GAC1C,MAAM+oC,EAAyBzuI,KAAK6xH,YAAYnU,gCAAgChY,EAAMx6F,IACtF,UAAWwjI,KAAsBD,EAC3BC,EAAmBp4C,mBACrBx2C,QAAQkH,IACN0nF,EAAmBtrI,KACnB,uBACA,oDAEFpD,KAAKwuI,oCAAoCE,IAG3C1uI,KAAK2qI,4BAA4B7xH,KAAK41H,EAE1C,CAEAvC,4BAA4BD,GAC1B,IAAIrzC,EAAU74F,KAAK6xH,YAAYtyB,iBAAiB2sC,EAAkBhhI,IAE9D2tF,IAEFA,EAAGzwD,SAAS/T,EAAI63G,EAAkB9jG,SAAS/T,EAC3CwkE,EAAGzwD,SAAS8sD,EAAIg3C,EAAkB9jG,SAAS8sD,EAE/C,CAMA42C,wBAAwBhsH,GAClB9f,KAAK6xH,YAAYhlB,WACnB7sG,KAAK6xH,YAAYv8B,eAEjBt1F,KAAKwxH,WAAWh7D,QAAQ12C,GAAW,2CAGnC9f,KAAKwsI,oBAGLxsI,KAAKikI,wBAAwBzM,kCAAkCx3H,KAAK6xH,aACpE7xH,KAAKikI,wBAAwB9K,iBAAiBn5H,KAAK6xH,aAEvD,CAMA8c,gBAEE,YAAK/2H,QAAQ43G,QAAUmN,2BAChBn+G,KAAKC,UAAUze,KAAK4X,QAC7B,CAMA2/G,gBAAgBjgG,GACdt3B,KAAKikI,wBAAwB3M,YAAYhgG,EAC3C,CAEAs3G,oBAAoBrc,GAClB,MAAO,CACLN,MAAO,GACPtoE,OAAQ,GACRm8C,YAAaysB,EAAezsB,YAC5B0pB,QAAS+C,EAAe/C,QACxBtiG,SAAUqlG,EAAerlG,SACzB8kG,UAAWhyH,KAAKmjI,iBAAiB7D,kBAAkB/M,EAAeP,WAEtE,CAKAL,YACE,MAAMkd,EAAa7S,YAA0Bh8H,KAAK6xH,aAIlD,GAAKgd,EAAWrS,MAOhBx8H,KAAKwxH,WAAWj7D,KAAK,iBACrBv2D,KAAKwxH,WAAWj7D,KAAK,uBAAuBv2D,KAAK6xH,YAAY/O,kBAAkBsJ,yBAC/EpsH,KAAKyxH,kBAAkBt7D,KAAK,CAAE24E,gBAAgB,EAAMzd,eAAgBrxH,KAAK0vH,WAAW2B,iBACpFrxH,KAAKiuI,uBAEgC,wBAAjCjuI,KAAK6xH,YAAY/rB,YACnB9lG,KAAK+uI,4BAEL/uI,KAAKgvI,4BAdL,UAAWlvH,KAAW+uH,EAAW5S,SAC/Bj8H,KAAKwxH,WAAW34G,MAAMiH,EAe5B,CAEQivH,4BAEN,MAAMrc,EAAW1yH,KAAKivI,qBACtBjvI,KAAK0vH,WAAWkD,eAAeF,EAAU1yH,KAAK6xH,YAAY3mH,IAAIqN,UAC5D+K,IACE,MAAMhS,EAASgS,EAASivG,eACpBjvG,EAASkmC,QACXxpD,KAAKmqI,OAAO3gF,QAAQl4C,EAAOwO,QAAS,GAAI,CAAEs1C,cAAe,oBAEzDp1D,KAAKmqI,OAAO3zE,QAAQllD,EAAOwO,QAAS,GAAI,CAAEs1C,cAAe,oBAE3Dp1D,KAAKyxH,kBAAkB/oC,MAAI,EAE7B,KACE1oF,KAAKmqI,OAAOtxH,MAAM,uDAAwD,GAAI,CAC5Eu8C,cAAe,oBAEjBp1D,KAAKgqI,cAAc7zE,OACnBn2D,KAAKwxH,WAAW34G,MAAM,yDACtB7Y,KAAKyxH,kBAAkB/oC,MAAI,EAGjC,CAEQsmD,uBACNhvI,KAAK0vH,WAAWiC,UAAU3xH,KAAK4X,QAAS5X,KAAK6xH,YAAY3mH,IAAIqN,UAAU+K,IACjEA,EAASkmC,QACXxpD,KAAKkvI,iBAAiB5rH,EAAUA,EAASkvG,iBAAkBlvG,EAASm/F,kBAGpEziH,KAAKgqI,cAAc7zE,OACnBn2D,KAAKwxH,WAAW34G,MAAM,0DAIxB7Y,KAAKwsI,kBAAkB,CAAE2C,aAAcnvI,KAAK6xH,YAAYhlB,SAAUuiC,YAAapvI,KAAK6xH,YAAYzU,UAChGp9G,KAAKysI,2BAAyB,EAElC,CAEQyC,iBAAiB5rH,EAAUkvG,EAAmB/P,GACpD,MAAQjH,cAAex7G,KAAK6xH,YAC5B7xH,KAAK6xH,YAAYp1B,gBAAgB+e,GAEjC,MAAM+W,EAAiBvyH,KAAK4uI,oBAAoBtrH,EAASivG,gBAEnD8c,EAAkBrvI,KAAK4X,QAAQ23G,kBAAkBgD,EAAeP,UAAU9mH,IAChFlL,KAAK4X,QAAQu3G,MAAMkgB,GAAmB9c,EAAeP,UACrDhyH,KAAK6xH,YAAcU,EAAeP,UAC9BQ,IACFxyH,KAAK6xH,YAAYpT,cAAgB+T,GAE/B/P,GACFziH,KAAK6xH,YAAYnP,mBAAmB1iH,KAAK6xH,YAAYpT,cAAcgE,IAGjEziH,KAAK6xH,YAAYrP,qBAAqBnG,iBACxCr8G,KAAKoqI,qBAAqBlG,oBACxBlkI,KAAK6xH,YACL7xH,KAAK6xH,YAAYrP,qBAAqBruB,iBACtC,GAGFn0F,KAAKoqI,qBAAqBlG,oBAAoBlkI,KAAK6xH,aAErD7xH,KAAKikI,wBAAwB9K,iBAAiBn5H,KAAK6xH,aACnD7xH,KAAKikI,wBAAwBhL,wBAAwBj5H,KAAK6xH,aAC1D7xH,KAAKikI,wBAAwBzK,YAC7Bx5H,KAAKikI,wBAAwBzM,kCAAkCx3H,KAAK6xH,aAEhEvuG,EAASivG,eAAeP,UAAUsd,gBACpCtvI,KAAKwxH,WAAWX,sBAAsBvtG,EAASivG,eAAeP,UAAUsd,gBAW1EtvI,KAAKuvI,gCACP,CAEA9c,2BACE,MAAMC,EAAW1yH,KAAKivI,qBACtB,OAAOjvI,KAAK0vH,WAAW+C,yBAAyBC,EAClD,CAEAuc,qBACE,MAAMvc,EAAW,IAAIl1G,SAGrB,YAAK+xH,iCACEvvI,KAAKkqI,YAAYpE,aAAa9lI,KAAK4X,QAAQu3G,MAAOnvH,KAAK2uI,iBAAiBxqI,KAAKqI,IAClFkmH,EAASz4G,OAAO,UAAWzN,GACpBkmH,GAEX,CAEA8c,mBAAmBtkI,GACjB,MAAMukI,EAAiBzvI,KAAK4X,QAAQ03G,aAAapkH,GAIjDlL,KAAKuvI,iCACDE,GACFzvI,KAAK0vI,eAAeD,EAExB,CAEAE,oBAAoBvzB,GAClBp8G,KAAK6xH,YAAYnP,mBAAmBtG,EACtC,CAEAwzB,uBAAuBz7C,GACrB,OAAOn0F,KAAK6xH,YAAY5S,gBAAgB9qB,EAC1C,CAEAu7C,eAAep4G,GACbt3B,KAAK6xH,YAAcv6F,EAEU,cAAzBA,EAAE+qF,oBAAwC/qF,EAAE+qF,mBAC9CriH,KAAKikI,wBAAwB5J,gBAAgB/iG,EAAE+qF,oBAE/CriH,KAAKu3H,gBAAgBv3H,KAAK6xH,aAI5B7xH,KAAKwsI,oBACLxsI,KAAKysI,4BACLzsI,KAAKwxH,WAAWj7D,KAAK,QAAQj/B,EAAEl0B,gBACjC,CAGAmsI,iCACEvvI,KAAK6xH,YAAYtP,iBAAiBviH,KAAKikI,wBAAwB3nB,iBACjE,CAEAmwB,0BAA0B7wH,GACxB5b,KAAKsqI,2BAA2BxxH,KAAK8C,EACvC,CAEA4wH,kBAAkB/yG,EAAqD,MACjEA,EACFz5B,KAAKqqI,mBAAmBvxH,KAAK2gB,GAI/Bz5B,KAAKqqI,mBAAmBvxH,MAC1B,CAAC3Y,kDA3rBU4pI,GAAWj8G,oVAAXi8G,EAAW3kI,QAAX2kI,EAAW,mBAAXA,CAAW,KClCxB,IAAK8F,GAGJ,aAHIA,UAAe,KAClBA,cACAA,kBAFGA,GAAL,IAAKA,GAGJ,GAEK,MAAgBC,GACpBjwI,YACYokI,EACA8L,GADA/vI,+BACAA,kBACT,CA0BHi/G,gBAAgBwY,GACd,MAAMrb,EAAYp8G,KAAK+vI,YAAYH,uBAAuBnY,GAC1Dz3H,KAAK+vI,YAAYJ,oBAAoBvzB,GACrCp8G,KAAKikI,wBAAwB1J,aAE7B,MAAM7uH,EAAO1L,KAAKgwI,qBAElB,OAAItkI,IACFA,EAAKspF,YAAcyiC,EACnBz3H,KAAK+vI,YAAY7E,yBAAyBx/H,IAGrC0wG,CACT,CAEU6zB,oBAAoBvkI,EAAM2oB,EAAW6gE,GAC7C,MAAMphD,EAAM,IAAIklF,SAChBllF,EAAIzf,EAAIA,EACRyf,EAAIohD,EAAIA,EACRl1F,KAAKikI,wBAAwB9M,YAAYzrH,GACzC,MAAMwkI,EAAUlwI,KAAKikI,wBAAwBnN,YAAYc,gBAAgBlsH,GACzEwkI,SAAQ9nG,SAAW0L,EACZo8F,EAAQxkI,IACjB,CAOUykI,0BAA0Bt3C,GAClC,MAAMu3C,EAAuBpwI,KAAKqwI,uBAAuBx3C,EAAG3tF,IACtDolI,EAAsBtwI,KAAKuwI,sBAAsB13C,EAAG3tF,IAEpDrK,EAAOb,KAAKikI,wBAAwBnN,YAAYe,mBAAmB,CAAE3sH,GAAI2tF,EAAG3tF,KAAMiV,QACnFtf,EAAK6K,KAAK8kI,cACb3vI,EAAK6K,KAAK8kI,YAAc,IAGrB3vI,EAAK6K,KAAK+kI,aACb5vI,EAAK6K,KAAK+kI,WAAa,IAGzBzwI,KAAK0wI,wBAAwB73C,EAAIh4F,EAAMyvI,GACvCtwI,KAAK2wI,yBAAyB93C,EAAIh4F,EAAMuvI,GAExCE,EAAoB3qI,QAAQirI,IAC1B5wI,KAAK6wI,qBAAqBD,EAAO/vI,EAAI,GAGvCuvI,EAAqBzqI,QAAQmrI,IAC3B9wI,KAAK+wI,sBAAsBD,EAAWjwI,EAAI,GAG5Cb,KAAKikI,wBAAwBnN,YAAYka,iCACzChxI,KAAKikI,wBAAwBnN,YAAYma,0BACzCjxI,KAAKikI,wBAAwBnN,YAAYM,eAC3C,CAEUsZ,wBACRQ,EACArwI,EACAswI,GAEA,MAAMC,EAAgB,IAAIxhC,GAAU/uG,EAAK6K,KAAK+kI,YAAqBxgC,KACjEkhC,EACA,CAACE,EAAMx4C,IAAOA,EAAG3tF,KAAOmmI,EAAKC,QAG3BF,EAAc3sI,QAChBzE,KAAKuxI,mBAAmBL,EAAoBrwI,EAAMuwI,EAAevB,GAAgB2B,MAErF,CAEUb,yBACRO,EACArwI,EACAuvI,GAEA,MAAMqB,EAAiB,IAAI7hC,GAAU/uG,EAAK6K,KAAK8kI,aAAsBvgC,KACnEmgC,EACA,CAACiB,EAAMx4C,IAAOA,EAAG3tF,KAAOmmI,EAAKC,QAG3BG,EAAehtI,QACjBzE,KAAKuxI,mBAAmBL,EAAoBrwI,EAAM4wI,EAAgB5B,GAAgB6B,OAEtF,CAEUH,mBACR14C,EACAh4F,EACA8wI,EACAC,GAEAD,EAAahsI,QAAQ2xB,IACnB,MAAMulF,EAAS78G,KAAK+vI,YAAYle,YAAY51B,4BAA4BtyF,GAC/DioI,IAAoB/B,GAAgB2B,MAAQ7nI,EAAEiuG,SAAWtgF,EAAEg6G,OAAS3nI,EAAEguG,WAAargF,EAAEg6G,QAC3F,GACCz0B,GACF78G,KAAK+vI,YAAYle,YAAY1R,yBAAyBtD,EAAO3xG,IAG/D,MAAM2mI,EAAaD,IAAoB/B,GAAgB2B,MAAQ3wI,EAAK6K,KAAK+kI,WAAa5vI,EAAK6K,KAAK8kI,YAC1Fn/H,EAAQwgI,EAAW3gI,QAAQomB,GAEjCt3B,KAAKikI,wBAAwBnN,YAAYlhC,iBAAiB,cAE1D51F,KAAKikI,wBAAwBnN,YAAY5uC,MAAM4pD,gBAAgBD,EAAYxgI,GAC3ErR,KAAKikI,wBAAwBnN,YAAYhhC,kBAAkB,aAAY,GAIzE,MAAMi8C,EAAS/xI,KAAKikI,wBAAwBnN,YAAYe,mBAAmB,CAAE3sH,GAAI2tF,EAAG3tF,KAAMiV,QAC1F4xH,EAAO3pG,SAAS/T,GAAK,EACrB09G,EAAO3pG,SAAS/T,GAAK,CACvB,CAEU08G,sBAAsBl4C,EAAmBm5C,GAOjDhyI,KAAKiyI,gBAAgBD,EAAUn5C,EAFZm5C,EAAStmI,KAAK8kI,YAJb,CAClBc,OAAQz4C,EAAG3tF,GACXgnI,QAASr5C,EAAGz1F,MAKhB,CAEUytI,qBAAqBD,EAAsBoB,GAOnDhyI,KAAKiyI,gBAAgBD,EAAUpB,EADZoB,EAAStmI,KAAK+kI,WALb,CAClBa,OAAQV,EAAM1lI,GACdgnI,QAAStB,EAAMxtI,MAKnB,CAEU6uI,gBACRD,EACAn5C,EACAg5C,EACAM,GAEA,GAAIH,EAAS7W,SAAStiC,EAAG3tF,MAAQ8mI,EAC/BhyI,KAAKikI,wBAAwBnN,YAAYlhC,iBAAiB,WAE1D51F,KAAKikI,wBAAwBnN,YAAY5uC,MAAMkqD,gBAAgBP,GAAY,EAAIM,GAC/EnyI,KAAKikI,wBAAwBnN,YAAYhhC,kBAAkB,eACtD,CACL91F,KAAKikI,wBAAwBnN,YAAYlhC,iBAAiB,cAC1D,MAAQlqF,QAASsmI,EAAS7W,SAAStiC,EAAG3tF,IACtClL,KAAKikI,wBAAwBnN,YAAY5uC,MAAM2N,gBAAgBnqF,EAAM,UAAWmtF,EAAGz1F,MACnFpD,KAAKikI,wBAAwBnN,YAAYhhC,kBAAkB,aAAY,CAE3E,EC5LK,IAAMu8C,GAA4B,MAAnC,MAAOA,UAAoCvC,GAE/CjwI,YAAYokI,EAAkD8L,GAC5DjwI,MAAMmkI,EAAyB8L,EACjC,CAEAC,qBACE,OAAOhwI,KAAKsyI,kBAAiB,KAAM,IAAMrjD,6BAC3C,CAEQqjD,iBAAiBj+G,EAAW6gE,EAAW9xF,GAO7C,OAAOpD,KAAKiwI,oBANC,CACX1kD,SAAU0D,qBACVsjD,IAAK,GACLnvI,QAGoCixB,EAAG6gE,EAC3C,CAMAs9C,0BAA0B/a,GACxBz3H,KAAKyyI,wBAAwBhb,EAC/B,CAEQgb,wBAAwBC,GAC9B,MAAMxiD,EAAWlwF,KAAK+vI,YAAYle,YAAYlU,kBAAkB+0B,GAC1DC,EAAiB3yI,KAAK+vI,YAAYle,YAAYriB,qBAAsB3W,GACjEA,EAAGtN,WAAa0D,sBAA0C4J,EAAG7D,cAAgB09C,GAIlFxiD,EAASkR,cAAgBuxC,EAAeluI,OAAS,EACnDzE,KAAK4yI,sBAAsBF,IACjBxiD,EAASkR,cAA0C,IAA1BuxC,EAAeluI,QAClDzE,KAAK6yI,0BAET,CAEAtC,sBAAsB9Y,GACpB,OAAOz3H,KAAK+vI,YAAYle,YAAYriB,qBAAsBjhF,GACjDA,EAAEg9D,WAAa0D,sBAA0C1gE,EAAEymE,cAAgByiC,EAEtF,CAEA4Y,uBAAuB5Y,GACrB,OAAOz3H,KAAK+vI,YAAYle,YAAYriB,qBAAsBjhF,GACjDA,EAAEg9D,WAAa0D,sBAA0C1gE,EAAEymE,cAAgByiC,EAEtF,CAEQob,2BACN,MAAMhyI,EAAOb,KAAKikI,wBAAwBnN,YAAYe,mBAAmB,CAAEz0H,KAAM,qBAAsB+c,QACnGtf,IACFb,KAAKikI,wBAAwBnN,YAAYl2H,OAAOC,GAChDb,KAAK+vI,YAAYle,YAAYlS,wBAAwB9+G,EAAK6K,KAAKR,IAEnE,CAEQ0nI,sBAAsBF,GAC5B,MAAMhnI,EAAO1L,KAAKsyI,kBAAiB,IAAM,IAAK,oBAC9C5mI,EAAKspF,YAAc09C,EACnB1yI,KAAK+vI,YAAY7E,yBAAyBx/H,EAI5C,CAEAonI,gCACoB9yI,KAAK+vI,YAAYle,YAAYriB,qBAAsB3W,GAC5DA,EAAGtN,WAAa0D,iBAAqC4J,EAAGsK,iBAGvDx9F,QAAQkzF,IAChB74F,KAAKmwI,0BAA0Bt3C,EAAE,EAErC,CAAC14F,kDA/EUkyI,GAA2BvkH,mHAA3BukH,EAA2BjtI,QAA3BitI,EAA2B,mBAA3BA,CAA4B,KCA5BU,GAA8B,MAArC,MAAOA,UAAsCjD,GAEjDjwI,YAAYokI,EAAkD8L,GAC5DjwI,MAAMmkI,EAAyB8L,EACjC,CAEAC,qBACE,OAAOhwI,KAAKgzI,sBAAqB,KAAM,IAAM/jD,iCAC/C,CAEQ+jD,qBAAqB3+G,EAAW6gE,EAAW9xF,GAOjD,OAAOpD,KAAKiwI,oBANC,CACX1kD,SAAU0D,yBACVsjD,IAAK,GACLnvI,QAGoCixB,EAAG6gE,EAC3C,CAEAq7C,sBAAsB9Y,GACpB,OAAOz3H,KAAK+vI,YAAYle,YAAYriB,qBAAsBjhF,GACjDA,EAAEg9D,WAAa0D,0BAA8C1gE,EAAEymE,cAAgByiC,EAE1F,CAEA4Y,uBAAuB5Y,GACrB,OAAOz3H,KAAK+vI,YAAYle,YAAYriB,qBAAsBjhF,GACjDA,EAAEg9D,WAAa0D,2BAA+C1gE,EAAEymE,cAAgByiC,EAE3F,CAEA+a,4BACE,CAGFM,gCAC2B9yI,KAAK+vI,YAAYle,YAAYriB,qBAAsB3W,GACnEA,EAAGtN,WAAa0D,mBAAuC4J,EAAGsK,iBAGlDx9F,QAAQkzF,IACvB74F,KAAKmwI,0BAA0Bt3C,EAAE,EAErC,CAAC14F,kDA5CU4yI,GAA6BjlH,mHAA7BilH,EAA6B3tI,QAA7B2tI,EAA6B,mBAA7BA,CAA8B,KCF9BE,GAA0B,MAAjC,MAAOA,UAAkCnD,GAE7CjwI,YAAYokI,EAAkD8L,GAC5DjwI,MAAMmkI,EAAyB8L,EACjC,CAEAC,qBAEA,CAEAO,wBACE,MAAO,EACT,CAEAF,yBACE,MAAO,EACT,CAEAmC,4BAAmC,CAEnCM,gCAAuC,CAAC3yI,kDApB7B8yI,GAAyBnlH,mHAAzBmlH,EAAyB7tI,QAAzB6tI,EAAyB,mBAAzBA,CAA0B,KCA1BC,GAA2B,MAAlC,MAAOA,UAAmCpD,GAE9CjwI,YAAYokI,EAAkD8L,GAC5DjwI,MAAMmkI,EAAyB8L,EACjC,CAEAC,qBAEA,CAEAO,sBAAsB9Y,GACpB,MAAO,EACT,CAEA4Y,uBAAuB5Y,GACrB,MAAO,EACT,CAEAqb,gCAAuC,CAEvCN,0BAA0B/a,GAAqB,CAACt3H,kDApBrC+yI,GAA0BplH,mHAA1BolH,EAA0B9tI,QAA1B8tI,EAA0B,mBAA1BA,CAA2B,KCO3BC,GAAmB,MAA1B,MAAOA,EAOXtzI,YACUkwI,EACA9L,EACAmP,EACAC,EACAC,EACAC,EACAC,GANAxzI,mBACAA,+BACAA,mCACAA,iCACAA,+BACAA,qCACAA,qBAbFA,0BAAuE,GAIvEA,2BAAuD,GAW7DA,KAAKyzI,wBACLzzI,KAAK0zI,qBAAqBzkD,iBAAqCjvF,KAAKozI,4BACpEpzI,KAAK0zI,qBAAqBzkD,kCAAsDjvF,KAAKqzI,0BACrFrzI,KAAK0zI,qBAAqBzkD,oCAAwDjvF,KAAKszI,wBACvFtzI,KAAK0zI,qBAAqBzkD,mBAAuCjvF,KAAKuzI,8BAEtEvzI,KAAK+vI,YAAY4D,2BAA2Bp7H,UAAWqD,IACrD5b,KAAK4zI,sBAAsBh4H,EAAO,EAEtC,CAEA8G,KAAK+0G,GACEz3H,KAAK6zI,6BAA6BpvI,QACrCzE,KAAK8zI,uBAIP9zI,KAAK+vI,YAAY9B,uBAGjB,MAAM7xB,EAAYp8G,KAAK+zI,gBAAgBtc,GAEvCz3H,KAAK6zI,6BAA6BjrI,KAAKwzG,GACvCp8G,KAAKg0I,oBAAoBvc,EAC3B,CAEQuc,oBAAoBvc,GAC1Bz3H,KAAKi0I,6BAA6Bxc,GAClCz3H,KAAKk0I,0BAA0B1B,0BAA0B/a,GAGzDz3H,KAAKikI,wBAAwBzM,kCAAkCx3H,KAAK+vI,YAAYle,aAChF7xH,KAAKikI,wBAAwB9K,iBAAiBn5H,KAAK+vI,YAAYle,aAE/D7xH,KAAKwzI,cAActP,oBAAoBlkI,KAAK+vI,YAAYle,YAAa4F,GAAM,GAEvEz3H,KAAKm0I,kCAEPn0I,KAAKo0I,qBACIp0I,KAAKq0I,iCACdr0I,KAAKs0I,sBAET,CAEQP,gBAAgBtc,GACtB,IAAIrb,EAAYp8G,KAAK+vI,YAAYle,YAAY1S,+BAA+BsY,GAE5E,MAAM8c,EAAwBv0I,KAAK+vI,YAAYle,YAAYtyB,iBAAiBk4B,GAAMlsC,SAC5EipD,EAAyBx0I,KAAK0zI,qBAAqBa,GAEzD,OAAIn4B,EACFp8G,KAAK2vI,oBAAoBvzB,GAEzBA,EAAYo4B,EAAuBv1B,gBAAgBwY,GAG9Crb,CACT,CAEAppD,QAUE,GARAhzD,KAAK6zI,6BAA6B7iI,OAG9BhR,KAAKm0I,mCAAqCn0I,KAAKq0I,kCACjDr0I,KAAKyzI,wBAIHzzI,KAAK6zI,6BAA6BpvI,OAAQ,CAC5C,MAAM23G,EAAYp8G,KAAK6zI,6BAA6B7zI,KAAK6zI,6BAA6BpvI,OAAS,GAK/F,OAHAzE,KAAK2vI,oBAAoBvzB,GACzBp8G,KAAKk0I,0BAA0BpB,qCAC/B9yI,KAAKg0I,oBAAoB53B,EAAUjoB,gBACnC,CAGFn0F,KAAKy0I,sBACLz0I,KAAKk0I,+BAA4BjmI,CACnC,CAEAwmI,sBACEz0I,KAAK00I,0BACL10I,KAAKwzI,cAActP,oBAAoBlkI,KAAK+vI,YAAYle,YAAa,MAAM,GAE3E7xH,KAAK20I,wBAAwB30I,KAAK+vI,YAAYle,YAAYlP,sBAC1D3iH,KAAKk0I,0BAA0BpB,gCAG/B9yI,KAAKyzI,wBAELzzI,KAAK40I,mCACP,CAEQhB,sBAAsBh4H,GACxBA,GAAS8wH,sBACX1sI,KAAK60I,6BAGH70I,KAAK6zI,6BAA6BpvI,QAEpCzE,KAAKi0I,6BADuBj0I,KAAK6zI,6BAA6B7zI,KAAK6zI,6BAA6BpvI,OAAS,GACnD0vF,iBACtDn0F,KAAK8zI,yBAEL9zI,KAAKk0I,+BAA4BjmI,EACjCjO,KAAK00I,2BAGH10I,KAAKm0I,kCACPn0I,KAAKo0I,qBACIp0I,KAAKq0I,gCACdr0I,KAAKs0I,uBAELt0I,KAAKyzI,uBAET,CAEQK,uBACNvnF,EAAE,8BAA8Bm9B,IAAI,aAAc,UACpD,CAEQgrD,0BACNnoF,EAAE,8BAA8Bm9B,IAAI,aAAc,OACpD,CAEQirD,wBAAwB3/C,GAC9B,MAAMonB,EAAYp8G,KAAK+vI,YAAYle,YAAY3S,aAAalqB,GACxDonB,GACFp8G,KAAK2vI,oBAAoBvzB,EAE7B,CAEQuzB,oBAAoBvzB,GAC1Bp8G,KAAK+vI,YAAY9B,uBACjBjuI,KAAKikI,wBAAwB5J,gBAAgBje,EAAUE,kBACvDt8G,KAAK+vI,YAAYJ,oBAAoBvzB,GACrCp8G,KAAKikI,wBAAwB9K,iBAAiBn5H,KAAK+vI,YAAYle,aAC/D7xH,KAAKikI,wBAAwBhM,gCAC/B,CAEA6c,oCAEE,UAAWhkI,KAAO9Q,KAAK0zI,qBACrB1zI,KAAK0zI,qBAAqB5iI,GAAKgiI,+BAEnC,CAEAmB,6BAA6Bc,GAC3B,MAAMR,EAAwBv0I,KAAK+vI,YAAYle,YAAYtyB,iBAAiBw1C,GAAqBxpD,SACjGvrF,KAAKk0I,0BAA4Bl0I,KAAK0zI,qBAAqBa,EAC7D,CAEYzd,kBACV,OAAO92H,KAAKikI,wBAAwBnN,WACtC,CAEAke,4BACE,OAAOh1I,KAAK6zI,6BAA6BtsI,IACvC65C,GAAKphD,KAAK+vI,YAAYle,YAAYlU,kBAAkBv8D,EAAE+yC,iBAAiB/wF,KAE3E,CAEQwxI,oCAEN50I,KAAK6zI,6BAA6BpvI,OAAS,CAC7C,CAKYovI,mCACV,MAAMoB,EAAgBj1I,KAAK+vI,YAAYle,YAAY3mH,GACnD,OAAKlL,KAAKk1I,sBAAsBD,KAC9Bj1I,KAAKk1I,sBAAsBD,GAAiB,IAGvCj1I,KAAKk1I,sBAAsBD,EACpC,CAEIE,kCACF,GAAKn1I,KAAK6zI,8BAA8BpvI,OAKxC,OAAOzE,KAAK+vI,YAAYle,YAAYtyB,iBADRv/F,KAAK6zI,6BAA6B7zI,KAAK6zI,6BAA6BpvI,OAAS,GAChC0vF,iBAAiB5I,QAC5F,CAEI6pD,4BACF,GAAKp1I,KAAK6zI,8BAA8BpvI,OAIxC,OAAOzE,KAAK6zI,6BAA6B7zI,KAAK6zI,6BAA6BpvI,OAAS,GAAG0vF,eACzF,CAEAigD,qBACEp0I,KAAKikI,wBAAwBhO,kBAAkBxZ,yBACjD,CAEAg3B,wBACEzzI,KAAKikI,wBAAwBhO,kBAAkBxZ,mBACjD,CAEA63B,uBACEt0I,KAAKikI,wBAAwBhO,kBAAkBxZ,4BACjD,CAEI03B,wCACF,OAAOn0I,KAAKk0I,4BAA8Bl0I,KAAKqzI,yBACjD,CAEIgB,sCACF,OAAOr0I,KAAKk0I,4BAA8Bl0I,KAAKszI,uBACjD,CAEAuB,6BACE70I,KAAKk1I,sBAAwB,EAC/B,CAAC/0I,kDA3OUgzI,GAAmBrlH,gPAAnBqlH,EAAmB/tI,QAAnB+tI,EAAmB,qBADN,gBACbA,CAAmB,KCV1B,SAAUkC,GAA+BnpI,GAC7C,MAAM7E,EAAOsE,OAAOtE,KAAK6E,GACzB,OAAO7E,EAAKgwG,SAAS,UAAYhwG,EAAKgwG,SAAS,OACjD,CCHM,MAAOi+B,GACXz1I,YAAoB01I,mBAA8B,CAElDpI,sBAAsBqI,EAAwBC,GAE5C,MAAMC,EAAmB/pI,OAAOtE,KAAKouI,GAErC,UAAW18G,KAAK28G,EACd,IAAK11I,KAAK21I,gCAAgC58G,GAAI,CAC5C,MAAM68G,EAAgBJ,EAAkBz8G,GAClC2yD,EAAe+pD,EAAiB18G,GAEtC,GrNoBC+zD,GADuB5gF,EqNnBJ0pI,IrNoBIhpD,GAAkB1gF,IAAU6gF,GAAa7gF,IAbnE,SAAU2pI,GAAc3pI,GAC5B,MAAwB,kBAAVA,CAChB,CAWmF2pI,CAAc3pI,IqNnBvF,GAAIw/E,IAAiBkqD,EACnB,OAAO,UAEAP,GAA+BO,IAAkBP,GAA+B3pD,IACzF,GAAIkqD,EAAc1pI,QAAUw/E,EAAax/E,MACvC,OAAO,OAGT4zC,QAAQQ,KAAK,wCAAwCvnB,SAAS2yD,SAAoBkqD,IAAe,CrNUrG,IAA0B1pI,EqNL5B,OAAOy8B,CACT,CAGAgtG,gCAAgC58G,GAC9B,OAAO,CACT,ECjCI,MAAO+8G,WAA0CR,GAC5CnI,sBAAsBqI,EAAwB9pD,GACrD,IAAI/iD,EAAU7oC,MAAMqtI,sBAAsBqI,EAAmB9pD,GAI7D,OAF4BA,EAGN2mB,8BAA8B5tG,QAJvB+wI,EAKNnjC,8BAA8B5tG,SAEnDkkC,EAAUA,IAAW,GAGhBA,CACT,ECdI,MAAOotG,WAA4CT,GAC9CnI,sBAAsBqI,EAAwB9pD,GACrD,IAAI/iD,EAAU7oC,MAAMqtI,sBAAsBqI,EAAmB9pD,GAI7D,OAF4BA,EAGN2mB,8BAA8B5tG,QAJvB+wI,EAKNnjC,8BAA8B5tG,SAEnDkkC,EAAUA,IAAW,GAGhBA,CACT,ECZI,MAAOqtG,WAAsCV,GACxCnI,sBACPqI,EACA9pD,GAEA,IAAI/iD,EAAU7oC,MAAMqtI,sBAAsBqI,EAAmB9pD,GAE7D,GAAI8pD,EAAkB9zC,2BAA2Bj9F,SAAWinF,EAAagW,2BAA2Bj9F,OAClG,OAAO,EAGT,QAASD,EAAI,EAAGA,EAAIknF,EAAagW,2BAA2Bj9F,OAAQD,IAIlEmkC,EAAUA,GAHmB+iD,EAAagW,2BAA2Bl9F,GAG3B0H,QAFZspI,EAAkB9zC,2BAA2Bl9F,GAED0H,MAG5E,OAAOy8B,CACT,CAESgtG,gCAAgC58G,GACvC,OAAOj5B,MAAM61I,gCAAgC58G,IAAmC,+BAA5BA,CACtD,ECvBI,MAAOk9G,WAAwCX,GAC1CnI,sBACPqI,EACA9pD,GAEA,IAAI/iD,EAAU7oC,MAAMqtI,sBAAsBqI,EAAmB9pD,GAE7D,GAAI8pD,EAAkB9zC,2BAA2Bj9F,SAAWinF,EAAagW,2BAA2Bj9F,OAClG,OAAO,EAGT,QAASD,EAAI,EAAGA,EAAIknF,EAAagW,2BAA2Bj9F,OAAQD,IAIlEmkC,EAAUA,GAHmB+iD,EAAagW,2BAA2Bl9F,GAG3B0H,QAFZspI,EAAkB9zC,2BAA2Bl9F,GAED0H,MAG5E,OAAOy8B,CACT,CAESgtG,gCAAgC58G,GACvC,OAAOj5B,MAAM61I,gCAAgC58G,IAAqC,+BAA9BA,CACtD,EC1BI,MAAOm9G,WAA0CZ,GAC5CnI,sBAAsBqI,EAAwB9pD,GACrD,IAAI/iD,EAAU7oC,MAAMqtI,sBAAsBqI,EAAmB9pD,GAC7D,QAASlnF,EAAI,EAAGA,EAAIknF,EAAagW,2BAA2Bj9F,OAAQD,IAAK,CACvE,QAAwDyJ,IAApDunI,EAAkB9zC,2BAA2Bl9F,GAC/C,OAAOmkC,EAEL+iD,EAAagW,2BAA2Bl9F,GAAG0H,QAAUspI,EAAkB9zC,2BAA2Bl9F,GAAG0H,QACvGy8B,EAAUA,IAAW,GAGzB,OAAOA,CACT,ECXI,MAAOwtG,WAA4Cb,GAC9CnI,sBAAsBqI,EAAwB9pD,GACrD,IAAI/iD,EAAU7oC,MAAMqtI,sBAAsBqI,EAAmB9pD,GAK7D,OAH2B8pD,EAGJjhC,cAAc9vG,SAFXinF,EAEwC6oB,cAAc9vG,SAC9EkkC,EAAUA,IAAW,GAGhBA,CACT,ECZI,MAAOytG,WAA8Cd,GAChDnI,sBAAsBqI,EAAwB9pD,GACrD,IAAI/iD,EAAU7oC,MAAMqtI,sBAAsBqI,EAAmB9pD,GAK7D,OAH2B8pD,EAINnjC,8BAA8B5tG,QAHzBinF,EAGqD2mB,8BAA8B5tG,SAE3GkkC,EAAUA,IAAW,GAGhBA,CACT,ECZI,MAAO0tG,WAAmCf,GAC9Cz1I,YAAY01I,GACVz1I,MAAMy1I,EACR,CAESpI,sBACPqI,EACA9pD,GAEA,IAAI/iD,EAAU7oC,MAAMqtI,sBAAsBqI,EAAmB9pD,GAE7D,GAAI8pD,EAAkB9zC,2BAA2Bj9F,SAAWinF,EAAagW,2BAA2Bj9F,OAClG,OAAO,EAGT,QAASD,EAAI,EAAGA,EAAIknF,EAAagW,2BAA2Bj9F,OAAQD,IAAK,CACvE,MAAM8xI,EAAmC5qD,EAAagW,2BAA2Bl9F,GAC3E+xI,EAAoCf,EAAkB9zC,2BAA2Bl9F,GAEvF,QAA0CyJ,IAAtCsoI,EAEF,OAAO5tG,GAGP2tG,EAAiCpqI,QAAUqqI,EAAkCrqI,OAC7EoqI,EAAiC34C,eAAiB44C,EAAkC54C,cACpF24C,EAAiC14C,eAAiB24C,EAAkC34C,gBAEpFj1D,EAAUA,IAAW,GAIzB,OAAOA,CACT,CAESgtG,gCAAgC58G,GACvC,OAAOj5B,MAAM61I,gCAAgC58G,IAAgC,+BAAzBA,CACtD,ECvCI,MAAOy9G,WAA0ClB,GAC5CnI,sBAAsBqI,EAAwB9pD,GACrD,IAAI/iD,EAAU7oC,MAAMqtI,sBAAsBqI,EAAmB9pD,GAK7D,OAH0B8pD,EAINz6C,oBAHKrP,EAGkCqP,mBAJjCy6C,EAKN58C,mBAJKlN,EAIiCkN,kBALhC48C,EAMNj8C,iBALK7N,EAK+B6N,kBAEtD5wD,EAAUA,IAAW,GAGhBA,CACT,ECdI,MAAO8tG,WAAsCnB,GACxCnI,sBACPqI,EACA9pD,GAEA,IAAI/iD,EAAU7oC,MAAMqtI,sBAAsBqI,EAAmB9pD,GAE7D,GAAI8pD,EAAkB9zC,2BAA2Bj9F,SAAWinF,EAAagW,2BAA2Bj9F,OAClG,OAAO,EAGT,QAASD,EAAI,EAAGA,EAAIknF,EAAagW,2BAA2Bj9F,OAAQD,IAIlEmkC,EAAUA,GAHmB+iD,EAAagW,2BAA2Bl9F,GAG3B0H,QAFZspI,EAAkB9zC,2BAA2Bl9F,GAED0H,MAG5E,OAAOy8B,CACT,CAESgtG,gCAAgC58G,GACvC,OAAOj5B,MAAM61I,gCAAgC58G,IAAmC,+BAA5BA,CACtD,ECxBI,MAAO29G,WAAgCpB,GAClCnI,sBACPqI,EACA9pD,GAEA,IAAI/iD,EAAU7oC,MAAMqtI,sBAAsBqI,EAAmB9pD,GAE7D,GAAI8pD,EAAkB12C,qBAAqBr6F,SAAWinF,EAAaoT,qBAAqBr6F,OACtF,OAAO,EAGT,QAASD,EAAI,EAAGA,EAAIgxI,EAAkB12C,qBAAqBr6F,OAAQD,IAAK,CACtE,MAAMmyI,EAA6BjrD,EAAaoT,qBAAqBt6F,GAC/DoyI,EAA8BpB,EAAkB12C,qBAAqBt6F,GAC3EmkC,EACEA,GACAguG,EAA2BzqI,QAAU0qI,EAA4B1qI,OACjEyqI,EAA2Bh5C,eAAiBi5C,EAA4Bj5C,cACxEg5C,EAA2B/4C,eAAiBg5C,EAA4Bh5C,aAG5E,OAAOj1D,CACT,CAESgtG,gCAAgC58G,GACvC,OAAOj5B,MAAM61I,gCAAgC58G,IAA6B,yBAAtBA,CACtD,ECzBI,MAAO89G,WAA4CvB,GAC9CnI,sBACPqI,EACAC,GAEA,IAAI9sG,EAAU7oC,MAAMqtI,sBAAsBqI,EAAmBC,GAE7D,OAAID,EAAkB73G,QAAQl5B,SAAWgxI,EAAiB93G,QAAQl5B,SAIlE+wI,EAAkB73G,QAAQh4B,QAAQ,CAACmxI,EAA4DtyI,KAC7F,MAAMuyI,EAAgBtB,EAAiB93G,QAAQn5B,GAE/CmkC,EAAUA,GAAWmuG,EAAe1iD,kBAAoB2iD,EAAc3iD,gBACtEzrD,EAAUA,GAAWmuG,EAAeziD,MAAMnoF,QAAU6qI,EAAc1iD,MAAMnoF,MACxEy8B,EAAUA,GAAWmuG,EAAexiD,MAAMpoF,QAAU6qI,EAAcziD,MAAMpoF,QAGnEy8B,EACT,CAESgtG,gCAAgC58G,GACvC,OAAOj5B,MAAM61I,gCAAgC58G,IAAyC,YAAlCA,CACtD,ECbI,MAAOi+G,GAIXn3I,YAAoB01I,oBAClBv1I,KAAKi3I,UAAY,GAEjBj3I,KAAKk3I,sBAAwB,IAAI5B,GAAoCt1I,KAAKu1I,WAE1Ev1I,KAAKi3I,UAAUhoD,0BAA8C,IAAI4nD,GAC/D72I,KAAKu1I,WAEPv1I,KAAKi3I,UAAUhoD,iBAAqCjvF,KAAKk3I,sBACzDl3I,KAAKi3I,UAAUhoD,oBAAwC,IAAIwnD,GAA8Bz2I,KAAKu1I,WAC9Fv1I,KAAKi3I,UAAUhoD,cAAkC,IAAIynD,GAAwB12I,KAAKu1I,WAClFv1I,KAAKi3I,UAAUhoD,iBAAqC,IAAIonD,GAA2Br2I,KAAKu1I,WACxFv1I,KAAKi3I,UAAUhoD,qBAAyCjvF,KAAKk3I,sBAC7Dl3I,KAAKi3I,UAAUhoD,wBAA4C,IAAIunD,GAAkCx2I,KAAKu1I,WACtGv1I,KAAKi3I,UAAUhoD,aAAiCjvF,KAAKk3I,sBACrDl3I,KAAKi3I,UAAUhoD,oBAAwCjvF,KAAKk3I,sBAC5Dl3I,KAAKi3I,UAAUhoD,qBAAyCjvF,KAAKk3I,sBAC7Dl3I,KAAKi3I,UAAUhoD,0BAA8CjvF,KAAKk3I,sBAClEl3I,KAAKi3I,UAAUhoD,oBAAwCjvF,KAAKk3I,sBAC5Dl3I,KAAKi3I,UAAUhoD,oBAAwCjvF,KAAKk3I,sBAE5Dl3I,KAAKi3I,UAAUhoD,oBAAwCjvF,KAAKk3I,sBAC5Dl3I,KAAKi3I,UAAUhoD,qBAAyCjvF,KAAKk3I,sBAC7Dl3I,KAAKi3I,UAAUhoD,sBAA0CjvF,KAAKk3I,sBAC9Dl3I,KAAKi3I,UAAUhoD,8BAAkDjvF,KAAKk3I,sBAEtEl3I,KAAKi3I,UAAUhoD,oBAAwC,IAAI+mD,GAA8Bh2I,KAAKu1I,WAC9Fv1I,KAAKi3I,UAAUhoD,sBAA0C,IAAIgnD,GAAgCj2I,KAAKu1I,WAClGv1I,KAAKi3I,UAAUhoD,wBAA4C,IAAI6mD,GAAkC91I,KAAKu1I,WACtGv1I,KAAKi3I,UAAUhoD,0BAA8C,IAAI8mD,GAC/D/1I,KAAKu1I,WAGPv1I,KAAKi3I,UAAUhoD,wBAA4C,IAAIinD,GAAkCl2I,KAAKu1I,WACtGv1I,KAAKi3I,UAAUhoD,0BAA8C,IAAIknD,GAC/Dn2I,KAAKu1I,WAEPv1I,KAAKi3I,UAAUhoD,4BAAgD,IAAImnD,GACjEp2I,KAAKu1I,UAET,CAEApI,sBAAsBqI,EAAwB9pD,EAAmB6oD,GAC/D,IAAI5rG,GAAU,EACdA,SAAU3oC,KAAKi3I,UAAU1C,GAAuBpH,sBAAsBqI,EAAmB9pD,GAClF/iD,CACT,EC/DI,MAAOwuG,GAEXt3I,YAAoB01I,mBAA8B,CAGlD/H,gCAAgCpqI,GAC9BpD,KAAKu1I,UAAU6B,SAASh0I,KAAQyK,SAASzK,EAC3C,CAEAi0I,eACE,OAAOr3I,KAAKu1I,SACd,CAEA7H,cACE,OAAO1tI,KAAKu1I,UAAU7H,aACxB,CAOA4J,qBACEt3I,KAAKw1I,kBAAoBx1I,KAAKu1I,UAAU7H,aAC1C,CAMAP,sBAAsBoH,GACpB,MAAM1yB,EAAe7hH,KAAKw1I,kBAAkBpyI,KACtCsoF,EAAe1rF,KAAKu1I,UAAU7H,cAEpC,IAAI/kG,GAAU,EAGd,cAAO+iD,EAAatoF,YACbpD,KAAKw1I,kBAAkBpyI,KAG9BulC,EADuB,IAAIquG,GAA6Bh3I,KAAKu1I,WACpCpI,sBAAsBntI,KAAKw1I,kBAAmB9pD,EAAc6oD,GAErFv0I,KAAKw1I,kBAAkBpyI,KAAOy+G,EAEvBl5E,CACT,CAKAilG,sBACE,OAAO5tI,KAAKu1I,UAAUrpI,MAAM9I,OAASpD,KAAKw1I,kBAAkBpyI,IAC9D,CAMAuE,QACegE,OAAOtE,KAAKrH,KAAKu1I,UAAU6B,UACnCzxI,QAAQozB,IACX/4B,KAAKu1I,UAAUgC,cAAcx+G,EAAC,GAGhC/4B,KAAKw1I,uBAAoBvnI,CAC3B,CAKAupI,cACE,QAAS7rI,OAAOtE,KAAKrH,KAAKu1I,UAAU6B,UAAU3yI,MAChD,EC/DK,IAAMgzI,GAAgB,MAAvB,MAAOA,EAqCX53I,YACUkwI,EACA9L,EACAuP,EACAkE,EACAvN,GAJAnqI,mBACAA,+BACAA,qBACAA,2BACAA,cAzCFA,6BAA0B,IAAIooB,MACtCpoB,6BAA0BA,KAAK23I,wBAAwB1uF,eAE/CjpD,+BAA4B,IAAIooB,MACxCpoB,+BAA4BA,KAAK43I,0BAA0B3uF,eAEnDjpD,qCAAkC,IAAIooB,MAC9CpoB,qCAAkCA,KAAK63I,gCAAgC5uF,eAE/DjpD,0CAAuC,IAAIooB,MACnDpoB,0CAAuCA,KAAK83I,qCAAqC7uF,eAEzEjpD,4CAAyC,IAAIooB,MACrDpoB,4CAAyCA,KAAK+3I,uCAAuC9uF,eAE7EjpD,gCAA6B,IAAIooB,MACzCpoB,gCAA6BA,KAAKg4I,2BAA2B/uF,eAErDjpD,2BAAwB,IAAIooB,MACpCpoB,2BAAwBA,KAAKi4I,sBAAsBhvF,eAG3CjpD,wCAAqC,IAAIooB,MACjDpoB,wCAAqCA,KAAKk4I,mCAAmCjvF,eAErEjpD,+BAA4B,IAAIooB,MACxCpoB,+BAA4BA,KAAKm4I,0BAA0BlvF,eAEnDjpD,+BAA4B,IAAIooB,MACxCpoB,+BAA4BA,KAAKo4I,0BAA0BnvF,eAczDjpD,KAAKikI,wBAAwBoU,yBAAyB9/H,UAAW89G,IAC/Dr2H,KAAKs4I,mBAAmBjiB,EAAM,GAGhCr2H,KAAKikI,wBAAwBsU,0BAA0BhgI,UAAW89G,IAChEr2H,KAAKs4I,mBAAmBjiB,EAAM,GAGhCr2H,KAAKikI,wBAAwBuU,yBAAyBjgI,UAAUi+G,IACzDx2H,KAAK+vI,YAAYle,YAAYlyB,oBAChC3/F,KAAKy4I,yBAAyBjiB,GAE5Bx2H,KAAK+vI,YAAYle,YAAYlyB,oBAC/B3/F,KAAKmqI,OAAO3zE,QAAQ,oEAAqE,GAAI,CAC3FpB,cAAe,mBAChB,GAILp1D,KAAKikI,wBAAwByU,8BAA8BngI,UAAUi+G,IACnEx2H,KAAK24I,8BAA8BniB,EAAM,GAG3Cx2H,KAAKikI,wBAAwB2U,gCAAgCrgI,UAAUi+G,IACrEx2H,KAAK64I,gCAAgCriB,EAAM,GAG7Cx2H,KAAK84I,+BAAiC,IAAI3B,GAA2B,IAAI4B,oBAAiB,IAC5F,CAEAC,mBACEh5I,KAAK23I,wBAAwB7+H,MAC/B,CAEAw/H,mBAAmB7gB,GACjBz3H,KAAK43I,0BAA0B9+H,KAAK9Y,KAAK+vI,YAAYnD,sBAAsBnV,GAC7E,CAEAghB,yBAAyBzY,GACvBhgI,KAAK63I,gCAAgC/+H,KAAKknH,EAC5C,CAEA2Y,8BAA8B3Y,GAC5BhgI,KAAK83I,qCAAqCh/H,KAAKknH,EACjD,CAEA6Y,gCAAgC7Y,GAC9BhgI,KAAK+3I,uCAAuCj/H,KAAKknH,EACnD,CAEAiZ,sBACEj5I,KAAKg4I,2BAA2Bl/H,MAClC,CAEAogI,wBACEl5I,KAAKi4I,sBAAsBn/H,MAC7B,CAEAqgI,8BACEn5I,KAAKk4I,mCAAmCp/H,MAC1C,CAGAs/G,6BAA6Bv/B,GAC3B74F,KAAKikI,wBAAwB7L,6BAA6Bv/B,EAC5D,CAEAo/B,iCACEj4H,KAAKikI,wBAAwBhM,gCAC/B,CAEAmhB,2BAA2B3hB,GAEzBz3H,KAAK03I,oBAAoBh1H,KAAK+0G,GAC9B,MAAM8c,EAAwBv0I,KAAK+vI,YAAYle,YAAYtyB,iBAAiBk4B,GAAMlsC,SAClFvrF,KAAKm4I,0BAA0Br/H,KAAKy7H,GACpC1rD,IACF,CAEAisD,oCACE90I,KAAK03I,oBAAoB5C,mCAC3B,CAEAuE,oBACEr5I,KAAK03I,oBAAoB1kF,QACzBhzD,KAAKo4I,0BAA0Bt/H,OAC/B9Y,KAAKi5I,qBACP,CAEAxE,sBACEz0I,KAAK03I,oBAAoBjD,sBACzBz0I,KAAKo4I,0BAA0Bt/H,MACjC,CAAC3Y,kDAxIUs3I,GAAgB3pH,8LAAhB2pH,EAAgBryI,QAAhBqyI,EAAgB,mBAAhBA,CAAgB,KCPhB6B,GAAmC,MAA1C,MAAOA,EAHbz5I,cAIUG,uBAAoB,IAAIooB,MAChCpoB,uBAAoBA,KAAKu5I,kBAAkBtwF,eAE3CuwF,iBAAiB3gI,GACf7Y,KAAKu5I,kBAAkBzgI,KAAKD,EAC9B,CAAC1Y,kDANUm5I,EAAmC,iEAAnCA,EAAmCl0I,QAAnCk0I,EAAmC,qBAFlC,gBAEDA,CAAmC,KCUnCG,GAA6B,MAApC,MAAOA,EACX55I,YACUwsB,EACAqtH,EACAloB,GAFAxxH,YACAA,uBACAA,kBAGFA,aAAU,IAAI2qD,EAFnB,CAIKxqD,oBACN,MAAM+Y,EAAU,IAAID,GACpBC,SAAQe,OAAO,SAAU,oBAClBf,CACT,CAEOygI,yBAAyBC,EAA+BhiI,GAC7D,MAAQkyE,aAAc8vD,EAKhB7nB,EAA+B,CACnCjsB,YAAa,iBACbksB,UAAWloC,EACX0lC,QAAS53G,EAAQ43G,QACjBtiG,SAAU,GACVy8B,OAAQ,GACRsoE,MAAO,IAEHlC,EAAkBF,kCAAuD+pB,GAK/E9vD,EAAU02B,iBAAiBqI,oBAAoB,GAAGvzB,eAGlD,MAAM48B,EAAe,IAAI9pG,MACnB+pG,EAAkBD,EAAajpE,eAErC,YAAK8D,QAAQzkD,IACXtI,KAAKqsB,KACFzL,KrS/CS,mDqS+CwBmxG,EAAY,CAAE74G,QAASugI,EAA8BhsH,eACtFlV,UACC+K,IAEEusG,0BAA+CE,GAE/CmC,EAAap5G,KAAKwK,EAAQ,EAE5BzK,IACE7Y,KAAK05I,gBAAgBF,iBAAiB3gI,EAAK,IAM5Cs5G,CACT,CAEA0nB,+BACEhhI,EACA+gI,EACA7pB,EACAD,GAEAD,iCAA+CE,GAC/CF,qBAA0CC,GAC1C9vH,KAAKwxH,WAAW34G,MAAM,6CAA6C+gI,EAASx2I,QACrEpD,KAAK85I,YAAYjhI,EAC1B,CAEAihI,YAAYjhI,GACV,IAAIkhI,EACJ,GAAIlhI,aAAiBgH,GAAmB,CACtC,MAAMjH,GAAOC,EAAMA,MAAQ2F,KAAKC,UAAU5F,EAAMA,OAAS,KAAO2F,KAAKC,UAAU5F,GAC/EkhI,EAAS,GAAGlhI,EAAM2G,YAAY3G,EAAM4G,YAAc,MAAM7G,SAExDmhI,EAASlhI,EAAMiH,QAAUjH,EAAMiH,QAAUjH,EAAMvC,WAEjDwpC,eAAQjnC,MAAMkhI,GACPC,GAAqBD,EAC9B,CAEAE,sBACEj6I,KAAK+sD,QAAQ5kC,aACf,CAAChoB,kDAtFUs5I,GAA6B3rH,4IAA7B2rH,EAA6Br0I,QAA7Bq0I,EAA6B,qBAF5B,gBAEDA,CAA6B,KCL7BS,GAA0B,MAAjC,MAAOA,EAGXr6I,YACUs6I,EACA3oB,EACA4oB,GAFAp6I,mBACAA,kBACAA,sBALFA,aAAU,IAAI2qD,EAMnB,CAEHgvF,yBAAyBC,GACvB55I,KAAKwxH,WAAWj7D,KAAK,WAAWqjF,EAASx2I,QACzC,MAAMg+C,EAAIphD,KAAKo6I,eAAeT,yBAAyBC,EAAU55I,KAAKm6I,YAAYviI,SAElF,YAAKm1C,QAAQzkD,IACX84C,EAAE7oC,UACC8hI,IACC,MAAQxoB,eAAgB7xH,KAAKm6I,YAGvBG,EACJD,EAAcroB,UAAU5S,oBAFxBi7B,EAAcroB,UAAU5S,oBAAoBi7B,EAAcroB,UAAUxR,kBAEJqI,oBAAoB,IACzCgJ,EAAYpgB,mBAAmB6oC,EAAmBpvI,IAC/Ew7G,iBAAiB4zB,GAEjCt6I,KAAKwxH,WAAWj7D,KAAK,GAAGqjF,EAASx2I,eAGjCyuH,EAAYrR,iBAAiBmJ,+BAA6B,EAE5D,OACA,SAIGvoE,CACT,CAEA64F,sBACEj6I,KAAKo6I,eAAeH,sBACpBj6I,KAAK+sD,QAAQ5kC,aACf,CAAChoB,kDAxCU+5I,GAA0BpsH,4IAA1BosH,EAA0B90I,QAA1B80I,EAA0B,qBAFzB,gBAEDA,CAA0B,KCL1BK,GAAgB,MAAvB,MAAOA,EACX16I,YAAoB26I,cAAoB,CAExCC,+BAA+BlvD,GAC7B,OAAOvrF,KAAK06I,uBAAwBh6B,GAAmBA,EAAGn1B,WAAaA,EACzE,CAEAmvD,uBAAuB1sI,GACrB,MAAMsD,EAAuB,GAE7B,UAAWpG,KAAMlL,KAAK6xH,YAAYzS,oBAC5BpxG,EAAShO,KAAK6xH,YAAYzS,oBAAoBl0G,KAChDoG,EAAO1I,KAAK5I,KAAK6xH,YAAYzS,oBAAoBl0G,IAIrD,OAAOoG,CACT,CAEAqpI,wBACE,OAAOhvI,OAAOtE,KAAKrH,KAAK6xH,YAAYlU,mBAAmBl5G,MACzD,CAEAm2I,yBACE,OAAOjvI,OAAOtE,KAAKrH,KAAK6xH,YAAY9T,oBAAoBt5G,MAC1D,CAEAo2I,0BACE,OAAOlvI,OAAOtE,KAAKrH,KAAK6xH,YAAYzS,qBAAqB36G,MAC3D,CAEAq2I,6BACE,OAAOnvI,OAAOtE,KAAKrH,KAAK6xH,YAAYtT,wBAAwB95G,MAC9D,CAEIotH,kBACF,OAAO7xH,KAAKw6I,KAAK3oB,WACnB,CAAC1xH,kDArCUo6I,GAAgBzsH,0FAAhBysH,EAAgBn1I,QAAhBm1I,EAAgB,qBADH,gBACbA,CAAgB,KCIhBQ,GAAoB,MAA3B,MAAOA,EAOXl7I,YAAoBwsB,cAAmB,CAKvC2uH,kBAAkBC,GAChBj7I,KAAKk7I,eAAiB,IAAInyH,KAAKkyH,GAC/Bj7I,KAAKm7I,YAAc,IAAIpyH,IACzB,CAQAqyH,iBACE,MAAMC,OAAkBtyH,MAAOsE,UAAYrtB,KAAKm7I,YAAY9tH,UAC5D,OAAO,IAAItE,KAAK/oB,KAAKk7I,eAAe7tH,UAAYguH,EAClD,CAEAC,oBACE,OAAOt7I,KAAKqsB,KAAKroB,IAAY,GAAGoT,kCAClC,CAACjX,kDA9BU46I,GAAoBjtH,0FAApBitH,EAAoB31I,QAApB21I,EAAoB,mBAApBA,CAAoB,KCJpBQ,GAAe,MAAtB,MAAOA,EACX17I,YAAoB26I,EAA2BgB,GAA3Bx7I,YAA2BA,qBAAuC,CAEtFy7I,WAAWt5B,EAAiBz+F,GAC1B,MAAMs7G,EAAUD,UAAyB5c,GACzC6c,SAAQt7G,KAAOA,EACfs7G,EAAQC,YAAcj/H,KAAKw7I,eAAeJ,iBAC1Cpc,EAAQ9xG,SAAWltB,KAAK07I,cACxB1c,EAAQr1E,OAAS3pD,KAAK27I,YACtB37I,KAAKw6I,KAAK3oB,YAAY3P,aAAa5+E,QAAQ07F,GAEpCA,CACT,CAEA4c,cAAc5c,EAA4Bt7G,GACxCs7G,EAAQt7G,KAAOA,EACfs7G,EAAQC,YAAcj/H,KAAKw7I,eAAeJ,iBAC1Cpc,EAAQ9xG,SAAWltB,KAAK07I,cACxB1c,EAAQr1E,OAAS3pD,KAAK27I,WACxB,CAEAE,cAAcC,GACZ,MAAM15B,EAAepiH,KAAKw6I,KAAK3oB,YAAY3P,aAAa1lB,UAAUllE,GAAKA,EAAEpsB,KAAO4wI,GAChF97I,KAAKw6I,KAAK3oB,YAAY3P,aAAa/wG,OAAOixG,EAAc,EAC1D,CAEA25B,kBACE,OAAO/7I,KAAKw6I,KAAK3oB,YAAY3P,YAC/B,CAEA85B,eAAe9wI,GACb,OAAOlL,KAAKw6I,KAAK3oB,YAAY3P,aAAatiF,KAAKq8G,GAAOA,EAAI/wI,KAAOA,EACnE,CAEAgxI,qBAAqB/5B,GACnB,OAAOniH,KAAKw6I,KAAK3oB,YAAY3P,aAAanqG,OAAOuf,GAAKA,EAAE6qF,UAAYA,EACtE,CAEQu5B,cACN,MAAM3uH,EAAiBC,aAAaC,QAAQ,QAC5C,OAAOzO,KAAKiF,MAAMsJ,GAAkB,MAAMI,QAC5C,CAEQwuH,YACN,MAAM5uH,EAAiBC,aAAaC,QAAQ,QAC5C,OAAOzO,KAAKiF,MAAMsJ,GAAkB,MAAM7hB,EAC5C,CAEY2mH,kBACV,OAAO7xH,KAAKw6I,KAAK3oB,WACnB,CAAC1xH,kDAlDUo7I,GAAeztH,mHAAfytH,EAAen2I,QAAfm2I,EAAe,mBAAfA,CAAe,KCH5B,MAAMY,GAIFC,OAAOtoG,GACH,GAAIA,EAAM,GAAKA,EAAM9zC,KAAKyE,OACtB,MAAM,IAAI43I,WAAY,oBAAmBvoG,2BAA6B9zC,KAAKyE,UAC/E,OAAOzE,KAAKs8I,UAAUxoG,GAAK,EAAO,EAAG,EACzC,CAIAx6B,KAAK0pB,GACD,GAAIA,EAAI,GAAKA,EAAIhjC,KAAKu8I,MAClB,MAAM,IAAIF,WAAY,uBAAsBr5G,QAAQhjC,KAAKu8I,uBAC7D,OAAOv8I,KAAKs8I,UAAUt5G,GAAG,EAAM,EAAG,EACtC,CAIAp5B,QAAQmQ,EAAMm5G,EAAIxvG,IACb3J,EAAMm5G,GAAMspB,GAAKx8I,KAAM+Z,EAAMm5G,GAC9B,IAAIviH,EAAQ,GACZ,YAAK8rI,UAAU,EAAG1iI,EAAMpJ,EAAO,GAC3B+S,EAAKjf,QACLif,EAAK+4H,UAAU,EAAG/4H,EAAKjf,OAAQkM,EAAO,GAC1C3Q,KAAKy8I,UAAUvpB,EAAIlzH,KAAKyE,OAAQkM,EAAO,GAChC+rI,GAAS3iI,KAAKpJ,EAAO3Q,KAAKyE,QAAUyuH,EAAKn5G,GAAQ2J,EAAKjf,OACjE,CAIAwV,OAAOO,GACH,OAAOxa,KAAK4J,QAAQ5J,KAAKyE,OAAQzE,KAAKyE,OAAQ+V,EAClD,CAIAzU,MAAMgU,EAAMm5G,EAAKlzH,KAAKyE,SACjBsV,EAAMm5G,GAAMspB,GAAKx8I,KAAM+Z,EAAMm5G,GAC9B,IAAIviH,EAAQ,GACZ,YAAK8rI,UAAU1iI,EAAMm5G,EAAIviH,EAAO,GACzB+rI,GAAS3iI,KAAKpJ,EAAOuiH,EAAKn5G,EACrC,CAIA4iI,GAAGniI,GACC,GAAIA,GAASxa,KACT,OAAO,EACX,GAAIwa,EAAM/V,QAAUzE,KAAKyE,QAAU+V,EAAM+hI,OAASv8I,KAAKu8I,MACnD,OAAO,EACX,IAAIl5D,EAAQrjF,KAAK48I,cAAcpiI,EAAO,GAAIhP,EAAMxL,KAAKyE,OAASzE,KAAK48I,cAAcpiI,GAAO,GACpFwW,EAAI,IAAI6rH,GAAc78I,MAAOixB,EAAI,IAAI4rH,GAAcriI,GACvD,QAASsiI,EAAOz5D,EAAOvvC,EAAMuvC,IAAS,CAIlC,GAHAryD,EAAElY,KAAKgkI,GACP7rH,EAAEnY,KAAKgkI,GACPA,EAAO,EACH9rH,EAAE+rH,WAAa9rH,EAAE8rH,WAAa/rH,EAAEwwC,MAAQvwC,EAAEuwC,MAAQxwC,EAAE9kB,OAAS+kB,EAAE/kB,MAC/D,OAAO,EAEX,GADA4nC,GAAO9iB,EAAE9kB,MAAMzH,OACXusB,EAAEwwC,MAAQ1tB,GAAOtoC,EACjB,OAAO,EAEnB,CAMAwxI,KAAKC,EAAM,GAAK,OAAO,IAAIJ,GAAc78I,KAAMi9I,EAAM,CAKrDC,UAAUnjI,EAAMm5G,EAAKlzH,KAAKyE,QAAU,OAAO,IAAI04I,GAAkBn9I,KAAM+Z,EAAMm5G,EAAK,CAQlFkqB,UAAUrjI,EAAMm5G,GACZ,IAAImqB,EACJ,GAAY,MAARtjI,EACAsjI,EAAQr9I,KAAKg9I,WAEZ,CACS,MAAN9pB,IACAA,EAAKlzH,KAAKu8I,MAAQ,GACtB,IAAIl5D,EAAQrjF,KAAKsZ,KAAKS,GAAMA,KAC5BsjI,EAAQr9I,KAAKk9I,UAAU75D,EAAOn4D,KAAKC,IAAIk4D,EAAO6vC,GAAMlzH,KAAKu8I,MAAQ,EAAIv8I,KAAKyE,OAASyuH,GAAM,EAAI,EAAIlzH,KAAKsZ,KAAK45G,EAAK,GAAGA,IAAG,CAE1H,OAAO,IAAIoqB,GAAWD,EAC1B,CAKA/mI,WAAa,OAAOtW,KAAKu9I,YAAY,EAAI,CAKzCxxD,SACI,IAAIwwD,EAAQ,GACZ,YAAKpmH,QAAQomH,GACNA,CACX,CAIA18I,cAAgB,CAIhBM,UAAUujB,GACN,GAAmB,GAAfA,EAAKjf,OACL,MAAM,IAAI43I,WAAW,0CACzB,OAAmB,GAAf34H,EAAKjf,QAAgBif,EAAK,GAEvBA,EAAKjf,QAAU,GAAuB,IAAI+4I,GAAS95H,GAAQg5H,GAAS3iI,KAAKyjI,GAAS3sI,MAAM6S,EAAM,KAD1Fy4H,GAAKr1H,KAEpB,EAKJ,MAAM02H,WAAiBrB,GACnBt8I,YAAY6jB,EAAMjf,EA2NtB,SAASg5I,GAAW/5H,GAChB,IAAIjf,GAAS,EACb,QAAS6U,KAAQoK,EACbjf,GAAU6U,EAAK7U,OAAS,EAC5B,OAAOA,CACX,CAhO+Bg5I,CAAW/5H,IAClC5jB,QACAE,KAAK0jB,KAAOA,EACZ1jB,KAAKyE,OAASA,CAClB,CACI83I,YAAU,OAAOv8I,KAAK0jB,KAAKjf,MAAQ,CACnC8yB,eAAa,OAAO,IAAM,CAC9B+kH,UAAUv6I,EAAQ27I,EAAQpkI,EAAM40C,GAC5B,QAAS1pD,EAAI,GAAIA,IAAK,CAClB,IAAIm5I,EAAS39I,KAAK0jB,KAAKlf,GAAIgH,EAAM0iD,EAASyvF,EAAOl5I,OACjD,IAAKi5I,EAASpkI,EAAO9N,IAAQzJ,EACzB,OAAO,IAAI67I,GAAK1vF,EAAQ1iD,EAAK8N,EAAMqkI,GACvCzvF,EAAS1iD,EAAM,EACf8N,IAER,CACAmjI,UAAU1iI,EAAMm5G,EAAInxH,EAAQ2gB,GACxB,IAAIgB,EAAO3J,GAAQ,GAAKm5G,GAAMlzH,KAAKyE,OAASzE,KACtC,IAAIw9I,GAASK,GAAU79I,KAAK0jB,KAAM3J,EAAMm5G,GAAKhoG,KAAK4lC,IAAIoiE,EAAIlzH,KAAKyE,QAAUymB,KAAKC,IAAI,EAAGpR,IAC3F,GAAW,EAAP2I,EAA0B,CAC1B,IAAI4jF,EAAOvkG,EAAOiP,MACd8sI,EAASC,GAAWr6H,EAAKA,KAAM4iF,EAAK5iF,KAAK3d,QAAS,EAAG2d,EAAKjf,QAC9D,GAAIq5I,EAAOr5I,QAAU,GACjB1C,EAAO6G,KAAK,IAAI40I,GAASM,EAAQx3C,EAAK7hG,OAASif,EAAKjf,aAEnD,CACD,IAAIu5I,EAAMF,EAAOr5I,QAAU,EAC3B1C,EAAO6G,KAAK,IAAI40I,GAASM,EAAO/3I,MAAM,EAAGi4I,IAAO,IAAIR,GAASM,EAAO/3I,MAAMi4I,IAAK,OAInFj8I,EAAO6G,KAAK8a,EAEpB,CACA9Z,QAAQmQ,EAAMm5G,EAAIxvG,GACd,KAAMA,aAAgB85H,IAClB,OAAO19I,MAAM8J,QAAQmQ,EAAMm5G,EAAIxvG,IAClC3J,EAAMm5G,GAAMspB,GAAKx8I,KAAM+Z,EAAMm5G,GAC9B,IAAIqpB,EAAQwB,GAAW/9I,KAAK0jB,KAAMq6H,GAAWr6H,EAAKA,KAAMm6H,GAAU79I,KAAK0jB,KAAM,EAAG3J,IAAQm5G,GACpF+qB,EAASj+I,KAAKyE,OAASif,EAAKjf,QAAUyuH,EAAKn5G,GAC/C,OAAIwiI,EAAM93I,QAAU,GACT,IAAI+4I,GAASjB,EAAO0B,GACxBvB,GAAS3iI,KAAKyjI,GAAS3sI,MAAM0rI,EAAO,IAAK0B,EACpD,CACAV,YAAYxjI,EAAMm5G,EAAKlzH,KAAKyE,OAAQy5I,EAAU,OACzCnkI,EAAMm5G,GAAMspB,GAAKx8I,KAAM+Z,EAAMm5G,GAC9B,IAAI5hH,EAAS,GACb,QAASwiC,EAAM,EAAGtvC,EAAI,EAAGsvC,GAAOo/E,GAAM1uH,EAAIxE,KAAK0jB,KAAKjf,OAAQD,IAAK,CAC7D,IAAI8U,EAAOtZ,KAAK0jB,KAAKlf,GAAIgH,EAAMsoC,EAAMx6B,EAAK7U,OACtCqvC,EAAM/5B,GAAQvV,IACd8M,GAAU4sI,GACVnkI,EAAOvO,GAAO0nH,EAAKp/E,IACnBxiC,GAAUgI,EAAKvT,MAAMmlB,KAAKC,IAAI,EAAGpR,EAAO+5B,GAAMo/E,EAAKp/E,IACvDA,EAAMtoC,EAAM,EAEhB,OAAO8F,CACX,CACA6kB,QAAQp0B,GACJ,QAASuX,KAAQtZ,KAAK0jB,KAClB3hB,EAAO6G,KAAK0Q,EACpB,CACAsjI,gBAAkB,OAAO,CAAG,CAC5Bz8I,aAAaujB,EAAM3hB,GACf,IAAIwzB,EAAO,GAAIhF,GAAM,EACrB,QAASjX,KAAQoK,EACb6R,EAAK3sB,KAAK0Q,GACViX,GAAOjX,EAAK7U,OAAS,EACF,IAAf8wB,EAAK9wB,SACL1C,EAAO6G,KAAK,IAAI40I,GAASjoH,EAAMhF,IAC/BgF,EAAO,GACPhF,GAAM,GAGd,OAAIA,GAAM,GACNxuB,EAAO6G,KAAK,IAAI40I,GAASjoH,EAAMhF,IAC5BxuB,CACX,EAMJ,MAAM26I,WAAiBP,GACnBt8I,YAAY03B,EAAU9yB,GAClB3E,QACAE,KAAKu3B,SAAWA,EAChBv3B,KAAKyE,OAASA,EACdzE,KAAKu8I,MAAQ,EACb,QAAS/hH,KAASjD,EACdv3B,KAAKu8I,OAAS/hH,EAAM+hH,KAC5B,CACAD,UAAUv6I,EAAQ27I,EAAQpkI,EAAM40C,GAC5B,QAAS1pD,EAAI,GAAIA,IAAK,CAClB,IAAIg2B,EAAQx6B,KAAKu3B,SAAS/yB,GAAIgH,EAAM0iD,EAAS1zB,EAAM/1B,OAAQ05I,EAAU7kI,EAAOkhB,EAAM+hH,MAAQ,EAC1F,IAAKmB,EAASS,EAAU3yI,IAAQzJ,EAC5B,OAAOy4B,EAAM8hH,UAAUv6I,EAAQ27I,EAAQpkI,EAAM40C,GACjDA,EAAS1iD,EAAM,EACf8N,EAAO6kI,EAAU,EAEzB,CACA1B,UAAU1iI,EAAMm5G,EAAInxH,EAAQ2gB,GACxB,QAASle,EAAI,EAAGsvC,EAAM,EAAGA,GAAOo/E,GAAM1uH,EAAIxE,KAAKu3B,SAAS9yB,OAAQD,IAAK,CACjE,IAAIg2B,EAAQx6B,KAAKu3B,SAAS/yB,GAAIgH,EAAMsoC,EAAMtZ,EAAM/1B,OAChD,GAAIsV,GAAQvO,GAAO0nH,GAAMp/E,EAAK,CAC1B,IAAIsqG,EAAY17H,IAASoxB,GAAO/5B,EAAO,EAAoB,IAAMvO,GAAO0nH,EAAK,EAAkB,IAC3Fp/E,GAAO/5B,GAAQvO,GAAO0nH,IAAOkrB,EAC7Br8I,EAAO6G,KAAK4xB,GAEZA,EAAMiiH,UAAU1iI,EAAO+5B,EAAKo/E,EAAKp/E,EAAK/xC,EAAQq8I,EAAS,CAE/DtqG,EAAMtoC,EAAM,EAEpB,CACA5B,QAAQmQ,EAAMm5G,EAAIxvG,GAEd,IADC3J,EAAMm5G,GAAMspB,GAAKx8I,KAAM+Z,EAAMm5G,GAC1BxvG,EAAK64H,MAAQv8I,KAAKu8I,MAClB,QAAS/3I,EAAI,EAAGsvC,EAAM,EAAGtvC,EAAIxE,KAAKu3B,SAAS9yB,OAAQD,IAAK,CACpD,IAAIg2B,EAAQx6B,KAAKu3B,SAAS/yB,GAAIgH,EAAMsoC,EAAMtZ,EAAM/1B,OAIhD,GAAIsV,GAAQ+5B,GAAOo/E,GAAM1nH,EAAK,CAC1B,IAAI6yI,EAAU7jH,EAAM5wB,QAAQmQ,EAAO+5B,EAAKo/E,EAAKp/E,EAAKpwB,GAC9C46H,EAAat+I,KAAKu8I,MAAQ/hH,EAAM+hH,MAAQ8B,EAAQ9B,MACpD,GAAI8B,EAAQ9B,MAAS+B,GAAe,GAChCD,EAAQ9B,MAAS+B,GAAe,EAAgC,CAChE,IAAIC,EAAOv+I,KAAKu3B,SAASxxB,QACzBw4I,SAAK/5I,GAAK65I,EACH,IAAI3B,GAAS6B,EAAMv+I,KAAKyE,QAAUyuH,EAAKn5G,GAAQ2J,EAAKjf,OAAM,CAErE,OAAO3E,MAAM8J,QAAQkqC,EAAKtoC,EAAK6yI,EAAO,CAE1CvqG,EAAMtoC,EAAM,EAEpB,OAAO1L,MAAM8J,QAAQmQ,EAAMm5G,EAAIxvG,EACnC,CACA65H,YAAYxjI,EAAMm5G,EAAKlzH,KAAKyE,OAAQy5I,EAAU,OACzCnkI,EAAMm5G,GAAMspB,GAAKx8I,KAAM+Z,EAAMm5G,GAC9B,IAAI5hH,EAAS,GACb,QAAS9M,EAAI,EAAGsvC,EAAM,EAAGtvC,EAAIxE,KAAKu3B,SAAS9yB,QAAUqvC,GAAOo/E,EAAI1uH,IAAK,CACjE,IAAIg2B,EAAQx6B,KAAKu3B,SAAS/yB,GAAIgH,EAAMsoC,EAAMtZ,EAAM/1B,OAC5CqvC,EAAM/5B,GAAQvV,IACd8M,GAAU4sI,GACVnkI,EAAOvO,GAAO0nH,EAAKp/E,IACnBxiC,GAAUkpB,EAAM+iH,YAAYxjI,EAAO+5B,EAAKo/E,EAAKp/E,EAAKoqG,IACtDpqG,EAAMtoC,EAAM,EAEhB,OAAO8F,CACX,CACA6kB,QAAQp0B,GACJ,QAASy4B,KAASx6B,KAAKu3B,SACnBiD,EAAMrE,QAAQp0B,EACtB,CACA66I,cAAcpiI,EAAOyiI,GACjB,KAAMziI,aAAiBkiI,IACnB,OAAO,EACX,IAAIj4I,EAAS,GACR+5I,EAAIC,EAAIC,EAAIC,GAAM1B,EAAM,EAAI,CAAC,EAAG,EAAGj9I,KAAKu3B,SAAS9yB,OAAQ+V,EAAM+c,SAAS9yB,QACvE,CAACzE,KAAKu3B,SAAS9yB,OAAS,EAAG+V,EAAM+c,SAAS9yB,OAAS,GAAG,GAAI,GAChE,MAAQ+5I,GAAMvB,EAAKwB,GAAMxB,EAAK,CAC1B,GAAIuB,GAAME,GAAMD,GAAME,EAClB,OAAOl6I,EACX,IAAIm6I,EAAM5+I,KAAKu3B,SAASinH,GAAKK,EAAMrkI,EAAM+c,SAASknH,GAClD,GAAIG,GAAOC,EACP,OAAOp6I,EAASm6I,EAAIhC,cAAciC,EAAK5B,GAC3Cx4I,GAAUm6I,EAAIn6I,OAAS,EAE/B,CACAtE,YAAYo3B,EAAU9yB,EAAS8yB,EAAS3Y,OAAO,CAACwxF,EAAG0uC,IAAO1uC,EAAI0uC,EAAGr6I,OAAS,GAAG,IACzE,IAAI83I,EAAQ,EACZ,QAASuC,MAAMvnH,EACXglH,GAASuC,GAAGvC,MAChB,GAAIA,EAAQ,GAAsB,CAC9B,IAAI7yI,GAAO,GACX,QAASo1I,MAAMvnH,EACXunH,GAAG3oH,QAAQzsB,IACf,OAAO,IAAI8zI,GAAS9zI,GAAMjF,EAAM,CAEpC,IAAIs6I,EAAQ7zH,KAAKC,IAAI,GAAsBoxH,GAAS,GAA2ByC,EAAWD,GAAS,EAAGE,EAAWF,GAAS,EACtHG,EAAU,GAAIC,EAAe,EAAGC,GAAa,EAAIC,EAAe,GACpE,SAAS/2I,EAAIkyB,IACT,IAAI5G,GACJ,GAAI4G,GAAM+hH,MAAQyC,GAAYxkH,cAAiBkiH,GAC3C,QAAS77I,MAAQ25B,GAAMjD,SACnBjvB,EAAIzH,SAEH25B,GAAM+hH,MAAQ0C,IAAaE,EAAeF,IAAaE,IAC5D91H,IACA61H,EAAQt2I,KAAK4xB,KAERA,cAAiBgjH,IAAY2B,IACjCvrH,GAAOyrH,EAAaA,EAAa56I,OAAS,cAAe+4I,IAC1DhjH,GAAM+hH,MAAQ3oH,GAAK2oH,OAAS,IAC5B4C,GAAgB3kH,GAAM+hH,MACtB6C,GAAc5kH,GAAM/1B,OAAS,EAC7B46I,EAAaA,EAAa56I,OAAS,GAAK,IAAI+4I,GAAS5pH,GAAKlQ,KAAKjJ,OAAO+f,GAAM9W,MAAOkQ,GAAKnvB,OAAS,EAAI+1B,GAAM/1B,UAGvG06I,EAAe3kH,GAAM+hH,MAAQwC,GAC7B11H,IACJ81H,GAAgB3kH,GAAM+hH,MACtB6C,GAAc5kH,GAAM/1B,OAAS,EAC7B46I,EAAaz2I,KAAK4xB,IAE1B,CACA,SAASnR,IACe,GAAhB81H,IAEJD,EAAQt2I,KAA4B,GAAvBy2I,EAAa56I,OAAc46I,EAAa,GAAK3C,GAAS3iI,KAAKslI,EAAcD,IACtFA,GAAa,EACbD,EAAeE,EAAa56I,OAAS,EACzC,CACA,QAAS+1B,MAASjD,EACdjvB,EAAIkyB,IACRnR,WACyB,GAAlB61H,EAAQz6I,OAAcy6I,EAAQ,GAAK,IAAIxC,GAASwC,EAASz6I,EACpE,EASJ,SAASs5I,GAAWr6H,EAAM3hB,EAAQgY,EAAO,EAAGm5G,EAAK,KAC7C,QAASp/E,EAAM,EAAGtvC,EAAI,EAAG2b,GAAQ,EAAM3b,EAAIkf,EAAKjf,QAAUqvC,GAAOo/E,EAAI1uH,IAAK,CACtE,IAAI8U,EAAOoK,EAAKlf,GAAIgH,EAAMsoC,EAAMx6B,EAAK7U,OACjC+G,GAAOuO,IACHvO,EAAM0nH,IACN55G,EAAOA,EAAKvT,MAAM,EAAGmtH,EAAKp/E,IAC1BA,EAAM/5B,IACNT,EAAOA,EAAKvT,MAAMgU,EAAO+5B,IACzB3zB,GACApe,EAAOA,EAAO0C,OAAS,IAAM6U,EAC7B6G,GAAQ,GAGRpe,EAAO6G,KAAK0Q,IAEpBw6B,EAAMtoC,EAAM,EAEhB,OAAOzJ,CACX,CACA,SAAS87I,GAAUn6H,EAAM3J,EAAMm5G,GAC3B,OAAO6qB,GAAWr6H,EAAM,CAAC,IAAK3J,EAAMm5G,EACxC,CA5BAipB,GAAKr1H,MAAqB,IAAI02H,GAAS,CAAC,IAAK,GA6B7C,MAAMX,GACFh9I,YAAY6jB,EAAMu5H,EAAM,GACpBj9I,KAAKi9I,IAAMA,EACXj9I,KAAKwhE,MAAO,EACZxhE,KAAK+8I,WAAY,EACjB/8I,KAAKkM,MAAQ,GACblM,KAAK+0C,MAAQ,CAACrxB,GACd1jB,KAAK2nE,QAAU,CAACs1E,EAAM,EAAI,GAAKv5H,aAAgB85H,GAAW95H,EAAKA,KAAKjf,OAASif,EAAK6T,SAAS9yB,SAAW,EAC1G,CACA66I,UAAUxC,EAAMG,GAEZ,IADAj9I,KAAKwhE,KAAOxhE,KAAK+8I,WAAY,IACpB,CACL,IAAInpH,EAAO5zB,KAAK+0C,MAAMtwC,OAAS,EAC3B86I,EAAMv/I,KAAK+0C,MAAMnhB,GAAO4rH,EAAcx/I,KAAK2nE,QAAQ/zC,GAAOs6B,EAASsxF,GAAe,EAEtF,GAAItxF,IAAW+uF,EAAM,EADVsC,aAAe/B,GAAW+B,EAAI77H,KAAKjf,OAAS86I,EAAIhoH,SAAS9yB,OACpC,GAAI,CAChC,GAAY,GAARmvB,EACA,YAAK4tC,MAAO,EACZxhE,KAAKkM,MAAQ,GACNlM,KAEPi9I,EAAM,GACNj9I,KAAK2nE,QAAQ/zC,EAAO,KACxB5zB,KAAK+0C,MAAM/jC,MACXhR,KAAK2nE,QAAQ32D,KAAG,UAEI,EAAdwuI,KAAqBvC,EAAM,EAAI,EAAI,GAAI,CAE7C,GADAj9I,KAAK2nE,QAAQ/zC,IAASqpH,EACV,GAARH,EACA,YAAKC,WAAY,EACjB/8I,KAAKkM,MAAQ,KACNlM,KAEX88I,YAEKyC,aAAe/B,GAAU,CAE9B,IAAI1kI,EAAOymI,EAAI77H,KAAKwqC,GAAU+uF,EAAM,GAAI,EAAK,IAE7C,GADAj9I,KAAK2nE,QAAQ/zC,IAASqpH,EAClBnkI,EAAKrU,OAASymB,KAAKC,IAAI,EAAG2xH,GAC1B,YAAK5wI,MAAgB,GAAR4wI,EAAYhkI,EAAOmkI,EAAM,EAAInkI,EAAK/S,MAAM+2I,GAAQhkI,EAAK/S,MAAM,EAAG+S,EAAKrU,OAASq4I,GAClF98I,KAEX88I,GAAQhkI,EAAKrU,WAEZ,CACD,IAAIqU,EAAOymI,EAAIhoH,SAAS22B,GAAU+uF,EAAM,GAAI,EAAK,IAC7CH,EAAOhkI,EAAKrU,QACZq4I,GAAQhkI,EAAKrU,OACbzE,KAAK2nE,QAAQ/zC,IAASqpH,IAGlBA,EAAM,GACNj9I,KAAK2nE,QAAQ/zC,KACjB5zB,KAAK+0C,MAAMnsC,KAAKkQ,GAChB9Y,KAAK2nE,QAAQ/+D,KAAKq0I,EAAM,EAAI,GAAKnkI,aAAgB0kI,GAAW1kI,EAAK4K,KAAKjf,OAASqU,EAAKye,SAAS9yB,SAAW,GAAC,EAIzH,CACAqU,KAAKgkI,EAAO,GACR,OAAIA,EAAO,IACP98I,KAAKs/I,WAAWxC,GAAQ98I,KAAKi9I,KAC7BH,EAAO98I,KAAKkM,MAAMzH,QAEfzE,KAAKs/I,UAAUxC,EAAM98I,KAAKi9I,IACrC,EAEJ,MAAME,GACFt9I,YAAY6jB,EAAM2/D,EAAO73E,GACrBxL,KAAKkM,MAAQ,GACblM,KAAKwhE,MAAO,EACZxhE,KAAKy/I,OAAS,IAAI5C,GAAcn5H,EAAM2/D,EAAQ73E,GAAM,EAAK,GACzDxL,KAAK8zC,IAAMuvC,EAAQ73E,EAAMkY,EAAKjf,OAAS,EACvCzE,KAAK+Z,KAAOmR,KAAK4lC,IAAIuyB,EAAO73E,GAC5BxL,KAAKkzH,GAAKhoG,KAAKC,IAAIk4D,EAAO73E,EAC9B,CACA8zI,UAAUxC,EAAMG,GACZ,GAAIA,EAAM,EAAIj9I,KAAK8zC,KAAO9zC,KAAK+Z,KAAO/Z,KAAK8zC,KAAO9zC,KAAKkzH,GACnD,YAAKhnH,MAAQ,GACblM,KAAKwhE,MAAO,EACLxhE,KAEX88I,GAAQ5xH,KAAKC,IAAI,EAAG8xH,EAAM,EAAIj9I,KAAK8zC,IAAM9zC,KAAKkzH,GAAKlzH,KAAK+Z,KAAO/Z,KAAK8zC,KACpE,IAAIs0B,EAAQ60E,EAAM,EAAIj9I,KAAK8zC,IAAM9zC,KAAK+Z,KAAO/Z,KAAKkzH,GAAKlzH,KAAK8zC,IACxDgpG,EAAO10E,IACP00E,EAAO10E,GACXA,GAAS00E,EACT,IAAM5wI,SAAUlM,KAAKy/I,OAAO3mI,KAAKgkI,GACjC,YAAKhpG,MAAQ5nC,EAAMzH,OAASq4I,GAAQG,EACpCj9I,KAAKkM,MAAQA,EAAMzH,QAAU2jE,EAAQl8D,EAAQ+wI,EAAM,EAAI/wI,EAAMnG,MAAMmG,EAAMzH,OAAS2jE,GAASl8D,EAAMnG,MAAM,EAAGqiE,GAC1GpoE,KAAKwhE,MAAQxhE,KAAKkM,MACXlM,IACX,CACA8Y,KAAKgkI,EAAO,GACR,OAAIA,EAAO,EACPA,EAAO5xH,KAAKC,IAAI2xH,EAAM98I,KAAK+Z,KAAO/Z,KAAK8zC,KAClCgpG,EAAO,IACZA,EAAO5xH,KAAK4lC,IAAIgsF,EAAM98I,KAAKkzH,GAAKlzH,KAAK8zC,MAClC9zC,KAAKs/I,UAAUxC,EAAM98I,KAAKy/I,OAAOxC,IAC5C,CACIF,gBAAc,OAAO/8I,KAAKy/I,OAAO1C,WAA2B,IAAd/8I,KAAKkM,KAAa,EAExE,MAAMoxI,GACFz9I,YAAYw9I,GACRr9I,KAAKq9I,MAAQA,EACbr9I,KAAK0/I,YAAa,EAClB1/I,KAAKkM,MAAQ,GACblM,KAAKwhE,MAAO,CAChB,CACA1oD,KAAKgkI,EAAO,GACR,IAAMt7E,OAAMu7E,YAAW7wI,SAAUlM,KAAKq9I,MAAMvkI,KAAKgkI,GACjD,OAAIt7E,GAAQxhE,KAAK0/I,YACb1/I,KAAKkM,MAAQ,GACblM,KAAK0/I,YAAa,GAEbl+E,GACLxhE,KAAKwhE,MAAO,EACZxhE,KAAKkM,MAAQ,IAER6wI,EACD/8I,KAAK0/I,WACL1/I,KAAKkM,MAAQ,IAGblM,KAAK0/I,YAAa,EAClB1/I,KAAK8Y,SAIT9Y,KAAKkM,MAAQA,EACblM,KAAK0/I,YAAa,GAEf1/I,IACX,CACI+8I,gBAAc,OAAO,CAAO,SAEzBpoH,OAAU,MACjBwnH,GAAK9sH,UAAUsF,OAAO4sC,UAAY,WAAc,OAAOvhE,KAAKg9I,MAAQ,EACpEH,GAAcxtH,UAAUsF,OAAO4sC,UAAY47E,GAAkB9tH,UAAUsF,OAAO4sC,UAC1E+7E,GAAWjuH,UAAUsF,OAAO4sC,UAAY,WAAc,OAAOvhE,IAAM,GAM3E,MAAM49I,GAIF/9I,YAIAka,EAKAm5G,EAIAysB,EAIAj8H,GACI1jB,KAAK+Z,KAAOA,EACZ/Z,KAAKkzH,GAAKA,EACVlzH,KAAK2/I,OAASA,EACd3/I,KAAK0jB,KAAOA,CAChB,CAIIjf,aAAW,OAAOzE,KAAKkzH,GAAKlzH,KAAK+Z,IAAM,EAE/C,SAASyiI,GAAK94H,EAAM3J,EAAMm5G,GACtBn5G,MACO,CADPA,EAAOmR,KAAKC,IAAI,EAAGD,KAAK4lC,IAAIptC,EAAKjf,OAAQsV,IAC3BmR,KAAKC,IAAIpR,EAAMmR,KAAK4lC,IAAIptC,EAAKjf,OAAQyuH,IACvD,CAQA,IAAI0sB,GAAsB,izCAAizC/uI,MAAM,KAAKtJ,IAAIoC,GAAKA,EAAIk2I,SAASl2I,EAAG,IAAM,GAEr3C,QAASnF,EAAI,EAAGA,EAAIo7I,GAAOn7I,OAAQD,IAC/Bo7I,GAAOp7I,IAAMo7I,GAAOp7I,EAAI,GAC5B,SAASs7I,GAAgBruI,GACrB,QAASjN,EAAI,EAAGA,EAAIo7I,GAAOn7I,OAAQD,GAAK,EACpC,GAAIo7I,GAAOp7I,GAAKiN,EACZ,OAAOmuI,GAAOp7I,EAAI,IAAMiN,EAChC,OAAO,CACX,CACA,SAASsuI,GAAoBtuI,GACzB,OAAOA,GAAQ,QAAWA,GAAQ,MACtC,CACA,MAAMuuI,GAAM,KASZ,SAASC,GAAiBhlH,EAAK6Y,EAAKosG,GAAU,EAAMC,GAAmB,GACnE,OAAQD,EAAUE,GAAmBC,IAAkBplH,EAAK6Y,EAAKqsG,EACrE,CACA,SAASC,GAAiBnlH,EAAK6Y,EAAKqsG,GAChC,GAAIrsG,GAAO7Y,EAAIx2B,OACX,OAAOqvC,EAEPA,GAAOwsG,GAAarlH,EAAIslH,WAAWzsG,KAAS0sG,GAAcvlH,EAAIslH,WAAWzsG,EAAM,KAC/EA,IACJ,IAAIwyD,EAAOm6C,GAAYxlH,EAAK6Y,GAE5B,IADAA,GAAO4sG,GAAcp6C,GACdxyD,EAAM7Y,EAAIx2B,QAAQ,CACrB,IAAIqU,EAAO2nI,GAAYxlH,EAAK6Y,GAC5B,GAAIwyD,GAAQ05C,IAAOlnI,GAAQknI,IAAOG,GAAoBL,GAAgBhnI,GAClEg7B,GAAO4sG,GAAc5nI,GACrBwtF,EAAOxtF,WAEFinI,GAAoBjnI,GAYzB,MAZgC,CAChC,IAAI6nI,EAAc,EAAGn8I,EAAIsvC,EAAM,EAC/B,KAAOtvC,GAAK,GAAKu7I,GAAoBU,GAAYxlH,EAAKz2B,KAClDm8I,IACAn8I,GAAK,EAET,GAAIm8I,EAAc,GAAK,EACnB,MAEA7sG,GAAO,EAGX,EAGR,OAAOA,CACX,CACA,SAASusG,GAAiBplH,EAAK6Y,EAAKqsG,GAChC,KAAOrsG,EAAM,GAAG,CACZ,IAAI4iB,EAAQ0pF,GAAiBnlH,EAAK6Y,EAAM,EAAGqsG,GAC3C,GAAIzpF,EAAQ5iB,EACR,OAAO4iB,EACX5iB,IAEJ,OAAO,CACX,CACA,SAASwsG,GAAaxB,GAAM,OAAOA,GAAM,OAAUA,EAAK,KAAQ,CAChE,SAAS0B,GAAc1B,GAAM,OAAOA,GAAM,OAAUA,EAAK,KAAQ,CAMjE,SAAS2B,GAAYxlH,EAAK6Y,GACtB,IAAI8sG,EAAQ3lH,EAAIslH,WAAWzsG,GAC3B,IAAK0sG,GAAcI,IAAU9sG,EAAM,GAAK7Y,EAAIx2B,OACxC,OAAOm8I,EACX,IAAIC,EAAQ5lH,EAAIslH,WAAWzsG,EAAM,GACjC,OAAKwsG,GAAaO,GAEiBA,EAAQ,OAAlCD,EAAQ,OAAW,IAAyB,MAD1CA,CAEf,CAMA,SAASE,GAAcrvI,GACnB,OAAIA,GAAQ,MACD4E,OAAO0qI,aAAatvI,IAC/BA,GAAQ,MACD4E,OAAO0qI,aAA4B,OAAdtvI,GAAQ,IAA8B,OAAR,KAAPA,IACvD,CAIA,SAASivI,GAAcjvI,GAAQ,OAAOA,EAAO,MAAU,EAAI,CAAG,CAE9D,MAAMuvI,GAAe,WAIrB,IAAIC,GAAwB,SAAUA,GAKlCA,SAAQA,EAAQC,OAAY,GAAK,SAIjCD,EAAQA,EAAQE,SAAc,GAAK,WAInCF,EAAQA,EAAQG,YAAiB,GAAK,cAItCH,EAAQA,EAAQI,WAAgB,GAAK,aAClCJ,CAAO,CAlBc,CAkBXA,KAAYA,GAAU,CAAC,IAMxC,MAAMK,GASFzhJ,YAIA0hJ,GACIvhJ,KAAKuhJ,SAAWA,CACpB,CAII98I,aACA,IAAI6M,EAAS,EACb,QAAS9M,EAAI,EAAGA,EAAIxE,KAAKuhJ,SAAS98I,OAAQD,GAAK,EAC3C8M,GAAUtR,KAAKuhJ,SAAS/8I,GAC5B,OAAO8M,CACX,CAIIkwI,gBACA,IAAIlwI,EAAS,EACb,QAAS9M,EAAI,EAAGA,EAAIxE,KAAKuhJ,SAAS98I,OAAQD,GAAK,EAAG,CAC9C,IAAI0zD,EAAMl4D,KAAKuhJ,SAAS/8I,EAAI,GAC5B8M,GAAU4mD,EAAM,EAAIl4D,KAAKuhJ,SAAS/8I,GAAK0zD,EAE3C,OAAO5mD,CACX,CAIIwV,YAAU,OAA+B,GAAxB9mB,KAAKuhJ,SAAS98I,QAAuC,GAAxBzE,KAAKuhJ,SAAS98I,QAAezE,KAAKuhJ,SAAS,GAAK,CAAG,CAMrGE,SAASrgG,GACL,QAAS58C,EAAI,EAAGk9I,EAAO,EAAGC,EAAO,EAAGn9I,EAAIxE,KAAKuhJ,SAAS98I,QAAS,CAC3D,IAAI8rB,EAAMvwB,KAAKuhJ,SAAS/8I,KAAM0zD,EAAMl4D,KAAKuhJ,SAAS/8I,KAC9C0zD,EAAM,GACN9W,EAAEsgG,EAAMC,EAAMpxH,GACdoxH,GAAQpxH,GAGRoxH,GAAQzpF,EAEZwpF,GAAQnxH,EAEhB,CAaAqxH,kBAAkBxgG,EAAGygG,GAAa,GAC9BC,GAAY9hJ,KAAMohD,EAAGygG,EACzB,CAIIE,mBACA,IAAIR,EAAW,GACf,QAAS/8I,EAAI,EAAGA,EAAIxE,KAAKuhJ,SAAS98I,QAAS,CACvC,IAAI8rB,EAAMvwB,KAAKuhJ,SAAS/8I,KAAM0zD,EAAMl4D,KAAKuhJ,SAAS/8I,KAC9C0zD,EAAM,EACNqpF,EAAS34I,KAAK2nB,EAAK2nC,GAEnBqpF,EAAS34I,KAAKsvD,EAAK3nC,EAAG,CAE9B,OAAO,IAAI+wH,GAAWC,EAC1B,CAMAS,YAAYxnI,GAAS,OAAOxa,KAAK8mB,MAAQtM,EAAQA,EAAMsM,MAAQ9mB,KAAOiiJ,GAAYjiJ,KAAMwa,EAAQ,CAOhG0nI,QAAQ1nI,EAAO2nI,GAAS,GAAS,OAAO3nI,EAAMsM,MAAQ9mB,KAAOoiJ,GAAOpiJ,KAAMwa,EAAO2nI,EAAS,CAC1FE,OAAOvuG,EAAKwuG,GAAQ,EAAIh0I,EAAO2yI,GAAQC,QACnC,IAAIQ,EAAO,EAAGC,EAAO,EACrB,QAASn9I,EAAI,EAAGA,EAAIxE,KAAKuhJ,SAAS98I,QAAS,CACvC,IAAI8rB,EAAMvwB,KAAKuhJ,SAAS/8I,KAAM0zD,EAAMl4D,KAAKuhJ,SAAS/8I,KAAM+9I,EAAOb,EAAOnxH,EACtE,GAAI2nC,EAAM,EAAG,CACT,GAAIqqF,EAAOzuG,EACP,OAAO6tG,GAAQ7tG,EAAM4tG,GACzBC,GAAQpxH,MAEP,CACD,GAAIjiB,GAAQ2yI,GAAQC,QAAUqB,GAAQzuG,IACjCxlC,GAAQ2yI,GAAQE,UAAYO,EAAO5tG,GAAOyuG,EAAOzuG,GAC9CxlC,GAAQ2yI,GAAQG,aAAeM,EAAO5tG,GACtCxlC,GAAQ2yI,GAAQI,YAAckB,EAAOzuG,GACzC,OAAO,KACX,GAAIyuG,EAAOzuG,GAAOyuG,GAAQzuG,GAAOwuG,EAAQ,IAAM/xH,EAC3C,OAAOujB,GAAO4tG,GAAQY,EAAQ,EAAIX,EAAOA,EAAOzpF,EACpDypF,GAAQzpF,EAEZwpF,EAAOa,EAEX,GAAIzuG,EAAM4tG,EACN,MAAM,IAAIrF,WAAY,YAAWvoG,6CAA+C4tG,KACpF,OAAOC,CACX,CAMAa,aAAazoI,EAAMm5G,EAAKn5G,GACpB,QAASvV,EAAI,EAAGsvC,EAAM,EAAGtvC,EAAIxE,KAAKuhJ,SAAS98I,QAAUqvC,GAAOo/E,GAAK,CAC7D,IAAwD1nH,EAAMsoC,EAApD9zC,KAAKuhJ,SAAS/8I,KACxB,GADoCxE,KAAKuhJ,SAAS/8I,MACvC,GAAKsvC,GAAOo/E,GAAM1nH,GAAOuO,EAChC,QAAO+5B,EAAM/5B,GAAQvO,EAAM0nH,IAAK,QACpCp/E,EAAMtoC,EAEV,OAAO,CACX,CAIA8K,WACI,IAAIhF,EAAS,GACb,QAAS9M,EAAI,EAAGA,EAAIxE,KAAKuhJ,SAAS98I,QAAS,CACvC,IAAI8rB,EAAMvwB,KAAKuhJ,SAAS/8I,KAAM0zD,EAAMl4D,KAAKuhJ,SAAS/8I,KAClD8M,IAAWA,EAAS,IAAM,IAAMif,GAAO2nC,GAAO,EAAI,IAAMA,EAAM,IAElE,OAAO5mD,CACX,CAIAy6E,SAAW,OAAO/rF,KAAKuhJ,QAAU,CAKjCphJ,gBAAgBsiJ,GACZ,IAAK3oI,MAAM2C,QAAQgmI,IAASA,EAAKh+I,OAAS,GAAKg+I,EAAK7yG,KAAK5e,GAAiB,iBAALA,GACjE,MAAM,IAAIqrH,WAAW,6CACzB,OAAO,IAAIiF,GAAWmB,EAC1B,CAIAtiJ,cAAcohJ,GAAY,OAAO,IAAID,GAAWC,EAAW,EAO/D,MAAMmB,WAAkBpB,GACpBzhJ,YAAY0hJ,EAIZoB,GACI7iJ,MAAMyhJ,GACNvhJ,KAAK2iJ,SAAWA,CACpB,CAKA/xH,MAAM1vB,GACF,GAAIlB,KAAKyE,QAAUvD,EAAIuD,OACnB,MAAM,IAAI43I,WAAW,2DACzByF,UAAY9hJ,KAAM,CAAC4iJ,EAAOC,EAAKC,EAAOC,EAAMr/H,IAASxiB,EAAMA,EAAI0I,QAAQk5I,EAAOA,GAASD,EAAMD,GAAQl/H,IAAO,GACrGxiB,CACX,CACAghJ,QAAQ1nI,EAAO2nI,GAAS,GAAS,OAAOC,GAAOpiJ,KAAMwa,EAAO2nI,GAAQ,EAAO,CAO3Ea,OAAO9hJ,GACH,IAAIqgJ,EAAWvhJ,KAAKuhJ,SAASx7I,QAAS48I,EAAW,GACjD,QAASn+I,EAAI,EAAGsvC,EAAM,EAAGtvC,EAAI+8I,EAAS98I,OAAQD,GAAK,EAAG,CAClD,IAAI+rB,EAAMgxH,EAAS/8I,GAAI0zD,EAAMqpF,EAAS/8I,EAAI,GAC1C,GAAI0zD,GAAO,EAAG,CACVqpF,EAAS/8I,GAAK0zD,EACdqpF,EAAS/8I,EAAI,GAAK+rB,EAClB,IAAIlf,EAAQ7M,GAAK,EACjB,KAAOm+I,EAASl+I,OAAS4M,GACrBsxI,EAAS/5I,KAAKuzI,GAAKr1H,OACvB67H,EAAS/5I,KAAK2nB,EAAMrvB,EAAI6E,MAAM+tC,EAAKA,EAAMvjB,GAAO4rH,GAAKr1H,MAAK,CAE9DgtB,GAAOvjB,EAEX,OAAO,IAAImyH,GAAUnB,EAAUoB,EACnC,CAOAM,QAAQzoI,GAAS,OAAOxa,KAAK8mB,MAAQtM,EAAQA,EAAMsM,MAAQ9mB,KAAOiiJ,GAAYjiJ,KAAMwa,GAAO,EAAO,CAclGjT,IAAIiT,EAAO2nI,GAAS,GAAS,OAAO3nI,EAAMsM,MAAQ9mB,KAAOoiJ,GAAOpiJ,KAAMwa,EAAO2nI,GAAQ,EAAO,CAU5FL,YAAY1gG,EAAGygG,GAAa,GACxBC,GAAY9hJ,KAAMohD,EAAGygG,EACzB,CAKIqB,WAAS,OAAO5B,GAAW11I,OAAO5L,KAAKuhJ,SAAW,CAItDxpI,OAAOorI,GACH,IAAIC,EAAiB,GAAIC,EAAiB,GAAIC,EAAmB,GAC7DtG,EAAO,IAAIuG,GAAYvjJ,MAC3BwhE,EAAM,QAASh9D,EAAI,EAAGsvC,EAAM,IAAK,CAC7B,IAAIh7B,EAAOtU,GAAK2+I,EAAO1+I,OAAS,IAAM0+I,EAAO3+I,KAC7C,KAAOsvC,EAAMh7B,GAAQg7B,GAAOh7B,GAAoB,GAAZkkI,EAAKzsH,KAAU,CAC/C,GAAIysH,EAAKx7E,KACL,MAAMA,EACV,IAAIjxC,EAAMrF,KAAK4lC,IAAIksF,EAAKzsH,IAAKzX,EAAOg7B,GACpC0vG,GAAWF,EAAkB/yH,GAAK,GAClC,IAAI2nC,GAAkB,GAAZ8kF,EAAK9kF,KAAY,EAAiB,GAAZ8kF,EAAKyG,IAAWzG,EAAK9kF,IAAM,EAC3DsrF,GAAWJ,EAAgB7yH,EAAK2nC,GAC5BA,EAAM,GACNwrF,GAAUL,EAAgBD,EAAgBpG,EAAKt5H,MACnDs5H,EAAKkD,QAAQ3vH,GACbujB,GAAOvjB,EAEX,IAAI/kB,EAAM23I,EAAO3+I,KACjB,KAAOsvC,EAAMtoC,GAAK,CACd,GAAIwxI,EAAKx7E,KACL,MAAMA,EACV,IAAIjxC,EAAMrF,KAAK4lC,IAAIksF,EAAKzsH,IAAK/kB,EAAMsoC,GACnC0vG,GAAWJ,EAAgB7yH,GAAK,GAChCizH,GAAWF,EAAkB/yH,GAAiB,GAAZysH,EAAK9kF,KAAY,EAAiB,GAAZ8kF,EAAKyG,IAAWzG,EAAK9kF,IAAM,GACnF8kF,EAAKkD,QAAQ3vH,GACbujB,GAAOvjB,GAGf,MAAO,CAAEoY,QAAS,IAAI+5G,GAAUU,EAAgBC,GAC5CM,SAAUrC,GAAW11I,OAAO03I,GACpC,CAIAv3D,SACI,IAAIp7E,EAAQ,GACZ,QAASnM,EAAI,EAAGA,EAAIxE,KAAKuhJ,SAAS98I,OAAQD,GAAK,EAAG,CAC9C,IAAI+rB,EAAMvwB,KAAKuhJ,SAAS/8I,GAAI0zD,EAAMl4D,KAAKuhJ,SAAS/8I,EAAI,GAEhDmM,EAAM/H,KADNsvD,EAAM,EACK3nC,EACC,GAAP2nC,EACM,CAAC3nC,GAED,CAACA,GAAK9V,OAAOza,KAAK2iJ,SAASn+I,GAAK,GAAGunF,UAAS,CAE/D,OAAOp7E,CACX,CAKAxQ,UAAUwoC,EAASlkC,EAAQy5I,GACvB,IAAIqD,EAAW,GAAIoB,EAAW,GAAI7uG,EAAM,EACpC5vB,EAAQ,KACZ,SAASmF,EAAMu6H,GAAQ,GACnB,IAAKA,IAAUrC,EAAS98I,OACpB,OACAqvC,EAAMrvC,GACN++I,GAAWjC,EAAU98I,EAASqvC,GAAK,GACvC,IAAIttC,EAAM,IAAIk8I,GAAUnB,EAAUoB,GAClCz+H,EAAQA,EAAQA,EAAM++H,QAAQz8I,EAAIe,IAAI2c,IAAU1d,EAChD+6I,EAAW,GACXoB,EAAW,GACX7uG,EAAM,CACV,CA6BAinB,OA5BA,SAASA,EAAQ8oF,GACb,GAAI/pI,MAAM2C,QAAQonI,GACd,QAAS34F,KAAO24F,EACZ9oF,EAAQ7P,QAAG,GAEV24F,aAAgBnB,GAAW,CAChC,GAAImB,EAAKp/I,QAAUA,EACf,MAAM,IAAI43I,WAAY,qCAAoCwH,EAAKp/I,oBAAoBA,MACvF4kB,IACAnF,EAAQA,EAAQA,EAAM++H,QAAQY,EAAKt8I,IAAI2c,IAAU2/H,MAEhD,CACD,IAAM9pI,OAAMm5G,KAAKn5G,EAAM6vB,WAAWi6G,EAClC,GAAI9pI,EAAOm5G,GAAMn5G,EAAO,GAAKm5G,EAAKzuH,EAC9B,MAAM,IAAI43I,WAAY,wBAAuBtiI,QAAWm5G,uBAAwBzuH,MACpF,IAAIq/I,GAAWl6G,GAAuC,iBAAVA,GAAqBuyG,GAAK9kI,GAAGuyB,GAAO/4B,MAAMqtI,GAAW8C,KAAiBp3G,GAA1FuyG,GAAKr1H,MACzBi9H,GAASD,GAAQr/I,OACrB,GAAIsV,GAAQm5G,GAAgB,GAAV6wB,GACd,OACAhqI,EAAO+5B,GACPzqB,IACAtP,EAAO+5B,GACP0vG,GAAWjC,EAAUxnI,EAAO+5B,GAAK,GACrC0vG,GAAWjC,EAAUruB,EAAKn5G,EAAMgqI,IAChCL,GAAUf,EAAUpB,EAAUuC,IAC9BhwG,EAAMo/E,EAEd,CACAn4D,CAAQpyB,GACRtf,GAAOnF,GACAA,CACX,CAIA/jB,aAAasE,GACT,OAAO,IAAIi+I,GAAUj+I,EAAS,CAACA,GAAQ,GAAM,GAAI,GACrD,CAKAtE,gBAAgBsiJ,GACZ,IAAK3oI,MAAM2C,QAAQgmI,GACf,MAAM,IAAIpG,WAAW,4CACzB,IAAIkF,EAAW,GAAIoB,EAAW,GAC9B,QAASn+I,EAAI,EAAGA,EAAIi+I,EAAKh+I,OAAQD,IAAK,CAClC,IAAI+wB,EAAOktH,EAAKj+I,GAChB,GAAmB,iBAAR+wB,EACPgsH,EAAS34I,KAAK2sB,GAAM,OAEnB,KAAKzb,MAAM2C,QAAQ8Y,IAA2B,iBAAXA,EAAK,IAAkBA,EAAKqa,KAAK,CAACznC,EAAG3D,IAAMA,GAAiB,iBAAL2D,GAC3F,MAAM,IAAIk0I,WAAW,4CAEpB,GAAmB,GAAf9mH,EAAK9wB,OACV88I,EAAS34I,KAAK2sB,EAAK,GAAI,OAEtB,CACD,KAAOotH,EAASl+I,OAASD,GACrBm+I,EAAS/5I,KAAKuzI,GAAKr1H,OACvB67H,EAASn+I,GAAK23I,GAAK9kI,GAAGke,EAAKxvB,MAAM,IACjCw7I,EAAS34I,KAAK2sB,EAAK,GAAIotH,EAASn+I,GAAGC,OAAM,GAGjD,OAAO,IAAIi+I,GAAUnB,EAAUoB,EACnC,CAIAxiJ,iBAAiBohJ,EAAUoB,GACvB,OAAO,IAAID,GAAUnB,EAAUoB,EACnC,EAEJ,SAASa,GAAWjC,EAAUhxH,EAAK2nC,EAAK8rF,GAAY,GAChD,GAAW,GAAPzzH,GAAY2nC,GAAO,EACnB,OACJ,IAAItkC,EAAO2tH,EAAS98I,OAAS,EACzBmvB,GAAQ,GAAKskC,GAAO,GAAKA,GAAOqpF,EAAS3tH,EAAO,GAChD2tH,EAAS3tH,IAASrD,EACN,GAAPA,GAA8B,GAAlBgxH,EAAS3tH,GAC1B2tH,EAAS3tH,EAAO,IAAMskC,EACjB8rF,GACLzC,EAAS3tH,IAASrD,EAClBgxH,EAAS3tH,EAAO,IAAMskC,GAGtBqpF,EAAS34I,KAAK2nB,EAAK2nC,EAC3B,CACA,SAASwrF,GAAU/pI,EAAQ4nI,EAAUr1I,GACjC,GAAoB,GAAhBA,EAAMzH,OACN,OACJ,IAAI4M,EAASkwI,EAAS98I,OAAS,GAAM,EACrC,GAAI4M,EAAQsI,EAAOlV,OACfkV,EAAOA,EAAOlV,OAAS,GAAKkV,EAAOA,EAAOlV,OAAS,GAAGwV,OAAO/N,OAE5D,CACD,KAAOyN,EAAOlV,OAAS4M,GACnBsI,EAAO/Q,KAAKuzI,GAAKr1H,OACrBnN,EAAO/Q,KAAKsD,EAAK,CAEzB,CACA,SAAS41I,GAAYoB,EAAM9hG,EAAGygG,GAC1B,IAAIc,EAAWO,EAAKP,SACpB,QAASjB,EAAO,EAAGC,EAAO,EAAGn9I,EAAI,EAAGA,EAAI0+I,EAAK3B,SAAS98I,QAAS,CAC3D,IAAI8rB,EAAM2yH,EAAK3B,SAAS/8I,KAAM0zD,EAAMgrF,EAAK3B,SAAS/8I,KAClD,GAAI0zD,EAAM,EACNwpF,GAAQnxH,EACRoxH,GAAQpxH,MAEP,CACD,IAAIgyH,EAAOb,EAAMuC,EAAOtC,EAAMj+H,EAAOy4H,GAAKr1H,MAC1C,KACIy7H,GAAQhyH,EACR0zH,GAAQ/rF,EACJA,GAAOyqF,IACPj/H,EAAOA,EAAKzJ,OAAO0oI,EAAUn+I,EAAI,GAAM,OACvCq9I,GAAcr9I,GAAK0+I,EAAK3B,SAAS98I,QAAUy+I,EAAK3B,SAAS/8I,EAAI,GAAK,IAEtE+rB,EAAM2yH,EAAK3B,SAAS/8I,KACpB0zD,EAAMgrF,EAAK3B,SAAS/8I,KAExB48C,EAAEsgG,EAAMa,EAAMZ,EAAMsC,EAAMvgI,GAC1Bg+H,EAAOa,EACPZ,EAAOsC,GAGnB,CACA,SAAS7B,GAAO8B,EAAMC,EAAMhC,EAAQiC,GAAQ,GAGxC,IAAI7C,EAAW,GAAI33G,EAASw6G,EAAQ,GAAK,KACrCpzH,EAAI,IAAIuyH,GAAYW,GAAOjzH,EAAI,IAAIsyH,GAAYY,GAKnD,QAASxB,GAAW,IAChB,IAAa,GAAT3xH,EAAEknC,MAAsB,GAATjnC,EAAEinC,IAAW,CAE5B,IAAI3nC,EAAMrF,KAAK4lC,IAAI9/B,EAAET,IAAKU,EAAEV,KAC5BizH,GAAWjC,EAAUhxH,GAAK,GAC1BS,EAAEkvH,QAAQ3vH,GACVU,EAAEivH,QAAQ3vH,EAAG,SAERU,EAAEinC,KAAO,IAAMlnC,EAAEknC,IAAM,GAAKyqF,GAAY3xH,EAAExsB,GAAc,GAATwsB,EAAEyyH,MAAaxyH,EAAEV,IAAMS,EAAET,KAAOU,EAAEV,KAAOS,EAAET,MAAQ4xH,IAAU,CAIjH,IAAI5xH,EAAMU,EAAEV,IAEZ,IADAizH,GAAWjC,EAAUtwH,EAAEinC,KAAK,GACrB3nC,GAAK,CACR,IAAI8zH,EAAQn5H,KAAK4lC,IAAI9/B,EAAET,IAAKA,GACxBS,EAAEknC,KAAO,GAAKyqF,EAAW3xH,EAAExsB,GAAKwsB,EAAET,KAAO8zH,IACzCb,GAAWjC,EAAU,EAAGvwH,EAAEknC,KACtBtuB,GACA85G,GAAU95G,EAAQ23G,EAAUvwH,EAAEtN,MAClCi/H,EAAW3xH,EAAExsB,GAEjBwsB,EAAEkvH,QAAQmE,GACV9zH,GAAO8zH,EAEXpzH,EAAEnY,MAAI,WAEDkY,EAAEknC,KAAO,GAyBb,IAAIlnC,EAAEwwC,MAAQvwC,EAAEuwC,KACjB,OAAO53B,EAAS84G,GAAU4B,UAAU/C,EAAU33G,GAAU03G,GAAW11I,OAAO21I,GAG1E,MAAM,IAAI96I,MAAM,gCAA+B,CA7B9B,CAGjB,IAAI8pB,EAAM,EAAG0/E,EAAOj/E,EAAET,IACtB,KAAO0/E,GACH,IAAa,GAATh/E,EAAEinC,IAAW,CACb,IAAImsF,EAAQn5H,KAAK4lC,IAAIm/C,EAAMh/E,EAAEV,KAC7BA,GAAO8zH,EACPp0C,GAAQo0C,EACRpzH,EAAEivH,QAAQmE,EAAK,WAED,GAATpzH,EAAEinC,KAAYjnC,EAAEV,IAAM0/E,GAK3B,MAJAA,GAAQh/E,EAAEV,IACVU,EAAEnY,MAGF,CAGR0qI,GAAWjC,EAAUhxH,EAAKoyH,EAAW3xH,EAAExsB,EAAIwsB,EAAEknC,IAAM,GAC/CtuB,GAAU+4G,EAAW3xH,EAAExsB,GACvBk/I,GAAU95G,EAAQ23G,EAAUvwH,EAAEtN,MAClCi/H,EAAW3xH,EAAExsB,EACbwsB,EAAEkvH,QAAQlvH,EAAET,IAAM0/E,EAAI,CAMyB,CAG3D,CACA,SAASgyC,GAAYiC,EAAMC,EAAMC,GAAQ,GACrC,IAAI7C,EAAW,GACX33G,EAASw6G,EAAQ,GAAK,KACtBpzH,EAAI,IAAIuyH,GAAYW,GAAOjzH,EAAI,IAAIsyH,GAAYY,GACnD,QAASzhI,GAAO,IAAS,CACrB,GAAIsO,EAAEwwC,MAAQvwC,EAAEuwC,KACZ,OAAO53B,EAAS84G,GAAU4B,UAAU/C,EAAU33G,GAAU03G,GAAW11I,OAAO21I,GAEzE,GAAa,GAATvwH,EAAEknC,IACPsrF,GAAWjC,EAAUvwH,EAAET,IAAK,EAAG7N,GAC/BsO,EAAElY,YAAI,GAEQ,GAATmY,EAAEV,KAAaU,EAAEuwC,KAMrB,IAAIxwC,EAAEwwC,MAAQvwC,EAAEuwC,KACjB,MAAM,IAAI/6D,MAAM,iCAEf,CACD,IAAI8pB,EAAMrF,KAAK4lC,IAAI9/B,EAAEuzH,KAAMtzH,EAAEV,KAAMi0H,EAAajD,EAAS98I,OACzD,IAAa,GAATusB,EAAEknC,IAAW,CACb,IAAIusF,GAAgB,GAATxzH,EAAEinC,KAAY,EAAKjnC,EAAEwyH,IAAM,EAAIxyH,EAAEinC,IAC5CsrF,GAAWjC,EAAUhxH,EAAKk0H,EAAM/hI,GAC5BknB,GAAU66G,GACVf,GAAU95G,EAAQ23G,EAAUtwH,EAAEvN,KAAI,MAExB,GAATuN,EAAEinC,KACPsrF,GAAWjC,EAAUvwH,EAAEyyH,IAAM,EAAIzyH,EAAET,IAAKA,EAAK7N,GACzCknB,GACA85G,GAAU95G,EAAQ23G,EAAUvwH,EAAE0zH,QAAQn0H,MAG1CizH,GAAWjC,EAAUvwH,EAAEyyH,IAAM,EAAIzyH,EAAET,IAAKU,EAAEwyH,IAAM,EAAIxyH,EAAEinC,IAAKx1C,GACvDknB,IAAW3Y,EAAEwyH,KACbC,GAAU95G,EAAQ23G,EAAUtwH,EAAEvN,OAEtChB,GAAQsO,EAAEknC,IAAM3nC,GAAOU,EAAEinC,KAAO,GAAKjnC,EAAEV,IAAMA,KAAS7N,GAAQ6+H,EAAS98I,OAAS+/I,GAChFxzH,EAAE2zH,SAASp0H,GACXU,EAAEivH,QAAQ3vH,EAAG,OA5BbizH,GAAWjC,EAAU,EAAGtwH,EAAEinC,IAAKx1C,GAC3BknB,GACA85G,GAAU95G,EAAQ23G,EAAUtwH,EAAEvN,MAClCuN,EAAEnY,MAyBW,CAGzB,CACA,MAAMyqI,GACF1jJ,YAAY2G,GACRxG,KAAKwG,IAAMA,EACXxG,KAAKwE,EAAI,EACTxE,KAAK8Y,MACT,CACAA,OACI,IAAMyoI,YAAavhJ,KAAKwG,IACpBxG,KAAKwE,EAAI+8I,EAAS98I,QAClBzE,KAAKuwB,IAAMgxH,EAASvhJ,KAAKwE,KACzBxE,KAAKk4D,IAAMqpF,EAASvhJ,KAAKwE,OAGzBxE,KAAKuwB,IAAM,EACXvwB,KAAKk4D,KAAM,GAEfl4D,KAAKyjJ,IAAM,CACf,CACIjiF,WAAS,OAAmB,GAAZxhE,KAAKk4D,GAAW,CAChCqsF,WAAS,OAAOvkJ,KAAKk4D,IAAM,EAAIl4D,KAAKuwB,IAAMvwB,KAAKk4D,GAAK,CACpDx0C,WACA,IAAMi/H,YAAa3iJ,KAAKwG,IAAK6K,EAASrR,KAAKwE,EAAI,GAAM,EACrD,OAAO6M,GAASsxI,EAASl+I,OAAS03I,GAAKr1H,MAAQ67H,EAAStxI,EAC5D,CACAqzI,QAAQn0H,GACJ,IAAMoyH,YAAa3iJ,KAAKwG,IAAK6K,EAASrR,KAAKwE,EAAI,GAAM,EACrD,OAAO6M,GAASsxI,EAASl+I,SAAW8rB,EAAM4rH,GAAKr1H,MACzC67H,EAAStxI,GAAOtL,MAAM/F,KAAKyjJ,IAAY,MAAPlzH,OAActiB,EAAYjO,KAAKyjJ,IAAMlzH,EAC/E,CACA2vH,QAAQ3vH,GACAA,GAAOvwB,KAAKuwB,IACZvwB,KAAK8Y,QAEL9Y,KAAKuwB,KAAOA,EACZvwB,KAAKyjJ,KAAOlzH,EAEpB,CACAo0H,SAASp0H,IACW,GAAZvwB,KAAKk4D,IACLl4D,KAAKkgJ,QAAQ3vH,GACRA,GAAOvwB,KAAKk4D,IACjBl4D,KAAK8Y,QAEL9Y,KAAKk4D,KAAO3nC,EACZvwB,KAAKyjJ,KAAOlzH,EAEpB,EASJ,MAAMq0H,GACF/kJ,YAIAka,EAIAm5G,EAAI1lH,GACAxN,KAAK+Z,KAAOA,EACZ/Z,KAAKkzH,GAAKA,EACVlzH,KAAKwN,MAAQA,CACjB,CAKI+0B,aAAW,OAAoB,GAAbviC,KAAKwN,MAAsCxN,KAAKkzH,GAAKlzH,KAAK+Z,IAAM,CAKlFlR,WAAS,OAAoB,GAAb7I,KAAKwN,MAAsCxN,KAAK+Z,KAAO/Z,KAAKkzH,EAAI,CAIhFpsG,YAAU,OAAO9mB,KAAK+Z,MAAQ/Z,KAAKkzH,EAAI,CAOvCovB,YAAU,OAAoB,EAAbtiJ,KAAKwN,OAAwC,EAAkB,GAAbxN,KAAKwN,MAAwC,EAAI,CAAG,CAKvHq3I,gBACA,IAAIC,EAAqB,EAAb9kJ,KAAKwN,MACjB,OAAgB,GAATs3I,EAAa,KAAOA,CAC/B,CAOIC,iBACA,IAAI74I,EAAQlM,KAAKwN,OAAS,EAC1B,OAAgB,UAATtB,OAAiD+B,EAAY/B,CACxE,CAKA3E,IAAIy9I,EAAQ1C,GAAQ,GAChB,IAAIvoI,EAAMm5G,EACV,OAAIlzH,KAAK8mB,MACL/M,EAAOm5G,EAAK8xB,EAAO3C,OAAOriJ,KAAK+Z,KAAMuoI,IAGrCvoI,EAAOirI,EAAO3C,OAAOriJ,KAAK+Z,KAAM,GAChCm5G,EAAK8xB,EAAO3C,OAAOriJ,KAAKkzH,IAAI,IAEzBn5G,GAAQ/Z,KAAK+Z,MAAQm5G,GAAMlzH,KAAKkzH,GAAKlzH,KAAO,IAAI4kJ,GAAe7qI,EAAMm5G,EAAIlzH,KAAKwN,MACzF,CAIAoyI,OAAO7lI,EAAMm5G,EAAKn5G,GACd,GAAIA,GAAQ/Z,KAAKuiC,QAAU2wF,GAAMlzH,KAAKuiC,OAClC,OAAO0iH,GAAgBC,MAAMnrI,EAAMm5G,GACvC,IAAIrqH,EAAOqiB,KAAK0B,IAAI7S,EAAO/Z,KAAKuiC,QAAUrX,KAAK0B,IAAIsmG,EAAKlzH,KAAKuiC,QAAUxoB,EAAOm5G,EAC9E,OAAO+xB,GAAgBC,MAAMllJ,KAAKuiC,OAAQ15B,EAC9C,CAIA8zI,GAAGniI,EAAO2qI,GAAe,GACrB,QAAOnlJ,KAAKuiC,QAAU/nB,EAAM+nB,QAAUviC,KAAK6I,MAAQ2R,EAAM3R,MACnDs8I,GAAiBnlJ,KAAK8mB,OAAS9mB,KAAKsiJ,OAAS9nI,EAAM8nI,MAC7D,CAIAv2D,SAAW,MAAO,CAAExpD,OAAQviC,KAAKuiC,OAAQ15B,KAAM7I,KAAK6I,KAAQ,CAK5D1I,gBAAgBsiJ,GACZ,IAAKA,GAA8B,iBAAfA,EAAKlgH,QAA0C,iBAAbkgH,EAAK55I,KACvD,MAAM,IAAIwzI,WAAW,kDACzB,OAAO4I,GAAgBC,MAAMzC,EAAKlgH,OAAQkgH,EAAK55I,KACnD,CAIA1I,cAAc4Z,EAAMm5G,EAAI1lH,GACpB,OAAO,IAAIo3I,GAAe7qI,EAAMm5G,EAAI1lH,EACxC,EAKJ,MAAMy3I,GACFplJ,YAKAsjJ,EAKAiC,GACIplJ,KAAKmjJ,OAASA,EACdnjJ,KAAKolJ,UAAYA,CACrB,CAKA79I,IAAIy9I,EAAQ1C,GAAQ,GAChB,OAAI0C,EAAOl+H,MACA9mB,KACJilJ,GAAgBr5I,OAAO5L,KAAKmjJ,OAAO57I,IAAIqO,GAAKA,EAAErO,IAAIy9I,EAAQ1C,IAAStiJ,KAAKolJ,UACnF,CAOAzI,GAAGniI,EAAO2qI,GAAe,GACrB,GAAInlJ,KAAKmjJ,OAAO1+I,QAAU+V,EAAM2oI,OAAO1+I,QACnCzE,KAAKolJ,WAAa5qI,EAAM4qI,UACxB,OAAO,EACX,QAAS5gJ,EAAI,EAAGA,EAAIxE,KAAKmjJ,OAAO1+I,OAAQD,IACpC,IAAKxE,KAAKmjJ,OAAO3+I,GAAGm4I,GAAGniI,EAAM2oI,OAAO3+I,GAAI2gJ,GACpC,OAAO,EACf,OAAO,CACX,CAMIE,WAAS,OAAOrlJ,KAAKmjJ,OAAOnjJ,KAAKolJ,UAAY,CAKjDE,WACI,OAA6B,GAAtBtlJ,KAAKmjJ,OAAO1+I,OAAczE,KAAO,IAAIilJ,GAAgB,CAACjlJ,KAAKqlJ,MAAO,EAC7E,CAIAE,SAASL,EAAOG,GAAO,GACnB,OAAOJ,GAAgBr5I,OAAO,CAACs5I,GAAOzqI,OAAOza,KAAKmjJ,QAASkC,EAAO,EAAIrlJ,KAAKolJ,UAAY,EAC3F,CAKAI,aAAaN,EAAOO,EAAQzlJ,KAAKolJ,WAC7B,IAAIjC,EAASnjJ,KAAKmjJ,OAAOp9I,QACzBo9I,SAAOsC,GAASP,EACTD,GAAgBr5I,OAAOu3I,EAAQnjJ,KAAKolJ,UAC/C,CAKAr5D,SACI,MAAO,CAAEo3D,OAAQnjJ,KAAKmjJ,OAAO57I,IAAIqO,GAAKA,EAAEm2E,UAAWs5D,KAAMrlJ,KAAKolJ,UAClE,CAIAjlJ,gBAAgBsiJ,GACZ,IAAKA,IAAS3oI,MAAM2C,QAAQgmI,EAAKU,SAA+B,iBAAbV,EAAK4C,MAAoB5C,EAAK4C,MAAQ5C,EAAKU,OAAO1+I,OACjG,MAAM,IAAI43I,WAAW,mDACzB,OAAO,IAAI4I,GAAgBxC,EAAKU,OAAO57I,IAAKqO,GAAMgvI,GAAec,SAAS9vI,IAAK6sI,EAAK4C,KACxF,CAIAllJ,cAAcoiC,EAAQ15B,EAAO05B,GACzB,OAAO,IAAI0iH,GAAgB,CAACA,GAAgBC,MAAM3iH,EAAQ15B,IAAQ,EACtE,CAKA1I,cAAcgjJ,EAAQiC,EAAY,GAC9B,GAAqB,GAAjBjC,EAAO1+I,OACP,MAAM,IAAI43I,WAAW,wCACzB,QAASvoG,EAAM,EAAGtvC,EAAI,EAAGA,EAAI2+I,EAAO1+I,OAAQD,IAAK,CAC7C,IAAI0gJ,EAAQ/B,EAAO3+I,GACnB,GAAI0gJ,EAAMp+H,MAAQo+H,EAAMnrI,MAAQ+5B,EAAMoxG,EAAMnrI,KAAO+5B,EAC/C,OAAOmxG,GAAgBU,WAAWxC,EAAOp9I,QAASq/I,GACtDtxG,EAAMoxG,EAAMhyB,GAEhB,OAAO,IAAI+xB,GAAgB9B,EAAQiC,EACvC,CAKAjlJ,cAAc2zC,EAAKwuG,EAAQ,EAAGuC,EAAWE,GACrC,OAAOH,GAAeh5I,OAAOkoC,EAAKA,GAAe,GAATwuG,EAAa,EAAIA,EAAQ,EAAI,EAAgC,KACnF,MAAbuC,EAAoB,EAAI35H,KAAK4lC,IAAI,EAAG+zF,KACnCE,GAA4D,WAA0C,EAChH,CAIA5kJ,aAAaoiC,EAAQ15B,EAAMk8I,EAAYF,GACnC,IAAIr3I,GAAUu3I,GAA4D,WAA0C,GAClG,MAAbF,EAAoB,EAAI35H,KAAK4lC,IAAI,EAAG+zF,IACzC,OAAOh8I,EAAO05B,EAASqiH,GAAeh5I,OAAO/C,EAAM05B,EAAQ,GAA8D/0B,GACnHo3I,GAAeh5I,OAAO22B,EAAQ15B,GAAOA,EAAO05B,EAAS,EAAgC,GAAK/0B,EACpG,CAIArN,kBAAkBgjJ,EAAQiC,EAAY,GAClC,IAAIC,EAAOlC,EAAOiC,GAClBjC,EAAOntH,KAAK,CAAChF,EAAGC,IAAMD,EAAEjX,KAAOkX,EAAElX,MACjCqrI,EAAYjC,EAAOjyI,QAAQm0I,GAC3B,QAAS7gJ,EAAI,EAAGA,EAAI2+I,EAAO1+I,OAAQD,IAAK,CACpC,IAAI0gJ,EAAQ/B,EAAO3+I,GAAI8hG,EAAO68C,EAAO3+I,EAAI,GACzC,GAAI0gJ,EAAMp+H,MAAQo+H,EAAMnrI,MAAQusF,EAAK4sB,GAAKgyB,EAAMnrI,KAAOusF,EAAK4sB,GAAI,CAC5D,IAAIn5G,EAAOusF,EAAKvsF,KAAMm5G,EAAKhoG,KAAKC,IAAI+5H,EAAMhyB,GAAI5sB,EAAK4sB,IAC/C1uH,GAAK4gJ,GACLA,IACJjC,EAAOhyI,SAAS3M,EAAG,EAAG0gJ,EAAM3iH,OAAS2iH,EAAMr8I,KAAOo8I,GAAgBC,MAAMhyB,EAAIn5G,GAAQkrI,GAAgBC,MAAMnrI,EAAMm5G,GAAG,EAG3H,OAAO,IAAI+xB,GAAgB9B,EAAQiC,EACvC,EAEJ,SAASQ,GAAeC,EAAWC,GAC/B,QAASZ,KAASW,EAAU1C,OACxB,GAAI+B,EAAMhyB,GAAK4yB,EACX,MAAM,IAAIzJ,WAAW,uCACjC,CAEA,IAAI0J,GAAS,EAcb,MAAMC,GACFnmJ,YAIAomJ,EAIAC,EAIA5lH,EAAS6lH,EAAUC,GACfpmJ,KAAKimJ,QAAUA,EACfjmJ,KAAKkmJ,aAAeA,EACpBlmJ,KAAKsgC,QAAUA,EACftgC,KAAKmmJ,SAAWA,EAIhBnmJ,KAAKkL,GAAK66I,KACV/lJ,KAAKy3C,QAAUwuG,EAAQ,IACvBjmJ,KAAKqmJ,WAA+B,mBAAXD,EAAwBA,EAAQpmJ,MAAQomJ,CACrE,CAKIE,aAAW,OAAOtmJ,IAAM,CAI5BG,cAAcuvC,EAAS,CAAC,GACpB,OAAO,IAAIs2G,GAAMt2G,EAAOu2G,UAAaj1H,GAAMA,GAAI0e,EAAOw2G,gBAAkBl1H,EAAGC,IAAMD,IAAMC,GAAIye,EAAOpP,UAAaoP,EAAOu2G,QAAsB,CAACj1H,EAAGC,IAAMD,IAAMC,EAA5Bs1H,MAAkC72G,EAAOvvC,OAAQuvC,EAAO02G,QAC5L,CAIA/uI,GAAGnL,GACC,OAAO,IAAIs6I,GAAc,GAAIxmJ,KAAM,EAAyBkM,EAChE,CAUAu6I,QAAQ/hJ,EAAMV,GACV,GAAIhE,KAAKmmJ,SACL,MAAM,IAAI1/I,MAAM,gCACpB,OAAO,IAAI+/I,GAAc9hJ,EAAM1E,KAAM,EAAyBgE,EAClE,CAKA0iJ,SAAShiJ,EAAMV,GACX,GAAIhE,KAAKmmJ,SACL,MAAM,IAAI1/I,MAAM,gCACpB,OAAO,IAAI+/I,GAAc9hJ,EAAM1E,KAAM,EAAwBgE,EACjE,CACA+V,KAAK4sI,EAAO3iJ,GACR,OAAKA,IACDA,EAAMqwB,GAAKA,GACRr0B,KAAKymJ,QAAQ,CAACE,GAAQj+H,GAAS1kB,EAAI0kB,EAAMi+H,MAAMA,IAC1D,EAEJ,SAASJ,GAAUv1H,EAAGC,GAClB,OAAOD,GAAKC,GAAKD,EAAEvsB,QAAUwsB,EAAExsB,QAAUusB,EAAEkF,MAAM,CAAC/tB,EAAG3D,IAAM2D,IAAM8oB,EAAEzsB,GACvE,CACA,MAAMgiJ,GACF3mJ,YAAY+mJ,EAAcC,EAAOl8I,EAAMuB,GACnClM,KAAK4mJ,aAAeA,EACpB5mJ,KAAK6mJ,MAAQA,EACb7mJ,KAAK2K,KAAOA,EACZ3K,KAAKkM,MAAQA,EACblM,KAAKkL,GAAK66I,IACd,CACAe,YAAYC,GACR,IAAIC,EACJ,IAAIC,EAASjnJ,KAAKkM,MACdo0B,EAAUtgC,KAAK6mJ,MAAMX,aACrBh7I,EAAKlL,KAAKkL,GAAI6R,EAAMgqI,EAAU77I,IAAO,EAAGrG,EAAqB,GAAb7E,KAAK2K,KACrDu8I,GAAS,EAAOC,GAAS,EAAOC,EAAW,GAC/C,QAASC,KAAOrnJ,KAAK4mJ,aACN,OAAPS,EACAH,GAAS,EACG,aAAPG,EACLF,GAAS,EAC6D,GAAlC,QAA5BH,EAAKD,EAAUM,EAAIn8I,WAAwB,IAAP87I,EAAgBA,EAAK,IACjEI,EAASx+I,KAAKm+I,EAAUM,EAAIn8I,KAEpC,MAAO,CACHU,OAAO8c,IACHA,EAAM/O,OAAOoD,GAAOkqI,EAAOv+H,GACpB,GAEXpO,OAAOoO,EAAO4+H,GACV,GAAKJ,GAAUI,EAAGC,YAAgBJ,IAAWG,EAAGC,YAAcD,EAAGzB,YAAe2B,GAAU9+H,EAAO0+H,GAAW,CACxG,IAAIK,GAASR,EAAOv+H,GACpB,GAAI7jB,GAAS6iJ,GAAaD,GAAQ/+H,EAAM/O,OAAOoD,GAAMujB,IAAYA,EAAQmnH,GAAQ/+H,EAAM/O,OAAOoD,IAC1F2L,SAAM/O,OAAOoD,GAAO0qI,GACb,EAGf,OAAO,CACX,EACAE,YAAa,CAACj/H,EAAOk/H,KACjB,IAAIH,GAAQI,GAAUD,EAASl4G,OAAOo4G,QAAQ58I,GAC9C,GAAe,MAAX28I,GAAiB,CACjB,IAAIE,GAASC,GAAQJ,EAAUC,IAC/B,GAAI7nJ,KAAK4mJ,aAAa1wH,MAAMmxH,IACjBA,cAAerB,GAAQ4B,EAASf,MAAMQ,MAAS3+H,EAAMm+H,MAAMQ,MAC9DA,cAAeY,KAAaL,EAASjB,MAAMU,IAAK,IAAU3+H,EAAMi+H,MAAMU,IAAK,MAC5ExiJ,EAAQ6iJ,GAAaD,GAASR,EAAOv+H,GAAQq/H,GAAQznH,GAAWA,EAAQmnH,GAASR,EAAOv+H,GAAQq/H,KACnGr/H,SAAM/O,OAAOoD,GAAOgrI,GACb,OAIXN,GAASR,EAAOv+H,GAEpBA,SAAM/O,OAAOoD,GAAO0qI,GACb,GAGnB,EAEJ,SAASC,GAAa12H,EAAGC,EAAGqP,GACxB,GAAItP,EAAEvsB,QAAUwsB,EAAExsB,OACd,OAAO,EACX,QAASD,EAAI,EAAGA,EAAIwsB,EAAEvsB,OAAQD,IAC1B,IAAK87B,EAAQtP,EAAExsB,GAAIysB,EAAEzsB,IACjB,OAAO,EACf,OAAO,CACX,CACA,SAASgjJ,GAAU9+H,EAAOw/H,GACtB,IAAIC,GAAU,EACd,QAASC,KAAQF,EACiB,EAA1BG,GAAW3/H,EAAO0/H,KAClBD,GAAU,GAClB,OAAOA,CACX,CACA,SAASG,GAAiBvB,EAAWF,EAAO9xI,GACxC,IAAIwzI,EAAgBxzI,EAAUxN,IAAIkyB,GAAKstH,EAAUttH,EAAEvuB,KAC/Cs9I,EAAgBzzI,EAAUxN,IAAIkyB,GAAKA,EAAE9uB,MACrCs7D,EAAUsiF,EAAcxwI,OAAO0hB,KAAW,EAAJA,IACtC1c,EAAMgqI,EAAUF,EAAM37I,KAAO,EACjC,SAASlH,EAAI0kB,GACT,IAAI/O,EAAS,GACb,QAASnV,EAAI,EAAGA,EAAI+jJ,EAAc9jJ,OAAQD,IAAK,CAC3C,IAAI0H,EAAQ87I,GAAQt/H,EAAO6/H,EAAc/jJ,IACzC,GAAwB,GAApBgkJ,EAAchkJ,GACd,QAAS+X,KAAOrQ,EACZyN,EAAO/Q,KAAK2T,QAEhB5C,EAAO/Q,KAAKsD,EAAK,CAEzB,OAAO26I,EAAMZ,QAAQtsI,EACzB,CACA,MAAO,CACH/N,OAAO8c,GACH,QAAS0/H,KAAQG,EACbF,GAAW3/H,EAAO0/H,GACtB1/H,SAAM/O,OAAOoD,GAAO/Y,EAAI0kB,GACjB,CACX,EACApO,OAAOoO,EAAO4+H,GACV,IAAKE,GAAU9+H,EAAOu9C,GAClB,OAAO,EACX,IAAI/5D,EAAQlI,EAAI0kB,GAChB,OAAIm+H,EAAMvmH,QAAQp0B,EAAOwc,EAAM/O,OAAOoD,IAC3B,GACX2L,EAAM/O,OAAOoD,GAAO7Q,EACb,EACX,EACAy7I,YAAYj/H,EAAOk/H,GACf,IAAIa,EAAajB,GAAU9+H,EAAO6/H,GAC9BG,EAAed,EAASl4G,OAAOi5G,OAAO9B,EAAM37I,IAAK81E,EAAW4mE,EAASf,MAAMA,GAC/E,GAAI6B,IAAiBD,GAAclC,GAAUxxI,EAAW2zI,GACpDhgI,SAAM/O,OAAOoD,GAAOikE,EACb,EAEX,IAAI90E,GAAQlI,EAAI0kB,GAChB,OAAIm+H,EAAMvmH,QAAQp0B,GAAO80E,IACrBt4D,EAAM/O,OAAOoD,GAAOikE,EACb,IAEXt4D,EAAM/O,OAAOoD,GAAO7Q,GACb,EACX,EAER,CACA,MAAM08I,GAAyB5C,GAAM6C,OAAO,CAAE1oJ,QAAQ,IAKtD,MAAM8nJ,GACFpoJ,YAIAqL,EAAI49I,EAASC,EAASC,EAItBnF,GACI7jJ,KAAKkL,GAAKA,EACVlL,KAAK8oJ,QAAUA,EACf9oJ,KAAK+oJ,QAAUA,EACf/oJ,KAAKgpJ,SAAWA,EAChBhpJ,KAAK6jJ,KAAOA,EAIZ7jJ,KAAKipJ,cAAWh7I,CACpB,CAIA9N,cAAcuvC,GACV,IAAIi3G,EAAQ,IAAIsB,GAAWlC,KAAUr2G,EAAO9jC,OAAQ8jC,EAAOp1B,OAAQo1B,EAAOpP,WAAatP,EAAGC,IAAMD,IAAMC,GAAIye,GAC1G,OAAIA,EAAOhsC,UACPijJ,EAAMsC,SAAWv5G,EAAOhsC,QAAQijJ,IAC7BA,CACX,CACA/6I,OAAO8c,GAEH,OADWA,EAAMm+H,MAAM+B,IAAWhpH,KAAKp7B,GAAKA,EAAEmiJ,OAAS3mJ,OACG4L,QAAW5L,KAAK8oJ,SAASpgI,EACvF,CAIAwgI,KAAKnC,GACD,IAAIhqI,EAAMgqI,EAAU/mJ,KAAKkL,KAAO,EAChC,MAAO,CACHU,OAAS8c,IACLA,EAAM/O,OAAOoD,GAAO/c,KAAK4L,OAAO8c,GACzB,GAEXpO,OAAQ,CAACoO,EAAO4+H,KACZ,IAAIS,EAASr/H,EAAM/O,OAAOoD,GACtB7Q,EAAQlM,KAAK+oJ,QAAQhB,EAAQT,GACjC,OAAItnJ,KAAKgpJ,SAASjB,EAAQ77I,GACf,GACXwc,EAAM/O,OAAOoD,GAAO7Q,EACb,IAEXy7I,YAAa,CAACj/H,EAAOk/H,IACuB,MAApCA,EAASl4G,OAAOo4G,QAAQ9nJ,KAAKkL,KAC7Bwd,EAAM/O,OAAOoD,GAAO6qI,EAASjB,MAAM3mJ,MAC5B,IAEX0oB,EAAM/O,OAAOoD,GAAO/c,KAAK4L,OAAO8c,GACzB,GAGnB,CAMA7O,KAAKjO,GACD,MAAO,CAAC5L,KAAM4oJ,GAAUvxI,GAAG,CAAEsvI,MAAO3mJ,KAAM4L,WAC9C,CAMIu9I,gBAAc,OAAOnpJ,IAAM,EAEnC,MAAMopJ,GAAQ,CAAEC,OAAQ,EAAGC,IAAK,EAAG7xG,QAAS,EAAG8xG,KAAM,EAAGC,QAAS,GACjE,SAASC,GAAKv9I,GACV,OAAQw9I,GAAQ,IAAIC,GAAcD,EAAKx9I,EAC3C,CAWA,MAAM09I,GAAO,CAKTJ,QAAsBC,GAAKL,GAAMI,SAKjCD,KAAmBE,GAAKL,GAAMG,MAK9B9xG,QAAsBgyG,GAAKL,GAAM3xG,SAIjC6xG,IAAkBG,GAAKL,GAAME,KAK7BD,OAAqBI,GAAKL,GAAMC,SAEpC,MAAMM,GACF9pJ,YAAYw9I,EAAOoM,GACfzpJ,KAAKq9I,MAAQA,EACbr9I,KAAKypJ,KAAOA,CAChB,EASJ,MAAMI,GAKFxyI,GAAGqyI,GAAO,OAAO,IAAII,GAAoB9pJ,KAAM0pJ,EAAM,CAKrD/B,YAAYn7I,GACR,OAAOq9I,GAAYlC,YAAYtwI,GAAG,CAAE0yI,YAAa/pJ,KAAMmpJ,UAAW38I,GACtE,CAKAxI,IAAI0kB,GACA,OAAOA,EAAMgnB,OAAOs6G,aAAahmJ,IAAIhE,KACzC,EAEJ,MAAM8pJ,GACFjqJ,YAAYkqJ,EAAa1M,GACrBr9I,KAAK+pJ,YAAcA,EACnB/pJ,KAAKq9I,MAAQA,CACjB,EAEJ,MAAM4M,GACFpqJ,YAAY6a,EAAMsvI,EAAcE,EAAcpC,EAASqC,EAAcxB,GAQjE,IAPA3oJ,KAAK0a,KAAOA,EACZ1a,KAAKgqJ,aAAeA,EACpBhqJ,KAAKkqJ,aAAeA,EACpBlqJ,KAAK8nJ,QAAUA,EACf9nJ,KAAKmqJ,aAAeA,EACpBnqJ,KAAK2oJ,OAASA,EACd3oJ,KAAKoqJ,eAAiB,GACfpqJ,KAAKoqJ,eAAe3lJ,OAASylJ,EAAazlJ,QAC7CzE,KAAKoqJ,eAAexhJ,KAAK,EACjC,CACAyhJ,YAAYxD,GACR,IAAIuB,EAAOpoJ,KAAK8nJ,QAAQjB,EAAM37I,IAC9B,OAAe,MAARk9I,EAAevB,EAAMpvG,QAAUz3C,KAAKmqJ,aAAa/B,GAAQ,EACpE,CACAjoJ,eAAeua,EAAMsvI,EAAcpC,GAC/B,IAAI0C,EAAS,GACT3B,EAASh9I,OAAOC,OAAO,MACvB2+I,EAAkB,IAAI7kJ,IAC1B,QAASgkJ,KA8CjB,SAASvzH,GAAQgzH,EAAWa,EAAcO,GACtC,IAAIj5I,EAAS,CAAC,GAAI,GAAI,GAAI,GAAI,IAC1Bk5I,EAAO,IAAI9kJ,IA4Cf23I,OA3CA,SAASA,EAAMqM,EAAKD,GAChB,IAAIgB,EAAQD,EAAKxmJ,IAAI0lJ,GACrB,GAAa,MAATe,EAAe,CACf,GAAIA,GAAShB,EACT,OACJ,IAAI/yF,EAAQplD,EAAOm5I,GAAOv5I,QAAQw4I,GAC9BhzF,GAAQ,GACRplD,EAAOm5I,GAAOt5I,OAAOulD,EAAO,GAC5BgzF,aAAeI,IACfS,EAAgB9iJ,OAAOiiJ,EAAIK,YAAW,CAG9C,GADAS,EAAKhkJ,IAAIkjJ,EAAKD,GACV3vI,MAAM2C,QAAQitI,GACd,QAASvhJ,KAAKuhJ,EACVrM,EAAMl1I,EAAGshJ,QAAI,GAEZC,aAAeI,GAAqB,CACzC,GAAIS,EAAgB9wI,IAAIiwI,EAAIK,aACxB,MAAM,IAAI1N,WAAY,8CAC1B,IAAI7vI,EAAUw9I,EAAahmJ,IAAI0lJ,EAAIK,cAAgBL,EAAIrM,MACvDkN,EAAgB/jJ,IAAIkjJ,EAAIK,YAAav9I,GACrC6wI,EAAM7wI,EAASi9I,EAAI,SAEdC,aAAeC,GACpBtM,EAAMqM,EAAIrM,MAAOqM,EAAID,WAAI,GAEpBC,aAAezB,GACpB32I,EAAOm4I,GAAM7gJ,KAAK8gJ,GACdA,EAAIT,UACJ5L,EAAMqM,EAAIT,SAAUQ,QAAI,GAEvBC,aAAelD,GACpBl1I,EAAOm4I,GAAM7gJ,KAAK8gJ,GACdA,EAAI7C,MAAMR,YACVhJ,EAAMqM,EAAI7C,MAAMR,WAAY+C,GAAM3xG,aAErC,CACD,IAAIjrC,EAAUk9I,EAAIP,UAClB,IAAK38I,EACD,MAAM,IAAI/F,MAAO,kDAAiDijJ,sHACtErM,EAAM7wI,EAASi9I,EAAI,CAE3B,CACApM,CAAM8L,EAAWC,GAAM3xG,SAChBnmC,EAAOsN,OAAO,CAACoS,EAAGC,IAAMD,EAAEvW,OAAOwW,GAC5C,CA9FwBkF,CAAQzb,EAAMsvI,EAAcO,GACpCb,aAAezB,GACfqC,EAAO1hJ,KAAK8gJ,IAEXf,EAAOe,EAAI7C,MAAM37I,MAAQy9I,EAAOe,EAAI7C,MAAM37I,IAAM,KAAKtC,KAAK8gJ,GAEnE,IAAI5B,EAAUn8I,OAAOC,OAAO,MACxBu+I,EAAe,GACfD,EAAe,GACnB,QAASvD,KAAS2D,EACdxC,EAAQnB,EAAMz7I,IAAMg/I,EAAazlJ,QAAU,EAC3CylJ,EAAathJ,KAAKooB,IAAK21H,EAAMuC,KAAKl4H,KAEtC,IAAI05H,EAAgE9C,GAASl4G,OAAOi5G,OACpF,QAASz9I,KAAMy9I,EAAQ,CACnB,IAAI5zI,GAAY4zI,EAAOz9I,GAAK27I,GAAQ9xI,GAAU,GAAG8xI,MAC7C6B,GAAegC,GAAaA,EAAUx/I,IAAO,GACjD,GAAI6J,GAAUmhB,MAAMuD,IAAe,GAAVA,GAAE9uB,MAEvB,GADAm9I,EAAQjB,GAAM37I,IAAOi/I,EAAa1lJ,QAAU,EAAK,EAC7C8hJ,GAAUmC,GAAc3zI,IACxBo1I,EAAavhJ,KAAKg/I,EAASf,MAAMA,SAEhC,CACD,IAAI36I,GAAQ26I,GAAMZ,QAAQlxI,GAAUxN,IAAIkyB,IAAKA,GAAEvtB,QAC/Ci+I,EAAavhJ,KAAKg/I,GAAYf,GAAMvmH,QAAQp0B,GAAO07I,EAASf,MAAMA,KAAUe,EAASf,MAAMA,IAAS36I,GAAK,KAG5G,CACD,QAASutB,MAAK1kB,GACI,GAAV0kB,GAAE9uB,MACFm9I,EAAQruH,GAAEvuB,IAAOi/I,EAAa1lJ,QAAU,EAAK,EAC7C0lJ,EAAavhJ,KAAK6wB,GAAEvtB,SAGpB47I,EAAQruH,GAAEvuB,IAAMg/I,EAAazlJ,QAAU,EACvCylJ,EAAathJ,KAAKooB,IAAKyI,GAAEqtH,YAAY91H,MAG7C82H,EAAQjB,GAAM37I,IAAMg/I,EAAazlJ,QAAU,EAC3CylJ,EAAathJ,KAAKooB,IAAKs3H,GAAiBt3H,GAAG61H,GAAO9xI,IAAU,EAGpE,IAAIkxD,EAAUikF,EAAa3iJ,IAAI65C,GAAKA,EAAE0mG,IACtC,OAAO,IAAImC,GAAcvvI,EAAM6vI,EAAiBtkF,EAAS6hF,EAASqC,EAAcxB,EACpF,EAmDJ,SAASN,GAAW3/H,EAAO0/H,GACvB,GAAW,EAAPA,EACA,OAAO,EACX,IAAIrrI,EAAMqrI,GAAQ,EACd5oI,EAASkJ,EAAMlJ,OAAOzC,GAC1B,GAAc,GAAVyC,EACA,MAAM,IAAI/Y,MAAM,kDACpB,GAAa,EAAT+Y,EACA,OAAOA,EACXkJ,EAAMlJ,OAAOzC,GAAO,EACpB,IAAIorI,EAAUz/H,EAAMiiI,YAAYjiI,EAAOA,EAAMgnB,OAAOw6G,aAAantI,IACjE,OAAO2L,EAAMlJ,OAAOzC,GAAO,EAA8BorI,CAC7D,CACA,SAASH,GAAQt/H,EAAO0/H,GACpB,OAAc,EAAPA,EAAW1/H,EAAMgnB,OAAOy6G,aAAa/B,GAAQ,GAAK1/H,EAAM/O,OAAOyuI,GAAQ,EAClF,CAEA,MAAMwC,GAA4B5E,GAAM6C,SAClCgC,GAAuC7E,GAAM6C,OAAO,CACtD5C,QAAStsI,GAAUA,EAAOi2B,KAAKr0B,GAAKA,GACpCpb,QAAQ,IAEN2qJ,GAA6B9E,GAAM6C,OAAO,CAC5C5C,QAAStsI,GAAUA,EAAOlV,OAASkV,EAAO,QAAK1L,EAC/C9N,QAAQ,IAEN4qJ,GAA4B/E,GAAM6C,SAClCmC,GAAiChF,GAAM6C,SACvCoC,GAAmCjF,GAAM6C,SACzCqC,GAAwBlF,GAAM6C,OAAO,CACvC5C,QAAStsI,KAAUA,EAAOlV,QAASkV,EAAO,KAY9C,MAAMwxI,GAIFtrJ,YAIA8K,EAIAuB,GACIlM,KAAK2K,KAAOA,EACZ3K,KAAKkM,MAAQA,CACjB,CAIA/L,gBAAkB,OAAO,IAAIirJ,EAAkB,EAKnD,MAAMA,GAIF/zI,GAAGnL,GAAS,OAAO,IAAIi/I,GAAWnrJ,KAAMkM,EAAQ,EAMpD,MAAMm/I,GAIFxrJ,YAQA0H,GACIvH,KAAKuH,IAAMA,CACf,CAKA8P,GAAGnL,GAAS,OAAO,IAAIo/I,GAAYtrJ,KAAMkM,EAAQ,EAErD,IAOMo/I,GAAW,MAAjB,MAAMA,EAIFzrJ,YAIA8K,EAIAuB,GACIlM,KAAK2K,KAAOA,EACZ3K,KAAKkM,MAAQA,CACjB,CAKA3E,IAAIgkJ,GACA,IAAIC,EAASxrJ,KAAK2K,KAAKpD,IAAIvH,KAAKkM,MAAOq/I,GACvC,YAAkBt9I,IAAXu9I,OAAuBv9I,EAAYu9I,GAAUxrJ,KAAKkM,MAAQlM,KAAO,IAAIsrJ,EAAYtrJ,KAAK2K,KAAM6gJ,EACvG,CAKAriE,GAAGx+E,GAAQ,OAAO3K,KAAK2K,MAAQA,CAAM,CAQrCxK,cAAc0jJ,EAAO,CAAC,GAClB,OAAO,IAAIwH,GAAgBxH,EAAKt8I,MAAQgU,GAAKA,GACjD,CAIApb,kBAAkBsrJ,EAASF,GACvB,IAAKE,EAAQhnJ,OACT,OAAOgnJ,EACX,IAAIn6I,EAAS,GACb,QAASo6I,KAAUD,EAAS,CACxB,IAAID,EAASE,EAAOnkJ,IAAIgkJ,GACpBC,GACAl6I,EAAO1I,KAAK4iJ,EAAM,CAE1B,OAAOl6I,CACX,EASJg6I,SAAY3D,YAA2B2D,EAAYzC,SAInDyC,EAAYK,aAA4BL,EAAYzC,SAjE9CyC,CAAW,KA2EXM,GAAW,MAAjB,MAAMA,EACF/rJ,YAIAgsJ,EAIAljH,EAKAk9G,EAIA4F,EAIAK,EAKAC,GACI/rJ,KAAK6rJ,WAAaA,EAClB7rJ,KAAK2oC,QAAUA,EACf3oC,KAAK6lJ,UAAYA,EACjB7lJ,KAAKyrJ,QAAUA,EACfzrJ,KAAK8rJ,YAAcA,EACnB9rJ,KAAK+rJ,eAAiBA,EAItB/rJ,KAAK2G,KAAO,KAIZ3G,KAAKijF,OAAS,KACV4iE,GACAD,GAAeC,EAAWl9G,EAAQ64G,WACjCsK,EAAYl8G,KAAM5e,GAAMA,EAAErmB,MAAQihJ,EAAY5gI,QAC/ChrB,KAAK8rJ,YAAcA,EAAYrxI,OAAOmxI,EAAY5gI,KAAK3T,GAAG0R,KAAKD,QACvE,CAIA3oB,cAAc0rJ,EAAYljH,EAASk9G,EAAW4F,EAASK,EAAaC,GAChE,OAAO,IAAIH,EAAYC,EAAYljH,EAASk9G,EAAW4F,EAASK,EAAaC,EACjF,CASIC,aACA,OAAOhsJ,KAAK2G,OAAS3G,KAAK2G,KAAO3G,KAAK2oC,QAAQ/X,MAAM5wB,KAAK6rJ,WAAW3qJ,KACxE,CAOI+qJ,mBACA,OAAOjsJ,KAAK6lJ,WAAa7lJ,KAAK6rJ,WAAWhG,UAAUt+I,IAAIvH,KAAK2oC,QAChE,CAOIjgB,YACA,OAAK1oB,KAAKijF,QACNjjF,KAAK6rJ,WAAWK,iBAAiBlsJ,MAC9BA,KAAKijF,MAChB,CAIAkpE,WAAWxhJ,GACP,QAASyhJ,KAAOpsJ,KAAK8rJ,YACjB,GAAIM,EAAIzhJ,MAAQA,EACZ,OAAOyhJ,EAAIlgJ,KAEvB,CAIIq7I,iBAAe,OAAQvnJ,KAAK2oC,QAAQ7hB,KAAO,CAO3CulI,mBAAiB,OAAOrsJ,KAAK6rJ,WAAWn8G,QAAU1vC,KAAK0oB,MAAMgnB,MAAQ,CAQzE48G,YAAYviJ,GACR,IAAI5B,EAAInI,KAAKmsJ,WAAWP,EAAYW,WACpC,SAAUpkJ,KAAMA,GAAK4B,GAAS5B,EAAE1D,OAASsF,EAAMtF,QAAU0D,EAAEpC,MAAM,EAAGgE,EAAMtF,SAAWsF,GAA4B,KAAnB5B,EAAE4B,EAAMtF,SAC1G,EAMJmnJ,SAAY5gI,KAAoBmgI,GAAWtC,SA2B3C+C,EAAYW,UAAyBpB,GAAWtC,SAKhD+C,EAAYY,aAA4BrB,GAAWtC,SAOnD+C,EAAYa,OAAsBtB,GAAWtC,SA/JvC+C,CAAW,KAgKjB,SAASc,GAAW17H,EAAGC,GACnB,IAAI3f,EAAS,GACb,QAASktI,EAAK,EAAGC,EAAK,IAAK,CACvB,IAAI1kI,EAAMm5G,EACV,GAAIsrB,EAAKxtH,EAAEvsB,SAAWg6I,GAAMxtH,EAAExsB,QAAUwsB,EAAEwtH,IAAOztH,EAAEwtH,IAC/CzkI,EAAOiX,EAAEwtH,KACTtrB,EAAKliG,EAAEwtH,SAAI,MAENC,EAAKxtH,EAAExsB,QAKZ,OAAO6M,EAJPyI,EAAOkX,EAAEwtH,KACTvrB,EAAKjiG,EAAEwtH,IAGAntI,EACNA,EAAO7M,QAAU6M,EAAOA,EAAO7M,OAAS,GAAKsV,EAC9CzI,EAAO1I,KAAKmR,EAAMm5G,GACb5hH,EAAOA,EAAO7M,OAAS,GAAKyuH,IACjC5hH,EAAOA,EAAO7M,OAAS,GAAKyuH,GAExC,CACA,SAASy5B,GAAiB37H,EAAGC,EAAG27H,GAC5B,IAAI5F,EACJ,IAAI6F,EAASC,EAASnkH,EACtB,OAAIikH,GACAC,EAAU57H,EAAE0X,QACZmkH,EAAUpK,GAAU57H,MAAMmK,EAAE0X,QAAQlkC,QACpCkkC,EAAU3X,EAAE2X,QAAQs6G,QAAQhyH,EAAE0X,WAG9BkkH,EAAU57H,EAAE0X,QAAQphC,IAAIypB,EAAE2X,SAC1BmkH,EAAU97H,EAAE2X,QAAQu5G,QAAQjxH,EAAE0X,SAAS,GACvCA,EAAU3X,EAAE2X,QAAQs6G,QAAQ4J,IAEzB,CACHlkH,UACAk9G,UAAW50H,EAAE40H,UAAY50H,EAAE40H,UAAUt+I,IAAIulJ,GAAkC,QAAtB9F,EAAKh2H,EAAE60H,iBAA8B,IAAPmB,OAAgB,EAASA,EAAGz/I,IAAIslJ,GACnHpB,QAASH,GAAYyB,WAAW/7H,EAAEy6H,QAASoB,GAASpyI,OAAO6wI,GAAYyB,WAAW97H,EAAEw6H,QAASqB,IAC7FhB,YAAa96H,EAAE86H,YAAYrnJ,OAASusB,EAAE86H,YAAYrxI,OAAOwW,EAAE66H,aAAe76H,EAAE66H,YAC5EC,eAAgB/6H,EAAE+6H,gBAAkB96H,EAAE86H,eAE9C,CACA,SAASiB,GAAwBtkI,EAAOm7H,EAAMoJ,GAC1C,IAAIC,EAAMrJ,EAAKgC,UAAWiG,EAAcqB,GAAQtJ,EAAKiI,aACrD,OAAIjI,EAAK0I,YACLT,EAAcA,EAAYrxI,OAAOmxI,GAAYW,UAAUl1I,GAAGwsI,EAAK0I,aAC5D,CACH5jH,QAASk7G,EAAKl7G,mBAAmB+5G,GAAYmB,EAAKl7G,QAC5C+5G,GAAUrrI,GAAGwsI,EAAKl7G,SAAW,GAAIskH,EAASvkI,EAAMm+H,MAAMiE,KAC5DjF,UAAWqH,IAAQA,aAAejI,GAAkBiI,EAAMjI,GAAgBmI,OAAOF,EAAI3qH,OAAQ2qH,EAAIrkJ,OACjG4iJ,QAAS0B,GAAQtJ,EAAK4H,SACtBK,cACAC,iBAAkBlI,EAAKkI,eAE/B,CACA,SAASsB,GAAmB3kI,EAAO4kI,EAAOv1I,GACtC,IAAIpO,EAAIqjJ,GAAwBtkI,EAAO4kI,EAAM7oJ,OAAS6oJ,EAAM,GAAK,CAAC,EAAG5kI,EAAMxnB,IAAIuD,QAC3E6oJ,EAAM7oJ,SAA8B,IAApB6oJ,EAAM,GAAGv1I,SACzBA,GAAS,GACb,QAASvT,EAAI,EAAGA,EAAI8oJ,EAAM7oJ,OAAQD,IAAK,EACX,IAApB8oJ,EAAM9oJ,GAAGuT,SACTA,GAAS,GACb,IAAIw1I,IAAQD,EAAM9oJ,GAAGooJ,WACrBjjJ,EAAIgjJ,GAAiBhjJ,EAAGqjJ,GAAwBtkI,EAAO4kI,EAAM9oJ,GAAI+oJ,EAAM5jJ,EAAEg/B,QAAQ64G,UAAY94H,EAAMxnB,IAAIuD,QAAS8oJ,EAAG,CAEvH,IAAIjG,EAAKsE,GAAYhgJ,OAAO8c,EAAO/e,EAAEg/B,QAASh/B,EAAEk8I,UAAWl8I,EAAE8hJ,QAAS9hJ,EAAEmiJ,YAAaniJ,EAAEoiJ,gBACvF,OA0CJ,SAASyB,GAAkBlG,GACvB,IAAI5+H,EAAQ4+H,EAAGuE,WAAY4B,EAAY/kI,EAAMm+H,MAAMoE,IAAsBpH,EAAOyD,EAChF,QAAS9iJ,EAAIipJ,EAAUhpJ,OAAS,EAAGD,GAAK,EAAGA,IAAK,CAC5C,IAAI2kJ,EAAYsE,EAAUjpJ,GAAG8iJ,GACzB6B,GAAax9I,OAAOtE,KAAK8hJ,GAAW1kJ,SACpCo/I,EAAO8I,GAAiB9I,EAAMmJ,GAAwBtkI,EAAOygI,EAAW7B,EAAG3+G,QAAQ64G,YAAY,GAAI,CAE3G,OAAOqC,GAAQyD,EAAKA,EAAKsE,GAAYhgJ,OAAO8c,EAAO4+H,EAAG3+G,QAAS2+G,EAAGzB,UAAWhC,EAAK4H,QAAS5H,EAAKiI,YAAajI,EAAKkI,eACtH,CAlDWyB,CAAkBz1I,EAG7B,SAAS21I,GAAkBpG,GACvB,IAAI5+H,EAAQ4+H,EAAGuE,WAEXv6I,GAAS,EACb,QAASyG,KAAU2Q,EAAMm+H,MAAMkE,IAAe,CAC1C,IAAI7+I,EAAQ6L,EAAOuvI,GACnB,IAAc,IAAVp7I,EAAiB,CACjBoF,GAAS,EACT,MAEAwI,MAAM2C,QAAQvQ,KACdoF,GAAoB,IAAXA,EAAkBpF,EAAQwgJ,GAAWp7I,EAAQpF,GAAK,CAEnE,IAAe,IAAXoF,EAAiB,CACjB,IAAIq3B,EAASglH,EACb,IAAe,IAAXr8I,EACAq8I,EAAOrG,EAAG3+G,QAAQo5G,aAClBp5G,EAAU+5G,GAAU57H,MAAM4B,EAAMxnB,IAAIuD,YAEnC,CACD,IAAIk/I,EAAW2D,EAAG3+G,QAAQ5wB,OAAOzG,GACjCq3B,EAAUg7G,EAASh7G,QACnBglH,EAAOhK,EAASA,SAASzB,QAAQyB,EAASh7G,SAASo5G,aAEvDuF,EAAKsE,GAAYhgJ,OAAO8c,EAAOigB,EAAS2+G,EAAGzB,WAAayB,EAAGzB,UAAUt+I,IAAIomJ,GAAOrC,GAAYyB,WAAWzF,EAAGmE,QAASkC,GAAOrG,EAAGwE,YAAaxE,EAAGyE,eAAc,CAG/J,IAAI6B,EAAUllI,EAAMm+H,MAAMmE,IAC1B,QAASxmJ,EAAIopJ,EAAQnpJ,OAAS,EAAGD,GAAK,EAAGA,IAAK,CAC1C,IAAIm/I,EAAWiK,EAAQppJ,GAAG8iJ,GAEtBA,EADA3D,aAAoBiI,GACfjI,EACA7pI,MAAM2C,QAAQknI,IAAgC,GAAnBA,EAASl/I,QAAek/I,EAAS,aAAciI,GAC1EjI,EAAS,GAET0J,GAAmB3kI,EAAOykI,GAAQxJ,IAAW,EAAK,CAE/D,OAAO2D,CACX,CAzCsCoG,CAAkBpG,GAAMA,EAC9D,CAkDA,MAAMuG,GAAO,GACb,SAASV,GAAQjhJ,GACb,OAAgB,MAATA,EAAgB2hJ,GAAO/zI,MAAM2C,QAAQvQ,GAASA,EAAQ,CAACA,EAClE,CAOA,IAAI4hJ,GAA6B,SAAUA,GAIvCA,SAAaA,EAAaC,KAAU,GAAK,OAIzCD,EAAaA,EAAaE,MAAW,GAAK,QAI1CF,EAAaA,EAAaG,MAAW,GAAK,QACvCH,CAAY,CAbc,CAaXA,KAAiBA,GAAe,CAAC,IACvD,MAAMI,GAA6B,4GACnC,IAAIC,GACJ,IACIA,GAAwB,IAAIttF,OAAO,gCAAiC,IAE5D,CADZ,MACY,CAwBZ,IASMutF,GAAW,MAAjB,MAAMA,EACFvuJ,YAIA6vC,EAIAxuC,EAIA2kJ,EAIAlsI,EAAQgxI,EAAarD,GACjBtnJ,KAAK0vC,OAASA,EACd1vC,KAAKkB,IAAMA,EACXlB,KAAK6lJ,UAAYA,EACjB7lJ,KAAK2Z,OAASA,EACd3Z,KAAKwf,OAASkwB,EAAO06G,eAAerkJ,QACpC/F,KAAK2qJ,YAAcA,EAGfrD,IACAA,EAAGrkE,OAASjjF,MAChB,QAASwE,EAAI,EAAGA,EAAIxE,KAAK0vC,OAAOw6G,aAAazlJ,OAAQD,IACjD6jJ,GAAWroJ,KAAMwE,GAAK,GAC1BxE,KAAK2qJ,YAAc,IACvB,CACAhE,MAAMA,EAAO0H,GAAU,GACnB,IAAIjG,EAAOpoJ,KAAK0vC,OAAOo4G,QAAQnB,EAAMz7I,IACrC,GAAY,MAARk9I,EAKJC,UAAWroJ,KAAMooJ,GACVJ,GAAQhoJ,KAAMooJ,GALjB,GAAIiG,EACA,MAAM,IAAIhS,WAAW,qCAKjC,CAgBA/hI,UAAUgzI,GACN,OAAOD,GAAmBrtJ,KAAMstJ,GAAO,EAC3C,CAIApB,iBAAiB5E,GACb,IAmBIgH,EAnBAC,EAAOvuJ,KAAK0vC,QAAUh1B,OAAMsvI,gBAAiBuE,EACjD,QAAS7C,KAAUpE,EAAGmE,QACdC,EAAOviE,GAAG0gE,GAAYlC,cAClB4G,IACAvE,EAAe,IAAItkJ,IACnB6oJ,EAAKvE,aAAarkJ,QAAQ,CAAC4W,EAAKzL,IAAQk5I,EAAaxjJ,IAAIsK,EAAKyL,IAC9DgyI,EAAO,MAEXvE,EAAaxjJ,IAAIklJ,EAAOx/I,MAAM69I,YAAa2B,EAAOx/I,MAAMi9I,YAEnDuC,EAAOviE,GAAGmiE,GAAY3D,cAC3B4G,EAAO,KACP7zI,EAAOgxI,EAAOx/I,OAETw/I,EAAOviE,GAAGmiE,GAAYK,gBAC3B4C,EAAO,KACP7zI,EAAOyyI,GAAQzyI,GAAMD,OAAOixI,EAAOx/I,QAItCqiJ,EAMDD,EAAchH,EAAGuE,WAAWlyI,OAAO5T,SALnCwoJ,EAAOtE,GAAcvzH,QAAQhc,EAAMsvI,EAAchqJ,MAEjDsuJ,EADwB,IAAIF,EAAYG,EAAMvuJ,KAAKkB,IAAKlB,KAAK6lJ,UAAW0I,EAAKrE,aAAa3iJ,IAAI,IAAM,MAAO,CAACmhB,EAAOwgI,IAASA,EAAKvB,YAAYj/H,EAAO1oB,MAAO,MAC3H2Z,QAKpC,IAAIksI,EAAYyB,EAAGuE,WAAWhF,MAAMgE,IAA2BvD,EAAG2E,aAAe3E,EAAG2E,aAAa3G,WACjG,IAAI8I,EAAYG,EAAMjH,EAAG0E,OAAQnG,EAAWyI,EAAa,CAAC5lI,EAAOwgI,IAASA,EAAK5uI,OAAOoO,EAAO4+H,GAAKA,EACtG,CAKAkH,iBAAiB9qI,GACb,MAAmB,iBAARA,IACPA,EAAO1jB,KAAKyuJ,OAAO/qI,IAChB1jB,KAAK0uJ,cAAcxJ,KAAYv8G,QAAS,CAAE5uB,KAAMmrI,EAAMnrI,KAAMm5G,GAAIgyB,EAAMhyB,GAAItpF,OAAQlmB,GACrFwhI,MAAOD,GAAgBxF,OAAOyF,EAAMnrI,KAAO2J,EAAKjf,UACxD,CAYAiqJ,cAActtG,GACV,IAAI8rG,EAAMltJ,KAAK6lJ,UACX8I,EAAUvtG,EAAE8rG,EAAI/J,OAAO,IACvBx6G,EAAU3oC,KAAK2oC,QAAQgmH,EAAQhmH,SAAUw6G,EAAS,CAACwL,EAAQzJ,OAC3DuG,EAAU0B,GAAQwB,EAAQlD,SAC9B,QAASjnJ,EAAI,EAAGA,EAAI0oJ,EAAI/J,OAAO1+I,OAAQD,IAAK,CACxC,IAAI8M,EAAS8vC,EAAE8rG,EAAI/J,OAAO3+I,IACtBoqJ,EAAa5uJ,KAAK2oC,QAAQr3B,EAAOq3B,SAAUkmH,EAAYD,EAAWrnJ,IAAIohC,GAC1E,QAASw2C,GAAI,EAAGA,GAAI36E,EAAG26E,KACnBgkE,EAAOhkE,IAAKgkE,EAAOhkE,IAAG53E,IAAIsnJ,GAC9B,IAAIC,EAAQnmH,EAAQu5G,QAAQ0M,GAAY,GACxCzL,EAAOv6I,KAAK0I,EAAO4zI,MAAM39I,IAAIunJ,IAC7BnmH,EAAUA,EAAQs6G,QAAQ4L,GAC1BpD,EAAUH,GAAYyB,WAAWtB,EAASoD,GAAWp0I,OAAO6wI,GAAYyB,WAAWI,GAAQ77I,EAAOm6I,SAAUqD,GAAM,CAEtH,MAAO,CACHnmH,UACAk9G,UAAWZ,GAAgBr5I,OAAOu3I,EAAQ+J,EAAI9H,WAC9CqG,UAER,CAMA9iH,QAAQk7G,EAAO,IACX,OAAIA,aAAgBnB,GACTmB,EACJnB,GAAUrrI,GAAGwsI,EAAM7jJ,KAAKkB,IAAIuD,OAAQzE,KAAK6mJ,MAAMuH,EAAYtD,eACtE,CAMA2D,OAAO9Q,GACH,OAAOxB,GAAK9kI,GAAGsmI,EAAO9sI,MAAM7Q,KAAK6mJ,MAAMuH,EAAYtD,gBAAkB9J,IACzE,CAIA+N,SAASh1I,EAAO,EAAGm5G,EAAKlzH,KAAKkB,IAAIuD,QAC7B,OAAOzE,KAAKkB,IAAIq8I,YAAYxjI,EAAMm5G,EAAIlzH,KAAK+8I,UAC/C,CAIA8J,MAAMA,GACF,IAAIuB,EAAOpoJ,KAAK0vC,OAAOo4G,QAAQjB,EAAM37I,IACrC,OAAY,MAARk9I,EACOvB,EAAMpvG,SACjB4wG,GAAWroJ,KAAMooJ,GACVJ,GAAQhoJ,KAAMooJ,GACzB,CAOAr8D,OAAOu+D,GACH,IAAIh5I,EAAS,CACTpQ,IAAKlB,KAAK+uJ,WACVlJ,UAAW7lJ,KAAK6lJ,UAAU95D,UAE9B,GAAIu+D,EACA,QAASj0H,KAAQi0H,EAAQ,CACrB,IAAIp+I,EAAQo+I,EAAOj0H,GACfnqB,aAAiB+7I,IAA+C,MAAjCjoJ,KAAK0vC,OAAOo4G,QAAQ57I,EAAMhB,MACzDoG,EAAO+kB,GAAQnqB,EAAM23I,KAAK93D,OAAO/rF,KAAK2mJ,MAAM2D,EAAOj0H,IAAQr2B,MAAI,CAE3E,OAAOsR,CACX,CAOAnR,gBAAgBsiJ,EAAM/yG,EAAS,CAAC,EAAG46G,GAC/B,IAAK7H,GAA2B,iBAAZA,EAAKvhJ,IACrB,MAAM,IAAIm7I,WAAW,+CACzB,IAAI2S,EAAY,GAChB,GAAI1E,EACA,QAASj0H,KAAQi0H,EACb,GAAI3+I,OAAO0jB,UAAUwF,eAAexc,KAAKoqI,EAAMpsH,GAAO,CAClD,IAAIswH,EAAQ2D,EAAOj0H,GAAOnqB,EAAQu2I,EAAKpsH,GACvC24H,EAAUpmJ,KAAK+9I,EAAM9sI,KAAK6O,GAASi+H,EAAM9C,KAAK6B,SAASx5I,EAAOwc,IAAO,CAGjF,OAAO0lI,EAAYxiJ,OAAO,CACtB1K,IAAKuhJ,EAAKvhJ,IACV2kJ,UAAWZ,GAAgBS,SAASjD,EAAKoD,WACzCQ,WAAY32G,EAAO22G,WAAa2I,EAAUv0I,OAAO,CAACi1B,EAAO22G,aAAe2I,GAEhF,CAMA7uJ,cAAcuvC,EAAS,CAAC,GACpB,IAAI26D,EAAgB4/C,GAAcvzH,QAAQgZ,EAAO22G,YAAc,GAAI,IAAI3gJ,KACnExE,EAAMwuC,EAAOxuC,eAAei7I,GAAOzsG,EAAOxuC,IACxCi7I,GAAK9kI,IAAIq4B,EAAOxuC,KAAO,IAAI2P,MAAMw5F,EAAcggD,YAAY+D,EAAYtD,gBAAkB9J,KAC3F6E,EAAan2G,EAAOm2G,UAClBn2G,EAAOm2G,qBAAqBZ,GAAkBv1G,EAAOm2G,UACjDZ,GAAgBmI,OAAO19G,EAAOm2G,UAAUtjH,OAAQmN,EAAOm2G,UAAUh9I,MAFvCo8I,GAAgBmI,OAAO,GAG3DxH,UAAeC,EAAW3kJ,EAAIuD,QACzB4lG,EAAcggD,YAAYQ,MAC3BhF,EAAYA,EAAUP,YACnB,IAAI8I,EAAY/jD,EAAenpG,EAAK2kJ,EAAWx7C,EAAc6/C,aAAa3iJ,IAAI,IAAM,MAAO,CAACmhB,EAAOwgI,IAASA,EAAKt9I,OAAO8c,GAAQ,KAC3I,CAKIumI,cAAY,OAAOjvJ,KAAK6mJ,MAAMuH,EAAYa,QAAU,CAKpDlS,gBAAc,OAAO/8I,KAAK6mJ,MAAMuH,EAAYtD,gBAAkB,IAAM,CAKpEI,eAAa,OAAOlrJ,KAAK6mJ,MAAMqE,GAAW,CAW9CgE,OAAOA,KAAWtlH,GACd,QAASriC,KAAOvH,KAAK6mJ,MAAMuH,EAAYe,SACnC,GAAIxjJ,OAAO0jB,UAAUwF,eAAexc,KAAK9Q,EAAK2nJ,GAAS,CACnDA,EAAS3nJ,EAAI2nJ,GACb,MAER,OAAItlH,EAAOnlC,SACPyqJ,EAASA,EAAOtlJ,QAAQ,cAAe,CAACk2B,EAAGt7B,KACvC,GAAS,KAALA,EACA,MAAO,IACX,IAAIw+B,IAAMx+B,GAAK,GACf,OAAQw+B,GAAKA,EAAI4G,EAAOnlC,OAASq7B,EAAI8J,EAAO5G,EAAI,EAAC,IAElDksH,CACX,CAiBAE,eAAehsJ,EAAM0wC,EAAKu7G,GAAO,GAC7B,IAAI11I,EAAS,GACb,QAAS21I,KAAYtvJ,KAAK6mJ,MAAM+D,IAC5B,QAASt5I,KAAUg+I,EAAStvJ,KAAM8zC,EAAKu7G,GAC/B1jJ,OAAO0jB,UAAUwF,eAAexc,KAAK/G,EAAQlO,IAC7CuW,EAAO/Q,KAAK0I,EAAOlO,IAG/B,OAAOuW,CACX,CAYA41I,gBAAgBC,GACZ,OA1UR,SAASC,GAAgBC,GACrB,OAAQC,IACJ,IAAK,KAAKxsI,KAAKwsI,GACX,OAAO7B,GAAaE,MACxB,GAdR,SAAS4B,GAAY30H,GACjB,GAAIkzH,GACA,OAAOA,GAAShrI,KAAK8X,GACzB,QAASz2B,EAAI,EAAGA,EAAIy2B,EAAIx2B,OAAQD,IAAK,CACjC,IAAIs6I,EAAK7jH,EAAIz2B,GACb,GAAI,KAAK2e,KAAK27H,IAAOA,EAAK,SAAWA,EAAG9gI,eAAiB8gI,EAAGluI,eAAiBs9I,GAA2B/qI,KAAK27H,IACzG,OAAO,EAEf,OAAO,CACX,CAKY8Q,CAAYD,GACZ,OAAO7B,GAAaC,KACxB,QAASvpJ,EAAI,EAAGA,EAAIkrJ,EAAUjrJ,OAAQD,IAClC,GAAImrJ,EAAKz+I,QAAQw+I,EAAUlrJ,KAAM,EAC7B,OAAOspJ,GAAaC,KAC5B,OAAOD,GAAaG,MAE5B,CA+TewB,CAAgBzvJ,KAAKovJ,eAAe,YAAaI,GAAI1yI,KAAK,IACrE,CAOA+yI,OAAO/7G,GACH,IAAMpwB,OAAM3J,OAAMtV,UAAWzE,KAAKkB,IAAIk7I,OAAOtoG,GACzCu3E,EAAMrrH,KAAKuvJ,gBAAgBz7G,GAC3BuvC,EAAQvvC,EAAM/5B,EAAMvO,EAAMsoC,EAAM/5B,EACpC,KAAOspE,EAAQ,GAAG,CACd,IAAIijB,EAAO25C,GAAiBv8H,EAAM2/D,GAAO,GACzC,GAAIgoC,EAAI3nG,EAAK3d,MAAMugG,EAAMjjB,KAAWyqE,GAAaC,KAC7C,MACJ1qE,EAAQijB,EAEZ,KAAO96F,EAAM/G,GAAQ,CACjB,IAAIqU,EAAOmnI,GAAiBv8H,EAAMlY,GAClC,GAAI6/G,EAAI3nG,EAAK3d,MAAMyF,EAAKsN,KAAUg1I,GAAaC,KAC3C,MACJviJ,EAAMsN,EAEV,OAAOuqE,GAAS73E,EAAM,KAAOy5I,GAAgBC,MAAM7hE,EAAQtpE,EAAMvO,EAAMuO,EAC3E,EAUJq0I,SAAYvD,wBAA0BA,GAMtCuD,EAAYa,QAAuBjJ,GAAM6C,OAAO,CAC5C5C,QAAStsI,GAAUA,EAAOlV,OAASkV,EAAO,GAAK,IAWnDy0I,EAAYtD,cAAgBA,GAc5BsD,EAAYlD,SAAWA,GAOvBkD,EAAYe,QAAuBnJ,GAAM6C,OAAO,CAC5CvoH,QAAQtP,EAAGC,GACP,IAAI6+H,EAAKnkJ,OAAOtE,KAAK2pB,GAAI++H,EAAKpkJ,OAAOtE,KAAK4pB,GAC1C,OAAO6+H,EAAGrrJ,QAAUsrJ,EAAGtrJ,QAAUqrJ,EAAG55H,MAAM6C,GAAK/H,EAAE+H,IAAM9H,EAAE8H,GAC7D,IAMJq1H,EAAYxD,aAAeA,GAe3BwD,EAAYrD,aAAeA,GAoB3BqD,EAAYpD,kBAAoBA,GAchCoD,EAAYnD,oBAAsBA,GAzb5BmD,CAAW,KAqcjB,SAAS4B,GAAcC,EAASl9E,EAChCkzE,EAAU,CAAC,GACP,IAAI30I,EAAS,CAAC,EACd,QAASo+B,KAAUugH,EACf,QAASn/I,KAAOnF,OAAOtE,KAAKqoC,GAAS,CACjC,IAAIxjC,EAAQwjC,EAAO5+B,GAAMunB,EAAU/mB,EAAOR,GAC1C,QAAgB7C,IAAZoqB,EACA/mB,EAAOR,GAAO5E,UACTmsB,IAAYnsB,QAAmB+B,IAAV/B,EACzB,KAAIP,OAAOkpB,eAAexc,KAAK4tI,EAASn1I,GAGzC,MAAM,IAAIrK,MAAM,mCAAqCqK,GAFrDQ,EAAOR,GAAOm1I,EAAQn1I,GAAKunB,EAASnsB,EAEoB,EAEpE,QAAS4E,KAAOiiE,OACQ9kE,IAAhBqD,EAAOR,KACPQ,EAAOR,GAAOiiE,EAASjiE,IAC/B,OAAOQ,CACX,CA7BAu4I,GAAYlC,YAA2B2D,GAAYzC,SAmCnD,MAAMqH,GAQFvT,GAAGniI,GAAS,OAAOxa,MAAQwa,CAAO,CAIlC0qI,MAAMnrI,EAAMm5G,EAAKn5G,GAAQ,OAAOo2I,GAAMvkJ,OAAOmO,EAAMm5G,EAAIlzH,KAAO,EAElEkwJ,GAAW7gI,UAAU+gI,UAAYF,GAAW7gI,UAAUghI,QAAU,EAChEH,GAAW7gI,UAAUihI,OAAQ,EAC7BJ,GAAW7gI,UAAUkhI,QAAUtP,GAAQE,SAIvC,MAAMgP,GACFtwJ,YAIAka,EAIAm5G,EAIAhnH,GACIlM,KAAK+Z,KAAOA,EACZ/Z,KAAKkzH,GAAKA,EACVlzH,KAAKkM,MAAQA,CACjB,CAIA/L,cAAc4Z,EAAMm5G,EAAIhnH,GACpB,OAAO,IAAIikJ,GAAMp2I,EAAMm5G,EAAIhnH,EAC/B,EAEJ,SAASskJ,GAASx/H,EAAGC,GACjB,OAAOD,EAAEjX,KAAOkX,EAAElX,MAAQiX,EAAE9kB,MAAMkkJ,UAAYn/H,EAAE/kB,MAAMkkJ,SAC1D,CACA,MAAMK,GACF5wJ,YAAYka,EAAMm5G,EAAIhnH,EAKtBwkJ,GACI1wJ,KAAK+Z,KAAOA,EACZ/Z,KAAKkzH,GAAKA,EACVlzH,KAAKkM,MAAQA,EACblM,KAAK0wJ,SAAWA,CACpB,CACIjsJ,aAAW,OAAOzE,KAAKkzH,GAAGlzH,KAAKkzH,GAAGzuH,OAAS,EAAI,CAGnD+3F,UAAU1oD,EAAKu7G,EAAM7jJ,EAAKmlJ,EAAU,GAChC,IAAIv6H,EAAM5qB,EAAMxL,KAAKkzH,GAAKlzH,KAAK+Z,KAC/B,QAAS62I,EAAKD,EAASE,EAAKz6H,EAAI3xB,SAAU,CACtC,GAAImsJ,GAAMC,EACN,OAAOD,EACX,IAAI5S,EAAO4S,EAAKC,GAAO,EACnB/gD,EAAO15E,EAAI4nH,GAAOlqG,IAAQtoC,EAAMxL,KAAKkM,MAAM8xI,GAAKqS,QAAUrwJ,KAAKkM,MAAM8xI,GAAKoS,WAAaf,EAC3F,GAAIrR,GAAO4S,EACP,OAAO9gD,GAAQ,EAAI8gD,EAAKC,EACxB/gD,GAAQ,EACR+gD,EAAK7S,EAEL4S,EAAK5S,EAAM,EAEvB,CACA8S,QAAQ5iG,EAAQn0C,EAAMm5G,EAAI9xE,GACtB,QAAS58C,EAAIxE,KAAKw8F,UAAUziF,GAAM,KAAyB,GAAO5R,EAAInI,KAAKw8F,UAAU02B,EAAI,KAAwB,EAAO1uH,GAAIA,EAAI2D,EAAG3D,IAC/H,IAAqE,IAAjE48C,EAAEphD,KAAK+Z,KAAKvV,GAAK0pD,EAAQluD,KAAKkzH,GAAG1uH,GAAK0pD,EAAQluD,KAAKkM,MAAM1H,IACzD,OAAO,CACnB,CACA+C,IAAI2mD,EAAQvlB,GACR,IAAIz8B,EAAQ,GAAI6N,EAAO,GAAIm5G,EAAK,GAAI69B,GAAS,EAAIL,GAAW,EAC5D,QAASlsJ,EAAI,EAAGA,EAAIxE,KAAKkM,MAAMzH,OAAQD,IAAK,CACxC,IAAuFwsJ,EAASC,GAA5F10I,EAAMvc,KAAKkM,MAAM1H,GAAI0sJ,EAAUlxJ,KAAK+Z,KAAKvV,GAAK0pD,EAAQijG,EAAQnxJ,KAAKkzH,GAAG1uH,GAAK0pD,EAC/E,GAAIgjG,GAAWC,EAAO,CAClB,IAAI3F,GAAS7iH,EAAQ05G,OAAO6O,EAAS30I,EAAI6zI,UAAW7zI,EAAIg0I,SAIxD,GAHc,MAAV/E,KAEJwF,EAAUC,GAAQzF,GACdjvI,EAAI6zI,WAAa7zI,EAAI8zI,UACrBY,GAAQtoH,EAAQ05G,OAAO6O,EAAS30I,EAAI8zI,SAChCY,GAAQD,IACR,iBAIRA,EAAUroH,EAAQ05G,OAAO6O,EAAS30I,EAAI6zI,WACtCa,GAAQtoH,EAAQ05G,OAAO8O,EAAO50I,EAAI8zI,SAC9BW,EAAUC,IAASD,GAAWC,IAAS10I,EAAI6zI,UAAY,GAAK7zI,EAAI8zI,SAAW,EAC3E,UAEHY,GAAQD,GAAWz0I,EAAI8zI,QAAU9zI,EAAI6zI,WAAa,IAEnDW,EAAS,IACTA,EAASC,GACTz0I,EAAI+zI,QACJI,EAAWxlI,KAAKC,IAAIulI,EAAUO,GAAQD,IAC1C9kJ,EAAMtD,KAAK2T,GACXxC,EAAKnR,KAAKooJ,EAAUD,GACpB79B,EAAGtqH,KAAKqoJ,GAAQF,GAAM,CAE1B,MAAO,CAAEvF,OAAQt/I,EAAMzH,OAAS,IAAIgsJ,GAAM12I,EAAMm5G,EAAIhnH,EAAOwkJ,GAAY,KAAM58G,IAAKi9G,EACtF,EAEJ,IAMMK,GAAQ,MAAd,MAAMA,EACFvxJ,YAIAwxJ,EAIAtS,EAIAuS,EAIAZ,GACI1wJ,KAAKqxJ,SAAWA,EAChBrxJ,KAAK++I,MAAQA,EACb/+I,KAAKsxJ,UAAYA,EACjBtxJ,KAAK0wJ,SAAWA,CACpB,CAIAvwJ,cAAckxJ,EAAUtS,EAAOuS,EAAWZ,GACtC,OAAO,IAAIU,EAASC,EAAUtS,EAAOuS,EAAWZ,EACpD,CAIIjsJ,aACA,IAAImvB,EAAO5zB,KAAK++I,MAAMt6I,OAAS,EAC/B,OAAOmvB,EAAO,EAAI,EAAI1I,KAAKC,IAAInrB,KAAKuxJ,SAAS39H,GAAO5zB,KAAKsxJ,UAAU7sJ,OACvE,CAII2gE,WACA,GAAIplE,KAAK8xB,QACL,OAAO,EACX,IAAIszC,EAAOplE,KAAKsxJ,UAAUlsF,KAC1B,QAAS25E,KAAS/+I,KAAK++I,MACnB35E,GAAQ25E,EAAM7yI,MAAMzH,OACxB,OAAO2gE,CACX,CAIAmsF,SAASlgJ,GACL,OAAOrR,KAAKqxJ,SAAShgJ,GAASrR,KAAK++I,MAAM1tI,GAAO5M,MACpD,CAUA6V,OAAOk3I,GACH,IAAMlpJ,MAAM,GAAI0tB,QAAO,EAAOy7H,aAAa,EAAGC,WAAW1xJ,KAAKyE,QAAW+sJ,EACrEz5I,EAASy5I,EAAWz5I,OACxB,GAAkB,GAAdzP,EAAI7D,SAAgBsT,EACpB,OAAO/X,KAGX,GAFIg2B,IACA1tB,EAAMA,EAAIvC,QAAQiwB,KAAKw6H,KACvBxwJ,KAAK8xB,QACL,OAAOxpB,EAAI7D,OAAS2sJ,EAAS/5I,GAAG/O,GAAOtI,KAC3C,IAAI2xJ,EAAM,IAAIC,GAAY5xJ,KAAM,MAAM,GAAI6xJ,KAAK,GAAIrtJ,EAAI,EAAGstJ,EAAQ,GAC9DhkF,EAAU,IAAIikF,GAClB,KAAOJ,EAAIzlJ,OAAS1H,EAAI8D,EAAI7D,QACxB,GAAID,EAAI8D,EAAI7D,SAAWktJ,EAAI53I,KAAOzR,EAAI9D,GAAGuV,MAAQ43I,EAAIvB,UAAY9nJ,EAAI9D,GAAG0H,MAAMkkJ,YAAc,EAAG,CAC3F,IAAIlL,EAAQ58I,EAAI9D,KACXspE,EAAQkkF,SAAS9M,EAAMnrI,KAAMmrI,EAAMhyB,GAAIgyB,EAAMh5I,QAC9C4lJ,EAAMlpJ,KAAKs8I,EAAK,MAEG,GAAlByM,EAAIM,YAAmBN,EAAIO,WAAalyJ,KAAK++I,MAAMt6I,SACvDD,GAAK8D,EAAI7D,QAAUzE,KAAKuxJ,SAASI,EAAIO,YAAc5pJ,EAAI9D,GAAGuV,SACzDhC,GAAU05I,EAAazxJ,KAAKuxJ,SAASI,EAAIO,aAAeR,EAAW1xJ,KAAKqxJ,SAASM,EAAIO,cACvFpkF,EAAQqkF,SAASnyJ,KAAKqxJ,SAASM,EAAIO,YAAalyJ,KAAK++I,MAAM4S,EAAIO,aAC/DP,EAAIS,eAGCr6I,GAAU05I,EAAaE,EAAIz+B,IAAMw+B,EAAWC,EAAI53I,MAAQhC,EAAO45I,EAAI53I,KAAM43I,EAAIz+B,GAAIy+B,EAAIzlJ,UACjF4hE,EAAQkkF,SAASL,EAAI53I,KAAM43I,EAAIz+B,GAAIy+B,EAAIzlJ,QACxC4lJ,EAAMlpJ,KAAKunJ,GAAMvkJ,OAAO+lJ,EAAI53I,KAAM43I,EAAIz+B,GAAIy+B,EAAIzlJ,SAEtDylJ,EAAI74I,QAGZ,OAAOg1D,EAAQukF,YAAYryJ,KAAKsxJ,UAAUx/H,UAAYggI,EAAMrtJ,OAAS2sJ,EAAStqI,MACxE9mB,KAAKsxJ,UAAUh3I,OAAO,CAAEhS,IAAKwpJ,EAAO/5I,SAAQ05I,aAAYC,aAClE,CAIAnqJ,IAAIohC,GACA,GAAIA,EAAQ7hB,OAAS9mB,KAAK8xB,QACtB,OAAO9xB,KACX,IAAIsyJ,EAAS,GAAIjB,EAAW,GAAIX,GAAW,EAC3C,QAASlsJ,EAAI,EAAGA,EAAIxE,KAAK++I,MAAMt6I,OAAQD,IAAK,CACxC,IAAI6+E,EAAQrjF,KAAKqxJ,SAAS7sJ,GAAIu6I,EAAQ/+I,KAAK++I,MAAMv6I,GAC7C+tJ,EAAQ5pH,EAAQ65G,aAAan/D,EAAOA,EAAQ07D,EAAMt6I,QACtD,IAAc,IAAV8tJ,EACA7B,EAAWxlI,KAAKC,IAAIulI,EAAU3R,EAAM2R,UACpC4B,EAAO1pJ,KAAKm2I,GACZsS,EAASzoJ,KAAK+/B,EAAQ05G,OAAOh/D,SAAM,IAEpB,IAAVkvE,EAAgB,CACrB,IAAM/G,SAAQ13G,OAAQirG,EAAMx3I,IAAI87E,EAAO16C,GACnC6iH,IACAkF,EAAWxlI,KAAKC,IAAIulI,EAAUlF,EAAOkF,UACrC4B,EAAO1pJ,KAAK4iJ,GACZ6F,EAASzoJ,KAAKkrC,GAAG,EAI7B,IAAIh7B,EAAO9Y,KAAKsxJ,UAAU/pJ,IAAIohC,GAC9B,OAAwB,GAAjB2pH,EAAO7tJ,OAAcqU,EAAO,IAAIs4I,EAASC,EAAUiB,EAAQx5I,GAAQs4I,EAAStqI,MAAO4pI,EAC9F,CAOAI,QAAQ/2I,EAAMm5G,EAAI9xE,GACd,IAAIphD,KAAK8xB,QAET,SAASttB,EAAI,EAAGA,EAAIxE,KAAK++I,MAAMt6I,OAAQD,IAAK,CACxC,IAAI6+E,EAAQrjF,KAAKqxJ,SAAS7sJ,GAAIu6I,EAAQ/+I,KAAK++I,MAAMv6I,GACjD,GAAI0uH,GAAM7vC,GAAStpE,GAAQspE,EAAQ07D,EAAMt6I,SACiB,IAAtDs6I,EAAM+R,QAAQztE,EAAOtpE,EAAOspE,EAAO6vC,EAAK7vC,EAAOjiC,GAC/C,OAERphD,KAAKsxJ,UAAUR,QAAQ/2I,EAAMm5G,EAAI9xE,EAAC,CACtC,CAKA47F,KAAKjjI,EAAO,GACR,OAAOy4I,GAAWz4I,KAAK,CAAC/Z,OAAO6xJ,KAAK93I,EACxC,CAII+X,cAAY,OAAO9xB,KAAKsxJ,WAAatxJ,IAAM,CAK/CG,YAAYsyJ,EAAM14I,EAAO,GACrB,OAAOy4I,GAAWz4I,KAAK04I,GAAMZ,KAAK93I,EACtC,CAKA5Z,eAAeuyJ,EAASC,EAKxBC,EAAUC,EAKVC,GAAe,GACX,IAAI9hI,EAAI0hI,EAAQ36I,OAAOvR,GAAOA,EAAIkqJ,SAAW,IAAMlqJ,EAAIsrB,SAAWtrB,EAAIkqJ,UAAYoC,GAC9E7hI,EAAI0hI,EAAQ56I,OAAOvR,GAAOA,EAAIkqJ,SAAW,IAAMlqJ,EAAIsrB,SAAWtrB,EAAIkqJ,UAAYoC,GAC9EC,EAAeC,GAAiBhiI,EAAGC,EAAG2hI,GACtCK,EAAQ,IAAIC,GAAWliI,EAAG+hI,EAAcD,GACxCK,EAAQ,IAAID,GAAWjiI,EAAG8hI,EAAcD,GAC5CF,EAASnR,SAAS,CAACmB,EAAOE,GAAOr+I,KAAW67B,GAAQ2yH,EAAOrQ,EAAOuQ,EAAOrQ,GAAOr+I,GAAQouJ,IACpFD,EAAS9rI,OAA4B,GAAnB8rI,EAASnuJ,QAC3B67B,GAAQ2yH,EAAO,EAAGE,EAAO,EAAG,EAAGN,EACvC,CAKA1yJ,UAAUuyJ,EAASC,EAAS54I,EAAO,EAAGm5G,GACxB,MAANA,IACAA,EAAK,WACT,IAAIliG,EAAI0hI,EAAQ36I,OAAOvR,IAAQA,EAAIsrB,SAAW6gI,EAAQzhJ,QAAQ1K,GAAO,GACjEyqB,EAAI0hI,EAAQ56I,OAAOvR,IAAQA,EAAIsrB,SAAW4gI,EAAQxhJ,QAAQ1K,GAAO,GACrE,GAAIwqB,EAAEvsB,QAAUwsB,EAAExsB,OACd,OAAO,EACX,IAAKusB,EAAEvsB,OACH,OAAO,EACX,IAAIsuJ,EAAeC,GAAiBhiI,EAAGC,GACnCgiI,EAAQ,IAAIC,GAAWliI,EAAG+hI,EAAc,GAAGlB,KAAK93I,GAAOo5I,EAAQ,IAAID,GAAWjiI,EAAG8hI,EAAc,GAAGlB,KAAK93I,GAC3G,OAAS,CACL,GAAIk5I,EAAM//B,IAAMigC,EAAMjgC,KACjBkgC,GAAWH,EAAM9pI,OAAQgqI,EAAMhqI,SAChC8pI,EAAM3C,SAAW6C,EAAM7C,QAAU2C,EAAM3C,MAAM3T,GAAGwW,EAAM7C,QACtD,OAAO,EACX,GAAI2C,EAAM//B,GAAKA,EACX,OAAO,EACX+/B,EAAMn6I,OACNq6I,EAAMr6I,MAAI,CAElB,CAQA3Y,aAAasyJ,EAAM14I,EAAMm5G,EAAI3xD,EAK7BuxF,GAAe,GACX,IAAIrT,EAAS,IAAIyT,GAAWT,EAAM,KAAMK,GAAcjB,KAAK93I,GAAO+5B,EAAM/5B,EACpEs5I,EAAa5T,EAAO6T,UACxB,OAAS,CACL,IAAInC,EAAQjmI,KAAK4lC,IAAI2uF,EAAOvsB,GAAIA,GAChC,GAAIusB,EAAO6Q,MAAO,CACd,IAAInnI,EAASs2H,EAAO8T,eAAe9T,EAAOvsB,IACtCsgC,EAAY/T,EAAOgU,UAAY15I,EAAOoP,EAAO1kB,OAAS,EACpDg7I,EAAO6Q,MAAMF,UAAY,EAAIjnI,EAAO1kB,OAChCymB,KAAK4lC,IAAI3nC,EAAO1kB,OAAQ4uJ,GAClC9xF,EAAS+uF,MAAMx8G,EAAKq9G,EAAO1R,EAAO6Q,MAAOnnI,EAAQqqI,EAAW/T,EAAOiU,WACnEL,EAAanoI,KAAK4lC,IAAI2uF,EAAOkU,QAAQxC,GAAQhoI,EAAO1kB,OAAM,MAErD0sJ,EAAQr9G,IACbytB,EAASqyF,KAAK9/G,EAAKq9G,EAAO1R,EAAOt2H,OAAQkqI,GACzCA,EAAa5T,EAAOkU,QAAQxC,IAEhC,GAAI1R,EAAOvsB,GAAKA,EACZ,OAAOmgC,GAAc5T,EAAO6Q,OAAS7Q,EAAOvsB,GAAKA,EAAK,EAAI,GAC9Dp/E,EAAM2rG,EAAOvsB,GACbusB,EAAO3mI,MAAI,CAEnB,CAQA3Y,UAAUgjJ,EAAQntH,GAAO,GACrB,IAAIjxB,EAAQ,IAAIgtJ,GAChB,QAAS7M,KAAS/B,aAAkBgN,GAAQ,CAAChN,GAAUntH,EAsB/D,SAAS69H,GAAS1Q,GACd,GAAIA,EAAO1+I,OAAS,EAChB,QAAS6hG,EAAO68C,EAAO,GAAI3+I,EAAI,EAAGA,EAAI2+I,EAAO1+I,OAAQD,IAAK,CACtD,IAAImtJ,EAAMxO,EAAO3+I,GACjB,GAAIgsJ,GAASlqD,EAAMqrD,GAAO,EACtB,OAAOxO,EAAOp9I,QAAQiwB,KAAKw6H,IAC/BlqD,EAAOqrD,EAEf,OAAOxO,CACX,CA/BsE0Q,CAAS1Q,GAAUA,EAC7Ep+I,EAAMuD,IAAI48I,EAAMnrI,KAAMmrI,EAAMhyB,GAAIgyB,EAAMh5I,OAC1C,OAAOnH,EAAM+qD,QACjB,CAIA3vD,YAAYsyJ,GACR,IAAKA,EAAKhuJ,OACN,OAAO2sJ,EAAStqI,MACpB,IAAIxV,EAASmhJ,EAAKA,EAAKhuJ,OAAS,GAChC,QAASD,EAAIiuJ,EAAKhuJ,OAAS,EAAGD,GAAK,EAAGA,IAClC,QAASsvJ,EAAQrB,EAAKjuJ,GAAIsvJ,GAAS1C,EAAStqI,MAAOgtI,EAAQA,EAAMxC,UAC7DhgJ,EAAS,IAAI8/I,EAAS0C,EAAMzC,SAAUyC,EAAM/U,MAAOztI,EAAQ4Z,KAAKC,IAAI2oI,EAAMpD,SAAUp/I,EAAOo/I,WAEnG,OAAOp/I,CACX,EAKJ8/I,SAAStqI,MAAqB,IAAIsqI,EAAS,GAAI,GAAI,MAAM,GAjRnDA,CAAQ,KA4RdA,GAAStqI,MAAMwqI,UAAYF,GAAStqI,MAMpC,MAAMirI,GACFgC,YAAYC,GACRh0J,KAAKsyJ,OAAO1pJ,KAAK,IAAI6nJ,GAAMzwJ,KAAK+Z,KAAM/Z,KAAKkzH,GAAIlzH,KAAKkM,MAAOlM,KAAK0wJ,WAChE1wJ,KAAKqxJ,SAASzoJ,KAAK5I,KAAKi0J,YACxBj0J,KAAKi0J,YAAa,EAClBj0J,KAAKk0J,YAAchpI,KAAKC,IAAInrB,KAAKk0J,YAAal0J,KAAK0wJ,UACnD1wJ,KAAK0wJ,UAAW,EACZsD,IACAh0J,KAAK+Z,KAAO,GACZ/Z,KAAKkzH,GAAK,GACVlzH,KAAKkM,MAAQ,GAErB,CAIArM,cACIG,KAAKsyJ,OAAS,GACdtyJ,KAAKqxJ,SAAW,GAChBrxJ,KAAKi0J,YAAa,EAClBj0J,KAAK4zB,KAAO,KACZ5zB,KAAKm0J,UAAW,IAChBn0J,KAAKo0J,QAAS,IACdp0J,KAAK+Z,KAAO,GACZ/Z,KAAKkzH,GAAK,GACVlzH,KAAKkM,MAAQ,GACblM,KAAK0wJ,UAAW,EAChB1wJ,KAAKk0J,aAAc,EACnBl0J,KAAKsxJ,UAAY,IACrB,CAKAhpJ,IAAIyR,EAAMm5G,EAAIhnH,GACLlM,KAAKgyJ,SAASj4I,EAAMm5G,EAAIhnH,KACxBlM,KAAKsxJ,YAActxJ,KAAKsxJ,UAAY,IAAIS,KAAkBzpJ,IAAIyR,EAAMm5G,EAAIhnH,EACjF,CAIA8lJ,SAASj4I,EAAMm5G,EAAIhnH,GACf,IAAI4jG,EAAO/1F,EAAO/Z,KAAKo0J,QAAUloJ,EAAMkkJ,UAAYpwJ,KAAK4zB,KAAKy8H,QAC7D,GAAIvgD,GAAQ,IAAM/1F,EAAO/Z,KAAKm0J,UAAYjoJ,EAAMkkJ,UAAYpwJ,KAAK4zB,KAAKw8H,WAAa,EAC/E,MAAM,IAAI3pJ,MAAM,kEACpB,QAAIqpG,EAAO,IAEa,KAApB9vG,KAAK+Z,KAAKtV,QACVzE,KAAK+zJ,aAAY,GACjB/zJ,KAAKi0J,WAAa,IAClBj0J,KAAKi0J,WAAal6I,GACtB/Z,KAAK+Z,KAAKnR,KAAKmR,EAAO/Z,KAAKi0J,YAC3Bj0J,KAAKkzH,GAAGtqH,KAAKsqH,EAAKlzH,KAAKi0J,YACvBj0J,KAAK4zB,KAAO1nB,EACZlM,KAAKm0J,SAAWp6I,EAChB/Z,KAAKo0J,OAASlhC,EACdlzH,KAAKkM,MAAMtD,KAAKsD,GACZA,EAAMokJ,QACNtwJ,KAAK0wJ,SAAWxlI,KAAKC,IAAInrB,KAAK0wJ,SAAUx9B,EAAKn5G,IAC1C,GACX,CAIAo4I,SAASp4I,EAAMglI,GACX,IAAKhlI,EAAO/Z,KAAKo0J,QAAUrV,EAAM7yI,MAAM,GAAGkkJ,UAAYpwJ,KAAK4zB,KAAKy8H,SAAW,EACvE,OAAO,EACPrwJ,KAAK+Z,KAAKtV,QACVzE,KAAK+zJ,aAAY,GACrB/zJ,KAAKk0J,YAAchpI,KAAKC,IAAInrB,KAAKk0J,YAAanV,EAAM2R,UACpD1wJ,KAAKsyJ,OAAO1pJ,KAAKm2I,GACjB/+I,KAAKqxJ,SAASzoJ,KAAKmR,GACnB,IAAI6Z,EAAOmrH,EAAM7yI,MAAMzH,OAAS,EAChC,YAAKmvB,KAAOmrH,EAAM7yI,MAAM0nB,GACxB5zB,KAAKm0J,SAAWpV,EAAMhlI,KAAK6Z,GAAQ7Z,EACnC/Z,KAAKo0J,OAASrV,EAAM7rB,GAAGt/F,GAAQ7Z,GACxB,CACX,CAKA+1C,SAAW,OAAO9vD,KAAKqyJ,YAAYjB,GAAStqI,MAAQ,CAIpDurI,YAAYv5I,GAGR,GAFI9Y,KAAK+Z,KAAKtV,QACVzE,KAAK+zJ,aAAY,GACK,GAAtB/zJ,KAAKsyJ,OAAO7tJ,OACZ,OAAOqU,EACX,IAAIxH,EAAS8/I,GAASxlJ,OAAO5L,KAAKqxJ,SAAUrxJ,KAAKsyJ,OAAQtyJ,KAAKsxJ,UAAYtxJ,KAAKsxJ,UAAUe,YAAYv5I,GAAQA,EAAM9Y,KAAKk0J,aACxH,YAAKn6I,KAAO,KACLzI,CACX,EAEJ,SAAS0hJ,GAAiBhiI,EAAGC,EAAG2hI,GAC5B,IAAIyB,EAAM,IAAI3uJ,IACd,QAASc,KAAOwqB,EACZ,QAASxsB,EAAI,EAAGA,EAAIgC,EAAIu4I,MAAMt6I,OAAQD,IAC9BgC,EAAIu4I,MAAMv6I,GAAGksJ,UAAY,GACzB2D,EAAI7tJ,IAAIA,EAAIu4I,MAAMv6I,GAAIgC,EAAI6qJ,SAAS7sJ,IAC/C,IAAI8vJ,EAAS,IAAIvsJ,IACjB,QAASvB,KAAOyqB,EACZ,QAASzsB,EAAI,EAAGA,EAAIgC,EAAIu4I,MAAMt6I,OAAQD,IAAK,CACvC,IAAIimJ,EAAQ4J,EAAIrwJ,IAAIwC,EAAIu4I,MAAMv6I,IACjB,MAATimJ,IAAkBmI,EAAWA,EAASvQ,OAAOoI,GAASA,IAAUjkJ,EAAI6qJ,SAAS7sJ,KACvBouJ,GAASpQ,aAAaiI,EAAOA,EAAQjkJ,EAAIu4I,MAAMv6I,GAAGC,SACxG6vJ,EAAOhsJ,IAAI9B,EAAIu4I,MAAMv6I,GAAE,CAEnC,OAAO8vJ,CACX,CACA,MAAM1C,GACF/xJ,YAAYi0J,EAAOhX,EAAMyX,EAAUC,EAAO,GACtCx0J,KAAK8zJ,MAAQA,EACb9zJ,KAAK88I,KAAOA,EACZ98I,KAAKu0J,SAAWA,EAChBv0J,KAAKw0J,KAAOA,CAChB,CACIpE,gBAAc,OAAOpwJ,KAAKkM,MAAQlM,KAAKkM,MAAMkkJ,UAAY,CAAG,CAC5DC,cAAY,OAAOrwJ,KAAKkM,MAAQlM,KAAKkM,MAAMmkJ,QAAU,CAAG,CAC5DwB,KAAK/9G,EAAKu7G,GAAO,KACb,YAAK6C,WAAalyJ,KAAKiyJ,WAAa,EACpCjyJ,KAAKy0J,UAAU3gH,EAAKu7G,GAAM,GACnBrvJ,IACX,CACAy0J,UAAU3gH,EAAKu7G,EAAMnP,GACjB,KAAOlgJ,KAAKkyJ,WAAalyJ,KAAK8zJ,MAAM/U,MAAMt6I,QAAQ,CAC9C,IAAIqU,EAAO9Y,KAAK8zJ,MAAM/U,MAAM/+I,KAAKkyJ,YACjC,KAAMlyJ,KAAK88I,MAAQ98I,KAAK88I,KAAKrjI,IAAIX,IAC7B9Y,KAAK8zJ,MAAMvC,SAASvxJ,KAAKkyJ,YAAcp+G,GACvCh7B,EAAK43I,SAAW1wJ,KAAKu0J,UACrB,MACJv0J,KAAKkyJ,aACLhS,GAAU,EAEd,GAAIlgJ,KAAKkyJ,WAAalyJ,KAAK8zJ,MAAM/U,MAAMt6I,OAAQ,CAC3C,IAAIwtJ,EAAajyJ,KAAK8zJ,MAAM/U,MAAM/+I,KAAKkyJ,YAAY11D,UAAU1oD,EAAM9zC,KAAK8zJ,MAAMzC,SAASrxJ,KAAKkyJ,YAAa7C,GAAM,KAC1GnP,GAAWlgJ,KAAKiyJ,WAAaA,IAC9BjyJ,KAAK00J,cAAczC,EAAU,CAErCjyJ,KAAK8Y,MACT,CACAonI,QAAQpsG,EAAKu7G,IACJrvJ,KAAKkzH,GAAKp/E,GAAO9zC,KAAKqwJ,QAAUhB,GAAQ,GACzCrvJ,KAAKy0J,UAAU3gH,EAAKu7G,GAAM,EAClC,CACAv2I,OACI,OACI,IAAI9Y,KAAKkyJ,YAAclyJ,KAAK8zJ,MAAM/U,MAAMt6I,OAAQ,CAC5CzE,KAAK+Z,KAAO/Z,KAAKkzH,GAAK,IACtBlzH,KAAKkM,MAAQ,KACb,MAEC,CACD,IAAImlJ,EAAWrxJ,KAAK8zJ,MAAMzC,SAASrxJ,KAAKkyJ,YAAanT,EAAQ/+I,KAAK8zJ,MAAM/U,MAAM/+I,KAAKkyJ,YAMnF,GAJAlyJ,KAAK+Z,KADMs3I,EAAWtS,EAAMhlI,KAAK/Z,KAAKiyJ,YAEtCjyJ,KAAKkzH,GAAKm+B,EAAWtS,EAAM7rB,GAAGlzH,KAAKiyJ,YACnCjyJ,KAAKkM,MAAQ6yI,EAAM7yI,MAAMlM,KAAKiyJ,YAC9BjyJ,KAAK00J,cAAc10J,KAAKiyJ,WAAa,GACjCjyJ,KAAKu0J,SAAW,GAAKv0J,KAAKkM,MAAMokJ,OAAStwJ,KAAKkzH,GAAKlzH,KAAK+Z,MAAQ/Z,KAAKu0J,SACrE,OAGhB,CACAG,cAAcrjJ,GACV,GAAIA,GAASrR,KAAK8zJ,MAAM/U,MAAM/+I,KAAKkyJ,YAAYhmJ,MAAMzH,OAAQ,CAEzD,GADAzE,KAAKkyJ,aACDlyJ,KAAK88I,KACL,KAAO98I,KAAKkyJ,WAAalyJ,KAAK8zJ,MAAM/U,MAAMt6I,QAAUzE,KAAK88I,KAAKrjI,IAAIzZ,KAAK8zJ,MAAM/U,MAAM/+I,KAAKkyJ,cACpFlyJ,KAAKkyJ,aAEblyJ,KAAKiyJ,WAAa,OAGlBjyJ,KAAKiyJ,WAAa5gJ,CAE1B,CACA+gJ,YACIpyJ,KAAKkyJ,aACLlyJ,KAAKiyJ,WAAa,EAClBjyJ,KAAK8Y,MACT,CACAwnB,QAAQ9lB,GACJ,OAAOxa,KAAK+Z,KAAOS,EAAMT,MAAQ/Z,KAAKowJ,UAAY51I,EAAM41I,WAAapwJ,KAAKw0J,KAAOh6I,EAAMg6I,MACnFx0J,KAAKkzH,GAAK14G,EAAM04G,IAAMlzH,KAAKqwJ,QAAU71I,EAAM61I,OACnD,EAEJ,MAAMmC,GACF3yJ,YAAY80J,GACR30J,KAAK20J,KAAOA,CAChB,CACAx0J,YAAYsyJ,EAAM3V,EAAO,KAAMyX,GAAW,GACtC,IAAII,EAAO,GACX,QAASnwJ,EAAI,EAAGA,EAAIiuJ,EAAKhuJ,OAAQD,IAC7B,QAASmtJ,EAAMc,EAAKjuJ,IAAKmtJ,EAAI7/H,QAAS6/H,EAAMA,EAAIL,UACxCK,EAAIjB,UAAY6D,GAChBI,EAAK/rJ,KAAK,IAAIgpJ,GAAYD,EAAK7U,EAAMyX,EAAU/vJ,IAG3D,OAAsB,GAAfmwJ,EAAKlwJ,OAAckwJ,EAAK,GAAK,IAAInC,GAAWmC,EACvD,CACIvE,gBAAc,OAAOpwJ,KAAKkM,MAAQlM,KAAKkM,MAAMkkJ,UAAY,CAAG,CAChEyB,KAAK/9G,EAAKu7G,GAAO,KACb,QAASsC,KAAO3xJ,KAAK20J,KACjBhD,EAAIE,KAAK/9G,EAAKu7G,GAClB,QAAS7qJ,EAAIxE,KAAK20J,KAAKlwJ,QAAU,EAAGD,GAAK,EAAGA,IACxCowJ,GAAW50J,KAAK20J,KAAMnwJ,GAC1B,YAAKsU,OACE9Y,IACX,CACAkgJ,QAAQpsG,EAAKu7G,GACT,QAASsC,KAAO3xJ,KAAK20J,KACjBhD,EAAIzR,QAAQpsG,EAAKu7G,GACrB,QAAS7qJ,EAAIxE,KAAK20J,KAAKlwJ,QAAU,EAAGD,GAAK,EAAGA,IACxCowJ,GAAW50J,KAAK20J,KAAMnwJ,IACrBxE,KAAKkzH,GAAKp/E,GAAO9zC,KAAKkM,MAAMmkJ,QAAUhB,GAAQ,GAC/CrvJ,KAAK8Y,MACb,CACAA,OACI,GAAwB,GAApB9Y,KAAK20J,KAAKlwJ,OACVzE,KAAK+Z,KAAO/Z,KAAKkzH,GAAK,IACtBlzH,KAAKkM,MAAQ,KACblM,KAAKw0J,MAAO,MAEX,CACD,IAAIjV,EAAMv/I,KAAK20J,KAAK,GACpB30J,KAAK+Z,KAAOwlI,EAAIxlI,KAChB/Z,KAAKkzH,GAAKqsB,EAAIrsB,GACdlzH,KAAKkM,MAAQqzI,EAAIrzI,MACjBlM,KAAKw0J,KAAOjV,EAAIiV,KACZjV,EAAIrzI,OACJqzI,EAAIzmI,OACR87I,GAAW50J,KAAK20J,KAAM,EAAC,CAE/B,EAEJ,SAASC,GAAWD,EAAMtjJ,GACtB,QAASsgJ,EAAMgD,EAAKtjJ,KAAU,CAC1B,IAAIwjJ,EAA4B,GAAdxjJ,GAAS,GAC3B,GAAIwjJ,GAAcF,EAAKlwJ,OACnB,MACJ,IAAI+1B,EAAQm6H,EAAKE,GAKjB,GAJIA,EAAa,EAAIF,EAAKlwJ,QAAU+1B,EAAM8F,QAAQq0H,EAAKE,EAAa,KAAO,IACvEr6H,EAAQm6H,EAAKE,EAAa,GAC1BA,KAEAlD,EAAIrxH,QAAQ9F,GAAS,EACrB,MACJm6H,EAAKE,GAAclD,EACnBgD,EAAKtjJ,GAASmpB,EACdnpB,EAAQwjJ,EAEhB,CACA,MAAM3B,GACFrzJ,YAAY4yJ,EAAM3V,EAAMyX,GACpBv0J,KAAKu0J,SAAWA,EAChBv0J,KAAKmpB,OAAS,GACdnpB,KAAK80J,SAAW,GAChB90J,KAAK+0J,WAAa,GAClB/0J,KAAKg1J,WAAY,EAEjBh1J,KAAKswJ,MAAQ,KACbtwJ,KAAKyzJ,UAAY,EACjBzzJ,KAAK0zJ,UAAY,EACjB1zJ,KAAKkzH,IAAK,IACVlzH,KAAKqwJ,QAAU,EAGfrwJ,KAAKszJ,WAAY,EACjBtzJ,KAAKy/I,OAAS+S,GAAWz4I,KAAK04I,EAAM3V,EAAMyX,EAC9C,CACA1C,KAAK/9G,EAAKu7G,GAAO,KACb,YAAK5P,OAAOoS,KAAK/9G,EAAKu7G,GACtBrvJ,KAAKmpB,OAAO1kB,OAASzE,KAAK80J,SAASrwJ,OAASzE,KAAK+0J,WAAWtwJ,OAAS,EACrEzE,KAAKg1J,WAAY,EACjBh1J,KAAKkzH,GAAKp/E,EACV9zC,KAAKqwJ,QAAUhB,EACfrvJ,KAAKszJ,WAAY,EACjBtzJ,KAAK8Y,OACE9Y,IACX,CACAkgJ,QAAQpsG,EAAKu7G,GACT,KAAOrvJ,KAAKg1J,WAAY,IAAOh1J,KAAK80J,SAAS90J,KAAKg1J,WAAalhH,GAAO9zC,KAAKmpB,OAAOnpB,KAAKg1J,WAAW3E,QAAUhB,GAAQ,GAChHrvJ,KAAKi1J,aAAaj1J,KAAKg1J,WAC3Bh1J,KAAKy/I,OAAOS,QAAQpsG,EAAKu7G,EAC7B,CACA4F,aAAa5jJ,GACTzQ,GAAOZ,KAAKmpB,OAAQ9X,GACpBzQ,GAAOZ,KAAK80J,SAAUzjJ,GACtBzQ,GAAOZ,KAAK+0J,WAAY1jJ,GACxBrR,KAAKg1J,UAAYE,GAAal1J,KAAKmpB,OAAQnpB,KAAK80J,SACpD,CACAK,UAAUC,GACN,IAAI5wJ,EAAI,GAAK0H,QAAOgnH,KAAIshC,QAASx0J,KAAKy/I,OAEtC,KAAOj7I,EAAIxE,KAAK+0J,WAAWtwJ,SAAW+vJ,EAAOx0J,KAAK+0J,WAAWvwJ,IAAM0uH,EAAKlzH,KAAK80J,SAAStwJ,IAAM,GACxFA,IACJolC,GAAO5pC,KAAKmpB,OAAQ3kB,EAAG0H,GACvB09B,GAAO5pC,KAAK80J,SAAUtwJ,EAAG0uH,GACzBtpF,GAAO5pC,KAAK+0J,WAAYvwJ,EAAGgwJ,GACvBY,GACAxrH,GAAOwrH,EAAW5wJ,EAAGxE,KAAKy/I,OAAO1lI,MACrC/Z,KAAKg1J,UAAYE,GAAal1J,KAAKmpB,OAAQnpB,KAAK80J,SACpD,CAGAh8I,OACI,IAAIiB,EAAO/Z,KAAKkzH,GAAImiC,EAAWr1J,KAAKswJ,MACpCtwJ,KAAKswJ,MAAQ,KACb,IAAI8E,EAAYp1J,KAAKszJ,UAAY,EAAI,GAAK,KAC1C,OAAS,CACL,IAAItiI,EAAIhxB,KAAKg1J,UACb,GAAIhkI,GAAI,IAAOhxB,KAAK80J,SAAS9jI,GAAKhxB,KAAKy/I,OAAO1lI,MAAQ/Z,KAAKmpB,OAAO6H,GAAGq/H,QAAUrwJ,KAAKy/I,OAAO2Q,WAAa,EAAG,CACvG,GAAIpwJ,KAAK80J,SAAS9jI,GAAKjX,EAAM,CACzB/Z,KAAKkzH,GAAKlzH,KAAK80J,SAAS9jI,GACxBhxB,KAAKqwJ,QAAUrwJ,KAAKmpB,OAAO6H,GAAGq/H,QAC9B,MAEJrwJ,KAAKi1J,aAAajkI,GACdokI,GACAx0J,GAAOw0J,EAAWpkI,EAAC,UAEjBhxB,KAAKy/I,OAAOvzI,MAAO,CACzBlM,KAAKkzH,GAAKlzH,KAAKqwJ,QAAU,IACzB,MAEC,GAAIrwJ,KAAKy/I,OAAO1lI,KAAOA,EAAM,CAC9B/Z,KAAKkzH,GAAKlzH,KAAKy/I,OAAO1lI,KACtB/Z,KAAKqwJ,QAAUrwJ,KAAKy/I,OAAO2Q,UAC3B,MAEC,CACD,IAAIkF,EAAUt1J,KAAKy/I,OAAOvzI,MAC1B,GAAKopJ,EAAQhF,MAEO,MAEX+E,GAAYr1J,KAAKy/I,OAAOvsB,IAAMlzH,KAAKkzH,IAAMlzH,KAAKy/I,OAAO1lI,KAAO/Z,KAAKy/I,OAAOvsB,IAI5E,CACDlzH,KAAKswJ,MAAQgF,EACbt1J,KAAKyzJ,UAAYzzJ,KAAKy/I,OAAO1lI,KAC7B/Z,KAAK0zJ,UAAY1zJ,KAAKy/I,OAAO+U,KAC7Bx0J,KAAKkzH,GAAKlzH,KAAKy/I,OAAOvsB,GACtBlzH,KAAKqwJ,QAAUiF,EAAQjF,QACvBrwJ,KAAKy/I,OAAO3mI,OACZ9Y,KAAKkgJ,QAAQlgJ,KAAKkzH,GAAIlzH,KAAKqwJ,SAC3B,MAVArwJ,KAAKy/I,OAAO3mI,MAUZ,MAfA9Y,KAAKm1J,UAAUC,GACfp1J,KAAKy/I,OAAO3mI,MAcZ,CAzBJ,EA6BR,GAAIs8I,EAAW,CACXp1J,KAAKszJ,UAAY,EACjB,QAAS9uJ,EAAI4wJ,EAAU3wJ,OAAS,EAAGD,GAAK,GAAK4wJ,EAAU5wJ,GAAKuV,EAAMvV,IAC9DxE,KAAKszJ,YAEjB,CACAC,eAAergC,GACX,IAAKlzH,KAAKmpB,OAAO1kB,OACb,OAAOzE,KAAKmpB,OAChB,IAAIA,EAAS,GACb,QAAS3kB,EAAIxE,KAAKmpB,OAAO1kB,OAAS,EAAGD,GAAK,KAClCxE,KAAK+0J,WAAWvwJ,GAAKxE,KAAK0zJ,WADWlvJ,KAGrCxE,KAAK80J,SAAStwJ,GAAK0uH,GAAMlzH,KAAK80J,SAAStwJ,IAAM0uH,GAAMlzH,KAAKmpB,OAAO3kB,GAAG6rJ,SAAWrwJ,KAAKswJ,MAAMD,UACxFlnI,EAAOvgB,KAAK5I,KAAKmpB,OAAO3kB,IAEhC,OAAO2kB,EAAOnjB,SAClB,CACA2tJ,QAAQzgC,GACJ,IAAIxwG,EAAO,EACX,QAASle,EAAIxE,KAAK80J,SAASrwJ,OAAS,EAAGD,GAAK,GAAKxE,KAAK80J,SAAStwJ,GAAK0uH,EAAI1uH,IACpEke,IACJ,OAAOA,CACX,EAEJ,SAAS4d,GAAQtP,EAAGukI,EAAQtkI,EAAGukI,EAAQ/wJ,EAAQouJ,GAC3C7hI,EAAE6gI,KAAK0D,GACPtkI,EAAE4gI,KAAK2D,GACP,IAAIvR,EAAOuR,EAAS/wJ,EAChBqvC,EAAM0hH,EAAQC,EAAOD,EAASD,EAClC,OAAS,CACL,IAAIzlD,EAAQ9+E,EAAEkiG,GAAKuiC,EAAQxkI,EAAEiiG,IAAMliG,EAAEq/H,QAAUp/H,EAAEo/H,QAC7C7kJ,EAAMskG,EAAO,EAAI9+E,EAAEkiG,GAAKuiC,EAAOxkI,EAAEiiG,GAAIwiC,EAAUxqI,KAAK4lC,IAAItlD,EAAKy4I,GAUjE,GATIjzH,EAAEs/H,OAASr/H,EAAEq/H,MACPt/H,EAAEs/H,OAASr/H,EAAEq/H,QAAUt/H,EAAEs/H,OAASr/H,EAAEq/H,OAASt/H,EAAEs/H,MAAM3T,GAAG1rH,EAAEq/H,SAC5D8C,GAAWpiI,EAAEuiI,eAAeviI,EAAEkiG,IAAKjiG,EAAEsiI,eAAetiI,EAAEiiG,MACtD2/B,EAAW8C,aAAa7hH,EAAK4hH,EAAS1kI,EAAEs/H,MAAOr/H,EAAEq/H,OAGjDoF,EAAU5hH,IAAQs/G,GAAWpiI,EAAE7H,OAAQ8H,EAAE9H,SACzC0pI,EAAW+C,aAAa9hH,EAAK4hH,EAAS1kI,EAAE7H,OAAQ8H,EAAE9H,QAEtD3d,EAAMy4I,EACN,MACJnwG,EAAMtoC,EACFskG,GAAQ,GACR9+E,EAAElY,OACFg3F,GAAQ,GACR7+E,EAAEnY,MAAI,CAElB,CACA,SAASs6I,GAAWpiI,EAAGC,GACnB,GAAID,EAAEvsB,QAAUwsB,EAAExsB,OACd,OAAO,EACX,QAASD,EAAI,EAAGA,EAAIwsB,EAAEvsB,OAAQD,IAC1B,GAAIwsB,EAAExsB,IAAMysB,EAAEzsB,KAAOwsB,EAAExsB,GAAGm4I,GAAG1rH,EAAEzsB,IAC3B,OAAO,EACf,OAAO,CACX,CACA,SAAS5D,GAAO8tC,EAAOr9B,GACnB,QAAS7M,EAAI6M,EAAOlJ,EAAIumC,EAAMjqC,OAAS,EAAGD,EAAI2D,EAAG3D,IAC7CkqC,EAAMlqC,GAAKkqC,EAAMlqC,EAAI,GACzBkqC,EAAM19B,KACV,CACA,SAAS44B,GAAO8E,EAAOr9B,EAAOnF,GAC1B,QAAS1H,EAAIkqC,EAAMjqC,OAAS,EAAGD,GAAK6M,EAAO7M,IACvCkqC,EAAMlqC,EAAI,GAAKkqC,EAAMlqC,GACzBkqC,EAAMr9B,GAASnF,CACnB,CACA,SAASgpJ,GAAahpJ,EAAOwiC,GACzB,IAAIgoB,GAAQ,EAAIm/F,EAAW,IAC3B,QAASrxJ,EAAI,EAAGA,EAAIkqC,EAAMjqC,OAAQD,KACzBkqC,EAAMlqC,GAAKqxJ,GAAY3pJ,EAAM1H,GAAG6rJ,QAAUnkJ,EAAMwqD,GAAO25F,SAAW,IACnE35F,EAAQlyD,EACRqxJ,EAAWnnH,EAAMlqC,IAEzB,OAAOkyD,CACX,CAMA,SAASo/F,GAAYnY,EAAQsR,EAAS/7B,EAAKyqB,EAAOl5I,QAC9C,IAAIu+B,EAAI,EACR,QAASx+B,EAAI,EAAGA,EAAI0uH,GACY,GAAxByqB,EAAO4C,WAAW/7I,IAClBw+B,GAAKisH,EAAWjsH,EAAIisH,EACpBzqJ,MAGAw+B,IACAx+B,EAAIy7I,GAAiBtC,EAAQn5I,IAGrC,OAAOw+B,CACX,CAQA,SAAS+yH,GAAWpY,EAAQqY,EAAK/G,EAASgH,GACtC,QAASzxJ,EAAI,EAAGw+B,EAAI,IAAK,CACrB,GAAIA,GAAKgzH,EACL,OAAOxxJ,EACX,GAAIA,GAAKm5I,EAAOl5I,OACZ,MACJu+B,GAA6B,GAAxB26G,EAAO4C,WAAW/7I,GAAUyqJ,EAAWjsH,EAAIisH,EAAW,EAC3DzqJ,EAAIy7I,GAAiBtC,EAAQn5I,EAAC,CAElC,OAAkB,IAAXyxJ,GAAkB,EAAKtY,EAAOl5I,MACzC,CCt1HA,MACMyxJ,UAAevhI,OAAU,IAAc,WAAWA,OAAOwhI,IADrD,UAEJC,UAAazhI,OAAU,IAAc,aAAezJ,KAAKosF,MAAsB,IAAhBpsF,KAAKqsF,UAAkB5iF,OAAO,YAC7F4qH,UAAa8W,WAAc,IAAcA,kBAAoBr0J,OAAU,IAAcA,OAAS,CAAC,EAW9F,MAAMs0J,GAMXz2J,YAAYgkJ,EAAMjoI,GAChB5b,KAAKu2J,MAAQ,GACb,IAAKzmG,UAAUl0C,GAAW,CAAC,EAE3B,SAAS46I,EAAc5qI,GACrB,MAAO,KAAKzI,KAAKyI,GAAY,CAACA,GAAYA,EAAS/a,MAAM,OAC3D,CAEA,SAAS4lJ,EAAOlsH,EAAWs5G,EAAM9hJ,EAAQ20J,GACvC,IAAIC,EAAQ,GAAIC,EAAO,YAAY71F,KAAKx2B,EAAU,IAAK8wB,EAAYu7F,GAAmB,aAAXA,EAAK,GAChF,GAAIA,GAAgB,MAAR/S,EAAc,OAAO9hJ,EAAO6G,KAAK2hC,EAAU,GAAK,KAC5D,QAASlU,MAAQwtH,EAAM,CACrB,IAAI33I,GAAQ23I,EAAKxtH,IACjB,GAAI,IAAIlT,KAAKkT,IACXogI,EAAOpgI,GAAKxlB,MAAM,QAAQtJ,IAAIguB,IAAQgV,EAAUhjC,IAAI2lJ,IAAO33H,GAAK3rB,QAAQ,IAAKsjJ,MAAOtuI,OAAO,CAACoS,GAAGC,KAAMD,GAAEvW,OAAOwW,KACvG/kB,GAAOnK,QAAM,GACXmK,IAAyB,iBAATA,GAAmB,CAC5C,IAAK0qJ,EAAM,MAAM,IAAIva,WAAW,4BAA8BhmH,GAAO,kCACrEogI,EAAOD,EAAcngI,IAAOnqB,GAAOyqJ,EAAOt7F,EAAS,MACjC,MAATnvD,IACTyqJ,EAAM/tJ,KAAKytB,GAAKzsB,QAAQ,MAAO,IAAIA,QAAQ,SAAUwmG,IAAK,IAAMA,GAAEx/F,eAAiB,KAAO1E,GAAQ,IAAG,EAGrGyqJ,EAAMlyJ,QAAU42D,IAClBt5D,EAAO6G,OAAMknD,GAAW8mG,GAASF,EAAsCnsH,EAAxBA,EAAUhjC,IAAIuoD,IAAqBhzC,KAAK,MAC3E,KAAO65I,EAAM75I,KAAK,KAAO,IAEzC,CAEA,QAASuZ,KAAQwtH,EAAM4S,EAAOD,EAAcngI,GAAOwtH,EAAKxtH,GAAOr2B,KAAKu2J,MACtE,CAIAM,WAAa,OAAO72J,KAAKu2J,MAAMz5I,KAAK,KAAM,CAI1C3c,iBACE,IAAI+K,EAAKq0I,GAAI2W,KAAU,EACvB3W,UAAI2W,IAAShrJ,EAAK,EA5DZ,SA6DKA,EAAGoL,SAAS,GACzB,CAkBAnW,aAAa63B,EAAM8+H,EAASl7I,GAC1B,IAAIpV,EAAMwxB,EAAKo+H,IAAMW,EAAQn7I,GAAWA,EAAQm7I,MAC3CvwJ,EACIuwJ,GAAOvwJ,EAAIwwJ,SAASD,GADnBvwJ,EAAM,IAAIywJ,GAASj/H,EAAM++H,GAEnCvwJ,EAAI0wJ,MAAMp9I,MAAM2C,QAAQq6I,GAAWA,EAAU,CAACA,GAAU9+H,EAC1D,EAGF,IAAIm/H,GAAa,IAAIzxJ,IAErB,MAAMuxJ,GACJp3J,YAAYm4B,EAAM++H,GAChB,IAAI71J,EAAM82B,EAAKo/H,eAAiBp/H,EAAMq/H,EAAMn2J,EAAIo2J,YAChD,IAAKt/H,EAAKnvB,MAAQmvB,EAAKu/H,oBAAsBF,EAAIG,cAAe,CAC9D,IAAIC,EAAUN,GAAWnzJ,IAAI9C,GAC7B,GAAIu2J,EAAS,OAAOz/H,EAAKo+H,IAAOqB,EAChCz3J,KAAK03J,MAAQ,IAAIL,EAAIG,cACrBL,GAAW3wJ,IAAItF,EAAKlB,KAAI,MAExBA,KAAK23J,SAAWz2J,EAAIF,cAAc,SAC9B+1J,GAAO/2J,KAAK23J,SAASh1J,aAAa,QAASo0J,GAEjD/2J,KAAK82J,QAAU,GACf9+H,EAAKo+H,IAAOp2J,IACd,CAEAk3J,MAAMJ,EAAS9+H,GACb,IAAI0/H,EAAQ13J,KAAK03J,MACb5jH,EAAM,EAA6BqrC,EAAI,EAC3C,QAAS36E,EAAI,EAAGA,EAAIsyJ,EAAQryJ,OAAQD,IAAK,CACvC,IAAIozJ,EAAMd,EAAQtyJ,GAAI6M,EAAQrR,KAAK82J,QAAQ5lJ,QAAQ0mJ,GAMnD,GALIvmJ,EAAQ8tE,GAAK9tE,GAAQ,IACvBrR,KAAK82J,QAAQ3lJ,OAAOE,EAAO,GAC3B8tE,IACA9tE,GAAQ,IAEG,GAATA,GAEF,GADArR,KAAK82J,QAAQ3lJ,OAAOguE,IAAK,EAAGy4E,GACxBF,EAAO,QAAS3+H,EAAI,EAAGA,EAAI6+H,EAAIrB,MAAM9xJ,OAAQs0B,IAC/C2+H,EAAMG,WAAWD,EAAIrB,MAAMx9H,GAAI+a,SAC5B,CACL,KAAOqrC,EAAI9tE,GAAOyiC,GAAO9zC,KAAK82J,QAAQ33E,KAAKo3E,MAAM9xJ,OACjDqvC,GAAO8jH,EAAIrB,MAAM9xJ,OACjB06E,KAIJ,GAAIu4E,EACE1/H,EAAKu/H,mBAAmBrmJ,QAAQlR,KAAK03J,OAAS,IAChD1/H,EAAKu/H,mBAAqB,CAACv3J,KAAK03J,SAAU1/H,EAAKu/H,yBAC5C,CACL,IAAI7zI,EAAO,GACX,QAASlf,EAAI,EAAGA,EAAIxE,KAAK82J,QAAQryJ,OAAQD,IACvCkf,GAAQ1jB,KAAK82J,QAAQtyJ,GAAGqyJ,WAAa,KACvC72J,KAAK23J,SAASlvJ,YAAcib,EAC5B,IAAI3hB,EAASi2B,EAAKnvB,MAAQmvB,EACtBh4B,KAAK23J,SAAS72J,YAAciB,GAC9BA,EAAO0K,aAAazM,KAAK23J,SAAU51J,EAAOmhC,WAAU,CAE1D,CAEA8zH,SAASD,GACH/2J,KAAK23J,UAAY33J,KAAK23J,SAASp1J,aAAa,UAAYw0J,GAC1D/2J,KAAK23J,SAASh1J,aAAa,QAASo0J,EACxC,EC1DF,QAtFWr8I,GAAO,CAChB,EAAG,YACH,EAAG,MACH,GAAI,QACJ,GAAI,UACJ,GAAI,QACJ,GAAI,QACJ,GAAI,UACJ,GAAI,MACJ,GAAI,WACJ,GAAI,SACJ,GAAI,IACJ,GAAI,SACJ,GAAI,WACJ,GAAI,MACJ,GAAI,OACJ,GAAI,YACJ,GAAI,UACJ,GAAI,aACJ,GAAI,YACJ,GAAI,cACJ,GAAI,SACJ,GAAI,SACJ,GAAI,IACJ,GAAI,IACJ,GAAI,OACJ,GAAI,OACJ,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,UACL,IAAK,aACL,IAAK,QACL,IAAK,QACL,IAAK,UACL,IAAK,UACL,IAAK,MACL,IAAK,MACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,KACL,IAAK,IACL,IAAK,KAGIzK,GAAQ,CACjB,GAAI,IACJ,GAAI,IACJ,GAAI,IACJ,GAAI,IACJ,GAAI,IACJ,GAAI,IACJ,GAAI,IACJ,GAAI,IACJ,GAAI,IACJ,GAAI,IACJ,GAAI,IACJ,GAAI,IACJ,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,KAGH6nJ,UAAa70J,UAAa,KAAe,MAAMkgB,KAAKlgB,UAAUgiB,UAC9D8yI,UAAY90J,UAAa,KAAe,gDAAgD89D,KAAK99D,UAAUC,WAGlGsB,GAAI,EAAGA,GAAI,GAAIA,KAAKkW,GAAK,GAAKlW,IAAKkW,GAAK,GAAKlW,IAAK6R,OAAO7R,IAGlE,IAASA,GAAI,EAAGA,IAAK,GAAIA,KAAKkW,GAAKlW,GAAI,KAAO,IAAMA,GAGpD,IAASA,GAAI,GAAIA,IAAK,GAAIA,KACxBkW,GAAKlW,IAAK6R,OAAO0qI,aAAav8I,GAAI,IAClCyL,GAAMzL,IAAK6R,OAAO0qI,aAAav8I,IAIjC,QAASiN,MAAQiJ,GAAWzK,GAAM4kB,eAAepjB,MAAOxB,GAAMwB,IAAQiJ,GAAKjJ,KC9F3E,SAASumJ,GAAahgI,GAClB,IAAIj2B,EAIJ,OACIA,EADiB,IAAjBi2B,EAAKv2B,SACIu2B,EAAKggI,aAAehgI,EAAOA,EAAKo/H,cAGhCp/H,EAENj2B,EAAOi2J,cAClB,CACA,SAASz6F,GAASn5D,EAAKvD,GACnB,QAAOA,IAAOuD,GAAOvD,GAAQuD,EAAIm5D,SAA0B,GAAjB18D,EAAKY,SAAgBZ,EAAKC,WAAaD,GACrF,CAOA,SAASo3J,GAAa7zJ,EAAKyhJ,GACvB,IAAKA,EAAUqS,WACX,OAAO,EACX,IAII,OAAO36F,GAASn5D,EAAKyhJ,EAAUqS,WAInC,CAHA,MAEI,OAAO,CACX,CACJ,CACA,SAASC,GAAe/zJ,GACpB,OAAoB,GAAhBA,EAAI3C,SACG22J,GAAUh0J,EAAK,EAAGA,EAAI0J,UAAUrJ,QAAQ4zJ,iBAC1B,GAAhBj0J,EAAI3C,SACF2C,EAAIi0J,iBAEJ,EACf,CAIA,SAASC,GAAqBz3J,EAAM4iJ,EAAK8U,EAAYC,GACjD,QAAOD,IAAcE,GAAQ53J,EAAM4iJ,EAAK8U,EAAYC,GAAW,IAC3DC,GAAQ53J,EAAM4iJ,EAAK8U,EAAYC,EAAW,GAClD,CACA,SAASE,GAAS73J,GACd,QAASwQ,EAAQ,GAAIA,IAEjB,KADAxQ,EAAOA,EAAK83J,iBAER,OAAOtnJ,CAEnB,CACA,SAASunJ,GAAe/3J,GACpB,OAAwB,GAAjBA,EAAKY,UAAiB,sDAAsD0hB,KAAKtiB,EAAKg4J,SACjG,CACA,SAASJ,GAAQ53J,EAAM4iJ,EAAK8U,EAAYC,EAAWvb,GAC/C,OAAS,CACL,GAAIp8I,GAAQ03J,GAAc9U,GAAO+U,EAC7B,OAAO,EACX,GAAI/U,IAAQxG,EAAM,EAAI,EAAI6b,GAAUj4J,IAAQ,CACxC,GAAqB,OAAjBA,EAAKg4J,SACL,OAAO,EACX,IAAIxsJ,EAASxL,EAAKC,WAClB,IAAKuL,GAA6B,GAAnBA,EAAO5K,SAClB,OAAO,EACXgiJ,EAAMiV,GAAS73J,IAASo8I,EAAM,EAAI,EAAI,GACtCp8I,EAAOwL,UAEe,GAAjBxL,EAAKY,SAOV,OAAO,EALP,GAAqB,IADrBZ,EAAOA,EAAKk4J,WAAWtV,GAAOxG,EAAM,GAAI,EAAK,KACpCx7I,UAAyC,SAAxBZ,EAAKm4J,gBAC3B,OAAO,EACXvV,EAAMxG,EAAM,EAAI6b,GAAUj4J,GAAQ,CAG3B,EAGnB,CACA,SAASi4J,GAAUj4J,GACf,OAAwB,GAAjBA,EAAKY,SAAgBZ,EAAKiN,UAAUrJ,OAAS5D,EAAKk4J,WAAWt0J,MACxE,CACA,SAASw0J,GAAYC,EAAMjpD,GACvB,IAAI57E,EAAI47E,EAAOipD,EAAKjpD,KAAOipD,EAAKhpD,MAChC,MAAO,CAAED,KAAM57E,EAAG67E,MAAO77E,EAAGkrH,IAAK2Z,EAAK3Z,IAAK4Z,OAAQD,EAAKC,OAC5D,CACA,SAASC,GAAW/B,GAChB,IAAIgC,EAAKhC,EAAIiC,eACb,OAAID,EACO,CACHppD,KAAM,EAAGC,MAAOmpD,EAAG5gG,MACnB8mF,IAAK,EAAG4Z,OAAQE,EAAGtwE,QAEpB,CAAEknB,KAAM,EAAGC,MAAOmnD,EAAIkC,WACzBha,IAAK,EAAG4Z,OAAQ9B,EAAImC,YAC5B,CACA,SAASC,GAASC,EAAKR,GACnB,IAAIS,EAAST,EAAKzgG,MAAQihG,EAAIE,YAC1BC,EAASX,EAAKnwE,OAAS2wE,EAAII,aAC/B,OAAIH,EAAS,MAASA,EAAS,QAAUI,SAASJ,IAAWzuI,KAAK0B,IAAIssI,EAAKzgG,MAAQihG,EAAIE,aAAe,KAClGD,EAAS,IACTE,EAAS,MAASA,EAAS,QAAUE,SAASF,IAAW3uI,KAAK0B,IAAIssI,EAAKnwE,OAAS2wE,EAAII,cAAgB,KACpGD,EAAS,GACN,CAAEF,SAAQE,SACrB,CAuHA,MAAMG,GACFn6J,cACIG,KAAKk4J,WAAa,KAClBl4J,KAAKi6J,aAAe,EACpBj6J,KAAKk6J,UAAY,KACjBl6J,KAAKm6J,YAAc,CACvB,CACAxd,GAAGyd,GACC,OAAOp6J,KAAKk4J,YAAckC,EAAOlC,YAAcl4J,KAAKi6J,cAAgBG,EAAOH,cACvEj6J,KAAKk6J,WAAaE,EAAOF,WAAal6J,KAAKm6J,aAAeC,EAAOD,WACzE,CACAE,SAASnV,GACL,IAAMgT,aAAYgC,aAAchV,EAEhCllJ,KAAKwG,IAAI0xJ,EAAYhtI,KAAK4lC,IAAIo0F,EAAM+U,aAAc/B,EAAaY,GAAUZ,GAAc,GAAIgC,EAAWhvI,KAAK4lC,IAAIo0F,EAAMiV,YAAaD,EAAYpB,GAAUoB,GAAa,GACzK,CACA1zJ,IAAI0xJ,EAAY+B,EAAcC,EAAWC,GACrCn6J,KAAKk4J,WAAaA,EAClBl4J,KAAKi6J,aAAeA,EACpBj6J,KAAKk6J,UAAYA,EACjBl6J,KAAKm6J,YAAcA,CACvB,EAEJ,IA+BIG,GA/BAC,GAAyB,KAG7B,SAASC,GAAmBp2J,GACxB,GAAIA,EAAIq2J,UACJ,OAAOr2J,EAAIq2J,YACf,GAAIF,GACA,OAAOn2J,EAAIs2J,MAAMH,IACrB,IAAI3tG,EAAQ,GACZ,QAAS+kG,EAAMvtJ,EAAKutJ,IAChB/kG,EAAMhkD,KAAK+oJ,EAAKA,EAAIgJ,UAAWhJ,EAAIiJ,YAC/BjJ,GAAOA,EAAIyF,eAFMzF,EAAMA,EAAI7wJ,YAWnC,GANAsD,EAAIs2J,MAAgC,MAA1BH,GAAiC,CACnCM,oBACAN,UAAyB,CAAEM,eAAe,IACnC,CACX,QACA5sJ,IACCssJ,GAAwB,CACzBA,IAAyB,EACzB,QAAS/1J,EAAI,EAAGA,EAAIooD,EAAMnoD,QAAS,CAC/B,IAAIi1J,EAAM9sG,EAAMpoD,KAAM+6I,EAAM3yF,EAAMpoD,KAAMyrG,EAAOrjD,EAAMpoD,KACjDk1J,EAAIiB,WAAapb,IACjBma,EAAIiB,UAAYpb,GAChBma,EAAIkB,YAAc3qD,IAClBypD,EAAIkB,WAAa3qD,IAGjC,CAEA,SAASmoD,GAAUv3J,EAAMkZ,EAAMm5G,EAAKn5G,GAChC,IAAImrI,EAAQoV,KAAiBA,GAAej5J,SAASy5J,eACrD5V,SAAM6V,OAAOl6J,EAAMqyH,GACnBgyB,EAAM8V,SAASn6J,EAAMkZ,GACdmrI,CACX,CACA,SAAS+V,GAAYvB,EAAKt2J,EAAMqO,EAAMypJ,GAClC,IAAIt/I,EAAU,CAAE9K,IAAK1N,EAAMqO,KAAMrO,EAAM+3J,QAAS1pJ,EAAMg0I,MAAOh0I,EAAM2pJ,YAAY,GAC3EF,KACGtrJ,OAAQgM,EAAQhM,OAAQE,QAAS8L,EAAQ9L,QAASI,SAAU0L,EAAQ1L,SAAUF,QAAS4L,EAAQ5L,SAAYkrJ,GAClH,IAAIG,EAAO,IAAIC,cAAc,UAAW1/I,GACxCy/I,EAAKE,WAAY,EACjB7B,EAAI/4J,cAAc06J,GAClB,IAAI53C,EAAK,IAAI63C,cAAc,QAAS1/I,GACpC6nG,SAAG83C,WAAY,EACf7B,EAAI/4J,cAAc8iH,GACX43C,EAAKG,kBAAoB/3C,EAAG+3C,gBACvC,CASA,SAASC,GAAgB56J,GACrB,KAAOA,EAAK66J,WAAWj3J,QACnB5D,EAAK86J,oBAAoB96J,EAAK66J,WAAW,GACjD,CA4BA,SAASE,GAAmBlC,GACxB,OAAOA,EAAIiB,UAAYzvI,KAAKC,IAAI,EAAGuuI,EAAImC,aAAenC,EAAIoC,aAAe,EAC7E,CACA,SAASC,GAAeC,EAAWC,GAC/B,QAASp7J,EAAOm7J,EAAW9tG,EAAS+tG,IAAe,CAC/C,GAAqB,GAAjBp7J,EAAKY,UAAiBysD,EAAS,EAC/B,MAAO,CAAErtD,KAAMA,EAAMqtD,OAAQA,GAE5B,GAAqB,GAAjBrtD,EAAKY,UAAiBysD,EAAS,EAAG,CACvC,GAA4B,SAAxBrtD,EAAKm4J,gBACL,OAAO,KACXn4J,EAAOA,EAAKk4J,WAAW7qG,EAAS,GAChCA,EAAS4qG,GAAUj4J,EAAI,UAElBA,EAAKC,YAAe83J,GAAe/3J,GAKxC,OAAO,KAJPqtD,EAASwqG,GAAS73J,GAClBA,EAAOA,EAAKC,UAGL,EAGnB,CACA,SAASo7J,GAAcF,EAAWC,GAC9B,QAASp7J,EAAOm7J,EAAW9tG,EAAS+tG,IAAe,CAC/C,GAAqB,GAAjBp7J,EAAKY,UAAiBysD,EAASrtD,EAAKiN,UAAUrJ,OAC9C,MAAO,CAAE5D,KAAMA,EAAMqtD,OAAQA,GAE5B,GAAqB,GAAjBrtD,EAAKY,UAAiBysD,EAASrtD,EAAKk4J,WAAWt0J,OAAQ,CAC5D,GAA4B,SAAxB5D,EAAKm4J,gBACL,OAAO,KACXn4J,EAAOA,EAAKk4J,WAAW7qG,GACvBA,EAAS,WAEJrtD,EAAKC,YAAe83J,GAAe/3J,GAKxC,OAAO,KAJPqtD,EAASwqG,GAAS73J,GAAQ,EAC1BA,EAAOA,EAAKC,UAGL,EAGnB,CAEA,MAAMq7J,GACFt8J,YAAYgB,EAAMqtD,EAAQkuG,GAAU,GAChCp8J,KAAKa,KAAOA,EACZb,KAAKkuD,OAASA,EACdluD,KAAKo8J,QAAUA,CACnB,CACAj8J,cAAciE,EAAKg4J,GAAW,OAAO,IAAID,GAAO/3J,EAAItD,WAAY43J,GAASt0J,GAAMg4J,EAAU,CACzFj8J,aAAaiE,EAAKg4J,GAAW,OAAO,IAAID,GAAO/3J,EAAItD,WAAY43J,GAASt0J,GAAO,EAAGg4J,EAAU,EAEhG,MAAMC,GAAa,GACnB,MAAMC,GACFz8J,cACIG,KAAKqM,OAAS,KACdrM,KAAKoE,IAAM,KACXpE,KAAKwN,MAAQ,CACjB,CACI+uJ,sBAAoB,OAAO,IAAM,CACjCC,iBACA,OAAOx8J,KAAKqM,OAASrM,KAAKqM,OAAOowJ,UAAUz8J,MAAQ,CACvD,CACI08J,eACA,OAAO18J,KAAKw8J,WAAax8J,KAAKyE,MAClC,CACAg4J,UAAUE,GACN,IAAI7oH,EAAM9zC,KAAKw8J,WACf,QAAShiI,KAASx6B,KAAKu3B,SAAU,CAC7B,GAAIiD,GAASmiI,EACT,OAAO7oH,EACXA,GAAOtZ,EAAM/1B,OAAS+1B,EAAMoiI,WAEhC,MAAM,IAAIvgB,WAAW,6BACzB,CACAwgB,SAASF,GACL,OAAO38J,KAAKy8J,UAAUE,GAAQA,EAAKl4J,MACvC,CACAq4J,KAAKH,EAAMI,GACP,GAAiB,EAAb/8J,KAAKwN,MAAoC,CACzC,IACiBsL,EADbzM,EAASrM,KAAKoE,IACdkiG,EAAO,KACX,QAAS9rE,KAASx6B,KAAKu3B,SAAU,CAC7B,GAAkB,EAAdiD,EAAMhtB,MAAgC,CACtC,IAAKgtB,EAAMp2B,MAAQ0U,EAAOwtF,EAAOA,EAAKv5F,YAAcV,EAAO62B,YAAa,CACpE,IAAI85H,EAAcV,GAAYt4J,IAAI8U,KAC7BkkJ,IAAgBA,EAAY3wJ,QAAU2wJ,EAAYC,YAAYziI,KAC/DA,EAAM0iI,SAASpkJ,EAAI,CAE3B0hB,EAAMsiI,KAAKH,EAAMI,GACjBviI,EAAMhtB,QAAS,EAKnB,GAHAsL,EAAOwtF,EAAOA,EAAKv5F,YAAcV,EAAO62B,WACpC65H,IAAUA,EAAMI,SAAWJ,EAAMl8J,MAAQwL,GAAUyM,GAAQ0hB,EAAMp2B,MACjE24J,EAAMI,SAAU,GAChB3iI,EAAMp2B,IAAItD,YAAcuL,EACxB,KAAOyM,GAAQA,GAAQ0hB,EAAMp2B,KACzB0U,EAAOskJ,GAAKtkJ,QAGhBzM,EAAOI,aAAa+tB,EAAMp2B,IAAK0U,GAEnCwtF,EAAO9rE,EAAMp2B,IAKjB,IAHA0U,EAAOwtF,EAAOA,EAAKv5F,YAAcV,EAAO62B,WACpCpqB,GAAQikJ,GAASA,EAAMl8J,MAAQwL,IAC/B0wJ,EAAMI,SAAU,GACbrkJ,GACHA,EAAOskJ,GAAKtkJ,EAAI,SAEF,EAAb9Y,KAAKwN,MACV,QAASgtB,KAASx6B,KAAKu3B,SACD,EAAdiD,EAAMhtB,QACNgtB,EAAMsiI,KAAKH,EAAMI,GACjBviI,EAAMhtB,QAAS,EAG/B,CACA0vJ,SAASG,GAAQ,CACjBC,gBAAgBz8J,EAAMqtD,GAClB,IAAIqvG,EACJ,GAAI18J,GAAQb,KAAKoE,IACbm5J,EAAQv9J,KAAKoE,IAAI20J,WAAW7qG,OAE3B,CACD,IAAIsvG,EAA0B,GAAnB1E,GAAUj4J,GAAa,EAAc,GAAVqtD,GAAc,EAAK,EACzD,OAAS,CACL,IAAI7hD,EAASxL,EAAKC,WAClB,GAAIuL,GAAUrM,KAAKoE,IACf,MACQ,GAARo5J,GAAanxJ,EAAO62B,YAAc72B,EAAOoxJ,YAErCD,EADA38J,GAAQwL,EAAO62B,YACR,EAEA,GAEfriC,EAAOwL,EAGPkxJ,EADAC,EAAO,EACC38J,EAEAA,EAAKkM,YAErB,GAAIwwJ,GAASv9J,KAAKoE,IAAI8+B,WAClB,OAAO,EACX,KAAOq6H,IAAUjB,GAAYt4J,IAAIu5J,IAC7BA,EAAQA,EAAMxwJ,YAClB,IAAKwwJ,EACD,OAAOv9J,KAAKyE,OAChB,QAASD,EAAI,EAAGsvC,EAAM,GAAItvC,IAAK,CAC3B,IAAIg2B,EAAQx6B,KAAKu3B,SAAS/yB,GAC1B,GAAIg2B,EAAMp2B,KAAOm5J,EACb,OAAOzpH,EACXA,GAAOtZ,EAAM/1B,OAAS+1B,EAAMoiI,WAEpC,CACAc,gBAAgB3jJ,EAAMm5G,EAAIhlE,EAAS,GAC/B,IAAIyvG,GAAQ,EAAIC,GAAY,EAAIC,GAAM,EAAIC,GAAQ,EAClD,QAASt5J,EAAI,EAAGsvC,EAAMoa,EAAQ6vG,EAAU7vG,EAAQ1pD,EAAIxE,KAAKu3B,SAAS9yB,OAAQD,IAAK,CAC3E,IAAIg2B,EAAQx6B,KAAKu3B,SAAS/yB,GAAIgH,EAAMsoC,EAAMtZ,EAAM/1B,OAChD,GAAIqvC,EAAM/5B,GAAQvO,EAAM0nH,EACpB,OAAO14F,EAAMkjI,gBAAgB3jJ,EAAMm5G,EAAIp/E,GAK3C,GAJItoC,GAAOuO,IAAiB,GAAT4jJ,IACfA,EAAQn5J,EACRo5J,EAAY9pH,GAEZA,EAAMo/E,GAAM14F,EAAMp2B,IAAItD,YAAcd,KAAKoE,IAAK,CAC9Cy5J,EAAMr5J,EACNs5J,EAAQC,EACR,MAEJA,EAAUvyJ,EACVsoC,EAAMtoC,EAAMgvB,EAAMoiI,WAEtB,MAAO,CAAE7iJ,KAAM6jJ,EAAW1qC,GAAI4qC,EAAQ,EAAI5vG,EAASluD,KAAKyE,OAASq5J,EAC7DE,UAAWL,EAAQ39J,KAAKu3B,SAASomI,EAAQ,GAAGv5J,IAAI2I,YAAc,OAAS/M,KAAKoE,IAAI8+B,WAChF+6H,OAAQJ,EAAM79J,KAAKu3B,SAAS9yB,QAAUo5J,GAAO,EAAI79J,KAAKu3B,SAASsmI,GAAKz5J,IAAM,KAClF,CACA85J,UAAUC,GAAY,GAClBn+J,KAAKwN,OAAS,EACdxN,KAAKo+J,iBAAiBD,EAC1B,CACAC,iBAAiBC,GACb,QAAShyJ,EAASrM,KAAKqM,OAAQA,EAAQA,EAASA,EAAOA,OAAQ,CAG3D,GAFIgyJ,IACAhyJ,EAAOmB,OAAS,GACD,EAAfnB,EAAOmB,MACP,OACJnB,EAAOmB,OAAS,EAChB6wJ,GAAY,EAEpB,CACAC,UAAUjyJ,GACFrM,KAAKqM,QAAUA,IACfrM,KAAKqM,OAASA,EACG,EAAbrM,KAAKwN,OACLxN,KAAKo+J,kBAAiB,GAElC,CACAG,OAAOn6J,GACCpE,KAAKoE,KAAOA,IAEZpE,KAAKoE,MACLpE,KAAKoE,IAAIo6J,OAAS,MACtBx+J,KAAKoE,IAAMA,EACXA,EAAIo6J,OAASx+J,KACjB,CACIy+J,eACA,QAASljJ,EAAIvb,OAAQ,CACjB,IAAIqM,EAASkP,EAAElP,OACf,IAAKA,EACD,OAAOkP,EACXA,EAAIlP,EAEZ,CACAqyJ,gBAAgB3kJ,EAAMm5G,EAAI37F,EAAW8kI,IACjCr8J,KAAKk+J,YACL,QAAS15J,EAAIuV,EAAMvV,EAAI0uH,EAAI1uH,IAAK,CAC5B,IAAIg2B,EAAQx6B,KAAKu3B,SAAS/yB,GACtBg2B,EAAMnuB,QAAUrM,MAAQu3B,EAASrmB,QAAQspB,GAAS,GAClDA,EAAM1uB,SAAO,CAErB9L,KAAKu3B,SAASpmB,OAAO4I,EAAMm5G,EAAKn5G,KAASwd,GACzC,QAAS/yB,EAAI,EAAGA,EAAI+yB,EAAS9yB,OAAQD,IACjC+yB,EAAS/yB,GAAG85J,UAAUt+J,KAC9B,CACA2+J,eAAeC,GAAQ,OAAO,CAAO,CACrCC,YAAYC,GAAU,OAAO,CAAO,CACpCC,YAAYjrH,EAAM9zC,KAAKyE,QACnB,OAAO,IAAIu6J,GAAYh/J,KAAKu3B,SAAUuc,EAAK9zC,KAAKu3B,SAAS9yB,OAC7D,CACAw6J,SAASnrH,EAAK0pH,EAAO,GACjB,OAAOx9J,KAAK++J,cAAcG,QAAQprH,EAAK0pH,EAC3C,CACAlnJ,WACI,IAAIlT,EAAOpD,KAAKH,YAAYuD,KAAKwG,QAAQ,OAAQ,IACjD,OAAOxG,GAAQpD,KAAKu3B,SAAS9yB,OAAS,IAAMzE,KAAKu3B,SAASza,OAAS,IAC/D9c,KAAKyE,OAAS,KAAe,QAARrB,EAAiBpD,KAAK0jB,KAAO1jB,KAAKyE,QAAU,IAAM,KACtEzE,KAAK48J,WAAa,IAAM,GACjC,CACAz8J,WAAWU,GAAQ,OAAOA,EAAK29J,MAAQ,CACnCW,iBAAe,OAAO,CAAM,CAC5BC,eAAa,OAAO,CAAO,CAC3BC,eAAa,OAAO,CAAO,CAC/B1kH,MAAM5gC,EAAMm5G,EAAIh7G,EAAQonJ,EAAUhM,EAAWK,GACzC,OAAO,CACX,CACA4L,OAAO/kJ,GAAS,OAAO,CAAO,CAC9ByiJ,YAAYziJ,GACR,OAAOA,EAAM3a,aAAeG,KAAKH,eAA8C,GAA5BG,KAAKwN,MAAQgN,EAAMhN,OAC1E,CAIAgyJ,UAAY,OAAO,CAAG,CACtB1zJ,UACI,QAAS0uB,KAASx6B,KAAKu3B,SACfiD,EAAMnuB,QAAUrM,MAChBw6B,EAAM1uB,UACd9L,KAAKqM,OAAS,IAClB,EAIJ,SAAS+wJ,GAAKh5J,GACV,IAAI0U,EAAO1U,EAAI2I,YACf3I,SAAItD,WAAWC,YAAYqD,GACpB0U,CACX,CANAwjJ,GAAYjtI,UAAUutI,WAAa,EAOnC,MAAMoC,GACFn/J,YAAY03B,EAAUuc,EAAKtvC,GACvBxE,KAAKu3B,SAAWA,EAChBv3B,KAAK8zC,IAAMA,EACX9zC,KAAKwE,EAAIA,EACTxE,KAAKyjJ,IAAM,CACf,CACAyb,QAAQprH,EAAK0pH,EAAO,GAChB,OAAS,CACL,GAAI1pH,EAAM9zC,KAAK8zC,KAAOA,GAAO9zC,KAAK8zC,MAC7B0pH,EAAO,GAAe,GAAVx9J,KAAKwE,GAAUxE,KAAKu3B,SAASv3B,KAAKwE,EAAI,GAAGo4J,YACtD,YAAKnZ,IAAM3vG,EAAM9zC,KAAK8zC,IACf9zC,KAEX,IAAI8Y,EAAO9Y,KAAKu3B,WAAWv3B,KAAKwE,GAChCxE,KAAK8zC,KAAOh7B,EAAKrU,OAASqU,EAAK8jJ,WAEvC,EAEJ,SAASpX,GAAan5I,EAAQsxJ,EAAO8B,EAAS5B,EAAK6B,EAAO91H,EAAQ+1H,EAAcrM,EAAWK,GACvF,IAAMp8H,YAAalrB,EACf81I,EAAS5qH,EAAS9yB,OAAS8yB,EAASomI,GAAS,KAC7C/pI,EAAOgW,EAAOnlC,OAASmlC,EAAOA,EAAOnlC,OAAS,GAAK,KACnDm7J,EAAahsI,EAAOA,EAAKgpI,WAAa+C,EAE1C,KAAIhC,GAASE,GAAO1b,IAAWwd,IAAiBC,GAAch2H,EAAOnlC,OAAS,GAC1E09I,EAAOxnG,MAAM8kH,EAASC,EAAO91H,EAAOnlC,OAASmvB,EAAO,KAAiB,GAAX6rI,EAAcnM,EAAWK,IAEvF,IAAIkK,EAAMtmI,EAAS9yB,OAAQ,CACvB,IAAI84J,GAAQhmI,EAASsmI,GAEjBN,KAAUmC,EAAQnC,GAAM94J,QAAU84J,GAAMX,YAA2DhpI,GAAKgpI,aAGpGe,GAASE,IACTN,GAAQA,GAAM1sJ,MAAM6uJ,GACpBA,EAAQ,IAIPE,GAAchsI,GAAQ2pI,GAAM5iH,MAAM,EAAG+kH,EAAO9rI,GAAM,EAAM,EAAG+/H,GAC5D/pH,EAAOA,EAAOnlC,OAAS,GAAK84J,KAKxBmC,GAASnC,GAAMhmI,SAAS9yB,SAAW84J,GAAMhmI,SAAS,GAAG9yB,SACrD84J,GAAM5iH,MAAM,EAAG+kH,EAAO,MAAM,EAAO,EAAG/L,GAC1C/pH,EAAOhhC,KAAK20J,MAGmCA,IAAMX,aAGrDhpI,EACAA,EAAKgpI,WAAa,EAElB+C,EAAe,GAIvB9B,IAeJ,IAbI1b,IACAA,EAAOya,WAAa+C,EAChBF,EAAU,KACLE,GAAgB/1H,EAAOnlC,QAAU09I,EAAOxnG,MAAM8kH,EAAStd,EAAO19I,OAAQmlC,EAAO,IAAI,EAAO0pH,EAAW,GACpGnR,EAAOya,WAAahzH,EAAO35B,QAAQ2sJ,YAE9B6C,EAAUtd,EAAO19I,QAAU09I,EAAO5qH,SAAS9yB,QAAgE,GAAtD09I,EAAO5qH,SAAS4qH,EAAO5qH,SAAS9yB,OAAS,GAAGA,SACtG09I,EAAOxnG,MAAM8kH,EAAStd,EAAO19I,OAAQ,MAAM,EAAO6uJ,EAAW,GAEjEqK,MAIDA,EAAQE,GAAOj0H,EAAOnlC,QACzB,GAAI8yB,EAASsmI,EAAM,GAAG0B,OAAO31H,EAAOA,EAAOnlC,OAAS,IAChDo5J,IACAj0H,EAAO54B,MACP2iJ,EAAU/pH,EAAOnlC,OAAS,EAAI6uJ,WAEzB/7H,EAASomI,GAAO4B,OAAO31H,EAAO,IAMnC,MALA+zH,IACA/zH,EAAO35B,QACPqjJ,EAAY1pH,EAAOnlC,OAAS,EAAIkvJ,CAGhC,EAGH/pH,EAAOnlC,QAAUk5J,GAASE,EAAMtmI,EAAS9yB,SAAW8yB,EAASomI,EAAQ,GAAGf,YACzErlI,EAASsmI,GAAKljH,MAAM,EAAG,EAAGpjB,EAASomI,EAAQ,IAAI,EAAOrK,EAAWK,IACjEgK,KACAA,EAAQE,GAAOj0H,EAAOnlC,SACtB4H,EAAOqyJ,gBAAgBf,EAAOE,EAAKj0H,EAAM,CACjD,CACA,SAASi2H,GAAkBxzJ,EAAQ0N,EAAMm5G,EAAItpF,EAAQ0pH,EAAWK,GAC5D,IAAIhC,EAAMtlJ,EAAO0yJ,eACXv6J,EAAGq5J,EAAKpa,IAAKic,GAAU/N,EAAIuN,QAAQhsC,EAAI,IACvC1uH,EAAGm5J,EAAOla,IAAKgc,GAAY9N,EAAIuN,QAAQnlJ,GAAM,GAC/C+lJ,EAAO/lJ,EAAOm5G,EAClB,QAASypC,KAAQ/yH,EACbk2H,GAAQnD,EAAKl4J,OACjB4H,EAAO5H,QAAUq7J,EACjBta,GAAan5I,EAAQsxJ,EAAO8B,EAAS5B,EAAK6B,EAAO91H,EAAQ,EAAG0pH,EAAWK,EAC3E,CAEA,IAAIv2H,UAAan6B,UAAa,IAAcA,UAAY,CAAEC,UAAW,GAAI68J,OAAQ,GAAI96I,SAAU,IAC3F/jB,UAAaG,SAAY,IAAcA,SAAW,CAAEi8D,gBAAiB,CAAEv2D,MAAO,CAAC,IACnF,MAAMi5J,GAAuB,cAAcj/F,KAAK3jC,GAAIl6B,WAC9C+8J,GAAyB,UAAU98I,KAAKia,GAAIl6B,WAC5Cg9J,GAAuB,wCAAwCn/F,KAAK3jC,GAAIl6B,WACxE60J,MAAQkI,IAAaC,IAAWF,IAChCG,IAASpI,IAAmB,gBAAgB50I,KAAKia,GAAIl6B,WACrDk9J,IAAUrI,IAAmB,gBAAgBh3F,KAAK3jC,GAAIl6B,WACtDm9J,GAAS,wBAAyBn/J,GAAIo8D,gBAAgBv2D,MACtDu5J,IAAUvI,IAAmB,iBAAiB50I,KAAKia,GAAI2iI,QACvDQ,GAAMD,KAAwB,cAAcn9I,KAAKia,GAAIl6B,YAAck6B,GAAIojI,eAAiB,GAC9F,IAAIC,GAAU,CACV3I,IAAKyI,IAAoB,MAAMp9I,KAAKia,GAAInY,UACxCy7I,QAAsB,MAAMv9I,KAAKia,GAAInY,UACrC07I,MAAoB,YAAYx9I,KAAKia,GAAInY,UACzC8yI,GAAE6I,GACFC,WAAYZ,GAAY/+J,GAAI4/J,cAAgB,EAAIZ,IAAWA,GAAQ,GAAKF,IAAWA,GAAQ,GAAK,EAChGG,SACAY,cAAeZ,KAAuB,iBAAiBp/F,KAAK3jC,GAAIl6B,YAAc,CAAC,EAAG,IAAI,GAAK,EAC3Fk9J,SAAUA,GACVY,eAAgBZ,IAAUA,GAAO,GAAK,EACtCG,OACAU,QAAsB,YAAY99I,KAAKia,GAAIl6B,WAC3Cm9J,UACAC,UACAY,eAAgBb,KAAwB,uBAAuBt/F,KAAK3jC,GAAIl6B,YAAc,CAAC,EAAG,IAAI,GAAK,EACnG+rJ,QAA8C,MAArC/tJ,GAAIo8D,gBAAgBv2D,MAAMkoJ,QAAkB,WAAa,iBAItE,MAAMkS,WAAiB7E,GACnBz8J,YAAY6jB,GACR5jB,QACAE,KAAK0jB,KAAOA,CAChB,CACIjf,aAAW,OAAOzE,KAAK0jB,KAAKjf,MAAQ,CACxC28J,UAAUC,GACNrhK,KAAKu+J,OAAO8C,GAAWhgK,SAAS+K,eAAepM,KAAK0jB,MACxD,CACAo5I,KAAKH,EAAMI,GACF/8J,KAAKoE,KACNpE,KAAKohK,YACLphK,KAAKoE,IAAI0J,WAAa9N,KAAK0jB,OACvBq5I,GAASA,EAAMl8J,MAAQb,KAAKoE,MAC5B24J,EAAMI,SAAU,GACpBn9J,KAAKoE,IAAI0J,UAAY9N,KAAK0jB,KAElC,CACAw5I,SAAS94J,GACe,GAAhBA,EAAI3C,UACJzB,KAAKohK,UAAUh9J,EACvB,CACAu2C,MAAM5gC,EAAMm5G,EAAIh7G,GACZ,QAAkB,EAAblY,KAAKwN,OACN0K,MAAaA,aAAkBipJ,KAC3BnhK,KAAKyE,QAAUyuH,EAAKn5G,GAAQ7B,EAAOzT,OA1BhC,KA2Ba,EAAfyT,EAAO1K,SAEhBxN,KAAK0jB,KAAO1jB,KAAK0jB,KAAK3d,MAAM,EAAGgU,IAAS7B,EAASA,EAAOwL,KAAO,IAAM1jB,KAAK0jB,KAAK3d,MAAMmtH,GACrFlzH,KAAKk+J,YACE,GACX,CACArtJ,MAAMkJ,GACF,IAAIzI,EAAS,IAAI6vJ,GAASnhK,KAAK0jB,KAAK3d,MAAMgU,IAC1C,YAAK2J,KAAO1jB,KAAK0jB,KAAK3d,MAAM,EAAGgU,GAC/B/Z,KAAKk+J,YACL5sJ,EAAO9D,OAAsB,EAAbxN,KAAKwN,MACd8D,CACX,CACAgsJ,gBAAgBz8J,EAAMqtD,GAClB,OAAOrtD,GAAQb,KAAKoE,IAAM8pD,EAASA,EAASluD,KAAK0jB,KAAKjf,OAAS,CACnE,CACA68J,SAASxtH,GAAO,OAAO,IAAIqoH,GAAOn8J,KAAKoE,IAAK0vC,EAAM,CAClD4pH,gBAAgB6D,EAAOC,EAAKtzG,GACxB,MAAO,CAAEn0C,KAAMm0C,EAAQglE,GAAIhlE,EAASluD,KAAKyE,OAAQu5J,SAAUh+J,KAAKoE,IAAK65J,OAAQj+J,KAAKoE,IAAI2I,YAC1F,CACA00J,SAAS3tH,EAAKu7G,GACV,OAuER,SAASqS,GAAWh+I,EAAMowB,EAAKu7G,GAC3B,IAAI5qJ,EAASif,EAAK5V,UAAUrJ,OACxBqvC,EAAMrvC,IACNqvC,EAAMrvC,GACV,IAAIsV,EAAO+5B,EAAKo/E,EAAKp/E,EAAK3d,EAAU,EACzB,GAAP2d,GAAYu7G,EAAO,GAAKv7G,GAAOrvC,GAAU4qJ,GAAQ,EAC3CoR,GAAQL,QAAUK,GAAQN,QACxBrsH,GACA/5B,IACAoc,EAAU,GAEL+8F,EAAKzuH,IACVyuH,IACA/8F,GAAU,IAKdk5H,EAAO,EACPt1I,IACKm5G,EAAKzuH,GACVyuH,IAER,IAAIyuC,EAAQvJ,GAAU10I,EAAM3J,EAAMm5G,GAAImlC,iBACtC,IAAKsJ,EAAMl9J,OACP,OAAO,KACX,IAAIy0J,EAAOyI,GAAOxrI,EAAUA,EAAU,EAAIk5H,GAAQ,GAAK,EAAIsS,EAAMl9J,OAAS,GAC1E,OAAIg8J,GAAQH,SAAWnqI,GAAyB,GAAd+iI,EAAKzgG,QACnCygG,EAAOp/I,MAAMuV,UAAUuQ,KAAKvnB,KAAKspJ,EAAO/rJ,GAAKA,EAAE6iD,QAAUygG,GACtD/iI,EAAU8iI,GAAYC,EAAM/iI,EAAU,GAAK+iI,GAAQ,IAC9D,CArGewI,CAAW1hK,KAAKoE,IAAK0vC,EAAKu7G,EACrC,EAEJ,MAAMuS,WAAiBtF,GACnBz8J,YAAYgiK,EAAMtqI,EAAW,GAAI9yB,EAAS,GACtC3E,QACAE,KAAK6hK,KAAOA,EACZ7hK,KAAKu3B,SAAWA,EAChBv3B,KAAKyE,OAASA,EACd,QAASq6I,KAAMvnH,EACXunH,EAAGwf,UAAUt+J,KACrB,CACA8hK,SAAS19J,GAIL,GAHAq3J,GAAgBr3J,GACZpE,KAAK6hK,KAAKE,QACV39J,EAAIy4E,UAAY78E,KAAK6hK,KAAKE,OAC1B/hK,KAAK6hK,KAAK1nG,MACV,QAAS/2D,KAAQpD,KAAK6hK,KAAK1nG,MACvB/1D,EAAIzB,aAAaS,EAAMpD,KAAK6hK,KAAK1nG,MAAM/2D,IAC/C,OAAOgB,CACX,CACA64J,YAAYziJ,GACR,OAAO1a,MAAMm9J,YAAYziJ,MAAyC,GAA5Bxa,KAAKwN,MAAQgN,EAAMhN,OAC7D,CACA0vJ,SAASr8J,GACDA,EAAKg4J,UAAY74J,KAAK6hK,KAAK5gK,QAAQ+c,gBACnChe,KAAKu+J,OAAO19J,GACZb,KAAKwN,OAAS,EAEtB,CACAsvJ,KAAKH,EAAMI,GACF/8J,KAAKoE,IAEY,EAAbpE,KAAKwN,OACVxN,KAAK8hK,SAAS9hK,KAAKoE,KAFnBpE,KAAKu+J,OAAOv+J,KAAK8hK,SAASzgK,SAASL,cAAchB,KAAK6hK,KAAK5gK,WAG/DnB,MAAMg9J,KAAKH,EAAMI,EACrB,CACApiH,MAAM5gC,EAAMm5G,EAAIh7G,EAAQ8pJ,EAAW1O,EAAWK,GAC1C,QAAIz7I,MAAaA,aAAkB0pJ,IAAY1pJ,EAAO2pJ,KAAKllB,GAAG38I,KAAK6hK,QAC9D9nJ,GAAQu5I,GAAa,GAAOpgC,EAAKlzH,KAAKyE,QAAUkvJ,GAAW,KAEhEkM,GAAkB7/J,KAAM+Z,EAAMm5G,EAAIh7G,EAASA,EAAOqf,SAASxxB,QAAU,GAAIutJ,EAAY,EAAGK,EAAU,GAClG3zJ,KAAKk+J,YACE,GACX,CACArtJ,MAAMkJ,GACF,IAAIzI,EAAS,GAAImyI,EAAM,EAAGwe,GAAa,EAAIz9J,EAAI,EAC/C,QAASk1J,KAAO15J,KAAKu3B,SAAU,CAC3B,IAAI/rB,EAAMi4I,EAAMiW,EAAIj1J,OAChB+G,EAAMuO,GACNzI,EAAO1I,KAAK66I,EAAM1pI,EAAO2/I,EAAI7oJ,MAAMkJ,EAAO0pI,GAAOiW,GACjDuI,EAAa,GAAKxe,GAAO1pI,IACzBkoJ,EAAaz9J,GACjBi/I,EAAMj4I,EACNhH,IAEJ,IAAIC,EAASzE,KAAKyE,OAASsV,EAC3B,YAAKtV,OAASsV,EACVkoJ,GAAa,IACbjiK,KAAKu3B,SAAS9yB,OAASw9J,EACvBjiK,KAAKk+J,aAEF,IAAI0D,GAAS5hK,KAAK6hK,KAAMvwJ,EAAQ7M,EAC3C,CACA68J,SAASxtH,GACL,OAAOouH,GAAeliK,KAAM8zC,EAChC,CACA2tH,SAAS3tH,EAAKu7G,GACV,OAAO8S,GAAiBniK,KAAM8zC,EAAKu7G,EACvC,EAkCJ,MAAM+S,WAAmB9F,GACrBn8J,cAAckiK,EAAQ59J,EAAQ4qJ,GAC1B,OAAO,IAAI+S,GAAWC,EAAQ59J,EAAQ4qJ,EAC1C,CACAxvJ,YAAYwiK,EAAQ59J,EAAQ4qJ,GACxBvvJ,QACAE,KAAKqiK,OAASA,EACdriK,KAAKyE,OAASA,EACdzE,KAAKqvJ,KAAOA,EACZrvJ,KAAKsiK,WAAa,IACtB,CACAzxJ,MAAMkJ,GACF,IAAIzI,EAAS8wJ,GAAWx2J,OAAO5L,KAAKqiK,OAAQriK,KAAKyE,OAASsV,EAAM/Z,KAAKqvJ,MACrE,YAAK5qJ,QAAUsV,EACRzI,CACX,CACAwrJ,KAAKH,KACI38J,KAAKoE,MAAQpE,KAAKqiK,OAAOE,UAAUviK,KAAKoE,IAAKu4J,MAC1C38J,KAAKoE,KAAOpE,KAAKsiK,YACjBtiK,KAAKsiK,WAAWx2J,QAAQ9L,KAAKoE,KACjCpE,KAAKsiK,WAAa,KAClBtiK,KAAKu+J,OAAOv+J,KAAKqiK,OAAOG,MAAM7F,IACzB38J,KAAKqiK,OAAOI,WACbziK,KAAKoE,IAAI40J,gBAAkB,SAEvC,CACAwG,UAAY,OAAOx/J,KAAKqvJ,IAAM,CAC9B10G,MAAM5gC,EAAMm5G,EAAIh7G,EAAQonJ,EAAUhM,EAAWK,GACzC,QAAIz7I,MAAaA,aAAkBkqJ,IAAgBpiK,KAAKqiK,OAAO/hI,QAAQpoB,EAAOmqJ,UAC1EtoJ,EAAO,GAAKu5I,GAAa,GAAKpgC,EAAKlzH,KAAKyE,QAAUkvJ,GAAW,KAEjE3zJ,KAAKyE,OAASsV,GAAQ7B,EAASA,EAAOzT,OAAS,IAAMzE,KAAKyE,OAASyuH,GAC5D,GACX,CACAqsC,OAAO/kJ,GACH,OAAIA,aAAiB4nJ,IAAc5nJ,EAAM60I,MAAQrvJ,KAAKqvJ,MAClDrvJ,KAAKqiK,OAAOxiK,aAAe2a,EAAM6nJ,OAAOxiK,cACnCG,KAAKqiK,OAAO/hI,QAAQ9lB,EAAM6nJ,SAC3BriK,KAAKk+J,WAAU,GACfl+J,KAAKoE,MAAQpE,KAAKsiK,aAClBtiK,KAAKsiK,WAAatiK,KAAKqiK,QAC3BriK,KAAKqiK,OAAS7nJ,EAAM6nJ,OACpBriK,KAAKyE,OAAS+V,EAAM/V,QACb,EAGf,CACAk6J,iBAAmB,OAAO,CAAM,CAChCE,YAAY90J,GAAS,OAAO/J,KAAKqiK,OAAOxD,YAAY90J,EAAQ,CACxDwyJ,sBACA,GAAmB,GAAfv8J,KAAKyE,OACL,OAAO03I,SACX,IAAIoD,EAAMv/I,KACV,KAAOu/I,EAAIlzI,QACPkzI,EAAMA,EAAIlzI,OACd,IAAMswJ,QAASpd,EAAK77H,EAAOi5I,GAAQA,EAAKj0I,MAAMxnB,IAAKmiF,EAAQrjF,KAAKw8J,WAChE,OAAO94I,EAAOA,EAAK3d,MAAMs9E,EAAOA,EAAQrjF,KAAKyE,QAAU03I,QAC3D,CACAmlB,SAASxtH,GACL,OAAQ9zC,KAAKyE,OAAgB,GAAPqvC,EAAW9zC,KAAKqvJ,KAAO,GACvC8M,GAAOha,OAAOniJ,KAAKoE,KACnB+3J,GAAOoB,MAAMv9J,KAAKoE,IAAK0vC,GAAO9zC,KAAKyE,OAC7C,CACAi5J,kBAAoB,OAAO,IAAM,CACjC+D,SAAS3tH,EAAKu7G,GACV,IAAIqT,EAAS1iK,KAAKqiK,OAAOZ,SAASzhK,KAAKoE,IAAK0vC,EAAKu7G,GACjD,GAAIqT,EACA,OAAOA,EACX,IAAIf,EAAQ3hK,KAAKoE,IAAIi0J,iBAAkBa,EAAO,KAC9C,IAAKyI,EAAMl9J,OACP,OAAO,KACX,IAAIk+J,EAAW3iK,KAAKqvJ,KAAOrvJ,KAAKqvJ,KAAO,EAAIv7G,EAAM,EACjD,QAAStvC,EAAIm+J,EAAWhB,EAAMl9J,OAAS,EAAI,EACvCy0J,EAAOyI,EAAMn9J,KACTsvC,EAAM,EAAS,GAALtvC,EAASA,GAAKm9J,EAAMl9J,OAAS,GAAKy0J,EAAK3Z,IAAM2Z,EAAKC,QAFrB30J,GAAMm+J,GAAW,EAAK,GAKrE,OAAO1J,GAAYC,GAAOyJ,EAC9B,CACIxD,iBAAe,OAAO,CAAO,CAC7BC,eAAa,OAAO,CAAM,CAC1BC,eAAa,OAAOr/J,KAAKqiK,OAAOhD,QAAU,CAC9CvzJ,UACIhM,MAAMgM,UACF9L,KAAKoE,KACLpE,KAAKqiK,OAAOv2J,QAAQ9L,KAAKoE,IACjC,EAKJ,MAAMw+J,WAAyBtG,GAC3Bz8J,YAAYwvJ,GACRvvJ,QACAE,KAAKqvJ,KAAOA,CAChB,CACI5qJ,aAAW,OAAO,CAAG,CACzBk2C,QAAU,OAAO,CAAO,CACxB4kH,OAAO/kJ,GACH,OAAOA,aAAiBooJ,IAAoBpoJ,EAAM60I,MAAQrvJ,KAAKqvJ,IACnE,CACAx+I,QAAU,OAAO,IAAI+xJ,GAAiB5iK,KAAKqvJ,KAAO,CAClDyN,OACI,IAAK98J,KAAKoE,IAAK,CACX,IAAIA,EAAM/C,SAASL,cAAc,OACjCoD,EAAIy4E,UAAY,kBAChBz4E,EAAIzB,aAAa,cAAe,QAChC3C,KAAKu+J,OAAOn6J,EAAG,CAEvB,CACAo7J,UAAY,OAAOx/J,KAAKqvJ,IAAM,CAC9BiS,SAASxtH,GAAO,OAAO9zC,KAAKqvJ,KAAO,EAAI8M,GAAOha,OAAOniJ,KAAKoE,KAAO+3J,GAAOoB,MAAMv9J,KAAKoE,IAAM,CACzFk5J,kBAAoB,OAAO,CAAG,CAC9BI,kBAAoB,OAAO,IAAM,CACjC+D,SAAS3tH,GACL,OAAO9zC,KAAKoE,IAAIy+J,uBACpB,CACItG,sBACA,OAAOpgB,QACX,CACIkjB,eAAa,OAAO,CAAM,EAGlC,SAAS6C,GAAe71J,EAAQynC,GAC5B,IAAI1vC,EAAMiI,EAAOjI,KAAOmzB,YAAalrB,EAAQ7H,EAAI,EACjD,QAASi/I,EAAM,EAAGj/I,EAAI+yB,EAAS9yB,OAAQD,IAAK,CACxC,IAAIg2B,EAAQjD,EAAS/yB,GAAIgH,EAAMi4I,EAAMjpH,EAAM/1B,OAC3C,KAAI+G,GAAOi4I,GAAOjpH,EAAMglI,WAAa,GAErC,IAAI1rH,EAAM2vG,GAAO3vG,EAAMtoC,GAAOgvB,EAAMp2B,IAAItD,YAAcsD,EAClD,OAAOo2B,EAAM8mI,SAASxtH,EAAM2vG,GAChC,GAAI3vG,GAAO2vG,EACP,MACJA,EAAMj4I,GAEV,QAAS2zE,EAAI36E,EAAG26E,EAAI,EAAGA,IAAK,CACxB,IAAImnB,EAAO/uE,EAAS4nD,EAAI,GACxB,GAAImnB,EAAKliG,IAAItD,YAAcsD,EACvB,OAAOkiG,EAAKg7D,SAASh7D,EAAK7hG,OAAM,CAExC,QAAS06E,EAAI36E,EAAG26E,EAAI5nD,EAAS9yB,OAAQ06E,IAAK,CACtC,IAAIrmE,EAAOye,EAAS4nD,GACpB,GAAIrmE,EAAK1U,IAAItD,YAAcsD,EACvB,OAAO0U,EAAKwoJ,SAAS,EAAC,CAE9B,OAAO,IAAInF,GAAO/3J,EAAK,EAC3B,CAEA,SAAS0+J,GAAez2J,EAAQswJ,EAAMj6I,GAClC,IAAIkR,GAAQ2D,YAAalrB,EACrBqW,EAAO,GAAKi6I,aAAgBiF,IAAYrqI,EAAS9yB,SAChDmvB,EAAO2D,EAASA,EAAS9yB,OAAS,cAAem9J,IAAYhuI,EAAKiuI,KAAKllB,GAAGggB,EAAKkF,MAChFiB,GAAelvI,EAAM+oI,EAAKplI,SAAS,GAAI7U,EAAO,IAG9C6U,EAAS3uB,KAAK+zJ,GACdA,EAAK2B,UAAUjyJ,IAEnBA,EAAO5H,QAAUk4J,EAAKl4J,MAC1B,CACA,SAAS09J,GAAiBxF,EAAM7oH,EAAKu7G,GACjC,IAAIlN,EAAS,KAAM4gB,GAAY,EAAIxF,EAAQ,KAAMyF,GAAW,GAC5D,SAAShwI,EAAK2pI,EAAM7oH,GAChB,QAAStvC,EAAI,EAAGi/I,EAAM,EAAGj/I,EAAIm4J,EAAKplI,SAAS9yB,QAAUg/I,GAAO3vG,EAAKtvC,IAAK,CAClE,IAAIg2B,GAAQmiI,EAAKplI,SAAS/yB,GAAIgH,GAAMi4I,EAAMjpH,GAAM/1B,OAC5C+G,IAAOsoC,IACHtZ,GAAMjD,SAAS9yB,OACfuuB,EAAKwH,GAAOsZ,EAAM2vG,KAEX8Z,GAASA,EAAM8B,UAAYhQ,EAAO,KACxC7jJ,GAAMsoC,GAAO2vG,GAAOj4I,IAAOgvB,GAAMglI,UAAY,IAC9CjC,EAAQ/iI,GACRwoI,EAAWlvH,EAAM2vG,IAEZA,EAAM3vG,GAAQ2vG,GAAOj4I,IAAOgvB,GAAMglI,UAAY,IAAOhlI,GAAM6kI,YAChEld,EAAS3nH,GACTuoI,EAAYjvH,EAAM2vG,IAG1BA,EAAMj4I,GAEd,CACAwnB,CAAK2pI,EAAM7oH,GACX,IAAI/xC,GAAUstJ,EAAO,EAAIlN,EAASob,IAAUpb,GAAUob,EACtD,OAAIx7J,EACOA,EAAO0/J,SAASv2I,KAAKC,IAAI,EAAGppB,GAAUogJ,EAAS4gB,EAAYC,GAAW3T,GAGrF,SAAS4T,GAAatG,GAClB,IAAI/oI,EAAO+oI,EAAKv4J,IAAIq5J,UACpB,IAAK7pI,EACD,OAAO+oI,EAAKv4J,IAAIy+J,wBACpB,IAAIlB,EAAQxJ,GAAevkI,GAC3B,OAAO+tI,EAAMA,EAAMl9J,OAAS,IAAM,IACtC,CARWw+J,CAAatG,EACxB,CASA,SAASuG,GAAahrJ,EAAQnW,GAC1B,QAASqB,KAAQ8U,EACD,SAAR9U,GAAmBrB,EAAOggK,MAC1BhgK,EAAOggK,OAAS,IAAM7pJ,EAAO6pJ,MAChB,SAAR3+J,GAAmBrB,EAAOgF,MAC/BhF,EAAOgF,OAAS,IAAMmR,EAAOnR,MAE7BhF,EAAOqB,GAAQ8U,EAAO9U,GAE9B,OAAOrB,CACX,CApFAo/J,GAAS9xI,UAAUkI,SAAW6qI,GAAW/yI,UAAUkI,SAAWqrI,GAAiBvzI,UAAUkI,SAAW8kI,GAqFpG,MAAM8G,GAAuBx3J,OAAOC,OAAO,MAC3C,SAASw3J,GAAQpyI,EAAGC,EAAGoyI,GACnB,GAAIryI,GAAKC,EACL,OAAO,EACND,IACDA,EAAImyI,IACHlyI,IACDA,EAAIkyI,IACR,IAAIG,EAAQ33J,OAAOtE,KAAK2pB,GAAIuyI,EAAQ53J,OAAOtE,KAAK4pB,GAChD,GAAIqyI,EAAM7+J,QAAU4+J,GAAUC,EAAMpyJ,QAAQmyJ,IAAU,EAAK,EAAI,IAC3DE,EAAM9+J,QAAU4+J,GAAUE,EAAMryJ,QAAQmyJ,IAAU,EAAK,EAAI,GAC3D,OAAO,EACX,QAASvyJ,KAAOwyJ,EACZ,GAAIxyJ,GAAOuyJ,KAAiC,GAAtBE,EAAMryJ,QAAQJ,IAAckgB,EAAElgB,KAASmgB,EAAEngB,IAC3D,OAAO,EAEf,OAAO,CACX,CACA,SAAS0yJ,GAAYp/J,EAAKkiG,EAAMnsC,GAC5B,IAAIguF,GAAU,EACd,GAAI7hD,EACA,QAASljG,KAAQkjG,EACPnsC,GAAS/2D,KAAQ+2D,IACnBguF,GAAU,EACE,SAAR/kJ,EACAgB,EAAI2C,MAAM08J,QAAU,GAEpBr/J,EAAI8I,gBAAgB9J,IAEpC,GAAI+2D,EACA,QAAS/2D,KAAQ+2D,EACPmsC,GAAQA,EAAKljG,IAAS+2D,EAAM/2D,KAC9B+kJ,GAAU,EACE,SAAR/kJ,EACAgB,EAAI2C,MAAM08J,QAAUtpG,EAAM/2D,GAE1BgB,EAAIzB,aAAaS,EAAM+2D,EAAM/2D,KAE7C,OAAO+kJ,CACX,CACA,SAASub,GAASt/J,GACd,IAAI+1D,EAAQxuD,OAAOC,OAAO,MAC1B,QAASpH,EAAI,EAAGA,EAAIJ,EAAIs3J,WAAWj3J,OAAQD,IAAK,CAC5C,IAAI8lF,EAAOlmF,EAAIs3J,WAAWl3J,GAC1B21D,EAAMmwB,EAAKlnF,MAAQknF,EAAKp+E,MAE5B,OAAOiuD,CACX,CAEA,MAAMwpG,WAAiBrH,GACnBz8J,cACIC,SAASC,WACTC,KAAKu3B,SAAW,GAChBv3B,KAAKyE,OAAS,EACdzE,KAAK4jK,eAAY31J,EACjBjO,KAAKm6D,MAAQ,KACbn6D,KAAK48J,WAAa,CACtB,CAEAjiH,MAAM5gC,EAAMm5G,EAAIh7G,EAAQonJ,EAAUhM,EAAWK,GACzC,GAAIz7I,EAAQ,CACR,KAAMA,aAAkByrJ,IACpB,OAAO,EACN3jK,KAAKoE,KACN8T,EAAO2rJ,YAAY7jK,KAAI,CAE/B,OAAIs/J,GACAt/J,KAAK8jK,QAAQ5rJ,EAASA,EAAOiiD,MAAQ,MACzC0lG,GAAkB7/J,KAAM+Z,EAAMm5G,EAAIh7G,EAASA,EAAOqf,SAASxxB,QAAU,GAAIutJ,EAAWK,IAC7E,CACX,CACA9iJ,MAAM2+I,GACF,IAAIhkJ,EAAM,IAAIm4J,GAEd,GADAn4J,EAAIoxJ,WAAa58J,KAAK48J,WACH,GAAf58J,KAAKyE,OACL,OAAO+G,EACX,IAAMhH,IAAGi/I,OAAQzjJ,KAAKi/J,SAASzP,GAC3B/L,IACAj4I,EAAIyO,OAAOja,KAAKu3B,SAAS/yB,GAAGqM,MAAM4yI,GAAM,GACxCzjJ,KAAKu3B,SAAS/yB,GAAGm2C,MAAM8oG,EAAKzjJ,KAAKu3B,SAAS/yB,GAAGC,OAAQ,MAAM,EAAO,EAAG,GACrED,KAEJ,QAAS26E,EAAI36E,EAAG26E,EAAIn/E,KAAKu3B,SAAS9yB,OAAQ06E,IACtC3zE,EAAIyO,OAAOja,KAAKu3B,SAAS4nD,GAAI,GACjC,KAAO36E,EAAI,GAAoC,GAA/BxE,KAAKu3B,SAAS/yB,EAAI,GAAGC,QACjCzE,KAAKu3B,WAAW/yB,GAAGsH,UACvB,YAAKyrB,SAAS9yB,OAASD,EACvBxE,KAAKk+J,YACLl+J,KAAKyE,OAAS+qJ,EACPhkJ,CACX,CACAq4J,YAAYrpJ,GACHxa,KAAKoE,MAEVpE,KAAKk+J,YACL1jJ,EAAM+jJ,OAAOv+J,KAAKoE,KAClBoW,EAAMopJ,eAA+B31J,IAAnBjO,KAAK4jK,UAA0B5jK,KAAKm6D,MAAQn6D,KAAK4jK,UACnE5jK,KAAK4jK,eAAY31J,EACjBjO,KAAKoE,IAAM,KACf,CACA0/J,QAAQ3pG,GACCipG,GAAQpjK,KAAKm6D,MAAOA,KACjBn6D,KAAKoE,MACLpE,KAAK4jK,UAAY5jK,KAAKm6D,MACtBn6D,KAAKk+J,aAETl+J,KAAKm6D,MAAQA,EAErB,CACAlgD,OAAOugB,EAAO84H,GACVwP,GAAe9iK,KAAMw6B,EAAO84H,EAChC,CAEAyQ,YAAYC,GACR,IAAI7pG,EAAQ6pG,EAAKngB,KAAK6X,WAAYuI,EAAMD,EAAKngB,KAAKke,MAC9C5nG,IACAn6D,KAAKm6D,MAAQ+oG,GAAa/oG,EAAOn6D,KAAKm6D,OAAS,CAAC,IAChD8pG,IACAjkK,KAAKm6D,MAAQ+oG,GAAa,CAAEnB,MAAOkC,GAAOjkK,KAAKm6D,OAAS,CAAC,GACjE,CACAmnG,SAASxtH,GACL,OAAOouH,GAAeliK,KAAM8zC,EAChC,CACAopH,SAASr8J,GACgB,OAAjBA,EAAKg4J,WACL74J,KAAKu+J,OAAO19J,GACZb,KAAKwN,OAAS,EAEtB,CACAsvJ,KAAKH,EAAMI,GACP,IAAI/V,EACChnJ,KAAKoE,IAKY,EAAbpE,KAAKwN,QACViuJ,GAAgBz7J,KAAKoE,KACrBpE,KAAKoE,IAAIy4E,UAAY,UACrB78E,KAAK4jK,UAAY5jK,KAAKm6D,MAAQ,UAAOlsD,IAPrCjO,KAAKu+J,OAAOl9J,SAASL,cAAc,QACnChB,KAAKoE,IAAIy4E,UAAY,UACrB78E,KAAK4jK,UAAY5jK,KAAKm6D,MAAQ,UAAOlsD,QAOlBA,IAAnBjO,KAAK4jK,YACLJ,GAAYxjK,KAAKoE,IAAKpE,KAAK4jK,UAAW5jK,KAAKm6D,OAC3Cn6D,KAAKoE,IAAIiJ,UAAU/E,IAAI,WACvBtI,KAAK4jK,eAAY31J,GAErBnO,MAAMg9J,KAAKH,EAAMI,GACjB,IAAInpI,EAAO5zB,KAAKoE,IAAIq5J,UACpB,KAAO7pI,GAAQ0oI,GAAYt4J,IAAI4vB,aAAiBguI,IAC5ChuI,EAAOA,EAAK6pI,UAChB,KAAK7pI,GAAS5zB,KAAKyE,SACE,MAAjBmvB,EAAKilI,UAAyG,IAAnD,QAAhC7R,EAAKsV,GAAYt4J,IAAI4vB,UAA0B,IAAPozH,OAAgB,EAASA,EAAGmY,aACzFsB,GAAQF,KAAQvgK,KAAKu3B,SAASqY,KAAKkvG,GAAMA,aAAcqiB,MAAY,CACzE,IAAI+C,EAAO7iK,SAASL,cAAc,MAClCkjK,EAAKC,UAAW,EAChBnkK,KAAKoE,IAAIsE,YAAYw7J,EAAI,CAEjC,CACAE,kBACI,GAA4B,GAAxBpkK,KAAKu3B,SAAS9yB,QAAezE,KAAKyE,OAAS,GAC3C,OAAO,KACX,IAAoB4/J,EAAhBC,EAAa,EACjB,QAAS9pI,KAASx6B,KAAKu3B,SAAU,CAC7B,KAAMiD,aAAiB2mI,KAAa,SAASh+I,KAAKqX,EAAM9W,MACpD,OAAO,KACX,IAAIi+I,EAAQxJ,GAAe39H,EAAMp2B,KACjC,GAAoB,GAAhBu9J,EAAMl9J,OACN,OAAO,KACX6/J,GAAc3C,EAAM,GAAGlpG,MACvB4rG,EAAa1C,EAAM,GAAG54E,OAE1B,OAAQu7E,EAAoB,CACxBC,WAAYvkK,KAAKoE,IAAIy+J,wBAAwB95E,OAC7Cy7E,UAAWF,EAAatkK,KAAKyE,OAC7B4/J,cAHiB,IAKzB,CACA5C,SAAS3tH,EAAKu7G,GACV,IAAI6J,EAAOiJ,GAAiBniK,KAAM8zC,EAAKu7G,GAGvC,IAAKrvJ,KAAKu3B,SAAS9yB,QAAUy0J,GAAQl5J,KAAKqM,OAAQ,CAC9C,IAAMo4J,gBAAiBzkK,KAAKqM,OAAOswJ,KAAK+H,UAAW37E,EAASmwE,EAAKC,OAASD,EAAK3Z,IAC/E,GAAIr0H,KAAK0B,IAAIm8D,EAAS07E,EAAaF,YAAc,GAAKE,EAAaJ,WAAat7E,EAAQ,CACpF,IAAI47E,GAAQ57E,EAAS07E,EAAaJ,YAAc,EAChD,MAAO,CAAE9kB,IAAK2Z,EAAK3Z,IAAMolB,EAAMxL,OAAQD,EAAKC,OAASwL,EAAM10D,KAAMipD,EAAKjpD,KAAMC,MAAOgpD,EAAKjpD,KAAK,EAGrG,OAAOipD,CACX,CACAqG,OAAO/kJ,GACH,OAAOA,aAAiBmpJ,IAAoC,GAAxB3jK,KAAKu3B,SAAS9yB,QAAwC,GAAzB+V,EAAM+c,SAAS9yB,QAC5E2+J,GAAQpjK,KAAKm6D,MAAO3/C,EAAM2/C,QAAUn6D,KAAK48J,YAAcpiJ,EAAMoiJ,UACrE,CACAgI,SAAW,OAAO,CAAM,CACxBzkK,YAAY0kK,EAAS/wH,GACjB,QAAStvC,EAAI,EAAGi/I,EAAM,EAAGj/I,EAAIqgK,EAAQttI,SAAS9yB,OAAQD,IAAK,CACvD,IAAIsgK,EAAQD,EAAQttI,SAAS/yB,GAAIgH,EAAMi4I,EAAMqhB,EAAMrgK,OACnD,GAAI+G,GAAOsoC,EAAK,CACZ,GAAIgxH,aAAiBnB,GACjB,OAAOmB,EACX,GAAIt5J,EAAMsoC,EACN,MAER2vG,EAAMj4I,EAAMs5J,EAAMlI,WAEtB,OAAO,IACX,EAEJ,MAAMmI,WAAwBzI,GAC1Bz8J,YAAYwiK,EAAQ59J,EAAQu/J,GACxBlkK,QACAE,KAAKqiK,OAASA,EACdriK,KAAKyE,OAASA,EACdzE,KAAKgkK,KAAOA,EACZhkK,KAAK48J,WAAa,EAClB58J,KAAKsiK,WAAa,IACtB,CACA3nH,MAAM5gC,EAAMm5G,EAAIh7G,EAAQ8sJ,EAAW1R,EAAWK,GAC1C,QAAIz7I,MAAaA,aAAkB6sJ,IAAqB/kK,KAAKqiK,OAAO/hI,QAAQpoB,EAAOmqJ,UAC/EtoJ,EAAO,GAAKu5I,GAAa,GAAKpgC,EAAKlzH,KAAKyE,QAAUkvJ,GAAW,KAEjE3zJ,KAAKyE,OAASsV,GAAQ7B,EAASA,EAAOzT,OAAS,IAAMzE,KAAKyE,OAASyuH,GAC5D,GACX,CACAouC,SAASxtH,GACL,OAAc,GAAPA,EAAWqoH,GAAOha,OAAOniJ,KAAKoE,KAAO+3J,GAAOoB,MAAMv9J,KAAKoE,IAAK0vC,GAAO9zC,KAAKyE,OACnF,CACAoM,MAAM2+I,GACF,IAAIj/H,EAAMvwB,KAAKyE,OAAS+qJ,EACxBxvJ,KAAKyE,OAAS+qJ,EACd,IAAIhkJ,EAAM,IAAIu5J,GAAgB/kK,KAAKqiK,OAAQ9xI,EAAKvwB,KAAKgkK,MACrDx4J,SAAIoxJ,WAAa58J,KAAK48J,WACfpxJ,CACX,CACI+rB,eAAa,OAAO8kI,EAAY,CACpCS,KAAKH,KACI38J,KAAKoE,MAAQpE,KAAKqiK,OAAOE,UAAUviK,KAAKoE,IAAKu4J,MAC1C38J,KAAKoE,KAAOpE,KAAKsiK,YACjBtiK,KAAKsiK,WAAWx2J,QAAQ9L,KAAKoE,KACjCpE,KAAKsiK,WAAa,KAClBtiK,KAAKu+J,OAAOv+J,KAAKqiK,OAAOG,MAAM7F,IACzB38J,KAAKqiK,OAAOI,WACbziK,KAAKoE,IAAI40J,gBAAkB,SAEvC,CACIuD,sBACA,OAAOv8J,KAAKqM,OAASrM,KAAKqM,OAAOswJ,KAAKj0I,MAAMxnB,IAAI6E,MAAM/F,KAAKw8J,WAAYx8J,KAAK08J,UAAYvgB,QAC5F,CACAuhB,kBAAoB,OAAO,IAAM,CACjC6B,OAAO/kJ,GACH,OAAIA,aAAiBuqJ,IACjBvqJ,EAAM6nJ,OAAOxiK,aAAeG,KAAKqiK,OAAOxiK,cACnC2a,EAAM6nJ,OAAO/hI,QAAQtgC,KAAKqiK,SAC3BriK,KAAKk+J,WAAU,GACfl+J,KAAKoE,MAAQpE,KAAKsiK,aAClBtiK,KAAKsiK,WAAatiK,KAAKqiK,QAC3BriK,KAAKqiK,OAAS7nJ,EAAM6nJ,OACpBriK,KAAKyE,OAAS+V,EAAM/V,OACpBzE,KAAKgkK,KAAOxpJ,EAAMwpJ,KAClBhkK,KAAK48J,WAAapiJ,EAAMoiJ,YACjB,EAGf,CACA+B,iBAAmB,OAAO,CAAM,CAChCE,YAAY90J,GAAS,OAAO/J,KAAKqiK,OAAOxD,YAAY90J,EAAQ,CACxDo1J,iBAAe,OAAO,CAAO,CAC7BC,eAAa,OAAO,CAAM,CAC9BqC,SAAS3tH,EAAKu7G,GACV,OAAOrvJ,KAAKqiK,OAAOZ,SAASzhK,KAAKoE,IAAK0vC,EAAKu7G,EAC/C,CACAvjJ,UACIhM,MAAMgM,UACF9L,KAAKoE,KACLpE,KAAKqiK,OAAOv2J,QAAQ9L,KAAKoE,IACjC,CACAwgK,OAAOvV,GACH,IAAMe,YAAWC,WAAYrwJ,KAAKgkK,KAClC,OAAO5T,GAAaC,IAAkBhB,EAAO,EAAIe,EAAY,EAAIC,EAAU,EAC/E,EAUJ,MAAM4U,GAUFtoB,GAAG0lB,GAAU,OAAO,CAAO,CAQ3BE,UAAUn+J,EAAKu4J,GAAQ,OAAO,CAAO,CAIrCr8H,QAAQ9lB,GACJ,OAAOxa,MAAQwa,GAASxa,KAAKH,aAAe2a,EAAM3a,aAAeG,KAAK28I,GAAGniI,EAC7E,CAOI0qJ,sBAAoB,OAAO,CAAI,CAO/BC,iBAAe,OAAO,CAAG,CAM7BtG,YAAY90J,GAAS,OAAO,CAAM,CAQlC03J,SAASr9J,EAAK0vC,EAAKu7G,GAAQ,OAAO,IAAM,CAIpCgQ,eAAa,OAAO,CAAO,CAI3BoD,eAAa,OAAO,CAAO,CAK/B32J,QAAQ1H,GAAO,EAKnB,IAAIghK,GAA0B,SAAUA,GAIpCA,SAAUA,EAAUjpB,KAAU,GAAK,OAInCipB,EAAUA,EAAUC,aAAkB,GAAK,eAI3CD,EAAUA,EAAUE,YAAiB,GAAK,cAI1CF,EAAUA,EAAUG,YAAiB,GAAK,cACvCH,CAAS,CAjBc,CAiBXA,KAAcA,GAAY,CAAC,IAO9C,MAAMI,WAAmBtV,GACrBrwJ,YAIAuwJ,EAIAC,EAIAgS,EAMAxe,GACI/jJ,QACAE,KAAKowJ,UAAYA,EACjBpwJ,KAAKqwJ,QAAUA,EACfrwJ,KAAKqiK,OAASA,EACdriK,KAAK6jJ,KAAOA,CAChB,CAII4hB,qBAAmB,OAAO,CAAO,CAUrCtlK,YAAY0jJ,GACR,OAAO,IAAI6hB,GAAe7hB,EAC9B,CAKA1jJ,cAAc0jJ,GACV,IAAIwL,EAAOnkI,KAAKC,KAAI,IAAQD,KAAK4lC,IAAI,IAAO+yF,EAAKwL,MAAQ,IAAKyV,IAAUjhB,EAAKihB,MAC7EzV,UAASyV,IAAUjhB,EAAK8hB,YACjBtW,EAAO,EAAI,KAAkC,IAC7CA,EAAO,EAAI,KAAmC,IAC9C,IAAIuW,GAAgB/hB,EAAMwL,EAAMA,EAAMyV,EAAOjhB,EAAKwe,QAAU,MAAM,EAC7E,CAKAliK,eAAe0jJ,GACX,IAA0BuM,EAAWC,EAAjCyU,IAAUjhB,EAAKihB,MACnB,GAAIjhB,EAAKgiB,WACLzV,GAAY,IACZC,EAAU,QAET,CACD,IAAMhtE,QAAO73E,OAAQs6J,GAAajiB,EAAMihB,GACxC1U,GAAa/sE,EAASyhF,GAAQ,KAAsC,EAAgC,KAAoC,EACxIzU,EAA6H,GAAlH7kJ,EAAOs5J,EAAQ,IAAmC,GAA6B,IAAmC,CAEjI,OAAO,IAAIc,GAAgB/hB,EAAMuM,EAAWC,EAASyU,EAAOjhB,EAAKwe,QAAU,MAAM,EACrF,CAKAliK,YAAY0jJ,GACR,OAAO,IAAIkiB,GAAeliB,EAC9B,CAMA1jJ,WAAWkX,EAAI2e,GAAO,GAClB,OAAOo7H,MAAY/5I,EAAI2e,EAC3B,CAIAgwI,YAAc,QAAOhmK,KAAKqiK,QAASriK,KAAKqiK,OAAO6C,iBAAkB,CAAY,EAKjFM,GAAW3X,KAAOuD,SAClB,MAAMsU,WAAuBF,GACzB3lK,YAAYgkJ,GACR,IAAMxgE,QAAO73E,OAAQs6J,GAAajiB,GAClC/jJ,MAAMujF,GAAQ,EAA+B,IAAkC73E,EAAM,GAA4B,IAAiC,KAAMq4I,GACxJ7jJ,KAAKiB,QAAU4iJ,EAAK5iJ,SAAW,OAC/BjB,KAAK+hK,MAAQle,EAAKke,OAAS,GAC3B/hK,KAAKm6D,MAAQ0pF,EAAK6X,YAAc,IACpC,CACA/e,GAAGniI,GACC,IAAIwsI,EAAIif,EACR,OAAOjmK,MAAQwa,GACXA,aAAiBkrJ,IACb1lK,KAAKiB,SAAWuZ,EAAMvZ,UACrBjB,KAAK+hK,QAAgC,QAArB/a,EAAKhnJ,KAAKm6D,aAA0B,IAAP6sF,OAAgB,EAASA,EAAG+a,UAAYvnJ,EAAMunJ,QAAiC,QAAtBkE,EAAKzrJ,EAAM2/C,aAA0B,IAAP8rG,OAAgB,EAASA,EAAGlE,SACjKqB,GAAQpjK,KAAKm6D,MAAO3/C,EAAM2/C,MAAO,QAC7C,CACA+qF,MAAMnrI,EAAMm5G,EAAKn5G,GACb,GAAIA,GAAQm5G,EACR,MAAM,IAAImpB,WAAW,qCACzB,OAAOv8I,MAAMolJ,MAAMnrI,EAAMm5G,EAC7B,EAEJwyC,GAAer2I,UAAUihI,OAAQ,EACjC,MAAMyV,WAAuBP,GACzB3lK,YAAYgkJ,GACR/jJ,OAAM,KAA4B,IAA4B,KAAM+jJ,EACxE,CACAlH,GAAGniI,GACC,OAAOA,aAAiBurJ,IACpB/lK,KAAK6jJ,KAAKke,OAASvnJ,EAAMqpI,KAAKke,OAC9BqB,GAAQpjK,KAAK6jJ,KAAK6X,WAAYlhJ,EAAMqpI,KAAK6X,WACjD,CACAxW,MAAMnrI,EAAMm5G,EAAKn5G,GACb,GAAIm5G,GAAMn5G,EACN,MAAM,IAAIsiI,WAAW,8CACzB,OAAOv8I,MAAMolJ,MAAMnrI,EAAMm5G,EAC7B,EAEJ6yC,GAAe12I,UAAUkhI,QAAUtP,eACnC8kB,GAAe12I,UAAUihI,OAAQ,EACjC,MAAMsV,WAAwBJ,GAC1B3lK,YAAYgkJ,EAAMuM,EAAWC,EAASyU,EAAOzC,EAAQ6D,GACjDpmK,MAAMswJ,EAAWC,EAASgS,EAAQxe,GAClC7jJ,KAAK8kK,MAAQA,EACb9kK,KAAKkmK,UAAYA,EACjBlmK,KAAKuwJ,QAAWuU,EAA2B1U,GAAa,EAAInP,eAAsBA,cAA1DA,WAC5B,CAEIt2I,WACA,OAAO3K,KAAKowJ,WAAapwJ,KAAKqwJ,QAAU+U,GAAUG,YAC5CvlK,KAAKowJ,WAAa,EAAIgV,GAAUC,aAAeD,GAAUE,WACnE,CACIG,qBACA,OAAOzlK,KAAK8kK,SAAW9kK,KAAKqiK,SAAWriK,KAAKqiK,OAAO6C,iBAAmB,GAAKllK,KAAKqiK,OAAO8C,WAAa,EACxG,CACAxoB,GAAGniI,GACC,OAAOA,aAAiBorJ,IAsBhC,SAASO,GAAUn1I,EAAGC,GAClB,OAAOD,GAAKC,MAAQD,GAAKC,GAAKD,EAAEsP,QAAQrP,GAC5C,CAvBYk1I,CAAUnmK,KAAKqiK,OAAQ7nJ,EAAM6nJ,SAC7BriK,KAAK8kK,OAAStqJ,EAAMsqJ,OACpB9kK,KAAKowJ,WAAa51I,EAAM41I,WAAapwJ,KAAKqwJ,SAAW71I,EAAM61I,OACnE,CACAnL,MAAMnrI,EAAMm5G,EAAKn5G,GACb,GAAI/Z,KAAKkmK,YAAcnsJ,EAAOm5G,GAAOn5G,GAAQm5G,GAAMlzH,KAAKowJ,UAAY,GAAKpwJ,KAAKqwJ,SAAW,GACrF,MAAM,IAAIhU,WAAW,4CACzB,IAAKr8I,KAAKkmK,WAAahzC,GAAMn5G,EACzB,MAAM,IAAIsiI,WAAW,uDACzB,OAAOv8I,MAAMolJ,MAAMnrI,EAAMm5G,EAC7B,EAGJ,SAAS4yC,GAAajiB,EAAMihB,GAAQ,GAChC,IAAMsB,eAAgB/iF,EAAOgjF,aAAc76J,GAAQq4I,EACnD,OAAa,MAATxgE,IACAA,EAAQwgE,EAAK/vH,WACN,MAAPtoB,IACAA,EAAMq4I,EAAK/vH,WACR,CAAEuvD,MAAOA,GAA6CyhF,EAAOt5J,IAAKA,GAAuCs5J,EACpH,CAIA,SAASvf,GAASxrI,EAAMm5G,EAAIiwB,EAAQmjB,EAAS,GACzC,IAAI1yI,EAAOuvH,EAAO1+I,OAAS,EACvBmvB,GAAQ,GAAKuvH,EAAOvvH,GAAQ0yI,GAAUvsJ,EACtCopI,EAAOvvH,GAAQ1I,KAAKC,IAAIg4H,EAAOvvH,GAAOs/F,GAEtCiwB,EAAOv6I,KAAKmR,EAAMm5G,EAC1B,CAlBA0yC,GAAgBv2I,UAAUihI,OAAQ,EAoBlC,MAAMiW,GACF1mK,YAAYqB,EAAK4yC,EAAKtoC,EAAKg7J,GACvBxmK,KAAKkB,IAAMA,EACXlB,KAAK8zC,IAAMA,EACX9zC,KAAKwL,IAAMA,EACXxL,KAAKwmK,wBAA0BA,EAC/BxmK,KAAKwM,QAAU,GACfxM,KAAKymK,QAAU,KACfzmK,KAAK2/J,aAAe,EACpB3/J,KAAK0mK,cAAgB,EACrB1mK,KAAK2mK,YAAc,GAEnB3mK,KAAK4mK,aAAc,EACnB5mK,KAAKszJ,WAAY,EACjBtzJ,KAAK2zJ,SAAU,EACf3zJ,KAAK0jB,KAAO,GACZ1jB,KAAK6mK,QAAU,EACf7mK,KAAKy/I,OAASv+I,EAAI87I,OAClBh9I,KAAK88I,KAAOhpG,CAChB,CACAgzH,aACI,GAA2B,GAAvB9mK,KAAKwM,QAAQ/H,OACb,OAAQzE,KAAK2/J,cAAgB3/J,KAAKkB,IAAIk7I,OAAOp8I,KAAK8zC,KAAK/5B,MAAQ/Z,KAAK8zC,IACxE,IAAIlgB,EAAO5zB,KAAKwM,QAAQxM,KAAKwM,QAAQ/H,OAAS,GAC9C,QAASmvB,EAAKgpI,YAAchpI,aAAgBmxI,IAAmBnxI,EAAKowI,KAAK3T,QAAU,EACvF,CACA0W,UACI,OAAK/mK,KAAKymK,UACNzmK,KAAKwM,QAAQ5D,KAAK5I,KAAKymK,QAAU,IAAI9C,IACrC3jK,KAAK4mK,aAAc,GAEhB5mK,KAAKymK,OAChB,CACAO,YAAY79I,EAASnpB,KAAK2mK,aAClB3mK,KAAK0mK,gBACL1mK,KAAKymK,QAAQxsJ,OAAOgtJ,GAAU,IAAIrE,IAAiB,GAAKz5I,GAASA,EAAO1kB,QACxEzE,KAAK0mK,cAAgB,EAE7B,CACAQ,eAAevK,GACX38J,KAAKgnK,cACLhnK,KAAKymK,QAAU,KACfzmK,KAAKwM,QAAQ5D,KAAK+zJ,EACtB,CACA7sG,OAAO6jG,GACC3zJ,KAAK0mK,eAAiB/S,GAAW3zJ,KAAK2mK,YAAYliK,OAClDzE,KAAKgnK,cAELhnK,KAAK0mK,cAAgB,GACpB1mK,KAAK8mK,gBACJnT,GAAW3zJ,KAAKwM,QAAQ/H,QAAUzE,KAAKwM,QAAQxM,KAAKwM,QAAQ/H,OAAS,aAAcsgK,KACrF/kK,KAAK+mK,SACb,CACAI,UAAU1iK,EAAQ0kB,EAAQmqI,GACtB,KAAO7uJ,EAAS,GAAG,CACf,GAAIzE,KAAK6mK,SAAW7mK,KAAK0jB,KAAKjf,OAAQ,CAClC,IAAMyH,QAAO6wI,YAAWv7E,QAASxhE,KAAKy/I,OAAO3mI,KAAK9Y,KAAK88I,MAEvD,GADA98I,KAAK88I,KAAO,EACRt7E,EACA,MAAM,IAAI/6D,MAAM,qDACpB,GAAIs2I,EAAW,CACN/8I,KAAK8mK,cACN9mK,KAAK+mK,UACL/mK,KAAKwM,QAAQ/H,OACbzE,KAAKwM,QAAQxM,KAAKwM,QAAQ/H,OAAS,GAAGm4J,WAAa,EAEnD58J,KAAK2/J,aAAe,EACxB3/J,KAAKgnK,cACLhnK,KAAKymK,QAAU,KACfzmK,KAAK4mK,aAAc,EACnBniK,IACA,SAGAzE,KAAK0jB,KAAOxX,EACZlM,KAAK6mK,QAAU,EAGvB,IAAIr1I,EAAOtG,KAAK4lC,IAAI9wD,KAAK0jB,KAAKjf,OAASzE,KAAK6mK,QAASpiK,EAAQ,KAC7DzE,KAAKgnK,YAAY79I,EAAOpjB,MAAMojB,EAAO1kB,OAAS6uJ,IAC9CtzJ,KAAK+mK,UAAU9sJ,OAAOgtJ,GAAU,IAAI9F,GAASnhK,KAAK0jB,KAAK3d,MAAM/F,KAAK6mK,QAAS7mK,KAAK6mK,QAAUr1I,IAAQrI,GAASmqI,GAC3GtzJ,KAAK4mK,aAAc,EACnB5mK,KAAK6mK,SAAWr1I,EAChB/sB,GAAU+sB,EACV8hI,EAAY,EAEpB,CACAM,KAAK75I,EAAMm5G,EAAI/pG,EAAQmqI,GACnBtzJ,KAAKmnK,UAAUj0C,EAAKn5G,EAAMoP,EAAQmqI,GAClCtzJ,KAAK8zC,IAAMo/E,EACPlzH,KAAKszJ,UAAY,IACjBtzJ,KAAKszJ,UAAYA,EACzB,CACAhD,MAAMv2I,EAAMm5G,EAAI8wC,EAAM76I,EAAQmqI,EAAWjiJ,GACrC,GAAIrR,KAAKwmK,wBAAwBn1J,IAAU2yJ,aAAgB4B,GAAiB,CACxE,GAAI5B,EAAKc,MACL,MAAM,IAAIzoB,WAAW,sDACzB,GAAInpB,EAAKlzH,KAAKkB,IAAIk7I,OAAOp8I,KAAK8zC,KAAKo/E,GAC/B,MAAM,IAAImpB,WAAW,wEAAuE,CAEpG,IAAI9rH,EAAM2iG,EAAKn5G,EACf,GAAIiqJ,aAAgB4B,GAChB,GAAI5B,EAAKc,MACDd,EAAK5T,UAAY,IAAMpwJ,KAAK8mK,cAC5B9mK,KAAK+mK,UACT/mK,KAAKknK,eAAe,IAAInC,GAAgBf,EAAK3B,QAAU+E,GAAWtC,MAAOv0I,EAAKyzI,QAE7E,CACD,IAAIrH,EAAOyF,GAAWx2J,OAAOo4J,EAAK3B,QAAU+E,GAAWC,OAAQ92I,EAAKA,EAAM,EAAIyzI,EAAK5T,WAC/EkX,EAAetnK,KAAK4mK,cAAgBjK,EAAKwC,YAAc7L,GAAanqI,EAAO1kB,SAC1EsV,EAAOm5G,GAAM8wC,EAAK5T,UAAY,GAC/BmX,GAAe5K,EAAKwC,aAAeplJ,EAAOm5G,GAAMogC,EAAYnqI,EAAO1kB,QAAUu/J,EAAK5T,WAAa,GAC/F92I,EAAOtZ,KAAK+mK,UACU,GAAtB/mK,KAAK0mK,gBAA0CY,IAAiB3K,EAAKwC,aACrEn/J,KAAK0mK,cAAgB,GACzB1mK,KAAKgnK,YAAY79I,GACbm+I,IACAhuJ,EAAKW,OAAOgtJ,GAAU,IAAIrE,GAAiB,GAAIz5I,GAASmqI,GACxDA,EAAYnqI,EAAO1kB,OAASymB,KAAKC,IAAI,EAAGmoI,EAAYnqI,EAAO1kB,SAE/D6U,EAAKW,OAAOgtJ,GAAUtK,EAAMxzI,GAASmqI,GACrCtzJ,KAAK4mK,YAAcW,EACnBvnK,KAAK0mK,cAAiBa,EAA+BxtJ,EAAOm5G,GAAMogC,EAAYnqI,EAAO1kB,OAAS,EAAkB,EAA5E,EAChCzE,KAAK0mK,gBACL1mK,KAAK2mK,YAAcx9I,EAAOpjB,QAAK,MAGlC/F,KAAKkB,IAAIk7I,OAAOp8I,KAAK8zC,KAAK/5B,MAAQ/Z,KAAK8zC,KAC5C9zC,KAAK+mK,UAAUhD,YAAYC,GAE3BzzI,IAEIvwB,KAAK6mK,QAAUt2I,GAAOvwB,KAAK0jB,KAAKjf,OAChCzE,KAAK6mK,SAAWt2I,GAGhBvwB,KAAK88I,MAAQvsH,GAAOvwB,KAAK0jB,KAAKjf,OAASzE,KAAK6mK,SAC5C7mK,KAAK0jB,KAAO,GACZ1jB,KAAK6mK,QAAU,GAEnB7mK,KAAK8zC,IAAMo/E,GAEXlzH,KAAKszJ,UAAY,IACjBtzJ,KAAKszJ,UAAYA,EACzB,CACAnzJ,aAAaujB,EAAM3J,EAAMm5G,EAAIs0C,EAAaC,GACtC,IAAI35F,EAAU,IAAIy4F,GAAe7iJ,EAAM3J,EAAMm5G,EAAIu0C,GACjD35F,SAAQ6lF,QAAUvC,SAAeoW,EAAaztJ,EAAMm5G,EAAIplD,GACpDA,EAAQwlF,UAAY,IACpBxlF,EAAQwlF,UAAYxlF,EAAQ6lF,SAChC7lF,EAAQhe,OAAOge,EAAQ6lF,SAChB7lF,CACX,EAEJ,SAASm5F,GAAUtK,EAAMxzI,GACrB,QAAS04I,KAAQ14I,EACbwzI,EAAO,IAAIiF,GAASC,EAAM,CAAClF,GAAOA,EAAKl4J,QAC3C,OAAOk4J,CACX,CAAC,IACKyK,GAAU,MAAhB,MAAMA,UAAmBnC,GACrBplK,YAAY6nK,GACR5nK,QACAE,KAAK0nK,IAAMA,CACf,CACA/qB,GAAGniI,GAAS,OAAOA,EAAMktJ,KAAO1nK,KAAK0nK,GAAK,CAC1ClF,QAAU,OAAOnhK,SAASL,cAAchB,KAAK0nK,IAAM,CACnDnF,UAAU7I,GAAO,OAAOA,EAAIb,SAASjoJ,eAAiB5Q,KAAK0nK,GAAK,CAC5DrI,eAAa,OAAO,CAAM,EAElC+H,SAAWC,OAAsB,IAAID,EAAW,QAChDA,EAAWtC,MAAqB,IAAIsC,EAAW,OAXzCA,CAAU,KAgBhB,IAAIO,GAA0B,SAAUA,GAMpCA,SAAUA,EAAUC,IAAS,GAAK,MAIlCD,EAAUA,EAAUE,IAAS,GAAK,MAC/BF,CAAS,CAXc,CAWXA,KAAcA,GAAY,CAAC,IAC9C,MAAMC,GAAMD,GAAUC,IAAKC,GAAMF,GAAUE,IAE3C,SAASC,GAAI7sI,GACT,IAAI3pB,EAAS,GACb,QAAS9M,EAAI,EAAGA,EAAIy2B,EAAIx2B,OAAQD,IAC5B8M,EAAO1I,KAAK,IAAMqyB,EAAIz2B,IAC1B,OAAO8M,CACX,CAEA,MAAMy2J,GAAwBD,GAAI,4PAE5BE,GAA2BF,GAAI,8PAC/BG,GAAwBt8J,OAAOC,OAAO,MAAOs8J,GAAe,GAIlE,QAASzuI,IAAK,CAAC,KAAM,KAAM,MAAO,CAC9B,IAAI22E,EAAiB32E,EAAE8mH,WAAW,GAAI3qI,EAAiB6jB,EAAE8mH,WAAW,GACpE0nB,GAAS73D,GAAKx6F,EACdqyJ,GAASryJ,IAAMw6F,EAEnB,SAAS+3D,GAASrpB,GACd,OAAOA,GAAM,IAAOipB,GAASjpB,GACzB,MAASA,GAAMA,GAAM,KAAQ,EACzB,MAASA,GAAMA,GAAM,KAAQkpB,GAAYlpB,EAAK,MAC1C,MAASA,GAAMA,GAAM,KAAQ,EACzB,MAAUA,GAAMA,GAAM,KAAS,IAC3B,OAAUA,GAAMA,GAAM,MAAS,EAAe,CACtE,CACA,MAAMspB,GAAS,yDAKf,MAAMC,GAIEprB,UAAQ,OAAOj9I,KAAK8kJ,MAAQ,EAAI+iB,GAAMD,EAAK,CAI/C/nK,YAIAka,EAIAm5G,EAQA4xB,GACI9kJ,KAAK+Z,KAAOA,EACZ/Z,KAAKkzH,GAAKA,EACVlzH,KAAK8kJ,MAAQA,CACjB,CAIAuK,KAAK7jJ,EAAKyxI,GAAO,OAAQj9I,KAAKi9I,KAAOA,GAAQzxI,EAAMxL,KAAKkzH,GAAKlzH,KAAK+Z,IAAM,CAIxEmmI,QAAQA,EAASjD,GAAO,OAAOiD,IAAYlgJ,KAAKi9I,KAAOA,EAAM,CAI7D98I,YAAYmoK,EAAOj3J,EAAOyzI,EAAOxC,GAC7B,IAAIimB,GAAQ,EACZ,QAAS/jK,EAAI,EAAGA,EAAI8jK,EAAM7jK,OAAQD,IAAK,CACnC,IAAIovJ,EAAO0U,EAAM9jK,GACjB,GAAIovJ,EAAK75I,MAAQ1I,GAASuiJ,EAAK1gC,IAAM7hH,EAAO,CACxC,GAAIuiJ,EAAK9O,OAASA,EACd,OAAOtgJ,GAIP+jK,EAAQ,IAAe,GAATjmB,EAAcA,EAAQ,EAAIsR,EAAK75I,KAAO1I,EAAQuiJ,EAAK1gC,GAAK7hH,EAASi3J,EAAMC,GAAOzjB,MAAQ8O,EAAK9O,UACzGyjB,EAAQ/jK,IAGpB,GAAI+jK,EAAQ,EACR,MAAM,IAAIlsB,WAAW,sBACzB,OAAOksB,CACX,EAEJ,SAASC,GAAWx3I,EAAGC,GACnB,GAAID,EAAEvsB,QAAUwsB,EAAExsB,OACd,OAAO,EACX,QAASD,EAAI,EAAGA,EAAIwsB,EAAEvsB,OAAQD,IAAK,CAC/B,IAAIg6I,EAAKxtH,EAAExsB,GAAIi6I,EAAKxtH,EAAEzsB,GACtB,GAAIg6I,EAAGzkI,MAAQ0kI,EAAG1kI,MAAQykI,EAAGtrB,IAAMurB,EAAGvrB,IAAMsrB,EAAGiqB,WAAahqB,EAAGgqB,YAAcD,GAAWhqB,EAAGnB,MAAOoB,EAAGpB,OACjG,OAAO,EAEf,OAAO,CACX,CAEA,MAAMqrB,GAAQ,GAyKd,SAASC,GAAUrvJ,EAAMS,EAAMm5G,EAAI4xB,EAAO8jB,EAAWC,EAAUP,GAC3D,IAAIQ,EAAUhkB,EAAQ,EAAI,EAAc,EACxC,GAAKA,EAAQ,GAAO8jB,EAAY,EAC5B,QAASG,EAAMhvJ,EAAMivJ,EAAK,EAAGD,EAAM71C,GAAK,CAKpC,IAAI+1C,GAAU,EAAMC,GAAQ,EAC5B,GAAIF,GAAMH,EAASpkK,QAAUskK,EAAMF,EAASG,GAAIjvJ,KAAM,CAClD,IAAIjB,GAAO4vJ,GAAMK,GACbjwJ,IAAQgwJ,IACRG,GAAU,EACVC,EAAgB,IAARpwJ,GAAQ,CAMxB,IAAIqwJ,EAAWF,GAAsB,GAAXH,EAA8B,KAAL,GAC/CM,GAAaH,EAAUnkB,EAAQA,EAAQ,EACvCukB,GAAQN,EACZljH,EAAK,OACD,GAAImjH,EAAKH,EAASpkK,QAAU4kK,IAASR,EAASG,GAAIjvJ,KAAM,CACpD,GAAImvJ,EACA,MAAMrjH,EACV,IAAIyjH,GAAMT,EAASG,GAEnB,IAAKC,EACD,QAASM,GAAOD,GAAIp2C,GAAIs2C,GAAKR,EAAK,IAAK,CACnC,GAAIO,IAAQr2C,EACR,MAAMrtE,EACV,KAAI2jH,GAAKX,EAASpkK,QAAUokK,EAASW,IAAIzvJ,MAAQwvJ,IAE5C,IAAIb,GAAMa,KAAST,EACpB,MAAMjjH,EAEN,MAJA0jH,GAAOV,EAASW,MAAMt2C,EAItB,CAEZ81C,IACIG,EACAA,EAAQvgK,KAAK0gK,KAGTA,GAAIvvJ,KAAOgvJ,GACXT,EAAM1/J,KAAK,IAAIy/J,GAASU,EAAKO,GAAIvvJ,KAAMqvJ,KAE3CK,GAAoBnwJ,EADLgwJ,GAAIb,WAAab,MAAUwB,GAAa,GACnBtkB,EAAQ,EAAIA,EAAO8jB,EAAWU,GAAIjsB,MAAOisB,GAAIvvJ,KAAMuvJ,GAAIp2C,GAAIo1C,GAC/FS,EAAMO,GAAIp2C,IAEdm2C,GAAQC,GAAIp2C,OAEX,IAAIm2C,IAASn2C,IAAO+1C,EAAUP,GAAMW,KAAUP,EAAUJ,GAAMW,KAAUP,GACzE,MAGAO,KAGJF,EACAR,GAAUrvJ,EAAMyvJ,EAAKM,GAAOvkB,EAAQ,EAAG8jB,EAAWO,EAASb,GACtDS,EAAMM,IACXf,EAAM1/J,KAAK,IAAIy/J,GAASU,EAAKM,GAAOD,KACxCL,EAAMM,QAMV,QAASN,EAAM71C,EAAI81C,EAAKH,EAASpkK,OAAQskK,EAAMhvJ,GAAO,CAClD,IAAIkvJ,GAAU,EAAMC,GAAQ,EAC5B,IAAKF,GAAMD,EAAMF,EAASG,EAAK,GAAG91C,GAAI,CAClC,IAAIp6G,GAAO4vJ,GAAMK,EAAM,GACnBjwJ,IAAQgwJ,IACRG,GAAU,EACVC,EAAgB,IAARpwJ,GAAQ,CAGxB,IAAIqwJ,EAAWF,GAAsB,GAAXH,EAA8B,KAAL,GAC/CM,GAAaH,EAAUnkB,EAAQA,EAAQ,EACvCukB,GAAQN,EACZljH,EAAK,OACD,GAAImjH,GAAMK,IAASR,EAASG,EAAK,GAAG91C,GAAI,CACpC,GAAIg2C,EACA,MAAMrjH,EACV,IAAIyjH,GAAMT,IAAWG,GAErB,IAAKC,EACD,QAASM,GAAOD,GAAIvvJ,KAAMyvJ,GAAKR,IAAM,CACjC,GAAIO,IAAQxvJ,EACR,MAAM8rC,EACV,IAAI2jH,IAAMX,EAASW,GAAK,GAAGt2C,IAAMq2C,GAE5B,IAAIb,GAAMa,GAAO,IAAMT,EACxB,MAAMjjH,EAEN,MAJA0jH,GAAOV,IAAWW,IAAIzvJ,IAItB,CAERovJ,EACAA,EAAQvgK,KAAK0gK,KAGTA,GAAIp2C,GAAK61C,GACTT,EAAM1/J,KAAK,IAAIy/J,GAASiB,GAAIp2C,GAAI61C,EAAKK,KAEzCK,GAAoBnwJ,EADLgwJ,GAAIb,WAAab,MAAUwB,GAAa,GACnBtkB,EAAQ,EAAIA,EAAO8jB,EAAWU,GAAIjsB,MAAOisB,GAAIvvJ,KAAMuvJ,GAAIp2C,GAAIo1C,GAC/FS,EAAMO,GAAIvvJ,MAEdsvJ,GAAQC,GAAIvvJ,SAEX,IAAIsvJ,IAAStvJ,IAASkvJ,EAAUP,GAAMW,GAAQ,IAAMP,EAAUJ,GAAMW,GAAQ,IAAMP,GACnF,MAGAO,KAGJF,EACAR,GAAUrvJ,EAAM+vJ,GAAON,EAAKjkB,EAAQ,EAAG8jB,EAAWO,EAASb,GACtDe,GAAQN,GACbT,EAAM1/J,KAAK,IAAIy/J,GAASgB,GAAON,EAAKK,KACxCL,EAAMM,GAGlB,CACA,SAASI,GAAoBnwJ,EAAMwrI,EAAO8jB,EAAWC,EAAU9uJ,EAAMm5G,EAAIo1C,GACrE,IAAIoB,EAAa5kB,EAAQ,EAAI,EAAc,GApS/C,SAAS6kB,GAAiBrwJ,EAAMswJ,EAAOC,EAAKhB,EAAUa,GAClD,QAASV,EAAK,EAAGA,GAAMH,EAASpkK,OAAQukK,IAAM,CAC1C,IAAIjvJ,EAAOivJ,EAAKH,EAASG,EAAK,GAAG91C,GAAK02C,EAAO12C,EAAK81C,EAAKH,EAASpkK,OAASokK,EAASG,GAAIjvJ,KAAO8vJ,EACzFC,EAAWd,EAAK,IAAiBU,EAWrC,QAASllK,EAAIuV,EAAMusF,EAAOwjE,EAAUC,EAAaD,EAAUtlK,EAAI0uH,EAAI1uH,IAAK,CACpE,IAAImG,EAAOw9J,GAAS7uJ,EAAKinI,WAAW/7I,IACxB,KAARmG,EACAA,EAAO27F,EACM,GAAR37F,GAAsC,GAAdo/J,IAC7Bp/J,EAAO,IACX+9J,GAAMlkK,GAAa,GAARmG,EAAuB,EAAcA,EACrC,EAAPA,IACAo/J,EAAap/J,GACjB27F,EAAO37F,EAUX,QAASnG,EAAIuV,EAAMusF,EAAOwjE,EAAUC,EAAaD,EAAUtlK,EAAI0uH,EAAI1uH,IAAK,CACpE,IAAImG,EAAO+9J,GAAMlkK,GACjB,GAAY,KAARmG,EACInG,EAAI0uH,EAAK,GAAK5sB,GAAQoiE,GAAMlkK,EAAI,IAAc,GAAP8hG,EACvC37F,EAAO+9J,GAAMlkK,GAAK8hG,EAElBoiE,GAAMlkK,GAAK,YAEF,IAARmG,EAAuB,CAC5B,IAAIa,GAAMhH,EAAI,EACd,KAAOgH,GAAM0nH,GAAoB,IAAdw1C,GAAMl9J,KACrBA,KACJ,IAAI5B,GAAWpF,GAAa,GAAR8hG,GAA0B96F,GAAMq+J,GAAqB,GAAdnB,GAAMl9J,IAAuC,GAAdu+J,EAA4B,EAAc,EAAgB,IACpJ,QAAS5qF,GAAI36E,EAAG26E,GAAI3zE,GAAK2zE,KACrBupF,GAAMvpF,IAAKv1E,GACfpF,EAAIgH,GAAM,OAEG,GAARb,GAAsC,GAAdo/J,IAC7BrB,GAAMlkK,GAAK,GAEf8hG,EAAO37F,EACI,EAAPA,IACAo/J,EAAap/J,IAG7B,EA2OIg/J,CAAiBrwJ,EAAMS,EAAMm5G,EAAI21C,EAAUa,GAzO/C,SAASM,GAAoB1wJ,EAAMswJ,EAAOC,EAAKhB,EAAUa,GACrD,IAAIO,EAA4B,GAAbP,EAA2B,EAAc,EAC5D,QAASV,EAAK,EAAGkB,EAAK,EAAGhsJ,EAAU,EAAG8qJ,GAAMH,EAASpkK,OAAQukK,IAAM,CAC/D,IAA6C91C,EAAK81C,EAAKH,EAASpkK,OAASokK,EAASG,GAAIjvJ,KAAO8vJ,EAK7F,QAAmB/qB,EAAIqrB,GAAIx/J,GAAlBnG,EALEwkK,EAAKH,EAASG,EAAK,GAAG91C,GAAK02C,EAKLplK,EAAI0uH,EAAI1uH,IAGrC,GAAI2lK,GAAKlC,GAASnpB,EAAKxlI,EAAKinI,WAAW/7I,IACnC,GAAI2lK,GAAK,GACL,QAASC,GAAKF,EAAK,EAAGE,IAAM,EAAGA,IAAM,EACjC,GAAIlC,GAAakC,GAAK,KAAOD,GAAI,CAC7B,IAAI38J,GAAQ06J,GAAakC,GAAK,GAC1Bz/J,GAAgB,EAAR6C,GAAyCk8J,EACvC,EAARl8J,GACW,EAARA,GAA4Cy8J,EAAeP,EADlB,EAE9C/+J,KACA+9J,GAAMlkK,GAAKkkK,GAAMR,GAAakC,KAAOz/J,IACzCu/J,EAAKE,GACL,WAIP,IAA2B,KAAvBlC,GAAazjK,OAClB,MAGAyjK,GAAagC,KAAQ1lK,EACrB0jK,GAAagC,KAAQprB,EACrBopB,GAAagC,KAAQhsJ,UAGC,IAApBvT,GAAO+9J,GAAMlkK,KAA8B,GAARmG,GAAqB,CAC9D,IAAI0/J,GAAQ1/J,IAAQ++J,EACpBxrJ,EAAUmsJ,GAAQ,EAAI,EACtB,QAASD,GAAKF,EAAK,EAAGE,IAAM,EAAGA,IAAM,EAAG,CACpC,IAAIzY,GAAMuW,GAAakC,GAAK,GAC5B,GAAU,EAANzY,GACA,MACJ,GAAI0Y,GACAnC,GAAakC,GAAK,IAAM,MAEvB,CACD,GAAU,EAANzY,GACA,MACJuW,GAAakC,GAAK,IAAM,KAMhD,CAoLIJ,CAAoB1wJ,EAAMS,EAAMm5G,EAAI21C,EAAUa,GAnLlD,SAASY,GAAgBV,EAAOC,EAAKhB,EAAUa,GAC3C,QAASV,EAAK,EAAG1iE,EAAOojE,EAAWV,GAAMH,EAASpkK,OAAQukK,IAAM,CAC5D,IAA6C91C,EAAK81C,EAAKH,EAASpkK,OAASokK,EAASG,GAAIjvJ,KAAO8vJ,EAQ7F,QAASrlK,EAREwkK,EAAKH,EAASG,EAAK,GAAG91C,GAAK02C,EAQnBplK,EAAI0uH,GAAK,CACxB,IAAIvoH,EAAO+9J,GAAMlkK,GACjB,GAAY,KAARmG,EAAwB,CACxB,IAAIa,EAAMhH,EAAI,EACd,OACI,GAAIgH,GAAO0nH,EAAI,CACX,GAAI81C,GAAMH,EAASpkK,OACf,MACJ+G,EAAMq9J,EAASG,KAAM91C,GACrBA,EAAK81C,EAAKH,EAASpkK,OAASokK,EAASG,GAAIjvJ,KAAO8vJ,UAE7B,KAAdnB,GAAMl9J,GAIX,MAHAA,GAGA,CAGR,IAAI++J,EAAkB,GAARjkE,EAEV18F,GAAU2gK,IADuC,IAAvC/+J,EAAMq+J,EAAMnB,GAAMl9J,GAAOk+J,IACJa,EAAU,EAAc,EAAeb,EAC1E,QAASvqF,GAAI3zE,EAAKg+J,GAAKR,EAAIwB,GAAQhB,GAAKX,EAASW,GAAK,GAAGt2C,GAAK02C,EAAOzqF,GAAI36E,GACjE26E,IAAKqrF,KACLrrF,GAAI0pF,IAAWW,IAAIzvJ,KACnBywJ,GAAQhB,GAAKX,EAASW,GAAK,GAAGt2C,GAAK02C,GAEvClB,KAAQvpF,IAAKv1E,GAEjBpF,EAAIgH,OAGJ86F,EAAO37F,EACPnG,KAIhB,CAsII8lK,CAAgBvwJ,EAAMm5G,EAAI21C,EAAUa,GACpCf,GAAUrvJ,EAAMS,EAAMm5G,EAAI4xB,EAAO8jB,EAAWC,EAAUP,EAC1D,CAaA,SAASmC,GAAahmK,GAClB,MAAO,CAAC,IAAI4jK,GAAS,EAAG5jK,EAAQ,GACpC,CACA,IAAIimK,GAAY,GAchB,SAASC,GAAarxJ,EAAMgvJ,EAAOrrB,EAAK55D,EAAO68D,GAC3C,IAAI8G,EACJ,IAAInnH,EAAawjD,EAAMx6E,KAAOyQ,EAAKS,KAC/B6wJ,EAAQvC,GAASzoI,KAAK0oI,EAAOzoI,EAAuC,QAA1BmnH,EAAK3jE,EAAMwhE,iBAA8B,IAAPmC,EAAgBA,GAAK,EAAI3jE,EAAMi/D,OAC3GsR,EAAO0U,EAAMsC,GAAQC,EAAUjX,EAAKvE,KAAKnP,EAASjD,GAEtD,GAAIp9G,GAAcgrI,EAAS,CACvB,IAAIC,EAAQF,GAAS1qB,EAAU,GAAI,EACnC,GAAI4qB,EAAQ,GAAKA,GAASxC,EAAM7jK,OAC5B,OAAO,KACXmvJ,EAAO0U,EAAMsC,EAAQE,GACrBjrI,EAAa+zH,EAAKvE,MAAMnP,EAASjD,GACjC4tB,EAAUjX,EAAKvE,KAAKnP,EAASjD,EAAG,CAEpC,IAAI8tB,EAAY9qB,GAAiB3mI,EAAKoK,KAAMmc,EAAY+zH,EAAK1T,QAAQA,EAASjD,KAC1E8tB,EAAYnX,EAAK75I,MAAQgxJ,EAAYnX,EAAK1gC,MAC1C63C,EAAYF,GAChBH,GAAYpxJ,EAAKoK,KAAK3d,MAAMmlB,KAAK4lC,IAAIjxB,EAAYkrI,GAAY7/I,KAAKC,IAAI0U,EAAYkrI,IAClF,IAAIC,EAAWJ,IAAU1qB,EAAUooB,EAAM7jK,OAAS,EAAI,GAAK,KAAO6jK,EAAMsC,GAAS1qB,EAAU,GAAI,IAC/F,OAAI8qB,GAAYD,GAAaF,GAAWG,EAASlmB,OAAS5E,EAAU,EAAI,GAAK0T,EAAK9O,MACvEG,UAAuB+lB,EAAS3b,MAAMnP,EAASjD,GAAO3jI,EAAKS,KAAMixJ,EAAS9qB,QAAQA,EAASjD,GAAO,GAAI,EAAI+tB,EAASlmB,OACvHG,UAAuB8lB,EAAYzxJ,EAAKS,KAAM65I,EAAK1T,QAAQA,EAASjD,IAAO,EAAK,EAAG2W,EAAK9O,MACnG,CACA,SAASmmB,GAAcvnJ,EAAM3J,EAAMm5G,GAC/B,QAAS1uH,EAAIuV,EAAMvV,EAAI0uH,EAAI1uH,IAAK,CAC5B,IAAImG,EAAOw9J,GAASzkJ,EAAK68H,WAAW/7I,IACpC,GAAY,GAARmG,EACA,OAAOi9J,GACX,GAAY,GAARj9J,GAA+B,GAARA,EACvB,OAAOk9J,GAEf,OAAOD,EACX,CAEA,MAAMsD,GAAuCllB,YACvCmlB,GAAoCnlB,YACpColB,GAAmCplB,YACnCqlB,GAA6BrlB,YAC7BslB,GAA8BtlB,YAC9BulB,GAA4BvlB,YAC5BwlB,GAAiCxlB,YACjCylB,GAAoCzlB,UAAa,CACnDC,QAAStsI,GAAUA,EAAOi2B,KAAKvb,GAAKA,KAElCq3I,GAAqC1lB,UAAa,CACpDC,QAAStsI,GAAUA,EAAOi2B,KAAKvb,GAAKA,KAElCs3I,GAA6B3lB,YACnC,MAAM4lB,GACF/rK,YAAYqlJ,EAAOhwD,EAAI,UAAW7gE,EAAI,UAAWw3I,EAAU,EAAGC,EAAU,EAOxEC,GAAa,GACT/rK,KAAKklJ,MAAQA,EACbllJ,KAAKk1F,EAAIA,EACTl1F,KAAKq0B,EAAIA,EACTr0B,KAAK6rK,QAAUA,EACf7rK,KAAK8rK,QAAUA,EACf9rK,KAAK+rK,WAAaA,CACtB,CACAxkK,IAAIohC,GACA,OAAOA,EAAQ7hB,MAAQ9mB,KACnB,IAAI4rK,GAAa5rK,KAAKklJ,MAAM39I,IAAIohC,GAAU3oC,KAAKk1F,EAAGl1F,KAAKq0B,EAAGr0B,KAAK6rK,QAAS7rK,KAAK8rK,QAAS9rK,KAAK+rK,WACnG,CACAvvB,KAAK9zH,GACD,OAAO1oB,KAAKklJ,MAAMhyB,IAAMxqG,EAAMxnB,IAAIuD,OAASzE,KACvC,IAAI4rK,GAAa3mB,UAAuBv8H,EAAMxnB,IAAIuD,QAASzE,KAAKk1F,EAAGl1F,KAAKq0B,EAAGr0B,KAAK6rK,QAAS7rK,KAAK8rK,QAAS9rK,KAAK+rK,WACpH,EAEJ,MAAMhgB,GAA8BT,UAAmB,CAAE/jJ,IAAK,CAACkU,EAAGqjI,IAAOrjI,EAAElU,IAAIu3I,KACzEktB,GAAwC1gB,YAa9C,SAAS2gB,GAAavjJ,EAAOwjJ,EAAWhuJ,GACpC,IAAI/X,EAAUuiB,EAAMm+H,MAAMwkB,IACtBllK,EAAQ1B,OACR0B,EAAQ,GAAG+lK,GACNlqK,OAAOmqK,QACZnqK,OAAOmqK,QAAQ91J,OAAO61J,GAAYhuJ,OAASjQ,OAAWA,EAAWi+J,GAC5DhuJ,EACL4hC,QAAQjnC,MAAMqF,EAAU,IAAKguJ,GAE7BpsH,QAAQjnC,MAAMqzJ,EACtB,CACA,MAAMzJ,GAAwBzc,UAAa,CAAEC,QAAStsI,IAAUA,EAAOlV,QAASkV,EAAO,KACvF,IAAIyyJ,GAAe,EACnB,MAAMC,GAA0BrmB,YAMhC,MAAMsmB,GACFzsK,YAIAqL,EAIAU,EAIA2gK,EAIAC,EAAmBC,GACfzsK,KAAKkL,GAAKA,EACVlL,KAAK4L,OAASA,EACd5L,KAAKusK,iBAAmBA,EACxBvsK,KAAKwsK,kBAAoBA,EACzBxsK,KAAKmpJ,UAAYsjB,EAAgBzsK,KACrC,CAKAG,cAAcyL,EAAQi4I,GAClB,MAAQ6oB,gBAAeC,iBAAgBjpK,UAAS8jK,YAAaxD,GAASngB,GAAQ,CAAC,EAC/E,OAAO,IAAIyoB,GAAWF,KAAgBxgK,EAAQ8gK,EAAeC,EAAgB/mK,IACzE,IAAI8jJ,EAAM,CAAC2iB,GAAWh1J,GAAGzR,IACzB,OAAIo+J,GACAta,EAAI9gJ,KAAK4+J,GAAYnwJ,GAAGslJ,IACpB,IAAIiQ,EAAajQ,EAAK/2J,OAAOA,GAC7B,OAAOgnK,EAAa5I,EAAK4I,GAAcpH,GAAW3X,QAEtDnqJ,GACAgmJ,EAAI9gJ,KAAKlF,EAAQkC,IACd8jJ,GAEf,CAKAvpJ,iBAAiB8jK,EAAKpgB,GAClB,OAAOyoB,GAAWzjB,OAAO8T,GAAQ,IAAIsH,EAAItH,GAAO9Y,EACpD,EAEJ,MAAMgpB,GACFhtK,YAAYgkJ,GACR7jJ,KAAK6jJ,KAAOA,EAKZ7jJ,KAAK8sK,WAAa,KAGlB9sK,KAAKkM,MAAQ,IACjB,CACAoO,OAAOqiJ,GACH,GAAK38J,KAAKkM,OAWL,GAAIlM,KAAK8sK,WAAY,CACtB,IAAIxyJ,EAASta,KAAK8sK,WAElB,GADA9sK,KAAK8sK,WAAa,KACd9sK,KAAKkM,MAAMoO,OACX,IACIta,KAAKkM,MAAMoO,OAAOA,EAUtB,CATA,MACOnS,GAEH,GADA8jK,GAAa3xJ,EAAOoO,MAAOvgB,EAAG,6BAC1BnI,KAAKkM,MAAMJ,QACX,IACI9L,KAAKkM,MAAMJ,SAEH,CADZ,MACY,CAChB9L,KAAK+oC,YACT,WAzBA/oC,KAAK6jJ,KACL,IACI7jJ,KAAKkM,MAAQlM,KAAK6jJ,KAAKj4I,OAAO+wJ,EAKlC,CAJA,MACOx0J,GACH8jK,GAAatP,EAAKj0I,MAAOvgB,EAAG,6BAC5BnI,KAAK+oC,YACT,CAqBR,OAAO/oC,IACX,CACA8L,QAAQ6wJ,GACJ,IAAI3V,EACJ,GAA0B,QAArBA,EAAKhnJ,KAAKkM,aAA0B,IAAP86I,GAAyBA,EAAGl7I,QAC1D,IACI9L,KAAKkM,MAAMJ,SAIf,CAHA,MACO3D,GACH8jK,GAAatP,EAAKj0I,MAAOvgB,EAAG,4BAChC,CAER,CACA4gC,aACI/oC,KAAK6jJ,KAAO7jJ,KAAKkM,MAAQ,IAC7B,EAEJ,MAAM6gK,GAAgC/mB,YAChCgnB,GAAiChnB,YAEjCwhB,GAA2BxhB,YAC3BinB,GAAgCjnB,YAChCknB,EAA4BlnB,YAC5BmnB,EAAkCnnB,YACxC,SAASonB,EAAkBzQ,EAAMrjJ,GAC7B,IAAIuvJ,EAAWlM,EAAKj0I,MAAMm+H,MAAMsmB,GAChC,IAAKtE,EAASpkK,OACV,OAAOokK,EACX,IAAIpW,EAAOoW,EAASthK,IAAI/C,GAAKA,aAAa6oK,SAAW7oK,EAAEm4J,GAAQn4J,GAC3D8M,EAAS,GACb8/I,gBAAeqB,EAAMn5I,EAAKS,KAAMT,EAAK45G,GAAI,CACrCo9B,QAAU,EACVsD,KAAK0Z,EAASC,EAAOpkJ,EAAQzG,GACzB,IAAI3I,EAAOuzJ,EAAUh0J,EAAKS,KAAMm5G,EAAKq6C,EAAQj0J,EAAKS,KAC9C+qI,EAAQxzI,EACZ,QAAS9M,EAAI2kB,EAAO1kB,OAAS,EAAGD,GAAK,EAAGA,IAAKke,IAAQ,CACjD,IAA4CpI,GAAxCmuJ,GAAYt/I,EAAO3kB,GAAGq/I,KAAK2pB,YAG/B,GAFiB,MAAb/E,KACAA,GAAYwC,GAAc3xJ,EAAKoK,KAAM3J,EAAMm5G,IAC3CxwG,EAAO,GAAKoiI,EAAMrgJ,SACjB6V,GAASwqI,EAAMA,EAAMrgJ,OAAS,IAAIyuH,IAAMn5G,GAAQO,GAAOmuJ,WAAaA,GACrEnuJ,GAAO44G,GAAKA,EACZ4xB,EAAQxqI,GAAO+iI,UAEd,CACD,IAAI/0I,GAAM,CAAEyR,OAAMm5G,KAAIu1C,aAAWprB,MAAO,IACxCyH,EAAMl8I,KAAKN,IACXw8I,EAAQx8I,GAAI+0I,OAGxB,IAEG/rI,CACX,CACA,MAAMm8J,EAA6BznB,YACnC,SAAS0nB,EAAiB/Q,GACtB,IAAI1sD,EAAO,EAAGC,EAAQ,EAAGqvC,EAAM,EAAG4Z,EAAS,EAC3C,QAASjhJ,KAAUykJ,EAAKj0I,MAAMm+H,MAAM4mB,GAAgB,CAChD,IAAI3tI,EAAI5nB,EAAOykJ,GACX78H,IACc,MAAVA,EAAEmwE,OACFA,EAAO/kF,KAAKC,IAAI8kF,EAAMnwE,EAAEmwE,OACb,MAAXnwE,EAAEowE,QACFA,EAAQhlF,KAAKC,IAAI+kF,EAAOpwE,EAAEowE,QACjB,MAATpwE,EAAEy/G,MACFA,EAAMr0H,KAAKC,IAAIo0H,EAAKz/G,EAAEy/G,MACV,MAAZz/G,EAAEq5H,SACFA,EAASjuI,KAAKC,IAAIguI,EAAQr5H,EAAEq5H,SAAM,CAG9C,MAAO,CAAElpD,OAAMC,QAAOqvC,MAAK4Z,SAC/B,CACA,MAAMwU,GAA2B3nB,YACjC,MAAM4nB,GACF/tK,YAAY+iJ,EAAOC,EAAKC,EAAO+qB,GAC3B7tK,KAAK4iJ,MAAQA,EACb5iJ,KAAK6iJ,IAAMA,EACX7iJ,KAAK8iJ,MAAQA,EACb9iJ,KAAK6tK,IAAMA,CACf,CACA/wJ,KAAKtC,GACD,OAAO,IAAIozJ,GAAa1iJ,KAAK4lC,IAAI9wD,KAAK4iJ,MAAOpoI,EAAMooI,OAAQ13H,KAAKC,IAAInrB,KAAK6iJ,IAAKroI,EAAMqoI,KAAM33H,KAAK4lC,IAAI9wD,KAAK8iJ,MAAOtoI,EAAMsoI,OAAQ53H,KAAKC,IAAInrB,KAAK6tK,IAAKrzJ,EAAMqzJ,KAC1J,CACAC,SAAStnK,GACL,IAAIhC,EAAIgC,EAAI/B,OAAQspK,EAAK/tK,KACzB,KAAOwE,EAAI,EAAGA,IAAK,CACf,IAAI0gJ,EAAQ1+I,EAAIhC,EAAI,GACpB,KAAI0gJ,EAAMtC,MAAQmrB,EAAGlrB,KAErB,IAAIqC,EAAMrC,IAAMkrB,EAAGnrB,MACf,MACJmrB,EAAKA,EAAGjxJ,KAAKooI,GACb1+I,EAAI2K,OAAO3M,EAAI,EAAG,EAAC,EAEvBgC,SAAI2K,OAAO3M,EAAG,EAAGupK,GACVvnK,CACX,CACArG,wBAAwB2vG,EAAMqzC,GAC1B,GAAqB,GAAjBA,EAAO1+I,OACP,OAAOqrG,EACX,IAAIx+F,EAAS,GACb,QAAS08J,EAAK,EAAGC,EAAK,EAAGvsB,EAAO,EAAGC,EAAO,GAAIqsB,IAAM,CAChD,IAAIl1J,EAAOk1J,GAAMl+D,EAAKrrG,OAAS,KAAOqrG,EAAKk+D,GAAKvqB,EAAM/B,EAAOC,EACzDn2I,EAAMsN,EAAOA,EAAKgqI,MAAQ,IAC9B,KAAOmrB,EAAK9qB,EAAO1+I,QAAU0+I,EAAO8qB,GAAMziK,GAAK,CAC3C,IAAuB0nH,EAAKiwB,EAAO8qB,EAAK,GACpCnrB,GAAQ53H,KAAKC,IAAIw2H,EADVwB,EAAO8qB,IACgBJ,GAAM3iJ,KAAK4lC,IAAItlD,EAAK0nH,GAGtD,GAFI4vB,IAAS+qB,IACT,IAAID,GAAa9qB,GAAQW,EAAKoqB,GAAMpqB,EAAKX,GAAO+qB,IAAKC,SAASx8J,GAC9D4hH,EAAK1nH,EACL,MAEAyiK,GAAM,EAEd,IAAKn1J,EACD,OAAOxH,EACX,IAAIs8J,GAAa90J,EAAK8pI,MAAO9pI,EAAK+pI,IAAK/pI,EAAKgqI,MAAOhqI,EAAK+0J,KAAKC,SAASx8J,GACtEowI,EAAO5oI,EAAK+pI,IACZlB,EAAO7oI,EAAK+0J,IAEpB,EAMJ,MAAMK,GACFruK,YAIA88J,EAIAj0I,EAIAylJ,GACInuK,KAAK28J,KAAOA,EACZ38J,KAAK0oB,MAAQA,EACb1oB,KAAKmuK,aAAeA,EAIpBnuK,KAAKwN,MAAQ,EACbxN,KAAK6rJ,WAAa8Q,EAAKj0I,MACvB1oB,KAAK2oC,QAAU+5G,SAAgB1iJ,KAAK6rJ,WAAW3qJ,IAAIuD,QACnD,QAAS6iJ,KAAM6mB,EACXnuK,KAAK2oC,QAAU3oC,KAAK2oC,QAAQs6G,QAAQqE,EAAG3+G,SAC3C,IAAIylI,EAAgB,GACpBpuK,KAAK2oC,QAAQi5G,kBAAkB,CAACgB,EAAOC,EAAKC,EAAO+qB,IAAQO,EAAcxlK,KAAK,IAAIglK,GAAahrB,EAAOC,EAAKC,EAAO+qB,KAClH7tK,KAAKouK,cAAgBA,CACzB,CAIAjuK,cAAcw8J,EAAMj0I,EAAOylJ,GACvB,OAAO,IAAID,GAAWvR,EAAMj0I,EAAOylJ,EACvC,CAMIE,sBACA,OAAqB,EAAbruK,KAAKwN,OAAuC,CACxD,CAKI8gK,oBACA,OAAqB,EAAbtuK,KAAKwN,OAAqC,CACtD,CAKI+gK,sBACA,OAAOvuK,KAAKunJ,aAA6B,GAAdvnJ,KAAKwN,OAAqE,CACzG,CAIIghK,mBACA,OAAqB,EAAbxuK,KAAKwN,OAAoC,CACrD,CAII+5I,iBACA,OAAQvnJ,KAAK2oC,QAAQ7hB,KACzB,CAII2nJ,mBACA,OAAOzuK,KAAKmuK,aAAav+H,KAAK03G,GAAMA,EAAGzB,UAC3C,CAII/+H,YAAU,OAAqB,GAAd9mB,KAAKwN,OAA0C,GAA5BxN,KAAKmuK,aAAa1pK,MAAa,EAG3E,MAAMiqK,WAAgBpS,GACd73J,aAAW,OAAOzE,KAAK28J,KAAKj0I,MAAMxnB,IAAIuD,MAAQ,CAClD5E,YAAY88J,GACR78J,QACAE,KAAK28J,KAAOA,EACZ38J,KAAKwnK,YAAc,GACnBxnK,KAAKynK,qBAAuB,EAAC,GAC7BznK,KAAK2uK,WAAa,KAClB3uK,KAAK4uK,eAAiB,KACtB5uK,KAAK6uK,qBAAuB,IAAI9mK,IAChC/H,KAAK8uK,sBAAwBtJ,GAAW3X,KACxC7tJ,KAAK+uK,4BAA6B,EAQlC/uK,KAAKgvK,SAAW,EAChBhvK,KAAKivK,aAAe,EACpBjvK,KAAKkvK,WAAa,EAGlBlvK,KAAKmvK,gBAAkB,KACvBnvK,KAAKovK,cAAgB,KACrBpvK,KAAKqvK,gBAAiB,EAGtBrvK,KAAKsvK,WAAavmJ,KAAKD,MACvB9oB,KAAKu+J,OAAO5B,EAAK4S,YACjBvvK,KAAKu3B,SAAW,CAAC,IAAIosI,IACrB3jK,KAAKu3B,SAAS,GAAG+mI,UAAUt+J,MAC3BA,KAAKwvK,aACLxvK,KAAKyvK,YAAY,CAAC,IAAI7B,GAAa,EAAG,EAAG,EAAGjR,EAAKj0I,MAAMxnB,IAAIuD,SAAU,EAAG,KAC5E,CAEA6V,OAAOA,GACH,IAAI0sI,EACJ,IAAIonB,EAAgB9zJ,EAAO8zJ,cACvBpuK,KAAKgvK,SAAW,GAAKZ,EAAc3pK,SAC9B2pK,EAAcl4I,MAAM,EAAG0sH,QAAOC,SAAUA,EAAM7iJ,KAAKivK,cAAgBrsB,EAAQ5iJ,KAAKkvK,aAIjFlvK,KAAKivK,aAAe30J,EAAOquB,QAAQ05G,OAAOriJ,KAAKivK,aAAc,GAC7DjvK,KAAKkvK,WAAa50J,EAAOquB,QAAQ05G,OAAOriJ,KAAKkvK,WAAY,IAJzDlvK,KAAKgvK,SAAWhvK,KAAKivK,aAAejvK,KAAKkvK,WAAa,GAO9DlvK,KAAK0vK,4BAA4Bp1J,GACjC,IAAIq1J,GAAoB,EACpB3vK,KAAK28J,KAAKiT,WAAWC,WAAa,IAAM7vK,KAAK28J,KAAKn6I,SAASstJ,cAC5B,QAA1B9oB,EAAKhnJ,KAAK2uK,kBAA+B,IAAP3nB,GAAyBA,EAAG+oB,OAC/DJ,EAAoB3vK,KAAK2uK,WAAWoB,OAAOlnK,MA8lB3D,SAASmnK,GAAmBrnI,EAASuwE,GACjC,IAAI+2D,GAAU,EACd,OAAI/2D,GACAvwE,EAAQi5G,kBAAkB,CAAC7nI,EAAMm5G,KACzBn5G,EAAOm/F,EAAYga,IAAMA,EAAKha,EAAYn/F,OAC1Ck2J,GAAU,KAEfA,CACX,CArmBsBD,CAAmB11J,EAAOquB,QAAS3oC,KAAK4uK,kBAAoBt0J,EAAOm0J,eACzEkB,EAAoBr1J,EAAOoO,MAAMm9H,UAAUR,KAAKx8I,OAExD,IAAIqwG,EAAcy2D,GAAoB,EAmiB9C,SAASO,GAAqBvT,EAAMh0H,EAASwnI,GACzC,IAAIz5G,EAAQ05G,GAAoBzT,EAAMwT,GACtC,IAAKz5G,EACD,OAAO,KACX,IAAM71D,KAAMwvK,EAAUt2J,OAAMm5G,MAAOx8D,EAAOhzC,EAAO2sJ,EAASviK,UAI1D,GAFI,SAASqV,KAAKO,IAEdi5I,EAAKj0I,MAAMxnB,IAAIq8I,YAAY7mF,EAAM38C,KAAM28C,EAAMw8D,KAAOxvG,EACpD,OAAO,KACX,IAAI4sJ,EAAM3nI,EAAQo5G,aACdmD,EAAQ,IAAI0oB,GAAa0C,EAAIjuB,OAAOtoI,GAAOu2J,EAAIjuB,OAAOnvB,GAAKn5G,EAAMm5G,GACjEq9C,EAAQ,GACZ,QAASlkK,EAASgkK,EAASvvK,YAAauL,EAASA,EAAOvL,WAAY,CAChE,IAAI0vK,EAAalU,GAAYt4J,IAAIqI,GACjC,GAAImkK,aAAsB5O,GACtB2O,EAAM3nK,KAAK,CAAE/H,KAAMwL,EAAQ23J,KAAMwM,EAAW3O,WAC3C,IAAI2O,aAAsB7M,IAA+B,OAAnBt3J,EAAOwsJ,UAAqBxsJ,EAAOvL,YAAc67J,EAAK4S,WAC7F,MAAO,CAAErqB,QAAOxhI,KAAM2sJ,EAAUE,QAAOj3J,KAAMjN,GAC5C,GAAIA,GAAUswJ,EAAK4S,WAOpB,OAAO,KANPgB,EAAM3nK,KAAK,CAAE/H,KAAMwL,EAAQ23J,KAAM,IAAI0B,GAAe,CAC5C5xI,WAAW,EACX4nI,WAAYgI,GAASr3J,GACrBpL,QAASoL,EAAOpL,QAAQ2P,iBAGzB,EAEnB,CA/jBmDs/J,CAAqBlwK,KAAK28J,KAAMriJ,EAAOquB,QAASgnI,GAAqB,KAEhH,GADA3vK,KAAK2uK,WAAa,KACd3uK,KAAK4uK,eAAgB,CACrB5uK,KAAK6uK,qBAAqBlnK,QAC1B,IAAMoS,OAAMm5G,MAAOlzH,KAAK4uK,eACxBR,EAAgB,IAAIR,GAAa7zJ,EAAMm5G,EAAI54G,EAAOquB,QAAQ05G,OAAOtoI,GAAM,GAAKO,EAAOquB,QAAQ05G,OAAOnvB,EAAI,IACjG46C,SAASM,EAAcroK,QAAO,CAEvC/F,KAAK4uK,eAAiB11D,EAAc,CAAEn/F,KAAMm/F,EAAYgsC,MAAMpC,MAAO5vB,GAAIha,EAAYgsC,MAAM2oB,KAAQ,MAM9FpN,GAAQ1I,IAAM0I,GAAQL,UAAYlnD,GAAe5+F,GAClDA,EAAOoO,MAAMxnB,IAAIq7I,OAASjiI,EAAOuxI,WAAW3qJ,IAAIq7I,QAChDv8I,KAAKqvK,gBAAiB,GAC1B,IACIoB,EA2jBZ,SAASC,GAAgB1/I,EAAGC,EAAG6+E,GAC3B,IAAI6gE,EAAO,IAAIC,GACfxf,kBAAiBpgI,EAAGC,EAAG6+E,EAAM6gE,GACtBA,EAAKhoI,OAChB,CA/jBuB+nI,CADA1wK,KAAKwnK,YAAoBxnK,KAAKwvK,aACEl1J,EAAOquB,SAEtD,OADAylI,EAAgBR,GAAaiD,iBAAiBzC,EAAeqC,MAC1C,EAAbzwK,KAAKwN,OAA2D,GAAxB4gK,EAAc3pK,UAIxDzE,KAAKyvK,YAAYrB,EAAe9zJ,EAAOuxI,WAAW3qJ,IAAIuD,OAAQy0G,GAC1D5+F,EAAO6zJ,aAAa1pK,SACpBzE,KAAKsvK,WAAavmJ,KAAKD,QACpB,EAEf,CAGA2mJ,YAAY9mI,EAASmoI,EAAW53D,GAC5Bl5G,KAAK28J,KAAK+H,UAAUqM,oBAAqB,EACzC/wK,KAAKgxK,eAAeroI,EAASmoI,EAAW53D,GACxC,IAAM12F,YAAaxiB,KAAK28J,KACxBn6I,EAAS6gJ,OAAO,KAKZrjK,KAAKoE,IAAI2C,MAAMgiF,OAAS/oF,KAAK28J,KAAK+H,UAAUuM,cAAgBjxK,KAAK28J,KAAK9C,OAAS,KAC/E75J,KAAKoE,IAAI2C,MAAMmqK,UAAYlxK,KAAKgvK,SAAWhvK,KAAKgvK,SAAW,KAAO,GAKlE,IAAIjS,EAAQ0D,GAAQL,QAAUK,GAAQF,IAAM,CAAE1/J,KAAM2hB,EAAS2uJ,eAAejX,UAAWiD,SAAS,QAAUlvJ,EAC1GjO,KAAK88J,KAAK98J,KAAK28J,KAAMI,GACrB/8J,KAAKwN,QAAS,EACVuvJ,IAAUA,EAAMI,SAAW36I,EAAS2uJ,eAAejX,WAAa6C,EAAMl8J,QACtEb,KAAKqvK,gBAAiB,GAC1BrvK,KAAKoE,IAAI2C,MAAMgiF,OAAS,KAE5B/oF,KAAK6uK,qBAAqBlpK,QAAQyrK,GAASA,EAAM5jK,QAAS,GAC1D,IAAI6jK,EAAO,GACX,GAAIrxK,KAAK28J,KAAK2U,SAASv3J,MAAQ/Z,KAAK28J,KAAK2U,SAASp+C,GAAKlzH,KAAK28J,KAAKj0I,MAAMxnB,IAAIuD,OACvE,QAAS+1B,KAASx6B,KAAKu3B,SACfiD,aAAiBuqI,IAAmBvqI,EAAM6nI,kBAAkBkP,IAC5DF,EAAKzoK,KAAK4xB,EAAMp2B,KAC5Boe,EAASgvJ,WAAWH,EACxB,CACAL,eAAeroI,EAASmoI,EAAW53D,GAC/B,IAAIiqC,EAASjqC,EAAcA,EAAYgsC,MAAM4oB,SAASnlI,EAAQ5iC,SAAW4iC,EACrE82G,EAASz/I,KAAK++J,YAAY+R,GAC9B,QAAStsK,EAAI2+I,EAAO1+I,OAAS,GAAID,IAAK,CAClC,IAAIsU,EAAOtU,GAAK,EAAI2+I,EAAO3+I,GAAK,KAChC,IAAKsU,EACD,MACJ,IAAuCtM,EAASmzJ,GAAcrM,GAAWK,IAAnE/Q,QAAOC,MAAKC,QAAO+qB,OAAQ/0J,EACjC,GAAIogG,GAAeA,EAAYgsC,MAAMpC,MAAQ+qB,GAAO30D,EAAYgsC,MAAM2oB,IAAM/qB,EAAO,CAC/E,IAAIX,GAASokB,GAAexhK,MAAM/E,KAAK28J,KAAKj0I,MAAMxnB,IAAK4hJ,EAAO5pC,EAAYgsC,MAAMpC,MAAO9iJ,KAAKwnK,YAAaxnK,KAAKynK,sBAC1GlK,GAAQgJ,GAAexhK,MAAM/E,KAAK28J,KAAKj0I,MAAMxnB,IAAKg4G,EAAYgsC,MAAM2oB,IAAKA,EAAK7tK,KAAKwnK,YAAaxnK,KAAKynK,sBACzG9H,GAAexd,GAAOwd,aACtBrM,GAAYnR,GAAOmR,UACnBK,GAAU4J,GAAM5J,QAChB,IAAI8d,GAAWzxK,KAAK0xK,gBAAgBx4D,GAChCqkD,GAAMoC,aACN8R,GAAS7U,WAAa,EAEjBW,GAAM/wJ,QAAQ/H,QACnBgtK,GAAS92H,MAAM82H,GAAShtK,OAAQgtK,GAAShtK,OAAQ84J,GAAM/wJ,QAAQ,IAAI,EAAO+wJ,GAAMjK,UAAW,KAC3Fme,GAAS7U,WAAaW,GAAM/wJ,QAAQ,GAAGowJ,WACvCW,GAAM/wJ,QAAQyD,SAEdkyI,GAAO31I,QAAQ/H,QACfgtK,GAAS92H,MAAM,EAAG,EAAGwnG,GAAO31I,QAAQ21I,GAAO31I,QAAQ/H,OAAS,IAAI,EAAM,EAAG09I,GAAOwR,UAChFxR,GAAO31I,QAAQwE,MAEnBxE,EAAU21I,GAAO31I,QAAQiO,OAAOg3J,IAAUh3J,OAAO8iJ,GAAM/wJ,QAAO,OAG3DA,UAASmzJ,gBAAcrM,aAAWK,YACjC4S,GAAexhK,MAAM/E,KAAK28J,KAAKj0I,MAAMxnB,IAAK4hJ,EAAO+qB,EAAK7tK,KAAKwnK,YAAaxnK,KAAKynK,uBAErF,IAAMjjK,EAAGq5J,GAAKpa,IAAKic,IAAUjgB,EAAOyf,QAAQrc,EAAK,IAC3Cr+I,EAAGm5J,GAAOla,IAAKgc,IAAYhgB,EAAOyf,QAAQtc,GAAO,GACvD4C,GAAaxlJ,KAAM29J,GAAO8B,GAAS5B,GAAK6B,GAAOlzJ,EAASmzJ,GAAcrM,GAAWK,GAAO,CAExFz6C,GACAl5G,KAAK2xK,kBAAkBz4D,EAC/B,CACAw2D,4BAA4Bp1J,GACxBta,KAAK8uK,sBAAwB9uK,KAAK8uK,sBAAsBvnK,IAAI+S,EAAOquB,SACnE,QAAS2+G,KAAMhtI,EAAO6zJ,aAClB,QAASziB,KAAUpE,EAAGmE,QACdC,EAAOviE,GAAG6iF,MACVhsK,KAAK8uK,sBAAwBpjB,EAAOx/I,MAEpD,CACAwlK,gBAAgBx4D,GACZ,IAAIy4C,EAAM,IAAIwP,GAASjoD,EAAYx1F,KAAK5V,WACxC6jJ,EAAInkJ,OAAS,EACb,QAAWw2J,UAAU9qD,EAAYq3D,MAC7B5e,EAAM,IAAIiQ,GAASoC,EAAM,CAACrS,GAAMA,EAAIltJ,QACxC,IAAI6U,EAAO,IAAIqqJ,GACfrqJ,SAAKW,OAAO03I,EAAK,GACVr4I,CACX,CACAq4J,kBAAkBz4D,GACd,IAAI04D,EAAM,CAACxtK,EAAKgtK,KACZA,EAAM5jK,OAAS,GAAgC4jK,EAAM75I,SAASqY,KAAKtY,GAAe,EAAVA,EAAE9pB,OAAkC,EAA8B,GAC1IxN,KAAK6uK,qBAAqBvmK,IAAI8oK,GAC9B,IAAI9qE,EAAOg2D,GAAYt4J,IAAII,GACvBkiG,GAAQA,GAAQ8qE,IAChB9qE,EAAKliG,IAAM,MACfgtK,EAAM7S,OAAOn6J,EAAG,EAEhB0vC,EAAM9zC,KAAKi/J,SAAS/lD,EAAYgsC,MAAMpC,MAAO,GAC7CsuB,EAAQpxK,KAAKu3B,SAASuc,EAAItvC,GAC9BotK,EAAI14D,EAAY5/F,KAAM83J,GACtB,QAAS5sK,EAAI00G,EAAYq3D,MAAM9rK,OAAS,EAAGD,IAAK,EAAIA,IAChDsvC,EAAMs9H,EAAMnS,SAASnrH,EAAI2vG,IAAK,GAC9B2tB,EAAQA,EAAM75I,SAASuc,EAAItvC,GAC3BotK,EAAIptK,GAAK,EAAI00G,EAAYq3D,MAAM/rK,GAAG3D,KAAOq4G,EAAYx1F,KAAM0tJ,EAEnE,CAEAS,gBAAgBC,GAAW,EAAOC,GAAc,IACxCD,IAAa9xK,KAAK28J,KAAKn6I,SAAS2uJ,eAAejX,YAC/Cl6J,KAAK28J,KAAKn6I,SAASwvJ,qBACvB,IAAIC,EAAYjyK,KAAK28J,KAAK3kI,KAAKk6I,cAAeC,EAAUF,GAAajyK,KAAKoE,IACtEguK,GAAqBD,GACrBla,GAAaj4J,KAAKoE,IAAKpE,KAAK28J,KAAKn6I,SAAS2uJ,mBAAqBc,GAAajyK,KAAKoE,IAAIm5D,SAAS00G,IAClG,KAAME,GAAWJ,GAAeK,GAC5B,OACJ,IAAIxuB,EAAQ5jJ,KAAKqvK,eACjBrvK,KAAKqvK,gBAAiB,EACtB,IAAIhqB,EAAOrlJ,KAAK28J,KAAKj0I,MAAMm9H,UAAUR,KACjC9iH,EAASviC,KAAKqyK,WAAWryK,KAAKshK,SAASjc,EAAK9iH,SAC5C15B,EAAOw8I,EAAKv+H,MAAQyb,EAASviC,KAAKqyK,WAAWryK,KAAKshK,SAASjc,EAAKx8I,OAGpE,GAAI43J,GAAQN,OAAS9a,EAAKv+H,QAAU9mB,KAAK4uK,gBAyVjD,SAAS0D,GAAkBx+H,GACvB,OAA4B,GAArBA,EAAIjzC,KAAKY,UAAiBqyC,EAAIjzC,KAAKqiC,aACvB,GAAd4Q,EAAIoa,QAAsE,SAAvDpa,EAAIjzC,KAAKk4J,WAAWjlH,EAAIoa,OAAS,GAAG8qG,mBACvDllH,EAAIoa,QAAUpa,EAAIjzC,KAAKk4J,WAAWt0J,QAA6D,SAAnDqvC,EAAIjzC,KAAKk4J,WAAWjlH,EAAIoa,QAAQ8qG,gBACrF,CA7VmEsZ,CAAkB/vI,GAAS,CAClF,IAAIgwI,EAAQlxK,SAAS+K,eAAe,IACpCpM,KAAK28J,KAAKn6I,SAAS6gJ,OAAO,IAAM9gI,EAAO1hC,KAAK4L,aAAa8lK,EAAOhwI,EAAO1hC,KAAKk4J,WAAWx2H,EAAO2rB,SAAW,OACzG3rB,EAAS15B,EAAO,IAAIszJ,GAAOoW,EAAO,GAClC3uB,GAAQ,EAEZ,IAAIwW,EAASp6J,KAAK28J,KAAKn6I,SAAS2uJ,gBAE5BvtB,IAAUwW,EAAOF,aAAe5B,GAAqB/1H,EAAO1hC,KAAM0hC,EAAO2rB,OAAQksG,EAAOlC,WAAYkC,EAAOH,gBAC1G3B,GAAqBzvJ,EAAKhI,KAAMgI,EAAKqlD,OAAQksG,EAAOF,UAAWE,EAAOD,gBAAkBn6J,KAAKwyK,2BAA2BpY,EAAQ/U,MACjIrlJ,KAAK28J,KAAKn6I,SAAS6gJ,OAAO,KAKlB5C,GAAQQ,SAAWR,GAAQL,QAAUpgK,KAAKoE,IAAIm5D,SAAS68F,EAAOF,YA0alF,SAASuY,GAAa5xK,EAAM6xK,GACxB,QAAS/gB,EAAM9wJ,EAAM8wJ,GAAOA,GAAO+gB,EAAQ/gB,EAAMA,EAAIghB,cAAgBhhB,EAAI7wJ,WACrE,GAAoB,GAAhB6wJ,EAAIlwJ,UAAwC,SAAvBkwJ,EAAIqH,gBACzB,OAAO,EAGf,OAAO,CACX,CAhboByZ,CAAarY,EAAOF,UAAWl6J,KAAKoE,OACpCpE,KAAKoE,IAAIwuK,OACT5yK,KAAKoE,IAAIs2J,MAAM,CAAEG,eAAe,KAEpC,IAAIgY,EAAS7a,GAAah4J,KAAK28J,KAAK3kI,MACpC,GAAK66I,EACA,GAAIxtB,EAAKv+H,MAAO,CAEjB,GAAI25I,GAAQN,MAAO,CACf,IAAI2S,EA8Y5B,SAASC,GAAiBlyK,EAAMqtD,GAC5B,OAAqB,GAAjBrtD,EAAKY,SACE,GACHysD,GAAyD,SAA/CrtD,EAAKk4J,WAAW7qG,EAAS,GAAG8qG,gBAA6B,EAAwB,IAC9F9qG,EAASrtD,EAAKk4J,WAAWt0J,QAAqD,SAA3C5D,EAAKk4J,WAAW7qG,GAAQ8qG,gBAA6B,EAAuB,EACxH,CAnZqC+Z,CAAiBxwI,EAAO1hC,KAAM0hC,EAAO2rB,QAClD,GAAI4kH,GAAqB,GAAXA,EAA0D,CACpE,IAAIpvJ,IAAkB,GAAVovJ,EAAkC/W,GAAiBG,IAAe35H,EAAO1hC,KAAM0hC,EAAO2rB,QAC9FxqC,KACA6e,EAAS,IAAI45H,GAAOz4I,GAAK7iB,KAAM6iB,GAAKwqC,QAAM,EAGtD2kH,EAAOG,SAASzwI,EAAO1hC,KAAM0hC,EAAO2rB,QACd,MAAlBm3F,EAAKR,gBAA+C52I,IAA1B4kK,EAAOI,iBACjCJ,EAAOI,eAAiB5tB,EAAKR,mBAE5BguB,EAAOjzB,OAAQ,CAIpBizB,EAAOG,SAASzwI,EAAO1hC,KAAM0hC,EAAO2rB,QAIpC,IACI2kH,EAAOjzB,OAAO/2I,EAAKhI,KAAMgI,EAAKqlD,OAEtB,CADZ,MACY,MAEX,CAED,IAAIg3F,EAAQ7jJ,SAASy5J,cACjBzV,EAAK9iH,OAAS8iH,EAAKx8I,QAClB05B,EAAQ15B,GAAQ,CAACA,EAAM05B,IAC5B2iH,EAAM6V,OAAOlyJ,EAAKhI,KAAMgI,EAAKqlD,QAC7Bg3F,EAAM8V,SAASz4H,EAAO1hC,KAAM0hC,EAAO2rB,QACnC2kH,EAAOK,kBACPL,EAAOttB,SAASL,EAAK,CAErBktB,GAAqBpyK,KAAK28J,KAAK3kI,KAAKk6I,eAAiBlyK,KAAKoE,MAC1DpE,KAAKoE,IAAIwuK,OACLX,GACAA,EAAUvX,QAAK,GAG3B16J,KAAK28J,KAAKn6I,SAAS2wJ,kBAAkB5wI,EAAQ15B,IAEjD7I,KAAKmvK,gBAAkB5sI,EAAO65H,QAAU,KAAO,IAAID,GAAO/B,EAAOlC,WAAYkC,EAAOH,cACpFj6J,KAAKovK,cAAgBvmK,EAAKuzJ,QAAU,KAAO,IAAID,GAAO/B,EAAOF,UAAWE,EAAOD,YACnF,CAIAqY,2BAA2BtlB,EAAKzN,GAC5B,OAAOz/I,KAAK4uK,gBAAkBnvB,EAAO34H,OACjCwxI,GAAqBpL,EAAIgN,UAAWhN,EAAIiN,YAAajN,EAAIgL,WAAYhL,EAAI+M,eACzEj6J,KAAKozK,WAAWlmB,EAAIgN,UAAWhN,EAAIiN,cAAgB1a,EAAO52I,IAClE,CACAwqK,qBACI,GAAIrzK,KAAK4uK,eACL,OACJ,IAAMjS,QAAS38J,KAAMy/I,EAASkd,EAAKj0I,MAAMm9H,UAAUR,KAC/C6H,EAAM8K,GAAa2E,EAAK3kI,OACtBkgI,aAAY+B,gBAAiB0C,EAAKn6I,SAAS2uJ,eACjD,KAAKjkB,GAAQzN,EAAO34H,OAAU24H,EAAO6C,OAAU4K,EAAIomB,QAC/C,OACJ,IAAIh6J,EAAOqqJ,GAAS/jI,KAAK5/B,KAAMy/I,EAAO52I,MACtC,IAAKyQ,EACD,OACJ,IAAIi6J,EAAYj6J,EAAKkjJ,WACrB,GAAI/c,EAAO52I,MAAQ0qK,GAAa9zB,EAAO52I,MAAQ0qK,EAAYj6J,EAAK7U,OAC5D,OACJ,IAAI09I,EAASniJ,KAAKyhK,SAAShiB,EAAO52I,MAAM,GAAK00J,EAAQv9J,KAAKyhK,SAAShiB,EAAO52I,KAAM,GAChF,IAAKs5I,IAAWob,GAASpb,EAAOgX,OAASoE,EAAMhe,IAC3C,OACJ,IAAIn7I,EAAMpE,KAAKshK,SAAS7hB,EAAO52I,KAAO42I,EAAO6C,OAC7C4K,EAAI8lB,SAAS5uK,EAAIvD,KAAMuD,EAAI8pD,QAC3Bg/F,EAAIomB,OAAO,OAAQ7zB,EAAO6C,MAAQ,EAAI,UAAY,WAAY,gBAG9Dqa,EAAKn6I,SAASwvJ,qBACd,IAAIwB,EAAW7W,EAAKn6I,SAAS2uJ,eACzBxU,EAAKkI,QAAQuO,WAAWI,EAAStb,WAAYsb,EAASvZ,eAAiBxa,EAAO1lI,MAC9EmzI,EAAI8lB,SAAS9a,EAAY+B,EACjC,CAGAoY,WAAWv+H,GAGP,IAAoBi9G,EAAhB3sJ,EAAMpE,KAAKoE,IACf,GAAI0vC,EAAIjzC,MAAQuD,EACZ,OAAO0vC,EACX,QAAStvC,EAAIsvC,EAAIoa,QAAS6iG,GAAUvsJ,EAAIJ,EAAI20J,WAAWt0J,OAAQD,IAAK,CAChE,IAAIm4J,EAAOL,GAAYt4J,IAAII,EAAI20J,WAAWv0J,IACtCm4J,aAAgBgH,KAChB5S,EAAS4L,EAAK2E,SAAS,GAAC,CAEhC,QAAS98J,EAAIsvC,EAAIoa,OAAS,GAAI6iG,GAAUvsJ,GAAK,EAAGA,IAAK,CACjD,IAAIm4J,EAAOL,GAAYt4J,IAAII,EAAI20J,WAAWv0J,IACtCm4J,aAAgBgH,KAChB5S,EAAS4L,EAAK2E,SAAS3E,EAAKl4J,QAAM,CAE1C,OAAOssJ,EAAS,IAAIoL,GAAOpL,EAAOlwJ,KAAMkwJ,EAAO7iG,QAAQ,GAAQpa,CACnE,CACA2/H,QAAQrvK,GACJ,QAASutJ,EAAMvtJ,EAAKutJ,GAAM,CACtB,IAAI+hB,EAAUpX,GAAYt4J,IAAI2tJ,GAC9B,GAAI+hB,GAAWA,EAAQjV,UAAYz+J,KAC/B,OAAO0zK,EACX/hB,EAAMA,EAAI7wJ,WAEd,OAAO,IACX,CACAsyK,WAAWvyK,EAAMqtD,GACb,IAAIyuG,EAAO38J,KAAKyzK,QAAQ5yK,GACxB,IAAK87J,EACD,MAAM,IAAItgB,WAAW,sEACzB,OAAOsgB,EAAKW,gBAAgBz8J,EAAMqtD,GAAUyuG,EAAKH,UACrD,CACA8E,SAASxtH,GACL,IAAMtvC,IAAGi/I,OAAQzjJ,KAAK++J,cAAcG,QAAQprH,GAAK,GACjD,KAAOtvC,EAAIxE,KAAKu3B,SAAS9yB,OAAS,GAAI,CAClC,IAAI+1B,EAAQx6B,KAAKu3B,SAAS/yB,GAC1B,GAAIi/I,EAAMjpH,EAAM/1B,QAAU+1B,aAAiBmpI,GACvC,MACJn/J,IACAi/I,EAAM,EAEV,OAAOzjJ,KAAKu3B,SAAS/yB,GAAG88J,SAAS7d,EACrC,CACAge,SAAS3tH,EAAKu7G,GACV,IAAIskB,EAAO,KAAMC,EAAU,EAC3B,QAASnwB,EAAMzjJ,KAAKyE,OAAQD,EAAIxE,KAAKu3B,SAAS9yB,OAAS,EAAGD,GAAK,EAAGA,IAAK,CACnE,IAAIg2B,EAAQx6B,KAAKu3B,SAAS/yB,GAAIgH,EAAMi4I,EAAMjpH,EAAMoiI,WAAYv5E,EAAQ73E,EAAMgvB,EAAM/1B,OAChF,GAAI+G,EAAMsoC,EACN,MACJ,GAAIuvC,GAASvvC,IAAQuvC,EAAQvvC,GAAOtZ,EAAMoqI,QAAO,MAASp5J,EAAMsoC,GAAOtZ,EAAMoqI,OAAO,OAC9E+O,GAAQn5I,aAAiBmpI,MAAcgQ,aAAgBhQ,IAAYtU,GAAQ,IAC7EskB,EAAOn5I,EACPo5I,EAAUvwF,UAELswF,GAAQtwF,GAASvvC,GAAOtoC,GAAOsoC,GAAOtZ,aAAiBuqI,IAAmB75I,KAAK0B,IAAIyiI,GAAQ,EAAG,CACnG,GAAI70H,EAAMwpI,KAAK5T,UAAY,EACvB,MACK5rJ,IACLmvK,EAAO,MAEflwB,EAAMpgE,EAEV,OAAOswF,EAAOA,EAAKlS,SAAS3tH,EAAM8/H,EAASvkB,GAAQ,IACvD,CACAwkB,cAAc//H,GACV,IAAMtvC,IAAGi/I,OAAQzjJ,KAAKi/J,SAASnrH,EAAK,GAAItZ,EAAQx6B,KAAKu3B,SAAS/yB,GAC9D,KAAMg2B,aAAiBmpI,IACnB,OAAO,KACX,KAAOnpI,EAAMjD,SAAS9yB,QAAQ,CAC1B,IAAMD,IAAGi/I,IAAKqwB,GAAat5I,EAAMykI,SAASxb,EAAK,GAC/C,MAAQj/I,IAAK,CACT,GAAIA,GAAKg2B,EAAMjD,SAAS9yB,OACpB,OAAO,KACX,IAAK+1B,EAAQA,EAAMjD,SAAS/yB,IAAIC,OAC5B,MAERg/I,EAAMqwB,EAEV,KAAMt5I,aAAiB2mI,IACnB,OAAO,KACX,IAAI31J,EAAMy0I,GAAiBzlH,EAAM9W,KAAM+/H,GACvC,GAAIj4I,GAAOi4I,EACP,OAAO,KACX,IAAIke,EAAQvJ,GAAU59H,EAAMp2B,IAAKq/I,EAAKj4I,GAAK6sJ,iBAC3C,QAAS7zJ,EAAI,EAAGA,EAAIm9J,EAAMl9J,OAAQD,IAAK,CACnC,IAAI00J,EAAOyI,EAAMn9J,GACjB,GAAIA,GAAKm9J,EAAMl9J,OAAS,GAAKy0J,EAAK3Z,IAAM2Z,EAAKC,QAAUD,EAAKjpD,KAAOipD,EAAKhpD,MACpE,OAAOgpD,EAEf,OAAO,IACX,CACA6a,0BAA0BzC,GACtB,IAAIhgK,EAAS,IAAMyI,OAAMm5G,MAAOo+C,EAC5B0C,EAAeh0K,KAAK28J,KAAK4S,WAAW0E,YACpCC,EAAUF,EAAe9oJ,KAAKC,IAAInrB,KAAK28J,KAAKwX,UAAUF,YAAaj0K,KAAKgvK,UAAY,EACpFoF,GAAS,EAAIC,EAAMr0K,KAAK28J,KAAK2X,eAAiB3M,GAAUC,IAC5D,QAAS9zH,EAAM,EAAGtvC,EAAI,EAAGA,EAAIxE,KAAKu3B,SAAS9yB,OAAQD,IAAK,CACpD,IAAIg2B,EAAQx6B,KAAKu3B,SAAS/yB,GAAIgH,EAAMsoC,EAAMtZ,EAAM/1B,OAChD,GAAI+G,EAAM0nH,EACN,MACJ,GAAIp/E,GAAO/5B,EAAM,CACb,IAAIw6J,GAAY/5I,EAAMp2B,IAAIy+J,wBAE1B,GADAvxJ,EAAO1I,KAAK2rK,GAAUxrF,QAClBmrF,EAAS,CACT,IAAItgJ,GAAO4G,EAAMp2B,IAAIq5J,UACjBkE,GAAQ/tI,GAAOukI,GAAevkI,IAAQ,GAC1C,GAAI+tI,GAAMl9J,OAAQ,CACd,IAAIy0J,GAAOyI,GAAMA,GAAMl9J,OAAS,GAC5Bg0D,GAAQ47G,EAAMnb,GAAKhpD,MAAQqkE,GAAUtkE,KAAOskE,GAAUrkE,MAAQgpD,GAAKjpD,KACnEx3C,GAAQ27G,IACRA,EAAS37G,GACTz4D,KAAKgvK,SAAWgF,EAChBh0K,KAAKivK,aAAen7H,EACpB9zC,KAAKkvK,WAAa1jK,KAKlCsoC,EAAMtoC,EAAMgvB,EAAMoiI,WAEtB,OAAOtrJ,CACX,CACAkjK,gBAAgB1gI,GACZ,IAAMtvC,KAAMxE,KAAKi/J,SAASnrH,EAAK,GAC/B,MAA2D,OAApD4uB,iBAAiB1iE,KAAKu3B,SAAS/yB,GAAGJ,KAAKqkK,UAAqBd,GAAUE,IAAMF,GAAUC,GACjG,CACAxD,kBACI,QAAS5pI,KAASx6B,KAAKu3B,SACnB,GAAIiD,aAAiBmpI,GAAU,CAC3B,IAAI8Q,EAAUj6I,EAAM4pI,kBACpB,GAAIqQ,EACA,OAAOA,EAInB,IAA2ClQ,EAAYC,EAAWH,EAA9DkO,EAAQlxK,SAASL,cAAc,OACnCuxK,SAAM11F,UAAY,UAClB01F,EAAMxrK,MAAM0xD,MAAQ,UACpB85G,EAAMxrK,MAAMu7B,SAAW,WACvBiwI,EAAM9pK,YAAc,8BACpBzI,KAAK28J,KAAKn6I,SAAS6gJ,OAAO,KACtBrjK,KAAKoE,IAAIsE,YAAY6pK,GACrB,IAAIrZ,EAAOf,GAAeoa,EAAMrvI,YAAY,GAC5CqhI,EAAagO,EAAM1P,wBAAwB95E,OAC3Cy7E,EAAYtL,EAAOA,EAAKzgG,MAAQ,GAAK,EACrC4rG,EAAanL,EAAOA,EAAKnwE,OAASw7E,EAClCgO,EAAM3xK,QAAM,GAET,CAAE2jK,aAAYC,YAAWH,aACpC,CACAtF,YAAYjrH,EAAM9zC,KAAKyE,QAInB,IAAID,EAAIxE,KAAKu3B,SAAS9yB,OACtB,OAAID,IACAsvC,GAAO9zC,KAAKu3B,WAAW/yB,GAAGC,QACvB,IAAIu6J,GAAYh/J,KAAKu3B,SAAUuc,EAAKtvC,EAC/C,CACAkwK,sBACI,IAAI1Q,EAAO,GAAI2Q,EAAK30K,KAAK28J,KAAK+H,UAC9B,QAAS5wH,EAAM,EAAGtvC,EAAI,GAAIA,IAAK,CAC3B,IAAIsU,EAAOtU,GAAKmwK,EAAGC,UAAUnwK,OAAS,KAAOkwK,EAAGC,UAAUpwK,GACtDgH,EAAMsN,EAAOA,EAAKiB,KAAO,EAAI/Z,KAAKyE,OACtC,GAAI+G,EAAMsoC,EAAK,CACX,IAAIi1C,GAAU4rF,EAAGE,YAAYrpK,GAAK2tJ,OAASwb,EAAGE,YAAY/gI,GAAKyrG,KAAOv/I,KAAK28J,KAAK9C,OAChFmK,EAAKp7J,KAAK48J,GAAW57J,QAAQ,CACzBy4J,OAAQ,IAAIkP,GAAexoF,GAC3B+7E,OAAO,EACPhxI,WAAW,EACX+xI,YAAY,IACb3gB,MAAMpxG,EAAKtoC,GAAI,CAEtB,IAAKsN,EACD,MACJg7B,EAAMh7B,EAAKo6G,GAAK,EAEpB,OAAOsyC,GAAWh/J,IAAIw9J,EAC1B,CACAwL,aACI,IAAIhrK,EAAI,EACJswK,EAAU90K,KAAK28J,KAAKj0I,MAAMm+H,MAAM2gB,IAAajgK,IAAIg9B,IACnCvkC,KAAKynK,qBAAqBjjK,KAAmB,mBAAL+/B,GACrCA,EAAEvkC,KAAK28J,MAAQp4H,GAEhCwwI,GAAe,EAAOC,EAAYh1K,KAAK28J,KAAKj0I,MAAMm+H,MAAMomB,IAAkB1lK,IAAI,CAACg9B,EAAG//B,KAClF,IAAIyhE,EAAsB,mBAAL1hC,EACrB,OAAI0hC,IACA8uG,GAAe,GACZ9uG,EAAU1hC,EAAEvkC,KAAK28J,MAAQp4H,IAYpC,IAVIywI,EAAUvwK,SACVzE,KAAKynK,qBAAqBjjK,KAAOuwK,EACjCD,EAAQlsK,KAAKwoJ,QAAc4jB,KAE/Bh1K,KAAKwnK,YAAc,CACfxnK,KAAK8uK,yBACFgG,EACH90K,KAAK00K,sBACL10K,KAAK28J,KAAK+H,UAAUuQ,aAEjBzwK,EAAIxE,KAAKwnK,YAAY/iK,QACxBzE,KAAKynK,qBAAqBjjK,MAAO,EACrC,OAAOxE,KAAKwnK,WAChB,CACAzb,eAAehqJ,GACX,GAAIA,EAAOgqK,WAAY,CACnB,IAAIpiI,EAAM3pC,KAAK28J,KAAK+H,UAAUmQ,YAAY9yK,EAAOmjJ,MAAMr8I,MAGvD,OAFA7I,KAAK28J,KAAKwX,UAAUxZ,UAAYhxH,EAAI41G,IAAMx9I,EAAO8pK,aACjD7rK,KAAK28J,KAAKwX,UAAUvZ,WAAa74J,EAAO+pK,QACxC,CAEJ,QAAS3lK,KAAWnG,KAAK28J,KAAKj0I,MAAMm+H,MAAM8kB,IACtC,IACI,GAAIxlK,EAAQnG,KAAK28J,KAAM56J,EAAOmjJ,MAAOnjJ,GACjC,OAAO,CAIf,CAHA,MACOoG,GACH8jK,GAAajsK,KAAK28J,KAAKj0I,MAAOvgB,EAAG,iBACrC,CAEJ,IACsGqS,GADhG0qI,SAAUnjJ,EACZm3J,EAAOl5J,KAAKyhK,SAASvc,EAAMr8I,KAAMq8I,EAAMp+H,MAAQo+H,EAAM5C,MAAQ4C,EAAMr8I,KAAOq8I,EAAM3iH,QAAS,EAAK,GAClG,IAAK22H,EACD,QACChU,EAAMp+H,QAAUtM,EAAQxa,KAAKyhK,SAASvc,EAAM3iH,OAAQ2iH,EAAM3iH,OAAS2iH,EAAMr8I,MAAO,EAAK,MACtFqwJ,EAAO,CAAEjpD,KAAM/kF,KAAK4lC,IAAIooG,EAAKjpD,KAAMz1F,EAAMy1F,MAAOsvC,IAAKr0H,KAAK4lC,IAAIooG,EAAK3Z,IAAK/kI,EAAM+kI,KAC1ErvC,MAAOhlF,KAAKC,IAAI+tI,EAAKhpD,MAAO11F,EAAM01F,OAAQipD,OAAQjuI,KAAKC,IAAI+tI,EAAKC,OAAQ3+I,EAAM2+I,UACtF,IAAI+b,EAAUxH,EAAiB1tK,KAAK28J,MAChCwY,EAAa,CACbllE,KAAMipD,EAAKjpD,KAAOilE,EAAQjlE,KAAMsvC,IAAK2Z,EAAK3Z,IAAM21B,EAAQ31B,IACxDrvC,MAAOgpD,EAAKhpD,MAAQglE,EAAQhlE,MAAOipD,OAAQD,EAAKC,OAAS+b,EAAQ/b,SAE/DS,cAAaE,gBAAiB95J,KAAK28J,KAAKwX,WAnkGtD,SAASiB,GAAmBhxK,EAAK80J,EAAM7J,EAAMh7H,EAAG6gE,EAAG42E,EAASD,EAASwI,GACjE,IAAInzK,EAAMkD,EAAIgzJ,cAAeC,EAAMn2J,EAAIo2J,aAAet1J,OACtD,QAAS2vJ,EAAMvtJ,EAAKixK,GAAO,EAAO1jB,IAAQ0jB,GACtC,GAAoB,GAAhB1jB,EAAIlwJ,SAAe,CACnB,IAAI6zK,EAAU/1B,GAAMoS,GAAOzwJ,EAAIe,KAC3B03J,GAAS,EAAGE,GAAS,EACzB,GAAIta,GACA+1B,EAAWlc,GAAW/B,OAErB,CAGD,GAFI,mBAAmBl0I,KAAKu/C,iBAAiBivF,GAAKrvH,YAC9C+yI,GAAO,GACP1jB,EAAIkK,cAAgBlK,EAAImK,cAAgBnK,EAAI4jB,aAAe5jB,EAAIsiB,YAAa,CAC5EtiB,EAAMA,EAAIghB,cAAgBhhB,EAAI7wJ,WAC9B,SAEJ,IAAIo4J,GAAOvH,EAAIkR,0BACZlJ,UAAQE,WAAWJ,GAAS9H,EAAKuH,KAEpCoc,EAAW,CAAErlE,KAAMipD,GAAKjpD,KAAMC,MAAOgpD,GAAKjpD,KAAO0hD,EAAIsiB,YAActa,GAC/Dpa,IAAK2Z,GAAK3Z,IAAK4Z,OAAQD,GAAK3Z,IAAMoS,EAAImK,aAAejC,GAAO,CAEpE,IAAI2b,GAAQ,EAAGC,GAAQ,EACvB,GAAS,WAALvgF,EACIgkE,EAAK3Z,IAAM+1B,EAAS/1B,KACpBk2B,KAAUH,EAAS/1B,IAAM2Z,EAAK3Z,IAAMssB,GAChCxc,EAAO,GAAK6J,EAAKC,OAASmc,EAASnc,OAASsc,KAC5CA,GAAQvc,EAAKC,OAASmc,EAASnc,OAASsc,GAAQ5J,IAE/C3S,EAAKC,OAASmc,EAASnc,SAC5Bsc,GAAQvc,EAAKC,OAASmc,EAASnc,OAAS0S,EACpCxc,EAAO,GAAM6J,EAAK3Z,IAAMk2B,GAASH,EAAS/1B,MAC1Ck2B,KAAUH,EAAS/1B,IAAMk2B,GAAQvc,EAAK3Z,IAAMssB,SAGnD,CACD,IAAI6J,GAAaxc,EAAKC,OAASD,EAAK3Z,IAAKo2B,GAAiBL,EAASnc,OAASmc,EAAS/1B,IAIrFk2B,IAHqB,UAALvgF,GAAiBwgF,IAAcC,GAAiBzc,EAAK3Z,IAAMm2B,GAAa,EAAIC,GAAiB,EACpG,SAALzgF,GAAqB,UAALA,GAAiBm6D,EAAO,EAAI6J,EAAK3Z,IAAMssB,EACnD3S,EAAKC,OAASwc,GAAiB9J,GACnByJ,EAAS/1B,IAoBjC,GAlBS,WAALlrH,EACI6kI,EAAKjpD,KAAOqlE,EAASrlE,MACrBulE,KAAUF,EAASrlE,KAAOipD,EAAKjpD,KAAO67D,GAClCzc,EAAO,GAAK6J,EAAKhpD,MAAQolE,EAASplE,MAAQslE,KAC1CA,GAAQtc,EAAKhpD,MAAQolE,EAASplE,MAAQslE,GAAQ1J,IAE7C5S,EAAKhpD,MAAQolE,EAASplE,QAC3BslE,GAAQtc,EAAKhpD,MAAQolE,EAASplE,MAAQ47D,EAClCzc,EAAO,GAAK6J,EAAKjpD,KAAOqlE,EAASrlE,KAAOulE,KACxCA,KAAUF,EAASrlE,KAAOulE,GAAQtc,EAAKjpD,KAAO67D,KAOtD0J,IAHsB,UAALnhJ,EAAgB6kI,EAAKjpD,MAAQipD,EAAKhpD,MAAQgpD,EAAKjpD,MAAQ,GAAKqlE,EAASplE,MAAQolE,EAASrlE,MAAQ,EACrG,SAAL57E,GAAiBggJ,EAAMnb,EAAKjpD,KAAO67D,EAChC5S,EAAKhpD,OAASolE,EAASplE,MAAQolE,EAASrlE,MAAQ67D,GACnCwJ,EAASrlE,KAE9BulE,IAASC,GACT,GAAIl2B,GACA8X,EAAIue,SAASJ,GAAOC,QAEnB,CACD,IAAII,GAAS,EAAGC,GAAS,EACzB,GAAIL,GAAO,CACP,IAAIpyF,GAAQsuE,EAAIgJ,UAChBhJ,EAAIgJ,WAAa8a,GAAQ5b,GACzBic,IAAUnkB,EAAIgJ,UAAYt3E,IAASw2E,GAEvC,GAAI2b,GAAO,CACP,IAAInyF,GAAQsuE,EAAIiJ,WAChBjJ,EAAIiJ,YAAc4a,GAAQ7b,GAC1Bkc,IAAUlkB,EAAIiJ,WAAav3E,IAASs2E,GAExCT,EAAO,CAAEjpD,KAAMipD,EAAKjpD,KAAO4lE,GAAQt2B,IAAK2Z,EAAK3Z,IAAMu2B,GAC/C5lE,MAAOgpD,EAAKhpD,MAAQ2lE,GAAQ1c,OAAQD,EAAKC,OAAS2c,IAClDD,IAAU3qJ,KAAK0B,IAAIipJ,GAASL,IAAS,IACrCnhJ,EAAI,WACJyhJ,IAAU5qJ,KAAK0B,IAAIkpJ,GAASL,IAAS,IACrCvgF,EAAI,WAGhB,GAAIqqD,GACA,MACJoS,EAAMA,EAAIghB,cAAgBhhB,EAAI7wJ,mBAET,IAAhB6wJ,EAAIlwJ,SAIT,MAHAkwJ,EAAMA,EAAI1pJ,IAGV,CAGZ,CAq+FQmtK,CAAmBp1K,KAAK28J,KAAKwX,UAAWgB,EAAYjwB,EAAMr8I,KAAOq8I,EAAM3iH,QAAS,EAAK,EAAGxgC,EAAOsyB,EAAGtyB,EAAOmzF,EAAGhqE,KAAKC,IAAID,KAAK4lC,IAAI/uD,EAAO+pK,QAASlS,IAAeA,GAAc1uI,KAAKC,IAAID,KAAK4lC,IAAI/uD,EAAO8pK,QAAS/R,IAAgBA,GAAe95J,KAAK28J,KAAK2X,eAAiB3M,GAAUC,IACrR,EAOJ,MAAM2J,WAAuBtM,GACzBplK,YAAYkpF,GACRjpF,QACAE,KAAK+oF,OAASA,CAClB,CACAy5E,QACI,IAAI9I,EAAMr4J,SAASL,cAAc,OACjC04J,SAAI78E,UAAY,SAChB78E,KAAKuiK,UAAU7I,GACRA,CACX,CACA/c,GAAGniI,GAAS,OAAOA,EAAMuuE,QAAU/oF,KAAK+oF,MAAQ,CAChDw5E,UAAU7I,GACNA,SAAI3yJ,MAAMgiF,OAAS/oF,KAAK+oF,OAAS,MAC1B,CACX,CACI05E,eAAa,OAAO,CAAM,CAC1ByC,sBAAoB,OAAOllK,KAAK+oF,MAAQ,CAC5C81E,cAAgB,OAAO,CAAO,EAElC,SAASuR,GAAoBzT,EAAMwT,GAC/B,IAAIjjB,EAAMyP,EAAKn6I,SAAS2uJ,eACxB,IAAKjkB,EAAIgN,UACL,OAAO,KACX,IAAI6b,EAAaha,GAAe7O,EAAIgN,UAAWhN,EAAIiN,aAC/C6b,EAAY9Z,GAAchP,EAAIgN,UAAWhN,EAAIiN,aAC7CkW,EAAW0F,GAAcC,EAC7B,GAAIA,GAAaD,GAAcC,EAAUn1K,MAAQk1K,EAAWl1K,KAAM,CAC9D,IAAIo1K,EAAY3Z,GAAYt4J,IAAIgyK,EAAUn1K,MAC1C,IAAKo1K,GAAaA,aAAqB9U,IAAY8U,EAAUvyJ,MAAQsyJ,EAAUn1K,KAAKiN,UAChFuiK,EAAW2F,UAENrZ,EAAKkI,QAAQkK,2BAA4B,CAC9C,IAAImH,EAAa5Z,GAAYt4J,IAAI+xK,EAAWl1K,OACrCq1K,GAAcA,aAAsB/U,IAAY+U,EAAWxyJ,MAAQqyJ,EAAWl1K,KAAKiN,YACtFuiK,EAAW2F,IAIvB,GADArZ,EAAKkI,QAAQkK,2BAA6BsB,GAAY0F,GACjD1F,EACD,OAAO,KACX,IAAIt2J,EAAOo2J,EAAUE,EAASniH,OAC9B,MAAO,CAAEn0C,OAAMm5G,GAAIn5G,EAAOs2J,EAASxvK,KAAKiN,UAAUrJ,OAAQ5D,KAAMwvK,EAASxvK,KAC7E,CAoCA,IAAI+vK,GAAyB,MACzB/wK,cACIG,KAAK2oC,QAAU,EACnB,CACAitH,aAAa77I,EAAMm5G,GAAMqyB,GAASxrI,EAAMm5G,EAAIlzH,KAAK2oC,QAAU,CAC3DgtH,aAAa57I,EAAMm5G,GAAMqyB,GAASxrI,EAAMm5G,EAAIlzH,KAAK2oC,QAAU,GAyD/D,SAASwtI,GAAM9hJ,EAAG6kI,GACd,OAAOA,EAAKjpD,KAAO57E,EAAI6kI,EAAKjpD,KAAO57E,EAAInJ,KAAKC,IAAI,EAAGkJ,EAAI6kI,EAAKhpD,MAChE,CACA,SAASkmE,GAAMlhF,EAAGgkE,GACd,OAAOA,EAAK3Z,IAAMrqD,EAAIgkE,EAAK3Z,IAAMrqD,EAAIhqE,KAAKC,IAAI,EAAG+pE,EAAIgkE,EAAKC,OAC9D,CACA,SAASkd,GAASrlJ,EAAGC,GACjB,OAAOD,EAAEuuH,IAAMtuH,EAAEkoI,OAAS,GAAKnoI,EAAEmoI,OAASloI,EAAEsuH,IAAM,CACtD,CACA,SAAS+2B,GAAMpd,EAAM3Z,GACjB,OAAOA,EAAM2Z,EAAK3Z,IAAM,CAAEA,MAAKtvC,KAAMipD,EAAKjpD,KAAMC,MAAOgpD,EAAKhpD,MAAOipD,OAAQD,EAAKC,QAAWD,CAC/F,CACA,SAASqd,GAAMrd,EAAMC,GACjB,OAAOA,EAASD,EAAKC,OAAS,CAAE5Z,IAAK2Z,EAAK3Z,IAAKtvC,KAAMipD,EAAKjpD,KAAMC,MAAOgpD,EAAKhpD,MAAOipD,UAAWD,CAClG,CACA,SAASsd,GAAenqK,EAAQgoB,EAAG6gE,GAC/B,IAAIuhF,EAASC,EAAaC,EAAUC,EAChCC,EAAOC,EAAOC,EAAWC,EADiBC,GAAiB,EAE/D,QAASz8I,GAAQnuB,EAAO62B,WAAY1I,GAAOA,GAAQA,GAAMztB,YAAa,CAClE,IAAI40J,GAAQxJ,GAAe39H,IAC3B,QAASh2B,GAAI,EAAGA,GAAIm9J,GAAMl9J,OAAQD,KAAK,CACnC,IAAI00J,GAAOyI,GAAMn9J,IACbkyK,GAAeL,GAASK,EAAaxd,MACrCA,GAAOod,GAAMC,GAAMrd,GAAMwd,EAAYvd,QAASud,EAAYn3B,MAC9D,IAAI23B,GAAKf,GAAM9hJ,EAAG6kI,IAAOie,GAAKf,GAAMlhF,EAAGgkE,IACvC,GAAU,GAANge,IAAiB,GAANC,GACX,OAAyB,GAAlB38I,GAAM/4B,SAAgB21K,GAAa58I,GAAOnG,EAAG6gE,GAAKshF,GAAeh8I,GAAOnG,EAAG6gE,GACtF,IAAKuhF,GAAWG,EAAWO,IAAMP,GAAYO,IAAMR,EAAWO,GAAI,CAC9DT,EAAUj8I,GACVk8I,EAAcxd,GACdyd,EAAWO,GACXN,EAAWO,GACX,IAAI9nB,GAAO8nB,GAAMjiF,EAAIgkE,GAAK3Z,KAAM,EAAK,EAAK23B,GAAM7iJ,EAAI6kI,GAAKjpD,MAAO,EAAK,EAAK,EAC1EgnE,GAAkB5nB,KAASA,GAAO,EAAI7qJ,GAAIm9J,GAAMl9J,OAAS,EAAID,GAAI,GAE3D,GAAN0yK,GACIhiF,EAAIgkE,GAAKC,UAAY4d,GAAaA,EAAU5d,OAASD,GAAKC,SAC1D0d,EAAQr8I,GACRu8I,EAAY7d,IAEPhkE,EAAIgkE,GAAK3Z,OAASy3B,GAAaA,EAAUz3B,IAAM2Z,GAAK3Z,OACzDu3B,EAAQt8I,GACRw8I,EAAY9d,IAGX6d,GAAaV,GAASU,EAAW7d,IACtC6d,EAAYR,GAAMQ,EAAW7d,GAAKC,QAE7B6d,GAAaX,GAASW,EAAW9d,MACtC8d,EAAYV,GAAMU,EAAW9d,GAAK3Z,KAAG,EAYjD,GARIw3B,GAAaA,EAAU5d,QAAUjkE,GACjCuhF,EAAUI,EACVH,EAAcK,GAETC,GAAaA,EAAUz3B,KAAOrqD,IACnCuhF,EAAUK,EACVJ,EAAcM,IAEbP,EACD,MAAO,CAAE51K,KAAMwL,EAAQ6hD,OAAQ,GACnC,IAAImpH,EAAQnsJ,KAAKC,IAAIurJ,EAAYzmE,KAAM/kF,KAAK4lC,IAAI4lH,EAAYxmE,MAAO77E,IACnE,OAAwB,GAApBoiJ,EAAQh1K,SACD21K,GAAaX,EAASY,EAAOniF,GACpC+hF,GAA6C,SAA3BR,EAAQzd,gBACnBwd,GAAeC,EAASY,EAAOniF,GAGnC,CAAEr0F,KAAMwL,EAAQ6hD,OAFVp0C,MAAMuV,UAAUne,QAAQmH,KAAKhM,EAAO0sJ,WAAY0d,IACxDpiJ,IAAMqiJ,EAAYzmE,KAAOymE,EAAYxmE,OAAS,EAAI,EAAI,GAE/D,CACA,SAASknE,GAAav2K,EAAMwzB,EAAG6gE,GAC3B,IAAI3kE,EAAM1vB,EAAKiN,UAAUrJ,OACrB6yK,GAAgB,EAAIC,EAAY,IAAKC,EAAc,EACvD,QAAShzK,EAAI,EAAGA,EAAI+rB,EAAK/rB,IAAK,CAC1B,IAAIm9J,EAAQvJ,GAAUv3J,EAAM2D,EAAGA,EAAI,GAAG6zJ,iBACtC,QAASl5E,EAAI,EAAGA,EAAIwiF,EAAMl9J,OAAQ06E,IAAK,CACnC,IAAI+5E,EAAOyI,EAAMxiF,GACjB,GAAI+5E,EAAK3Z,KAAO2Z,EAAKC,OACjB,SACCqe,IACDA,EAAcnjJ,EAAI6kI,EAAKjpD,MAC3B,IAAIknE,GAAMje,EAAK3Z,IAAMrqD,EAAIgkE,EAAK3Z,IAAMrqD,EAAIA,EAAIgkE,EAAKC,QAAU,EAC3D,GAAID,EAAKjpD,KAAO,GAAK57E,GAAK6kI,EAAKhpD,MAAQ,GAAK77E,GAAK8iJ,EAAKI,EAAW,CAC7D,IAAIrnE,EAAQ77E,IAAM6kI,EAAKjpD,KAAOipD,EAAKhpD,OAAS,EAAGqtD,GAAQrtD,EAQvD,IAPIuwD,GAAQL,QAAUK,GAAQN,QAGT/H,GAAUv3J,EAAM2D,GAAGq+J,wBACrB5yD,MAAQipD,EAAKhpD,QACxBqtD,IAASrtD,GAEbinE,GAAM,EACN,MAAO,CAAEt2K,OAAMqtD,OAAQ1pD,GAAK+4J,GAAQ,EAAI,IAC5C+Z,EAAgB9yK,GAAK+4J,GAAQ,EAAI,GACjCga,EAAYJ,IAIxB,MAAO,CAAEt2K,OAAMqtD,OAAQopH,GAAgB,EAAKA,EAAgBE,EAAc,EAAI32K,EAAKiN,UAAUrJ,OAAS,EAC1G,CACA,SAASgzK,GAAY9a,EAAM+a,EAAQtb,EAASoB,GAAO,GAC/C,IAAIxW,EAAIif,EACR,IACInB,EADAt4J,EAAUmwJ,EAAK4S,WAAW1M,wBAAyB8U,EAASnrK,EAAQ+yI,IAAMod,EAAK+H,UAAUkT,YAChFC,aAAclb,EAAK+H,WAC1BrwI,IAAG6gE,KAAMwiF,EAAQI,EAAU5iF,EAAIyiF,EACrC,GAAIG,EAAU,EACV,OAAO,EACX,GAAIA,EAAUD,EACV,OAAOlb,EAAKj0I,MAAMxnB,IAAIuD,OAE1B,QAASszK,GAAWpb,EAAK+H,UAAUD,aAAaJ,WAAa,EAAG2T,IAAU,EACtElT,EAAQnI,EAAKsb,gBAAgBH,GACzBhT,EAAMn6J,MAAQy6J,GAAUjpB,MAE5B,KAEI27B,EAAUta,EAAO,EAAIsH,EAAM3L,OAAS4e,GAAWjT,EAAMvlB,IAAMw4B,KACvDD,GAAW,GAAKA,GAAWD,IAH1B,CAOL,GAAIG,GACA,OAAO5b,EAAU,KAAO,EAC5B4b,IAAU,EACVxa,GAAQA,EAGhBtoE,EAAIyiF,EAASG,EACb,IAAIvE,GAAYzO,EAAM/qJ,KAEtB,GAAIw5J,GAAY5W,EAAK2U,SAASv3J,KAC1B,OAA6B,GAAtB4iJ,EAAK2U,SAASv3J,KAAY,EAAIqiJ,EAAU,KAAO8b,GAAqBvb,EAAMnwJ,EAASs4J,EAAOzwI,EAAG6gE,GACxG,GAAIq+E,GAAY5W,EAAK2U,SAASp+C,GAC1B,OAAOypC,EAAK2U,SAASp+C,IAAMypC,EAAKj0I,MAAMxnB,IAAIuD,OAASk4J,EAAKj0I,MAAMxnB,IAAIuD,OAC9D23J,EAAU,KAAO8b,GAAqBvb,EAAMnwJ,EAASs4J,EAAOzwI,EAAG6gE,GAEvE,IAAIh0F,GAAMy7J,EAAKv4J,IAAIgzJ,cACfp/H,GAAO2kI,EAAK3kI,KAAKmgJ,iBAAmBxb,EAAK3kI,KAAO92B,GAChD+E,GAAU+xB,GAAKmgJ,iBAAiB9jJ,EAAG6gE,GACnCjvF,KAAY02J,EAAK4S,WAAWhyG,SAASt3D,MACrCA,GAAU,MAETA,KACDouB,EAAInJ,KAAKC,IAAI3e,EAAQyjG,KAAO,EAAG/kF,KAAK4lC,IAAItkD,EAAQ0jG,MAAQ,EAAG77E,IAC3DpuB,GAAU+xB,GAAKmgJ,iBAAiB9jJ,EAAG6gE,GAC/BjvF,KAAY02J,EAAK4S,WAAWhyG,SAASt3D,MACrCA,GAAU,OAIlB,IAAIpF,GAAMqtD,IAAS,EACnB,GAAIjoD,IAAwG,IAAnD,QAAxC+gJ,EAAK2V,EAAKkI,QAAQ4O,QAAQxtK,WAA6B,IAAP+gJ,OAAgB,EAASA,EAAGmY,YACzF,GAAIj+J,GAAIk3K,uBAAwB,CAC5B,IAAItkI,GAAM5yC,GAAIk3K,uBAAuB/jJ,EAAG6gE,GACpCphD,MACGukI,WAAYx3K,GAAMqtD,WAAWpa,YAE/B5yC,GAAIo3K,oBAAqB,CAC9B,IAAIpzB,GAAQhkJ,GAAIo3K,oBAAoBjkJ,EAAG6gE,GACnCgwD,OACGqzB,eAAgB13K,GAAMo7J,YAAa/tG,IAAWg3F,MAC5CyX,EAAK4S,WAAWhyG,SAAS18D,KAC1B4/J,GAAQH,QAuC5B,SAASkY,GAA8B33K,EAAMqtD,EAAQ75B,GACjD,IAAI9D,EACJ,GAAqB,GAAjB1vB,EAAKY,UAAiBysD,IAAW39B,EAAM1vB,EAAKiN,UAAUrJ,QACtD,OAAO,EACX,QAASqU,EAAOjY,EAAKkM,YAAa+L,EAAMA,EAAOA,EAAK/L,YAChD,GAAqB,GAAjB+L,EAAKrX,UAAkC,MAAjBqX,EAAK+/I,SAC3B,OAAO,EACf,OAAOT,GAAUv3J,EAAM0vB,EAAM,EAAGA,GAAKsyI,wBAAwB5yD,KAAO57E,CACxE,CA/CsCmkJ,CAA8B33K,GAAMqtD,GAAQ75B,IAC9DosI,GAAQL,QAgD5B,SAASqY,GAA8B53K,EAAMqtD,EAAQ75B,GACjD,GAAc,GAAV65B,EACA,OAAO,EACX,QAASyjG,EAAM9wJ,IAAQ,CACnB,IAAIwL,EAASslJ,EAAI7wJ,WACjB,IAAKuL,GAA6B,GAAnBA,EAAO5K,UAAiB4K,EAAO62B,YAAcyuH,EACxD,OAAO,EACX,GAAItlJ,EAAOgB,UAAUkwD,SAAS,WAC1B,MACJo0F,EAAMtlJ,EAIV,OAAOgoB,GAFqB,GAAjBxzB,EAAKY,SAAgBZ,EAAKgiK,wBAC/BzK,GAAUv3J,EAAM,EAAGqqB,KAAKC,IAAItqB,EAAKiN,UAAUrJ,OAAQ,IAAIo+J,yBAC7C5yD,KAAO,CAC3B,CA9DsCwoE,CAA8B53K,GAAMqtD,GAAQ75B,MAC9DxzB,QAAOoN,IAKvB,IAAKpN,KAAS87J,EAAKkI,QAAQzgK,IAAIm5D,SAAS18D,IAAO,CAC3C,IAAIyY,GAAOqqJ,GAAS/jI,KAAK+8H,EAAKkI,QAAS0O,IACvC,IAAKj6J,GACD,OAAOw+J,EAAUhT,EAAMvlB,IAAMulB,EAAM/7E,OAAS,EAAI+7E,EAAM5xC,GAAK4xC,EAAM/qJ,OAClElZ,QAAMqtD,WAAWsoH,GAAel9J,GAAKlV,IAAKiwB,EAAG6gE,GAAC,CAErD,IAAIu+E,GAAU9W,EAAKkI,QAAQ4O,QAAQ5yK,IACnC,IAAK4yK,GACD,OAAO,KACX,GAAIA,GAAQrU,UAAqF,IAAjD,QAAtB6G,EAAKwN,GAAQrvK,WAAwB,IAAP6hK,OAAgB,EAASA,EAAGxkK,UAAgB,CAChG,IAAIy3J,GAAOua,GAAQrvK,IAAIy+J,wBACvB,OAAO6U,EAAOxiF,EAAIgkE,GAAK3Z,KAAOm4B,EAAOxiF,GAAKgkE,GAAKC,QAAUue,EAAOrjJ,IAAM6kI,GAAKjpD,KAAOipD,GAAKhpD,OAAS,EAC1FujE,GAAQjX,WAAaiX,GAAQ/W,SAGnC,OAAO+W,GAAQnW,gBAAgBz8J,GAAMqtD,IAAUulH,GAAQjX,UAE/D,CACA,SAAS0b,GAAqBvb,EAAM+b,EAAa5T,EAAOzwI,EAAG6gE,GACvD,IAAIyjF,EAAOztJ,KAAKqlD,OAAOl8C,EAAIqkJ,EAAYzoE,MAAQ0sD,EAAKic,uBACpD,GAAIjc,EAAKkc,cAAgB/T,EAAM/7E,OAAkC,IAAzB4zE,EAAKmc,kBAAyB,CAClE,IAAIzU,EAAa1H,EAAK+H,UAAUD,aAAaJ,WAE7CsU,GADWztJ,KAAKosF,OAAOpiB,EAAI4vE,EAAMvlB,IAA8C,IAAvCod,EAAKmc,kBAAoBzU,IAAqBA,GACvE1H,EAAK+H,UAAUD,aAAasU,WAE/C,IAAIvsK,EAAUmwJ,EAAKj0I,MAAMqmI,SAAS+V,EAAM/qJ,KAAM+qJ,EAAM5xC,IACpD,OAAO4xC,EAAM/qJ,KAAOg8I,GAAWvpJ,EAASmsK,EAAMhc,EAAKj0I,MAAMumI,QAC7D,CA8BA,SAAS+pB,GAAQrc,EAAM7oH,GACnB,IAAIx6B,EAAOqjJ,EAAKkY,YAAY/gI,GAC5B,GAAIh6B,MAAM2C,QAAQnD,EAAK3O,MACnB,QAASylG,KAAK92F,EAAK3O,KACf,GAAIylG,EAAE8iB,GAAKp/E,GAAOs8D,EAAE8iB,IAAMp/E,IAAQs8D,EAAE8iB,IAAM55G,EAAK45G,IAAM9iB,EAAEzlG,MAAQy6J,GAAUjpB,MACrE,OAAO/rC,EAEnB,OAAO92F,CACX,CAeA,SAAS2/J,GAAWtc,EAAMt5E,EAAO68D,EAASg5B,GACtC,IAAI5/J,EAAOqjJ,EAAKj0I,MAAMxnB,IAAIk7I,OAAO/4D,EAAMx6E,MAAOswK,EAAQxc,EAAKyc,UAAU9/J,GACjEmvJ,EAAY9L,EAAK6X,gBAAgBl7J,EAAKS,MAC1C,QAAS43I,EAAMtuE,EAAOhoC,EAAQ,OAAQ,CAClC,IAAIviC,EAAO6xJ,GAAarxJ,EAAM6/J,EAAO1Q,EAAW9W,EAAKzR,GAAUyP,EAAO+a,GACtE,IAAK5xJ,EAAM,CACP,GAAIQ,EAAKqmI,SAAWO,EAAUyc,EAAKj0I,MAAMxnB,IAAIq7I,MAAQ,GACjD,OAAOoV,EACXhC,EAAO,KACPr2I,EAAOqjJ,EAAKj0I,MAAMxnB,IAAIoY,KAAKA,EAAKqmI,QAAUO,EAAU,GAAI,IACxDi5B,EAAQxc,EAAKyc,UAAU9/J,GACvBR,EAAO6jJ,EAAK0c,eAAe//J,GAAO4mI,EAAO,CAE7C,GAAK7kG,GAKA,IAAKA,EAAMs0G,GACZ,OAAOgC,MANC,CACR,IAAKunB,EACD,OAAOpgK,EACXuiC,EAAQ69H,EAAGvpB,EAAI,CAKnBgC,EAAM74I,EAEd,CAyCA,SAASwgK,GAAiBC,EAAOzlI,EAAK0pH,GAClC,OAAS,CACL,IAAIgc,EAAQ,EACZ,QAAShzK,KAAO+yK,EACZ/yK,EAAIsqJ,QAAQh9G,EAAM,EAAGA,EAAM,EAAG,CAAC/5B,EAAMm5G,EAAIhnH,KACrC,GAAI4nC,EAAM/5B,GAAQ+5B,EAAMo/E,EAAI,CACxB,IAAIm8B,EAAOmqB,GAAShc,IAAS1pH,EAAM/5B,EAAOm5G,EAAKp/E,GAAM,EAAK,GAC1DA,EAAMu7G,EAAO,EAAIt1I,EAAOm5G,EACxBsmD,EAAQnqB,KAIpB,IAAKmqB,EACD,OAAO1lI,EAEnB,CACA,SAAS2lI,GAAU9c,EAAM+c,EAAQ5lI,GAC7B,IAAIi9G,EAASuoB,GAAiB3c,EAAKj0I,MAAMm+H,MAAMqmB,GAAc3lK,IAAI65C,GAAKA,EAAEu7G,IAAQ7oH,EAAI/5B,KAAM2/J,EAAO7wK,KAAOirC,EAAI/5B,MAAO,EAAK,GACxH,OAAOg3I,GAAUj9G,EAAI/5B,KAAO+5B,EAAMmxG,UAAuB8L,EAAQA,EAASj9G,EAAI/5B,KAAO,GAAI,EAC7F,CAGA,MAAM4/J,GACFC,mBAAmBC,GACf75K,KAAK85K,oBAAsBD,EAC3B75K,KAAK+5K,kBAAoBhxJ,KAAKD,KAClC,CACAjpB,YAAY88J,GACR38J,KAAK28J,KAAOA,EACZ38J,KAAKg6K,YAAc,EACnBh6K,KAAKi6K,YAAc,EACnBj6K,KAAKk6K,cAAgB,EACrBl6K,KAAKm6K,cAAgB,EACrBn6K,KAAKo6K,cAAgB,EACrBp6K,KAAKq6K,eAAiB,EAItBr6K,KAAKs6K,mBAAgBrsK,EAQrBjO,KAAKu6K,cAAe,EACpBv6K,KAAK85K,oBAAsB,KAC3B95K,KAAK+5K,kBAAoB,EACzB/5K,KAAKw6K,gBAAkB,EACvBx6K,KAAKy6K,eAAiB,GACtBz6K,KAAK06K,SAAW/uK,OAAOC,OAAO,MAK9B5L,KAAK6vK,WAAY,EAKjB7vK,KAAK26K,uBAAyB,KAE9B36K,KAAK46K,mBAAqB,EAI1B56K,KAAK66K,uBAAwB,EAG7B76K,KAAK86K,0BAA2B,EAChC96K,KAAK+6K,eAAiB,KAGtB/6K,KAAKg7K,eAAiB,KACtBh7K,KAAKi7K,YAAcj7K,KAAKi7K,YAAYnxJ,KAAK9pB,MACzCA,KAAKk7K,gBAAkBve,EAAKwe,SAGxB1a,GAAQH,QACR3D,EAAK4S,WAAW9uK,iBAAiB,QAAS,IAAM,MAChDggK,GAAQN,OA4xBpB,SAASib,GAAmBl6K,GACnBm6K,GAAmB5hK,IAAIvY,KACxBm6K,GAAmB/yK,IAAIpH,GACvBA,EAAIT,iBAAiB,OAAQ,QAC7BS,EAAIT,iBAAiB,MAAO,QAEpC,CAjyBY26K,CAAmBze,EAAK4S,WAAWnY,cAC3C,CACA6jB,YAAYlxK,IAqUhB,SAASuxK,GAAqB3e,EAAM5yJ,GAChC,IAAKA,EAAMwxK,QACP,OAAO,EACX,GAAIxxK,EAAMyxJ,iBACN,OAAO,EACX,QAA8B4V,EAArBvwK,EAAOkJ,EAAMhI,OAAelB,GAAQ87J,EAAK4S,WAAY1uK,EAAOA,EAAKC,WACtE,IAAKD,GAAyB,IAAjBA,EAAKY,WAAoB2vK,EAAQ9U,GAAYt4J,IAAInD,KAAUuwK,EAAMvS,YAAY90J,GACtF,OAAO,EACf,OAAO,CACX,CA7UauxK,CAAqBt7K,KAAK28J,KAAM5yJ,IAAU/J,KAAKw7K,wBAAwBzxK,IAE1D,WAAdA,EAAMY,MAAqB3K,KAAKy7K,QAAQ1xK,IAE5C/J,KAAK07K,YAAY3xK,EAAMY,KAAMZ,EACjC,CACA2xK,YAAY/wK,EAAMZ,GACd,IAAI2wK,EAAW16K,KAAK06K,SAAS/vK,GAC7B,GAAI+vK,EAAU,CACV,QAASl4J,KAAYk4J,EAASiB,UAC1Bn5J,EAASxiB,KAAK28J,KAAM5yJ,GACxB,QAAS5D,KAAWu0K,EAASA,SAAU,CACnC,GAAI3wK,EAAMyxJ,iBACN,MACJ,GAAIr1J,EAAQnG,KAAK28J,KAAM5yJ,GAAQ,CAC3BA,EAAMC,iBACN,QAIhB,CACA4xK,eAAer2K,GACX,IAAIm1K,EA4GZ,SAASmB,GAAgBt2K,GACrB,IAAI+L,EAAS3F,OAAOC,OAAO,MAC3B,SAASkwK,EAAOnxK,GACZ,OAAO2G,EAAO3G,KAAU2G,EAAO3G,GAAQ,CAAEgxK,UAAW,GAAIjB,SAAU,IACtE,CACA,QAAS90K,KAAUL,EAAS,CACxB,IAAIs+I,EAAOj+I,EAAOi+I,KAClB,GAAIA,GAAQA,EAAK0oB,iBACb,QAAS5hK,KAAQk5I,EAAK0oB,iBAAkB,CACpC,IAAInrH,EAAIyiG,EAAK0oB,iBAAiB5hK,GAC1By2C,GACA06H,EAAOnxK,GAAM+vK,SAAS9xK,KAAKmzK,GAAYn2K,EAAOsG,MAAOk1C,GAAE,CAEnE,GAAIyiG,GAAQA,EAAK2oB,kBACb,QAAS7hK,KAAQk5I,EAAK2oB,kBAAmB,CACrC,IAAIprH,EAAIyiG,EAAK2oB,kBAAkB7hK,GAC3By2C,GACA06H,EAAOnxK,GAAMgxK,UAAU/yK,KAAKmzK,GAAYn2K,EAAOsG,MAAOk1C,GAAE,EAGxE,QAASz2C,KAAQ+vK,GACboB,EAAOnxK,GAAM+vK,SAAS9xK,KAAK8xK,GAAS/vK,IACxC,QAASA,KAAQgxK,GACbG,EAAOnxK,GAAMgxK,UAAU/yK,KAAK+yK,GAAUhxK,IAC1C,OAAO2G,CACX,CArIuBuqK,CAAgBt2K,GAAU+gG,EAAOtmG,KAAK06K,SAAUt2K,EAAMpE,KAAK28J,KAAK4S,WAC/E,QAAS5kK,KAAQ+vK,EACb,GAAY,UAAR/vK,EAAkB,CAClB,IAAIqxK,GAAWtB,EAAS/vK,GAAM+vK,SAASj2K,OACnCw3K,EAAS31E,EAAK37F,GACdsxK,GAAUD,IAAYC,EAAOvB,SAASj2K,SACtCL,EAAI1D,oBAAoBiK,EAAM3K,KAAKi7K,aACnCgB,EAAS,MAERA,GACD73K,EAAI3D,iBAAiBkK,EAAM3K,KAAKi7K,YAAa,CAAEe,WAAS,CAEpE,QAASrxK,KAAQ27F,EACD,UAAR37F,IAAqB+vK,EAAS/vK,IAC9BvG,EAAI1D,oBAAoBiK,EAAM3K,KAAKi7K,aAC3Cj7K,KAAK06K,SAAWA,CACpB,CACAe,QAAQ1xK,GAIJ,GAFA/J,KAAKg6K,YAAcjwK,EAAMoxJ,QACzBn7J,KAAKi6K,YAAclxJ,KAAKD,MACH,GAAjB/e,EAAMoxJ,SAAgBn7J,KAAKu6K,cAAe,KAAQv6K,KAAKu6K,cAAgBxxJ,KAAKD,OAAS9oB,KAAKu6K,cAC1F,OAAO,EAQX,GAPIv6K,KAAKu6K,aAAe,GAAsB,IAAjBxwK,EAAMoxJ,SAAiB+gB,GAAchrK,QAAQnH,EAAMoxJ,SAAW,IACvFn7J,KAAKu6K,cAAe,GAMpB9Z,GAAQQ,SAAWR,GAAQL,SAAWr2J,EAAMwxJ,YAC1B,IAAjBxxJ,EAAMoxJ,SAAkC,GAAjBpxJ,EAAMoxJ,SAC9B,YAAKwB,KAAKn6I,SAAS25J,gBAAgBpyK,EAAM+G,IAAK/G,EAAMoxJ,UAC7C,EAOX,IAAIzxI,EACJ,OAAI+2I,GAAQF,KAAQx2J,EAAMwxJ,WAAcxxJ,EAAM6F,QAAW7F,EAAMiG,YACzD0Z,EAAU0yJ,GAAYx8I,KAAK9uB,GAAOA,EAAIqqJ,SAAWpxJ,EAAMoxJ,YAAcpxJ,EAAM+F,SACzEusK,GAAkBnrK,QAAQnH,EAAM+G,MAAO,GAAM/G,EAAM+F,UAAY/F,EAAMmG,WAKxD,KAAjBnG,EAAMoxJ,SACNn7J,KAAK28J,KAAKn6I,SAAS85J,cAChB,IANHt8K,KAAKs6K,cAAgB5wJ,GAAW3f,EAChC62C,WAAW,IAAM5gD,KAAKu8K,cAAe,MAC9B,EAKf,CACAA,YAAYv3B,GACR,IAAIl0I,EAAM9Q,KAAKs6K,cAIf,SAHKxpK,GAGU,SAAXA,EAAIA,KAAkBk0I,GAAUA,EAAOjrI,KAAOirI,EAAO9xB,IAAM,QAAQ/vG,KAAK6hI,EAAOp7G,OAAOtzB,eAE1FtW,KAAKs6K,mBAAgBrsK,EACdgtJ,GAAYj7J,KAAK28J,KAAK4S,WAAYz+J,EAAIA,IAAKA,EAAIqqJ,QAASrqJ,aAAewqJ,cAAgBxqJ,OAAM7C,GACxG,CACAutK,wBAAwBzxK,GACpB,QAAK,OAAOoZ,KAAKpZ,EAAMY,QAEnB3K,KAAK6vK,UAAY,MAQjBpP,GAAQH,SAAWG,GAAQF,KAAOvgK,KAAK66K,uBAAyB9xJ,KAAKD,MAAQ9oB,KAAK46K,mBAAqB,OACvG56K,KAAK66K,uBAAwB,GACtB,GAGf,CACA2B,oBAAoBzB,GACZ/6K,KAAK+6K,gBACL/6K,KAAK+6K,eAAejvK,UACxB9L,KAAK+6K,eAAiBA,CAC1B,CACAzgK,OAAOA,GACHta,KAAK28J,KAAKn6I,SAASlI,OAAOA,GACtBta,KAAK+6K,gBACL/6K,KAAK+6K,eAAezgK,OAAOA,GAC3Bta,KAAKg7K,gBAAkB1gK,EAAOitI,aAC9BvnJ,KAAKg7K,eAAiBh7K,KAAKg7K,eAAezzK,IAAI+S,EAAOquB,UACrDruB,EAAO6zJ,aAAa1pK,SACpBzE,KAAKg6K,YAAch6K,KAAK+5K,kBAAoB,EACpD,CACAjuK,UACQ9L,KAAK+6K,gBACL/6K,KAAK+6K,eAAejvK,SAC5B,EAEJ,SAASiwK,GAAYn2K,EAAQO,GACzB,MAAO,CAACw2J,EAAM5yJ,KACV,IACI,OAAO5D,EAAQkS,KAAKzS,EAAQmE,EAAO4yJ,EAIvC,CAHA,MACOx0J,GACH8jK,GAAatP,EAAKj0I,MAAOvgB,EAC7B,EAER,CA2BA,MAAMi0K,GAAc,CAChB,CAAEtrK,IAAK,YAAaqqJ,QAAS,EAAGshB,UAAW,yBAC3C,CAAE3rK,IAAK,QAASqqJ,QAAS,GAAIshB,UAAW,mBACxC,CAAE3rK,IAAK,QAASqqJ,QAAS,GAAIshB,UAAW,mBACxC,CAAE3rK,IAAK,SAAUqqJ,QAAS,GAAIshB,UAAW,yBAEvCJ,GAAoB,QAEpBH,GAAgB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,KAEpD,SAASQ,GAAgB/X,GACrB,MAA2B,GAApBz5I,KAAKC,IAAI,EAAGw5I,GAAc,CACrC,CAIA,MAAMgY,GACF98K,YAAY88J,EAAMigB,EAAY71K,EAAO81K,GACjC78K,KAAK28J,KAAOA,EACZ38J,KAAK48K,WAAaA,EAClB58K,KAAK+G,MAAQA,EACb/G,KAAK68K,WAAaA,EAClB78K,KAAK88K,YAAc,CAAEzoJ,EAAG,EAAG6gE,EAAG,GAC9Bl1F,KAAK+8K,WAAY,EACjB/8K,KAAKg9K,UAAYJ,EACjB58K,KAAKi9K,cA9rHb,SAASC,GAAkB94K,GACvB,IAA6BiwB,EAAG6gE,EAA5Bh0F,EAAMkD,EAAIgzJ,cACd,QAASzF,EAAMvtJ,EAAItD,WAAY6wJ,KACvBA,GAAOzwJ,EAAIe,MAASoyB,GAAK6gE,IAGxB,GAAoB,GAAhBy8D,EAAIlwJ,UACJyzF,GAAKy8D,EAAIkK,aAAelK,EAAImK,eAC7B5mE,EAAIy8D,IACHt9H,GAAKs9H,EAAI4jB,YAAc5jB,EAAIsiB,cAC5B5/I,EAAIs9H,GACRA,EAAMA,EAAIghB,cAAgBhhB,EAAI7wJ,mBAET,IAAhB6wJ,EAAIlwJ,SAIT,MAHAkwJ,EAAMA,EAAI1pJ,IAGV,CAGR,MAAO,CAAEosB,IAAG6gE,IAChB,CAyqH6BgoF,CAAkBvgB,EAAK4S,YAC5CvvK,KAAKu5K,MAAQ5c,EAAKj0I,MAAMm+H,MAAMqmB,GAAc3lK,IAAI65C,GAAKA,EAAEu7G,IACvD,IAAIz7J,EAAMy7J,EAAK4S,WAAWnY,cAC1Bl2J,EAAIT,iBAAiB,YAAaT,KAAKm9K,KAAOn9K,KAAKm9K,KAAKrzJ,KAAK9pB,OAC7DkB,EAAIT,iBAAiB,UAAWT,KAAKyjH,GAAKzjH,KAAKyjH,GAAG35F,KAAK9pB,OACvDA,KAAK4/I,OAASg9B,EAAW1sK,SACzBlQ,KAAKo9K,SAAWzgB,EAAKj0I,MAAMm+H,MAAMuH,6BA+GzC,SAASivB,GAAmB1gB,EAAM5yJ,GAC9B,IAAI88I,EAAQ8V,EAAKj0I,MAAMm+H,MAAMqkB,IAC7B,OAAOrkB,EAAMpiJ,OAASoiJ,EAAM,GAAG98I,GAAS02J,GAAQ3I,IAAM/tJ,EAAMiG,QAAUjG,EAAM+F,OAChF,CAlHiFutK,CAAmB1gB,EAAMigB,GAClG58K,KAAKs9K,YAsHb,SAASC,GAAqB5gB,EAAM5yJ,GAChC,IAAMs7I,QAASsX,EAAKj0I,MAAMm9H,UAC1B,GAAIR,EAAKv+H,MACL,OAAO,EAGX,IAAIomI,EAAM8K,GAAa2E,EAAK3kI,MAC5B,IAAKk1H,GAAyB,GAAlBA,EAAIswB,WACZ,OAAO,EACX,IAAI7b,EAAQzU,EAAIuwB,WAAW,GAAGplB,iBAC9B,QAAS7zJ,EAAI,EAAGA,EAAIm9J,EAAMl9J,OAAQD,IAAK,CACnC,IAAI00J,EAAOyI,EAAMn9J,GACjB,GAAI00J,EAAKjpD,MAAQlmG,EAAM2zK,SAAWxkB,EAAKhpD,OAASnmG,EAAM2zK,SAClDxkB,EAAK3Z,KAAOx1I,EAAM4zK,SAAWzkB,EAAKC,QAAUpvJ,EAAM4zK,QAClD,OAAO,EAEf,OAAO,CACX,CAvIwBJ,CAAqB5gB,EAAMigB,IAA2C,GAA5BgB,GAAahB,KAAmB,IAC9F,CACAv5F,MAAMt5E,IAGoB,IAAlB/J,KAAKs9K,UACLt9K,KAAKu7H,OAAOxxH,EACpB,CACAozK,KAAKpzK,GACD,GAAqB,GAAjBA,EAAM8zK,QACN,OAAO79K,KAAK8L,UAChB,GAAI9L,KAAKs9K,UAA6B,MAAjBt9K,KAAKs9K,UA9BlC,SAAS3Y,GAAK3zI,EAAGC,GACb,OAAO/F,KAAKC,IAAID,KAAK0B,IAAIoE,EAAE0sJ,QAAUzsJ,EAAEysJ,SAAUxyJ,KAAK0B,IAAIoE,EAAE2sJ,QAAU1sJ,EAAE0sJ,SAC5E,CA4BsDhZ,CAAK3kK,KAAK48K,WAAY7yK,GAAS,GACzE,OACJ/J,KAAKu7H,OAAOv7H,KAAKg9K,UAAYjzK,GAC7B,IAAI+zK,EAAK,EAAGC,EAAK,EACb9tE,EAAO,EAAGsvC,EAAM,EAAGrvC,EAAQlwG,KAAK28J,KAAKtF,IAAIkC,WAAYJ,EAASn5J,KAAK28J,KAAKtF,IAAImC,YAC5Ex5J,KAAKi9K,cAAc5oJ,KAChB47E,OAAMC,SAAUlwG,KAAKi9K,cAAc5oJ,EAAEwuI,yBACxC7iK,KAAKi9K,cAAc/nF,KAChBqqD,MAAK4Z,UAAWn5J,KAAKi9K,cAAc/nF,EAAE2tE,yBAC5C,IAAIqS,EAAUxH,EAAiB1tK,KAAK28J,MAChC5yJ,EAAM2zK,QAAUxI,EAAQjlE,MAAQA,EA5CnB,EA6Cb6tE,GAAMpB,GAAgBzsE,EAAOlmG,EAAM2zK,SAC9B3zK,EAAM2zK,QAAUxI,EAAQhlE,OAASA,EA9CzB,IA+Cb4tE,EAAKpB,GAAgB3yK,EAAM2zK,QAAUxtE,IACrCnmG,EAAM4zK,QAAUzI,EAAQ31B,KAAOA,EAhDlB,EAiDbw+B,GAAMrB,GAAgBn9B,EAAMx1I,EAAM4zK,SAC7B5zK,EAAM4zK,QAAUzI,EAAQ/b,QAAUA,EAlD1B,IAmDb4kB,EAAKrB,GAAgB3yK,EAAM4zK,QAAUxkB,IACzCn5J,KAAKg+K,eAAeF,EAAIC,EAC5B,CACAt6D,GAAG15G,GACsB,MAAjB/J,KAAKs9K,UACLt9K,KAAKu7H,OAAOv7H,KAAKg9K,WAChBh9K,KAAKs9K,UACNvzK,EAAMC,iBACVhK,KAAK8L,SACT,CACAA,UACI9L,KAAKg+K,eAAe,EAAG,GACvB,IAAI98K,EAAMlB,KAAK28J,KAAK4S,WAAWnY,cAC/Bl2J,EAAIR,oBAAoB,YAAaV,KAAKm9K,MAC1Cj8K,EAAIR,oBAAoB,UAAWV,KAAKyjH,IACxCzjH,KAAK28J,KAAKiT,WAAWmL,eAAiB/6K,KAAK28J,KAAKiT,WAAWoL,eAAiB,IAChF,CACAgD,eAAeF,EAAIC,GACf/9K,KAAK88K,YAAc,CAAEzoJ,EAAGypJ,EAAI5oF,EAAG6oF,GAC3BD,GAAMC,EACF/9K,KAAK+8K,UAAY,IACjB/8K,KAAK+8K,UAAYlzJ,YAAY,IAAM7pB,KAAKi+K,SAAU,KAEjDj+K,KAAK+8K,WAAY,IACtBhzJ,cAAc/pB,KAAK+8K,WACnB/8K,KAAK+8K,WAAY,EAEzB,CACAkB,SACI,IAAM5pJ,IAAG6gE,KAAMl1F,KAAK88K,YAChBzoJ,GAAKr0B,KAAKi9K,cAAc5oJ,IACxBr0B,KAAKi9K,cAAc5oJ,EAAEumI,YAAcvmI,EACnCA,EAAI,GAEJ6gE,GAAKl1F,KAAKi9K,cAAc/nF,IACxBl1F,KAAKi9K,cAAc/nF,EAAEylE,WAAazlE,EAClCA,EAAI,IAEJ7gE,GAAK6gE,IACLl1F,KAAK28J,KAAKtF,IAAIue,SAASvhJ,EAAG6gE,IACR,IAAlBl1F,KAAKs9K,UACLt9K,KAAKu7H,OAAOv7H,KAAKg9K,UACzB,CACAvD,UAAUvsB,GACN,IAAI/J,EAAS,KACb,QAAS3+I,EAAI,EAAGA,EAAI0oJ,EAAI/J,OAAO1+I,OAAQD,IAAK,CACxC,IAAI0gJ,EAAQgI,EAAI/J,OAAO3+I,GAAI65I,EAAU,KACrC,GAAI6G,EAAMp+H,MAAO,CACb,IAAIgtB,EAAMwlI,GAAiBt5K,KAAKu5K,MAAOr0B,EAAMnrI,KAAM,GAC/C+5B,GAAOoxG,EAAMnrI,OACbskI,EAAU4G,UAAuBnxG,GAAK,GAAE,KAE3C,CACD,IAAI/5B,EAAOu/J,GAAiBt5K,KAAKu5K,MAAOr0B,EAAMnrI,MAAM,GAChDm5G,EAAKomD,GAAiBt5K,KAAKu5K,MAAOr0B,EAAMhyB,GAAI,IAC5Cn5G,GAAQmrI,EAAMnrI,MAAQm5G,GAAMgyB,EAAMhyB,MAClCmrB,EAAU4G,SAAsBC,EAAMnrI,MAAQmrI,EAAM3iH,OAASxoB,EAAOm5G,EAAIgyB,EAAMnrI,MAAQmrI,EAAMr8I,KAAOkR,EAAOm5G,GAAE,CAEhHmrB,IACK8E,IACDA,EAAS+J,EAAI/J,OAAOp9I,SACxBo9I,EAAO3+I,GAAK65I,GAGpB,OAAO8E,EAAS8B,UAAuB9B,EAAQ+J,EAAI9H,WAAa8H,CACpE,CACA3xB,OAAOxxH,GACH,IAAM4yJ,QAAS38J,KAAM6lJ,EAAY7lJ,KAAKy5K,UAAUz5K,KAAK+G,MAAM/C,IAAI+F,EAAO/J,KAAK4/I,OAAQ5/I,KAAKo9K,YACpFp9K,KAAK68K,aAAeh3B,EAAUlJ,GAAGggB,EAAKj0I,MAAMm9H,WAA6B,IAAlB7lJ,KAAKs9K,YAC5Dt9K,KAAK28J,KAAKvyI,SAAS,CACfy7H,YACA0G,UAAW,mBAEnBvsJ,KAAK68K,YAAa,CACtB,CACAviK,OAAOA,GACCA,EAAO6zJ,aAAav+H,KAAK03G,GAAMA,EAAGgF,YAAY,eAC9CtsJ,KAAK8L,UACA9L,KAAK+G,MAAMuT,OAAOA,IACvBsmC,WAAW,IAAM5gD,KAAKu7H,OAAOv7H,KAAKg9K,WAAY,GACtD,EAsCJ,MAAMtC,GAAwB/uK,OAAOC,OAAO,MACtC+vK,GAAyBhwK,OAAOC,OAAO,MAIvCsyK,GAAsBzd,GAAQ1I,IAAM0I,GAAQI,WAAa,IAC1DJ,GAAQF,KAAOE,GAAQS,eAAiB,IAc7C,SAASid,GAAQxhB,EAAMx1I,GACnB,IAAsBwhB,GAAhBjgB,SAAUi0I,EAAen4J,EAAI,EAAGkf,EAAOgF,EAAM+lI,OAAOtnI,GACtDi3J,EAAS16J,EAAK64H,OAAS7zH,EAAMm9H,UAAU1C,OAAO1+I,OAElD,GADmC,MAApB45K,IAA4B31J,EAAMm9H,UAAU1C,OAAOjtH,MAAMtgB,GAAKA,EAAEkR,QAAUu3J,IAAoB36J,EAAKpN,WACpG,CACV,IAAIgoK,GAAW,EACf31I,EAAUjgB,EAAMgmI,cAAcxJ,IAC1B,IAAI5rI,EAAOoP,EAAMxnB,IAAIk7I,OAAO8I,EAAMnrI,MAClC,GAAIT,EAAKS,MAAQukK,EACb,MAAO,CAAEp5B,SACbo5B,EAAWhlK,EAAKS,KAChB,IAAI6vB,EAASlhB,EAAM+lI,QAAQ2vB,EAAS16J,EAAKpK,KAAK9U,KAAKkf,KAAOyD,GAASuB,EAAMq0H,WACzE,MAAO,CAAEp0G,QAAS,CAAE5uB,KAAMT,EAAKS,KAAM6vB,UACjCs7G,MAAOD,UAAuBC,EAAMnrI,KAAO6vB,EAAOnlC,QAAQ,EACjE,MAGDkkC,EADKy1I,EACK11J,EAAMgmI,cAAcxJ,IAC1B,IAAI5rI,EAAOoK,EAAKpK,KAAK9U,KACrB,MAAO,CAAEmkC,QAAS,CAAE5uB,KAAMmrI,EAAMnrI,KAAMm5G,GAAIgyB,EAAMhyB,GAAItpF,OAAQtwB,EAAKoK,MAC7DwhI,MAAOD,UAAuBC,EAAMnrI,KAAOT,EAAK7U,QAAQ,GAItDikB,EAAM8lI,iBAAiB9qI,GAErCi5I,EAAKvyI,SAASue,EAAS,CACnB4jH,UAAW,cACXR,gBAAgB,GAExB,CAgDA,SAASwyB,GAAc5hB,EAAM7oH,EAAK0pH,EAAM7yJ,GACpC,GAAY,GAARA,EACA,OAAOs6I,UAAuBnxG,EAAK0pH,GAElC,GAAY,GAAR7yJ,EACL,OAr2BR,SAAS6zK,GAAQ91J,EAAOorB,EAAK0pH,EAAO,GAChC,IAAIihB,EAAa/1J,EAAM6mI,gBAAgBz7G,GACnCx6B,EAAOoP,EAAMxnB,IAAIk7I,OAAOtoG,GAAM4qI,EAAU5qI,EAAMx6B,EAAKS,KACvD,GAAmB,GAAfT,EAAK7U,OACL,OAAOwgJ,UAAuBnxG,GACnB,GAAX4qI,EACAlhB,EAAO,EACFkhB,GAAWplK,EAAK7U,SACrB+4J,GAAO,GACX,IAAIzjJ,EAAO2kK,EAASxrD,EAAKwrD,EACrBlhB,EAAO,EACPzjJ,EAAOkmI,GAAiB3mI,EAAKoK,KAAMg7J,GAAS,GAE5CxrD,EAAK+sB,GAAiB3mI,EAAKoK,KAAMg7J,GACrC,IAAIrzD,EAAMozD,EAAWnlK,EAAKoK,KAAK3d,MAAMgU,EAAMm5G,IAC3C,KAAOn5G,EAAO,GAAG,CACb,IAAIusF,EAAO25C,GAAiB3mI,EAAKoK,KAAM3J,GAAM,GAC7C,GAAI0kK,EAAWnlK,EAAKoK,KAAK3d,MAAMugG,EAAMvsF,KAAUsxG,EAC3C,MACJtxG,EAAOusF,EAEX,KAAO4sB,EAAK55G,EAAK7U,QAAQ,CACrB,IAAIqU,EAAOmnI,GAAiB3mI,EAAKoK,KAAMwvG,GACvC,GAAIurD,EAAWnlK,EAAKoK,KAAK3d,MAAMmtH,EAAIp6G,KAAUuyG,EACzC,MACJ6H,EAAKp6G,EAET,OAAOmsI,SAAsBlrI,EAAOT,EAAKS,KAAMm5G,EAAK55G,EAAKS,KAC7D,CAy0BeykK,CAAQ7hB,EAAKj0I,MAAOorB,EAAK0pH,GAE/B,CACD,IAAImhB,EAAShb,GAAS/jI,KAAK+8H,EAAKkI,QAAS/wH,GAAMx6B,EAAOqjJ,EAAKj0I,MAAMxnB,IAAIk7I,OAAOuiC,EAASA,EAAOjiB,SAAW5oH,GACpDo/E,EAAKyrD,EAASA,EAAOjiB,SAAWpjJ,EAAK45G,GACxF,OAAIA,EAAKypC,EAAKj0I,MAAMxnB,IAAIuD,QAAUyuH,GAAM55G,EAAK45G,IACzCA,IACG+xB,SAHI05B,EAASA,EAAOniB,WAAaljJ,EAAKS,KAGVm5G,EAAE,CAE7C,CA7DAyoD,GAAUsC,OAASthB,IACfA,EAAKiT,WAAWwK,cAAgBzd,EAAKwX,UAAUxZ,UAC/CgC,EAAKiT,WAAWyK,eAAiB1d,EAAKwX,UAAUvZ,YAEpD8f,GAASe,QAAU,CAAC9e,EAAM5yJ,KACtB4yJ,EAAKiT,WAAWgK,mBAAmB,UACd,IAAjB7vK,EAAMoxJ,SAAiD,GAAhCwB,EAAKiT,WAAW2K,eACvC5d,EAAKiT,WAAW2K,aAAexxJ,KAAKD,MAAQ,MACzC,GAEX6yJ,GAAUiD,WAAa,CAACjiB,EAAMx0J,KAC1Bw0J,EAAKiT,WAAWsK,cAAgBnxJ,KAAKD,MACrC6zI,EAAKiT,WAAWgK,mBAAmB,iBAAgB,EAEvD+B,GAAUkD,UAAYliB,IAClBA,EAAKiT,WAAWgK,mBAAmB,iBAAgB,EAEvDc,GAASoE,UAAY,CAACniB,EAAM5yJ,KAExB,GADA4yJ,EAAKn6I,SAAS6G,QACVszI,EAAKiT,WAAWsK,cAAgBnxJ,KAAKD,MAAQ,IAC7C,OAAO,EACX,IAAI/hB,EAAQ,KACZ,QAASg4K,KAAapiB,EAAKj0I,MAAMm+H,MAAMukB,IAEnC,GADArkK,EAAQg4K,EAAUpiB,EAAM5yJ,GACpBhD,EACA,MAIR,IAFKA,GAAyB,GAAhBgD,EAAM05C,SAChB18C,EA2ER,SAASi4K,GAAoBriB,EAAM5yJ,GAC/B,IAAIs5E,EAAQ47F,GAAStiB,EAAM5yJ,GAAQY,EAAOizK,GAAa7zK,GACnDm1K,EAAWviB,EAAKj0I,MAAMm9H,UAC1B,MAAO,CACHvrI,OAAOA,GACCA,EAAOitI,aACPlkE,EAAMvvC,IAAMx5B,EAAOquB,QAAQ05G,OAAOh/D,EAAMvvC,KACxCorI,EAAWA,EAAS33K,IAAI+S,EAAOquB,SAEvC,EACA3kC,IAAI+F,EAAO61I,EAAQw9B,GACf,IAAiC+B,EAA7BxtB,EAAMstB,GAAStiB,EAAM5yJ,GACrBm7I,EAAQq5B,GAAc5hB,EAAMhL,EAAI79G,IAAK69G,EAAI6L,KAAM7yJ,GACnD,GAAI04E,EAAMvvC,KAAO69G,EAAI79G,MAAQ8rG,EAAQ,CACjC,IAAIw/B,EAAab,GAAc5hB,EAAMt5E,EAAMvvC,IAAKuvC,EAAMm6E,KAAM7yJ,GACxDoP,EAAOmR,KAAK4lC,IAAIsuH,EAAWrlK,KAAMmrI,EAAMnrI,MAAOm5G,GAAKhoG,KAAKC,IAAIi0J,EAAWlsD,GAAIgyB,EAAMhyB,IACrFgyB,EAAQnrI,EAAOmrI,EAAMnrI,KAAOkrI,SAAsBlrI,EAAMm5G,IAAM+xB,SAAsB/xB,GAAIn5G,EAAI,CAEhG,OAAI6lI,EACOs/B,EAAS15B,aAAa05B,EAAS75B,KAAKzF,OAAOsF,EAAMnrI,KAAMmrI,EAAMhyB,KAC/DkqD,GAAoB,GAARzyK,GAAau0K,EAAS/7B,OAAO1+I,OAAS,IAAM06K,EAS7E,SAASE,GAAkBnyB,EAAKp5G,GAC5B,QAAStvC,EAAI,EAAGA,EAAI0oJ,EAAI/J,OAAO1+I,OAAQD,IAAK,CACxC,IAAMuV,OAAMm5G,MAAOg6B,EAAI/J,OAAO3+I,GAC9B,GAAIuV,GAAQ+5B,GAAOo/E,GAAMp/E,EACrB,OAAOmxG,UAAuBiI,EAAI/J,OAAOp9I,MAAM,EAAGvB,GAAGiW,OAAOyyI,EAAI/J,OAAOp9I,MAAMvB,EAAI,IAAK0oJ,EAAI9H,WAAa5gJ,EAAI,EAAI0oJ,EAAI9H,WAAa8H,EAAI9H,UAAY5gJ,EAAI,EAAI,GAAE,CAElK,OAAO,IACX,CAhBuF66K,CAAkBH,EAAUvtB,EAAI79G,MAChGqrI,EACF/B,EACE8B,EAAS35B,SAASL,GAElBD,UAAuB,CAACC,GACvC,EAER,CAvGgB85B,CAAoBriB,EAAM5yJ,IAClChD,EAAO,CACP,IAAIu4K,GAAa3iB,EAAKwe,SACtBxe,EAAKiT,WAAW4M,oBAAoB,IAAIG,GAAehgB,EAAM5yJ,EAAOhD,EAAOu4K,IACvEA,GACA3iB,EAAKn6I,SAAS6gJ,OAAO,KACjB7I,GAAmBmC,EAAK4S,YACxB,IAAIpmJ,EAASwzI,EAAK3kI,KAAKk6I,cACnB/oJ,IAAWA,EAAOo0C,SAASo/F,EAAK4S,aAChCpmJ,EAAOypJ,MAAI,GAEvB,IAAI2M,EAAW5iB,EAAKiT,WAAWmL,eAC/B,GAAIwE,EACAA,SAASl8F,MAAMt5E,IACc,IAAtBw1K,EAASjC,QAAa,CAGrC,OAAO,GAiBX,IAAIkC,GAAU,CAACtqF,EAAGgkE,IAAShkE,GAAKgkE,EAAK3Z,KAAOrqD,GAAKgkE,EAAKC,OAClDuZ,GAAS,CAACr+I,EAAG6gE,EAAGgkE,IAASsmB,GAAQtqF,EAAGgkE,IAAS7kI,GAAK6kI,EAAKjpD,MAAQ57E,GAAK6kI,EAAKhpD,MAI7E,SAASuvE,GAAiB9iB,EAAM7oH,EAAKzf,EAAG6gE,GACpC,IAAI57E,EAAOqqJ,GAAS/jI,KAAK+8H,EAAKkI,QAAS/wH,GACvC,IAAKx6B,EACD,OAAO,EACX,IAAImqI,EAAM3vG,EAAMx6B,EAAKkjJ,WAErB,GAAW,GAAP/Y,EACA,OAAO,EACX,GAAIA,GAAOnqI,EAAK7U,OACZ,OAAO,EAEX,IAAI09I,EAAS7oI,EAAKmoJ,SAAShe,GAAK,GAChC,GAAItB,GAAUuwB,GAAOr+I,EAAG6gE,EAAGitD,GACvB,OAAO,EACX,IAAIob,EAAQjkJ,EAAKmoJ,SAAShe,EAAK,GAC/B,OAAI8Z,GAASmV,GAAOr+I,EAAG6gE,EAAGqoE,GACf,EAGJpb,GAAUq9B,GAAQtqF,EAAGitD,IAAU,EAAK,CAC/C,CACA,SAAS88B,GAAStiB,EAAM5yJ,GACpB,IAAI+pC,EAAM6oH,EAAK8a,YAAY,CAAEpjJ,EAAGtqB,EAAM2zK,QAASxoF,EAAGnrF,EAAM4zK,UAAW,GACnE,MAAO,CAAE7pI,MAAK0pH,KAAMiiB,GAAiB9iB,EAAM7oH,EAAK/pC,EAAM2zK,QAAS3zK,EAAM4zK,SACzE,CACA,MAAM+B,GAAiBjf,GAAQ1I,IAAM0I,GAAQI,YAAc,GAC3D,IAAI8e,GAAgB,KAAMC,GAAqB,EAAGC,GAAoB,EACtE,SAASjC,GAAa7zK,GAClB,IAAK21K,GACD,OAAO31K,EAAM+1K,OACjB,IAAIlsJ,EAAO+rJ,GAAeI,EAAWF,GACrCF,UAAgB51K,EAChB81K,GAAoB92J,KAAKD,MAClB82J,IAAsBhsJ,GAASmsJ,EAAWh3J,KAAKD,MAAQ,KAAOoC,KAAK0B,IAAIgH,EAAK8pJ,QAAU3zK,EAAM2zK,SAAW,GAC1GxyJ,KAAK0B,IAAIgH,EAAK+pJ,QAAU5zK,EAAM4zK,SAAW,GAAMiC,GAAqB,GAAK,EAAI,CACrF,CA8DA,SAASI,GAASrjB,EAAM5yJ,EAAO2Z,EAAMu8J,GACjC,IAAKv8J,EACD,OACJ,IAAIw8J,EAAUvjB,EAAK8a,YAAY,CAAEpjJ,EAAGtqB,EAAM2zK,QAASxoF,EAAGnrF,EAAM4zK,UAAW,IACjE3C,kBAAmBre,EAAKiT,WAC1BuQ,EAAMF,GAAUjF,GA5PxB,SAASoF,GAAmBzjB,EAAM5yJ,GAC9B,IAAI88I,EAAQ8V,EAAKj0I,MAAMm+H,MAAMskB,IAC7B,OAAOtkB,EAAMpiJ,OAASoiJ,EAAM,GAAG98I,GAAS02J,GAAQ3I,KAAO/tJ,EAAM6F,QAAU7F,EAAM+F,OACjF,CAyP0CswK,CAAmBzjB,EAAM5yJ,GACzD,CAAEgQ,KAAMihK,EAAejhK,KAAMm5G,GAAI8nD,EAAe9nD,IAAO,KACzDh7D,EAAM,CAAEn+C,KAAMmmK,EAASt2I,OAAQlmB,GAC/BilB,EAAUg0H,EAAKj0I,MAAMigB,QAAQw3I,EAAM,CAACA,EAAKjoH,GAAOA,GACpDykG,EAAKjC,QACLiC,EAAKvyI,SAAS,CACVue,UACAk9G,UAAW,CAAEtjH,OAAQoG,EAAQ05G,OAAO69B,GAAS,GAAKr3K,KAAM8/B,EAAQ05G,OAAO69B,EAAS,IAChF3zB,UAAW4zB,EAAM,YAAc,eAEnCxjB,EAAKiT,WAAWoL,eAAiB,IACrC,CAxCAN,GAAS2F,UAAY,CAAC1jB,EAAM5yJ,KACxB,IAAM87I,WAAaR,KAAMH,IAAYyX,EAAKj0I,MAC1C,GAAI3e,EAAMhI,OAAOu+K,UAAW,CACxB,IAAIlP,EAAQzU,EAAKkI,QAAQ4O,QAAQ1pK,EAAMhI,QACvC,GAAIqvK,GAASA,EAAMhS,SAAU,CACzB,IAAIrlJ,EAAOq3J,EAAM5U,WAAYtpC,EAAKn5G,EAAOq3J,EAAM3sK,QAC3CsV,GAAQmrI,EAAMhyB,IAAMA,GAAMgyB,EAAMnrI,QAChCmrI,EAAQD,SAAsBlrI,EAAMm5G,GAAE,EAGlD,IAAM08C,cAAejT,EACrB,OAAIiT,EAAWmL,iBACXnL,EAAWmL,eAAeuC,UAAW,GACzC1N,EAAWoL,eAAiB91B,EACxBn7I,EAAMw2K,eACNx2K,EAAMw2K,aAAaC,QAAQ,OAAQ7jB,EAAKj0I,MAAMqmI,SAAS7J,EAAMnrI,KAAMmrI,EAAMhyB,KACzEnpH,EAAMw2K,aAAaE,cAAgB,aAEhC,GAEX/F,GAASgG,QAAU/jB,IACfA,EAAKiT,WAAWoL,eAAiB,MAC1B,GAmBXN,GAASiG,KAAO,CAAChkB,EAAM5yJ,KACnB,IAAKA,EAAMw2K,aACP,OAAO,EACX,GAAI5jB,EAAKj0I,MAAMwiI,SACX,OAAO,EACX,IAAI01B,EAAQ72K,EAAMw2K,aAAaK,MAC/B,GAAIA,GAASA,EAAMn8K,OAAQ,CACvB,IAAIif,EAAO5J,MAAM8mK,EAAMn8K,QAASo8K,EAAO,EACnCC,EAAa,OACPD,GAAQD,EAAMn8K,QAChBu7K,GAASrjB,EAAM5yJ,EAAO2Z,EAAK3L,OAAOpO,GAAU,MAALA,GAAWmT,KAAK6/I,EAAKj0I,MAAMq0H,YAAY,EAAK,EAE3F,QAASv4I,EAAI,EAAGA,EAAIo8K,EAAMn8K,OAAQD,IAAK,CACnC,IAAI8hJ,EAAS,IAAIy6B,WACjBz6B,EAAO6lB,QAAU2U,EACjBx6B,EAAO06B,OAAS,KACP,0BAA0B79J,KAAKmjI,EAAOh1I,UACvCoS,EAAKlf,GAAK8hJ,EAAOh1I,QACrBwvK,GAAU,EAEdx6B,EAAO26B,WAAWL,EAAMp8K,GAAE,CAE9B,OAAO,EAEN,CACD,IAAIkf,EAAO3Z,EAAMw2K,aAAalrI,QAAQ,QACtC,GAAI3xB,EACAs8J,UAASrjB,EAAM5yJ,EAAO2Z,GAAM,IACrB,EAGf,OAAO,GAEXg3J,GAASwG,MAAQ,CAACvkB,EAAM5yJ,KACpB,GAAI4yJ,EAAKj0I,MAAMwiI,SACX,OAAO,EACXyR,EAAKn6I,SAAS6G,QACd,IAAI3d,EAAOwyK,GAAqB,KAAOn0K,EAAMo3K,cAC7C,OAAIz1K,GACAyyK,GAAQxhB,EAAMjxJ,EAAK2pC,QAAQ,eAAiB3pC,EAAK2pC,QAAQ,mBAClD,IAzQf,SAAS+rI,GAAazkB,GAClB,IAAItwJ,EAASswJ,EAAKv4J,IAAItD,WACtB,IAAKuL,EACD,OACJ,IAAItK,EAASsK,EAAO3D,YAAYrH,SAASL,cAAc,aACvDe,EAAOgF,MAAM08J,QAAU,6CACvB1hK,EAAO24J,QACP95G,WAAW,KACP+7G,EAAKjC,QACL34J,EAAOnB,SACPu9K,GAAQxhB,EAAM56J,EAAOmK,MAAK,EAC3B,GACP,CAgQQk1K,CAAazkB,IACN,IA0Cf,IAAI0hB,GAAmB,KACvB3D,GAASn8B,KAAOm8B,GAASrkE,IAAM,CAACsmD,EAAM5yJ,KAClC,IAAM2Z,OAAMy/H,SAAQk+B,YAxBxB,SAASC,GAAY54J,GACjB,IAAIlc,EAAU,GAAI22I,EAAS,GAAIk+B,GAAW,EAC1C,QAASn8B,KAASx8H,EAAMm9H,UAAU1C,OACzB+B,EAAMp+H,QACPta,EAAQ5D,KAAK8f,EAAMqmI,SAAS7J,EAAMnrI,KAAMmrI,EAAMhyB,KAC9CiwB,EAAOv6I,KAAKs8I,IAEpB,IAAK14I,EAAQ/H,OAAQ,CAEjB,IAAI8kK,GAAO,EACX,QAAWxvJ,UAAU2O,EAAMm9H,UAAU1C,OAAQ,CACzC,IAAI7pI,EAAOoP,EAAMxnB,IAAIk7I,OAAOriI,GACxBT,EAAKqmI,OAAS4pB,IACd/8J,EAAQ5D,KAAK0Q,EAAKoK,MAClBy/H,EAAOv6I,KAAK,CAAEmR,KAAMT,EAAKS,KAAMm5G,GAAIhoG,KAAK4lC,IAAIpoC,EAAMxnB,IAAIuD,OAAQ6U,EAAK45G,GAAK,MAE5Eq2C,EAAOjwJ,EAAKqmI,OAEhB0hC,GAAW,EAEf,MAAO,CAAE39J,KAAMlX,EAAQsQ,KAAK4L,EAAMq0H,WAAYoG,SAAQk+B,WAC1D,CAGqCC,CAAY3kB,EAAKj0I,OAClD,IAAKhF,IAAS29J,EACV,OAAO,EACXhD,GAAmBgD,EAAW39J,EAAO,KACnB,OAAd3Z,EAAMY,OAAkBgyJ,EAAKj0I,MAAMwiI,UACnCyR,EAAKvyI,SAAS,CACVue,QAASw6G,EACT4I,gBAAgB,EAChBQ,UAAW,eAEnB,IAAI7gJ,EAAOwyK,GAAqB,KAAOn0K,EAAMo3K,cAC7C,OAAIz1K,GACAA,EAAK61K,YACL71K,EAAK80K,QAAQ,aAAc98J,IACpB,IAvDf,SAAS89J,GAAY7kB,EAAMj5I,GAGvB,IAAIrX,EAASswJ,EAAKv4J,IAAItD,WACtB,IAAKuL,EACD,OACJ,IAAItK,EAASsK,EAAO3D,YAAYrH,SAASL,cAAc,aACvDe,EAAOgF,MAAM08J,QAAU,6CACvB1hK,EAAOmK,MAAQwX,EACf3hB,EAAO24J,QACP34J,EAAO0/K,aAAe/9J,EAAKjf,OAC3B1C,EAAO2/K,eAAiB,EACxB9gI,WAAW,KACP7+C,EAAOnB,SACP+7J,EAAKjC,OAAK,EACX,GACP,CA0CQ8mB,CAAY7kB,EAAMj5I,IACX,IAGf,MAAMi+J,GAA6Bx2B,YACnC,SAASy2B,GAAuBl5J,EAAOgyI,GACnC,IAAIjP,EAAU,GACd,QAASo2B,KAAan5J,EAAMm+H,MAAM2kB,IAAoB,CAClD,IAAI9f,EAASm2B,EAAUn5J,EAAOgyI,GAC1BhP,GACAD,EAAQ7iJ,KAAK8iJ,EAAM,CAE3B,OAAOD,EAAU/iI,EAAMpO,OAAO,CAAEmxI,UAASK,YAAa61B,GAActqK,IAAG,KAAW,IACtF,CACA,SAASyqK,GAAqBnlB,GAC1B/7G,WAAW,KACP,IAAI85G,EAAQiC,EAAKwe,SACjB,GAAIzgB,GAASiC,EAAKiT,WAAWsL,gBAAiB,CAC1C,IAAI5zB,EAAKs6B,GAAuBjlB,EAAKj0I,MAAOgyI,GACxCpT,EACAqV,EAAKvyI,SAASk9H,GAEdqV,EAAKriJ,OAAO,GAAE,GAEvB,GACP,CACAqhK,GAAUjhB,MAAQiC,IACdA,EAAKiT,WAAWuK,cAAgBpxJ,KAAKD,OAEhC6zI,EAAKwX,UAAUxZ,YAAcgC,EAAKiT,WAAWwK,eAAiBzd,EAAKiT,WAAWyK,kBAC/E1d,EAAKwX,UAAUxZ,UAAYgC,EAAKiT,WAAWwK,cAC3Czd,EAAKwX,UAAUvZ,WAAa+B,EAAKiT,WAAWyK,gBAEhDyH,GAAqBnlB,EAAI,EAE7Bgf,GAAU/I,KAAOjW,IACbA,EAAKn6I,SAASu/J,sBACdD,GAAqBnlB,EAAI,EAE7Bgf,GAAUqG,iBAAmBrG,GAAUsG,kBAAoBtlB,IACnDA,EAAKn6I,SAASstJ,cAE4B,MAA1CnT,EAAKiT,WAAW+K,yBAChBhe,EAAKiT,WAAW+K,wBAAyB,GACzChe,EAAKiT,WAAWC,UAAY,IAE5BlT,EAAKiT,WAAWC,UAAY,KAGpC8L,GAAUuG,eAAiBvlB,IACnBA,EAAKn6I,SAASstJ,cAElBnT,EAAKiT,WAAWC,WAAY,EAC5BlT,EAAKiT,WAAWgL,mBAAqB7xJ,KAAKD,MAC1C6zI,EAAKiT,WAAWiL,uBAAwB,EACxCle,EAAKiT,WAAWkL,yBAA2Bne,EAAKn6I,SAAS2/J,iBAAiB19K,OAAS,EACnFk4J,EAAKiT,WAAW+K,uBAAyB,KACrCla,GAAQL,QAAUK,GAAQQ,QAG1BtE,EAAKn6I,SAAS4/J,YAETzlB,EAAKiT,WAAWkL,yBAErBrkJ,QAAQC,UAAUvyB,KAAK,IAAMw4J,EAAKn6I,SAAS6G,SAK3Cu3B,WAAW,KACH+7G,EAAKiT,WAAWC,UAAY,GAAKlT,EAAKkI,QAAQ+J,gBAC9CjS,EAAKriJ,OAAO,GAAE,EACnB,IAAE,EAGbqhK,GAAU0G,YAAc1lB,IACpBA,EAAKiT,WAAW4K,gBAAkBzxJ,KAAKD,KAAG,EAE9C4xJ,GAAS4H,YAAc,CAAC3lB,EAAM5yJ,KAC1B,IAAIi9I,EAQJ,IAAIt9H,EACJ,GAAI+2I,GAAQL,QAAUK,GAAQQ,UAAYv3I,EAAU0yJ,GAAYx8I,KAAK9uB,GAAOA,EAAI2rK,WAAa1yK,EAAM0yK,cAC/F9f,EAAKn6I,SAAS25J,gBAAgBzyJ,EAAQ5Y,IAAK4Y,EAAQyxI,SAChC,aAAfzxI,EAAQ5Y,KAAqC,UAAf4Y,EAAQ5Y,KAAiB,CACvD,IAAIyxK,GAAoD,QAAhCv7B,EAAKhlJ,OAAOs3J,sBAAmC,IAAPtS,OAAgB,EAASA,EAAGj+D,SAAW,EACvGnoC,WAAW,KACP,IAAIomG,IAImC,QAAhCA,EAAKhlJ,OAAOs3J,sBAAmC,IAAPtS,OAAgB,EAASA,EAAGj+D,SAAW,GAAKw5F,EAAkB,IAAM5lB,EAAKwe,WACpHxe,EAAK4S,WAAWqD,OAChBjW,EAAKjC,QAAK,EAEf,IAAG,CAGd,OAAI+F,GAAQF,KAA0B,wBAAnBx2J,EAAM0yK,WAIrB9f,EAAKn6I,SAAS4/J,YAGd3hB,GAAQH,QAA6B,cAAnBv2J,EAAM0yK,WAA6B9f,EAAKiT,WAAWC,WAAa,GAClFjvH,WAAW,IAAM+6H,GAAUuG,eAAevlB,EAAM5yJ,GAAQ,KAErD,GAEX,MAAMsxK,GAAkC,IAAItzK,IAatCy6K,GAAqB,CAAC,WAAY,SAAU,WAAY,gBAC9D,MAAMC,GACF5iL,YAAYg5K,GACR74K,KAAK64K,aAAeA,EACpB74K,KAAKkB,IAAMi7I,SACXn8I,KAAK0iL,cAAgB,CAAC,EACtB1iL,KAAKukK,WAAa,GAClBvkK,KAAKwkK,UAAY,EACjBxkK,KAAKqkK,WAAa,GAClBrkK,KAAK+4K,WAAa,GAElB/4K,KAAKsuK,eAAgB,CACzB,CACAqU,aAAa5oK,EAAMm5G,GACf,IAAIqpB,EAAQv8I,KAAKkB,IAAIk7I,OAAOlpB,GAAIysB,OAAS3/I,KAAKkB,IAAIk7I,OAAOriI,GAAM4lI,OAAS,EACxE,OAAI3/I,KAAK64K,eACLt8B,GAASrxH,KAAKC,IAAI,EAAGD,KAAK03J,MAAO1vD,EAAKn5G,EAASwiI,EAAQv8I,KAAK+4K,WAAa,IAAQ/4K,KAAK+4K,cACnF/4K,KAAKukK,WAAahoB,CAC7B,CACAsmC,cAAcp+K,GACV,OAAKzE,KAAK64K,cAEE,EAAI3tJ,KAAKC,IAAI,EAAGD,KAAK03J,MAAMn+K,EAASzE,KAAK+4K,aAAe/4K,KAAK+4K,WAAa,MACvE/4K,KAAKukK,WAFTvkK,KAAKukK,UAGpB,CACAue,OAAO5hL,GAAO,YAAKA,IAAMA,EAAYlB,IAAM,CAC3C+iL,uBAAuBC,GACnB,OAAQR,GAAmBtxK,QAAQ8xK,IAAc,GAAOhjL,KAAK64K,YACjE,CACAoK,sBAAsBC,GAClB,IAAIC,GAAY,EAChB,QAAS3+K,EAAI,EAAGA,EAAI0+K,EAAYz+K,OAAQD,IAAK,CACzC,IAAI4+K,EAAIF,EAAY1+K,GAChB4+K,EAAI,EACJ5+K,IAEMxE,KAAK0iL,cAAcx3J,KAAKosF,MAAU,GAAJ8rE,MACpCD,GAAY,EACZnjL,KAAK0iL,cAAcx3J,KAAKosF,MAAU,GAAJ8rE,KAAW,GAGjD,OAAOD,CACX,CACAE,QAAQL,EAAYze,EAAYC,EAAWH,EAAY0U,EAAYuK,GAC/D,IAAIzK,EAAe2J,GAAmBtxK,QAAQ8xK,IAAc,EACxD76B,EAAUj9H,KAAKqlD,MAAMg0F,IAAer5I,KAAKqlD,MAAMvwE,KAAKukK,aAAevkK,KAAK64K,cAAgBA,EAM5F,GALA74K,KAAK64K,aAAeA,EACpB74K,KAAKukK,WAAaA,EAClBvkK,KAAKwkK,UAAYA,EACjBxkK,KAAKqkK,WAAaA,EAClBrkK,KAAK+4K,WAAaA,EACd5wB,EAAS,CACTnoJ,KAAK0iL,cAAgB,CAAC,EACtB,QAASl+K,EAAI,EAAGA,EAAI8+K,EAAa7+K,OAAQD,IAAK,CAC1C,IAAI4+K,EAAIE,EAAa9+K,GACjB4+K,EAAI,EACJ5+K,IAEAxE,KAAK0iL,cAAcx3J,KAAKosF,MAAU,GAAJ8rE,KAAW,GAGrD,OAAOj7B,CACX,EAKJ,MAAMo7B,GACF1jL,YAAYka,EAAMypK,GACdxjL,KAAK+Z,KAAOA,EACZ/Z,KAAKwjL,QAAUA,EACfxjL,KAAKqR,MAAQ,CACjB,CACIoyK,WAAS,OAAOzjL,KAAKqR,MAAQrR,KAAKwjL,QAAQ/+K,MAAQ,EAM1D,MAAMi/K,GAIF7jL,YAIAka,EAIAtV,EAKA86I,EAIAx2D,EAOA46F,GACI3jL,KAAK+Z,KAAOA,EACZ/Z,KAAKyE,OAASA,EACdzE,KAAKu/I,IAAMA,EACXv/I,KAAK+oF,OAASA,EACd/oF,KAAK2jL,SAAWA,CACpB,CAKIh5K,WACA,MAA+B,iBAAjB3K,KAAK2jL,SAAuBve,GAAUjpB,KAChDriI,MAAM2C,QAAQzc,KAAK2jL,UAAY3jL,KAAK2jL,SAAW3jL,KAAK2jL,SAASh5K,IACrE,CAIIuoH,SAAO,OAAOlzH,KAAK+Z,KAAO/Z,KAAKyE,MAAQ,CAIvC00J,aAAW,OAAOn5J,KAAKu/I,IAAMv/I,KAAK+oF,MAAQ,CAK1Cs5E,aACA,OAAOriK,KAAK2jL,oBAAoB/d,GAAkB5lK,KAAK2jL,SAASthB,OAAS,IAC7E,CAKIuhB,uBACA,MAA+B,iBAAjB5jL,KAAK2jL,SAAuB3jL,KAAK2jL,SAAW,CAC9D,CAIA7mK,KAAKtC,GACD,IAAIhO,GAAWsN,MAAM2C,QAAQzc,KAAK2jL,UAAY3jL,KAAK2jL,SAAW,CAAC3jL,OAC1Dya,OAAOX,MAAM2C,QAAQjC,EAAMmpK,UAAYnpK,EAAMmpK,SAAW,CAACnpK,IAC9D,OAAO,IAAIkpK,GAAU1jL,KAAK+Z,KAAM/Z,KAAKyE,OAAS+V,EAAM/V,OAAQzE,KAAKu/I,IAAKv/I,KAAK+oF,OAASvuE,EAAMuuE,OAAQv8E,EACtG,EAEJ,IAAIq3K,GAA0B,SAAUA,GACpCA,SAAUA,EAAUC,MAAW,GAAK,QACpCD,EAAUA,EAAUE,SAAc,GAAK,WACvCF,EAAUA,EAAUG,cAAmB,GAAK,gBACzCH,CAAS,CAJc,CAIXA,KAAcA,GAAY,CAAC,IAC9C,MAAMI,GAAU,KAChB,MAAMC,GACFrkL,YAAY4E,EACZskF,EACAv7E,EAAQ,GACJxN,KAAKyE,OAASA,EACdzE,KAAK+oF,OAASA,EACd/oF,KAAKwN,MAAQA,CACjB,CACI22K,eAAa,OAAqB,EAAbnkL,KAAKwN,OAAiC,CAAG,CAC9D22K,aAASj4K,GAASlM,KAAKwN,OAAStB,EAAQ,EAAwB,IAAmB,EAAblM,KAAKwN,KAAiC,CAChH42K,UAAUC,EAAQt7F,GACV/oF,KAAK+oF,QAAUA,IACX79D,KAAK0B,IAAI5sB,KAAK+oF,OAASA,GAAUk7F,KACjCI,EAAO/V,eAAgB,GAC3BtuK,KAAK+oF,OAASA,EAEtB,CAIAn/E,QAAQ23J,EAAOC,EAAKzsH,GAChB,OAAOmvI,GAAU7sK,GAAG09B,EACxB,CAEAuvI,cAAc9iB,EAAKlwJ,GAAUA,EAAO1I,KAAK5I,KAAO,CAChDukL,eAAehjB,EAAOjwJ,GAAUA,EAAO1I,KAAK5I,KAAO,CACnDwkL,aAAahd,EAAaid,EAAQJ,EAAQ17I,GACtC,IAAIolI,EAAK/tK,KAAMkB,EAAMmjL,EAAOnjL,IAC5B,QAASsD,EAAImkC,EAAQlkC,OAAS,EAAGD,GAAK,EAAGA,IAAK,CAC1C,IAAMo+I,QAAOC,MAAKC,QAAO+qB,OAAQllI,EAAQnkC,GACrC6+E,EAAQ0qF,EAAG3xB,OAAOwG,EAAOihC,GAAUG,cAAeK,EAAOvB,OAAO2B,GAAS,EAAG,GAC5Ej5K,GAAM63E,EAAM6vC,IAAM2vB,EAAMx/D,EAAQ0qF,EAAG3xB,OAAOyG,EAAKghC,GAAUG,cAAeK,EAAQ,EAAG,GAGvF,IAFAxW,GAAOriK,GAAI0nH,GAAK2vB,EAChBA,EAAMr3I,GAAI0nH,GACH1uH,EAAI,GAAK6+E,EAAMtpE,MAAQ4uB,EAAQnkC,EAAI,GAAGq+I,KACzCD,EAAQj6G,EAAQnkC,EAAI,GAAGo+I,MACvBE,EAAQn6G,EAAQnkC,EAAI,GAAGs+I,MACvBt+I,IACIo+I,EAAQv/D,EAAMtpE,OACdspE,EAAQ0qF,EAAG3xB,OAAOwG,EAAOihC,GAAUG,cAAeK,EAAQ,EAAG,IAErEvhC,GAASz/D,EAAMtpE,KAAO6oI,EACtBA,EAAQv/D,EAAMtpE,KACd,IAAIg7B,GAAQ2vI,GAAY3/K,MAAMs/K,EAAOvB,OAAO5hL,GAAMsmK,EAAa1kB,EAAO+qB,GACtEE,EAAKA,EAAGnkK,QAAQg5I,EAAOC,EAAK9tG,GAAK,CAErC,OAAOg5H,EAAG4W,aAAaN,EAAQ,EACnC,CACAlkL,eAAiB,OAAO,IAAIykL,GAAc,EAAG,EAAI,CAKjDzkL,UAAU40C,GACN,GAAoB,GAAhBA,EAAMtwC,OACN,OAAOswC,EAAM,GACjB,IAAIvwC,EAAI,EAAG26E,EAAIpqC,EAAMtwC,OAAQ09I,EAAS,EAAGob,EAAQ,EACjD,OACI,GAAI/4J,GAAK26E,EACL,GAAIgjE,EAAiB,EAARob,EAAW,CACpB,IAAI1sJ,EAAQkkC,EAAMvwC,EAAI,GAClBqM,EAAMg0K,MACN9vI,EAAM5jC,SAAS3M,EAAG,EAAGqM,EAAMo/F,KAAM,KAAMp/F,EAAMq/F,OAE7Cn7D,EAAM5jC,SAAS3M,EAAG,EAAGqM,EAAMo/F,KAAMp/F,EAAMq/F,OAC3C/wB,GAAK,EAAItuE,EAAMg0K,MACf1iC,GAAUtxI,EAAMu0D,eAEXm4F,EAAiB,EAATpb,GAUb,MAVyB,CACzB,IAAItxI,EAAQkkC,EAAMoqC,GACdtuE,EAAMg0K,MACN9vI,EAAM5jC,OAAOguE,EAAG,EAAGtuE,EAAMo/F,KAAM,KAAMp/F,EAAMq/F,OAE3Cn7D,EAAM5jC,OAAOguE,EAAG,EAAGtuE,EAAMo/F,KAAMp/F,EAAMq/F,OACzC/wB,GAAK,EAAItuE,EAAMg0K,MACftnB,GAAS1sJ,EAAMu0D,KAGf,SAGC+8E,EAASob,EAAO,CACrB,IAAIzkJ,EAAOi8B,EAAMvwC,KACbsU,IACAqpI,GAAUrpI,EAAKssD,UAElB,CACD,IAAItsD,EAAOi8B,IAAQoqC,GACfrmE,IACAykJ,GAASzkJ,EAAKssD,MAG1B,IAAI0/G,EAAM,EACV,OAAoB,MAAhB/vI,EAAMvwC,EAAI,IACVsgL,EAAM,EACNtgL,KAEiB,MAAZuwC,EAAMvwC,KACXsgL,EAAM,EACN3lG,KAEG,IAAI4lG,GAAgBb,GAAU7sK,GAAG09B,EAAMhvC,MAAM,EAAGvB,IAAKsgL,EAAKZ,GAAU7sK,GAAG09B,EAAMhvC,MAAMo5E,IAC9F,EAEJ+kG,GAAU70J,UAAU+1C,KAAO,EAC3B,MAAM4/G,WAAuBd,GACzBrkL,YAAY4E,EAAQskF,EAAQi7E,GACxBlkK,MAAM2E,EAAQskF,GACd/oF,KAAKgkK,KAAOA,CAChB,CACAgV,QAAQiM,EAASC,EAAS3lC,EAAKrxF,GAC3B,OAAO,IAAIw1H,GAAUx1H,EAAQluD,KAAKyE,OAAQ86I,EAAKv/I,KAAK+oF,OAAQ/oF,KAAKgkK,MAAQ,EAC7E,CACA5nB,OAAOx/H,EAAQuoK,EAAOd,EAAQ9kC,EAAKrxF,GAC/B,OAAOluD,KAAKg5K,QAAQ,EAAGqL,EAAQ9kC,EAAKrxF,EACxC,CACAk3H,YAAYrrK,EAAMm5G,EAAImxD,EAAQ9kC,EAAKrxF,EAAQ9M,GACnCrnC,GAAQm0C,EAASluD,KAAKyE,QAAUyuH,GAAMhlE,GACtC9M,EAAEphD,KAAKg5K,QAAQ,EAAGqL,EAAQ9kC,EAAKrxF,GACvC,CACAy2H,aAAaN,EAAQn2H,EAAS,EAAGm3H,GAAS,EAAOC,GAC7C,OAAIA,GAAYA,EAASvrK,MAAQm0C,GAAUo3H,EAAS7B,MAChDzjL,KAAKokL,UAAUC,EAAQiB,EAAS9B,QAAQ8B,EAASj0K,UACrDrR,KAAKmkL,UAAW,EACTnkL,IACX,CACAsW,WAAa,MAAQ,SAAQtW,KAAKyE,SAAW,EAEjD,MAAMmgL,WAAsBI,GACxBnlL,YAAY4E,EAAQskF,GAChBjpF,MAAM2E,EAAQskF,EAAQ,MACtB/oF,KAAKulL,UAAY,EACjBvlL,KAAKwlL,aAAe,EACpBxlL,KAAKylL,OAAS,CAClB,CACAzM,QAAQiM,EAASC,EAAS3lC,EAAKrxF,GAC3B,OAAO,IAAIw1H,GAAUx1H,EAAQluD,KAAKyE,OAAQ86I,EAAKv/I,KAAK+oF,OAAQ/oF,KAAKylL,OACrE,CACA77K,QAAQ23J,EAAOC,EAAKzsH,GAChB,IAAIl0C,EAAOk0C,EAAM,GACjB,OAAoB,GAAhBA,EAAMtwC,SAAgB5D,aAAgB+jL,IAAiB/jL,aAAgB6kL,IAA8B,EAAb7kL,EAAK2M,QAC7F0d,KAAK0B,IAAI5sB,KAAKyE,OAAS5D,EAAK4D,QAAU,IAClC5D,aAAgB6kL,GAChB7kL,EAAO,IAAI+jL,GAAc/jL,EAAK4D,OAAQzE,KAAK+oF,QAE3CloF,EAAKkoF,OAAS/oF,KAAK+oF,OAClB/oF,KAAKmkL,WACNtjL,EAAKsjL,UAAW,GACbtjL,GAGAqjL,GAAU7sK,GAAG09B,EAE5B,CACA4vI,aAAaN,EAAQn2H,EAAS,EAAG01F,GAAQ,EAAO0hC,GAC5C,OAAIA,GAAYA,EAASvrK,MAAQm0C,GAAUo3H,EAAS7B,KAChDzjL,KAAKokL,UAAUC,EAAQiB,EAAS9B,QAAQ8B,EAASj0K,WAC5CuyI,GAAS5jJ,KAAKmkL,WACnBnkL,KAAKokL,UAAUC,EAAQn5J,KAAKC,IAAInrB,KAAKwlL,aAAcnB,EAAOxB,cAAc7iL,KAAKyE,OAASzE,KAAKulL,YACvFvlL,KAAKylL,OAASpB,EAAO9f,YAC7BvkK,KAAKmkL,UAAW,EACTnkL,IACX,CACAsW,WACI,MAAQ,QAAOtW,KAAKyE,SAASzE,KAAKulL,WAAavlL,KAAKulL,UAAY,KAAKvlL,KAAKwlL,aAAe,IAAMxlL,KAAKwlL,aAAe,KACvH,EAEJ,MAAME,WAAqBxB,GACvBrkL,YAAY4E,GAAU3E,MAAM2E,EAAQ,EAAI,CACxCkhL,cAActB,EAAQn2H,GAClB,IAEI03H,EAFAC,EAAYxB,EAAOnjL,IAAIk7I,OAAOluF,GAAQyxF,OAAQ2+B,EAAW+F,EAAOnjL,IAAIk7I,OAAOluF,EAASluD,KAAKyE,QAAQk7I,OACjGpD,EAAQ+hC,EAAWuH,EAAY,EACtBC,EAAU,EACvB,GAAIzB,EAAOxL,aAAc,CACrB,IAAIkN,EAAe76J,KAAK4lC,IAAI9wD,KAAK+oF,OAAQs7F,EAAO9f,WAAahoB,GAC7DqpC,EAAUG,EAAexpC,EACrBv8I,KAAKyE,OAAS83I,EAAQ,IACtBupC,GAAW9lL,KAAK+oF,OAASg9F,IAAiB/lL,KAAKyE,OAAS83I,EAAQ,SAGpEqpC,EAAU5lL,KAAK+oF,OAASwzD,EAE5B,MAAO,CAAEspC,YAAWvH,WAAUsH,UAASE,UAC3C,CACA9M,QAAQjwF,EAAQs7F,EAAQ9kC,EAAKrxF,GACzB,IAAM23H,YAAWvH,WAAUsH,UAASE,WAAY9lL,KAAK2lL,cAActB,EAAQn2H,GAC3E,GAAIm2H,EAAOxL,aAAc,CACrB,IAAImN,EAAQ93H,GAAU66B,EAASs7F,EAAO9f,WAAa,EAC7Cr5I,KAAKqlD,MAAMrlD,KAAKC,IAAI,EAAGD,KAAK4lC,IAAI,GAAIi4B,EAASw2D,GAAOv/I,KAAK+oF,SAAW/oF,KAAKyE,SAC3E6U,EAAO+qK,EAAOnjL,IAAIk7I,OAAO4pC,GAAQzhB,EAAaqhB,EAAUtsK,EAAK7U,OAASqhL,EACtEG,EAAU/6J,KAAKC,IAAIo0H,EAAKx2D,EAASw7E,EAAa,GAClD,OAAO,IAAImf,GAAUpqK,EAAKS,KAAMT,EAAK7U,OAAQwhL,EAAS1hB,EAAY,EAAC,CAElE,CACD,IAAIjrJ,EAAO4R,KAAKC,IAAI,EAAGD,KAAK4lC,IAAIwtH,EAAWuH,EAAW36J,KAAKosF,OAAOvuB,EAASw2D,GAAOqmC,MAC5E7rK,OAAMtV,UAAW4/K,EAAOnjL,IAAIoY,KAAKusK,EAAYvsK,GACnD,OAAO,IAAIoqK,GAAU3pK,EAAMtV,EAAQ86I,EAAMqmC,EAAUtsK,EAAMssK,EAAS,EAAC,CAE3E,CACAxpC,OAAOlwI,EAAOvB,EAAM05K,EAAQ9kC,EAAKrxF,GAC7B,GAAIvjD,GAAQk5K,GAAUE,SAClB,OAAO/jL,KAAKg5K,QAAQ9sK,EAAOm4K,EAAQ9kC,EAAKrxF,GAC5C,GAAIvjD,GAAQk5K,GAAUG,cAAe,CACjC,IAAMjqK,QAAMm5G,OAAOmxD,EAAOnjL,IAAIk7I,OAAOlwI,GACrC,OAAO,IAAIw3K,GAAU3pK,GAAMm5G,GAAKn5G,GAAM,EAAG,EAAG,EAAC,CAEjD,IAAM8rK,YAAWD,UAASE,WAAY9lL,KAAK2lL,cAActB,EAAQn2H,GAC7D50C,EAAO+qK,EAAOnjL,IAAIk7I,OAAOlwI,GAAQq4J,EAAaqhB,EAAUtsK,EAAK7U,OAASqhL,EACtEI,EAAa5sK,EAAKqmI,OAASkmC,EAE/B,OAAO,IAAInC,GAAUpqK,EAAKS,KAAMT,EAAK7U,OAAQymB,KAAKC,IAAIo0H,EAAKr0H,KAAK4lC,IADlDyuF,EAAMqmC,EAAUM,EAAaJ,GAAWxsK,EAAKS,KAAOm0C,EAASg4H,GACE3mC,EAAMv/I,KAAK+oF,OAASw7E,IAAcA,EAAY,EAC/H,CACA6gB,YAAYrrK,EAAMm5G,EAAImxD,EAAQ9kC,EAAKrxF,EAAQ9M,GACvCrnC,EAAOmR,KAAKC,IAAIpR,EAAMm0C,GACtBglE,EAAKhoG,KAAK4lC,IAAIoiE,EAAIhlE,EAASluD,KAAKyE,QAChC,IAAMohL,YAAWD,UAASE,WAAY9lL,KAAK2lL,cAActB,EAAQn2H,GACjE,QAASpa,EAAM/5B,EAAMksK,EAAU1mC,EAAKzrG,GAAOo/E,GAAK,CAC5C,IAAI55G,EAAO+qK,EAAOnjL,IAAIk7I,OAAOtoG,GAC7B,GAAIA,GAAO/5B,EAAM,CACb,IAAImsK,GAAa5sK,EAAKqmI,OAASkmC,EAC/BI,GAAWL,EAAUM,GAAaJ,GAAW/rK,EAAOm0C,EAASg4H,IAEjE,IAAI3hB,GAAaqhB,EAAUE,EAAUxsK,EAAK7U,OAC1C28C,EAAE,IAAIsiI,GAAUpqK,EAAKS,KAAMT,EAAK7U,OAAQwhL,EAAS1hB,GAAY,IAC7D0hB,GAAW1hB,GACXzwH,EAAMx6B,EAAK45G,GAAK,EAExB,CACAtpH,QAAQmQ,EAAMm5G,EAAIn+E,GACd,IAAIwoH,EAAQv9J,KAAKyE,OAASyuH,EAC1B,GAAIqqC,EAAQ,EAAG,CACX,IAAI3pI,EAAOmhB,EAAMA,EAAMtwC,OAAS,GAC5BmvB,aAAgB8xJ,GAChB3wI,EAAMA,EAAMtwC,OAAS,GAAK,IAAIihL,GAAa9xJ,EAAKnvB,OAAS84J,GAEzDxoH,EAAMnsC,KAAK,KAAM,IAAI88K,GAAanoB,EAAQ,GAAE,CAEpD,GAAIxjJ,EAAO,EAAG,CACV,IAAIoG,EAAQ40B,EAAM,GACd50B,aAAiBulK,GACjB3wI,EAAM,GAAK,IAAI2wI,GAAa3rK,EAAOoG,EAAM1b,QAEzCswC,EAAMzR,QAAQ,IAAIoiJ,GAAa3rK,EAAO,GAAI,KAAI,CAEtD,OAAOmqK,GAAU7sK,GAAG09B,EACxB,CACAuvI,cAAcpxD,EAAI5hH,GACdA,EAAO1I,KAAK,IAAI88K,GAAaxyD,EAAK,GAAI,KAC1C,CACAqxD,eAAexqK,EAAMzI,GACjBA,EAAO1I,KAAK,KAAM,IAAI88K,GAAa1lL,KAAKyE,OAASsV,EAAO,GAC5D,CACA4qK,aAAaN,EAAQn2H,EAAS,EAAG01F,GAAQ,EAAO0hC,GAC5C,IAAI95K,EAAM0iD,EAASluD,KAAKyE,OACxB,GAAI6gL,GAAYA,EAASvrK,MAAQm0C,EAASluD,KAAKyE,QAAU6gL,EAAS7B,KAAM,CAKpE,IAAI1uI,EAAQ,GAAIjB,EAAM5oB,KAAKC,IAAI+iC,EAAQo3H,EAASvrK,MAAOosK,GAAe,EAGtE,IAFIb,EAASvrK,KAAOm0C,GAChBnZ,EAAMnsC,KAAK,IAAI88K,GAAaJ,EAASvrK,KAAOm0C,EAAS,GAAGy2H,aAAaN,EAAQn2H,IAC1Epa,GAAOtoC,GAAO85K,EAAS7B,MAAM,CAChC,IAAIlzJ,EAAM8zJ,EAAOnjL,IAAIk7I,OAAOtoG,GAAKrvC,OAC7BswC,EAAMtwC,QACNswC,EAAMnsC,KAAK,MACf,IAAImgF,EAASu8F,EAAS9B,QAAQ8B,EAASj0K,UACnB,GAAhB80K,EACAA,EAAep9F,EACV79D,KAAK0B,IAAIm8D,EAASo9F,IAAiBlC,KACxCkC,GAAe,GACnB,IAAI7sK,EAAO,IAAIsrK,GAAcr0J,EAAKw4D,GAClCzvE,EAAK6qK,UAAW,EAChBpvI,EAAMnsC,KAAK0Q,GACXw6B,GAAOvjB,EAAM,EAEbujB,GAAOtoC,GACPupC,EAAMnsC,KAAK,KAAM,IAAI88K,GAAal6K,EAAMsoC,GAAK6wI,aAAaN,EAAQvwI,IACtE,IAAIxiC,EAAS4yK,GAAU7sK,GAAG09B,GAC1B,OAAIoxI,EAAe,GAAKj7J,KAAK0B,IAAItb,EAAOy3E,OAAS/oF,KAAK+oF,SAAWk7F,IAC7D/4J,KAAK0B,IAAIu5J,EAAenmL,KAAK2lL,cAActB,EAAQn2H,GAAQ03H,UAAY3B,MACvEI,EAAO/V,eAAgB,GACpBh9J,EAMX,OAJSsyI,GAAS5jJ,KAAKmkL,YACnBnkL,KAAKokL,UAAUC,EAAQA,EAAO1B,aAAaz0H,EAAQA,EAASluD,KAAKyE,SACjEzE,KAAKmkL,UAAW,GAEbnkL,IACX,CACAsW,WAAa,MAAQ,OAAMtW,KAAKyE,SAAW,EAE/C,MAAMsgL,WAAwBb,GAC1BrkL,YAAYowG,EAAM60E,EAAK50E,GACnBpwG,MAAMmwG,EAAKxrG,OAASqgL,EAAM50E,EAAMzrG,OAAQwrG,EAAKlnB,OAASmnB,EAAMnnB,OAAQ+7F,GAAO70E,EAAKk0E,UAAYj0E,EAAMi0E,SAAW,EAAwB,IACrInkL,KAAKiwG,KAAOA,EACZjwG,KAAKkwG,MAAQA,EACblwG,KAAKolE,KAAO6qC,EAAK7qC,KAAO8qC,EAAM9qC,IAClC,CACIy/G,YAAU,OAAoB,EAAb7kL,KAAKwN,KAA4B,CACtDwrK,QAAQjwF,EAAQs7F,EAAQ9kC,EAAKrxF,GACzB,IAAI8vF,EAAMuB,EAAMv/I,KAAKiwG,KAAKlnB,OAC1B,OAAOA,EAASi1D,EAAMh+I,KAAKiwG,KAAK+oE,QAAQjwF,EAAQs7F,EAAQ9kC,EAAKrxF,GACvDluD,KAAKkwG,MAAM8oE,QAAQjwF,EAAQs7F,EAAQrmC,EAAK9vF,EAASluD,KAAKiwG,KAAKxrG,OAASzE,KAAK6kL,MACnF,CACAzoC,OAAOlwI,EAAOvB,EAAM05K,EAAQ9kC,EAAKrxF,GAC7B,IAAIk4H,EAAW7mC,EAAMv/I,KAAKiwG,KAAKlnB,OAAQs9F,EAAcn4H,EAASluD,KAAKiwG,KAAKxrG,OAASzE,KAAK6kL,MAClF50E,EAAOtlG,GAAQk5K,GAAUE,SAAW73K,EAAQk6K,EAAWl6K,EAAQm6K,EAC/D3rK,EAAOu1F,EAAOjwG,KAAKiwG,KAAKmsC,OAAOlwI,EAAOvB,EAAM05K,EAAQ9kC,EAAKrxF,GACvDluD,KAAKkwG,MAAMksC,OAAOlwI,EAAOvB,EAAM05K,EAAQ+B,EAAUC,GACvD,GAAIrmL,KAAK6kL,QAAU50E,EAAOv1F,EAAKw4G,GAAKmzD,EAAc3rK,EAAKX,KAAOssK,GAC1D,OAAO3rK,EACX,IAAI4rK,EAAW37K,GAAQk5K,GAAUG,cAAgBH,GAAUG,cAAgBH,GAAUC,MACrF,OAAI7zE,EACOv1F,EAAKoC,KAAK9c,KAAKkwG,MAAMksC,OAAOiqC,EAAaC,EAAUjC,EAAQ+B,EAAUC,IAErErmL,KAAKiwG,KAAKmsC,OAAOiqC,EAAaC,EAAUjC,EAAQ9kC,EAAKrxF,GAAQpxC,KAAKpC,EACjF,CACA0qK,YAAYrrK,EAAMm5G,EAAImxD,EAAQ9kC,EAAKrxF,EAAQ9M,GACvC,IAAIglI,EAAW7mC,EAAMv/I,KAAKiwG,KAAKlnB,OAAQs9F,EAAcn4H,EAASluD,KAAKiwG,KAAKxrG,OAASzE,KAAK6kL,MACtF,GAAI7kL,KAAK6kL,MACD9qK,EAAOssK,GACPrmL,KAAKiwG,KAAKm1E,YAAYrrK,EAAMm5G,EAAImxD,EAAQ9kC,EAAKrxF,EAAQ9M,GACrD8xE,GAAMmzD,GACNrmL,KAAKkwG,MAAMk1E,YAAYrrK,EAAMm5G,EAAImxD,EAAQ+B,EAAUC,EAAajlI,OAEnE,CACD,IAAI48F,EAAMh+I,KAAKo8I,OAAOiqC,EAAaxC,GAAUC,MAAOO,EAAQ9kC,EAAKrxF,GAC7Dn0C,EAAOikI,EAAIjkI,MACX/Z,KAAKiwG,KAAKm1E,YAAYrrK,EAAMikI,EAAIjkI,KAAO,EAAGsqK,EAAQ9kC,EAAKrxF,EAAQ9M,GAC/D48F,EAAI9qB,IAAMn5G,GAAQikI,EAAIjkI,MAAQm5G,GAC9B9xE,EAAE48F,GACF9qB,EAAK8qB,EAAI9qB,IACTlzH,KAAKkwG,MAAMk1E,YAAYpnC,EAAI9qB,GAAK,EAAGA,EAAImxD,EAAQ+B,EAAUC,EAAajlI,EAAC,CAEnF,CACAx3C,QAAQmQ,EAAMm5G,EAAIn+E,GACd,IAAIwxI,EAAavmL,KAAKiwG,KAAKxrG,OAASzE,KAAK6kL,MACzC,GAAI3xD,EAAKqzD,EACL,OAAOvmL,KAAKwmL,SAASxmL,KAAKiwG,KAAKrmG,QAAQmQ,EAAMm5G,EAAIn+E,GAAQ/0C,KAAKkwG,OAClE,GAAIn2F,EAAO/Z,KAAKiwG,KAAKxrG,OACjB,OAAOzE,KAAKwmL,SAASxmL,KAAKiwG,KAAMjwG,KAAKkwG,MAAMtmG,QAAQmQ,EAAOwsK,EAAYrzD,EAAKqzD,EAAYxxI,IAC3F,IAAIzjC,EAAS,GACTyI,EAAO,GACP/Z,KAAKskL,cAAcvqK,EAAMzI,GAC7B,IAAI2+F,EAAO3+F,EAAO7M,OAClB,QAAS5D,KAAQk0C,EACbzjC,EAAO1I,KAAK/H,GAGhB,GAFIkZ,EAAO,GACP0sK,GAAUn1K,EAAQ2+F,EAAO,GACzBijB,EAAKlzH,KAAKyE,OAAQ,CAClB,IAAIyrG,EAAQ5+F,EAAO7M,OACnBzE,KAAKukL,eAAerxD,EAAI5hH,GACxBm1K,GAAUn1K,EAAQ4+F,EAAK,CAE3B,OAAOg0E,GAAU7sK,GAAG/F,EACxB,CACAgzK,cAAcpxD,EAAI5hH,GACd,IAAI2+F,EAAOjwG,KAAKiwG,KAAKxrG,OACrB,GAAIyuH,GAAMjjB,EACN,OAAOjwG,KAAKiwG,KAAKq0E,cAAcpxD,EAAI5hH,GACvCA,EAAO1I,KAAK5I,KAAKiwG,MACbjwG,KAAK6kL,QACL50E,IACIijB,GAAMjjB,GACN3+F,EAAO1I,KAAK,OAEhBsqH,EAAKjjB,GACLjwG,KAAKkwG,MAAMo0E,cAAcpxD,EAAKjjB,EAAM3+F,EAC5C,CACAizK,eAAexqK,EAAMzI,GACjB,IAAI2+F,EAAOjwG,KAAKiwG,KAAKxrG,OAAQyrG,EAAQD,EAAOjwG,KAAK6kL,MACjD,GAAI9qK,GAAQm2F,EACR,OAAOlwG,KAAKkwG,MAAMq0E,eAAexqK,EAAOm2F,EAAO5+F,GAC/CyI,EAAOk2F,GACPjwG,KAAKiwG,KAAKs0E,eAAexqK,EAAMzI,GAC/BtR,KAAK6kL,OAAS9qK,EAAOm2F,GACrB5+F,EAAO1I,KAAK,MAChB0I,EAAO1I,KAAK5I,KAAKkwG,MACrB,CACAs2E,SAASv2E,EAAMC,GACX,OAAID,EAAK7qC,KAAO,EAAI8qC,EAAM9qC,MAAQ8qC,EAAM9qC,KAAO,EAAI6qC,EAAK7qC,KAC7C8+G,GAAU7sK,GAAGrX,KAAK6kL,MAAQ,CAAC50E,EAAM,KAAMC,GAAS,CAACD,EAAMC,KAClElwG,KAAKiwG,KAAOA,EACZjwG,KAAKkwG,MAAQA,EACblwG,KAAK+oF,OAASknB,EAAKlnB,OAASmnB,EAAMnnB,OAClC/oF,KAAKmkL,SAAWl0E,EAAKk0E,UAAYj0E,EAAMi0E,SACvCnkL,KAAKolE,KAAO6qC,EAAK7qC,KAAO8qC,EAAM9qC,KAC9BplE,KAAKyE,OAASwrG,EAAKxrG,OAASzE,KAAK6kL,MAAQ30E,EAAMzrG,OACxCzE,KACX,CACA2kL,aAAaN,EAAQn2H,EAAS,EAAG01F,GAAQ,EAAO0hC,GAC5C,IAAMr1E,OAAMC,SAAUlwG,KAAMumL,EAAar4H,EAAS+hD,EAAKxrG,OAASzE,KAAK6kL,MAAO6B,EAAY,KASxF,OARIpB,GAAYA,EAASvrK,MAAQm0C,EAAS+hD,EAAKxrG,QAAU6gL,EAAS7B,KAC9DiD,EAAYz2E,EAAOA,EAAK00E,aAAaN,EAAQn2H,EAAQ01F,EAAO0hC,GAE5Dr1E,EAAK00E,aAAaN,EAAQn2H,EAAQ01F,GAClC0hC,GAAYA,EAASvrK,MAAQwsK,EAAar2E,EAAMzrG,QAAU6gL,EAAS7B,KACnEiD,EAAYx2E,EAAQA,EAAMy0E,aAAaN,EAAQkC,EAAY3iC,EAAO0hC,GAElEp1E,EAAMy0E,aAAaN,EAAQkC,EAAY3iC,GACvC8iC,EACO1mL,KAAKwmL,SAASv2E,EAAMC,IAC/BlwG,KAAK+oF,OAAS/oF,KAAKiwG,KAAKlnB,OAAS/oF,KAAKkwG,MAAMnnB,OAC5C/oF,KAAKmkL,UAAW,EACTnkL,KACX,CACAsW,WAAa,OAAOtW,KAAKiwG,MAAQjwG,KAAK6kL,MAAQ,IAAM,KAAO7kL,KAAKkwG,KAAO,EAE3E,SAASu2E,GAAU1xI,EAAO4xI,GACtB,IAAIxkC,EAAQob,EACS,MAAjBxoH,EAAM4xI,KACLxkC,EAASptG,EAAM4xI,EAAS,cAAejB,KACvCnoB,EAAQxoH,EAAM4xI,EAAS,cAAejB,IACvC3wI,EAAM5jC,OAAOw1K,EAAS,EAAG,EAAG,IAAIjB,GAAavjC,EAAO19I,OAAS,EAAI84J,EAAM94J,QAC/E,CAEA,MAAMigL,GACF7kL,YAAYi0C,EAAKuwI,GACbrkL,KAAK8zC,IAAMA,EACX9zC,KAAKqkL,OAASA,EACdrkL,KAAK+0C,MAAQ,GACb/0C,KAAKuzK,WAAY,EACjBvzK,KAAK4mL,SAAU,EACf5mL,KAAK6mL,SAAW,KAChB7mL,KAAK8mL,UAAYhzI,CACrB,CACIizI,gBACA,OAAO/mL,KAAK6mL,UAAY7mL,KAAK+0C,MAAM/0C,KAAK+0C,MAAMtwC,OAAS,IAAMzE,KAAK6mL,QACtE,CACAjzB,KAAK2N,EAAOruC,GACR,GAAIlzH,KAAKuzK,WAAY,EAAI,CACrB,IAAI/nK,EAAM0f,KAAK4lC,IAAIoiE,EAAIlzH,KAAK4mL,SAAUhzJ,EAAO5zB,KAAK+0C,MAAM/0C,KAAK+0C,MAAMtwC,OAAS,GACxEmvB,aAAgBgxJ,GAChBhxJ,EAAKnvB,QAAU+G,EAAMxL,KAAK8zC,KACrBtoC,EAAMxL,KAAK8zC,MAAQ9zC,KAAK+mL,YAC7B/mL,KAAK+0C,MAAMnsC,KAAK,IAAIg8K,GAAcp5K,EAAMxL,KAAK8zC,KAAK,IACtD9zC,KAAK8mL,UAAYt7K,EACb0nH,EAAK1nH,IACLxL,KAAK+0C,MAAMnsC,KAAK,MAChB5I,KAAK8mL,YACL9mL,KAAKuzK,WAAY,GAGzBvzK,KAAK8zC,IAAMo/E,CACf,CACAo9B,MAAMv2I,EAAMm5G,EAAI8wC,GACZ,GAAIjqJ,EAAOm5G,GAAM8wC,EAAKyB,eAAgB,CAClC,IAAI18E,EAASi7E,EAAK3B,OAAS2B,EAAK3B,OAAO6C,gBAAkB,EACrDugB,EAASzhB,EAAK3B,OAAS2B,EAAK3B,OAAO8C,WAAa,EAChDp8E,EAAS,IACTA,EAAS/oF,KAAKqkL,OAAO9f,YACzB,IAAIh0I,EAAM2iG,EAAKn5G,EACXiqJ,EAAKc,MACL9kK,KAAKgnL,SAAS,IAAIhC,GAAez0J,EAAKw4D,EAAQi7E,KAEzCzzI,GAAOk1J,GAAU18F,GAxCT,IAyCb/oF,KAAK+jK,YAAYh7E,EAAQ08F,EAAQl1J,EAAG,MAGnC2iG,EAAKn5G,GACV/Z,KAAK4zJ,KAAK75I,EAAMm5G,GAEhBlzH,KAAK4mL,SAAU,GAAM5mL,KAAK4mL,QAAU5mL,KAAK8zC,MACzC9zC,KAAK4mL,QAAU5mL,KAAKqkL,OAAOnjL,IAAIk7I,OAAOp8I,KAAK8zC,KAAKo/E,GACxD,CACA+zD,YACI,GAAIjnL,KAAKuzK,WAAY,EACjB,OACJ,IAAMx5J,OAAMm5G,MAAOlzH,KAAKqkL,OAAOnjL,IAAIk7I,OAAOp8I,KAAK8zC,KAC/C9zC,KAAKuzK,UAAYx5J,EACjB/Z,KAAK4mL,QAAU1zD,EACXlzH,KAAK8mL,UAAY/sK,KACb/Z,KAAK8mL,UAAY/sK,EAAO,GAA0C,MAArC/Z,KAAK+0C,MAAM/0C,KAAK+0C,MAAMtwC,OAAS,KAC5DzE,KAAK+0C,MAAMnsC,KAAK5I,KAAKknL,aAAalnL,KAAK8mL,UAAW/sK,EAAO,IAC7D/Z,KAAK+0C,MAAMnsC,KAAK,OAEhB5I,KAAK8zC,IAAM/5B,GACX/Z,KAAK+0C,MAAMnsC,KAAK,IAAIg8K,GAAc5kL,KAAK8zC,IAAM/5B,GAAM,IACvD/Z,KAAK8mL,UAAY9mL,KAAK8zC,GAC1B,CACAozI,aAAantK,EAAMm5G,GACf,IAAIi0D,EAAM,IAAIzB,GAAaxyD,EAAKn5G,GAChC,OAAI/Z,KAAKqkL,OAAOnjL,IAAIk7I,OAAOriI,GAAMm5G,IAAMA,IACnCi0D,EAAI35K,OAAS,GACV25K,CACX,CACAC,aACIpnL,KAAKinL,YACL,IAAIrzJ,EAAO5zB,KAAK+0C,MAAMtwC,OAASzE,KAAK+0C,MAAM/0C,KAAK+0C,MAAMtwC,OAAS,GAAK,KACnE,GAAImvB,aAAgBgxJ,GAChB,OAAOhxJ,EACX,IAAIta,EAAO,IAAIsrK,GAAc,GAAG,GAChC,YAAK7vI,MAAMnsC,KAAK0Q,GACTA,CACX,CACA0tK,SAASliB,GACL9kK,KAAKinL,YACL,IAAIjjB,EAAOc,EAAMd,KACbA,GAAQA,EAAK5T,UAAY,IAAMpwJ,KAAK+mL,WACpC/mL,KAAKonL,aACTpnL,KAAK+0C,MAAMnsC,KAAKk8J,GAChB9kK,KAAK8mL,UAAY9mL,KAAK8zC,IAAM9zC,KAAK8zC,IAAMgxH,EAAMrgK,OACzCu/J,GAAQA,EAAK3T,QAAU,IACvBrwJ,KAAK6mL,SAAW/hB,EACxB,CACAf,YAAYh7E,EAAQ08F,EAAQhhL,GACxB,IAAI6U,EAAOtZ,KAAKonL,aAChB9tK,EAAK7U,QAAUA,EACf6U,EAAKisK,WAAa9gL,EAClB6U,EAAKksK,aAAet6J,KAAKC,IAAI7R,EAAKksK,aAAcz8F,GAChDzvE,EAAKmsK,QAAUA,EACfzlL,KAAK8mL,UAAY9mL,KAAK8zC,IAAM9zC,KAAK8zC,IAAMrvC,CAC3C,CACAqrD,OAAO/1C,GACH,IAAI6Z,EAA4B,GAArB5zB,KAAK+0C,MAAMtwC,OAAc,KAAOzE,KAAK+0C,MAAM/0C,KAAK+0C,MAAMtwC,OAAS,KACtEzE,KAAKuzK,WAAY,IAAQ3/I,aAAgBgxJ,IAAmB5kL,KAAK+mL,WAE5D/mL,KAAK8mL,UAAY9mL,KAAK8zC,KAAe,MAARlgB,IAClC5zB,KAAK+0C,MAAMnsC,KAAK5I,KAAKknL,aAAalnL,KAAK8mL,UAAW9mL,KAAK8zC,MAFvD9zC,KAAK+0C,MAAMnsC,KAAK,IAAIg8K,GAAc,GAAG,IAGzC,IAAI9wI,EAAM/5B,EACV,QAASlZ,KAAQb,KAAK+0C,MACdl0C,aAAgB+jL,IAChB/jL,EAAK8jL,aAAa3kL,KAAKqkL,OAAQvwI,GACnCA,GAAOjzC,EAAOA,EAAK4D,OAAS,EAEhC,OAAOzE,KAAK+0C,KAChB,CAMA50C,aAAakkL,EAAQ7c,EAAaztJ,EAAMm5G,GACpC,IAAIplD,EAAU,IAAI42G,GAAY3qK,EAAMsqK,GACpCjzB,gBAAeoW,EAAaztJ,EAAMm5G,EAAIplD,EAAS,GACxCA,EAAQhe,OAAO/1C,EAC1B,EAOJ,MAAMstK,GACFxnL,cACIG,KAAK2oC,QAAU,EACnB,CACAitH,eAAiB,CACjBD,aAAa57I,EAAMm5G,EAAIliG,EAAGC,IAClBlX,EAAOm5G,GAAMliG,GAAKA,EAAEy0I,gBAAkBx0I,GAAKA,EAAEw0I,iBAC7ClgB,GAASxrI,EAAMm5G,EAAIlzH,KAAK2oC,QAAS,EACzC,EAGJ,SAAS2+I,GAAkBljL,EAAKwzK,GAC5B,IAAI1e,EAAO90J,EAAIy+J,wBACX3hK,EAAMkD,EAAIgzJ,cAAeC,EAAMn2J,EAAIo2J,aAAet1J,OAClDiuG,EAAO/kF,KAAKC,IAAI,EAAG+tI,EAAKjpD,MAAOC,EAAQhlF,KAAK4lC,IAAIumG,EAAIkC,WAAYL,EAAKhpD,OACrEqvC,EAAMr0H,KAAKC,IAAI,EAAG+tI,EAAK3Z,KAAM4Z,EAASjuI,KAAK4lC,IAAIumG,EAAImC,YAAaN,EAAKC,QACzE,QAAS9sJ,EAASjI,EAAItD,WAAYuL,GAAUA,GAAUnL,EAAIe,MACtD,GAAuB,GAAnBoK,EAAO5K,SAAe,CACtB,IAAIi4J,EAAMrtJ,EACNtF,EAAQ/E,OAAO0gE,iBAAiBg3F,GACpC,IAAKA,EAAImC,aAAenC,EAAIoC,cAAgBpC,EAAI6b,YAAc7b,EAAIua,cAC5C,WAAlBltK,EAAMwgL,SAAuB,CAC7B,IAAIC,EAAa9tB,EAAImJ,wBACrB5yD,EAAO/kF,KAAKC,IAAI8kF,EAAMu3E,EAAWv3E,MACjCC,EAAQhlF,KAAK4lC,IAAIo/C,EAAOs3E,EAAWt3E,OACnCqvC,EAAMr0H,KAAKC,IAAIo0H,EAAKioC,EAAWjoC,KAC/B4Z,EAAS9sJ,GAAUjI,EAAItD,WAAa0mL,EAAWruB,OAASjuI,KAAK4lC,IAAIqoG,EAAQquB,EAAWruB,OAAM,CAE9F9sJ,EAA2B,YAAlBtF,EAAMu7B,UAA4C,SAAlBv7B,EAAMu7B,SAAsBo3H,EAAI+tB,aAAe/tB,EAAI54J,mBAEpE,IAAnBuL,EAAO5K,SAIZ,MAHA4K,EAASA,EAAOpE,IAGhB,CAGR,MAAO,CAAEgoG,KAAMA,EAAOipD,EAAKjpD,KAAMC,MAAOhlF,KAAKC,IAAI8kF,EAAMC,GAASgpD,EAAKjpD,KACjEsvC,IAAKA,GAAO2Z,EAAK3Z,IAAMq4B,GAAaze,OAAQjuI,KAAKC,IAAIo0H,EAAK4Z,IAAWD,EAAK3Z,IAAMq4B,GACxF,CACA,SAAS8P,GAAetjL,EAAKwzK,GACzB,IAAI1e,EAAO90J,EAAIy+J,wBACf,MAAO,CAAE5yD,KAAM,EAAGC,MAAOgpD,EAAKhpD,MAAQgpD,EAAKjpD,KACvCsvC,IAAKq4B,EAAYze,OAAQD,EAAKC,QAAUD,EAAK3Z,IAAMq4B,GAC3D,CAIA,MAAM+P,GACF9nL,YAAYka,EAAMm5G,EAAI9tD,GAClBplE,KAAK+Z,KAAOA,EACZ/Z,KAAKkzH,GAAKA,EACVlzH,KAAKolE,KAAOA,CAChB,CACAjlE,YAAY6wB,EAAGC,GACX,GAAID,EAAEvsB,QAAUwsB,EAAExsB,OACd,OAAO,EACX,QAASD,EAAI,EAAGA,EAAIwsB,EAAEvsB,OAAQD,IAAK,CAC/B,IAAIojL,EAAK52J,EAAExsB,GAAIqjL,EAAK52J,EAAEzsB,GACtB,GAAIojL,EAAG7tK,MAAQ8tK,EAAG9tK,MAAQ6tK,EAAG10D,IAAM20D,EAAG30D,IAAM00D,EAAGxiH,MAAQyiH,EAAGziH,KACtD,OAAO,EAEf,OAAO,CACX,CACA0iH,KAAKpjB,EAAWqjB,GACZ,OAAOviB,GAAW57J,QAAQ,CACtBy4J,OAAQ,IAAI2lB,GAAchoL,KAAKolE,MAAQ2iH,EAAWrjB,EAAU7K,OAAS6K,EAAU/K,QAASouB,KACzF7iC,MAAMllJ,KAAK+Z,KAAM/Z,KAAKkzH,GAC7B,EAEJ,MAAM80D,WAAsB/iB,GACxBplK,YAAYulE,EAAM6iH,GACdnoL,QACAE,KAAKolE,KAAOA,EACZplE,KAAKioL,SAAWA,CACpB,CACAtrC,GAAGniI,GAAS,OAAOA,EAAM4qD,MAAQplE,KAAKolE,MAAQ5qD,EAAMytK,UAAYjoL,KAAKioL,QAAU,CAC/EzlB,QACI,IAAI9I,EAAMr4J,SAASL,cAAc,OACjC,OAAIhB,KAAKioL,SACLvuB,EAAI3yJ,MAAMgiF,OAAS/oF,KAAKolE,KAAO,MAG/Bs0F,EAAI3yJ,MAAM0xD,MAAQz4D,KAAKolE,KAAO,KAC9Bs0F,EAAI3yJ,MAAMgiF,OAAS,MACnB2wE,EAAI3yJ,MAAMk6E,QAAU,gBAEjBy4E,CACX,CACIwL,sBAAoB,OAAOllK,KAAKioL,SAAWjoL,KAAKolE,MAAO,CAAI,EAEnE,MAAM8iH,GACFroL,YAAY6oB,GACR1oB,KAAK0oB,MAAQA,EAEb1oB,KAAKmoL,cAAgB,CAAEl4E,KAAM,EAAGC,MAAOluG,OAAOu3J,WAAYha,IAAK,EAAG4Z,OAAQ,GAC1En5J,KAAKooL,QAAS,EACdpoL,KAAK43K,WAAa,EAClB53K,KAAKqoL,cAAgB,EACrBroL,KAAKsoL,gBAAkB,EACvBtoL,KAAKuoL,iBAAmB,EACxBvoL,KAAKwoL,aAAe,EACpBxoL,KAAKyoL,YAAc,EACnBzoL,KAAK26J,UAAY,EACjB36J,KAAK0oL,kBAAmB,EAGxB1oL,KAAK25J,OAAS,EACd35J,KAAK65J,OAAS,EAGd75J,KAAK2oL,gBAAkB,EAGvB3oL,KAAK4oL,oBAAqB,EAE1B5oL,KAAK6oL,OAASC,GACd9oL,KAAK+oL,aAAe,KAEpB/oL,KAAKgpL,UAAW,EAGhBhpL,KAAK+wK,oBAAqB,EAC1B/wK,KAAKipL,qBAAuBthB,GAAUC,IACtC5nK,KAAKkpL,cAAgB,GASrBlpL,KAAKmpL,wBAAyB,EAC9B,IAAIC,EAAgB1gK,EAAMm+H,MAAMmmB,IAAmBp9H,KAAKr0B,GAAiB,mBAALA,GAA8B,mBAAXA,EAAEwmJ,OACzF/hK,KAAKykK,aAAe,IAAIge,GAAa2G,GACrCppL,KAAKqpL,UAAY3gK,EAAMm+H,MAAM2gB,IAAazvJ,OAAOwsB,GAAiB,mBAALA,GAC7DvkC,KAAKspL,UAAYpF,GAAUp9J,QAAQ09J,aAAaxkL,KAAKqpL,UAAWltC,SAAYn8I,KAAKykK,aAAaqe,OAAOp6J,EAAMxnB,KAAM,CAAC,IAAI0sK,GAAa,EAAG,EAAG,EAAGllJ,EAAMxnB,IAAIuD,UACtJ,QAASD,EAAI,EAAGA,EAAI,IAChBxE,KAAKsxK,SAAWtxK,KAAKupL,YAAY,EAAG,MAC/BvpL,KAAKwpL,qBAFShlL,KAKvBxE,KAAKypL,sBACLzpL,KAAK0pL,SAAW1pL,KAAK2pL,eAAe,IACpC3pL,KAAKi1K,YAAczP,GAAWh/J,IAAIxG,KAAK0pL,SAASniL,IAAI4/K,GAAOA,EAAIW,KAAK9nL,MAAM,KAC1EA,KAAK4pL,sBACT,CACAJ,oBACI,IAAI5U,EAAY,CAAC50K,KAAKsxK,WAAajsB,QAASrlJ,KAAK0oB,MAAMm9H,UACvD,QAASrhJ,EAAI,EAAGA,GAAK,EAAGA,IAAK,CACzB,IAAIsvC,EAAMtvC,EAAI6gJ,EAAKx8I,KAAOw8I,EAAK9iH,OAC/B,IAAKqyI,EAAUhlI,KAAK,EAAG71B,OAAMm5G,QAASp/E,GAAO/5B,GAAQ+5B,GAAOo/E,GAAK,CAC7D,IAAMn5G,OAAMm5G,MAAOlzH,KAAK60K,YAAY/gI,GACpC8gI,EAAUhsK,KAAK,IAAIihL,GAAS9vK,EAAMm5G,GAAG,EAG7C,YAAK0hD,UAAYA,EAAU5+I,KAAK,CAAChF,EAAGC,IAAMD,EAAEjX,KAAOkX,EAAElX,MAC9C/Z,KAAK8pL,cAChB,CACAA,eACI,IAAIjB,EAAS7oL,KAAK6oL,OAClB,YAAKA,OAAS7oL,KAAKspL,UAAUvgG,QAAU,IAAgC+/F,GACnE,IAAIiB,GAAU/pL,KAAKykK,aAAczkK,KAAKspL,UAAWtpL,KAAK40K,WACnDiU,EAAOlsC,GAAG38I,KAAK6oL,QAAU,EAAI,CACxC,CACAY,sBACIzpL,KAAKgqL,cAAgB,GACrBhqL,KAAKspL,UAAUlE,YAAYplL,KAAKsxK,SAASv3J,KAAM/Z,KAAKsxK,SAASp+C,GAAIlzH,KAAKykK,aAAaqe,OAAO9iL,KAAK0oB,MAAMxnB,KAAM,EAAG,EAAG4jK,IAC7G9kK,KAAKgqL,cAAcphL,KAAKqhL,GAAWnlB,EAAO9kK,KAAK6oL,QAAO,EAE9D,CACAvuK,OAAOA,EAAQyuK,EAAe,MAC1B/oL,KAAK0oB,MAAQpO,EAAOoO,MACpB,IAAIwhK,EAAWlqL,KAAKqpL,UACpBrpL,KAAKqpL,UAAYrpL,KAAK0oB,MAAMm+H,MAAM2gB,IAAazvJ,OAAOwsB,GAAiB,mBAALA,GAClE,IACI4lJ,EAAgBvc,GAAaiD,iBADZv2J,EAAO8zJ,cArLpC,SAASgc,GAA0Bp5J,EAAGC,EAAG6+E,GACrC,IAAI6gE,EAAO,IAAI0W,GACfj2B,kBAAiBpgI,EAAGC,EAAG6+E,EAAM6gE,EAAM,GAC5BA,EAAKhoI,OAChB,CAkL0EyhJ,CAA0BF,EAAUlqL,KAAKqpL,UAAW/uK,EAASA,EAAOquB,QAAU+5G,SAAgB1iJ,KAAK0oB,MAAMxnB,IAAIuD,UAC3K4lL,EAAarqL,KAAKspL,UAAUvgG,OAC5BuhG,EAAetqL,KAAK0oL,iBAAmB,KAAO1oL,KAAKuqL,eAAevqL,KAAK26J,WAC3E36J,KAAKspL,UAAYtpL,KAAKspL,UAAU9E,aAAaxkL,KAAKqpL,UAAW/uK,EAAOuxI,WAAW3qJ,IAAKlB,KAAKykK,aAAaqe,OAAO9iL,KAAK0oB,MAAMxnB,KAAMipL,GAC1HnqL,KAAKspL,UAAUvgG,QAAUshG,IACzB/vK,EAAO9M,OAAS,GAChB88K,GACAtqL,KAAK2oL,gBAAkBruK,EAAOquB,QAAQ05G,OAAOioC,EAAavwK,MAAM,GAChE/Z,KAAK4oL,mBAAqB0B,EAAa/qC,MAGvCv/I,KAAK2oL,iBAAkB,EACvB3oL,KAAK4oL,mBAAqB5oL,KAAKspL,UAAUvgG,QAE7C,IAAIuoF,EAAW6Y,EAAc1lL,OAASzE,KAAKwqL,YAAYxqL,KAAKsxK,SAAUh3J,EAAOquB,SAAW3oC,KAAKsxK,UACzFyX,IAAiBA,EAAa7jC,MAAMr8I,KAAOyoK,EAASv3J,MAAQgvK,EAAa7jC,MAAMr8I,KAAOyoK,EAASp+C,MAC9FlzH,KAAKyqL,sBAAsBnZ,MAC5BA,EAAWtxK,KAAKupL,YAAY,EAAGR,IACnC,IAAI2B,EAAiBpZ,EAASv3J,MAAQ/Z,KAAKsxK,SAASv3J,MAAQu3J,EAASp+C,IAAMlzH,KAAKsxK,SAASp+C,GACzFlzH,KAAKsxK,SAAWA,EAChBh3J,EAAO9M,OAASxN,KAAKwpL,qBACjBkB,IAAmBpwK,EAAOquB,QAAQ7hB,OAAyB,EAAfxM,EAAO9M,QACnDxN,KAAKypL,uBACLzpL,KAAK0pL,SAASjlL,QAAUzE,KAAKsxK,SAASp+C,GAAKlzH,KAAKsxK,SAASv3J,KAAQ,MACjE/Z,KAAK2qL,eAAe3qL,KAAK2pL,eAAe3pL,KAAK4qL,YAAY5qL,KAAK0pL,SAAUpvK,EAAOquB,WACnFruB,EAAO9M,OAASxN,KAAK4pL,uBACjBb,IACA/oL,KAAK+oL,aAAeA,IACnB/oL,KAAKmpL,wBAA0B7uK,EAAOm0J,cAAgBn0J,EAAOqiJ,KAAKkc,cACnEv+J,EAAOoO,MAAMm9H,UAAUR,KAAKv+H,OAASxM,EAAOoO,MAAMm9H,UAAUR,KAAK/C,QAChEhoI,EAAOoO,MAAMm+H,MAAM6kB,MACpB1rK,KAAKmpL,wBAAyB,EACtC,CACA1U,QAAQ9X,GACJ,IAAIv4J,EAAMu4J,EAAK4S,WAAYxoK,EAAQ/E,OAAO0gE,iBAAiBt+D,GACvDigL,EAASrkL,KAAKykK,aACdue,EAAaj8K,EAAMi8K,WACvBhjL,KAAKipL,qBAA0C,OAAnBliL,EAAM0hK,UAAqBd,GAAUE,IAAMF,GAAUC,IACjF,IAAIyb,EAAUrjL,KAAKykK,aAAase,uBAAuBC,GACnD6H,EAAUzmL,EAAIy+J,wBACdioB,EAAiBzH,GAAWrjL,KAAK+wK,oBAAsB/wK,KAAKuoL,kBAAoBsC,EAAQ9hG,OAC5F/oF,KAAKuoL,iBAAmBsC,EAAQ9hG,OAChC/oF,KAAK+wK,oBAAqB,EAC1B,IAAIz/J,EAAS,EAAGksJ,EAAO,EACvB,GAAIqtB,EAAQpyH,OAASoyH,EAAQ9hG,OAAQ,CACjC,IAAM4wE,UAAQE,WAAWJ,GAASr1J,EAAKymL,IACnClxB,GAAS,MAAQzuI,KAAK0B,IAAI5sB,KAAK25J,OAASA,IAAU,MAClDE,GAAS,MAAQ3uI,KAAK0B,IAAI5sB,KAAK65J,OAASA,IAAU,QAClD75J,KAAK25J,OAASA,GACd35J,KAAK65J,OAASA,GACdvoJ,GAAU,EACV+xK,EAAUyH,GAAiB,GAInC,IAAIlT,GAAc/3B,SAAS94I,EAAM6wK,aAAe,GAAK53K,KAAK65J,OACtDwuB,GAAiBxoC,SAAS94I,EAAMshL,gBAAkB,GAAKroL,KAAK65J,QAC5D75J,KAAK43K,YAAcA,GAAc53K,KAAKqoL,eAAiBA,KACvDroL,KAAK43K,WAAaA,EAClB53K,KAAKqoL,cAAgBA,EACrB/2K,GAAU,IAEVtR,KAAKyoL,aAAe9rB,EAAKwX,UAAUF,cAC/BoQ,EAAOxL,eACPiS,GAAiB,GACrB9qL,KAAKyoL,YAAc9rB,EAAKwX,UAAUF,YAClC3iK,GAAU,GAEd,IAAIqpJ,GAAYgC,EAAKwX,UAAUxZ,UAAY36J,KAAK65J,OAC5C75J,KAAK26J,WAAaA,KAClB36J,KAAK4oL,oBAAqB,EAC1B5oL,KAAK26J,UAAYA,IAErB36J,KAAK0oL,iBAAmB9sB,GAAmBe,EAAKwX,WAEhD,IAAIgU,IAAiBnoL,KAAKgpL,SAAWtB,GAAiBJ,IAAmBljL,EAAKpE,KAAK43K,YAC/EmT,GAAO5C,GAAc5oC,IAAMv/I,KAAKmoL,cAAc5oC,IAAKyrC,GAAU7C,GAAchvB,OAASn5J,KAAKmoL,cAAchvB,OAC3Gn5J,KAAKmoL,cAAgBA,GACrB,IAAIC,GAASpoL,KAAKmoL,cAAchvB,OAASn5J,KAAKmoL,cAAc5oC,KAAOv/I,KAAKmoL,cAAcj4E,MAAQlwG,KAAKmoL,cAAcl4E,KAMjH,GALIm4E,IAAUpoL,KAAKooL,SACfpoL,KAAKooL,OAASA,GACVA,KACA0C,GAAiB,KAEpB9qL,KAAKooL,SAAWpoL,KAAK+oL,aACtB,OAAO,EACX,IAAI/U,GAAe6W,EAAQpyH,MAM3B,IALIz4D,KAAKsoL,iBAAmBtU,IAAgBh0K,KAAKwoL,cAAgB7rB,EAAKwX,UAAUrY,gBAC5E97J,KAAKsoL,gBAAkBuC,EAAQpyH,MAC/Bz4D,KAAKwoL,aAAe7rB,EAAKwX,UAAUrY,aACnCxqJ,GAAU,GAEVw5K,EAAgB,CAChB,IAAI5H,GAAcvmB,EAAKkI,QAAQkP,0BAA0B/zK,KAAKsxK,UAG9D,GAFI+S,EAAOpB,sBAAsBC,MAC7BG,GAAU,GACVA,GAAWgB,EAAOxL,cAAgB3tJ,KAAK0B,IAAIonJ,GAAeh0K,KAAKsoL,iBAAmBjE,EAAO7f,UAAW,CACpG,IAAMD,cAAYC,aAAWH,eAAe1H,EAAKkI,QAAQT,kBACzDif,EAAU9e,GAAa,GAAK8f,EAAOhB,QAAQL,EAAYze,GAAYC,GAAWH,GAAY2P,GAAexP,GAAW0e,IAChHG,IACA1mB,EAAKkI,QAAQmK,SAAW,EACxB19J,GAAU,GAGdy5K,GAAO,GAAKC,GAAU,EACtBxtB,EAAOtyI,KAAKC,IAAI4/J,GAAMC,IACjBD,GAAO,GAAKC,GAAU,IAC3BxtB,EAAOtyI,KAAK4lC,IAAIi6H,GAAMC,KAC1B3G,EAAO/V,eAAgB,EACvB,QAASjV,MAAMr5J,KAAK40K,UAAW,CAC3B,IAAI4O,GAAUnqB,GAAGt/I,MAAQ/Z,KAAKsxK,SAASv3J,KAAOmpK,GAAcvmB,EAAKkI,QAAQkP,0BAA0B1a,IACnGr5J,KAAKspL,WAAajG,EAAUa,GAAUp9J,QAAQ09J,aAAaxkL,KAAKqpL,UAAWltC,SAAYn8I,KAAKykK,aAAc,CAAC,IAAImJ,GAAa,EAAG,EAAG,EAAGjR,EAAKj0I,MAAMxnB,IAAIuD,UAAYzE,KAAKspL,WAAW3E,aAAaN,EAAQ,EAAGhB,EAAS,IAAIE,GAAgBlqB,GAAGt/I,KAAMypK,IAAQ,CAEtPa,EAAO/V,gBACPh9J,GAAU,GAElB,IAAIo5K,IAAkB1qL,KAAKyqL,sBAAsBzqL,KAAKsxK,SAAU9T,IAC5Dx9J,KAAK+oL,eAAiB/oL,KAAK+oL,aAAa7jC,MAAMr8I,KAAO7I,KAAKsxK,SAASv3J,MAC/D/Z,KAAK+oL,aAAa7jC,MAAMr8I,KAAO7I,KAAKsxK,SAASp+C,IACrD,OAAIw3D,KACa,EAATp5K,IACAA,GAAUtR,KAAK8pL,gBACnB9pL,KAAKsxK,SAAWtxK,KAAKupL,YAAY/rB,EAAMx9J,KAAK+oL,cAC5Cz3K,GAAUtR,KAAKwpL,sBAEL,EAATl4K,GAAuCo5K,KACxC1qL,KAAKypL,uBACLzpL,KAAK0pL,SAASjlL,QAAUzE,KAAKsxK,SAASp+C,GAAKlzH,KAAKsxK,SAASv3J,KAAQ,MACjE/Z,KAAK2qL,eAAe3qL,KAAK2pL,eAAetG,EAAU,GAAKrjL,KAAK0pL,SAAU/sB,IAC1ErrJ,GAAUtR,KAAK4pL,uBACX5pL,KAAKmpL,yBACLnpL,KAAKmpL,wBAAyB,EAK9BxsB,EAAKkI,QAAQwO,sBAEV/hK,CACX,CACI25K,iBAAe,OAAOjrL,KAAK6oL,OAAOqC,QAAQlrL,KAAKmoL,cAAc5oC,IAAM,CACnE4rC,oBAAkB,OAAOnrL,KAAK6oL,OAAOqC,QAAQlrL,KAAKmoL,cAAchvB,OAAS,CAC7EowB,YAAY/rB,EAAMurB,GAId,IAAIqC,EAAY,GAAMlgK,KAAKC,KAAI,GAAMD,KAAK4lC,IAAI,GAAK0sG,EAAO,IAAuB,IAC7Ej2J,EAAMvH,KAAKspL,UAAWjF,EAASrkL,KAAKykK,cAClCwmB,aAAYE,iBAAkBnrL,KAChCsxK,EAAW,IAAIuY,GAAStiL,EAAI60I,OAAO6uC,EAAyB,IAAZG,EAAkCvH,GAAUE,SAAUM,EAAQ,EAAG,GAAGtqK,KAAMxS,EAAI60I,OAAO+uC,EAAkC,KAAjB,EAAIC,GAAmCvH,GAAUE,SAAUM,EAAQ,EAAG,GAAGnxD,IAEnO,GAAI61D,EAAc,CACd,IAAMlgL,QAASkgL,EAAa7jC,MAC5B,GAAIr8I,EAAOyoK,EAASv3J,MAAQlR,EAAOyoK,EAASp+C,GAAI,CAC5C,IAC6Dm4D,EADzDC,EAAapgK,KAAK4lC,IAAI9wD,KAAKwoL,aAAcxoL,KAAKmoL,cAAchvB,OAASn5J,KAAKmoL,cAAc5oC,KACxFulB,EAAQv9J,EAAI60I,OAAOvzI,EAAMg7K,GAAUC,MAAOO,EAAQ,EAAG,GAErDgH,EADkB,UAAlBtC,EAAa7zF,GACH4vE,EAAMvlB,IAAMulB,EAAM3L,QAAU,EAAImyB,EAAa,EAChC,SAAlBvC,EAAa7zF,GAAkC,WAAlB6zF,EAAa7zF,GAAkBrsF,EAAOyoK,EAASv3J,KACxE+qJ,EAAMvlB,IAENulB,EAAM3L,OAASmyB,EAC5Bha,EAAW,IAAIuY,GAAStiL,EAAI60I,OAAOivC,EAAS,IAA0BxH,GAAUE,SAAUM,EAAQ,EAAG,GAAGtqK,KAAMxS,EAAI60I,OAAOivC,EAASC,EAAa,IAA0BzH,GAAUE,SAAUM,EAAQ,EAAG,GAAGnxD,GAAE,EAGrN,OAAOo+C,CACX,CACAkZ,YAAYlZ,EAAU3oI,GAClB,IAAI5uB,EAAO4uB,EAAQ05G,OAAOivB,EAASv3J,MAAM,GAAKm5G,EAAKvqF,EAAQ05G,OAAOivB,EAASp+C,GAAI,GAC/E,OAAO,IAAI22D,GAAS7pL,KAAKspL,UAAUltC,OAAOriI,EAAM8pK,GAAUC,MAAO9jL,KAAKykK,aAAc,EAAG,GAAG1qJ,KAAM/Z,KAAKspL,UAAUltC,OAAOlpB,EAAI2wD,GAAUC,MAAO9jL,KAAKykK,aAAc,EAAG,GAAGvxC,GACxK,CAGAu3D,uBAAwB1wK,OAAMm5G,MAAMsqC,EAAO,GACvC,IAAKx9J,KAAKooL,OACN,OAAO,EACX,IAAM7oC,OAAQv/I,KAAKspL,UAAUltC,OAAOriI,EAAM8pK,GAAUC,MAAO9jL,KAAKykK,aAAc,EAAG,IAC3EtL,UAAWn5J,KAAKspL,UAAUltC,OAAOlpB,EAAI2wD,GAAUC,MAAO9jL,KAAKykK,aAAc,EAAG,IAC5EwmB,aAAYE,iBAAkBnrL,KACpC,OAAgB,GAAR+Z,GAAawlI,GAAO0rC,EAAa//J,KAAKC,IAAI,GAA4BD,KAAK4lC,KAAK0sG,EAAM,SACzFtqC,GAAMlzH,KAAK0oB,MAAMxnB,IAAIuD,QAClB00J,GAAUgyB,EAAgBjgK,KAAKC,IAAI,GAA4BD,KAAK4lC,IAAI0sG,EAAM,QACjFje,EAAM0rC,EAAa,KAA4B9xB,EAASgyB,EAAgB,GACjF,CACAP,YAAYvZ,EAAM1oI,GACd,IAAK0oI,EAAK5sK,QAAUkkC,EAAQ7hB,MACxB,OAAOuqJ,EACX,IAAI7lB,EAAS,GACb,QAAS27B,KAAO9V,EACP1oI,EAAQ65G,aAAa2kC,EAAIptK,KAAMotK,EAAIj0D,KACpCs4B,EAAO5iJ,KAAK,IAAI++K,GAAQh/I,EAAQ05G,OAAO8kC,EAAIptK,MAAO4uB,EAAQ05G,OAAO8kC,EAAIj0D,IAAKi0D,EAAI/hH,OACtF,OAAOomF,CACX,CAQAm+B,eAAetxJ,EAASkzJ,GACpB,IAAIxD,EAAW/nL,KAAKykK,aAAaoU,aAC7BvS,EAASyhB,EAAW,IAA4B,IAAsByD,EAAallB,GAAU,EAAGmlB,EAAenlB,GAAU,EAE7H,GAAItmK,KAAKipL,sBAAwBthB,GAAUC,MAAQmgB,EAC/C,MAAO,GACX,IAAI1W,EAAO,GACPqa,EAAS,CAAC3xK,EAAMm5G,EAAI55G,EAAMqyK,MAC1B,GAAIz4D,EAAKn5G,EAAOyxK,EACZ,OACJ,IAAIt+B,GAAMltJ,KAAK0oB,MAAMm9H,UAAUR,KAAMumC,GAAQ,CAAC1+B,GAAInzI,MAC7CmzI,GAAIpmI,OACL8kK,GAAMhjL,KAAKskJ,GAAIh6B,IACnB,QAASp/E,MAAO83I,GACZ,GAAI93I,GAAM/5B,GAAQ+5B,GAAMo/E,EAGpB,OAFAw4D,EAAO3xK,EAAM+5B,GAAM,GAA6Bx6B,EAAMqyK,SACtDD,EAAO53I,GAAM,GAA6Bo/E,EAAI55G,EAAMqyK,IAI5D,IAAIxE,GA0KhB,SAASvnJ,GAAK8O,EAAO0S,GACjB,QAAS7kC,KAAOmyB,EACZ,GAAI0S,EAAE7kC,GACF,OAAOA,CAEnB,CA/KsBqjB,CAAKvH,EAAS8uJ,IAAOA,GAAIptK,MAAQT,EAAKS,MAAQotK,GAAIj0D,IAAM55G,EAAK45G,IACnEhoG,KAAK0B,IAAIu6J,GAAIptK,KAAOA,GAAQyxK,GAActgK,KAAK0B,IAAIu6J,GAAIj0D,GAAKA,GAAMs4D,IACjEI,GAAMh8I,KAAKkE,IAAOqzI,GAAIptK,KAAO+5B,IAAOqzI,GAAIj0D,GAAKp/E,KAClD,IAAKqzI,GAAK,CAEN,GAAIj0D,EAAK55G,EAAK45G,IAAMq4D,GAAcxD,GAC9BwD,EAAWrC,cAAct5I,KAAKh6B,IAAKA,GAAEmE,MAAQm5G,GAAMt9G,GAAEs9G,IAAMA,GAAK,CAChE,IAAIqgD,GAAYgY,EAAWM,mBAAmB5mC,UAAuB/xB,IAAK,GAAO,GAAMrqH,KACnF0qK,GAAYx5J,IACZm5G,EAAKqgD,IAEb4T,GAAM,IAAIQ,GAAQ5tK,EAAMm5G,EAAIlzH,KAAK8rL,QAAQxyK,EAAMS,EAAMm5G,EAAIy4D,IAAU,CAEvEta,EAAKzoK,KAAKu+K,GAAG,EAEb4E,EAAazyK,IACb,GAAIA,EAAK7U,OAASgnL,GAAgBnyK,EAAK3O,MAAQy6J,GAAUjpB,KACrD,OACJ,IAAIwvC,EA8GhB,SAASK,GAAcjyK,EAAMm5G,EAAIm2D,GAC7B,IAAIlmC,EAAS,GAAIrvG,EAAM/5B,EAAMmK,EAAQ,EACrCktI,gBAAei4B,EAAWtvK,EAAMm5G,EAAI,CAChC0gC,OAAS,EACTtD,MAAMv2I,EAAMm5G,GACJn5G,EAAO+5B,IACPqvG,EAAOv6I,KAAK,CAAEmR,KAAM+5B,EAAKo/E,GAAIn5G,IAC7BmK,GAASnK,EAAO+5B,GAEpBA,EAAMo/E,CACV,GACD,IACCp/E,EAAMo/E,IACNiwB,EAAOv6I,KAAK,CAAEmR,KAAM+5B,EAAKo/E,OACzBhvG,GAASgvG,EAAKp/E,GAEX,CAAE5vB,QAAOi/H,SACpB,CA/H4B6oC,CAAc1yK,EAAKS,KAAMT,EAAK45G,GAAIlzH,KAAKqpL,WACvD,GAAIsC,EAAUznK,MAAQunK,EAClB,OACJ,IACIQ,GAAUC,GADVnqL,EAAS/B,KAAK+oL,aAAe/oL,KAAK+oL,aAAa7jC,MAAMr8I,KAAO,KAEhE,GAAIk/K,EAAU,CACV,IACIxoC,GAAK4sC,GADLC,GAAgB9lB,EAAStmK,KAAKykK,aAAasU,WAAc/4K,KAAKykK,aAAaF,WAE/E,GAAc,MAAVxiK,EAAgB,CAChB,IAAIsqL,GAAaC,GAAaX,EAAW5pL,GACrCwqL,KAAcvsL,KAAKmrL,cAAgBnrL,KAAKirL,YAAc,EAAImB,IAAgB9yK,EAAKyvE,OACnFw2D,GAAM8sC,GAAaE,GACnBJ,GAAME,GAAaE,QAGnBhtC,IAAOv/I,KAAKirL,WAAa3xK,EAAKimI,IAAM6sC,IAAgB9yK,EAAKyvE,OACzDojG,IAAOnsL,KAAKmrL,cAAgB7xK,EAAKimI,IAAM6sC,IAAgB9yK,EAAKyvE,OAEhEkjG,GAAWO,GAAab,EAAWpsC,IACnC2sC,GAASM,GAAab,EAAWQ,GAAG,KAEnC,CACD,IAEIl8E,GAAMC,GAFNo0D,GAAaqnB,EAAUznK,MAAQlkB,KAAKykK,aAAaD,UACjDioB,GAAcnmB,EAAStmK,KAAKykK,aAAaD,UAE7C,GAAc,MAAVziK,EAAgB,CAChB,IAAIsqL,GAAaC,GAAaX,EAAW5pL,GACrCwqL,KAAcvsL,KAAKmoL,cAAcj4E,MAAQlwG,KAAKmoL,cAAcl4E,MAAQ,EAAIw8E,IAAenoB,GAC3Fr0D,GAAOo8E,GAAaE,GACpBr8E,GAAQm8E,GAAaE,QAGrBt8E,IAAQjwG,KAAKmoL,cAAcl4E,KAAOw8E,IAAenoB,GACjDp0D,IAASlwG,KAAKmoL,cAAcj4E,MAAQu8E,IAAenoB,GAEvD2nB,GAAWO,GAAab,EAAW17E,IACnCi8E,GAASM,GAAab,EAAWz7E,GAAK,CAEtC+7E,GAAW3yK,EAAKS,MAChB2xK,EAAOpyK,EAAKS,KAAMkyK,GAAU3yK,EAAMqyK,GAClCO,GAAS5yK,EAAK45G,IACdw4D,EAAOQ,GAAQ5yK,EAAK45G,GAAI55G,EAAMqyK,EAAS,EAE/C,QAASryK,KAAQtZ,KAAKgqL,cACdlwK,MAAM2C,QAAQnD,EAAK3O,MACnB2O,EAAK3O,KAAKhF,QAAQomL,GAElBA,EAAUzyK,GAElB,OAAO+3J,CACX,CACAya,QAAQxyK,EAAMS,EAAMm5G,EAAIy4D,GACpB,IAAIe,EAAWJ,GAAaX,EAAWz4D,GAAMo5D,GAAaX,EAAW5xK,GACrE,OAAI/Z,KAAKykK,aAAaoU,aACXv/J,EAAKyvE,OAAS2jG,EAGdf,EAAUznK,MAAQlkB,KAAKykK,aAAaD,UAAYkoB,CAE/D,CACA/B,eAAetZ,GACNsW,GAAQgF,KAAKtb,EAAMrxK,KAAK0pL,YACzB1pL,KAAK0pL,SAAWrY,EAChBrxK,KAAKi1K,YAAczP,GAAWh/J,IAAI6qK,EAAK9pK,IAAI4/K,GAAOA,EAAIW,KAAK9nL,KAAMA,KAAKykK,aAAaoU,gBAE3F,CACA+Q,uBACI,IAAI5lB,EAAOhkK,KAAKqpL,UACZrpL,KAAK0pL,SAASjlL,SACdu/J,EAAOA,EAAKvpJ,OAAOza,KAAKi1K,cAC5B,IAAI9xB,EAAS,GACbiO,SAAe4S,EAAMhkK,KAAKsxK,SAASv3J,KAAM/Z,KAAKsxK,SAASp+C,GAAI,CACvD0gC,KAAK75I,EAAMm5G,GAAMiwB,EAAOv6I,KAAK,CAAEmR,OAAMm5G,MAAO,EAC5Co9B,QAAU,GACX,IACH,IAAInI,EAAUhF,EAAO1+I,QAAUzE,KAAKkpL,cAAczkL,QAC9CzE,KAAKkpL,cAAct5I,KAAK,CAACh6B,EAAGpR,IAAMoR,EAAEmE,MAAQopI,EAAO3+I,GAAGuV,MAAQnE,EAAEs9G,IAAMiwB,EAAO3+I,GAAG0uH,IACpF,YAAKg2D,cAAgB/lC,EACdgF,EAAU,EAA8B,CACnD,CACA0sB,YAAY/gI,GACR,OAAQA,GAAO9zC,KAAKsxK,SAASv3J,MAAQ+5B,GAAO9zC,KAAKsxK,SAASp+C,IACtDlzH,KAAKgqL,cAAcpqJ,KAAK3O,GAAKA,EAAElX,MAAQ+5B,GAAO7iB,EAAEiiG,IAAMp/E,IACtDm2I,GAAWjqL,KAAKspL,UAAUltC,OAAOtoG,EAAK+vI,GAAUC,MAAO9jL,KAAKykK,aAAc,EAAG,GAAIzkK,KAAK6oL,OAC9F,CACA+D,kBAAkB7jG,GACd,OAAQA,GAAU/oF,KAAKgqL,cAAc,GAAGzqC,KAAOx2D,GAAU/oF,KAAKgqL,cAAchqL,KAAKgqL,cAAcvlL,OAAS,GAAG00J,QACvGn5J,KAAKgqL,cAAcpqJ,KAAKwwE,GAAKA,EAAEmvC,KAAOx2D,GAAUqnB,EAAE+oD,QAAUpwE,IAC5DkhG,GAAWjqL,KAAKspL,UAAUltC,OAAOp8I,KAAK6oL,OAAOqC,QAAQniG,GAAS86F,GAAUE,SAAU/jL,KAAKykK,aAAc,EAAG,GAAIzkK,KAAK6oL,OACzH,CACA0B,eAAe5vB,GACX,IAAImK,EAAQ9kK,KAAK4sL,kBAAkBjyB,EAAY,GAC/C,OAAOmK,EAAM/qJ,MAAQ/Z,KAAKsxK,SAASv3J,MAAQ/Z,KAAKgqL,cAAc,GAAGzqC,IAAMob,EAAY,IAAMmK,EAAQ9kK,KAAKgqL,cAAc,EACxH,CACA/R,gBAAgBlvF,GACZ,OAAOkhG,GAAWjqL,KAAKspL,UAAUtQ,QAAQh5K,KAAK6oL,OAAOqC,QAAQniG,GAAS/oF,KAAKykK,aAAc,EAAG,GAAIzkK,KAAK6oL,OACzG,CACIhR,gBACA,OAAO73K,KAAK6oL,OAAOrmB,MAAMxiK,KAAKspL,UAAUvgG,OAC5C,CACIkoF,oBACA,OAAOjxK,KAAK63K,UAAY73K,KAAK43K,WAAa53K,KAAKqoL,aACnD,EAEJ,MAAMwB,GACFhqL,YAAYka,EAAMm5G,GACdlzH,KAAK+Z,KAAOA,EACZ/Z,KAAKkzH,GAAKA,CACd,EAoBJ,SAASs5D,IAAetoK,QAAOi/H,UAAU0pC,GACrC,GAAIA,GAAS,EACT,OAAO1pC,EAAO,GAAGppI,KACrB,GAAI8yK,GAAS,EACT,OAAO1pC,EAAOA,EAAO1+I,OAAS,GAAGyuH,GACrC,IAAIyxC,EAAOz5I,KAAKosF,MAAMpzF,EAAQ2oK,GAC9B,QAASroL,EAAI,GAAIA,IAAK,CAClB,IAAMuV,OAAMm5G,MAAOiwB,EAAO3+I,GAAI4gE,EAAO8tD,EAAKn5G,EAC1C,GAAI4qJ,GAAQv/F,EACR,OAAOrrD,EAAO4qJ,EAClBA,GAAQv/F,EAEhB,CACA,SAASknH,GAAaX,EAAW73I,GAC7B,IAAIg5I,EAAU,EACd,QAAW/yK,OAAMm5G,QAAQy4D,EAAUxoC,OAAQ,CACvC,GAAIrvG,GAAOo/E,EAAI,CACX45D,GAAWh5I,EAAM/5B,EACjB,MAEJ+yK,GAAW55D,EAAKn5G,EAEpB,OAAO+yK,EAAUnB,EAAUznK,KAC/B,CASA,MAAM4kK,GAAW,CACbtmB,MAAMx/H,GAAYA,EAClBkoJ,QAAQloJ,GAAYA,EACpB+pJ,MAAO,EACPpwC,GAAGniI,GAAS,OAAOA,GAASxa,IAAM,GAKtC,MAAM+pL,GACFlqL,YAAYwkL,EAAQiF,EAAW1U,GAC3B,IAAIoY,EAAW,EAAGtyK,EAAO,EAAGuyK,EAAU,EACtCjtL,KAAK40K,UAAYA,EAAUrtK,IAAI,EAAGwS,OAAMm5G,SACpC,IAAIqsB,EAAM+pC,EAAUltC,OAAOriI,EAAM8pK,GAAUC,MAAOO,EAAQ,EAAG,GAAG9kC,IAC5D4Z,EAASmwB,EAAUltC,OAAOlpB,EAAI2wD,GAAUC,MAAOO,EAAQ,EAAG,GAAGlrB,OACjE6zB,UAAY7zB,EAAS5Z,EACd,CAAExlI,OAAMm5G,KAAIqsB,MAAK4Z,SAAQ+zB,OAAQ,EAAGC,UAAW,EAAE,GAE5DntL,KAAK+sL,OAAS,IAAgCC,IAAa1D,EAAUvgG,OAASikG,GAC9E,QAAS7vI,KAAOn9C,KAAK40K,UACjBz3H,EAAI+vI,OAASD,GAAW9vI,EAAIoiG,IAAM7kI,GAAQ1a,KAAK+sL,MAC/CE,EAAU9vI,EAAIgwI,UAAYhwI,EAAI+vI,QAAU/vI,EAAIg8G,OAASh8G,EAAIoiG,KACzD7kI,EAAOyiC,EAAIg8G,MAEnB,CACAqJ,MAAMx/H,GACF,QAASx+B,EAAI,EAAGkW,EAAO,EAAGuyK,EAAU,GAAIzoL,IAAK,CACzC,IAAI60J,EAAK70J,EAAIxE,KAAK40K,UAAUnwK,OAASzE,KAAK40K,UAAUpwK,GAAK,KACzD,IAAK60J,GAAMr2H,EAAIq2H,EAAG9Z,IACd,OAAO0tC,GAAWjqJ,EAAItoB,GAAQ1a,KAAK+sL,MACvC,GAAI/pJ,GAAKq2H,EAAGF,OACR,OAAOE,EAAG6zB,QAAUlqJ,EAAIq2H,EAAG9Z,KAC/B7kI,EAAO2+I,EAAGF,OACV8zB,EAAU5zB,EAAG8zB,UAErB,CACAjC,QAAQloJ,GACJ,QAASx+B,EAAI,EAAGkW,EAAO,EAAGuyK,EAAU,GAAIzoL,IAAK,CACzC,IAAI60J,EAAK70J,EAAIxE,KAAK40K,UAAUnwK,OAASzE,KAAK40K,UAAUpwK,GAAK,KACzD,IAAK60J,GAAMr2H,EAAIq2H,EAAG6zB,OACd,OAAOxyK,GAAQsoB,EAAIiqJ,GAAWjtL,KAAK+sL,MACvC,GAAI/pJ,GAAKq2H,EAAG8zB,UACR,OAAO9zB,EAAG9Z,KAAOv8G,EAAIq2H,EAAG6zB,QAC5BxyK,EAAO2+I,EAAGF,OACV8zB,EAAU5zB,EAAG8zB,UAErB,CACAxwC,GAAGniI,GACC,OAAMA,aAAiBuvK,IAEhB/pL,KAAK+sL,OAASvyK,EAAMuyK,OAAS/sL,KAAK40K,UAAUnwK,QAAU+V,EAAMo6J,UAAUnwK,QACzEzE,KAAK40K,UAAU1+I,MAAM,CAACmjI,EAAI70J,IAAM60J,EAAGt/I,MAAQS,EAAMo6J,UAAUpwK,GAAGuV,MAAQs/I,EAAGnmC,IAAM14G,EAAMo6J,UAAUpwK,GAAG0uH,GAC1G,EAEJ,SAAS+2D,GAAWnlB,EAAO+jB,GACvB,GAAoB,GAAhBA,EAAOkE,MACP,OAAOjoB,EACX,IAAIsoB,EAAOvE,EAAOrmB,MAAMsC,EAAMvlB,KAAM8tC,EAAUxE,EAAOrmB,MAAMsC,EAAM3L,QACjE,OAAO,IAAIuqB,GAAU5e,EAAM/qJ,KAAM+qJ,EAAMrgK,OAAQ2oL,EAAMC,EAAUD,EAAMtzK,MAAM2C,QAAQqoJ,EAAM6e,UAAY7e,EAAM6e,SAASp8K,IAAI0pB,GAAKg5J,GAAWh5J,EAAG43J,IAAW/jB,EAAM6e,SAChK,CAEA,MAAM2J,GAAqBtnC,UAAa,CAAEC,QAASsnC,GAAQA,EAAKzwK,KAAK,OAC/D0wK,GAAyBxnC,UAAa,CAAEC,QAAStsI,GAAUA,EAAOzI,SAAQ,IAAQ,IAClFu8K,GAA2Bn3B,aAAuBo3B,GAA2Bp3B,aAAuBq3B,GAA0Br3B,aAC9Hs3B,GAAe,CAAE,SAAU,IAAMF,GAAa,QAAS,IAAMC,IACnE,SAASE,GAAWxoC,EAAMxB,EAAMiqC,GAC5B,OAAO,IAAIx3B,GAAYzS,EAAM,CACzB/zF,OAAOo9F,GACI,IAAI/pI,KAAK+pI,GAAOA,EAAItjJ,QAAQ,OAAQk2B,IACvC,GAAS,KAALA,EACA,OAAOulH,EACX,IAAKyoC,IAAWA,EAAOhuJ,GACnB,MAAM,IAAIu8G,WAAY,yBAAwBv8G,KAClD,OAAOguJ,EAAOhuJ,EAAC,GACdulH,EAAO,IAAM6H,GAG9B,CACA,MAAM6gC,GAA2BF,GAAW,IAAMJ,GAAa,CAC3D,IAAK,CACDnrJ,SAAU,sBACV0rJ,UAAW,aACX,eAAgB,CASZC,QAAS,sBAEbhtG,QAAS,kBACTitG,cAAe,UAEnB,eAAgB,CACZjtG,QAAS,kBACTktG,WAAY,wBACZC,WAAY,YACZ7pB,WAAY,IACZx7E,OAAQ,OACRslG,UAAW,OACX/rJ,SAAU,WACVgsJ,OAAQ,GAEZ,cAAe,CACXhoB,OAAQ,EACRioB,SAAU,EACVC,WAAY,EACZvtG,QAAS,QACT+hG,WAAY,MACZyL,SAAU,SACVT,UAAW,aACXxkG,UAAW,OACXklG,QAAS,QACTT,QAAS,OACT,0BAA2B,CACvBU,iBAAkB,8BAG1B,mBAAoB,CAChBC,oBAAqB,WACrB5L,WAAY,eACZ6L,UAAW,aACXC,aAAc,WACdN,WAAY,GAEhB,qBAAsB,CAAEO,WAAY,SACpC,oBAAqB,CAAEA,WAAY,SACnC,WAAY,CACR9tG,QAAS,QACTytG,QAAS,eAEb,YAAa,CACTpsJ,SAAU,WACV2tE,KAAM,EACNsvC,IAAK,EACLyvC,QAAS,aACT,QAAS,CACL1sJ,SAAU,aAGlB,iCAAkC,CAC9B2sJ,WAAY,WAEhB,gCAAiC,CAC7BA,WAAY,QAEhB,gFAAiF,CAC7EA,WAAY,WAEhB,+EAAgF,CAC5EA,WAAY,QAEhB,kBAAmB,CACfC,cAAe,QAEnB,gDAAiD,CAC7C7gI,UAAW,mCAKf,sBAAuB,CAAE,KAAM,CAAC,EAAG,MAAO,CAAEgM,QAAS,GAAK,OAAQ,CAAC,GACnE,uBAAwB,CAAE,KAAM,CAAC,EAAG,MAAO,CAAEA,QAAS,GAAK,OAAQ,CAAC,GACpE,6BAA8B,CAC1B80H,WAAY,oBACZC,WAAY,SACZF,cAAe,QAEnB,aAAc,CACVjuG,QAAS,QAEb,mBAAoB,CAChBouG,gBAAiB,QAErB,iBAAkB,CACd/sJ,SAAU,YAEd,2DAA4D,CACxD2+C,QAAS,SAEb,UAAW,CACPquG,YAAa,WAEjB,gBAAiB,CACbhtJ,SAAU,QACVi9G,IAAK,YAET,eAAgB,CACZ,gBAAiB,CAAEt+D,QAAS,SAEhC,wBAAyB,CAAEsuG,gBAAiB,aAC5C,uBAAwB,CAAEA,gBAAiB,aAC3C,yBAA0B,CAAEn4E,MAAO,OACnC,wBAAyB,CAAEA,MAAO,QAClC,cAAe,CACXo3E,WAAY,EACZvtG,QAAS,OACT8H,OAAQ,OACRilG,UAAW,aACXwB,iBAAkB,EAClBlB,OAAQ,KAEZ,qBAAsB,CAClBiB,gBAAiB,UACjBn4E,MAAO,UACPq4E,YAAa,kBAEjB,oBAAqB,CACjBF,gBAAiB,UACjBn4E,MAAO,QAEX,aAAc,CACVn2B,QAAS,kBACTitG,cAAe,SACfM,WAAY,EACZR,UAAW,aACXxkG,UAAW,OACX+9F,SAAU,UAEd,oBAAqB,CACjByG,UAAW,cAEf,oCAAqC,CACjCU,QAAS,cACT1f,SAAU,OACV0gB,UAAW,QACX1M,WAAY,UAEhB,8BAA+B,CAC3BuM,gBAAiB,WAErB,6BAA8B,CAC1BA,gBAAiB,WAErB,aAAc,CACVvB,UAAW,aACX1rJ,SAAU,SACV2tE,KAAM,EACNC,MAAO,GAEX,oBAAqB,CACjBq/E,gBAAiB,UACjBn4E,MAAO,SAEX,wBAAyB,CACrBu4E,aAAc,kBAElB,2BAA4B,CACxBC,UAAW,kBAEf,mBAAoB,CAChBL,gBAAiB,UACjBn4E,MAAO,SAEX,UAAW,CACPn2B,QAAS,eACTsmG,SAAU,SACVsI,cAAe,UAEnB,mBAAoB,CAChBA,cAAe,WACf9mG,OAAQ,MACRtwB,MAAO,EACPwoB,QAAS,UAEb,kBAAmB,CACfm2B,MAAO,OACPn2B,QAAS,eACT4uG,cAAe,OAEnB,4BAA6B,CACzBrjL,QAAS,qBACT81B,SAAU,WACV4sJ,cAAe,OACf93E,MAAO,QAEX,mBAAoB,CAChB04E,gBAAkB,wMAClBC,eAAgB,YAChBC,mBAAoB,YACpBC,iBAAkB,aAEtB,oBAAqB,CACjBV,gBAAiB,aAErB,aAAc,CACVM,cAAe,SACfz4E,MAAO,UACP84E,SAAU,MACVxB,QAAS,WACTyB,aAAc,OAElB,oBAAqB,CACjBL,gBAAiB,oCACjBM,OAAQ,iBACR,WAAY,CACRN,gBAAiB,sCAGzB,mBAAoB,CAChBA,gBAAiB,iCACjBM,OAAQ,iBACR,WAAY,CACRN,gBAAiB,gCAGzB,gBAAiB,CACbD,cAAe,SACfz4E,MAAO,UACP84E,SAAU,MACVE,OAAQ,mBACR1B,QAAS,aAEb,uBAAwB,CACpBa,gBAAiB,SAErB,sBAAuB,CACnBa,OAAQ,iBACRb,gBAAiB,YAEtB3B,IAEGyC,GAAuB,SAC7B,MAAMC,GACFzwL,YAAY0wL,EAAQ7nK,GAChB1oB,KAAKuwL,OAASA,EACdvwL,KAAK0jB,KAAO,GACZ1jB,KAAK8qJ,cAAgBpiI,EAAMm+H,MAAMuH,iBACrC,CACAn0I,OAAOyJ,GACH1jB,KAAK0jB,MAAQA,CACjB,CACAq5H,YACI/8I,KAAK0jB,MAAQ2sK,EACjB,CACAG,UAAUntG,EAAO73E,GACb,IAAK63E,EACD,OAAOrjF,KACX,IAAIqM,EAASg3E,EAAMviF,WACnB,QAAS6wJ,EAAMtuE,IAAS,CACpBrjF,KAAKywL,gBAAgBpkL,EAAQslJ,GAC7B,IAAI++B,EAAS1wL,KAAK0jB,KAAKjf,OACvBzE,KAAK2wL,SAASh/B,GACd,IAAI74I,EAAO64I,EAAI5kJ,YACf,GAAI+L,GAAQtN,EACR,MACJ,IAAImxJ,EAAOL,GAAYt4J,IAAI2tJ,GAAMi/B,EAAWt0B,GAAYt4J,IAAI8U,IACxD6jJ,GAAQi0B,EAAWj0B,EAAKC,YACvBD,EAAOA,EAAKC,WAAahE,GAAejH,KACpCiH,GAAe9/I,KAA0B,MAAhB64I,EAAIkH,UAAoBlH,EAAIwS,WAAankK,KAAK0jB,KAAKjf,OAASisL,IAC1F1wL,KAAK+8I,YACT4U,EAAM74I,EAEV,YAAK23K,gBAAgBpkL,EAAQb,GACtBxL,IACX,CACA6wL,aAAahwL,GACT,IAAI6iB,EAAO7iB,EAAKiN,UAChB,QAASwiJ,KAAStwJ,KAAKuwL,OACfjgC,EAAMzvJ,MAAQA,IACdyvJ,EAAMx8G,IAAM9zC,KAAK0jB,KAAKjf,OAASymB,KAAK4lC,IAAIw/F,EAAMpiG,OAAQxqC,EAAKjf,SACnE,QAASg/I,EAAM,EAAGqtC,EAAK9wL,KAAK8qJ,cAAgB,KAAO,cAAe,CAC9D,IAAmChrH,EAA/BixJ,GAAY,EAAIC,EAAY,EAUhC,GATIhxL,KAAK8qJ,eACLimC,EAAYrtK,EAAKxS,QAAQlR,KAAK8qJ,cAAerH,GAC7CutC,EAAYhxL,KAAK8qJ,cAAcrmJ,SAE1Bq7B,EAAIgxJ,EAAG/vH,KAAKr9C,MACjBqtK,EAAYjxJ,EAAEzuB,MACd2/K,EAAYlxJ,EAAE,GAAGr7B,QAErBzE,KAAKia,OAAOyJ,EAAK3d,MAAM09I,EAAKstC,EAAY,EAAIrtK,EAAKjf,OAASssL,IACtDA,EAAY,EACZ,MAEJ,GADA/wL,KAAK+8I,YACDi0C,EAAY,EACZ,QAAS1gC,KAAStwJ,KAAKuwL,OACfjgC,EAAMzvJ,MAAQA,GAAQyvJ,EAAMx8G,IAAM9zC,KAAK0jB,KAAKjf,SAC5C6rJ,EAAMx8G,KAAOk9I,EAAY,GACrCvtC,EAAMstC,EAAYC,EAE1B,CACAL,SAAS9vL,GACL,GAAIA,EAAKsjK,SACL,OACJ,IAAIxH,EAAOL,GAAYt4J,IAAInD,GACvBowL,EAAWt0B,GAAQA,EAAKJ,gBAC5B,GAAgB,MAAZ00B,EAAkB,CAClBjxL,KAAKkxL,gBAAgBrwL,EAAMowL,EAASxsL,QACpC,QAASD,EAAIysL,EAASj0C,QAASx4I,EAAEsU,OAAO0oD,MAChCh9D,EAAEu4I,UACF/8I,KAAK+8I,YAEL/8I,KAAKia,OAAOzV,EAAE0H,MAAK,MAGL,GAAjBrL,EAAKY,SACVzB,KAAK6wL,aAAahwL,GAEI,MAAjBA,EAAKg4J,SACNh4J,EAAKkM,aACL/M,KAAK+8I,YAEa,GAAjBl8I,EAAKY,UACVzB,KAAKwwL,UAAU3vL,EAAKqiC,WAAY,KAExC,CACAutJ,gBAAgB5vL,EAAMiY,GAClB,QAASw3I,KAAStwJ,KAAKuwL,OACfjgC,EAAMzvJ,MAAQA,GAAQA,EAAKk4J,WAAWzI,EAAMpiG,SAAWp1C,IACvDw3I,EAAMx8G,IAAM9zC,KAAK0jB,KAAKjf,OAClC,CACAysL,gBAAgBrwL,EAAM4D,GAClB,QAAS6rJ,KAAStwJ,KAAKuwL,QACE,GAAjB1vL,EAAKY,SAAgB6uJ,EAAMzvJ,MAAQA,EAAOA,EAAK08D,SAAS+yF,EAAMzvJ,SAC9DyvJ,EAAMx8G,IAAM9zC,KAAK0jB,KAAKjf,QAAU0sL,GAAQtwL,EAAMyvJ,EAAMzvJ,KAAMyvJ,EAAMpiG,QAAUzpD,EAAS,GAC/F,EAEJ,SAAS0sL,GAAQ9kL,EAAQxL,EAAMqtD,GAC3B,OAAS,CACL,IAAKrtD,GAAQqtD,EAAS4qG,GAAUj4J,GAC5B,OAAO,EACX,GAAIA,GAAQwL,EACR,OAAO,EACX6hD,EAASwqG,GAAS73J,GAAQ,EAC1BA,EAAOA,EAAKC,WAEpB,CACA,MAAMswL,GACFvxL,YAAYgB,EAAMqtD,GACdluD,KAAKa,KAAOA,EACZb,KAAKkuD,OAASA,EACdluD,KAAK8zC,KAAM,CACf,EAGJ,MAAMu9I,GACFxxL,YAAY88J,EAAMt5E,EAAO73E,EAAK8lL,GAC1BtxL,KAAKsxL,SAAWA,EAChBtxL,KAAKuxL,OAAS,KACdvxL,KAAK0jB,KAAO,GACZ1jB,KAAK2uK,WAAatrF,GAAQ,EAC1B,IAAM+rF,cAAeoiB,EAAOriB,gBAAiBsiB,GAAY90B,EAAKkI,QAC9D,GAAIlI,EAAKj0I,MAAMwiI,UAAY7nE,GAAQ,EAE/BrjF,KAAK+vK,OAAS,aAET1sF,GAAQ,IAAOrjF,KAAKuxL,OAAS50B,EAAKkI,QAAQnH,gBAAgBr6E,EAAO73E,EAAK,IAAK,CAChF,IAAIkmL,EAAYF,GAASC,EAAU,GA6O/C,SAASE,GAAgBh1B,GACrB,IAAIrrJ,EAAS,GACb,GAAIqrJ,EAAK3kI,KAAKk6I,eAAiBvV,EAAK4S,WAChC,OAAOj+J,EACX,IAAM4mJ,aAAY+B,eAAcC,YAAWC,eAAgBwC,EAAKn6I,SAAS2uJ,eACzE,OAAIjZ,IACA5mJ,EAAO1I,KAAK,IAAIwoL,GAASl5B,EAAY+B,KACjCC,GAAahC,GAAciC,GAAeF,IAC1C3oJ,EAAO1I,KAAK,IAAIwoL,GAASl3B,EAAWC,KAErC7oJ,CACX,CAxPoDqgL,CAAgBh1B,GACpDrW,EAAS,IAAIgqC,GAAUoB,EAAW/0B,EAAKj0I,OAC3C49H,EAAOkqC,UAAUxwL,KAAKuxL,OAAOvzB,SAAUh+J,KAAKuxL,OAAOtzB,QACnDj+J,KAAK0jB,KAAO4iI,EAAO5iI,KACnB1jB,KAAK+vK,OAqPjB,SAAS6hB,GAAoBrB,EAAQ71K,GACjC,GAAqB,GAAjB61K,EAAO9rL,OACP,OAAO,KACX,IAAI89B,EAASguJ,EAAO,GAAGz8I,IAAKjrC,EAAwB,GAAjB0nL,EAAO9rL,OAAc8rL,EAAO,GAAGz8I,IAAMvR,EACxE,OAAOA,GAAS,GAAM15B,GAAO,EAAKo8I,UAAuB1iH,EAAS7nB,EAAM7R,EAAO6R,GAAQ,IAC3F,CA1P0Bk3K,CAAoBF,EAAW1xL,KAAKuxL,OAAOx3K,KAAI,KAE5D,CACD,IAAIqgJ,EAASuC,EAAKn6I,SAAS2uJ,eACvBtoK,EAAO2oL,GAASA,EAAM3wL,MAAQu5J,EAAOF,WAAas3B,EAAMtjI,QAAUksG,EAAOD,cACxE58F,GAASo/F,EAAK4S,WAAYnV,EAAOF,WAChCyC,EAAKj0I,MAAMm9H,UAAUR,KAAKx8I,KAC1B8zJ,EAAKkI,QAAQuO,WAAWhZ,EAAOF,UAAWE,EAAOD,aACnD53H,EAASkvJ,GAAWA,EAAQ5wL,MAAQu5J,EAAOlC,YAAcu5B,EAAQvjI,QAAUksG,EAAOH,eACjF18F,GAASo/F,EAAK4S,WAAYnV,EAAOlC,YAChCyE,EAAKj0I,MAAMm9H,UAAUR,KAAK9iH,OAC1Bo6H,EAAKkI,QAAQuO,WAAWhZ,EAAOlC,WAAYkC,EAAOH,cAKpDZ,EAAKsD,EAAK2U,SACd,IAAK7Q,GAAQF,KAAOE,GAAQL,SAAWzD,EAAKj0I,MAAMm9H,UAAUR,KAAKv+H,OAASje,GAAQ05B,IAC7E82H,EAAGt/I,KAAO,GAAKs/I,EAAGnmC,GAAKypC,EAAKj0I,MAAMxnB,IAAIuD,QAAS,CAChD,IAAIsV,EAAOmR,KAAK4lC,IAAIjoD,EAAM05B,GAAS2wF,EAAKhoG,KAAKC,IAAItiB,EAAM05B,GACnDsvJ,GAAUx4B,EAAGt/I,KAAOA,EAAM+3K,GAAQz4B,EAAGnmC,GAAKA,GAC9B,GAAX2+D,IAA2B,GAAXA,IAAwB,GAAR93K,KAAwB,GAAT+3K,KAAuB,GAATA,IAAe5+D,GAAMypC,EAAKj0I,MAAMxnB,IAAIuD,UAClGoE,EAAO,EACP05B,EAASo6H,EAAKj0I,MAAMxnB,IAAIuD,QAGhCzE,KAAK+vK,OAAS9qB,UAAuB1iH,EAAQ15B,EAAI,CAEzD,EAEJ,SAASkpL,GAAep1B,EAAMq1B,GAC1B,IAAIhtC,GACE+qB,UAAWiiB,EAAW9kC,EAAMyP,EAAKj0I,MAAMm9H,UAAUR,KACnD4sC,EAAUt1B,EAAKiT,WAAWqK,YAAclxJ,KAAKD,MAAQ,IAAM6zI,EAAKiT,WAAWoK,aAAc,EAC7F,GAAIgY,EAAUT,OAAQ,CAClB,IAAMx3K,OAAMm5G,MAAO8+D,EAAUT,OACzBW,EAAehlC,EAAInzI,KAAMo4K,EAAgB,MAG7B,IAAZF,GAAiBxxB,GAAQQ,SAAW+wB,EAAUtuK,KAAKjf,OAASyuH,EAAKn5G,KACjEm4K,EAAehlC,EAAIh6B,GACnBi/D,EAAgB,OAEpB,IAAIriF,EAgKZ,SAASsiF,GAASphK,EAAGC,EAAGihK,EAAcC,GAClC,IAAIE,EAASnnK,KAAK4lC,IAAI9/B,EAAEvsB,OAAQwsB,EAAExsB,QAC9BsV,EAAO,EACX,KAAOA,EAAOs4K,GAAUrhK,EAAEuvH,WAAWxmI,IAASkX,EAAEsvH,WAAWxmI,IACvDA,IACJ,GAAIA,GAAQs4K,GAAUrhK,EAAEvsB,QAAUwsB,EAAExsB,OAChC,OAAO,KACX,IAAIo+I,EAAM7xH,EAAEvsB,OAAQopK,EAAM58I,EAAExsB,OAC5B,KAAOo+I,EAAM,GAAKgrB,EAAM,GAAK78I,EAAEuvH,WAAWsC,EAAM,IAAM5xH,EAAEsvH,WAAWstB,EAAM,IACrEhrB,IACAgrB,IAkBJ,MAhBqB,OAAjBskB,IAEAD,GAAgBrvC,EADH33H,KAAKC,IAAI,EAAGpR,EAAOmR,KAAK4lC,IAAI+xF,EAAKgrB,IACf9zJ,GAE/B8oI,EAAM9oI,GAAQiX,EAAEvsB,OAASwsB,EAAExsB,QAE3BsV,GADWm4K,GAAgBn4K,GAAQm4K,GAAgBrvC,EAAM9oI,EAAOm4K,EAAe,EAE/ErkB,EAAM9zJ,GAAQ8zJ,EAAMhrB,GACpBA,EAAM9oI,GAED8zJ,EAAM9zJ,IAEXA,GADWm4K,GAAgBn4K,GAAQm4K,GAAgBrkB,EAAM9zJ,EAAOm4K,EAAe,EAE/ErvC,EAAM9oI,GAAQ8oI,EAAMgrB,GACpBA,EAAM9zJ,GAEH,CAAEA,OAAM8oI,MAAKgrB,MACxB,CA7LmBukB,CAASz1B,EAAKj0I,MAAMxnB,IAAIq8I,YAAYxjI,EAAMm5G,EAAIm9D,IAAuB2B,EAAUtuK,KAAMwuK,EAAen4K,EAAMo4K,GACjHriF,IAGI2wD,GAAQL,QAAqB,IAAX6xB,GAClBniF,EAAK+9D,KAAO/9D,EAAK/1F,KAAO,GAAKi4K,EAAUtuK,KAAK3d,MAAM+pG,EAAK/1F,KAAM+1F,EAAK+9D,MAAQwiB,GAAuBA,IACjGvgF,EAAK+9D,MACT7oB,EAAS,CAAEjrI,KAAMA,EAAO+1F,EAAK/1F,KAAMm5G,GAAIn5G,EAAO+1F,EAAK+yC,IAC/Cj5G,OAAQuyG,MAAQ61C,EAAUtuK,KAAK3d,MAAM+pG,EAAK/1F,KAAM+1F,EAAK+9D,KAAKh9J,MAAMw/K,MAAuB,MAG1FtgB,KAAYpT,EAAKwe,UAAYxe,EAAKj0I,MAAMm+H,MAAM4b,KAAasN,EAAO1qB,KAAK1I,GAAGuQ,MAC/E6iB,EAAS,MAEb,IAAK/qB,IAAW+qB,EACZ,OAAO,EAiCX,IAhCK/qB,GAAUgtC,EAAUV,WAAapkC,EAAIpmI,OAASipJ,GAAUA,EAAO1qB,KAAKv+H,MAErEk+H,EAAS,CAAEjrI,KAAMmzI,EAAInzI,KAAMm5G,GAAIg6B,EAAIh6B,GAAItpF,OAAQ+yH,EAAKj0I,MAAMxnB,IAAI6E,MAAMmnJ,EAAInzI,KAAMmzI,EAAIh6B,KAE7E8xB,GAAUA,EAAOjrI,MAAQmzI,EAAInzI,MAAQirI,EAAO9xB,IAAMg6B,EAAIh6B,KAC1D8xB,EAAOjrI,MAAQmzI,EAAInzI,MAAQirI,EAAO9xB,IAAMg6B,EAAIh6B,KAC5Cg6B,EAAIh6B,GAAKg6B,EAAInzI,MAASirI,EAAO9xB,GAAK8xB,EAAOjrI,OAAS,EAInDirI,EAAS,CACLjrI,KAAMmzI,EAAInzI,KAAMm5G,GAAIg6B,EAAIh6B,GACxBtpF,OAAQ+yH,EAAKj0I,MAAMxnB,IAAI6E,MAAMmnJ,EAAInzI,KAAMirI,EAAOjrI,MAAME,OAAO+qI,EAAOp7G,QAAQ3vB,OAAO0iJ,EAAKj0I,MAAMxnB,IAAI6E,MAAMi/I,EAAO9xB,GAAIg6B,EAAIh6B,OAGnHutC,GAAQ3I,KAAO2I,GAAQQ,UAAYjc,GAAUA,EAAOjrI,MAAQirI,EAAO9xB,IAAM8xB,EAAOjrI,MAAQmzI,EAAIrkJ,KAAO,GACzG,SAASsa,KAAK6hI,EAAOp7G,OAAOtzB,aAA8D,OAA/CqmJ,EAAK4S,WAAWhtK,aAAa,gBAGpEwtK,GAAkC,GAAxB/qB,EAAOp7G,OAAOnlC,SACxBsrK,EAAS9qB,UAAuB8qB,EAAO1qB,KAAK9iH,OAAS,EAAGwtI,EAAO1qB,KAAKx8I,KAAO,IAC/Em8I,EAAS,CAAEjrI,KAAMmzI,EAAInzI,KAAMm5G,GAAIg6B,EAAIh6B,GAAItpF,OAAQuyG,MAAQ,CAAC,QAEnDskB,GAAQL,QAAUpb,GAAUA,EAAOjrI,MAAQirI,EAAO9xB,IAAM8xB,EAAOjrI,MAAQmzI,EAAIrkJ,MACpD,OAA5Bm8I,EAAOp7G,OAAOtzB,YAAuBqmJ,EAAKkc,eAItC9I,IACAA,EAAS9qB,UAAuB8qB,EAAO1qB,KAAK9iH,OAAS,EAAGwtI,EAAO1qB,KAAKx8I,KAAO,IAC/Em8I,EAAS,CAAEjrI,KAAMmzI,EAAInzI,KAAMm5G,GAAIg6B,EAAIh6B,GAAItpF,OAAQuyG,MAAQ,CAAC,QAExD6I,EACA,OAAOstC,GAAoB31B,EAAM3X,EAAQ+qB,EAAQkiB,GAEhD,GAAIliB,IAAWA,EAAO1qB,KAAK1I,GAAGuQ,GAAM,CACrC,IAAInB,GAAiB,EAAOQ,EAAY,SACxC,OAAIoQ,EAAKiT,WAAWmK,kBAAoBhxJ,KAAKD,MAAQ,KACN,UAAvC6zI,EAAKiT,WAAWkK,sBAChB/tB,GAAiB,GACrBQ,EAAYoQ,EAAKiT,WAAWkK,qBAEhCnd,EAAKvyI,SAAS,CAAEy7H,UAAWkqB,EAAQhkB,iBAAgBQ,eAC5C,EAGP,OAAO,CAEf,CACA,SAAS+lC,GAAoB31B,EAAM3X,EAAQ+qB,EAAQkiB,GAAU,GACzD,GAAIxxB,GAAQF,KAAO5D,EAAKiT,WAAW2M,YAAYv3B,GAC3C,OAAO,EACX,IAAIkI,EAAMyP,EAAKj0I,MAAMm9H,UAAUR,KAO/B,GAAIob,GAAQQ,UACNjc,EAAO9xB,IAAMg6B,EAAIh6B,KAGd8xB,EAAOjrI,MAAQmzI,EAAInzI,MAAQirI,EAAOjrI,MAAQmzI,EAAInzI,KAAO,GAAmD,KAA9C4iJ,EAAKj0I,MAAMqmI,SAAS/J,EAAOjrI,KAAMmzI,EAAInzI,QACxE,GAAxBirI,EAAOp7G,OAAOnlC,QAAsC,GAAvBugJ,EAAOp7G,OAAO2yG,OAC3C0e,GAAY0B,EAAK4S,WAAY,QAAS,MACpCvqB,EAAOjrI,MAAQmzI,EAAInzI,KAAO,GAAKirI,EAAO9xB,IAAMg6B,EAAIh6B,IAA8B,GAAxB8xB,EAAOp7G,OAAOnlC,QACvD,GAAXwtL,GAAgBjtC,EAAOp7G,OAAOnlC,OAASugJ,EAAO9xB,GAAK8xB,EAAOjrI,MAAQirI,EAAO9xB,GAAKg6B,EAAIrkJ,OAClFoyJ,GAAY0B,EAAK4S,WAAY,YAAa,IAC7CvqB,EAAOjrI,MAAQmzI,EAAInzI,MAAQirI,EAAO9xB,IAAMg6B,EAAIh6B,GAAK,GAA6B,GAAxB8xB,EAAOp7G,OAAOnlC,QACjEw2J,GAAY0B,EAAK4S,WAAY,SAAU,KAC/C,OAAO,EACX,IAAI7rJ,EAAOshI,EAAOp7G,OAAOtzB,WACrBqmJ,EAAKiT,WAAWC,WAAa,GAC7BlT,EAAKiT,WAAWC,YACpB,IAAI0iB,EACAC,EAAgB,IAAMD,IAAcA,EAK5C,SAASE,GAAmB91B,EAAM3X,EAAQ+qB,GACtC,IAAIzoB,EAAIuE,EAAa8Q,EAAKj0I,MAAOwkI,EAAMrB,EAAWhG,UAAUR,KAC5D,GAAIL,EAAOjrI,MAAQmzI,EAAInzI,MAAQirI,EAAO9xB,IAAMg6B,EAAIh6B,IAAM8xB,EAAO9xB,GAAK8xB,EAAOjrI,OAASmzI,EAAIh6B,GAAKg6B,EAAInzI,MAAQ,KACjGg2J,GAAUA,EAAO1qB,KAAKv+H,OAASipJ,EAAO1qB,KAAKtrI,MAAQirI,EAAOjrI,KAAOirI,EAAOp7G,OAAOnlC,SACjFk4J,EAAKiT,WAAWC,UAAY,EAAG,CAC/B,IAAI1tB,EAAS+K,EAAInzI,KAAOirI,EAAOjrI,KAAO8xI,EAAWkD,SAAS7B,EAAInzI,KAAMirI,EAAOjrI,MAAQ,GAC/EwjJ,EAAQrQ,EAAIh6B,GAAK8xB,EAAO9xB,GAAK24B,EAAWkD,SAAS/J,EAAO9xB,GAAIg6B,EAAIh6B,IAAM,GAC1Eo0B,EAAKuE,EAAW2C,iBAAiBmO,EAAKj0I,MAAM+lI,OAAOtM,EAAS6C,EAAOp7G,OAAO2zG,YAAY,OAAGtvI,EAAW0uJ,EAAKj0I,MAAMq0H,WAAawgB,GAAM,KAEjI,CACD,IAAI50H,EAAUkjH,EAAWljH,QAAQq8G,GAC7B0tC,EAAU3iB,GAAUA,EAAO1qB,KAAKnyB,IAAMvqF,EAAQ64G,UAAYuuB,EAAO1qB,UAAOp3I,EAE5E,GAAI49I,EAAWhG,UAAU1C,OAAO1+I,OAAS,GAAKk4J,EAAKiT,WAAWC,WAAa,GACvE7qB,EAAO9xB,IAAMg6B,EAAIh6B,IAAM8xB,EAAO9xB,IAAMg6B,EAAIh6B,GAAK,GAAI,CACjD,IACIy/D,EADAC,EAAWj2B,EAAKj0I,MAAMqmI,SAAS/J,EAAOjrI,KAAMirI,EAAO9xB,IACjCha,EAAc62D,GAAUK,GAAoBzT,EAAMoT,EAAO1qB,KAAKx8I,MAGhF8pL,EAFAz5E,EAEmB,CAAEn/F,KAAMm/F,EAAYn/F,KAAMm5G,GAAIha,EAAYga,IADlD8xB,EAAOp7G,OAAOnlC,QAAUugJ,EAAO9xB,GAAK8xB,EAAOjrI,QAInC4iJ,EAAKj0I,MAAMxnB,IAAIk7I,OAAO8Q,EAAIrkJ,MAEjD,IAAIqlD,EAASg/F,EAAIh6B,GAAK8xB,EAAO9xB,GAAI9tD,GAAO8nF,EAAIh6B,GAAKg6B,EAAInzI,KACrDutI,EAAKuE,EAAW6C,cAAcxJ,KAC1B,GAAIA,GAAMnrI,MAAQmzI,EAAInzI,MAAQmrI,GAAMhyB,IAAMg6B,EAAIh6B,GAC1C,MAAO,CAAEvqF,UAASu8G,MAAOwtC,GAAWxtC,GAAM39I,IAAIohC,IAClD,IAAIuqF,GAAKgyB,GAAMhyB,GAAKhlE,EAAQn0C,GAAOm5G,GAAK0/D,EAASnuL,OACjD,GAAIygJ,GAAMhyB,GAAKgyB,GAAMnrI,MAAQqrD,IAAQu3F,EAAKj0I,MAAMqmI,SAASh1I,GAAMm5G,KAAO0/D,GAKlE1tC,GAAMhyB,IAAMy/D,EAAiB54K,MAAQmrI,GAAMnrI,MAAQ44K,EAAiBz/D,GACpE,MAAO,CAAEgyB,UACb,IAAI2tC,GAAehnC,EAAWljH,QAAQ,CAAE5uB,QAAMm5G,MAAItpF,OAAQo7G,EAAOp7G,SAAWkpJ,GAAS5tC,GAAMhyB,GAAKg6B,EAAIh6B,GACpG,MAAO,CACHvqF,QAASkqJ,GACT3tC,MAAQwtC,EACJztC,SAAsB/5H,KAAKC,IAAI,EAAGunK,EAAQnwJ,OAASuwJ,IAAS5nK,KAAKC,IAAI,EAAGunK,EAAQ7pL,KAAOiqL,KADzE5tC,GAAM39I,IAAIsrL,IAEhC,EACH,MAGDvrC,EAAK,CACD3+G,UACAk9G,UAAW6sC,GAAW7mC,EAAWhG,UAAUL,aAAaktC,GAC5D,CAGR,IAAInmC,EAAY,aAChB,OAAIoQ,EAAKkT,WACLlT,EAAKiT,WAAWkL,0BAA4Bne,EAAKiT,WAAWgL,mBAAqB7xJ,KAAKD,MAAQ,MAC9F6zI,EAAKiT,WAAWkL,0BAA2B,EAC3CvuB,GAAa,WACToQ,EAAKiT,WAAW+K,yBAChBpuB,GAAa,SACboQ,EAAKiT,WAAW+K,wBAAyB,IAG1C9uB,EAAWvxI,OAAOgtI,EAAI,CAAEiF,YAAWR,gBAAgB,GAC9D,CAnEwD0mC,CAAmB91B,EAAM3X,EAAQ+qB,IACrF,OAAKpT,EAAKj0I,MAAMm+H,MAAM0kB,IAAc37H,KAAKwzI,GAAKA,EAAEzmB,EAAM3X,EAAOjrI,KAAMirI,EAAO9xB,GAAIxvG,EAAM8uK,KAChF71B,EAAKvyI,SAASooK,MACX,CACX,CAiHA,MAAMO,GAAiB,CACnB10B,WAAW,EACX20B,eAAe,EACfC,SAAS,EACTv3B,YAAY,EACZw3B,uBAAuB,GAIrBC,GAAc1yB,GAAQ1I,IAAM0I,GAAQI,YAAc,GACxD,MAAMuyB,GACFvzL,YAAY88J,GACR38J,KAAK28J,KAAOA,EACZ38J,KAAKmpB,QAAS,EACdnpB,KAAK8vK,YAAc,KAOnB9vK,KAAKmxK,eAAiB,IAAInX,GAE1Bh6J,KAAKqzL,kBAAmB,EACxBrzL,KAAKszL,cAAe,EACpBtzL,KAAKuzL,eAAgB,EACrBvzL,KAAK+qB,MAAQ,GACb/qB,KAAKwzL,kBAAoB,KACzBxzL,KAAKyzL,oBAAqB,EAC1BzzL,KAAK0zL,WAAa,EAClB1zL,KAAK2zL,cAAgB,GACrB3zL,KAAKmwG,aAAe,KACpBnwG,KAAK4zL,aAAe,KACpB5zL,KAAK6zL,cAAe,EACpB7zL,KAAK8zL,gBAAkB,KACvB9zL,KAAKqxK,KAAO,GACZrxK,KAAK+zL,WAAa,KAElB/zL,KAAKg0L,aAAc,EACnBh0L,KAAKoE,IAAMu4J,EAAK4S,WAChBvvK,KAAKwiB,SAAW,IAAIyxK,iBAAiBC,IACjC,QAASC,KAAOD,EACZl0L,KAAK+qB,MAAMniB,KAAKurL,IAUf1zB,GAAQ1I,IAAM0I,GAAQI,YAAc,IAAMJ,GAAQF,KAAO5D,EAAKkT,YAC/DqkB,EAAUtkJ,KAAK9P,GAAe,aAAVA,EAAEn1B,MAAuBm1B,EAAEs0J,aAAa3vL,QAC9C,iBAAVq7B,EAAEn1B,MAA2Bm1B,EAAEkhD,SAASv8E,OAASq7B,EAAE/9B,OAAO+L,UAAUrJ,QACxEzE,KAAKoiL,YAELpiL,KAAKqpB,OAAK,GAEdrnB,OAAOqyL,cAAiD,IAAlC13B,EAAK98J,YAAYy0L,gBAErC7zB,GAAQL,QAAUK,GAAQO,eAAiB,OAC7ChhK,KAAK8vK,YAAc,IAAIykB,GAAmB53B,GACtCA,EAAKj0I,MAAMm+H,MAAM4b,MACjB9F,EAAK4S,WAAWO,YAAc9vK,KAAK8vK,YAAYA,cAEnDqjB,KACAnzL,KAAKw0L,WAAczqL,IACf/J,KAAK+qB,MAAMniB,KAAK,CAAE7G,OAAQgI,EAAMhI,OAC5B4I,KAAM,gBACNq2E,SAAUj3E,EAAM0qL,YACpBz0L,KAAKoiL,WAAS,GAEtBpiL,KAAK00L,kBAAoB10L,KAAK00L,kBAAkB5qK,KAAK9pB,MACrDA,KAAK20L,SAAW30L,KAAK20L,SAAS7qK,KAAK9pB,MACnCA,KAAK40L,QAAU50L,KAAK40L,QAAQ9qK,KAAK9pB,MACjCA,KAAK60L,SAAW70L,KAAK60L,SAAS/qK,KAAK9pB,MAC/BgC,OAAO8yL,aACP90L,KAAK+zL,WAAa/xL,OAAO8yL,WAAW,UACX,mBAAlBC,iBACP/0L,KAAK4zL,aAAe,IAAImB,eAAe,KACnC,IAAI/tC,GAC8B,QAA5BA,EAAKhnJ,KAAK28J,KAAKkI,eAA4B,IAAP7d,OAAgB,EAASA,EAAGsoB,YAAcvmJ,KAAKD,MAAQ,IAC7F9oB,KAAK20L,UAAQ,GAErB30L,KAAK4zL,aAAa5zK,QAAQ28I,EAAKwX,YAEnCn0K,KAAKg1L,mBAAmBh1L,KAAKq3J,IAAMsF,EAAKtF,KACxCr3J,KAAKqjF,QAC8B,mBAAxB4xG,uBACPj1L,KAAKmwG,aAAe,IAAI8kF,qBAAqBv7K,IACrC1Z,KAAKg0L,YAAc,IACnBh0L,KAAKg0L,YAAcpzI,WAAW5gD,KAAKk1L,gBAAgBprK,KAAK9pB,MAAO,MAC/D0Z,EAAQjV,OAAS,GAAMiV,EAAQA,EAAQjV,OAAS,GAAG0wL,kBAAoB,GAAMn1L,KAAK6zL,eAClF7zL,KAAK6zL,cAAgB7zL,KAAK6zL,aACtB7zL,KAAK6zL,cAAgB7zL,KAAK28J,KAAKyrB,QAC/BpoL,KAAKo1L,gBAAgB/zL,SAASg0L,YAAY,UAAQ,EAE3D,CAAEC,UAAW,CAAC,EAAG,QACpBt1L,KAAKmwG,aAAanwF,QAAQhgB,KAAKoE,KAC/BpE,KAAK8zL,gBAAkB,IAAImB,qBAAqBv7K,IACxCA,EAAQjV,OAAS,GAAKiV,EAAQA,EAAQjV,OAAS,GAAG0wL,kBAAoB,GACtEn1L,KAAKo1L,gBAAgB/zL,SAASg0L,YAAY,SAAQ,EACvD,CAAC,IAERr1L,KAAKk1L,kBACLl1L,KAAKgyK,oBACT,CACAojB,gBAAgBjtL,GACZnI,KAAK28J,KAAKiT,WAAW8L,YAAY,SAAUvzK,GACvCnI,KAAK6zL,cACL7zL,KAAK28J,KAAK8X,SAClB,CACAogB,SAAS1sL,GACDnI,KAAK6zL,cACL7zL,KAAKqpB,OAAM,GACXrpB,KAAK8vK,aACL9vK,KAAK28J,KAAK44B,eAAev1L,KAAK8vK,YAAY0lB,YAC9Cx1L,KAAKo1L,gBAAgBjtL,EACzB,CACAwsL,WACQ30L,KAAKuzL,cAAgB,IACrBvzL,KAAKuzL,cAAgB3yI,WAAW,KAC5B5gD,KAAKuzL,eAAgB,EACrBvzL,KAAK28J,KAAK44B,gBAAc,EACzB,IACX,CACAX,QAAQ7qL,GACc,UAAdA,EAAMY,OAAqBZ,EAAMi1D,UAErCh/D,KAAK28J,KAAK+H,UAAUskB,UAAW,EAC/BhpL,KAAK28J,KAAK8X,UACV7zH,WAAW,KACP5gD,KAAK28J,KAAK+H,UAAUskB,UAAW,EAC/BhpL,KAAK28J,KAAK44B,gBAAc,EACzB,KACP,CACA/jB,WAAWH,GACP,GAAIrxK,KAAK8zL,kBAAoBziB,EAAK5sK,QAAUzE,KAAKqxK,KAAK5sK,QAAUzE,KAAKqxK,KAAKzhI,KAAK,CAACrR,EAAG/5B,IAAM+5B,GAAK8yI,EAAK7sK,KAAM,CACrGxE,KAAK8zL,gBAAgB2B,aACrB,QAAStO,KAAO9V,EACZrxK,KAAK8zL,gBAAgB9zK,QAAQmnK,GACjCnnL,KAAKqxK,KAAOA,EAEpB,CACAqjB,kBAAkB3qL,GACd,IAAI2rL,EAAa11L,KAAKqzL,iBACtB,IAAKrzL,KAAKgyK,sBAAwBhyK,KAAKwzL,kBACnC,OACJ,IAAM72B,QAAS38J,KAAMktJ,EAAMltJ,KAAKmxK,eAChC,GAAIxU,EAAKj0I,MAAMm+H,MAAM4b,IAAY9F,EAAK3kI,KAAKk6I,eAAiBlyK,KAAKoE,KAAO6zJ,GAAa0E,EAAKv4J,IAAK8oJ,GAC3F,OACJ,IAAIhvI,EAAUgvI,EAAIgL,YAAcyE,EAAKkI,QAAQ4O,QAAQvmB,EAAIgL,YACrDh6I,GAAWA,EAAQ2gJ,YAAY90J,GAC1B2rL,IACD11L,KAAKqzL,kBAAmB,IAQ3B5yB,GAAQ1I,IAAM0I,GAAQI,YAAc,IAAMJ,GAAQQ,SAAWR,GAAQL,UAAYzD,EAAKj0I,MAAMm9H,UAAUR,KAAKv+H,OAE5GomI,EAAIgN,WAAa5B,GAAqBpL,EAAIgN,UAAWhN,EAAIiN,YAAajN,EAAIgL,WAAYhL,EAAI+M,cAC1Fj6J,KAAKoiL,YAELpiL,KAAKqpB,OAAM,EACnB,CACA2oJ,qBACI,IAAMrV,QAAS38J,KAGX6lJ,EAAYmS,GAAa2E,EAAK3kI,MAClC,IAAK6tH,EACD,OAAO,EACX,IAAIX,EAAQub,GAAQH,QAAgC,IAAtB3D,EAAK3kI,KAAKv2B,UAzlNhD,SAASk0L,GAAkBz0L,GACvB,IAAIw4J,EAAMx4J,EAAIgxK,cACd,KAAOxY,GAAOA,EAAItrJ,YACdsrJ,EAAMA,EAAItrJ,WAAW8jK,cACzB,OAAOxY,CACX,CAqlNYi8B,CAAkB31L,KAAKoE,IAAIgzJ,gBAAkBp3J,KAAKoE,KAyS9D,SAASwxL,GAAyBj5B,EAAM9W,GACpC,GAAIA,EAAUgwC,kBAAmB,CAC7B,IAAI3wC,EAAQW,EAAUgwC,kBAAkBl5B,EAAK3kI,MAAM,GACnD,GAAIktH,EACA,OAAO4wC,GAA6Bn5B,EAAMzX,EAAK,CAEvD,IAAIxuF,EAAQ,KAMZ,SAASmqH,EAAK92K,GACVA,EAAMC,iBACND,EAAMgsL,2BACNr/H,EAAQ3sD,EAAMisL,kBAAkB,EACpC,CACAr5B,SAAK4S,WAAW9uK,iBAAiB,cAAeogL,GAAM,GACtDlkB,EAAKv4J,IAAIgzJ,cAAc6+B,YAAY,UACnCt5B,EAAK4S,WAAW7uK,oBAAoB,cAAemgL,GAAM,GAClDnqH,EAAQo/H,GAA6Bn5B,EAAMjmG,GAAS,IAC/D,CA7TYk/H,CAAyB51L,KAAK28J,KAAM9W,IAAcA,EACtD,IAAKX,GAASllJ,KAAKmxK,eAAex0B,GAAGuI,GACjC,OAAO,EACX,IAAIyR,EAAQsB,GAAaj4J,KAAKoE,IAAK8gJ,GAInC,OAAIyR,IAAU32J,KAAKqzL,kBACf12B,EAAKiT,WAAWuK,cAAgBpxJ,KAAKD,MAAQ,KAC7C6zI,EAAKiT,WAAWsK,cAAgBnxJ,KAAKD,MAAQ,KA3zMzD,SAASotK,GAAeh1L,EAAK2kJ,GACzB,IAAIhlJ,EAAOglJ,EAAUqU,UAAWhsG,EAAS23F,EAAUsU,YACnD,IAAKt5J,GAAQglJ,EAAUqS,YAAcr3J,GAAQglJ,EAAUoU,cAAgB/rG,EACnE,OAAO,EAGX,IADAA,EAAShjC,KAAK4lC,IAAI5C,EAAQ4qG,GAAUj4J,MAEhC,GAAIqtD,EAAQ,CACR,GAAqB,GAAjBrtD,EAAKY,SACL,OAAO,EACX,IAAI6kG,EAAOzlG,EAAKk4J,WAAW7qG,EAAS,GACR,SAAxBo4C,EAAK0yD,gBACL9qG,KAEArtD,EAAOylG,EACPp4C,EAAS4qG,GAAUj4J,GAAI,KAG1B,IAAIA,GAAQK,EACb,OAAO,EAGPgtD,EAASwqG,GAAS73J,GAClBA,EAAOA,EAAKC,WAGxB,CAkyMYo1L,CAAel2L,KAAKoE,IAAK8gJ,IACzBllJ,KAAK28J,KAAKiT,WAAWuK,cAAgB,EACrCxd,EAAKkI,QAAQgN,mBACN,IAEX7xK,KAAKmxK,eAAe9W,SAASnV,GACzByR,IACA32J,KAAKqzL,kBAAmB,IACrB,EACX,CACAlgB,kBAAkB5wI,EAAQ15B,GACtB7I,KAAKmxK,eAAe3qK,IAAI+7B,EAAO1hC,KAAM0hC,EAAO2rB,OAAQrlD,EAAKhI,KAAMgI,EAAKqlD,QACpEluD,KAAKqzL,kBAAmB,CAC5B,CACAtR,sBACI/hL,KAAKmxK,eAAe3qK,IAAI,KAAM,EAAG,KAAM,EAC3C,CACA0uL,kBACIl1L,KAAKg0L,aAAc,EACnB,IAAIxvL,EAAI,EAAG2jJ,EAAU,KACrB,QAAS/jJ,EAAMpE,KAAKoE,IAAKA,GACrB,GAAoB,GAAhBA,EAAI3C,UACC0mJ,GAAW3jJ,EAAIxE,KAAK2zL,cAAclvL,QAAUzE,KAAK2zL,cAAcnvL,IAAMJ,EACtEI,IACM2jJ,IACNA,EAAUnoJ,KAAK2zL,cAAc5tL,MAAM,EAAGvB,IACtC2jJ,GACAA,EAAQv/I,KAAKxE,GACjBA,EAAMA,EAAIuuK,cAAgBvuK,EAAItD,mBAET,IAAhBsD,EAAI3C,SAIT,MAHA2C,EAAMA,EAAI6D,IAGV,CAKR,GAFIzD,EAAIxE,KAAK2zL,cAAclvL,SAAW0jJ,IAClCA,EAAUnoJ,KAAK2zL,cAAc5tL,MAAM,EAAGvB,IACtC2jJ,EAAS,CACT,QAAS/jJ,KAAOpE,KAAK2zL,cACjBvvL,EAAI1D,oBAAoB,SAAUV,KAAK60L,UAC3C,QAASzwL,KAAOpE,KAAK2zL,cAAgBxrC,EACjC/jJ,EAAI3D,iBAAiB,SAAUT,KAAK60L,SAAQ,CAExD,CACAxxB,OAAOjiH,GACH,IAAKphD,KAAKmpB,OACN,OAAOi4B,IACX,IACI,YAAKi0H,OACEj0H,GAKX,CAJA,QAEIphD,KAAKqjF,QACLrjF,KAAK2H,OACT,CACJ,CACA07E,QACQrjF,KAAKmpB,SAETnpB,KAAKwiB,SAASxC,QAAQhgB,KAAKoE,IAAK2uL,IAC5BI,IACAnzL,KAAKoE,IAAI3D,iBAAiB,2BAA4BT,KAAKw0L,YAC/Dx0L,KAAKmpB,QAAS,EAClB,CACAksJ,OACSr1K,KAAKmpB,SAEVnpB,KAAKmpB,QAAS,EACdnpB,KAAKwiB,SAASizK,aACVtC,IACAnzL,KAAKoE,IAAI1D,oBAAoB,2BAA4BV,KAAKw0L,YACtE,CAEA7sL,QACI3H,KAAKm2L,iBACLn2L,KAAK+qB,MAAMtmB,OAAS,EACpBzE,KAAKqzL,kBAAmB,CAC5B,CASAlX,gBAAgBrrK,EAAKqqJ,GACjB,IAAInU,EACChnJ,KAAKwzL,oBAYNxzL,KAAKyzL,mBAAqBzzL,KAAK28J,KAAKtF,IAAI++B,sBAX5B,KACR,IAAItlL,EAAM9Q,KAAKwzL,kBACX1iL,IACA9Q,KAAKq2L,yBACLr2L,KAAK28J,KAAKiT,WAAWoK,YAAclpK,EAAIqqJ,QACvCn7J,KAAK28J,KAAKiT,WAAWqK,YAAclxJ,KAAKD,OAC1B9oB,KAAKqpB,SACHvY,EAAI8yI,OAChBqX,GAAYj7J,KAAKoE,IAAK0M,EAAIA,IAAKA,EAAIqqJ,SAAO,MAOrDn7J,KAAKwzL,mBAA4B,SAAP1iL,KAC3B9Q,KAAKwzL,kBAAoB,CACrB1iL,MAAKqqJ,UAKLvX,MAAO5jJ,KAAK0zL,WAAa3qK,KAAKD,MAAQ,MAA2C,QAAjCk+H,EAAKhnJ,KAAKwzL,yBAAsC,IAAPxsC,IAAyBA,EAAGpD,QAEjI,CACAyyC,yBACIr2L,KAAKq3J,IAAIi/B,qBAAqBt2L,KAAKyzL,oBACnCzzL,KAAKwzL,kBAAoB,KACzBxzL,KAAKyzL,oBAAqB,CAC9B,CACArR,YACQpiL,KAAKszL,aAAe,IACpBtzL,KAAKszL,aAAetzL,KAAK28J,KAAKtF,IAAI++B,sBAAsB,KAAQp2L,KAAKszL,cAAe,EAAItzL,KAAKqpB,OAAK,GAC1G,CACAizJ,aACQt8K,KAAKszL,cAAgB,IACrBtzL,KAAK28J,KAAKtF,IAAIi/B,qBAAqBt2L,KAAKszL,cACxCtzL,KAAKszL,cAAe,GAExBtzL,KAAKqpB,OACT,CACA84J,iBACI,QAASgS,KAAOn0L,KAAKwiB,SAAS+zK,cAC1Bv2L,KAAK+qB,MAAMniB,KAAKurL,GACpB,OAAOn0L,KAAK+qB,KAChB,CACAorK,iBACI,IAAIK,EAAUx2L,KAAKmiL,iBACfqU,EAAQ/xL,SACRzE,KAAK+qB,MAAQ,IACjB,IAAIhR,GAAO,EAAIm5G,GAAK,EAAIo+D,GAAW,EACnC,QAASxV,KAAU0a,EAAS,CACxB,IAAItxC,EAAQllJ,KAAKy2L,aAAa3a,GACzB52B,IAEDA,EAAMosC,WACNA,GAAW,IACH,GAARv3K,IACGA,OAAMm5G,MAAOgyB,IAGhBnrI,EAAOmR,KAAK4lC,IAAIo0F,EAAMnrI,KAAMA,GAC5Bm5G,EAAKhoG,KAAKC,IAAI+5H,EAAMhyB,GAAIA,IAAE,CAGlC,MAAO,CAAEn5G,OAAMm5G,KAAIo+D,WACvB,CACAoF,aACI,IAAM38K,OAAMm5G,KAAIo+D,YAAatxL,KAAKm2L,iBAC9BpmB,EAAS/vK,KAAKqzL,kBAAoBp7B,GAAaj4J,KAAKoE,IAAKpE,KAAKmxK,gBAClE,GAAIp3J,EAAO,IAAMg2J,EACb,OAAO,KACPh2J,GAAO,IACP/Z,KAAK0zL,WAAa3qK,KAAKD,OAC3B9oB,KAAK28J,KAAKiT,WAAWuK,cAAgB,EACrCn6K,KAAKqzL,kBAAmB,EACxB,IAAIruC,EAAS,IAAIqsC,GAAUrxL,KAAK28J,KAAM5iJ,EAAMm5G,EAAIo+D,GAChD,YAAK30B,KAAKkI,QAAQ8J,WAAa,CAAEoB,OAAQ/qB,EAAO+qB,OAAS/qB,EAAO+qB,OAAO1qB,KAAO,MACvEL,CACX,CAEA37H,MAAMstK,GAAgB,GAIlB,GAAI32L,KAAKszL,cAAgB,GAAKtzL,KAAKwzL,kBAC/B,OAAO,EACPmD,GACA32L,KAAKgyK,qBACT,IAAIggB,EAAYhyL,KAAK02L,aACrB,IAAK1E,EACD,YAAKr1B,KAAK44B,kBACH,EAEX,IAAI1pC,EAAa7rJ,KAAK28J,KAAKj0I,MACvBkuK,EAAU7E,GAAe/xL,KAAK28J,KAAMq1B,GAExC,OAAIhyL,KAAK28J,KAAKj0I,OAASmjI,IAClBmmC,EAAUrjB,YAAcqjB,EAAUjiB,SAAWiiB,EAAUjiB,OAAO1qB,KAAK1I,GAAG38I,KAAK28J,KAAKj0I,MAAMm9H,UAAUR,QACjGrlJ,KAAK28J,KAAKriJ,OAAO,IACds8K,CACX,CACAH,aAAaI,GACT,IAAIzlB,EAAQpxK,KAAK28J,KAAKkI,QAAQ4O,QAAQojB,EAAI90L,QAC1C,IAAKqvK,GAASA,EAAMzS,eAAek4B,GAC/B,OAAO,KAIX,GAHAzlB,EAAMlT,UAAsB,cAAZ24B,EAAIlsL,MACJ,cAAZksL,EAAIlsL,OACJymK,EAAM5jK,OAAS,GACH,aAAZqpL,EAAIlsL,KAAqB,CACzB,IAAImsL,EAAcC,GAAU3lB,EAAOylB,EAAIl+B,iBAAmBk+B,EAAI90L,OAAO42J,iBAAiB,GAClFq+B,EAAaD,GAAU3lB,EAAOylB,EAAI9pL,aAAe8pL,EAAI90L,OAAOgL,YAAa,GAC7E,MAAO,CAAEgN,KAAM+8K,EAAc1lB,EAAMvU,SAASi6B,GAAe1lB,EAAM5U,WAC7DtpC,GAAI8jE,EAAa5lB,EAAM3U,UAAUu6B,GAAc5lB,EAAM1U,SAAU40B,UAAU,EAAM,CAElF,MAAgB,iBAAZuF,EAAIlsL,KACF,CAAEoP,KAAMq3J,EAAM5U,WAAYtpC,GAAIk+C,EAAM1U,SAAU40B,SAAUuF,EAAI90L,OAAO+L,WAAa+oL,EAAI71G,UAGpF,IAEf,CACAi2G,UAAU5/B,GACFA,GAAOr3J,KAAKq3J,MACZr3J,KAAKk3L,sBAAsBl3L,KAAKq3J,KAChCr3J,KAAKq3J,IAAMA,EACXr3J,KAAKg1L,mBAAmBh1L,KAAKq3J,KAErC,CACA29B,mBAAmB39B,GACfA,EAAI52J,iBAAiB,SAAUT,KAAK20L,UAChC30L,KAAK+zL,WACL/zL,KAAK+zL,WAAWtzL,iBAAiB,SAAUT,KAAK40L,SAEhDv9B,EAAI52J,iBAAiB,cAAeT,KAAK40L,SAC7Cv9B,EAAI52J,iBAAiB,SAAUT,KAAK60L,UACpCx9B,EAAIh2J,SAASZ,iBAAiB,kBAAmBT,KAAK00L,kBAC1D,CACAwC,sBAAsB7/B,GAClBA,EAAI32J,oBAAoB,SAAUV,KAAK60L,UACvCx9B,EAAI32J,oBAAoB,SAAUV,KAAK20L,UACnC30L,KAAK+zL,WACL/zL,KAAK+zL,WAAWrzL,oBAAoB,SAAUV,KAAK40L,SAEnDv9B,EAAI32J,oBAAoB,cAAeV,KAAK40L,SAChDv9B,EAAIh2J,SAASX,oBAAoB,kBAAmBV,KAAK00L,kBAC7D,CACAp6K,OAAOA,GACCta,KAAK8vK,cACL9vK,KAAK8vK,YAAYx1J,OAAOA,GACpBA,EAAOuxI,WAAWhF,MAAM4b,KAAanoJ,EAAOoO,MAAMm+H,MAAM4b,MACxDnoJ,EAAOqiJ,KAAK4S,WAAWO,YAAcx1J,EAAOoO,MAAMm+H,MAAM4b,IAAYziK,KAAK8vK,YAAYA,YAAc,MAE/G,CACAhkK,UACI,IAAIk7I,EAAIif,EAAIkxB,EACZn3L,KAAKq1K,OACwB,QAA5BruB,EAAKhnJ,KAAKmwG,oBAAiC,IAAP62C,GAAyBA,EAAGyuC,aACjC,QAA/BxvB,EAAKjmK,KAAK8zL,uBAAoC,IAAP7tB,GAAyBA,EAAGwvB,aACvC,QAA5B0B,EAAKn3L,KAAK4zL,oBAAiC,IAAPuD,GAAyBA,EAAG1B,aACjE,QAASrxL,KAAOpE,KAAK2zL,cACjBvvL,EAAI1D,oBAAoB,SAAUV,KAAK60L,UAC3C70L,KAAKk3L,sBAAsBl3L,KAAKq3J,KAChCj+F,aAAap5D,KAAKg0L,aAClB56H,aAAap5D,KAAKuzL,eAClBvzL,KAAKq3J,IAAIi/B,qBAAqBt2L,KAAKszL,cACnCtzL,KAAKq3J,IAAIi/B,qBAAqBt2L,KAAKyzL,oBAC/BzzL,KAAK8vK,cACL9vK,KAAK28J,KAAK4S,WAAWO,YAAc,KACnC9vK,KAAK8vK,YAAYhkK,UAEzB,EAEJ,SAASirL,GAAU3lB,EAAOhtK,EAAK64I,GAC3B,KAAO74I,GAAK,CACR,IAAIgzL,EAAU96B,GAAYt4J,IAAII,GAC9B,GAAIgzL,GAAWA,EAAQ/qL,QAAU+kK,EAC7B,OAAOgmB,EACX,IAAI/qL,EAASjI,EAAItD,WACjBsD,EAAMiI,GAAU+kK,EAAMhtK,IAAMiI,EAAS4wI,EAAM,EAAI74I,EAAI2I,YAAc3I,EAAIu0J,gBAEzE,OAAO,IACX,CACA,SAASm9B,GAA6Bn5B,EAAMzX,GACxC,IAAIgT,EAAahT,EAAMqzB,eAAgBte,EAAe/U,EAAM+W,YACxD/B,EAAYhV,EAAMmyC,aAAcl9B,EAAcjV,EAAMoyC,UACpDC,EAAY56B,EAAKkI,QAAQvD,SAAS3E,EAAKj0I,MAAMm9H,UAAUR,KAAK9iH,QAIhE,OAAI+1H,GAAqBi/B,EAAU12L,KAAM02L,EAAUrpI,OAAQgsG,EAAWC,MACjEjC,EAAY+B,EAAcC,EAAWC,GAAe,CAACD,EAAWC,EAAajC,EAAY+B,IACvF,CAAE/B,aAAY+B,eAAcC,YAAWC,cAClD,CAwBA,MAAMo6B,GACF10L,YAAY88J,GAIR38J,KAAK+Z,KAAO,EACZ/Z,KAAKkzH,GAAK,EAMVlzH,KAAKw3L,qBAAuB,KAC5Bx3L,KAAK06K,SAAW/uK,OAAOC,OAAO,MAC9B5L,KAAKy3L,WAAW96B,EAAKj0I,OACrB,IAAIxK,EAAUle,KAAK8vK,YAAc,IAAI9tK,OAAOqyL,YAAY,CACpD3wK,KAAMi5I,EAAKj0I,MAAMxnB,IAAIq8I,YAAYv9I,KAAK+Z,KAAM/Z,KAAKkzH,IACjDwuD,eAAgB1hL,KAAK03L,aAAaxsK,KAAKC,IAAInrB,KAAK+Z,KAAMmR,KAAK4lC,IAAI9wD,KAAKkzH,GAAIypC,EAAKj0I,MAAMm9H,UAAUR,KAAK9iH,UAClGk/I,aAAczhL,KAAK03L,aAAa/6B,EAAKj0I,MAAMm9H,UAAUR,KAAKx8I,QAE9D7I,KAAK06K,SAASid,WAAaxvL,IACvB,IAAMo6B,UAAWo6H,EAAKj0I,MAAMm9H,UAAUR,KAClCL,EAAS,CAAEjrI,KAAM/Z,KAAK43L,YAAYzvL,EAAE0vL,kBACpC3kE,GAAIlzH,KAAK43L,YAAYzvL,EAAE2vL,gBACvBluJ,OAAQuyG,MAAQh0I,EAAEub,KAAK7S,MAAM,QAG7Bm0I,EAAOjrI,MAAQ/Z,KAAK+Z,MAAQwoB,EAASviC,KAAK+Z,KAC1CirI,EAAOjrI,KAAOwoB,EACTyiH,EAAO9xB,IAAMlzH,KAAKkzH,IAAM3wF,EAASviC,KAAKkzH,KAC3C8xB,EAAO9xB,GAAK3wF,IAEZyiH,EAAOjrI,MAAQirI,EAAO9xB,IAAO8xB,EAAOp7G,OAAOnlC,UAE/CzE,KAAKw3L,qBAAuBxyC,EAC5BstC,GAAoB31B,EAAM3X,EAAQC,UAAuBjlJ,KAAK43L,YAAYzvL,EAAEu5K,gBAAiB1hL,KAAK43L,YAAYzvL,EAAEs5K,gBAG5GzhL,KAAKw3L,uBACLx3L,KAAK+3L,cAAcp7B,EAAKj0I,OACxB1oB,KAAKg4L,aAAar7B,EAAKj0I,QAAK,EAGpC1oB,KAAK06K,SAASud,sBAAwB9vL,IAClC,IAAIw5J,EAAQ,GAAIr7D,EAAO,KACvB,QAAS9hG,EAAIxE,KAAK43L,YAAYzvL,EAAE+vL,YAAa1sL,EAAMxL,KAAK43L,YAAYzvL,EAAEgwL,UAAW3zL,EAAIgH,EAAKhH,IAAK,CAC3F,IAAI00J,EAAOyD,EAAKkX,cAAcrvK,GAC9B8hG,EAAQ4yD,GAAQ,IAAIk/B,QAAQl/B,EAAKjpD,KAAMipD,EAAK3Z,IAAK2Z,EAAKhpD,MAAQgpD,EAAKjpD,KAAMipD,EAAKC,OAASD,EAAK3Z,MACrFj5C,GAAQ,IAAI8xF,QACnBz2B,EAAM/4J,KAAK09F,EAAI,CAEnBpoF,EAAQm6K,sBAAsBlwL,EAAE+vL,WAAYv2B,EAAK,EAErD3hK,KAAK06K,SAAS4d,iBAAmBnwL,IAC7B,IAAI67J,EAAO,GACX,QAAS71E,KAAUhmF,EAAEowL,iBAAkB,CACnC,IAAIC,EAAYrqG,EAAOsqG,eAAgBC,EAAYvqG,EAAOwqG,mBACzC,QAAbH,GAAoC,QAAbE,GAEvB10B,EAAKp7J,KAAK48J,GAAW3D,KAAK,CAAEnG,WAAY,CAAE30J,MAD7B,8BAA0C,UAAbyxL,EAAwB,UAAyB,YAAbA,EAA0B,QAAU,KAAkB,QAAbE,EAAsB,EAAI,SAE5IxzC,MAAMllJ,KAAK43L,YAAYzpG,EAAO+pG,YAAal4L,KAAK43L,YAAYzpG,EAAOgqG,WAAU,CAG1Fx7B,EAAKvyI,SAAS,CAAEqhI,QAASugB,GAAyB30J,GAAGmuJ,GAAWh/J,IAAIw9J,KAAQ,EAEhFhkK,KAAK06K,SAASsH,iBAAmB,KACzBrlB,EAAKiT,WAAWC,UAAY,IAC5BlT,EAAKiT,WAAWC,UAAY,EAC5BlT,EAAKiT,WAAW+K,wBAAyB,IAGjD36K,KAAK06K,SAASwH,eAAiB,KAC3BvlB,EAAKiT,WAAWC,WAAY,EAC5BlT,EAAKiT,WAAW+K,uBAAyB,MAE7C,QAAS5wK,KAAS/J,KAAK06K,SACnBx8J,EAAQzd,iBAAiBsJ,EAAO/J,KAAK06K,SAAS3wK,IAClD/J,KAAKw1L,WAAa,CAAE3U,KAAMlkB,IAClB38J,KAAK8vK,YAAY8oB,oBAAoBj8B,EAAK4S,WAAW1M,yBACrD,IAAI3V,EAAM8K,GAAa2E,EAAK3kI,MACxBk1H,GAAOA,EAAIswB,YACXx9K,KAAK8vK,YAAY+oB,sBAAsB3rC,EAAIuwB,WAAW,GAAG5a,wBAAuB,EAEhG,CACAi2B,WAAWx+K,GACP,IAAImpI,EAAM,EAAG/+H,GAAQ,EAAOgF,EAAU1pB,KAAKw3L,qBAC3Cl9K,SAAOquB,QAAQm5G,YAAY,CAACc,EAAOC,EAAKk2C,EAAQh2C,EAAMn5G,KAClD,GAAIllB,EACA,OACJ,IAAIo7I,EAAOl2H,EAAOnlC,QAAUo+I,EAAMD,GAClC,GAAIl5H,GAAWm5H,GAAOn5H,EAAQwpG,GAC1B,IAAIxpG,EAAQ3P,MAAQ6oI,GAASl5H,EAAQwpG,IAAM2vB,GAAOn5H,EAAQkgB,OAAO+yG,GAAG/yG,GAIhE,OAHAlgB,EAAU1pB,KAAKw3L,qBAAuB,KACtC/zC,GAAOqc,OACP9/J,KAAKkzH,IAAM4sC,GAIXp2I,EAAU,KACV1pB,KAAK+3L,cAAcz9K,EAAOoO,MAAK,CAKvC,GAFAk6H,GAASa,GACTZ,GAAOY,IACIzjJ,KAAK+Z,KACZ/Z,KAAK+Z,MAAQ+lJ,EACb9/J,KAAKkzH,IAAM4sC,UAENld,EAAQ5iJ,KAAKkzH,GAAI,CACtB,GAAI0vB,EAAQ5iJ,KAAK+Z,MAAQ8oI,EAAM7iJ,KAAKkzH,IAAOlzH,KAAKkzH,GAAKlzH,KAAK+Z,KAAQ6vB,EAAOnlC,OAAS,IAE9E,YADAigB,GAAQ,GAGZ1kB,KAAK8vK,YAAYkpB,WAAWh5L,KAAK03L,aAAa90C,GAAQ5iJ,KAAK03L,aAAa70C,GAAMj5G,EAAOtzB,YACrFtW,KAAKkzH,IAAM4sC,EAEfrc,GAAOqc,IAEPp2I,IAAYhF,GACZ1kB,KAAK+3L,cAAcz9K,EAAOoO,QACtBhE,CACZ,CACApK,OAAOA,GACH,IAAI2+K,EAAWj5L,KAAKw3L,qBACfx3L,KAAK84L,WAAWx+K,IAAYta,KAAKk5L,aAAa5+K,EAAOoO,QAMjDpO,EAAOitI,YAAcjtI,EAAOm0J,cAAgBwqB,IACjDj5L,KAAKg4L,aAAa19K,EAAOoO,QANzB1oB,KAAKw3L,qBAAuB,KAC5Bx3L,KAAKy3L,WAAWn9K,EAAOoO,OACvB1oB,KAAK8vK,YAAYkpB,WAAW,EAAGh5L,KAAK8vK,YAAYpsJ,KAAKjf,OAAQ6V,EAAOoO,MAAMxnB,IAAIq8I,YAAYv9I,KAAK+Z,KAAM/Z,KAAKkzH,KAC1GlzH,KAAKg4L,aAAa19K,EAAOoO,SAKzBpO,EAAOi0J,iBAAmBj0J,EAAOitI,YAAcjtI,EAAOm0J,eACtDn0J,EAAOqiJ,KAAK44B,eAAev1L,KAAKw1L,WACxC,CACAiC,WAAW/uK,GACP,IAAM7f,QAAS6f,EAAMm9H,UAAUR,KAC/BrlJ,KAAK+Z,KAAOmR,KAAKC,IAAI,EAAGtiB,EAAO,KAC/B7I,KAAKkzH,GAAKhoG,KAAK4lC,IAAIpoC,EAAMxnB,IAAIuD,OAAQoE,EAAO,IAChD,CACAkvL,cAAcrvK,GACV,IAAIgB,EAAU1pB,KAAKw3L,qBACnBx3L,KAAKw3L,qBAAuB,KAC5Bx3L,KAAK8vK,YAAYkpB,WAAWh5L,KAAK03L,aAAahuK,EAAQ3P,MAAO/Z,KAAK03L,aAAahuK,EAAQ3P,KAAO2P,EAAQkgB,OAAOnlC,QAASikB,EAAMxnB,IAAIq8I,YAAY7zH,EAAQ3P,KAAM2P,EAAQwpG,IACtK,CACA8kE,aAAatvK,GACT,IAAM28H,QAAS38H,EAAMm9H,UACjBxiE,EAAQrjF,KAAK03L,aAAaxsK,KAAKC,IAAInrB,KAAK+Z,KAAMmR,KAAK4lC,IAAI9wD,KAAKkzH,GAAImyB,EAAK9iH,UACrE/2B,EAAMxL,KAAK03L,aAAaryC,EAAKx8I,OAC7B7I,KAAK8vK,YAAY4R,gBAAkBr+F,GAASrjF,KAAK8vK,YAAY2R,cAAgBj2K,IAC7ExL,KAAK8vK,YAAY+B,gBAAgBxuF,EAAO73E,EAChD,CACA0tL,aAAaxwK,GACT,IAAM7f,QAAS6f,EAAMm9H,UAAUR,KAC/B,QAASrlJ,KAAK+Z,KAAO,GAAKlR,EAAO7I,KAAK+Z,KAAO,KACzC/Z,KAAKkzH,GAAKxqG,EAAMxnB,IAAIuD,QAAUzE,KAAKkzH,GAAKrqH,EAAO,KAC/C7I,KAAKkzH,GAAKlzH,KAAK+Z,KAAO,IAC9B,CACA69K,YAAYuB,GAAc,OAAOA,EAAan5L,KAAK+Z,IAAM,CACzD29K,aAAa0B,GAAa,OAAOA,EAAYp5L,KAAK+Z,IAAM,CACxDjO,UACI,QAAS/B,KAAS/J,KAAK06K,SACnB16K,KAAK8vK,YAAYpvK,oBAAoBqJ,EAAO/J,KAAK06K,SAAS3wK,GAClE,EAgBJ,IAMMsvL,GAAU,MAAhB,MAAMA,EAIE3wK,YAAU,OAAO1oB,KAAK0kK,UAAUh8I,KAAO,CAQvC4oJ,eAAa,OAAOtxK,KAAK0kK,UAAU4M,QAAU,CAS7C4X,oBAAkB,OAAOlpL,KAAK0kK,UAAUwkB,aAAe,CAKvDd,aAAW,OAAOpoL,KAAK0kK,UAAU0jB,MAAQ,CAMzCvY,gBAAc,OAAO7vK,KAAK4vK,WAAWC,UAAY,CAAG,CAOpDypB,yBAAuB,OAAOt5L,KAAK4vK,WAAWC,WAAa,CAAG,CAI9D73I,WAAS,OAAOh4B,KAAK8iC,KAAO,CAI5Bu0H,UAAQ,OAAOr3J,KAAKoE,IAAIgzJ,cAAcE,aAAet1J,MAAQ,CAMjEnC,YAAY6vC,EAAS,CAAC,GAClB1vC,KAAKuF,QAAU,GACfvF,KAAKu5L,UAAY,IAAI7zL,IACrB1F,KAAKw5L,YAAc,CAAC,EACpBx5L,KAAKy5L,aAAe,CAAC,EACrBz5L,KAAK05L,UAAY,GACjB15L,KAAKw5E,WAAY,EAIjBx5E,KAAK25L,YAAc,EAInB35L,KAAK45L,kBAAmB,EAIxB55L,KAAK65L,gBAAkB,GACvB75L,KAAKuvK,WAAaluK,SAASL,cAAc,OACzChB,KAAKm0K,UAAY9yK,SAASL,cAAc,OACxChB,KAAKm0K,UAAU2lB,UAAW,EAC1B95L,KAAKm0K,UAAUt3F,UAAY,cAC3B78E,KAAKm0K,UAAUzrK,YAAY1I,KAAKuvK,YAChCvvK,KAAK+5L,YAAc14L,SAASL,cAAc,OAC1ChB,KAAK+5L,YAAYl9G,UAAY,eAC7B78E,KAAK+5L,YAAYp3L,aAAa,YAAa,UAC3C3C,KAAKoE,IAAM/C,SAASL,cAAc,OAClChB,KAAKoE,IAAIsE,YAAY1I,KAAK+5L,aAC1B/5L,KAAKoE,IAAIsE,YAAY1I,KAAKm0K,WACtBzkI,EAAOrjC,QACPqjC,EAAOrjC,OAAO3D,YAAY1I,KAAKoE,KACnC,IAAMgmB,YAAaslB,EACnB1vC,KAAKg6L,qBAAuBtqJ,EAAOsqJ,sBAC9B5vK,IAAc6vK,GAAQA,EAAIt0L,QAAQ2hJ,GAAMl9H,EAASk9H,EAAItnJ,SAAK,CACzDi6L,GAAQj6L,KAAKsa,OAAO2/K,IAC1Bj6L,KAAKoqB,SAAWpqB,KAAKoqB,SAASN,KAAK9pB,MACnCA,KAAK8iC,MAAS4M,EAAO1X,MAh5N7B,SAAS6pD,GAAQhhF,GACb,KAAOA,GAAM,CACT,GAAIA,IAA0B,GAAjBA,EAAKY,UAAkC,IAAjBZ,EAAKY,UAAkBZ,EAAKoH,MAC3D,OAAOpH,EACXA,EAAOA,EAAK8xK,cAAgB9xK,EAAKC,WAErC,OAAO,IACX,CAy4NqC+gF,CAAQnyC,EAAOrjC,SAAWhL,SACvDrB,KAAK0kK,UAAY,IAAIwjB,GAAUx4I,EAAOhnB,OAAS0lI,UAAmB1+G,IAC9DA,EAAOwqJ,UAAYxqJ,EAAOwqJ,SAAS/wG,GAAG4iE,MACtC/rJ,KAAK0kK,UAAUqkB,aAAer5I,EAAOwqJ,SAAShuL,MAAMswI,KAAKx8I,KAAK0kK,UAAUh8I,QAC5E1oB,KAAKuF,QAAUvF,KAAK0oB,MAAMm+H,MAAMwlB,IAAY9kK,IAAIs8I,GAAQ,IAAIgpB,GAAehpB,IAC3E,QAASj+I,KAAU5F,KAAKuF,QACpBK,EAAO0U,OAAOta,MAClBA,KAAKwiB,SAAW,IAAI4wK,GAAYpzL,MAChCA,KAAK4vK,WAAa,IAAI+J,GAAW35K,MACjCA,KAAK4vK,WAAWgM,eAAe57K,KAAKuF,SACpCvF,KAAK6kK,QAAU,IAAI6J,GAAQ1uK,MAC3BA,KAAKm6L,cACLn6L,KAAKwjK,cACLxjK,KAAK25L,YAAc,EACnB35L,KAAKu1L,gBACT,CACAnrK,YAAYjD,GACR,IAAI8yK,EAAsB,GAAhB9yK,EAAM1iB,QAAe0iB,EAAM,aAAcykI,GAAczkI,EAC3C,GAAhBA,EAAM1iB,QAAeqV,MAAM2C,QAAQ0K,EAAM,IAAMA,EAAM,GACjD,CAACnnB,KAAK0oB,MAAMpO,UAAU6M,IAChCnnB,KAAKg6L,qBAAqBC,EAAKj6L,KACnC,CASAsa,OAAO6zJ,GACH,GAAwB,GAApBnuK,KAAK25L,YACL,MAAM,IAAIlzL,MAAM,6EACpB,IAA2C6T,EAAvC8/K,GAAU,EAAOC,GAAe,EAChC3xK,EAAQ1oB,KAAK0oB,MACjB,QAAS4+H,MAAM6mB,EAAc,CACzB,GAAI7mB,GAAGuE,YAAcnjI,EACjB,MAAM,IAAI2zH,WAAW,yFACzB3zH,EAAQ4+H,GAAG5+H,MAEf,GAAI1oB,KAAKw5E,UAEL,YADAx5E,KAAK0kK,UAAUh8I,MAAQA,GAG3B,IAAIgyI,EAAQ16J,KAAKm7K,SAAUmf,EAAY,EAAGC,EAAgB,KACtDpsB,EAAav+H,KAAK03G,IAAMA,GAAG6E,WAAWw1B,MACtC3hL,KAAK4vK,WAAWsL,gBAAkBxgB,EAElC4/B,EAAY,GAEP5/B,GAAS16J,KAAK4vK,WAAWsL,kBAC9Bl7K,KAAK4vK,WAAWsL,gBAAkBxgB,EAGlC6/B,EAAgB3Y,GAAuBl5J,EAAOgyI,GACzC6/B,IACDD,EAAY,IAIpB,IAAIE,EAAax6L,KAAKwiB,SAASgxK,kBAAmBxB,EAAY,KAa9D,GAZIwI,GACAx6L,KAAKwiB,SAAS6zK,yBACdrE,EAAYhyL,KAAKwiB,SAASk0K,cAGtB1E,IAAchyL,KAAK0oB,MAAMxnB,IAAIy7I,GAAGj0H,EAAMxnB,OAASlB,KAAK0oB,MAAMm9H,UAAUlJ,GAAGj0H,EAAMm9H,cAC7EmsC,EAAY,OAGhBhyL,KAAKwiB,SAAS7a,QAGd+gB,EAAMm+H,MAAMuH,aAAwBpuJ,KAAK0oB,MAAMm+H,MAAMuH,YACrD,OAAOpuJ,KAAKy6L,SAAS/xK,GACzBpO,EAAS4zJ,GAAWtiK,OAAO5L,KAAM0oB,EAAOylJ,GACxC7zJ,EAAO9M,OAAS8sL,EAChB,IAAIvR,EAAe/oL,KAAK0kK,UAAUqkB,aAClC,IACI/oL,KAAK25L,YAAc,EACnB,QAASryC,MAAM6mB,EAAc,CAGzB,GAFI4a,IACAA,EAAeA,EAAaxhL,IAAI+/I,GAAG3+G,UACnC2+G,GAAGyE,eAAgB,CACnB,IAAM1G,SAASiC,GAAG5+H,MAAMm9H,UACxBkjC,EAAe,IAAInd,GAAavmB,GAAKv+H,MAAQu+H,GAAOJ,UAAuBI,GAAKx8I,KAAMw8I,GAAKx8I,KAAOw8I,GAAK9iH,QAAS,EAAK,GAAE,CAE3H,QAASp6B,MAAKm/I,GAAGmE,QACTtjJ,GAAEghF,GAAG4iE,MACLg9B,EAAe5gL,GAAE+D,MAAMswI,KAAKx8I,KAAK0oB,OAAK,CAElD1oB,KAAK0kK,UAAUpqJ,OAAOA,EAAQyuK,GAC9B/oL,KAAK05L,UAAYgB,GAAYpgL,OAAOta,KAAK05L,UAAWp/K,EAAOquB,SACtDruB,EAAOwM,QACR9mB,KAAK26L,cAAcrgL,GACnBta,KAAK4vK,WAAWt1J,OAAOA,IAE3B8/K,EAAUp6L,KAAK6kK,QAAQvqJ,OAAOA,GAC1Bta,KAAK0oB,MAAMm+H,MAAM8mB,KAAgB3tK,KAAK46L,cACtC56L,KAAKm6L,cACTE,EAAer6L,KAAKwjK,cACpBxjK,KAAK66L,kBAAkB1sB,GACvBnuK,KAAK6kK,QAAQgN,gBAAgBuoB,EAASjsB,EAAav+H,KAAK03G,IAAMA,GAAGgF,YAAY,mBAIjF,CAHA,QAEItsJ,KAAK25L,YAAc,CACvB,CAOA,GANIr/K,EAAOuxI,WAAWhF,MAAMymC,KAAUhzK,EAAOoO,MAAMm+H,MAAMymC,MACrDttL,KAAK0kK,UAAUqM,oBAAqB,IACpCqpB,GAAWC,GAAgBtR,GAAgB/oL,KAAK0kK,UAAUykB,wBAA0BnpL,KAAK0kK,UAAUqM,qBACnG/wK,KAAKu1L,iBACL6E,GACAp6L,KAAK86L,iBACJxgL,EAAOwM,MACR,QAAStmB,MAAYR,KAAK0oB,MAAMm+H,MAAMykB,IAClC,IACI9qK,GAAS8Z,EAIb,CAHA,MACOnS,IACH8jK,GAAajsK,KAAK0oB,MAAOvgB,GAAG,kBAChC,EAEJoyL,GAAiBvI,IACjBv7J,QAAQC,UAAUvyB,KAAK,KACfo2L,GAAiBv6L,KAAK0oB,OAAS6xK,EAAc1uC,YAC7C7rJ,KAAKoqB,SAASmwK,GACdvI,IACKD,GAAe/xL,KAAMgyL,IAAcwI,EAAW52C,OAC/CqX,GAAYj7J,KAAKuvK,WAAYirB,EAAW1pL,IAAK0pL,EAAWr/B,QAAO,EAGnF,CAQAs/B,SAASM,GACL,GAAwB,GAApB/6L,KAAK25L,YACL,MAAM,IAAIlzL,MAAM,+EACpB,GAAIzG,KAAKw5E,UAEL,YADAx5E,KAAK0kK,UAAUh8I,MAAQqyK,GAG3B/6L,KAAK25L,YAAc,EACnB,IAAIqB,EAAWh7L,KAAKm7K,SACpB,IACI,QAASv1K,KAAU5F,KAAKuF,QACpBK,EAAOkG,QAAQ9L,MACnBA,KAAK0kK,UAAY,IAAIwjB,GAAU6S,GAC/B/6L,KAAKuF,QAAUw1L,EAASl0C,MAAMwlB,IAAY9kK,IAAIs8I,GAAQ,IAAIgpB,GAAehpB,IACzE7jJ,KAAKu5L,UAAU5xL,QACf,QAAS/B,KAAU5F,KAAKuF,QACpBK,EAAO0U,OAAOta,MAClBA,KAAK6kK,QAAQ/4J,UACb9L,KAAK6kK,QAAU,IAAI6J,GAAQ1uK,MAC3BA,KAAK4vK,WAAWgM,eAAe57K,KAAKuF,SACpCvF,KAAKm6L,cACLn6L,KAAKwjK,cACLxjK,KAAK05L,UAAY,EAIrB,CAHA,QAEI15L,KAAK25L,YAAc,CACvB,CACIqB,GACAh7L,KAAK06J,QACT16J,KAAKu1L,gBACT,CACAoF,cAAcrgL,GACV,IAAI2gL,EAAY3gL,EAAOuxI,WAAWhF,MAAMwlB,IAAa/e,EAAQhzI,EAAOoO,MAAMm+H,MAAMwlB,IAChF,GAAI4uB,GAAa3tC,EAAO,CACpB,IAAI4tC,EAAa,GACjB,QAASr3C,KAAQyJ,EAAO,CACpB,IAAI52F,EAAQukI,EAAU/pL,QAAQ2yI,GAC9B,GAAIntF,EAAQ,EACRwkI,EAAWtyL,KAAK,IAAIikK,GAAehpB,QAElC,CACD,IAAIj+I,EAAS5F,KAAKuF,QAAQmxD,GAC1B9wD,EAAOknK,WAAaxyJ,EACpB4gL,EAAWtyL,KAAKhD,EAAM,EAG9B,QAASA,KAAU5F,KAAKuF,QAChBK,EAAOknK,YAAcxyJ,GACrB1U,EAAOkG,QAAQ9L,MACvBA,KAAKuF,QAAU21L,EACfl7L,KAAKu5L,UAAU5xL,OAAK,MAGpB,QAAS8xB,KAAKz5B,KAAKuF,QACfk0B,EAAEqzI,WAAaxyJ,EAEvB,QAAS9V,EAAI,EAAGA,EAAIxE,KAAKuF,QAAQd,OAAQD,IACrCxE,KAAKuF,QAAQf,GAAG8V,OAAOta,MACvBi7L,GAAa3tC,GACbttJ,KAAK4vK,WAAWgM,eAAe57K,KAAKuF,QAC5C,CACAu1L,gBACI,QAASl1L,KAAU5F,KAAKuF,QAAS,CAC7B,IAAIgX,EAAM3W,EAAOsG,MACjB,GAAIqQ,GAAOA,EAAIu+K,cACX,IACIv+K,EAAIu+K,cAAc96L,KAItB,CAHA,MACOmI,GACH8jK,GAAajsK,KAAK0oB,MAAOvgB,EAAG,2BAChC,EAGZ,CAIAssK,QAAQprJ,GAAQ,GACZ,GAAIrpB,KAAKw5E,UACL,OAGJ,GAFIx5E,KAAK45L,kBAAmB,GACxB55L,KAAKq3J,IAAIi/B,qBAAqBt2L,KAAK45L,kBACnC55L,KAAKwiB,SAASgxK,kBAGd,OAFAxzL,KAAK45L,kBAAmB,OACxB55L,KAAKu1L,iBAGTv1L,KAAK45L,iBAAmB,EACpBvwK,GACArpB,KAAKwiB,SAAS85J,aAClB,IAAIj+B,EAAU,KACV88C,EAAOn7L,KAAKm0K,UAAWxZ,EAAYwgC,EAAKxgC,UAAY36J,KAAK65J,QACvD8uB,kBAAiBC,sBAAuB5oL,KAAK0kK,UAC/Cx5I,KAAK0B,IAAI+tI,EAAY36J,KAAK0kK,UAAU/J,WAAa,IACjDiuB,GAAqB,GACzB5oL,KAAK0kK,UAAUkkB,oBAAqB,EACpC,IACI,QAASpkL,EAAI,GAAIA,IAAK,CAClB,GAAIokL,EAAqB,EACrB,GAAIhtB,GAAmBu/B,GACnBxS,GAAkB,EAClBC,EAAqB5oL,KAAK0kK,UAAU4kB,UAAUvgG,WAE7C,CACD,IAAI+7E,GAAQ9kK,KAAK0kK,UAAU6lB,eAAe5vB,GAC1CguB,EAAkB7jB,GAAM/qJ,KACxB6uK,EAAqB9jB,GAAMvlB,IAGnCv/I,KAAK25L,YAAc,EACnB,IAAIxxC,EAAUnoJ,KAAK0kK,UAAU+P,QAAQz0K,MACrC,IAAKmoJ,IAAYnoJ,KAAK65L,gBAAgBp1L,QAAyC,MAA/BzE,KAAK0kK,UAAUqkB,aAC3D,MACJ,GAAIvkL,EAAI,EAAG,CACPs7C,QAAQQ,KAAKtgD,KAAK65L,gBAAgBp1L,OAC5B,2CACA,gCACN,MAEJ,IAAI22L,EAAY,GAEA,EAAVjzC,KACDnoJ,KAAK65L,gBAAiBuB,GAAa,CAACA,EAAWp7L,KAAK65L,kBACzD,IAAIvU,EAAW8V,EAAU7zL,IAAIu4B,KACzB,IACI,OAAOA,GAAE+gJ,KAAK7gL,KAKlB,CAJA,MACOmI,IACH8jK,UAAajsK,KAAK0oB,MAAOvgB,IAClBkzL,EACX,IAEA/gL,EAAS4zJ,GAAWtiK,OAAO5L,KAAMA,KAAK0oB,MAAO,IAAK0xK,IAAU,EAChE9/K,EAAO9M,OAAS26I,EACX9J,EAGDA,EAAQ7wI,OAAS26I,EAFjB9J,EAAU/jI,EAGdta,KAAK25L,YAAc,EACdr/K,EAAOwM,QACR9mB,KAAK26L,cAAcrgL,GACnBta,KAAK4vK,WAAWt1J,OAAOA,GACvBta,KAAKwjK,cACL42B,GAAUp6L,KAAK6kK,QAAQvqJ,OAAOA,GAC1B8/K,IACAp6L,KAAK86L,iBAEb,QAASt2L,GAAI,EAAGA,GAAI42L,EAAU32L,OAAQD,KAClC,GAAI8gL,EAAS9gL,KAAM62L,GACf,IACI,IAAIv7J,GAAIs7J,EAAU52L,IACds7B,GAAEw7J,OACFx7J,GAAEw7J,MAAMhW,EAAS9gL,IAAIxE,KAI7B,CAHA,MACOmI,IACH8jK,GAAajsK,KAAK0oB,MAAOvgB,GAC7B,CAIR,GAFIiyL,IACAp6L,KAAK6kK,QAAQgN,iBAAgB,IAC5Bv3J,EAAO+zJ,iBAAkD,GAA/BruK,KAAK65L,gBAAgBp1L,OAAa,CAC7D,GAAIzE,KAAK0kK,UAAU8jB,aACf,IAAIxoL,KAAK0kK,UAAUqkB,aAAc,CAC7B/oL,KAAK6kK,QAAQ9Y,eAAe/rJ,KAAK0kK,UAAUqkB,cAC3C/oL,KAAK0kK,UAAUqkB,aAAe,KAC9BH,GAAqB,EACrB,SAEC,CAGD,IAAI94E,IAFkB64E,EAAkB,EAAI3oL,KAAK0kK,UAAU4kB,UAAUvgG,OACjE/oF,KAAK0kK,UAAUmQ,YAAY8T,GAAiBppC,KACnBqpC,EAC7B,GAAI94E,GAAO,GAAKA,IAAO,EAAI,CACvB6qD,GAAwB7qD,GACxBqrF,EAAKxgC,UAAYA,EAAY36J,KAAK65J,OAClC+uB,GAAqB,EACrB,WAIZ,OAOZ,CAJA,QAEI5oL,KAAK25L,YAAc,EACnB35L,KAAK45L,kBAAmB,CAC5B,CACA,GAAIv7C,IAAYA,EAAQv3H,MACpB,QAAStmB,KAAYR,KAAK0oB,MAAMm+H,MAAMykB,IAClC9qK,EAAS69I,EACrB,CAIIk9C,mBACA,OAAO9N,GAAc,KAChBztL,KAAK0oB,MAAMm+H,MAAM2mC,IAAaG,GAAaD,IAAe,IAC3D1tL,KAAK0oB,MAAMm+H,MAAMymC,GACzB,CACA9pB,cACI,IAAIg2B,EAAcgC,GAAex7L,KAAM+sK,GAAkB,CACrDhL,MAAO,aAAe/hK,KAAKm7K,SAAW,eAAiB,KAAOn7K,KAAKu7L,eAEnE9B,EAAe,CACfgC,WAAY,QACZC,YAAa,MACbC,eAAgB,MAChBC,UAAW,KACXC,gBAAkB77L,KAAK0oB,MAAMm+H,MAAM4b,IAAsB,OAAV,QAC/CV,MAAO,aACPh7J,MAAQ,GAAE05J,GAAQxR,YAAYjvJ,KAAK0oB,MAAMumI,UACzChlG,KAAM,UACN,iBAAkB,QAElBjqD,KAAK0oB,MAAMwiI,WACXuuC,EAAa,iBAAmB,QACpC+B,GAAex7L,KAAMgtK,GAAmBysB,GACxC,IAAItxC,EAAUnoJ,KAAKwiB,SAAS6gJ,OAAO,KAC/B,IAAIy4B,EAAiBt4B,GAAYxjK,KAAKuvK,WAAYvvK,KAAKy5L,aAAcA,GACjEsC,EAAgBv4B,GAAYxjK,KAAKoE,IAAKpE,KAAKw5L,YAAaA,GAC5D,OAAOsC,GAAkBC,IAE7B,YAAKvC,YAAcA,EACnBx5L,KAAKy5L,aAAeA,EACbtxC,CACX,CACA0yC,kBAAkBZ,GACd,IAAI95K,GAAQ,EACZ,QAASmnI,KAAM2yC,EACX,QAASvuC,KAAUpE,EAAGmE,QACdC,EAAOviE,GAAGkwG,EAAW2C,YACjB77K,IACAngB,KAAK+5L,YAAYtxL,YAAc,IACnC0X,GAAQ,EACEngB,KAAK+5L,YAAYrxL,YAAYrH,SAASL,cAAc,QAC1DyH,YAAcijJ,EAAOx/I,MAEzC,CACAiuL,cACIn6L,KAAK46L,aAAe56L,KAAK0oB,MAAMm+H,MAAM8mB,IACrC,IAAI5W,EAAQ/2J,KAAK0oB,MAAMm+H,MAAMwyC,EAAW4C,UACxC3lC,SAAkBt2J,KAAKg4B,KAAMh4B,KAAK46L,aAAangL,OAAOszK,IAAa/nL,UAAW+wJ,EAAQ,CAAEA,cAAU9oJ,EACtG,CACAiuL,eACI,GAAwB,GAApBl8L,KAAK25L,YACL,MAAM,IAAIlzL,MAAM,4DACI,GAApBzG,KAAK25L,aAA2C35L,KAAK45L,kBAAmB,GACxE55L,KAAKy0K,SAAQ,EACrB,CASA8gB,eAAer1K,GAGX,GAFIlgB,KAAK45L,iBAAmB,IACxB55L,KAAK45L,iBAAmB55L,KAAKq3J,IAAI++B,sBAAsB,IAAMp2L,KAAKy0K,YAClEv0J,EAAS,CACT,GAAIlgB,KAAK65L,gBAAgB3oL,QAAQgP,IAAW,EACxC,OACJ,GAAmB,MAAfA,EAAQpP,IACR,QAAStM,EAAI,EAAGA,EAAIxE,KAAK65L,gBAAgBp1L,OAAQD,IAC7C,GAAIxE,KAAK65L,gBAAgBr1L,GAAGsM,MAAQoP,EAAQpP,IAExC,YADA9Q,KAAK65L,gBAAgBr1L,GAAK0b,GAItClgB,KAAK65L,gBAAgBjxL,KAAKsX,EAAO,CAEzC,CAOAta,OAAOA,GACH,IAAI6kJ,EAAQzqJ,KAAKu5L,UAAUv1L,IAAI4B,GAC/B,YAAcqI,IAAVw8I,GAAuBA,GAASA,EAAM5G,MAAQj+I,IAC9C5F,KAAKu5L,UAAU/yL,IAAIZ,EAAQ6kJ,EAAQzqJ,KAAKuF,QAAQq6B,KAAKnG,GAAKA,EAAEoqH,MAAQj+I,IAAW,MAC5E6kJ,GAASA,EAAMnwI,OAAOta,MAAMkM,KACvC,CAMIiwL,kBACA,OAAOn8L,KAAKuvK,WAAW1M,wBAAwBtjB,IAAMv/I,KAAK0kK,UAAUkT,UACxE,CAIIwkB,sBACA,MAAO,CAAE78C,IAAKv/I,KAAK0kK,UAAUkT,WAAYze,OAAQn5J,KAAK0kK,UAAU2jB,cACpE,CAMI1uB,aAAW,OAAO35J,KAAK0kK,UAAU/K,MAAQ,CAIzCE,aAAW,OAAO75J,KAAK0kK,UAAU7K,MAAQ,CAM7Coe,gBAAgBlvF,GACZ,YAAKmzG,eACEl8L,KAAK0kK,UAAUuT,gBAAgBlvF,EAC1C,CAOA6jG,kBAAkB7jG,GACd,YAAKmzG,eACEl8L,KAAK0kK,UAAUkoB,kBAAkB7jG,EAC5C,CAOIszG,yBACA,OAAOr8L,KAAK0kK,UAAUslB,aAC1B,CASAnV,YAAY/gI,GACR,OAAO9zC,KAAK0kK,UAAUmQ,YAAY/gI,EACtC,CAIIm9H,oBACA,OAAOjxK,KAAK0kK,UAAUuM,aAC1B,CAiBAgI,WAAW51F,EAAO68D,EAASg5B,GACvB,OAAOO,GAAUz5K,KAAMqjF,EAAO41F,GAAWj5K,KAAMqjF,EAAO68D,EAASg5B,GACnE,CAMAojB,YAAYj5G,EAAO68D,GACf,OAAOu5B,GAAUz5K,KAAMqjF,EAAO41F,GAAWj5K,KAAMqjF,EAAO68D,EAASq8C,GA1mIvE,SAASC,GAAQ7/B,EAAM7oH,EAAKuvC,GACxB,IAAIo7F,EAAa9hB,EAAKj0I,MAAM6mI,gBAAgBz7G,GACxCu3E,EAAMozD,EAAWp7F,GACrB,OAAQvqE,IACJ,IAAI2jL,EAAUhe,EAAW3lK,GACzB,OAAIuyG,GAAOyiC,WACPziC,EAAMoxE,GACHpxE,GAAOoxE,EAEtB,CAimIkFD,CAAQx8L,KAAMqjF,EAAMx6E,KAAM0zL,IACxG,CAOAljB,eAAe//J,EAAM9N,GACjB,IAAI88J,EAAQtoK,KAAKo5K,UAAU9/J,GAAO2jI,EAAMj9I,KAAKw0K,gBAAgBl7J,EAAKS,MAC9D65I,EAAO0U,EAAM98J,EAAM88J,EAAM7jK,OAAS,EAAI,GAC1C,OAAOwgJ,UAAuB2O,EAAKvE,KAAK7jJ,EAAKyxI,GAAO3jI,EAAKS,KAAM65I,EAAK1T,SAAS10I,EAAKyxI,GAAO,GAAI,EACjG,CAQA4uC,mBAAmBxoG,EAAO68D,EAASw8C,GAAc,GAC7C,OArqIR,SAAS7Q,GAAmBlvB,EAAMt5E,EAAO68D,EAASw8C,GAC9C,IAAIpjL,EAAO0/J,GAAQrc,EAAMt5E,EAAMx6E,MAC3B6uK,EAAUglB,GAAepjL,EAAK3O,MAAQy6J,GAAUjpB,OAAUwgB,EAAKkc,cAAgBv/J,EAAKsqK,kBAClFjnB,EAAKggC,YAAYt5G,EAAMi/D,MAAQ,GAAKj/D,EAAMx6E,KAAOyQ,EAAKS,KAAOspE,EAAMx6E,KAAO,EAAIw6E,EAAMx6E,MADkB,KAE5G,GAAI6uK,EAAQ,CACR,IAAIklB,EAAajgC,EAAKv4J,IAAIy+J,wBACtB4F,EAAY9L,EAAK6X,gBAAgBl7J,EAAKS,MACtC+5B,EAAM6oH,EAAK8a,YAAY,CAAEpjJ,EAAG6rH,IAAYuoB,GAAad,GAAUC,KAAOg1B,EAAW1sF,MAAQ,EAAI0sF,EAAW3sF,KAAO,EAC/G/a,GAAIwiF,EAAOn4B,IAAMm4B,EAAOve,QAAU,IACtC,GAAW,MAAPrlH,EACA,OAAOmxG,UAAuBnxG,EAAKosG,GAAU,EAAK,EAAC,CAE3D,OAAO+E,UAAuB/E,EAAU5mI,EAAK45G,GAAK55G,EAAKS,KAAMmmI,GAAU,EAAK,EAChF,CAwpIe2rC,CAAmB7rL,KAAMqjF,EAAO68D,EAASw8C,EACpD,CAcAG,eAAex5G,EAAO68D,EAAS48C,GAC3B,OAAOrjB,GAAUz5K,KAAMqjF,EAroI/B,SAASw5G,GAAelgC,EAAMt5E,EAAO68D,EAAS48C,GAC1C,IAAIC,EAAW15G,EAAMx6E,KAAMo0I,EAAMiD,EAAU,GAAI,EAC/C,GAAI68C,IAAa78C,EAAUyc,EAAKj0I,MAAMxnB,IAAIuD,OAAS,GAC/C,OAAOwgJ,UAAuB83C,EAAU15G,EAAMi/D,OAClD,IAA6B06C,EAAzBC,EAAO55G,EAAM0hE,WACbmU,EAAOyD,EAAK4S,WAAW1M,wBACvBq6B,EAAcvgC,EAAKggC,YAAYI,EAAU15G,EAAMi/D,QAAS,GAAKq1B,EAAShb,EAAKw/B,YAC/E,GAAIe,EACY,MAARD,IACAA,EAAOC,EAAYjtF,KAAOipD,EAAKjpD,MACnC+sF,EAAS//C,EAAM,EAAIigD,EAAY39C,IAAM29C,EAAY/jC,WAEhD,CACD,IAAI7/I,GAAOqjJ,EAAK+H,UAAUmQ,YAAYkoB,GAC1B,MAARE,IACAA,EAAO/xK,KAAK4lC,IAAIooG,EAAKhpD,MAAQgpD,EAAKjpD,KAAM0sD,EAAKic,uBAAyBmkB,EAAWzjL,GAAKS,QAC1FijL,GAAU//C,EAAM,EAAI3jI,GAAKimI,IAAMjmI,GAAK6/I,QAAUwe,EAElD,IAAIwlB,EAAejkC,EAAKjpD,KAAOgtF,EAC3Bt4B,EAAOm4B,GAAuDngC,EAAK+H,UAAUD,aAAaJ,YAAc,EAC5G,QAAS+4B,GAAQ,GAAIA,IAAS,GAAI,CAC9B,IAAIC,GAAOL,GAAUr4B,EAAOy4B,IAASngD,EACjCnpG,GAAM2jI,GAAY9a,EAAM,CAAEtoI,EAAG8oK,EAAcjoG,EAAGmoG,KAAQ,EAAOpgD,GACjE,GAAIogD,GAAOnkC,EAAK3Z,KAAO89C,GAAOnkC,EAAKC,SAAWlc,EAAM,EAAInpG,GAAMipJ,EAAWjpJ,GAAMipJ,GAAW,CACtF,IAAIO,GAAW3gC,EAAKkI,QAAQgP,cAAc//H,IAE1C,OAAOmxG,UAAuBnxG,IADjBwpJ,IAAYD,GAAOC,GAAS/9C,KAAM,EAAK,OACVtxI,EAAWgvL,EAAI,EAGrE,CAwmIsCJ,CAAe78L,KAAMqjF,EAAO68D,EAAS48C,GACvE,CAWAx7B,SAASxtH,GACL,OAAO9zC,KAAK6kK,QAAQvD,SAASxtH,EACjC,CAMAypJ,SAAS18L,EAAMqtD,EAAS,GACpB,OAAOluD,KAAK6kK,QAAQuO,WAAWvyK,EAAMqtD,EACzC,CACAupH,YAAYC,EAAQtb,GAAU,GAC1B,YAAK8/B,eACEzkB,GAAYz3K,KAAM03K,EAAQtb,EACrC,CAQAugC,YAAY7oJ,EAAKu7G,EAAO,GACpBrvJ,KAAKk8L,eACL,IAAIhjC,EAAOl5J,KAAK6kK,QAAQpD,SAAS3tH,EAAKu7G,GACtC,IAAK6J,GAAQA,EAAKjpD,MAAQipD,EAAKhpD,MAC3B,OAAOgpD,EACX,IAAI5/I,EAAOtZ,KAAK0oB,MAAMxnB,IAAIk7I,OAAOtoG,GAAMw0H,EAAQtoK,KAAKo5K,UAAU9/J,GAE9D,OAAO2/I,GAAYC,EADRoP,EAAMD,GAASzoI,KAAK0oI,EAAOx0H,EAAMx6B,EAAKS,MAAM,EAAIs1I,IAC5BpS,KAAO0qB,GAAUC,KAASvY,EAAO,EACpE,CAQAwkB,cAAc//H,GACV,YAAKooJ,eACEl8L,KAAK6kK,QAAQgP,cAAc//H,EACtC,CAMI8kI,4BAA0B,OAAO54K,KAAK0kK,UAAUD,aAAaD,SAAW,CAKxEsU,wBAAsB,OAAO94K,KAAK0kK,UAAUD,aAAaF,UAAY,CAMrE+P,oBAAkB,OAAOt0K,KAAK0kK,UAAUukB,oBAAsB,CAUlEzU,gBAAgB1gI,GAEZ,OADc9zC,KAAK0oB,MAAMm+H,MAAM4kB,KACf33H,EAAM9zC,KAAKsxK,SAASv3J,MAAQ+5B,EAAM9zC,KAAKsxK,SAASp+C,GACrDlzH,KAAKs0K,eAChBt0K,KAAKk8L,eACEl8L,KAAK6kK,QAAQ2P,gBAAgB1gI,GACxC,CAOI+kI,mBAAiB,OAAO74K,KAAK0kK,UAAUD,aAAaoU,YAAc,CAStEO,UAAU9/J,GACN,GAAIA,EAAK7U,OAAS+4L,GACd,OAAO/yB,GAAanxJ,EAAK7U,QAC7B,IAA2CokK,EAAvC5rB,EAAMj9I,KAAKw0K,gBAAgBl7J,EAAKS,MACpC,QAAS29D,KAAS13E,KAAK05L,UACnB,GAAIhiH,EAAM39D,MAAQT,EAAKS,MAAQ29D,EAAMulE,KAAOA,IACvCvlE,EAAM+lH,OAASj1B,GAAW9wF,EAAMmxF,SAAUA,EAAWuE,EAAkBptK,KAAMsZ,KAC9E,OAAOo+D,EAAM4wF,MAEhBO,IACDA,EAAWuE,EAAkBptK,KAAMsZ,IACvC,IAAIgvJ,EAloLZ,SAASo1B,GAAapkL,EAAMmvJ,EAAWI,GACnC,IAAKvvJ,EACD,MAAO,CAAC,IAAI+uJ,GAAS,EAAG,EAAGI,GAAaZ,GAAM,EAAI,IACtD,GAAIY,GAAab,KAAQiB,EAASpkK,SAAW2jK,GAAOjlJ,KAAK7J,GACrD,OAAOmxJ,GAAanxJ,EAAK7U,QAC7B,GAAIokK,EAASpkK,OACT,KAAO6U,EAAK7U,OAASikK,GAAMjkK,QACvBikK,GAAMA,GAAMjkK,QAAU,IAC9B,IAAI6jK,EAAQ,GAAIxjB,EAAQ2jB,GAAab,GAAM,EAAI,EAC/C6B,UAAoBnwJ,EAAMwrI,EAAOA,EAAO+jB,EAAU,EAAGvvJ,EAAK7U,OAAQ6jK,GAC3DA,CACX,CAunLoBo1B,CAAapkL,EAAKoK,KAAMu5H,EAAK4rB,GACzC,YAAK6wB,UAAU9wL,KAAK,IAAI8xL,GAAYphL,EAAKS,KAAMT,EAAK45G,GAAI+pB,EAAK4rB,GAAU,EAAMP,IACtEA,CACX,CAII6S,eACA,IAAIn0B,EAKJ,OAAQhnJ,KAAKoE,IAAIgzJ,cAAc+jB,YAAc1a,GAAQH,SAAsC,QAA1BtZ,EAAKhnJ,KAAK4vK,kBAA+B,IAAP5oB,OAAgB,EAASA,EAAGwzB,iBAAmBzxJ,KAAKD,MAAQ,MAC3J9oB,KAAKg4B,KAAKk6I,eAAiBlyK,KAAKuvK,UACxC,CAIA7U,QACI16J,KAAKwiB,SAAS6gJ,OAAO,KACjB7I,GAAmBx6J,KAAKuvK,YACxBvvK,KAAK6kK,QAAQgN,iBAAe,EAEpC,CAKA8rB,QAAQ3lK,GACAh4B,KAAK8iC,OAAS9K,IACdh4B,KAAK8iC,MAAQ9K,EACbh4B,KAAKwiB,SAASy0K,WAA4B,GAAjBj/J,EAAKv2B,SAAgBu2B,EAAOA,EAAKo/H,eAAeE,aAAet1J,QACxFhC,KAAKm6L,cAEb,CAOAruL,UACQ9L,KAAKg4B,KAAKk6I,eAAiBlyK,KAAKuvK,YAChCvvK,KAAKuvK,WAAWqD,OACpB,QAAShtK,KAAU5F,KAAKuF,QACpBK,EAAOkG,QAAQ9L,MACnBA,KAAKuF,QAAU,GACfvF,KAAK4vK,WAAW9jK,UAChB9L,KAAK6kK,QAAQ/4J,UACb9L,KAAKoE,IAAIxD,SACTZ,KAAKwiB,SAAS1W,UACV9L,KAAK45L,kBAAmB,GACxB55L,KAAKq3J,IAAIi/B,qBAAqBt2L,KAAK45L,kBACvC55L,KAAKw5E,WAAY,CACrB,CAMAr5E,sBAAsB2zC,EAAKl4B,EAAU,CAAC,GAClC,OAAOmwI,GAAe10I,GAAG,IAAIu0J,GAA2B,iBAAP93H,EAAkBmxG,UAAuBnxG,GAAOA,EAAKl4B,EAAQs5E,EAAGt5E,EAAQyY,EAAGzY,EAAQiwJ,QAASjwJ,EAAQkwJ,SACzJ,CAaA8xB,iBACI,IAAMjjC,YAAWC,cAAe56J,KAAKm0K,UACjCxqI,EAAM3pC,KAAK0kK,UAAU6lB,eAAe5vB,GACxC,OAAO5O,GAAe10I,GAAG,IAAIu0J,GAAa3mB,UAAuBt7G,EAAI5vB,MAAO,QAAS,QAAS4vB,EAAI41G,IAAMob,EAAWC,GAAY,GACnI,CAYAijC,gBAAgB3qE,GACF,MAANA,EACAlzH,KAAK4vK,WAAW2K,aAAev6K,KAAK4vK,WAAW2K,aAAe,EAAI,GAAI,EACpD,kBAANrnD,EACZlzH,KAAK4vK,WAAW2K,aAAernD,EAAK,GAAI,EACH,GAAhClzH,KAAK4vK,WAAW2K,eACrBv6K,KAAK4vK,WAAW2K,aAAexxJ,KAAKD,MAAQoqG,EACpD,CAaA/yH,wBAAwBu6K,GACpB,OAAOpO,GAAWzjB,OAAO,MAAQ,GAAI,CAAE6jB,cAAegO,GAC1D,CASAv6K,yBAAyBw7K,GACrB,OAAOrP,GAAWzjB,OAAO,MAAQ,GAAI,CAAE8jB,eAAgBgP,GAC3D,CAmBAx7K,aAAa0jJ,EAAMjoI,GACf,IAAIkiL,EAASxnC,aACThlJ,EAAS,CAACg8K,GAAMj2K,GAAGymL,GAASnwB,GAAYt2J,GAAGw2K,GAAY,IAAGiQ,IAAUj6C,KACxE,OAAIjoI,GAAWA,EAAQmiL,MACnBzsL,EAAO1I,KAAK4kL,GAAUn2K,IAAG,IACtB/F,CACX,CAQAnR,iBAAiB0jJ,GACb,OAAO+F,UAAY+jB,GAAYt2J,GAAGw2K,GAAW,IAAMJ,GAAa5pC,EAAM+pC,KAC1E,CAKAztL,mBAAmBiE,GACf,IAAI4iJ,EACJ,IAAIx6I,EAAUpI,EAAI9B,cAAc,eAEhC,OAAgF,QAAvE0kJ,GADGx6I,GAAW8vJ,GAAYt4J,IAAIwI,IAAY8vJ,GAAYt4J,IAAII,KACDq6J,gBAA6B,IAAPzX,OAAgB,EAASA,EAAG2V,OAAS,IACjI,EASJ08B,SAAW1rB,YAAcA,GAYzB0rB,EAAW9tB,aAAeA,GAO1B8tB,EAAW1tB,cAAgBA,GAK3B0tB,EAAW7tB,kBAAoBA,GAO/B6tB,EAAW5tB,qBAAuBA,GAQlC4tB,EAAWhuB,cAAgBA,GAK3BguB,EAAW/tB,eAAiBA,GAS5B+tB,EAAW52B,SAAWA,GAOtB42B,EAAWjuB,oBAAsBA,GAOjCiuB,EAAWjZ,mBAAqBjV,GAOhCkuB,EAAWnuB,wBAA0BA,GAiBrCmuB,EAAW7xB,YAAcA,GAUzB6xB,EAAWpsB,iBAAmBA,GAY9BosB,EAAWnsB,aAAeA,EAU1BmsB,EAAWlsB,mBAAqBA,EAQhCksB,EAAW5rB,cAAgBA,EAO3B4rB,EAAW7L,UAAYA,GAMvB6L,EAAW4C,SAAwBj2C,UAAa,CAAEC,QAAStsI,GAAUA,EAAOlV,OAASkV,EAAO,GAAK,KAKjG0/K,EAAWrsB,kBAAoBA,GAK/BqsB,EAAWtsB,iBAAmBA,GAK9BssB,EAAWxgB,aAA4BwgB,EAAWrsB,kBAAkB31J,GAAG,CAAE0qJ,MAAS,oBASlFs3B,EAAW2C,SAAwB1wC,YAllC7B+tC,CAAU,KAolChB,MAAMmE,GAAc,KACdnC,GAAa,CAAC,EACpB,MAAMX,GACF76L,YAAYka,EAAMm5G,EAAI+pB,EAAK4rB,EAAU40B,EAAOn1B,GACxCtoK,KAAK+Z,KAAOA,EACZ/Z,KAAKkzH,GAAKA,EACVlzH,KAAKi9I,IAAMA,EACXj9I,KAAK6oK,SAAWA,EAChB7oK,KAAKy9L,MAAQA,EACbz9L,KAAKsoK,MAAQA,CACjB,CACAnoK,cAAc69L,EAAOr1J,GACjB,GAAIA,EAAQ7hB,QAAUk3K,EAAMpuJ,KAAKtY,GAAKA,EAAEmmK,OACpC,OAAOO,EACX,IAAI1sL,EAAS,GAAI2sL,EAAUD,EAAMv5L,OAASu5L,EAAMA,EAAMv5L,OAAS,GAAGw4I,IAAM0qB,GAAUC,IAClF,QAASpjK,EAAI0mB,KAAKC,IAAI,EAAG6yK,EAAMv5L,OAAS,IAAKD,EAAIw5L,EAAMv5L,OAAQD,IAAK,CAChE,IAAIkzE,EAAQsmH,EAAMx5L,GACdkzE,EAAMulE,KAAOghD,IAAYt1J,EAAQ65G,aAAa9qE,EAAM39D,KAAM29D,EAAMw7C,KAChE5hH,EAAO1I,KAAK,IAAI8xL,GAAY/xJ,EAAQ05G,OAAO3qE,EAAM39D,KAAM,GAAI4uB,EAAQ05G,OAAO3qE,EAAMw7C,IAAI,GAAKx7C,EAAMulE,IAAKvlE,EAAMmxF,UAAU,EAAOnxF,EAAM4wF,OAAM,CAE/I,OAAOh3J,CACX,EAEJ,SAASkqL,GAAe7+B,EAAM9V,EAAOnsI,GACjC,QAASwjL,EAAUvhC,EAAKj0I,MAAMm+H,MAAMA,GAAQriJ,EAAI05L,EAAQz5L,OAAS,EAAGD,GAAK,EAAGA,IAAK,CAC7E,IAAI0T,EAASgmL,EAAQ15L,GAAI0H,EAAyB,mBAAVgM,EAAuBA,EAAOykJ,GAAQzkJ,EAC1EhM,GACAg3J,GAAah3J,EAAOwO,EAAI,CAEhC,OAAOA,CACX,CAEA,MAAMyjL,GAAkB19B,GAAQ3I,IAAM,MAAQ2I,GAAQC,QAAU,MAAQD,GAAQE,MAAQ,QAAU,MAoClG,SAASy9B,GAAUh7L,EAAM2G,EAAOkG,GAC5B,OAAIlG,EAAM6F,SACNxM,EAAO,OAASA,GAChB2G,EAAM+F,UACN1M,EAAO,QAAUA,GACjB2G,EAAMiG,UACN5M,EAAO,QAAUA,IACP,IAAV6M,GAAmBlG,EAAMmG,WACzB9M,EAAO,SAAWA,GACfA,CACX,CACA,MAaMi7L,GAAsBr4C,UAAa,CAAEI,QAbNwD,WAA0ByvC,GAAW9sB,iBAAiB,CACvFkP,SAAQ1xK,EAAO4yJ,IACJ+e,GAAY4iB,GAAU3hC,EAAKj0I,OAAQ3e,EAAO4yJ,EAAM,eAYzD4hC,GAAuB,IAAInoJ,QAGjC,SAASkoJ,GAAU51K,GACf,IAAI81K,EAAW91K,EAAMm+H,MAAMw3C,IACvB92L,EAAMg3L,GAAQv6L,IAAIw6L,GACtB,OAAKj3L,GACDg3L,GAAQ/3L,IAAIg4L,EAAUj3L,EAa9B,SAASk3L,GAAYD,EAAUv5K,EAAWk5K,IACtC,IAAIO,EAAQ/yL,OAAOC,OAAO,MACtB+yL,EAAWhzL,OAAOC,OAAO,MACzBgzL,EAAc,CAACx7L,EAAM+lF,KACrB,IAAI9wD,EAAUsmK,EAASv7L,GACvB,GAAe,MAAXi1B,EACAsmK,EAASv7L,GAAQ+lF,UACZ9wD,GAAW8wD,EAChB,MAAM,IAAI1iF,MAAM,eAAiBrD,EAAO,kEAAiE,EAE7GkF,EAAM,CAACu2L,EAAO/tL,EAAKmuB,EAASj1B,EAAgB80L,KAC5C,IAAI93C,EAAIif,EACR,IAAI84B,GAAWL,EAAMG,KAAWH,EAAMG,GAASlzL,OAAOC,OAAO,OACzD+E,GAAQG,EAAID,MAAM,UAAUtJ,IAAIwxB,IA7F5C,SAASimK,GAAiB57L,EAAM6hB,GAC5B,MAAMtU,EAAQvN,EAAKyN,MAAM,UACzB,IAGIlB,EAAKsvL,EAAMhvL,EAAOF,EAHlBuB,EAASX,EAAMA,EAAMlM,OAAS,GACpB,SAAV6M,IACAA,EAAS,KAEb,QAAS9M,EAAI,EAAGA,EAAImM,EAAMlM,OAAS,IAAKD,EAAG,CACvC,MAAMozJ,EAAMjnJ,EAAMnM,GAClB,GAAI,kBAAkB2e,KAAKy0I,GACvB7nJ,GAAO,UACF,YAAYoT,KAAKy0I,GACtBjoJ,GAAM,UACD,sBAAsBwT,KAAKy0I,GAChCqnC,GAAO,UACF,cAAc97K,KAAKy0I,GACxB3nJ,GAAQ,WACH,SAASkT,KAAKy0I,GAOnB,MAAM,IAAInxJ,MAAM,+BAAiCmxJ,GANjC,OAAZ3yI,EACAlV,GAAO,EAEPkvL,GAAO,CAGyC,EAE5D,OAAItvL,IACA2B,EAAS,OAASA,GAClB2tL,IACA3tL,EAAS,QAAUA,GACnBvB,IACAuB,EAAS,QAAUA,GACnBrB,IACAqB,EAAS,SAAWA,GACjBA,CACX,CA2DiD0tL,CAAiBjmK,GAAG9T,IAC7D,QAASzgB,GAAI,EAAGA,GAAImM,GAAMlM,OAAQD,KAAK,CACnC,IAAIs5L,GAASntL,GAAM5K,MAAM,EAAGvB,IAAGsY,KAAK,KACpC8hL,EAAYd,IAAQ,GACfiB,GAASjB,MACViB,GAASjB,IAAU,CACf9zL,gBAAgB,EAChB80L,iBAAiB,EACjBj5I,IAAK,CAAE82G,KACC,IAAIuiC,GAASC,GAAe,CAAExiC,QAAMmhC,UAAQe,SAC5Cj+I,kBAAW,KAAYu+I,IAAgBD,KACnCC,GAAe,OAASC,KACrB,KAEnB,CAER,IAAIC,GAAO1uL,GAAMmM,KAAK,KACtB8hL,EAAYS,IAAM,GAClB,IAAIC,GAAUP,GAASM,MAAUN,GAASM,IAAQ,CAC9Cr1L,gBAAgB,EAChB80L,iBAAiB,EACjBj5I,KAAkF,QAA3EogH,EAA8B,QAAxBjf,EAAK+3C,GAASQ,YAAyB,IAAPv4C,OAAgB,EAASA,EAAGnhG,WAAwB,IAAPogH,OAAgB,EAASA,EAAGlgK,UAAY,KAElIk5B,GACAqgK,GAAQz5I,IAAIj9C,KAAKq2B,GACjBj1B,IACAs1L,GAAQt1L,gBAAiB,GACzB80L,IACAQ,GAAQR,iBAAkB,IAElC,QAAS7tK,KAAKutK,EAAU,CACpB,IAAI1Q,EAAS78J,EAAE4tK,MAAQ5tK,EAAE4tK,MAAMhuL,MAAM,KAAO,CAAC,UAC7C,GAAIogB,EAAEuuK,IACF,QAASX,KAAS/Q,EAAQ,CACtB,IAAIiR,EAAWL,EAAMG,KAAWH,EAAMG,GAASlzL,OAAOC,OAAO,OACxDmzL,EAASQ,OACVR,EAASQ,KAAO,CAAEv1L,gBAAgB,EAAO80L,iBAAiB,EAAOj5I,IAAK,KAC1E,IAAM25I,OAAQvuK,EACd,QAASngB,KAAOiuL,EACZA,EAASjuL,GAAK+0C,IAAIj9C,KAAK+zJ,IAAQ6iC,EAAI7iC,GAAM8iC,IAAgB,CAErE,IAAIr8L,EAAO6tB,EAAEhM,IAAagM,EAAEngB,IAC5B,GAAK1N,EAEL,QAASy7L,KAAS/Q,EACdxlL,EAAIu2L,EAAOz7L,EAAM6tB,EAAE40B,IAAK50B,EAAEjnB,eAAgBinB,EAAE6tK,iBACxC7tK,EAAEhhB,OACF3H,EAAIu2L,EAAO,SAAWz7L,EAAM6tB,EAAEhhB,MAAOghB,EAAEjnB,eAAgBinB,EAAE6tK,gBAAe,CAGpF,OAAOJ,CACX,CA7EoCD,CAAYD,EAAS5/K,OAAO,CAACoS,EAAGC,IAAMD,EAAEvW,OAAOwW,GAAI,MAC5E1pB,CACX,CASA,IAAI43L,GAAe,KACnB,MAAMC,GAAgB,IAkEtB,IAAIK,GAAkB,KACtB,SAAS/jB,GAAYn0K,EAAKwC,EAAO4yJ,EAAMkiC,GACnCY,GAAkB11L,EAClB,IAAI3G,ED5wQD,SAAS0O,GAAQ/H,GAGtB,IAGI3G,IAHY00J,IAAO/tJ,EAAMiG,SAAWjG,EAAMmG,WAAanG,EAAM+F,UAAY/F,EAAM6F,QAC/EmoJ,IAAMhuJ,EAAMmG,UAAYnG,EAAM+G,KAA2B,GAApB/G,EAAM+G,IAAIrM,QAClC,gBAAbsF,EAAM+G,MACgB/G,EAAM+G,MAC7B/G,EAAMmG,SAAWD,GAAQyK,IAAM3Q,EAAMoxJ,UACtCpxJ,EAAM+G,KAAO,eAEf,MAAY,OAAR1N,IAAeA,EAAO,UACd,OAARA,IAAeA,EAAO,UAEd,QAARA,IAAgBA,EAAO,aACf,MAARA,IAAcA,EAAO,WACb,SAARA,IAAiBA,EAAO,cAChB,QAARA,IAAgBA,EAAO,aACpBA,CACT,CC0vQe0O,CAAQ/H,GACkB21L,EAASh/C,GAA/BD,GAAYr9I,EAAM,KAAwCA,EAAKqB,QAAkB,KAARrB,EACpF06L,EAAS,GAAIlH,GAAU,EAAO+I,GAAY,EAAOb,GAAkB,EACnEK,IAAgBA,GAAaxiC,MAAQA,GAAQwiC,GAAaN,OAASA,IACnEf,EAASqB,GAAarB,OAAS,IAC3B5hB,GAAchrK,QAAQnH,EAAMoxJ,SAAW,IACvCwkC,GAAY,EACZR,GAAe,OAGvB,IAoB2BS,GAAUC,GApBjCC,EAAM,IAAI/3L,IACVg4L,EAAUT,KACV,GAAIA,GAAS,CACT,QAAS7hK,MAAO6hK,GAAQz5I,IACpB,IAAKi6I,EAAIrmL,IAAIgkB,MACTqiK,EAAIx3L,IAAIm1B,IACJA,GAAIk/H,IACJ,OAAI2iC,GAAQR,kBACRA,GAAkB,IACf,EAGfQ,GAAQt1L,iBACJs1L,GAAQR,kBACRA,GAAkB,GACtBa,GAAY,GAGpB,OAAO,GAEPZ,GAAWx3L,EAAIs3L,GACnB,OAAIE,KACIgB,EAAOhB,GAASjB,EAASM,GAAUh7L,EAAM2G,GAAQ21L,KACjD9I,GAAU,EAEL8I,IAAW31L,EAAM6F,QAAU7F,EAAMiG,SAAWjG,EAAM+F,YAErD2wJ,GAAQC,SAAW32J,EAAM+F,SAAW/F,EAAM6F,UAC3CgwL,GAAWllL,GAAK3Q,EAAMoxJ,WAAaykC,IAAYx8L,GAC5C28L,EAAOhB,GAASjB,EAASM,GAAUwB,GAAU71L,GAAO,MAG/CA,EAAMmG,WAAa2vL,GAAY5vL,GAAMlG,EAAMoxJ,WAAa/3J,GAAQy8L,IAAaD,IAClFG,EAAOhB,GAASjB,EAASM,GAAUyB,GAAW91L,GAAO,QACrD6sL,GAAU,GAGT8I,GAAU31L,EAAMmG,UACrB6vL,EAAOhB,GAASjB,EAASM,GAAUh7L,EAAM2G,GAAO,OAChD6sL,GAAU,IAETA,GAAWmJ,EAAOhB,GAASQ,QAC5B3I,GAAU,IAEd+I,IACA/I,GAAU,GACVA,GAAWkI,GACX/0L,EAAM+0L,kBACVW,GAAkB,KACX7I,CACX,CAMA,MAAMoJ,GAKFngM,YAAYg9E,EAIZozB,EAIAsvC,EAIA9mF,EAIAswB,GACI/oF,KAAK68E,UAAYA,EACjB78E,KAAKiwG,KAAOA,EACZjwG,KAAKu/I,IAAMA,EACXv/I,KAAKy4D,MAAQA,EACbz4D,KAAK+oF,OAASA,CAClB,CACA++F,OACI,IAAIpuB,EAAMr4J,SAASL,cAAc,OACjC04J,SAAI78E,UAAY78E,KAAK68E,UACrB78E,KAAKigM,OAAOvmC,GACLA,CACX,CACAp/I,OAAOo/I,EAAKpzD,GACR,OAAIA,EAAKzpB,WAAa78E,KAAK68E,YAE3B78E,KAAKigM,OAAOvmC,IACL,EACX,CACAumC,OAAOvmC,GACHA,EAAI3yJ,MAAMkpG,KAAOjwG,KAAKiwG,KAAO,KAC7BypD,EAAI3yJ,MAAMw4I,IAAMv/I,KAAKu/I,IAAM,KACT,MAAdv/I,KAAKy4D,QACLihG,EAAI3yJ,MAAM0xD,MAAQz4D,KAAKy4D,MAAQ,MACnCihG,EAAI3yJ,MAAMgiF,OAAS/oF,KAAK+oF,OAAS,IACrC,CACA4zD,GAAGljH,GACC,OAAOz5B,KAAKiwG,MAAQx2E,EAAEw2E,MAAQjwG,KAAKu/I,KAAO9lH,EAAE8lH,KAAOv/I,KAAKy4D,OAASh/B,EAAEg/B,OAASz4D,KAAK+oF,QAAUtvD,EAAEsvD,QACzF/oF,KAAK68E,WAAapjD,EAAEojD,SAC5B,CAQA18E,gBAAgBw8J,EAAM9/E,EAAWqoE,GAC7B,GAAIA,EAAMp+H,MAAO,CACb,IAAIgtB,EAAM6oH,EAAKggC,YAAYz3C,EAAMr8I,KAAMq8I,EAAM5C,OAAS,GACtD,IAAKxuG,EACD,MAAO,GACX,IAAIp5B,EAAOwlL,GAAQvjC,GACnB,MAAO,CAAC,IAAIqjC,GAAgBnjH,EAAW/oC,EAAIm8D,KAAOv1F,EAAKu1F,KAAMn8D,EAAIyrG,IAAM7kI,EAAK6kI,IAAK,KAAMzrG,EAAIqlH,OAASrlH,EAAIyrG,KAAI,CAG5G,OAqBZ,SAAS4gD,GAAmBxjC,EAAM9/E,EAAWqoE,GACzC,GAAIA,EAAMhyB,IAAMypC,EAAK2U,SAASv3J,MAAQmrI,EAAMnrI,MAAQ4iJ,EAAK2U,SAASp+C,GAC9D,MAAO,GACX,IAAIn5G,EAAOmR,KAAKC,IAAI+5H,EAAMnrI,KAAM4iJ,EAAK2U,SAASv3J,MAAOm5G,EAAKhoG,KAAK4lC,IAAIo0F,EAAMhyB,GAAIypC,EAAK2U,SAASp+C,IACvFmhD,EAAM1X,EAAK2X,eAAiB3M,GAAUC,IACtCp7J,EAAUmwJ,EAAK4S,WAAYmJ,EAAclsK,EAAQq2J,wBAAyBnoJ,EAAOwlL,GAAQvjC,GACzFyjC,EAAU5zL,EAAQlK,cAAc,YAAak2L,EAAY4H,GAAWp+L,OAAO0gE,iBAAiB09H,GAC5FC,EAAW3nB,EAAYzoE,MACtBuoF,EAAY34C,SAAS24C,EAAU8H,aAAep1K,KAAK4lC,IAAI,EAAG+uF,SAAS24C,EAAU+H,aAAe,GAC7FC,EAAY9nB,EAAYxoE,OAASsoF,EAAY34C,SAAS24C,EAAUiI,cAAgB,GAChFC,GAAa1nB,GAAQrc,EAAM5iJ,GAAO4mL,GAAW3nB,GAAQrc,EAAMzpC,GAC3D0tE,GAAcF,GAAW/1L,MAAQy6J,GAAUjpB,KAAOukD,GAAa,KAC/DG,GAAYF,GAASh2L,MAAQy6J,GAAUjpB,KAAOwkD,GAAW,KAK7D,GAJIC,KAAgBjkC,EAAKkc,cAAgB6nB,GAAW9c,oBAChDgd,GAAcE,GAAYnkC,EAAM5iJ,EAAM,EAAG6mL,KACzCC,KAAclkC,EAAKkc,cAAgB8nB,GAAS/c,oBAC5Cid,GAAYC,GAAYnkC,EAAMzpC,GAAI,EAAI2tE,KACtCD,IAAeC,IAAaD,GAAY7mL,MAAQ8mL,GAAU9mL,MAAQ6mL,GAAY1tE,IAAM2tE,GAAU3tE,GAC9F,OAAO6tE,GAAOC,GAAY97C,EAAMnrI,KAAMmrI,EAAMhyB,GAAI0tE,KAE/C,CACD,IAAIrhD,GAAMqhD,GAAcI,GAAY97C,EAAMnrI,KAAM,KAAM6mL,IAAeK,GAAcP,IAAY,GAC3FvnC,GAAS0nC,GAAYG,GAAY,KAAM97C,EAAMhyB,GAAI2tE,IAAaI,GAAcN,IAAU,GACtF7vC,GAAU,GACd,OAAK8vC,IAAeF,IAAYxtE,IAAM2tE,IAAaF,IAAU5mL,MAAQ6mL,IAAeC,GAAY,EAAI,IAChGH,GAAW9c,iBAAmB,GAAKrkC,GAAI4Z,OAASwD,EAAKmc,kBAAoB,EAAI3f,GAAO5Z,IACpFuR,GAAQloJ,KAAKy7I,GAAMg8C,EAAU9gD,GAAI4Z,OAAQqnC,EAAWrnC,GAAO5Z,MACtDA,GAAI4Z,OAASA,GAAO5Z,KAAOod,EAAKsb,iBAAiB14B,GAAI4Z,OAASA,GAAO5Z,KAAO,GAAG50I,MAAQy6J,GAAUjpB,OACtGoD,GAAI4Z,OAASA,GAAO5Z,KAAOA,GAAI4Z,OAASA,GAAO5Z,KAAO,GACnDwhD,GAAOxhD,IAAK9kI,OAAOq2I,IAASr2I,OAAOsmL,GAAO5nC,IAAO,CAE5D,SAAS9U,GAAMp0C,GAAMsvC,GAAKrvC,GAAOipD,IAC7B,OAAO,IAAI6mC,GAAgBnjH,EAAWozB,GAAOv1F,EAAKu1F,KAAMsvC,GAAM7kI,EAAK6kI,IAAM,IAAsBrvC,GAAQD,GAAMkpD,GAAS5Z,GAAM,IAChI,CACA,SAASwhD,IAASxhD,OAAK4Z,UAAQ+nC,gBAC3B,IAAIH,GAAS,GACb,QAASv8L,GAAI,EAAGA,GAAI08L,GAAWz8L,OAAQD,IAAK,EACxCu8L,GAAOn4L,KAAKy7I,GAAM68C,GAAW18L,IAAI+6I,GAAK2hD,GAAW18L,GAAI,GAAI20J,KAC7D,OAAO4nC,EACX,CAEA,SAASC,GAAYjnL,GAAMm5G,GAAI55G,IAC3B,IAAIimI,GAAM,IAAK4Z,IAAS,IAAM+nC,GAAa,GAC3C,SAASC,GAAQpnL,GAAMqnL,GAAUluE,GAAImuE,GAAQpkD,IAKzC,IAAIqkD,GAAa3kC,EAAKggC,YAAY5iL,GAAOA,IAAQT,GAAK45G,IAAK,EAAK,GAC5DquE,GAAW5kC,EAAKggC,YAAYzpE,GAAKA,IAAM55G,GAAKS,KAAO,GAAI,IACtDunL,KAAeC,KAEpBhiD,GAAMr0H,KAAK4lC,IAAIwwI,GAAW/hD,IAAKgiD,GAAShiD,IAAKA,IAC7C4Z,GAASjuI,KAAKC,IAAIm2K,GAAWnoC,OAAQooC,GAASpoC,OAAQA,IAClDlc,IAAO0qB,GAAUC,IACjBs5B,GAAWt4L,KAAKyrK,GAAO+sB,GAAWf,EAAWiB,GAAWrxF,KAAMokE,GAAOgtB,GAASb,EAAYe,GAASrxF,OAEnGgxF,GAAWt4L,MAAMyrK,GAAOgtB,GAAShB,EAAWkB,GAAStxF,MAAOokE,GAAO+sB,GAAWZ,EAAYc,GAAWpxF,OAC7G,CACA,IAAI7sB,GAAQtpE,IAA0CT,GAAKS,KAAMvO,GAAM0nH,IAAoC55G,GAAK45G,GAEhH,QAASt9G,MAAK+mJ,EAAKusB,cACf,GAAItzK,GAAEs9G,GAAK7vC,IAASztE,GAAEmE,KAAOvO,GACzB,QAASsoC,GAAM5oB,KAAKC,IAAIvV,GAAEmE,KAAMspE,IAAQm+G,GAASt2K,KAAK4lC,IAAIl7C,GAAEs9G,GAAI1nH,MAAQ,CACpE,IAAIi2L,GAAU9kC,EAAKj0I,MAAMxnB,IAAIk7I,OAAOtoG,IACpC,QAAS8/G,MAAQ+I,EAAKyc,UAAUqoB,IAAU,CACtC,IAAIC,GAAW9tC,GAAK75I,KAAO0nL,GAAQ1nL,KAAM4nL,GAAS/tC,GAAK1gC,GAAKuuE,GAAQ1nL,KACpE,GAAI2nL,IAAYF,GACZ,MACAG,GAAS7tJ,IACTqtJ,GAAQj2K,KAAKC,IAAIu2K,GAAU5tJ,IAAc,MAAR/5B,IAAgB2nL,IAAYr+G,GAAOn4D,KAAK4lC,IAAI6wI,GAAQH,IAAe,MAANtuE,IAAcyuE,IAAUn2L,GAAKooJ,GAAK3W,IAAG,CAG3I,GADAnpG,GAAM2tJ,GAAQvuE,GAAK,EACfp/E,IAAO0tJ,GACP,MAGhB,OAAyB,GAArBN,GAAWz8L,QACX08L,GAAQ99G,GAAe,MAARtpE,GAAcvO,GAAW,MAAN0nH,GAAYypC,EAAK2X,eAChD,CAAE/0B,OAAK4Z,UAAQ+nC,cAC1B,CACA,SAASD,GAAcn8B,GAAOvlB,IAC1B,IAAIrqD,GAAIwjF,EAAYn5B,KAAOA,GAAMulB,GAAMvlB,IAAMulB,GAAM3L,QACnD,MAAO,CAAE5Z,IAAKrqD,GAAGikE,OAAQjkE,GAAGgsG,WAAY,GAC5C,CACJ,CA1GmBf,CAAmBxjC,EAAM9/E,EAAWqoE,EAEnD,EAEJ,SAASg7C,GAAQvjC,GACb,IAAIzD,EAAOyD,EAAKwX,UAAUtR,wBAE1B,MAAO,CAAE5yD,MADE0sD,EAAK2X,eAAiB3M,GAAUC,IAAM1O,EAAKjpD,KAAOipD,EAAKhpD,MAAQysD,EAAKwX,UAAUF,YAActX,EAAKhD,QACtFgD,EAAKwX,UAAUvZ,WAAa+B,EAAKhD,OAAQpa,IAAK2Z,EAAK3Z,IAAMod,EAAKwX,UAAUxZ,UAAYgC,EAAK9C,OACnH,CACA,SAASinC,GAAYnkC,EAAM7oH,EAAKu7G,EAAMqjB,GAClC,IAAIgF,EAAS/a,EAAKggC,YAAY7oJ,EAAY,EAAPu7G,GACnC,IAAKqoB,EACD,OAAOhF,EACX,IAAIkqB,EAAajgC,EAAKv4J,IAAIy+J,wBACtB3tE,GAAKwiF,EAAOn4B,IAAMm4B,EAAOve,QAAU,EACnClpD,EAAO0sD,EAAK8a,YAAY,CAAEpjJ,EAAGuoK,EAAW3sF,KAAO,EAAG/a,MAClDgb,EAAQysD,EAAK8a,YAAY,CAAEpjJ,EAAGuoK,EAAW1sF,MAAQ,EAAGhb,MACxD,OAAY,MAAR+a,GAAyB,MAATC,EACTwiE,EACJ,CAAE34J,KAAMmR,KAAKC,IAAIunJ,EAAO34J,KAAMmR,KAAK4lC,IAAIm/C,EAAMC,IAASgjB,GAAIhoG,KAAK4lC,IAAI4hH,EAAOx/C,GAAIhoG,KAAKC,IAAI8kF,EAAMC,IACxG,CA0FA,MAAM0xF,GACF/hM,YAAY88J,EAAM7I,GACd9zJ,KAAK28J,KAAOA,EACZ38J,KAAK8zJ,MAAQA,EACb9zJ,KAAK6hM,MAAQ,GACb7hM,KAAK25J,OAAS,EACd35J,KAAK65J,OAAS,EACd75J,KAAKw1L,WAAa,CAAE3U,KAAM7gL,KAAKy0K,QAAQ3qJ,KAAK9pB,MAAOs7L,MAAOt7L,KAAK8nL,KAAKh+J,KAAK9pB,OACzEA,KAAKoE,IAAMu4J,EAAKwX,UAAUzrK,YAAYrH,SAASL,cAAc,QAC7DhB,KAAKoE,IAAIiJ,UAAU/E,IAAI,YACnBwrJ,EAAM+iB,OACN72K,KAAKoE,IAAIiJ,UAAU/E,IAAI,kBACvBwrJ,EAAMiO,OACN/hK,KAAKoE,IAAIiJ,UAAU/E,IAAIwrJ,EAAMiO,OACjC/hK,KAAK+sL,QACL/sL,KAAKoE,IAAIzB,aAAa,cAAe,QACrC3C,KAAK8hM,SAASnlC,EAAKj0I,OACnBi0I,EAAK44B,eAAev1L,KAAKw1L,YACrB1hC,EAAMoD,OACNpD,EAAMoD,MAAMl3J,KAAKoE,IAAKu4J,EAC9B,CACAriJ,OAAOA,GACCA,EAAOuxI,WAAWhF,MAAMk7C,KAAeznL,EAAOoO,MAAMm+H,MAAMk7C,KAC1D/hM,KAAK8hM,SAASxnL,EAAOoO,QACrB1oB,KAAK8zJ,MAAMx5I,OAAOA,EAAQta,KAAKoE,MAAQkW,EAAOi0J,mBAC9CvuK,KAAK+sL,QACLzyK,EAAOqiJ,KAAK44B,eAAev1L,KAAKw1L,YAExC,CACAsF,cAAcn+B,IAC+B,IAArC38J,KAAK8zJ,MAAMkuC,uBACXrlC,EAAK44B,eAAev1L,KAAKw1L,WACjC,CACAsM,SAASp5K,GACL,IAAIorB,EAAM,EAAGw0H,EAAQ5/I,EAAMm+H,MAAMk7C,IACjC,KAAOjuJ,EAAMw0H,EAAM7jK,QAAU6jK,EAAMx0H,IAAQ9zC,KAAK8zJ,OAC5ChgH,IACJ9zC,KAAKoE,IAAI2C,MAAMunL,OAASj4K,QAAQrW,KAAK8zJ,MAAM+iB,MAAQ,KAAM,GAAM/iI,EACnE,CACA2gI,UACI,OAAOz0K,KAAK8zJ,MAAMmuC,QAAQjiM,KAAK28J,KACnC,CACAowB,QACI,IAAMpzB,SAAQE,UAAW75J,KAAK28J,MAC1BhD,GAAU35J,KAAK25J,QAAUE,GAAU75J,KAAK65J,UACxC75J,KAAK25J,OAASA,EACd35J,KAAK65J,OAASA,EACd75J,KAAKoE,IAAI2C,MAAMm7L,UAAa,SAAQ,EAAIvoC,MAAW,EAAIE,KAE/D,CACAiuB,KAAKma,GACD,GAAIA,EAAQx9L,QAAUzE,KAAK6hM,MAAMp9L,QAAUw9L,EAAQryJ,KAAK,CAACnW,EAAGj1B,KAtDpE,SAAS29L,GAAWnxK,EAAGC,GACnB,OAAOD,EAAEnxB,aAAeoxB,EAAEpxB,aAAemxB,EAAE2rH,GAAG1rH,EAClD,CAoD2EkxK,CAAW1oK,EAAGz5B,KAAK6hM,MAAMr9L,KAAM,CAC9F,IAAI49L,EAAMpiM,KAAKoE,IAAI8+B,WAAYm/J,EAAO,EACtC,QAASC,KAAUL,EACXK,EAAOhoL,QAAU8nL,GAAOE,EAAOziM,aAAeG,KAAK6hM,MAAMQ,GAAMxiM,aAC/DyiM,EAAOhoL,OAAO8nL,EAAKpiM,KAAK6hM,MAAMQ,KAC9BD,EAAMA,EAAIr1L,YACVs1L,KAGAriM,KAAKoE,IAAIqI,aAAa61L,EAAOxa,OAAQsa,GAG7C,KAAOA,GAAK,CACR,IAAItpL,EAAOspL,EAAIr1L,YACfq1L,EAAIxhM,SACJwhM,EAAMtpL,EAEV9Y,KAAK6hM,MAAQI,EAErB,CACAn2L,UACQ9L,KAAK8zJ,MAAMhoJ,SACX9L,KAAK8zJ,MAAMhoJ,QAAQ9L,KAAKoE,IAAKpE,KAAK28J,MACtC38J,KAAKoE,IAAIxD,QACb,EAEJ,MAAMmhM,GAA0B/7C,YAIhC,SAAS8N,GAAMpkH,GACX,MAAO,CACH48H,GAAWzjB,OAAOttI,GAAK,IAAIqmL,GAAUrmL,EAAGm0B,IACxCqyJ,GAAW1qL,GAAGq4B,GAEtB,CAEA,MAAM6yJ,IAAkB9hC,GAAQF,IAC1BiiC,GAA+Bx8C,UAAa,CAC9CC,QAAQgK,GACGD,GAAcC,EAAS,CAC1BwyC,gBAAiB,KACjBC,iBAAiB,GAClB,CACCD,gBAAiB,CAACzxK,EAAGC,IAAM/F,KAAK4lC,IAAI9/B,EAAGC,GACvCyxK,gBAAiB,CAAC1xK,EAAGC,IAAMD,GAAKC,MAuC5C,SAAS0xK,GAAcroL,GACnB,OAAOA,EAAOuxI,WAAWhF,MAAM27C,KAAoBloL,EAAOoO,MAAMm+H,MAAM27C,GAC1E,CACA,MAAMI,GAA2B9uC,GAAM,CACnC+iB,OAAO,EACPorB,QAAQtlC,GACJ,IAAMj0I,SAAUi0I,EAAMpO,EAAO7lI,EAAMm+H,MAAM27C,IACrCK,EAAU,GACd,QAASjtL,KAAK8S,EAAMm9H,UAAU1C,OAAQ,CAClC,IAAI2/C,EAAOltL,GAAK8S,EAAMm9H,UAAUR,KAChC,GAAIzvI,EAAEkR,OAASg8K,GAAQP,GAAiBh0C,EAAKm0C,gBAAiB,CAC1D,IAAI7lH,EAAYimH,EAAO,8BAAgC,gCACnDrjD,EAAS7pI,EAAEkR,MAAQlR,EAAIqvI,UAAuBrvI,EAAE/M,KAAM+M,EAAE/M,KAAO+M,EAAE2sB,QAAS,EAAK,GACnF,QAAS8hH,KAAS27C,GAAgB+C,SAASpmC,EAAM9/E,EAAW4iE,GACxDojD,EAAQj6L,KAAKy7I,EAAK,EAG9B,OAAOw+C,CACX,EACAvoL,OAAOA,EAAQlW,GACPkW,EAAO6zJ,aAAav+H,KAAK03G,GAAMA,EAAGzB,aAClCzhJ,EAAI2C,MAAMi8L,cAA2C,YAA3B5+L,EAAI2C,MAAMi8L,cAA8B,YAAc,YACpF,IAAIC,EAAaN,GAAcroL,GAC/B,OAAI2oL,GACAC,GAAa5oL,EAAOoO,MAAOtkB,GACxBkW,EAAOitI,YAAcjtI,EAAOm0J,cAAgBw0B,CACvD,EACA/rC,MAAM9yJ,EAAKu4J,GACPumC,GAAavmC,EAAKj0I,MAAOtkB,EAC7B,EACA29J,MAAO,mBAEX,SAASmhC,GAAax6K,EAAOtkB,GACzBA,EAAI2C,MAAMo8L,kBAAoBz6K,EAAMm+H,MAAM27C,IAAiBC,gBAAkB,IACjF,CACA,MAAMW,GAA8BtvC,GAAM,CACtC+iB,OAAO,EACPorB,QAAQtlC,GACGA,EAAKj0I,MAAMm9H,UAAU1C,OAAO57I,IAAIqO,GAAKA,EAAEkR,MAAQ,GAAKk5K,GAAgB+C,SAASpmC,EAAM,yBAA0B/mJ,IAC/GgJ,OAAO,CAACoS,EAAGC,IAAMD,EAAEvW,OAAOwW,IAEnC3W,QAAOA,EAAQlW,IACJkW,EAAOitI,YAAcjtI,EAAOm0J,cAAgBn0J,EAAO+zJ,iBAAmBs0B,GAAcroL,GAE/FynJ,MAAO,sBAELshC,GAAY,CACd,WAAY,CACR,8BAA+B,CAAE9T,gBAAiB,2BAEtD,cAAe,CACX,WAAY,CACRR,WAAY,qBACZ,8BAA+B,CAC3BQ,gBAAiB,2BAK7BgT,KACAc,GAAU,YAAYtU,WAAasU,GAAU,eAAetU,WAAa,0BAC7E,MAAMuU,GAAmC15C,WAA0ByvC,GAAW/L,MAAM+V,KAE9EE,GAAgCj4C,UAAmB,CACrD/jJ,KAAIusC,EAAKy3G,IAAyB,MAAPz3G,EAAc,KAAOy3G,EAAQlJ,OAAOvuG,KAE7D0vJ,GAA6Bv7C,UAAkB,CACjDr8I,WAAkB,KAClB0O,QAAOw5B,EAAKwzG,KACG,MAAPxzG,IACAA,EAAMwzG,EAAG3+G,QAAQ05G,OAAOvuG,IACrBwzG,EAAGmE,QAAQ7sI,OAAO,CAACk1B,EAAK3rC,IAAMA,EAAEghF,GAAGo6G,IAAoBp7L,EAAE+D,MAAQ4nC,EAAKA,MAG/E2vJ,GAA8Bn3B,GAAWo3B,UAAU,MACrD7jM,YAAY88J,GACR38J,KAAK28J,KAAOA,EACZ38J,KAAKy/I,OAAS,KACdz/I,KAAKw1L,WAAa,CAAE3U,KAAM7gL,KAAK2jM,QAAQ75K,KAAK9pB,MAAOs7L,MAAOt7L,KAAK4jM,WAAW95K,KAAK9pB,MACnF,CACAsa,OAAOA,GACH,IAAI0sI,EACJ,IAAI68C,EAAYvpL,EAAOoO,MAAMi+H,MAAM68C,IAClB,MAAbK,EACmB,MAAf7jM,KAAKy/I,SACkB,QAAtBuH,EAAKhnJ,KAAKy/I,cAA2B,IAAPuH,GAAyBA,EAAGpmJ,SAC3DZ,KAAKy/I,OAAS,OAIbz/I,KAAKy/I,SACNz/I,KAAKy/I,OAASz/I,KAAK28J,KAAKwX,UAAUzrK,YAAYrH,SAASL,cAAc,QACrEhB,KAAKy/I,OAAO5iE,UAAY,kBAExBviE,EAAOuxI,WAAWlF,MAAM68C,KAAkBK,GAAavpL,EAAOitI,YAAcjtI,EAAOi0J,kBACnFvuK,KAAK28J,KAAK44B,eAAev1L,KAAKw1L,YAE1C,CACAmO,UACI,IAAMhnC,QAAS38J,KACX8zC,EAAM6oH,EAAKj0I,MAAMi+H,MAAM68C,IACvBtqC,EAAc,MAAPplH,GAAe6oH,EAAKggC,YAAY7oJ,GAC3C,IAAKolH,EACD,OAAO,KACX,IAAI4qC,EAAQnnC,EAAKwX,UAAUtR,wBAC3B,MAAO,CACH5yD,KAAMipD,EAAKjpD,KAAO6zF,EAAM7zF,KAAO0sD,EAAKwX,UAAUvZ,WAAa+B,EAAKhD,OAChEpa,IAAK2Z,EAAK3Z,IAAMukD,EAAMvkD,IAAMod,EAAKwX,UAAUxZ,UAAYgC,EAAK9C,OAC5D9wE,OAAQmwE,EAAKC,OAASD,EAAK3Z,IAEnC,CACAqkD,WAAW9vJ,GACP,GAAI9zC,KAAKy/I,OAAQ,CACb,IAAMka,SAAQE,UAAW75J,KAAK28J,KAC1B7oH,GACA9zC,KAAKy/I,OAAO14I,MAAMkpG,KAAOn8D,EAAIm8D,KAAO0pD,EAAS,KAC7C35J,KAAKy/I,OAAO14I,MAAMw4I,IAAMzrG,EAAIyrG,IAAMsa,EAAS,KAC3C75J,KAAKy/I,OAAO14I,MAAMgiF,OAASj1C,EAAIi1C,OAAS8wE,EAAS,MAGjD75J,KAAKy/I,OAAO14I,MAAMkpG,KAAO,YAGrC,CACAnkG,UACQ9L,KAAKy/I,QACLz/I,KAAKy/I,OAAO7+I,QACpB,CACAmjM,WAAWjwJ,GACH9zC,KAAK28J,KAAKj0I,MAAMi+H,MAAM68C,KAAkB1vJ,GACxC9zC,KAAK28J,KAAKvyI,SAAS,CAAEqhI,QAAS83C,GAAiBlsL,GAAGy8B,IAC1D,GACD,CACC64H,eAAgB,CACZq3B,SAASj6L,GACL/J,KAAK+jM,WAAW/jM,KAAK28J,KAAK8a,YAAY,CAAEpjJ,EAAGtqB,EAAM2zK,QAASxoF,EAAGnrF,EAAM4zK,UACvE,EACAsmB,UAAUl6L,IACFA,EAAMhI,QAAU/B,KAAK28J,KAAK4S,aAAevvK,KAAK28J,KAAK4S,WAAWhyG,SAASxzD,EAAMm6L,iBAC7ElkM,KAAK+jM,WAAW,KACxB,EACArjB,UACI1gL,KAAK+jM,WAAW,KACpB,EACApjB,OACI3gL,KAAK+jM,WAAW,KACpB,KAWR,SAASI,GAAYjjM,EAAK4vL,EAAI/2K,EAAMm5G,EAAI9xE,GACpC0vI,EAAG9vH,UAAY,EACf,QAAuDlhC,EAA9C2/G,EAASv+I,EAAIg8I,UAAUnjI,EAAMm5G,GAAKp/E,EAAM/5B,GAAU0lI,EAAO3mI,OAAO0oD,KAAM1tB,GAAO2rG,EAAOvzI,MAAMzH,OAC/F,IAAKg7I,EAAO1C,UACR,KAAOj9G,EAAIgxJ,EAAG/vH,KAAK0+E,EAAOvzI,QACtBk1C,EAAEtN,EAAMhU,EAAEzuB,MAAOyuB,EAEjC,CAuBA,MAAMskK,GAIFvkM,YAAY6vC,GACR,MAAQ20J,SAAQC,aAAYC,WAAUC,WAAUC,YAAY,KAAS/0J,EACrE,IAAK20J,EAAOK,OACR,MAAM,IAAIroD,WAAW,+EAEzB,GADAr8I,KAAKqkM,OAASA,EACVE,EACAvkM,KAAK2kM,SAAW,CAACzpK,EAAOyhI,EAAM5iJ,EAAMzR,IAAQi8L,EAASj8L,EAAKyR,EAAMA,EAAOmhB,EAAM,GAAGz2B,OAAQy2B,EAAOyhI,QAAI,GAEzE,mBAAd2nC,EACZtkM,KAAK2kM,SAAW,CAACzpK,EAAOyhI,EAAM5iJ,EAAMzR,KAChC,IAAI07J,EAAOsgC,EAAWppK,EAAOyhI,EAAM5iJ,GAC/BiqJ,GACA17J,EAAIyR,EAAMA,EAAOmhB,EAAM,GAAGz2B,OAAQu/J,EAAI,MAC9C,KAEKsgC,EAIL,MAAM,IAAIjoD,WAAW,0EAHrBr8I,KAAK2kM,SAAW,CAACzpK,EAAO0pK,EAAO7qL,EAAMzR,IAAQA,EAAIyR,EAAMA,EAAOmhB,EAAM,GAAGz2B,OAAQ6/L,EAGc,CAEjGtkM,KAAKwkM,SAAWA,EAChBxkM,KAAKykM,UAAYA,CACrB,CAMAI,WAAWloC,GACP,IAAI53J,EAAQ,IAAIgtJ,GAAmBzpJ,EAAMvD,EAAMuD,IAAIwhB,KAAK/kB,GACxD,QAAWgV,OAAMm5G,QAzDzB,SAAS4xE,GAAYnoC,EAAM8nC,GACvB,IAAIh/D,EAAUk3B,EAAKusB,cACnB,GAAsB,GAAlBzjD,EAAQhhI,QAAeghI,EAAQ,GAAG1rH,MAAQ4iJ,EAAK2U,SAASv3J,MACxD0rH,EAAQ,GAAGvS,IAAMypC,EAAK2U,SAASp+C,GAC/B,OAAOuS,EACX,IAAIn0H,EAAS,GACb,QAAWyI,OAAMm5G,QAAQuS,EACrB1rH,EAAOmR,KAAKC,IAAIwxI,EAAKj0I,MAAMxnB,IAAIk7I,OAAOriI,GAAMA,KAAMA,EAAO0qL,GACzDvxE,EAAKhoG,KAAK4lC,IAAI6rG,EAAKj0I,MAAMxnB,IAAIk7I,OAAOlpB,GAAIA,GAAIA,EAAKuxE,GAC7CnzL,EAAO7M,QAAU6M,EAAOA,EAAO7M,OAAS,GAAGyuH,IAAMn5G,EACjDzI,EAAOA,EAAO7M,OAAS,GAAGyuH,GAAKA,EAE/B5hH,EAAO1I,KAAK,CAAEmR,OAAMm5G,OAE5B,OAAO5hH,CACX,CA0CiCwzL,CAAYnoC,EAAM38J,KAAKykM,WAC5CN,GAAYxnC,EAAKj0I,MAAMxnB,IAAKlB,KAAKqkM,OAAQtqL,EAAMm5G,EAAI,CAACn5G,EAAM+lB,IAAM9/B,KAAK2kM,SAAS7kK,EAAG68H,EAAM5iJ,EAAMzR,IACjG,OAAOvD,EAAM+qD,QACjB,CAMA0/G,WAAWl1J,EAAQ0pJ,GACf,IAAI+gC,EAAa,IAAKC,GAAW,EAQjC,OAPI1qL,EAAOitI,YACPjtI,EAAOquB,QAAQm5G,YAAY,CAACmjD,EAAIC,EAAInrL,EAAMm5G,KAClCA,EAAK54G,EAAOqiJ,KAAK2U,SAASv3J,MAAQA,EAAOO,EAAOqiJ,KAAK2U,SAASp+C,KAC9D6xE,EAAa75K,KAAK4lC,IAAI/2C,EAAMgrL,GAC5BC,EAAW95K,KAAKC,IAAI+nG,EAAI8xE,GAAQ,GAGxC1qL,EAAO+zJ,iBAAmB22B,EAAWD,EAAa,IAC3C/kM,KAAK6kM,WAAWvqL,EAAOqiJ,MAC9BqoC,GAAW,EACJhlM,KAAKmlM,YAAY7qL,EAAOqiJ,KAAMqH,EAAKz8J,IAAI+S,EAAOquB,SAAUo8J,EAAYC,GACxEhhC,CACX,CACAmhC,YAAYxoC,EAAMqH,EAAMohC,EAAYC,GAChC,QAASzvL,KAAK+mJ,EAAKusB,cAAe,CAC9B,IAAInvK,EAAOmR,KAAKC,IAAIvV,EAAEmE,KAAMqrL,GAAalyE,EAAKhoG,KAAK4lC,IAAIl7C,EAAEs9G,GAAImyE,GAC7D,GAAInyE,EAAKn5G,EAAM,CACX,IAAIurL,EAAW3oC,EAAKj0I,MAAMxnB,IAAIk7I,OAAOriI,GAAOwrL,EAASD,EAASpyE,GAAKA,EAAKypC,EAAKj0I,MAAMxnB,IAAIk7I,OAAOlpB,GAAMoyE,EAChGjiH,EAAQn4D,KAAKC,IAAIvV,EAAEmE,KAAMurL,EAASvrL,MAAOvO,EAAM0f,KAAK4lC,IAAIl7C,EAAEs9G,GAAIqyE,EAAOryE,IACzE,GAAIlzH,KAAKwkM,SAAU,CACf,KAAOzqL,EAAOurL,EAASvrL,KAAMA,IACzB,GAAI/Z,KAAKwkM,SAASrhL,KAAKmiL,EAAS5hL,KAAK3J,EAAO,EAAIurL,EAASvrL,OAAQ,CAC7DspE,EAAQtpE,EACR,MAER,KAAOm5G,EAAKqyE,EAAOryE,GAAIA,IACnB,GAAIlzH,KAAKwkM,SAASrhL,KAAKoiL,EAAO7hL,KAAKwvG,EAAKqyE,EAAOxrL,OAAQ,CACnDvO,EAAM0nH,EACN,OAGZ,IAAiBpzF,GAAbqjH,EAAS,GACT76I,GAAM,CAACyR,GAAMm5G,GAAI8wC,KAAS7gB,EAAOv6I,KAAKo7J,GAAK9e,MAAMnrI,GAAMm5G,KAC3D,GAAIoyE,GAAYC,EAEZ,IADAvlM,KAAKqkM,OAAOrjI,UAAYqiB,EAAQiiH,EAASvrL,MACjC+lB,GAAI9/B,KAAKqkM,OAAOtjI,KAAKukI,EAAS5hL,QAAUoc,GAAEzuB,MAAQ7F,EAAM85L,EAASvrL,MACrE/Z,KAAK2kM,SAAS7kK,GAAG68H,EAAM78H,GAAEzuB,MAAQi0L,EAASvrL,KAAMzR,SAGpD67L,GAAYxnC,EAAKj0I,MAAMxnB,IAAKlB,KAAKqkM,OAAQhhH,EAAO73E,EAAK,CAACuO,GAAM+lB,KAAM9/B,KAAK2kM,SAAS7kK,GAAG68H,EAAM5iJ,GAAMzR,KAEnG07J,EAAOA,EAAK1pJ,OAAO,CAAEm3I,WAAYpuE,EAAOquE,SAAUlmJ,EAAKuM,OAAQ,CAACgC,GAAMm5G,KAAOn5G,GAAOspE,GAAS6vC,GAAK1nH,EAAKlD,IAAK66I,GAAQ,EAG5H,OAAO6gB,CACX,EAGJ,MAAMwhC,GAAsC,MAAf,IAAIC,QAAkB,KAAO,IACpDC,GAAwB,IAAI7kI,OAAO,mHAAwI2kI,IAC3KG,GAAQ,CACV,EAAG,OACH,EAAG,OACH,EAAG,YACH,GAAI,UACJ,GAAI,eACJ,GAAI,kBACJ,GAAI,SACJ,KAAM,mBACN,KAAM,wBACN,KAAM,oBACN,KAAM,qBACN,KAAM,qBACN,KAAM,iBACN,KAAM,yBACN,KAAM,yBACN,KAAM,wBACN,KAAM,wBACN,KAAM,0BACN,KAAM,sBACN,MAAO,4BACP,MAAO,sBAEX,IAAIC,GAAmB,KASvB,MAAMC,GAAiC7/C,UAAa,CAChDC,QAAQgK,GACJ,IAAIvgH,EAASsgH,GAAcC,EAAS,CAChCwG,OAAQ,KACRqvC,aAAcJ,GACdK,gBAAiB,OAErB,OAAIr2J,EAAOs2J,aAfnB,SAASC,KACL,IAAIj/C,EACJ,GAAwB,MAApB4+C,WAAmCvkM,SAAY,KAAeA,SAASY,KAAM,CAC7E,IAAIqC,EAASjD,SAASY,KAAK8E,MAC3B6+L,GAAiG,OAAnD,QAAzB5+C,EAAK1iJ,EAAO2qJ,eAA4B,IAAPjI,EAAgBA,EAAK1iJ,EAAO4hM,WAAe,CAErG,OAAON,KAAoB,CAC/B,CAQkCK,MACtBv2J,EAAOo2J,aAAe,IAAIjlI,OAAO,MAAQnxB,EAAOo2J,aAAa5tL,OAAQstL,KACrE91J,EAAOq2J,kBACPr2J,EAAOo2J,aAAe,IAAIjlI,OAAOnxB,EAAOo2J,aAAa5tL,OAAS,IAAMw3B,EAAOq2J,gBAAgB7tL,OAAQstL,KAChG91J,CACX,IAaJ,IAAIy2J,GAAU,KAqDd,MAAMC,WAA0BnhC,GAC5BplK,YAAY+b,EAASnK,GACjB3R,QACAE,KAAK4b,QAAUA,EACf5b,KAAKyR,KAAOA,CAChB,CACAkrI,GAAGniI,GAAS,OAAOA,EAAM/I,MAAQzR,KAAKyR,IAAM,CAC5C+wJ,MAAM7F,GACF,IAAI0pC,EAfZ,SAASC,GAAc70L,GACnB,OAAIA,GAAQ,GAJW,SAMX,IAARA,EACO,SACJ4E,OAAO0qI,aAAa,KAAOtvI,EACtC,CASiB60L,CAActmM,KAAKyR,MACxByxI,EAAOyZ,EAAKj0I,MAAMwmI,OAAO,qBAAuB,KAAOy2C,GAAM3lM,KAAKyR,OAAS,KAAOzR,KAAKyR,KAAK6E,SAAS,KACrGosJ,EAAS1iK,KAAK4b,QAAQ66I,QAAUz2J,KAAK4b,QAAQ66I,OAAOz2J,KAAKyR,KAAMyxI,EAAMmjD,GACzE,GAAI3jC,EACA,OAAOA,EACX,IAAI9O,EAAOvyJ,SAASL,cAAc,QAClC4yJ,SAAKnrJ,YAAc49L,EACnBzyC,EAAKr+I,MAAQ2tI,EACb0Q,EAAKjxJ,aAAa,aAAcugJ,GAChC0Q,EAAK/2E,UAAY,iBACV+2E,CACX,CACAiL,cAAgB,OAAO,CAAO,EAElC,MAAM0nC,WAAkBthC,GACpBplK,YAAY44D,GACR34D,QACAE,KAAKy4D,MAAQA,CACjB,CACAkkF,GAAGniI,GAAS,OAAOA,EAAMi+C,OAASz4D,KAAKy4D,KAAO,CAC9C+pG,QACI,IAAI5O,EAAOvyJ,SAASL,cAAc,QAClC4yJ,SAAKnrJ,YAAc,KACnBmrJ,EAAK/2E,UAAY,SACjB+2E,EAAK7sJ,MAAM0xD,MAAQz4D,KAAKy4D,MAAQ,KACzBm7F,CACX,CACAiL,cAAgB,OAAO,CAAO,EAsClC,MAAM2nC,GAAwBhhC,GAAWlsJ,KAAK,CAAEyoJ,MAAO,kBACjD0kC,GAAqCn6B,GAAWo3B,UAAU,MAC5D7jM,YAAY88J,GACR38J,KAAKwnK,YAAcxnK,KAAK0mM,QAAQ/pC,EACpC,CACAriJ,OAAOA,IACCA,EAAOitI,YAAcjtI,EAAOm0J,gBAC5BzuK,KAAKwnK,YAAcxnK,KAAK0mM,QAAQpsL,EAAOqiJ,MAC/C,CACA+pC,QAAQ/pC,GACJ,IAAIgqC,GAAgB,EAAI3iC,EAAO,GAC/B,QAASpuJ,KAAK+mJ,EAAKj0I,MAAMm9H,UAAU1C,OAAQ,CACvC,IAAI7pI,EAAOqjJ,EAAKkY,YAAYj/J,EAAE/M,MAC1ByQ,EAAKS,KAAO4sL,IACZ3iC,EAAKp7J,KAAK49L,GAASthD,MAAM5rI,EAAKS,OAC9B4sL,EAAgBrtL,EAAKS,MAG7B,OAAOyrJ,GAAWh/J,IAAIw9J,EAC1B,GACD,CACCwD,YAAajsJ,GAAKA,EAAEisJ,cAkDlBo/B,GAAS,IAgCf,SAASC,GAAOlqC,EAAM5yJ,GAClB,IAAImkD,EAASyuG,EAAK8a,YAAY,CAAEpjJ,EAAGtqB,EAAM2zK,QAASxoF,EAAGnrF,EAAM4zK,UAAW,GAClErkK,EAAOqjJ,EAAKj0I,MAAMxnB,IAAIk7I,OAAOluF,GAASu1F,EAAMv1F,EAAS50C,EAAKS,KAC1Di8I,EAAMvS,EAAMmjD,IAAS,EACnBnjD,GAAOnqI,EAAK7U,OARtB,SAASqiM,GAAenqC,EAAMtoI,GAC1B,IAAIsV,EAAMgzH,EAAKggC,YAAYhgC,EAAK2U,SAASv3J,MACzC,OAAO4vB,EAAMze,KAAKqlD,MAAMrlD,KAAK0B,KAAK+c,EAAIsmE,KAAO57E,GAAKsoI,EAAKic,yBAA0B,CACrF,CAK+BkuB,CAAenqC,EAAM5yJ,EAAM2zK,SAC5C5nB,GAAYx8I,EAAKoK,KAAMi5I,EAAKj0I,MAAMumI,QAAS/gG,EAAS50C,EAAKS,MACnE,MAAO,CAAET,KAAMA,EAAKqmI,OAAQqW,MAAKvS,MACrC,CAuCA,MAAMp8I,GAAO,CACT0/L,IAAK,CAAC,GAAI5+L,KAAOA,EAAEyH,QACnBo3L,QAAS,CAAC,GAAI7+L,KAAOA,EAAE2H,SACvBm3L,MAAO,CAAC,GAAI9+L,KAAOA,EAAE+H,UACrBg3L,KAAM,CAAC,GAAI/+L,KAAOA,EAAE6H,UAElBm3L,GAAgB,CAAEpgM,MAAO,qBAyC/B,MAAMqgM,GAAU,WAChB,MAAMC,GACFxnM,YAAY88J,EAAM9V,EAAOygD,EAAmBC,GACxCvnM,KAAK6mJ,MAAQA,EACb7mJ,KAAKsnM,kBAAoBA,EACzBtnM,KAAKunM,kBAAoBA,EACzBvnM,KAAKmnB,MAAQw1I,EAAKj0I,MAAMm+H,MAAMA,GAC9B7mJ,KAAKwnM,SAAWxnM,KAAKmnB,MAAMpP,OAAO0D,GAAKA,GACvC,IAAI6qF,EAAO,KACXtmG,KAAKynM,aAAeznM,KAAKwnM,SAASjgM,IAAIkU,GAAK6qF,EAAOghG,EAAkB7rL,EAAG6qF,GAC3E,CACAhsF,OAAOA,EAAQu8J,GACX,IAAI7vB,EACJ,IAAI7/H,EAAQ7M,EAAOoO,MAAMm+H,MAAM7mJ,KAAK6mJ,OAChC2gD,EAAWrgL,EAAMpP,OAAOsc,GAAKA,GACjC,GAAIlN,IAAUnnB,KAAKmnB,MAAO,CACtB,QAAS1L,KAAKzb,KAAKynM,aACXhsL,EAAEnB,QACFmB,EAAEnB,OAAOA,GACjB,OAAO,EAEX,IAAImtL,EAAe,GAAIC,EAAW7wB,EAAQ,GAAK,KAC/C,QAASryK,EAAI,EAAGA,EAAIgjM,EAAS/iM,OAAQD,IAAK,CACtC,IAAImjM,EAAMH,EAAShjM,GAAIimJ,GAAQ,EAC/B,GAAKk9C,EAEL,SAASnjM,EAAI,EAAGA,EAAIxE,KAAKwnM,SAAS/iM,OAAQD,IAAK,CAC3C,IAAIgW,EAAQxa,KAAKwnM,SAAShjM,GACtBgW,GAASA,EAAM5O,QAAU+7L,EAAI/7L,SAC7B6+I,EAAQjmJ,GAEhB,GAAIimJ,EAAQ,EACRg9C,EAAajjM,GAAKxE,KAAKsnM,kBAAkBK,EAAKnjM,EAAIijM,EAAajjM,EAAI,GAAK,MACpEkjM,IACAA,EAASljM,KAAOmjM,EAAI9wB,WAEvB,CACD,IAAI+wB,EAAcH,EAAajjM,GAAKxE,KAAKynM,aAAah9C,GAClDi9C,IACAA,EAASljM,GAAKqyK,EAAMpsB,IACpBm9C,EAAYttL,QACZstL,EAAYttL,OAAOA,EAAM,GAGrC,QAASmB,KAAKzb,KAAKynM,aACXA,EAAav2L,QAAQuK,GAAK,IAC1Bzb,KAAKunM,kBAAkB9rL,GACF,QAApBurI,EAAKvrI,EAAE3P,eAA4B,IAAPk7I,GAAyBA,EAAG3uI,KAAKoD,IAEtE,OAAIo7J,IACA6wB,EAAS/hM,QAAQ,CAAC4W,EAAK/X,IAAMqyK,EAAMryK,GAAK+X,GACxCs6J,EAAMpyK,OAASijM,EAASjjM,QAE5BzE,KAAKmnB,MAAQA,EACbnnB,KAAKwnM,SAAWA,EAChBxnM,KAAKynM,aAAeA,GACb,CACX,EAQJ,SAASI,GAAYlrC,GACjB,IAAMtF,OAAQsF,EACd,MAAO,CAAEpd,IAAK,EAAGtvC,KAAM,EAAGkpD,OAAQ9B,EAAImC,YAAatpD,MAAOmnD,EAAIkC,WAClE,CACA,MAAMuuC,GAA6B9hD,UAAa,CAC5CC,QAAStsI,IACL,IAAIqtI,EAAIif,EAAIkxB,EACZ,MAAQ,CACJ70J,SAAUm+H,GAAQF,IAAM,YAA4D,QAA7CvZ,EAAKrtI,EAAOimB,KAAK2uH,GAAQA,EAAKjsH,iBAA8B,IAAP0kH,OAAgB,EAASA,EAAG1kH,WAAa,QACrIj2B,QAAqD,QAA3C45J,EAAKtsJ,EAAOimB,KAAK2uH,GAAQA,EAAKliJ,eAA4B,IAAP45J,OAAgB,EAASA,EAAG55J,SAAW,KACpG07L,cAAiE,QAAjD5Q,EAAKx9K,EAAOimB,KAAK2uH,GAAQA,EAAKw5C,qBAAkC,IAAP5Q,OAAgB,EAASA,EAAG4Q,eAAiBF,GAC1H,IAGFG,GAA2B,IAAI5xJ,QAC/B6xJ,GAA6B37B,GAAWo3B,UAAU,MACpD7jM,YAAY88J,GACR38J,KAAK28J,KAAOA,EACZ38J,KAAK62K,MAAQ,GACb72K,KAAKooL,QAAS,EACdpoL,KAAKkoM,cAAe,EACpBloM,KAAKmoM,gBAAkB,EACvBnoM,KAAKooM,gBAAiB,EACtB,IAAI14J,EAASitH,EAAKj0I,MAAMm+H,MAAMihD,IAC9B9nM,KAAKsiC,SAAWoN,EAAOpN,SACvBtiC,KAAKqM,OAASqjC,EAAOrjC,OACrBrM,KAAKqoM,QAAU1rC,EAAK4+B,aACpBv7L,KAAKsoM,kBACLtoM,KAAKw1L,WAAa,CAAE3U,KAAM7gL,KAAKuoM,YAAYz+K,KAAK9pB,MAAOs7L,MAAOt7L,KAAKwoM,aAAa1+K,KAAK9pB,MAAO8Q,IAAK9Q,MACjGA,KAAKyoM,eAA0C,mBAAlB1T,eAA+B,IAAIA,eAAe,IAAM/0L,KAAK0oM,eAAiB,KAC3G1oM,KAAK6F,QAAU,IAAIwhM,GAAmB1qC,EAAMgsC,GAAa,CAACltL,EAAGge,IAAMz5B,KAAK4oM,cAAcntL,EAAGge,GAAIhe,IACrFzb,KAAKyoM,gBACLzoM,KAAKyoM,eAAeI,UAAUptL,EAAErX,KACpCqX,EAAErX,IAAIxD,QAAM,GAEhBZ,KAAK62K,MAAQ72K,KAAK6F,QAAQ2hM,SAASjgM,IAAIkU,KAAOA,EAAEo7J,OAChD72K,KAAK8oM,qBAAsD,mBAAxB7T,qBAAqC,IAAIA,qBAAqBv7K,IACzFqP,KAAKD,MAAQ9oB,KAAKmoM,gBAAkB,IACpCzuL,EAAQjV,OAAS,GAAKiV,EAAQA,EAAQjV,OAAS,GAAG0wL,kBAAoB,GACtEn1L,KAAK0oM,aAAW,EACrB,CAAEpT,UAAW,CAAC,KAAQ,KACzBt1L,KAAK+oM,sBACLpsC,EAAKtF,IAAI52J,iBAAiB,SAAUT,KAAK0oM,YAAc1oM,KAAK0oM,YAAY5+K,KAAK9pB,OAC7EA,KAAKgpM,cACT,CACAV,kBACQtoM,KAAKqM,QACLrM,KAAKg3B,UAAY31B,SAASL,cAAc,OACxChB,KAAKg3B,UAAUjwB,MAAMu7B,SAAW,WAChCtiC,KAAKg3B,UAAU6lD,UAAY78E,KAAK28J,KAAK4+B,aACrCv7L,KAAKqM,OAAO3D,YAAY1I,KAAKg3B,YAG7Bh3B,KAAKg3B,UAAYh3B,KAAK28J,KAAKv4J,GAEnC,CACA2kM,sBACI,GAAI/oM,KAAK8oM,qBAAsB,CAC3B9oM,KAAK8oM,qBAAqBrT,aAC1B,QAASvjD,KAAWlyI,KAAK6F,QAAQ4hM,aAC7BznM,KAAK8oM,qBAAqB9oL,QAAQkyH,EAAQ9tI,IAAG,CAEzD,CACAskM,cACQ1oM,KAAKooM,eAAiB,IACtBpoM,KAAKooM,eAAiBxnJ,WAAW,KAC7B5gD,KAAKooM,gBAAiB,EACtBpoM,KAAKgpM,cAAY,EAClB,IACX,CACA1uL,OAAOA,GACCA,EAAO6zJ,aAAa1pK,SACpBzE,KAAKmoM,gBAAkBp/K,KAAKD,OAChC,IAAIu1H,EAAUr+I,KAAK6F,QAAQyU,OAAOA,EAAQta,KAAK62K,OAC3Cx4B,GACAr+I,KAAK+oM,sBACT,IAAIE,EAAgB5qD,GAAW/jI,EAAOi0J,gBAClC26B,EAAY5uL,EAAOoO,MAAMm+H,MAAMihD,IACnC,GAAIoB,EAAU5mK,UAAYtiC,KAAKsiC,WAAatiC,KAAKkoM,aAAc,CAC3DloM,KAAKsiC,SAAW4mK,EAAU5mK,SAC1B,QAAS7mB,KAAKzb,KAAK6F,QAAQ4hM,aACvBhsL,EAAErX,IAAI2C,MAAMu7B,SAAWtiC,KAAKsiC,SAChC2mK,GAAgB,EAEpB,GAAIC,EAAU78L,QAAUrM,KAAKqM,OAAQ,CAC7BrM,KAAKqM,QACLrM,KAAKg3B,UAAUp2B,SACnBZ,KAAKqM,OAAS68L,EAAU78L,OACxBrM,KAAKsoM,kBACL,QAAS7sL,KAAKzb,KAAK6F,QAAQ4hM,aACvBznM,KAAKg3B,UAAUtuB,YAAY+S,EAAErX,KACjC6kM,GAAgB,OAEXjpM,KAAKqM,QAAUrM,KAAK28J,KAAK4+B,cAAgBv7L,KAAKqoM,UACnDroM,KAAKqoM,QAAUroM,KAAKg3B,UAAU6lD,UAAY78E,KAAK28J,KAAK4+B,cAEpD0N,GACAjpM,KAAKgpM,cACb,CACAJ,cAAc12D,EAAS5rC,GACnB,IAAIshG,EAAc11D,EAAQtmI,OAAO5L,KAAK28J,MAClCxa,EAAS77C,EAAOA,EAAKliG,IAAM,KAE/B,GADAwjM,EAAYxjM,IAAIiJ,UAAU/E,IAAI,cAC1B4pI,EAAQi3D,QAAUvB,EAAYxjM,IAAI9B,cAAc,mCAAoC,CACpF,IAAI6mM,EAAQ9nM,SAASL,cAAc,OACnCmoM,EAAMtsH,UAAY,mBAClB+qH,EAAYxjM,IAAIsE,YAAYygM,EAAK,CAErCvB,SAAYxjM,IAAI2C,MAAMu7B,SAAWtiC,KAAKsiC,SACtCslK,EAAYxjM,IAAI2C,MAAMw4I,IAAM6nD,GAC5BQ,EAAYxjM,IAAI2C,MAAMkpG,KAAO,MAC7BjwG,KAAKg3B,UAAUvqB,aAAam7L,EAAYxjM,IAAK+9I,GACzCylD,EAAY1wC,OACZ0wC,EAAY1wC,MAAMl3J,KAAK28J,MACvB38J,KAAKyoM,gBACLzoM,KAAKyoM,eAAezoL,QAAQ4nL,EAAYxjM,KACrCwjM,CACX,CACA97L,UACI,IAAIk7I,EAAIif,EAAIkxB,EACZn3L,KAAK28J,KAAKtF,IAAI32J,oBAAoB,SAAUV,KAAK0oM,aACjD,QAASd,KAAe5nM,KAAK6F,QAAQ4hM,aACjCG,EAAYxjM,IAAIxD,SACe,QAA9BomJ,EAAK4gD,EAAY97L,eAA4B,IAAPk7I,GAAyBA,EAAG3uI,KAAKuvL,GAExE5nM,KAAKqM,QACLrM,KAAKg3B,UAAUp2B,SACY,QAA9BqlK,EAAKjmK,KAAKyoM,sBAAmC,IAAPxiC,GAAyBA,EAAGwvB,aAC9B,QAApC0B,EAAKn3L,KAAK8oM,4BAAyC,IAAP3R,GAAyBA,EAAG1B,aACzEr8H,aAAap5D,KAAKooM,eACtB,CACAG,cACI,IAAIa,EAASppM,KAAK28J,KAAKv4J,IAAIy+J,wBACvBlJ,EAAS,EAAGE,EAAS,EAAGwvC,GAAe,EAC3C,GAAqB,SAAjBrpM,KAAKsiC,UAAuBtiC,KAAK6F,QAAQ4hM,aAAahjM,OAAQ,CAC9D,IAAML,OAAQpE,KAAK6F,QAAQ4hM,aAAa,GACxC,GAAIhnC,GAAQN,MAIRkpC,EAAejlM,EAAIqjL,cAAgBznL,KAAKg3B,UAAUogI,cAAcn1J,aAE3DmC,EAAI2C,MAAMw4I,KAAO6nD,IAA6B,OAAlBhjM,EAAI2C,MAAMkpG,KAAe,CAG1D,IAAIipD,EAAO90J,EAAIy+J,wBACfwmC,EAAen+K,KAAK0B,IAAIssI,EAAK3Z,IAAM,KAAS,GAAKr0H,KAAK0B,IAAIssI,EAAKjpD,MAAQ,GAG/E,GAAIo5F,GAAiC,YAAjBrpM,KAAKsiC,SACrB,GAAItiC,KAAKqM,OAAQ,CACb,IAAI6sJ,EAAOl5J,KAAKqM,OAAOw2J,wBACnB3J,EAAKzgG,OAASygG,EAAKnwE,SACnB4wE,EAAST,EAAKzgG,MAAQz4D,KAAKqM,OAAOutJ,YAClCC,EAASX,EAAKnwE,OAAS/oF,KAAKqM,OAAOytJ,oBAIpCH,SAAQE,UAAW75J,KAAK28J,KAAK+H,WAGxC,MAAO,CACH0kC,SACA/8L,OAAQrM,KAAKqM,OAASrM,KAAKg3B,UAAU6rI,wBAA0BumC,EAC/Dt1J,IAAK9zC,KAAK6F,QAAQ2hM,SAASjgM,IAAI,CAACkU,EAAGjX,KAC/B,IAAI8kM,EAAKtpM,KAAK6F,QAAQ4hM,aAAajjM,GACnC,OAAO8kM,EAAGC,UAAYD,EAAGC,UAAU9tL,EAAEq4B,KAAO9zC,KAAK28J,KAAKggC,YAAYlhL,EAAEq4B,IAAG,GAE3EsxB,KAAMplE,KAAK6F,QAAQ4hM,aAAalgM,IAAI,EAAGnD,SAAUA,EAAIy+J,yBACrD2mC,MAAOxpM,KAAK28J,KAAKj0I,MAAMm+H,MAAMihD,IAAeC,aAAa/nM,KAAK28J,MAC9DhD,SAAQE,SAAQwvC,eAExB,CACAb,aAAaljB,GACT,IAAIt+B,EACJ,GAAIs+B,EAAS+jB,aAAc,CACvBrpM,KAAKkoM,cAAe,EACpBloM,KAAKsiC,SAAW,WAChB,QAAS7mB,KAAKzb,KAAK6F,QAAQ4hM,aACvBhsL,EAAErX,IAAI2C,MAAMu7B,SAAW,WAE/B,IAAM8mK,SAAQI,QAAO7vC,SAAQE,UAAWyrB,EACpCmkB,EAAS,GACb,QAASjlM,EAAI,EAAGA,EAAIxE,KAAK6F,QAAQ2hM,SAAS/iM,OAAQD,IAAK,CACnD,IAAI0tI,EAAUlyI,KAAK6F,QAAQ2hM,SAAShjM,GAAIklM,EAAQ1pM,KAAK6F,QAAQ4hM,aAAajjM,IAAMJ,OAAQslM,EACpF51J,EAAMwxI,EAASxxI,IAAItvC,GAAI4gE,EAAOkgH,EAASlgH,KAAK5gE,GAEhD,IAAKsvC,GAAOA,EAAIqlH,QAAUjuI,KAAKC,IAAIi+K,EAAO7pD,IAAKiqD,EAAMjqD,MACjDzrG,EAAIyrG,KAAOr0H,KAAK4lC,IAAIs4I,EAAOjwC,OAAQqwC,EAAMrwC,SACzCrlH,EAAIo8D,MAAQhlF,KAAKC,IAAIi+K,EAAOn5F,KAAMu5F,EAAMv5F,MAAQ,IAChDn8D,EAAIm8D,KAAO/kF,KAAK4lC,IAAIs4I,EAAOl5F,MAAOs5F,EAAMt5F,OAAS,GAAI,CACrD9rG,EAAI2C,MAAMw4I,IAAM6nD,GAChB,SAEJ,IAAI+B,GAAQj3D,EAAQi3D,MAAQO,EAAMtlM,IAAI9B,cAAc,qBAAuB,KACvEqnM,GAAcR,GAAQ,EAAqB,EAC3C1wI,GAAQ2M,EAAK8qC,MAAQ9qC,EAAK6qC,KAAMlnB,GAA2C,QAAjCi+D,EAAKghD,GAAYhkM,IAAI0lM,UAA2B,IAAP1iD,EAAgBA,EAAK5hF,EAAK+zF,OAAS/zF,EAAKm6E,IAC3HrxF,GAASw7I,EAAMx7I,QAAU07I,GAAUv1B,GAAMr0K,KAAK28J,KAAK2X,eAAiB3M,GAAUC,IAC9E33D,GAAO7qC,EAAK3M,MAAQ+wI,EAAMt5F,MAAQs5F,EAAMv5F,KAAQokE,GAAMm1B,EAAMv5F,KAAOu5F,EAAMt5F,MAAQ9qC,EAAK3M,MACpF47G,GAAMnpJ,KAAK4lC,IAAIhd,EAAIm8D,MAAQk5F,GAAQ,GAAwB,GAAKj7I,GAAO75B,EAAGm1K,EAAMt5F,MAAQz3C,IACpFvtC,KAAKC,IAAIq+K,EAAMv5F,KAAMn8D,EAAIm8D,KAAOx3C,IAAS0wI,GAAQ,GAAwB,GAAKj7I,GAAO75B,GAC3FwiJ,GAAQ72K,KAAK62K,MAAMryK,IAClB0tI,EAAQ23D,aAAehzB,GACtB/iI,EAAIyrG,KAAOn6E,EAAK+zF,OAAS/zF,EAAKm6E,KAAOrxF,GAAOgnC,EAAIs0G,EAAMjqD,IACtDzrG,EAAIqlH,QAAU/zF,EAAK+zF,OAAS/zF,EAAKm6E,KAAOrxF,GAAOgnC,EAAIs0G,EAAMrwC,SAC3D0d,IAAU2yB,EAAMrwC,OAASrlH,EAAIqlH,OAASrlH,EAAIyrG,IAAMiqD,EAAMjqD,MACtDs3B,GAAQ72K,KAAK62K,MAAMryK,IAAMqyK,IAC7B,IAAIizB,IAAajzB,GAAQ/iI,EAAIyrG,IAAMiqD,EAAMjqD,IAAMiqD,EAAMrwC,OAASrlH,EAAIqlH,QAAUwwC,GAC5E,GAAIG,GAAY/gH,KAA2B,IAAjB2gH,EAAMK,OAAkB,CAC9C,GAAID,GAAY9pM,KAAK28J,KAAKmc,kBAAmB,CACzC10K,EAAI2C,MAAMw4I,IAAM6nD,GAChB,SAEJY,GAAYxhM,IAAIkjM,EAAO3gH,IACvB3kF,EAAI2C,MAAMgiF,QAAUA,GAAS+gH,IAAajwC,EAAS,UAE9Cz1J,EAAI2C,MAAMgiF,SACf3kF,EAAI2C,MAAMgiF,OAAS,IAEvB,IAAIw2D,GAAMs3B,GAAQ/iI,EAAIyrG,IAAMx2D,GAAS4gH,GAAcz7I,GAAOgnC,EAAIphD,EAAIqlH,OAASwwC,GAAcz7I,GAAOgnC,EAC5Fgb,GAAQD,GAAOx3C,GACnB,IAAsB,IAAlBixI,EAAMM,QACN,QAASp0L,MAAK6zL,EACN7zL,GAAEq6F,KAAOC,IAASt6F,GAAEs6F,MAAQD,IAAQr6F,GAAE2pI,IAAMA,GAAMx2D,IAAUnzE,GAAEujJ,OAAS5Z,KACvEA,GAAMs3B,GAAQjhK,GAAE2pI,IAAMx2D,GAAS,EAAI4gH,GAAc/zL,GAAEujJ,OAASwwC,GAAc,GACjE,YAAjB3pM,KAAKsiC,UACLl+B,EAAI2C,MAAMw4I,KAAOA,GAAM+lC,EAASj5K,OAAOkzI,KAAOsa,EAAS,KACvDz1J,EAAI2C,MAAMkpG,MAAQA,GAAOq1E,EAASj5K,OAAO4jG,MAAQ0pD,EAAS,OAG1Dv1J,EAAI2C,MAAMw4I,IAAMA,GAAMsa,EAAS,KAC/Bz1J,EAAI2C,MAAMkpG,KAAOA,GAAO0pD,EAAS,MAEjCwvC,KAEAA,GAAMpiM,MAAMkpG,MADIn8D,EAAIm8D,MAAQokE,GAAMnmH,GAAO75B,GAAK65B,GAAO75B,IAAM47E,GAAO,GAAwB,IAC3D0pD,EAAS,OAEtB,IAAlB+vC,EAAMM,SACNP,EAAO7gM,KAAK,CAAEqnG,QAAMsvC,OAAKrvC,SAAOipD,OAAQ5Z,GAAMx2D,KAClD3kF,EAAIiJ,UAAU48L,OAAO,mBAAoBpzB,IACzCzyK,EAAIiJ,UAAU48L,OAAO,oBAAqBpzB,IACtC6yB,EAAMQ,YACNR,EAAMQ,WAAW5kB,EAASkkB,MAAK,CAE3C,CACAR,eACI,GAAIhpM,KAAK6F,QAAQ2hM,SAAS/iM,SAClBzE,KAAK28J,KAAKyrB,QACVpoL,KAAK28J,KAAK44B,eAAev1L,KAAKw1L,YAC9Bx1L,KAAKooL,QAAUpoL,KAAK28J,KAAKyrB,SACzBpoL,KAAKooL,OAASpoL,KAAK28J,KAAKyrB,QACnBpoL,KAAKooL,SACN,QAASkhB,KAAMtpM,KAAK6F,QAAQ4hM,aACxB6B,EAAGllM,IAAI2C,MAAMw4I,IAAM6nD,EAGvC,GACD,CACCz6B,eAAgB,CACZsR,SAAWj+K,KAAKgpM,cAAgB,KAiElCY,GAAW,CAAEv1K,EAAG,EAAG6gE,EAAG,GAItByzG,GAA2B3iD,UAAa,CAC1CI,QAAS,CAAC6hD,GAnEiB5O,GAAW8Q,UAAU,CAChD,cAAe,CACX7b,OAAQ,IACRN,UAAW,cAEf,qBAAsB,CAClBoC,OAAQ,iBACRb,gBAAiB,WAErB,+CAAgD,CAC5CK,UAAW,kBAEf,oBAAqB,CACjBL,gBAAiB,UACjBn4E,MAAO,SAEX,oBAAqB,CACjBruB,OAAS,MACTtwB,MAAQ,OACRn2B,SAAU,WACVgsJ,QAAQ,EACR/G,SAAU,SACV,oBAAqB,CACjB/6K,QAAS,KACT81B,SAAU,WACVm2B,MAAO,EACPswB,OAAQ,EACRomG,WAAa,wBACbM,YAAc,yBAElB,sBAAuB,CACnBt2B,OAAS,OACT,WAAY,CACRy2B,UAAY,kBAEhB,UAAW,CACPA,UAAY,oBACZz2B,OAAQ,QAGhB,sBAAuB,CACnB5Z,IAAM,OACN,WAAY,CACRowC,aAAe,kBAEnB,UAAW,CACPA,aAAe,oBACfpwC,IAAK,SAIjB,sCAAuC,CACnC,WAAY,CACR6qD,eAAgB,UAChBC,kBAAmB,WAEvB,UAAW,CACPD,eAAgB,cAChBC,kBAAmB,qBAWzBC,GAAgCtkD,UAAa,CAC/CC,QAASskD,GAAUA,EAAO3rL,OAAO,CAACoS,EAAGxsB,IAAMwsB,EAAEvW,OAAOjW,GAAI,MAE5D,MAAMgmM,GAEFrqM,cAAcw8J,GACV,OAAO,IAAI6tC,GAAiB7tC,EAChC,CACA98J,YAAY88J,GACR38J,KAAK28J,KAAOA,EACZ38J,KAAKyqM,SAAU,EACfzqM,KAAKoE,IAAM/C,SAASL,cAAc,OAClChB,KAAKoE,IAAIiJ,UAAU/E,IAAI,oBACvBtI,KAAK6F,QAAU,IAAIwhM,GAAmB1qC,EAAM2tC,GAAkB,CAAC7uL,EAAGge,IAAMz5B,KAAK0qM,iBAAiBjvL,EAAGge,GAAIhe,GAAKA,EAAErX,IAAIxD,SACpH,CACA8pM,iBAAiBx4D,EAAS5rC,GACtB,IAAIqkG,EAAaz4D,EAAQtmI,OAAO5L,KAAK28J,MACrCguC,SAAWvmM,IAAIiJ,UAAU/E,IAAI,sBAC7BtI,KAAKoE,IAAIqI,aAAak+L,EAAWvmM,IAAKkiG,EAAOA,EAAKliG,IAAI2I,YAAc/M,KAAKoE,IAAI8+B,YACzEljC,KAAKyqM,SAAWE,EAAWzzC,OAC3ByzC,EAAWzzC,MAAMl3J,KAAK28J,MACnBguC,CACX,CACAzzC,MAAMyF,GACF,QAASguC,KAAc3qM,KAAK6F,QAAQ4hM,aAC5BkD,EAAWzzC,OACXyzC,EAAWzzC,MAAMyF,GAEzB38J,KAAKyqM,SAAU,CACnB,CACAP,WAAWV,GACP,QAASmB,KAAc3qM,KAAK6F,QAAQ4hM,aAC5BkD,EAAWT,YACXS,EAAWT,WAAWV,EAElC,CACAlvL,OAAOA,GACHta,KAAK6F,QAAQyU,OAAOA,EACxB,CACAxO,UACI,IAAIk7I,EACJ,QAASvrI,KAAKzb,KAAK6F,QAAQ4hM,aACF,QAApBzgD,EAAKvrI,EAAE3P,eAA4B,IAAPk7I,GAAyBA,EAAG3uI,KAAKoD,EACtE,CACAmvL,SAASxnM,GACL,IAAI8I,EACJ,QAASywJ,KAAQ38J,KAAK6F,QAAQ4hM,aAAc,CACxC,IAAIoD,EAAQluC,EAAKv5J,GACjB,QAAc6K,IAAV48L,EACA,QAAc58L,IAAV/B,EACAA,EAAQ2+L,UACH3+L,IAAU2+L,EACf,OAGZ,OAAO3+L,CACX,CACIgiD,aAAW,OAAOluD,KAAK4qM,SAAS,SAAW,CAC3CrB,gBAAc,OAAOvpM,KAAK4qM,SAAS,YAAc,CACjDZ,cAAY,OAAOhqM,KAAK4qM,SAAS,UAAY,CAC7Cb,aAAW,OAAO/pM,KAAK4qM,SAAS,SAAW,EAEnD,MAAME,GAAoCnC,GAAYliD,QAAQ,CAAC6jD,IAAmB5hL,IAC9E,IAAI8+K,EAAW9+K,EAAMm+H,MAAMyjD,IAC3B,OAAwB,IAApB9C,EAAS/iM,OACF,KACJ,CACHqvC,IAAK5oB,KAAK4lC,OAAO02I,EAASjgM,IAAIkU,GAAKA,EAAEq4B,MACrCtoC,IAAK0f,KAAKC,OAAOq8K,EAASjgM,IAAIkU,IAAO,IAAIurI,EAAI,OAAwB,QAAhBA,EAAKvrI,EAAEjQ,WAAwB,IAAPw7I,EAAgBA,EAAKvrI,EAAEq4B,OACpGloC,OAAQ4+L,GAAiB5+L,OACzBirK,MAAO2wB,EAAS,GAAG3wB,MACnBsyB,MAAO3B,EAAS53J,KAAKn0B,GAAKA,EAAE0tL,OAChC,GAEJ,MAAM4B,GACFlrM,YAAY88J,EAAMzkJ,EAAQyuI,EAAOqkD,EAAUC,GACvCjrM,KAAK28J,KAAOA,EACZ38J,KAAKkY,OAASA,EACdlY,KAAK2mJ,MAAQA,EACb3mJ,KAAKgrM,SAAWA,EAChBhrM,KAAKirM,UAAYA,EACjBjrM,KAAKkrM,cAAe,EACpBlrM,KAAKmrM,gBAAiB,EACtBnrM,KAAK0pB,QAAU,KACf1pB,KAAKorM,SAAW,CAAE/2K,EAAG,EAAG6gE,EAAG,EAAGnzF,OAAQ46J,EAAKv4J,IAAK4mB,KAAM,GACtDhrB,KAAKqrM,WAAarrM,KAAKqrM,WAAWvhL,KAAK9pB,MACvC28J,EAAKv4J,IAAI3D,iBAAiB,aAAcT,KAAKsrM,WAAatrM,KAAKsrM,WAAWxhL,KAAK9pB,OAC/E28J,EAAKv4J,IAAI3D,iBAAiB,YAAaT,KAAKurM,UAAYvrM,KAAKurM,UAAUzhL,KAAK9pB,MAChF,CACAsa,SACQta,KAAK0pB,UACL1pB,KAAK0pB,QAAU,KACf0vC,aAAap5D,KAAKmrM,gBAClBnrM,KAAKmrM,eAAiBvqJ,WAAW,IAAM5gD,KAAKwrM,aAAc,IAElE,CACIriL,aACA,OAAOnpB,KAAK28J,KAAKj0I,MAAMi+H,MAAM3mJ,KAAK2mJ,MACtC,CACA0kD,aAEI,GADArrM,KAAKkrM,cAAe,EAChBlrM,KAAKmpB,OAAO1kB,OACZ,OACJ,IAAIgnM,EAAU1iL,KAAKD,MAAQ9oB,KAAKorM,SAASpgL,KACrCygL,EAAUzrM,KAAKirM,UACfjrM,KAAKkrM,aAAetqJ,WAAW5gD,KAAKqrM,WAAYrrM,KAAKirM,UAAYQ,GAEjEzrM,KAAKwrM,YACb,CACAA,aACIpyI,aAAap5D,KAAKmrM,gBAClB,IAAMxuC,OAAMyuC,YAAaprM,KACrBkjJ,EAAOyZ,EAAKkI,QAAQ4O,QAAQ23B,EAASrpM,QACzC,IAAKmhJ,EACD,OACJ,IAAIpvG,EAAKu7G,EAAO,EAChB,GAAInM,aAAgBkf,GAChBtuH,EAAMovG,EAAKsZ,eAEV,CAED,GADA1oH,EAAM6oH,EAAK8a,YAAY2zB,GACZ,MAAPt3J,EACA,OACJ,IAAI43J,EAAY/uC,EAAKggC,YAAY7oJ,GACjC,IAAK43J,GACDN,EAASl2G,EAAIw2G,EAAUnsD,KAAO6rD,EAASl2G,EAAIw2G,EAAUvyC,QACrDiyC,EAAS/2K,EAAIq3K,EAAUz7F,KAAO0sD,EAAKic,uBACnCwyB,EAAS/2K,EAAIq3K,EAAUx7F,MAAQysD,EAAKic,sBACpC,OACJ,IAAI+yB,EAAOhvC,EAAKyc,UAAUzc,EAAKj0I,MAAMxnB,IAAIk7I,OAAOtoG,IAAMlU,KAAKj2B,GAAKA,EAAEoQ,MAAQ+5B,GAAOnqC,EAAEupH,IAAMp/E,GACrF83J,EAAMD,GAAQA,EAAK1uD,KAAO0qB,GAAUE,KAAM,EAAK,EACnDxY,EAAQ+7C,EAAS/2K,EAAIq3K,EAAUz7F,MAAQ27F,EAAMA,EAEjD,IAAIlpL,EAAO1iB,KAAKkY,OAAOykJ,EAAM7oH,EAAKu7G,GAClC,GAAgD3sI,GAAKve,KAAM,CACvD,IAAIulB,EAAU1pB,KAAK0pB,QAAU,CAAEoqB,OAC/BpxB,EAAKve,KAAKmN,IACFtR,KAAK0pB,SAAWA,IAChB1pB,KAAK0pB,QAAU,KACXpY,KAAYwI,MAAM2C,QAAQnL,IAAYA,EAAO7M,SAC7Ck4J,EAAKvyI,SAAS,CAAEqhI,QAASzrJ,KAAKgrM,SAAS3zL,GAAGyC,MAAM2C,QAAQnL,GAAUA,EAAS,CAACA,MAAU,EAE/FnJ,GAAK8jK,GAAatP,EAAKj0I,MAAOvgB,EAAG,iBAAgB,MAE/Cua,KAAU5I,MAAM2C,QAAQiG,IAAUA,EAAKje,SAC5Ck4J,EAAKvyI,SAAS,CAAEqhI,QAASzrJ,KAAKgrM,SAAS3zL,GAAGyC,MAAM2C,QAAQiG,GAAQA,EAAO,CAACA,KAEhF,CACIwvH,cACA,IAAItsI,EAAS5F,KAAK28J,KAAK/2J,OAAOqiM,IAC1B52L,EAAQzL,EAASA,EAAOC,QAAQ2hM,SAAShrG,UAAU/gF,GAAKA,EAAE7P,QAAU4+L,GAAiB5+L,SAAU,EACnG,OAAOyF,GAAQ,EAAKzL,EAAOC,QAAQ4hM,aAAap2L,GAAS,IAC7D,CACAk6L,UAAUxhM,GACN,IAAIi9I,EAAIif,EACRjmK,KAAKorM,SAAW,CAAE/2K,EAAGtqB,EAAM2zK,QAASxoF,EAAGnrF,EAAM4zK,QAAS57K,OAAQgI,EAAMhI,OAAQipB,KAAMjC,KAAKD,OACnF9oB,KAAKkrM,aAAe,IACpBlrM,KAAKkrM,aAAetqJ,WAAW5gD,KAAKqrM,WAAYrrM,KAAKirM,YACzD,IAAM9hL,SAAQ+oH,WAAYlyI,KAC1B,GAAImpB,EAAO1kB,QAAUytI,IAqC7B,SAAS25D,GAAY35D,EAASnoI,GAC1B,IAAImvJ,EAAOhnB,EAAQ2wB,wBACnB,OAAO94J,EAAM2zK,SAAWxkB,EAAKjpD,KAAO67F,IAAiB/hM,EAAM2zK,SAAWxkB,EAAKhpD,MAAQ47F,IAC/E/hM,EAAM4zK,SAAWzkB,EAAK3Z,IAAMusD,IAAiB/hM,EAAM4zK,SAAWzkB,EAAKC,OAAS2yC,EACpF,CAzCyCD,CAAY35D,EAAQ9tI,IAAK2F,IAAU/J,KAAK0pB,QAAS,CAC9E,IAAMoqB,OAAQ3qB,EAAO,IAAMnpB,KAAK0pB,QAASle,EAA8E,QAAvEy6J,EAA0B,QAApBjf,EAAK79H,EAAO,UAAuB,IAAP69H,OAAgB,EAASA,EAAGx7I,WAAwB,IAAPy6J,EAAgBA,EAAKnyH,GAC/IA,GAAOtoC,EAAMxL,KAAK28J,KAAK8a,YAAYz3K,KAAKorM,WAAat3J,GAwCtE,SAASi4J,GAAYpvC,EAAM5iJ,EAAMm5G,EAAI7+F,EAAG6gE,EAAGoxE,GACvC,IAAIpN,EAAOyD,EAAKwX,UAAUtR,wBAE1B,GAAI3J,EAAKjpD,KAAO57E,GAAK6kI,EAAKhpD,MAAQ77E,GAAK6kI,EAAK3Z,IAAMrqD,GAAKhqE,KAAK4lC,IAAIooG,EAAKC,OADrDwD,EAAKw/B,YAAcx/B,EAAKy/B,gBAAgB78C,IAAMod,EAAKsU,eACuB/7E,EACtF,OAAO,EACX,IAAIphD,EAAM6oH,EAAK8a,YAAY,CAAEpjJ,IAAG6gE,MAAK,GACrC,OAAOphD,GAAO/5B,GAAQ+5B,GAAOo/E,CACjC,CA9CmB64E,CAAY/rM,KAAK28J,KAAM7oH,EAAKtoC,EAAKzB,EAAM2zK,QAAS3zK,EAAM4zK,YACzD39K,KAAK28J,KAAKvyI,SAAS,CAAEqhI,QAASzrJ,KAAKgrM,SAAS3zL,GAAG,MAC/CrX,KAAK0pB,QAAU,MAG3B,CACA4hL,WAAWvhM,GACPqvD,aAAap5D,KAAKkrM,cAClBlrM,KAAKkrM,cAAe,EACpB,IAAM/hL,UAAWnpB,KACjB,GAAImpB,EAAO1kB,OAAQ,CACf,IAAMytI,WAAYlyI,KACFkyI,GAAWA,EAAQ9tI,IAAIm5D,SAASxzD,EAAMm6L,eAIlDlkM,KAAKgsM,kBAAkB95D,EAAQ9tI,KAF/BpE,KAAK28J,KAAKvyI,SAAS,CAAEqhI,QAASzrJ,KAAKgrM,SAAS3zL,GAAG,KAAK,CAIhE,CACA20L,kBAAkB95D,GACd,IAAI+5D,EAASliM,IACTmoI,EAAQxxI,oBAAoB,aAAcurM,GACtCjsM,KAAKmpB,OAAO1kB,SAAWzE,KAAK28J,KAAKv4J,IAAIm5D,SAASxzD,EAAMm6L,gBACpDlkM,KAAK28J,KAAKvyI,SAAS,CAAEqhI,QAASzrJ,KAAKgrM,SAAS3zL,GAAG,KAAK,EAE5D66H,EAAQzxI,iBAAiB,aAAcwrM,EAC3C,CACAngM,UACIstD,aAAap5D,KAAKkrM,cAClBlrM,KAAK28J,KAAKv4J,IAAI1D,oBAAoB,aAAcV,KAAKsrM,YACrDtrM,KAAK28J,KAAKv4J,IAAI1D,oBAAoB,YAAaV,KAAKurM,UACxD,EAEJ,MAAMO,GAAgB,EA2BtB,SAASI,GAAah0L,EAAQ0D,EAAU,CAAC,GACrC,IAAIovL,EAAW1/C,YACX6gD,EAAalkD,UAAkB,CAC/Br8I,WAAkB,GAClB0O,OAAOpO,EAAOo7I,GACV,GAAIp7I,EAAMzH,SACFmX,EAAQwwL,eAAiB9kD,EAAGC,YAAcD,EAAGzB,WAC7C35I,EAAQ,GACH0P,EAAQywL,SACbngM,EAAQA,EAAM6L,OAAOwD,IAAMK,EAAQywL,OAAO/kD,EAAI/rI,KAC9C+rI,EAAGC,YAAY,CACf,IAAIiE,EAAS,GACb,QAAStZ,KAAWhmI,EAAO,CACvB,IAAI6kJ,EAASzJ,EAAG3+G,QAAQ05G,OAAOnQ,EAAQp+F,KAAK,EAAImtG,aAChD,GAAc,MAAV8P,EAAgB,CAChB,IAAIxS,EAAO5yI,OAAO2gM,OAAO3gM,OAAOC,OAAO,MAAOsmI,GAC9CqM,EAAKzqG,IAAMi9G,EACK,MAAZxS,EAAK/yI,MACL+yI,EAAK/yI,IAAM87I,EAAG3+G,QAAQ05G,OAAO9D,EAAK/yI,MACtCggJ,EAAO5iJ,KAAK21I,EAAI,EAGxBryI,EAAQs/I,EAGhB,QAASE,KAAUpE,EAAGmE,QACdC,EAAOviE,GAAG6hH,KACV9+L,EAAQw/I,EAAOx/I,OACfw/I,EAAOviE,GAAGojH,MACVrgM,EAAQ,IAEhB,OAAOA,CACX,EACAxI,QAAS09C,GAAKkpJ,GAAiBvwL,KAAKqnC,KAExC,MAAO,CACH+qJ,EACA7/B,GAAWzjB,OAAO8T,GAAQ,IAAIouC,GAAYpuC,EAAMzkJ,EAAQi0L,EAAYnB,EAAUpvL,EAAQqvL,WAAa,MACnGH,GAER,CAIA,SAAS0B,GAAW7vC,EAAMzqB,GACtB,IAAItsI,EAAS+2J,EAAK/2J,OAAOqiM,IACzB,IAAKriM,EACD,OAAO,KACX,IAAI8wD,EAAQ9wD,EAAOC,QAAQ2hM,SAASt2L,QAAQghI,GAC5C,OAAOx7E,EAAQ,EAAI,KAAO9wD,EAAOC,QAAQ4hM,aAAa/wI,EAC1D,CAOA,MAAM61I,GAAuCjhD,YAiBvCmhD,GAA2BzmD,UAAa,CAC1CC,QAAQgK,GACJ,IAAIy8C,EAAcC,EAClB,QAASr1K,KAAK24H,EACVy8C,EAAeA,GAAgBp1K,EAAEo1K,aACjCC,EAAkBA,GAAmBr1K,EAAEq1K,gBAE3C,MAAO,CAAED,eAAcC,kBAC3B,IAaJ,SAASC,GAASjwC,EAAMkwC,GACpB,IAAIjnM,EAAS+2J,EAAK/2J,OAAOknM,IACrBz7L,EAAQzL,EAASA,EAAO0nJ,MAAMp8I,QAAQ27L,IAAS,EACnD,OAAOx7L,GAAQ,EAAKzL,EAAOmnM,OAAO17L,GAAS,IAC/C,CACA,MAAMy7L,GAA2BxgC,GAAWo3B,UAAU,MAClD7jM,YAAY88J,GACR38J,KAAKmnB,MAAQw1I,EAAKj0I,MAAMm+H,MAAMmmD,IAC9BhtM,KAAKstJ,MAAQttJ,KAAKmnB,MAAMpP,OAAOpO,GAAKA,GACpC3J,KAAK+sM,OAAS/sM,KAAKstJ,MAAM/lJ,IAAIs8I,GAAQA,EAAK8Y,IAC1C,IAAIpO,EAAOoO,EAAKj0I,MAAMm+H,MAAM4lD,IAC5BzsM,KAAKu/I,IAAM,IAAI0tD,GAAWtwC,GAAM,EAAMpO,EAAKm+C,cAC3C1sM,KAAKm5J,OAAS,IAAI8zC,GAAWtwC,GAAM,EAAOpO,EAAKo+C,iBAC/C3sM,KAAKu/I,IAAIud,KAAK98J,KAAK+sM,OAAOh1L,OAAO0hB,GAAKA,EAAE8lH,MACxCv/I,KAAKm5J,OAAO2D,KAAK98J,KAAK+sM,OAAOh1L,OAAO0hB,IAAMA,EAAE8lH,MAC5C,QAAS9lH,KAAKz5B,KAAK+sM,OACftzK,EAAEr1B,IAAIiJ,UAAU/E,IAAI,YAChBmxB,EAAEy9H,OACFz9H,EAAEy9H,OAEd,CACA58I,OAAOA,GACH,IAAIi0I,EAAOj0I,EAAOoO,MAAMm+H,MAAM4lD,IAC1BzsM,KAAKu/I,IAAIvoH,WAAau3H,EAAKm+C,eAC3B1sM,KAAKu/I,IAAIud,KAAK,IACd98J,KAAKu/I,IAAM,IAAI0tD,GAAW3yL,EAAOqiJ,MAAM,EAAMpO,EAAKm+C,eAElD1sM,KAAKm5J,OAAOniI,WAAau3H,EAAKo+C,kBAC9B3sM,KAAKm5J,OAAO2D,KAAK,IACjB98J,KAAKm5J,OAAS,IAAI8zC,GAAW3yL,EAAOqiJ,MAAM,EAAOpO,EAAKo+C,kBAE1D3sM,KAAKu/I,IAAI2tD,cACTltM,KAAKm5J,OAAO+zC,cACZ,IAAI/lL,EAAQ7M,EAAOoO,MAAMm+H,MAAMmmD,IAC/B,GAAI7lL,GAASnnB,KAAKmnB,MAAO,CACrB,IAAImmI,EAAQnmI,EAAMpP,OAAOsc,GAAKA,GAC1B04K,EAAS,GAAIxtD,EAAM,GAAI4Z,EAAS,GAAIjC,EAAQ,GAChD,QAASrT,KAAQyJ,EAAO,CACpB,IAAsCu/C,EAAlCpiD,EAAQzqJ,KAAKstJ,MAAMp8I,QAAQ2yI,GAC3B4G,EAAQ,GACRoiD,EAAQhpD,EAAKvpI,EAAOqiJ,MACpBzF,EAAMtuJ,KAAKikM,KAGXA,EAAQ7sM,KAAK+sM,OAAOtiD,GAChBoiD,EAAMvyL,QACNuyL,EAAMvyL,OAAOA,IAErByyL,EAAOnkM,KAAKikM,IACXA,EAAMttD,IAAMA,EAAM4Z,GAAQvwJ,KAAKikM,EAAK,CAEzC7sM,KAAKstJ,MAAQA,EACbttJ,KAAK+sM,OAASA,EACd/sM,KAAKu/I,IAAIud,KAAKvd,GACdv/I,KAAKm5J,OAAO2D,KAAK3D,GACjB,QAAS1/H,KAAKy9H,EACVz9H,EAAEr1B,IAAIiJ,UAAU/E,IAAI,YAChBmxB,EAAEy9H,OACFz9H,EAAEy9H,OAAK,MAIf,QAASz9H,KAAKz5B,KAAK+sM,OACXtzK,EAAEnf,QACFmf,EAAEnf,OAAOA,EAEzB,CACAxO,UACI9L,KAAKu/I,IAAIud,KAAK,IACd98J,KAAKm5J,OAAO2D,KAAK,GACrB,GACD,CACCp5J,QAASkC,GAAUyzL,GAAW5rB,cAAcp2J,GAAGslJ,IAC3C,IAAIzwJ,EAAQywJ,EAAK/2J,OAAOA,GACxB,OAAOsG,GAAS,CAAEqzI,IAAKrzI,EAAMqzI,IAAI4tD,eAAgBh0C,OAAQjtJ,EAAMitJ,OAAOg0C,eAAe,KAG7F,MAAMF,GACFptM,YAAY88J,EAAMpd,EAAKvoH,GACnBh3B,KAAK28J,KAAOA,EACZ38J,KAAKu/I,IAAMA,EACXv/I,KAAKg3B,UAAYA,EACjBh3B,KAAKoE,SAAM6J,EACXjO,KAAKqoM,QAAU,GACfroM,KAAK+sM,OAAS,GACd/sM,KAAKktM,aACT,CACApwC,KAAKiwC,GACD,QAAStzK,KAAKz5B,KAAK+sM,OACXtzK,EAAE3tB,SAAWihM,EAAO77L,QAAQuoB,GAAK,GACjCA,EAAE3tB,UACV9L,KAAK+sM,OAASA,EACd/sM,KAAKotM,SACT,CACAA,UACI,GAA0B,GAAtBptM,KAAK+sM,OAAOtoM,OAKZ,YAJIzE,KAAKoE,MACLpE,KAAKoE,IAAIxD,SACTZ,KAAKoE,SAAM6J,IAInB,IAAKjO,KAAKoE,IAAK,CACXpE,KAAKoE,IAAM/C,SAASL,cAAc,OAClChB,KAAKoE,IAAIy4E,UAAY78E,KAAKu/I,IAAM,0BAA4B,6BAC5Dv/I,KAAKoE,IAAI2C,MAAM/G,KAAKu/I,IAAM,MAAQ,UAAY,IAC9C,IAAIlzI,EAASrM,KAAKg3B,WAAah3B,KAAK28J,KAAKv4J,IACzCiI,EAAOI,aAAazM,KAAKoE,IAAKpE,KAAKu/I,IAAMlzI,EAAO62B,WAAa,KAAI,CAErE,IAAImqK,EAASrtM,KAAKoE,IAAI8+B,WACtB,QAAS2pK,KAAS7sM,KAAK+sM,OACnB,GAAIF,EAAMzoM,IAAItD,YAAcd,KAAKoE,IAAK,CAClC,KAAOipM,GAAUR,EAAMzoM,KACnBipM,EAASC,GAAGD,GAChBA,EAASA,EAAOtgM,iBAGhB/M,KAAKoE,IAAIqI,aAAaogM,EAAMzoM,IAAKipM,GAGzC,KAAOA,GACHA,EAASC,GAAGD,EACpB,CACAF,eACI,OAAQntM,KAAKoE,KAAOpE,KAAKg3B,UAAY,EAC/B9L,KAAKC,IAAI,EAAGnrB,KAAKu/I,IACfv/I,KAAKoE,IAAIy+J,wBAAwB1J,OAASjuI,KAAKC,IAAI,EAAGnrB,KAAK28J,KAAKwX,UAAUtR,wBAAwBtjB,KAClGr0H,KAAK4lC,IAAI0oG,YAAax5J,KAAK28J,KAAKwX,UAAUtR,wBAAwB1J,QAAUn5J,KAAKoE,IAAIy+J,wBAAwBtjB,IACzH,CACA2tD,cACI,GAAKltM,KAAKg3B,WAAah3B,KAAKqoM,SAAWroM,KAAK28J,KAAK4+B,aAEjD,SAASt3B,KAAOjkK,KAAKqoM,QAAQx3L,MAAM,KAC3BozJ,GACAjkK,KAAKg3B,UAAU3pB,UAAUzM,OAAOqjK,GACxC,QAASA,KAAQjkK,KAAKqoM,QAAUroM,KAAK28J,KAAK4+B,cAAc1qL,MAAM,KACtDozJ,GACAjkK,KAAKg3B,UAAU3pB,UAAU/E,IAAI27J,EAAG,CAC5C,EAEJ,SAASqpC,GAAGzsM,GACR,IAAIiY,EAAOjY,EAAKkM,YAChBlM,SAAKD,SACEkY,CACX,CAMA,MAAMk0L,GAAyBhnD,UAAa,CACxCI,QAAS0mD,KAQb,MAAMS,WAAqBr9C,GAIvB5vH,QAAQ9lB,GACJ,OAAOxa,MAAQwa,GAASxa,KAAKH,aAAe2a,EAAM3a,aAAeG,KAAK28I,GAAGniI,EAC7E,CAIAmiI,GAAGniI,GAAS,OAAO,CAAO,CAK1B1O,QAAQ1H,GAAO,EAEnBmpM,GAAal+K,UAAUm+K,aAAe,GACtCD,GAAal+K,UAAUmzI,WAAQv0J,EAC/Bs/L,GAAal+K,UAAUkhI,QAAUtP,eACjCssD,GAAal+K,UAAU+gI,UAAYm9C,GAAal+K,UAAUghI,SAAU,EACpEk9C,GAAal+K,UAAUihI,OAAQ,EAQ/B,MAAMm9C,GAA+BznD,YAC/BjzE,GAAW,CACbgvF,MAAO,GACP2rC,qBAAqB,EACrBC,aAAc,GACd1L,QAAS,IAAM7wC,SACfw8C,WAAY,IAAM,KAClBC,aAAc,IAAM,KACpBC,iBAAkB,KAClBC,cAAe,KACfC,aAAc,KACdzhC,iBAAkB,CAAC,GAEjB0hC,GAA6BjoD,YAKnC,SAASkoD,GAAOx+J,GACZ,MAAO,CAACy+J,KAAWF,GAAc52L,GAAG1L,OAAO2gM,OAAO3gM,OAAO2gM,OAAO,CAAC,EAAGv5H,IAAWrjC,IACnF,CACA,MAAM0+J,GAA4BpoD,UAAa,CAC3CC,QAAStsI,GAAUA,EAAOi2B,KAAKvb,GAAKA,KAYxC,SAAS85K,GAAQz+J,GACb,IAAIp+B,EAAS,CACT+8L,IAEJ,OAAI3+J,IAA2B,IAAjBA,EAAO4+J,OACjBh9L,EAAO1I,KAAKwlM,GAAa/2L,IAAG,IACzB/F,CACX,CACA,MAAM+8L,GAA0B/hC,GAAWo3B,UAAU,MACjD7jM,YAAY88J,GACR38J,KAAK28J,KAAOA,EACZ38J,KAAKuuM,aAAe5xC,EAAK2U,SACzBtxK,KAAKoE,IAAM/C,SAASL,cAAc,OAClChB,KAAKoE,IAAIy4E,UAAY,aACrB78E,KAAKoE,IAAIzB,aAAa,cAAe,QACrC3C,KAAKoE,IAAI2C,MAAMyiF,UAAaxpF,KAAK28J,KAAKsU,cAAgBjxK,KAAK28J,KAAK9C,OAAU,KAC1E75J,KAAKmuM,QAAUxxC,EAAKj0I,MAAMm+H,MAAMonD,IAAe1mM,IAAIgnJ,GAAQ,IAAIigD,GAAiB7xC,EAAMpO,IACtF,QAAS2/C,KAAUluM,KAAKmuM,QACpBnuM,KAAKoE,IAAIsE,YAAYwlM,EAAO9pM,KAChCpE,KAAKsuM,OAAS3xC,EAAKj0I,MAAMm+H,MAAMunD,IAC3BpuM,KAAKsuM,QAILtuM,KAAKoE,IAAI2C,MAAMu7B,SAAW,UAE9BtiC,KAAKyuM,aAAY,GACjB9xC,EAAKwX,UAAU1nK,aAAazM,KAAKoE,IAAKu4J,EAAK4S,WAC/C,CACAj1J,OAAOA,GACH,GAAIta,KAAK0uM,cAAcp0L,GAAS,CAI5B,IAAIq0L,EAAM3uM,KAAKuuM,aAAcK,EAAMt0L,EAAOqiJ,KAAK2U,SAC3Cu9B,EAAY3jL,KAAK4lC,IAAI69I,EAAIz7E,GAAI07E,EAAI17E,IAAMhoG,KAAKC,IAAIwjL,EAAI50L,KAAM60L,EAAI70L,MAClE/Z,KAAKyuM,YAAYI,EAAkC,IAArBD,EAAI17E,GAAK07E,EAAI70L,MAAW,CAEtDO,EAAOi0J,kBACPvuK,KAAKoE,IAAI2C,MAAMyiF,UAAaxpF,KAAK28J,KAAKsU,cAAgBjxK,KAAK28J,KAAK9C,OAAU,MAE1E75J,KAAK28J,KAAKj0I,MAAMm+H,MAAMunD,MAAkBpuM,KAAKsuM,QAC7CtuM,KAAKsuM,OAAStuM,KAAKsuM,MACnBtuM,KAAKoE,IAAI2C,MAAMu7B,SAAWtiC,KAAKsuM,MAAQ,SAAW,IAEtDtuM,KAAKuuM,aAAej0L,EAAOqiJ,KAAK2U,QACpC,CACAm9B,YAAYjlK,GACR,IAAI+zH,EAAQv9J,KAAKoE,IAAI2I,YACjBy8B,GACAxpC,KAAKoE,IAAIxD,SACb,IAAIkuM,EAAc19C,QAAcpxJ,KAAK28J,KAAKj0I,MAAMm+H,MAAM4mD,IAAkBztM,KAAK28J,KAAK2U,SAASv3J,MACvFg1L,EAAW,GACX5nK,EAAWnnC,KAAKmuM,QAAQ5mM,IAAI2mM,GAAU,IAAIc,GAAcd,EAAQluM,KAAK28J,KAAK2U,UAAWtxK,KAAK28J,KAAKy/B,gBAAgB78C,MACnH,QAASjmI,KAAQtZ,KAAK28J,KAAK0/B,mBAGvB,GAFI0S,EAAStqM,SACTsqM,EAAW,IACXj1L,MAAM2C,QAAQnD,EAAK3O,MAAO,CAC1B,IAAIwV,GAAQ,EACZ,QAAS8Q,KAAK3X,EAAK3O,KACf,GAAIsmB,EAAEtmB,MAAQy6J,GAAUjpB,MAAQh8H,EAAO,CACnC8uL,GAAcH,EAAaC,EAAU99K,EAAElX,MACvC,QAASm1L,KAAM/nK,EACX+nK,EAAG51L,KAAKtZ,KAAK28J,KAAM1rI,EAAG89K,GAC1B5uL,GAAQ,UAEH8Q,EAAEoxI,OACP,QAAS6sC,KAAM/nK,EACX+nK,EAAG7sC,OAAOriK,KAAK28J,KAAM1rI,EAAC,SAI7B3X,EAAK3O,MAAQy6J,GAAUjpB,KAAM,CAClC8yD,GAAcH,EAAaC,EAAUz1L,EAAKS,MAC1C,QAASm1L,KAAM/nK,EACX+nK,EAAG51L,KAAKtZ,KAAK28J,KAAMrjJ,EAAMy1L,EAAQ,SAEhCz1L,EAAK+oJ,OACV,QAAS6sC,KAAM/nK,EACX+nK,EAAG7sC,OAAOriK,KAAK28J,KAAMrjJ,GAGjC,QAAS41L,KAAM/nK,EACX+nK,EAAGp/I,SACHtmB,GACAxpC,KAAK28J,KAAKwX,UAAU1nK,aAAazM,KAAKoE,IAAKm5J,EACnD,CACAmxC,cAAcp0L,GACV,IAAIgsF,EAAOhsF,EAAOuxI,WAAWhF,MAAMonD,IAAgBt8C,EAAMr3I,EAAOoO,MAAMm+H,MAAMonD,IACxEjpD,EAAS1qI,EAAOitI,YAAcjtI,EAAOg0J,eAAiBh0J,EAAO+zJ,kBAC5Djd,MAAY92I,EAAOuxI,WAAWhF,MAAM4mD,IAAkBnzL,EAAOoO,MAAMm+H,MAAM4mD,IAAkBnzL,EAAOqiJ,KAAK2U,SAASv3J,KAAMO,EAAOqiJ,KAAK2U,SAASp+C,IAChJ,GAAI5sB,GAAQqrD,EACR,QAASu8C,KAAUluM,KAAKmuM,QAChBD,EAAO5zL,OAAOA,KACd0qI,GAAS,OAEhB,CACDA,GAAS,EACT,IAAImpD,EAAU,GACd,QAAS5/C,KAAQoD,EAAK,CAClB,IAAIlH,EAAQnkD,EAAKp1F,QAAQq9I,GACrB9D,EAAQ,EACR0jD,EAAQvlM,KAAK,IAAI4lM,GAAiBxuM,KAAK28J,KAAMpO,KAG7CvuJ,KAAKmuM,QAAQ1jD,GAAOnwI,OAAOA,GAC3B6zL,EAAQvlM,KAAK5I,KAAKmuM,QAAQ1jD,IAAM,CAGxC,QAASlsH,KAAKv+B,KAAKmuM,QACf5vK,EAAEn6B,IAAIxD,SACFutM,EAAQj9L,QAAQqtB,GAAK,GACrBA,EAAEzyB,UAEV,QAASyyB,KAAK4vK,EACVnuM,KAAKoE,IAAIsE,YAAY61B,EAAEn6B,KAC3BpE,KAAKmuM,QAAUA,EAEnB,OAAOnpD,CACX,CACAl5I,UACI,QAAS6wJ,KAAQ38J,KAAKmuM,QAClBxxC,EAAK7wJ,UACT9L,KAAKoE,IAAIxD,QACb,GACD,CACC8C,QAASkC,GAAUyzL,GAAW5rB,cAAcp2J,GAAGslJ,IAC3C,IAAIzwJ,EAAQywJ,EAAK/2J,OAAOA,GACxB,OAAKsG,GAAiC,GAAxBA,EAAMiiM,QAAQ1pM,QAAgByH,EAAMoiM,MAE3C3xC,EAAK2X,eAAiB3M,GAAUC,IACjC,CAAE33D,KAAM/jG,EAAM9H,IAAIw1J,YAAc+C,EAAKhD,QACrC,CAAEzpD,MAAOhkG,EAAM9H,IAAIw1J,YAAc+C,EAAKhD,QAHjC,IAGwC,KAG3D,SAASxM,GAAQ5wI,GAAO,OAAQzC,MAAM2C,QAAQF,GAAOA,EAAM,CAACA,EAAO,CACnE,SAAS0yL,GAAcxvD,EAAQ0vD,EAASr7J,GACpC,KAAO2rG,EAAOvzI,OAASuzI,EAAO1lI,MAAQ+5B,GAC9B2rG,EAAO1lI,MAAQ+5B,GACfq7J,EAAQvmM,KAAK62I,EAAOvzI,OACxBuzI,EAAO3mI,MAEf,CACA,MAAMk2L,GACFnvM,YAAYquM,EAAQ58B,EAAUvoF,GAC1B/oF,KAAKkuM,OAASA,EACdluM,KAAK+oF,OAASA,EACd/oF,KAAKwE,EAAI,EACTxE,KAAKy/I,OAAS2R,QAAc88C,EAAOjM,QAAS3wB,EAASv3J,KACzD,CACAq1L,WAAWzyC,EAAMmI,EAAOm9B,GACpB,IAAMiM,UAAWluM,KAAM62K,GAAS/R,EAAMvlB,IAAMv/I,KAAK+oF,QAAU4zE,EAAK9C,OAAQ9wE,EAAS+7E,EAAM/7E,OAAS4zE,EAAK9C,OACrG,GAAI75J,KAAKwE,GAAK0pM,EAAOjgI,SAASxpE,OAAQ,CAClC,IAAI4qM,EAAS,IAAIC,GAAc3yC,EAAM5zE,EAAQ8tF,EAAOorB,GACpDiM,EAAOjgI,SAASrlE,KAAKymM,GACrBnB,EAAO9pM,IAAIsE,YAAY2mM,EAAOjrM,IAAG,MAGjC8pM,EAAOjgI,SAASjuE,KAAKwE,GAAG8V,OAAOqiJ,EAAM5zE,EAAQ8tF,EAAOorB,GAExDjiM,KAAK+oF,OAAS+7E,EAAM3L,OACpBn5J,KAAKwE,GACT,CACA8U,KAAKqjJ,EAAMrjJ,EAAMi2L,GACb,IAAIC,EAAe,GACnBP,GAAcjvM,KAAKy/I,OAAQ+vD,EAAcl2L,EAAKS,MAC1Cw1L,EAAa9qM,SACb+qM,EAAeA,EAAa/0L,OAAO80L,IACvC,IAAIE,EAAUzvM,KAAKkuM,OAAOx+J,OAAOk+J,WAAWjxC,EAAMrjJ,EAAMk2L,GACpDC,GACAD,EAAalsK,QAAQmsK,GAEE,GAAvBD,EAAa/qM,SADJzE,KAAKkuM,OACsBx+J,OAAOg+J,qBAE/C1tM,KAAKovM,WAAWzyC,EAAMrjJ,EAAMk2L,EAChC,CACAntC,OAAO1F,EAAMmI,GACT,IAAIw9B,EAAStiM,KAAKkuM,OAAOx+J,OAAOm+J,aAAalxC,EAAMmI,EAAMzC,OAAQyC,GAC7Dw9B,GACAtiM,KAAKovM,WAAWzyC,EAAMmI,EAAO,CAACw9B,GACtC,CACAxyI,SACI,IAAIo+I,EAASluM,KAAKkuM,OAClB,KAAOA,EAAOjgI,SAASxpE,OAASzE,KAAKwE,GAAG,CACpC,IAAIovB,EAAOs6K,EAAOjgI,SAASj9D,MAC3Bk9L,EAAO9pM,IAAIrD,YAAY6yB,EAAKxvB,KAC5BwvB,EAAK9nB,SAAO,CAEpB,EAEJ,MAAM0iM,GACF3uM,YAAY88J,EAAMjtH,GACd1vC,KAAK28J,KAAOA,EACZ38J,KAAK0vC,OAASA,EACd1vC,KAAKiuE,SAAW,GAChBjuE,KAAK0vM,OAAS,KACd1vM,KAAKoE,IAAM/C,SAASL,cAAc,OAClChB,KAAKoE,IAAIy4E,UAAY,aAAe78E,KAAK0vC,OAAOqyH,MAAQ,IAAM/hK,KAAK0vC,OAAOqyH,MAAQ,IAClF,QAAS1rI,KAAQqZ,EAAO68H,iBACpBvsK,KAAKoE,IAAI3D,iBAAiB41B,EAAOtsB,IAC7B,IAA2BmrF,EAAvBnzF,EAASgI,EAAMhI,OACnB,GAAIA,GAAU/B,KAAKoE,KAAOpE,KAAKoE,IAAIm5D,SAASx7D,GAAS,CACjD,KAAOA,EAAOjB,YAAcd,KAAKoE,KAC7BrC,EAASA,EAAOjB,WACpB,IAAIo4J,EAAOn3J,EAAO8gK,wBAClB3tE,GAAKgkE,EAAK3Z,IAAM2Z,EAAKC,QAAU,OAG/BjkE,EAAInrF,EAAM4zK,QAEd,IAAIrkK,EAAOqjJ,EAAKiwB,kBAAkB13F,EAAIynE,EAAKw/B,aACvCzsJ,EAAO68H,iBAAiBl2I,GAAMsmI,EAAMrjJ,EAAMvP,IAC1CA,EAAMC,gBAAc,GAGhChK,KAAKiiM,QAAU90C,GAAQz9G,EAAOuyJ,QAAQtlC,IAClCjtH,EAAOq+J,gBACP/tM,KAAK0vM,OAAS,IAAIJ,GAAc3yC,EAAM,EAAG,EAAG,CAACjtH,EAAOq+J,cAAcpxC,KAClE38J,KAAKoE,IAAIsE,YAAY1I,KAAK0vM,OAAOtrM,KACjCpE,KAAK0vM,OAAOtrM,IAAI2C,MAAM08J,SAAW,2CAEzC,CACAnpJ,OAAOA,GACH,IAAIq1L,EAAc3vM,KAAKiiM,QAEvB,GADAjiM,KAAKiiM,QAAU90C,GAAQntJ,KAAK0vC,OAAOuyJ,QAAQ3nL,EAAOqiJ,OAC9C38J,KAAK0vM,QAAU1vM,KAAK0vC,OAAOs+J,aAAc,CACzC,IAAI3vD,EAAUr+I,KAAK0vC,OAAOs+J,aAAahuM,KAAK0vM,OAAOzN,QAAQ,GAAI3nL,GAC3D+jI,GAAWr+I,KAAK0vM,OAAOzN,QAAQ,IAC/BjiM,KAAK0vM,OAAOp1L,OAAOA,EAAOqiJ,KAAM,EAAG,EAAG,CAACte,GAAQ,CAEvD,IAAIgb,EAAK/+I,EAAOqiJ,KAAK2U,SACrB,OAAQlgB,MAAYpxJ,KAAKiiM,QAAS0N,EAAat2C,EAAGt/I,KAAMs/I,EAAGnmC,OACtDlzH,KAAK0vC,OAAOo+J,kBAAmB9tM,KAAK0vC,OAAOo+J,iBAAiBxzL,EACrE,CACAxO,UACI,QAAS4tJ,KAAO15J,KAAKiuE,SACjByrF,EAAI5tJ,SACZ,EAEJ,MAAMwjM,GACFzvM,YAAY88J,EAAM5zE,EAAQ8tF,EAAOorB,GAC7BjiM,KAAK+oF,QAAS,EACd/oF,KAAK62K,MAAQ,EACb72K,KAAKiiM,QAAU,GACfjiM,KAAKoE,IAAM/C,SAASL,cAAc,OAClChB,KAAKoE,IAAIy4E,UAAY,mBACrB78E,KAAKsa,OAAOqiJ,EAAM5zE,EAAQ8tF,EAAOorB,EACrC,CACA3nL,OAAOqiJ,EAAM5zE,EAAQ8tF,EAAOorB,GACpBjiM,KAAK+oF,QAAUA,IACf/oF,KAAK+oF,OAASA,EACd/oF,KAAKoE,IAAI2C,MAAMgiF,OAASA,EAAS,MAEjC/oF,KAAK62K,OAASA,IACd72K,KAAKoE,IAAI2C,MAAMqkL,WAAaprL,KAAK62K,MAAQA,GAASA,EAAQ,KAAO,IAiD7E,SAAS+4B,GAAY5+K,EAAGC,GACpB,GAAID,EAAEvsB,QAAUwsB,EAAExsB,OACd,OAAO,EACX,QAASD,EAAI,EAAGA,EAAIwsB,EAAEvsB,OAAQD,IAC1B,IAAKwsB,EAAExsB,GAAG87B,QAAQrP,EAAEzsB,IAChB,OAAO,EACf,OAAO,CACX,CAvDaorM,CAAY5vM,KAAKiiM,QAASA,IAC3BjiM,KAAK6vM,WAAWlzC,EAAMslC,EAC9B,CACA4N,WAAWlzC,EAAMslC,GACb,IAAIh+B,EAAM,mBAAoB6rC,EAAS9vM,KAAKoE,IAAI8+B,WAChD,QAAS6sK,EAAO,EAAGC,EAAO,IAAK,CAC3B,IAAIC,EAASD,EAAM1N,EAASyN,EAAO9N,EAAQx9L,OAASw9L,EAAQ8N,KAAU,KAAMjhK,GAAU,EACtF,GAAIwzJ,EAAQ,CACR,IAAIhrK,EAAIgrK,EAAOkL,aACXl2K,IACA2sI,GAAO,IAAM3sI,GACjB,QAAS9yB,EAAIwrM,EAAMxrM,EAAIxE,KAAKiiM,QAAQx9L,OAAQD,IACxC,GAAIxE,KAAKiiM,QAAQz9L,GAAG87B,QAAQgiK,GAAS,CACjC2N,EAASzrM,EACTsqC,GAAU,EACV,YAIRmhK,EAASjwM,KAAKiiM,QAAQx9L,OAE1B,KAAOurM,EAAOC,GAAQ,CAClB,IAAIn3L,EAAO9Y,KAAKiiM,QAAQ+N,KACxB,GAAIl3L,EAAK0pJ,MAAO,CACZ1pJ,EAAKhN,QAAQgkM,GACb,IAAIvyC,EAAQuyC,EAAO/iM,YACnB+iM,EAAOlvM,SACPkvM,EAASvyC,GAGjB,IAAK+kC,EACD,MACAA,EAAO9/B,QACH1zH,EACAghK,EAASA,EAAO/iM,YAEhB/M,KAAKoE,IAAIqI,aAAa61L,EAAO9/B,MAAM7F,GAAOmzC,IAE9ChhK,GACAkhK,IAERhwM,KAAKoE,IAAIy4E,UAAYonF,EACrBjkK,KAAKiiM,QAAUA,CACnB,CACAn2L,UACI9L,KAAK6vM,WAAW,KAAM,GAC1B,EAaJ,MAAMK,GAAiClqD,YACjCmqD,GAAgCnqD,UAAa,CAC/CC,QAAQtsI,GACGq2I,GAAcr2I,EAAQ,CAAEs0E,aAAc53E,OAAQk2J,iBAAkB,CAAC,GAAK,CACzEA,iBAAiBv7I,EAAGC,GAChB,IAAI3f,EAAS3F,OAAO2gM,OAAO,CAAC,EAAGt7K,GAC/B,QAASjnB,KAASknB,EAAG,CACjB,IAAIgrJ,EAAS3qK,EAAOvH,GAAQzB,EAAM2oB,EAAElnB,GACpCuH,EAAOvH,GAASkyK,EAAS,CAACtf,EAAMrjJ,EAAMvP,IAAUkyK,EAAOtf,EAAMrjJ,EAAMvP,IAAUzB,EAAIq0J,EAAMrjJ,EAAMvP,GAASzB,EAE1G,OAAOgJ,CACX,MAIZ,MAAM8+L,WAAqB7C,GACvB1tM,YAAY8/I,GACR7/I,QACAE,KAAK2/I,OAASA,CAClB,CACAhD,GAAGniI,GAAS,OAAOxa,KAAK2/I,QAAUnlI,EAAMmlI,MAAQ,CAChD6iB,QAAU,OAAOnhK,SAAS+K,eAAepM,KAAK2/I,OAAS,EAE3D,SAAS1xD,GAAa0uE,EAAMhd,GACxB,OAAOgd,EAAKj0I,MAAMm+H,MAAMspD,IAAkBliH,aAAa0xD,EAAQgd,EAAKj0I,MACxE,CACA,MAAM2nL,GAAgCpC,GAAcxnD,QAAQ,CAAC0pD,IAAmBznL,KAC5Eq5I,MAAO,iBACP2rC,qBAAqB,EACrBzL,QAAQtlC,GAAeA,EAAKj0I,MAAMm+H,MAAMqpD,IACxCtC,YAAWjxC,EAAMrjJ,EAAMmwL,IACfA,EAAO75J,KAAK9P,GAAKA,EAAE0iI,OACZ,KACJ,IAAI4tC,GAAaniH,GAAa0uE,EAAMA,EAAKj0I,MAAMxnB,IAAIk7I,OAAO9iI,EAAKS,MAAM4lI,SAEhFkuD,aAAc,IAAM,KACpBC,iBAAkBxzL,GAAUA,EAAOuxI,WAAWhF,MAAMspD,KAAqB71L,EAAOoO,MAAMm+H,MAAMspD,IAC5FpC,cAAcpxC,GACH,IAAIyzC,GAAaniH,GAAa0uE,EAAM2zC,GAAc3zC,EAAKj0I,MAAMxnB,IAAIq7I,SAE5EyxD,aAAa0B,EAAQp1L,GACjB,IAAI6Q,EAAM8iE,GAAa3zE,EAAOqiJ,KAAM2zC,GAAch2L,EAAOqiJ,KAAKj0I,MAAMxnB,IAAIq7I,QACxE,OAAOpxH,GAAOukL,EAAO/vD,OAAS+vD,EAAS,IAAIU,GAAajlL,EAC5D,EACAohJ,iBAAkB7jJ,EAAMm+H,MAAMspD,IAAkB5jC,oBAYpD,SAAS+jC,GAAc/zD,GACnB,IAAI3oH,EAAO,EACX,KAAOA,EAAO2oH,GACV3oH,EAAc,GAAPA,EAAY,EACvB,OAAOA,CACX,CACA,MAAM28K,GAAsC,IAAI,cAAchD,GAC1D1tM,cACIC,SAASC,WACTC,KAAKwtM,aAAe,qBACxB,GAEEgD,GAA2C/C,GAAgBhnD,QAAQ,CAAC,aAAc/9H,IACpF,IAAI6nJ,EAAQ,GAAI38I,GAAO,EACvB,QAASsxH,KAASx8H,EAAMm9H,UAAU1C,OAAQ,CACtC,IAAIu7B,EAAUh2J,EAAMxnB,IAAIk7I,OAAO8I,EAAMr8I,MAAMkR,KACvC2kK,EAAU9qJ,IACVA,EAAO8qJ,EACPnO,EAAM3nK,KAAK2nM,GAAuBrrD,MAAMw5B,IAAQ,CAGxD,OAAOttB,MAAYmf,EAAK,GC3qVtBkgC,GAAsB,KAC5B,IAAIC,GAAa,EACjB,MAAMvgD,GACFtwJ,YAAYka,EAAMm5G,GACdlzH,KAAK+Z,KAAOA,EACZ/Z,KAAKkzH,GAAKA,CACd,EAOJ,MAAMy9E,GAIF9wM,YAAY6vC,EAAS,CAAC,GAClB1vC,KAAKkL,GAAKwlM,KACV1wM,KAAK4wM,UAAYlhK,EAAOkhK,QACxB5wM,KAAKo/H,YAAc1vF,EAAO0vF,mBACtB,MAAM,IAAI34H,MAAM,uDACpB,EACJ,CAUA6B,IAAI4yB,GACA,GAAIl7B,KAAK4wM,QACL,MAAM,IAAIv0D,WAAW,0CACzB,MAAoB,mBAATnhH,IACPA,EAAQ21K,GAAS31K,MAAMA,IACnBvwB,IACJ,IAAI2G,EAAS4pB,EAAMvwB,GACnB,YAAkBsD,IAAXqD,EAAuB,KAAO,CAACtR,KAAMsR,EAAM,CAE1D,EAQJq/L,GAASG,SAAW,IAAIH,GAAS,CAAEvxE,YAAankG,GAAOA,EAAIpqB,MAAM,OAMjE8/L,GAASI,SAAW,IAAIJ,GAAS,CAAEvxE,YAAankG,GAAOA,EAAIpqB,MAAM,OAMjE8/L,GAASryK,MAAQ,IAAIqyK,GAAS,CAAEvxE,YAAankG,GAAOA,EAAIpqB,MAAM,OAY9D8/L,GAASK,QAAU,IAAIL,GAAS,CAAEvxE,YAAalzH,IACvC,GAAIA,GAAkB,OAATA,GAA2B,OAATA,GAA2B,QAATA,EAC7C,MAAM,IAAImwI,WAAW,8BAAgCnwI,GACzD,OAAOA,GAAS,UAOxBykM,GAASM,YAAc,IAAIN,GAAS,CAAEC,SAAS,IAO/CD,GAASO,UAAY,IAAIP,GAAS,CAAEC,SAAS,IAM7CD,GAASlG,QAAU,IAAIkG,GAAS,CAAEC,SAAS,IAM3C,MAAMO,GACFtxM,YAIAi6B,EAUA87B,EAIAw7I,GACIpxM,KAAK85B,KAAOA,EACZ95B,KAAK41D,QAAUA,EACf51D,KAAKoxM,OAASA,CAClB,CAIAjxM,WAAW25B,GACP,OAAOA,GAAQA,EAAKynD,OAASznD,EAAKynD,MAAMovH,GAASlG,QAAQv/L,GAC7D,EAEJ,MAAMmmM,GAAU1lM,OAAOC,OAAO,MAI9B,MAAMilM,GAIFhxM,YAOAuD,EAIAm+E,EAKAr2E,EAIAsC,EAAQ,GACJxN,KAAKoD,KAAOA,EACZpD,KAAKuhF,MAAQA,EACbvhF,KAAKkL,GAAKA,EACVlL,KAAKwN,MAAQA,CACjB,CAIArN,cAAc0jJ,GACV,IAAItiE,EAAQsiE,EAAKtiE,OAASsiE,EAAKtiE,MAAM98E,OAASkH,OAAOC,OAAO,MAAQylM,GAGhE1mM,EAAO,IAAIkmM,GAAShtD,EAAKzgJ,MAAQ,GAAIm+E,EAAOsiE,EAAK34I,IAFxC24I,EAAKtE,IAAM,EAAuB,IAAMsE,EAAKytD,QAAU,EAA2B,IAC1FztD,EAAKhrI,MAAQ,EAAyB,IAAmB,MAAbgrI,EAAKzgJ,KAAe,EAA6B,IAElG,GAAIygJ,EAAKtiE,MACL,QAASgwH,KAAO1tD,EAAKtiE,MAGjB,GAFKznE,MAAM2C,QAAQ80L,KACfA,EAAMA,EAAI5mM,IACV4mM,EAAK,CACL,GAAIA,EAAI,GAAGX,QACP,MAAM,IAAIv0D,WAAW,8CACzB96D,EAAMgwH,EAAI,GAAGrmM,IAAMqmM,EAAI,EAAC,CAGpC,OAAO5mM,CACX,CAKA0rB,KAAKA,GAAQ,OAAOr2B,KAAKuhF,MAAMlrD,EAAKnrB,GAAK,CAIrCsmM,YAAU,OAAqB,EAAbxxM,KAAKwN,OAAgC,CAAG,CAI1DikM,gBAAc,OAAqB,EAAbzxM,KAAKwN,OAAoC,CAAG,CAIlEkkM,cAAY,OAAqB,EAAb1xM,KAAKwN,OAAkC,CAAG,CAK9DmkM,kBAAgB,OAAqB,EAAb3xM,KAAKwN,OAAsC,CAAG,CAK1E27E,GAAG/lF,GACC,GAAmB,iBAARA,EAAkB,CACzB,GAAIpD,KAAKoD,MAAQA,EACb,OAAO,EACX,IAAIk7B,EAAQt+B,KAAKq2B,KAAKs6K,GAASryK,OAC/B,QAAOA,GAAQA,EAAMptB,QAAQ9N,IAAQ,CAAK,CAE9C,OAAOpD,KAAKkL,IAAM9H,CACtB,CASAjD,aAAaoH,GACT,IAAI04K,EAASt0K,OAAOC,OAAO,MAC3B,QAASyqB,KAAQ9uB,EACb,QAASnE,KAAQizB,EAAKxlB,MAAM,KACxBovK,EAAO78K,GAAQmE,EAAI8uB,GAC3B,OAAQx1B,IACJ,QAAS+wM,EAAS/wM,EAAKw1B,KAAKs6K,GAASryK,OAAQ95B,GAAI,EAAIA,GAAKotM,EAASA,EAAOntM,OAAS,GAAID,IAAK,CACxF,IAAIkyD,EAAQupH,EAAOz7K,EAAI,EAAI3D,EAAKuC,KAAOwuM,EAAOptM,IAC9C,GAAIkyD,EACA,OAAOA,GAGvB,EAKJm6I,GAAShjD,KAAO,IAAIgjD,GAAS,GAAIllM,OAAOC,OAAO,MAAO,EAAG,GAUzD,MAAMimM,GAKFhyM,YAIA6oK,GACI1oK,KAAK0oK,MAAQA,EACb,QAASlkK,EAAI,EAAGA,EAAIkkK,EAAMjkK,OAAQD,IAC9B,GAAIkkK,EAAMlkK,GAAG0G,IAAM1G,EACf,MAAM,IAAI63I,WAAW,8EACjC,CAMAuD,UAAUr+D,GACN,IAAIuwH,EAAW,GACf,QAASnnM,KAAQ3K,KAAK0oK,MAAO,CACzB,IAAIqpC,EAAW,KACf,QAAS75L,KAAUqpE,EAAO,CACtB,IAAIj5E,EAAM4P,EAAOvN,GACbrC,IACKypM,IACDA,EAAWpmM,OAAO2gM,OAAO,CAAC,EAAG3hM,EAAK42E,QACtCwwH,EAASzpM,EAAI,GAAG4C,IAAM5C,EAAI,GAAC,CAGnCwpM,EAASlpM,KAAKmpM,EAAW,IAAIlB,GAASlmM,EAAKvH,KAAM2uM,EAAUpnM,EAAKO,GAAIP,EAAK6C,OAAS7C,EAAI,CAE1F,OAAO,IAAIknM,GAAQC,EACvB,EAEJ,MAAME,GAAa,IAAI57J,QAAW67J,GAAkB,IAAI77J,QAKxD,IAAI87J,GAAQ,aACDA,EA0BRA,KAAaA,GAAW,CAAC,IApBfA,EAASC,eAAoB,GAAK,iBAM3CD,EAASA,EAASE,iBAAsB,GAAK,mBAM7CF,EAASA,EAASG,aAAkB,GAAK,eAOzCH,EAASA,EAASI,eAAoB,GAAK,iBA1B3CJ,GACH,IAAUA,CADPA,EAAQ,GA4CZ,MAAMrvK,GAIFhjC,YAIA8K,EAIA4sB,EAKAg7K,EAIA9tM,EAIA88E,GASI,GARAvhF,KAAK2K,KAAOA,EACZ3K,KAAKu3B,SAAWA,EAChBv3B,KAAKuyM,UAAYA,EACjBvyM,KAAKyE,OAASA,EAIdzE,KAAKuhF,MAAQ,KACTA,GAASA,EAAM98E,OAAQ,CACvBzE,KAAKuhF,MAAQ51E,OAAOC,OAAO,MAC3B,QAAUyqB,EAAMnqB,KAAUq1E,EACtBvhF,KAAKuhF,MAAqB,iBAARlrD,EAAmBA,EAAOA,EAAKnrB,IAAMgB,EAEnE,CAIAoK,WACI,IAAIm0L,EAAU0G,GAAYntM,IAAIhE,MAC9B,GAAIyqM,IAAYA,EAAQ70I,QACpB,OAAO60I,EAAQ3wK,KAAKxjB,WACxB,IAAIihB,EAAW,GACf,QAASunH,KAAM9+I,KAAKu3B,SAAU,CAC1B,IAAI0D,EAAM6jH,EAAGxoI,WACT2kB,IACI1D,IACAA,GAAY,KAChBA,GAAY0D,GAGpB,OAAQj7B,KAAK2K,KAAKvH,MACb,KAAK+f,KAAKnjB,KAAK2K,KAAKvH,QAAUpD,KAAK2K,KAAK+mM,QAAUlzL,KAAKC,UAAUze,KAAK2K,KAAKvH,MAAQpD,KAAK2K,KAAKvH,OACzFm0B,EAAS9yB,OAAS,IAAM8yB,EAAW,IAAM,IAFzBA,CAG7B,CAMAkoH,OAAOnxI,EAAO,GACV,OAAO,IAAIkkM,GAAWxyM,KAAKyyM,QAASnkM,EACxC,CAMAokM,SAAS5+J,EAAKu7G,EAAO,EAAG/gJ,EAAO,GAC3B,IAAIuwL,EAAQmT,GAAWhuM,IAAIhE,OAASA,KAAKyyM,QACrChzD,EAAS,IAAI+yD,GAAW3T,GAC5Bp/C,SAAOkzD,OAAO7+J,EAAKu7G,GACnB2iD,GAAWxrM,IAAIxG,KAAMy/I,EAAOmzD,OACrBnzD,CACX,CAKIgzD,cACA,OAAO,IAAIlvK,GAASvjC,KAAM,EAAG,EAAG,KACpC,CAYA02B,QAAQod,EAAKu7G,EAAO,GAChB,IAAIxuJ,EAAOo8C,GAAY+0J,GAAWhuM,IAAIhE,OAASA,KAAKyyM,QAAS3+J,EAAKu7G,GAAM,GACxE2iD,UAAWxrM,IAAIxG,KAAMa,GACdA,CACX,CAQAgyM,aAAa/+J,EAAKu7G,EAAO,GACrB,IAAIxuJ,EAAOo8C,GAAYg1J,GAAgBjuM,IAAIhE,OAASA,KAAKyyM,QAAS3+J,EAAKu7G,GAAM,GAC7E4iD,UAAgBzrM,IAAIxG,KAAMa,GACnBA,CACX,CAQAiyM,aAAah/J,EAAKu7G,EAAO,GACrB,OAwcR,SAAS0jD,GAAcj5K,EAAMga,EAAKu7G,GAC9B,IAAIhS,EAAQvjH,EAAK+4K,aAAa/+J,EAAKu7G,GAAO2jD,EAAS,KACnD,QAAShgL,EAAOqqH,aAAiB95G,GAAW85G,EAAQA,EAAMn/H,QAAQ7R,OAAQ2mB,EAAMA,EAAOA,EAAK3mB,OACxF,GAAI2mB,EAAK3hB,MAAQ,EAAG,CAChB,IAAIhF,EAAS2mB,EAAK3mB,QACjB2mM,IAAWA,EAAS,CAAC31D,KAASz0I,KAAKyD,EAAOqqB,QAAQod,EAAKu7G,IACxDr8H,EAAO3mB,MAEN,CACD,IAAI6qJ,EAAQi6C,GAAYntM,IAAIgvB,EAAK8G,MAEjC,GAAIo9H,GAASA,EAAMthG,SAAWshG,EAAMthG,QAAQ,GAAG77C,MAAQ+5B,GAAOojH,EAAMthG,QAAQshG,EAAMthG,QAAQnxD,OAAS,GAAGyuH,IAAMp/E,EAAK,CAC7G,IAAI9b,EAAO,IAAIuL,GAAS2zH,EAAMp9H,KAAMo9H,EAAMthG,QAAQ,GAAG77C,KAAOiZ,EAAKjZ,MAAM,EAAIiZ,IAC1EggL,IAAWA,EAAS,CAAC31D,KAASz0I,KAAKq0C,GAAYjlB,EAAM8b,EAAKu7G,GAAM,GAAM,EAInF,OAAO2jD,EAASC,GAAUD,GAAU31D,CACxC,CA1de01D,CAAc/yM,KAAM8zC,EAAKu7G,EACpC,CAQA6jD,QAAQrvD,GACJ,IAAMsvD,QAAOC,QAAOr5L,OAAO,EAAGm5G,KAAKlzH,KAAKyE,QAAWo/I,EAC/Cv1I,EAAOu1I,EAAKv1I,MAAQ,EAAG+kM,GAAQ/kM,EAAO4jM,GAASE,kBAAoB,EACvE,QAAS96K,EAAIt3B,KAAKy/I,OAAOnxI,EAAO4jM,GAASE,oBAAqB,CAC1D,IAAIkB,GAAU,EACd,GAAIh8K,EAAEvd,MAAQm5G,GAAM57F,EAAE47F,IAAMn5G,KAAUs5L,GAAQ/7K,EAAE3sB,KAAKgnM,cAA4B,IAAbwB,EAAM77K,IAAe,CACrF,GAAIA,EAAE4L,aACF,SACJowK,GAAU,EAEd,KACQA,GAAWF,IAAUC,IAAS/7K,EAAE3sB,KAAKgnM,cACrCyB,EAAM97K,IACNA,EAAEvqB,eAHD,CAKL,IAAKuqB,EAAEjrB,SACH,OACJinM,GAAU,GAGtB,CAKAj9K,KAAKA,GACD,OAAQA,EAAKu6K,QAAiC5wM,KAAKuhF,MAAQvhF,KAAKuhF,MAAMlrD,EAAKnrB,SAAM+C,EAA1DjO,KAAK2K,KAAK0rB,KAAKA,EAC1C,CAMIk9K,iBACA,IAAIjiM,EAAS,GACb,GAAItR,KAAKuhF,MACL,QAASr2E,KAAMlL,KAAKuhF,MAChBjwE,EAAO1I,KAAK,EAAEsC,EAAIlL,KAAKuhF,MAAMr2E,KACrC,OAAOoG,CACX,CAMAkiM,QAAQ9jK,EAAS,CAAC,GACd,OAAO1vC,KAAKu3B,SAAS9yB,QAAU,EAA+BzE,KAC1DyzM,GAAa5C,GAAShjD,KAAM7tJ,KAAKu3B,SAAUv3B,KAAKuyM,UAAW,EAAGvyM,KAAKu3B,SAAS9yB,OAAQ,EAAGzE,KAAKyE,OAAQ,CAAC8yB,EAAUg7K,EAAW9tM,IAAW,IAAIo+B,GAAK7iC,KAAK2K,KAAM4sB,EAAUg7K,EAAW9tM,EAAQzE,KAAKuzM,YAAa7jK,EAAOgkK,YAAcn8K,EAAUg7K,EAAW9tM,IAAW,IAAIo+B,GAAKguK,GAAShjD,KAAMt2H,EAAUg7K,EAAW9tM,IAClT,CAKAtE,aAAauL,GAAQ,OA4tBzB,SAASioM,GAAUjoM,GACf,IAAIs7I,EACJ,IAAM4sD,SAAQjyH,UAASkyH,kBAAkBpD,GAAqBqD,SAAS,GAAIC,gBAAgBpyH,EAAQ+mF,MAAMjkK,QAAWiH,EAChH+zI,EAAS3lI,MAAM2C,QAAQm3L,GAAU,IAAII,GAAiBJ,EAAQA,EAAOnvM,QAAUmvM,EAC/ElrC,EAAQ/mF,EAAQ+mF,MAChBuoC,EAAc,EAAGC,EAAY,EACjC,SAAS+C,EAASC,GAAaC,GAAQ58K,GAAUg7K,GAAW6B,GAAUC,IAClE,IAAMnpM,MAAIm4E,SAAO73E,OAAK45D,SAASq6E,EAC3B60D,GAAmBpD,EACvB,KAAO9rI,GAAO,GAEV,IADAq6E,EAAO3mI,QACK,GAARssD,GAIA,OAFA7tC,GAAS3uB,KADEkrM,EAAO5oM,UAElBqnM,GAAU3pM,KAAKy6E,GAAQ6wH,IACvB,IAEa,GAAR9uI,GAEL,YADA6rI,EAAc/lM,IACd,IAEa,GAARk6D,GAEL,YADA8rI,EAAYhmM,IAIZ,MAAM,IAAImxI,WAAY,6BAA4Bj3E,KAAM,CAGhE,IAAsBvkE,GAAM+yM,GAAxBjpM,GAAO+9J,EAAMx9J,IACb6xL,GAAW15G,GAAQ6wH,GACvB,GAAI1oM,GAAM63E,IAASwwH,IAAoBD,GA8G3C,SAASW,GAAeC,GAASJ,IAO7B,IAAIxmI,GAAO6xE,EAAO7xE,OACdxI,GAAO,EAAGie,GAAQ,EAAGy5D,GAAO,EAAG23D,GAAW7mI,GAAKpiE,IAAMqoM,EACrDviM,GAAS,CAAE8zD,KAAM,EAAGie,MAAO,EAAGy5D,KAAM,GACxC9pH,EAAM,QAASmhL,GAASvmI,GAAK95B,IAAM0gK,GAAS5mI,GAAK95B,IAAMqgK,IAAS,CAC5D,IAAIO,GAAW9mI,GAAKxI,KAEpB,GAAIwI,GAAK1iE,IAAMkpM,IAAYM,IAAY,EAAG,CAGtCpjM,GAAO8zD,KAAOA,GACd9zD,GAAO+xE,MAAQA,GACf/xE,GAAOwrI,KAAOA,GACdA,IAAQ,EACR13E,IAAQ,EACRwI,GAAK90D,OACL,SAEJ,IAAIikL,GAAWnvH,GAAK95B,IAAM4gK,GAC1B,GAAIA,GAAW,GAAK3X,GAAWoX,IAAUvmI,GAAKyV,MAAQoxH,GAClD,MACJ,IAAIE,GAAe/mI,GAAK1iE,IAAM6oM,EAAgB,EAAI,EAC9Ca,GAAYhnI,GAAKyV,MAErB,IADAzV,GAAK90D,OACE80D,GAAK95B,IAAMipJ,IAAU,CACxB,GAAInvH,GAAKxI,KAAO,EACZ,KAAiB,GAAbwI,GAAKxI,KAGL,MAAMpyC,EAFN2hL,IAAgB,CAEV3hL,MAEL46C,GAAK1iE,IAAM6oM,IAChBY,IAAgB,GAEpB/mI,GAAK90D,MAAI,CAEbuqE,GAAQuxH,GACRxvI,IAAQsvI,GACR53D,IAAQ63D,GAEZ,OAAIP,GAAW,GAAKhvI,IAAQovI,MACxBljM,GAAO8zD,KAAOA,GACd9zD,GAAO+xE,MAAQA,GACf/xE,GAAOwrI,KAAOA,IAEXxrI,GAAO8zD,KAAO,EAAI9zD,QAASrD,CACtC,CAlKoDsmM,CAAe90D,EAAO3rG,IAAMqgK,GAAQC,KAAY,CAE5F,IAAI1oM,GAAO,IAAImpM,YAAYjB,GAAOxuI,KAAOwuI,GAAO92D,MAC5C0kD,GAAS/hD,EAAO3rG,IAAM8/J,GAAOxuI,KAAM/zD,GAAQ3F,GAAKjH,OACpD,KAAOg7I,EAAO3rG,IAAM0tJ,IAChBnwL,GAAQyjM,GAAalB,GAAOvwH,MAAO33E,GAAM2F,IAC7CxQ,GAAO,IAAIk0M,GAAWrpM,GAAMF,GAAMooM,GAAOvwH,MAAO1B,GAChDo7G,GAAW6W,GAAOvwH,MAAQ6wH,OAEzB,CACD,IAAI1S,GAAS/hD,EAAO3rG,IAAMsxB,GAC1Bq6E,EAAO3mI,OACP,IAAIk8L,GAAgB,GAAIC,GAAiB,GACrCC,GAAgBhqM,IAAM6oM,EAAgB7oM,IAAK,EAC3CiqM,GAAY,EAAGC,GAAU5pM,GAC7B,KAAOi0I,EAAO3rG,IAAM0tJ,IACZ0T,IAAiB,GAAKz1D,EAAOv0I,IAAMgqM,IAAiBz1D,EAAOr6E,MAAQ,GAC/Dq6E,EAAOj0I,KAAO4pM,GAAUvB,IACxBwB,GAAeL,GAAeC,GAAgB5xH,GAAO8xH,GAAW11D,EAAOj0I,IAAK4pM,GAASF,GAAeZ,IACpGa,GAAYH,GAAcvwM,OAC1B2wM,GAAU31D,EAAOj0I,KAErBi0I,EAAO3mI,QAEFu7L,GAAQ,KACbiB,EAAajyH,GAAOm+G,GAAQwT,GAAeC,IAG3ChB,EAAS5wH,GAAOm+G,GAAQwT,GAAeC,GAAgBC,GAAeb,GAAQ,GAOtF,GAJIa,IAAiB,GAAKC,GAAY,GAAKA,GAAYH,GAAcvwM,QACjE4wM,GAAeL,GAAeC,GAAgB5xH,GAAO8xH,GAAW9xH,GAAO+xH,GAASF,GAAeZ,IACnGU,GAAchvM,UACdivM,GAAejvM,UACXkvM,IAAgB,GAAMC,GAAY,EAAG,CACrC,IAAII,GA0ChB,SAASC,GAAa7qM,IAClB,MAAO,CAAC4sB,GAAUg7K,GAAW9tM,MACzB,IAAgDmvB,GAAM6hL,GAAlDvE,GAAY,EAAGwE,GAAQn+K,GAAS9yB,OAAS,EAC7C,GAAIixM,IAAS,IAAM9hL,GAAO2D,GAASm+K,eAAmB7yK,GAAM,CACxD,IAAK6yK,IAAS9hL,GAAKjpB,MAAQA,IAAQipB,GAAKnvB,QAAUA,GAC9C,OAAOmvB,IACP6hL,GAAgB7hL,GAAKyC,KAAKs6K,GAASO,cACnCA,GAAYqB,GAAUmD,IAAS9hL,GAAKnvB,OAASgxM,IAErD,OAAO/B,GAAS/oM,GAAM4sB,GAAUg7K,GAAW9tM,GAAQysM,GAAS,CAEpE,CArDuBsE,CAAa7qM,IACxB9J,GAAO4yM,GAAa9oM,GAAMqqM,GAAeC,GAAgB,EAAGD,GAAcvwM,OAAQ,EAAG+G,GAAM63E,GAAOkyH,GAAMA,GAAI,MAG5G10M,GAAO6yM,GAAS/oM,GAAMqqM,GAAeC,GAAgBzpM,GAAM63E,GAAOixH,GAAmB9oM,GAAG,CAGhG+rB,GAAS3uB,KAAK/H,IACd0xM,GAAU3pM,KAAKm0L,GACnB,CACA,SAASuY,EAAapB,GAAaC,GAAQ58K,GAAUg7K,IACjD,IAAIx9J,GAAQ,GACR4gK,GAAY,EAAGC,IAAS,EAC5B,KAAOn2D,EAAO3rG,IAAMqgK,IAAQ,CACxB,IAAMjpM,MAAIm4E,SAAO73E,OAAK45D,SAASq6E,EAC/B,GAAIr6E,GAAO,EACPq6E,EAAO3mI,WAEN,IAAI88L,IAAS,GAAMvyH,GAAQuyH,GAC5B,MAGIA,GAAS,IACTA,GAASpqM,GAAMqoM,GACnB9+J,GAAMnsC,KAAKsC,GAAIm4E,GAAO73E,IACtBmqM,KACAl2D,EAAO3mI,MAAI,EAGnB,GAAI68L,GAAW,CACX,IAAI/B,GAAS,IAAIiB,YAAwB,EAAZc,IACzBtyH,GAAQtuC,GAAMA,GAAMtwC,OAAS,GACjC,QAASD,GAAIuwC,GAAMtwC,OAAS,EAAG06E,GAAI,EAAG36E,IAAK,EAAGA,IAAK,EAC/CovM,GAAOz0H,MAAOpqC,GAAMvwC,IACpBovM,GAAOz0H,MAAOpqC,GAAMvwC,GAAI,GAAK6+E,GAC7BuwH,GAAOz0H,MAAOpqC,GAAMvwC,GAAI,GAAK6+E,GAC7BuwH,GAAOz0H,MAAOA,GAElB5nD,GAAS3uB,KAAK,IAAImsM,GAAWnB,GAAQ7+J,GAAM,GAAKsuC,GAAO1B,IACvD4wH,GAAU3pM,KAAKy6E,GAAQ6wH,GAAW,CAE1C,CAaA,SAASmB,GAAe99K,GAAUg7K,GAAW73L,GAAMlW,GAAGuV,GAAMm5G,GAAIvoH,GAAMumM,IAClE,IAAI8D,GAAgB,GAAIC,GAAiB,GACzC,KAAO19K,GAAS9yB,OAASD,IACrBwwM,GAAcpsM,KAAK2uB,GAASvmB,OAC5BikM,GAAersM,KAAK2pM,GAAUvhM,MAAQ0J,GAAOX,IAEjDwd,GAAS3uB,KAAK8qM,GAAS/xH,EAAQ+mF,MAAM/9J,IAAOqqM,GAAeC,GAAgB/hF,GAAKn5G,GAAMm3L,GAAYh+E,KAClGq/E,GAAU3pM,KAAKmR,GAAOW,GAC1B,CACA,SAASg5L,GAAS/oM,GAAM4sB,GAAUg7K,GAAW9tM,GAAQysM,GAAY,EAAG3vH,IAChE,GAAI0vH,EAAa,CACb,IAAI4E,GAAO,CAAClF,GAASM,YAAaA,GAClC1vH,GAAQA,GAAQ,CAACs0H,IAAMp7L,OAAO8mE,IAAS,CAACs0H,GAAI,CAEhD,GAAI3E,GAAY,GAAI,CAChB,IAAI2E,GAAO,CAAClF,GAASO,UAAWA,IAChC3vH,GAAQA,GAAQ,CAACs0H,IAAMp7L,OAAO8mE,IAAS,CAACs0H,GAAI,CAEhD,OAAO,IAAIhzK,GAAKl4B,GAAM4sB,GAAUg7K,GAAW9tM,GAAQ88E,GACvD,CAsDA,SAASuzH,GAAagB,GAAalC,GAAQviM,IACvC,IAAMnG,MAAIm4E,SAAO73E,OAAK45D,SAASq6E,EAE/B,GADAA,EAAO3mI,OACHssD,IAAQ,GAAKl6D,GAAK6oM,EAAe,CACjC,IAAIl0K,GAAaxuB,GACjB,GAAI+zD,GAAO,EAAG,CACV,IAAIo8H,GAAS/hD,EAAO3rG,KAAOsxB,GAAO,GAClC,KAAOq6E,EAAO3rG,IAAM0tJ,IAChBnwL,GAAQyjM,GAAagB,GAAalC,GAAQviM,GAAK,CAEvDuiM,KAASviM,IAASwuB,GAClB+zK,KAASviM,IAAS7F,GAAMsqM,GACxBlC,KAASviM,IAASgyE,GAAQyyH,GAC1BlC,KAASviM,IAASnG,QAEL,GAARk6D,GACL6rI,EAAc/lM,IAED,GAARk6D,KACL8rI,EAAYhmM,IAEhB,OAAOmG,EACX,CACA,IAAIkmB,GAAW,GAAIg7K,GAAY,GAC/B,KAAO9yD,EAAO3rG,IAAM,GAChBmgK,EAASvoM,EAAK23E,OAAS,EAAG33E,EAAKoqM,aAAe,EAAGv+K,GAAUg7K,IAAW,EAAI,GAC9E,IAAI9tM,GAAgC,QAAtBuiJ,EAAKt7I,EAAKjH,cAA2B,IAAPuiJ,EAAgBA,EAAMzvH,GAAS9yB,OAAS8tM,GAAU,GAAKh7K,GAAS,GAAG9yB,OAAS,EACxH,OAAO,IAAIo+B,GAAK6lI,EAAMh9J,EAAKqqM,OAAQx+K,GAASvxB,UAAWusM,GAAUvsM,UAAWvB,GAChF,CA17BgCkvM,CAAUjoM,EAAO,EAKjDm3B,GAAK/b,MAAQ,IAAI+b,GAAKguK,GAAShjD,KAAM,GAAI,GAAI,GAC7C,MAAMmmD,GACFn0M,YAAY+zM,EAAQviM,GAChBrR,KAAK4zM,OAASA,EACd5zM,KAAKqR,MAAQA,CACjB,CACInG,SAAO,OAAOlL,KAAK4zM,OAAO5zM,KAAKqR,MAAQ,EAAI,CAC3CgyE,YAAU,OAAOrjF,KAAK4zM,OAAO5zM,KAAKqR,MAAQ,EAAI,CAC9C7F,UAAQ,OAAOxL,KAAK4zM,OAAO5zM,KAAKqR,MAAQ,EAAI,CAC5C+zD,WAAS,OAAOplE,KAAK4zM,OAAO5zM,KAAKqR,MAAQ,EAAI,CAC7CyiC,UAAQ,OAAO9zC,KAAKqR,KAAO,CAC/ByH,OAAS9Y,KAAKqR,OAAS,CAAG,CAC1Bu8D,OAAS,OAAO,IAAIomI,GAAiBh0M,KAAK4zM,OAAQ5zM,KAAKqR,MAAQ,EAQnE,MAAM0jM,GAIFl1M,YAIA+zM,EAIAnvM,EAIA+B,GACIxG,KAAK4zM,OAASA,EACd5zM,KAAKyE,OAASA,EACdzE,KAAKwG,IAAMA,CACf,CAIImE,WAAS,OAAOkmM,GAAShjD,IAAM,CAInCv3I,WACI,IAAIhF,EAAS,GACb,QAASD,EAAQ,EAAGA,EAAQrR,KAAK4zM,OAAOnvM,QACpC6M,EAAO1I,KAAK5I,KAAKg2M,YAAY3kM,IAC7BA,EAAQrR,KAAK4zM,OAAOviM,EAAQ,GAEhC,OAAOC,EAAOwL,KAAK,IACvB,CAIAk5L,YAAY3kM,GACR,IAA6B4kM,EAAWj2M,KAAK4zM,OAAOviM,EAAQ,GACxD1G,EAAO3K,KAAKwG,IAAIkiK,MADX1oK,KAAK4zM,OAAOviM,IACUC,EAAS3G,EAAKvH,KAI7C,GAHI,KAAK+f,KAAK7R,KAAY3G,EAAK+mM,UAC3BpgM,EAASkN,KAAKC,UAAUnN,IAExB2kM,IADJ5kM,GAAS,GAEL,OAAOC,EACX,IAAIimB,EAAW,GACf,KAAOlmB,EAAQ4kM,GACX1+K,EAAS3uB,KAAK5I,KAAKg2M,YAAY3kM,IAC/BA,EAAQrR,KAAK4zM,OAAOviM,EAAQ,GAEhC,OAAOC,EAAS,IAAMimB,EAASza,KAAK,KAAO,GAC/C,CAIAi6K,UAAUl3J,EAAYo2K,EAAUh5D,EAAKnpG,EAAKu7G,GACtC,IAAMukD,UAAW5zM,KAAMk2M,GAAO,EAC9B,QAAS1xM,EAAIq7B,EAAYr7B,GAAKyxM,KACtBE,GAAU9mD,EAAMv7G,EAAK8/J,EAAOpvM,EAAI,GAAIovM,EAAOpvM,EAAI,MAC/C0xM,EAAO1xM,EACHy4I,EAAM,IAHsBz4I,EAAIovM,EAAOpvM,EAAI,IAOvD,OAAO0xM,CACX,CAIAnwM,MAAMqwM,EAAQC,EAAMt8L,GAChB,IAAIkX,EAAIjxB,KAAK4zM,OACTr1D,EAAO,IAAIs2D,YAAYwB,EAAOD,GAAS7lL,EAAM,EACjD,QAAS/rB,EAAI4xM,EAAQj3H,EAAI,EAAG36E,EAAI6xM,GAAO,CACnC93D,EAAKp/D,KAAOluD,EAAEzsB,KACd+5I,EAAKp/D,KAAOluD,EAAEzsB,KAAOuV,EACrB,IAAIm5G,EAAKqrB,EAAKp/D,KAAOluD,EAAEzsB,KAAOuV,EAC9BwkI,EAAKp/D,KAAOluD,EAAEzsB,KAAO4xM,EACrB7lL,EAAMrF,KAAKC,IAAIoF,EAAK2iG,EAAE,CAE1B,OAAO,IAAI6hF,GAAWx2D,EAAMhuH,EAAKvwB,KAAKwG,IAC1C,EAEJ,SAAS2vM,GAAU9mD,EAAMv7G,EAAK/5B,EAAMm5G,GAChC,OAAQm8B,GACJ,KAAK,EAAsB,OAAOt1I,EAAO+5B,EACzC,KAAK,EAA0B,OAAOo/E,GAAMp/E,GAAO/5B,EAAO+5B,EAC1D,KAAK,EAAqB,OAAO/5B,EAAO+5B,GAAOo/E,EAAKp/E,EACpD,KAAK,EAAwB,OAAO/5B,GAAQ+5B,GAAOo/E,EAAKp/E,EACxD,KAAK,EAAoB,OAAOo/E,EAAKp/E,EACrC,KAAK,EAAuB,OAAO,EAE3C,CACA,SAASmJ,GAAYp8C,EAAMizC,EAAKu7G,EAAMinD,GAGlC,QAFItvD,EAEGnmJ,EAAKkZ,MAAQlZ,EAAKqyH,KACpBm8B,EAAO,EAAIxuJ,EAAKkZ,MAAQ+5B,EAAMjzC,EAAKkZ,KAAO+5B,KAC1Cu7G,GAAO,EAAKxuJ,EAAKqyH,IAAMp/E,EAAMjzC,EAAKqyH,GAAKp/E,IAAM,CAC9C,IAAIznC,GAAUiqM,GAAYz1M,aAAgB0iC,IAAY1iC,EAAKwQ,MAAQ,EAAI,KAAOxQ,EAAKwL,OACnF,IAAKA,EACD,OAAOxL,EACXA,EAAOwL,EAEX,IAAIiC,EAAOgoM,EAAW,EAAIpE,GAASI,eAEnC,GAAIgE,EACA,QAAStjL,EAAOnyB,EAAMwL,EAAS2mB,EAAK3mB,OAAQA,EAAQ2mB,EAAO3mB,EAAQA,EAAS2mB,EAAK3mB,OACzE2mB,aAAgBuQ,IAAYvQ,EAAK3hB,MAAQ,IAA+C,QAAxC21I,EAAK36I,EAAO8mM,MAAMr/J,EAAKu7G,EAAM/gJ,UAA0B,IAAP04I,OAAgB,EAASA,EAAGjtI,OAASiZ,EAAKjZ,OAC1IlZ,EAAOwL,GAEnB,OAAS,CACL,IAAIgxI,EAAQx8I,EAAKsyM,MAAMr/J,EAAKu7G,EAAM/gJ,GAClC,IAAK+uI,EACD,OAAOx8I,EACXA,EAAOw8I,EAEf,CACA,MAAMk5D,GACF92D,OAAOnxI,EAAO,GAAK,OAAO,IAAIkkM,GAAWxyM,KAAMsO,EAAO,CACtDkoM,SAAS7rM,EAAMw3I,EAAS,KAAMob,EAAQ,MAClC,IAAI3nJ,EAAI6gM,GAAYz2M,KAAM2K,EAAMw3I,EAAQob,GACxC,OAAO3nJ,EAAEnR,OAASmR,EAAE,GAAK,IAC7B,CACA6gM,YAAY9rM,EAAMw3I,EAAS,KAAMob,EAAQ,MACrC,OAAOk5C,GAAYz2M,KAAM2K,EAAMw3I,EAAQob,EAC3C,CACA7mI,QAAQod,EAAKu7G,EAAO,GAChB,OAAOpyG,GAAYj9C,KAAM8zC,EAAKu7G,GAAM,EACxC,CACAwjD,aAAa/+J,EAAKu7G,EAAO,GACrB,OAAOpyG,GAAYj9C,KAAM8zC,EAAKu7G,GAAM,EACxC,CACAqnD,aAAax4L,GACT,OAAOy4L,GAAiB32M,KAAMke,EAClC,CACA04L,2BAA2B9iK,GACvB,IAAI9gB,EAAOhzB,KAAK82L,YAAYhjJ,GAAMjzC,EAAOb,KACzC,KAAOgzB,GAAM,CACT,IAAIY,EAAOZ,EAAKyqI,UAChB,IAAK7pI,GAAQA,EAAKs/F,IAAMlgG,EAAKkgG,GACzB,MACAt/F,EAAKjpB,KAAK+mM,SAAW99K,EAAK7Z,MAAQ6Z,EAAKs/F,IACvCryH,EAAOmyB,EACPA,EAAOY,EAAKijL,aAGZ7jL,EAAOY,EAGf,OAAO/yB,CACX,CACIA,WAAS,OAAOb,IAAM,CACtB8Y,WAAS,OAAO9Y,KAAKqM,MAAQ,EAErC,MAAMk3B,WAAiBgzK,GACnB12M,YAAY+yM,EAAO74L,EAEnB1I,EAAOylM,GACHh3M,QACAE,KAAK4yM,MAAQA,EACb5yM,KAAK+Z,KAAOA,EACZ/Z,KAAKqR,MAAQA,EACbrR,KAAK82M,QAAUA,CACnB,CACInsM,WAAS,OAAO3K,KAAK4yM,MAAMjoM,IAAM,CACjCvH,WAAS,OAAOpD,KAAK4yM,MAAMjoM,KAAKvH,IAAM,CACtC8vH,SAAO,OAAOlzH,KAAK+Z,KAAO/Z,KAAK4yM,MAAMnuM,MAAQ,CACjDsyM,UAAUvyM,EAAGy4I,EAAKnpG,EAAKu7G,EAAM/gJ,EAAO,GAChC,QAASjC,EAASrM,OAAQ,CACtB,QAAWu3B,WAAUg7K,aAAclmM,EAAOumM,MAAOzqM,EAAI80I,EAAM,EAAI1lH,EAAS9yB,QAAS,EAAID,GAAK2D,EAAG3D,GAAKy4I,EAAK,CACnG,IAAInkI,EAAOye,EAAS/yB,GAAI6+E,EAAQkvH,EAAU/tM,GAAK6H,EAAO0N,KACtD,GAAKo8L,GAAU9mD,EAAMv7G,EAAKuvC,EAAOA,EAAQvqE,EAAKrU,QAE9C,GAAIqU,aAAgBi8L,GAAY,CAC5B,GAAIzmM,EAAO4jM,GAASC,eAChB,SACJ,IAAI9gM,EAAQyH,EAAKi+K,UAAU,EAAGj+K,EAAK86L,OAAOnvM,OAAQw4I,EAAKnpG,EAAMuvC,EAAOgsE,GACpE,GAAIh+I,GAAQ,EACR,OAAO,IAAI2lM,GAAW,IAAIC,GAAc5qM,EAAQyM,EAAMtU,EAAG6+E,GAAQ,KAAMhyE,EAAK,SAE1E/C,EAAO4jM,GAASE,mBAAuBt5L,EAAKnO,KAAKgnM,aAAeuF,GAASp+L,GAAQ,CACvF,IAAI2xL,EACJ,KAAMn8L,EAAO4jM,GAASG,gBAAkB5H,EAAU0G,GAAYntM,IAAI8U,MAAW2xL,EAAQ70I,QACjF,OAAO,IAAIryB,GAASknK,EAAQ3wK,KAAMupD,EAAO7+E,EAAG6H,GAChD,IAAIgxI,GAAQ,IAAI95G,GAASzqB,EAAMuqE,EAAO7+E,EAAG6H,GACzC,OAAQiC,EAAO4jM,GAASE,mBAAsB/0D,GAAM1yI,KAAKgnM,YAAct0D,GACjEA,GAAM05D,UAAU95D,EAAM,EAAInkI,EAAKye,SAAS9yB,OAAS,EAAI,EAAGw4I,EAAKnpG,EAAKu7G,EAAI,EAUpF,GAPK/gJ,EAAO4jM,GAASE,mBAAsB/lM,EAAO1B,KAAKgnM,cAGnDntM,EADA6H,EAAOgF,OAAS,EACZhF,EAAOgF,MAAQ4rI,EAEfA,EAAM,GAAI,EAAK5wI,EAAOyqM,QAAQlE,MAAMr7K,SAAS9yB,OACrD4H,EAASA,EAAOyqM,SACXzqM,GACD,OAAO,KAEnB,CACI62B,iBAAe,OAAOljC,KAAK+2M,UAAU,EAAG,EAAG,EAAG,EAAwB,CACtEt5C,gBAAc,OAAOz9J,KAAK+2M,UAAU/2M,KAAK4yM,MAAMr7K,SAAS9yB,OAAS,GAAG,EAAI,EAAG,EAAwB,CACvGuyL,WAAWljJ,GAAO,OAAO9zC,KAAK+2M,UAAU,EAAG,EAAGjjK,EAAK,EAAqB,CACxEgjJ,YAAYhjJ,GAAO,OAAO9zC,KAAK+2M,UAAU/2M,KAAK4yM,MAAMr7K,SAAS9yB,OAAS,GAAG,EAAIqvC,GAAK,EAAuB,CACzGq/J,MAAMr/J,EAAKu7G,EAAM/gJ,EAAO,GACpB,IAAIm8L,EACJ,KAAMn8L,EAAO4jM,GAASI,kBAAoB7H,EAAU0G,GAAYntM,IAAIhE,KAAK4yM,SAAWnI,EAAQ70I,QAAS,CACjG,IAAIuhJ,EAAOrjK,EAAM9zC,KAAK+Z,KACtB,QAAWA,OAAMm5G,QAAQu3E,EAAQ70I,QAC7B,IAAKy5F,EAAO,EAAIt1I,GAAQo9L,EAAOp9L,EAAOo9L,KACjC9nD,EAAO,EAAIn8B,GAAMikF,EAAOjkF,EAAKikF,GAC9B,OAAO,IAAI5zK,GAASknK,EAAQ3wK,KAAM2wK,EAAQ70I,QAAQ,GAAG77C,KAAO/Z,KAAK+Z,MAAM,EAAI/Z,KAAI,CAG3F,OAAOA,KAAK+2M,UAAU,EAAG,EAAGjjK,EAAKu7G,EAAM/gJ,EAC3C,CACA8oM,wBACI,IAAI76L,EAAMvc,KACV,KAAOuc,EAAI5R,KAAKgnM,aAAep1L,EAAIu6L,SAC/Bv6L,EAAMA,EAAIu6L,QACd,OAAOv6L,CACX,CACIlQ,aACA,OAAOrM,KAAK82M,QAAU92M,KAAK82M,QAAQM,wBAA0B,IACjE,CACIrqM,kBACA,OAAO/M,KAAK82M,SAAW92M,KAAKqR,OAAS,EAAIrR,KAAK82M,QAAQC,UAAU/2M,KAAKqR,MAAQ,EAAG,EAAG,EAAG,GAAyB,IACnH,CACIwlM,kBACA,OAAO72M,KAAK82M,SAAW92M,KAAKqR,OAAS,EAAIrR,KAAK82M,QAAQC,UAAU/2M,KAAKqR,MAAQ,GAAG,EAAI,EAAG,GAAyB,IACpH,CACIyoB,WAAS,OAAO95B,KAAK4yM,KAAO,CAChCyE,SAAW,OAAOr3M,KAAK4yM,KAAO,CAI9Bt8L,WAAa,OAAOtW,KAAK4yM,MAAMt8L,UAAY,EAE/C,SAASmgM,GAAY51M,EAAM8J,EAAMw3I,EAAQob,GACrC,IAAI5L,EAAM9wJ,EAAK4+I,SAAUnuI,EAAS,GAClC,IAAKqgJ,EAAIzuH,aACL,OAAO5xB,EACX,GAAc,MAAV6wI,EACA,QAASzrF,GAAQ,GAAQA,GAErB,GADAA,EAAQi7F,EAAIhnJ,KAAKw+E,GAAGg5D,IACfwP,EAAI5kJ,cACL,OAAOuE,EAEnB,OAAS,CACL,GAAa,MAATisJ,GAAiB5L,EAAIhnJ,KAAKw+E,GAAGo0E,GAC7B,OAAOjsJ,EAGX,GAFIqgJ,EAAIhnJ,KAAKw+E,GAAGx+E,IACZ2G,EAAO1I,KAAK+oJ,EAAI9wJ,OACf8wJ,EAAI5kJ,cACL,OAAgB,MAATwwJ,EAAgBjsJ,EAAS,GAE5C,CACA,SAASqlM,GAAiB91M,EAAMqd,EAAS1Z,EAAI0Z,EAAQzZ,OAAS,GAC1D,QAASg1B,EAAI54B,EAAKwL,OAAQ7H,GAAK,EAAGi1B,EAAIA,EAAEptB,OAAQ,CAC5C,IAAKotB,EACD,OAAO,EACX,IAAKA,EAAE9uB,KAAKgnM,YAAa,CACrB,GAAIzzL,EAAQ1Z,IAAM0Z,EAAQ1Z,IAAMi1B,EAAEr2B,KAC9B,OAAO,EACXoB,KAGR,OAAO,CACX,CACA,MAAMyyM,GACFp3M,YAAYwM,EAAQunM,EAAQviM,EAAOgyE,GAC/BrjF,KAAKqM,OAASA,EACdrM,KAAK4zM,OAASA,EACd5zM,KAAKqR,MAAQA,EACbrR,KAAKqjF,MAAQA,CACjB,EAEJ,MAAM2zH,WAAmBT,GACjBnzM,WAAS,OAAOpD,KAAK2K,KAAKvH,IAAM,CAChC2W,WAAS,OAAO/Z,KAAKke,QAAQmlE,MAAQrjF,KAAKke,QAAQ01L,OAAOA,OAAO5zM,KAAKqR,MAAQ,EAAI,CACjF6hH,SAAO,OAAOlzH,KAAKke,QAAQmlE,MAAQrjF,KAAKke,QAAQ01L,OAAOA,OAAO5zM,KAAKqR,MAAQ,EAAI,CACnFxR,YAAYqe,EAAS44L,EAASzlM,GAC1BvR,QACAE,KAAKke,QAAUA,EACfle,KAAK82M,QAAUA,EACf92M,KAAKqR,MAAQA,EACbrR,KAAK2K,KAAOuT,EAAQ01L,OAAOptM,IAAIkiK,MAAMxqJ,EAAQ01L,OAAOA,OAAOviM,GAC/D,CACAmpB,MAAMyiH,EAAKnpG,EAAKu7G,GACZ,IAAMukD,UAAW5zM,KAAKke,QAClB7M,EAAQuiM,EAAO7c,UAAU/2L,KAAKqR,MAAQ,EAAGuiM,EAAOA,OAAO5zM,KAAKqR,MAAQ,GAAI4rI,EAAKnpG,EAAM9zC,KAAKke,QAAQmlE,MAAOgsE,GAC3G,OAAOh+I,EAAQ,EAAI,KAAO,IAAI2lM,GAAWh3M,KAAKke,QAASle,KAAMqR,EACjE,CACI6xB,iBAAe,OAAOljC,KAAKw6B,MAAM,EAAG,EAAG,EAAwB,CAC/DijI,gBAAc,OAAOz9J,KAAKw6B,OAAM,EAAI,EAAG,EAAwB,CACnEw8J,WAAWljJ,GAAO,OAAO9zC,KAAKw6B,MAAM,EAAGsZ,EAAK,EAAqB,CACjEgjJ,YAAYhjJ,GAAO,OAAO9zC,KAAKw6B,OAAM,EAAIsZ,GAAK,EAAuB,CACrEq/J,MAAMr/J,EAAKu7G,EAAM/gJ,EAAO,GACpB,GAAIA,EAAO4jM,GAASC,eAChB,OAAO,KACX,IAAMyB,UAAW5zM,KAAKke,QAClB7M,EAAQuiM,EAAO7c,UAAU/2L,KAAKqR,MAAQ,EAAGuiM,EAAOA,OAAO5zM,KAAKqR,MAAQ,GAAIg+I,EAAO,EAAI,GAAI,EAAIv7G,EAAM9zC,KAAKke,QAAQmlE,MAAOgsE,GACzH,OAAOh+I,EAAQ,EAAI,KAAO,IAAI2lM,GAAWh3M,KAAKke,QAASle,KAAMqR,EACjE,CACIhF,aACA,OAAOrM,KAAK82M,SAAW92M,KAAKke,QAAQ7R,OAAO+qM,uBAC/C,CACAE,gBAAgBr6D,GACZ,OAAOj9I,KAAK82M,QAAU,KAAO92M,KAAKke,QAAQ7R,OAAO0qM,UAAU/2M,KAAKke,QAAQ7M,MAAQ4rI,EAAKA,EAAK,EAAG,EACjG,CACIlwI,kBACA,IAAM6mM,UAAW5zM,KAAKke,QAClBq/I,EAAQq2C,EAAOA,OAAO5zM,KAAKqR,MAAQ,GACvC,OAAIksJ,GAASv9J,KAAK82M,QAAUlD,EAAOA,OAAO5zM,KAAK82M,QAAQzlM,MAAQ,GAAKuiM,EAAOA,OAAOnvM,QACvE,IAAIuyM,GAAWh3M,KAAKke,QAASle,KAAK82M,QAASv5C,GAC/Cv9J,KAAKs3M,gBAAgB,EAChC,CACIT,kBACA,IAAMjD,UAAW5zM,KAAKke,QAClBg2L,EAAcl0M,KAAK82M,QAAU92M,KAAK82M,QAAQzlM,MAAQ,EAAI,EAC1D,OAAIrR,KAAKqR,OAAS6iM,EACPl0M,KAAKs3M,iBAAgB,GACzB,IAAIN,GAAWh3M,KAAKke,QAASle,KAAK82M,QAASlD,EAAO7c,UAAUmd,EAAal0M,KAAKqR,OAAO,EAAI,EAAG,GACvG,CACIyoB,WAAS,OAAO,IAAM,CAC1Bu9K,SACI,IAAI9/K,EAAW,GAAIg7K,EAAY,IACzBqB,UAAW5zM,KAAKke,QAClBk4L,EAASp2M,KAAKqR,MAAQ,EAAGglM,EAAOzC,EAAOA,OAAO5zM,KAAKqR,MAAQ,GAM/D,OALIglM,EAAOD,IAEP7+K,EAAS3uB,KAAKgrM,EAAO7tM,MAAMqwM,EAAQC,EADxBzC,EAAOA,OAAO5zM,KAAKqR,MAAQ,KAEtCkhM,EAAU3pM,KAAK,IAEZ,IAAIi6B,GAAK7iC,KAAK2K,KAAM4sB,EAAUg7K,EAAWvyM,KAAKkzH,GAAKlzH,KAAK+Z,KACnE,CAIAzD,WAAa,OAAOtW,KAAKke,QAAQ01L,OAAOoC,YAAYh2M,KAAKqR,MAAQ,EAErE,SAAS4hM,GAAUsE,GACf,IAAKA,EAAM9yM,OACP,OAAO,KACX,IAAIyxM,EAAO,EAAGsB,EAASD,EAAM,GAC7B,QAAS/yM,EAAI,EAAGA,EAAI+yM,EAAM9yM,OAAQD,IAAK,CACnC,IAAI3D,EAAO02M,EAAM/yM,IACb3D,EAAKkZ,KAAOy9L,EAAOz9L,MAAQlZ,EAAKqyH,GAAKskF,EAAOtkF,MAC5CskF,EAAS32M,EACTq1M,EAAO1xM,GAGf,IAAIsU,EAAO0+L,aAAkBj0K,IAAYi0K,EAAOnmM,MAAQ,EAAI,KAAOmmM,EAAOnrM,OACtEorM,EAAWF,EAAMxxM,QACrB,OAAI+S,EACA2+L,EAASvB,GAAQp9L,EAEjB2+L,EAAStmM,OAAO+kM,EAAM,GACnB,IAAIwB,GAAcD,EAAUD,EACvC,CACA,MAAME,GACF73M,YAAY03M,EAAO12M,GACfb,KAAKu3M,MAAQA,EACbv3M,KAAKa,KAAOA,CAChB,CACIiY,WAAS,OAAOm6L,GAAUjzM,KAAKu3M,MAAQ,EAyB/C,MAAM/E,GAIEpvM,WAAS,OAAOpD,KAAK2K,KAAKvH,IAAM,CAIpCvD,YAAYgB,EAIZyN,EAAO,GAYH,GAXAtO,KAAKsO,KAAOA,EAIZtO,KAAK4zM,OAAS,KACd5zM,KAAK4sD,MAAQ,GAIb5sD,KAAKqR,MAAQ,EACbrR,KAAK23M,WAAa,KACd92M,aAAgB0iC,GAChBvjC,KAAK43M,UAAU/2M,OAEd,CACDb,KAAK4yM,MAAQ/xM,EAAKqd,QAAQ7R,OAC1BrM,KAAK4zM,OAAS/yM,EAAKqd,QACnB,QAAS8kB,EAAIniC,EAAKi2M,QAAS9zK,EAAGA,EAAIA,EAAE8zK,QAChC92M,KAAK4sD,MAAMtpB,QAAQN,EAAE3xB,OACzBrR,KAAK23M,WAAa92M,EAClBb,KAAK63M,SAASh3M,EAAKwQ,MAAK,CAEhC,CACAumM,UAAU/2M,GACN,QAAKA,IAELb,KAAK4yM,MAAQ/xM,EACbb,KAAK2K,KAAO9J,EAAK8J,KACjB3K,KAAK+Z,KAAOlZ,EAAKkZ,KACjB/Z,KAAKkzH,GAAKryH,EAAKqyH,IACR,EACX,CACA2kF,SAASxmM,EAAO1G,GACZ3K,KAAKqR,MAAQA,EACb,IAAMgyE,QAAOuwH,UAAW5zM,KAAK4zM,OAC7B,YAAKjpM,KAAOA,GAAQipM,EAAOptM,IAAIkiK,MAAMkrC,EAAOA,OAAOviM,IACnDrR,KAAK+Z,KAAOspE,EAAQuwH,EAAOA,OAAOviM,EAAQ,GAC1CrR,KAAKkzH,GAAK7vC,EAAQuwH,EAAOA,OAAOviM,EAAQ,IACjC,CACX,CAIAgjF,MAAMxzF,GACF,QAAKA,IAEDA,aAAgB0iC,IAChBvjC,KAAK4zM,OAAS,KACP5zM,KAAK43M,UAAU/2M,KAE1Bb,KAAK4zM,OAAS/yM,EAAKqd,QACZle,KAAK63M,SAASh3M,EAAKwQ,MAAOxQ,EAAK8J,OAC1C,CAIA2L,WACI,OAAOtW,KAAK4zM,OAAS5zM,KAAK4zM,OAAOA,OAAOoC,YAAYh2M,KAAKqR,OAASrR,KAAK4yM,MAAMt8L,UACjF,CAIAwhM,WAAW76D,EAAKnpG,EAAKu7G,GACjB,IAAKrvJ,KAAK4zM,OACN,OAAO5zM,KAAKq0F,MAAMr0F,KAAK4yM,MAAMmE,UAAU95D,EAAM,EAAIj9I,KAAK4yM,MAAMA,MAAMr7K,SAAS9yB,OAAS,EAAI,EAAGw4I,EAAKnpG,EAAKu7G,EAAMrvJ,KAAKsO,OACpH,IAAMslM,UAAW5zM,KAAK4zM,OAClBviM,EAAQuiM,EAAO7c,UAAU/2L,KAAKqR,MAAQ,EAAGuiM,EAAOA,OAAO5zM,KAAKqR,MAAQ,GAAI4rI,EAAKnpG,EAAM9zC,KAAK4zM,OAAOvwH,MAAOgsE,GAC1G,QAAIh+I,EAAQ,KAEZrR,KAAK4sD,MAAMhkD,KAAK5I,KAAKqR,OACdrR,KAAK63M,SAASxmM,GACzB,CAKA6xB,aAAe,OAAOljC,KAAK83M,WAAW,EAAG,EAAG,EAAwB,CAIpEr6C,YAAc,OAAOz9J,KAAK83M,YAAW,EAAI,EAAG,EAAwB,CAIpE9gB,WAAWljJ,GAAO,OAAO9zC,KAAK83M,WAAW,EAAGhkK,EAAK,EAAqB,CAItEgjJ,YAAYhjJ,GAAO,OAAO9zC,KAAK83M,YAAW,EAAIhkK,GAAK,EAAuB,CAQ1Eq/J,MAAMr/J,EAAKu7G,EAAM/gJ,EAAOtO,KAAKsO,MACzB,OAAKtO,KAAK4zM,SAEHtlM,EAAO4jM,GAASC,iBAAyBnyM,KAAK83M,WAAW,EAAGhkK,EAAKu7G,GAD7DrvJ,KAAKq0F,MAAMr0F,KAAK4yM,MAAMO,MAAMr/J,EAAKu7G,EAAM/gJ,GAEtD,CAIAjC,SACI,IAAKrM,KAAK4zM,OACN,OAAO5zM,KAAK43M,UAAW53M,KAAKsO,KAAO4jM,GAASE,iBAAoBpyM,KAAK4yM,MAAMkE,QAAU92M,KAAK4yM,MAAMvmM,QACpG,GAAIrM,KAAK4sD,MAAMnoD,OACX,OAAOzE,KAAK63M,SAAS73M,KAAK4sD,MAAM57C,OACpC,IAAI3E,EAAUrM,KAAKsO,KAAO4jM,GAASE,iBAAoBpyM,KAAK4zM,OAAOvnM,OAASrM,KAAK4zM,OAAOvnM,OAAO+qM,wBAC/F,YAAKxD,OAAS,KACP5zM,KAAK43M,UAAUvrM,EAC1B,CAIA0rM,QAAQ96D,GACJ,IAAKj9I,KAAK4zM,OACN,QAAQ5zM,KAAK4yM,MAAMkE,SACb92M,KAAKq0F,MAAMr0F,KAAK4yM,MAAMvhM,MAAQ,EAAI,KAC9BrR,KAAK4yM,MAAMkE,QAAQC,UAAU/2M,KAAK4yM,MAAMvhM,MAAQ4rI,EAAKA,EAAK,EAAG,EAAuBj9I,KAAKsO,OACvG,IAAMslM,UAAW5zM,KAAK4zM,OAAQrvK,EAAIvkC,KAAK4sD,MAAMnoD,OAAS,EACtD,GAAIw4I,EAAM,EAAG,CACT,IAAIi3D,EAAc3vK,EAAI,EAAI,EAAIvkC,KAAK4sD,MAAMroB,GAAK,EAC9C,GAAIvkC,KAAKqR,OAAS6iM,EACd,OAAOl0M,KAAK63M,SAASjE,EAAO7c,UAAUmd,EAAal0M,KAAKqR,OAAO,EAAI,EAAG,GAAsB,KAE/F,CACD,IAAIksJ,EAAQq2C,EAAOA,OAAO5zM,KAAKqR,MAAQ,GACvC,GAAIksJ,GAASh5H,EAAI,EAAIqvK,EAAOA,OAAOnvM,OAASmvM,EAAOA,OAAO5zM,KAAK4sD,MAAMroB,GAAK,IACtE,OAAOvkC,KAAK63M,SAASt6C,EAAK,CAElC,OAAOh5H,EAAI,GAAIvkC,KAAKq0F,MAAMr0F,KAAK4zM,OAAOvnM,OAAO0qM,UAAU/2M,KAAK4zM,OAAOviM,MAAQ4rI,EAAKA,EAAK,EAAG,EAAuBj9I,KAAKsO,MACxH,CAIAvB,cAAgB,OAAO/M,KAAK+3M,QAAQ,EAAI,CAIxClB,cAAgB,OAAO72M,KAAK+3M,SAAQ,EAAK,CACzCC,WAAW/6D,GACP,IAAI5rI,EAAOhF,GAAUunM,UAAW5zM,KAChC,GAAI4zM,EAAQ,CACR,GAAI32D,EAAM,GACN,GAAIj9I,KAAKqR,MAAQuiM,EAAOA,OAAOA,OAAOnvM,OAClC,OAAO,OAGX,QAASD,EAAI,EAAGA,EAAIxE,KAAKqR,MAAO7M,IAC5B,GAAIovM,EAAOA,OAAOA,OAAOpvM,EAAI,GAAKxE,KAAKqR,MACnC,OAAO,IAEhBA,QAAOhF,UAAWunM,SAGlBviM,QAAOylM,QAASzqM,GAAWrM,KAAK4yM,OAEvC,KAAOvmM,IAAUgF,QAAOylM,QAASzqM,GAAWA,GACxC,GAAIgF,GAAQ,EACR,QAAS7M,EAAI6M,EAAQ4rI,EAAK90I,EAAI80I,EAAM,GAAI,EAAK5wI,EAAOumM,MAAMr7K,SAAS9yB,OAAQD,GAAK2D,EAAG3D,GAAKy4I,EAAK,CACzF,IAAIziH,EAAQnuB,EAAOumM,MAAMr7K,SAAS/yB,GAClC,GAAKxE,KAAKsO,KAAO4jM,GAASE,kBACtB53K,aAAiBu6K,KAChBv6K,EAAM7vB,KAAKgnM,aACZuF,GAAS18K,GACT,OAAO,EAGvB,OAAO,CACX,CACA2iJ,KAAKlgC,EAAKk2D,GACN,GAAIA,GAASnzM,KAAK83M,WAAW76D,EAAK,EAAG,GACjC,OAAO,EACX,OAAS,CACL,GAAIj9I,KAAK+3M,QAAQ96D,GACb,OAAO,EACX,GAAIj9I,KAAKg4M,WAAW/6D,KAASj9I,KAAKqM,SAC9B,OAAO,EAEnB,CAQAyM,KAAKq6L,GAAQ,GAAQ,OAAOnzM,KAAKm9K,KAAK,EAAGg2B,EAAQ,CAOjD7sG,KAAK6sG,GAAQ,GAAQ,OAAOnzM,KAAKm9K,MAAK,EAAIg2B,EAAQ,CAMlDR,OAAO7+J,EAAKu7G,EAAO,GAEf,MAAOrvJ,KAAK+Z,MAAQ/Z,KAAKkzH,KACpBm8B,EAAO,EAAIrvJ,KAAK+Z,MAAQ+5B,EAAM9zC,KAAK+Z,KAAO+5B,KAC1Cu7G,GAAO,EAAKrvJ,KAAKkzH,IAAMp/E,EAAM9zC,KAAKkzH,GAAKp/E,KACnC9zC,KAAKqM,WAGd,KAAOrM,KAAK83M,WAAW,EAAGhkK,EAAKu7G,KAC/B,OAAOrvJ,IACX,CAKIa,WACA,IAAKb,KAAK4zM,OACN,OAAO5zM,KAAK4yM,MAChB,IAAI5U,EAAQh+L,KAAK23M,WAAYrmM,EAAS,KAAM+iM,EAAQ,EACpD,GAAIrW,GAASA,EAAM9/K,SAAWle,KAAK4zM,OAC/B5gL,EAAM,QAAS3hB,EAAQrR,KAAKqR,MAAOkzB,EAAIvkC,KAAK4sD,MAAMnoD,OAAQ8/B,GAAK,GAAI,CAC/D,QAASjN,EAAI0mK,EAAO1mK,EAAGA,EAAIA,EAAEw/K,QACzB,GAAIx/K,EAAEjmB,OAASA,EAAO,CAClB,GAAIA,GAASrR,KAAKqR,MACd,OAAOimB,EACXhmB,EAASgmB,EACT+8K,EAAQ9vK,EAAI,EACZ,MAAMvR,EAEd3hB,EAAQrR,KAAK4sD,QAAQroB,EAAC,CAG9B,QAAS//B,EAAI6vM,EAAO7vM,EAAIxE,KAAK4sD,MAAMnoD,OAAQD,IACvC8M,EAAS,IAAI0lM,GAAWh3M,KAAK4zM,OAAQtiM,EAAQtR,KAAK4sD,MAAMpoD,IAC5D,OAAOxE,KAAK23M,WAAa,IAAIX,GAAWh3M,KAAK4zM,OAAQtiM,EAAQtR,KAAKqR,MACtE,CAMIyoB,WACA,OAAO95B,KAAK4zM,OAAS,KAAO5zM,KAAK4yM,MAAMA,KAC3C,CAOAM,QAAQC,EAAOC,GACX,QAASiB,EAAQ,IAAK,CAClB,IAAI4D,GAAY,EAChB,GAAIj4M,KAAK2K,KAAKgnM,cAA+B,IAAhBwB,EAAMnzM,MAAiB,CAChD,GAAIA,KAAKkjC,aAAc,CACnBmxK,IACA,SAECr0M,KAAK2K,KAAKgnM,cACXsG,GAAY,GAEpB,KACQA,GAAa7E,GACbA,EAAMpzM,MACVi4M,EAAYj4M,KAAK2K,KAAKgnM,aAClB3xM,KAAK+M,eAJJ,CAML,IAAKsnM,EACD,OACJr0M,KAAKqM,SACLgoM,IACA4D,GAAY,GAGxB,CAMAvB,aAAax4L,GACT,IAAKle,KAAK4zM,OACN,OAAO+C,GAAiB32M,KAAKa,KAAMqd,GACvC,IAAM01L,UAAW5zM,KAAK4zM,QAAUlrC,SAAUkrC,EAAOptM,IACjD,QAAShC,EAAI0Z,EAAQzZ,OAAS,EAAG8/B,EAAIvkC,KAAK4sD,MAAMnoD,OAAS,EAAGD,GAAK,EAAG+/B,IAAK,CACrE,GAAIA,EAAI,EACJ,OAAOoyK,GAAiB32M,KAAKa,KAAMqd,EAAS1Z,GAChD,IAAImG,EAAO+9J,EAAMkrC,EAAOA,OAAO5zM,KAAK4sD,MAAMroB,KAC1C,IAAK55B,EAAKgnM,YAAa,CACnB,GAAIzzL,EAAQ1Z,IAAM0Z,EAAQ1Z,IAAMmG,EAAKvH,KACjC,OAAO,EACXoB,KAGR,OAAO,CACX,EAEJ,SAAS0yM,GAASp9K,GACd,OAAOA,EAAKvC,SAASqY,KAAKkvG,GAAMA,aAAci2D,KAAej2D,EAAGn0I,KAAKgnM,aAAeuF,GAASp4D,GACjG,CAgOA,MAAMo5D,GAAgB,IAAI9hK,QAC1B,SAASs+J,GAASyD,EAAat3M,GAC3B,IAAKs3M,EAAYxG,aAAe9wM,aAAgBk0M,IAAcl0M,EAAK8J,MAAQwtM,EACvE,OAAO,EACX,IAAI/yI,EAAO8yI,GAAcl0M,IAAInD,GAC7B,GAAY,MAARukE,EAAc,CACdA,EAAO,EACP,QAAS5qC,KAAS35B,EAAK02B,SAAU,CAC7B,GAAIiD,EAAM7vB,MAAQwtM,KAAiB39K,aAAiBqI,IAAO,CACvDuiC,EAAO,EACP,MAEJA,GAAQsvI,GAASyD,EAAa39K,EAAK,CAEvC09K,GAAc1xM,IAAI3F,EAAMukE,EAAI,CAEhC,OAAOA,CACX,CACA,SAASquI,GAET0E,EAEA5gL,EAAUg7K,EAEVx4L,EAAMm5G,EAEN7vC,EAEA5+E,EAEA2zM,EAEAC,GACI,IAAIn0L,EAAQ,EACZ,QAAS1f,GAAIuV,EAAMvV,GAAI0uH,EAAI1uH,KACvB0f,GAASwwL,GAASyD,EAAa5gL,EAAS/yB,KAC5C,IAAI8zM,EAAWptL,KAAK03J,KAAc,IAAR1+J,EAAe,GACrC8wL,EAAgB,GAAIC,EAAiB,GA0BzCsD,OAzBA,SAASA,GAAOhhL,GAAUg7K,GAAWx4L,GAAMm5G,GAAIhlE,IAC3C,QAAS1pD,GAAIuV,GAAMvV,GAAI0uH,IAAK,CACxB,IAAIslF,GAAYh0M,GAAGi0M,GAAalG,GAAU/tM,IAAIk0M,GAAYhE,GAASyD,EAAa5gL,GAAS/yB,KAEzF,IADAA,KACOA,GAAI0uH,GAAI1uH,KAAK,CAChB,IAAIm0M,GAAWjE,GAASyD,EAAa5gL,GAAS/yB,KAC9C,GAAIk0M,GAAYC,IAAYL,EACxB,MACJI,IAAaC,GAEjB,GAAIn0M,IAAKg0M,GAAY,EAAG,CACpB,GAAIE,GAAYJ,EAAU,CACtB,IAAIM,GAAOrhL,GAASihL,IACpBD,GAAOK,GAAKrhL,SAAUqhL,GAAKrG,UAAW,EAAGqG,GAAKrhL,SAAS9yB,OAAQ8tM,GAAUiG,IAAatqJ,IACtF,SAEJ8mJ,EAAcpsM,KAAK2uB,GAASihL,IAAU,MAItCxD,EAAcpsM,KAAK6qM,GAAa0E,EAAa5gL,GAAUg7K,GAAWiG,GAAWh0M,GAAGi0M,GADnElG,GAAU/tM,GAAI,GAAK+yB,GAAS/yB,GAAI,GAAGC,OAASg0M,GAC2C,KAAMJ,IAE9GpD,EAAersM,KAAK6vM,GAAavqJ,GAASm1B,EAAK,CAEvD,CACAk1H,CAAOhhL,EAAUg7K,EAAWx4L,EAAMm5G,EAAI,IAC9BklF,GAASC,GAAQrD,EAAeC,EAAgBxwM,EAC5D,CA+DA,MAAMo0M,GAOFh5M,YAMAka,EAIAm5G,EAIAp5F,EAOAo0B,EAAQolG,GAAY,EAAOK,GAAU,GACjC3zJ,KAAK+Z,KAAOA,EACZ/Z,KAAKkzH,GAAKA,EACVlzH,KAAK85B,KAAOA,EACZ95B,KAAKkuD,OAASA,EACdluD,KAAK0iB,MAAQ4wI,EAAY,EAAqB,IAAMK,EAAU,EAAmB,EACrF,CAOIL,gBAAc,OAAoB,EAAZtzJ,KAAK0iB,MAA6B,CAAG,CAK3DixI,cAAY,OAAoB,EAAZ3zJ,KAAK0iB,MAA2B,CAAG,CAS3DviB,eAAe25B,EAAMg/K,EAAY,GAAIC,GAAU,GAC3C,IAAIznM,EAAS,CAAC,IAAIunM,GAAa,EAAG/+K,EAAKr1B,OAAQq1B,EAAM,GAAG,EAAOi/K,IAC/D,QAAS33J,KAAK03J,EACN13J,EAAE8xE,GAAKp5F,EAAKr1B,QACZ6M,EAAO1I,KAAKw4C,GACpB,OAAO9vC,CACX,CAMAnR,oBAAoB24M,EAAWnwK,EAASqwK,EAAS,KAC7C,IAAKrwK,EAAQlkC,OACT,OAAOq0M,EACX,IAAIxnM,EAAS,GACT2nM,EAAK,EAAGC,EAAQJ,EAAUr0M,OAASq0M,EAAU,GAAK,KACtD,QAASK,EAAK,EAAGrlK,EAAM,EAAG2vG,EAAM,GAAI01D,IAAM,CACtC,IAAIC,EAAQD,EAAKxwK,EAAQlkC,OAASkkC,EAAQwwK,GAAM,KAC5CE,EAAUD,EAAQA,EAAMx2D,MAAQ,IACpC,GAAIy2D,EAAUvlK,GAAOklK,EACjB,KAAOE,GAASA,EAAMn/L,KAAOs/L,GAAS,CAClC,IAAIhjG,EAAM6iG,EACV,GAAIplK,GAAOuiE,EAAIt8F,MAAQs/L,GAAWhjG,EAAI6c,IAAMuwB,EAAK,CAC7C,IAAI61D,GAAQpuL,KAAKC,IAAIkrF,EAAIt8F,KAAM+5B,GAAO2vG,EAAK81D,GAAMruL,KAAK4lC,IAAIulD,EAAI6c,GAAImmF,GAAW51D,EAC7EptC,EAAMijG,IAASC,GAAM,KAAO,IAAIV,GAAaS,GAAOC,GAAKljG,EAAIv8E,KAAMu8E,EAAInoD,OAASu1F,EAAK01D,EAAK,IAAKC,EAAK,CAIxG,GAFI/iG,GACA/kG,EAAO1I,KAAKytG,GACZ6iG,EAAMhmF,GAAKmmF,EACX,MACJH,EAAQD,EAAKH,EAAUr0M,OAASq0M,EAAUG,KAAQ,KAE1D,IAAKG,EACD,MACJtlK,EAAMslK,EAAMv2D,IACZY,EAAM21D,EAAMv2D,IAAMu2D,EAAMvrC,IAE5B,OAAOv8J,CACX,EAKJ,MAAMkoM,GAWFC,WAAWtyL,EAAO2xL,EAAW31D,GACzB,MAAoB,iBAATh8H,IACPA,EAAQ,IAAIuyL,GAAYvyL,IAC5Bg8H,EAAUA,EAAwCA,EAAO1+I,OAAS0+I,EAAO57I,IAAIqO,GAAK,IAAIu6I,GAAMv6I,EAAEmE,KAAMnE,EAAEs9G,KAAO,CAAC,IAAIi9B,GAAM,EAAG,IAAxG,CAAC,IAAIA,GAAM,EAAGhpI,EAAM1iB,SAChCzE,KAAK25M,YAAYxyL,EAAO2xL,GAAa,GAAI31D,EACpD,CAIA1/H,MAAM0D,EAAO2xL,EAAW31D,GACpB,IAAI1/H,EAAQzjB,KAAKy5M,WAAWtyL,EAAO2xL,EAAW31D,GAC9C,OAAS,CACL,IAAI3hF,EAAO/9C,EAAMm2L,UACjB,GAAIp4I,EACA,OAAOA,EAEnB,EAEJ,MAAMk4I,GACF75M,YAAY89I,GACR39I,KAAK29I,OAASA,CAClB,CACIl5I,aAAW,OAAOzE,KAAK29I,OAAOl5I,MAAQ,CAC1Cs6I,MAAMhlI,GAAQ,OAAO/Z,KAAK29I,OAAO53I,MAAMgU,EAAO,CAC1C8/L,iBAAe,OAAO,CAAO,CACjCh5B,KAAK9mK,EAAMm5G,GAAM,OAAOlzH,KAAK29I,OAAO53I,MAAMgU,EAAMm5G,EAAK,EAuCpC,IAAIy9E,GAAS,CAAEC,SAAS,IC3vD7C,IAAIkJ,GAAY,EAoBhB,MAAMC,GAIFl6M,YAKA2G,EAKAkU,EAIAs/L,GACIh6M,KAAKwG,IAAMA,EACXxG,KAAK0a,KAAOA,EACZ1a,KAAKg6M,SAAWA,EAIhBh6M,KAAKkL,GAAK4uM,IACd,CAQA35M,cAAckM,GACV,GAAoDA,GAAOqO,KACvD,MAAM,IAAIjU,MAAM,sCACpB,IAAIihK,EAAM,IAAIqyC,GAAI,GAAI,KAAM,IAE5B,GADAryC,EAAIlhK,IAAIoC,KAAK8+J,GACTr7J,EACA,QAASoP,KAAKpP,EAAO7F,IACjBkhK,EAAIlhK,IAAIoC,KAAK6S,GACrB,OAAOisJ,CACX,CAaAvnK,wBACI,IAAIy3J,EAAM,IAAIqiD,GACd,OAAQvyC,GACAA,EAAIsyC,SAAS9oM,QAAQ0mJ,IAAO,EACrB8P,EACJuyC,GAASj2M,IAAI0jK,EAAIhtJ,MAAQgtJ,EAAKA,EAAIsyC,SAASv/L,OAAOm9I,GAAK5hI,KAAK,CAAChF,EAAGC,IAAMD,EAAE9lB,GAAK+lB,EAAE/lB,IAE9F,EAEJ,IAAIgvM,GAAiB,EACrB,MAAMD,GACFp6M,cACIG,KAAKm6M,UAAY,GACjBn6M,KAAKkL,GAAKgvM,IACd,CACA/5M,WAAWua,EAAMwgJ,GACb,IAAKA,EAAKz2J,OACN,OAAOiW,EACX,IAAIuhK,EAAS/gB,EAAK,GAAGi/C,UAAUv6K,KAAKnkB,GAAKA,EAAEf,MAAQA,GAc3D,SAAS6rI,GAAUv1H,EAAGC,GAClB,OAAOD,EAAEvsB,QAAUwsB,EAAExsB,QAAUusB,EAAEkF,MAAM,CAAC7B,EAAG7vB,IAAM6vB,GAAKpD,EAAEzsB,GAC5D,CAhBmE+hJ,CAAU2U,EAAMz/I,EAAEu+L,WAC7E,GAAI/9B,EACA,OAAOA,EACX,IAAIz1K,EAAM,GAAIkhK,EAAM,IAAIqyC,GAAIvzM,EAAKkU,EAAMwgJ,GACvC,QAASp7H,KAAKo7H,EACVp7H,EAAEq6K,UAAUvxM,KAAK8+J,GACrB,IAAIzX,EAWZ,SAASmqD,GAAS1rK,GACd,IAAI+jH,EAAO,CAAC,IACZ,QAASjuJ,EAAI,EAAGA,EAAIkqC,EAAMjqC,OAAQD,IAC9B,QAAS26E,EAAI,EAAGh3E,EAAIsqJ,EAAKhuJ,OAAQ06E,EAAIh3E,EAAGg3E,IACpCszE,EAAK7pJ,KAAK6pJ,EAAKtzE,GAAG1kE,OAAOi0B,EAAMlqC,KAGvC,OAAOiuJ,EAAKz8H,KAAK,CAAChF,EAAGC,IAAMA,EAAExsB,OAASusB,EAAEvsB,OAC5C,CAnBsB21M,CAASl/C,GACvB,QAAS7uJ,KAAUqO,EAAKlU,IACpB,IAAK6F,EAAO2tM,SAASv1M,OACjB,QAASirC,KAAUugH,EACfzpJ,EAAIoC,KAAKqxM,GAASj2M,IAAIqI,EAAQqjC,IAC1C,OAAOg4H,CACX,EAiEJ,SAAS2yC,GAAUx2D,GACf,IAAIy2D,EAAS3uM,OAAOC,OAAO,MAC3B,QAASyqB,KAAQwtH,EAAM,CACnB,IAAI02D,EAAO12D,EAAKxtH,GACXvc,MAAM2C,QAAQ89L,KACfA,EAAO,CAACA,IACZ,QAAShlL,KAAQc,EAAKxlB,MAAM,KACxB,GAAI0kB,EAAM,CACN,IAAIwrK,EAAS,GAAIzyL,EAAO,EAAqBksM,EAAOjlL,EACpD,QAASue,EAAM,IAAK,CAChB,GAAY,OAAR0mK,GAAiB1mK,EAAM,GAAKA,EAAM,GAAKve,EAAK9wB,OAAQ,CACpD6J,EAAO,EACP,MAEJ,IAAIwxB,EAAI,8BAA8BihC,KAAKy5I,GAC3C,IAAK16K,EACD,MAAM,IAAIu8G,WAAW,iBAAmB9mH,GAG5C,GAFAwrK,EAAOn4L,KAAa,KAARk3B,EAAE,GAAY,GAAgB,KAAXA,EAAE,GAAG,GAAYthB,KAAKiF,MAAMqc,EAAE,IAAMA,EAAE,IACrEgU,GAAOhU,EAAE,GAAGr7B,OACRqvC,GAAOve,EAAK9wB,OACZ,MACJ,IAAIqU,GAAOyc,EAAKue,KAChB,GAAIA,GAAOve,EAAK9wB,QAAkB,KAARqU,GAAa,CACnCxK,EAAO,EACP,MAEJ,GAAY,KAARwK,GACA,MAAM,IAAIujI,WAAW,iBAAmB9mH,GAC5CilL,EAAOjlL,EAAKxvB,MAAM+tC,EAAG,CAEzB,IAAIlgB,EAAOmtK,EAAOt8L,OAAS,EAAG44I,EAAQ0jD,EAAOntK,GAC7C,IAAKypH,EACD,MAAM,IAAIhB,WAAW,iBAAmB9mH,GAC5C,IAAIklL,EAAO,IAAIC,GAAKH,EAAMjsM,EAAMslB,EAAO,EAAImtK,EAAOh7L,MAAM,EAAG6tB,GAAQ,MACnE0mL,EAAOj9D,GAASo9D,EAAKzkL,KAAKskL,EAAOj9D,GAAM,EAGnD,OAAOs9D,GAAaryM,IAAIgyM,EAC5B,CACA,MAAMK,GAAe,IAAIhK,GACzB,MAAM+J,GACF76M,YAAY06M,EAAMjsM,EAAM4P,EAASpF,GAC7B9Y,KAAKu6M,KAAOA,EACZv6M,KAAKsO,KAAOA,EACZtO,KAAKke,QAAUA,EACfle,KAAK8Y,KAAOA,CAChB,CACI8hM,aAAW,OAAoB,GAAb56M,KAAKsO,IAA6B,CACpDusM,cAAY,OAAoB,GAAb76M,KAAKsO,IAA8B,CAC1D0nB,KAAKxb,GACD,OAAKA,GAASA,EAAM65L,MAAQr0M,KAAKq0M,OAC7Br0M,KAAK8Y,KAAO0B,EACLxa,OAEXwa,EAAM1B,KAAO9Y,KAAKg2B,KAAKxb,EAAM1B,MACtB0B,EACX,CACI65L,YAAU,OAAOr0M,KAAKke,QAAUle,KAAKke,QAAQzZ,OAAS,CAAG,EAQjE,SAASq2M,GAAeP,EAAM3+L,GAC1B,IAAIrU,EAAMoE,OAAOC,OAAO,MACxB,QAAS7E,KAASwzM,EACd,GAAKzgM,MAAM2C,QAAQ1V,EAAM2gK,KAGrB,QAASA,KAAO3gK,EAAM2gK,IAClBngK,EAAImgK,EAAIx8J,IAAMnE,EAAMg7J,WAHxBx6J,EAAIR,EAAM2gK,IAAIx8J,IAAMnE,EAAMg7J,MAKlC,IAAM88B,QAAOkc,MAAM,MAASn/L,GAAW,CAAC,EACxC,MAAO,CACH7U,MAAQwzM,IACJ,IAAIt2C,EAAM82C,EACV,QAASrzC,KAAO6yC,EACZ,QAASrvJ,KAAOw8G,EAAIlhK,IAAK,CACrB,IAAIw0M,EAAWzzM,EAAI2jD,EAAIhgD,IACvB,GAAI8vM,EAAU,CACV/2C,EAAMA,EAAMA,EAAM,IAAM+2C,EAAWA,EACnC,OAIZ,OAAO/2C,GAEX46B,QAER,CAgBA,SAASoc,GAAcnhL,EAAMohL,EAM7BC,EAIAphM,EAAO,EAIPm5G,EAAKp5F,EAAKr1B,QACN,IAAIqpE,EAAU,IAAIstI,GAAiBrhM,EAAMD,MAAM2C,QAAQy+L,GAAeA,EAAc,CAACA,GAAcC,GACnGrtI,EAAQutI,eAAevhL,EAAK2lH,SAAU1lI,EAAMm5G,EAAI,GAAIplD,EAAQwtI,cAC5DxtI,EAAQzkD,MAAM6pG,EAClB,CAlEAwnF,GAAK5zL,MAAQ,IAAI4zL,GAAK,GAAI,EAAqB,MAgG/C,MAAMU,GACFv7M,YAAY2vJ,EAAI8rD,EAAc1nD,GAC1B5zJ,KAAKwvJ,GAAKA,EACVxvJ,KAAKs7M,aAAeA,EACpBt7M,KAAK4zJ,KAAOA,EACZ5zJ,KAAK+hK,MAAQ,EACjB,CACAw5C,UAAU/rD,EAAIyU,GACNA,GAAOjkK,KAAK+hK,QACZ/hK,KAAKqpB,MAAMmmI,GACPA,EAAKxvJ,KAAKwvJ,KACVxvJ,KAAKwvJ,GAAKA,GACdxvJ,KAAK+hK,MAAQkC,EAErB,CACA56I,MAAM6pG,GACEA,EAAKlzH,KAAKwvJ,IAAMxvJ,KAAK+hK,OACrB/hK,KAAK4zJ,KAAK5zJ,KAAKwvJ,GAAIt8B,EAAIlzH,KAAK+hK,MACpC,CACAs5C,eAAe57D,EAAQ1lI,EAAMm5G,EAAIsoF,EAAgBF,GAC7C,IAAM3wM,OAAMoP,KAAMspE,EAAO6vC,GAAI1nH,GAAQi0I,EACrC,GAAIp8D,GAAS6vC,GAAM1nH,GAAOuO,EACtB,OACApP,EAAK6mM,QACL8J,EAAet7M,KAAKs7M,aAAavjM,OAAOqrK,KAAMA,GAAEyb,OAASzb,GAAEyb,MAAMl0L,KACrE,IAAIs5J,EAAMu3C,EACNf,EA4DZ,SAASgB,GAAa56M,GAClB,IAAI45M,EAAO55M,EAAK8J,KAAK0rB,KAAKskL,IAC1B,KAAOF,GAAQA,EAAKv8L,UAAYrd,EAAK61M,aAAa+D,EAAKv8L,UACnDu8L,EAAOA,EAAK3hM,KAChB,OAAO2hM,GAAQ,IACnB,CAjEmBgB,CAAah8D,IAAWi7D,GAAK5zL,MACpC40L,EA1FZ,SAASC,GAAcL,EAAcf,GACjC,IAAIjpM,EAAS,KACb,QAAS4pM,KAAeI,EAAc,CAClC,IAAIpvM,EAAQgvM,EAAYn0M,MAAMwzM,GAC1BruM,IACAoF,EAASA,EAASA,EAAS,IAAMpF,EAAQA,GAEjD,OAAOoF,CACX,CAkFqBqqM,CAAcL,EAAcb,EAAKF,MAS9C,GARImB,IACIz3C,IACAA,GAAO,KACXA,GAAOy3C,EACU,GAAbjB,EAAKnsM,OACLktM,IAAmBA,EAAiB,IAAM,IAAME,IAExD17M,KAAKu7M,UAAUrwL,KAAKC,IAAIpR,EAAMspE,GAAQ4gF,GAClCw2C,EAAKG,OACL,OACJ,IAAInQ,EAAUhrD,EAAO3lH,MAAQ2lH,EAAO3lH,KAAKzD,KAAKs6K,YAC9C,GAAIlG,GAAWA,EAAQ70I,QAAS,CAC5B,IAAIynF,GAAQoC,EAAO5+I,KAAKsyM,MAAM1I,EAAQ70I,QAAQ,GAAG77C,KAAOspE,EAAO,GAC3Du4H,GAAoB57M,KAAKs7M,aAAavjM,OAAOqrK,KAAMA,GAAEyb,OAASzb,GAAEyb,MAAM4L,EAAQ3wK,KAAKnvB,OACnFusM,GAAWz3D,EAAOv8G,aACtB,QAAS1+B,GAAI,EAAGsvC,GAAMuvC,GAAQ7+E,KAAK,CAC/B,IAAIsU,GAAOtU,GAAIimM,EAAQ70I,QAAQnxD,OAASgmM,EAAQ70I,QAAQpxD,IAAK,KACzD60M,GAAUvgM,GAAOA,GAAKiB,KAAOspE,EAAQ73E,EACrCqwM,GAAY3wL,KAAKC,IAAIpR,EAAM+5B,IAAMgoK,GAAU5wL,KAAK4lC,IAAIoiE,EAAImmF,IAC5D,GAAIwC,GAAYC,IAAW5E,GACvB,KAAOz3D,EAAO1lI,KAAO+hM,KACjB97M,KAAKq7M,eAAe57D,EAAQo8D,GAAWC,GAASN,EAAgBF,GAChEt7M,KAAKu7M,UAAUrwL,KAAK4lC,IAAIgrJ,GAASr8D,EAAOvsB,IAAK+wC,KACzCxkB,EAAOvsB,IAAMmmF,KAAY55D,EAAO1yI,iBAI5C,IAAK+L,IAAQugM,GAAUnmF,EACnB,MACJp/E,GAAMh7B,GAAKo6G,GAAK7vC,EACZvvC,GAAM/5B,IACN/Z,KAAKq7M,eAAeh+D,GAAMoC,SAAUv0H,KAAKC,IAAIpR,EAAMjB,GAAKiB,KAAOspE,GAAQn4D,KAAK4lC,IAAIoiE,EAAIp/E,IAAM,GAAI8nK,IAC9F57M,KAAKu7M,UAAUrwL,KAAK4lC,IAAIoiE,EAAIp/E,IAAMmwH,GAAG,CAGzCizC,IACAz3D,EAAOpzI,QAAM,SAEZozI,EAAOv8G,aAAc,CACtBunK,IACA+Q,EAAiB,IACrB,QACQ/7D,EAAOvsB,IAAMn5G,GAEjB,IAAI0lI,EAAO1lI,MAAQm5G,EACf,MACJlzH,KAAKq7M,eAAe57D,EAAQ1lI,EAAMm5G,EAAIsoF,EAAgBF,GACtDt7M,KAAKu7M,UAAUrwL,KAAK4lC,IAAIoiE,EAAIusB,EAAOvsB,IAAK+wC,EAAG,QACtCxkB,EAAO1yI,eAChB0yI,EAAOpzI,QAAM,CAErB,EAaJ,MAAMoP,GAAIs+L,GAAIlxD,OACR7pB,GAAUvjH,KAAKrY,GAAOqY,KAAKsgM,GAAWtgM,GAAErY,IAAOutE,GAAel1D,GAAErY,IAAO44M,GAAUvgM,KAAKkiI,GAASliI,GAAEugM,IAAUr8D,GAASlkI,GAAEugM,IAAUxvM,GAAUiP,KAAKwgM,GAAUxgM,GAAEjP,IAAU0vM,GAAUzgM,KAAKoQ,GAAWpQ,KAAK0gM,GAAc1gM,KAAK2gM,GAAU3gM,GAAE0gM,IAAcpsM,GAAO0L,KAqBxP8+L,GAAO,CAITv7E,WAIAq9E,YAAa5gM,GAAEujH,IAIfs9E,aAAc7gM,GAAEujH,IAIhBu9E,WAAY9gM,GAAEujH,IAId57H,KAAIo5M,GAIJ1oF,aAAcr4G,GAAErY,IAIhB24M,SAAUA,GAIV96M,QAASwa,GAAEsgM,IAIXprI,aAAcA,GAId8rI,cAAehhM,GAAEk1D,IAIjBkM,UAAWphE,GAAErY,IAIbs5M,UAAWjhM,GAAErY,IAIb2I,UAAW0P,GAAErY,IAIbu5M,UAAWlhM,GAAErY,IAIb44M,WAIAr+D,UAIAi/D,UAAWnhM,GAAEkiI,IAIbk/D,UAAWphM,GAAEkiI,IAIbm/D,eAAgBrhM,GAAEkiI,IAIlBgC,UAIAo9D,QAASthM,GAAEkkI,IAIXq9D,MAAOvhM,GAAEkkI,IAITs9D,KAAMxhM,GAAEugM,IAIR3X,OAAQ5oL,GAAEugM,IAKVkB,OAAQzhM,GAAEugM,IAIV5kG,MAAO37F,GAAEugM,IAITv5M,IAAKgZ,GAAEugM,IAIPE,WAKAiB,KAAM1hM,GAAEygM,IAIRkB,KAAM3hM,GAAEygM,IAIRmB,KAAM5hM,GAAEygM,IAIR/8I,KAAM1jD,GAAEygM,IAIRoB,SAAU7hM,GAAEygM,IAIZqB,gBAAiB9hM,GAAEygM,IAInBsB,eAAgB/hM,GAAEygM,IAIlBuB,kBAAmBhiM,GAAEygM,IAKrBwB,cAAejiM,GAAEygM,IAIjBrwL,YAIA8xL,cAAeliM,GAAEoQ,IAIjB+xL,mBAAoBniM,GAAEoQ,IAItBgyL,cAAepiM,GAAEoQ,IAIjBiyL,gBAAiBriM,GAAEoQ,IAInBkyL,gBAAiBtiM,GAAEoQ,IAInBmyL,eAAgBviM,GAAEoQ,IAIlBoyL,mBAAoBxiM,GAAEoQ,IAItBqyL,aAAcziM,GAAEoQ,IAIhBsyL,gBAAiB1iM,GAAEoQ,IAInBswL,eAKA94I,UAAW5nD,GAAE0gM,IAIbC,WAKAgC,aAAc3iM,GAAE2gM,IAKhBiC,cAAe5iM,GAAE2gM,IAKjBkC,MAAO7iM,GAAE2gM,IAKTmC,MAAO9iM,GAAE2gM,IAIT5vM,WAIAyvM,WAIAuC,SAAU/iM,GAAEwgM,IAIZwC,SAAUhjM,GAAEwgM,IAIZyC,SAAUjjM,GAAEwgM,IAIZ0C,SAAUljM,GAAEwgM,IAIZ2C,SAAUnjM,GAAEwgM,IAIZ4C,SAAUpjM,GAAEwgM,IAIZ6C,iBAAkBrjM,GAAEjP,IAIpBgQ,KAAMf,GAAEjP,IAIRuyM,MAAOtjM,GAAEjP,IAITwyM,SAAUvjM,GAAEjP,IAIZyyM,OAAQxjM,GAAEjP,IAIV0sH,KAAMz9G,GAAEjP,IAKR0yM,UAAWzjM,GAAEjP,IAKb2yM,cAAe1jM,GAAEjP,IAIjBm2I,SAAUlnI,KAIV2jM,QAAS3jM,KAIT0sI,QAAS1sI,KAIT4jM,QAAS5jM,KAIT1L,QAKAuvM,aAAc7jM,GAAE1L,IAKhBo8I,WAAY1wI,GAAE1L,IAKdwvM,sBAAuB9jM,GAAE1L,IAMzByvM,WAAYzF,GAAI0F,iBAMhBC,SAAU3F,GAAI0F,iBAOdE,SAAU5F,GAAI0F,iBAMdG,SAAU7F,GAAI0F,iBAKd9oD,MAAOojD,GAAI0F,iBASXI,QAAS9F,GAAI0F,kBChyBjB,IAAIz4D,GDk1BqB8zD,GAAe,CACpC,CAAEpzC,IAAK6yC,GAAKrhF,KAAM6oC,MAAO,YACzB,CAAE2F,IAAK6yC,GAAK0B,QAASl6C,MAAO,eAC5B,CAAE2F,IAAK6yC,GAAKyE,SAAUj9C,MAAO,gBAC7B,CAAE2F,IAAK6yC,GAAK0E,OAAQl9C,MAAO,cAC3B,CAAE2F,IAAK6yC,GAAK2B,QAASn6C,MAAO,eAC5B,CAAE2F,IAAK6yC,GAAK8C,KAAMt7C,MAAO,YACzB,CAAE2F,IAAK6yC,GAAK0C,KAAMl7C,MAAO,YACzB,CAAE2F,IAAK6yC,GAAK93M,IAAKs/J,MAAO,WACxB,CAAE2F,IAAK6yC,GAAKmC,UAAW36C,MAAO,iBAC9B,CAAE2F,IAAK6yC,GAAK53D,SAAUof,MAAO,gBAC7B,CAAE2F,IAAK6yC,GAAK6E,QAASr9C,MAAO,eAC5B,CAAE2F,IAAK6yC,GAAKyB,QAASj6C,MAAO,eAC5B,CAAE2F,IAAK6yC,GAAK58D,OAAQokB,MAAO,cAC3B,CAAE2F,IAAK6yC,GAAK56D,OAAQoiB,MAAO,cAC3B,CAAE2F,IAAK,CAAC6yC,GAAKlW,OAAQkW,GAAK2C,OAAQ3C,GAAKsF,QAAQtF,GAAK58D,SAAUokB,MAAO,eACrE,CAAE2F,IAAK6yC,GAAKzmF,aAAciuC,MAAO,oBACjC,CAAE2F,IAAK6yC,GAAK5jD,MAAM4jD,GAAKzmF,cAAeiuC,MAAO,8BAC7C,CAAE2F,IAAK6yC,GAAKiF,WAAWjF,GAAKzmF,cAAeiuC,MAAO,mCAClD,CAAE2F,IAAK6yC,GAAKsF,QAAQtF,GAAKzmF,cAAeiuC,MAAO,qBAC/C,CAAE2F,IAAK6yC,GAAKiF,WAAWjF,GAAK5pI,cAAeoxF,MAAO,mCAClD,CAAE2F,IAAK6yC,GAAKwB,SAAUh6C,MAAO,gBAC7B,CAAE2F,IAAK6yC,GAAKxuM,UAAWg2J,MAAO,iBAC9B,CAAE2F,IAAK6yC,GAAK19H,UAAWklF,MAAO,iBAC9B,CAAE2F,IAAK6yC,GAAKoC,UAAW56C,MAAO,iBAC9B,CAAE2F,IAAK6yC,GAAK5pI,aAAcoxF,MAAO,oBACjC,CAAE2F,IAAK6yC,GAAK1uL,SAAUk2I,MAAO,gBAC7B,CAAE2F,IAAK6yC,GAAKv7E,QAAS+iC,MAAO,eAC5B,CAAE2F,IAAK6yC,GAAKxqM,KAAMgyJ,MAAO,YACzB,CAAE2F,IAAK6yC,GAAK8E,QAASt9C,MAAO,eAC5B,CAAE2F,IAAK6yC,GAAK4B,YAAap6C,MAAO,qBC32BpC,MAAM+9C,GAAgC,IAAInP,GAkB1C,MAAMoP,GAA+B,IAAIpP,GACzC,IASMqP,GAAQ,MAAd,MAAMA,EAQFngN,YAKA6L,EAAM0lM,EAAQ6O,EAAkB,GAIhC78M,EAAO,IACHpD,KAAK0L,KAAOA,EACZ1L,KAAKoD,KAAOA,EAIPgrJ,4BAAqC,SACtCziJ,OAAOo/C,eAAeqjG,aAAuB,OAAQ,CAAEpqJ,MAAQ,OAAOk8M,GAAWlgN,KAAO,IAC5FA,KAAKoxM,OAASA,EACdpxM,KAAKmpJ,UAAY,CACbg3D,GAAS9oM,GAAGrX,MACZouJ,mBAA4B,CAAC1lI,EAAOorB,EAAKu7G,KACrC,IAAI9P,EAAM6gE,GAAU13L,EAAOorB,EAAKu7G,GAAO3jJ,EAAO6zI,EAAI50I,KAAK0rB,KAAKypL,IAC5D,IAAKp0M,EACD,MAAO,GACX,IAAIgP,EAAOgO,EAAMm+H,MAAMn7I,GAAOw/C,EAAMq0F,EAAI50I,KAAK0rB,KAAK0pL,IAClD,GAAI70J,EAAK,CACL,IAAIm1J,GAAY9gE,EAAI7oH,QAAQod,EAAMyrG,EAAIxlI,KAAMs1I,GAC5C,QAASixD,MAAWp1J,EAChB,GAAIo1J,GAAQn9L,KAAKk9L,GAAW33L,GAAQ,CAChC,IAAIhd,GAAOgd,EAAMm+H,MAAMy5D,GAAQz5D,OAC/B,MAAuB,WAAhBy5D,GAAQ31M,KAAoBe,GAAOA,GAAK+O,OAAOC,EAAI,EAGtE,OAAOA,KAEbD,OAAOwlM,EACb,CAIAM,WAAW73L,EAAOorB,EAAKu7G,GAAO,GAC1B,OAAO+wD,GAAU13L,EAAOorB,EAAKu7G,GAAM1kJ,KAAK0rB,KAAKypL,KAAqB9/M,KAAK0L,IAC3E,CAMA80M,YAAY93L,GACR,IAAI0kC,EAAO1kC,EAAMm+H,MAAMs5D,IACvB,GAAiD/yJ,GAAK1hD,MAAS1L,KAAK0L,KAChE,MAAO,CAAC,CAAEqO,KAAM,EAAGm5G,GAAIxqG,EAAMxnB,IAAIuD,SACrC,IAAK2oD,IAASA,EAAKqzJ,cACf,MAAO,GACX,IAAInvM,EAAS,GACTovM,EAAU,CAAC5mL,EAAM/f,KACjB,GAAI+f,EAAKzD,KAAKypL,KAAqB9/M,KAAK0L,KAEpC,YADA4F,EAAO1I,KAAK,CAAEmR,OAAMm5G,GAAIn5G,EAAO+f,EAAKr1B,SAGxC,IAAIyyJ,EAAQp9H,EAAKzD,KAAKs6K,YACtB,GAAIz5C,GACA,GAAIA,EAAMp9H,KAAKzD,KAAKypL,KAAqB9/M,KAAK0L,KAAM,CAChD,GAAIwrJ,EAAMthG,QACN,QAAShgD,KAAKshJ,EAAMthG,QAChBtkD,EAAO1I,KAAK,CAAEmR,KAAMnE,EAAEmE,KAAOA,EAAMm5G,GAAIt9G,EAAEs9G,GAAKn5G,SAElDzI,EAAO1I,KAAK,CAAEmR,KAAMA,EAAMm5G,GAAIn5G,EAAO+f,EAAKr1B,SAC9C,UAEKyyJ,EAAMthG,QAAS,CACpB,IAAIwP,EAAO9zD,EAAO7M,OAElB,GADAi8M,EAAQxpD,EAAMp9H,KAAMo9H,EAAMthG,QAAQ,GAAG77C,KAAOA,GACxCzI,EAAO7M,OAAS2gE,EAChB,QAGZ,QAAS5gE,EAAI,EAAGA,EAAIs1B,EAAKvC,SAAS9yB,OAAQD,IAAK,CAC3C,IAAIs6I,EAAKhlH,EAAKvC,SAAS/yB,GACnBs6I,aAAcj8G,IACd69K,EAAQ5hE,EAAIhlH,EAAKy4K,UAAU/tM,GAAKuV,EAAI,GAGhD2mM,SAAQR,GAAWx3L,GAAQ,GACpBpX,CACX,CAKImvM,oBAAkB,OAAO,CAAM,EAKvCT,SAASvlB,SAAwBnvC,YAvG3B00D,CAAQ,KAwGd,SAASI,GAAU13L,EAAOorB,EAAKu7G,GAC3B,IAAIsxD,EAAUj4L,EAAMm+H,MAAMs5D,IAAWrmL,EAAOomL,GAAWx3L,GAAO+pL,QAC9D,IAAKkO,GAAWA,EAAQF,cACpB,QAAS5/M,EAAOi5B,EAAMj5B,EAAMA,EAAOA,EAAKsyM,MAAMr/J,EAAKu7G,EAAM6iD,mBACjDrxM,EAAK8J,KAAK6mM,QACV13K,EAAOj5B,GAEnB,OAAOi5B,CACX,CAmCA,SAASomL,GAAWx3L,GAChB,IAAIi+H,EAAQj+H,EAAMi+H,MAAMq5D,GAASt3L,OAAO,GACxC,OAAOi+H,EAAQA,EAAM7sH,KAAO+I,QAChC,CA0DA,MAAM+9K,GAIF/gN,YAAYqB,GACRlB,KAAKkB,IAAMA,EACXlB,KAAK6jM,UAAY,EACjB7jM,KAAK29I,OAAS,GACd39I,KAAKy/I,OAASv+I,EAAI87I,MACtB,CACIv4I,aAAW,OAAOzE,KAAKkB,IAAIuD,MAAQ,CACvCo8M,OAAO/sK,GACH,YAAK6pG,OAAS39I,KAAKy/I,OAAO3mI,KAAKg7B,EAAM9zC,KAAK6jM,WAAW33L,MACrDlM,KAAK6jM,UAAY/vJ,EAAM9zC,KAAK29I,OAAOl5I,OAC5BzE,KAAK6jM,UAAY7jM,KAAK29I,OAAOl5I,MACxC,CACAs6I,MAAMjrG,GACF,YAAK+sK,OAAO/sK,GACL9zC,KAAK29I,MAChB,CACIk8D,iBAAe,OAAO,CAAM,CAChCh5B,KAAK9mK,EAAMm5G,GACP,IAAI4tF,EAAc9gN,KAAK6jM,UAAY7jM,KAAK29I,OAAOl5I,OAC/C,OAAIsV,EAAO+mM,GAAe5tF,GAAMlzH,KAAK6jM,UAC1B7jM,KAAKkB,IAAIq8I,YAAYxjI,EAAMm5G,GAE3BlzH,KAAK29I,OAAO53I,MAAMgU,EAAO+mM,EAAa5tF,EAAK4tF,EAC1D,EAEJ,IAAIC,GAAiB,KAIrB,MAAMC,GACFnhN,YAAYuxM,EAIZ1oL,EAIAowL,EAAY,GAIZh/K,EAIAmnL,EASA3vC,EAIAggC,EAMA4P,GACIlhN,KAAKoxM,OAASA,EACdpxM,KAAK0oB,MAAQA,EACb1oB,KAAK84M,UAAYA,EACjB94M,KAAK85B,KAAOA,EACZ95B,KAAKihN,QAAUA,EACfjhN,KAAKsxK,SAAWA,EAChBtxK,KAAKsxM,QAAUA,EACftxM,KAAKkhN,WAAaA,EAClBlhN,KAAKyjB,MAAQ,KAIbzjB,KAAKmhN,YAAc,EACvB,CAIAhhN,cAAcixM,EAAQ1oL,EAAO4oJ,GACzB,OAAO,IAAI0vC,GAAa5P,EAAQ1oL,EAAO,GAAIma,SAAY,EAAGyuI,EAAU,GAAI,KAC5E,CACAmoC,aACI,OAAOz5M,KAAKoxM,OAAOqI,WAAW,IAAImH,GAAS5gN,KAAK0oB,MAAMxnB,KAAMlB,KAAK84M,UACrE,CAIArwL,KAAK24L,EAAO73C,GAGR,OAFY,MAARA,GAAgBA,GAAQvpK,KAAK0oB,MAAMxnB,IAAIuD,SACvC8kK,OAAOt7J,GACPjO,KAAK85B,MAAQ+I,UAAc7iC,KAAKqhN,OAAO93C,GAA0CvpK,KAAK0oB,MAAMxnB,IAAIuD,SAChGzE,KAAKshN,YACE,GAEJthN,KAAKuhN,YAAY,KACpB,IAAIv6D,EACJ,GAAoB,iBAATo6D,EAAmB,CAC1B,IAAIv6I,EAAU99C,KAAKD,MAAQs4L,EAC3BA,EAAQ,IAAMr4L,KAAKD,MAAQ+9C,EAO/B,IALK7mE,KAAKyjB,QACNzjB,KAAKyjB,MAAQzjB,KAAKy5M,cACV,MAARlwC,IAAyC,MAAxBvpK,KAAKyjB,MAAM+9L,WAAqBxhN,KAAKyjB,MAAM+9L,UAAYj4C,IACxEA,EAAOvpK,KAAK0oB,MAAMxnB,IAAIuD,QACtBzE,KAAKyjB,MAAMmyL,OAAOrsC,KACb,CACL,IAAI/nG,EAAOxhE,KAAKyjB,MAAMm2L,UACtB,GAAIp4I,EAKA,IAJAxhE,KAAK84M,UAAY94M,KAAKyhN,mBAAmB5I,WAAqBr3I,EAAMxhE,KAAK84M,UAAmC,MAAxB94M,KAAKyjB,MAAM+9L,YAC/FxhN,KAAKihN,QAA0C,QAA/Bj6D,EAAKhnJ,KAAKyjB,MAAM+9L,iBAA8B,IAAPx6D,EAAgBA,EAAKhnJ,KAAK0oB,MAAMxnB,IAAIuD,OAC3FzE,KAAK85B,KAAO0nC,EACZxhE,KAAKyjB,MAAQ,OACTzjB,KAAKihN,SAAW13C,GAA0CvpK,KAAK0oB,MAAMxnB,IAAIuD,SAGzE,OAAO,EAFPzE,KAAKyjB,MAAQzjB,KAAKy5M,YAEX,CAEf,GAAI2H,IACA,OAAO,IAGvB,CAIAE,WACI,IAAIxtK,EAAKha,EACL95B,KAAKyjB,QAAUqwB,EAAM9zC,KAAKyjB,MAAMi+L,YAAc1hN,KAAKihN,WACvB,MAAxBjhN,KAAKyjB,MAAM+9L,WAAqBxhN,KAAKyjB,MAAM+9L,UAAY1tK,IACvD9zC,KAAKyjB,MAAMmyL,OAAO9hK,GACtB9zC,KAAKuhN,YAAY,KAAQ,OAASznL,EAAO95B,KAAKyjB,MAAMm2L,aAAY,GAChE55M,KAAKihN,QAAUntK,EACf9zC,KAAK85B,KAAOA,EACZ95B,KAAK84M,UAAY94M,KAAKyhN,mBAAmB5I,WAAqB74M,KAAK85B,KAAM95B,KAAK84M,WAAW,IACzF94M,KAAKyjB,MAAQ,KAErB,CACA89L,YAAYngK,GACR,IAAIklD,EAAOy6G,GACXA,GAAiB/gN,KACjB,IACI,OAAOohD,GAIX,CAHA,QAEI2/J,GAAiBz6G,CACrB,CACJ,CACAm7G,mBAAmB3I,GACf,QAASljM,EAAGA,EAAI5V,KAAKmhN,YAAYnwM,OAC7B8nM,EAAY6I,GAAa7I,EAAWljM,EAAEmE,KAAMnE,EAAEs9G,IAClD,OAAO4lF,CACX,CAIAnwK,QAAQA,EAASoyJ,GACb,IAAM+d,YAAWh/K,OAAMmnL,UAAS3vC,WAAUggC,WAAYtxM,KAEtD,GADAA,KAAKshN,YACA34K,EAAQ7hB,MAAO,CAChB,IAAIq8H,EAAS,GAMb,GALAx6G,EAAQi5G,kBAAkB,CAACgB,EAAOC,EAAKC,EAAO+qB,IAAQ1qB,EAAOv6I,KAAK,CAAEg6I,QAAOC,MAAKC,QAAO+qB,SACvFirC,EAAYD,gBAA0BC,EAAW31D,GACjDrpH,EAAO+I,SACPo+K,EAAU,EACV3vC,EAAW,CAAEv3J,KAAM4uB,EAAQ05G,OAAOivB,EAASv3J,MAAM,GAAKm5G,GAAIvqF,EAAQ05G,OAAOivB,EAASp+C,GAAI,IAClFlzH,KAAKsxM,QAAQ7sM,OAAQ,CACrB6sM,EAAU,GACV,QAAS17L,KAAK5V,KAAKsxM,QAAS,CACxB,IAAIv3L,EAAO4uB,EAAQ05G,OAAOzsI,EAAEmE,KAAM,GAAIm5G,EAAKvqF,EAAQ05G,OAAOzsI,EAAEs9G,IAAI,GAC5Dn5G,EAAOm5G,GACPo+E,EAAQ1oM,KAAK,CAAEmR,OAAMm5G,MAAI,GAIzC,OAAO,IAAI8tF,GAAahhN,KAAKoxM,OAAQrW,EAAU+d,EAAWh/K,EAAMmnL,EAAS3vC,EAAUggC,EAAStxM,KAAKkhN,WACrG,CAIAU,eAAetwC,GACX,GAAItxK,KAAKsxK,SAASv3J,MAAQu3J,EAASv3J,MAAQ/Z,KAAKsxK,SAASp+C,IAAMo+C,EAASp+C,GACpE,OAAO,EACXlzH,KAAKsxK,SAAWA,EAChB,IAAIuwC,EAAW7hN,KAAKsxM,QAAQ7sM,OAC5B,QAASD,EAAI,EAAGA,EAAIxE,KAAKsxM,QAAQ7sM,OAAQD,IAAK,CAC1C,IAAMuV,OAAMm5G,MAAOlzH,KAAKsxM,QAAQ9sM,GAC5BuV,EAAOu3J,EAASp+C,IAAMA,EAAKo+C,EAASv3J,OACpC/Z,KAAK84M,UAAY6I,GAAa3hN,KAAK84M,UAAW/+L,EAAMm5G,GACpDlzH,KAAKsxM,QAAQngM,OAAO3M,IAAK,GAAC,CAGlC,QAAIxE,KAAKsxM,QAAQ7sM,QAAUo9M,IAE3B7hN,KAAK+vD,QACE,GACX,CAIAA,QACQ/vD,KAAKyjB,QACLzjB,KAAKshN,WACLthN,KAAKyjB,MAAQ,KAErB,CAMAq+L,gBAAgB/nM,EAAMm5G,GAClBlzH,KAAKsxM,QAAQ1oM,KAAK,CAAEmR,OAAMm5G,MAC9B,CAUA/yH,yBAAyBihN,GACrB,OAAO,IAAI,cAAc5H,GACrBG,YAAYxyL,EAAO2xL,EAAW31D,GAC1B,IAAIppI,EAAOopI,EAAO,GAAGppI,KAAMm5G,EAAKiwB,EAAOA,EAAO1+I,OAAS,GAAGyuH,GAiB1D,MAhBa,CACTwuF,UAAW3nM,EACX6/L,UACI,IAAI1K,EAAK6R,GACT,GAAI7R,EAAI,CACJ,QAASt5L,KAAKutI,EACV+rD,EAAGiS,YAAYv4M,KAAKgN,GACpBwrM,IACAlS,EAAGgS,WAAahS,EAAGgS,WAAazqL,QAAQskL,IAAI,CAAC7L,EAAGgS,WAAYE,IAAUA,GAE9E,YAAKM,UAAYxuF,EACV,IAAIrwF,GAAKguK,QAAe,GAAI,GAAI39E,EAAKn5G,EAChD,EACAynM,UAAW,KACX5L,SAAW,EAGnB,EAER,CAIAyL,OAAO93C,GACHA,EAAOr+I,KAAK4lC,IAAIy4G,EAAMvpK,KAAK0oB,MAAMxnB,IAAIuD,QACrC,IAAIs9M,EAAQ/hN,KAAK84M,UACjB,OAAO94M,KAAKihN,SAAW13C,GAAQw4C,EAAMt9M,QAA2B,GAAjBs9M,EAAM,GAAGhoM,MAAagoM,EAAM,GAAG7uF,IAAMq2C,CACxF,CAKAppK,aAAe,OAAO4gN,EAAgB,EAE1C,SAASY,GAAa7I,EAAW/+L,EAAMm5G,GACnC,OAAO2lF,gBAA0BC,EAAW,CAAC,CAAEl2D,MAAO7oI,EAAM8oI,IAAK3vB,EAAI4vB,MAAO/oI,EAAM8zJ,IAAK36C,IAC3F,CACA,MAAM8uF,GACFniN,YAGAqe,GACIle,KAAKke,QAAUA,EACfle,KAAK85B,KAAO5b,EAAQ4b,IACxB,CACAlJ,MAAM02H,GACF,IAAKA,EAAGC,YAAcvnJ,KAAK85B,MAAQ95B,KAAKke,QAAQ4b,KAC5C,OAAO95B,KACX,IAAIiiN,EAAQjiN,KAAKke,QAAQyqB,QAAQ2+G,EAAG3+G,QAAS2+G,EAAG5+H,OAI5C6gJ,EAAOvpK,KAAKke,QAAQ+iM,SAAW35D,EAAGuE,WAAW3qJ,IAAIuD,YAASwJ,EACxDid,KAAKC,IAAIm8H,EAAG3+G,QAAQ05G,OAAOriJ,KAAKke,QAAQ+iM,SAAUgB,EAAM3wC,SAASp+C,IACvE,OAAK+uF,EAAMx5L,KAAK,GAAqB8gJ,IACjC04C,EAAMX,WACH,IAAIU,GAAcC,EAC7B,CACA9hN,YAAYuoB,GACR,IAAIw5L,EAAOh3L,KAAK4lC,IAAI,IAA8BpoC,EAAMxnB,IAAIuD,QACxD09M,EAAanB,GAAap1M,OAAO8c,EAAMm+H,MAAMs5D,IAAU/O,OAAQ1oL,EAAO,CAAE3O,KAAM,EAAGm5G,GAAIgvF,IACzF,OAAKC,EAAW15L,KAAK,GAAqBy5L,IACtCC,EAAWb,WACR,IAAIU,GAAcG,EAC7B,EAEJnC,GAASt3L,MAAqBu/H,UAAkB,CAC5Cr8I,OAAQo2M,GAAcnoM,KACtBS,OAAOpO,EAAOo7I,GACV,QAASn/I,KAAKm/I,EAAGmE,QACb,GAAItjJ,EAAEghF,GAAG62H,GAASvlB,UACd,OAAOtyL,EAAE+D,MACjB,OAAIo7I,EAAGuE,WAAWhF,MAAMs5D,KAAa74D,EAAG5+H,MAAMm+H,MAAMs5D,IACzC6B,GAAcnoM,KAAKytI,EAAG5+H,OAC1Bxc,EAAM0kB,MAAM02H,EACvB,IAEJ,IAAI86D,GAAep0M,IACf,IAAIqrD,EAAUzY,WAAW,IAAM5yC,IAAY,KAC3C,MAAO,IAAMorD,aAAaC,EAAO,SAE1BgpJ,oBAAuB,MAC9BD,GAAep0M,IACX,IAAIs0M,GAAO,EAAIjpJ,EAAUzY,WAAW,KAChC0hK,EAAOD,oBAAoBr0M,EAAU,CAAEqrD,QAAS,KAAmD,EACpG,KACH,MAAO,IAAMipJ,EAAO,EAAIlpJ,aAAaC,GAAWkpJ,mBAAmBD,EAAI,GAE/E,MAAME,UAAwBv/M,UAAa,KAAgD,QAA/B+jJ,GAAK/jJ,UAAUw/M,kBAA+B,IAAPz7D,IAAyBA,GAAGw7D,eACzH,IAAMv/M,UAAUw/M,WAAWD,iBAAmB,KAC9CE,GAA2Bp2C,aAAqB,MAClDzsK,YAAY88J,GACR38J,KAAK28J,KAAOA,EACZ38J,KAAK2iN,QAAU,KACf3iN,KAAK4iN,cAAgB,EAErB5iN,KAAKuxJ,UAAW,EAEhBvxJ,KAAK6iN,aAAc,EACnB7iN,KAAKyoB,KAAOzoB,KAAKyoB,KAAKqB,KAAK9pB,MAC3BA,KAAK8iN,cACT,CACAxoM,OAAOA,GACH,IAAI40L,EAAKlvM,KAAK28J,KAAKj0I,MAAMi+H,MAAMq5D,GAASt3L,OAAOxK,SAC3CgxL,EAAG0S,eAAetnM,EAAOqiJ,KAAK2U,WAAatxK,KAAK28J,KAAK2U,SAASp+C,GAAKg8E,EAAG+R,UACtEjhN,KAAK8iN,gBACLxoM,EAAOitI,YAAcjtI,EAAOm0J,gBACxBzuK,KAAK28J,KAAKwe,WACVn7K,KAAK6iN,aAAe,IACxB7iN,KAAK8iN,gBAET9iN,KAAK+iN,mBAAmB7T,EAC5B,CACA4T,eACI,GAAI9iN,KAAK2iN,QACL,OACJ,IAAMj6L,SAAU1oB,KAAK28J,KAAMhW,EAAQj+H,EAAMi+H,MAAMq5D,GAASt3L,QACpDi+H,EAAM7sH,MAAQ6sH,EAAMzoI,QAAQ4b,OAAS6sH,EAAMzoI,QAAQmjM,OAAO34L,EAAMxnB,IAAIuD,WACpEzE,KAAK2iN,QAAUP,GAAYpiN,KAAKyoB,MACxC,CACAA,KAAKu6L,GACDhjN,KAAK2iN,QAAU,KACf,IAAI75L,EAAMC,KAAKD,MAKf,GAJI9oB,KAAKuxJ,SAAWzoI,IAAQ9oB,KAAKuxJ,SAAW,GAAKvxJ,KAAK28J,KAAKwe,YACvDn7K,KAAKuxJ,SAAWzoI,EAAM,IACtB9oB,KAAK6iN,YAAc,KAEnB7iN,KAAK6iN,aAAe,EACpB,OACJ,IAAMn6L,QAAO4oJ,UAAYp+C,GAAIgvF,IAAWliN,KAAK28J,KAAMhW,EAAQj+H,EAAMi+H,MAAMq5D,GAASt3L,OAChF,GAAIi+H,EAAM7sH,MAAQ6sH,EAAMzoI,QAAQ4b,MAAQ6sH,EAAMzoI,QAAQmjM,OAAOa,EAAO,KAChE,OACJ,IAAIr7I,EAAU99C,KAAKD,MAAQoC,KAAK4lC,IAAI9wD,KAAK6iN,YAAa,IAAsBG,IAAaR,GAAiBt3L,KAAKC,IAAI,GAAwB63L,EAASC,gBAAkB,GAAK,KACvKC,EAAgBv8D,EAAMzoI,QAAQ+iM,QAAUiB,GAAQx5L,EAAMxnB,IAAIuD,OAASy9M,EAAO,IAC1E1gJ,EAAOmlF,EAAMzoI,QAAQuK,KAAK,IACnB+5L,IAAkBA,MAAoBz5L,KAAKD,MAAQ+9C,EAC3Dq7I,GAAQgB,EAAgB,EAAI,MAC/BljN,KAAK6iN,aAAe95L,KAAKD,MAAQA,GAC7B04C,GAAQxhE,KAAK6iN,aAAe,KAC5Bl8D,EAAMzoI,QAAQojM,WACdthN,KAAK28J,KAAKvyI,SAAS,CAAEqhI,QAASu0D,GAASvlB,SAASpjL,GAAG,IAAI2qM,GAAcr7D,EAAMzoI,aAE3Ele,KAAK6iN,YAAc,KAAOrhJ,IAAS0hJ,IACnCljN,KAAK8iN,eACT9iN,KAAK+iN,mBAAmBp8D,EAAMzoI,QAClC,CACA6kM,mBAAmB7T,GACXA,EAAGgS,aACHlhN,KAAK4iN,gBACL1T,EAAGgS,WACE/8M,KAAK,IAAMnE,KAAK8iN,gBAChBhhK,MAAMlpC,GAAOqzJ,GAAajsK,KAAK28J,KAAKj0I,MAAO9P,IAC3CzU,KAAK,IAAMnE,KAAK4iN,iBACrB1T,EAAGgS,WAAa,KAExB,CACAp1M,UACQ9L,KAAK2iN,SACL3iN,KAAK2iN,SACb,CACAQ,YACI,SAAUnjN,KAAK2iN,SAAW3iN,KAAK4iN,cAAgB,EACnD,GACD,CACCl2C,cAAe,CAAEhS,QAAU16J,KAAK8iN,cAAgB,KAQ9C3C,GAAwBn6D,UAAa,CACvCC,QAAQm9D,GAAoBA,EAAU3+M,OAAS2+M,EAAU,GAAK,KAC9Dh9D,QAAS+5D,GAAY,CACjBH,GAASt3L,MACTg6L,GACArpB,6BAAqC,CAAC8mB,GAAWz3L,IAC7C,IAAI0kC,EAAO1kC,EAAMm+H,MAAMs5D,GACvB,OAAO/yJ,GAAQA,EAAKhqD,KAAO,CAAE,gBAAiBgqD,EAAKhqD,MAAS,CAAC,OA2InEigN,GAA6Br9D,YAM7Bs9D,GAA0Bt9D,UAAa,CACzCC,QAAStsI,IACL,IAAKA,EAAOlV,OACR,MAAO,KACX,IAAI06D,EAAOxlD,EAAO,GAClB,IAAKwlD,GAAQ,KAAKh8C,KAAKg8C,IAASrlD,MAAMC,KAAKolD,GAAMvvB,KAAKznC,GAAKA,GAAKg3D,EAAK,IACjE,MAAM,IAAI14D,MAAM,wBAA0B+X,KAAKC,UAAU9E,EAAO,KACpE,OAAOwlD,KASf,SAASokJ,GAAc76L,GACnB,IAAIy2C,EAAOz2C,EAAMm+H,MAAMy8D,IACvB,OAA6B,GAAtBnkJ,EAAKohF,WAAW,GAAU73H,EAAMumI,QAAU9vF,EAAK16D,OAAS06D,EAAK16D,MACxE,CAOA,SAAS++M,GAAa96L,EAAO+6L,GACzB,IAAInyM,EAAS,GAAIoyM,EAAKh7L,EAAMumI,QAASnQ,EAAKp2H,EAAMm+H,MAAMy8D,IAAY,GAClE,GAAU,MAANxkE,EAAY,CACZ,KAAO2kE,GAAQC,GACXpyM,GAAU,KACVmyM,GAAQC,EAEZ5kE,EAAK,IAET,QAASt6I,EAAI,EAAGA,EAAIi/M,EAAMj/M,IACtB8M,GAAUwtI,EACd,OAAOxtI,CACX,CAUA,SAASqyM,GAAezlM,EAAS41B,GACzB51B,aAAmBkwI,KACnBlwI,EAAU,IAAI0lM,GAAc1lM,IAChC,QAAS8sH,KAAW9sH,EAAQwK,MAAMm+H,MAAMw8D,IAAgB,CACpD,IAAI/xM,EAAS05H,EAAQ9sH,EAAS41B,GAC9B,QAAe7lC,IAAXqD,EACA,OAAOA,EAEf,IAAIwoB,EAAOomL,GAAWhiM,EAAQwK,OAC9B,OAAOoR,EAAKr1B,QAAUqvC,EAkI1B,SAAS+vK,GAAkB3U,EAAIlpI,EAAKlyB,GAChC,IAAI8Y,EAAQoZ,EAAI8sI,aAAah/J,GACzBupG,EAAQzwF,EAAM/rD,KAAK+1M,2BAA2B9iK,GAClD,GAAIupG,GAASzwF,EAAM/rD,KAAM,CACrB,IAAIyH,EAAM,GACV,QAASqpJ,EAAMtU,EAAOsU,GAAO/kG,EAAM/rD,KAAM8wJ,EAAMA,EAAItlJ,OAC/C/D,EAAIM,KAAK+oJ,GACb,QAASntJ,EAAI8D,EAAI7D,OAAS,EAAGD,GAAK,EAAGA,IACjCooD,EAAQ,CAAE/rD,KAAMyH,EAAI9D,GAAIsU,KAAM8zC,EAAM,CAE5C,OAAOk3J,GAAUl3J,EAAOsiJ,EAAIp7J,EAChC,CA7IgC+vK,CAAkB3lM,EAAS4b,EAAMga,GAAO,IACxE,CAgCA,MAAM8vK,GAIF/jN,YAIA6oB,EAIA9M,EAAU,CAAC,GACP5b,KAAK0oB,MAAQA,EACb1oB,KAAK4b,QAAUA,EACf5b,KAAKm/D,KAAOokJ,GAAc76L,EAC9B,CASA0zH,OAAOtoG,EAAK0pH,EAAO,GACf,IAAIlkJ,EAAOtZ,KAAK0oB,MAAMxnB,IAAIk7I,OAAOtoG,IAC3BiwK,gBAAeC,uBAAwBhkN,KAAK4b,QAClD,OAAqB,MAAjBmoM,GAAyBA,GAAiBzqM,EAAKS,MAAQgqM,GAAiBzqM,EAAK45G,GACzE8wF,GAAuBD,GAAiBjwK,EACjC,CAAEpwB,KAAM,GAAI3J,KAAM+5B,IACpB0pH,EAAO,EAAIumD,EAAgBjwK,EAAMiwK,GAAiBjwK,GAChD,CAAEpwB,KAAMpK,EAAKoK,KAAK3d,MAAMg+M,EAAgBzqM,EAAKS,MAAOA,KAAMgqM,GAE1D,CAAErgM,KAAMpK,EAAKoK,KAAK3d,MAAM,EAAGg+M,EAAgBzqM,EAAKS,MAAOA,KAAMT,EAAKS,MAE1ET,CACX,CAKA2qM,aAAanwK,EAAK0pH,EAAO,GACrB,GAAIx9J,KAAK4b,QAAQooM,qBAAuBlwK,GAAO9zC,KAAK4b,QAAQmoM,cACxD,MAAO,GACX,IAAMrgM,OAAM3J,QAAS/Z,KAAKo8I,OAAOtoG,EAAK0pH,GACtC,OAAO95I,EAAK3d,MAAM+tC,EAAM/5B,EAAMmR,KAAK4lC,IAAIptC,EAAKjf,OAAQqvC,EAAM,IAAM/5B,GACpE,CAIAmqM,OAAOpwK,EAAK0pH,EAAO,GACf,IAAM95I,OAAM3J,QAAS/Z,KAAKo8I,OAAOtoG,EAAK0pH,GAClClsJ,EAAStR,KAAK81J,YAAYpyI,EAAMowB,EAAM/5B,GACtCq8C,EAAWp2D,KAAK4b,QAAQuoM,oBAAsBnkN,KAAK4b,QAAQuoM,oBAAoBpqM,IAAQ,EAC3F,OAAIq8C,GAAW,IACX9kD,GAAU8kD,EAAWp2D,KAAK81J,YAAYpyI,EAAMA,EAAK0gM,OAAO,UACrD9yM,CACX,CAKAwkJ,YAAYx8I,EAAMw6B,EAAMx6B,EAAK7U,QACzB,OAAOqxJ,GAAYx8I,EAAMtZ,KAAK0oB,MAAMumI,QAASn7G,EACjD,CAIAuwK,WAAWvwK,EAAK0pH,EAAO,GACnB,IAAM95I,OAAM3J,QAAS/Z,KAAKo8I,OAAOtoG,EAAK0pH,GAClCpnG,EAAWp2D,KAAK4b,QAAQuoM,oBAC5B,GAAI/tJ,EAAU,CACV,IAAIkuJ,EAAYluJ,EAASr8C,GACzB,GAAIuqM,GAAY,EACZ,OAAOA,EAEf,OAAOtkN,KAAK81J,YAAYpyI,EAAMA,EAAK0gM,OAAO,QAC9C,CAMIG,qBACA,OAAOvkN,KAAK4b,QAAQmoM,eAAiB,IACzC,EASJ,MAAMS,GAA8B,IAAI7T,GAcxC,SAASmT,GAAUl3J,EAAOsiJ,EAAIp7J,GAC1B,QAAS69G,EAAM/kG,EAAO+kG,EAAKA,EAAMA,EAAI74I,KAAM,CACvC,IAAI2rM,EAAWC,GAAe/yD,EAAI9wJ,MAClC,GAAI4jN,EACA,OAAOA,EAASE,GAAkB/4M,OAAOsjM,EAAIp7J,EAAK69G,GAAI,CAE9D,OAAO,CACX,CAIA,SAAS+yD,GAAe5qL,GACpB,IAAI2qL,EAAW3qL,EAAKnvB,KAAK0rB,KAAKmuL,IAC9B,GAAIC,EACA,OAAOA,EACX,IAA6BzxJ,EAAzB7yC,EAAQ2Z,EAAKoJ,WACjB,GAAI/iB,IAAU6yC,EAAQ7yC,EAAMxV,KAAK0rB,KAAKs6K,cAAqB,CACvD,IAAI/8K,EAAOkG,EAAK2jI,UAAW11I,EAAS6L,GAAQo/B,EAAM9hD,QAAQ0iB,EAAKxwB,OAAQ,EACvE,OAAO8rM,GAqHf,SAAS0V,GAAkB1mM,EAAS2mM,EAAOntH,EAAOotH,EAASC,GACvD,IAAIxnD,EAAQr/I,EAAQ83J,UAAWwzB,EAAQjsC,EAAMriI,MAAM,QAAQ,GAAGz2B,OAC1DsjB,EAAS+8L,GAAWvnD,EAAMx3J,MAAMyjM,EAAOA,EAAQsb,EAAQrgN,SAAWqgN,GAAWC,GAAY7mM,EAAQ41B,IAAM01J,EACvGwb,EAAUH,EAlClB,SAASI,GAAiB/mM,GACtB,IAAI4b,EAAO5b,EAAQrd,KACfqkN,EAAYprL,EAAKk9J,WAAWl9J,EAAK/f,MAAO6Z,EAAOkG,EAAK2jI,UACxD,IAAKynD,EACD,OAAO,KACX,IAAIC,EAAMjnM,EAAQtC,QAAQmoM,cACtBqB,EAAWlnM,EAAQwK,MAAMxnB,IAAIk7I,OAAO8oE,EAAUnrM,MAC9C6sK,EAAiB,MAAPu+B,GAAeA,GAAOC,EAASrrM,KAAOqrM,EAASlyF,GAAKhoG,KAAK4lC,IAAIs0J,EAASlyF,GAAIiyF,GACxF,QAASrxK,EAAMoxK,EAAUhyF,KAAM,CAC3B,IAAIp6G,EAAOghB,EAAKk9J,WAAWljJ,GAC3B,IAAKh7B,GAAQA,GAAQ8a,EACjB,OAAO,KACX,IAAK9a,EAAKnO,KAAK8mM,UACX,OAAO34L,EAAKiB,KAAO6sK,EAAUs+B,EAAY,KAC7CpxK,EAAMh7B,EAAKo6G,GAEnB,CAkB0B+xF,CAAiB/mM,GAAW,KAClD,OAAI8mM,EACgB9mM,EAAQgmM,OAAjBn8L,EAAwBi9L,EAAQjrM,KAAuBirM,EAAQ9xF,IACnEh1G,EAAQmnM,YAAct9L,EAAS,EAAI7J,EAAQihD,KAAOu4B,EAC7D,CA5HqBktH,CAAkB1V,GAAI,EAAM,OAAGjhM,EAAW8Z,IAV/D,SAASu9L,GAAapW,GAClB,OAAOA,EAAGp7J,KAAOo7J,EAAGtzL,QAAQmoM,eAAiB7U,EAAGtzL,QAAQooM,mBAC5D,CAQ0EsB,CAAapW,GAAMt7K,EAAK7Z,UAAO9L,EAAS,CAE9G,OAAsB,MAAf6rB,EAAKztB,OAAiBk5M,GAAY,IAC7C,CACA,SAASA,KAAc,OAAO,CAAG,CAKjC,MAAMZ,WAA0Bf,GAC5B/jN,YAAY6a,EAIZo5B,EAIA51B,GACIpe,MAAM4a,EAAKgO,MAAOhO,EAAKkB,SACvB5b,KAAK0a,KAAOA,EACZ1a,KAAK8zC,IAAMA,EACX9zC,KAAKke,QAAUA,CACnB,CAKIrd,WAAS,OAAOb,KAAKke,QAAQrd,IAAM,CAIvCV,cAAcua,EAAMo5B,EAAK51B,GACrB,OAAO,IAAIymM,GAAkBjqM,EAAMo5B,EAAK51B,EAC5C,CAKI83J,gBACA,OAAOh2K,KAAKikN,aAAajkN,KAAK8zC,IAClC,CAQIuxK,iBACA,OAAOrlN,KAAKwlN,cAAcxlN,KAAKa,KACnC,CAKA2kN,cAAc3kN,GACV,IAAIyY,EAAOtZ,KAAK0oB,MAAMxnB,IAAIk7I,OAAOv7I,EAAKkZ,MAEtC,OAAS,CACL,IAAI0rM,EAAU5kN,EAAK61B,QAAQpd,EAAKS,MAChC,KAAO0rM,EAAQp5M,QAAUo5M,EAAQp5M,OAAO0N,MAAQ0rM,EAAQ1rM,MACpD0rM,EAAUA,EAAQp5M,OACtB,GAAIq5M,GAASD,EAAS5kN,GAClB,MACJyY,EAAOtZ,KAAK0oB,MAAMxnB,IAAIk7I,OAAOqpE,EAAQ1rM,KAAI,CAE7C,OAAO/Z,KAAKqkN,WAAW/qM,EAAKS,KAChC,CAKA4rM,WACI,OAAO7B,GAAU9jN,KAAKke,QAAQpF,KAAM9Y,KAAK0a,KAAM1a,KAAK8zC,IACxD,EAEJ,SAAS4xK,GAASr5M,EAAQgL,GACtB,QAASs6I,EAAMt6I,EAAIs6I,EAAKA,EAAMA,EAAItlJ,OAC9B,GAAIA,GAAUslJ,EACV,OAAO,EACf,OAAO,CACX,CA8DA,MAmDMi0D,GAA2B5/D,YAO3B6/D,GAA4B,IAAIlV,GA+BtC,SAASmV,GAAajlN,GAClB,IAAIi+I,EAAKj+I,EAAK48J,UACd,OAAO3e,GAAMA,EAAG5rB,IAAMryH,EAAKqyH,IAAM4rB,EAAGn0I,KAAK+mM,OAC7C,CASA,SAASqU,GAASr9L,EAAO6qJ,EAAWqT,GAChC,QAAS57C,KAAWtiH,EAAMm+H,MAAM++D,IAAc,CAC1C,IAAIt0M,EAAS05H,EAAQtiH,EAAO6qJ,EAAWqT,GACvC,GAAIt1K,EACA,OAAOA,EAEf,OAvCJ,SAAS00M,GAAct9L,EAAO26D,EAAO73E,GACjC,IAAIsuB,EAAOomL,GAAWx3L,GACtB,GAAIoR,EAAKr1B,OAAS+G,EACd,OAAO,KACX,IACIkrD,EAAQ,KACZ,QAASsmF,EAFGljH,EAAKg5K,aAAatnM,EAAK,GAEZwxI,EAAMA,EAAOA,EAAKlkI,KAAM,CAC3C,IAAI64I,EAAM3U,EAAKn8I,KACf,GAAI8wJ,EAAIz+B,IAAM1nH,GAAOmmJ,EAAI53I,KAAOvO,EAC5B,SACJ,GAAIkrD,GAASi7F,EAAI53I,KAAOspE,EACpB,MACJ,IAAIhtD,EAAOs7H,EAAIhnJ,KAAK0rB,KAAKwvL,IACzB,GAAIxvL,IAASs7H,EAAIz+B,GAAKp5F,EAAKr1B,OAAS,IAAMq1B,EAAKr1B,QAAUikB,EAAMxnB,IAAIuD,SAAWqhN,GAAan0D,IAAO,CAC9F,IAAIzlJ,EAAQmqB,EAAKs7H,EAAKjpI,GAClBxc,GAASA,EAAM6N,MAAQvO,GAAOU,EAAM6N,MAAQspE,GAASn3E,EAAMgnH,GAAK1nH,IAChEkrD,EAAQxqD,IAGpB,OAAOwqD,CACX,CAmBWsvJ,CAAct9L,EAAO6qJ,EAAWqT,EAC3C,CACA,SAASq/B,GAAS/gE,EAAOqG,GACrB,IAAIxxI,EAAOwxI,EAAQlJ,OAAO6C,EAAMnrI,KAAM,GAAIm5G,EAAKq4B,EAAQlJ,OAAO6C,EAAMhyB,IAAI,GACxE,OAAOn5G,GAAQm5G,OAAKjlH,EAAY,CAAE8L,OAAMm5G,KAC5C,CAQA,MAAMgzF,GAA0B56D,UAAmB,CAAE/jJ,IAAK0+M,KAIpDE,GAA4B76D,UAAmB,CAAE/jJ,IAAK0+M,KAC5D,SAASG,GAAczpD,GACnB,IAAIpgB,EAAQ,GACZ,QAAW1zI,UAAU8zJ,EAAKj0I,MAAMm9H,UAAU1C,OAClC5G,EAAM3sG,KAAKwgE,GAAKA,EAAEr2F,MAAQlR,GAAQunG,EAAE8iB,IAAMrqH,IAE9C0zI,EAAM3zI,KAAK+zJ,EAAKkY,YAAYhsK,IAEhC,OAAO0zI,CACX,CAQA,MAAM8pE,GAAyBp+D,UAAkB,CAC7Cr8I,WACW45J,QAEXlrJ,OAAOgsM,EAAQh/D,GACXg/D,EAASA,EAAO/+M,IAAI+/I,EAAG3+G,SACvB,QAASxgC,KAAKm/I,EAAGmE,QACb,GAAItjJ,EAAEghF,GAAG+8H,MAAgBK,GAAWD,EAAQn+M,EAAE+D,MAAM6N,KAAM5R,EAAE+D,MAAMgnH,IAAK,CACnE,IAAMszF,sBAAuBl/D,EAAG5+H,MAAMm+H,MAAM4/D,IACxCpkD,EAAUmkD,EACVhhD,WAAmB,CAAEnD,OAAQ,IAAIqkD,GAAmBF,EAAmBl/D,EAAG5+H,MAAOvgB,EAAE+D,UADpDy6M,GAEnCL,EAASA,EAAOhsM,OAAO,CAAEhS,IAAK,CAAC+5J,EAAOnd,MAAM/8I,EAAE+D,MAAM6N,KAAM5R,EAAE+D,MAAMgnH,MAAM,MAEnE/qH,EAAEghF,GAAGg9H,MACVG,EAASA,EAAOhsM,OAAO,CAAEvC,OAAQ,CAACgC,EAAMm5G,IAAO/qH,EAAE+D,MAAM6N,MAAQA,GAAQ5R,EAAE+D,MAAMgnH,IAAMA,EACjFu+B,WAAYtpJ,EAAE+D,MAAM6N,KAAM23I,SAAUvpJ,EAAE+D,MAAMgnH,MAIxD,GAAIo0B,EAAGzB,UAAW,CACd,IAAI+gE,GAAc,GAAS/9M,QAASy+I,EAAGzB,UAAUR,KACjDihE,EAAOx1D,QAAQjoJ,EAAMA,EAAM,CAACmoB,EAAGC,KAAYD,EAAInoB,GAAQooB,EAAIpoB,IACvD+9M,GAAc,KACdA,IACAN,EAASA,EAAOhsM,OAAO,CACnBm3I,WAAY5oJ,EACZ6oJ,SAAU7oJ,EACVkP,OAAQ,CAACiZ,EAAGC,IAAMA,GAAKpoB,GAAQmoB,GAAKnoB,IACvC,CAET,OAAOy9M,CACX,EACA5iN,QAAS09C,GAAKi4I,oBAA4Bj4I,GAC1C2qC,OAAOu6H,EAAQ59L,GACX,IAAIy6H,EAAS,GACbmjE,SAAOx1D,QAAQ,EAAGpoI,EAAMxnB,IAAIuD,OAAQ,CAACsV,EAAMm5G,KAASiwB,EAAOv6I,KAAKmR,EAAMm5G,EAAE,GACjEiwB,CACX,EACAuC,SAASx5I,GACL,IAAK4N,MAAM2C,QAAQvQ,IAAUA,EAAMzH,OAAS,EACxC,MAAM,IAAI43I,WAAW,+BACzB,IAAI8G,EAAS,GACb,QAAS3+I,EAAI,EAAGA,EAAI0H,EAAMzH,QAAS,CAC/B,IAAIsV,EAAO7N,EAAM1H,KAAM0uH,EAAKhnH,EAAM1H,KAClC,GAAmB,iBAARuV,GAAiC,iBAANm5G,EAClC,MAAM,IAAImpB,WAAW,+BACzB8G,EAAOv6I,KAAK+9M,GAAWzhE,MAAMnrI,EAAMm5G,GAAG,CAE1C,OAAOsyC,OAAeriB,GAAQ,EAClC,IASJ,SAAS0jE,GAASn+L,EAAO3O,EAAMm5G,GAC3B,IAAI8zB,EACJ,IAAItwF,EAAQ,KACZ,OAAyC,QAAxCswF,EAAKt+H,EAAMi+H,MAAM0/D,IAAW,UAA2B,IAAPr/D,GAAyBA,EAAG8J,QAAQ/2I,EAAMm5G,EAAI,CAACn5G,EAAMm5G,OAC7Fx8D,GAASA,EAAM38C,KAAOA,KACvB28C,EAAQ,CAAE38C,OAAMm5G,MAAG,GAEpBx8D,CACX,CACA,SAAS6vJ,GAAWD,EAAQvsM,EAAMm5G,GAC9B,IAAIx8D,GAAQ,EACZ4vJ,SAAOx1D,QAAQ/2I,EAAMA,EAAM,CAACiX,EAAGC,KAAYD,GAAKjX,GAAQkX,GAAKiiG,IACzDx8D,GAAQ,KACLA,CACX,CACA,SAASowJ,GAAYp+L,EAAOlO,GACxB,OAAOkO,EAAMi+H,MAAM0/D,IAAW,GAAS7rM,EAAQA,EAAMC,OAAO6wI,mBAA4By7D,MAC5F,CA8BA,SAASC,GAAarqD,EAAMzX,EAAO+hE,GAAO,GACtC,IAAIC,EAAWvqD,EAAKj0I,MAAMxnB,IAAIk7I,OAAO8I,EAAMnrI,MAAM4lI,OAAQwnE,EAASxqD,EAAKj0I,MAAMxnB,IAAIk7I,OAAO8I,EAAMhyB,IAAIysB,OAClG,OAAO05C,eAAwB,GAAE18B,EAAKj0I,MAAMwmI,OAAO+3D,EAAO,eAAiB,qBAAqBC,KAAYvqD,EAAKj0I,MAAMwmI,OAAO,SAASi4D,KAC3I,CAoDA,MAyBMC,GAAa,CACf,CAAEt2M,IAAK,eAAgBgnJ,IAAK,YAAajyG,IA3G5B82G,IACb,QAASrjJ,KAAQ8sM,GAAczpD,GAAO,CAClC,IAAIzX,EAAQ6gE,GAASppD,EAAKj0I,MAAOpP,EAAKS,KAAMT,EAAK45G,IACjD,GAAIgyB,EACAyX,SAAKvyI,SAAS,CAAEqhI,QAASq7D,GAAYnqD,EAAKj0I,MAAO,CAACw9L,GAAW7uM,GAAG6tI,GAAQ8hE,GAAarqD,EAAMzX,QACpF,EAGf,OAAO,IAoGP,CAAEp0I,IAAK,eAAgBgnJ,IAAK,YAAajyG,IA/F1B82G,IACf,IAAKA,EAAKj0I,MAAMi+H,MAAM0/D,IAAW,GAC7B,OAAO,EACX,IAAI56D,EAAU,GACd,QAASnyI,KAAQ8sM,GAAczpD,GAAO,CAClC,IAAI2pD,EAASO,GAASlqD,EAAKj0I,MAAOpP,EAAKS,KAAMT,EAAK45G,IAC9CozF,GACA76D,EAAQ7iJ,KAAKu9M,GAAa9uM,GAAGivM,GAASU,GAAarqD,EAAM2pD,GAAQ,GAAM,CAE/E,OAAI76D,EAAQhnJ,QACRk4J,EAAKvyI,SAAS,CAAEqhI,YACbA,EAAQhnJ,OAAS,IAqFxB,CAAEqM,IAAK,aAAc+0C,IAtET82G,IACZ,IAAMj0I,SAAUi0I,EAAMlR,EAAU,GAChC,QAAS33G,EAAM,EAAGA,EAAMprB,EAAMxnB,IAAIuD,QAAS,CACvC,IAAI6U,EAAOqjJ,EAAKkY,YAAY/gI,GAAMoxG,EAAQ6gE,GAASr9L,EAAOpP,EAAKS,KAAMT,EAAK45G,IACtEgyB,GACAuG,EAAQ7iJ,KAAKs9M,GAAW7uM,GAAG6tI,IAC/BpxG,GAAOoxG,EAAQyX,EAAKkY,YAAY3vB,EAAMhyB,IAAM55G,GAAM45G,GAAK,EAE3D,OAAIu4B,EAAQhnJ,QACRk4J,EAAKvyI,SAAS,CAAEqhI,QAASq7D,GAAYnqD,EAAKj0I,MAAO+iI,OAC5CA,EAAQhnJ,SA6DjB,CAAEqM,IAAK,aAAc+0C,IAxDP82G,IACd,IAAIhW,EAAQgW,EAAKj0I,MAAMi+H,MAAM0/D,IAAW,GACxC,IAAK1/D,IAAUA,EAAMvhF,KACjB,OAAO,EACX,IAAIqmF,EAAU,GACd9E,SAAMmK,QAAQ,EAAG6L,EAAKj0I,MAAMxnB,IAAIuD,OAAQ,CAACsV,EAAMm5G,KAASu4B,EAAQ7iJ,KAAKu9M,GAAa9uM,GAAG,CAAE0C,OAAMm5G,OAAK,GAClGypC,EAAKvyI,SAAS,CAAEqhI,aACT,KAmDL47D,GAAgB,CAClBC,eAAgB,KAChBd,mBAAoB,KACpBe,gBAAiB,UAEfd,GAA0BzgE,UAAa,CACzCC,QAAQtsI,GAAiBq2I,GAAcr2I,EAAQ0tM,MAKnD,SAASN,GAAYr3K,GACjB,IAAIp+B,EAAS,CAAC+0M,GAAWt4B,IACzB,OAAIr+I,GACAp+B,EAAO1I,KAAK69M,GAAWpvM,GAAGq4B,IACvBp+B,CACX,CACA,SAASk2M,GAAY7qD,EAAM8qD,GACvB,IAAM/+L,SAAUi0I,EAAMpO,EAAO7lI,EAAMm+H,MAAM4/D,IACrCiB,EAAW39M,IACX,IAAIuP,EAAOqjJ,EAAKkY,YAAYlY,EAAK4gC,SAASxzL,EAAMhI,SAC5CukN,EAASO,GAASlqD,EAAKj0I,MAAOpP,EAAKS,KAAMT,EAAK45G,IAC9CozF,GACA3pD,EAAKvyI,SAAS,CAAEqhI,QAAS06D,GAAa9uM,GAAGivM,KAC7Cv8M,EAAMC,gBAAc,EAExB,GAAIukJ,EAAK+4D,eACL,OAAO/4D,EAAK+4D,eAAe3qD,EAAM+qD,EAASD,GAC9C,IAAIxhN,EAAU5E,SAASL,cAAc,QACrCiF,SAAQwC,YAAc8lJ,EAAKg5D,gBAC3BthN,EAAQtD,aAAa,aAAc+lB,EAAMwmI,OAAO,gBAChDjpJ,EAAQsP,MAAQmT,EAAMwmI,OAAO,UAC7BjpJ,EAAQ42E,UAAY,qBACpB52E,EAAQyhN,QAAUA,EACXzhN,CACX,CACA,MAAM0gN,GAA0BnhD,WAAmB,CAAEnD,OAAqB,IAAI,cAAc4C,GACpFzC,MAAM7F,GAAQ,OAAO6qD,GAAY7qD,EAAM,KAAO,KAEtD,MAAM+pD,WAA2BzhD,GAC7BplK,YAAYqM,GACRpM,QACAE,KAAKkM,MAAQA,CACjB,CACAywI,GAAGniI,GAAS,OAAOxa,KAAKkM,OAASsO,EAAMtO,KAAO,CAC9Cs2J,MAAM7F,GAAQ,OAAO6qD,GAAY7qD,EAAM38J,KAAKkM,MAAQ,EAExD,MAAMy7M,GAAqB,CACvBC,SAAU,SACVC,WAAY,SACZC,UAAW,KACXv7C,iBAAkB,CAAC,EACnBw7C,eAAgB,KAAM,GAE1B,MAAMC,WAAmBza,GACrB1tM,YAAY6vC,EAAQhtB,GAChB5iB,QACAE,KAAK0vC,OAASA,EACd1vC,KAAK0iB,KAAOA,CAChB,CACAi6H,GAAGniI,GAAS,OAAOxa,KAAK0vC,QAAUl1B,EAAMk1B,QAAU1vC,KAAK0iB,MAAQlI,EAAMkI,IAAM,CAC3E8/I,MAAM7F,GACF,GAAI38J,KAAK0vC,OAAOo4K,UACZ,OAAO9nN,KAAK0vC,OAAOo4K,UAAU9nN,KAAK0iB,MACtC,IAAIkxI,EAAOvyJ,SAASL,cAAc,QAClC4yJ,SAAKnrJ,YAAczI,KAAK0iB,KAAO1iB,KAAK0vC,OAAOk4K,SAAW5nN,KAAK0vC,OAAOm4K,WAClEj0D,EAAKr+I,MAAQonJ,EAAKj0I,MAAMwmI,OAAOlvJ,KAAK0iB,KAAO,YAAc,eAClDkxI,CACX,EA8DJ,MAAMm6B,GAA2BsL,aAAqB,CAClD,sBAAuB,CACnB9J,gBAAiB,OACjBa,OAAQ,iBACRh5E,MAAO,OACP+4E,aAAc,OACd7pB,OAAQ,QACRooB,QAAS,QACTjvC,OAAQ,WAEZ,sBAAuB,CACnBivC,QAAS,QACTjvC,OAAQ,aAQhB,MAAMwoE,GACFpoN,YAIAytJ,EAAO1xI,GAEH,IAAIssM,EACJ,SAASrjJ,EAAIg/E,GACT,IAAIogB,EAAM3N,aACV,OAAC4xD,IAAYA,EAAUv8M,OAAOC,OAAO,QAAQ,IAAMq4J,GAAOpgB,EACnDogB,CACX,CANAjkK,KAAKstJ,MAAQA,EAOb,MAAMytD,EAA4B,iBAAfn/L,EAAQm/L,IAAkBn/L,EAAQm/L,IAAMn/L,EAAQm/L,IAAMl2I,EAAIjpD,EAAQm/L,UAAO9sM,EACtFk6M,EAAWvsM,EAAQijL,MACzB7+L,KAAK6+L,MAAQspB,aAAoBnI,GAAYr1M,GAASA,EAAK0rB,KAAKypL,KAAqBqI,EAASz8M,KACxFy8M,EAAYx9M,GAASA,GAAQw9M,OAAWl6M,EAC9CjO,KAAK+G,MAAQ+zM,GAAextD,EAAM/lJ,IAAIR,KAClC2gK,IAAK3gK,EAAM2gK,IACX3F,MAAOh7J,EAAMg7J,OAASl9F,EAAIl5D,OAAO2gM,OAAO,CAAC,EAAGvlM,EAAO,CAAE2gK,IAAK,WACzD,CACDqzC,QACDh0M,MACH/G,KAAKooN,OAASF,EAAU,IAAI5xD,GAAY4xD,GAAW,KACnDloN,KAAKqoN,UAAYzsM,EAAQysM,SAC7B,CAgBAloN,cAAcmtJ,EAAO1xI,GACjB,OAAO,IAAIqsM,GAAe36D,EAAO1xI,GAAW,CAAC,EACjD,EAEJ,MAAM0sM,GAAgCtiE,YAChCuiE,GAAmCviE,UAAa,CAClDC,QAAQtsI,GAAiBA,EAAOlV,OAAS,CAACkV,EAAO,IAAM,OAE3D,SAAS6uM,GAAgB9/L,GACrB,IAAI28H,EAAO38H,EAAMm+H,MAAMyhE,IACvB,OAAOjjE,EAAK5gJ,OAAS4gJ,EAAO38H,EAAMm+H,MAAM0hE,GAC5C,CA6CA,MAAME,GACF5oN,YAAY88J,GACR38J,KAAK0oN,UAAY/8M,OAAOC,OAAO,MAC/B5L,KAAK85B,KAAOomL,GAAWvjD,EAAKj0I,OAC5B1oB,KAAKwnK,YAAcxnK,KAAK2oN,UAAUhsD,EAAM6rD,GAAgB7rD,EAAKj0I,QAC7D1oB,KAAK4oN,YAAcjsD,EAAK2U,SAASp+C,EACrC,CACA54G,OAAOA,GACH,IAAIwf,EAAOomL,GAAW5lM,EAAOoO,OAAQ4yL,EAAekN,GAAgBluM,EAAOoO,OACvEmgM,EAAcvN,GAAgBkN,GAAgBluM,EAAOuxI,aACnDylB,YAAah3J,EAAOqiJ,KAAMmsD,EAAoBxuM,EAAOquB,QAAQ05G,OAAOriJ,KAAK4oN,YAAa,GACxF9uL,EAAKr1B,OAAS6sK,EAASp+C,KAAO21F,GAAe/uL,EAAKnvB,MAAQ3K,KAAK85B,KAAKnvB,MAAQm+M,GAAqBx3C,EAASp+C,IAC1GlzH,KAAKwnK,YAAcxnK,KAAKwnK,YAAYjgK,IAAI+S,EAAOquB,SAC/C3oC,KAAK4oN,YAAcE,IAEdhvL,GAAQ95B,KAAK85B,MAAQxf,EAAO+zJ,iBAAmBw6C,KACpD7oN,KAAK85B,KAAOA,EACZ95B,KAAKwnK,YAAcxnK,KAAK2oN,UAAUruM,EAAOqiJ,KAAM2+C,GAC/Ct7M,KAAK4oN,YAAct3C,EAASp+C,GAEpC,CACAy1F,UAAUhsD,EAAM2+C,GACZ,IAAKA,IAAiBt7M,KAAK85B,KAAKr1B,OAC5B,OAAO+gK,QACX,IAAI13F,EAAU,IAAIikF,GAClB,QAAWh4I,OAAMm5G,QAAQypC,EAAKusB,cAC1B+xB,GAAcj7M,KAAK85B,KAAMwhL,EAAc,CAACvhM,EAAMm5G,EAAInsH,KAC9C+mE,EAAQxlE,IAAIyR,EAAMm5G,EAAIlzH,KAAK0oN,UAAU3hN,KAAW/G,KAAK0oN,UAAU3hN,GAASy+J,QAAgB,CAAEzD,MAAOh7J,KAAS,EAC3GgT,EAAMm5G,GAEb,OAAOplD,EAAQhe,QACnB,EAEJ,MAAMi5J,GAA+Bn/D,QAAuB0iB,aAAqBm8C,GAAiB,CAC9FjhD,YAAajsJ,GAAKA,EAAEisJ,eAKlBwhD,GAAqCf,GAAep/D,OAAO,CAC7D,CAAE6e,IAAK6yC,QACHnjG,MAAO,WACX,CAAEswD,IAAK6yC,QACH0O,eAAgB,aACpB,CAAEvhD,IAAK6yC,WACH0O,eAAgB,YAChBC,WAAY,QAChB,CAAExhD,IAAK6yC,YACH4O,UAAW,UACf,CAAEzhD,IAAK6yC,UACH2O,WAAY,QAChB,CAAExhD,IAAK6yC,iBACH0O,eAAgB,gBACpB,CAAEvhD,IAAK6yC,WACHnjG,MAAO,QACX,CAAEswD,IAAK,CAAC6yC,QAAWA,QAAWA,OAAUA,oBAAuBA,cAC3DnjG,MAAO,QACX,CAAEswD,IAAK,CAAC6yC,WAAcA,aAClBnjG,MAAO,QACX,CAAEswD,IAAK,CAAC6yC,UAAaA,YACjBnjG,MAAO,QACX,CAAEswD,IAAK,CAAC6yC,UAAaA,UAA0BA,WAAaA,YACxDnjG,MAAO,QACX,CAAEswD,IAAkB6yC,cAAgBA,iBAChCnjG,MAAO,QACX,CAAEswD,IAAkB6yC,SAAWA,iBAC3BnjG,MAAO,QACX,CAAEswD,IAAK,CAAC6yC,YAAeA,cACnBnjG,MAAO,QACX,CAAEswD,IAAK6yC,aACHnjG,MAAO,QACX,CAAEswD,IAAK,CAAc6yC,WAAaA,iBAAoBA,cAClDnjG,MAAO,QACX,CAAEswD,IAAkB6yC,cAAgBA,iBAChCnjG,MAAO,QACX,CAAEswD,IAAK6yC,WACHnjG,MAAO,QACX,CAAEswD,IAAK6yC,WACHnjG,MAAO,UAGT+yF,GAAyB9Q,aAAqB,CAChD,mCAAoC,CAAE9J,gBAAiB,aACvD,sCAAuC,CAAEA,gBAAiB,eAExD65B,GAAkB,IAAOC,GAAkB,SAC3CC,GAAqCtjE,UAAa,CACpDC,QAAQgK,GACGD,GAAcC,EAAS,CAC1Bs5D,aAAa,EACbC,SAAUH,GACVI,gBAAiBL,GACjBM,YAAaC,OAInBC,GAA4BpkD,QAAgB,CAAEzD,MAAO,uBAAyB8nD,GAA+BrkD,QAAgB,CAAEzD,MAAO,0BAC5I,SAAS4nD,GAAmBzuL,GACxB,IAAIssI,EAAc,GACd3F,EAAO3mI,EAAM4T,QAAU86K,GAAeC,GAC1CriD,SAAY5+J,KAAKi5J,EAAK3c,MAAMhqH,EAAMmoD,MAAMtpE,KAAMmhB,EAAMmoD,MAAM6vC,KACtDh4F,EAAM1vB,KACNg8J,EAAY5+J,KAAKi5J,EAAK3c,MAAMhqH,EAAM1vB,IAAIuO,KAAMmhB,EAAM1vB,IAAI0nH,KACnDs0C,CACX,CAuBA,MAAMsiD,GAAwB,CAtBY7hE,UAAkB,CACxDr8I,WAAkB45J,QAClBlrJ,OAAO0pJ,EAAM1c,GACT,IAAKA,EAAGC,aAAeD,EAAGzB,UACtB,OAAOme,EACX,IAAIwD,EAAc,GACd93H,EAAS43G,EAAG5+H,MAAMm+H,MAAMyiE,IAC5B,QAASpkE,KAASoC,EAAG5+H,MAAMm9H,UAAU1C,OAAQ,CACzC,IAAK+B,EAAMp+H,MACP,SACJ,IAAIoU,EAAQ6uL,GAAcziE,EAAG5+H,MAAOw8H,EAAMr8I,MAAM,EAAI6mC,IAC5Cw1G,EAAMr8I,KAAO,GAAKkhN,GAAcziE,EAAG5+H,MAAOw8H,EAAMr8I,KAAO,EAAG,EAAG6mC,IAC7DA,EAAO65K,cACNQ,GAAcziE,EAAG5+H,MAAOw8H,EAAMr8I,KAAM,EAAG6mC,IACnCw1G,EAAMr8I,KAAOy+I,EAAG5+H,MAAMxnB,IAAIuD,QAAUslN,GAAcziE,EAAG5+H,MAAOw8H,EAAMr8I,KAAO,GAAG,EAAI6mC,IACzFxU,IACAssI,EAAcA,EAAY/sJ,OAAOi1B,EAAOg6K,YAAYxuL,EAAOosH,EAAG5+H,QAAM,CAE5E,OAAO88I,OAAegC,GAAa,EACvC,EACA9jK,QAAS09C,GAAKi4I,oBAA4Bj4I,KAI1C+oJ,IAmBJ,MAAM6f,GAAqC,IAAIrZ,GAC/C,SAASsZ,GAAcppN,EAAMo8I,EAAKusE,GAC9B,IAAIU,EAASrpN,EAAKw1B,KAAK4mH,EAAM,EAAI0zD,YAAoBA,aACrD,GAAIuZ,EACA,OAAOA,EACX,GAAwB,GAApBrpN,EAAKuC,KAAKqB,OAAa,CACvB,IAAI4M,EAAQm4M,EAASt4M,QAAQrQ,EAAKuC,MAClC,GAAIiO,GAAQ,GAAMA,EAAQ,IAAM4rI,EAAM,EAAI,EAAI,GAC1C,MAAO,CAACusE,EAASn4M,EAAQ4rI,GAAI,CAErC,OAAO,IACX,CACA,SAASktE,GAAWtpN,GAChB,IAAIupN,EAAYvpN,EAAK8J,KAAK0rB,KAAK2zL,IAC/B,OAAOI,EAAYA,EAAUvpN,EAAKA,MAAQA,CAC9C,CAOA,SAASkpN,GAAcrhM,EAAOorB,EAAKmpG,EAAKvtG,EAAS,CAAC,GAC9C,IAAI+5K,EAAkB/5K,EAAO+5K,iBAAmBL,GAAiBI,EAAW95K,EAAO85K,UAAYH,GAC3FvvL,EAAOomL,GAAWx3L,GAAQ7nB,EAAOi5B,EAAK+4K,aAAa/+J,EAAKmpG,GAC5D,QAAS0U,EAAM9wJ,EAAM8wJ,EAAKA,EAAMA,EAAItlJ,OAAQ,CACxC,IAAI2yD,EAAUirJ,GAAct4D,EAAIhnJ,KAAMsyI,EAAKusE,GAC3C,GAAIxqJ,GAAW2yF,EAAI53I,KAAO43I,EAAIz+B,GAAI,CAC9B,IAAI3yG,EAAS4pM,GAAWx4D,GACxB,GAAIpxI,IAAW08H,EAAM,EAAInpG,GAAOvzB,EAAOxG,MAAQ+5B,EAAMvzB,EAAO2yG,GAAKp/E,EAAMvzB,EAAOxG,MAAQ+5B,GAAOvzB,EAAO2yG,IAChG,OAAOm3F,GAAoB3hM,EAAOorB,EAAKmpG,EAAK0U,EAAKpxI,EAAQy+C,EAASwqJ,EAAQ,EAGtF,OA8BJ,SAASc,GAAmB5hM,EAAOorB,EAAKmpG,EAAKnjH,EAAMywL,EAAWd,EAAiBD,GAC3E,IAAIgB,EAAUvtE,EAAM,EAAIv0H,EAAMqmI,SAASj7G,EAAM,EAAGA,GAAOprB,EAAMqmI,SAASj7G,EAAKA,EAAM,GAC7EsoK,EAAUoN,EAASt4M,QAAQs5M,GAC/B,GAAIpO,EAAU,GAAMA,EAAU,GAAK,GAAOn/D,EAAM,EAC5C,OAAO,KACX,IAAIwtE,EAAa,CAAE1wM,KAAMkjI,EAAM,EAAInpG,EAAM,EAAIA,EAAKo/E,GAAI+pB,EAAM,EAAInpG,EAAM,EAAIA,GACtEkpG,EAAOt0H,EAAMxnB,IAAIg8I,UAAUppG,EAAKmpG,EAAM,EAAIv0H,EAAMxnB,IAAIuD,OAAS,GAAI4vM,EAAQ,EAC7E,QAASvX,EAAW,GAAK9/C,EAAKlkI,OAAQ0oD,MAAQs7H,GAAY2sB,GAAkB,CACxE,IAAI/lM,GAAOs5H,EAAK9wI,MACZ+wI,EAAM,IACN6/C,GAAYp5K,GAAKjf,QACrB,IAAIimN,GAAU52K,EAAMgpJ,EAAW7/C,EAC/B,QAASnpG,GAAMmpG,EAAM,EAAI,EAAIv5H,GAAKjf,OAAS,EAAG+G,GAAMyxI,EAAM,EAAIv5H,GAAKjf,QAAS,EAAIqvC,IAAOtoC,GAAKsoC,IAAOmpG,EAAK,CACpG,IAAIvmF,GAAQ8yJ,EAASt4M,QAAQwS,GAAKowB,KAClC,KAAI4iB,GAAQ,GAAK58B,EAAK+4K,aAAa6X,GAAU52K,GAAK,GAAGnpC,MAAQ4/M,GAE7D,GAAK7zJ,GAAQ,GAAK,GAAOumF,EAAM,EAC3Bo3D,QAEC,IAAa,GAATA,EACL,MAAO,CAAEhxH,MAAOonI,EAAYj/M,IAAK,CAAEuO,KAAM2wM,GAAU52K,GAAKo/E,GAAIw3F,GAAU52K,GAAM,GAAKhF,QAAU4nB,IAAS,GAAO0lJ,GAAW,GAGtH/H,KAGJp3D,EAAM,IACN6/C,GAAYp5K,GAAKjf,QAEzB,OAAOu4I,EAAKx7E,KAAO,CAAE6hB,MAAOonI,EAAY37K,SAAS,GAAU,IAC/D,CA5DWw7K,CAAmB5hM,EAAOorB,EAAKmpG,EAAKnjH,EAAMj5B,EAAK8J,KAAM8+M,EAAiBD,EACjF,CACA,SAASa,GAAoBpnI,EAAQ0nI,EAAM1tE,EAAKhgI,EAAOsD,EAAQqqM,EAAUpB,GACrE,IAA2BqB,EAAa,CAAE9wM,KAAMwG,EAAOxG,KAAMm5G,GAAI3yG,EAAO2yG,IACpEmhF,EAAQ,EAAG50D,EADFxiI,EAAM5Q,QAC4DozI,SAC/E,GAAIA,IAAWxC,EAAM,EAAIwC,EAAOq3C,YAAY75K,EAAMlD,MAAQ0lI,EAAOu3C,WAAW/5K,EAAMi2G,KAC9E,MACQ+pB,EAAM,EAAIwC,EAAOvsB,IAAMj2G,EAAMlD,KAAO0lI,EAAO1lI,MAAQkD,EAAMi2G,IACzD,GAAa,GAATmhF,GAAcuW,EAAS15M,QAAQuuI,EAAO90I,KAAKvH,OAAQ,GAAMq8I,EAAO1lI,KAAO0lI,EAAOvsB,GAAI,CAClF,IAAI43F,EAAYX,GAAW1qE,GAC3B,MAAO,CAAEp8D,MAAOwnI,EAAYr/M,IAAKs/M,EAAY,CAAE/wM,KAAM+wM,EAAU/wM,KAAMm5G,GAAI43F,EAAU53F,SAAOjlH,EAAW6gC,SAAS,EAAK,IAE9Gm7K,GAAcxqE,EAAO90I,KAAMsyI,EAAKusE,GACrCnV,YAEK4V,GAAcxqE,EAAO90I,MAAOsyI,EAAKusE,GAAW,CACjD,GAAa,GAATnV,EAAY,CACZ,IAAIyW,EAAYX,GAAW1qE,GAC3B,MAAO,CACHp8D,MAAOwnI,EACPr/M,IAAKs/M,GAAaA,EAAU/wM,KAAO+wM,EAAU53F,GAAK,CAAEn5G,KAAM+wM,EAAU/wM,KAAMm5G,GAAI43F,EAAU53F,SAAOjlH,EAC/F6gC,SAAS,EACb,CAEJulK,YAGHp3D,EAAM,EAAIwC,EAAOo3D,cAAgBp3D,EAAO1yI,eACrD,MAAO,CAAEs2E,MAAOwnI,EAAY/7K,SAAS,EACzC,CAmCA,SAASi8K,GAASptE,EAAQnyI,EAAKyjJ,EAASpvH,EAAa,EAAGmrL,EAAa,GACtD,MAAPx/M,IAEW,IADXA,EAAMmyI,EAAOymE,OAAO,kBAEhB54M,EAAMmyI,EAAOl5I,QAErB,IAAIu+B,EAAIgoL,EACR,QAASxmN,EAAIq7B,EAAYr7B,EAAIgH,EAAKhH,IACF,GAAxBm5I,EAAO4C,WAAW/7I,GAClBw+B,GAAKisH,EAAWjsH,EAAIisH,EAEpBjsH,IAER,OAAOA,CACX,CAKA,MAAMioL,GAIFprN,YAIA89I,EAAQsR,EAIRq0D,EAAY4H,GACRlrN,KAAK29I,OAASA,EACd39I,KAAKivJ,QAAUA,EACfjvJ,KAAKsjN,WAAaA,EAClBtjN,KAAKkrN,eAAiBA,EAItBlrN,KAAK8zC,IAAM,EAIX9zC,KAAKqjF,MAAQ,EACbrjF,KAAKmrN,cAAgB,EACrBnrN,KAAKorN,gBAAkB,CAC3B,CAIAC,MAAQ,OAAOrrN,KAAK8zC,KAAO9zC,KAAK29I,OAAOl5I,MAAQ,CAI/C6mN,MAAQ,OAAmB,GAAZtrN,KAAK8zC,GAAU,CAK9By3K,OAAS,OAAOvrN,KAAK29I,OAAO76I,OAAO9C,KAAK8zC,WAAQ7lC,CAAW,CAI3D6K,OACI,GAAI9Y,KAAK8zC,IAAM9zC,KAAK29I,OAAOl5I,OACvB,OAAOzE,KAAK29I,OAAO76I,OAAO9C,KAAK8zC,MACvC,CAKA03K,IAAItwL,GACA,IACIxb,EADAo/H,EAAK9+I,KAAK29I,OAAO76I,OAAO9C,KAAK8zC,KAMjC,GAHIp0B,EADgB,iBAATwb,EACF4jH,GAAM5jH,EAEN4jH,IAAO5jH,aAAiB2lC,OAAS3lC,EAAM/X,KAAK27H,GAAM5jH,EAAM4jH,IAC7Dp/H,EACA,QAAE1f,KAAK8zC,IACAgrG,CAEf,CAMA2sE,SAASvwL,GACL,IAAImoD,EAAQrjF,KAAK8zC,IACjB,KAAO9zC,KAAKwrN,IAAItwL,KAChB,OAAOl7B,KAAK8zC,IAAMuvC,CACtB,CAKAqoI,WACI,IAAIroI,EAAQrjF,KAAK8zC,IACjB,KAAO,aAAa3wB,KAAKnjB,KAAK29I,OAAO76I,OAAO9C,KAAK8zC,SAC3C9zC,KAAK8zC,IACX,OAAO9zC,KAAK8zC,IAAMuvC,CACtB,CAIAsoI,YAAc3rN,KAAK8zC,IAAM9zC,KAAK29I,OAAOl5I,MAAQ,CAK7CwrM,OAAOnxD,GACH,IAAIpoF,EAAQ12D,KAAK29I,OAAOzsI,QAAQ4tI,EAAI9+I,KAAK8zC,KACzC,GAAI4iB,GAAQ,EACR,YAAK5iB,IAAM4iB,GACJ,CAEf,CAIAk1J,OAAO5oL,GAAKhjC,KAAK8zC,KAAO9Q,CAAG,CAI3BkhL,SACI,OAAIlkN,KAAKmrN,cAAgBnrN,KAAKqjF,QAC1BrjF,KAAKorN,gBAAkBL,GAAS/qN,KAAK29I,OAAQ39I,KAAKqjF,MAAOrjF,KAAKivJ,QAASjvJ,KAAKmrN,cAAenrN,KAAKorN,iBAChGprN,KAAKmrN,cAAgBnrN,KAAKqjF,OAEvBrjF,KAAKorN,eAChB,CAIAS,cACI,IAAI7kE,EACJ,OAAsC,QAA9BA,EAAKhnJ,KAAKkrN,sBAAmC,IAAPlkE,EAAgBA,EAAK+jE,GAAS/qN,KAAK29I,OAAQ,KAAM39I,KAAKivJ,QACxG,CAYA/zH,MAAM4wL,EAASC,EAASC,GACpB,GAAsB,iBAAXF,EAAqB,CAC5B,IAAIG,EAAShxL,GAAQ+wL,EAAkB/wL,EAAIrqB,cAAgBqqB,EAE3D,OAAIgxL,EADSjsN,KAAK29I,OAAOuuE,OAAOlsN,KAAK8zC,IAAKg4K,EAAQrnN,UAC7BwnN,EAAMH,KACP,IAAZC,IACA/rN,KAAK8zC,KAAOg4K,EAAQrnN,SACjB,GAGA,KAEV,CACD,IAAIy2B,EAAQl7B,KAAK29I,OAAO53I,MAAM/F,KAAK8zC,KAAK5Y,MAAM4wL,GAC9C,OAAI5wL,GAASA,EAAM7pB,MAAQ,EAChB,MACP6pB,IAAqB,IAAZ6wL,IACT/rN,KAAK8zC,KAAO5Y,EAAM,GAAGz2B,QAClBy2B,GAEf,CAIA7C,UAAY,OAAOr4B,KAAK29I,OAAO53I,MAAM/F,KAAKqjF,MAAOrjF,KAAK8zC,IAAM,EAehE,SAASq4K,GAAiBzjM,GACtB,GAAoB,iBAATA,EACP,OAAOA,EACX,IAAIqyK,EAAW,CAAC,EAChB,QAAS1kK,KAAQ3N,EAAO,CACpB,IAAInM,EAAMmM,EAAM2N,GAChB0kK,EAAS1kK,GAAS9Z,aAAezC,MAAQyC,EAAIxW,QAAUwW,EAE3D,OAAOw+K,CACX,CACA,MAAMqxB,GAA4B,IAAIh2K,QAKtC,MAAMi2K,WAAuBrM,GACzBngN,YAAYuxM,GACR,IAC4B+L,EADxBzxM,EAjoEZ,SAAS4gN,GAAoBC,GACzB,OAAOvmE,UAAa,CAChBC,QAASsmE,EAAW5yM,GAAUA,EAAOc,OAAO8xM,QAAYt+M,GAEhE,CA6nEmBq+M,CAAoBlb,EAAOxmD,cAClCnxH,EA9BZ,SAAS+yL,GAAW3oE,GAChB,MAAO,CACHzgJ,KAAMygJ,EAAKzgJ,MAAQ,GACnB6Z,MAAO4mI,EAAK5mI,MACZwvM,UAAW5oE,EAAK4oE,iBAAsB,GACtC5gE,WAAYhI,EAAKgI,kBAAqB,GACtC6gE,UAAW7oE,EAAK6oE,WAAaP,GAC7BQ,OAAQ9oE,EAAK8oE,aAAiB,MAC9B/hE,aAAc/G,EAAK+G,cAAgB,CAAC,EACpCgiE,WAAY/oE,EAAK+oE,YAAcC,GAEvC,CAmBgBL,CAAWpb,GAMnBtxM,MAAM4L,EALK,IAAI,cAAc8tM,GACzBG,YAAYxyL,EAAO2xL,EAAW31D,GAC1B,OAAO,IAAI2pE,GAAM3P,EAAMh2L,EAAO2xL,EAAW31D,EAC7C,GAEc,CAACkgE,GAAchsM,GAAG,CAAC63L,EAAIp7J,IAAQ9zC,KAAK+sN,UAAU7d,EAAIp7J,KAAQs9J,EAAOhuM,MACnFpD,KAAKyyM,QAoUb,SAASua,GAAMthN,GACX,IAAIf,EAAOkmM,UAAgB,CAAE3lM,GAAI+hN,GAAUxoN,OAAQrB,KAAM,WAAYm+E,MAAO,CAACu+H,GAAiBx3M,IAAI,IAAMoD,IAAQ6zI,KAAK,IACrH0tE,UAAUrkN,KAAK+B,GACRA,CACX,CAxUuBqiN,CAAMthN,GACrByxM,EAAOn9M,KACPA,KAAKktN,aAAezzL,EACpBz5B,KAAKmtN,WAAa,IAAIxc,GAAS,CAAEC,SAAS,IAC1C5wM,KAAK4sN,WAAaxb,EAAOwb,WAAa,IAAIQ,GAAW3zL,EAAEmzL,YAAcS,EACzE,CAIAltN,cAAc0jJ,GAAQ,OAAO,IAAIwoE,GAAexoE,EAAO,CACvDkpE,UAAU7d,EAAIp7J,GACV,IAAIha,EAAOomL,GAAWhR,EAAGxmL,OAAQ8mI,EAAK11H,EAAKpD,QAAQod,GACnD,KAAO07G,GAAMA,EAAG7kJ,MAAQ3K,KAAKyyM,SACzBjjD,EAAKA,EAAGnjJ,OACZ,IAAKmjJ,EACD,OAAO,KACX,IAAIz1I,GACEoqM,uBAAwBjV,EAAGtzL,QAC7BuoM,IACApqM,EAAOqyM,GAAapoN,IAAIkrM,EAAGxmL,OACf,MAAR3O,GAAgBA,EAAO+5B,EAAM,MAC7B/5B,OAAO9L,IAEf,IAA8Fq/M,EAAU5kM,EAApG26D,EAAQkqI,GAAUvtN,KAAM85B,EAAM,EAAG01H,EAAGz1I,KAAMA,GAA0C+5B,GASxF,GARIuvC,GACA36D,EAAQ26D,EAAM36D,MACd4kM,EAAWjqI,EAAMvvC,IAAM,IAGvBprB,EAAQ1oB,KAAKktN,aAAarhE,WAAWqjD,EAAG/vI,MACxCmuJ,EAAW,GAEXx5K,EAAMw5K,EAAW,IACjB,OAAO,KACX,KAAOA,EAAWx5K,GAAK,CACnB,IAAIx6B,EAAO41L,EAAGxmL,MAAMxnB,IAAIk7I,OAAOkxE,GAAW9hN,EAAM0f,KAAK4lC,IAAIhd,EAAKx6B,EAAK45G,IACnE,GAAI55G,EAAK7U,OAAQ,CACb,IAAIonN,GAAc1H,EAAsBA,EAAoB7qM,EAAKS,OAAQ,EACrE8iG,GAAS,IAAIouG,GAAa3xM,EAAKoK,KAAMwrL,EAAGxmL,MAAMumI,QAASigD,EAAG/vI,KAAM0sJ,GAAc,OAAI59M,EAAY49M,IAClG,KAAOhvG,GAAO/oE,IAAMtoC,EAAM8N,EAAKS,MAC3ByzM,GAAUxtN,KAAKktN,aAAajwM,MAAO4/F,GAAQn0F,EAAK,MAGpD1oB,KAAKktN,aAAaT,UAAU/jM,EAAOwmL,EAAG/vI,MAE1C,GAAI3zD,GAAOsoC,EACP,MACJw5K,EAAWh0M,EAAK45G,GAAK,EAEzB,IAAI55G,EAAO41L,EAAG9yD,OAAOtoG,GACrB,OAAIqwK,GAA+B,MAARpqM,GACvBqyM,GAAa5lN,IAAI0oM,EAAGxmL,MAAOpP,EAAKS,MAC7B/Z,KAAKktN,aAAaP,OAAOjkM,EAAO,WAAWq4C,KAAKznD,EAAKoK,MAAM,GAAIwrL,EAC1E,CACIuR,oBAAkB,OAAO,CAAO,EAExC,SAAS8M,GAAUngK,EAAMtzB,EAAM2pH,EAAKs5C,EAAU56C,GAC1C,IAAIz5H,EAAQ+6H,GAAOs5C,GAAYt5C,EAAM3pH,EAAKr1B,QAAU09I,GAAUroH,EAAKzD,KAAK+2B,EAAK+/J,YAC7E,GAAIzkM,EACA,MAAO,CAAEA,MAAO0kC,EAAK8/J,aAAaR,UAAUhkM,GAAQorB,IAAK2vG,EAAM3pH,EAAKr1B,QACxE,QAASD,EAAIs1B,EAAKvC,SAAS9yB,OAAS,EAAGD,GAAK,EAAGA,IAAK,CAChD,IAAIg2B,EAAQV,EAAKvC,SAAS/yB,GAAIsvC,EAAM2vG,EAAM3pH,EAAKy4K,UAAU/tM,GACrDkyD,EAAQl8B,aAAiBqI,IAAQiR,EAAMquG,GAAUorE,GAAUngK,EAAM5yB,EAAOsZ,EAAKipJ,EAAU56C,GAC3F,GAAIzrF,EACA,OAAOA,EAEf,OAAO,IACX,CACA,SAAS+2J,GAAQrgK,EAAMtzB,EAAM/f,EAAMm5G,EAAIw/C,GACnC,GAAIA,GAAU34J,GAAQ,GAAKm5G,GAAMp5F,EAAKr1B,OAClC,OAAOq1B,GACN44I,GAAU54I,EAAKnvB,MAAQyiD,EAAKqlJ,UAC7B//B,GAAS,GACb,QAASluK,EAAIs1B,EAAKvC,SAAS9yB,OAAS,EAAGD,GAAK,EAAGA,IAAK,CAChD,IAAuD64I,EAAnDvpG,EAAMha,EAAKy4K,UAAU/tM,GAAIg2B,EAAQV,EAAKvC,SAAS/yB,GACnD,GAAIsvC,EAAMo/E,GAAM14F,aAAiBqI,GAAM,CACnC,KAAMw6G,EAAQowE,GAAQrgK,EAAM5yB,EAAOzgB,EAAO+5B,EAAKo/E,EAAKp/E,EAAK4+H,IACrD,MACJ,OAAQA,EACF,IAAI7vI,GAAK/I,EAAKnvB,KAAMmvB,EAAKvC,SAASxxB,MAAM,EAAGvB,GAAGiW,OAAO4iI,GAAQvjH,EAAKy4K,UAAUxsM,MAAM,EAAGvB,EAAI,GAAIsvC,EAAMupG,EAAM54I,QAD9F44I,GAIzB,OAAO,IACX,CAUA,MAAMyvE,GACFjtN,YAAYutD,EAAMjmC,EAAO2xL,EAAW31D,GAChCnjJ,KAAKotD,KAAOA,EACZptD,KAAKmnB,MAAQA,EACbnnB,KAAK84M,UAAYA,EACjB94M,KAAKmjJ,OAASA,EACdnjJ,KAAKwhN,UAAY,KACjBxhN,KAAKsyJ,OAAS,GACdtyJ,KAAKqxJ,SAAW,GAChBrxJ,KAAK++I,MAAQ,GACb/+I,KAAK0tN,iBAAcz/M,EACnBjO,KAAKiyJ,WAAa,EAClBjyJ,KAAKkzH,GAAKiwB,EAAOA,EAAO1+I,OAAS,GAAGyuH,GACpC,IAAIh1G,EAAU8iM,GAAah9M,MAAO+V,EAAOopI,EAAO,GAAGppI,MAC7C2O,QAAOoR,QAvBrB,SAAS6zL,GAAqBvgK,EAAM0rJ,EAAW/b,EAAU6wB,GACrD,QAASxsK,KAAK03J,EAAW,CACrB,IACsGh/K,EAD1Do5F,EAAK9xE,EAAE8xE,IAAM9xE,EAAEuyG,QAAU,GAAK,GACtEj9F,EADOtV,EAAErnC,MAAQqnC,EAAEkyG,UAAY,GAAK,IACpBypC,GAAY7pE,EAAK6pE,GAAYwwB,GAAUngK,EAAMhM,EAAEtnB,KAAM,EAAIsnB,EAAE8M,OAAQ6uI,EAAU7pE,GACjG,GAAIx8D,IAAU58B,EAAO2zL,GAAQrgK,EAAMhM,EAAEtnB,KAAMijK,EAAW37I,EAAE8M,OAAQwI,EAAM5iB,IAAMsN,EAAE8M,QAAQ,IAClF,MAAO,CAAExlC,MAAOguC,EAAMhuC,MAAOoR,OAAK,CAE1C,MAAO,CAAEpR,MAAO0kC,EAAK8/J,aAAarhE,WAAW+hE,EAAcrK,GAAcqK,GAAe,GAAI9zL,KAAM+I,SACtG,CAe8B8qL,CAAqBvgK,EAAM0rJ,EAAW/+L,EAAwDmE,GAAQwK,OAC5H1oB,KAAK0oB,MAAQA,EACb1oB,KAAK0hN,UAAY1hN,KAAKi0J,WAAal6I,EAAO+f,EAAKr1B,OAC/C,QAASD,EAAI,EAAGA,EAAIs1B,EAAKvC,SAAS9yB,OAAQD,IACtCxE,KAAKsyJ,OAAO1pJ,KAAKkxB,EAAKvC,SAAS/yB,IAC/BxE,KAAKqxJ,SAASzoJ,KAAKkxB,EAAKy4K,UAAU/tM,IAElC0Z,GAAWle,KAAK0hN,UAAYxjM,EAAQozJ,SAASv3J,KAAO,MACpD/Z,KAAK0oB,MAAQ1oB,KAAKotD,KAAK8/J,aAAarhE,WAAW03D,GAAcrlM,EAAQwK,QACrExK,EAAQ4jM,gBAAgB9hN,KAAK0hN,UAAWxjM,EAAQozJ,SAASv3J,MACzD/Z,KAAK0hN,UAAYxjM,EAAQozJ,SAASv3J,MAEtC/Z,KAAK6tN,gBACT,CACAjU,UACI,IAAI17L,EAAU8iM,GAAah9M,MACvB8pN,EAA6B,MAAlB9tN,KAAKwhN,UAAoBxhN,KAAKkzH,GAAKhoG,KAAK4lC,IAAI9wD,KAAKkzH,GAAIlzH,KAAKwhN,WACrEh2M,EAAM0f,KAAK4lC,IAAIg9J,EAAU9tN,KAAKi0J,WAAa,MAG/C,IAFI/1I,IACA1S,EAAM0f,KAAK4lC,IAAItlD,EAAK0S,EAAQozJ,SAASp+C,KAClClzH,KAAK0hN,UAAYl2M,GACpBxL,KAAK+tN,UAAU7vM,GAGnB,OAFIle,KAAKi0J,WAAaj0J,KAAK0hN,WACvB1hN,KAAK+zJ,cACL/zJ,KAAK0hN,WAAaoM,EACX9tN,KAAK8vD,SACZ5xC,GAAWle,KAAK0hN,WAAaxjM,EAAQozJ,SAASp+C,IAC9Ch1G,EAAQ4jM,gBAAgB9hN,KAAK0hN,UAAWoM,GACjC9tN,KAAK8vD,UAET,IACX,CACA8lJ,OAAO9hK,GACH9zC,KAAKwhN,UAAY1tK,CACrB,CACAk6K,UAAUl6K,GACN,IAAIirG,EAAQ/+I,KAAKmnB,MAAM43H,MAAMjrG,GAC7B,GAAK9zC,KAAKmnB,MAAM0yL,WAKE,MAAT96D,IACLA,EAAQ,QANgB,CACxB,IAAIssE,EAAMtsE,EAAM7tI,QAAQ,MACpBm6M,GAAM,IACNtsE,EAAQA,EAAMh5I,MAAM,EAAGslN,GAAG,CAKlC,OAAOv3K,EAAMirG,EAAMt6I,QAAUzE,KAAKkzH,GAAK6rB,EAAQA,EAAMh5I,MAAM,EAAG/F,KAAKkzH,GAAKp/E,EAC5E,CACAm6K,WACI,IAAIl0M,EAAO/Z,KAAK0hN,UAAWpoM,EAAOtZ,KAAKguN,UAAUj0M,GAAOvO,EAAMuO,EAAOT,EAAK7U,OAC1E,QAAS4M,EAAQrR,KAAKiyJ,aAAc,CAChC,IAAIkmC,EAAWn4L,KAAKmjJ,OAAO9xI,GAAO6hH,GAKlC,GAJIilE,GAAY3sL,IAEhB8N,EAAOA,EAAKvT,MAAM,EAAGoyL,GAAY3sL,EAAM8N,EAAK7U,SAC5C4M,IACIA,GAASrR,KAAKmjJ,OAAO1+I,QACrB,MACJ,IAAIyzL,EAAal4L,KAAKmjJ,OAAO9xI,GAAO0I,KAChCwjJ,EAAQv9J,KAAKguN,UAAU91B,GAC3B5+K,GAAQikJ,EACR/xJ,EAAM0sL,EAAa36B,EAAM94J,OAE7B,MAAO,CAAE6U,OAAM9N,MACnB,CACA0iN,WAAWp6K,EAAKoa,EAAQmhG,GACpB,OAAS,CACL,IAAI7jJ,EAAMxL,KAAKmjJ,OAAOnjJ,KAAKiyJ,YAAY/+B,GAAIi7F,EAASr6K,EAAMoa,EAC1D,GAAImhG,EAAO,EAAI7jJ,EAAM2iN,EAAS3iN,GAAO2iN,EACjC,MAEJjgK,GADYluD,KAAKmjJ,SAASnjJ,KAAKiyJ,YAAYl4I,KACzBvO,EAEtB,OAAO0iD,CACX,CACA2/J,iBACI,KAAO7tN,KAAKmjJ,OAAOnjJ,KAAKiyJ,YAAY/+B,GAAKlzH,KAAK0hN,WAC1C1hN,KAAKiyJ,YACb,CACAm8D,UAAUljN,EAAI6O,EAAMm5G,EAAI9tD,EAAMlX,GAC1B,GAAIluD,KAAKmjJ,OAAO1+I,OAAS,EAAG,CAExBsV,GADAm0C,EAASluD,KAAKkuN,WAAWn0M,EAAMm0C,EAAQ,GAEvC,IAAImgK,EAAOruN,KAAK++I,MAAMt6I,OAEtByuH,GADAhlE,EAASluD,KAAKkuN,WAAWh7F,EAAIhlE,GAAQ,GAErCkX,GAAQplE,KAAK++I,MAAMt6I,OAAS4pN,EAEhC,YAAKtvE,MAAMn2I,KAAKsC,EAAI6O,EAAMm5G,EAAI9tD,GACvBlX,CACX,CACA6/J,UAAU7vM,GACN,IAAM5E,OAAM9N,OAAQxL,KAAKiuN,WAAY//J,EAAS,GAAKg/J,gBAAiBltN,KAAKotD,KACrEyvD,EAAS,IAAIouG,GAAa3xM,EAAM4E,EAAUA,EAAQwK,MAAMumI,QAAU,EAAG/wI,EAAUqlM,GAAcrlM,EAAQwK,OAAS,GAClH,GAAIm0F,EAAOwuG,MACP6B,EAAaT,UAAUzsN,KAAK0oB,MAAOm0F,EAAOymG,iBAG1C,MAAQzmG,EAAOwuG,OAAO,CAClB,IAAIpuM,EAAQuwM,GAAUN,EAAajwM,MAAO4/F,EAAQ78G,KAAK0oB,OAGvD,GAFIzL,IACAixC,EAASluD,KAAKouN,UAAUpuN,KAAKotD,KAAKw/J,WAAWl2L,QAAQzZ,GAAQjd,KAAK0hN,UAAY7kG,EAAOx5B,MAAOrjF,KAAK0hN,UAAY7kG,EAAO/oE,IAAK,EAAGoa,IAC5H2uD,EAAOx5B,MAAQ,IACf,MAGZrjF,KAAK0hN,UAAYl2M,EACjBxL,KAAK6tN,iBACD7tN,KAAK0hN,UAAY1hN,KAAKkzH,IACtBlzH,KAAK0hN,WACb,CACA3tD,cACI,IAAIj6H,EAAO+I,SAAW,CAClB+wK,OAAQ5zM,KAAK++I,MACb17D,MAAOrjF,KAAKi0J,WACZxvJ,OAAQzE,KAAK0hN,UAAY1hN,KAAKi0J,WAC9BtyE,WACAo0H,MAAO,EACPlC,gBAAiB,KACjBC,OAAQ9zM,KAAK0tN,cAEjB5zL,EAAO,IAAI+I,GAAK/I,EAAKnvB,KAAMmvB,EAAKvC,SAAUuC,EAAKy4K,UAAWz4K,EAAKr1B,OAAQ,CAAC,CAACzE,KAAKotD,KAAK+/J,WAAYntN,KAAKotD,KAAK8/J,aAAaR,UAAU1sN,KAAK0oB,UACrI1oB,KAAKsyJ,OAAO1pJ,KAAKkxB,GACjB95B,KAAKqxJ,SAASzoJ,KAAK5I,KAAKi0J,WAAaj0J,KAAKmjJ,OAAO,GAAGppI,MACpD/Z,KAAK++I,MAAQ,GACb/+I,KAAK0tN,iBAAcz/M,EACnBjO,KAAKi0J,WAAaj0J,KAAK0hN,SAC3B,CACA5xJ,SACI,OAAO,IAAIjtB,GAAK7iC,KAAKotD,KAAKqlJ,QAASzyM,KAAKsyJ,OAAQtyJ,KAAKqxJ,SAAUrxJ,KAAK0hN,UAAY1hN,KAAKmjJ,OAAO,GAAGppI,MAAMy5L,SACzG,EAEJ,SAASga,GAAUvwM,EAAO4/F,EAAQn0F,GAC9Bm0F,EAAOx5B,MAAQw5B,EAAO/oE,IACtB,QAAStvC,EAAI,EAAGA,EAAI,GAAIA,IAAK,CACzB,IAAI8M,EAAS2L,EAAM4/F,EAAQn0F,GAC3B,GAAIm0F,EAAO/oE,IAAM+oE,EAAOx5B,MACpB,OAAO/xE,EAEf,MAAM,IAAI7K,MAAM,0CACpB,CACA,MAAMomN,GAAwBlhN,OAAOC,OAAO,MACtCqhN,GAAY,CAACpc,SACblvH,GAAuB,IAAIkwH,GAAQob,IACnCqB,GAAS,GAETC,GAAqB5iN,OAAOC,OAAO,MACnC4iN,GAA4B7iN,OAAOC,OAAO,MAChD,QAAU6iN,EAAYrrN,IAAS,CAC3B,CAAC,WAAY,gBACb,CAAC,aAAc,wBACf,CAAC,WAAY,kBACb,CAAC,MAAO,2BACR,CAAC,MAAO,WACR,CAAC,YAAa,iBACd,CAAC,OAAQ,YACT,CAAC,UAAW,yBACZ,CAAC,YAAa,YACd,CAAC,QAAS,WACV,CAAC,SAAU,WACX,CAAC,WAAY,iBAEborN,GAAaC,GAA2BC,GAAgB7B,GAAUzpN,GACtE,MAAMgqN,GACFvtN,YAAYu9L,GACRp9L,KAAKo9L,MAAQA,EACbp9L,KAAK2uN,MAAQhjN,OAAO2gM,OAAO3gM,OAAOC,OAAO,MAAO4iN,GACpD,CACA93L,QAAQgxI,GACJ,OAAQA,EAAU1nK,KAAK2uN,MAAMjnD,KAAS1nK,KAAK2uN,MAAMjnD,GAAOgnD,GAAgB1uN,KAAKo9L,MAAO11B,IAAtE,CAClB,EAEJ,MAAM2lD,GAAiC,IAAID,GAAWP,IACtD,SAAS+B,GAAYr5L,EAAMs5L,GACnBP,GAAOp9M,QAAQqkB,IAAQ,IAE3B+4L,GAAO1lN,KAAK2sB,GACZuqB,QAAQQ,KAAKuuK,GACjB,CACA,SAASH,GAAgBtxB,EAAO0xB,GAC5B,IAAIC,EAAS,GACb,QAAS3rN,KAAQ0rN,EAAOj+M,MAAM,KAAM,CAChC,IAAI6lD,EAAQ,GACZ,QAASnhC,KAAQnyB,EAAKyN,MAAM,KAAM,CAC9B,IAAI3E,EAASkxL,EAAM7nK,IAASglL,GAAKhlL,GAC5BrpB,EAGoB,mBAATA,EACPwqD,EAAMjyD,OAGPiyD,EAAQA,EAAMnvD,IAAI2E,GAFlB0iN,GAAYr5L,EAAO,YAAWA,0BAK9BmhC,EAAMjyD,OACNmqN,GAAYr5L,EAAO,OAAMA,sBAEzBmhC,EAAQ58C,MAAM2C,QAAQvQ,GAASA,EAAQ,CAACA,GAZ5C0iN,GAAYr5L,EAAO,4BAA2BA,IAAM,CAe5D,QAASmyI,KAAOhxG,EACZq4J,EAAOnmN,KAAK8+J,EAAG,CAEvB,IAAKqnD,EAAOtqN,OACR,OAAO,EACX,IAAIrB,EAAO0rN,EAAOllN,QAAQ,KAAM,KAAMkH,EAAM1N,EAAO,IAAM2rN,EAAOxnN,IAAIkU,GAAKA,EAAEvQ,IACvEu/I,EAAQ8jE,GAAMz9M,GAClB,GAAI25I,EACA,OAAOA,EAAMv/I,GACjB,IAAIP,EAAO4jN,GAAMz9M,GAAO+/L,UAAgB,CACpC3lM,GAAI+hN,GAAUxoN,OACdrB,OACAm+E,MAAO,CAAC84H,GAAU,CAAE7rK,CAACprC,GAAO2rN,OAEhC9B,UAAUrkN,KAAK+B,GACRA,EAAKO,EAChB,CCz9EA,MAAM8jN,GAMFnvN,YAIA6oB,EAIAorB,EAOAm7K,EAQAtyD,GACI38J,KAAK0oB,MAAQA,EACb1oB,KAAK8zC,IAAMA,EACX9zC,KAAKivN,SAAWA,EAChBjvN,KAAK28J,KAAOA,EAIZ38J,KAAKkvN,eAAiB,EAC1B,CAKAC,YAAYzmD,GACR,IAAIzrJ,EAAQijM,GAAWlgN,KAAK0oB,OAAOmqL,aAAa7yM,KAAK8zC,KAAK,GAC1D,KAAO72B,GAASyrJ,EAAMx3J,QAAQ+L,EAAM7Z,MAAQ,GACxC6Z,EAAQA,EAAM5Q,OAClB,OAAO4Q,EAAQ,CAAElD,KAAMkD,EAAMlD,KAAMm5G,GAAIlzH,KAAK8zC,IACxCpwB,KAAM1jB,KAAK0oB,MAAMqmI,SAAS9xI,EAAMlD,KAAM/Z,KAAK8zC,KAC3CnpC,KAAMsS,EAAMtS,MAAS,IAC7B,CAKAykN,YAAYhhK,GACR,IAAI90C,EAAOtZ,KAAK0oB,MAAMxnB,IAAIk7I,OAAOp8I,KAAK8zC,KAClCuvC,EAAQn4D,KAAKC,IAAI7R,EAAKS,KAAM/Z,KAAK8zC,IAAM,KACvC7Y,EAAM3hB,EAAKoK,KAAK3d,MAAMs9E,EAAQ/pE,EAAKS,KAAM/Z,KAAK8zC,IAAMx6B,EAAKS,MACzD28C,EAAQz7B,EAAImpL,OAAOiL,GAAajhK,GAAM,IAC1C,OAAOsI,EAAQ,EAAI,KAAO,CAAE38C,KAAMspE,EAAQ3sB,EAAOw8D,GAAIlzH,KAAK8zC,IAAKpwB,KAAMuX,EAAIl1B,MAAM2wD,GACnF,CAKI44J,cAAY,OAA8B,MAAvBtvN,KAAKkvN,cAAwB,CAMpDzuN,iBAAiBkK,EAAMnK,GACP,SAARmK,GAAmB3K,KAAKkvN,gBACxBlvN,KAAKkvN,eAAetmN,KAAKpI,EACjC,EAEJ,SAAS+uN,GAAMC,GACX,IAAI9lN,EAAOiC,OAAOtE,KAAKmoN,GAAO1yM,KAAK,IAC/B2yM,EAAQ,KAAKtsM,KAAKzZ,GACtB,OAAI+lN,IACA/lN,EAAOA,EAAKE,QAAQ,MAAO,KACvB,IAAG6lN,EAAQ,MAAQ,KAAK/lN,EAAKE,QAAQ,WAAY,UAC7D,CAqDA,MAAM8lN,GACF7vN,YAAY8vN,EAAYz3M,EAAQgjB,EAAO00L,GACnC5vN,KAAK2vN,WAAaA,EAClB3vN,KAAKkY,OAASA,EACdlY,KAAKk7B,MAAQA,EACbl7B,KAAK4vN,MAAQA,CACjB,EAEJ,SAASj+D,GAAIjpI,GAAS,OAAOA,EAAMm9H,UAAUR,KAAKtrI,IAAM,CAGxD,SAASs1M,GAAajhK,EAAMi1B,GACxB,IAAI2jE,EACJ,IAAM9uI,UAAWk2C,EACbyhK,EAAWxsI,GAAsB,KAAbnrE,EAAO,GAAW43M,EAAsC,KAA7B53M,EAAOA,EAAOzT,OAAS,GAC1E,OAAKorN,GAAaC,EAEX,IAAIjvJ,OAAQ,GAAEgvJ,EAAW,IAAM,QAAQ33M,KAAU43M,EAAS,IAAM,KAA4B,QAArB9oE,EAAK54F,EAAK5gD,aAA0B,IAAPw5I,EAAgBA,EAAM54F,EAAK2hK,WAAa,IAAM,IAD9I3hK,CAEf,CAKA,MAAM4hK,GAAgC7kE,YAkBhC8kE,GAA2B,IAAI75K,QACrC,SAAS85K,GAASh4M,GACd,IAAK4B,MAAM2C,QAAQvE,GACf,OAAOA,EACX,IAAIuyI,EAAQwlE,GAAYjsN,IAAIkU,GAC5B,OAAKuyI,GACDwlE,GAAYzpN,IAAI0R,EAAQuyI,EArFhC,SAAS0lE,GAAiB3zM,GACtB,IAAIZ,EAAUY,EAAKjV,IAAIinC,GAAiB,iBAALA,EAAgB,CAAE4hL,MAAO5hL,GAAMA,IAC7D6hL,EAAUn1L,GAAStf,EAAQsa,MAAMsY,GAAK,QAAQrrB,KAAKqrB,EAAE4hL,QAAU,CAAC,OAAQ,QAhBjF,SAASE,GAAY10M,GACjB,IAAIuE,EAAQxU,OAAOC,OAAO,MAAO4uM,EAAO7uM,OAAOC,OAAO,MACtD,QAAWwkN,WAAWx0M,EAAS,CAC3BuE,EAAMiwM,EAAM,KAAM,EAClB,QAAS5rN,EAAI,EAAGA,EAAI4rN,EAAM3rN,OAAQD,IAC9Bg2M,EAAK4V,EAAM5rN,KAAM,EAEzB,IAAI0T,EAASq3M,GAAMpvM,GAASovM,GAAM/U,GAAQ,KAC1C,MAAO,CAAC,IAAI35I,OAAO,IAAM3oD,GAAS,IAAI2oD,OAAO3oD,GACjD,CAO2Fo4M,CAAY10M,GACnG,OAAQsC,IACJ,IAAIjB,EAAQiB,EAAQkxM,YAAYl0L,GAChC,OAAOje,GAASiB,EAAQ+wM,SAAW,CAAEl1M,KAAMkD,EAAQA,EAAMlD,KAAOmE,EAAQ41B,IAAKl4B,UAASy0M,YAAa,KAE3G,CA8EwCF,CAAiBj4M,IAC9CuyI,CACX,CACA,MAAM8lE,GAAqCjlE,YACrCklE,GAAqCllE,YAK3C,MAAMmlE,GACF5wN,YAAYisN,GACR9rN,KAAK8rN,QAAUA,EACf9rN,KAAKwvN,MAAQ,GACbxvN,KAAKsmN,OAAS,GAGdtmN,KAAKw/L,IAAM,GACXx/L,KAAKo8J,QAAU,GACfp8J,KAAK0wN,OAAS,GACd1wN,KAAK4vN,MAAQ,EACb5vN,KAAK8uC,QAAU,GACf,QAASrV,EAAI,EAAGA,EAAIqyL,EAAQrnN,QAAS,CACjC,IAAIkrJ,EAAOlP,GAAYqrE,EAASryL,GAAI2rC,EAAOs7E,GAAciP,GACzD3vJ,KAAKwvN,MAAM5mN,KAAK+mJ,GAChB,IAAIp6H,EAAOu2L,EAAQ/lN,MAAM0zB,EAAGA,EAAI2rC,GAAOurJ,EAAQp7L,EAAKvX,cACpDhe,KAAKsmN,OAAO19M,KAAK63I,GAAYkwE,GAASp7L,EAAOA,EAAK3kB,cAAgB+/M,EAAO,IACzEl3L,GAAK2rC,EAETplE,KAAK4wN,OAAS9E,EAAQrnN,QAAUzE,KAAKwvN,MAAM/qN,MAC/C,CACAosN,IAAIjB,EAAO9gL,GACP,YAAK8gL,MAAQA,EACb5vN,KAAK8uC,QAAUA,EACR9uC,IACX,CAQAk7B,MAAM41L,GACF,GAA2B,GAAvB9wN,KAAK8rN,QAAQrnN,OACb,OAAOzE,KAAK6wN,KAAI,IAA4B,IAChD,GAAIC,EAAKrsN,OAASzE,KAAK8rN,QAAQrnN,OAC3B,OAAO,KACX,IAAM+qN,QAAOlJ,SAAQ9mB,MAAKpjC,UAASs0D,UAAW1wN,KAG9C,GAAoB,GAAhBwvN,EAAM/qN,OAAa,CACnB,IAAI0b,GAAQsgI,GAAYqwE,EAAM,GAAIC,GAAYrwE,GAAcvgI,IACxDyvM,GAAQmB,IAAaD,EAAKrsN,OAAS,GAAI,IAC3C,GAAI0b,IAASqvM,EAAM,GACd,IAAIrvM,IAASmmM,EAAO,GAGrB,OAAO,KAFPsJ,KAAS,GAEF,CACX,OAAO5vN,KAAK6wN,IAAIjB,GAAO,CAAC,EAAGmB,IAAU,CAEzC,IAAI9wC,EAAS6wC,EAAK5/M,QAAQlR,KAAK8rN,SAC/B,GAAc,GAAV7rC,EACA,OAAOjgL,KAAK6wN,IAAIC,EAAKrsN,QAAUzE,KAAK8rN,QAAQrnN,OAAS,GAAI,IAA4B,CAAC,EAAGzE,KAAK8rN,QAAQrnN,SAC1G,IAAI8rB,EAAMi/L,EAAM/qN,OAAQusN,EAAQ,EAChC,GAAI/wC,EAAS,EAAG,CACZ,QAASz7K,GAAI,EAAG2D,GAAI+iB,KAAK4lC,IAAIggK,EAAKrsN,OAAQ,KAAMD,GAAI2D,IAAK6oN,EAAQzgM,GAAM,CACnE,IAAIzX,GAAO2nI,GAAYqwE,EAAMtsN,KACzBsU,IAAQ02M,EAAMwB,IAAUl4M,IAAQwtM,EAAO0K,MACvCxxB,EAAIwxB,KAAWxsN,IACnBA,IAAKk8I,GAAc5nI,GAAI,CAG3B,GAAIk4M,EAAQzgM,EACR,OAAO,KAIf,IAAI0gM,EAAY,EAIZC,EAAW,EAAGC,GAAe,EAE7BC,GAAa,EAAGC,IAAgB,EAAIC,IAAc,EAClDC,GAAW,QAAQpuM,KAAK2tM,GAAOU,IAAe,EAElD,QAAShtN,GAAI,EAAG2D,GAAI+iB,KAAK4lC,IAAIggK,EAAKrsN,OAAQ,KAAMqlK,GAAW,EAAoBtlK,GAAI2D,IAAK+oN,EAAW3gM,GAAM,CACrG,IAAIzX,GAAO2nI,GAAYqwE,EAAMtsN,IACzBy7K,EAAS,IACLgxC,EAAY1gM,GAAOzX,IAAQ02M,EAAMyB,KACjC70D,EAAQ60D,KAAezsN,IACvB4sN,GAAa7gM,IACTzX,IAAQ02M,EAAM4B,KAAet4M,IAAQwtM,EAAO8K,KAC1B,GAAdA,KACAC,GAAgB7sN,IACpB8sN,GAAc9sN,GAAI,EAClB4sN,MAGAA,GAAa,IAIzB,IAAItyE,GAAIn0I,GAAOmO,GAAO,IACfA,IAAQ,IAAMA,IAAQ,IAAMA,IAAQ,IAAMA,IAAQ,IAAM,EAAmBA,IAAQ,IAAMA,IAAQ,GAAK,EAAmB,GACxHgmI,GAAKgC,GAAchoI,MAAUgmI,GAAGluI,cAAgB,EAAmBkuI,IAAMA,GAAG9gI,cAAgB,EAAmB,IAClHxZ,IAAa,GAARmG,IAA4B4mN,IAAwB,GAAZznD,IAA0C,GAARn/J,MAC5E6kN,EAAM0B,IAAap4M,IAASwtM,EAAO4K,IAAap4M,KAASq4M,GAAe,GACxET,EAAOQ,KAAc1sN,GAChBksN,EAAOjsN,SACZ+sN,IAAe,IAEvB1nD,GAAWn/J,GACXnG,IAAKk8I,GAAc5nI,GAAI,CAE3B,OAAIo4M,GAAY3gM,GAAoB,GAAbmgM,EAAO,IAAWc,GAC9BxxN,KAAKsR,QAAoC6/M,GAAe,IAA8B,GAA1E,IAA8ET,EAAQI,GACzGM,IAAc7gM,GAAwB,GAAjB8gM,GACdrxN,KAAK6wN,KAAI,IAA8BC,EAAKrsN,QAAU6sN,IAAeR,EAAKrsN,OAAS,GAAI,KAA6B,CAAC,EAAG6sN,KAC/HrxC,GAAS,EACFjgL,KAAK6wN,KAAI,IAA8BC,EAAKrsN,OAAQ,CAACw7K,EAAQA,EAASjgL,KAAK8rN,QAAQrnN,SAC1F2sN,IAAc7gM,EACPvwB,KAAK6wN,KAAI,IAA4DC,EAAKrsN,OAAQ,CAAC4sN,GAAeC,KACzGJ,GAAY3gM,EACLvwB,KAAKsR,QAAoC6/M,GAAe,IAA8B,GAA1E,IAA+E,KAC7FK,GAAe,GAAI,MAA0Bd,EAAQI,GACvC,GAAhBtB,EAAM/qN,OAAc,KACrBzE,KAAKsR,QAAQkuL,EAAI,IAAK,IAA8B,GAAK,IAA8B,KAAyBA,EAAKsxB,EAC/H,CACAx/M,OAAOs+M,EAAOrd,EAAWue,GACrB,IAAIx/M,EAAS,GAAI9M,EAAI,EACrB,QAASsvC,KAAOy+J,EAAW,CACvB,IAAIr/E,EAAKp/E,GAAO9zC,KAAK4wN,OAASlwE,GAAcD,GAAYqwE,EAAMh9K,IAAQ,GAClEtvC,GAAK8M,EAAO9M,EAAI,IAAMsvC,EACtBxiC,EAAO9M,EAAI,GAAK0uH,GAEhB5hH,EAAO9M,KAAOsvC,EACdxiC,EAAO9M,KAAO0uH,GAGtB,OAAOlzH,KAAK6wN,IAAIjB,EAAQkB,EAAKrsN,OAAQ6M,EACzC,EAEJ,MAAMmgN,GACF5xN,YAAYisN,GACR9rN,KAAK8rN,QAAUA,EACf9rN,KAAK8uC,QAAU,GACf9uC,KAAK4vN,MAAQ,EACb5vN,KAAKsmN,OAASwF,EAAQl7M,aAC1B,CACAsqB,MAAM41L,GACF,GAAIA,EAAKrsN,OAASzE,KAAK8rN,QAAQrnN,OAC3B,OAAO,KACX,IAAI4+E,EAAQytI,EAAK/qN,MAAM,EAAG/F,KAAK8rN,QAAQrnN,QACnCy2B,EAAQmoD,GAASrjF,KAAK8rN,QAAU,EAAIzoI,EAAMzyE,eAAiB5Q,KAAKsmN,QAAS,IAA8B,KAC3G,OAAa,MAATprL,EACO,MACXl7B,KAAK8uC,QAAU,CAAC,EAAGu0C,EAAM5+E,QACzBzE,KAAK4vN,MAAQ10L,GAAS41L,EAAKrsN,QAAUzE,KAAK8rN,QAAQrnN,OAAS,GAAI,KACxDzE,KACX,EAGJ,MAAM0xN,GAAgC1rE,UAAa,CAC/CC,QAAQgK,GACGD,GAAcC,EAAS,CAC1B0hE,kBAAkB,EAClBC,qBAAsB,KAAM,EAC5BC,sBAAuB,IACvBC,cAAc,EACd17J,SAAU,KACV27J,aAAa,EACbC,mBAAoB,IACpBC,eAAe,EACfC,aAAc,IAAM,GACpBC,YAAa,IAAM,GACnBC,aAAa,EACbC,OAAO,EACPC,aAAc,GACdC,aAAcC,GACdC,cAAc,EACdC,mBAAoB,CAAC1hM,EAAGC,IAAMD,EAAEo/L,MAAMp7K,cAAc/jB,EAAEm/L,OACtDuC,iBAAkB,GAClBC,eAAgB,KACjB,CACCX,cAAe,CAACjhM,EAAGC,IAAMD,GAAKC,EAC9B8gM,YAAa,CAAC/gM,EAAGC,IAAMD,GAAKC,EAC5BohM,MAAO,CAACrhM,EAAGC,IAAMD,GAAKC,EACtBihM,aAAc,CAAClhM,EAAGC,IAAMqG,GAAKu7L,GAAU7hM,EAAEsG,GAAIrG,EAAEqG,IAC/C66L,YAAa,CAACnhM,EAAGC,IAAMqG,GAAKu7L,GAAU7hM,EAAEsG,GAAIrG,EAAEqG,IAC9Cg7L,aAAc,CAACthM,EAAGC,IAAMD,EAAEvW,OAAOwW,GACjCwhM,aAAc,CAACzhM,EAAGC,IAAMD,GAAKC,MAIzC,SAAS4hM,GAAU7hM,EAAGC,GAClB,OAAOD,EAAIC,EAAID,EAAI,IAAMC,EAAID,EAAIC,CACrC,CACA,SAASuhM,GAAoB71D,EAAMngJ,EAAMs2M,EAAQv8J,EAAMizI,EAAOt3D,GAC1D,IACkBhkF,EAAQ6kK,EADtBnnB,EAAMjvC,EAAK2X,eAAiB3M,OAAe13D,EAAO27F,EAAKonB,GAAS,EAChE3jE,EAAO,MACP4jE,EAAYz2M,EAAKyzF,KAAOu5F,EAAMv5F,KAAMijH,GAAa1pB,EAAMt5F,MAAQ1zF,EAAK0zF,MACpEijH,GAAY58J,EAAK25C,MAAQ35C,EAAK05C,KAAMmjH,GAAa78J,EAAK4iG,OAAS5iG,EAAKgpF,IAKxE,GAJItvC,GAAQgjH,EAAY/nM,KAAK4lC,IAAIqiK,GAAWD,IACxCjjH,GAAO,GACDA,GAAQijH,GAAahoM,KAAK4lC,IAAIqiK,GAAWF,KAC/ChjH,GAAO,GACPkjH,KAAcljH,EAAOgjH,EAAYC,IACjChlK,EAAShjC,KAAKC,IAAIq+K,EAAMjqD,IAAKr0H,KAAK4lC,IAAIgiK,EAAOvzE,IAAKiqD,EAAMrwC,OAASi6D,KAAe52M,EAAK+iI,IACrFwzE,EAAW7nM,KAAK4lC,IAAI,IAAsBm/C,EAAOgjH,EAAYC,QAE5D,CACDF,GAAS,EACTD,EAAW7nM,KAAK4lC,IAAI,KAAuB86I,EAAMpvL,EAAK0zF,MAAQs5F,EAAMt5F,MAAQ1zF,EAAKyzF,MAAQ,IACzF,IAAIojH,GAAa7pB,EAAMrwC,OAAS38I,EAAK28I,OACjCk6D,IAAcD,IAAcC,GAAa72M,EAAK+iI,IAC9CrxF,EAAS4kK,EAAO35D,OAAS38I,EAAK+iI,KAG9B8P,EAAO,SACPnhG,EAAS1xC,EAAK28I,OAAS25D,EAAOvzE,KAKtC,MAAO,CACHx4I,MAAQ,GAAEsoJ,MAASnhG,IAHT1xC,EAAK28I,OAAS38I,EAAK+iI,KAAOrN,EAAQ4nB,+BAGQi5D,IAF1Cv2M,EAAK0zF,MAAQ1zF,EAAKyzF,MAAQiiC,EAAQ0nB,iBAG5CmI,MAAO,sBAAwBixD,EAAUpnB,EAAM,cAAgB,eAAkB37F,EAAO,OAAS,SAEzG,CAgDA,SAASqjH,GAAoBpvM,EAAOqvM,EAAUpoM,GAC1C,GAAIjH,GAASiH,EACT,MAAO,CAAEpR,KAAM,EAAGm5G,GAAIhvG,GAG1B,GAFIqvM,EAAW,IACXA,EAAW,GACXA,GAAarvM,GAAS,EAAI,CAC1B,IAAIu/H,EAAMv4H,KAAKosF,MAAMi8G,EAAWpoM,GAChC,MAAO,CAAEpR,KAAM0pI,EAAMt4H,EAAK+nG,IAAKuwB,EAAM,GAAKt4H,EAAI,CAElD,IAAIs4H,EAAMv4H,KAAKosF,OAAOpzF,EAAQqvM,GAAYpoM,GAC1C,MAAO,CAAEpR,KAAMmK,GAASu/H,EAAM,GAAKt4H,EAAK+nG,GAAIhvG,EAAQu/H,EAAMt4H,EAC9D,CACA,MAAMqoM,GACF3zN,YAAY88J,EAAM82D,EAAYC,GAC1B1zN,KAAK28J,KAAOA,EACZ38J,KAAKyzN,WAAaA,EAClBzzN,KAAK0zN,gBAAkBA,EACvB1zN,KAAKu2D,KAAO,KACZv2D,KAAK2zN,YAAc,KACnB3zN,KAAK4zN,aAAe,CAChB/yC,KAAM,IAAM7gL,KAAK6zN,cACjBv4B,MAAQxnJ,GAAQ9zC,KAAK8zN,UAAUhgL,GAC/BhjC,IAAK9Q,MAETA,KAAKwpM,MAAQ,KACbxpM,KAAK+zN,aAAe,GACpB,IAAIC,EAASr3D,EAAKj0I,MAAMi+H,MAAM8sE,IACxB73M,UAAS23M,YAAaS,EAAOtxM,KAC/BgtB,EAASitH,EAAKj0I,MAAMm+H,MAAM6qE,IAC9B1xN,KAAKi0N,cA3Eb,SAASA,GAAcvkL,GACnB,IAAIljC,EAAUkjC,EAAO4iL,aAAavsN,QAClC,OAAI2pC,EAAO2iL,OACP7lN,EAAQ5D,KAAK,CACT6tJ,OAAOk5D,GACH,IAAIuE,EAAO7yN,SAASL,cAAc,OAClCkzN,SAAK7mN,UAAU/E,IAAI,qBACfqnN,EAAWhlN,MACXupN,EAAK7mN,UAAU/E,OAAOqnN,EAAWhlN,KAAKkG,MAAM,QAAQtJ,IAAI08J,GAAO,qBAAuBA,IAC1FiwD,EAAKvxN,aAAa,cAAe,QAC1BuxN,CACX,EACA5xL,SAAU,KAElB91B,EAAQ5D,KAAK,CACT6tJ,OAAOk5D,EAAYwE,EAAIC,EAAIl5L,GACvB,IAAIm5L,EAAWhzN,SAASL,cAAc,QACtCqzN,EAASx3I,UAAY,qBACrB,IAAIuzI,EAAQT,EAAW2E,cAAgB3E,EAAWS,MAAO3sE,EAAM,EAC/D,QAAStkE,EAAI,EAAGA,EAAIjkD,EAAMz2B,QAAS,CAC/B,IAAIsV,EAAOmhB,EAAMikD,KAAM+zC,EAAKh4F,EAAMikD,KAC9BplE,EAAO0pI,GACP4wE,EAAS3rN,YAAYrH,SAAS+K,eAAegkN,EAAMrqN,MAAM09I,EAAK1pI,KAClE,IAAI65I,EAAOygE,EAAS3rN,YAAYrH,SAASL,cAAc,SACvD4yJ,EAAKlrJ,YAAYrH,SAAS+K,eAAegkN,EAAMrqN,MAAMgU,EAAMm5G,KAC3D0gC,EAAK/2E,UAAY,2BACjB4mE,EAAMvwB,EAEV,OAAIuwB,EAAM2sE,EAAM3rN,QACZ4vN,EAAS3rN,YAAYrH,SAAS+K,eAAegkN,EAAMrqN,MAAM09I,KACtD4wE,CACX,EACA/xL,SAAU,IACX,CACCm0H,OAAOk5D,GACH,IAAKA,EAAW7vC,OACZ,OAAO,KACX,IAAIy0C,EAAYlzN,SAASL,cAAc,QACvCuzN,SAAU13I,UAAY,sBACtB03I,EAAU9rN,YAAcknN,EAAW7vC,OAC5By0C,CACX,EACAjyL,SAAU,KAEP91B,EAAQwpB,KAAK,CAAChF,EAAGC,IAAMD,EAAEsR,SAAWrR,EAAEqR,UAAU/6B,IAAIypB,GAAKA,EAAEylI,OACtE,CA8B6Bw9D,CAAcvkL,GACnC1vC,KAAKmyN,YAAcziL,EAAOyiL,YAC1BnyN,KAAKkyN,aAAexiL,EAAOwiL,aAC3BlyN,KAAKklJ,MAAQouE,GAAoB13M,EAAQnX,OAAQ8uN,EAAU7jL,EAAOsiL,oBAClEhyN,KAAKoE,IAAM/C,SAASL,cAAc,OAClChB,KAAKoE,IAAIy4E,UAAY,0BACrB78E,KAAKw0N,mBAAmB73D,EAAKj0I,OAC7B1oB,KAAKoE,IAAI3D,iBAAiB,YAAc0H,IACpC,IAAMyT,WAAY+gJ,EAAKj0I,MAAMi+H,MAAM8sE,GAAY/wM,KAC/C,QAAyBwY,EAAhB92B,EAAM+D,EAAEpG,OAAeqC,GAAOA,GAAOpE,KAAKoE,IAAKA,EAAMA,EAAItD,WAC9D,GAAoB,MAAhBsD,EAAIy0J,WAAqB39H,EAAQ,UAAU6lC,KAAK38D,EAAI8G,OAASgwB,EAAM,GAAKtf,EAAQnX,OAGhF,OAFAzE,KAAK0zN,gBAAgB/2D,EAAM/gJ,GAASsf,EAAM,UAC1C/yB,EAAE6B,gBACF,GAIZhK,KAAKoE,IAAI3D,iBAAiB,WAAa0H,IACnC,IAAIugB,EAAQi0I,EAAKj0I,MAAMi+H,MAAM3mJ,KAAKyzN,YAAY,GAC1C/qM,GAASA,EAAMwpH,SAAWyqB,EAAKj0I,MAAMm+H,MAAM6qE,IAAkBK,aAC7D5pN,EAAE+7L,eAAiBvnC,EAAK4S,YACxB5S,EAAKvyI,SAAS,CAAEqhI,QAAS+kE,GAAsBn5M,GAAG,OAAO,GAEjErX,KAAKy0N,YAAY74M,EAASo4M,EAAO9oN,GACrC,CACAgsJ,QAAUl3J,KAAK00N,WAAa,CAC5BD,YAAY74M,EAAS1Q,GACblL,KAAKwc,MACLxc,KAAKwc,KAAK5b,SACdZ,KAAKwc,KAAOxc,KAAKoE,IAAIsE,YAAY1I,KAAK20N,cAAc/4M,EAAS1Q,EAAIlL,KAAKklJ,QACtEllJ,KAAKwc,KAAK/b,iBAAiB,SAAU,KAC7BT,KAAKu2D,MACLv2D,KAAK28J,KAAK44B,eAAev1L,KAAK4zN,aAAY,EAEtD,CACAt5M,OAAOA,GACH,IAAI0sI,EACJ,IAAIgtE,EAAS15M,EAAOoO,MAAMi+H,MAAM3mJ,KAAKyzN,YACjC5tL,EAAYvrB,EAAOuxI,WAAWlF,MAAM3mJ,KAAKyzN,YAE7C,GADAzzN,KAAKw0N,mBAAmBl6M,EAAOoO,OAC3BsrM,GAAUnuL,EAAW,CACrB,IAAMjqB,UAAS23M,WAAU72J,YAAas3J,EAAOtxM,OACxCmjB,EAAUnjB,MAAQmjB,EAAUnjB,KAAK9G,SAAWA,KAC7C5b,KAAKklJ,MAAQouE,GAAoB13M,EAAQnX,OAAQ8uN,EAAUj5M,EAAOoO,MAAMm+H,MAAM6qE,IAAkBM,oBAChGhyN,KAAKy0N,YAAY74M,EAASo4M,EAAO9oN,KAErClL,KAAK00N,YACDh4J,IAAuC,QAAzBsqF,EAAKnhH,EAAUnjB,YAAyB,IAAPskI,OAAgB,EAASA,EAAGtqF,WAC3E18D,KAAKoE,IAAIiJ,UAAU48L,OAAO,qCAAsCvtI,EAAQ,CAEpF,CACA83J,mBAAmB9rM,GACf,IAAIu7I,EAAMjkK,KAAKkyN,aAAaxpM,GAC5B,GAAIu7I,GAAOjkK,KAAK+zN,aAAc,CAC1B,QAASz8L,KAAKt3B,KAAK+zN,aAAaljN,MAAM,KAC9BymB,GACAt3B,KAAKoE,IAAIiJ,UAAUzM,OAAO02B,GAClC,QAASA,KAAK2sI,EAAIpzJ,MAAM,KAChBymB,GACAt3B,KAAKoE,IAAIiJ,UAAU/E,IAAIgvB,GAC/Bt3B,KAAK+zN,aAAe9vD,EAE5B,CACAimC,WAAWV,GACPxpM,KAAKwpM,MAAQA,EACTxpM,KAAKu2D,MACLv2D,KAAK28J,KAAK44B,eAAev1L,KAAK4zN,aACtC,CACAc,YACI,IAAIV,EAASh0N,KAAK28J,KAAKj0I,MAAMi+H,MAAM3mJ,KAAKyzN,YAAa/wM,EAAOsxM,EAAOtxM,KAKnE,IAJIA,EAAK6wM,UAAW,GAAM7wM,EAAK6wM,SAAWvzN,KAAKklJ,MAAMnrI,MAAQ2I,EAAK6wM,UAAYvzN,KAAKklJ,MAAMhyB,MACrFlzH,KAAKklJ,MAAQouE,GAAoB5wM,EAAK9G,QAAQnX,OAAQie,EAAK6wM,SAAUvzN,KAAK28J,KAAKj0I,MAAMm+H,MAAM6qE,IAAkBM,oBAC7GhyN,KAAKy0N,YAAY/xM,EAAK9G,QAASo4M,EAAO9oN,KAEtClL,KAAK40N,qBAAqBlyM,EAAK6wM,UAAW,CAC1CvzN,KAAK60N,cACL,IAAMlF,cAAejtM,EAAK9G,QAAQ8G,EAAK6wM,WACjCh9J,QAASo5J,EACf,IAAKp5J,EACD,OACJ,IAAIu+J,EAA6B,iBAATv+J,EAAoBl1D,SAAS+K,eAAemqD,GAAQA,EAAKo5J,GACjF,IAAKmF,EACD,OACA,SAAUA,EACVA,EAAW3wN,KAAKg5C,IACRA,GAAOn9C,KAAK28J,KAAKj0I,MAAMi+H,MAAM3mJ,KAAKyzN,YAAY,IAAUO,GACxDh0N,KAAK+0N,YAAY53K,EAAKwyK,EAAU,GACrC7tK,MAAM35C,GAAK8jK,GAAajsK,KAAK28J,KAAKj0I,MAAOvgB,EAAG,oBAG/CnI,KAAK+0N,YAAYD,EAAYnF,EAAU,CAGnD,CACAoF,YAAYvoN,EAASmjN,GACjB3vN,KAAK60N,cACL,IAAIG,EAAOh1N,KAAKu2D,KAAOl1D,SAASL,cAAc,OAE9C,GADAg0N,EAAKn4I,UAAY,+BACO,MAApBrwE,EAAQ/K,SACRuzN,EAAKtsN,YAAY8D,GACjBxM,KAAK2zN,YAAc,SAElB,CACD,IAAMvvN,MAAK0H,WAAYU,EACvBwoN,EAAKtsN,YAAYtE,GACjBpE,KAAK2zN,YAAc7nN,GAAW,KAElC9L,KAAKoE,IAAIsE,YAAYssN,GACrBh1N,KAAK28J,KAAK44B,eAAev1L,KAAK4zN,aAClC,CACAgB,qBAAqBrB,GACjB,IAAI/sN,EAAM,KACV,QAASyuN,EAAMj1N,KAAKwc,KAAK0mB,WAAY1+B,EAAIxE,KAAKklJ,MAAMnrI,KAAMk7M,EAAKA,EAAMA,EAAIloN,YAAavI,IAC9D,MAAhBywN,EAAIp8D,UAAqBo8D,EAAI/pN,GAGxB1G,GAAK+uN,EACL0B,EAAIC,aAAa,mBAClBD,EAAItyN,aAAa,gBAAiB,QAClC6D,EAAMyuN,GAINA,EAAIC,aAAa,kBACjBD,EAAI/nN,gBAAgB,iBAVxB1I,IAaR,OAAIgC,GAwFZ,SAASulJ,GAAe/0H,EAAW/wB,GAC/B,IAAIoG,EAAS2qB,EAAU6rI,wBACnBs6C,EAAOl3M,EAAQ48J,wBACfhJ,EAASxtJ,EAAO08E,OAAS/xD,EAAU8iI,aACnCqjD,EAAK59D,IAAMlzI,EAAOkzI,IAClBvoH,EAAU2jI,YAActuJ,EAAOkzI,IAAM49D,EAAK59D,KAAOsa,EAC5CsjD,EAAKhkD,OAAS9sJ,EAAO8sJ,SAC1BniI,EAAU2jI,YAAcwiD,EAAKhkD,OAAS9sJ,EAAO8sJ,QAAUU,EAC/D,CA/FY9N,CAAe/rJ,KAAKwc,KAAMhW,GACvBA,CACX,CACAqtN,cACI,IAAI3mE,EAAMltJ,KAAKoE,IAAI9B,cAAc,mBACjC,IAAK4qJ,IAAQltJ,KAAKu2D,KACd,OAAO,KACX,IAAI4+J,EAAWn1N,KAAKoE,IAAIy+J,wBACpBuyD,EAAWp1N,KAAKu2D,KAAKssG,wBACrBwyD,EAAUnoE,EAAI2V,wBACd2mC,EAAQxpM,KAAKwpM,MACjB,IAAKA,EAAO,CACR,IAAInyC,EAAMr3J,KAAKoE,IAAIgzJ,cAAcE,aAAet1J,OAChDwnM,EAAQ,CAAEv5F,KAAM,EAAGsvC,IAAK,EAAGrvC,MAAOmnD,EAAIkC,WAAYJ,OAAQ9B,EAAImC,YAAY,CAE9E,OAAI67D,EAAQ91E,IAAMr0H,KAAK4lC,IAAI04I,EAAMrwC,OAAQg8D,EAASh8D,QAAU,IACxDk8D,EAAQl8D,OAASjuI,KAAKC,IAAIq+K,EAAMjqD,IAAK41E,EAAS51E,KAAO,GAC9C,KACJv/I,KAAK28J,KAAKj0I,MAAMm+H,MAAM6qE,IAAkBa,aAAavyN,KAAK28J,KAAMw4D,EAAUE,EAASD,EAAU5rB,EAAOxpM,KAAKoE,IACpH,CACA0vN,UAAUhgL,GACF9zC,KAAKu2D,OACDziB,GACIA,EAAI/sC,QACJ/G,KAAKu2D,KAAKxvD,MAAM08J,QAAU3vH,EAAI/sC,OAClC/G,KAAKu2D,KAAKsmB,UAAY,iCAAmC/oC,EAAIiuH,OAAS,KAGtE/hK,KAAKu2D,KAAKxvD,MAAM08J,QAAU,cAGtC,CACAkxD,cAAc/4M,EAAS1Q,EAAIg6I,GACvB,MAAMowE,EAAKj0N,SAASL,cAAc,MAClCs0N,EAAGpqN,GAAKA,EACRoqN,EAAG3yN,aAAa,OAAQ,WACxB2yN,EAAG3yN,aAAa,gBAAiB,QACjC2yN,EAAG3yN,aAAa,aAAc3C,KAAK28J,KAAKj0I,MAAMwmI,OAAO,gBACrD,IAAIqmE,EAAa,KACjB,QAAS/wN,EAAI0gJ,EAAMnrI,KAAMvV,EAAI0gJ,EAAMhyB,GAAI1uH,IAAK,CACxC,IAAMmrN,aAAYz0L,SAAUtf,EAAQpX,IAAMgxN,WAAY7F,EACtD,GAAI6F,EAAS,CACT,IAAIpyN,EAAyB,iBAAXoyN,EAAsBA,EAAUA,EAAQpyN,KACtDA,GAAQmyN,IAAe/wN,EAAI0gJ,EAAMnrI,MAAsB,GAAdmrI,EAAMnrI,QAC/Cw7M,EAAanyN,EACS,iBAAXoyN,GAAuBA,EAAQC,OACtCH,EAAG5sN,YAAY8sN,EAAQC,OAAOD,IAGjBF,EAAG5sN,YAAYrH,SAASL,cAAc,uBAC5CyH,YAAcrF,GAIjC,MAAMsyN,EAAKJ,EAAG5sN,YAAYrH,SAASL,cAAc,OACjD00N,EAAGxqN,GAAKA,EAAK,IAAM1G,EACnBkxN,EAAG/yN,aAAa,OAAQ,UACxB,IAAIshK,EAAMjkK,KAAKmyN,YAAYxC,GACvB1rD,IACAyxD,EAAG74I,UAAYonF,GACnB,QAAS/rJ,KAAUlY,KAAKi0N,cAAe,CACnC,IAAIpzN,GAAOqX,EAAOy3M,EAAY3vN,KAAK28J,KAAKj0I,MAAO1oB,KAAK28J,KAAMzhI,GACtDr6B,IACA60N,EAAGhtN,YAAY7H,GAAI,EAG/B,OAAIqkJ,EAAMnrI,MACNu7M,EAAGjoN,UAAU/E,IAAI,kCACjB48I,EAAMhyB,GAAKt3G,EAAQnX,QACnB6wN,EAAGjoN,UAAU/E,IAAI,qCACdgtN,CACX,CACAT,cACQ70N,KAAKu2D,OACDv2D,KAAK2zN,aACL3zN,KAAK2zN,cACT3zN,KAAKu2D,KAAK31D,SACVZ,KAAKu2D,KAAO,KAEpB,CACAzqD,UACI9L,KAAK60N,aACT,EAEJ,SAASc,GAAkBlC,EAAYC,GACnC,OAAQ/2D,GAAS,IAAI62D,GAAkB72D,EAAM82D,EAAYC,EAC7D,CAaA,SAAS9D,GAAMkD,GACX,OAA6B,KAArBA,EAAO8C,OAAS,IAAY9C,EAAOliM,MAAQ,GAAK,IAAMkiM,EAAOv8J,KAAO,EAAI,IAC3Eu8J,EAAOnoN,KAAO,EAAI,EAC3B,CA6DA,MAAMkrN,GACFh2N,YAAY+b,EAASu+C,EAAO+3E,EAASthB,EAAW2iG,EAAU72J,GACtD18D,KAAK4b,QAAUA,EACf5b,KAAKm6D,MAAQA,EACbn6D,KAAKkyI,QAAUA,EACflyI,KAAK4wH,UAAYA,EACjB5wH,KAAKuzN,SAAWA,EAChBvzN,KAAK08D,SAAWA,CACpB,CACAo5J,YAAYvC,EAAUroN,GAClB,OAAOqoN,GAAYvzN,KAAKuzN,UAAYA,GAAYvzN,KAAK4b,QAAQnX,OAASzE,KAChE,IAAI61N,GAAiB71N,KAAK4b,QAASm6M,GAAU7qN,EAAIqoN,GAAWvzN,KAAKkyI,QAASlyI,KAAK4wH,UAAW2iG,EAAUvzN,KAAK08D,SACnH,CACAv8D,aAAagpB,EAAQT,EAAOxd,EAAIo7F,EAAMioD,GAClC,IAAI3yI,EA1EZ,SAASo6M,GAAY7sM,EAAQT,GACzB,IAAI9M,EAAU,GACV2lI,EAAW,KACX00E,EAAanD,IACbl3M,EAAQhT,KAAKkqN,GACb,IAAM0C,WAAY1C,EAAOnD,WACzB,GAAI6F,EAAS,CACJj0E,IACDA,EAAW,IACf,IAAIn+I,EAAyB,iBAAXoyN,EAAsBA,EAAUA,EAAQpyN,KACrDm+I,EAAS3xG,KAAKjmC,GAAKA,EAAEvG,MAAQA,IAC9Bm+I,EAAS34I,KAAuB,iBAAX4sN,EAAsB,CAAEpyN,QAASoyN,EAAO,GAGrEjnE,EAAO7lI,EAAMm+H,MAAM6qE,IACvB,QAAS1gM,KAAK7H,EACV,GAAI6H,EAAEklM,YAAa,CACf,IAAIC,EAAWnlM,EAAE1f,OAAO6kN,SACxB,IAAwB,IAApBnlM,EAAE1f,OAAOyG,OACT,QAAS+6M,KAAU9hM,EAAE1f,OAAOsK,QACxBq6M,EAAU,IAAIvG,GAAOoD,EAAQ9hM,EAAE9Y,OAAQi+M,EAAWA,EAASrD,GAAU,GAAI,IAAMl3M,EAAQnX,aAG1F,CACD,IAA4Cy2B,EAAxC4wL,EAAUpjM,EAAMqmI,SAAS/9H,EAAEjX,KAAMiX,EAAEkiG,IACnC1jF,GAAU++G,EAAKkkE,aAAe,IAAIhB,GAAc3F,GAAW,IAAI2E,GAAa3E,GAChF,QAASgH,MAAU9hM,EAAE1f,OAAOsK,QACxB,GAAIsf,EAAQsU,GAAQtU,MAAM43L,GAAO1C,OAAQ,CACrC,IAAIthL,GAAWgkL,GAAOwB,aAA+B6B,EAAWA,EAASrD,GAAQ53L,EAAM4T,SAAW,GAA7D5T,EAAM4T,QAC3CmnL,EAAU,IAAIvG,GAAOoD,GAAQ9hM,EAAE9Y,OAAQ42B,GAAS5T,EAAM00L,OAASkD,GAAO8C,OAAS,IAAG,GAItG,GAAIr0E,EAAU,CACV,IAAI60E,EAAezqN,OAAOC,OAAO,MAAOkoC,EAAM,EAC1CrK,EAAM,CAACzY,EAAGC,MAAQ,IAAI+1H,GAAIif,GAAI,OAA0B,QAAjBjf,GAAKh2H,EAAEwjI,YAAyB,IAAPxN,GAAgBA,GAAK,MAA0B,QAAjBif,GAAKh1I,GAAEujI,YAAyB,IAAPyR,GAAgBA,GAAK,OAASj1I,EAAE5tB,KAAO6tB,GAAE7tB,MAAO,EAAK,IAChL,QAASuG,KAAK43I,EAASvrH,KAAKyT,GACxBqK,GAAO,IACPsiL,EAAazsN,EAAEvG,MAAQ0wC,EAE3B,QAASg/K,KAAUl3M,EAAS,CACxB,IAAM45M,YAAY1C,EAAOnD,WACrB6F,KACA1C,EAAOlD,OAASwG,EAA+B,iBAAXZ,GAAsBA,GAAUA,GAAQpyN,MAAI,EAG5F,IAAIkO,EAAS,GAAIg1F,EAAO,KACpBhmE,EAAUiuH,EAAKmkE,mBACnB,QAASuC,KAAOr5M,EAAQoa,KAAK,CAAChF,EAAGC,IAAOA,EAAE2+L,MAAQ5+L,EAAE4+L,OAAUtvL,EAAQtP,EAAE2+L,WAAY1+L,EAAE0+L,aAAc,CAChG,IAAIh+D,EAAMsjE,EAAItF,YACTrpH,GAAQA,EAAK8pH,OAASz+D,EAAIy+D,OAAS9pH,EAAKw5E,QAAUnuB,EAAImuB,QACzC,MAAbx5E,EAAK37F,MAA4B,MAAZgnJ,EAAIhnJ,MAAgB27F,EAAK37F,MAAQgnJ,EAAIhnJ,MAC3D27F,EAAK11E,OAAS+gI,EAAI/gI,OAAS01E,EAAKsvH,OAASjkE,EAAIikE,MAC7CtkN,EAAO1I,KAAKqsN,GACPrF,GAAMqF,EAAItF,YAAcC,GAAMtpH,KACnCh1F,EAAOA,EAAO7M,OAAS,GAAKwwN,GAChC3uH,EAAO2uH,EAAItF,WAEf,OAAOr+M,CACX,CAesB0kN,CAAY7sM,EAAQT,GAClC,IAAK9M,EAAQnX,OACT,OAAO6hG,GAAQn9E,EAAOymB,KAAK5e,GAAgB,GAAXA,EAAEtI,OAC9B,IAAImtM,GAAiBvvH,EAAK1qF,QAAS0qF,EAAKnsC,MAAOmsC,EAAK4rC,QAAS5rC,EAAKsqB,UAAWtqB,EAAKitH,UAAU,GAAQ,KAE5G,IAAIA,EAAW7qM,EAAMm+H,MAAM6qE,IAAkBI,aAAe,GAAI,EAChE,GAAIxrH,GAAQA,EAAKitH,UAAYA,IAA6B,GAAjBjtH,EAAKitH,SAAgB,CAC1D,IAAI8C,EAAgB/vH,EAAK1qF,QAAQ0qF,EAAKitH,UAAU5D,WAChD,QAASnrN,EAAI,EAAGA,EAAIoX,EAAQnX,OAAQD,IAChC,GAAIoX,EAAQpX,GAAGmrN,YAAc0G,EAAe,CACxC9C,EAAW/uN,EACX,OAGZ,OAAO,IAAIqxN,GAAiBj6M,EAASm6M,GAAU7qN,EAAIqoN,GAAW,CAC1Dz/K,IAAK3qB,EAAOvK,OAAO,CAACoS,EAAGC,IAAMA,EAAEilM,YAAchrM,KAAK4lC,IAAI9/B,EAAGC,EAAElX,MAAQiX,EAAG,KACtEplB,OAAQg9L,GACR/xB,MAAOtoB,EAAK6jE,aACb9rH,EAAOA,EAAKsqB,UAAY7nG,KAAKD,MAAOyqM,GAAU,EACrD,CACAhsN,IAAIohC,GACA,OAAO,IAAIktL,GAAiB71N,KAAK4b,QAAS5b,KAAKm6D,MAAOxuD,OAAO2gM,OAAO3gM,OAAO2gM,OAAO,CAAC,EAAGtsM,KAAKkyI,SAAU,CAAEp+F,IAAKnL,EAAQ05G,OAAOriJ,KAAKkyI,QAAQp+F,OAAS9zC,KAAK4wH,UAAW5wH,KAAKuzN,SAAUvzN,KAAK08D,SACzL,EAEJ,MAAM45J,GACFz2N,YAAYspB,EAAQje,EAAIwX,GACpB1iB,KAAKmpB,OAASA,EACdnpB,KAAKkL,GAAKA,EACVlL,KAAK0iB,KAAOA,CAChB,CACAviB,eACI,OAAO,IAAIm2N,GAAgBzoE,GAAM,SAAW3iI,KAAKosF,MAAsB,IAAhBpsF,KAAKqsF,UAAgBjhG,SAAS,IAAK,KAC9F,CACAgE,OAAOgtI,GACH,IAAM5+H,SAAU4+H,EAAIiH,EAAO7lI,EAAMm+H,MAAM6qE,IAGnCvoM,GAFUolI,EAAKn4F,UACf1tC,EAAM0mI,eAAe,eAAgBuC,GAAIjpI,IAAQnhB,IAAI2oN,KACpC3oN,IAAI2Q,IACTlY,KAAKmpB,OAAOyW,KAAKj2B,GAAKA,EAAEuO,QAAUA,IAC1C,IAAIq+M,GAAar+M,EAAQlY,KAAKmpB,OAAOymB,KAAK5e,GAAgB,GAAXA,EAAEtI,OAAmC,EAAwB,IACnGpO,OAAOgtI,EAAIiH,IAExBplI,EAAO1kB,QAAUzE,KAAKmpB,OAAO1kB,QAAU0kB,EAAO+M,MAAM,CAAClF,EAAGxsB,IAAMwsB,GAAKhxB,KAAKmpB,OAAO3kB,MAC/E2kB,EAASnpB,KAAKmpB,QAClB,IAAIzG,EAAO1iB,KAAK0iB,KACZA,GAAQ4kI,EAAGC,aACX7kI,EAAOA,EAAKnb,IAAI+/I,EAAG3+G,UACnB2+G,EAAGzB,WAAa18H,EAAOymB,KAAK5e,GAAKA,EAAEklM,aAAe5uE,EAAG3+G,QAAQ65G,aAAaxxH,EAAEjX,KAAMiX,EAAEkiG,OAehG,SAASsjG,GAAYxlM,EAAGC,GACpB,GAAID,GAAKC,EACL,OAAO,EACX,QAASutH,EAAK,EAAGC,EAAK,IAAK,CACvB,KAAOD,EAAKxtH,EAAEvsB,SAAWusB,EAAEwtH,GAAI03E,WAC3B13E,IACJ,KAAOC,EAAKxtH,EAAExsB,SAAWwsB,EAAEwtH,GAAIy3E,WAC3Bz3E,IACJ,IAAI8D,EAAO/D,GAAMxtH,EAAEvsB,OAAQw/I,EAAOxF,GAAMxtH,EAAExsB,OAC1C,GAAI89I,GAAQ0B,EACR,OAAO1B,GAAQ0B,EACnB,GAAIjzH,EAAEwtH,KAAMltI,QAAU2f,EAAEwtH,KAAMntI,OAC1B,OAAO,EAEnB,CA5BaklN,CAAYrtM,EAAQnpB,KAAKmpB,QAC1BzG,EAAOmzM,GAAiB9wN,MAAMokB,EAAQT,EAAO1oB,KAAKkL,GAAIwX,EAAM6rI,GACvD7rI,GAAQA,EAAKg6C,WAAavzC,EAAOymB,KAAK5e,GAAgB,GAAXA,EAAEtI,SAClDhG,EAAO,OACNA,GAAQyG,EAAO+M,MAAMlF,GAAgB,GAAXA,EAAEtI,QAAmCS,EAAOymB,KAAK5e,GAAKA,EAAEklM,eACnF/sM,EAASA,EAAO5hB,IAAIypB,GAAKA,EAAEklM,YAAc,IAAIK,GAAavlM,EAAE9Y,OAAQ,GAA0B8Y,IAClG,QAAS06H,KAAUpE,EAAGmE,QACdC,EAAOviE,GAAGstI,MACV/zM,EAAOA,GAAQA,EAAKozM,YAAYpqE,EAAOx/I,MAAOlM,KAAKkL,KAC3D,OAAOie,GAAUnpB,KAAKmpB,QAAUzG,GAAQ1iB,KAAK0iB,KAAO1iB,KAAO,IAAIs2N,GAAgBntM,EAAQnpB,KAAKkL,GAAIwX,EACpG,CACIwvH,cAAY,OAAOlyI,KAAK0iB,KAAO1iB,KAAK0iB,KAAKwvH,QAAU,IAAM,CACzD/3E,YAAU,OAAOn6D,KAAK0iB,KAAO1iB,KAAK0iB,KAAKy3C,MAAQn6D,KAAKmpB,OAAO1kB,OAASiyN,GAAYvzD,EAAS,EAiBjG,MAAMuzD,GAAY,CACd,oBAAqB,QAEnBvzD,GAAU,CAAC,EACjB,SAAS4yD,GAAU7qN,EAAIqoN,GACnB,IAAIjiN,EAAS,CACT,oBAAqB,OACrB,gBAAiB,UACjB,gBAAiBpG,GAErB,OAAIqoN,GAAW,IACXjiN,EAAO,yBAA2BpG,EAAK,IAAMqoN,GAC1CjiN,CACX,CACA,MAAMu8I,GAAO,GACb,SAAS8oE,GAAcrvE,EAAIiH,GACvB,GAAIjH,EAAGgF,YAAY,kBAAmB,CAClC,IAAIqjE,EAAaroE,EAAG6E,WAAW6jE,IAC/B,GAAIL,GAAcphE,EAAKqjE,qBAAqBjC,GACxC,OAAO,GAEf,IAAIiH,EAAStvE,EAAGgF,YAAY,cAC5B,OAAOsqE,GAAUroE,EAAKojE,iBAAmB,EACnCiF,EAAS,EACLtvE,EAAGgF,YAAY,mBAAqB,EAChChF,EAAGzB,UAAY,EACXyB,EAAGC,WAAa,GAAsC,CAC5E,CACA,MAAMgvE,GACF12N,YAAYqY,EAAQwQ,EAAOmuM,GAAc,GACrC72N,KAAKkY,OAASA,EACdlY,KAAK0oB,MAAQA,EACb1oB,KAAK62N,YAAcA,CACvB,CACAX,YAAc,OAAO,CAAO,CAC5B57M,OAAOgtI,EAAIiH,GACP,IAAI5jJ,EAAOgsN,GAAcrvE,EAAIiH,GAAOriJ,EAAQlM,MAChC,EAAP2K,GAA4C,GAAPA,GAA+C3K,KAAK82N,QAAQxvE,MAClGp7I,EAAQ,IAAIqqN,GAAarqN,EAAMgM,OAAQ,IAC/B,EAAPvN,GAAsD,GAAfuB,EAAMwc,QAC9Cxc,EAAQ,IAAIqqN,GAAav2N,KAAKkY,OAAQ,IAC1ChM,EAAQA,EAAM6qN,UAAUzvE,EAAI38I,GAC5B,QAAS+gJ,KAAUpE,EAAGmE,QAClB,GAAIC,EAAOviE,GAAGonI,IACVrkN,EAAQ,IAAIqqN,GAAarqN,EAAMgM,OAAQ,EAAuBwzI,EAAOx/I,MAAQylJ,GAAIrK,EAAG5+H,QAAS,QAAE,GAC1FgjI,EAAOviE,GAAGqnI,IACftkN,EAAQ,IAAIqqN,GAAarqN,EAAMgM,OAAQ,QAAE,GACpCwzI,EAAOviE,GAAG6tI,IACf,QAAS7tM,KAAUuiI,EAAOx/I,MAClBid,EAAOjR,QAAUhM,EAAMgM,SACvBhM,EAAQid,GAExB,OAAOjd,CACX,CACA6qN,UAAUzvE,EAAI38I,GAAQ,OAAO3K,KAAKuH,IAAI+/I,EAAG3+G,QAAU,CACnDphC,IAAIohC,GACA,OAAOA,EAAQ7hB,OAAS9mB,KAAK62N,YAAc,EAAI72N,KAAO,IAAIu2N,GAAav2N,KAAKkY,OAAQlY,KAAK0oB,MAAOigB,EAAQ05G,OAAOriJ,KAAK62N,aACxH,CACAC,QAAQxvE,GACJ,OAAOA,EAAG3+G,QAAQ65G,aAAamP,GAAIrK,EAAG5+H,OAC1C,EAEJ,MAAMuuM,WAAqBV,GACvB12N,YAAYqY,EAAQ2+M,EAAavlN,EAAQyI,EAAMm5G,GAC3CpzH,MAAMoY,EAAQ,EAAsB2+M,GACpC72N,KAAKsR,OAASA,EACdtR,KAAK+Z,KAAOA,EACZ/Z,KAAKkzH,GAAKA,CACd,CACAgjG,YAAc,OAAO,CAAM,CAC3Ba,UAAUzvE,EAAI38I,GACV,IAAIq8I,EACJ,KAAa,EAAPr8I,GACF,OAAO3K,KAAKuH,IAAI+/I,EAAG3+G,SACvB,IAAIr3B,EAAStR,KAAKsR,OACdA,EAAO/J,MAAQ+/I,EAAG3+G,QAAQ7hB,QAC1BxV,EAASA,EAAO/J,IAAI+J,EAAQg2I,EAAG3+G,UACnC,IAAI5uB,EAAOutI,EAAG3+G,QAAQ05G,OAAOriJ,KAAK+Z,MAAOm5G,EAAKo0B,EAAG3+G,QAAQ05G,OAAOriJ,KAAKkzH,GAAI,GACrEp/E,EAAM69G,GAAIrK,EAAG5+H,OACjB,IAAK1oB,KAAK62N,YAAc,EAAI/iL,GAAO/5B,EAAO+5B,EAAM9zC,KAAK+Z,OACjD+5B,EAAMo/E,IAAO5hH,GACL,EAAP3G,GAA0CgnJ,GAAIrK,EAAGuE,aAAe7rJ,KAAK+Z,KACtE,OAAO,IAAIw8M,GAAav2N,KAAKkY,OAAe,EAAPvN,EAAqC,EAAwB,GACtG,IAAIksN,EAAc72N,KAAK62N,YAAc,GAAI,EAAKvvE,EAAG3+G,QAAQ05G,OAAOriJ,KAAK62N,aACrE,OAmBR,SAASK,GAAW7G,EAAU3nM,EAAO3O,EAAMm5G,GACvC,IAAKm9F,EACD,OAAO,EACX,IAAI3sM,EAAOgF,EAAMqmI,SAASh1I,EAAMm5G,GAChC,MAA0B,mBAAZm9F,EAAyBA,EAAS3sM,EAAM3J,EAAMm5G,EAAIxqG,GAAS2mM,GAAagB,GAAU,GAAMltM,KAAKO,EAC/G,CAxBYwzM,CAAW5lN,EAAO++M,SAAU/oE,EAAG5+H,MAAO3O,EAAMm5G,GACrC,IAAI+jG,GAAaj3N,KAAKkY,OAAQ2+M,EAAavlN,EAAQyI,EAAMm5G,GAChE5hH,EAAOgJ,SACNhJ,EAASA,EAAOgJ,OAAOhJ,EAAQyI,EAAMm5G,EAAI,IAAI87F,GAAkB1nE,EAAG5+H,MAAOorB,EAAK+iL,GAAe,KACvF,IAAII,GAAaj3N,KAAKkY,OAAQ2+M,EAAavlN,EAAQA,EAAOyI,KAA2B,QAApBitI,EAAK11I,EAAO4hH,UAAuB,IAAP8zB,EAAgBA,EAAK2K,GAAIrK,EAAG5+H,QAC7H,IAAI6tM,GAAav2N,KAAKkY,OAAQ,EAAuB2+M,EAChE,CACAtvN,IAAIgkJ,GACA,OAAIA,EAAQzkI,MACD9mB,MACEA,KAAKsR,OAAO/J,IAAMvH,KAAKsR,OAAO/J,IAAIvH,KAAKsR,OAAQi6I,GAAWvrJ,KAAKsR,QAGrE,IAAI2lN,GAAaj3N,KAAKkY,OAAQlY,KAAK62N,YAAc,GAAI,EAAKtrE,EAAQlJ,OAAOriJ,KAAK62N,aAAc72N,KAAKsR,OAAQi6I,EAAQlJ,OAAOriJ,KAAK+Z,MAAOwxI,EAAQlJ,OAAOriJ,KAAKkzH,GAAI,IADxJ,IAAIqjG,GAAav2N,KAAKkY,OAAQ,EAE7C,CACA4+M,QAAQxvE,GACJ,OAAOA,EAAG3+G,QAAQ65G,aAAaxiJ,KAAK+Z,KAAM/Z,KAAKkzH,GACnD,EAQJ,MAAM8jG,GAA+B1rE,UAAmB,CACpD/jJ,KAAI22L,EAAS3yC,IAAkB2yC,EAAQ32L,IAAIoC,GAAKA,EAAEpC,IAAIgkJ,MAEpDkrE,GAAiCnrE,YACjC6rE,GAA+BlvE,UAAkB,CACnDr8I,WAAkB0qN,GAAgBjzI,QAClC/oE,QAAOpO,EAAOo7I,IAAap7I,EAAMoO,OAAOgtI,GACxC5jJ,QAAS09C,GAAK,CACVunJ,QAAiBvnJ,EAAG7kC,GAAOA,EAAI21H,SAC/BmnD,0BAAkCj4I,EAAG14B,GAASA,EAAMyxC,UAG5D,SAASu5J,GAAgB/2D,EAAMm2D,GAC3B,MAAMliM,EAAQkiM,EAAOnD,WAAW/+L,OAASkiM,EAAOnD,WAAWS,MAC3D,IAAI9+M,EAASqrJ,EAAKj0I,MAAMi+H,MAAMwwE,IAAiBhuM,OAAOyW,KAAK5O,GAAKA,EAAE9Y,QAAU46M,EAAO56M,QACnF,OAAM5G,aAAkB2lN,KAEJ,iBAATrmM,EACP+rI,EAAKvyI,SAASze,OAAO2gM,OAAO3gM,OAAO2gM,OAAO,CAAC,EAj0BnD,SAAS8qB,GAAqB1uM,EAAOhF,EAAM3J,EAAMm5G,GAC7C,IAAMmyB,QAAS38H,EAAMm9H,UAAW4Z,EAAU1lJ,EAAOsrI,EAAKtrI,KAAM2lJ,EAAQxsC,EAAKmyB,EAAKtrI,KAC9E,OAAOpO,OAAO2gM,OAAO3gM,OAAO2gM,OAAO,CAAC,EAAG5jL,EAAMgmI,cAAcxJ,GACnDA,GAASG,GAAQtrI,GAAQm5G,GACzBxqG,EAAMqmI,SAAS7J,EAAMnrI,KAAO0lJ,EAASva,EAAMnrI,KAAO2lJ,IAAUh3I,EAAMqmI,SAASh1I,EAAMm5G,GAC1E,CAAEgyB,SACN,CACHv8G,QAAS,CAAE5uB,KAAMmrI,EAAMnrI,KAAO0lJ,EAASvsC,GAAIA,GAAMmyB,EAAKtrI,KAAOmrI,EAAMhyB,GAAKgyB,EAAMnrI,KAAO2lJ,EAAO91H,OAAQlmB,GACpGwhI,MAAOD,UAAuBC,EAAMnrI,KAAO0lJ,EAAU/7I,EAAKjf,WAE7D,CAAEsnJ,gBAAgB,EAAMQ,UAAW,kBAC5C,CAszBsD6qE,CAAqBz6D,EAAKj0I,MAAOkI,EAAOtf,EAAOyI,KAAMzI,EAAO4hH,KAAM,CAAE44B,YAAakkE,GAAiB34M,GAAGy7M,EAAOnD,eAE1J/+L,EAAM+rI,EAAMm2D,EAAOnD,WAAYr+M,EAAOyI,KAAMzI,EAAO4hH,KAChD,EACX,CACA,MAAM01E,GAA6B+sB,GAAkBwB,GAAiBzD,IAMtE,SAAS2D,GAAwBn3E,EAASg5B,EAAK,UAC3C,OAAQvc,IACJ,IAAIq3D,EAASr3D,EAAKj0I,MAAMi+H,MAAMwwE,IAAiB,GAC/C,IAAKnD,IAAWA,EAAOtxM,MAAQsxM,EAAOtxM,KAAKg6C,UACvC3zC,KAAKD,MAAQkrM,EAAOtxM,KAAKkuG,UAAY+rC,EAAKj0I,MAAMm+H,MAAM6qE,IAAkBiB,iBACxE,OAAO,EACX,IAAczgF,EAAVxsE,EAAO,EACD,QAANwzG,IAAiBhnC,EAAUs6D,GAAW7vC,EAAMq3D,EAAOtxM,KAAKwvH,YACxDxsE,EAAOx6C,KAAKC,IAAI,EAAGD,KAAKosF,MAAM46B,EAAQ9tI,IAAI01J,aACtC5nB,EAAQ9tI,IAAI9B,cAAc,MAAMw3J,cAAgB,IACxD,IAAMr1J,UAAWuvN,EAAOtxM,KAAK9G,QACzB23M,EAAWS,EAAOtxM,KAAK6wM,UAAW,EAAKS,EAAOtxM,KAAK6wM,SAAW7tJ,GAAQw6E,EAAU,GAAI,GAAMA,EAAU,EAAIz7I,EAAS,EACrH,OAAI8uN,EAAW,EACXA,EAAiB,QAANr6C,EAAe,EAAIz0K,EAAS,EAClC8uN,GAAY9uN,IACjB8uN,EAAiB,QAANr6C,EAAez0K,EAAS,EAAI,GAC3Ck4J,EAAKvyI,SAAS,CAAEqhI,QAASgrE,GAAkBp/M,GAAGk8M,MACvC,EAEf,CA+BA,MAAM+D,GACFz3N,YAAYspB,EAAQjL,GAChBle,KAAKmpB,OAASA,EACdnpB,KAAKke,QAAUA,EACfle,KAAKgrB,KAAOjC,KAAKD,MACjB9oB,KAAK6b,QAAU,GAGf7b,KAAKwhE,UAAOvzD,CAChB,EAEJ,MACMspN,GAAgCjrD,aAAqB,MACvDzsK,YAAY88J,GACR38J,KAAK28J,KAAOA,EACZ38J,KAAKw3N,gBAAiB,EACtBx3N,KAAKy3N,QAAU,GACfz3N,KAAK03N,gBAAiB,EACtB13N,KAAK23N,cAAe,EACpB33N,KAAK6vK,UAAY,EACjB,QAAS1mJ,KAAUwzI,EAAKj0I,MAAMi+H,MAAMwwE,IAAiBhuM,OAC7B,GAAhBA,EAAOT,OACP1oB,KAAK43N,WAAWzuM,EAC5B,CACA7O,OAAOA,GACH,IAAI05M,EAAS15M,EAAOoO,MAAMi+H,MAAMwwE,IAC5B5oE,EAAOj0I,EAAOoO,MAAMm+H,MAAM6qE,IAC9B,IAAKp3M,EAAOm0J,eAAiBn0J,EAAOitI,YAAcjtI,EAAOuxI,WAAWlF,MAAMwwE,KAAoBnD,EAC1F,OACJ,IAAI6D,EAAYv9M,EAAO6zJ,aAAav+H,KAAK03G,IACrC,IAAI38I,EAAOgsN,GAAcrvE,EAAIiH,GAC7B,OAAe,EAAP5jJ,IAAqC28I,EAAGzB,WAAayB,EAAGC,eAAwB,EAAP58I,EAAO,GAE5F,QAASnG,EAAI,EAAGA,EAAIxE,KAAKy3N,QAAQhzN,OAAQD,IAAK,CAC1C,IAAIw1B,EAAQh6B,KAAKy3N,QAAQjzN,GACzB,GAAIqzN,GACA79L,EAAMne,QAAQpX,OAAS6V,EAAO6zJ,aAAa1pK,OAzBpC,IAyB+DskB,KAAKD,MAAQkR,EAAMhP,KAzB/D,IAyBoF,CAC9G,QAAS7kB,KAAW6zB,EAAM9b,QAAQgxM,eAC9B,IACI/oN,GAIJ,CAHA,MACOgC,GACH8jK,GAAajsK,KAAK28J,KAAKj0I,MAAOvgB,EAClC,CAEJ6xB,EAAM9b,QAAQgxM,eAAiB,KAC/BlvN,KAAKy3N,QAAQtmN,OAAO3M,IAAK,EAAC,MAG1Bw1B,EAAMne,QAAQjT,QAAQ0R,EAAO6zJ,aAAY,CAG7CnuK,KAAKw3N,gBAAiB,GACtBp+J,aAAap5D,KAAKw3N,gBAClBl9M,EAAO6zJ,aAAav+H,KAAK03G,GAAMA,EAAGmE,QAAQ77G,KAAKznC,GAAKA,EAAEghF,GAAGonI,QACzDvwN,KAAK23N,cAAe,GACxB,IAAIhvM,EAAQ3oB,KAAK23N,aAAe,GAAKppE,EAAKsjE,sBAG1C,GAFA7xN,KAAKw3N,eAAiBxD,EAAO7qM,OAAOymB,KAAK5e,GAAgB,GAAXA,EAAEtI,QAAmC1oB,KAAKy3N,QAAQ7nL,KAAKyR,GAAKA,EAAEl4B,OAAOjR,QAAU8Y,EAAE9Y,SACzH0oC,WAAW,IAAM5gD,KAAK83N,cAAenvM,IAAS,EAC9B,GAAlB3oB,KAAK6vK,UACL,QAASvoB,KAAMhtI,EAAO6zJ,aACd7mB,EAAGgF,YAAY,cACftsJ,KAAK6vK,UAAY,EACM,GAAlB7vK,KAAK6vK,WAAiDvoB,EAAGzB,YAC9D7lJ,KAAK6vK,UAAY,EAEjC,CACAioD,cACI93N,KAAKw3N,gBAAiB,EACtBx3N,KAAK23N,cAAe,EACpB,IAAMjvM,SAAU1oB,KAAK28J,KAAMq3D,EAAStrM,EAAMi+H,MAAMwwE,IAChD,QAAShuM,KAAU6qM,EAAO7qM,OACF,GAAhBA,EAAOT,QAAmC1oB,KAAKy3N,QAAQ7nL,KAAKh6B,GAAKA,EAAEuT,OAAOjR,QAAUiR,EAAOjR,SAC3FlY,KAAK43N,WAAWzuM,EAE5B,CACAyuM,WAAWzuM,GACP,IAAMT,SAAU1oB,KAAK28J,KAAM7oH,EAAM69G,GAAIjpI,GACjCxK,EAAU,IAAI8wM,GAAkBtmM,EAAOorB,EAAK3qB,EAAO0tM,aAAe/iL,EAAK9zC,KAAK28J,MAC5EjzI,EAAU,IAAI4tM,GAAanuM,EAAQjL,GACvCle,KAAKy3N,QAAQ7uN,KAAK8gB,GAClB+M,QAAQC,QAAQvN,EAAOjR,OAAOgG,IAAU/Z,KAAKmN,IACpCoY,EAAQxL,QAAQoxM,UACjB5lM,EAAQ83C,KAAOlwD,GAAU,KACzBtR,KAAK+3N,iBAAc,EAExBn/M,IACC5Y,KAAK28J,KAAKvyI,SAAS,CAAEqhI,QAAS+kE,GAAsBn5M,GAAG,QACvD40J,GAAajsK,KAAK28J,KAAKj0I,MAAO9P,EAAG,EAEzC,CACAm/M,iBACQ/3N,KAAKy3N,QAAQvhM,MAAMmrB,QAAgBpzC,IAAXozC,EAAEmgB,MAC1BxhE,KAAKwqB,SACAxqB,KAAK03N,eAAiB,IAC3B13N,KAAK03N,eAAiB92K,WAAW,IAAM5gD,KAAKwqB,SAAUxqB,KAAK28J,KAAKj0I,MAAMm+H,MAAM6qE,IAAkBkB,gBACtG,CAGApoM,SACI,IAAIw8H,EACAhnJ,KAAK03N,gBAAiB,GACtBt+J,aAAap5D,KAAK03N,gBACtB13N,KAAK03N,gBAAiB,EACtB,IAAIr5E,EAAU,GACVkQ,EAAOvuJ,KAAK28J,KAAKj0I,MAAMm+H,MAAM6qE,IACjC,QAASltN,EAAI,EAAGA,EAAIxE,KAAKy3N,QAAQhzN,OAAQD,IAAK,CAC1C,IAAIw1B,EAAQh6B,KAAKy3N,QAAQjzN,GACzB,QAAmByJ,IAAf+rB,EAAMwnC,KACN,SAEJ,GADAxhE,KAAKy3N,QAAQtmN,OAAO3M,IAAK,GACrBw1B,EAAMwnC,KAAM,CACZ,IAAIr4C,EAAS,IAAI8tM,GAAaj9L,EAAM7Q,OAAOjR,OAAQ8hB,EAAM7Q,OAAO0tM,YAAa78L,EAAMwnC,KAAMxnC,EAAMwnC,KAAKznD,KAA+B,QAAxBitI,EAAKhtH,EAAMwnC,KAAK0xD,UAAuB,IAAP8zB,EAAgBA,EAAK2K,GAAI33H,EAAMne,QAAQpX,OAASu1B,EAAMne,QAAQ,GAAGgwI,WAAa7rJ,KAAK28J,KAAKj0I,QAGnO,QAAS4+H,KAAMttH,EAAMne,QACjBsN,EAASA,EAAO7O,OAAOgtI,EAAIiH,GAC/B,GAAIplI,EAAO+sM,YAAa,CACpB73E,EAAQz1I,KAAKugB,GACb,UAGR,IAAIkP,EAAUr4B,KAAK28J,KAAKj0I,MAAMi+H,MAAMwwE,IAAiBhuM,OAAOyW,KAAK5O,GAAKA,EAAE9Y,QAAU8hB,EAAM7Q,OAAOjR,QAC/F,GAAImgB,GAA4B,GAAjBA,EAAQ3P,MACnB,GAAkB,MAAdsR,EAAMwnC,KAAc,CAGpB,IAAIr4C,EAAS,IAAIotM,GAAav8L,EAAM7Q,OAAOjR,OAAQ,GACnD,QAASovI,KAAMttH,EAAMne,QACjBsN,EAASA,EAAO7O,OAAOgtI,EAAIiH,GACX,GAAhBplI,EAAOT,OACP21H,EAAQz1I,KAAKugB,EAAM,MAIvBnpB,KAAK43N,WAAWv/L,EAAO,CAI/BgmH,EAAQ55I,QACRzE,KAAK28J,KAAKvyI,SAAS,CAAEqhI,QAASurE,GAAgB3/M,GAAGgnI,IACzD,GACD,CACCquB,cAAe,CACXkG,KAAK7oK,GACD,IAAI2e,EAAQ1oB,KAAK28J,KAAKj0I,MAAMi+H,MAAMwwE,IAAiB,GACnD,GAAIzuM,GAASA,EAAMwpH,SAAWlyI,KAAK28J,KAAKj0I,MAAMm+H,MAAM6qE,IAAkBK,YAAa,CAC/E,IAAIiG,EAAStvM,EAAMhG,MAAQ8pL,GAAWxsM,KAAK28J,KAAMj0I,EAAMhG,KAAKwvH,WACvD8lF,IAAWA,EAAO5zN,IAAIm5D,SAASxzD,EAAMm6L,iBACtCtjJ,WAAW,IAAM5gD,KAAK28J,KAAKvyI,SAAS,CAAEqhI,QAAS+kE,GAAsBn5M,GAAG,QAAU,GAAE,CAEhG,EACA2qK,mBACIhiL,KAAK6vK,UAAY,CACrB,EACAqS,iBAC0B,GAAlBliL,KAAK6vK,WAGLjvH,WAAW,IAAM5gD,KAAK28J,KAAKvyI,SAAS,CAAEqhI,QAAS8kE,GAAsBl5M,IAAG,KAAW,IAEvFrX,KAAK6vK,UAAY,CACrB,KAGFnP,GAA8B,iBAAbz9J,WAAsC,MAAMkgB,KAAKlgB,UAAUgiB,UAC5EgzM,GAAgCruE,WAA0ByvC,oBAA4B,CACxF5d,QAAQ1xK,EAAO4yJ,GACX,IAAIhW,EAAQgW,EAAKj0I,MAAMi+H,MAAMwwE,IAAiB,GAC9C,IAAKxwE,IAAUA,EAAMjkI,MAAQikI,EAAMjkI,KAAKg6C,UAAYiqF,EAAMjkI,KAAK6wM,SAAW,GACtExpN,EAAM+G,IAAIrM,OAAS,GAAKsF,EAAM+F,WAAa4wJ,KAAW32J,EAAM6F,SAAW7F,EAAMiG,QAC7E,OAAO,EACX,IAAI8iN,EAASnsE,EAAMjkI,KAAK9G,QAAQ+qI,EAAMjkI,KAAK6wM,UACvCjiN,EAASq1I,EAAMx9H,OAAOyW,KAAK5O,GAAKA,EAAE9Y,QAAU46M,EAAO56M,QACnDggN,EAAcpF,EAAOnD,WAAWsI,kBAAoB3mN,EAAOA,OAAO2mN,iBACtE,OAAIC,GAAeA,EAAYhnN,QAAQnH,EAAM+G,MAAO,GAChD4iN,GAAgB/2D,EAAMm2D,IACnB,CACX,KAGE3oB,GAAyB9Q,aAAqB,CAChD,sCAAuC,CACnC,SAAU,CACNjL,WAAY,YACZpL,WAAY,SACZuE,SAAU,cACV4wC,kBAAmB,QACnBpF,SAAU,mBACV/jD,SAAU,QACVopD,UAAW,OACXrvI,OAAQ,OACRsvI,UAAW,OACX/xD,OAAQ,EACRooB,QAAS,EACT,iCAAkC,CAC9BA,QAAS,UACTnqB,WAAY,KAEhB,SAAU,CACN8pB,UAAW,SACXiqC,aAAc,WACd74E,OAAQ,WAEZ,yBAA0B,CACtBx+D,QAAS,YACT0uG,aAAc,mBACd2Q,YAAa,QACbjmI,QAAS,MAIrB,uDAAwD,CACpD40H,WAAY,OACZ73E,MAAO,SAEX,gEAAiE,CAC7D63E,WAAY,QAEhB,sDAAuD,CACnDA,WAAY,OACZ73E,MAAO,SAEX,+DAAgE,CAC5D63E,WAAY,QAEhB,mFAAoF,CAChFziL,QAAS,iBACT6tD,QAAS,GACT4mB,QAAS,QACTyuG,UAAW,UAEf,gCAAiC,CAC7BptJ,SAAU,WACVosJ,QAAS,UACTj2H,MAAO,cACPs6J,SAAW,QACX/kC,UAAW,cAEf,4CAA6C,CAAE99E,MAAO,QACtD,6CAA8C,CAAED,KAAM,QACtD,mDAAoD,CAAEC,MAAQ,QAC9D,oDAAqD,CAAED,KAAO,QAC9D,0BAA2B,CAAEs/E,gBAAiB,aAC9C,yBAA0B,CAAEA,gBAAiB,aAC7C,2BAA4B,CACxBM,cAAe,WACfp3H,MAAO,EACPswB,OAAQ,SACR9H,QAAS,eACTqlF,OAAQ,iBACR6oB,WAAY,qBAEhB,4BAA6B,CACzB85B,eAAgB,aAEpB,uBAAwB,CACpB75B,WAAY,QACZ+5B,UAAW,UAEf,qBAAsB,CAClBj5B,SAAU,MACVz3H,MAAO,OACPwoB,QAAS,eACTyuG,UAAW,SACX+Q,aAAc,OACdpmI,QAAS,MACT2zH,UAAW,eAEf,yDAA0D,CACtD,UAAW,CAAExhL,QAAS,aAE1B,2BAA4B,CACxB,UAAW,CAAEA,QAAS,aAE1B,+BAAgC,CAC5B,UAAW,CAAEA,QAAS,aAE1B,8BAA+B,CAC3B,UAAW,CAAEA,QAAS,gBAE1B,8BAA+B,CAC3B,UAAW,CAAEA,QAAS,gBAE1B,0BAA2B,CACvB,UAAW,CAAEA,QAAS,gBAE1B,0BAA2B,CACvB,UAAW,CAAEA,QAAS,aAE1B,8BAA+B,CAC3B,UAAW,CAAEA,QAAS,aAE1B,6BAA8B,CAC1B,UAAW,CAAEA,QAAS,sBAE1B,+BAAgC,CAC5B,UAAW,CAAEA,QAAS,aAE1B,0BAA2B,CACvB,UAAW,CAAEA,QAAS,QAAS0jL,SAAU,MAAOL,cAAe,aAgWjE98G,GAAW,CACby2I,SAAU,CAAC,IAAK,IAAK,IAAK,IAAK,KAC/BrnE,OAAQ,SACRo2E,eAAgB,IAEdC,GAAkCltE,UAAmB,CACvD/jJ,KAAI2E,EAAOq/I,IACMA,EAAQlJ,OAAOn2I,GAAO,EAAI+0I,qBACfhzI,IAG1BwqN,GAA6B,IAAI,cAAcvoE,KAErDuoE,GAAcroE,UAAY,EAC1BqoE,GAAcpoE,SAAU,EACxB,MAAMqoE,GAA4BzwE,UAAkB,CAChDr8I,WAAkBwlJ,SAClB92I,OAAOpO,EAAOo7I,GAEV,GADAp7I,EAAQA,EAAM3E,IAAI+/I,EAAG3+G,SACjB2+G,EAAGzB,UAAW,CACd,IAAIvsI,EAAOguI,EAAG5+H,MAAMxnB,IAAIk7I,OAAOkL,EAAGzB,UAAUR,KAAKx8I,MACjDqD,EAAQA,EAAMoO,OAAO,CAAEvC,OAAQgC,GAAQA,GAAQT,EAAKS,MAAQA,GAAQT,EAAK45G,IAAI,CAEjF,QAASw4B,KAAUpE,EAAGmE,QACdC,EAAOviE,GAAGqvI,MACVtsN,EAAQA,EAAMoO,OAAO,CAAEhS,IAAK,CAACmwN,GAAcvzE,MAAMwG,EAAOx/I,MAAOw/I,EAAOx/I,MAAQ,OACtF,OAAOA,CACX,IAYEysN,GAAiB,WACvB,SAAS7T,GAAQhmE,GACb,QAASt6I,EAAI,EAAGA,EAAIm0N,GAAel0N,OAAQD,GAAK,EAC5C,GAAIm0N,GAAep4E,WAAW/7I,IAAMs6I,EAChC,OAAO65E,GAAe71N,OAAO0B,EAAI,GACzC,OAAOs8I,GAAchC,EAAK,IAAMA,EAAKA,EAAK,EAC9C,CACA,SAASpvG,GAAOhnB,EAAOorB,GACnB,OAAOprB,EAAM0mI,eAAe,gBAAiBt7G,GAAK,IAAMi/B,EAC5D,CACA,MAAMkuF,GAA8B,iBAAbh+J,WAAsC,YAAYkgB,KAAKlgB,UAAUC,WAClFqoK,GAA4B8tB,mBAA2B,CAAC18B,EAAM5iJ,EAAMm5G,EAAItpF,KAC1E,IAAKq3H,GAAUtE,EAAKkT,UAAYlT,EAAK28B,qBAAuB38B,EAAKj0I,MAAMwiI,SACnE,OAAO,EACX,IAAIgC,EAAMyP,EAAKj0I,MAAMm9H,UAAUR,KAC/B,GAAIz7G,EAAOnlC,OAAS,GAAsB,GAAjBmlC,EAAOnlC,QAAwD,GAAzCi8I,GAAcD,GAAY72G,EAAQ,KAC7E7vB,GAAQmzI,EAAInzI,MAAQm5G,GAAMg6B,EAAIh6B,GAC9B,OAAO,EACX,IAAIo0B,EAgDR,SAASsxE,GAAclwM,EAAO0zL,GAC1B,IAAI7tD,EAAO7+G,GAAOhnB,EAAOA,EAAMm9H,UAAUR,KAAKx8I,MAC1ColD,EAASsgG,EAAKi7D,UAAYz2I,GAASy2I,SACvC,QAASqP,KAAO5qK,EAAQ,CACpB,IAAIlmC,EAAS+8L,GAAQrkE,GAAYo4E,EAAK,IACtC,GAAIzc,GAAWyc,EACX,OAAO9wM,GAAU8wM,EAAMC,GAAWpwM,EAAOmwM,EAAK5qK,EAAO/8C,QAAQ2nN,EAAMA,EAAMA,IAAO,EAAItqE,GAC9EwqE,GAAWrwM,EAAOmwM,EAAK9wM,EAAQwmI,EAAKpM,QAAUpvE,GAASovE,QACjE,GAAIi6D,GAAWr0L,GAAUixM,GAAgBtwM,EAAOA,EAAMm9H,UAAUR,KAAKtrI,MACjE,OAAOk/M,GAAYvwM,EAAOmwM,EAAK9wM,EAAM,CAE7C,OAAO,IACX,CA5Da6wM,CAAcj8D,EAAKj0I,MAAOkhB,GACnC,QAAK09G,IAELqV,EAAKvyI,SAASk9H,IACP,EAFI,GAgCT4xE,GAAsB,CACxB,CAAEpoN,IAAK,YAAa+0C,IAzBE,EAAGn9B,QAAO0B,eAChC,GAAI1B,EAAMwiI,SACN,OAAO,EAEX,IAAIj9F,EADOve,GAAOhnB,EAAOA,EAAMm9H,UAAUR,KAAKx8I,MAC5B2gN,UAAYz2I,GAASy2I,SACnC2P,EAAO,KAAMxwL,EAAUjgB,EAAMgmI,cAAcxJ,IAC3C,GAAIA,EAAMp+H,MAAO,CACb,IAAIq7H,EAwDhB,SAASi3E,GAASl4N,EAAK4yC,GACnB,IAAIwyD,EAAOplG,EAAIq8I,YAAYzpG,EAAM,EAAGA,GACpC,OAAO4sG,GAAcD,GAAYn6C,EAAM,KAAOA,EAAK7hG,OAAS6hG,EAAOA,EAAKvgG,MAAM,EAClF,CA3DyBqzN,CAAS1wM,EAAMxnB,IAAKgkJ,EAAMr8I,MACvC,QAASoU,KAASgxC,EACd,GAAIhxC,GAASklI,GAAUk3E,GAAS3wM,EAAMxnB,IAAKgkJ,EAAMr8I,OAASi8M,GAAQrkE,GAAYxjI,EAAO,IACjF,MAAO,CAAE0rB,QAAS,CAAE5uB,KAAMmrI,EAAMr8I,KAAOoU,EAAMxY,OAAQyuH,GAAIgyB,EAAMr8I,KAAOoU,EAAMxY,QACxEygJ,MAAOD,UAAuBC,EAAMr8I,KAAOoU,EAAMxY,QAAQ,CAGzE,MAAO,CAAEygJ,MAAOi0E,EAAOj0E,EAAM,GAEjC,OAAKi0E,GACD/uM,EAAS1B,EAAMpO,OAAOquB,EAAS,CAAEojH,gBAAgB,EAAMQ,UAAW,sBAC9D4sE,KAiCZ,SAASH,GAAgBtwM,EAAOorB,GAC5B,IAAI4iB,GAAQ,EACZhuC,SAAMi+H,MAAM+xE,IAAc5nE,QAAQ,EAAGpoI,EAAMxnB,IAAIuD,OAAQsV,IAC/CA,GAAQ+5B,IACR4iB,GAAQ,KAETA,CACX,CACA,SAAS2iK,GAASn4N,EAAK4yC,GACnB,IAAIh7B,EAAO5X,EAAIq8I,YAAYzpG,EAAKA,EAAM,GACtC,OAAOh7B,EAAK/S,MAAM,EAAG26I,GAAcD,GAAY3nI,EAAM,IACzD,CAKA,SAASigN,GAAWrwM,EAAOhG,EAAMswC,EAAOsmK,GACpC,IAAIH,EAAO,KAAMxwL,EAAUjgB,EAAMgmI,cAAcxJ,IAC3C,IAAKA,EAAMp+H,MACP,MAAO,CAAE6hB,QAAS,CAAC,CAAEiB,OAAQlnB,EAAM3I,KAAMmrI,EAAMnrI,MAAQ,CAAE6vB,OAAQopB,EAAOj5C,KAAMmrI,EAAMhyB,KAChFu4B,QAAS+sE,GAAmBnhN,GAAG6tI,EAAMhyB,GAAKxwG,EAAKje,QAC/CygJ,MAAOD,SAAsBC,EAAM3iH,OAAS7f,EAAKje,OAAQygJ,EAAMr8I,KAAO6Z,EAAKje,SACnF,IAAIqU,EAAOugN,GAAS3wM,EAAMxnB,IAAKgkJ,EAAMr8I,MACrC,OAAKiQ,GAAQ,KAAKqK,KAAKrK,IAASwgN,EAAYpoN,QAAQ4H,IAAQ,EACjD,CAAE6vB,QAAS,CAAEiB,OAAQlnB,EAAOswC,EAAOj5C,KAAMmrI,EAAMr8I,MAClD4iJ,QAAS+sE,GAAmBnhN,GAAG6tI,EAAMr8I,KAAO6Z,EAAKje,QACjDygJ,MAAOD,UAAuBC,EAAMr8I,KAAO6Z,EAAKje,SACjD,CAAEygJ,MAAOi0E,EAAOj0E,EAAM,GAEjC,OAAOi0E,EAAO,KAAOzwM,EAAMpO,OAAOquB,EAAS,CACvCojH,gBAAgB,EAChBQ,UAAW,cAEnB,CACA,SAAS0sE,GAAYvwM,EAAO6wM,EAAOvmK,GAC/B,IAAImmK,EAAO,KAAMxwL,EAAUjgB,EAAMgmI,cAAcxJ,GACvCA,EAAMp+H,OAASuyM,GAAS3wM,EAAMxnB,IAAKgkJ,EAAMr8I,OAASmqD,EAC3C,CAAErqB,QAAS,CAAE5uB,KAAMmrI,EAAMr8I,KAAMqqH,GAAIgyB,EAAMr8I,KAAOmqD,EAAMvuD,OAAQmlC,OAAQopB,GACzEkyF,MAAOD,UAAuBC,EAAMr8I,KAAOmqD,EAAMvuD,SAClD00N,EAAO,CAAEj0E,UAEpB,OAAOi0E,EAAO,KAAOzwM,EAAMpO,OAAOquB,EAAS,CACvCojH,gBAAgB,EAChBQ,UAAW,cAEnB,CAGA,SAASusE,GAAWpwM,EAAOzL,EAAOu8M,EAAa9pL,GAC3C,IAAI6oL,EAAiB7oL,EAAO6oL,gBAAkBxlJ,GAASwlJ,eACnDY,EAAO,KAAMxwL,EAAUjgB,EAAMgmI,cAAcxJ,IAC3C,IAAKA,EAAMp+H,MACP,MAAO,CAAE6hB,QAAS,CAAC,CAAEiB,OAAQ3sB,EAAOlD,KAAMmrI,EAAMnrI,MAAQ,CAAE6vB,OAAQ3sB,EAAOlD,KAAMmrI,EAAMhyB,KACjFu4B,QAAS+sE,GAAmBnhN,GAAG6tI,EAAMhyB,GAAKj2G,EAAMxY,QAChDygJ,MAAOD,SAAsBC,EAAM3iH,OAAStlB,EAAMxY,OAAQygJ,EAAMr8I,KAAOoU,EAAMxY,SACrF,IAAuD4+E,EAAnDvvC,EAAMoxG,EAAMr8I,KAAMiQ,EAAOugN,GAAS3wM,EAAMxnB,IAAK4yC,GACjD,GAAIh7B,GAAQmE,EAAO,CACf,GAAI23L,GAAUlsL,EAAOorB,GACjB,MAAO,CAAEnL,QAAS,CAAEiB,OAAQ3sB,EAAQA,EAAOlD,KAAM+5B,GAC7C23G,QAAS+sE,GAAmBnhN,GAAGy8B,EAAM72B,EAAMxY,QAC3CygJ,MAAOD,UAAuBnxG,EAAM72B,EAAMxY,SAE7C,GAAIu0N,GAAgBtwM,EAAOorB,GAAM,CAElC,IAAItnC,EADWgtN,GAAe9wM,EAAMqmI,SAASj7G,EAAKA,EAAqB,EAAf72B,EAAMxY,SAAewY,EAAQA,EAAQA,EACpEA,EAAQA,EAAQA,EAAQA,EACjD,MAAO,CAAE0rB,QAAS,CAAE5uB,KAAM+5B,EAAKo/E,GAAIp/E,EAAMtnC,EAAQ/H,OAAQmlC,OAAQp9B,GAC7D04I,MAAOD,UAAuBnxG,EAAMtnC,EAAQ/H,QAAQ,MAG3D,IAAI+0N,GAAe9wM,EAAMqmI,SAASj7G,EAAM,EAAI72B,EAAMxY,OAAQqvC,IAAQ72B,EAAQA,IAC1EomE,EAAQo2I,GAAiB/wM,EAAOorB,EAAM,EAAI72B,EAAMxY,OAAQ8zN,KAAmB,GAC5E3jB,GAAUlsL,EAAO26D,GACjB,MAAO,CAAE16C,QAAS,CAAEiB,OAAQ3sB,EAAQA,EAAQA,EAAQA,EAAOlD,KAAM+5B,GAC7D23G,QAAS+sE,GAAmBnhN,GAAGy8B,EAAM72B,EAAMxY,QAC3CygJ,MAAOD,UAAuBnxG,EAAM72B,EAAMxY,SAE7C,GAAIikB,EAAM6mI,gBAAgBz7G,EAAtBprB,CAA2B5P,IAASg1I,SACrC2rE,GAAiB/wM,EAAOorB,EAAKykL,IAAkB,IAgB/D,SAASmB,GAAiBhxM,EAAOorB,EAAK6lL,EAAYC,GAC9C,IAAI/4N,EAAOq/M,GAAWx3L,GAAOmqL,aAAa/+J,GAAK,GAC3C+lL,EAAYD,EAASh7M,OAAO,CAACkhB,EAAGrG,IAAMvO,KAAKC,IAAI2U,EAAGrG,EAAEh1B,QAAS,GACjE,QAASD,EAAI,EAAGA,EAAI,EAAGA,IAAK,CACxB,IAAI6+E,EAAQ36D,EAAMqmI,SAASluJ,EAAKkZ,KAAMmR,KAAK4lC,IAAIjwD,EAAKqyH,GAAIryH,EAAKkZ,KAAO4/M,EAAWl1N,OAASo1N,IACpFC,EAAWz2I,EAAMnyE,QAAQyoN,GAC7B,IAAKG,GAAYA,GAAW,GAAMF,EAAS1oN,QAAQmyE,EAAMt9E,MAAM,EAAG+zN,KAAa,EAAI,CAC/E,IAAI35M,EAAQtf,EAAKqiC,WACjB,KAAO/iB,GAASA,EAAMpG,MAAQlZ,EAAKkZ,MAAQoG,EAAM+yG,GAAK/yG,EAAMpG,KAAO4/M,EAAWl1N,OAASq1N,GAAU,CAC7F,GAAIpxM,EAAMqmI,SAAS5uI,EAAM+yG,GAAKymG,EAAWl1N,OAAQ0b,EAAM+yG,KAAOymG,EAC1D,OAAO,EACXx5M,EAAQA,EAAM+iB,WAElB,OAAO,EAEX,IAAI72B,EAASxL,EAAKqyH,IAAMp/E,GAAOjzC,EAAKwL,OACpC,IAAKA,EACD,MACJxL,EAAOwL,EAEX,OAAO,CACX,CArCsEqtN,CAAiBhxM,EAAOorB,EAAK72B,EAAOs7M,GAC1F,MAAO,CAAE5vL,QAAS,CAAEiB,OAAQ3sB,EAAQA,EAAOlD,KAAM+5B,GAC7C23G,QAAS+sE,GAAmBnhN,GAAGy8B,EAAM72B,EAAMxY,QAC3CygJ,MAAOD,UAAuBnxG,EAAM72B,EAAMxY,QAAQ,CAE9D,MAAO,CAAEygJ,MAAOi0E,EAAOj0E,EAAM,GAEjC,OAAOi0E,EAAO,KAAOzwM,EAAMpO,OAAOquB,EAAS,CACvCojH,gBAAgB,EAChBQ,UAAW,cAEnB,CACA,SAASqoD,GAAUlsL,EAAOorB,GACtB,IAAIha,EAAOomL,GAAWx3L,GAAOmqL,aAAa/+J,EAAM,GAChD,OAAOha,EAAKztB,QAAUytB,EAAK/f,MAAQ+5B,CACvC,CAuBA,SAAS2lL,GAAiB/wM,EAAOorB,EAAK8lL,GAClC,IAAIG,EAAUrxM,EAAM6mI,gBAAgBz7G,GACpC,GAAIimL,EAAQrxM,EAAMqmI,SAASj7G,EAAM,EAAGA,KAASg6G,QACzC,OAAOh6G,EACX,QAASgqJ,KAAU87B,EAAU,CACzB,IAAIv2I,EAAQvvC,EAAMgqJ,EAAOr5L,OACzB,GAAIikB,EAAMqmI,SAAS1rE,EAAOvvC,IAAQgqJ,GAAUi8B,EAAQrxM,EAAMqmI,SAAS1rE,EAAQ,EAAGA,KAAWyqE,QACrF,OAAOzqE,EAEf,OAAO,CACX,CAKA,SAAS22I,GAAetqL,EAAS,CAAC,GAC9B,MAAO,CACHuoL,GACAd,GACAzF,GAAiBr6M,GAAGq4B,GACpB6nL,GACA0C,GACA9vB,GAER,CAYA,MAAM+vB,GAAmB,CACrB,CAAEppN,IAAK,aAAc+0C,IA36BA82G,KACRA,EAAKj0I,MAAMi+H,MAAMwwE,IAAiB,KAG/Cx6D,EAAKvyI,SAAS,CAAEqhI,QAAS8kE,GAAsBl5M,IAAG,MAC3C,IAu6BP,CAAEvG,IAAK,SAAU+0C,IAl6BI82G,IACrB,IAAIq3D,EAASr3D,EAAKj0I,MAAMi+H,MAAMwwE,IAAiB,GAC/C,SAAKnD,IAAWA,EAAO7qM,OAAOymB,KAAK5e,GAAgB,GAAXA,EAAEtI,SAE1Ci0I,EAAKvyI,SAAS,CAAEqhI,QAAS+kE,GAAsBn5M,GAAG,QAC3C,MA85BP,CAAEvG,IAAK,YAAa+0C,IAAkBwxK,IAAwB,IAC9D,CAAEvmN,IAAK,UAAW+0C,IAAkBwxK,IAAwB,IAC5D,CAAEvmN,IAAK,WAAY+0C,IAAkBwxK,IAAwB,EAAM,SACnE,CAAEvmN,IAAK,SAAU+0C,IAAkBwxK,IAAwB,EAAO,SAClE,CAAEvmN,IAAK,QAAS+0C,IA37BM82G,IACtB,IAAIq3D,EAASr3D,EAAKj0I,MAAMi+H,MAAMwwE,IAAiB,GAC/C,QAAIx6D,EAAKj0I,MAAMwiI,WAAa8oE,IAAWA,EAAOtxM,MAAQsxM,EAAOtxM,KAAK6wM,SAAW,GAAKS,EAAOtxM,KAAKg6C,UAC1F3zC,KAAKD,MAAQkrM,EAAOtxM,KAAKkuG,UAAY+rC,EAAKj0I,MAAMm+H,MAAM6qE,IAAkBiB,mBAErEe,GAAgB/2D,EAAMq3D,EAAOtxM,KAAK9G,QAAQo4M,EAAOtxM,KAAK6wM,UAAS,IAw7BpE0G,GAAmCrwE,WAA0By0C,YAAgB,CAACqzB,IAAmBhpM,GAASA,EAAMm+H,MAAM6qE,IAAkBO,cAAgB,CAACiI,IAAoB,KC58DnL,SAASC,GAAQC,EAAUlW,EAAQv5M,EAAM4rD,EAAMsuJ,EAAOv+G,GACpDtmG,KAAKo6N,SAAWA,EAChBp6N,KAAKkkN,OAASA,EACdlkN,KAAK2K,KAAOA,EACZ3K,KAAKu2D,KAAOA,EACZv2D,KAAK6kN,MAAQA,EACb7kN,KAAKsmG,KAAOA,CACd,CACA,SAAS+zH,GAAY3xM,EAAOstI,EAAKrrJ,EAAM4rD,GACrC,IAAIo2J,EAASjkM,EAAM0xM,SACnB,OAAI1xM,EAAMxK,SAAiC,aAAtBwK,EAAMxK,QAAQvT,MAA+B,aAARA,IACxDgiN,EAASjkM,EAAMxK,QAAQk8M,UAClB1xM,EAAMxK,QAAU,IAAIi8M,GAAQxN,EAAQ32D,EAAKrrJ,EAAM4rD,EAAM,KAAM7tC,EAAMxK,QAC1E,CACA,SAASo8M,GAAW5xM,GAClB,IAAIjN,EAAIiN,EAAMxK,QAAQvT,KACtB,OAAS,KAAL8Q,GAAiB,KAALA,GAAiB,KAALA,KAC1BiN,EAAM0xM,SAAW1xM,EAAMxK,QAAQk8M,UAC1B1xM,EAAMxK,QAAUwK,EAAMxK,QAAQooF,IACvC,CAEA,SAASi0H,GAAW19G,EAAQn0F,EAAOorB,GAGjC,GAFuB,YAAnBprB,EAAM8xM,WAA8C,QAAnB9xM,EAAM8xM,WACvC,6BAA6Br3M,KAAK05F,EAAO8gC,OAAO53I,MAAM,EAAG+tC,KACzDprB,EAAM+xM,iBAAmB59G,EAAOqnG,UAAYrnG,EAAOgvG,cAAe,OAAO,CAC/E,CAEA,SAAS6O,GAAWx8M,GAClB,OAAS,CACP,IAAKA,GAA2B,OAAhBA,EAAQvT,KAAe,OAAO,EAC9C,GAAoB,KAAhBuT,EAAQvT,MAAoC,aAArBuT,EAAQooF,KAAK/vC,KAAqB,OAAO,EACpEr4C,EAAUA,EAAQooF,KAEtB,CAEO,SAASq0H,GAAMC,GACpB,IAsBIC,GAASC,GAtBTC,EAAsBH,EAAaG,oBACnCC,EAAiBJ,EAAaI,eAC9BC,EAAWL,EAAaK,UAAY,CAAC,EACrCvyD,EAAQkyD,EAAalyD,OAAS,CAAC,EAC/BwyD,EAAUN,EAAaM,SAAW,CAAC,EACnCC,EAAgBP,EAAaO,eAAiB,CAAC,EAC/CC,EAAcR,EAAaQ,aAAe,CAAC,EAC3C7hD,EAAQqhD,EAAarhD,OAAS,CAAC,EAC/B8hD,EAAQT,EAAaS,OAAS,CAAC,EAC/BC,EAAmBV,EAAaU,iBAChCC,GAAqD,IAAlCX,EAAaW,iBAEhCC,GAAqBZ,EAAaY,mBAClCC,GAAoBb,EAAaa,mBAAqB,qBACtDC,GAAcd,EAAac,aAAe,SAC1C/7E,GAASi7E,EAAaj7E,QAAU,yEAChCg8E,GAAiBf,EAAae,gBAAkB,mBAChDC,GAAmBhB,EAAagB,kBAAoB,qBAGpDC,GAAuBjB,EAAaiB,uBAAwB,EAIhE,SAASC,GAAUj/G,GAAQn0F,IACzB,IAAIo2H,GAAKjiC,GAAO/jG,OAChB,GAAIuiN,EAAMv8E,IAAK,CACb,IAAIxtI,GAAS+pN,EAAMv8E,IAAIjiC,GAAQn0F,IAC/B,IAAe,IAAXpX,GAAkB,OAAOA,GAE/B,GAAU,KAANwtI,IAAmB,KAANA,GACfp2H,UAAMqzM,SA8CV,SAASC,GAAYjd,IACnB,OAAO,SAASliG,GAAQn0F,IAEtB,QADqB5P,GAAjBmjN,IAAU,EAAazwN,IAAM,EACA,OAAzBsN,GAAO+jG,GAAO/jG,SAAiB,CACrC,GAAIA,IAAQimM,KAAUkd,GAAS,CAACzwN,IAAM,EAAM,MAC5CywN,IAAWA,IAAmB,MAARnjN,EAAQ,CAEhC,OAAItN,MAASywN,IAAWX,MACtB5yM,GAAMqzM,SAAW,MACZ,QACT,CACF,CAzDqBC,CAAYl9E,IACtBp2H,GAAMqzM,SAASl/G,GAAQn0F,IAEhC,GAAIgzM,GAAYv4M,KAAK27H,IAAK,CAExB,GADAjiC,GAAO+uG,OAAO,GACV/uG,GAAO3hF,MAAMykH,IAAS,MAAO,SACjC9iC,GAAO/jG,MAAI,CAEb,GAAI2iN,GAAkBt4M,KAAK27H,IACzB+7E,UAAU/7E,GACH,KAET,GAAU,KAANA,GAAW,CACb,GAAIjiC,GAAO2uG,IAAI,KACb9iM,UAAMqzM,SAAWG,GACVA,GAAar/G,GAAQn0F,IAE9B,GAAIm0F,GAAO2uG,IAAI,KACb3uG,UAAO8uG,YACA,UAGX,GAAIgQ,GAAex4M,KAAK27H,IAAK,CAC3B,MAAQjiC,GAAO3hF,MAAM,YAAY,IAAU2hF,GAAO2uG,IAAImQ,MACtD,MAAO,WAGT,GADA9+G,GAAO4uG,SAASmQ,IACZJ,GAAoB,KAAO3+G,GAAO3hF,MAAMsgM,KAC1C3+G,GAAO4uG,SAASmQ,IAElB,IAAIjqE,GAAM90C,GAAOxkF,UACjB,OAAIklC,GAAS09J,EAAUtpE,KACjBp0F,GAAS49J,EAAexpE,MAAMkpE,GAAU,gBACxCt9J,GAAS69J,EAAazpE,MAAMmpE,IAAe,GACxC,WAELv9J,GAASmrG,EAAO/W,IAAa,OAC7Bp0F,GAAS29J,EAASvpE,KACdkqE,IAAwBA,GAAqBlqE,KAC/Cp0F,GAAS49J,EAAexpE,MAAMkpE,GAAU,gBACrC,WAELt9J,GAASg8G,EAAO5nB,IAAa,OAC1B,UACT,CAeA,SAASuqE,GAAar/G,GAAQn0F,IAE5B,QADsBo2H,GAAlBq9E,IAAW,EACRr9E,GAAKjiC,GAAO/jG,QAAQ,CACzB,GAAU,KAANgmI,IAAaq9E,GAAU,CACzBzzM,GAAMqzM,SAAW,KACjB,MAEFI,GAAkB,KAANr9E,EAAM,CAEpB,MAAO,SACT,CAEA,SAASs9E,GAASv/G,GAAQn0F,IACpBkyM,EAAayB,sBAAwBx/G,GAAOwuG,OAASqP,GAAWhyM,GAAMxK,WACxEwK,GAAM+xM,gBAAkBF,GAAW19G,GAAQn0F,GAAOm0F,GAAO/oE,KAC7D,CAIA,MAAO,CACL1wC,KAAMw3N,EAAax3N,KACnByoJ,WAAY,SAASy3D,IACnB,MAAO,CACLyY,SAAU,KACV79M,QAAS,IAAIi8M,IAAS7W,GAAY,EAAG,MAAO,MAAM,GAClD8W,SAAU,EACVkC,aAAa,EACb9B,UAAW,KAEf,EAEAv9M,MAAO,SAAS4/F,GAAQn0F,IACtB,IAAI1S,GAAM0S,GAAMxK,QAMhB,GALI2+F,GAAOyuG,QACQ,MAAbt1M,GAAI6uM,QAAe7uM,GAAI6uM,OAAQ,GACnCn8L,GAAM0xM,SAAWv9G,GAAOgvG,cACxBnjM,GAAM4zM,aAAc,GAElBz/G,GAAO6uG,WAAc0Q,UAASv/G,GAAQn0F,IAAe,KACzDmyM,GAAUC,GAAe,KACzB,IAAI/zN,IAAS2hB,GAAMqzM,UAAYD,IAAWj/G,GAAQn0F,IAClD,GAAa,WAAT3hB,IAA+B,QAATA,GAAiB,OAAOA,GAGlD,GAFiB,MAAbiP,GAAI6uM,QAAe7uM,GAAI6uM,OAAQ,GAEpB,KAAXgW,IAA6B,KAAXA,IAA8B,KAAXA,IAAkBh+G,GAAO3hF,MAAM,oBAAoB,GAC1F,KAA6B,aAAtBxS,GAAMxK,QAAQvT,MAAqB2vN,GAAW5xM,SAAK,GACxC,KAAXmyM,GAAgBR,GAAY3xM,GAAOm0F,GAAOqnG,SAAU,UAAG,GAC5C,KAAX2W,GAAgBR,GAAY3xM,GAAOm0F,GAAOqnG,SAAU,UAAG,GAC5C,KAAX2W,GAAgBR,GAAY3xM,GAAOm0F,GAAOqnG,SAAU,UAAG,GAC5C,KAAX2W,GAAgB,CACvB,KAAmB,aAAZ7kN,GAAIrL,MAAqBqL,GAAMskN,GAAW5xM,IAEjD,IADgB,KAAZ1S,GAAIrL,OAAaqL,GAAMskN,GAAW5xM,KACnB,aAAZ1S,GAAIrL,MAAqBqL,GAAMskN,GAAW5xM,GAAK,MAE/CmyM,IAAW7kN,GAAIrL,KAAM2vN,GAAW5xM,IAChC6yM,KACe,KAAZvlN,GAAIrL,MAA2B,OAAZqL,GAAIrL,OAA6B,KAAXkwN,IAC9B,aAAZ7kN,GAAIrL,MAAkC,gBAAXkwN,KACpCR,GAAY3xM,GAAOm0F,GAAOqnG,SAAU,YAAarnG,GAAOxkF,WAS1D,GANa,YAATtxB,KACqB,OAAnB2hB,GAAM8xM,WACLI,EAAayB,sBAAwB9B,GAAW19G,GAAQn0F,GAAOm0F,GAAOx5B,QACtEq3I,GAAWhyM,GAAMxK,UAAY2+F,GAAO3hF,MAAM,UAAU,MACzDn0B,GAAQ,OAENs0N,EAAMp+M,MAAO,CACf,IAAI3L,GAAS+pN,EAAMp+M,MAAM4/F,GAAQn0F,GAAO3hB,SACzBkH,IAAXqD,KAAsBvK,GAAQuK,IAGpC,MAAa,OAATvK,KAA6C,IAA3B6zN,EAAa2B,YAAqBx1N,GAAQ,YAEhE2hB,GAAM4zM,aAAc,EACpB5zM,GAAM8xM,UAAYM,GAAe,MAAQ/zN,IAAS8zN,GAClDuB,GAASv/G,GAAQn0F,IACV3hB,EACT,EAEA4lN,OAAQ,SAASjkM,GAAOstJ,GAAW93J,IACjC,GAAIwK,GAAMqzM,UAAYD,IAA+B,MAAlBpzM,GAAMqzM,UAAoBrzM,GAAM+xM,iBAAmBC,GAAWhyM,GAAMxK,SACrG,OAAO,KACT,IAAIlI,GAAM0S,GAAMxK,QAASs+M,GAAYxmD,IAAaA,GAAUlzK,OAAO,GAC/DgiN,GAAU0X,IAAaxmN,GAAIrL,KAE/B,GADgB,aAAZqL,GAAIrL,MAAoC,KAAb6xN,KAAkBxmN,GAAMA,GAAIswF,MACvDs0H,EAAa6B,qBACf,KAAmB,aAAZzmN,GAAIrL,MAAuBiwN,EAAa6B,qBAAqBt5M,KAAKnN,GAAIugD,OAC3EvgD,GAAMA,GAAIswF,KACd,GAAI+0H,EAAM1O,OAAQ,CAChB,IAAI+P,GAAOrB,EAAM1O,OAAOjkM,GAAO1S,GAAKggK,GAAW93J,GAAQihD,MACvD,GAAmB,iBAARu9J,GAAkB,OAAOA,GAEtC,IAAIC,GAAc3mN,GAAIswF,MAAyB,UAAjBtwF,GAAIswF,KAAK/vC,KACvC,GAAIqkK,EAAagC,mBAAqB,OAAOz5M,KAAKq5M,IAAY,CAC5D,KAAmB,OAAZxmN,GAAIrL,MAA6B,KAAZqL,GAAIrL,MAAaqL,GAAMA,GAAIswF,KACvD,OAAOtwF,GAAIokN,SAEb,MAAgB,aAAZpkN,GAAIrL,KACCqL,GAAIokN,UAAyB,KAAboC,GAAmB,EAAIzB,GAAuB78M,GAAQihD,OAC3EnpD,GAAI6uM,OAAWmW,GAA8B,KAAZhlN,GAAIrL,KAEzB,KAAZqL,GAAIrL,MAAgBm6M,GAGjB9uM,GAAIokN,UAAYtV,GAAU,EAAI5mM,GAAQihD,OACzC2lJ,KAAW6X,IAAgB,sBAAsBx5M,KAAK6yJ,IAA4B,EAAf93J,GAAQihD,MAHtEnpD,GAAIokN,UAAYW,GAAuB78M,GAAQihD,MAF/CnpD,GAAIkuM,QAAUY,GAAU,EAAI,EAMvC,EAEAl6D,aAAc,CACZiyE,eA7L6C,IAA9BjC,EAAakC,aA6LE,uCAAyC,YACvEC,cAAe,CAACzjN,KAAM,KAAMwrJ,MAAO,CAACpiJ,KAAM,KAAMswC,MAAO,OACvDgqK,aAAcrxN,OAAOtE,KAAK4zN,GAAUxgN,OAAO9O,OAAOtE,KAAKqhK,IAAQjuJ,OAAO9O,OAAOtE,KAAK6zN,IAAUzgN,OAAO9O,OAAOtE,KAAKkyK,OAC5GqhD,EAAahwE,cAGtB,CAEA,SAAS6kE,GAAMx0L,GAEb,QADIkiB,EAAM,CAAC,EAAGsyK,EAAQx0L,EAAIpqB,MAAM,KACvBrM,EAAI,EAAGA,EAAIirN,EAAMhrN,SAAUD,EAAG24C,EAAIsyK,EAAMjrN,KAAM,EACvD,OAAO24C,CACT,CACA,SAASogB,GAASkyJ,EAAOqB,GACvB,MAAqB,mBAAVrB,EACFA,EAAMqB,GAENrB,EAAMwN,qBAAqBnM,EAEtC,CACA,IAAIoM,GAAY,8KAKZC,GAAc,6YAOdC,GAAe,maAMfC,GAAe,gTAOfC,GAAc7N,GAAM,8DAKpB8N,GAAiB9N,GAAM,2CAM3B,SAAS+N,GAAOC,GACd,OAAOlgK,GAAS+/J,GAAaG,IAAe,QAAQt6M,KAAKs6M,EAC3D,CAGA,SAASC,GAAUD,GACjB,OAAOD,GAAOC,IAAelgK,GAASggK,GAAgBE,EACxD,CAEA,IAAIE,GAAiB,qDACjBC,GAAe,oBAEnB,SAASC,GAAQhhH,EAAQn0F,GACvB,IAAKA,EAAM4zM,YAAa,OAAO,EAC/B,QAASx9E,EAAIhmI,EAAO,KAAMgmI,EAAKjiC,EAAO0uG,QAAS,CAC7C,GAAU,MAANzsE,GAAcjiC,EAAO3hF,MAAM,OAAQ,CACrCpiB,EAAO+kN,GACP,SACe,KAAN/+E,GAAajiC,EAAO3hF,MAAM,aAAa,GAChD,MAEF2hF,EAAO/jG,MAAI,CAEb4P,SAAMqzM,SAAWjjN,EACV,MACT,CAEA,SAASglN,GAAYC,EAASr1M,GAC5B,MAAuB,QAAnBA,EAAM8xM,WAA4B,MAExC,CAIA,SAASwD,GAAsB/gN,GAE7B,SADKA,GAASA,EAAMxY,OAAS,GACb,KAAZwY,EAAM,IACU,KAAZA,EAAM,IAAeA,EAAM,KAAOA,EAAM,GAAGrM,cACrD,CAEA,SAASqtN,GAAaphH,GACpBA,SAAO4uG,SAAS,WACT,QACT,CAEA,SAASyS,GAAgBrhH,EAAQn0F,GAG/B,GAFAm0F,EAAO+uG,OAAO,GAEV/uG,EAAO3hF,MAAM,uBAAwB,CACvC,IAAIA,EAAQ2hF,EAAO3hF,MAAM,yBACzB,QAAKA,IAGLxS,EAAMy1M,oBAAsBjjM,EAAM,GAClCxS,EAAMqzM,SAAWqC,GACVA,GAAevhH,EAAQn0F,GAJrB,CAOX,OAAIm0F,EAAO3hF,MAAM,mBACX2hF,EAAO3hF,MAAM,SAAmB,IAC3B,UAKX2hF,EAAO/jG,QACA,EACT,CAEA,SAASulN,GAAwBvN,GAC/B,IAAIwN,EAAU,kBAAkBv9J,KAAK+vJ,GACrC,OAAOwN,GAAWA,EAAQ,IAAMA,EAAQ,EAC1C,CAGA,SAASC,GAAc1hH,EAAQn0F,GAE7B,QADI5P,EAC6B,OAAzBA,EAAO+jG,EAAO/jG,SACpB,GAAY,KAARA,IAAgB+jG,EAAO2uG,IAAI,KAAM,CACnC9iM,EAAMqzM,SAAW,KACjB,MAGJ,MAAO,QACT,CAIA,SAASqC,GAAevhH,EAAQn0F,GAE9B,IAAI81M,EAAQ91M,EAAMy1M,oBAAoBv0N,QAAQ,WAAY,QAE1D,OADYizG,EAAO3hF,MAAM,IAAI2lC,OAAO,SAAW29J,EAAQ,MAErD91M,EAAMqzM,SAAW,KAEjBl/G,EAAO8uG,YACF,QACT,CAEiBgP,GAAM,CACrBv3N,KAAM,IACN63N,SAAUxL,GAAMyN,IAChBx0D,MAAO80D,GACPrC,cAAe1L,GAAMkO,IACrBvC,YAAa3L,GAAMmO,IACnBvB,sBAAsB,EACtB9iD,MAAOk2C,GAAM,mBACboM,qBAAsBmC,GACtB3C,MAAO,CACL,IAAKwC,GACL,IAAKC,MAIUnD,GAAM,CACvBv3N,KAAM,MACN63N,SAAUxL,GAAMyN,GAAY,IAAMC,IAClCz0D,MAAO80D,GACPrC,cAAe1L,GAAMkO,GAAiB,oBACtCvC,YAAa3L,GAAMmO,GAAe,oBAClCvB,sBAAsB,EACtB9iD,MAAOk2C,GAAM,2BACbgN,qBAAsB,aACtBb,iBAAkB,sBAClBC,qBAAsBmC,GACtB3C,MAAO,CACL,IAAKwC,GACL,IAAKC,GACLvvM,EAAK2vM,GACLO,EAAKP,GACLQ,EAAKR,GACLS,EAAKT,GACL,EAAKD,GACL,EAAKA,GACL,EAAKA,GACL,EAAKA,GACL,EAAKA,GACL,EAAKA,GACL,EAAKA,GACL,EAAKA,GACL,EAAKA,GACL,EAAKA,GACLhhN,MAAO,SAAS4/F,EAAQn0F,EAAO3hB,GAC7B,GAAa,YAATA,GAAwC,KAAjB81G,EAAO0uG,SACV,KAAnB7iM,EAAM8xM,WAAuC,MAAnB9xM,EAAM8xM,WACb,KAAnB9xM,EAAM8xM,YACP6D,GAAwBxhH,EAAOxkF,WACjC,MAAO,KACX,GAEFmjM,mBAAoB,OAGFb,GAAM,CACxBv3N,KAAM,OACN63N,SAAUxL,GAAM,8SAKhB/mD,MAAO+mD,GAAM,sKAEb0L,cAAe1L,GAAM,uDACrB2L,YAAa3L,GAAM,mCACnB4M,sBAAsB,EACtB9iD,MAAOk2C,GAAM,mBACb9vE,OAAQ,iFACR07E,MAAO,CACL,IAAK,SAASx+G,GAEZ,OAAIA,EAAO3hF,MAAM,aAAa,KAE9B2hF,EAAO4uG,SAAS,WACT,OACT,EACA,IAAK,SAAS5uG,EAAQn0F,GACpB,QAAKm0F,EAAO3hF,MAAM,SAClBxS,EAAMqzM,SAAW6C,GACVl2M,EAAMqzM,SAASl/G,EAAQn0F,GAChC,KAhFG,MAoFMm2M,GAASlE,GAAM,CAC1Bv3N,KAAM,SACN63N,SAAUxL,GAAM,4iBAOhB/mD,MAAO+mD,GAAM,sPAIb0L,cAAe1L,GAAM,sEACrB2L,YAAa3L,GAAM,+CACnB4M,sBAAsB,EACtB9iD,MAAOk2C,GAAM,mBACb4L,MAAO,CACL,IAAK,SAASx+G,EAAQn0F,GACpB,OAAIm0F,EAAO2uG,IAAI,MACb9iM,EAAMqzM,SAAWwC,GACVA,GAAc1hH,EAAQn0F,KAE/Bm0F,EAAO4uG,SAAS,WACT,OACT,KAIJ,SAASmT,GAAkB/hH,EAAQn0F,GAEjC,QADIuzM,GAAU,GACNp/G,EAAOwuG,OAAO,CACpB,IAAK4Q,GAAWp/G,EAAO3hF,MAAM,OAAQ,CACnCxS,EAAMqzM,SAAW,KACjB,MAEFE,EAA2B,MAAjBp/G,EAAO/jG,SAAmBmjN,EAEtC,MAAO,QACT,CAEA,SAAS6C,GAAmBzqB,GAC1B,OAAO,SAAUx3F,EAAQn0F,GAEvB,QADIo2H,EACGA,EAAKjiC,EAAO/jG,QACjB,IAAU,KAANgmI,GAAajiC,EAAO2uG,IAAI,KAC1B,IAAa,GAATnX,EAAY,CACd3rL,EAAMqzM,SAAW,KACjB,MAEArzM,SAAMqzM,SAAW+C,GAAmBzqB,EAAQ,GACrC3rL,EAAMqzM,SAASl/G,EAAQn0F,EAAK,IAEtB,KAANo2H,GAAajiC,EAAO2uG,IAAI,KACjC9iM,SAAMqzM,SAAW+C,GAAmBzqB,EAAQ,GACrC3rL,EAAMqzM,SAASl/G,EAAQn0F,EAAK,CAGvC,MAAO,SACT,CACF,CAEqBiyM,GAAM,CACzBv3N,KAAM,QACN63N,SAAUxL,GAER,uWAQF/mD,MAAO+mD,GACL,muBAYF6L,kBAAkB,EAClBH,cAAe1L,GAAM,0EACrB2L,YAAa3L,GAAM,oDACnBl2C,MAAOk2C,GAAM,mBACb8L,kBAAkB,EAClBuB,cAAc,EACdnB,eAAgB,sBAChBN,MAAO,CACL,IAAK,SAASx+G,GACZA,SAAO4uG,SAAS,WACT,MACT,EACA,IAAK,SAAS5uG,EAAQn0F,GACpB,QAAKm0F,EAAO3hF,MAAM,QAClBxS,EAAMqzM,SAAW6C,GACVl2M,EAAMqzM,SAASl/G,EAAQn0F,GAChC,EACA,IAAK,SAASm0F,GACZ,OAAIA,EAAO3hF,MAAM,wBAAgC,aACjD2hF,EAAO4uG,SAAS,sBACT,OACT,EACA,IAAK,SAAS5uG,EAAQn0F,GACpB,IAAIwmL,EAAKxmL,EAAMxK,QACf,QAAe,KAAXgxL,EAAGvkM,OAAeukM,EAAG2V,QAAShoG,EAAO2uG,IAAI,QAC3C9iM,EAAMxK,QAAU,IAAIi8M,GAAQjrB,EAAGkrB,SAAUlrB,EAAGgV,OAAQhV,EAAGvkM,KAAMukM,EAAG34I,KAAM,KAAM24I,EAAG5oG,MACxE,WAIX,EAEA,IAAK,SAASuW,EAAQn0F,GACpB,QAAKm0F,EAAO2uG,IAAI,OAChB9iM,EAAMqzM,SAAW+C,GAAmB,GAC7Bp2M,EAAMqzM,SAASl/G,EAAQn0F,GAChC,GAEFkiI,aAAc,CACZm0E,cAAe,CAACvV,SAAU,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,WAqBlCmR,GAAM,CAC1Bv3N,KAAM,SACN63N,SAAUxL,GAER,4fAUF/mD,MAAO+mD,GAEL,2eAOFuP,cAAc,EACdzD,kBAAkB,EAClBD,kBAAkB,EAClB37E,OAAQ,mFACRw7E,cAAe1L,GAAM,2DACrB2L,YAAa3L,GAAM,sCACnBl2C,MAAOk2C,GAAM,wBACb4L,MAAO,CACL,IAAK,SAASx+G,GACZA,SAAO4uG,SAAS,WACT,MACT,EACA,IAAK,SAASsS,EAASr1M,GACrB,MAA0B,KAAnBA,EAAM8xM,UAAmB,WAAa,UAC/C,EACA,IAAK,SAAS39G,EAAQn0F,GACpBA,SAAMqzM,SAxDZ,SAASkD,GAAkBC,GACzB,OAAO,SAAUriH,EAAQn0F,GAEvB,QADqB5P,EAAjBmjN,GAAU,EAAazwN,GAAM,GACzBqxG,EAAOwuG,OAAO,CACpB,IAAK6T,IAAiBjD,GAAWp/G,EAAO3hF,MAAM,KAAO,CAAC1vB,GAAM,EAAM,MAClE,GAAI0zN,GAAgBriH,EAAO3hF,MAAM,OAAQ,CAAC1vB,GAAM,EAAM,MACtDsN,EAAO+jG,EAAO/jG,QACVmjN,GAAmB,KAARnjN,GAAe+jG,EAAO3hF,MAAM,MACzC2hF,EAAOozF,OAAO,KAChBgsB,GAAWA,GAAmB,MAARnjN,IAAiBomN,EAEzC,OAAI1zN,IAAQ0zN,KACVx2M,EAAMqzM,SAAW,MACZ,QACT,CACF,CAyCuBkD,CAAkBpiH,EAAO3hF,MAAM,OACzCxS,EAAMqzM,SAASl/G,EAAQn0F,EAChC,EACA,IAAK,SAASm0F,EAAQn0F,GACpB,QAAKm0F,EAAO2uG,IAAI,OAChB9iM,EAAMqzM,SAAW+C,GAAmB,GAC7Bp2M,EAAMqzM,SAASl/G,EAAQn0F,GAChC,EACAikM,OAAQ,SAASjkM,EAAO1S,EAAKggK,EAAWstC,GACtC,IAAIkZ,EAAYxmD,GAAaA,EAAUlzK,OAAO,GAC9C,MAAwB,KAAnB4lB,EAAM8xM,WAAuC,KAAnB9xM,EAAM8xM,WAAkC,IAAbxkD,EAElC,YAAnBttJ,EAAM8xM,WAAwC,KAAbxkD,GAA0C,KAAtBttJ,EAAMxK,QAAQvT,MACjD,YAAnB+d,EAAM8xM,WAAwC,KAAbgC,IACb,KAAnB9zM,EAAM8xM,WAAuC,KAAnB9xM,EAAM8xM,YAAkC,KAAbgC,EACpC,EAAblZ,EAAiBttM,EAAIokN,SAC1BpkN,EAAI6uM,OAAqB,KAAZ7uM,EAAIrL,KACZqL,EAAIokN,UAAY1xM,EAAMxK,QAAQvT,OAASqrK,GAAa,IAAIlzK,OAAO,GAAK,EAAIwgN,QADjF,EALS56L,EAAM0xM,QAOjB,GAEFxvE,aAAc,CACZm0E,cAAe,CAACvV,SAAU,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,WAIlCmR,GAAM,CAC1Bv3N,KAAM,SACN63N,SAAUxL,GAAM,oLAMhB/mD,MAAO+mD,GAAM,yFAGb0L,cAAe1L,GAAM,+BACrByL,QAASzL,GAAM,uoBAefl2C,MAAOk2C,GAAM,myCA2BbqN,cAAc,EACdzB,MAAO,CAAC,IAAKwC,MAGKlD,GAAM,CACxBv3N,KAAM,OACN63N,SAAUxL,GAAMyN,GAAY,yMAG5Bx0D,MAAO80D,GACPrC,cAAe1L,GAAMkO,IACrBpkD,MAAOk2C,GAAM,mBACb4L,MAAO,CAAC,IAAKwC,MAGWlD,GAAM,CAC9Bv3N,KAAM,aACN63N,SAAUxL,GAAMyN,GAAY,IAAME,IAClC10D,MAAOg1D,GACPxC,QAASzL,GAAM4N,IACflC,cAAe1L,GAAMkO,GAAiB,oEACtCvC,YAAa3L,GAAMmO,GAAe,gDAClCnB,qBAAsB,QACtBJ,sBAAsB,EACtB9iD,MAAOk2C,GAAM,0CACboM,qBAAsBmC,GACtB3C,MAAO,CACL,IAAKwC,GACL,IAAKC,MAImBnD,GAAM,CAChCv3N,KAAM,eACN63N,SAAUxL,GAAMyN,GAAY,IAAME,GAAe,IAAMD,IACvDz0D,MAAOg1D,GACPxC,QAASzL,GAAM4N,IACflC,cAAe1L,GAAMkO,GAAiB,oFACtCvC,YAAa3L,GAAMmO,GAAe,gEAClCnB,qBAAsB,mBACtBJ,sBAAsB,EACtB9iD,MAAOk2C,GAAM,0CACboM,qBAAsBmC,GACtB3C,MAAO,CACL,IAAKwC,GACL,IAAKC,GACLvvM,EAAK2vM,GACLO,EAAKP,GACLQ,EAAKR,GACLS,EAAKT,GACL,EAAKD,GACL,EAAKA,GACL,EAAKA,GACL,EAAKA,GACL,EAAKA,GACL,EAAKA,GACL,EAAKA,GACL,EAAKA,GACL,EAAKA,GACL,EAAKA,GACLhhN,MAAO,SAAS4/F,EAAQn0F,EAAO3hB,GAC7B,GAAa,YAATA,GAAwC,KAAjB81G,EAAO0uG,SACV,KAAnB7iM,EAAM8xM,WAAuC,MAAnB9xM,EAAM8xM,WACb,KAAnB9xM,EAAM8xM,YACP6D,GAAwBxhH,EAAOxkF,WACjC,MAAO,KACX,GAEFmjM,mBAAoB,OAGEb,GAAM,CAC5Bv3N,KAAM,WACN63N,SAAUxL,GAAM,mKAEhB/mD,MAAO80D,GACPrC,cAAe1L,GAAM,yDACrB2L,YAAa3L,GAAM,wBACnB4M,sBAAsB,EACtB9iD,MAAOk2C,GAAM,mBACb4L,MAAO,CAAC,IAAKwC,MAIf,IAAIsB,GAAkB,KACtB,SAASC,GAAkBz0N,GACzB,OAAO,SAASkyG,EAAQn0F,GAEtB,QADqB5P,EAAjBmjN,GAAU,EAAazwN,GAAM,GACzBqxG,EAAOwuG,OAAO,CACpB,IAAK4Q,GAAWp/G,EAAO3hF,MAAM,OAChB,UAARvwB,GAAoBkyG,EAAO3hF,MAAM,OAAQ,CAC5C1vB,GAAM,EACN,MAEF,IAAKywN,GAAWp/G,EAAO3hF,MAAM,MAAO,CAClCikM,GAAkBC,GAAkBz0N,GACpCa,GAAM,EACN,MAEFsN,EAAO+jG,EAAO/jG,OACdmjN,EAAkB,UAARtxN,IAAqBsxN,GAAmB,MAARnjN,CAAQ,CAEpD,OAAItN,IACFkd,EAAMqzM,SAAW,MACZ,QACT,CACF,CA0DA,SAASsD,GAAuB32M,IAC7BA,EAAM42M,qBAAuB52M,EAAM42M,mBAAqB,KAAK12N,KAAK8f,EAAMqzM,SAC3E,CAEA,SAASwD,GAAsB72M,GAC7B,OAAQA,EAAM42M,qBAAuB52M,EAAM42M,mBAAqB,KAAKtuN,KACvE,CAMA,SAASwuN,GAAgBzgB,EAAOliG,EAAQn0F,EAAO+2M,GAC7C,IAAIC,GAAe,EACnB,GAAI7iH,EAAO2uG,IAAIzM,GACb,KAAIliG,EAAO2uG,IAAIzM,GACV,MAAO,SADW2gB,GAAe,CAC1B,CAEd,SAASC,EAAkB9iH,EAAQn0F,GAEjC,QADIuzM,GAAU,GACNp/G,EAAOwuG,OAAO,CACpB,IAAKoU,IAAQxD,GAA4B,KAAjBp/G,EAAO0uG,OAC7B8T,UAAuB32M,GACvBA,EAAMqzM,SAAW6D,GACV,SAET,IAAI9mN,EAAO+jG,EAAO/jG,OAClB,GAAIA,GAAQimM,IAAUkd,KAAayD,GAAgB7iH,EAAO3hF,MAAM6jL,EAAQA,IAAS,CAC/Er2L,EAAMqzM,SAAW,KACjB,MAEFE,GAAWwD,IAAQxD,GAAmB,MAARnjN,CAAQ,CAExC,MAAO,QACT,CACA4P,SAAMqzM,SAAW4D,EACVA,EAAkB9iH,EAAQn0F,EACnC,CAEA,SAASk3M,GAAmB/iH,EAAQn0F,GAClCm0F,SAAO2uG,IAAI,KAIT9iM,EAAMqzM,SAHJl/G,EAAO2uG,IAAI,KAGI,KAEAqU,GAEZ,IACT,CAEA,SAASA,GAA6BhjH,EAAQn0F,GAC5Cm0F,SAAO4uG,SAAS,SAChB/iM,EAAMqzM,SAAWwD,GAAsB72M,GAChC,UACT,CCl7BA,SAASuW,GAAQmiB,EAAG0xK,GAChB,MAAO,EAAGpqM,QAAO0B,eACb,GAAI1B,EAAMwiI,SACN,OAAO,EACX,IAAI5D,EAAKlmG,EAAE0xK,EAAQpqM,GACnB,QAAK4+H,IAELl9H,EAAS1B,EAAMpO,OAAOgtI,KACf,EAFI,CAInB,CDyzBsBqzE,GAAM,CAC1Bv3N,KAAM,SACN63N,SAAUxL,GAAM,kRAIhB/mD,MAAO,SAASooD,GAEd,IAAI3wM,EAAQ2wM,EAAKhuN,OAAO,GACxB,OAAQqd,IAAUA,EAAMnC,eAAiBmC,IAAUA,EAAMvP,aAC3D,EACAuqN,cAAe1L,GAAM,sGACrB2L,YAAa3L,GAAM,gEACnByL,QAASzL,GAAM,iLAEfgM,kBAAmB,sBACnBE,eAAgB,sBAChBD,YAAa,SACb/7E,OAAQ,iGACR27E,kBAAkB,EAClBe,sBAAsB,EACtB9iD,MAAOk2C,GAAM,uDACbqN,cAAc,EACdP,WAAW,EACXlB,MAAO,CACL,IAAK,SAASx+G,GACZA,SAAO4uG,SAAS,WACT,MACT,EACA,IAAK,SAAS5uG,EAAQn0F,GACpBA,SAAMqzM,SAAWqD,GAAkBviH,EAAO3hF,MAAM,MAAQ,SAAW,UAC5DxS,EAAMqzM,SAASl/G,EAAQn0F,EAChC,EACA,IAAK,SAASm0F,EAAQn0F,GACpB,SAAKy2M,KAAoBtiH,EAAO3hF,MAAM,QACtCxS,EAAMqzM,SAAWoD,GACjBA,GAAkB,KACXz2M,EAAMqzM,SAASl/G,EAAQn0F,GAChC,EACA,IAAK,SAASm0F,GACZ,OAAIA,EAAO3hF,MAAM,wBAAgC,kBACjD2hF,EAAO4uG,SAAS,sBACT,OACT,EACAxuM,MAAO,SAAS8gN,EAASr1M,EAAO3hB,GAC9B,IAAc,YAATA,GAAgC,QAATA,IACL,KAAnB2hB,EAAM8xM,UACR,MAAO,sBAEX,GAEF5vE,aAAc,CACZm0E,cAAe,CAACvV,SAAU,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,WA6DpCmR,GAAM,CACxBv3N,KAAM,OACN63N,SAAUxL,GAAM,wXAKhB0L,cAAe1L,GAAM,iDACrByL,QAASzL,GAAM,0DACfl2C,MAAOk2C,GAAM,mBACb4L,MAAO,CACL,IAAK,SAASx+G,GACZA,SAAO4uG,SAAS,aACT,MACT,EAGA,IAAK,SAAS5uG,EAAQn0F,GACpB,OAAO82M,GAAgB,IAAK3iH,EAAQn0F,GAAO,EAC7C,EACA,IAAM,SAASm0F,EAAQn0F,GACrB,OAAO82M,GAAgB,IAAM3iH,EAAQn0F,GAAO,EAC9C,EACA9S,EAAK,SAASinG,EAAQn0F,GACpB,IAAI6iM,EAAO1uG,EAAO0uG,OAClB,OAAY,KAARA,GAAuB,KAARA,IACViU,GAAgB3iH,EAAO/jG,OAAQ+jG,EAAQn0F,GAAO,EAGzD,EAEA,IAAK,SAASq1M,EAASr1M,GAErB,OAlFN,SAASo3M,GAAuBp3M,GAC9B,OAAOA,EAAM42M,mBAAqB52M,EAAM42M,mBAAmB76N,OAAS,CACtE,CAgFUq7N,CAAuBp3M,GAAS,IAClCA,EAAMqzM,SAAWwD,GAAsB72M,GAChC,KAGX,EAEA,IAAK,SAASm0F,EAAQn0F,GACpB,QAAKm0F,EAAO2uG,IAAI,OAChB9iM,EAAMqzM,SAAW+C,GAAmB,GAC7Bp2M,EAAMqzM,SAASl/G,EAAQn0F,GAChC,EACAzL,MAAO,SAAS4/F,EAAQnrE,EAAG3qC,GACzB,GAAa,YAATA,GAEY85D,OAAO,6BAA6B,KACtC19C,KAAK05F,EAAOxkF,WACtB,MAAO,MAGb,KCx9BJ,MAAM0nM,GAAiC9gM,GAAQ+gM,GAAmB,GAe5DC,GAAkChhM,GAAQihM,GAAoB,GAa9DC,GAAwClhM,GAAQ,CAACuP,EAAG7kC,IAAMu2N,GAAmB1xL,EAAG7kC,EAuCtF,SAASy2N,GAAmB13M,GACxB,IAAIy6H,EAAS,GACb,QAASvtI,KAAK8S,EAAMm9H,UAAU1C,OAAQ,CAClC,IAAImiD,EAAW58K,EAAMxnB,IAAIk7I,OAAOxmI,EAAEmE,MAC9BwrL,EAAS3vL,EAAEs9G,IAAMoyE,EAASpyE,GAAKoyE,EAAW58K,EAAMxnB,IAAIk7I,OAAOxmI,EAAEs9G,IAC7Dt/F,EAAOuvH,EAAO1+I,OAAS,EACvBmvB,GAAQ,GAAKuvH,EAAOvvH,GAAMs/F,GAAKoyE,EAASvrL,KACxCopI,EAAOvvH,GAAMs/F,GAAKqyE,EAAOryE,GAEzBiwB,EAAOv6I,KAAK,CAAEmR,KAAMurL,EAASvrL,KAAO,OAAOgnD,KAAKukI,EAAS5hL,MAAM,GAAGjf,OAAQyuH,GAAIqyE,EAAOryE,IAAI,CAEjG,OAAOiwB,CACX,CAnDyFi9E,CAAmBz2N,IAAK,GACjH,SAAS02N,GAAU33M,EAAOorB,GACtB,IAAIpoC,EAAOgd,EAAM0mI,eAAe,gBAAiBt7G,GACjD,OAAOpoC,EAAKjH,OAASiH,EAAK,GAAK,CAAC,CACpC,CACA,MAAM40N,GAAe,GAiDrB,SAASJ,GAAmBpN,EAAQpqM,EAAOy6H,EAASz6H,EAAMm9H,UAAU1C,QAChE,IAAIl1F,EAASk1F,EAAO57I,IAAIqO,GAAKyqN,GAAU33M,EAAO9S,EAAEmE,MAAM+qJ,OACtD,IAAK72G,EAAO/3B,MAAMoB,GAAKA,GACnB,OAAO,KACX,IAAI69D,EAAWguD,EAAO57I,IAAI,CAACqO,EAAGpR,IAhDlC,SAAS+7N,GAAiB73M,GAAShG,OAAMswC,SAASj5C,EAAMm5G,GACpD,IASIstG,EAAWC,EATX1qD,EAAartJ,EAAMqmI,SAASh1I,EAAOumN,GAAcvmN,GACjDi8J,EAAYttJ,EAAMqmI,SAAS77B,EAAIA,EAAKotG,IACpCI,EAAc,OAAO3/J,KAAKg1G,GAAY,GAAGtxK,OAAQk8N,EAAa,OAAO5/J,KAAKi1G,GAAW,GAAGvxK,OACxFm8N,EAAY7qD,EAAWtxK,OAASi8N,EACpC,GAAI3qD,EAAWhwK,MAAM66N,EAAYl+M,EAAKje,OAAQm8N,IAAcl+M,GACxDszJ,EAAUjwK,MAAM46N,EAAYA,EAAa3tK,EAAMvuD,SAAWuuD,EAC1D,MAAO,CAAEtwC,KAAM,CAAEoxB,IAAK/5B,EAAO2mN,EAAap6D,OAAQo6D,GAAe,GAC7D1tK,MAAO,CAAElf,IAAKo/E,EAAKytG,EAAYr6D,OAAQq6D,GAAc,IAGzDztG,EAAKn5G,GAAQ,EAAIumN,GACjBE,EAAYC,EAAU/3M,EAAMqmI,SAASh1I,EAAMm5G,IAG3CstG,EAAY93M,EAAMqmI,SAASh1I,EAAMA,EAAOumN,IACxCG,EAAU/3M,EAAMqmI,SAAS77B,EAAKotG,GAAcptG,IAEhD,IAAI2tG,EAAa,OAAO9/J,KAAKy/J,GAAW,GAAG/7N,OAAQq8N,GAAW,OAAO//J,KAAK0/J,GAAS,GAAGh8N,OAClFs8N,GAASN,EAAQh8N,OAASq8N,GAAW9tK,EAAMvuD,OAC/C,OAAI+7N,EAAUz6N,MAAM86N,EAAYA,EAAan+M,EAAKje,SAAWie,GACzD+9M,EAAQ16N,MAAMg7N,GAAQA,GAAS/tK,EAAMvuD,SAAWuuD,EACzC,CAAEtwC,KAAM,CAAEoxB,IAAK/5B,EAAO8mN,EAAan+M,EAAKje,OACvC6hK,OAAQ,KAAKnjJ,KAAKq9M,EAAU19N,OAAO+9N,EAAan+M,EAAKje,SAAW,EAAI,GACxEuuD,MAAO,CAAElf,IAAKo/E,EAAK4tG,GAAW9tK,EAAMvuD,OAChC6hK,OAAQ,KAAKnjJ,KAAKs9M,EAAQ39N,OAAOi+N,GAAS,IAAM,EAAI,IAEzD,IACX,CAoBwCR,CAAiB73M,EAAOulC,EAAOzpD,GAAIoR,EAAEmE,KAAMnE,EAAEs9G,KACjF,GAAc,GAAV4/F,IAA8C39H,EAASj/D,MAAMoB,GAAKA,GAClE,MAAO,CAAEqR,QAASjgB,EAAMigB,QAAQw6G,EAAO57I,IAAI,CAAC29I,EAAO1gJ,IACvC2wF,EAAS3wF,GACF,GACJ,CAAC,CAAEuV,KAAMmrI,EAAMnrI,KAAM6vB,OAAQqkB,EAAOzpD,GAAGke,KAAO,KAAO,CAAE3I,KAAMmrI,EAAMhyB,GAAItpF,OAAQ,IAAMqkB,EAAOzpD,GAAGwuD,WAG7G,GAAc,GAAV8/J,GAA2C39H,EAASvlD,KAAKtY,GAAKA,GAAI,CACvE,IAAIqR,EAAU,GACd,QAAgBq2F,EAAPx6H,EAAI,EAAYA,EAAI2wF,EAAS1wF,OAAQD,IAC1C,GAAIw6H,EAAU7pC,EAAS3wF,GAAI,CACvB,IAAIyY,EAAQgxC,EAAOzpD,IAAMke,OAAMswC,SAAUgsE,EACzCr2F,EAAQ//B,KAAK,CAAEmR,KAAM2I,EAAKoxB,IAAM72B,EAAMyF,KAAKje,OAAQyuH,GAAIxwG,EAAKoxB,IAAMpxB,EAAK4jJ,QAAU,CAAEvsJ,KAAMi5C,EAAMlf,IAAMkf,EAAMszG,OAAQpzC,GAAIlgE,EAAMlf,IAAM72B,EAAM+1C,MAAMvuD,QAAQ,CAE/J,MAAO,CAAEkkC,UAAQ,CAErB,OAAO,IACX,CAEA,SAASq3L,GAAkBlN,EAAQpqM,EAAOy6H,EAASz6H,EAAMm9H,UAAU1C,QAC/D,IAAI5G,EAAQ,GACRykF,GAAW,EACf,QAAWjnN,OAAMm5G,QAAQiwB,EAAQ,CAC7B,IAAIizD,EAAS75D,EAAM93I,OAAQw8N,EAAY,IACnChkN,EAAQojN,GAAU33M,EAAO3O,GAAMT,KACnC,GAAK2D,EAEL,SAAS62B,EAAM/5B,EAAM+5B,GAAOo/E,GAAK,CAC7B,IAAI55G,EAAOoP,EAAMxnB,IAAIk7I,OAAOtoG,GAC5B,GAAIx6B,EAAKS,KAAOinN,IAAajnN,GAAQm5G,GAAMA,EAAK55G,EAAKS,MAAO,CACxDinN,EAAW1nN,EAAKS,KAChB,IAAI4yM,EAAS,OAAO5rJ,KAAKznD,EAAKoK,MAAM,GAAGjf,OACnCqiB,GAAQ6lM,GAAUrzM,EAAK7U,OACvBu6H,GAAU1lH,EAAKoK,KAAK3d,MAAM4mN,EAAQA,EAAS1vM,EAAMxY,SAAWwY,EAAQ0vM,GAAS,EAC7EA,EAASrzM,EAAKoK,KAAKjf,QAAUkoN,EAASsU,IACtCA,EAAYtU,GAChBpwE,EAAM3zI,KAAK,CAAE0Q,OAAM0lH,WAAS/hH,QAAO0vM,SAAQ7lM,SAAOsmI,QAAQ,GAAO,CAErEt5G,EAAMx6B,EAAK45G,GAAK,EAEpB,GAAI+tG,EAAY,IACZ,QAASz8N,EAAI4xM,EAAQ5xM,EAAI+3I,EAAM93I,OAAQD,IAC/B+3I,EAAM/3I,GAAGmoN,OAASpwE,EAAM/3I,GAAG8U,KAAKoK,KAAKjf,SACrC83I,EAAM/3I,GAAGmoN,OAASsU,GAC1B1kF,EAAM93I,QAAU2xM,EAAS,IACzB75D,EAAM65D,GAAQhpD,QAAS,IAE/B,GAAc,GAAV0lE,GAA6Cv2E,EAAM3sG,KAAKwgE,GAAKA,EAAE4uB,QAAU,KAAO5uB,EAAEtpF,OAASspF,EAAEg9C,SAAU,CACvG,IAAIzkH,EAAU,GACd,QAAWrvB,OAAM2D,QAAO0vM,SAAQ7lM,QAAOsmI,YAAY7Q,GAC3C6Q,IAAWtmI,IACX6hB,EAAQ//B,KAAK,CAAEmR,KAAMT,EAAKS,KAAO4yM,EAAQ/iL,OAAQ3sB,EAAQ,MACjE,IAAIikN,EAAYx4M,EAAMigB,QAAQA,GAC9B,MAAO,CAAEA,QAASu4L,EAAWr7E,UAAWn9H,EAAMm9H,UAAUt+I,IAAI25N,EAAW,GAAG,IAE3D,GAAVpO,GAA2Cv2E,EAAM3sG,KAAKwgE,GAAKA,EAAE4uB,SAAW,GAAI,CACjF,IAAIr2F,EAAU,GACd,QAAWrvB,OAAM0lH,UAAS/hH,WAAWs/H,EACjC,GAAIvd,GAAW,EAAG,CACd,IAAIjlH,EAAOT,EAAKS,KAAOilH,EAAS9L,EAAKn5G,EAAOkD,EAAMxY,OACjB,KAA7B6U,EAAKoK,KAAKwvG,EAAK55G,EAAKS,OACpBm5G,IACJvqF,EAAQ//B,KAAK,CAAEmR,OAAMm5G,MAAI,CAEjC,MAAO,CAAEvqF,UAAQ,CAErB,OAAO,IACX,CAEA,MAAMw4L,GAA2Bh2E,YAQ3Bi2E,GAA8Bj2E,YAQ9Bk2E,GAA+Br7E,YAC/Bs7E,GAA6Bt7E,UAAa,CAC5CC,QAAQgK,GACGD,GAAcC,EAAS,CAC1BsxE,SAAU,IACVC,cAAe,IACfC,YAAa,CAACv8B,EAAIw8B,IAAeA,GAClC,CACCH,SAAUr2M,KAAKC,IACfq2M,cAAet2M,KAAK4lC,IACpB2wK,YAAa,CAACzwM,EAAGC,IAAM,CAACq2H,EAAIq6E,IAAQ3wM,EAAEs2H,EAAIq6E,IAAQ1wM,EAAEq2H,EAAIq6E,OAI9DC,GAA6B35E,UAAkB,CACjDr8I,WACWi2N,GAAa/6M,MAExBxM,OAAOoO,EAAO4+H,GACV,IAAI53G,EAAS43G,EAAG5+H,MAAMm+H,MAAMy6E,IACxBQ,EAAWx6E,EAAG6E,WAAWg1E,IAC7B,GAAIW,EAAU,CACV,IAAI53L,EAAO63L,GAAUC,gBAAgB16E,EAAIw6E,EAASj8E,WAAY9rI,EAAO+nN,EAASzyE,KAC1E70I,EAAgB,GAART,EAAkC2O,EAAMu5M,OAASv5M,EAAM84C,KACnE,OACIhnD,EADA0vB,EACQg4L,GAAa1nN,EAAOA,EAAM/V,OAAQirC,EAAO6xL,SAAUr3L,GAEnDi4L,GAAa3nN,EAAO8sI,EAAGuE,WAAWhG,WACvC,IAAIg8E,GAAqB,GAAR9nN,EAAkC+nN,EAAStnB,KAAOhgM,EAAe,GAART,EAAkCS,EAAQsnN,EAAStnB,KAAI,CAE5I,IAAIxJ,EAAU1pD,EAAG6E,WAAWi1E,IAG5B,IAFe,QAAXpwB,GAAgC,UAAXA,KACrBtoL,EAAQA,EAAMsoL,YAC8B,IAA5C1pD,EAAG6E,WAAWP,iBACd,OAAQtE,EAAG3+G,QAAQ7hB,MAA4C4B,EAApCA,EAAM05M,WAAW96E,EAAG3+G,QAAQu6G,MAC3D,IAAIn5I,EAAQg4N,GAAUC,gBAAgB16E,GAClCt8H,EAAOs8H,EAAG6E,WAAWP,SAAmBW,EAAYjF,EAAG6E,WAAWP,cACtE,OAAI7hJ,EACA2e,EAAQA,EAAM25M,WAAWt4N,EAAOihB,EAAMuhI,EAAW78G,EAAQ43G,GACpDA,EAAGzB,YACRn9H,EAAQA,EAAMy5M,aAAa76E,EAAGuE,WAAWhG,UAAW76H,EAAMuhI,EAAW78G,EAAO8xL,iBACjE,QAAXxwB,GAAgC,SAAXA,KACrBtoL,EAAQA,EAAMsoL,WACXtoL,CACX,EACAqjE,OAAO7/E,IACI,CAAEs1D,KAAMt1D,EAAMs1D,KAAKj6D,IAAIY,GAAKA,EAAE4jF,UAAWk2I,OAAQ/1N,EAAM+1N,OAAO16N,IAAIY,GAAKA,EAAE4jF,YAEpF25D,SAASjD,GACE,IAAIo/E,GAAap/E,EAAKjhF,KAAKj6D,IAAIw6N,GAAUr8E,UAAWjD,EAAKw/E,OAAO16N,IAAIw6N,GAAUr8E,aA6B7F,SAASjoH,GAAI4xH,EAAMxJ,GACf,OAAO,UAAYn9H,QAAO0B,aACtB,IAAKy7H,GAAan9H,EAAMwiI,SACpB,OAAO,EACX,IAAIo3E,EAAe55M,EAAMi+H,MAAMi7E,IAAe,GAC9C,IAAKU,EACD,OAAO,EACX,IAAIh7E,EAAKg7E,EAAatxN,IAAIq+I,EAAM3mI,EAAOm9H,GACvC,QAAKyB,IAELl9H,EAASk9H,IACF,EACX,CACJ,CAKA,MAAMi7E,GAAoB9kM,GAAI,GAAyB,GAKjD+kM,GAAoB/kM,GAAI,GAA2B,GAInDglM,GAA6BhlM,GAAI,GAAyB,GAI1DilM,GAA6BjlM,GAAI,GAA2B,GAoBlE,MAAMskM,GACFliO,YAMA8oC,EAEA8iH,EAGAD,EAEAm3E,EAGAC,GACI5iO,KAAK2oC,QAAUA,EACf3oC,KAAKyrJ,QAAUA,EACfzrJ,KAAKwrJ,OAASA,EACdxrJ,KAAK2iO,eAAiBA,EACtB3iO,KAAK4iO,gBAAkBA,CAC3B,CACAC,YAAYtlE,GACR,OAAO,IAAIwkE,GAAU/hO,KAAK2oC,QAAS3oC,KAAKyrJ,QAASzrJ,KAAKwrJ,OAAQxrJ,KAAK2iO,eAAgBplE,EACvF,CACAxxE,SACI,IAAIi7D,EAAIif,EAAIkxB,EACZ,MAAO,CACHxuJ,QAAiC,QAAvBq+G,EAAKhnJ,KAAK2oC,eAA4B,IAAPq+G,OAAgB,EAASA,EAAGj7D,SACrEy/D,OAA+B,QAAtBya,EAAKjmK,KAAKwrJ,cAA2B,IAAPya,OAAgB,EAASA,EAAGl6E,SACnE42I,eAA+C,QAA9BxrC,EAAKn3L,KAAK2iO,sBAAmC,IAAPxrC,OAAgB,EAASA,EAAGprG,SACnF62I,gBAAiB5iO,KAAK4iO,gBAAgBr7N,IAAIoC,GAAKA,EAAEoiF,UAEzD,CACA5rF,gBAAgBsiJ,GACZ,OAAO,IAAIs/E,GAAUt/E,EAAK95G,SAAW+5G,YAAmBD,EAAK95G,SAAU,GAAI85G,EAAK+I,QAAUlK,YAAoBmB,EAAK+I,QAAS/I,EAAKkgF,gBAAkB19E,YAAyBxC,EAAKkgF,gBAAiBlgF,EAAKmgF,gBAAgBr7N,IAAI09I,aAC/N,CAIA9kJ,uBAAuBmnJ,EAAIzB,GACvB,IAAI4F,EAAUoC,GACd,QAAS7K,KAAUsE,EAAGuE,WAAWhF,MAAMw6E,IAAkB,CACrD,IAAI/vN,EAAS0xI,EAAOsE,GAChBh2I,EAAO7M,SACPgnJ,EAAUA,EAAQhxI,OAAOnJ,GAAM,CAEvC,OAAKm6I,EAAQhnJ,QAAU6iJ,EAAG3+G,QAAQ7hB,MACvB,KACJ,IAAIi7M,GAAUz6E,EAAG3+G,QAAQq6G,OAAOsE,EAAGuE,WAAW3qJ,KAAMuqJ,OAASx9I,EAAW43I,GAAayB,EAAGuE,WAAWhG,UAAWgI,GACzH,CACA1tJ,iBAAiB2iO,GACb,OAAO,IAAIf,QAAU9zN,EAAW4/I,QAAM5/I,OAAWA,EAAW60N,EAChE,EAEJ,SAASZ,GAAaa,EAAQ7vG,EAAI8vG,EAAQC,GACtC,IACIC,EAAYH,EAAOh9N,MADXmtH,EAAK,EAAI8vG,EAAS,GAAK9vG,EAAK8vG,EAAS,EAAI,EACjB9vG,GACpCgwG,SAAUt6N,KAAKq6N,GACRC,CACX,CAiBA,SAASC,GAAKnyM,EAAGC,GACb,OAAQD,EAAEvsB,OAAcwsB,EAAExsB,OAAausB,EAAEvW,OAAOwW,GAAbD,EAAhBC,CACvB,CACA,MAAM48H,GAAO,GACPu1E,GAAwB,IAC9B,SAASjB,GAAaY,EAAQl9E,GAC1B,GAAKk9E,EAAOt+N,OAGP,CACD,IAAIu4K,EAAY+lD,EAAOA,EAAOt+N,OAAS,GACnC4+N,EAAOrmD,EAAU4lD,gBAAgB78N,MAAMmlB,KAAKC,IAAI,EAAG6xJ,EAAU4lD,gBAAgBn+N,OAAS2+N,KAC1F,OAAIC,EAAK5+N,QAAU4+N,EAAKA,EAAK5+N,OAAS,GAAGk4I,GAAGkJ,GACjCk9E,GACXM,EAAKz6N,KAAKi9I,GACHq8E,GAAaa,EAAQA,EAAOt+N,OAAS,EAAG,IAAKu4K,EAAU6lD,YAAYQ,IAAK,CAR/E,MAAO,CAACtB,GAAUl8E,UAAU,CAACA,IAUrC,CAEA,SAASy9E,GAAaP,GAClB,IAAInvM,EAAOmvM,EAAOA,EAAOt+N,OAAS,GAC9By+N,EAAYH,EAAOh9N,QACvBm9N,SAAUH,EAAOt+N,OAAS,GAAKmvB,EAAKivM,YAAYjvM,EAAKgvM,gBAAgB78N,MAAM,EAAG6tB,EAAKgvM,gBAAgBn+N,OAAS,IACrGy+N,CACX,CAIA,SAASK,GAAmBR,EAAQx3E,GAChC,IAAKw3E,EAAOt+N,OACR,OAAOs+N,EACX,IAAIt+N,EAASs+N,EAAOt+N,OAAQq+N,EAAaj1E,GACzC,KAAOppJ,GAAQ,CACX,IAAIsF,EAAQy5N,GAAST,EAAOt+N,EAAS,GAAI8mJ,EAASu3E,GAClD,GAAI/4N,EAAM4+B,UAAY5+B,EAAM4+B,QAAQ7hB,OAAS/c,EAAM0hJ,QAAQhnJ,OAAQ,CAC/D,IAAI6M,EAASyxN,EAAOh9N,MAAM,EAAGtB,GAC7B6M,SAAO7M,EAAS,GAAKsF,EACduH,EAGPi6I,EAAUxhJ,EAAMyhJ,OAChB/mJ,IACAq+N,EAAa/4N,EAAM64N,gBAG3B,OAAOE,EAAWr+N,OAAS,CAACs9N,GAAUl8E,UAAUi9E,IAAej1E,EACnE,CACA,SAAS21E,GAASz5N,EAAOwhJ,EAASk4E,GAC9B,IAAIX,EAAaK,GAAKp5N,EAAM64N,gBAAgBn+N,OAASsF,EAAM64N,gBAAgBr7N,IAAIoC,GAAKA,EAAEpC,IAAIgkJ,IAAYsC,GAAM41E,GAE5G,IAAK15N,EAAM4+B,QACP,OAAOo5L,GAAUl8E,UAAUi9E,GAC/B,IAAIY,EAAgB35N,EAAM4+B,QAAQphC,IAAIgkJ,GAAUpJ,EAASoJ,EAAQrJ,QAAQn4I,EAAM4+B,SAAS,GACpFg7L,EAAc55N,EAAMyhJ,OAASzhJ,EAAMyhJ,OAAOxJ,YAAYG,GAAUA,EACpE,OAAO,IAAI4/E,GAAU2B,EAAep4E,cAAuBvhJ,EAAM0hJ,QAASF,GAAUo4E,EAAa55N,EAAM44N,eAAep7N,IAAI46I,GAAS2gF,EACvI,CACA,MAAMc,GAAoB,8BAA8B,IAClD/B,GAAY,MAAlB,MAAMA,EACFhiO,YAAY2hE,EAAMygK,EAAQ4B,EAAW,EAAGC,GACpC9jO,KAAKwhE,KAAOA,EACZxhE,KAAKiiO,OAASA,EACdjiO,KAAK6jO,SAAWA,EAChB7jO,KAAK8jO,cAAgBA,CACzB,CACA9yB,UACI,OAAOhxM,KAAK6jO,SAAW,IAAIhC,EAAa7hO,KAAKwhE,KAAMxhE,KAAKiiO,QAAUjiO,IACtE,CACAqiO,WAAWt4N,EAAOihB,EAAMuhI,EAAW78G,EAAQ43G,GACvC,IAAI9lF,EAAOxhE,KAAKwhE,KAAMw7G,EAAYx7G,EAAKA,EAAK/8D,OAAS,GACrD,OAOI+8D,EAPAw7G,GAAaA,EAAUr0I,UAAYq0I,EAAUr0I,QAAQ7hB,OAAS/c,EAAM4+B,WAClE4jH,GAAaq3E,GAAkBzgN,KAAKopI,OACnCywB,EAAU4lD,gBAAgBn+N,QACzBumB,EAAOhrB,KAAK6jO,SAAWn0L,EAAO8xL,eAC9B9xL,EAAO+xL,YAAYn6E,EAzFnC,SAASo6E,GAAW1wM,EAAGC,GACnB,IAAIkyH,EAAS,GAAIu+E,GAAa,EAC9B1wM,SAAE4wH,kBAAkB,CAACxgG,EAAG3lC,IAAM0nI,EAAOv6I,KAAKw4C,EAAG3lC,IAC7CwV,EAAE2wH,kBAAkB,CAACqjD,EAAIC,EAAI9jJ,EAAG3lC,KAC5B,QAASjX,EAAI,EAAGA,EAAI2+I,EAAO1+I,QAAS,CAChC,IAAIsV,EAAOopI,EAAO3+I,KAAM0uH,EAAKiwB,EAAO3+I,KAChCiX,GAAK1B,GAAQqnC,GAAK8xE,IAClBwuG,GAAa,MAGlBA,CACX,CA8EuCA,CAAW1kD,EAAUr0I,QAAS5+B,EAAM4+B,WAE9C,sBAAb4jH,GACG21E,GAAa1gK,EAAMA,EAAK/8D,OAAS,EAAGirC,EAAO6xL,SAAU,IAAIQ,GAAUh4N,EAAM4+B,QAAQs6G,QAAQ+5B,EAAUr0I,SAAUw6L,GAAKp5N,EAAM0hJ,QAASuxB,EAAUvxB,SAAUuxB,EAAUxxB,OAAQwxB,EAAU2lD,eAAgB90E,KAGjMq0E,GAAa1gK,EAAMA,EAAK/8D,OAAQirC,EAAO6xL,SAAUx3N,GAErD,IAAI83N,EAAargK,EAAMqsF,GAAM7iI,EAAMuhI,EAC9C,CACA41E,aAAat8E,EAAW76H,EAAMuhI,EAAWi1E,GACrC,IAAI5tM,EAAO5zB,KAAKwhE,KAAK/8D,OAASzE,KAAKwhE,KAAKxhE,KAAKwhE,KAAK/8D,OAAS,GAAGm+N,gBAAkB/0E,GAChF,OAAIj6H,EAAKnvB,OAAS,GACdumB,EAAOhrB,KAAK6jO,SAAWrC,GACvBj1E,GAAavsJ,KAAK8jO,eAAiBv3E,GAAa,gBAAgBppI,KAAKopI,IA3FjF,SAASw3E,GAAiB/yM,EAAGC,GACzB,OAAOD,EAAEmyH,OAAO1+I,QAAUwsB,EAAEkyH,OAAO1+I,QACoC,IAAnEusB,EAAEmyH,OAAOprI,OAAO,CAACnC,EAAGpR,IAAMoR,EAAEkR,OAASmK,EAAEkyH,OAAO3+I,GAAGsiB,OAAOriB,MAChE,CAyFYs/N,CAAiBnwM,EAAKA,EAAKnvB,OAAS,GAAIohJ,GACjC7lJ,KACJ,IAAI6hO,EAAaM,GAAaniO,KAAKwhE,KAAMqkF,GAAY7lJ,KAAKiiO,OAAQj3M,EAAMuhI,EACnF,CACA61E,WAAW72E,GACP,OAAO,IAAIs2E,EAAa0B,GAAmBvjO,KAAKwhE,KAAM+pF,GAAUg4E,GAAmBvjO,KAAKiiO,OAAQ12E,GAAUvrJ,KAAK6jO,SAAU7jO,KAAK8jO,cAClI,CACA9yN,IAAIq+I,EAAM3mI,EAAOs7M,GACb,IAAIjB,EAAiB,GAAR1zE,EAAkCrvJ,KAAKwhE,KAAOxhE,KAAKiiO,OAChE,GAAqB,GAAjBc,EAAOt+N,OACP,OAAO,KACX,IAAIsF,EAAQg5N,EAAOA,EAAOt+N,OAAS,GAAIohJ,EAAY97I,EAAM64N,gBAAgB,IAAMl6M,EAAMm9H,UACrF,GAAIm+E,GAAiBj6N,EAAM64N,gBAAgBn+N,OACvC,OAAOikB,EAAMpO,OAAO,CAChBurI,UAAW97I,EAAM64N,gBAAgB74N,EAAM64N,gBAAgBn+N,OAAS,GAChEqnJ,YAAaq1E,GAAY9pN,GAAG,CAAEg4I,OAAMmrD,KAAM8oB,GAAaP,GAASl9E,cAChE0G,UAAmB,GAAR8C,EAAkC,cAAgB,cAC7DtD,gBAAgB,IAGnB,GAAKhiJ,EAAM4+B,QAGX,CACD,IAAI6xK,EAAwB,GAAjBuoB,EAAOt+N,OAAcopJ,GAAOk1E,EAAOh9N,MAAM,EAAGg9N,EAAOt+N,OAAS,GACvE,OAAIsF,EAAMyhJ,SACNgvD,EAAO+oB,GAAmB/oB,EAAMzwM,EAAMyhJ,SACnC9iI,EAAMpO,OAAO,CAChBquB,QAAS5+B,EAAM4+B,QACfk9G,UAAW97I,EAAM44N,eACjBl3E,QAAS1hJ,EAAM0hJ,QACfK,YAAaq1E,GAAY9pN,GAAG,CAAEg4I,OAAMmrD,OAAM30D,cAC1C9tI,QAAQ,EACRw0I,UAAmB,GAAR8C,EAAkC,OAAS,OACtDtD,gBAAgB,GACnB,CAdD,OAAO,IAgBf,EAEJ81E,SAAa/6M,MAAqB,IAAI+6M,EAAah0E,GAAMA,IAtEnDg0E,CAAY,KA+ElB,MAAMoC,GAAgB,CAClB,CAAEnzN,IAAK,QAAS+0C,IAAK08K,GAAMv4N,gBAAgB,GAC3C,CAAE8G,IAAK,QAASgnJ,IAAK,cAAejyG,IAAK28K,GAAMx4N,gBAAgB,GAC/D,CAAE22J,MAAO,eAAgB96G,IAAK28K,GAAMx4N,gBAAgB,GACpD,CAAE8G,IAAK,QAAS+0C,IAAK48K,GAAez4N,gBAAgB,GACpD,CAAE8G,IAAK,QAASgnJ,IAAK,cAAejyG,IAAK68K,GAAe14N,gBAAgB,IAG5E,SAAS0qN,GAAUxnE,EAAKgsB,GACpB,OAAOj0B,UAAuBiI,EAAI/J,OAAO57I,IAAI2xK,GAAKhsB,EAAI9H,UAC1D,CACA,SAAS8+E,GAAOx7M,EAAOm9H,GACnB,OAAOn9H,EAAMpO,OAAO,CAAEurI,YAAWkG,gBAAgB,EAAMQ,UAAW,UACtE,CACA,SAAS43E,IAAUz7M,QAAO0B,YAAYg6M,GAClC,IAAIv+E,EAAY6uE,GAAUhsM,EAAMm9H,UAAWu+E,GAC3C,OAAIv+E,EAAUlJ,GAAGj0H,EAAMm9H,WAAW,KAElCz7H,EAAS85M,GAAOx7M,EAAOm9H,KAChB,EACX,CACA,SAASsyC,GAASjzC,EAAOhF,GACrB,OAAO+E,UAAuB/E,EAAUgF,EAAMhyB,GAAKgyB,EAAMnrI,KAC7D,CACA,SAASsqN,GAAa1nE,EAAMzc,GACxB,OAAOikF,GAAQxnE,EAAMzX,GAASA,EAAMp+H,MAAQ61I,EAAKsc,WAAW/zB,EAAOhF,GAAWi4C,GAASjzC,EAAOhF,GAClG,CACA,SAASokF,GAAY3nE,GACjB,OAAOA,EAAK6X,gBAAgB7X,EAAKj0I,MAAMm9H,UAAUR,KAAKx8I,OAAS8+J,MACnE,CAKA,MAAM48D,GAAiB5nE,GAAQ0nE,GAAa1nE,GAAO2nE,GAAY3nE,IAIzD6nE,GAAkB7nE,GAAQ0nE,GAAa1nE,EAAM2nE,GAAY3nE,IAS/D,SAAS8nE,GAAc9nE,EAAMzc,GACzB,OAAOikF,GAAQxnE,EAAMzX,GAASA,EAAMp+H,MAAQ61I,EAAK2/B,YAAYp3C,EAAOhF,GAAWi4C,GAASjzC,EAAOhF,GACnG,CAqFA,SAASwkF,GAAgBh8M,EAAO7nB,EAAM8jO,GAClC,GAAI9jO,EAAK8J,KAAK0rB,KAAKsuM,GACf,OAAO,EACX,IAAIp0M,EAAM1vB,EAAKqyH,GAAKryH,EAAKkZ,KACzB,OAAOwW,IAAQA,EAAM,GAAK,YAAYpN,KAAKuF,EAAMqmI,SAASluJ,EAAKkZ,KAAMlZ,EAAKqyH,OAASryH,EAAKqiC,UAC5F,CACA,SAAS0hM,GAAal8M,EAAO26D,EAAO68D,GAChC,IAa0ChlH,EAAO61H,EAb7Cj9G,EAAMosK,GAAWx3L,GAAOmqL,aAAaxvH,EAAMx6E,MAC3C87N,EAAczkF,EAAUywD,YAAoBA,YAGhD,QAASnhD,EAAKnsE,EAAMx6E,OAAQ,CACxB,IAAIiQ,EAAOonI,EAAUpsG,EAAIkjJ,WAAWxnC,GAAM17G,EAAIgjJ,YAAYtnC,GAC1D,IAAK12I,EACD,MACA4rN,GAAgBh8M,EAAO5P,EAAM6rN,GAC7B7wL,EAAMh7B,EAEN02I,EAAKtP,EAAUpnI,EAAKo6G,GAAKp6G,EAAKiB,KAGtC,OACIg3I,EAFUj9G,EAAInpC,KAAK0rB,KAAKsuM,KACZzpM,EAAQglH,EAAU6pE,GAAcrhM,EAAOorB,EAAI/5B,KAAM,GAAKgwM,GAAcrhM,EAAOorB,EAAIo/E,IAAI,KAAQh4F,EAAM4T,QACpGoxG,EAAUhlH,EAAM1vB,IAAI0nH,GAAKh4F,EAAM1vB,IAAIuO,KAEnCmmI,EAAUpsG,EAAIo/E,GAAKp/E,EAAI/5B,KAC7BkrI,UAAuB8L,EAAQ7Q,GAAU,EAAK,EACzD,CASA,SAAS2kF,GAAaloE,EAAMzc,GACxB,OAAOikF,GAAQxnE,EAAMzX,IACjB,IAAKA,EAAMp+H,MACP,OAAOqxK,GAASjzC,EAAOhF,GAC3B,IAAIs5B,EAAQ7c,EAAKkgC,eAAe33C,EAAOhF,GACvC,OAAOs5B,EAAM3wK,MAAQq8I,EAAMr8I,KAAO2wK,EAAQ7c,EAAKkvB,mBAAmB3mC,EAAOhF,EAAO,EAExF,QA7GyB4kF,KAAQ,KAAeA,KAiHhD,MAAMC,GAAepoE,GAAQkoE,GAAaloE,GAAM,GAI1CqoE,GAAiBroE,GAAQkoE,GAAaloE,GAAM,GAClD,SAASsoE,GAAStoE,GACd,IACqC5zE,EADjCm8I,EAAavoE,EAAKwX,UAAUrY,aAAea,EAAKwX,UAAUtY,aAAe,EACzEuvB,EAAY,EAAG+5C,EAAe,EAClC,GAAID,EAAY,CACZ,QAAShtN,KAAUykJ,EAAKj0I,MAAMm+H,MAAMwyC,kBAA2B,CAC3D,IAAInkB,EAAUh9J,EAAOykJ,GACiCuY,GAAQ31B,MAC1D6rC,EAAYlgK,KAAKC,IAAsD+pJ,GAAQ31B,IAAK6rC,IAClClW,GAAQ/b,SAC1DgsE,EAAej6M,KAAKC,IAAsD+pJ,GAAQ/b,OAAQgsE,GAAY,CAE9Gp8I,EAAS4zE,EAAKwX,UAAUrY,aAAesvB,EAAY+5C,OAGnDp8I,GAAU4zE,EAAKv4J,IAAIgzJ,cAAcE,aAAet1J,QAAQw3J,YAE5D,MAAO,CAAE4xB,YAAW+5C,eAAcD,aAC9Bn8I,OAAQ79D,KAAKC,IAAIwxI,EAAKmc,kBAAmB/vF,EAAS,GAC1D,CACA,SAASq8I,GAAazoE,EAAMzc,GACxB,IAOIwL,EAPA25E,EAAOJ,GAAStoE,IACdj0I,SAAUi0I,EAAM9W,EAAY6uE,GAAUhsM,EAAMm9H,UAAWX,GAClDA,EAAMp+H,MAAQ61I,EAAKkgC,eAAe33C,EAAOhF,EAASmlF,EAAKt8I,QACxDovG,GAASjzC,EAAOhF,IAE1B,GAAI2F,EAAUlJ,GAAGj0H,EAAMm9H,WACnB,OAAO,EAEX,GAAIw/E,EAAKH,WAAY,CACjB,IAAInoC,EAAWpgC,EAAKggC,YAAYj0K,EAAMm9H,UAAUR,KAAKx8I,MACjDy8N,EAAa3oE,EAAKwX,UAAUtR,wBAC5BlI,EAAY2qE,EAAW/lF,IAAM8lF,EAAKj6C,UAClC2R,GAAYA,EAASx9C,IAAMob,GAAaoiC,EAAS5jC,OADWmsE,EAAWnsE,OAASksE,EAAKF,eAErFz5E,EAAS2tC,kBAA0BxzC,EAAUR,KAAKx8I,KAAM,CAAEqsF,EAAG,QAAS22E,QAASkxB,EAASx9C,IAAMob,IAAW,CAEjHgC,SAAKvyI,SAAS85M,GAAOx7M,EAAOm9H,GAAY,CAAE4F,QAASC,KAC5C,CACX,CAIA,MAAM65E,GAAe5oE,GAAQyoE,GAAazoE,GAAM,GAI1C6oE,GAAiB7oE,GAAQyoE,GAAazoE,GAAM,GAClD,SAAS8oE,GAAmB9oE,EAAMt5E,EAAO68D,GACrC,IAAI5mI,EAAOqjJ,EAAKkY,YAAYxxF,EAAMx6E,MAAO2wK,EAAQ7c,EAAKkvB,mBAAmBxoG,EAAO68D,GAGhF,GAFIs5B,EAAM3wK,MAAQw6E,EAAMx6E,MAAQ2wK,EAAM3wK,OAASq3I,EAAU5mI,EAAK45G,GAAK55G,EAAKS,QACpEy/J,EAAQ7c,EAAKkvB,mBAAmBxoG,EAAO68D,GAAS,KAC/CA,GAAWs5B,EAAM3wK,MAAQyQ,EAAKS,MAAQT,EAAK7U,OAAQ,CACpD,IAAI+kM,EAAQ,OAAOzoI,KAAK47F,EAAKj0I,MAAMqmI,SAASz1I,EAAKS,KAAMmR,KAAK4lC,IAAIx3C,EAAKS,KAAO,IAAKT,EAAK45G,MAAM,GAAGzuH,OAC3F+kM,GAASnmH,EAAMx6E,MAAQyQ,EAAKS,KAAOyvL,IACnChwB,EAAQv0B,UAAuB3rI,EAAKS,KAAOyvL,GAAK,CAExD,OAAOhwB,CACX,CAwDA,SAASksD,GAAU/oE,EAAMynE,GACrB,IAAIv+E,EAAY6uE,GAAU/3D,EAAKj0I,MAAMm9H,UAAWX,IAC5C,IAAIr8I,EAAOu7N,EAAIl/E,GACf,OAAOD,SAAsBC,EAAM3iH,OAAQ15B,EAAKA,KAAMA,EAAKk8I,WAAYl8I,EAAKg8I,gBAAa52I,EAAS,GAEtG,OAAI43I,EAAUlJ,GAAGggB,EAAKj0I,MAAMm9H,aAE5B8W,EAAKvyI,SAAS85M,GAAOvnE,EAAKj0I,MAAOm9H,KAC1B,EACX,CACA,SAAS8/E,GAAahpE,EAAMzc,GACxB,OAAOwlF,GAAU/oE,EAAMzX,GAASyX,EAAKsc,WAAW/zB,EAAOhF,GAC3D,CAKA,MAAM0lF,GAAiBjpE,GAAQgpE,GAAahpE,GAAO2nE,GAAY3nE,IAIzDkpE,GAAkBlpE,GAAQgpE,GAAahpE,EAAM2nE,GAAY3nE,IAS/D,SAASmpE,GAAcnpE,EAAMzc,GACzB,OAAOwlF,GAAU/oE,EAAMzX,GAASyX,EAAK2/B,YAAYp3C,EAAOhF,GAC5D,CAqCA,SAAS6lF,GAAappE,EAAMzc,GACxB,OAAOwlF,GAAU/oE,EAAMzX,GAASyX,EAAKkgC,eAAe33C,EAAOhF,GAC/D,CAIA,MAAM8lF,GAAerpE,GAAQopE,GAAappE,GAAM,GAI1CspE,GAAiBtpE,GAAQopE,GAAappE,GAAM,GAClD,SAASupE,GAAavpE,EAAMzc,GACxB,OAAOwlF,GAAU/oE,EAAMzX,GAASyX,EAAKkgC,eAAe33C,EAAOhF,EAAS+kF,GAAStoE,GAAM5zE,QACvF,CAIA,MAAMo9I,GAAexpE,GAAQupE,GAAavpE,GAAM,GAI1CypE,GAAiBzpE,GAAQupE,GAAavpE,GAAM,GA4B5C0pE,GAAiB,EAAG39M,QAAO0B,eAC7BA,EAAS85M,GAAOx7M,EAAO,CAAE6Z,OAAQ,MAC1B,GAKL+jM,GAAe,EAAG59M,QAAO0B,eAC3BA,EAAS85M,GAAOx7M,EAAO,CAAE6Z,OAAQ7Z,EAAMxnB,IAAIuD,WACpC,GAKL8hO,GAAiB,EAAG79M,QAAO0B,eAC7BA,EAAS85M,GAAOx7M,EAAO,CAAE6Z,OAAQ7Z,EAAMm9H,UAAUR,KAAK9iH,OAAQ15B,KAAM,MAC7D,GAKL29N,GAAe,EAAG99M,QAAO0B,eAC3BA,EAAS85M,GAAOx7M,EAAO,CAAE6Z,OAAQ7Z,EAAMm9H,UAAUR,KAAK9iH,OAAQ15B,KAAM6f,EAAMxnB,IAAIuD,WACvE,GAuDX,SAASgiO,GAAS1kO,EAAQm3K,GACtB,GAAIn3K,EAAO2mB,MAAMwiI,SACb,OAAO,EACX,IAAInhJ,EAAQ,oBAAsB2e,SAAU3mB,EACxC4mC,EAAUjgB,EAAMgmI,cAAcxJ,IAC9B,IAAMnrI,OAAMm5G,MAAOgyB,EACnB,GAAInrI,GAAQm5G,EAAI,CACZ,IAAIwzG,EAAUxtD,EAAGh0B,GACbwhF,EAAU3sN,GACVhQ,EAAQ,kBACR28N,EAAUC,GAAW5kO,EAAQ2kO,GAAS,IAEjCA,EAAU3sN,IACfhQ,EAAQ,iBACR28N,EAAUC,GAAW5kO,EAAQ2kO,GAAS,IAE1C3sN,EAAOmR,KAAK4lC,IAAI/2C,EAAM2sN,GACtBxzG,EAAKhoG,KAAKC,IAAI+nG,EAAIwzG,EAAO,MAGzB3sN,EAAO4sN,GAAW5kO,EAAQgY,GAAM,GAChCm5G,EAAKyzG,GAAW5kO,EAAQmxH,GAAI,GAEhC,OAAOn5G,GAAQm5G,EAAK,CAAEgyB,SAAU,CAAEv8G,QAAS,CAAE5uB,OAAMm5G,MAAMgyB,MAAOD,UAAuBlrI,EAAMA,EAAOmrI,EAAMr8I,MAAO,EAAK,GAAG,GAE7H,OAAI8/B,EAAQA,QAAQ7hB,QAEpB/kB,EAAOqoB,SAAS1B,EAAMpO,OAAOquB,EAAS,CAClCojH,gBAAgB,EAChBQ,UAAWxiJ,EACX0hJ,QAAkB,oBAAT1hJ,EAA8BsvL,eAAuB3wK,EAAMwmI,OAAO,2BAAwBjhJ,MAEhG,EACX,CACA,SAAS04N,GAAW5kO,EAAQ+xC,EAAKosG,GAC7B,GAAIn+I,aAAkBs3L,GAClB,QAASl2C,KAAUphJ,EAAO2mB,MAAMm+H,MAAMwyC,iBAAyB9xL,IAAI65C,GAAKA,EAAEr/C,IACtEohJ,EAAO2N,QAAQh9G,EAAKA,EAAK,CAAC/5B,EAAMm5G,KACxBn5G,EAAO+5B,GAAOo/E,EAAKp/E,IACnBA,EAAMosG,EAAUhtB,EAAKn5G,KAErC,OAAO+5B,CACX,CACA,MAAM8yL,GAAe,CAAC7kO,EAAQm+I,EAAS2mF,IAAiBJ,GAAS1kO,EAAQmjJ,IACrE,IAAwE/C,EAAQ2kF,EAA5EhzL,EAAMoxG,EAAMnrI,MAAQ2O,SAAU3mB,EAAQuX,EAAOoP,EAAMxnB,IAAIk7I,OAAOtoG,GAClE,GAAI+yL,IAAiB3mF,GAAWpsG,EAAMx6B,EAAKS,MAAQ+5B,EAAMx6B,EAAKS,KAAO,MAChE,SAASoJ,KAAKg/H,EAAS7oI,EAAKoK,KAAK3d,MAAM,EAAG+tC,EAAMx6B,EAAKS,OAAQ,CAC9D,GAAiC,MAA7BooI,EAAOA,EAAO19I,OAAS,GACvB,OAAOqvC,EAAM,EACjB,IAA8C6sI,EAApC7qB,GAAY3T,EAAQz5H,EAAMumI,SAAuBs0D,GAAc76L,IAAU66L,GAAc76L,GACjG,QAASlkB,EAAI,EAAGA,EAAIm8K,GAAyC,KAAjCx+B,EAAOA,EAAO19I,OAAS,EAAID,GAAWA,IAC9DsvC,IACJgzL,EAAYhzL,OAGZgzL,EAAY7mF,GAAiB3mI,EAAKoK,KAAMowB,EAAMx6B,EAAKS,KAAMmmI,EAASA,GAAW5mI,EAAKS,KAC9E+sN,GAAahzL,GAAOx6B,EAAKqmI,SAAWO,EAAUx3H,EAAMxnB,IAAIq7I,MAAQ,GAChEuqF,GAAa5mF,EAAU,GAAI,GACrBA,GAAW,kBAAkB/8H,KAAK7J,EAAKoK,KAAK3d,MAAM+gO,EAAYxtN,EAAKS,KAAM+5B,EAAMx6B,EAAKS,SAC1F+sN,EAAY7mF,GAAiB3mI,EAAKoK,KAAMojN,EAAYxtN,EAAKS,MAAM,GAAO,GAAST,EAAKS,MAE5F,OAAO+sN,IAMLC,GAAqBpqE,GAAQiqE,GAAajqE,GAAM,GAAO,GAUvDqqE,GAAoBrqE,GAAQiqE,GAAajqE,GAAM,GAAM,GACrDsqE,GAAgB,CAACllO,EAAQm+I,IAAYumF,GAAS1kO,EAAQmjJ,IACxD,IAAIpxG,EAAMoxG,EAAMr8I,MAAQ6f,SAAU3mB,EAAQuX,EAAOoP,EAAMxnB,IAAIk7I,OAAOtoG,GAC9D2qI,EAAa/1J,EAAM6mI,gBAAgBz7G,GACvC,QAASu3E,EAAM,OAAQ,CACnB,GAAIv3E,IAAQosG,EAAU5mI,EAAK45G,GAAK55G,EAAKS,MAAO,CACpC+5B,GAAOoxG,EAAMr8I,MAAQyQ,EAAKqmI,SAAWO,EAAUx3H,EAAMxnB,IAAIq7I,MAAQ,KACjEzoG,GAAOosG,EAAU,GAAI,GACzB,MAEJ,IAAIpnI,EAAOmnI,GAAiB3mI,EAAKoK,KAAMowB,EAAMx6B,EAAKS,KAAMmmI,GAAW5mI,EAAKS,KACpEs/M,EAAW//M,EAAKoK,KAAK3d,MAAMmlB,KAAK4lC,IAAIhd,EAAKh7B,GAAQQ,EAAKS,KAAMmR,KAAKC,IAAI2oB,EAAKh7B,GAAQQ,EAAKS,MACvF0iL,EAAUhe,EAAW46C,GACzB,GAAW,MAAPhuG,GAAeoxE,GAAWpxE,EAC1B,OACY,KAAZguG,GAAmBvlL,GAAOoxG,EAAMr8I,QAChCwiH,EAAMoxE,GACV3oJ,EAAMh7B,EAEV,OAAOg7B,IAOLozL,GAAsBnlO,GAAUklO,GAAcllO,GAAQ,GAqG5D,SAASolO,GAAmBz+M,GACxB,IAAIs5G,EAAS,GAAIunC,GAAO,EACxB,QAASrkB,KAASx8H,EAAMm9H,UAAU1C,OAAQ,CACtC,IAAIikF,EAAY1+M,EAAMxnB,IAAIk7I,OAAO8I,EAAMnrI,MAAOokI,EAAUz1H,EAAMxnB,IAAIk7I,OAAO8I,EAAMhyB,IAG/E,IAFKgyB,EAAMp+H,OAASo+H,EAAMhyB,IAAMirB,EAAQpkI,OACpCokI,EAAUz1H,EAAMxnB,IAAIk7I,OAAO8I,EAAMhyB,GAAK,IACtCq2C,GAAQ69D,EAAUznF,OAAQ,CAC1B,IAAIr5C,EAAO07B,EAAOA,EAAOv9H,OAAS,GAClC6hG,EAAK4sB,GAAKirB,EAAQjrB,GAClB5sB,EAAK68C,OAAOv6I,KAAKs8I,EAAK,MAGtBljB,EAAOp5H,KAAK,CAAEmR,KAAMqtN,EAAUrtN,KAAMm5G,GAAIirB,EAAQjrB,GAAIiwB,OAAQ,CAAC+B,KAEjEqkB,EAAOprB,EAAQwB,OAAS,EAE5B,OAAO3d,CACX,CACA,SAASqlG,GAAS3+M,EAAO0B,EAAU81H,GAC/B,GAAIx3H,EAAMwiI,SACN,OAAO,EACX,IAAIviH,EAAU,GAAIw6G,EAAS,GAC3B,QAAS2hB,KAASqiE,GAAmBz+M,GAAQ,CACzC,GAAIw3H,EAAU4kB,EAAM5xC,IAAMxqG,EAAMxnB,IAAIuD,OAAuB,GAAdqgK,EAAM/qJ,KAC/C,SACJ,IAAIk0M,EAAWvlM,EAAMxnB,IAAIk7I,OAAO8D,EAAU4kB,EAAM5xC,GAAK,EAAI4xC,EAAM/qJ,KAAO,GAClEqrD,EAAO6oJ,EAASxpN,OAAS,EAC7B,GAAIy7I,EAAS,CACTv3G,EAAQ//B,KAAK,CAAEmR,KAAM+qJ,EAAM5xC,GAAIA,GAAI+6F,EAAS/6F,IAAM,CAAEn5G,KAAM+qJ,EAAM/qJ,KAAM6vB,OAAQqkL,EAASvqM,KAAOgF,EAAMq0H,YACpG,QAASnnI,KAAKkvJ,EAAM3hB,OAChBA,EAAOv6I,KAAKq8I,SAAsB/5H,KAAK4lC,IAAIpoC,EAAMxnB,IAAIuD,OAAQmR,EAAE2sB,OAAS6iC,GAAOl6C,KAAK4lC,IAAIpoC,EAAMxnB,IAAIuD,OAAQmR,EAAE/M,KAAOu8D,IAAM,KAE5H,CACDz8B,EAAQ//B,KAAK,CAAEmR,KAAMk0M,EAASl0M,KAAMm5G,GAAI4xC,EAAM/qJ,MAAQ,CAAEA,KAAM+qJ,EAAM5xC,GAAItpF,OAAQlhB,EAAMq0H,UAAYkxE,EAASvqM,OAC3G,QAAS9N,KAAKkvJ,EAAM3hB,OAChBA,EAAOv6I,KAAKq8I,SAAsBrvI,EAAE2sB,OAAS6iC,EAAMxvD,EAAE/M,KAAOu8D,GAAK,EAG7E,QAAKz8B,EAAQlkC,SAEb2lB,EAAS1B,EAAMpO,OAAO,CAClBquB,UACAojH,gBAAgB,EAChBlG,UAAWZ,UAAuB9B,EAAQz6H,EAAMm9H,UAAUT,WAC1DmH,UAAW,gBAER,EACX,CASA,SAAS+6E,GAAS5+M,EAAO0B,EAAU81H,GAC/B,GAAIx3H,EAAMwiI,SACN,OAAO,EACX,IAAIviH,EAAU,GACd,QAASm8H,KAASqiE,GAAmBz+M,GAE7BigB,EAAQ//B,KADRs3I,EACa,CAAEnmI,KAAM+qJ,EAAM/qJ,KAAM6vB,OAAQlhB,EAAMxnB,IAAI6E,MAAM++J,EAAM/qJ,KAAM+qJ,EAAM5xC,IAAMxqG,EAAMq0H,WAE1E,CAAEhjI,KAAM+qJ,EAAM5xC,GAAItpF,OAAQlhB,EAAMq0H,UAAYr0H,EAAMxnB,IAAI6E,MAAM++J,EAAM/qJ,KAAM+qJ,EAAM5xC,MAEnG9oG,SAAS1B,EAAMpO,OAAO,CAAEquB,UAASojH,gBAAgB,EAAMQ,UAAW,qBAC3D,CACX,CA0EA,MAAMg7E,GAAsCC,IAAiB,GAK7D,SAASA,GAAiBC,GACtB,MAAO,EAAG/+M,QAAO0B,eACb,GAAI1B,EAAMwiI,SACN,OAAO,EACX,IAAIviH,EAAUjgB,EAAMgmI,cAAcxJ,IAC9B,IAAMnrI,OAAMm5G,MAAOgyB,EAAO5rI,EAAOoP,EAAMxnB,IAAIk7I,OAAOriI,GAC9C2tN,GAAWD,GAAS1tN,GAAQm5G,GA9B5C,SAASy0G,GAAkBj/M,EAAOorB,GAC9B,GAAI,iBAAiB3wB,KAAKuF,EAAMqmI,SAASj7G,EAAM,EAAGA,EAAM,IACpD,MAAO,CAAE/5B,KAAM+5B,EAAKo/E,GAAIp/E,GAC5B,IACwEg9J,EADpE5yL,EAAUgiM,GAAWx3L,GAAOmqL,aAAa/+J,GACzCquG,EAASjkI,EAAQ44K,YAAYhjJ,GAAMypH,EAAQr/I,EAAQ84K,WAAWljJ,GAClE,OAAIquG,GAAUob,GAASpb,EAAOjvB,IAAMp/E,GAAOypH,EAAMxjJ,MAAQ+5B,IACpDg9J,EAAW3uD,EAAOx3I,KAAK0rB,KAAKs6K,eAAuBG,EAAS5/L,QAAQqsJ,EAAMn6J,OAAQ,GACnFslB,EAAMxnB,IAAIk7I,OAAO+F,EAAOjvB,IAAIn5G,MAAQ2O,EAAMxnB,IAAIk7I,OAAOmhB,EAAMxjJ,MAAMA,OAChE,KAAKoJ,KAAKuF,EAAMqmI,SAAS5M,EAAOjvB,GAAIqqC,EAAMxjJ,OACpC,CAAEA,KAAMooI,EAAOjvB,GAAIA,GAAIqqC,EAAMxjJ,MACjC,IACX,CAmBkD4tN,CAAkBj/M,EAAO3O,GAC3D0tN,IACA1tN,EAAOm5G,GAAMA,GAAM55G,EAAK45G,GAAK55G,EAAOoP,EAAMxnB,IAAIk7I,OAAOlpB,IAAKA,IAC9D,IAAIg8E,EAAK,IAAI0U,GAAcl7L,EAAO,CAAEq7L,cAAehqM,EAAMiqM,sBAAuB0jB,IAC5E/a,EAAShJ,GAAezU,EAAIn1L,GAGhC,IAFc,MAAV4yM,IACAA,EAAS72D,GAAY,OAAO/0F,KAAKr4C,EAAMxnB,IAAIk7I,OAAOriI,GAAM2J,MAAM,GAAIgF,EAAMumI,UACrE/7B,EAAK55G,EAAK45G,IAAM,KAAK/vG,KAAK7J,EAAKoK,KAAKwvG,EAAK55G,EAAKS,QACjDm5G,IACAw0G,IACG3tN,OAAMm5G,MAAOw0G,GACX3tN,EAAOT,EAAKS,MAAQA,EAAOT,EAAKS,KAAO,MAAQ,KAAKoJ,KAAK7J,EAAKoK,KAAK3d,MAAM,EAAGgU,MACjFA,EAAOT,EAAKS,MAChB,IAAI6vB,EAAS,CAAC,GAAI45K,GAAa96L,EAAOikM,IACtC,OAAI+a,GACA99L,EAAOhhC,KAAK46M,GAAa96L,EAAOwmL,EAAGmV,WAAW/qM,EAAKS,MAAM,KACtD,CAAE4uB,QAAS,CAAE5uB,OAAMm5G,KAAItpF,OAAQuyG,MAAQvyG,IAC1Cs7G,MAAOD,UAAuBlrI,EAAO,EAAI6vB,EAAO,GAAGnlC,QAAQ,GAEnE2lB,SAAS1B,EAAMpO,OAAOquB,EAAS,CAAEojH,gBAAgB,EAAMQ,UAAW,YAC3D,EAEf,CACA,SAASq7E,GAAqBl/M,EAAO04B,GACjC,IAAIymL,GAAS,EACb,OAAOn/M,EAAMgmI,cAAcxJ,IACvB,IAAIv8G,EAAU,GACd,QAASmL,EAAMoxG,EAAMnrI,KAAM+5B,GAAOoxG,EAAMhyB,IAAK,CACzC,IAAI55G,EAAOoP,EAAMxnB,IAAIk7I,OAAOtoG,GACxBx6B,EAAKqmI,OAASkoF,IAAW3iF,EAAMp+H,OAASo+H,EAAMhyB,GAAK55G,EAAKS,QACxDqnC,EAAE9nC,EAAMqvB,EAASu8G,GACjB2iF,EAASvuN,EAAKqmI,QAElB7rG,EAAMx6B,EAAK45G,GAAK,EAEpB,IAAIguG,EAAYx4M,EAAMigB,QAAQA,GAC9B,MAAO,CAAEA,UACLu8G,MAAOD,SAAsBi8E,EAAU7+E,OAAO6C,EAAM3iH,OAAQ,GAAI2+L,EAAU7+E,OAAO6C,EAAMr8I,KAAM,IAAI,EAE7G,CAMA,MA6MMopN,GAA6B,CAC/B,CAAEnhN,IAAK,gBAAiBgnJ,IAAK,iBAAkBjyG,IAz6B1B82G,GAAQwnE,GAAQxnE,EAAMzX,GAAS0/E,GAAajoE,EAAKj0I,MAAOw8H,GAAQo/E,GAAY3nE,KAy6B3B1sJ,MApuBjD0sJ,GAAQ+oE,GAAU/oE,EAAMzX,GAAS0/E,GAAajoE,EAAKj0I,MAAOw8H,GAAQo/E,GAAY3nE,MAquBnG,CAAE7rJ,IAAK,iBAAkBgnJ,IAAK,kBAAmBjyG,IAt6B3B82G,GAAQwnE,GAAQxnE,EAAMzX,GAAS0/E,GAAajoE,EAAKj0I,MAAOw8H,EAAOo/E,GAAY3nE,KAs6BxB1sJ,MAjuBnD0sJ,GAAQ+oE,GAAU/oE,EAAMzX,GAAS0/E,GAAajoE,EAAKj0I,MAAOw8H,EAAOo/E,GAAY3nE,MAkuBnG,CAAE7rJ,IAAK,cAAe+0C,IAnWP,EAAGn9B,QAAO0B,cAAei9M,GAAS3+M,EAAO0B,GAAU,IAoWlE,CAAEtZ,IAAK,oBAAqB+0C,IA/Ub,EAAGn9B,QAAO0B,cAAek9M,GAAS5+M,EAAO0B,GAAU,IAgVlE,CAAEtZ,IAAK,gBAAiB+0C,IAjWP,EAAGn9B,QAAO0B,cAAei9M,GAAS3+M,EAAO0B,GAAU,IAkWpE,CAAEtZ,IAAK,sBAAuB+0C,IA7Ub,EAAGn9B,QAAO0B,cAAek9M,GAAS5+M,EAAO0B,GAAU,IA8UpE,CAAEtZ,IAAK,SAAU+0C,IAjnBK,EAAGn9B,QAAO0B,eAChC,IAAIunI,EAAMjpI,EAAMm9H,UAAWA,EAAY,KAKvC,OAJI8L,EAAIxO,OAAO1+I,OAAS,EACpBohJ,EAAYZ,UAAuB,CAAC0M,EAAItM,OAClCsM,EAAItM,KAAKv+H,QACf++H,EAAYZ,UAAuB,CAACA,UAAuB0M,EAAItM,KAAKx8I,WACnEg9I,IAELz7H,EAAS85M,GAAOx7M,EAAOm9H,KAChB,EAFI,GA2mBX,CAAE/0I,IAAK,YAAa+0C,IAzQa2hL,IAAiB,IA0QlD,CAAE12N,IAAK,QAASgnJ,IAAK,SAAUjyG,IAnpBhB,EAAGn9B,QAAO0B,eACzB,IAAI+4H,EAASgkF,GAAmBz+M,GAAOnhB,IAAI,EAAGwS,OAAMm5G,QAAS+xB,SAAsBlrI,EAAMmR,KAAK4lC,IAAIoiE,EAAK,EAAGxqG,EAAMxnB,IAAIuD,UACpH2lB,SAAS1B,EAAMpO,OAAO,CAAEurI,UAAWZ,UAAuB9B,GAASoJ,UAAW,aACvE,IAipBP,CAAEz7I,IAAK,QAAS+0C,IAzoBO,EAAGn9B,QAAO0B,eACjC,IAAIy7H,EAAY6uE,GAAUhsM,EAAMm9H,UAAWX,IACvC,IAAI8B,EAEJ,QAAS2K,EADGuuD,GAAWx3L,GAAOoqL,aAAa5tD,EAAMnrI,KAAM,GACjC43I,EAAKA,EAAMA,EAAI74I,KAAM,CACvC,IAAMjY,QAAS8wJ,EACf,IAAM9wJ,EAAKkZ,KAAOmrI,EAAMnrI,MAAQlZ,EAAKqyH,IAAMgyB,EAAMhyB,IAC5CryH,EAAKqyH,GAAKgyB,EAAMhyB,IAAMryH,EAAKkZ,MAAQmrI,EAAMnrI,OAClB,QAAtBitI,EAAKnmJ,EAAKwL,cAA2B,IAAP26I,GAAyBA,EAAG36I,OAC5D,OAAO44I,SAAsBpkJ,EAAKqyH,GAAIryH,EAAKkZ,KAAI,CAEvD,OAAOmrI,IAEX96H,SAAS85M,GAAOx7M,EAAOm9H,KAChB,GA2nBkC77I,gBAAgB,GACzD,CAAE8G,IAAK,QAAS+0C,IA/KD,EAAGn9B,QAAO0B,eACrB1B,EAAMwiI,WAEV9gI,EAAS1B,EAAMpO,OAAOstN,GAAqBl/M,EAAO,CAACpP,EAAMqvB,KACrD,IAAI6gK,EAAQ,OAAOzoI,KAAKznD,EAAKoK,MAAM,GACnC,IAAK8lL,EACD,OACJ,IAAIxzC,EAAMF,GAAY0zC,EAAO9gL,EAAMumI,SAAU64E,EAAO,EAChDl+L,EAAS45K,GAAa96L,EAAOwC,KAAKC,IAAI,EAAG6qI,EAAMutD,GAAc76L,KACjE,KAAOo/M,EAAOt+B,EAAM/kM,QAAUqjO,EAAOl+L,EAAOnlC,QAAU+kM,EAAMjpD,WAAWunF,IAASl+L,EAAO22G,WAAWunF,IAC9FA,IACJn/L,EAAQ//B,KAAK,CAAEmR,KAAMT,EAAKS,KAAO+tN,EAAM50G,GAAI55G,EAAKS,KAAOyvL,EAAM/kM,OAAQmlC,OAAQA,EAAO7jC,MAAM+hO,IAAO,GACjG,CAAEv7E,UAAW,oBACV,IAmKP,CAAEz7I,IAAK,QAAS+0C,IA5LD,EAAGn9B,QAAO0B,eACrB1B,EAAMwiI,WAEV9gI,EAAS1B,EAAMpO,OAAOstN,GAAqBl/M,EAAO,CAACpP,EAAMqvB,KACrDA,EAAQ//B,KAAK,CAAEmR,KAAMT,EAAKS,KAAM6vB,OAAQlhB,EAAMm+H,MAAMy8D,KAAa,GACjE,CAAE/2D,UAAW,mBACV,IAuLP,CAAEz7I,IAAK,aAAc+0C,IA1ND,EAAGn9B,QAAO0B,eAC9B,GAAI1B,EAAMwiI,SACN,OAAO,EACX,IAAI7M,EAAU1yI,OAAOC,OAAO,MACxBsS,EAAU,IAAI0lM,GAAcl7L,EAAO,CAAEy7L,oBAAqB9gI,GAC1Cg7D,EAAQh7D,KACG,IAE3B16C,EAAUi/L,GAAqBl/M,EAAO,CAACpP,EAAMqvB,EAASu8G,KACtD,IAAIynE,EAAShJ,GAAezlM,EAAS5E,EAAKS,MAC1C,GAAc,MAAV4yM,EACA,OACC,KAAKxpM,KAAK7J,EAAKoK,QAChBipM,EAAS,GACb,IAAIh7D,EAAM,OAAO5wF,KAAKznD,EAAKoK,MAAM,GAC7BqkN,EAAOvkB,GAAa96L,EAAOikM,IAC3Bh7D,GAAOo2E,GAAQ7iF,EAAMnrI,KAAOT,EAAKS,KAAO43I,EAAIltJ,UAC5C45I,EAAQ/kI,EAAKS,MAAQ4yM,EACrBhkL,EAAQ//B,KAAK,CAAEmR,KAAMT,EAAKS,KAAMm5G,GAAI55G,EAAKS,KAAO43I,EAAIltJ,OAAQmlC,OAAQm+L,IAAM,GAGlF,OAAKp/L,EAAQA,QAAQ7hB,OACjBsD,EAAS1B,EAAMpO,OAAOquB,EAAS,CAAE4jH,UAAW,aACzC,IAoMP,CAAEz7I,IAAK,cAAe+0C,IAjVP82G,IACf,GAAIA,EAAKj0I,MAAMwiI,SACX,OAAO,EACX,IAAMxiI,SAAUi0I,EAAMh0H,EAAUjgB,EAAMigB,QAAQw+L,GAAmBz+M,GAAOnhB,IAAI,EAAGwS,OAAMm5G,SAC7En5G,EAAO,EACPA,IACKm5G,EAAKxqG,EAAMxnB,IAAIuD,QACpByuH,IACG,CAAEn5G,OAAMm5G,SAEf2yB,EAAY6uE,GAAUhsM,EAAMm9H,UAAWX,IACvC,IAAIyf,EACJ,GAAIhI,EAAKkc,aAAc,CACnB,IAAI/T,EAAQnI,EAAKkY,YAAY3vB,EAAMr8I,MAAOirC,EAAM6oH,EAAKggC,YAAYz3C,EAAMr8I,KAAMq8I,EAAM5C,OAAS,GACxFxuG,IACA6wH,EAAQG,EAAM3L,OAASwD,EAAKw/B,YAAeroJ,EAAIqlH,OAASwD,EAAKmc,kBAAoB,GAEzF,OAAOnc,EAAKkgC,eAAe33C,GAAO,EAAMyf,EAAI,GAC7Cp9J,IAAIohC,GACPg0H,SAAKvyI,SAAS,CAAEue,UAASk9G,YAAWkG,gBAAgB,EAAMQ,UAAW,iBAC9D,IA8TP,CAAEz7I,IAAK,eAAgB+0C,IAxzBG,EAAGn9B,QAAO0B,cArBxC,SAAS49M,GAAkBt/M,EAAO0B,EAAUw1H,GACxC,IAAIlpF,GAAQ,EAAOmvF,EAAY6uE,GAAUhsM,EAAMm9H,UAAWX,IACtD,IAAI0lE,EAAWb,GAAcrhM,EAAOw8H,EAAMr8I,MAAM,IACzCkhN,GAAcrhM,EAAOw8H,EAAMr8I,KAAM,IAChCq8I,EAAMr8I,KAAO,GAAKkhN,GAAcrhM,EAAOw8H,EAAMr8I,KAAO,EAAG,IACvDq8I,EAAMr8I,KAAO6f,EAAMxnB,IAAIuD,QAAUslN,GAAcrhM,EAAOw8H,EAAMr8I,KAAO,GAAG,GAC9E,IAAK+hN,IAAaA,EAASp/M,IACvB,OAAO05I,EACXxuF,GAAQ,EACR,IAAI7tD,EAAO+hN,EAASvnI,MAAMtpE,MAAQmrI,EAAMr8I,KAAO+hN,EAASp/M,IAAI0nH,GAAK03F,EAASp/M,IAAIuO,KAC9E,OAAO6lI,EAASqF,SAAsBC,EAAM3iH,OAAQ15B,GAAQo8I,UAAuBp8I,EAAI,GAE3F,QAAK6tD,IAELtsC,EAAS85M,GAAOx7M,EAAOm9H,KAChB,EACX,CAKuDmiF,CAAkBt/M,EAAO0B,GAAU,IAyzBtF,CAAEtZ,IAAK,QAAS+0C,IArnDE9jD,IAClB,IAAM2mB,SAAU3mB,EAAQuX,EAAOoP,EAAMxnB,IAAIk7I,OAAO1zH,EAAMm9H,UAAUR,KAAKtrI,MAAO21B,EAAS2wL,GAAUt+N,EAAO2mB,MAAOpP,EAAKS,MAClH,OAAO21B,EAAOp2B,KAAOymN,GAAkBh+N,KAAU2tC,EAAOo1H,OAAQq7D,GAAyBp+N,EAAU,GAonDnG,CAAE+O,IAAK,QAAS+0C,IAAKo6K,IACrB,CAAEnvN,IAAK,SAAUgnJ,IAAK,cAAejyG,IAhKd82G,IACvBA,EAAKkhC,mBACE,KA+JTpjL,OAtEkC,CAChC,CAAE3J,IAAK,YAAa+0C,IAAK0+K,GAAgBt0N,MAAO21N,GAAgB57N,gBAAgB,GAChF,CAAE8G,IAAK,gBAAiBgnJ,IAAK,gBAAiBjyG,IAr+B1B82G,GAAQ8nE,GAAc9nE,GAAO2nE,GAAY3nE,IAq+BO1sJ,MA7sBhD0sJ,GAAQmpE,GAAcnpE,GAAO2nE,GAAY3nE,IA6sB+B3yJ,gBAAgB,GAC5G,CAAE8tJ,IAAK,gBAAiBjyG,IA3xBG82G,GAAQwnE,GAAQxnE,EAAMzX,GAASugF,GAAmB9oE,EAAMzX,GAAQo/E,GAAY3nE,KA2xBlD1sJ,MA7oB1B0sJ,GAAQ+oE,GAAU/oE,EAAMzX,GAASugF,GAAmB9oE,EAAMzX,GAAQo/E,GAAY3nE,KA6oBrB3yJ,gBAAgB,GACpG,CAAE8G,IAAK,aAAc+0C,IAAK2+K,GAAiBv0N,MAAO41N,GAAiB77N,gBAAgB,GACnF,CAAE8G,IAAK,iBAAkBgnJ,IAAK,iBAAkBjyG,IAp+B3B82G,GAAQ8nE,GAAc9nE,EAAM2nE,GAAY3nE,IAo+BU1sJ,MA5sBlD0sJ,GAAQmpE,GAAcnpE,EAAM2nE,GAAY3nE,IA4sBmC3yJ,gBAAgB,GAChH,CAAE8tJ,IAAK,iBAAkBjyG,IA1xBG82G,GAAQwnE,GAAQxnE,EAAMzX,GAASugF,GAAmB9oE,EAAMzX,EAAOo/E,GAAY3nE,KA0xBhD1sJ,MA5oB3B0sJ,GAAQ+oE,GAAU/oE,EAAMzX,GAASugF,GAAmB9oE,EAAMzX,EAAOo/E,GAAY3nE,KA4oBlB3yJ,gBAAgB,GACvG,CAAE8G,IAAK,UAAW+0C,IAAKk/K,GAAc90N,MAAO+1N,GAAch8N,gBAAgB,GAC1E,CAAE8tJ,IAAK,cAAejyG,IAAKwgL,GAAgBp2N,MAAOs2N,IAClD,CAAEzuE,IAAK,eAAgBjyG,IAAK0/K,GAAct1N,MAAOk2N,IACjD,CAAEr1N,IAAK,YAAa+0C,IAAKm/K,GAAgB/0N,MAAOg2N,GAAgBj8N,gBAAgB,GAChF,CAAE8tJ,IAAK,gBAAiBjyG,IAAKygL,GAAcr2N,MAAOu2N,IAClD,CAAE1uE,IAAK,iBAAkBjyG,IAAK2/K,GAAgBv1N,MAAOm2N,IACrD,CAAEt1N,IAAK,SAAU+0C,IAAK0/K,GAAct1N,MAAOk2N,IAC3C,CAAEr1N,IAAK,WAAY+0C,IAAK2/K,GAAgBv1N,MAAOm2N,IAC/C,CAAEt1N,IAAK,OAAQ+0C,IA3yBgB82G,GAAQwnE,GAAQxnE,EAAMzX,GAASugF,GAAmB9oE,EAAMzX,GAAO,IA2yB9Cj1I,MA7pBjB0sJ,GAAQ+oE,GAAU/oE,EAAMzX,GAASugF,GAAmB9oE,EAAMzX,GAAO,IA6pBbl7I,gBAAgB,GACnG,CAAE8G,IAAK,WAAY+0C,IAAKwgL,GAAgBp2N,MAAOs2N,IAC/C,CAAEz1N,IAAK,MAAO+0C,IApzBgB82G,GAAQwnE,GAAQxnE,EAAMzX,GAASugF,GAAmB9oE,EAAMzX,GAAO,IAozB/Cj1I,MAnqBhB0sJ,GAAQ+oE,GAAU/oE,EAAMzX,GAASugF,GAAmB9oE,EAAMzX,GAAO,IAmqBfl7I,gBAAgB,GAChG,CAAE8G,IAAK,UAAW+0C,IAAKygL,GAAcr2N,MAAOu2N,IAC5C,CAAE11N,IAAK,QAAS+0C,IAAK0hL,IACrB,CAAEz2N,IAAK,QAAS+0C,IAlnBF,EAAGn9B,QAAO0B,eACxBA,EAAS1B,EAAMpO,OAAO,CAAEurI,UAAW,CAAEtjH,OAAQ,EAAG15B,KAAM6f,EAAMxnB,IAAIuD,QAAU8nJ,UAAW,aAC9E,IAinBP,CAAEz7I,IAAK,YAAa+0C,IAAKkhL,GAAoB92N,MAAO82N,IACpD,CAAEj2N,IAAK,SAAU+0C,IAAKmhL,IACtB,CAAEl2N,IAAK,gBAAiBgnJ,IAAK,gBAAiBjyG,IAAKqhL,IACnD,CAAEp2N,IAAK,aAAcgnJ,IAAK,aAAcjyG,IAzdjB9jD,GAAUklO,GAAcllO,GAAQ,IA0dvD,CAAE+1J,IAAK,gBAAiBjyG,IAncO82G,GAAQ8pE,GAAS9pE,EAAMzX,IACtD,IAAIquB,EAAY5W,EAAKkvB,mBAAmB3mC,GAAO,GAAOr8I,KACtD,OAAOq8I,EAAMr8I,KAAO0qK,EAAYA,EAAYroJ,KAAKC,IAAI,EAAG+5H,EAAMr8I,KAAO,EAAC,IAkctE,CAAEivJ,IAAK,aAAcjyG,IA5bS82G,GAAQ8pE,GAAS9pE,EAAMzX,IACrD,IAAIquB,EAAY5W,EAAKkvB,mBAAmB3mC,GAAO,GAAMr8I,KACrD,OAAOq8I,EAAMr8I,KAAO0qK,EAAYA,EAAYroJ,KAAK4lC,IAAI6rG,EAAKj0I,MAAMxnB,IAAIuD,OAAQygJ,EAAMr8I,KAAO,EAAC,KA2b5F4R,OA3EuB,CACrB,CAAE3J,IAAK,SAAU+0C,IAAK0+K,GAAgBt0N,MAAO21N,GAAgB57N,gBAAgB,GAC7E,CAAE8G,IAAK,SAAU+0C,IAAK2+K,GAAiBv0N,MAAO41N,IAC9C,CAAE/0N,IAAK,SAAU+0C,IAAKk/K,GAAc90N,MAAO+1N,IAC3C,CAAEl1N,IAAK,SAAU+0C,IAAKm/K,GAAgB/0N,MAAOg2N,IAC7C,CAAEn1N,IAAK,SAAU+0C,IAruBG82G,GAAQwnE,GAAQxnE,EAAMzX,GAASD,UAAuB0X,EAAKkY,YAAY3vB,EAAMr8I,MAAMkR,KAAM,IAquBtE9J,MAvlBnB0sJ,GAAQ+oE,GAAU/oE,EAAMzX,GAASD,UAAuB0X,EAAKkY,YAAY3vB,EAAMr8I,MAAMkR,QAwlBzG,CAAEjJ,IAAK,SAAU+0C,IAluBC82G,GAAQwnE,GAAQxnE,EAAMzX,GAASD,UAAuB0X,EAAKkY,YAAY3vB,EAAMr8I,MAAMqqH,IAAI,IAkuBpEjjH,MAplBnB0sJ,GAAQ+oE,GAAU/oE,EAAMzX,GAASD,UAAuB0X,EAAKkY,YAAY3vB,EAAMr8I,MAAMqqH,MAqlBvG,CAAEpiH,IAAK,SAAU+0C,IAAKmhL,IACtB,CAAEl2N,IAAK,SAAU+0C,IAAKkhL,IACtB,CAAEj2N,IAAK,SAAU+0C,IApZG82G,GAAQ8pE,GAAS9pE,EAAMzX,IAC3C,IAAI0hC,EAAUjqB,EAAKkY,YAAY3vB,EAAMr8I,MAAMqqH,GAC3C,OAAOgyB,EAAMr8I,KAAO+9K,EAAUA,EAAU17J,KAAK4lC,IAAI6rG,EAAKj0I,MAAMxnB,IAAIuD,OAAQygJ,EAAMr8I,KAAO,EAAC,IAmZtF,CAAEiI,IAAK,aAAc+0C,IAAKqhL,IAC1B,CAAEp2N,IAAK,SAAU+0C,IAzVH,EAAGn9B,QAAO0B,eACxB,GAAI1B,EAAMwiI,SACN,OAAO,EACX,IAAIviH,EAAUjgB,EAAMgmI,cAAcxJ,KACrBv8G,QAAS,CAAE5uB,KAAMmrI,EAAMnrI,KAAMm5G,GAAIgyB,EAAMhyB,GAAItpF,OAAQuyG,MAAQ,CAAC,GAAI,MACrE+I,MAAOD,UAAuBC,EAAMnrI,SAE5CqQ,SAAS1B,EAAMpO,OAAOquB,EAAS,CAAEojH,gBAAgB,EAAMQ,UAAW,YAC3D,IAkVP,CAAEz7I,IAAK,SAAU+0C,IA7UE,EAAGn9B,QAAO0B,eAC7B,GAAI1B,EAAMwiI,SACN,OAAO,EACX,IAAIviH,EAAUjgB,EAAMgmI,cAAcxJ,IAC9B,IAAKA,EAAMp+H,OAAuB,GAAdo+H,EAAMnrI,MAAamrI,EAAMnrI,MAAQ2O,EAAMxnB,IAAIuD,OAC3D,MAAO,CAAEygJ,SACb,IAAIpxG,EAAMoxG,EAAMnrI,KAAMT,EAAOoP,EAAMxnB,IAAIk7I,OAAOtoG,GAC1C/5B,EAAO+5B,GAAOx6B,EAAKS,KAAO+5B,EAAM,EAAImsG,GAAiB3mI,EAAKoK,KAAMowB,EAAMx6B,EAAKS,MAAM,GAAST,EAAKS,KAC/Fm5G,EAAKp/E,GAAOx6B,EAAK45G,GAAKp/E,EAAM,EAAImsG,GAAiB3mI,EAAKoK,KAAMowB,EAAMx6B,EAAKS,MAAM,GAAQT,EAAKS,KAC9F,MAAO,CAAE4uB,QAAS,CAAE5uB,OAAMm5G,KAAItpF,OAAQlhB,EAAMxnB,IAAI6E,MAAM+tC,EAAKo/E,GAAIj5G,OAAOyO,EAAMxnB,IAAI6E,MAAMgU,EAAM+5B,KACxFoxG,MAAOD,UAAuB/xB,GAAI,GAE1C,OAAIvqF,EAAQA,QAAQ7hB,QAEpBsD,EAAS1B,EAAMpO,OAAOquB,EAAS,CAAEojH,gBAAgB,EAAMQ,UAAW,qBAC3D,KA+TP,CAAEz7I,IAAK,SAAU+0C,IAAK2/K,KA8Daj+N,IAAI0pB,KAAQ6mI,IAAK7mI,EAAEngB,IAAK+0C,IAAK50B,EAAE40B,IAAK51C,MAAOghB,EAAEhhB,WCtlDrE,SAASg4N,KACtB,IAAIvuE,EAAM35J,UAAU,GACF,iBAAP25J,IAAiBA,EAAMr4J,SAASL,cAAc04J,IACzD,IAAIl1J,EAAI,EAAGsU,EAAO/Y,UAAU,GAC5B,GAAI+Y,GAAuB,iBAARA,GAAqC,MAAjBA,EAAKrX,WAAqBqY,MAAM2C,QAAQ3D,GAAO,CACpF,QAAS1V,KAAQ0V,EAAM,GAAInN,OAAO0jB,UAAUwF,eAAexc,KAAKS,EAAM1V,GAAO,CAC3E,IAAI8I,EAAQ4M,EAAK1V,GACG,iBAAT8I,EAAmBwtJ,EAAI/2J,aAAaS,EAAM8I,GACnC,MAATA,IAAewtJ,EAAIt2J,GAAQ8I,GAEtC1H,IAEF,KAAOA,EAAIzE,UAAU0E,OAAQD,IAAK8D,GAAIoxJ,EAAK35J,UAAUyE,IACrD,OAAOk1J,CACT,CAEA,SAASpxJ,GAAIoxJ,EAAKl/H,GAChB,GAAoB,iBAATA,EACTk/H,EAAIhxJ,YAAYrH,SAAS+K,eAAeouB,SAAM,GAC5B,MAATA,EACJ,GAAsB,MAAlBA,EAAM/4B,SACfi4J,EAAIhxJ,YAAY8xB,OAAK,KACZ1gB,MAAM2C,QAAQ+d,GAGvB,MAAM,IAAI6hH,WAAW,2BAA6B7hH,GAFlD,QAASh2B,EAAI,EAAGA,EAAIg2B,EAAM/1B,OAAQD,IAAK8D,GAAIoxJ,EAAKl/H,EAAMh2B,GAEC,CAE3D,CCvBA,MAAM0jO,GAAsD,mBAA9B7xN,OAAOgZ,UAAU84M,UACzC9zM,GAAKA,EAAE8zM,UAAU,QAAU9zM,GAAKA,EAKtC,MAAM+zM,GAcFvoO,YAAY6jB,EAAMsW,EAAOjgB,EAAO,EAAGm5G,EAAKxvG,EAAKjf,OAAQ0jO,EAAWhlN,GAC5DnjB,KAAKmjB,KAAOA,EAMZnjB,KAAKkM,MAAQ,CAAE6N,KAAM,EAAGm5G,GAAI,GAI5BlzH,KAAKwhE,MAAO,EACZxhE,KAAKg/D,QAAU,GACfh/D,KAAK4zM,OAAS,GACd5zM,KAAKqoO,UAAY,EACjBroO,KAAKg9I,KAAOt5H,EAAKw5H,UAAUnjI,EAAMm5G,GACjClzH,KAAK81M,YAAc/7L,EACnB/Z,KAAKmoO,UAAYA,EAAY9zM,GAAK8zM,EAAUD,GAAe7zM,IAAM6zM,GACjEloO,KAAKg6B,MAAQh6B,KAAKmoO,UAAUnuM,EAChC,CACAuxL,OACI,GAAIvrN,KAAKqoO,WAAaroO,KAAK4zM,OAAOnvM,OAAQ,CAGtC,GAFAzE,KAAK81M,aAAe91M,KAAK4zM,OAAOnvM,OAChCzE,KAAKg9I,KAAKlkI,OACN9Y,KAAKg9I,KAAKx7E,KACV,OAAO,EACXxhE,KAAKqoO,UAAY,EACjBroO,KAAK4zM,OAAS5zM,KAAKg9I,KAAK9wI,MAE5B,OAAOu0I,GAAYzgJ,KAAK4zM,OAAQ5zM,KAAKqoO,UACzC,CAOAvvN,OACI,KAAO9Y,KAAKg/D,QAAQv6D,QAChBzE,KAAKg/D,QAAQhuD,MACjB,OAAOhR,KAAKsoO,iBAChB,CAMAA,kBACI,OAAS,CACL,IAAIxvN,EAAO9Y,KAAKurN,OAChB,GAAIzyM,EAAO,EACP,YAAK0oD,MAAO,EACLxhE,KAEX,IAAIi7B,EAAM6lH,GAAchoI,GAAOuqE,EAAQrjF,KAAK81M,YAAc91M,KAAKqoO,UAC/DroO,KAAKqoO,WAAa3nF,GAAc5nI,GAChC,IAAIivN,EAAO/nO,KAAKmoO,UAAUltM,GAC1B,QAASz2B,EAAI,EAAGsvC,EAAMuvC,GAAQ7+E,IAAK,CAC/B,IAAIiN,EAAOs2N,EAAKxnF,WAAW/7I,GACvB02B,EAAQl7B,KAAKk7B,MAAMzpB,EAAMqiC,EAAK9zC,KAAKqoO,UAAYroO,KAAK81M,aACxD,GAAItxM,GAAKujO,EAAKtjO,OAAS,EAAG,CACtB,GAAIy2B,EACA,YAAKhvB,MAAQgvB,EACNl7B,KAEX,MAEA8zC,GAAOuvC,GAAS7+E,EAAIy2B,EAAIx2B,QAAUw2B,EAAIslH,WAAW/7I,IAAMiN,GACvDqiC,KAGhB,CACA5Y,MAAMzpB,EAAMqiC,EAAKtoC,GACb,IAAI0vB,EAAQ,KACZ,QAAS12B,EAAI,EAAGA,EAAIxE,KAAKg/D,QAAQv6D,OAAQD,GAAK,EAAG,CAC7C,IAAI6M,EAAQrR,KAAKg/D,QAAQx6D,GAAIsjO,GAAO,EAChC9nO,KAAKg6B,MAAMumH,WAAWlvI,IAAUI,IAC5BJ,GAASrR,KAAKg6B,MAAMv1B,OAAS,EAC7By2B,EAAQ,CAAEnhB,KAAM/Z,KAAKg/D,QAAQx6D,EAAI,GAAI0uH,GAAI1nH,IAGzCxL,KAAKg/D,QAAQx6D,KACbsjO,GAAO,IAGVA,IACD9nO,KAAKg/D,QAAQ7tD,OAAO3M,EAAG,GACvBA,GAAK,GAGb,OAAIxE,KAAKg6B,MAAMumH,WAAW,IAAM9uI,IACH,GAArBzR,KAAKg6B,MAAMv1B,OACXy2B,EAAQ,CAAEnhB,KAAM+5B,EAAKo/E,GAAI1nH,GAEzBxL,KAAKg/D,QAAQp2D,KAAK,EAAGkrC,IAEzB5Y,GAASl7B,KAAKmjB,OAASnjB,KAAKmjB,KAAK+X,EAAMnhB,KAAMmhB,EAAMg4F,GAAIlzH,KAAK4zM,OAAQ5zM,KAAK81M,eACzE56K,EAAQ,MACLA,CACX,SAEOvG,OAAU,MACjByzM,GAAa/4M,UAAUsF,OAAO4sC,UAAY,WAAc,OAAOvhE,IAAM,GAEzE,MAAM8mB,GAAQ,CAAE/M,MAAM,EAAIm5G,IAAI,EAAIh4F,MAAoB,KAAK6lC,KAAK,KAC1DwnK,GAAY,MAAuB,MAAf,IAAI9iC,QAAkB,GAAK,KAMrD,MAAM+iC,GAMF3oO,YAAY6jB,EAAMsW,EAAOpe,EAAS7B,EAAO,EAAGm5G,EAAKxvG,EAAKjf,QAelD,GAdAzE,KAAK0jB,KAAOA,EACZ1jB,KAAKkzH,GAAKA,EACVlzH,KAAKymK,QAAU,GAKfzmK,KAAKwhE,MAAO,EAMZxhE,KAAKkM,MAAQ4a,GACT,uBAAuB3D,KAAK6W,GAC5B,OAAO,IAAIyuM,GAAsB/kN,EAAMsW,EAAOpe,EAAS7B,EAAMm5G,GACjElzH,KAAK8wL,GAAK,IAAIjwH,OAAO7mC,EAAOuuM,IAAgE3sN,GAAQm0M,WAAc,IAAM,KACxH/vN,KAAKmjB,KAAyDvH,GAAQuH,KACtEnjB,KAAKg9I,KAAOt5H,EAAKs5H,OACjB,IAAIoqF,EAAY1jN,EAAK04H,OAAOriI,GAC5B/Z,KAAK0oO,aAAetB,EAAUrtN,KAC9B/Z,KAAK2oO,SAAWC,GAAUllN,EAAM3J,GAChC/Z,KAAK+mK,QAAQ/mK,KAAK0oO,aACtB,CACA3hE,QAAQjqB,GACJ98I,KAAKg9I,KAAKlkI,KAAKgkI,GACX98I,KAAKg9I,KAAKD,UACV/8I,KAAKymK,QAAU,IAGfzmK,KAAKymK,QAAUzmK,KAAKg9I,KAAK9wI,MACrBlM,KAAK0oO,aAAe1oO,KAAKymK,QAAQhiK,OAASzE,KAAKkzH,KAC/ClzH,KAAKymK,QAAUzmK,KAAKymK,QAAQ1gK,MAAM,EAAG/F,KAAKkzH,GAAKlzH,KAAK0oO,eACxD1oO,KAAKg9I,KAAKlkI,OAElB,CACAm1M,WACIjuN,KAAK0oO,aAAe1oO,KAAK0oO,aAAe1oO,KAAKymK,QAAQhiK,OAAS,EAC1DzE,KAAK0oO,aAAe1oO,KAAKkzH,GACzBlzH,KAAKymK,QAAU,GAEfzmK,KAAK+mK,QAAQ,EACrB,CAIAjuJ,OACI,QAAS2qI,EAAMzjJ,KAAK2oO,SAAW3oO,KAAK0oO,eAAgB,CAChD1oO,KAAK8wL,GAAG9vH,UAAYyiF,EACpB,IAAIvoH,EAAQl7B,KAAK2oO,UAAY3oO,KAAKkzH,IAAMlzH,KAAK8wL,GAAG/vH,KAAK/gE,KAAKymK,SAC1D,GAAIvrI,EAAO,CACP,IAAInhB,EAAO/Z,KAAK0oO,aAAextM,EAAM7pB,MAAO6hH,EAAKn5G,EAAOmhB,EAAM,GAAGz2B,OAIjE,GAHAzE,KAAK2oO,SAAWC,GAAU5oO,KAAK0jB,KAAMwvG,GAAMn5G,GAAQm5G,EAAK,EAAI,IACxDn5G,GAAQ/Z,KAAK0oO,aAAe1oO,KAAKymK,QAAQhiK,QACzCzE,KAAKiuN,YACJl0M,EAAOm5G,GAAMn5G,EAAO/Z,KAAKkM,MAAMgnH,OAASlzH,KAAKmjB,MAAQnjB,KAAKmjB,KAAKpJ,EAAMm5G,EAAIh4F,IAC1E,YAAKhvB,MAAQ,CAAE6N,OAAMm5G,KAAIh4F,SAClBl7B,KAEXyjJ,EAAMzjJ,KAAK2oO,SAAW3oO,KAAK0oO,uBAEtB1oO,KAAK0oO,aAAe1oO,KAAKymK,QAAQhiK,OAASzE,KAAKkzH,IAKpD,YAAK1xD,MAAO,EACLxhE,KALPA,KAAKiuN,WACLxqE,EAAM,CAIC,EAGnB,EAEJ,MAAMolF,GAAyB,IAAIzyL,QAEnC,MAAM0yL,GACFjpO,YAAYka,EAAM2J,GACd1jB,KAAK+Z,KAAOA,EACZ/Z,KAAK0jB,KAAOA,CAChB,CACIwvG,SAAO,OAAOlzH,KAAK+Z,KAAO/Z,KAAK0jB,KAAKjf,MAAQ,CAChDtE,WAAWe,EAAK6Y,EAAMm5G,GAClB,IAAI61G,EAASF,GAAU7kO,IAAI9C,GAC3B,IAAK6nO,GAAUA,EAAOhvN,MAAQm5G,GAAM61G,EAAO71G,IAAMn5G,EAAM,CACnD,IAAIrQ,EAAO,IAAIo/N,GAAa/uN,EAAM7Y,EAAIq8I,YAAYxjI,EAAMm5G,IACxD21G,UAAUriO,IAAItF,EAAKwI,GACZA,EAEX,GAAIq/N,EAAOhvN,MAAQA,GAAQgvN,EAAO71G,IAAMA,EACpC,OAAO61G,EACX,IAAMrlN,OAAM3J,KAAMivN,GAAeD,EACjC,OAAIC,EAAajvN,IACb2J,EAAOxiB,EAAIq8I,YAAYxjI,EAAMivN,GAActlN,EAC3CslN,EAAajvN,GAEbgvN,EAAO71G,GAAKA,IACZxvG,GAAQxiB,EAAIq8I,YAAYwrF,EAAO71G,GAAIA,IACvC21G,GAAUriO,IAAItF,EAAK,IAAI4nO,GAAaE,EAAYtlN,IACzC,IAAIolN,GAAa/uN,EAAM2J,EAAK3d,MAAMgU,EAAOivN,EAAY91G,EAAK81G,GACrE,EAEJ,MAAMP,GACF5oO,YAAY6jB,EAAMsW,EAAOpe,EAAS7B,EAAMm5G,GACpClzH,KAAK0jB,KAAOA,EACZ1jB,KAAKkzH,GAAKA,EACVlzH,KAAKwhE,MAAO,EACZxhE,KAAKkM,MAAQ4a,GACb9mB,KAAK2oO,SAAWC,GAAUllN,EAAM3J,GAChC/Z,KAAK8wL,GAAK,IAAIjwH,OAAO7mC,EAAOuuM,IAAgE3sN,GAAQm0M,WAAc,IAAM,KACxH/vN,KAAKmjB,KAAyDvH,GAAQuH,KACtEnjB,KAAK0J,KAAOo/N,GAAa9kO,IAAI0f,EAAM3J,EAAM/Z,KAAKuxJ,SAASx3I,EAAO,KAClE,CACAw3I,SAASz9G,GACL,OAAOA,GAAO9zC,KAAKkzH,GAAKlzH,KAAKkzH,GAAKlzH,KAAK0jB,KAAK04H,OAAOtoG,GAAKo/E,EAC5D,CACAp6G,OACI,OAAS,CACL,IAAI2qI,EAAMzjJ,KAAK8wL,GAAG9vH,UAAYhhE,KAAK2oO,SAAW3oO,KAAK0J,KAAKqQ,KACpDmhB,EAAQl7B,KAAK8wL,GAAG/vH,KAAK/gE,KAAK0J,KAAKga,MAMnC,GAJIwX,IAAUA,EAAM,IAAMA,EAAM7pB,OAASoyI,IACrCzjJ,KAAK8wL,GAAG9vH,UAAYyiF,EAAM,EAC1BvoH,EAAQl7B,KAAK8wL,GAAG/vH,KAAK/gE,KAAK0J,KAAKga,OAE/BwX,EAAO,CACP,IAAInhB,EAAO/Z,KAAK0J,KAAKqQ,KAAOmhB,EAAM7pB,MAAO6hH,EAAKn5G,EAAOmhB,EAAM,GAAGz2B,OAG9D,IAAKzE,KAAK0J,KAAKwpH,IAAMlzH,KAAKkzH,IAAMh4F,EAAM7pB,MAAQ6pB,EAAM,GAAGz2B,QAAUzE,KAAK0J,KAAKga,KAAKjf,OAAS,OACnFzE,KAAKmjB,MAAQnjB,KAAKmjB,KAAKpJ,EAAMm5G,EAAIh4F,IACnC,YAAKhvB,MAAQ,CAAE6N,OAAMm5G,KAAIh4F,SACzBl7B,KAAK2oO,SAAWC,GAAU5oO,KAAK0jB,KAAMwvG,GAAMn5G,GAAQm5G,EAAK,EAAI,IACrDlzH,KAGf,GAAIA,KAAK0J,KAAKwpH,IAAMlzH,KAAKkzH,GACrB,YAAK1xD,MAAO,EACLxhE,KAGXA,KAAK0J,KAAOo/N,GAAa9kO,IAAIhE,KAAK0jB,KAAM1jB,KAAK0J,KAAKqQ,KAAM/Z,KAAKuxJ,SAASvxJ,KAAK0J,KAAKqQ,KAA+B,EAAxB/Z,KAAK0J,KAAKga,KAAKjf,QAAW,CAEzH,EAeJ,SAASmkO,GAAUllN,EAAMowB,GACrB,GAAIA,GAAOpwB,EAAKjf,OACZ,OAAOqvC,EACX,IAA6Bh7B,EAAzBQ,EAAOoK,EAAK04H,OAAOtoG,GACvB,KAAOA,EAAMx6B,EAAK45G,KAAOp6G,EAAOQ,EAAKoK,KAAK68H,WAAWzsG,EAAMx6B,EAAKS,QAAU,OAAUjB,EAAO,OACvFg7B,IACJ,OAAOA,CACX,CAEA,SAASm1L,GAAiBtsE,GACtB,IACIx1I,EAAQuyI,GAAI,QAAS,CAAEqI,MAAO,eAAgB3+J,KAAM,OAAQ8I,MADrDmK,OAAOsmJ,EAAKj0I,MAAMxnB,IAAIk7I,OAAOugB,EAAKj0I,MAAMm9H,UAAUR,KAAKx8I,MAAM82I,UAoBxE,SAASz9F,IACL,IAAIhnB,EAAQ,6BAA6B6lC,KAAK55C,EAAMjb,OACpD,IAAKgvB,EACD,OACJ,IAAMxS,SAAUi0I,EAAMyqE,EAAY1+M,EAAMxnB,IAAIk7I,OAAO1zH,EAAMm9H,UAAUR,KAAKx8I,OACpE,CAAGqgO,EAAMC,EAAIC,EAAIC,GAAWnuM,EAC5B86H,EAAMozE,GAAMA,EAAGrjO,MAAM,GAAK,EAC1BuT,GAAO6vN,GAAMA,EAAK/B,EAAUznF,OAChC,GAAIwpF,GAAME,EAAS,CACf,IAAI5jI,GAAKnsF,GAAO,IACZ4vN,IACAzjI,GAAKA,IAAc,KAARyjI,GAAc,EAAK,GAAM9B,EAAUznF,OAASj3H,EAAMxnB,IAAIq7I,OACrEjjI,GAAO4R,KAAKqlD,MAAM7nD,EAAMxnB,IAAIq7I,MAAQ92C,GAAE,MAEjC0jI,GAAMD,IACX5vN,GAAOA,IAAgB,KAAR4vN,GAAc,EAAK,GAAK9B,EAAUznF,QAErD,IAAI8hD,GAAU/4K,EAAMxnB,IAAIoY,KAAK4R,KAAKC,IAAI,EAAGD,KAAK4lC,IAAIpoC,EAAMxnB,IAAIq7I,MAAOjjI,MAC/DusI,GAAYZ,UAAuBw8C,GAAQ1nL,KAAOmR,KAAKC,IAAI,EAAGD,KAAK4lC,IAAIklG,EAAKyrC,GAAQh9L,UACxFk4J,EAAKvyI,SAAS,CACVqhI,QAAS,CAAC69E,GAAajyN,IAAG,GAAQgiL,kBAA0BxzC,GAAU9rI,KAAM,CAAEm7E,EAAG,YACjF2wD,eAEJ8W,EAAKjC,OACT,CACA,MAAO,CAAEt2J,IA3CCs1J,GAAI,OAAQ,CAClBqI,MAAO,cACPwnE,UAAYx/N,IACa,IAAjBA,EAAMoxJ,SACNpxJ,EAAMC,iBACN2yJ,EAAKvyI,SAAS,CAAEqhI,QAAS69E,GAAajyN,IAAG,KACzCslJ,EAAKjC,SAEiB,IAAjB3wJ,EAAMoxJ,UACXpxJ,EAAMC,iBACNk4C,IAAE,EAGVsnL,SAAWz/N,IACPA,EAAMC,iBACNk4C,GAAE,GAEPw3G,GAAI,QAASiD,EAAKj0I,MAAMwmI,OAAO,cAAe,KAAM/nI,GAAQ,IAAKuyI,GAAI,SAAU,CAAEqI,MAAO,YAAap3J,KAAM,UAAYgyJ,EAAKj0I,MAAMwmI,OAAO,QA2BhJ,QArEWv6H,OAAU,MACjB6zM,GAAan5M,UAAUsF,OAAO4sC,UAAYknK,GAAsBp5M,UAAUsF,OAAO4sC,UAC7E,WAAc,OAAOvhE,IAAM,GAoEnC,MAAMspO,GAA4Bh+E,YAC5Bm+E,GAA2BxhF,UAAkB,CAC/Cr8I,YAAkB,EAClB0O,OAAOpO,EAAOo7I,GACV,QAASn/I,KAAKm/I,EAAGmE,QACTtjJ,EAAEghF,GAAGmgJ,MACLp9N,EAAQ/D,EAAE+D,OAClB,OAAOA,CACX,EACAxI,QAAS09C,GAAK4rJ,QAAe5rJ,EAAG7kC,GAAOA,EAAM0sN,GAAmB,QAwB9Dl7C,GAA2BsL,aAAqB,CAClD,wBAAyB,CACrB3K,QAAS,cACT,UAAW,CAAEwB,SAAU,UAIzBw5C,GAA0B,CAC5BC,2BAA2B,EAC3BC,mBAAoB,EACpBC,WAAY,IACZC,YAAY,GAEVC,GAA+B/jF,UAAa,CAC9CC,QAAQrqI,GACGo0I,GAAcp0I,EAAS8tN,GAAyB,CACnDC,0BAA2B,CAAC34M,EAAGC,IAAMD,GAAKC,EAC1C24M,mBAAoB1+M,KAAK4lC,IACzB+4K,WAAY3+M,KAAK4lC,QAgB7B,MAAMk5K,GAAyBxkE,QAAgB,CAAEzD,MAAO,sBAClDkoE,GAA6BzkE,QAAgB,CAAEzD,MAAO,6CAE5D,SAASmoE,GAAqB7uL,EAAO3yB,EAAO3O,EAAMm5G,GAC9C,QAAgB,GAARn5G,GAAashC,EAAM3yB,EAAMqmI,SAASh1I,EAAO,EAAGA,KAAU+zI,SACzD56B,GAAMxqG,EAAMxnB,IAAIuD,QAAU42C,EAAM3yB,EAAMqmI,SAAS77B,EAAIA,EAAK,KAAO46B,QACxE,CAMA,MAAMq8E,GAAgC79D,aAAqB,MACvDzsK,YAAY88J,GACR38J,KAAKwnK,YAAcxnK,KAAK0mM,QAAQ/pC,EACpC,CACAriJ,OAAOA,IACCA,EAAOm0J,cAAgBn0J,EAAOitI,YAAcjtI,EAAO+zJ,mBACnDruK,KAAKwnK,YAAcxnK,KAAK0mM,QAAQpsL,EAAOqiJ,MAC/C,CACA+pC,QAAQ/pC,GACJ,IAAIpO,EAAOoO,EAAKj0I,MAAMm+H,MAAMkjF,KACtBrhN,SAAUi0I,EAAMzP,EAAMxkI,EAAMm9H,UAClC,GAAIqH,EAAI/J,OAAO1+I,OAAS,EACpB,OAAO+gK,QACX,IAAsBxrI,EAAlBkrH,EAAQgI,EAAI7H,KAAahqG,EAAQ,KACrC,GAAI6pG,EAAMp+H,MAAO,CACb,IAAKynI,EAAKo7E,0BACN,OAAOnkE,QACX,IAAIsrD,EAAOpoM,EAAMmnI,OAAO3K,EAAMr8I,MAC9B,IAAKioN,EACD,OAAOtrD,QACXnqH,EAAQ3yB,EAAM6mI,gBAAgBrK,EAAMr8I,MACpCmxB,EAAQtR,EAAMqmI,SAAS+hE,EAAK/2M,KAAM+2M,EAAK59F,GAAE,KAExC,CACD,IAAI3iG,EAAM20H,EAAMhyB,GAAKgyB,EAAMnrI,KAC3B,GAAIwW,EAAMg+H,EAAKq7E,oBAAsBr5M,EAAM,IACvC,OAAOi1I,QACX,GAAIjX,EAAKu7E,YAGL,GAFA9vM,EAAQtR,EAAMqmI,SAAS7J,EAAMnrI,KAAMmrI,EAAMhyB,IACzC73E,EAAQ3yB,EAAM6mI,gBAAgBrK,EAAMr8I,OAC9BqhO,GAAqB7uL,EAAO3yB,EAAOw8H,EAAMnrI,KAAMmrI,EAAMhyB,MAlC3E,SAASk3G,GAAW/uL,EAAO3yB,EAAO3O,EAAMm5G,GACpC,OAAO73E,EAAM3yB,EAAMqmI,SAASh1I,EAAMA,EAAO,KAAO+zI,SACzCzyG,EAAM3yB,EAAMqmI,SAAS77B,EAAK,EAAGA,KAAQ46B,OAChD,CAgCoBs8E,CAAW/uL,EAAO3yB,EAAOw8H,EAAMnrI,KAAMmrI,EAAMhyB,IAC3C,OAAOsyC,gBAGXxrI,EAAQtR,EAAMqmI,SAAS7J,EAAMnrI,KAAMmrI,EAAMhyB,KACpCl5F,EACD,OAAOwrI,QAGnB,IAAIxB,EAAO,GACX,QAASzuI,KAAQonI,EAAKusB,cAAe,CACjC,IAAIzpC,EAAS,IAAI2oF,GAAa1/M,EAAMxnB,IAAK84B,EAAOzE,EAAKxb,KAAMwb,EAAK29F,IAChE,MAAQusB,EAAO3mI,OAAO0oD,MAAM,CACxB,IAAMznD,OAAMm5G,MAAOusB,EAAOvzI,MAC1B,KAAKmvC,GAAS6uL,GAAqB7uL,EAAO3yB,EAAO3O,EAAMm5G,MAC/CgyB,EAAMp+H,OAAS/M,GAAQmrI,EAAMnrI,MAAQm5G,GAAMgyB,EAAMhyB,GACjD8wC,EAAKp7J,KAAKqhO,GAAc/kF,MAAMnrI,EAAMm5G,KAC/Bn5G,GAAQmrI,EAAMhyB,IAAMA,GAAMgyB,EAAMnrI,OACrCiqJ,EAAKp7J,KAAKohO,GAAU9kF,MAAMnrI,EAAMm5G,IAChC8wC,EAAKv/J,OAAS8pJ,EAAKs7E,YACnB,OAAOrkE,SAIvB,OAAOA,OAAexB,EAC1B,GACD,CACCwD,YAAajsJ,GAAKA,EAAEisJ,cAElB6iE,GAA4BhxC,aAAqB,CACnD,qBAAsB,CAAE9J,gBAAiB,aACzC,qCAAsC,CAAEA,gBAAiB,iBAyDvD+6C,GAAiCtkF,UAAa,CAChDC,QAAQgK,GACGD,GAAcC,EAAS,CAC1B1Q,KAAK,EACLgrF,eAAe,EACfvuB,SAAS,EACT3X,QAAQ,EACRmmC,WAAW,EACXC,YAAa9tE,GAAQ,IAAI+tE,GAAY/tE,GACrCguE,cAAezlF,GAASm0C,kBAA0Bn0C,OAgB9D,MAAM0lF,GAIF/qO,YAAY6vC,GACR1vC,KAAKokN,OAAS10K,EAAO00K,OACrBpkN,KAAKuqO,gBAAkB76L,EAAO66L,cAC9BvqO,KAAKg8M,UAAYtsK,EAAOssK,QACxBh8M,KAAKqkM,SAAW30J,EAAO20J,OACvBrkM,KAAK4J,QAAU8lC,EAAO9lC,SAAW,GACjC5J,KAAKw8H,QAAUx8H,KAAKokN,UAAYpkN,KAAKqkM,QA3S7C,SAASwmC,GAAY3yN,GACjB,IACI,WAAI2oD,OAAO3oD,EAAQqwN,KACZ,CAIX,CAHA,MAEI,OAAO,CACX,CACJ,CAmSuDsC,CAAY7qO,KAAKokN,SAChEpkN,KAAK8qO,SAAW9qO,KAAK+qO,QAAQ/qO,KAAKokN,QAClCpkN,KAAKwqO,YAAc96L,EAAO86L,SAC9B,CAIAO,QAAQrnN,GACJ,OAAO1jB,KAAKg8M,QAAUt4L,EAClBA,EAAK9Z,QAAQ,eAAgB,CAAC8nC,EAAGotG,IAAa,KAANA,EAAY,KAAa,KAANA,EAAY,KAAa,KAANA,EAAY,KAAO,KACzG,CAIAnC,GAAGniI,GACC,OAAOxa,KAAKokN,QAAU5pM,EAAM4pM,QAAUpkN,KAAK4J,SAAW4Q,EAAM5Q,SACxD5J,KAAKuqO,eAAiB/vN,EAAM+vN,eAAiBvqO,KAAKqkM,QAAU7pL,EAAM6pL,QAClErkM,KAAKwqO,WAAahwN,EAAMgwN,SAChC,CAIA5+N,SACI,OAAO5L,KAAKqkM,OAAS,IAAI2mC,GAAYhrO,MAAQ,IAAIirO,GAAYjrO,KACjE,CAKAkrO,UAAUxiN,EAAO3O,EAAO,EAAGm5G,GACvB,IAAIi4G,EAAKziN,EAAMxnB,IAAMwnB,EAAQ0lI,UAAmB,CAAEltJ,IAAKwnB,IACvD,OAAU,MAANwqG,IACAA,EAAKi4G,EAAGjqO,IAAIuD,QACTzE,KAAKqkM,OAAS+mC,GAAaprO,KAAMmrO,EAAIpxN,EAAMm5G,GAAMm4G,GAAarrO,KAAMmrO,EAAIpxN,EAAMm5G,EACzF,EAEJ,MAAM2wD,GACFhkL,YAAYgkJ,GACR7jJ,KAAK6jJ,KAAOA,CAChB,EAEJ,SAASwnF,GAAaxnF,EAAMn7H,EAAO3O,EAAMm5G,GACrC,OAAO,IAAIk1G,GAAa1/M,EAAMxnB,IAAK2iJ,EAAKinF,SAAU/wN,EAAMm5G,EAAI2wB,EAAK0mF,mBAAgBt8N,EAAYomB,GAAKA,EAAEzjB,cAAeizI,EAAK2mF,UAE5H,SAASc,GAAepqO,EAAKqqO,GACzB,MAAO,CAACxxN,EAAMm5G,EAAIs4G,EAAKC,MACfA,EAAS1xN,GAAQ0xN,EAASD,EAAI/mO,OAASyuH,KACvCu4G,EAASvgN,KAAKC,IAAI,EAAGpR,EAAO,GAC5ByxN,EAAMtqO,EAAIq8I,YAAYkuF,EAAQvgN,KAAK4lC,IAAI5vD,EAAIuD,OAAQyuH,EAAK,OAEpDq4G,EAAYG,GAAWF,EAAKzxN,EAAO0xN,KAAY39E,SACnDy9E,EAAYI,GAAUH,EAAKzxN,EAAO0xN,KAAY39E,SAC7Cy9E,EAAYI,GAAUH,EAAKt4G,EAAKu4G,KAAY39E,SACzCy9E,EAAYG,GAAWF,EAAKt4G,EAAKu4G,KAAY39E,SAE7D,CAbwIw9E,CAAe5iN,EAAMxnB,IAAKwnB,EAAM6mI,gBAAgB7mI,EAAMm9H,UAAUR,KAAKx8I,YAASoF,EACtN,CAaA,MAAMg9N,WAAoBpnD,GACtBhkL,YAAYgkJ,GACR/jJ,MAAM+jJ,EACV,CACA+nF,UAAUljN,EAAOwoI,EAASC,GACtB,IAAI1R,EAAS4rF,GAAarrO,KAAK6jJ,KAAMn7H,EAAOyoI,EAAOzoI,EAAMxnB,IAAIuD,QAAQ6jO,kBACrE,OAAI7oF,EAAOj+E,OACPi+E,EAAS4rF,GAAarrO,KAAK6jJ,KAAMn7H,EAAO,EAAGwoI,GAASo3E,mBACjD7oF,EAAOj+E,KAAO,KAAOi+E,EAAOvzI,KACvC,CAGA2/N,iBAAiBnjN,EAAO3O,EAAMm5G,GAC1B,QAASp/E,EAAMo/E,IAAM,CACjB,IAAI7vC,EAAQn4D,KAAKC,IAAIpR,EAAM+5B,EAAM,IAAiC9zC,KAAK6jJ,KAAKinF,SAASrmO,QACjFg7I,EAAS4rF,GAAarrO,KAAK6jJ,KAAMn7H,EAAO26D,EAAOvvC,GAAMoxG,EAAQ,KACjE,MAAQzF,EAAO6oF,kBAAkB9mK,MAC7B0jF,EAAQzF,EAAOvzI,MACnB,GAAIg5I,EACA,OAAOA,EACX,GAAI7hE,GAAStpE,EACT,OAAO,KACX+5B,GAAO,IAEf,CACAg4L,UAAUpjN,EAAOwoI,EAASC,GACtB,OAAOnxJ,KAAK6rO,iBAAiBnjN,EAAO,EAAGwoI,IACnClxJ,KAAK6rO,iBAAiBnjN,EAAOyoI,EAAOzoI,EAAMxnB,IAAIuD,OACtD,CACAsnO,eAAeC,GAAW,OAAOhsO,KAAK6jJ,KAAKknF,QAAQ/qO,KAAK6jJ,KAAKj6I,QAAU,CACvEqiO,SAASvjN,EAAO0/C,GACZ,IAAIq3E,EAAS4rF,GAAarrO,KAAK6jJ,KAAMn7H,EAAO,EAAGA,EAAMxnB,IAAIuD,QAAS0+I,EAAS,GAC3E,MAAQ1D,EAAO3mI,OAAO0oD,MAAM,CACxB,GAAI2hF,EAAO1+I,QAAU2jE,EACjB,OAAO,KACX+6E,EAAOv6I,KAAK62I,EAAOvzI,MAAK,CAE5B,OAAOi3I,CACX,CACA+oF,UAAUxjN,EAAO3O,EAAMm5G,EAAI5qH,GACvB,IAAIm3I,EAAS4rF,GAAarrO,KAAK6jJ,KAAMn7H,EAAOwC,KAAKC,IAAI,EAAGpR,EAAO/Z,KAAK6jJ,KAAKinF,SAASrmO,QAASymB,KAAK4lC,IAAIoiE,EAAKlzH,KAAK6jJ,KAAKinF,SAASrmO,OAAQikB,EAAMxnB,IAAIuD,SAC9I,MAAQg7I,EAAO3mI,OAAO0oD,MAClBl5D,EAAIm3I,EAAOvzI,MAAM6N,KAAM0lI,EAAOvzI,MAAMgnH,GAC5C,EAEJ,SAASk4G,GAAavnF,EAAMn7H,EAAO3O,EAAMm5G,GACrC,OAAO,IAAIs1G,GAAa9/M,EAAMxnB,IAAK2iJ,EAAKugE,OAAQ,CAC5C2L,YAAalsE,EAAK0mF,cAClBpnN,KAAM0gI,EAAK2mF,UAAY2B,GAAezjN,EAAM6mI,gBAAgB7mI,EAAMm9H,UAAUR,KAAKx8I,YAASoF,GAC3F8L,EAAMm5G,EACb,CACA,SAASw4G,GAAWzwM,EAAK5pB,GACrB,OAAO4pB,EAAIl1B,MAAMk6I,GAAiBhlH,EAAK5pB,GAAO,GAAQA,EAC1D,CACA,SAASs6N,GAAU1wM,EAAK5pB,GACpB,OAAO4pB,EAAIl1B,MAAMsL,EAAO4uI,GAAiBhlH,EAAK5pB,GAClD,CACA,SAAS86N,GAAeZ,GACpB,MAAO,CAAChqE,EAAOC,EAAKtmI,KAAWA,EAAM,GAAGz2B,SACnC8mO,EAAYG,GAAWxwM,EAAM/T,MAAO+T,EAAM7pB,SAAWy8I,SAClDy9E,EAAYI,GAAUzwM,EAAM/T,MAAO+T,EAAM7pB,SAAWy8I,WACnDy9E,EAAYI,GAAUzwM,EAAM/T,MAAO+T,EAAM7pB,MAAQ6pB,EAAM,GAAGz2B,UAAYqpJ,SACnEy9E,EAAYG,GAAWxwM,EAAM/T,MAAO+T,EAAM7pB,MAAQ6pB,EAAM,GAAGz2B,UAAYqpJ,QACvF,CACA,MAAMk9E,WAAoBnnD,GACtB+nD,UAAUljN,EAAOwoI,EAASC,GACtB,IAAI1R,EAAS2rF,GAAaprO,KAAK6jJ,KAAMn7H,EAAOyoI,EAAOzoI,EAAMxnB,IAAIuD,QAAQqU,OACrE,OAAI2mI,EAAOj+E,OACPi+E,EAAS2rF,GAAaprO,KAAK6jJ,KAAMn7H,EAAO,EAAGwoI,GAASp4I,QACjD2mI,EAAOj+E,KAAO,KAAOi+E,EAAOvzI,KACvC,CACA2/N,iBAAiBnjN,EAAO3O,EAAMm5G,GAC1B,QAAS9tD,EAAO,GAAIA,IAAQ,CACxB,IAAIie,EAAQn4D,KAAKC,IAAIpR,EAAMm5G,EAAY,IAAP9tD,GAC5Bq6E,EAAS2rF,GAAaprO,KAAK6jJ,KAAMn7H,EAAO26D,EAAO6vC,GAAKgyB,EAAQ,KAChE,MAAQzF,EAAO3mI,OAAO0oD,MAClB0jF,EAAQzF,EAAOvzI,MACnB,GAAIg5I,IAAU7hE,GAAStpE,GAAQmrI,EAAMnrI,KAAOspE,EAAQ,IAChD,OAAO6hE,EACX,GAAI7hE,GAAStpE,EACT,OAAO,KAEnB,CACA+xN,UAAUpjN,EAAOwoI,EAASC,GACtB,OAAOnxJ,KAAK6rO,iBAAiBnjN,EAAO,EAAGwoI,IACnClxJ,KAAK6rO,iBAAiBnjN,EAAOyoI,EAAOzoI,EAAMxnB,IAAIuD,OACtD,CACAsnO,eAAez6N,GACX,OAAOtR,KAAK6jJ,KAAKknF,QAAQ/qO,KAAK6jJ,KAAKj6I,SAASA,QAAQ,eAAgB,CAACk2B,EAAGt7B,IAAW,KAALA,EAAW,IAC9E,KAALA,EAAW8M,EAAO4pB,MAAM,GACf,KAAL12B,IAAaA,EAAI8M,EAAO4pB,MAAMz2B,OAAS6M,EAAO4pB,MAAM12B,GAChDs7B,EAClB,CACAmsM,SAASvjN,EAAO0/C,GACZ,IAAIq3E,EAAS2rF,GAAaprO,KAAK6jJ,KAAMn7H,EAAO,EAAGA,EAAMxnB,IAAIuD,QAAS0+I,EAAS,GAC3E,MAAQ1D,EAAO3mI,OAAO0oD,MAAM,CACxB,GAAI2hF,EAAO1+I,QAAU2jE,EACjB,OAAO,KACX+6E,EAAOv6I,KAAK62I,EAAOvzI,MAAK,CAE5B,OAAOi3I,CACX,CACA+oF,UAAUxjN,EAAO3O,EAAMm5G,EAAI5qH,GACvB,IAAIm3I,EAAS2rF,GAAaprO,KAAK6jJ,KAAMn7H,EAAOwC,KAAKC,IAAI,EAAGpR,EAAO,KAAmCmR,KAAK4lC,IAAIoiE,EAAK,IAAkCxqG,EAAMxnB,IAAIuD,SAC5J,MAAQg7I,EAAO3mI,OAAO0oD,MAClBl5D,EAAIm3I,EAAOvzI,MAAM6N,KAAM0lI,EAAOvzI,MAAMgnH,GAC5C,EASJ,MAAMk5G,GAA8B9gF,YAC9B+gF,GAA2B/gF,YAC3BghF,GAA2BrkF,UAAkB,CAC/Cr8I,OAAO8c,GACI,IAAI6jN,GAAYC,GAAa9jN,GAAO9c,SAAU,MAEzD0O,OAAOpO,EAAOo7I,GACV,QAASoE,KAAUpE,EAAGmE,QACdC,EAAOviE,GAAGijJ,IACVlgO,EAAQ,IAAIqgO,GAAY7gF,EAAOx/I,MAAMN,SAAUM,EAAM2gM,OAChDnhD,EAAOviE,GAAGkjJ,MACfngO,EAAQ,IAAIqgO,GAAYrgO,EAAM8tB,MAAO0xH,EAAOx/I,MAAQugO,GAAoB,OAEhF,OAAOvgO,CACX,EACAxI,QAAS09C,GAAK4rJ,QAAe5rJ,EAAG7kC,GAAOA,EAAIswL,SAgB/C,MAAM0/B,GACF1sO,YAAYm6B,EAAO6yK,GACf7sM,KAAKg6B,MAAQA,EACbh6B,KAAK6sM,MAAQA,CACjB,EAEJ,MAAM6/B,GAAyBlnE,QAAgB,CAAEzD,MAAO,mBAAqB4qE,GAAiCnnE,QAAgB,CAAEzD,MAAO,2CACjI6qE,GAAiCtgE,aAAqB,MACxDzsK,YAAY88J,GACR38J,KAAK28J,KAAOA,EACZ38J,KAAKwnK,YAAcxnK,KAAKksO,UAAUvvE,EAAKj0I,MAAMi+H,MAAM2lF,IACvD,CACAhyN,OAAOA,GACH,IAAIoO,EAAQpO,EAAOoO,MAAMi+H,MAAM2lF,KAC3B5jN,GAASpO,EAAOuxI,WAAWlF,MAAM2lF,KAAgBhyN,EAAOitI,YAAcjtI,EAAOm0J,cAAgBn0J,EAAO+zJ,mBACpGruK,KAAKwnK,YAAcxnK,KAAKksO,UAAUxjN,GAC1C,CACAwjN,WAAYlyM,QAAO6yK,UACf,IAAKA,IAAU7yK,EAAM6pH,KAAKrnB,MACtB,OAAOgpC,QACX,IAAM7I,QAAS38J,KACX8tE,EAAU,IAAIikF,GAClB,QAASvtJ,EAAI,EAAG2+I,EAASwZ,EAAKusB,cAAe94E,EAAI+yC,EAAO1+I,OAAQD,EAAI4rG,EAAG5rG,IAAK,CACxE,IAAMuV,OAAMm5G,MAAOiwB,EAAO3+I,GAC1B,KAAOA,EAAI4rG,EAAI,GAAK8iB,EAAKiwB,EAAO3+I,EAAI,GAAGuV,KAAO,KAC1Cm5G,EAAKiwB,IAAS3+I,GAAG0uH,GACrBl5F,EAAMkyM,UAAUvvE,EAAKj0I,MAAO3O,EAAMm5G,EAAI,CAACn5G,EAAMm5G,KACzC,IAAIqgG,EAAW52D,EAAKj0I,MAAMm9H,UAAU1C,OAAOvzG,KAAKh6B,GAAKA,EAAEmE,MAAQA,GAAQnE,EAAEs9G,IAAMA,GAC/EplD,EAAQxlE,IAAIyR,EAAMm5G,EAAIqgG,EAAWoZ,GAAoBD,GAAS,EACjE,CAEL,OAAO5+J,EAAQhe,QACnB,GACD,CACC03G,YAAajsJ,GAAKA,EAAEisJ,cAExB,SAASqlE,GAAczrL,GACnB,OAAOu7G,IACH,IAAIj0I,EAAQi0I,EAAKj0I,MAAMi+H,MAAM2lF,IAAa,GAC1C,OAAO5jN,GAASA,EAAMsR,MAAM6pH,KAAKrnB,MAAQp7E,EAAEu7G,EAAMj0I,GAASokN,GAAgBnwE,EAAI,CAEtF,CAOA,MAAMowE,GAAwBF,GAAc,CAAClwE,GAAQ3iI,YACjD,IAAMk5F,MAAOypC,EAAKj0I,MAAMm9H,UAAUR,KAC9BvsI,EAAOkhB,EAAM4xM,UAAUjvE,EAAKj0I,MAAOwqG,EAAIA,GAC3C,IAAKp6G,EACD,OAAO,EACX,IAAI+sI,EAAYZ,UAAuBnsI,EAAKiB,KAAMjB,EAAKo6G,IACnDxjF,EAASitH,EAAKj0I,MAAMm+H,MAAMyjF,IAC9B3tE,SAAKvyI,SAAS,CACVy7H,YACA4F,QAAS,CAACuhF,GAAcrwE,EAAM7jJ,GAAO42B,EAAOi7L,cAAc9kF,EAAUR,KAAMsX,IAC1EpQ,UAAW,kBAEf0gF,GAAkBtwE,IACX,IAOLuwE,GAA4BL,GAAc,CAAClwE,GAAQ3iI,YACrD,IAAMtR,SAAUi0I,GAAQ5iJ,QAAS2O,EAAMm9H,UAAUR,KAC7C/+C,EAAOtsE,EAAM8xM,UAAUpjN,EAAO3O,EAAMA,GACxC,IAAKusF,EACD,OAAO,EACX,IAAIu/C,EAAYZ,UAAuB3+C,EAAKvsF,KAAMusF,EAAK4sB,IACnDxjF,EAASitH,EAAKj0I,MAAMm+H,MAAMyjF,IAC9B3tE,SAAKvyI,SAAS,CACVy7H,YACA4F,QAAS,CAACuhF,GAAcrwE,EAAMr2D,GAAO52D,EAAOi7L,cAAc9kF,EAAUR,KAAMsX,IAC1EpQ,UAAW,kBAEf0gF,GAAkBtwE,IACX,IAKLwwE,GAA6BN,GAAc,CAAClwE,GAAQ3iI,YACtD,IAAImpH,EAASnpH,EAAMiyM,SAAStvE,EAAKj0I,MAAO,KACxC,SAAKy6H,IAAWA,EAAO1+I,SAEvBk4J,EAAKvyI,SAAS,CACVy7H,UAAWZ,UAAuB9B,EAAO57I,IAAIqO,GAAKqvI,SAAsBrvI,EAAEmE,KAAMnE,EAAEs9G,MAClFq5B,UAAW,0BAER,MA2BL6gF,GAA2BP,GAAc,CAAClwE,GAAQ3iI,YACpD,IAAMtR,SAAUi0I,GAAQ5iJ,OAAMm5G,MAAOxqG,EAAMm9H,UAAUR,KACrD,GAAI38H,EAAMwiI,SACN,OAAO,EACX,IAAIpyI,EAAOkhB,EAAM4xM,UAAUljN,EAAO3O,EAAMA,GACxC,IAAKjB,EACD,OAAO,EACX,IAAkB+sI,EAAWwnF,EAAzB1kM,EAAU,GACV8iH,EAAU,GAOd,GANI3yI,EAAKiB,MAAQA,GAAQjB,EAAKo6G,IAAMA,IAChCm6G,EAAc3kN,EAAM+lI,OAAOz0H,EAAM+xM,eAAejzN,IAChD6vB,EAAQ//B,KAAK,CAAEmR,KAAMjB,EAAKiB,KAAMm5G,GAAIp6G,EAAKo6G,GAAItpF,OAAQyjM,IACrDv0N,EAAOkhB,EAAM4xM,UAAUljN,EAAO5P,EAAKiB,KAAMjB,EAAKo6G,IAC9Cu4B,EAAQ7iJ,KAAKywL,eAAuB3wK,EAAMwmI,OAAO,2BAA4BxmI,EAAMxnB,IAAIk7I,OAAOriI,GAAM4lI,QAAU,OAE9G7mI,EAAM,CACN,IAAI2qI,EAAwB,GAAlB96G,EAAQlkC,QAAekkC,EAAQ,GAAG5uB,MAAQjB,EAAKo6G,GAAK,EAAIp6G,EAAKo6G,GAAKp6G,EAAKiB,KAAOszN,EAAY5oO,OACpGohJ,EAAYZ,UAAuBnsI,EAAKiB,KAAO0pI,EAAK3qI,EAAKo6G,GAAKuwB,GAC9DgI,EAAQ7iJ,KAAKokO,GAAcrwE,EAAM7jJ,IACjC2yI,EAAQ7iJ,KAAK8f,EAAMm+H,MAAMyjF,IAAmBK,cAAc9kF,EAAUR,KAAMsX,GAAK,CAEnFA,SAAKvyI,SAAS,CACVue,UAASk9G,YAAW4F,UACpBc,UAAW,mBAER,IAML+gF,GAA0BT,GAAc,CAAClwE,GAAQ3iI,YACnD,GAAI2iI,EAAKj0I,MAAMwiI,SACX,OAAO,EACX,IAAIviH,EAAU3O,EAAMiyM,SAAStvE,EAAKj0I,MAAO,KAAKnhB,IAAI2zB,IAC9C,IAAMnhB,OAAMm5G,MAAOh4F,EACnB,MAAO,CAAEnhB,OAAMm5G,KAAItpF,OAAQ5P,EAAM+xM,eAAe7wM,GAAO,GAE3D,IAAKyN,EAAQlkC,OACT,OAAO,EACX,IAAI8oO,EAAe5wE,EAAKj0I,MAAMwmI,OAAO,qBAAsBvmH,EAAQlkC,QAAU,IAC7Ek4J,SAAKvyI,SAAS,CACVue,UACA8iH,QAAS4tC,eAAuBk0C,GAChChhF,UAAW,uBAER,IAEX,SAASkgF,GAAkB9vE,GACvB,OAAOA,EAAKj0I,MAAMm+H,MAAMyjF,IAAmBG,YAAY9tE,EAC3D,CACA,SAAS6vE,GAAa9jN,EAAO8kN,GACzB,IAAIxmF,EAAIif,EAAIkxB,EAAIs2C,EAAIC,EACpB,IAAIxgF,EAAMxkI,EAAMm9H,UAAUR,KACtBsoF,EAAUzgF,EAAIpmI,OAASomI,EAAIh6B,GAAKg6B,EAAInzI,KAAO,IAAM,GAAK2O,EAAMqmI,SAAS7B,EAAInzI,KAAMmzI,EAAIh6B,IACvF,GAAIs6G,IAAaG,EACb,OAAOH,EACX,IAAI99L,EAAShnB,EAAMm+H,MAAMyjF,IACzB,OAAO,IAAIM,GAAY,CACnBxmB,QAAyF,QAA/Ep9D,EAAyDwmF,GAASxxB,eAA4B,IAAPh1D,EAAgBA,EAAKt3G,EAAOssK,SAAW2xB,EAAUA,EAAQ/jO,QAAQ,MAAO,OACzK2gO,cAAqG,QAArFtkE,EAAyDunE,GAASjD,qBAAkC,IAAPtkE,EAAgBA,EAAKv2H,EAAO66L,cACzIvuB,QAAyF,QAA/E7kB,EAAyDq2C,GAASxxB,eAA4B,IAAP7kB,EAAgBA,EAAKznJ,EAAOssK,QAC7H3X,OAAuF,QAA9EopC,EAAyDD,GAASnpC,cAA2B,IAAPopC,EAAgBA,EAAK/9L,EAAO20J,OAC3HmmC,UAA6F,QAAjFkD,EAAyDF,GAAShD,iBAA8B,IAAPkD,EAAgBA,EAAKh+L,EAAO86L,WAEzI,CACA,SAASoD,GAAejxE,GACpB,IAAIkwC,EAAQD,GAASjwC,EAAM8vE,IAC3B,OAAO5/B,GAASA,EAAMzoM,IAAI9B,cAAc,eAC5C,CACA,SAAS2qO,GAAkBtwE,GACvB,IAAIx1I,EAAQymN,GAAejxE,GACvBx1I,GAASA,GAASw1I,EAAK3kI,KAAKk6I,eAC5B/qJ,EAAMo0G,QACd,CAIA,MAAMuxG,GAAkBnwE,IACpB,IAAIj0I,EAAQi0I,EAAKj0I,MAAMi+H,MAAM2lF,IAAa,GAC1C,GAAI5jN,GAASA,EAAMmkL,MAAO,CACtB,IAAIghC,EAAcD,GAAejxE,GACjC,GAAIkxE,GAAeA,GAAelxE,EAAK3kI,KAAKk6I,cAAe,CACvD,IAAIl4I,EAAQwyM,GAAa7vE,EAAKj0I,MAAOA,EAAMsR,MAAM6pH,MAC7C7pH,EAAMwiG,OACNmgC,EAAKvyI,SAAS,CAAEqhI,QAAS2gF,GAAe/0N,GAAG2iB,KAC/C6zM,EAAYnzE,QACZmzE,EAAYtyG,QAAM,OAItBohC,EAAKvyI,SAAS,CAAEqhI,QAAS,CACjB4gF,GAAYh1N,IAAG,GACfqR,EAAQ0jN,GAAe/0N,GAAGm1N,GAAa7vE,EAAKj0I,MAAOA,EAAMsR,MAAM6pH,OAASyH,mBAA4BwiF,OAGhH,OAAO,GAKLC,GAAmBpxE,IACrB,IAAIj0I,EAAQi0I,EAAKj0I,MAAMi+H,MAAM2lF,IAAa,GAC1C,IAAK5jN,IAAUA,EAAMmkL,MACjB,OAAO,EACX,IAAIA,EAAQD,GAASjwC,EAAM8vE,IAC3B,OAAI5/B,GAASA,EAAMzoM,IAAIm5D,SAASo/F,EAAK3kI,KAAKk6I,gBACtCvV,EAAKjC,QACTiC,EAAKvyI,SAAS,CAAEqhI,QAAS4gF,GAAYh1N,IAAG,MACjC,GAWL22N,GAAe,CACjB,CAAEl9N,IAAK,QAAS+0C,IAAKinL,GAAiBjuC,MAAO,uBAC7C,CAAE/tL,IAAK,KAAM+0C,IAAKknL,GAAU98N,MAAOi9N,GAAcruC,MAAO,sBAAuB70L,gBAAgB,GAC/F,CAAE8G,IAAK,QAAS+0C,IAAKknL,GAAU98N,MAAOi9N,GAAcruC,MAAO,sBAAuB70L,gBAAgB,GAClG,CAAE8G,IAAK,SAAU+0C,IAAKkoL,GAAkBlvC,MAAO,uBAC/C,CAAE/tL,IAAK,cAAe+0C,IAnJK,EAAGn9B,QAAO0B,eACrC,IAAI8iI,EAAMxkI,EAAMm9H,UAChB,GAAIqH,EAAI/J,OAAO1+I,OAAS,GAAKyoJ,EAAI7H,KAAKv+H,MAClC,OAAO,EACX,IAAM/M,OAAMm5G,MAAOg6B,EAAI7H,KACnBlC,EAAS,GAAIkC,EAAO,EACxB,QAASsM,EAAM,IAAIy2E,GAAa1/M,EAAMxnB,IAAKwnB,EAAMqmI,SAASh1I,EAAMm5G,KAAOy+B,EAAI74I,OAAO0oD,MAAO,CACrF,GAAI2hF,EAAO1+I,OAAS,IAChB,OAAO,EACPktJ,EAAIzlJ,MAAM6N,MAAQA,IAClBsrI,EAAOlC,EAAO1+I,QAClB0+I,EAAOv6I,KAAKq8I,SAAsB0M,EAAIzlJ,MAAM6N,KAAM43I,EAAIzlJ,MAAMgnH,IAAG,CAEnE9oG,SAAS1B,EAAMpO,OAAO,CAClBurI,UAAWZ,UAAuB9B,EAAQkC,GAC1CkH,UAAW,4BAER,IAmIP,CAAEz7I,IAAK,YAAa+0C,IAtpBP82G,IACb,IAAIkwC,EAAQD,GAASjwC,EAAMssE,IAC3B,IAAKp8B,EAAO,CACR,IAAIphD,EAAU,CAAC69E,GAAajyN,IAAG,IACa,MAAxCslJ,EAAKj0I,MAAMi+H,MAAM8iF,IAAa,IAC9Bh+E,EAAQ7iJ,KAAK0iJ,mBAA4B,CAACm+E,GAAa17C,MAC3DpxB,EAAKvyI,SAAS,CAAEqhI,YAChBohD,EAAQD,GAASjwC,EAAMssE,GAAgB,CAE3C,OAAIp8B,GACAA,EAAMzoM,IAAI9B,cAAc,SAASi5H,UAC9B,IA4oBP,CAAEzqH,IAAK,QAAS+0C,IAtfS,EAAGn9B,QAAO0B,eACnC,IAAM+4H,UAAWz6H,EAAMm9H,UACvB,GAAI1C,EAAOvzG,KAAKs9G,GAAOA,EAAInzI,OAASmzI,EAAIh6B,IACpC,MAxCW,GAAGxqG,QAAO0B,eACzB,IAAMy7H,aAAcn9H,EAChBqnJ,EAAS9qB,UAAuBY,EAAU1C,OAAO57I,IAAI29I,GAASx8H,EAAMmnI,OAAO3K,EAAMr8I,OAASo8I,UAAuBC,EAAMr8I,OAAQg9I,EAAUT,WAC7I,OAAI2qB,EAAOpzB,GAAGkJ,KAEdz7H,EAAS1B,EAAMpO,OAAO,CAAEurI,UAAWkqB,MAC5B,IAkCIk+D,CAAW,CAAEvlN,QAAO0B,aAC/B,IAAI8jN,EAAexlN,EAAMqmI,SAAS5L,EAAO,GAAGppI,KAAMopI,EAAO,GAAGjwB,IAC5D,GAAIxqG,EAAMm9H,UAAU1C,OAAOvzG,KAAKh6B,GAAK8S,EAAMqmI,SAASn5I,EAAEmE,KAAMnE,EAAEs9G,KAAOg7G,GACjE,OAAO,EACX,IAAIhpF,EAlCR,SAASipF,GAAmBzlN,EAAOsR,GAC/B,IAAMqrH,OAAMlC,UAAWz6H,EAAMm9H,UACzBirE,EAAOpoM,EAAMmnI,OAAOxK,EAAKx8I,MAAOulO,EAAWtd,GAAQA,EAAK/2M,MAAQsrI,EAAKtrI,MAAQ+2M,EAAK59F,IAAMmyB,EAAKnyB,GACjG,QAASm7G,GAAS,EAAO5uF,EAAS,IAAI2oF,GAAa1/M,EAAMxnB,IAAK84B,EAAOmpH,EAAOA,EAAO1+I,OAAS,GAAGyuH,MAE3F,IADAusB,EAAO3mI,QACH2mI,EAAOj+E,KAMN,CACD,GAAI6sK,GAAUlrF,EAAOvzG,KAAKh6B,GAAKA,EAAEmE,MAAQ0lI,EAAOvzI,MAAM6N,MAClD,SACJ,GAAIq0N,EAAU,CACV,IAAItd,EAAOpoM,EAAMmnI,OAAOpQ,EAAOvzI,MAAM6N,MACrC,IAAK+2M,GAAQA,EAAK/2M,MAAQ0lI,EAAOvzI,MAAM6N,MAAQ+2M,EAAK59F,IAAMusB,EAAOvzI,MAAMgnH,GACnE,SAER,OAAOusB,EAAOvzI,MAbd,GAAImiO,EACA,OAAO,KACX5uF,EAAS,IAAI2oF,GAAa1/M,EAAMxnB,IAAK84B,EAAO,EAAG9O,KAAKC,IAAI,EAAGg4H,EAAOA,EAAO1+I,OAAS,GAAGsV,KAAO,IAC5Fs0N,GAAS,CAUKniO,CAG1B,CAYgBiiO,CAAmBzlN,EAAOwlN,GACtC,QAAKhpF,IAEL96H,EAAS1B,EAAMpO,OAAO,CAClBurI,UAAWn9H,EAAMm9H,UAAUN,SAASN,SAAsBC,EAAMnrI,KAAMmrI,EAAMhyB,KAAK,GACjFu4B,QAAS4tC,kBAA0Bn0C,EAAMhyB,QAEtC,EALI,EA6egClpH,gBAAgB,IAE/D,MAAM0gO,GACF7qO,YAAY88J,GACR38J,KAAK28J,KAAOA,EACZ,IAAI3iI,EAAQh6B,KAAKg6B,MAAQ2iI,EAAKj0I,MAAMi+H,MAAM2lF,IAAatyM,MAAM6pH,KA4C7D,SAASpgG,EAAOrgD,EAAMskN,EAASl7M,GAC3B,OAAOktJ,GAAI,SAAU,CAAEqI,MAAO,YAAa3+J,OAAMskN,UAAS/8M,KAAM,UAAY6B,EAChF,CA7CAxM,KAAKsuO,OAAStuO,KAAKsuO,OAAOxkN,KAAK9pB,MAC/BA,KAAKuuO,YAAc70E,GAAI,QAAS,CAC5BxtJ,MAAO8tB,EAAMoqL,OACboqB,YAAat/E,GAAOyN,EAAM,QAC1B,aAAczN,GAAOyN,EAAM,QAC3BoF,MAAO,eACP3+J,KAAM,SACNqrO,KAAM,GACN,aAAc,OACdC,SAAU1uO,KAAKsuO,OACfK,QAAS3uO,KAAKsuO,SAElBtuO,KAAK4uO,aAAel1E,GAAI,QAAS,CAC7BxtJ,MAAO8tB,EAAMpwB,QACb4kO,YAAat/E,GAAOyN,EAAM,WAC1B,aAAczN,GAAOyN,EAAM,WAC3BoF,MAAO,eACP3+J,KAAM,UACNqrO,KAAM,GACNC,SAAU1uO,KAAKsuO,OACfK,QAAS3uO,KAAKsuO,SAElBtuO,KAAK6uO,UAAYn1E,GAAI,QAAS,CAC1B/uJ,KAAM,WACNvH,KAAM,OACNqrO,KAAM,GACNK,QAAS90M,EAAMuwM,cACfmE,SAAU1uO,KAAKsuO,SAEnBtuO,KAAK+uO,QAAUr1E,GAAI,QAAS,CACxB/uJ,KAAM,WACNvH,KAAM,KACNqrO,KAAM,GACNK,QAAS90M,EAAMqqK,OACfqqC,SAAU1uO,KAAKsuO,SAEnBtuO,KAAKgvO,UAAYt1E,GAAI,QAAS,CAC1B/uJ,KAAM,WACNvH,KAAM,OACNqrO,KAAM,GACNK,QAAS90M,EAAMwwM,UACfkE,SAAU1uO,KAAKsuO,SAKnBtuO,KAAKoE,IAAMs1J,GAAI,MAAO,CAAE6vE,UAAYphO,GAAMnI,KAAKy7K,QAAQtzK,GAAI45J,MAAO,aAAe,CAC7E/hK,KAAKuuO,YACL9qL,EAAO,OAAQ,IAAMspL,GAASpwE,GAAO,CAACzN,GAAOyN,EAAM,UACnDl5G,EAAO,OAAQ,IAAMypL,GAAavwE,GAAO,CAACzN,GAAOyN,EAAM,cACvDl5G,EAAO,SAAU,IAAM0pL,GAAcxwE,GAAO,CAACzN,GAAOyN,EAAM,SAC1DjD,GAAI,QAAS,KAAM,CAAC15J,KAAK6uO,UAAW3/E,GAAOyN,EAAM,gBACjDjD,GAAI,QAAS,KAAM,CAAC15J,KAAK+uO,QAAS7/E,GAAOyN,EAAM,YAC/CjD,GAAI,QAAS,KAAM,CAAC15J,KAAKgvO,UAAW9/E,GAAOyN,EAAM,gBAC9CA,EAAKj0I,MAAMwiI,SAAW,GAAK,CAC1BwO,GAAI,MACJ15J,KAAK4uO,aACLnrL,EAAO,UAAW,IAAM2pL,GAAYzwE,GAAO,CAACzN,GAAOyN,EAAM,aACzDl5G,EAAO,aAAc,IAAM6pL,GAAW3wE,GAAO,CAACzN,GAAOyN,EAAM,kBAE/DjD,GAAI,SAAU,CACVt2J,KAAM,QACNskN,QAAS,IAAMqmB,GAAiBpxE,GAChC,aAAczN,GAAOyN,EAAM,SAC3BhyJ,KAAM,UACP,CAAC,UAEZ,CACA2jO,SACI,IAAIt0M,EAAQ,IAAI4wM,GAAY,CACxBxmB,OAAQpkN,KAAKuuO,YAAYriO,MACzBq+N,cAAevqO,KAAK6uO,UAAUC,QAC9BzqC,OAAQrkM,KAAK+uO,QAAQD,QACrBtE,UAAWxqO,KAAKgvO,UAAUF,QAC1BllO,QAAS5J,KAAK4uO,aAAa1iO,QAE1B8tB,EAAM2iH,GAAG38I,KAAKg6B,SACfh6B,KAAKg6B,MAAQA,EACbh6B,KAAK28J,KAAKvyI,SAAS,CAAEqhI,QAAS2gF,GAAe/0N,GAAG2iB,KAExD,CACAyhJ,QAAQtzK,IRksOZ,SAAS8mO,GAAiBtyE,EAAM5yJ,EAAO80L,GACnC,OAAOnjB,GAAY4iB,GAAU3hC,EAAKj0I,OAAQ3e,EAAO4yJ,EAAMkiC,EAC3D,CQnsOYowC,CAAiBjvO,KAAK28J,KAAMx0J,EAAG,gBAGb,IAAbA,EAAEgzJ,SAAiBhzJ,EAAEpG,QAAU/B,KAAKuuO,aACzCpmO,EAAE6B,kBACD7B,EAAE+H,SAAWg9N,GAAeH,IAAU/sO,KAAK28J,OAE1B,IAAbx0J,EAAEgzJ,SAAiBhzJ,EAAEpG,QAAU/B,KAAK4uO,eACzCzmO,EAAE6B,iBACFojO,GAAYptO,KAAK28J,OARjBx0J,EAAE6B,gBAUV,CACAsQ,OAAOA,GACH,QAASgtI,KAAMhtI,EAAO6zJ,aAClB,QAASziB,KAAUpE,EAAGmE,QACdC,EAAOviE,GAAGijJ,MAAoB1gF,EAAOx/I,MAAMywI,GAAG38I,KAAKg6B,QACnDh6B,KAAKkvO,SAASxjF,EAAOx/I,MAErC,CACAgjO,SAASl1M,GACLh6B,KAAKg6B,MAAQA,EACbh6B,KAAKuuO,YAAYriO,MAAQ8tB,EAAMoqL,OAC/BpkN,KAAK4uO,aAAa1iO,MAAQ8tB,EAAMpwB,QAChC5J,KAAK6uO,UAAUC,QAAU90M,EAAMuwM,cAC/BvqO,KAAK+uO,QAAQD,QAAU90M,EAAMqqK,OAC7BrkM,KAAKgvO,UAAUF,QAAU90M,EAAMwwM,SACnC,CACAtzE,QACIl3J,KAAKuuO,YAAYhzG,QACrB,CACIznF,UAAQ,OAAO,EAAI,CACnByrG,UAAQ,OAAOv/I,KAAK28J,KAAKj0I,MAAMm+H,MAAMyjF,IAAmB/qF,GAAK,EAErE,SAAS2P,GAAOyN,EAAMzN,GAAU,OAAOyN,EAAKj0I,MAAMwmI,OAAOA,EAAS,CAClE,MAAMigF,GAAiB,GACjBC,GAAQ,cACd,SAASpC,GAAcrwE,GAAQ5iJ,OAAMm5G,OACjC,IAAI55G,EAAOqjJ,EAAKj0I,MAAMxnB,IAAIk7I,OAAOriI,GAAO6sK,EAAUjqB,EAAKj0I,MAAMxnB,IAAIk7I,OAAOlpB,GAAIA,GACxE7vC,EAAQn4D,KAAKC,IAAI7R,EAAKS,KAAMA,EAAOo1N,IAAiB3jO,EAAM0f,KAAK4lC,IAAI81H,EAAS1zD,EAAKi8G,IACjFzrN,EAAOi5I,EAAKj0I,MAAMqmI,SAAS1rE,EAAO73E,GACtC,GAAI63E,GAAS/pE,EAAKS,KACd,QAASvV,EAAI,EAAGA,EAAI2qO,GAAgB3qO,IAChC,IAAK4qO,GAAMjsN,KAAKO,EAAKlf,EAAI,KAAO4qO,GAAMjsN,KAAKO,EAAKlf,IAAK,CACjDkf,EAAOA,EAAK3d,MAAMvB,GAClB,MAGZ,GAAIgH,GAAOo7K,EACP,QAASpiL,EAAIkf,EAAKjf,OAAS,EAAGD,EAAIkf,EAAKjf,OAAS0qO,GAAgB3qO,IAC5D,IAAK4qO,GAAMjsN,KAAKO,EAAKlf,EAAI,KAAO4qO,GAAMjsN,KAAKO,EAAKlf,IAAK,CACjDkf,EAAOA,EAAK3d,MAAM,EAAGvB,GACrB,MAGZ,OAAO60L,eAAwB,GAAE18B,EAAKj0I,MAAMwmI,OAAO,qBAAqBxrI,KAAQi5I,EAAKj0I,MAAMwmI,OAAO,cAAc51I,EAAKqmI,UACzH,CACA,MAAMwqD,GAAyB9Q,aAAqB,CAChD,sBAAuB,CACnB3K,QAAS,cACTpsJ,SAAU,WACV,iBAAkB,CACdA,SAAU,WACVi9G,IAAK,IACLrvC,MAAO,MACPq/E,gBAAiB,UACjBa,OAAQ,OACRi/C,KAAM,UACN3gD,QAAS,EACTpoB,OAAQ,GAEZ,6BAA8B,CAC1BA,OAAQ,oBAEZ,yBAA0B,CACtBgpE,YAAa,QAEjB,UAAW,CACPp/C,SAAU,MACVlN,WAAY,QAGpB,yBAA0B,CAAEuM,gBAAiB,aAC7C,wBAAyB,CAAEA,gBAAiB,aAC5C,kCAAmC,CAAEA,gBAAiB,aACtD,iCAAkC,CAAEA,gBAAiB,eAEnDu+C,GAAmB,CACrBxB,GACa1iF,OAASgjF,IACtBziC,IC3rCJ,MAAMolC,GACF1vO,YAAYka,EAAMm5G,EAAIs8G,GAClBxvO,KAAK+Z,KAAOA,EACZ/Z,KAAKkzH,GAAKA,EACVlzH,KAAKwvO,WAAaA,CACtB,EAEJ,MAAMC,GACF5vO,YAAY6vO,EAAa7iC,EAAO0mB,GAC5BvzN,KAAK0vO,YAAcA,EACnB1vO,KAAK6sM,MAAQA,EACb7sM,KAAKuzN,SAAWA,CACpB,CACApzN,YAAYuvO,EAAa7iC,EAAOnkL,GAE5B,IAAIinN,EAAoBD,EACpBE,EAAmBlnN,EAAMm+H,MAAMgpF,IAAYC,aAC3CF,IACAD,EAAoBC,EAAiBD,EAAmBjnN,IAC5D,IAAIy6H,EAASqiB,OAAemqE,EAAkBpoO,IAAKg9B,GAExCA,EAAExqB,MAAQwqB,EAAE2uF,IAAO3uF,EAAExqB,MAAQwqB,EAAE2uF,GAAK,GAAKxqG,EAAMxnB,IAAIk7I,OAAO73G,EAAExqB,MAAMm5G,IAAM3uF,EAAExqB,KAC3EyrJ,UAAkB,CAChBnD,OAAQ,IAAI0tE,GAAiBxrM,GAC7BirM,WAAYjrM,IACb2gH,MAAM3gH,EAAExqB,MACTyrJ,QAAgB,CACd9J,WAAY,CAAEqG,MAAO,6BAA+Bx9H,EAAEosF,UAAYpsF,EAAEyrM,UAAY,IAAMzrM,EAAEyrM,UAAY,KACpGR,WAAYjrM,IACb2gH,MAAM3gH,EAAExqB,KAAMwqB,EAAE2uF,MACvB,GACJ,OAAO,IAAIu8G,GAAUtsF,EAAQ0pD,EAAOojC,GAAe9sF,GACvD,EAEJ,SAAS8sF,GAAeP,EAAaF,EAAa,KAAMjyE,EAAQ,GAC5D,IAAI7mG,EAAQ,KACZg5K,SAAY5+E,QAAQyM,EAAO,IAAK,CAACxjJ,EAAMm5G,GAAM2wB,WACzC,IAAI2rF,GAAc3rF,EAAK2rF,YAAcA,EAErC94K,SAAQ,IAAI64K,GAAmBx1N,EAAMm5G,EAAI2wB,EAAK2rF,aACvC,IAEJ94K,CACX,CASA,SAASw5K,GAAgBxnN,EAAO+iI,GAC5B,OAAO/iI,EAAMi+H,MAAMwpF,IAAW,GAAS1kF,EAAUA,EAAQhxI,OAAO6wI,mBAA4B8kF,IAChG,CAeA,MAAMC,GAAoC/kF,YACpC+gF,GAA2B/gF,YAC3BglF,GAAkChlF,YAClC6kF,GAAyBloF,UAAkB,CAC7Cr8I,WACW,IAAI6jO,GAAUjqE,QAAiB,KAAM,MAEhDlrJ,OAAOpO,EAAOo7I,GACV,GAAIA,EAAGC,YAAcr7I,EAAMwjO,YAAYtqK,KAAM,CACzC,IAAIomF,EAASt/I,EAAMwjO,YAAYnoO,IAAI+/I,EAAG3+G,SAAU4qL,EAAW,KAAM1mB,EAAQ3gM,EAAM2gM,MAC/E,GAAI3gM,EAAMqnN,SAAU,CAChB,IAAIgd,EAASjpF,EAAG3+G,QAAQ05G,OAAOn2I,EAAMqnN,SAASx5M,KAAM,GACpDw5M,EAAW0c,GAAezkF,EAAQt/I,EAAMqnN,SAASic,WAAYe,IAAWN,GAAezkF,EAAQ,KAAM+kF,EAAM,EAE1G/kF,EAAOpmF,MAAQynI,GAASvlD,EAAG5+H,MAAMm+H,MAAMgpF,IAAYW,YACpD3jC,EAAQ,MACZ3gM,EAAQ,IAAIujO,GAAUjkF,EAAQqhD,EAAO0mB,EAAQ,CAEjD,QAAS7nE,KAAUpE,EAAGmE,QAClB,GAAIC,EAAOviE,GAAGknJ,IAAuB,CACjC,IAAIxjC,EAASvlD,EAAG5+H,MAAMm+H,MAAMgpF,IAAYW,UAA0B9kF,EAAOx/I,MAAMzH,OAASgsO,GAAU/tN,KAAO,KAArDxW,EAAM2gM,MAC1D3gM,EAAQujO,GAAU51N,KAAK6xI,EAAOx/I,MAAO2gM,EAAOvlD,EAAG5+H,MAAK,MAE/CgjI,EAAOviE,GAAGkjJ,IACfngO,EAAQ,IAAIujO,GAAUvjO,EAAMwjO,YAAahkF,EAAOx/I,MAAQukO,GAAU/tN,KAAO,KAAMxW,EAAMqnN,UAEhF7nE,EAAOviE,GAAGmnJ,MACfpkO,EAAQ,IAAIujO,GAAUvjO,EAAMwjO,YAAaxjO,EAAM2gM,MAAOnhD,EAAOx/I,QAGrE,OAAOA,CACX,EACAxI,QAAS09C,GAAK,CAAC4rJ,QAAe5rJ,EAAG7kC,GAAOA,EAAIswL,OACxCxT,oBAA4Bj4I,EAAGz3C,GAAKA,EAAE+lO,gBASxCgB,GAA0BlrE,QAAgB,CAAEzD,MAAO,qCACzD,SAAS4uE,GAAYh0E,EAAM7oH,EAAKu7G,GAC5B,IAAMqgF,eAAgB/yE,EAAKj0I,MAAMi+H,MAAMwpF,IACnCz5K,EAAQ,GAAIk6K,EAAa,IAAKC,EAAW,EAC7CnB,EAAY5+E,QAAQh9G,GAAOu7G,EAAO,EAAI,EAAI,GAAIv7G,GAAOu7G,EAAO,EAAI,EAAI,GAAI,CAACt1I,EAAMm5G,GAAM2wB,WAC7E/vG,GAAO/5B,GAAQ+5B,GAAOo/E,IACrBn5G,GAAQm5G,IAAQp/E,EAAM/5B,GAAQs1I,EAAO,KAAOv7G,EAAMo/E,GAAMm8B,EAAO,MAChE34F,EAAM9tD,KAAKi7I,EAAK2rF,YAChBoB,EAAa1lN,KAAK4lC,IAAI/2C,EAAM62N,GAC5BC,EAAW3lN,KAAKC,IAAI+nG,EAAI29G,GAAQ,GAGxC,IAAIjB,EAAmBjzE,EAAKj0I,MAAMm+H,MAAMgpF,IAAYiB,cAGpD,OAFIlB,IACAl5K,EAAQk5K,EAAiBl5K,EAAOimG,EAAKj0I,QACpCguC,EAAMjyD,OAEJ,CACHqvC,IAAK88L,EACLplO,IAAKqlO,EACLh6D,MAAOla,EAAKj0I,MAAMxnB,IAAIk7I,OAAOw0F,GAAY19G,GAAK29G,EAC9CjlO,YACW,CAAExH,IAAK2sO,GAAmBp0E,EAAMjmG,MANpC,IASf,CACA,SAASq6K,GAAmBp0E,EAAM+yE,GAC9B,OAAOh2E,GAAI,KAAM,CAAEqI,MAAO,mBAAqB2tE,EAAYnoO,IAAIg9B,GAAKysM,GAAiBr0E,EAAMp4H,GAAG,IAClG,CAIA,MAYM0sM,GAAkBt0E,IACpB,IAAIhW,EAAQgW,EAAKj0I,MAAMi+H,MAAMwpF,IAAW,GACxC,SAAKxpF,IAAUA,EAAMkmD,QAErBlwC,EAAKvyI,SAAS,CAAEqhI,QAAS4gF,GAAYh1N,IAAG,KACjC,KAgDL65N,GAAa,CACf,CAAEpgO,IAAK,cAAe+0C,IAlEH82G,IACnB,IAAIhW,EAAQgW,EAAKj0I,MAAMi+H,MAAMwpF,IAAW,KACnCxpF,IAAUA,EAAMkmD,QACjBlwC,EAAKvyI,SAAS,CAAEqhI,QAASykF,GAAgBvzE,EAAKj0I,MAAO,CAAC2jN,GAAYh1N,IAAG,OACzE,IAAIw1L,EAAQD,GAASjwC,EAAM8zE,GAAU/tN,MACrC,OAAImqL,GACAA,EAAMzoM,IAAI9B,cAAc,qBAAqBo4J,SAC1C,GA2DmC1wJ,gBAAgB,GAC1D,CAAE8G,IAAK,KAAM+0C,IA7CO82G,IACpB,IAAIhW,EAAQgW,EAAKj0I,MAAMi+H,MAAMwpF,IAAW,GACxC,IAAKxpF,EACD,OAAO,EACX,IAAIuG,EAAMyP,EAAKj0I,MAAMm9H,UAAUR,KAAMvsI,EAAO6tI,EAAM+oF,YAAY1yF,KAAKkQ,EAAIh6B,GAAK,GAC5E,SAAKp6G,EAAK5M,QACN4M,EAAO6tI,EAAM+oF,YAAY1yF,KAAK,IACzBlkI,EAAK5M,OAAS4M,EAAKiB,MAAQmzI,EAAInzI,MAAQjB,EAAKo6G,IAAMg6B,EAAIh6B,MAG/DypC,EAAKvyI,SAAS,CAAEy7H,UAAW,CAAEtjH,OAAQzpB,EAAKiB,KAAMlR,KAAMiQ,EAAKo6G,IAAM64B,gBAAgB,IAC1E,OAoFL8jF,GAA0B7pF,UAAa,CACzCC,QAAQ9+H,GACGxb,OAAO2gM,OAAO,CAAEpO,QAAS/2K,EAAM5f,IAAI/C,GAAKA,EAAE0T,QAAQH,OAAOsc,GAAU,MAALA,IAAc27H,GAAc7oI,EAAM5f,IAAI/C,GAAKA,EAAEkrC,QAAS,CACvH/mB,MAAO,IACPmnN,aAAc,KACdgB,cAAe,KACfK,aAAc,KACd9kC,OAAQ,IAAM,MACf,CACC8kC,aAAc,CAACngN,EAAGC,IAAOD,EAASC,EAAQ1C,GAAKyC,EAAEzC,IAAM0C,EAAE1C,GAAnByC,EAATC,OA0BzC,SAASmgN,GAAWloN,GAChB,IAAImoN,EAAW,GACf,GAAInoN,EACAA,EAAS,QAAW9lB,UAAU8lB,EAAS,CACnC,QAAS1kB,EAAI,EAAGA,EAAIpB,EAAKqB,OAAQD,IAAK,CAClC,IAAIs6I,EAAK17I,EAAKoB,GACd,GAAI,WAAW2e,KAAK27H,KAAQuyF,EAASzhM,KAAKtY,GAAKA,EAAE1mB,eAAiBkuI,EAAGluI,eAAgB,CACjFygO,EAASzoO,KAAKk2I,GACd,SAAS51H,GAGjBmoN,EAASzoO,KAAK,GAAE,CAExB,OAAOyoO,CACX,CACA,SAASL,GAAiBr0E,EAAM6yE,EAAY8B,GACxC,IAAItqF,EACJ,IAAI3/I,EAAOiqO,EAAUF,GAAW5B,EAAWtmN,SAAW,GACtD,OAAOwwI,GAAI,KAAM,CAAEqI,MAAO,+BAAiCytE,EAAW7+G,UAAY+oC,GAAI,OAAQ,CAAEqI,MAAO,qBAAuBytE,EAAW+B,cAAgB/B,EAAW+B,cAAc50E,GAAQ6yE,EAAW1vN,SAAwC,QAA7BknI,EAAKwoF,EAAWtmN,eAA4B,IAAP89H,OAAgB,EAASA,EAAGz/I,IAAI,CAAC+hB,EAAQ9kB,KAC1R,IAAIgtO,GAAQ,EAAOC,EAAStpO,IAExB,GADAA,EAAE6B,iBACEwnO,EACA,OACJA,GAAQ,EACR,IAAI96K,GAAQu5K,GAAetzE,EAAKj0I,MAAMi+H,MAAMwpF,IAAWT,YAAaF,GAChE94K,IACAptC,EAAOsH,MAAM+rI,EAAMjmG,GAAM38C,KAAM28C,GAAMw8D,GAAE,GAEzC9vH,QAASkmB,EAAQooN,EAAWrqO,EAAK7C,GAAKpB,EAAK8N,QAAQ7J,EAAK7C,KAAM,EAChEmtO,EAAUD,EAAW,EAAItuO,EAAO,CAACA,EAAK2C,MAAM,EAAG2rO,GAC/Ch4E,GAAI,IAAKt2J,EAAK2C,MAAM2rO,EAAUA,EAAW,IACzCtuO,EAAK2C,MAAM2rO,EAAW,IAC1B,OAAOh4E,GAAI,SAAU,CACjB/uJ,KAAM,SACNo3J,MAAO,sBACP2lD,QAAS+pB,EACTG,YAAaH,EACb,aAAe,YAAWruO,IAAOsuO,EAAW,EAAI,GAAM,iBAAgBrqO,EAAK7C,WAC5EmtO,EAAO,GACVnC,EAAWt3N,QAAUwhJ,GAAI,MAAO,CAAEqI,MAAO,uBAAyBytE,EAAWt3N,QACrF,CACA,MAAM63N,WAAyB9qE,GAC3BplK,YAAY2vO,GACR1vO,QACAE,KAAKwvO,WAAaA,CACtB,CACA7yF,GAAGniI,GAAS,OAAOA,EAAMg1N,YAAcxvO,KAAKwvO,UAAY,CACxDhtE,QACI,OAAO9I,GAAI,OAAQ,CAAEqI,MAAO,6BAA+B/hK,KAAKwvO,WAAW7+G,UAC/E,EAEJ,MAAMkhH,GACFhyO,YAAY88J,EAAM6yE,GACdxvO,KAAKwvO,WAAaA,EAClBxvO,KAAKkL,GAAK,QAAUggB,KAAKosF,MAAsB,WAAhBpsF,KAAKqsF,UAAuBjhG,SAAS,IACpEtW,KAAKoE,IAAM4sO,GAAiBr0E,EAAM6yE,GAAY,GAC9CxvO,KAAKoE,IAAI8G,GAAKlL,KAAKkL,GACnBlL,KAAKoE,IAAIzB,aAAa,OAAQ,SAClC,EAEJ,MAAM8tO,GACF5wO,YAAY88J,GACR38J,KAAK28J,KAAOA,EACZ38J,KAAK8xO,MAAQ,GAyCb9xO,KAAKwc,KAAOk9I,GAAI,KAAM,CAClBogC,SAAU,EACV7vI,KAAM,UACN,aAAcjqD,KAAK28J,KAAKj0I,MAAMwmI,OAAO,eACrCq6E,UA5Cax/N,IACb,GAAqB,IAAjBA,EAAMoxJ,QACN81E,GAAejxO,KAAK28J,MACpB38J,KAAK28J,KAAKjC,aAAK,GAEO,IAAjB3wJ,EAAMoxJ,SAAkC,IAAjBpxJ,EAAMoxJ,QAClCn7J,KAAK+xO,eAAe/xO,KAAKgyO,cAAgB,EAAIhyO,KAAK8xO,MAAMrtO,QAAUzE,KAAK8xO,MAAMrtO,aAAM,GAE7D,IAAjBsF,EAAMoxJ,SAAkC,IAAjBpxJ,EAAMoxJ,QAClCn7J,KAAK+xO,eAAe/xO,KAAKgyO,cAAgB,GAAKhyO,KAAK8xO,MAAMrtO,aAAM,GAEzC,IAAjBsF,EAAMoxJ,QACXn7J,KAAK+xO,cAAc,QAAC,GAEE,IAAjBhoO,EAAMoxJ,QACXn7J,KAAK+xO,cAAc/xO,KAAK8xO,MAAMrtO,OAAS,QAAC,GAElB,IAAjBsF,EAAMoxJ,QACXn7J,KAAK28J,KAAKjC,YAAK,MAEV3wJ,EAAMoxJ,SAAW,IAAMpxJ,EAAMoxJ,SAAW,IAAMn7J,KAAKgyO,eAAiB,GAUzE,OAV4E,CAC5E,IAAMxC,cAAexvO,KAAK8xO,MAAM9xO,KAAKgyO,eAAgB3qO,EAAO+pO,GAAW5B,EAAWtmN,SAClF,QAAS1kB,EAAI,EAAGA,EAAI6C,EAAK5C,OAAQD,IAC7B,GAAI6C,EAAK7C,GAAGwZ,cAAcuiI,WAAW,IAAMx2I,EAAMoxJ,QAAS,CACtD,IAAIzkG,EAAQu5K,GAAejwO,KAAK28J,KAAKj0I,MAAMi+H,MAAMwpF,IAAWT,YAAaF,GACrE94K,GACA84K,EAAWtmN,QAAQ1kB,GAAGosB,MAAM+rI,EAAMjmG,EAAM38C,KAAM28C,EAAMw8D,GAAE,EAIlE,CAEJnpH,EAAMC,gBAAc,EAapB09M,QAXW39M,IACX,QAASvF,EAAI,EAAGA,EAAIxE,KAAK8xO,MAAMrtO,OAAQD,IAC/BxE,KAAK8xO,MAAMttO,GAAGJ,IAAIm5D,SAASxzD,EAAMhI,SACjC/B,KAAK+xO,cAAcvtO,EAAC,IAUhCxE,KAAKoE,IAAMs1J,GAAI,MAAO,CAAEqI,MAAO,iBAAmB/hK,KAAKwc,KAAMk9I,GAAI,SAAU,CACvE/uJ,KAAM,SACNvH,KAAM,QACN,aAAcpD,KAAK28J,KAAKj0I,MAAMwmI,OAAO,SACrCw4D,QAAS,IAAMupB,GAAejxO,KAAK28J,OACpC,SACH38J,KAAKsa,QACT,CACI03N,oBACA,IAAIze,EAAWvzN,KAAK28J,KAAKj0I,MAAMi+H,MAAMwpF,IAAW5c,SAChD,IAAKA,EACD,OAAO,EACX,QAAS/uN,EAAI,EAAGA,EAAIxE,KAAK8xO,MAAMrtO,OAAQD,IACnC,GAAIxE,KAAK8xO,MAAMttO,GAAGgrO,YAAcjc,EAASic,WACrC,OAAOhrO,EACf,OAAO,CACX,CACA8V,SACI,IAAMo1N,cAAanc,YAAavzN,KAAK28J,KAAKj0I,MAAMi+H,MAAMwpF,IAClD3rO,EAAI,EAAGytO,GAAY,EAAOC,EAAkB,KA+BhD,IA9BAxC,EAAY5+E,QAAQ,EAAG9wJ,KAAK28J,KAAKj0I,MAAMxnB,IAAIuD,OAAQ,CAAC0tO,EAAQC,GAAQvuF,WAChE,IAAgB35G,EAAZwsB,GAAQ,EACZ,QAASyoB,EAAI36E,EAAG26E,EAAIn/E,KAAK8xO,MAAMrtO,OAAQ06E,IACnC,GAAIn/E,KAAK8xO,MAAM3yJ,GAAGqwJ,YAAc3rF,EAAK2rF,WAAY,CAC7C94K,EAAQyoB,EACR,MAEJzoB,EAAQ,GACRxsB,EAAO,IAAI2nM,GAAU7xO,KAAK28J,KAAM9Y,EAAK2rF,YACrCxvO,KAAK8xO,MAAM3gO,OAAO3M,EAAG,EAAG0lC,GACxB+nM,GAAY,IAGZ/nM,EAAOlqC,KAAK8xO,MAAMp7K,GACdA,EAAQlyD,IACRxE,KAAK8xO,MAAM3gO,OAAO3M,EAAGkyD,EAAQlyD,GAC7BytO,GAAY,IAGhB1e,GAAYrpL,EAAKslM,YAAcjc,EAASic,WACnCtlM,EAAK9lC,IAAI8wN,aAAa,mBACvBhrL,EAAK9lC,IAAIzB,aAAa,gBAAiB,QACvCuvO,EAAkBhoM,GAGjBA,EAAK9lC,IAAI8wN,aAAa,kBAC3BhrL,EAAK9lC,IAAI8I,gBAAgB,iBAE7B1I,MAEGA,EAAIxE,KAAK8xO,MAAMrtO,UAAiC,GAArBzE,KAAK8xO,MAAMrtO,QAAezE,KAAK8xO,MAAM,GAAGtC,WAAWz1N,KAAO,IACxFk4N,GAAY,EACZjyO,KAAK8xO,MAAM9gO,MAEU,GAArBhR,KAAK8xO,MAAMrtO,SACXzE,KAAK8xO,MAAMlpO,KAAK,IAAIipO,GAAU7xO,KAAK28J,KAAM,CACrC5iJ,MAAM,EAAIm5G,IAAI,EACdvC,SAAU,OACV7wG,QAAS9f,KAAK28J,KAAKj0I,MAAMwmI,OAAO,qBAEpC+iF,GAAY,GAEZC,GACAlyO,KAAKwc,KAAK7Z,aAAa,wBAAyBuvO,EAAgBhnO,IAChElL,KAAK28J,KAAK44B,eAAe,CACrBzkL,IAAK9Q,KACL6gL,KAAM,MAAS3zB,IAAKglF,EAAgB9tO,IAAIy+J,wBAAyBgqC,MAAO7sM,KAAKwc,KAAKqmJ,0BAClFy4B,MAAO,EAAGpuC,MAAK2/C,YACX,IAAIhzC,EAASgzC,EAAM9jH,OAAS/oF,KAAKwc,KAAKs9I,aAClC5M,EAAI3N,IAAMstD,EAAMttD,IAChBv/I,KAAKwc,KAAKm+I,YAAckyC,EAAMttD,IAAM2N,EAAI3N,KAAOsa,EAC1C3M,EAAIiM,OAAS0zC,EAAM1zC,SACxBn5J,KAAKwc,KAAKm+I,YAAczN,EAAIiM,OAAS0zC,EAAM1zC,QAAUU,OAI5D75J,KAAKgyO,cAAgB,GAC1BhyO,KAAKwc,KAAKtP,gBAAgB,yBAE1B+kO,GACAjyO,KAAK88J,MACb,CACAA,OACI,IAAIgzC,EAAS9vM,KAAKwc,KAAK0mB,WACvB,SAASoqK,IACL,IAAIhnG,EAAOwpG,EACXA,EAASxpG,EAAKv5F,YACdu5F,EAAK1lG,QACT,CACA,QAASspC,KAAQlqC,KAAK8xO,MAClB,GAAI5nM,EAAK9lC,IAAItD,YAAcd,KAAKwc,KAAM,CAClC,KAAOszL,GAAU5lK,EAAK9lC,KAClBkpM,IACJwC,EAAS5lK,EAAK9lC,IAAI2I,iBAGlB/M,KAAKwc,KAAK/P,aAAay9B,EAAK9lC,IAAK0rM,GAGzC,KAAOA,GACHxC,GACR,CACAykC,cAAcC,GACV,GAAIhyO,KAAKgyO,cAAgB,EACrB,OACJ,IACInsF,EAAYoqF,GADJjwO,KAAK28J,KAAKj0I,MAAMi+H,MAAMwpF,IACGT,YAAa1vO,KAAK8xO,MAAME,GAAexC,YACvE3pF,GAEL7lJ,KAAK28J,KAAKvyI,SAAS,CACfy7H,UAAW,CAAEtjH,OAAQsjH,EAAU9rI,KAAMlR,KAAMg9I,EAAU3yB,IACrD64B,gBAAgB,EAChBN,QAAS6kF,GAAmBj5N,GAAGwuI,IAEvC,CACA1lJ,YAAYw8J,GAAQ,OAAO,IAAI8zE,GAAU9zE,EAAO,EAKpD,SAAS01E,GAAUj7H,GACf,OAJJ,SAASruG,GAAIyD,EAAS2tD,EAAS,uBAC3B,MAAQ,mEAAkEA,KAAS3+C,mBAAmBhP,YAC1G,CAEWzD,CAAK,qDAAoDquG,qCAA2C,uBAC/G,CACA,MAAM+yF,GAAyB9Q,aAAqB,CAChD,iBAAkB,CACd3K,QAAS,kBACTU,WAAY,OACZnuG,QAAS,QACT+hG,WAAY,YAEhB,uBAAwB,CAAEmM,WAAY,kBACtC,yBAA0B,CAAEA,WAAY,oBACxC,sBAAuB,CAAEA,WAAY,kBACrC,sBAAuB,CAAEA,WAAY,kBACrC,uBAAwB,CACpBkgD,KAAM,UACNj/C,OAAQ,OACR1B,QAAS,UACTa,gBAAiB,OACjBn4E,MAAO,QACP+4E,aAAc,MACdf,WAAY,MACZ3vC,OAAQ,WAEZ,uBAAwB,CACpBywC,SAAU,MACV71H,QAAS,IAEb,gBAAiB,CACb21H,mBAAoB,cACpBC,iBAAkB,WAClB5H,cAAe,SAEnB,sBAAuB,CAAEyH,gBAA8BuiD,GAAU,SACjE,wBAAyB,CAAEviD,gBAA8BuiD,GAAU,WACnE,qBAAsB,CAAEviD,gBAA8BuiD,GAAU,SAChE,qBAAsB,CAAEviD,gBAA8BuiD,GAAU,SAChE,uBAAwB,CAAE9iD,gBAAiB,aAC3C,mBAAoB,CAChBb,QAAS,EACTpoB,OAAQ,GAEZ,gBAAiB,CACbhkI,SAAU,WACV,UAAW,CACP91B,QAAS,KACT81B,SAAU,WACV62H,OAAQ,EACRlpD,KAAM,OACNk/E,WAAY,wBACZM,YAAa,wBACbE,aAAc,mBAGtB,wBAAyB,CACrB,UAAW,CAAE0a,kBAAmB,WAEpC,qBAAsB,CAClB,UAAW,CAAEA,kBAAmB,SAEpC,qBAAsB,CAClB,UAAW,CAAEA,kBAAmB,SAEpC,0BAA2B,CACvB/nK,SAAU,WACV,OAAQ,CACJ81L,UAAW,QACXka,UAAW,OACX,oBAAqB,CACjB/iD,gBAAiB,OACjB,MAAO,CAAE05B,eAAgB,cAE7B,0BAA2B,CACvBspB,oBAAqB,OACrBhjD,gBAAiB,YACjBijD,eAAgB,QAChBp7H,MAAO,iBAEX,MAAO,CAAE6xG,eAAgB,QACzBv6B,QAAS,EACTpoB,OAAQ,GAEZ,iBAAkB,CACdhkI,SAAU,WACVi9G,IAAK,IACLrvC,MAAO,MACP++E,WAAY,UACZmB,OAAQ,OACRi/C,KAAM,UACN3gD,QAAS,EACTpoB,OAAQ,MAwId8pE,GAAiB,CACnBD,GACa92C,uBAA+B,CAAC82C,IAAYznN,IACrD,IAAM6qM,WAAU1mB,SAAUnkL,EAAMi+H,MAAMwpF,IACtC,OAAQ5c,GAAa1mB,GAAS0mB,EAASx5M,MAAQw5M,EAASrgG,GAAuBsyC,OAAe,CAC1FkrE,GAAWxrF,MAAMquE,EAASx5M,KAAMw5M,EAASrgG,MADgBsyC,OAE5D,GAEQ0mC,GAAaykC,GAAa,CAAEtkC,OA5sB7C,SAASomC,GAAYnrF,EAAIpV,GACrB,IAAIn4H,EAAOm4H,EAAQp+F,IAAKo/E,EAAKgf,EAAQ1mI,KAAOuO,EACxCzI,EAASg2I,EAAG5+H,MAAMm+H,MAAMgpF,IAAYxjC,OAAO/kD,EAAIvtI,EAAMm5G,GACzD,GAAc,MAAV5hH,EACA,OAAOA,EACX,IAAIgI,EAAOguI,EAAGuE,WAAW3qJ,IAAIk7I,OAAOlK,EAAQp+F,KAC5C,SAAUwzG,EAAGmE,QAAQ77G,KAAKznC,GAAKA,EAAEghF,GAAGknJ,OAA0B/oF,EAAG3+G,QAAQ65G,aAAalpI,EAAKS,KAAMmR,KAAKC,IAAI7R,EAAK45G,GAAIA,IACvH,IAssBIi3E,ICnuBSuoC,GAAyC,CVwnVtD,SAASC,GAAYjjM,EAAS,CAAC,GAC3B,MAAO,CACHygK,GAAiB94L,GAAGq4B,GACpBy+J,KACAkC,GAER,CU7nVEsiC,GV2pVSniC,GA/nDX,SAASoiC,GAITljM,EAAS,CAAC,GACN,MAAO,CAACm2J,GAAkBxuL,GAAGq4B,GAItBy2J,KAAYA,GAAU75B,GAAWo3B,UAAU,MAC9C7jM,YAAY88J,GACR38J,KAAK28J,KAAOA,EACZ38J,KAAKwnK,YAAchC,GAAW3X,KAC9B7tJ,KAAK6yO,gBAAkBlnO,OAAOC,OAAO,MACrC5L,KAAK8yO,UAAY9yO,KAAK+yO,cAAcp2E,EAAKj0I,MAAMm+H,MAAMg/C,KACrD7lM,KAAKwnK,YAAcxnK,KAAK8yO,UAAUjuC,WAAWloC,EACjD,CACAo2E,cAAcxkF,GACV,OAAO,IAAI61C,GAAe,CACtBC,OAAQ91C,EAAKu3C,aACbxB,WAAY,CAACxkK,EAAG68H,EAAM7oH,KAClB,IAAM5yC,OAAQy7J,EAAKj0I,MACfjX,EAAOgvI,GAAY3gH,EAAE,GAAI,GAC7B,GAAY,GAARruB,EAAW,CACX,IAAI6H,EAAOpY,EAAIk7I,OAAOtoG,GAClBsxB,EAAOu3F,EAAKj0I,MAAMumI,QAAS+G,EAAMF,GAAYx8I,EAAKoK,KAAM0hD,EAAMtxB,EAAMx6B,EAAKS,MAC7E,OAAOyrJ,GAAW57J,QAAQ,CACtBy4J,OAAQ,IAAIkkC,IAAWnhI,EAAQ4wF,EAAM5wF,GAASplE,KAAK28J,KAAKic,sBAAwB54K,KAAK28J,KAAKhD,SAC7F,CAEL,OAAO35J,KAAK6yO,gBAAgBphO,KACvBzR,KAAK6yO,gBAAgBphO,GAAQ+zJ,GAAW57J,QAAQ,CAAEy4J,OAAQ,IAAI+jC,GAAkB73C,EAAM98I,KAAO,EAEtG+yL,SAAUj2C,EAAKy3C,iBAAc/3L,EAAY,OAEjD,CACAqM,OAAOA,GACH,IAAIi0I,EAAOj0I,EAAOoO,MAAMm+H,MAAMg/C,IAC1BvrL,EAAOuxI,WAAWhF,MAAMg/C,KAAsBt3C,GAC9CvuJ,KAAK8yO,UAAY9yO,KAAK+yO,cAAcxkF,GACpCvuJ,KAAKwnK,YAAcxnK,KAAK8yO,UAAUjuC,WAAWvqL,EAAOqiJ,OAGpD38J,KAAKwnK,YAAcxnK,KAAK8yO,UAAUtjE,WAAWl1J,EAAQta,KAAKwnK,YAElE,GACD,CACCA,YAAajsJ,GAAKA,EAAEisJ,eAzC5B,CUhiSEorE,GJoOF,SAASI,GAAQtjM,EAAS,CAAC,GACvB,MAAO,CACHkyL,GACAN,GAAcjqN,GAAGq4B,GACjB2pJ,oBAA4B,CACxB/W,YAAYn6K,EAAGw0J,GACX,IAAI19H,EAAyB,eAAf92B,EAAEs0K,UAA6B8lD,GAAsB,eAAfp6N,EAAEs0K,UAA6B+lD,GAAO,KAC1F,QAAKvjM,IAEL92B,EAAE6B,iBACKi1B,EAAQ09H,GACnB,IAGZ,CIjPEq2E,GPwgDF,SAASC,GAAWvjM,EAAS,CAAC,GAC1B,IAAIwjM,EAAavnO,OAAO2gM,OAAO3gM,OAAO2gM,OAAO,CAAC,EAAGqb,IAAqBj4K,GAClEyjM,EAAU,IAAInrB,GAAWkrB,GAAY,GAAOE,EAAY,IAAIprB,GAAWkrB,GAAY,GACnFjxC,EAAU31B,aAAqB,MAC/BzsK,YAAY88J,GACR38J,KAAK+Z,KAAO4iJ,EAAK2U,SAASv3J,KAC1B/Z,KAAKiiM,QAAUjiM,KAAKqzO,aAAa12E,EACrC,CACAriJ,OAAOA,IACCA,EAAOitI,YAAcjtI,EAAO+zJ,iBAC5B/zJ,EAAOuxI,WAAWhF,MAAMs5D,KAAa7lM,EAAOoO,MAAMm+H,MAAMs5D,KACxD7lM,EAAOuxI,WAAWlF,MAAM0/D,IAAW,IAAU/rM,EAAOoO,MAAMi+H,MAAM0/D,IAAW,IAC3EnG,GAAW5lM,EAAOuxI,aAAeq0D,GAAW5lM,EAAOoO,QACnDwqN,EAAWnrB,eAAeztM,MAC1Bta,KAAKiiM,QAAUjiM,KAAKqzO,aAAa/4N,EAAOqiJ,MAChD,CACA02E,aAAa12E,GACT,IAAI7uF,EAAU,IAAIikF,GAClB,QAASz4I,KAAQqjJ,EAAK0/B,mBAAoB,CACtC,IAAIx6B,EAAOglD,GAASlqD,EAAKj0I,MAAOpP,EAAKS,KAAMT,EAAK45G,IAAMkgH,EAChDrtB,GAASppD,EAAKj0I,MAAOpP,EAAKS,KAAMT,EAAK45G,IAAMigH,EAAU,KACvDtxE,GACA/zF,EAAQxlE,IAAIgR,EAAKS,KAAMT,EAAKS,KAAM8nJ,EAAI,CAE9C,OAAO/zF,EAAQhe,QACnB,KAEEy8G,oBAAqB2mE,EAC3B,MAAO,CACHjxC,EACAiM,GAAO,CACHnsC,MAAO,gBACPkgC,QAAQtlC,GAAQ,IAAI3V,EAAI,OAAwC,QAA/BA,EAAK2V,EAAK/2J,OAAOq8L,UAA6B,IAAPj7C,OAAgB,EAASA,EAAGi7C,UAAY7wC,QAAgB,EAChI28C,kBACW,IAAIia,GAAWkrB,GAAY,GAEtC3mE,iBAAkB5gK,OAAO2gM,OAAO3gM,OAAO2gM,OAAO,CAAC,EAAG//B,GAAmB,CAAEklE,MAAO,CAAC90E,EAAMrjJ,EAAMvP,KACnF,GAAIwiK,EAAiBklE,OAASllE,EAAiBklE,MAAM90E,EAAMrjJ,EAAMvP,GAC7D,OAAO,EACX,IAAIu8M,EAASO,GAASlqD,EAAKj0I,MAAOpP,EAAKS,KAAMT,EAAK45G,IAClD,GAAIozF,EACA3pD,SAAKvyI,SAAS,CAAEqhI,QAAS06D,GAAa9uM,GAAGivM,MAClC,EAEX,IAAIphE,EAAQ6gE,GAASppD,EAAKj0I,MAAOpP,EAAKS,KAAMT,EAAK45G,IACjD,QAAIgyB,IACAyX,EAAKvyI,SAAS,CAAEqhI,QAASy6D,GAAW7uM,GAAG6tI,MAChC,EAEJ,MAGnB6hE,KAER,CO7jDEksB,GV0rRF,SAASK,GAAc5jM,EAAS,CAAC,GAC7B,MAAO,CACH8yJ,GAAgBnrL,GAAGq4B,GACnBkzJ,GACAQ,GACAE,GACA53B,GAAsBr0J,IAAG,GAEjC,CUjsREi8N,GVo2RS,CAAC9vC,GAAeC,IUl2RzBr1C,+BAAuC,GP4nC9BA,wBAAiC9G,IACpC,IAAKA,EAAGC,aAAeD,EAAGgF,YAAY,gBAAkBhF,EAAGgF,YAAY,kBACnE,OAAOhF,EACX,IAAIiP,EAAQjP,EAAGuE,WAAWuD,eAAe,gBAAiB9H,EAAGuE,WAAWhG,UAAUR,KAAKx8I,MACvF,IAAK0tJ,EAAM9xJ,OACP,OAAO6iJ,EACX,IAAIpmJ,EAAMomJ,EAAG0E,QAAUnjJ,QAASy+I,EAAG2E,aAAa5G,KAAM/rI,EAAOpY,EAAIk7I,OAAOvzI,GACxE,GAAIA,EAAOyQ,EAAKS,KAtBC,IAuBb,OAAOutI,EACX,IAAIisB,EAAYryK,EAAIq8I,YAAYjkI,EAAKS,KAAMlR,GAC3C,IAAK0tJ,EAAM3mH,KAAKh6B,GAAKA,EAAEuN,KAAKowJ,IACxB,OAAOjsB,EACX,IAAM5+H,SAAU4+H,EAAI1zH,GAAO,EAAI+U,EAAU,GACzC,QAAW9/B,UAAU6f,EAAMm9H,UAAU1C,OAAQ,CACzC,IAAI7pI,EAAOoP,EAAMxnB,IAAIk7I,OAAOvzI,GAC5B,GAAIyQ,EAAKS,MAAQ6Z,EACb,SACJA,EAAOta,EAAKS,KACZ,IAAI4yM,EAAShJ,GAAej7L,EAAOpP,EAAKS,MACxC,GAAc,MAAV4yM,EACA,SACJ,IAAIh7D,EAAM,OAAO5wF,KAAKznD,EAAKoK,MAAM,GAC7BqkN,GAAOvkB,GAAa96L,EAAOikM,GAC3Bh7D,GAAOo2E,IACPp/L,EAAQ//B,KAAK,CAAEmR,KAAMT,EAAKS,KAAMm5G,GAAI55G,EAAKS,KAAO43I,EAAIltJ,OAAQmlC,OAAQm+L,IAAM,CAElF,OAAOp/L,EAAQlkC,OAAS,CAAC6iJ,EAAI,CAAE3+G,UAASikH,YAAY,IAAUtF,IAqftE,SAASisF,GAAmBr4B,EAAat/L,GACrC,IAA6BysM,EAAzB3+D,EAAM,CAACq/D,IACX,OAAI7N,aAAuB+M,KACnB/M,EAAYkN,QACZ1+D,EAAI9gJ,KAAKywL,kBAA0B6hB,EAAYkN,SACnDC,EAAYnN,EAAYmN,WAGxB3+D,EAAI9gJ,KAD8CgT,GAAQ4xN,SACjDjlB,GAAoBlxM,GAAG6jM,GAC3BmN,EACIC,GAAiB5hE,SAAS,CAAC2yC,cAAuB3wK,GAChDA,EAAMm+H,MAAMwyC,gBAAuC,QAAbgvB,GAAuB,CAACnN,GAAe,IAG/EoN,GAAiBjxM,GAAG6jM,IAC1BxxD,CACX,COzpDE6pF,CAAmBvqB,GAAuB,CAAEwkB,UAAU,IPuzDxD,SAASgG,GAAgB9jM,EAAS,CAAC,GAC/B,MAAO,CAAC45K,GAAsBjyM,GAAGq4B,GAASo6K,GAC9C,COxzDE0pB,GNsrDS,CAACjoE,GAAcmtD,IMprDxBsB,KVsySF,SAASyZ,GAAqB73N,GAC1B,IAAI7D,EAA4D6D,GAAQ83N,cAAiBvrO,GAAKA,EAAEyH,QAAsB,GAAZzH,EAAEs7C,QAC5G,OAAO41I,GAAWjuB,oBAAoB/zJ,GAAG,CAACslJ,EAAM5yJ,IAAUgO,EAAOhO,GApCrE,SAAS4pO,GAAwBh3E,EAAM5yJ,GACnC,IAAIs5E,EAAQwjH,GAAOlqC,EAAM5yJ,GAAQm1K,EAAWviB,EAAKj0I,MAAMm9H,UACvD,OAAKxiE,EAEE,CACH/oE,OAAOA,GACH,GAAIA,EAAOitI,WAAY,CACnB,IAAIqsF,EAAWt5N,EAAOquB,QAAQ05G,OAAO/nI,EAAOuxI,WAAW3qJ,IAAIoY,KAAK+pE,EAAM/pE,MAAMS,MACxE85N,EAAUv5N,EAAOoO,MAAMxnB,IAAIk7I,OAAOw3F,GACtCvwJ,EAAQ,CAAE/pE,KAAMu6N,EAAQl0F,OAAQqW,IAAK3yE,EAAM2yE,IAAKvS,IAAKv4H,KAAK4lC,IAAIuyB,EAAMogE,IAAKowF,EAAQpvO,SACjFy6K,EAAWA,EAAS33K,IAAI+S,EAAOquB,QAAO,CAE9C,EACA3kC,IAAI+F,EAAO+pO,EAAS12D,GAChB,IAAIzrB,EAAMk1C,GAAOlqC,EAAM5yJ,GACvB,IAAK4nJ,EACD,OAAOutB,EACX,IAAI/7B,EAxDhB,SAAS4wF,GAAarrN,EAAOsI,EAAGC,GAC5B,IAAIm2M,EAAYl8M,KAAK4lC,IAAI9/B,EAAE1X,KAAM2X,EAAE3X,MAAO6kI,EAAUjzH,KAAKC,IAAI6F,EAAE1X,KAAM2X,EAAE3X,MACnE6pI,EAAS,GACb,GAAInyH,EAAEyyH,IAAMmjD,IAAU31K,EAAEwyH,IAAMmjD,IAAU51K,EAAEglI,IAAM,GAAK/kI,EAAE+kI,IAAM,EAAG,CAC5D,IAAIg+E,EAAW9oN,KAAK4lC,IAAI9/B,EAAEyyH,IAAKxyH,EAAEwyH,KAAMs9E,EAAS71M,KAAKC,IAAI6F,EAAEyyH,IAAKxyH,EAAEwyH,KAClE,QAASj/I,EAAI4iO,EAAW5iO,GAAK25I,EAAS35I,IAAK,CACvC,IAAI8U,EAAOoP,EAAMxnB,IAAIoY,KAAK9U,GACtB8U,EAAK7U,QAAUs8N,GACf59E,EAAOv6I,KAAKq8I,SAAsB3rI,EAAKS,KAAOi6N,EAAU16N,EAAK45G,GAAK6tG,GAAO,MAGhF,CACD,IAAIkT,EAAW/oN,KAAK4lC,IAAI9/B,EAAEglI,IAAK/kI,EAAE+kI,KAAMk+E,EAAShpN,KAAKC,IAAI6F,EAAEglI,IAAK/kI,EAAE+kI,KAClE,QAASxxJ,EAAI4iO,EAAW5iO,GAAK25I,EAAS35I,IAAK,CACvC,IAAI8U,EAAOoP,EAAMxnB,IAAIoY,KAAK9U,GACtB6+E,EAAQ0yE,GAAWz8I,EAAKoK,KAAMuwN,EAAUvrN,EAAMumI,SAAS,GAC3D,GAAI5rE,EAAQ,EACR8/D,EAAOv6I,KAAKq8I,UAAuB3rI,EAAK45G,SAEvC,CACD,IAAI1nH,EAAMuqJ,GAAWz8I,EAAKoK,KAAMwwN,EAAQxrN,EAAMumI,SAC9C9L,EAAOv6I,KAAKq8I,SAAsB3rI,EAAKS,KAAOspE,EAAO/pE,EAAKS,KAAOvO,GAAI,GAIjF,OAAO23I,CACX,CA8ByB4wF,CAAap3E,EAAKj0I,MAAO26D,EAAOsuE,GAC7C,OAAKxO,EAAO1+I,OAGDwgJ,UADPm4B,EAC8Bj6B,EAAO1oI,OAAOykK,EAAS/7B,QAEvBA,GAJvB+7B,CAKf,GArBO,IAuBf,CAU8Ey0D,CAAwBh3E,EAAM5yJ,GAAS,KACrH,CUxySE0pO,GVuzSF,SAASU,GAAgBv4N,EAAU,CAAC,GAChC,IAAKnK,EAAMw1I,GAAU5/I,GAAKuU,EAAQ9K,KAAO,OACrClL,EAAS0mK,GAAWo3B,UAAU,MAC9B7jM,YAAY88J,GACR38J,KAAK28J,KAAOA,EACZ38J,KAAKo0O,QAAS,CAClB,CACA5tO,IAAI4tO,GACIp0O,KAAKo0O,QAAUA,IACfp0O,KAAKo0O,OAASA,EACdp0O,KAAK28J,KAAKriJ,OAAO,IAEzB,GACD,CACCqyJ,eAAgB,CACZ8O,QAAQtzK,GACJnI,KAAKwG,IAAI2B,EAAEgzJ,SAAW1pJ,GAAQw1I,EAAO9+I,GACzC,EACAksO,MAAMlsO,IACEA,EAAEgzJ,SAAW1pJ,IAASw1I,EAAO9+I,KAC7BnI,KAAKwG,KAAI,EACjB,EACA+kM,UAAUpjM,GACNnI,KAAKwG,IAAIygJ,EAAO9+I,GACpB,KAGR,MAAO,CACHvC,EACAyzL,GAAWrsB,kBAAkB31J,GAAGslJ,IAAU,IAAI3V,EAAI,OAAuC,QAA9BA,EAAK2V,EAAK/2J,OAAOA,UAA4B,IAAPohJ,GAAyBA,EAAGotF,OAAUjtC,GAAgB,OAE/J,CUr1SEgtC,GVipSS1tC,GQ1xRX,SAAS6tC,GAA0B14N,GAC/B,IAAI8tI,EAAM,CAAC2gF,GAAcF,IACzB,OAAIvuN,GACA8tI,EAAI9gJ,KAAKmhO,GAAgB1yN,GAAGuE,IACzB8tI,CACX,CE1XE4qF,GACAj2C,MAAU,IACL66B,MACAjH,MACA+b,MACA/J,MACA7c,MACA8S,MACAgX,MC9CA,IAAMqD,GAAiB,MAAxB,MAAOA,EADb10O,cAIUG,oBAA0C,IAAIooB,MACtDpoB,oBAAiBA,KAAKw0O,eAAevrL,eAErCjpD,6BAA2C,IAAIooB,MAC/CpoB,6BAA0BA,KAAKy0O,wBAAwBxrL,eAEvDyrL,cAAcC,GACZ30O,KAAKw0O,eAAe17N,KAAK67N,EAC3B,CAEAC,iBAAiBl4N,GACf1c,KAAKy0O,wBAAwB37N,KAAK4D,EACpC,CAACvc,kDAfUo0O,EAAiB,iEAAjBA,EAAiBnvO,QAAjBmvO,EAAiB,mBAAjBA,CAAiB,qECgBtBpvO,0CAAgCA,kHAASA,wDAA6B,GACpEA,+CACFA,4BCPD,IAAM0vO,GAAmB,MAA1B,MAAOA,EAIXh1O,YAAoBi1O,4BAClB90O,KAAK80O,kBAAkBC,eAAex8N,UAAUo8N,IAC9C30O,KAAKg1O,oBAAsBL,EAASK,oBACpCh1O,KAAKi1O,QAAQN,EAASljO,KAAI,EAE9B,CAEA46C,kBACE,MAAM6oL,EAAgB7zO,SAAS8zO,eAAe,eAE9C,IAAKD,EACH,MAAM,IAAIzuO,MAAM,kCAGlB,MAAM2uO,EAAepb,GAAe,CAClC5jK,SAAU,CAACp2D,KAAKq1O,8BAGZ3sN,EAAQ0lI,UAAmB,CAC/BltJ,IAAK,GACLmlJ,WAAY,CAACqsF,GAAsBrmB,UAAsBwS,IAASuW,KAGpEp1O,KAAKs1O,WAAa,IAAIj8C,GAAW,CAAE3wK,QAAOrc,OAAQ6oO,GACpD,CAEAK,eACE,MAAMC,EAAajpL,EAAE,yBAAyBhwC,MAC9Cvc,KAAK80O,kBAAkBF,iBAAiB,CAAEnjO,KAAMzR,KAAKy1O,UAAWD,eAChEjpL,EAAE,oBAAoBI,MAAM,OAC9B,CAEA+oL,8BACEnpL,EAAE,4BAA4BI,MAAM,OACtC,CAEAgpL,qBACE,MAAMlkO,EAAOzR,KAAKg1O,oBAAoBY,iBACtC51O,KAAKi1O,QAAQxjO,GACb86C,EAAE,4BAA4BI,MAAM,OACtC,CAEQsoL,QAAQxjO,GACdzR,KAAKs1O,YAAYlrN,SAAS,CACxBue,QAAS,CAAE5uB,KAAM,EAAGm5G,GAAIlzH,KAAKy1O,UAAUhxO,OAAQmlC,OAAQn4B,IAE3D,CAEQgkO,UACN,OAAOz1O,KAAKs1O,YAAY5sN,MAAMxnB,IAAIoV,YAAc,EAClD,CAEYu/N,4BACV,OAAO71O,KAAKg1O,qBAAqBc,sBAAwB,EAC3D,CAEAT,2BACE,OAAQn3N,IACN,MAAM4yM,EAAO5yM,EAAQkxM,YAAY,OAEjC,IAAK0B,GAASA,EAAK/2M,OAAS+2M,EAAK59F,KAAOh1G,EAAQ+wM,SAC9C,OAAO,KAIT,MAAM8mB,EAAkC,GACxC71B,UAAWhiM,EAAQwK,OAAOwqL,QAAQ,CAChCC,MAAMtyM,GACJ,GAAIA,EAAK8J,KAAKw+E,GAAG,gBAAiB,CAChC,MAAMinI,EAAQlyM,EAAQwK,MAAMxnB,IAAI6E,MAAMlF,EAAKkZ,KAAMlZ,EAAKqyH,IAAI58G,WAC1Dy/N,EAAkBntO,KAAK,CAAE+B,KAAM,WAAYylN,SAAO,CAEtD,IAGK,CACLr2M,KAAM+2M,EAAK/2M,KACX6B,QAASm6N,EAAkBt7N,UAAUza,KAAK61O,wBAGhD,CAAC11O,kDApFU00O,GAAmB/mN,gGAAnB+mN,EAAmBtqM,s5BDhBhCplC,sCAQEA,mCACAA,4BACAA,sCAAmD,UAAnDA,CAAmD,UAAnDA,CAAmD,UAGrBA,oCAAWA,6BAErCA,sCACEA,iCACFA,2BAEAA,uCAA0B,eACQA,iDAAS6Q,gBAAc,GAAE7Q,8BAAIA,2BAC7DA,8CAGAA,2CAAyEA,gCAAMA,mCAMvFA,wCAOyB,WAPzBA,CAOyB,WAPzBA,CAOyB,WAPzBA,CAOyB,eAPzBA,CAOyB,cAKUA,8BAAOA,6BAElCA,sCAAwBA,iCAAOA,6BAEjCA,uCAAwBA,gDAAsBA,2BAE9CA,uCAA0B,eACQA,iDAAS6Q,sBAAoB,GAAE7Q,gCAAMA,2BACrEA,2CAAyEA,gCAAMA,0CA7BNA,oSCLpE0vO,CAAmB,KCVnBmB,GAAqB,MAA5B,MAAOA,EACXn2O,YAAoBwsB,cAAmB,CAEvC4pN,WACEj2O,KAAKqsB,KAAKroB,I3TAD,8C2TA4B,CAAE+Z,aAAc,OAAQiC,QAAS,aAAczH,UAClF7M,IACE,MAAMwqO,EAAW,oBAAoBn1K,KAAKr1D,EAAKwN,QAAQlV,IAAI,wBAAwB,GAEnFmyO,UAAiB,IAAI74N,KAAK,CAAC5R,EAAKzJ,MAAO,CAAE0I,KAAM,oBAAsBurO,EAAQ,EAE/E,OAEJ,CAAC/1O,kDAZU61O,GAAqBloN,0FAArBkoN,EAAqB5wO,QAArB4wO,EAAqB,mBAArBA,CAAqB,qECwExB7wO,mCAAmE,UAC9DA,kHAASA,0DAA+B,GACzCA,gCACAA,sDACFA,4BAAI,kEAWVA,sCAAqC,UACvBA,kHAASA,+CAAoB,GACvCA,gCACAA,wCAAwBA,2CAAkBA,8BAAO,kEAUrDA,mCAAkC,UACiBA,kHAASA,+CAAoB,GAC5EA,gCACAA,wCAAyBA,qCAAWA,8BAAO,kEAU/CA,mCAAsC,UACPA,kHAASA,8CAAmB,GACvDA,gCACAA,wCAAwBA,uCAAcA,8BAAO,kEAIjDA,mCAKI,UAC2BA,kHAASA,mDAAwB,GAC5DA,gCACAA,wCAAwBA,6CAAoBA,8BAAO,kEAIvDA,mCAAsC,UACPA,kHAASA,+CAAoB,GACxDA,gCACAA,wCAAwBA,wCAAeA,8BAAO,kEAIlDA,mCAA+D,UACXA,kHAASA,wCAAa,GACtEA,gCACAA,wCAAwBA,qCAAYA,8BAAO,wCCvI9C,IAAMixO,GAA0B,MAAjC,MAAOA,EACXv2O,YACUw2O,EACAtmG,EACAve,EACAC,EACA6kH,GAJAt2O,wBACAA,mBACAA,kBACAA,yBACAA,4BACP,CAEHqsD,kBACQE,EAAG,cAAcgqL,WACzB,CAEAC,mBACEx2O,KAAK+vI,YAAYhF,oBAAmB,GACpC/qI,KAAKwxH,WAAWR,kBAChBhxH,KAAKwxH,WAAWj7D,KAAK,gCACvB,CAEAkgL,kBACEz2O,KAAKq2O,iBAAiBp9F,sBACtB1sF,EAAE,eAAeI,MAAM,OACzB,CAEAqsF,mBACEh5I,KAAKq2O,iBAAiBp9F,sBACtBj5I,KAAKq2O,iBAAiBr9F,kBACxB,CAEA09F,gCACEnqL,EAAE,mCAAmCI,MAAM,OAC7C,CAEAgqL,sBACE32O,KAAKq2O,iBAAiBp9F,sBACtB1sF,EAAE,oBAAoBI,MAAM,OAC9B,CAEAiqL,+BACE52O,KAAKq2O,iBAAiBp9F,sBACtB1sF,EAAE,6BAA6BI,MAAM,OACvC,CAEAkqL,qBACE72O,KAAKq2O,iBAAiBp9F,sBACtB1sF,EAAE,mBAAmBI,MAAM,OAC7B,CAEAmqL,qBACE92O,KAAKq2O,iBAAiBp9F,sBACtB1sF,EAAE,kBAAkBI,MAAM,OAC5B,CAEAoqL,qBACE/2O,KAAKq2O,iBAAiBp9F,sBACtB1sF,EAAE,kBAAkBI,MAAM,OAC5B,CAEAqqL,oBACEh3O,KAAKq2O,iBAAiBp9F,sBACtB1sF,EAAE,uBAAuBI,MAAM,OACjC,CAEAsqL,yBACEj3O,KAAKq2O,iBAAiBp9F,sBACtB1sF,EAAE,4BAA4BI,MAAM,OACtC,CAEAuqL,qBACEl3O,KAAKq2O,iBAAiBp9F,sBACtB1sF,EAAE,wBAAwBI,MAAM,OAClC,CAEAwqL,wBACEn3O,KAAKq2O,iBAAiBp9F,sBACtB1sF,EAAE,sBAAsBI,MAAM,OAChC,CAEAyqL,gCACEp3O,KAAKq2O,iBAAiBp9F,sBACtB1sF,EAAE,mCAAmCI,MAAM,OAC7C,CAEA0qL,wBACEr3O,KAAKq2O,iBAAiBp9F,sBACtB1sF,EAAE,2BAA2BI,MAAM,OACrC,CAEA2qL,wBACEt3O,KAAKq2O,iBAAiBp9F,sBACtB1sF,EAAE,sBAAsBI,MAAM,OAChC,CAEA4qL,cACEv3O,KAAKq2O,iBAAiBp9F,sBACtB1sF,EAAE,qBAAqBI,MAAM,OAC/B,CAEA6qL,iBACEx3O,KAAKs2O,sBAAsBL,UAC7B,CAEAtkH,YACE3xH,KAAKq2O,iBAAiBp9F,sBAClBj5I,KAAK6xH,YAAYrP,qBAAqBnG,kBACxCr8G,KAAKq2O,iBAAiB5hG,sBAExBz0I,KAAK+vI,YAAYpe,WACnB,CAEA8lH,eACEz3O,KAAKq2O,iBAAiBp9F,sBACtB1sF,EAAE,kBAAkBI,MAAM,OAC5B,CAEA+qL,qBACE13O,KAAKq2O,iBAAiBp9F,sBACtB1sF,EAAE,mBAAmBI,MAAM,OAC7B,CAEAgrL,mBACEprL,EAAE,QAAQqrL,YAAY,eACtBrvJ,IACF,CAEIspC,kBACF,OAAO7xH,KAAK+vI,YAAYle,WAC1B,CAEIgmH,2BACF,QAAS73O,KAAK6xH,YAAYlyB,kBAC5B,CAACx/F,kDAnIUi2O,GAA0BtoN,wOAA1BsoN,EAA0B7rM,mtFDbvCplC,sCAAiE,UAAjEA,CAAiE,SAElCA,iDAAS6Q,oBAAkB,GAAE7Q,+BAA2BA,6BAErFA,sCAA8B,SAA9BA,CAA8B,SAA9BA,CAA8B,UAA9BA,CAA8B,QAA9BA,CAA8B,YAKQA,sCAAoCA,2BAChEA,yCAAwCA,iCAAsBA,6BAEhEA,uCAAsD,QAAtDA,CAAsD,WACnBA,iCAAOA,iCAG5CA,mCACFA,2BAEAA,uCAAmB,WAEfA,iCACAA,yCAAwBA,8BAAIA,2BAC5BA,oCAA8B,YAEhCA,2BAEAA,uCAAiC,QAAjCA,CAAiC,WAG3BA,iCACAA,uCACFA,6BAEFA,oCAAI,WACUA,iDAAS6Q,sBAAoB,GACvC7Q,iCACAA,4CACFA,6BAGFA,oCAAI,WACUA,iDAAS6Q,sBAAoB,GACvC7Q,iCACAA,wCACFA,iCAKNA,oCAAI,WAC2BA,iDAAS6Q,aAAW,GAC/C7Q,iCAA2BA,yCAAwBA,kCAAQA,+BAI/DA,oCAAI,WAEAA,iCACAA,yCAAwBA,kCAAQA,2BAChCA,oCACFA,2BAEAA,uCAA4C,QAA5CA,CAA4C,WAEXA,iDAAS6Q,iCAA+B,GACnE7Q,iCACAA,uDACFA,6BAGFA,oCAAI,WACCA,iDAAS6Q,oBAAkB,GAC5B7Q,iCACAA,yCACFA,6BAGFA,0CAMFA,6BAGFA,oCAAI,WAC+CA,iDAAS6Q,uBAAqB,GAC7E7Q,iCACAA,yCAAwBA,qCAAWA,+BAGvCA,0CAMAA,oCAAI,WACoDA,iDAAS6Q,gBAAc,GAC3E7Q,iCACAA,yCAAyBA,2CAAgBA,+BAI7CA,0CAMAA,oCAAI,WACkDA,iDAAS6Q,yBAAuB,GAClF7Q,iCACAA,yCAAyBA,yCAAcA,+BAI3CA,0CAOAA,0CAYAA,0CAOAA,0CAOAA,oCAAI,WAEAA,iCACAA,yCAAwBA,8BAAIA,2BAC5BA,oCACFA,2BAEAA,uCAA4C,QAA5CA,CAA4C,WAEWA,iDAAS6Q,yBAAuB,GACjF7Q,iCACAA,yCACFA,6BAGFA,oCAAI,WACeA,iDAAS6Q,mBAAiB,GACzC7Q,iCACAA,iCACFA,6BAGFA,oCAAI,WACwCA,iDAAS6Q,kBAAgB,GACjE7Q,iCACAA,0DACFA,uCAQZA,wCAAiD,aAAjDA,CAAiD,aAAjDA,CAAiD,aAAjDA,CAAiD,gBAAjDA,CAAiD,eAKdA,+BAAOA,6BAElCA,wCAAwBA,kCAAOA,6BAGjCA,yCACEA,uCAEAA,+EACFA,2BAEAA,yCAA0B,iBAC2CA,iDAAS6Q,oBAAkB,GAAE7Q,iCAAMA,2BACtGA,4CAAmEA,iCAAMA,0CA/L9DA,iGAiEJA,2GAeDA,gFAaHA,gFAaAA,+EAQFA,uKAWEA,+EAOAA,iQCpIEixO,CAA0B,KCF1B0B,GAAkB,MAAzB,MAAOA,EAOXj4O,YACU26I,EACAvW,EACAkG,EACA3Y,GAHAxxH,YACAA,+BACAA,cACAA,kBAVFA,mCAAgC,IAAIooB,MAC5CpoB,mCAAgCA,KAAK+3O,8BAA8B9uL,eAE3DjpD,yCAAsC,IAAIooB,MAClDpoB,yCAAsCA,KAAKg4O,oCAAoC/uL,cAO5E,CAEHgvL,kBAAkBr8N,GACZA,EAAQs8N,mBACVl4O,KAAKmqI,OAAO3gF,QAAQ,6BAA8B,GAAI,CAAE+N,QAAS,OACjEv3D,KAAKwxH,WAAWj7D,KAAK,+BAGvB36C,EAAQ+jF,oBAAqB,EAC7B3/F,KAAK6xH,YAAYlyB,oBAAqB,EACtC3/F,KAAKikI,wBAAwBtI,sBAC7B37H,KAAKikI,wBAAwBpI,uBAC7B77H,KAAKm4O,yBAAyBv8N,EAChC,CAEAw8N,mBAAmBx8N,GACbA,EAAQs8N,mBACVl4O,KAAKmqI,OAAO3zE,QAAQ,+BACpBx2D,KAAKwxH,WAAWj7D,KAAK,gCAGvBv2D,KAAK6xH,YAAYlyB,oBAAqB,EACtC/jF,EAAQ+jF,oBAAqB,EAC7B3/F,KAAKikI,wBAAwBrI,iBAC7B57H,KAAKm4O,yBAAyBv8N,GAC9B5b,KAAKikI,wBAAwBlI,sBAC/B,CAEQo8G,yBAAyBv8N,GAC/B5b,KAAK+3O,8BAA8Bj/N,KAAK8C,EAC1C,CAEAy8N,qCACEr4O,KAAKg4O,oCAAoCl/N,MAC3C,CAEY+4G,kBACV,OAAO7xH,KAAKw6I,KAAK3oB,WACnB,CAAC1xH,kDAlDU23O,GAAkBhqN,qKAAlBgqN,EAAkB1yO,QAAlB0yO,EAAkB,qBAFjB,gBAEDA,CAAkB,qECY7B3yO,qCAAqBA,kHAASA,0CAAe,GAC3CA,oCAA0FA,uCAAcA,4BAAI,kEAG9GA,qCAAmD,SAM/CA,kHAASA,yCAAc,GACtBA,6CAAoBA,4BACtB,ECzBE,IAAMmzO,GAA8B,MAArC,MAAOA,EAGXz4O,YACUuqI,EACA2F,EACApmG,EACA4uM,GAHAv4O,4BACAA,mBACAA,WACAA,0BANVA,gBAAY,CAOT,CAEHipC,WACEjpC,KAAKu4O,mBAAmBC,8BAA8BjgO,UAAUqD,IAC1DA,EAAQ+jF,oBAAsB/jF,EAAQ68N,kBACxCz4O,KAAK04O,6BAEL14O,KAAK24O,6BAA2B,GAIpC34O,KAAKu4O,mBAAmBK,oCAAoCrgO,UAAU,KACpEvY,KAAK64O,gBAAc,EAEvB,CAEAxsL,kBACEE,EAAE,kBAAkBC,GAAG,eAAgB,KAGjCD,EAAE,qBAAqBk8B,SAAS,WAClC7nC,WAAW,KACT5gD,KAAKoqI,qBAAqB5Q,WAAS,EAClC,EAAC,EAGV,CAEAs/G,gBACM94O,KAAK+4O,YACP/4O,KAAKoqI,qBAAqB9F,cAAc00G,oBAAoB,KAC1Dh5O,KAAKoqI,qBAAqB9F,cAAclN,eAAa,GAEvDp3H,KAAK+4O,WAAY,GAEnB/4O,KAAKoqI,qBAAqB9F,cAAclN,gBAExCp3H,KAAKi5O,qBACLj5O,KAAKk5O,aACP,CAEQR,6BACN14O,KAAK2pC,IAAIyiB,gBACTpsD,KAAKm5O,eACL5sL,EAAE,yDAAyD6sL,IAAI,OACjE,CAEQT,8BACFpsL,EAAE,oCAAoCk8B,SAAS,WACjDl8B,EAAE,qDAAqD6sL,IAAI,OAE/D,CAEQP,iBACN74O,KAAK2pC,IAAIyiB,gBACTpsD,KAAKq5O,eACL9sL,EAAE,qDAAqD6sL,IAAI,OAC7D,CAEIvsI,eACF,OAAO7sG,KAAK+vI,YAAYle,YAAYhlB,QACtC,CAEIlN,yBACF,OAAO3/F,KAAK+vI,YAAYle,YAAYlyB,kBACtC,CAEAw5I,eACE5sL,EAAE,oBAAoBm8B,OACtBn8B,EAAE,2BAA2Bm8B,OAC7B1oF,KAAKk5O,aACP,CAEAG,eACE9sL,EAAE,oBAAoB4J,OACtBn2D,KAAKs5O,qBAGAt5O,KAAK2/F,oBACR3/F,KAAKu5O,aAET,CAEAN,qBACE1sL,EAAE,oBAAoBm8B,OACtBn8B,EAAE,2BAA2B4J,MAC/B,CAEAmjL,qBACE/sL,EAAE,2BAA2Bm8B,MAC/B,CAEAwwJ,cACE3sL,EAAE,mBAAmBm8B,OACrBn8B,EAAE,kBAAkBm8B,MACtB,CAEA6wJ,cACEhtL,EAAE,mBAAmB4J,OACrB5J,EAAE,kBAAkB4J,MACtB,CAACh2D,kDA5GUm4O,GAA8BxqN,uNAA9BwqN,EAA8B/tM,syBDV3CplC,qCAA4D,SAA5DA,CAA4D,SAOtDA,iDAAS6Q,gBAAc,GACvB7Q,oCACFA,6BAGFA,qCAAwB,SAMpBA,iDAAS6Q,gBAAc,GACvB7Q,sCACFA,6BAGFA,wCAIAA,wCAUFA,kCAdOA,mEAIAA,qRCjBMmzO,CAA8B,qECcjCnzO,uCACEA,sCAA0DA,8HAASA,+CAAoB,GACrFA,qCACEA,sBACFA,6BAEJA,8FALMA,qFAEAA,yECdT,IAAMq0O,GAAwB,MAA/B,MAAOA,EAOX35O,YACU45O,EACAC,EACA3pG,EACAyD,EACA6iG,GAJAr2O,sBACAA,oBACAA,mBACAA,qBACAA,uBACP,CAEHipC,WAEEjpC,KAAKqyB,SAAWryB,KAAKy5O,eAAe3vL,cACpC9pD,KAAKid,MAAQjd,KAAKy5O,eAAen0N,WACjCtlB,KAAKiqD,KAAOjqD,KAAKy5O,eAAe1vL,UACX,MAAjB/pD,KAAKqyB,eAAsCpkB,IAAlBjO,KAAKqyB,UAA9BryB,MAAwDA,KAAKid,QAG/Djd,KAAKkuB,KAAO,KACZluB,KAAK4pD,UAGP5pD,KAAK+uB,aAAe/uB,KAAKy5O,eAAeE,gBAAgBphO,UAAW+K,IACjEtjB,KAAKkuB,KAAO5K,IAGd,MAAM4K,EAAOluB,KAAK05O,aAAarrN,kBAC1BruB,KAAKkuB,MAAQA,IAChBluB,KAAKkuB,KAAO,GAAGA,EAAKO,aAAaP,EAAKQ,WAE1C,CAEAk7B,SACE5pD,KAAKy5O,eAAe7vL,QACtB,CAEA8lF,eAAexkI,GACTA,IAAOlL,KAAK6xH,YAAY3mH,KACtBlL,KAAK6xH,YAAYrP,qBAAqBnG,kBACxCr8G,KAAKq2O,iBAAiB5hG,sBAExBz0I,KAAK+vI,YAAYP,mBAAmBtkI,GACpClL,KAAKwzI,cAActP,oBAAoBlkI,KAAK+vI,YAAYle,aAE5D,CAEA4lH,eACEz3O,KAAKq2O,iBAAiBp9F,sBACtB1sF,EAAE,kBAAkBI,MAAM,OAC5B,CAEAitL,kBACE55O,KAAKq2O,iBAAiBp9F,sBACtB1sF,EAAE,gBAAgBI,MAAM,QACxBJ,EAAE,gBAAgB7gD,KAAK,YAAYmuO,UAAUnwJ,IAAI,mBAAoB,eACrEn9B,EAAE,gBAAgBC,GAAG,iBAAkB,WACrCD,EAAE,eAAemuG,OACnB,EACF,CAEI7oC,kBACF,OAAO7xH,KAAK+vI,YAAYle,WAC1B,CAEIioH,qBACF,OAAO95O,KAAK+vI,YAAYn4H,OAC1B,CAACzX,kDAvEUq5O,GAAwB1rN,wOAAxB0rN,EAAwBjvM,okCDbrCplC,sCAAmD,UAAnDA,CAAmD,WAG7CA,iCACFA,2BAEAA,sCAAoB,YAEhBA,+BACFA,2BAQAA,sCAAyD,UAErDA,sBACAA,mCACFA,2BAEAA,uCACEA,oDAOFA,6BAEFA,sCAGEA,iDAAS6Q,gBAAc,GAGtB7Q,iCACFA,6BAEHA,wCAAwB,WACHA,iDAAS6Q,mBAAiB,GAC1C7Q,iCACFA,2BACDA,wDACAA,uCAA+D,WAA/DA,CAA+D,WAGzDA,iCAA2BA,uBAAWA,iCACxCA,2BACAA,uCAA0C,QAA1CA,CAA0C,WAEnCA,iDAAS6Q,UAAQ,GAAG7Q,iCAA+BA,mCAAQA,gDAnClEA,oFAK4BA,kFA0BCA,iwBCrC1Bq0O,CAAwB,KCJxBO,GAAgB,MAAvB,MAAOA,EAGXl6O,YAAoBokI,kCAFpBjkI,OAASkiD,mBAE8D,CAEhE83L,8BACL,OAAOh6O,KAAKusD,EACVrK,aACA,OACAliD,KAAKusD,EAAErK,SAAU,YAAa,CAAEwiC,KAAM,KAAMu1J,OAAQ,aAAcC,YAAa,IAC/El6O,KAAKusD,EAAErK,gBAEX,CAMOi4L,+BACL,OAAOn6O,KAAKusD,EAAErK,SAAU,CAAEokH,OAAQ,EAAG8zE,OAAQ,YAAa11J,KAAM,cAAeu1J,OAAQ,MACzF,CAEAI,yBAAyBz+N,GAMvB,OAAO5b,KAAKusD,EACVrK,aACA,CACEwtI,UAAW9zK,EAAQ8zK,UACnBppB,OAAQ,IAAIpkH,UAAUtmC,EAAQwvK,WAAa,EAAGxvK,EAAQ0zN,aAAe,EAAG,EAAG1zN,EAAQwzK,YAAc,GACjGolB,QAAS,IAAItyJ,QAAQ,IAAK,KAC1B8yK,KAAM9yK,6BACN+3L,OAAQ,UACR5K,KAAM,mBAER,IAAIntL,WAAW,OAAQ,QACvB,IAAIA,WAAW,UAAW,GAAIlf,GACrBA,EAAEt3B,KAAKuuH,YAAc,EAAI,GAC/BqgH,WAEP,CAEAC,oCACE,OAAOv6O,KAAKw6O,8BAA8B,CAAEnmN,EAAG,IAAM6gE,EAAG,EAAGulJ,SAAS,GACtE,CAEAC,gCACE,OAAO16O,KAAKw6O,8BAA8B,CAAEnmN,EAAG,EAAG6gE,EAAG,EAAGylJ,QAAS,GACnE,CAEAC,+BACE,OAAO56O,KAAKw6O,8BAA8B,CAAEnmN,EAAG,EAAG6gE,EAAG,EAAGylJ,SAAS,GACnE,CAEAE,iCACE,OAAO76O,KAAKw6O,8BAA8B,CAAEnmN,EAAG,GAAK6gE,EAAG,EAAGulJ,SAAS,IACrE,CAEAK,mCACE,OAAO96O,KAAKw6O,8BAA8B,CAAEnmN,EAAG,EAAG6gE,EAAG,GAAKylJ,QAAS,IACrE,CAEAI,kCAAkCN,GAChC,OAAOz6O,KAAKw6O,8BAA8B,CAAEnmN,EAAG,GAAK6gE,EAAG,EAAGulJ,QAAS3tJ,GAAa2tJ,GAAWA,EAAU,IACvG,CAEAD,8BAA8B5+N,GAC5B,OAAO5b,KAAKusD,EACVrK,SACA,OACA,CACE84L,UAAW,IAAI94L,QAAQtmC,EAAQyY,EAAGzY,EAAQs5E,EAAGt5E,EAAQ++N,SAAW,EAAG/+N,EAAQ6+N,SAAW,IAExFz6O,KAAKusD,EACHrK,aACA,CACE9+C,KAAM,OACNkjK,OAAQ,EACR+oE,KAAM,yBAER,CACE4L,QAASj7O,KAAKusD,EACZrK,aACA,OACAliD,KAAKusD,EAAErK,SAAU,CACf+3L,OAAQ,cACRv1J,KAAM,YAGR1kF,KAAKusD,EACHrK,aACA,CAAEokH,OAAQ,GACV,IAAIpkH,WAAW,OAAQ,GAAIlf,GAClBhjC,KAAKk7O,wBAAwBl4M,EAAEt3B,KAAKupF,YAC1CqlJ,cAIT,IAAIp4L,WAAW,SAAU,GAAIlf,GACpBhjC,KAAKm7O,kBAAkBn4M,EAAEt3B,KAAKupF,YACpCqlJ,WACH,IAAIp4L,WAAW,OAAQ,GAAIlf,GAClBhjC,KAAKo7O,iBAAiBp4M,EAAEt3B,KAAKupF,YACnCqlJ,YAEL,IAAIp4L,WAAW,UAAW,GAAIlf,IAC5B,MAAQiyD,aAAcjyD,EAAEt3B,KACxB,OAAOupF,IAAcJ,WACpBylJ,WAEP,CAEQa,kBAAkBlmJ,GAKxB,OAJIA,IAAcJ,wBAIdI,IAAcJ,uBACT,MAGF,MACT,CAEQumJ,iBAAiBnmJ,GAKvB,OAJIA,IAAcJ,wBAIdI,IAAcJ,uBACT,SAGF,QACT,CAEQqmJ,wBAAwBjmJ,GAC9B,OAAIA,IAAcJ,uBACT,sBAGLI,IAAcJ,uBACT,sBAGF,gBACT,CAEAwmJ,iBAAiBC,GACf,OAAOt7O,KAAKusD,EACVrK,SACA,CAAE84L,UAAWM,EAAaN,UAAWv7F,OAAQ,WAC7Cz/I,KAAKusD,EACHrK,SACA,CACEuW,MAAO6iL,EAAa7iL,OAAS,EAC7BswB,OAAQuyJ,EAAavyJ,QAAU,EAC/BuoD,OAAQgqG,EAAahqG,OACrBluI,KAAMk4O,EAAal4O,MAAQ,GAC3BshF,KAAM,UACNu1J,OAAQ,cACRsB,aAAczuJ,GAAawuJ,EAAaC,cAAgBD,EAAaC,aAAeC,IACpFC,cAAc,EACdC,SAAUJ,EAAaI,UAAYx5L,mBAErC,IAAIA,WAAW,eAAgB,gBAC/B,CACE+4L,QAASj7O,KAAK27O,kBAAkBL,EAAaL,WAIrD,CAEAW,gBAAgBN,GACd,OAAOt7O,KAAKusD,EACVrK,SACA,OACA,CAAE84L,UAAWM,EAAaN,UAAWv7F,OAAQ,WAC7Cz/I,KAAKusD,EACHrK,SACA,CACEuW,MAAO6iL,EAAa7iL,OAAS,EAC7BswB,OAAQuyJ,EAAavyJ,QAAU,EAC/Bu9E,OAAQg1E,EAAah1E,QAAU,EAC/Bh1B,OAAQgqG,EAAahqG,OACrBluI,KAAMk4O,EAAal4O,KACnBshF,KAAM,UACNu1J,OAAQ,cACR4B,YAAY,EACZC,WAAYhvJ,GAAawuJ,EAAaQ,YAAcR,EAAaQ,WAAaN,IAC9EO,OAAQT,EAAaS,QAAU75L,kBAEjC,CACE+4L,QAASj7O,KAAK27O,kBAAkBL,EAAaL,UAE/C,IAAI/4L,WAAW,SAAU,WAG/B,CAEA85L,oBACE,OAAOh8O,KAAKusD,EACVrK,aACA,OACAliD,KAAKusD,EACHrK,SACA,CACE+3L,OAAQ,eAEV,IAAI/3L,WAAW,OAAQ,GAAIlf,GAClBA,EAAEi3F,YAAc,UAAY,gBAGvCj6H,KAAKusD,EACHrK,aACA,CACEokH,OAAQ,GAEV,IAAIpkH,WAAW,OAAQ,GAAIlf,GAClBA,EAAEi3F,YAAcj3F,EAAE5/B,KAAO,KAIxC,CAEAu4O,kBAAkBj4N,GAChB,OAAO1jB,KAAKusD,EACVrK,aACA,OACAliD,KAAKusD,EAAErK,SAAU,CACfwiC,KAAM,UACNu1J,OAAQ,gBAEVj6O,KAAKusD,EAAErK,aAAc,CACnBokH,OAAQ,EACR5iJ,SAGN,CAEAu4N,wBACE,MAAO,CACLC,YAAa,CAAC/zO,EAAGtH,KACfb,KAAKikI,wBAAwB3N,kBAAkBz1H,EAAK6K,KAAKR,GAAE,EAE7DixO,aAAc,CAACh0O,EAAGtH,KAChBb,KAAKikI,wBAAwB7N,mBAAmBv1H,EAAK6K,KAAKR,GAAE,EAGlE,CAEAkxO,WAAW1wO,GACT,OAAO,IAAIw2C,SAASx2C,EAAK2oB,EAAG3oB,EAAKwpF,EACnC,CAEAmnJ,sBACE,OAAO,IAAIn6L,WAAW,YAAa,YAAag2E,UAAqBA,EAAc,KAAqBA,EAC1G,CAGAokH,oBACE,OAAOt8O,KAAKusD,EACVrK,aACA,OACAliD,KAAKusD,EAAErK,SAAU,CACfwiC,KAAM,UACNu1J,OAAQ,aAEVj6O,KAAKusD,EACHrK,SACA,WACA,CAAEwsI,QAAS,IAAIxsI,UAAU,EAAG,EAAG,EAAG,IAClCliD,KAAKusD,EAAErK,aAAc,CAAE84L,UAAW94L,cAAgB,IAAIA,WAAW,OAAQ,SACzEliD,KAAKusD,EAAErK,aAAc,CAAE84L,UAAW94L,cAAgB,IAAIA,WAAW,OAAQ,mBACzEliD,KAAKusD,EACHrK,SACA,QACA,CAAEq6L,eAAgBr6L,0BAA2B84L,UAAW94L,aAAcokH,OAAQ,IAAIpkH,UAAU,EAAG,EAAG,EAAG,IACrGliD,KAAKusD,EAAErK,aAAc,CAAEs6L,IAAK,EAAGt4B,OAAQ,EAAG59C,OAAQ,IAAIpkH,UAAU,EAAG,EAAG,EAAG,GAAIx+B,KAAM,wBACnF1jB,KAAKusD,EACHrK,aACA,CAAEs6L,IAAK,EAAGt4B,OAAQ,EAAG59C,OAAQ,IAAIpkH,UAAU,EAAG,EAAG,EAAG,IACpD,IAAIA,WAAW,OAAQ,uBAEzBliD,KAAKusD,EACHrK,aACA,CAAEs6L,IAAK,EAAGt4B,OAAQ,EAAG59C,OAAQ,IAAIpkH,UAAU,EAAG,EAAG,EAAG,IACpD,IAAIA,WAAW,OAAQ,2BAGzBliD,KAAKusD,EAAErK,aAAc,CAAEs6L,IAAK,EAAGt4B,OAAQ,EAAG59C,OAAQ,IAAIpkH,UAAU,EAAG,EAAG,EAAG,GAAIx+B,KAAM,kBACnF1jB,KAAKusD,EACHrK,aACA,CAAEs6L,IAAK,EAAGt4B,OAAQ,EAAG59C,OAAQ,IAAIpkH,UAAU,EAAG,EAAG,EAAG,IACpD,IAAIA,WAAW,OAAQ,iBAEzBliD,KAAKusD,EACHrK,aACA,CAAEs6L,IAAK,EAAGt4B,OAAQ,EAAG59C,OAAQ,IAAIpkH,UAAU,EAAG,EAAG,EAAG,IACpD,IAAIA,WAAW,OAAQ,uBAKjC,CAEAu6L,yBACE,OAAOz8O,KAAKusD,EACVrK,aACA,OACAliD,KAAKusD,EAAErK,SAAU,CACfwiC,KAAM,UACNu1J,OAAQ,aAEVj6O,KAAKusD,EACHrK,SACA,WACA,CAAEwsI,QAAS,IAAIxsI,UAAU,EAAG,EAAG,EAAG,IAClCliD,KAAKusD,EAAErK,aAAc,CAAE84L,UAAW94L,cAAgB,IAAIA,WAAW,OAAQ,SACzEliD,KAAKusD,EAAErK,aAAc,CAAE84L,UAAW94L,cAAgB,IAAIA,WAAW,OAAQ,mBACzEliD,KAAKusD,EACHrK,SACA,QACA,CAAEq6L,eAAgBr6L,0BAA2B84L,UAAW94L,aAAcokH,OAAQ,IAAIpkH,UAAU,EAAG,EAAG,EAAG,IACrGliD,KAAKusD,EAAErK,aAAc,CAAEs6L,IAAK,EAAGt4B,OAAQ,EAAG59C,OAAQ,IAAIpkH,UAAU,EAAG,EAAG,EAAG,GAAIx+B,KAAM,kBACnF1jB,KAAKusD,EACHrK,aACA,CAAEs6L,IAAK,EAAGt4B,OAAQ,EAAG59C,OAAQ,IAAIpkH,UAAU,EAAG,EAAG,EAAG,IACpD,IAAIA,WAAW,OAAQ,iBAEzBliD,KAAKusD,EACHrK,aACA,CAAEs6L,IAAK,EAAGt4B,OAAQ,EAAG59C,OAAQ,IAAIpkH,UAAU,EAAG,EAAG,EAAG,IACpD,IAAIA,WAAW,OAAQ,qBAGzBliD,KAAKusD,EAAErK,aAAc,CAAEs6L,IAAK,EAAGt4B,OAAQ,EAAG59C,OAAQ,IAAIpkH,UAAU,EAAG,EAAG,EAAG,GAAIx+B,KAAM,gBACnF1jB,KAAKusD,EACHrK,aACA,CAAEs6L,IAAK,EAAGt4B,OAAQ,EAAG59C,OAAQ,IAAIpkH,UAAU,EAAG,EAAG,EAAG,IACpD,IAAIA,WAAW,OAAQ,gBAEzBliD,KAAKusD,EACHrK,aACA,CAAEs6L,IAAK,EAAGt4B,OAAQ,EAAG59C,OAAQ,IAAIpkH,UAAU,EAAG,EAAG,EAAG,IACpD,IAAIA,WAAW,OAAQ,oBAGzBliD,KAAKusD,EAAErK,aAAc,CAAEs6L,IAAK,EAAGt4B,OAAQ,EAAG59C,OAAQ,IAAIpkH,UAAU,EAAG,EAAG,EAAG,GAAIx+B,KAAM,aACnF1jB,KAAKusD,EACHrK,aACA,CAAEs6L,IAAK,EAAGt4B,OAAQ,EAAG59C,OAAQ,IAAIpkH,UAAU,EAAG,EAAG,EAAG,IACpD,IAAIA,WAAW,OAAQ,aAEzBliD,KAAKusD,EACHrK,aACA,CAAEs6L,IAAK,EAAGt4B,OAAQ,EAAG59C,OAAQ,IAAIpkH,UAAU,EAAG,EAAG,EAAG,IACpD,IAAIA,WAAW,OAAQ,mBAKjC,CAEAw6L,2BACE,OAAO18O,KAAKusD,EACVrK,aACA,OACAliD,KAAKusD,EAAErK,SAAU,CACfwiC,KAAM,UACNu1J,OAAQ,aAEVj6O,KAAKusD,EACHrK,SACA,WACA,CAAEwsI,QAAS,IAAIxsI,UAAU,EAAG,EAAG,EAAG,IAClCliD,KAAKusD,EAAErK,aAAc,CAAE84L,UAAW94L,cAAgB,IAAIA,WAAW,OAAQ,SACzEliD,KAAKusD,EAAErK,aAAc,CAAE84L,UAAW94L,cAAgB,IAAIA,WAAW,OAAQ,mBACzEliD,KAAKusD,EACHrK,SACA,QACA,CAAEq6L,eAAgBr6L,0BAA2B84L,UAAW94L,aAAcokH,OAAQ,IAAIpkH,UAAU,EAAG,EAAG,EAAG,IACrGliD,KAAKusD,EAAErK,aAAc,CAAEs6L,IAAK,EAAGt4B,OAAQ,EAAG59C,OAAQ,IAAIpkH,UAAU,EAAG,EAAG,EAAG,GAAIx+B,KAAM,aACnF1jB,KAAKusD,EACHrK,aACA,CAAEs6L,IAAK,EAAGt4B,OAAQ,EAAG59C,OAAQ,IAAIpkH,UAAU,EAAG,EAAG,EAAG,IACpD,IAAIA,WAAW,OAAQ,aAEzBliD,KAAKusD,EACHrK,aACA,CAAEs6L,IAAK,EAAGt4B,OAAQ,EAAG59C,OAAQ,IAAIpkH,UAAU,EAAG,EAAG,EAAG,IACpD,IAAIA,WAAW,OAAQ,iBAGzBliD,KAAKusD,EAAErK,aAAc,CACnBs6L,IAAK,EACLt4B,OAAQ,EACR59C,OAAQ,IAAIpkH,UAAU,EAAG,EAAG,EAAG,GAC/Bx+B,KAAM,2BAER1jB,KAAKusD,EACHrK,aACA,CAAEs6L,IAAK,EAAGt4B,OAAQ,EAAG59C,OAAQ,IAAIpkH,UAAU,EAAG,EAAG,EAAG,IACpD,IAAIA,WAAW,OAAQ,aAEzBliD,KAAKusD,EACHrK,aACA,CAAEs6L,IAAK,EAAGt4B,OAAQ,EAAG59C,OAAQ,IAAIpkH,UAAU,EAAG,EAAG,EAAG,IACpD,IAAIA,WAAW,OAAQ,iBAGzBliD,KAAKusD,EAAErK,aAAc,CAAEs6L,IAAK,EAAGt4B,OAAQ,EAAG59C,OAAQ,IAAIpkH,UAAU,GAAI,EAAG,EAAG,GAAIx+B,KAAM,QACpF1jB,KAAKusD,EACHrK,aACA,CAAEs6L,IAAK,EAAGt4B,OAAQ,EAAG59C,OAAQ,IAAIpkH,UAAU,GAAI,EAAG,EAAG,IACrD,IAAIA,WAAW,OAAQ,QAEzBliD,KAAKusD,EACHrK,aACA,CAAEs6L,IAAK,EAAGt4B,OAAQ,EAAG59C,OAAQ,IAAIpkH,UAAU,GAAI,EAAG,EAAG,IACrD,IAAIA,WAAW,OAAQ,cAKjC,CAAC/hD,kDA5aU45O,GAAgBjsN,0FAAhBisN,EAAgB30O,QAAhB20O,EAAgB,mBAAhBA,CAAgB,KCTtB,IAAK4C,GAEX,OAFWA,QAAkB,KAC5BA,kCADUA,IAEX,GCMM,IAAMC,GAAgC,MAAvC,MAAOA,EAGX/8O,YAAoBokI,EAA0D44G,GAA1D78O,+BAA0DA,wBAF9EA,OAASkiD,mBAE0G,CAGnH46L,sBACE,OAAO98O,KAAKusD,EAAErK,YAAa,WAC7B,CAEA66L,qBACE,OAAO/8O,KAAKusD,EAAErK,WAAY,oBAAqB,CAC7C86L,WAAW,EACXC,wBAAyB/6L,eACzBg7L,UAAW/0O,IACTnI,KAAKikI,wBAAwB5L,UAAUlwH,EAAC,EAI1C,yBAA0B,GAC1B,iCAAkC+5C,2BAClCi7L,uBAAwBh1O,IACtB,MAAM28H,EAAK38H,EAAEmwH,QAAQ/2D,SAErB,KAAOujE,EAAGhsH,QACR,GAAIgsH,EAAG54H,MAAMR,KAAK6/E,WAAaoxJ,mBAQ/B38O,KAAKikI,wBAAwBhN,YAAY6N,EAAG54H,MAAMR,UARlD,CACE,MAAM42G,EAAUwiB,EAAG54H,MAAMo2G,QACnB86H,EAAYt4G,EAAG54H,MAAMmxO,WAAW,QACtC/6H,EAAQyY,eAAeuiH,cAAcF,EACrC,CAIoD,EAG1DG,kBAAmBp1O,IACjB,MAAM28H,EAAK38H,EAAEmwH,QAAQ/2D,SAGrB,IAAI+zB,GAAe,EAEnB,KAAOwvC,EAAGhsH,QAAQ,CAChB,MAAMyc,EAAOuvG,EAAG54H,OAEXqpB,EAAK2iG,WAAa3iG,EAAK7pB,KAAK6/E,WAAaoxJ,qBAK9CrnJ,GAAe,EACX//D,aAAgB2sB,QAClBliD,KAAKikI,wBAAwB5M,YAAY9hG,EAAK7pB,KAAKR,IAC1CqqB,aAAgB2sB,SACzBliD,KAAKikI,wBAAwBtN,YAAYphG,EAAK7pB,MAAI,CAIlD4pF,GACFt1F,KAAKikI,wBAAwB9N,kBAAgB,EAGjDqnH,eAAgBr1O,IACd,MAAM28H,EAAK38H,EAAEmwH,QAAQ/2D,SAErB,KAAOujE,EAAGhsH,QAAQ,CAChB,MAAMyc,EAAOuvG,EAAG54H,MAEZqpB,aAAgB2sB,SAClBliD,KAAKikI,wBAAwB/M,YAAY3hG,EAAK7pB,KAAI,IAK5D,CAEA+xO,0BACE,OAAOz9O,KAAKusD,EACVrK,aACA,OACAliD,KAAKusD,EAAErK,SAAU,CACfwiC,KAAM,UACNu1J,OAAQ,gBAEVj6O,KAAKusD,EACHrK,SACA,WACAliD,KAAKusD,EACHrK,aACA,CAAEokH,OAAQ,IAAIpkH,UAAU,EAAG,EAAG,EAAG,GAAI84L,UAAW94L,eAAgBmtL,KAAM,wBACtE,IAAIntL,WAAW,OAAQ,GAAI3d,GAAKA,EAAEnhC,OAEpCpD,KAAKusD,EACHrK,aACA,CAAEokH,OAAQ,IAAIpkH,UAAU,EAAG,EAAG,EAAG,GAAI84L,UAAW94L,cAChD,IAAIA,WAAW,OAAQ,GAAI3d,GAAMA,EAAE4vF,eAAe7gC,uBAAyB/uD,EAAE4vF,eAAe10G,WAAa,IACzG,IAAIyiC,WAAW,UAAW,GAAI3d,GAAKA,EAAE4vF,eAAe7gC,yBAGtDtzF,KAAKusD,EACHrK,SACA,WACA,CAAEokH,OAAQ,IAAIpkH,UAAU,IACxB,IAAIA,WAAW,YAAa,GAAI3d,GAAKA,EAAE4vF,eAAeN,gBACtD,CACE6pH,aAAc19O,KAAKusD,EACjBrK,SACA,QACA,CACEq6L,eAAgBr6L,0BAChBokH,OAAQ,IAAIpkH,UAAU,EAAG,EAAG,EAAG,GAC/B84L,UAAW94L,cAEbliD,KAAKusD,EACHrK,SACA,WACA,CAAEs6L,IAAK,EAAGxB,UAAW94L,cACrBliD,KAAKusD,EACHrK,aACA,CAAEgiK,OAAQ,EAAG59C,OAAQ,IAAIpkH,UAAU,EAAG,EAAG,EAAG,GAAI84L,UAAW94L,cAC3D,IAAIA,WAAW,OAAQ,iBAEzBliD,KAAKusD,EACHrK,aACA,CAAEgiK,OAAQ,EAAG59C,OAAQ,IAAIpkH,UAAU,EAAG,EAAG,EAAG,GAAI84L,UAAW94L,cAC3D,IAAIA,WAAW,OAAQ,kBAEzBliD,KAAKusD,EAAErK,aAAc,CAAEgiK,OAAQ,EAAG59C,OAAQ,IAAIpkH,UAAU,EAAG,EAAG,EAAG,IAAM,IAAIA,WAAW,OAAQ,SAC9F,IAAIA,WAAW,UAAW,GAAI3d,KAAOA,EAAEwvF,gBAGzC/zH,KAAKusD,EACHrK,SACA,WACA,CAAEs6L,IAAK,EAAGxB,UAAW94L,cACrBliD,KAAKusD,EACHrK,aACA,CAAEgiK,OAAQ,EAAG59C,OAAQ,IAAIpkH,UAAU,EAAG,EAAG,EAAG,GAAI84L,UAAW94L,cAC3D,IAAIA,WAAW,OAAQ,mBAEzBliD,KAAKusD,EACHrK,aACA,CAAEgiK,OAAQ,EAAG59C,OAAQ,IAAIpkH,UAAU,EAAG,EAAG,EAAG,GAAI84L,UAAW94L,cAC3D,IAAIA,WAAW,OAAQ,oBAEzBliD,KAAKusD,EAAErK,aAAc,CAAEgiK,OAAQ,EAAG59C,OAAQ,IAAIpkH,UAAU,EAAG,EAAG,EAAG,IAAM,IAAIA,WAAW,OAAQ,SAC9F,IAAIA,WAAW,UAAW,GAAI3d,KAAOA,EAAEy5D,mBAAqBz5D,EAAEwvF,oBAO5E,CAGA4pH,kBACE,OAAO39O,KAAKusD,EACVrK,QACA,CACE07L,QAAS17L,mBACT27L,OAAQ,EACRC,YAAY,EACZC,UAAW77L,YACX87L,UAAW,cAEb,IAAI97L,WAAW,UAAU+7L,aACzBj+O,KAAKusD,EACHrK,SACA,IAAIA,WAAW,SAAU,GAAI3d,GACpBA,EAAEovF,WAAa,OAASpvF,EAAEmzE,aAGnC,IAAIx1D,WAAW,cAAe,GAAI3d,GACzBA,EAAEovF,WAAa,EAAI,GAG5B,IAAIzxE,WAAW,kBAAmB,GAAI3d,GAC7BA,EAAEovF,WAAa,CAAC,EAAG,GAAK,OAGnC3zH,KAAKusD,EACHrK,SACA,CAAEg8L,QAAS,gBACX,IAAIh8L,WAAW,SAAU,GAAI3d,GACpBA,EAAEovF,WAAa,OAASpvF,EAAEmzE,aAChCumI,aAEH,IAAI/7L,WAAW,cAAe,GAAI3d,GACzBA,EAAEovF,WAAa,EAAI,IAG9B3zH,KAAKusD,EACHrK,WACA,CAAEuW,MAAO,GAAIswB,OAAQ,GAAI7wE,OAAQ+2E,8BACjC,IAAI/sC,WAAW,UAAW,GAAIg3E,KACnBA,EAAKphB,kBAGlB,CACEokI,YAAa,CAAC/zO,EAAG+wH,KACfl5H,KAAKikI,wBAAwB1N,kBAAkB2C,EAAKxtH,KAAKR,GAAE,EAG7D+vO,QAASj7O,KAAK68O,iBAAiBP,oBAE/B6B,2BAA4Bn+O,KAAKusD,EAC/BrK,aACAliD,KAAKusD,EAAErK,SAAU,CAAEk8L,aAAa,EAAMnE,OAAQ,aAAcC,YAAa,IACzEl6O,KAAKusD,EAAErK,SAAU,CAAEg8L,QAAS,eAAgBhE,YAAa,EAAGD,OAAQ,iBAI5E,CAEAoE,uBACE,OAAOr+O,KAAKusD,EACVrK,QACA,CACE07L,QAAS17L,mBACT27L,OAAQ,EACRC,YAAY,EACZC,UAAW77L,YACX87L,UAAW,cAEb,IAAI97L,WAAW,UAAU+7L,aAEzBj+O,KAAKusD,EACHrK,SACA,IAAIA,WAAW,SAAU,GAAI3d,GACpBA,EAAEovF,WAAa,OAASpvF,EAAEmzE,aAGnC,IAAIx1D,WAAW,cAAe,GAAI3d,GACzBA,EAAEovF,WAAa,EAAI,GAG5B,IAAIzxE,WAAW,kBAAmB,GAAI3d,GAC7BA,EAAEovF,WAAa,CAAC,EAAG,GAAK,OAGnC3zH,KAAKusD,EACHrK,SACA,CAAEg8L,QAAS,gBAEX,IAAIh8L,WAAW,SAAU,GAAI3d,GACpBA,EAAEovF,WAAa,OAASpvF,EAAEmzE,aAChCumI,aAEH,IAAI/7L,WAAW,cAAe,GAAI3d,GACzBA,EAAEovF,WAAa,EAAI,IAG9B3zH,KAAKusD,EACHrK,WACA,CAAEuW,MAAO,GAAIswB,OAAQ,GAAI7wE,OAAQ+2E,8BACjC,IAAI/sC,WAAW,UAAW,GAAIg3E,KACnBA,EAAKphB,kBAGlB,CACEokI,YAAa,CAAC/zO,EAAG+wH,KACfl5H,KAAKikI,wBAAwBxN,uBAAuByC,EAAKxtH,KAAKR,GAAE,EAGlE+vO,QAASj7O,KAAK68O,iBAAiBJ,yBAE/B0B,2BAA4Bn+O,KAAKusD,EAC/BrK,aACAliD,KAAKusD,EAAErK,SAAU,CAAEk8L,aAAa,EAAMnE,OAAQ,aAAcC,YAAa,IACzEl6O,KAAKusD,EAAErK,SAAU,CAAEg8L,QAAS,eAAgBhE,YAAa,EAAGD,OAAQ,iBAI5E,CAEAqE,yBACE,OAAOt+O,KAAKusD,EACVrK,QACA,CACE07L,QAAS17L,mBACT27L,OAAQ,EACRC,YAAY,EACZC,UAAW77L,YACX87L,UAAW,cAEb,IAAI97L,WAAW,UAAU+7L,aAEzBj+O,KAAKusD,EACHrK,SACA,IAAIA,WAAW,SAAU,GAAI3d,GACpBA,EAAEovF,WAAa,OAASpvF,EAAEmzE,aAGnC,IAAIx1D,WAAW,cAAe,GAAI3d,GACzBA,EAAEovF,WAAa,EAAI,GAG5B,IAAIzxE,WAAW,kBAAmB,GAAI3d,GAC7BA,EAAEovF,WAAa,CAAC,EAAG,GAAK,OAGnC3zH,KAAKusD,EACHrK,SACA,CAAEg8L,QAAS,gBAEX,IAAIh8L,WAAW,SAAU,GAAI3d,GACpBA,EAAEovF,WAAa,OAASpvF,EAAEmzE,aAChCumI,aAEH,IAAI/7L,WAAW,cAAe,GAAI3d,GACzBA,EAAEovF,WAAa,EAAI,IAG9B3zH,KAAKusD,EACHrK,WACA,CAAEuW,MAAO,GAAIswB,OAAQ,GAAI7wE,OAAQ+2E,8BACjC,IAAI/sC,WAAW,UAAW,GAAIg3E,KACnBA,EAAKphB,kBAGlB,CACEokI,YAAa,CAAC/zO,EAAG+wH,KACfl5H,KAAKikI,wBAAwBvN,yBAAyBwC,EAAKxtH,KAAKR,GAAE,EAGpE+vO,QAASj7O,KAAK68O,iBAAiBH,2BAE/ByB,2BAA4Bn+O,KAAKusD,EAC/BrK,aACAliD,KAAKusD,EAAErK,SAAU,CAAEk8L,aAAa,EAAMnE,OAAQ,aAAcC,YAAa,IACzEl6O,KAAKusD,EAAErK,SAAU,CAAEg8L,QAAS,eAAgBhE,YAAa,EAAGD,OAAQ,iBAI5E,CAGAsE,yBACE,OAAOv+O,KAAKusD,EACVrK,aACA,WACAliD,KAAKusD,EACH,oBACAvsD,KAAKusD,EAAErK,aAAc,QACrB,CACEuvL,MAAOtpO,IACLA,EAAEm6G,QAAQyY,eAAewnG,MAAI,GAGjC,IAAIrgL,WAAW,UAAW,GAAI1T,GACrBA,EAAE8zE,QAAQyY,eAAeyjH,WAC/BlE,YAELt6O,KAAKusD,EACH,oBACAvsD,KAAKusD,EAAErK,aAAc,QACrB,CACEuvL,MAAOtpO,IACLA,EAAEm6G,QAAQyY,eAAeynG,MAAI,GAGjC,IAAItgL,WAAW,UAAW,GAAI1T,GACrBA,EAAE8zE,QAAQyY,eAAe0jH,WAC/BnE,YAGT,CAEAoE,mBACE,OAAO1+O,KAAKusD,EAAErK,mBAAoB,CAChCy8L,uBAAwB,WACxBC,qBAAsB,SACtBlmH,cAAe,GACfC,cAAe,GACfkmH,gBAAiB,WAErB,CAKAC,2BACE,OAAO9+O,KAAKusD,EACVrK,QACA,OACA,CACEi8L,2BAA4Bn+O,KAAK68O,iBAAiB7C,8BAClD+E,mBAAoB,QAEtB/+O,KAAKusD,EACHrK,SACA,OACAliD,KAAK68O,iBAAiB1C,+BAEtBn6O,KAAKusD,EACHrK,SACA,aACAliD,KAAK68O,iBAAiBxC,yBAAyB,CAAE3qD,UAAW,QAAStE,UAAW,IAChFprL,KAAKusD,EACHrK,SACA,OACAliD,KAAKusD,EAAErK,WAAY,CACjB9+C,KAAM,OACN47O,YAAa,IAAI98L,QAAQ,GAAI,IAC7BokH,OAAQ,EACRpuJ,OAAQ+2E,+BAEVjvF,KAAKusD,EAAErK,SAAU,YAAa,CAAEuW,MAAO,GAAIswB,OAAQ,GAAIrE,KAAM,cAAeu1J,OAAQ,OACpFj6O,KAAK68O,iBAAiBxB,iBAAiB,CACrCL,UAAW,IAAI94L,QAAQ,EAAG,IAC1Bq5L,aAAc,EACdjqG,OAAQ,MACR2pG,QAAS,QAEXj7O,KAAK68O,iBAAiBnC,mCAK5B,IAAIx4L,WAAW,WAAY,WAAYliD,KAAK68O,iBAAiBT,YAAY6B,aACzEj+O,KAAK68O,iBAAiBR,sBACtBr8O,KAAK68O,iBAAiBZ,wBACtB,CAAEhB,QAASj7O,KAAK68O,iBAAiBb,qBAErC,CAEAiD,kBACE,OAAOj/O,KAAKusD,EACVrK,QACA,OACA,CACEi8L,2BAA4Bn+O,KAAK68O,iBAAiB7C,8BAClD+E,mBAAoB,QAEtB/+O,KAAKusD,EACHrK,SACA,OACAliD,KAAK68O,iBAAiB1C,+BACtBn6O,KAAKusD,EACHrK,SACA,aACAliD,KAAK68O,iBAAiBxC,yBAAyB,CAAE3qD,UAAW,QAAStE,UAAW,IAEhFprL,KAAKusD,EACHrK,SACA,OACAliD,KAAKusD,EAAErK,WAAY,CACjB9+C,KAAM,OACN47O,YAAa,IAAI98L,QAAQ,GAAI,IAC7BokH,OAAQ,EACRpuJ,OAAQ+2E,sBAEVjvF,KAAK68O,iBAAiBxB,iBAAiB,CACrCL,UAAW,IAAI94L,QAAQ,EAAG,IAC1Bq5L,aAAc,EACdjqG,OAAQ,MACR2pG,QAAS,QAEXj7O,KAAK68O,iBAAiBnC,mCAI5B,IAAIx4L,WAAW,WAAY,WAAYliD,KAAK68O,iBAAiBT,YAAY6B,aACzEj+O,KAAK68O,iBAAiBR,sBACtBr8O,KAAK68O,iBAAiBZ,wBACtB,CAAEhB,QAASj7O,KAAK68O,iBAAiBb,qBAErC,CAEAkD,mBACE,OAAOl/O,KAAKusD,EACVrK,QACA,OACA,CACEi8L,2BAA4Bn+O,KAAK68O,iBAAiB7C,8BAClD+E,mBAAoB,OAEpBI,cAAe,CAACt+O,EAAMq4H,EAAMmY,KAC1B,GAAoB,OAAhBA,EAAKC,QAAmBzwI,EAAKw6H,gBAAgB5nH,MAAQ,EAAG,CAC1D,MAAMygN,EAAOrzN,EAAKw8O,WAAW,QACvBzsG,EAAQ/vI,EAAKw8O,WAAW,MACxB18M,EAAS9/B,EAAKw8O,WAAW,OAEzB+B,GAAclrB,EAAKnrI,OAAS,GAAKmrI,EAAKnrI,OAC5CmrI,EAAKz7J,OAAS2mL,EACdlrB,EAAKnrI,QAAUq2J,EAEfxuG,EAAMn4E,OAAS2mL,EACfxuG,EAAM7nD,QAAUq2J,EAEhBz+M,EAAO83B,OAAS2mL,EAChBz+M,EAAOooD,QAAUq2J,IAIrBC,iBAAkB,CAACx+O,EAAMq4H,EAAMmY,KAC7B,GAAoB,OAAhBA,EAAKC,QAAmBzwI,EAAKw6H,gBAAgB5nH,OAAS,EAAG,CAC3D,MAAMygN,EAAOrzN,EAAKw8O,WAAW,QACvBzsG,EAAQ/vI,EAAKw8O,WAAW,MACxB18M,EAAS9/B,EAAKw8O,WAAW,OAEzB+B,GAAclrB,EAAKnrI,OAAS,GAAKmrI,EAAKnrI,OAC5CmrI,EAAKz7J,OAAS2mL,EACdlrB,EAAKnrI,QAAUq2J,EAEfxuG,EAAMn4E,OAAS2mL,EACfxuG,EAAM7nD,QAAUq2J,EAEhBz+M,EAAO83B,OAAS2mL,EAChBz+M,EAAOooD,QAAUq2J,KAIvBp/O,KAAKusD,EACHrK,SACA,OACAliD,KAAK68O,iBAAiB1C,+BAEtBn6O,KAAKusD,EACHrK,SACA,WACAliD,KAAK68O,iBAAiBxC,yBAAyB,CAAE3qD,UAAW,UAC5D1vL,KAAKusD,EACHrK,SACA,OACAliD,KAAKusD,EAAErK,WAAY,CACjB9+C,KAAM,OACN47O,YAAa,IAAI98L,QAAQ,GAAI,IAC7BhqC,OAAQ+2E,uBAEVjvF,KAAK68O,iBAAiBjB,gBAAgB,CACpCZ,UAAW,IAAI94L,QAAQ,EAAG,IAC1BovF,OAAQ,KACRluI,KAAM,KACNq1D,MAAO,EACPswB,OAAQ,GACRkyJ,QAAS,OAEXj7O,KAAK68O,iBAAiBxB,iBAAiB,CACrCL,UAAW,IAAI94L,QAAQ,IAAM,IAC7BovF,OAAQ,MACRluI,KAAM,MACNm4O,aAAc,EACd9iL,MAAO,EACPswB,OAAQ,EACRkyJ,QAAS,QAEXj7O,KAAK68O,iBAAiBnC,mCAI5B,IAAIx4L,WAAW,WAAY,WAAYliD,KAAK68O,iBAAiBT,YAAY6B,aACzEj+O,KAAK68O,iBAAiBR,sBACtBr8O,KAAK68O,iBAAiBZ,wBACtB,CAAEhB,QAASj7O,KAAK68O,iBAAiBb,qBAErC,CAEAsD,2BACE,OAAOt/O,KAAKusD,EACVrK,QACA,OACA,CACEi8L,2BAA4Bn+O,KAAK68O,iBAAiB7C,8BAClD+E,mBAAoB,OAEpBI,cAAe,CAACt+O,EAAMq4H,EAAMmY,KAC1B,GAAoB,OAAhBA,EAAKC,QAAmBzwI,EAAKw6H,gBAAgB5nH,MAAQ,EAAG,CAC1D,MAAMygN,EAAOrzN,EAAKw8O,WAAW,QACvBzsG,EAAQ/vI,EAAKw8O,WAAW,MAExB+B,GAAclrB,EAAKnrI,OAAS,GAAKmrI,EAAKnrI,OAC5CmrI,EAAKz7J,OAAS2mL,EACdlrB,EAAKnrI,QAAUq2J,EAEfxuG,EAAMn4E,OAAS2mL,EACfxuG,EAAM7nD,QAAUq2J,IAIpBC,iBAAkB,CAACx+O,EAAMq4H,EAAMmY,KAC7B,GAAoB,OAAhBA,EAAKC,QAAmBzwI,EAAKw6H,gBAAgB5nH,OAAS,EAAG,CAC3D,MAAMygN,EAAOrzN,EAAKw8O,WAAW,QACvBzsG,EAAQ/vI,EAAKw8O,WAAW,MAExB+B,GAAclrB,EAAKnrI,OAAS,GAAKmrI,EAAKnrI,OAC5CmrI,EAAKz7J,OAAS2mL,EACdlrB,EAAKnrI,QAAUq2J,EAEfxuG,EAAMn4E,OAAS2mL,EACfxuG,EAAM7nD,QAAUq2J,KAItBp/O,KAAKusD,EACHrK,SACA,OACAliD,KAAK68O,iBAAiB1C,+BACtBn6O,KAAKusD,EACHrK,SACA,WACAliD,KAAK68O,iBAAiBxC,yBAAyB,CAAE3qD,UAAW,WAC5D1vL,KAAKusD,EACHrK,SACA,OACAliD,KAAKusD,EAAErK,WAAY,CACjB9+C,KAAM,OACN47O,YAAa,IAAI98L,QAAQ,GAAI,IAC7BhqC,OAAQ+2E,+BAEVjvF,KAAK68O,iBAAiBjB,gBAAgB,CACpCZ,UAAW,IAAI94L,QAAQ,EAAG,IAC1BovF,OAAQ,KACRluI,KAAM,KACNq1D,MAAO,EACPswB,OAAQ,GACRkyJ,QAAS,OAEXj7O,KAAK68O,iBAAiB/B,sCAI5B,IAAI54L,WAAW,WAAY,WAAYliD,KAAK68O,iBAAiBT,YAAY6B,aACzEj+O,KAAK68O,iBAAiBR,sBACtBr8O,KAAK68O,iBAAiBZ,wBACtB,CAAEhB,QAASj7O,KAAK68O,iBAAiBb,qBAErC,CAEAuD,sBACE,OAAOv/O,KAAKusD,EACVrK,QACA,OACA,CACEi8L,2BAA4Bn+O,KAAK68O,iBAAiB7C,8BAClD+E,mBAAoB,QAEtB/+O,KAAKusD,EACHrK,SACA,OACAliD,KAAK68O,iBAAiB1C,+BACtBn6O,KAAKusD,EACHrK,SACA,aACAliD,KAAK68O,iBAAiBxC,yBAAyB,CAAE3qD,UAAW,QAAStE,UAAW,IAChFprL,KAAKusD,EACHrK,SACA,OACAliD,KAAKusD,EAAErK,WAAY,CACjB9+C,KAAM,OACN47O,YAAa,IAAI98L,QAAQ,GAAI,IAC7BokH,OAAQ,EACRpuJ,OAAQ+2E,0BAEVjvF,KAAKusD,EAAErK,SAAU,SAAU,CAAEuW,MAAO,GAAIswB,OAAQ,GAAIrE,KAAM,cAAeu1J,OAAQ,OACjFj6O,KAAK68O,iBAAiBxB,iBAAiB,CACrCL,UAAW,IAAI94L,QAAQ,EAAG,IAC1Bq5L,aAAc,EACdjqG,OAAQ,MACR2pG,QAAS,QAEXj7O,KAAK68O,iBAAiBnC,mCAI5B,IAAIx4L,WAAW,WAAY,WAAYliD,KAAK68O,iBAAiBT,YAAY6B,aACzEj+O,KAAK68O,iBAAiBR,sBACtBr8O,KAAK68O,iBAAiBZ,wBACtB,CAAEhB,QAASj7O,KAAK68O,iBAAiBb,qBAErC,CAEAwD,kBACE,OAAOx/O,KAAKusD,EACVrK,QACA,OACA,CACEi8L,2BAA4Bn+O,KAAK68O,iBAAiB7C,8BAClD+E,mBAAoB,QAGtB/+O,KAAKusD,EACHrK,SACA,OACAliD,KAAK68O,iBAAiB1C,+BACtBn6O,KAAKusD,EACHrK,SACA,WACAliD,KAAK68O,iBAAiBxC,yBAAyB,CAAE3qD,UAAW,SAAU4/C,YAAa,IACnFtvO,KAAKusD,EACHrK,SACA,OACAliD,KAAKusD,EAAErK,WAAY,CACjB9+C,KAAM,OACN47O,YAAa,IAAI98L,QAAQ,GAAI,IAC7BokH,OAAQ,EACRpuJ,OAAQ+2E,sBAEVjvF,KAAK68O,iBAAiBjB,gBAAgB,CACpCZ,UAAW,IAAI94L,QAAQ,EAAG,IAC1B45L,WAAY,EACZxqG,OAAQ,KACR2pG,QAAS,OAEXj7O,KAAK68O,iBAAiBxB,iBAAiB,CACrCL,UAAW,IAAI94L,QAAQ,EAAG,IAC1Bq5L,aAAc,EACdjqG,OAAQ,MACR2pG,QAAS,QAEXj7O,KAAK68O,iBAAiB9B,uCAI5B,IAAI74L,WAAW,WAAY,WAAYliD,KAAK68O,iBAAiBT,YAAY6B,aACzEj+O,KAAK68O,iBAAiBR,sBACtBr8O,KAAK68O,iBAAiBZ,wBACtB,CACEhB,QAASj7O,KAAKy9O,2BAGpB,CAEAgC,+BACE,OAAOz/O,KAAKusD,EACVrK,QACA,OACA,CACEi8L,2BAA4Bn+O,KAAK68O,iBAAiB7C,8BAClD+E,mBAAoB,QAGtB/+O,KAAKusD,EACHrK,SACA,OACAliD,KAAK68O,iBAAiB1C,+BACtBn6O,KAAKusD,EACHrK,SACA,WACAliD,KAAK68O,iBAAiBxC,yBAAyB,CAAE3qD,UAAW,WAC5D1vL,KAAKusD,EACHrK,SACA,OACAliD,KAAKusD,EAAErK,WAAY,CACjB9+C,KAAM,OACN47O,YAAa,IAAI98L,QAAQ,GAAI,IAC7BhqC,OAAQ+2E,mCAEVjvF,KAAKusD,EAAErK,SAAU,SAAU,CAAEuW,MAAO,GAAIswB,OAAQ,GAAIrE,KAAM,cAAeu1J,OAAQ,OACjFj6O,KAAK68O,iBAAiBjB,gBAAgB,CACpCZ,UAAW,IAAI94L,QAAQ,EAAG,IAC1B45L,WAAY,EACZxqG,OAAQ,KACR2pG,QAAS,OAEXj7O,KAAK68O,iBAAiBxB,iBAAiB,CACrCL,UAAW,IAAI94L,QAAQ,EAAG,IAC1BovF,OAAQ,MACR74E,MAAO,EACPswB,OAAQ,GACRkyJ,QAAS,QAEXj7O,KAAK68O,iBAAiBhC,oCAI5B,IAAI34L,WAAW,WAAY,WAAYliD,KAAK68O,iBAAiBT,YAAY6B,aACzEj+O,KAAK68O,iBAAiBR,sBACtBr8O,KAAK68O,iBAAiBZ,wBACtB,CAAEhB,QAASj7O,KAAK68O,iBAAiBb,qBAErC,CAEA0D,sBACE,OAAO1/O,KAAKusD,EACVrK,QACA,OACA,CACEi8L,2BAA4Bn+O,KAAK68O,iBAAiB7C,8BAClD+E,mBAAoB,QAGtB/+O,KAAKusD,EACHrK,SACA,OACAliD,KAAK68O,iBAAiB1C,+BAEtBn6O,KAAKusD,EACHrK,SACA,aACAliD,KAAKusD,EACHrK,SACA,OAEAliD,KAAKusD,EAAErK,WAAY,CACjB9+C,KAAM,OACN47O,YAAa,IAAI98L,QAAQ,GAAI,IAC7BokH,OAAQ,EACRpuJ,OAAQ+2E,0BAGVjvF,KAAKusD,EAAErK,SAAU,SAAU,CAAEuW,MAAO,GAAIswB,OAAQ,GAAIrE,KAAM,cAAeu1J,OAAQ,OACjFj6O,KAAK68O,iBAAiBjB,gBAAgB,CACpCZ,UAAW,IAAI94L,QAAQ,EAAG,IAC1B45L,WAAY,EACZxqG,OAAQ,KACR2pG,QAAS,YAEXj7O,KAAK68O,iBAAiBjC,gCAGxB56O,KAAK68O,iBAAiBxC,yBAAyB,CAAE3qD,UAAW,OAAQtE,UAAW,MAGnF,IAAIlpI,WAAW,WAAY,WAAYliD,KAAK68O,iBAAiBT,YAAY6B,aACzEj+O,KAAK68O,iBAAiBR,sBACtBr8O,KAAK68O,iBAAiBZ,wBACtB,CACEhB,QAASj7O,KAAKy9O,2BAGpB,CAEAkC,mCACE,OAAO3/O,KAAKusD,EACVrK,QACA,OACA,CACEi8L,2BAA4Bn+O,KAAK68O,iBAAiB7C,8BAClD+E,mBAAoB,QAGtB/+O,KAAKusD,EACHrK,SACA,OACAliD,KAAK68O,iBAAiB1C,+BACtBn6O,KAAKusD,EACHrK,SACA,aACAliD,KAAKusD,EACHrK,SACA,OACAliD,KAAKusD,EAAErK,WAAY,CACjB9+C,KAAM,OACN47O,YAAa,IAAI98L,QAAQ,GAAI,IAC7BokH,OAAQ,EACRpuJ,OAAQ+2E,0BAEVjvF,KAAK68O,iBAAiBjB,gBAAgB,CACpCZ,UAAW,IAAI94L,QAAQ,EAAG,KAC1B45L,WAAY,EACZxqG,OAAQ,KACR2pG,QAAS,YAEXj7O,KAAK68O,iBAAiBjB,gBAAgB,CACpCZ,UAAW,IAAI94L,QAAQ,EAAG,KAC1B45L,WAAY,EACZxqG,OAAQ,SACR2pG,QAAS,YAEXj7O,KAAK68O,iBAAiBnC,iCAExB16O,KAAK68O,iBAAiBxC,yBAAyB,CAAE3qD,UAAW,OAAQtE,UAAW,MAGnF,IAAIlpI,WAAW,WAAY,WAAYliD,KAAK68O,iBAAiBT,YAAY6B,aACzEj+O,KAAK68O,iBAAiBR,sBACtBr8O,KAAK68O,iBAAiBZ,wBACtB,CACEhB,QAASj7O,KAAKy9O,2BAGpB,CAEAmC,uBACE,OAAO5/O,KAAKusD,EACVrK,QACA,OACA,CACEi8L,2BAA4Bn+O,KAAK68O,iBAAiB7C,8BAClD+E,mBAAoB,QAGtB/+O,KAAKusD,EACHrK,SACA,OACAliD,KAAK68O,iBAAiB1C,+BACtBn6O,KAAKusD,EACHrK,SACA,WACAliD,KAAKusD,EAAErK,SAAU,aAAcliD,KAAK68O,iBAAiBxC,yBAAyB,CAAE3qD,UAAW,YAC3F1vL,KAAKusD,EACHrK,SACA,OACAliD,KAAKusD,EAAErK,WAAY,CACjB9+C,KAAM,OACN47O,YAAa,IAAI98L,QAAQ,GAAI,IAC7BhqC,OAAQ+2E,sCAEVjvF,KAAK68O,iBAAiB/B,sCAK5B,IAAI54L,WAAW,WAAY,WAAYliD,KAAK68O,iBAAiBT,YAAY6B,aACzEj+O,KAAK68O,iBAAiBR,sBACtBr8O,KAAK68O,iBAAiBZ,wBACtB,CAAEhB,QAASj7O,KAAK68O,iBAAiBb,qBAErC,CAEA6D,kBACE,OAAO7/O,KAAKusD,EACVrK,QACA,OACA,CACEi8L,2BAA4Bn+O,KAAK68O,iBAAiB7C,8BAClD+E,mBAAoB,QAGtB/+O,KAAKusD,EACHrK,SACA,OACAliD,KAAK68O,iBAAiB1C,+BACtBn6O,KAAKusD,EACHrK,SACA,aACAliD,KAAK68O,iBAAiBxC,yBAAyB,CAAE3qD,UAAW,QAAStE,UAAW,IAChFprL,KAAKusD,EACHrK,SACA,OACAliD,KAAKusD,EAAErK,WAAY,CACjB9+C,KAAM,OACN47O,YAAa,IAAI98L,QAAQ,GAAI,IAC7BokH,OAAQ,EACRpuJ,OAAQ+2E,sBAGVjvF,KAAK68O,iBAAiBxB,iBAAiB,CACrCL,UAAW,IAAI94L,QAAQ,EAAG,IAC1Bq5L,aAAc,EACdjqG,OAAQ,MACR2pG,QAAS,QAEXj7O,KAAK68O,iBAAiBnC,mCAI5B,IAAIx4L,WAAW,WAAY,WAAYliD,KAAK68O,iBAAiBT,YAAY6B,aACzEj+O,KAAK68O,iBAAiBR,sBACtBr8O,KAAK68O,iBAAiBZ,wBACtB,CAAEhB,QAASj7O,KAAK68O,iBAAiBb,qBAErC,CAEA8D,2BACE,OAAO9/O,KAAKusD,EACVrK,QACA,OACA,CACEi8L,2BAA4Bn+O,KAAK68O,iBAAiB7C,8BAClD+E,mBAAoB,OACpB7mH,WAAW,GAGbl4H,KAAKusD,EACHrK,SACA,OACAliD,KAAK68O,iBAAiB1C,+BACtBn6O,KAAKusD,EACHrK,SACA,aACAliD,KAAK68O,iBAAiBxC,yBAAyB,CAAE3qD,UAAW,QAAStE,UAAW,IAChFprL,KAAKusD,EACHrK,SACA,OACAliD,KAAKusD,EAAErK,WAAY,CACjB9+C,KAAM,OACN47O,YAAa,IAAI98L,QAAQ,GAAI,IAC7BokH,OAAQ,EACRpuJ,OAAQ+2E,+BAEVjvF,KAAK68O,iBAAiBxB,iBAAiB,CACrCL,UAAW,IAAI94L,QAAQ,EAAG,IAC1Bq5L,aAAc,EACdjqG,OAAQ,MACR2pG,QAAS,QAEXj7O,KAAKusD,EACHrK,SACA,WACA,CAAE84L,UAAW,IAAI94L,QAAQ,EAAG,IAAMuW,MAAO,GAAIswB,OAAQ,IACrD/oF,KAAKusD,EAAErK,SAAU,CAAEk4L,OAAQ,YAAa3hL,MAAO,GAAIswB,OAAQ,EAAGkxJ,OAAQ,OAAQv1J,KAAM,UAEtF1kF,KAAK68O,iBAAiBnC,mCAI5B,IAAIx4L,WAAW,WAAY,WAAYliD,KAAK68O,iBAAiBT,YAAY6B,aACzEj+O,KAAK68O,iBAAiBZ,wBACtB,CAAEhB,QAASj7O,KAAK68O,iBAAiBb,qBAErC,CAEA+D,sBACE,OAAO//O,KAAKusD,EACVrK,QACA,OACA,CACEi8L,2BAA4Bn+O,KAAK68O,iBAAiB7C,8BAClD+E,mBAAoB,OAEpBI,cAAe,CAACt+O,EAAMq4H,EAAMmY,KAC1B,GAAoB,QAAhBA,EAAKC,QAAoBzwI,EAAKg6H,iBAAiBpnH,MAAQ,EAAG,CAC5D,MAAMygN,EAAOrzN,EAAKw8O,WAAW,QACvBzsG,EAAQ/vI,EAAKw8O,WAAW,MACxB18M,EAAS9/B,EAAKw8O,WAAW,OAEzB+B,GAAclrB,EAAKnrI,OAAS,GAAKmrI,EAAKnrI,OAC5CmrI,EAAKz7J,OAAS2mL,EACdlrB,EAAKnrI,QAAUq2J,EAEfxuG,EAAMn4E,OAAS2mL,EACfxuG,EAAM7nD,QAAUq2J,EAEhBz+M,EAAO83B,OAAS2mL,EAChBz+M,EAAOooD,QAAUq2J,IAIrBC,iBAAkB,CAACx+O,EAAMq4H,EAAMmY,KAC7B,GAAoB,QAAhBA,EAAKC,QAAoBzwI,EAAKg6H,iBAAiBpnH,OAAS,EAAG,CAC7D,MAAMygN,EAAOrzN,EAAKw8O,WAAW,QACvBzsG,EAAQ/vI,EAAKw8O,WAAW,MACxB18M,EAAS9/B,EAAKw8O,WAAW,OAEzB+B,GAAclrB,EAAKnrI,OAAS,GAAKmrI,EAAKnrI,OAC5CmrI,EAAKz7J,OAAS2mL,EACdlrB,EAAKnrI,QAAUq2J,EAEfxuG,EAAMn4E,OAAS2mL,EACfxuG,EAAM7nD,QAAUq2J,EAEhBz+M,EAAO83B,OAAS2mL,EAChBz+M,EAAOooD,QAAUq2J,KAIvBp/O,KAAKusD,EACHrK,SACA,OACAliD,KAAK68O,iBAAiB1C,+BACtBn6O,KAAKusD,EACHrK,SACA,WACAliD,KAAKusD,EAAErK,SAAU,aAAcliD,KAAK68O,iBAAiBxC,yBAAyB,CAAE3qD,UAAW,YAC3F1vL,KAAKusD,EACHrK,SACA,OACAliD,KAAKusD,EAAErK,WAAY,CACjB9+C,KAAM,OACN47O,YAAa,IAAI98L,QAAQ,GAAI,IAC7BhqC,OAAQ+2E,0BAEVjvF,KAAK68O,iBAAiBjB,gBAAgB,CACpCZ,UAAW,IAAI94L,QAAQ,GAAK,IAC5BovF,OAAQ,KACRluI,KAAM,KACN2lF,OAAQ,EACRtwB,MAAO,EACPwiL,QAAS,KACTa,WAAY,IAEd97O,KAAK68O,iBAAiBxB,iBAAiB,CACrCL,UAAW,IAAI94L,QAAQ,EAAG,IAC1BovF,OAAQ,MACRluI,KAAM,MACNq1D,MAAO,EACPswB,OAAQ,GACRkyJ,QAAS,QAEXj7O,KAAK68O,iBAAiBjC,kCAK5B,IAAI14L,WAAW,WAAY,WAAYliD,KAAK68O,iBAAiBT,YAAY6B,aACzEj+O,KAAK68O,iBAAiBR,sBACtBr8O,KAAK68O,iBAAiBZ,wBACtB,CAAEhB,QAASj7O,KAAK68O,iBAAiBb,qBAErC,CAEAgE,yBACE,OAAOhgP,KAAKusD,EACVrK,QACA,OACA,CACEi8L,2BAA4Bn+O,KAAK68O,iBAAiB7C,8BAClD+E,mBAAoB,OAEpBI,cAAe,CAACt+O,EAAMq4H,EAAMmY,KAC1B,GAAoB,QAAhBA,EAAKC,QAAoBzwI,EAAKg6H,iBAAiBpnH,MAAQ,EAAG,CAC5D,MAAMygN,EAAOrzN,EAAKw8O,WAAW,QACvBzsG,EAAQ/vI,EAAKw8O,WAAW,MACxB18M,EAAS9/B,EAAKw8O,WAAW,OAEzB+B,GAAclrB,EAAKnrI,OAAS,GAAKmrI,EAAKnrI,OAC5CmrI,EAAKz7J,OAAS2mL,EACdlrB,EAAKnrI,QAAUq2J,EAEfxuG,EAAMn4E,OAAS2mL,EACfxuG,EAAM7nD,QAAUq2J,EAEhBz+M,EAAO83B,OAAS2mL,EAChBz+M,EAAOooD,QAAUq2J,IAIrBC,iBAAkB,CAACx+O,EAAMq4H,EAAMmY,KAC7B,GAAoB,QAAhBA,EAAKC,QAAoBzwI,EAAKg6H,iBAAiBpnH,OAAS,EAAG,CAC7D,MAAMygN,EAAOrzN,EAAKw8O,WAAW,QACvBzsG,EAAQ/vI,EAAKw8O,WAAW,MACxB18M,EAAS9/B,EAAKw8O,WAAW,OAEzB+B,GAAclrB,EAAKnrI,OAAS,GAAKmrI,EAAKnrI,OAC5CmrI,EAAKz7J,OAAS2mL,EACdlrB,EAAKnrI,QAAUq2J,EAEfxuG,EAAMn4E,OAAS2mL,EACfxuG,EAAM7nD,QAAUq2J,EAEhBz+M,EAAO83B,OAAS2mL,EAChBz+M,EAAOooD,QAAUq2J,KAIvBp/O,KAAKusD,EACHrK,SACA,OACAliD,KAAK68O,iBAAiB1C,+BACtBn6O,KAAKusD,EACHrK,SACA,WACAliD,KAAK68O,iBAAiBxC,yBAAyB,CAAE3qD,UAAW,WAC5D1vL,KAAKusD,EACHrK,SACA,OACAliD,KAAKusD,EAAErK,WAAY,CACjB9+C,KAAM,OACN47O,YAAa,IAAI98L,QAAQ,GAAI,IAC7BhqC,OAAQ+2E,6BAEVjvF,KAAK68O,iBAAiBjB,gBAAgB,CACpCZ,UAAW,IAAI94L,QAAQ,EAAG,IAC1BovF,OAAQ,KACRluI,KAAM,KACNq1D,MAAO,EACPswB,OAAQ,GACRkyJ,QAAS,OAEXj7O,KAAK68O,iBAAiBxB,iBAAiB,CACrCL,UAAW,IAAI94L,QAAQ,EAAG,IAC1BovF,OAAQ,MACRluI,KAAM,MACNq1D,MAAO,EACPswB,OAAQ,GACRkyJ,QAAS,QAEXj7O,KAAK68O,iBAAiB9B,uCAK5B,IAAI74L,WAAW,WAAY,WAAYliD,KAAK68O,iBAAiBT,YAAY6B,aACzEj+O,KAAK68O,iBAAiBR,sBACtBr8O,KAAK68O,iBAAiBZ,wBACtB,CAAEhB,QAASj7O,KAAK68O,iBAAiBb,qBAErC,CAEAiE,iBACE,OAAOjgP,KAAKusD,EACVrK,QACA,OACA,CACEi8L,2BAA4Bn+O,KAAK68O,iBAAiB7C,8BAClD+E,mBAAoB,QAGtB/+O,KAAKusD,EACHrK,SACA,OACAliD,KAAK68O,iBAAiB1C,+BACtBn6O,KAAKusD,EACHrK,SACA,WACAliD,KAAK68O,iBAAiBxC,yBAAyB,CAAE3qD,UAAW,WAC5D1vL,KAAKusD,EACHrK,SACA,OACAliD,KAAKusD,EAAErK,WAAY,CACjB9+C,KAAM,OACN47O,YAAa,IAAI98L,QAAQ,GAAI,IAC7BokH,OAAQ,EACRpuJ,OAAQ+2E,qBAEVjvF,KAAK68O,iBAAiBjB,gBAAgB,CACpCZ,UAAW,IAAI94L,QAAQ,EAAG,IAC1BovF,OAAQ,KACRluI,KAAM,KACN63O,QAAS,KACTa,WAAY,IAEd97O,KAAK68O,iBAAiBxB,iBAAiB,CACrCL,UAAW,IAAI94L,QAAQ,EAAG,IAC1BovF,OAAQ,MACRluI,KAAM,MACNq1D,MAAO,EACPswB,OAAQ,GACRkyJ,QAAS,QAEXj7O,KAAK68O,iBAAiB9B,uCAI5B,IAAI74L,WAAW,WAAY,WAAYliD,KAAK68O,iBAAiBT,YAAY6B,aACzEj+O,KAAK68O,iBAAiBR,sBACtBr8O,KAAK68O,iBAAiBZ,wBACtB,CAAEhB,QAASj7O,KAAK68O,iBAAiBb,qBAErC,CAEAkE,iBACE,OAAOlgP,KAAKusD,EACVrK,QACA,OACA,CACEi8L,2BAA4Bn+O,KAAK68O,iBAAiB7C,8BAClD+E,mBAAoB,QAGtB/+O,KAAKusD,EACHrK,SACA,OACAliD,KAAK68O,iBAAiB1C,+BACtBn6O,KAAKusD,EACHrK,SACA,WACAliD,KAAK68O,iBAAiBxC,yBAAyB,CAAE3qD,UAAW,WAC5D1vL,KAAKusD,EACHrK,SACA,OACAliD,KAAKusD,EAAErK,WAAY,CACjB9+C,KAAM,OACN47O,YAAa,IAAI98L,QAAQ,GAAI,IAC7BokH,OAAQ,EACRpuJ,OAAQ+2E,qBAEVjvF,KAAK68O,iBAAiBjB,gBAAgB,CACpCZ,UAAW,IAAI94L,QAAQ,EAAG,IAC1BovF,OAAQ,KACRluI,KAAM,KACN63O,QAAS,KACTa,WAAY,IAEd97O,KAAK68O,iBAAiBxB,iBAAiB,CACrCL,UAAW,IAAI94L,QAAQ,EAAG,IAC1BovF,OAAQ,MACRluI,KAAM,MACNq1D,MAAO,EACPswB,OAAQ,GACRkyJ,QAAS,QAEXj7O,KAAK68O,iBAAiB9B,uCAK5B,IAAI74L,WAAW,WAAY,WAAYliD,KAAK68O,iBAAiBT,YAAY6B,aACzEj+O,KAAK68O,iBAAiBR,sBACtBr8O,KAAK68O,iBAAiBZ,wBACtB,CAAEhB,QAASj7O,KAAK68O,iBAAiBb,qBAErC,CAEAmE,gCACE,OAAOngP,KAAKusD,EACVrK,QACA,OACA,CACEi8L,2BAA4Bn+O,KAAK68O,iBAAiB7C,8BAClD+E,mBAAoB,QAEtB/+O,KAAKusD,EACHrK,SACA,OACAliD,KAAK68O,iBAAiB1C,+BACtBn6O,KAAKusD,EACHrK,SACA,aACAliD,KAAKusD,EACHrK,SACA,OACAliD,KAAKusD,EAAErK,WAAY,CACjB9+C,KAAM,OACN47O,YAAa,IAAI98L,QAAQ,GAAI,IAC7BhqC,OAAQ+2E,kCACRq3E,OAAQ,IAEVtmK,KAAK68O,iBAAiBjB,gBAAgB,CACpCZ,UAAW,IAAI94L,QAAQ,EAAG,IAC1B45L,WAAY,EACZxqG,OAAQ,KACR2pG,QAAS,OAEXj7O,KAAK68O,iBAAiBjC,gCAExB56O,KAAK68O,iBAAiBxC,yBAAyB,CAAE3qD,UAAW,OAAQtE,UAAW,MAGnF,IAAIlpI,WAAW,WAAY,WAAYliD,KAAK68O,iBAAiBT,YAAY6B,aACzEj+O,KAAK68O,iBAAiBR,sBACtBr8O,KAAK68O,iBAAiBZ,wBACtB,CAAEhB,QAASj7O,KAAK68O,iBAAiBb,qBAErC,CAEAoE,yBACE,OAAOpgP,KAAKusD,EACVrK,QACA,OACA,CACEi8L,2BAA4Bn+O,KAAK68O,iBAAiB7C,8BAClD+E,mBAAoB,QAEtB/+O,KAAKusD,EACHrK,SACA,OACAliD,KAAK68O,iBAAiB1C,+BACtBn6O,KAAKusD,EACHrK,SACA,aACAliD,KAAKusD,EACHrK,SACA,OACAliD,KAAKusD,EAAErK,WAAY,CACjB9+C,KAAM,OACN47O,YAAa,IAAI98L,QAAQ,GAAI,IAC7BhqC,OAAQ+2E,6BAEVjvF,KAAKusD,EAAErK,SAAU,SAAU,CAAEuW,MAAO,GAAIswB,OAAQ,GAAIrE,KAAM,cAAeu1J,OAAQ,OACjFj6O,KAAK68O,iBAAiBjB,gBAAgB,CACpCZ,UAAW,IAAI94L,QAAQ,EAAG,IAC1B45L,WAAY,EACZxqG,OAAQ,KACR2pG,QAAS,OAEXj7O,KAAK68O,iBAAiBjC,gCAExB56O,KAAK68O,iBAAiBxC,yBAAyB,CAAE3qD,UAAW,OAAQtE,UAAW,MAGnF,IAAIlpI,WAAW,WAAY,WAAYliD,KAAK68O,iBAAiBT,YAAY6B,aACzEj+O,KAAK68O,iBAAiBZ,wBACtB,CAAEhB,QAASj7O,KAAK68O,iBAAiBb,qBAErC,CAEAqE,8BACE,OAAOrgP,KAAKusD,EACVrK,QACA,OACA,CACEi8L,2BAA4Bn+O,KAAK68O,iBAAiB7C,8BAClD+E,mBAAoB,QAGtB/+O,KAAKusD,EACHrK,SACA,OACAliD,KAAK68O,iBAAiB1C,+BACtBn6O,KAAKusD,EACHrK,SACA,aACAliD,KAAK68O,iBAAiBxC,yBAAyB,CAAE3qD,UAAW,QAAStE,UAAW,IAChFprL,KAAKusD,EACHrK,SACA,OACAliD,KAAKusD,EAAErK,WAAY,CACjB9+C,KAAM,OACN47O,YAAa,IAAI98L,QAAQ,GAAI,IAC7BokH,OAAQ,EACRpuJ,OAAQ+2E,+BAEVjvF,KAAK68O,iBAAiBxB,iBAAiB,CACrCL,UAAW,IAAI94L,QAAQ,EAAG,IAC1Bq5L,aAAc,EACdjqG,OAAQ,MACR2pG,QAAS,QAEXj7O,KAAK68O,iBAAiBnC,mCAI5B,IAAIx4L,WAAW,WAAY,WAAYliD,KAAK68O,iBAAiBT,YAAY6B,aAEzEj+O,KAAK68O,iBAAiBR,sBACtBr8O,KAAK68O,iBAAiBZ,wBACtB,CAAEhB,QAASj7O,KAAK68O,iBAAiBb,qBAErC,CAEAsE,sBACE,OAAOtgP,KAAKusD,EACVrK,QACA,OACA,CACEi8L,2BAA4Bn+O,KAAK68O,iBAAiB7C,8BAClD+E,mBAAoB,QAEtB/+O,KAAKusD,EACHrK,SACA,OACAliD,KAAK68O,iBAAiB1C,+BACtBn6O,KAAKusD,EACHrK,SACA,WACAliD,KAAKusD,EAAErK,SAAU,aAAcliD,KAAK68O,iBAAiBxC,yBAAyB,CAAE3qD,UAAW,YAC3F1vL,KAAKusD,EACHrK,SACA,OACAliD,KAAKusD,EAAErK,WAAY,CACjB9+C,KAAM,OACN47O,YAAa,IAAI98L,QAAQ,GAAI,IAC7BhqC,OAAQ+2E,0BAEVjvF,KAAK68O,iBAAiBjB,gBAAgB,CACpCZ,UAAW,IAAI94L,QAAQ,EAAG,IAC1B45L,WAAY,EACZxqG,OAAQ,SACR2pG,QAAS,OAEXj7O,KAAK68O,iBAAiBxB,iBAAiB,CACrCL,UAAW,IAAI94L,QAAQ,IAAM,KAC7Bq5L,aAAc,EACdjqG,OAAQ,QACR2pG,QAAS,UAEXj7O,KAAK68O,iBAAiBxB,iBAAiB,CACrCL,UAAW,IAAI94L,QAAQ,IAAM,KAC7Bq5L,aAAc,EACdjqG,OAAQ,eACR2pG,QAAS,iBAEXj7O,KAAK68O,iBAAiB9B,uCAI5B,IAAI74L,WAAW,WAAY,WAAYliD,KAAK68O,iBAAiBT,YAAY6B,aACzEj+O,KAAK68O,iBAAiBR,sBACtBr8O,KAAK68O,iBAAiBZ,wBACtB,CACEhB,QAASj7O,KAAKy9O,2BAGpB,CAGA8C,mCACE,OAAOvgP,KAAKusD,EACVrK,QACA,WACA,CACE68L,mBAAoB,OACpByB,aAAct+L,eACdu+L,oBAAqB,QAGvBzgP,KAAKusD,EACHrK,SACA,aACA,CACE9+C,KAAM,QAERpD,KAAK68O,iBAAiBxC,yBAAyB,CAAE3qD,UAAW,YAE9D1vL,KAAKusD,EACHrK,SACA,QACAliD,KAAKusD,EACHrK,SACA,OACA,CACEs6L,IAAK,EACLt4B,OAAQ,EACR9gN,KAAM,OACNs9O,QAASx+L,qBAEXliD,KAAKusD,EAAErK,SAAU,YAAa,CAC5BwiC,KAAM,OACNu1J,OAAQ,KACRC,YAAa,EACbyG,QAAS,IAAIz+L,QAAQ,GAAI,MAE3BliD,KAAKusD,EAAErK,WAAY,CACjB9+C,KAAM,OACN47O,YAAa,IAAI98L,QAAQ,GAAI,IAC7BhqC,OAAQ+2E,2BAGZjvF,KAAKusD,EACHrK,SACA,WACA,CACEs6L,IAAK,EACLt4B,OAAQ,GAEVlkN,KAAK68O,iBAAiBjB,gBAAgB,CACpCZ,UAAW,IAAI94L,QAAQ,EAAG,KAC1B45L,WAAY,EACZxqG,OAAQ,SACRg1B,OAAQ,IAAIpkH,UAAU,EAAG,GACzB+4L,QAAS,YAEXj7O,KAAK68O,iBAAiBjB,gBAAgB,CACpCZ,UAAW,IAAI94L,QAAQ,EAAG,KAC1B45L,WAAY,EACZxqG,OAAQ,SACRg1B,OAAQ,IAAIpkH,UAAU,EAAG,GACzB+4L,QAAS,aAGbj7O,KAAKusD,EAAErK,SAAU,WAAY,IAAIA,WAAW,YAAa,eAAgB,CACvEs6L,IAAK,EACLt4B,OAAQ,EACRw5B,aAAc19O,KAAKusD,EACjBrK,SACA,CACE0+L,MAAO,QACPlF,SAAUx5L,cACV65L,OAAQ75L,cACRu5L,cAAc,EACdI,YAAY,EACZp8F,OAAQ,WAEV,IAAIv9F,WAAW,SAAU,UACzBliD,KAAKusD,EACHrK,SACA,YACA,CACEwiC,KAAM,UACNu1J,OAAQ,cACR+E,YAAa,IAAI98L,QAAQ,EAAG,GAC5BokH,OAAQ,IAAIpkH,UAAU,EAAG,IAE3B,CACE+4L,QAASj7O,KAAKusD,EACZrK,aACA,OACAliD,KAAKusD,EAAErK,SAAU,CACfwiC,KAAM,UACNu1J,OAAQ,gBAEVj6O,KAAKusD,EACHrK,aACA,CACEokH,OAAQ,GAEV,IAAIpkH,WAAW,OAAQ,mBAQrC,IAAIA,WAAW,WAAY,WAAYliD,KAAK68O,iBAAiBT,YAAY6B,aACzEj+O,KAAK68O,iBAAiBR,sBACtBr8O,KAAK68O,iBAAiBZ,wBACtB,CACEhB,QAASj7O,KAAKy9O,2BAGpB,CAEAoD,8BACE,OAAO7gP,KAAKusD,EACVrK,QACA,WACA,CACE68L,mBAAoB,OACpByB,aAAct+L,gBAIhBliD,KAAKusD,EACHrK,SACA,aACA,CACE9+C,KAAM,QAERpD,KAAK68O,iBAAiBxC,yBAAyB,CAAE3qD,UAAW,YAE9D1vL,KAAKusD,EACHrK,SACA,QACAliD,KAAKusD,EACHrK,SACA,OACA,CACEs6L,IAAK,EACLt4B,OAAQ,EACR9gN,KAAM,OACNs9O,QAASx+L,qBAEXliD,KAAKusD,EAAErK,SAAU,YAAa,CAC5BwiC,KAAM,OACNu1J,OAAQ,KACRC,YAAa,EACbyG,QAAS,IAAIz+L,QAAQ,GAAI,MAE3BliD,KAAKusD,EAAErK,WAAY,CACjB9+C,KAAM,OACN47O,YAAa,IAAI98L,QAAQ,GAAI,IAC7BhqC,OAAQ+2E,2BAGZjvF,KAAKusD,EAAErK,SAAU,WAAY,IAAIA,WAAW,YAAa,cAAe,CACtEs6L,IAAK,EACLt4B,OAAQ,EACRw5B,aAAc19O,KAAKusD,EACjBrK,SACA,CACE0+L,MAAO,OACP7E,OAAQ75L,aACR25L,YAAY,EACZC,WAAY,EACZr8F,OAAQ,WAEV,IAAIv9F,WAAW,SAAU,UACzBliD,KAAKusD,EACHrK,SACA,YACA,CACEwiC,KAAM,UACNu1J,OAAQ,cACR+E,YAAa,IAAI98L,QAAQ,EAAG,GAC5BokH,OAAQ,IAAIpkH,UAAU,EAAG,IAE3B,CACE+4L,QAASj7O,KAAKusD,EACZrK,aACA,OACAliD,KAAKusD,EAAErK,SAAU,CACfwiC,KAAM,UACNu1J,OAAQ,gBAEVj6O,KAAKusD,EACHrK,aACA,CACEokH,OAAQ,GAEV,IAAIpkH,WAAW,OAAQ,kBAOnCliD,KAAKusD,EAAErK,SAAU,WAAY,IAAIA,WAAW,YAAa,eAAgB,CACvEs6L,IAAK,EACLt4B,OAAQ,EACRw5B,aAAc19O,KAAKusD,EACjBrK,SACA,CACE0+L,MAAO,QACPlF,SAAUx5L,cACVu5L,cAAc,EACdF,aAAc,EACd97F,OAAQ,WAEV,IAAIv9F,WAAW,SAAU,UACzBliD,KAAKusD,EACHrK,SACA,YACA,CACEwiC,KAAM,UACNu1J,OAAQ,cACR+E,YAAa,IAAI98L,QAAQ,EAAG,GAC5BokH,OAAQ,IAAIpkH,UAAU,EAAG,IAE3B,CACE+4L,QAASj7O,KAAKusD,EACZrK,aACA,OACAliD,KAAKusD,EAAErK,SAAU,CACfwiC,KAAM,UACNu1J,OAAQ,gBAEVj6O,KAAKusD,EACHrK,aACA,CACEokH,OAAQ,GAEV,IAAIpkH,WAAW,OAAQ,mBAQrCliD,KAAKusD,EAAErK,SAAU,OAAQliD,KAAK68O,iBAAiB9B,kCAAkC,IACjF,IAAI74L,WAAW,WAAY,WAAYliD,KAAK68O,iBAAiBT,YAAY6B,aACzEj+O,KAAK68O,iBAAiBR,sBACtBr8O,KAAK68O,iBAAiBZ,wBACtB,CACEhB,QAASj7O,KAAKy9O,2BAGpB,CAEAqD,4BACE,OAAO9gP,KAAKusD,EACVrK,QACA,OACA,CACEi8L,2BAA4Bn+O,KAAK68O,iBAAiB7C,8BAClD+E,mBAAoB,QAEtB/+O,KAAKusD,EACHrK,SACA,OACAliD,KAAK68O,iBAAiB1C,+BACtBn6O,KAAKusD,EACHrK,SACA,WACAliD,KAAKusD,EAAErK,SAAU,aAAcliD,KAAK68O,iBAAiBxC,yBAAyB,CAAE3qD,UAAW,YAC3F1vL,KAAKusD,EACHrK,SACA,OACAliD,KAAKusD,EAAErK,WAAY,CACjB9+C,KAAM,OACN47O,YAAa,IAAI98L,QAAQ,GAAI,IAC7BhqC,OAAQ+2E,gDAMhBjvF,KAAKusD,EACHrK,SACAA,kBACAliD,KAAKusD,EACHrK,aACA,CACEx+B,KAAM,UACN2rN,KAAM,mBACN4K,OAAQ,UACR33M,SAAU,IAAI4f,UAAS,IAAM,KAE/B,IAAIA,WAAW,UAAW,GAAI+9D,KACnBA,EAAGpT,WAGhB,CACEouI,QAASj7O,KAAKusD,EACZrK,aACA,OACAliD,KAAKusD,EAAErK,SAAU,CACf+3L,OAAQ,cACRv1J,KAAM,YAER1kF,KAAKusD,EAAErK,aAAc,CAAEokH,OAAQ,EAAG5iJ,KAAM,2BAI9C1jB,KAAKusD,EACHrK,SACAA,kBACAliD,KAAKusD,EACHrK,aACA,CACEx+B,KAAM,UACN2rN,KAAM,mBACN4K,OAAQ,MACR33M,SAAU,IAAI4f,UAAS,IAAM,KAE/B,IAAIA,WAAW,UAAW,GAAI+9D,IACpBA,EAAGpT,WAGf,CACEouI,QAASj7O,KAAKusD,EACZrK,aACA,OACAliD,KAAKusD,EAAErK,SAAU,CACf+3L,OAAQ,cACRv1J,KAAM,YAER1kF,KAAKusD,EAAErK,aAAc,CAAEokH,OAAQ,EAAG5iJ,KAAM,kBAK9C,IAAIw+B,WAAW,WAAY,WAAYliD,KAAK68O,iBAAiBT,YAAY6B,aACzEj+O,KAAK68O,iBAAiBR,sBACtBr8O,KAAK68O,iBAAiBZ,wBAE1B,CAEA8E,0BACE,OAAO/gP,KAAKusD,EACVrK,QACA,OACA,CACEi8L,2BAA4Bn+O,KAAK68O,iBAAiB7C,8BAClD+E,mBAAoB,QAEtB/+O,KAAKusD,EACHrK,SACA,OACAliD,KAAK68O,iBAAiB1C,+BACtBn6O,KAAKusD,EACHrK,SACA,WACAliD,KAAKusD,EAAErK,SAAU,aAAcliD,KAAK68O,iBAAiBxC,yBAAyB,CAAE3qD,UAAW,YAC3F1vL,KAAKusD,EACHrK,SACA,OACAliD,KAAKusD,EAAErK,WAAY,CACjB9+C,KAAM,OACN47O,YAAa,IAAI98L,QAAQ,GAAI,IAC7BhqC,OAAQ+2E,8CAMhBjvF,KAAKusD,EACHrK,SACAA,kBACAliD,KAAKusD,EACHrK,aACA,CACEx+B,KAAM,UACN2rN,KAAM,mBACN4K,OAAQ,UACR33M,SAAU,IAAI4f,UAAS,IAAM,KAE/B,IAAIA,WAAW,UAAW,GAAI8+L,KACnBA,EAAGn0I,WAGhB,CACEouI,QAASj7O,KAAKusD,EACZrK,aACA,OACAliD,KAAKusD,EAAErK,SAAU,CACf+3L,OAAQ,cACRv1J,KAAM,YAER1kF,KAAKusD,EAAErK,aAAc,CAAEokH,OAAQ,EAAG5iJ,KAAM,2BAK9C1jB,KAAKusD,EACHrK,SACAA,kBACAliD,KAAKusD,EACHrK,aACA,CACEx+B,KAAM,UACN2rN,KAAM,mBACN4K,OAAQ,MACR33M,SAAU,IAAI4f,UAAS,IAAM,KAE/B,IAAIA,WAAW,UAAW,GAAI8+L,IACpBA,EAAGn0I,WAGf,CACEouI,QAASj7O,KAAKusD,EACZrK,aACA,OACAliD,KAAKusD,EAAErK,SAAU,CACf+3L,OAAQ,cACRv1J,KAAM,YAER1kF,KAAKusD,EAAErK,aAAc,CAAEokH,OAAQ,EAAG5iJ,KAAM,kBAK9C,IAAIw+B,WAAW,WAAY,WAAYliD,KAAK68O,iBAAiBT,YAAY6B,aACzEj+O,KAAK68O,iBAAiBR,sBACtBr8O,KAAK68O,iBAAiBZ,wBAE1B,CAEAgF,wBACE,OAAOjhP,KAAKusD,EACVrK,QACA,OACA,CACEi8L,2BAA4Bn+O,KAAK68O,iBAAiB7C,8BAClD+E,mBAAoB,QAEtB/+O,KAAKusD,EACHrK,SACA,OACAliD,KAAK68O,iBAAiB1C,+BACtBn6O,KAAKusD,EACHrK,SACA,WACAliD,KAAK68O,iBAAiBxC,yBAAyB,CAAE3qD,UAAW,WAC5D1vL,KAAKusD,EACHrK,SACA,OACAliD,KAAKusD,EAAErK,WAAY,CACjB9+C,KAAM,OACN47O,YAAa,IAAI98L,QAAQ,GAAI,IAC7BokH,OAAQ,EACRpuJ,OAAQ+2E,4BAEVjvF,KAAK68O,iBAAiBjB,gBAAgB,CACpCZ,UAAW,IAAI94L,QAAQ,EAAG,IAC1B45L,WAAY,EACZxqG,OAAQ,KACR2pG,QAAS,OAEXj7O,KAAK68O,iBAAiBxB,iBAAiB,CACrCL,UAAW,IAAI94L,QAAQ,EAAG,IAC1Bq5L,aAAc,EACdjqG,OAAQ,MACR2pG,QAAS,QAEXj7O,KAAK68O,iBAAiB9B,uCAI5B,IAAI74L,WAAW,WAAY,WAAYliD,KAAK68O,iBAAiBT,YAAY6B,aACzEj+O,KAAK68O,iBAAiBR,sBACtBr8O,KAAK68O,iBAAiBZ,wBACtB,CACEhB,QAASj7O,KAAKy9O,2BAGpB,CAEAyD,gCACE,OAAOlhP,KAAKusD,EACVrK,QACA,WACA,CACE68L,mBAAoB,OACpByB,aAAct+L,eACdu+L,oBAAqB,QAGvBzgP,KAAKusD,EACHrK,SACA,aACA,CACE9+C,KAAM,QAERpD,KAAK68O,iBAAiBxC,yBAAyB,CAAE3qD,UAAW,YAE9D1vL,KAAKusD,EACHrK,SACA,QACAliD,KAAKusD,EACHrK,SACA,OACA,CACEs6L,IAAK,EACLt4B,OAAQ,EACR9gN,KAAM,OACNs9O,QAASx+L,qBAEXliD,KAAKusD,EAAErK,SAAU,YAAa,CAC5BwiC,KAAM,OACNu1J,OAAQ,KACRC,YAAa,EACbyG,QAAS,IAAIz+L,QAAQ,GAAI,MAE3BliD,KAAKusD,EAAErK,WAAY,CACjB9+C,KAAM,OACN47O,YAAa,IAAI98L,QAAQ,GAAI,IAC7BhqC,OAAQ+2E,6BAGZjvF,KAAKusD,EAAErK,SAAU,WAAY,IAAIA,WAAW,YAAa,cAAe,CACtEs6L,IAAK,EACLt4B,OAAQ,EACRw5B,aAAc19O,KAAKusD,EACjBrK,SACA,CACE0+L,MAAO,OACPlF,SAAUx5L,aACV65L,OAAQ75L,aACR25L,YAAY,EACZC,WAAY,EACZr8F,OAAQ,WAEV,IAAIv9F,WAAW,SAAU,UACzBliD,KAAKusD,EACHrK,SACA,YACA,CACEwiC,KAAM,UACNu1J,OAAQ,cACR+E,YAAa,IAAI98L,QAAQ,EAAG,GAC5BokH,OAAQ,IAAIpkH,UAAU,EAAG,IAE3B,CACE+4L,QAASj7O,KAAKusD,EACZrK,aACA,OACAliD,KAAKusD,EAAErK,SAAU,CACfwiC,KAAM,UACNu1J,OAAQ,gBAEVj6O,KAAKusD,EACHrK,aACA,CACEokH,OAAQ,GAEV,IAAIpkH,WAAW,OAAQ,kBAOnCliD,KAAKusD,EAAErK,SAAU,WAAY,IAAIA,WAAW,YAAa,eAAgB,CACvEs6L,IAAK,EACLt4B,OAAQ,EACRw5B,aAAc19O,KAAKusD,EACjBrK,SACA,CACE0+L,MAAO,QACPlF,SAAUx5L,cACV65L,OAAQ75L,cACRu5L,cAAc,EACdI,YAAY,EACZp8F,OAAQ,WAEV,IAAIv9F,WAAW,SAAU,UACzBliD,KAAKusD,EACHrK,SACA,YACA,CACEwiC,KAAM,UACNu1J,OAAQ,cACR+E,YAAa,IAAI98L,QAAQ,EAAG,GAC5BokH,OAAQ,IAAIpkH,UAAU,EAAG,IAE3B,CACE+4L,QAASj7O,KAAKusD,EACZrK,aACA,OACAliD,KAAKusD,EAAErK,SAAU,CACfwiC,KAAM,UACNu1J,OAAQ,gBAEVj6O,KAAKusD,EACHrK,aACA,CACEokH,OAAQ,GAEV,IAAIpkH,WAAW,OAAQ,mBAQrCliD,KAAK68O,iBAAiB9B,oCACtB,IAAI74L,WAAW,WAAY,WAAYliD,KAAK68O,iBAAiBT,YAAY6B,aACzEj+O,KAAK68O,iBAAiBR,sBACtBr8O,KAAK68O,iBAAiBZ,wBACtB,CACEhB,QAASj7O,KAAKy9O,2BAGpB,CAGA0D,4BACE,OAAOnhP,KAAKusD,EACVrK,QACA,WACA,CACE68L,mBAAoB,OACpByB,aAAct+L,eACdu+L,oBAAqB,QAGvBzgP,KAAKusD,EACHrK,SACA,aACA,CACE9+C,KAAM,QAERpD,KAAK68O,iBAAiBxC,yBAAyB,CAAE3qD,UAAW,YAE9D1vL,KAAKusD,EACHrK,SACA,QACAliD,KAAKusD,EACHrK,SACA,OACA,CACEs6L,IAAK,EACLt4B,OAAQ,EACR9gN,KAAM,OACNs9O,QAASx+L,qBAEXliD,KAAKusD,EAAErK,SAAU,YAAa,CAC5BwiC,KAAM,OACNu1J,OAAQ,KACRC,YAAa,EACbyG,QAAS,IAAIz+L,QAAQ,GAAI,MAE3BliD,KAAKusD,EAAErK,WAAY,CACjB9+C,KAAM,OACN47O,YAAa,IAAI98L,QAAQ,GAAI,IAC7BhqC,OAAQ+2E,2BAGZjvF,KAAKusD,EACHrK,SACA,WACA,CACEs6L,IAAK,EACLt4B,OAAQ,GAEVlkN,KAAK68O,iBAAiBjB,gBAAgB,CACpCZ,UAAW,IAAI94L,QAAQ,EAAG,IAC1B45L,WAAY,EACZxqG,OAAQ,SACR2pG,QAAS,QAGbj7O,KAAKusD,EAAErK,SAAU,WAAY,IAAIA,WAAW,YAAa,eAAgB,CACvEs6L,IAAK,EACLt4B,OAAQ,EACRw5B,aAAc19O,KAAKusD,EACjBrK,SACA,CACE0+L,MAAO,QACPlF,SAAUx5L,cACV65L,OAAQ75L,cACRu5L,cAAc,EACdI,YAAY,EACZp8F,OAAQ,WAEV,IAAIv9F,WAAW,SAAU,UACzBliD,KAAKusD,EACHrK,SACA,YACA,CACEwiC,KAAM,UACNu1J,OAAQ,cACR+E,YAAa,IAAI98L,QAAQ,EAAG,GAC5BokH,OAAQ,IAAIpkH,UAAU,EAAG,IAE3B,CACE+4L,QAASj7O,KAAKusD,EACZrK,aACA,OACAliD,KAAKusD,EAAErK,SAAU,CACfwiC,KAAM,UACNu1J,OAAQ,gBAEVj6O,KAAKusD,EACHrK,aACA,CACEokH,OAAQ,GAEV,IAAIpkH,WAAW,OAAQ,mBAQrC,IAAIA,WAAW,WAAY,WAAYliD,KAAK68O,iBAAiBT,YAAY6B,aACzEj+O,KAAK68O,iBAAiBR,sBACtBr8O,KAAK68O,iBAAiBZ,wBACtB,CACEhB,QAASj7O,KAAKy9O,2BAGpB,CAEA2D,0BACE,OAAOphP,KAAKusD,EACVrK,QACA,OACA,CACEi8L,2BAA4Bn+O,KAAK68O,iBAAiB7C,8BAClD+E,mBAAoB,OAEpBI,cAAe,CAACt+O,EAAMq4H,EAAMmY,KAC1B,GAAoB,OAAhBA,EAAKC,QAAmBzwI,EAAKw6H,gBAAgB5nH,MAAQ,EAAG,CAC1D,MAAMygN,EAAOrzN,EAAKw8O,WAAW,QACvBzsG,EAAQ/vI,EAAKw8O,WAAW,MAExB+B,GAAclrB,EAAKnrI,OAAS,GAAKmrI,EAAKnrI,OAC5CmrI,EAAKz7J,OAAS2mL,EACdlrB,EAAKnrI,QAAUq2J,EAEfxuG,EAAMn4E,OAAS2mL,EACfxuG,EAAM7nD,QAAUq2J,IAIpBC,iBAAkB,CAACx+O,EAAMq4H,EAAMmY,KAC7B,GAAoB,OAAhBA,EAAKC,QAAmBzwI,EAAKw6H,gBAAgB5nH,OAAS,EAAG,CAC3D,MAAMygN,EAAOrzN,EAAKw8O,WAAW,QACvBzsG,EAAQ/vI,EAAKw8O,WAAW,MAExB+B,GAAclrB,EAAKnrI,OAAS,GAAKmrI,EAAKnrI,OAC5CmrI,EAAKz7J,OAAS2mL,EACdlrB,EAAKnrI,QAAUq2J,EAEfxuG,EAAMn4E,OAAS2mL,EACfxuG,EAAM7nD,QAAUq2J,KAItBp/O,KAAKusD,EACHrK,SACA,OACAliD,KAAK68O,iBAAiB1C,+BACtBn6O,KAAKusD,EACHrK,SACA,WACAliD,KAAK68O,iBAAiBxC,yBAAyB,CAAE3qD,UAAW,WAC5D1vL,KAAKusD,EACHrK,SACA,OACAliD,KAAKusD,EAAErK,WAAY,CACjB9+C,KAAM,OACN47O,YAAa,IAAI98L,QAAQ,GAAI,IAC7BhqC,OAAQ+2E,8BAEVjvF,KAAK68O,iBAAiBjB,gBAAgB,CACpCZ,UAAW,IAAI94L,QAAQ,EAAG,IAC1BovF,OAAQ,KACRluI,KAAM,KACNq1D,MAAO,EACPswB,OAAQ,GACRkyJ,QAAS,OAEXj7O,KAAK68O,iBAAiBxB,iBAAiB,CACrCL,UAAW,IAAI94L,QAAQ,EAAG,IAC1Bq5L,aAAc,EACdjqG,OAAQ,MACR2pG,QAAS,QAEXj7O,KAAK68O,iBAAiB9B,uCAI5B,IAAI74L,WAAW,WAAY,WAAYliD,KAAK68O,iBAAiBT,YAAY6B,aACzEj+O,KAAK68O,iBAAiBR,sBACtBr8O,KAAK68O,iBAAiBZ,wBACtB,CAAEhB,QAASj7O,KAAK68O,iBAAiBb,qBAErC,CAEAqF,6BACE,OAAOrhP,KAAKusD,EACVrK,QACA,OACA,CACEi8L,2BAA4Bn+O,KAAK68O,iBAAiB7C,8BAClD+E,mBAAoB,QAEtB/+O,KAAKusD,EACHrK,SACA,OACAliD,KAAK68O,iBAAiB1C,+BACtBn6O,KAAKusD,EACHrK,SACA,WACAliD,KAAK68O,iBAAiBxC,yBAAyB,CAAE3qD,UAAW,WAC5D1vL,KAAKusD,EACHrK,SACA,OACAliD,KAAKusD,EAAErK,WAAY,CACjB9+C,KAAM,OACN47O,YAAa,IAAI98L,QAAQ,GAAI,IAC7BokH,OAAQ,EACRpuJ,OAAQ+2E,iCAEVjvF,KAAK68O,iBAAiBjB,gBAAgB,CACpCZ,UAAW,IAAI94L,QAAQ,EAAG,IAC1B45L,WAAY,EACZxqG,OAAQ,KACR2pG,QAAS,OAEXj7O,KAAK68O,iBAAiBxB,iBAAiB,CACrCL,UAAW,IAAI94L,QAAQ,EAAG,KAC1Bq5L,aAAc,EACdjqG,OAAQ,UACR2pG,QAAS,YAEXj7O,KAAK68O,iBAAiBxB,iBAAiB,CACrCL,UAAW,IAAI94L,QAAQ,EAAG,IAC1Bq5L,aAAc,EACdjqG,OAAQ,SACR2pG,QAAS,QAEXj7O,KAAK68O,iBAAiBxB,iBAAiB,CACrCL,UAAW,IAAI94L,QAAQ,EAAG,KAC1Bq5L,aAAc,EACdjqG,OAAQ,SACR2pG,QAAS,QAEXj7O,KAAK68O,iBAAiB9B,uCAI5B,IAAI74L,WAAW,WAAY,WAAYliD,KAAK68O,iBAAiBT,YAAY6B,aACzEj+O,KAAK68O,iBAAiBR,sBACtBr8O,KAAK68O,iBAAiBZ,wBACtB,CAAEhB,QAASj7O,KAAK68O,iBAAiBb,qBAErC,CAEAsF,6BACE,OAAOthP,KAAKusD,EACVrK,QACA,OACA,CACEi8L,2BAA4Bn+O,KAAK68O,iBAAiB7C,8BAClD+E,mBAAoB,QAEtB/+O,KAAKusD,EACHrK,SACA,OACAliD,KAAK68O,iBAAiB1C,+BACtBn6O,KAAKusD,EACHrK,SACA,WACAliD,KAAK68O,iBAAiBxC,yBAAyB,CAAE3qD,UAAW,WAC5D1vL,KAAKusD,EACHrK,SACA,OACAliD,KAAKusD,EAAErK,WAAY,CACjB9+C,KAAM,OACN47O,YAAa,IAAI98L,QAAQ,GAAI,IAC7BokH,OAAQ,EACRpuJ,OAAQ+2E,iCAEVjvF,KAAK68O,iBAAiBjB,gBAAgB,CACpCZ,UAAW,IAAI94L,QAAQ,EAAG,IAC1B45L,WAAY,EACZxqG,OAAQ,KACR2pG,QAAS,OAEXj7O,KAAK68O,iBAAiBxB,iBAAiB,CACrCL,UAAW,IAAI94L,QAAQ,EAAG,KAC1Bq5L,aAAc,EACdjqG,OAAQ,UACR2pG,QAAS,YAEXj7O,KAAK68O,iBAAiBxB,iBAAiB,CACrCL,UAAW,IAAI94L,QAAQ,EAAG,KAC1Bq5L,aAAc,EACdjqG,OAAQ,SACR2pG,QAAS,QAEXj7O,KAAK68O,iBAAiB9B,uCAI5B,IAAI74L,WAAW,WAAY,WAAYliD,KAAK68O,iBAAiBT,YAAY6B,aACzEj+O,KAAK68O,iBAAiBR,sBACtBr8O,KAAK68O,iBAAiBZ,wBACtB,CAAEhB,QAASj7O,KAAK68O,iBAAiBb,qBAErC,CAEAuF,mCACE,OAAOvhP,KAAKusD,EACVrK,QACA,OACA,CACEi8L,2BAA4Bn+O,KAAK68O,iBAAiB7C,8BAClD+E,mBAAoB,OACpBI,cAAe,CAACt+O,EAAMq4H,EAAMmY,KAC1B,GAAoB,OAAhBA,EAAKC,QAAmBzwI,EAAKw6H,gBAAgB5nH,MAAQ,EAAG,CAC1D,MAAMygN,EAAOrzN,EAAKw8O,WAAW,QACvBzsG,EAAQ/vI,EAAKw8O,WAAW,MAExB+B,GAAclrB,EAAKnrI,OAAS,GAAKmrI,EAAKnrI,OAC5CmrI,EAAKz7J,OAAS2mL,EACdlrB,EAAKnrI,QAAUq2J,EAEfxuG,EAAMn4E,OAAS2mL,EACfxuG,EAAM7nD,QAAUq2J,IAIpBC,iBAAkB,CAACx+O,EAAMq4H,EAAMmY,KAC7B,GAAoB,OAAhBA,EAAKC,QAAmBzwI,EAAKw6H,gBAAgB5nH,OAAS,EAAG,CAC3D,MAAMygN,EAAOrzN,EAAKw8O,WAAW,QACvBzsG,EAAQ/vI,EAAKw8O,WAAW,MAExB+B,GAAclrB,EAAKnrI,OAAS,GAAKmrI,EAAKnrI,OAC5CmrI,EAAKz7J,OAAS2mL,EACdlrB,EAAKnrI,QAAUq2J,EAEfxuG,EAAMn4E,OAAS2mL,EACfxuG,EAAM7nD,QAAUq2J,KAItBp/O,KAAKusD,EACHrK,SACA,OACAliD,KAAK68O,iBAAiB1C,+BACtBn6O,KAAKusD,EACHrK,SACA,WACAliD,KAAK68O,iBAAiBxC,yBAAyB,CAAE3qD,UAAW,WAC5D1vL,KAAKusD,EACHrK,SACA,OACAliD,KAAKusD,EAAErK,WAAY,CACjB9+C,KAAM,OACN47O,YAAa,IAAI98L,QAAQ,GAAI,IAC7BhqC,OAAQ+2E,8BAEVjvF,KAAK68O,iBAAiBjB,gBAAgB,CACpCZ,UAAW,IAAI94L,QAAQ,EAAG,IAC1BovF,OAAQ,KACRluI,KAAM,KACNq1D,MAAO,EACPswB,OAAQ,GACRkyJ,QAAS,OAEXj7O,KAAK68O,iBAAiBxB,iBAAiB,CACrCL,UAAW,IAAI94L,QAAQ,EAAG,KAC1Bq5L,aAAc,EACdjqG,OAAQ,YACR2pG,QAAS,eAEXj7O,KAAK68O,iBAAiBxB,iBAAiB,CACrCL,UAAW,IAAI94L,QAAQ,EAAG,KAC1Bq5L,aAAc,EACdjqG,OAAQ,sBACR2pG,QAAS,yBAEXj7O,KAAK68O,iBAAiB9B,uCAI5B,IAAI74L,WAAW,WAAY,WAAYliD,KAAK68O,iBAAiBT,YAAY6B,aACzEj+O,KAAK68O,iBAAiBR,sBACtBr8O,KAAK68O,iBAAiBZ,wBACtB,CAAEhB,QAASj7O,KAAK68O,iBAAiBb,qBAErC,CAEAwF,iBACE,OAAOxhP,KAAKusD,EACVrK,QACA,OACA,CACEi8L,2BAA4Bn+O,KAAK68O,iBAAiB7C,8BAClD+E,mBAAoB,QAEtB/+O,KAAKusD,EACHrK,SACA,OACAliD,KAAK68O,iBAAiB1C,+BACtBn6O,KAAKusD,EACHrK,SACA,WACAliD,KAAK68O,iBAAiBxC,yBAAyB,CAAE3qD,UAAW,WAC5D1vL,KAAKusD,EACHrK,SACA,OACAliD,KAAKusD,EAAErK,WAAY,CACjB9+C,KAAM,OACN47O,YAAa,IAAI98L,QAAQ,GAAI,IAC7BokH,OAAQ,EACRpuJ,OAAQ+2E,qBAEVjvF,KAAK68O,iBAAiBjB,gBAAgB,CACpCZ,UAAW,IAAI94L,QAAQ,EAAG,IAC1B45L,WAAY,EACZxqG,OAAQ,KACR2pG,QAAS,OAEXj7O,KAAK68O,iBAAiBxB,iBAAiB,CACrCL,UAAW,IAAI94L,QAAQ,GAAK,GAC5Bq5L,aAAc,EACdjqG,OAAQ,YACR2pG,QAAS,eAEXj7O,KAAK68O,iBAAiBxB,iBAAiB,CACrCL,UAAW,IAAI94L,QAAQ,EAAG,KAC1Bq5L,aAAc,EACdjqG,OAAQ,eACR2pG,QAAS,kBAEXj7O,KAAK68O,iBAAiBxB,iBAAiB,CACrCL,UAAW,IAAI94L,QAAQ,EAAG,IAC1Bq5L,aAAc,EACdjqG,OAAQ,eACR2pG,QAAS,kBAEXj7O,KAAK68O,iBAAiBxB,iBAAiB,CACrCL,UAAW,IAAI94L,QAAQ,EAAG,KAC1Bq5L,aAAc,EACdjqG,OAAQ,OACR2pG,QAAS,SAEXj7O,KAAK68O,iBAAiBxB,iBAAiB,CACrCL,UAAW,IAAI94L,QAAQ,GAAK,GAC5Bq5L,aAAc,EACdjqG,OAAQ,SACR2pG,QAAS,YAEXj7O,KAAK68O,iBAAiBtC,uCAI5B,IAAIr4L,WAAW,WAAY,WAAYliD,KAAK68O,iBAAiBT,YAAY6B,aACzEj+O,KAAK68O,iBAAiBR,sBACtBr8O,KAAK68O,iBAAiBZ,wBACtB,CAAEhB,QAASj7O,KAAK68O,iBAAiBb,qBAErC,CAEAyF,wBACE,OAAOzhP,KAAKusD,EACVrK,QACA,OACA,CACEi8L,2BAA4Bn+O,KAAK68O,iBAAiB7C,8BAClD+E,mBAAoB,QAEtB/+O,KAAKusD,EACHrK,SACA,OACAliD,KAAK68O,iBAAiB1C,+BACtBn6O,KAAKusD,EACHrK,SACA,WACAliD,KAAK68O,iBAAiBxC,yBAAyB,CAAE3qD,UAAW,WAC5D1vL,KAAKusD,EACHrK,SACA,OACAliD,KAAKusD,EAAErK,WAAY,CACjB9+C,KAAM,OACN47O,YAAa,IAAI98L,QAAQ,GAAI,IAC7BokH,OAAQ,EACRpuJ,OAAQ+2E,4BAEVjvF,KAAK68O,iBAAiBjB,gBAAgB,CACpCZ,UAAW,IAAI94L,QAAQ,EAAG,KAC1B45L,WAAY,EACZxqG,OAAQ,MACR2pG,QAAS,QAEXj7O,KAAK68O,iBAAiBjB,gBAAgB,CACpCZ,UAAW,IAAI94L,QAAQ,EAAG,IAC1B45L,WAAY,EACZxqG,OAAQ,MACR2pG,QAAS,QAEXj7O,KAAK68O,iBAAiBjB,gBAAgB,CACpCZ,UAAW,IAAI94L,QAAQ,EAAG,KAC1B45L,WAAY,EACZxqG,OAAQ,UACR2pG,QAAS,YAEXj7O,KAAK68O,iBAAiBxB,iBAAiB,CACrCL,UAAW,IAAI94L,QAAQ,GAAK,GAC5Bq5L,aAAc,EACdjqG,OAAQ,SACR2pG,QAAS,WAEXj7O,KAAK68O,iBAAiBxB,iBAAiB,CACrCL,UAAW,IAAI94L,QAAQ,EAAG,KAC1Bq5L,aAAc,EACdjqG,OAAQ,UACR2pG,QAAS,YAEXj7O,KAAK68O,iBAAiBxB,iBAAiB,CACrCL,UAAW,IAAI94L,QAAQ,EAAG,KAC1Bq5L,aAAc,EACdjqG,OAAQ,MACR2pG,QAAS,QAEXj7O,KAAK68O,iBAAiBxB,iBAAiB,CACrCL,UAAW,IAAI94L,QAAQ,GAAK,GAC5Bq5L,aAAc,EACdjqG,OAAQ,MACR2pG,QAAS,QAEXj7O,KAAK68O,iBAAiBtC,uCAI5B,IAAIr4L,WAAW,WAAY,WAAYliD,KAAK68O,iBAAiBT,YAAY6B,aACzEj+O,KAAK68O,iBAAiBR,sBACtBr8O,KAAK68O,iBAAiBZ,wBACtB,CAAEhB,QAASj7O,KAAK68O,iBAAiBb,qBAErC,CAEA0F,2BACE,OAAO1hP,KAAKusD,EACVrK,QACA,OACA,CACEi8L,2BAA4Bn+O,KAAK68O,iBAAiB7C,8BAClD+E,mBAAoB,QAEtB/+O,KAAKusD,EACHrK,SACA,OACAliD,KAAK68O,iBAAiB1C,+BACtBn6O,KAAKusD,EACHrK,SACA,WACAliD,KAAK68O,iBAAiBxC,yBAAyB,CAAE3qD,UAAW,WAC5D1vL,KAAKusD,EACHrK,SACA,OACAliD,KAAKusD,EAAErK,WAAY,CACjB9+C,KAAM,OACN47O,YAAa,IAAI98L,QAAQ,GAAI,IAC7BokH,OAAQ,EACRpuJ,OAAQ+2E,+BAEVjvF,KAAK68O,iBAAiB/B,sCAI5B,IAAI54L,WAAW,WAAY,WAAYliD,KAAK68O,iBAAiBT,YAAY6B,aACzEj+O,KAAK68O,iBAAiBR,sBACtBr8O,KAAK68O,iBAAiBZ,wBACtB,CAAEhB,QAASj7O,KAAK68O,iBAAiBb,qBAErC,CAEA2F,yBACE,OAAO3hP,KAAKusD,EACVrK,QACA,OACA,CACEi8L,2BAA4Bn+O,KAAK68O,iBAAiB7C,8BAClD+E,mBAAoB,QAEtB/+O,KAAKusD,EACHrK,SACA,OACAliD,KAAK68O,iBAAiB1C,+BACtBn6O,KAAKusD,EACHrK,SACA,WACAliD,KAAK68O,iBAAiBxC,yBAAyB,CAAE3qD,UAAW,WAC5D1vL,KAAKusD,EACHrK,SACA,OACAliD,KAAKusD,EAAErK,WAAY,CACjB9+C,KAAM,OACN47O,YAAa,IAAI98L,QAAQ,GAAI,IAC7BokH,OAAQ,EACRpuJ,OAAQ+2E,6BAEVjvF,KAAK68O,iBAAiB/B,sCAI5B,IAAI54L,WAAW,WAAY,WAAYliD,KAAK68O,iBAAiBT,YAAY6B,aACzEj+O,KAAK68O,iBAAiBR,sBACtBr8O,KAAK68O,iBAAiBZ,wBACtB,CAAEhB,QAASj7O,KAAK68O,iBAAiBb,qBAErC,CAEA4F,0BACE,OAAO5hP,KAAKusD,EACVrK,QACA,OACA,CACEi8L,2BAA4Bn+O,KAAK68O,iBAAiB7C,8BAClD+E,mBAAoB,QAEtB/+O,KAAKusD,EACHrK,SACA,OACAliD,KAAK68O,iBAAiB1C,+BACtBn6O,KAAKusD,EACHrK,SACA,WACAliD,KAAK68O,iBAAiBxC,yBAAyB,CAAE3qD,UAAW,WAC5D1vL,KAAKusD,EACHrK,SACA,OACAliD,KAAKusD,EAAErK,WAAY,CACjB9+C,KAAM,OACN47O,YAAa,IAAI98L,QAAQ,GAAI,IAC7BokH,OAAQ,EACRpuJ,OAAQ+2E,8BAEVjvF,KAAK68O,iBAAiBjB,gBAAgB,CACpCZ,UAAW,IAAI94L,QAAQ,EAAG,IAC1B45L,WAAY,EACZxqG,OAAQ,KACR2pG,QAAS,OAEXj7O,KAAK68O,iBAAiBxB,iBAAiB,CACrCL,UAAW,IAAI94L,QAAQ,GAAK,GAC5Bq5L,aAAc,EACdjqG,OAAQ,UACRoqG,SAAUx5L,YACV+4L,QAAS,YAEXj7O,KAAK68O,iBAAiBxB,iBAAiB,CACrCL,UAAW,IAAI94L,QAAQ,EAAG,KAC1Bq5L,aAAc,EACdjqG,OAAQ,UACR2pG,QAAS,YAEXj7O,KAAK68O,iBAAiBxB,iBAAiB,CACrCL,UAAW,IAAI94L,QAAQ,EAAG,IAC1Bq5L,aAAc,EACdjqG,OAAQ,MACR2pG,QAAS,QAEXj7O,KAAK68O,iBAAiBxB,iBAAiB,CACrCL,UAAW,IAAI94L,QAAQ,GAAK,GAC5Bq5L,aAAc,EACdjqG,OAAQ,UACR2pG,QAAS,YAEXj7O,KAAK68O,iBAAiBxB,iBAAiB,CACrCL,UAAW,IAAI94L,QAAQ,EAAG,KAC1Bq5L,aAAc,EACdG,SAAUx5L,eACVovF,OAAQ,MACR2pG,QAAS,QAEXj7O,KAAK68O,iBAAiBtC,uCAI5B,IAAIr4L,WAAW,WAAY,WAAYliD,KAAK68O,iBAAiBT,YAAY6B,aACzEj+O,KAAK68O,iBAAiBR,sBACtBr8O,KAAK68O,iBAAiBZ,wBACtB,CAAEhB,QAASj7O,KAAK68O,iBAAiBb,qBAErC,CAEA6F,+BACE,OAAO7hP,KAAKusD,EACVrK,QACA,OACA,CACEi8L,2BAA4Bn+O,KAAK68O,iBAAiB7C,8BAClD+E,mBAAoB,OACpB7mH,WAAW,GAEbl4H,KAAKusD,EACHrK,SACA,OACAliD,KAAK68O,iBAAiB1C,+BACtBn6O,KAAKusD,EACHrK,SACA,aACAliD,KAAK68O,iBAAiBxC,yBAAyB,CAAE3qD,UAAW,QAAStE,UAAW,IAChFprL,KAAKusD,EACHrK,SACA,OACAliD,KAAKusD,EAAErK,WAAY,CACjB9+C,KAAM,OACN47O,YAAa,IAAI98L,QAAQ,GAAI,IAC7BokH,OAAQ,EACRpuJ,OAAQ+2E,mCAEVjvF,KAAK68O,iBAAiBxB,iBAAiB,CACrCL,UAAW,IAAI94L,QAAQ,EAAG,IAC1Bq5L,aAAc,EACdjqG,OAAQ,MACR2pG,QAAS,QAEXj7O,KAAKusD,EACHrK,SACA,WACA,CAAE84L,UAAW,IAAI94L,QAAQ,EAAG,IAAMuW,MAAO,GAAIswB,OAAQ,IACrD/oF,KAAKusD,EAAErK,SAAU,CAAEk4L,OAAQ,YAAa3hL,MAAO,GAAIswB,OAAQ,EAAGkxJ,OAAQ,OAAQv1J,KAAM,UAEtF1kF,KAAK68O,iBAAiBnC,mCAI5B,IAAIx4L,WAAW,WAAY,WAAYliD,KAAK68O,iBAAiBT,YAAY6B,aACzEj+O,KAAK68O,iBAAiBZ,wBACtB,CAAEhB,QAASj7O,KAAK68O,iBAAiBb,qBAErC,CAEA8F,gCACE,OAAO9hP,KAAKusD,EACVrK,QACA,OACA,CACEi8L,2BAA4Bn+O,KAAK68O,iBAAiB7C,8BAClD+E,mBAAoB,OACpB7mH,WAAW,GAEbl4H,KAAKusD,EACHrK,SACA,OACAliD,KAAK68O,iBAAiB1C,+BACtBn6O,KAAKusD,EACHrK,SACA,aACAliD,KAAKusD,EACHrK,SACA,OACAliD,KAAKusD,EAAErK,WAAY,CACjB9+C,KAAM,OACN47O,YAAa,IAAI98L,QAAQ,GAAI,IAC7BokH,OAAQ,EACRpuJ,OAAQ+2E,oCAEVjvF,KAAK68O,iBAAiBjB,gBAAgB,CACpCZ,UAAW,IAAI94L,QAAQ,EAAG,IAC1B45L,WAAY,EACZxqG,OAAQ,KACR2pG,QAAS,OAEXj7O,KAAKusD,EACHrK,SACA,WACA,CAAE84L,UAAW,IAAI94L,QAAQ,EAAG,IAAMuW,MAAO,GAAIswB,OAAQ,IACrD/oF,KAAKusD,EAAErK,SAAU,CAAEk4L,OAAQ,YAAa3hL,MAAO,GAAIswB,OAAQ,EAAGkxJ,OAAQ,OAAQv1J,KAAM,UAEtF1kF,KAAK68O,iBAAiBjC,gCAExB56O,KAAK68O,iBAAiBxC,yBAAyB,CAAE3qD,UAAW,OAAQtE,UAAW,MAGnF,IAAIlpI,WAAW,WAAY,WAAYliD,KAAK68O,iBAAiBT,YAAY6B,aACzEj+O,KAAK68O,iBAAiBZ,wBACtB,CAAEhB,QAASj7O,KAAK68O,iBAAiBb,qBAErC,CAAC77O,kDAjzFUy8O,GAAgC9uN,mHAAhC8uN,EAAgCx3O,QAAhCw3O,EAAgC,mBAAhCA,CAAgC,KCFhCmF,GAAkC,MAAzC,MAAOA,EAGXliP,YAAoBg9O,2BAFpB78O,OAASkiD,mBAEgD,CAEzD8/L,yBACE,OAAOhiP,KAAKusD,EACVrK,QACA,OACA,CACEi8L,2BAA4Bn+O,KAAK68O,iBAAiB7C,8BAClD+E,mBAAoB,QAEtB/+O,KAAKusD,EACHrK,SACA,OACAliD,KAAK68O,iBAAiB1C,+BACtBn6O,KAAKusD,EACHrK,SACA,aACAliD,KAAK68O,iBAAiBxC,yBAAyB,CAAE3qD,UAAW,OAAQtE,UAAW,IAC/EprL,KAAKusD,EACHrK,SACA,OACAliD,KAAKusD,EAAErK,WAAY,CACjB9+C,KAAM,OACN47O,YAAa,IAAI98L,QAAQ,GAAI,IAC7BokH,OAAQ,EACRpuJ,OAAQ+2E,6BAEVjvF,KAAK68O,iBAAiBtwL,EAAErK,SAAU,SAAU,CAAEuW,MAAO,GAAIswB,OAAQ,GAAIrE,KAAM,cAAeu1J,OAAQ,OAClGj6O,KAAK68O,iBAAiBxB,iBAAiB,CACrCL,UAAW,IAAI94L,QAAQ,EAAG,IAC1Bq5L,aAAc,EACdjqG,OAAQ,MACR2pG,QAAS,QAEXj7O,KAAK68O,iBAAiBnC,mCAI5B,IAAIx4L,WAAW,WAAY,WAAYliD,KAAK68O,iBAAiBT,YAAY6B,aACzEj+O,KAAK68O,iBAAiBR,sBACtBr8O,KAAK68O,iBAAiBZ,wBACtB,CAAEhB,QAASj7O,KAAK68O,iBAAiBb,qBAErC,CAEAiG,yBACE,OAAOjiP,KAAKusD,EACVrK,QACA,OACA,CACEi8L,2BAA4Bn+O,KAAK68O,iBAAiB7C,8BAClD+E,mBAAoB,QAEtB/+O,KAAKusD,EACHrK,SACA,OACAliD,KAAK68O,iBAAiB1C,+BACtBn6O,KAAKusD,EACHrK,SACA,WACAliD,KAAK68O,iBAAiBxC,yBAAyB,CAAE3qD,UAAW,WAC5D1vL,KAAKusD,EACHrK,SACA,OACAliD,KAAKusD,EAAErK,WAAY,CACjB9+C,KAAM,OACN47O,YAAa,IAAI98L,QAAQ,GAAI,IAC7BokH,OAAQ,EACRpuJ,OAAQ+2E,6BAEVjvF,KAAK68O,iBAAiBtwL,EAAErK,SAAU,SAAU,CAAEuW,MAAO,GAAIswB,OAAQ,GAAIrE,KAAM,cAAeu1J,OAAQ,OAClGj6O,KAAK68O,iBAAiBjB,gBAAgB,CACpCZ,UAAW,IAAI94L,QAAQ,EAAG,IAC1BovF,OAAQ,KACRwqG,WAAY,EACZ14O,KAAM,KACNq1D,MAAO,IACPswB,OAAQ,IACRkyJ,QAAS,OAEXj7O,KAAK68O,iBAAiBxB,iBAAiB,CACrCL,UAAW,IAAI94L,QAAQ,EAAG,IAC1Bq5L,aAAc,EACdjqG,OAAQ,MACR2pG,QAAS,QAEXj7O,KAAK68O,iBAAiB9B,uCAI5B,IAAI74L,WAAW,WAAY,WAAYliD,KAAK68O,iBAAiBT,YAAY6B,aACzEj+O,KAAK68O,iBAAiBR,sBACtBr8O,KAAK68O,iBAAiBZ,wBACtB,CAAEhB,QAASj7O,KAAK68O,iBAAiBb,qBAErC,CAEAkG,+BACE,OAAOliP,KAAKusD,EACVrK,QACA,OACA,CACEi8L,2BAA4Bn+O,KAAK68O,iBAAiB7C,8BAClD+E,mBAAoB,QAEtB/+O,KAAKusD,EACHrK,SACA,OACAliD,KAAK68O,iBAAiB1C,+BACtBn6O,KAAKusD,EACHrK,SACA,WACAliD,KAAK68O,iBAAiBxC,yBAAyB,CAAE3qD,UAAW,WAC5D1vL,KAAKusD,EACHrK,SACA,OACAliD,KAAKusD,EAAErK,WAAY,CACjB9+C,KAAM,OACN47O,YAAa,IAAI98L,QAAQ,GAAI,IAC7BokH,OAAQ,EACRpuJ,OAAQ+2E,mCAEVjvF,KAAK68O,iBAAiBtwL,EAAErK,SAAU,SAAU,CAAEuW,MAAO,GAAIswB,OAAQ,GAAIrE,KAAM,cAAeu1J,OAAQ,OAClGj6O,KAAK68O,iBAAiBjB,gBAAgB,CACpCZ,UAAW,IAAI94L,QAAQ,EAAG,IAC1BovF,OAAQ,KACRwqG,WAAY,EACZ14O,KAAM,KACNq1D,MAAO,IACPswB,OAAQ,IACRkyJ,QAAS,OAEXj7O,KAAK68O,iBAAiBxB,iBAAiB,CACrCL,UAAW,IAAI94L,QAAQ,EAAG,IAC1Bq5L,aAAc,EACdjqG,OAAQ,QACR2pG,QAAS,UAEXj7O,KAAK68O,iBAAiBxB,iBAAiB,CACrCL,UAAW,IAAI94L,QAAQ,EAAG,IAC1Bq5L,aAAc,EACdjqG,OAAQ,QACR2pG,QAAS,UAEXj7O,KAAK68O,iBAAiB9B,uCAI5B,IAAI74L,WAAW,WAAY,WAAYliD,KAAK68O,iBAAiBT,YAAY6B,aACzEj+O,KAAK68O,iBAAiBR,sBACtBr8O,KAAK68O,iBAAiBZ,wBACtB,CAAEhB,QAASj7O,KAAK68O,iBAAiBb,qBAErC,CAEAmG,+BACE,OAAOniP,KAAKusD,EACVrK,QACA,OACA,CACEi8L,2BAA4Bn+O,KAAK68O,iBAAiB7C,8BAClD+E,mBAAoB,QAEtB/+O,KAAKusD,EACHrK,SACA,OACAliD,KAAK68O,iBAAiB1C,+BACtBn6O,KAAKusD,EACHrK,SACA,aACAliD,KAAK68O,iBAAiBxC,yBAAyB,CAAE3qD,UAAW,OAAQtE,UAAW,IAC/EprL,KAAKusD,EACHrK,SACA,OACAliD,KAAKusD,EAAErK,WAAY,CACjB9+C,KAAM,OACN47O,YAAa,IAAI98L,QAAQ,GAAI,IAC7BokH,OAAQ,EACRpuJ,OAAQ+2E,mCAEVjvF,KAAK68O,iBAAiBtwL,EAAErK,SAAU,SAAU,CAAEuW,MAAO,GAAIswB,OAAQ,GAAIrE,KAAM,cAAeu1J,OAAQ,OAClGj6O,KAAK68O,iBAAiBxB,iBAAiB,CACrCL,UAAW,IAAI94L,QAAQ,EAAG,IAC1Bq5L,aAAc,EACdjqG,OAAQ,MACR2pG,QAAS,QAEXj7O,KAAK68O,iBAAiBnC,mCAI5B,IAAIx4L,WAAW,WAAY,WAAYliD,KAAK68O,iBAAiBT,YAAY6B,aACzEj+O,KAAK68O,iBAAiBR,sBACtBr8O,KAAK68O,iBAAiBZ,wBACtB,CAAEhB,QAASj7O,KAAK68O,iBAAiBb,qBAErC,CAEAoG,6BACE,OAAOpiP,KAAKusD,EACVrK,QACA,OACA,CACEi8L,2BAA4Bn+O,KAAK68O,iBAAiB7C,8BAClD+E,mBAAoB,QAEtB/+O,KAAKusD,EACHrK,SACA,OACAliD,KAAK68O,iBAAiB1C,+BACtBn6O,KAAKusD,EACHrK,SACA,WACAliD,KAAK68O,iBAAiBxC,yBAAyB,CAAE3qD,UAAW,WAC5D,CAAEj3H,MAAO,KACTz4D,KAAKusD,EACHrK,SACA,OACAliD,KAAKusD,EAAErK,WAAY,CACjBuW,MAAO,GACPr1D,KAAM,OACN47O,YAAa,IAAI98L,QAAQ,GAAI,IAC7BokH,OAAQ,EACRpuJ,OAAQ+2E,iCAEVjvF,KAAK68O,iBAAiBtwL,EAAErK,SAAU,SAAU,CAAEuW,MAAO,GAAIswB,OAAQ,GAAIrE,KAAM,cAAeu1J,OAAQ,OAClGj6O,KAAK68O,iBAAiBjB,gBAAgB,CACpCZ,UAAW,IAAI94L,QAAQ,GAAK,GAC5B65L,OAAQ75L,mBACR45L,WAAY,EACZxqG,OAAQ,KACR2pG,QAAS,OAEXj7O,KAAK68O,iBAAiB/B,sCAI5B,IAAI54L,WAAW,WAAY,WAAYliD,KAAK68O,iBAAiBT,YAAY6B,aACzEj+O,KAAK68O,iBAAiBR,sBACtBr8O,KAAK68O,iBAAiBZ,wBACtB,CAAEhB,QAASj7O,KAAK68O,iBAAiBb,qBAErC,CAEAqG,2BACE,OAAOriP,KAAKusD,EACVrK,QACA,OACA,CACEi8L,2BAA4Bn+O,KAAK68O,iBAAiB7C,8BAClD+E,mBAAoB,QAEtB/+O,KAAKusD,EACHrK,SACA,OACAliD,KAAK68O,iBAAiB1C,+BACtBn6O,KAAKusD,EACHrK,SACA,WACAliD,KAAK68O,iBAAiBxC,yBAAyB,CAAE3qD,UAAW,WAC5D1vL,KAAKusD,EACHrK,SACA,OACAliD,KAAKusD,EAAErK,WAAY,CACjB9+C,KAAM,OACN47O,YAAa,IAAI98L,QAAQ,GAAI,IAC7BokH,OAAQ,EACRpuJ,OAAQ+2E,oCAEVjvF,KAAK68O,iBAAiBjB,gBAAgB,CACpCZ,UAAW,IAAI94L,QAAQ,EAAG,IAC1B45L,WAAY,EACZxqG,OAAQ,SACR2pG,QAAS,YAEXj7O,KAAK68O,iBAAiBjB,gBAAgB,CACpCZ,UAAW,IAAI94L,QAAQ,GAAK,GAC5B45L,WAAY,EACZxqG,OAAQ,UACR2pG,QAAS,WACTc,OAAQ75L,kBAEVliD,KAAK68O,iBAAiBxB,iBAAiB,CACrCL,UAAW,IAAI94L,QAAQ,EAAG,IAC1Bq5L,aAAc,EACdjqG,OAAQ,UACR2pG,QAAS,aAEXj7O,KAAK68O,iBAAiBxB,iBAAiB,CACrCL,UAAW,IAAI94L,QAAQ,GAAK,GAC5Bq5L,aAAc,EACdjqG,OAAQ,WACR2pG,QAAS,YACTS,SAAUx5L,qBAEZliD,KAAK68O,iBAAiBtC,uCAI5B,IAAIr4L,WAAW,WAAY,WAAYliD,KAAK68O,iBAAiBT,YAAY6B,aACzEj+O,KAAK68O,iBAAiBR,sBACtBr8O,KAAK68O,iBAAiBZ,wBACtB,CAAEhB,QAASj7O,KAAK68O,iBAAiBb,qBAErC,CAEAsG,qBACE,OAAOtiP,KAAKusD,EACVrK,QACA,OACA,CACEi8L,2BAA4Bn+O,KAAK68O,iBAAiB7C,8BAClD+E,mBAAoB,QAEtB/+O,KAAKusD,EACHrK,SACA,OACAliD,KAAK68O,iBAAiB1C,+BACtBn6O,KAAKusD,EACHrK,SACA,WACAliD,KAAK68O,iBAAiBxC,yBAAyB,CAAE3qD,UAAW,WAC5D1vL,KAAKusD,EACHrK,SACA,OACAliD,KAAKusD,EAAErK,WAAY,CACjB9+C,KAAM,OACN47O,YAAa,IAAI98L,QAAQ,GAAI,IAC7BokH,OAAQ,EACRpuJ,OAAQ+2E,8BAEVjvF,KAAK68O,iBAAiBjB,gBAAgB,CACpCZ,UAAW,IAAI94L,QAAQ,EAAG,IAC1B45L,WAAY,EACZxqG,OAAQ,KACR2pG,QAAS,OAEXj7O,KAAK68O,iBAAiBxB,iBAAiB,CACrCL,UAAW,IAAI94L,QAAQ,EAAG,IAC1Bq5L,aAAc,EACdjqG,OAAQ,MACR2pG,QAAS,UAEXj7O,KAAK68O,iBAAiB9B,uCAI5B,IAAI74L,WAAW,WAAY,WAAYliD,KAAK68O,iBAAiBT,YAAY6B,aACzEj+O,KAAK68O,iBAAiBR,sBACtBr8O,KAAK68O,iBAAiBZ,wBACtB,CAAEhB,QAASj7O,KAAK68O,iBAAiBb,qBAErC,CAEAuG,oBACE,OAAOviP,KAAKusD,EACVrK,QACA,OACA,CACEi8L,2BAA4Bn+O,KAAK68O,iBAAiB7C,8BAClD+E,mBAAoB,QAEtB/+O,KAAKusD,EACHrK,SACA,OACAliD,KAAK68O,iBAAiB1C,+BACtBn6O,KAAKusD,EACHrK,SACA,WACAliD,KAAK68O,iBAAiBxC,yBAAyB,CAAE3qD,UAAW,WAC5D1vL,KAAKusD,EACHrK,SACA,OACAliD,KAAKusD,EAAErK,WAAY,CACjB9+C,KAAM,OACN47O,YAAa,IAAI98L,QAAQ,GAAI,IAC7BokH,OAAQ,EACRpuJ,OAAQ+2E,6BAEVjvF,KAAK68O,iBAAiBjB,gBAAgB,CACpCZ,UAAW,IAAI94L,QAAQ,EAAG,IAC1B45L,WAAY,EACZxqG,OAAQ,KACR2pG,QAAS,OAEXj7O,KAAK68O,iBAAiBxB,iBAAiB,CACrCL,UAAW,IAAI94L,QAAQ,EAAG,IAC1Bq5L,aAAc,EACdjqG,OAAQ,MACR2pG,QAAS,QAEXj7O,KAAK68O,iBAAiB9B,uCAI5B,IAAI74L,WAAW,WAAY,WAAYliD,KAAK68O,iBAAiBT,YAAY6B,aACzEj+O,KAAK68O,iBAAiBR,sBACtBr8O,KAAK68O,iBAAiBZ,wBACtB,CAAEhB,QAASj7O,KAAK68O,iBAAiBb,qBAErC,CAEAwG,oBACE,OAAOxiP,KAAKusD,EACVrK,QACA,OACA,CACEi8L,2BAA4Bn+O,KAAK68O,iBAAiB7C,8BAClD+E,mBAAoB,QAEtB/+O,KAAKusD,EACHrK,SACA,OACAliD,KAAK68O,iBAAiB1C,+BACtBn6O,KAAKusD,EACHrK,SACA,WACAliD,KAAK68O,iBAAiBxC,yBAAyB,CAAE3qD,UAAW,WAC5D1vL,KAAKusD,EACHrK,SACA,OACAliD,KAAKusD,EAAErK,WAAY,CACjB9+C,KAAM,OACN47O,YAAa,IAAI98L,QAAQ,GAAI,IAC7BokH,OAAQ,EACRpuJ,OAAQ+2E,6BAEVjvF,KAAK68O,iBAAiBjB,gBAAgB,CACpCZ,UAAW,IAAI94L,QAAQ,EAAG,IAC1B45L,WAAY,EACZxqG,OAAQ,KACR2pG,QAAS,OAEXj7O,KAAK68O,iBAAiBxB,iBAAiB,CACrCL,UAAW,IAAI94L,QAAQ,EAAG,IAC1Bq5L,aAAc,EACdjqG,OAAQ,MACR2pG,QAAS,QAEXj7O,KAAK68O,iBAAiB9B,uCAI5B,IAAI74L,WAAW,WAAY,WAAYliD,KAAK68O,iBAAiBT,YAAY6B,aACzEj+O,KAAK68O,iBAAiBR,sBACtBr8O,KAAK68O,iBAAiBZ,wBACtB,CAAEhB,QAASj7O,KAAK68O,iBAAiBb,qBAErC,CAEAyG,+BACE,OAAOziP,KAAKusD,EACVrK,QACA,OACA,CACEi8L,2BAA4Bn+O,KAAK68O,iBAAiB7C,8BAClD+E,mBAAoB,QAEtB/+O,KAAKusD,EACHrK,SACA,OACAliD,KAAK68O,iBAAiB1C,+BACtBn6O,KAAKusD,EACHrK,SACA,WACAliD,KAAK68O,iBAAiBxC,yBAAyB,CAAE3qD,UAAW,WAC5D1vL,KAAKusD,EACHrK,SACA,OACAliD,KAAKusD,EAAErK,WAAY,CACjB9+C,KAAM,OACN47O,YAAa,IAAI98L,QAAQ,GAAI,IAC7BokH,OAAQ,EACRpuJ,OAAQ+2E,wCAEVjvF,KAAKusD,EAAErK,SAAU,SAAU,CAAEuW,MAAO,GAAIswB,OAAQ,GAAIrE,KAAM,cAAeu1J,OAAQ,OACjFj6O,KAAK68O,iBAAiBjB,gBAAgB,CACpCZ,UAAW,IAAI94L,QAAQ,IAAM,IAC7B45L,WAAY,EACZxqG,OAAQ,KACR2pG,QAAS,OAEXj7O,KAAK68O,iBAAiBxB,iBAAiB,CACrCL,UAAW,IAAI94L,QAAQ,IAAM,GAC7Bq5L,aAAc,EACdjqG,OAAQ,QACR2pG,QAAS,QACTS,SAAUx5L,kBAEZliD,KAAK68O,iBAAiBxB,iBAAiB,CACrCL,UAAW,IAAI94L,QAAQ,IAAM,GAC7Bq5L,aAAc,EACdjqG,OAAQ,SACR2pG,QAAS,SACTS,SAAUx5L,qBAEZliD,KAAK68O,iBAAiB/B,sCAI5B,IAAI54L,WAAW,WAAY,WAAYliD,KAAK68O,iBAAiBT,YAAY6B,aACzEj+O,KAAK68O,iBAAiBR,sBACtBr8O,KAAK68O,iBAAiBZ,wBACtB,CAAEhB,QAASj7O,KAAK68O,iBAAiBb,qBAErC,CAEA0G,kBACE,OAAO1iP,KAAKusD,EACVrK,QACA,OACA,CACEi8L,2BAA4Bn+O,KAAK68O,iBAAiB7C,8BAClD+E,mBAAoB,QAEtB/+O,KAAKusD,EACHrK,SACA,OACAliD,KAAK68O,iBAAiB1C,+BACtBn6O,KAAKusD,EACHrK,SACA,WACAliD,KAAK68O,iBAAiBxC,yBAAyB,CAAE3qD,UAAW,WAC5D1vL,KAAKusD,EACHrK,SACA,OACAliD,KAAKusD,EAAErK,WAAY,CACjB9+C,KAAM,OACN47O,YAAa,IAAI98L,QAAQ,GAAI,IAC7BokH,OAAQ,EACRpuJ,OAAQ+2E,2BAEVjvF,KAAK68O,iBAAiBjB,gBAAgB,CACpCZ,UAAW,IAAI94L,QAAQ,EAAG,IAC1B45L,WAAY,EACZxqG,OAAQ,KACR2pG,QAAS,OAEXj7O,KAAK68O,iBAAiBxB,iBAAiB,CACrCL,UAAW,IAAI94L,QAAQ,EAAG,IAC1Bq5L,aAAc,EACdjqG,OAAQ,MACR2pG,QAAS,QAEXj7O,KAAK68O,iBAAiB9B,uCAI5B,IAAI74L,WAAW,WAAY,WAAYliD,KAAK68O,iBAAiBT,YAAY6B,aACzEj+O,KAAK68O,iBAAiBR,sBACtBr8O,KAAK68O,iBAAiBZ,wBACtB,CAAEhB,QAASj7O,KAAK68O,iBAAiBb,qBAErC,CAEA2G,mBACE,OAAO3iP,KAAKusD,EACVrK,QACA,OACA,CACEi8L,2BAA4Bn+O,KAAK68O,iBAAiB7C,8BAClD+E,mBAAoB,QAEtB/+O,KAAKusD,EACHrK,SACA,OACAliD,KAAK68O,iBAAiB1C,+BACtBn6O,KAAKusD,EACHrK,SACA,WACAliD,KAAK68O,iBAAiBxC,yBAAyB,CAAE3qD,UAAW,WAC5D1vL,KAAKusD,EACHrK,SACA,OACAliD,KAAKusD,EAAErK,WAAY,CACjB9+C,KAAM,OACN47O,YAAa,IAAI98L,QAAQ,GAAI,IAC7BokH,OAAQ,EACRpuJ,OAAQ+2E,4BAEVjvF,KAAK68O,iBAAiBjB,gBAAgB,CACpCZ,UAAW,IAAI94L,QAAQ,EAAG,IAC1B45L,WAAY,EACZxqG,OAAQ,KACR2pG,QAAS,OAEXj7O,KAAK68O,iBAAiBxB,iBAAiB,CACrCL,UAAW,IAAI94L,QAAQ,EAAG,IAC1Bq5L,aAAc,EACdjqG,OAAQ,MACR2pG,QAAS,QAEXj7O,KAAK68O,iBAAiB9B,uCAI5B,IAAI74L,WAAW,WAAY,WAAYliD,KAAK68O,iBAAiBT,YAAY6B,aACzEj+O,KAAK68O,iBAAiBR,sBACtBr8O,KAAK68O,iBAAiBZ,wBACtB,CAAEhB,QAASj7O,KAAK68O,iBAAiBb,qBAErC,CAEA4G,kBACE,OAAO5iP,KAAKusD,EACVrK,QACA,OACA,CACEi8L,2BAA4Bn+O,KAAK68O,iBAAiB7C,8BAClD+E,mBAAoB,QAEtB/+O,KAAKusD,EACHrK,SACA,OACAliD,KAAK68O,iBAAiB1C,+BACtBn6O,KAAKusD,EACHrK,SACA,aACAliD,KAAKusD,EACHrK,SACA,OACAliD,KAAKusD,EAAErK,WAAY,CACjB9+C,KAAM,OACN47O,YAAa,IAAI98L,QAAQ,GAAI,IAC7BokH,OAAQ,EACRpuJ,OAAQ+2E,2BAEVjvF,KAAK68O,iBAAiBjB,gBAAgB,CACpCZ,UAAW,IAAI94L,QAAQ,EAAG,IAC1B45L,WAAY,EACZxqG,OAAQ,KACR2pG,QAAS,OAEXj7O,KAAK68O,iBAAiBjC,gCAExB56O,KAAK68O,iBAAiBxC,yBAAyB,CAAE3qD,UAAW,SAAUtE,UAAW,MAGrF,IAAIlpI,WAAW,WAAY,WAAYliD,KAAK68O,iBAAiBT,YAAY6B,aACzEj+O,KAAK68O,iBAAiBR,sBACtBr8O,KAAK68O,iBAAiBZ,wBACtB,CAAEhB,QAASj7O,KAAK68O,iBAAiBb,qBAErC,CAEA6G,wBACE,OAAO7iP,KAAKusD,EACVrK,QACA,OACA,CACEi8L,2BAA4Bn+O,KAAK68O,iBAAiB7C,8BAClD+E,mBAAoB,OAEpBI,cAAe,CAACt+O,EAAMq4H,EAAMmY,KAC1B,GAAoB,OAAhBA,EAAKC,QAAmBzwI,EAAKw6H,gBAAgB5nH,MAAQ,EAAG,CAC1D,MAAMygN,EAAOrzN,EAAKw8O,WAAW,QACvBzsG,EAAQ/vI,EAAKw8O,WAAW,MACxB18M,EAAS9/B,EAAKw8O,WAAW,OAEzB+B,GAAclrB,EAAKnrI,OAAS,GAAKmrI,EAAKnrI,OAC5CmrI,EAAKz7J,OAAS2mL,EACdlrB,EAAKnrI,QAAUq2J,EAEfxuG,EAAMn4E,OAAS2mL,EACfxuG,EAAM7nD,QAAUq2J,EAEhBz+M,EAAO83B,OAAS2mL,EAChBz+M,EAAOooD,QAAUq2J,IAIrBC,iBAAkB,CAACx+O,EAAMq4H,EAAMmY,KAC7B,GAAoB,OAAhBA,EAAKC,QAAmBzwI,EAAKw6H,gBAAgB5nH,OAAS,EAAG,CAC3D,MAAMygN,EAAOrzN,EAAKw8O,WAAW,QACvBzsG,EAAQ/vI,EAAKw8O,WAAW,MACxB18M,EAAS9/B,EAAKw8O,WAAW,OAEzB+B,GAAclrB,EAAKnrI,OAAS,GAAKmrI,EAAKnrI,OAC5CmrI,EAAKz7J,OAAS2mL,EACdlrB,EAAKnrI,QAAUq2J,EAEfxuG,EAAMn4E,OAAS2mL,EACfxuG,EAAM7nD,QAAUq2J,EAEhBz+M,EAAO83B,OAAS2mL,EAChBz+M,EAAOooD,QAAUq2J,KAIvBp/O,KAAKusD,EACHrK,SACA,OACAliD,KAAK68O,iBAAiB1C,+BACtBn6O,KAAKusD,EACHrK,SACA,WACAliD,KAAK68O,iBAAiBxC,yBAAyB,CAAE3qD,UAAW,WAC5D1vL,KAAKusD,EACHrK,SACA,OACAliD,KAAKusD,EAAErK,WAAY,CACjB9+C,KAAM,OACN47O,YAAa,IAAI98L,QAAQ,GAAI,IAC7BhqC,OAAQ+2E,4BAEVjvF,KAAK68O,iBAAiBjB,gBAAgB,CACpCZ,UAAW,IAAI94L,QAAQ,EAAG,IAC1BovF,OAAQ,KACRluI,KAAM,KACNq1D,MAAO,EACPswB,OAAQ,GACRkyJ,QAAS,OAEXj7O,KAAK68O,iBAAiBxB,iBAAiB,CACrCL,UAAW,IAAI94L,QAAQ,IAAM,IAC7BovF,OAAQ,MACRluI,KAAM,MACNm4O,aAAc,EACd9iL,MAAO,EACPswB,OAAQ,EACRkyJ,QAAS,QAEXj7O,KAAK68O,iBAAiBnC,mCAI5B,IAAIx4L,WAAW,WAAY,WAAYliD,KAAK68O,iBAAiBT,YAAY6B,aACzEj+O,KAAK68O,iBAAiBR,sBACtBr8O,KAAK68O,iBAAiBZ,wBACtB,CAAEhB,QAASj7O,KAAK68O,iBAAiBb,qBAErC,CAEA8G,2BACE,OAAO9iP,KAAKusD,EACVrK,QACA,OACA,CACEi8L,2BAA4Bn+O,KAAK68O,iBAAiB7C,8BAClD+E,mBAAoB,OACpBI,cAAe,CAACt+O,EAAMq4H,EAAMmY,KAC1B,GAAoB,QAAhBA,EAAKC,QAAoBzwI,EAAKg6H,iBAAiBpnH,MAAQ,EAAG,CAC5D,MAAMygN,EAAOrzN,EAAKw8O,WAAW,QACvBzsG,EAAQ/vI,EAAKw8O,WAAW,MACxB18M,EAAS9/B,EAAKw8O,WAAW,OAEzB+B,GAAclrB,EAAKnrI,OAAS,GAAKmrI,EAAKnrI,OAC5CmrI,EAAKz7J,OAAS2mL,EACdlrB,EAAKnrI,QAAUq2J,EAEfxuG,EAAMn4E,OAAS2mL,EACfxuG,EAAM7nD,QAAUq2J,EAEhBz+M,EAAO83B,OAAS2mL,EAChBz+M,EAAOooD,QAAUq2J,IAIrBC,iBAAkB,CAACx+O,EAAMq4H,EAAMmY,KAC7B,GAAoB,QAAhBA,EAAKC,QAAoBzwI,EAAKg6H,iBAAiBpnH,OAAS,EAAG,CAC7D,MAAMygN,EAAOrzN,EAAKw8O,WAAW,QACvBzsG,EAAQ/vI,EAAKw8O,WAAW,MACxB18M,EAAS9/B,EAAKw8O,WAAW,OAEzB+B,GAAclrB,EAAKnrI,OAAS,GAAKmrI,EAAKnrI,OAC5CmrI,EAAKz7J,OAAS2mL,EACdlrB,EAAKnrI,QAAUq2J,EAEfxuG,EAAMn4E,OAAS2mL,EACfxuG,EAAM7nD,QAAUq2J,EAEhBz+M,EAAO83B,OAAS2mL,EAChBz+M,EAAOooD,QAAUq2J,KAIvBp/O,KAAKusD,EACHrK,SACA,OACAliD,KAAK68O,iBAAiB1C,+BACtBn6O,KAAKusD,EACHrK,SACA,WACAliD,KAAKusD,EAAErK,SAAU,aAAcliD,KAAK68O,iBAAiBxC,yBAAyB,CAAE3qD,UAAW,YAC3F1vL,KAAKusD,EACHrK,SACA,OACAliD,KAAKusD,EAAErK,WAAY,CACjB9+C,KAAM,OACN47O,YAAa,IAAI98L,QAAQ,GAAI,IAC7BhqC,OAAQ+2E,+BAEVjvF,KAAK68O,iBAAiBjB,gBAAgB,CACpCZ,UAAW,IAAI94L,QAAQ,GAAK,IAC5BovF,OAAQ,KACRluI,KAAM,KACN2lF,OAAQ,EACRtwB,MAAO,EACPwiL,QAAS,KACTa,WAAY,IAEd97O,KAAK68O,iBAAiBxB,iBAAiB,CACrCL,UAAW,IAAI94L,QAAQ,EAAG,IAC1BovF,OAAQ,MACRluI,KAAM,MACNq1D,MAAO,EACPswB,OAAQ,GACRkyJ,QAAS,QAEXj7O,KAAK68O,iBAAiBjC,kCAI5B,IAAI14L,WAAW,WAAY,WAAYliD,KAAK68O,iBAAiBT,YAAY6B,aACzEj+O,KAAK68O,iBAAiBR,sBACtBr8O,KAAK68O,iBAAiBZ,wBACtB,CAAEhB,QAASj7O,KAAK68O,iBAAiBb,qBAErC,CAEA+G,yBACE,OAAO/iP,KAAKusD,EACVrK,QACA,OACA,CACEi8L,2BAA4Bn+O,KAAK68O,iBAAiB7C,8BAClD+E,mBAAoB,OACpBI,cAAe,CAACt+O,EAAMq4H,EAAMmY,KAC1BrxI,KAAKgjP,2BAA2BniP,EAAMwwI,EAAI,EAG5CguG,iBAAkB,CAACx+O,EAAMq4H,EAAMmY,KAC7BrxI,KAAKijP,8BAA8BpiP,EAAMwwI,EAAI,GAGjDrxI,KAAKusD,EACHrK,SACA,OACAliD,KAAK68O,iBAAiB1C,+BACtBn6O,KAAKusD,EACHrK,SACA,aACA,CACE9+C,KAAM,QAERpD,KAAK68O,iBAAiBxC,yBAAyB,CAAE3qD,UAAW,WAC5D1vL,KAAKusD,EACHrK,SACA,aACA,CACEokH,OAAQ,IAEVtmK,KAAKusD,EAAErK,WAAY,CACjB9+C,KAAM,OACN47O,YAAa,IAAI98L,QAAQ,EAAG,IAC5BhqC,OAAQ,iDAEVlY,KAAKkjP,qBACLljP,KAAKusD,EAAErK,WAAY,CACjB9+C,KAAM,OACN47O,YAAa,IAAI98L,QAAQ,EAAG,IAC5BhqC,OAAQ,iDAEVlY,KAAKusD,EACHrK,SACA,OACAliD,KAAKusD,EAAErK,SAAU,YAAa,CAAE6mC,OAAQ,GAAItwB,MAAO,EAAGisB,KAAM,cAAeu1J,OAAQ,OACnFj6O,KAAK68O,iBAAiBnC,oCAK9B,IAAIx4L,WAAW,WAAY,WAAYliD,KAAK68O,iBAAiBT,YAAY6B,aACzEj+O,KAAK68O,iBAAiBR,sBACtBr8O,KAAK68O,iBAAiBZ,wBACtB,CAAEhB,QAASj7O,KAAK68O,iBAAiBb,qBAErC,CAEQkH,qBACN,OAAOljP,KAAKusD,EACVrK,SACA,OACA,CACEokH,OAAQ,IAAIpkH,WAAU,GAAM,EAAG,EAAG,IAEpCliD,KAAKusD,EACHrK,SACA,aACA,CACE9+C,KAAM,QAERpD,KAAKmjP,mCACLnjP,KAAKmjP,mCACLnjP,KAAKmjP,mCACLnjP,KAAKmjP,oCAGPnjP,KAAKusD,EACHrK,SACA,OACA,CAAE84L,UAAW,IAAI94L,QAAQ,IAAK,OAC9BliD,KAAKusD,EACHrK,SACA,CACEuW,MAAO,GACPswB,OAAQ,EACRu9E,OAAQ,EACRh1B,OAAQ,KACRluI,KAAM,KACNshF,KAAM,UACNu1J,OAAQ,cACR4B,YAAY,EACZE,OAAQ75L,iBAEV,CACE+4L,QAASj7O,KAAK68O,iBAAiBlB,kBAAkB,OAEnD,IAAIz5L,WAAW,SAAU,YAK7BliD,KAAKusD,EACHrK,SACA,OACA,CAAE84L,UAAW,IAAI94L,QAAQ,GAAK,MAC9BliD,KAAKusD,EACHrK,SACA,CACEuW,MAAO,GACPswB,OAAQ,EACRu9E,OAAQ,EACRh1B,OAAQ,MACRluI,KAAM,MACNshF,KAAM,UACNu1J,OAAQ,cACRwB,cAAc,EACdC,SAAUx5L,oBAEZ,CACE+4L,QAASj7O,KAAK68O,iBAAiBlB,kBAAkB,QAEnD,IAAIz5L,WAAW,SAAU,YAIjC,CAEQihM,mCACN,OAAOnjP,KAAKusD,EAAErK,WAAY,CACxB88L,YAAa,IAAI98L,QAAQ,GAAI,IAC7BokH,OAAQ,IAAIpkH,UAAU,GAAG,EAAI,EAAG,GAChChqC,OAAQ,uDAEZ,CAEQ8qO,2BAA2BniP,EAAewwI,GAChD,IAAI+xG,EACc,OAAhB/xG,EAAKC,OACDzwI,EAAKw6H,gBAAgB5nH,MAAQ5S,EAAKg6H,iBAAiBpnH,MACnD5S,EAAKg6H,iBAAiBpnH,MAAQ5S,EAAKw6H,gBAAgB5nH,MAIzD,GAFA2vO,EAAeA,IAAiBviP,EAAKw6H,gBAAgB5nH,MAAQ,GAAK5S,EAAKg6H,iBAAiBpnH,MAAQ,IAE3F2vO,EACH,OAGF,MAAMxyG,EAAQ/vI,EAAKw8O,WAAW,MACxB18M,EAAS9/B,EAAKw8O,WAAW,OAE/BzsG,EAAMn4E,OAAS,GACf93B,EAAO83B,OAAS,GAEH53D,EAAKw8O,WAAW,QACxB/0O,IAAItI,KAAKmjP,mCAChB,CAEQF,8BAA8BpiP,EAAMwwI,GAC1C,IAAIgyG,EACc,OAAhBhyG,EAAKC,OACDzwI,EAAKw6H,gBAAgB5nH,OAAS5S,EAAKg6H,iBAAiBpnH,MACpD5S,EAAKg6H,iBAAiBpnH,OAAS5S,EAAKw6H,gBAAgB5nH,MAI1D,GAFA4vO,EAAqBA,GAAsBxiP,EAAKw6H,gBAAgB5nH,OAAS,GAAK5S,EAAKg6H,iBAAiBpnH,OAAS,GAExG4vO,EACH,OAGF,MAAMzyG,EAAQ/vI,EAAKw8O,WAAW,MACxB18M,EAAS9/B,EAAKw8O,WAAW,OAE/BzsG,EAAMn4E,OAAS,GACf93B,EAAO83B,OAAS,GAEH53D,EAAKw8O,WAAW,QACxBiG,SAAS,EAChB,CAEAC,uBACE,OAAOvjP,KAAKusD,EACVrK,QACA,OACA,CACEi8L,2BAA4Bn+O,KAAK68O,iBAAiB7C,8BAClD+E,mBAAoB,QAEtB/+O,KAAKusD,EACHrK,SACA,OACAliD,KAAK68O,iBAAiB1C,+BACtBn6O,KAAKusD,EACHrK,SACA,WACAliD,KAAKusD,EAAErK,SAAU,aAAcliD,KAAK68O,iBAAiBxC,yBAAyB,CAAE3qD,UAAW,YAC3F1vL,KAAKusD,EACHrK,SACA,OACAliD,KAAKusD,EAAErK,WAAY,CACjB9+C,KAAM,OACN47O,YAAa,IAAI98L,QAAQ,GAAI,IAC7BokH,OAAQ,EACRpuJ,OAAQ+2E,2BAEVjvF,KAAK68O,iBAAiBjB,gBAAgB,CACpCZ,UAAW,IAAI94L,QAAQ,EAAG,IAC1B45L,WAAY,EACZxqG,OAAQ,KACR2pG,QAAS,OAEXj7O,KAAK68O,iBAAiBxB,iBAAiB,CACrCL,UAAW,IAAI94L,QAAQ,EAAG,IAC1Bq5L,aAAc,EACdjqG,OAAQ,MACR2pG,QAAS,QAEXj7O,KAAK68O,iBAAiB9B,uCAI5B,IAAI74L,WAAW,WAAY,WAAYliD,KAAK68O,iBAAiBT,YAAY6B,aACzEj+O,KAAK68O,iBAAiBR,sBACtBr8O,KAAK68O,iBAAiBZ,wBACtB,CAAEhB,QAASj7O,KAAK68O,iBAAiBb,qBAErC,CAAC77O,kDA1hCU4hP,GAAkCj0N,0FAAlCi0N,EAAkC38O,QAAlC28O,EAAkC,mBAAlCA,CAAkC,KCOlCyB,GAA6B,MAApC,MAAOA,EADb3jP,cAEUG,iBAAc,IAAIooB,MAC1BpoB,WAAQA,KAAKyjP,YAAYx6L,eAEzBvmC,KAAK7N,GACH7U,KAAKyjP,YAAY3qO,KAAKjE,EACxB,CAAC1U,kDANUqjP,EAA6B,iEAA7BA,EAA6Bp+O,QAA7Bo+O,EAA6B,mBAA7BA,CAA6B,KCP7BE,GAAmC,MAA1C,MAAOA,EACX7jP,YAAoB8jP,wCAEpB3jP,OAASkiD,mBAF0E,CAMnF0hM,6BAEE1hM,sCAA+B,OAAQ,CAAC2hM,EAAOC,EAAG1gE,KAChD,MAAM2gE,EAAM,IAAI7hM,YACV8hM,EAAM,IAAI9hM,cAAc,EAAG,GAAG,GACpC6hM,EAAIz7O,IAAI07O,GACRA,EAAI17O,IAAI,IAAI45C,eAAeA,oBAAqB4hM,EAAI,GAAI,IACxDE,EAAI17O,IAAI,IAAI45C,eAAeA,oBAAqB4hM,EAAG,KACnDE,EAAI17O,IAAI,IAAI45C,eAAeA,oBAAqB4hM,EAAG1gE,IACnD4gE,EAAI17O,IAAI,IAAI45C,eAAeA,oBAAqB,EAAGkhI,GAAGpwH,SACtD,MAAMixL,EAAO,IAAI/hM,cAAc4hM,EAAI,GAAI,GAAG,GAC1CC,SAAIz7O,IAAI27O,GAERA,EAAK37O,IAAI,IAAI45C,eAAeA,oBAAqB4hM,EAAI,GAAI,KACzDG,EAAK37O,IAAI,IAAI45C,eAAeA,oBAAqB4hM,EAAG,KACpDC,EAAIG,MAAQ,IAAIhiM,QAAQ,EAAG,KAC3B6hM,EAAII,MAAQjiM,oBACL6hM,IAGF/jP,KAAKusD,EACVrK,QACA,OACA,CACEkiM,WAAW,EACXzD,QAAS,IAAIz+L,QAAQ,IAAK,IAC1Bi8L,2BAA4Bn+O,KAAKqkP,yCAEnCrkP,KAAKusD,EACHrK,SACA,OACA,CACE9+C,KAAM,QACN82O,YAAa,EACbgK,MAAO,IAAIhiM,QAAQ,EAAG,GACtBiiM,MAAO,IAAIjiM,QAAQ,EAAG,IAExB,IAAIA,WAAW,OAAQ,GAAIx2C,GACpBA,EAAKg5E,KAIHh5E,EAAKg5E,KAHH,sBAIRu5J,aACH,IAAI/7L,WAAW,UAAW,GAAIx2C,GACxBkhF,GAAkBlhF,EAAK2uD,SAClB,EAGF3uD,EAAK2uD,SACX4jL,cAELj+O,KAAKusD,EACHrK,aACA,CACEokH,OAAQ,GACRkuC,QAAS,IAAItyJ,QAAQoiM,IAAKA,KAC1BtvB,KAAM9yK,qBACNugH,UAAU,EACVi+E,QAASx+L,oBACTy+L,QAAS,IAAIz+L,QAAQ,IAAK,IAC1BqiM,WAAYvkP,KAAKwkP,wBACjBC,WAAarH,IACX,MAAQ7nN,QAAS6nN,EAEXsH,EAAe,CAAEjsL,MAAOljC,EAAKmvN,aAAajsL,MAAOswB,OAAQxzD,EAAKmvN,aAAa37J,QAEjFq0J,EAAU7nN,KAAKwzD,OAASu7J,IACxBlH,EAAU7nN,KAAKkjC,MAAQ6rL,IACvBlH,EAAU7nN,KAAKovN,eACf,MAAMC,EAA2B,CAAEnsL,MAAOljC,EAAKmvN,aAAajsL,MAAOswB,OAAQxzD,EAAKmvN,aAAa37J,QAE7FxzD,EAAKkjC,MACHisL,EAAajsL,MAAQmsL,EAAyBnsL,MAAQisL,EAAajsL,MAAQmsL,EAAyBnsL,MAEtGljC,EAAKwzD,OACH27J,EAAa37J,OAAS67J,EAAyB77J,OAC3C27J,EAAa37J,OACb67J,EAAyB77J,QAEjC3lF,KAAM,QAER,IAAI8+C,WAAW,QAAQ+7L,cAEzB,IAAI/7L,WAAW,WAAY,WAAYA,gBAAgB+7L,WAAW/7L,oBAClE,IAAIA,WAAW,SAAU,UAAU+7L,aACnC,IAAI/7L,WAAW,QAAS,SAAS+7L,aAErC,CAEQuG,wBACN,MAAMK,EAAe,IAAI3iM,YACnB4iM,EAAiBzjP,SAASL,cAAc,YAE9C6jP,SAAa1uL,KAAO,CAACinL,EAAW96H,EAASyiI,KACvC,KAAM3H,aAAqBl7L,cACzB,OAGF,MAAM8iM,EAAkBD,EAExBD,EAAerkP,iBAAiB,UAAW0H,KACzC,MAAQ2I,QAAQ3I,GAChB,MAAY,QAAR2I,IACF3I,GAAE6B,kBACK,IAEG,WAAR8G,KAEFi0O,EAAKE,WACDF,EAAKziI,SACPyiI,EAAKziI,QAAQo4C,UAIV,KASToqF,EAAerkP,iBACb,OACA,MAEKukP,GACqC,OAAtCA,EAAgBE,mBAChBF,EAAgBt8N,QAAUw5B,+BAK5B4iM,EAAepqF,QAEXsqF,EAAgBG,wBAClBL,EAAevpH,SACfupH,EAAe3xE,kBAAkB,EAAG,OAAI,GAG5C,GAGF2xE,EAAe54O,MAAQkxO,EAAU15N,KACjCohO,EAAe/9O,MAAMgjM,OAAS,OAE9B,MAAQhd,SAAUqwD,EAAU96H,QACtB8iI,EAAcl6N,KAAKosF,MAAMy1E,EAAQqwD,EAAUiI,eAAe5sL,OAC1D6sL,EAAep6N,KAAKosF,MAAMy1E,EAAQqwD,EAAUiI,eAAet8J,QACjE+7J,EAAe/9O,MAAM0xD,MAAQ,GAAG2sL,EAAc,MAC9CN,EAAe/9O,MAAMgiF,OAAS,GAAGu8J,EAAe,MAEhD,MAAMC,EAAiBr6N,KAAKosF,MAAc,GAARy1E,GAClC+3D,EAAe/9O,MAAMmpL,SAAW,GAAGq1D,MAEnCT,EAAe/9O,MAAMwoL,gBAAkB,QAEvC,MAAMh9C,EAAM6qG,EAAUoI,iBAAiBtjM,iBACjCpO,GAAMwuE,EAAQmjI,mBAAmBlzG,GACvCuyG,EAAe/9O,MAAMkpG,KAAUn8D,GAAIzf,EAAI,EAAX,KAC5BywN,EAAe/9O,MAAMw4I,IAASzrG,GAAIohD,EAAI,EAAX,KAC3B4vJ,EAAe/9O,MAAMu7B,SAAW,WAChCwiN,EAAe/9O,MAAMunL,OAAS,MAEV,OAAhBhsE,EAAQojI,KACVpjI,EAAQojI,IAAIh9O,YAAYo8O,GAG1BA,EAAepqF,OAAK,EAGtBmqF,EAAan8J,KAAO45B,IACdA,EAAQojI,IAAInoL,SAASunL,IACvBxiI,EAAQojI,IAAI3kP,YAAY+jP,EAAc,EAI1CD,EAAac,cAAgB,IACpBb,EAAe54O,MAGjB24O,CACT,CAEQR,wCACN,OAAOrkP,KAAKusD,EACVrK,aACA,OACAliD,KAAKusD,EACHrK,SACA,OACAliD,KAAKusD,EAAErK,SAAU,CAAE+3L,OAAQ,aAAcC,YAAa,EAAGx1J,KAAM,OAC/D1kF,KAAKusD,EAAErK,iBAETliD,KAAKusD,EACHrK,SACA,aACA,CAAE84L,UAAW94L,YAAa0jM,eAAgB1jM,gBAC1CliD,KAAKusD,EACH,SACAvsD,KAAKusD,EAAErK,aAAc,CACnBx+B,KAAM,SACN2rN,KAAM,qBAER,CACEoC,MAAO,CAACtpO,EAAkBs7C,KACxB,MAAMoiM,EAAcpiM,EAAOluB,KAAKuwN,YAE1BjC,EAAQgC,EAAYxI,WAAW,UAEhCwG,IAAU92J,GAAa82J,EAAMn/J,OAIlC1kF,KAAK2jP,8BAA8BjhO,KAAK,CACtC4/F,QAASujI,EAAYvjI,QACrByjI,eAAgBF,EAAY/0O,IAC5Bk1O,UAAW79O,EAAE89O,UAAU5xN,EACvB6xN,UAAW/9O,EAAE89O,UAAU/wJ,EACvBxQ,KAAMm/J,EAAMn/J,MACb,EAEHyhK,gBAAiB,eAEnBnmP,KAAKusD,EAAErK,SAAU,CAAEwiC,KAAM,KAAMu1J,OAAQ,KAAM+E,YAAa,IAAI98L,QAAQ,GAAI,IAAKokH,OAAQ,MAI/F,CAACnmK,kDA7OUujP,GAAmC51N,0FAAnC41N,EAAmCt+O,QAAnCs+O,EAAmC,mBAAnCA,CAAmC,KCAnC0C,GAAgC,MAAvC,MAAOA,EAGXvmP,YAAoBg9O,2BAFpB78O,OAASkiD,mBAEgD,CAEzDmkM,0BACE,OAAOrmP,KAAKusD,EACVrK,QACA,OACA,CACEi8L,2BAA4Bn+O,KAAK68O,iBAAiB7C,8BAClD+E,mBAAoB,QAEtB/+O,KAAKusD,EACHrK,SACA,OACAliD,KAAK68O,iBAAiB1C,+BACtBn6O,KAAKusD,EACHrK,SACA,aACAliD,KAAKusD,EACHrK,SACA,OACAliD,KAAKusD,EAAErK,WAAY,CACjB9+C,KAAM,OACN47O,YAAa,IAAI98L,QAAQ,GAAI,IAC7BokH,OAAQ,EACRpuJ,OAAQ+2E,8BAEVjvF,KAAK68O,iBAAiBtwL,EAAErK,SAAU,SAAU,CAAEuW,MAAO,GAAIswB,OAAQ,GAAIrE,KAAM,cAAeu1J,OAAQ,OAClGj6O,KAAK68O,iBAAiBjB,gBAAgB,CACpCZ,UAAW,IAAI94L,QAAQ,EAAG,IAC1BovF,OAAQ,KACRwqG,WAAY,EACZ14O,KAAM,KACNq1D,MAAO,EACPswB,OAAQ,EACRkyJ,QAAS,OAEXj7O,KAAK68O,iBAAiBjC,gCAExB56O,KAAK68O,iBAAiBxC,yBAAyB,CAAE3qD,UAAW,OAAQtE,UAAW,MAGnF,IAAIlpI,WAAW,WAAY,WAAYliD,KAAK68O,iBAAiBT,YAAY6B,aACzEj+O,KAAK68O,iBAAiBR,sBACtBr8O,KAAK68O,iBAAiBZ,wBACtB,CAAEhB,QAASj7O,KAAK68O,iBAAiBb,qBAErC,CAEAsK,+BACE,OAAOtmP,KAAKusD,EACVrK,QACA,OACA,CACEi8L,2BAA4Bn+O,KAAK68O,iBAAiB7C,8BAClD+E,mBAAoB,QAEtB/+O,KAAKusD,EACHrK,SACA,OACAliD,KAAK68O,iBAAiB1C,+BACtBn6O,KAAKusD,EACHrK,SACA,WACAliD,KAAK68O,iBAAiBxC,yBAAyB,CAAE3qD,UAAW,WAC5D,CAAEj3H,MAAO,KACTz4D,KAAKusD,EACHrK,SACA,OACAliD,KAAKusD,EACHrK,WAEA,CACEuW,MAAO,GACPr1D,KAAM,OACN47O,YAAa,IAAI98L,QAAQ,GAAI,IAC7BokH,OAAQ,EACRpuJ,OAAQ+2E,mCAGZjvF,KAAK68O,iBAAiBtwL,EAAErK,SAAU,SAAU,CAAEuW,MAAO,GAAIswB,OAAQ,GAAIrE,KAAM,cAAeu1J,OAAQ,OAClGj6O,KAAK68O,iBAAiBjB,gBAAgB,CACpCZ,UAAW,IAAI94L,QAAQ,GAAK,GAC5B65L,OAAQ75L,mBACR45L,WAAY,EACZxqG,OAAQ,KACR2pG,QAAS,OAEXj7O,KAAK68O,iBAAiB/B,sCAI5B,IAAI54L,WAAW,WAAY,WAAYliD,KAAK68O,iBAAiBT,YAAY6B,aACzEj+O,KAAK68O,iBAAiBR,sBACtBr8O,KAAK68O,iBAAiBZ,wBACtB,CAAEhB,QAASj7O,KAAK68O,iBAAiBb,qBAErC,CAEAuK,iCACE,OAAOvmP,KAAKusD,EACVrK,QACA,OACA,CACEi8L,2BAA4Bn+O,KAAK68O,iBAAiB7C,8BAClD+E,mBAAoB,QAEtB/+O,KAAKusD,EACHrK,SACA,OACAliD,KAAK68O,iBAAiB1C,+BACtBn6O,KAAKusD,EACHrK,SACA,aACAliD,KAAK68O,iBAAiBxC,yBAAyB,CAAE3qD,UAAW,QAAStE,UAAW,IAChFprL,KAAKusD,EACHrK,SACA,OACAliD,KAAKusD,EAAErK,WAAY,CACjB9+C,KAAM,OACN47O,YAAa,IAAI98L,QAAQ,GAAI,IAC7BokH,OAAQ,EACRpuJ,OAAQ+2E,qCAEVjvF,KAAK68O,iBAAiBtwL,EAAErK,SAAU,SAAU,CAAEuW,MAAO,GAAIswB,OAAQ,GAAIrE,KAAM,cAAeu1J,OAAQ,OAClGj6O,KAAK68O,iBAAiBxB,iBAAiB,CACrCL,UAAW,IAAI94L,QAAQ,EAAG,IAC1Bq5L,aAAc,EACdjqG,OAAQ,MACR2pG,QAAS,QAEXj7O,KAAK68O,iBAAiBnC,mCAI5B,IAAIx4L,WAAW,WAAY,WAAYliD,KAAK68O,iBAAiBT,YAAY6B,aACzEj+O,KAAK68O,iBAAiBR,sBACtBr8O,KAAK68O,iBAAiBZ,wBACtB,CAAEhB,QAASj7O,KAAK68O,iBAAiBb,qBAErC,CAEAwK,yBACE,OAAOxmP,KAAKusD,EACVrK,QACA,OACA,CACEi8L,2BAA4Bn+O,KAAK68O,iBAAiB7C,8BAClD+E,mBAAoB,QAEtB/+O,KAAKusD,EACHrK,SACA,OACAliD,KAAK68O,iBAAiB1C,+BACtBn6O,KAAKusD,EACHrK,SACA,aACAliD,KAAKusD,EACHrK,SACA,OACAliD,KAAKusD,EAAErK,WAAY,CACjB9+C,KAAM,OACN47O,YAAa,IAAI98L,QAAQ,GAAI,IAC7BokH,OAAQ,EACRpuJ,OAAQ+2E,6BAEVjvF,KAAK68O,iBAAiBtwL,EAAErK,SAAU,SAAU,CAAEuW,MAAO,GAAIswB,OAAQ,GAAIrE,KAAM,cAAeu1J,OAAQ,OAClGj6O,KAAK68O,iBAAiBjB,gBAAgB,CACpCZ,UAAW,IAAI94L,QAAQ,EAAG,IAC1BovF,OAAQ,KACRwqG,WAAY,EACZ14O,KAAM,KACNq1D,MAAO,EACPswB,OAAQ,EACRkyJ,QAAS,OAEXj7O,KAAK68O,iBAAiBjC,gCAExB56O,KAAK68O,iBAAiBxC,yBAAyB,CAAE3qD,UAAW,OAAQtE,UAAW,MAGnF,IAAIlpI,WAAW,WAAY,WAAYliD,KAAK68O,iBAAiBT,YAAY6B,aACzEj+O,KAAK68O,iBAAiBR,sBACtBr8O,KAAK68O,iBAAiBZ,wBACtB,CAAEhB,QAASj7O,KAAK68O,iBAAiBb,qBAErC,CAEAyK,0BACE,OAAOzmP,KAAKusD,EACVrK,QACA,OACA,CACEi8L,2BAA4Bn+O,KAAK68O,iBAAiB7C,8BAClD+E,mBAAoB,OAEpBI,cAAe,CAACt+O,EAAMq4H,EAAMmY,KAC1B,GAAoB,OAAhBA,EAAKC,QAAmBzwI,EAAKw6H,gBAAgB5nH,MAAQ,EAAG,CAC1D,MAAMygN,EAAOrzN,EAAKw8O,WAAW,QACvBzsG,EAAQ/vI,EAAKw8O,WAAW,MACxB18M,EAAS9/B,EAAKw8O,WAAW,OAEzB+B,GAAclrB,EAAKnrI,OAAS,GAAKmrI,EAAKnrI,OAC5CmrI,EAAKz7J,OAAS2mL,EACdlrB,EAAKnrI,QAAUq2J,EAEfxuG,EAAMn4E,OAAS2mL,EACfxuG,EAAM7nD,QAAUq2J,EAEhBz+M,EAAO83B,OAAS2mL,EAChBz+M,EAAOooD,QAAUq2J,IAIrBC,iBAAkB,CAACx+O,EAAMq4H,EAAMmY,KAC7B,GAAoB,OAAhBA,EAAKC,QAAmBzwI,EAAKw6H,gBAAgB5nH,OAAS,EAAG,CAC3D,MAAMygN,EAAOrzN,EAAKw8O,WAAW,QACvBzsG,EAAQ/vI,EAAKw8O,WAAW,MACxB18M,EAAS9/B,EAAKw8O,WAAW,OAEzB+B,GAAclrB,EAAKnrI,OAAS,GAAKmrI,EAAKnrI,OAC5CmrI,EAAKz7J,OAAS2mL,EACdlrB,EAAKnrI,QAAUq2J,EAEfxuG,EAAMn4E,OAAS2mL,EACfxuG,EAAM7nD,QAAUq2J,EAEhBz+M,EAAO83B,OAAS2mL,EAChBz+M,EAAOooD,QAAUq2J,KAIvBp/O,KAAKusD,EACHrK,SACA,OACAliD,KAAK68O,iBAAiB1C,+BACtBn6O,KAAKusD,EACHrK,SACA,WACAliD,KAAK68O,iBAAiBxC,yBAAyB,CAAE3qD,UAAW,WAC5D1vL,KAAKusD,EACHrK,SACA,OACAliD,KAAKusD,EAAErK,WAAY,CACjB9+C,KAAM,OACN47O,YAAa,IAAI98L,QAAQ,GAAI,IAC7BhqC,OAAQ+2E,uBAEVjvF,KAAK68O,iBAAiBjB,gBAAgB,CACpCZ,UAAW,IAAI94L,QAAQ,EAAG,IAC1BovF,OAAQ,KACRluI,KAAM,KACNq1D,MAAO,EACPswB,OAAQ,GACRkyJ,QAAS,OAEXj7O,KAAK68O,iBAAiBxB,iBAAiB,CACrCL,UAAW,IAAI94L,QAAQ,IAAM,IAC7BovF,OAAQ,MACRluI,KAAM,MACNm4O,aAAc,EACd9iL,MAAO,EACPswB,OAAQ,EACRkyJ,QAAS,QAEXj7O,KAAK68O,iBAAiBnC,mCAI5B,IAAIx4L,WAAW,WAAY,WAAYliD,KAAK68O,iBAAiBT,YAAY6B,aACzEj+O,KAAK68O,iBAAiBR,sBACtBr8O,KAAK68O,iBAAiBZ,wBACtB,CAAEhB,QAASj7O,KAAK68O,iBAAiBb,qBAErC,CAEA0K,6BACE,OAAO1mP,KAAKusD,EACVrK,QACA,OACA,CACEi8L,2BAA4Bn+O,KAAK68O,iBAAiB7C,8BAClD+E,mBAAoB,OACpBI,cAAe,CAACt+O,EAAMq4H,EAAMmY,KAC1B,GAAoB,QAAhBA,EAAKC,QAAoBzwI,EAAKg6H,iBAAiBpnH,MAAQ,EAAG,CAC5D,MAAMygN,EAAOrzN,EAAKw8O,WAAW,QACvBzsG,EAAQ/vI,EAAKw8O,WAAW,MACxB18M,EAAS9/B,EAAKw8O,WAAW,OAEzB+B,GAAclrB,EAAKnrI,OAAS,GAAKmrI,EAAKnrI,OAC5CmrI,EAAKz7J,OAAS2mL,EACdlrB,EAAKnrI,QAAUq2J,EAEfxuG,EAAMn4E,OAAS2mL,EACfxuG,EAAM7nD,QAAUq2J,EAEhBz+M,EAAO83B,OAAS2mL,EAChBz+M,EAAOooD,QAAUq2J,IAIrBC,iBAAkB,CAACx+O,EAAMq4H,EAAMmY,KAC7B,GAAoB,QAAhBA,EAAKC,QAAoBzwI,EAAKg6H,iBAAiBpnH,OAAS,EAAG,CAC7D,MAAMygN,EAAOrzN,EAAKw8O,WAAW,QACvBzsG,EAAQ/vI,EAAKw8O,WAAW,MACxB18M,EAAS9/B,EAAKw8O,WAAW,OAEzB+B,GAAclrB,EAAKnrI,OAAS,GAAKmrI,EAAKnrI,OAC5CmrI,EAAKz7J,OAAS2mL,EACdlrB,EAAKnrI,QAAUq2J,EAEfxuG,EAAMn4E,OAAS2mL,EACfxuG,EAAM7nD,QAAUq2J,EAEhBz+M,EAAO83B,OAAS2mL,EAChBz+M,EAAOooD,QAAUq2J,KAIvBp/O,KAAKusD,EACHrK,SACA,OACAliD,KAAK68O,iBAAiB1C,+BACtBn6O,KAAKusD,EACHrK,SACA,WACAliD,KAAKusD,EAAErK,SAAU,aAAcliD,KAAK68O,iBAAiBxC,yBAAyB,CAAE3qD,UAAW,YAC3F1vL,KAAKusD,EACHrK,SACA,OACAliD,KAAKusD,EAAErK,WAAY,CACjB9+C,KAAM,OACN47O,YAAa,IAAI98L,QAAQ,GAAI,IAC7BhqC,OAAQ+2E,iCAEVjvF,KAAK68O,iBAAiBjB,gBAAgB,CACpCZ,UAAW,IAAI94L,QAAQ,GAAK,IAC5BovF,OAAQ,KACRluI,KAAM,KACN2lF,OAAQ,EACRtwB,MAAO,EACPwiL,QAAS,KACTa,WAAY,IAEd97O,KAAK68O,iBAAiBxB,iBAAiB,CACrCL,UAAW,IAAI94L,QAAQ,EAAG,IAC1BovF,OAAQ,MACRluI,KAAM,MACNq1D,MAAO,EACPswB,OAAQ,GACRkyJ,QAAS,QAEXj7O,KAAK68O,iBAAiBjC,kCAI5B,IAAI14L,WAAW,WAAY,WAAYliD,KAAK68O,iBAAiBT,YAAY6B,aACzEj+O,KAAK68O,iBAAiBR,sBACtBr8O,KAAK68O,iBAAiBZ,wBACtB,CAAEhB,QAASj7O,KAAK68O,iBAAiBb,qBAErC,CAEA2K,2BACE,OAAO3mP,KAAKusD,EACVrK,QACA,OACA,CACEi8L,2BAA4Bn+O,KAAK68O,iBAAiB7C,8BAClD+E,mBAAoB,QAEtB/+O,KAAKusD,EACHrK,SACA,OACAliD,KAAK68O,iBAAiB1C,+BACtBn6O,KAAKusD,EACHrK,SACA,aACAliD,KAAK68O,iBAAiBxC,yBAAyB,CAAE3qD,UAAW,QAAStE,UAAW,IAChFprL,KAAKusD,EACHrK,SACA,OACAliD,KAAKusD,EAAErK,WAAY,CACjB9+C,KAAM,OACN47O,YAAa,IAAI98L,QAAQ,GAAI,IAC7BokH,OAAQ,EACRpuJ,OAAQ+2E,+BAEVjvF,KAAK68O,iBAAiBtwL,EAAErK,SAAU,SAAU,CAAEuW,MAAO,GAAIswB,OAAQ,GAAIrE,KAAM,cAAeu1J,OAAQ,OAClGj6O,KAAK68O,iBAAiBxB,iBAAiB,CACrCL,UAAW,IAAI94L,QAAQ,EAAG,IAC1Bq5L,aAAc,EACdjqG,OAAQ,MACR2pG,QAAS,QAEXj7O,KAAK68O,iBAAiBnC,mCAI5B,IAAIx4L,WAAW,WAAY,WAAYliD,KAAK68O,iBAAiBT,YAAY6B,aACzEj+O,KAAK68O,iBAAiBR,sBACtBr8O,KAAK68O,iBAAiBZ,wBACtB,CAAEhB,QAASj7O,KAAK68O,iBAAiBb,qBAErC,CAEA4K,mCACE,OAAO5mP,KAAKusD,EACVrK,QACA,OACA,CACEi8L,2BAA4Bn+O,KAAK68O,iBAAiB7C,8BAClD+E,mBAAoB,QAEtB/+O,KAAKusD,EACHrK,SACA,OACAliD,KAAK68O,iBAAiB1C,+BACtBn6O,KAAKusD,EACHrK,SACA,WACAliD,KAAK68O,iBAAiBxC,yBAAyB,CAAE3qD,UAAW,WAC5D1vL,KAAKusD,EACHrK,SACA,OACAliD,KAAKusD,EAAErK,WAAY,CACjB9+C,KAAM,OACN47O,YAAa,IAAI98L,QAAQ,GAAI,IAC7BokH,OAAQ,EACRpuJ,OAAQ+2E,uCAEVjvF,KAAK68O,iBAAiBtwL,EAAErK,SAAU,SAAU,CAAEuW,MAAO,GAAIswB,OAAQ,GAAIrE,KAAM,cAAeu1J,OAAQ,OAClGj6O,KAAK68O,iBAAiBjB,gBAAgB,CACpCZ,UAAW,IAAI94L,QAAQ,EAAG,IAC1B45L,WAAY,EACZxqG,OAAQ,KACR2pG,QAAS,OAEXj7O,KAAK68O,iBAAiBxB,iBAAiB,CACrCL,UAAW,IAAI94L,QAAQ,EAAG,IAC1Bq5L,aAAc,EACdjqG,OAAQ,MACR2pG,QAAS,QAEXj7O,KAAK68O,iBAAiB9B,uCAI5B,IAAI74L,WAAW,WAAY,WAAYliD,KAAK68O,iBAAiBT,YAAY6B,aACzEj+O,KAAK68O,iBAAiBR,sBACtBr8O,KAAK68O,iBAAiBZ,wBACtB,CAAEhB,QAASj7O,KAAK68O,iBAAiBb,qBAErC,CAAC77O,kDAvcUimP,GAAgCt4N,0FAAhCs4N,EAAgChhP,QAAhCghP,EAAgC,mBAAhCA,CAAgC,KCYhCS,GAAyB,MAAhC,MAAOA,EAKXhnP,YACES,EACQ2jI,EACA6iH,EACAC,EACAC,EACAC,GAJAjnP,+BACAA,wBACAA,kCACAA,oCACAA,gCAERA,KAAKikI,wBAAwBijH,mBAAmB3uO,UAAU,KACxDvY,KAAKikI,wBAAwB1J,YAAU,EAE3C,CAEAluE,kBACErsD,KAAKmnP,sBACP,CAEAA,uBACEnnP,KAAKikI,wBAAwBnN,YAAc92H,KAAK8mP,iBAAiB/J,qBACjE/8O,KAAKikI,wBAAwBnN,YAAYswH,gBAAkBpnP,KAAKqnP,qBAChErnP,KAAKikI,wBAAwBnN,YAAYwwH,gBAAkBtnP,KAAKunP,qBAChEvnP,KAAKikI,wBAAwBnN,YAAY5uC,MAAQloF,KAAK8mP,iBAAiBpI,mBACvE1+O,KAAKikI,wBAAwBnN,YAAY0wH,YAAcxnP,KAAK8mP,iBAAiBvI,yBAE7Ev+O,KAAKikI,wBAAwBnN,YAAY2wH,WAAY,EACpDznP,KAAKikI,wBAAwBnN,YAAY4wH,YAAYC,aAAiCC,kBAAoB,GAC1G5nP,KAAKikI,wBAAwBnN,YAAY4wH,YAAYC,aAAiCE,iBAAmB,GAC1G7nP,KAAKikI,wBAAwBnN,YAAY4wH,YAAYI,kBAAkBn/N,MAAQ,IAC/E3oB,KAAKikI,wBAAwBnN,YAAYixH,iBAAiBC,WAAY,EAEtEhoP,KAAKikI,wBAAwBnN,YAAYmxH,KAAKC,aAAe,IAAIhmM,QAAQ,GAAI,IAC7EliD,KAAKikI,wBAAwBnN,YAAY4wH,YAAYS,aAAaC,mBAAoB,EACtFpoP,KAAKikI,wBAAwBnN,YAAY4wH,YAAYW,aAAaD,mBAAoB,EAGtFpoP,KAAKikI,wBAAwBqkH,SAAWtoP,KAAK8mP,iBAAiBhK,sBAC9D98O,KAAKikI,wBAAwBqkH,SAASC,SAAWvoP,KAAKikI,wBAAwBnN,YAE9EvqE,EAAE,iBAAiBziC,KAAK,mEAAoE,KAC1F9pB,KAAKikI,wBAAwBnN,YAAYM,eAAa,GAGxD7qE,EAAE,8BAA8BC,GAAG,SAAU,KAC3CxsD,KAAKikI,wBAAwBnN,YAAYM,eAAa,EAE1D,CAEQmwH,qBACN,MAAMD,EAAkB,IAAI5hP,OAC5B4hP,SAAgBh/O,IAAI,GAAItI,KAAK8mP,iBAAiBnJ,mBAC9C2J,EAAgBh/O,IAAIm0G,mBAAgCz8G,KAAK8mP,iBAAiBnJ,mBAC1E2J,EAAgBh/O,IAAIm0G,yBAAsCz8G,KAAK8mP,iBAAiBzI,wBAChFiJ,EAAgBh/O,IAAIm0G,4BAAyCz8G,KAAK8mP,iBAAiBxI,0BAC5EgJ,CACT,CAEQD,qBACN,MAAMmB,EAAc,IAAI9iP,OACxB8iP,SAAYlgP,IAAI2mF,qBAAwCjvF,KAAK8mP,iBAAiBhI,4BAC9E0J,EAAYlgP,IAAI2mF,YAA+BjvF,KAAK8mP,iBAAiB7H,mBACrEuJ,EAAYlgP,IAAI2mF,aAAgCjvF,KAAK8mP,iBAAiB5H,oBACtEsJ,EAAYlgP,IAAI2mF,gBAAmCjvF,KAAK8mP,iBAAiBvH,uBACzEiJ,EAAYlgP,IAAI2mF,YAA+BjvF,KAAK8mP,iBAAiBtH,mBACrEgJ,EAAYlgP,IAAI2mF,yBAA4CjvF,KAAK8mP,iBAAiBrH,gCAClF+I,EAAYlgP,IAAI2mF,gBAAmCjvF,KAAK8mP,iBAAiBpH,uBACzE8I,EAAYlgP,IACV2mF,6BACAjvF,KAAK8mP,iBAAiBnH,oCAExB6I,EAAYlgP,IAAI2mF,4BAA+CjvF,KAAK8mP,iBAAiBlH,wBACrF4I,EAAYlgP,IAAI2mF,YAA+BjvF,KAAK8mP,iBAAiBjH,mBACrE2I,EAAYlgP,IAAI2mF,gBAAmCjvF,KAAK8mP,iBAAiB/G,uBACzEyI,EAAYlgP,IAAI2mF,gBAAmCjvF,KAAK8mP,iBAAiBxG,uBACzEkI,EAAYlgP,IAAI2mF,qBAAwCjvF,KAAK8mP,iBAAiBhH,4BAC9E0I,EAAYlgP,IACV2mF,6BACAjvF,KAAK8mP,iBAAiBvG,oCAExBiI,EAAYlgP,IAAI2mF,wBAA2CjvF,KAAK8mP,iBAAiBjG,+BACjF2H,EAAYlgP,IAAI2mF,sBAAyCjvF,KAAK8mP,iBAAiB3F,6BAC/EqH,EAAYlgP,IAAI2mF,0BAA6CjvF,KAAK8mP,iBAAiB3G,iCACnFqI,EAAYlgP,IAAI2mF,wBAA2CjvF,KAAK8mP,iBAAiBzG,+BACjFmI,EAAYlgP,IAAI2mF,WAA8BjvF,KAAK8mP,iBAAiB7G,kBACpEuI,EAAYlgP,IAAI2mF,WAA8BjvF,KAAK8mP,iBAAiB5G,kBACpEsI,EAAYlgP,IAAI2mF,oBAAuCjvF,KAAK8mP,iBAAiB1F,2BAC7EoH,EAAYlgP,IAAI2mF,uBAA0CjvF,KAAK8mP,iBAAiBzF,8BAChFmH,EAAYlgP,IAAI2mF,uBAA0CjvF,KAAK8mP,iBAAiBxF,8BAChFkH,EAAYlgP,IAAI2mF,WAA8BjvF,KAAK8mP,iBAAiBtF,kBACpEgH,EAAYlgP,IAAI2mF,qBAAwCjvF,KAAK8mP,iBAAiBpF,4BAC9E8G,EAAYlgP,IAAI2mF,mBAAsCjvF,KAAK8mP,iBAAiBnF,0BAC5E6G,EAAYlgP,IAAI2mF,kBAAqCjvF,KAAK8mP,iBAAiBrF,yBAC3E+G,EAAYlgP,IAAI2mF,mBAAsCjvF,KAAK8mP,iBAAiB1G,0BAC5EoI,EAAYlgP,IACV2mF,6BACAjvF,KAAK8mP,iBAAiBvF,oCAExBiH,EAAYlgP,IAAI2mF,mBAAsCjvF,KAAK8mP,iBAAiB9G,0BAC5EwI,EAAYlgP,IAAI2mF,qBAAwCjvF,KAAK8mP,iBAAiBxH,4BAC9EkJ,EAAYlgP,IAAI2mF,oBAAuCjvF,KAAK8mP,iBAAiBlF,2BAC7E4G,EAAYlgP,IAAI2mF,kBAAqCjvF,KAAK8mP,iBAAiB7F,yBAC3EuH,EAAYlgP,IAAI2mF,0BAA6CjvF,KAAK8mP,iBAAiB5F,iCACnFsH,EAAYlgP,IAAI2mF,yBAA4CjvF,KAAK8mP,iBAAiBjF,gCAClF2G,EAAYlgP,IAAI2mF,0BAA6CjvF,KAAK8mP,iBAAiBhF,iCAEnF0G,EAAYlgP,IAAI2mF,mBAAsCjvF,KAAK+mP,2BAA2B9E,0BACtFuG,EAAYlgP,IACV2mF,iCACAjvF,KAAK8mP,iBAAiB/F,2BAGxByH,EAAYlgP,IAAI2mF,mBAAsCjvF,KAAK+mP,2BAA2B/E,0BACtFwG,EAAYlgP,IACV2mF,yBACAjvF,KAAK+mP,2BAA2B5E,gCAElCqG,EAAYlgP,IACV2mF,uBACAjvF,KAAK+mP,2BAA2B3E,8BAElCoG,EAAYlgP,IACV2mF,0BACAjvF,KAAK+mP,2BAA2B1E,4BAElCmG,EAAYlgP,IAAI2mF,oBAAuCjvF,KAAK+mP,2BAA2BzE,sBACvFkG,EAAYlgP,IAAI2mF,mBAAsCjvF,KAAK+mP,2BAA2BxE,qBACtFiG,EAAYlgP,IAAI2mF,mBAAsCjvF,KAAK+mP,2BAA2BvE,qBACtFgG,EAAYlgP,IACV2mF,8BACAjvF,KAAK+mP,2BAA2BtE,gCAElC+F,EAAYlgP,IAAI2mF,iBAAoCjvF,KAAK+mP,2BAA2BrE,mBACpF8F,EAAYlgP,IAAI2mF,kBAAqCjvF,KAAK+mP,2BAA2BpE,oBACrF6F,EAAYlgP,IAAI2mF,iBAAoCjvF,KAAK+mP,2BAA2BnE,mBACpF4F,EAAYlgP,IAAI2mF,kBAAqCjvF,KAAK+mP,2BAA2BlE,yBACrF2F,EAAYlgP,IAAI2mF,qBAAwCjvF,KAAK+mP,2BAA2BjE,4BACxF0F,EAAYlgP,IAAI2mF,mBAAsCjvF,KAAK+mP,2BAA2BhE,0BACtFyF,EAAYlgP,IAAI2mF,iBAAoCjvF,KAAK+mP,2BAA2BxD,wBACpFiF,EAAYlgP,IACV2mF,yBACAjvF,KAAK+mP,2BAA2B7E,gCAGlCsG,EAAYlgP,IAAI2mF,oBAAuCjvF,KAAKinP,yBAAyBR,2BACrF+B,EAAYlgP,IACV2mF,mCACAjvF,KAAK8mP,iBAAiBhG,6BAExB0H,EAAYlgP,IAAI2mF,oBAAuCjvF,KAAKinP,yBAAyBZ,2BACrFmC,EAAYlgP,IACV2mF,yBACAjvF,KAAKinP,yBAAyBX,gCAEhCkC,EAAYlgP,IACV2mF,2BACAjvF,KAAKinP,yBAAyBV,kCAEhCiC,EAAYlgP,IAAI2mF,mBAAsCjvF,KAAKinP,yBAAyBT,0BACpFgC,EAAYlgP,IAAI2mF,qBAAwCjvF,KAAKinP,yBAAyBN,4BACtF6B,EAAYlgP,IACV2mF,uBACAjvF,KAAKinP,yBAAyBP,8BAEhC8B,EAAYlgP,IACV2mF,6BACAjvF,KAAKinP,yBAAyBL,oCAGhC4B,EAAYlgP,IAAIq0O,mBAAoC38O,KAAKgnP,6BAA6BpD,8BAC/E4E,CACT,CAACroP,kDA9KU0mP,GAAyB/4N,oRAAzB+4N,EAAyBt8M,yJClBtCplC,sCACEA,iCACFA,qQDgBa0hP,CAAyB,KEdzB4B,GAAgB,MAAvB,MAAOA,EADb5oP,cAEEG,OAAIkiD,oBAGJwmM,mBAAmBC,GACjB,OAAO3oP,KAAKusD,EAAErK,WAAYymM,EAAc,CACtCC,UAAW1mM,gBACX2mM,iBAAkB3mM,kBAClB,yBAA0B,GAC1B4mM,OAAQ9oP,KAAKusD,EAAErK,cAAe,CAAE6mM,QAAS7mM,yBAE7C,CAGA8mM,yBACE,OAAOhpP,KAAKusD,EACVrK,QACA,OACA,CACEuW,MAAO,GACPswB,OAAQ,GAERkgK,WAAY,CAAC9gP,EAAGg1C,KACd,MAAM+2K,EAAO/2K,EAAIkgM,WAAW,QAC5BnpB,EAAKh8M,OAASg8M,EAAKh8M,OAAOtO,QAAQ,OAAQ,UACzCuzC,EAAIkgM,WAAW,cAAsB34J,KAAO,WAE/CwkK,WAAY,CAAC/gP,EAAGg1C,KACd,MAAM+2K,EAAO/2K,EAAIkgM,WAAW,QAGtBlgM,EAAIkgM,WAAW,cAAsB34J,KAF1CvnC,EAAI5nB,KAAK4zN,WAEwC,cADA,UAElDj1B,EAAKh8M,OAASg8M,EAAKh8M,OAAOtO,QAAQ,SAAU,OAAM,GAGtD5J,KAAKusD,EACHrK,SACA,CACEokH,OAAQ,EACR8zE,OAAQ,YACR11J,KAAM,cACNu1J,OAAQ,UACRC,YAAa,EACb92O,KAAM,cAER,IAAI8+C,WAAW,OAAQ,oBAEzBliD,KAAKusD,EACHrK,SACA,WACAliD,KAAKusD,EACHrK,WACA,CAAE88L,YAAa,IAAI98L,QAAQ,GAAI,IAAKokH,OAAQ,EAAGljK,KAAM,QAErD,IAAI8+C,WAAW,SAAU,SAE3BliD,KAAKusD,EACHrK,aACA,CACEokH,OAAQ,EACR+oE,KAAM,kBACN3/C,UAAW,SACXsvD,YAAa,IAAI98L,QAAQ,GAAIoiM,KAC7BlhP,KAAM,QAER,IAAI8+C,WAAW,OAAQ,QACvB,IAAIA,WAAW,SAAU,cAE3B,IAEF,IAAIA,WAAW,aAAc,cAEjC,CAAC/hD,kDAxEUsoP,EAAgB,iEAAhBA,EAAgBrjP,QAAhBqjP,EAAgB,mBAAhBA,CAAgB,KCDvB,MAAgBW,GAGpBvpP,YAAsBwpP,uBAFtBrpP,OAAIkiD,mBAEmD,CAWvDroC,KAAKyvO,EAA+BX,GAClC3oP,KAAKspP,sBAAwBA,EAC7BtpP,KAAK2oP,aAAeA,EAEpB3oP,KAAKupP,oBAAsBvpP,KAAKqpP,aAAaX,mBAAmB1oP,KAAK2oP,cACrE3oP,KAAKupP,oBAAoBC,aAAexpP,KAAKqpP,aAAaL,yBAC1DhpP,KAAKupP,oBAAoBrhK,MAAMwwC,cAAgB14H,KAAKypP,iBACtD,CAEAlQ,cACEhtL,EAAE,IAAIvsD,KAAKspP,yBAAyBnzL,OACpC5J,EAAE,mBAAmBm8B,OACrB1oF,KAAK0pP,eACP,CAEAA,gBACE1pP,KAAKupP,oBAAoBrhK,MAAMwwC,cAAgB14H,KAAKypP,kBACpDzpP,KAAKupP,oBAAoBnyH,eAC3B,CAEA8hH,cACE3sL,EAAE,IAAIvsD,KAAKspP,yBAAyB5gK,OACpCn8B,EAAE,mBAAmB4J,MACvB,ECjCK,IAAKwzL,GAKX,aALWA,UAAuB,KACjCA,iCACAA,yCACAA,qCACAA,yEAJUA,GAAZ,IAAYA,GAKX,GAGM,IAAMC,GAAuB,MAA9B,MAAOA,UAA+BR,GAO1CvpP,YAAYwpP,GACVvpP,MAAMupP,EACR,CAESxvO,KAAKyvO,EAA+BX,GAI3C,OAHA3oP,KAAKspP,sBAAwBA,EAC7BtpP,KAAK2oP,aAAeA,EAEZA,GACN,KAAKgB,GAAwBE,QAC3B7pP,KAAK8pP,QAAU9pP,KAAKqpP,aAAaX,mBAAmBC,GACpD3oP,KAAK8pP,QAAQN,aAAexpP,KAAKqpP,aAAaL,yBAC9ChpP,KAAK8pP,QAAQ5hK,MAAMwwC,cAAgB14H,KAAK+pP,kBACxC,MAEF,KAAKJ,GAAwBK,WAC3BhqP,KAAKiqP,WAAajqP,KAAKqpP,aAAaX,mBAAmBC,GACvD3oP,KAAKiqP,WAAWT,aAAexpP,KAAKqpP,aAAaL,yBACjDhpP,KAAKiqP,WAAW/hK,MAAMwwC,cAAgB14H,KAAKkqP,qBAC3C,MAEF,KAAKP,GAAwBQ,SAC3BnqP,KAAKoqP,SAAWpqP,KAAKqpP,aAAaX,mBAAmBC,GACrD3oP,KAAKoqP,SAASZ,aAAexpP,KAAKqpP,aAAaL,yBAC/ChpP,KAAKoqP,SAASliK,MAAMwwC,cAAgB14H,KAAKqqP,mBACzC,MAEF,KAAKV,GAAwBW,4BAC3BtqP,KAAKuqP,0BAA4BvqP,KAAKqpP,aAAaX,mBAAmBC,GACtE3oP,KAAKuqP,0BAA0Bf,aAAexpP,KAAKqpP,aAAaL,yBAChEhpP,KAAKuqP,0BAA0BriK,MAAMwwC,cAAgB14H,KAAKwqP,oCAGhE,CAESd,gBACP1pP,KAAK8pP,QAAQ5hK,MAAMwwC,cAAgB14H,KAAK+pP,kBACxC/pP,KAAK8pP,QAAQ1yH,gBAEbp3H,KAAKiqP,WAAW/hK,MAAMwwC,cAAgB14H,KAAKkqP,qBAC3ClqP,KAAKiqP,WAAW7yH,gBAEhBp3H,KAAKoqP,SAASliK,MAAMwwC,cAAgB14H,KAAKqqP,mBACzCrqP,KAAKoqP,SAAShzH,gBAEdp3H,KAAKuqP,0BAA0BriK,MAAMwwC,cAAgB14H,KAAKwqP,oCAC1DxqP,KAAKuqP,0BAA0BnzH,eACjC,CAEAqzH,0BAA0Bl/J,EAAkBjiE,GAC1C,MAAMzoB,EAAOb,KAAKuqP,0BACf1yH,mBAAmB,CAClBtsC,aAEDprE,SAEK+nE,SAAUloF,KAAKuqP,0BACZ,WAAXjhO,EAAsBtpB,KAAK0qP,WAAWxiK,EAAOrnF,GAAQb,KAAK2qP,YAAYziK,EAAOrnF,EAC/E,CAEA6pP,WAAWxiK,EAAcrnF,GACvBqnF,EAAM0N,iBAAiB,cACvB1N,EAAM2N,gBAAgBh1F,EAAK6K,KAAM,YAAa,WAC9Cw8E,EAAM2N,gBAAgBh1F,EAAK6K,KAAM,kBAAmB,eACpDw8E,EAAM2N,gBAAgBh1F,EAAK6K,KAAM,cAAc,GAC/Cw8E,EAAM4N,kBAAkB,aAC1B,CAEA60J,YAAYziK,EAAcrnF,GACxBqnF,EAAM0N,iBAAiB,cACvB1N,EAAM2N,gBAAgBh1F,EAAK6K,KAAM,YAAa,WAC9Cw8E,EAAM2N,gBAAgBh1F,EAAK6K,KAAM,kBAAmB,WACpDw8E,EAAM2N,gBAAgBh1F,EAAK6K,KAAM,cAAc,GAC/Cw8E,EAAM4N,kBAAkB,aAC1B,CAEAi0J,kBACE,MAAO,CACL,CACE3mP,KAAM6rF,6BACNilI,KAAMjlI,6BACNG,YAAaH,6BACb1D,SAAU0D,qBACVlG,OAAQ/oF,KAAK4qP,WACbnyL,MAAOz4D,KAAK6qP,WAEd,CACEznP,KAAM6rF,6BACNilI,KAAMjlI,6BACNG,YAAaH,6BACb1D,SAAU0D,qBACVlG,OAAQ/oF,KAAK4qP,WACbnyL,MAAOz4D,KAAK6qP,WAEd,CACEznP,KAAM6rF,2BACNilI,KAAMjlI,2BACNG,YAAaH,2BACb1D,SAAU0D,mBACVlG,OAAQ/oF,KAAK4qP,WACbnyL,MAAOz4D,KAAK6qP,WAEd,CACEznP,KAAM6rF,oBACNilI,KAAMjlI,oBACNG,YAAaH,oBACb1D,SAAU0D,YACVlG,OAAQ/oF,KAAK4qP,WACbnyL,MAAOz4D,KAAK6qP,WAEd,CACEznP,KAAM6rF,qBACNilI,KAAMjlI,qBACNG,YAAaH,qBACb1D,SAAU0D,aACVlG,OAAQ/oF,KAAK4qP,WACbnyL,MAAOz4D,KAAK6qP,WAEd,CACEznP,KAAM6rF,wBACNilI,KAAMjlI,wBACNG,YAAaH,wBACb1D,SAAU0D,gBACVlG,OAAQ/oF,KAAK4qP,WACbnyL,MAAOz4D,KAAK6qP,WAEd,CACEznP,KAAM6rF,2BACNilI,KAAMjlI,2BACNG,YAAaH,2BACb1D,SAAU0D,mBACVlG,OAAQ/oF,KAAK4qP,WACbnyL,MAAOz4D,KAAK6qP,WAGlB,CAEAX,qBACE,MAAO,CACL,CACE9mP,KAAM6rF,mBACNilI,KAAMjlI,mBACNG,YAAaH,mBACb1D,SAAU0D,WACVlG,OAAQ/oF,KAAK4qP,WACbnyL,MAAOz4D,KAAK6qP,WAEd,CACEznP,KAAM6rF,mBACNilI,KAAMjlI,mBACNG,YAAaH,mBACb1D,SAAU0D,WACVlG,OAAQ/oF,KAAK4qP,WACbnyL,MAAOz4D,KAAK6qP,WAEd,CACEznP,KAAM6rF,iCACNilI,KAAMjlI,iCACNG,YAAaH,iCACb1D,SAAU0D,yBACVlG,OAAQ/oF,KAAK4qP,WACbnyL,MAAOz4D,KAAK6qP,WAGlB,CAEAR,mBACE,MAAO,CACL,CACEjnP,KAAM6rF,4BACNilI,KAAMjlI,4BACNG,YAAaH,4BACb1D,SAAU0D,oBACVlG,OAAQ/oF,KAAK4qP,WACbnyL,MAAOz4D,KAAK6qP,WAEd,CACEznP,KAAM6rF,+BACNilI,KAAMjlI,+BACNG,YAAaH,+BACb1D,SAAU0D,uBACVlG,OAAQ/oF,KAAK4qP,WACbnyL,MAAOz4D,KAAK6qP,WAEd,CACEznP,KAAM6rF,+BACNilI,KAAMjlI,+BACNG,YAAaH,+BACb1D,SAAU0D,uBACVlG,OAAQ/oF,KAAK4qP,WACbnyL,MAAOz4D,KAAK6qP,WAEd,CACEznP,KAAM6rF,mBACNilI,KAAMjlI,mBACNG,YAAaH,mBACb1D,SAAU0D,WACVlG,OAAQ/oF,KAAK4qP,WACbnyL,MAAOz4D,KAAK6qP,WAEd,CACEznP,KAAM6rF,0BACNilI,KAAMjlI,0BACNG,YAAaH,0BACb1D,SAAU0D,kBACVlG,OAAQ/oF,KAAK4qP,WACbnyL,MAAOz4D,KAAK6qP,WAEd,CACEznP,KAAM6rF,4BACNilI,KAAMjlI,4BACNG,YAAaH,4BACb1D,SAAU0D,oBACVlG,OAAQ/oF,KAAK4qP,WACbnyL,MAAOz4D,KAAK6qP,WAGlB,CAEAL,oCACE,MAAO,CACL,CACEpnP,KAAM6rF,yCACNilI,KAAMjlI,yCACNG,YAAaH,yCACb1D,SAAU0D,iCACVlG,OAAQ/oF,KAAK4qP,WACbnyL,MAAOz4D,KAAK6qP,WAEd,CACEznP,KAAM6rF,2BACNilI,KAAMjlI,2BACNG,YAAaH,2BACb1D,SAAU0D,mBACVlG,OAAQ/oF,KAAK4qP,WACbnyL,MAAOz4D,KAAK6qP,WAEd,CACEznP,KAAM6rF,6BACNilI,KAAMjlI,6BACNG,YAAaH,6BACb1D,SAAU0D,qBACVlG,OAAQ/oF,KAAK4qP,WACbnyL,MAAOz4D,KAAK6qP,WAEd,CACEznP,KAAM6rF,2CACNilI,KAAMjlI,2CACNG,YAAaH,2CACb1D,SAAU0D,mCACVlG,OAAQ/oF,KAAK4qP,WACbnyL,MAAOz4D,KAAK6qP,WAGlB,CAEAC,kBACE,MAAO,CACL,CACE1nP,KAAM6rF,6BACNilI,KAAMjlI,6BACNG,YAAaH,6BACb1D,SAAU0D,qBACVlG,OAAQ/oF,KAAK4qP,WACbnyL,MAAOz4D,KAAK6qP,WAEd,CACEznP,KAAM6rF,mBACNilI,KAAMjlI,mBACNG,YAAaH,mBACb1D,SAAU0D,WACVlG,OAAQ/oF,KAAK4qP,WACbnyL,MAAOz4D,KAAK6qP,WAEd,CACEznP,KAAM6rF,mBACNilI,KAAMjlI,mBACNG,YAAaH,mBACb1D,SAAU0D,WACVlG,OAAQ/oF,KAAK4qP,WACbnyL,MAAOz4D,KAAK6qP,WAEd,CACEznP,KAAM6rF,qBACNilI,KAAMjlI,qBACNG,YAAaH,qBACb1D,SAAU0D,aACVlG,OAAQ/oF,KAAK4qP,WACbnyL,MAAOz4D,KAAK6qP,WAEd,CACEznP,KAAM6rF,wBACNilI,KAAMjlI,wBACNG,YAAaH,wBACb1D,SAAU0D,gBACVlG,OAAQ/oF,KAAK4qP,WACbnyL,MAAOz4D,KAAK6qP,WAEd,CACEznP,KAAM6rF,4BACNilI,KAAMjlI,4BACNG,YAAaH,4BACb1D,SAAU0D,oBACVlG,OAAQ/oF,KAAK4qP,WACbnyL,MAAOz4D,KAAK6qP,WAEd,CACEznP,KAAM6rF,+BACNilI,KAAMjlI,+BACNG,YAAaH,+BACb1D,SAAU0D,uBACVlG,OAAQ/oF,KAAK4qP,WACbnyL,MAAOz4D,KAAK6qP,WAEd,CACEznP,KAAM6rF,+BACNilI,KAAMjlI,+BACNG,YAAaH,+BACb1D,SAAU0D,uBACVlG,OAAQ/oF,KAAK4qP,WACbnyL,MAAOz4D,KAAK6qP,WAGd,CACEznP,KAAM6rF,mBACNilI,KAAMjlI,mBACNG,YAAaH,mBACb1D,SAAU0D,WACVlG,OAAQ/oF,KAAK4qP,WACbnyL,MAAOz4D,KAAK6qP,WAEd,CACEznP,KAAM6rF,0BACNilI,KAAMjlI,0BACNG,YAAaH,0BACb1D,SAAU0D,kBACVlG,OAAQ/oF,KAAK4qP,WACbnyL,MAAOz4D,KAAK6qP,WAEd,CACEznP,KAAM6rF,iCACNilI,KAAMjlI,iCACNG,YAAaH,iCACb1D,SAAU0D,yBACVlG,OAAQ/oF,KAAK4qP,WACbnyL,MAAOz4D,KAAK6qP,WAEd,CACEznP,KAAM6rF,2BACNilI,KAAMjlI,2BACNG,YAAaH,2BACb1D,SAAU0D,mBACVlG,OAAQ/oF,KAAK4qP,WACbnyL,MAAOz4D,KAAK6qP,WAEd,CACEznP,KAAM6rF,6BACNilI,KAAMjlI,6BACNG,YAAaH,6BACb1D,SAAU0D,qBACVlG,OAAQ/oF,KAAK4qP,WACbnyL,MAAOz4D,KAAK6qP,WAEd,CACEznP,KAAM6rF,2BACNilI,KAAMjlI,2BACNG,YAAaH,2BACb1D,SAAU0D,mBACVlG,OAAQ/oF,KAAK4qP,WACbnyL,MAAOz4D,KAAK6qP,WAEd,CACEznP,KAAM6rF,4BACNilI,KAAMjlI,4BACNG,YAAaH,4BACb1D,SAAU0D,oBACVlG,OAAQ/oF,KAAK4qP,WACbnyL,MAAOz4D,KAAK6qP,WAEd,CACEznP,KAAM6rF,oBACNilI,KAAMjlI,oBACNG,YAAaH,oBACb1D,SAAU0D,YACVlG,OAAQ/oF,KAAK4qP,WACbnyL,MAAOz4D,KAAK6qP,WAGlB,CAEApB,kBACE,MAAO,EACT,CAACtpP,kDA/YUypP,GAAsB97N,0FAAtB87N,EAAsBxkP,QAAtBwkP,EAAsB,mBAAtBA,CAAuB,KCVvBmB,GAA8B,MAArC,MAAOA,EADblrP,cAEEG,OAAIkiD,oBAIJ8oM,kBACE,MAAO,CACL,CACE5nP,KAAM6rF,oBACNilI,KAAMjlI,oBACNG,YAAaH,oBACb1D,SAAU0D,YACVlG,OAAQ/oF,KAAK4qP,WACbnyL,MAAOz4D,KAAK6qP,WAEd,CACEznP,KAAM6rF,oBACNilI,KAAMjlI,oBACNG,YAAaH,oBACb1D,SAAU0D,YACVlG,OAAQ/oF,KAAK4qP,WACbnyL,MAAOz4D,KAAK6qP,WAEd,CACEznP,KAAM6rF,6BACNilI,KAAMjlI,6BACNG,YAAaH,6BACb1D,SAAU0D,qBACVlG,OAAQ/oF,KAAK4qP,WACbnyL,MAAOz4D,KAAK6qP,WAEd,CACEznP,KAAM6rF,gCACNilI,KAAMjlI,gCACNG,YAAaH,gCACb1D,SAAU0D,wBACVlG,OAAQ/oF,KAAK4qP,WACbnyL,MAAOz4D,KAAK6qP,WAEd,CACEznP,KAAM6rF,wBACNilI,KAAMjlI,wBACNG,YAAaH,wBACb1D,SAAU0D,gBACVlG,OAAQ/oF,KAAK4qP,WACbnyL,MAAOz4D,KAAK6qP,WAEd,CACEznP,KAAM6rF,oCACNilI,KAAMjlI,oCACNG,YAAaH,oCACb1D,SAAU0D,4BACVlG,OAAQ/oF,KAAK4qP,WACbnyL,MAAOz4D,KAAK6qP,WAGlB,CAEAX,qBACE,MAAO,CACL,CACE9mP,KAAM6rF,wBACNilI,KAAMjlI,wBACNG,YAAaH,wBACb1D,SAAU0D,gBACVlG,OAAQ/oF,KAAK4qP,WACbnyL,MAAOz4D,KAAK6qP,WAEd,CACEznP,KAAM6rF,iCACNilI,KAAMjlI,iCACNG,YAAaH,iCACb1D,SAAU0D,yBACVlG,OAAQ/oF,KAAK4qP,WACbnyL,MAAOz4D,KAAK6qP,WAEd,CACEznP,KAAM6rF,wBACNilI,KAAMjlI,wBACNG,YAAaH,wBACb1D,SAAU0D,gBACVlG,OAAQ/oF,KAAK4qP,WACbnyL,MAAOz4D,KAAK6qP,WAEd,CACEznP,KAAM6rF,kCACNilI,KAAMjlI,kCACNG,YAAaH,kCACb1D,SAAU0D,0BACVlG,OAAQ/oF,KAAK4qP,WACbnyL,MAAOz4D,KAAK6qP,WAEd,CACEznP,KAAM6rF,0BACNilI,KAAMjlI,0BACNG,YAAaH,0BACb1D,SAAU0D,kBACVlG,OAAQ/oF,KAAK4qP,WACbnyL,MAAOz4D,KAAK6qP,WAGlB,CAEAI,oBACE,MAAO,CACL,CACE7nP,KAAM6rF,oBACNilI,KAAMjlI,oBACNG,YAAaH,oBACb1D,SAAU0D,YACVlG,OAAQ/oF,KAAK4qP,WACbnyL,MAAOz4D,KAAK6qP,WAGlB,CAEAK,qBACE,MAAO,CACL,CACE9nP,KAAM6rF,qBACNilI,KAAMjlI,qBACNG,YAAaH,qBACb1D,SAAU0D,aACVlG,OAAQ/oF,KAAK4qP,WACbnyL,MAAOz4D,KAAK6qP,WAEd,CACEznP,KAAM6rF,wBACNilI,KAAMjlI,wBACNG,YAAaH,wBACb1D,SAAU0D,gBACVlG,OAAQ/oF,KAAK4qP,WACbnyL,MAAOz4D,KAAK6qP,WAGlB,CAAC1qP,kDAvIU4qP,EAA8B,iEAA9BA,EAA8B3lP,QAA9B2lP,EAA8B,mBAA9BA,CAA8B,KCC9BI,GAAyB,MAAhC,MAAOA,UAAiC/B,GAE5CvpP,YAAYurP,GACVtrP,MAAMsrP,EACR,CAEA3B,kBACE,MAAO,CACL,CACErmP,KAAM6rF,iCACNilI,KAAMjlI,iCACNG,YAAaH,iCACb1D,SAAU0D,yBACVlG,OAAQ/oF,KAAK4qP,WACbnyL,MAAOz4D,KAAK6qP,WAEd,CACEznP,KAAM6rF,qBACNilI,KAAMjlI,qBACNG,YAAaH,qBACb1D,SAAU0D,aACVlG,OAAQ/oF,KAAK4qP,WACbnyL,MAAOz4D,KAAK6qP,WAEd,CACEznP,KAAM6rF,wBACNilI,KAAMjlI,wBACNG,YAAaH,wBACb1D,SAAU0D,gBACVlG,OAAQ/oF,KAAK4qP,WACbnyL,MAAOz4D,KAAK6qP,WAEd,CACEznP,KAAM6rF,2BACNilI,KAAMjlI,2BACNG,YAAaH,2BACb1D,SAAU0D,mBACVlG,OAAQ/oF,KAAK4qP,WACbnyL,MAAOz4D,KAAK6qP,WAEd,CACEznP,KAAM6rF,iCACNilI,KAAMjlI,iCACNG,YAAaH,iCACb1D,SAAU0D,yBACVlG,OAAQ/oF,KAAK4qP,WACbnyL,MAAOz4D,KAAK6qP,WAEd,CACEznP,KAAM6rF,kCACNilI,KAAMjlI,kCACNG,YAAaH,kCACb1D,SAAU0D,0BACVlG,OAAQ/oF,KAAK4qP,WACbnyL,MAAOz4D,KAAK6qP,WAGlB,CAAC1qP,kDAzDUgrP,GAAwBr9N,0FAAxBq9N,EAAwB/lP,QAAxB+lP,EAAwB,mBAAxBA,CAAyB,KCAzBE,GAAwB,MAA/B,MAAOA,UAAgCjC,GAE3CvpP,YAAYwpP,GACVvpP,MAAMupP,EACR,CAEAI,kBACE,MAAO,CACL,CACErmP,KAAM6rF,2BACNilI,KAAMjlI,2BACNG,YAAaH,2BACb1D,SAAU0D,mBACVlG,OAAQ/oF,KAAK4qP,WACbnyL,MAAOz4D,KAAK6qP,WAEd,CACEznP,KAAM6rF,2BACNilI,KAAMjlI,2BACNG,YAAaH,2BACb1D,SAAU0D,mBACVlG,OAAQ/oF,KAAK4qP,WACbnyL,MAAOz4D,KAAK6qP,WAEd,CACEznP,KAAM6rF,iCACNilI,KAAMjlI,iCACNG,YAAaH,iCACb1D,SAAU0D,yBACVlG,OAAQ/oF,KAAK4qP,WACbnyL,MAAOz4D,KAAK6qP,WAEd,CACEznP,KAAM6rF,+BACNilI,KAAMjlI,+BACNG,YAAaH,+BACb1D,SAAU0D,uBACVlG,OAAQ/oF,KAAK4qP,WACbnyL,MAAOz4D,KAAK6qP,WAEd,CACEznP,KAAM6rF,kCACNilI,KAAMjlI,kCACNG,YAAaH,kCACb1D,SAAU0D,0BACVlG,OAAQ/oF,KAAK4qP,WACbnyL,MAAOz4D,KAAK6qP,WAEd,CACEznP,KAAM6rF,4BACNilI,KAAMjlI,4BACNG,YAAaH,4BACb1D,SAAU0D,oBACVlG,OAAQ/oF,KAAK4qP,WACbnyL,MAAOz4D,KAAK6qP,WAEd,CACEznP,KAAM6rF,2BACNilI,KAAMjlI,2BACNG,YAAaH,2BACb1D,SAAU0D,mBACVlG,OAAQ/oF,KAAK4qP,WACbnyL,MAAOz4D,KAAK6qP,WAEd,CACEznP,KAAM6rF,2BACNilI,KAAMjlI,2BACNG,YAAaH,2BACb1D,SAAU0D,mBACVlG,OAAQ/oF,KAAK4qP,WACbnyL,MAAOz4D,KAAK6qP,WAEd,CACEznP,KAAM6rF,sCACNilI,KAAMjlI,sCACNG,YAAaH,sCACb1D,SAAU0D,8BACVlG,OAAQ/oF,KAAK4qP,WACbnyL,MAAOz4D,KAAK6qP,WAEd,CACEznP,KAAM6rF,yBACNilI,KAAMjlI,yBACNG,YAAaH,yBACb1D,SAAU0D,iBACVlG,OAAQ/oF,KAAK4qP,WACbnyL,MAAOz4D,KAAK6qP,WAEd,CACEznP,KAAM6rF,0BACNilI,KAAMjlI,0BACNG,YAAaH,0BACb1D,SAAU0D,kBACVlG,OAAQ/oF,KAAK4qP,WACbnyL,MAAOz4D,KAAK6qP,WAEd,CACEznP,KAAM6rF,yBACNilI,KAAMjlI,yBACNG,YAAaH,yBACb1D,SAAU0D,iBACVlG,OAAQ/oF,KAAK4qP,WACbnyL,MAAOz4D,KAAK6qP,WAEd,CACEznP,KAAM6rF,0BACNilI,KAAMjlI,0BACNG,YAAaH,0BACb1D,SAAU0D,kBACVlG,OAAQ/oF,KAAK4qP,WACbnyL,MAAOz4D,KAAK6qP,WAEd,CACEznP,KAAM6rF,6BACNilI,KAAMjlI,6BACNG,YAAaH,6BACb1D,SAAU0D,qBACVlG,OAAQ/oF,KAAK4qP,WACbnyL,MAAOz4D,KAAK6qP,WAEd,CACEznP,KAAM6rF,2BACNilI,KAAMjlI,2BACNG,YAAaH,2BACb1D,SAAU0D,mBACVlG,OAAQ/oF,KAAK4qP,WACbnyL,MAAOz4D,KAAK6qP,WAEd,CACEznP,KAAM6rF,yBACNilI,KAAMjlI,yBACNG,YAAaH,yBACb1D,SAAU0D,iBACVlG,OAAQ/oF,KAAK4qP,WACbnyL,MAAOz4D,KAAK6qP,WAEd,CACEznP,KAAM6rF,iCACNilI,KAAMjlI,iCACNG,YAAaH,iCACb1D,SAAU0D,yBACVlG,OAAQ/oF,KAAK4qP,WACbnyL,MAAOz4D,KAAK6qP,WAGlB,CAAC1qP,kDAjJUkrP,GAAuBv9N,0FAAvBu9N,EAAuBjmP,QAAvBimP,EAAuB,mBAAvBA,CAAwB,KCAxBC,GAAsB,MAA7B,MAAOA,UAA8BlC,GAEzCvpP,YAAYwpP,GACVvpP,MAAMupP,EACR,CAEAI,kBACE,MAAO,CACL,CACErmP,KAAM6rF,6BACNilI,KAAMjlI,6BACNG,YAAaH,6BACb1D,SAAU0D,qBACVlG,OAAQ/oF,KAAK4qP,WACbnyL,MAAOz4D,KAAK6qP,WAEd,CACEznP,KAAM6rF,4BACNilI,KAAMjlI,4BACNG,YAAaH,4BACb1D,SAAU0D,oBACVlG,OAAQ/oF,KAAK4qP,WACbnyL,MAAOz4D,KAAK6qP,WAEd,CACEznP,KAAM6rF,2BACNilI,KAAMjlI,2BACNG,YAAaH,2BACb1D,SAAU0D,mBACVlG,OAAQ/oF,KAAK4qP,WACbnyL,MAAOz4D,KAAK6qP,WAEd,CACEznP,KAAM6rF,iCACNilI,KAAMjlI,iCACNG,YAAaH,iCACb1D,SAAU0D,yBACVlG,OAAQ/oF,KAAK4qP,WACbnyL,MAAOz4D,KAAK6qP,WAEd,CACEznP,KAAM6rF,mCACNilI,KAAMjlI,mCACNG,YAAaH,mCACb1D,SAAU0D,2BACVlG,OAAQ/oF,KAAK4qP,WACbnyL,MAAOz4D,KAAK6qP,WAEd,CACEznP,KAAM6rF,4BACNilI,KAAMjlI,qBACNG,YAAaH,qBACb1D,SAAU0D,oBACVlG,OAAQ/oF,KAAK4qP,WACbnyL,MAAOz4D,KAAK6qP,WAEd,CACEznP,KAAM6rF,+BACNilI,KAAMjlI,+BACNG,YAAaH,+BACb1D,SAAU0D,uBACVlG,OAAQ/oF,KAAK4qP,WACbnyL,MAAOz4D,KAAK6qP,WAEd,CACEznP,KAAM6rF,qCACNilI,KAAMjlI,qCACNG,YAAaH,qCACb1D,SAAU0D,6BACVlG,OAAQ/oF,KAAK4qP,WACbnyL,MAAOz4D,KAAK6qP,WAGlB,CAAC1qP,kDAzEUmrP,GAAqBx9N,0FAArBw9N,EAAqBlmP,QAArBkmP,EAAqB,mBAArBA,CAAsB,KCJ7B,MAAOC,GAIX1rP,YAAYg5F,GACV74F,KAAK+0F,cAAgB8D,EACrB74F,KAAKu3B,SAAW,EAClB,CAEAi0N,SAAShxN,GACPx6B,KAAKu3B,SAAS3uB,KAAK4xB,EACrB,CAEItvB,SACF,OAAOlL,KAAK+0F,cAAc7pF,EAC5B,CAEI9H,WACF,OAAOpD,KAAK+0F,cAAc3xF,IAC5B,CAEAqoP,cAAcvgP,GACZ,OAAOlL,KAAKu3B,SAASqI,KAAK/+B,GAAQA,EAAKqK,KAAOA,EAChD,CAEO6gF,SACL,MAAO,CACL3oF,KAAMpD,KAAKoD,KACXm0B,SAAUv3B,KAAKu3B,SAEnB,EC9BI,MAAOm0N,WAA0BH,GACrC1rP,cACEC,WAAMmO,EACR,CAEa/C,SACX,MAAO,EACT,CAEa9H,WACX,MAAO,MACT,ECTI,MAAOuoP,GAGX9rP,cACEG,KAAKg4B,KAAO,IAAI0zN,EAClB,ECEK,IAAME,GAAoB,MAA3B,MAAOA,EACXC,iBAAiBv0N,GACf,MAAMwC,EAAO,IAAI6xN,GACXG,EAAqB9rP,KAAK+rP,sBAAsBz0N,GACtD,YAAK00N,YAAYlyN,EAAK9B,KAAM8zN,GAErBhyN,CACT,CAEAmyN,uCAAuC30N,GACrC,MAAMwC,EAAO,IAAI6xN,GACXG,EAAqB9rP,KAAKksP,4CAA4C50N,GAC5E,YAAK00N,YAAYlyN,EAAK9B,KAAM8zN,GAErBhyN,CACT,CAEQkyN,YAAYnrP,EAAyBirP,GAC3C,MAAMv0N,EAAWu0N,EAAmB/zO,OAAO8gF,GAAMA,EAAG7D,cAAgBn0F,EAAKqK,IAEzE,UAAWsvB,KAASjD,EAAU,CAC5B,MAAM40N,EAAY,IAAIZ,GAAkB/wN,GACxC35B,EAAK2qP,SAASW,GAEdnsP,KAAKgsP,YAAYG,EAAWL,EAAkB,CAElD,CAEAC,sBAAsBz0N,GACpB,OAAOA,EAAEk4E,qBAAqB3W,GAAMA,EAAGvC,iBACzC,CAEQ41J,4CAA4C50N,GAClD,OAAOA,EAAEk4E,qBAAqB3W,GAAMA,EAAGvC,kBAAoBuC,aAAcsJ,GAC3E,CAEAiqJ,0BAA0BC,EAAuB/0N,GAC/C,IAAIg1N,EAGJC,OAFsBvsP,KAAK6rP,iBAAiBv0N,GAAGU,KAEjCT,SAAS5xB,QAAQ7E,IACzBA,EAAWsC,OAASipP,EACtBC,EAAmBxrP,EAAWoK,GAE9BpK,EAAWy2B,SAAS5xB,QAAQwmP,IACtBA,EAAU/oP,OAASipP,IACrBC,EAAmBH,EAAUjhP,KAEhC,GAIEohP,CACT,CAEAE,wBAAwBl1N,GACtB,IAAIm1N,EAAuB,EAE3BF,OADsBvsP,KAAK6rP,iBAAiBv0N,GAAGU,KACjCT,SAAS5xB,QAAQ+mP,KAE3BA,EAAM33J,cAAcxJ,WAAa0D,iBACjCy9J,EAAM33J,cAAcxJ,WAAa0D,oBAEjCw9J,MAGGA,CACT,CAOAE,6BAA6Br1N,EAAS09D,GACpC,MAAMkmC,EAAYl7H,KAAK+rP,sBAAsBz0N,GAAGvf,OAAO8gF,GAC9CA,aAAcsJ,IAGvB,OAAInN,EACKkmC,EAAUnjH,OAAO60O,GACfA,EAAI1hP,KAAO8pF,GAGfkmC,CACT,CAAC/6H,kDArFUyrP,EAAoB,iEAApBA,EAAoBxmP,QAApBwmP,EAAoB,mBAApBA,CAAoB,KCWpBiB,GAAgC,MAAvC,MAAOA,EASXhtP,YACU04O,EACAxoG,EACAsmG,EACA3+F,EACA60G,EACAO,EACAzD,EACA0D,EACAC,EACAC,EACAC,GAVAltP,0BACAA,mBACAA,wBACAA,2BACAA,qBACAA,qBACAA,oBACAA,8BACAA,+BACAA,6BACAA,gCAdVA,iCAAqF,GAgBnFA,KAAKmtP,4BAA4Bl+J,iBAAqC89J,EACtE/sP,KAAKmtP,4BAA4Bl+J,kCAAsD+9J,EACvFhtP,KAAKmtP,4BAA4Bl+J,oCAAwDg+J,EACzFjtP,KAAKmtP,4BAA4Bl+J,mBAAuCi+J,EAExEltP,KAAK+vI,YAAY4D,2BAA2Bp7H,UAAU,KACpDvY,KAAK4zI,uBAAqB,GAG5B5zI,KAAKq2O,iBAAiB+W,0BAA0B70O,UAAWg8H,KACzDv0I,KAAKqtP,qBAAqB94G,GAAqB,GAGjDv0I,KAAKq2O,iBAAiBiX,0BAA0B/0O,UAAU,KACxDvY,KAAKqtP,qBAAqBrtP,KAAK03I,oBAAoBvC,4BAA2B,GAGhFn1I,KAAKu4O,mBAAmBC,8BAA8BjgO,UAAUqD,KAC1DA,GAAQ+jF,oBACV3/F,KAAKk5O,cACLl5O,KAAKutP,sBAELvtP,KAAKu5O,cACLv5O,KAAKwtP,oBAAiB,GAI1BxtP,KAAK+vI,YAAY09G,0BAA0Bl1O,UAAUsgF,MAEjDA,GAAGtN,WAAa0D,kCAChB4J,GAAGtN,WAAa0D,qCAEhBjvF,KAAK+sP,uBAAuBtC,0BAA0B5xJ,GAAGtN,SAAU,UAAS,GAIhFvrF,KAAK+vI,YAAY29G,4BAA4Bn1O,UAAUsgF,MAEnDA,GAAGtN,WAAa0D,kCAChB4J,GAAGtN,WAAa0D,qCAEhBjvF,KAAK+sP,uBAAuBtC,0BAA0B5xJ,GAAGtN,SAAU,SAAQ,EAGjF,CAEAl/B,kBACErsD,KAAK2tP,cACP,CAEQA,eACN3tP,KAAKk+L,QAAUl+L,KAAKqpP,aAAaX,mBAAmB,WACpD1oP,KAAKk+L,QAAQsrD,aAAexpP,KAAKqpP,aAAaL,yBAC9ChpP,KAAKk+L,QAAQh2G,MAAMwwC,cAAgB14H,KAAK8sP,cAAc9B,kBAEtDhrP,KAAKiqP,WAAajqP,KAAKqpP,aAAaX,mBAAmB,cACvD1oP,KAAKiqP,WAAWT,aAAexpP,KAAKqpP,aAAaL,yBACjDhpP,KAAKiqP,WAAW/hK,MAAMwwC,cAAgB14H,KAAK8sP,cAAc5C,qBAEzDlqP,KAAK4tP,UAAY5tP,KAAKqpP,aAAaX,mBAAmB,aACtD1oP,KAAK4tP,UAAUpE,aAAexpP,KAAKqpP,aAAaL,yBAChDhpP,KAAK4tP,UAAU1lK,MAAMwwC,cAAgB14H,KAAK8sP,cAAc7B,oBAExDjrP,KAAK6tP,WAAa7tP,KAAKqpP,aAAaX,mBAAmB,cACvD1oP,KAAK6tP,WAAWrE,aAAexpP,KAAKqpP,aAAaL,yBACjDhpP,KAAK6tP,WAAW3lK,MAAMwwC,cAAgB14H,KAAK8sP,cAAc5B,qBAEzDlrP,KAAK+sP,uBAAuBlzO,KAAK,2BAA4B,0BAC7D7Z,KAAK+sP,uBAAuBlzO,KAAK,2BAA4B,6BAC7D7Z,KAAK+sP,uBAAuBlzO,KAAK,2BAA4B,2BAC7D7Z,KAAK+sP,uBAAuBlzO,KAAK,2BAA4B,4CAE7D7Z,KAAKgtP,wBAAwBnzO,KAAK,4BAA6B,oBAC/D7Z,KAAKitP,sBAAsBpzO,KAAK,0BAA2B,kBAC3D7Z,KAAKktP,yBAAyBrzO,KAAK,6BAA8B,oBACnE,CAEQwzO,qBAAqB94G,GACvBv0I,KAAK8tP,kCACP9tP,KAAK8tP,iCAAiC5U,cAGpC3kG,GACFv0I,KAAK8tP,iCAAmC9tP,KAAKmtP,4BAA4B54G,GACzEv0I,KAAK8tP,iCAAiCvU,cAClChlG,IAA0BtlD,iBAC5BjvF,KAAK+tP,+CAGP/tP,KAAK8tP,sCAAmC7/O,CAE5C,CAEQ2lI,wBAEN5zI,KAAKqtP,qBADwBrtP,KAAK03I,oBAAoBvC,4BAexD,CAEQ64G,qBAAqBz5G,GAC3Bv0I,KAAK8tP,iCAAmC9tP,KAAKmtP,4BAA4B54G,GACzEv0I,KAAK8tP,iCAAiCvU,aACxC,CAEQ0U,wBACNjuP,KAAK8tP,iCAAiC5U,cACtCl5O,KAAK8tP,sCAAmC7/O,CAC1C,CAEAigP,gBACE3hM,EAAE,mBAAmB09I,OAAO,QAAS,CAAExhC,UAAW,SAAW,IAAK,OACpE,CAEAywE,cACM3sL,EAAE,mBAAmB48B,GAAG,aAC1BnpF,KAAKkuP,eAET,CAEAX,oBACEhhM,EAAE,kBAAkBm8B,MACtB,CAEA6wJ,cACMhtL,EAAE,mBAAmB48B,GAAG,YAC1BnpF,KAAKkuP,eAET,CAEAV,oBACEjhM,EAAE,kBAAkB4J,MACtB,CAEA43L,8CACwB/tP,KAAKusP,cAAcV,iBAAiB7rP,KAAK+vI,YAAYle,aAAa75F,KAAKT,SAC/E5xB,QAAQ7E,IACpB,GAAIA,EAAWoK,KAAOlL,KAAK03I,oBAAoBtC,sBAAuB,CACpE,IAAI+4G,EAAoB,EACpBC,EAAsB,EAC1BttP,EAAWy2B,SAAS5xB,QAAQwmP,IACtBA,EAAUp3J,cAAcxJ,WAAa0D,iCACvCk/J,IACShC,EAAUp3J,cAAcxJ,WAAa0D,oCAC9Cm/J,MAGAD,EAAoB,GACtBnuP,KAAK+sP,uBAAuBtC,0BAC1Bx7J,iCACA,WAGAm/J,EAAsB,GACxBpuP,KAAK+sP,uBAAuBtC,0BAC1Bx7J,mCACA,UAAS,GAKnB,CAAC9uF,kDAlMU0sP,GAAgC/+N,obAAhC++N,EAAgCtiN,8rFCtB7CplC,sCAAwBA,iDAAS6Q,iBAAe,GAC9C7Q,+BACFA,2BACAA,sCAAyB,UAAzBA,CAAyB,cAGnBA,kCACFA,2BACAA,iCAA8E,QAG9EA,yCACEA,qCACFA,2BACAA,kCAAoF,SAGpFA,0CACEA,0CACFA,2BACAA,kCAAkF,SAElFA,2CACEA,sCACFA,2BACAA,mCACFA,2BACAA,wCAAyD,gBAMrDA,mCACFA,2BACAA,mCAA6F,SAG7FA,2CAKEA,sCACFA,2BACAA,mCAA2G,SAG3GA,2CAKEA,oCACFA,2BACAA,mCAA+F,SAG/FA,2CAKEA,mDACFA,2BACAA,mCAGFA,2BAEAA,wCAA0D,gBAMtDA,2CACFA,2BACAA,mCACFA,2BAEAA,wCAAwD,gBAMpDA,2CACFA,2BACAA,mCACFA,2BAEAA,wCAA2D,gBAEvDA,2CACFA,2BACAA,mCACFA,y9BD3EW0nP,CAAgC,KEfvC,SAAUwB,GAAkBC,EAAYC,EAAWrhK,EAAUshK,GAEjED,EAAU7iP,KAAK,WAAYgiF,cAAcR,GAAUS,mBACnD2gK,EAAW5iP,KAAK,QAAS8iP,EAAM54G,eAG/B04G,EAAW9hM,GAAG,SAAU,WACtB,MAAMiiM,EAAcliM,EAAEvsD,MACtBwuP,EAAM3gP,SAAS4gP,EAAYlyO,MAAOkyO,EAAYlyO,OAC9CgwC,EAAEvsD,MAAM0L,KAAK,QAAS6gD,EAAEvsD,MAAMuc,OAC9BgyO,EAAU7iP,KAAK,WAAY6iP,EAAUhyO,MACvC,GAGAgyO,EAAUvpG,OAAO,WACf,MAAM0pG,EAAWniM,EAAEvsD,MAAM0L,KAAK,YACxBijP,EAASpiM,EAAEvsD,MAAMuc,MAEvB,GAAIoyO,EAAQ,CACV,MAAMC,EAAeN,EAAW5iP,KAAK,SACrC,GAAIgjP,GAAYE,EAAc,CAC5B,MAAM1gK,EAAaR,cAAcR,GAAUW,QAAQ+gK,EAAcF,EAAUC,GAC3EH,EAAM3gP,SAASqgF,EAAWr/D,WAAYq/D,EAAW3d,QAAQ4d,UACzDqgK,EAAM7kN,IAAIyiB,eAAa,EAG7B,EACF,CCdO,IAAMyiM,GAAmB,MAA1B,MAAOA,EAiBXhvP,YAAY8pC,GACV3pC,KAAK2pC,IAAMA,CACb,CAEAV,WACEjpC,KAAK41I,cAAgB51I,KAAKqqF,OAAOn+E,KACnC,CAEAmgD,mBACOrsD,KAAKo9K,UAAYp9K,KAAK8uP,aACzBT,GAAkB9hM,EAAE,IAAIvsD,KAAK+uP,WAAYxiM,EAAE,IAAIvsD,KAAK8uP,eAAgB9uP,KAAKqqF,OAAO6C,SAAUltF,KAE9F,CAEAgvP,qBACE,IAAKhvP,KAAKqqF,OAAO6C,SAEf,YADAltF,KAAK6N,SAAS7N,KAAKqqF,OAAOn+E,MAAOwhF,cAAcO,aAAajuF,KAAKqqF,OAAOn+E,QAI1E,MAAMgiF,EAAaR,cAAc1tF,KAAKqqF,OAAO6C,UAAUW,QACrD7tF,KAAKqqF,OAAOn+E,MACZwhF,cAAc1tF,KAAKqqF,OAAO6C,UAAUS,kBACpC3tF,KAAKqqF,OAAOlrB,MAGdn/D,KAAK6N,SAASqgF,EAAWr/D,WAAYq/D,EAAW3d,QAAQ4d,SAC1D,CAEAtgF,SAASohP,EAAUC,GACZlvP,KAAKmvP,gBACRnvP,KAAKqqF,OAAOn+E,MAAQ+iP,GAGtBjvP,KAAKkvP,aAAeA,CACtB,CAEAE,QAAQjwL,GACDn/D,KAAKqvP,eACRrvP,KAAKqqF,OAAOlrB,KAAOA,EAEvB,CAEAmwL,4BAA4BpjP,GAC1B,OAAOwhF,cAAc1tF,KAAKqqF,OAAO6C,UAAUW,QACzC3hF,EACAlM,KAAKqqF,OAAOlrB,KACZuuB,cAAc1tF,KAAKqqF,OAAO6C,UAAUS,kBAExC,CAEA4hK,aAAarjP,GACX,MAAMsjP,EAAgBxvP,KAAKsvP,4BAA4BpjP,GAAO2iB,WAE1D2gO,EAAgBxvP,KAAKqqF,OAAOiD,YAAckiK,EAAgBxvP,KAAKqqF,OAAOkD,YACxEvtF,KAAKqqF,OAAO+C,YAAchB,aAC1BpsF,KAAKkvP,aAAe,IAEpBlvP,KAAKqqF,OAAO+C,YAAchB,QAE9B,CAACjsF,kDA7EU0uP,GAAmB/gO,iHAAnB+gO,EAAmBtkN,0VATnBplC,wCAITA,6EAA0B,4BAChB6Q,8BAAiC,GALlC7Q,kCAMTA,yGAJAA,oDACAA,kDACAA,iDAA0B,uHAKjB0pP,CAAmB,KCVnBY,GAAmB,MAA1B,MAAOA,EAUXxmN,WAEIjpC,KAAK0vP,aADH1vP,KAAK2vP,eACa,CAAExwL,KAAMn/D,KAAKqqF,OAAOlrB,MAEpBn/D,KAAKqqF,MAE7B,CAEAh+B,kBACEqhC,cAAc1tF,KAAKqqF,OAAO6C,UAAU0iK,iBAAiB,IAAI5vP,KAAK6vP,WAAY7vP,KAAKqqF,OAAOlrB,KAAMn/D,KAAK8vP,WACnG,CAAC3vP,kDApBUsvP,EAAmB,8DAAnBA,EAAmBllN,8QAF3BplC,yCAA0BA,kFAA0EA,kCAA1CA,kCAAlDA,mDAAkBA,sDAA+B,6HAEjDsqP,CAAmB,KCGnBM,GAA4B,MAAnC,MAAOA,EAQXlwP,cAAe,CAEfopC,WACMjpC,KAAKgwP,mBACPhwP,KAAK0nH,aAAeh6B,cAAc1tF,KAAKgwP,iBAAiB9iK,UAAUS,kBAEtE,CAEAthC,mBHOI,SAAU4jM,GACdC,EACAC,GAEA,MAAMzoI,EAAeh6B,cAAcyiK,EAAW9lK,OAAO6C,UAAUS,kBAG/DuiK,EAAYvqP,QAAQ,SAAUukC,GAC5B,MAAMkmN,EAAc7jM,EAAE,IAAIriB,EAAK6kN,WAE/BqB,EAAY1kP,KAAK,QAASw+B,EAAK0rG,eAAelqI,KAAK,WAAYg8G,GAG/D0oI,EAAY5jM,GAAG,SAAU,WACvBD,EAAEvsD,MAAM0L,KAAK,QAAS6gD,EAAEvsD,MAAMuc,OAC9BgwC,EAAEvsD,MAAM0L,KAAK,WAAY6gD,EAAE,IAAI4jM,EAAWN,YAAYtzO,OACtD2tB,EAAKr8B,SAASuiP,EAAY7zO,MAAO6zO,EAAY7zO,MAC/C,EACF,GAGAgwC,EAAE,IAAI4jM,EAAWN,YAAY7qG,OAAO,WAClC,MAAM2pG,EAASpiM,EAAEvsD,MAAMuc,MAEnBoyO,GAEFuB,EAAYvqP,QAAQ,SAAUukC,GAC5B,MAAMkmN,EAAc7jM,EAAE,IAAIriB,EAAK6kN,WACzBH,EAAewB,EAAY1kP,KAAK,SAChCgjP,EAAW0B,EAAY1kP,KAAK,YAIlC,GAFAw+B,EAAKklN,QAAQT,GAETD,GAAYE,EAAc,CAC5B,MAAM1gK,EAAaR,cAAcyiK,EAAW9lK,OAAO6C,UAAUW,QAAQ+gK,EAAcF,EAAUC,GAC7FzkN,EAAKr8B,SAASqgF,EAAWr/D,WAAYq/D,EAAW3d,QAAQ4d,UACxDjkD,EAAKP,IAAIyiB,eAAa,CAE1B,EAEJ,EACF,CG/CI6jM,CAA0BjwP,KAAKkwP,YAAalwP,KAAKmwP,YACjD,MAAME,EAAc9jM,EAAE,IAAIvsD,KAAKmwP,WAAWN,YAEtC7vP,KAAKswP,gBACPtwP,KAAKuwP,iBACLF,EAAY7jM,GAAG,SAAU,KACvBxsD,KAAKuwP,gBAAc,GAGrBvwP,KAAKkwP,YAAYvqP,QAAQ6qP,IACvBjkM,EAAE,IAAIikM,EAAGzB,WAAWviM,GAAG,SAAU,KAC/BxsD,KAAKuwP,gBAAc,EACpB,GAGP,CAEAA,iBACE,IAAIrsO,EAAQ,EAEZlkB,KAAKkwP,YAAYvqP,QAAQ6qP,IACvB,MAAMj0O,EAAMmxE,cAAcI,iBAAiB0iK,EAAGtB,cAEzCviO,MAAMpQ,KACT2H,GAAS3H,KAIb2H,EAAQg7C,WAAWh7C,EAAMwoE,QAAQ,IAEjC,MAAM+jK,EAAelkM,EAAE,IAAIvsD,KAAKswP,iBAGhC,GAFAG,EAAal0O,IAAI2H,GAEblkB,KAAKgwP,iBAAkB,CACzB,MAAMU,EAAgBhjK,cAAc1tF,KAAKgwP,iBAAiB9iK,UACvDW,QAAQ3pE,EAAOlkB,KAAK2wP,kBAAmB3wP,KAAK0nH,cAC5C74F,WAEC6hO,EAAgB1wP,KAAKgwP,iBAAiB1iK,YAAcojK,EAAgB1wP,KAAKgwP,iBAAiBziK,YAC5FvtF,KAAKgwP,iBAAiB5iK,YAAchB,aACpCqkK,EAAarjP,SAASg/E,gBAEtBpsF,KAAKgwP,iBAAiB5iK,YAAchB,SACpCqkK,EAAanjP,YAAY8+E,cAAqB,CAGpD,CAEAukK,kBACE,OAAOpkM,EAAE,IAAIvsD,KAAKmwP,WAAWN,YAAYtzO,KAC3C,CAACpc,kDAnEU4vP,EAA4B,8DAA5BA,EAA4BxlN,kHAIzBklN,GAAmB,gCADhBZ,GAAmB,gQAHzBkB,CAA4B,+BCFrC5qP,oCACEA,6CAOFA,qEARKA,4CAEDA,6EAA6B,kBAA7BA,CAA6B,yBAA7BA,CAA6B,sBAA7BA,CAA6B,4FAgBjCA,oCACEA,mCACAA,sCAAgC,YAAhCA,CAAgC,aAO1BA,2HAAaA,4CACvB,GANQA,gCAKkC,6CAFhCA,iFAA+B,8BAQpC,IAAMyrP,GAAoB,MAA3B,MAAOA,EAuBPjxJ,yBACF,OAAO3/F,KAAK+vI,YAAYle,YAAYlyB,kBACtC,CAEA9/F,YAAY8pC,EAAgComG,sBAN5C/vI,uBAAoB,WAOlBA,KAAK2pC,IAAMA,CACb,CAEAV,WACEjpC,KAAK41I,cAAgB51I,KAAKqqF,OAAOn+E,MAC7BlM,KAAK6wP,gBACP7wP,KAAK8wP,kBAAoB,WAE7B,CAEAzkM,kBACEgiM,GAAkB9hM,EAAE,IAAIvsD,KAAK+uP,WAAYxiM,EAAE,IAAIvsD,KAAK+uP,eAAgB/uP,KAAKqqF,OAAO6C,SAAUltF,KAC5F,CAEAgvP,qBACE,MAAM9gK,EAAaR,cAAc1tF,KAAKqqF,OAAO6C,UAAUW,QACrD7tF,KAAKqqF,OAAOn+E,MACZwhF,cAAc1tF,KAAKqqF,OAAO6C,UAAUS,kBACpC3tF,KAAKqqF,OAAOlrB,MAGdn/D,KAAK6N,SAASqgF,EAAWr/D,WAAYq/D,EAAW3d,QAAQ4d,SAC1D,CAEAmhK,4BAA4BpjP,GAC1B,OAAOwhF,cAAc1tF,KAAKqqF,OAAO6C,UAAUW,QACzC3hF,EACAlM,KAAKqqF,OAAOlrB,KACZuuB,cAAc1tF,KAAKqqF,OAAO6C,UAAUS,kBAExC,CAEAojK,oBAAoB7kP,EAAOizD,GACzB,OAAOuuB,cAAc1tF,KAAKqqF,OAAO6C,UAAUW,QACzC3hF,EACAwhF,cAAc1tF,KAAKqqF,OAAO6C,UAAUS,kBACpCxuB,EAEJ,CAEAz2B,YAAYC,IACgB,OAAtB3oC,KAAKqqF,OAAOn+E,cAAyBlM,KAAKqqF,OAAOn+E,MAAU,MAC7DlM,KAAK6N,SAAS,KAAM,KAExB,CAEA0hP,aAAarjP,GACX,MAAMsjP,EAAgBxvP,KAAKsvP,4BAA4BpjP,GAAO2iB,WAE1D2gO,EAAgBxvP,KAAKqqF,OAAOiD,YAAckiK,EAAgBxvP,KAAKqqF,OAAOkD,YACxEvtF,KAAKqqF,OAAO+C,YAAchB,aAC1BpsF,KAAKkvP,aAAe,IAEpBlvP,KAAKqqF,OAAO+C,YAAchB,QAE9B,CAEAv+E,SAASohP,EAAU+B,GACZhxP,KAAKixP,iBACRjxP,KAAKqqF,OAAOn+E,MAAQ+iP,GAGtBjvP,KAAKkvP,aAAe8B,CACtB,CAAC7wP,kDA3FUywP,GAAoB9iO,mJAApB8iO,EAAoBrmN,qyBAlCpBplC,sCACTA,yCASAA,oCAAyG,aAIrGA,6EAA0B,4BAChB6Q,8BAAiC,GAJ7C7Q,6BAQFA,yCAaFA,kCA/BwCA,sEASjCA,+FAA4DA,uDAM7DA,iIAHAA,kDACAA,iDAA0B,yDAKxBA,iNAeGyrP,CAAoB,KCtCpBM,GAA0B,MAAjC,MAAOA,EACXrxP,YAAoBS,YAAiB,CAErC+rD,kBACE,MAAM8kM,EAASC,OAAOpxP,KAAKM,GAAG0iD,cAAczgD,aAAa,SACnD8uP,EAAQD,OAAOpxP,KAAKM,GAAG0iD,eAG7BmuM,EAAO3kM,GAAG,qBAAsB,WAC9B6kM,EAAMzxN,KAAK,KAAKtyB,YAAY,YAAYF,SAAS,UACnD,GAGA+jP,EAAO3kM,GAAG,oBAAqB,WAC7B6kM,EAAMzxN,KAAK,KAAKtyB,YAAY,WAAWF,SAAS,WAClD,EACF,CAACjN,kDAhBU+wP,GAA0BpjO,0GAA1BojO,EAA0B3mN,oDAA1B2mN,CAA0B,+BCcvC/rP,sCAAyC,aAErCA,6CACFA,2BAEAA,2CAKFA,qEATSA,uFAKLA,kFAAgC,yCAAhCA,CAAgC,sBAAhCA,CAAgC,wDAoCpCA,sCAAyC,aACuCA,8BAAIA,2BAElFA,2CAKFA,qEAPSA,yEAGLA,oEAAkB,2BAAlBA,CAAkB,sBAAlBA,CAAkB,8BC1Df,IAAMmsP,GAAY,MAAnB,MAAOA,EAaXzxP,cAAe,CAEfopC,WACEjpC,KAAKkrJ,WAAWlrJ,KAAKkrJ,UAAWlrJ,KAAKkrJ,QACvC,CAAC/qJ,kDAjBUmxP,EAAY,8DAAZA,EAAY/mN,4SDRzBplC,sCAAwB,aAC2DA,iCAAOA,2BAExFA,2CAKFA,2BAEAA,sCAAwB,aACiEA,wCAAcA,2BAErGA,2CAKFA,2BAEAA,yCAYAA,sCAAwB,cACgEA,wCAAaA,2BAEnGA,4CAKFA,2BAEAA,uCAAwB,cAC6DA,oCAASA,2BAE5FA,4CAKFA,2BAEAA,uCAAwB,cACwDA,+BAAIA,2BAElFA,4CAKFA,2BAEAA,iDA7DSA,4EAGLA,uEAAqB,8BAArBA,CAAqB,sBAArBA,CAAqB,6BAOhBA,kFAGLA,6EAA2B,oCAA3BA,CAA2B,sBAA3BA,CAA2B,6BAMNA,mEAahBA,iFAGLA,4EAA0B,mCAA1BA,CAA0B,sBAA1BA,CAA0B,6BAOrBA,8EAGLA,yEAAuB,gCAAvBA,CAAuB,sBAAvBA,CAAuB,6BAOlBA,yEAGLA,oEAAkB,2BAAlBA,CAAkB,sBAAlBA,CAAkB,6BAMGA,uGCtDZmsP,CAAY,KCAZC,GAAsB,MAA7B,MAAOA,EAUXtoN,WACEjpC,KAAKwxP,WAAWxxP,KAAKwxP,UAAWxxP,KAAKwxP,SACrCxxP,KAAKyxP,SAAWzxP,KAAKyxP,SAAWzxP,KAAKyxP,SAAW,EAClD,CAACtxP,kDAbUoxP,EAAsB,8DAAtBA,EAAsBhnN,mXCRnCplC,mCAAI,SAOAA,+BACAA,qCACFA,6BAEFA,sCAAsD,WAElDA,qCACFA,6BAEFA,8BACAA,mCAAI,SAOAA,gCACAA,yCACFA,6BAEFA,uCAAyD,YAErDA,sCAIFA,6BAEFA,+BACAA,oCAAI,UAOAA,gCACAA,yCACFA,6BAEFA,uCAAyD,YAErDA,sCAIFA,6BAEFA,+BACAA,oCAAI,UAOAA,gCACAA,sCACFA,6BAEFA,uCAAuD,YAEnDA,sCAIFA,6BAEFA,+BACAA,oCAAI,UAOAA,gCACAA,+BACFA,6BAEFA,uCAAgD,YAE5CA,sCACFA,6BAEFA,+BACAA,oCAAI,UAOAA,gCACAA,+BACFA,6BAEFA,uCAAgD,YAE5CA,sCACFA,6BAEFA,+BACAA,oCAAI,UAOAA,gCACAA,+BACFA,6BAEFA,uCAAgD,YAE5CA,sCACFA,6BAEFA,+BACAA,oCAAI,UAOAA,gCACAA,gCACFA,6BAEFA,uCAAiD,YAE7CA,sCACFA,6BAEFA,+BACAA,oCAAI,UAOAA,gCACAA,iCACFA,6BAEFA,uCAAkD,YAE9CA,sCACFA,6BAEFA,sCA7JIA,4HAEAA,yDAKCA,+FAEQA,uEAAqB,mCAArBA,CAAqB,sCAQ9BA,+HAEAA,4DAKCA,kGAGCA,uEAAqB,sCAArBA,CAAqB,yCAUvBA,+HAEAA,4DAKCA,kGAGCA,uEAAqB,sCAArBA,CAAqB,yCAUvBA,6HAEAA,0DAKCA,gGAGCA,uEAAqB,oCAArBA,CAAqB,uCAUvBA,sHAEAA,mDAKCA,yFAEQA,uEAAqB,6BAArBA,CAAqB,gCAQ9BA,sHAEAA,mDAKCA,yFAEQA,uEAAqB,6BAArBA,CAAqB,gCAQ9BA,sHAEAA,mDAKCA,yFAEQA,uEAAqB,6BAArBA,CAAqB,gCAQ9BA,uHAEAA,oDAKCA,0FAEQA,uEAAqB,8BAArBA,CAAqB,iCAQ9BA,wHAEAA,qDAKCA,2FAEQA,uEAAqB,+BAArBA,CAAqB,kEDtJrBosP,CAAsB,qEEM/BpsP,uCACEA,mCAAI,SACCA,8HAASA,sDAA4B,GAAEA,wDAA8BA,6BAE5EA,gEAF8CA,kGCC3C,IAAMusP,GAAsB,MAA7B,MAAOA,EAZb7xP,cAoBEG,wBAAqB,IAAI+nC,eAEzB4pN,sBAAsBzmP,GACpBlL,KAAK4xP,mBAAmBloN,KAAKx+B,EAC/B,CAEA2mP,mBACEtlM,EAAE,sBAAsBI,MAAM,OAChC,CAEAmlM,mBAA0B,CAE1BC,oBAA2B,CAE3BC,aAAoB,CAAC7xP,kDAtBVuxP,EAAsB,8DAAtBA,EAAsBnnN,uMARtB,CACT,CACE7mC,QAASuuP,qBACTx9O,eAAay9O,cAAW,IAAMR,GAC9B7sP,OAAO,MAEV8lC,2fDfHxlC,sCAAsB,cASlBA,wDACAA,kCACFA,2BACAA,qCAEEA,kDAKAA,gCACAA,mCAAI,SACCA,iDAAS6Q,oBAAkB,GAAE7Q,8CAAoBA,gCAAwDA,wCAZ9GA,qJAK6BA,+HCGpBusP,CAAsB,qECUnBvsP,wCAAwG,eAGpGA,uJAASA,4CAAiB,GAG1BA,gCACFA,4BAAS,iHAEXA,wCAG6B,eAGzBA,uJAASA,2CAAgB,GAGzBA,gCAIFA,4BAAS,kFAFLA,6LA1BRA,uCAAuG,YAAvGA,CAAuG,eAE3DA,sJAASA,2CAAgB,GAC/DA,gCACFA,6BAEFA,2CASAA,2CAeFA,2GAxBSA,sFAUJA,wJAiBTA,uCACEA,2EACAA,qCAAYA,sJAASA,2CAAgB,GAAqBA,mCAAYA,2BAAIA,2BAAEA,qCAE1EA,sJAASA,0CAAe,GAEvBA,mCAAYA,4BACd,iEAGDA,4CAOGA,sBAA4BA,yGAL7BA,mGAKCA,4GAEHA,qCACEA,sBACFA,yGADEA,qHA/DRA,oCAAmE,UAAnEA,CAAmE,WAAnEA,CAAmE,WAAnEA,CAAmE,cAKzDA,sBACFA,2BAEAA,yCAA2BA,sBAAwDA,2BAEnFA,0CA+BFA,6BAEFA,0CASAA,wCACEA,gDASAA,yCAGFA,6BAEFA,+BACFA,+EAnEOA,8EAGQA,iFACLA,8FAGyBA,qHAErBA,qIAiCwCA,0FAW7CA,uFAQiBA,uFC/DzB,IAAMgtP,GAA8B,MAArC,MAAOA,EAKXtyP,YAAoBuyP,EAAgCC,GAAhCryP,UAAgCA,sBAAmC,CAEvFipC,WACEjpC,KAAKsyP,eAAiBtyP,KAAKqyP,gBAAgBn2G,qBAAqBl8I,KAAKs/F,UACrEt/F,KAAKuyP,YACP,CAEAA,aACEvyP,KAAKwyP,cAAgBxyP,KAAKoyP,GAAG9zN,MAAM,CACjCm0N,YAAazyP,KAAKoyP,GAAGviP,QAAc,GAAI,CAAC6iP,yBACxCC,cAAe3yP,KAAKoyP,GAAG1jN,MAAM1uC,KAAK4yP,sBAEtC,CAEAA,oBACE,OAAO5yP,KAAKsyP,eAAe/qP,IAAIm2F,GACtB19F,KAAK6yP,kBAAkBn1J,GAElC,CAEAm1J,kBAAkB7zH,GAChB,MAAMnvH,EAAU7P,KAAKoyP,GAAG9zN,MAAM,CAC5B5a,KAAM1jB,KAAKoyP,GAAGviP,QAAQmvH,EAAQt7G,MAC9BovO,QAAS9yP,KAAKoyP,GAAGviP,QAAQ,MAE3BA,SAAQ7L,IAAI,QAAQ2+E,UACpB9yE,EAAQ7L,IAAI,WAAW2+E,UAChB9yE,CACT,CAEA4rI,aACE,MAAM/3H,EAAO1jB,KAAKwyP,cAAcxuP,IAAI,eAAekI,MACnD,GAAIwX,EAAM,CACR,MAAMs7G,EAAUh/H,KAAKqyP,gBAAgB52G,WAAWz7I,KAAKs/F,SAAU57E,GACzD7T,EAAU7P,KAAK6yP,kBAAkB7zH,GACvCh/H,KAAKsyP,eAAehvN,QAAQ07F,GAC3Bh/H,KAAKwyP,cAAcxuP,IAAI,iBAAsC4lC,OAAO,EAAG/5B,GACxE7P,KAAKwyP,cAAcxuP,IAAI,eAAe+rD,OAAK,CAE/C,CAEIgjM,6BAEF,OADc/yP,KAAKwyP,cAAcxuP,IAAI,iBACxBozI,QACf,CAEA47G,kBAAkBxuP,EAAWqL,GAC3B,OAAQ7P,KAAKwyP,cAAcxuP,IAAI,iBAAsCwrJ,GAAGhrJ,GAAGR,IAAI6L,GAAS6sD,QAC1F,CAEAu2L,WAAWC,GACT,MAAMnmO,EAAiBC,aAAaC,QAAQ,QAE5C,OADoBzO,KAAKiF,MAAMsJ,GAAkB,MAAMI,WAChC+lO,CACzB,CAEAC,eAAe3uP,GACCxE,KAAKwyP,cAAcxuP,IAAI,iBAAsCwrJ,GAAGhrJ,GAAGR,IAAI,QAChFovP,QACP,CAEAx3G,cAAcp3I,GACZ,MAAM6uP,EAAWrzP,KAAKwyP,cAAcxuP,IAAI,iBAAsCwrJ,GAAGhrJ,GAAGR,IAAI,QAAQkI,MAEhGlM,KAAKqyP,gBAAgBz2G,cADL57I,KAAKsyP,eAAe9tP,GACQ6uP,GAC3CrzP,KAAKwyP,cAAcxuP,IAAI,iBAAsCwrJ,GAAGhrJ,GAAGR,IAAI,QAAQ2+E,SAClF,CAEA2wK,cAAc9uP,GACZxE,KAAK47I,cAAcp3I,GAClBxE,KAAKwyP,cAAcxuP,IAAI,iBAAsCwrJ,GAAGhrJ,GAAGR,IAAI,WAAWovP,QACrF,CAEAG,aAAa/uP,GACVxE,KAAKwyP,cAAcxuP,IAAI,iBAAsCwrJ,GAAGhrJ,GAAGR,IAAI,WAAW2+E,SACrF,CAEA6wK,cAAchvP,GACZ,MAAQ0G,MAAOlL,KAAKsyP,eAAe9tP,GACnCxE,KAAKqyP,gBAAgBx2G,cAAc3wI,GACnClL,KAAKsyP,eAAenhP,OAAO3M,EAAG,GAC7BxE,KAAKwyP,cAAcxuP,IAAI,iBAAsCs/O,SAAS9+O,EACzE,CAEAivP,WAAWnpM,GACT,MAAMopM,EAAeC,GAAOA,EAAIr9O,WAAWs9O,SAAS,EAAG,KACvD,MAAO,CAACF,EAAappM,EAAKupM,WAAYH,EAAappM,EAAKwpM,WAAa,GAAIxpM,EAAKypM,eAAej3O,KAAK,IACpG,CAAC3c,kDA5FUgyP,GAA8BrkO,qJAA9BqkO,EAA8B5nN,umDDV3CplC,oCAAK,UAALA,CAAK,UAALA,CAAK,WAIGA,sCACFA,6BAEFA,sCAAwF,SACvDA,iDAAS6Q,cAAY,GAAE7Q,+BAA2BA,qCAAWA,6BAE9FA,yCACEA,2CAqEFA,oCACFA,oCAhF6BA,6EAUAA,8kCCDlBgtP,CAA8B,KCL9B6B,GAAQ,MAAf,MAAOA,EACX9xD,UAAUh2L,EAAYoL,GACpB,OAAO3L,OAAOtE,KAAK6E,EACrB,CAAC/L,kDAHU6zP,EAAQ,sEAARA,EAAQC,iBAARD,CAAQ,KCERE,GAA4B,MAAnC,MAAOA,EACXhyD,UAAUiyD,GACR,GACsB,QAApBA,GACoB,QAApBA,GACoB,QAApBA,GACoB,SAApBA,EACA,CACA,MAAMC,EAAiCD,EAAgBtjP,MAAM,KACvDwjP,EAAqC,GAC3C,QAAS7vP,EAAI,EAAGA,EAAI4vP,EAAqB3vP,OAAQD,IAAK,CACpD,MAAM8vP,EAAkBF,EAAqB5vP,GAAG0nN,OAAO,EAAG,GAAGluM,cAC7Dq2O,EAAyB7vP,GAAK8vP,EAAkBF,EAAqB5vP,GAAG0nN,OAAO,EAAC,CAGlF,OAAOmoC,EAAyBv3O,KAAK,IAAG,CAG1C,OAAOq3O,CACT,CAACh0P,kDAnBU+zP,EAA4B,sFAA5BA,EAA4BD,iBAA5BC,CAA4B,4BCUvC/uP,qCAAgD,UACsDA,8BAAKA,wDA8HnGA,uCACEA,sCAAwB,cAEpBA,mEACFA,2BACAA,uCACEA,8CASFA,6BAEJA,6FAfWA,wEACLA,oIAIEA,2FAA2C,yBAA3CA,CAA2C,0BAA3CA,CAA2C,cAA3CA,CAA2C,mBAA3CA,CAA2C,cAA3CA,CAA2C,4DArBvDA,uCAAyF,WAAzFA,CAAyF,UAAzFA,CAAyF,cAGJA,+BAAKA,2BAEpFA,uCACEA,8CAKFA,6BAGFA,iFAmBAA,sCAAwB,eACyBA,+BAAKA,2BACpDA,wCACEA,qCACFA,4EAlCOA,0EAIHA,iGAAiD,0CAAjDA,CAAiD,cAAjDA,CAAiD,0BAOzBA,iJAlEtCA,uCAAiG,UAAjGA,CAAiG,SAAjGA,CAAiG,UAGLA,wCAAeA,6BAGvGA,qCAAwB,UAC8DA,uCAAcA,6BAEpGA,qCAAwB,UAC8DA,qCAAWA,+BAGnGA,wCAAuD,YAAvDA,CAAuD,WAAvDA,CAAuD,WAAvDA,CAAuD,eAK7CA,wCACFA,2BACAA,6CAIFA,2BACAA,uCAAwB,eAC0DA,+BAAIA,2BACpFA,6CAIFA,2BACAA,uCAAwB,eAC6DA,kCAAOA,2BAC1FA,6CAIFA,2BACAA,uCAAwB,eAC+DA,oCAASA,2BAC9FA,6CAIFA,+BAIJA,wCACEA,kDACFA,2BACAA,4CAyCFA,uEA5EeA,oFAILA,sFAAsC,cAAtCA,CAAsC,wCAKjCA,2EAELA,8EAA8B,cAA9BA,CAA8B,gCAKzBA,8EAELA,iFAAiC,cAAjCA,CAAiC,mCAK5BA,gFAELA,mFAAmC,cAAnCA,CAAmC,qCAQrBA,+DAAiB,mCAEjCA,2ECxHL,IAAMovP,GAAsB,MAA7B,MAAOA,EAMX10P,YAAoBkwI,EAAkCpmG,GAAlC3pC,mBAAkCA,UAAyB,CAE/EipC,WACEjpC,KAAK2xP,uBACP,CAEA6C,qBAAqB1lB,GACfA,IACF9uO,KAAK+0F,cAAcoH,mBAAmBjwF,MAAQ,KAElD,CAEI4hH,oBACF,OAAO9tH,KAAK+vI,YAAYle,YAAYhP,aAAaqL,oBAAoB,UACvE,CAEAyjI,sBAAsBzmP,GAChBA,IACFlL,KAAK+0F,cAAcX,gBAAkBlpF,GAEnClL,KAAK+0F,cAAcX,kBACrBp0F,KAAKy0P,gBAAkBz0P,KAAK+vI,YAAYle,YAAYhP,aAAaoL,sBAC/DjuH,KAAK+0F,cAAcX,iBAErBp0F,KAAK00P,eAET,CAEAA,eACE,MAAMC,EAAO,CACX,eACA,kBACA,kBACA,gBACA,SACA,SACA,SACA,UACA,YAEIC,EAAc,CAAC,SAAU,eAAgB,cAAe,WAAY,OAC1E,UAAWC,KAASF,EAClB,UAAWG,KAAcF,EAAa,CACpC,MAAMvqK,EAASrqF,KAAKy0P,gBAAgBI,GAAOC,GACrCC,EAAS,IAAIF,IAAQC,IAC3BvoM,EAAEwoM,GAAQx4O,IAAI8tE,EAAO0D,sBAAqB,IAC1CxhC,EAAE,GAAGwoM,SAAcx4O,IAAI8tE,EAAOlrB,MAC9B5S,EAAEwoM,GAAQ/vG,QAAM,CAGpBz4F,EAAE,mBAAmBvsD,KAAK+0F,cAAc7pF,MAAMqR,IAAIvc,KAAKy0P,gBAAgBv7I,YAAY,GAAG/5C,MACtF,IAAIj7C,EAAQ,EACZ,QAAS1f,EAAI,EAAGA,EAAIxE,KAAKy0P,gBAAgBv7I,YAAYz0G,OAAQD,IAAK,CAChE,MAAM6lF,EAASrqF,KAAKy0P,gBAAgBv7I,YAAY10G,GAChD0f,GAASmmE,EAAO0D,sBAAqB,GACrCxhC,EAAE,eAAe/nD,KAAK+X,IAAI8tE,EAAO0D,sBAAqB,GAAK,CAE7DxhC,EAAE,uBAAuBhwC,IAAI2H,GAE7BqoC,EAAE,6BAA6BhwC,IAAIvc,KAAKy0P,gBAAgBt0J,YAAYpS,sBAAqB,IACzFxhC,EAAE,iCAAiChwC,IAAIvc,KAAKy0P,gBAAgBt0J,YAAYhhC,MACxE5S,EAAE,6BAA6By4F,SAE/Bz4F,EAAE,qBAAqBhwC,IAAIvc,KAAKy0P,gBAAgB99I,IAAI5oB,sBAAqB,IACzExhC,EAAE,yBAAyBhwC,IAAIvc,KAAKy0P,gBAAgB99I,IAAIx3C,MACxD5S,EAAE,qBAAqBy4F,SAEvBz4F,EAAE,wBAAwBhwC,IAAIvc,KAAKy0P,gBAAgBpzJ,OAAOtT,sBAAqB,IAC/ExhC,EAAE,4BAA4BhwC,IAAIvc,KAAKy0P,gBAAgBpzJ,OAAOliC,MAC9D5S,EAAE,wBAAwBy4F,SAE1Bz4F,EAAE,0BAA0BhwC,IAAIvc,KAAKy0P,gBAAgBltJ,SAASxZ,sBAAqB,IACnFxhC,EAAE,8BAA8BhwC,IAAIvc,KAAKy0P,gBAAgBltJ,SAASpoC,MAClE5S,EAAE,0BAA0By4F,QAC9B,CAAC7kJ,kDAhFUo0P,GAAsBzmO,mJAAtBymO,EAAsBhqN,4+FDVnCplC,sCAA6B,UAA7BA,CAA6B,aAEoCA,qCAAWA,2BACxEA,sCAAkC,0BAI9BA,+DAAsB6Q,0BAA6B,GAAE7Q,iCAI7DA,8BACAA,qCAAqF,SAArFA,CAAqF,SAEeA,iCAAOA,6BAGzGA,yCAGAA,sCAAwB,WACsDA,mCAASA,6BAEvFA,sCAAwB,WAC0DA,qCAAWA,6BAG7FA,sCAAwB,WAEpBA,iCACAA,oCACFA,+BAIJA,wCAAuD,YAAvDA,CAAuD,YAAvDA,CAAuD,WAAvDA,CAAuD,WAAvDA,CAAuD,eAKcA,oCAASA,2BACpEA,wCAAsB,cAAtBA,CAAsB,eAKhBA,4FAAyC,4BAC/B6Q,wCAA2C,GAJvD7Q,iCASNA,uCAAwB,eAC4DA,+CAAoBA,2BACtGA,6CAIFA,2BAEAA,+BACAA,uCAAqBA,6BAAGA,2BAExBA,uCAAwB,eACsDA,yCAAcA,2BAC1FA,6CACFA,2BACAA,uCAAwB,eACsDA,yCAAcA,2BAC1FA,6CAIFA,iCAKNA,6CA+FAA,wCAA6D,YAA7DA,CAA6D,WAA7DA,CAA6D,YAGlCA,8BAAIA,2BAEzBA,uCAAwB,eAC+CA,mDAAwBA,2BAC7FA,6CAGFA,2BACAA,uCAAwB,eAC2DA,+BAAIA,2BACrFA,6CAIFA,2BACAA,uCAAwB,eAC+CA,yCAAcA,2BACnFA,6CACFA,2BAEAA,uCAAwB,eACmDA,iCAAMA,2BAC/EA,6CACFA,iCAINA,wCAA+D,YAA/DA,CAA+D,UAA/DA,CAA+D,cAGqBA,gCAAMA,6BAEtFA,uCAA6B,WAA7BA,CAA6B,eAE+CA,6CAAkBA,2BAC1FA,6CACFA,iCAKNA,wCAAyE,aAErEA,2DACFA,sCAvNIA,iFAA+B,qCAYhCA,0EA6BSA,0FAOCA,6EAELA,gFAAgC,4CAAhCA,CAAgC,0CAS3BA,uEACQA,0EAA0B,uCAGlCA,uEAELA,0EAA0B,cAA1BA,CAA0B,uCAQ9BA,0EAqGSA,gEAELA,kFAAkC,+CAI7BA,4EAELA,+EAA+B,2CAA/BA,CAA+B,eAK1BA,gEACQA,mEAAmB,+BAAnBA,CAAmB,eAI3BA,oEACQA,uEAAuB,mCAAvBA,CAAuB,eAY/BA,mEACQA,sEAAsB,kBAAtBA,CAAsB,mCAQZA,mNCjNtBovP,CAAsB,4BCMjCpvP,qCAAgD,UACsDA,8BAAKA,wDAyNnGA,uCACEA,sCAAwB,cAEpBA,mEACFA,2BACAA,uCACEA,8CASFA,6BAEJA,6FAfWA,wEACLA,oIAIEA,2FAA2C,yBAA3CA,CAA2C,0BAA3CA,CAA2C,cAA3CA,CAA2C,mBAA3CA,CAA2C,cAA3CA,CAA2C,4DAzE3DA,uCAAiG,UAAjGA,CAAiG,SAAjGA,CAAiG,UAGLA,wCAAeA,6BAGvGA,qCAAwB,UAC8DA,uCAAcA,6BAEpGA,qCAAwB,UAC4DA,qCAAWA,+BAIjGA,wCAAuD,YAAvDA,CAAuD,WAAvDA,CAAuD,WAAvDA,CAAuD,eAK7CA,wCACFA,2BACAA,6CAIFA,2BACAA,uCAAwB,eAC0DA,+BAAIA,2BACpFA,6CAIFA,2BACAA,uCAAwB,eAC6DA,kCAAOA,2BAC1FA,6CAIFA,2BACAA,uCAAwB,eAC+DA,oCAASA,2BAC9FA,6CAIFA,+BAGJA,wCACEA,kDACFA,2BACAA,wCAAiE,YAAjEA,CAAiE,WAAjEA,CAAiE,eAGoBA,gCAAKA,2BAEpFA,wCACEA,+CAKFA,6BAGFA,mFAmBAA,uCAAwB,eACyBA,+BAAKA,2BACpDA,wCACEA,qCACFA,+EAvEOA,oFAILA,sFAAsC,cAAtCA,CAAsC,wCAKjCA,2EAELA,8EAA8B,cAA9BA,CAA8B,gCAKzBA,8EAELA,iFAAiC,cAAjCA,CAAiC,mCAK5BA,gFAELA,mFAAmC,cAAnCA,CAAmC,qCAOrBA,+DAAiB,mCAK1BA,0EAIHA,iGAAiD,0CAAjDA,CAAiD,cAAjDA,CAAiD,0BAOzBA,yHChOjC,IAAM6vP,GAAmB,MAA1B,MAAOA,EAIXn1P,YAAoBkwI,qBAA2B,CAE/C9mG,WACEjpC,KAAK2xP,uBACP,CAEI7jI,oBACF,OAAO9tH,KAAK+vI,YAAYle,YAAYhP,aAAaqL,oBAAoB,sBACvE,CAEAyjI,sBAAsBzmP,GAChBA,IACFlL,KAAK+0F,cAAcX,gBAAkBlpF,GAGnClL,KAAK+0F,cAAcX,kBACrBp0F,KAAKy0P,gBAAkBz0P,KAAK+vI,YAAYle,YAAYhP,aAAaoL,sBAC/DjuH,KAAK+0F,cAAcX,iBAErBp0F,KAAK00P,eAET,CAEAA,eACE,MAAMC,EAAO,CACX,eACA,kBACA,kBACA,gBACA,SACA,SACA,SACA,UACA,YAGIM,EAAc,CAAC,SAAU,eAAgB,cAAe,WAAY,OAE1E,UAAWJ,KAASF,EAClB,UAAWO,KAAcD,EAAa,CACpC,MAAM5qK,EAASrqF,KAAKy0P,gBAAgBI,GAAOK,GACrCH,EAAS,IAAIF,IAAQK,IAC3B3oM,EAAEwoM,GAAQx4O,IAAI8tE,EAAO0D,sBAAqB,IAC1CxhC,EAAE,GAAGwoM,SAAcx4O,IAAI8tE,EAAOlrB,MAC9B5S,EAAEwoM,GAAQ/vG,QAAM,CAIpBz4F,EAAE,mBAAmBvsD,KAAK+0F,cAAc7pF,MAAMqR,IAAIvc,KAAKy0P,gBAAgBv7I,YAAY,GAAG/5C,MACtF,IAAIj7C,EAAQ,EACZ,QAAS1f,EAAI,EAAGA,EAAIxE,KAAKy0P,gBAAgBv7I,YAAYz0G,OAAQD,IAAK,CAChE,MAAM6lF,EAASrqF,KAAKy0P,gBAAgBv7I,YAAY10G,GAChD0f,GAASmmE,EAAO0D,sBAAqB,GACrCxhC,EAAE,eAAe/nD,KAAK+X,IAAI8tE,EAAO0D,sBAAqB,GAAK,CAG7DxhC,EAAE,uBAAuBhwC,IAAI2H,GAE7BqoC,EAAE,6BAA6BhwC,IAAIvc,KAAKy0P,gBAAgBt0J,YAAYpS,sBAAqB,IACzFxhC,EAAE,iCAAiChwC,IAAIvc,KAAKy0P,gBAAgBt0J,YAAYhhC,MACxE5S,EAAE,6BAA6By4F,SAE/Bz4F,EAAE,qBAAqBhwC,IAAIvc,KAAKy0P,gBAAgB99I,IAAI5oB,sBAAqB,IACzExhC,EAAE,yBAAyBhwC,IAAIvc,KAAKy0P,gBAAgB99I,IAAIx3C,MACxD5S,EAAE,qBAAqBy4F,SAEvBz4F,EAAE,wBAAwBhwC,IAAIvc,KAAKy0P,gBAAgBpzJ,OAAOtT,sBAAqB,IAC/ExhC,EAAE,4BAA4BhwC,IAAIvc,KAAKy0P,gBAAgBpzJ,OAAOliC,MAC9D5S,EAAE,wBAAwBy4F,SAE1Bz4F,EAAE,0BAA0BhwC,IAAIvc,KAAKy0P,gBAAgBltJ,SAASxZ,sBAAqB,IACnFxhC,EAAE,8BAA8BhwC,IAAIvc,KAAKy0P,gBAAgBltJ,SAASpoC,MAClE5S,EAAE,0BAA0By4F,QAC9B,CAAC7kJ,kDA7EU60P,GAAmBlnO,gGAAnBknO,EAAmBzqN,ytFDVhCplC,sCAA6B,UAA7BA,CAA6B,aAEoCA,qCAAWA,2BACxEA,sCAAkC,0BAI9BA,+DAAsB6Q,0BAA6B,GAAE7Q,iCAI7DA,8BACAA,qCAAqF,SAArFA,CAAqF,SAEeA,iCAAOA,6BAEzGA,yCAGAA,sCAAwB,WACsDA,mCAASA,6BAEvFA,sCAAwB,WAC0DA,qCAAWA,6BAG7FA,sCAAwB,WAEpBA,iCACAA,oCACFA,+BAIJA,wCAAuD,YAAvDA,CAAuD,YAAvDA,CAAuD,WAAvDA,CAAuD,WAAvDA,CAAuD,eAKqCA,+CAAoBA,2BACtGA,6CACFA,2BAEAA,+BACAA,uCAAqBA,6BAAGA,2BAExBA,uCAAwB,eACsDA,yCAAcA,2BAC1FA,6CACFA,2BAEAA,uCAAwB,eAEpBA,kDACFA,2BACAA,6CAIFA,2BAEAA,uCAAwB,eACsDA,yCAAcA,2BAC1FA,6CAIFA,2BAEAA,+BACAA,uCAAqBA,+BAAKA,2BAE1BA,uCAAwB,eAEpBA,mDACFA,2BACAA,6CAGFA,2BAEAA,uCAAwB,eAEpBA,kDACFA,2BACAA,6CAGFA,2BAEAA,uCAAwB,eACwDA,2CAAgBA,2BAC9FA,6CACFA,2BAEAA,uCAAwB,eACuDA,0CAAeA,2BAC5FA,6CACFA,iCAKNA,wCAA6D,YAA7DA,CAA6D,WAA7DA,CAA6D,WAA7DA,CAA6D,eAIgBA,iCAAMA,2BAC3EA,6CACFA,2BACAA,uCAAwB,eAC0DA,6CAAkBA,2BAClGA,6CACFA,2BACAA,uCAAwB,eACiDA,mCAAQA,2BAC/EA,6CACFA,2BACAA,uCAAwB,eACmDA,gDAAqBA,2BAC9FA,6CACFA,2BACAA,+BACAA,uCAAqBA,8BAAIA,2BAEzBA,uCAAwB,eACiDA,oCAASA,2BAChFA,6CACFA,2BACAA,uCAAwB,eACuDA,sCAAWA,2BACxFA,6CACFA,2BACAA,uCAAwB,eACmDA,iCAAMA,2BAC/EA,6CACFA,2BACAA,uCAAwB,eAC2DA,gCAAIA,2BACrFA,8CAIFA,2BACAA,wCAAwB,gBACmDA,kCAAMA,2BAC/EA,8CACFA,2BACAA,wCAAwB,gBACmDA,kCAAMA,2BAC/EA,8CACFA,2BAEAA,gCACAA,wCAAqBA,gCAAKA,2BAE1BA,wCAAwB,gBACwDA,4CAAgBA,2BAC9FA,8CACFA,2BACAA,wCAAwB,gBACoDA,kCAAMA,2BAChFA,8CACFA,iCAKNA,8CAgGAA,yCAA+D,aAA/DA,CAA+D,WAA/DA,CAA+D,eAGqBA,iCAAMA,6BAEtFA,wCAA6B,YAA7BA,CAA6B,gBAE+CA,8CAAkBA,2BAC1FA,8CACFA,iCAKNA,yCAAsE,cAElEA,4DACFA,sCApRIA,iFAA+B,qCAWhCA,0EAuBUA,8EACQA,gFAAgC,6CAOxCA,uEACQA,0EAA0B,uCAIlCA,+EAILA,kFAAkC,cAAlCA,CAAkC,+CAM7BA,uEAELA,0EAA0B,cAA1BA,CAA0B,uCASrBA,qFAILA,wFAAwC,qDAKnCA,+EAILA,kFAAkC,+CAK7BA,yEACQA,4EAA4B,yCAIpCA,wEACQA,2EAA2B,wCAUnCA,gEACQA,mEAAmB,gCAG3BA,2EACQA,8EAA8B,2CAGtCA,kEACQA,qEAAqB,iCAArBA,CAAqB,eAG7BA,oEACQA,uEAAuB,mCAAvBA,CAAuB,eAM/BA,kEACQA,qEAAqB,kCAG7BA,wEACQA,2EAA2B,wCAGnCA,oEACQA,uEAAuB,oCAG/BA,4EAELA,+EAA+B,2CAA/BA,CAA+B,eAK1BA,oEACQA,uEAAuB,oCAG/BA,oEACQA,uEAAuB,mCAAvBA,CAAuB,eAO/BA,yEACQA,4EAA4B,yCAGpCA,qEACQA,wEAAwB,oCAAxBA,CAAwB,eAMzCA,0EAuGSA,mEACQA,sEAAsB,kBAAtBA,CAAsB,mCAQZA,qJC9QtB6vP,CAAmB,4BCO9B7vP,qCAAgD,UACsDA,8BAAKA,wDA0JnGA,uCACEA,sCAAwB,cAEpBA,mEACFA,2BACAA,uCACEA,8CASFA,6BAEJA,6FAfWA,wEACLA,oIAIEA,2FAA2C,yBAA3CA,CAA2C,0BAA3CA,CAA2C,cAA3CA,CAA2C,mBAA3CA,CAA2C,cAA3CA,CAA2C,4DAxE3DA,uCAAiG,UAAjGA,CAAiG,SAAjGA,CAAiG,UAGLA,wCAAeA,6BAGvGA,qCAAwB,UAC8DA,uCAAcA,6BAEpGA,qCAAwB,UAC4DA,qCAAWA,+BAGjGA,wCAAuD,YAAvDA,CAAuD,WAAvDA,CAAuD,WAAvDA,CAAuD,eAK7CA,wCACFA,2BACAA,6CAIFA,2BACAA,uCAAwB,eAC0DA,+BAAIA,2BACpFA,6CAIFA,2BACAA,uCAAwB,eAC6DA,kCAAOA,2BAC1FA,6CAIFA,2BACAA,uCAAwB,eAC+DA,oCAASA,2BAC9FA,6CAIFA,+BAGJA,wCACEA,kDACFA,2BACAA,wCAAiE,YAAjEA,CAAiE,WAAjEA,CAAiE,eAGoBA,gCAAKA,2BAEpFA,wCACEA,+CAKFA,6BAGFA,mFAmBAA,uCAAwB,eACyBA,+BAAKA,2BACpDA,wCACEA,qCACFA,+EAvEOA,oFAILA,sFAAsC,cAAtCA,CAAsC,wCAKjCA,2EAELA,8EAA8B,cAA9BA,CAA8B,gCAKzBA,8EAELA,iFAAiC,cAAjCA,CAAiC,mCAK5BA,gFAELA,mFAAmC,cAAnCA,CAAmC,qCAOrBA,+DAAiB,mCAK1BA,0EAIHA,iGAAiD,0CAAjDA,CAAiD,cAAjDA,CAAiD,0BAOzBA,yHClKjC,IAAMgwP,GAAmB,MAA1B,MAAOA,EAMXt1P,YAAoBkwI,qBAA2B,CAE/C9mG,WACEjpC,KAAK2xP,uBACP,CAEI7jI,oBACF,OAAO9tH,KAAK+vI,YAAYle,YAAYhP,aAAaqL,oBAAoB,sBACvE,CAEAyjI,sBAAsBzmP,GAChBA,IACFlL,KAAK+0F,cAAcX,gBAAkBlpF,GAEnClL,KAAK+0F,cAAcX,kBACrBp0F,KAAKy0P,gBAAkBz0P,KAAK+vI,YAAYle,YAAYhP,aAAaoL,sBAC/DjuH,KAAK+0F,cAAcX,iBAErBp0F,KAAK00P,eAET,CAEAA,eACE,MAAMC,EAAO,CACX,eACA,kBACA,kBACA,gBACA,SACA,SACA,SACA,UACA,YAEIC,EAAc,CAAC,SAAU,eAAgB,cAAe,WAAY,OAC1E,UAAWC,KAASF,EAClB,UAAWG,KAAcF,EAAa,CACpC,MAAMvqK,EAASrqF,KAAKy0P,gBAAgBI,GAAOC,GACrCC,EAAS,IAAIF,IAAQC,IAC3BvoM,EAAEwoM,GAAQx4O,IAAI8tE,EAAO0D,sBAAqB,IAC1CxhC,EAAE,GAAGwoM,SAAcx4O,IAAI8tE,EAAOlrB,MAC9B5S,EAAEwoM,GAAQ/vG,QAAM,CAGpBz4F,EAAE,mBAAmBvsD,KAAK+0F,cAAc7pF,MAAMqR,IAAIvc,KAAKy0P,gBAAgBv7I,YAAY,GAAG/5C,MACtF,IAAIj7C,EAAQ,EACZ,QAAS1f,EAAI,EAAGA,EAAIxE,KAAKy0P,gBAAgBv7I,YAAYz0G,OAAQD,IAAK,CAChE,MAAM6lF,EAASrqF,KAAKy0P,gBAAgBv7I,YAAY10G,GAChD0f,GAASmmE,EAAO0D,sBAAqB,GACrCxhC,EAAE,eAAe/nD,KAAK+X,IAAI8tE,EAAO0D,sBAAqB,GAAK,CAE7DxhC,EAAE,uBAAuBhwC,IAAI2H,GAE7BqoC,EAAE,6BAA6BhwC,IAAIvc,KAAKy0P,gBAAgBt0J,YAAYpS,sBAAqB,IACzFxhC,EAAE,iCAAiChwC,IAAIvc,KAAKy0P,gBAAgBt0J,YAAYhhC,MACxE5S,EAAE,6BAA6By4F,SAE/Bz4F,EAAE,qBAAqBhwC,IAAIvc,KAAKy0P,gBAAgB99I,IAAI5oB,sBAAqB,IACzExhC,EAAE,yBAAyBhwC,IAAIvc,KAAKy0P,gBAAgB99I,IAAIx3C,MACxD5S,EAAE,qBAAqBy4F,SAEvBz4F,EAAE,wBAAwBhwC,IAAIvc,KAAKy0P,gBAAgBpzJ,OAAOtT,sBAAqB,IAC/ExhC,EAAE,4BAA4BhwC,IAAIvc,KAAKy0P,gBAAgBpzJ,OAAOliC,MAC9D5S,EAAE,wBAAwBy4F,SAE1Bz4F,EAAE,0BAA0BhwC,IAAIvc,KAAKy0P,gBAAgBltJ,SAASxZ,sBAAqB,IACnFxhC,EAAE,8BAA8BhwC,IAAIvc,KAAKy0P,gBAAgBltJ,SAASpoC,MAClE5S,EAAE,0BAA0By4F,QAC9B,CAAC7kJ,kDA1EUg1P,GAAmBrnO,gGAAnBqnO,EAAmB5qN,ytFDVhCplC,sCAA6B,UAA7BA,CAA6B,aAEoCA,qCAAWA,2BACxEA,sCAAkC,0BAI9BA,+DAAsB6Q,0BAA6B,GAAE7Q,iCAI7DA,8BACAA,qCAAqF,SAArFA,CAAqF,SAEeA,iCAAOA,6BAGzGA,yCAIAA,sCAAwB,WACsDA,mCAASA,6BAGvFA,sCAAwB,WAC0DA,qCAAWA,6BAG7FA,sCAAwB,WAEpBA,iCACAA,oCACFA,+BAIJA,wCAAuD,YAAvDA,CAAuD,YAAvDA,CAAuD,WAAvDA,CAAuD,WAAvDA,CAAuD,eAKqCA,+CAAoBA,2BACtGA,6CACFA,2BAEAA,+BAEAA,uCAAqBA,6BAAGA,2BACxBA,uCAAwB,eACsDA,yCAAcA,2BAC1FA,6CACFA,2BAEAA,uCAAwB,eAEpBA,kDACFA,2BACAA,6CAIFA,2BAEAA,uCAAwB,eACsDA,yCAAcA,2BAC1FA,6CAIFA,2BAEAA,+BAEAA,uCAAqBA,+BAAKA,2BAE1BA,uCAAwB,eAEpBA,mDACFA,2BACAA,6CAGFA,2BAEAA,uCAAwB,eAEpBA,kDACFA,2BACAA,6CAGFA,2BAEAA,uCAAwB,eACwDA,2CAAgBA,2BAC9FA,6CACFA,2BAEAA,uCAAwB,eACuDA,0CAAeA,2BAC5FA,6CACFA,iCAKNA,6CA+FAA,wCAA6D,YAA7DA,CAA6D,WAA7DA,CAA6D,WAA7DA,CAA6D,eAIgBA,yCAAcA,2BACnFA,6CACFA,2BACAA,uCAAwB,eAC0DA,6CAAkBA,2BAClGA,6CACFA,2BACAA,uCAAwB,eACiDA,mCAAQA,2BAC/EA,6CACFA,2BACAA,uCAAwB,eACmDA,gDAAqBA,2BAC9FA,6CACFA,2BACAA,+BACAA,uCAAqBA,8BAAIA,2BAEzBA,uCAAwB,eACiDA,oCAASA,2BAChFA,6CACFA,2BACAA,uCAAwB,eACuDA,sCAAWA,2BACxFA,6CACFA,2BACAA,uCAAwB,eACmDA,iCAAMA,2BAC/EA,6CACFA,2BACAA,uCAAwB,gBAC2DA,gCAAIA,2BACrFA,8CAIFA,2BACAA,wCAAwB,gBACmDA,kCAAMA,2BAC/EA,8CACFA,2BACAA,wCAAwB,gBACmDA,kCAAMA,2BAC/EA,8CACFA,2BAEAA,gCACAA,wCAAqBA,gCAAKA,2BAE1BA,wCAAwB,gBACwDA,4CAAgBA,2BAC9FA,8CACFA,2BACAA,wCAAwB,gBACoDA,kCAAMA,2BAChFA,8CACFA,iCAINA,yCAA+D,aAA/DA,CAA+D,WAA/DA,CAA+D,eAGqBA,iCAAMA,6BAEtFA,wCAA6B,YAA7BA,CAA6B,gBAE+CA,8CAAkBA,2BAC1FA,8CACFA,iCAKNA,yCAAsE,cAElEA,4DACFA,sCAtRIA,iFAA+B,qCAYhCA,0EAyBUA,8EACQA,gFAAgC,6CAOxCA,uEACQA,0EAA0B,uCAIlCA,+EAILA,kFAAkC,cAAlCA,CAAkC,+CAM7BA,uEAELA,0EAA0B,sCAA1BA,CAA0B,eAUrBA,qFAILA,wFAAwC,qDAKnCA,+EAILA,kFAAkC,+CAK7BA,yEACQA,4EAA4B,yCAIpCA,wEACQA,2EAA2B,wCAM5CA,0EAmGSA,gEACQA,mEAAmB,gCAG3BA,2EACQA,8EAA8B,2CAGtCA,kEACQA,qEAAqB,iCAArBA,CAAqB,eAG7BA,oEACQA,uEAAuB,mCAAvBA,CAAuB,eAM/BA,kEACQA,qEAAqB,kCAG7BA,wEACQA,2EAA2B,wCAGnCA,oEACQA,uEAAuB,oCAG/BA,4EAELA,+EAA+B,2CAA/BA,CAA+B,eAK1BA,oEACQA,uEAAuB,oCAG/BA,oEACQA,uEAAuB,mCAAvBA,CAAuB,eAO/BA,yEACQA,4EAA4B,yCAGpCA,qEACQA,wEAAwB,oCAAxBA,CAAwB,eAYhCA,mEACQA,sEAAsB,kBAAtBA,CAAsB,mCAQZA,qJChRtBgwP,CAAmB,KCUnBC,GAAiB,MAAxB,MAAOA,EACXvlP,QACEw6E,EACAgrK,GAA8B,EAC9BC,GAA8B,EAC9BC,EACAC,EACAC,GAEA,MAAMlgH,EAAY,IAAIwD,oBAAiB,CACrC7sI,MAAO,IAAIwpP,sBAAmB,CAAExpP,MAAOm+E,EAAOn+E,MAAOwwD,SAAU24L,GAAsBG,GAErFr2L,KAAM,IAAIu2L,sBAAmB,CAAExpP,MAAOm+E,EAAOlrB,KAAMzC,SAAU44L,GAAsBG,KAGrF,OAAIF,GACFhgH,EAAUg9G,WAAW,WAAY,IAAImD,sBAAmBrrK,EAAO3oC,WAG1D6zF,CACT,CAEAogH,iBACE9qK,EACAwqK,GAA8B,EAC9BC,GAA8B,EAC9BE,EACAC,GAEA,OAAO,IAAIG,aAAU,CACnB1pP,MAAO,IAAI2pP,eAAgC,CAAE3pP,MAAO2+E,EAAG3+E,MAAOwwD,SAAU24L,GAAsBG,GAC9Fr2L,KAAM,IAAI02L,eAAoB,CAAE3pP,MAAO2+E,EAAG1rB,KAAMzC,SAAU44L,GAAsBG,IAEpF,CAEAK,aACET,GAA8B,EAC9BC,GAA8B,EAC9BE,EACAC,GAEA,OAAO,IAAIG,aAAU,CACnB1pP,MAAO,IAAI2pP,eACT,CAAE3pP,WAAO+B,EAAWyuD,SAAU24L,GAC9BG,GAEFr2L,KAAM,IAAI02L,eAAoB,CAAE3pP,MAAO,GAAIwwD,SAAU44L,GAAsBG,IAE/E,CAEAM,uBACEV,GAA8B,EAC9BC,GAA8B,EAC9BE,EACAC,GAEA,OAAO,IAAIG,aAAU,CACnB1pP,MAAO,IAAI2pP,eACT,CAAE3pP,WAAO+B,EAAWyuD,SAAU24L,GAC9BG,GAEFr2L,KAAM,IAAI02L,eAAoB,CAAE3pP,MAAO,GAAIwwD,SAAU44L,GAAsBG,GAC3E/zM,SAAU,IAAIm0M,gBAAqB,IAEvC,CAEAG,WAAWnrK,EAAwBorK,GACjCA,EAAYD,WAAW,CAAE9pP,MAAO2+E,EAAG3+E,MAAOizD,KAAM0rB,EAAG1rB,MACrD,CAEA+2L,qBAAqBrrK,EAAwBorK,GAC3CA,EAAYD,WAAW,CAAE9pP,MAAO2+E,EAAG3+E,MAAOizD,KAAM0rB,EAAG1rB,KAAMzd,SAAUmpC,EAAGnpC,UACxE,CAACvhD,kDAxEUi1P,EAAiB,iEAAjBA,EAAiBhwP,QAAjBgwP,EAAiB,qBADJ,gBACbA,CAAiB,KCEjBe,GAAmC,MAA1C,MAAOA,EA2BXt2P,YAAoBS,EAAwBsK,GAAxB5K,UAAwBA,gBA1BnCA,gBAAY,EACZA,aAAS,EACTA,YAAQ,EACRA,qBAAiB,EAOjBA,mBAA+E,GAM/EA,8BAA0B,EAOnCA,cAAY0xC,MACZ1xC,aAAU,MAEwD,CAElEipC,WACMjpC,KAAKo2P,gBACPp2P,KAAKktF,SAAWltF,KAAKo2P,cAAclpK,SAAWltF,KAAKo2P,cAAclpK,SAAWltF,KAAKktF,SACjFltF,KAAKm/D,KAAOn/D,KAAKo2P,cAAcj3L,KAAOn/D,KAAKo2P,cAAcj3L,KAAOn/D,KAAKm/D,KACrEn/D,KAAK0nH,aAAeh6B,cAAc1tF,KAAKktF,UAAUS,kBAErD,CAEA0oK,QAAQnqP,GACNlM,KAAKkvP,aAAehjP,EACpBlM,KAAKkM,MAAQlM,KAAKyqF,sBAAsBv+E,GAExClM,KAAKs2P,UACLt2P,KAAKu2P,SAASv2P,KAAKkM,OAGdlM,KAAKw2P,eACRx2P,KAAKy2P,wBAET,CAEA3E,iBAAiBj3O,GACf7a,KAAKu2P,SAAW17O,CAClB,CAEAk3O,kBAAkBl3O,GAChB7a,KAAKs2P,QAAUz7O,CACjB,CAEA67O,iBAAiBC,GACf32P,KAAK22P,WAAaA,CACpB,CAGA3E,WAAW9lP,GAGTlM,KAAKkM,MAAQA,EAEblM,KAAK42P,qBACP,CAEAC,WAAW13L,GACTn/D,KAAKm/D,KAAOA,EACZn/D,KAAK42P,qBACP,CAGQA,sBACN52P,KAAK82P,kBACL92P,KAAK4K,SAAS8C,YAAY1N,KAAKM,GAAG0iD,cAAc9f,WAAY,QAASljC,KAAKkvP,aAC5E,CAEQ4H,kBAGN,GAFA92P,KAAKkvP,aAAexhK,cAAc1tF,KAAKktF,UAAUW,QAAQ7tF,KAAKkM,MAAOlM,KAAK0nH,aAAc1nH,KAAKm/D,MAAMtwC,WAE/F7uB,KAAKuwE,OAAS+b,GAAgBtsF,KAAKkvP,cAAsB,CAC3D,IAAI6H,EACF/2P,KAAKysF,gBAAiB,EAAKzsF,KAAKysF,eAAiBiB,cAAcspK,YAAYh3P,KAAKktF,UAAUltF,KAAKm/D,MAAM83L,UAGvGF,EAA2BzqK,GAAgByqK,GACvCA,EACArpK,cAAcwpK,kBAElBl3P,KAAKkvP,aAAe1iK,IAAaxsF,KAAKkvP,aAAc6H,GAA0BzgP,UAAQ,CAGxF,MAAM6gP,EAAuBzpK,cAAcI,iBAAiB9tF,KAAKkvP,cAE/DlvP,KAAKo3P,0BACJD,EAAuB,QACtBA,GAAuB,QACtBA,EAAuB,MAAWA,GAAuB,QAE5Dn3P,KAAKkvP,aACsB,IAAzBiI,EAA6Bn3P,KAAKq3P,mBAAmBF,GAAwBn3P,KAAKkvP,cAGlFlvP,KAAKmuF,SACPnuF,KAAKkvP,ajTtFL,SAAUoI,GAAkBC,GAEhC,MAAMljO,GADNkjO,GAAQ,IACO1mP,MAAM,KACrB,IAAI2mP,EAAKnjO,EAAE,GACX,MAAMojO,EAAKpjO,EAAE5vB,OAAS,EAAI,IAAI4vB,EAAE,KAAO,GACjCqjO,EAAM,eACZ,KAAOA,EAAIv0O,KAAKq0O,IACdA,EAAKA,EAAG5tP,QAAQ8tP,EAAK,SAGvB,OAAOF,EAAKC,CACd,CiT2E0BH,CAAkBt3P,KAAKkvP,cAE/C,CAEQzkK,sBAAsBv+E,GAC5B,MAAMyrP,EAAsBjqK,cAAc1tF,KAAKktF,UAAUW,QAAQ3hF,EAAOlM,KAAKm/D,KAAMn/D,KAAK0nH,cAAc74F,WACtG,OAAOy9D,GAAgBqrK,GAAuBA,OAAsB1pP,CACtE,CAKQwoP,yBACNz2P,KAAKwf,OAAS6sE,kBACdrsF,KAAKo2P,cAAcjpK,eAAiBd,iBACtC,CAEI0C,yBAEF,OACE/uF,KAAKwf,SAAW6sE,sBAChBrsF,KAAKo2P,cAAcjpK,iBAAmBd,oBAE1C,CAGIurK,kBACF,OAAI53P,KAAKw2P,cACAnqK,WAGFrsF,KAAKo2P,cAAcjpK,eAAiBntF,KAAKo2P,cAAcjpK,eAAiBntF,KAAKwf,MACtF,CAKQ63O,mBAAmBnrP,GACzB,OAAOA,EAAM2rP,cAAc,EAC7B,CAAC13P,kDApJUg2P,GAAmCroO,qJAAnCqoO,EAAmC5rN,sVARnC,CACT,CACE7mC,QAASuuP,qBACTx9O,eAAay9O,cAAW,IAAMiE,GAC9BtxP,OAAO,MAEV8lC,0FAXUxlC,wCAITA,kDAAS6Q,mBAAsB9J,MAAS,GAJ/B/G,kCAETA,qGACAA,iGAUSgxP,CAAmC,KCCnC2B,GAA2B,MAAlC,MAAOA,EAiBXj4P,YAAoBS,aALVN,gBAAa,IAAI+nC,eAE3B/nC,cAAY0xC,MACZ1xC,aAAU,MAE2B,CAErCqsD,kBACMrsD,KAAK6vP,SACPniK,cAAc1tF,KAAKktF,UAAU0iK,iBAAiB,IAAI5vP,KAAK6vP,WAAY7vP,KAAKkM,OAExEwhF,cAAc1tF,KAAKktF,UAAU0iK,iBAAiB5vP,KAAKM,GAAG0iD,cAAc9f,WAAYljC,KAAKkM,MAEzF,CAEA6rP,YAAY7rP,GACVlM,KAAKkM,MAAQA,EACblM,KAAKs2P,UACLt2P,KAAKu2P,SAASv2P,KAAKkM,OAEnBlM,KAAKg4P,WAAWtuN,KAAK1pC,KAAKkM,MAC5B,CAEA8lP,WAAW9lP,GACTlM,KAAKkM,MAAQA,GAAS,EACxB,CAEA4lP,iBAAiBj3O,GACf7a,KAAKu2P,SAAW17O,CAClB,CAEAk3O,kBAAkBl3O,GAChB7a,KAAKs2P,QAAUz7O,CACjB,CAEA67O,iBAAkBC,GAChB32P,KAAK22P,WAAaA,CACpB,CAACx2P,kDAjDU23P,GAA2BhqO,0GAA3BgqO,EAA2BvtN,iMAR3B,CACT,CACE7mC,QAASuuP,qBACTx9O,eAAay9O,cAAW,IAAM4F,GAC9BjzP,OAAO,MAEV8lC,2GAdUxlC,yCAMTA,mDAAU6Q,6BAAgC,GAAE7Q,kCAJ5CA,gCACAA,mDACAA,wCAAe,oCAYN2yP,CAA2B,qECR1B3yP,oCAA0B,UAA1BA,CAA0B,YAA1BA,CAA0B,aAS9BA,oHAAUA,gEAA0C,GANtDA,gCAM0D,6CAHxDA,iFAA+B,uBAelC,IAAM8yP,GAAmC,MAA1C,MAAOA,EAWXp4P,YAAoBS,EAAwBsK,GAAxB5K,UAAwBA,gBAH5CA,cAAY0xC,MACZ1xC,aAAU,MAEwD,CAElEk4P,oBAAoBppB,GAClB9uO,KAAK0hD,SAAWotL,EAChB9uO,KAAKu2P,SAASv2P,KAAK0hD,SACrB,CAEAowM,iBAAiBj3O,GACf7a,KAAKu2P,SAAW17O,CAClB,CAEAk3O,kBAAkBl3O,GAChB7a,KAAKs2P,QAAUz7O,CACjB,CAEAm3O,WAAW9lP,GACTlM,KAAK0hD,SAAWx1C,CAClB,CAAC/L,kDA5BU83P,GAAmCnqO,qJAAnCmqO,EAAmC1tN,sMARnC,CACT,CACE7mC,QAASuuP,qBACTx9O,eAAay9O,cAAW,IAAM+F,GAC9BpzP,OAAO,MAEV8lC,mOAnBWxlC,8CAAMA,8FAqBP8yP,CAAmC,KC5BnCE,GAA4B,MAAnC,MAAOA,EAOXt4P,cAAe,CAEfwsD,kBACErsD,KAAKmwP,WAAW6H,WAAWz/O,UAAU6/O,IACnCp4P,KAAKq4P,WAAWxB,WAAWuB,EAAO,EAEtC,CAACj4P,kDAbUg4P,EAA4B,8DAA5BA,EAA4B5tN,kHAEzB4rN,GAAmC,gCACnC2B,GAA2B,gCAC3BG,GAAmC,4QAJtCE,CAA4B,+BCuK/BhzP,uCAAsF,cAC7CA,kDAAwBA,2BAE/DA,uCAA6C,WAA7CA,CAA6C,YAGvCA,uDAIFA,2BACAA,uCACEA,gEAIFA,2EARIA,0GAMAA,iIA0YdA,uCACEA,8BACAA,sCAAqBA,gCAAOA,2BAC5BA,qCAAiD,aAC+BA,+BAAMA,6BAEtFA,uCACEA,uCAAuD,cACdA,iDAAsBA,2BAE7DA,wCAA6C,YAA7CA,CAA6C,aAGvCA,wDAEFA,2BACAA,wCACEA,iEAIFA,2BACAA,wCACEA,iEAIFA,iCAKNA,wCAA0D,eACjBA,wCAAaA,2BAEpDA,wCAA6C,YAA7CA,CAA6C,aAGvCA,wDAIFA,2BACAA,wCACEA,iEAIFA,2BACAA,wCACEA,iEAIFA,iCAKNA,wCAAmE,eAC1BA,iDAAsBA,2BAE7DA,wCAA6C,YAA7CA,CAA6C,aAGvCA,wDAIFA,2BACAA,wCACEA,iEAIFA,2BACAA,wCACEA,iEAIFA,iCAKNA,wCAAiE,eACxBA,+CAAoBA,2BAE3DA,wCAA6C,YAA7CA,CAA6C,aAGvCA,wDAIFA,2BACAA,wCACEA,iEAIFA,2BACAA,wCACEA,iEAIFA,iCAIRA,oCACFA,qEApG6DA,qGAM/CA,gGAMAA,mEAAqB,gDAerBA,uGAMAA,mGAMAA,mEAAqB,mDAerBA,gHAMAA,4GAMAA,mEAAqB,4DAerBA,8GAMAA,0GAMAA,mEAAqB,2DCpqBlC,IAAMmzP,GAAiB,MAAxB,MAAOA,EAIXz4P,YACUuyP,EACAmG,EACAt0H,GAFAjkI,UACAA,YACAA,8BACP,CAEHipC,WACEjpC,KAAKw4P,cACLx4P,KAAKktI,iBAAiBoK,oBACxB,CAEAkhH,cACEx4P,KAAKy4P,wBAAwBlG,WAAW,OAAQvyP,KAAKoyP,GAAGviP,QAAQ7P,KAAK+0F,cAAc3xF,OACnFpD,KAAKy4P,wBAAwBlG,WAAW,eAAgBvyP,KAAKoyP,GAAGviP,QAAQ7P,KAAK+0F,cAAcqM,eAC3FphG,KAAKy4P,wBAAwBlG,WAAW,kBAAmBvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAcwL,kBAChGvgG,KAAKy4P,wBAAwBlG,WAAW,gBAAiBvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAcyL,gBAC9FxgG,KAAKy4P,wBAAwBlG,WAAW,mBAAoBvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAc0L,mBACjGzgG,KAAKy4P,wBAAwBlG,WAAW,eAAgBvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAc2L,eAC7F1gG,KAAKy4P,wBAAwBlG,WAAW,sBAAuBvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAcyL,gBACpGxgG,KAAKy4P,wBAAwBlG,WAC3B,qBACAvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAcoH,oBAAoB,IAE3Dn8F,KAAKy4P,wBAAwBlG,WAC3B,iBACAvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAcsL,gBAAgB,IAEvDrgG,KAAKy4P,wBAAwBlG,WAC3B,uBACAvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAcmM,sBAAsB,IAG7DlhG,KAAKy4P,wBAAwBlG,WAAW,eAAgBvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAcwC,cAAc,IAC3Gv3F,KAAKy4P,wBAAwBlG,WAAW,eAAgBvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAcuC,cAAc,IAC3Gt3F,KAAKy4P,wBAAwBlG,WAC3B,yBACAvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAcuL,wBAAwB,IAG/DtgG,KAAKy4P,wBAAwBlG,WAAW,mBAAoBvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAc4B,mBACjG32F,KAAKy4P,wBAAwBlG,WAAW,UAAWvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAc2B,SAAS,IACjG12F,KAAKy4P,wBAAwBlG,WAAW,YAAavyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAc0B,WAAW,IACrGz2F,KAAKy4P,wBAAwBlG,WAAW,UAAWvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAc8B,UACxF72F,KAAKy4P,wBAAwBlG,WAAW,gBAAiBvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAc+B,gBAC9F92F,KAAKy4P,wBAAwBlG,WAAW,YAAavyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAcgC,YAC1F/2F,KAAKy4P,wBAAwBlG,WAC3B,oBACAvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAciC,mBAAmB,IAE1Dh3F,KAAKy4P,wBAAwBlG,WAAW,YAAavyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAc6B,YAC1F52F,KAAKy4P,wBAAwBlG,WAAW,YAAavyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAckC,WAAW,IACrGj3F,KAAKy4P,wBAAwBlG,WAAW,iBAAkBvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAcmC,iBAC/Fl3F,KAAKy4P,wBAAwBlG,WAAW,aAAcvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAcoC,YAAY,IAEvGn3F,KAAKy4P,wBAAwBlG,WAC3B,WACAvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAcqC,UAAU,GAAO,GAAO,IAE/Dp3F,KAAKy4P,wBAAwBlG,WAC3B,cACAvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAcsC,aAAa,GAAO,GAAO,IAElEr3F,KAAKy4P,wBAAwBlG,WAC3B,uBACAvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAc+L,sBAAsB,GAAO,GAAO,IAE3E9gG,KAAKy4P,wBAAwBlG,WAC3B,qBACAvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAcgM,oBAAoB,GAAO,GAAO,IAGzE/gG,KAAKy4P,wBAAwBlG,WAC3B,iBACAvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAc8L,gBAAgB,GAAO,GAAO,IAErE7gG,KAAKy4P,wBAAwBlG,WAC3B,oBACAvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAcoM,mBAAmB,GAAO,GAAO,IAExEnhG,KAAKy4P,wBAAwBlG,WAC3B,6BACAvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAciM,4BAA4B,GAAO,GAAO,IAEjFhhG,KAAKy4P,wBAAwBlG,WAC3B,2BACAvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAckM,0BAA0B,GAAO,GAAO,GAEjF,CAEAy3J,mBAEI14P,KAAKikI,wBAAwBzJ,eAC3Bx6H,KAAK+0F,cAAc7pF,GAFnBlL,KAAK24P,iBAGL1pK,6BAGiEA,iBAErEjvF,KAAKikI,wBAAwB7I,mBAAmBp7H,KAAK+0F,cAAc7pF,GACrE,CAEIytP,uBACF,OAAO34P,KAAKktI,iBAAiBmK,eAAerzI,IAAI,gBAAgBkI,KAClE,CAEIusP,8BACF,OAAOz4P,KAAKktI,iBAAiBmK,cAC/B,CAACl3I,kDA/GUm4P,GAAiBxqO,uLAAjBwqO,EAAiB/tN,kxGDb9BplC,qCAAmE,SAAnEA,CAAmE,SAEiCA,gCAAOA,6BAEzGA,qCAAwB,SACsDA,kCAASA,6BAGvFA,qCAAwB,SAC2DA,sCAAYA,6BAG/FA,sCAAwB,UAEpBA,gCACAA,oCACFA,+BAIJA,uCAA6F,WAA7FA,CAA6F,YAA7FA,CAA6F,YAA7FA,CAA6F,YAA7FA,CAA6F,eAK3BA,0CAAeA,2BACvEA,wCAAsB,cAAtBA,CAAsB,eAEoDA,kDAAU6Q,oBAAkB,GAAlG7Q,iCAKNA,+BACAA,uCAAqBA,oCAAUA,2BAC/BA,wCACEA,wCAAwD,eACfA,8CAAmBA,2BAE1DA,wCAA6C,YAA7CA,CAA6C,aAGvCA,wDAEFA,2BACAA,wCACEA,iEAIFA,iCAKNA,wCAAsD,eACbA,0CAAeA,2BAEtDA,wCAA6C,YAA7CA,CAA6C,aAGvCA,wDAEFA,2BACAA,wCACEA,iEAIFA,iCAKNA,wCAAyD,eAChBA,6CAAkBA,2BAEzDA,wCAA6C,YAA7CA,CAA6C,aAGvCA,wDAEFA,2BACAA,wCACEA,iEAIFA,iCAKNA,wCAAqD,eACZA,0CAAeA,2BAEtDA,wCAA6C,YAA7CA,CAA6C,aAGvCA,wDAEFA,2BACAA,wCACEA,iEAIFA,iCAKNA,wCAA4D,eACnBA,iDAAsBA,2BAE7DA,wCAA6C,YAA7CA,CAA6C,aAGvCA,wDAIFA,2BACAA,wCACEA,iEAIFA,iCAINA,+BAAM,SAGNA,wCAA2D,eAClBA,+CAAoBA,2BAE3DA,wCAA6C,YAA7CA,CAA6C,aAGvCA,wDAIFA,2BACAA,wCACEA,iEAIFA,iCAKNA,wCAAuD,eACdA,mDAAwBA,2BAE/DA,wCAA6C,YAA7CA,CAA6C,aAGvCA,wDAEFA,2BACAA,wCACEA,iEAIFA,iCAKNA,2CAqBAA,+BACAA,uCAAqBA,6BAAGA,2BAExBA,wCAAqD,eACZA,yCAAcA,2BAErDA,yCAA6C,aAA7CA,CAA6C,cAGvCA,yDAEFA,2BACAA,yCACEA,kEAIFA,iCAKNA,yCAAqD,gBACZA,mDAAuBA,2BAE9DA,yCAA6C,aAA7CA,CAA6C,cAGvCA,yDAEFA,2BACAA,yCACEA,kEAIFA,iCAKNA,yCAA+D,gBACtBA,qDAAyBA,2BAEhEA,yCAA6C,aAA7CA,CAA6C,cAGvCA,yDAIFA,2BACAA,yCACEA,kEAIFA,iCAIRA,oCACFA,+BAIJA,yCAA6D,aAA7DA,CAA6D,cAGvDA,yCACEA,yCAAyD,gBAChBA,8CAAkBA,2BAEzDA,yCAA6C,aAA7CA,CAA6C,cAGvCA,yDAEFA,2BACAA,yCACEA,kEAIFA,iCAKNA,yCAAgD,gBACPA,oCAAQA,2BAE/CA,yCAA6C,aAA7CA,CAA6C,cAGvCA,yDAEFA,2BACAA,yCACEA,kEAEFA,iCAKNA,yCAAkD,gBACTA,iDAAqBA,2BAE5DA,yCAA6C,aAA7CA,CAA6C,cAGvCA,yDAEFA,2BACAA,yCACEA,kEAEFA,iCAINA,gCACAA,wCAAqBA,+BAAIA,2BAEzBA,yCAAgD,gBACPA,qCAASA,2BAEhDA,yCAA6C,aAA7CA,CAA6C,cAGvCA,yDAEFA,2BACAA,yCACEA,kEAEFA,iCAKNA,yCAAsD,gBACbA,uCAAWA,2BAElDA,yCAA6C,aAA7CA,CAA6C,cAGvCA,yDAEFA,2BACAA,yCACEA,kEAIFA,iCAKNA,yCAAkD,gBACTA,kCAAMA,2BAE7CA,yCAA6C,aAA7CA,CAA6C,cAGvCA,yDAEFA,2BACAA,yCACEA,kEAEFA,iCAKNA,yCAA0D,gBACjBA,gCAAIA,2BAE3CA,yCAA6C,aAA7CA,CAA6C,cAGvCA,yDAIFA,2BACAA,yCACEA,kEAIFA,iCAKNA,yCAAkD,gBACTA,kCAAMA,2BAE7CA,yCAA6C,aAA7CA,CAA6C,cAGvCA,yDAEFA,2BACAA,yCACEA,kEAEFA,iCAKNA,yCAAkD,gBACTA,kCAAMA,2BAE7CA,yCAA6C,aAA7CA,CAA6C,cAGvCA,yDAEFA,2BACAA,yCACEA,kEAEFA,iCAINA,gCACAA,wCAAqBA,gCAAKA,2BAE1BA,yCAAuD,gBACdA,sCAAUA,2BAEjDA,yCAA6C,aAA7CA,CAA6C,cAGvCA,yDAEFA,2BACAA,yCACEA,kEAIFA,iCAKNA,yCAAmD,gBACVA,kCAAMA,2BAE7CA,yCAA6C,aAA7CA,CAA6C,cAGvCA,yDAEFA,2BACAA,yCACEA,kEAEFA,iCAIRA,oCACFA,+BAIJA,yCAA+D,aAA/DA,CAA+D,aAA/DA,CAA+D,aAGpCA,kCAAOA,2BAC5BA,uCAAiD,eAC+BA,iCAAMA,6BAEtFA,yCACEA,yCAAiD,gBACRA,kDAAsBA,2BAE7DA,yCAA6C,aAA7CA,CAA6C,cAGvCA,yDAEFA,2BACAA,yCACEA,kEAEFA,2BACAA,yCACEA,kEAIFA,iCAKNA,yCAAoD,gBACXA,yCAAaA,2BAEpDA,yCAA6C,aAA7CA,CAA6C,cAGvCA,yDAEFA,2BACAA,yCACEA,kEAIFA,2BACAA,yCACEA,kEAIFA,iCAKNA,yCAA6D,gBACpBA,kDAAsBA,2BAE7DA,yCAA6C,aAA7CA,CAA6C,cAGvCA,yDAIFA,2BACAA,yCACEA,kEAIFA,2BACAA,yCACEA,kEAIFA,iCAKNA,yCAA2D,gBAClBA,gDAAoBA,2BAE3DA,yCAA6C,aAA7CA,CAA6C,cAGvCA,yDAIFA,2BACAA,yCACEA,kEAIFA,2BACAA,yCACEA,kEAIFA,iCAIRA,oCACFA,2BAEAA,8CAkHFA,6BAGFA,yCAAoE,cAEhEA,4DACFA,sCA3qBmDA,wFAsBYA,sGAM/CA,iGAa+CA,mGAM/CA,+FAa+CA,sGAM/CA,kGAa+CA,kGAM/CA,8FAeAA,yGAMAA,qGAiBAA,wGAMAA,oGAa+CA,oGAM/CA,gGAOeA,2EA8BgCA,mGAM/CA,8FAa+CA,kGAM/CA,8FAeAA,4GAMAA,wGAqB+CA,uGAM/CA,kGAa+CA,6FAIUA,yFAaVA,+FAIUA,2FAeVA,8FAIUA,yFAaVA,mGAM/CA,+FAa+CA,+FAIUA,2FAezDA,uGAMAA,mGAa+CA,+FAIUA,2FAaVA,+FAIUA,2FAeVA,qGAM/CA,gGAa+CA,gGAIUA,4FAyBVA,+FAIUA,0FAMzDA,mEAAqB,0CAa0BA,iGAM/CA,6FAMAA,mEAAqB,6CAerBA,0GAMAA,sGAMAA,mEAAqB,sDAerBA,wGAMAA,oGAMAA,mEAAqB,oDASLA,2EAuHDA,oQCjrBtBmzP,CAAiB,KCLjBM,GAA2B,MAAlC,MAAOA,EAA2Bz4P,kDAA3By4P,EAA2B,8DAA3BA,EAA2BruN,kxCCRxCplC,qCAAmE,SAAnEA,CAAmE,SAEiCA,gCAAOA,6BAGzGA,qCAAwB,SAC2DA,sCAAYA,6BAG/FA,qCAAwB,SAEpBA,+BACAA,oCACFA,+BAIJA,uCAAuD,WAAvDA,CAAuD,WAAvDA,CAAuD,YAAvDA,CAAuD,YAI1BA,oCAAUA,2BAC/BA,wCAAwB,eACyDA,6CAAkBA,2BACjGA,6CACFA,2BACAA,wCAAwB,eACuDA,0CAAeA,2BAC5FA,6CACFA,2BACAA,wCAAwB,eAC0DA,6CAAkBA,2BAClGA,6CACFA,2BACAA,wCAAwB,eACsDA,0CAAeA,2BAC3FA,6CACFA,2BACAA,wCAAwB,eAEpBA,iDACFA,2BACAA,6CACFA,2BAEAA,+BAEAA,wCAAwB,eAEpBA,oDACFA,2BACAA,6CAGFA,2BAEAA,wCAAwB,eAC4DA,+CAAoBA,2BACtGA,6CAIFA,2BAEAA,wCAAwB,eACwDA,2CAAgBA,2BAC9FA,6CAIFA,2BAEAA,+BAEAA,uCAAqBA,6BAAGA,2BACxBA,wCAAwB,eACsDA,yCAAcA,2BAC1FA,6CAIFA,2BAEAA,wCAAwB,eACsDA,yCAAcA,2BAC1FA,6CAIFA,2BAEAA,wCAAwB,eAEpBA,oDACFA,2BACAA,6CAIFA,iCAKNA,wCAA+D,UAA/DA,CAA+D,cAEmBA,gCAAMA,6BAEtFA,wCAA6B,YAA7BA,CAA6B,eAE+CA,iDAAsBA,2BAC9FA,6CACFA,2BAEAA,wCAAwB,eAEpBA,kDACFA,2BACAA,6CAKFA,2BAEAA,wCAAwB,eAC4DA,gDAAqBA,2BACvGA,6CAKFA,+BAIJA,wCAA8E,YAE1EA,2DACFA,sCApHaA,2EACQA,6EAA6B,0CAGrCA,wEACQA,2EAA2B,wCAGnCA,2EACQA,8EAA8B,2CAGtCA,uEACQA,0EAA0B,uCAGlCA,8EAGQA,iFAAiC,8CAMzCA,iFAILA,oFAAoC,iDAK/BA,6EAELA,gFAAgC,4CAAhCA,CAAgC,eAM3BA,yEAELA,4EAA4B,cAA5BA,CAA4B,yCASvBA,uEAELA,0EAA0B,sCAA1BA,CAA0B,eAMrBA,uEAELA,0EAA0B,sCAA1BA,CAA0B,eAMrBA,iFAILA,oFAAoC,gDAApCA,CAAoC,eAcjCA,mEACQA,sEAAsB,kBAAtBA,CAAsB,mCAI9BA,+EAILA,kFAAkC,kBAAlCA,CAAkC,+CAO7BA,6EAELA,gFAAgC,kBAAhCA,CAAgC,6CAUPA,+GDlItByzP,CAA2B,KENxC,MAAM39B,GAAW,iGACdpqN,MAAM,KACNtJ,IAAI2E,KACMkkN,MAAOlkN,EAAOvB,KAAM,aAG3B+9J,GAAQ,2DAA2D73J,MAAM,KAAKtJ,IAAI2E,KAC7EkkN,MAAOlkN,EAAOvB,KAAM,UAGlBkuP,GAA8C59B,GAASxgN,UAAUiuJ,ICZvE,IAAKowF,GAIX,aAJWA,UAAwB,KAClCA,YACAA,sBACAA,kBAHUA,GAAZ,IAAYA,GAIX,GCDD,MA+CMC,GAAyC,CAC7C,CACEpuP,KAAMmuP,QACN1oC,MAAO,aACP75J,KACE,6PAMJ,CACE5rD,KAAMmuP,QACN1oC,MAAO,gBACP75J,KAAM,4DAIGyiM,GAjEsC,CACjD,CACEruP,KAAMmuP,YACN1oC,MAAO,oBA+DR31M,OA3D8C,CAC/C,CACE9P,KAAMmuP,UACN1oC,MAAO,6DACP75J,KAAM,uEACN3lC,MAAO,sCAGT,CACEjmB,KAAMmuP,UACN1oC,MAAO,yDACP75J,KAAM,2GACN3lC,MAAO,iCAGT,CACEjmB,KAAMmuP,UACN1oC,MAAO,oEACP75J,KACE,0LAGF3lC,MAAO,yBAGT,CACEjmB,KAAMmuP,UACN1oC,MAAO,yDACP75J,KAAM,2GACN3lC,MAAO,iCAGT,CACEjmB,KAAMmuP,UACN1oC,MAAO,qFACP75J,KAAM,kGACN3lC,MAAO,+BAwBRnW,OAAOs+O,IClEJ,MAAOE,GAGXp5P,YAAYq5P,GACVl5P,KAAKk5P,YAAcA,CACrB,CAEAtjB,iBACE,OAAO51O,KAAKk5P,WACd,CAEApjB,qBACE,OAAO+iB,UAAqCG,GAC9C,ECbI,MAAOG,WAA6BF,GACxCp5P,cACEC,MAAMoiG,GACR,CAES4zI,qBAiBP,OAAOh2O,MAAMg2O,qBAAqBr7N,OAfhC,CAAE21M,MAAO,WAAYzlN,KAAM,WAAY4rD,KAAM,IAC7C,CAAE65J,MAAO,cAAezlN,KAAM,WAAY4rD,KAAM,IAChD,CAAE65J,MAAO,kBAAmBzlN,KAAM,WAAY4rD,KAAM,IACpD,CAAE65J,MAAO,cAAezlN,KAAM,WAAY4rD,KAAM,IAChD,CAAE65J,MAAO,YAAazlN,KAAM,WAAY4rD,KAAM,IAC9C,CAAE65J,MAAO,YAAazlN,KAAM,WAAY4rD,KAAM,IAC9C,CAAE65J,MAAO,gBAAiBzlN,KAAM,WAAY4rD,KAAM,IAClD,CAAE65J,MAAO,YAAazlN,KAAM,WAAY4rD,KAAM,IAC9C,CAAE65J,MAAO,eAAgBzlN,KAAM,WAAY4rD,KAAM,IACjD,CAAE65J,MAAO,eAAgBzlN,KAAM,WAAY4rD,KAAM,IACjD,CAAE65J,MAAO,iBAAkBzlN,KAAM,WAAY4rD,KAAM,IACnD,CAAE65J,MAAO,qBAAsBzlN,KAAM,WAAY4rD,KAAM,IACvD,CAAE65J,MAAO,iBAAkBzlN,KAAM,WAAY4rD,KAAM,IAIvD,EC1BK,SAAS6iM,GAAU/xO,GACtB,OAAQnP,GAAWA,EAAOC,KAAK,IAAIkhP,GAAkBhyO,GACzD,CACA,MAAMgyO,GACFx5P,YAAYwnB,GACRrnB,KAAKqnB,SAAWA,CACpB,CACAhP,KAAKC,EAAYJ,GACb,MAAMohP,EAAsB,IAAIC,GAAoBjhP,GAC9CkhP,KAAuBnxO,OAAeroB,KAAKqnB,SAAU,IAAIiB,MAAsBgxO,IACrF,OAAIE,IAAyBF,EAAoBG,WAC7CH,EAAoBhxP,IAAIkxP,GACjBthP,EAAOK,UAAU+gP,IAErBA,CACX,EAEJ,MAAMC,WAA4BhyO,MAC9B1nB,YAAY6Y,GACR5Y,MAAM4Y,GACN1Y,KAAKy5P,WAAY,CACrB,CACAhyO,aACIznB,KAAKy5P,WAAY,EACjBz5P,KAAK2jB,UACT,CACA+D,iBACA,ECjBG,IAAMgyO,GAA6B,MAApC,MAAOA,EASX75P,YAAoBi1O,4BARZ90O,mBAAgB,IAAIooB,MAMlBpoB,eAAY,IAAI+nC,eAGxB/nC,KAAK80O,kBAAkB6kB,wBAAwBr5O,KAAK84O,GAAUp5P,KAAK45P,gBAAgBrhP,UAAWmE,IAC5F1c,KAAK65P,UAAUnwN,KAAK,CAAEj4B,KAAMiL,EAAIjL,KAAM+jO,WAAY94N,EAAI84N,YAAY,EAEtE,CAEA9tO,cACE1H,KAAK45P,cAAc9gP,OACnB9Y,KAAK45P,cAAcj2O,UACrB,CAEAm2O,iBACEvtM,EAAE,oBAAoBI,MAAM,QAC5BJ,EAAE,yBAAyBhwC,IAAIvc,KAAKw1O,YACpCx1O,KAAK80O,kBAAkBJ,cAAc,CAAEjjO,KAAMzR,KAAKyR,KAAMujO,oBAAqBh1O,KAAKg1O,qBACpF,CAAC70O,kDAxBUu5P,GAA6B5rO,gGAA7B4rO,EAA6BnvN,iTCX1CplC,yCAAkDA,iDAAS6Q,kBAAgB,GACzE7Q,+BAA2BA,4CAC7BA,iCAFQA,0CAAiB,iCDWZu0P,CAA6B,qEEX1Cv0P,uCAA6G,UACxGA,kHAASA,6CAAkB,GAC3BA,gCAAsCA,0CAAgBA,2BAEzDA,8BACFA,mDAkBEA,qCAA+D,UAC4BA,wCAAcA,wDA8BnGA,uCACEA,uCAAwB,cACoDA,sCAAYA,2BACtFA,4CACFA,2BACAA,uCAAwB,cACyDA,2CAAiBA,2BAChGA,4CACFA,2BACAA,uCAAwB,eACuDA,0CAAeA,2BAC5FA,6CACFA,2BACAA,wCAAwB,eAEpBA,+CACFA,2BACAA,6CACFA,2BACAA,wCAAwB,eACqDA,wCAAaA,2BACxFA,wCAAsB,eAAtBA,CAAsB,gBAEDA,6BAAGA,+BAGxBA,6CAIFA,2BACFA,8EA7BWA,qEACQA,wEAAwB,qCAGhCA,0EACQA,6EAA6B,0CAGrCA,wEACQA,2EAA2B,wCAGnCA,4EAGQA,+EAA+B,4CAGvCA,sEAOLA,yEAAyB,gBAAzBA,CAAyB,iEAgB/BA,uCACEA,uCAAwB,cAEpBA,sDACFA,2BACAA,4CACFA,2BACAA,uCAAwB,cAEpBA,qDACFA,2BACAA,4CACFA,2BACFA,8EAXWA,4EAGQA,+EAA+B,4CAGvCA,2EAGQA,8EAA8B,sEAsDjDA,uCAA8D,WACvCA,iCAAQA,2BAC7BA,yCAA2EA,uCAAaA,2BACxFA,4CAEFA,qEAHSA,sEACQA,yEAAyB,cAAzBA,CAAyB,6DAgCxCA,sDACAA,0DA6FFA,uCACEA,uCAAwB,cAEpBA,8CACFA,2BACAA,4CACFA,2BACAA,uCAAwB,cAC0DA,6CAAmBA,2BACnGA,4CACFA,2BACAA,uCAAwB,eAC0DA,6CAAkBA,2BAClGA,6CACFA,2BACFA,8EAbWA,4EAGQA,+EAA+B,4CAGvCA,2EACQA,8EAA8B,2CAGtCA,2EACQA,8EAA8B,4CCjSlD,IAAM40P,GAAiB,MAAxB,MAAOA,EAQXl6P,YAAoBw2O,EAA4CpyG,GAA5CjkI,wBAA4CA,+BAJhEA,eAAW,EAKTA,KAAKg1O,oBAAsB,IAAImkB,GAC/Bn5P,KAAKg6P,yBAA2B,IAAIf,GCzBU,GD0BhD,CAEAgB,gBAAgBv9O,GACS,uBAAnBA,EAAI84N,aACNx1O,KAAK+0F,cAAcuO,oBAAsB5mF,EAAIjL,KAEjD,CAEAyoP,qBAAqBx9O,GACI,4BAAnBA,EAAI84N,aACNx1O,KAAK+0F,cAAcqO,0BAA4B1mF,EAAIjL,KAEvD,CAEA0oP,mBACM5tM,EAAE,wBAAwB+9B,KAAK,cAGnCtqF,KAAKq2O,iBAAiBl9F,8BACtBn5I,KAAKq2O,iBAAiBp9F,sBAGtBr4F,WAAW,OAAU,KACrB5gD,KAAKq2O,iBAAiBj9F,2BAA2Bp5I,KAAK+0F,cAAc7pF,IACtE,CAEAkvP,YACOp6P,KAAK+0F,cAAcoO,kBACtBnjG,KAAK+0F,cAAckC,UAAU/qF,MAAQ,KACrCqgD,EAAE,cAAchwC,IAAI,IAEpBvc,KAAK+0F,cAAc8B,QAAQ3qF,MAAQ,KACnCqgD,EAAE,YAAYhwC,IAAI,IAElBvc,KAAK+0F,cAAc+B,cAAc5qF,MAAQ,KACzCqgD,EAAE,kBAAkBhwC,IAAI,IAExBvc,KAAK+0F,cAAcgC,UAAU7qF,MAAQ,KACrCqgD,EAAE,cAAchwC,IAAI,IAEpBvc,KAAK+0F,cAAciC,kBAAkB9qF,MAAQ,KAC7CqgD,EAAE,sBAAsBhwC,IAAI,IAE5Bvc,KAAK+0F,cAAc6B,UAAU1qF,MAAQ,KACrCqgD,EAAE,cAAchwC,IAAI,IAExB,CAEA89O,mBAAmBC,GAEft6P,KAAKikI,wBAAwBzJ,eAAex6H,KAAK+0F,cAAc7pF,GAD7DovP,EACiErrK,wBAEAA,iBAErEjvF,KAAKikI,wBAAwB7I,mBAAmBp7H,KAAK+0F,cAAc7pF,IACnElL,KAAKikI,wBAAwBtJ,oBAAoB36H,KAAK+0F,cAAc7pF,GACtE,CAGAwtP,iBAAiB6B,GAEbv6P,KAAKikI,wBAAwBzJ,eAC3Bx6H,KAAK+0F,cAAc7pF,GAFnBqvP,EAGAtrK,6BAGiEA,uBAErEjvF,KAAKikI,wBAAwB7I,mBAAmBp7H,KAAK+0F,cAAc7pF,GACrE,CAEAsvP,eACEjuM,EAAE,aAAaymH,SAAS,UACxBhzK,KAAKy6P,UAAYz6P,KAAKy6P,QACxB,CAACt6P,kDArFU45P,GAAiBjsO,kIAAjBisO,EAAiBxvN,o6FDf9BplC,yCAMAA,qCAAqF,SAArFA,CAAqF,SAEeA,gCAAOA,6BAGzGA,qCAAwB,SAC8CA,kCAASA,6BAG/EA,qCAAwB,SACsDA,mCAASA,6BAGvFA,sCAAwB,UAC2DA,uCAAYA,6BAG/FA,yCAIAA,sCAAwB,UAEpBA,iCACAA,oCACFA,+BAIJA,wCAAuD,YAAvDA,CAAuD,YAAvDA,CAAuD,YAAvDA,CAAuD,YAAvDA,CAAuD,eAKcA,gDAAqBA,2BAChFA,wCAAsB,cAAtBA,CAAsB,eAKhBA,0DAAiB6Q,uBAA0B,EAA3C7Q,CAA4C,0BACnC6Q,aAAW,EADpB7Q,CAA4C,uEAH9CA,+BASJA,mCACFA,2BACAA,sDAiCAA,wCAAwB,eAC2DA,4CAAiBA,2BAClGA,6CAIFA,2BAEAA,+BACAA,uCAAqBA,6BAAGA,2BACxBA,oDAeAA,wCAAwB,eAEpBA,kDACFA,2BACAA,6CAIFA,2BACAA,wCAAwB,eACsDA,yCAAcA,2BAC1FA,6CAIFA,2BAEAA,+BACAA,uCAAqBA,+BAAKA,2BAE1BA,wCAAwB,eAEpBA,wDACFA,2BACAA,6CAGFA,2BACAA,wCAAwB,eAEpBA,kDACFA,2BACAA,6CAGFA,2BACAA,wCAAwB,eACuDA,0CAAeA,2BAC5FA,6CACFA,2BACAA,wCAAwB,eACwDA,2CAAgBA,2BAC9FA,6CACFA,iCAINA,wCAAyD,YAAzDA,CAAyD,aAGnDA,2CAMAA,uCAAqBA,+BAAKA,2BAC1BA,wCAAwB,eAEpBA,gDACFA,2BACAA,6CAIFA,2BACAA,wCAAwB,eACoDA,wCAAaA,2BACvFA,6CACFA,2BACAA,wCAAwB,eAEpBA,kDACFA,2BACAA,6CAIFA,2BACAA,0CAAwBA,+BAAKA,2BAC7BA,sCAGEA,iDAAS6Q,gBAAc,GAEvB7Q,yCACAA,yCACFA,2BACAA,wCAAmE,YAAnEA,CAAmE,eAG7DA,kEACFA,2BACAA,wCAAsB,cAAtBA,CAAsB,eAKhBA,8GAHFA,+BAOJA,mCACFA,2BAEAA,wCAAiC,qCAM7BA,sDAAa6Q,yBAA4B,GAAE7Q,6BAE/CA,wCAAwB,gBACsDA,4CAAgBA,2BAC5FA,8CAIFA,2BACAA,yCAAwB,gBACqDA,2CAAeA,2BAC1FA,8CAIFA,2BACAA,mCACAA,yCAAwB,gBACsDA,4CAAgBA,2BAC5FA,8CAIFA,2BACAA,yCAAwB,gBACqDA,2CAAeA,2BAC1FA,8CAIFA,2BACAA,mCACAA,yCAAwB,gBACsDA,4CAAgBA,2BAC5FA,8CAIFA,2BACAA,yCAAwB,gBACqDA,2CAAeA,2BAC1FA,8CAIFA,2BACAA,mCACAA,yCAAwB,gBACqDA,2CAAeA,2BAC1FA,8CAIFA,2BACAA,yCAAwB,gBACoDA,0CAAcA,2BACxFA,8CAIFA,mCAKRA,yCAA6D,aAA7DA,CAA6D,cAGvDA,sDAiBAA,yCAAwB,gBACiDA,oCAAQA,2BAC/EA,8CACFA,2BACAA,yCAAwB,gBACmDA,iDAAqBA,2BAC9FA,8CACFA,2BACAA,gCAEAA,wCAAqBA,+BAAIA,2BAEzBA,yCAAwB,gBACiDA,qCAASA,2BAChFA,8CACFA,2BACAA,yCAAwB,gBACuDA,uCAAWA,2BACxFA,8CACFA,2BACAA,yCAAwB,gBACmDA,kCAAMA,2BAC/EA,8CACFA,2BACAA,yCAAwB,gBAC2DA,gCAAIA,2BACrFA,8CAIFA,2BACAA,yCAAwB,gBACmDA,kCAAMA,2BAC/EA,8CACFA,2BACAA,yCAAwB,gBACmDA,kCAAMA,2BAC/EA,8CACFA,2BAEAA,gCACAA,wCAAqBA,gCAAKA,2BAE1BA,yCAAwB,gBACwDA,4CAAgBA,2BAC9FA,8CACFA,2BACAA,yCAAwB,gBACoDA,kCAAMA,2BAChFA,8CACFA,iCAKNA,yCAA+D,WAA/DA,CAA+D,eAEmBA,iCAAMA,6BAEtFA,yCAA6B,aAA7BA,CAA6B,gBAE+CA,kDAAsBA,2BAC9FA,8CACFA,2BAEAA,yCAAwB,gBAEpBA,mDACFA,2BACAA,8CAKFA,2BAEAA,yCAAwB,gBAC4DA,iDAAqBA,2BACvGA,8CAKFA,2BACAA,yCAAwB,gBAEpBA,wDACFA,2BACAA,8CAKFA,2BACAA,yCAAwB,gBAC2DA,gDAAoBA,2BACrGA,8CAEFA,2BACAA,yCAAwB,gBACwDA,4CAAgBA,2BAC9FA,8CAEFA,+BAIJA,yCAAmE,aAAnEA,CAAmE,gBAECA,iDAAqBA,2BACrFA,yCAAsB,eAAtBA,CAAsB,gBAE6BA,6FAA/CA,+BAIJA,oCACFA,2BAEAA,sCAAK,sCAMDA,sDAAa6Q,oBAAuB,GAAE7Q,+BAI5CA,yCAAoE,cAEhEA,4DACFA,sCAxboEA,+DAuB7CA,0FAyBXA,4FAMOA,yFAkCNA,4EAELA,6EAA6B,yCAA7BA,CAA6B,eAOlBA,yFAgBNA,+EAILA,kFAAkC,cAAlCA,CAAkC,+CAK7BA,uEAELA,0EAA0B,cAA1BA,CAA0B,uCASrBA,qFAILA,wFAAwC,qDAInCA,+EAILA,kFAAkC,+CAI7BA,wEACQA,2EAA2B,wCAGnCA,yEACQA,4EAA4B,yCAQpBA,wFAQhBA,6EAILA,gFAAgC,cAAhCA,CAAgC,6CAK3BA,qEACQA,wEAAwB,qCAGhCA,+EAILA,kFAAkC,cAAlCA,CAAkC,+CAUhCA,oEACAA,mEAYIA,2GASJA,kGAAgD,iDAAhDA,CAAgD,4DAAhDA,CAAgD,wCAO3CA,uEAELA,0EAA0B,cAA1BA,CAA0B,uCAKrBA,sEAELA,yEAAyB,cAAzBA,CAAyB,sCAMpBA,uEAELA,0EAA0B,cAA1BA,CAA0B,uCAKrBA,sEAELA,yEAAyB,cAAzBA,CAAyB,sCAMpBA,uEAELA,0EAA0B,cAA1BA,CAA0B,uCAKrBA,sEAELA,yEAAyB,cAAzBA,CAAyB,sCAMpBA,sEAELA,yEAAyB,cAAzBA,CAAyB,sCAKpBA,qEAELA,wEAAwB,cAAxBA,CAAwB,qCAWfA,yFAkBNA,kEACQA,qEAAqB,iCAArBA,CAAqB,eAG7BA,oEACQA,uEAAuB,mCAAvBA,CAAuB,eAO/BA,kEACQA,qEAAqB,kCAG7BA,wEACQA,2EAA2B,wCAGnCA,oEACQA,uEAAuB,oCAG/BA,4EAELA,+EAA+B,2CAA/BA,CAA+B,eAK1BA,oEACQA,uEAAuB,oCAG/BA,oEACQA,uEAAuB,mCAAvBA,CAAuB,eAO/BA,yEACQA,4EAA4B,yCAGpCA,qEACQA,wEAAwB,oCAAxBA,CAAwB,eAYlCA,mEACQA,sEAAsB,kBAAtBA,CAAsB,mCAI9BA,+EAILA,kFAAkC,kBAAlCA,CAAkC,+CAO7BA,6EAELA,gFAAgC,kBAAhCA,CAAgC,6CAM3BA,oFAILA,uFAAuC,kBAAvCA,CAAuC,oDAMlCA,4EACQA,+EAA+B,kBAA/BA,CAA+B,4CAIvCA,yEACQA,4EAA4B,kBAA5BA,CAA4B,yCAWMA,0FASjDA,4FAA0C,4CAA1CA,CAA0C,2CAA1CA,CAA0C,mCAUfA,yOCxatB40P,CAAiB,KEZxB,MAAgBW,GAKhBjC,8BACF,OAAOz4P,KAAKktI,iBAAiBmK,cAC/B,CAEAx9H,OACE7Z,KAAKw4P,cACLx4P,KAAKktI,iBAAiBoK,oBACxB,CAEAqjH,iBAAiB9qP,GACf,OAAOA,EAAQogK,SAAWpgK,EAAQ+qP,KACpC,CAEAC,0BAA0BC,GACxB,OAAOA,EAAYz7C,UAAYy7C,EAAYF,OAASE,EAAY7qF,QAClE,CAEA8qF,mCAAmCC,EAA6BC,GAC9D,OAAOD,EAAU37C,UAAY27C,EAAU5jH,SAAS6jH,GAAcL,OAASI,EAAU5jH,SAAS6jH,GAAchrF,QAC1G,ECzBI,MAAOirF,WAEHtF,aAGR/1P,YAAYs7P,EAAqB/jH,GAC/Bt3I,MAAMs3I,GACNp3I,KAAKm7P,YAAcA,CACrB,CAEAC,iBACE,OAAOp7P,KAAKm7P,WACd,ECAK,IAAME,GAAyC,MAAhD,MAAOA,EACXL,UAAUM,GACR,OAAO,IAAIC,aAAUD,EAAe/zP,IAAIvH,KAAK6P,SAC/C,CAEAA,QAAQ6tF,GACN,MAAM89J,EAAiB5uK,GAAkB8Q,EAAGxxF,OAASwxF,EAAGxxF,MAAQsgF,GAAYkR,EAAGxxF,MAAO,GAEtF,OAAO,IAAIgvP,GAAsBx9J,EAAGvJ,gBAAiB,CACnDwJ,aAAc,IAAIk4J,eAAYn4J,EAAGC,aAAc,CAAC+0J,kBAAe,GAAIA,kBAAe,KAClF90J,aAAc,IAAIi4J,eAAYn4J,EAAGE,aAAc,CAAC80J,kBAAe,GAAIA,kBAAe,KAClFxmP,MAAO,IAAI2pP,eAAY2F,EAAgB,CAAC9I,kBAAe,GAAIA,kBAAe,MAE9E,CAACvyP,kDAbUk7P,EAAyC,iEAAzCA,EAAyCj2P,QAAzCi2P,EAAyC,qBAD5B,gBACbA,CAAyC,4BC8B1Cl2P,qCAAmDA,6CAAoBA,mDACvEA,qCAA8CA,oEAA2CA,mDACzFA,qCAA8CA,8DAAqCA,sDALzFA,mCAAoC,SAApCA,CAAoC,aAG9BA,0CACAA,0CACAA,0CACFA,6GAHSA,8FACAA,yFACAA,0JAnCfA,uCACEA,qCAAwB,QAClBA,sBAAkCA,2BACtCA,mCAAI,aAGAA,2HAAUA,gDAAuB,gBAAe,GAFlDA,6BAOFA,mCAAI,aAGAA,2HAAUA,gDAAuB,gBAAe,GAFlDA,6BAQFA,mCAAI,aAEAA,2HAAUA,yCAAc,GAD1BA,+BASJA,yCASFA,0FAtCMA,mEACEA,uFAGAA,uFAQAA,uFAaAA,wFAIDA,mFC3BJ,IAAMs2P,GAAgD,MAAvD,MAAOA,EAMX57P,YAAoB26I,eAHXx6I,eAAW,CAGoB,CAExCipC,WACEjpC,KAAK07P,wBAAwBC,aAAah2P,QAAQ,KAChD3F,KAAK47P,mCAAiC,EAE1C,CAEAC,0BAA0Br3P,GAExB,OAAOxE,KAAKw6I,KAAK3oB,YAAYlT,qBADlB3+G,KAAK87P,eAAet3P,GAAG2vF,gBAEpC,CAEA4nK,oBAAoBv3P,EAAWzC,GAC7B,MAAMi6P,EAAyBh8P,KAAK07P,wBAAwBtkH,SAAS5yI,GACnDkpF,cAAcI,iBAAiBkuK,EAAuB5kH,SAASz5C,aAAazxF,OAC5EwhF,cAAcI,iBAAiBkuK,EAAuB5kH,SAASx5C,aAAa1xF,QAG5F8vP,EAAuBh4P,IAAIjC,GAAQ8L,cAASI,GAG9CjO,KAAKi8P,YAAYz3P,EACnB,CAEAy3P,YAAYz3P,GACV,MAAMw3P,EAAyBh8P,KAAK07P,wBAAwBtkH,SAAS5yI,GAE/D03P,EAAcxuK,cAAcI,iBAAiBkuK,EAAuB5kH,SAASlrI,MAAMA,OACnFiwP,EAAYzuK,cAAcI,iBAAiBkuK,EAAuB5kH,SAASz5C,aAAazxF,OACxFkwP,EAAY1uK,cAAcI,iBAAiBkuK,EAAuB5kH,SAASx5C,aAAa1xF,OAEzFqgF,OAAO5/D,MAAMuvO,IAChBF,EAAuB5kH,SAASlrI,MAAM2B,SAAS2+E,GAAY0vK,EAAa,IAGrE3vK,OAAO5/D,MAAMwvO,IAChBH,EAAuB5kH,SAASz5C,aAAa9vF,SAAS2+E,GAAY2vK,EAAW,IAG1E5vK,OAAO5/D,MAAMyvO,IAChBJ,EAAuB5kH,SAASx5C,aAAa/vF,SAAS2+E,GAAY4vK,EAAW,GAEjF,CAEAR,oCACE,MAAQxkH,YAAap3I,KAAK07P,wBAE1B,GAAItkH,EAAS3yI,QAAU,EACrB,OAGF,IAAIyf,EAAQ,EAEZ,QAAS1f,EAAI,EAAGA,EAAI4yI,EAAS3yI,OAAS,EAAGD,IAAK,CAC5C,MACM63P,EAAc3uK,cAAcI,iBADHspD,EAAS5yI,GACkC4yI,SAASlrI,MAAMA,OAEzF,GAAKqgF,OAAO5/D,MAAM0vO,GAGhB,OAFAn4O,GAASm4O,CAET,CAIJ,MAAMC,EAAwBp9L,YAAY,EAAIh7C,GAAOwoE,QAAQ,IAE7D0qD,EAASA,EAAS3yI,OAAS,GAAG2yI,SAASlrI,MAAM2B,SAASyuP,EAAuB,CAC3EC,WAAW,EACXC,uBAAuB,EACvBC,uBAAuB,IAEzBrlH,EAASA,EAAS3yI,OAAS,GAAG2yI,SAASlrI,MAAMwwP,aAC/C,CAEAC,yBACE,OAAQ38P,KAAK48P,uBAAyB58P,KAAKwxP,QAC7C,CAEAqL,uBAAuBr4P,GACrB,OAAOA,IAAMxE,KAAK07P,wBAAwBtkH,SAAS3yI,OAAS,GAAKzE,KAAK48P,uBAAyB58P,KAAKwxP,QACtG,CAEIkK,8BACF,OAAO17P,KAAK88P,wBAAwB1lH,SAAS0kH,cAC/C,CAEAiB,kBAAkBv4P,GAChB,OAAOxE,KAAK07P,wBAAwBtkH,SAAS5yI,GAAG4yI,SAASlrI,KAC3D,CAEA8wP,yBAAyBx4P,GACvB,OAAOxE,KAAK07P,wBAAwBtkH,SAAS5yI,GAAG4yI,SAASz5C,YAC3D,CAEAs/J,yBAAyBz4P,GACvB,OAAOxE,KAAK07P,wBAAwBtkH,SAAS5yI,GAAG4yI,SAASx5C,YAC3D,CAEAs/J,qBAAqB14P,GACnB,OACExE,KAAKm9P,yBAAyBn9P,KAAK+8P,kBAAkBv4P,KACrDxE,KAAKm9P,yBAAyBn9P,KAAKg9P,yBAAyBx4P,KAC5DxE,KAAKm9P,yBAAyBn9P,KAAKi9P,yBAAyBz4P,GAEhE,CAEA24P,yBAAyBttP,GACvB,OAAOA,EAAQwvM,UAAYxvM,EAAQ+qP,OAAS/qP,EAAQogK,QACtD,CAEAmtF,sBAAsB54P,EAAWmG,GAC/B,SACE3K,KAAK+8P,kBAAkBv4P,GAAGg3D,SAAS7wD,IACnC3K,KAAKg9P,yBAAyBx4P,GAAGg3D,SAAS7wD,IAC1C3K,KAAKi9P,yBAAyBz4P,GAAGg3D,SAAS7wD,GAE9C,CAACxK,kDA3HUs7P,GAAgD3tO,gGAAhD2tO,EAAgDlxN,2sBDd7DplC,wCAA2D,UAA3DA,CAA2D,OAA3DA,CAA2D,UAGZA,6BAAIA,2BAC7CA,mCAAIA,4BAAGA,2BACPA,mCAAIA,4BAAGA,2BACPA,mCAAIA,+BAAKA,+BAIbA,yCACEA,oDAwCFA,oCAnDmBA,8DAWeA,4eCGvBs2P,CAAgD,KCGhD4B,GAAkB,MAAzB,MAAOA,UAA0B3C,GAgBrC76P,YACUkwI,EACAutH,GAERx9P,QAHQE,mBACAA,sCAdAA,eAAY,IAAI41P,aAAU,CAClCxyP,KAAM,IAAIyyP,eAAY,IACtBh5J,cAAe,IAAIg5J,gBAAY,GAC/Bn0J,2BAA4B,IAAI65J,aAA8C,MAGtEv7P,yCAAsC,IAAI41P,aAAU,CAC5DkG,eAAgB,IAAIP,aAA8C,MAG5Dv7P,aAAU,IAAI2qD,GAQpB3qD,KAAK+sD,QAAQzkD,IACXtI,KAAK+vI,YAAY29G,4BAA4Bn1O,UAAUsgF,IACrD74F,KAAKmmG,gCAAgCtN,EAAG3tF,GAAE,IAI9ClL,KAAK+sD,QAAQzkD,IACXtI,KAAK+vI,YAAYwtH,qBAAqBhlP,UAAU5O,IAC1CA,EAAEkuG,uBAAyB73G,KAAK+0F,cAAc7pF,IAChDlL,KAAKmmG,gCAAgCx8F,EAAEuyF,sBAAqB,IAKlEl8F,KAAK+sD,QAAQzkD,IACXtI,KAAK+vI,YAAYytH,mBAAmBjlP,UAAU5O,IACxCA,EAAEkuG,uBAAyB73G,KAAK+0F,cAAc7pF,IAChDlL,KAAKy9P,6BAA6B9zP,EAAEuyF,sBAAqB,GAIjE,CAEAjzD,WACEjpC,KAAK6Z,MACP,CAEA2+O,cACEx4P,KAAKu1I,UAAU6B,SAASh0I,KAAK4yP,WAAWh2P,KAAK+0F,cAAc3xF,MAC3DpD,KAAKu1I,UAAU6B,SAASv6C,cAAcm5J,WAAWh2P,KAAK+0F,cAAc8H,eAEpE,MAAM6gK,EAAsC19P,KAAKs9P,+BAA+BtC,UAC9Eh7P,KAAK+0F,cAAc2M,4BAGrB1hG,KAAKu1I,UAAU6B,SAAS11C,2BAA6Bg8J,EACrD19P,KAAK29P,oCAAoCvmH,SAAS0kH,eAAiB4B,EAGnE,UAAW5sP,KAAOnF,OAAOtE,KAAKrH,KAAKu1I,UAAU6B,UAC3Cp3I,KAAKy4P,wBAAwBlG,WAAWzhP,EAAK9Q,KAAKu1I,UAAU6B,SAAStmI,GAEzE,CAGQ2sP,6BAA6BvhK,GACnCl8F,KAAK+0F,cAAc6M,oCAAoC1F,GAEvD,MAAMylC,EAAgB3hI,KAAK+0F,cAAcgN,8BAA8B7F,GAEjE0hK,EAAuB59P,KAAKs9P,+BAA+BztP,QAAQ8xH,GACzE3hI,KAAK29P,oCAAoCvmH,SAAS0kH,eAAelzP,KAAKg1P,EACxE,CAQQz3J,gCAAgChS,GACtC,MAAM0pK,EAAoB79P,KAAK29P,oCAAoCvmH,SAAS0kH,eAAe1kH,SAASx3G,KAAK1zB,GAChGA,EAAMkvP,mBAAqBjnK,GAGpC,IAAK0pK,EACH,OAGF,MAAMC,EACJ99P,KAAK29P,oCAAoCvmH,SAAS0kH,eAAe1kH,SAASlmI,QAAQ2sP,GACpF79P,KAAK29P,oCAAoCvmH,SAAS0kH,eAAexY,SAASwa,GAG1E99P,KAAK+0F,cAAckN,uCAAuC9N,EAC5D,CAGA4pK,qCACE,OAAO/9P,KAAKu1I,UAAU6B,SAASv6C,cAAc3wF,KAC/C,CAEAxE,cACE1H,KAAK+sD,QAAQ5kC,aACf,CAAChoB,kDA1GUk9P,GAAiBvvO,kIAAjBuvO,EAAiB9yN,urCCjB9BplC,qCAAmE,SAAnEA,CAAmE,SAEiCA,8BAAKA,6BAGvGA,qCAAwB,SAEpBA,+BAEAA,mCACFA,+BAIJA,sCAA6F,UAA7FA,CAA6F,WAA7FA,CAA6F,WAA7FA,CAA6F,YAA7FA,CAA6F,eAKxBA,oCAASA,2BAEpEA,wCAAsB,eAElBA,qCACFA,+BAIJA,0CAAuCA,uCAAYA,2BAEnDA,0CAAuCA,8CAAmBA,2BAE1DA,+BAAM,QAANA,CAAM,QAANA,CAAM,yDASRA,+BAIJA,wCAAyE,YAErEA,2DACFA,sCAzCKA,yIAO8CA,uFAsB7CA,iHAA8D,4DAA9DA,CAA8D,iEAWrCA,mOD9BtBk4P,CAAkB,+BEDvBl4P,sCAAsE,QAChEA,sBAA8CA,uDAA9CA,sHAGNA,uCAA2DA,6CAAoBA,sDAG/EA,uCAAmDA,sBAA8CA,qEAA9CA,kIACnDA,uCAAoDA,4CAAmBA,sDAkCvEA,uCACEA,uCAAwB,cACsDA,4CAAmBA,2BAC/FA,uCAAsB,cAAtBA,CAAsB,eAEiCA,8BAAKA,2BACxDA,0CAAmDA,8BAAKA,iCAK9DA,+EAMFA,8EAZgBA,mGACAA,mGAMZA,8GAA4D,sDAA5DA,CAA4D,kEClDjE,IAAM64P,GAAe,MAAtB,MAAOA,UAAuBtD,GAwBlC76P,YACUkwI,EACAutH,GAERx9P,QAHQE,mBACAA,sCAzBSA,4BAAyBu9F,GACzBv9F,2BAAwBs9F,GAIjCt9F,kBAAuC,GAKzCA,aAAU,IAAI2qD,GAEZ3qD,eAAY,IAAI41P,aAAU,CAClCxyP,KAAM,IAAIyyP,eAAY,IACtBz2J,iBAAkB,IAAIy2J,eAAY,IAClCx2J,kBAAmB,IAAIw2J,eAAY,IACnC/2J,qBAAsB,IAAIy8J,aAA8C,MAGhEv7P,yCAAsC,IAAI41P,aAAU,CAC5DkG,eAAgB,IAAIP,aAA8C,MAQlEv7P,KAAK+sD,QAAQzkD,IACXtI,KAAK+vI,YAAYytH,mBAAmBjlP,UAAU5O,IACxCA,EAAEkuG,uBAAyB73G,KAAK+0F,cAAc7pF,IAChDlL,KAAKi+P,mBAEHt0P,EAAEuyF,wBAA0Bl8F,KAAK+0F,cAAc7pF,KACjDlL,KAAKk+P,mBACLl+P,KAAK2+F,uBAAuBh1F,EAAEkuG,sBAAoB,IAKxD73G,KAAK+sD,QAAQzkD,IACXtI,KAAK+vI,YAAYwtH,qBAAqBhlP,UAAU5O,IAC1CA,EAAEkuG,uBAAyB73G,KAAK+0F,cAAc7pF,IAChDlL,KAAKm+P,qBAEHx0P,EAAEuyF,wBAA0Bl8F,KAAK+0F,cAAc7pF,KACjDlL,KAAKo+P,kBAAkBz0P,GACvB3J,KAAKq+P,0BAA0B10P,EAAEkuG,sBAAoB,GAI7D,CAEA5uE,WACEjpC,KAAKk+P,mBACLl+P,KAAKi+P,mBACLj+P,KAAK6Z,MACP,CAEA2+O,cACEx4P,KAAKu1I,UAAU6B,SAASh4C,iBAAiB42J,WAAWh2P,KAAK+0F,cAAcqK,kBACvEp/F,KAAKu1I,UAAU6B,SAAS/3C,kBAAkB22J,WAAWh2P,KAAK+0F,cAAcsK,mBACxEr/F,KAAKu1I,UAAU6B,SAASh0I,KAAK4yP,WAAWh2P,KAAK+0F,cAAc3xF,MAE3D,MAAMs6P,EAAsC19P,KAAKs9P,+BAA+BtC,UAC9Eh7P,KAAK+0F,cAAc+J,sBAGrB9+F,KAAKu1I,UAAU6B,SAASt4C,qBAAuB4+J,EAC/C19P,KAAK29P,oCAAoCvmH,SAAS0kH,eAAiB4B,EAGnE,UAAW5sP,KAAOnF,OAAOtE,KAAKrH,KAAKu1I,UAAU6B,UAC3Cp3I,KAAKy4P,wBAAwBlG,WAAWzhP,EAAK9Q,KAAKu1I,UAAU6B,SAAStmI,GAEzE,CAEIwtP,gCACF,OAAOt+P,KAAKu1I,UAAU6B,SAAS/3C,kBAAkBnzF,OAAS,EAC5D,CAEA28F,iCACE,OAAO7oG,KAAKu1I,UAAU6B,SAASh4C,iBAAiBlzF,QAAUoxF,cAC5D,CAEQ2gK,mBACN,MAAQn0K,aAAc9pF,KAAK+0F,cACrBwpK,EAAgBz0K,EAAUmS,4BAA6BtyF,GACpDA,EAAEkuG,uBAAyB73G,KAAK+0F,cAAc7pF,IAGnDqzP,EAAc95P,UACfzE,KAAKw+P,cAAgBD,EAE1B,CAEQL,mBACN,MAAQp0K,aAAc9pF,KAAK+0F,cAC3B/0F,KAAKy+P,aAAe30K,EAAUmS,4BAA6BtyF,GAClDA,EAAEuyF,wBAA0Bl8F,KAAK+0F,cAAc7pF,GAE1D,CAEQizP,qBACNn+P,KAAKw+P,kBAAevwP,CACtB,CAEQmwP,kBAAkBM,GACxB,MAAMC,EAAiB3+P,KAAKy+P,aAAa7+N,KAAKj2B,GAAKA,EAAEuB,KAAOwzP,EAAcxzP,IAErEyzP,GAIL3+P,KAAKy+P,aAAattP,OAAOnR,KAAKy+P,aAAavtP,QAAQytP,GAAiB,EACtE,CAEQhgK,uBAAuBkZ,GAE7B73G,KAAK+0F,cAAc2J,mCAAmCmZ,GACtD,MAAM8pB,EAAgB3hI,KAAK+0F,cAAckK,wBAAwB4Y,GAE3D+lJ,EAAuB59P,KAAKs9P,+BAA+BztP,QAAQ8xH,GACzE3hI,KAAK29P,oCAAoCvmH,SAAS0kH,eAAelzP,KAAKg1P,EACxE,CAEQS,0BAA0BlqK,GAChC,MAAM0pK,EAAoB79P,KAAK29P,oCAAoCvmH,SAAS0kH,eAAe1kH,SAASx3G,KAAKqgF,GAChGA,EAAGm7I,mBAAqBjnK,GAGjC,IAAK0pK,EACH,OAGF,MAAMC,EACJ99P,KAAK29P,oCAAoCvmH,SAAS0kH,eAAe1kH,SAASlmI,QAAQ2sP,GACpF79P,KAAK29P,oCAAoCvmH,SAAS0kH,eAAexY,SAASwa,GAG1E99P,KAAK+0F,cAAcoK,sCAAsChL,EAC3D,CAEAyqK,mCACE,OAAO5+P,KAAKs+P,4BAA8B/gK,QAC5C,CAEA71F,cACE1H,KAAK+sD,QAAQ5kC,aACf,CAAChoB,kDAtJU69P,GAAclwO,kIAAdkwO,EAAczzN,krDDpB3BplC,qCAAwC,SAAxCA,CAAwC,SAE8CA,gCAAOA,6BAG3FA,qCAAwB,SACoEA,oCAAWA,+BAIzGA,sCAAuD,UAAvDA,CAAuD,UAAvDA,CAAuD,WAAvDA,CAAuD,WAI1BA,uCAAaA,2BAElCA,0CAIAA,2CAEAA,uCAA8CA,uCAAaA,2BAC3DA,2CACAA,2CACFA,2BAEAA,uCAAqF,UAArFA,CAAqF,WAG/EA,iCACAA,oCACFA,+BAGJA,uCAAuD,YAAvDA,CAAuD,YAGjDA,2DACFA,mCAMRA,wCAA4F,WAA5FA,CAA4F,WAA5FA,CAA4F,YAA5FA,CAA4F,eAITA,2CAAiBA,2BAC5FA,wCAAsB,eAAtBA,CAAsB,gBAE+BA,8BAAIA,2BACrDA,2CAAwDA,qCAAWA,iCAKzEA,qDAkBFA,wCA5D8BA,2EAItBA,+EAGAA,uEACAA,wEAc2BA,+EAO6BA,yEAOhDA,iGACAA,wGAKCA,qgBCtCV64P,CAAe,4BCH1B74P,qCAAgD,UACsDA,8BAAKA,wDAkInGA,uCACEA,sCAAwB,cAEpBA,mEACFA,2BACAA,uCACEA,8CASFA,6BAEJA,6FAfWA,wEACLA,oIAIEA,2FAA2C,yBAA3CA,CAA2C,0BAA3CA,CAA2C,cAA3CA,CAA2C,mBAA3CA,CAA2C,cAA3CA,CAA2C,4DA1E3DA,uCAAiG,UAAjGA,CAAiG,SAAjGA,CAAiG,UAGLA,wCAAeA,6BAGvGA,qCAAwB,UAC8DA,uCAAcA,6BAEpGA,qCAAwB,UAC4DA,qCAAWA,+BAIjGA,wCAAuD,YAAvDA,CAAuD,WAAvDA,CAAuD,WAAvDA,CAAuD,eAK7CA,wCACFA,2BACAA,6CAIFA,2BACAA,uCAAwB,eAC0DA,+BAAIA,2BACpFA,6CAIFA,2BACAA,uCAAwB,eAC6DA,kCAAOA,2BAC1FA,6CAIFA,2BACAA,uCAAwB,eAC+DA,oCAASA,2BAC9FA,6CAIFA,+BAIJA,wCACEA,kDACFA,2BACAA,wCAAiE,YAAjEA,CAAiE,WAAjEA,CAAiE,eAGoBA,gCAAKA,2BAEpFA,wCACEA,+CAKFA,6BAGFA,mFAmBAA,uCAAwB,eACyBA,+BAAKA,2BACpDA,wCACEA,qCACFA,+EAxEOA,oFAILA,sFAAsC,cAAtCA,CAAsC,wCAKjCA,2EAELA,8EAA8B,cAA9BA,CAA8B,gCAKzBA,8EAELA,iFAAiC,cAAjCA,CAAiC,mCAK5BA,gFAELA,mFAAmC,cAAnCA,CAAmC,qCAQrBA,+DAAiB,mCAK1BA,0EAIHA,iGAAiD,0CAAjDA,CAAiD,cAAjDA,CAAiD,0BAOzBA,yHC1IjC,IAAM05P,GAAyB,MAAhC,MAAOA,EAMXh/P,YAAoBkwI,qBAA2B,CAE/C9mG,WACEjpC,KAAK2xP,uBACP,CAEA6C,qBAAqB1lB,GACfA,IACF9uO,KAAK+0F,cAAcoH,mBAAmBjwF,MAAQ,KAElD,CAEI4hH,oBACF,OAAO9tH,KAAK+vI,YAAYle,YAAYhP,aAAauL,cACnD,CAEAujI,sBAAsBzmP,GAChBA,IACFlL,KAAK+0F,cAAcX,gBAAkBlpF,GAEnClL,KAAK+0F,cAAcX,kBACrBp0F,KAAKy0P,gBAAkBz0P,KAAK+vI,YAAYle,YAAYhP,aAAaoL,sBAC/DjuH,KAAK+0F,cAAcX,iBAErBp0F,KAAK00P,eAET,CAEAA,eACE,MAAMC,EAAO,CACX,eACA,kBACA,kBACA,gBACA,SACA,SACA,SACA,UACA,YAEIC,EAAc,CAAC,SAAU,eAAgB,cAAe,WAAY,OAC1E,UAAWC,KAASF,EAClB,UAAWG,KAAcF,EAAa,CACpC,MAAMvqK,EAASrqF,KAAKy0P,gBAAgBI,GAAOC,GACrCC,EAAS,IAAIF,IAAQC,IAC3BvoM,EAAEwoM,GAAQx4O,IAAI8tE,EAAO0D,sBAAqB,IAC1CxhC,EAAE,GAAGwoM,SAAcx4O,IAAI8tE,EAAOlrB,MAC9B5S,EAAEwoM,GAAQ/vG,QAAM,CAGpBz4F,EAAE,mBAAmBvsD,KAAK+0F,cAAc7pF,MAAMqR,IAAIvc,KAAKy0P,gBAAgBv7I,YAAY,GAAG/5C,MACtF,IAAIj7C,EAAQ,EACZ,QAAS1f,EAAI,EAAGA,EAAIxE,KAAKy0P,gBAAgBv7I,YAAYz0G,OAAQD,IAAK,CAChE,MAAM6lF,EAASrqF,KAAKy0P,gBAAgBv7I,YAAY10G,GAChD0f,GAASmmE,EAAO0D,sBAAqB,GACrCxhC,EAAE,eAAe/nD,KAAK+X,IAAI8tE,EAAO0D,sBAAqB,GAAK,CAE7DxhC,EAAE,uBAAuBhwC,IAAI2H,GAE7BqoC,EAAE,6BAA6BhwC,IAAIvc,KAAKy0P,gBAAgBt0J,YAAYpS,sBAAqB,IACzFxhC,EAAE,iCAAiChwC,IAAIvc,KAAKy0P,gBAAgBt0J,YAAYhhC,MACxE5S,EAAE,6BAA6By4F,SAE/Bz4F,EAAE,qBAAqBhwC,IAAIvc,KAAKy0P,gBAAgB99I,IAAI5oB,sBAAqB,IACzExhC,EAAE,yBAAyBhwC,IAAIvc,KAAKy0P,gBAAgB99I,IAAIx3C,MACxD5S,EAAE,qBAAqBy4F,SAEvBz4F,EAAE,wBAAwBhwC,IAAIvc,KAAKy0P,gBAAgBpzJ,OAAOtT,sBAAqB,IAC/ExhC,EAAE,4BAA4BhwC,IAAIvc,KAAKy0P,gBAAgBpzJ,OAAOliC,MAC9D5S,EAAE,wBAAwBy4F,SAE1Bz4F,EAAE,0BAA0BhwC,IAAIvc,KAAKy0P,gBAAgBltJ,SAASxZ,sBAAqB,IACnFxhC,EAAE,8BAA8BhwC,IAAIvc,KAAKy0P,gBAAgBltJ,SAASpoC,MAClE5S,EAAE,0BAA0By4F,QAC9B,CAAC7kJ,kDAhFU0+P,GAAyB/wO,gGAAzB+wO,EAAyBt0N,06FDVtCplC,sCAA6B,UAA7BA,CAA6B,aAEoCA,qCAAWA,2BACxEA,sCAAkC,0BAI9BA,+DAAsB6Q,0BAA6B,GAAE7Q,iCAI7DA,8BACAA,qCAAqF,SAArFA,CAAqF,SAEeA,iCAAOA,6BAGzGA,yCAGAA,sCAAwB,WACsDA,mCAASA,6BAEvFA,sCAAwB,WAC0DA,qCAAWA,6BAG7FA,sCAAwB,WAEpBA,iCACAA,oCACFA,+BAIJA,wCAAuD,YAAvDA,CAAuD,YAAvDA,CAAuD,WAAvDA,CAAuD,WAAvDA,CAAuD,eAKcA,oCAASA,2BACpEA,wCAAsB,cAAtBA,CAAsB,eAKhBA,4FAAyC,4BAC/B6Q,wCAA2C,GAJvD7Q,iCASNA,uCAAwB,eAC4DA,+CAAoBA,2BACtGA,6CAIFA,2BAEAA,+BAEAA,uCAAqBA,6BAAGA,2BACxBA,uCAAwB,eACsDA,yCAAcA,2BAC1FA,6CACFA,2BAEAA,uCAAwB,eACsDA,yCAAcA,2BAC1FA,6CAIFA,2BAEAA,+BACFA,+BAIJA,6CAiGAA,wCAA6D,YAA7DA,CAA6D,YAGvDA,+BACAA,uCAAqBA,8BAAIA,2BACzBA,uCAAwB,eACiDA,iCAAMA,2BAC7EA,6CACFA,2BACAA,uCAAwB,eAC2DA,+BAAIA,2BACrFA,6CAIFA,2BACAA,uCAAwB,eACmDA,iCAAMA,2BAC/EA,6CACFA,2BAEAA,+BACFA,+BAIJA,wCAA+D,YAA/DA,CAA+D,UAA/DA,CAA+D,cAGqBA,gCAAMA,6BAEtFA,uCAA6B,WAA7BA,CAA6B,eAE+CA,6CAAkBA,2BAC1FA,6CACFA,iCAKNA,wCAA4E,aAExEA,2DACFA,sCAxNIA,iFAA+B,qCAYhCA,0EA6BSA,0FAOCA,6EAELA,gFAAgC,4CAAhCA,CAAgC,0CAS3BA,uEACQA,0EAA0B,uCAIlCA,uEAELA,0EAA0B,sCAA1BA,CAA0B,eAU9BA,0EAuGSA,kEACQA,mEAAmB,gCAG3BA,4EAELA,+EAA+B,2CAA/BA,CAA+B,eAK1BA,oEACQA,uEAAuB,mCAAvBA,CAAuB,eAe/BA,mEACQA,sEAAsB,kBAAtBA,CAAsB,mCAQZA,mNClNtB05P,CAAyB,4BCMpC15P,qCAAgD,UACsDA,8BAAKA,wDAsNnGA,uCACEA,sCAAwB,cAEpBA,mEACFA,2BACAA,uCACEA,8CASFA,6BAEJA,6FAfWA,wEACLA,oIAIEA,2FAA2C,yBAA3CA,CAA2C,0BAA3CA,CAA2C,cAA3CA,CAA2C,mBAA3CA,CAA2C,cAA3CA,CAA2C,4DArBvDA,uCAAyF,WAAzFA,CAAyF,UAAzFA,CAAyF,cAGJA,+BAAKA,2BAEpFA,uCACEA,8CAKFA,6BAGFA,iFAmBAA,sCAAwB,eACyBA,+BAAKA,2BACpDA,wCACEA,qCACFA,4EAlCOA,0EAIHA,iGAAiD,0CAAjDA,CAAiD,cAAjDA,CAAiD,0BAOzBA,iJAlEtCA,uCAAiG,UAAjGA,CAAiG,SAAjGA,CAAiG,UAGLA,wCAAeA,6BAGvGA,qCAAwB,UAC8DA,uCAAcA,6BAEpGA,qCAAwB,UAC4DA,qCAAWA,+BAGjGA,wCAAuD,YAAvDA,CAAuD,WAAvDA,CAAuD,WAAvDA,CAAuD,eAK7CA,wCACFA,2BACAA,6CAIFA,2BACAA,uCAAwB,eAC0DA,+BAAIA,2BACpFA,6CAIFA,2BACAA,uCAAwB,eAC6DA,kCAAOA,2BAC1FA,6CAIFA,2BACAA,uCAAwB,eAC+DA,oCAASA,2BAC9FA,6CAIFA,+BAIJA,wCACEA,kDACFA,2BACAA,4CAyCFA,uEA5EeA,oFAILA,sFAAsC,cAAtCA,CAAsC,wCAKjCA,2EAELA,8EAA8B,cAA9BA,CAA8B,gCAKzBA,8EAELA,iFAAiC,cAAjCA,CAAiC,mCAK5BA,gFAELA,mFAAmC,cAAnCA,CAAmC,qCAQrBA,+DAAiB,mCAEjCA,2EC/ML,IAAM25P,GAAuB,MAA9B,MAAOA,EAMXj/P,YAAoBkwI,qBAA2B,CAE/C9mG,WACEjpC,KAAK2xP,uBACP,CAEI7jI,oBACF,OAAO9tH,KAAK+vI,YAAYle,YAAYhP,aAAaqL,oBAAoB,sBACvE,CAEAyjI,sBAAsBzmP,GAChBA,IACFlL,KAAK+0F,cAAcX,gBAAkBlpF,GAEnClL,KAAK+0F,cAAcX,kBACrBp0F,KAAKy0P,gBAAkBz0P,KAAK+vI,YAAYle,YAAYhP,aAAaoL,sBAC/DjuH,KAAK+0F,cAAcX,iBAErBp0F,KAAK00P,eAET,CAEAA,eACE,MAAMC,EAAO,CACX,eACA,kBACA,kBACA,gBACA,SACA,SACA,SACA,UACA,YAEIC,EAAc,CAAC,SAAU,eAAgB,cAAe,WAAY,OAC1E,UAAWC,KAASF,EAClB,UAAWG,KAAcF,EAAa,CACpC,MAAMvqK,EAASrqF,KAAKy0P,gBAAgBI,GAAOC,GACrCC,EAAS,IAAIF,IAAQC,IAC3BvoM,EAAEwoM,GAAQx4O,IAAI8tE,EAAO0D,sBAAqB,IAC1CxhC,EAAE,GAAGwoM,SAAcx4O,IAAI8tE,EAAOlrB,MAC9B5S,EAAEwoM,GAAQ/vG,QAAM,CAGpBz4F,EAAE,mBAAmBvsD,KAAK+0F,cAAc7pF,MAAMqR,IAAIvc,KAAKy0P,gBAAgBv7I,YAAY,GAAG/5C,MACtF,IAAIj7C,EAAQ,EACZ,QAAS1f,EAAI,EAAGA,EAAIxE,KAAKy0P,gBAAgBv7I,YAAYz0G,OAAQD,IAAK,CAChE,MAAM6lF,EAASrqF,KAAKy0P,gBAAgBv7I,YAAY10G,GAChD0f,GAASmmE,EAAO0D,sBAAqB,GACrCxhC,EAAE,eAAe/nD,KAAK+X,IAAI8tE,EAAO0D,sBAAqB,GAAK,CAE7DxhC,EAAE,uBAAuBhwC,IAAI2H,GAE7BqoC,EAAE,6BAA6BhwC,IAAIvc,KAAKy0P,gBAAgBt0J,YAAYpS,sBAAqB,IACzFxhC,EAAE,iCAAiChwC,IAAIvc,KAAKy0P,gBAAgBt0J,YAAYhhC,MACxE5S,EAAE,6BAA6By4F,SAE/Bz4F,EAAE,qBAAqBhwC,IAAIvc,KAAKy0P,gBAAgB99I,IAAI5oB,sBAAqB,IACzExhC,EAAE,yBAAyBhwC,IAAIvc,KAAKy0P,gBAAgB99I,IAAIx3C,MACxD5S,EAAE,qBAAqBy4F,SAEvBz4F,EAAE,wBAAwBhwC,IAAIvc,KAAKy0P,gBAAgBpzJ,OAAOtT,sBAAqB,IAC/ExhC,EAAE,4BAA4BhwC,IAAIvc,KAAKy0P,gBAAgBpzJ,OAAOliC,MAC9D5S,EAAE,wBAAwBy4F,SAE1Bz4F,EAAE,0BAA0BhwC,IAAIvc,KAAKy0P,gBAAgBltJ,SAASxZ,sBAAqB,IACnFxhC,EAAE,8BAA8BhwC,IAAIvc,KAAKy0P,gBAAgBltJ,SAASpoC,MAClE5S,EAAE,0BAA0By4F,QAC9B,CAAC7kJ,kDA1EU2+P,GAAuBhxO,gGAAvBgxO,EAAuBv0N,6/EDVpCplC,sCAA6B,UAA7BA,CAA6B,aAEoCA,qCAAWA,2BACxEA,sCAAkC,0BAI9BA,+DAAsB6Q,0BAA6B,GAAE7Q,iCAI7DA,8BACAA,qCAAqF,SAArFA,CAAqF,SAEeA,iCAAOA,6BAEzGA,yCAGAA,sCAAwB,WACsDA,mCAASA,6BAGvFA,sCAAwB,WAEpBA,iCACAA,oCACFA,+BAIJA,wCAAuD,YAAvDA,CAAuD,YAAvDA,CAAuD,WAAvDA,CAAuD,WAAvDA,CAAuD,eAKqCA,+CAAoBA,2BACtGA,6CACFA,2BAEAA,+BACAA,uCAAqBA,6BAAGA,2BAExBA,uCAAwB,eACsDA,yCAAcA,2BAC1FA,6CACFA,2BAEAA,uCAAwB,eAEpBA,kDACFA,2BACAA,6CAIFA,2BAEAA,uCAAwB,eACsDA,yCAAcA,2BAC1FA,6CAIFA,2BAEAA,+BACAA,uCAAqBA,+BAAKA,2BAE1BA,uCAAwB,eAEpBA,mDACFA,2BACAA,6CAGFA,2BAEAA,uCAAwB,eAEpBA,kDACFA,2BACAA,6CAGFA,2BAEAA,uCAAwB,eACwDA,2CAAgBA,2BAC9FA,6CACFA,2BAEAA,uCAAwB,eACuDA,0CAAeA,2BAC5FA,6CACFA,iCAKNA,wCAA6D,YAA7DA,CAA6D,WAA7DA,CAA6D,WAA7DA,CAA6D,eAIgBA,iCAAMA,2BAC3EA,6CACFA,2BACAA,uCAAwB,eAC0DA,6CAAkBA,2BAClGA,6CACFA,2BACAA,uCAAwB,eACiDA,mCAAQA,2BAC/EA,6CACFA,2BACAA,uCAAwB,eACmDA,gDAAqBA,2BAC9FA,6CACFA,2BACAA,+BACAA,uCAAqBA,8BAAIA,2BAEzBA,uCAAwB,eACiDA,oCAASA,2BAChFA,6CACFA,2BACAA,uCAAwB,eACuDA,sCAAWA,2BACxFA,6CACFA,2BACAA,uCAAwB,eACmDA,iCAAMA,2BAC/EA,6CACFA,2BACAA,uCAAwB,eAC2DA,+BAAIA,2BACrFA,6CAIFA,2BACAA,uCAAwB,gBACmDA,kCAAMA,2BAC/EA,8CACFA,2BACAA,wCAAwB,gBACmDA,kCAAMA,2BAC/EA,8CACFA,2BAEAA,gCACAA,wCAAqBA,gCAAKA,2BAE1BA,wCAAwB,gBACwDA,4CAAgBA,2BAC9FA,8CACFA,2BACAA,wCAAwB,gBACoDA,kCAAMA,2BAChFA,8CACFA,iCAKNA,8CAgGAA,yCAA0E,cAEtEA,4DACFA,sCAnQIA,iFAA+B,qCAWhCA,0EAoBUA,8EACQA,gFAAgC,6CAOxCA,uEACQA,0EAA0B,uCAIlCA,+EAILA,kFAAkC,cAAlCA,CAAkC,+CAM7BA,uEAELA,0EAA0B,cAA1BA,CAA0B,uCASrBA,qFAILA,wFAAwC,qDAKnCA,+EAILA,kFAAkC,+CAK7BA,yEACQA,4EAA4B,yCAIpCA,wEACQA,2EAA2B,wCAUnCA,gEACQA,mEAAmB,gCAG3BA,2EACQA,8EAA8B,2CAGtCA,kEACQA,qEAAqB,iCAArBA,CAAqB,eAG7BA,oEACQA,uEAAuB,mCAAvBA,CAAuB,eAM/BA,kEACQA,qEAAqB,kCAG7BA,wEACQA,2EAA2B,wCAGnCA,oEACQA,uEAAuB,oCAG/BA,4EAELA,+EAA+B,2CAA/BA,CAA+B,eAK1BA,oEACQA,uEAAuB,oCAG/BA,oEACQA,uEAAuB,mCAAvBA,CAAuB,eAO/BA,yEACQA,4EAA4B,yCAGpCA,qEACQA,wEAAwB,oCAAxBA,CAAwB,eAMzCA,0EAkG2BA,qJC7PtB25P,CAAuB,KCFvBC,GAAwB,MAA/B,MAAOA,EAAwB5+P,kDAAxB4+P,EAAwB,8DAAxBA,EAAwBx0N,yNCRrCplC,sCAAwB,aACuEA,mCAASA,2BACtGA,2CACFA,2BAEAA,sCAAwB,aAEpBA,0CACFA,2BACAA,2CAEFA,2BAEAA,sCAAwB,aACwEA,sCAAWA,2BACzGA,4CACFA,2BAEAA,uCAAwB,cACmEA,gCAAKA,2BAC9FA,4CACFA,2BAEAA,uCAAwB,cAEpBA,2CACFA,2BACAA,4CAEFA,2BAEAA,uCAAwB,cAEpBA,6CACFA,2BACAA,4CAEFA,kCApCSA,wFACQA,2FAA2C,qCAInDA,8FAGQA,iGAAiD,2CAKzDA,yFACQA,4FAA4C,sCAIpDA,oFACQA,uFAAuC,iCAI/CA,8FAGQA,iGAAiD,2CAKzDA,gGAGQA,mGAAmD,0ED3BvD45P,CAAwB,qEEsB7B55P,uCACEA,8BAEAA,oCAAK,WACgDA,sBAAaA,2BAChEA,0CAAuDA,8HAASA,gDAAsB,GAAEA,+BAAMA,6BAEhGA,mDACFA,gEAJuDA,+DAG/BA,sEC5BzB,IAAM65P,GAA6B,MAApC,MAAOA,EAIXC,aAAar7J,GACX5jG,KAAK+0F,cAAcoP,eAAev7F,KAChC,IAAI86F,GACF,CACEtgG,KAAMpD,KAAKk/P,wBAAwBt7J,GACnCA,iBAEF5jG,KAAK+0F,cACL/0F,KAAK+0F,cAAcjL,WAGzB,CAEAq1K,gBAAgBj0P,GACd,MAAM6R,EAAM/c,KAAK+0F,cAAcoP,eAAe3H,UAAU4H,GAAMA,EAAGl5F,KAAOA,GACxElL,KAAK+0F,cAAcoP,eAAehzF,OAAO4L,EAAK,EAChD,CAEQmiP,wBAAwBv0P,GAC9B,MAAMy0P,EAAUp/P,KAAK+0F,cAAcoP,eAAepsF,OAAOqsF,GAAMA,EAAGR,gBAAkBj5F,GAAMlG,OAC1F,MAAO,GAAGkG,KAAQy0P,EAAU,GAC9B,CAACj/P,kDAzBU6+P,EAA6B,8DAA7BA,EAA6Bz0N,0wCDT1CplC,qCAAmE,SAAnEA,CAAmE,SAEiCA,gCAAOA,6BAGzGA,qCAAwB,SAEpBA,+BACAA,mCACFA,+BAIJA,sCAAuD,UAAvDA,CAAuD,WAAvDA,CAAuD,WAAvDA,CAAuD,YAAvDA,CAAuD,eAKsBA,8BAAIA,2BACvEA,wCAAsB,kBAAtBA,CAAsB,gBAEGA,8BAAIA,2BACzBA,2CAAsBA,+BAAKA,2BAC3BA,2CAAuBA,gCAAMA,+BAGjCA,wCAAoC,gBACKA,kHAASA,gDAAiC,GAAEA,uCAAaA,+BAGpGA,oDASFA,+BAIJA,wCAAqE,YAEjEA,2DACFA,8BAAM,OAhB2BA,2FAeFA,2YCpCtB65P,CAA6B,KCRnC,MCCMK,GAAgD,CAC3D,CAAEjvC,MAAO,qBAAsBzlN,KAAM,WAAY4rD,KAAM,IACvD,CAAE65J,MAAO,4BAA6BzlN,KAAM,WAAY4rD,KAAM,IAC9D,CAAE65J,MAAO,uBAAwBzlN,KAAM,WAAY4rD,KAAM,IACzD,CAAE65J,MAAO,6BAA8BzlN,KAAM,WAAY4rD,KAAM,IAC/D,CAAE65J,MAAO,wBAAyBzlN,KAAM,WAAY4rD,KAAM,IAC1D,CAAE65J,MAAO,eAAgBzlN,KAAM,WAAY4rD,KAAM,IACjD,CAAE65J,MAAO,cAAezlN,KAAM,WAAY4rD,KAAM,IAChD,CAAE65J,MAAO,eAAgBzlN,KAAM,WAAY4rD,KAAM,IACjD,CAAE65J,MAAO,cAAezlN,KAAM,WAAY4rD,KAAM,IAChD,CAAE65J,MAAO,eAAgBzlN,KAAM,WAAY4rD,KAAM,IACjD,CAAE65J,MAAO,cAAezlN,KAAM,WAAY4rD,KAAM,IAChD,CAAE65J,MAAO,cAAezlN,KAAM,WAAY4rD,KAAM,IAChD,CAAE65J,MAAO,aAAczlN,KAAM,WAAY4rD,KAAM,KCV3C,MAAO+oM,WAAqCrG,GAChDp5P,cACEC,MFLF,y4BEMA,CAESg2O,qBACP,OAAOh2O,MAAMg2O,qBAAqBr7N,UAAU4kP,GAC9C,wBCVAl6P,sDACAA,gGAaAA,oCAA+C,oCAM3CA,uHAAaA,kDAA4B,GAAEA,4BAA8B,6CAJzEA,yFAAuC,4CAAvCA,CAAuC,+BAAvCA,CAAuC,kDCRtC,IAAMo6P,GAAwB,MAA/B,MAAOA,EAMX1/P,YAAoBw2O,2BADpBr2O,eAAW,EAETA,KAAKg1O,oBAAsB,IAAIsqB,EACjC,CAEAr2N,WAAY,CAEZixN,qBAAqBx9O,GACI,oBAAnBA,EAAI84N,aACNx1O,KAAK+0F,cAAc6D,iBAAmBl8E,EAAIjL,KAC1CzR,KAAKq2O,iBAAiBn9F,wBAE1B,CAEAshH,eACEjuM,EAAE,aAAaymH,SAAS,UACxBhzK,KAAKy6P,UAAYz6P,KAAKy6P,QACxB,CAACt6P,kDAtBUo/P,GAAwBzxO,gGAAxByxO,EAAwBh1N,ozBDVrCplC,wCAAwBA,8BAAKA,2BAC7BA,oCAAsEA,iDAAS6Q,gBAAc,GAC3F7Q,uCACAA,uCACFA,2BACAA,sCAAmE,UAAnEA,CAAmE,aAECA,qDAA2BA,2BAC3FA,sCAAsB,aAAtBA,CAAsB,cAE6BA,kGAA/CA,+BAIJA,mCACFA,2BACAA,2CAQAA,kCACAA,uCAAwB,eACsDA,2CAAgBA,2BAC5FA,6CACFA,2BACAA,uCAAwB,eACqDA,0CAAeA,2BAC1FA,6CACFA,2BACAA,kCACAA,uCAAwB,eACsDA,2CAAgBA,2BAC5FA,6CACFA,2BACAA,uCAAwB,eACqDA,0CAAeA,2BAC1FA,6CACFA,2BACAA,kCACAA,uCAAwB,eACsDA,2CAAgBA,2BAC5FA,6CACFA,2BACAA,uCAAwB,eACqDA,0CAAeA,2BAC1FA,6CACFA,2BACAA,kCACAA,uCAAwB,eACqDA,0CAAeA,2BAC1FA,6CACFA,2BACAA,uCAAwB,eACoDA,yCAAcA,2BACxFA,6CACFA,oCAzDIA,oEACAA,mEAOiDA,+FAM/CA,4FAUGA,uEACQA,0EAA0B,cAA1BA,CAA0B,uCAGlCA,sEACQA,yEAAyB,cAAzBA,CAAyB,sCAIjCA,uEACQA,0EAA0B,cAA1BA,CAA0B,uCAGlCA,sEACQA,yEAAyB,cAAzBA,CAAyB,sCAIjCA,uEACQA,0EAA0B,cAA1BA,CAA0B,uCAGlCA,sEACQA,yEAAyB,cAAzBA,CAAyB,sCAIjCA,sEACQA,yEAAyB,cAAzBA,CAAyB,sCAGjCA,qEACQA,wEAAwB,cAAxBA,CAAwB,yeChD9Bo6P,CAAwB,KCV9B,MCAMC,GAAgC,CAC3C,CAAEpvC,MAAO,qBAAsBzlN,KAAM,WAAY4rD,KAAM,IACvD,CAAE65J,MAAO,4BAA6BzlN,KAAM,WAAY4rD,KAAM,IAC9D,CAAE65J,MAAO,uBAAwBzlN,KAAM,WAAY4rD,KAAM,IACzD,CAAE65J,MAAO,6BAA8BzlN,KAAM,WAAY4rD,KAAM,IAC/D,CAAE65J,MAAO,wBAAyBzlN,KAAM,WAAY4rD,KAAM,IAC1D,CAAE65J,MAAO,qBAAsBzlN,KAAM,WAAY4rD,KAAM,IACvD,CAAE65J,MAAO,qBAAsBzlN,KAAM,WAAY4rD,KAAM,IACvD,CAAE65J,MAAO,qBAAsBzlN,KAAM,WAAY4rD,KAAM,IACvD,CAAE65J,MAAO,oBAAqBzlN,KAAM,WAAY4rD,KAAM,IACtD,CAAE65J,MAAO,gBAAiBzlN,KAAM,WAAY4rD,KAAM,IAClD,CAAE65J,MAAO,eAAgBzlN,KAAM,WAAY4rD,KAAM,KCN7C,MAAOkpM,WAAmCxG,GAC9Cp5P,cACEC,MFNF,8nBEOA,CAESg2O,qBACP,OAAOh2O,MAAMg2O,qBAAqBr7N,OAAO+kP,GAC3C,wBCREr6P,sDACAA,gGAeFA,oCAA6C,oCAMzCA,uHAAaA,gDAA0B,GAAEA,4BAA8B,6CAJvEA,uFAAqC,4CAArCA,CAAqC,6BAArCA,CAAqC,gDCVpC,IAAMu6P,GAAuB,MAA9B,MAAOA,EAMX7/P,YAAoBkwI,EAAkCsmG,GAAlCr2O,mBAAkCA,wBAHtDA,eAAW,EAITA,KAAKg1O,oBAAsB,IAAIyqB,EACjC,CAEAx2N,WACEjpC,KAAK2xP,uBACP,CAEAgO,mBAAmBjjP,GACM,kBAAnBA,EAAI84N,aACNx1O,KAAK+0F,cAAcwE,eAAiB78E,EAAIjL,KACxCzR,KAAKq2O,iBAAiBn9F,wBAE1B,CAEAshH,eACEjuM,EAAE,WAAWymH,SAAS,UACtBhzK,KAAKy6P,UAAYz6P,KAAKy6P,QACxB,CAEI3sI,oBACF,OAAO9tH,KAAK+vI,YAAYle,YAAYhP,aAAaqL,oBAAoB,MACvE,CAEAyjI,sBAAsBzmP,GAChBA,IACFlL,KAAK+0F,cAAcyE,cAAgBtuF,GAEjClL,KAAK+0F,cAAcyE,gBACrBx5F,KAAKy0P,gBAAkBz0P,KAAK+vI,YAAYle,YAAYhP,aAAaoL,sBAC/DjuH,KAAK+0F,cAAcyE,eAGzB,CAACr5F,kDAvCUu/P,GAAuB5xO,kIAAvB4xO,EAAuBn1N,w4BDZpCplC,oCAAK,aACkCA,4BAAGA,2BAExCA,oCAAoEA,iDAAS6Q,gBAAc,GACzF7Q,uCACAA,uCACFA,6BAGFA,sCAAwD,UAAxDA,CAAwD,aAEeA,mDAAyBA,2BAC5FA,uCAAsB,aAAtBA,CAAsB,cAEgCA,gGAAlDA,+BAIJA,mCACFA,2BACAA,2CAQAA,kCACAA,uCAAwB,eAEpBA,wDACFA,2BACAA,6CACFA,2BACAA,uCAAwB,eAEpBA,oDACFA,2BACAA,6CACFA,2BAEAA,uCAAwB,eACoDA,uCAAYA,2BACtFA,6CACFA,2BAEAA,uCAAwB,eACkDA,6CAAkBA,2BAC1FA,6CACFA,2BAEAA,uCAAwB,eAC0BA,wCAAaA,2BAC7DA,wCAAsB,4BAIlBA,+DAAsB6Q,0BAA6B,GACrD7Q,wCAvDEA,oEACAA,mEASkDA,6FAMlDA,0FAUGA,8EAGQA,iFAAiC,8CAGzCA,gFAGQA,mFAAmC,gDAI3CA,qEACQA,wEAAwB,cAAxBA,CAAwB,qCAIhCA,mEACQA,sEAAsB,cAAtBA,CAAsB,mCAOjCA,iFAA+B,kQC5C1Bu6P,CAAuB,qEC4B5Bv6P,uCAA0E,cACEA,sCAAYA,2BACtFA,uCAAsB,eACSA,2HAAaA,qDAClD,GAAUA,0CAA6BA,qCAAYA,gCAAS,6CAH/CA,qEAEwBA,iHA2B3BA,uCACEA,mCAAIA,sBAAkCA,2BACxCA,yFADMA,kHAONA,mCACEA,8CAOFA,oHANIA,wGAAsD,yBAAtDA,CAAsD,iEAAtDA,CAAsD,cAAtDA,CAAsD,oDAJ5DA,mCAAqE,WACvCA,sBAAoBA,2BAChDA,yCASFA,oFAV8BA,sEACRA,uHA7B5BA,uCAI0B,WAJ1BA,CAI0B,WAJ1BA,CAI0B,cAGmDA,+BAAKA,2BAE5EA,uCACEA,8CAIFA,+BAGJA,sCAAO,UAAPA,CAAO,OAAPA,CAAO,SAGGA,+BAAKA,2BACTA,oDAGFA,6BAEFA,uCACEA,0CAYFA,yEApCFA,2EAIWA,kEAIHA,sEAAsB,uDAAtBA,CAAsB,0BAUgBA,4FAMlBA,kHAoBtBA,uCACEA,mCAAIA,sBAAkCA,2BACxCA,yFADMA,wJAMRA,mCAA2G,cAIvGA,kLACqBA,sHAA0Fy6P,UACxH,IAAK,MAAK,EAFDz6P,CAEC,oJAE0By6P,UAAkB,IAAK,KAAGC,KAPvD16P,4BAQ4F,8GAP1FA,qFAMAA,uDAAuD,+FAV7DA,mCAAqE,WACvCA,sBAAeA,2BAC3CA,yCAWFA,oFAZ8BA,0DACEA,iIAXlCA,sCAAwD,UAAxDA,CAAwD,OAAxDA,CAAwD,QAG9CA,uCAAcA,2BAClBA,mDAGFA,6BAEFA,yCAcFA,sEAnB8CA,sGAKlBA,mGAV9BA,uCACEA,4CAwBFA,qEAxBUA,oGC9ET,IAAM26P,GAAY,MAAnB,MAAOA,EAOXjgQ,YAAoBkwI,sBALZ/vI,aAAU,IAAI2qD,GAGtB3qD,gBAAa,CAAC,aAAc,gBAAiB,gBAAiB,aAAc,MAAO,MAAO,MAAO,OAAQ,SAGvGA,KAAK+sD,QAAQzkD,IACXtI,KAAK+vI,YAAYytH,mBAAmBjlP,UAAU5O,IACxCA,EAAEkuG,uBAAyB73G,KAAK+0F,cAAc7pF,IAChDlL,KAAK+/P,kCAAgC,IAK3C//P,KAAK+sD,QAAQzkD,IACXtI,KAAK+vI,YAAYwtH,qBAAqBhlP,UAAU5O,IAC1CA,EAAEkuG,uBAAyB73G,KAAK+0F,cAAc7pF,IAChDlL,KAAK+/P,kCAAgC,GAI7C,CAEAlE,0BAA0BxqP,GACxB,OAAIrR,KAAK+0F,cACA/0F,KAAK+0F,cAAciN,kCAAkC3wF,GAGvD,EACT,CAEA2uP,uCAAuCnrP,GAKrC,MAAMorP,EAAWvyK,cAAcI,iBAC7B9tF,KAAK+0F,cAAc2M,2BAA2B7sF,EAAOqrP,oBAAoBrrP,EAAOsrP,gBAIhFngQ,KAAK+0F,cAAc2M,2BAA2B7sF,EAAOqrP,oBAAoBrrP,EAAOsrP,eAD9E5zK,OAAO5/D,MAAMszO,GACkF,KAEAzzK,GAC/FyzK,EACA,GAIJjgQ,KAAK47P,kCAAkC/mP,EAAOurP,eAChD,CAEAxE,kCAAkCwE,GAChC,MAAMjyP,EAAYnO,KAAKwmD,WAAW45M,GAAgBx2P,QAAQ,IAAK,IAC/D,IAAIsa,EAAQ,EACZ,QAAS1f,EAAI,EAAGA,EAAIxE,KAAK+0F,cAAc2M,2BAA2Bj9F,OAAS,EAAGD,IAAK,CACjF,MACMy7P,EAAWvyK,cAAcI,iBADpB9tF,KAAK+0F,cAAc2M,2BAA2Bl9F,GACN2J,IACnD,GAAKo+E,OAAO5/D,MAAMszO,GACPA,OACAA,EAAW,OACpBjgQ,KAAK+0F,cAAcwR,eAAep4F,QAGlC,EALA+V,GAAS+7O,CAKT,CAGA,EAAI/7O,EAAQ,EACdlkB,KAAK+0F,cAAcwR,eAAep4F,GAGpCnO,KAAK+0F,cAAc2M,2BAA2B1hG,KAAK+0F,cAAc2M,2BAA2Bj9F,OAAS,GAAG0J,GACtG+wD,YAAY,EAAIh7C,GAAOwoE,QAAQ,GACnC,CAEQqzK,mCACN,MAAQj2K,aAAc9pF,KAAK+0F,cACrB51B,EAAO2qB,EAAUyV,iBAAiBv/F,KAAK+0F,cAAc7pF,IAC3DlL,KAAK+0F,cAAc2M,2BAA6BviC,EAAKuiC,2BACrD1hG,KAAK+0F,cAAc6Q,iBAAmBzmC,EAAKymC,gBAC7C,CAEAl+F,cACE1H,KAAK+sD,QAAQ5kC,aACf,CAAChoB,kDAtFU2/P,GAAYhyO,gGAAZgyO,EAAYv1N,6vEDdzBplC,qCAAmE,SAAnEA,CAAmE,SAG5DA,2CAAkBA,6BAGvBA,qCAAwB,SACkDA,gCAAOA,6BAEjFA,qCAAwB,SACsDA,kCAASA,6BAEvFA,sCAAwB,UACsDA,mCAASA,6BAEvFA,sCAAwB,UAC2DA,uCAAYA,6BAG/FA,sCAAwB,UAEpBA,gCACAA,oCACFA,+BAIJA,wCAAuD,YAAvDA,CAAuD,YAAvDA,CAAuD,YAAvDA,CAAuD,YAAvDA,CAAuD,eAKoCA,wCAAaA,2BAC9FA,wCAAsB,gBACSA,0FAC3BA,2CAAgCA,yCAAeA,2BAC/CA,2CAA0BA,mCAASA,iCAIzCA,2CAQFA,2BACAA,4CA0CAA,2CA0BFA,6BAGFA,wCAA6D,YAA7DA,CAA6D,YAA7DA,CAA6D,YAGlCA,8BAAIA,2BAEzBA,wCAAwB,eACiDA,oCAASA,2BAChFA,6CACFA,2BACAA,wCAAwB,eACuDA,sCAAWA,2BACxFA,6CACFA,2BACAA,wCAAwB,eACmDA,iCAAMA,2BAC/EA,6CACFA,2BACAA,wCAAwB,eAC2DA,+BAAIA,2BACrFA,6CAIFA,2BACAA,wCAAwB,eACmDA,iCAAMA,2BAC/EA,6CACFA,2BACAA,wCAAwB,eACmDA,iCAAMA,2BAC/EA,6CACFA,2BAEAA,+BACAA,uCAAqBA,+BAAKA,2BAE1BA,wCAAwB,eACwDA,2CAAgBA,2BAC9FA,6CACFA,2BACAA,wCAAwB,eACoDA,iCAAMA,2BAChFA,6CACFA,iCAINA,wCAA2D,YAA3DA,CAA2D,YAElCA,6BAAGA,2BACxBA,wCAA6B,YAA7BA,CAA6B,eAEmDA,yCAAcA,2BAC1FA,6CACFA,2BAEAA,wCAAwB,eACsDA,yCAAcA,2BAC1FA,6CAIFA,iCAKNA,wCAA6D,YAA7DA,CAA6D,aAGvDA,qDAA+E,6BAEjFA,+BAIJA,wCAA+D,UAA/DA,CAA+D,cAEmBA,gCAAMA,6BAEtFA,wCAA6B,YAA7BA,CAA6B,gBAE+CA,kDAAsBA,2BAC9FA,8CACFA,2BACAA,yCAAwB,gBACqDA,yCAAaA,2BACxFA,8CAEFA,+BAIJA,yCAA+D,cAE3DA,4DACFA,sCAxLaA,6EAEwBA,uFAMRA,kGAWxBA,kGAwCGA,wGAmCKA,kEACQA,qEAAqB,kCAG7BA,wEACQA,2EAA2B,wCAGnCA,oEACQA,uEAAuB,oCAG/BA,4EAELA,+EAA+B,2CAA/BA,CAA+B,eAK1BA,oEACQA,uEAAuB,oCAG/BA,oEACQA,uEAAuB,mCAAvBA,CAAuB,eAO/BA,yEACQA,4EAA4B,yCAGpCA,qEACQA,wEAAwB,oCAAxBA,CAAwB,eAUhCA,uEACQA,0EAA0B,uCAIlCA,uEAELA,0EAA0B,cAA1BA,CAA0B,uCAWPA,iFACFA,iFAWdA,mEACQA,sEAAsB,kBAAtBA,CAAsB,mCAG9BA,sEACQA,yEAAyB,kBAAzBA,CAAyB,sCAQbA,smBCzMtB26P,CAAY,qEC0BjB36P,uCAA0E,cACEA,sCAAYA,2BACtFA,uCAAsB,eACSA,2HAAaA,qDAClD,GAAUA,0CAA6BA,qCAAYA,gCAAS,6CAH/CA,qEAEwBA,iHA2B3BA,uCACEA,mCAAIA,sBAAkCA,2BACxCA,yFADMA,kHAONA,mCACEA,8CAOFA,oHANIA,wGAAsD,yBAAtDA,CAAsD,iEAAtDA,CAAsD,cAAtDA,CAAsD,oDAJ5DA,mCAAqE,WACvCA,sBAAoBA,2BAChDA,yCASFA,oFAV8BA,sEACRA,uHA7B5BA,uCAI0B,WAJ1BA,CAI0B,WAJ1BA,CAI0B,cAGmDA,+BAAKA,2BAE5EA,uCACEA,8CAIFA,+BAGJA,sCAAO,UAAPA,CAAO,OAAPA,CAAO,SAGGA,+BAAKA,2BACTA,oDAGFA,6BAEFA,uCACEA,0CAYFA,yEApCFA,2EAIWA,kEAIHA,sEAAsB,uDAAtBA,CAAsB,0BAUgBA,4FAMlBA,kHAqBtBA,uCACEA,mCAAIA,sBAAkCA,2BACxCA,yFADMA,wJAMRA,mCAA2G,cAIvGA,kLACqBA,sHAA0Fy6P,UACxH,IAAK,MAAK,EAFDz6P,CAEC,oJAE0By6P,UAAkB,IAAK,KAAGC,KAPvD16P,4BAQ4F,8GAP1FA,qFAMAA,uDAAuD,+FAV7DA,mCAAqE,WACvCA,sBAAeA,2BAC3CA,yCAWFA,oFAZ8BA,0DACEA,iIAXlCA,sCAAwD,UAAxDA,CAAwD,OAAxDA,CAAwD,QAG9CA,uCAAcA,2BAClBA,mDAGFA,6BAEFA,yCAcFA,sEAnB8CA,sGAKlBA,mGAV9BA,uCACEA,4CAwBFA,qEAxBUA,oGCjFT,IAAMk7P,GAAY,MAAnB,MAAOA,EASXxgQ,YAAoBkwI,sBALZ/vI,aAAU,IAAI2qD,GAGtB3qD,gBAAa,CAAC,aAAc,gBAAiB,gBAAiB,aAAc,MAAO,MAAO,MAAO,OAAQ,SAGvGA,KAAK+sD,QAAQzkD,IACXtI,KAAK+vI,YAAYytH,mBAAmBjlP,UAAU5O,IACxCA,EAAEkuG,uBAAyB73G,KAAK+0F,cAAc7pF,IAChDlL,KAAK+/P,kCAAgC,IAK3C//P,KAAK+sD,QAAQzkD,IACXtI,KAAK+vI,YAAYwtH,qBAAqBhlP,UAAU5O,IAC1CA,EAAEkuG,uBAAyB73G,KAAK+0F,cAAc7pF,IAChDlL,KAAK+/P,kCAAgC,GAI7C,CAEAlE,0BAA0BxqP,GACxB,OAAIrR,KAAK+0F,cACA/0F,KAAK+0F,cAAciN,kCAAkC3wF,GAGvD,EACT,CAEA2uP,uCAAuCnrP,GAKrC,MAAMorP,EAAWvyK,cAAcI,iBAC7B9tF,KAAK+0F,cAAc2M,2BAA2B7sF,EAAOqrP,oBAAoBrrP,EAAOsrP,gBAIhFngQ,KAAK+0F,cAAc2M,2BAA2B7sF,EAAOqrP,oBAAoBrrP,EAAOsrP,eAD9E5zK,OAAO5/D,MAAMszO,GACkF,KAEAzzK,GAC/FyzK,EACA,GAIJjgQ,KAAK47P,kCAAkC/mP,EAAOurP,eAChD,CAEAxE,kCAAkCwE,GAChC,MAAMjyP,EAAYnO,KAAKwmD,WAAW45M,GAAgBx2P,QAAQ,IAAK,IAC/D,IAAIsa,EAAQ,EACZ,QAAS1f,EAAI,EAAGA,EAAIxE,KAAK+0F,cAAc2M,2BAA2Bj9F,OAAS,EAAGD,IAAK,CACjF,MACMy7P,EAAWvyK,cAAcI,iBADpB9tF,KAAK+0F,cAAc2M,2BAA2Bl9F,GACN2J,IACnD,GAAKo+E,OAAO5/D,MAAMszO,GACPA,OACAA,EAAW,OACpBjgQ,KAAK+0F,cAAcwR,eAAep4F,QAGlC,EALA+V,GAAS+7O,CAKT,CAGA,EAAI/7O,EAAQ,EACdlkB,KAAK+0F,cAAcwR,eAAep4F,GAGpCnO,KAAK+0F,cAAc2M,2BAA2B1hG,KAAK+0F,cAAc2M,2BAA2Bj9F,OAAS,GAAG0J,GACtG+wD,YAAY,EAAIh7C,GAAOwoE,QAAQ,GACnC,CAEQqzK,mCACN,MAAQj2K,aAAc9pF,KAAK+0F,cACrB51B,EAAO2qB,EAAUyV,iBAAiBv/F,KAAK+0F,cAAc7pF,IAC3DlL,KAAK+0F,cAAc2M,2BAA6BviC,EAAKuiC,2BACrD1hG,KAAK+0F,cAAc6Q,iBAAmBzmC,EAAKymC,gBAC7C,CAEAl+F,cACE1H,KAAK+sD,QAAQ5kC,aACf,CAAChoB,kDAxFUkgQ,GAAYvyO,gGAAZuyO,EAAY91N,6vEDZzBplC,qCAAmE,SAAnEA,CAAmE,SAG5DA,2CAAkBA,6BAGvBA,qCAAwB,SACkDA,gCAAOA,6BAEjFA,qCAAwB,SACsDA,kCAASA,6BAEvFA,sCAAwB,UACsDA,mCAASA,6BAEvFA,sCAAwB,UAC2DA,uCAAYA,6BAG/FA,sCAAwB,UAEpBA,gCACAA,oCACFA,+BAIJA,wCAAuD,YAAvDA,CAAuD,YAAvDA,CAAuD,YAAvDA,CAAuD,YAAvDA,CAAuD,eAKoCA,wCAAaA,2BAC9FA,wCAAsB,gBACSA,0FAC3BA,2CAAgCA,yCAAeA,2BAC/CA,2CAA0BA,mCAASA,iCAIzCA,2CAQFA,2BACAA,4CA2CAA,2CA0BFA,6BAGFA,wCAA6D,YAA7DA,CAA6D,YAA7DA,CAA6D,YAGlCA,8BAAIA,2BAEzBA,wCAAwB,eACiDA,oCAASA,2BAChFA,6CACFA,2BACAA,wCAAwB,eACuDA,sCAAWA,2BACxFA,6CACFA,2BACAA,wCAAwB,eACmDA,iCAAMA,2BAC/EA,6CACFA,2BACAA,wCAAwB,eAC2DA,+BAAIA,2BACrFA,6CAIFA,2BACAA,wCAAwB,eACmDA,iCAAMA,2BAC/EA,6CACFA,2BACAA,wCAAwB,eACmDA,iCAAMA,2BAC/EA,6CACFA,2BAEAA,+BACAA,uCAAqBA,+BAAKA,2BAE1BA,wCAAwB,eACwDA,2CAAgBA,2BAC9FA,6CACFA,2BACAA,wCAAwB,eACoDA,iCAAMA,2BAChFA,6CACFA,iCAINA,wCAA2D,YAA3DA,CAA2D,YAElCA,6BAAGA,2BACxBA,wCAA6B,YAA7BA,CAA6B,eAEmDA,yCAAcA,2BAC1FA,6CACFA,2BAEAA,wCAAwB,eACsDA,yCAAcA,2BAC1FA,6CAIFA,iCAINA,wCAA6D,YAA7DA,CAA6D,YAEpCA,+BAAKA,2BAC1BA,wCAA6B,YAA7BA,CAA6B,eAEwDA,+CAAoBA,2BACrGA,6CACFA,2BAEAA,wCAAwB,eACuDA,2CAAeA,2BAC5FA,8CAIFA,2BAEAA,sDAA+E,8BAEjFA,+BAIJA,yCAA+D,WAA/DA,CAA+D,eAEmBA,iCAAMA,6BAEtFA,yCAA6B,aAA7BA,CAA6B,gBAE+CA,kDAAsBA,2BAC9FA,8CACFA,2BACAA,yCAAwB,gBACqDA,yCAAaA,2BACxFA,8CAEFA,+BAIJA,yCAA+D,cAE3DA,4DACFA,sCAtMaA,6EAEwBA,uFAMRA,kGAWxBA,kGAyCGA,wGAmCKA,kEACQA,qEAAqB,kCAG7BA,wEACQA,2EAA2B,wCAGnCA,oEACQA,uEAAuB,oCAG/BA,4EAELA,+EAA+B,2CAA/BA,CAA+B,eAK1BA,oEACQA,uEAAuB,oCAG/BA,oEACQA,uEAAuB,mCAAvBA,CAAuB,eAO/BA,yEACQA,4EAA4B,yCAGpCA,qEACQA,wEAAwB,oCAAxBA,CAAwB,eAUhCA,uEACQA,0EAA0B,uCAIlCA,uEAELA,0EAA0B,cAA1BA,CAA0B,uCAYrBA,4EACQA,+EAA+B,4CAIvCA,wEAELA,2EAA2B,cAA3BA,CAA2B,wCAKRA,iFACFA,iFAWdA,mEACQA,sEAAsB,kBAAtBA,CAAsB,mCAG9BA,sEACQA,yEAAyB,kBAAzBA,CAAyB,sCAQbA,smBCzNtBk7P,CAAY,KCFZC,GAAuB,MAA9B,MAAOA,EAIXzgQ,YAAoB04P,EAAiCnG,GAAjCpyP,YAAiCA,SAAyB,CAE9EipC,WACEjpC,KAAKugQ,mBAAqBvgQ,KAAKoyP,GAAG9zN,MAAM,IACxCt+B,KAAKw4P,aACP,CAEAA,cACEx4P,KAAKugQ,mBAAmBhO,WAAW,cAAevyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAKy0P,gBAAgBt0J,aAAa,IACtGngG,KAAKugQ,mBAAmBhO,WAAW,MAAOvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAKy0P,gBAAgB99I,KAAK,IACtF32G,KAAKugQ,mBAAmBhO,WAAW,SAAUvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAKy0P,gBAAgBpzJ,QAAQ,IAC5FrhG,KAAKugQ,mBAAmBhO,WAAW,WAAYvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAKy0P,gBAAgBltJ,UAAU,GAClG,CAEAi5J,iBACExgQ,KAAKugQ,mBAAmBv8P,IAAI,eAAeA,IAAI,QAAQ6J,SAAS7N,KAAKy0P,gBAAgBt0J,YAAYhhC,MACjGn/D,KAAKugQ,mBAAmBv8P,IAAI,eAAeA,IAAI,SAAS6J,SAAS7N,KAAKy0P,gBAAgBt0J,YAAYj0F,OAElGlM,KAAKugQ,mBAAmBv8P,IAAI,OAAOA,IAAI,QAAQ6J,SAAS7N,KAAKy0P,gBAAgB99I,IAAIx3C,MACjFn/D,KAAKugQ,mBAAmBv8P,IAAI,OAAOA,IAAI,SAAS6J,SAAS7N,KAAKy0P,gBAAgB99I,IAAIzqG,OAElFlM,KAAKugQ,mBAAmBv8P,IAAI,UAAUA,IAAI,QAAQ6J,SAAS7N,KAAKy0P,gBAAgBpzJ,OAAOliC,MACvFn/D,KAAKugQ,mBAAmBv8P,IAAI,UAAUA,IAAI,SAAS6J,SAAS7N,KAAKy0P,gBAAgBpzJ,OAAOn1F,OAExFlM,KAAKugQ,mBAAmBv8P,IAAI,YAAYA,IAAI,QAAQ6J,SAAS7N,KAAKy0P,gBAAgBltJ,SAASpoC,MAC3Fn/D,KAAKugQ,mBAAmBv8P,IAAI,YAAYA,IAAI,SAAS6J,SAAS7N,KAAKy0P,gBAAgBltJ,SAASr7F,MAC9F,CAAC/L,kDA9BUmgQ,GAAuBxyO,qJAAvBwyO,EAAuB/1N,8gBCVpCplC,sCAA8D,UAA9DA,CAA8D,aAEnBA,uCAAaA,2BAEpDA,sCAA6C,UAA7CA,CAA6C,WAGvCA,sDAEFA,2BACAA,sCACEA,+DAEFA,iCAKNA,uCAA4C,cACHA,+BAAIA,2BAE3CA,uCAA6C,WAA7CA,CAA6C,YAGvCA,uDAEFA,2BACAA,uCACEA,gEAEFA,iCAKNA,uCAA+C,cACNA,kCAAOA,2BAE9CA,uCAA6C,WAA7CA,CAA6C,YAGvCA,uDAEFA,2BACAA,uCACEA,gEAEFA,iCAKNA,wCAAiD,cACRA,oCAASA,2BAEhDA,uCAA6C,WAA7CA,CAA6C,YAGvCA,uDAEFA,2BACAA,uCACEA,gEAEFA,0CAhEqBA,yDAO8BA,mGAIUA,+FAaVA,2FAIUA,uFAaVA,8FAIUA,0FAaVA,gGAIUA,oODpDxDm7P,CAAuB,KEFvBG,GAAsC,MAA7C,MAAOA,EAMXp0M,kBACErsD,KAAKmwP,WAAW6H,WAAWz/O,UAAU6/O,IACnCp4P,KAAKkwP,YAAYvqP,QAAQ0yP,IACvBA,EAAWxB,WAAWuB,EAAO,GAE/Bp4P,KAAKuwP,gBAAc,EAEvB,CAEAA,iBACE,IAAIrsO,EAAQ,EAEZlkB,KAAKkwP,YAAYvqP,QAAQ6qP,IACvB,MAAMj0O,EAAMmxE,cAAcI,iBAAiB0iK,EAAGtB,cAEzCviO,MAAMpQ,KACT2H,GAAS3H,KAIb2H,EAAQg7C,WAAWh7C,EAAMwoE,QAAQ,IAEZngC,EAAE,IAAIvsD,KAAKswP,iBACnB/zO,IAAI2H,EACnB,CAAC/jB,kDA9BUsgQ,EAAsC,8DAAtCA,EAAsCl2N,4HAEnCutN,GAA2B,gCACxB3B,GAAmC,4NAHzCsK,CAAsC,+BCO7Ct7P,sCAAsF,UAAtFA,CAAsF,aAGhFA,mEACFA,2BACAA,sCACEA,gEAEFA,iGALEA,oIAGmCA,qEAAqB,oBCZ7D,IAAMu7P,GAAoB,MAA3B,MAAOA,EAKX7gQ,YAAoBuyP,YAAyB,CAE7CnpN,WACEjpC,KAAK2gQ,qBAAuB3gQ,KAAKoyP,GAAG9zN,MAAM,IAC1Ct+B,KAAKw4P,aACP,CAEAA,cACEx4P,KAAK2gQ,qBAAqBpO,WAAW,kBAAmBvyP,KAAKoyP,GAAGviP,QAAQ7P,KAAKy0P,gBAAgBv7I,YAAY,GAAG/5C,OAE5G,MAAMyhM,EAAmB5gQ,KAAKoyP,GAAG1jN,MAAM,IACvC1uC,KAAKkkB,MAAQ,EACb,UAAW2mE,KAAM7qF,KAAKy0P,gBAAgBv7I,YACpCl5G,KAAKkkB,OAAS2mE,EAAGkD,sBAAqB,GACtC6yK,EAAiBh4P,KAAK5I,KAAKoyP,GAAGviP,QAAQ,CAAE3D,MAAO2+E,EAAG3+E,MAAOwwD,UAAU,KAGrE18D,KAAK2gQ,qBAAqBpO,WAAW,cAAeqO,GACpD5gQ,KAAK2gQ,qBAAqBpO,WAAW,mBAAoBvyP,KAAKoyP,GAAGviP,QAAQ7P,KAAKkkB,QAC9ElkB,KAAK2gQ,qBAAqBvpH,SAASypH,iBAAoBl+K,UACvD3iF,KAAK2gQ,qBAAqBvpH,SAAS0pH,gBAAmBn+K,SACxD,CAEA69K,iBACExgQ,KAAK2gQ,qBAAqB38P,IAAI,mBAAmB6J,SAAS7N,KAAKy0P,gBAAgBv7I,YAAY,GAAG/5C,MAC9Fn/D,KAAK2gQ,qBAAqB38P,IAAI,oBAAoB6J,SAAS7N,KAAKkkB,OAC9ClkB,KAAK2gQ,qBAAqB38P,IAAI,eACtCozI,SAASzxI,QAAQ,CAACklF,EAAIx5E,KAC9Bw5E,EAAGh9E,SAAS7N,KAAKy0P,gBAAgBv7I,YAAY7nG,GAAOnF,MAAK,EAE7D,CAAC/L,kDAnCUugQ,GAAoB5yO,mHAApB4yO,EAAoBn2N,ymBDTjCplC,sCACEA,yCACEA,sCAAwB,UAAxBA,CAAwB,aAEkBA,6BAAIA,2BAC1CA,sCACEA,sDAIFA,+BAIJA,yCACEA,yCAWFA,oCAEAA,uCAAwB,cACyBA,+BAAKA,2BACpDA,uCACEA,qCACFA,6BAEJA,oCACFA,kCAnC6BA,2DAQjBA,sGAOiCA,sQCNhCu7P,CAAoB,+BCyB/Bv7P,uCAA2E,aAClCA,6CAAmBA,2BAE1DA,sCAA6C,UAA7CA,CAA6C,WAGvCA,sDAEFA,2BACAA,sCACEA,+DAEFA,2EANmDA,6FAIUA,oHAyDnEA,uCAA6D,aACpBA,8BAAIA,2BAE3CA,sCAA6C,UAA7CA,CAA6C,WAGvCA,sDACFA,2BACAA,sCACEA,+DAEFA,2EALmDA,+EAGUA,4ECpG9D,IAAM47P,GAAoB,MAA3B,MAAOA,EASXlhQ,YAAoBuyP,EAAgCmG,GAAhCv4P,UAAgCA,WAA0B,CAE9EipC,WACEjpC,KAAKkrJ,WAAWlrJ,KAAKkrJ,UAAWlrJ,KAAKkrJ,SACrClrJ,KAAKw4P,aACP,CAEAA,cACEx4P,KAAKghQ,aAAazO,WAAW,SAAUvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAKq2G,IAAIhV,OAAQrhG,KAAKkrJ,WAC/ElrJ,KAAKghQ,aAAazO,WAAW,eAAgBvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAKq2G,IAAII,aAAcz2G,KAAKkrJ,WAC3FlrJ,KAAKghQ,aAAazO,WAAW,oBAAqBvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAKq2G,IAAIG,kBAAmBx2G,KAAKkrJ,WACrGlrJ,KAAKghQ,aAAazO,WAAW,cAAevyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAKq2G,IAAIlW,YAAangG,KAAKkrJ,WACzFlrJ,KAAKghQ,aAAazO,WAAW,WAAYvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAKq2G,IAAI9O,SAAUvnG,KAAKkrJ,WACnFlrJ,KAAKghQ,aAAazO,WAAW,MAAOvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAKq2G,IAAIM,IAAK32G,KAAKkrJ,WACzElrJ,KAAKghQ,aAAazO,WAAW,MAAOvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAKq2G,IAAIK,IAAK12G,KAAKkrJ,UAC3E,CAEI81G,mBACF,OAAOhhQ,KAAKu1I,UAAUvxI,IAAIhE,KAAKyxP,SACjC,CAACtxP,kDA5BU4gQ,GAAoBjzO,qJAApBizO,EAAoBx2N,wzBDVjCplC,sCAAgC,UAAhCA,CAAgC,aAEWA,iCAAOA,2BAE9CA,sCAA6C,UAA7CA,CAA6C,WAGvCA,sDACFA,2BACAA,sCACEA,+DAEFA,iCAKNA,uCAAqD,cACZA,yCAAcA,2BAErDA,uCAA6C,WAA7CA,CAA6C,YAGvCA,uDAEFA,2BACAA,uCACEA,gEAEFA,iCAKNA,0CAiBAA,wCAAoD,cACXA,wCAAaA,2BAEpDA,uCAA6C,WAA7CA,CAA6C,YAGvCA,uDAEFA,2BACAA,uCACEA,gEAEFA,iCAKNA,wCAAiD,cACRA,oCAASA,2BAEhDA,uCAA6C,WAA7CA,CAA6C,YAGvCA,uDAEFA,2BACAA,uCACEA,gEAEFA,iCAKNA,wCAA4C,cACHA,+BAAIA,2BAE3CA,uCAA6C,WAA7CA,CAA6C,YAGvCA,uDACFA,2BACAA,uCACEA,gEAEFA,iCAKNA,2CAeFA,kCApHKA,mDAOsDA,kFAGUA,8EAaVA,wFAIUA,oFAORA,mEAuBFA,uFAIUA,mFAaVA,oFAIUA,gFAaVA,+EAGUA,2EAOtBA,kNC3FlC47P,CAAoB,KCDpBE,GAA8B,MAArC,MAAOA,EAMXphQ,YAAoBuyP,YAAyB,CAE7CnpN,WACEjpC,KAAKwxP,WAAWxxP,KAAKwxP,UAAWxxP,KAAKwxP,SACrCxxP,KAAKyxP,SAAWzxP,KAAKyxP,SAAWzxP,KAAKyxP,SAAW,GAChDzxP,KAAKu1I,UAAYv1I,KAAKoyP,GAAG9zN,MAAM,IAC/Bt+B,KAAKw4P,aACP,CAEAA,cACEx4P,KAAKu1I,UAAUg9G,WAAW,eAAgBvyP,KAAKoyP,GAAG9zN,MAAM,KACxDt+B,KAAKu1I,UAAUg9G,WAAW,kBAAmBvyP,KAAKoyP,GAAG9zN,MAAM,KAC3Dt+B,KAAKu1I,UAAUg9G,WAAW,kBAAmBvyP,KAAKoyP,GAAG9zN,MAAM,KAC3Dt+B,KAAKu1I,UAAUg9G,WAAW,gBAAiBvyP,KAAKoyP,GAAG9zN,MAAM,KACzDt+B,KAAKu1I,UAAUg9G,WAAW,SAAUvyP,KAAKoyP,GAAG9zN,MAAM,KAClDt+B,KAAKu1I,UAAUg9G,WAAW,SAAUvyP,KAAKoyP,GAAG9zN,MAAM,KAClDt+B,KAAKu1I,UAAUg9G,WAAW,SAAUvyP,KAAKoyP,GAAG9zN,MAAM,KAClDt+B,KAAKu1I,UAAUg9G,WAAW,UAAWvyP,KAAKoyP,GAAG9zN,MAAM,KACnDt+B,KAAKu1I,UAAUg9G,WAAW,WAAYvyP,KAAKoyP,GAAG9zN,MAAM,IACtD,CAEA4iO,qBAAqBC,GACnB,MAAMC,EAAmBphQ,KAAKu1I,UAAUvxI,IAAIm9P,GAC5C,UAAWE,KAAeD,EAAiBhqH,SACzCgqH,EAAiBhqH,SAASiqH,GAAar9P,IAAI,QAAQ6J,SAAS7N,KAAKssH,cAAc60I,GAAWE,GAAaliM,MACvGiiM,EAAiBhqH,SAASiqH,GAAar9P,IAAI,SAAS6J,SAAS7N,KAAKssH,cAAc60I,GAAWE,GAAan1P,MAE5G,CAEAs0P,iBACExgQ,KAAKkhQ,qBAAqB,gBAC1BlhQ,KAAKkhQ,qBAAqB,mBAC1BlhQ,KAAKkhQ,qBAAqB,mBAC1BlhQ,KAAKkhQ,qBAAqB,iBAC1BlhQ,KAAKkhQ,qBAAqB,UAC1BlhQ,KAAKkhQ,qBAAqB,UAC1BlhQ,KAAKkhQ,qBAAqB,UAC1BlhQ,KAAKkhQ,qBAAqB,WAC1BlhQ,KAAKkhQ,qBAAqB,WAC5B,CAAC/gQ,kDA7CU8gQ,GAA8BnzO,mHAA9BmzO,EAA8B12N,wYCT3CplC,mCAAI,SAOAA,+BACAA,qCACFA,6BAGFA,sCAAsD,WAElDA,8CAMFA,6BAGFA,8BAEAA,mCAAI,SAOAA,gCACAA,yCACFA,6BAEFA,uCAAyD,YAErDA,+CAMFA,6BAGFA,+BAEAA,oCAAI,UAOAA,gCACAA,yCACFA,6BAEFA,uCAAyD,YAErDA,+CAMFA,6BAGFA,+BAEAA,oCAAI,UAOAA,gCACAA,sCACFA,6BAEFA,uCAAuD,YAEnDA,+CAMFA,6BAGFA,+BAEAA,oCAAI,UAOAA,gCACAA,+BACFA,6BAEFA,uCAAgD,YAE5CA,+CAMFA,6BAGFA,+BAEAA,oCAAI,UAOAA,gCACAA,+BACFA,6BAEFA,uCAAgD,YAE5CA,+CAMFA,6BAGFA,+BAEAA,oCAAI,UAOAA,gCACAA,+BACFA,6BAEFA,uCAAgD,YAE5CA,+CAMFA,6BAGFA,+BAEAA,oCAAI,UAOAA,gCACAA,gCACFA,6BAEFA,uCAAiD,YAE7CA,+CAMFA,6BAGFA,+BAEAA,oCAAI,UAOAA,gCACAA,iCACFA,6BAEFA,uCAAkD,YAE9CA,+CAMFA,6BAGFA,sCAnNIA,4HAEAA,yDAMCA,+FAGCA,uEAAqB,mCAArBA,CAAqB,qCAArBA,CAAqB,yBAcvBA,+HAEAA,4DAKCA,kGAGCA,uEAAqB,sCAArBA,CAAqB,wCAArBA,CAAqB,yBAcvBA,+HAEAA,4DAKCA,kGAGCA,uEAAqB,sCAArBA,CAAqB,wCAArBA,CAAqB,yBAcvBA,6HAEAA,0DAKCA,gGAGCA,uEAAqB,oCAArBA,CAAqB,sCAArBA,CAAqB,yBAcvBA,sHAEAA,mDAKCA,yFAGCA,uEAAqB,6BAArBA,CAAqB,+BAArBA,CAAqB,yBAcvBA,sHAEAA,mDAKCA,yFAGCA,uEAAqB,6BAArBA,CAAqB,+BAArBA,CAAqB,yBAcvBA,sHAEAA,mDAKCA,yFAGCA,uEAAqB,6BAArBA,CAAqB,+BAArBA,CAAqB,yBAcvBA,uHAEAA,oDAKCA,0FAGCA,uEAAqB,8BAArBA,CAAqB,gCAArBA,CAAqB,yBAcvBA,wHAEAA,qDAKCA,2FAGCA,uEAAqB,+BAArBA,CAAqB,iCAArBA,CAAqB,uGDtMd87P,CAA8B,4BEqC7B97P,qCAA6DA,6CAAoBA,mDACjFA,qCAAwDA,oEAA2CA,mDACnGA,qCAAwDA,8DAAqCA,sDATnGA,mCAII,SAJJA,CAII,aAGEA,0CACAA,0CACAA,0CACFA,6GAHSA,0JACAA,qJACAA,sNArCfA,yCACEA,qCAAwB,QAClBA,sBAAkCA,2BACtCA,mCAAI,aAGAA,2HAAUA,0CAAiB,gBAAe,GAF5CA,6BAOFA,mCAAI,aAGAA,2HAAUA,0CAAiB,gBAAe,GAF5CA,6BAOFA,mCAAI,aAEAA,2HAAUA,yCAAc,GAD1BA,+BAQJA,yCAaFA,0FAxCMA,mEACEA,uFAGAA,sGAQAA,sGAYAA,oIAIHA,mLC7BJ,IAAMm8P,GAAuC,MAA9C,MAAOA,EAYXzhQ,YAAoBuyP,EAAgCriH,GAAhC/vI,UAAgCA,mBAJpDA,eAAW,CAIoE,CAE/EipC,WACEjpC,KAAK2uN,MAAQ3uN,KAAKoyP,GAAG9zN,MAAM,CACzBijO,UAAWvhQ,KAAKoyP,GAAG1jN,MAAM1uC,KAAKwhQ,cAEhCxhQ,KAAKyhQ,KAAK9F,aAAah2P,QAAQ,KAC7B3F,KAAK47P,mCAAiC,GAIxC,UAAWp3P,KAAKxE,KAAKyhQ,KAAKrqH,SACxBp3I,KAAKi8P,aAAaz3P,EAEtB,CAEAk9P,cAAcl9P,EAAWzC,GACvB,MAAMy6O,EAAMx8O,KAAKyhQ,KAAKrqH,SAAS5yI,GACzB23P,EAAYzuK,cAAcI,iBAAiB0uJ,EAAIx4O,IAAI,gBAAgBkI,OACnEkwP,EAAY1uK,cAAcI,iBAAiB0uJ,EAAIx4O,IAAI,gBAAgBkI,OACrEiwP,GAAaC,GACXD,GAAaC,GACf5f,EAAIx4O,IAAIjC,GAAQ8L,SAAS,IAG7B7N,KAAKi8P,YAAYz3P,EACnB,CAEAy3P,YAAYz3P,GACV,MAAMg4O,EAAMx8O,KAAKyhQ,KAAKrqH,SAAS5yI,GACzB03P,EAAcxuK,cAAcI,iBAAiB0uJ,EAAIx4O,IAAI,SAASkI,OAC9DiwP,EAAYzuK,cAAcI,iBAAiB0uJ,EAAIx4O,IAAI,gBAAgBkI,OACnEkwP,EAAY1uK,cAAcI,iBAAiB0uJ,EAAIx4O,IAAI,gBAAgBkI,OAEpEygB,MAAMuvO,IACT1f,EAAIx4O,IAAI,SAAS6J,SAASqxD,WAAWg9L,EAAYxvK,QAAQ,KAEtD//D,MAAMyvO,IACT5f,EAAIx4O,IAAI,gBAAgB6J,SAASqxD,WAAWk9L,EAAU1vK,QAAQ,KAE3D//D,MAAMwvO,IACT3f,EAAIx4O,IAAI,gBAAgB6J,SAASqxD,WAAWi9L,EAAUzvK,QAAQ,IAElE,CAEQ80K,WACN,OAAOxhQ,KAAK87P,eAAev0P,IAAI,CAACm2F,EAAIl5F,IAC3BxE,KAAKoyP,GAAG9zN,MAAM,CACnBq/D,aAAc,CAACD,EAAGC,cAClBC,aAAc,CAACF,EAAGE,cAClB1xF,MAAO,CAACwxF,EAAGxxF,MAAO,CAACwmP,kBAAe,GAAIA,kBAAe,OAG3D,CAEAmJ,0BAA0Br3P,GAExB,OAAOxE,KAAK+vI,YAAYle,YAAYtyB,iBADzBv/F,KAAK87P,eAAet3P,GAAG2vF,iBACuB/wF,IAC3D,CAEIq+P,WAEF,OADazhQ,KAAK2uN,MAAM3qN,IAAI,YAE9B,CAEA43P,oCACE,MAAQxkH,YAAap3I,KAAKyhQ,KAC1B,GAAIrqH,EAAS3yI,QAAU,EACrB,OAEF,IAAIyf,EAAQ,EAEZ,QAAS1f,EAAI,EAAGA,EAAI4yI,EAAS3yI,OAAS,EAAGD,IAAK,CAC5C,MACM63P,EAAc3uK,cAAcI,iBADvBspD,EAAS5yI,GACkCR,IAAI,SAASkI,OAEnE,GAAKygB,MAAM0vO,GAGT,OAFAn4O,GAASm4O,CAET,CAGJjlH,EAASA,EAAS3yI,OAAS,GAAGT,IAAI,SAAS6J,SAASqxD,YAAY,EAAIh7C,GAAOwoE,QAAQ,IAAK,CACtF6vK,WAAW,EACXC,uBAAuB,EACvBC,uBAAuB,IAEzBrlH,EAASA,EAAS3yI,OAAS,GAAGT,IAAI,SAAS04P,aAC7C,CAACv8P,kDApGUmhQ,GAAuCxzO,qJAAvCwzO,EAAuC/2N,4pBDXpDplC,uCAAsD,YAAtDA,CAAsD,UAAtDA,CAAsD,OAAtDA,CAAsD,QAI1CA,6BAAIA,2BACRA,mCAAIA,4BAAGA,2BACPA,mCAAIA,4BAAGA,2BACPA,oCAAIA,+BAAKA,+BAGbA,uCACEA,oDA0CFA,sCArDEA,4CAW0DA,kjBCAnDm8P,CAAuC,KCAvCK,GAAqC,MAA5C,MAAOA,EASX9hQ,YAAoBi1O,4BARZ90O,mBAAgB,IAAIooB,MAMlBpoB,eAAY,IAAI+nC,eAGxB/nC,KAAK80O,kBAAkB6kB,wBAAwBr5O,KAAK84O,GAAUp5P,KAAK45P,gBAAgBrhP,UAAWmE,IAC5F1c,KAAK65P,UAAUnwN,KAAK,CAAEj4B,KAAMiL,EAAIjL,KAAM+jO,WAAY94N,EAAI84N,YAAY,EAEtE,CAEA9tO,cACE1H,KAAK45P,cAAc9gP,OACnB9Y,KAAK45P,cAAcj2O,UACrB,CAEAi+O,yBACEr1M,EAAE,oBAAoBI,MAAM,QAC5BJ,EAAE,yBAAyBhwC,IAAIvc,KAAKw1O,YACpCx1O,KAAK80O,kBAAkBJ,cAAc,CAAEjjO,KAAMzR,KAAKyR,KAAMujO,oBAAqBh1O,KAAKg1O,qBACpF,CAAC70O,kDAxBUwhQ,GAAqC7zO,gGAArC6zO,EAAqCp3N,0TCXlDplC,oCAAK,cAC+CA,iDAAS6Q,0BAAwB,GACjF7Q,+BAA2BA,2CAC7BA,oCAFQA,mEAAiB,kCDUdw8P,CAAqC,2BEThDx8P,sDACAA,gGAeAA,oCAAsB,6CAMlBA,uHAAaA,kDAA4B,GAC3CA,4BAAuC,6CALrCA,yFAAuC,4CAAvCA,CAAuC,uCAAvCA,CAAuC,kDCPtC,IAAM08P,GAAgC,MAAvC,MAAOA,EAMXhiQ,YACUuyP,EACAmG,EACAliB,GAFAr2O,UACAA,YACAA,wBALVA,eAAW,EAOTA,KAAKg1O,oBAAsB,IAAIsqB,EACjC,CAEAr2N,WACEjpC,KAAKw4P,cACLx4P,KAAKktI,iBAAiBoK,oBACxB,CAEAkhH,cACEx4P,KAAKy4P,wBAAwBlG,WAAW,OAAQvyP,KAAKoyP,GAAGviP,QAAQ7P,KAAK+0F,cAAc3xF,OACnFpD,KAAKy4P,wBAAwBlG,WAC3B,sBACAvyP,KAAKoyP,GAAGviP,UAAU7P,KAAK+0F,cAAc4D,sBAEvC34F,KAAKy4P,wBAAwBlG,WAAW,mBAAoBvyP,KAAKoyP,GAAGviP,QAAQ7P,KAAK+0F,cAAc6D,mBAC/F54F,KAAKy4P,wBAAwBlG,WAAW,eAAgBvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAcoD,cAAc,IAC3Gn4F,KAAKy4P,wBAAwBlG,WAAW,cAAevyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAcqD,aAAa,IACzGp4F,KAAKy4P,wBAAwBlG,WAAW,eAAgBvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAcsD,cAAc,IAC3Gr4F,KAAKy4P,wBAAwBlG,WAAW,cAAevyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAcuD,aAAa,IACzGt4F,KAAKy4P,wBAAwBlG,WAAW,eAAgBvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAcwD,cAAc,IAC3Gv4F,KAAKy4P,wBAAwBlG,WAAW,cAAevyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAcyD,aAAa,IACzGx4F,KAAKy4P,wBAAwBlG,WAAW,cAAevyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAc0D,aAAa,IACzGz4F,KAAKy4P,wBAAwBlG,WAAW,aAAcvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAc2D,YAAY,GACzG,CAEIopK,eACF,YAAK/sK,cAAc4D,oBAAsB34F,KAAKy4P,wBAAwBz0P,IAAI,uBAAuBkI,MAC1FlM,KAAK+0F,cAAc4D,mBAC5B,CAEI8/J,8BACF,OAAOz4P,KAAKktI,iBAAiBmK,cAC/B,CAEAmjH,eACEjuM,EAAE,aAAaymH,SAAS,UACxBhzK,KAAKy6P,UAAYz6P,KAAKy6P,QACxB,CAEAP,qBAAqBx9O,GACI,4BAAnBA,EAAI84N,aACNx1O,KAAKy4P,wBAAwBz0P,IAAI,oBAAoB6J,SAAS6O,EAAIjL,MAClEzR,KAAK+0F,cAAc6D,iBAAmB54F,KAAKy4P,wBAAwBz0P,IAAI,oBAAoBkI,MAC3FlM,KAAKq2O,iBAAiBn9F,wBAE1B,CAAC/4I,kDAxDU0hQ,GAAgC/zO,uLAAhC+zO,EAAgCt3N,w0CDb7CplC,wCAAwBA,8BAAKA,2BAC7BA,oCAAsEA,iDAAS6Q,gBAAc,GAC3F7Q,uCACAA,uCACFA,2BAEAA,sCAAgG,UAAhGA,CAAgG,aAE5BA,qDAA2BA,2BAC3FA,sCAAsB,cAElBA,oCACFA,6BAGFA,mCACFA,2BAEAA,2CAUAA,kCAEAA,wCAAqD,eACZA,2CAAgBA,2BACvDA,wCAA6C,YAA7CA,CAA6C,aAGvCA,wDAEFA,2BACAA,wCACEA,iEAEFA,iCAKNA,wCAAoD,eACXA,0CAAeA,2BACtDA,wCAA6C,YAA7CA,CAA6C,aAGvCA,wDAEFA,2BACAA,wCACEA,iEAEFA,iCAKNA,kCAEAA,wCAAqD,eACZA,2CAAgBA,2BACvDA,wCAA6C,YAA7CA,CAA6C,aAGvCA,wDAEFA,2BACAA,wCACEA,iEAEFA,iCAKNA,wCAAoD,eACXA,0CAAeA,2BACtDA,wCAA6C,YAA7CA,CAA6C,aAGvCA,wDAEFA,2BACAA,wCACEA,iEAEFA,iCAKNA,kCAEAA,wCAAqD,eACZA,2CAAgBA,2BACvDA,wCAA6C,YAA7CA,CAA6C,aAGvCA,wDAEFA,2BACAA,wCACEA,iEAEFA,iCAKNA,wCAAoD,eACXA,0CAAeA,2BACtDA,wCAA6C,YAA7CA,CAA6C,aAGvCA,wDAEFA,2BACAA,wCACEA,iEAEFA,iCAKNA,kCAEAA,wCAAoD,eACXA,0CAAeA,2BACtDA,wCAA6C,YAA7CA,CAA6C,aAGvCA,wDAEFA,2BACAA,wCACEA,iEAEFA,iCAKNA,wCAAmD,eACVA,yCAAcA,2BACrDA,wCAA6C,YAA7CA,CAA6C,aAGvCA,wDAEFA,2BACAA,wCACEA,iEAEFA,0CA7JFA,oEACAA,mEAGoDA,uFAYlDA,mEAiBmDA,kGAIUA,8FAYVA,iGAIUA,6FAcVA,kGAIUA,8FAYVA,iGAIUA,6FAcVA,kGAIUA,8FAYVA,iGAIUA,6FAcVA,iGAIUA,6FAYVA,gGAIUA,8QChJxD08P,CAAgC,2BCTzC18P,sDACAA,gGAeFA,oCAA+B,oCAM3BA,uHAAaA,gDAA0B,GACzCA,4BAA8B,6CAL5BA,uFAAqC,4CAArCA,CAAqC,6BAArCA,CAAqC,kCCPpC,IAAM48P,GAA+B,MAAtC,MAAOA,EAQXliQ,YACUuyP,EACAmG,EACAxoH,EACAsmG,GAHAr2O,UACAA,YACAA,mBACAA,wBAPVA,eAAW,EASTA,KAAKg1O,oBAAsB,IAAIyqB,EACjC,CAEAx2N,WACEjpC,KAAKw4P,cACLx4P,KAAK2xP,wBACL3xP,KAAKktI,iBAAiBoK,oBACxB,CAEQkhH,cACNx4P,KAAKu1I,UAAUg9G,WACb,wBACAvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAcqE,uBAAuB,IAE9Dp5F,KAAKu1I,UAAUg9G,WAAW,sBAAuBvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAcsE,qBAAqB,IAC3Gr5F,KAAKu1I,UAAUg9G,WAAW,aAAcvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAcmE,YAAY,IACzFl5F,KAAKu1I,UAAUg9G,WAAW,WAAYvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAcoE,UAAU,IACrFn5F,KAAKu1I,UAAUg9G,WAAW,oBAAqBvyP,KAAKoyP,GAAGviP,QAAQ7P,KAAK+0F,cAAcuE,oBAClFt5F,KAAKu1I,UAAUg9G,WAAW,iBAAkBvyP,KAAKoyP,GAAGviP,QAAQ7P,KAAK+0F,cAAcwE,iBAC/Ev5F,KAAKu1I,UAAUg9G,WAAW,gBAAiBvyP,KAAKoyP,GAAGviP,QAAQ7P,KAAK+0F,cAAcyE,eAChF,CAEAmmK,mBAAmBjjP,GACM,kBAAnBA,EAAI84N,aACNx1O,KAAKu1I,UAAUvxI,IAAI,kBAAkB6J,SAAS6O,EAAIjL,MAClDzR,KAAK+0F,cAAcwE,eAAiB78E,EAAIjL,KACxCzR,KAAKq2O,iBAAiBn9F,wBAE1B,CAEAshH,eACEjuM,EAAE,WAAWymH,SAAS,UACtBhzK,KAAKy6P,UAAYz6P,KAAKy6P,QACxB,CAEIllH,gBACF,OAAOv1I,KAAKktI,iBAAiBmK,cAC/B,CAEI/9C,wBACF,QAASt5F,KAAKu1I,UAAUvxI,IAAI,qBAAqBkI,KACnD,CAEI4hH,oBACF,OAAO9tH,KAAK+vI,YAAYle,YAAYhP,aAAaqL,oBAAoB,MACvE,CAEAyjI,sBAAsBzmP,GAChBA,IACFlL,KAAK+0F,cAAcyE,cAAgBtuF,GAEjClL,KAAK+0F,cAAcyE,gBACrBx5F,KAAKy0P,gBAAkBz0P,KAAK+vI,YAAYle,YAAYhP,aAAaoL,sBAC/DjuH,KAAK+0F,cAAcyE,eAErBx5F,KAAKu1I,UAAUvxI,IAAI,iBAAiB6J,SAAS7N,KAAK+0F,cAAcyE,eAEpE,CAACr5F,kDAvEU4hQ,GAA+Bj0O,yNAA/Bi0O,EAA+Bx3N,+xCDf5CplC,oCAAK,aACkCA,4BAAGA,2BAExCA,oCAAoEA,iDAAS6Q,gBAAc,GACzF7Q,uCACAA,uCACFA,6BAGFA,sCAAgF,UAAhFA,CAAgF,aAETA,mDAAyBA,2BAC5FA,uCAAsB,cAElBA,oCACFA,6BAGFA,mCACFA,2BACAA,2CASAA,kCAEAA,wCAA8D,eACrBA,oDAAyBA,2BAEhEA,wCAA6C,YAA7CA,CAA6C,aAGvCA,wDAEFA,2BACAA,wCACEA,iEAIFA,iCAKNA,wCAA4D,eACnBA,wDAA6BA,2BAEpEA,wCAA6C,YAA7CA,CAA6C,aAGvCA,wDAEFA,2BACAA,wCACEA,iEAIFA,iCAKNA,wCAAmD,eACVA,uCAAYA,2BAEnDA,wCAA6C,YAA7CA,CAA6C,aAGvCA,wDAEFA,2BACAA,wCACEA,iEAEFA,iCAKNA,wCAAiD,eACRA,oCAASA,2BAEhDA,wCAA6C,YAA7CA,CAA6C,aAGvCA,wDAEFA,2BACAA,wCACEA,iEAEFA,iCAKNA,uCAAwB,eACiBA,wCAAaA,2BAEpDA,wCAAsB,YAAtBA,CAAsB,YAAtBA,CAAsB,4BAOdA,+DAAsB6Q,0BAA6B,GACrD7Q,4CA9GFA,oEACAA,mEAIHA,yEAWGA,4EAiBmDA,2GAM/CA,uGAa+CA,yGAM/CA,qGAa+CA,gGAIUA,4FAaVA,8FAIUA,0FAezDA,iFAA+B,wVChG9B48P,CAA+B,4BCOxC58P,qCAAgD,UACoCA,+CAAsBA,wDA4ElGA,uCAAgF,cACvCA,0CAAgBA,2BAEvDA,uCAA6C,WAA7CA,CAA6C,YAGvCA,uDAEFA,2BACAA,uCACEA,gEAIFA,2EARmDA,oGAM/CA,2HA0MdA,uCACEA,8CACFA,sEADmBA,gHA3BvBA,uCAAwF,UAAxFA,CAAwF,SAAxFA,CAAwF,UAGIA,wCAAeA,6BAGvGA,qCAAwB,UAC8DA,uCAAcA,6BAGpGA,qCAAwB,UAC4DA,qCAAWA,+BAIjGA,wCAAuD,aAEnDA,mDACFA,2BAEAA,wCACEA,2DAGFA,2BAEAA,2CAGFA,uEAZyBA,sFAKnBA,+DAAiB,mCAIfA,kGAoMAA,sCAA6E,WAA7EA,CAA6E,WAEdA,oDAA2BA,2BACtFA,8BACFA,2BACAA,wCAA+EA,+BAAKA,2BAEpFA,uCAAsB,cAAtBA,CAAsB,YAEVA,iCAAOA,wCAJZA,kGAoCHA,qCACGA,6CAAoBA,sDARzBA,wCAOEA,2CAGFA,yGAHSA,uQA5BbA,uCAG+E,aAE3EA,sBACFA,2BAEAA,uCACEA,gEAYAA,2CAWFA,iFA5BOA,4EACLA,gGAGoBA,8EAGlBA,qKAYCA,uNC3gBd,IAAM68P,GAAqB,MAA5B,MAAOA,EAYXniQ,YACUkwI,EACAqiH,EACAmG,EACAt0H,GAHAjkI,mBACAA,UACAA,YACAA,+BAPSA,kCAA+B0tF,cAAcgK,MAAMuqK,sBAAsBC,QAClFliQ,sCAAmCw0F,4BAO1C,CAEHvrD,WACEjpC,KAAKw4P,cACLx4P,KAAKmiQ,2BACLniQ,KAAK2xP,wBACL3xP,KAAKktI,iBAAiBoK,oBACxB,CAEAjrF,kBACErsD,KAAKy4P,wBAAwBz0P,IAAI,mBAAmB23P,aAAapjP,UAAUO,IACrE9Y,KAAKk5G,cACPl5G,KAAKoiQ,eAAe3N,gBAAkBz0P,KAAKy0P,gBAC3Cz0P,KAAKk5G,YAAYu7I,gBAAkBz0P,KAAKy0P,gBACxCz0P,KAAKqiQ,cAAc/1I,cAAgBtsH,KAAKy0P,gBACpCz0P,KAAKk5G,YAAYynJ,uBACnB3gQ,KAAKoiQ,eAAe5B,iBACpBxgQ,KAAKk5G,YAAYsnJ,iBACjBxgQ,KAAKqiQ,cAAc7B,kBAAc,EAIzC,CAEA7O,sBAAsBzmP,GAChBA,IACFlL,KAAK+0F,cAAcX,gBAAkBlpF,GAEnClL,KAAK+0F,cAAcX,kBACrBp0F,KAAKy0P,gBAAkBz0P,KAAK+vI,YAAYle,YAAYhP,aAAaoL,sBAC/DjuH,KAAK+0F,cAAcX,iBAErBp0F,KAAKy4P,wBAAwBz0P,IAAI,mBAAmB6J,SAAS7N,KAAK+0F,cAAcX,iBAChFp0F,KAAKktI,iBAAiBoK,qBAE1B,CAEAkhH,cACEx4P,KAAKy4P,wBAAwBlG,WAAW,kBAAmBvyP,KAAKoyP,GAAGviP,QAAQ7P,KAAK+0F,cAAcX,kBAG9Fp0F,KAAKy4P,wBAAwBlG,WAAW,OAAQvyP,KAAKoyP,GAAGviP,QAAQ7P,KAAK+0F,cAAc3xF,OACnFpD,KAAKy4P,wBAAwBlG,WAC3B,2BACAvyP,KAAKoyP,GAAGviP,QAAQ7P,KAAK+0F,cAAcgS,2BAErC/mG,KAAKy4P,wBAAwBlG,WAAW,aAAcvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAcgF,aAC3F/5F,KAAKy4P,wBAAwBlG,WAC3B,mBACAvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAciS,kBAAkB,IAEzDhnG,KAAKy4P,wBAAwBlG,WAAW,iBAAkBvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAc+R,iBAC/F9mG,KAAKy4P,wBAAwBlG,WAAW,eAAgBvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAcwC,eAC7Fv3F,KAAKy4P,wBAAwBlG,WAAW,eAAgBvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAcuC,cAAc,IAI3Gt3F,KAAKy4P,wBAAwBlG,WAAW,YAAavyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAc6B,YAC1F52F,KAAKy4P,wBAAwBlG,WAAW,UAAWvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAc8B,UACxF72F,KAAKy4P,wBAAwBlG,WAC3B,oBACAvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAciC,mBAAmB,IAE1Dh3F,KAAKy4P,wBAAwBlG,WAAW,YAAavyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAckC,WAAW,IACrGj3F,KAAKy4P,wBAAwBlG,WAAW,iBAAkBvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAcmC,iBAC/Fl3F,KAAKy4P,wBAAwBlG,WAAW,aAAcvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAcoC,YAAY,IAGvGn3F,KAAKy4P,wBAAwBlG,WAAW,mBAAoBvyP,KAAKoyP,GAAGviP,QAAQ7P,KAAK+0F,cAAcqK,mBAC/Fp/F,KAAKy4P,wBAAwBlG,WAAW,oBAAqBvyP,KAAKoyP,GAAGviP,QAAQ7P,KAAK+0F,cAAcqS,oBAChGpnG,KAAKy4P,wBAAwBlG,WAAW,oBAAqBvyP,KAAKoyP,GAAGviP,QAAQ7P,KAAK+0F,cAAcsK,oBAChGr/F,KAAKy4P,wBAAwBlG,WAC3B,WACAvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAcqC,UAAU,GAAO,GAAO,IAE/Dp3F,KAAKy4P,wBAAwBlG,WAC3B,cACAvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAcsC,aAAa,GAAO,GAAO,IAElEr3F,KAAKy4P,wBAAwBlG,WAC3B,uBACAvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAc+L,sBAAsB,GAAO,GAAO,IAE3E9gG,KAAKy4P,wBAAwBlG,WAC3B,kBACAvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAc8R,iBAAiB,GAAO,GAAO,IAEtE7mG,KAAKsiQ,2BAGLtiQ,KAAKy4P,wBAAwBlG,WAAW,cAAevyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAc8F,aAAa,IACzG76F,KAAKy4P,wBAAwBlG,WAC3B,oBACAvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAc0R,oBAEvCzmG,KAAKy4P,wBAAwBlG,WAAW,gBAAiBvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAc2R,eAAe,IAC7G1mG,KAAKy4P,wBAAwBlG,WAAW,eAAgBvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAckF,eAC7Fj6F,KAAKuiQ,gBACDviQ,KAAKktI,iBAAiBmK,eAAerzI,IAAI,gBAAgB2+E,UACzD3iF,KAAKktI,iBAAiBmK,eAAerzI,IAAI,gBAAgBovP,SAC7DpzP,KAAKy4P,wBAAwBlG,WAC3B,oBACAvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAcmF,mBAEzC,CAEAioK,2BACEniQ,KAAKy4P,wBAAwBlG,WAC3B,2BACAvyP,KAAKoyP,GAAG1jN,MAAM1uC,KAAKwiQ,8BAEvB,CAEAC,yBAEIziQ,KAAKikI,wBAAwBzJ,eAC3Bx6H,KAAK+0F,cAAc7pF,GAFnBlL,KAAK0iQ,iBAGLzzK,6BAGiEA,qBAErEjvF,KAAKikI,wBAAwBtJ,oBAAoB36H,KAAK+0F,cAAc7pF,GACtE,CAEAo3P,2BACgC,eAA1BtiQ,KAAKo/F,kBAAqCp/F,KAAKonG,kBAAkBl7F,OACnElM,KAAKonG,kBAAkBzkB,UACvB3iF,KAAKq/F,kBAAkB1c,WACY,eAA1B3iF,KAAKo/F,mBACdp/F,KAAKonG,kBAAkBgsJ,SACvBpzP,KAAKq/F,kBAAkB+zJ,SAE3B,CAEAuP,0BACE3iQ,KAAKonG,kBAAkBl7F,OAAmC,eAA1BlM,KAAKo/F,iBACjCp/F,KAAKq/F,kBAAkB1c,UACvB3iF,KAAKq/F,kBAAkB+zJ,QAC7B,CAEAwP,qBACE5iQ,KAAK+0F,cAAcsK,kBAAoBr/F,KAAKq/F,kBAAkBnzF,KAChE,CAEA2vP,0BAA0BxqP,GACxB,OAAIrR,KAAK+0F,cACA/0F,KAAK+0F,cAAciN,kCAAkC3wF,GAGvD,EACT,CAEQmxP,6BACN,OAAOxiQ,KAAK+0F,cAAcoS,yBAAyB5/F,IAAIm2F,GAC9C,IAAIk4J,aAAU,CACnB1pP,MAAO,IAAI2pP,eAAgCn4J,EAAGxxF,MAAO,CAACwmP,2BAG5D,CAEAmQ,yBAA0B,CAEtB/0I,oBACF,OAAO9tH,KAAK+vI,YAAYle,YAAYhP,aAAaqL,oBAAoB,UACvE,CAEIuqI,8BACF,OAAOz4P,KAAKktI,iBAAiBmK,cAC/B,CAEIj4C,uBACF,OAAOp/F,KAAKktI,iBAAiBmK,eAAerzI,IAAI,oBAAoBkI,KACtE,CAEIk7F,wBACF,OAAOpnG,KAAKktI,iBAAiBmK,eAAerzI,IAAI,oBAClD,CAEIq7F,wBACF,OAAOr/F,KAAKktI,iBAAiBmK,eAAerzI,IAAI,oBAClD,CAEI0+P,uBACF,OAAO1iQ,KAAKktI,iBAAiBmK,eAAerzI,IAAI,4BAA4BkI,KAC9E,CAEI42P,wCACF,OAAO9iQ,KAAKy4P,wBAAwBz0P,IAAI,2BAC1C,CAEIu+P,sBACF,OAAOviQ,KAAK+0F,cAAc+F,YAAcnG,SAC1C,CAACx0F,kDAlNU6hQ,GAAqBl0O,yNAArBk0O,EAAqBz3N,0FAIrB+1N,GAAuB,2BACvBI,GAAoB,2BACpBO,GAA8B,gtKD5B3C97P,sCAA2C,UAA3CA,CAA2C,UAA3CA,CAA2C,aAGWA,qCAAWA,2BAC3DA,sCAAsB,0BAIlBA,+DAAsB6Q,0BAA6B,GAErD7Q,iCAINA,8BACAA,qCAAiE,SAAjEA,CAAiE,UAEmCA,iCAAOA,6BAEzGA,sCAAwB,WACsDA,mCAASA,6BAEvFA,0CAIAA,sCAAwB,WAC2DA,uCAAYA,6BAG/FA,sCAAwB,WACkDA,mCAASA,6BAGnFA,sCAAwB,WAEpBA,iCACAA,oCACFA,+BAIJA,wCAAuD,YAAvDA,CAAuD,YAAvDA,CAAuD,WAAvDA,CAAuD,WAAvDA,CAAuD,eAKyBA,uDAA4BA,2BAClGA,wCAAsB,cAAtBA,CAAsB,eAMhBA,kDAAU6Q,0BAAwB,GAJpC7Q,iCAQNA,wCACEA,wCAAmD,eACVA,4CAAiBA,2BAExDA,wCAA6C,YAA7CA,CAA6C,aAGvCA,wDAEFA,2BACAA,wCACEA,iEAIFA,iCAKNA,wCAAyD,eAChBA,8CAAmBA,2BAE1DA,wCAA6C,YAA7CA,CAA6C,aAGvCA,wDAIFA,2BACAA,wCACEA,iEAIFA,iCAKNA,2CAmBAA,+BACAA,uCAAqBA,6BAAGA,2BAExBA,wCAAqD,eACZA,yCAAcA,2BAErDA,wCAA6C,YAA7CA,CAA6C,aAGvCA,wDAEFA,2BACAA,wCACEA,iEAIFA,iCAINA,wCAAqD,eACZA,yCAAcA,2BAErDA,wCAA6C,YAA7CA,CAA6C,aAGvCA,wDAEFA,2BACAA,wCACEA,iEAIFA,iCAIRA,oCACFA,+BAGJA,wCAA6D,YAA7DA,CAA6D,WAA7DA,CAA6D,YAGlCA,8BAAIA,2BACzBA,wCACEA,wCAAkD,eACTA,iCAAMA,2BAE7CA,wCAA6C,YAA7CA,CAA6C,aAGvCA,wDAEFA,2BACAA,wCACEA,iEAIFA,iCAKNA,wCAAgD,eACPA,oCAASA,2BAEhDA,wCAA6C,YAA7CA,CAA6C,aAGvCA,wDAEFA,2BACAA,wCACEA,kEAEFA,iCAKNA,yCAA0D,gBACjBA,gCAAIA,2BAE3CA,yCAA6C,aAA7CA,CAA6C,cAGvCA,yDAIFA,2BACAA,yCACEA,kEAIFA,iCAKNA,yCAAkD,gBACTA,kCAAMA,2BAE7CA,yCAA6C,aAA7CA,CAA6C,cAGvCA,yDAEFA,2BACAA,yCACEA,kEAIFA,iCAKNA,gCACAA,wCAAqBA,gCAAKA,2BAE1BA,yCAAuD,gBACdA,4CAAgBA,2BAEvDA,yCAA6C,aAA7CA,CAA6C,cAGvCA,yDAEFA,2BACAA,yCACEA,kEAIFA,iCAKNA,yCAAmD,gBACVA,kCAAMA,2BAE7CA,yCAA6C,aAA7CA,CAA6C,cAGvCA,yDAEFA,2BACAA,yCACEA,kEAIFA,iCAIRA,oCACFA,+BAIJA,6CAgCAA,yCAA+D,aAA/DA,CAA+D,YAA/DA,CAA+D,YAA/DA,CAA+D,gBAIgBA,8CAAkBA,2BACzFA,wCAAsB,iBAGlBA,kDAAU6Q,4BAA0B,GAGpC7Q,4CAA2BA,sCAAWA,2BACtCA,4CAA2BA,qCAAUA,iCAI3CA,wCAAwB,gBACsCA,sCAAUA,6BAExEA,wCAAwB,gBACyCA,8CAAkBA,2BAEjFA,yCAAsB,eAAtBA,CAAsB,gBAMhBA,kDAAU6Q,2BAAyB,GAJrC7Q,iCASNA,wCAAwB,gBACuCA,gDAAoBA,2BACjFA,wCAAsB,iBAIlBA,kDAAU6Q,sBAAoB,GAE9B7Q,4CAAsBA,gCAAKA,2BAC3BA,4CAAsBA,gCAAKA,iCAKjCA,sEAMAA,wCACEA,mCACAA,2CAA4DA,wCAAYA,6BAE1EA,yCACEA,yCAAiD,gBACRA,kDAAsBA,2BAE7DA,yCAA6C,aAA7CA,CAA6C,cAGvCA,yDAEFA,2BACAA,yCACEA,kEAEFA,2BACAA,yCACEA,kEAIFA,iCAKNA,yCAAoD,gBACXA,yCAAaA,2BAEpDA,yCAA6C,aAA7CA,CAA6C,cAGvCA,yDAEFA,2BACAA,yCACEA,kEAIFA,2BACAA,yCACEA,kEAIFA,iCAKNA,yCAA6D,gBACpBA,kDAAsBA,2BAE7DA,yCAA6C,aAA7CA,CAA6C,cAGvCA,yDAIFA,2BACAA,yCACEA,kEAIFA,2BACAA,yCACEA,kEAKFA,iCAKNA,yCAAwD,gBACfA,4CAAgBA,2BAEvDA,yCAA6C,aAA7CA,CAA6C,cAGvCA,yDAIFA,2BACAA,yCACEA,kEAIFA,2BACAA,yCACEA,kEAKFA,iCAIRA,oCACFA,+BAGJA,yCAA2D,aAA3DA,CAA2D,YAA3DA,CAA2D,aAGhCA,mCAAQA,2BAC7BA,yCACEA,yCAAoD,gBACXA,yCAAaA,2BAEpDA,yCAA6C,aAA7CA,CAA6C,cAGvCA,yDAEFA,2BACAA,yCACEA,kEAIFA,iCAKNA,yCACEA,6CAaAA,4CAkCFA,2BAEAA,wCAAqBA,gCAAKA,2BAE1BA,yCAA0D,gBACjBA,gDAAoBA,2BAE3DA,yCAA6C,aAA7CA,CAA6C,cAGvCA,yDAIFA,2BACAA,yCACEA,kEAIFA,iCAKNA,yCAAsD,gBACbA,0CAAcA,2BAErDA,yCAA6C,aAA7CA,CAA6C,cAGvCA,yDAEFA,2BACAA,yCACEA,kEAIFA,iCAKNA,wCAAqBA,gCAAKA,2BAE1BA,yCAAqD,gBACZA,0CAAcA,2BAErDA,yCAA6C,aAA7CA,CAA6C,cAGvCA,yDAEFA,2BACAA,yCACEA,kEAIFA,iCAKNA,wCAAqBA,sCAAWA,2BAEhCA,yCAA0D,gBACjBA,gDAAoBA,2BAE3DA,yCAA6C,aAA7CA,CAA6C,cAGvCA,yDAIFA,2BACAA,yCACEA,kEAIFA,iCAIRA,oCAEAA,wCACEA,+DACiC,uCAGnCA,iCAINA,yCAA4D,cAExDA,4DACFA,wCAjpBDA,8DAMKA,iFAA+B,qCAgBhCA,0EA2C4DA,iGAM/CA,4FAeAA,sGAMAA,kGAOeA,2EA4BgCA,mGAM/CA,8FAY+CA,kGAM/CA,8FAqB+CA,gGAM/CA,2FAa+CA,6FAIUA,yFAezDA,uGAMAA,mGAa+CA,+FAM/CA,2FAgB+CA,qGAM/CA,gGAa+CA,gGAM/CA,4FAWZA,0EAgFEA,wGAAqD,wEAArDA,CAAqD,6DAgBIA,+FAIUA,0FAMzDA,mEAAqB,0CAa0BA,iGAM/CA,6FAMAA,mEAAqB,6CAerBA,0GAMAA,sGAMAA,wGAAwD,kBAAxDA,CAAwD,sDAgBxDA,qGAMAA,iGAMAA,wGAAwD,kBAAxDA,CAAwD,iDAsBTA,kGAM/CA,6FAOmBA,uFACFA,qGAgBRA,wGA2CTA,uGAMAA,mGAa+CA,mGAM/CA,+FAe+CA,kGAM/CA,8FAiBAA,uGAMAA,mGASsBA,uFAAqC,iCAEvCA,uFAAqC,iCAQ1CA,oYC1nBxB68P,CAAqB,KCpB3B,MAAMe,GAAmC,CAC9C,CAAE3yC,MAAO,WAAYzlN,KAAM,WAAY4rD,KAAM,IAC7C,CAAE65J,MAAO,mBAAoBzlN,KAAM,WAAY4rD,KAAM,IACrD,CAAE65J,MAAO,mBAAoBzlN,KAAM,WAAY4rD,KAAM,IACrD,CAAE65J,MAAO,kBAAmBzlN,KAAM,WAAY4rD,KAAM,IACpD,CAAE65J,MAAO,cAAezlN,KAAM,WAAY4rD,KAAM,IAChD,CAAE65J,MAAO,YAAazlN,KAAM,WAAY4rD,KAAM,IAC9C,CAAE65J,MAAO,iBAAkBzlN,KAAM,WAAY4rD,KAAM,IACnD,CAAE65J,MAAO,iBAAkBzlN,KAAM,WAAY4rD,KAAM,IACnD,CAAE65J,MAAO,gBAAiBzlN,KAAM,WAAY4rD,KAAM,IAClD,CAAE65J,MAAO,YAAazlN,KAAM,WAAY4rD,KAAM,IAC9C,CAAE65J,MAAO,oBAAqBzlN,KAAM,WAAY4rD,KAAM,IACtD,CAAE65J,MAAO,oBAAqBzlN,KAAM,WAAY4rD,KAAM,IACtD,CAAE65J,MAAO,mBAAoBzlN,KAAM,WAAY4rD,KAAM,IACrD,CAAE65J,MAAO,eAAgBzlN,KAAM,WAAY4rD,KAAM,IACjD,CAAE65J,MAAO,sBAAuBzlN,KAAM,WAAY4rD,KAAM,IACxD,CAAE65J,MAAO,sBAAuBzlN,KAAM,WAAY4rD,KAAM,IACxD,CAAE65J,MAAO,qBAAsBzlN,KAAM,WAAY4rD,KAAM,IACvD,CAAE65J,MAAO,iBAAkBzlN,KAAM,WAAY4rD,KAAM,KCf/C,MAAOysM,WAAwB/J,GACnCp5P,cACEC,MAAM0nG,GACR,CAESsuI,qBACP,OAAOh2O,MAAMg2O,qBAAqBr7N,OAAOsoP,GAC3C,ECCK,IAAME,GAAY,MAAnB,MAAOA,EAKXpjQ,YAAoBw2O,2BAClBr2O,KAAKg1O,oBAAsB,IAAIguB,EACjC,CAEA/I,gBAAgBv9O,GACS,kBAAnBA,EAAI84N,aACNx1O,KAAK+0F,cAAcgT,YAAcrrF,EAAIjL,KACrCzR,KAAKq2O,iBAAiBn9F,wBAE1B,CAAC/4I,kDAdU8iQ,GAAYn1O,gGAAZm1O,EAAY14N,y6DCbzBplC,qCAAmE,SAAnEA,CAAmE,SAEiCA,gCAAOA,6BAEzGA,qCAAwB,SACsDA,kCAASA,6BAEvFA,qCAAwB,SACsDA,kCAASA,6BAEvFA,sCAAwB,UAC2DA,uCAAYA,6BAE/FA,sCAAwB,UACmEA,yCAAcA,6BAGzGA,sCAAwB,UAEpBA,gCACAA,oCACFA,+BAIJA,wCAAuD,YAAvDA,CAAuD,YAAvDA,CAAuD,YAAvDA,CAAuD,YAAvDA,CAAuD,eAKoCA,4CAAiBA,2BAClGA,6CAEFA,2BACAA,wCAAwB,eACsDA,yCAAcA,2BAC1FA,6CAEFA,2BAEAA,+BACAA,uCAAqBA,6BAAGA,2BACxBA,wCAAwB,eACsDA,yCAAcA,2BAC1FA,6CACFA,2BACAA,wCAAwB,eAEpBA,8CACFA,2BACAA,6CAEFA,2BACAA,wCAAwB,eAEpBA,gDACFA,2BACAA,6CACFA,2BACAA,wCAAwB,eACsDA,yCAAcA,2BAC1FA,6CAEFA,iCAINA,wCAA6D,YAA7DA,CAA6D,YAA7DA,CAA6D,YAGlCA,+BAAKA,2BAC1BA,wCAAwB,eAC2DA,+CAAoBA,2BACrGA,6CACFA,2BAEAA,wCAAwB,eACuDA,0CAAeA,2BAC5FA,6CAEFA,2BACAA,qDAA+E,6BAEjFA,+BAGJA,wCAA6D,YAA7DA,CAA6D,YAA7DA,CAA6D,YAGlCA,8BAAIA,2BAEzBA,wCAAwB,eACiDA,oCAASA,2BAChFA,6CACFA,2BACAA,wCAAwB,eACuDA,sCAAWA,2BACxFA,6CACFA,2BACAA,wCAAwB,eACmDA,iCAAMA,2BAC/EA,6CACFA,2BACAA,wCAAwB,eAC2DA,+BAAIA,2BACrFA,6CAEFA,2BACAA,wCAAwB,eACmDA,iCAAMA,2BAC/EA,6CACFA,2BACAA,wCAAwB,eACmDA,iCAAMA,2BAC/EA,6CACFA,2BAEAA,+BACAA,uCAAqBA,+BAAKA,2BAE1BA,wCAAwB,eACwDA,4CAAgBA,2BAC9FA,8CACFA,2BACAA,yCAAwB,gBACoDA,kCAAMA,2BAChFA,8CACFA,iCAINA,yCAA+D,WAA/DA,CAA+D,eAEmBA,iCAAMA,6BAEtFA,yCAA6B,aAA7BA,CAA6B,gBAE+CA,kDAAsBA,2BAC9FA,8CACFA,2BACAA,yCAAwB,gBACqDA,yCAAaA,2BACxFA,8CAEFA,2BACAA,yCAAwB,gBACoDA,wCAAYA,2BACtFA,8CAEFA,2BACAA,yCAAwB,gBACoDA,wCAAYA,2BACtFA,8CAEFA,+BAGJA,yCAAmE,aAAnEA,CAAmE,gBAECA,iDAAqBA,2BACrFA,yCAAsB,eAAtBA,CAAsB,gBAE6BA,6FAA/CA,+BAIJA,oCACFA,2BAEAA,sCAAK,sCAMDA,sDAAa6Q,oBAAuB,GACtC7Q,+BAIJA,yCAA+D,cAE3DA,4DACFA,sCAzJaA,6EACQA,6EAA6B,yCAA7BA,CAA6B,eAIrCA,uEACQA,0EAA0B,sCAA1BA,CAA0B,eAOlCA,uEACQA,0EAA0B,uCAGlCA,kFAGQA,qFAAqC,kDAI7CA,6EAGQA,gFAAgC,6CAGxCA,uEACQA,0EAA0B,sCAA1BA,CAA0B,eAWlCA,4EACQA,+EAA+B,4CAIvCA,wEACQA,2EAA2B,cAA3BA,CAA2B,wCAGrBA,iFACFA,iFAUZA,kEACQA,qEAAqB,kCAG7BA,wEACQA,2EAA2B,wCAGnCA,oEACQA,uEAAuB,oCAG/BA,4EACQA,+EAA+B,2CAA/BA,CAA+B,eAIvCA,oEACQA,uEAAuB,oCAG/BA,oEACQA,uEAAuB,mCAAvBA,CAAuB,eAO/BA,yEACQA,4EAA4B,yCAGpCA,qEACQA,wEAAwB,oCAAxBA,CAAwB,eAWlCA,mEACQA,sEAAsB,kBAAtBA,CAAsB,mCAG9BA,sEACQA,yEAAyB,kBAAzBA,CAAyB,sCAIjCA,qEACQA,wEAAwB,kBAAxBA,CAAwB,qCAIhCA,qEACQA,wEAAwB,kBAAxBA,CAAwB,qCAUUA,0FASjDA,oFAAkC,4CAAlCA,CAAkC,6BAAlCA,CAAkC,4CAWPA,sLDzKtB89P,CAAY,KEAZC,GAAsB,MAA7B,MAAOA,EAQXrjQ,YAAoBuyP,EAAgC/b,GAAhCr2O,UAAgCA,wBAP1CA,mCAAgCkoG,GAQxCloG,KAAKmjQ,iBAAmBnjQ,KAAKq2O,iBAAiB+sB,mCAAmC7qP,UAAU,KACzFvY,KAAKqjQ,OACLrjQ,KAAKmjQ,iBAAiBh7O,aAAW,EAErC,CAEAk7O,OACErjQ,KAAKsjQ,aAAa7B,KAAKrqH,SAASzxI,QAAQ,CAACkK,EAASrL,KAChDxE,KAAK+0F,cAAc2M,2BAA2Bl9F,GAAG0H,MAAQ2D,EAAQ7L,IAAI,SAASkI,MAC9ElM,KAAK+0F,cAAc2M,2BAA2Bl9F,GAAGm5F,aAAe9tF,EAAQ7L,IAAI,gBAAgBkI,MAC5FlM,KAAK+0F,cAAc2M,2BAA2Bl9F,GAAGo5F,aAAe/tF,EAAQ7L,IAAI,gBAAgBkI,OAEhG,CAEA22P,yBACM7iQ,KAAK+0F,cAAc8T,mCACrB7oG,KAAK+0F,cAAcyT,UAAU9mD,UAAW,EACxC1hD,KAAK+0F,cAAc2T,YAAYhnD,UAAW,EAC1C1hD,KAAK+0F,cAAc0T,WAAW/mD,UAAW,EAE7C,CAACvhD,kDA7BU+iQ,GAAsBp1O,qJAAtBo1O,EAAsB34N,2FAKtB+2N,GAAuC,ikEClBpDn8P,qCAAmE,SAAnEA,CAAmE,SAEiCA,gCAAOA,6BAEzGA,qCAAwB,SAC2DA,sCAAYA,6BAG/FA,qCAAwB,SAEpBA,+BACAA,oCACFA,+BAIJA,uCAAuD,WAAvDA,CAAuD,WAAvDA,CAAuD,YAAvDA,CAAuD,YAAvDA,CAAuD,eAKqBA,kDAAuBA,2BAEzFA,wCAAsB,cAAtBA,CAAsB,eAE+BA,mGAAjDA,iCAINA,wCAAwB,eACsDA,yCAAcA,2BAC1FA,6CAKFA,2BACAA,wCAAwB,eACyDA,4CAAiBA,2BAChGA,6CAEFA,2BACAA,wCAAwB,eACyDA,4CAAiBA,2BAChGA,6CAEFA,2BACAA,wCAAwB,eAC2DA,8CAAmBA,2BACpGA,6CAEFA,2BACAA,wCAAwB,eAC0DA,6CAAkBA,2BAClGA,6CAEFA,iCAINA,wCAA+D,YAA/DA,CAA+D,YAA/DA,CAA+D,eAGcA,6CAAkBA,2BACzFA,wCAAsB,gBAGlBA,kDAAU6Q,0BAAwB,EAAlC7Q,CAAmC,wEAGnCA,2CAAgEA,qCAAWA,2BAC3EA,2CAA+DA,oCAAUA,iCAI/EA,wCAAwB,eAC+DA,qCAAUA,6BAEjGA,wCAAwB,eACqCA,sCAAWA,2BAEtEA,wCAAsB,cAAtBA,CAAsB,eAMhBA,wFAJFA,iCAQNA,wCAAwB,eACuCA,+CAAoBA,2BACjFA,wCAAsB,gBAOlBA,gGACAA,2CAAsBA,+BAAKA,2BAC3BA,2CAAsBA,+BAAKA,iCAIjCA,qEAOAA,wCACEA,kCACAA,0CAA4DA,uCAAYA,+BAG5EA,sCAAiD,cAC+BA,gCAAMA,6BAEtFA,wCAA6B,YAA7BA,CAA6B,eAEkDA,0CAAeA,2BAC1FA,6CAEFA,2BAEAA,wCAAwB,eACkDA,0CAAeA,2BACvFA,6CACFA,2BACAA,wCAAwB,eACmDA,uCAAYA,2BACrFA,6CAMFA,2BACAA,wCAAwB,eACmDA,0CAAeA,2BACxFA,6CAMFA,2BACAA,wCAAwB,eACqDA,4CAAiBA,2BAC5FA,6CAMFA,+BAIJA,wCAAyE,aAErEA,4DACFA,sCA5I2DA,iGAK9CA,uEAELA,0EAA0B,gDAA1BA,CAA0B,uCAMrBA,0EACQA,6EAA6B,cAA7BA,CAA6B,0CAIrCA,0EACQA,6EAA6B,cAA7BA,CAA6B,0CAIrCA,4EACQA,+EAA+B,cAA/BA,CAA+B,4CAIvCA,2EACQA,8EAA8B,cAA9BA,CAA8B,2CAe3CA,4FACQA,gHACAA,+GAKLA,oEAUDA,0IAAwF,qCAS1FA,qKAEC,6CAULA,uGAAqD,oHAArDA,CAAqD,6DAgB9CA,uEACQA,yEAAyB,kBAAzBA,CAAyB,sCAKjCA,mEACQA,sEAAsB,kBAAtBA,CAAsB,mCAG9BA,oEAELA,wEAAwB,kBAAxBA,CAAwB,oGAAxBA,CAAwB,qCAOnBA,oEAELA,uEAAuB,kBAAvBA,CAAuB,oGAAvBA,CAAuB,oCAOlBA,sEAELA,yEAAyB,kBAAzBA,CAAyB,oGAAzBA,CAAyB,sCAWAA,gQDvJtB+9P,CAAsB,4BEkGrB/9P,qCAA+EA,6CAAoBA,mDACnGA,qCACGA,oEAA2CA,mDAE9CA,qCACGA,8DAAqCA,sDAZ1CA,wCAOEA,2CACAA,2CAGAA,2CAGFA,yGAPSA,8LACAA,yLAGAA,0PA1BbA,uCAGiF,cAE7EA,sBACFA,2BAEAA,uCAA8C,cAK1CA,2HAAUA,uDAA4B,GAJxCA,2BAMAA,2CAeFA,4BAAM,uDA1BCA,8EACLA,gGAGoBA,8EAMlBA,wHAGCA,6NCzFR,IAAMo+P,GAAoB,MAA3B,MAAOA,EAOX1jQ,YAAoBuyP,EAAgCriH,EAAkCwoH,GAAlEv4P,UAAgCA,mBAAkCA,YAF9EA,aAAU,IAAI2qD,GAGpB3qD,KAAK+sD,QAAQzkD,IACXtI,KAAK+vI,YAAYwtH,qBAAqBhlP,UAAU5O,IAC1CA,EAAEkuG,uBAAyB73G,KAAK+0F,cAAc7pF,IAChDlL,KAAKmmG,gCAAgCx8F,EAAEuyF,sBAAqB,IAKlEl8F,KAAK+sD,QAAQzkD,IACXtI,KAAK+vI,YAAYytH,mBAAmBjlP,UAAU5O,IACxCA,EAAEkuG,uBAAyB73G,KAAK+0F,cAAc7pF,IAChDlL,KAAKy9P,6BAA6B9zP,EAAEuyF,sBAAqB,GAIjE,CAGAjzD,WACEjpC,KAAKwjQ,mBAAqBxjQ,KAAK+vI,YAAYle,YAAYlyB,mBACvD3/F,KAAKw4P,cACLx4P,KAAKktI,iBAAiBoK,qBACtBt3I,KAAKyjQ,uCACP,CAEAjL,cACEx4P,KAAKy4P,wBAAwBlG,WAAW,OAAQvyP,KAAKoyP,GAAGviP,QAAQ7P,KAAK+0F,cAAc3xF,OACnFpD,KAAKy4P,wBAAwBlG,WAAW,gBAAiBvyP,KAAKoyP,GAAGviP,QAAQ7P,KAAK+0F,cAAc8H,gBAC5F78F,KAAKy4P,wBAAwBlG,WAAW,gBAAiBvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAciU,eAAe,IAC7GhpG,KAAKy4P,wBAAwBlG,WAC3B,YACAvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAcgU,WAAY/oG,KAAKwjQ,qBAExDxjQ,KAAKy4P,wBAAwBlG,WAAW,cAAevyP,KAAKoyP,GAAGviP,QAAQ7P,KAAK+0F,cAAcqU,cAC1FppG,KAAKy4P,wBAAwBlG,WAC3B,6BACAvyP,KAAKoyP,GAAG1jN,MAAM1uC,KAAK0jQ,6CAGjB1jQ,KAAK68F,cACP78F,KAAK2jQ,oCAAoChhL,UAEzC3iF,KAAK2jQ,oCAAoCvQ,QAE7C,CAEQsQ,2CACN,OAAO1jQ,KAAK+0F,cAAc2M,2BAA2Bn6F,IAAIm2F,GAChD19F,KAAK4jQ,6CAA6ClmK,GAE7D,CAEUkmK,6CAA6ClmK,GACrD,MAAMszJ,EAAe1kK,GAAgBoR,EAAGxxF,OAASsgF,IAAakR,EAAGxxF,MAAO,QAAK+B,EAEvE41P,EAAe7jQ,KAAKoyP,GAAGviP,QAAQmhP,EAAc,CAAC0B,uBAAqBA,kBAAe,GAAIA,kBAAe,KAE3G,OAAO1yP,KAAKoyP,GAAG9zN,MAAM,CACnBpyB,MAAO23P,GAEX,CAEAJ,wCACEzjQ,KAAK2jQ,oCAAoChI,aAAah2P,QAAQ,KAC5D3F,KAAK47P,mCAAiC,GAIxC,UAAWp3P,KAAKxE,KAAK2jQ,oCAAoCvsH,SACvDp3I,KAAK8jQ,2BAA2Bt/P,EAEpC,CAEIi0P,8BACF,OAAOz4P,KAAKktI,iBAAiBmK,cAC/B,CAEAm9G,qBAAqB1lB,GACfA,EACF9uO,KAAK2jQ,oCAAoChhL,UAEzC3iF,KAAK2jQ,oCAAoCvQ,QAE7C,CAEIuQ,0CACF,OAAO3jQ,KAAKy4P,wBAAwBz0P,IAAI,6BAC1C,CAEI64F,oBACF,OAAO78F,KAAKy4P,wBAAwBz0P,IAAI,iBAAiBkI,KAC3D,CAEA2vP,0BAA0BxqP,GACxB,OAAIrR,KAAK+0F,cACA/0F,KAAK+0F,cAAciN,kCAAkC3wF,GAEvD,EACT,CAEAuqP,oCACE,MAAQxkH,YAAap3I,KAAK2jQ,oCAC1B,GAAIvsH,EAAS3yI,QAAU,EACrB,OAGF,IAAIyf,EAAQ,EAEZ,QAAS1f,EAAI,EAAGA,EAAI4yI,EAAS3yI,OAAS,EAAGD,IAAK,CAC5C,MACMy7P,EAAWvyK,cAAcI,iBADpBspD,EAAS5yI,GAC+BR,IAAI,SAASkI,OAEhE,GAAKqgF,OAAO5/D,MAAMszO,GAGhB,OAFA/7O,GAAS+7O,CAET,CAIJ7oH,EAASA,EAAS3yI,OAAS,GAAGT,IAAI,SAAS6J,SAASqxD,YAAY,EAAIh7C,GAAOwoE,QAAQ,IAAK,CACtF6vK,WAAW,EACXC,uBAAuB,EACvBC,uBAAuB,IAEzBrlH,EAASA,EAAS3yI,OAAS,GAAGT,IAAI,SAAS04P,aAC7C,CAEAoH,0BAA0Bt/P,GACxB,MAAMk5F,EAAK19F,KAAK2jQ,oCAAoCvsH,SAAS5yI,GACvDy7P,EAAWvyK,cAAcI,iBAAiB4P,EAAGxxF,OAE9CqgF,OAAO5/D,MAAMszO,IAChBviK,EAAG7vF,SAASqxD,WAAW+gM,EAASvzK,QAAQ,IAE5C,CAEQyZ,gCAAgChS,GACtC,MAAM4vK,EAAW/jQ,KAAK+0F,cAAcgN,8BAA8B5N,GAC5D9iF,EAAQrR,KAAK+0F,cAAc2M,2BAA2BxwF,QAAQ6yP,IACtD,IAAV1yP,IAIJrR,KAAK2jQ,oCAAoCrgB,SAASjyO,GAClDrR,KAAK+0F,cAAcoR,gCAAgChS,GACrD,CAEQspK,6BAA6BtpK,GACnCn0F,KAAK+0F,cAAckR,wBAAwB9R,GAC3C,MACM6vK,EAAYhkQ,KAAK4jQ,6CADZ5jQ,KAAK+0F,cAAc2M,2BAA2B1hG,KAAK+0F,cAAc2M,2BAA2Bj9F,OAAS,IAE5GzE,KAAKy4P,wBAAwBz0P,IAAI,iBAAiBkI,OACpD83P,EAAUrhL,UAEZ3iF,KAAK2jQ,oCAAoC/6P,KAAKo7P,EAChD,CAEAt8P,cACE1H,KAAK+sD,QAAQ5kC,aACf,CAAChoB,kDAvKUojQ,GAAoBz1O,uLAApBy1O,EAAoBh5N,miEDjBjCplC,qCAAmE,SAAnEA,CAAmE,SAG7DA,6CACFA,6BAGFA,qCAAwB,SAEpBA,+BACAA,mCACFA,+BAIJA,sCAA6F,UAA7FA,CAA6F,WAA7FA,CAA6F,WAA7FA,CAA6F,YAA7FA,CAA6F,eAKjBA,wCAAaA,2BAC/EA,wCAAuC,eAAvCA,CAAuC,gBAETA,gCAAMA,2BAChCA,2CAA8BA,wCAAcA,2BAC5CA,2CAA+BA,yCAAeA,2BAC9CA,2CAA4BA,sCAAYA,2BACxCA,2CAA8BA,yCAAeA,2BAC7CA,2CAA2BA,qCAAWA,2BACtCA,2CAA6BA,wCAAcA,2BAC3CA,2CAA6BA,uCAAaA,2BAC1CA,2CAA0BA,oCAAUA,2BACpCA,2CAA4BA,uCAAaA,iCAK/CA,wCACEA,wCAAsD,eACbA,2CAAgBA,2BAEvDA,wCAA6C,YAA7CA,CAA6C,aAGvCA,wDAEFA,2BACAA,wCACEA,iEAIFA,iCAKNA,wCAAkD,eACTA,qCAAUA,2BAEjDA,wCAA6C,YAA7CA,CAA6C,aAGvCA,wDAEFA,2BACAA,wCACEA,iEAEFA,iCAIRA,oCAEAA,wCAAwB,eACqCA,oCAASA,2BAEpEA,wCAAsB,cAAtBA,CAAsB,eAMhBA,mDAAU6Q,wCAA2C,GAJvD7Q,iCASNA,2CAgCFA,+BAIJA,wCAAuE,YAEnEA,2DACFA,sCAjHmDA,uFA6BYA,oGAM/CA,+FAa+CA,+FAIUA,2FAyBpDA,0GAmCUA,oYC9GtBo+P,CAAoB,KCf1B,MAAMU,GAA4C,CACvD,CAAE7zC,MAAO,eAAgBzlN,KAAM,WAAY4rD,KAAM,IACjD,CAAE65J,MAAO,cAAezlN,KAAM,WAAY4rD,KAAM,IAChD,CAAE65J,MAAO,WAAYzlN,KAAM,WAAY4rD,KAAM,IAC7C,CAAE65J,MAAO,WAAYzlN,KAAM,WAAY4rD,KAAM,IAC7C,CAAE65J,MAAO,eAAgBzlN,KAAM,WAAY4rD,KAAM,IACjD,CAAE65J,MAAO,YAAazlN,KAAM,WAAY4rD,KAAM,IAC9C,CAAE65J,MAAO,SAAUzlN,KAAM,WAAY4rD,KAAM,IAC3C,CAAE65J,MAAO,SAAUzlN,KAAM,WAAY4rD,KAAM,IAC3C,CAAE65J,MAAO,aAAczlN,KAAM,WAAY4rD,KAAM,IAC/C,CAAE65J,MAAO,eAAgBzlN,KAAM,WAAY4rD,KAAM,IACjD,CAAE65J,MAAO,YAAazlN,KAAM,WAAY4rD,KAAM,IAC9C,CAAE65J,MAAO,YAAazlN,KAAM,WAAY4rD,KAAM,IAC9C,CAAE65J,MAAO,gBAAiBzlN,KAAM,WAAY4rD,KAAM,IAClD,CAAE65J,MAAO,iBAAkBzlN,KAAM,WAAY4rD,KAAM,IACnD,CAAE65J,MAAO,cAAezlN,KAAM,WAAY4rD,KAAM,IAChD,CAAE65J,MAAO,cAAezlN,KAAM,WAAY4rD,KAAM,IAChD,CAAE65J,MAAO,kBAAmBzlN,KAAM,WAAY4rD,KAAM,KCdhD,MAAO2tM,WAAiCjL,GAC5Cp5P,cACEC,MAAMupG,GACR,CAESysI,qBACP,OAAOh2O,MAAMg2O,qBAAqBr7N,OAAOwpP,GAC3C,ECFK,IAAME,GAAqB,MAA5B,MAAOA,EAMXtkQ,YAAoBw2O,0BAAqC,CAEzDptM,WACEjpC,KAAKg1O,oBAAsB,IAAIkvB,EACjC,CAEAjK,gBAAgBv9O,GACS,iBAAnBA,EAAI84N,aACNx1O,KAAK+0F,cAAcgT,YAAcrrF,EAAIjL,KACrCzR,KAAKq2O,iBAAiBn9F,wBAE1B,CAAC/4I,kDAjBUgkQ,GAAqBr2O,gGAArBq2O,EAAqB55N,68DCVlCplC,qCAAmE,SAAnEA,CAAmE,SAEiCA,gCAAOA,6BAEzGA,qCAAwB,SACsDA,kCAASA,6BAEvFA,qCAAwB,SACsDA,kCAASA,6BAEvFA,sCAAwB,UAC2DA,uCAAYA,6BAE/FA,sCAAwB,UACmEA,yCAAcA,6BAGzGA,sCAAwB,UAEpBA,gCACAA,oCACFA,+BAIJA,wCAAuD,YAAvDA,CAAuD,YAAvDA,CAAuD,YAAvDA,CAAuD,YAAvDA,CAAuD,eAKoCA,4CAAiBA,2BAClGA,6CAIFA,2BACAA,+BACAA,uCAAqBA,6BAAGA,2BACxBA,wCAAwB,eACsDA,yCAAcA,2BAC1FA,6CACFA,2BACAA,wCAAwB,eACsDA,yCAAcA,2BAC1FA,6CAIFA,iCAINA,wCAA6D,YAA7DA,CAA6D,YAA7DA,CAA6D,YAGlCA,kCAAQA,2BAC7BA,wCAAwB,eACyDA,6CAAkBA,2BACjGA,6CACFA,2BACAA,wCAAwB,eACqDA,wCAAaA,2BACxFA,6CAEFA,2BACAA,+BACAA,uCAAqBA,+BAAKA,2BAC1BA,wCAAwB,eAC2DA,+CAAoBA,2BACrGA,6CACFA,2BAEAA,wCAAwB,eACuDA,0CAAeA,2BAC5FA,6CAIFA,2BAEAA,qDAA+E,6BAEjFA,+BAGJA,wCAA6D,YAA7DA,CAA6D,YAA7DA,CAA6D,YAGlCA,8BAAIA,2BAEzBA,wCAAwB,eACiDA,oCAASA,2BAChFA,6CACFA,2BACAA,wCAAwB,eACuDA,sCAAWA,2BACxFA,6CACFA,2BACAA,wCAAwB,eACmDA,iCAAMA,2BAC/EA,6CACFA,2BACAA,wCAAwB,eAC2DA,+BAAIA,2BACrFA,6CAIFA,2BACAA,wCAAwB,eACmDA,iCAAMA,2BAC/EA,6CACFA,2BACAA,wCAAwB,eACmDA,iCAAMA,2BAC/EA,6CACFA,2BAEAA,+BACAA,uCAAqBA,+BAAKA,2BAE1BA,wCAAwB,eACwDA,2CAAgBA,2BAC9FA,8CACFA,2BACAA,yCAAwB,gBACoDA,kCAAMA,2BAChFA,8CACFA,iCAINA,yCAA+D,WAA/DA,CAA+D,eAEmBA,iCAAMA,6BAEtFA,yCAA6B,aAA7BA,CAA6B,gBAE+CA,kDAAsBA,2BAC9FA,8CACFA,2BACAA,yCAAwB,gBACqDA,yCAAaA,2BACxFA,8CAEFA,2BACAA,yCAAwB,gBACoDA,wCAAYA,2BACtFA,8CAEFA,2BACAA,yCAAwB,gBACoDA,wCAAYA,2BACtFA,8CAEFA,+BAGJA,yCAAmE,aAAnEA,CAAmE,gBAECA,iDAAqBA,2BACrFA,yCAAsB,eAAtBA,CAAsB,gBAE6BA,6FAA/CA,+BAIJA,oCACFA,2BAEAA,sCAAK,sCAMDA,sDAAa6Q,oBAAuB,GAAE7Q,+BAI5CA,yCAAwE,cAEpEA,4DACFA,sCAzJaA,6EAELA,6EAA6B,yCAA7BA,CAA6B,eAOxBA,uEACQA,0EAA0B,uCAGlCA,uEAELA,0EAA0B,sCAA1BA,CAA0B,eAYrBA,0EACQA,6EAA6B,0CAGrCA,sEACQA,yEAAyB,cAAzBA,CAAyB,sCAMjCA,4EACQA,+EAA+B,4CAIvCA,wEAELA,2EAA2B,cAA3BA,CAA2B,wCAKRA,iFACFA,iFAUZA,kEACQA,qEAAqB,kCAG7BA,wEACQA,2EAA2B,wCAGnCA,oEACQA,uEAAuB,oCAG/BA,4EAELA,+EAA+B,2CAA/BA,CAA+B,eAK1BA,oEACQA,uEAAuB,oCAG/BA,oEACQA,uEAAuB,mCAAvBA,CAAuB,eAO/BA,yEACQA,4EAA4B,yCAGpCA,qEACQA,wEAAwB,oCAAxBA,CAAwB,eAWlCA,mEACQA,sEAAsB,kBAAtBA,CAAsB,mCAG9BA,sEACQA,yEAAyB,kBAAzBA,CAAyB,sCAIjCA,qEACQA,wEAAwB,kBAAxBA,CAAwB,qCAIhCA,qEACQA,wEAAwB,kBAAxBA,CAAwB,qCAUUA,0FASjDA,oFAAkC,4BAAlCA,CAAkC,4CAAlCA,CAAkC,4CAUPA,sLD5KtBg/P,CAAqB,qEEVlCh/P,uCAA6G,UACxGA,kHAASA,6CAAkB,GAC5BA,gCAAsCA,2CACxCA,2BACAA,8BACFA,mDAmBEA,sCAAgD,UACsDA,8BAAKA,wDAoLnGA,uCACEA,sCAAwB,cAEpBA,mEACFA,2BACAA,uCACEA,8CASFA,6BAEJA,6FAfWA,wEACLA,oIAIEA,2FAA2C,yBAA3CA,CAA2C,0BAA3CA,CAA2C,cAA3CA,CAA2C,mBAA3CA,CAA2C,cAA3CA,CAA2C,4DArBvDA,uCAAyF,WAAzFA,CAAyF,UAAzFA,CAAyF,cAGJA,+BAAKA,2BAEpFA,uCACEA,8CAKFA,6BAGFA,iFAmBAA,sCAAwB,eACyBA,+BAAKA,2BACpDA,wCACEA,qCACFA,4EAlCOA,0EAIHA,iGAAiD,0CAAjDA,CAAiD,cAAjDA,CAAiD,0BAOzBA,iJAlEtCA,uCAAiG,UAAjGA,CAAiG,SAAjGA,CAAiG,UAGLA,wCAAeA,6BAGvGA,sCAAwB,UAC8DA,uCAAcA,6BAEpGA,sCAAwB,UAC4DA,qCAAWA,+BAGjGA,wCAAuD,YAAvDA,CAAuD,WAAvDA,CAAuD,WAAvDA,CAAuD,eAK7CA,wCACFA,2BACAA,6CAIFA,2BACAA,uCAAwB,eAC0DA,+BAAIA,2BACpFA,6CAIFA,2BACAA,uCAAwB,eAC6DA,kCAAOA,2BAC1FA,6CAIFA,2BACAA,uCAAwB,eAC+DA,oCAASA,2BAC9FA,6CAIFA,+BAIJA,wCACEA,kDACFA,2BACAA,4CAyCFA,uEA5EeA,oFAILA,sFAAsC,cAAtCA,CAAsC,wCAKjCA,2EAELA,8EAA8B,cAA9BA,CAA8B,gCAKzBA,8EAELA,iFAAiC,cAAjCA,CAAiC,mCAK5BA,gFAELA,mFAAmC,cAAnCA,CAAmC,qCAQrBA,+DAAiB,mCAEjCA,2EClLL,IAAMi/P,GAAmB,MAA1B,MAAOA,EAIXvkQ,YACUkwI,EACA9L,EACAoyG,GAFAr2O,mBACAA,+BACAA,uBACP,CAEHipC,WACEjpC,KAAK2xP,uBACP,CAEI7jI,oBACF,OAAO9tH,KAAK+vI,YAAYle,YAAYhP,aAAaqL,oBAAoB,sBACvE,CAEAyjI,sBAAsBzmP,GAChBA,IACFlL,KAAK+0F,cAAcX,gBAAkBlpF,GAEnClL,KAAK+0F,cAAcX,kBACrBp0F,KAAKy0P,gBAAkBz0P,KAAK+vI,YAAYle,YAAYhP,aAAaoL,sBAC/DjuH,KAAK+0F,cAAcX,iBAErBp0F,KAAK00P,eAET,CAEAA,eACE,MAAMC,EAAO,CACX,eACA,kBACA,kBACA,gBACA,SACA,SACA,SACA,UACA,YAEIC,EAAc,CAAC,SAAU,eAAgB,cAAe,WAAY,OAC1E,UAAWC,KAASF,EAClB,UAAWG,KAAcF,EAAa,CACpC,MAAMvqK,EAASrqF,KAAKy0P,gBAAgBI,GAAOC,GACrCC,EAAS,IAAIF,IAAQC,IAC3BvoM,EAAEwoM,GAAQx4O,IAAI8tE,EAAO0D,sBAAqB,IAC1CxhC,EAAE,GAAGwoM,SAAcx4O,IAAI8tE,EAAOlrB,MAC9B5S,EAAEwoM,GAAQ/vG,QAAM,CAGpBz4F,EAAE,mBAAmBvsD,KAAK+0F,cAAc7pF,MAAMqR,IAAIvc,KAAKy0P,gBAAgBv7I,YAAY,GAAG/5C,MACtF,IAAIj7C,EAAQ,EACZ,QAAS1f,EAAI,EAAGA,EAAIxE,KAAKy0P,gBAAgBv7I,YAAYz0G,OAAQD,IAAK,CAChE,MAAM6lF,EAASrqF,KAAKy0P,gBAAgBv7I,YAAY10G,GAChD0f,GAASmmE,EAAO0D,sBAAqB,GACrCxhC,EAAE,eAAe/nD,KAAK+X,IAAI8tE,EAAO0D,sBAAqB,GAAK,CAE7DxhC,EAAE,uBAAuBhwC,IAAI2H,GAE7BqoC,EAAE,6BAA6BhwC,IAAIvc,KAAKy0P,gBAAgBt0J,YAAYpS,sBAAqB,IACzFxhC,EAAE,iCAAiChwC,IAAIvc,KAAKy0P,gBAAgBt0J,YAAYhhC,MACxE5S,EAAE,6BAA6By4F,SAE/Bz4F,EAAE,qBAAqBhwC,IAAIvc,KAAKy0P,gBAAgB99I,IAAI5oB,sBAAqB,IACzExhC,EAAE,yBAAyBhwC,IAAIvc,KAAKy0P,gBAAgB99I,IAAIx3C,MACxD5S,EAAE,qBAAqBy4F,SAEvBz4F,EAAE,wBAAwBhwC,IAAIvc,KAAKy0P,gBAAgBpzJ,OAAOtT,sBAAqB,IAC/ExhC,EAAE,4BAA4BhwC,IAAIvc,KAAKy0P,gBAAgBpzJ,OAAOliC,MAC9D5S,EAAE,wBAAwBy4F,SAE1Bz4F,EAAE,0BAA0BhwC,IAAIvc,KAAKy0P,gBAAgBltJ,SAASxZ,sBAAqB,IACnFxhC,EAAE,8BAA8BhwC,IAAIvc,KAAKy0P,gBAAgBltJ,SAASpoC,MAClE5S,EAAE,0BAA0By4F,QAC9B,CAGAo1G,YACOp6P,KAAK+0F,cAAcoO,kBACtBnjG,KAAK+0F,cAAckC,UAAU/qF,WAAQ+B,EACrCjO,KAAK+0F,cAAc8B,QAAQ3qF,WAAQ+B,EACnCjO,KAAK+0F,cAAc+B,cAAc5qF,WAAQ+B,EACzCjO,KAAK+0F,cAAcgC,UAAU7qF,WAAQ+B,EACrCjO,KAAK+0F,cAAciC,kBAAkB9qF,WAAQ+B,EAC7CjO,KAAK+0F,cAAc6B,UAAU1qF,MAAQ,EAEzC,CAEAmuP,mBAAmBgK,GAEfrkQ,KAAKikI,wBAAwBzJ,eAAex6H,KAAK+0F,cAAc7pF,GAD7Dm5P,EACiEp1K,0BAEAA,mBAErEjvF,KAAKikI,wBAAwB7I,mBAAmBp7H,KAAK+0F,cAAc7pF,IACnElL,KAAKikI,wBAAwBtJ,oBAAoB36H,KAAK+0F,cAAc7pF,GACtE,CAEAivP,mBACM5tM,EAAE,wBAAwB+9B,KAAK,cAGnCtqF,KAAKq2O,iBAAiBl9F,8BACtBn5I,KAAKq2O,iBAAiBp9F,sBAEtBj5I,KAAKq2O,iBAAiBj9F,2BAA2Bp5I,KAAK+0F,cAAc7pF,IACtE,CAAC/K,kDA5GUikQ,GAAmBt2O,oKAAnBs2O,EAAmB75N,y3FDbhCplC,yCAOAA,sCAA6B,UAA7BA,CAA6B,aAEoCA,qCAAWA,2BACxEA,sCAAkC,0BAI9BA,+DAAsB6Q,0BAA6B,GAAE7Q,iCAI7DA,8BAEAA,qCAAqF,SAArFA,CAAqF,UAEeA,iCAAOA,6BAEzGA,yCAGAA,uCAAwB,WACsDA,mCAASA,6BAGvFA,uCAAwB,WAEpBA,iCACAA,oCACFA,+BAIJA,wCAAuD,YAAvDA,CAAuD,YAAvDA,CAAuD,WAAvDA,CAAuD,WAAvDA,CAAuD,eAKcA,gDAAqBA,2BAChFA,wCAAsB,cAAtBA,CAAsB,eAKhBA,0DAAiB6Q,uBAA0B,EAA3C7Q,CAA4C,0BACnC6Q,aAAW,EADpB7Q,CAA4C,uEAH9CA,+BASJA,mCACFA,2BAEAA,uCAAwB,eAC+CA,iCAAMA,2BAC3EA,6CACFA,2BAEAA,uCAAwB,eAEpBA,mDACFA,2BACAA,6CAKFA,2BAEAA,+BACAA,uCAAqBA,6BAAGA,2BACxBA,uCAAwB,eACsDA,yCAAcA,2BAC1FA,6CACFA,2BAEAA,uCAAwB,eACsDA,yCAAcA,2BAC1FA,6CAIFA,iCAINA,wCAA6D,YAA7DA,CAA6D,WAA7DA,CAA6D,WAA7DA,CAA6D,eAIgBA,iCAAMA,2BAC3EA,6CACFA,2BACAA,+BACAA,uCAAqBA,8BAAIA,2BACzBA,uCAAwB,eACmDA,iCAAMA,2BAC/EA,6CACFA,2BAEAA,uCAAwB,eACiDA,oCAASA,2BAChFA,6CACFA,2BAEAA,uCAAwB,eAC2DA,+BAAIA,2BACrFA,6CAIFA,2BAEAA,uCAAwB,eACmDA,iCAAMA,2BAC/EA,6CACFA,2BAEAA,+BACAA,uCAAqBA,+BAAKA,2BAE1BA,uCAAwB,eACwDA,2CAAgBA,2BAC9FA,6CACFA,2BACAA,uCAAwB,eACoDA,iCAAMA,2BAChFA,6CACFA,iCAKNA,6CAgGAA,wCAAsE,aAElEA,2DACFA,sCA9OoEA,+DAYhEA,iFAA+B,qCAYhCA,0EA4BSA,4FAQCA,gEACQA,mEAAmB,gCAI3BA,+EAILA,kFAAkC,cAAlCA,CAAkC,+CAS7BA,uEACQA,0EAA0B,uCAIlCA,uEAELA,kFAAkC,sCAAlCA,CAAkC,eAW7BA,gEACQA,mEAAmB,gCAK3BA,oEACQA,uEAAuB,oCAI/BA,kEACQA,qEAAqB,kCAI7BA,4EAELA,+EAA+B,2CAA/BA,CAA+B,eAM1BA,oEACQA,uEAAuB,mCAAvBA,CAAuB,eAO/BA,yEACQA,4EAA4B,yCAGpCA,qEACQA,wEAAwB,oCAAxBA,CAAwB,eAMzCA,0EAkG2BA,mNChOtBi/P,CAAmB,+BC6BxBj/P,uCACEA,uCAAqD,cACZA,wCAAcA,2BAErDA,uCAA6C,WAA7CA,CAA6C,YAGvCA,uDAEFA,2BACAA,uCACEA,gEAIFA,iCAIRA,8EAZ2DA,kGAM/CA,yHAQZA,uCACEA,uCAAuD,cACdA,0CAAgBA,2BAEvDA,uCAA6C,WAA7CA,CAA6C,YAGvCA,uDAEFA,2BACAA,uCACEA,gEAIFA,iCAIRA,8EAZ2DA,oGAM/CA,2HAQZA,uCACEA,uCAA6C,cACJA,+BAAKA,2BAE5CA,uCAA6C,WAA7CA,CAA6C,YAGvCA,uDAEFA,2BACAA,uCAAsB,0CAElBA,6BACFA,mCAKVA,8EAX2DA,0FAIUA,uFChFtE,IAAMm/P,GAAqB,MAA5B,MAAOA,EAUXzkQ,YAAoBuyP,EAAgCmG,GAAhCv4P,UAAgCA,YANpDA,6BAA0BirG,GAC1BjrG,qBAAiB,EACjBA,qBAAiB,EACjBA,oBAAgB,EAChBA,oBAAgB,CAE8D,CAE9EipC,WACEjpC,KAAKw4P,cACLx4P,KAAKktI,iBAAiBoK,qBACtB/qF,EAAElrD,UAAUkjQ,MAAM,KAChBvkQ,KAAKwkQ,eAAa,EAEtB,CAGAn4M,kBACEE,EAAElrD,UAAUkjQ,MAAM,KAChBvkQ,KAAKwkQ,eAAa,EAEtB,CAEAhM,cACEx4P,KAAKy4P,wBAAwBlG,WAAW,OAAQvyP,KAAKoyP,GAAGviP,QAAQ7P,KAAK+0F,cAAc3xF,OACnFpD,KAAKy4P,wBAAwBlG,WAC3B,0BACAvyP,KAAKoyP,GAAGviP,QAAQ7P,KAAK+0F,cAAcoW,0BAGrCnrG,KAAKy4P,wBAAwBlG,WAAW,eAAgBvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAc6K,eAC7F5/F,KAAKy4P,wBAAwBlG,WAAW,iBAAkBvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAcqW,iBAC/FprG,KAAKy4P,wBAAwBlG,WAAW,OAAQvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAc4V,OACrF3qG,KAAKy4P,wBAAwBlG,WAC3B,uBACAvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAcsW,uBAGvCrrG,KAAKy4P,wBAAwBlG,WAAW,aAAcvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAcyW,aAC3FxrG,KAAKy4P,wBAAwBlG,WAAW,gBAAiBvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAcwW,gBAC9FvrG,KAAKy4P,wBAAwBlG,WAC3B,uBACAvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAcuW,uBAGvCtrG,KAAKy4P,wBAAwBlG,WAC3B,eACAvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAc0W,cAAc,GAAO,GAAO,IAEnEzrG,KAAKy4P,wBAAwBlG,WAC3B,sBACAvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAc2W,qBAAqB,GAAO,GAAO,IAE1E1rG,KAAKy4P,wBAAwBlG,WAC3B,cACAvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAc4W,aAAa,GAAO,GAAO,IAElE3rG,KAAKy4P,wBAAwBlG,WAC3B,cACAvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAc6W,aAAa,GAAO,GAAO,GAEpE,CAEA64J,aAAav4P,GACPA,IAAU++F,mBACZjrG,KAAK+0F,cAAcoW,wBAA0BF,iBAC7CjrG,KAAKy4P,wBAAwBz0P,IAAI,2BAA2B6J,SAAS7N,KAAK+0F,cAAcoW,0BAEtFj/F,IAAU++F,qBACZjrG,KAAK+0F,cAAcoW,wBAA0BF,mBAC7CjrG,KAAKy4P,wBAAwBz0P,IAAI,2BAA2B6J,SAAS7N,KAAK+0F,cAAcoW,0BAEtFj/F,IAAU++F,UACZjrG,KAAK+0F,cAAcoW,wBAA0BF,QAC7CjrG,KAAKy4P,wBAAwBz0P,IAAI,2BAA2B6J,SAAS7N,KAAK+0F,cAAcoW,yBAE5F,CAEAq5J,gBACE,MAAM/4J,EAAezrG,KAAKy4P,wBAAwBz0P,IAAI,gBAAgBA,IAAI,SACpE4nG,EAAc5rG,KAAKy4P,wBAAwBz0P,IAAI,eAAeA,IAAI,SAClE2nG,EAAc3rG,KAAKy4P,wBAAwBz0P,IAAI,eAAeA,IAAI,SAClE0nG,EAAsB1rG,KAAKy4P,wBAAwBz0P,IAAI,uBAAuBA,IAAI,SAQlF0gQ,EAN8D,CAClE,CAAC1kQ,KAAK+0F,cAAc0W,aAAcA,GAClC,CAACzrG,KAAK+0F,cAAc6W,YAAaA,GACjC,CAAC5rG,KAAK+0F,cAAc4W,YAAaA,GACjC,CAAC3rG,KAAK+0F,cAAc2W,oBAAqBA,IAEE3zF,OAAOmyB,IAC1C2iD,GAAa3iD,EAAK,GAAGh+B,QAGzBy4P,EAAeD,EAAkB3sP,OAAOmyB,GAE1CA,EAAK,GAAG9mC,OAASqxF,iBAAuCvqD,EAAK,GAAG9mC,OAASqxF,iBAGvEmwK,EAAmBF,EAAkB3sP,OAAOmyB,GAE9CA,EAAK,GAAG9mC,OAASqxF,0BACjBvqD,EAAK,GAAG9mC,OAASqxF,0BAIjBkwK,EAAalgQ,OAASmgQ,EAAiBngQ,QACzCgnG,EAAa9oB,UACb+oB,EAAoB/oB,UACpB3iF,KAAK6kQ,gBAAiB,EACtB7kQ,KAAK8kQ,gBAAiB,GACbH,EAAalgQ,OAASmgQ,EAAiBngQ,QAChDmnG,EAAYjpB,UACZgpB,EAAYhpB,UACZ3iF,KAAK+kQ,eAAgB,EACrB/kQ,KAAKglQ,eAAgB,GACZL,EAAalgQ,SAAWmgQ,EAAiBngQ,SAClDzE,KAAKy4P,wBAAwBrF,SAC7BpzP,KAAK6kQ,gBAAiB,EACtB7kQ,KAAK8kQ,gBAAiB,EACtB9kQ,KAAK+kQ,eAAgB,EACrB/kQ,KAAKglQ,eAAgB,EAEzB,CAEIvM,8BACF,OAAOz4P,KAAKktI,iBAAiBmK,cAC/B,CAACl3I,kDAnIUmkQ,GAAqBx2O,qJAArBw2O,EAAqB/5N,wtEDflCplC,qCAAmE,SAAnEA,CAAmE,SAEiCA,8BAAKA,6BAGvGA,qCAAwB,SAC2DA,sCAAYA,6BAG/FA,qCAAwB,SAEpBA,+BAEAA,oCACFA,+BAIJA,uCAA6F,WAA7FA,CAA6F,WAA7FA,CAA6F,YAA7FA,CAA6F,YAIhEA,gCAAMA,2BAC3BA,+BAAM,SAENA,wCAAwB,eAEpBA,qDACFA,2BAEAA,wCAAsB,gBAGlBA,mDAAU6Q,8BAAiC,GAG3C7Q,2CAA8DA,yCAAeA,2BAC7EA,2CAA4DA,uCAAaA,2BACzEA,2CAAmDA,8BAAIA,iCAI7DA,qDAqBAA,qDAqBAA,qDAoBAA,wCAA6D,eACpBA,iDAAsBA,2BAE7DA,wCAA6C,YAA7CA,CAA6C,aAGvCA,wDAIFA,2BACAA,wCACEA,iEAIFA,mCAMRA,+BAAM,QAANA,CAAM,QAANA,CAAM,SACNA,wCAA6B,YACNA,iCAAOA,2BAC5BA,+BAAM,SAGNA,wCAAmD,eACVA,gCAAKA,2BAE5CA,wCAA6C,YAA7CA,CAA6C,aAGvCA,wDAEFA,2BACAA,wCACEA,iEAKFA,iCAKNA,wCAAsD,eACbA,0CAAeA,2BAEtDA,wCAA6C,YAA7CA,CAA6C,aAGvCA,wDAEFA,2BACAA,wCACEA,iEAKFA,iCAKNA,wCAA6D,eACpBA,iDAAsBA,2BAE7DA,wCAA6C,YAA7CA,CAA6C,aAGvCA,wDAIFA,2BACAA,wCACEA,iEAKFA,uCAQZA,wCAA+DA,iDAAS6Q,iBAAe,GACrF7Q,sCAAiD,cAC+BA,gCAAMA,6BAGtFA,wCAA6B,YAA7BA,CAA6B,eAEcA,iDAAsBA,2BAE7DA,wCAA6C,YAA7CA,CAA6C,aAGvCA,wDAEFA,2BACAA,wCACEA,iEAIFA,2BACAA,wCACEA,iEAMFA,iCAKNA,wCAAqD,eACZA,iDAAsBA,2BAE7DA,wCAA6C,YAA7CA,CAA6C,aAGvCA,yDAEFA,2BACAA,yCACEA,kEAEFA,2BACAA,yCACEA,kEAMFA,iCAKNA,yCAAyD,gBAChBA,yCAAaA,2BAEpDA,yCAA6C,aAA7CA,CAA6C,cAGvCA,yDAEFA,2BACAA,yCACEA,kEAEFA,2BACAA,yCACEA,kEAMFA,iCAKNA,yCAAyD,gBAChBA,yCAAaA,2BAEpDA,yCAA6C,aAA7CA,CAA6C,cAGvCA,yDAEFA,2BACAA,yCACEA,kEAEFA,2BACAA,yCACEA,kEAMFA,qCAOVA,yCAAwE,aAEpEA,4DACFA,sCA3SKA,yIAO8CA,uFAkBjCA,+GACAA,4GACAA,mGAICA,kHAqBAA,oHAqBAA,yGA4BLA,0GAMAA,sGAoB+CA,iGAM/CA,4FAA0C,eAcKA,mGAM/CA,+FAA6C,eAgB7CA,0GAMAA,sGAAoD,eAuBPA,0GAM/CA,qGAMAA,mEAAqB,sCAArBA,CAAqB,qDAe0BA,kGAIUA,8FAMzDA,mEAAqB,sCAArBA,CAAqB,8CAe0BA,iGAIUA,6FAMzDA,mEAAqB,qCAArBA,CAAqB,6CAe0BA,iGAIUA,6FAMzDA,mEAAqB,qCAArBA,CAAqB,6CAaFA,oaCtStBm/P,CAAqB,KCLrBW,GAA2B,MAAlC,MAAOA,EALbplQ,cAOEG,mBAAgBkqG,GAChBlqG,gCAA6BmqG,GAE7BlhE,WACMjpC,KAAK+0F,cAAcuV,6BAA+BH,OACpD59C,EAAE,eAAehwC,IAAI4tF,OACrB59C,EAAE,uBAAuBm8B,OACzBn8B,EAAE,mBAAmB4J,QAErBn2D,KAAK+0F,cAAcuV,6BACnBH,6BAEA59C,EAAE,eAAehwC,IAAI4tF,6BACrB59C,EAAE,uBAAuB4J,OACzB5J,EAAE,mBAAmBm8B,QAErB1oF,KAAK+0F,cAAcuV,6BACnBH,6BAEA59C,EAAE,eAAehwC,IAAI4tF,4BACrB59C,EAAE,uBAAuB4J,OACzB5J,EAAE,mBAAmBm8B,QAGnB1oF,KAAK+0F,cAAcsV,gBAAkBH,mBACvC39C,EAAE,sBAAsBhwC,IAAI2tF,oBACnBlqG,KAAK+0F,cAAcsV,gBAAkBH,eAC9C39C,EAAE,sBAAsBhwC,IAAI2tF,cAEhC,CAEAg7J,kCAAkCC,GAC5BA,IAAqBh7J,OACvBnqG,KAAK+0F,cAAcuV,2BAA6BH,MAChD59C,EAAE,uBAAuBm8B,OACzBn8B,EAAE,mBAAmB4J,QACZgvM,IAAqBh7J,6BAC9BnqG,KAAK+0F,cAAcuV,2BACjBH,4BACF59C,EAAE,uBAAuB4J,OACzB5J,EAAE,mBAAmBm8B,QACZy8K,IAAqBh7J,6BAC9BnqG,KAAK+0F,cAAcuV,2BACjBH,2BACF59C,EAAE,uBAAuB4J,OACzB5J,EAAE,mBAAmBm8B,OAEzB,CAEA08K,yBAAyBl5P,GACnBA,IAAUg+F,mBACZlqG,KAAK+0F,cAAcsV,cAAgBH,mBAC1Bh+F,IAAUg+F,gBACnBlqG,KAAK+0F,cAAcsV,cAAgBH,cAEvC,CAAC/pG,kDAzDU8kQ,EAA2B,8DAA3BA,EAA2B16N,4rCCVxCplC,qCAAmE,SAAnEA,CAAmE,SAEiCA,8BAAKA,6BAGvGA,qCAAwB,SAEpBA,+BACAA,mCACFA,+BAIJA,sCAAuD,UAAvDA,CAAuD,WAAvDA,CAAuD,WAAvDA,CAAuD,YAI1BA,gCAAMA,2BAC3BA,+BAAM,SAGNA,wCAAwB,eACuDA,yCAAcA,2BAE3FA,wCAAsB,gBAIlBA,mDAAU6Q,0CAA6C,GACvD7Q,2CAAoDA,yCAAeA,2BACnEA,2CAA+CA,oCAAUA,iCAK/DA,wCAAwB,eAEpBA,wDACFA,2BAEAA,wCAAsD,gBAGlDA,mDAAU6Q,mDAAsD,GAEhE7Q,2CACEA,qDACFA,2BACAA,2CACEA,sDACFA,2BACAA,2CAAoDA,4BAAEA,iCAK5DA,wCAAgD,eACmCA,8CAAmBA,2BACpGA,6CACFA,2BAEAA,wCAA4C,eACwBA,8BAAGA,2BACrEA,6CACFA,2BAEAA,wCAAwB,eAC0DA,gDAAqBA,2BACrGA,6CACFA,2BAEAA,wCAAwB,eAEpBA,iDACFA,2BACAA,6CACFA,2BAEAA,wCAAwB,eACwDA,2CAAgBA,2BAC9FA,6CACFA,2BAEAA,+BAAM,QAANA,CAAM,QAANA,CAAM,SACNA,uCAA6B,YACNA,iCAAOA,2BAC5BA,+BAAM,SAGNA,wCAAwB,eAC8CA,gCAAKA,2BACzEA,6CACFA,2BAEAA,wCAAwB,eACkDA,8BAAGA,2BAC3EA,6CACFA,2BAEAA,wCAAwB,eAC8CA,gCAAKA,2BACzEA,6CACFA,mCAMRA,wCAA8E,YAE1EA,2DACFA,sCAzFaA,yEAOKA,oGACAA,+FAMLA,qFASKA,yHAGAA,0HAGAA,oGAMLA,4EACQA,+EAA+B,4CAIvCA,6DACQA,gEAAgB,6BAIxBA,2EACQA,8EAA8B,2CAItCA,4EAGQA,+EAA+B,4CAIvCA,yEACQA,4EAA4B,yCAUlCA,gEACQA,kEAAkB,cAAlBA,CAAkB,+BAI1BA,mEACQA,sEAAsB,cAAtBA,CAAsB,mCAI9BA,+DACQA,kEAAkB,cAAlBA,CAAkB,+BASVA,iKDpGtB8/P,CAA2B,KED3BI,GAAoB,MAA3B,MAAOA,EAGXp8N,WACMjpC,KAAK+0F,cAAcuV,6BAA+B2B,uBACpD1/C,EAAE,eAAehwC,IAAI0vF,uBACrB1/C,EAAE,qBAAqBm8B,OACvBn8B,EAAE,uBAAuB4J,QAChBn2D,KAAK+0F,cAAcuV,6BAA+B2B,sBAC3D1/C,EAAE,qBAAqB4J,OACvB5J,EAAE,uBAAuBm8B,OAE7B,CAEAw8K,kCAAkCC,GAC5BA,IAAqBl5J,uBACvBjsG,KAAK+0F,cAAcuV,2BAA6B2B,sBAChD1/C,EAAE,qBAAqBm8B,OACvBn8B,EAAE,uBAAuB4J,QAChBgvM,IAAqBl5J,sBAC9BjsG,KAAK+0F,cAAcuV,2BAA6B2B,oBAChD1/C,EAAE,qBAAqB4J,OACvB5J,EAAE,uBAAuBm8B,OAE7B,CAACvoF,kDAxBUklQ,EAAoB,8DAApBA,EAAoB96N,4uCCTjCplC,qCAAqF,SAArFA,CAAqF,SAEeA,8BAAKA,6BAGvGA,qCAAwB,SAEpBA,+BACAA,mCACFA,+BAIJA,sCAAuD,UAAvDA,CAAuD,WAAvDA,CAAuD,WAAvDA,CAAuD,YAI1BA,gCAAMA,2BAC3BA,+BAAM,SAGNA,wCAAwB,eAEpBA,wDACFA,2BACAA,wCAAsD,gBAGlDA,mDAAU6Q,mDAAsD,GAEhE7Q,2CAAiCA,0CAAgBA,2BACjDA,2CAAmCA,4CAAkBA,iCAK3DA,wCAA8C,eACmCA,4CAAiBA,2BAChGA,6CACFA,2BAEAA,wCAAgD,eACmCA,8CAAmBA,2BACpGA,6CACFA,2BAEAA,wCAAwB,eACsDA,yCAAcA,2BAC1FA,6CACFA,2BACAA,+BAEAA,uCAAqBA,iCAAOA,2BAC5BA,+BAAM,SAGNA,wCAAwB,eAC8CA,gCAAKA,2BACzEA,6CACFA,iCAKNA,wCAAuE,YAEnEA,2DACFA,sCA9BaA,2EACQA,6EAA6B,0CAIrCA,4EACQA,+EAA+B,4CAIvCA,uEACQA,0EAA0B,uCASlCA,+DACQA,kEAAkB,8BAAlBA,CAAkB,eAQRA,iKDzDtBkgQ,CAAoB,+BE2BzBlgQ,uCACEA,uCAAwB,cACyDA,2CAAiBA,2BAChGA,4CACFA,2BACFA,8EAHWA,0EACQA,6EAA6B,2CC9BjD,IAAMmgQ,GAAoB,MAA3B,MAAOA,EALbzlQ,cAOEG,gCAA6BisG,GAE7BhjE,WACMjpC,KAAK+0F,cAAcuV,6BAA+B2B,uBACpD1/C,EAAE,eAAehwC,IAAI0vF,uBACrB1/C,EAAE,uBAAuB4J,QAChBn2D,KAAK+0F,cAAcuV,6BAA+B2B,sBAC3D1/C,EAAE,eAAehwC,IAAI0vF,qBACrB1/C,EAAE,uBAAuBm8B,OAE7B,CAEAw8K,kCAAkCC,GAC5BA,IAAqBl5J,qBACvBjsG,KAAK+0F,cAAcuV,2BAA6B2B,oBAChD1/C,EAAE,uBAAuBm8B,QAChBy8K,IAAqBl5J,wBAC9BjsG,KAAK+0F,cAAcuV,2BAA6B2B,sBAChD1/C,EAAE,uBAAuB4J,OAE7B,CAACh2D,kDAtBUmlQ,EAAoB,8DAApBA,EAAoB/6N,8pCDTjCplC,qCAAqF,SAArFA,CAAqF,SAEeA,8BAAKA,6BAGvGA,qCAAwB,SAEpBA,+BACAA,mCACFA,+BAIJA,sCAAuD,UAAvDA,CAAuD,WAAvDA,CAAuD,WAAvDA,CAAuD,YAI1BA,gCAAMA,2BAC3BA,+BAAM,SAGNA,wCAAwB,eAEpBA,wDACFA,2BACAA,wCAAsD,gBAGlDA,mDAAU6Q,mDAAsD,GAEhE7Q,2CAAkEA,0CAAgBA,2BAClFA,2CAAoEA,4CAAkBA,iCAK5FA,oDAOAA,wCACEA,wCAAgD,eACmCA,8CAAmBA,2BACpGA,6CACFA,2BACFA,oCAEAA,wCAAwB,eACsDA,yCAAcA,2BAC1FA,6CACFA,2BACAA,+BAEAA,uCAAqBA,iCAAOA,2BAC5BA,+BAAM,SAGNA,wCAAwB,eAC8CA,gCAAKA,2BACzEA,6CACFA,iCAKNA,wCAAuE,YAEnEA,2DACFA,sCAzCkBA,mHACAA,oHAKCA,wHASJA,4EACQA,+EAA+B,4CAKzCA,uEACQA,0EAA0B,uCASlCA,+DACQA,kEAAkB,8BAAlBA,CAAkB,eAQRA,wKC7DtBmgQ,CAAoB,KCT1B,IAAKC,GAGX,aAHWA,UAAU,KACpBA,yCACAA,+CAFUA,GAAZ,IAAYA,GAGX,GCMM,IAAMC,GAA+B,MAAtC,MAAOA,EALb3lQ,cASEG,gBAAaulQ,GACdplQ,kDALYqlQ,EAA+B,8DAA/BA,EAA+Bj7N,o+BCT5CplC,qCAAqF,SAArFA,CAAqF,SAEeA,8BAAKA,6BAGvGA,qCAAwB,SAMpBA,+BACAA,mCACFA,+BAIJA,sCAAuD,UAAvDA,CAAuD,WAAvDA,CAAuD,WAAvDA,CAAuD,YAI1BA,gCAAMA,2BAC3BA,+BAAM,SAGNA,uCAAkCA,mCAASA,2BAC3CA,+BACAA,wCAAwB,eAC4DA,yCAAcA,2BAEhGA,6CAIFA,2BAEAA,wCAAwB,eAC4DA,yCAAcA,2BAEhGA,6CAIFA,iCAKNA,wCAAkF,YAE9EA,2DACFA,sCAvBaA,8EAGLA,gFAAgC,4CAAhCA,CAAgC,gDAM3BA,6EAGLA,gFAAgC,4CAAhCA,CAAgC,gDAUTA,+GDzCtBqgQ,CAA+B,KEA/BC,GAAkB,MAAzB,MAAOA,EAGXx8N,WACMjpC,KAAK+0F,cAAcoW,0BAA4BF,oBACjD1+C,EAAE,eAAehwC,IAAI0uF,oBACrB1+C,EAAE,kBAAkBm8B,OACpBn8B,EAAE,oBAAoB4J,OACtB5J,EAAE,SAASm8B,QACF1oF,KAAK+0F,cAAcoW,0BAA4BF,SACxD1+C,EAAE,eAAehwC,IAAI0uF,SACrB1+C,EAAE,SAAS4J,OACX5J,EAAE,kBAAkBm8B,OACpBn8B,EAAE,oBAAoBm8B,QACb1oF,KAAK+0F,cAAcoW,0BAA4BF,mBACxD1+C,EAAE,oBAAoBm8B,OACtBn8B,EAAE,SAASm8B,OAEf,CAEAg9K,+BAA+BP,GACzBA,IAAqBl6J,oBACvBjrG,KAAK+0F,cAAcoW,wBAA0BF,mBAC7C1+C,EAAE,kBAAkBm8B,OACpBn8B,EAAE,oBAAoB4J,OACtB5J,EAAE,SAASm8B,QACFy8K,IAAqBl6J,SAC9BjrG,KAAK+0F,cAAcoW,wBAA0BF,QAC7C1+C,EAAE,SAAS4J,OACX5J,EAAE,kBAAkBm8B,OACpBn8B,EAAE,oBAAoBm8B,QACby8K,IAAqBl6J,mBAC9BjrG,KAAK+0F,cAAcoW,wBAA0BF,iBAC7C1+C,EAAE,kBAAkB4J,OACpB5J,EAAE,oBAAoBm8B,OACtBn8B,EAAE,SAASm8B,OAEf,CAACvoF,kDArCUslQ,EAAkB,8DAAlBA,EAAkBl7N,gwCCT/BplC,qCAAqF,SAArFA,CAAqF,SAEeA,8BAAKA,6BAGvGA,qCAAwB,SAEpBA,+BACAA,mCACFA,+BAIJA,sCAAuD,UAAvDA,CAAuD,WAAvDA,CAAuD,WAAvDA,CAAuD,YAI1BA,gCAAMA,2BAC3BA,+BAAM,SAGNA,wCAAwB,eAEpBA,qDACFA,2BACAA,wCAAmD,gBACzBA,mDAAU6Q,gDAAmD,GACnF7Q,2CAA8BA,uCAAaA,2BAC3CA,2CAAgCA,yCAAeA,2BAC/CA,2CAAqBA,8BAAIA,iCAK/BA,wCAA2C,eACmCA,yCAAcA,2BAC1FA,6CACFA,2BAEAA,wCAA6C,eACmCA,2CAAgBA,2BAC9FA,6CACFA,2BAEAA,wCAAkC,eACoCA,gCAAKA,2BACzEA,6CACFA,2BAEAA,wCAAwB,eACoDA,sCAAWA,2BACrFA,6CACFA,2BACAA,+BAEAA,uCAAqBA,iCAAOA,2BAC5BA,+BAAM,SAGNA,wCAAwB,eACoDA,gCAAKA,2BAC/EA,6CACFA,iCAKNA,wCAAqE,YAEjEA,2DACFA,sCAnCaA,wEACQA,0EAA0B,uCAIlCA,yEACQA,4EAA4B,yCAIpCA,+DACQA,kEAAkB,+BAI1BA,qEACQA,wEAAwB,qCAShCA,qEACQA,wEAAwB,oCAAxBA,CAAwB,eAQdA,iKD5DtBsgQ,CAAkB,KEAlBE,GAAkC,MAAzC,MAAOA,EAGX9lQ,YAAoBw2O,0BAAqC,CAEzD8jB,mBACM5tM,EAAE,wBAAwB+9B,KAAK,cAGnCtqF,KAAKq2O,iBAAiBl9F,8BACtBn5I,KAAKq2O,iBAAiBp9F,sBAEtBj5I,KAAKq2O,iBAAiBj9F,2BAA2Bp5I,KAAK+0F,cAAc7pF,IACtE,CAAC/K,kDAbUwlQ,GAAkC73O,gGAAlC63O,EAAkCp7N,qSCT/CplC,sCAAuE,SAClEA,iDAAS6Q,oBAAkB,GAC5B7Q,+BAAsCA,2CACxCA,2BACAA,8BACFA,sCDIawgQ,CAAkC,KEAlCC,GAAmB,MAA1B,MAAOA,EAGX38N,WACMjpC,KAAK+0F,cAAcoW,0BAA4BF,oBACjD1+C,EAAE,eAAehwC,IAAI0uF,oBACrB1+C,EAAE,kBAAkBm8B,OACpBn8B,EAAE,oBAAoB4J,QACbn2D,KAAK+0F,cAAcoW,0BAA4BF,mBACxD1+C,EAAE,kBAAkB4J,OACpB5J,EAAE,oBAAoBm8B,OAE1B,CAEAg9K,+BAA+BP,GACzBA,IAAqBl6J,oBACvBjrG,KAAK+0F,cAAcoW,wBAA0BF,mBAC7C1+C,EAAE,kBAAkBm8B,OACpBn8B,EAAE,oBAAoB4J,QACbgvM,IAAqBl6J,mBAC9BjrG,KAAK+0F,cAAcoW,wBAA0BF,iBAC7C1+C,EAAE,kBAAkB4J,OACpB5J,EAAE,oBAAoBm8B,OAE1B,CAACvoF,kDAxBUylQ,EAAmB,8DAAnBA,EAAmBr7N,6+CCThCplC,qCAAqF,SAArFA,CAAqF,SAEeA,8BAAKA,6BAGvGA,qCAAwB,SAC2DA,sCAAYA,6BAG/FA,qCAAwB,SAEpBA,+BACAA,oCACFA,+BAIJA,uCAAuD,WAAvDA,CAAuD,WAAvDA,CAAuD,YAAvDA,CAAuD,YAI1BA,gCAAMA,2BAC3BA,+BAAM,SAGNA,wCAAwB,eAEpBA,qDACFA,2BACAA,wCAAmD,gBACzBA,mDAAU6Q,gDAAmD,GACnF7Q,2CAA8BA,uCAAaA,2BAC3CA,2CAAgCA,yCAAeA,iCAKrDA,wCAA2C,eACmCA,yCAAcA,2BAC1FA,6CACFA,2BAEAA,wCAA6C,eACmCA,2CAAgBA,2BAC9FA,6CACFA,iCAKNA,wCAA+D,UAA/DA,CAA+D,cAEmBA,gCAAMA,6BAEtFA,wCAA6B,YAA7BA,CAA6B,eAE+CA,iDAAsBA,2BAC9FA,6CAEFA,+BAIJA,wCAAsE,YAElEA,2DACFA,sCA5BaA,wEACQA,0EAA0B,uCAIlCA,yEACQA,4EAA4B,yCAYtCA,mEACQA,sEAAsB,kBAAtBA,CAAsB,uCAQVA,iKDxDtBygQ,CAAmB,KEAnBC,GAAmB,MAA1B,MAAOA,EAIX58N,WACMsjB,EAAE,eAAehwC,QAAU0uF,WAC7B1+C,EAAE,oBAAoBm8B,OAEpB1oF,KAAK+0F,cAAcoW,0BAA4BF,oBACjD1+C,EAAE,eAAehwC,IAAI,mBACrBgwC,EAAE,oBAAoB4J,QACbn2D,KAAK+0F,cAAcoW,0BAA4BF,YACxD1+C,EAAE,eAAehwC,IAAI,UACrBgwC,EAAE,oBAAoBm8B,OAE1B,CAEAg9K,+BAA+BP,GACzBA,IAAqBl6J,oBACvBjrG,KAAK+0F,cAAcoW,wBAA0BF,mBAC7C1+C,EAAE,oBAAoB4J,QACbgvM,IAAqBl6J,YAC9BjrG,KAAK+0F,cAAcoW,wBAA0BF,UAC7C1+C,EAAE,oBAAoBm8B,OAE1B,CAACvoF,kDAzBU0lQ,EAAmB,8DAAnBA,EAAmBt7N,soCCThCplC,qCAAqF,SAArFA,CAAqF,SAEeA,8BAAKA,6BAGvGA,qCAAwB,SAEpBA,+BACAA,mCACFA,+BAIJA,sCAAuD,UAAvDA,CAAuD,WAAvDA,CAAuD,WAAvDA,CAAuD,YAI1BA,gCAAMA,2BAC3BA,+BAAM,SAGNA,wCAAwB,eAEpBA,qDACFA,2BACAA,wCAAmD,gBACzBA,mDAAU6Q,gDAAmD,GACnF7Q,2CAAuBA,gCAAMA,2BAC7BA,2CAAgCA,yCAAeA,iCAKrDA,wCACEA,wCAA6C,eACmCA,2CAAgBA,2BAC9FA,6CACFA,2BACFA,oCACFA,+BAIJA,wCAAsE,YAElEA,2DACFA,sCAXeA,0EACQA,4EAA4B,yCASpBA,iKDpCtB0gQ,CAAmB,4BEgDlB1gQ,qCAA2EA,6CAAoBA,mDAC/FA,qCACGA,oEAA2CA,mDAE9CA,qCACGA,8DAAqCA,sDAN1CA,wCACEA,2CACAA,2CAGAA,2CAGFA,yGAPSA,sLACAA,iLAGAA,kPArBbA,uCAGiF,cAE7EA,sBACFA,2BAEAA,uCAA8C,cAM1CA,2HAAUA,uDAA4B,GALxCA,2BAOAA,2CASFA,4BAAM,uDArBCA,4FACLA,gGAGoBA,8EAIlBA,2FAGAA,+FACyBA,oICvChC,IAAM2gQ,GAAuB,MAA9B,MAAOA,UAA+BpL,GAM1C76P,YAAoBuyP,EAAgCriH,GAClDjwI,QADkBE,UAAgCA,mBAF5CA,aAAU,IAAI2qD,GAKpB3qD,KAAK+sD,QAAQzkD,IACXtI,KAAK+vI,YAAY29G,4BAA4Bn1O,UAAUsgF,IACrD74F,KAAKmmG,gCAAgCtN,EAAG3tF,GAAE,IAI9ClL,KAAK+sD,QAAQzkD,IACXtI,KAAK+vI,YAAYwtH,qBAAqBhlP,UAAU5O,IAC1CA,EAAEkuG,uBAAyB73G,KAAK+0F,cAAc7pF,IAChDlL,KAAKmmG,gCAAgCx8F,EAAEuyF,sBAAqB,IAKlEl8F,KAAK+sD,QAAQzkD,IACXtI,KAAK+vI,YAAYytH,mBAAmBjlP,UAAU5O,IACxCA,EAAEkuG,uBAAyB73G,KAAK+0F,cAAc7pF,IAChDlL,KAAKy9P,6BAA6B9zP,EAAEuyF,sBAAqB,GAIjE,CAEAjzD,WACEjpC,KAAK6Z,OAEL7Z,KAAK2jQ,oCAAoChI,aAAah2P,QAAQ,KAC5D3F,KAAK47P,mCAAiC,GAIxC,UAAWp3P,KAAKxE,KAAK2jQ,oCAAoCvsH,SACvDp3I,KAAK8jQ,2BAA2Bt/P,EAEpC,CAGAg0P,cACEx4P,KAAKy4P,wBAAwBlG,WAAW,OAAQvyP,KAAKoyP,GAAGviP,QAAQ7P,KAAK+0F,cAAc3xF,OACnFpD,KAAKy4P,wBAAwBlG,WAAW,gBAAiBvyP,KAAKoyP,GAAGviP,QAAQ7P,KAAK+0F,cAAc8H,gBAC5F78F,KAAKy4P,wBAAwBlG,WAC3B,6BACAvyP,KAAKoyP,GAAG1jN,MAAM1uC,KAAK0jQ,6CAErB1jQ,KAAKw0P,qBAAqBx0P,KAAK+0F,cAAc8H,cAC/C,CAEQ6mK,2CACN,OAAO1jQ,KAAK+0F,cAAc2M,2BAA2Bn6F,IAAIm2F,GAChD19F,KAAK4jQ,6CAA6ClmK,GAE7D,CAEUkmK,6CAA6ClmK,GACrD,MAAMszJ,EAAe1kK,GAAgBoR,EAAGxxF,OAASsgF,IAAakR,EAAGxxF,MAAO,QAAK+B,EAEvE41P,EAAe7jQ,KAAKoyP,GAAGviP,QAAQmhP,EAAc,CAAC0B,uBAAqBA,kBAAe,GAAIA,kBAAe,KAE3G,OAAO1yP,KAAKoyP,GAAG9zN,MAAM,CACnBpyB,MAAO23P,GAEX,CAIQpG,6BAA6BtpK,GACnCn0F,KAAK+0F,cAAckR,wBAAwB9R,GAE3C,MACM6vK,EAAYhkQ,KAAK4jQ,6CADZ5jQ,KAAK+0F,cAAc2M,2BAA2B1hG,KAAK+0F,cAAc2M,2BAA2Bj9F,OAAS,IAEhHzE,KAAK2jQ,oCAAoC/6P,KAAKo7P,EAChD,CAQQ79J,gCAAgChS,GACtC,MAAM9iF,EAAQrR,KAAK+0F,cAAc0Y,mCAAmCtZ,IACtD,IAAV9iF,IAIJrR,KAAK2jQ,oCAAoCrgB,SAASjyO,GAClDrR,KAAK+0F,cAAcoR,gCAAgChS,GACrD,CAIIwvK,0CACF,OAAO3jQ,KAAKy4P,wBAAwBz0P,IAAI,6BAC1C,CAEA+hQ,yCAAyCvhQ,GACvC,OAAOxE,KAAK2jQ,oCAAoC3/P,IAAI,GAAGQ,KAAKR,IAAI,QAClE,CAKAwwP,qBAAqB1lB,GACfA,EACF9uO,KAAK2jQ,oCAAoChhL,UAEzC3iF,KAAK2jQ,oCAAoCvQ,QAE7C,CAGAyI,0BAA0BxqP,GACxB,OAAIrR,KAAK+0F,cACA/0F,KAAK+0F,cAAciN,kCAAkC3wF,GAEvD,EACT,CAEAuqP,oCACE,MAAQxkH,YAAap3I,KAAK2jQ,oCAC1B,GAAIvsH,EAAS3yI,QAAU,EACrB,OAGF,IAAIyf,EAAQ,EAEZ,QAAS1f,EAAI,EAAGA,EAAI4yI,EAAS3yI,OAAS,EAAGD,IAAK,CAC5C,MACMy7P,EAAWvyK,cAAcI,iBADpBspD,EAAS5yI,GAC+BR,IAAI,SAASkI,OAEhE,GAAKqgF,OAAO5/D,MAAMszO,GAGhB,OAFA/7O,GAAS+7O,CAET,CAIJ7oH,EAASA,EAAS3yI,OAAS,GAAGT,IAAI,SAAS6J,SAASqxD,YAAY,EAAIh7C,GAAOwoE,QAAQ,IAAK,CACtF6vK,WAAW,EACXC,uBAAuB,EACvBC,uBAAuB,IAEzBrlH,EAASA,EAAS3yI,OAAS,GAAGT,IAAI,SAAS04P,aAC7C,CAEAoH,0BAA0Bt/P,GACxB,MAAMk5F,EAAK19F,KAAK2jQ,oCAAoCvsH,SAAS5yI,GACvDy7P,EAAWvyK,cAAcI,iBAAiB4P,EAAG15F,IAAI,SAASkI,OAE3DqgF,OAAO5/D,MAAMszO,IAChBviK,EAAG15F,IAAI,SAAS6J,SAASqxD,WAAW+gM,EAASvzK,QAAQ,IAEzD,CAEAhlF,cACE1H,KAAK+sD,QAAQ5kC,aACf,CAAChoB,kDArKU2lQ,GAAsBh4O,qJAAtBg4O,EAAsBv7N,8/CDjBnCplC,qCAAmE,SAAnEA,CAAmE,SAEiCA,8BAAKA,6BAGvGA,qCAAwB,SAEpBA,+BAEAA,mCACFA,+BAIJA,sCAA6F,UAA7FA,CAA6F,WAA7FA,CAA6F,WAA7FA,CAA6F,YAA7FA,CAA6F,eAKxBA,oCAASA,2BAEpEA,wCAAsB,cAAtBA,CAAsB,eAMhBA,mDAAU6Q,wCAA2C,GAJvD7Q,iCASNA,0CAAuCA,uCAAYA,2BAEnDA,0CAAuCA,8CAAmBA,2BAE1DA,+BAAM,QAANA,CAAM,SAINA,2CA2BFA,+BAIJA,wCAAyE,YAErEA,2DACFA,sCAnEKA,yIAO8CA,uFA6B9BA,2GA8BUA,2SCxDtB2gQ,CAAuB,KCTvBE,GAAkB,MAAzB,MAAOA,EAAkB7lQ,kDAAlB6lQ,EAAkB,8DAAlBA,EAAkBz7N,wsCCR/BplC,qCAAqF,SAArFA,CAAqF,SAEeA,8BAAKA,6BAGvGA,qCAAwB,SAC2DA,sCAAYA,6BAG/FA,qCAAwB,SAEpBA,+BACAA,oCACFA,+BAIJA,uCAAuD,WAAvDA,CAAuD,WAAvDA,CAAuD,YAAvDA,CAAuD,YAI1BA,oCAAUA,2BAC/BA,+BAAM,SAGNA,wCAAwB,eACsDA,yCAAcA,2BAC1FA,6CAEFA,2BAEAA,wCAAwB,eACqDA,uCAAYA,2BACvFA,6CAEFA,2BAEAA,wCAAwB,eACkDA,oCAASA,2BACjFA,6CACFA,iCAKNA,wCAA+D,UAA/DA,CAA+D,cAEmBA,gCAAMA,6BAEtFA,wCAA6B,YAA7BA,CAA6B,eAGvBA,iDACFA,2BACAA,6CAKFA,2BACAA,wCAAwB,eACkDA,iDAAsBA,2BAC9FA,6CAEFA,+BAIJA,wCAAqE,YAEjEA,2DACFA,sCA7CaA,wEACQA,0EAA0B,cAA1BA,CAA0B,uCAKlCA,sEACQA,yEAAyB,cAAzBA,CAAyB,sCAKjCA,mEACQA,sEAAsB,cAAtBA,CAAsB,mCAYhCA,8EAILA,iFAAiC,kBAAjCA,CAAiC,8CAM5BA,mEACQA,sEAAsB,kBAAtBA,CAAsB,8CAQVA,+GD9DtB6gQ,CAAkB,KEElBC,GAAmB,MAA1B,MAAOA,EAKXpmQ,YAAoBw2O,2BAFXr2O,0BAAuB,uBAG9BA,KAAKg1O,oBAAsB,IAAIikB,GAAoB,GACrD,CAEAiN,+BAA+BnkQ,GACxBA,EAA4B+sO,UAC/B9uO,KAAK+0F,cAAc8Y,aAAa3hG,WAAQ+B,EACxCjO,KAAK+0F,cAAc+Y,YAAY5hG,WAAQ+B,EAE3C,CAEAgsP,gBAAgBv9O,GACVA,EAAI84N,aAAex1O,KAAKmmQ,uBAC1BnmQ,KAAK+0F,cAAcgT,YAAcrrF,EAAIjL,KACrCzR,KAAKq2O,iBAAiBn9F,wBAE1B,CAAC/4I,kDArBU8lQ,GAAmBn4O,gGAAnBm4O,EAAmB17N,8lECVhCplC,qCAAmE,SAAnEA,CAAmE,SAEiCA,gCAAOA,6BAEzGA,qCAAwB,SACsDA,kCAASA,6BAEvFA,qCAAwB,SACsDA,kCAASA,6BAEvFA,sCAAwB,UAC2DA,uCAAYA,6BAE/FA,sCAAwB,UACmEA,yCAAcA,6BAGzGA,sCAAwB,UAEpBA,gCACAA,oCACFA,+BAIJA,wCAAuD,YAAvDA,CAAuD,YAAvDA,CAAuD,YAAvDA,CAAuD,YAAvDA,CAAuD,eAKwBA,uDAA4BA,2BACjGA,wCAAsB,cAAtBA,CAAsB,eAKhBA,sGAAmD,4BACzC6Q,0CAA6C,GAJzD7Q,+BAQJA,mCACFA,2BAQAA,wCAAwB,eAC0DA,8CAAmBA,2BACnGA,6CAEFA,2BAEAA,wCAAwB,eACqDA,wCAAaA,2BACxFA,6CAEFA,2BACAA,wCAAwB,eACsDA,yCAAcA,2BAC1FA,6CAIFA,2BAEAA,wCAAwB,eACqDA,yCAAcA,2BACzFA,6CAIFA,2BAEAA,wCAAwB,eACsDA,yCAAcA,2BAC1FA,6CAEFA,2BACAA,wCAAwB,eACyDA,6CAAkBA,2BACjGA,6CAEFA,2BACAA,wCAAwB,eAEpBA,kDACFA,2BACAA,6CAKFA,2BACAA,+BACAA,uCAAqBA,6BAAGA,2BACxBA,wCAAwB,eACsDA,yCAAcA,2BAC1FA,6CACFA,2BACAA,wCAAwB,eAEpBA,8CACFA,2BACAA,6CAEFA,2BACAA,wCAAwB,eAEpBA,gDACFA,2BACAA,6CACFA,2BACAA,wCAAwB,eACsDA,yCAAcA,2BAC1FA,6CAEFA,iCAINA,wCAA6D,YAA7DA,CAA6D,YAA7DA,CAA6D,YAGlCA,+BAAKA,2BAC1BA,wCAAwB,eAC2DA,+CAAoBA,2BACrGA,6CACFA,2BAEAA,wCAAwB,eACuDA,0CAAeA,2BAC5FA,6CAEFA,2BAEAA,qDAA+E,6BAEjFA,+BAGJA,wCAA6D,YAA7DA,CAA6D,YAA7DA,CAA6D,YAGlCA,8BAAIA,2BAEzBA,wCAAwB,eACiDA,qCAASA,2BAChFA,8CACFA,2BACAA,yCAAwB,gBACuDA,uCAAWA,2BACxFA,8CACFA,2BACAA,yCAAwB,gBACmDA,kCAAMA,2BAC/EA,8CACFA,2BACAA,yCAAwB,gBAC2DA,gCAAIA,2BACrFA,8CAEFA,2BACAA,yCAAwB,gBACmDA,kCAAMA,2BAC/EA,8CACFA,2BACAA,yCAAwB,gBACmDA,kCAAMA,2BAC/EA,8CACFA,2BAEAA,gCACAA,wCAAqBA,gCAAKA,2BAE1BA,yCAAwB,gBACwDA,4CAAgBA,2BAC9FA,8CACFA,2BACAA,yCAAwB,gBACoDA,kCAAMA,2BAChFA,8CACFA,iCAINA,yCAA+D,WAA/DA,CAA+D,eAEmBA,iCAAMA,6BAEtFA,yCAA6B,aAA7BA,CAA6B,gBAE+CA,kDAAsBA,2BAC9FA,8CACFA,2BACAA,yCAAwB,gBACqDA,yCAAaA,2BACxFA,8CAEFA,2BACAA,yCAAwB,gBACoDA,wCAAYA,2BACtFA,8CAEFA,2BACAA,yCAAwB,gBACoDA,wCAAYA,2BACtFA,8CAEFA,+BAGJA,yCAAmE,aAAnEA,CAAmE,gBAECA,iDAAqBA,2BACrFA,yCAAsB,eAAtBA,CAAsB,gBAE6BA,6FAA/CA,+BAIJA,oCACFA,2BAEAA,sCAAK,sCAMDA,sDAAa6Q,oBAAuB,GAAE7Q,+BAI5CA,yCAAsE,cAElEA,4DACFA,sCA5MYA,oGAeCA,2EACQA,8EAA8B,0CAA9BA,CAA8B,eAKtCA,sEACQA,yEAAyB,qCAAzBA,CAAyB,eAIjCA,uEAELA,0EAA0B,sCAA1BA,CAA0B,oDAMrBA,sEAELA,yEAAyB,qCAAzBA,CAAyB,oDAMpBA,uEACQA,0EAA0B,sCAA1BA,CAA0B,eAIlCA,0EACQA,6EAA6B,yCAA7BA,CAA6B,eAIrCA,8EAILA,iFAAiC,6CAAjCA,CAAiC,eAQ5BA,uEACQA,0EAA0B,uCAGlCA,kFAGQA,qFAAqC,kDAI7CA,6EAGQA,gFAAgC,6CAGxCA,uEACQA,0EAA0B,sCAA1BA,CAA0B,eAWlCA,4EACQA,+EAA+B,4CAIvCA,wEACQA,2EAA2B,cAA3BA,CAA2B,wCAIrBA,iFACFA,iFAUZA,kEACQA,qEAAqB,kCAG7BA,wEACQA,2EAA2B,wCAGnCA,oEACQA,uEAAuB,oCAG/BA,4EACQA,+EAA+B,2CAA/BA,CAA+B,eAIvCA,oEACQA,uEAAuB,oCAG/BA,oEACQA,uEAAuB,mCAAvBA,CAAuB,eAO/BA,yEACQA,4EAA4B,yCAGpCA,qEACQA,wEAAwB,oCAAxBA,CAAwB,eAWlCA,mEACQA,sEAAsB,kBAAtBA,CAAsB,mCAG9BA,sEACQA,yEAAyB,kBAAzBA,CAAyB,sCAIjCA,qEACQA,wEAAwB,kBAAxBA,CAAwB,qCAIhCA,qEACQA,wEAAwB,kBAAxBA,CAAwB,qCAUUA,0FASjDA,oFAAkC,4CAAlCA,CAAkC,oCAAlCA,CAAkC,4CAUPA,sLDrOtB8gQ,CAAmB,KEFnBG,GAAsB,MAA7B,MAAOA,EAAsBjmQ,kDAAtBimQ,EAAsB,8DAAtBA,EAAsB77N,ukCCRnCplC,qCAAmE,SAAnEA,CAAmE,SAEiCA,gCAAOA,6BAEzGA,qCAAwB,SACsDA,kCAASA,6BAGvFA,qCAAwB,SAEpBA,+BACAA,oCACFA,+BAIJA,uCAAuD,WAAvDA,CAAuD,WAAvDA,CAAuD,YAAvDA,CAAuD,YAAvDA,CAAuD,eAKqCA,+CAAoBA,2BACtGA,6CAEFA,2BACAA,+BACAA,uCAAqBA,qCAAWA,2BAChCA,wCAAwB,eAEpBA,uDACFA,2BACAA,6CAEFA,2BACAA,+BACAA,uCAAqBA,6BAAGA,2BACxBA,wCAAwB,eAEpBA,4DACFA,2BACAA,6CAEFA,2BACAA,wCAAwB,eACsDA,yCAAcA,2BAC1FA,6CAEFA,6BAEFA,+BACAA,uCAAqBA,mCAASA,2BAC9BA,wCACEA,qDAA+E,6BAEjFA,+BAIJA,wCAA6D,WAA7DA,CAA6D,YAA7DA,CAA6D,YAGlCA,8BAAIA,2BAEzBA,wCAAwB,eACiDA,oCAASA,2BAChFA,6CACFA,2BACAA,wCAAwB,eACuDA,sCAAWA,2BACxFA,6CACFA,2BACAA,wCAAwB,eACmDA,iCAAMA,2BAC/EA,6CACFA,2BACAA,wCAAwB,eAC2DA,+BAAIA,2BACrFA,6CAEFA,2BACAA,wCAAwB,eACmDA,iCAAMA,2BAC/EA,6CACFA,2BACAA,wCAAwB,eACmDA,iCAAMA,2BAC/EA,6CACFA,2BAEAA,+BACAA,uCAAqBA,+BAAKA,2BAE1BA,wCAAwB,eACwDA,2CAAgBA,2BAC9FA,6CACFA,2BACAA,wCAAwB,eACoDA,iCAAMA,2BAChFA,6CACFA,iCAKNA,wCAAyE,YAErEA,2DACFA,sCAtFaA,8EACQA,gFAAgC,4CAAhCA,CAAgC,eAMxCA,oFAGQA,uFAAuC,oDAM/CA,+EAGQA,kFAAkC,+CAI1CA,uEACQA,0EAA0B,sCAA1BA,CAA0B,eAOpBA,iFACFA,iFAWZA,kEACQA,qEAAqB,kCAG7BA,wEACQA,2EAA2B,wCAGnCA,oEACQA,uEAAuB,oCAG/BA,4EACQA,+EAA+B,2CAA/BA,CAA+B,eAIvCA,oEACQA,uEAAuB,oCAG/BA,oEACQA,uEAAuB,mCAAvBA,CAAuB,eAO/BA,yEACQA,4EAA4B,yCAGpCA,qEACQA,wEAAwB,oCAAxBA,CAAwB,eAQdA,qHDlGtBihQ,CAAsB,KEHtBC,GAAmB,MAA1B,MAAOA,EAIXC,iBAAiBvxK,GACf/0F,KAAK+0F,cAAgBA,CACvB,CAEAwxK,mBAAmB9R,GACjBz0P,KAAKy0P,gBAAkBA,CACzB,CAEAC,eACE,MAAMC,EAAO,CACX,eACA,kBACA,kBACA,gBACA,SACA,SACA,SACA,UACA,YAEIM,EAAc,CAAC,SAAU,eAAgB,cAAe,WAAY,OAC1E,UAAWJ,KAASF,EAClB,UAAWG,KAAcG,EAAa,CACpC,MAAM5qK,EAASrqF,KAAKy0P,gBAAgBI,GAAOC,GACrCC,EAAS,IAAIF,IAAQC,IAC3BvoM,EAAEwoM,GAAQx4O,IAAI8tE,EAAO0D,sBAAqB,IAC1CxhC,EAAE,GAAGwoM,SAAcx4O,IAAI8tE,EAAOlrB,MAC9B5S,EAAEwoM,GAAQ/vG,QAAM,CAIpBz4F,EAAE,mBAAmBvsD,KAAK+0F,cAAc7pF,MAAMqR,IAAIvc,KAAKy0P,gBAAgBv7I,YAAY,GAAG/5C,MACtF,IAAIj7C,EAAQ,EACZ,QAAS1f,EAAI,EAAGA,EAAIxE,KAAKy0P,gBAAgBv7I,YAAYz0G,OAAQD,IAAK,CAChE,MAAM6lF,EAASrqF,KAAKy0P,gBAAgBv7I,YAAY10G,GAChD0f,GAASmmE,EAAO0D,sBAAqB,GACrCxhC,EAAE,eAAe/nD,KAAK+X,IAAI8tE,EAAO0D,sBAAqB,GAAK,CAG7DxhC,EAAE,uBAAuBhwC,IAAI2H,GAE7BqoC,EAAE,6BAA6BhwC,IAAIvc,KAAKy0P,gBAAgBt0J,YAAYpS,sBAAqB,IACzFxhC,EAAE,iCAAiChwC,IAAIvc,KAAKy0P,gBAAgBt0J,YAAYhhC,MACxE5S,EAAE,6BAA6By4F,SAE/Bz4F,EAAE,qBAAqBhwC,IAAIvc,KAAKy0P,gBAAgB99I,IAAI5oB,sBAAqB,IACzExhC,EAAE,yBAAyBhwC,IAAIvc,KAAKy0P,gBAAgB99I,IAAIx3C,MACxD5S,EAAE,qBAAqBy4F,SAEvBz4F,EAAE,wBAAwBhwC,IAAIvc,KAAKy0P,gBAAgBpzJ,OAAOtT,sBAAqB,IAC/ExhC,EAAE,4BAA4BhwC,IAAIvc,KAAKy0P,gBAAgBpzJ,OAAOliC,MAC9D5S,EAAE,wBAAwBy4F,SAE1Bz4F,EAAE,0BAA0BhwC,IAAIvc,KAAKy0P,gBAAgBltJ,SAASxZ,sBAAqB,IACnFxhC,EAAE,8BAA8BhwC,IAAIvc,KAAKy0P,gBAAgBltJ,SAASpoC,MAClE5S,EAAE,0BAA0By4F,QAC9B,CAAC7kJ,kDA5DUkmQ,EAAmB,iEAAnBA,EAAmBjhQ,QAAnBihQ,EAAmB,mBAAnBA,CAAmB,KCLzB,MAAMG,GAAiC,CAC5C,CAAEp2C,MAAO,WAAYzlN,KAAM,WAAY4rD,KAAM,IAC7C,CAAE65J,MAAO,WAAYzlN,KAAM,WAAY4rD,KAAM,IAC7C,CAAE65J,MAAO,eAAgBzlN,KAAM,WAAY4rD,KAAM,IACjD,CAAE65J,MAAO,oBAAqBzlN,KAAM,WAAY4rD,KAAM,IACtD,CAAE65J,MAAO,kBAAmBzlN,KAAM,WAAY4rD,KAAM,KCAhD,MAAOkwM,WAAoCxN,GAC/Cp5P,cACEC,MAAM6xG,GACR,CAESmkI,qBACP,OAAOh2O,MAAMg2O,qBAAqBr7N,OAAO+rP,GAC3C,yBCUArhQ,qCAAgD,UACoCA,+CAAsBA,wDAyMlGA,uCACEA,sCAAwB,cAEpBA,mEACFA,2BACAA,uCACEA,8CASFA,6BAEJA,6FAfWA,wEACLA,oIAIEA,2FAA2C,yBAA3CA,CAA2C,0BAA3CA,CAA2C,cAA3CA,CAA2C,mBAA3CA,CAA2C,cAA3CA,CAA2C,4DArBvDA,uCAAyF,WAAzFA,CAAyF,UAAzFA,CAAyF,cAGJA,+BAAKA,2BAEpFA,uCACEA,8CAKFA,6BAGFA,iFAmBAA,sCAAwB,eACyBA,+BAAKA,2BACpDA,wCACEA,qCACFA,4EAlCOA,0EAIHA,iGAAiD,0CAAjDA,CAAiD,cAAjDA,CAAiD,0BAOzBA,iJA7DtCA,uCAAwF,UAAxFA,CAAwF,SAAxFA,CAAwF,UAGIA,wCAAeA,6BAGvGA,qCAAwB,UAC8DA,uCAAcA,6BAGpGA,qCAAwB,UAC4DA,qCAAWA,+BAIjGA,wCAAuD,YAAvDA,CAAuD,WAAvDA,CAAuD,WAAvDA,CAAuD,eAK7CA,wCACFA,2BACAA,6CAIFA,2BACAA,uCAAwB,eAC0DA,+BAAIA,2BACpFA,6CAEFA,2BACAA,uCAAwB,eAC6DA,kCAAOA,2BAC1FA,6CAEFA,2BACAA,uCAAwB,eAC+DA,oCAASA,2BAC9FA,6CAEFA,+BAGJA,wCACEA,kDACFA,2BACAA,4CAyCFA,uEArEeA,oFAILA,sFAAsC,uCAAtCA,CAAsC,eAKjCA,2EACQA,8EAA8B,+BAA9BA,CAA8B,eAItCA,8EACQA,iFAAiC,kCAAjCA,CAAiC,eAIzCA,gFACQA,mFAAmC,oCAAnCA,CAAmC,eAMlCA,+DAAiB,mCAEjCA,2EClML,IAAMuhQ,GAAwB,MAA/B,MAAOA,EAMX7mQ,YACUkwI,EACA42H,EACAtwB,GAFAr2O,mBACAA,2BACAA,wBANVA,gCAA6B0xG,GAQ3B1xG,KAAKg1O,oBAAsB,IAAIyxB,EACjC,CAEAx9N,WACEjpC,KAAK2mQ,oBAAoBL,iBAAiBtmQ,KAAK+0F,eAC/C/0F,KAAK2xP,uBACP,CAEAuU,+BAA+BnkQ,GACxBA,EAA4B+sO,UAC/B9uO,KAAK+0F,cAAc8Y,aAAa3hG,WAAQ+B,EACxCjO,KAAK+0F,cAAc8c,SAAS3lG,WAAQ+B,EACpCjO,KAAK+0F,cAAc+c,SAAS5lG,WAAQ+B,EAExC,CAEA0jP,sBAAsBzmP,GAChBA,IACFlL,KAAK+0F,cAAcX,gBAAkBlpF,GAEnClL,KAAK+0F,cAAcX,kBACrBp0F,KAAKy0P,gBAAkBz0P,KAAK+vI,YAAYle,YAAYhP,aAAaoL,sBAC/DjuH,KAAK+0F,cAAcX,iBAErBp0F,KAAK2mQ,oBAAoBJ,mBAAmBvmQ,KAAKy0P,iBACjDz0P,KAAK00P,eAET,CAEAA,eACE10P,KAAK2mQ,oBAAoBjS,cAC3B,CAEI5mI,oBACF,OAAO9tH,KAAK+vI,YAAYle,YAAYhP,aAAaqL,oBAAoB,UACvE,CAEA+rI,gBAAgBv9O,GACS,8BAAnBA,EAAI84N,aACNx1O,KAAK+0F,cAAcgG,kBAAoBr+E,EAAIjL,KAC3CzR,KAAKq2O,iBAAiBn9F,wBAE1B,CAAC/4I,kDArDUumQ,GAAwB54O,oKAAxB44O,EAAwBn8N,qHAFxB,CAAC87N,MAAoB17N,w7FDdlCxlC,sCAA6B,UAA7BA,CAA6B,aAEoCA,qCAAWA,2BACxEA,sCAAsB,0BAIlBA,+DAAsB6Q,0BAA6B,GACrD7Q,iCAINA,8BAEAA,qCAAmD,SAAnDA,CAAmD,SAEiDA,iCAAOA,6BAEzGA,sCAAwB,UACsDA,mCAASA,6BAGvFA,0CAIAA,sCAAwB,WAC2DA,uCAAYA,6BAG/FA,sCAAwB,WAEpBA,iCACAA,oCACFA,+BAIJA,wCAAuD,YAAvDA,CAAuD,YAAvDA,CAAuD,WAAvDA,CAAuD,WAAvDA,CAAuD,eAK8BA,uCAAYA,2BACvFA,uCAAsB,gBACSA,0FAC3BA,2CAAqDA,6BAAGA,2BACxDA,2CAAqDA,6BAAGA,iCAK9DA,uCAAwB,eAC0DA,8CAAmBA,2BACnGA,6CAEFA,2BAEAA,uCAAwB,eACsDA,yCAAcA,2BAC1FA,6CAIFA,2BAEAA,uCAAwB,eACkDA,qCAAUA,2BAClFA,6CAIFA,2BAEAA,uCAAwB,eACkDA,qCAAUA,2BAClFA,6CAIFA,2BAEAA,uCAAwB,eACoDA,uCAAYA,2BACtFA,6CACFA,2BAEAA,+BACAA,uCAAqBA,6BAAGA,2BACxBA,uCAAwB,eACsDA,yCAAcA,2BAC1FA,6CACFA,2BACAA,uCAAwB,eACsDA,yCAAcA,2BAC1FA,6CAEFA,2BAEAA,+BAEAA,uCAAwB,eAC0CA,uCAAYA,2BAC5EA,wCAAsB,cAAtBA,CAAsB,eAE6BA,6FAA/CA,+BAIJA,mCACFA,2BAEAA,qCAAK,qCAMDA,sDAAa6Q,oBAAuB,GACtC7Q,mCAMRA,wCAA6D,YAA7DA,CAA6D,WAA7DA,CAA6D,YAGlCA,kCAAQA,2BAC7BA,uCAAwB,eACyDA,6CAAkBA,2BACjGA,6CACFA,2BAEAA,uCAAwB,eACqDA,wCAAaA,2BACxFA,6CAEFA,2BAEAA,+BAEAA,uCAAqBA,+BAAKA,2BAC1BA,uCAAwB,eAC2DA,+CAAoBA,2BACrGA,6CAIFA,2BAEAA,uCAAwB,eACuDA,0CAAeA,2BAC5FA,6CAEFA,2BAEAA,sDAA+E,8BAEjFA,+BAIJA,8CA2FAA,yCAA+D,WAA/DA,CAA+D,eAEmBA,iCAAMA,6BAEtFA,wCAA6B,YAA7BA,CAA6B,gBAE+CA,kDAAsBA,2BAC9FA,8CACFA,2BAEAA,wCAAwB,gBACqDA,yCAAaA,2BACxFA,8CAEFA,2BAEAA,wCAAwB,gBAEpBA,mDACFA,2BACAA,8CAKFA,2BAEAA,wCAAwB,gBACyDA,6CAAiBA,2BAChGA,8CAEFA,+BAIJA,yCAA2E,cAEvEA,4DACFA,sCA/RIA,iFAA+B,qCAiBhCA,0EAqBUA,uEAEwBA,uFACnBA,qGACAA,qGAMLA,2EACQA,8EAA8B,0CAA9BA,CAA8B,eAKtCA,uEAELA,0EAA0B,sCAA1BA,CAA0B,2CAMrBA,mEAELA,sEAAsB,kCAAtBA,CAAsB,2CAMjBA,mEAELA,sEAAsB,kCAAtBA,CAAsB,2CAMjBA,qEACQA,wEAAwB,oCAAxBA,CAAwB,eAMhCA,uEACQA,0EAA0B,uCAGlCA,uEACQA,0EAA0B,sCAA1BA,CAA0B,eAUUA,0FASjDA,0FAAwC,4CAAxCA,CAAwC,2CAAxCA,CAAwC,0CAgBnCA,0EACQA,6EAA6B,0CAIrCA,sEACQA,yEAAyB,qCAAzBA,CAAyB,eAQjCA,4EAELA,+EAA+B,2CAA/BA,CAA+B,eAM1BA,wEACQA,2EAA2B,uCAA3BA,CAA2B,eAIrBA,iFACFA,iFAKrBA,0EAiGOA,mEACQA,sEAAsB,kBAAtBA,CAAsB,mCAI9BA,sEACQA,yEAAyB,kBAAzBA,CAAyB,sCAKjCA,+EAILA,kFAAkC,kBAAlCA,CAAkC,+CAO7BA,0EACQA,6EAA6B,kBAA7BA,CAA6B,0CAQjBA,4SCnRtBuhQ,CAAwB,KCd9B,MAAME,GAA+C,CAC1D,CAAEx2C,MAAO,WAAYzlN,KAAM,WAAY4rD,KAAM,IAC7C,CAAE65J,MAAO,WAAYzlN,KAAM,WAAY4rD,KAAM,IAC7C,CAAE65J,MAAO,eAAgBzlN,KAAM,WAAY4rD,KAAM,IACjD,CAAE65J,MAAO,oBAAqBzlN,KAAM,WAAY4rD,KAAM,IACtD,CAAE65J,MAAO,kBAAmBzlN,KAAM,WAAY4rD,KAAM,KCFhD,MAAOswM,WAAoC5N,GAC/Cp5P,cACEC,MAAMqzG,GACR,CAES2iI,qBACP,OAAOh2O,MAAMg2O,qBAAqBr7N,OAAOmsP,GAC3C,yBCWEzhQ,qCAAgD,UACoCA,+CAAsBA,wDA+TtGA,uCACEA,8CACFA,sEADmBA,gHA3BvBA,uCAAwF,UAAxFA,CAAwF,SAAxFA,CAAwF,UAGIA,wCAAeA,6BAGvGA,qCAAwB,UAC8DA,uCAAcA,6BAGpGA,qCAAwB,UAC4DA,qCAAWA,+BAIjGA,wCAAuD,aAEnDA,mDACFA,2BAEAA,wCACEA,2DAGFA,2BAEAA,2CAGFA,uEAZyBA,sFAKnBA,+DAAiB,mCAIfA,2ECpUP,IAAM2hQ,GAAwB,MAA/B,MAAOA,EASXjnQ,YACUkwI,EACAqiH,EACAmG,EACAliB,GAHAr2O,mBACAA,UACAA,YACAA,wBARVA,gCAA6BizG,GAC7BjzG,qBAAkBkzG,GAShBlzG,KAAKg1O,oBAAsB,IAAI6xB,EACjC,CAEA59N,WACEjpC,KAAKw4P,cACLx4P,KAAK2xP,wBACL3xP,KAAKktI,iBAAiBoK,oBACxB,CAEAkhH,cACEx4P,KAAKy4P,wBAAwBlG,WAAW,kBAAmBvyP,KAAKoyP,GAAGviP,QAAQ7P,KAAK+0F,cAAcX,kBAG9Fp0F,KAAKy4P,wBAAwBlG,WAAW,cAAevyP,KAAKoyP,GAAGviP,QAAQ7P,KAAK+0F,cAAcgd,cAC1F/xG,KAAKy4P,wBAAwBlG,WAAW,eAAgBvyP,KAAKoyP,GAAGviP,QAAQ7P,KAAK+0F,cAAcse,eAC3FrzG,KAAKy4P,wBAAwBlG,WAAW,eAAgBvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAc8Y,eAC7F7tG,KAAKy4P,wBAAwBlG,WAAW,WAAYvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAc8c,WACzF7xG,KAAKy4P,wBAAwBlG,WAAW,WAAYvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAc+c,WACzF9xG,KAAKy4P,wBAAwBlG,WAAW,aAAcvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAcgF,YAAY,IACvG/5F,KAAKy4P,wBAAwBlG,WAC3B,mBACAvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAciS,kBAAkB,IAEzDhnG,KAAKy4P,wBAAwBlG,WAAW,eAAgBvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAcwC,eAC7Fv3F,KAAKy4P,wBAAwBlG,WAAW,eAAgBvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAcuC,cAAc,IAC3Gt3F,KAAKy4P,wBAAwBlG,WAAW,iBAAkBvyP,KAAKoyP,GAAGviP,QAAQ7P,KAAK+0F,cAAciG,iBAC7Fh7F,KAAKy4P,wBAAwBlG,WAAW,oBAAqBvyP,KAAKoyP,GAAGviP,QAAQ7P,KAAK+0F,cAAcgG,oBAGhG/6F,KAAKy4P,wBAAwBlG,WAAW,kBAAmBvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAcoF,kBAChGn6F,KAAKy4P,wBAAwBlG,WAAW,cAAevyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAc8F,aAAa,IACzG76F,KAAKy4P,wBAAwBlG,WAC3B,oBACAvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAc0R,oBAEvCzmG,KAAKy4P,wBAAwBlG,WAAW,gBAAiBvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAc2R,eAAe,IAG7G1mG,KAAKy4P,wBAAwBlG,WAC3B,WACAvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAcqC,UAAU,GAAO,GAAO,IAE/Dp3F,KAAKy4P,wBAAwBlG,WAC3B,cACAvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAcsC,aAAa,GAAO,GAAO,IAElEr3F,KAAKy4P,wBAAwBlG,WAC3B,uBACAvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAc+L,sBAAsB,GAAO,GAAO,IAE3E9gG,KAAKy4P,wBAAwBlG,WAC3B,kBACAvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAc8R,iBAAiB,GAAO,GAAO,IAGtE7mG,KAAK+mQ,sBAAsB/mQ,KAAK+0F,cAAciG,gBAC9Ch7F,KAAKgnQ,kCAAkChnQ,KAAK+0F,cAAcwC,aAC5D,CAEIkhK,8BACF,OAAOz4P,KAAKktI,iBAAiBmK,cAC/B,CAEIvpB,oBACF,OAAO9tH,KAAK+vI,YAAYle,YAAYhP,aAAaqL,oBAAoB,UACvE,CAEAyjI,sBAAsBzmP,GAChBA,IACFlL,KAAK+0F,cAAcX,gBAAkBlpF,GAEnClL,KAAK+0F,cAAcX,kBACrBp0F,KAAKy0P,gBAAkBz0P,KAAK+vI,YAAYle,YAAYhP,aAAaoL,sBAC/DjuH,KAAK+0F,cAAcX,iBAErBp0F,KAAKy4P,wBAAwBz0P,IAAI,mBAAmB6J,SAAS7N,KAAK+0F,cAAcX,iBAChFp0F,KAAKktI,iBAAiBoK,qBAE1B,CAEA2iH,gBAAgBv9O,GACS,8BAAnBA,EAAI84N,aACNx1O,KAAKy4P,wBAAwBz0P,IAAI,qBAAqB6J,SAAS6O,EAAIjL,MACnEzR,KAAK+0F,cAAcgG,kBAAoB/6F,KAAKy4P,wBAAwBz0P,IAAI,qBAAqBkI,MAC7FlM,KAAKq2O,iBAAiBn9F,wBAE1B,CAEA6tH,sBAAsBj4B,GAChBA,GACF9uO,KAAKy4P,wBAAwBz0P,IAAI,gBAAgBA,IAAI,SAAS2+E,UAC9D3iF,KAAKy4P,wBAAwBz0P,IAAI,YAAYA,IAAI,SAAS2+E,UAC1D3iF,KAAKy4P,wBAAwBz0P,IAAI,YAAYA,IAAI,SAAS2+E,UAC1D3iF,KAAKy4P,wBAAwBz0P,IAAI,mBAAmBA,IAAI,SAAS2+E,UACjE3iF,KAAKy4P,wBAAwBz0P,IAAI,qBAAqBA,IAAI,SAAS2+E,YAEnE3iF,KAAKgnQ,kCAAkChnQ,KAAK+0F,cAAc8Y,cAC1D7tG,KAAKgnQ,kCAAkChnQ,KAAK+0F,cAAc8c,UAC1D7xG,KAAKgnQ,kCAAkChnQ,KAAK+0F,cAAc+c,UAC1D9xG,KAAKgnQ,kCAAkChnQ,KAAK+0F,cAAcoF,iBAC1Dn6F,KAAKgnQ,kCAAkChnQ,KAAK+0F,cAAc0R,mBAE1DzmG,KAAKy4P,wBAAwBz0P,IAAI,gBAAgBA,IAAI,SAASovP,SAC9DpzP,KAAKy4P,wBAAwBz0P,IAAI,YAAYA,IAAI,SAASovP,SAC1DpzP,KAAKy4P,wBAAwBz0P,IAAI,YAAYA,IAAI,SAASovP,SAC1DpzP,KAAKy4P,wBAAwBz0P,IAAI,mBAAmBA,IAAI,SAASovP,SACjEpzP,KAAKy4P,wBAAwBz0P,IAAI,qBAAqBA,IAAI,SAASovP,SAEvE,CAEA4T,kCAAkC38K,GAC5BA,EAAO8C,iBAAmBd,uBAC5BhC,EAAO8C,eAAiBd,kBAE5B,CAEI2O,qBACF,OAAOh7F,KAAKy4P,wBAAwBz0P,IAAI,kBAAkBkI,KAC5D,CAAC/L,kDArIU2mQ,GAAwBh5O,yNAAxBg5O,EAAwBv8N,yyHDnBrCplC,sCAA2C,UAA3CA,CAA2C,UAA3CA,CAA2C,aAGWA,qCAAWA,2BAC3DA,sCAAsB,0BAIlBA,+DAAsB6Q,0BAA6B,GACrD7Q,iCAINA,8BAEAA,qCAA4E,SAA5EA,CAA4E,UAEwBA,iCAAOA,6BAEzGA,sCAAwB,WACsDA,mCAASA,6BAGvFA,0CAIAA,sCAAwB,WAC2DA,uCAAYA,6BAG/FA,sCAAwB,WAEpBA,iCACAA,oCACFA,+BAIJA,wCAAuD,YAAvDA,CAAuD,YAAvDA,CAAuD,WAAvDA,CAAuD,WAAvDA,CAAuD,eAKqBA,wCAAaA,2BAC/EA,uCAAsB,eAAtBA,CAAsB,gBAEmCA,6BAAGA,2BACxDA,2CAAqDA,6BAAGA,iCAK9DA,uCAAwB,eAC6CA,yCAAcA,2BACjFA,uCAAsB,eAAtBA,CAAsB,gBAEyBA,8BAAIA,2BAC/CA,2CAA0CA,6BAAGA,iCAKnDA,wCAAqD,cACHA,yCAAcA,2BAE9DA,wCAA6C,YAA7CA,CAA6C,aAGvCA,wDAEFA,2BACAA,wCACEA,iEAIFA,iCAKNA,wCAAiD,cACCA,qCAAUA,2BAE1DA,wCAA6C,YAA7CA,CAA6C,aAGvCA,wDAEFA,2BACAA,wCACEA,iEAEFA,iCAKNA,wCAAiD,cACCA,qCAAUA,2BAE1DA,wCAA6C,YAA7CA,CAA6C,aAGvCA,wDAEFA,2BACAA,wCACEA,iEAEFA,iCAKNA,wCAAmD,cACDA,uCAAYA,2BAE5DA,wCAA6C,YAA7CA,CAA6C,aAGvCA,wDAEFA,2BACAA,wCACEA,iEAEFA,iCAKNA,wCAAyD,cACPA,8CAAmBA,2BAEnEA,wCAA6C,YAA7CA,CAA6C,aAGvCA,wDAEFA,2BACAA,wCACEA,iEAIFA,iCAINA,+BAEAA,uCAAqBA,6BAAGA,2BAExBA,wCAAqD,cACHA,yCAAcA,2BAE9DA,wCAA6C,YAA7CA,CAA6C,aAGvCA,wDAEFA,2BACAA,yCACEA,kEAIFA,iCAKNA,yCAAqD,eACHA,0CAAcA,2BAE9DA,yCAA6C,aAA7CA,CAA6C,cAGvCA,yDAEFA,2BACAA,yCACEA,kEAIFA,iCAINA,gCAEAA,wCAAwB,gBAC0CA,yCAAaA,2BAC7EA,yCAAsB,eAAtBA,CAAsB,gBAMhBA,mDAAU6Q,yCAA4C,GAJxD7Q,iCASNA,sCAAK,+CAMDA,sDAAa6Q,oBAAuB,GACtC7Q,mCAMRA,yCAA6D,aAA7DA,CAA6D,YAA7DA,CAA6D,aAGlCA,mCAAQA,2BAE7BA,yCAAwD,eACNA,8CAAkBA,2BAElEA,yCAA6C,aAA7CA,CAA6C,cAGvCA,yDAEFA,2BACAA,yCACEA,kEAIFA,iCAKNA,yCAAoD,eACFA,yCAAaA,2BAE7DA,yCAA6C,aAA7CA,CAA6C,cAGvCA,yDAEFA,2BACAA,yCACEA,kEAIFA,iCAINA,gCAEAA,wCAAqBA,gCAAKA,2BAE1BA,yCAA0D,eACRA,gDAAoBA,2BAEpEA,yCAA6C,aAA7CA,CAA6C,cAGvCA,yDAIFA,2BACAA,yCACEA,kEAIFA,iCAKNA,yCAAsD,eACJA,2CAAeA,2BAE/DA,yCAA6C,aAA7CA,CAA6C,cAGvCA,yDAEFA,2BACAA,yCACEA,kEAIFA,iCAKNA,wCACEA,+DACiC,uCAInCA,iCAKNA,6CAgCAA,yCAA+D,WAA/DA,CAA+D,eAEmBA,iCAAMA,6BAGtFA,wCAA6B,aAA7BA,CAA6B,eAEuBA,kDAAsBA,2BAEtEA,yCAA6C,aAA7CA,CAA6C,cAGvCA,yDAEFA,2BACAA,yCACEA,kEAEFA,2BACAA,yCACEA,kEAIFA,iCAKNA,yCAAoD,eACFA,yCAAaA,2BAE7DA,yCAA6C,aAA7CA,CAA6C,cAGvCA,yDAEFA,2BACAA,yCACEA,kEAEFA,2BACAA,yCACEA,kEAIFA,iCAKNA,yCAA6D,eACXA,kDAAsBA,2BAEtEA,yCAA6C,aAA7CA,CAA6C,cAGvCA,yDAIFA,2BACAA,yCACEA,kEAIFA,2BACAA,yCACEA,kEAIFA,iCAKNA,yCAAwD,eACNA,4CAAgBA,2BAEhEA,yCAA6C,aAA7CA,CAA6C,cAGvCA,yDAEFA,2BACAA,yCACEA,kEAIFA,2BACAA,yCACEA,kEAIFA,qCAOVA,yCAA4D,cAExDA,4DACFA,wCA1cDA,8DAMKA,iFAA+B,qCAiBhCA,0EAwBeA,sGACAA,qGASAA,2FACAA,0FAW2CA,kGAM/CA,8FAa+CA,8FAIUA,0FAaVA,8FAIUA,0FAaVA,gGAIUA,4FAaVA,sGAM/CA,kGAgB+CA,mGAM/CA,8FAa+CA,kGAM/CA,8FAuBNA,0FAAwC,4CAAxCA,CAAwC,6BAAxCA,CAAwC,0CAsBaA,sGAM/CA,iGAa+CA,iGAM/CA,6FAkBAA,wGAMAA,mGAa+CA,mGAM/CA,+FAQwBA,uFAAqC,iCAGvCA,uFAAqC,iCAOrEA,0EA4CuDA,+FAIUA,0FAMzDA,mEAAqB,0CAa0BA,iGAIUA,6FAMzDA,mEAAqB,6CAerBA,0GAMAA,sGAMAA,mEAAqB,sDAa0BA,qGAM/CA,iGAMAA,mEAAqB,iDAWFA,yWCtbxB2hQ,CAAwB,KCVxBG,GAAyC,MAAhD,MAAOA,EALbpnQ,cAQYG,mBAAgB,IAAI+nC,eAC/B5nC,kDAJY8mQ,EAAyC,8DAAzCA,EAAyC18N,moBCTtDplC,yCACEA,sCAAqD,aACZA,wCAAcA,2BAErDA,sCAA6C,UAA7CA,CAA6C,WAGvCA,sDAEFA,2BACAA,sCACEA,+DAEFA,iCAKNA,uCAAoD,cACXA,uCAAYA,2BAEnDA,uCAA6C,WAA7CA,CAA6C,YAGvCA,uDAEFA,2BACAA,uCACEA,gEAEFA,iCAKNA,uCAAiD,cACRA,oCAASA,2BAEhDA,uCAA6C,WAA7CA,CAA6C,YAGvCA,uDAEFA,2BACAA,uCACEA,gEAEFA,iCAKNA,wCAAsD,cACbA,0CAAeA,2BAEtDA,uCAA6C,WAA7CA,CAA6C,YAGvCA,uDAEFA,2BACAA,uCACEA,gEAEFA,iCAIRA,2CApEcA,iEAO6CA,sGAIUA,kGAaVA,qGAIUA,iGAaVA,kGAIUA,8FAaVA,uGAIUA,2ODrDxD8hQ,CAAyC,KEKhD,MAAgBC,GASpBrnQ,YACYkwI,EACAqiH,EACAmG,GAFAv4P,mBACAA,UACAA,YALZA,8BAA2D,EAMxD,CAqBHw4P,cAEEx4P,KAAKy4P,wBAAwBlG,WAAW,OAAQvyP,KAAKoyP,GAAGviP,QAAQ7P,KAAK+0F,cAAc3xF,OACnFpD,KAAKy4P,wBAAwBlG,WAC3B,0BACAvyP,KAAKoyP,GAAGviP,QAAQ7P,KAAK+0F,cAAcoW,0BAErCnrG,KAAKy4P,wBAAwBlG,WAAW,iBAAkBvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAcqW,iBAC/FprG,KAAKy4P,wBAAwBlG,WAAW,YAAavyP,KAAKoyP,GAAGviP,QAAQ7P,KAAK+0F,cAAcgE,YACxF/4F,KAAKy4P,wBAAwBlG,WAAW,sCAAuCvyP,KAAKoyP,GAAGviP,QAAQ,KAC/F7P,KAAKy4P,wBAAwBlG,WAAW,gCAAiCvyP,KAAKoyP,GAAG1jN,MAAM,KAEvF,UAAWmiE,KAAqB7wG,KAAKmnQ,yBACnCnnQ,KAAKonQ,6BAA6Bv2J,EAEtC,CAEAw2J,yCACE,MAAMC,EAAsBtnQ,KAAKunQ,wCAC3BC,EAA4C,GAElD,UAAWC,KAAsBH,EAAqB,CACpD,MAAMz8K,EAAK7qF,KAAK0nQ,uCAAuCD,EAAoBznQ,KAAK2nQ,mBAG5E3nQ,KAAK4nQ,6CAA6C/8K,EAAG3/E,KAGzDs8P,EAAoB5+P,KAClB5I,KAAK0nQ,uCAAuCD,EAAoBznQ,KAAK2nQ,mBAA+B,CAGxG,OAAOH,CACT,CAEUD,wCAER,MAAMM,EADa7nQ,KAAK6xH,YAAYtyB,iBAAiBv/F,KAAK+0F,cAAcC,aACnCA,YAErC,OAAOh1F,KAAK+vI,YAAYle,YAAYriB,qBAAqB3W,GAChDA,EAAG7D,cAAgB6yK,GAAqBhvK,aAAcX,GAEjE,CAGA4vK,qBACE9nQ,KAAK+nQ,oCAAsC/nQ,KAAKqnQ,wCAClD,CAEAD,6BAA6Bv2J,GAC3B,MAAMm3J,EAAyBhoQ,KAAKoyP,GAAG9zN,MAAM,CAC3CpzB,GAAIlL,KAAKoyP,GAAGviP,QAAQghG,EAAkB3lG,IACtCgnG,qBAAsBlyG,KAAKoyP,GAAGviP,QAAQghG,EAAkBqB,sBACxDpI,YAAa9pG,KAAKu4P,KAAK1oP,QAAQghG,EAAkB/G,aAAa,GAC9DC,SAAU/pG,KAAKu4P,KAAK1oP,QAAQghG,EAAkB9G,UAAU,GACxDF,aAAc7pG,KAAKu4P,KAAK1oP,QAAQghG,EAAkBhH,cAAc,GAChEG,cAAehqG,KAAKu4P,KAAK1oP,QAAQghG,EAAkB7G,eAAe,KAGpEhqG,KAAKioQ,4BAA4Br/P,KAAKo/P,EACxC,CAEUJ,6CAA6C11J,GACrD,MAAMg2J,EAA8BloQ,KAAKmoQ,iCAEzC,UAAWC,KAAyBF,EAClC,GAAIloQ,KAAKqoQ,sBAAsBD,EAAuBl2J,GACpD,OAAO,EAIX,OAAO,CACT,CAEAI,uBACE,GAAItyG,KAAKsoQ,oCACP,OAGF,MAAMj+K,EAASrqF,KAAK+nQ,oCAAoCnoO,KACtDirD,GAAMA,EAAG3/E,KAAOlL,KAAKuoQ,qCAEjBC,EAAcxoQ,KAAK+nQ,oCAAoCvrK,UAC3D3R,GAAMA,EAAG3/E,KAAOlL,KAAKuoQ,qCAEjB13J,EAAoB,IAAImB,GAA6B,GAAIhyG,KAAK+0F,cAAcjL,WAClF+mB,EAAkBqB,qBAAuB7nB,EAAOn/E,GAChDlL,KAAKonQ,6BAA6Bv2J,GAClC7wG,KAAKmnQ,yBAAyBv+P,KAAKioG,GACnC7wG,KAAK+nQ,oCAAoC52P,OAAOq3P,EAAa,EAC/D,CAEUF,oCAGR,QAAStoQ,KAAKmnQ,yBAAyBvnO,KACrCupD,GAAMA,EAAG+oB,uBAAyBlyG,KAAKuoQ,oCAE3C,CAEAE,gBACE,GAA6C,IAAzCzoQ,KAAKmnQ,yBAAyB1iQ,OAChCzE,KAAK+nQ,oCAAsC/nQ,KAAKqnQ,6CAC3C,CACLrnQ,KAAK+nQ,oCAAsC/nQ,KAAKqnQ,yCAChD,QAAS7iQ,EAAI,EAAGA,EAAIxE,KAAKmnQ,yBAAyB1iQ,OAAQD,IACxD,QAAS26E,EAAI,EAAGA,EAAIn/E,KAAK+nQ,oCAAoCtjQ,OAAQ06E,IAEjEn/E,KAAK+nQ,oCAAoC5oL,GAAGj0E,KAAOlL,KAAKmnQ,yBAAyB3iQ,GAAG0tG,sBAEpFlyG,KAAK+nQ,oCAAoC52P,OAAOguE,EAAG,EAAC,CAK9D,CAEAozB,wBAAwB/tG,GACtBxE,KAAKmnQ,yBAAyBh2P,OAAO3M,EAAG,GACxCxE,KAAKioQ,4BAA4B3kB,SAAS9+O,GAC1CxE,KAAKyoQ,eACP,CAIAC,uCACE,OAAO1oQ,KAAKioQ,4BAA4B7wH,QAC1C,CAEImxH,0CACF,OAAOvoQ,KAAKy4P,wBAAwBz0P,IAAI,uCAAuCkI,KACjF,CAEIy8P,sCACF,OACE3oQ,KAAKy4P,wBAAwBrhH,SAASjsC,wBAA2Bj/F,QAAU++F,kBAE/E,CAEI08J,wBACF,OAAO3nQ,KAAKy4P,wBAAwBz0P,IAAI,aAAakI,KACvD,CAEIusP,8BACF,OAAOz4P,KAAKktI,iBAAiBmK,cAC/B,CAIIxlB,kBACF,OAAO7xH,KAAK+vI,YAAYle,WAC1B,4BCzKM1sH,uCACEA,uCAAuD,cACdA,0CAAgBA,2BAEvDA,uCAA6C,WAA7CA,CAA6C,YAGvCA,uDAEFA,2BACAA,uCACEA,gEAIFA,iCAIRA,8EAZ2DA,oGAM/CA,iKA2CNA,0CACEA,kHAASA,0CAAe,EAAxBA,CAAyB,8FAGbA,iDAAsB,GAClCA,sBACFA,uDAHEA,gDAEAA,kJAWNA,uCACEA,uCAAiB,OAAjBA,CAAiB,UAOXA,gCACAA,sBACFA,6BAEFA,oCAAK,YAALA,CAAK,eAICA,0HAASA,qDAA0B,GAGnCA,gCACFA,+BAGJA,wCAA4D,kDAIxDA,kIAAiBA,qDAA0B,GAC7CA,+BAGJA,+BACFA,wGA3BQA,gIAIAA,6GAcCA,mGAEDA,mGAAiD,iCC3G5D,IAAMyjQ,GAA2B,MAAlC,MAAOA,UAAmC1B,GAQ9CrnQ,YAAYkwI,EAA0BqiH,EAAwBmG,GAC5Dz4P,MAAMiwI,EAAaqiH,EAAImG,GALzBv4P,6BAA0BirG,GAC1BjrG,eAAYi4F,EAKZ,CAEAhvD,WACEjpC,KAAKmnQ,yBAAyBv+P,QAAQ5I,KAAK+0F,cAAcsd,+BACzDryG,KAAKw4P,cACLx4P,KAAKktI,iBAAiBoK,qBACtBt3I,KAAKyoQ,eACP,CAEUN,iCACR,OAAOnoQ,KAAK6xH,YAAYriB,qBACtB3W,GAAMA,EAAGtN,WAAa0D,0BAA8C4J,EAAG3tF,KAAOlL,KAAK+0F,cAAc7pF,GAErG,CAEUm9P,sBAAsBD,EAAsCl2J,GACpE,QAAUk2J,EAA4C/1J,8BAA8BzyE,KAClFp7B,GAAKA,EAAE0tG,uBAAyBA,EAEpC,CAEUw1J,uCACR7uK,EACAE,GAEA,OAAOF,EAAGC,2BAA2BC,EACvC,CAGIkvK,kCACF,OAAOjoQ,KAAKy4P,wBAAwBz0P,IAAI,gCAC1C,CAAC7D,kDAzCUyoQ,GAA0B96O,uLAA1B86O,EAA0Br+N,w2EDpBvCplC,qCAAqF,SAArFA,CAAqF,SAEeA,8BAAKA,6BAGvGA,qCAAwB,SAEpBA,+BAEAA,mCACFA,+BAIJA,sCAA6F,UAA7FA,CAA6F,WAA7FA,CAA6F,WAA7FA,CAA6F,YAA7FA,CAA6F,eAMjFA,qDACFA,2BACAA,wCAAsB,eAAtBA,CAAsB,gBAEmCA,gCAAMA,2BAC3DA,2CAA8DA,yCAAeA,iCAKnFA,qDAqBAA,+BAEAA,oCAAIA,6CAAmBA,2BAEvBA,wCAAwB,eACiCA,sCAAWA,2BAElEA,wCAAsB,YAAtBA,CAAsB,YAAtBA,CAAsB,gBAQdA,kDAAU6Q,sBAAoB,GAC9B7Q,2CAAyCA,uBAAwBA,2BACjEA,2CAAyCA,uBAAwBA,2BACjEA,2CAAyCA,uBAAwBA,2BACjEA,2CAAwCA,uBAAuBA,qCAOzEA,wCAAwB,YAAxBA,CAAwB,gBASlBA,8CAOFA,2BAEAA,2CAA8CA,iDAAS6Q,wBAAsB,GAC3E7Q,iCACFA,+BAIJA,2CACEA,qDAiCFA,oCACFA,+BAIJA,wCAA6E,YAEzEA,2DACFA,sCAxIKA,yIAO8CA,uFAUjCA,qGACAA,8GAKCA,0FAqCGA,0FAAiCA,6EACjCA,yFAAiCA,6EACjCA,yFAAiCA,6EACjCA,wFAAgCA,4EAkB3BA,iGAc4BA,oGAwCxBA,8eC1HtByjQ,CAA2B,4BCiGlBzjQ,wCACEA,+CACFA,mDAqBAA,wCACEA,+CACFA,mDAqBAA,wCACEA,+CACFA,mDAiBAA,wCACEA,+CACFA,mDAqBAA,wCACEA,+CACFA,mDAkBEA,wCACEA,+CACFA,mDAuBAA,wCAGEA,+CACFA,mDAuBAA,wCAGEA,+CACFA,sDApEVA,oCAAgE,WAAhEA,CAAgE,cAEgBA,oCAAUA,2BACtFA,uCAA6C,WAA7CA,CAA6C,YAGvCA,uDAEFA,2BACAA,uCACEA,gEAEAA,4CAGFA,iCAKNA,wCAAgE,eAE5DA,qDACFA,2BACAA,wCAA6C,YAA7CA,CAA6C,aAGvCA,wDAIFA,2BACAA,wCACEA,iEAIAA,4CAKFA,iCAKNA,wCAAiE,eAE7DA,sDACFA,2BACAA,wCAA6C,YAA7CA,CAA6C,aAGvCA,wDAIFA,2BACAA,wCACEA,iEAIAA,4CAKFA,mIAnEGA,qEAIgDA,gFAIUA,4EAEhCA,0GAS1BA,oFAQCA,+FAMAA,2FAICA,yHASFA,qFAQCA,gGAMAA,4FAICA,2LA/MjBA,uCAAqG,WAArGA,CAAqG,WAArGA,CAAqG,WAArGA,CAAqG,OAArGA,CAAqG,UAYzFA,gCACAA,sBACFA,+BAGJA,uCAAsB,eAGlBA,8HAASA,oDAA+B,GAGxCA,iCACFA,iCAKNA,+BAEAA,wCAAoD,YAApDA,CAAoD,eAEiCA,kCAAOA,2BACxFA,wCAA6C,YAA7CA,CAA6C,aAGvCA,wDAEFA,2BACAA,wCACEA,iEAIAA,4CAGFA,iCAKNA,wCAAuD,eAEnDA,2CACFA,2BACAA,wCAA6C,YAA7CA,CAA6C,aAGvCA,wDAEFA,2BACAA,wCACEA,iEAIAA,4CAGFA,iCAKNA,wCAAwD,eAEpDA,4CACFA,2BACAA,wCAA6C,YAA7CA,CAA6C,aAGvCA,wDAEFA,2BACAA,wCACEA,iEAIAA,4CAGFA,iCAKNA,wCAAqD,eAC6BA,iCAAMA,2BACtFA,wCAA6C,YAA7CA,CAA6C,aAGvCA,wDAEFA,2BACAA,wCACEA,iEAEAA,4CAGFA,iCAKNA,wCAA0D,eAEtDA,8CACFA,2BACAA,wCAA6C,YAA7CA,CAA6C,aAGvCA,wDAEFA,2BACAA,wCACEA,iEAIAA,4CAGFA,iCAKNA,6CA0EFA,4BAAM,qEAvNgEA,6CAQ5DA,wHAEAA,gEAA+C,uBAG/CA,wEAkBLA,2FAEMA,0EAIgDA,qFAM/CA,iFAEyBA,+GAS1BA,2EAMgDA,sFAM/CA,kFAEyBA,gHAS1BA,4EAMgDA,uFAM/CA,mFAEyBA,iHAS1BA,yEAIgDA,oFAIUA,gFAEhCA,8GAS1BA,8EAMgDA,yFAM/CA,qFAEyBA,mHAQ7BA,4GCpMb,IAAM0jQ,GAAkB,MAAzB,MAAOA,EAQXhpQ,YACUkwI,EACAqiH,EACAmG,EACAliB,EACA7vG,GAJAxmI,mBACAA,UACAA,YACAA,wBACAA,oBAERA,KAAKmjQ,iBAAmBnjQ,KAAKq2O,iBAAiB+sB,mCAAmC7qP,UAAU,KACzFvY,KAAKqjQ,OACLrjQ,KAAKmjQ,iBAAiBh7O,aAAW,EAErC,CAEA8gB,WACMjpC,KAAK+0F,cAAcub,yBAA2BjC,cAChD9hD,EAAE,sBAAsBhwC,IAAI8xF,eACnBruG,KAAK+0F,cAAcub,yBAA2BjC,YACvD9hD,EAAE,sBAAsBhwC,IAAI8xF,YAG9BruG,KAAK8oQ,qBAAuB9oQ,KAAKoyP,GAAG9zN,MAAM,IAC1Ct+B,KAAK+oQ,sBAAsB/oQ,KAAK+0F,cAAcub,uBAChD,CAEA04J,iCACE,UAAWC,KAAejpQ,KAAK+0F,cAAc//D,SAC3Ch1B,KAAK8oQ,qBAAqBvW,WACxB0W,EAAY/9P,GACZlL,KAAKoyP,GAAG9zN,MAAM,CACZmwE,cAAezuG,KAAKu4P,KAAK1oP,QAAQo5P,EAAYx6J,eAAe,GAAO,GAAO,EAAO,CAACikJ,yBAClFhkJ,eAAgB1uG,KAAKu4P,KAAK1oP,QAAQo5P,EAAYv6J,gBAAgB,GAAO,GAAO,EAAO,CAACgkJ,yBACpF/jJ,gBAAiB3uG,KAAKu4P,KAAK1oP,QAAQo5P,EAAYt6J,iBAAiB,GAAO,GAAO,EAAO,CAAC+jJ,yBACtF9jJ,aAAc5uG,KAAKu4P,KAAK1oP,QAAQo5P,EAAYr6J,cAAc,GAAO,GAAO,EAAO,CAAC8jJ,yBAChF7jJ,kBAAmB7uG,KAAKu4P,KAAK1oP,QAAQo5P,EAAYp6J,mBAAmB,GAAO,GAAO,EAAO,CACvF6jJ,2BAKV,CAEQqW,sBAAsBG,GAC5B,GAAIA,IAA4B76J,WAC9B,UAAW46J,KAAejpQ,KAAK+0F,cAAc//D,SAC3Ch1B,KAAK8oQ,qBAAqBvW,WACxB0W,EAAY/9P,GACZlL,KAAKoyP,GAAG9zN,MAAM,CACZmwE,cAAezuG,KAAKu4P,KAAK1oP,QAAQo5P,EAAYx6J,eAAe,GAAO,GAAO,EAAO,CAACikJ,yBAClFhkJ,eAAgB1uG,KAAKu4P,KAAK1oP,QAAQo5P,EAAYv6J,gBAAgB,GAAO,GAAO,EAAO,CAACgkJ,yBACpF/jJ,gBAAiB3uG,KAAKu4P,KAAK1oP,QAAQo5P,EAAYt6J,iBAAiB,GAAO,GAAO,EAAO,CAAC+jJ,yBACtF9jJ,aAAc5uG,KAAKu4P,KAAK1oP,QAAQo5P,EAAYr6J,cAAc,GAAO,GAAO,EAAO,CAAC8jJ,yBAChF7jJ,kBAAmB7uG,KAAKu4P,KAAK1oP,QAAQo5P,EAAYp6J,mBAAmB,GAAO,GAAO,EAAO,CACvF6jJ,yBAEF5jJ,SAAU9uG,KAAKu4P,KAAK1oP,QAAQo5P,EAAYn6J,UAAU,GAAO,GAAO,EAAO,CAAC4jJ,yBACxE3jJ,wBAAyB/uG,KAAKu4P,KAAK1oP,QAAQo5P,EAAYl6J,yBAAyB,GAAO,GAAO,EAAO,CACnG2jJ,yBAEF1jJ,yBAA0BhvG,KAAKu4P,KAAK1oP,QAAQo5P,EAAYj6J,0BAA0B,GAAO,GAAO,EAAO,CACrG0jJ,iCAMR1yP,KAAKgpQ,gCAET,CAEOG,+BACLnpQ,KAAKipQ,YAAc,IAAI16J,GAAiB,GAAIvuG,KAAK+0F,cAAcjL,WAC/D9pF,KAAK+0F,cAAcic,qBAAqBhxG,KAAKipQ,aAC7CjpQ,KAAK+oQ,sBAAsB/oQ,KAAK+0F,cAAcub,uBAChD,CAEOa,uBAAuB37E,GAC5Bx1B,KAAK+0F,cAAcoc,uBAAuB37E,GAC1Cx1B,KAAK8oQ,qBAAqBvxH,cAAc/hH,EAAQtqB,IAChDlL,KAAK+oQ,sBAAsB/oQ,KAAK+0F,cAAcub,uBAChD,CAEA84J,yBAAyBC,GACnBA,IAAkB/6J,iBACpBtuG,KAAK+0F,cAAcsb,kBAAoB/B,eAE3C,CAEAg7J,8BAA8BnE,GACxBA,IAAqB92J,eACvBruG,KAAK+0F,cAAcub,uBAAyBjC,cAC5CruG,KAAKupQ,yBAAyBvpQ,KAAK+0F,cAAcub,yBACxC60J,IAAqB92J,YAC9BruG,KAAK+0F,cAAcub,uBAAyBjC,WAC5CruG,KAAKupQ,yBAAyBvpQ,KAAK+0F,cAAcub,0BAEjDtwG,KAAK+0F,cAAcub,uBAAyBjC,aAC5CruG,KAAKupQ,yBAAyBvpQ,KAAK+0F,cAAcub,wBAErD,CAEAi5J,yBAAyBC,GACvB,UAAWp4J,KAAOpxG,KAAK+0F,cAAc//D,SACnCh1B,KAAK8oQ,qBAAqBvxH,cAAcnmC,EAAIlmG,IACxCs+P,IAAgBn7J,aAClB+C,EAAIrC,wBAAwB7iG,WAAQ+B,EACpCmjG,EAAIpC,yBAAyB9iG,WAAQ+B,EACrCmjG,EAAItC,SAAS5iG,WAAQ+B,GAEvBjO,KAAK+oQ,sBAAsBS,EAE/B,CAEAC,+BAA+Bv+P,EAAYw+P,GACzC,OACE1pQ,KAAK8oQ,qBAAqB9kQ,IAAIkH,GAAIlH,IAAI0lQ,GAAe1lQ,IAAI,SAASw3D,QAClEx7D,KAAK8oQ,qBAAqB9kQ,IAAIkH,GAAIlH,IAAI0lQ,GAAe1lQ,IAAI,SAASisK,OAEtE,CAEA05F,gCACE,UAAWn0O,KAAWx1B,KAAK+0F,cAAc//D,SAAU,CACjD,IAAI61D,EAAK7qF,KAAK8oQ,qBAAqB9kQ,IAAIwxB,EAAQtqB,IAAIlH,IAAI,iBAAiBkI,MACxElM,KAAKwmI,aAAaj/H,IAAIsjF,EAAIr1D,EAAQi5E,eAElC5jB,EAAK7qF,KAAK8oQ,qBAAqB9kQ,IAAIwxB,EAAQtqB,IAAIlH,IAAI,kBAAkBkI,MACrElM,KAAKwmI,aAAaj/H,IAAIsjF,EAAIr1D,EAAQk5E,gBAElC7jB,EAAK7qF,KAAK8oQ,qBAAqB9kQ,IAAIwxB,EAAQtqB,IAAIlH,IAAI,mBAAmBkI,MACtElM,KAAKwmI,aAAaj/H,IAAIsjF,EAAIr1D,EAAQm5E,iBAElC9jB,EAAK7qF,KAAK8oQ,qBAAqB9kQ,IAAIwxB,EAAQtqB,IAAIlH,IAAI,gBAAgBkI,MACnElM,KAAKwmI,aAAaj/H,IAAIsjF,EAAIr1D,EAAQo5E,cAElC/jB,EAAK7qF,KAAK8oQ,qBAAqB9kQ,IAAIwxB,EAAQtqB,IAAIlH,IAAI,qBAAqBkI,MACxElM,KAAKwmI,aAAaj/H,IAAIsjF,EAAIr1D,EAAQq5E,kBAAiB,CAEvD,CAEA+6J,kCACE5pQ,KAAK2pQ,gCACL,UAAWn0O,KAAWx1B,KAAK+0F,cAAc//D,SAAU,CACjD,IAAI61D,EAAK7qF,KAAK8oQ,qBAAqB9kQ,IAAIwxB,EAAQtqB,IAAIlH,IAAI,YAAYkI,MACnElM,KAAKwmI,aAAaj/H,IAAIsjF,EAAIr1D,EAAQs5E,UAElCjkB,EAAK7qF,KAAK8oQ,qBAAqB9kQ,IAAIwxB,EAAQtqB,IAAIlH,IAAI,2BAA2BkI,MAC9ElM,KAAKwmI,aAAaj/H,IAAIsjF,EAAIr1D,EAAQu5E,yBAElClkB,EAAK7qF,KAAK8oQ,qBAAqB9kQ,IAAIwxB,EAAQtqB,IAAIlH,IAAI,4BAA4BkI,MAC/ElM,KAAKwmI,aAAaj/H,IAAIsjF,EAAIr1D,EAAQw5E,yBAAwB,CAE9D,CAEAq0J,OACMrjQ,KAAK+0F,cAAcub,yBAA2BjC,WAChDruG,KAAK4pQ,kCAEL5pQ,KAAK2pQ,+BAET,CAACxpQ,kDAtKU0oQ,GAAkB/6O,2PAAlB+6O,EAAkBt+N,w9EDjB/BplC,qCAAmE,SAAnEA,CAAmE,SAEiCA,8BAAKA,6BAGvGA,qCAAwB,SAEpBA,+BACAA,mCACFA,+BAIJA,sCAAuD,UAAvDA,CAAuD,WAAvDA,CAAuD,WAAvDA,CAAuD,YAI1BA,gCAAMA,2BAC3BA,+BAAM,SAGNA,wCAAwB,eACkDA,+CAAoBA,2BAE5FA,wCAA6C,gBAGzCA,mDAAU6Q,0CAA6C,GAEvD7Q,2CAA4BA,qCAAWA,iCAK7CA,wCAAwB,eACuDA,oDAAyBA,2BACtGA,wCAAkD,gBAG9CA,mDAAU6Q,+CAAkD,GAE5D7Q,2CAA0BA,mCAASA,2BACnCA,2CAA2BA,oCAAUA,2BACrCA,2CAAwBA,iCAAOA,iCAKrCA,wCAAwB,eACoDA,uCAAYA,2BACtFA,6CACFA,2BACAA,+BAEAA,uCAAqBA,kCAAQA,2BAC7BA,+BAAM,SAENA,wCAAuB,YAAvBA,CAAuB,YAAvBA,CAAuB,gBAIfA,iDAAS6Q,gCAA8B,GAIvC7Q,iCACFA,iCAKNA,wCACEA,6CAyNFA,iCAKNA,wCAAqE,YAEjEA,2DACFA,sCAxPaA,sEACQA,wEAAwB,qCAqBpCA,qFACsBA,oFAgOAA,8cCvRtB0jQ,CAAkB,+BCiBvB1jQ,uCACEA,uCAAuD,cACdA,0CAAgBA,2BAEvDA,uCAA6C,WAA7CA,CAA6C,YAGvCA,uDAEFA,2BACAA,uCACEA,gEAIFA,iCAIRA,8EAZ2DA,oGAM/CA,iKA2CNA,0CACEA,kHAASA,0CAAe,EAAxBA,CAAyB,8FAGbA,iDAAsB,GAClCA,sBACFA,uDAHEA,gDAEAA,kJAWNA,uCACEA,uCAAiB,OAAjBA,CAAiB,UAOXA,gCACAA,sBACFA,6BAEFA,oCAAK,YAALA,CAAK,eAICA,0HAASA,qDAA0B,GAGnCA,gCACFA,+BAGJA,wCAA4D,kDAIxDA,kIAAiBA,qDAA0B,GAC7CA,+BAGJA,+BACFA,wGA3BQA,gIAIAA,6GAcCA,mGAEDA,mGAAiD,iCCjH5D,IAAM0kQ,GAAyB,MAAhC,MAAOA,UAAiC3C,GAO5CrnQ,YAAYkwI,EAA0BqiH,EAAwBmG,GAC5Dz4P,MAAMiwI,EAAaqiH,EAAImG,GALzBv4P,6BAA0BirG,GAC1BjrG,eAAYi4F,EAKZ,CAEAhvD,WACEjpC,KAAKmnQ,yBAAyBv+P,QAAQ5I,KAAK+0F,cAAcsd,+BACzDryG,KAAKw4P,cACLx4P,KAAKktI,iBAAiBoK,qBACtBt3I,KAAKyoQ,eACP,CAESjQ,cACP14P,MAAM04P,cAENx4P,KAAKy4P,wBAAwBlG,WAC3B,eACAvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAc8U,cAAc,GAAM,GAAO,IAGlE7pG,KAAKy4P,wBAAwBlG,WAC3B,WACAvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAcgV,UAAU,GAAM,GAAO,IAG9D/pG,KAAKy4P,wBAAwBlG,WAC3B,cACAvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAc+U,aAAa,GAAM,GAAO,GAEnE,CAEUq+J,iCACR,OAAOnoQ,KAAK6xH,YAAYriB,qBACtB3W,GAAMA,EAAGtN,WAAa0D,wBAA4C4J,EAAG3tF,KAAOlL,KAAK+0F,cAAc7pF,GAEnG,CAEUm9P,sBAAsBD,EAAsCl2J,GACpE,QAAUk2J,EAA0C/1J,8BAA8BzyE,KAChFp7B,GAAKA,EAAE0tG,uBAAyBA,EAEpC,CAEUw1J,uCACR7uK,EACAE,GAEA,OAAOF,EAAGG,0BAA0BD,EACtC,CAEIkvK,kCACF,OAAOjoQ,KAAKy4P,wBAAwBz0P,IAAI,gCAC1C,CAEay0P,8BACX,OAAOz4P,KAAKktI,iBAAiBmK,cAC/B,CAACl3I,kDA9DU0pQ,GAAwB/7O,uLAAxB+7O,EAAwBt/N,s5FDlBrCplC,qCAAqF,SAArFA,CAAqF,SAEeA,8BAAKA,6BAGvGA,qCAAwB,SAC2DA,sCAAYA,6BAG/FA,qCAAwB,SAEpBA,+BAEAA,oCACFA,+BAIJA,uCAA6F,WAA7FA,CAA6F,WAA7FA,CAA6F,YAA7FA,CAA6F,YAA7FA,CAA6F,eAMjFA,qDACFA,2BACAA,wCAAsB,eAAtBA,CAAsB,gBAEmCA,gCAAMA,2BAC3DA,2CAA8DA,yCAAeA,iCAKnFA,qDAqBAA,+BAEAA,oCAAIA,6CAAmBA,2BAEvBA,wCAAwB,eACiCA,sCAAWA,2BAElEA,wCAAsB,YAAtBA,CAAsB,YAAtBA,CAAsB,gBAQdA,kDAAU6Q,sBAAoB,GAC9B7Q,2CAAyCA,uBAAwBA,2BACjEA,2CAAyCA,uBAAwBA,2BACjEA,2CAAyCA,uBAAwBA,2BACjEA,2CAAwCA,uBAAuBA,qCAOzEA,wCAAwB,YAAxBA,CAAwB,gBASlBA,8CAOFA,2BAEAA,2CAA8CA,iDAAS6Q,wBAAsB,GAC3E7Q,iCACFA,+BAIJA,2CACEA,qDAiCFA,oCACFA,+BAIJA,wCAA+D,UAA/DA,CAA+D,cAEmBA,gCAAMA,6BAEtFA,wCACEA,wCACEA,wCAAqD,eACZA,oCAASA,2BAEhDA,wCAA6C,YAA7CA,CAA6C,aAGvCA,wDAEFA,2BACAA,wCACEA,iEAEFA,2BACAA,wCACEA,iEAGFA,iCAKNA,wCAAiD,eACRA,oCAASA,2BAEhDA,wCAA6C,YAA7CA,CAA6C,aAGvCA,wDAEFA,2BACAA,wCACEA,iEAEFA,2BACAA,wCACEA,iEAGFA,iCAKNA,wCAAoD,eACXA,uCAAYA,2BAEnDA,wCAA6C,YAA7CA,CAA6C,aAGvCA,wDAEFA,2BACAA,wCACEA,iEAEFA,2BACAA,wCACEA,iEAGFA,iCAIRA,oCACFA,6BAGFA,wCAA2E,YAEvEA,2DACFA,sCAnNKA,yIAO8CA,uFAUjCA,qGACAA,8GAKCA,0FAqCGA,0FAAiCA,6EACjCA,yFAAiCA,6EACjCA,yFAAiCA,6EACjCA,wFAAgCA,4EAkB3BA,iGAc4BA,oGAkDMA,mGAIUA,8FAMzDA,mEAY+CA,8FAIUA,0FAMzDA,mEAY+CA,iGAIUA,6FAMzDA,mEAWiBA,+eC3MtB0kQ,CAAyB,KCJzBC,GAAoB,MAA3B,MAAOA,EAIXjqQ,YAAoBuyP,EAAgCmG,GAAhCv4P,UAAgCA,WAA0B,CAE9EipC,WACEjpC,KAAKw4P,cACLx4P,KAAKktI,iBAAiBoK,qBACtBt3I,KAAKwkQ,eACP,CAEAhM,cACEx4P,KAAKy4P,wBAAwBlG,WAAW,OAAQvyP,KAAKoyP,GAAGviP,QAAQ7P,KAAK+0F,cAAc3xF,OACnFpD,KAAKy4P,wBAAwBlG,WAAW,iBAAkBvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAcqW,iBAC/FprG,KAAKy4P,wBAAwBlG,WAC3B,sBACAvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAcwe,sBAEvCvzG,KAAKy4P,wBAAwBlG,WAC3B,oBACAvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAcwV,oBAEvCvqG,KAAKy4P,wBAAwBlG,WAAW,QAASvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAcye,QACtFxzG,KAAKy4P,wBAAwBlG,WAC3B,wBACAvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAcqE,wBAEvCp5F,KAAKy4P,wBAAwBlG,WAC3B,sBACAvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAcsE,sBAEvCr5F,KAAKy4P,wBAAwBlG,WAAW,eAAgBvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAcuC,cAAc,IAE3Gt3F,KAAKy4P,wBAAwBlG,WAC3B,eACAvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAc0W,cAAc,GAAO,GAAO,IAEnEzrG,KAAKy4P,wBAAwBlG,WAC3B,sBACAvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAc2W,qBAAqB,GAAO,GAAO,GAE5E,CAEA84J,gBACE,MAAM16J,EAAc9pG,KAAKy4P,wBAAwBz0P,IAAI,qBAAqBA,IAAI,SACxE+lG,EAAW/pG,KAAKy4P,wBAAwBz0P,IAAI,kBAAkBA,IAAI,SAClEgmG,EAAgBhqG,KAAKy4P,wBAAwBz0P,IAAI,uBAAuBA,IAAI,SAC5EwvG,EAAQxzG,KAAKy4P,wBAAwBz0P,IAAI,SAASA,IAAI,SAGtD+lQ,EAA8D,CAClE,CAAC/pQ,KAAK+0F,cAAcwV,kBAAmBT,GACvC,CAAC9pG,KAAK+0F,cAAcqW,eAAgBrB,GACpC,CAAC/pG,KAAK+0F,cAAcwe,oBAAqBvJ,GACzC,CAAChqG,KAAK+0F,cAAcye,MAAOA,IAGvBw2J,EAA6BD,EAAmBhyP,OAAOmyB,GAEpD2iD,GAAa3iD,EAAK,GAAGh+B,QAAUg+B,EAAK,GAAGijD,iBAAmBd,sBAOnE,GAJ0B09K,EAAmBhyP,OAAOmyB,IAC1C2iD,GAAa3iD,EAAK,GAAGh+B,QAAUg+B,EAAK,GAAGijD,iBAAmBd,sBAG9C5nF,QAAUulQ,EAA2BvlQ,OACzD,QAASD,EAAI,EAAGA,EAAIwlQ,EAA2BvlQ,OAAQD,IACrDwlQ,EAA2BxlQ,GAAG,GAAG2oF,eAAiBd,qBAClD29K,EAA2BxlQ,GAAG,GAAGm+E,eAGnConL,EAAmBpkQ,QAAQukC,IACzBA,EAAK,GAAGijD,eAAiBd,kBACzBniD,EAAK,GAAGkpN,QAAM,EAGpB,CAEIqF,8BACF,OAAOz4P,KAAKktI,iBAAiBmK,cAC/B,CAACl3I,kDAlFU2pQ,GAAoBh8O,qJAApBg8O,EAAoBv/N,w2DCdjCplC,qCAAqF,SAArFA,CAAqF,SAEeA,8BAAKA,6BAGvGA,qCAAwB,SAC0DA,oCAAWA,6BAG7FA,qCAAwB,SAEpBA,+BAEAA,oCACFA,+BAIJA,uCAA6F,WAA7FA,CAA6F,WAA7FA,CAA6F,YAA7FA,CAA6F,aAIxDA,iDAAS6Q,iBAAe,GACnD7Q,uCAAqBA,oCAAUA,2BAC/BA,+BAAM,SAGNA,wCACEA,wCAA4D,eACnBA,mCAAQA,2BAE/CA,wCAA6C,YAA7CA,CAA6C,aAGvCA,wDAIFA,2BACAA,wCACEA,iEAIFA,iCAKNA,wCAA0D,eACjBA,uCAAYA,2BAEnDA,wCAA6C,YAA7CA,CAA6C,aAGvCA,wDAIFA,2BACAA,wCACEA,iEAIFA,iCAKNA,wCAAuD,eACdA,oCAASA,2BAEhDA,wCAA6C,YAA7CA,CAA6C,aAGvCA,wDAEFA,2BACAA,wCAAsB,2CAIlBA,6BACFA,mCAMRA,wCAA8C,eACLA,gCAAKA,2BAE5CA,wCAA6C,YAA7CA,CAA6C,aAGvCA,wDAEFA,2BACAA,wCAAsB,2CAElBA,6BACFA,mCAMRA,uCAAqBA,6BAAGA,2BACxBA,+BAAM,SAGNA,wCAA8D,eACrBA,oDAAyBA,2BAEhEA,wCAA6C,YAA7CA,CAA6C,aAGvCA,wDAIFA,2BACAA,wCACEA,iEAIFA,iCAKNA,wCAA4D,eACnBA,wDAA6BA,2BAEpEA,wCAA6C,YAA7CA,CAA6C,aAGvCA,wDAIFA,2BACAA,wCACEA,iEAIFA,iCAINA,wCAAqD,eACZA,yCAAcA,2BACrDA,wCAA6C,YAA7CA,CAA6C,aAGvCA,wDAEFA,2BACAA,wCACEA,iEAIFA,iCAIRA,oCACFA,iCAKNA,wCAA+D,UAA/DA,CAA+D,cAEmBA,gCAAMA,6BAEtFA,wCACEA,wCACEA,wCAAqD,eACZA,iDAAsBA,2BAE7DA,wCAA6C,aAA7CA,CAA6C,cAGvCA,yDAEFA,2BACAA,yCACEA,kEAEFA,2BACAA,yCACEA,kEAIFA,iCAKNA,yCAA4D,gBACnBA,kDAAsBA,2BAE7DA,yCAA6C,aAA7CA,CAA6C,cAGvCA,yDAIFA,2BACAA,yCACEA,kEAIFA,2BACAA,yCACEA,kEAIFA,iCAIRA,oCACFA,6BAGFA,yCAAuE,aAEnEA,4DACFA,sCAnOKA,yIAO8CA,uFAkBjCA,0GAMAA,qGAeAA,uGAMAA,mGAa+CA,oGAM/CA,gGAc+CA,2FAIUA,uFAoBzDA,4GAMAA,uGAeAA,yGAMAA,qGAW+CA,kGAM/CA,8FAwB2CA,mGAIUA,8FAMzDA,mEAAqB,8CAerBA,yGAMAA,qGAMAA,mEAAqB,qDAYJA,6ND/NtB2kQ,CAAoB,KEHpBG,GAAoB,MAA3B,MAAOA,EAIXpqQ,YAAoBuyP,EAAgCmG,GAAhCv4P,UAAgCA,WAA0B,CAE9EipC,WACEjpC,KAAKw4P,aACP,CAEAnsM,kBACErsD,KAAKktI,iBAAiBoK,oBACxB,CAEAkhH,cACEx4P,KAAKy4P,wBAAwBlG,WAAW,OAAQvyP,KAAKoyP,GAAGviP,QAAQ7P,KAAK+0F,cAAc3xF,OACnFpD,KAAKy4P,wBAAwBlG,WAC3B,iBACAvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAcgf,gBAAgB,IAEvD/zG,KAAKy4P,wBAAwBlG,WAAW,iBAAkBvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAcmO,iBAC/FljG,KAAKy4P,wBAAwBlG,WAC3B,qBACAvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAc+e,qBAEvC9zG,KAAKy4P,wBAAwBlG,WAAW,eAAgBvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAcuC,cAAc,IAE3Gt3F,KAAKy4P,wBAAwBlG,WAAW,UAAWvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAc8B,UACxF72F,KAAKy4P,wBAAwBlG,WAAW,gBAAiBvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAc+B,gBAC9F92F,KAAKy4P,wBAAwBlG,WAAW,YAAavyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAcgC,YAC1F/2F,KAAKy4P,wBAAwBlG,WAC3B,oBACAvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAciC,mBAAmB,IAE1Dh3F,KAAKy4P,wBAAwBlG,WAAW,YAAavyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAc6B,YAC1F52F,KAAKy4P,wBAAwBlG,WAAW,YAAavyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAckC,WAAW,IAErGj3F,KAAKy4P,wBAAwBlG,WAAW,iBAAkBvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAcmC,iBAC/Fl3F,KAAKy4P,wBAAwBlG,WAAW,aAAcvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAcoC,YAAY,GACzG,CAEIshK,8BACF,OAAOz4P,KAAKktI,iBAAiBmK,cAC/B,CAACl3I,kDA3CU8pQ,GAAoBn8O,qJAApBm8O,EAAoB1/N,+uDCXjCplC,qCAAmE,SAAnEA,CAAmE,SAEiCA,gCAAOA,6BAEzGA,qCAAwB,SACsDA,kCAASA,6BAGvFA,qCAAwB,SAEpBA,+BAEAA,oCACFA,+BAIJA,uCACEA,wCACEA,uCAA8E,WAA9EA,CAA8E,YAA9EA,CAA8E,YAA9EA,CAA8E,eAI/BA,wCAAaA,2BACpDA,wCAA6C,YAA7CA,CAA6C,aAGvCA,wDAEFA,2BACAA,wCACEA,iEAIFA,iCAKNA,+BACAA,uCAAqBA,qCAAWA,2BAEhCA,wCAAuD,eACdA,2CAAgBA,2BACvDA,wCAA6C,YAA7CA,CAA6C,aAGvCA,wDAEFA,2BACAA,wCACEA,iEAIFA,iCAKNA,+BACAA,uCAAqBA,6BAAGA,2BAExBA,wCAA2D,eAClBA,sEAA2CA,2BAClFA,wCAA6C,YAA7CA,CAA6C,aAGvCA,wDAIFA,2BACAA,wCACEA,iEAIFA,iCAKNA,wCAAqD,eACZA,yCAAcA,2BACrDA,wCAA6C,YAA7CA,CAA6C,aAGvCA,wDAEFA,2BACAA,wCACEA,iEAIFA,iCAKNA,+BACAA,uCAAqBA,mCAASA,6BAEhCA,wCACEA,8DACiC,sCAGnCA,+BAIJA,wCAA6D,WAA7DA,CAA6D,YAA7DA,CAA6D,YAGlCA,8BAAIA,2BAEzBA,wCAAgD,eACPA,oCAASA,2BAChDA,wCAA6C,YAA7CA,CAA6C,aAGvCA,wDAEFA,2BACAA,wCACEA,iEAEFA,iCAKNA,wCAAsD,eACbA,sCAAWA,2BAClDA,wCAA6C,YAA7CA,CAA6C,aAGvCA,wDAEFA,2BACAA,wCACEA,iEAIFA,iCAKNA,wCAAkD,eACTA,iCAAMA,2BAC7CA,wCAA6C,YAA7CA,CAA6C,aAGvCA,wDAEFA,2BACAA,wCACEA,iEAEFA,iCAKNA,wCAA0D,eACjBA,+BAAIA,2BAC3CA,wCAA6C,aAA7CA,CAA6C,cAGvCA,yDAIFA,2BACAA,yCACEA,kEAIFA,iCAKNA,yCAAkD,gBACTA,kCAAMA,2BAC7CA,yCAA6C,aAA7CA,CAA6C,cAGvCA,yDAEFA,2BACAA,yCACEA,kEAEFA,iCAKNA,yCAAkD,gBACTA,kCAAMA,2BAC7CA,yCAA6C,aAA7CA,CAA6C,cAGvCA,yDAEFA,2BACAA,yCACEA,kEAEFA,iCAKNA,gCACAA,wCAAqBA,gCAAKA,2BAE1BA,yCAAuD,gBACdA,4CAAgBA,2BACvDA,yCAA6C,aAA7CA,CAA6C,cAGvCA,yDAEFA,2BACAA,yCACEA,kEAIFA,iCAKNA,yCAAmD,gBACVA,kCAAMA,2BAC7CA,yCAA6C,aAA7CA,CAA6C,cAGvCA,yDAEFA,2BACAA,yCACEA,kEAEFA,uCAOdA,oCAEAA,yCAAuE,aAEnEA,4DACFA,sCA/PKA,yIAO8CA,uFAUYA,qGAM/CA,gGAe+CA,qGAM/CA,gGAiBAA,yGAMAA,oGAY+CA,kGAM/CA,8FAWsBA,uFAAqC,iCAEvCA,uFAAqC,iCAgBVA,8FAIUA,yFAYVA,mGAM/CA,+FAY+CA,+FAIUA,2FAczDA,uGAMAA,mGAY+CA,+FAIUA,2FAYVA,+FAIUA,2FAeVA,qGAM/CA,gGAY+CA,gGAIUA,4FAa1CA,gOD7PtB8kQ,CAAoB,+BEmBzB9kQ,uCACEA,uCAAuD,cACdA,0CAAgBA,2BAEvDA,uCAA6C,WAA7CA,CAA6C,YAGvCA,uDAEFA,2BACAA,uCACEA,gEAIFA,iCAIRA,8EAZ2DA,oGAM/CA,wHA+CNA,qCAA2EA,6CAAoBA,mDAC/FA,qCACGA,oEAA2CA,mDAE9CA,qCACGA,8DAAqCA,sDAN1CA,wCACEA,2CACAA,2CAGAA,2CAGFA,yGAPSA,sLACAA,iLAGAA,kPArBbA,uCAGiF,cAE7EA,sBACFA,2BAEAA,uCAA8C,cAM1CA,2HAAUA,uDAA4B,GALxCA,2BAOAA,2CASFA,4BAAM,uDArBCA,4FACLA,gGAGoBA,8EAIlBA,2FAGAA,+FACyBA,oICtEhC,IAAM+kQ,GAAqB,MAA5B,MAAOA,UAA6BxP,GAOxC76P,YAAoBuyP,EAAgCmG,EAAiCxoH,GACnFjwI,QADkBE,UAAgCA,YAAiCA,mBAJrFA,6BAA0BirG,GAElBjrG,aAAU,IAAI2qD,GAKpB3qD,KAAK+sD,QAAQzkD,IACXtI,KAAK+vI,YAAY29G,4BAA4Bn1O,UAAUsgF,IACrD74F,KAAKmmG,gCAAgCtN,EAAG3tF,GAAE,IAI9ClL,KAAK+sD,QAAQzkD,IACXtI,KAAK+vI,YAAYwtH,qBAAqBhlP,UAAU5O,IAC1CA,EAAEkuG,uBAAyB73G,KAAK+0F,cAAc7pF,IAChDlL,KAAKmmG,gCAAgCx8F,EAAEuyF,sBAAqB,IAKlEl8F,KAAK+sD,QAAQzkD,IACXtI,KAAK+vI,YAAYytH,mBAAmBjlP,UAAU5O,IACxCA,EAAEkuG,uBAAyB73G,KAAK+0F,cAAc7pF,IAChDlL,KAAKy9P,6BAA6B9zP,EAAEuyF,sBAAqB,GAIjE,CAEAjzD,WACEjpC,KAAK6Z,OAEL7Z,KAAK2jQ,oCAAoChI,aAAah2P,QAAQ,KAC5D3F,KAAK47P,mCAAiC,GAIxC,UAAWp3P,KAAKxE,KAAK2jQ,oCAAoCvsH,SACvDp3I,KAAK8jQ,2BAA2Bt/P,EAEpC,CAGAg0P,cACEx4P,KAAKy4P,wBAAwBlG,WAAW,OAAQvyP,KAAKoyP,GAAGviP,QAAQ7P,KAAK+0F,cAAc3xF,OACnFpD,KAAKy4P,wBAAwBlG,WAC3B,0BACAvyP,KAAKoyP,GAAGviP,QAAQ7P,KAAK+0F,cAAcoW,0BAErCnrG,KAAKy4P,wBAAwBlG,WAAW,iBAAkBvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAcqW,iBAC/FprG,KAAKy4P,wBAAwBlG,WAAW,gBAAiBvyP,KAAKoyP,GAAGviP,QAAQ7P,KAAK+0F,cAAc8H,gBAC5F78F,KAAKy4P,wBAAwBlG,WAC3B,6BACAvyP,KAAKoyP,GAAG1jN,MAAM1uC,KAAK0jQ,6CAErB1jQ,KAAKw0P,qBAAqBx0P,KAAK+0F,cAAc8H,cAC/C,CAEQ6mK,2CACN,OAAO1jQ,KAAK+0F,cAAc2M,2BAA2Bn6F,IAAIm2F,GAChD19F,KAAK4jQ,6CAA6ClmK,GAE7D,CAEUkmK,6CAA6ClmK,GACrD,MAAMszJ,EAAe1kK,GAAgBoR,EAAGxxF,OAASsgF,IAAakR,EAAGxxF,MAAO,QAAK+B,EAEvE41P,EAAe7jQ,KAAKoyP,GAAGviP,QAAQmhP,EAAc,CAAC0B,uBAAqBA,kBAAe,KAExF,OAAO1yP,KAAKoyP,GAAG9zN,MAAM,CACnBpyB,MAAO23P,GAEX,CAIQpG,6BAA6BtpK,GACnCn0F,KAAK+0F,cAAckR,wBAAwB9R,GAE3C,MACM6vK,EAAYhkQ,KAAK4jQ,6CADZ5jQ,KAAK+0F,cAAc2M,2BAA2B1hG,KAAK+0F,cAAc2M,2BAA2Bj9F,OAAS,IAEhHzE,KAAK2jQ,oCAAoC/6P,KAAKo7P,EAChD,CAQQ79J,gCAAgChS,GACtC,MAAM9iF,EAAQrR,KAAK+0F,cAAc0Y,mCAAmCtZ,IACtD,IAAV9iF,IAIJrR,KAAK2jQ,oCAAoCrgB,SAASjyO,GAClDrR,KAAK+0F,cAAcoR,gCAAgChS,GACrD,CAIIwvK,0CACF,OAAO3jQ,KAAKy4P,wBAAwBz0P,IAAI,6BAC1C,CAEA+hQ,yCAAyCvhQ,GACvC,OAAOxE,KAAK2jQ,oCAAoC3/P,IAAI,GAAGQ,KAAKR,IAAI,QAClE,CAEI2kQ,sCACF,OACE3oQ,KAAKy4P,wBAAwBrhH,SAASjsC,wBAA2Bj/F,QAAU++F,kBAE/E,CAKAupJ,qBAAqB1lB,GACfA,EACF9uO,KAAK2jQ,oCAAoChhL,UAEzC3iF,KAAK2jQ,oCAAoCvQ,QAE7C,CAGAyI,0BAA0BxqP,GACxB,OAAIrR,KAAK+0F,cACA/0F,KAAK+0F,cAAciN,kCAAkC3wF,GAGvD,EACT,CAEAyyP,0BAA0Bt/P,GACxB,MAAMk5F,EAAK19F,KAAK2jQ,oCAAoCvsH,SAAS5yI,GACvDy7P,EAAWvyK,cAAcI,iBAAiB4P,EAAG15F,IAAI,SAASkI,OAE3DqgF,OAAO5/D,MAAMszO,IAChBviK,EAAG15F,IAAI,SAAS6J,SAASqxD,WAAW+gM,EAASvzK,QAAQ,IAEzD,CAEAkvK,oCACE,MAAQxkH,YAAap3I,KAAK2jQ,oCAC1B,GAAIvsH,EAAS3yI,QAAU,EACrB,OAGF,IAAIyf,EAAQ,EAEZ,QAAS1f,EAAI,EAAGA,EAAI4yI,EAAS3yI,OAAS,EAAGD,IAAK,CAC5C,MACMy7P,EAAWvyK,cAAcI,iBADpBspD,EAAS5yI,GAC+BR,IAAI,SAASkI,OAEhE,GAAKqgF,OAAO5/D,MAAMszO,GAGhB,OAFA/7O,GAAS+7O,CAET,CAIJ7oH,EAASA,EAAS3yI,OAAS,GAAGT,IAAI,SAAS6J,SAASqxD,YAAY,EAAIh7C,GAAOwoE,QAAQ,IAAK,CACtF6vK,WAAW,EACXC,uBAAuB,EACvBC,uBAAuB,IAEzBrlH,EAASA,EAAS3yI,OAAS,GAAGT,IAAI,SAAS04P,aAC7C,CAEAh1P,cACE1H,KAAK+sD,QAAQ5kC,aACf,CAAChoB,kDAlLU+pQ,GAAoBp8O,uLAApBo8O,EAAoB3/N,s5DDnBjCplC,qCAAmE,SAAnEA,CAAmE,SAEiCA,8BAAKA,6BAGvGA,qCAAwB,SAEpBA,+BAEAA,mCACFA,+BAIJA,sCAA6F,UAA7FA,CAA6F,WAA7FA,CAA6F,WAA7FA,CAA6F,YAA7FA,CAA6F,eAMjFA,qDACFA,2BACAA,wCAAsB,eAAtBA,CAAsB,gBAEmCA,gCAAMA,2BAC3DA,2CAA8DA,yCAAeA,iCAKnFA,qDAqBAA,wCAA+B,eAC8BA,oCAASA,2BAEpEA,wCAAsB,cAAtBA,CAAsB,eAMhBA,mDAAU6Q,wCAA2C,GAJvD7Q,iCASNA,0CAAuCA,uCAAYA,2BAEnDA,0CAAuCA,8CAAmBA,2BAE1DA,+BAAM,QAANA,CAAM,SAINA,2CA2BFA,+BAIJA,wCAAuE,YAEnEA,2DACFA,sCApGKA,yIAO8CA,uFAUjCA,qGACAA,8GAKCA,0FA8CEA,2GA8BUA,oYCvFtB+kQ,CAAqB,KCVrBC,GAAoC,MAA3C,MAAOA,EAGXtqQ,YAAoBw2O,0BAAqC,CAEzD8jB,mBACM5tM,EAAE,wBAAwB+9B,KAAK,cAGnCtqF,KAAKq2O,iBAAiBl9F,8BACtBn5I,KAAKq2O,iBAAiBp9F,sBAEtBj5I,KAAKq2O,iBAAiBj9F,2BAA2Bp5I,KAAK+0F,cAAc7pF,IACtE,CAAC/K,kDAbUgqQ,GAAoCr8O,gGAApCq8O,EAAoC5/N,wSCTjDplC,sCAAuE,SAClEA,iDAAS6Q,oBAAkB,GAC5B7Q,+BAAsCA,2CACxCA,2BACAA,8BACFA,sCDIaglQ,CAAoC,qEEgFzChlQ,oCAA4B,oCAMxBA,uHAAaA,6CAAuB,GACtCA,2BACAA,8BAAM,QAERA,uEARIA,mFAAiC,4CAAjCA,CAAiC,sCAAjCA,CAAiC,+BC9EtC,IAAMilQ,GAA0B,MAAjC,MAAOA,EAKXvqQ,YAAoBuyP,EAAgCmG,GAAhCv4P,UAAgCA,YAClDA,KAAKg1O,oBAAsB,IAAIikB,GCnBa,oUDoB9C,CAEAhwN,WACEjpC,KAAKw4P,cACLx4P,KAAKktI,iBAAiBoK,oBACxB,CAEAkhH,cACEx4P,KAAKy4P,wBAAwBlG,WAAW,OAAQvyP,KAAKoyP,GAAGviP,QAAQ7P,KAAK+0F,cAAc3xF,OACnFpD,KAAKy4P,wBAAwBlG,WAAW,WAAYvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAc0gB,WACzFz1G,KAAKy4P,wBAAwBlG,WAAW,QAASvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAcye,QACtFxzG,KAAKy4P,wBAAwBlG,WAAW,UAAWvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAc2gB,UAExF11G,KAAKy4P,wBAAwBlG,WAC3B,wBACAvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAcqE,wBAEvCp5F,KAAKy4P,wBAAwBlG,WAC3B,sBACAvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAcsE,sBAEvCr5F,KAAKy4P,wBAAwBlG,WAAW,eAAgBvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAcuC,cAAc,IAE3Gt3F,KAAKy4P,wBAAwBlG,WAC3B,mBACAvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAc4gB,kBAAkB,IAEzD31G,KAAKy4P,wBAAwBlG,WAC3B,sBACAvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAc6gB,qBAAqB,IAE5D51G,KAAKy4P,wBAAwBlG,WAC3B,oBACAvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAc8gB,mBAAmB,IAG1D71G,KAAKy4P,wBAAwBlG,WAAW,iBAAkBvyP,KAAKoyP,GAAGviP,QAAQ7P,KAAK+0F,cAAciG,iBAC7Fh7F,KAAKy4P,wBAAwBlG,WAAW,aAAcvyP,KAAKoyP,GAAGviP,QAAQ7P,KAAK+0F,cAAc+gB,aAEzF91G,KAAKy4P,wBAAwBlG,WAC3B,eACAvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAc0W,cAAc,GAAO,GAAO,IAEnEzrG,KAAKy4P,wBAAwBlG,WAC3B,sBACAvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAc2W,qBAAqB,GAAO,GAAO,GAE5E,CAEAuuJ,gBAAgBv9O,GACS,2BAAnBA,EAAI84N,aACNx1O,KAAKy4P,wBAAwBz0P,IAAI,cAAc6J,SAAS6O,EAAIjL,MAC5DzR,KAAK+0F,cAAc+gB,WAAap5F,EAAIjL,KAExC,CAEIgnP,8BACF,OAAOz4P,KAAKktI,iBAAiBmK,cAC/B,CAEIr8C,qBACF,QAASh7F,KAAKy4P,wBAAwBz0P,IAAI,kBAAkBkI,KAC9D,CAAC/L,kDArEUiqQ,GAA0Bt8O,qJAA1Bs8O,EAA0B7/N,0tEDbvCplC,qCAAqF,SAArFA,CAAqF,SAEeA,8BAAKA,6BAGvGA,qCAAwB,SAC2DA,sCAAYA,6BAG/FA,qCAAwB,SAEpBA,+BAEAA,oCACFA,+BAGJA,uCAA6F,WAA7FA,CAA6F,WAA7FA,CAA6F,YAA7FA,CAA6F,YAIhEA,qCAAWA,2BAChCA,+BAAM,SAGNA,wCAAiD,eACRA,qCAAUA,2BAEjDA,wCAA6C,YAA7CA,CAA6C,aAGvCA,wDAEFA,2BACAA,wCACEA,iEAEFA,iCAKNA,wCAA8C,eACLA,kDAAuBA,2BAE9DA,wCAA6C,YAA7CA,CAA6C,aAGvCA,wDAEFA,2BACAA,wCACEA,iEAEFA,iCAKNA,wCAAgD,eACPA,mCAAQA,2BAE/CA,wCAA6C,YAA7CA,CAA6C,aAGvCA,wDAEFA,2BACAA,wCACEA,iEAEFA,iCAKNA,wCAAwB,eAEpBA,mEACFA,2BACAA,wCAAsB,eAElBA,qCACFA,6BAGFA,mCACFA,2BAEAA,2CAYAA,wCAAyD,eAChBA,8CAAmBA,2BAE1DA,wCAA6C,YAA7CA,CAA6C,aAGvCA,wDAEFA,2BACAA,wCACEA,iEAIFA,iCAKNA,wCAA4D,eACnBA,iDAAsBA,2BAE7DA,wCAA6C,YAA7CA,CAA6C,aAGvCA,wDAIFA,2BACAA,wCACEA,iEAIFA,iCAKNA,wCAA0D,eACjBA,+CAAoBA,2BAE3DA,wCAA6C,YAA7CA,CAA6C,aAGvCA,wDAEFA,2BACAA,wCACEA,iEAIFA,iCAINA,uCAAqBA,6BAAGA,2BACxBA,+BAAM,SAGNA,wCAA8D,eACrBA,oDAAyBA,2BAEhEA,wCAA6C,YAA7CA,CAA6C,aAGvCA,wDAIFA,2BACAA,wCACEA,iEAIFA,iCAKNA,wCAA4D,eACnBA,wDAA6BA,2BAEpEA,wCAA6C,YAA7CA,CAA6C,aAGvCA,yDAIFA,2BACAA,yCACEA,kEAIFA,iCAKNA,yCAAqD,gBACZA,0CAAcA,2BACrDA,yCAA6C,aAA7CA,CAA6C,cAGvCA,yDAEFA,2BACAA,yCACEA,kEAEFA,uCAQZA,yCAA+D,WAA/DA,CAA+D,eAEmBA,iCAAMA,6BAGtFA,yCACEA,yCACEA,yCAAqD,gBACZA,kDAAsBA,2BAE7DA,yCAA6C,aAA7CA,CAA6C,cAGvCA,yDAEFA,2BACAA,yCACEA,kEAEFA,2BACAA,yCACEA,kEAIFA,iCAKNA,yCAA4D,gBACnBA,kDAAsBA,2BAE7DA,yCAA6C,aAA7CA,CAA6C,cAGvCA,yDAIFA,2BACAA,yCACEA,kEAIFA,2BACAA,yCACEA,kEAIFA,iCAIRA,oCACFA,6BAGFA,yCAA6E,aAEzEA,4DACFA,sCApRKA,yIAM8CA,uFAcUA,+FAIUA,0FAaVA,2FAIUA,uFAaVA,6FAIUA,yFAoB7DA,yEAkBmDA,sGAM/CA,kGAeAA,yGAMAA,qGAa+CA,uGAM/CA,mGAkBAA,4GAMAA,uGAeAA,yGAMAA,qGAY+CA,kGAIUA,8FAuBVA,mGAIUA,8FAMzDA,mEAAqB,8CAerBA,yGAMAA,qGAMAA,mEAAqB,qDAYJA,uQCjRtBilQ,CAA0B,4BERrCjlQ,qCAA4C,UAC4CA,oCAAWA,wDAuGvFA,uCAAkF,WAAlFA,CAAkF,cAG5EA,sBACFA,2BACAA,uCACEA,gEAEFA,kGALEA,mGAGmCA,qEAAqB,oFAtBtEA,uCAA4F,YAExFA,0CACEA,uCAAwB,WAAxBA,CAAwB,cAEmBA,+BAAKA,2BAC5CA,uCAAsBA,oHAAUA,2CAAgB,GAC9CA,uDAIFA,+BAIJA,0CACEA,2CAWFA,oCAEAA,wCAAwB,eACyBA,+BAAKA,2BACpDA,wCACEA,qCACFA,6BAEJA,oCACFA,4BAAM,8CA3BMA,kGAOiCA,gHAlBnDA,uCAAsF,YAElFA,2CAsCFA,uEAtCQA,uECjFL,IAAMklQ,GAAqB,MAA5B,MAAOA,EAMXxqQ,YAAoBuyP,EAAgCmG,GAAhCv4P,UAAgCA,YAFpDA,sBAAmBA,KAAKoyP,GAAG1jN,MAAM,GAE6C,CAE9EzF,WACE,MAAQ6gD,aAAc9pF,KAAK+0F,cACrB0pK,EAAe30K,EAAUq0B,6BAA8Bx0G,GACpDA,EAAEuyF,wBAA0Bl8F,KAAK+0F,cAAc7pF,IAGpDuzP,EAAah6P,SACfzE,KAAKg8F,YAAcyiK,EAAa,IAElCz+P,KAAKw4P,cACLx4P,KAAKktI,iBAAiBoK,oBACxB,CAEAkhH,cACEx4P,KAAKy4P,wBAAwBlG,WAAW,OAAQvyP,KAAKoyP,GAAGviP,QAAQ7P,KAAK+0F,cAAc3xF,OACnFpD,KAAKy4P,wBAAwBlG,WAAW,WAAYvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAcoE,UAAU,IACnGn5F,KAAKy4P,wBAAwBlG,WAC3B,wBACAvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAcqE,uBAAuB,IAE9Dp5F,KAAKy4P,wBAAwBlG,WAAW,eAAgBvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAcuC,cAAc,IAE3Gt3F,KAAKsqQ,gBACP,CAEAA,iBACE,GAAItqQ,KAAKg8F,YAAa,CACpBh8F,KAAKy4P,wBAAwBlG,WAAW,kBAAmBvyP,KAAKoyP,GAAGviP,QAAQ7P,KAAKg8F,YAAYkd,YAAY,GAAG/5C,OAC3G,IAAIj7C,EAAQ,EACZ,QAAS1f,EAAI,EAAGA,EAAIxE,KAAKg8F,YAAYkd,YAAYz0G,OAAQD,IAAK,CAC5D,MAAMyB,EAAUjG,KAAKg8F,YAAYkd,YAAY10G,GAC7C0f,GAASje,EAAQ8nF,sBAAqB,GACtC/tF,KAAK4gQ,iBAAiBh4P,KAAK5I,KAAKoyP,GAAGviP,QAAQ,CAAE3D,MAAOjG,EAAQiG,MAAOwwD,UAAU,IAAO,CAEtF18D,KAAKy4P,wBAAwBlG,WAAW,cAAevyP,KAAK4gQ,kBAC5D5gQ,KAAKy4P,wBAAwBlG,WAAW,QAASvyP,KAAKoyP,GAAGviP,QAAQqU,IACjElkB,KAAKy4P,wBAAwBrhH,SAASlzH,MAASy+D,SAAO,CAE1D,CAEI81K,8BACF,OAAOz4P,KAAKktI,iBAAiBmK,cAC/B,CAACl3I,kDAlDUkqQ,GAAqBv8O,qJAArBu8O,EAAqB9/N,8iEDZlCplC,qCAAqF,SAArFA,CAAqF,SAEeA,8BAAKA,6BAGvGA,wCAIAA,qCAAwB,SAEpBA,+BAEAA,mCACFA,+BAIJA,sCAA6F,WAA7FA,CAA6F,WAA7FA,CAA6F,YAA7FA,CAA6F,YAIhEA,oCAAUA,2BAC/BA,+BAAM,SAGNA,wCACEA,wCAAiD,eACRA,oCAASA,2BAEhDA,wCAA6C,YAA7CA,CAA6C,aAGvCA,wDAEFA,2BACAA,wCACEA,iEAEFA,iCAKNA,uCAAqBA,6BAAGA,2BACxBA,+BAAM,SAGNA,wCAA8D,eACrBA,2CAAgBA,2BAEvDA,wCAA6C,YAA7CA,CAA6C,aAGvCA,wDAIFA,2BACAA,wCACEA,iEAIFA,iCAKNA,wCAAqD,eACZA,yCAAcA,2BACrDA,wCAA6C,YAA7CA,CAA6C,aAGvCA,wDAEFA,2BACAA,wCACEA,iEAIFA,iCAIRA,oCACFA,+BAIJA,2CA2CAA,wCAAwE,YAEpEA,2DACFA,sCApIGA,sEAMEA,yIAO8CA,uFAeYA,+FAIUA,0FAmBzDA,4GAMAA,uGAY+CA,kGAM/CA,8FAWZA,sEA6C2BA,uRC5HtBklQ,CAAqB,4BCPhCllQ,qCAA4C,UAC4CA,oCAAWA,wDA4DvFA,uCAAkF,WAAlFA,CAAkF,cAG5EA,sBACFA,2BACAA,uCACEA,gEAEFA,kGALEA,mGAGmCA,qEAAqB,oFAtBtEA,uCAA4F,YAExFA,0CACEA,uCAAwB,WAAxBA,CAAwB,cAEmBA,+BAAKA,2BAC5CA,uCAAsBA,oHAAUA,2CAAgB,GAC9CA,uDAIFA,+BAIJA,0CACEA,2CAWFA,oCAEAA,wCAAwB,eACyBA,+BAAKA,2BACpDA,wCACEA,qCACFA,6BAEJA,oCACFA,4BAAM,8CA3BMA,kGAOiCA,gHAlBnDA,uCAAsF,YAElFA,2CAsCFA,uEAtCQA,uECtCL,IAAMolQ,GAAoB,MAA3B,MAAOA,EAMX1qQ,YAAoBuyP,EAAgCmG,GAAhCv4P,UAAgCA,YAFpDA,sBAAmBA,KAAKoyP,GAAG1jN,MAAM,GAE6C,CAE9EzF,WACE,MAAQ6gD,aAAc9pF,KAAK+0F,cACrB0pK,EAAe30K,EAAUq0B,6BAA8Bx0G,GACpDA,EAAEuyF,wBAA0Bl8F,KAAK+0F,cAAc7pF,IAGpDuzP,EAAah6P,SACfzE,KAAKg8F,YAAcyiK,EAAa,IAElCz+P,KAAKw4P,cACLx4P,KAAKktI,iBAAiBoK,oBACxB,CAEAkhH,cACEx4P,KAAKy4P,wBAAwBlG,WAAW,OAAQvyP,KAAKoyP,GAAGviP,QAAQ7P,KAAK+0F,cAAc3xF,OACnFpD,KAAKy4P,wBAAwBlG,WAAW,WAAYvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAcoE,UAAU,IACnGn5F,KAAKsqQ,gBACP,CAEAA,iBACE,GAAItqQ,KAAKg8F,YAAa,CACpBh8F,KAAKy4P,wBAAwBlG,WAAW,kBAAmBvyP,KAAKoyP,GAAGviP,QAAQ7P,KAAKg8F,YAAYkd,YAAY,GAAG/5C,OAC3G,IAAIj7C,EAAQ,EACZ,QAAS1f,EAAI,EAAGA,EAAIxE,KAAKg8F,YAAYkd,YAAYz0G,OAAQD,IAAK,CAC5D,MAAMyB,EAAUjG,KAAKg8F,YAAYkd,YAAY10G,GAC7C0f,GAASje,EAAQ8nF,sBAAqB,GACtC/tF,KAAK4gQ,iBAAiBh4P,KAAK5I,KAAKoyP,GAAGviP,QAAQ,CAAE3D,MAAOjG,EAAQiG,MAAOwwD,UAAU,IAAO,CAEtF18D,KAAKy4P,wBAAwBlG,WAAW,cAAevyP,KAAK4gQ,kBAC5D5gQ,KAAKy4P,wBAAwBlG,WAAW,QAASvyP,KAAKoyP,GAAGviP,QAAQqU,IACjElkB,KAAKy4P,wBAAwBrhH,SAASlzH,MAASy+D,SAAO,CAE1D,CAEI81K,8BACF,OAAOz4P,KAAKktI,iBAAiBmK,cAC/B,CAACl3I,kDA5CUoqQ,GAAoBz8O,qJAApBy8O,EAAoBhgO,g8DDZjCplC,qCAAqF,SAArFA,CAAqF,SAEeA,8BAAKA,6BAGvGA,wCAIAA,qCAAwB,SAEpBA,+BAEAA,mCACFA,+BAIJA,sCAA6F,WAA7FA,CAA6F,WAA7FA,CAA6F,YAA7FA,CAA6F,YAIhEA,oCAAUA,2BAC/BA,+BAAM,SAGNA,wCACEA,wCAAiD,eACRA,oCAASA,2BAEhDA,wCAA6C,YAA7CA,CAA6C,aAGvCA,wDAEFA,2BACAA,wCACEA,iEAEFA,iCAIRA,oCACFA,+BAIJA,2CA2CAA,wCAAuE,YAEnEA,2DACFA,sCAzFGA,sEAMEA,yIAO8CA,uFAeYA,+FAIUA,0FAWrEA,sEA6C2BA,uRCjFtBolQ,CAAoB,KCHpBC,GAAyB,MAAhC,MAAOA,EAAyBrqQ,kDAAzBqqQ,EAAyB,8DAAzBA,EAAyBjgO,uaCTtCplC,yCACEA,sCAAmD,aACVA,wCAAcA,2BAErDA,sCAA6C,UAA7CA,CAA6C,WAGvCA,sDAEFA,2BACAA,sCACEA,+DAEFA,iCAIRA,2CAjBcA,4DAO6CA,+FAIUA,mODFxDqlQ,CAAyB,qEEwBxBrlQ,0CACEA,kHAASA,0CAAe,EAAxBA,CAAyB,8FAGbA,4CAAiB,GAC7BA,sBACFA,uDAHEA,gDAEAA,uJAWNA,uCACEA,uCAAmC,OAAnCA,CAAmC,UAO7BA,gCACAA,sBACFA,6BAEFA,oCAAK,YAALA,CAAK,eAICA,0HAASA,gDAAqB,GAG9BA,gCACFA,+BAGJA,wCACEA,sDAIFA,6BAEFA,+BACFA,wGA1BQA,2HAIAA,wGAcCA,8FAEDA,yFAAuC,4BCvDlD,IAAMslQ,GAA0B,MAAjC,MAAOA,EAQX5qQ,YAAoBkwI,EAAkCqiH,EAAgCmG,GAAlEv4P,mBAAkCA,UAAgCA,YAFtFA,yBAAsC,EAE0E,CAEhHipC,WACEjpC,KAAK0qQ,oBAAoB9hQ,QAAQ5I,KAAK+0F,cAAcwf,eACpDv0G,KAAKw4P,cACLx4P,KAAKktI,iBAAiBoK,qBAGtBt3I,KAAKyoQ,eACP,CAEAjQ,cACEx4P,KAAKy4P,wBAAwBlG,WAAW,WAAYvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAcyf,UAAU,IAGnGx0G,KAAKy4P,wBAAwBlG,WAAW,OAAQvyP,KAAKoyP,GAAGviP,QAAQ7P,KAAK+0F,cAAc3xF,OACnFpD,KAAKy4P,wBAAwBlG,WAAW,kCAAmCvyP,KAAKoyP,GAAGviP,QAAQ,KAC3F7P,KAAKy4P,wBAAwBlG,WAAW,gBAAiBvyP,KAAKoyP,GAAG1jN,MAAM,KAEvE,UAAW2lE,KAAgBr0G,KAAK0qQ,oBAC9B1qQ,KAAK2qQ,wBAAwBt2J,EAEjC,CAEQu2J,4BACN,OAAO5qQ,KAAK6xH,YAAYriB,qBACtB3W,GAAMA,EAAGtN,WAAa0D,0BAA8C4J,EAAG3tF,KAAOlL,KAAK+0F,cAAc7pF,GAErG,CAEQ2/P,iBAAiBC,EAAqC34J,GAC5D,QAAS24J,EAAiBv2J,cAAc30E,KAAK80E,GAAMA,EAAGvC,0BAA4BA,EACpF,CAEA44J,oCACE,MAAMC,EAAwBhrQ,KAAKirQ,0CAC7B35P,EAAS,GACf,UAAW45P,KAAkBF,EAEvBhrQ,KAAKmrQ,wCAAwCD,EAAehgQ,KAIhEoG,EAAO1I,KAAKsiQ,GAGd,OAAO55P,CACT,CAEQ25P,0CAEN,MAAMpD,EADa7nQ,KAAK6xH,YAAYtyB,iBAAiBv/F,KAAK+0F,cAAcC,aACnCA,YAM/BzE,EAJgCvwF,KAAK+vI,YAAYle,YAAYriB,qBACjE3W,GAAMA,EAAG7D,cAAgB6yK,GAAqBhvK,aAAc+T,IAGE,GAEhE,OAAO5sG,KAAK+vI,YAAYle,YAAYriB,qBAAqB3W,GAEpDA,EAAG7D,cAAgB6yK,GAAqBhvK,aAAcI,IACtD1I,GACCsI,EAAG7D,cAAgBzE,EAA0BrlF,KAC5C2tF,aAAcya,IAAeza,aAAc2c,IAGpD,CAEAm1J,wBAAwBt2J,GACtB,MAAM+2J,EAA0BprQ,KAAKoyP,GAAG9zN,MAAM,CAC5CpzB,GAAIlL,KAAKoyP,GAAGviP,QAAQwkG,EAAanpG,IACjCinG,wBAAyBnyG,KAAKoyP,GAAGviP,QAAQwkG,EAAalC,yBACtDjZ,WAAYl5F,KAAKu4P,KAAK1oP,QAAQwkG,EAAanb,YAAY,KAGzDl5F,KAAKqrQ,uBAAuBziQ,KAAKwiQ,EACnC,CAEQD,wCAAwCh5J,GAC9C,MAAMm5J,EAAyBtrQ,KAAK4qQ,4BAEpC,UAAWE,KAAoBQ,EAC7B,GAAItrQ,KAAK6qQ,iBAAiBC,EAAkB34J,GAC1C,OAAO,EAIX,OAAO,CACT,CAEAsC,kBACE,GAAIz0G,KAAKurQ,+BACP,OAGF,MAAMC,EAASxrQ,KAAKyrQ,gCAAgC7rO,KAAKi5D,GAAMA,EAAG3tF,KAAOlL,KAAK0rQ,iCACxEC,EAAc3rQ,KAAKyrQ,gCAAgCv6P,QAAQs6P,GAC3Dn3J,EAAe,IAAID,EAAa,GAAIp0G,KAAK+0F,cAAcjL,WAC7DuqB,EAAalC,wBAA0Bq5J,EAAOtgQ,GAC9ClL,KAAK2qQ,wBAAwBt2J,GAC7Br0G,KAAK0qQ,oBAAoB9hQ,KAAKyrG,GAC9Br0G,KAAKyrQ,gCAAgCt6P,OAAOw6P,EAAa,EAC3D,CAEQJ,+BAGN,QAASvrQ,KAAK0qQ,oBAAoB9qO,KAAKupD,GAAMA,EAAGgpB,0BAA4BnyG,KAAK0rQ,gCACnF,CAIAjD,gBACE,GAAwC,IAApCzoQ,KAAK0qQ,oBAAoBjmQ,OAC3BzE,KAAKyrQ,gCAAkCzrQ,KAAK+qQ,wCACvC,CACL/qQ,KAAKyrQ,gCAAkCzrQ,KAAK+qQ,oCAC5C,QAASvmQ,EAAI,EAAGA,EAAIxE,KAAK0qQ,oBAAoBjmQ,OAAQD,IACnD,QAAS26E,EAAI,EAAGA,EAAIn/E,KAAKyrQ,gCAAgChnQ,OAAQ06E,IAC3Dn/E,KAAKyrQ,gCAAgCtsL,GAAGj0E,KAAOlL,KAAK0qQ,oBAAoBlmQ,GAAG2tG,yBAC7EnyG,KAAKyrQ,gCAAgCt6P,OAAOguE,EAAG,EAAC,CAK1D,CAEAw1B,mBAAmBnwG,GACjBxE,KAAK0qQ,oBAAoBv5P,OAAO3M,EAAG,GACnCxE,KAAKqrQ,uBAAuB/nB,SAAS9+O,GACrCxE,KAAKyoQ,eACP,CAGAmD,kCACE,OAAO5rQ,KAAKqrQ,uBAAuBj0H,QACrC,CAEIs0H,sCACF,OAAO1rQ,KAAKy4P,wBAAwBz0P,IAAI,mCAAmCkI,KAC7E,CAEIusP,8BACF,OAAOz4P,KAAKktI,iBAAiBmK,cAC/B,CAEIg0H,6BACF,OAAOrrQ,KAAKy4P,wBAAwBz0P,IAAI,gBAC1C,CAII6tH,kBACF,OAAO7xH,KAAK+vI,YAAYle,WAC1B,CAAC1xH,kDAnKUsqQ,GAA0B38O,uLAA1B28O,EAA0BlgO,oiEDnBvCplC,qCAAqF,SAArFA,CAAqF,SAEeA,8BAAKA,6BAGvGA,qCAAwB,SAC2DA,sCAAYA,6BAG/FA,qCAAwB,SAEpBA,+BAEAA,oCACFA,+BAIJA,uCAA6F,WAA7FA,CAA6F,WAA7FA,CAA6F,YAA7FA,CAA6F,SAIjFA,wCAAcA,2BAElBA,wCAAwB,YAAxBA,CAAwB,gBASlBA,8CAOFA,2BAEAA,2CAA8CA,iDAAS6Q,mBAAiB,GACtE7Q,iCACFA,+BAIJA,2CACEA,qDAgCFA,oCACFA,+BAIJA,wCAA+D,WAA/DA,CAA+D,YAA/DA,CAA+D,YAA/DA,CAA+D,eAIhBA,yCAAcA,2BACrDA,wCAA6C,YAA7CA,CAA6C,aAGvCA,wDAEFA,2BACAA,wCACEA,iEAEFA,uCAQZA,wCAA6E,YAEzEA,2DACFA,sCApGKA,yIAO8CA,uFAiBxBA,6FAcuBA,+FA6CWA,+FAIUA,0FAYxCA,4fC3FtBslQ,CAA0B,KCR1BoB,GAA2C,MAAlD,MAAOA,EAMXhsQ,YAAoBkwI,qBAA2B,CAE3CjiB,oBACF,OAAO9tH,KAAK+vI,YAAYle,YAAYhP,aAAaqL,oBAAoB,MACvE,CAEA49I,iBACE9rQ,KAAK+rQ,2BAA2B/nQ,IAAI,eAAe2+E,UACnD3iF,KAAKgsQ,cAAgBhsQ,KAAK+vI,YAAYle,YAAYtyB,iBAAiBv/F,KAAK6wG,kBAAkBsB,yBAC1F,MAAM85J,EAAcjsQ,KAAK+vI,YAAYle,YAAYhP,aAAaoL,sBAC5DjuH,KAAKgsQ,cAAcxyK,eAErB,OAAOyyK,EAAcA,EAAYh/I,UAAY,EAC/C,CAAC9sH,kDAnBU0rQ,GAA2C/9O,gGAA3C+9O,EAA2CthO,2kBCXxDplC,yCACEA,sCAAiD,aACRA,mCAASA,2BAEhDA,sCAA6C,UAA7CA,CAA6C,WAGvCA,sDAEFA,2BACAA,sCACEA,+DAEFA,iCAKNA,uCAAwB,cACiBA,wCAAaA,2BAEpDA,uCAAsB,WAAtBA,CAAsB,aAGhBA,qCACFA,iCAIRA,2CA7BcA,iEAO6CA,kGAIUA,8FAaWA,8ODbnE0mQ,CAA2C,qEEkB1C1mQ,0CACEA,kHAASA,0CAAe,EAAxBA,CAAyB,8FAGbA,iDAAsB,GAClCA,sBACFA,uDAHEA,gDAEAA,yIAWNA,uCACEA,uCAAwC,OAAxCA,CAAwC,UAOlCA,gCACAA,sBACFA,6BAEFA,oCAAK,YAALA,CAAK,eAICA,0HAASA,qDAA0B,GAGnCA,gCACFA,+BAGJA,wCACEA,2EAIFA,6BAEFA,+BACFA,wGA1BQA,gIAIAA,6GAcCA,mGAEDA,mGAAiD,iCCvD5D,IAAM+mQ,GAA4B,MAAnC,MAAOA,EAOXrsQ,YAAoBkwI,EAAkCqiH,EAAgCmG,GAAlEv4P,mBAAkCA,UAAgCA,YAHtFA,8BAA6D,EAGmD,CAEhHipC,WACEjpC,KAAKmnQ,yBAAyBv+P,QAAQ5I,KAAK+0F,cAAcsd,+BACzDryG,KAAKw4P,cACLx4P,KAAKktI,iBAAiBoK,qBAGtBt3I,KAAKyoQ,eACP,CAEAjQ,cAEEx4P,KAAKy4P,wBAAwBlG,WAAW,OAAQvyP,KAAKoyP,GAAGviP,QAAQ7P,KAAK+0F,cAAc3xF,OACnFpD,KAAKy4P,wBAAwBlG,WAAW,kCAAmCvyP,KAAKoyP,GAAGviP,QAAQ,KAC3F7P,KAAKy4P,wBAAwBlG,WAAW,gCAAiCvyP,KAAKoyP,GAAG1jN,MAAM,KAEvF,UAAWmiE,KAAqB7wG,KAAKmnQ,yBACnCnnQ,KAAKonQ,6BAA6Bv2J,EAEtC,CAEAs7J,yCACE,MAAMC,EAA+BpsQ,KAAKirQ,0CACpC35P,EAAS,GACf,UAAW45P,KAAkBkB,EAEvBpsQ,KAAK4nQ,6CAA6CsD,EAAehgQ,KAIrEoG,EAAO1I,KAAKsiQ,GAGd,OAAO55P,CACT,CAEU25P,0CAER,MAAMpD,EADa7nQ,KAAK6xH,YAAYtyB,iBAAiBv/F,KAAK+0F,cAAcC,aACnCA,YAErC,OAAOh1F,KAAK+vI,YAAYle,YAAYriB,qBAAqB3W,GAChDA,EAAG7D,cAAgB6yK,GAAqBhvK,aAAcI,GAEjE,CAEAmuK,6BAA6Bv2J,GAC3B,MAAMw7J,EAA+BrsQ,KAAKoyP,GAAG9zN,MAAM,CACjDpzB,GAAIlL,KAAKoyP,GAAGviP,QAAQghG,EAAkB3lG,IACtCinG,wBAAyBnyG,KAAKoyP,GAAGviP,QAAQghG,EAAkBsB,yBAC3DhZ,SAAUn5F,KAAKu4P,KAAK1oP,QAAQghG,EAAkB1X,UAAU,GACxD8yK,YAAajsQ,KAAKoyP,GAAGviP,QAAQ,MAE/B7P,KAAKioQ,4BAA4Br/P,KAAKyjQ,EACxC,CAEUzE,6CAA6Cz1J,GACrD,MAAM+1J,EAA8BloQ,KAAKmoQ,iCAEzC,UAAWC,KAAyBF,EAClC,GAAIloQ,KAAKqoQ,sBAAsBD,EAAuBj2J,GACpD,OAAO,EAIX,OAAO,CACT,CAEQg2J,iCACN,OAAOnoQ,KAAK6xH,YAAYriB,qBACtB3W,GAAMA,aAAcic,GAAuBjc,EAAG3tF,KAAOlL,KAAK+0F,cAAc7pF,GAE5E,CAEUm9P,sBAAsBD,EAA4CkE,GAC1E,QAASlE,EAAsB/1J,8BAA8BzyE,KAC3D80E,GAAMA,EAAGvC,0BAA4Bm6J,EAEzC,CAEAh6J,uBACE,GAAItyG,KAAKsoQ,oCACP,OAGF,MAAMkD,EAASxrQ,KAAKyrQ,gCAAgC7rO,KAAKi5D,GAAMA,EAAG3tF,KAAOlL,KAAK0rQ,iCACxEC,EAAc3rQ,KAAKyrQ,gCAAgCv6P,QAAQs6P,GAC3D36J,EAAoB,IAAIgE,EAA+B,GAAI70G,KAAK+0F,cAAcjL,WACpF+mB,EAAkBsB,wBAA0Bq5J,EAAOtgQ,GACnDlL,KAAKonQ,6BAA6Bv2J,GAClC7wG,KAAKmnQ,yBAAyBv+P,KAAKioG,GACnC7wG,KAAKyrQ,gCAAgCt6P,OAAOw6P,EAAa,EAC3D,CAEUrD,oCAGR,QAAStoQ,KAAKmnQ,yBAAyBvnO,KACrCupD,GAAMA,EAAGgpB,0BAA4BnyG,KAAK0rQ,gCAE9C,CAIAjD,gBACE,GAA6C,IAAzCzoQ,KAAKmnQ,yBAAyB1iQ,OAChCzE,KAAKyrQ,gCAAkCzrQ,KAAKmsQ,6CACvC,CACLnsQ,KAAKyrQ,gCAAkCzrQ,KAAKmsQ,yCAC5C,QAAS3nQ,EAAI,EAAGA,EAAIxE,KAAKmnQ,yBAAyB1iQ,OAAQD,IACxD,QAAS26E,EAAI,EAAGA,EAAIn/E,KAAKyrQ,gCAAgChnQ,OAAQ06E,IAC3Dn/E,KAAKyrQ,gCAAgCtsL,GAAGj0E,KAAOlL,KAAKmnQ,yBAAyB3iQ,GAAG2tG,yBAClFnyG,KAAKyrQ,gCAAgCt6P,OAAOguE,EAAG,EAAC,CAK1D,CAEAozB,wBAAwB/tG,GACtBxE,KAAKmnQ,yBAAyBh2P,OAAO3M,EAAG,GACxCxE,KAAKioQ,4BAA4B3kB,SAAS9+O,GAC1CxE,KAAKyoQ,eACP,CAGAC,uCACE,OAAO1oQ,KAAKioQ,4BAA4B7wH,QAC1C,CAEIs0H,sCACF,OAAO1rQ,KAAKy4P,wBAAwBz0P,IAAI,mCAAmCkI,KAC7E,CAEIusP,8BACF,OAAOz4P,KAAKktI,iBAAiBmK,cAC/B,CAEI4wH,kCACF,OAAOjoQ,KAAKy4P,wBAAwBz0P,IAAI,gCAC1C,CAGI6tH,kBACF,OAAO7xH,KAAK+vI,YAAYle,WAC1B,CAAC1xH,kDAxJU+rQ,GAA4Bp+O,uLAA5Bo+O,EAA4B3hO,otDDfzCplC,qCAAqF,SAArFA,CAAqF,SAEeA,8BAAKA,6BAGvGA,qCAAwB,SAEpBA,+BAEAA,mCACFA,+BAIJA,sCAA6F,UAA7FA,CAA6F,WAA7FA,CAA6F,WAA7FA,CAA6F,SAIjFA,6CAAmBA,2BAEvBA,wCAAwB,YAAxBA,CAAwB,gBASlBA,8CAOFA,2BAEAA,2CAA8CA,iDAAS6Q,wBAAsB,GAC3E7Q,iCACFA,+BAIJA,2CACEA,qDAgCFA,oCACFA,+BAIJA,wCAA+E,YAE3EA,2DACFA,sCA9EKA,yIAO8CA,uFAiBxBA,6FAc4BA,oGAuCxBA,yeCrEtB+mQ,CAA4B,+BCZvC/mQ,sCAAsE,QAChEA,sBAAyCA,uDAAzCA,0GAGNA,uCAA2DA,iDAAwBA,sDAGnFA,uCAAmDA,sBAA2CA,qEAA3CA,wHACnDA,uCAAoDA,gDAAuBA,4BCCtE,IAAMonQ,GAAqB,MAA5B,MAAOA,EASX1sQ,YAAoBkwI,sBARpB/vI,kBAAwC,GAMhCA,aAAU,IAAI2qD,GAGpB3qD,KAAK+sD,QAAQzkD,IACXtI,KAAK+vI,YAAYytH,mBAAmBjlP,UAAU5O,IACxCA,EAAEkuG,uBAAyB73G,KAAK+0F,cAAc7pF,IAChDlL,KAAKi+P,mBAEHt0P,EAAEuyF,wBAA0Bl8F,KAAK+0F,cAAc7pF,IACjDlL,KAAKk+P,kBAAgB,IAK3Bl+P,KAAK+sD,QAAQzkD,IACXtI,KAAK+vI,YAAYwtH,qBAAqBhlP,UAAU5O,IAC1CA,EAAEkuG,uBAAyB73G,KAAK+0F,cAAc7pF,IAChDlL,KAAKm+P,qBAEHx0P,EAAEuyF,wBAA0Bl8F,KAAK+0F,cAAc7pF,IACjDlL,KAAKo+P,kBAAkBz0P,EAAC,GAIhC,CAEAs/B,WACMjpC,KAAK+0F,gBACP/0F,KAAKk+P,mBACLl+P,KAAKi+P,mBAET,CAEQA,mBACN,MAAQn0K,aAAc9pF,KAAK+0F,cACrBwpK,EAAgBz0K,EAAUq0B,6BAA8Bx0G,GACrDA,EAAEkuG,uBAAyB73G,KAAK+0F,cAAc7pF,IAGnDqzP,EAAc95P,UACfzE,KAAKw+P,cAAgBD,EAE1B,CAEQL,mBACN,MAAQp0K,aAAc9pF,KAAK+0F,cAC3B/0F,KAAKy+P,aAAe30K,EAAUq0B,6BAA8Bx0G,GACnDA,EAAEuyF,wBAA0Bl8F,KAAK+0F,cAAc7pF,GAE1D,CAEQizP,qBACNn+P,KAAKw+P,kBAAevwP,CACtB,CAEQmwP,kBAAkBM,GACxB,MAAMC,EAAiB3+P,KAAKy+P,aAAa7+N,KAAKj2B,GAAKA,EAAEuB,KAAOwzP,EAAcxzP,IAErEyzP,GAIL3+P,KAAKy+P,aAAattP,OAAOnR,KAAKy+P,aAAavtP,QAAQytP,GAAiB,EACtE,CAEAj3P,cACE1H,KAAK+sD,QAAQ5kC,aACf,CAAChoB,kDA1EUosQ,GAAqBz+O,gGAArBy+O,EAAqBhiO,iyBDZlCplC,sCAA6B,UACNA,8BAAKA,2BAE1BA,wCAIAA,yCAEAA,qCAA8CA,+BAAMA,2BACpDA,yCACAA,yCACFA,2BAEAA,qCAAqF,UAArFA,CAAqF,UAG/EA,gCACAA,oCACFA,+BAIJA,uCAAuD,YAAvDA,CAAuD,aAGjDA,2DACFA,sCAxB0BA,0EAItBA,+EAGAA,uEACAA,wEAe2BA,2VCdtBonQ,CAAqB,4BCU9BpnQ,sCAAgD,UACwCA,oCAAWA,wDA8E3FA,uCACEA,sCAAwB,aAEpBA,mEACFA,2BACAA,uCACEA,8CASFA,6BAEJA,6FAfWA,wEACLA,oIAIEA,2FAA2C,yBAA3CA,CAA2C,0BAA3CA,CAA2C,cAA3CA,CAA2C,mBAA3CA,CAA2C,cAA3CA,CAA2C,4DArBvDA,uCAAgG,WAAhGA,CAAgG,UAAhGA,CAAgG,aAGXA,+BAAKA,2BAEpFA,uCACEA,8CAKFA,6BAGFA,iFAmBAA,sCAAwB,cACyBA,+BAAKA,2BACpDA,wCACEA,qCACFA,4EAlCOA,0EAIHA,iGAAiD,0CAAjDA,CAAiD,cAAjDA,CAAiD,0BAOzBA,uLAtBtCA,uCAA0F,UAA1FA,CAA0F,SAA1FA,CAA0F,UAGjFA,kHAASA,iEAAoC,GAAEA,6BAAIA,+BAI1DA,uCACEA,2CAyCFA,4BAAM,6CAzCEA,2ECxEP,IAAMqnQ,GAAsB,MAA7B,MAAOA,EAKX3sQ,YACUuyP,EACAmG,EACDxoH,EACCsmG,GAHAr2O,UACAA,YACDA,mBACCA,uBACP,CAEHipC,WACEjpC,KAAKw4P,cACLx4P,KAAK2xP,wBACL3xP,KAAKktI,iBAAiBoK,oBACxB,CAEAkhH,cACEx4P,KAAKy4P,wBAAwBlG,WAAW,OAAQvyP,KAAKoyP,GAAGviP,QAAQ7P,KAAK+0F,cAAc3xF,OACnFpD,KAAKy4P,wBAAwBlG,WAAW,WAAYvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAcoE,WACzFn5F,KAAKy4P,wBAAwBlG,WAAW,gBAAiBvyP,KAAKoyP,GAAGviP,QAAQ7P,KAAK+0F,cAAc8H,gBAC5F78F,KAAKy4P,wBAAwBlG,WAAW,kBAAmBvyP,KAAKoyP,GAAGviP,QAAQ7P,KAAK+0F,cAAcX,kBAC9Fp0F,KAAKw0P,qBAAqBx0P,KAAK+0F,cAAc8H,cAC/C,CAEI47J,8BACF,OAAOz4P,KAAKktI,iBAAiBmK,cAC/B,CAEIvpB,oBACF,OAAO9tH,KAAK+vI,YAAYle,YAAYhP,aAAaqL,oBAAoB,MACvE,CAEAyjI,sBAAsBzmP,GAChBA,IACFlL,KAAK+0F,cAAcX,gBAAkBlpF,GAEnClL,KAAK+0F,cAAcX,kBACrBp0F,KAAKy0P,gBAAkBz0P,KAAK+vI,YAAYle,YAAYhP,aAAaoL,sBAC/DjuH,KAAK+0F,cAAcX,iBAErBp0F,KAAKy4P,wBAAwBz0P,IAAI,mBAAmB6J,SAAS7N,KAAK+0F,cAAcX,iBAChFp0F,KAAK00P,eACL10P,KAAKktI,iBAAiBoK,qBAE1B,CAEAo9G,eACEnoM,EAAE,mBAAmBvsD,KAAK+0F,cAAc7pF,MAAMqR,IAAIvc,KAAKy0P,gBAAgBv7I,YAAY,GAAG/5C,MACtF,IAAIj7C,EAAQ,EACZ,QAAS1f,EAAI,EAAGA,EAAIxE,KAAKy0P,gBAAgBv7I,YAAYz0G,OAAQD,IAAK,CAChE,MAAM6lF,EAASrqF,KAAKy0P,gBAAgBv7I,YAAY10G,GAChD0f,GAASmmE,EAAO0D,sBAAqB,GACrCxhC,EAAE,eAAe/nD,KAAK+X,IAAI8tE,EAAO0D,sBAAqB,GAAK,CAE7DxhC,EAAE,uBAAuBhwC,IAAI2H,EAC/B,CAEA2tO,iBAAiB3mP,GACflL,KAAKq2O,iBAAiBp9F,sBACtB1sF,EAAE,sBAAsBI,MAAM,QACEtrD,SAAS8zO,eAAe,aAAajqO,KAC1DumO,OACb,CAEA+iB,qBAAqB1lB,GACfA,EACF9uO,KAAKy4P,wBAAwBz0P,IAAI,YAAYA,IAAI,SAAS2+E,WAEtD3iF,KAAK+0F,cAAcoE,SAAShM,iBAAmBd,uBACjDrsF,KAAK+0F,cAAcoE,SAAShM,eAAiBd,mBAE/CrsF,KAAKy4P,wBAAwBz0P,IAAI,YAAYA,IAAI,SAASovP,SAE9D,CAACjzP,kDA3EUqsQ,GAAsB1+O,yNAAtB0+O,EAAsBjiO,muEDfnCplC,sCAA2C,UAA3CA,CAA2C,UAA3CA,CAA2C,aAGWA,qCAAWA,2BAC3DA,sCAAsB,0BAIlBA,+DAAsB6Q,0BAA6B,GAErD7Q,iCAINA,8BAAM,QAGNA,qCAAmE,UAAnEA,CAAmE,UAEiCA,+BAAKA,6BAGvGA,yCAIAA,uCAAwB,WAEpBA,iCAIAA,oCACFA,+BAIJA,wCAAuD,YAAvDA,CAAuD,YAAvDA,CAAuD,WAAvDA,CAAuD,YAI1BA,oCAAUA,2BAC/BA,+BAAM,SAGNA,wCAA+B,eAC8BA,oCAASA,2BAEpEA,wCAAsB,cAAtBA,CAAsB,eAMhBA,mDAAU6Q,wCAA2C,GAJvD7Q,iCASNA,wCAAiD,eACRA,oCAASA,2BAEhDA,wCAA6C,YAA7CA,CAA6C,aAGvCA,wDAEFA,2BACAA,wCACEA,iEAEFA,uCAQZA,2CAoDAA,wCAAyE,aAErEA,2DACFA,wCAtIDA,8DAMKA,iFAA+B,qCAgBhCA,0EAOCA,yIAoCyDA,+FAIUA,0FAUnEA,0EAsD2BA,6RCtHxBqnQ,CAAsB,4BC0CrBrnQ,qCAA2EA,6CAAoBA,mDAC/FA,qCACGA,oEAA2CA,mDAE9CA,qCACGA,8DAAqCA,sDAN1CA,wCACEA,2CACAA,2CAGAA,2CAGFA,yGAPSA,sLACAA,iLAGAA,kPArBbA,uCAGiF,cAE7EA,sBACFA,2BAEAA,uCAA8C,cAM1CA,2HAAUA,uDAA4B,GALxCA,2BAOAA,2CASFA,4BAAM,uDArBCA,4FACLA,gGAGoBA,8EAIlBA,2FAGAA,+FACyBA,oICvChC,IAAMsnQ,GAAyB,MAAhC,MAAOA,UAAiC/R,GAM5C76P,YAAoBuyP,EAAgCriH,GAClDjwI,QADkBE,UAAgCA,mBAF5CA,aAAU,IAAI2qD,GAKpB3qD,KAAK+sD,QAAQzkD,IACXtI,KAAK+vI,YAAYwtH,qBAAqBhlP,UAAU5O,IAC1CA,EAAEkuG,uBAAyB73G,KAAK+0F,cAAc7pF,IAChDlL,KAAKmmG,gCAAgCx8F,EAAEuyF,sBAAqB,IAKlEl8F,KAAK+sD,QAAQzkD,IACXtI,KAAK+vI,YAAYytH,mBAAmBjlP,UAAU5O,IACxCA,EAAEkuG,uBAAyB73G,KAAK+0F,cAAc7pF,IAChDlL,KAAKy9P,6BAA6B9zP,EAAEuyF,sBAAqB,GAIjE,CAEAjzD,WACEjpC,KAAK6Z,OAEL7Z,KAAK2jQ,oCAAoChI,aAAah2P,QAAQ,KAC5D3F,KAAK47P,mCAAiC,GAIxC,UAAWp3P,KAAKxE,KAAK2jQ,oCAAoCvsH,SACvDp3I,KAAK8jQ,2BAA2Bt/P,EAEpC,CAEAg0P,cACEx4P,KAAKy4P,wBAAwBlG,WAAW,OAAQvyP,KAAKoyP,GAAGviP,QAAQ7P,KAAK+0F,cAAc3xF,OACnFpD,KAAKy4P,wBAAwBlG,WAAW,gBAAiBvyP,KAAKoyP,GAAGviP,QAAQ7P,KAAK+0F,cAAc8H,gBAC5F78F,KAAKy4P,wBAAwBlG,WAC3B,6BACAvyP,KAAKoyP,GAAG1jN,MAAM1uC,KAAK0jQ,6CAErB1jQ,KAAKw0P,qBAAqBx0P,KAAK+0F,cAAc8H,cAC/C,CAEQ6mK,2CACN,OAAO1jQ,KAAK+0F,cAAc2M,2BAA2Bn6F,IAAIm2F,GAChD19F,KAAK4jQ,6CAA6ClmK,GAE7D,CAEUkmK,6CAA6ClmK,GACrD,MAAMszJ,EAAe1kK,GAAgBoR,EAAGxxF,OAASsgF,IAAakR,EAAGxxF,MAAO,QAAK+B,EAEvE41P,EAAe7jQ,KAAKoyP,GAAGviP,QAAQmhP,EAAc,CAAC0B,uBAAqBA,kBAAe,GAAIA,kBAAe,KAE3G,OAAO1yP,KAAKoyP,GAAG9zN,MAAM,CACnBpyB,MAAO23P,GAEX,CAEQpG,6BAA6BtpK,GACnCn0F,KAAK+0F,cAAckR,wBAAwB9R,GAE3C,MACM6vK,EAAYhkQ,KAAK4jQ,6CADZ5jQ,KAAK+0F,cAAc2M,2BAA2B1hG,KAAK+0F,cAAc2M,2BAA2Bj9F,OAAS,IAEhHzE,KAAK2jQ,oCAAoC/6P,KAAKo7P,EAChD,CAEQ79J,gCAAgChS,GACtC,MAAM9iF,EAAQrR,KAAK+0F,cAAc0Y,mCAAmCtZ,IACtD,IAAV9iF,IAIJrR,KAAK2jQ,oCAAoCrgB,SAASjyO,GAClDrR,KAAK+0F,cAAcoR,gCAAgChS,GACrD,CAEIwvK,0CACF,OAAO3jQ,KAAKy4P,wBAAwBz0P,IAAI,6BAC1C,CAEA+hQ,yCAAyCvhQ,GACvC,OAAOxE,KAAK2jQ,oCAAoC3/P,IAAI,GAAGQ,KAAKR,IAAI,QAClE,CAEAwwP,qBAAqB1lB,GACfA,EACF9uO,KAAK2jQ,oCAAoChhL,UAEzC3iF,KAAK2jQ,oCAAoCvQ,QAE7C,CAEAyI,0BAA0BxqP,GACxB,OAAIrR,KAAK+0F,cACA/0F,KAAK+0F,cAAciN,kCAAkC3wF,GAEvD,EACT,CAEAuqP,oCACE,MAAQxkH,YAAap3I,KAAK2jQ,oCAC1B,GAAIvsH,EAAS3yI,QAAU,EACrB,OAGF,IAAIyf,EAAQ,EAEZ,QAAS1f,EAAI,EAAGA,EAAI4yI,EAAS3yI,OAAS,EAAGD,IAAK,CAC5C,MACMy7P,EAAWvyK,cAAcI,iBADpBspD,EAAS5yI,GAC+BR,IAAI,SAASkI,OAEhE,GAAKqgF,OAAO5/D,MAAMszO,GAGhB,OAFA/7O,GAAS+7O,CAET,CAIJ7oH,EAASA,EAAS3yI,OAAS,GAAGT,IAAI,SAAS6J,SAASqxD,YAAY,EAAIh7C,GAAOwoE,QAAQ,IAAK,CACtF6vK,WAAW,EACXC,uBAAuB,EACvBC,uBAAuB,IAEzBrlH,EAASA,EAAS3yI,OAAS,GAAGT,IAAI,SAAS04P,aAC7C,CAEAoH,0BAA0Bt/P,GACxB,MAAMk5F,EAAK19F,KAAK2jQ,oCAAoCvsH,SAAS5yI,GACvDy7P,EAAWvyK,cAAcI,iBAAiB4P,EAAG15F,IAAI,SAASkI,OAE3DqgF,OAAO5/D,MAAMszO,IAChBviK,EAAG15F,IAAI,SAAS6J,SAASqxD,WAAW+gM,EAASvzK,QAAQ,IAEzD,CAEAhlF,cACE1H,KAAK+sD,QAAQ5kC,aACf,CAAChoB,kDAhJUssQ,GAAwB3+O,qJAAxB2+O,EAAwBliO,ugDDjBrCplC,qCAAmE,SAAnEA,CAAmE,SAEiCA,8BAAKA,6BAGvGA,qCAAwB,SAEpBA,+BAEAA,mCACFA,+BAIJA,sCAA6F,UAA7FA,CAA6F,WAA7FA,CAA6F,WAA7FA,CAA6F,YAA7FA,CAA6F,eAKxBA,oCAASA,2BAEpEA,wCAAsB,cAAtBA,CAAsB,eAMhBA,mDAAU6Q,wCAA2C,GAJvD7Q,iCASNA,0CAAuCA,uCAAYA,2BAEnDA,0CAAuCA,8CAAmBA,2BAE1DA,+BAAM,QAANA,CAAM,SAINA,2CA2BFA,+BAIJA,wCAA2E,YAEvEA,2DACFA,sCAnEKA,yIAO8CA,uFA6B9BA,2GA8BUA,2SCxDtBsnQ,CAAyB,KCNzBC,GAA8B,MAArC,MAAOA,EAIX7sQ,YAAoBuyP,EAAgCmG,GAAhCv4P,UAAgCA,WAA0B,CAE9EipC,WACEjpC,KAAKw4P,cACLx4P,KAAKktI,iBAAiBoK,oBACxB,CAEAkhH,cACEx4P,KAAKy4P,wBAAwBlG,WAAW,OAAQvyP,KAAKoyP,GAAGviP,QAAQ7P,KAAK+0F,cAAc3xF,OACnFpD,KAAKy4P,wBAAwBlG,WAC3B,qBACAvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAcwgB,oBAEzC,CAEIkjJ,8BACF,OAAOz4P,KAAKktI,iBAAiBmK,cAC/B,CAACl3I,kDArBUusQ,GAA8B5+O,qJAA9B4+O,EAA8BniO,mlCCX3CplC,qCAAmE,SAAnEA,CAAmE,SAEiCA,8BAAKA,6BAGvGA,qCAAwB,SAEpBA,+BAEAA,mCACFA,+BAIJA,sCAA6F,UAA7FA,CAA6F,WAA7FA,CAA6F,WAA7FA,CAA6F,YAIhEA,gCAAMA,2BAC3BA,+BAAM,SAENA,wCAA2D,eAClBA,uCAAYA,2BACnDA,wCAA6C,YAA7CA,CAA6C,aAGvCA,wDAEFA,2BACAA,wCACEA,iEAIFA,uCAQZA,wCAAiF,YAE7EA,2DACFA,sCAtCKA,yIAO8CA,uFAYUA,yGAM/CA,oGAYiBA,0NDjCtBunQ,CAA8B,KEG9BC,GAAoB,MAA3B,MAAOA,EAIX9sQ,YAAoBuyP,EAAgCmG,GAAhCv4P,UAAgCA,WAA0B,CAE9EipC,WACEjpC,KAAKw4P,cACLx4P,KAAKktI,iBAAiBoK,qBACtBt3I,KAAKwkQ,eACP,CAEAhM,cACEx4P,KAAKy4P,wBAAwBlG,WAAW,OAAQvyP,KAAKoyP,GAAGviP,QAAQ7P,KAAK+0F,cAAc3xF,OACnFpD,KAAKy4P,wBAAwBlG,WAAW,eAAgBvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAc8U,eAC7F7pG,KAAKy4P,wBAAwBlG,WAAW,cAAevyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAc+U,cAC5F9pG,KAAKy4P,wBAAwBlG,WAAW,WAAYvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAcgV,WACzF/pG,KAAKy4P,wBAAwBlG,WAAW,gBAAiBvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAciV,gBAC9FhqG,KAAKy4P,wBAAwBlG,WAAW,gBAAiBvyP,KAAKoyP,GAAGviP,QAAQ7P,KAAK+0F,cAAc8H,gBAC5F78F,KAAKw0P,qBAAqBx0P,KAAK+0F,cAAc8H,cAC/C,CAEI47J,8BACF,OAAOz4P,KAAKktI,iBAAiBmK,cAC/B,CAEAm9G,qBAAqB1lB,GACfA,EACF9uO,KAAKy4P,wBAAwBz0P,IAAI,gBAAgBA,IAAI,SAAS2+E,WAE1D3iF,KAAK+0F,cAAc8U,aAAa1c,iBAAmBd,uBACrDrsF,KAAK+0F,cAAc8U,aAAa1c,eAAiBd,mBAEnDrsF,KAAKy4P,wBAAwBz0P,IAAI,gBAAgBA,IAAI,SAASovP,SAElE,CAEAoR,gBACE,MAAM16J,EAAc9pG,KAAKy4P,wBAAwBz0P,IAAI,eAAeA,IAAI,SAClE+lG,EAAW/pG,KAAKy4P,wBAAwBz0P,IAAI,YAAYA,IAAI,SAC5DgmG,EAAgBhqG,KAAKy4P,wBAAwBz0P,IAAI,iBAAiBA,IAAI,SAEtE+lQ,EAA8D,CAClE,CAAC/pQ,KAAK+0F,cAAc+U,YAAaA,GACjC,CAAC9pG,KAAK+0F,cAAcgV,SAAUA,GAC9B,CAAC/pG,KAAK+0F,cAAciV,cAAeA,IAG/B06J,EAAoBqF,EAAmBhyP,OAAOmyB,GAC3CoiD,GAAgBpiD,EAAK,GAAGh+B,QAG3B0gQ,EAAuB7C,EAAmBhyP,OAAOmyB,GAC9C2iD,GAAa3iD,EAAK,GAAGh+B,SAAWogF,GAAgBpiD,EAAK,GAAGh+B,QAG3D2gQ,EAAoC9C,EAAmBhyP,OAAOmyB,IAC1D2iD,GAAa3iD,EAAK,GAAGh+B,QAAUg+B,EAAK,GAAGijD,iBAAmBd,sBAGhEq4K,EAAkBjgQ,OAASigQ,EAAkBjgQ,SAAWmoQ,EAAqBnoQ,QAC/EzE,KAAK8sQ,iBAAiBF,GACtB5sQ,KAAK+sQ,gBAAgBF,IACoB,IAAhCD,EAAqBnoQ,OAC9BzE,KAAK8sQ,iBAAiBD,GAEtB7sQ,KAAK+sQ,gBAAgBhD,EAEzB,CAEA+C,iBAAiBE,GACfA,EAAcrnQ,QAAQukC,IACpBA,EAAK,GAAGijD,eAAiBd,qBACzBniD,EAAK,GAAGy4C,SAAO,EAEnB,CAEAoqL,gBAAgBC,GACdA,EAAcrnQ,QAAQukC,IACpBA,EAAK,GAAGijD,eAAiBd,kBACzBniD,EAAK,GAAGkpN,QAAM,EAElB,CAACjzP,kDAlFUwsQ,GAAoB7+O,qJAApB6+O,EAAoBpiO,w9CCdjCplC,sCAA2C,SAA3CA,CAA2C,SAA3CA,CAA2C,SAG2DA,8BAAKA,6BAGvGA,qCAAwB,SAEpBA,+BACAA,mCACFA,+BAIJA,sCAAuD,WAAvDA,CAAuD,WAAvDA,CAAuD,YAAvDA,CAAuD,YAI1BA,oCAAUA,2BAC/BA,+BAAM,SAGNA,wCAAwB,eACqCA,oCAASA,2BAEpEA,wCAAsB,cAAtBA,CAAsB,eAMhBA,mDAAU6Q,wCAA2C,GAJvD7Q,iCASNA,wCAAqD,eACZA,yCAAcA,2BAErDA,wCAA6C,YAA7CA,CAA6C,aAGvCA,wDAEFA,2BACAA,wCACEA,iEAIFA,iCAKNA,wCAA6BA,iDAAS6Q,iBAAe,GACnD7Q,wCAAoD,eACXA,uCAAYA,2BAEnDA,wCAA6C,YAA7CA,CAA6C,aAGvCA,wDAEFA,2BACAA,wCACEA,iEAIFA,iCAKNA,wCAAiD,eACRA,oCAASA,2BAEhDA,wCAA6C,YAA7CA,CAA6C,aAGvCA,wDAEFA,2BACAA,wCACEA,iEAEFA,iCAKNA,wCAAsD,eACbA,0CAAeA,2BAEtDA,wCAA6C,YAA7CA,CAA6C,aAGvCA,wDAEFA,2BACAA,wCACEA,iEAIFA,yCASdA,wCAAuE,YAEnEA,2DACFA,wCAtHDA,8DA0C8DA,mGAM/CA,8FAciDA,iGAM/CA,6FAa+CA,8FAIUA,0FAaVA,mGAM/CA,+FAaeA,0PDvGxBwnQ,CAAoB,KEHpBM,GAAa,MAApB,MAAOA,EAIXptQ,YAAoBuyP,EAAgCmG,GAAhCv4P,UAAgCA,WAA0B,CAE9EipC,WACEjpC,KAAKw4P,cACLx4P,KAAKktI,iBAAiBoK,oBACxB,CAEAkhH,cACEx4P,KAAKy4P,wBAAwBlG,WAAW,OAAQvyP,KAAKoyP,GAAGviP,QAAQ7P,KAAK+0F,cAAc3xF,OACnFpD,KAAKy4P,wBAAwBlG,WAAW,aAAcvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAc+K,aAC3F9/F,KAAKy4P,wBAAwBlG,WAAW,eAAgBvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAc6K,eAC7F5/F,KAAKy4P,wBAAwBlG,WAAW,eAAgBvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAcwC,eAC7Fv3F,KAAKy4P,wBAAwBlG,WAAW,eAAgBvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAcuC,cAAc,IAE3Gt3F,KAAKy4P,wBAAwBlG,WAAW,YAAavyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAc6B,YAC1F52F,KAAKy4P,wBAAwBlG,WAAW,UAAWvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAc8B,UACxF72F,KAAKy4P,wBAAwBlG,WAC3B,oBACAvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAciC,mBAAmB,IAE1Dh3F,KAAKy4P,wBAAwBlG,WAAW,YAAavyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAckC,WAAW,IAErGj3F,KAAKy4P,wBAAwBlG,WAC3B,WACAvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAcqC,UAAU,GAAO,GAAO,IAE/Dp3F,KAAKy4P,wBAAwBlG,WAC3B,cACAvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAcsC,aAAa,GAAO,GAAO,IAElEr3F,KAAKy4P,wBAAwBlG,WAC3B,kBACAvyP,KAAKu4P,KAAK1oP,QAAQ7P,KAAK+0F,cAAcgL,iBAAiB,GAAO,GAAO,GAExE,CAEI04J,8BACF,OAAOz4P,KAAKktI,iBAAiBmK,cAC/B,CAACl3I,kDA1CU8sQ,GAAan/O,qJAAbm/O,EAAa1iO,i4DCX1BplC,qCAAmE,SAAnEA,CAAmE,SAEiCA,gCAAOA,6BAGzGA,qCAAwB,SACsDA,kCAASA,6BAEvFA,qCAAwB,SAC2DA,sCAAYA,6BAG/FA,sCAAwB,UAEpBA,gCACAA,oCACFA,+BAIJA,uCAA6F,WAA7FA,CAA6F,YAA7FA,CAA6F,aAIrFA,wCACEA,wCAAmD,eACVA,kCAAOA,2BAE9CA,wCAA6C,YAA7CA,CAA6C,aAGvCA,wDAEFA,2BACAA,wCACEA,iEAEFA,iCAKNA,wCAAqD,eACZA,yCAAcA,2BAErDA,wCAA6C,YAA7CA,CAA6C,aAGvCA,wDAEFA,2BACAA,wCACEA,iEAIFA,iCAINA,+BAAM,SAENA,uCAAqBA,6BAAGA,2BAExBA,wCAAqD,eACZA,yCAAcA,2BAErDA,wCAA6C,YAA7CA,CAA6C,aAGvCA,wDAEFA,2BACAA,wCACEA,iEAIFA,iCAKNA,wCAAqD,eACZA,yCAAcA,2BAErDA,wCAA6C,YAA7CA,CAA6C,aAGvCA,wDAEFA,2BACAA,wCACEA,iEAIFA,iCAIRA,oCACFA,+BAIJA,wCAA6D,YAA7DA,CAA6D,YAA7DA,CAA6D,YAGlCA,8BAAIA,2BAEzBA,wCACEA,wCAAkD,eACTA,iCAAMA,2BAE7CA,wCAA6C,YAA7CA,CAA6C,aAGvCA,wDAEFA,2BACAA,wCACEA,iEAEFA,iCAKNA,wCAAgD,eACPA,oCAASA,2BAEhDA,wCAA6C,YAA7CA,CAA6C,aAGvCA,wDAEFA,2BACAA,wCACEA,iEAEFA,iCAKNA,wCAA0D,eACjBA,+BAAIA,2BAE3CA,wCAA6C,YAA7CA,CAA6C,aAGvCA,wDAIFA,2BACAA,wCACEA,iEAIFA,iCAKNA,wCAAkD,eACTA,iCAAMA,2BAE7CA,wCAA6C,YAA7CA,CAA6C,aAGvCA,wDAEFA,2BACAA,wCACEA,kEAEFA,iCAIRA,oCACFA,+BAGJA,yCAA+D,aAA/DA,CAA+D,cAGzDA,yCACEA,yCAAiD,gBACRA,kDAAsBA,2BAE7DA,yCAA6C,aAA7CA,CAA6C,cAGvCA,yDAEFA,2BACAA,yCACEA,kEAEFA,2BACAA,yCACEA,kEAIFA,iCAKNA,yCAAoD,gBACXA,yCAAaA,2BAEpDA,yCAA6C,aAA7CA,CAA6C,cAGvCA,yDAEFA,2BACAA,yCACEA,kEAIFA,2BACAA,yCACEA,kEAIFA,iCAKNA,yCAAwD,gBACfA,8CAAkBA,2BAEzDA,yCAA6C,aAA7CA,CAA6C,cAGvCA,yDAEFA,2BACAA,yCACEA,kEAIFA,2BACAA,yCACEA,kEAIFA,iCAIRA,oCACFA,+BAIJA,yCAAgE,cAE5DA,4DACFA,sCA3PmDA,wFAWYA,iGAIUA,4FAaVA,kGAM/CA,8FAgB+CA,mGAM/CA,8FAa+CA,kGAM/CA,8FAuB+CA,gGAIUA,2FAaVA,6FAIUA,yFAezDA,uGAMAA,mGAa+CA,+FAIUA,2FAoBVA,+FAIUA,0FAMzDA,mEAAqB,0CAa0BA,iGAM/CA,6FAMAA,mEAAqB,6CAa0BA,qGAM/CA,iGAMAA,mEAAqB,iDAaNA,6NDnQtB8nQ,CAAa,KEXnB,IAAKC,GAEX,OAFWA,QAAS,KACnBA,kBADUA,IAEX,GCCD,MAkBaC,GAlBoC,CAC/C,CACExiQ,KAAMmuP,YACN1oC,MAAO,gBACP75J,KACE,0HAaiE97C,OAR1B,CAC3C,CACE9P,KAAMmuP,UACN1oC,MAAO,aACP75J,KAAM,uDCZJ,MAAO62M,WAAsCnU,GACjDp5P,cACEC,MAAM40F,GACR,CAESohJ,qBACP,OAAOh2O,MAAMg2O,qBAAqBr7N,OAAO0yP,GAC3C,ECCK,IAAME,GAAkC,MAAzC,MAAOA,EACXxtQ,YAAoB04P,cAA0B,CAE9CyC,UAAUsS,GACR,OAAO,IAAI/R,aACT+R,EAAa/lQ,IAAIo5B,GACR3gC,KAAK6P,QAAQ8wB,IAG1B,CAEA9wB,QAAQ8wB,GACN,OAAO,IAAIu6N,GAAsBv6N,EAAOwzD,gBAAiB,CACvDC,gBAAiB,IAAIyhK,eAAYl1N,EAAOyzD,gBAAiB,CAACs+J,yBAC1Dr+J,MAAOr0F,KAAKu4P,KAAK5C,iBAAiBh1N,EAAO0zD,OAAO,GAAO,EAAO,CAACq+J,yBAC/Dp+J,MAAOt0F,KAAKu4P,KAAK5C,iBAAiBh1N,EAAO2zD,OAAO,GAAO,EAAO,CAACo+J,0BAEnE,CAACvyP,kDAjBUktQ,GAAkCv/O,0FAAlCu/O,EAAkCjoQ,QAAlCioQ,EAAkC,qBADrB,gBACbA,CAAkC,+BC0CvCloQ,uCAAsD,eACcA,oCAAWA,2BAC7EA,wCAAsB,eAAtBA,CAAsB,gBAEDA,sCAAaA,2BAC9BA,2CAAyDA,+BAAMA,2BAC/DA,2CAAuDA,8BAAIA,2EADnDA,yGACAA,wKAKZA,uCAAuF,OAEnFA,uCAA+CA,sBAAuBA,2BACtEA,uCAAwB,eAC0BA,qCAAWA,2BAC3DA,wCAAiD,4BAI7CA,wIAAsBA,qDAAgC,GAAEA,+BAI9DA,wCAA8C,eACUA,+BAAKA,2BAC3DA,wCAAsB,YAAtBA,CAAsB,aAGhBA,wDAEFA,2BACAA,wCACEA,kEAKFA,iCAKNA,yCAA8C,eACUA,uCAAaA,2BACnEA,wCAAsB,YAAtBA,CAAsB,aAGhBA,wDAIFA,2BACAA,wCACEA,kEAIFA,iCAIRA,oCACAA,+BACFA,0FApDgBA,mEACmCA,4EAGvBA,wEAElBA,iFAA+B,wDAWoBA,gGAO/CA,4FAcAA,sGAMAA,mGCtFjB,IAAMooQ,GAA2B,MAAlC,MAAOA,UAAmC7S,GA+C9C76P,YACU04P,EACAiV,EACAhzH,GAER16I,QAJQE,YACAA,YACAA,YA5COA,yBAAmB0hB,UAAO+1H,IAE3Cz3I,eAAY,IAAI41P,aAAU,CACxBxyP,KAAM,IAAIyyP,eAAY,GAAI,CAACnD,yBAC3B54J,WAAY,IAAI+7J,eAAY,GAAI,CAACnD,yBACjCv4J,gBAAiBn6F,KAAKu4P,KAAKzC,eAC3Bj7J,YAAa76F,KAAKu4P,KAAKzC,cAAa,GACpC17J,kBAAmBp6F,KAAKu4P,KAAKzC,cAAa,GAC1Cv+J,aAAcv3F,KAAKu4P,KAAKzC,eACxBz7J,qBAAsBr6F,KAAKu4P,KAAKzC,cAAa,GAC7Cn4N,QAAS,IAAI49N,aAAuC,IAEpD7kK,QAAS12F,KAAKu4P,KAAKzC,cAAa,GAChCr/J,UAAWz2F,KAAKu4P,KAAKzC,cAAa,GAClCl/J,UAAW52F,KAAKu4P,KAAKzC,eACrBj/J,QAAS72F,KAAKu4P,KAAKzC,eACnB9+J,kBAAmBh3F,KAAKu4P,KAAKzC,cAAa,GAC1C7+J,UAAWj3F,KAAKu4P,KAAKzC,cAAa,GAClC5+J,eAAgBl3F,KAAKu4P,KAAKzC,eAC1B3+J,WAAYn3F,KAAKu4P,KAAKzC,cAAa,GACnC1+J,SAAUp3F,KAAKu4P,KAAKxC,yBAEpBj7J,UAAW,IAAI+6J,eAAY,GAAI,CAACnD,yBAChCz4J,aAAcj6F,KAAKu4P,KAAKzC,eACxBt7J,WAAYx6F,KAAKu4P,KAAKzC,eACtBv7J,oBAAqBv6F,KAAKu4P,KAAKzC,eAC/Bp7J,cAAe16F,KAAKu4P,KAAKzC,eACzBr7J,uBAAwBz6F,KAAKu4P,KAAKzC,eAClC57J,kBAAmBl6F,KAAKu4P,KAAKzC,eAC7Bl7J,gBAAiB56F,KAAKu4P,KAAKzC,eAC3Bn7J,yBAA0B36F,KAAKu4P,KAAKzC,eAEpC96J,eAAgB,IAAI66J,gBAAqB,GACzC96J,kBAAmB,IAAI86J,eAAoB,MAGrC71P,aAAU,IAAI2qD,GAEH3qD,iCAA8B40F,GAC9B50F,uBAAoB20F,GASrC30F,KAAK+sD,QAAQzkD,IACXtI,KAAKw6I,KAAKgjH,mBAAmBjlP,UAAU5O,IACjCA,EAAEkuG,uBAAyB73G,KAAK+0F,cAAc7pF,IAChDlL,KAAKytQ,2BAA2B9jQ,EAAEuyF,sBAAqB,IAK7Dl8F,KAAK+sD,QAAQzkD,IACXtI,KAAKw6I,KAAK+iH,qBAAqBhlP,UAAU5O,IACnCA,EAAEkuG,uBAAyB73G,KAAK+0F,cAAc7pF,IAChDlL,KAAK0tQ,8BAA8B/jQ,EAAEuyF,sBAAqB,IAKhEl8F,KAAKg1O,oBAAsB,IAAIo4B,EACjC,CAEAnkO,WACEjpC,KAAK6Z,MACP,CAEA2+O,cACEx4P,KAAKu1I,UAAU6B,SAASh0I,KAAK4yP,WAAWh2P,KAAK+0F,cAAc3xF,MAC3DpD,KAAKu1I,UAAU6B,SAASt9C,WAAWk8J,WAAWh2P,KAAK+0F,cAAc+E,YACjE95F,KAAKu4P,KAAKvC,WAAWh2P,KAAK+0F,cAAcoF,gBAAiBn6F,KAAKu1I,UAAU6B,SAASj9C,iBACjFn6F,KAAKu4P,KAAKvC,WAAWh2P,KAAK+0F,cAAc8F,YAAa76F,KAAKu1I,UAAU6B,SAASv8C,aAC7E76F,KAAKu4P,KAAKvC,WAAWh2P,KAAK+0F,cAAcqF,kBAAmBp6F,KAAKu1I,UAAU6B,SAASh9C,mBACnFp6F,KAAKu4P,KAAKvC,WAAWh2P,KAAK+0F,cAAcwC,aAAcv3F,KAAKu1I,UAAU6B,SAAS7/C,cAC9Ev3F,KAAKu4P,KAAKvC,WAAWh2P,KAAK+0F,cAAcsF,qBAAsBr6F,KAAKu1I,UAAU6B,SAAS/8C,sBAEtFr6F,KAAKu4P,KAAKvC,WAAWh2P,KAAK+0F,cAAc2B,QAAS12F,KAAKu1I,UAAU6B,SAAS1gD,SACzE12F,KAAKu4P,KAAKvC,WAAWh2P,KAAK+0F,cAAc0B,UAAWz2F,KAAKu1I,UAAU6B,SAAS3gD,WAC3Ez2F,KAAKu4P,KAAKvC,WAAWh2P,KAAK+0F,cAAc6B,UAAW52F,KAAKu1I,UAAU6B,SAASxgD,WAC3E52F,KAAKu4P,KAAKvC,WAAWh2P,KAAK+0F,cAAc8B,QAAS72F,KAAKu1I,UAAU6B,SAASvgD,SACzE72F,KAAKu4P,KAAKvC,WAAWh2P,KAAK+0F,cAAciC,kBAAmBh3F,KAAKu1I,UAAU6B,SAASpgD,mBACnFh3F,KAAKu4P,KAAKvC,WAAWh2P,KAAK+0F,cAAckC,UAAWj3F,KAAKu1I,UAAU6B,SAASngD,WAC3Ej3F,KAAKu4P,KAAKvC,WAAWh2P,KAAK+0F,cAAcmC,eAAgBl3F,KAAKu1I,UAAU6B,SAASlgD,gBAChFl3F,KAAKu4P,KAAKvC,WAAWh2P,KAAK+0F,cAAcoC,WAAYn3F,KAAKu1I,UAAU6B,SAASjgD,YAC5En3F,KAAKu4P,KAAKrC,qBAAqBl2P,KAAK+0F,cAAcqC,SAAUp3F,KAAKu1I,UAAU6B,SAAShgD,UAEpFp3F,KAAKu1I,UAAU6B,SAASz5G,QAAU39B,KAAKwtQ,KAAKxS,UAAUh7P,KAAK+0F,cAAcp3D,SAEzE39B,KAAKu1I,UAAU6B,SAASt8C,UAAUk7J,WAAWh2P,KAAK+0F,cAAc+F,WAEhE96F,KAAKu4P,KAAKvC,WAAWh2P,KAAK+0F,cAAckF,aAAcj6F,KAAKu1I,UAAU6B,SAASn9C,cAC9Ej6F,KAAKu4P,KAAKvC,WAAWh2P,KAAK+0F,cAAcyF,WAAYx6F,KAAKu1I,UAAU6B,SAAS58C,YAC5Ex6F,KAAKu4P,KAAKvC,WAAWh2P,KAAK+0F,cAAcwF,oBAAqBv6F,KAAKu1I,UAAU6B,SAAS78C,qBACrFv6F,KAAKu4P,KAAKvC,WAAWh2P,KAAK+0F,cAAc2F,cAAe16F,KAAKu1I,UAAU6B,SAAS18C,eAC/E16F,KAAKu4P,KAAKvC,WAAWh2P,KAAK+0F,cAAc0F,uBAAwBz6F,KAAKu1I,UAAU6B,SAAS38C,wBACxFz6F,KAAKu4P,KAAKvC,WAAWh2P,KAAK+0F,cAAcmF,kBAAmBl6F,KAAKu1I,UAAU6B,SAASl9C,mBACnFl6F,KAAKu4P,KAAKvC,WAAWh2P,KAAK+0F,cAAc6F,gBAAiB56F,KAAKu1I,UAAU6B,SAASx8C,iBACjF56F,KAAKu4P,KAAKvC,WAAWh2P,KAAK+0F,cAAc4F,yBAA0B36F,KAAKu1I,UAAU6B,SAASz8C,0BAE1F,UAAW7pF,KAAOnF,OAAOtE,KAAKrH,KAAKu1I,UAAU6B,UAC3Cp3I,KAAKy4P,wBAAwBlG,WAAWzhP,EAAK9Q,KAAKu1I,UAAU6B,SAAStmI,IAGvE9Q,KAAKu1I,UAAU6B,SAASp8C,eAAeg7J,WAAWh2P,KAAK+0F,cAAciG,gBACrEh7F,KAAKu1I,UAAU6B,SAASr8C,kBAAkBi7J,WAAWh2P,KAAK+0F,cAAcgG,mBAExE/6F,KAAK2tQ,qBACL3tQ,KAAK4tQ,sBACP,CAGAH,2BAA2BvxK,GACzBl8F,KAAK+0F,cAAcsH,UAAUH,GAC7B,MAAMv7D,EAAS3gC,KAAK+0F,cAAcqH,WAAWF,GACvC2xK,EAAgB7tQ,KAAKwtQ,KAAK39P,QAAQ8wB,GAEpC3gC,KAAK8tQ,sBACPD,EAAcz2H,SAAS/iD,MAAM+iD,SAASlrI,MAAMy2E,UAG9C3iF,KAAK+tQ,iBAAiB32H,SAASxuI,KAAKilQ,EACtC,CAEAH,8BAA8BxxK,GAC5B,MAAM2hK,EAAoB79P,KAAK+tQ,iBAAiB32H,SAASx3G,KAAKqgF,GACrDA,EAAGm7I,mBAAqBl/J,GAIjC,IAAK2hK,EACH,OAIF79P,KAAK+0F,cAAcuH,aAAaJ,GAChC,MAAM4hK,EAAiB99P,KAAK+tQ,iBAAiB32H,SAASlmI,QAAQ2sP,GAE9D79P,KAAK+tQ,iBAAiBzqB,SAASwa,EACjC,CAEAkQ,eAAexpQ,GAEb,OAAOxE,KAAKw6I,KAAK3oB,YAAYlT,qBADlB3+G,KAAK+0F,cAAcp3D,QAAQn5B,GAAG2vF,gBAE3C,CAEI45K,uBACF,OAAO/tQ,KAAKu1I,UAAU6B,SAASz5G,OACjC,CAIImwF,oBACF,OAAO9tH,KAAKw6I,KAAK3oB,YAAYhP,aAAaqL,oBAAoBg/I,WAChE,CAEAe,gCAAgC58P,GAE9B,OAAOrR,KAAKw6I,KAAK3oB,YAAYhP,aAAaoL,sBADlBjuH,KAAK+tQ,iBAAiB32H,SAAS/lI,GAAO+lI,SAAShjD,gBAAgBloF,MAEzF,CAEAylP,sBAAsBtgP,EAAe68P,GACnCluQ,KAAK+tQ,iBAAiB32H,SAAS/lI,GAAO+lI,SAAShjD,gBAAgB4hK,WAAWkY,EAC5E,CAIUC,gBAAgBrzK,GACxB96F,KAAKu1I,UAAU6B,SAASt8C,UAAUk7J,WAAWl7J,GAE7C96F,KAAK2tQ,oBACP,CAEQA,qBACF3tQ,KAAKouQ,oBACPpuQ,KAAKquQ,+BAELruQ,KAAKsuQ,qBAET,CAEQD,+BACNruQ,KAAKu1I,UAAU6B,SAASn9C,aAAam9C,SAASlrI,MAAM8pP,gBAAW/nP,GAC/DjO,KAAKu1I,UAAU6B,SAASn9C,aAAam9C,SAASlrI,MAAMy2E,UAEpD3iF,KAAKu1I,UAAU6B,SAAS58C,WAAW48C,SAASlrI,MAAM8pP,gBAAW/nP,GAC7DjO,KAAKu1I,UAAU6B,SAAS58C,WAAW48C,SAASlrI,MAAMy2E,UAElD3iF,KAAKu1I,UAAU6B,SAASl9C,kBAAkBk9C,SAASlrI,MAAM8pP,gBAAW/nP,GACpEjO,KAAKu1I,UAAU6B,SAASl9C,kBAAkBk9C,SAASlrI,MAAMy2E,UAEzD3iF,KAAKu1I,UAAU6B,SAASj9C,gBAAgBi9C,SAASlrI,MAAM8pP,gBAAW/nP,GAClEjO,KAAKu1I,UAAU6B,SAASj9C,gBAAgBi9C,SAASlrI,MAAMy2E,UAEvD3iF,KAAKu1I,UAAU6B,SAAS78C,oBAAoB68C,SAASlrI,MAAM8pP,gBAAW/nP,GACtEjO,KAAKu1I,UAAU6B,SAAS78C,oBAAoB68C,SAASlrI,MAAMy2E,UAE3D3iF,KAAKu1I,UAAU6B,SAAS18C,cAAc08C,SAASlrI,MAAM8pP,gBAAW/nP,GAChEjO,KAAKu1I,UAAU6B,SAAS18C,cAAc08C,SAASlrI,MAAMy2E,UAErD3iF,KAAKu1I,UAAU6B,SAAS38C,uBAAuB28C,SAASlrI,MAAM8pP,gBAAW/nP,GACzEjO,KAAKu1I,UAAU6B,SAAS38C,uBAAuB28C,SAASlrI,MAAMy2E,UAE9D3iF,KAAKu1I,UAAU6B,SAASx8C,gBAAgBw8C,SAASlrI,MAAM8pP,gBAAW/nP,GAClEjO,KAAKu1I,UAAU6B,SAASx8C,gBAAgBw8C,SAASlrI,MAAMy2E,UAEvD3iF,KAAKu1I,UAAU6B,SAASz8C,yBAAyBy8C,SAASlrI,MAAM8pP,gBAAW/nP,GAC3EjO,KAAKu1I,UAAU6B,SAASz8C,yBAAyBy8C,SAASlrI,MAAMy2E,SAClE,CAEQ2rL,sBACNtuQ,KAAKu1I,UAAU6B,SAASn9C,aAAam9C,SAASlrI,MAAMknP,SACpDpzP,KAAKu1I,UAAU6B,SAAS58C,WAAW48C,SAASlrI,MAAMknP,SAClDpzP,KAAKu1I,UAAU6B,SAASl9C,kBAAkBk9C,SAASlrI,MAAMknP,SACzDpzP,KAAKu1I,UAAU6B,SAASj9C,gBAAgBi9C,SAASlrI,MAAMknP,SACvDpzP,KAAKu1I,UAAU6B,SAAS78C,oBAAoB68C,SAASlrI,MAAMknP,SAC3DpzP,KAAKu1I,UAAU6B,SAAS18C,cAAc08C,SAASlrI,MAAMknP,SACrDpzP,KAAKu1I,UAAU6B,SAAS38C,uBAAuB28C,SAASlrI,MAAMknP,SAC9DpzP,KAAKu1I,UAAU6B,SAASx8C,gBAAgBw8C,SAASlrI,MAAMknP,SACvDpzP,KAAKu1I,UAAU6B,SAASz8C,yBAAyBy8C,SAASlrI,MAAMknP,QAClE,CAEQgb,oBACN,OAAOpuQ,KAAKu1I,UAAU6B,SAASt8C,UAAU5uF,QAAUyoF,SACrD,CAIcm5K,2BACZ,OAAO9tQ,KAAKu1I,UAAU6B,SAASp8C,eAAe9uF,KAChD,CAEU0hQ,uBACJ5tQ,KAAK8tQ,qBACP9tQ,KAAKuuQ,0BAELvuQ,KAAKwuQ,wBAET,CAEQD,0BACN,UAAWV,KAAiB7tQ,KAAK+tQ,iBAAiB32H,SAChDy2H,EAAcz2H,SAAS/iD,MAAM+iD,SAASlrI,MAAMy2E,SAEhD,CAEQ6rL,yBACN,UAAWX,KAAiB7tQ,KAAK+tQ,iBAAiB32H,SAChDy2H,EAAcz2H,SAAS/iD,MAAM+iD,SAASlrI,MAAMknP,QAEhD,CAGA6G,gBAAgBl4P,GACY,gCAAtBA,EAAOyzO,aACTx1O,KAAKu1I,UAAU6B,SAASr8C,kBAAkBi7J,WAAWj0P,EAAO0P,MAC5DzR,KAAK+0F,cAAcgG,kBAAoB/6F,KAAKy4P,wBAAwBz0P,IAAI,qBAAqBkI,MAC7FlM,KAAKq2O,iBAAiBn9F,wBAE1B,CAEAxxI,cACE1H,KAAK+sD,QAAQ5kC,aACf,CAAChoB,kDAhRUotQ,GAA0Bz/O,oKAA1By/O,EAA0BhjO,uqNDzBvCplC,yCACEA,qCAAqF,SAArFA,CAAqF,SAETA,gCAAOA,6BAEjFA,qCAAwB,SAC0EA,gCAAOA,6BAGzGA,qCAAwB,SACsDA,mCAASA,6BAGvFA,sCAAwB,UAC2DA,uCAAYA,6BAG/FA,sCAAwB,UACoDA,iCAAOA,6BAGnFA,sCAAwB,UAEpBA,iCACAA,oCACFA,+BAIJA,wCAAuD,YAAvDA,CAAuD,YAAvDA,CAAuD,YAAvDA,CAAuD,eAIiBA,wCAAaA,2BAC7EA,wCAAsB,cAAtBA,CAAsB,eAMhBA,kDAAU6Q,wBAAsB,GAJlC7Q,iCASNA,wCAAkB,8CAMdA,sDAAa6Q,oBAAuB,GACtC7Q,6BAGFA,4CAUAA,2CACEA,qDAsDFA,oCACFA,6BAGFA,wCAAuE,YAAvEA,CAAuE,YAAvEA,CAAuE,YAAvEA,CAAuE,eAISA,6CAAkBA,2BAC1FA,wCAA6C,YAA7CA,CAA6C,aAGvCA,wDAEFA,2BACAA,wCACEA,iEAKFA,iCAKNA,wCAAoD,eACkBA,wCAAaA,2BACjFA,wCAA6C,YAA7CA,CAA6C,aAGvCA,wDAEFA,2BACAA,wCACEA,iEAKFA,iCAINA,wCAA0D,eACkBA,0CAAeA,2BACzFA,wCAA6C,YAA7CA,CAA6C,aAGvCA,wDAIFA,2BACAA,wCACEA,iEAKFA,iCAKNA,+BAEAA,uCAAqBA,6BAAGA,2BACxBA,wCAAqD,eACkBA,yCAAcA,2BACnFA,wCAAsB,YAAtBA,CAAsB,aAGhBA,wDAEFA,2BACAA,wCACEA,iEAKFA,iCAKNA,wCAA6D,eACkBA,kDAAuBA,2BACpGA,wCAAsB,YAAtBA,CAAsB,aAGhBA,wDAIFA,2BACAA,wCACEA,iEAKFA,uCAQZA,wCAA6D,YAA7DA,CAA6D,YAA7DA,CAA6D,YAA7DA,CAA6D,eAIUA,iCAAOA,2BACtEA,wCAAsB,YAAtBA,CAAsB,aAGhBA,wDAEFA,2BACAA,wCACEA,iEAKFA,iCAKNA,wCAAkD,eACiBA,+CAAoBA,2BACrFA,yCAAsB,aAAtBA,CAAsB,cAGhBA,yDAEFA,2BACAA,yCACEA,kEAKFA,iCAKNA,wCAAqBA,+BAAIA,2BAEzBA,yCAAkD,gBACiBA,gCAAKA,2BACtEA,yCAAsB,aAAtBA,CAAsB,cAGhBA,yDAEFA,2BACAA,yCACEA,kEAKFA,iCAKNA,yCAAgD,gBACQA,mCAAQA,2BAC9DA,yCAAsB,aAAtBA,CAAsB,cAGhBA,yDAEFA,2BACAA,yCACEA,kEAKFA,iCAKNA,yCAA0D,gBACiBA,6BAAEA,sCAAKA,4BAACA,6BACjFA,yCAAsB,aAAtBA,CAAsB,cAGhBA,yDAIFA,2BACAA,yCACEA,kEAKFA,iCAKNA,yCAAkD,gBACMA,gCAAKA,2BAC3DA,yCAAsB,aAAtBA,CAAsB,cAGhBA,yDAEFA,2BACAA,yCACEA,kEAKFA,iCAKNA,gCACAA,wCAAqBA,gCAAKA,2BAE1BA,yCAAuD,gBACCA,0CAAeA,2BACrEA,yCAAsB,aAAtBA,CAAsB,cAGhBA,yDAEFA,2BACAA,yCACEA,kEAKFA,iCAKNA,yCAAmD,gBACiBA,gCAAKA,2BACvEA,yCAAsB,aAAtBA,CAAsB,cAGhBA,yDAEFA,2BACAA,yCACEA,kEAKFA,uCAQZA,yCAA+D,WAA/DA,CAA+D,YAE5CA,iCAAMA,6BAEvBA,yCAA6B,aAA7BA,CAA6B,gBAE6BA,gDAAqBA,2BAC3EA,yCAAsB,aAAtBA,CAAsB,cAGhBA,yDAEFA,2BACAA,yCACEA,kEAKFA,2BACAA,yCAA8C,gBAE1CA,sCACFA,uCAQZA,yCAA6E,cAEzEA,4DACFA,6BAEFA,yCAA2D,aAA3DA,CAA2D,aAA3DA,CAA2D,aAA3DA,CAA2D,aAA3DA,CAA2D,gBAU/CA,iDAAS6Q,6CAAyC,GAClD7Q,sCACAA,mCACFA,2BACAA,2CAKEA,iDAAS6Q,8CAA0C,GACnD7Q,sCACAA,qCACFA,+BAIJA,yCAAqD,gBACkBA,2CAAeA,2BACpFA,yCAAsB,aAAtBA,CAAsB,cAGhBA,yDAEFA,2BACAA,yCACEA,kEAKFA,iCAKNA,yCAAmD,gBACKA,sCAAWA,2BACjEA,yCAAsB,aAAtBA,CAAsB,cAGhBA,yDAEFA,2BACAA,yCACEA,kEAKFA,iCAKNA,yCAA4D,gBACiBA,gDAAqBA,2BAChGA,yCAAsB,aAAtBA,CAAsB,cAGhBA,yDAIFA,2BACAA,yCACEA,kEAKFA,iCAKNA,yCAAsD,gBACiBA,yCAAcA,2BACnFA,yCAAsB,aAAtBA,CAAsB,cAGhBA,yDAEFA,2BACAA,yCACEA,kEAKFA,iCAKNA,yCAA+D,gBAE1DA,mDAAwBA,2BAE3BA,yCAAsB,aAAtBA,CAAsB,cAGhBA,yDAIFA,2BACAA,yCACEA,kEAKFA,iCAKNA,yCAA0D,iBACiBA,+CAAoBA,2BAC7FA,yCAAsB,aAAtBA,CAAsB,cAGhBA,yDAIFA,2BACAA,yCACEA,mEAKFA,iCAKNA,0CAAwD,iBACiBA,4CAAiBA,2BACxFA,yCAAsB,aAAtBA,CAAsB,cAGhBA,yDAEFA,2BACAA,yCACEA,mEAKFA,iCAKNA,0CAAiE,iBAE5DA,sDAA2BA,2BAE9BA,yCAAsB,aAAtBA,CAAsB,cAGhBA,yDAIFA,2BACAA,yCACEA,mEAKFA,iCAKNA,gEACiC,wCAGnCA,iCAIRA,2CAtnBcA,gDA+CFA,2FAAwC,4CAAxCA,CAAwC,mCAAxCA,CAAwC,4CAQnBA,gFAWmBA,uFAkEeA,sGAO/CA,iGAY+CA,iGAO/CA,6FAaAA,uGAOAA,mGAe+CA,mGAO/CA,8FAcAA,0GAOAA,sGAkB+CA,8FAO/CA,yFAY+CA,+FAO/CA,2FAc+CA,+FAO/CA,2FAY+CA,6FAO/CA,yFAcAA,uGAOAA,mGAY+CA,+FAO/CA,2FAe+CA,qGAO/CA,gGAY+CA,gGAO/CA,4FAoB6CA,+FAO/CA,0FAgBmBA,+EAUrBA,uLASAA,wLAemDA,kGAO/CA,8FAY+CA,gGAO/CA,4FAcAA,yGAOAA,qGAY+CA,mGAO/CA,+FAgBAA,4GAOAA,wGAcAA,uGAOAA,mGAY+CA,qGAO/CA,iGAgBAA,8GAOAA,0GAOsBA,uFAAqC,iCAEvCA,uFAAqC,69BCvlBhEooQ,CAA2B,8BCdpCpoQ,0FAAoBA,kFACpBA,sFAAgBA,kFAGhBA,8FACEA,wDAA+B,iEAIjCA,uFAAiBA,kFACjBA,iFACEA,wDAA+B,iEAGjCA,2FAAqBA,kFACrBA,gFACEA,8DAAqC,2DAGvCA,oFACEA,8DAAqC,2DAGvCA,kGAA4BA,kFAE5BA,uFAAiBA,kFACjBA,oFAEEA,wDAA+B,iEAEjCA,gGAA0BA,kFAE1BA,8FAAwBA,kFAExBA,oFAAcA,kFACdA,+EAASA,kFACTA,+EAASA,kFACTA,wFACEA,8DAAqC,2DAGvCA,0FAAoBA,kFACpBA,wFACEA,8DAAqC,2DAIvCA,4FAAsBA,kFAEtBA,4FACEA,8DAAqC,2DAGvCA,+EAASA,kFACTA,uFAAiBA,kFAEjBA,0FAAoBA,kFAEpBA,wFACEA,8DAAqC,2DAKvCA,wFAAkBA,kFAGlBA,wGAAkCA,kFAElCA,wFACEA,wDAA+B,iEAIjCA,+FACEA,8DAAqC,2DAIvCA,6FACEA,8DAAqC,2DAIvCA,yFACEA,wDAA+B,iEAGjCA,gGAA0BA,kFAE1BA,wFAAkBA,kFAClBA,wFAAkBA,kFAClBA,qGAA+BA,kFAE/BA,sFAAgBA,kFAChBA,uFAAiBA,kFACjBA,uFAAiBA,kFACjBA,0FACEA,8DAAqC,2DAGvCA,sFAAgBA,kFAChBA,wFACEA,8DAAqC,2DAGvCA,sFAAgBA,kFAChBA,wFACEA,8DAAqC,2DAGvCA,8FACEA,8DAAqC,2DAIvCA,2GAEEA,kFACFA,0FAEEA,wDAA+B,iEAGjCA,yFACEA,8DAAqC,2DAIvCA,gGAEEA,wDAA+B,iEAEjCA,kGAEEA,wDAA+B,iEAGjCA,0FAEEA,kFACFA,2FACEA,8DAAqC,2DAGvCA,6FACEA,8DAAqC,2DAGvCA,oGAEEA,wDAA+B,wCCvJ9B,IAAMspQ,GAAuB,MAA9B,MAAOA,EAMX5uQ,YAAoBw2O,2BAFpBr2O,0BAAuBivF,EAEkC,CAEzDy/K,+BACMniN,EAAE,wBAAwB+9B,KAAK,cAKnCtqF,KAAKq2O,iBAAiBl9F,8BAGtBn5I,KAAKq2O,iBAAiBp9F,sBACxB,CAAC94I,kDAlBUsuQ,GAAuB3gP,gGAAvB2gP,EAAuBlkO,ssBDXpCplC,sCAAyB,UAAzBA,CAAyB,UAAzBA,CAAyB,aAGyDA,mFAA5EA,+BAGJA,sCAAsB,SAC+BA,iDAAS6Q,gCAA8B,GAAG7Q,4BAAEA,6BAGjGA,sCACEA,wDACAA,oDAGAA,6DAKAA,sDACAA,gDAIAA,0DACAA,+CAIAA,mDAIAA,iEAEAA,sDACAA,mDAIAA,+DAEAA,6DAEAA,mDACAA,8CACAA,8CACAA,uDAIAA,yDACAA,uDAKAA,2DAEAA,2DAIAA,8CACAA,sDAEAA,yDAEAA,uDAMAA,uDAGAA,uEAEAA,uDAKAA,8DAKAA,4DAKAA,wDAIAA,+DAEAA,uDACAA,uDACAA,oEAEAA,qDACAA,sDACAA,sDACAA,yDAIAA,qDACAA,uDAIAA,qDACAA,uDAIAA,6DAKAA,0EAGAA,yDAKAA,wDAKAA,+DAIAA,iEAKAA,yDAGAA,0DAIAA,4DAIAA,mEAKFA,oCAlKgFA,gFAO9BA,qFACKA,iFACJA,6EAM9CA,6GAE+CA,8EAI/CA,wEACmDA,kFAInDA,gGAIAA,oGAC0DA,yFAEXA,8EAE/CA,oGAGwDA,uFAEFA,qFAEVA,2EACLA,sEACAA,sEAIvCA,wGACkDA,iFAIlDA,uGAEoDA,2GAKpDA,2GACuCA,sEACQA,sGAEGA,iFAKlDA,uGAGgDA,+EAGgBA,+FAKhEA,uGAKAA,6GAKAA,2GAKAA,wGACwDA,uFAERA,+EACAA,+EACaA,4FAEfA,6EACCA,8EACAA,8EAI/CA,yGAC8CA,6EAI9CA,uGAC8CA,6EAI9CA,uGAIAA,6GAGAA,uHAGAA,wGAMAA,uGAIAA,6GAIAA,+GAKAA,wGAKAA,yGAIAA,2GAEAA,kpCCtJMspQ,CAAuB,KCDvBE,GAAkC,MAAzC,MAAOA,EAGX9uQ,YAAoBkwI,EAAkCve,EAAuC7nF,GAAzE3pC,mBAAkCA,kBAAuCA,WAC3FA,KAAK8iH,kBAAoB9iH,KAAK+vI,YAAYle,YAAY/O,kBAGtD9iH,KAAK+vI,YAAY6+H,mBAAmBr2P,UAAU,KAC5CvY,KAAK8iH,kBAAoB9iH,KAAK+vI,YAAYle,YAAY/O,kBACtD9iH,KAAK2pC,IAAIyiB,eAAa,EAE1B,CAEAyiN,yBAAyBC,GACvB9uQ,KAAK8iH,kBAAkBkJ,sBAAwB8iJ,EAC/C9uQ,KAAKwxH,WAAWj7D,KAAK,6BAA6Bv2D,KAAK8iH,kBAAkBsJ,yBACzEpsH,KAAK+vI,YAAYjE,yBACnB,CAAC3rI,kDAjBUwuQ,GAAkC7gP,qLAAlC6gP,EAAkCpkO,2VCV/CplC,sCAAwB,aACsDA,6CAAmBA,2BAE/FA,sCAAsB,UAAtBA,CAAsB,cAIhBA,wGAAqD,4BAC3C6Q,0CAA6C,GAEvD7Q,yCAAqBA,uCAAcA,2BACnCA,yCAAoBA,qCAAYA,0CAJhCA,yuBDGKwpQ,CAAkC,qEEAvCxpQ,sCAAkD,UAAlDA,CAAkD,UAAlDA,CAAkD,UAG6BA,kCAAQA,+BAIrFA,uCACEA,8BACAA,uCAAkE,YAE9DA,2DACFA,2BAEAA,wCAAwB,eACoDA,6CAAkBA,2BAC5FA,wCAAsB,gBAIlBA,2HAAaA,0DAC5B,GACeA,2CAA8BA,yCAAeA,2BAC7CA,2CAAoBA,6BAAGA,2BACvBA,2CAAqBA,8BAAIA,2BACzBA,2CAA8BA,6CAAmBA,iCAKvDA,wCAAwB,eAC+CA,mDAAwBA,2BAE7FA,wCAAsB,eAMlBA,2HAAaA,8DAC/B,GANgBA,+BASJA,wCAAwB,eACwDA,wCAAaA,2BAC3FA,6CACFA,2BAEAA,wCAAwB,eACqDA,qCAAUA,2BACrFA,6CACFA,2BACAA,wCAAwB,eAC4CA,qDAA0BA,2BAE5FA,wCAAsB,gBAKlBA,2HAAaA,2DAC7B,GAAgBA,2CAAuBA,qCAAWA,2BAClCA,2CAAoBA,6BAAGA,sCAAS,6CA1ChCA,4FAmBAA,gGAKGA,yEACQA,4EAA4B,qCAIpCA,sEACQA,yEAAyB,kCAUpCA,6FC5Db,IAAM4pQ,GAAqB,MAA5B,MAAOA,EAGXlvQ,YACUkwI,EACAsmG,EACA1sM,GAFA3pC,mBACAA,wBACAA,WAERA,KAAKq2O,iBAAiB24B,wBAAwBz2P,UAAU,KACtDvY,KAAKg5I,kBAAgB,EAEzB,CAEA/vG,WACEsjB,EAAE,sBAAsBC,GAAG,gBAAiB,KAC1CxsD,KAAK+vI,YAAYzvB,iBAAiBtgH,KAAK46G,aAAY,EAEvD,CAEAo+B,mBACEh5I,KAAK46G,aAAe,KACpB56G,KAAK2pC,IAAIyiB,gBACTpsD,KAAK46G,aAAe,IAAID,GAAa36G,KAAK+vI,YAAYle,YAAYjX,aAAc56G,KAAK+vI,YAAYle,aACjGtlE,EAAE,sBAAsBI,MAAM,OAChC,CAACxsD,kDAxBU4uQ,GAAqBjhP,qLAArBihP,EAAqBxkO,+8CDVlCplC,sCAAoH,UAApHA,CAAoH,UAApHA,CAAoH,UAApHA,CAAoH,aAApHA,CAAoH,YAKjFA,6BAAOA,6BAElCA,qCAA8BA,sCAAaA,6BAE7CA,sCACEA,2CAqEFA,wCArEgCA,qPCAzB4pQ,CAAqB,KCV3B,IAAKE,GAIX,aAJWA,UAAqB,KAC/BA,YACAA,kBACAA,8BAHUA,GAAZ,IAAYA,GAIX,GCED,MAAM99M,GAAM,CAAC,eACP+9M,GAAM,CAAC,aACPC,GAAM,CAAC,eACb,SAASC,GAAoCC,EAAIr5P,GAE/C,GAF+D,EAALq5P,GACxDC,sBAAiB,EAAG,OACb,EAALD,EAAQ,CACV,MAAM/9M,EAASg+M,4BACfA,mCAA8B,eAAgBh+M,EAAOi+M,cAAe,IACpED,wBAAmB,MAAOh+M,EAAOk+M,SAAU,KAAI,CACjD,CACF,SAASC,GAAoCJ,EAAIr5P,GAAO,GAAS,EAALq5P,EAAQ,CAChE,MAAMK,EAAOJ,+BACbA,2BAAsB,EAAG,MAAO,IAChCA,uBAAkB,WAAY,SAAqEzP,GAAUyP,0BAAqBI,GAAO,MAAMC,EAAUL,4BAAwB,OAAOA,wBAAmBK,EAAQC,cAAc/P,GAAU,EAA3OyP,CAA8O,YAAa,WAA0EA,0BAAqBI,GAAO,MAAMG,EAAUP,4BAAwB,OAAOA,wBAAmBO,EAAQC,YAAY,wBAA0B,EAAjdR,CAAod,UAAW,WAAwEA,0BAAqBI,GAAO,MAAMK,EAAUT,4BAAwB,OAAOA,wBAAmBS,EAAQC,UAAU,wBAA0B,GACjrBV,sBAAiB,EAAG,MAAO,IAC3BA,0BAAmB,CACrB,GAAS,EAALD,EAAQ,CACV,MAAM99M,EAAS+9M,4BACfA,wBAAmB,mBAAoB/9M,EAAO0+M,gBAC9CX,uBAAkB,MAAO,EAAzBA,CAA4B,MAAO,GACnCA,sBAAiB,GACjBA,wBAAmB,MAAwB,MAAjB/9M,EAAO2+M,OAAiB,KAAO3+M,EAAO2+M,OAAO30P,EAAG,KAA1E+zP,CAAgF,OAAyB,MAAjB/9M,EAAO2+M,OAAiB,KAAO3+M,EAAO2+M,OAAOvmQ,EAAG,KAAI,CAC9I,CACF,SAASwmQ,GAAuCd,EAAIr5P,GAAO,GAAS,EAALq5P,EAAQ,CACnE,MAAMe,EAAOd,+BACbA,2BAAsB,EAAG,SAAU,IACnCA,uBAAkB,QAAS,SAAwEzP,GAAUyP,0BAAqBc,GAAO,MAAMC,EAAUf,4BAAwB,OAAOA,wBAAmBe,EAAQC,iBAAiBzQ,EAAQwQ,EAAQE,eAAiB,GACrQjB,mBAAc,GACdA,0BAAmB,CACrB,GAAS,EAALD,EAAQ,CACV,MAAM79M,EAAS89M,4BACfA,uBAAkB99M,EAAOg/M,uBACzBlB,uBAAkB,WAAY99M,EAAOi/M,gBAAkBj/M,EAAOi/M,eAAehsQ,QAAU+sD,EAAOk/M,yBAC9FpB,sBAAiB,GACjBA,+BAA0B,IAAK99M,EAAOm/M,qBAAsB,IAAG,CACjE,CACF,SAASC,GAAqCvB,EAAIr5P,GAAgB,EAALq5P,GACzDC,sBAAiB,EAAG,MAAO,GAC7B,CACF,SAASuB,GAA6CxB,EAAIr5P,GAAO,GAAS,EAALq5P,EAAQ,CACzE,MAAMyB,EAAOxB,+BACbA,2BAAsB,EAAG,QAAS,IAClCA,uBAAkB,cAAe,SAAmFzP,GAAUyP,0BAAqBwB,GAAO,MAAMC,EAAUzB,0BAAqB,GAAI,OAAOA,wBAAmByB,EAAQC,cAAcnR,GAAU,EAA7PyP,CAAgQ,WAAY,SAAgFzP,GAAUyP,0BAAqBwB,GAAO,MAAMG,EAAU3B,0BAAqB,GAAI,OAAOA,wBAAmB2B,EAAQC,aAAarR,GAAU,GACpeyP,0BAAmB,CACrB,GAAS,EAALD,EAAQ,CACV,MAAM8B,EAAU7B,0BAAqB,GACrCA,uBAAkB,KAAM,EAAxBA,CAA2B,QAA6B,MAApB6B,EAAQC,SAAmB,KAAOD,EAAQC,SAASpgP,EAAC,CAC1F,CACF,SAASqgP,GAA4ChC,EAAIr5P,GAAgB,EAALq5P,IAChEC,2BAAsB,EAAG,OACzBA,mBAAc,EAAG,KACjBA,2BACF,CACF,SAASgC,GAAqCjC,EAAIr5P,GAAO,GAAS,EAALq5P,EAAQ,CACjE,MAAMkC,EAAOjC,+BACbA,2BAAsB,EAAG,MAAO,GAAhCA,CAAoC,EAAG,MAAO,GAA9CA,CAAkD,EAAG,QAAS,IAC9DA,uBAAkB,cAAe,SAA2EzP,GAAUyP,0BAAqBiC,GAAO,MAAMC,EAAUlC,4BAAwB,OAAOA,wBAAmBkC,EAAQR,cAAcnR,GAAU,EAApPyP,CAAuP,WAAY,SAAwEzP,GAAUyP,0BAAqBiC,GAAO,MAAME,EAAUnC,4BAAwB,OAAOA,wBAAmBmC,EAAQC,YAAY7R,GAAU,GACjdyP,2BACAA,2BAAsB,EAAG,QAAS,IAClCA,uBAAkB,cAAe,SAA2EzP,GAAUyP,0BAAqBiC,GAAO,MAAMI,EAAUrC,4BAAwB,OAAOA,wBAAmBqC,EAAQX,cAAcnR,GAAU,EAApPyP,CAAuP,WAAY,SAAwEzP,GAAUyP,0BAAqBiC,GAAO,MAAMK,EAAUtC,4BAAwB,OAAOA,wBAAmBsC,EAAQC,eAAehS,GAAU,GACpdyP,2BACAA,2BAAsB,EAAG,QAAS,IAClCA,uBAAkB,cAAe,SAA2EzP,GAAUyP,0BAAqBiC,GAAO,MAAMO,EAAUxC,4BAAwB,OAAOA,wBAAmBwC,EAAQd,cAAcnR,GAAU,EAApPyP,CAAuP,WAAY,SAAwEzP,GAAUyP,0BAAqBiC,GAAO,MAAMQ,EAAUzC,4BAAwB,OAAOA,wBAAmByC,EAAQC,cAAcnS,GAAU,GACndyP,2BACAA,2BAAsB,EAAG,QAAS,IAClCA,uBAAkB,cAAe,SAA2EzP,GAAUyP,0BAAqBiC,GAAO,MAAMU,EAAU3C,4BAAwB,OAAOA,wBAAmB2C,EAAQjB,cAAcnR,GAAU,EAApPyP,CAAuP,WAAY,SAAwEzP,GAAUyP,0BAAqBiC,GAAO,MAAMW,EAAU5C,4BAAwB,OAAOA,wBAAmB4C,EAAQC,aAAatS,GAAU,GACldyP,2BACAA,uBAAkB,EAAGuB,GAA8C,EAAG,EAAG,QAAS,IAClFvB,2BACAA,2BAAsB,EAAG,MAAO,GAAhCA,CAAoC,EAAG,OACvCA,mBAAc,EAAG,KACjBA,2BACAA,2BAAsB,GAAI,OAC1BA,mBAAc,GAAI,KAClBA,2BACAA,2BAAsB,GAAI,OAC1BA,mBAAc,GAAI,KAClBA,2BACAA,2BAAsB,GAAI,OAC1BA,mBAAc,GAAI,KAClBA,2BACAA,uBAAkB,GAAI+B,GAA6C,EAAG,EAAG,MAAO,IAChF/B,4BAAqB,CACvB,GAAS,EAALD,EAAQ,CACV,MAAM+C,EAAS9C,4BACfA,wBAAmB,UAA6B,IAAlB8C,EAAOjkL,OAAe,OAAS,SAC7DmhL,sBAAiB,GACjBA,uBAAkB,KAAM,IAAxBA,CAA6B,QAA4B,MAAnB8C,EAAOhB,SAAmB,KAAOgB,EAAOhB,SAAS95O,GACvFg4O,sBAAiB,GACjBA,uBAAkB,KAAM,IAAxBA,CAA6B,QAA4B,MAAnB8C,EAAOhB,SAAmB,KAAOgB,EAAOhB,SAAStxO,GACvFwvO,sBAAiB,GACjBA,uBAAkB,KAAM,IAAxBA,CAA6B,QAA4B,MAAnB8C,EAAOhB,SAAmB,KAAOgB,EAAOhB,SAASl8K,GACvFo6K,sBAAiB,GACjBA,uBAAkB,KAAM,IAAxBA,CAA6B,QAA4B,MAAnB8C,EAAOhB,SAAmB,KAAOgB,EAAOhB,SAASr4O,GACvFu2O,sBAAiB,GACjBA,uBAAkB,OAAkC,aAA1B8C,EAAOC,gBACjC/C,sBAAiB,IACjBA,uBAAkB,OAAkC,aAA1B8C,EAAOC,eAA6B,CAChE,CACF,SAASC,GAA6CjD,EAAIr5P,GAAO,GAAS,EAALq5P,EAAQ,CACzE,MAAMkD,EAAOjD,+BACbA,2BAAsB,EAAG,QAAS,IAClCA,uBAAkB,cAAe,SAAmFzP,GAAUyP,0BAAqBiD,GAAO,MAAMC,EAAUlD,0BAAqB,GAAI,OAAOA,wBAAmBkD,EAAQxB,cAAcnR,GAAU,EAA7PyP,CAAgQ,WAAY,SAAgFzP,GAAUyP,0BAAqBiD,GAAO,MAAME,EAAUnD,0BAAqB,GAAI,OAAOA,wBAAmBmD,EAAQvB,aAAarR,GAAU,GACpeyP,0BAAmB,CACrB,GAAS,EAALD,EAAQ,CACV,MAAMqD,EAAUpD,0BAAqB,GACrCA,uBAAkB,KAAM,EAAxBA,CAA2B,QAA6B,MAApBoD,EAAQC,SAAmB,KAAOD,EAAQC,SAAS3hP,EAAC,CAC1F,CACF,SAAS4hP,GAA4CvD,EAAIr5P,GAAgB,EAALq5P,IAChEC,2BAAsB,EAAG,OACzBA,mBAAc,EAAG,KACjBA,2BACF,CACF,SAASuD,GAAqCxD,EAAIr5P,GAAO,GAAS,EAALq5P,EAAQ,CACjE,MAAMyD,EAAOxD,+BACbA,2BAAsB,EAAG,MAAO,GAAhCA,CAAoC,EAAG,MAAO,GAA9CA,CAAkD,EAAG,QAAS,IAC9DA,uBAAkB,cAAe,SAA2EzP,GAAUyP,0BAAqBwD,GAAO,MAAMC,EAAUzD,4BAAwB,OAAOA,wBAAmByD,EAAQ/B,cAAcnR,GAAU,EAApPyP,CAAuP,WAAY,SAAwEzP,GAAUyP,0BAAqBwD,GAAO,MAAME,EAAU1D,4BAAwB,OAAOA,wBAAmB0D,EAAQC,WAAWpT,GAAU,GAChdyP,2BACAA,2BAAsB,EAAG,QAAS,IAClCA,uBAAkB,cAAe,SAA2EzP,GAAUyP,0BAAqBwD,GAAO,MAAMI,EAAU5D,4BAAwB,OAAOA,wBAAmB4D,EAAQlC,cAAcnR,GAAU,EAApPyP,CAAuP,WAAY,SAAwEzP,GAAUyP,0BAAqBwD,GAAO,MAAMK,EAAU7D,4BAAwB,OAAOA,wBAAmB6D,EAAQC,kBAAkBvT,GAAU,GACvdyP,2BACAA,2BAAsB,EAAG,QAAS,IAClCA,uBAAkB,cAAe,SAA2EzP,GAAUyP,0BAAqBwD,GAAO,MAAMO,EAAU/D,4BAAwB,OAAOA,wBAAmB+D,EAAQrC,cAAcnR,GAAU,EAApPyP,CAAuP,WAAY,SAAwEzP,GAAUyP,0BAAqBwD,GAAO,MAAMQ,EAAUhE,4BAAwB,OAAOA,wBAAmBgE,EAAQC,iBAAiB1T,GAAU,GACtdyP,2BACAA,uBAAkB,EAAGgD,GAA8C,EAAG,EAAG,QAAS,IAClFhD,2BACAA,2BAAsB,EAAG,MAAO,GAAhCA,CAAoC,EAAG,OACvCA,mBAAc,EAAG,KACjBA,2BACAA,2BAAsB,EAAG,OACzBA,mBAAc,GAAI,KAClBA,2BACAA,2BAAsB,GAAI,OAC1BA,mBAAc,GAAI,KAClBA,2BACAA,uBAAkB,GAAIsD,GAA6C,EAAG,EAAG,MAAO,IAChFtD,4BAAqB,CACvB,GAAS,EAALD,EAAQ,CACV,MAAMmE,EAASlE,4BACfA,wBAAmB,UAA6B,IAAlBkE,EAAOrlL,OAAe,OAAS,SAC7DmhL,sBAAiB,GACjBA,uBAAkB,KAAM,IAAxBA,CAA6B,QAA4B,MAAnBkE,EAAOb,SAAmB,KAAOa,EAAOb,SAASvvF,GACvFksF,sBAAiB,GACjBA,uBAAkB,KAAM,IAAxBA,CAA6B,QAA4B,MAAnBkE,EAAOb,SAAmB,KAAOa,EAAOb,SAAShpQ,GACvF2lQ,sBAAiB,GACjBA,uBAAkB,KAAM,IAAxBA,CAA6B,QAA4B,MAAnBkE,EAAOb,SAAmB,KAAOa,EAAOb,SAASviK,GACvFk/J,sBAAiB,GACjBA,uBAAkB,OAAkC,aAA1BkE,EAAOnB,gBACjC/C,sBAAiB,GACjBA,uBAAkB,OAAkC,aAA1BkE,EAAOnB,eAA6B,CAChE,CACF,SAASoB,GAA6CpE,EAAIr5P,GAAO,GAAS,EAALq5P,EAAQ,CACzE,MAAMqE,EAAOpE,+BACbA,2BAAsB,EAAG,QAAS,IAClCA,uBAAkB,cAAe,SAAmFzP,GAAUyP,0BAAqBoE,GAAO,MAAMC,EAAUrE,0BAAqB,GAAI,OAAOA,wBAAmBqE,EAAQ3C,cAAcnR,GAAU,EAA7PyP,CAAgQ,WAAY,SAAgFzP,GAAUyP,0BAAqBoE,GAAO,MAAME,EAAUtE,0BAAqB,GAAI,OAAOA,wBAAmBsE,EAAQ1C,aAAarR,GAAU,GACpeyP,0BAAmB,CACrB,GAAS,EAALD,EAAQ,CACV,MAAMwE,EAAUvE,0BAAqB,GACrCA,uBAAkB,KAAM,EAAxBA,CAA2B,QAA6B,MAApBuE,EAAQC,SAAmB,KAAOD,EAAQC,SAAS9iP,EAAC,CAC1F,CACF,SAAS+iP,GAA4C1E,EAAIr5P,GAAgB,EAALq5P,IAChEC,2BAAsB,EAAG,OACzBA,mBAAc,EAAG,KACjBA,2BACF,CACF,SAAS0E,GAAqC3E,EAAIr5P,GAAO,GAAS,EAALq5P,EAAQ,CACjE,MAAM4E,EAAO3E,+BACbA,2BAAsB,EAAG,MAAO,GAAhCA,CAAoC,EAAG,MAAO,GAA9CA,CAAkD,EAAG,QAAS,IAC9DA,uBAAkB,cAAe,SAA2EzP,GAAUyP,0BAAqB2E,GAAO,MAAMC,EAAU5E,4BAAwB,OAAOA,wBAAmB4E,EAAQlD,cAAcnR,GAAU,EAApPyP,CAAuP,WAAY,SAAwEzP,GAAUyP,0BAAqB2E,GAAO,MAAME,EAAU7E,4BAAwB,OAAOA,wBAAmB6E,EAAQC,WAAWvU,GAAU,GAChdyP,2BACAA,2BAAsB,EAAG,QAAS,IAClCA,uBAAkB,cAAe,SAA2EzP,GAAUyP,0BAAqB2E,GAAO,MAAMI,EAAU/E,4BAAwB,OAAOA,wBAAmB+E,EAAQrD,cAAcnR,GAAU,EAApPyP,CAAuP,WAAY,SAAwEzP,GAAUyP,0BAAqB2E,GAAO,MAAMK,EAAUhF,4BAAwB,OAAOA,wBAAmBgF,EAAQC,aAAa1U,GAAU,GACldyP,2BACAA,2BAAsB,EAAG,QAAS,IAClCA,uBAAkB,cAAe,SAA2EzP,GAAUyP,0BAAqB2E,GAAO,MAAMO,EAAUlF,4BAAwB,OAAOA,wBAAmBkF,EAAQxD,cAAcnR,GAAU,EAApPyP,CAAuP,WAAY,SAAwEzP,GAAUyP,0BAAqB2E,GAAO,MAAMQ,EAAUnF,4BAAwB,OAAOA,wBAAmBmF,EAAQC,YAAY7U,GAAU,GACjdyP,2BACAA,uBAAkB,EAAGmE,GAA8C,EAAG,EAAG,QAAS,IAClFnE,2BACAA,2BAAsB,EAAG,MAAO,GAAhCA,CAAoC,EAAG,OACvCA,mBAAc,EAAG,KACjBA,2BACAA,2BAAsB,EAAG,OACzBA,mBAAc,GAAI,KAClBA,2BACAA,2BAAsB,GAAI,OAC1BA,mBAAc,GAAI,KAClBA,2BACAA,uBAAkB,GAAIyE,GAA6C,EAAG,EAAG,MAAO,IAChFzE,4BAAqB,CACvB,GAAS,EAALD,EAAQ,CACV,MAAMsF,EAAUrF,4BAChBA,wBAAmB,UAA8B,IAAnBqF,EAAQxmL,OAAe,OAAS,SAC9DmhL,sBAAiB,GACjBA,uBAAkB,KAAM,IAAxBA,CAA6B,QAA6B,MAApBqF,EAAQb,SAAmB,KAAOa,EAAQb,SAASl+P,GACzF05P,sBAAiB,GACjBA,uBAAkB,KAAM,IAAxBA,CAA6B,QAA6B,MAApBqF,EAAQb,SAAmB,KAAOa,EAAQb,SAASv1O,GACzF+wO,sBAAiB,GACjBA,uBAAkB,KAAM,IAAxBA,CAA6B,QAA6B,MAApBqF,EAAQb,SAAmB,KAAOa,EAAQb,SAAS7iP,GACzFq+O,sBAAiB,GACjBA,uBAAkB,OAAmC,aAA3BqF,EAAQtC,gBAClC/C,sBAAiB,GACjBA,uBAAkB,OAAmC,aAA3BqF,EAAQtC,eAA6B,CACjE,CACF,SAASuC,GAA6CvF,EAAIr5P,GAAO,GAAS,EAALq5P,EAAQ,CACzE,MAAMwF,EAAOvF,+BACbA,2BAAsB,EAAG,QAAS,IAClCA,uBAAkB,cAAe,SAAmFzP,GAAUyP,0BAAqBuF,GAAO,MAAMC,EAAUxF,0BAAqB,GAAI,OAAOA,wBAAmBwF,EAAQ9D,cAAcnR,GAAU,EAA7PyP,CAAgQ,WAAY,SAAgFzP,GAAUyP,0BAAqBuF,GAAO,MAAME,EAAUzF,0BAAqB,GAAI,OAAOA,wBAAmByF,EAAQ7D,aAAarR,GAAU,GACpeyP,0BAAmB,CACrB,GAAS,EAALD,EAAQ,CACV,MAAM2F,EAAU1F,0BAAqB,GACrCA,uBAAkB,KAAM,EAAxBA,CAA2B,QAAS0F,EAAQC,SAAQ,CACtD,CACF,SAASC,GAA2C7F,EAAIr5P,GAAgB,EAALq5P,IAC/DC,2BAAsB,EAAG,OACzBA,mBAAc,EAAG,KACjBA,2BACF,CACF,SAAS6F,GAAqC9F,EAAIr5P,GAAO,GAAS,EAALq5P,EAAQ,CACjE,MAAM+F,EAAO9F,+BACbA,2BAAsB,EAAG,MAAO,GAAhCA,CAAoC,EAAG,MAAO,GAA9CA,CAAkD,EAAG,QAAS,IAC9DA,uBAAkB,OAAQ,WAAwEA,0BAAqB8F,GAAO,MAAMC,EAAU/F,4BAAwB,OAAOA,wBAAmB+F,EAAQC,WAAW,MAAQ,EAA3NhG,CAA8N,cAAe,SAA2EzP,GAAUyP,0BAAqB8F,GAAO,MAAMG,EAAUjG,4BAAwB,OAAOA,wBAAmBiG,EAAQvE,cAAcnR,GAAU,EAAhcyP,CAAmc,WAAY,SAAwEzP,GAAUyP,0BAAqB8F,GAAO,MAAMI,EAAUlG,4BAAwB,OAAOA,wBAAmBkG,EAAQF,WAAWzV,GAAU,GAC5pByP,2BACAA,uBAAkB,EAAGsF,GAA8C,EAAG,EAAG,QAAS,IAClFtF,2BACAA,2BAAsB,EAAG,MAAO,GAAhCA,CAAoC,EAAG,OACvCA,mBAAc,EAAG,OACjBA,2BACAA,uBAAkB,EAAG4F,GAA4C,EAAG,EAAG,MAAO,IAC9E5F,4BAAqB,CACvB,GAAS,EAALD,EAAQ,CACV,MAAMoG,EAAUnG,4BAChBA,wBAAmB,UAA8B,IAAnBmG,EAAQtnL,OAAe,OAAS,SAC9DmhL,wBAAmB,YAAwC,WAA3BmG,EAAQpD,gBACxC/C,sBAAiB,GACjBA,uBAAkB,QAASmG,EAAQC,SACnCpG,sBAAiB,GACjBA,uBAAkB,OAAmC,WAA3BmG,EAAQpD,gBAClC/C,sBAAiB,GACjBA,uBAAkB,OAAmC,WAA3BmG,EAAQpD,eAA2B,CAC/D,CACF,SAASsD,GAA6CtG,EAAIr5P,GAAO,GAAS,EAALq5P,EAAQ,CACzE,MAAMuG,EAAOtG,+BACbA,2BAAsB,EAAG,QAAS,IAClCA,uBAAkB,cAAe,SAAmFzP,GAAUyP,0BAAqBsG,GAAO,MAAMC,EAAUvG,0BAAqB,GAAI,OAAOA,wBAAmBuG,EAAQ7E,cAAcnR,GAAU,EAA7PyP,CAAgQ,WAAY,SAAgFzP,GAAUyP,0BAAqBsG,GAAO,MAAME,EAAUxG,0BAAqB,GAAI,OAAOA,wBAAmBwG,EAAQ5E,aAAarR,GAAU,GACpeyP,0BAAmB,CACrB,GAAS,EAALD,EAAQ,CACV,MAAM0G,EAAUzG,0BAAqB,GACrCA,uBAAkB,KAAM,EAAxBA,CAA2B,QAA6B,MAApByG,EAAQpD,SAAmB,KAAOoD,EAAQpD,SAAS3hP,EAAC,CAC1F,CACF,SAASglP,GAAqC3G,EAAIr5P,GAAO,GAAS,EAALq5P,EAAQ,CACjE,MAAM4G,EAAO3G,+BACbA,2BAAsB,EAAG,MAAO,GAAhCA,CAAoC,EAAG,MAAO,GAA9CA,CAAkD,EAAG,QAAS,IAC9DA,uBAAkB,cAAe,SAA2EzP,GAAUyP,0BAAqB2G,GAAO,MAAMC,EAAU5G,4BAAwB,OAAOA,wBAAmB4G,EAAQlF,cAAcnR,GAAU,EAApPyP,CAAuP,WAAY,SAAwEzP,GAAUyP,0BAAqB2G,GAAO,MAAME,EAAU7G,4BAAwB,OAAOA,wBAAmB6G,EAAQC,aAAavW,GAAU,GACldyP,2BACAA,uBAAkB,EAAGqG,GAA8C,EAAG,EAAG,QAAS,IAClFrG,2BACAA,2BAAsB,EAAG,MAAO,GAAhCA,CAAoC,EAAG,OACvCA,mBAAc,EAAG,KACjBA,2BACAA,2BAAsB,EAAG,OACzBA,mBAAc,EAAG,KACjBA,8BAAuB,CACzB,GAAS,EAALD,EAAQ,CACV,MAAMgH,EAAU/G,4BAChBA,sBAAiB,GACjBA,uBAAkB,KAAM,IAAxBA,CAA6B,QAA6B,MAApB+G,EAAQ1D,SAAmB,KAAO0D,EAAQ1D,SAASviK,GACzFk/J,sBAAiB,GACjBA,uBAAkB,OAAmC,aAA3B+G,EAAQhE,eAA6B,CACjE,CACF,SAASiE,GAAqCjH,EAAIr5P,GAAO,GAAS,EAALq5P,EAAQ,CACjE,MAAMkH,EAAOjH,+BACbA,2BAAsB,EAAG,MAAO,GAAhCA,CAAoC,EAAG,OAAQ,IAC/CA,uBAAkB,QAAS,WAAwEA,0BAAqBiH,GAAO,MAAMC,EAAUlH,4BAAwB,OAAOA,wBAAmBkH,EAAQC,gBAAe,GAAM,GAC9NnH,2BACAA,2BAAsB,EAAG,OAAQ,IACjCA,uBAAkB,QAAS,WAAwEA,0BAAqBiH,GAAO,MAAMG,EAAUpH,4BAAwB,OAAOA,wBAAmBoH,EAAQD,eAAe,GAAK,GAC7NnH,4BAAqB,CACvB,CACF,SAASqH,GAAwDtH,EAAIr5P,GAAO,GAAS,EAALq5P,EAAQ,CACpF,MAAMuH,EAAOtH,+BACbA,2BAAsB,EAAG,OAAQ,IACjCA,uBAAkB,QAAS,SAAuFzP,GAAUyP,0BAAqBsH,GAAO,MAAMC,EAAYvH,4BAAuBwH,UAAiBC,EAAUzH,0BAAqB,GAAI,OAAOA,wBAAmByH,EAAQC,oBAAoBnX,EAAQgX,GAAa,GAChUvH,0BAAmB,CACrB,GAAS,EAALD,EAAQ,CACV,MAAM4H,EAAU3H,0BAAqB,GACrCA,uBAAkB2H,EAAQC,yBAAwB,CACpD,CACF,SAASC,GAAiD9H,EAAIr5P,GAAO,GAAS,EAALq5P,EAAQ,CAC7E,MAAM+H,EAAO9H,+BACbA,2BAAsB,EAAG,MAAO,IAChCA,uBAAkB,QAAS,WAAmI,MAAMuH,EAAlCvH,0BAAqB8H,GAAqCN,UAAiBO,EAAU/H,0BAAqB,GAAI,OAAOA,wBAAmB+H,EAAQC,mBAAmBT,GAAa,GAClTvH,uBAAkB,EAAGqH,GAAyD,EAAG,EAAG,OAAQ,IAC5FrH,0BAAmB,CACrB,GAAS,EAALD,EAAQ,CACV,MAAMwH,EAAY7gQ,EAAI8gQ,UAChBS,EAAUjI,0BAAqB,GACrCA,wBAAmB,mBAAoBuH,GACvCvH,sBAAiB,GACjBA,uBAAkB,OAAQiI,EAAQC,iBAAgB,CACpD,CACF,SAASC,GAA2CpI,EAAIr5P,GAItD,GAJsE,EAALq5P,IAC/DC,2BAAsB,EAAG,OACzBA,uBAAkB,EAAG6H,GAAkD,EAAG,EAAG,MAAO,IACpF7H,4BACO,EAALD,EAAQ,CACV,MAAMqI,EAAUpI,0BAAqB,GACrCA,uBAAkBoI,EAAQC,qBAC1BrI,sBAAiB,GACjBA,uBAAkB,UAAWoI,EAAQjH,eAAc,CACrD,CACF,SAASmH,GAA2CvI,EAAIr5P,GAItD,GAJsE,EAALq5P,IAC/DC,2BAAsB,EAAG,OACzBA,mBAAc,GACdA,4BACO,EAALD,EAAQ,CACV,MAAMwI,EAAUvI,0BAAqB,GACrCA,uBAAkBuI,EAAQC,2BAC1BxI,sBAAiB,GACjBA,8BAAyBuI,EAAQE,qBAAoB,CACvD,CACF,SAASC,GAAqC3I,EAAIr5P,GAShD,GATgE,EAALq5P,IACzDC,2BAAsB,EAAG,MAAO,IAChCA,sBAAiB,EAAG,MACpBA,2BAAsB,EAAG,MAAO,IAChCA,mBAAc,GACdA,2BACAA,uBAAkB,EAAGmI,GAA4C,EAAG,EAAG,MAAO,IAC9EnI,uBAAkB,EAAGsI,GAA4C,EAAG,EAAG,MAAO,IAC9EtI,4BACO,EAALD,EAAQ,CACV,MAAM4I,EAAU3I,4BAChBA,sBAAiB,GACjBA,8BAAyB2I,EAAQC,eACjC5I,sBAAiB,GACjBA,uBAAkB,OAAkC,MAA1B2I,EAAQxH,eAAyB,KAAOwH,EAAQxH,eAAehsQ,QACzF6qQ,sBAAiB,GACjBA,uBAAkB,SAAoC,MAA1B2I,EAAQxH,gBAAgCwH,EAAQxH,eAAehsQ,SAAWwzQ,EAAQT,iBAAgB,CAChI,CACF,SAASW,GAA8C9I,EAAIr5P,GAAO,GAAS,EAALq5P,EAAQ,CAC1E,MAAM+I,EAAO9I,+BACbA,2BAAsB,EAAG,SAAU,IACnCA,uBAAkB,QAAS,SAA+EzP,GAAUyP,0BAAqB8I,GAAO,MAAMC,EAAU/I,0BAAqB,GAAI,OAAOA,wBAAmB+I,EAAQC,cAAczY,GAAU,GACnPyP,mBAAc,GACdA,0BAAmB,CACrB,GAAS,EAALD,EAAQ,CACV,MAAMkJ,EAAUjJ,0BAAqB,GACrCA,uBAAkBiJ,EAAQC,qBAC1BlJ,sBAAiB,GACjBA,8BAAyBiJ,EAAQE,mBAAkB,CACrD,CACF,SAASC,GAA8CrJ,EAAIr5P,GAAO,GAAS,EAALq5P,EAAQ,CAC1E,MAAMsJ,EAAOrJ,+BACbA,2BAAsB,EAAG,SAAU,IACnCA,uBAAkB,QAAS,SAA+EzP,GAAUyP,0BAAqBqJ,GAAO,MAAMC,EAAUtJ,0BAAqB,GAAI,OAAOA,wBAAmBsJ,EAAQ5H,cAAcnR,GAAU,GACnPyP,mBAAc,GACdA,0BAAmB,CACrB,GAAS,EAALD,EAAQ,CACV,MAAMwJ,EAAUvJ,0BAAqB,GACrCA,uBAAkBuJ,EAAQC,iBAC1BxJ,sBAAiB,GACjBA,8BAAyBuJ,EAAQE,eAAc,CACjD,CACF,SAASC,GAAqC3J,EAAIr5P,GAKhD,GALgE,EAALq5P,IACzDC,2BAAsB,EAAG,MAAO,IAChCA,uBAAkB,EAAG6I,GAA+C,EAAG,EAAG,SAAU,IACpF7I,uBAAkB,EAAGoJ,GAA+C,EAAG,EAAG,SAAU,IACpFpJ,4BACO,EAALD,EAAQ,CACV,MAAM4J,EAAU3J,4BAChBA,sBAAiB,GACjBA,uBAAkB,OAAQ2J,EAAQC,gBAClC5J,sBAAiB,GACjBA,uBAAkB,OAAQ2J,EAAQE,WAAU,CAC9C,CACF,IAAIC,GAAY,aACLA,EAKRA,KAAiBA,GAAe,CAAC,IAJnBA,EAAaC,IAAS,GAAK,MACxCD,EAAaA,EAAaE,KAAU,GAAK,OACzCF,EAAaA,EAAaG,KAAU,GAAK,OACzCH,EAAaA,EAAaI,KAAU,GAAK,OALzCJ,GACH,IAAUA,CADPA,EAAY,GAOhB,MAAMK,GACF55Q,YAAY+V,EAAG2oB,EAAGtN,EAAGD,GACjBhxB,KAAK4V,EAAIA,EACT5V,KAAKu+B,EAAIA,EACTv+B,KAAKixB,EAAIA,EACTjxB,KAAKgxB,EAAIA,CACb,EAEJ,MAAM0oP,GACF75Q,YAAYujL,EAAGz5K,EAAG4R,EAAGyV,GACjBhxB,KAAKojL,EAAIA,EACTpjL,KAAK2J,EAAIA,EACT3J,KAAKub,EAAIA,EACTvb,KAAKgxB,EAAIA,CACb,EAEJ,MAAM2oP,GACF95Q,YAAYujL,EAAGz5K,EAAGymG,EAAGp/E,GACjBhxB,KAAKojL,EAAIA,EACTpjL,KAAK2J,EAAIA,EACT3J,KAAKowG,EAAIA,EACTpwG,KAAKgxB,EAAIA,CACb,EAEJ,MAAM4oP,GACF/5Q,YAAYy3B,EAAGwI,EAAGo1D,EAAGn8D,EAAG/H,EAAI,GACxBhxB,KAAKs3B,EAAIA,EACTt3B,KAAK8/B,EAAIA,EACT9/B,KAAKk1F,EAAIA,EACTl1F,KAAK+4B,EAAIA,EACT/4B,KAAKgxB,EAAIA,CACb,EAmEH,IACK6oP,GAAa,MAAnB,MAAMA,EACFh6Q,cACIG,KAAK85Q,SAAW,IAAI/xO,cACxB,CACAgyO,YAAYhwQ,GACR,MAAMmC,EAAQnC,EAAMhI,OAAOmK,MAC3B,QAAgB+B,IAAZjO,KAAKg6Q,GACLh6Q,KAAK85Q,SAASpwO,KAAKx9B,OAElB,CACD,MAAM+tQ,EAAU/6M,WAAWhzD,GAC3BlM,KAAK85Q,SAASpwO,KAAK,CAAEnuB,EAAG0+P,EAASD,GAAIh6Q,KAAKg6Q,IAAI,CAEtD,EAEJH,SAAc50Q,UAAO,SAA+BwW,GAAK,OAAO,IAAKA,GAAKo+P,EAAkB,EAC5FA,EAAcvvO,UAAqBglO,8BAAyB,CAAE3kQ,KAAMkvQ,EAAetvO,UAAW,CAAC,CAAC,GAAI,OAAQ,KAAM2vO,aAAc,SAAoC7K,EAAIr5P,GAAgB,EAALq5P,GAC3KC,uBAAkB,QAAS,SAAgDzP,GAAU,OAAO7pP,EAAI+jQ,YAAYla,EAAS,EACvH,EAAGt1D,OAAQ,CAAEyvE,GAAI,KAAMt2P,KAAM,QAAUy2P,QAAS,CAAEL,SAAU,cAlB5DD,CAAa,KAwCbO,GAAe,MAArB,MAAMA,EACFv6Q,YAAYw6Q,GACRr6Q,KAAKq6Q,MAAQA,EACbr6Q,KAAKs6Q,QAAU,IAAIvyO,eACnB/nC,KAAKu6Q,UAAY,IAAIxyO,eACrB/nC,KAAK85Q,SAAW,IAAI/xO,eACpB/nC,KAAKw6Q,aAAgBzwQ,GAAU/J,KAAKm9K,KAAKpzK,GACzC/J,KAAKy6Q,aAAe,IAAMz6Q,KAAKq1K,MACnC,CACAqlG,UAAU3wQ,GACN/J,KAAKqjF,MAAMt5E,EACf,CACA4wQ,WAAW5wQ,GACP/J,KAAKqjF,MAAMt5E,EACf,CACAozK,KAAKpzK,GACDA,EAAMC,iBACNhK,KAAK46Q,UAAU7wQ,EACnB,CACAs5E,MAAMt5E,GACF/J,KAAK46Q,UAAU7wQ,GACfA,EAAM+0L,kBACNz9L,SAASZ,iBAAiB,UAAWT,KAAKy6Q,cAC1Cp5Q,SAASZ,iBAAiB,WAAYT,KAAKy6Q,cAC3Cp5Q,SAASZ,iBAAiB,YAAaT,KAAKw6Q,cAC5Cn5Q,SAASZ,iBAAiB,YAAaT,KAAKw6Q,cAC5Cx6Q,KAAKu6Q,UAAU7wO,MACnB,CACA2rI,OACIh0K,SAASX,oBAAoB,UAAWV,KAAKy6Q,cAC7Cp5Q,SAASX,oBAAoB,WAAYV,KAAKy6Q,cAC9Cp5Q,SAASX,oBAAoB,YAAaV,KAAKw6Q,cAC/Cn5Q,SAASX,oBAAoB,YAAaV,KAAKw6Q,cAC/Cx6Q,KAAKs6Q,QAAQ5wO,MACjB,CACAmxO,KAAK9wQ,GACD,MAAMu4B,EAAWtiC,KAAKq6Q,MAAMr3N,cAAc6/G,wBAE1C,YAD+B50J,IAAhBlE,EAAM+wQ,MAAuB/wQ,EAAM+wQ,MAAQ/wQ,EAAM+sN,QAAQ,GAAGgkD,OAC5Dx4O,EAAS2tE,KAAOjuG,OAAO+4Q,WAC1C,CACAC,KAAKjxQ,GACD,MAAMu4B,EAAWtiC,KAAKq6Q,MAAMr3N,cAAc6/G,wBAE1C,YAD+B50J,IAAhBlE,EAAMkxQ,MAAuBlxQ,EAAMkxQ,MAAQlxQ,EAAM+sN,QAAQ,GAAGmkD,OAC5D34O,EAASi9G,IAAMv9I,OAAOk5Q,WACzC,CACAN,UAAU7wQ,GACN,MAAM0uD,EAAQz4D,KAAKq6Q,MAAMr3N,cAAc42G,YACjC7wE,EAAS/oF,KAAKq6Q,MAAMr3N,cAAc82G,aAClCzlI,EAAInJ,KAAKC,IAAI,EAAGD,KAAK4lC,IAAI9wD,KAAK66Q,KAAK9wQ,GAAQ0uD,IAC3Cy8B,EAAIhqE,KAAKC,IAAI,EAAGD,KAAK4lC,IAAI9wD,KAAKg7Q,KAAKjxQ,GAAQg/E,SAChC96E,IAAbjO,KAAKm7Q,UAAkCltQ,IAAbjO,KAAKo7Q,IAC/Bp7Q,KAAK85Q,SAASpwO,KAAK,CAAE//B,EAAG0qB,EAAIokC,EAAOl9C,EAAI,EAAI25E,EAAInM,EAASoyL,IAAKn7Q,KAAKm7Q,IAAKC,IAAKp7Q,KAAKo7Q,WAE/DntQ,IAAbjO,KAAKm7Q,UAAkCltQ,IAAbjO,KAAKo7Q,IACpCp7Q,KAAK85Q,SAASpwO,KAAK,CAAEnuB,EAAG25E,EAAInM,EAAQqyL,IAAKp7Q,KAAKo7Q,WAE5BntQ,IAAbjO,KAAKm7Q,UAAkCltQ,IAAbjO,KAAKo7Q,KACpCp7Q,KAAK85Q,SAASpwO,KAAK,CAAEnuB,EAAG8Y,EAAIokC,EAAO0iN,IAAKn7Q,KAAKm7Q,KAErD,EAEJf,SAAgBn1Q,UAAO,SAAiCwW,GAAK,OAAO,IAAKA,GAAK2+P,GAAiB9K,8BAAyBA,cAAqB,EAC7I8K,EAAgB9vO,UAAqBglO,8BAAyB,CAAE3kQ,KAAMyvQ,EAAiB7vO,UAAW,CAAC,CAAC,GAAI,SAAU,KAAM2vO,aAAc,SAAsC7K,EAAIr5P,GAAgB,EAALq5P,GACnLC,uBAAkB,YAAa,SAAsDzP,GAAU,OAAO7pP,EAAI0kQ,UAAU7a,EAAS,EAA7HyP,CAAgI,aAAc,SAAuDzP,GAAU,OAAO7pP,EAAI2kQ,WAAW9a,EAAS,EAChP,EAAGt1D,OAAQ,CAAE4wE,IAAK,MAAOC,IAAK,MAAOlL,OAAQ,UAAYiK,QAAS,CAAEG,QAAS,UAAWC,UAAW,YAAaT,SAAU,cAhE1HM,CAAe,KAsGrB,MAAMiB,GACFx7Q,YAAYujL,EAAGz5K,EAAG4R,EAAGyV,GACjBhxB,KAAKojL,EAAIA,EACTpjL,KAAK2J,EAAIA,EACT3J,KAAKub,EAAIA,EACTvb,KAAKgxB,EAAIA,CACb,EAEJ,MAAMsqP,GACFz7Q,YAAYujL,EAAGz5K,EAAG4R,EAAGyV,GACjBhxB,KAAKojL,EAAIA,EACTpjL,KAAK2J,EAAIA,EACT3J,KAAKub,EAAIA,EACTvb,KAAKgxB,EAAIA,CACb,EACH,IAEKuqP,GAAkB,MAAxB,MAAMA,EACF17Q,cACIG,KAAKmpB,OAAS,IAClB,CACAsxI,UAAUtxI,GACFnpB,KAAKmpB,QAAUnpB,KAAKmpB,SAAWA,GAA0C,WAAhCnpB,KAAKmpB,OAAOqyP,iBACrDx7Q,KAAKmpB,OAAOsyP,cAEhBz7Q,KAAKmpB,OAASA,CAClB,CACAuyP,UAAUC,GACN,MAAMv4F,EAAIu4F,EAAKv4F,EAAGz5K,EAAIgyQ,EAAKhyQ,EAAG4R,EAAIogQ,EAAKpgQ,EAAGyV,EAAI2qP,EAAK3qP,EACnD,GAAU,IAANzV,EACA,OAAO,IAAIo+P,GAAKv2F,EAAG,EAAG,EAAGpyJ,GAExB,GAAU,IAANrnB,GAAiB,IAAN4R,EAChB,OAAO,IAAIo+P,GAAKv2F,EAAG,EAAG,EAAGpyJ,GAExB,CACD,MAAMo/E,EAAI70F,GAAK,EAAI5R,GAAK,EACxB,OAAO,IAAIgwQ,GAAKv2F,EAAG7nK,EAAI5R,GAAK,EAAIuhB,KAAK0B,IAAI,EAAIwjF,EAAI,IAAKA,EAAGp/E,EAAC,CAElE,CACA4qP,UAAUC,GACN,MAAMz4F,EAAIl4J,KAAK4lC,IAAI+qN,EAAKz4F,EAAG,GAAIz5K,EAAIuhB,KAAK4lC,IAAI+qN,EAAKlyQ,EAAG,GAC9CymG,EAAIllF,KAAK4lC,IAAI+qN,EAAKzrK,EAAG,GAAIp/E,EAAI9F,KAAK4lC,IAAI+qN,EAAK7qP,EAAG,GACpD,GAAU,IAANo/E,EACA,OAAO,IAAIspK,GAAKt2F,EAAG,EAAG,EAAGpyJ,GAExB,CACD,MAAMzV,EAAI60F,EAAIzmG,GAAK,EAAIuhB,KAAK0B,IAAI,EAAIwjF,EAAI,IAAM,EAC9C,OAAO,IAAIspK,GAAKt2F,EAAG,GAAK7nK,EAAI60F,GAAK70F,EAAGA,EAAGyV,EAAC,CAEhD,CACA8qP,WAAWH,GACP,IAAI/lQ,EAAG2oB,EAAGtN,EACV,MAAMmyJ,EAAIu4F,EAAKv4F,EAAGz5K,EAAIgyQ,EAAKhyQ,EAAG4R,EAAIogQ,EAAKpgQ,EAAGyV,EAAI2qP,EAAK3qP,EAC7CxsB,EAAI0mB,KAAKosF,MAAU,EAAJ8rE,GACfhiI,EAAQ,EAAJgiI,EAAQ5+K,EACZi1B,EAAIle,GAAK,EAAI5R,GACb03C,GAAI9lC,GAAK,EAAI6lC,EAAIz3C,GACjB8R,GAAIF,GAAK,GAAK,EAAI6lC,GAAKz3C,GAC7B,OAAQnF,EAAI,GACR,KAAK,EACDoR,EAAI2F,EAAGgjB,EAAI9iB,GAAGwV,EAAIwI,EAClB,MACJ,KAAK,EACD7jB,EAAIyrC,GAAG9iB,EAAIhjB,EAAG0V,EAAIwI,EAClB,MACJ,KAAK,EACD7jB,EAAI6jB,EAAG8E,EAAIhjB,EAAG0V,EAAIxV,GAClB,MACJ,KAAK,EACD7F,EAAI6jB,EAAG8E,EAAI8iB,GAAGpwB,EAAI1V,EAClB,MACJ,KAAK,EACD3F,EAAI6F,GAAG8iB,EAAI9E,EAAGxI,EAAI1V,EAClB,MACJ,KAAK,EACD3F,EAAI2F,EAAGgjB,EAAI9E,EAAGxI,EAAIowB,GAClB,MACJ,QACIzrC,EAAI,EAAG2oB,EAAI,EAAGtN,EAAI,EAE1B,OAAO,IAAIwoP,GAAK7jQ,EAAG2oB,EAAGtN,EAAGD,EAC7B,CACA+qP,UAAUC,GAIN,OAAO,IAAIvC,IAHA,EAAIuC,EAAK1kP,IAAM,EAAI0kP,EAAKjjP,IACxB,EAAIijP,EAAKl8O,IAAM,EAAIk8O,EAAKjjP,IACxB,EAAIijP,EAAK9mL,IAAM,EAAI8mL,EAAKjjP,GACVijP,EAAKhrP,EAClC,CACAirP,WAAWC,GACP,MAAMnjP,EAAI,EAAI7N,KAAKC,IAAI+wP,EAAKtmQ,EAAGsmQ,EAAK39O,EAAG29O,EAAKjrP,GAC5C,OAAU,IAAN8H,EACO,IAAI6gP,GAAK,EAAG,EAAG,EAAG,EAAGsC,EAAKlrP,GAM1B,IAAI4oP,IAHA,EAAIsC,EAAKtmQ,EAAImjB,IAAM,EAAIA,IACvB,EAAImjP,EAAK39O,EAAIxF,IAAM,EAAIA,IACvB,EAAImjP,EAAKjrP,EAAI8H,IAAM,EAAIA,GACTA,EAAGmjP,EAAKlrP,EAEzC,CACAmrP,WAAWD,GACP,IAAI94F,EAAGz5K,EACP,MAAMiM,EAAIsV,KAAK4lC,IAAIorN,EAAKtmQ,EAAG,GAAI2oB,EAAIrT,KAAK4lC,IAAIorN,EAAK39O,EAAG,GAC9CtN,EAAI/F,KAAK4lC,IAAIorN,EAAKjrP,EAAG,GAAID,EAAI9F,KAAK4lC,IAAIorN,EAAKlrP,EAAG,GAC9C7F,EAAMD,KAAKC,IAAIvV,EAAG2oB,EAAGtN,GAAI6/B,EAAM5lC,KAAK4lC,IAAIl7C,EAAG2oB,EAAGtN,GAC9C1V,EAAI4P,EAAKoZ,EAAIpZ,EAAM2lC,EAEzB,GADAnnD,EAAa,IAARwhB,EAAa,EAAIoZ,EAAIpZ,EACtBA,IAAQ2lC,EACRsyH,EAAI,MAEH,CACD,OAAQj4J,GACJ,KAAKvV,EACDwtK,GAAK7kJ,EAAItN,GAAKsT,GAAKhG,EAAItN,EAAI,EAAI,GAC/B,MACJ,KAAKsN,EACD6kJ,GAAKnyJ,EAAIrb,GAAK2uB,EAAI,EAClB,MACJ,KAAKtT,EACDmyJ,GAAKxtK,EAAI2oB,GAAKgG,EAAI,EAClB,MACJ,QACI6+I,EAAI,EAEZA,GAAK,EAET,OAAO,IAAIs2F,GAAKt2F,EAAGz5K,EAAG4R,EAAGyV,EAC7B,CACAorP,UAAUF,EAAMG,GAEZ,IAAIC,EAAM,KAAQ,SAAYJ,EAAKtmQ,GAAK,GAAOsmQ,EAAK39O,GAAK,EAAK29O,EAAKjrP,GAAG3a,SAAS,IAAI41M,OAAO,GAC1F,OAAImwD,IACAC,IAAS,IAAUpxP,KAAKqlD,MAAe,IAAT2rM,EAAKlrP,IAAU1a,SAAS,IAAI41M,OAAO,IAG9DowD,CACX,CACAC,cAAcP,GACV,OAAO,IAAIpC,GAAKoC,EAAK1kP,EAAI,IAAK0kP,EAAKl8O,EAAI,IAAKk8O,EAAK9mL,EAAI,IAAK8mL,EAAKjjP,EAAI,IAAKijP,EAAKhrP,EACjF,CACAwrP,gBAAgBR,GACZ,OAAO,IAAIpC,GAAK1uP,KAAKosF,MAAe,IAAT0kK,EAAK1kP,GAAUpM,KAAKosF,MAAe,IAAT0kK,EAAKl8O,GAAU5U,KAAKosF,MAAe,IAAT0kK,EAAK9mL,GAAUhqE,KAAKosF,MAAe,IAAT0kK,EAAKjjP,GAAUijP,EAAKhrP,EACjI,CACAyrP,gBAAgBP,GACZ,OAAO,IAAIzC,GAAKvuP,KAAKqlD,MAAe,IAAT2rM,EAAKtmQ,GAAUsV,KAAKqlD,MAAe,IAAT2rM,EAAK39O,GAAUrT,KAAKqlD,MAAe,IAAT2rM,EAAKjrP,GAAUirP,EAAKlrP,EACvG,CACA0rP,aAAaC,EAAc,GAAIN,GAAY,GACvC,IAAIV,EAAO,KACXgB,GAAeA,GAAe,IAAI/rQ,cAClC,MAAMgsQ,EAAgB,CAClB,CACI9rF,GAAI,4FACJrtK,MAAO,SAAUo5P,GACb,OAAO,IAAIpD,GAAK55H,SAASg9H,EAAW,GAAI,IAAM,IAAKh9H,SAASg9H,EAAW,GAAI,IAAM,IAAKh9H,SAASg9H,EAAW,GAAI,IAAM,IAAKlwP,MAAMuyC,WAAW29M,EAAW,KAAO,EAAI39M,WAAW29M,EAAW,IAC1L,GACD,CACC/rF,GAAI,0FACJrtK,MAAO,SAAUo5P,GACb,OAAO,IAAIlD,GAAK95H,SAASg9H,EAAW,GAAI,IAAM,IAAKh9H,SAASg9H,EAAW,GAAI,IAAM,IAAKh9H,SAASg9H,EAAW,GAAI,IAAM,IAAKlwP,MAAMuyC,WAAW29M,EAAW,KAAO,EAAI39M,WAAW29M,EAAW,IAC1L,IAIJD,EAAch0Q,KADdyzQ,EACmB,CACfvrF,GAAI,sEACJrtK,MAAO,SAAUo5P,GACb,OAAO,IAAIpD,GAAK55H,SAASg9H,EAAW,GAAI,IAAM,IAAKh9H,SAASg9H,EAAW,GAAI,IAAM,IAAKh9H,SAASg9H,EAAW,GAAI,IAAM,IAAKh9H,SAASg9H,EAAW,IAAM,KAAM,IAAM,IACnK,GAIe,CACf/rF,GAAI,qDACJrtK,MAAO,SAAUo5P,GACb,OAAO,IAAIpD,GAAK55H,SAASg9H,EAAW,GAAI,IAAM,IAAKh9H,SAASg9H,EAAW,GAAI,IAAM,IAAKh9H,SAASg9H,EAAW,GAAI,IAAM,IAAK,EAC7H,IAGRD,EAAch0Q,KAAK,CACfkoL,GAAI,4CACJrtK,MAAO,SAAUo5P,GACb,OAAO,IAAIpD,GAAK55H,SAASg9H,EAAW,GAAKA,EAAW,GAAI,IAAM,IAAKh9H,SAASg9H,EAAW,GAAKA,EAAW,GAAI,IAAM,IAAKh9H,SAASg9H,EAAW,GAAKA,EAAW,GAAI,IAAM,IAAK,EAC7K,IAEJ,UAAW/rQ,KAAO8rQ,EACd,GAAIA,EAAc/nP,eAAe/jB,GAAM,CACnC,MAAMsgM,EAASwrE,EAAc9rQ,GACvBoqB,EAAQk2K,EAAOtgB,GAAG/vH,KAAK47M,GAAcvlK,EAAQl8E,GAASk2K,EAAO3tL,MAAMyX,GACzE,GAAIk8E,EACA,OAAIA,aAAiBqiK,GACjBkC,EAAO37Q,KAAKm8Q,WAAW/kK,GAElBA,aAAiBuiK,KACtBgC,EAAO37Q,KAAK47Q,UAAUxkK,IAEnBukK,EAInB,OAAOA,CACX,CACAmB,aAAanB,EAAMmB,EAAcC,GAI7B,OAHqB,SAAjBD,IACAA,EAAenB,EAAK3qP,EAAI,EAAI,OAAS,OAEjC8rP,GACJ,IAAK,OACD,MAAMjB,EAAO77Q,KAAK07Q,UAAUC,GACtBhJ,EAAW,IAAIgH,GAAKzuP,KAAKqlD,MAAiB,IAAVsrM,EAAKz4F,GAAWl4J,KAAKqlD,MAAe,IAATsrM,EAAKlyQ,GAAUuhB,KAAKqlD,MAAe,IAATsrM,EAAKzrK,GAAUllF,KAAKqlD,MAAe,IAATsrM,EAAK7qP,GAAW,KACrI,OAAI2qP,EAAK3qP,EAAI,GAAsB,WAAjB+rP,EACP,QAAUpK,EAASvvF,EAAI,IAAMuvF,EAAShpQ,EAAI,KAAOgpQ,EAASviK,EAAI,KACjEuiK,EAAS3hP,EAAI,IAGV,OAAS2hP,EAASvvF,EAAI,IAAMuvF,EAAShpQ,EAAI,KAAOgpQ,EAASviK,EAAI,KAE5E,IAAK,OACD,MAAM8rK,EAAOl8Q,KAAKy8Q,gBAAgBz8Q,KAAK87Q,WAAWH,IAClD,OAAIA,EAAK3qP,EAAI,GAAsB,WAAjB+rP,EACP,QAAUb,EAAKtmQ,EAAI,IAAMsmQ,EAAK39O,EAAI,IAAM29O,EAAKjrP,EAAI,IACpD/F,KAAKqlD,MAAe,IAAT2rM,EAAKlrP,GAAW,IAAM,IAG9B,OAASkrP,EAAKtmQ,EAAI,IAAMsmQ,EAAK39O,EAAI,IAAM29O,EAAKjrP,EAAI,IAE/D,QACI,MAAMorP,EAA8B,WAAjBU,GAA8C,WAAjBA,EAChD,OAAO/8Q,KAAKo8Q,UAAUp8Q,KAAKy8Q,gBAAgBz8Q,KAAK87Q,WAAWH,IAAQU,GAE/E,EAEJd,SAAmBt2Q,UAAO,SAAoCwW,GAAK,OAAO,IAAKA,GAAK8/P,EAAuB,EAC3GA,EAAmBr2Q,WAAsBoqQ,+BAA0B,CAAEryP,MAAOs+P,EAAoBn2Q,QAASm2Q,EAAmBt2Q,YAxNtHs2Q,CAAkB,KA8NlByB,GAAoB,MAA1B,MAAMA,EACFn9Q,YAAYw6Q,EAAO4C,EAAOjyI,GACtBhrI,KAAKq6Q,MAAQA,EACbr6Q,KAAKi9Q,MAAQA,EACbj9Q,KAAKgrI,QAAUA,EACfhrI,KAAKk9Q,QAAS,EACdl9Q,KAAKm9Q,gBAAkB,GACvBn9Q,KAAKo9Q,kBAAoB,GACzBp9Q,KAAKq9Q,kBAAoB,CACrBjE,GAAaC,IACbD,GAAaE,KACbF,GAAaG,KACbH,GAAaI,MAEjBx5Q,KAAKs9Q,sBAAuB,CAChC,CACAC,UAAUxzQ,GACF/J,KAAKm2D,MAAiC,UAAzBn2D,KAAKw7Q,iBAClBx7Q,KAAKs4Q,cAAcvuQ,EAE3B,CACAyzQ,YAAYzzQ,GACJ/J,KAAKm2D,MAAiC,UAAzBn2D,KAAKw7Q,iBAClBx7Q,KAAKgxQ,cAAcjnQ,EAE3B,CACAk/B,WACIjpC,KAAKkwQ,OAAS,IAAImL,GAAe,EAAG,EAAG,EAAG,GAG1Cr7Q,KAAKy9Q,aAAe,IAAInC,GAFPt7Q,KAAK09Q,UAAU16N,cAAc42G,aAAe,IAEX55J,KAAK29Q,QAAS,IAD7C39Q,KAAK49Q,YAAY56N,cAAc42G,aAAe,KAG7D55J,KAAKmuF,OADLnuF,KAAK69Q,cACSzE,GAAaI,KAEE,SAAxBx5Q,KAAK89Q,eACI1E,GAAaE,KAEE,SAAxBt5Q,KAAK89Q,eACI1E,GAAaG,KAGbH,GAAaC,IAE/Br5Q,KAAK+9Q,kBAAqBh0Q,IAAY/J,KAAKg+Q,YAAYj0Q,EAAK,EAC5D/J,KAAKi+Q,eAAiB,KAAQj+Q,KAAK20L,UAAQ,EAC3C30L,KAAKk+Q,WAAWl+Q,KAAKm+Q,cAAc,EACvC,CACAz2Q,cACI1H,KAAKy7Q,aACT,CACApvN,kBACyB,MAAjBrsD,KAAK29Q,SAA4C,WAAzB39Q,KAAKw7Q,kBAG7Bx7Q,KAAKy9Q,aAAe,IAAInC,GAFPt7Q,KAAK09Q,UAAU16N,cAAc42G,aAAe,IAEX55J,KAAK29Q,QAAS,IAD7C39Q,KAAK49Q,YAAY56N,cAAc42G,aAAe,KAEjE55J,KAAKo+Q,mBAAkB,GACvBp+Q,KAAKi9Q,MAAM7wN,gBAEnB,CACA8xN,WAAW9mK,EAAO1tE,GAAO,GACrB1pC,KAAKgrI,QAAQyvB,UAAUz6J,MAClBA,KAAKy4D,QACNz4D,KAAK29Q,QAAU39Q,KAAKq+Q,oBAAoBr7N,cAAc42G,aAErD55J,KAAK+oF,SACN/oF,KAAK+oF,OAAS,KAElB/oF,KAAKs+Q,gBAAgBlnK,GACrBp3G,KAAKs3Q,mBAAmBlgK,EAAO1tE,GAC/B1pC,KAAKu+Q,iBACT,CACA9C,cACIz7Q,KAAKw+Q,kBACT,CACAC,YAAYp1O,EAAUq1O,EAAYtnK,EAAOumK,EAASgB,EAAUnD,EAAiBoD,EAAiBC,EAAahB,EAAexL,EAAgByL,EAAgBgB,GAAgBC,GAAmBC,GAAoBC,GAAqBC,GAAwBC,GAAYC,GAAkBC,GAA2BnH,GAAezH,GAAgBkH,GAAqBjH,GAAyBqH,GAAsBD,GAA2BqB,GAAYL,GAAiBC,GAAgBG,GAAgBV,GAAqBC,GAAoBjB,GAAkBhH,GAAuBG,GAAsBuG,GAA0BoI,IAChnBt/Q,KAAKs+Q,gBAAgBlnK,GACrBp3G,KAAKu/Q,aAAaV,GAClB7+Q,KAAKk9Q,OAAyB,KAvdtC,SAASsC,KACL,IAAI50K,EAAK,UACE3nG,UAAc,MACrB2nG,EAAK3nG,UAAUC,UAAU0N,eAE7B,MAAM6uQ,EAAO70K,EAAG15F,QAAQ,SACxB,OAAIuuQ,EAAO,GAEA5/H,SAASj1C,EAAGn1E,UAAUgqP,EAAO,EAAG70K,EAAG15F,QAAQ,IAAKuuQ,IAAQ,GAIvE,CA2cuBD,GACfx/Q,KAAK0/Q,kBAAoBr2O,EACzBrpC,KAAKq+Q,oBAAsBK,EAC3B1+Q,KAAK8+Q,eAAiBA,GACtB9+Q,KAAK69Q,cAAgBA,EACrB79Q,KAAKqyQ,eAAiBA,EACtBryQ,KAAK89Q,eAAiBA,EACtB99Q,KAAKw7Q,gBAAkBA,EACvBx7Q,KAAK++Q,kBAAoBA,GACzB/+Q,KAAKg/Q,mBAAqBA,GAC1Bh/Q,KAAKi/Q,oBAAsBA,GAC3Bj/Q,KAAKs9Q,qBAAuB4B,GAC5Bl/Q,KAAKy4D,MAAQz4D,KAAK29Q,QAAU99H,SAAS89H,EAAS,IAC9C39Q,KAAK+oF,OAAS/oF,KAAK2+Q,SAAW9+H,SAAS8+H,EAAU,IACjD3+Q,KAAKm/Q,WAAaA,GAClBn/Q,KAAKo/Q,iBAAmBv/H,SAASu/H,GAAkB,IACnDp/Q,KAAKm5Q,WAAaA,GAClBn5Q,KAAK+4Q,eAAiBA,GACtB/4Q,KAAK84Q,gBAAkBA,GACvB94Q,KAAKk5Q,eAAiBA,GACtBl5Q,KAAKy4Q,mBAAqBA,GAC1Bz4Q,KAAKw4Q,oBAAsBA,GAC3Bx4Q,KAAK2/Q,cAAgBf,GAAmB,OACxC5+Q,KAAK4/Q,gBAAgB1H,GAAezH,IACpCzwQ,KAAK23Q,oBAAsBA,GAC3B33Q,KAAK0wQ,wBAA0BA,GAC/B1wQ,KAAK+3Q,qBAAuBA,GAC5B/3Q,KAAK83Q,0BAA4BA,GACjC93Q,KAAKw3Q,iBAAmBA,GACxBx3Q,KAAK2wQ,qBAAuBA,GAC5B3wQ,KAAKwwQ,sBAAwBA,GAC7BxwQ,KAAKk3Q,yBAA2BA,GAChCl3Q,KAAKs/Q,iBAAmBA,GACnBD,KACDr/Q,KAAKo9Q,kBAAoB,GAEL,WAApB5B,IACAx7Q,KAAKm9Q,gBAAkB,EACvBn9Q,KAAKo9Q,kBAAoB,GAEN,QAAnBU,GACmB,WAAnBzL,GAAkD,WAAnBA,IAC/BryQ,KAAKqyQ,eAAiB,WAE9B,CACAkN,aAAajxQ,GACT,OAAQA,EAAKgI,WAAW0H,eACpB,IAAK,IACL,IAAK,IACL,IAAK,QAaL,QACIhe,KAAK6+Q,YAAc,QAXvB,IAAK,IACL,IAAK,IACL,IAAK,YACD7+Q,KAAK6+Q,YAAc,EACnB,MACJ,IAAK,IACL,IAAK,IACL,IAAK,UACD7+Q,KAAK6+Q,YAAc,EAK/B,CACAP,gBAAgBlnK,GACZp3G,KAAKm+Q,aAAe/mK,CACxB,CACAwoK,gBAAgB1H,EAAezH,GAC3BzwQ,KAAKk4Q,cAAgBA,EACrBl4Q,KAAKywQ,eAAiBA,CAC1B,CACA6G,mBAAmBprQ,EAAOw9B,GAAO,EAAMpvB,GAAS,GAC5C,IAAIqhQ,EACwB,WAAxB37Q,KAAKqyQ,gBAAuD,WAAxBryQ,KAAKqyQ,gBACzCsJ,EAAO37Q,KAAKgrI,QAAQ0xI,aAAaxwQ,GAAO,IACnCyvQ,IAAS37Q,KAAK27Q,OACfA,EAAO37Q,KAAKgrI,QAAQ0xI,aAAaxwQ,GAAO,KAI5CyvQ,EAAO37Q,KAAKgrI,QAAQ0xI,aAAaxwQ,GAAO,IAEvCyvQ,IAAS37Q,KAAK27Q,OACfA,EAAO37Q,KAAKgrI,QAAQ0xI,aAAa18Q,KAAK2/Q,eAAe,IAErDhE,IACA37Q,KAAK27Q,KAAOA,EACZ37Q,KAAK6/Q,QAAU7/Q,KAAK27Q,KAAKv4F,EACG,QAAxBpjL,KAAK89Q,gBAAoD,aAAxB99Q,KAAKqyQ,iBACtCryQ,KAAK27Q,KAAK3qP,EAAI,GAElBhxB,KAAKo+Q,kBAAkB10O,EAAMpvB,GAErC,CACAq6K,WAC0B,UAAlB30L,KAAKsiC,SACLtiC,KAAK8/Q,oBAEyB,WAAzB9/Q,KAAKw7Q,iBACVx7Q,KAAKw+Q,kBAEb,CACAxO,UAAUE,GACNlwQ,KAAK0/Q,kBAAkBK,cAAc,CAAE7P,OAAQA,EAAQ94J,MAAOp3G,KAAKggR,aACvE,CACAlQ,YAAYI,GACRlwQ,KAAK0/Q,kBAAkBO,gBAAgB,CAAE/P,OAAQA,EAAQ94J,MAAOp3G,KAAKggR,aACzE,CACAhC,YAAYj0Q,GACJ/J,KAAKm2D,OACJn2D,KAAKk9Q,QAAmC,UAAzBl9Q,KAAKw7Q,iBACrBzxQ,EAAMhI,SAAW/B,KAAKq+Q,oBAAoBr7N,gBACzChjD,KAAKkgR,aAAalgR,KAAKq6Q,MAAMr3N,cAAej5C,EAAMhI,UAClD/B,KAAKkgR,aAAalgR,KAAKq+Q,oBAAoBr7N,cAAej5C,EAAMhI,SACS,IAA1E/B,KAAK++Q,kBAAkBhnQ,OAAQmyB,GAASA,IAASngC,EAAMhI,QAAQ0C,SAC3DzE,KAAKg/Q,mBACLh/Q,KAAK0/Q,kBAAkBS,cAAcngR,KAAKggR,cAG1ChgR,KAAK27Q,KAAO,KACZ37Q,KAAKs3Q,mBAAmBt3Q,KAAKm+Q,cAAc,GACvCn+Q,KAAK69Q,eACL79Q,KAAK0/Q,kBAAkBU,YAAYpgR,KAAKqgR,WAE5CrgR,KAAK0/Q,kBAAkBY,aAAatgR,KAAKm+Q,cACzCn+Q,KAAK0/Q,kBAAkBa,iBAEvBvgR,KAAKi/Q,qBACLj/Q,KAAKw+Q,mBAGjB,CACAxN,cAAcjnQ,GACVA,EAAM+0L,kBACF9+L,KAAKggR,aACLhgR,KAAK0/Q,kBAAkBS,cAAcngR,KAAKggR,aAEjB,UAAzBhgR,KAAKw7Q,iBACLx7Q,KAAKw+Q,kBAEb,CACAlG,cAAcvuQ,GACV/J,KAAK27Q,KAAO,KACZ5xQ,EAAM+0L,kBACN9+L,KAAK0/Q,kBAAkBa,gBACvBvgR,KAAKs3Q,mBAAmBt3Q,KAAKm+Q,cAAc,GACd,UAAzBn+Q,KAAKw7Q,kBACDx7Q,KAAK69Q,eACL79Q,KAAK0/Q,kBAAkBU,YAAYpgR,KAAKqgR,WAE5CrgR,KAAK0/Q,kBAAkBY,aAAatgR,KAAKm+Q,cAAc,GACvDn+Q,KAAKw+Q,mBAEb,CACA/H,eAAezxH,GACX,MAAMw7H,EAAmBxgR,KAAKq9Q,kBAAkB54Q,QAC3CzE,KAAK69Q,cAAgB,EAAI,GACxB4C,IAAgBzgR,KAAKq9Q,kBAAkBnsQ,QAAQlR,KAAKmuF,QAAU62D,GAChEw7H,EAAoBA,GAAoBA,EAC5CxgR,KAAKmuF,OAASnuF,KAAKq9Q,kBAAkBoD,EACzC,CACA7Q,cAAc1jQ,GACVlM,KAAK27Q,KAAKhyQ,EAAIuC,EAAMvC,EAAIuC,EAAMivQ,IAC9Bn7Q,KAAK27Q,KAAKpgQ,EAAIrP,EAAMqP,EAAIrP,EAAMkvQ,IAC9Bp7Q,KAAKo+Q,oBACLp+Q,KAAK0/Q,kBAAkBgB,cAAc,CACjCxQ,OAAQ,YACRhkQ,MAAOlM,KAAK27Q,KAAKpgQ,EACjB67F,MAAOp3G,KAAKggR,cAEhBhgR,KAAK0/Q,kBAAkBgB,cAAc,CACjCxQ,OAAQ,aACRhkQ,MAAOlM,KAAK27Q,KAAKhyQ,EACjBytG,MAAOp3G,KAAKggR,aAEpB,CACAW,YAAYz0Q,GACRlM,KAAK27Q,KAAKv4F,EAAIl3K,EAAMqP,EAAIrP,EAAMivQ,IAC9Bn7Q,KAAK6/Q,QAAU7/Q,KAAK27Q,KAAKv4F,EACzBpjL,KAAKo+Q,oBACLp+Q,KAAK0/Q,kBAAkBgB,cAAc,CACjCxQ,OAAQ,MACRhkQ,MAAOlM,KAAK27Q,KAAKv4F,EACjBhsE,MAAOp3G,KAAKggR,aAEpB,CACAY,cAAc10Q,GACVlM,KAAK27Q,KAAKpgQ,EAAIrP,EAAMqP,EAAIrP,EAAMivQ,IAC9Bn7Q,KAAKo+Q,oBACLp+Q,KAAK0/Q,kBAAkBgB,cAAc,CACjCxQ,OAAQ,QACRhkQ,MAAOlM,KAAK27Q,KAAKpgQ,EACjB67F,MAAOp3G,KAAKggR,aAEpB,CACAa,cAAc30Q,GACVlM,KAAK27Q,KAAK3qP,EAAI9kB,EAAMqP,EAAIrP,EAAMivQ,IAC9Bn7Q,KAAKo+Q,oBACLp+Q,KAAK0/Q,kBAAkBgB,cAAc,CACjCxQ,OAAQ,QACRhkQ,MAAOlM,KAAK27Q,KAAK3qP,EACjBomF,MAAOp3G,KAAKggR,aAEpB,CACA1K,WAAWppQ,GACP,GAAc,OAAVA,EACAlM,KAAKo+Q,wBAEJ,CACGlyQ,GAAsB,MAAbA,EAAM,KACfA,EAAQ,IAAMA,GAElB,IAAI40Q,EAAW,iCACa,WAAxB9gR,KAAKqyQ,iBACLyO,EAAW,8CAEf,MAAMtkJ,EAAQskJ,EAAS39P,KAAKjX,GACxBswH,IACItwH,EAAMzH,OAAS,IACfyH,EAAQ,IAAMA,EAAMupB,UAAU,GACzB5kB,MAAM,IACNtJ,IAAI+vB,GAAKA,EAAIA,GACbxa,KAAK,KAEc,WAAxB9c,KAAKqyQ,iBACLnmQ,GAASgf,KAAKqlD,MAAoB,IAAdvwE,KAAK27Q,KAAK3qP,GAAS1a,SAAS,KAEpDtW,KAAKs3Q,mBAAmBprQ,GAAO,GAAM,IAEzClM,KAAK0/Q,kBAAkBqB,aAAa,CAChC55P,MAAO,MACPq1G,MAAOA,EACPtwH,MAAOA,EACPkrG,MAAOp3G,KAAKggR,aACf,CAET,CACA5L,WAAWloQ,GACP,MAAMgwQ,EAAOl8Q,KAAKgrI,QAAQ8wI,WAAW97Q,KAAK27Q,MACpCn/I,GAAS7vG,MAAMzgB,EAAMqP,IAAMrP,EAAMqP,GAAK,GAAKrP,EAAMqP,GAAKrP,EAAM8tQ,GAC9Dx9I,IACA0/I,EAAKtmQ,EAAI1J,EAAMqP,EAAIrP,EAAM8tQ,GACzBh6Q,KAAK27Q,KAAO37Q,KAAKgrI,QAAQmxI,WAAWD,GACpCl8Q,KAAK6/Q,QAAU7/Q,KAAK27Q,KAAKv4F,EACzBpjL,KAAKo+Q,qBAETp+Q,KAAK0/Q,kBAAkBqB,aAAa,CAChC55P,MAAO,MACPq1G,MAAOA,EACPtwH,MAAOgwQ,EAAKtmQ,EACZwhG,MAAOp3G,KAAKggR,aAEpB,CACAtL,YAAYxoQ,GACR,MAAMgwQ,EAAOl8Q,KAAKgrI,QAAQ8wI,WAAW97Q,KAAK27Q,MACpCn/I,GAAS7vG,MAAMzgB,EAAMqP,IAAMrP,EAAMqP,GAAK,GAAKrP,EAAMqP,GAAKrP,EAAM8tQ,GAC9Dx9I,IACA0/I,EAAKjrP,EAAI/kB,EAAMqP,EAAIrP,EAAM8tQ,GACzBh6Q,KAAK27Q,KAAO37Q,KAAKgrI,QAAQmxI,WAAWD,GACpCl8Q,KAAK6/Q,QAAU7/Q,KAAK27Q,KAAKv4F,EACzBpjL,KAAKo+Q,qBAETp+Q,KAAK0/Q,kBAAkBqB,aAAa,CAChC55P,MAAO,OACPq1G,MAAOA,EACPtwH,MAAOgwQ,EAAKjrP,EACZmmF,MAAOp3G,KAAKggR,aAEpB,CACAzL,aAAaroQ,GACT,MAAMgwQ,EAAOl8Q,KAAKgrI,QAAQ8wI,WAAW97Q,KAAK27Q,MACpCn/I,GAAS7vG,MAAMzgB,EAAMqP,IAAMrP,EAAMqP,GAAK,GAAKrP,EAAMqP,GAAKrP,EAAM8tQ,GAC9Dx9I,IACA0/I,EAAK39O,EAAIryB,EAAMqP,EAAIrP,EAAM8tQ,GACzBh6Q,KAAK27Q,KAAO37Q,KAAKgrI,QAAQmxI,WAAWD,GACpCl8Q,KAAK6/Q,QAAU7/Q,KAAK27Q,KAAKv4F,EACzBpjL,KAAKo+Q,qBAETp+Q,KAAK0/Q,kBAAkBqB,aAAa,CAChC55P,MAAO,QACPq1G,MAAOA,EACPtwH,MAAOgwQ,EAAK39O,EACZ64E,MAAOp3G,KAAKggR,aAEpB,CACA/M,WAAW/mQ,GACP,MAAMswH,GAAS7vG,MAAMzgB,EAAMqP,IAAMrP,EAAMqP,GAAK,GAAKrP,EAAMqP,GAAKrP,EAAM8tQ,GAC9Dx9I,IACAx8H,KAAK27Q,KAAKv4F,EAAIl3K,EAAMqP,EAAIrP,EAAM8tQ,GAC9Bh6Q,KAAK6/Q,QAAU7/Q,KAAK27Q,KAAKv4F,EACzBpjL,KAAKo+Q,qBAETp+Q,KAAK0/Q,kBAAkBqB,aAAa,CAChC55P,MAAO,MACPq1G,MAAOA,EACPtwH,MAAOlM,KAAK27Q,KAAKv4F,EACjBhsE,MAAOp3G,KAAKggR,aAEpB,CACA5J,aAAalqQ,GACT,MAAMswH,GAAS7vG,MAAMzgB,EAAMqP,IAAMrP,EAAMqP,GAAK,GAAKrP,EAAMqP,GAAKrP,EAAM8tQ,GAC9Dx9I,IACAx8H,KAAK27Q,KAAKpgQ,EAAIrP,EAAMqP,EAAIrP,EAAM8tQ,GAC9Bh6Q,KAAKo+Q,qBAETp+Q,KAAK0/Q,kBAAkBqB,aAAa,CAChC55P,MAAO,QACPq1G,MAAOA,EACPtwH,MAAOlM,KAAK27Q,KAAKpgQ,EACjB67F,MAAOp3G,KAAKggR,aAEpB,CACA9O,aAAahlQ,GACT,MAAMswH,GAAS7vG,MAAMzgB,EAAMqP,IAAMrP,EAAMqP,GAAK,GAAKrP,EAAMqP,GAAKrP,EAAM8tQ,GAC9Dx9I,IACAx8H,KAAK27Q,KAAK3qP,EAAI9kB,EAAMqP,EAAIrP,EAAM8tQ,GAC9Bh6Q,KAAKo+Q,qBAETp+Q,KAAK0/Q,kBAAkBqB,aAAa,CAChC55P,MAAO,QACPq1G,MAAOA,EACPtwH,MAAOlM,KAAK27Q,KAAK3qP,EACjBomF,MAAOp3G,KAAKggR,aAEpB,CACAzM,iBAAiBrnQ,GACb,MAAM2vQ,EAAO77Q,KAAKgrI,QAAQ0wI,UAAU17Q,KAAK27Q,MACnCn/I,GAAS7vG,MAAMzgB,EAAMqP,IAAMrP,EAAMqP,GAAK,GAAKrP,EAAMqP,GAAKrP,EAAM8tQ,GAC9Dx9I,IACAq/I,EAAKzrK,EAAIlkG,EAAMqP,EAAIrP,EAAM8tQ,GACzBh6Q,KAAK27Q,KAAO37Q,KAAKgrI,QAAQ4wI,UAAUC,GACnC77Q,KAAK6/Q,QAAU7/Q,KAAK27Q,KAAKv4F,EACzBpjL,KAAKo+Q,qBAETp+Q,KAAK0/Q,kBAAkBqB,aAAa,CAChC55P,MAAO,YACPq1G,MAAOA,EACPtwH,MAAO2vQ,EAAKzrK,EACZgH,MAAOp3G,KAAKggR,aAEpB,CACA5M,kBAAkBlnQ,GACd,MAAM2vQ,EAAO77Q,KAAKgrI,QAAQ0wI,UAAU17Q,KAAK27Q,MACnCn/I,GAAS7vG,MAAMzgB,EAAMqP,IAAMrP,EAAMqP,GAAK,GAAKrP,EAAMqP,GAAKrP,EAAM8tQ,GAC9Dx9I,IACAq/I,EAAKlyQ,EAAIuC,EAAMqP,EAAIrP,EAAM8tQ,GACzBh6Q,KAAK27Q,KAAO37Q,KAAKgrI,QAAQ4wI,UAAUC,GACnC77Q,KAAK6/Q,QAAU7/Q,KAAK27Q,KAAKv4F,EACzBpjL,KAAKo+Q,qBAETp+Q,KAAK0/Q,kBAAkBqB,aAAa,CAChC55P,MAAO,aACPq1G,MAAOA,EACPtwH,MAAO2vQ,EAAKlyQ,EACZytG,MAAOp3G,KAAKggR,aAEpB,CACAtO,YAAYxlQ,IACOygB,MAAMzgB,EAAMqP,IAAMrP,EAAMqP,GAAK,GAAKrP,EAAMqP,GAAKrP,EAAM8tQ,KAE9Dh6Q,KAAKg8Q,KAAK1kP,EAAIprB,EAAMqP,EACpBvb,KAAKo+Q,mBAAkB,GAAO,GAAM,IAExCp+Q,KAAK0/Q,kBAAkBqB,aAAa,CAChC55P,MAAO,OACPq1G,OAAO,EACPtwH,MAAOlM,KAAKg8Q,KAAK1kP,EACjB8/E,MAAOp3G,KAAKggR,aAEpB,CACAnO,eAAe3lQ,IACIygB,MAAMzgB,EAAMqP,IAAMrP,EAAMqP,GAAK,GAAKrP,EAAMqP,GAAKrP,EAAM8tQ,KAE9Dh6Q,KAAKg8Q,KAAKl8O,EAAI5zB,EAAMqP,EACpBvb,KAAKo+Q,mBAAkB,GAAO,GAAM,IAExCp+Q,KAAK0/Q,kBAAkBqB,aAAa,CAChC55P,MAAO,UACPq1G,OAAO,EACPtwH,MAAOlM,KAAKg8Q,KAAKl8O,EACjBs3E,MAAOp3G,KAAKggR,aAEpB,CACAhO,cAAc9lQ,IACKygB,MAAMzgB,EAAMqP,IAAMrP,EAAMqP,GAAK,GAAKrP,EAAMqP,GAAKrP,EAAM8tQ,KAE9Dh6Q,KAAKg8Q,KAAK9mL,EAAIhpF,EAAMqP,EACpBvb,KAAKo+Q,mBAAkB,GAAO,GAAM,IAExCp+Q,KAAK0/Q,kBAAkBqB,aAAa,CAChC55P,MAAO,SACPq1G,OAAO,EACPtwH,MAAOlM,KAAKg8Q,KAAK9mL,EACjBkiB,MAAOp3G,KAAKggR,aAEpB,CACA7N,aAAajmQ,IACMygB,MAAMzgB,EAAMqP,IAAMrP,EAAMqP,GAAK,GAAKrP,EAAMqP,GAAKrP,EAAM8tQ,KAE9Dh6Q,KAAKg8Q,KAAKjjP,EAAI7sB,EAAMqP,EACpBvb,KAAKo+Q,mBAAkB,GAAO,GAAM,IAExCp+Q,KAAK0/Q,kBAAkBqB,aAAa,CAChC55P,MAAO,QACPq1G,OAAO,EACPtwH,MAAOlM,KAAKg8Q,KAAKjjP,EACjBq+E,MAAOp3G,KAAKggR,aAEpB,CACA1P,iBAAiBvmQ,EAAOmC,GACpBnC,EAAM+0L,kBACD9+L,KAAKywQ,eAAe14P,OAAQq/F,GAAWA,IAAUlrG,GAAQzH,SAC1DzE,KAAKywQ,eAAiBzwQ,KAAKywQ,eAAeh2P,OAAOvO,GACjDlM,KAAK0/Q,kBAAkBsB,oBAAoBhhR,KAAKywQ,gBAExD,CACAuG,oBAAoBjtQ,EAAOmC,GACvBnC,EAAM+0L,kBACN9+L,KAAKywQ,eAAiBzwQ,KAAKywQ,eAAe14P,OAAQq/F,GAAWA,IAAUlrG,GACvElM,KAAK0/Q,kBAAkBsB,oBAAoBhhR,KAAKywQ,eACpD,CAEA8N,kBACSv+Q,KAAKm2D,OACNn2D,KAAKm2D,MAAO,EACZn2D,KAAKihR,QAAS,EACdrgO,WAAW,KACP5gD,KAAKihR,QAAS,EACdjhR,KAAK8/Q,oBACL9/Q,KAAKi9Q,MAAM7wN,eAAa,EACzB,GACHpsD,KAAK0/Q,kBAAkBwB,cAAa,GAC/BlhR,KAAKk9Q,SACN77Q,SAASZ,iBAAiB,YAAaT,KAAK+9Q,mBAC5C18Q,SAASZ,iBAAiB,aAAcT,KAAK+9Q,oBAEjD/7Q,OAAOvB,iBAAiB,SAAUT,KAAKi+Q,gBAE/C,CACAO,mBACQx+Q,KAAKm2D,OACLn2D,KAAKm2D,MAAO,EACZn2D,KAAK0/Q,kBAAkBwB,cAAa,GAC/BlhR,KAAKk9Q,SACN77Q,SAASX,oBAAoB,YAAaV,KAAK+9Q,mBAC/C18Q,SAASX,oBAAoB,aAAcV,KAAK+9Q,oBAEpD/7Q,OAAOtB,oBAAoB,SAAUV,KAAKi+Q,gBACrCj+Q,KAAKi9Q,MAAMzjM,WACZx5E,KAAKi9Q,MAAM7wN,gBAGvB,CACAgyN,kBAAkB10O,GAAO,EAAMpvB,GAAS,EAAM6mQ,GAAY,GACtD,GAAInhR,KAAKy9Q,aAAc,CAInB,IAAI2D,EAAKvF,EAAMK,EAHU,IAArBl8Q,KAAK6+Q,cACL7+Q,KAAK27Q,KAAKhyQ,EAAI,GAGlB,MAAM03Q,EAAarhR,KAAKggR,YAuCxB,GAtCAnE,EAAO77Q,KAAKgrI,QAAQ0wI,UAAU17Q,KAAK27Q,MAC9B37Q,KAAK69Q,eAIDsD,GAKDjF,EAAOl8Q,KAAKgrI,QAAQ+wI,UAAU/7Q,KAAKgrI,QAAQuxI,cAAcv8Q,KAAKg8Q,OAC9Dh8Q,KAAK27Q,KAAO37Q,KAAKgrI,QAAQmxI,WAAWD,KALpCA,EAAOl8Q,KAAKgrI,QAAQ8wI,WAAW97Q,KAAK27Q,MACpC37Q,KAAKg8Q,KAAOh8Q,KAAKgrI,QAAQwxI,gBAAgBx8Q,KAAKgrI,QAAQixI,WAAWC,KAMrEA,EAAOl8Q,KAAKgrI,QAAQyxI,gBAAgBP,GACpCl8Q,KAAK6/Q,QAAU7/Q,KAAK27Q,KAAKv4F,GAZzB84F,EAAOl8Q,KAAKgrI,QAAQyxI,gBAAgBz8Q,KAAKgrI,QAAQ8wI,WAAW97Q,KAAK27Q,OAcrEyF,EAAMphR,KAAKgrI,QAAQyxI,gBAAgBz8Q,KAAKgrI,QAAQ8wI,WAAW,IAAIpC,GAAK15Q,KAAK6/Q,SAAW7/Q,KAAK27Q,KAAKv4F,EAAG,EAAG,EAAG,KACnG9oK,IACAta,KAAK2yQ,SAAW,IAAIgH,GAAKzuP,KAAKqlD,MAAiB,IAAVsrM,EAAKz4F,GAAWl4J,KAAKqlD,MAAe,IAATsrM,EAAKlyQ,GAAUuhB,KAAKqlD,MAAe,IAATsrM,EAAKzrK,GAAUllF,KAAKqlD,MAAe,IAATsrM,EAAK7qP,GAAW,KACpIhxB,KAAK8zQ,SAAW,IAAI2F,GAAKyC,EAAKtmQ,EAAGsmQ,EAAK39O,EAAG29O,EAAKjrP,EAAG/F,KAAKqlD,MAAe,IAAT2rM,EAAKlrP,GAAW,KACxEhxB,KAAK69Q,gBACL79Q,KAAKoxQ,SAAW,IAAIwI,GAAK55Q,KAAKg8Q,KAAK1kP,EAAGt3B,KAAKg8Q,KAAKl8O,EAAG9/B,KAAKg8Q,KAAK9mL,EAAGl1F,KAAKg8Q,KAAKjjP,EAAG7N,KAAKqlD,MAAoB,IAAdvwE,KAAKg8Q,KAAKhrP,GAAW,MAGjHhxB,KAAK01Q,QAAU11Q,KAAKgrI,QAAQoxI,UAAUF,EADI,WAAxBl8Q,KAAKqyQ,gBAEvBryQ,KAAKi1Q,SAAWj1Q,KAAK8zQ,SAAS9iP,GAEN,SAAxBhxB,KAAK89Q,gBACD99Q,KAAKmuF,SAAWirL,GAAaE,MAAQt5Q,KAAKmuF,SAAWirL,GAAaI,MAC9Dx5Q,KAAK27Q,KAAK3qP,EAAI,IACdhxB,KAAKmuF,OAASnuF,KAAK27Q,KAAK3qP,EAAI,EAAIooP,GAAaE,KAAOF,GAAaC,KAI7Er5Q,KAAKiwQ,eAAiB,OAASmR,EAAIxrQ,EAAI,IAAMwrQ,EAAI7iP,EAAI,IAAM6iP,EAAInwP,EAAI,IACnEjxB,KAAKshR,iBAAmB,OAASpF,EAAKtmQ,EAAI,IAAMsmQ,EAAK39O,EAAI,IAAM29O,EAAKjrP,EAAI,IACxEjxB,KAAKggR,YAAchgR,KAAKgrI,QAAQ8xI,aAAa98Q,KAAK27Q,KAAM37Q,KAAK89Q,eAAgB99Q,KAAKqyQ,gBAClFryQ,KAAKuwQ,cAAgBvwQ,KAAKgrI,QAAQ8xI,aAAa98Q,KAAK27Q,KAAM,OAAQ,MAC9D37Q,KAAKmuF,SAAWirL,GAAaI,KAC7Bx5Q,KAAKqgR,UAAY,WAGW,WAAxBrgR,KAAKqyQ,gBAAuD,YAAxBryQ,KAAKqyQ,gBACjB,WAAxBryQ,KAAKqyQ,eAA6B,CAClC,MAAMkP,EAAQr2P,KAAKqlD,MAAoB,IAAdvwE,KAAKg8Q,KAAKhrP,GAAW,IAC9ChxB,KAAKqgR,UAAa,SAAQrgR,KAAKg8Q,KAAK1kP,KAAKt3B,KAAKg8Q,KAAKl8O,KAAK9/B,KAAKg8Q,KAAK9mL,KAAKl1F,KAAKg8Q,KAAKjjP,KAAKwoP,UAGtFvhR,KAAKqgR,UAAa,QAAOrgR,KAAKg8Q,KAAK1kP,KAAKt3B,KAAKg8Q,KAAKl8O,KAAK9/B,KAAKg8Q,KAAK9mL,KAAKl1F,KAAKg8Q,KAAKjjP,KAGxF/4B,KAAKkwQ,OAAS,IAAImL,IAAgBr7Q,KAAK6/Q,SAAW7/Q,KAAK27Q,KAAKv4F,GAAKpjL,KAAKy9Q,aAAar6F,EAAI,EAAGpjL,KAAK27Q,KAAKhyQ,EAAI3J,KAAKy9Q,aAAa9zQ,EAAI,GAAI,EAAI3J,KAAK27Q,KAAKpgQ,GAAKvb,KAAKy9Q,aAAaliQ,EAAI,EAAGvb,KAAK27Q,KAAK3qP,EAAIhxB,KAAKy9Q,aAAazsP,EAAI,GAC9M0Y,GAAQ23O,IAAerhR,KAAKggR,cACxBhgR,KAAK69Q,eACL79Q,KAAK0/Q,kBAAkBU,YAAYpgR,KAAKqgR,WAE5CrgR,KAAK0/Q,kBAAkBY,aAAatgR,KAAKggR,aAAW,CAGhE,CAEAF,oBACI,GAA6B,WAAzB9/Q,KAAKw7Q,gBACLx7Q,KAAKsiC,SAAW,eAEf,CACD,IAAyCv7B,EAArCu7B,EAAW,SAAU4/J,EAAY,GACjCphM,EAAa,KAAM0gR,EAAgB,KACnC3gR,EAAOb,KAAKq+Q,oBAAoBr7N,cAAcliD,WAClD,MAAM2gR,EAAezhR,KAAK0hR,cAAc1+N,cAAc82G,aACtD,KAAgB,OAATj5J,GAAkC,SAAjBA,EAAKI,SAAoB,CAU7C,GATA8F,EAAQ/E,OAAO0gE,iBAAiB7hE,GAChCyhC,EAAWv7B,EAAMq5D,iBAAiB,YAClC8hI,EAAYn7L,EAAMq5D,iBAAiB,aAClB,WAAb99B,GAAwC,OAAfxhC,IACzBA,EAAaD,GAEbqhM,GAA2B,SAAdA,GAA0C,OAAlBs/E,IACrCA,EAAgB3gR,GAEH,UAAbyhC,EAAsB,CACtBxhC,EAAa0gR,EACb,MAEJ3gR,EAAOA,EAAKC,WAEhB,MAAM6gR,EAAe3hR,KAAK4hR,gBAAgB5hR,KAAKq+Q,oBAAoBr7N,cAA6B,UAAb1gB,GACnF,GAAItiC,KAAKs9Q,sBAAsC,UAAbh7O,KAC5BxhC,GAAcA,aAAsB+gR,oBACtC7hR,KAAKu/I,IAAMoiI,EAAapiI,IACxBv/I,KAAKiwG,KAAO0xK,EAAa1xK,SAExB,CACkB,OAAfnvG,IACAA,EAAaD,GAEjB,MAAMihR,EAAY9hR,KAAK4hR,gBAAgB9gR,EAA0B,UAAbwhC,GACpDtiC,KAAKu/I,IAAMoiI,EAAapiI,IAAMuiI,EAAUviI,IACxCv/I,KAAKiwG,KAAO0xK,EAAa1xK,KAAO6xK,EAAU7xK,KAE7B,UAAb3tE,IACAtiC,KAAKsiC,SAAW,SAEpB,IAAIy/O,EAAc/hR,KAAKm/Q,WACC,SAApBn/Q,KAAKm/Q,aAGL4C,EApkChB,SAASC,GAAyBC,EAAUC,GAExC,IAAIC,EAAe,QACfC,EAAe,SAEnB,MAAQr5L,SAAQtwB,SAAUwpN,GAClB1iI,MAAKtvC,QAASiyK,EAChB/oH,EAAS5Z,EAAM2iI,EAAgBn5L,OAC/BmnB,EAAQD,EAAOiyK,EAAgBzpN,MAC/B4pN,EAAe9iI,EAAMx2D,EAAS,EAC9Bu5L,EAAkBnpH,EAASpwE,GAAU/mF,OAAOw3J,aAAen4J,SAASi8D,gBAAgBw+F,cACpFymH,EAAgBtyK,EAAOx3C,EAAQ,EAC/B+pN,GAAiBtyK,EAAQz3C,GAASz2D,OAAOu3J,YAAcl4J,SAASi8D,gBAAgB22G,aAgBtF,OAbIquG,IACAF,EAAe,OAEfC,IACAD,EAAe,UAEfG,IACAJ,EAAe,SAEfK,KACAL,EAAe,QAZEE,GAAgBC,GAAmBC,GAAiBC,GAgBpD,CAAC,OAAQ,QAAS,MAAO,UAC1B5jQ,OAAO,CAAC0nF,GAAMxtF,KAASmpQ,EAAS37K,IAAQ27K,EAASnpQ,IAAQwtF,GAAOxtF,IAE/EypQ,GAAiBC,GACdH,EACO,SAEPC,GAGG/iI,EAAM4Z,EAFF,MAEmB,SAE7BkpH,GAAgBC,EACbC,EACO,QAEPC,IAGGvyK,EAAOC,EAFH,OAEoB,QAE3B,GAAEkyK,KAAgBD,GAC9B,CAihC8BH,CAFOhiR,KAAK0hR,cAAc1+N,cAAc6/G,wBAChC7iK,KAAKs/Q,iBAAiBt8N,cAAc6/G,0BAG1C,QAAhBk/G,GACA/hR,KAAKwvQ,SAAWiS,EAAe,EAC/BzhR,KAAKu/I,KAAOkiI,EAAezhR,KAAKm9Q,gBAChCn9Q,KAAKiwG,MAAQjwG,KAAKo/Q,iBAAmB,IAAMuC,EAAalpN,MAAQz4D,KAAKo9Q,mBAEhD,WAAhB2E,GACL/hR,KAAKu/I,KAAOoiI,EAAa54L,OAAS/oF,KAAKm9Q,gBACvCn9Q,KAAKiwG,MAAQjwG,KAAKo/Q,iBAAmB,IAAMuC,EAAalpN,MAAQz4D,KAAKo9Q,mBAEhD,aAAhB2E,GAA8C,aAAhBA,GACnC/hR,KAAKu/I,KAAOkiI,EAAeE,EAAa54L,OAAS44L,EAAa54L,OAAS/oF,KAAKo/Q,iBAAmB,IAC/Fp/Q,KAAKiwG,MAAQjwG,KAAK29Q,QAAU39Q,KAAKm9Q,gBAAkB,EAAIn9Q,KAAKo9Q,mBAEvC,cAAhB2E,GAA+C,cAAhBA,GACpC/hR,KAAKu/I,KAAOkiI,EAAeE,EAAa54L,OAAS44L,EAAa54L,OAAS/oF,KAAKo/Q,iBAAmB,IAC/Fp/Q,KAAKiwG,MAAQ0xK,EAAalpN,MAAQz4D,KAAKm9Q,gBAAkB,EAAIn9Q,KAAKo9Q,mBAE7C,SAAhB2E,GAA0C,gBAAhBA,GAAiD,gBAAhBA,GAChE/hR,KAAKu/I,KAAOoiI,EAAa54L,OAAS/oF,KAAKo/Q,iBAAmB,IAAMp/Q,KAAKo9Q,kBACrEp9Q,KAAKiwG,MAAQjwG,KAAK29Q,QAAU39Q,KAAKm9Q,gBAAkB,IAGnDn9Q,KAAKu/I,KAAOoiI,EAAa54L,OAAS/oF,KAAKo/Q,iBAAmB,IAAMp/Q,KAAKo9Q,kBACrEp9Q,KAAKiwG,MAAQ0xK,EAAalpN,MAAQz4D,KAAKm9Q,gBAAkB,GAE7Dn9Q,KAAKuvQ,cAAgBwS,EAE7B,CAEA7B,aAAa7zQ,EAAQmuB,GACjB,IAAI35B,EAAO25B,EAAM15B,WACjB,KAAgB,OAATD,GAAe,CAClB,GAAIA,IAASwL,EACT,OAAO,EAEXxL,EAAOA,EAAKC,WAEhB,OAAO,CACX,CACA8gR,gBAAgB37Q,EAASioD,GACrB,MAAO,CACHqxF,IAAKt5I,EAAQ48J,wBAAwBtjB,KAAOrxF,EAASlsD,OAAOk5Q,YAAc,GAC1EjrK,KAAMhqG,EAAQ48J,wBAAwB5yD,MAAQ/hD,EAASlsD,OAAO+4Q,YAAc,GAC5EtiN,MAAOxyD,EAAQ2zJ,YACf7wE,OAAQ9iF,EAAQ6zJ,aAExB,EAEJkjH,SAAqB/3Q,UAAO,SAAsCwW,GAAK,OAAO,IAAKA,GAAKuhQ,GAAsB1N,8BAAyBA,cAAoBA,8BAAyBA,qBAA2BA,8BAAyBiM,IAAsB,EAC9PyB,EAAqBtyO,UAAqB4kO,8BAAyB,CAAE3kQ,KAAMqyQ,EAAsBzyO,UAAW,CAAC,CAAC,iBAAkBk4O,UAAW,SAAoCpT,EAAIr5P,GAI7K,GAJ6L,EAALq5P,IACtLC,wBAAmBn+M,GAAK,GACxBm+M,wBAAmBJ,GAAK,GACxBI,wBAAmBH,GAAK,IACjB,EAALE,EAAQ,CACV,IAAInqE,EACJoqE,2BAAsBpqE,EAAKoqE,6BAA0Bt5P,EAAI0rQ,cAAgBx8E,EAAG/kL,OAC5EmvP,2BAAsBpqE,EAAKoqE,6BAA0Bt5P,EAAI0nQ,UAAYx4E,EAAG/kL,OACxEmvP,2BAAsBpqE,EAAKoqE,6BAA0Bt5P,EAAI4nQ,YAAc14E,EAAG/kL,OAC5E,EAAG+5P,aAAc,SAA2C7K,EAAIr5P,GAAgB,EAALq5P,GACzEC,uBAAkB,YAAa,SAA2DzP,GAAU,OAAO7pP,EAAIunQ,UAAU1d,EAAS,GAAG,EAAOyP,8BAA5IA,CAAsK,cAAe,SAA6DzP,GAAU,OAAO7pP,EAAIwnQ,YAAY3d,EAAS,GAAG,EAAOyP,8BACxS,EAAG3kO,MAAO,GAAI+3O,KAAM,GAAIC,OAAQ,CAAC,CAAC,EAAG,eAAgB,EAAG,SAAU,CAAC,cAAe,IAAK,CAAC,EAAG,QAAS,MAAO,EAAG,QAAS,CAAC,QAAS,uBAAwB,EAAG,SAAU,MAAO,MAAO,mBAAoB,WAAY,YAAa,UAAW,EAAG,QAAS,CAAC,EAAG,YAAa,OAAQ,CAAC,EAAG,QAAS,CAAC,EAAG,6BAA8B,CAAC,EAAG,kBAAmB,CAAC,OAAQ,SAAU,EAAG,QAAS,WAAY,QAAS,EAAG,QAAS,CAAC,EAAG,SAAU,CAAC,QAAS,gBAAiB,EAAG,QAAS,CAAC,EAAG,MAAO,EAAG,SAAU,MAAO,WAAY,YAAa,WAAY,CAAC,YAAa,IAAK,CAAC,EAAG,UAAW,CAAC,EAAG,QAAS,EAAG,SAAU,MAAO,WAAY,YAAa,WAAY,CAAC,cAAe,IAAK,CAAC,EAAG,QAAS,EAAG,SAAU,MAAO,WAAY,YAAa,WAAY,CAAC,cAAe,IAAK,CAAC,QAAS,YAAa,EAAG,UAAW,EAAG,QAAS,CAAC,QAAS,YAAa,EAAG,UAAW,EAAG,QAAS,CAAC,QAAS,YAAa,EAAG,UAAW,EAAG,QAAS,CAAC,QAAS,WAAY,EAAG,YAAa,UAAW,EAAG,QAAS,CAAC,QAAS,aAAc,EAAG,QAAS,CAAC,QAAS,cAAe,EAAG,QAAS,CAAC,QAAS,cAAe,EAAG,QAAS,CAAC,QAAS,cAAe,EAAG,QAAS,CAAC,EAAG,uBAAwB,EAAG,SAAU,MAAO,MAAO,WAAY,YAAa,WAAY,CAAC,OAAQ,SAAU,EAAG,WAAY,SAAU,CAAC,EAAG,SAAU,QAAS,CAAC,EAAG,aAAc,CAAC,EAAG,OAAQ,CAAC,OAAQ,SAAU,UAAW,SAAU,MAAO,IAAK,MAAO,MAAO,EAAG,OAAQ,KAAM,QAAS,cAAe,YAAa,CAAC,OAAQ,SAAU,UAAW,4BAA6B,MAAO,IAAK,MAAO,IAAK,OAAQ,MAAO,EAAG,OAAQ,KAAM,QAAS,cAAe,WAAY,EAAG,QAAS,CAAC,EAAG,QAAS,CAAC,OAAQ,SAAU,UAAW,4BAA6B,MAAO,IAAK,MAAO,IAAK,OAAQ,MAAO,EAAG,OAAQ,KAAM,QAAS,cAAe,YAAa,CAAC,EAAG,aAAc,CAAC,OAAQ,SAAU,UAAW,SAAU,MAAO,IAAK,MAAO,MAAO,EAAG,OAAQ,KAAM,QAAS,cAAe,YAAa,CAAC,EAAG,aAAc,CAAC,OAAQ,SAAU,UAAW,SAAU,MAAO,IAAK,MAAO,MAAO,EAAG,OAAQ,KAAM,QAAS,cAAe,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,OAAQ,QAAS,OAAQ,cAAe,YAAa,CAAC,EAAG,cAAe,CAAC,EAAG,eAAgB,CAAC,EAAG,oBAAqB,EAAG,SAAU,CAAC,EAAG,eAAgB,CAAC,EAAG,gBAAiB,CAAC,EAAG,QAAS,EAAG,QAAS,CAAC,QAAS,eAAgB,EAAG,kBAAmB,QAAS,EAAG,QAAS,WAAY,CAAC,EAAG,eAAgB,EAAG,SAAU,CAAC,EAAG,QAAS,QAAS,EAAG,QAAS,CAAC,EAAG,SAAU,CAAC,EAAG,eAAgB,CAAC,OAAQ,SAAU,EAAG,QAAS,QAAS,EAAG,QAAS,CAAC,OAAQ,SAAU,EAAG,UAAWC,SAAU,SAAuCvT,EAAIr5P,GAAgB,EAALq5P,IAC9/EC,2BAAsB,EAAG,MAAO,EAAG,GACnCA,uBAAkB,QAAS,SAA4DzP,GAAU,OAAOA,EAAO/gE,iBAAmB,GAClIwwE,uBAAkB,EAAGF,GAAqC,EAAG,EAAG,MAAO,GACvEE,uBAAkB,EAAGG,GAAqC,EAAG,EAAG,MAAO,GACvEH,2BAAsB,EAAG,MAAO,EAAhCA,CAAmC,EAAG,MAAO,GAC7CA,sBAAiB,EAAG,MAAO,EAA3BA,CAA8B,EAAG,MAAO,GACxCA,uBAAkB,EAAGa,GAAwC,EAAG,EAAG,SAAU,GAC7Eb,2BACAA,2BAAsB,EAAG,MAAO,GAChCA,uBAAkB,GAAIsB,GAAsC,EAAG,EAAG,MAAO,IACzEtB,2BAAsB,GAAI,MAAO,GAAI,IACrCA,uBAAkB,WAAY,SAAgEzP,GAAU,OAAO7pP,EAAI2qQ,YAAY9gB,EAAS,EAAxIyP,CAA2I,YAAa,WAAqE,OAAOt5P,EAAI85P,YAAY,MAAQ,EAA5PR,CAA+P,UAAW,WAAmE,OAAOt5P,EAAIg6P,UAAU,MAAQ,GAC1WV,sBAAiB,GAAI,MAAO,IAC5BA,2BACAA,2BAAsB,GAAI,MAAO,GAAI,IACrCA,uBAAkB,WAAY,SAAgEzP,GAAU,OAAO7pP,EAAI4qQ,cAAc/gB,EAAS,EAA1IyP,CAA6I,YAAa,WAAqE,OAAOt5P,EAAI85P,YAAY,QAAU,EAAhQR,CAAmQ,UAAW,WAAmE,OAAOt5P,EAAIg6P,UAAU,QAAU,GAChXV,sBAAiB,GAAI,MAAO,IAC5BA,2BACAA,2BAAsB,GAAI,MAAO,GAAI,IACrCA,uBAAkB,WAAY,SAAgEzP,GAAU,OAAO7pP,EAAI6qQ,cAAchhB,EAAS,EAA1IyP,CAA6I,YAAa,WAAqE,OAAOt5P,EAAI85P,YAAY,QAAU,EAAhQR,CAAmQ,UAAW,WAAmE,OAAOt5P,EAAIg6P,UAAU,QAAU,GAChXV,sBAAiB,GAAI,MAAO,IAC5BA,+BACAA,uBAAkB,GAAIgC,GAAsC,GAAI,GAAI,MAAO,IAC3EhC,uBAAkB,GAAIuD,GAAsC,GAAI,GAAI,MAAO,IAC3EvD,uBAAkB,GAAI0E,GAAsC,GAAI,GAAI,MAAO,IAC3E1E,uBAAkB,GAAI6F,GAAsC,EAAG,EAAG,MAAO,IACzE7F,uBAAkB,GAAI0G,GAAsC,EAAG,EAAG,MAAO,IACzE1G,uBAAkB,GAAIgH,GAAsC,EAAG,EAAG,MAAO,IACzEhH,uBAAkB,GAAI0I,GAAsC,EAAG,EAAG,MAAO,IACzE1I,uBAAkB,GAAI0J,GAAsC,EAAG,EAAG,MAAO,IACzE1J,4BACO,EAALD,IACFC,wBAAmB,UAAYt5P,EAAImgD,KAAgB,QAAT,OAA1Cm5M,CAA4D,aAAct5P,EAAIirQ,OAAS,SAAW,UAAlG3R,CAA6G,MAAOt5P,EAAIupI,IAAK,KAA7H+vH,CAAmI,OAAQt5P,EAAIi6F,KAAM,KAArJq/J,CAA2J,WAAYt5P,EAAIssB,SAA3KgtO,CAAqL,SAAUt5P,EAAI2oQ,SAAU,KAA7MrP,CAAmN,QAASt5P,EAAI2nQ,QAAS,MACzOrO,wBAAmB,OAAQt5P,EAAImgD,MAC/Bm5M,sBAAiB,GACjBA,uBAAkB,OAA+B,SAAvBt5P,EAAIwlQ,iBAC9BlM,sBAAiB,GACjBA,uBAAkB,OAAmC,KAA1Bt5P,EAAI6oQ,aAAe,IAC9CvP,sBAAiB,GACjBA,wBAAmB,mBAAoBt5P,EAAIu6P,eAC3CjB,sBAAiB,GACjBA,uBAAkB,OAAQt5P,EAAIwhQ,kBAC9BlI,sBAAiB,GACjBA,uBAAkB,OAA+B,aAAvBt5P,EAAIq8P,gBAC9B/C,sBAAiB,GACjBA,wBAAmB,UAAsC,KAA1Bt5P,EAAI6oQ,aAAe,GAAW,QAAU,QACvEvP,uBAAkB,MAAO,GACzBA,sBAAiB,GACjBA,wBAAmB,OAAsB,MAAdt5P,EAAIk6P,OAAiB,KAAOl6P,EAAIk6P,OAAO9sF,EAAG,MACrEksF,sBAAiB,GACjBA,wBAAmB,UAAsC,KAA1Bt5P,EAAI6oQ,aAAe,GAAW,QAAU,QACvEvP,uBAAkB,MAAO,GACzBA,sBAAiB,GACjBA,wBAAmB,QAAuB,MAAdt5P,EAAIk6P,OAAiB,KAAOl6P,EAAIk6P,OAAO30P,EAAG,MACtE+zP,sBAAiB,GACjBA,wBAAmB,UAAkC,aAAvBt5P,EAAIq8P,eAAgC,OAAS,QAA3E/C,CAAoF,mBAAoBt5P,EAAIsrQ,kBAC5GhS,uBAAkB,MAAO,GACzBA,sBAAiB,GACjBA,wBAAmB,OAAsB,MAAdt5P,EAAIk6P,OAAiB,KAAOl6P,EAAIk6P,OAAOl/O,EAAG,MACrEs+O,sBAAiB,GACjBA,uBAAkB,QAASt5P,EAAI8oQ,gBAA6C,KAA1B9oQ,EAAI6oQ,aAAe,IACrEvP,sBAAiB,GACjBA,uBAAkB,QAASt5P,EAAI8oQ,gBAA6C,KAA1B9oQ,EAAI6oQ,aAAe,IACrEvP,sBAAiB,GACjBA,uBAAkB,QAASt5P,EAAI8oQ,gBAA6C,KAA1B9oQ,EAAI6oQ,aAAe,IACrEvP,sBAAiB,GACjBA,uBAAkB,QAASt5P,EAAI8oQ,gBAA6C,KAA1B9oQ,EAAI6oQ,aAAe,IACrEvP,sBAAiB,GACjBA,uBAAkB,QAASt5P,EAAI8oQ,gBAA6C,KAA1B9oQ,EAAI6oQ,aAAe,IACrEvP,sBAAiB,GACjBA,uBAAkB,QAASt5P,EAAI8oQ,gBAA6C,KAA1B9oQ,EAAI6oQ,aAAe,IACrEvP,sBAAiB,GACjBA,uBAAkB,QAA+B,MAAtBt5P,EAAIy6P,eAAyB,KAAOz6P,EAAIy6P,eAAehsQ,SAAWuR,EAAIwhQ,kBACjGlI,sBAAiB,GACjBA,uBAAkB,OAAQt5P,EAAImjQ,YAAcnjQ,EAAIkjQ,gBAClD,EAAGtyH,aAAc,CAACi8H,UAAgBA,OAAahJ,GAAeO,IAAkB91Q,OAAQ,CAAC,qxxBAAoyxB6G,cAAe,IAhxB54xB6xQ,CAAoB,KAizBpB8F,GAAoB,MAA1B,MAAMA,EACFjjR,YAAYkE,EAAUg/Q,EAAKz7L,EAAQ07L,EAAO3I,EAAO4I,GAC7CjjR,KAAK+D,SAAWA,EAChB/D,KAAK+iR,IAAMA,EACX/iR,KAAKsnF,OAASA,EACdtnF,KAAKgjR,MAAQA,EACbhjR,KAAKq6Q,MAAQA,EACbr6Q,KAAKijR,SAAWA,EAChBjjR,KAAKkjR,eAAgB,EACrBljR,KAAKmjR,eAAgB,EACrBnjR,KAAKojR,sBAAuB,EAC5BpjR,KAAK29Q,QAAU,QACf39Q,KAAK2+Q,SAAW,OAChB3+Q,KAAKqjR,UAAW,EAChBrjR,KAAKsjR,YAAa,EAClBtjR,KAAK++Q,kBAAoB,GACzB/+Q,KAAK4+Q,gBAAkB,GACvB5+Q,KAAK6+Q,YAAc,QACnB7+Q,KAAK69Q,eAAgB,EACrB79Q,KAAK89Q,eAAiB,OACtB99Q,KAAKqyQ,eAAiB,UACtBryQ,KAAK8+Q,gBAAiB,EACtB9+Q,KAAKw7Q,gBAAkB,QACvBx7Q,KAAKg/Q,oBAAqB,EAC1Bh/Q,KAAKi/Q,qBAAsB,EAC3Bj/Q,KAAKk/Q,wBAAyB,EAC9Bl/Q,KAAKm/Q,WAAa,OAClBn/Q,KAAKo/Q,iBAAmB,KACxBp/Q,KAAKq/Q,2BAA4B,EACjCr/Q,KAAKm5Q,YAAa,EAClBn5Q,KAAK+4Q,eAAiB,KACtB/4Q,KAAK84Q,gBAAkB,qBACvB94Q,KAAKk5Q,gBAAiB,EACtBl5Q,KAAKy4Q,mBAAqB,SAC1Bz4Q,KAAKw4Q,oBAAsB,yBAC3Bx4Q,KAAKk4Q,cAAgB,gBACrBl4Q,KAAK23Q,oBAAsB,yBAC3B33Q,KAAK0wQ,wBAA0B,EAC/B1wQ,KAAK+3Q,qBAAuB,kBAC5B/3Q,KAAK83Q,0BAA4B,uBACjC93Q,KAAKw3Q,kBAAmB,EACxBx3Q,KAAK2wQ,qBAAuB,YAC5B3wQ,KAAKwwQ,sBAAwB,4BAC7BxwQ,KAAKk3Q,yBAA2B,+BAChCl3Q,KAAKujR,cAAgB,IAAIx7O,gBAAa,GACtC/nC,KAAKwjR,eAAiB,IAAIz7O,gBAAa,GACvC/nC,KAAKyjR,eAAiB,IAAI17O,gBAAa,GACvC/nC,KAAK0jR,gBAAkB,IAAI37O,gBAAa,GACxC/nC,KAAK2jR,kBAAoB,IAAI57O,gBAAa,GAC1C/nC,KAAK4jR,gBAAkB,IAAI77O,gBAAa,GACxC/nC,KAAK6jR,iBAAmB,IAAI97O,gBAAa,GACzC/nC,KAAK8jR,kBAAoB,IAAI/7O,gBAAa,GAC1C/nC,KAAK+jR,kBAAoB,IAAIh8O,gBAAa,GAC1C/nC,KAAKgkR,kBAAoB,IAAIj8O,gBAAa,GAC1C/nC,KAAKikR,kBAAoB,IAAIl8O,gBAAa,GAC1C/nC,KAAKkkR,qBAAuB,IAAIn8O,gBAAa,EACjD,CACAo8O,cACInkR,KAAKokR,YACT,CACAC,cACIrkR,KAAKokR,YACT,CACAE,YAAYv6Q,GACR/J,KAAK+5Q,YAAYhwQ,EACrB,CACArC,cACuB,MAAf1H,KAAKukR,SACDvkR,KAAKojR,sBACLpjR,KAAKsnF,OAAO9yB,WAAWx0D,KAAKukR,OAAO16O,UAEvC7pC,KAAKukR,OAAOz4Q,UACZ9L,KAAKukR,OAAS,KACdvkR,KAAKg4N,OAAS,KAEtB,CACAtvL,YAAYC,GACJA,EAAQ06O,WAAarjR,KAAKsjR,aACtB36O,EAAQ06O,SAAS33L,aACjB1rF,KAAKk+Q,aAECv1O,EAAQ06O,SAAS33L,cACvB1rF,KAAKy7Q,eAGT9yO,EAAQ67O,cACJxkR,KAAKg4N,SAAWh4N,KAAKmjR,gBACQ,WAAzBnjR,KAAKw7Q,iBACLx7Q,KAAKg4N,OAAOsmD,gBAAgB31O,EAAQ67O,YAAY94L,cAEpD1rF,KAAKg4N,OAAOs/C,mBAAmB3uO,EAAQ67O,YAAY94L,cAAc,GAC7D1rF,KAAKk/Q,wBAAmD,WAAzBl/Q,KAAKw7Q,iBACpCx7Q,KAAKukR,OAAOE,kBAAkBr4N,iBAGtCpsD,KAAKmjR,eAAgB,IAErBx6O,EAAQuvO,eAAiBvvO,EAAQ8nO,iBAC7BzwQ,KAAKg4N,QACLh4N,KAAKg4N,OAAO4nD,gBAAgB5/Q,KAAKk4Q,cAAel4Q,KAAKywQ,eAGjE,CACAyN,aACI,GAAKl+Q,KAAKkjR,cAmCDljR,KAAKg4N,QACVh4N,KAAKg4N,OAAOkmD,WAAWl+Q,KAAKwkR,iBApCP,CACrB,IAAIxB,EAAQhjR,KAAKgjR,MAGjB,GAFAhjR,KAAKkjR,eAAgB,EACrBljR,KAAKojR,sBAAuB,EACxBpjR,KAAKk/Q,wBAAmD,WAAzBl/Q,KAAKw7Q,gBAA8B,CAClE,MACMkJ,EAAc1kR,KAAK+D,SAASC,IADLhE,KAAKsnF,OAAOzgC,eAAe,GACIjiD,iBACxD8/Q,IAAgB9/Q,iBAChBo+Q,EAAQ0B,EAAY1B,OAAS0B,EAAYC,kBAAoB3kR,KAAKgjR,MAC9DA,IAAUhjR,KAAKgjR,OACfljO,QAAQQ,KAAK,kLAMjBtgD,KAAKojR,sBAAuB,EAGpC,MAAMwB,EAAc5kR,KAAK+iR,IAAI54O,wBAAwB6yO,IACrD,GAAIh9Q,KAAKojR,qBACLpjR,KAAKukR,OAASK,EAAYh5Q,OAAO5L,KAAK+D,UACtC/D,KAAKsnF,OAAO/yB,WAAWv0D,KAAKukR,OAAO16O,UACnCxoC,SAASY,KAAKyG,YAAY1I,KAAKukR,OAAO16O,SAAS6qB,UAAU,QAExD,CACD,MAAM3wD,EAAW8gR,2CAAyC,GAAI7B,EAAMjsO,gBACpE/2C,KAAKukR,OAASvB,EAAM54O,gBAAgBw6O,EAAa,EAAG7gR,EAAU,GAAE,CAEpE/D,KAAKukR,OAAOl7O,SAASo1O,YAAYz+Q,KAAMA,KAAKq6Q,MAAOr6Q,KAAKwkR,YAAaxkR,KAAK29Q,QAAS39Q,KAAK2+Q,SAAU3+Q,KAAKw7Q,gBAAiBx7Q,KAAK4+Q,gBAAiB5+Q,KAAK6+Q,YAAa7+Q,KAAK69Q,cAAe79Q,KAAKqyQ,eAAgBryQ,KAAK89Q,eAAgB99Q,KAAK8+Q,eAAgB9+Q,KAAK++Q,kBAAmB/+Q,KAAKg/Q,mBAAoBh/Q,KAAKi/Q,oBAAqBj/Q,KAAKk/Q,uBAAwBl/Q,KAAKm/Q,WAAYn/Q,KAAKo/Q,iBAAkBp/Q,KAAKq/Q,0BAA2Br/Q,KAAKk4Q,cAAel4Q,KAAKywQ,eAAgBzwQ,KAAK23Q,oBAAqB33Q,KAAK0wQ,wBAAyB1wQ,KAAK+3Q,qBAAsB/3Q,KAAK83Q,0BAA2B93Q,KAAKm5Q,WAAYn5Q,KAAK84Q,gBAAiB94Q,KAAK+4Q,eAAgB/4Q,KAAKk5Q,eAAgBl5Q,KAAKw4Q,oBAAqBx4Q,KAAKy4Q,mBAAoBz4Q,KAAKw3Q,iBAAkBx3Q,KAAKwwQ,sBAAuBxwQ,KAAK2wQ,qBAAsB3wQ,KAAKk3Q,yBAA0Bl3Q,KAAKq6Q,OACrzBr6Q,KAAKg4N,OAASh4N,KAAKukR,OAAOl7O,SACtBrpC,KAAKgjR,QAAUA,GACfhjR,KAAKukR,OAAOE,kBAAkBr4N,eAAa,CAMvD,CACAqvN,cACQz7Q,KAAKg4N,QAAmC,UAAzBh4N,KAAKw7Q,iBACpBx7Q,KAAKg4N,OAAOyjD,aAEpB,CACA2E,YAAYl0Q,GACRlM,KAAKikR,kBAAkBv6O,KAAKx9B,EAChC,CACAg1Q,aAAax4P,GACT1oB,KAAKwjR,eAAe95O,KAAKhhB,GACrBA,EACA1oB,KAAK4jR,gBAAgBl6O,KAAK1pC,KAAKwkR,aAG/BxkR,KAAK6jR,iBAAiBn6O,KAAK1pC,KAAKwkR,YAExC,CACAlE,aAAap0Q,EAAOm3J,GAAS,GACzBrjK,KAAKmjR,cAAgB9/G,EACrBrjK,KAAKgkR,kBAAkBt6O,KAAKx9B,EAChC,CACAi0Q,cAAcj0Q,GACVlM,KAAK+jR,kBAAkBr6O,KAAKx9B,EAChC,CACAq0Q,gBACIvgR,KAAK8jR,kBAAkBp6O,MAC3B,CACA06O,aACI,MAAMn+Q,EAAUjG,KAAKq6Q,MAAMr3N,cACrBnrB,EAAU73B,KAAK++Q,kBAAkBhnQ,OAAQmyB,GAASA,IAASjkC,IAC5DjG,KAAKsjR,aAAezrP,EAAQpzB,gBAClBpD,SAAa,KAAe4E,IAAY5E,SAAS6wK,cACxDlyK,KAAKk+Q,aAECl+Q,KAAKg4N,QAAWh4N,KAAKg4N,OAAO7hK,KAIlCn2D,KAAKy7Q,cAHLz7Q,KAAKk+Q,aAMjB,CACAnE,YAAYhwQ,GACJ/J,KAAKg4N,OACLh4N,KAAKg4N,OAAOs/C,mBAAmBvtQ,EAAMhI,OAAOmK,OAAO,IAGnDlM,KAAKwkR,YAAcz6Q,EAAMhI,OAAOmK,MAChClM,KAAKgkR,kBAAkBt6O,KAAK1pC,KAAKwkR,aAEzC,CACAzD,aAAah3Q,GACT/J,KAAKujR,cAAc75O,KAAK3/B,EAC5B,CACA22Q,cAAc32Q,GACV/J,KAAKyjR,eAAe/5O,KAAK3/B,EAC7B,CACAg2Q,cAAch2Q,GACV/J,KAAK0jR,gBAAgBh6O,KAAK3/B,EAC9B,CACAk2Q,gBAAgBl2Q,GACZ/J,KAAK2jR,kBAAkBj6O,KAAK3/B,EAChC,CACAi3Q,oBAAoB90Q,GAChBlM,KAAKkkR,qBAAqBx6O,KAAKx9B,EACnC,EAEJ42Q,SAAqB79Q,UAAO,SAAsCwW,GAAK,OAAO,IAAKA,GAAKqnQ,GAAsBxT,8BAAyBA,YAAkBA,8BAAyBA,4BAAkCA,8BAAyBA,kBAAwBA,8BAAyBA,oBAA0BA,8BAAyBA,cAAoBA,8BAAyBiM,IAAsB,EACpZuH,EAAqBx4O,UAAqBglO,8BAAyB,CAAE3kQ,KAAMm4Q,EAAsBv4O,UAAW,CAAC,CAAC,GAAI,cAAe,KAAM2vO,aAAc,SAA2C7K,EAAIr5P,GAAgB,EAALq5P,GACvMC,uBAAkB,QAAS,WAA2D,OAAOt5P,EAAImuQ,aAAe,EAAhH7U,CAAmH,QAAS,WAA2D,OAAOt5P,EAAIquQ,aAAe,EAAjN/U,CAAoN,QAAS,SAAuDzP,GAAU,OAAO7pP,EAAIsuQ,YAAYzkB,EAAS,EAChU,EAAGt1D,OAAQ,CAAEozE,QAAS,UAAWgB,SAAU,WAAY0E,SAAU,WAAYC,WAAY,aAAcvE,kBAAmB,oBAAqBH,gBAAiB,kBAAmBC,YAAa,cAAehB,cAAe,gBAAiBC,eAAgB,iBAAkBzL,eAAgB,iBAAkByM,eAAgB,iBAAkBtD,gBAAiB,kBAAmBwD,mBAAoB,qBAAsBC,oBAAqB,sBAAuBC,uBAAwB,yBAA0BC,WAAY,aAAcC,iBAAkB,mBAAoBC,0BAA2B,4BAA6BlG,WAAY,aAAcJ,eAAgB,iBAAkBD,gBAAiB,kBAAmBI,eAAgB,iBAAkBT,mBAAoB,qBAAsBD,oBAAqB,sBAAuBN,cAAe,gBAAiBP,oBAAqB,sBAAuBjH,wBAAyB,0BAA2BqH,qBAAsB,uBAAwBD,0BAA2B,4BAA6BN,iBAAkB,mBAAoB7G,qBAAsB,uBAAwBH,sBAAuB,wBAAyB0G,yBAA0B,2BAA4BsN,YAAa,cAAe/T,eAAgB,kBAAoB0J,QAAS,CAAEoJ,cAAe,gBAAiBC,eAAgB,iBAAkBC,eAAgB,iBAAkBC,gBAAiB,kBAAmBC,kBAAmB,oBAAqBC,gBAAiB,kBAAmBC,iBAAkB,mBAAoBC,kBAAmB,oBAAqBC,kBAAmB,oBAAqBC,kBAAmB,oBAAqBC,kBAAmB,oBAAqBC,qBAAsB,wBAA0BY,SAAU,CAAC,kBAAmBt+P,SAAU,CAAC8oP,oCArN/yDwT,CAAoB,KAiYpBiC,GAAiB,MAAvB,MAAMA,GAENA,SAAkB9/Q,UAAO,SAAmCwW,GAAK,OAAO,IAAKA,GAAKspQ,EAAsB,EACxGA,EAAkB/vQ,UAAqBs6P,6BAAwB,CAAE3kQ,KAAMo6Q,IACvEA,EAAkB9vQ,UAAqBq6P,6BAAwB,CAAEv6P,UAAW,CAACwmQ,IAAqBrmQ,QAAS,CAACC,kBAJtG4vQ,CAAiB,4BCt+DC5/Q,qCAA0CA,2DAAkCA,mDAC5EA,qCAAwCA,uDAA8BA,sDAJxEA,wCAGEA,2CACAA,2CACFA,sEAFSA,sFACAA,+GA2KbA,uCACEA,uCAAwB,cAEpBA,mEACFA,2BACAA,uCACEA,8CASFA,6BAEJA,6FAfWA,+EACLA,2HAIEA,kFAAkC,yBAAlCA,CAAkC,iCAAlCA,CAAkC,cAAlCA,CAAkC,uCAAlCA,CAAkC,mBAAlCA,CAAkC,0CApB9CA,uCACEA,uCAAiG,WAAjGA,CAAiG,cAEPA,+BAAKA,2BAE3FA,uCACEA,8CAIFA,6BAGFA,iFAmBAA,uCAAwB,eACyBA,+BAAKA,2BACpDA,wCACEA,qCACFA,+BAGNA,+EApCaA,iFAIHA,qFAAqC,iCAArCA,CAAqC,0BAMbA,wIA2C9BA,uCACEA,uCAAwB,cAEpBA,mEACFA,2BACAA,uCACEA,8CASFA,6BAEJA,6FAfWA,qFACLA,iIAIEA,wFAAwC,yBAAxCA,CAAwC,uCAAxCA,CAAwC,cAAxCA,CAAwC,6CAAxCA,CAAwC,mBAAxCA,CAAwC,0CAtBpDA,uCACEA,uCAAiG,WAAjGA,CAAiG,cAG3FA,+BACFA,2BAEAA,uCACEA,8CAIFA,6BAGFA,iFAmBAA,uCAAwB,eACyBA,+BAAKA,2BACpDA,wCACEA,qCACFA,+BAGNA,+EAtCaA,uFAMHA,2FAA2C,uCAA3CA,CAA2C,0BAMnBA,8IA4C9BA,uCACEA,uCAAwB,cAIpBA,sBACFA,2BACAA,uCACEA,8CASFA,6BAEJA,6FAhBMA,2FAEAA,0GAIEA,8FAA8C,yBAA9CA,CAA8C,6CAA9CA,CAA8C,cAA9CA,CAA8C,mDAA9CA,CAA8C,mBAA9CA,CAA8C,0CAzB1DA,uCACEA,uCAAoD,WAApDA,CAAoD,cAG9CA,+BACFA,2BAEAA,uCACEA,8CAKFA,6BAGFA,gFAoBFA,2BACFA,+EAlCaA,6FAMHA,iGAAiD,6CAAjDA,CAAiD,yBAAjDA,CAAiD,kDAOzBA,0LAzS1CA,sCAAuC,SAAvCA,CAAuC,UAAvCA,CAAuC,UAG0DA,kCAAQA,6BAGrGA,sCAAwB,UAEpBA,qCACFA,6BAEFA,sCAAwB,UAEpBA,uCACFA,6BAEFA,uCAAwB,WACiEA,iCAAMA,+BAIjGA,wCAAuD,YAAvDA,CAAuD,YAAvDA,CAAuD,YAAvDA,CAAuD,eAISA,gCAAKA,2BAE7DA,wCAAsB,YAAtBA,CAAsB,aAGhBA,qCACFA,6BAEFA,wCAAiB,aAEbA,4CAMFA,iCAINA,wCAAwB,eACgCA,8BAAIA,2BAC1DA,yCACEA,uBACFA,6BAGFA,wCAAwB,eACgCA,4BAAEA,2BACxDA,yCACEA,uBACFA,6BAGFA,wCAAwB,eAEpBA,+CACFA,2BACAA,6CAKFA,2BAEAA,wCAAwB,eAEpBA,yCACFA,2BACAA,6CAKFA,2BAEAA,wCAAwB,eAEpBA,yCACFA,2BACAA,6CAKFA,2BAEAA,wCAAwB,eAEpBA,yCACFA,2BACAA,6CAKFA,2BAEAA,wCAAwB,eACsDA,iCAAMA,2BAClFA,6CAKFA,+BAIJA,wCAAuE,WAAvEA,CAAuE,WAAvEA,CAAuE,WAI/DA,2CACFA,+BAIJA,wCAAuD,YAAvDA,CAAuD,YAAvDA,CAAuD,YAAvDA,CAAuD,eAK7CA,wCACFA,2BACAA,6CAKFA,2BAEAA,wCAAwB,eACoDA,+BAAIA,2BAC9EA,6CAKFA,2BAEAA,wCAAwB,eACuDA,kCAAOA,2BACpFA,6CAKFA,2BAEAA,wCAAwB,eACyDA,oCAASA,2BACxFA,6CAKFA,mCAMRA,wCAAwE,YAAxEA,CAAwE,YAAxEA,CAAwE,YAAxEA,CAAwE,gBAM9DA,mHAASA,2DAAqC,GAE9CA,uBACFA,2BACAA,2CAIEA,mHAASA,2DAAqC,GAE9CA,uBACFA,2BACAA,2CAIEA,mHAASA,2DAAqC,GAE9CA,uBACFA,+BAIJA,qDAyCAA,qDA2CAA,oDAsCFA,6BAGFA,wCAA+D,YAA/DA,CAA+D,YAA/DA,CAA+D,eAGSA,iCAAMA,2BACxEA,wCAAsB,gBAElBA,+HAAiBA,+CAChC,EADeA,CAAoC,oGACvBA,+CAC5B,GAHaA,+BASJA,yCAAwB,gBAC0BA,oCAAQA,2BACxDA,yCACEA,qCACFA,oCAAM,6CA5TgBA,4EAabA,4HAWPA,kGAOAA,mGAKKA,oFAILA,uFAAuC,qCAAvCA,CAAuC,cAAvCA,CAAuC,qBAOlCA,8EAILA,iFAAiC,+BAAjCA,CAAiC,cAAjCA,CAAiC,qBAO5BA,8EAILA,iFAAiC,+BAAjCA,CAAiC,cAAjCA,CAAiC,qBAO5BA,8EAILA,iFAAiC,+BAAjCA,CAAiC,cAAjCA,CAAiC,qBAO5BA,uEAELA,0EAA0B,wBAA1BA,CAA0B,cAA1BA,CAA0B,qBAqBjBA,8EAILA,gFAAgC,8BAAhCA,CAAgC,cAAhCA,CAAgC,qBAO3BA,qEAELA,wEAAwB,sBAAxBA,CAAwB,cAAxBA,CAAwB,qBAOnBA,wEAELA,2EAA2B,yBAA3BA,CAA2B,cAA3BA,CAA2B,qBAOtBA,0EAELA,6EAA6B,2BAA7BA,CAA6B,cAA7BA,CAA6B,qBAe/BA,wJAEAA,uEACAA,8FAGAA,0JAIAA,yEACAA,gGAGAA,gKAIAA,+EACAA,sGAKSA,iHAyCAA,mHA2CAA,yHA+CTA,oFAAoC,gCAWXA,2FC/UtC,IAAM6/Q,GAAuB,MAA9B,MAAOA,EAOXnlR,YACUkwI,EACAsmG,EACA1sM,EACAyoN,GAHApyP,mBACAA,wBACAA,WACAA,UARVA,6BAAkCivQ,QACfjvQ,2BAAwBivQ,GACxBjvQ,gBAAaulQ,GAQ9BvlQ,KAAKq2O,iBAAiB4uC,gCAAgC1sQ,UAAUynH,IAC9DhgI,KAAKklR,WAAWllJ,EAAQ,EAE5B,CAEAmlJ,WACEnlR,KAAKolR,YAAcplR,KAAKoyP,GAAG9zN,MAAM,CAC/Bl7B,KAAMpD,KAAKoyP,GAAGviP,QAAQ7P,KAAK68G,OAAOz5G,MAAQ,GAAI,CAACsvP,uBAAqB1yP,KAAKqlR,yBAE7E,CAEIC,kBACF,OAAOtlR,KAAKolR,YAAeplR,KAAKolR,YAAYphR,IAAI,QAAiC,IACnF,CAEAilC,WAEEjpC,KAAKolR,YAAcplR,KAAKoyP,GAAG9zN,MAAM,CAAEl7B,KAAMpD,KAAKoyP,GAAGviP,QAAQ,MAEzD08C,EAAE,gBAAgBC,GAAG,gBAAiBrkD,GAChCnI,KAAKolR,YAAY/lE,SACnBl3M,EAAE6B,iBACF7B,EAAE4tL,2BACF/1L,KAAKslR,YAAY5oB,eACV,IAGT18P,KAAKqjQ,QACE,GAEX,CAEA6hB,WAAWllJ,GACThgI,KAAK68G,OAAS,KACd78G,KAAK2pC,IAAIyiB,gBACTpsD,KAAK68G,OAAS78G,KAAK+vI,YAAYle,YAAY51B,4BAA4B4gB,GAC9DA,EAAO3xG,KAAO80H,GACpB,GAEHhgI,KAAKmlR,WACLnlR,KAAK2pC,IAAIyiB,gBAETG,EAAE,gBAAgBI,MAAM,OAC1B,CAEA02M,OACErjQ,KAAK68G,OAAOz5G,KAAOpD,KAAKslR,YAAYp5Q,MAAMqN,OAC1CvZ,KAAK+vI,YAAY/B,WAAWhuI,KAAK68G,OACnC,CAEAwoK,sBACE,OAAQx1Q,GAEJ7P,KAAK68G,OAAO/yB,UAAUmS,4BACpBtyF,GAAKA,EAAEvG,OAASyM,EAAQ3D,MAAMqN,QAAU5P,EAAEuB,KAAOlL,KAAK68G,OAAO3xG,IAC7DzG,OAEK,CAAE8gR,QAAQ,GAEZ,IAEX,CAEAC,uBAAuBzjR,GACrB/B,KAAKylR,wBAA2B1jR,EAA6BqB,IAC/D,CAACjD,kDA9EU6kR,GAAuBl3P,0OAAvBk3P,EAAuBz6O,m4FDbpCplC,sCAAwG,UAAxGA,CAAwG,UAAxGA,CAAwG,UAAxGA,CAAwG,aAAxGA,CAAwG,YAKrEA,6BAAOA,6BAElCA,qCAA8BA,2CAAkBA,6BAElDA,4CA0VFA,sCA1V2BA,w4BCIlB6/Q,CAAuB,KCFvBU,GAAqB,MAA5B,MAAOA,EAGX7lR,YACUkwI,EACA9L,EACAoyG,EACAnsG,GAHAlqI,mBACAA,+BACAA,wBACAA,kBACP,CAEH2lR,eACM3lR,KAAK+vI,YAAYle,YAAYrP,qBAAqBnG,kBACpDr8G,KAAKq2O,iBAAiB5hG,sBAIxB7zF,WAAW,KAET5gD,KAAK+vI,YAAYle,YAAYtP,iBAAiBviH,KAAKikI,wBAAwBnN,YAAY5uC,MAAMkyC,UAC7Fp6H,KAAKkqI,YAAYtE,aACf5lI,KAAK+vI,YAAYn4H,QAAQu3G,MACzBnvH,KAAK+vI,YAAYpB,gBACjB,GAAG3uI,KAAK6lI,UAAY,iBAEtBt5E,EAAE,kBAAkBI,MAAM,OAAM,EAC/B,IACL,CAACxsD,kDA1BUulR,GAAqB53P,sMAArB43P,EAAqBn7O,yrBCXlCplC,sCAAuG,UAAvGA,CAAuG,UAAvGA,CAAuG,UAAvGA,CAAuG,aAAvGA,CAAuG,YAKpEA,6BAAOA,6BAElCA,qCAAwBA,uCAAcA,6BAExCA,sCAAwB,WAAxBA,CAAwB,WAAxBA,CAAwB,eAGAA,+BAAKA,2BACvBA,0CAAOA,yEAAPA,iCAINA,wCAA0B,gBAC2CA,+BAAKA,2BACxEA,2CAA4DA,iDAAS6Q,gBAAc,GAAE7Q,8BAAIA,0CAN9EA,uJDFNugR,CAAqB,KEDrBE,GAAwB,MAA/B,MAAOA,EACX/lR,YACU26I,EACAvQ,EACAhG,EACAmG,EACAmuG,GAJAv4O,YACAA,2BACAA,+BACAA,4BACAA,yBACP,CAEH6lR,KAAK1jJ,EAA2B+zG,EAAmB4vC,GACjD9lR,KAAKw6I,KAAK5iI,QAAU5X,KAAKiqI,oBAAoB7K,YAAY+C,GACzD,MAAMtQ,EAAc7xH,KAAKw6I,KAAK5iI,QAAQu3G,MAAM,GAC5CnvH,KAAKw6I,KAAK3oB,YAAcA,EAEnBA,EAAYrP,uBAEfqP,EAAYnP,mBAAmB,IAAIvG,GAAU,GAAI0V,IACjDA,EAAYjP,mBAAmBiP,EAAYrP,qBAAqBt3G,IAChE2mH,EAAYvmC,WAAWumC,EAAYrP,uBAGjC0zH,IAAarkH,EAAYzuH,OAC3ByuH,EAAYzuH,KAAO8yO,EAAStsO,QAAQ,YAAa,IAAI2P,QAIvDvZ,KAAKw6I,KAAKhO,oBACVxsI,KAAKw6I,KAAK/N,0BAA0B,CAAEC,sBAAsB,IAC5D1sI,KAAKoqI,qBAAqBlG,oBAAoBrS,GAE9CA,EAAYrR,iBAAiBU,WAAW2K,eAAegG,EAAYrW,YAE9DsqK,GACH9lR,KAAKw6I,KAAKjjB,gBAAgB1F,GAG5B7xH,KAAKikI,wBAAwBzK,YAE7Bx5H,KAAK+lR,gBACL/lR,KAAKw6I,KAAK5iI,QAAQs+N,SAAWA,CAC/B,CAEQ6vC,gBACN,UAAWl0J,KAAe7xH,KAAKw6I,KAAK5iI,QAAQu3G,MAAO,CACjD,MAAM62J,EAAsBn0J,EAAYvT,cAAc30G,IAC5CA,EAAEsjF,iBAIZntC,QAAQyW,KACNyvN,EAAoBvhR,OACpB,0DACAotH,EAAYzuH,MAId,QAASoB,EAAI,EAAGA,EAAIwhR,EAAoBvhR,OAAQD,IAC9CqtH,EAAYp1B,gBAAgBupL,EAAoBxhR,IAGlD,MAAMyhR,EAAyBp0J,EAAYrT,iBAAiBp9D,QAC7BnzC,IAAtBmzC,EAAE+yC,iBAAiC/yC,EAAEl2C,KAAO2mH,EAAYlP,sBAIjE7iE,QAAQyW,KAAK0vN,EAAuBxhR,OAAQ,gDAAiDotH,EAAYzuH,MAEzG,QAASoB,EAAI,EAAGA,EAAIyhR,EAAuBxhR,OAAQD,IACjDqtH,EAAYp1B,gBAAgBwpL,EAAuBzhR,GAAE,CAG3D,CAACrE,kDAvEUylR,GAAwB93P,8LAAxB83P,EAAwBxgR,QAAxBwgR,EAAwB,mBAAxBA,CAAwB,KCQxBM,GAAqB,MAA5B,MAAOA,EACXrmR,YACUkwI,EACAve,EACA0Y,EACAmsG,EACApyG,EACAxS,EACA00J,GANAnmR,mBACAA,kBACAA,mBACAA,wBACAA,+BACAA,yBACAA,wBACP,CAEHomR,eAEOC,OAAStlG,aAAeulG,WAAahpQ,OACxCipQ,MAAM,yDAGR,MAAMp/P,EAA0B9lB,SAAS8zO,eAAe,iBAExD,GAAKhuN,EAC0C,GACnCA,EAAMy5J,MAAM,GAEjB,CACL,MAAM16C,EAAO/+G,EAAMy5J,MAAM,GACnB4lG,EAAK,IAAIzlG,WAEfylG,EAAGxlG,OAAS74K,IACVnI,KAAKymR,eAAqBt+Q,EAAGpG,OAAOuP,OAAQ40H,EAAK9iI,KAAI,EAEvDpD,KAAKkqI,YACF7D,SAASH,GACT/hI,KAAKuiR,IACJ1mR,KAAK2mR,UAAUD,EAAOxgJ,EAAK9iI,MAC3BpD,KAAK4mR,aAAa1gJ,GAClBlmI,KAAKwxH,WAAWj7D,KAAK,8BAA6B,GAEnDzU,MAAM35C,IAEL23C,QAAQQ,KAAKn4C,GACbq+Q,EAAGvlG,WAAW/6C,EAAI,GAEtB35E,EAAE,kBAAkBI,MAAM,QAC1B3sD,KAAKyxH,kBAAkBt7D,KAAK,CAAEr2C,QAAS,gBAAgB,MArBvDymQ,MAAM,oDAFNA,MAAM,wCAyBV,CAEAE,eAAeC,EAAO7gJ,GACpB7lI,KAAKmmR,kBAAkBN,KAAKa,EAAO7gJ,GAAU,GAC7C7lI,KAAKwxH,WAAWR,kBAChBhxH,KAAKwxH,WAAWj7D,KAAK,8BACvB,CAEAowN,UAAUD,EAAO7gJ,GACf7lI,KAAKmmR,kBAAkBN,KAAKa,EAAO7gJ,GAAU,EAC/C,CAEA+gJ,aAAa1gJ,GACXlmI,KAAK+vI,YAAYn4H,QAAQu3G,MAAMxpH,QAAQ,CAAC2xB,EAAGjmB,KACzCrR,KAAKkqI,YAAY5D,QAAQJ,EAAM5uG,EAAEl0B,MAAQ,WAAWe,KAAKm+G,IAQvD,GANAhrF,EAAEirF,iBAAiBD,GAInBhrF,EAAEonF,yBAAyBlC,eAAe8F,GAE5B,IAAVjxG,EAAa,CACfrR,KAAKikI,wBAAwB5J,gBAAgB/X,GAC7CtiH,KAAKikI,wBAAwB9K,iBAAiB7hG,GAAG,GACjD,MAAM4jG,EAAY5jG,EAAEk4E,qBAAsB3W,GACjCA,EAAGtN,WAAa0D,iBAAqC4J,EAAGsK,iBAIjEnjG,KAAKikI,wBAAwBhJ,gBAAgBC,GAC7Cl7H,KAAKq2O,iBAAiBvhG,mCAAiC,IAK3D,UAAW5U,KAAO5oG,EAAEmnF,cAAe,CACjC,MAAMrC,EAAY9kF,EAAEmnF,cAAcyhB,GAC9B9jB,EAAUjoB,gBACZn0F,KAAK6mR,kBAAkBzqK,EAAW9kF,EAAG4uG,GAErC9pB,EAAUI,eAAellF,EAAE+qF,mBAAkB,GAIrD,CAEAwkK,kBAAkBzqK,EAAsB9kF,EAAS4uG,GAC/ClmI,KAAKkqI,YACF5D,QAAQJ,EAAM,GAAG9pB,EAAUjoB,mBAAmB78D,EAAEpsB,MAChD/G,KAAKm+G,GAAWlG,EAAUI,eAAe8F,IACzCxgE,MAAM,KAEL9hD,KAAKkqI,YAAY5D,QAAQJ,EAAM9pB,EAAUjoB,iBAAiBhwF,KAAKm+G,GAAWlG,EAAUI,eAAe8F,GAAQ,EAEjH,CAACniH,kDApGU+lR,GAAqBp4P,4SAArBo4P,EAAqB37O,unBClBlCplC,sCAAuG,UAAvGA,CAAuG,UAAvGA,CAAuG,UAAvGA,CAAuG,aAAvGA,CAAuG,YAKpEA,6BAAOA,6BAElCA,qCAAwBA,wCAAeA,6BAEzCA,sCACEA,oCACFA,2BACAA,uCAA0B,gBACoCA,iDAAS6Q,cAAY,GAAE7Q,8BAAIA,2BACvFA,2CAAmEA,+BAAKA,8CDInE+gR,CAAqB,qBER3B,IAAMY,GAAmB,MAA1B,MAAOA,EAIXjnR,YAAoB2xH,qBAFZxxH,mBAAgB,EAGtBA,KAAKwxH,WAAWu1J,kBAAkBxuQ,UAAWuH,IAC3C9f,KAAKgnR,cAAclnQ,EAAQA,QAASA,EAAQ6wG,SAAU7wG,EAAQ8wG,WAC9D5wH,KAAKinR,gBACLjnR,KAAKknR,8BAA4B,GAGnClnR,KAAKwxH,WAAW21J,6BAA6B5uQ,UAAWu4G,IACtD,UAAWhxG,KAAWgxG,EACpB9wH,KAAKgnR,cAAclnQ,EAAQA,QAASA,EAAQ6wG,SAAU7wG,EAAQ8wG,WAC9D5wH,KAAKinR,gBAGPjnR,KAAKknR,8BAA4B,GAGnClnR,KAAKwxH,WAAW41J,uBAAuB7uQ,UAAU,KAC/CvY,KAAK+wH,iBAAe,GAGtB/wH,KAAKwxH,WAAW61J,uBAAuB9uQ,UAAU,KAC/CvY,KAAKgxH,kBACLhxH,KAAK+wH,iBAAe,EAExB,CAEA1kE,kBACErsD,KAAKsnR,cAAgB/6N,EAAE,cACzB,CAEQy6N,cAAclnQ,EAAiB6wG,EAAkBC,GAElDA,IACHA,EAAY,IAAI7nG,MAGlB/oB,KAAKsnR,cAAcrtQ,OACjB,eAAe02G,QAAeA,QAAe42J,GAAO32J,GAAWziC,OAAO,4BAA4BruE,WAGpG9f,KAAKsnR,cAAc3sH,UAAU36J,KAAKsnR,cAAc,GAAGzrH,aACrD,CAEAqrH,+BACOlnR,KAAKsnR,cAAcn+L,GAAG,aACzBnpF,KAAKwnR,sBAET,CAEAA,uBACE,MAAMC,EAAcl7N,EAAE,eAEjBk7N,EAAYt+L,GAAG,aAClBs+L,EAAYtxN,OAGdsxN,EACGC,KAAK,GAAG1nR,KAAKinR,iBACbv7H,OAAO,UACPi8H,QAAQ,iBACRj+L,IAAI,CAAE+2G,aAAc,GAAGgnF,EAAYhvN,QAAU,QAClD,CAEQs4D,kBACN/wH,KAAKinR,cAAgB,EACrB16N,EAAE,eAAem7N,KAAK,IAAIh/L,OAAOi/L,QAAQ,iBAAiBj+L,IAAI,CAAE+2G,aAAc,IAE9EzgM,KAAKsnR,cAAc3sH,UAAU36J,KAAKsnR,cAAc,GAAGzrH,aACrD,CAEQ7qC,kBACNhxH,KAAKsnR,cAAcI,KAAK,GAC1B,CAACvnR,kDA5EU2mR,GAAmBh5P,gGAAnBg5P,EAAmBv8O,wGCVhCplC,yYDUa2hR,CAAmB,4BET9B3hR,uCACEA,+BACAA,iCACFA,mDACAA,uCACEA,+BACAA,qCACFA,mDAIAA,uCACGA,+BAA8BA,mDAAyBA,4BCLrD,IAAMyiR,GAA4B,MAAnC,MAAOA,EACX/nR,YAAoBkwI,qBAA2B,CAE3Cle,kBACF,OAAO7xH,KAAK+vI,YAAYle,WAC1B,CAEIgmH,2BACF,OAAO73O,KAAK6xH,YAAYlyB,kBAC1B,CAACx/F,kDATUynR,GAA4B95P,gGAA5B85P,EAA4Br9O,oWDRzCplC,sCACEA,0CAIAA,0CAIFA,2BAEAA,sCACEA,0CAGFA,kCAdSA,+EAIAA,gFAOAA,sTCJIyiR,CAA4B,KCG5BC,GAAkB,MAAzB,MAAOA,EACXhoR,YACU2xH,EACAyS,EACA8L,GAFA/vI,kBACAA,+BACAA,kBACP,CAEHqsD,kBACE+kM,OAAO,eAAe02B,eAAe,CACnCh3N,IAAK,GACL3lC,IAAK,IACLpR,KAAM,EACNguQ,cAAc,EACdriN,KAAM,GACNsiN,aAAa,EACbzxB,SAAU7qP,IACR1L,KAAKikI,wBAAwBnN,YAAYi2D,MAAQrhL,EAAKqO,QAG1D,MAAMkuQ,EAAgB17N,EAAE,iBAExB07N,EAAcz7N,GAAG,QAASrkD,IACxB,MAAM+/Q,EAAc37N,EAAEpkD,EAAEggR,gBAClBC,EAAe77N,EAAE27N,EAAYx8Q,KAAK,aAClC28Q,EAAqBD,EAAaj/L,GAAG,YAC3Ci/L,EAAa1/L,OAER2/L,IACHD,EAAajyN,OACbn2D,KAAKikI,wBAAwBqkH,SAASlxH,iBAExC6wJ,EAAc36Q,YAAY,UAC1B46Q,EAAY96Q,SAAS,SAAQ,GAG/Bm/C,EAAE,0BAA0BC,GAAG,QAAS,KACtCD,EAAE,oBAAoBm8B,OACtBu/L,EAAc36Q,YAAY,SAAQ,EAEtC,CAEAyjH,kBACE/wH,KAAKwxH,WAAWT,iBAClB,CAEAC,kBACEhxH,KAAKwxH,WAAWR,iBAClB,CAEI8oH,qBACF,OAAO95O,KAAK+vI,YAAYn4H,OAC1B,CAACzX,kDAnDU0nR,GAAkB/5P,oKAAlB+5P,EAAkBt9O,u3CCX/BplC,sCAA6B,UAA7BA,CAA6B,UAA7BA,CAA6B,UAA7BA,CAA6B,UAA7BA,CAA6B,UAA7BA,CAA6B,UAA7BA,CAA6B,UAA7BA,CAA6B,SASXA,+BACFA,6BAEFA,oCAAIA,kCAAQA,6BAEdA,wCACEA,qCAAgE,aAElEA,mCAKRA,wCAA8C,YAA9CA,CAA8C,YAA9CA,CAA8C,WAA9CA,CAA8C,WAA9CA,CAA8C,WAA9CA,CAA8C,UAOhCA,gCACFA,2BACAA,sCAAiBA,iDAAS6Q,mBAAiB,GACzC7Q,iCACFA,6BAEFA,oCAAIA,gCAAMA,6BAEZA,wCACEA,4CACFA,uCAQZA,wCAAwB,WAAxBA,CAAwB,YAAxBA,CAAwB,YAAxBA,CAAwB,YAAxBA,CAAwB,cASZA,iDAAS6Q,mBAAiB,GAC1B7Q,oCAASA,yCAAkCA,iCAAgCA,2BAC3EA,mCACFA,+BAGJA,wCAAmE,cACLA,iDAAS6Q,mBAAiB,GACpF7Q,kCACAA,wCACEA,oCACFA,6BAEFA,oCAA+B,gCAI/BA,wCAAoE,cACXA,uBAA6BA,4CAA7BA,y1CD/DpD0iR,CAAkB,KETzB,MAAOS,GAMXzoR,YAAYqM,EAAe9I,EAAcmlR,GACvCvoR,KAAKkM,MAAQA,EACblM,KAAKoD,KAAOA,EACZpD,KAAKuoR,YAAcA,CACrB,CAEAC,oBAAoBlyL,GAClBt2F,KAAKs2F,iBAAmBA,CAC1B,EAGI,MAAOmyL,WAAuBH,GAGlCzoR,YAAYqM,EAAew8Q,EAA6CtlR,EAAcmlR,GACpFzoR,MAAMoM,EAAO9I,EAAMmlR,GACnBvoR,KAAK0oR,wBAA0BA,CACjC,EAII,MAAOC,WAA4BF,GAGvC5oR,YAAYqM,EAAe9I,EAAcwlR,EAA2BL,GAClEzoR,MAAMoM,OAAO+B,EAAW7K,EAAMmlR,GAC9BvoR,KAAKu0I,sBAAwBq0I,CAC/B,ECjCI,MAAOC,GAMXhpR,YAAYuD,EAAc8H,GAH1BlL,UAAsB,GAIpBA,KAAKkL,GAAKA,EACVlL,KAAKoD,KAAOA,EACZpD,KAAKkkB,MAAQ,CACf,CAEA4kQ,UAAUC,GACR/oR,KAAK0L,KAAK9C,KAAKmgR,GACf/oR,KAAKkkB,OAAS6kQ,EAAG78Q,KACnB,ECFI,MAAO88Q,GAUXnpR,YAAYy3B,GAPZt3B,4BAAwC,GACxCA,wBAAsC,GACtCA,wCAAsD,GAMpDA,KAAKipR,WAAW3xP,EAClB,CAEA2xP,WAAW3xP,GACTt3B,KAAK07G,SAAW,EAEhB,MAAMwtK,EAAa,IAAIZ,GACrB,EACAr5L,6BACAA,sBAEIk6L,EAAa,IAAIN,GACrB55L,6BACAA,sBAGIm6L,EAAU,IAAId,GAAY,EAAGr5L,oBAAuCA,aACpEo6L,EAAU,IAAIR,GAAc55L,oBAAuCA,aAEnEq6L,EAAU,IAAIhB,GAAY,EAAGr5L,oBAAuCA,aACpEs6L,EAAU,IAAIV,GAAc55L,oBAAuCA,aAEnEu6L,EAAc,IAAIlB,GACtB,EACAr5L,wBACAA,iBAEIw6L,EAAc,IAAIZ,GAAc55L,wBAA2CA,iBAE3Ey6L,EAAU,IAAIpB,GAAY,EAAGr5L,oBAAuCA,aACpE06L,EAAU,IAAId,GAAc55L,oBAAuCA,aAEnE26L,EAAc,IAAItB,GACtB,EACAr5L,wBACAA,iBAEI46L,GAAc,IAAIhB,GAAc55L,wBAA2CA,iBAE3E66L,GAAwB,IAAIxB,GAChC,EACAr5L,kCACAA,2BAGI86L,GAAwB,IAAIlB,GAChC55L,kCACAA,2BAGI+6L,GAAsB,IAAI1B,GAC9B,EACAr5L,gCACAA,yBAGIg7L,GAAsB,IAAIpB,GAC9B55L,gCACAA,yBAGIi7L,GAAuB,IAAI5B,GAC/B,EACAr5L,iCACAA,0BAGIk7L,GAAuB,IAAItB,GAC/B55L,iCACAA,0BAGIyI,GAAQpgE,EAAEk4E,qBAAsB3W,IAC7BA,GAAGtN,WAAa0D,cAAkC4J,GAAGtN,WAAa0D,iBAG3E,UAAW4J,MAAMnB,GAAO,CACtB,OAAQmB,GAAGtN,UACT,KAAK0D,qBACHi6L,EAAWh9Q,OAAS2sF,GAAGvB,aAAaprF,MACpCi9Q,EAAWL,UAAU,IAAIL,GAAe5vL,GAAGvB,aAAaprF,MAAO2sF,GAAGgD,6BAA8BhD,GAAGz1F,OACnG,MAEF,KAAK6rF,YACHm6L,EAAQl9Q,OAAS2sF,GAAGvB,aAAaprF,MACjCm9Q,EAAQP,UAAU,IAAIL,GAAe5vL,GAAGvB,aAAaprF,MAAO2sF,GAAGgD,6BAA8BhD,GAAGz1F,OAChG,MAEF,KAAK6rF,YACHq6L,EAAQp9Q,OAAS2sF,GAAGvB,aAAaprF,MACjCq9Q,EAAQT,UAAU,IAAIL,GAAe5vL,GAAGvB,aAAaprF,MAAO2sF,GAAGgD,6BAA8BhD,GAAGz1F,OAChG,MAEF,KAAK6rF,gBACHu6L,EAAYt9Q,OAAS2sF,GAAGvB,aAAaprF,MACrCu9Q,EAAYX,UAAU,IAAIL,GAAe5vL,GAAGvB,aAAaprF,MAAO2sF,GAAGgD,6BAA8BhD,GAAGz1F,OACpG,MAEF,KAAK6rF,YACHy6L,EAAQx9Q,OAAS2sF,GAAGvB,aAAaprF,MACjCy9Q,EAAQb,UAAU,IAAIL,GAAe5vL,GAAGvB,aAAaprF,MAAO2sF,GAAGgD,6BAA8BhD,GAAGz1F,OAChG,MAEF,KAAK6rF,gBACH,MAAM29J,GAAM/zJ,GACZ+wL,EAAY19Q,OAAS2sF,GAAGvB,aAAaprF,MACrC,MAAMk+Q,GAAc,IAAI3B,GACtB5vL,GAAGvB,aAAaprF,MAChB2sF,GAAGgD,6BACHhD,GAAGz1F,KACHwpP,GAAIt2J,iBAAmBuC,GAAG3tF,QAAK+C,GAGjCm8Q,GAAY5B,oBAAoB57B,GAAIt2J,kBAEpCuzL,GAAYf,UAAUsB,IACtB,MAEF,KAAKn7L,0BACH66L,GAAsB59Q,OAAS2sF,GAAGvB,aAAaprF,MAC/C69Q,GAAsBjB,UACpB,IAAIL,GAAe5vL,GAAGvB,aAAaprF,MAAO2sF,GAAGgD,6BAA8BhD,GAAGz1F,OAEhF,MAEF,KAAK6rF,wBACH+6L,GAAoB99Q,OAAS2sF,GAAGvB,aAAaprF,MAC7C+9Q,GAAoBnB,UAClB,IAAIL,GAAe5vL,GAAGvB,aAAaprF,MAAO2sF,GAAGgD,6BAA8BhD,GAAGz1F,OAEhF,MAEF,KAAK6rF,yBACHi7L,GAAqBh+Q,OAAS2sF,GAAGvB,aAAaprF,MAC9Ci+Q,GAAqBrB,UACnB,IAAIL,GAAe5vL,GAAGvB,aAAaprF,MAAO2sF,GAAGgD,6BAA8BhD,GAAGz1F,OAIhFy1F,GAAGvB,eACLt3F,KAAK07G,UAAY7iB,GAAGvB,aAAaprF,OAIrClM,KAAK27G,eAAiB37G,KAAK07G,SAAWouK,GAAsB59Q,MAC5DlM,KAAKqqR,uBAAuBzhR,KAAKsgR,GACjClpR,KAAKqqR,uBAAuBzhR,KAAKwgR,GACjCppR,KAAKqqR,uBAAuBzhR,KAAK0gR,GACjCtpR,KAAKqqR,uBAAuBzhR,KAAK4gR,GACjCxpR,KAAKqqR,uBAAuBzhR,KAAK8gR,GACjC1pR,KAAKqqR,uBAAuBzhR,KAAKghR,GACjC5pR,KAAKqqR,uBAAuBzhR,KAAKshR,IACjClqR,KAAKqqR,uBAAuBzhR,KAAKkhR,IACjC9pR,KAAKqqR,uBAAuBzhR,KAAKohR,IAEjChqR,KAAKsqR,mBAAmB1hR,KAAKugR,GAC7BnpR,KAAKsqR,mBAAmB1hR,KAAKygR,GAC7BrpR,KAAKsqR,mBAAmB1hR,KAAK2gR,GAC7BvpR,KAAKsqR,mBAAmB1hR,KAAK6gR,GAC7BzpR,KAAKsqR,mBAAmB1hR,KAAK+gR,GAC7B3pR,KAAKsqR,mBAAmB1hR,KAAKihR,IAC7B7pR,KAAKsqR,mBAAmB1hR,KAAKuhR,IAC7BnqR,KAAKsqR,mBAAmB1hR,KAAKmhR,IAC7B/pR,KAAKsqR,mBAAmB1hR,KAAKqhR,IAE7B,MAAMp/L,GAAK6M,GAAMjzF,OAAS,EAAIizF,GAAM,GAAGJ,aAAe,KAEtD,UAAW/oE,MAAKs7P,GAAYn+Q,KAC1B1L,KAAKuqR,mCAAmC3hR,KAAK5I,KAAKwqR,mBAAmBj8P,GAAEnrB,KAAMmrB,GAAEg6P,YAAajxP,IAG1FuzD,KACF7qF,KAAKm/D,KAAOuuB,cAAcgK,MAAMC,aAAaC,MAC7C53F,KAAKktF,SAAWrC,GAAGqC,SACnBltF,KAAKyqR,oBAAoB5/L,GAAG8C,mBAEhC,CAEA88L,oBAAoB/iK,GAClB,UAAWgjK,KAAgB1qR,KAAKqqR,uBAI9BK,EAAax+Q,MAAQwhF,cAAcI,iBACjCJ,cAAc1tF,KAAKktF,UAAUW,QAAQ68L,EAAax+Q,MAAOw7G,EAAc1nH,KAAKm/D,MAAMoR,QAAQ1hD,YAI9F,UAAW87P,KAAO3qR,KAAKsqR,mBACrB,UAAWM,KAAWD,EAAIj/Q,KACxBk/Q,EAAQ1+Q,MAAQwhF,cAAcI,iBAC5BJ,cAAc1tF,KAAKktF,UAAUW,QAAQ+8L,EAAQ1+Q,MAAOw7G,EAAc1nH,KAAKm/D,MAAMoR,QAAQ1hD,YAK3F,UAAW87P,KAAO3qR,KAAKuqR,mCAAoC,CACzD,UAAWK,KAAWD,EAAIj/Q,KACxBk/Q,EAAQ1+Q,MAAQwhF,cAAcI,iBAC5BJ,cAAc1tF,KAAKktF,UAAUW,QAAQ+8L,EAAQ1+Q,MAAOw7G,EAAc1nH,KAAKm/D,MAAMoR,QAAQ1hD,YAIzF87P,EAAIzmQ,MAAQwpE,cAAcI,iBACxBJ,cAAc1tF,KAAKktF,UAAUW,QAAQ88L,EAAIzmQ,MAAOwjG,EAAc1nH,KAAKm/D,MAAMoR,QAAQ1hD,WAAU,CAI/F7uB,KAAK07G,SAAWhuB,cAAcI,iBAC5BJ,cAAc1tF,KAAKktF,UAAUW,QAAQ7tF,KAAK07G,SAAUgM,EAAc1nH,KAAKm/D,MAAMoR,QAAQ1hD,YAGvF7uB,KAAK27G,eAAiBjuB,cAAcI,iBAClCJ,cAAc1tF,KAAKktF,UAAUW,QAAQ7tF,KAAK27G,eAAgB+L,EAAc1nH,KAAKm/D,MAAMoR,QAAQ1hD,WAE/F,CAEA27P,mBAAmBK,EAAsBn4I,EAAoBp7G,GACtDuzP,IACHA,EAAevzP,EAAEioE,iBAAiBmzC,GAAYtvI,MAGhD,MAAM0nR,EAAU,IAAIjC,GAAcgC,EAAcn4I,GAE1Cq4I,EAAuCzzP,EAAEk4E,qBAAqB3W,GAC3DA,EAAG7D,cAAgB09C,KAAgB75C,aAAc4I,IAAY5I,aAAc4F,KAG9EusL,EAAqBD,EAAqChzQ,OAAO8gF,GAAMA,EAAGvC,kBAEhF,UAAW20L,KAAOD,EAAoB,CACpC,MAAME,EAA6B5zP,EAAEk4E,qBAAqB3W,GAAMA,EAAG7D,cAAgBi2L,EAAI//Q,IACvF6/Q,EAAqCniR,QAAQsiR,EAA0B,CAGzE,UAAWryL,KAAMkyL,EAEXlyL,EAAGvC,mBAIHuC,aAAcrC,IAEPqC,aAAcqb,GAGdrb,aAAcya,IAEdza,aAAc2c,KANvBs1K,EAAQhC,UAAU,IAAIH,GAAoB9vL,EAAGvB,aAAaprF,MAAO2sF,EAAGz1F,KAAMy1F,EAAG1C,2BAWjF,OAAO20L,CACT,EC9QI,MAAOK,GAKXtrR,YAAYy3B,GAFZt3B,UAA2B,GAGzBA,KAAKipR,WAAW3xP,EAClB,CAEA2xP,WAAW3xP,GACTt3B,KAAKkkB,MAAQ,EAEb,MAAMknQ,EAAa9zP,EAAEk4E,qBAAsB3W,GAClCA,EAAGtN,WAAa0D,iBAGnBo8L,EAAsB/zP,EAAEk4E,qBAAsB3W,GAC3CA,EAAGtN,WAAa0D,2BAGzB,UAAW4J,KAAMuyL,EAAY,CAC3B,MAAMzhR,EAAIkvF,EAAGsD,mBACbn8F,KAAKkkB,OAASva,EAAEuC,MAChBlM,KAAK0L,KAAK9C,KAAK,IAAI0/Q,GAAY56L,cAAcI,iBAAiBnkF,EAAE2kF,sBAAqB,GAAM,IAASuK,EAAGz1F,MAAK,CAE9G,UAAWy1F,KAAMwyL,EAAqB,CACpC,MAAM1hR,EAAIkvF,EAAGsD,mBACbn8F,KAAKkkB,OAASva,EAAEuC,MAChBlM,KAAK0L,KAAK9C,KAAK,IAAI0/Q,GAAY56L,cAAcI,iBAAiBnkF,EAAE2kF,sBAAqB,GAAM,IAASuK,EAAGz1F,MAAK,CAG9G,MAAMynF,EAAKugM,EAAW3mR,OAClB2mR,EAAW,GAAGjvL,mBACdkvL,EAAoB5mR,OACpB4mR,EAAoB,GAAGlvL,mBACvB,KAEJ,GAAItR,EAAI,CACN7qF,KAAKm/D,KAAO0rB,EAAG1rB,KACf,MAAMmsN,EAAU,IAAI/gM,GAAmBM,EAAIA,EAAGf,UAAWe,EAAGoC,iBAC5Dq+L,EAAQp/Q,MAAQlM,KAAKkkB,MAErBlkB,KAAKkkB,MAAQwpE,cAAcI,iBAAiBw9L,EAAQh9L,sBAAqB,GAAM,GAAM,CAEzF,EC1CI,MAAOi9L,GAMX1rR,YAAYy3B,GAFZt3B,UAA2B,GAGzBA,KAAKipR,WAAW3xP,EAClB,CAEA2xP,WAAW3xP,GACTt3B,KAAKkkB,MAAQ,EACblkB,KAAK+7G,WAAa,EAClB,MAAMqvK,EAAa9zP,EAAEk4E,qBAAsB3W,GAClCA,EAAGtN,WAAa0D,iBAGnBo8L,EAAsB/zP,EAAEk4E,qBAAsB3W,GAC3CA,EAAGtN,WAAa0D,2BAGzB,UAAW4J,KAAMuyL,EAAY,CAC3B,MAAMzhR,EAAIkvF,EAAGnC,QACb12F,KAAKkkB,OAASva,EAAEuC,MAChBlM,KAAK0L,KAAK9C,KAAK,IAAI0/Q,GAAY56L,cAAcI,iBAAiBnkF,EAAE2kF,sBAAqB,GAAM,IAASuK,EAAGz1F,MAAK,CAE9G,UAAWy1F,KAAMwyL,EAAqB,CACpC,MAAM1hR,EAAIkvF,EAAGnC,QAEb12F,KAAKkkB,OAASva,EAAEuC,MAChBlM,KAAK0L,KAAK9C,KAAK,IAAI0/Q,GAAY56L,cAAcI,iBAAiBnkF,EAAE2kF,sBAAqB,GAAM,IAASuK,EAAGz1F,MAAK,CAG9G,MAAMs0F,EAAQpgE,EAAEk4E,qBAAsB3W,GAC7BA,EAAGtN,WAAa0D,iBAAqC4J,EAAGtN,WAAa0D,cAG9EjvF,KAAK+7G,WAAa/7G,KAAKkkB,MACvB,UAAW20E,KAAMnB,EAAO,CACtB,IAAI/tF,EACAkvF,EAAG1B,aACLxtF,EAAIkvF,EAAG1B,WAAWjrF,MAAQ2sF,EAAG5B,UAAU/qF,OAEzC,MAAMs/Q,EAAY7+P,MAAMhjB,IAAMijF,GAAkBjjF,GAEhD3J,KAAK+7G,YAAcyvK,EAAY,EAAI7hR,EAGrC,MAAMkhF,EAAKugM,EAAW3mR,OAClB2mR,EAAW,GAAG10L,QACd20L,EAAoB5mR,OACpB4mR,EAAoB,GAAG30L,QACvB,KAEJ,GAAI7L,EAAI,CACN7qF,KAAKm/D,KAAO0rB,EAAG1rB,KACf,MAAMmsN,EAAU,IAAI/gM,GAAmBM,EAAIA,EAAGf,UAAWe,EAAGoC,iBAC5Dq+L,EAAQp/Q,MAAQlM,KAAKkkB,MAErBlkB,KAAKkkB,MAAQwpE,cAAcI,iBAAiBw9L,EAAQh9L,sBAAqB,GAAM,IAC/EtuF,KAAK+7G,WAAaruB,cAAcI,iBAC9BJ,cAAc7C,EAAGqC,UAAUW,QAAQ7tF,KAAK+7G,WAAYlxB,EAAG8C,kBAAmB3tF,KAAKm/D,MAAMoR,QAAQ1hD,WAAU,CAG7G,ECnEI,MAAO48P,GAKX5rR,YAAYy3B,GAFZt3B,UAA2B,GAGzBA,KAAKipR,WAAW3xP,EAClB,CAEA2xP,WAAW3xP,GACTt3B,KAAKkkB,MAAQ,EAEb,MAAMwnQ,EAAiBp0P,EAAEk4E,qBAAsB3W,GACtCA,EAAGtN,WAAa0D,sBAGzB,UAAW4J,KAAM6yL,EAAgB,CAC/B,MAAM/hR,EAAIkvF,EAAGsD,mBAEbn8F,KAAKkkB,OAASva,EAAEuC,MAChBlM,KAAK0L,KAAK9C,KAAK,IAAI0/Q,GAAY56L,cAAcI,iBAAiBnkF,EAAE2kF,sBAAqB,GAAM,IAASuK,EAAGz1F,MAAK,CAG9G,MAAMynF,EAAK6gM,EAAejnR,OAASinR,EAAe,GAAGvvL,mBAAqB,KAE1E,GAAItR,EAAI,CACN7qF,KAAKm/D,KAAO0rB,EAAG4C,iBACf,MAAM69L,EAAU,IAAI/gM,GAAmBM,EAAIA,EAAGf,UAAWe,EAAGoC,iBAC5Dq+L,EAAQp/Q,MAAQlM,KAAKkkB,MACrBlkB,KAAKkkB,MAAQwpE,cAAcI,iBAAiBw9L,EAAQh9L,sBAAqB,GAAM,GAAM,CAEzF,EClCI,MAAOq9L,GAQX9rR,YAAYuD,EAAMwoR,EAAWzpK,EAAStlB,EAAe3wF,EAAOizD,GAC1Dn/D,KAAKoD,KAAOA,EACZpD,KAAK4rR,UAAYA,EACjB5rR,KAAKmiH,QAAUA,EACfniH,KAAK68F,cAAgBA,EACrB78F,KAAKkM,MAAQA,EACblM,KAAKm/D,KAAOA,CACd,CAEAh/D,cAAc0qF,GACZ,OAAO,IAAI8gM,GACT9gM,EAAGznF,KACHynF,EAAGoC,gBAAgB7pF,KACnBynF,EAAGoC,gBAAgB/hF,GACb2/E,EAAGoC,gBAAiB4P,cAC1BhS,EAAGyD,sBAAqB,GAAM,GAC9BzD,EAAG4C,iBAEP,CAEAttF,0BACE4vF,GAEA,MAAM87L,EAAY,GAElB,IAAIrnR,EACJ,IAAKA,EAAI,EAAGA,EAAIurF,EAAS2R,2BAA2Bj9F,OAAQD,IAAK,CAC/D,MAAMk5F,EAAK3N,EAAS2R,2BAA2Bl9F,GAE/CqnR,EAAUjjR,KACR,IAAI+iR,GACF,GAAG57L,EAASiS,kCAAkCx9F,0BAC9CurF,EAAS3sF,KACT2sF,EAAS7kF,GACT6kF,EAAS8M,cACTa,EAAGxxF,MAAQ,GAAGgzD,WAAWw+B,EAAGxxF,MAAMwgF,QAAQ,MAAQ,KAClD,OACD,CAIL,OAAOm/L,CACT,EC/CI,MAAOC,GAGXjsR,YAAYy3B,EAASy0P,EAA2Bx/B,GAFhDvsP,gCAA2D,GAGzDA,KAAKipR,WAAW3xP,EAAGy0P,EAAmBx/B,EAAcR,sBAAsBz0N,GAC5E,CAEA2xP,WAAW3xP,EAASy0P,EAA2BC,GAC7C,MAAMvvJ,EAAYnlG,EAAEk4E,qBAAqB3W,GAErCA,EAAGtN,WAAa0D,iBAChB4J,EAAGtN,WAAa0D,wBAChB4J,EAAGtN,WAAa0D,sBAIdg9L,EAAe30P,EAAEk4E,qBAAqB3W,GACnCA,EAAGtN,WAAa0D,oBAGnB/1E,EAAUoe,EAAEk4E,qBAAqB3W,GAC9BA,EAAGtN,WAAa0D,oBAGnBi9L,EAAmB50P,EAAEk4E,qBAAqB3W,GAE5CA,EAAGtN,WAAa0D,sBAChB4J,EAAGtN,WAAa0D,yBAChB4J,EAAGtN,WAAa0D,sBAChB4J,EAAGtN,WAAa0D,oBAIpB,UAAWtlF,KAAK8yH,EACdz8H,KAAKmsR,oCAAoCxiR,EAAGoiR,GAG9C,UAAWK,KAAMH,EACfjsR,KAAKmsR,oCAAoCC,EAAIL,GAG/C,UAAW3oG,KAAKlqK,EACdlZ,KAAKmsR,oCAAoC/oG,EAAG2oG,GAG9C,UAAWx9P,KAAK29P,EACd,QAA0Bj+Q,IAAtB89Q,GACF,GAAIx9P,EAAEymE,cAAgB+2L,EACpB,OAAQ/rR,KAAKqsR,4BAA4BN,EAAmBC,IAC1D,QACEhsR,KAAKssR,2BAA2B1jR,KAAK+iR,UAAwCp9P,EAAG4tE,qBAChF,MACF,KAAKlN,iCACHjvF,KAAKssR,2BAA2B1jR,KAAK+iR,UAAwCp9P,EAAGs7E,eAChF,MACF,KAAK5a,mCACHjvF,KAAKssR,2BAA2B1jR,KAAK+iR,UAAwCp9P,EAAG4qE,gBAI3D,KAAlB5qE,EAAEymE,aACXh1F,KAAKssR,2BAA2B1jR,KAAK+iR,UAAwCp9P,EAAG4tE,oBAGtF,CAEAgwL,oCAAoCp3L,EAAoBg3L,QAC5B99Q,IAAtB89Q,EACEh3L,EAAcC,cAAgB+2L,GAChC/rR,KAAKusR,iDAAiDx3L,GAEjB,KAA9BA,EAAcC,aACvBh1F,KAAKusR,iDAAiDx3L,EAE1D,CAEAw3L,iDAAiDx3L,GAC/C,OAAQA,EAAcxJ,UACpB,KAAK0D,gBACL,KAAKA,qBACL,KAAKA,uBAML,KAAKA,mBAML,KAAKA,mBACHjvF,KAAKssR,2BAA6BtsR,KAAKssR,2BAA2B7xQ,OAChEkxQ,sBAA8C52L,IAItD,CAEAs3L,4BAA4BN,EAA2BC,GACrD,IAAIQ,EAEJR,SAAgBrmR,QAAQ8mR,IAClBA,EAAGvhR,KAAO6gR,IACZS,EAAyBC,EAAGlhM,YAIzBihM,CACT,ECvHI,MAAOE,GAUX7sR,YAAYuD,EAAc46F,GACxBh+F,KAAKoD,KAAOA,EACZpD,KAAKg+F,gBAAkBA,EACvBh+F,KAAK2sR,sBAAuB,CAC9B,CAEAxsR,oCAAoCysR,GAClC,GAAIA,EAAyBxpR,KAAKi0G,SAAS,YACzC,GAAIu1K,EAAyBlhM,aAAekhM,EAAyB5uL,gBACnE,OAAO,UAEkC,aAAlC4uL,EAAyBxpR,MAClC,GAAIwpR,EAAyBlhM,eAAiBkhM,EAAyB5uL,gBACrE,OAAO,UAEA4uL,EAAyBlhM,aAAekhM,EAAyB5uL,gBAC1E,OAAO,EAGT,OAAO,CACT,ECzBI,MAAO6uL,GAEXhtR,cAAuB,CAEvBM,gBACE,OAAO,IAAI0sR,EACb,CAEAC,iDACEC,EACAl4Q,GAEA,MAAQgkF,KAAIxO,UAAWx1E,EAEjB4pP,EAAe5lK,EAAG/O,UAAUm0B,2BAA2Bt0G,GACpDA,EAAEuyF,wBAA0BrD,EAAG3tF,IAGxC,GAAKuzP,EAAah6P,OAIlB,IAAI4lF,EAAOjnF,OAASqxF,yBAGlB,OAFAs4L,EAAIrhM,aAAe+yK,EAAa,GAAG50J,aAAavb,sBAAqB,GAAM,QAC3Ey+L,EAAIC,YAAcvuB,EAAa,GAAG50J,aAAapc,kBAGjD,GAAIpD,EAAOjnF,OAASqxF,yBAGlB,OAFAs4L,EAAIrhM,aAAe+yK,EAAa,GAAG50J,aAAavb,sBAAqB,GAAM,QAC3Ey+L,EAAIC,YAAcvuB,EAAa,GAAG50J,aAAapc,kBAIjD,MAAM,IAAIhnF,MAAM,uBAAuB4jF,EAAOjnF,OAAM,CACtD,EClCI,MAAO6pR,GACX9sR,gBACE,OAAO,IAAI8sR,EACb,CAEAH,iDACEC,EACAl4Q,GAEA,MAAQgkF,KAAIxO,UAAWx1E,EAEvB,GAAIw1E,EAAOjnF,OAASqxF,gBAGlB,OAFAs4L,EAAIrhM,aAAemN,EAAG2S,WAAWld,sBAAqB,GAAM,QAC5Dy+L,EAAIC,YAAcn0L,EAAG2S,WAAW/d,kBAIlC,GAAIpD,EAAOjnF,OAASqxF,gBAGlB,OAFAs4L,EAAIrhM,aAAemN,EAAG2S,WAAWld,sBAAqB,GAAM,QAC5Dy+L,EAAIC,YAAcn0L,EAAG2S,WAAW/d,kBAIlC,MAAMy/L,EAAkBr0L,EAAG/O,UAAUm0B,2BAA2Bt0G,GACvDA,EAAEuyF,wBAA0BrD,EAAG3tF,IAGxC,GAAKgiR,EAAgBzoR,OAIrB,IAAI4lF,EAAOjnF,OAASqxF,yBAGlB,OAFAs4L,EAAIrhM,aAAewhM,EAAgB,GAAGrjL,aAAavb,sBAAqB,GAAM,QAC9Ey+L,EAAIC,YAAcE,EAAgB,GAAGrjL,aAAapc,kBAGpD,GAAIpD,EAAOjnF,OAASqxF,yBAGlB,OAFAs4L,EAAIrhM,aAAewhM,EAAgB,GAAGrjL,aAAavb,sBAAqB,GAAM,QAC9Ey+L,EAAIC,YAAcE,EAAgB,GAAGrjL,aAAapc,kBAIpD,MAAM,IAAIhnF,MAAM,uBAAuB4jF,EAAOjnF,OAAM,CACtD,EC3CI,MAAO+pR,GACXhtR,gBACE,OAAO,IAAIgtR,EACb,CAGAttR,cAAuB,CAEvBitR,iDACEC,EACAl4Q,GAEA,MAAQgkF,KAAIxO,UAAWx1E,EAEjBiuH,EAAmBjqC,EAAG/O,UAAUm0B,2BAA2Bt0G,GACxDA,EAAEuyF,wBAA0BrD,EAAG3tF,IAGxC,GAAK43H,EAAiBr+H,OAItB,IAAI4lF,EAAOjnF,OAASqxF,yBAGlB,OAFAs4L,EAAIrhM,aAAeo3C,EAAiB,GAAGj5B,aAAavb,sBAAqB,GAAM,QAC/Ey+L,EAAIC,YAAclqJ,EAAiB,GAAGj5B,aAAapc,kBAIrD,GAAIpD,EAAOjnF,OAASqxF,yBAGlB,OAFAs4L,EAAIrhM,aAAeo3C,EAAiB,GAAGj5B,aAAavb,sBAAqB,GAAM,QAC/Ey+L,EAAIC,YAAclqJ,EAAiB,GAAGj5B,aAAapc,kBAIrD,MAAM,IAAIhnF,MAAM,uBAAuB4jF,EAAOjnF,OAAM,CACtD,ECnCI,MAAOgqR,GACXjtR,gBACE,OAAO,IAAIitR,EACb,CAGAvtR,cAAuB,CAEvBitR,iDACEC,EACAl4Q,GAEA,MAAQgkF,KAAIxO,UAAWx1E,EAEjBq4Q,EAAkBr0L,EAAG/O,UAAUm0B,2BAA2Bt0G,GACvDA,EAAEuyF,wBAA0BrD,EAAG3tF,IAGxC,GAAKgiR,EAAgBzoR,OAIrB,IAAI4lF,EAAOjnF,OAASqxF,yBAGlB,OAFAs4L,EAAIrhM,aAAewhM,EAAgB,GAAGrjL,aAAavb,sBAAqB,GAAM,QAC9Ey+L,EAAIC,YAAcE,EAAgB,GAAGrjL,aAAapc,kBAIpD,MAAM,IAAIhnF,MAAM,uBAAuB4jF,EAAOjnF,OAAM,CACtD,EC7BI,MAAOiqR,GACXltR,gBACE,OAAO,IAAIktR,EACb,CAGAxtR,cAAuB,CAEvBitR,iDACEC,EACAl4Q,GAEA,MAAQgkF,KAAIxO,UAAWx1E,EAEjBiuH,EAAmBjqC,EAAG/O,UAAUm0B,2BAA2Bt0G,GACxDA,EAAEuyF,wBAA0BrD,EAAG3tF,IAGxC,GAAK43H,EAAiBr+H,OAItB,IAAI4lF,EAAOjnF,OAASqxF,eAGlB,OAFAs4L,EAAIrhM,aAAeo3C,EAAiB,GAAGh5B,YAAYxb,sBAAqB,GAAM,QAC9Ey+L,EAAIC,YAAclqJ,EAAiB,GAAGh5B,YAAYrc,kBAGpD,GAAIpD,EAAOjnF,OAASqxF,YAGlB,OAFAs4L,EAAIrhM,aAAeo3C,EAAiB,GAAG/4B,SAASzb,sBAAqB,GAAM,QAC3Ey+L,EAAIC,YAAclqJ,EAAiB,GAAG/4B,SAAStc,kBAGjD,GAAIpD,EAAOjnF,OAASqxF,YAGlB,OAFAs4L,EAAIrhM,aAAeo3C,EAAiB,GAAGj5B,aAAavb,sBAAqB,GAAM,QAC/Ey+L,EAAIC,YAAclqJ,EAAiB,GAAGj5B,aAAapc,kBAIrD,MAAM,IAAIhnF,MAAM,uBAAuB4jF,EAAOjnF,OAAM,CACtD,ECvCI,MAAOkqR,GACXntR,gBACE,OAAO,IAAImtR,EACb,CAGAztR,cAAuB,CAEvBitR,iDACEC,EACAl4Q,GAEA,MAAQgkF,KAAIxO,UAAWx1E,EAEjBq4Q,EAAkBr0L,EAAG/O,UAAUq0B,6BAA6Bx0G,GACzDA,EAAEuyF,wBAA0BrD,EAAG3tF,IAGxC,GAAKgiR,EAAgBzoR,OAIrB,IAAI4lF,EAAOjnF,OAASqxF,iBAGlB,OAFAs4L,EAAIrhM,aAAewhM,EAAgB,GAAG14K,SAASlmB,sBAAqB,GAAM,QAC1Ey+L,EAAIC,YAAcE,EAAgB,GAAG14K,SAAS/mB,kBAIhD,MAAM,IAAIhnF,MAAM,uBAAuB4jF,EAAOjnF,OAAM,CACtD,EC3BI,MAAOmqR,GACXptR,gBACE,OAAO,IAAIotR,EACb,CAGA1tR,cAAuB,CAEvBitR,iDACEC,EACAl4Q,GAEA,MAAQgkF,KAAIxO,UAAWx1E,EAEvB,GAAIw1E,EAAOjnF,OAASqxF,yBAGlB,OAFAs4L,EAAIrhM,aAAemN,EAAGmO,iBAAiB1Y,sBAAqB,GAAM,QAClEy+L,EAAIC,YAAcn0L,EAAGmO,iBAAiBvZ,kBAIxC,GAAIpD,EAAOjnF,OAASqxF,gBAGlB,OAFAs4L,EAAIrhM,aAAemN,EAAGmO,iBAAiB1Y,sBAAqB,GAAM,QAClEy+L,EAAIC,YAAcn0L,EAAGmO,iBAAiBvZ,kBAKxC,MAAMy/L,EAAkBr0L,EAAG/O,UAAUmS,4BAA4BtyF,GACxDA,EAAEuyF,wBAA0BrD,EAAG3tF,IAGxC,GAAKgiR,EAAgBzoR,OAIrB,IAAI4lF,EAAOjnF,OAASqxF,oBAGlB,OAFAs4L,EAAIrhM,aAAewhM,EAAgB,GAAG3lL,SAASnZ,qBAAqBV,cAAcgK,MAAMmf,aAAaC,MAAM,QAC3Gi2K,EAAIC,YAAct/L,cAAcgK,MAAMmf,aAAaC,MAIrD,GAAIzsB,EAAOjnF,OAASqxF,0BAMlB,OALAs4L,EAAIrhM,aAAewhM,EAAgB,GAAG7rL,OAAOjT,qBAC3CV,cAAcgK,MAAMmf,aAAa22K,eACjC,QAEFT,EAAIC,YAAct/L,cAAcgK,MAAMmf,aAAa22K,eAIrD,MAAM,IAAI/mR,MAAM,uBAAuB4jF,EAAOjnF,OAAM,CACtD,ECnDI,MAAOqqR,GACXttR,gBACE,OAAO,IAAIstR,EACb,CAGA5tR,cAAuB,CAEvBitR,iDACEC,EACAl4Q,GAEA,MAAQgkF,KAAIxO,UAAWx1E,EAEvB,GAAIw1E,EAAOjnF,OAASqxF,yBAGlB,OAFAs4L,EAAIrhM,aAAemN,EAAGmO,iBAAiB1Y,sBAAqB,GAAM,QAClEy+L,EAAIC,YAAcn0L,EAAGmO,iBAAiBvZ,kBAGxC,GAAIpD,EAAOjnF,OAASqxF,gBAGlB,OAFAs4L,EAAIrhM,aAAemN,EAAGmO,iBAAiB1Y,sBAAqB,GAAM,QAClEy+L,EAAIC,YAAcn0L,EAAGmO,iBAAiBvZ,kBAKxC,MAAMy/L,EAAkBr0L,EAAG/O,UAAUmS,4BAA4BtyF,GACxDA,EAAEuyF,wBAA0BrD,EAAG3tF,IAGxC,GAAKgiR,EAAgBzoR,OAIrB,IAAI4lF,EAAOjnF,OAASqxF,0BAMlB,OALAs4L,EAAIrhM,aAAewhM,EAAgB,GAAG7rL,OAAOjT,qBAC3CV,cAAcgK,MAAMmf,aAAa22K,eACjC,QAEFT,EAAIC,YAAct/L,cAAcgK,MAAMmf,aAAa22K,eAIrD,GAAInjM,EAAOjnF,OAASqxF,oBAGlB,OAFAs4L,EAAIrhM,aAAewhM,EAAgB,GAAG3lL,SAASnZ,qBAAqBV,cAAcgK,MAAMmf,aAAaC,MAAM,QAC3Gi2K,EAAIC,YAAct/L,cAAcgK,MAAMmf,aAAaC,MAIrD,MAAM,IAAIrwG,MAAM,uBAAuB4jF,EAAOjnF,OAAM,CACtD,ECpDI,MAAOsqR,GACXvtR,gBACE,OAAO,IAAIutR,EACb,CAGA7tR,cAAuB,CAEvBitR,iDACEC,EACAl4Q,GAEA,MAAQgkF,KAAIxO,UAAWx1E,EAEvB,GAAIw1E,EAAOjnF,OAASqxF,yBAGlB,OAFAs4L,EAAIrhM,aAAemN,EAAGmU,oBAAoB1e,sBAAqB,GAAM,QACrEy+L,EAAIC,YAAcn0L,EAAGmU,oBAAoBvf,kBAI3C,GAAIpD,EAAOjnF,OAASqxF,yBAGlB,OAFAs4L,EAAIrhM,aAAemN,EAAG6S,oBAAoBpd,sBAAqB,GAAM,QACrEy+L,EAAIC,YAAcn0L,EAAG6S,oBAAoBje,kBAI3C,MAAM,IAAIhnF,MAAM,uBAAuB4jF,EAAOjnF,OAChD,EC3BI,MAAOuqR,GACXxtR,gBACE,OAAO,IAAIwtR,EACb,CAGA9tR,cAAuB,CAEvBitR,iDACEC,EACAl4Q,GAEA,MAAQgkF,KAAIxO,UAAWx1E,EAEvB,GAAIw1E,EAAOjnF,OAASqxF,eAGlB,OAFAs4L,EAAIrhM,aAAemN,EAAG+U,YAAYtf,sBAAqB,GAAM,QAC7Dy+L,EAAIC,YAAcn0L,EAAG+U,YAAYngB,kBAInC,GAAIpD,EAAOjnF,OAASqxF,yBAGlB,OAFAs4L,EAAIrhM,aAAemN,EAAGmO,iBAAiB1Y,sBAAqB,GAAM,QAClEy+L,EAAIC,YAAcn0L,EAAGmO,iBAAiBvZ,kBAIxC,GAAIpD,EAAOjnF,OAASqxF,gBAGlB,OAFAs4L,EAAIrhM,aAAemN,EAAGmO,iBAAiB1Y,sBAAqB,GAAM,QAClEy+L,EAAIC,YAAcn0L,EAAGmO,iBAAiBvZ,kBAKxC,MAAMy/L,EAAkBr0L,EAAG/O,UAAUmS,4BAA4BtyF,GACxDA,EAAEuyF,wBAA0BrD,EAAG3tF,IAGxC,GAAKgiR,EAAgBzoR,OAIrB,IAAI4lF,EAAOjnF,OAASqxF,eAGlB,OAFAs4L,EAAIrhM,aAAewhM,EAAgB,GAAGv2K,IAAIroB,sBAAqB,GAAM,QACrEy+L,EAAIC,YAAcE,EAAgB,GAAGv2K,IAAIlpB,kBAI3C,MAAM,IAAIhnF,MAAM,uBAAuB4jF,EAAOjnF,OAAM,CACtD,EChDI,MAAOwqR,GACXztR,gBACE,OAAO,IAAIytR,EACb,CAGA/tR,cAAuB,CAEvBitR,iDACEC,EACAl4Q,GAEA,MAAQgkF,KAAIxO,UAAWx1E,EACvB,GAAIw1E,EAAOjnF,OAASqxF,uBAGlB,OAFAs4L,EAAIrhM,aAAemN,EAAGuJ,qBAAqB9T,sBAAqB,GAAM,QACtEy+L,EAAIC,YAAcn0L,EAAGuJ,qBAAqB3U,kBAI5C,GAAIpD,EAAOjnF,OAASqxF,mBAGlB,OAFAs4L,EAAIrhM,aAAemN,EAAG4J,mBAAmBnU,sBAAqB,GAAM,QACpEy+L,EAAIC,YAAcn0L,EAAG4J,mBAAmBhV,kBAK1C,GAAIpD,EAAOjnF,OAASqxF,+BAGlB,OAFAs4L,EAAIrhM,aAAemN,EAAGgC,YAAYvM,sBAAqB,GAAM,QAC7Dy+L,EAAIC,YAAcn0L,EAAGgC,YAAYpN,kBAKnC,GAAIpD,EAAOjnF,OAASqxF,yBAGlB,OAFAs4L,EAAIrhM,aAAemN,EAAGgC,YAAYvM,sBAAqB,GAAM,QAC7Dy+L,EAAIC,YAAcn0L,EAAGgC,YAAYpN,kBAInC,GAAIpD,EAAOjnF,OAASqxF,YAGlB,OAFAs4L,EAAIrhM,aAAemN,EAAGzB,SAAS9I,sBAAqB,GAAM,QAC1Dy+L,EAAIC,YAAcn0L,EAAGzB,SAAS3J,kBAKhC,GAAIpD,EAAOjnF,OAASqxF,0BAGlB,OAFAs4L,EAAIrhM,aAAemN,EAAGgC,YAAYvM,sBAAqB,GAAM,QAC7Dy+L,EAAIC,YAAcn0L,EAAGgC,YAAYpN,kBAKnC,GAAIpD,EAAOjnF,OAASqxF,wBAGlB,OAFAs4L,EAAIrhM,aAAemN,EAAGgC,YAAYvM,sBAAqB,GAAM,QAC7Dy+L,EAAIC,YAAcn0L,EAAGgC,YAAYpN,kBAInC,MAAM,IAAIhnF,MAAM,uBAAuB4jF,EAAOjnF,OAChD,EC5DI,MAAOyqR,GACX1tR,gBACE,OAAO,IAAI0tR,EACb,CAGAhuR,cAAuB,CAEvBitR,iDACEC,EACAl4Q,GAEA,MAAQgkF,KAAIxO,UAAWx1E,EAGvB,GAAIw1E,EAAOjnF,OAASqxF,kBAIlB,OAHAs4L,EAAIrhM,aAAemN,EAAGwP,gBAAgB/Z,sBAAqB,GAAM,GACjEy+L,EAAIC,YAAcn0L,EAAGwP,gBAAgB5a,sBACrCs/L,EAAIe,mBAAqBj1L,EAAGgQ,kCAI9B,GAAIxe,EAAOjnF,OAASqxF,oBAIlB,OAHAs4L,EAAIrhM,aAAemN,EAAGyP,kBAAkBha,sBAAqB,GAAM,GACnEy+L,EAAIC,YAAcn0L,EAAGyP,kBAAkB7a,sBACvCs/L,EAAIe,mBAAqBj1L,EAAGgQ,kCAI9B,GAAIxe,EAAOjnF,OAASqxF,eAIlB,OAHAs4L,EAAIrhM,aAAemN,EAAG0P,iBAAiBja,sBAAqB,GAAM,GAClEy+L,EAAIC,YAAcn0L,EAAG0P,iBAAiB9a,sBACtCs/L,EAAIe,mBAAqBj1L,EAAGgQ,kCAI9B,GACExe,EAAOjnF,OAASqxF,mBAChBpK,EAAOjnF,OAASqxF,kBAIhB,OAFAs4L,EAAIrhM,aAAemN,EAAGuP,gBAAgB9Z,sBAAqB,GAAM,QACjEy+L,EAAIC,YAAcn0L,EAAGuP,gBAAgB3a,kBAIvC,MAAM,IAAIhnF,MAAM,sBAAsB4jF,EAAOjnF,OAC/C,ECZI,MAAO2qR,WAAiCrB,GAK5C7sR,YAAYuD,EAAM46F,EAAiBgwL,EAAgBtiM,EAAcshM,GAC/DltR,MAAMsD,EAAM46F,GACZh+F,KAAKguR,eAAiBA,EACtBhuR,KAAK0rF,aAAeA,EACpB1rF,KAAKgtR,YAAcA,CACrB,CAEA7sR,cAAc04F,EAAmBxO,GAI/B,MAAM6iM,EAAkBr0L,EAAG/O,UAAUmS,4BAA4BtyF,GACxDA,EAAEuyF,wBAA0BrD,EAAG3tF,IAGlC6hR,EAAM,IAAIgB,GACd1jM,EAAOjnF,KACPinF,EAAOiE,sBAAqB,GAAM,GAClCjE,EAAOoD,iBACP,KACA,MAGIwgM,EAAsB5jM,EAAOjnF,KAAKwN,cAOxC,GALAm8Q,EAAIrrO,SAAW2oC,EAAO3oC,SACtBqrO,EAAItuJ,kBAAoB5lC,EAAGz1F,KAC3B2pR,EAAI54L,gBAAkB0E,EAAG3tF,GACzB6hR,EAAImB,SAAW7jM,EAAOn/E,GAElB2tF,aAAcsJ,GAChByrL,mBAAkDd,iDAAiDC,EAAK,CACtGl0L,KACAxO,WAEF0iM,EAAIJ,qBAAuB3sR,KAAKmuR,6BAA6BpB,GACtDA,EAGT,GAAIl0L,aAAcqS,GAChB+hL,mBAAsDH,iDAAiDC,EAAK,CAC1Gl0L,KACAxO,WAEF0iM,EAAIJ,qBAAuB3sR,KAAKmuR,6BAA6BpB,GACtDA,EAGT,GAAIl0L,aAAckU,GAChB2gL,mBAAmDZ,iDAAiDC,EAAK,CACvGl0L,KACAxO,WAEF0iM,EAAIJ,qBAAuB3sR,KAAKmuR,6BAA6BpB,GACtDA,EAGT,GAAIl0L,aAAcya,GAChBu5K,mBAAqDC,iDAAiDC,EAAK,CACzGl0L,KACAxO,WAEF0iM,EAAIJ,qBAAuB3sR,KAAKmuR,6BAA6BpB,GACtDA,EAGT,GAAIl0L,aAAc2c,GAChB23K,mBAA2DL,iDAAiDC,EAAK,CAC/Gl0L,KACAxO,WAEF0iM,EAAIJ,qBAAuB3sR,KAAKmuR,6BAA6BpB,GAEtDA,EAGT,GAAIl0L,aAAciU,GAChBsgL,mBAAoDN,iDAAiDC,EAAK,CACxGl0L,KACAxO,WAGF0iM,EAAIJ,qBAAuB3sR,KAAKmuR,6BAA6BpB,GACtDA,EAGT,GAAIl0L,aAAcia,GAChBu6K,mBAAyDP,iDAAiDC,EAAK,CAC7Gl0L,KACAxO,WAGF0iM,EAAIJ,qBAAuB3sR,KAAKmuR,6BAA6BpB,GACtDA,EAGT,GAAIl0L,aAAc8U,GAChBggL,mBAAoDb,iDAAiDC,EAAK,CACxGl0L,KACAxO,WAEF0iM,EAAIJ,qBAAuB3sR,KAAKmuR,6BAA6BpB,GACtDA,EAGT,GAAIl0L,aAAcyb,EAChBg5K,mBAA2DR,iDAAiDC,EAAK,CAC/Gl0L,KACAxO,WAEF0iM,EAAIJ,qBAAuB3sR,KAAKmuR,6BAA6BpB,GACtDA,EAGT,GAAIl0L,aAAcsP,GAChB0lL,mBAA6Cf,iDAAiDC,EAAK,CACjGl0L,KACAxO,WAGF0iM,EAAIJ,qBAAuB3sR,KAAKmuR,6BAA6BpB,GACtDA,EAET,GAAIl0L,aAAc+Y,GAChB27K,mBAAyDT,iDAAiDC,EAAK,CAC7Gl0L,KACAxO,WAEF0iM,EAAIJ,qBAAuB3sR,KAAKmuR,6BAA6BpB,GACtDA,EAET,GAAIl0L,aAAcua,GAChBq6K,mBAAyDX,iDAAiDC,EAAK,CAC7Gl0L,KACAxO,WAEF0iM,EAAIJ,qBAAuB3sR,KAAKmuR,6BAA6BpB,GACtDA,EAET,GAAIl0L,aAAc+N,IAChB,GAAIvc,EAAOjnF,OAASqxF,oBAClBs4L,SAAIrhM,aAAemN,EAAGqO,mBAAmB5Y,sBAAqB,GAAM,GACpEy+L,EAAIC,YAAcn0L,EAAGqO,mBAAmBzZ,iBACxCs/L,EAAIJ,qBAAuB3sR,KAAKmuR,6BAA6BpB,GACtDA,UAEAl0L,aAAcyQ,IAAgBzQ,aAAc4O,IACrD,GAAIylL,EAAgBzoR,OAAQ,CAC1B,GAAoB,gBAAhB4lF,EAAOjnF,KACT2pR,SAAIrhM,aAAewhM,EAAgB,GAAG/sL,YAAY7R,sBAAqB,GAAM,GAC7Ey+L,EAAIC,YAAcE,EAAgB,GAAG/sL,YAAY1S,iBACjDs/L,EAAIJ,qBAAuB3sR,KAAKmuR,6BAA6BpB,GACtDA,EAET,GAAI1iM,EAAOjnF,OAASqxF,eAClBs4L,SAAIrhM,aAAewhM,EAAgB,GAAGv2K,IAAIroB,sBAAqB,GAAM,GACrEy+L,EAAIC,YAAcE,EAAgB,GAAGv2K,IAAIlpB,iBACzCs/L,EAAIJ,qBAAuB3sR,KAAKmuR,6BAA6BpB,GACtDA,WAGFl0L,aAAc+D,IAAiB/D,aAAc4G,IAAc5G,aAAcwE,GAAY,CAC9F,MAAMmhK,EAAe3lK,EAAG/O,UAAUmS,4BAA4BtyF,GACrDA,EAAEkuG,uBAAyBhf,EAAG3tF,IAEvC,GAAIszP,EAAa/5P,OAEfsoR,SAAIrhM,aAAe8yK,EAAa,GAAGriK,mBAAmB7N,sBAAqB,GAAM,GACjFy+L,EAAIC,YAAcxuB,EAAa,GAAGriK,mBAAmB1O,iBACrDs/L,EAAIJ,qBAAuB3sR,KAAKmuR,6BAA6BpB,GACtDA,EAQX,IALIkB,EAAoB52K,SAAS,iBAAmB42K,EAAoB52K,SAAS,mBAC/E01K,EAAI/uL,gBAAkB3T,EAAOkE,oBAC7Bw+L,EAAIiB,eAAiB3jM,EAAOsD,mBAG1Bu/L,EAAgBzoR,OAClB,GAAIwpR,EAAoB52K,SAAS,YAC/B01K,EAAIrhM,aAAewhM,EAAgB,GAAG3lL,SAASnZ,qBAC7CV,cAAcgK,MAAMmf,aAAaC,MACjC,GAEFi2K,EAAIC,YAAct/L,cAAcgK,MAAMmf,aAAaC,KACnDi2K,EAAI/uL,gBAAkB3T,EAAO+D,qBAAqBV,cAAcgK,MAAMmf,aAAaC,MAAM,GACzFi2K,EAAIiB,eAAiBtgM,cAAcgK,MAAMmf,aAAaC,aAC7Cm3K,EAAoB52K,SAAS,UACtC,GAAIxe,aAAcuH,GAEhB,GADYvH,EACJuI,aACN,GAAI6sL,EAAoB52K,SAAS,WAAY,CAC3C,MAAMwF,EAASqwK,EAAgBn1Q,OAAOpO,GAChB,WAAbA,EAAEiuG,QACR,GACHm1K,EAAIrhM,aAAemxB,EAAOxb,OAAO/S,sBAAqB,GAAM,GAC5Dy+L,EAAIC,YAAcnwK,EAAOxb,OAAO5T,gBAAc,KACzC,CACL,MAAMovB,EAASqwK,EAAgBn1Q,OAAOpO,GAChB,WAAbA,EAAEiuG,QACR,GACHm1K,EAAIrhM,aAAemxB,EAAOxb,OAAO/S,sBAAqB,GAAM,GAC5Dy+L,EAAIC,YAAcnwK,EAAOxb,OAAO5T,gBAAc,MAGhDs/L,EAAIrhM,aAAewhM,EAAgB,GAAG7rL,OAAO/S,sBAAqB,GAAM,GACxEy+L,EAAIC,YAAcE,EAAgB,GAAG7rL,OAAO5T,sBAErCoL,aAAc+N,IACvBmmL,EAAIrhM,aAAemN,EAAGoO,iBAAiB3Y,sBAAqB,GAAM,GAClEy+L,EAAIC,YAAcn0L,EAAGoO,iBAAiBxZ,mBAEtCs/L,EAAIrhM,aAAewhM,EAAgB,GAAG7rL,OAAO/S,sBAAqB,GAAM,GACxEy+L,EAAIC,YAAcE,EAAgB,GAAG7rL,OAAO5T,uBAAc,GAEnDwgM,EAAoB52K,SAAS,iBAAmB42K,EAAoB52K,SAAS,gBACtF,GAAIxe,aAAcuH,GAEhB,GADYvH,EACJuI,aACN,GAAI6sL,EAAoB52K,SAAS,WAAY,CAC3C,MAAMwF,EAASqwK,EAAgBn1Q,OAAOpO,GAChB,WAAbA,EAAEiuG,QACR,GACHm1K,EAAIrhM,aAAemxB,EAAO1c,YAAY5R,oBACtCw+L,EAAIC,YAAcnwK,EAAO1c,YAAYxS,iBAAe,KAC/C,CACL,MAAMkvB,EAASqwK,EAAgBn1Q,OAAOpO,GAChB,WAAbA,EAAEiuG,QACR,GACHm1K,EAAIrhM,aAAemxB,EAAO1c,YAAY5R,oBACtCw+L,EAAIC,YAAcnwK,EAAO1c,YAAYxS,iBAAe,MAGtDo/L,EAAIrhM,aAAewhM,EAAgB,GAAG/sL,YAAY5R,oBAClDw+L,EAAIC,YAAcE,EAAgB,GAAG/sL,YAAYxS,uBAGnDo/L,EAAIrhM,aAAewhM,EAAgB,GAAG/sL,YAAY5R,oBAClDw+L,EAAIC,YAAcE,EAAgB,GAAG/sL,YAAYxS,uBAAe,GAEzDsgM,EAAoB52K,SAAS,YACtC01K,EAAIrhM,aAAe,KACnBqhM,EAAIC,YAAc,aACTn0L,aAAcuH,GAEvB,GADYvH,EACJuI,aACN,GAAI6sL,EAAoB52K,SAAS,WAAY,CAC3C,MAAMwF,EAASqwK,EAAgBn1Q,OAAOpO,GAChB,WAAbA,EAAEiuG,QACR,GACHm1K,EAAIrhM,aAAemxB,EAAO1gB,mBAAmB7N,sBAAqB,GAAM,GACxEy+L,EAAIC,YAAcnwK,EAAO1gB,mBAAmB1O,gBAAc,KACrD,CACL,MAAMovB,EAASqwK,EAAgBn1Q,OAAOpO,GAChB,WAAbA,EAAEiuG,QACR,GACHm1K,EAAIrhM,aAAemxB,EAAO1gB,mBAAmB7N,sBAAqB,GAAM,GACxEy+L,EAAIC,YAAcnwK,EAAO1gB,mBAAmB1O,gBAAc,MAG5Ds/L,EAAIrhM,aAAewhM,EAAgB,GAAG/wL,mBAAmB7N,sBAAqB,GAAM,GACpFy+L,EAAIC,YAAcE,EAAgB,GAAG/wL,mBAAmB1O,sBAEjDoL,aAAc+N,IACvBmmL,EAAIrhM,aAAemN,EAAGmO,iBAAiB1Y,sBAAqB,GAAM,GAClEy+L,EAAIC,YAAcn0L,EAAGmO,iBAAiBvZ,mBAEtCs/L,EAAIrhM,aAAewhM,EAAgB,GAAG/wL,mBAAmB7N,sBAAqB,GAAM,GACpFy+L,EAAIC,YAAcE,EAAgB,GAAG/wL,mBAAmB1O,kBAI5D,OAAIoL,aAAc+N,IACM,CACpBnS,0BACAA,qBAEgBvjF,QAAQm5E,EAAOjnF,OAAS,IACxC2pR,EAAIe,mBAA6C,eAAxBj1L,EAAGuG,kBAIhC2tL,EAAIJ,qBAAuB3sR,KAAKmuR,6BAA6BpB,GACtDA,CACT,EC9TI,MAAOqB,WAAuC1B,GAGlD7sR,YAAYuD,EAAc46F,EAAyBtS,GACjD5rF,MAAMsD,EAAM46F,GACZh+F,KAAK0rF,aAAeA,EACpB1rF,KAAKguR,eAAiBtgM,cAAcgK,MAAMqU,cAAcsiL,QAC1D,CAEAluR,cAAc04F,EAAmBxF,GAC/B,MAAMi7L,EAAiB,IAAIF,GAA+B/6L,EAAW0K,eAAgB1K,EAAW2K,iBAOhG,IAAI4qC,EACJ,OANA0lJ,EAAepjR,GAAKmoF,EAAWnoF,GAC/BojR,EAAe5sO,SAAW2xC,EAAW3xC,SACrC4sO,EAAe7vJ,kBAAoB5lC,EAAGz1F,KACtCkrR,EAAen6L,gBAAkB0E,EAAG3tF,GAGhC2tF,aAAc4F,GAChBmqC,EAAsB/vC,EAAGoG,wBAAwB5L,EAAWyK,uBACnDjF,aAAc4I,KACvBmnC,EAAsB/vC,EAAGkJ,8BAA8B1O,EAAWyK,wBAGpEwwL,EAAe5iM,aAAekB,GAAkBg8C,EAAoB18H,OAChE,KACAsgF,GAAYo8C,EAAoB18H,MAAO,GAE3CoiR,EAAe3B,qBAAuB3sR,KAAKmuR,6BAA6BG,GAEjEA,CACT,ECvBI,MAAOC,GAGX1uR,YAAYy3B,EAASk3P,GAFrBxuR,iBAAmD,GAGjDA,KAAKipR,WAAW3xP,EAAGk3P,EACrB,CAEAvF,WAAW3xP,EAASy0P,GAClB,MAAMrvJ,EAAiBplG,EAAEk4E,qBAAqB3W,GAE1CA,EAAGtN,WAAa0D,iBAChB4J,EAAGtN,WAAa0D,2BAChB4J,EAAGtN,WAAa0D,YAChB4J,EAAGtN,WAAa0D,YAChB4J,EAAGtN,WAAa0D,YAChB4J,EAAGtN,WAAa0D,qBAChB4J,EAAGtN,WAAa0D,sBAChB4J,EAAGtN,WAAa0D,aAChB4J,EAAGtN,WAAa0D,0BAChB4J,EAAGtN,WAAa0D,iBAChB4J,EAAGtN,WAAa0D,qBAChB4J,EAAGtN,WAAa0D,sBAChB4J,EAAGtN,WAAa0D,aAChB4J,EAAGtN,WAAa0D,aAChB4J,EAAGtN,WAAa0D,mBAChB4J,EAAGtN,WAAa0D,wBAChB4J,EAAGtN,WAAa0D,wBAChB4J,EAAGtN,WAAa0D,qBAChB4J,EAAGtN,WAAa0D,kBAChB4J,EAAGtN,WAAa0D,oBAChB4J,EAAGtN,WAAa0D,0BAChB4J,EAAGtN,WAAa0D,mBAChB4J,EAAGtN,WAAa0D,wBAChB4J,EAAGtN,WAAa0D,0BAChB4J,EAAGtN,WAAa0D,cAChB4J,EAAGtN,WAAa0D,iBAIpB,UAAW4J,KAAM6jC,EACf,GAAK7jC,EAAWjF,YAAa,CAC3B,MAAQA,eAAiBiF,EAAWjF,YAEpC,UAAW1oF,KAAM0oF,EAAa,CAC5B,MAAMP,EAAaO,EAAY1oF,GAC/B,GAAImoF,EAAWC,yBAA0B,CACvC,MAAMm7L,EAAmBp7L,EACnBq7L,EAAmBr7L,EAEpBxG,GAAak/L,GAUY,KAAnBlzL,EAAG7D,cACR6D,aAAcsJ,GAChBniG,KAAK2uR,0CAA0Cr3P,EAAGuhE,EAAI41L,GAC7CzuR,KAAK4uR,uBAAuB/1L,GACrC74F,KAAK6uR,qCAAqCh2L,EAAI61L,GAE9C1uR,KAAK8uR,+BAA+Bj2L,EAAI41L,KAftC51L,EAAG7D,cAAgB+2L,GAAqBlzL,EAAG3tF,KAAO6gR,KAChDlzL,aAAcsJ,GAChBniG,KAAK+uR,2CAA2Cz3P,EAAGuhE,EAAI41L,GAC9CzuR,KAAK4uR,uBAAuB/1L,GACrC74F,KAAK6uR,qCAAqCh2L,EAAI61L,GAE9C1uR,KAAK8uR,+BAA+Bj2L,EAAI41L,GAAgB,GAgBxE,CAEAM,2CAA2Cz3P,EAASuhE,EAAmBxF,GAEnErzF,KAAKgvR,qBAAqB13P,EAAGuhE,EAAG3tF,IAAIzG,OAAS,GAC7C4uF,EAAWA,WAAWjwF,OAASqxF,gCAE/Bz0F,KAAK8uR,+BAA+Bj2L,EAAIxF,GAIxCrzF,KAAKivR,mBAAmB33P,EAAGuhE,EAAG3tF,IAAIzG,OAAS,GAC3C4uF,EAAWA,WAAWjwF,OAASqxF,oBAE/Bz0F,KAAK8uR,+BAA+Bj2L,EAAIxF,EAE5C,CAEAs7L,0CAA0Cr3P,EAASuhE,EAAmBxF,IACR,IAAxDrzF,KAAKkvR,8BAA8B53P,EAAGuhE,EAAG3tF,IAAIzG,QAG/CzE,KAAKgvR,qBAAqB13P,EAAGuhE,EAAG3tF,IAAIzG,OAAS,GACA,IAA7CzE,KAAKivR,mBAAmB33P,EAAGuhE,EAAG3tF,IAAIzG,QAClC4uF,EAAWA,WAAWjwF,OAASqxF,gCAIgB,IAA/Cz0F,KAAKgvR,qBAAqB13P,EAAGuhE,EAAG3tF,IAAIzG,QACpCzE,KAAKivR,mBAAmB33P,EAAGuhE,EAAG3tF,IAAIzG,OAAS,GAC3C4uF,EAAWA,WAAWjwF,OAASqxF,oBAI/BpB,EAAWA,WAAWjwF,OAASqxF,gCAC/BpB,EAAWA,WAAWjwF,OAASqxF,qBAf/Bz0F,KAAK8uR,+BAA+Bj2L,EAAIxF,EAmB5C,CAEAy7L,+BAA+Bj2L,EAAmBxF,GAChDrzF,KAAK4zF,YAAYhrF,KAAKmlR,UAAgCl1L,EAAqBxF,EAAWA,YACxF,CAEAw7L,qCAAqCh2L,EAAmBxF,GACtDrzF,KAAK4zF,YAAYhrF,KAAKwlR,UAAsCv1L,EAAqBxF,GACnF,CAEA67L,8BAA8B53P,EAAS6sG,GACrC,OAAO7sG,EAAEk4E,qBAAqB3W,IACpBA,aAAcgb,IAAehb,aAAc6a,KAAkB7a,EAAG7D,cAAgBmvC,EAE5F,CAEA8qJ,mBAAmB33P,EAAS6sG,GAC1B,OAAO7sG,EAAEk4E,qBAAqB3W,GACrBA,aAAcgb,IAAehb,EAAG7D,cAAgBmvC,EAE3D,CAEA6qJ,qBAAqB13P,EAAS6sG,GAC5B,OAAO7sG,EAAEk4E,qBAAqB3W,GACrBA,aAAc6a,IAAiB7a,EAAG7D,cAAgBmvC,EAE7D,CAEAyqJ,uBAAuB75L,GACrB,OAAOA,aAAyB0J,IAAS1J,aAAyB0M,EACpE,ECpJI,MAAO0tL,GAMXtvR,YAAYy3B,GAHZt3B,4BAA6C,GAC7CA,wBAA2C,GAGzCA,KAAKipR,WAAW3xP,EAClB,CAEA2xP,WAAW3xP,GACTt3B,KAAKkkB,MAAQ,EAEb,MAAMwzE,EAAQpgE,EAAEk4E,qBAAsB3W,GAC7BA,EAAGtN,WAAa0D,iBAAqC4J,EAAGtN,WAAa0D,cAGxEmgM,EAAe,GAIrB,UAAW/jK,KAAOp8B,GAAsB,CACtC,MAAMogM,EAAapgM,GAAqBo8B,GAAKv6G,IACzCu+Q,IAAepgM,iBAAqCogM,IAAepgM,eAIvEmgM,EAAaC,GAAc,GAC3BD,EAAaC,GAAYC,cAAgB,IAAIhH,GAAY,EAAGr5L,GAAqBo8B,GAAKl8B,YAAakgM,GACnGD,EAAaC,GAAYE,YAAc,IAAI1G,GAAc55L,GAAqBo8B,GAAKl8B,YAAakgM,GAAU,CAG5G,UAAWx2L,KAAMnB,EAAO,CACtB,MAAM/tF,EAAIkvF,EAAG1B,WACPq4L,EAAW32L,EAAGtN,SACpB,IAAIigM,EAEFA,GADE7hR,GACUgjB,MAAMhjB,EAAEuC,QAAU0gF,GAAkBjjF,EAAEuC,OAIpDkjR,EAAaI,GAAUF,cAAcpjR,OAASs/Q,EAAY,EAAI7hR,EAAEuC,MAChEkjR,EAAaI,GAAUD,YAAYzG,UACjC,IAAIR,GAAY56L,cAAcI,iBAAiB09L,EAAY,EAAI7hR,EAAE2kF,sBAAqB,GAAM,IAASuK,EAAGz1F,OAE1GpD,KAAKkkB,OAASsnQ,EAAY,EAAI7hR,EAAEuC,MAGlC,MAAM2+E,EAAK6M,EAAMjzF,OAASizF,EAAM,GAAGP,WAAa,KAGhD,UAAWk0B,KAAO+jK,EAChBpvR,KAAKqqR,uBAAuBzhR,KAAKwmR,EAAa/jK,GAAKikK,eACnDtvR,KAAKsqR,mBAAmB1hR,KAAKwmR,EAAa/jK,GAAKkkK,aAGjD,GAAI1kM,EAAI,CACN,MAAM68B,EAAe78B,EAAG8C,kBACxB3tF,KAAKm/D,KAAO0rB,EAAG4C,iBAEf,UAAWm9L,KAAW5qR,KAAKqqR,uBACzBO,EAAQ1+Q,MAAQwhF,cAAcI,iBAC5BJ,cAAc7C,EAAGqC,UAAUW,QAAQ+8L,EAAQ1+Q,MAAOw7G,EAAc1nH,KAAKm/D,MAAMoR,QAAQ1hD,YAIvF,MAAMy8P,EAAU,IAAI/gM,GAAmBM,EAAIA,EAAGf,UAAWe,EAAGoC,iBAC5Dq+L,EAAQp/Q,MAAQlM,KAAKkkB,MACrBlkB,KAAKkkB,MAAQwpE,cAAcI,iBAAiBw9L,EAAQh9L,sBAAqB,GAAM,GAAM,CAEzF,ECtEI,MAAOmhM,GAMX5vR,YAAYy3B,GAHZt3B,4BAA6C,GAC7CA,wBAA2C,GAGzCA,KAAKipR,WAAW3xP,EAClB,CAEA2xP,WAAW3xP,GACTt3B,KAAKkkB,MAAQ,EAEb,MAAMwzE,EAAQpgE,EAAEk4E,qBAAsB3W,GAC7BA,EAAGtN,WAAa0D,iBAAqC4J,EAAGtN,WAAa0D,cAGxEmgM,EAAe,GAIrB,UAAW/jK,KAAOp8B,GAAsB,CACtC,MAAMogM,EAAapgM,GAAqBo8B,GAAKv6G,IACzCu+Q,IAAepgM,iBAAqCogM,IAAepgM,eAIvEmgM,EAAaC,GAAc,GAC3BD,EAAaC,GAAYC,cAAgB,IAAIhH,GAAY,EAAGr5L,GAAqBo8B,GAAKl8B,YAAakgM,GACnGD,EAAaC,GAAYE,YAAc,IAAI1G,GAAc55L,GAAqBo8B,GAAKl8B,YAAakgM,GAAU,CAG5G,UAAWx2L,KAAMnB,EAAO,CACtB,MAAM/tF,EAAIkvF,EAAG5B,UACPu4L,EAAW32L,EAAGtN,SACpB,IAAIigM,EAEFA,GADE7hR,GACUgjB,MAAMhjB,EAAEuC,QAAU0gF,GAAkBjjF,EAAEuC,OAIpDkjR,EAAaI,GAAUF,cAAcpjR,OAASs/Q,EAAY,EAAI7hR,EAAEuC,MAChEkjR,EAAaI,GAAUD,YAAYzG,UACjC,IAAIR,GAAY56L,cAAcI,iBAAiB09L,EAAY,EAAI7hR,EAAE2kF,sBAAqB,GAAM,IAASuK,EAAGz1F,OAE1GpD,KAAKkkB,OAASsnQ,EAAY,EAAI7hR,EAAEuC,MAGlC,MAAM2+E,EAAK6M,EAAMjzF,OAASizF,EAAM,GAAGT,UAAY,KAG/C,UAAWo0B,KAAO+jK,EAChBpvR,KAAKqqR,uBAAuBzhR,KAAKwmR,EAAa/jK,GAAKikK,eACnDtvR,KAAKsqR,mBAAmB1hR,KAAKwmR,EAAa/jK,GAAKkkK,aAGjD,GAAI1kM,EAAI,CACN,MAAM68B,EAAe78B,EAAG8C,kBACxB3tF,KAAKm/D,KAAO0rB,EAAG4C,iBAEf,UAAWm9L,KAAW5qR,KAAKqqR,uBACzBO,EAAQ1+Q,MAAQwhF,cAAcI,iBAC5BJ,cAAc7C,EAAGqC,UAAUW,QAAQ+8L,EAAQ1+Q,MAAOw7G,EAAc1nH,KAAKm/D,MAAMoR,QAAQ1hD,YAIvF,MAAMy8P,EAAU,IAAI/gM,GAAmBM,EAAIA,EAAGf,UAAWe,EAAGoC,iBAC5Dq+L,EAAQp/Q,MAAQlM,KAAKkkB,MACrBlkB,KAAKkkB,MAAQwpE,cAAcI,iBAAiBw9L,EAAQh9L,sBAAqB,GAAM,GAAM,CAEzF,EClEK,IAAMohM,GAAa,MAApB,MAAOA,EACX7vR,YAAoBkwI,EAAkCw8G,GAAlCvsP,mBAAkCA,oBAAsC,CAE5F2vR,0BACE,OAAO,IAAI3G,GAAmBhpR,KAAK+vI,YAAYle,YACjD,CAEA+9J,qBAAqBl9I,GACnB,OAAO,IAAIs2I,GAAmBhpR,KAAK+vI,YAAYle,aAAa24J,mBAC1D,GACA93I,EACA1yI,KAAK+vI,YAAYle,YAErB,CAEAg+J,+BACE,OAAO,IAAI1E,GAAwBnrR,KAAK+vI,YAAYle,YACtD,CAEAi+J,qBACE,OAAO,IAAIvE,GAAcvrR,KAAK+vI,YAAYle,YAC5C,CAEAk+J,8BACE,OAAO,IAAItE,GAAuBzrR,KAAK+vI,YAAYle,YACrD,CAEAm+J,mBACE,OAAO,IAAIb,GAAYnvR,KAAK+vI,YAAYle,YAC1C,CAEAo+J,kBACE,OAAO,IAAIR,GAAWzvR,KAAK+vI,YAAYle,YACzC,CAEAq+J,iCAAiCnE,GAC/B,OAAO,IAAID,GAA4B9rR,KAAK+vI,YAAYle,YAAak6J,EAAmB/rR,KAAKusP,cAC/F,CAEA4jC,uBAAuBpE,GACrB,OAAO,IAAIwC,GAAkBvuR,KAAK+vI,YAAYle,YAAak6J,EAC7D,CAAC5rR,kDAzCUuvR,GAAa5hQ,mHAAb4hQ,EAAatqR,QAAbsqR,EAAa,mBAAbA,CAAa,+BCdxBvqR,uCAAmG,YAChEA,+BAAMA,2BAEvCA,iCAEAA,uCAAwB,cAC6DA,sCAAYA,2BAC/FA,4CAKFA,2BAEAA,uCAAwB,cAC0DA,qCAAUA,2BAC1FA,6CAKFA,2BAEAA,wCAAwB,eACgEA,4CAAiBA,2BACvGA,6CAKFA,2BAEAA,wCAAwB,eAC8DA,yCAAcA,2BAClGA,6CAKFA,2BAEAA,wCAAwB,eAC2DA,sCAAWA,2BAC5FA,6CAKFA,2BAEAA,wCAAwB,eAC4DA,uCAAYA,2BAC9FA,6CAKFA,2BAEAA,wCAAwB,eAC4DA,uCAAYA,2BAC9FA,6CAKFA,2BAEAA,wCAAwB,eAEpBA,+CACFA,2BACAA,6CAKFA,2BAEAA,wCAAwB,eAEpBA,sDACFA,2BACAA,6CAKFA,uEAlFSA,8EAELA,iFAAiC,kCAAjCA,CAAiC,cAAjCA,CAAiC,qBAO5BA,2EAELA,8EAA8B,+BAA9BA,CAA8B,cAA9BA,CAA8B,qBAOzBA,iFAELA,oFAAoC,qCAApCA,CAAoC,cAApCA,CAAoC,qBAO/BA,+EAELA,kFAAkC,mCAAlCA,CAAkC,cAAlCA,CAAkC,qBAO7BA,4EAELA,+EAA+B,gCAA/BA,CAA+B,cAA/BA,CAA+B,qBAO1BA,6EAELA,gFAAgC,iCAAhCA,CAAgC,cAAhCA,CAAgC,qBAO3BA,6EAELA,gFAAgC,iCAAhCA,CAAgC,cAAhCA,CAAgC,qBAO3BA,oFAILA,uFAAuC,wCAAvCA,CAAuC,cAAvCA,CAAuC,qBAOlCA,0FAILA,sEAAsB,8CAAtBA,CAAsB,cAAtBA,CAAsB,sBCjEvB,IAAMirR,GAAiB,MAAxB,MAAOA,EAGXvwR,YAAoBkwI,EAAkCpmG,GAAlC3pC,mBAAkCA,WAGpDA,KAAK+vI,YAAY6+H,mBAAmBr2P,UAAU,KAC5CvY,KAAKw7G,gBAAavtG,EAClBjO,KAAK2pC,IAAIyiB,gBACTpsD,KAAKw7G,WAAax7G,KAAK+vI,YAAYle,YAAYrW,WAC/Cx7G,KAAK2pC,IAAIyiB,gBACTpsD,KAAKqwR,wBAAsB,EAE/B,CAEAC,aAAaC,GACX,MAAMC,EAAS,CACbptR,KAAM,gBACNqtR,cAAc,EACd/kR,KAAM6kR,EAAUlG,uBAAuB9iR,IAAImpR,KAChCx7L,EAAGw7L,EAAGxkR,MAAO9I,KAAMstR,EAAGttR,QAEjCutR,UAAW,OAGPC,EAAe5wR,KAAK6wR,sBACxBN,EAAUpxN,KACVqxN,EACA9iM,cAAcO,aAAasiM,EAAU70K,WAEvCvuD,SAAiB,mBAAyByjO,EAC5C,CAEAE,iBAAiBC,GACf,MAAMP,EAAS,CACbptR,KAAM,UACNqtR,cAAc,EACd/kR,KAAMqlR,EAAcrlR,KAAKnE,IAAImpR,KAClBx7L,EAAGw7L,EAAGxkR,MAAO9I,KAAMstR,EAAGttR,QAEjCutR,UAAW,OAGPC,EAAe5wR,KAAK6wR,sBACxBE,EAAc5xN,KACdqxN,EACA9iM,cAAcO,aAAa8iM,EAAc7sQ,QAG3CipC,SAAiB,uBAA6ByjO,EAChD,CAEAI,eAAeC,GACb,MAAMT,EAAS,CACbptR,KAAM,QACNqtR,cAAc,EACd/kR,KAAMulR,EAAY5G,uBAAuB9iR,IAAImpR,KAClCx7L,EAAGw7L,EAAGxkR,MAAO9I,KAAMstR,EAAGttR,QAEjCutR,UAAW,OAGPC,EAAe5wR,KAAK6wR,sBACxBI,EAAY9xN,KACZqxN,EACA9iM,cAAcO,aAAagjM,EAAY/sQ,QAGzCipC,SAAiB,qBAA2ByjO,EAC9C,CAEAM,cAAcC,GACZ,MAAMX,EAAS,CACbptR,KAAM,OACNqtR,cAAc,EACd/kR,KAAMylR,EAAW9G,uBAAuB9iR,IAAImpR,KACjCx7L,EAAGw7L,EAAGxkR,MAAO9I,KAAMstR,EAAGttR,QAEjCutR,UAAW,OAGPC,EAAe5wR,KAAK6wR,sBACxBM,EAAWhyN,KACXqxN,EACA9iM,cAAcO,aAAakjM,EAAWjtQ,QAGxCipC,SAAiB,oBAA0ByjO,EAC7C,CAEAQ,kBAAkBC,GAChB,MAAMb,EAAS,CACbptR,KAAM,qBACNqtR,cAAc,EACd/kR,KAAM2lR,EAAe3lR,KAAKnE,IAAImpR,KACnBx7L,EAAGw7L,EAAGxkR,MAAO9I,KAAMstR,EAAGttR,QAEjCutR,UAAW,OAGPC,EAAe5wR,KAAK6wR,sBACxBQ,EAAelyN,KACfqxN,EACA9iM,cAAcO,aAAaojM,EAAentQ,QAG5CipC,SAAiB,wBAA8ByjO,EACjD,CAEAU,iBAAiBC,GACf,MAAMf,EAAS,CACbptR,KAAM,oBACNqtR,cAAc,EACd/kR,KAAM6lR,EAAc7lR,KAAKnE,IAAImpR,KAClBx7L,EAAGw7L,EAAGxkR,MAAO9I,KAAMstR,EAAGttR,QAEjCutR,UAAW,OAGPC,EAAe5wR,KAAK6wR,sBACxBU,EAAcpyN,KACdqxN,EACA9iM,cAAcO,aAAasjM,EAAcrtQ,QAG3CipC,SAAiB,uBAA6ByjO,EAChD,CAEAC,sBAAsB1xN,EAAMqxN,EAAQz0K,GAClC,MAAO,CACLy1K,MAAO,CACLC,oBAAqB,KACrBC,gBAAiB,KACjBC,YAAY,EACZhnR,KAAM,MACNinR,SAAS,GAGXC,QAAS,CACPC,SAAS,GAGXv8Q,MAAO,CACLmO,KACE,qGACsDq4F,gDACpB58C,WACpC0wH,cAAe,SACf36F,GAAG,IAGL68L,WAAY,CACVx7H,MAAO,CACL,CACEy7H,UAAW,CACTj/D,SAAU,KAEZ69D,aAAc,CACZr7Q,MAAO,CACLmO,KACE,oGACqDq4F,gDACnB58C,WACpC0wH,cAAe,SACf36F,GAAG,MAIT,CACE88L,UAAW,CACTj/D,SAAU,KAEZ69D,aAAc,CACZr7Q,MAAO,CACLmO,KACE,oGACqDq4F,gDACnB58C,WACpC0wH,cAAe,SACf36F,GAAG,QAOb+8L,YAAa,CACXzB,OAAQ,CACN0B,WAAY,CACVJ,SAAS,KAIf5/I,QAAS,CACPigJ,aAAc,wDACdC,YAAa,4EAA4EjzN,cAE3FqxN,OAAQ,CAACA,GAEb,CAEAH,yBACE9jO,EAAE,gCAAgCm7N,KAChC1nR,KAAKw7G,WAAWG,eAAevtB,qBAAqBpuF,KAAKw7G,WAAWG,eAAex8C,MAAM,IAG3F5S,EAAE,4BAA4Bm7N,KAC5B1nR,KAAKw7G,WAAWO,WAAW3tB,qBAAqBpuF,KAAKw7G,WAAWO,WAAW58C,MAAM,GAErF,CAEAkzN,UAAUC,GACR/lO,EAAE,WAAW+lO,OAAWl5C,IAAI,OAC9B,CAACj5O,kDArNUiwR,GAAiBtiQ,mJAAjBsiQ,EAAiB7lP,6mCDpB9BplC,sCACEA,2CA2FAA,sCAA4E,UAA5EA,CAA4E,UAA5EA,CAA4E,UAA5EA,CAA4E,UAA5EA,CAA4E,YAK/BA,sCAAaA,2BAChDA,oCAAGA,iDAAS6Q,YAAU,wBAAwB,GAAqB7Q,+BAAKA,6BAE1EA,kCAEAA,uCACEA,kCAAOA,oCACPA,uBACFA,+BAIJA,uCAA8D,WAA9DA,CAA8D,WAA9DA,CAA8D,aAGrBA,iCAAOA,2BAC1CA,qCAAGA,iDAAS6Q,YAAU,mBAAmB,GAAqB7Q,8BAAIA,6BAEpEA,mCAEAA,uCACEA,uCAAYA,oCACZA,uBACFA,+BAIJA,uCAA8D,WAA9DA,CAA8D,WAA9DA,CAA8D,aAGrBA,+BAAKA,2BACxCA,qCAAGA,iDAAS6Q,YAAU,iBAAiB,GAAqB7Q,8BAAIA,6BAElEA,mCACFA,6BAGFA,uCAA8D,WAA9DA,CAA8D,WAA9DA,CAA8D,aAGrBA,8BAAIA,2BACvCA,qCAAGA,iDAAS6Q,YAAU,gBAAgB,GAAqB7Q,8BAAIA,6BAEjEA,mCACFA,6BAGFA,uCAA8D,WAA9DA,CAA8D,WAA9DA,CAA8D,aAGrBA,4CAAkBA,2BACrDA,qCAAGA,iDAAS6Q,YAAU,uBAAuB,GAAqB7Q,8BAAIA,6BAExEA,mCACFA,6BAGFA,uCAA8D,WAA9DA,CAA8D,WAA9DA,CAA8D,aAGrBA,2CAAiBA,2BACpDA,qCAAGA,iDAAS6Q,YAAU,sBAAsB,GAAqB7Q,8BAAIA,6BAGvEA,mCACFA,0CAjK2EA,qEAuGvEA,mHAeAA,qnDCnGCirR,CAAiB,KCdjBmC,GAAqB,MAA5B,MAAOA,EACXrwF,UAAUh2L,EAAYoL,GACpB,OAAOo2E,cAAcO,aAAa/hF,EACpC,CAAC/L,kDAHUoyR,EAAqB,mFAArBA,EAAqBt+B,iBAArBs+B,CAAqB,6BCOhCptR,qCAAuD,UAEnDA,oCACFA,yDAUIA,uCACEA,uCAAQA,4CAAmBA,2BAC3BA,gEACFA,8EADEA,8NAGFA,uCACEA,uCAAQA,4CAAmBA,2BAC3BA,gEACFA,8EADEA,uPAKNA,sCAA0E,WAA1EA,CAA0E,YAE9DA,6CAAoBA,2BAAUA,gEAExCA,uEAFwCA,oOAsB9BA,qCACGA,gEAAyEA,qEAAzEA,4NAEHA,qCACGA,gEAAyFA,qEAAzFA,qPAIPA,mCAAoC,WACCA,qCAAYA,2BAC/CA,mCAAIA,gEAA+EA,uEAA/EA,uMC3DX,IAAMqtR,GAAyB,MAAhC,MAAOA,EAKXC,YAAYn7L,GACVt3F,KAAKs3F,aAAeA,EACpBt3F,KAAK0yR,wBAAyB,EAC9B1yR,KAAK2yR,gCAA6B1kR,EAElCjO,KAAK4yR,qBACL5yR,KAAK6yR,gBAELtmO,EAAE,2CAA2C6sL,IAAI,OACnD,CAEAw5C,qBACE,MAAME,EAAY,GAElB,UAAWC,KAAM/yR,KAAKs3F,aAAagzL,mBACjC,UAAWoG,KAAMqC,EAAGrnR,KAClBonR,EAAUlqR,KAAK,CAAExF,KAAMstR,EAAGttR,KAAMmoF,SAAUwnM,EAAG3vR,KAAM8I,MAAOwkR,EAAGxkR,QAIjElM,KAAKgzR,WAAWF,EAClB,CAEAG,yBACE,MAAMH,EAAY,GAClB,UAAWpC,KAAM1wR,KAAK2yR,2BAA2BjnR,KAE/ConR,EAAUlqR,KAAK,CAAExF,KADGstR,EACettR,KAAMmoF,SADrBmlM,EAC2Cn8I,sBAAuBroI,MADlEwkR,EACqFxkR,QAG3GlM,KAAKgzR,WAAWF,EAClB,CAEAE,WAAWF,GACT,MAAMI,EAAS3mO,EAAE,wBAEjBvsD,KAAKmzR,mBA0BCD,EAAQE,UAxBD,CACX1nR,KAAMonR,EACNO,QAAQ,EACRC,WAAW,EACX/8N,MAAM,EACN+xG,MAAO,CAAC,CAAC,EAAG,SACZirH,QAAS,CACP,CACE7nR,KAAM,QAER,CACEA,KAAM,YAER,CACEA,KAAM,CAACA,EAAMf,IACE,YAATA,EACK,GAAG+iF,cAAcO,aAAaviF,EAAKQ,UAAUlM,KAAKs3F,aAAan4B,OAEjEzzD,EAAKQ,SAOtB,CAEAinR,mBACE,MAAMD,EAAS3mO,EAAE,wBAEPA,EAAE1xC,GAAI24Q,UAAUC,YAAY,yBAC9BP,EAAQE,YAAYtnR,SAE9B,CAEA+mR,gBACE,MAAMrC,EAAS,CACbptR,KAAM,gBACNqtR,cAAc,EACd/kR,KAAM1L,KAAKs3F,aAAa+yL,uBAAuB9iR,IAAImpR,KACxCx7L,EAAGw7L,EAAGxkR,MAAO9I,KAAMstR,EAAGttR,KAAMswR,UAAWhD,EAAGnI,gBAIjDoL,EAAkB3zR,KAAKs3F,aAAagzL,mBAAmB/iR,IAAIwrR,KAE7D3vR,KAAM2vR,EAAG3vR,KACT8H,GAAI6nR,EAAG7nR,GACPQ,KAAMqnR,EAAGrnR,KAAKnE,IAAImpR,IAChB,MAAMkD,EAAiBlD,EACjBmD,EAAWD,EAAelL,wBAAwBj7L,iBACxD,MAAO,CACLrqF,KAAMwwR,EAAexwR,KACrB8xF,EAAG0+L,EAAe1nR,MAClBw8Q,wBAAyBkL,EAAelL,wBAAwBp6L,sBAAqB,GAAO,GAC5FwlM,4BAA0C,WAAbD,EAAwB,aAAeA,EACpEH,UAAWE,EAAerL,YAAcqL,EAAerL,iBAAct6Q,EACrEqoF,iBAAkBs9L,EAAet9L,uBAMzCq9L,EAAgB/qR,QACX5I,KAAKs3F,aAAaizL,mCAAmChjR,IAAIwrR,KAExD3vR,KAAM2vR,EAAG3vR,KACT8H,GAAI6nR,EAAG7nR,GACPQ,KAAMqnR,EAAGrnR,KAAKnE,IAAImpR,KAEdttR,KAAMstR,EAAGttR,KACT8xF,EAAGw7L,EAAGxkR,MACNw8Q,6BAAyBz6Q,EACzB6lR,iCAA6B7lR,EAC7BylR,UAAWhD,EAAGnI,YAAcmI,EAAGnI,iBAAct6Q,EAC7CqoF,kBAAkB,SAO5B,MAAMs6L,EAAe5wR,KAAK+zR,4BACxB,gBACA/zR,KAAKs3F,aAAan4B,KAClBqxN,EACAmD,GAGFxmO,SAAiB,sBAA4ByjO,EAC/C,CAEAmD,4BAA4Bx+Q,EAAe4pD,EAAcqxN,EAAQmD,GAC/D,MAAMK,EAAOh0R,KACb,MAAO,CACLwxR,MAAO,CACLC,oBAAqB,KACrBC,gBAAiB,KACjBC,YAAY,EACZhnR,KAAM,MACNotC,OAAQ,CACNk8O,UACED,EAAKE,sBACP,IAIJrC,QAAS,CACPC,SAAS,GAGXv8Q,MAAO,CACLmO,KAAMnO,GAGR08Q,YAAa,CACXzB,OAAQ,CACN0B,WAAY,CACVJ,SAAS,EACT3jM,OAAQ,+BAA+BhvB,MAG3Cg1N,IAAK,CACHp8O,OAAQ,CACN05L,MAAMtpO,GACJ,MAAQmoJ,SAAUnoJ,EACdmoJ,EAAMh6D,kBACR09L,EAAKI,qBAAqB9jI,EAAMojI,UAEpC,KAINxhJ,QAAS,CACPmiJ,YACE,IAAIC,EACJ,OACEA,EADEt0R,KAAKswJ,MAAMwjI,4BAEX,gCAAgC9zR,KAAKswJ,MAAMltJ,qCACrBpD,KAAKo3G,mCAAmCp3G,KAAKk1F,KAAK/1B,gCAClDn/D,KAAKo3G,mCAAmCjqD,gBAC5DntD,KAAKswJ,MAAMo4H,wBACX,EACA,IACA,QACG1oR,KAAKswJ,MAAMwjI,uCAGhB,gCAAgC9zR,KAAKwwR,OAAOptR,qCACtBpD,KAAKo3G,UAAUp3G,KAAKswJ,MAAMltJ,mBAAmBpD,KAAKk1F,KAAK/1B,aAE1Em1N,CACT,GAEF9D,OAAQ,CAACA,GAETkD,UAAW,CACTlD,OAAQmD,GAGd,CAEAS,qBAAqBG,GACnBv0R,KAAK2yR,2BAA6B3yR,KAAKs3F,aAAaizL,mCAAmC3qP,KACrF2E,GAAKA,EAAEr5B,KAAOqpR,GAEhBv0R,KAAK0yR,wBAAyB,EAE9B1yR,KAAKizR,yBACLjzR,KAAKw0R,oBAAoBx0R,KAAKs3F,aAAan4B,KAC7C,CAEA+0N,uBACEl0R,KAAK0yR,wBAAyB,EAC9B1yR,KAAK2yR,gCAA6B1kR,EAClCjO,KAAK4yR,oBACP,CAEA4B,oBAAoBr1N,GAClB,MAAMqxN,EAAS,CACb,CACEp5K,MAAOjqD,gBAAwB+pD,OAAO,GACtC9zG,KAAM,gBACNsI,KAAM1L,KAAK2yR,2BAA2BjnR,KACnCqM,OAAO24Q,GAAmB,IAAbA,EAAGxkR,OAChB8pB,KAAK,CAAChF,EAAGC,IAAOD,EAAE9kB,MAAQ+kB,EAAE/kB,OAAQ,EAAK,GACzC3E,IAAImpR,KAEDttR,KAAMstR,EAAGttR,KACT8xF,EAAGw7L,EAAGxkR,WAMhBskR,EAAO5nR,KAAK5I,KAAKy0R,wBAEjBtnO,SAAiB,+BAAgCntD,KAAK00R,yBAAyBlE,EAAQrxN,GACzF,CAEAs1N,uBACE,MAAO,CACLr9K,MAAOjqD,gBAAwB+pD,OAAO,GACtC9zG,KAAM,gBACNsI,KAAM,CACJ,CACEtI,KAAM,kBACN8xF,EAAGl1F,KAAK2yR,2BAA2BzuQ,MACnCkzF,MAAOjqD,gBAAwB+pD,OAAO,KAI9C,CAEAw9K,yBAAyBlE,EAAarxN,GACpC,MAAO,CACLqyN,MAAO,CACL7mR,KAAM,aAER4K,MAAO,CACLmO,KAAM,iBAERixQ,MAAO,CACLhqR,KAAM,YAERiqR,MAAO,CACLr/Q,MAAO,CACLmO,KAAMy7C,IAGV01N,OAAQ,CACN/C,SAAS,GAEXD,QAAS,CACPC,SAAS,GAEXG,YAAa,CACX6C,UAAW,CACT5C,WAAY,CACVJ,SAAS,EACTp/G,QAAQ,EACRt7D,MAAO,QAET29K,aAAc,EACdC,YAAa,IAGjB9iJ,QAAS,CACPmiJ,YACE,MAAO,gCAAgCr0R,KAAKwwR,OAAOptR,oDAC3BpD,KAAKo3G,UAAUp3G,KAAKswJ,MAAMltJ,mBAAmBpD,KAAKk1F,KAAK/1B,YACjF,GAGFqxN,SAEJ,CAACrwR,kDA3SUqyR,EAAyB,8DAAzBA,EAAyBjoP,ypCDbtCplC,qCAAyC,SAAzCA,CAAyC,SAGnCA,oCACFA,6BAGFA,qCAAwB,SAEpBA,gCACFA,6BAGFA,yCAKFA,2BAEAA,sCAA6C,WAEzCA,kCAEAA,uCAA0C,aAEtCA,qDAKAA,qDAIFA,6BAGFA,4CAMFA,2BAEAA,wCAAgF,YAAhFA,CAAgF,YAAhFA,CAAgF,cAAhFA,CAAgF,WAAhFA,CAAgF,QAAhFA,CAAgF,SAMhEA,wCAAcA,2BAClBA,oCAAIA,8BAAIA,2BACRA,oCAAIA,uCAAaA,+BAIrBA,uCAAO,QAAPA,CAAO,YAEgCA,+BAAKA,2BACxCA,oCACEA,6CAGAA,6CAGFA,6BAEFA,2CAIFA,mCAMRA,wCACEA,mCACFA,oCArEyBA,iFAaJA,kFAKAA,iFAOwBA,kFAwBxBA,mFAGAA,iFAKNA,sHCzDJqtR,CAAyB,sEC+B5BrtR,sCAA6D,UAMzDA,kHAASA,+CAAoB,GAC7BA,6CACFA,4BAAI,0BASNA,uCACEA,kDACFA,uDAEAA,uCAAyF,UAAzFA,CAAyF,SAAzFA,CAAyF,UAIjFA,oCACFA,6BAGFA,sCAAwB,UAEpBA,gCACFA,+BAIJA,uCAA6C,YAEzCA,mCAEAA,wCAA0C,YAA1CA,CAA0C,aAE9BA,uCAAaA,2BAAUA,kEAEjCA,2BACAA,wCAAmC,aACzBA,qCAAWA,2BAAUA,kEAE/BA,+BAIJA,wCAAwE,YAAxEA,CAAwE,YAAxEA,CAAwE,cAAxEA,CAAwE,WAAxEA,CAAwE,QAAxEA,CAAwE,SAMxDA,uCAAaA,2BACjBA,oCAAIA,iCAAOA,+BAIfA,uCAAO,QAAPA,CAAO,YAEoBA,+BAAKA,2BAC5BA,oCAAIA,kEAAsEA,6BAE5EA,oCAAI,YACqBA,qCAAWA,2BAClCA,oCAAIA,kEAA2EA,qFA5BtDA,+IAIFA,oJAoBnBA,8IAIAA,8KAUpBA,uCAAiG,UAAjGA,CAAiG,SAAjGA,CAAiG,UAQzFA,oCACFA,6BAGFA,sCAAwB,UAMpBA,gCACFA,+BAIJA,uCAA6C,YAEzCA,mCAEAA,wCAA0C,YAA1CA,CAA0C,aAE9BA,wCAAcA,2BAAUA,kEAElCA,+BAIJA,wCAAkF,YAAlFA,CAAkF,YAAlFA,CAAkF,cAAlFA,CAAkF,WAAlFA,CAAkF,QAAlFA,CAAkF,SAMlEA,wCAAcA,2BAClBA,oCAAIA,6CAAmBA,+BAI3BA,uCAAO,QAAPA,CAAO,YAEoBA,+BAAKA,2BAC5BA,oCAAIA,kEAA8EA,qFApBxDA,uJAoBtBA,iLAUpBA,uCAA+F,UAA/FA,CAA+F,SAA/FA,CAA+F,UAQvFA,oCACFA,6BAGFA,sCAAwB,UAMpBA,gCACFA,+BAIJA,uCAA6C,YAEzCA,mCAEAA,wCAA0C,YAA1CA,CAA0C,aAE9BA,wCAAcA,2BAAUA,kEAElCA,+BAIJA,wCAAiF,YAAjFA,CAAiF,YAAjFA,CAAiF,cAAjFA,CAAiF,WAAjFA,CAAiF,QAAjFA,CAAiF,SAMjEA,wCAAcA,2BAClBA,oCAAIA,6CAAmBA,+BAI3BA,uCAAO,QAAPA,CAAO,YAEoBA,+BAAKA,2BAC5BA,oCAAIA,kEAA4EA,qFApBtDA,qJAoBtBA,+KAUpBA,uCAAqF,UAArFA,CAAqF,SAArFA,CAAqF,UAI7EA,oCACFA,6BAGFA,sCAAwB,UAEpBA,gCACFA,+BAIJA,uCAA6C,YAEzCA,mCAEAA,wCAA0C,YAA1CA,CAA0C,aAE9BA,qCAAWA,2BAAUA,kEAE/BA,+BAIJA,wCAAsE,YAAtEA,CAAsE,YAAtEA,CAAsE,cAAtEA,CAAsE,WAAtEA,CAAsE,QAAtEA,CAAsE,SAMtDA,wCAAcA,2BAClBA,oCAAIA,+BAAKA,+BAIbA,uCAAO,QAAPA,CAAO,YAEoBA,+BAAKA,2BAC5BA,oCAAIA,kEAAkEA,qFApB/CA,2IAoBnBA,qKAUpBA,uCAAmF,UAAnFA,CAAmF,SAAnFA,CAAmF,UAI3EA,oCACFA,6BAGFA,sCAAwB,UACuEA,gCAAMA,+BAIvGA,uCAA6C,YAEzCA,mCAEAA,wCAA0C,YAA1CA,CAA0C,aAE9BA,oCAAUA,2BAAUA,kEAE9BA,+BAIJA,wCAAqE,YAArEA,CAAqE,YAArEA,CAAqE,cAArEA,CAAqE,WAArEA,CAAqE,QAArEA,CAAqE,SAMrDA,wCAAcA,2BAClBA,oCAAIA,8BAAIA,+BAIZA,uCAAO,QAAPA,CAAO,YAEoBA,+BAAKA,2BAC5BA,oCAAIA,kEAAgEA,qFApB9CA,yIAoBlBA,gKAiCVA,kCAA8CA,0BAACA,oDAC/CA,kCAAmCA,qCAAYA,uDAgC3CA,uCACEA,mCAAI,QACEA,sBAA2BA,2BAC/BA,mCAAIA,sBAAsBA,2BAC1BA,mCAAIA,qDAAwBA,2BAC5BA,mCAAIA,uBAAcA,2BAClBA,oCAAIA,uDAAwCA,2BAC5CA,oCAAIA,uBAAmCA,2BACvCA,oCAAIA,uBAAgCA,6BAExCA,6FARQA,4EACAA,uEACAA,6FACAA,+DACAA,8GACAA,oFACAA,qJAhEtBA,uCAA4G,UAA5GA,CAA4G,UAA5GA,CAA4G,UAIpGA,oCACFA,6BAGFA,qCAAuC,UAEnCA,gCACFA,+BAIJA,uCAA6C,WAA7CA,CAA6C,YAA7CA,CAA6C,WAOrCA,kHAASA,sDAA2B,GACpCA,0CACAA,0CACFA,6BAEFA,mCACFA,2BAEAA,wCAAmF,YAAnFA,CAAmF,YAAnFA,CAAmF,cAAnFA,CAAmF,WAAnFA,CAAmF,QAAnFA,CAAmF,SAMnEA,oCAAUA,2BACdA,oCAAIA,oCAAUA,2BACdA,oCAAIA,uCAAaA,2BACjBA,oCAAIA,8BAAIA,2BACRA,oCACEA,qDACAA,2CAKEA,iCACFA,6BAEFA,oCAAIA,8BAAIA,2BAERA,oCAAIA,yCAAeA,+BAGvBA,uCACEA,uDAWFA,sCAAQ,6CA5CNA,4FACAA,gFAgC8BA,iFCvX/C,IAAM8vR,IAAsB,MAA7B,MAAOA,EAcXp1R,YAAoBkwI,EAAkCmlJ,EAAsCvrP,GAAxE3pC,mBAAkCA,qBAAsCA,WAP5FA,uBAA0C,GAC1CA,qBAAkB,eAIVA,aAAU,IAAI2qD,GAMpB3qD,KAAK+sD,QAAQzkD,IACXtI,KAAK+vI,YAAY6+H,mBAAmBr2P,UAAW7M,IACzCA,GAAQA,EAAKyjI,eACfnvI,KAAKm1R,eACAn1R,KAAK+vI,YAAYle,YAAYlyB,oBAChC3/F,KAAKo1R,oBAGTp1R,KAAKq1R,kBAAoBr1R,KAAK+vI,YAAYle,YAAY7O,wBAI1DhjH,KAAK+sD,QAAQzkD,IACXtI,KAAK+vI,YAAY4D,2BAA2Bp7H,UAAU,KAChDvY,KAAK+vI,YAAYle,YAAYhlB,WAC/B7sG,KAAKm1R,eACLn1R,KAAKq1R,kBAAoBr1R,KAAK+vI,YAAYle,YAAY7O,wBAI9D,CAEA/5E,WACEjpC,KAAKq1R,kBAAoBr1R,KAAK+vI,YAAYle,YAAY7O,oBACxD,CAEAoyK,mBACE7oO,EAAE,uBAAuBI,MAAM,QAC/BJ,EAAE,eAAe6sL,IAAI,OACvB,CAEAk8C,qBACE/oO,EAAE,2BAA2B2lF,SAC/B,CAEAijJ,eACEn1R,KAAKs3F,aAAet3F,KAAKk1R,cAAcvF,0BACvC3vR,KAAKu1R,kBAAoBv1R,KAAKk1R,cAAcrF,+BAC5C7vR,KAAKw1R,iBAAmBx1R,KAAKk1R,cAAcnF,8BAC3C/vR,KAAKixR,YAAcjxR,KAAKk1R,cAAclF,mBACtChwR,KAAKmxR,WAAanxR,KAAKk1R,cAAcjF,kBACrCjwR,KAAK+wR,cAAgB/wR,KAAKk1R,cAAcpF,qBAExC9vR,KAAK2pC,IAAIyiB,gBAETpsD,KAAKy1R,sBACLz1R,KAAK01R,iBAAiBjD,YAAYzyR,KAAKs3F,cAEvCt3F,KAAK21R,6BACL31R,KAAK41R,6BAEL51R,KAAK61R,8BACL71R,KAAK81R,8BAEL91R,KAAK+1R,kBACL/1R,KAAKg2R,kBAELh2R,KAAKi2R,iBACLj2R,KAAKk2R,iBAELl2R,KAAKm2R,oBACLn2R,KAAKo2R,oBACiC,IAAlCp2R,KAAKq1R,kBAAkB5wR,SACI,iBAAzBzE,KAAKq2R,gBACPr2R,KAAKs2R,8BAELt2R,KAAKu2R,uCAGX,CAEAd,sBACEz1R,KAAKw2R,SAASlG,aAAatwR,KAAKs3F,cAChCt3F,KAAKw2R,SAAS1F,iBAAiB9wR,KAAK+wR,eACpC/wR,KAAKw2R,SAASxF,eAAehxR,KAAKixR,aAClCjxR,KAAKw2R,SAAStF,cAAclxR,KAAKmxR,YACjCnxR,KAAKw2R,SAASpF,kBAAkBpxR,KAAKu1R,mBACrCv1R,KAAKw2R,SAASlF,iBAAiBtxR,KAAKw1R,iBACtC,CAEAiB,sBAAsBC,GACpB,MAAMC,EAAiB32R,KAAK+vI,YAAYle,YAAYtyB,iBAAiBm3L,EAAI93J,kBACzE,OAAIjyC,GAAgBgqM,GACX,iBAEFA,EAAevzR,IACxB,CAGAuyR,6BACE,MAAMnF,EAAS,CACb,CACEptR,KAAM,sBACNqtR,cAAc,EACd/kR,KAAM1L,KAAKw1R,iBAAiB9pR,KAAKnE,IAAImpR,KAC1Bx7L,EAAGw7L,EAAGxkR,MAAO9I,KAAMstR,EAAGttR,UAK/BwtR,EAAe5wR,KAAK6wR,sBAAsB,oBAAqB7wR,KAAKw1R,iBAAiBr2N,KAAMqxN,GAEjGrjO,SAAiB,0BAAgCyjO,EACnD,CAEAgF,6BACE,MAAM9C,EAAY,GAElB,UAAWC,KAAM/yR,KAAKw1R,iBAAiB9pR,KACrConR,EAAUlqR,KAAK,CAAExF,KAAM2vR,EAAG3vR,KAAM8I,MAAO6mR,EAAG7mR,QAG5C,MAAMgnR,EAAS3mO,EAAE,4BAEPA,EAAE1xC,GAAI24Q,UAAUC,YAAY,6BAC9BP,EAAQE,YAAYtnR,UAwBtBonR,EAAQE,UArBD,CACX1nR,KAAMonR,EACNO,QAAQ,EACRC,WAAW,EACX/8N,MAAM,EACN+xG,MAAO,CAAC,CAAC,EAAG,SACZirH,QAAS,CACP,CACE7nR,KAAM,QAER,CACEA,KAAM,CAACA,EAAMf,IACE,YAATA,EACK,GAAG+iF,cAAcO,aAAaviF,EAAKQ,UAAUlM,KAAKw1R,iBAAiBr2N,OAErEzzD,EAAKQ,SAOtB,CAIA2pR,8BACE,MAAMrF,EAAS,CACb,CACEptR,KAAM,sBACNqtR,cAAc,EACd/kR,KAAM1L,KAAKu1R,kBAAkB7pR,KAAKnE,IAAImpR,KAC3Bx7L,EAAGw7L,EAAGxkR,MAAO9I,KAAMstR,EAAGttR,UAK/BwtR,EAAe5wR,KAAK6wR,sBAAsB,qBAAsB7wR,KAAKu1R,kBAAkBp2N,KAAMqxN,GAEnGrjO,SAAiB,2BAAiCyjO,EACpD,CAEAkF,8BACE,MAAMhD,EAAY,GAElB,UAAWC,KAAM/yR,KAAKu1R,kBAAkB7pR,KACtConR,EAAUlqR,KAAK,CAAExF,KAAM2vR,EAAG3vR,KAAM8I,MAAO6mR,EAAG7mR,QAG5C,MAAMgnR,EAAS3mO,EAAE,6BAEPA,EAAE1xC,GAAI24Q,UAAUC,YAAY,8BAC9BP,EAAQE,YAAYtnR,UAwBtBonR,EAAQE,UArBD,CACX1nR,KAAMonR,EACNO,QAAQ,EACRC,WAAW,EACX/8N,MAAM,EACN+xG,MAAO,CAAC,CAAC,EAAG,SACZirH,QAAS,CACP,CACE7nR,KAAM,QAER,CACEA,KAAM,CAACA,EAAMf,IACE,YAATA,EACK,GAAG+iF,cAAcO,aAAaviF,EAAKQ,UAAUlM,KAAKu1R,kBAAkBp2N,OAEtEzzD,EAAKQ,SAOtB,CAIAiqR,oBACE,MAAM3F,EAAS,CACb,CACEptR,KAAM,gBACNqtR,cAAc,EACd/kR,KAAM1L,KAAK+wR,cAAcrlR,KAAKnE,IAAImpR,KACvBx7L,EAAGw7L,EAAGxkR,MAAO9I,KAAMstR,EAAGttR,UAK/BwtR,EAAe5wR,KAAK6wR,sBAAsB,UAAW7wR,KAAK+wR,cAAc5xN,KAAMqxN,GAEpFrjO,SAAiB,iBAAuByjO,EAC1C,CAEAwF,oBACE,MAAMtD,EAAY,GAElB,UAAWC,KAAM/yR,KAAK+wR,cAAcrlR,KAClConR,EAAUlqR,KAAK,CAAExF,KAAM2vR,EAAG3vR,KAAM8I,MAAO6mR,EAAG7mR,QAG5C,MAAMgnR,EAAS3mO,EAAE,mBAEPA,EAAE1xC,GAAI24Q,UAAUC,YAAY,oBAC9BP,EAAQE,YAAYtnR,UAwBtBonR,EAAQE,UArBD,CACX1nR,KAAMonR,EACNO,QAAQ,EACRC,WAAW,EACX/8N,MAAM,EACN+xG,MAAO,CAAC,CAAC,EAAG,SACZirH,QAAS,CACP,CACE7nR,KAAM,QAER,CACEA,KAAM,CAACA,EAAMf,IACE,YAATA,EACK,GAAG+iF,cAAcO,aAAaviF,EAAKQ,UAAUlM,KAAK+wR,cAAc5xN,OAElEzzD,EAAKQ,SAOtB,CAIA6pR,kBACE,MAAMvF,EAAS,CACbptR,KAAM,QACNqtR,cAAc,EACd/kR,KAAM1L,KAAKixR,YAAY5G,uBAAuB9iR,IAAImpR,KACvCx7L,EAAGw7L,EAAGxkR,MAAO9I,KAAMstR,EAAGttR,KAAMswR,UAAWhD,EAAGnI,gBAIjDoL,EAAkB3zR,KAAKixR,YAAY3G,mBAAmB/iR,IAAIwrR,KAE5D3vR,KAAM,GAAG2vR,EAAG3vR,aACZ8H,GAAI6nR,EAAG7nR,GACPQ,KAAMqnR,EAAGrnR,KAAKnE,IAAImpR,KAEdttR,KAAMstR,EAAGttR,KACT8xF,EAAGw7L,EAAGxkR,YAMR0kR,EAAe5wR,KAAK42R,+BAA+B,QAAS52R,KAAKixR,YAAY9xN,KAAMqxN,EAAQmD,GACjGxmO,SAAiB,eAAqByjO,EACxC,CAEAoF,kBACE,MAAMlD,EAAY,GAElB,UAAWC,KAAM/yR,KAAKixR,YAAY3G,mBAChC,UAAWoG,KAAMqC,EAAGrnR,KAClBonR,EAAUlqR,KAAK8nR,GAInB,MAAMwC,EAAS3mO,EAAE,iBAEPA,EAAE1xC,GAAI24Q,UAAUC,YAAY,kBAC9BP,EAAQE,YAAYtnR,UAwBtBonR,EAAQE,UArBD,CACX1nR,KAAMonR,EACNO,QAAQ,EACRC,WAAW,EACX/8N,MAAM,EACN+xG,MAAO,CAAC,CAAC,EAAG,SACZirH,QAAS,CACP,CACE7nR,KAAM,QAER,CACEA,KAAM,CAACA,EAAMf,IACE,YAATA,EACK,GAAG+iF,cAAcO,aAAaviF,EAAKQ,UAAUlM,KAAKixR,YAAY9xN,OAEhEzzD,EAAKQ,SAOtB,CAIA+pR,iBACE,MAAMzF,EAAS,CACbptR,KAAM,OACNqtR,cAAc,EACd/kR,KAAM1L,KAAKmxR,WAAW9G,uBAAuB9iR,IAAImpR,KACtCx7L,EAAGw7L,EAAGxkR,MAAO9I,KAAMstR,EAAGttR,KAAMswR,UAAWhD,EAAGnI,gBAIjDoL,EAAkB3zR,KAAKmxR,WAAW7G,mBAAmB/iR,IAAIwrR,KAE3D3vR,KAAM,GAAG2vR,EAAG3vR,YACZ8H,GAAI6nR,EAAG7nR,GACPQ,KAAMqnR,EAAGrnR,KAAKnE,IAAImpR,KAEdttR,KAAMstR,EAAGttR,KACT8xF,EAAGw7L,EAAGxkR,YAMR0kR,EAAe5wR,KAAK42R,+BAA+B,OAAQ52R,KAAKmxR,WAAWhyN,KAAMqxN,EAAQmD,GAC/FxmO,SAAiB,cAAoByjO,EACvC,CAEAsF,iBACE,MAAMpD,EAAY,GAElB,UAAWC,KAAM/yR,KAAKmxR,WAAW7G,mBAC/B,UAAWoG,KAAMqC,EAAGrnR,KAClBonR,EAAUlqR,KAAK8nR,GAInB,MAAMwC,EAAS3mO,EAAE,gBAEPA,EAAE1xC,GAAI24Q,UAAUC,YAAY,iBAC9BP,EAAQE,YAAYtnR,UAwBtBonR,EAAQE,UArBD,CACX1nR,KAAMonR,EACNO,QAAQ,EACRC,WAAW,EACX/8N,MAAM,EACN+xG,MAAO,CAAC,CAAC,EAAG,SACZirH,QAAS,CACP,CACE7nR,KAAM,QAER,CACEA,KAAM,CAACA,EAAMf,IACE,YAATA,EACK,GAAG+iF,cAAcO,aAAaviF,EAAKQ,UAAUlM,KAAKmxR,WAAWhyN,OAE/DzzD,EAAKQ,SAOtB,CAGA2qR,4BACE72R,KAAKq2R,gBAA2C,MAAzBr2R,KAAKq2R,gBAA0B,eAAiB,IAC9C,iBAAzBr2R,KAAKq2R,gBACDr2R,KAAKs2R,8BACLt2R,KAAKu2R,sCACX,CAEAD,8BACEt2R,KAAK2pC,IAAIyiB,gBACT,MAAMokO,EAASxwR,KAAKq1R,kBACjB9tR,IAAImvR,KACMtzR,KAAM,GAAGszR,EAAI5iK,kBAAkB4iK,EAAIj4J,oBAAqBvpC,EAAGwhM,EAAIh4J,yBAEzE3mH,OAAO2+Q,IAAQA,EAAItzR,KAAKsiB,WAAW,iBAEhCkrQ,EAAe5wR,KAAK82R,mBAAmBtG,GAC7CrjO,SAAiB,oBAA0ByjO,EAC7C,CAEA2F,uCACE,MAAMQ,EAAkC/2R,KAAKg3R,gCAEvCxG,EAASxwR,KAAKq1R,kBACjBt9Q,OAAO2+Q,IAAQA,EAAI5iK,aAAapuG,WAAW,iBAC3Cne,IAAImvR,IAEI,CAAEtzR,KAAM,GAAGszR,EAAI5iK,kBAAkB4iK,EAAIj4J,oBAAqBvpC,EADpB,IAA5BwhM,EAAIh4J,sBAA+Bq4J,KAIlDnG,EAAe5wR,KAAK82R,mBAAmBtG,GAC7CrjO,SAAiB,oBAA0ByjO,EAC7C,CAEAoG,gCACE,IAAI9yQ,EAAQ,EACZ,YAAKmxQ,kBACFt9Q,OAAO2+Q,IAAQA,EAAI5iK,aAAapuG,WAAW,iBAC3C/f,QAAQ+wR,IACPxyQ,GAASwyQ,EAAIh4J,wBAGVx6G,CACT,CAEA4yQ,mBAAmBtG,GACjB,MAAO,CACLgB,MAAO,CACL7mR,KAAM,UAERknR,QAAS,CACPC,SAAS,GAEX+C,OAAQ,CACN/C,SAAS,GAEXv8Q,MAAO,CACLmO,UAAMzV,GAER0mR,MAAO,CACLhqR,KAAM,YAERiqR,MAAO,CACLr/Q,MAAO,CACLmO,KAAM,oCAAoC1jB,KAAKq2R,qBAGnDpE,YAAa,CACXzB,OAAQ,CACN0B,WAAY,CACVJ,SAAS,KAIf5/I,QAAS,CACPigJ,aAAc,wDACdC,YAAa,2EAA2EpyR,KAAKq2R,2BAC7FY,eAAe,GAEjBzG,OAAQ,CACN,CACEptR,KAAM,aACNsI,KAAM8kR,EACNC,cAAc,IAItB,CAEAI,sBAAsBt7Q,EAAO4pD,EAAMqxN,GACjC,MAAO,CACLgB,MAAO,CACLC,oBAAqB,KACrBC,gBAAiB,KACjBC,YAAY,EACZhnR,KAAM,OAGRknR,QAAS,CACPC,SAAS,GAGXv8Q,MAAO,CACLmO,KAAMnO,GAGR08Q,YAAa,CACXzB,OAAQ,CACN0B,WAAY,CACVJ,SAAS,EACT3jM,OAAQ,gCAAgChvB,OAI9C+yE,QAAS,CACPigJ,aAAc,wDACdC,YAAa,4EAA4EjzN,cAE3FqxN,SAEJ,CAEAoG,+BAA+BrhR,EAAO4pD,EAAMqxN,EAAQmD,GAClD,MAAO,CACLnC,MAAO,CACLC,oBAAqB,KACrBC,gBAAiB,KACjBC,YAAY,EACZhnR,KAAM,OAGRknR,QAAS,CACPC,SAAS,GAGXv8Q,MAAO,CACLmO,KAAMnO,GAGR08Q,YAAa,CACXzB,OAAQ,CACN0B,WAAY,CACVJ,SAAS,EACT3jM,OAAQ,+BAA+BhvB,OAI7C+yE,QAAS,CACPigJ,aAAc,wDACdC,YAAa,2EAA2EjzN,cAE1FqxN,OAAQ,CAACA,GAETkD,UAAW,CACTlD,OAAQmD,GAGd,CAEAjsR,cACE1H,KAAK+sD,QAAQ5kC,aACf,CAAChoB,kDArjBU80R,GAAsBnnQ,qLAAtBmnQ,EAAsB1qP,4FAUtB6lP,GAAiB,2BACjBoC,GAAyB,y3LDlCtCrtR,sCAAsH,UAAtHA,CAAsH,UAAtHA,CAAsH,UAAtHA,CAAsH,aAAtHA,CAAsH,YAKnFA,6BAAOA,6BAElCA,qCAA8BA,uCAAcA,6BAG9CA,sCAAwB,UAAxBA,CAAwB,UAAxBA,CAAwB,WAG6DA,oCAASA,6BAG1FA,uCAAwB,WAEpBA,yCACFA,6BAGFA,uCAAwB,WACmEA,mCAAQA,6BAEnGA,uCAAwB,WAC+DA,iCAAMA,6BAG7FA,uCAAwB,WAC6DA,gCAAKA,6BAG1FA,uCAAwB,WAEpBA,yDACFA,6BAGFA,uCAAwB,WAEpBA,6CACFA,6BAEFA,2CAUFA,2BAEAA,wCAA6C,aAEzCA,yCACFA,2BAEAA,4CAIAA,8CA2DAA,6CA2DAA,6CA2DAA,6CAmDAA,6CAiDAA,6CA0EFA,0CApX2BA,sFAiBgDA,uEAILA,wEA2DIA,4EA2DDA,2EA2DLA,sEAmDDA,qEAiDOA,gQC/TrE8vR,CAAsB,sECZ/B9vR,yCAA+BA,kHAASA,iCAAM,GAC5CA,iCACFA,4BCLG,IAAM+xR,IAA0B,MAAjC,MAAOA,EAIXr3R,YAAoB6+Q,EAAgCjtJ,GAAhCzxH,kBAAgCA,yBAClDA,KAAKyxH,kBAAkB0lK,YAAY5+Q,UAAW7M,IAC5C1L,KAAK8f,QAAUpU,EAAKoU,QACpB9f,KAAK8uI,eAAiBpjI,EAAKojI,eAC3B9uI,KAAKm2D,MAAI,GAGXn2D,KAAKyxH,kBAAkB2lK,YAAY7+Q,UAAU,KAC3CvY,KAAK0oF,MAAI,GAIX1oF,KAAKyxH,kBAAkB4lK,cAAc9+Q,UAAU,KAC7CvY,KAAKq1K,MAAI,EAEb,CAEAl/G,OACEn2D,KAAK0+Q,WAAW17N,cAAc9f,WAAWn8B,MAAMk6E,QAAU,OAC3D,CAEAyH,OACE1oF,KAAK0+Q,WAAW17N,cAAc9f,WAAWn8B,MAAMk6E,QAAU,MAC3D,CAEAo0F,OACEr1K,KAAKyxH,kBAAkBntC,QACzB,CAACnkF,kDA/BU+2R,GAA0BppQ,4IAA1BopQ,EAA0B3sP,2WDRvCplC,sCAAgD,UAAhDA,CAAgD,WAG1CA,+BAAW,QAAXA,CAAW,QAAXA,CAAW,SAIbA,2BACAA,sCACEA,sBACFA,2BACAA,6CAGFA,oCALIA,kGAEOA,qnDCHA+xR,CAA0B,KCJvC,IAKII,GALAC,GAAO,CACXA,QAAe,UACXC,GAAmB,KAAMC,GAAe,KAKxCC,IAAa,CAAE,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAE9FC,GAAS,CACL,EAAa,KACb,EAAY,MACZ,EAAY,MACZ,GAAY,IACZ,IAAc,IACd,IAAc,IACd,IAAa,KACb,IAAc,IACd,IAAc,IACd,IAAa,KACb,IAAa,KACb,IAAa,KACb,IAAa,KACb,IAAa,KACb,IAAa,KACb,IAAa,KACb,IAAc,IACd,IAAa,KACb,IAAa,KACb,GAAa,MAGjBC,GAAW,SAASC,IAA8C,GAA1BH,IAAWxmR,QAAQ2mR,KAAmBJ,GAAeE,GAAM,GAAKE,EAAI,EAG5GC,GAAS,SAASD,GAAiBL,GAAmBK,EAAID,GAASC,EAAK,EAC5E,SAASE,KAAaD,GAAO,MAH7B,SAASE,MAAeJ,GAAS,KAAO,CAGJI,EAAc,CAElD,SAASC,GAAWvsR,GAAmE,QAA1B8iC,EAAsB,GAAYhqC,EAAI,EAAG+rB,EAAM7kB,EAAKjH,OAAQD,EAAI+rB,IAAO/rB,EAAGgqC,EAAEhqC,GAAKkH,EAAK60I,WAAW/7I,GAAI,OAAOgqC,CAAG,CAE5K,SAAS0pP,GAAYxsR,GAEpB,QADI8iC,EAAsB,GAClBhqC,EAAI,EAAGA,EAAKkH,EAAKjH,QAAQ,IAAMD,EAAGgqC,EAAEhqC,GAAK6R,OAAO0qI,aAAar1I,EAAK60I,WAAW,EAAE/7I,IAAMkH,EAAK60I,WAAW,EAAE/7I,EAAE,IAAI,IACrH,OAAOgqC,EAAE1xB,KAAK,GACf,CAMA,SAASq7Q,GAAYzsR,GAEpB,QADI8iC,EAAsB,GAClBhqC,EAAI,EAAGA,EAAKkH,EAAKjH,QAAQ,IAAMD,EAAGgqC,EAAEhqC,GAAK6R,OAAO0qI,aAAar1I,EAAK60I,WAAW,EAAE/7I,EAAE,IAAMkH,EAAK60I,WAAW,EAAE/7I,IAAI,IACrH,OAAOgqC,EAAE1xB,KAAK,GACf,CAEA,IAAIs7Q,GAAQ,SAAS1sR,GACpB,IAAI2sR,EAAK3sR,EAAK60I,WAAW,GAAI+3I,EAAK5sR,EAAK60I,WAAW,GAClD,OAAS,KAAN83I,GAAoB,KAANC,EAAmBJ,GAAYxsR,EAAK3F,MAAM,IAClD,KAANsyR,GAAoB,KAANC,EAAmBH,GAAYzsR,EAAK3F,MAAM,IAClD,OAANsyR,EAAqB3sR,EAAK3F,MAAM,GAC5B2F,CACR,EAEI6sR,GAAW,SAAclkQ,GAA2B,OAAOhe,OAAO0qI,aAAa1sH,EAAI,EACnFmkQ,GAAW,SAAcnkQ,GAA2B,OAAOhe,OAAO0qI,aAAa1sH,EAAI,EAkBnFokQ,GAAQ,KACRC,IAAS,EACTC,GAAa,oEACjB,SAASC,GAAczxQ,GAGrB,QAFIqnB,EAAI,GACJ6pP,EAAK,EAAGC,EAAK,EAAGO,EAAK,EAAGC,EAAK,EAAGC,EAAK,EAAGC,EAAK,EAAGC,EAAK,EAChDz0R,EAAI,EAAGA,EAAI2iB,EAAM1iB,QAExBq0R,GADAT,EAAKlxQ,EAAMo5H,WAAW/7I,OACX,EAEXu0R,GAAW,EAALV,IAAW,GADjBC,EAAKnxQ,EAAMo5H,WAAW/7I,OACK,EAE3Bw0R,GAAW,GAALV,IAAY,GADlBO,EAAK1xQ,EAAMo5H,WAAW/7I,OACM,EAC5By0R,EAAU,GAALJ,EACDlsQ,MAAM2rQ,GACRU,EAAKC,EAAK,GACDtsQ,MAAMksQ,KACfI,EAAK,IAEPzqP,GAAKmqP,GAAW71R,OAAOg2R,GAAMH,GAAW71R,OAAOi2R,GAAMJ,GAAW71R,OAAOk2R,GAAML,GAAW71R,OAAOm2R,GAEjG,OAAOzqP,CACT,CA2BA,SAAS0qP,GAAc/xQ,GACrB,IAAIqnB,EAAI,GACoBsqP,EAAK,EAAGC,EAAK,EAAGC,EAAK,EAAGC,EAAK,EACzD9xQ,EAAQA,EAAMvd,QAAQ,mCAAoC,IAAIA,QAAQ,eAAgB,IACtF,QAASpF,EAAI,EAAGA,EAAI2iB,EAAM1iB,QACxBq0R,EAAKH,GAAWznR,QAAQiW,EAAMrkB,OAAO0B,MACrCu0R,EAAKJ,GAAWznR,QAAQiW,EAAMrkB,OAAO0B,MAErCgqC,GAAKn4B,OAAO0qI,aADP+3I,GAAM,EAAIC,GAAM,GAIV,MAFXC,EAAKL,GAAWznR,QAAQiW,EAAMrkB,OAAO0B,SAGnCgqC,GAAKn4B,OAAO0qI,cAFH,GAALg4I,IAAY,EAAIC,GAAM,IAMjB,MAFXC,EAAKN,GAAWznR,QAAQiW,EAAMrkB,OAAO0B,SAGnCgqC,GAAKn4B,OAAO0qI,cAFH,EAALi4I,IAAW,EAAIC,IAKvB,OAAOzqP,CACT,CACA,IAAI2qP,GAAwB,WAAa,cAAcC,OAAW,YAAsBr+N,QAAY,YAAsBA,QAAQs+N,SAAa,OAAiBt+N,QAAQs+N,SAASx4R,IAAM,CAA3J,GAExBy4R,GAA4B,WAC/B,UAAUF,OAAW,IAAa,CACjC,IAAIG,GAAQH,OAAOr/Q,KACnB,IAAIw/Q,EAAM,IAAMH,OAAOr/Q,KAAK,MAAO,OAAmC,CAA1B,MAAaw/Q,GAAO,CAAM,CACtE,OAAOA,EAAO,SAAS/tD,EAAKguD,GAAO,OAAQA,EAAO,IAAIJ,OAAO5tD,EAAKguD,GAAO,IAAIJ,OAAO5tD,EAAM,EAAI4tD,OAAOr/Q,KAAK+P,KAAKsvQ,OAAM,CAEtH,OAAO,WAAY,CACpB,CAPgC,GAQ5BK,GAA4B,WAC/B,UAAUL,OAAW,IAAa,OAAO,EACzC,IAAI/kQ,EAAIilQ,GAAY,CAAC,GAAG,IACxB,QAAIjlQ,GAEe,GADXA,EAAE/d,SAAS,WACV7R,MACV,CANgC,GAShC,SAASi1R,GAAYnpQ,GAEpB,OAAG4oQ,GAAgBC,OAAOO,MAAQP,OAAOO,MAAMppQ,GAAO,IAAI6oQ,OAAO7oQ,UACnDqpQ,WAAc,IAAc,IAAIA,WAAWrpQ,GAAO,IAAIzW,MAAMyW,EAE3E,CAEA,SAASspQ,GAAetpQ,GAEvB,OAAG4oQ,GAAgBC,OAAOU,YAAcV,OAAOU,YAAYvpQ,GAAO,IAAI6oQ,OAAO7oQ,UAC/DqpQ,WAAc,IAAc,IAAIA,WAAWrpQ,GAAO,IAAIzW,MAAMyW,EAE3E,CAEA,IAAIwpQ,GAAM,SAAapwR,GACtB,OAAGwvR,GAAgBG,GAAY3vR,EAAG,UAC3BA,EAAEkH,MAAM,IAAItJ,IAAI,SAAS8sB,GAA0B,OAAyB,IAAlBA,EAAEksH,WAAW,EAAW,EAC1F,EAEA,SAASy5I,GAAKrwR,GACb,UAAUyT,YAAgB,IAAa,OAAO28Q,GAAIpwR,GAElD,QADI6hO,EAAM,IAAIpuN,YAAYzT,EAAElF,QAASk4J,EAAO,IAAIi9H,WAAWpuD,GAClDhnO,EAAE,EAAGA,GAAGmF,EAAElF,SAAUD,EAAGm4J,EAAKn4J,GAAuB,IAAlBmF,EAAE42I,WAAW/7I,GACvD,OAAOgnO,CACR,CAEA,SAASyuD,GAAIvuR,GACZ,GAAGoO,MAAM2C,QAAQ/Q,GAAO,OAAOA,EAAKnE,IAAI,SAAS+vB,GAAK,OAAOjhB,OAAO0qI,aAAazpH,EAAI,GAAGxa,KAAK,IAC/D,QAA1B0xB,EAAsB,GAAYhqC,EAAI,EAAGA,EAAIkH,EAAKjH,SAAUD,EAAGgqC,EAAEhqC,GAAK6R,OAAO0qI,aAAar1I,EAAKlH,IAAK,OAAOgqC,EAAE1xB,KAAK,GACvH,CAOA,SAASo9Q,GAAKxuR,GACb,UAAU0R,YAAe,IAAa,MAAM,IAAI3W,MAAM,eACtD,GAAGiF,aAAgB0R,YAAa,OAAO88Q,GAAK,IAAIN,WAAWluR,IAG3D,QADI8iC,EAAI,IAAI10B,MAAMpO,EAAKjH,QACfD,EAAI,EAAGA,EAAIkH,EAAKjH,SAAUD,EAAGgqC,EAAEhqC,GAAKkH,EAAKlH,GACjD,OAAOgqC,CACR,CAEA,IAAI2rP,GAAUhB,GAAU,SAASiB,GAAQ,OAAOhB,OAAO3+Q,OAAO2/Q,EAAK7yR,IAAI,SAASikO,GAAO,OAAO4tD,OAAOiB,SAAS7uD,GAAOA,EAAM8tD,GAAY9tD,EAAM,GAAK,EAAI,SAAS4uD,GAC9J,UAAUR,WAAe,IAAa,CACrC,IAAIp1R,EAAI,EAAG81R,EAAS,EACpB,IAAI91R,EAAI,EAAGA,EAAI41R,EAAK31R,SAAUD,EAAG81R,GAAUF,EAAK51R,GAAGC,OACnD,IAAI+pC,EAAI,IAAIorP,WAAWU,GACnB/pQ,EAAM,EACV,IAAI/rB,EAAI,EAAG81R,EAAS,EAAG91R,EAAI41R,EAAK31R,OAAQ61R,GAAU/pQ,IAAO/rB,EACxD+rB,EAAM6pQ,EAAK51R,GAAGC,OACX21R,EAAK51R,aAAco1R,WAAYprP,EAAEhoC,IAAI4zR,EAAK51R,GAAI81R,GACb9rP,EAAEhoC,IAAZ,iBAAX4zR,EAAK51R,GAAsB,IAAIo1R,WAAWG,GAAIK,EAAK51R,KACvD,IAAIo1R,WAAWQ,EAAK51R,IADyC81R,GAGzE,OAAO9rP,EAER,MAAO,GAAG/zB,OAAOmW,MAAM,GAAIwpQ,EAAK7yR,IAAI,SAASikO,GAAO,OAAO1xN,MAAM2C,QAAQ+uN,GAAOA,EAAM,GAAGzlO,MAAMsS,KAAKmzN,EAAM,GAC3G,EAkCI+uD,GAAO,UAAWC,GAAO,mBAqB7B,SAASC,GAAQpmQ,GAAuD,QAAxBma,EAAI,GAAIhqC,EAAI6vB,EAAE5vB,OAAO,EAASD,GAAG,GAAGgqC,GAAKna,EAAEvxB,OAAO0B,KAAM,OAAOgqC,CAAG,CAClH,SAASksP,GAAKn/Q,EAAUgpB,GAAyB,IAAI9oB,EAAE,GAAGF,EAAG,OAAOE,EAAEhX,QAAQ8/B,EAAE9oB,EAAEipE,GAAK,IAAIngD,EAAE9oB,EAAEhX,QAAQgX,CAAE,CACzG,SAASk/Q,GAAKp/Q,EAAUgpB,GAAyB,IAAI9oB,EAAE,GAAGF,EAAE,OAAOE,EAAEhX,QAAQ8/B,EAAE9oB,EAAEipE,GAAK,IAAIngD,EAAE9oB,EAAEhX,QAAQgX,CAAE,CACxG,SAASm/Q,GAAMr/Q,EAAUgpB,GAAyB,IAAI9oB,EAAE,GAAGF,EAAG,OAAOE,EAAEhX,QAAQ8/B,EAAE9oB,EAAEA,EAAEipE,GAAK,IAAIngD,EAAE9oB,EAAEhX,OAAQ,CAG1G,IAAIo2R,GAAqB3vQ,KAAKolD,IAAI,EAAE,IACpC,SAASwqN,GAAMv/Q,EAAUgpB,GAAyB,OAAGhpB,EAAEs/Q,IAAOt/Q,GAAGs/Q,GAHjE,SAASE,IAAOx/Q,EAAUgpB,GAAyB,IAAI9oB,EAAE,GAAGyP,KAAKqlD,MAAMh1D,GAAI,OAAOE,EAAEhX,QAAQ8/B,EAAE9oB,EAAEipE,GAAK,IAAIngD,EAAE9oB,EAAEhX,QAAQgX,CAAE,CAGxCs/Q,CAAOx/Q,EAAEgpB,GAFxF,SAASy2P,IAAOz/Q,EAAUgpB,GAAyB,IAAI9oB,EAAE,GAAGF,EAAG,OAAOE,EAAEhX,QAAQ8/B,EAAE9oB,EAAEipE,GAAK,IAAIngD,EAAE9oB,EAAEhX,QAAQgX,CAAE,CAEeu/Q,CAAtB9vQ,KAAKqlD,MAAMh1D,GAAoBgpB,EAAI,CAEvI,SAAS02P,GAActxR,EAAcnF,GAA6BA,OAAmBmF,EAAElF,QAAU,GAA/BD,EAAIA,GAAK,IAAwD,MAAR,GAAhBmF,EAAE42I,WAAW/7I,KAA6C,MAAR,GAAlBmF,EAAE42I,WAAW/7I,EAAE,KAA6C,MAAR,GAAlBmF,EAAE42I,WAAW/7I,EAAE,KAA6C,MAAR,GAAlBmF,EAAE42I,WAAW/7I,EAAE,KAA6C,MAAR,GAAlBmF,EAAE42I,WAAW/7I,EAAE,KAA6C,KAAR,GAAlBmF,EAAE42I,WAAW/7I,EAAE,KAA4C,MAAR,GAAlBmF,EAAE42I,WAAW/7I,EAAE,GAAgB,CACnV,IAAI02R,GAAiC,CACpC,CAAC,MAAO,UACR,CAAC,MAAO,UACR,CAAC,MAAO,WACR,CAAC,MAAO,aACR,CAAC,MAAO,YACR,CAAC,MAAO,UACR,CAAC,MAAO,aAELC,GAAmC,CACtC,CAAC,IAAK,MAAO,WACb,CAAC,IAAK,MAAO,YACb,CAAC,IAAK,MAAO,SACb,CAAC,IAAK,MAAO,SACb,CAAC,IAAK,MAAO,OACb,CAAC,IAAK,MAAO,QACb,CAAC,IAAK,MAAO,QACb,CAAC,IAAK,MAAO,UACb,CAAC,IAAK,MAAO,aACb,CAAC,IAAK,MAAO,WACb,CAAC,IAAK,MAAO,YACb,CAAC,IAAK,MAAO,aAoCVC,GAAY,CACf,EAAI,UACJ,EAAI,IACJ,EAAI,OACJ,EAAI,QACJ,EAAI,WACJ,EAAI,KACJ,GAAI,QACJ,GAAI,WACJ,GAAI,QACJ,GAAI,UACJ,GAAI,SACJ,GAAI,WACJ,GAAI,QACJ,GAAI,SACJ,GAAI,aACJ,GAAI,gBACJ,GAAI,OACJ,GAAI,UACJ,GAAI,cACJ,GAAI,iBACJ,GAAI,sBACJ,GAAI,sBACJ,GAAI,2BACJ,GAAI,QACJ,GAAI,YACJ,GAAI,SACJ,GAAI,WACJ,GAAI,IACJ,GAAI,+DAMDC,GAAkB,CACrB,EAAI,GAAI,EAAI,GAAI,EAAI,GAAI,EAAI,GAE5B,GAAK,EAAG,GAAK,EAAG,GAAK,EAAG,GAAK,EAE7B,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAEpC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GACpC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5B,GAAK,EAAG,GAAK,EAAG,GAAK,EAAG,GAAK,EAE7B,GAAK,EAAG,GAAI,GACZ,GAAI,GAAI,GAAI,GAAI,GAAI,GACpB,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5B,GAAI,GAAI,GAAI,GAAI,GAAI,GACpB,GAAI,GAAI,GAAI,GAAI,GAAI,GACpB,GAAI,GAKDC,IAAkB,CAErB,EAAI,4BACJ,GAAI,4BAGJ,EAAI,iCACJ,GAAI,iCAGJ,EAAI,kCACJ,GAAI,kCAGJ,EAAI,uCACJ,GAAI,uCAGJ,GAAI,8CAGJ,GAAI,uDAGJ,GAAI,sDAGJ,GAAI,gEAGL,SAASC,GAASlnQ,EAAcmnQ,EAAcC,GAM7C,QALIC,EAAMrnQ,EAAI,GAAI,EAAK,EACnBsnQ,EAAItnQ,EAAIqnQ,EACRE,EAAM,EAAGC,EAAM,EAAGC,EAAI,EACtBC,EAAM,EAAGC,EAAM,EAAGC,EAAI,EACtBC,EAAIhxQ,KAAKosF,MAAMqkL,GACbK,EAAMR,IAEXM,GADAI,EAAIhxQ,KAAKosF,MAAMqkL,IACPE,EAAMD,EACdK,EAAIC,EAAIF,EAAMD,IACVJ,EAAIO,EAAK,QACbP,EAAI,GAAKA,EAAIO,GACbN,EAAMC,EAAKA,EAAMC,EACjBC,EAAMC,EAAKA,EAAMC,EAGlB,GADGA,EAAIT,IAAQQ,EAAMR,GAAKS,EAAIF,EAAKD,EAAIF,IAAcK,EAAID,EAAKF,EAAID,KAC9DJ,EAAO,MAAO,CAAC,EAAGC,EAAMI,EAAGG,GAC/B,IAAI56O,EAAIn2B,KAAKosF,MAAMokL,EAAMI,EAAEG,GAC3B,MAAO,CAAC56O,EAAGq6O,EAAII,EAAIz6O,EAAE46O,EAAGA,EACzB,CACA,SAASE,GAAoB5gR,EAAa6gR,EAAcC,GACvD,GAAG9gR,EAAI,SAAWA,EAAI,EAAG,OAAO,KAChC,IAAI+uC,EAAU,EAAF/uC,EAAMyP,EAAOE,KAAKosF,MAAM,OAAS/7F,EAAI+uC,IAAQgyO,EAAI,EACzDC,EAAK,GACLC,EAAI,CAAChB,EAAElxO,EAAMmyO,EAAEzxQ,EAAMuD,EAAE,OAAOhT,EAAE+uC,GAAMt/B,EAAKkqE,EAAE,EAAEp1D,EAAE,EAAEyE,EAAE,EAAEm4P,EAAE,EAAExtL,EAAE,EAAEytL,EAAE,EAAEt7O,EAAE,GAOzE,GANGn2B,KAAK0B,IAAI4vQ,EAAIjuQ,GAAK,OAAMiuQ,EAAIjuQ,EAAI,GAChC6tQ,GAAQA,EAAKQ,WAAUtyO,GAAQ,MAC/BkyO,EAAIjuQ,EAAI,QACViuQ,EAAIjuQ,EAAI,EACK,SAARvD,IAAiBwxQ,EAAIC,EAAIzxQ,EAAO,IAAKs/B,IAAQkyO,EAAIhB,IAE3C,KAATlxO,EAAciyO,EAAOF,EAAK,CAAC,KAAK,GAAG,IAAM,CAAC,KAAK,EAAE,IAAKC,EAAI,UAC5C,IAAThyO,EAAaiyO,EAAOF,EAAK,CAAC,KAAK,EAAE,IAAM,CAAC,KAAK,EAAE,GAAIC,EAAI,MAC1D,CACDhyO,EAAO,MAAMA,EAEhB,IAAI/lB,EAAI,IAAIxb,KAAK,KAAM,EAAG,GAC1Bwb,EAAEs4P,QAAQt4P,EAAEsvN,UAAYvpM,EAAO,GAC/BiyO,EAAO,CAACh4P,EAAEwvN,cAAexvN,EAAEuvN,WAAW,EAAEvvN,EAAEsvN,WAC1CyoC,EAAM/3P,EAAEu4P,SACLxyO,EAAO,KAAIgyO,GAAOA,EAAM,GAAK,GAC7BD,IAAIC,EAgFT,SAASS,IAAczyO,EAAe9b,GAEpCA,EAAE,IAAM,IACR,IAAI8tP,EAAMhyO,EAAKwyO,SACf,OAAGxyO,EAAO,KAAIgyO,GAAOA,EAAM,GAAK,GACzBA,CACT,CAtFeS,CAAcx4P,EAAGg4P,GAAI,CAEnCC,SAAItnM,EAAIqnM,EAAK,GAAIC,EAAI18P,EAAIy8P,EAAK,GAAIC,EAAIj4P,EAAIg4P,EAAK,GAC/CC,EAAIG,EAAI3xQ,EAAO,GAAIA,EAAOE,KAAKosF,MAAMtsF,EAAO,IAC5CwxQ,EAAIttL,EAAIlkF,EAAO,GAAIA,EAAOE,KAAKosF,MAAMtsF,EAAO,IAC5CwxQ,EAAIE,EAAI1xQ,EACRwxQ,EAAIn7O,EAAIi7O,EACDE,CACR,CACA,IAAIQ,GAA2B,IAAIj0Q,KAAK,KAAM,GAAI,GAAI,EAAG,EAAG,GACxDk0Q,IAA2BD,GAAY3vQ,UACvC6vQ,IAA2B,IAAIn0Q,KAAK,KAAM,EAAG,EAAG,EAAG,EAAG,GAC1D,SAASo0Q,GAAc5hR,EAAYqhR,GAClC,IAAIQ,EAAqB7hR,EAAE8R,UAC3B,OAAGuvQ,EAAUQ,GAAS,UACd7hR,GAAK2hR,MAAaE,GAAS,QAC3BA,GAASH,IAAoG,KAAxE1hR,EAAE8hR,oBAAmCL,GAAYK,uBAAuB,KACtH,CAIA,SAASC,GAAkB9uP,GAC1B,OAA0B,GAAlBA,EAAEt9B,QAAQ,KAAcs9B,EAAIA,EAAE5kC,QAAQ,2BAA4B,KAC3E,CAsBA,SAAS2zR,GAAgBhiR,GACxB,IAAuDizB,EAAnDgvP,EAAItyQ,KAAKosF,MAAMpsF,KAAK87B,IAAI97B,KAAK0B,IAAIrR,IAAI2P,KAAKuyQ,QAE9C,OAAuBjvP,EAApBgvP,IAAK,GAAMA,IAAK,EAAQjiR,EAAEmiR,YAAY,GAAGF,GACpCtyQ,KAAK0B,IAAI4wQ,IAAM,EAjBxB,SAASG,IAAcpiR,GACtB,IAAIuoO,EAAKvoO,EAAE,EAAE,GAAG,GACZizB,EAAI8uP,GAAkB/hR,EAAEmxE,QAAQ,KACb,OADsBl+C,EAAE/pC,QAAUq/O,IACzDt1M,EAAIjzB,EAAEmiR,YAAY,KAAUj5R,QAAUq/O,EAAUt1M,EACzCjzB,EAAEs8O,cAAc,EACxB,CAY+B8lC,CAAcpiR,GAC9B,KAANiiR,EAAcjiR,EAAEmxE,QAAQ,IAAIw/H,OAAO,EAAE,IAV9C,SAAS0xE,IAAcriR,GACtB,IAAIizB,EAAI8uP,GAAkB/hR,EAAEmxE,QAAQ,KACpC,OAAQl+C,EAAE/pC,QAAU8W,EAAE,EAAE,GAAG,KAAa,MAANizB,GAAmB,OAANA,EAAcjzB,EAAEmiR,YAAY,GAAKlvP,CACjF,CAQUovP,CAAcriR,GAEhB+hR,GA3BR,SAASO,IAAkBrvP,GAC1B,OAAqB,GAAlBA,EAAEt9B,QAAQ,KAAmBs9B,EACzBA,EAAE5kC,QAAQ,8BAA8B,OAAOA,QAAQ,eAAe,QAC9E,CAwB0Bi0R,CAAkBrvP,EAAExwB,eAC9C,CAaA,SAAS8/Q,GAAYviR,EAAW6gR,GAC/B,cAAc7gR,GACb,IAAK,SAAU,OAAOA,EACtB,IAAK,UAAW,OAAOA,EAAI,OAAS,QACpC,IAAK,SAAU,OAAU,EAAFA,KAASA,EAAIA,EAAEjF,SAAS,IAAMinR,GAAgBhiR,GACrE,IAAK,YAAa,MAAO,GACzB,IAAK,SACJ,GAAQ,MAALA,EAAW,MAAO,GACrB,GAAGA,aAAawN,KAAM,OAAOg1Q,GAAW,GAAIZ,GAAc5hR,EAAG6gR,GAAQA,EAAKQ,UAAWR,GAEvF,MAAM,IAAI31R,MAAM,wCAA0C8U,EAC3D,CAUA,SAASyiR,IAAerzR,EAAiBszR,EAAgB1hR,EAAK2hR,GAC7D,IAAiC1B,EAA7BhuP,EAAE,GAAI2vP,EAAG,EAAGC,EAAG,EAAGlpM,EAAI34E,EAAI24E,EAAQmpM,EAAO,EAC7C,OAAO1zR,GACN,KAAK,GACJuqF,EAAI34E,EAAI24E,EAAI,IAEb,KAAK,IACL,OAAO+oM,EAAIx5R,QACV,KAAK,EAAG,KAAK,EAAG+3R,EAAMtnM,EAAI,IAAKmpM,EAAO,EAAG,MACzC,QAAS7B,EAAMtnM,EAAI,IAAOmpM,EAAO,EAChC,MACF,KAAK,IACL,OAAOJ,EAAIx5R,QACV,KAAK,EAAG,KAAK,EAAG+3R,EAAMjgR,EAAIujB,EAAGu+P,EAAOJ,EAAIx5R,OAAQ,MAChD,KAAK,EAAG,OAAO02R,GAAO5+Q,EAAIujB,EAAE,GAAG,GAC/B,KAAK,EAAG,OAAOq7P,GAAO5+Q,EAAIujB,EAAE,GAAG,GAC/B,QAAS,OAAOq7P,GAAO5+Q,EAAIujB,EAAE,GAAG,GAC/B,MACF,KAAK,IACL,OAAOm+P,EAAIx5R,QACV,KAAK,EAAG,KAAK,EAAG+3R,EAAMjgR,EAAIgoB,EAAG85P,EAAOJ,EAAIx5R,OAAQ,MAChD,KAAK,EAAG,OAAOy2R,GAAK3+Q,EAAI8kC,GAAG,GAC3B,QAAS,OAAO65O,GAAK3+Q,EAAI8kC,GAAG,GAC3B,MACF,KAAK,IACL,OAAO48O,EAAIx5R,QACV,KAAK,EAAG,KAAK,EAAG+3R,EAAM,GAAGjgR,EAAImgR,EAAE,IAAI,GAAI2B,EAAOJ,EAAIx5R,OAAQ,MAC1D,QAAS,KAAM,oBAAsBw5R,EACpC,MACF,KAAK,GACL,OAAOA,EAAIx5R,QACV,KAAK,EAAG,KAAK,EAAG+3R,EAAMjgR,EAAImgR,EAAG2B,EAAOJ,EAAIx5R,OAAQ,MAChD,QAAS,KAAM,oBAAsBw5R,EACpC,MACF,KAAK,GACL,OAAOA,EAAIx5R,QACV,KAAK,EAAG,KAAK,EAAG+3R,EAAMjgR,EAAI2yF,EAAGmvL,EAAOJ,EAAIx5R,OAAQ,MAChD,QAAS,KAAM,sBAAwBw5R,EACtC,MACF,KAAK,IACJ,GAAU,KAAPA,GAAqB,MAAPA,GAAsB,MAAPA,GAAsB,OAAPA,GAAuB,QAAPA,EAAe,KAAM,sBAAwBA,EAC5G,OAAa,IAAV1hR,EAAIgS,GAAmB,KAAP0vQ,GAAqB,MAAPA,GAEpBG,EAAVF,GAAO,EAAgB,IAARA,EAAY,IAAO,IACnB,IAARA,EAAY,GAAK,GAC3BC,EAAKjzQ,KAAKqlD,MAAO6tN,GAAK7hR,EAAIogR,EAAIpgR,EAAIgS,MACzB,GAAG6vQ,IAAID,EAAK,GACV,MAARF,EAA2B,IAAPE,EAAW,IAAM,GAAGA,EAAGC,GAC9C5vP,EAAIksP,GAAKyD,EAAG,EAAID,GACL,OAARD,EAAqBzvP,EAAE09K,OAAO,EAAE,GAC5B,IAAM19K,EAAE09K,OAAO,EAAE+xE,EAAIx5R,OAAO,KATmBi2R,GAAKn+Q,EAAIogR,EAAGsB,EAAIx5R,QAUvE,KAAK,GACL,OAAOw5R,GACN,IAAK,MAAO,IAAK,OAAQzB,EAAY,GAANjgR,EAAIi/Q,EAAKj/Q,EAAImgR,EAAG,MAC/C,IAAK,MAAO,IAAK,OAAQF,EAAuB,IAAV,GAANjgR,EAAIi/Q,EAAKj/Q,EAAImgR,GAAMngR,EAAI2yF,EAAG,MAC1D,IAAK,MAAO,IAAK,OAAQstL,EAAkC,IAAV,IAAV,GAANjgR,EAAIi/Q,EAAKj/Q,EAAImgR,GAAMngR,EAAI2yF,GAAMhkF,KAAKqlD,MAAMh0D,EAAIogR,EAAEpgR,EAAIgS,GAAI,MACvF,QAAS,KAAM,uBAAyB0vQ,EACvCI,EAAsB,IAAfJ,EAAIx5R,OAAe,EAAI,EAAG,MACnC,KAAK,IACJ+3R,EAAMtnM,EAAGmpM,EAAO,EAGlB,OADaA,EAAO,EAAI3D,GAAK8B,EAAK6B,GAAQ,EAE3C,CAKA,SAASC,GAAS30R,GAEjB,GAAGA,EAAElF,QADG,EACU,OAAOkF,EAEzB,QADIw1E,EAAKx1E,EAAElF,OAFH,EAEgB+pC,EAAI7kC,EAAEuiN,OAAO,EAAE/sI,GACjCA,GAAGx1E,EAAElF,OAAQ06E,GAHX,EAGiB3wC,IAAIA,EAAE/pC,OAAS,EAAI,IAAM,IAAMkF,EAAEuiN,OAAO/sI,EAHzD,GAIR,OAAO3wC,CACR,CACA,IAAI+vP,GAAO,KAYX,SAASC,GAAcP,EAAgB1hR,GACtC,IAAIiyB,EACAzxB,EAAMkhR,EAAI/sR,QAAQ,KAAO+sR,EAAI/sR,QAAQ,KAAO,EAChD,GAAG+sR,EAAI/iQ,MAAM,eAAgB,CAC5B,GAAU,GAAP3e,EAAU,MAAO,SACf,GAAGA,EAAM,EAAG,MAAO,IAAMiiR,GAAcP,GAAM1hR,GAClD,IAAIkiR,EAASR,EAAI/sR,QAAQ,MAAoB,IAAXutR,IAAeA,EAAOR,EAAI/sR,QAAQ,MACpE,IAAIitC,EAAKjzB,KAAKosF,MAAMpsF,KAAK87B,IAAIzqC,GAAK2O,KAAKuyQ,QAAQgB,EAG/C,GAFGtgP,EAAK,IAAGA,GAAMsgP,IAEK,KADtBjwP,GAAKjyB,EAAI2O,KAAKolD,IAAI,GAAGnyB,IAAKu/O,YAAY3gR,EAAI,GAAG0hR,EAAOtgP,GAAIsgP,IACnDvtR,QAAQ,KAAa,CACzB,IAAIwtR,EAAQxzQ,KAAKosF,MAAMpsF,KAAK87B,IAAIzqC,GAAK2O,KAAKuyQ,QAG1C,KAFsB,IAAnBjvP,EAAEt9B,QAAQ,KAAas9B,EAAIA,EAAE1rC,OAAO,GAAK,IAAM0rC,EAAE09K,OAAO,GAAK,MAAQwyE,EAAQlwP,EAAE/pC,OAAO05C,GACpF3P,GAAK,MAAQkwP,EAAQvgP,GACF,OAAlB3P,EAAE09K,OAAO,EAAE,IAEhB19K,GADAA,EAAIA,EAAE1rC,OAAO,GAAK0rC,EAAE09K,OAAO,EAAEuyE,GAAU,IAAMjwP,EAAE09K,OAAO,EAAEuyE,IAClD70R,QAAQ,aAAa,MAAMA,QAAQ,QAAQ,MAElD4kC,EAAIA,EAAE5kC,QAAQ,MAAM,IAAG,CAExB4kC,EAAIA,EAAE5kC,QAAQ,2BAA2B,SAAS+0R,EAAGC,EAAGC,EAAGC,GAAM,OAAOF,EAAKC,EAAKC,EAAG5yE,OAAO,GAAGuyE,EAAOtgP,GAAIsgP,GAAU,IAAMK,EAAG5yE,OAAO/tK,GAAM,GAAK,EAAC,MAC1I3P,EAAIjyB,EAAIs7O,cAAc96O,GAC7B,OAAGkhR,EAAI/iQ,MAAM,WAAasT,EAAEtT,MAAM,cAAasT,EAAIA,EAAE09K,OAAO,EAAE19K,EAAE/pC,OAAO,GAAK,IAAM+pC,EAAE1rC,OAAO0rC,EAAE/pC,OAAO,IACjGw5R,EAAI/iQ,MAAM,QAAUsT,EAAEtT,MAAM,SAAQsT,EAAIA,EAAE5kC,QAAQ,MAAM,MACpD4kC,EAAE5kC,QAAQ,IAAI,IACtB,CACA,IAAIm1R,GAAQ,yBASRC,GAAO,iBACPC,GAAa,WACbC,GAAQ,sBACZ,SAASC,GAAMlkQ,GAEd,QADYoI,EAARmL,EAAI,GACAhqC,EAAI,EAAGA,GAAKy2B,EAAIx2B,SAAUD,EAAG,OAAQ6+B,EAAGpI,EAAIslH,WAAW/7I,IAC9D,KAAK,GAAI,MACT,KAAK,GAAIgqC,GAAI,IAAK,MAClB,KAAK,GAAIA,GAAI,IAAK,MAClB,QAASA,GAAIn4B,OAAO0qI,aAAa19G,GAElC,OAAOmL,CACR,CACA,SAAS4wP,GAAI7iR,EAAgBgoB,GAA2B,IAAI9F,EAAKvT,KAAKolD,IAAI,GAAG/rC,GAAI,MAAO,GAAIrZ,KAAKqlD,MAAMh0D,EAAMkiB,GAAIA,CAAK,CACtH,SAASqpI,GAAIvrJ,EAAgBgoB,GAC5B,IAAI86P,EAAQ9iR,EAAM2O,KAAKosF,MAAM/6F,GAAMkiB,EAAKvT,KAAKolD,IAAI,GAAG/rC,GACpD,OAAIA,GAAK,GAAKrZ,KAAKqlD,MAAM8uN,EAAQ5gQ,IAAKh6B,OAAe,EAC9CymB,KAAKqlD,MAAM8uN,EAAQ5gQ,EAC3B,CAWA,SAAS6gQ,GAAc30R,EAAiBszR,EAAgB1hR,GACvD,GAA0B,KAAvB5R,EAAK41I,WAAW,KAAc09I,EAAI/iQ,MAAM+jQ,IAAa,CACvD,IAAIM,EAAOtB,EAAIr0R,QAAQ,OAAO,IAAIA,QAAQ,MAAM,IAAIA,QAAQ,KAAK,IACjE,OAAG2S,GAAO,EAAU+iR,GAAc,IAAKC,EAAMhjR,GACtC,IAAM+iR,GAAc,IAAKC,GAAOhjR,GAAO,IAE/C,GAAsC,KAAnC0hR,EAAI19I,WAAW09I,EAAIx5R,OAAS,GAAW,OA5E3C,SAAS+6R,IAAa70R,EAAiBszR,EAAgB1hR,GAEtD,QADIQ,EAAMkhR,EAAIx5R,OAAS,EACS,KAA1Bw5R,EAAI19I,WAAWxjI,EAAI,MAAaA,EACtC,OAAO0iR,GAAU90R,EAAMszR,EAAI/xE,OAAO,EAAEnvM,GAAMR,EAAM2O,KAAKolD,IAAI,GAAG,GAAG2tN,EAAIx5R,OAAOsY,IAC3E,CAwEkDyiR,CAAa70R,EAAMszR,EAAK1hR,GACzE,IAAwB,IAArB0hR,EAAI/sR,QAAQ,KAAa,OAlF7B,SAASwuR,IAAc/0R,EAAiBszR,EAAgB1hR,GACvD,IAAIojR,EAAO1B,EAAIr0R,QAAQ20R,GAAK,IAAKqB,EAAM3B,EAAIx5R,OAASk7R,EAAKl7R,OACzD,OAAOg7R,GAAU90R,EAAMg1R,EAAMpjR,EAAM2O,KAAKolD,IAAI,GAAG,EAAEsvN,IAAQl7M,GAAK,IAAIk7M,EACnE,CA+EoCF,CAAc/0R,EAAMszR,EAAK1hR,GAC5D,IAAwB,IAArB0hR,EAAI/sR,QAAQ,KAAa,OAAOstR,GAAcP,EAAK1hR,GACtD,GAAyB,KAAtB0hR,EAAI19I,WAAW,GAAW,MAAO,IAAI++I,GAAc30R,EAAKszR,EAAI/xE,OAAsB,KAAf+xE,EAAIn7R,OAAO,GAAQ,EAAE,GAAGyZ,GAC9F,IAAIiyB,EACA54B,EAAsBiqR,EAAIC,EAAIC,EAAO70Q,KAAK0B,IAAIrQ,GAAM2sN,EAAO3sN,EAAM,EAAI,IAAM,GAC/E,GAAG0hR,EAAI/iQ,MAAM,SAAU,OAAOguM,EAAO4xD,GAAMiF,EAAK9B,EAAIx5R,QACpD,GAAGw5R,EAAI/iQ,MAAM,WACZsT,MAA2B,OAA3BA,EAAIssP,GAAMv+Q,EAAI,MAAkBiyB,EAAI,IAC7BA,EAAE/pC,OAASw5R,EAAIx5R,OAAS+pC,EAAI2wP,GAAMlB,EAAI/xE,OAAO,EAAE+xE,EAAIx5R,OAAO+pC,EAAE/pC,SAAW+pC,EAE/E,GAAI54B,EAAIqoR,EAAI/iQ,MAAM6jQ,IAAS,OAtD5B,SAASiB,IAAapqR,EAAqBmqR,EAAiB72D,GAC3D,IAAI+2D,EAAMpgJ,SAASjqI,EAAE,GAAG,IAAKsqR,EAAKh1Q,KAAKqlD,MAAMwvN,EAAOE,GAAMvlR,EAAOwQ,KAAKosF,MAAM4oL,EAAGD,GAC3EE,EAAOD,EAAKxlR,EAAKulR,EAAMG,EAAMH,EACjC,OAAO/2D,GAAiB,IAATxuN,EAAa,GAAK,GAAGA,GAAQ,KAAe,IAARylR,EAAYz7M,GAAK,IAAK9uE,EAAE,GAAGnR,OAAS,EAAImR,EAAE,GAAGnR,QAAUk2R,GAAKwF,EAAIvqR,EAAE,GAAGnR,QAAUmR,EAAE,GAAK,IAAMA,EAAE,GAAK8kR,GAAK0F,EAAIxqR,EAAE,GAAGnR,QACrK,CAkDmCu7R,CAAapqR,EAAGmqR,EAAM72D,GACxD,GAAG+0D,EAAI/iQ,MAAM,UAAW,OAAOguM,EAAO4xD,GAAMiF,EAAK9B,EAAIx5R,OAASw5R,EAAI/sR,QAAQ,MAC1E,GAAI0E,EAAIqoR,EAAI/iQ,MAAM8jQ,IACjBxwP,SAAI4wP,GAAI7iR,EAAK3G,EAAE,GAAGnR,QAAQmF,QAAQ,aAAa,MAAMu1R,GAAMvpR,EAAE,KAAKhM,QAAQ,MAAM,IAAIu1R,GAAMvpR,EAAE,KAAKhM,QAAQ,WAAW,SAAS+0R,GAAIC,IAAM,MAAO,IAAMA,GAAKl6M,GAAK,IAAKy6M,GAAavpR,EAAe,IAAInR,OAAOm6R,GAAGn6R,OAAS,IACzL,IAAtBw5R,EAAI/sR,QAAQ,MAAes9B,EAAIA,EAAE5kC,QAAQ,OAAO,KAGxD,GADAq0R,EAAMA,EAAIr0R,QAAQ,YAAa,MAC3BgM,EAAIqoR,EAAI/iQ,MAAM,gBACjB,OAAOguM,EAAOk2D,GAAIW,EAAMnqR,EAAE,GAAGnR,QAAQmF,QAAQ,kBAAkB,OAAOA,QAAQ,YAAY,OAAOA,QAAQ,OAAOgM,EAAE,GAAGnR,OAAO,KAAK,KAElI,GAAImR,EAAIqoR,EAAI/iQ,MAAM,qBAAuB,OAAOguM,EAAOo1D,GAASxD,GAAMiF,EAAK,IAC3E,GAAInqR,EAAIqoR,EAAI/iQ,MAAM,qBACjB,OAAO3e,EAAM,EAAI,IAAM+iR,GAAc30R,EAAMszR,GAAM1hR,GAAO+hR,GAAS,IAAIpzQ,KAAKosF,MAAM/6F,GAvClF,SAAS8jR,IAAM9jR,EAAgBgoB,GAC9B,OAAIA,GAAK,GAAKrZ,KAAKqlD,OAAOh0D,EAAI2O,KAAKosF,MAAM/6F,IAAM2O,KAAKolD,IAAI,GAAG/rC,KAAK9/B,OACxD,EAED,CACR,CAkCyF47R,CAAM9jR,EAAK3G,EAAE,GAAGnR,UAAY,IAAMi2R,GAAK5yH,GAAIvrJ,EAAK3G,EAAE,GAAGnR,QAAQmR,EAAE,GAAGnR,QAE1J,GAAImR,EAAIqoR,EAAI/iQ,MAAM,YAAc,OAAOokQ,GAAc30R,EAAKszR,EAAIr0R,QAAQ,SAAS,IAAI2S,GACnF,GAAI3G,EAAIqoR,EAAI/iQ,MAAM,2BACjBsT,SAAIisP,GAAQ6E,GAAc30R,EAAMszR,EAAIr0R,QAAQ,SAAS,IAAK2S,IAC1DsjR,EAAK,EACEpF,GAAQA,GAAQwD,EAAIr0R,QAAQ,MAAM,KAAKA,QAAQ,QAAQ,SAASyqB,IAAG,OAAOwrQ,EAAGrxP,EAAE/pC,OAAO+pC,EAAE1rC,OAAO+8R,KAAU,MAAJxrQ,GAAQ,IAAI,EAAG,IAE5H,GAAG4pQ,EAAI/iQ,MAAMgkQ,IACZ1wP,MACO,KADPA,EAAI8wP,GAAc30R,EAAM,aAAc4R,IACvB2vM,OAAO,EAAE,GAAK,KAAO19K,EAAE09K,OAAO,EAAG,GAAK,IAAM19K,EAAE09K,OAAO,GAErE,IAAIo0E,EAAK,GACT,GAAI1qR,EAAIqoR,EAAI/iQ,MAAM,+BACjB2kQ,SAAK30Q,KAAK4lC,IAAiBl7C,EAAE,GAAUnR,OAAO,GAC9Cq7R,EAAKvE,GAASwE,EAAM70Q,KAAKolD,IAAI,GAAGuvN,GAAI,GAAG,GACvCrxP,EAAI,GAAK06L,EAEoB,MAD7Bo3D,EAAKb,GAAU,IAAkB7pR,EAAE,GAAWkqR,EAAG,KAC3Ch9R,OAAOw9R,EAAG77R,OAAO,KAAW67R,EAAKA,EAAGp0E,OAAO,EAAEo0E,EAAG77R,OAAO,GAAK,KAClE+pC,GAAK8xP,EAAkB1qR,EAAE,GAAY,IAAmBA,EAAE,IAC1D0qR,EAAK1F,GAAMkF,EAAG,GAAGD,IACXp7R,OAASmR,EAAE,GAAGnR,SAAQ67R,EAAKnB,GAAMvpR,EAAE,GAAGs2M,OAAOt2M,EAAE,GAAGnR,OAAO67R,EAAG77R,SAAW67R,GAC7E9xP,GAAK8xP,EAGN,GAAI1qR,EAAIqoR,EAAI/iQ,MAAM,iCACjB2kQ,SAAK30Q,KAAK4lC,IAAI5lC,KAAKC,IAAIvV,EAAE,GAAGnR,OAAQmR,EAAE,GAAGnR,QAAQ,GAE1CykO,IADP42D,EAAKvE,GAASwE,EAAM70Q,KAAKolD,IAAI,GAAGuvN,GAAI,GAAG,IACrB,KAAKC,EAAG,GAAK,GAAK,MAAQ,KAAOA,EAAG,GAAKnF,GAAKmF,EAAG,GAAGD,GAAMjqR,EAAE,GAAK,IAAMA,EAAE,GAAKglR,GAAMkF,EAAG,GAAGD,GAAKn7M,GAAK,IAAK,EAAEm7M,EAAG,EAAIjqR,EAAE,GAAGnR,OAASmR,EAAE,GAAGnR,SAExJ,GAAImR,EAAIqoR,EAAI/iQ,MAAM,YAEjB,OADAsT,EAAIssP,GAAMv+Q,EAAK,GACZ0hR,EAAIx5R,QAAU+pC,EAAE/pC,OAAe+pC,EAC3B2wP,GAAMlB,EAAI/xE,OAAO,EAAE+xE,EAAIx5R,OAAO+pC,EAAE/pC,SAAW+pC,EAEnD,GAAI54B,EAAIqoR,EAAI/iQ,MAAM,uBAAyB,CAC1CsT,EAAI,GAAKjyB,EAAImwE,QAAQxhE,KAAK4lC,IAAIl7C,EAAE,GAAGnR,OAAO,KAAKmF,QAAQ,YAAY,MACnEi2R,EAAKrxP,EAAEt9B,QAAQ,KACf,IAAIqvR,EAAOtC,EAAI/sR,QAAQ,KAAO2uR,EAAIW,EAAOvC,EAAIx5R,OAAS+pC,EAAE/pC,OAAS87R,EACjE,OAAOpB,GAAMlB,EAAI/xE,OAAO,EAAEq0E,GAAQ/xP,EAAIyvP,EAAI/xE,OAAO+xE,EAAIx5R,OAAO+7R,GAAK,CAElE,GAAI5qR,EAAIqoR,EAAI/iQ,MAAM,sBACjB2kQ,SAAK/3H,GAAIvrJ,EAAK3G,EAAE,GAAGnR,QACZ8X,EAAM,EAAI,IAAM+iR,GAAc30R,EAAMszR,GAAM1hR,GAAO+hR,GA5E1D,SAASmC,IAAIlkR,GACZ,OAAGA,EAAM,YAAcA,GAAM,WAAoB,IAAIA,GAAO,EAAS,EAAJA,EAAUA,EAAI,EAAE,GAC1E,GAAG2O,KAAKosF,MAAM/6F,EACtB,CAyEmEkkR,CAAIlkR,IAAM3S,QAAQ,aAAa,OAAOA,QAAQ,QAAQ,SAAS+0R,IAAM,MAAO,OAASA,GAAGl6R,OAAS,EAAIi2R,GAAK,EAAE,EAAEiE,GAAGl6R,QAAU,IAAMk6R,EAAI,GAAK,IAAMjE,GAAKmF,EAAGjqR,EAAE,GAAGnR,QAE/N,OAAOw5R,GACN,IAAK,aAAc,OAAOqB,GAAc30R,EAAM,WAAY4R,GAC1D,IAAK,UACL,IAAK,SACL,IAAK,QAAS,IAAI8X,GAAIiqQ,GAASxD,GAAMiF,EAAK,IAAK,MAAa,MAAN1rQ,GAAY60M,EAAO70M,GAAI,GAC7E,IAAK,aAAc,OAAOirQ,GAAc30R,EAAM,aAAa4R,GAAK3S,QAAQ,OAAO,KAC/E,IAAK,WAAY,OAAO01R,GAAc30R,EAAM,WAAW4R,GAAK3S,QAAQ,OAAO,KAG5E,MAAM,IAAInD,MAAM,uBAAyBw3R,EAAM,IAChD,CAUA,SAASyC,GAAezC,EAAgB1hR,GACvC,IAAIiyB,EACAzxB,EAAMkhR,EAAI/sR,QAAQ,KAAO+sR,EAAI/sR,QAAQ,KAAO,EAChD,GAAG+sR,EAAI/iQ,MAAM,eAAgB,CAC5B,GAAU,GAAP3e,EAAU,MAAO,SACf,GAAGA,EAAM,EAAG,MAAO,IAAMmkR,GAAezC,GAAM1hR,GACnD,IAAIkiR,EAASR,EAAI/sR,QAAQ,MAAoB,IAAXutR,IAAeA,EAAOR,EAAI/sR,QAAQ,MACpE,IAAIitC,EAAKjzB,KAAKosF,MAAMpsF,KAAK87B,IAAIzqC,GAAK2O,KAAKuyQ,QAAQgB,EAG/C,GAFGtgP,EAAK,IAAGA,GAAMsgP,KACjBjwP,GAAKjyB,EAAI2O,KAAKolD,IAAI,GAAGnyB,IAAKu/O,YAAY3gR,EAAI,GAAG0hR,EAAOtgP,GAAIsgP,IAClDvjQ,MAAM,QAAS,CACpB,IAAIwjQ,EAAQxzQ,KAAKosF,MAAMpsF,KAAK87B,IAAIzqC,GAAK2O,KAAKuyQ,SACpB,IAAnBjvP,EAAEt9B,QAAQ,KAAas9B,EAAIA,EAAE1rC,OAAO,GAAK,IAAM0rC,EAAE09K,OAAO,GAAK,MAAQwyE,EAAQlwP,EAAE/pC,OAAO05C,GACpF3P,GAAK,MAAQkwP,EAAQvgP,GAC1B3P,EAAIA,EAAE5kC,QAAQ,MAAM,IAAG,CAExB4kC,EAAIA,EAAE5kC,QAAQ,2BAA2B,SAAS+0R,EAAGC,EAAGC,EAAGC,GAAM,OAAOF,EAAKC,EAAKC,EAAG5yE,OAAO,GAAGuyE,EAAOtgP,GAAIsgP,GAAU,IAAMK,EAAG5yE,OAAO/tK,GAAM,GAAK,EAAC,MAC1I3P,EAAIjyB,EAAIs7O,cAAc96O,GAC7B,OAAGkhR,EAAI/iQ,MAAM,WAAasT,EAAEtT,MAAM,cAAasT,EAAIA,EAAE09K,OAAO,EAAE19K,EAAE/pC,OAAO,GAAK,IAAM+pC,EAAE1rC,OAAO0rC,EAAE/pC,OAAO,IACjGw5R,EAAI/iQ,MAAM,QAAUsT,EAAEtT,MAAM,SAAQsT,EAAIA,EAAE5kC,QAAQ,MAAM,MACpD4kC,EAAE5kC,QAAQ,IAAI,IACtB,CACA,SAAS+2R,GAAch2R,EAAiBszR,EAAgB1hR,GACvD,GAA0B,KAAvB5R,EAAK41I,WAAW,KAAc09I,EAAI/iQ,MAAM+jQ,IAAa,CACvD,IAAIM,EAAOtB,EAAIr0R,QAAQ,OAAO,IAAIA,QAAQ,MAAM,IAAIA,QAAQ,KAAK,IACjE,OAAG2S,GAAO,EAAUokR,GAAc,IAAKpB,EAAMhjR,GACtC,IAAMokR,GAAc,IAAKpB,GAAOhjR,GAAO,IAE/C,GAAsC,KAAnC0hR,EAAI19I,WAAW09I,EAAIx5R,OAAS,GAAW,OArC3C,SAASm8R,IAAcj2R,EAAiBszR,EAAgB1hR,GAEvD,QADIQ,EAAMkhR,EAAIx5R,OAAS,EACS,KAA1Bw5R,EAAI19I,WAAWxjI,EAAI,MAAaA,EACtC,OAAO0iR,GAAU90R,EAAMszR,EAAI/xE,OAAO,EAAEnvM,GAAMR,EAAM2O,KAAKolD,IAAI,GAAG,GAAG2tN,EAAIx5R,OAAOsY,IAC3E,CAiCkD6jR,CAAcj2R,EAAMszR,EAAK1hR,GAC1E,IAAwB,IAArB0hR,EAAI/sR,QAAQ,KAAa,OAjC7B,SAAS2vR,IAAel2R,EAAiBszR,EAAgB1hR,GACxD,IAAIojR,EAAO1B,EAAIr0R,QAAQ20R,GAAK,IAAKqB,EAAM3B,EAAIx5R,OAASk7R,EAAKl7R,OACzD,OAAOg7R,GAAU90R,EAAMg1R,EAAMpjR,EAAM2O,KAAKolD,IAAI,GAAG,EAAEsvN,IAAQl7M,GAAK,IAAIk7M,EACnE,CA8BoCiB,CAAel2R,EAAMszR,EAAK1hR,GAC7D,IAAwB,IAArB0hR,EAAI/sR,QAAQ,KAAa,OAAOwvR,GAAezC,EAAK1hR,GACvD,GAAyB,KAAtB0hR,EAAI19I,WAAW,GAAW,MAAO,IAAIogJ,GAAch2R,EAAKszR,EAAI/xE,OAAsB,KAAf+xE,EAAIn7R,OAAO,GAAQ,EAAE,GAAGyZ,GAC9F,IAAIiyB,EACA54B,EAAsBiqR,EAAIC,EAAIC,EAAO70Q,KAAK0B,IAAIrQ,GAAM2sN,EAAO3sN,EAAM,EAAI,IAAM,GAC/E,GAAG0hR,EAAI/iQ,MAAM,SAAU,OAAOguM,EAAOwxD,GAAKqF,EAAK9B,EAAIx5R,QACnD,GAAGw5R,EAAI/iQ,MAAM,WACZsT,SAAK,GAAGjyB,EAAiB,IAARA,IAAWiyB,EAAI,IACzBA,EAAE/pC,OAASw5R,EAAIx5R,OAAS+pC,EAAI2wP,GAAMlB,EAAI/xE,OAAO,EAAE+xE,EAAIx5R,OAAO+pC,EAAE/pC,SAAW+pC,EAE/E,GAAI54B,EAAIqoR,EAAI/iQ,MAAM6jQ,IAAS,OArK5B,SAAS+B,IAAalrR,EAAqBmqR,EAAiB72D,GAC3D,OAAOA,GAAiB,IAAT62D,EAAa,GAAK,GAAGA,GAAQr7M,GAAK,IAAK9uE,EAAE,GAAGnR,OAAS,EAAImR,EAAE,GAAGnR,OAC9E,CAmKmCq8R,CAAalrR,EAAGmqR,EAAM72D,GACxD,GAAG+0D,EAAI/iQ,MAAM,UAAW,OAAOguM,EAAOwxD,GAAKqF,EAAK9B,EAAIx5R,OAASw5R,EAAI/sR,QAAQ,MACzE,GAAI0E,EAAIqoR,EAAI/iQ,MAAM8jQ,IAEjBxwP,OACAA,GADAA,GAAK,GAAGjyB,GAAK3S,QAAQ,aAAa,MAAMu1R,GAAMvpR,EAAE,KAAKhM,QAAQ,MAAM,IAAIu1R,GAAMvpR,EAAE,MACzEhM,QAAQ,WAAW,SAAS+0R,GAAIC,IAErC,MAAO,IAAMA,GAAKl6M,GAAK,IAAKy6M,GAAMvpR,EAAE,IAAInR,OAAOm6R,GAAGn6R,OAAS,IAC/B,IAAtBw5R,EAAI/sR,QAAQ,MAAes9B,EAAIA,EAAE5kC,QAAQ,OAAO,KAGxD,GADAq0R,EAAMA,EAAIr0R,QAAQ,YAAa,MAC3BgM,EAAIqoR,EAAI/iQ,MAAM,gBACjB,OAAOguM,GAAQ,GAAG62D,GAAMn2R,QAAQ,kBAAkB,OAAOA,QAAQ,YAAY,OAAOA,QAAQ,OAAOgM,EAAE,GAAGnR,OAAO,KAAK,KAErH,GAAImR,EAAIqoR,EAAI/iQ,MAAM,qBAAuB,OAAOguM,EAAOo1D,GAAU,GAAGyB,GACpE,GAAInqR,EAAIqoR,EAAI/iQ,MAAM,qBACjB,OAAO3e,EAAM,EAAI,IAAMokR,GAAch2R,EAAMszR,GAAM1hR,GAAO+hR,GAAU,GAAG/hR,GAAQ,IAAMmoE,GAAK,IAAI9uE,EAAE,GAAGnR,QAElG,GAAImR,EAAIqoR,EAAI/iQ,MAAM,YAAc,OAAOylQ,GAAch2R,EAAKszR,EAAIr0R,QAAQ,SAAS,IAAI2S,GACnF,GAAI3G,EAAIqoR,EAAI/iQ,MAAM,2BACjBsT,SAAIisP,GAAQkG,GAAch2R,EAAMszR,EAAIr0R,QAAQ,SAAS,IAAK2S,IAC1DsjR,EAAK,EACEpF,GAAQA,GAAQwD,EAAIr0R,QAAQ,MAAM,KAAKA,QAAQ,QAAQ,SAASyqB,IAAG,OAAOwrQ,EAAGrxP,EAAE/pC,OAAO+pC,EAAE1rC,OAAO+8R,KAAU,MAAJxrQ,GAAQ,IAAI,EAAG,IAE5H,GAAG4pQ,EAAI/iQ,MAAMgkQ,IACZ1wP,MACO,KADPA,EAAImyP,GAAch2R,EAAM,aAAc4R,IACvB2vM,OAAO,EAAE,GAAK,KAAO19K,EAAE09K,OAAO,EAAG,GAAK,IAAM19K,EAAE09K,OAAO,GAErE,IAAIo0E,EAAK,GACT,GAAI1qR,EAAIqoR,EAAI/iQ,MAAM,+BACjB2kQ,SAAK30Q,KAAK4lC,IAAiBl7C,EAAE,GAAUnR,OAAO,GAC9Cq7R,EAAKvE,GAASwE,EAAM70Q,KAAKolD,IAAI,GAAGuvN,GAAI,GAAG,GACvCrxP,EAAI,GAAK06L,EAEoB,MAD7Bo3D,EAAKb,GAAU,IAAkB7pR,EAAE,GAAWkqR,EAAG,KAC3Ch9R,OAAOw9R,EAAG77R,OAAO,KAAW67R,EAAKA,EAAGp0E,OAAO,EAAEo0E,EAAG77R,OAAO,GAAK,KAClE+pC,GAAK8xP,EAAkB1qR,EAAE,GAAY,IAAmBA,EAAE,IAC1D0qR,EAAK1F,GAAMkF,EAAG,GAAGD,IACXp7R,OAASmR,EAAE,GAAGnR,SAAQ67R,EAAKnB,GAAMvpR,EAAE,GAAGs2M,OAAOt2M,EAAE,GAAGnR,OAAO67R,EAAG77R,SAAW67R,GAC7E9xP,GAAK8xP,EAGN,GAAI1qR,EAAIqoR,EAAI/iQ,MAAM,iCACjB2kQ,SAAK30Q,KAAK4lC,IAAI5lC,KAAKC,IAAIvV,EAAE,GAAGnR,OAAQmR,EAAE,GAAGnR,QAAQ,GAE1CykO,IADP42D,EAAKvE,GAASwE,EAAM70Q,KAAKolD,IAAI,GAAGuvN,GAAI,GAAG,IACrB,KAAKC,EAAG,GAAK,GAAK,MAAQ,KAAOA,EAAG,GAAKnF,GAAKmF,EAAG,GAAGD,GAAMjqR,EAAE,GAAK,IAAMA,EAAE,GAAKglR,GAAMkF,EAAG,GAAGD,GAAKn7M,GAAK,IAAK,EAAEm7M,EAAG,EAAIjqR,EAAE,GAAGnR,OAASmR,EAAE,GAAGnR,SAExJ,GAAImR,EAAIqoR,EAAI/iQ,MAAM,YAEjB,OAAG+iQ,EAAIx5R,SADP+pC,EAAI,GAAKjyB,GACU9X,OAAe+pC,EAC3B2wP,GAAMlB,EAAI/xE,OAAO,EAAE+xE,EAAIx5R,OAAO+pC,EAAE/pC,SAAW+pC,EAEnD,GAAI54B,EAAIqoR,EAAI/iQ,MAAM,sBAAwB,CACzCsT,EAAI,GAAKjyB,EAAImwE,QAAQxhE,KAAK4lC,IAAIl7C,EAAE,GAAGnR,OAAO,KAAKmF,QAAQ,YAAY,MACnEi2R,EAAKrxP,EAAEt9B,QAAQ,KACf,IAAIqvR,EAAOtC,EAAI/sR,QAAQ,KAAO2uR,EAAIW,EAAOvC,EAAIx5R,OAAS+pC,EAAE/pC,OAAS87R,EACjE,OAAOpB,GAAMlB,EAAI/xE,OAAO,EAAEq0E,GAAQ/xP,EAAIyvP,EAAI/xE,OAAO+xE,EAAIx5R,OAAO+7R,GAAK,CAElE,GAAI5qR,EAAIqoR,EAAI/iQ,MAAM,sBACjB,OAAO3e,EAAM,EAAI,IAAMokR,GAAch2R,EAAMszR,GAAM1hR,GAAO+hR,GAAS,GAAG/hR,GAAK3S,QAAQ,aAAa,OAAOA,QAAQ,QAAQ,SAAS+0R,IAAM,MAAO,OAASA,GAAGl6R,OAAS,EAAIi2R,GAAK,EAAE,EAAEiE,GAAGl6R,QAAU,IAAMk6R,EAAI,GAAK,IAAMjE,GAAK,EAAE9kR,EAAE,GAAGnR,QAE5N,OAAOw5R,GACN,IAAK,UACL,IAAK,SACL,IAAK,QAAS,IAAI5pQ,GAAIiqQ,GAAS,GAAGyB,GAAO,MAAa,MAAN1rQ,GAAY60M,EAAO70M,GAAI,GACvE,QACC,GAAG4pQ,EAAI/iQ,MAAM,aAAc,OAAOylQ,GAAch2R,EAAMszR,EAAIl4R,MAAM,EAAEk4R,EAAI8C,YAAY,MAAOxkR,GAAO4iR,GAAMlB,EAAIl4R,MAAMk4R,EAAI8C,YAAY,OAElI,MAAM,IAAIt6R,MAAM,uBAAyBw3R,EAAM,IAChD,CACA,SAASwB,GAAU90R,EAAiBszR,EAAgB1hR,GACnD,OAAY,EAAJA,KAAWA,EAAMokR,GAAch2R,EAAMszR,EAAK1hR,GAAO+iR,GAAc30R,EAAMszR,EAAK1hR,EACnF,CAkBA,IAAIykR,GAAc,kCAClB,SAASC,GAAYhD,GAEpB,QADIz5R,EAAI,EAAe8yB,EAAI,GAAIkX,EAAI,GAC7BhqC,EAAIy5R,EAAIx5R,QACb,OAAQ6yB,EAAI2mQ,EAAIn7R,OAAO0B,IACtB,IAAK,IAAQy2R,GAAcgD,EAAKz5R,KAAIA,GAAI,GAAGA,IAAK,MAChD,IAAK,IAAK,KAAsC,KAAzBy5R,EAAI19I,aAAa/7I,IAAcA,EAAIy5R,EAAIx5R,WAAsBD,EAAG,MACvF,IAAK,KACL,IAAK,IAAKA,GAAG,EAAG,MAChB,IAAK,MAAOA,EAAG,MACf,IAAK,IAAK,IAAK,IACd,GAAuB,MAApBy5R,EAAIn7R,OAAO0B,EAAE,IAAkC,MAApBy5R,EAAIn7R,OAAO0B,EAAE,GAAY,OAAO,EAE/D,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAEvD,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,OAAO,EAC7E,IAAK,IAAK,IAAK,IAAK,IAAK,SAGxB,GAFsC,QAAnCy5R,EAAI/xE,OAAO1nN,EAAG,GAAGwZ,eACkB,UAAnCigR,EAAI/xE,OAAO1nN,EAAG,GAAGwZ,eACkB,8BAAnCigR,EAAI/xE,OAAO1nN,EAAG,GAAGwZ,cAA2B,OAAO,IACpDxZ,EAAG,MACN,IAAK,IAEJ,IADAgqC,EAAIlX,EACsB,MAApB2mQ,EAAIn7R,OAAO0B,MAAgBA,EAAIy5R,EAAIx5R,QAAQ+pC,GAAKyvP,EAAIn7R,OAAO0B,GACjE,GAAGgqC,EAAEtT,MAAM8lQ,IAAc,OAAO,EAChC,MACD,IAAK,IAEL,IAAK,IAAK,IAAK,IACd,KAAMx8R,EAAIy5R,EAAIx5R,SAAW,YAAYyM,QAAQomB,EAAE2mQ,EAAIn7R,SAAS0B,KAAM,GAAU,MAAH8yB,GAA8B,KAAnB2mQ,EAAIn7R,OAAO0B,EAAE,IAAa,KAAK0M,QAAQ+sR,EAAIn7R,OAAO0B,EAAE,KAAI,KAC5I,MACD,IAAK,IAAK,KAAMy5R,EAAIn7R,SAAS0B,KAAO8yB,IAAgB,MACpD,IAAK,MAAO9yB,GAAuB,KAAjBy5R,EAAIn7R,OAAO0B,IAA8B,KAAjBy5R,EAAIn7R,OAAO0B,OAAaA,EAAG,MACrE,IAAK,IAAK,IAAK,MAAOA,EAAG,MACzB,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACpF,KAAMA,EAAIy5R,EAAIx5R,QAAU,aAAayM,QAAQ+sR,EAAIn7R,SAAS0B,KAAM,IAAiB,MAElF,UAAWA,EAGb,OAAO,CACR,CAkNA,IAAI08R,GAAW,wCACf,SAASC,GAAQ5lR,EAAG2kR,GACnB,GAAS,MAANA,EAAY,OAAO,EACtB,IAAIkB,EAASliO,WAAWghO,EAAG,IAC3B,OAAOA,EAAG,IACT,IAAK,IAAM,GAAG3kR,GAAK6lR,EAAQ,OAAO,EAAM,MACxC,IAAK,IAAM,GAAG7lR,EAAK6lR,EAAQ,OAAO,EAAM,MACxC,IAAK,IAAM,GAAG7lR,EAAK6lR,EAAQ,OAAO,EAAM,MACxC,IAAK,KAAM,GAAG7lR,GAAK6lR,EAAQ,OAAO,EAAM,MACxC,IAAK,KAAM,GAAG7lR,GAAK6lR,EAAQ,OAAO,EAAM,MACxC,IAAK,KAAM,GAAG7lR,GAAK6lR,EAAQ,OAAO,EAEnC,OAAO,CACR,CAsBA,SAASrD,GAAWE,EAAsB1iR,EAAUizB,GAC3C,MAALA,IAAWA,EAAI,CAAC,GACnB,IAAImxP,EAAO,GACX,cAAc1B,GACb,IAAK,SAC4B0B,EAAtB,UAAP1B,GAAmBzvP,EAAE6yP,OAAe7yP,EAAE6yP,OAC7BpD,EACZ,MACD,IAAK,SAGO,OAFe0B,EAAhB,IAAP1B,GAAazvP,EAAE6yP,OAAe7yP,EAAE6yP,QACX,MAAX7yP,EAAEmgL,MAAiBngL,EAAEmgL,MAAiBysE,IAAW6C,MAC7C0B,EAAQnxP,EAAEmgL,OAASngL,EAAEmgL,MAAM0sE,GAAgB4C,KAAU7C,GAAUC,GAAgB4C,KACrF,MAAR0B,IAAcA,EAAOrE,IAAgB2C,IAAQ,WAGlD,GAAGhD,GAAc0E,EAAK,GAAI,OAAO7B,GAAYviR,EAAGizB,GAC7CjzB,aAAawN,OAAMxN,EAAI4hR,GAAc5hR,EAAGizB,EAAEouP,WAC7C,IAAIx7O,EAtCL,SAASkgP,IAAWlgP,EAAc7lC,GACjC,IAAI0iR,EA3RL,SAASsD,IAActD,GAGtB,QAFIzB,EAAwB,GACxBgF,GAAS,EACLh9R,EAAI,EAAG26E,EAAI,EAAG36E,EAAIy5R,EAAIx5R,SAAUD,EAAG,OAAey5R,EAAI19I,WAAW/7I,IACxE,KAAK,GACJg9R,GAAUA,EAAQ,MACnB,KAAK,GAAI,KAAK,GAAI,KAAK,KACpBh9R,EAAG,MACN,KAAK,GACJg4R,EAAIA,EAAI/3R,QAAUw5R,EAAI/xE,OAAO/sI,EAAE36E,EAAE26E,GACjCA,EAAI36E,EAAE,EAGR,GADAg4R,EAAIA,EAAI/3R,QAAUw5R,EAAI/xE,OAAO/sI,IACf,IAAXqiN,EAAiB,MAAM,IAAI/6R,MAAM,WAAaw3R,EAAM,0BACvD,OAAOzB,CACR,CA4QW+E,CAAcngP,GACpBgvD,EAAI6tL,EAAIx5R,OAAQg9R,EAAMxD,EAAI7tL,EAAE,GAAGl/F,QAAQ,KAE3C,GADGk/F,EAAE,GAAKqxL,GAAI,KAAMrxL,EACjB6tL,EAAIx5R,OAAS,EAAG,MAAM,IAAIgC,MAAM,iCAAmCw3R,EAAInhR,KAAK,KAAO,KACtF,GAAgB,iBAANvB,EAAgB,MAAO,CAAC,EAAkB,IAAf0iR,EAAIx5R,QAAgBg9R,GAAI,EAAGxD,EAAIA,EAAIx5R,OAAO,GAAG,KAClF,OAAOw5R,EAAIx5R,QACV,KAAK,EAAGw5R,EAAMwD,GAAI,EAAK,CAAC,UAAW,UAAW,UAAWxD,EAAI,IAAM,CAACA,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAAI,KAAM,MAClG,KAAK,EAAGA,EAAMwD,GAAI,EAAK,CAACxD,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAAIA,EAAI,IAAM,CAACA,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAAI,KAAM,MACzF,KAAK,EAAGA,EAAMwD,GAAI,EAAK,CAACxD,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAAIA,EAAI,IAAM,CAACA,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAAI,KAGpF,IAAI6B,EAAKvkR,EAAI,EAAI0iR,EAAI,GAAK1iR,EAAI,EAAI0iR,EAAI,GAAKA,EAAI,GAC/C,IAA2B,IAAxBA,EAAI,GAAG/sR,QAAQ,OAAuC,IAAxB+sR,EAAI,GAAG/sR,QAAQ,KAAa,MAAO,CAACk/F,EAAG0vL,GACxE,GAA8B,MAA3B7B,EAAI,GAAG/iQ,MAAM,YAAiD,MAA3B+iQ,EAAI,GAAG/iQ,MAAM,WAAoB,CACtE,IAAIwmQ,EAAKzD,EAAI,GAAG/iQ,MAAMgmQ,IAClBS,EAAK1D,EAAI,GAAG/iQ,MAAMgmQ,IACtB,OAAOC,GAAQ5lR,EAAGmmR,GAAM,CAACtxL,EAAG6tL,EAAI,IAAMkD,GAAQ5lR,EAAGomR,GAAM,CAACvxL,EAAG6tL,EAAI,IAAM,CAAC7tL,EAAG6tL,EAAU,MAANyD,GAAoB,MAANC,EAAa,EAAI,GAAE,CAE/G,MAAO,CAACvxL,EAAG0vL,EACZ,CAkBSwB,CAAW3B,EAAMpkR,GACzB,GAAG0/Q,GAAc75O,EAAE,IAAK,OAAO08O,GAAYviR,EAAGizB,GAC9C,IAAS,IAANjzB,EAAYA,EAAI,gBAAsB,IAANA,EAAaA,EAAI,gBACtC,KAANA,GAAiB,MAALA,EAAW,MAAO,GACtC,OAxQD,SAASqmR,IAAS3D,EAAgB1iR,EAAW6gR,EAAcyF,GAI1D,QAH8CC,EAAI3iN,EAAG97C,EAAjDm5P,EAAM,GAAIhuP,EAAI,GAAIhqC,EAAI,EAAG8yB,EAAI,GAAIyqQ,EAAI,IACrCC,EAAG,IAEDx9R,EAAIy5R,EAAIx5R,QACb,OAAQ6yB,EAAI2mQ,EAAIn7R,OAAO0B,IACtB,IAAK,IACJ,IAAIy2R,GAAcgD,EAAKz5R,GAAI,MAAM,IAAIiC,MAAM,0BAA4B6wB,EAAI,OAAQ2mQ,GACnFzB,EAAIA,EAAI/3R,QAAU,CAACgX,EAAE,IAAKF,EAAE,WAAY/W,GAAG,EAAG,MAC/C,IAAK,IACJ,IAAIgqC,EAAE,GAAgC,MAA5BnL,EAAG46P,EAAI19I,aAAa/7I,KAAcA,EAAIy5R,EAAIx5R,QAAS+pC,GAAKn4B,OAAO0qI,aAAa19G,GACtFm5P,EAAIA,EAAI/3R,QAAU,CAACgX,EAAE,IAAKF,EAAEizB,KAAMhqC,EAAG,MACtC,IAAK,KAAM,IAAIs/O,GAAIm6C,EAAIn7R,SAAS0B,GAC/Bg4R,EAAIA,EAAI/3R,QAAU,CAACgX,EAD2B,MAANqoO,IAAmB,MAANA,GAAaA,GAAI,IAC9CvoO,EAAEuoO,MAAMt/O,EAAG,MACpC,IAAK,IAAKg4R,EAAIA,EAAI/3R,QAAU,CAACgX,EAAE,IAAKF,EAAE,KAAM/W,GAAG,EAAG,MAClD,IAAK,IACJg4R,EAAIA,EAAI/3R,QAAU,CAACgX,EAAE,IAAKF,EAAEA,KAAM/W,EAAG,MACtC,IAAK,IAAK,IAAK,IACd,GAAuB,MAApBy5R,EAAIn7R,OAAO0B,EAAE,IAAkC,MAApBy5R,EAAIn7R,OAAO0B,EAAE,GAAY,CACtD,GAAO,MAAJs9R,GAA6E,OAAjEA,EAAG3F,GAAoB5gR,EAAG6gR,EAA0B,MAApB6B,EAAIn7R,OAAO0B,EAAE,KAA0B,MAAO,GAC7Fg4R,EAAIA,EAAI/3R,QAAU,CAACgX,EAAE,IAAKF,EAAE0iR,EAAI/xE,OAAO1nN,EAAE,IAAKu9R,EAAMzqQ,EAAG9yB,GAAG,EAAG,MAG/D,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACtD8yB,EAAIA,EAAE1mB,cAEP,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAEhE,GADG2K,EAAI,GACA,MAAJumR,GAAoD,OAAxCA,EAAG3F,GAAoB5gR,EAAG6gR,IAAoB,MAAO,GAC7D,IAAP5tP,EAAIlX,IAAW9yB,EAAIy5R,EAAIx5R,QAAUw5R,EAAIn7R,OAAO0B,GAAGoM,gBAAkB0mB,GAAGkX,GAAGlX,EAC9D,MAANA,GAAmC,MAAtByqQ,EAAInxR,gBAAuB0mB,EAAI,KACtC,MAANA,IAAWA,EAAI0qQ,GAClBxF,EAAIA,EAAI/3R,QAAU,CAACgX,EAAE6b,EAAG/b,EAAEizB,GAAIuzP,EAAMzqQ,EAAG,MACxC,IAAK,IAAK,IAAK,IAAK,IAAK,SACxB,IAAI+pB,GAAE,CAAC5lC,EAAE6b,EAAG/b,EAAE+b,GAMd,GALO,MAAJwqQ,IAAUA,EAAG3F,GAAoB5gR,EAAG6gR,IACD,QAAnC6B,EAAI/xE,OAAO1nN,EAAG,GAAGwZ,eAAkC,MAAJ8jR,IAAUzgP,GAAE9lC,EAAIumR,EAAGpF,GAAK,GAAKuB,EAAIn7R,OAAO0B,EAAE,GAAK8yB,GAAG+pB,GAAE5lC,EAAI,IAAKumR,EAAG,IAAIx9R,GAAG,GAC/E,UAAlCy5R,EAAI/xE,OAAO1nN,EAAE,GAAGwZ,eAAoC,MAAJ8jR,IAAUzgP,GAAE9lC,EAAIumR,EAAGpF,GAAK,GAAK,KAAO,MAAMr7O,GAAE5lC,EAAI,IAAKjX,GAAG,EAAGw9R,EAAG,KAC5E,8BAAlC/D,EAAI/xE,OAAO1nN,EAAE,GAAGwZ,eAAoC,MAAJ8jR,IAAUzgP,GAAE9lC,EAAIumR,EAAGpF,GAAK,GAAK,eAAO,gBAAMr7O,GAAE5lC,EAAI,IAAKjX,GAAG,EAAGw9R,EAAG,MAC/G3gP,GAAE5lC,EAAI,MAAOjX,GACb,MAAJs9R,GAAoB,MAARzgP,GAAE5lC,EAAW,MAAO,GACnC+gR,EAAIA,EAAI/3R,QAAU48C,GAAG0gP,EAAMzqQ,EAAG,MAC/B,IAAK,IAEJ,IADAkX,EAAIlX,EACsB,MAApB2mQ,EAAIn7R,OAAO0B,MAAgBA,EAAIy5R,EAAIx5R,QAAQ+pC,GAAKyvP,EAAIn7R,OAAO0B,GACjE,GAAmB,MAAhBgqC,EAAEzoC,OAAM,GAAa,KAAM,4BAA8ByoC,EAAI,IAChE,GAAGA,EAAEtT,MAAM8lQ,IAAc,CACxB,GAAO,MAAJc,GAAoD,OAAxCA,EAAG3F,GAAoB5gR,EAAG6gR,IAAoB,MAAO,GACpEI,EAAIA,EAAI/3R,QAAU,CAACgX,EAAE,IAAKF,EAAEizB,EAAE59B,eAC9BmxR,EAAMvzP,EAAE1rC,OAAO,EAAC,MACP0rC,EAAEt9B,QAAQ,MAAO,IAC1Bs9B,GAAKA,EAAEtT,MAAM,kBAAkB,IAAI,IAAI,IACnC+lQ,GAAYhD,KAAMzB,EAAIA,EAAI/3R,QAAU,CAACgX,EAAE,IAAIF,EAAEizB,KAElD,MAED,IAAK,IACJ,GAAS,MAANszP,EAAY,CACP,IAAPtzP,EAAIlX,IAAW9yB,EAAIy5R,EAAIx5R,QAAgC,OAArB6yB,EAAE2mQ,EAAIn7R,OAAO0B,KAAagqC,GAAKlX,EACjEklQ,EAAIA,EAAI/3R,QAAU,CAACgX,EAAE,IAAKF,EAAEizB,GAAI,MAGlC,IAAK,IAAK,IAAK,IACP,IAAPA,EAAIlX,IAAW9yB,EAAIy5R,EAAIx5R,QAAU,YAAYyM,QAAQomB,EAAE2mQ,EAAIn7R,OAAO0B,KAAM,GAAIgqC,GAAKlX,EACjFklQ,EAAIA,EAAI/3R,QAAU,CAACgX,EAAE,IAAKF,EAAEizB,GAAI,MACjC,IAAK,IACG,IAAPA,EAAIlX,EAAS2mQ,EAAIn7R,SAAS0B,KAAO8yB,GAAGkX,GAAGlX,EACvCklQ,EAAIA,EAAI/3R,QAAU,CAACgX,EAAE6b,EAAG/b,EAAEizB,GAAIuzP,EAAMzqQ,EAAG,MACxC,IAAK,MAAO9yB,GAAuB,KAAjBy5R,EAAIn7R,OAAO0B,IAA8B,KAAjBy5R,EAAIn7R,OAAO0B,OAAaA,EAAG,MACrE,IAAK,IAAK,IAAK,IAAKg4R,EAAIA,EAAI/3R,QAAU,CAACgX,EAAU,IAAPomR,EAAS,IAAIvqQ,EAAI/b,EAAE+b,KAAM9yB,EAAG,MACtE,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC7E,IAAPgqC,EAAIlX,EAAS9yB,EAAIy5R,EAAIx5R,QAAU,aAAayM,QAAQ+sR,EAAIn7R,SAAS0B,KAAM,GAAIgqC,GAAGyvP,EAAIn7R,OAAO0B,GACzFg4R,EAAIA,EAAI/3R,QAAU,CAACgX,EAAE,IAAKF,EAAEizB,GAAI,MACjC,IAAK,IAAKguP,EAAIA,EAAI/3R,QAAU,CAACgX,EAAE6b,EAAG/b,EAAE+b,KAAM9yB,EAAG,MAC7C,IAAK,IAAKg4R,EAAIA,EAAI/3R,QAAU,CAACgX,EAAE,IAAKF,EAAE,OAAQ/W,EAAG,MACjD,QACC,IAA0D,IAAvD,6CAAwC0M,QAAQomB,GAAW,MAAM,IAAI7wB,MAAM,0BAA4B6wB,EAAI,OAAS2mQ,GACvHzB,EAAIA,EAAI/3R,QAAU,CAACgX,EAAE,IAAKF,EAAE+b,KAAM9yB,EAKrC,IAAqBy9R,GAAjBC,GAAK,EAAGhE,GAAM,EAClB,IAAI15R,EAAEg4R,EAAI/3R,OAAO,EAAGs9R,EAAI,IAAKv9R,GAAK,IAAKA,EACtC,OAAOg4R,EAAIh4R,GAAGiX,GACb,IAAK,IAAK,IAAK,IAAK+gR,EAAIh4R,GAAGiX,EAAIumR,EAAID,EAAI,IAAQG,GAAK,IAAGA,GAAK,GAAG,MAC/D,IAAK,KACAD,GAAIzF,EAAIh4R,GAAG+W,EAAE2f,MAAM,YAAWgjQ,GAAIhzQ,KAAKC,IAAI+yQ,GAAI+D,GAAI,GAAGx9R,OAAO,IAC9Dy9R,GAAK,IAAGA,GAAK,GAEjB,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAKH,EAAIvF,EAAIh4R,GAAGiX,EAAG,MACtD,IAAK,IAAgB,MAARsmR,IAAevF,EAAIh4R,GAAGiX,EAAI,IAAQymR,GAAK,IAAGA,GAAK,IAAK,MACjE,IAAK,IACJ,MACD,IAAK,IACDA,GAAK,GAAK1F,EAAIh4R,GAAG+W,EAAE2f,MAAM,UAASgnQ,GAAK,GACvCA,GAAK,GAAK1F,EAAIh4R,GAAG+W,EAAE2f,MAAM,UAASgnQ,GAAK,GACvCA,GAAK,GAAK1F,EAAIh4R,GAAG+W,EAAE2f,MAAM,UAASgnQ,GAAK,GAI7C,OAAOA,IACN,KAAK,EAAG,MACR,KAAK,EAEDJ,EAAGvzQ,GAAK,KAAOuzQ,EAAGvzQ,EAAI,IAAKuzQ,EAAGnF,GAC9BmF,EAAGnF,GAAM,KAAMmF,EAAGnF,EAAI,IAAKmF,EAAG5yL,GAC9B4yL,EAAG5yL,GAAM,KAAM4yL,EAAG5yL,EAAI,IAAK4yL,EAAGpF,GACjC,MACD,KAAK,EAEDoF,EAAGvzQ,GAAK,KAAOuzQ,EAAGvzQ,EAAI,IAAKuzQ,EAAGnF,GAC9BmF,EAAGnF,GAAM,KAAMmF,EAAGnF,EAAI,IAAKmF,EAAG5yL,GAKnC,IAAeizL,GAAXC,GAAO,GACX,IAAI59R,EAAE,EAAGA,EAAIg4R,EAAI/3R,SAAUD,EAC1B,OAAOg4R,EAAIh4R,GAAGiX,GACb,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MACxC,IAAK,IAAK+gR,EAAIh4R,GAAG+W,EAAI,GAAIihR,EAAIh4R,GAAGiX,EAAI,IAAK,MACzC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAE9F+gR,EAAIh4R,GAAG+W,EAAIyiR,IAAexB,EAAIh4R,GAAGiX,EAAE8kI,WAAW,GAAIi8I,EAAIh4R,GAAG+W,EAAGumR,EAAI5D,IAChE1B,EAAIh4R,GAAGiX,EAAI,IAAK,MACjB,IAAK,IAAK,IAAK,IAEd,IADA0mR,GAAK39R,EAAE,EACU,MAAXg4R,EAAI2F,MACS,OAAjB7qQ,EAAEklQ,EAAI2F,IAAI1mR,IAAoB,MAAN6b,IACjB,MAANA,GAAmB,MAANA,IAA2B,MAAbklQ,EAAI2F,GAAG,KAA+B,MAAhB3F,EAAI2F,GAAG,GAAG1mR,GAA6B,MAAhB+gR,EAAI2F,GAAG,GAAG1mR,GAA6B,MAAhB+gR,EAAI2F,GAAG,GAAG5mR,IAC7F,MAAbihR,EAAIh4R,GAAGiX,IAAoB,MAAN6b,GAAmB,MAANA,GAAmB,MAANA,IACzC,MAANA,IAA4B,MAAdklQ,EAAI2F,IAAI5mR,GAA2B,MAAdihR,EAAI2F,IAAI5mR,GAA0B,MAAbihR,EAAI2F,GAAG,IAA6B,KAAf3F,EAAI2F,GAAG,GAAG1mR,KAExF+gR,EAAIh4R,GAAG+W,GAAKihR,EAAI2F,IAAI5mR,EACpBihR,EAAI2F,IAAM,CAAC5mR,EAAE,GAAIE,EAAE,OAAQ0mR,GAE5BC,IAAQ5F,EAAIh4R,GAAG+W,EACf/W,EAAI29R,GAAG,EAAG,MACX,IAAK,IAAK3F,EAAIh4R,GAAGiX,EAAI,IAAK+gR,EAAIh4R,GAAG+W,EAAIuiR,GAAYviR,EAAE6gR,GAGrD,IAAaiG,GAAKC,GAAdC,GAAK,GACT,GAAGH,GAAK39R,OAAS,EAAG,CACM,IAAtB29R,GAAK7hJ,WAAW,IAClB8hJ,GAAO9mR,EAAE,GAA0B,KAAvB6mR,GAAK7hJ,WAAW,IAAahlI,EAAIA,EAC7C+mR,GAAO7C,GAAU,IAAK2C,GAAMC,MAG5BC,GAAO7C,GAAU,IAAK2C,GADtBC,GAAO9mR,EAAE,GAAKsmR,EAAO,GAAKtmR,EAAIA,GAE3B8mR,GAAM,GAAK7F,EAAI,IAAkB,KAAZA,EAAI,GAAG/gR,IAC9B6mR,GAAOA,GAAKp2E,OAAO,GACnBswE,EAAI,GAAGjhR,EAAI,IAAMihR,EAAI,GAAGjhR,IAG1B4mR,GAAGG,GAAK79R,OAAO,EACf,IAAI+9R,GAAQhG,EAAI/3R,OAChB,IAAID,EAAE,EAAGA,EAAIg4R,EAAI/3R,SAAUD,EAAG,GAAa,MAAVg4R,EAAIh4R,IAA0B,KAAZg4R,EAAIh4R,GAAGiX,GAAY+gR,EAAIh4R,GAAG+W,EAAErK,QAAQ,MAAO,EAAI,CAAEsxR,GAAQh+R,EAAG,MAC/G,IAAIi+R,GAAMjG,EAAI/3R,OACd,GAAG+9R,KAAUhG,EAAI/3R,SAAgC,IAAtB69R,GAAKpxR,QAAQ,KAAa,CACpD,IAAI1M,EAAEg4R,EAAI/3R,OAAO,EAAGD,GAAI,IAAIA,EACd,MAAVg4R,EAAIh4R,KAAyC,IAA3B,KAAK0M,QAAQsrR,EAAIh4R,GAAGiX,KACtC0mR,IAAI3F,EAAIh4R,GAAG+W,EAAE9W,OAAO,EAA4B+3R,EAAIh4R,GAAG+W,EAAI+mR,GAAKp2E,OAAU,GAAjDi2E,IAAM3F,EAAIh4R,GAAG+W,EAAE9W,QAAqC+3R,EAAIh4R,GAAG+W,EAAE9W,QACjF09R,GAAK,EAAG3F,EAAIh4R,GAAG+W,EAAI,IACpBihR,EAAIh4R,GAAG+W,EAAI+mR,GAAKp2E,OAAO,EAAGi2E,GAAG,GAAIA,IAAK,GAC7C3F,EAAIh4R,GAAGiX,EAAI,IACXgnR,GAAQj+R,GAEN29R,IAAI,GAAKM,GAAMjG,EAAI/3R,SAAQ+3R,EAAIiG,IAAOlnR,EAAI+mR,GAAKp2E,OAAO,EAAEi2E,GAAG,GAAK3F,EAAIiG,IAAOlnR,WAEvEinR,KAAUhG,EAAI/3R,SAAgC,IAAtB69R,GAAKpxR,QAAQ,KAAa,CAEzD,IADAixR,GAAKG,GAAKpxR,QAAQ,KAAK,EACnB1M,EAAEg+R,GAAOh+R,GAAI,IAAKA,EACrB,GAAa,MAAVg4R,EAAIh4R,KAAyC,IAA3B,KAAK0M,QAAQsrR,EAAIh4R,GAAGiX,GAGzC,KAFA0jE,EAAEq9M,EAAIh4R,GAAG+W,EAAErK,QAAQ,MAAK,GAAI1M,IAAIg+R,GAAMhG,EAAIh4R,GAAG+W,EAAErK,QAAQ,KAAK,EAAEsrR,EAAIh4R,GAAG+W,EAAE9W,OAAO,EAC9E89R,GAAK/F,EAAIh4R,GAAG+W,EAAE2wM,OAAO/sI,EAAE,GACjBA,GAAG,IAAKA,EACVgjN,IAAI,IAA6B,MAAvB3F,EAAIh4R,GAAG+W,EAAEzY,OAAOq8E,IAAqC,MAAvBq9M,EAAIh4R,GAAG+W,EAAEzY,OAAOq8E,MAAaojN,GAAKD,GAAKx/R,OAAOq/R,MAAQI,IAElG/F,EAAIh4R,GAAG+W,EAAIgnR,GACX/F,EAAIh4R,GAAGiX,EAAI,IACXgnR,GAAQj+R,EAIT,IAFG29R,IAAI,GAAKM,GAAMjG,EAAI/3R,SAAQ+3R,EAAIiG,IAAOlnR,EAAI+mR,GAAKp2E,OAAO,EAAEi2E,GAAG,GAAK3F,EAAIiG,IAAOlnR,GAC9E4mR,GAAKG,GAAKpxR,QAAQ,KAAK,EACnB1M,EAAEg+R,GAAOh+R,EAAEg4R,EAAI/3R,SAAUD,EAC5B,GAAa,MAAVg4R,EAAIh4R,MAA2C,IAA5B,MAAM0M,QAAQsrR,EAAIh4R,GAAGiX,IAAajX,IAAMg+R,IAG9D,KAFArjN,EAAEq9M,EAAIh4R,GAAG+W,EAAErK,QAAQ,MAAK,GAAI1M,IAAIg+R,GAAMhG,EAAIh4R,GAAG+W,EAAErK,QAAQ,KAAK,EAAE,EAC9DqxR,GAAK/F,EAAIh4R,GAAG+W,EAAE2wM,OAAO,EAAE/sI,GACjBA,EAAEq9M,EAAIh4R,GAAG+W,EAAE9W,SAAU06E,EACvBgjN,GAAGG,GAAK79R,SAAQ89R,IAAMD,GAAKx/R,OAAOq/R,OAEtC3F,EAAIh4R,GAAG+W,EAAIgnR,GACX/F,EAAIh4R,GAAGiX,EAAI,IACXgnR,GAAQj+R,IAIX,IAAIA,EAAE,EAAGA,EAAEg4R,EAAI/3R,SAAUD,EAAgB,MAAVg4R,EAAIh4R,IAAc,KAAK0M,QAAQsrR,EAAIh4R,GAAGiX,IAAG,IAEvE+gR,EAAIh4R,GAAG+W,EAAIkkR,GAAUjD,EAAIh4R,GAAGiX,EAAG+gR,EAAIh4R,GAAG+W,EADtC8mR,GAAOR,EAAM,GAAKtmR,EAAI,GAAK/W,EAAE,GAAoB,MAAfg4R,EAAIh4R,EAAE,GAAG+W,GAAaA,EAAEA,GAE1DihR,EAAIh4R,GAAGiX,EAAI,KAEZ,IAAIinR,GAAS,GACb,IAAIl+R,EAAE,EAAGA,IAAMg4R,EAAI/3R,SAAUD,EAAgB,MAAVg4R,EAAIh4R,KAAYk+R,IAAUlG,EAAIh4R,GAAG+W,GACpE,OAAOmnR,EACR,CA0DQd,CAASxgP,EAAE,GAAI7lC,EAAGizB,EAAG4S,EAAE,GAC/B,CACA,SAASuhP,GAAS1E,EAAgBlhR,GACjC,GAAiB,iBAAPA,EAAiB,CAC1BA,GAAOA,IAAO,EAEd,QAAQvY,EAAI,EAAGA,EAAI,MAAUA,EAE5B,GAAmByJ,MAAhBmtR,GAAU52R,IACb,GAAG42R,GAAU52R,IAAMy5R,EAAK,CAAElhR,EAAMvY,EAAG,YADAuY,EAAM,IAAGA,EAAMvY,GAIhDuY,EAAM,IAAGA,EAAM,KAGnBq+Q,UAAUr+Q,GAAOkhR,EACVlhR,CACR,CACA,SAAS6lR,GAAeC,GACvB,QAAQr+R,EAAE,EAAM,KAAHA,IAAaA,OACXyJ,IAAX40R,EAAIr+R,IAAkBm+R,GAASE,EAAIr+R,GAAIA,EAC5C,CAEA,SAASs+R,KACR1H,GAz7BD,SAAS2H,IAAetnR,GACvB,OAAIA,IAAGA,EAAI,CAAC,GACZA,EAAE,GAAK,UACPA,EAAE,GAAK,IACPA,EAAE,GAAK,OACPA,EAAE,GAAK,QACPA,EAAE,GAAK,WACPA,EAAE,GAAK,KACPA,EAAE,IAAK,QACPA,EAAE,IAAK,WACPA,EAAE,IAAK,QACPA,EAAE,IAAK,UACPA,EAAE,IAAK,SACPA,EAAE,IAAK,WACPA,EAAE,IAAK,QACPA,EAAE,IAAK,SACPA,EAAE,IAAK,aACPA,EAAE,IAAK,gBACPA,EAAE,IAAK,OACPA,EAAE,IAAK,UACPA,EAAE,IAAK,cACPA,EAAE,IAAK,iBACPA,EAAE,IAAK,sBACPA,EAAE,IAAK,sBACPA,EAAE,IAAK,2BACPA,EAAE,IAAK,QACPA,EAAE,IAAK,YACPA,EAAE,IAAK,SACPA,EAAE,IAAK,WACPA,EAAE,IAAK,IACPA,EAAE,IAAK,8DACAA,CACR,CAy5BasnR,EACb,CAEA,IAAIC,GAAM,CACT70M,OAAQ4vM,GACRlY,KAAM8c,GACNM,OAAQ7H,GACR8H,WAAYN,GACZO,gBAAiBhH,GACjBiH,QAASnC,GACToC,UAAW,WAAuB,OAAOL,GAAIC,OAAS7H,EAAW,GAG9DkI,IAAoC,CACvC,EAAK,4BACL,EAAK,iCACL,EAAK,kCACL,EAAK,uCACL,GAAM,UAAW,GAAM,UAAW,GAAM,UAAW,GAAM,UACzD,GAAM,SAAU,GAAM,SAAU,GAAM,SAAU,GAAM,SAAU,GAAM,SACtE,GAAM,UAAW,GAAM,UAAW,GAAM,UAAW,GAAM,UACzD,GAAM,SACN,GAAM,0CACN,GAAM,mDACN,GAAM,kDACN,GAAM,2DACN,GAAM,SAAU,GAAM,SAAU,GAAM,SAAU,GAAM,SAAU,GAAM,SACtE,GAAM,SAAU,GAAM,SAAU,GAAM,SAAU,GAAM,SACtD,GAAM,IACN,GAAM,OACN,GAAM,QACN,GAAM,WACN,GAAM,4BACN,GAAM,iCACN,GAAM,kCACN,GAAM,uCACN,GAAM,KACN,GAAM,QACN,GAAM,QACN,GAAM,UACN,GAAM,SACN,GAAM,SACN,GAAM,WACN,GAAM,QACN,GAAM,SACN,GAAM,OACN,GAAM,UACN,GAAM,cACN,GAAM,QACN,GAAM,YACN,GAAM,UAIHC,GAAc,mCA2BdC,IAAc,CACjB,MAAO,SAGR,SAASC,GAAUxF,EAAKlhR,GACvB,OAAO4lR,GAASa,IAAYvF,IAAQA,EAAKlhR,EAC1C,CA2CA,IAsyDI2mR,GAtyDAC,GAAsB,WAC1B,IAAIA,EAAQ,CACZA,QAAgB,SAsBZC,EAnBJ,SAASC,IAGR,QAFIvsQ,GAAI,EAAGq3L,GAA0B,IAAI70M,MAAM,KAEvCkpB,GAAG,EAAQ,KAALA,KAAYA,GAUzB2rL,GAAM3rL,IADN1L,GAAQ,GADRA,GAAQ,GADRA,GAAQ,GADRA,GAAQ,GADRA,GAAQ,GADRA,GAAQ,GADRA,GAAQ,GADRA,GAAQ,GADRA,GAAI0L,KACU,UAAc1L,KAAM,EAAOA,KAAM,IACjC,UAAcA,KAAM,EAAOA,KAAM,IACjC,UAAcA,KAAM,EAAOA,KAAM,IACjC,UAAcA,KAAM,EAAOA,KAAM,IACjC,UAAcA,KAAM,EAAOA,KAAM,IACjC,UAAcA,KAAM,EAAOA,KAAM,IACjC,UAAcA,KAAM,EAAOA,KAAM,IACjC,UAAcA,KAAM,EAAOA,KAAM,EAIhD,cAAcwsQ,WAAe,IAAc,IAAIA,WAAWn1E,IAASA,EACpE,CAESk1E,GAaLE,EAZJ,SAASC,EAAmBvH,IAC3B,IAAInlQ,GAAI,EAAG/b,GAAI,EAAGynB,GAAI,EAAG2rL,UAAiCm1E,WAAe,IAAc,IAAIA,WAAW,MAAQ,IAAIhqR,MAAM,MAExH,IAAIkpB,GAAI,EAAQ,KAALA,KAAYA,GAAG2rL,GAAM3rL,IAAKy5P,GAAEz5P,IACvC,IAAIA,GAAI,EAAQ,KAALA,KAAYA,GAEtB,IADAznB,GAAIkhR,GAAEz5P,IACF1L,GAAI,IAAM0L,GAAG1L,GAAI,KAAMA,IAAK,IAAK/b,GAAIozM,GAAMr3L,IAAM/b,KAAM,EAAKkhR,GAAM,IAAJlhR,IAEnE,IAAIihR,GAAM,GACV,IAAIx5P,GAAI,EAAQ,IAALA,KAAWA,GAAGw5P,GAAIx5P,GAAI,UAAY8gQ,WAAe,KAAwC,mBAAlBn1E,GAAMs1E,SAAyBt1E,GAAMs1E,SAAa,IAAJjhQ,GAAa,IAAJA,GAAU,KAAO2rL,GAAM5oN,MAAU,IAAJi9B,GAAa,IAAJA,GAAU,KACzL,OAAOw5P,EACR,CACSwH,CAAmBJ,GACxBM,EAAKH,EAAG,GAAKI,EAAKJ,EAAG,GAAKK,EAAKL,EAAG,GAAKM,EAAKN,EAAG,GAAKO,EAAKP,EAAG,GAC5DQ,EAAKR,EAAG,GAAKS,EAAKT,EAAG,GAAKU,EAAKV,EAAG,GAAKW,GAAKX,EAAG,GAAKY,GAAKZ,EAAG,GAC5Da,GAAKb,EAAG,IAAKc,GAAKd,EAAG,IAAKe,GAAKf,EAAG,IAAKgB,GAAKhB,EAAG,IAAKiB,GAAKjB,EAAG,IA6ChEJ,SAAMh1E,MAAQi1E,EACdD,EAAMsB,KA7CN,SAASC,GAAWD,GAAiB/xQ,IAEpC,QADIiyQ,IAA0B,EAAtBjyQ,GACA1uB,GAAI,EAAGk6N,GAAIumE,GAAKxgS,OAAQD,GAAIk6N,IAAIymE,GAAKA,KAAI,EAAKvB,EAA4B,KAAxBuB,GAAEF,GAAK1kJ,WAAW/7I,QAC5E,OAAQ2gS,EACT,EA0CAxB,EAAMn4D,IAxCN,SAAS45D,GAAUzJ,GAAgCzoQ,IAElD,QADIiyQ,IAA0B,EAAtBjyQ,GAA0BwrM,GAAIi9D,GAAEl3R,OAAS,GAAID,GAAI,EACnDA,GAAIk6N,IAAIymE,GACbH,GAAGrJ,GAAEn3R,MAAY,IAAJ2gS,IACbJ,GAAGpJ,GAAEn3R,MAAS2gS,IAAK,EAAK,KACxBL,GAAGnJ,GAAEn3R,MAAS2gS,IAAK,GAAM,KACzBN,GAAGlJ,GAAEn3R,MAAQ2gS,KAAM,IACnBP,GAAGjJ,GAAEn3R,OAAQmgS,GAAGhJ,GAAEn3R,OAAQkgS,GAAG/I,GAAEn3R,OAAQigS,EAAG9I,GAAEn3R,OAC5CggS,EAAG7I,GAAEn3R,OAAQ+/R,EAAG5I,GAAEn3R,OAAQ8/R,EAAG3I,GAAEn3R,OAAQ6/R,EAAG1I,GAAEn3R,OAC5C4/R,EAAGzI,GAAEn3R,OAAQ2/R,EAAGxI,GAAEn3R,OAAQ0/R,EAAGvI,GAAEn3R,OAAQo/R,EAAGjI,GAAEn3R,OAE7C,IADAk6N,IAAK,GACCl6N,GAAIk6N,IAAGymE,GAAKA,KAAI,EAAKvB,EAAc,KAAVuB,GAAExJ,GAAEn3R,QACnC,OAAQ2gS,EACT,EA4BAxB,EAAM1oQ,IA1BN,SAASoqQ,GAAUpqQ,GAAgB/H,IAElC,QADIiyQ,IAAW,EAAPjyQ,GACA1uB,GAAI,EAAGk6N,GAAIzjM,GAAIx2B,OAAQ6yB,GAAI,EAAGiN,GAAI,EAAG//B,GAAIk6N,KAChDpnM,GAAI2D,GAAIslH,WAAW/7I,OACZ,IACN2gS,GAAKA,KAAI,EAAKvB,EAAS,KAALuB,GAAE7tQ,KACXA,GAAI,KAEb6tQ,IADAA,GAAKA,KAAI,EAAKvB,EAA2B,KAAvBuB,IAAK,IAAM7tQ,IAAG,EAAG,SAC1B,EAAKssQ,EAAsB,KAAlBuB,IAAK,IAAO,GAAF7tQ,MACnBA,IAAK,OAAUA,GAAI,OAC5BA,GAAa,IAAN,KAAFA,IAAYiN,GAAwB,KAApBtJ,GAAIslH,WAAW/7I,MAIpC2gS,IADAA,IADAA,IADAA,GAAKA,KAAI,EAAKvB,EAA0B,KAAtBuB,IAAK,IAAM7tQ,IAAG,EAAG,QAC1B,EAAKssQ,EAA2B,KAAvBuB,IAAK,IAAM7tQ,IAAG,EAAG,SAC1B,EAAKssQ,EAAsC,KAAlCuB,IAAK,IAAM5gQ,IAAG,EAAG,IAAQ,EAAFjN,KAAM,QACtC,EAAKssQ,EAAsB,KAAlBuB,IAAK,IAAO,GAAF5gQ,OAI5B4gQ,IADAA,IADAA,GAAKA,KAAI,EAAKvB,EAA4B,KAAxBuB,IAAK,IAAM7tQ,IAAG,GAAI,SAC3B,EAAKssQ,EAA2B,KAAvBuB,IAAK,IAAM7tQ,IAAG,EAAG,SAC1B,EAAKssQ,EAAsB,KAAlBuB,IAAK,IAAO,GAAF7tQ,MAG9B,OAAQ6tQ,EACT,EAKOxB,CACP,CA1F0B,GA4FtB2B,GAAoB,WACxB,IA8FIj4K,EA9FAk4K,GAAgC,EAWpC,SAASC,EAAQ/rQ,IAChB,GAA6B,KAA1BA,GAAE32B,OAAO22B,GAAEh1B,OAAS,GAAW,OAAuC,IAA/Bg1B,GAAE1zB,MAAM,GAAE,GAAImL,QAAQ,KAAeuoB,GAAI+rQ,EAAQ/rQ,GAAE1zB,MAAM,GAAG,IACtG,IAAIuxB,GAAImC,GAAEsnQ,YAAY,KACtB,OAAc,IAANzpQ,GAAYmC,GAAIA,GAAE1zB,MAAM,EAAGuxB,GAAE,EACtC,CAEA,SAASuuG,EAASpsG,IACjB,GAA6B,KAA1BA,GAAE32B,OAAO22B,GAAEh1B,OAAS,GAAW,OAAOohI,EAASpsG,GAAE1zB,MAAM,GAAG,IAC7D,IAAIuxB,GAAImC,GAAEsnQ,YAAY,KACtB,OAAc,IAANzpQ,GAAYmC,GAAIA,GAAE1zB,MAAMuxB,GAAE,EACnC,CASA,SAASmuQ,EAAej6D,GAAgBlhL,IACpB,iBAATA,KAAmBA,GAAO,IAAIvhC,KAAKuhC,KAC7C,IAAIo7O,GAAiBp7O,GAAKq7O,WAE1BD,IADAA,GAAMA,IAAO,EAAIp7O,GAAKs7O,eACT,EAAKt7O,GAAKu7O,eAAe,EACtCr6D,GAAIs6D,YAAY,EAAGJ,IACnB,IAAIK,GAAkBz7O,GAAKypM,cAAgB,KAE3CgyC,IADAA,GAAMA,IAAO,EAAKz7O,GAAKwpM,WAAW,IACrB,EAAIxpM,GAAKupM,UACtBroB,GAAIs6D,YAAY,EAAGC,GACpB,CAoBA,SAASC,EAAkBC,IAC1BC,GAAUD,GAAM,GAGhB,QAFIz3P,IAAY,EACZhhC,GAAQ,EACNy4R,GAAK71L,GAAK61L,GAAKxhS,OAAS,GAAG,CAChC,IAAIkG,GAAOs7R,GAAKE,WAAW,GACvBC,GAAKH,GAAKE,WAAW,GAAIE,GAAMJ,GAAK71L,EAAIg2L,GACxC3sQ,GAAI,CAAC,EACT,OAAO9uB,IAEN,KAAK,MAEO,GADX6C,GAAQy4R,GAAKE,WAAW,MACV1sQ,GAAE6sQ,MAAQL,GAAKE,WAAW,IAErCC,GAAK,IACI,EAAR54R,KAAWisB,GAAE8sQ,MAAQN,GAAKE,WAAW,IAC7B,EAAR34R,KAAWisB,GAAE+sQ,MAAQP,GAAKE,WAAW,KAEtC1sQ,GAAE6sQ,QAAO7sQ,GAAEgtQ,GAAK,IAAI19Q,KAAa,IAAR0Q,GAAE6sQ,QAC7B,MAEF,KAAK,EACJ,IAAII,GAAMT,GAAKE,WAAW,GAAIQ,GAAMV,GAAKE,WAAW,GACpD1sQ,GAAEmtQ,IAAOD,GAAMz7Q,KAAKolD,IAAI,EAAE,IAAMo2N,GAChCA,GAAMT,GAAKE,WAAW,GAAIQ,GAAMV,GAAKE,WAAW,GAChD1sQ,GAAEotQ,IAAOF,GAAMz7Q,KAAKolD,IAAI,EAAE,IAAMo2N,GAIlCT,GAAK71L,EAAIi2L,GACT73P,GAAE7jC,IAAQ8uB,GAEX,OAAO+U,EACR,CAEA,SAASs4P,IAAW,OAAOz5K,IAAOA,EAAKq2K,GAAM,CAC7C,SAASjgR,EAAMyiH,GAAmBtqH,IAClC,GAAc,IAAXsqH,GAAK,IAAyB,IAAXA,GAAK,GAAY,OAAO6gK,GAAU7gK,GAAMtqH,IAC9D,GAAuB,MAAT,GAAVsqH,GAAK,KAAwC,MAAT,GAARA,GAAK,IAAkB,OA87CvD,SAAS8gK,IAAU9gK,GAAmBtqH,IACrC,GAA0C,iBAAvCq+Q,GAAI/zJ,GAAKngI,MAAM,EAAE,KAAK6K,cAAkC,MAAM,IAAInK,MAAM,0BAC3E,IAAIuxB,GAAQpc,IAAWA,GAAQoc,MAAQ,GAEnCtsB,IAAQytR,IAAWC,OAAOiB,SAASn0J,IAAQA,GAAK5vH,SAAS,UAAY2jR,GAAI/zJ,KAAOr1H,MAAM,QACtFo2R,GAAK,EAAGzqD,GAAM,GAGlB,IAAIyqD,GAAK,EAAGA,GAAKv7R,GAAKjH,SAAUwiS,GAE/B,GAAI,sBAAsB9jR,KAD1Bq5N,GAAM9wO,GAAKu7R,OAEXzqD,GAAMA,GAAIz2O,MAAMy2O,GAAItrO,QAAQ,SACxB8mB,KAAMA,GAAOwkN,GAAIz2O,MAAM,EAAGy2O,GAAIukD,YAAY,KAAO,IAClDvkD,GAAIz2O,MAAM,EAAGiyB,GAAKvzB,SAAWuzB,IAChC,KAAMA,GAAKvzB,OAAS,IAEnBuzB,IADAA,GAAOA,GAAKjyB,MAAM,EAAGiyB,GAAKvzB,OAAS,IACvBsB,MAAM,EAAGiyB,GAAK+oQ,YAAY,KAAO,GAC1CvkD,GAAIz2O,MAAM,EAAEiyB,GAAKvzB,SAAWuzB,MAIjC,IAAIkvQ,IAAax7R,GAAK,IAAM,IAAIwvB,MAAM,oBACtC,IAAIgsQ,GAAW,MAAM,IAAIzgS,MAAM,4BAC/B,IAAI+9L,GAAW,MAAQ0iG,GAAU,IAAM,IAGnC14P,GAAI,CACP24P,UAFgC,GAGhCC,UAHkE,IAKnEC,GAAS74P,IACT,IAAI84P,GAAUC,GAAO,EACrB,IAAIN,GAAK,EAAGA,GAAKv7R,GAAKjH,SAAUwiS,GAAI,CACnC,IAAI3tR,GAAO5N,GAAKu7R,IACb3tR,KAASkrL,IAAYlrL,KAASkrL,GAAW,OACzC+iG,MAAQC,IAAWh5P,GAAG9iC,GAAK3F,MAAMuhS,GAAUL,IAAKjvQ,IACnDsvQ,GAAWL,IAEZ,OAAOz4P,EACR,CAr+C8Dw4P,CAAU9gK,GAAMtqH,IAC9E,GAAGsqH,GAAKzhI,OAAS,IAAK,MAAM,IAAIgC,MAAM,iBAAmBy/H,GAAKzhI,OAAS,UACvE,IAAIgjS,GAEAC,GACAC,GACAC,GACAC,GACAC,GALAC,GAAM,IAONC,GAA8B,GAG9B/B,GAAyB//J,GAAKngI,MAAM,EAAE,KAC1CmgS,GAAUD,GAAM,GAGhB,IAAIgC,GAmFJ,SAASC,EAAejC,IACvB,GAAmB,IAAhBA,GAAKA,GAAK71L,IAAkC,IAApB61L,GAAKA,GAAK71L,EAAI,GAAY,MAAO,CAAC,EAAG,GAEhE61L,GAAKkC,IAAIC,GAAkB,sBAI3BnC,GAAK71L,GAAK,GAGV,IAAIq3L,GAAkBxB,GAAKE,WAAW,EAAG,KAEzC,MAAO,CAACF,GAAKE,WAAW,EAAE,KAAMsB,GACjC,CAhGSS,CAAejC,IAExB,OADAwB,GAAOQ,GAAG,IAET,KAAK,EAAGF,GAAM,IAAK,MAAO,KAAK,EAAGA,GAAM,KAAM,MAC9C,KAAK,EAAG,GAAY,GAATE,GAAG,GAAS,OAAOlB,GAAU7gK,GAAMtqH,IAE9C,QAAS,MAAM,IAAInV,MAAM,sCAAwCghS,IAIvD,MAARM,IAA4D7B,GAA7CD,GAAc//J,GAAKngI,MAAM,EAAEgiS,IAAkC,IAE/E,IAAItyE,GAAsBvvF,GAAKngI,MAAM,EAAEgiS,KAqFvC,SAASM,EAAapC,GAAiBwB,IACtC,IAAIx3R,GAOJ,OAHAg2R,GAAK71L,GAAK,EAGFngG,GAAQg2R,GAAKE,WAAW,IAC/B,KAAK,EAAM,GAAW,GAARsB,GAAW,MAAM,IAAIhhS,MAAM,gCAAkCwJ,IAAQ,MACnF,KAAK,GAAM,GAAW,GAARw3R,GAAW,MAAM,IAAIhhS,MAAM,iCAAmCwJ,IAAQ,MACpF,QAAS,MAAM,IAAIxJ,MAAM,sCAAwCwJ,IAIlEg2R,GAAKkC,IAAI,OAAQ,uBAGjBlC,GAAKkC,IAAI,eAAgB,aAC1B,CAtGAE,CAAapC,GAAMwB,IAGnB,IAAIa,GAAqBrC,GAAKE,WAAW,EAAG,KAC5C,GAAY,IAATsB,IAA0B,IAAZa,GAAe,MAAM,IAAI7hS,MAAM,uCAAyC6hS,IAGzFrC,GAAK71L,GAAK,EAGVw3L,GAAY3B,GAAKE,WAAW,EAAG,KAG/BF,GAAK71L,GAAK,EAGV61L,GAAKkC,IAAI,WAAY,6BAGrBN,GAAgB5B,GAAKE,WAAW,EAAG,KAGnCuB,GAAOzB,GAAKE,WAAW,EAAG,KAG1B2B,GAAc7B,GAAKE,WAAW,EAAG,KAGjCwB,GAAgB1B,GAAKE,WAAW,EAAG,KAGnC,QAAQ9kP,IAAI,EAAI89B,GAAI,EAAGA,GAAI,QAC1B99B,GAAI4kP,GAAKE,WAAW,EAAG,MAClB,KAF4BhnN,GAGjC6oN,GAAU7oN,IAAK99B,GAIhB,IAAIknP,GAmEJ,SAASC,GAAUtiK,GAAmB6hK,IAGrC,QAFIU,GAAWv9Q,KAAK03J,KAAK18C,GAAKzhI,OAAOsjS,IAAK,EACtCQ,GAA8B,GAC1B/jS,GAAE,EAAGA,GAAIikS,KAAYjkS,GAAG+jS,GAAQ/jS,GAAE,GAAK0hI,GAAKngI,MAAMvB,GAAEujS,IAAKvjS,GAAE,GAAGujS,IACtEQ,UAAQE,GAAS,GAAKviK,GAAKngI,MAAM0iS,GAASV,IACnCQ,EACR,CAzEkCC,CAAUtiK,GAAM6hK,IAElDW,GAAWZ,GAAaH,GAAeY,GAASR,GAAKC,IAGrD,IAAIW,GA+JJ,SAASC,GAAiBL,GAA6BX,GAAsBI,GAA6BD,IACzG,IAAIc,GAAKN,GAAQ9jS,OAAQkkS,GAA8B,GACnDG,GAA0B,GAAIt9D,GAAwB,GAAIu9D,GAAgC,GAC1FC,GAAUjB,GAAM,EAAGvjS,GAAE,EAAG26E,GAAE,EAAGpmD,GAAE,EAAGopQ,GAAG,EACzC,IAAI39R,GAAE,EAAGA,GAAIqkS,KAAMrkS,GAGlB,GAFAgnO,GAAO,IACPzyM,GAAKv0B,GAAIojS,KAAoBiB,KAAI9vQ,IAAG8vQ,KACjCC,GAAK/vQ,IACRgwQ,IAAY,GACZ,IAAIv+I,GAAO,GACX,IAAIrrE,GAAEpmD,GAAGomD,IAAG,GAAI,CACfqrE,GAAKrrE,KAAK,EACV2pN,GAAK3pN,KAAK,EACVqsJ,GAAIA,GAAI/mO,QAAU06E,GAClB4pN,GAAUngS,KAAK2/R,GAAQppN,KACvB,IAAIipE,GAAkB4/I,GAAU98Q,KAAKosF,MAAQ,EAAFn4B,GAAI4oN,KAE/C,GAAGA,GAAM,GADT5F,GAAS,EAAFhjN,GAAO6pN,IACG,MAAM,IAAIviS,MAAM,yBAA2B04E,GAAI,MAAM4oN,IAGtE,IAFIQ,GAAQngJ,KAEToC,GADHrrE,GAAI8pN,GAAcV,GAAQngJ,IAAO+5I,KACrB,MAEbwG,GAAY5vQ,IAAM,CAACgc,MAAOy2L,GAAK9/N,KAAKw9R,GAAW,CAACH,KAAW,CAE5D,OAAOJ,EACR,CAxLiCC,CAAiBL,GAASX,GAAWI,GAAWD,IAE9EH,GAAYe,GAAYlkS,SAAQkkS,GAAYf,IAAWxkS,KAAO,cAC9DskS,GAAO,GAAKG,KAAkBsB,KAAYR,GAAYd,IAAezkS,KAAO,YAC/EulS,GAAYX,GAAU,IAAI5kS,KAAO,OACjCulS,GAAYX,UAAYA,GACxBW,GAAYZ,IAAMA,GAGlB,IAA6BqB,GAA0B,GAAIjC,GAA6B,GAAIC,GAA8B,IAkL1H,SAASiC,GAAezB,GAAsBe,GAA4BJ,GAA6Ba,GAAyB1B,GAAM9mH,GAAOumH,GAAWmC,IAIvJ,QADwBlmS,GAFpBmmS,GAAgB,EAAGC,GAAMJ,GAAM3kS,OAAO,EAAE,EACxCglS,GAASd,GAAYf,IAAWl8R,KAChClH,GAAI,EAAGklS,GAAU,EACfllS,GAAIilS,GAAOhlS,OAAQD,IAAI,IAAK,CACjC,IAAIyhS,GAAyBwD,GAAO1jS,MAAMvB,GAAGA,GAAE,KAC/C0hS,GAAUD,GAAM,IAChByD,GAAUzD,GAAKE,WAAW,GAC1B/iS,GAAOumS,GAAU1D,GAAK,EAAEyD,GAAQF,IAChCJ,GAAMxgS,KAAKxF,IACX,IAAIorC,GAAkB,CACrBprC,KAAOA,GACPuH,KAAOs7R,GAAKE,WAAW,GACvB/uL,MAAO6uL,GAAKE,WAAW,GACvBznE,EAAOunE,GAAKE,WAAW,EAAG,KAC1BxnE,EAAOsnE,GAAKE,WAAW,EAAG,KAC1BhB,EAAOc,GAAKE,WAAW,EAAG,KAC1ByD,MAAO3D,GAAKE,WAAW,IACvBz9Q,MAAOu9Q,GAAKE,WAAW,EAAG,KAC1B9iN,MAAO,EACPje,KAAM,GAGM,IADU6gO,GAAKE,WAAW,GAAKF,GAAKE,WAAW,GAAKF,GAAKE,WAAW,GAAKF,GAAKE,WAAW,KACtF33P,GAAEq7P,GAAKC,GAAU7D,GAAMA,GAAK71L,EAAE,IAEjC,IADU61L,GAAKE,WAAW,GAAKF,GAAKE,WAAW,GAAKF,GAAKE,WAAW,GAAKF,GAAKE,WAAW,KACtF33P,GAAEi4P,GAAKqD,GAAU7D,GAAMA,GAAK71L,EAAE,IAC9C5hE,GAAE60C,MAAQ4iN,GAAKE,WAAW,EAAG,KAC7B33P,GAAE42B,KAAO6gO,GAAKE,WAAW,EAAG,KACzB33P,GAAE42B,KAAO,GAAK52B,GAAE60C,MAAQ,IAAK70C,GAAE42B,KAAO52B,GAAE7jC,KAAO,EAAG6jC,GAAE60C,MAAQ8lN,GAAY36P,GAAEprC,KAAO,IACtE,IAAXorC,GAAE7jC,MACJ4+R,GAAgB/6P,GAAE60C,MACfqkN,GAAO,GAAK6B,KAAkBJ,KAAYR,GAAYY,IAAenmS,KAAO,gBAEtEorC,GAAE42B,MAAQ,MACnB52B,GAAEu7P,QAAU,WACgB97R,IAAzB06R,GAAYn6P,GAAE60C,SAAsBslN,GAAYn6P,GAAE60C,OAAS2mN,GAAgBzB,GAAS/5P,GAAE60C,MAAOslN,GAAYX,UAAWW,GAAYZ,MACnIY,GAAYn6P,GAAE60C,OAAOjgF,KAAOorC,GAAEprC,KAC9BorC,GAAEhiC,QAAWm8R,GAAYn6P,GAAE60C,OAAO33E,KAAK3F,MAAM,EAAEyoC,GAAE42B,QAEjD52B,GAAEu7P,QAAU,UACTv7P,GAAE42B,KAAO,EAAG52B,GAAE42B,KAAO,EAChBmkO,KAAkBJ,IAAc36P,GAAE60C,QAAU8lN,IAAcR,GAAYY,MAC7E/6P,GAAEhiC,QAAUy9R,GAAez7P,GAAGm6P,GAAYY,IAAe79R,MAAOi9R,GAAYW,KAAO,CAAC,GAAG59R,QAGtF8iC,GAAEhiC,SAAS05R,GAAU13P,GAAEhiC,QAAS,GACnCo0K,GAAMx9K,IAAQorC,GACd24P,GAAUv+R,KAAK4lC,GAAC,CAElB,EAlOA66P,CAAezB,GAAWe,GAAaJ,GAASa,GAAO1B,GAD9B,CAAC,EAC0CP,GAAWU,IA6D/E,SAASqC,GAAiBC,GAAqBC,GAAsBhB,IAIpE,QAHI5kS,GAAI,EAAGk6N,GAAI,EAAGC,GAAI,EAAGwmE,GAAI,EAAGhmN,GAAI,EAAGqqN,GAAKJ,GAAM3kS,OAC9C4lS,GAAwB,GAAIhpP,GAAsB,GAEhD78C,GAAIglS,KAAMhlS,GAAK6lS,GAAI7lS,IAAG68C,GAAE78C,IAAGA,GAAG4lS,GAAG5lS,IAAG4kS,GAAM5kS,IAEhD,KAAM26E,GAAI99B,GAAE58C,SAAU06E,GAErBu/I,GAAIyrE,GADJ3lS,GAAI68C,GAAE89B,KACIu/I,EAAGC,GAAIwrE,GAAG3lS,IAAGm6N,EAAGwmE,GAAIgF,GAAG3lS,IAAG2gS,EACjCkF,GAAI7lS,MAAOA,MACJ,IAANk6N,IAAyB2rE,GAAI3rE,MAAOA,KAAG2rE,GAAI7lS,IAAK6lS,GAAI3rE,MAC9C,IAANC,IAAY0rE,GAAI1rE,MAAOA,KAAG0rE,GAAI7lS,IAAK6lS,GAAI1rE,OAElC,IAANwmE,KAAuBkF,GAAIlF,IAAK3gS,KAC1B,IAANk6N,IAAYl6N,IAAK6lS,GAAI7lS,MAAM6lS,GAAI3rE,IAAK2rE,GAAI7lS,IAAO68C,GAAE0/O,YAAYriE,IAAKv/I,IAAG99B,GAAEz4C,KAAK81N,MACtE,IAANC,IAAYn6N,IAAK6lS,GAAI7lS,MAAM6lS,GAAI1rE,IAAK0rE,GAAI7lS,IAAO68C,GAAE0/O,YAAYpiE,IAAKx/I,IAAG99B,GAAEz4C,KAAK+1N,KAEhF,IAAIn6N,GAAE,EAAGA,GAAIglS,KAAMhlS,GAAM6lS,GAAI7lS,MAAOA,MAC1B,IAANm6N,IAAyB0rE,GAAI1rE,MAAOA,GAAG0rE,GAAI7lS,IAAK6lS,GAAI1rE,KACzC,IAAND,IAAY2rE,GAAI3rE,MAAOA,KAAG2rE,GAAI7lS,IAAK6lS,GAAI3rE,MAGhD,IAAIl6N,GAAE,EAAGA,GAAIglS,KAAMhlS,GAClB,GAAkB,IAAf2lS,GAAG3lS,IAAGmG,KAET,KADAw0E,GAAI36E,KACI6lS,GAAIlrN,IAAI,GAEfirN,GAAG5lS,IAAK4lS,GADRjrN,GAAIkrN,GAAIlrN,KACQ,IAAMirN,GAAG5lS,UACX,IAAN26E,KAAW,IAAOkrN,GAAIlrN,KAAMA,IAAKkrN,GAAIlrN,KAC9CkrN,GAAI7lS,KAAK,EAIV,IADA4lS,GAAG,IAAM,IACL5lS,GAAE,EAAGA,GAAIglS,KAAMhlS,GACA,IAAf2lS,GAAG3lS,IAAGmG,OAAyBy/R,GAAG5lS,KAAM,IAE7C,CA/FA0lS,CAAiB/C,GAAWC,GAAWgC,IACvCA,GAAMn5R,QAEN,IAAIu+B,GAAI,CACP24P,UAAWA,GACXC,UAAWA,IAIZ,OAAGxrR,IAAWA,GAAQ6jN,MAAKjxL,GAAEixL,IAAM,CAAChK,OAAQA,GAAQ8yE,QAASA,KACtD/5P,EACP,CAsFA,SAASy7P,GAAevyN,GAAoB4yN,GAAsBhB,IAKjE,QAJyBlkO,GAAOsS,GAAMtS,KAElC52B,GAAI,GACJzxB,GAHQ26D,GAAM2L,MAIZimN,IAAQlkO,GAAO,GAAKroD,IAAO,GAChCyxB,GAAE5lC,KAAK0hS,GAAQvkS,MAAMgX,GAAMwtR,GAAMxtR,GAAMwtR,GAAOA,KAC9CnlO,IAAQmlO,GACRxtR,GAAMksR,GAAcK,GAAY,EAANvsR,IAE3B,OAAgB,IAAbyxB,GAAE/pC,OAAsB+lS,GAAQ,GAC3BrQ,GAAQ3rP,IAAGzoC,MAAM,EAAG2xE,GAAMtS,KACnC,CAIA,SAASsjO,GAAW3rR,GAAgB0tR,GAAgBlC,GAA6BR,GAAgBC,IAChG,IAAI3mP,GAAe8nP,GACnB,GAAGpsR,KAAQosR,IACV,GAAW,IAARsB,GAAW,MAAM,IAAIhkS,MAAM,0CAAmC,IAChD,IAARsW,GAAyB,CAClC,IAAI0sR,GAASlB,GAAQxrR,IAAM+iB,IAAKioQ,KAAM,GAAG,EACzC,IAAI0B,GAAQ,OACZ,QAAQjlS,GAAI,EAAGA,GAAIs7B,KACduhB,GAAI4nP,GAAcQ,GAAS,EAAFjlS,OAAU2kS,KADhB3kS,GAEvBwjS,GAAUp/R,KAAKy4C,IAEbopP,IAAO,GAAG/B,GAAWO,GAAcQ,GAAO1B,GAAI,GAAG0C,GAAM,EAAGlC,GAASR,GAAKC,GAAS,CAEtF,CAGA,SAASgC,GAAgBzB,GAA6BllN,GAAkB2kN,GAA6BD,GAAgBe,IACpH,IAAIt9D,GAAwB,GAAIu9D,GAA2B,GACvDD,KAAMA,GAAO,IACjB,IAAIE,GAAUjB,GAAM,EAAG5oN,GAAI,EAAGgjN,GAAK,EACnC,IAAIhjN,GAAEkE,GAAOlE,IAAG,GAAI,CACnB2pN,GAAK3pN,KAAK,EACVqsJ,GAAIA,GAAI/mO,QAAU06E,GAClB4pN,GAAUngS,KAAK2/R,GAAQppN,KACvB,IAAIipE,GAAO4/I,GAAU98Q,KAAKosF,MAAQ,EAAFn4B,GAAI4oN,KAEpC,GAAGA,GAAM,GADT5F,GAAS,EAAFhjN,GAAO6pN,IACG,MAAM,IAAIviS,MAAM,yBAA2B04E,GAAI,MAAM4oN,IACtE,IAAIQ,GAAQngJ,IAAO,MACnBjpE,GAAI8pN,GAAcV,GAAQngJ,IAAO+5I,GAAE,CAEpC,MAAO,CAACptP,MAAOy2L,GAAK9/N,KAAKw9R,GAAW,CAACH,KACtC,CAkFA,SAASe,GAAU7D,GAA0B/3O,IAC5C,OAAO,IAAInlC,KAA6G,KAAnG2hR,GAAezE,GAAK/3O,GAAO,GAAG,IAAKhjC,KAAKolD,IAAI,EAAE,IAAIo6N,GAAezE,GAAK/3O,IAAQ,IAAQ,aAC5G,CAoBA,SAASm5O,GAASsD,GAAsBvO,IACvC,IAAI5tP,GAAI4tP,IAAQ,CAAC,EAAGpkQ,GAAOwW,GAAExW,MAAQ,aAGrC,GAFI2yQ,GAAIvD,YAAWuD,GAAIvD,UAAY,IAC/BuD,GAAIxD,YAAWwD,GAAIxD,UAAY,IAChCwD,GAAIvD,UAAU3iS,SAAWkmS,GAAIxD,UAAU1iS,OAAQ,MAAM,IAAIgC,MAAM,8BACtC,IAAzBkkS,GAAIvD,UAAU3iS,SAChBkmS,GAAIvD,UAAU,GAAKpvQ,GAAO,IAC1B2yQ,GAAIxD,UAAU,GAAM,CAAE/jS,KAAM40B,GAAMrtB,KAAM,IAEtC6jC,GAAEo8P,QAAOD,GAAIxD,UAAU,GAAGyC,MAAQp7P,GAAEo8P,OAGxC,SAASC,GAASF,IACjB,IAAIG,GAAK,cACT,IAAGxF,GAAI1lQ,KAAK+qQ,GAAK,IAAMG,IACvB,KAAIrxQ,GAAI+wQ,GAAQ,GAAI/wQ,GAAE,GAAK,GAAIA,GAAE,GAAKA,GAAE,GAAK,GAAIA,GAAE,GAAK,GACxDkxQ,GAAIxD,UAAUv+R,KAAM,CAAExF,KAAM0nS,GAAIngS,KAAM,EAAG6B,QAAQitB,GAAG2rC,KAAK,EAAGs5J,EAAE,GAAIC,EAAE,GAAIwmE,EAAE,KAC1EwF,GAAIvD,UAAUx+R,KAAK+hS,GAAIvD,UAAU,GAAK0D,IACtCC,GAAYJ,GAAG,CAChB,CATCE,CAASF,GACV,CASA,SAASI,GAAYJ,GAAsBvpP,IAC1CimP,GAASsD,IAET,QADIK,IAAK,EAAOrhS,IAAI,EACZnF,GAAImmS,GAAIvD,UAAU3iS,OAAS,EAAGD,IAAK,IAAKA,GAAG,CAClD,IAAIymS,GAAQN,GAAIxD,UAAU3iS,IAC1B,OAAOymS,GAAMtgS,MACZ,KAAK,EACDhB,GAAGqhS,IAAK,GACJL,GAAIxD,UAAUn2R,MAAO25R,GAAIvD,UAAUp2R,OAC1C,MACD,KAAK,EAAG,KAAK,EAAG,KAAK,EACpBrH,IAAI,EACDgjB,MAAMs+Q,GAAMtsE,EAAIssE,GAAMvsE,EAAIusE,GAAM9F,KAAI6F,IAAK,GACzCC,GAAMtsE,GAAI,GAAMssE,GAAMvsE,GAAI,GAAMusE,GAAMtsE,GAAKssE,GAAMvsE,IAAGssE,IAAK,GAC5D,MACD,QAASA,IAAK,EAAY,CAG5B,GAAIA,IAAO5pP,GAEX,KAAIt4B,GAAM,IAAIC,KAAK,KAAM,EAAG,IAAKo2D,GAAI,EAEjC+rN,GAAYv/R,OAAOC,OAASD,OAAOC,OAAO,MAAQ,CAAC,EACnDF,GAAqC,GACzC,IAAIlH,GAAI,EAAGA,GAAImmS,GAAIvD,UAAU3iS,SAAUD,GACtC0mS,GAAUP,GAAIvD,UAAU5iS,MAAM,EACD,IAA1BmmS,GAAIxD,UAAU3iS,IAAGmG,MACpBe,GAAK9C,KAAK,CAAC+hS,GAAIvD,UAAU5iS,IAAImmS,GAAIxD,UAAU3iS,MAE5C,IAAIA,GAAI,EAAGA,GAAIkH,GAAKjH,SAAUD,GAAG,CAChC,IAAI6lS,GAAM7E,EAAQ95R,GAAKlH,IAAG,IAE1B,IADAmF,GAAIuhS,GAAUb,KACP1gS,IAAG,CACT,KAAM67R,EAAQ6E,MAASa,GAAU1F,EAAQ6E,MAAOA,GAAM7E,EAAQ6E,IAE9D3+R,GAAK9C,KAAK,CAACyhS,GAAM,CAChBjnS,KAAMyiI,EAASwkK,IAAKzgS,QAAQ,IAAI,IAChCe,KAAM,EACNi/R,MAAOuB,GACPtB,GAAI/gR,GAAK29Q,GAAI39Q,GACbtc,QAAS,QAIV0+R,GAAUb,KAAO,EAGjB1gS,GAAIuhS,GADJb,GAAM7E,EAAQ95R,GAAKlH,IAAG,IACL,EAMnB,IAFAkH,GAAKsqB,KAAK,SAAS3B,GAAE6gE,IAAK,OApf3B,SAASk2M,EAAQh7L,GAAcx6F,IAE9B,QADI8oN,GAAItuH,GAAEv/F,MAAM,KAAM8tN,GAAI/oN,GAAE/E,MAAM,KAC1BrM,GAAI,EAAG8yB,GAAI,EAAG+zQ,GAAIngR,KAAK4lC,IAAI4tK,GAAEj6N,OAAQk6N,GAAEl6N,QAASD,GAAI6mS,KAAK7mS,GAAG,CACnE,GAAI8yB,GAAIonM,GAAEl6N,IAAGC,OAASk6N,GAAEn6N,IAAGC,OAAS,OAAO6yB,GAC3C,GAAGonM,GAAEl6N,KAAMm6N,GAAEn6N,IAAI,OAAOk6N,GAAEl6N,IAAKm6N,GAAEn6N,KAAK,EAAK,EAE5C,OAAOk6N,GAAEj6N,OAASk6N,GAAEl6N,MACrB,CA6ekC2mS,CAAQ/2Q,GAAE,GAAI6gE,GAAE,GAAK,GACtDy1M,GAAIvD,UAAY,GAAIuD,GAAIxD,UAAY,GAChC3iS,GAAI,EAAGA,GAAIkH,GAAKjH,SAAUD,GAAKmmS,GAAIvD,UAAU5iS,IAAKkH,GAAKlH,IAAG,GAAImmS,GAAIxD,UAAU3iS,IAAKkH,GAAKlH,IAAG,GAC7F,IAAIA,GAAI,EAAGA,GAAIkH,GAAKjH,SAAUD,GAAG,CAChC,IAAIk1J,GAAMixI,GAAIxD,UAAU3iS,IACpBsmS,GAAKH,GAAIvD,UAAU5iS,IAOvB,GALAk1J,GAAIt2J,KAAQyiI,EAASilK,IAAIlhS,QAAQ,IAAI,IACrC8vJ,GAAIglE,EAAIhlE,GAAIilE,EAAIjlE,GAAIyrI,IAAMzrI,GAAItiD,MAAQ,GACtCsiD,GAAIt0F,KAAOs0F,GAAIltJ,QAAUktJ,GAAIltJ,QAAQ/H,OAAS,EAC9Ci1J,GAAIr2E,MAAQ,EACZq2E,GAAIkwI,MAASlwI,GAAIkwI,OAASuB,GACjB,IAAN3mS,GACFk1J,GAAIyrI,EAAIz5R,GAAKjH,OAAS,EAAI,GAAI,EAC9Bi1J,GAAIt0F,KAAO,EACXs0F,GAAI/uJ,KAAO,UACc,KAAhBmgS,GAAG/kS,OAAM,GAAY,CAC9B,IAAIo5E,GAAE36E,GAAE,EAAE26E,GAAIzzE,GAAKjH,QAAgB+gS,EAAQmF,GAAIvD,UAAUjoN,MAAK2rN,KAAjC3rN,IAE7B,IADAu6E,GAAIyrI,EAAIhmN,IAAKzzE,GAAKjH,QAAS,EAAK06E,GAC5BA,GAAE36E,GAAE,EAAE26E,GAAIzzE,GAAKjH,QAAgB+gS,EAAQmF,GAAIvD,UAAUjoN,MAAKqmN,EAAQsF,MAAzC3rN,IAC7Bu6E,GAAIilE,EAAIx/I,IAAKzzE,GAAKjH,QAAS,EAAK06E,GAChCu6E,GAAI/uJ,KAAO,OAER66R,EAAQmF,GAAIvD,UAAU5iS,GAAE,IAAI,KAAOghS,EAAQsF,MAAKpxI,GAAIilE,EAAIn6N,GAAI,GAC/Dk1J,GAAI/uJ,KAAO,GAId,CAEA,SAAS2gS,GAAOX,GAAsB/uR,IACrC,IAAI2vR,GAAQ3vR,IAAW,CAAC,EAExB,GAAqB,OAAlB2vR,GAAMC,SAAmB,OAijC7B,SAASC,IAAUd,GAAsB/uR,IAcxC,IAbA,IAAIwgR,GAAOxgR,IAAW,CAAC,EACnB4oL,GAAW43F,GAAK53F,UAAY,UAG5Bg4F,GAAM,CACT,oBACA,+CAJDh4F,GAAW,UAAYA,IAImCz+L,MAAM,GAAK,IACpE,GACA,GACA,IAGGiyB,GAAO2yQ,GAAIvD,UAAU,GAAIsE,GAAK1zQ,GAAM2zQ,GAAKhB,GAAIxD,UAAU,GACnD3iS,GAAI,EAAGA,GAAImmS,GAAIvD,UAAU3iS,SAAUD,GAG1C,GAFAknS,GAAKf,GAAIvD,UAAU5iS,IAAGuB,MAAMiyB,GAAKvzB,SACjCknS,GAAKhB,GAAIxD,UAAU3iS,KACZ4gE,MAASumO,GAAGn/R,SAAiB,eAANk/R,GAG9BA,IAAKA,GAAG9hS,QAAQ,yCAA0C,SAAS0tB,IAClE,MAAO,KAAOA,GAAEipH,WAAW,GAAGjqI,SAAS,IAAM,GAC9C,GAAG1M,QAAQ,mBAAoB,SAAS2kB,IACvC,MAAO,KAAOA,GAAEgyH,WAAW,GAAGjqI,SAAS,IAAM,GAC9C,GASA,QANIs1R,GAAKD,GAAGn/R,QAER4xF,GAAO+6L,IAAWC,OAAOiB,SAASuR,IAAMA,GAAGt1R,SAAS,UAAY2jR,GAAI2R,IAGpEC,GAAU,EAAGntE,GAAIxzM,KAAK4lC,IAAI,KAAMstC,GAAK35F,QAAS4+B,GAAK,EAC/CyoQ,GAAM,EAAGA,IAAOptE,KAAKotE,IAASzoQ,GAAG+6D,GAAKmiD,WAAWurJ,MAAS,IAAQzoQ,GAAK,OAAQwoQ,GACvF,IAAIvsQ,GAAKusQ,IAAe,EAAJntE,GAAQ,EAE5B89D,GAAI5zR,KAAK47L,IACTg4F,GAAI5zR,KAAK,sBAAwBwzR,GAAKpkQ,MAAQ,uBAAyB0zQ,IACvElP,GAAI5zR,KAAK,+BAAiC02B,GAAK,mBAAqB,WACpEk9P,GAAI5zR,KAAK,iBAAmBmjS,IAAiBJ,GAAID,KACjDlP,GAAI5zR,KAAK,IAET4zR,GAAI5zR,KAAK02B,GAAK0sQ,IAAuB5tM,IAAQ6tM,IAAgB7tM,IAAK,CAEnEo+L,UAAI5zR,KAAK47L,GAAW,UACbg4F,GAAI1/Q,KAAK,OACjB,CA/lCoC2uR,CAAUd,GAAKY,IAElD,GACM,SAFNR,GAAYJ,IACLY,GAAMC,UACA,OAsyBd,SAASU,IAAUvB,GAAsB/uR,IACxC,IAAI2vR,GAAQ3vR,IAAW,CAAC,EACpB4gR,GAAM,GAAI2P,GAAQ,GAClB39P,GAAeg8P,GAAQ,GACvB9sR,GAAU6tR,GAAMa,YAAc,EAAI,EAAI5+R,GAAQ,EAG9ChJ,GAAI,EAAG26E,GAAI,EAEXktN,GAAW,EAAG9E,GAAO,EACrBvvQ,GAAO2yQ,GAAIvD,UAAU,GAAIsE,GAAK1zQ,GAAM2zQ,GAAKhB,GAAIxD,UAAU,GACvDmF,GAAO,GACPC,GAAQ,EAEZ,IAAI/nS,GAAI,EAAGA,GAAImmS,GAAIvD,UAAU3iS,SAAUD,GAEtC,GADAknS,GAAKf,GAAIvD,UAAU5iS,IAAGuB,MAAMiyB,GAAKvzB,SAASknS,GAAKhB,GAAIxD,UAAU3iS,KACtD4gE,MAASumO,GAAGn/R,SAAiB,eAANk/R,GAC9B,KAAIroN,GAAQgpN,GAGRG,GAAUhC,GAAQkB,GAAGjnS,QACzB,IAAI06E,GAAI,EAAGA,GAAIusN,GAAGjnS,SAAU06E,GAAGqtN,GAAQ1G,YAAY,EAAsB,IAAnB4F,GAAGnrJ,WAAWphE,KACpEqtN,GAAUA,GAAQzmS,MAAM,EAAGymS,GAAQp8L,GACnCk8L,GAAK/E,IAA6B,iBAAdoE,GAAGn/R,QAAsBm3R,GAAMsB,KAAK0G,GAAGn/R,QAAS,GAAKm3R,GAAMn4D,IAAYmgE,GAAGn/R,QAAyB,GAEvH,IAAIigS,GAA8B,iBAAdd,GAAGn/R,QAAsButR,GAAI4R,GAAGn/R,SAAWm/R,GAAGn/R,QACrD,GAAVkR,KAAa+uR,GAASC,GAAgBD,MAGzCj+P,GAAIg8P,GAAQ,KACV1E,YAAY,EAAG,UACjBt3P,GAAEs3P,YAAY,EAAG,IACjBt3P,GAAEs3P,YAAY,EAAGt4R,IACjBghC,GAAEs3P,YAAY,EAAGpoR,IAEdiuR,GAAGlF,GAAIhB,EAAej3P,GAAGm9P,GAAGlF,IAC1Bj4P,GAAEs3P,YAAY,EAAG,GACtBt3P,GAAEs3P,aAAY,EAAa,EAARt4R,GAAa,EAAI8+R,GAAK/E,KACzC/4P,GAAEs3P,YAAY,EAAa,EAARt4R,GAAa,EAAIi/R,GAAOhoS,QAC3C+pC,GAAEs3P,YAAY,EAAa,EAARt4R,GAAa,EAAWm+R,GAAGn/R,QAAmB/H,QACjE+pC,GAAEs3P,YAAY,EAAG0G,GAAQ/nS,QACzB+pC,GAAEs3P,YAAY,EAAG,GAEjBuG,IAAY79P,GAAE/pC,OACd+3R,GAAI5zR,KAAK4lC,IACT69P,IAAYG,GAAQ/nS,OACpB+3R,GAAI5zR,KAAK4jS,IAMTH,IAAYI,GAAOhoS,OACnB+3R,GAAI5zR,KAAK6jS,IAGE,EAARj/R,MACFghC,GAAIg8P,GAAQ,KACV1E,aAAY,EAAIwG,GAAK/E,KACvB/4P,GAAEs3P,YAAY,EAAG2G,GAAOhoS,QACxB+pC,GAAEs3P,YAAY,EAAU6F,GAAGn/R,QAAmB/H,QAC9C4nS,IAAY79P,GAAE4hE,EACdosL,GAAI5zR,KAAK4lC,MAIVA,GAAIg8P,GAAQ,KACV1E,YAAY,EAAG,UACjBt3P,GAAEs3P,YAAY,EAAG,GACjBt3P,GAAEs3P,YAAY,EAAG,IACjBt3P,GAAEs3P,YAAY,EAAGt4R,IACjBghC,GAAEs3P,YAAY,EAAGpoR,IACjB8wB,GAAEs3P,YAAY,EAAG,GACjBt3P,GAAEs3P,aAAY,EAAIwG,GAAK/E,KAEvB/4P,GAAEs3P,YAAY,EAAG2G,GAAOhoS,QACxB+pC,GAAEs3P,YAAY,EAAU6F,GAAGn/R,QAAmB/H,QAC9C+pC,GAAEs3P,YAAY,EAAG0G,GAAQ/nS,QACzB+pC,GAAEs3P,YAAY,EAAG,GACjBt3P,GAAEs3P,YAAY,EAAG,GACjBt3P,GAAEs3P,YAAY,EAAG,GACjBt3P,GAAEs3P,YAAY,EAAG,GACjBt3P,GAAEs3P,YAAY,EAAG,GACjBt3P,GAAEs3P,YAAY,EAAGziN,IAEjBkpN,IAAS/9P,GAAE4hE,EACX+7L,GAAMvjS,KAAK4lC,IACX+9P,IAASC,GAAQ/nS,OACjB0nS,GAAMvjS,KAAK4jS,MACTjF,GAIH/4P,UAAIg8P,GAAQ,KACV1E,YAAY,EAAG,WACjBt3P,GAAEs3P,YAAY,EAAG,GACjBt3P,GAAEs3P,YAAY,EAAG,GACjBt3P,GAAEs3P,YAAY,EAAGyB,IACjB/4P,GAAEs3P,YAAY,EAAGyB,IACjB/4P,GAAEs3P,YAAY,EAAGyG,IACjB/9P,GAAEs3P,YAAY,EAAGuG,IACjB79P,GAAEs3P,YAAY,EAAG,GAEV3L,GAAS,CAACA,GAASqC,IAAerC,GAAQgS,IAAQ39P,IAC1D,CA94BqB09P,CAAUvB,GAAKY,IAGnC,IAAI7sE,GAAK,SAASisE,IAEjB,QADIgC,GAAY,EAAGC,GAAW,EACtBpoS,GAAI,EAAGA,GAAImmS,GAAIxD,UAAU1iS,SAAUD,GAAG,CAC7C,IAAI0hI,GAAOykK,GAAIxD,UAAU3iS,IACzB,GAAI0hI,GAAK15H,QACT,KAAIq1R,GAAO37J,GAAK15H,QAAQ/H,OACrBo9R,GAAO,IACNA,GAAO,KAAQ8K,IAAc9K,GAAO,IAAS,EAC3C+K,IAAa/K,GAAO,KAAW,IAStC,QANIyG,GAAWqC,GAAIvD,UAAU3iS,OAAQ,GAAM,EAEvCooS,GAAYF,GAAY,KAAS,EACjCG,IAFYH,GAAY,GAAM,GAERC,GAAWtE,GAAUuE,GAC3CE,GAAWD,GAAW,KAAS,EAC/BE,GAAYD,IAAW,IAAM,EAAI7hR,KAAK03J,MAAMmqH,GAAQ,KAAK,KACrDD,GAAWC,GAAUC,GAAY,KAAS,EAAKD,IAASC,KAAcD,IAAW,IAAM,EAAI7hR,KAAK03J,MAAMmqH,GAAQ,KAAK,KAC3H,IAAIruE,GAAK,CAAC,EAAGsuE,GAAWD,GAASF,GAAUvE,GAASsE,GAAUD,GAAW,GACzEhC,UAAIxD,UAAU,GAAG/hO,KAAOunO,IAAa,EACrCjuE,GAAE,IAAMisE,GAAIxD,UAAU,GAAG9jN,MAAMq7I,GAAE,GAAGA,GAAE,GAAGA,GAAE,GAAGA,GAAE,GAAGA,GAAE,GAAGA,GAAE,KAAMA,GAAE,GAAG,GAAM,GACpEA,EACR,CAtBS,CAsBNisE,IACCn8P,GAAIg8P,GAAQ9rE,GAAE,IAAM,GACpBl6N,GAAI,EAAGi4R,GAAI,EAEd,IAAIj4R,GAAI,EAAGA,GAAI,IAAKA,GAAGgqC,GAAEs3P,YAAY,EAAGmH,GAAWzoS,KACnD,IAAIA,GAAI,EAAGA,GAAI,IAAKA,GAAGgqC,GAAEs3P,YAAY,EAAG,GAMxC,IALAt3P,GAAEs3P,YAAY,EAAG,IACjBt3P,GAAEs3P,YAAY,EAAG,GACjBt3P,GAAEs3P,YAAY,EAAG,OACjBt3P,GAAEs3P,YAAY,EAAG,GACjBt3P,GAAEs3P,YAAY,EAAG,GACbthS,GAAI,EAAGA,GAAI,IAAKA,GAAGgqC,GAAEs3P,YAAY,EAAG,GAUxC,IATAt3P,GAAEs3P,YAAY,EAAG,GACjBt3P,GAAEs3P,YAAY,EAAGpnE,GAAE,IACnBlwL,GAAEs3P,YAAY,EAAGpnE,GAAE,GAAKA,GAAE,GAAKA,GAAE,GAAKA,GAAE,GAAK,GAC7ClwL,GAAEs3P,YAAY,EAAG,GACjBt3P,GAAEs3P,YAAY,EAAG,MACjBt3P,GAAEs3P,YAAY,EAAGpnE,GAAE,GAAKA,GAAE,GAAKA,GAAE,GAAKA,GAAE,GAAK,EAAGyqE,IAChD36P,GAAEs3P,YAAY,EAAGpnE,GAAE,IACnBlwL,GAAEs3P,aAAY,EAAIpnE,GAAE,GAAKA,GAAE,GAAK,EAAGyqE,IACnC36P,GAAEs3P,YAAY,EAAGpnE,GAAE,IACfl6N,GAAI,EAAGA,GAAI,MAAOA,GAAGgqC,GAAEs3P,aAAY,EAAIthS,GAAIk6N,GAAE,GAAKA,GAAE,GAAKl6N,IAAI,GAElE,GAAGk6N,GAAE,GACJ,IAAI+9D,GAAI,EAAGA,GAAI/9D,GAAE,KAAM+9D,GAAG,CACzB,KAAMj4R,GAAI,IAAU,IAAJi4R,KAAWj4R,GAAGgqC,GAAEs3P,aAAY,EAAIthS,GAAIk6N,GAAE,GAAKA,GAAE,GAAKl6N,IAAI,GACtEgqC,GAAEs3P,aAAY,EAAIrJ,KAAM/9D,GAAE,GAAK,EAAIyqE,GAAa1M,GAAI,EAAC,CAGvD,IAAIyQ,GAAU,SAASppD,IACtB,IAAI24C,IAAK34C,GAAGt/O,GAAEi4R,GAAE,IAAKj4R,GAAGgqC,GAAEs3P,aAAY,EAAIthS,GAAE,GACzCs/O,OAAOt/O,GAAGgqC,GAAEs3P,aAAY,EAAIqD,IAChC,EAEA,IADA1M,GAAIj4R,GAAI,EACJi4R,IAAG/9D,GAAE,GAAIl6N,GAAEi4R,KAAKj4R,GAAGgqC,GAAEs3P,aAAY,EAAInjB,GAAOwqB,SAChD,IAAI1Q,IAAG/9D,GAAE,GAAIl6N,GAAEi4R,KAAKj4R,GAAGgqC,GAAEs3P,aAAY,EAAInjB,GAAOyqB,SAChDF,GAAQxuE,GAAE,IACVwuE,GAAQxuE,GAAE,IAGV,QAFIv/I,GAAe,EAAG0iN,GAAkB,EACpC37J,GAAoBykK,GAAIxD,UAAU,GAChChoN,GAAIwrN,GAAIxD,UAAU1iS,SAAU06E,IACjC+mD,GAAOykK,GAAIxD,UAAUhoN,KACZ3yE,YAETq1R,GAAO37J,GAAK15H,QAAQ/H,QACV,QACVyhI,GAAK7iD,MAAQo5M,GACbyQ,GAASrL,GAAO,KAAW,IAG5B,IADAqL,GAASxuE,GAAE,GAAK,GAAM,GACV,IAANlwL,GAAE4hE,GAAW5hE,GAAEs3P,aAAY,EAAInjB,GAAOwmB,YAE5C,IADA1M,GAAIj4R,GAAI,EACJ26E,GAAI,EAAGA,GAAIwrN,GAAIxD,UAAU1iS,SAAU06E,IACtC+mD,GAAOykK,GAAIxD,UAAUhoN,KACZ3yE,UAETq1R,GAAO37J,GAAK15H,QAAQ/H,WACRo9R,IAAQ,QACpB37J,GAAK7iD,MAAQo5M,GACbyQ,GAASrL,GAAO,IAAS,IAE1B,KAAY,IAANrzP,GAAE4hE,GAAW5hE,GAAEs3P,aAAY,EAAInjB,GAAOwmB,YAC5C,IAAI3kS,GAAI,EAAGA,GAAIk6N,GAAE,IAAI,IAAKl6N,GAAG,CAC5B,IAAIsmS,GAAKH,GAAIvD,UAAU5iS,IACvB,GAAIsmS,IAAoB,IAAdA,GAAGrmS,OAAb,CAMAyhI,GAAOykK,GAAIxD,UAAU3iS,IACZ,IAANA,KAAS0hI,GAAK7iD,MAAQ6iD,GAAK9gE,KAAO8gE,GAAK7iD,MAAQ,EAAI8lN,IACtD,IAAIkE,GAAwB,IAAN7oS,IAAW+mS,GAAMvzQ,MAASkuG,GAAK9iI,KAarD,GAZGiqS,GAAI5oS,OAAS,KACfq7C,QAAQjnC,MAAM,QAAUw0R,GAAM,yBAA2BA,GAAItnS,MAAM,EAAE,KACrEsnS,GAAMA,GAAItnS,MAAM,EAAG,KAEpB87R,GAAO,GAAGwL,GAAI5oS,OAAO,GACrB+pC,GAAEs3P,YAAY,GAAIuH,GAAK,WACvB7+P,GAAEs3P,YAAY,EAAGjE,IACjBrzP,GAAEs3P,YAAY,EAAG5/J,GAAKv7H,MACtB6jC,GAAEs3P,YAAY,EAAG5/J,GAAK9uB,OACtB5oE,GAAEs3P,aAAY,EAAI5/J,GAAKw4F,GACvBlwL,GAAEs3P,aAAY,EAAI5/J,GAAKy4F,GACvBnwL,GAAEs3P,aAAY,EAAI5/J,GAAKi/J,GACnBj/J,GAAK0jK,MACJp7P,GAAEs3P,YAAY,GAAI5/J,GAAK0jK,MAAO,YADnB,IAAIzqN,GAAI,EAAGA,GAAI,IAAKA,GAAG3wC,GAAEs3P,YAAY,EAAG,GAExDt3P,GAAEs3P,YAAY,EAAG5/J,GAAKx9G,OAAS,GAC/B8lB,GAAEs3P,YAAY,EAAG,GAAIt3P,GAAEs3P,YAAY,EAAG,GACtCt3P,GAAEs3P,YAAY,EAAG,GAAIt3P,GAAEs3P,YAAY,EAAG,GACtCt3P,GAAEs3P,YAAY,EAAG5/J,GAAK7iD,OACtB70C,GAAEs3P,YAAY,EAAG5/J,GAAK9gE,MAAO52B,GAAEs3P,YAAY,EAAG,EAvB7C,KAJD,CACC,IAAI3mN,GAAI,EAAGA,GAAI,KAAMA,GAAG3wC,GAAEs3P,YAAY,EAAG,GACzC,IAAI3mN,GAAI,EAAGA,GAAI,IAAKA,GAAG3wC,GAAEs3P,YAAY,GAAG,GACxC,IAAI3mN,GAAI,EAAGA,GAAI,KAAMA,GAAG3wC,GAAEs3P,YAAY,EAAG,EACzC,CAuB8C,CAEhD,IAAIthS,GAAI,EAAGA,GAAImmS,GAAIxD,UAAU1iS,SAAUD,GAGtC,IAFA0hI,GAAOykK,GAAIxD,UAAU3iS,KAEb4gE,MAAQ,KAEf,GADA52B,GAAE4hE,EAAK81B,GAAK7iD,MAAM,GAAM,EACpB81M,IAAWC,OAAOiB,SAASn0J,GAAK15H,SACnC05H,GAAK15H,QAAQ+xI,KAAK/vG,GAAGA,GAAE4hE,EAAG,EAAG81B,GAAK9gE,MAElC52B,GAAE4hE,GAAM81B,GAAK9gE,KAAO,KAAO,QACrB,CACN,IAAI+Z,GAAI,EAAGA,GAAI+mD,GAAK9gE,OAAQ+Z,GAAG3wC,GAAEs3P,YAAY,EAAG5/J,GAAK15H,QAAQ2yE,KAC7D,KAAU,IAAJA,KAAaA,GAAG3wC,GAAEs3P,YAAY,EAAG,EAAC,CAI3C,IAAIthS,GAAI,EAAGA,GAAImmS,GAAIxD,UAAU1iS,SAAUD,GAGtC,IAFA0hI,GAAOykK,GAAIxD,UAAU3iS,KAEb4gE,KAAO,GAAK8gE,GAAK9gE,KAAO,KAC/B,GAAI+zN,IAAWC,OAAOiB,SAASn0J,GAAK15H,SACnC05H,GAAK15H,QAAQ+xI,KAAK/vG,GAAGA,GAAE4hE,EAAG,EAAG81B,GAAK9gE,MAElC52B,GAAE4hE,GAAM81B,GAAK9gE,KAAO,IAAM,OACpB,CACN,IAAI+Z,GAAI,EAAGA,GAAI+mD,GAAK9gE,OAAQ+Z,GAAG3wC,GAAEs3P,YAAY,EAAG5/J,GAAK15H,QAAQ2yE,KAC7D,KAAU,GAAJA,KAAYA,GAAG3wC,GAAEs3P,YAAY,EAAG,EAAC,CAI1C,GAAI3M,GACH3qP,GAAE4hE,EAAI5hE,GAAE/pC,YAGR,KAAM+pC,GAAE4hE,EAAI5hE,GAAE/pC,QAAQ+pC,GAAEs3P,YAAY,EAAG,GAExC,OAAOt3P,EACR,CAprBA+2P,EAAQ/1K,QAAU,QA0sBlB,IAmDI89K,GAnDA/C,GAAO,GAGPpB,IAAa,EAEbf,GAAmB,mBACnB6E,GAAa,CAAC,IAAM,IAAM,GAAM,IAAM,IAAM,IAAM,GAAM,KACxD9B,GAAe,mCACfxoB,GAAS,CAEZ4qB,YAAY,EACZJ,SAAS,EACTC,SAAS,EACTjE,WAAYA,GACZqE,UAAU,EAEVpF,iBAAkBA,GAClBqF,qBAAsB,OACtBC,WAAW,EACXC,UAAU,EACVxC,aAAcA,GAEdyC,WAAY,CAAC,UAAU,UAAU,SAAS,YAAY,WAAW,SAUlE,SAAS3T,GAAIzrP,IAEZ,QADIguP,GAAM,IAAI1iR,MAAM00B,GAAE/pC,QACdD,GAAI,EAAGA,GAAIgqC,GAAE/pC,SAAUD,GAAGg4R,GAAIh4R,IAAK6R,OAAO0qI,aAAavyG,GAAEhqC,KACjE,OAAOg4R,GAAI1/Q,KAAK,GACjB,CAiCA,SAAS4vR,GAAgBpC,IACxB,OAAOgD,GAAQA,GAAMO,eAAevD,IAAWwD,GAASxD,GACzD,CAcA,IAbA,IAQoBtnQ,GAASvnB,GARzBsyR,GAAa,CAAE,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,IAG7EC,GAAS,CAAI,EAAK,EAAK,EAAK,EAAK,EAAK,EAAK,EAAI,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,KAGvJC,GAAS,CAAG,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,MAAO,OAIzJC,UAA0BtU,WAAe,IAEzCuU,GAAWD,GAAmB,IAAItU,WAAW,KAAQ,GACjDv4O,GAAI,EAAGA,GAAK,MAASA,GAAG8sP,GAAS9sP,UALZ5lC,EAAkG,MAAlGA,GAA0B,SAAnCunB,GAKqCqe,KALhB,EAAIre,IAAG,IAAsC,QAAjBA,IAAG,EAAIA,IAAG,MAA+B,GAAOvnB,IAAG,EAAIA,KAO5H,SAAS2yR,GAAWprQ,GAAG/R,IACtB,IAAIo9Q,GAAMF,GAAa,IAAJnrQ,IACnB,OAAG/R,IAAK,EAAUo9Q,KAAS,EAAEp9Q,IAC7Bo9Q,GAAOA,IAAO,EAAKF,GAAUnrQ,IAAG,EAAG,KAChC/R,IAAK,GAAWo9Q,KAAS,GAAGp9Q,IAC/Bo9Q,GAAOA,IAAO,EAAKF,GAAUnrQ,IAAG,GAAI,QACpB,GAAG/R,GACpB,CAGA,SAASq9Q,GAAY9iE,GAAK+iE,IAAM,IAAIzqD,GAAQ,EAAHyqD,GAAOnrH,GAAKmrH,KAAK,EAAI,OAAS/iE,GAAIpoD,KAAI0gE,IAAK,EAAI,EAAItY,GAAIpoD,GAAE,IAAI,MAAM0gE,GAAI,CAAM,CACtH,SAAS0qD,GAAYhjE,GAAK+iE,IAAM,IAAIzqD,GAAQ,EAAHyqD,GAAOnrH,GAAKmrH,KAAK,EAAI,OAAS/iE,GAAIpoD,KAAI0gE,IAAK,EAAI,EAAItY,GAAIpoD,GAAE,IAAI,MAAM0gE,GAAI,CAAM,CAEtH,SAAS2qD,GAAYjjE,GAAK+iE,IAAM,IAAIzqD,GAAQ,EAAHyqD,GAAOnrH,GAAKmrH,KAAK,EAAI,OAAS/iE,GAAIpoD,KAAI0gE,IAAK,EAAI,EAAItY,GAAIpoD,GAAE,IAAI,MAAM0gE,GAAI,EAAM,CACtH,SAAS4qD,GAAYljE,GAAK+iE,IAAM,IAAIzqD,GAAQ,EAAHyqD,GAAOnrH,GAAKmrH,KAAK,EAAI,OAAS/iE,GAAIpoD,KAAI0gE,IAAK,EAAI,EAAItY,GAAIpoD,GAAE,IAAI,MAAM0gE,GAAI,GAAM,CAGtH,SAAS6qD,GAAYnjE,GAAK+iE,GAAIvrQ,IAC7B,IAAI8gN,GAAQ,EAAHyqD,GAAOnrH,GAAKmrH,KAAK,EACtBhzR,GAAIiwN,GAAIpoD,MAAO0gE,GAKnB,OAJG9gN,GAAI,EAAI8gN,KACXvoO,IAAKiwN,GAAIpoD,GAAE,IAAK,EAAE0gE,GACf9gN,GAAI,GAAK8gN,MACZvoO,IAAKiwN,GAAIpoD,GAAE,IAAK,GAAG0gE,GAChB9gN,GAAI,GAAK8gN,MACZvoO,IAAKiwN,GAAIpoD,GAAE,IAAK,GAAG0gE,IACZvoO,IAR6B,GAAGynB,IAAG,CAS3C,CAGA,SAAS4rQ,GAAapjE,GAAK+iE,GAAIhzR,IAAK,IAAIuoO,GAAS,EAALyqD,GAAQnrH,GAAImrH,KAAO,EAC9D,OAAGzqD,IAAK,EAAGtY,GAAIpoD,MAAW,EAAJ7nK,KAAUuoO,IAE/BtY,GAAIpoD,KAAO7nK,IAAKuoO,GAAK,IACrBtY,GAAIpoD,GAAE,IAAQ,EAAF7nK,KAAS,EAAEuoO,IAEjByqD,GAAK,CACb,CAEA,SAASM,GAAarjE,GAAK+iE,GAAIhzR,IAE9BA,OACAiwN,GAFoB+iE,KAAO,IAC3BhzR,IAAO,EAAFA,MADQ,EAALgzR,IAGDA,GAAK,CACb,CACA,SAASO,GAAatjE,GAAK+iE,GAAIhzR,IAC9B,IAAgB6nK,GAAImrH,KAAO,EAC3BhzR,OACAiwN,GAAIpoD,KAAW,KADf7nK,KADa,EAALgzR,IAGR/iE,GAAIpoD,GAAE,GADe7nK,MAAO,EAErBgzR,GAAK,CACb,CACA,SAASQ,GAAcvjE,GAAK+iE,GAAIhzR,IAC/B,IAAgB6nK,GAAImrH,KAAO,EAC3BhzR,OACAiwN,GAAIpoD,KAAW,KADf7nK,KADa,EAALgzR,IAGR/iE,GAAIpoD,GAAE,GAAS,KADM7nK,MAAO,GAE5BiwN,GAAIpoD,GAAE,GAAK7nK,KAAM,EACVgzR,GAAK,EACb,CAGA,SAASS,GAAQ/9Q,GAAGm1Q,IACnB,IAAI1nE,GAAIztM,GAAExsB,OAAQyqG,GAAI,EAAEwvH,GAAI0nE,GAAK,EAAE1nE,GAAI0nE,GAAK,EAAG5hS,GAAI,EACnD,GAAGk6N,IAAK0nE,GAAI,OAAOn1Q,GACnB,GAAGkoQ,GAAS,CACX,IAAI3qP,GAAIqrP,GAAe3qL,IAEvB,GAAGj+E,GAAEstH,KAAMttH,GAAEstH,KAAK/vG,SACb,KAAMhqC,GAAIysB,GAAExsB,SAAUD,GAAGgqC,GAAEhqC,IAAKysB,GAAEzsB,IACvC,OAAOgqC,MACE0/P,GAAkB,CAC3B,IAAIl9Q,GAAI,IAAI4oQ,WAAW1qL,IACvB,GAAGl+E,GAAExqB,IAAKwqB,GAAExqB,IAAIyqB,SACX,KAAMzsB,GAAIk6N,KAAKl6N,GAAGwsB,GAAExsB,IAAKysB,GAAEzsB,IAChC,OAAOwsB,GAERC,UAAExsB,OAASyqG,GACJj+E,EACR,CAGA,SAASg+Q,GAAgBjsQ,IAExB,QADIwL,GAAI,IAAI10B,MAAMkpB,IACVx+B,GAAI,EAAGA,GAAIw+B,KAAKx+B,GAAGgqC,GAAEhqC,IAAK,EAClC,OAAOgqC,EACR,CAGA,SAAS0gQ,GAAWC,GAAOC,GAAMC,IAChC,IAAI/U,GAAS,EAAGx2C,GAAI,EAAGt/O,GAAI,EAAG26E,GAAI,EAAGmwN,GAAQ,EAAG5wE,GAAIywE,GAAM1qS,OAEtD8qS,GAAYrB,GAAmB,IAAIr5F,YAAY,IAAMo6F,GAAgB,IACzE,IAAIzqS,GAAI,EAAGA,GAAI,KAAMA,GAAG+qS,GAAS/qS,IAAK,EAEtC,IAAIA,GAAIk6N,GAAGl6N,GAAI6qS,KAAO7qS,GAAG2qS,GAAM3qS,IAAK,EACpCk6N,GAAIywE,GAAM1qS,OAEV,IAAI+qS,GAAQtB,GAAmB,IAAIr5F,YAAY6pB,IAAKuwE,GAAgBvwE,IAGpE,IAAIl6N,GAAI,EAAGA,GAAIk6N,KAAKl6N,GACnB+qS,GAAUzrD,GAAIqrD,GAAM3qS,OACjB81R,GAASx2C,KAAGw2C,GAASx2C,IACxB0rD,GAAMhrS,IAAK,EAGZ,IADA+qS,GAAS,GAAK,EACV/qS,GAAI,EAAGA,IAAK81R,KAAU91R,GAAG+qS,GAAS/qS,GAAE,IAAO8qS,GAASA,GAAQC,GAAS/qS,GAAE,IAAK,EAChF,IAAIA,GAAI,EAAGA,GAAIk6N,KAAKl6N,GAEP,IADZ8qS,GAAQH,GAAM3qS,OACCgrS,GAAMhrS,IAAK+qS,GAASD,GAAM,OAI1C,IAAIG,GAAQ,EACZ,IAAIjrS,GAAI,EAAGA,GAAIk6N,KAAKl6N,GAEnB,GAAY,IADZirS,GAAQN,GAAM3qS,KAGb,IADA8qS,GAAQlB,GAAWoB,GAAMhrS,IAAI81R,KAAUA,GAAOmV,GAC1CtwN,IAAK,GAAIm7M,GAAS,EAAImV,IAAU,EAAGtwN,IAAG,IAAKA,GAC9CiwN,GAAKE,GAAOnwN,IAAGswN,IAAiB,GAANA,GAAajrS,IAAG,EAG7C,OAAO81R,EACR,CAGA,IAAIoV,GAAWxB,GAAmB,IAAIr5F,YAAY,KAAOo6F,GAAgB,KACrEU,GAAWzB,GAAmB,IAAIr5F,YAAY,IAAOo6F,GAAgB,IACzE,IAAIf,GAAkB,CACrB,QAAQ1pS,GAAI,EAAGA,GAAI,MAAOA,GAAGkrS,GAASlrS,IAAK,EAC3C,IAAIA,GAAI,EAAGA,GAAI,KAAMA,GAAGmrS,GAASnrS,IAAK,GAEvC,WAGC,QAFIorS,GAA0B,GAC1BprS,GAAI,EACHA,GAAE,GAAIA,KAAKorS,GAAMhnS,KAAK,GAC3BsmS,GAAWU,GAAOD,GAAU,IAE5B,IAAIR,GAA0B,GAE9B,IADA3qS,GAAI,EACEA,IAAG,IAAKA,KAAK2qS,GAAMvmS,KAAK,GAC9B,KAAMpE,IAAG,IAAKA,KAAK2qS,GAAMvmS,KAAK,GAC9B,KAAMpE,IAAG,IAAKA,KAAK2qS,GAAMvmS,KAAK,GAC9B,KAAMpE,IAAG,IAAKA,KAAK2qS,GAAMvmS,KAAK,GAC9BsmS,GAAWC,GAAOO,GAAU,IAC7B,CAbA,GAaK,IAAIG,GAA4B,WAGpC,QAFIC,GAAY5B,GAAmB,IAAItU,WAAW,OAAU,GACxDz6M,GAAI,EAAGpmD,GAAI,EACTomD,GAAI8uN,GAAOxpS,OAAS,IAAK06E,GAC9B,KAAMpmD,GAAIk1Q,GAAO9uN,GAAE,KAAMpmD,GAAG+2Q,GAAU/2Q,IAAKomD,GAE5C,KAAKpmD,GAAI,QAASA,GAAG+2Q,GAAU/2Q,IAAK,GAEpC,IAAIg3Q,GAAY7B,GAAmB,IAAItU,WAAW,KAAS,GAC3D,IAAIz6M,GAAI,EAAGpmD,GAAI,EAAGomD,GAAI6uN,GAAOvpS,OAAS,IAAK06E,GAC1C,KAAMpmD,GAAIi1Q,GAAO7uN,GAAE,KAAMpmD,GAAGg3Q,GAAUh3Q,IAAKomD,GAgG5C,OAAO,SAAqBzzE,GAAM8wR,IACjC,OAAG9wR,GAAKjH,OAAS,EA9FlB,SAASurS,GAAatkS,GAAM8wR,IAE3B,QADIyT,GAAO,EACLA,GAAOvkS,GAAKjH,QAAQ,CACzB,IAAIi6N,GAAIxzM,KAAK4lC,IAAI,MAAQplD,GAAKjH,OAASwrS,IAKvC,IAHAzT,GAAIsJ,YAAY,IADRmK,GAAOvxE,IAAKhzN,GAAKjH,SAEzB+3R,GAAIsJ,YAAY,EAAGpnE,IACnB89D,GAAIsJ,YAAY,EAAU,OAALpnE,IACfA,MAAM,GAAG89D,GAAIA,GAAIpsL,KAAO1kG,GAAKukS,KAAM,CAE1C,OAAOzT,GAAIpsL,CACZ,CAmF4B4/L,CAAatkS,GAAM8wR,IAhF/C,SAAS0T,GAAiBxkS,GAAM8wR,IAI/B,QAHI+R,GAAK,EACL0B,GAAO,EACP/nJ,GAAQgmJ,GAAmB,IAAIr5F,YAAY,OAAU,GACnDo7F,GAAOvkS,GAAKjH,QAAQ,CACzB,IAAIi6N,GAA8BxzM,KAAK4lC,IAAI,MAAQplD,GAAKjH,OAASwrS,IAGjE,GAAGvxE,GAAI,GAAP,CAMC,IAJQ,GADR6vE,GAAKK,GAAapS,GAAK+R,KAAQ0B,GAAOvxE,IAAKhzN,GAAKjH,YACrC8pS,IAAM,GAAU,EAALA,KACtB/R,GAAIpsL,EAAKm+L,GAAK,EAAK,EACnB/R,GAAIsJ,YAAY,EAAGpnE,IACnB89D,GAAIsJ,YAAY,EAAU,OAALpnE,IACfA,MAAM,GAAG89D,GAAIA,GAAIpsL,KAAO1kG,GAAKukS,MACnC1B,GAAa,EAAR/R,GAAIpsL,CACT,KARD,CAWAm+L,GAAKK,GAAapS,GAAK+R,KAAQ0B,GAAOvxE,IAAKhzN,GAAKjH,QAAU,GAE1D,QADI0rS,GAAO,EACLzxE,MAAM,GAAG,CACd,IAAIn6L,GAAI74B,GAAKukS,IAGT/0Q,IAAQ,EAAIk1Q,GAAO,EAEvB,IAAIl1Q,GAAQgtH,GAJZioJ,GAA2B,OAAlBA,IAAQ,EAAK5rQ,SAKrBrJ,KAAgB,MAAP+0Q,IACEA,KAAM/0Q,IAAS,OACvBA,GAAQ+0Q,IAAM,KAAMvkS,GAAKwvB,GAAQk1Q,KAAS1kS,GAAKukS,GAAOG,KAASA,GAAO,OAAOA,GAGjF,GAAGA,GAAO,EAAG,EAEZ7rQ,GAAIwrQ,GAAUK,MACN,GAAI7B,GAAKO,GAAatS,GAAK+R,GAAIJ,GAAS5pQ,GAAE,IAAI,GAAK,GAE1DuqQ,GAAatS,GAAK+R,GAAI,GAEtBO,GAAatS,GADb+R,IAAM,EACgBJ,GAAS5pQ,GAAE,KAAK,GACtCgqQ,IAAM,GAEP,IAAI8B,GAAU9rQ,GAAI,EAAK,EAAMA,GAAI,GAAI,EAClC8rQ,GAAS,IACXtB,GAAcvS,GAAK+R,GAAI6B,GAAOpC,GAAOzpQ,KACrCgqQ,IAAM8B,IAIP9B,GAAKO,GAAatS,GAAK+R,GAAIJ,GAD3B5pQ,GAAIurQ,GAAUG,GAAO/0Q,MACmB,GACxCqzQ,IAAM,EAEN,IAAI+B,GAAS/rQ,GAAI,EAAI,EAAKA,GAAE,GAAI,EAC7B+rQ,GAAS,IACXvB,GAAcvS,GAAK+R,GAAI0B,GAAO/0Q,GAAQ+yQ,GAAO1pQ,KAC7CgqQ,IAAM+B,IAEP,QAAQjvP,GAAI,EAAGA,GAAI+uP,KAAQ/uP,GAC1B6mG,GAAMioJ,IAAe,MAAPF,GACdE,GAAoC,OAA3BA,IAAQ,EAAKzkS,GAAKukS,OACzBA,GAEHvxE,IAAI0xE,GAAO,OAGR7rQ,IAAK,IAAKA,IAAQ,GAChBgqQ,GAAKM,GAAarS,GAAK+R,GAAI,GAChCA,GAAKO,GAAatS,GAAK+R,GAAIJ,GAAS5pQ,KACpC2jH,GAAMioJ,IAAe,MAAPF,KACZA,GAIJ1B,GAAKO,GAAatS,GAAK+R,GAAI,GAAK,CA1D/B,CA0D+B,CAEjC/R,UAAIpsL,GAAMm+L,GAAK,GAAG,EAAG,EACd/R,GAAIpsL,CACZ,CAGQ8/L,CAAiBxkS,GAAM8wR,GAC/B,CACD,CA9GqC,GAgHrC,SAASsR,GAASpiS,IACjB,IAAI8/N,GAAMg/D,GAAQ,GAAGt/Q,KAAKosF,MAAkB,IAAZ5rG,GAAKjH,SACjCg/I,GAAMosJ,GAAYnkS,GAAM8/N,IAC5B,OAAOA,GAAIzlO,MAAM,EAAG09I,GACrB,CAGA,IAAI8sJ,GAAWrC,GAAmB,IAAIr5F,YAAY,OAASo6F,GAAgB,OACvEuB,GAAWtC,GAAmB,IAAIr5F,YAAY,OAASo6F,GAAgB,OACvEwB,GAAWvC,GAAmB,IAAIr5F,YAAY,KAASo6F,GAAgB,KACvEyB,GAAY,EAAGC,GAAY,EAG/B,SAASC,IAAIllS,GAAMukS,IAElB,IAAIY,GAAQpC,GAAY/iS,GAAMukS,IAAQ,IAClCa,GAASrC,GAAY/iS,GADkBukS,IAAQ,GACZ,EACnCc,GAvQL,SAASC,GAAYxlE,GAAK+iE,IAAM,IAAIzqD,GAAQ,EAAHyqD,GAAOnrH,GAAKmrH,KAAK,EAAI,OAAS/iE,GAAIpoD,KAAI0gE,IAAK,EAAI,EAAItY,GAAIpoD,GAAE,IAAI,MAAM0gE,GAAI,EAAM,CAuQxGktD,CAAYtlS,GADiBukS,IAAQ,GACX,EAAGA,IAAQ,EAUlD,QATInsD,GAAI,EAGJqrD,GAAQjB,GAAmB,IAAItU,WAAW,IAAMqV,GAAgB,IAChEO,GAAQ,CAAE,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAChElV,GAAS,EACTiV,GAAYrB,GAAmB,IAAItU,WAAW,GAAKqV,GAAgB,GACnEgC,GAAY/C,GAAmB,IAAItU,WAAW,GAAKqV,GAAgB,GACnEvwE,GAAIywE,GAAM1qS,OACND,GAAI,EAAGA,GAAIusS,KAAUvsS,GAC5B2qS,GAAMpB,GAAWvpS,KAAMs/O,GAAI0qD,GAAY9iS,GAAMukS,IAC1C3V,GAASx2C,KAAGw2C,GAASx2C,IACxByrD,GAASzrD,MACTmsD,IAAQ,EAIT,IAAIX,GAAQ,EAEZ,IADAC,GAAS,GAAK,EACV/qS,GAAI,EAAGA,IAAK81R,KAAU91R,GAAGysS,GAAUzsS,IAAK8qS,GAASA,GAAQC,GAAS/qS,GAAE,IAAK,EAC7E,IAAIA,GAAI,EAAGA,GAAIk6N,KAAKl6N,GAA4B,IAArB8qS,GAAQH,GAAM3qS,OAAUgrS,GAAMhrS,IAAKysS,GAAU3B,OAExE,IAAIG,GAAQ,EACZ,IAAIjrS,GAAI,EAAGA,GAAIk6N,KAAKl6N,GAEnB,GAAY,IADZirS,GAAQN,GAAM3qS,KACC,CACd8qS,GAAQnB,GAASqB,GAAMhrS,MAAM,EAAEirS,GAC/B,QAAQtwN,IAAK,GAAI,EAAEswN,IAAQ,EAAGtwN,IAAG,IAAKA,GAAGsxN,GAASnB,GAAOnwN,IAAGswN,IAAiB,EAANA,GAAYjrS,IAAG,EAKxF,IAAI0sS,GAA2B,GAE/B,IADA5W,GAAS,EACH4W,GAAOzsS,OAASosS,GAAQC,IAG7B,OAFAxB,GAAQmB,GAAS/B,GAAYhjS,GAAMukS,KACnCA,IAAgB,EAARX,GACAA,MAAW,GAClB,KAAK,GAGJ,IAFAxrD,GAAI,EAAIwqD,GAAY5iS,GAAMukS,IAAOA,IAAQ,EACzCX,GAAQ4B,GAAOA,GAAOzsS,OAAS,GACzBq/O,MAAM,GAAGotD,GAAOtoS,KAAK0mS,IAC3B,MACD,KAAK,GAEJ,IADAxrD,GAAI,EAAI0qD,GAAY9iS,GAAMukS,IAAOA,IAAQ,EACnCnsD,MAAM,GAAGotD,GAAOtoS,KAAK,GAC3B,MACD,KAAK,GAEJ,IADAk7O,GAAI,GAAK4qD,GAAYhjS,GAAMukS,IAAOA,IAAQ,EACpCnsD,MAAO,GAAGotD,GAAOtoS,KAAK,GAC5B,MACD,QACCsoS,GAAOtoS,KAAK0mS,IACThV,GAASgV,KAAOhV,GAASgV,IAM/B,IAAI6B,GAAKD,GAAOnrS,MAAM,EAAG8qS,IAAQO,GAAKF,GAAOnrS,MAAM8qS,IACnD,IAAIrsS,GAAIqsS,GAAOrsS,GAAI,MAAOA,GAAG2sS,GAAG3sS,IAAK,EACrC,IAAIA,GAAIssS,GAAQtsS,GAAI,KAAMA,GAAG4sS,GAAG5sS,IAAK,EACrCksS,UAAYxB,GAAWiC,GAAIZ,GAAU,KACrCI,GAAYzB,GAAWkC,GAAIZ,GAAU,IAC9BP,EACR,CAiFA,SAASoB,GAAS/G,GAAS1D,IAC1B,IACIpK,GAhFL,SAAS8U,IAAQ5lS,GAAMk7R,IAEtB,GAAc,GAAXl7R,GAAK,MAAuB,EAAVA,GAAK,IAAa,MAAO,CAACguR,GAAYkN,IAAM,GAajE,QAVIqJ,GAAO,EAGPx6E,GAAS,EAETg3E,GAAS5S,GAAe+M,IAAa,GAAG,IACxC2K,GAAO,EACPC,GAAK/E,GAAOhoS,SAAS,EACrBgtS,GAAY,EAAGC,GAAY,IAEjB,EAAPj8E,KAEN,GADAA,GAAS+4E,GAAY9iS,GAAMukS,IAAOA,IAAQ,EACtCx6E,KAAW,EAoBf,IARWA,IAAU,GAAM,GAE1Bg8E,GAAY,EAAGC,GAAY,IAG3BzB,GAAOW,IAAIllS,GAAMukS,IACjBwB,GAAYf,GAAWgB,GAAYf,MAE5B,EACH/J,IAAQ4K,GAAKD,GAAO,QAAkDC,IAAxC/E,GAASuC,GAAQvC,GAAQ8E,GAAO,QAAoB9sS,QAEtF,IAAIktS,GAAOhD,GAAYjjS,GAAMukS,GAAMwB,IAC/BhgS,GAAQgkN,KAAS,GAAM,EAAIi6E,GAASiC,IAAQpB,GAASoB,IAGzD,GAFA1B,IAAe,GAAPx+R,IAAWA,MAAU,KAEjB,EAAG,IACV,IAAW,KAARA,GAAa,MAGpB,IAAI4+R,IADJ5+R,IAAQ,KACa,EAAK,EAAMA,GAAK,GAAI,EAAO4+R,GAAS,IAAGA,GAAS,GACrE,IAAIhK,GAAMkL,GAAOvD,GAAOv8R,IAErB4+R,GAAS,IACXhK,IAAOsI,GAAYjjS,GAAMukS,GAAMI,IAC/BJ,IAAQI,IAITsB,GAAOhD,GAAYjjS,GAAMukS,GAAMyB,IAE/BzB,IAAe,IADfx+R,GAAQgkN,KAAS,GAAM,EAAIk6E,GAASgC,IAAQnB,GAASmB,KAErD,IAAIrB,IADe7+R,MAAU,GACR,EAAI,EAAKA,GAAK,GAAI,EACnCmgS,GAAM3D,GAAOx8R,IASjB,IAPG6+R,GAAS,IACXsB,IAAOjD,GAAYjjS,GAAMukS,GAAMK,IAC/BL,IAAQK,KAIL1J,IAAO4K,GAAKnL,KAA4CmL,IAArC/E,GAASuC,GAAQvC,GAAQpG,GAAM,MAAkB5hS,QAClE8sS,GAAOlL,IAAOoG,GAAO8E,IAAQ9E,GAAO8E,GAAOK,MAAQL,QA1B9B9E,GAAO8E,MAAU9/R,EA0Ba8/R,KArD3D,CAEW,EAAPtB,KAAUA,IAAQ,GAAU,EAALA,KAE1B,IAAI7J,GAAK16R,GAAKukS,KAAO,GAAKvkS,GAAgB,GAAVukS,KAAO,KAAO,EAG9C,GAFAA,IAAQ,GAEL7J,GAAK,EAEP,KADIQ,IAAO4K,GAAKD,GAAOnL,KAA2CoL,IAArC/E,GAASuC,GAAQvC,GAAQ8E,GAAOnL,KAAiB3hS,QACxE2hS,MAAO,GAAKqG,GAAO8E,MAAU7lS,GAAKukS,KAAO,GAAIA,IAAQ,CAE5D,CA8CF,OAAGrJ,GAAY,CAAC6F,GAASwD,GAAK,IAAK,GAC5B,CAACxD,GAAO1mS,MAAM,EAAGwrS,IAAQtB,GAAK,IAAK,EAC3C,CAIWqB,CADChH,GAAQvkS,MAAMukS,GAAQl6L,GAAG,GACZw2L,IACxB0D,UAAQl6L,GAAKosL,GAAI,GACVA,GAAI,EACZ,CAEA,SAASqV,GAAcC,GAAKjjF,IAC3B,IAAGijF,GACE,MAAM,IAAIrrS,MAAMooN,WADD/uK,QAAY,KAAaA,QAAQjnC,MAAMg2M,GAE5D,CAEA,SAASk4E,GAAU7gK,GAAmBtqH,IACrC,IAAIqqR,MACJC,GAAUD,GAAM,GAEhB,IACIz3P,GAAI,CACP24P,UAFgC,GAGhCC,UAHkE,IAKnEC,GAAS74P,GAAG,CAAExW,KAAMpc,GAAQoc,OAI5B,QADIxzB,GAAIyhS,GAAKxhS,OAAS,GACJ,IAAXwhS,GAAKzhS,KAA2B,IAAbyhS,GAAKzhS,GAAE,IAA2B,GAAbyhS,GAAKzhS,GAAE,IAA2B,GAAbyhS,GAAKzhS,GAAE,KAAeA,IAAK,KAAKA,GACpGyhS,GAAK71L,EAAI5rG,GAAI,EAGbyhS,GAAK71L,GAAK,EACV,IAAIm3L,GAAOtB,GAAKE,WAAW,GAC3BF,GAAK71L,GAAK,EACV,IAAIi8L,GAAWpG,GAAKE,WAAW,GAK/B,IAFAF,GAAK71L,EAAIi8L,GAEL7nS,GAAI,EAAGA,GAAI+iS,KAAQ/iS,GAAG,CAEzByhS,GAAK71L,GAAK,GACV,IAAIy2L,GAAMZ,GAAKE,WAAW,GACtBS,GAAMX,GAAKE,WAAW,GACtBuD,GAAUzD,GAAKE,WAAW,GAC1B4L,GAAO9L,GAAKE,WAAW,GACvB6L,GAAO/L,GAAKE,WAAW,GAC3BF,GAAK71L,GAAK,EACV,IAAIliD,GAAS+3O,GAAKE,WAAW,GACzB8L,GAAKjM,EAAyBC,GAAKlgS,MAAMkgS,GAAK71L,EAAEs5L,GAASzD,GAAK71L,EAAEs5L,GAAQqI,KAC5E9L,GAAK71L,GAAKs5L,GAAUqI,GAAOC,GAE3B,IAAItzE,GAAIunE,GAAK71L,EACb61L,GAAK71L,EAAIliD,GAAS,EAEf+jP,IAAMA,GAAG,MACPA,GAAG,IAAS,CAAC,GAAGrL,MAAKA,GAAMqL,GAAG,GAAQrL,MACtCqL,GAAG,IAAS,CAAC,GAAGpL,MAAKA,GAAMoL,GAAG,GAAQpL,MAE3CqL,IAAiBjM,GAAMY,GAAKD,GAAKp4P,GAAGyjQ,IACpChM,GAAK71L,EAAIsuH,GAGV,OAAOlwL,EACR,CAIA,SAAS0jQ,IAAiBjM,GAAiBY,GAAgBD,GAAgBp4P,GAAoByjQ,IAE9FhM,GAAK71L,GAAK,EACV,IAAI5iG,GAAQy4R,GAAKE,WAAW,GACxBgM,GAAOlM,GAAKE,WAAW,GACvB77O,GApuCL,SAAS8nP,EAAe5mE,IACvB,IAAIk6D,GAA0B,MAApBl6D,GAAI26D,WAAW,GACrBJ,GAA0B,MAApBv6D,GAAI26D,WAAW,GACrB5pR,GAAM,IAAIwM,KACVwb,GAAU,GAANwhQ,GACJjmQ,GAAU,IADMimQ,MAAS,GACTA,MAAS,EAC7BxpR,GAAI81R,gBAAgB,GACpB91R,GAAI+1R,YAAYvM,GAAM,MACtBxpR,GAAIg2R,SAASzyQ,GAAE,GACfvjB,GAAIsgR,QAAQt4P,IACZ,IAAIo4P,GAAU,GAAN+I,GACJx2L,GAAU,IADMw2L,MAAS,GACTA,OACpBnpR,GAAIi2R,SADgB9M,MAAS,GAE7BnpR,GAAIk2R,WAAWvjM,IACf3yF,GAAIm2R,WAAW/V,IAAG,GACXpgR,EACR,CAotCY61R,CAAenM,IAE1B,GAAW,KAARz4R,GAAgB,MAAM,IAAI/G,MAAM,8BACvBw/R,GAAKE,WAAW,GAQb,QAPXwM,GAAO1M,GAAKE,WAAW,GACvByM,GAAO3M,GAAKE,WAAW,GAEvBuD,GAAUzD,GAAKE,WAAW,GAC1B4L,GAAO9L,GAAKE,WAAW,GAGvB/iS,GAAO,GAAYoB,GAAI,EAAGA,GAAIklS,KAAWllS,GAAGpB,IAAQiT,OAAO0qI,aAAaklJ,GAAKA,GAAK71L,MACtF,GAAG2hM,GAAM,CACR,IAAIc,GAAK7M,EAAyBC,GAAKlgS,MAAMkgS,GAAK71L,EAAG61L,GAAK71L,EAAI2hM,MAC1Dc,GAAG,QAAS,CAAC,GAAGpM,KAAIn8O,GAAOuoP,GAAG,OAAQpM,KACtCoM,GAAG,IAAS,CAAC,GAAGjM,MAAKgM,GAAOC,GAAG,GAAQjM,MACvCiM,GAAG,IAAS,CAAC,GAAGhM,MAAK8L,GAAOE,GAAG,GAAQhM,KACxCoL,MACEA,GAAG,QAAS,CAAC,GAAGxL,KAAIn8O,GAAO2nP,GAAG,OAAQxL,KACtCwL,GAAG,IAAS,CAAC,GAAGrL,MAAKgM,GAAOC,GAAG,GAAQjM,MACvCqL,GAAG,IAAS,CAAC,GAAGpL,MAAK8L,GAAOE,GAAG,GAAQhM,MAG7CZ,GAAK71L,GAAK2hM,GAKV,IAAIrmS,GAAOu6R,GAAKlgS,MAAMkgS,GAAK71L,EAAG61L,GAAK71L,EAAIuiM,IACvC,OAAOR,IACN,KAAK,EAAGzmS,GAtiBV,SAASonS,GAAgBxI,GAAS1D,IACjC,IAAI0G,GAAO,OAAO+D,GAAS/G,GAAS1D,IACpC,IACImM,GAAU,IAAIC,EADD1F,GAAM0F,YAEnBxW,GAAMuW,GAAQE,cAAc3I,GAAQvkS,MAAMukS,GAAQl6L,GAAI2iM,GAAQG,kBAClE5I,UAAQl6L,GAAK2iM,GAAQI,UACd3W,EACR,CA+hBiBsW,CAAgB7M,GAAM2M,IAAO,MAC5C,KAAK,EAAG,MACR,QAAS,MAAM,IAAInsS,MAAM,sCAAwC0rS,IAIlE,IAAIL,IAAM,EACC,EAARtkS,KAEU,WADJy4R,GAAKE,WAAW,KACUF,GAAKE,WAAW,GAAI2L,IAAM,GAC5Da,GAAO1M,GAAKE,WAAW,GACvByM,GAAO3M,GAAKE,WAAW,IAGrBwM,IAAQ9L,IAAKgL,GAAcC,GAAK,wBAA0BjL,GAAM,OAAS8L,IACzEC,IAAQhM,IAAKiL,GAAcC,GAAK,0BAA4BlL,GAAM,OAASgM,IAG9EQ,GAAQ5kQ,GAAGprC,GAAMsI,GAAM,CAAC2nS,QAAQ,EAAM5M,GAAIn8O,IAC3C,CA0GA,IAAIgpP,GAAkB,CACrBC,IAAO,YACPrqS,IAAO,WAEPsqS,IAAO,YACPC,IAAO,aACPC,IAAO,YAEPC,IAAO,oBACPC,KAAQ,iCACRC,QAAW,4BAGZ,SAAS9H,IAAiBJ,GAAiBD,IAC1C,GAAGC,GAAGmI,MAAO,OAAOnI,GAAGmI,MAEvB,IAAIpqJ,GAAMiiJ,GAAGvoS,MAAQ,GAAI08B,GAAI4pH,GAAIxuH,MAAM,eAGvC,OAFG4E,IAAKwzQ,GAAexzQ,GAAE,KAEtB4rQ,KACF5rQ,IAAK4pH,GAAMgiJ,IAAIxwQ,MAAM,uBACbo4Q,GAAexzQ,GAAE,IAAYwzQ,GAAexzQ,GAAE,IAGhD,0BACR,CAGA,SAASmsQ,IAAgBhH,IAGxB,QAFIv5R,GAAOktR,GAAcqM,IACrBz2P,GAAI,GACAhqC,GAAI,EAAGA,GAAIkH,GAAKjH,OAAQD,IAAI,GAAIgqC,GAAE5lC,KAAK8C,GAAK3F,MAAMvB,GAAGA,GAAE,KAC/D,OAAOgqC,GAAE1xB,KAAK,QAAU,MACzB,CAgBA,SAASkvR,IAAuBtoR,IAC/B,IAAIqwR,GAAUrwR,GAAK9Z,QAAQ,0CAA2C,SAAS0tB,IAC9E,IAAIwsN,GAAIxsN,GAAEipH,WAAW,GAAGjqI,SAAS,IAAI0H,cACrC,MAAO,KAAmB,GAAZ8lO,GAAEr/O,OAAc,IAAMq/O,GAAIA,GACzC,GAIwB,OAFxBiwD,GAAUA,GAAQnqS,QAAQ,OAAQ,OAAOA,QAAQ,QAAS,QAE/C9G,OAAO,KAAYixS,GAAU,MAAQA,GAAQhuS,MAAM,IAI9D,QADIyoC,GAAsB,GAAI39B,IAF9BkjS,GAAUA,GAAQnqS,QAAQ,aAAc,OAAOA,QAAQ,SAAU,SAASA,QAAQ,gBAAiB,UAErDiH,MAAM,QAC5CmjS,GAAK,EAAGA,GAAKnjS,GAAMpM,SAAUuvS,GAAI,CACxC,IAAI/4Q,GAAMpqB,GAAMmjS,IAChB,GAAiB,GAAd/4Q,GAAIx2B,OACP,QAAQD,GAAI,EAAGA,GAAIy2B,GAAIx2B,QAAS,CAC/B,IAAI+G,GAAM,GACNyoS,GAAMh5Q,GAAIl1B,MAAMvB,GAAGA,GAAIgH,IACD,KAAvByoS,GAAInxS,OAAO0I,GAAM,GAAWA,KACA,KAAvByoS,GAAInxS,OAAO0I,GAAM,GAAWA,IAAO,EACZ,KAAvByoS,GAAInxS,OAAO0I,GAAM,KAAWA,IAAO,GAC3CyoS,GAAMh5Q,GAAIl1B,MAAMvB,GAAGA,GAAIgH,KACvBhH,IAAKgH,IACEyvB,GAAIx2B,SAAQwvS,IAAO,KAC1BzlQ,GAAE5lC,KAAKqrS,GAAG,MAVWzlQ,GAAE5lC,KAAK,GAUlB,CAIZ,OAAO4lC,GAAE1xB,KAAK,OACf,CAiBA,SAAS0qR,IAAWmD,GAAsBj/R,GAAwBssB,IAGjE,QAFsCk8Q,GAAlCC,GAAQ,GAAIC,GAAM,GAAIN,GAAQ,GAC9B7M,GAAK,EACJA,GAAK,KAAMA,GAAI,CACnB,IAAI3tR,GAAO5N,GAAKu7R,IAChB,IAAI3tR,IAAQA,GAAK4hB,MAAM,SAAU,MACjC,IAAI4E,GAAIxmB,GAAK4hB,MAAM,wBACnB,GAAG4E,GAAG,OAAOA,GAAE,GAAGlvB,eACjB,IAAK,mBAAoBujS,GAAQr0Q,GAAE,GAAGvmB,OAAQ,MAC9C,IAAK,eAAgBu6R,GAAQh0Q,GAAE,GAAGvmB,OAAQ,MAC1C,IAAK,4BAA6B66R,GAAMt0Q,GAAE,GAAGvmB,OAAc,CAI7D,SADE0tR,GACKmN,GAAIxjS,eACV,IAAK,SAAUsjS,GAAQna,GAAIb,GAAcxtR,GAAK3F,MAAMkhS,IAAInqR,KAAK,MAAO,MACpE,IAAK,mBAAoBo3R,GAhC3B,SAASG,IAAuB3oS,IAI/B,QAHI8iC,GAAI,GAGAy4P,GAAK,EAAGA,GAAKv7R,GAAKjH,SAAUwiS,GAAI,CAEvC,QADI3tR,GAAO5N,GAAKu7R,IACVA,IAAMv7R,GAAKjH,QAA0C,KAAhC6U,GAAKxW,OAAOwW,GAAK7U,OAAS,IAAW6U,GAAOA,GAAKvT,MAAM,EAAGuT,GAAK7U,OAAS,GAAKiH,KAAOu7R,IAC/Gz4P,GAAE5lC,KAAK0Q,GAAI,CAIZ,QAAQg7R,GAAK,EAAGA,GAAK9lQ,GAAE/pC,SAAU6vS,GAAI9lQ,GAAE8lQ,IAAM9lQ,GAAE8lQ,IAAI1qS,QAAQ,qBAAsB,SAAS+0R,IAAM,OAAOtoR,OAAO0qI,aAAalB,SAAS8+I,GAAG54R,MAAM,GAAI,IAAM,GACvJ,OAAOg0R,GAAIvrP,GAAE1xB,KAAK,QACnB,CAmBmCu3R,CAAuB3oS,GAAK3F,MAAMkhS,KAAM,MACzE,QAAS,MAAM,IAAIxgS,MAAM,yCAA2C2tS,IAErE,IAAIluK,GAAOktK,GAAQzI,GAAKwJ,GAAMpuS,MAAMiyB,GAAKvzB,QAASyvS,GAAO,CAACb,QAAQ,IAC/DS,KAAO5tK,GAAK4tK,MAAQA,GACxB,CAgGA,SAASV,GAAQzI,GAAsBvnS,GAAiBoJ,GAAuB4vR,IAC9E,IAAIiX,GAASjX,IAAQA,GAAKiX,OACtBA,IAAQhM,GAASsD,IACrB,IAAIzkK,IAAQmtK,IAAU/N,GAAI1lQ,KAAK+qQ,GAAKvnS,IACpC,IAAI8iI,GAAM,CACT,IAAIquK,GAAmB5J,GAAIvD,UAAU,GAClChkS,GAAK2C,MAAM,EAAGwuS,GAAM9vS,SAAW8vS,GAAOA,GAAQnxS,IAE1B,KAAnBmxS,GAAMxuS,OAAM,KAAYwuS,IAAS,KACpCA,IAASA,GAAQnxS,IAAMwG,QAAQ,KAAK,MAErCs8H,GAAQ,CAAC9iI,KAAMyiI,EAASziI,IAAOuH,KAAM,GACrCggS,GAAIxD,UAAUv+R,KAAKs9H,IACnBykK,GAAIvD,UAAUx+R,KAAK2rS,IACflB,IAAQ/N,GAAIkP,MAAMC,OAAO9J,GAAG,CAGjCzkK,UAAK15H,QAAWA,GAChB05H,GAAK9gE,KAAO54D,GAAUA,GAAQ/H,OAAS,EACpC23R,KACCA,GAAKwO,QAAO1kK,GAAK0jK,MAAQxN,GAAKwO,OAC9BxO,GAAKqK,KAAIvgK,GAAKugK,GAAKrK,GAAKqK,IACxBrK,GAAKyN,KAAI3jK,GAAK2jK,GAAKzN,GAAKyN,KAErB3jK,EACR,CA0BAq/J,SAAQ3lQ,KA1/BR,SAASA,GAAK+qQ,GAAsBx1Q,IACnC,IAAIu/Q,GAAgC/J,GAAIvD,UAAU7/R,IAAI,SAAS8sB,IAAK,OAAOA,GAAErW,aAAe,GACxF22R,GAA4BD,GAAYntS,IAAI,SAAS8sB,IAAK,IAAI6gE,GAAI7gE,GAAExjB,MAAM,KAAM,OAAOqkF,GAAEA,GAAEzwF,QAAyB,KAAf4vB,GAAEtuB,OAAM,GAAa,EAAI,GAAK,GACnIgzB,IAAgB,EACM,KAAvB5D,GAAKorH,WAAW,IAAuBxnH,IAAI,EAAM5D,GAAOu/Q,GAAY,GAAG3uS,MAAM,GAAG,GAAMovB,IACpF4D,IAA0B,IAAtB5D,GAAKjkB,QAAQ,KACtB,IAAI0jS,GAAoBz/Q,GAAKnX,cACzB8lO,IAAqB,IAAN/qN,GAAa27Q,GAAYxjS,QAAQ0jS,IAAUD,GAAQzjS,QAAQ0jS,IAC9E,IAAS,IAAN9wD,GAAU,OAAO6mD,GAAIxD,UAAUrjD,IAElC,IAAIhkN,IAAK80Q,GAAO15Q,MAAMs/P,IAGtB,IAFAoa,GAASA,GAAOhrS,QAAQ2wR,GAAK,IAC1Bz6P,KAAG80Q,GAASA,GAAOhrS,QAAQ4wR,GAAK,MAC/B12C,GAAI,EAAGA,GAAI4wD,GAAYjwS,SAAUq/O,GAEpC,IADIhkN,GAAI40Q,GAAY5wD,IAAGl6O,QAAQ4wR,GAAK,KAAOka,GAAY5wD,KAAIl6O,QAAQ2wR,GAAK,KAAOqa,KAC3E90Q,GAAI60Q,GAAQ7wD,IAAGl6O,QAAQ4wR,GAAK,KAAOma,GAAQ7wD,KAAIl6O,QAAQ2wR,GAAK,KAAOqa,GAAQ,OAAOjK,GAAIxD,UAAUrjD,IAErG,OAAO,IACR,EAy+BAyhD,EAAQ1kH,KA/wCR,SAASA,GAAKolH,GAA0BrqR,IACvC,IAAIjR,GAAOiR,IAAWA,GAAQjR,KAI9B,OAHIA,IACAwuR,IAAWC,OAAOiB,SAAS4L,MAAOt7R,GAAO,UAEtCA,IAAQ,UACd,IAAK,OAA2F,OAXlG,SAASkqS,GAAUhvK,GAAqBjqH,IACvCkrR,WACOrjR,EAAM4pG,EAAGynL,aAAajvK,IAAWjqH,GACzC,CAQyGi5R,CAAU5O,GAAMrqR,IACvH,IAAK,SAAiH,OAAO6H,EAAMs2Q,GAAIb,GAAc+M,KAAQrqR,IAC7J,IAAK,SAAkG,OAAO6H,EAAMs2Q,GAAIkM,IAAOrqR,IAEhI,OAAO6H,EAAkEwiR,GAAMrqR,GAChF,EAqwCA2pR,EAAQ9hR,MAAQA,EAChB8hR,EAAQjqG,MAn8BR,SAASA,GAAMqvG,GAAsB/uR,IACpC,IAAI4yB,GAAI88P,GAAOX,GAAK/uR,IACpB,OAAOA,IAAWA,GAAQjR,MAAQ,UACjC,IAAK,OAAQm8R,WAAUz5K,EAAG0nL,cAAcn5R,GAAQiqH,SAAWr3F,IAAoBA,GAC/E,IAAK,SAAU,MAAmB,iBAALA,GAAgBA,GAAIyrP,GAAIzrP,IACrD,IAAK,SAAU,OAAOoqP,GAA0B,iBAALpqP,GAAgBA,GAAIyrP,GAAIzrP,KACnE,IAAK,SAAU,GAAG2qP,GAAS,OAAOC,OAAOiB,SAAS7rP,IAAKA,GAAI8qP,GAAY9qP,IAEvE,IAAK,QAAS,MAAmB,iBAALA,GAAgBurP,GAAIvrP,IAAKA,GAEtD,OAAOA,EACR,EAy7BA+2P,EAAQyP,UAj9BR,SAASC,GAAWtK,GAAsB9kK,GAAqBjqH,IAC9DkrR,IACA,IAAIt4P,GAAI88P,GAAOX,GAAK/uR,IAEpByxG,EAAG0nL,cAAclvK,GAAUr3F,GAC5B,EA68BA+2P,EAAQiP,MAAQ,CACfU,QA/DD,SAASA,IAAQ9Y,IAChB,IAAI5tP,GAAsB,CAAC,EAC3B64P,UAAS74P,GAAG4tP,IACL5tP,EACR,EA4DC4kQ,QAASA,GACT+B,QAhCD,SAASA,IAAQxK,GAAsBvnS,IACtCikS,GAASsD,IACT,IAAIzkK,GAAOo/J,GAAI1lQ,KAAK+qQ,GAAKvnS,IACzB,GAAG8iI,GAAM,QAAQ/mD,GAAI,EAAGA,GAAIwrN,GAAIxD,UAAU1iS,SAAU06E,GAAG,GAAGwrN,GAAIxD,UAAUhoN,KAAM+mD,GAC7EykK,UAAIxD,UAAUh2R,OAAOguE,GAAG,GACxBwrN,GAAIvD,UAAUj2R,OAAOguE,GAAG,IACjB,EAER,OAAO,CACR,EAwBCi2N,QAtBD,SAASA,IAAQzK,GAAsB0K,GAAqBC,IAC3DjO,GAASsD,IACT,IAAIzkK,GAAOo/J,GAAI1lQ,KAAK+qQ,GAAK0K,IACzB,GAAGnvK,GAAM,QAAQ/mD,GAAI,EAAGA,GAAIwrN,GAAIxD,UAAU1iS,SAAU06E,GAAG,GAAGwrN,GAAIxD,UAAUhoN,KAAM+mD,GAC7EykK,UAAIxD,UAAUhoN,IAAG/7E,KAAOyiI,EAASyvK,IACjC3K,GAAIvD,UAAUjoN,IAAKm2N,IACZ,EAER,OAAO,CACR,EAcCb,OAZD,SAASA,IAAO9J,IAAiCI,GAAYJ,IAAK,EAAO,EAaxE4K,UAAWA,GACXC,WAAYA,GACZtP,UAAWA,GACX/L,QAASA,GACTsb,SAj8BD,SAASA,GAASC,IAAQ,IACzB,IACI3C,GAAU,IAAIC,EADD0C,GAAK1C,YAGtB,GADAD,GAAQE,cAAc,IAAIrZ,WAAW,CAAC,EAAG,IAAKmZ,GAAQG,mBACnDH,GAAQI,UACN,MAAM,IAAI1sS,MAAM,kCADC6mS,GAAQoI,EAE2C,CAA1E,MAAQvtS,IAAI23C,QAAQjnC,MAAM,4BAA8B1Q,GAAE2X,SAAW3X,IAAK,CAAE,EA47B3E0nS,YAAa/B,GACb6H,YAAatE,GACb1uB,OAAQA,IAGF4iB,CACP,CAxsDwB,GA8sDxB,SAASqQ,IAAQlqS,GAChB,MAAmB,iBAATA,EAA0BsuR,GAAKtuR,GACtCoO,MAAM2C,QAAQ/Q,GA59FlB,SAASmqS,IAAInqS,GACZ,UAAUkuR,WAAe,IAAa,MAAM,IAAInzR,MAAM,eACtD,OAAO,IAAImzR,WAAWluR,EACvB,CAy9FgCmqS,CAAInqS,GAC5BA,CACR,CAEA,SAASoqS,GAAS3B,EAAkB7J,EAAiB9Q,GAEpD,UAAUkK,GAAQ,KAAeA,GAAIqR,cAAe,OAAOvb,EAAMkK,GAAIqR,cAAcZ,EAAO7J,EAAS9Q,GAAOkK,GAAIqR,cAAcZ,EAAO7J,GACnI,UAAUyL,KAAS,IAAa,CAE/B,GAAGvc,GAAyB,iBAAX8Q,EAAqB,OAAO9Q,GAC5C,IAAK,OAAQ8Q,EAAU,IAAI0L,YAAYxc,GAAKyc,OAAO3L,GAAU,MAC7D,IAAK,SAAUA,EAAUtQ,GAAKsQ,GAAU,MAExC,QAAS,MAAM,IAAI7jS,MAAM,wBAA0B+yR,GAEpD,OAAOuc,KAAKhB,cAAcZ,EAAO7J,EAAO,CAEzC,IAAI5+R,EAAe,QAAP8tR,EAAiB0c,GAAU5L,GAAWA,EAElD,UAAU6L,YAAgB,IAAa,OAAOA,YAAYzqS,EAAMyoS,GAChE,UAAU72R,KAAS,IAAa,CAC/B,IAAI2oR,EAAO,IAAI3oR,KAAK,CAACs4R,IAAQlqS,IAAQ,CAACf,KAAK,6BAE3C,UAAU1H,UAAc,KAAeA,UAAUmzS,WAAY,OAAOnzS,UAAUmzS,WAAWnQ,EAAMkO,GAE/F,UAAUpuK,OAAW,IAAa,OAAOA,OAAOkgK,EAAMkO,GACtD,UAAUkC,IAAQ,YAAsBh1S,SAAa,KAAeA,SAASL,eAAiBq1S,IAAIC,gBAAiB,CAClH,IAAI7zS,EAAM4zS,IAAIC,gBAAgBrQ,GAE9B,GAAqB,iBAAX7lI,QAAiE,mBAAlCA,OAAOm2I,WAAW,CAAC,GAAGtgE,SAC9D,OAAGogE,IAAIG,wBAA0B51P,WAAe,KAAaA,WAAW,WAAay1P,IAAIG,gBAAgB/zS,EAAM,EAAG,KAC3G29J,OAAOm2I,UAAUtgE,SAAS,CAAExzO,IAAKA,EAAKojI,SAAUsuK,EAAOpuK,QAAQ,IAEvE,IAAI/0G,EAAI3vB,SAASL,cAAc,KAC/B,GAAiB,MAAdgwB,EAAEilN,SAEJjlN,SAAEilN,SAAWk+D,EAAOnjR,EAAE7uB,KAAOM,EAAKpB,SAASY,KAAKyG,YAAYsoB,GAAIA,EAAEygN,QACApwO,SAASY,KAAKlB,YAAYiwB,GACzFqlR,IAAIG,wBAA0B51P,WAAe,KAAaA,WAAW,WAAay1P,IAAIG,gBAAgB/zS,EAAM,EAAG,KAC3GA,GAKV,UAAU8pD,EAAM,YAAsB85N,KAAS,YAAsBowB,OAAW,IAAa,IAE5F,IAAIja,EAAMnW,KAAK8tB,GAAQ3X,SAAI95Q,KAAK,KAAM85Q,EAAIka,SAAW,SAClD58R,MAAM2C,QAAQ6tR,KAAUA,EAAUrQ,GAAIqQ,IACzC9N,EAAIlhG,MAAMgvG,GAAU9N,EAAIxpO,QAAgBs3O,CAC4B,CAArE,MAAQniS,GAAK,IAAIA,EAAE2X,UAAY3X,EAAE2X,QAAQob,MAAM,YAAa,MAAM/yB,CAAG,CACrE,MAAM,IAAI1B,MAAM,oBAAsB0tS,EACvC,CAeA,SAAS9sS,GAAKmnC,GAEb,QADImoQ,EAAKhrS,OAAOtE,KAAKmnC,GAAIooQ,EAAK,GACtBpyS,EAAI,EAAGA,EAAImyS,EAAGlyS,SAAUD,EAAMmH,OAAO0jB,UAAUwF,eAAexc,KAAKm2B,EAAGmoQ,EAAGnyS,KAAKoyS,EAAGhuS,KAAK+tS,EAAGnyS,IACjG,OAAOoyS,CACR,CAEA,SAASC,GAAU15P,EAAarsC,GAE/B,QADI09B,EAAK,GAAasoQ,EAAIzvS,GAAK81C,GACvB34C,EAAI,EAAGA,IAAMsyS,EAAEryS,SAAUD,EAA2B,MAArBgqC,EAAE2O,EAAI25P,EAAEtyS,IAAIsM,MAAe09B,EAAE2O,EAAI25P,EAAEtyS,IAAIsM,IAAQgmS,EAAEtyS,IACxF,OAAOgqC,CACR,CAEA,SAASuoQ,GAAM55P,GAEd,QADI3O,EAAK,GAAasoQ,EAAIzvS,GAAK81C,GACvB34C,EAAI,EAAGA,IAAMsyS,EAAEryS,SAAUD,EAAGgqC,EAAE2O,EAAI25P,EAAEtyS,KAAOsyS,EAAEtyS,GACrD,OAAOgqC,CACR,CAEA,SAASwoQ,GAAU75P,GAElB,QADI3O,EAAK,GAAasoQ,EAAIzvS,GAAK81C,GACvB34C,EAAI,EAAGA,IAAMsyS,EAAEryS,SAAUD,EAAGgqC,EAAE2O,EAAI25P,EAAEtyS,KAAOq7I,SAASi3J,EAAEtyS,GAAG,IACjE,OAAOgqC,CACR,CAWA,IAAIyoQ,GAAwB,IAAIluR,KAAK,KAAM,GAAI,GAAI,EAAG,EAAG,GACzD,SAASmuR,GAAQ37R,EAAYqhR,GAC5B,IAAIQ,EAAqB7hR,EAAE8R,UAG3B,OAFGuvQ,IAAUQ,GAAS,YAEdA,GADoB6Z,GAAS5pR,UAA+F,KAArE9R,EAAE8hR,oBAAmC4Z,GAAS5Z,uBAC7F8Z,KACjB,CACA,IAAIC,GAAuB,IAAIruR,KAC3BouR,IAAwBF,GAAS5pR,UAAqG,KAA3E+pR,GAAQ/Z,oBAAmC4Z,GAAS5Z,qBAC/Gga,GAAyBD,GAAQ/Z,oBACrC,SAASia,GAAQ/7R,GAChB,IAAIihR,EAAM,IAAIzzQ,KACdyzQ,SAAI+a,QAAY,GAAJh8R,EAAS,GAAK,GAAK,IAAO47R,KAClC3a,EAAIa,sBAAwBga,IAC/B7a,EAAI+a,QAAQ/a,EAAInvQ,UAAoD,KAAvCmvQ,EAAIa,oBAAsBga,KAEjD7a,CACR,CAGA,SAASgb,IAAa7tS,GACrB,IAAI8tS,EAAM,EAAGhR,EAAK,EAAGz7Q,GAAO,EACxB8U,EAAIn2B,EAAEuxB,MAAM,8EAChB,IAAI4E,EAAG,MAAM,IAAIr5B,MAAM,IAAMkD,EAAI,gCACjC,QAAQnF,EAAI,EAAGA,GAAKs7B,EAAEr7B,SAAUD,EAC/B,GAAIs7B,EAAEt7B,GAGN,QAFAiiS,EAAK,EACFjiS,EAAI,IAAGwmB,GAAO,GACV8U,EAAEt7B,GAAGuB,MAAM+5B,EAAEt7B,GAAGC,OAAO,IAC7B,IAAK,IACJ,MAAM,IAAIgC,MAAM,mCAAqCq5B,EAAEt7B,GAAGuB,MAAM+5B,EAAEt7B,GAAGC,OAAO,IAC7E,IAAK,IAAKgiS,GAAM,GAEhB,IAAK,IAAKA,GAAM,GAEhB,IAAK,IACJ,IAAIz7Q,EAAM,MAAM,IAAIvkB,MAAM,qCACrBggS,GAAM,GAIbgR,GAAOhR,EAAK5mJ,SAAS//G,EAAEt7B,GAAI,GAAE,CAE9B,OAAOizS,CACR,CAEA,IAAIC,GAA8B,IAAI3uR,KAAK,4BACvC4uR,GAA4BhrR,MAAmB+qR,GAAe3jD,eAA8B,IAAIhrO,KAAK,WAAa2uR,GAClHE,IAAqD,MAA9BD,GAAa5jD,cAExC,SAAS8jD,GAAU58Q,EAAqB68Q,GACvC,IAAIvzQ,EAAI,IAAIxb,KAAKkS,GACjB,GAAG28Q,IAEF,OAAGE,EAAU,EAAGvzQ,EAAEgzQ,QAAQhzQ,EAAElX,UAAoC,GAAxBkX,EAAE84P,oBAA2B,KAC7Dya,EAAU,GAAGvzQ,EAAEgzQ,QAAQhzQ,EAAElX,UAAoC,GAAxBkX,EAAE84P,oBAA2B,KACnE94P,EAER,GAAGtJ,aAAelS,KAAM,OAAOkS,EAC/B,GAAiC,MAA9B08Q,GAAa5jD,gBAA0BpnO,MAAM4X,EAAEwvN,eAAgB,CACjE,IAAIpqP,EAAI46B,EAAEwvN,cACV,OAAG94N,EAAI/pB,QAAQ,GAAKvH,IAAK,GACzB46B,EAAE+tQ,YAAY/tQ,EAAEwvN,cAAgB,KAAaxvN,EAE9C,IAAIvB,EAAI/H,EAAIC,MAAM,SAAS,CAAC,OAAO,IAAI,KAAK,IAAI,IAAI,KAChDshQ,EAAM,IAAIzzQ,MAAMia,EAAE,IAAKA,EAAE,GAAK,GAAIA,EAAE,IAAMA,EAAE,IAAI,GAAMA,EAAE,IAAI,GAAMA,EAAE,IAAI,GAC5E,OAAG/H,EAAI/pB,QAAQ,MAAO,IAAIsrR,EAAM,IAAIzzQ,KAAKyzQ,EAAInvQ,UAAsC,GAA1BmvQ,EAAIa,oBAA2B,MACjFb,CACR,CAEA,SAASub,GAAO3hR,EAAuB4hR,GACtC,GAAG7e,IAAWC,OAAOiB,SAASjkQ,GAAM,CACnC,GAAG4hR,GAAWve,GAAa,CAE1B,GAAa,KAAVrjQ,EAAI,IAAwB,KAAVA,EAAI,GAAY,OAAO8/Q,GAAU9/Q,EAAIrwB,MAAM,GAAGuQ,SAAS,YAC5E,GAAa,KAAV8f,EAAI,IAAwB,KAAVA,EAAI,GAAY,OAAO8/Q,GAAU/d,GAAY/hQ,EAAIrwB,MAAM,GAAGuQ,SAAS,WAAU,CAEnG,OAAO8f,EAAI9f,SAAS,SAAQ,CAG7B,UAAU2hS,YAAgB,IAAa,IACtC,GAAGD,EAAS,CACX,GAAa,KAAV5hR,EAAI,IAAwB,KAAVA,EAAI,GAAY,OAAO8/Q,GAAU,IAAI+B,YAAY,YAAYr9Q,OAAOxE,EAAIrwB,MAAM,KACnG,GAAa,KAAVqwB,EAAI,IAAwB,KAAVA,EAAI,GAAY,OAAO8/Q,GAAU,IAAI+B,YAAY,YAAYr9Q,OAAOxE,EAAIrwB,MAAM,IAAG,CAEvG,IAAIsoS,EAAM,CACT,SAAU,OAAQ,SAAU,OAAQ,OAAU,OAAQ,SAAU,OAChE,SAAU,OAAQ,SAAU,OAAQ,SAAU,OAAQ,OAAU,OAChE,SAAU,OAAQ,OAAU,OAAQ,SAAU,OAAQ,OAAU,OAChE,OAAU,OAAQ,SAAU,OAAQ,SAAU,OAAQ,SAAU,OAChE,SAAU,OAAQ,SAAU,OAAQ,SAAU,OAAQ,SAAU,OAChE,SAAU,OAAQ,SAAU,OAAQ,OAAU,OAAQ,SAAU,OAChE,OAAU,OAAQ,OAAU,OAAQ,OAAU,QAE/C,OAAGv0R,MAAM2C,QAAQ2Z,KAAMA,EAAM,IAAIwjQ,WAAWxjQ,IACrC,IAAI6hR,YAAY,UAAUr9Q,OAAOxE,GAAKxsB,QAAQ,wKAAkC,SAAS0tB,GAAK,OAAO+2Q,EAAI/2Q,IAAMA,CAAG,EAC9G,CAAZ,MAAY,CAGZ,QADIkX,EAAI,GACAhqC,EAAI,EAAGA,GAAK4xB,EAAI3xB,SAAUD,EAAGgqC,EAAE5lC,KAAKyN,OAAO0qI,aAAa3qH,EAAI5xB,KACpE,OAAOgqC,EAAE1xB,KAAK,GACf,CAEA,SAASo7R,GAAI1pQ,GACZ,UAAUhwB,KAAQ,MAAgB1E,MAAM2C,QAAQ+xB,GAAI,OAAOhwB,KAAKiF,MAAMjF,KAAKC,UAAU+vB,IACrF,GAAe,iBAALA,GAAsB,MAALA,EAAW,OAAOA,EAC7C,GAAGA,aAAazlB,KAAM,OAAO,IAAIA,KAAKylB,EAAEnhB,WACxC,IAAImvQ,EAAM,CAAC,EACX,QAAQzjQ,KAAKyV,EAAM7iC,OAAO0jB,UAAUwF,eAAexc,KAAKm2B,EAAGzV,KAAIyjQ,EAAIzjQ,GAAKm/Q,GAAI1pQ,EAAEzV,KAC9E,OAAOyjQ,CACR,CAEA,SAAS93M,GAAKptD,EAAa84E,GAAuC,QAAR5hE,EAAI,GAAUA,EAAE/pC,OAAS2rG,GAAG5hE,GAAGlX,EAAG,OAAOkX,CAAG,CAGtG,SAAS2pQ,GAASxuS,GACjB,IAAI4R,EAAegxE,OAAO5iF,GAC1B,IAAIgjB,MAAMpR,GAAI,OAAOw+I,SAASx+I,GAAKA,EAAI+oO,IACvC,IAAI,KAAKnhO,KAAKxZ,GAAI,OAAO4R,EACzB,IAAI68R,EAAK,EACLja,EAAKx0R,EAAEC,QAAQ,iBAAiB,QAAQA,QAAQ,OAAO,IAAIA,QAAQ,OAAQ,WAAawuS,UAAM,IAAY,EAAG,GAGjH,OAFIzrR,MAAMpR,EAAIgxE,OAAO4xM,MACrBA,EAAKA,EAAGv0R,QAAQ,aAAa,SAAS+0R,EAAIC,GAAMwZ,UAAMA,EAAWxZ,CAAG,GAChEjyQ,MAAMpR,EAAIgxE,OAAO4xM,KACd5iR,EAD2BA,EAAI68R,CAEvC,CAGA,IAAIC,IAAQ,6FAYRC,IAAe,CAAC,UAAW,WAAY,QAAS,QAAS,MAAO,OAAQ,OAAQ,SAAU,YAAa,UAAW,WAAY,YAClI,SAASC,GAAU5uS,GAClB,IAAI6uS,EAAQ7uS,EAAEiH,cAEVs+F,EADOspM,EAAM5uS,QAAQ,OAAQ,KAAK2P,OACzB2hB,MAAMm9Q,KACnB,GAAGnpM,EAAG,OAfP,SAASupM,IAAWvpM,GAEhB,OAAIA,EAAE,GACHA,EAAE,GACEA,EAAE,GAAW,IAAInmF,KAAK,KAAK,GAAG,IAAKmmF,EAAE,GAAG,IAAe,KAARA,EAAE,GAAY,GAAK,IAAKA,EAAE,IAAKA,EAAE,GAAqB,IAAjBhwC,WAAWgwC,EAAE,KACxF,IAAInmF,KAAK,KAAK,GAAG,GAAY,KAARmmF,EAAE,GAAY,GAAK,GAAKA,EAAE,IAAKA,EAAE,GAAqB,IAAjBhwC,WAAWgwC,EAAE,KAE/EA,EAAE,GAAW,IAAInmF,KAAK,KAAK,GAAG,IAAMmmF,EAAE,GAAG,IAAe,KAARA,EAAE,GAAY,GAAK,IAAKA,EAAE,IAAKA,EAAE,GAAIA,EAAE,GAAwB,IAAnBhwC,WAAWgwC,EAAE,IAAa,GAClH,IAAInmF,KAAK,KAAK,GAAG,IAAKmmF,EAAE,GAAG,IAAe,KAARA,EAAE,GAAY,GAAK,IAAKA,EAAE,GAAI,EAAG,GAN9D,IAAInmF,KAAK,KAAK,GAAG,IAAKmmF,EAAE,GAAG,IAAe,KAARA,EAAE,GAAY,GAAK,GAAI,EAAG,EAAG,EAOpF,CAMcupM,CAAWvpM,GAExB,IAAI1gE,EAAI,IAAIzlB,KAAKpf,GAAIq5B,EAAI,IAAIja,KAAKu7N,KAC9BpvJ,EAAI1mD,EAAEkqQ,UAA6Bn0Q,GAAdiK,EAAEslN,WAAgBtlN,EAAEqlN,WAC7C,GAAGlnO,MAAM4X,GAAI,OAAOvB,EACpB,GAAGw1Q,EAAMt9Q,MAAM,oDAEd,IADAs9Q,EAAQA,EAAM5uS,QAAQ,UAAU,IAAIA,QAAQ,6BAA6B,KAChEnF,OAAS,IAAoC,GAA/B6zS,IAAapnS,QAAQsnS,GAAc,OAAOx1Q,UACxDw1Q,EAAM5uS,QAAQ,SAAU,IAAIsxB,MAAM,SAAU,OAAO8H,EAC7D,OAAGkyD,EAAI,GAAKA,EAAI,MAAQvrF,EAAEuxB,MAAM,iBAAyB8H,EAClDwL,CACR,CAEA,IAAImqQ,IAA4B,WAC/B,IAAIC,EAAuD,GAApC,UAAU/nS,MAAM,UAAUpM,OACjD,OAAO,SAAqBw2B,EAAgB61J,EAAIjsH,GAC/C,GAAG+zO,GAAiC,iBAAN9nH,EAAgB,OAAO71J,EAAIpqB,MAAMigL,GAE/D,QADIr3J,EAAIwB,EAAIpqB,MAAMigL,GAAKtiJ,EAAI,CAAC/U,EAAE,IACtBj1B,EAAI,EAAGA,EAAIi1B,EAAEh1B,SAAUD,EAAKgqC,EAAE5lC,KAAKi8D,GAAMr2B,EAAE5lC,KAAK6wB,EAAEj1B,IAC1D,OAAOgqC,CACR,CACD,CARgC,GAShC,SAASqqQ,GAAWntS,GACnB,OAAIA,EACDA,EAAKc,SAAWd,EAAKf,KAAaotS,GAAOrsS,EAAKc,SAAS,GACvDd,EAAKA,KAAa0sR,GAAM1sR,EAAKA,MAC7BA,EAAKotS,cAAgB3f,GAAgBf,GAAM1sR,EAAKotS,eAAexiS,SAAS,WACxE5K,EAAKqtS,SAAiB3gB,GAAM1sR,EAAKqtS,YACjCrtS,EAAKixD,OAASjxD,EAAKixD,MAAMq8O,WAAmB5gB,GAAM2f,GAAOj+R,MAAMuV,UAAUtpB,MAAMsS,KAAK3M,EAAKixD,MAAMq8O,aAAa,KACxG,KANU,IAOlB,CAEA,SAASC,GAAWvtS,GACnB,IAAIA,EAAM,OAAO,KACjB,GAAGA,EAAKA,KAAM,OAAOusR,GAAWvsR,EAAKA,MACrC,GAAGA,EAAKotS,cAAgB3f,GAAS,OAAOztR,EAAKotS,eAC7C,GAAGptS,EAAKixD,OAASjxD,EAAKixD,MAAMq8O,WAAY,CACvC,IAAIxqQ,EAAI9iC,EAAKixD,MAAMq8O,aACnB,MAAe,iBAALxqQ,EAAsBypP,GAAWzpP,GACpC10B,MAAMuV,UAAUtpB,MAAMsS,KAAKm2B,EAAC,CAEpC,OAAG9iC,EAAKc,SAAWd,EAAKf,KAAae,EAAKc,QACnC,IACR,CAMA,SAAS0sS,GAAeC,EAAKjzK,GAG5B,QAFIntG,EAAIogR,EAAI/R,WAAa//R,GAAK8xS,EAAIv4H,OAC9Bx/H,EAAI8kF,EAAKt1H,cAAchH,QAAQ,QAAS,MAAO20B,EAAI6iB,EAAEx3C,QAAQ,MAAM,KAC/DpF,EAAE,EAAGA,EAAEu0B,EAAEt0B,SAAUD,EAAG,CAC7B,IAAIw+B,EAAIjK,EAAEv0B,GAAGoF,QAAQ,kBAAkB,IAAIgH,cAC3C,GAAGwwC,GAAKpe,GAAKzE,GAAKyE,EAAG,OAAOm2Q,EAAIv4H,MAAQu4H,EAAIv4H,MAAM7nJ,EAAEv0B,IAAM20S,EAAIhS,UAAU3iS,EAAC,CAE1E,OAAO,IACR,CAEA,SAAS40S,GAAWD,EAAKjzK,GACxB,IAAI13F,EAAI0qQ,GAAeC,EAAKjzK,GAC5B,GAAQ,MAAL13F,EAAW,MAAM,IAAI/nC,MAAM,oBAAsBy/H,EAAO,WAC3D,OAAO13F,CACR,CAEA,SAAS6qQ,GAAWF,EAAKjzK,EAAiBozK,GACzC,IAAIA,EAAM,OArBX,SAASC,IAAQ7tS,GAAQ,OAAQA,GAAgC,SAAxBA,EAAKtI,KAAK2C,OAAM,GAAkBkzS,GAAWvtS,GAAQmtS,GAAWntS,EAAO,CAqB9F6tS,CAAQH,GAAWD,EAAKjzK,IACzC,IAAIA,EAAM,OAAO,KACjB,IAAM,OAAOmzK,GAAWF,EAAKjzK,EAAiC,CAA1B,MAAa,OAAO,IAAM,CAC/D,CAEA,SAASszK,GAAUL,EAAKjzK,EAAiBozK,GACxC,IAAIA,EAAM,OAAOT,GAAWO,GAAWD,EAAKjzK,IAC5C,IAAIA,EAAM,OAAO,KACjB,IAAM,OAAOszK,GAAUL,EAAKjzK,EAAiC,CAA1B,MAAa,OAAO,IAAM,CAC9D,CAEA,SAASuzK,GAAUN,EAAKjzK,EAAiBozK,GACxC,IAAIA,EAAM,OAAOL,GAAWG,GAAWD,EAAKjzK,IAC5C,IAAIA,EAAM,OAAO,KACjB,IAAM,OAAOuzK,GAAUN,EAAKjzK,EAAiC,CAA1B,MAAa,OAAO,IAAM,CAC9D,CAEA,SAASwzK,GAAWP,GAEnB,QADIpgR,EAAIogR,EAAI/R,WAAa//R,GAAK8xS,EAAIv4H,OAAQpyI,EAAI,GACtChqC,EAAI,EAAGA,EAAIu0B,EAAEt0B,SAAUD,EAAwB,KAAlBu0B,EAAEv0B,GAAGuB,OAAM,IAAYyoC,EAAE5lC,KAAKmwB,EAAEv0B,GAAGoF,QAAQ,kBAAmB,KACnG,OAAO4kC,EAAExY,MACV,CAEA,SAAS2jR,GAAaR,EAAKhkR,EAAM3oB,GAChC,GAAG2sS,EAAI/R,UAAW,CAEhB,IAAI1qR,EADL,GAAqB,iBAAXlQ,EAET,OAAYkQ,EAATy8Q,GAAeG,GAAY9sR,GA9wGjC,SAASotS,IAAWptS,GAGnB,QAFIgwR,EAAM,GAAIqd,EAAO,EAAGn7E,EAAIlyN,EAAQ/H,OAAS,IACzC+pC,EAAIkrP,GAAYltR,EAAQ/H,OAAS,KAC7Bq1S,EAAO,EAAGA,EAAOttS,EAAQ/H,SAAUq1S,EAAM,CAChD,IAAIxiR,EAAI9qB,EAAQ+zI,WAAWu5J,GAC3B,GAAGxiR,EAAI,IAAMkX,EAAEqrQ,KAAUviR,UACjBA,EAAI,KACXkX,EAAEqrQ,KAAW,IAAMviR,GAAG,EAAG,GACzBkX,EAAEqrQ,KAAW,IAAO,GAAFviR,OAAE,GACXA,GAAK,OAAUA,EAAI,MAAQ,CACpCA,EAAa,IAAN,KAAFA,GACL,IAAIiN,EAA+B,KAA3B/3B,EAAQ+zI,aAAau5J,GAC7BtrQ,EAAEqrQ,KAAW,IAAMviR,GAAG,EAAG,EACzBkX,EAAEqrQ,KAAW,IAAMviR,GAAG,EAAG,GACzBkX,EAAEqrQ,KAAW,IAAMt1Q,GAAG,EAAG,IAAQ,EAAFjN,IAAM,EACrCkX,EAAEqrQ,KAAW,IAAO,GAAFt1Q,CAAE,MAEpBiK,EAAEqrQ,KAAW,IAAMviR,GAAG,GAAI,GAC1BkX,EAAEqrQ,KAAW,IAAMviR,GAAG,EAAG,GACzBkX,EAAEqrQ,KAAW,IAAO,GAAFviR,EAEhBuiR,EAAOn7E,IACT89D,EAAI5zR,KAAK4lC,EAAEzoC,MAAM,EAAG8zS,IACpBA,EAAO,EACPrrQ,EAAIkrP,GAAY,OAChBh7D,EAAI,OAGN89D,SAAI5zR,KAAK4lC,EAAEzoC,MAAM,EAAG8zS,IACb1f,GAAQqC,EAChB,CAmvGcod,CAAWptS,GACf84R,GAAIkP,MAAMpB,QAAQ+F,EAAKhkR,EAAMzY,GAErC4oR,GAAIkP,MAAMpB,QAAQ+F,EAAKhkR,EAAM3oB,EAAO,MAEhC2sS,EAAIjzK,KAAK/wG,EAAM3oB,EACrB,CAEA,SAASutS,KAAY,OAAOzU,GAAIkP,MAAMU,SAAW,CAEjD,SAAS8E,GAASz1Q,EAAGiK,GACpB,OAAOA,EAAE7jC,MACR,IAAK,SAAU,OAAO26R,GAAIzkH,KAAKt8I,EAAG,CAAE55B,KAAM,WAC1C,IAAK,SAAU,OAAO26R,GAAIzkH,KAAKt8I,EAAG,CAAE55B,KAAM,WAC1C,IAAK,SAAU,IAAK,QAAS,OAAO26R,GAAIzkH,KAAKt8I,EAAG,CAAE55B,KAAM,WAEzD,MAAM,IAAIlE,MAAM,qBAAuB+nC,EAAE7jC,KAC1C,CAEA,SAASsvS,GAAa9kR,EAAiBza,GACtC,GAAqB,KAAlBya,EAAKryB,OAAO,GAAW,OAAOqyB,EAAKpvB,MAAM,GAC5C,IAAIuL,EAASoJ,EAAK7J,MAAM,KACH,KAAlB6J,EAAK3U,OAAM,IAAYuL,EAAON,MAEjC,QADIjP,EAASozB,EAAKtkB,MAAM,KACC,IAAlB9O,EAAO0C,QAAc,CAC3B,IAAIihE,EAAO3jE,EAAOkO,QACL,OAATy1D,EAAep0D,EAAON,MACR,MAAT00D,GAAcp0D,EAAO1I,KAAK88D,EAAI,CAExC,OAAOp0D,EAAOwL,KAAK,IACpB,CACA,IAAIo9R,GAAa,8DACbC,IAAU,yEACVC,GAAU,+FACVC,GAAwBH,GAAWh/Q,MAAMk/Q,IAAaA,GADgE,WAEtHE,IAAQ,QAASC,IAAW,aAChC,SAASC,GAAY9yI,EAAgB+yI,EAAwBC,GAG5D,QAFIC,EAAK,CAAC,EACNh+J,EAAK,EAAGrlH,EAAI,EACVqlH,IAAO+qB,EAAIjjK,QAA8C,MAA5B6yB,EAAIowI,EAAInnB,WAAW5D,KAAqB,KAANrlH,GAAkB,KAANA,IAAtDqlH,GAE3B,GADI89J,IAAWE,EAAE,GAAKjzI,EAAI3hK,MAAM,EAAG42I,IAChCA,IAAO+qB,EAAIjjK,OAAQ,OAAOk2S,EAC7B,IAAI76Q,EAAI4nI,EAAIxsI,MAAMi/Q,KAAYh7N,EAAE,EAAG5jE,EAAE,GAAI/W,EAAE,EAAG68C,EAAE,GAAIhe,EAAG,GAAIu3Q,EAAO,EAClE,GAAG96Q,EAAG,IAAIt7B,EAAI,EAAGA,GAAKs7B,EAAEr7B,SAAUD,EAAG,CAEpC,IADA6+B,EAAKvD,EAAEt7B,GACH8yB,EAAE,EAAGA,GAAK+L,EAAG5+B,QAAqC,KAArB4+B,EAAGk9G,WAAWjpH,KAApBA,GAE3B,IADA+pB,EAAIhe,EAAGt9B,MAAM,EAAEuxB,GAAG/d,OACU,IAAtB8pB,EAAGk9G,WAAWjpH,EAAE,MAAYA,EAGlC,IAFAsjR,EAAmC,KAA1Bj+J,EAAGt5G,EAAGk9G,WAAWjpH,EAAE,KAAmB,IAANqlH,EAAY,EAAI,EACzDphI,EAAI8nB,EAAGt9B,MAAMuxB,EAAE,EAAEsjR,EAAMv3Q,EAAG5+B,OAAOm2S,GAC7Bz7N,EAAE,EAAEA,GAAG99B,EAAE58C,QAAmC,KAApB48C,EAAEk/F,WAAWphE,KAAnBA,GACtB,GAAGA,IAAI99B,EAAE58C,OACL48C,EAAEnwC,QAAQ,KAAO,IAAGmwC,EAAIA,EAAEt7C,MAAM,EAAGs7C,EAAEnwC,QAAQ,OAChDypS,EAAEt5P,GAAK9lC,EACHm/R,IAASC,EAAEt5P,EAAEzwC,eAAiB2K,OAE9B,CACJ,IAAIwd,IAAS,IAAJomD,GAAwB,UAAf99B,EAAEt7C,MAAM,EAAE,GAAa,QAAQ,IAAIs7C,EAAEt7C,MAAMo5E,EAAE,GAC/D,GAAGw7N,EAAE5hR,KAAwB,OAAlBsoB,EAAEt7C,MAAMo5E,EAAE,EAAEA,GAAa,SACpCw7N,EAAE5hR,IAAKxd,EACHm/R,IAASC,EAAE5hR,GAAEnoB,eAAiB2K,IAGpC,OAAOo/R,CACR,CACA,SAASE,GAASxmR,GAA2B,OAAOA,EAAEzqB,QAAQ2wS,IAAU,MAAQ,CAEhF,IAAIO,GAAY,CACf,SAAU,IACV,SAAU,IACV,OAAQ,IACR,OAAQ,IACR,QAAS,KAENC,GAAyBhE,GAAM+D,IAI/BE,GAA2C,WAE9C,IAAIC,EAAW,+CAAgDC,EAAY,uBAC3E,SAASC,EAAgBz3R,GACxB,IAAI/Z,EAAI+Z,EAAO,GAAIlf,EAAImF,EAAEuH,QAAQ,aACjC,IAAQ,GAAL1M,EAAS,OAAOmF,EAAEC,QAAQqxS,EAAU,SAAStc,EAAIC,GAAM,OAAOkc,GAAUnc,IAAKtoR,OAAO0qI,aAAalB,SAAS++I,EAAGD,EAAGztR,QAAQ,MAAK,EAAG,GAAG,MAAMytR,CAAI,GAAG/0R,QAAQsxS,EAAU,SAASp7Q,EAAExI,GAAI,OAAOjhB,OAAO0qI,aAAalB,SAASvoH,EAAE,IAAK,GAC/N,IAAI6nD,EAAIx1E,EAAEuH,QAAQ,OAClB,OAAOiqS,EAAgBxxS,EAAE5D,MAAM,EAAGvB,IAAMmF,EAAE5D,MAAMvB,EAAE,EAAE26E,GAAKg8N,EAAgBxxS,EAAE5D,MAAMo5E,EAAE,GACpF,CACA,OAAO,SAAqBz7D,EAAiB03R,GAC5C,IAAI5e,EAAM2e,EAAgBz3R,GAC1B,OAAO03R,EAAO5e,EAAI5yR,QAAQ,QAAS,MAAQ4yR,CAC5C,CACD,CAb+C,GAe3C6e,GAAS,WAAYC,IAAW,6CACpC,SAASC,GAAU73R,GAElB,OADQA,EAAO,IACN9Z,QAAQyxS,GAAU,SAASnmN,GAAK,OAAO6lN,GAAU7lN,EAAI,GAAGtrF,QAAQ0xS,IAAS,SAAS3xS,GAAK,MAAO,MAAQ,MAAMA,EAAE42I,WAAW,GAAGjqI,SAAS,KAAKvQ,OAAM,GAAM,GAAI,EACpK,CACA,SAASy1S,GAAa93R,GAA6B,OAAO63R,GAAU73R,GAAM9Z,QAAQ,KAAK,UAAY,CAEnG,IAAI6xS,GAAe,mBACnB,SAASC,GAAWh4R,GAEnB,OADQA,EAAO,IACN9Z,QAAQyxS,GAAU,SAASnmN,GAAK,OAAO6lN,GAAU7lN,EAAI,GAAGtrF,QAAQ,MAAO,SAASA,QAAQ6xS,GAAa,SAAS9xS,GAAK,MAAO,OAAS,MAAMA,EAAE42I,WAAW,GAAGjqI,SAAS,KAAKvQ,OAAM,GAAM,GAAK,EAClM,CAQA,IAAI41S,GAA2C,WAC9C,IAAIC,EAAW,YACf,SAASC,EAAQld,EAAcC,GAA4B,OAAOvoR,OAAO0qI,aAAalB,SAAS++I,EAAG,IAAM,CACxG,OAAO,SAAqB3jQ,GAA6B,OAAOA,EAAIrxB,QAAQgyS,EAASC,EAAU,CAChG,CAJ+C,GAQ/C,SAASC,GAAa5vS,GACrB,OAAOA,GACN,KAAK,EAAG,KAAK,EAAO,IAAK,IAAK,IAAK,OAAS,OAAO,EACnD,KAAK,EAAG,KAAK,EAAO,IAAK,IAAK,IAAK,QAAS,OAAO,EAGpD,OAAO,CACR,CAEA,SAAS6vS,GAAUC,GAElB,QADIxf,EAAM,GAAIh4R,EAAI,EAAG8yB,EAAI,EAAGiN,EAAI,EAAGp8B,EAAI,EAAGi5C,EAAI,EAAG0iM,EAAI,EAC9Ct/O,EAAIw3S,EAAKv3S,SACf6yB,EAAI0kR,EAAKz7J,WAAW/7I,MACZ,IAAOg4R,GAAOnmR,OAAO0qI,aAAazpH,IAC1CiN,EAAIy3Q,EAAKz7J,WAAW/7I,KAChB8yB,EAAE,KAAOA,EAAE,KAAO8pB,GAAU,GAAJ9pB,IAAW,EAAI8pB,GAAU,GAAJ7c,EAASi4P,GAAOnmR,OAAO0qI,aAAa3/F,KACrFj5C,EAAI6zS,EAAKz7J,WAAW/7I,KAChB8yB,EAAI,IAAOklQ,GAAOnmR,OAAO0qI,cAAmB,GAAJzpH,IAAW,IAAY,GAAJiN,IAAW,EAAU,GAAJp8B,IAEhF27O,IAAW,EAAJxsN,IAAU,IAAY,GAAJiN,IAAW,IAAY,GAAJp8B,IAAW,EAAU,IADjEi5C,EAAI46P,EAAKz7J,WAAW/7I,OACkD,MACtEg4R,GAAOnmR,OAAO0qI,aAAa,OAAW+iG,IAAI,GAAI,OAC9C04C,GAAOnmR,OAAO0qI,aAAa,OAAY,KAAF+iG,OAEtC,OAAO04C,CACR,CAEA,SAASyf,GAAUvwS,GAClB,IAAsCo4O,EAAGt/O,EAAuB8yB,EAA5DklQ,EAAM9C,GAAY,EAAEhuR,EAAKjH,QAAe06E,EAAI,EAAGpmD,EAAI,EAAGmjR,EAAG,EAC7D,IAAI13S,EAAI,EAAGA,EAAIkH,EAAKjH,OAAQD,GAAG26E,EAC9BA,EAAI,GACA7nD,EAAE5rB,EAAK60I,WAAW/7I,IAAM,IAAKs/O,EAAIxsN,EAC7BA,EAAI,KAAOwsN,EAAW,IAAJ,GAAFxsN,IAA+B,GAArB5rB,EAAK60I,WAAW/7I,EAAE,IAAQ26E,EAAE,GACtD7nD,EAAI,KAAOwsN,EAAS,MAAJ,GAAFxsN,GAAqC,IAAJ,GAArB5rB,EAAK60I,WAAW/7I,EAAE,KAAgC,GAArBkH,EAAK60I,WAAW/7I,EAAE,IAAQ26E,EAAE,IACpFA,EAAI,EACV2kK,EAAY,QAAH,EAAJxsN,GAAwC,MAAJ,GAArB5rB,EAAK60I,WAAW/7I,EAAE,IAAsC,IAAJ,GAArBkH,EAAK60I,WAAW/7I,EAAE,KAAgC,GAArBkH,EAAK60I,WAAW/7I,EAAE,IACtF03S,EAAK,QAAjBp4D,GAAK,SAA2B,GAAI,MAAOA,EAAI,OAAY,KAAFA,IAEhD,IAAPo4D,IAAY1f,EAAIzjQ,KAAU,IAAHmjR,EAAQ1f,EAAIzjQ,KAAOmjR,IAAK,EAAGA,EAAK,GAC1D1f,EAAIzjQ,KAAO+qN,EAAE,IAAK04C,EAAIzjQ,KAAO+qN,IAAI,EAElC,OAAO04C,EAAIz2R,MAAM,EAAEgzB,GAAGziB,SAAS,OAChC,CAEA,SAAS6lS,GAAUzwS,GAAQ,OAAO4tR,GAAY5tR,EAAM,UAAU4K,SAAS,OAAS,CAEhF,IAAI8lS,GAAa,0CACbC,GAAWljB,KAAyBgjB,GAAUC,KAA4BL,GAAUK,KAAeD,IAA0BF,GAAUG,KAA4BL,GAAUK,KAAeH,KAAcF,GAE1M7F,GAA2B/c,GAAU,SAASztR,GAAQ,OAAO4tR,GAAY5tR,EAAM,QAAQ4K,SAAS,SAAW,EAAI,SAAS0lS,GAE3H,QADIxf,EAAwB,GAAIh4R,EAAI,EAAG8yB,EAAI,EAAGiN,EAAI,EAC5C//B,EAAIw3S,EAAKv3S,QAEd,OADA6yB,EAAI0kR,EAAKz7J,WAAW/7I,MACb,GACN,KAAK8yB,EAAI,IAAKklQ,EAAI5zR,KAAKyN,OAAO0qI,aAAazpH,IAAK,MAChD,KAAKA,EAAI,KACRklQ,EAAI5zR,KAAKyN,OAAO0qI,aAAa,KAAOzpH,GAAK,KACzCklQ,EAAI5zR,KAAKyN,OAAO0qI,aAAa,KAAW,GAAJzpH,KACpC,MACD,KAAKA,GAAK,OAASA,EAAI,MACtBA,GAAK,MAAOiN,EAAIy3Q,EAAKz7J,WAAW/7I,KAAO,OAAS8yB,GAAG,IACnDklQ,EAAI5zR,KAAKyN,OAAO0qI,aAAa,KAAQx8G,GAAI,GAAM,KAC/Ci4P,EAAI5zR,KAAKyN,OAAO0qI,aAAa,KAAQx8G,GAAI,GAAM,MAC/Ci4P,EAAI5zR,KAAKyN,OAAO0qI,aAAa,KAAQx8G,GAAK,EAAK,MAC/Ci4P,EAAI5zR,KAAKyN,OAAO0qI,aAAa,KAAW,GAAJx8G,KACpC,MACD,QACCi4P,EAAI5zR,KAAKyN,OAAO0qI,aAAa,KAAOzpH,GAAK,MACzCklQ,EAAI5zR,KAAKyN,OAAO0qI,aAAa,KAAQzpH,GAAK,EAAK,MAC/CklQ,EAAI5zR,KAAKyN,OAAO0qI,aAAa,KAAW,GAAJzpH,KAGvC,OAAOklQ,EAAI1/Q,KAAK,GACjB,EAGIw/R,GAAyB,WAC5B,IAAIC,EAAmC,CAAC,EACxC,OAAO,SAAkBn7P,EAAa7iB,GACrC,IAAI9iB,EAAI2lC,EAAE,KAAK7iB,GAAG,IAClB,OAAGg+Q,EAAQ9gS,GAAW8gS,EAAQ9gS,GACtB8gS,EAAQ9gS,GAAK,IAAIolD,OAAO,cAAczf,EAAE,+DAA+DA,EAAE,IAAM7iB,GAAG,GAC3H,CACD,CAP6B,GASzBi+Q,GAAmD,WACtD,IAAIC,EAAuC,CAC1C,CAAC,OAAQ,KAAM,CAAC,SAAU,QAC1B,CAAC,OAAQ,KAAM,CAAC,OAAQ,KAAM,CAAC,KAAQ,KAAM,CAAC,KAAQ,KAAM,CAAC,MAAQ,MACpEl1S,IAAI,SAAS8sB,GAA0B,MAAO,CAAC,IAAIwsC,OAAO,IAAMxsC,EAAE,GAAK,IAAK,MAAOA,EAAE,GAAK,GAC5F,OAAO,SAAoB4G,GAc1B,QAbIuT,EAAIvT,EAELrxB,QAAQ,cAAe,IAEvBA,QAAQ,cAAc,IAEtBA,QAAQ,QAAQ,KAAKA,QAAQ,QAAQ,KAErCA,QAAQ,cAAe,KAEvBA,QAAQ,uBAAuB,MAE/BA,QAAQ,WAAW,IACdpF,EAAI,EAAGA,EAAIi4S,EAASh4S,SAAUD,EAAGgqC,EAAIA,EAAE5kC,QAAQ6yS,EAASj4S,GAAG,GAAIi4S,EAASj4S,GAAG,IACnF,OAAOgqC,CACR,CACD,CAtBuD,GAwBnDkuQ,IAAwB,WAAY,IAAIC,EAAW,CAAC,EACvD,OAAO,SAAkBza,GACxB,YAAoBj0R,IAAjB0uS,EAASza,GAA0Bya,EAASza,GACvCya,EAASza,GAAM,IAAIrhO,OAAO,YAAcqhO,EAAK,0BAA4BA,EAAK,IAAK,IAC7F,CAAE,CAJ0B,GAKxB0a,IAAW,wBAAyBC,IAAW,6BACnD,SAASC,GAAYpxS,EAAiB0wR,GACrC,IAAIh5G,EAAIo3H,GAAY9uS,GAEhBszD,EAA4BtzD,EAAKwvB,MAAMwhR,IAAQt5H,EAAE25H,YAAY,GAC7DrgS,EAAqB,GACzB,GAAGsiD,EAAQv6D,QAAU2+K,EAAEh+G,KAAM,CAC5B,GAAGg3N,EAAK4gB,IAAK,MAAM,IAAIv2S,MAAM,4BAA8Bu4D,EAAQv6D,OAAS,OAAS2+K,EAAEh+G,MACvF,OAAO1oD,EAERsiD,SAAQr5D,QAAQ,SAAS0uB,GACxB,IAAI9Y,EAAI8Y,EAAEzqB,QAAQgzS,IAAS,IAAI1hR,MAAM2hR,KAClCthS,GAAGmB,EAAI9T,KAAK,CAAC2S,EAAE8gS,GAAS9gS,EAAE,IAAKE,EAAEF,EAAE,IACvC,GACOmB,CACR,CAEA,IAAIugS,GAAU,eACd,SAASC,GAAS97P,EAAa7iB,GAA2B,MAAO,IAAM6iB,GAAK7iB,EAAErD,MAAM+hR,IAAS,wBAA0B,IAAM,IAAM1+Q,EAAI,KAAO6iB,EAAI,GAAK,CAEvJ,SAAS+7P,GAAW/5H,GAAgB,OAAO/7K,GAAK+7K,GAAG77K,IAAI,SAASwxB,GAAK,MAAO,IAAMA,EAAI,KAAOqqJ,EAAErqJ,GAAK,GAAI,GAAGjc,KAAK,GAAK,CACrH,SAASsgS,GAAUh8P,EAAa7iB,EAAc6kJ,GAAK,MAAO,IAAMhiI,GAAW,MAALgiI,EAAa+5H,GAAW/5H,GAAK,KAAa,MAAL7kJ,GAAcA,EAAErD,MAAM+hR,IAAS,wBAA0B,IAAM,IAAM1+Q,EAAI,KAAO6iB,EAAI,KAAO,GAAI,CAE1M,SAASi8P,GAAa94Q,EAAY9oB,GAA6B,IAAM,OAAO8oB,EAAE+4Q,cAAc1zS,QAAQ,QAAQ,GAAiC,CAA5B,MAAQzB,GAAK,GAAGsT,EAAG,MAAMtT,CAAG,CAAE,MAAO,EAAI,CAe1J,SAASo1S,GAAeh5Q,GACvB,GAAG40P,IAAqFC,OAAOiB,SAAS91P,GAAI,OAAOA,EAAEjuB,SAAS,QAC9H,GAAgB,iBAANiuB,EAAgB,OAAOA,EAEjC,UAAUq1P,WAAe,KAAer1P,aAAaq1P,WAAY,OAAOyiB,GAASpiB,GAAIC,GAAK31P,KAC1F,MAAM,IAAI99B,MAAM,8CACjB,CAEA,IAAI+2S,GAAY,4EAGZC,GAAS,CACZC,WAAY,0EACZC,WAAY,0EACZC,UAAW,4EACXC,GAAI,+DACJC,KAAM,+DACNC,MAAO,0EACPC,GAAM,mCACNC,QAAW,4BACXC,SAAY,+BACZC,GAAM,0DACNvoS,EAAK,sEACLwoS,IAAO,yEACPC,GAAM,uEACNC,IAAO,4CACPC,IAAO,oCAGJC,GAAa,CAChB,4DACA,gDACA,sDACA,oDAGGC,GAAU,CACbjwQ,EAAQ,0CACRna,EAAQ,yCACR8pQ,GAAQ,+CACR2D,GAAQ,4CACRmG,GAAQ,yBACR1sR,EAAQ,gCACRmsQ,KAAQ,mCA6BLg3B,GAAc,SAAStkB,GAAmE,QAAd/lQ,EAAE,GAAoB7vB,EAAE,EAAEA,EAAE41R,EAAK,GAAG31R,SAASD,EAAG,GAAG41R,EAAK,GAAG51R,GAAI,QAAQ26E,EAAE,EAAEu/I,EAAE07D,EAAK,GAAG51R,GAAGC,OAAO06E,EAAEu/I,EAAEv/I,GAA5F,MAAkG9qD,EAAEzrB,KAAKgoB,MAAMyD,EAAG+lQ,EAAK,GAAG51R,GAAGuB,MAAMo5E,EAAEA,EAArI,QAA4I,OAAO9qD,CAAG,EACzO60Q,GAAa/P,GAAU,SAASiB,GAAQ,OAAQA,EAAK,GAAG31R,OAAS,GAAK20R,OAAOiB,SAASD,EAAK,GAAG,IAAOhB,OAAO3+Q,OAAO2/Q,EAAK,GAAG7yR,IAAI,SAAS8sB,GAAK,OAAO+kQ,OAAOiB,SAAShmQ,GAAKA,EAAIilQ,GAAYjlQ,EAAI,IAAMqqR,GAAYtkB,EAAM,EAAIskB,GAEzNC,GAAa,SAAS1tR,EAAsBtnB,EAAaxB,GAAwD,QAAzBg2R,EAAqB,GAAY35R,EAAEmF,EAAGnF,EAAE2D,EAAG3D,GAAG,EAAG25R,EAAGv1R,KAAKyN,OAAO0qI,aAAa69J,GAAe3tR,EAAEzsB,KAAM,OAAO25R,EAAGrhR,KAAK,IAAIlT,QAAQ2wR,GAAK,GAAK,EACjOoP,GAAYxQ,GAAU,SAASloQ,EAAsBtnB,EAAaxB,GAA2B,OAAIixR,OAAOiB,SAASppQ,IAAuCwoQ,GAA8CxoQ,EAAE3a,SAAS,UAAU3M,EAAExB,GAAGyB,QAAQ2wR,GAAK,IAAjEokB,GAAW1tR,EAAEtnB,EAAExB,EAA6E,EAAIw2S,GAE5QE,GAAa,SAAS5tR,EAAsBtnB,EAAaymG,GAAwD,QAAzB+tL,EAAqB,GAAY35R,EAAEmF,EAAGnF,EAAEmF,EAAEymG,IAAK5rG,EAAG25R,EAAGv1R,MAAM,IAAMqoB,EAAEzsB,GAAG8R,SAAS,KAAKvQ,OAAM,IAAM,OAAOo4R,EAAGrhR,KAAK,GAAK,EAC5MgiS,GAAY3lB,GAAU,SAASloQ,EAAsBtnB,EAAaymG,GAA2B,OAAOgpL,OAAOiB,SAASppQ,GAAkCA,EAAE3a,SAAS,MAAM3M,EAAEA,EAAEymG,GAAKyuM,GAAW5tR,EAAEtnB,EAAEymG,EAAI,EAAIyuM,GAEvME,GAAU,SAAS9tR,EAAsBtnB,EAAaxB,GAA2B,QAAPg2R,EAAG,GAAY35R,EAAEmF,EAAGnF,EAAE2D,EAAG3D,IAAK25R,EAAGv1R,KAAKyN,OAAO0qI,aAAai+J,GAAY/tR,EAAEzsB,KAAM,OAAO25R,EAAGrhR,KAAK,GAAK,EAC5KmiS,GAAS9lB,GAAU,SAAgBloQ,EAAuBtnB,EAAcxB,GAAgB,OAAQixR,OAAOiB,SAASppQ,GAAqCA,EAAE3a,SAAS,OAAO3M,EAAExB,GAAK42S,GAAQ9tR,EAAEtnB,EAAExB,EAAI,EAAI42S,GAElMG,GAAW,SAASjuR,EAAsBzsB,GAAgB,IAAI+rB,EAAMm6Q,GAAez5Q,EAAEzsB,GAAI,OAAO+rB,EAAM,EAAI0uR,GAAOhuR,EAAGzsB,EAAE,EAAEA,EAAE,EAAE+rB,EAAI,GAAK,EAAG,EACxI4uR,GAAUD,GAEVE,GAAW,SAASnuR,EAAsBzsB,GAAgB,IAAI+rB,EAAMm6Q,GAAez5Q,EAAEzsB,GAAI,OAAO+rB,EAAM,EAAI0uR,GAAOhuR,EAAGzsB,EAAE,EAAEA,EAAE,EAAE+rB,EAAI,GAAK,EAAG,EACxI8uR,GAAUD,GAEVE,GAAY,SAASruR,EAAsBzsB,GAAgB,IAAI+rB,EAAM,EAAEm6Q,GAAez5Q,EAAEzsB,GAAI,OAAO+rB,EAAM,EAAI0uR,GAAOhuR,EAAGzsB,EAAE,EAAEA,EAAE,EAAE+rB,EAAI,GAAK,EAAG,EAC3IgvR,GAAWD,GAEXE,GAAU,SAAevuR,EAAsBzsB,GAAgB,IAAI+rB,EAAMm6Q,GAAez5Q,EAAEzsB,GAAI,OAAO+rB,EAAM,EAAIo5Q,GAAU14Q,EAAGzsB,EAAE,EAAEA,EAAE,EAAE+rB,GAAO,EAAG,EAC9IkvR,GAASD,GAETE,GAAW,SAASzuR,EAAsBzsB,GAAgB,IAAI+rB,EAAMm6Q,GAAez5Q,EAAEzsB,GAAI,OAAO+rB,EAAM,EAAI0uR,GAAOhuR,EAAGzsB,EAAE,EAAEA,EAAE,EAAE+rB,GAAO,EAAG,EACtIovR,GAAUD,GAEVE,GAAY,SAAS3uR,EAAuBlU,GAAkB,OAtDlE,SAAS8iS,IAAe5uR,EAAuBlU,GAI9C,QAHIpT,EAAI,EAAI,GAAKsnB,EAAElU,EAAM,KAAO,GAC5B5U,IAAmB,IAAb8oB,EAAElU,EAAM,KAAc,IAAOkU,EAAElU,EAAM,KAAO,EAAK,IACvD+iB,EAAc,GAAT7O,EAAElU,EAAI,GACPvY,EAAI,EAAGA,GAAK,IAAKA,EAAGs7B,EAAQ,IAAJA,EAAU7O,EAAElU,EAAMvY,GAClD,OAAQ,MAAL2D,EAAwB,GAAL23B,EAAUn2B,GAAI6xO,KAAY8I,KACxC,GAALn8O,EAAQA,GAAI,MACRA,GAAK,KAAM23B,GAAK5U,KAAKolD,IAAI,EAAE,KAC3B3mE,EAAIuhB,KAAKolD,IAAI,EAAGnoE,EAAI,IAAM23B,EAClC,CA6CyE+/Q,CAAe5uR,EAAGlU,EAAK,EAC5F+iS,GAAWF,GAEXG,GAAS,SAAkB/uR,GAAK,OAAOlX,MAAM2C,QAAQuU,WAAc4oQ,WAAe,KAAe5oQ,aAAa4oQ,UAAa,EAE5HT,KACFgmB,GAAU,SAAiBluR,EAAuBzsB,GAAgB,IAAI40R,OAAOiB,SAASppQ,GAAoC,OAAOiuR,GAASjuR,EAAGzsB,GAAI,IAAI+rB,EAAMU,EAAE+uR,aAAax7S,GAAI,OAAO+rB,EAAM,EAAIU,EAAE3a,SAAS,OAAO9R,EAAE,EAAEA,EAAE,EAAE+rB,EAAI,GAAK,EAAG,EACrO8uR,GAAU,SAAiBpuR,EAAuBzsB,GAAgB,IAAI40R,OAAOiB,SAASppQ,GAAoC,OAAOmuR,GAASnuR,EAAGzsB,GAAI,IAAI+rB,EAAMU,EAAE+uR,aAAax7S,GAAI,OAAO+rB,EAAM,EAAIU,EAAE3a,SAAS,OAAO9R,EAAE,EAAEA,EAAE,EAAE+rB,EAAI,GAAK,EAAG,EACrOgvR,GAAW,SAAkBtuR,EAAuBzsB,GAAgB,IAAI40R,OAAOiB,SAASppQ,KAAuCwoQ,GAAa,OAAO6lB,GAAUruR,EAAGzsB,GAAI,IAAI+rB,EAAM,EAAEU,EAAE+uR,aAAax7S,GAAI,OAAOysB,EAAE3a,SAAS,UAAU9R,EAAE,EAAEA,EAAE,EAAE+rB,EAAI,EAAG,EAC9OkvR,GAAS,SAAgBxuR,EAAuBzsB,GAAgB,IAAI40R,OAAOiB,SAASppQ,KAAuCwoQ,GAAa,OAAO+lB,GAAQvuR,EAAGzsB,GAAI,IAAI+rB,EAAMU,EAAE+uR,aAAax7S,GAAI,OAAOysB,EAAE3a,SAAS,UAAU9R,EAAE,EAAEA,EAAE,EAAE+rB,EAAK,EACpOovR,GAAU,SAAiB1uR,EAAuBzsB,GAAgB,IAAI40R,OAAOiB,SAASppQ,GAAoC,OAAOyuR,GAASzuR,EAAGzsB,GAAI,IAAI+rB,EAAMU,EAAE+uR,aAAax7S,GAAI,OAAOysB,EAAE3a,SAAS,OAAO9R,EAAE,EAAEA,EAAE,EAAE+rB,EAAK,EACpNuvR,GAAW,SAAiB7uR,EAAuBzsB,GAAgB,OAAG40R,OAAOiB,SAASppQ,GAAuCA,EAAEgvR,aAAaz7S,GAAWo7S,GAAU3uR,EAAEzsB,EAAI,EACvKu7S,GAAS,SAAkB/uR,GAAK,OAAOooQ,OAAOiB,SAASrpQ,IAAMlX,MAAM2C,QAAQuU,WAAc4oQ,WAAe,KAAe5oQ,aAAa4oQ,UAAa,UAaxItC,GAAa,KATvB,SAAS4oB,KACRvW,GAAY,SAAS14Q,EAAsBtnB,EAAaxB,GAAgB,OAAOmvR,GAASkd,MAAM55Q,OAAO,KAAM3J,EAAElrB,MAAM4D,EAAExB,IAAIyB,QAAQ2wR,GAAM,GAAK,EAC5I0kB,GAAS,SAAShuR,EAAsBtnB,EAAaxB,GAAgB,OAAOmvR,GAASkd,MAAM55Q,OAAO,MAAO3J,EAAElrB,MAAM4D,EAAExB,GAAK,EACxHg3S,GAAU,SAASluR,EAAsBzsB,GAAgB,IAAI+rB,EAAMm6Q,GAAez5Q,EAAEzsB,GAAI,OAAO+rB,EAAM,EAAI+mQ,GAASkd,MAAM55Q,OAAO68P,GAAcxmQ,EAAElrB,MAAMvB,EAAE,EAAGA,EAAE,EAAE+rB,EAAI,IAAM,EAAG,EAC3K8uR,GAAU,SAASpuR,EAAsBzsB,GAAgB,IAAI+rB,EAAMm6Q,GAAez5Q,EAAEzsB,GAAI,OAAO+rB,EAAM,EAAI+mQ,GAASkd,MAAM55Q,OAAO48P,GAAkBvmQ,EAAElrB,MAAMvB,EAAE,EAAGA,EAAE,EAAE+rB,EAAI,IAAM,EAAG,EAC/KgvR,GAAW,SAAStuR,EAAsBzsB,GAAgB,IAAI+rB,EAAM,EAAEm6Q,GAAez5Q,EAAEzsB,GAAI,OAAO+rB,EAAM,EAAI+mQ,GAASkd,MAAM55Q,OAAO,KAAM3J,EAAElrB,MAAMvB,EAAE,EAAEA,EAAE,EAAE+rB,EAAI,IAAM,EAAG,EACrKkvR,GAAS,SAASxuR,EAAsBzsB,GAAgB,IAAI+rB,EAAMm6Q,GAAez5Q,EAAEzsB,GAAI,OAAO+rB,EAAM,EAAI+mQ,GAASkd,MAAM55Q,OAAO,KAAM3J,EAAElrB,MAAMvB,EAAE,EAAEA,EAAE,EAAE+rB,IAAQ,EAAG,EAC/JovR,GAAU,SAAS1uR,EAAsBzsB,GAAgB,IAAI+rB,EAAMm6Q,GAAez5Q,EAAEzsB,GAAI,OAAO+rB,EAAM,EAAI+mQ,GAASkd,MAAM55Q,OAAO,MAAO3J,EAAElrB,MAAMvB,EAAE,EAAEA,EAAE,EAAE+rB,IAAQ,EAAG,CAClK,CACoC2vR,GAEpC,IAAIlB,GAAc,SAAS/tR,EAAuBlU,GAA6B,OAAOkU,EAAElU,EAAM,EAC1F6hS,GAAiB,SAAS3tR,EAAuBlU,GAA6B,OAAe,IAAPkU,EAAElU,EAAI,GAAWkU,EAAElU,EAAM,EAC/GojS,IAAgB,SAASlvR,EAAuBlU,GAA6B,IAAIwR,EAAe,IAAV0C,EAAElU,EAAI,GAAWkU,EAAElU,GAAM,OAAQwR,EAAI,MAAUA,GAAwB,GAAlB,MAASA,EAAI,EAAU,EAClKm8Q,GAAiB,SAASz5Q,EAAuBlU,GAA6B,OAAOkU,EAAElU,EAAI,IAAI,GAAG,KAAKkU,EAAElU,EAAI,IAAI,KAAKkU,EAAElU,EAAI,IAAI,GAAGkU,EAAElU,EAAM,EAC3IksR,GAAgB,SAASh4Q,EAAuBlU,GAA6B,OAAQkU,EAAElU,EAAI,IAAI,GAAKkU,EAAElU,EAAI,IAAI,GAAKkU,EAAElU,EAAI,IAAI,EAAGkU,EAAElU,EAAM,EACxIqjS,IAAgB,SAASnvR,EAAuBlU,GAA6B,OAAQkU,EAAElU,IAAM,GAAKkU,EAAElU,EAAI,IAAI,GAAKkU,EAAElU,EAAI,IAAI,EAAGkU,EAAElU,EAAI,EAAI,EAE5I,SAASw4R,GAAUnwO,EAAiB3pD,GACnC,IAAU4kS,EAAsBC,EAAWx8D,EAAGy+C,EAAI/9R,EAAG+tI,EAAjD/jG,EAAE,GAA8B+xQ,EAAG,GACvC,OAAO9kS,GACN,IAAK,OAEJ,GADA82H,EAAMvyI,KAAKowG,EACR+oL,IAAWC,OAAOiB,SAASr6R,OAAUy5R,GAAajrP,EAAIxuC,KAAK+F,MAAM/F,KAAKowG,EAAGpwG,KAAKowG,EAAE,EAAEhrC,GAAM9uD,SAAS,gBAC/F,IAAI9R,EAAI,EAAGA,EAAI4gE,IAAQ5gE,EAAKgqC,GAAGn4B,OAAO0qI,aAAa69J,GAAe5+S,KAAMuyI,IAAOA,GAAK,EACzFntE,GAAQ,EACR,MAED,IAAK,OAAQ52B,EAAIywQ,GAAOj/S,KAAMA,KAAKowG,EAAGpwG,KAAKowG,EAAIhrC,GAAO,MACtD,IAAK,UAAsB52B,EAAIm7P,GAAU3pS,KAAMA,KAAKowG,EAAGpwG,KAAKowG,GAA5ChrC,GAAQ,IAA+C,MAEvE,IAAK,OACJ,YAAUkyN,GAAa,KAClB,OAAOie,GAAUl9R,KAAKrY,KAAMolE,EAAM,QADH52B,EAAI8oP,GAASkd,MAAM55Q,OAAO48P,GAAkBx3R,KAAK+F,MAAM/F,KAAKowG,EAAGpwG,KAAKowG,EAAE,EAAEhrC,IAE5GA,GAAO,EAAU,MAGlB,IAAK,aAAc52B,EAAI2wQ,GAAQn/S,KAAMA,KAAKowG,GAAIhrC,EAAO,EAAIslO,GAAe1qS,KAAMA,KAAKowG,GAAI,MACvF,IAAK,WAAY5hE,EAAI6wQ,GAAQr/S,KAAMA,KAAKowG,GAAIhrC,EAAO,EAAIslO,GAAe1qS,KAAMA,KAAKowG,GAAI,MAErF,IAAK,SAAU5hE,EAAI+wQ,GAASv/S,KAAMA,KAAKowG,GAAIhrC,EAAO,EAAI,EAAIslO,GAAe1qS,KAAMA,KAAKowG,GAAI,MAExF,IAAK,OAAQhrC,EAAO,EAAKslO,GAAe1qS,KAAMA,KAAKowG,GAAI5hE,EAAIixQ,GAAOz/S,KAAMA,KAAKowG,GAAc,EAAPhrC,IAAaA,GAAQ,GAAG,MAE5G,IAAK,QAASA,EAAO,EAAKslO,GAAe1qS,KAAMA,KAAKowG,GAAI5hE,EAAImxQ,GAAQ3/S,KAAMA,KAAKowG,GAAc,EAAPhrC,IAAaA,GAAQ,GAAY,EAAPA,IAAc,MAE9H,IAAK,OACJ,IADYA,EAAO,EAAG52B,EAAI,GACqB,KAAxCs1M,EAAEk7D,GAAYh/S,KAAMA,KAAKowG,EAAIhrC,OAAcm7O,EAAG33S,KAAK2vR,GAASz0C,IACnEt1M,EAAI+xQ,EAAGzjS,KAAK,IAAK,MAClB,IAAK,QACJ,IADasoD,EAAO,EAAG52B,EAAI,GACmB,KAAvCs1M,EAAE86D,GAAe5+S,KAAKA,KAAKowG,EAAGhrC,KAAYm7O,EAAG33S,KAAK2vR,GAASz0C,IAAI1+K,GAAM,EAC5EA,GAAM,EAAG52B,EAAI+xQ,EAAGzjS,KAAK,IAAK,MAG3B,IAAK,YACJ,IADiB0xB,EAAI,GAAI+jG,EAAMvyI,KAAKowG,EAChC5rG,EAAI,EAAGA,EAAI4gE,IAAQ5gE,EAAG,CACzB,GAAGxE,KAAKwgT,OAAmC,IAA3BxgT,KAAKwgT,KAAKtvS,QAAQqhI,GACjCuxG,SAAIk7D,GAAYh/S,KAAMuyI,GACtBvyI,KAAKowG,EAAImiC,EAAM,EACfgwJ,EAAKgT,GAAUl9R,KAAKrY,KAAMolE,EAAK5gE,EAAGs/O,EAAI,YAAc,aAC7Cy8D,EAAGzjS,KAAK,IAAMylR,EAEtBge,EAAG33S,KAAK2vR,GAASqmB,GAAe5+S,KAAMuyI,KACtCA,GAAK,EACJ/jG,EAAI+xQ,EAAGzjS,KAAK,IAAKsoD,GAAQ,EAAG,MAE/B,IAAK,QACJ,UAAUkyN,GAAa,IAAa,CACnC9oP,EAAI8oP,GAASkd,MAAM55Q,OAAO48P,GAAkBx3R,KAAK+F,MAAM/F,KAAKowG,EAAGpwG,KAAKowG,EAAIhrC,IACxE,MAGF,IAAK,YACJ,IADiB52B,EAAI,GAAI+jG,EAAMvyI,KAAKowG,EAChC5rG,EAAI,EAAGA,GAAK4gE,IAAQ5gE,EAAG,CAC1B,GAAGxE,KAAKwgT,OAAmC,IAA3BxgT,KAAKwgT,KAAKtvS,QAAQqhI,GACjCuxG,SAAIk7D,GAAYh/S,KAAMuyI,GACtBvyI,KAAKowG,EAAImiC,EAAM,EACfgwJ,EAAKgT,GAAUl9R,KAAKrY,KAAMolE,EAAK5gE,EAAGs/O,EAAI,YAAc,aAC7Cy8D,EAAGzjS,KAAK,IAAMylR,EAEtBge,EAAG33S,KAAK2vR,GAASymB,GAAYh/S,KAAMuyI,KACnCA,GAAK,EACJ/jG,EAAI+xQ,EAAGzjS,KAAK,IAAK,MAEpB,QACD,OAAOsoD,GACN,KAAK,EAAGi7O,SAAKrB,GAAYh/S,KAAMA,KAAKowG,GAAIpwG,KAAKowG,IAAYiwM,EACzD,KAAK,EAAGA,UAAY,MAAN5kS,EAAY0kS,IAAgBvB,IAAgB5+S,KAAMA,KAAKowG,GAAIpwG,KAAKowG,GAAK,EAAUiwM,EAC7F,KAAK,EAAG,KAAK,EACZ,MAAS,MAAN5kS,GAAgC,IAAjBzb,KAAKA,KAAKowG,EAAE,IACvBkwM,EAAK5V,GAAe1qS,KAAMA,KAAKowG,GAAIpwG,KAAKowG,GAAK,EAAYkwM,IADfD,GAAOj7O,EAAO,EAAK6jO,GAAgBmX,KAAepgT,KAAMA,KAAKowG,GAAIpwG,KAAKowG,GAAK,EAAUiwM,GAEvI,KAAK,EAAG,KAAK,EACZ,GAAS,MAAN5kS,EACF,OAAc6kS,EAAH,GAARl7O,EAAgB06O,GAAS9/S,KAAMA,KAAKowG,GAC7B0vM,GAAS,CAAC9/S,KAAKA,KAAKowG,EAAE,GAAGpwG,KAAKA,KAAKowG,EAAE,GAAGpwG,KAAKA,KAAKowG,EAAE,GAAGpwG,KAAKA,KAAKowG,EAAE,GAAGpwG,KAAKA,KAAKowG,EAAE,GAAGpwG,KAAKA,KAAKowG,EAAE,GAAGpwG,KAAKA,KAAKowG,EAAE,GAAGpwG,KAAKA,KAAKowG,EAAE,IAAK,GAC9IpwG,KAAKowG,GAAK,EAAUkwM,EACdl7O,EAAO,EAEf,KAAK,GAAI52B,EAAIswQ,GAAU9+S,KAAMA,KAAKowG,EAAGhrC,IAEtC,YAAKgrC,GAAGhrC,EAAa52B,CACtB,CAEA,IAAIiyQ,IAAkB,SAASxvR,EAAuB1U,EAAgBQ,GAA2BkU,EAAElU,GAAc,IAANR,EAAa0U,EAAElU,EAAI,GAAOR,IAAQ,EAAK,IAAO0U,EAAElU,EAAI,GAAOR,IAAQ,GAAM,IAAO0U,EAAElU,EAAI,GAAOR,IAAQ,GAAM,GAAO,EACzNmkS,IAAkB,SAASzvR,EAAuB1U,EAAgBQ,GAA2BkU,EAAElU,GAAc,IAANR,EAAa0U,EAAElU,EAAI,GAAOR,GAAO,EAAK,IAAO0U,EAAElU,EAAI,GAAOR,GAAO,GAAM,IAAO0U,EAAElU,EAAI,GAAOR,GAAO,GAAM,GAAO,EACtNokS,IAAkB,SAAS1vR,EAAuB1U,EAAgBQ,GAA2BkU,EAAElU,GAAc,IAANR,EAAa0U,EAAElU,EAAI,GAAOR,IAAQ,EAAK,GAAO,EAEzJ,SAASqkS,IAAWnlS,EAAcc,EAAuB6kC,GACxD,IAAIgkB,EAAO,EAAG5gE,EAAI,EAClB,GAAS,SAAN48C,EAAc,CAEhB,IAAI58C,EAAI,EAAGA,GAAK+X,EAAI9X,SAAUD,EAAGm8S,IAAgB3gT,KAAMuc,EAAIgkI,WAAW/7I,GAAIxE,KAAKowG,EAAI,EAAI5rG,GACvF4gE,EAAO,EAAI7oD,EAAI9X,eACA,SAAN28C,GAAqB,SAALA,EACzB,UAAUk2O,GAAa,KAA+B,KAAhBG,GAAqB,CAG1D,IAAIjzR,EAAI,EAAGA,GAAK+X,EAAI9X,SAAUD,EAAG,CAChC,IAAIq8S,EAAMvpB,GAASkd,MAAMyB,OAAOxe,GAAcl7Q,EAAIzZ,OAAO0B,IACzDxE,KAAKA,KAAKowG,EAAI5rG,GAAKq8S,EAAI,EAAC,CAEzBz7O,EAAO7oD,EAAI9X,sBACK6yR,GAAa,KAAoB,SAALl2O,EAAc,CAGvD,IAFHy/P,EAAMvpB,GAASkd,MAAMyB,OAAOze,GAAkBj7Q,IAEpC9X,QAAU8X,EAAI9X,OAAQ,IAAID,EAAI,EAAGA,EAAI+X,EAAI9X,SAAUD,EAAgB,GAAVq8S,EAAIr8S,IAAgC,GAArB+X,EAAIgkI,WAAW/7I,KAASq8S,EAAIr8S,GAAK,IAChH,GAAGq8S,EAAIp8S,QAAU,EAAI8X,EAAI9X,OAAQ,IAAID,EAAI,EAAGA,EAAI+X,EAAI9X,SAAUD,EAAkB,GAAZq8S,EAAI,EAAEr8S,IAAyB,GAAdq8S,EAAI,EAAEr8S,EAAE,IAAgC,GAArB+X,EAAIgkI,WAAW/7I,KAASq8S,EAAI,EAAEr8S,GAAK,IAC9I,IAAIA,EAAI,EAAGA,EAAIq8S,EAAIp8S,SAAUD,EAAGxE,KAAKA,KAAKowG,EAAI5rG,GAAKq8S,EAAIr8S,GACvD4gE,EAAOy7O,EAAIp8S,WACL,CAIN,IAFA8X,EAAMA,EAAI3S,QAAQ,gBAAiB,KAE/BpF,EAAI,EAAGA,GAAK+X,EAAI9X,SAAUD,EAAGxE,KAAKA,KAAKowG,EAAI5rG,GAA0B,IAApB+X,EAAIgkI,WAAW/7I,GACpE4gE,EAAO7oD,EAAI9X,eAEG,QAAN28C,EAAa,CACtB,KAAM58C,EAAIiX,IAAKjX,EAEdxE,KAAKA,KAAKowG,KAAQyvC,SAAStjI,EAAIxW,MAAM,EAAEvB,EAAG,EAAEA,EAAE,GAAI,KAAK,EACtD,OAAOxE,QACM,YAANohD,EAAiB,CAEzB,IAAI51C,EAAiB0f,KAAK4lC,IAAI9wD,KAAKowG,EAAI30F,EAAGzb,KAAKyE,QAC/C,IAAID,EAAI,EAAGA,EAAI0mB,KAAK4lC,IAAIv0C,EAAI9X,OAAQgX,KAAMjX,EAAG,CAC5C,IAAI6+B,EAAK9mB,EAAIgkI,WAAW/7I,GACxBxE,KAAKA,KAAKowG,KAAa,IAAL/sE,EAClBrjC,KAAKA,KAAKowG,KAAQ/sE,GAAM,EAEzB,KAAMrjC,KAAKowG,EAAI5kG,GAAKxL,KAAKA,KAAKowG,KAAO,EACrC,OAAOpwG,KACkC,OAAOyb,GACjD,KAAM,EAAG2pD,EAAO,EAAGplE,KAAKA,KAAKowG,GAAS,IAAJ7zF,EAAU,MAC5C,KAAM,EAAG6oD,EAAO,EAAGplE,KAAKA,KAAKowG,GAAS,IAAJ7zF,EAAsBvc,KAAKA,KAAKowG,EAAE,GAAS,KAAjC7zF,KAAS,GAA8B,MACnF,KAAM,EAAG6oD,EAAO,EAAGplE,KAAKA,KAAKowG,GAAS,IAAJ7zF,EAAsBvc,KAAKA,KAAKowG,EAAE,GAAS,KAAjC7zF,KAAS,GAA0Cvc,KAAKA,KAAKowG,EAAE,GAAS,KAAjC7zF,KAAS,GAA8B,MAC1H,KAAM,EAAG6oD,EAAO,EAAGq7O,IAAgBzgT,KAAMuc,EAAKvc,KAAKowG,GAAI,MACvD,KAAM,EAAa,GAAVhrC,EAAO,EAAY,MAANhkB,EAAW,EAvNnC,SAAS0/P,IAAgB7vR,EAAuB1V,EAAcwB,GAC7D,IAAIuc,GAAS/d,EAAI,GAAO,EAAEA,IAAK,IAAc,EAAI,IAAM,EAAIpT,EAAI,EAAG23B,EAAI,EAClEihR,EAAKznR,GAAO/d,EAAKA,EACjBw+I,SAASgnJ,GACC,GAANA,EAAS54S,EAAI23B,EAAI,GAExB33B,EAAI+iB,KAAKosF,MAAMpsF,KAAK87B,IAAI+5P,GAAM71R,KAAK81R,KACnClhR,EAAIihR,EAAK71R,KAAKolD,IAAI,EAAG,GAAKnoE,GACtBA,IAAK,QAAY4xJ,SAASj6H,IAAOA,EAAI5U,KAAKolD,IAAI,EAAE,KAASnoE,GAAI,MAC1D23B,GAAK5U,KAAKolD,IAAI,EAAE,IAAKnoE,GAAG,QANZA,EAAI,KAAO23B,EAAInT,MAAMpR,GAAK,MAAS,GAQvD,QAAQ/W,EAAI,EAAGA,GAAK,IAAKA,EAAGs7B,GAAG,IAAK7O,EAAElU,EAAMvY,GAAS,IAAJs7B,EACjD7O,EAAElU,EAAM,IAAW,GAAJ5U,IAAa,EAAU,GAAJ23B,EAClC7O,EAAElU,EAAM,GAAM5U,GAAK,EAAKmxB,CACzB,CAyMqCwnR,CAAgB9gT,KAAMuc,EAAKvc,KAAKowG,GAAI,MAEvE,KAAK,GAAI,MACT,KAAK,EAAIhrC,EAAO,EAAGs7O,IAAe1gT,KAAMuc,EAAKvc,KAAKowG,GAAU,CAE7D,YAAKA,GAAKhrC,EAAaplE,IACxB,CAEA,SAASw1S,GAAWyL,EAAmBC,GACtC,IAAIphR,EAAIg/Q,GAAU9+S,KAAKA,KAAKowG,EAAE6wM,EAAOx8S,QAAQ,GAC7C,GAAGq7B,IAAMmhR,EAAQ,MAAM,IAAIx6S,MAAMy6S,EAAM,YAAcD,EAAS,QAAUnhR,GACxE9/B,KAAKowG,GAAK6wM,EAAOx8S,QAAQ,CAC1B,CAEA,SAASyhS,GAAUD,EAAMnyP,GACxBmyP,EAAK71L,EAAIt8D,EACTmyP,EAAKE,WAAoBoP,GACzBtP,EAAKkC,IAAMqN,GACXvP,EAAKH,YAAc8a,GACpB,CAEA,SAASO,GAAUlb,EAAMxhS,GAAoCwhS,EAAK71L,GAAK3rG,CAAQ,CAE/E,SAAS+lS,GAAQpE,GAChB,IAAI53P,EAAIkrP,GAAY0M,GACpBF,UAAU13P,EAAG,GACNA,CACR,CAGA,SAAS4yQ,GAAa11S,EAAM6iD,EAAuB6tO,GAClD,GAAI1wR,EACJ,KAAI21S,EAASC,EAAS78S,EACtByhS,GAAUx6R,EAAMA,EAAK0kG,GAAK,GAE1B,QADIsuH,EAAIhzN,EAAKjH,OAAQ88S,EAAK,EAAGlb,EAAM,EAC7B36R,EAAK0kG,EAAIsuH,GAAG,CAET,KADR6iF,EAAK71S,EAAKy6R,WAAW,MACPob,GAAW,IAALA,KAAoC,IAArB71S,EAAKy6R,WAAW,KAAY,IAC/D,IAAIxnE,EAAI6iF,GAAeD,IAAOC,GAAe,OAG7C,IADA/8S,EAAmB,KADnB48S,EAAU31S,EAAKy6R,WAAW,IAEtBmb,EAAU,EAAGA,EAAS,GAAgB,IAAVD,IAAmBC,EAAS78S,IAA4C,KAAhC48S,EAAU31S,EAAKy6R,WAAW,MAAc,EAAEmb,EAClHjb,EAAM36R,EAAK0kG,EAAI3rG,EACf,IAAI8/B,EAAIo6L,EAAEv9K,GAAKu9K,EAAEv9K,EAAE11C,EAAMjH,EAAQ23R,GAEjC,GADA1wR,EAAK0kG,EAAIi2L,EACN93O,EAAGhqB,EAAGo6L,EAAG4iF,GAAK,QAEnB,CAGA,SAASE,KACR,IAAIrnB,EAAwB,GAAIsnB,EAAQvoB,GAAU,IAAM,KACpDwoB,EAAS,SAAmBvb,GAC/B,IAAI53P,EAAeg8P,GAAQpE,GAC3BF,UAAU13P,EAAG,GACNA,CACR,EAEIozQ,EAAmBD,EAAOD,GAE1BG,EAAS,WACRD,IAEDA,EAAOxxM,IACNwxM,EAAOn9S,OAASm9S,EAAOxxM,KAAKwxM,EAASA,EAAO77S,MAAM,EAAG67S,EAAOxxM,IAAWA,EAAIwxM,EAAOn9S,QAClFm9S,EAAOn9S,OAAS,GAAG21R,EAAKxxR,KAAKg5S,IAEjCA,EAAS,KACV,EAEI9oS,EAAO,SAAiBstR,GAC3B,OAAGwb,GAAWxb,EAAMwb,EAAOn9S,OAASm9S,EAAOxxM,EAAYwxM,GACvDC,IACQD,EAASD,EAAOz2R,KAAKC,IAAIi7Q,EAAG,EAAGsb,IACxC,EASA,MAAQ,CAAE5oS,KAAKA,EAAMlQ,KAFV,SAAiB4iO,GAAOq2E,IAAuC,OAA7BD,EAASp2E,GAAep7H,IAAWwxM,EAAOxxM,EAAIwxM,EAAOn9S,QAAQqU,EAAK4oS,EAAQ,EAEvFl2S,IAPtB,WACTq2S,WACO1nB,GAAQC,EAChB,EAIyC0nB,MAAM1nB,EAChD,CAEA,SAAS2nB,GAAaC,EAAiBr3S,EAAiB2/R,EAAS7lS,GAChE,IAA0B2rG,EAAtB30F,GAAgB9Q,EACpB,IAAGgiB,MAAMlR,GACT,CAAIhX,IAAQA,EAAS+8S,GAAe/lS,GAAGge,IAAM6wQ,GAAS,IAAI7lS,QAAU,GACpE2rG,EAAI,GAAK30F,GAAK,IAAO,EAAI,GAAK,EAC3BhX,GAAU,OAAQ2rG,EAAM3rG,GAAU,SAAU2rG,EAAM3rG,GAAU,WAAY2rG,EAC3E,IAAI5hE,EAAIwzQ,EAAGlpS,KAAKs3F,GACb30F,GAAK,IAAM+yB,EAAEs3P,YAAY,EAAGrqR,IAE9B+yB,EAAEs3P,YAAY,EAAgB,KAAR,IAAJrqR,IAClB+yB,EAAEs3P,YAAY,EAAIrqR,GAAK,IAExB,QAAQjX,EAAI,EAAQ,GAALA,IAAUA,EACxB,MAAGC,GAAU,KACR,CAAE+pC,EAAEs3P,YAAY,EAAGrhS,GAAS,MADZ+pC,EAAEs3P,YAAY,EAAmB,KAAN,IAATrhS,IAAsBA,IAAW,CACvC,CAEPA,EAAS,GAAKs7S,GAAOzV,IAAU0X,EAAGp5S,KAAK0hS,EAAO,CAC1E,CAEA,SAAS2X,GAAeC,EAAsB7b,EAAajK,GAC1D,IAAII,EAAM0b,GAAIgK,GAQd,GAPG7b,EAAI18R,GACH6yR,EAAI2lB,OAAM3lB,EAAIllQ,GAAK+uQ,EAAI18R,EAAE2tB,GACzBklQ,EAAI4lB,OAAM5lB,EAAI5mR,GAAKywR,EAAI18R,EAAEiM,KAEzB4mR,EAAI2lB,OAAM3lB,EAAIllQ,GAAK+uQ,EAAI/uQ,GACvBklQ,EAAI4lB,OAAM5lB,EAAI5mR,GAAKywR,EAAIzwR,KAEvBwmR,GAAQA,EAAKimB,KAAO,GAAI,CAC3B,KAAM7lB,EAAIllQ,GAAK,KAAOklQ,EAAIllQ,GAAK,IAC/B,KAAMklQ,EAAI5mR,GAAK,OAAS4mR,EAAI5mR,GAAK,MAElC,OAAO4mR,CACR,CAEA,SAAS8lB,GAAgBJ,EAAMh9J,EAAOk3I,GACrC,IAAII,EAAM0b,GAAIgK,GACd1lB,SAAI7yR,EAAIs4S,GAAezlB,EAAI7yR,EAAGu7I,EAAMv7I,EAAGyyR,GACvCI,EAAIr0R,EAAI85S,GAAezlB,EAAIr0R,EAAG+8I,EAAMv7I,EAAGyyR,GAChCI,CACR,CAEA,SAAS+lB,GAAgBjrR,EAAmB+qR,GAC3C,GAAG/qR,EAAE6qR,MAAQ7qR,EAAEA,EAAI,EAAiB,IAAZA,EAAI4gR,GAAI5gR,GAAUA,EAAEA,EAAI,GAAGA,EAAEA,GAAM+qR,EAAO,EAAK,MAAS,IAChF,GAAG/qR,EAAE8qR,MAAQ9qR,EAAE1hB,EAAI,EAAiB,IAAZ0hB,EAAI4gR,GAAI5gR,GAAUA,EAAE1hB,EAAI,GAAG0hB,EAAE1hB,GAAMysS,EAAO,EAAK,QAAaA,EAAO,EAAK,MAAU,MAC1G,IAAI14S,EAAI64S,GAAYlrR,GACpB,OAAIA,EAAE6qR,MAAkB,MAAV7qR,EAAE6qR,OAAcx4S,EAyB/B,SAAS84S,IAAQrkN,GAA8B,OAAOA,EAAKx0F,QAAQ,WAAW,OAAS,CAzBpD64S,CAAQ94S,KACtC2tB,EAAE8qR,MAAkB,MAAV9qR,EAAE8qR,OAAcz4S,EAmB/B,SAAS+4S,IAAQtkN,GAA8B,OAAOA,EAAKx0F,QAAQ,kBAAkB,SAAW,CAnB7D84S,CAAQ/4S,IACnCA,CACR,CAEA,SAASg5S,GAAiB/sS,EAAGwmR,GAC5B,OAAY,GAATxmR,EAAEjM,EAAEiM,GAAWA,EAAEjM,EAAEy4S,MAClBxsS,EAAEzN,EAAEyN,IAAMwmR,EAAKimB,MAAQ,GAAK,QAAWjmB,EAAKimB,MAAQ,EAAI,MAAU,QAAazsS,EAAEzN,EAAEi6S,KAI3E,GAATxsS,EAAEjM,EAAE2tB,GAAW1hB,EAAEjM,EAAEw4S,MAClBvsS,EAAEzN,EAAEmvB,IAAM8kQ,EAAKimB,MAAQ,GAAK,MAAS,MAAUzsS,EAAEzN,EAAEg6S,KAIhDI,GAAgB3sS,EAAEjM,EAAGyyR,EAAKimB,MAAQ,IAAME,GAAgB3sS,EAAEzN,EAAGi0R,EAAKimB,OAH/DzsS,EAAEjM,EAAEy4S,KAAO,GAAK,KAAOQ,GAAWhtS,EAAEjM,EAAEiM,GAAK,KAAOA,EAAEzN,EAAEi6S,KAAO,GAAK,KAAOQ,GAAWhtS,EAAEzN,EAAEyN,IALxFA,EAAEjM,EAAEw4S,KAAO,GAAK,KAAOU,GAAWjtS,EAAEjM,EAAE2tB,GAAK,KAAO1hB,EAAEzN,EAAEg6S,KAAO,GAAK,KAAOU,GAAWjtS,EAAEzN,EAAEmvB,EASnG,CACA,SAASwrR,GAAWC,GAAgC,OAAOljK,SAG3D,SAASmjK,IAAU5kN,GAA8B,OAAOA,EAAKx0F,QAAQ,WAAW,KAAO,CAHnBo5S,CAAUD,GAAQ,IAAM,CAAG,CAC/F,SAASH,GAAWpmE,GAA6B,MAAO,IAAMA,EAAM,EAAI,CAIxE,SAASymE,GAAWC,GAAyE,QAArC5rR,EAGxD,SAAS6rR,IAAU/kN,GAA8B,OAAOA,EAAKx0F,QAAQ,aAAa,KAAO,CAH7Bu5S,CAAUD,GAAS3+Q,EAAI,EAAG//B,EAAI,EAASA,IAAM8yB,EAAE7yB,SAAUD,EAAG+/B,EAAI,GAAGA,EAAIjN,EAAEipH,WAAW/7I,GAAK,GAAI,OAAO+/B,EAAI,CAAG,CACvK,SAASs+Q,GAAW7sJ,GAA6B,GAAGA,EAAM,EAAG,MAAM,IAAIvvJ,MAAM,kBAAoBuvJ,GAAM,IAAIrsJ,EAAE,GAAI,MAAMqsJ,EAAKA,EAAKA,EAAI9qI,KAAKosF,OAAO0+C,EAAI,GAAG,IAAKrsJ,EAAI0M,OAAO0qI,cAAeiV,EAAI,GAAG,GAAM,IAAMrsJ,EAAG,OAAOA,CAAG,CAKvN,SAASy5S,GAAYhlN,GAEpB,QADIugI,EAAI,EAAGwmE,EAAI,EACP3gS,EAAI,EAAGA,EAAI45F,EAAK35F,SAAUD,EAAG,CACpC,IAAI6+B,EAAK+6D,EAAKmiD,WAAW/7I,GACtB6+B,GAAM,IAAMA,GAAM,GAAIs7L,EAAI,GAAKA,GAAKt7L,EAAK,IACpCA,GAAM,IAAMA,GAAM,KAAI8hQ,EAAI,GAAKA,GAAK9hQ,EAAK,KAElD,MAAO,CAAE/L,EAAG6tQ,EAAI,EAAGvvR,EAAE+oN,EAAI,EAC1B,CACA,SAAS6jF,GAAYN,GAGpB,QAFIlsJ,EAAMksJ,EAAK5qR,EAAI,EACf3tB,EAAE,GACAqsJ,EAAKA,GAAMA,EAAI,GAAG,GAAI,EAAGrsJ,EAAI0M,OAAO0qI,cAAeiV,EAAI,GAAG,GAAM,IAAMrsJ,EAC5E,OAAOA,GAAKu4S,EAAKtsS,EAAI,EACtB,CACA,SAASytS,GAAan+J,GACrB,IAAInoI,EAAMmoI,EAAMh0I,QAAQ,KACxB,OAAU,GAAP6L,EAAkB,CAAEpT,EAAGy5S,GAAYl+J,GAAQ/8I,EAAGi7S,GAAYl+J,IACtD,CAAEv7I,EAAGy5S,GAAYl+J,EAAMn/I,MAAM,EAAGgX,IAAO5U,EAAGi7S,GAAYl+J,EAAMn/I,MAAMgX,EAAM,IAChF,CAEA,SAASumS,GAAa3wQ,EAA0B8nE,GAC/C,cAAUA,EAAO,KAA6B,iBAAPA,EAE/B6oM,GAAa3wQ,EAAGhpC,EAAGgpC,EAAGxqC,IAGb,iBAAPwqC,IAAiBA,EAAK6vQ,GAAa7vQ,IAC5B,iBAAP8nE,IAAiBA,EAAK+nM,GAAa/nM,IAGtC9nE,GAAM8nE,EAAK9nE,EAAKA,EAAK,IAAM8nE,EACnC,CACA,SAAS8oM,GAAUC,GAClB,IAAI75S,EAAI05S,GAAaG,GACrB,MAAO,IAAMX,GAAWl5S,EAAEA,EAAE2tB,GAAK,IAAMsrR,GAAWj5S,EAAEA,EAAEiM,GAAK,KAAOitS,GAAWl5S,EAAExB,EAAEmvB,GAAK,IAAMsrR,GAAWj5S,EAAExB,EAAEyN,EAC5G,CAGA,SAAS6tS,GAAyBC,EAAkBtnB,GACnD,KAAIsnB,GAAWtnB,GAAQA,EAAKimB,MAAQ,GAAKjmB,EAAKimB,MAAQ,GAAI,MAAM,IAAI57S,MAAM,oBAC1E,MAAI,kCAAkC0c,KAAKugS,GAAe,IAAMA,EAAM95S,QAAQ,KAAM,MAAQ,IACrF85S,CACR,CAEA,SAASC,GAAkBz+J,GAC1B,IAAI12G,EAAI,CAAC7kC,EAAE,CAAC2tB,EAAE,EAAE1hB,EAAE,GAAGzN,EAAE,CAACmvB,EAAE,EAAE1hB,EAAE,IAC1BmH,EAAM,EAAGvY,EAAI,EAAG6+B,EAAK,EACrB9S,EAAM20H,EAAMzgJ,OAChB,IAAIsY,EAAM,EAAGvY,EAAI+rB,MACZ8S,EAAG6hH,EAAM3E,WAAW/7I,GAAG,IAAM,GAAK6+B,EAAK,MADpB7+B,EAEvBuY,EAAM,GAAGA,EAAMsmB,EAIhB,IAFAmL,EAAE7kC,EAAE2tB,IAAMva,EAENA,EAAM,EAAGvY,EAAI+rB,MACZ8S,EAAG6hH,EAAM3E,WAAW/7I,GAAG,IAAM,GAAK6+B,EAAK,KADpB7+B,EAEvBuY,EAAM,GAAGA,EAAMsmB,EAIhB,GAFAmL,EAAE7kC,EAAEiM,IAAMmH,EAEPvY,IAAM+rB,GAAa,IAAN8S,EAAYmL,SAAErmC,EAAEmvB,EAAEkX,EAAE7kC,EAAE2tB,EAAGkX,EAAErmC,EAAEyN,EAAE44B,EAAE7kC,EAAEiM,EAAU44B,EAG7D,MAFEhqC,EAEEuY,EAAM,EAAGvY,GAAK+rB,MACb8S,EAAG6hH,EAAM3E,WAAW/7I,GAAG,IAAM,GAAK6+B,EAAK,MADnB7+B,EAExBuY,EAAM,GAAGA,EAAMsmB,EAIhB,IAFAmL,EAAErmC,EAAEmvB,IAAMva,EAENA,EAAM,EAAGvY,GAAK+rB,MACb8S,EAAG6hH,EAAM3E,WAAW/7I,GAAG,IAAM,GAAK6+B,EAAK,KADnB7+B,EAExBuY,EAAM,GAAGA,EAAMsmB,EAEhBmL,SAAErmC,EAAEyN,IAAMmH,EACHyxB,CACR,CAQA,SAASo1Q,GAAY1B,EAAe3mS,EAAWizB,GAC9C,OAAW,MAAR0zQ,GAA0B,MAAVA,EAAKzmS,GAAuB,KAAVymS,EAAKzmS,EAAiB,QAC7CxN,IAAXi0S,EAAKp+D,EAAwBo+D,EAAKp+D,GACxB,KAAVo+D,EAAKzmS,IAAaymS,EAAKvH,GAAKnsQ,GAAKA,EAAE6yP,SAAQ6gB,EAAKvH,EAAInsQ,EAAE6yP,QAC5C,KAAV6gB,EAAKzmS,EAAiBooS,GAAK3B,EAAK3mS,IAAM2mS,EAAK3mS,EAV/C,SAASuoS,GAAiB5B,EAAe3mS,GACxC,IAAI8lC,EAAe,KAAV6gQ,EAAKzmS,GAAYF,aAAawN,KACvC,GAAa,MAAVm5R,EAAKvH,EAAW,IAAM,OAAQuH,EAAKp+D,EAAIi6C,GAAWmkB,EAAKvH,EAAGt5P,EAAI61P,GAAQ37R,GAAKA,EAAkB,CAAb,MAAa,CAChG,IAAM,OAAQ2mS,EAAKp+D,EAAIi6C,IAAYmkB,EAAK6B,IAAI,CAAC,GAAGC,WAAW3iQ,EAAI,GAAK,GAAKA,EAAI61P,GAAQ37R,GAAKA,EAA+B,CAA1B,MAAa,MAAO,GAAGA,CAAG,CAC1H,CAO2BuoS,CAAiB5B,EAAnCj0S,MAALsN,EAA8C2mS,EAAK3mS,EACxBA,GAC/B,CAEA,SAAS0oS,GAAkBvsJ,EAAqB0kI,GAC/C,IAAIp5P,EAAIo5P,GAAQA,EAAK1kI,MAAQ0kI,EAAK1kI,MAAQ,SACtCwsJ,EAAS,CAAC,EAAGA,SAAOlhR,GAAK00H,EACtB,CAAEysJ,WAAY,CAACnhR,GAAIohR,OAAQF,EACnC,CAEA,SAASG,GAAcC,EAAoB54S,EAAc0wR,GACxD,IAAI5tP,EAAI4tP,GAAQ,CAAC,EACbmoB,EAAQD,EAAuB,MAAhBA,EAAI,SAAoB91Q,EAAE+1Q,MACjC,MAAT9rB,IAA0B,MAAT8rB,IAAeA,EAAQ9rB,IAC3C,IAAIlrL,EAAmB+2M,GAAQ,CAAC,EAC7BC,IAAUh3M,EAAG,WAAUA,EAAG,SAAW,IACxC,IAAIi3M,EAAK,EAAGC,EAAK,EACjB,GAAGl3M,GAAkB,MAAZ/+D,EAAEqrI,OAAgB,CAC1B,GAAsB,iBAAZrrI,EAAEqrI,OAAoB2qI,EAAKh2Q,EAAEqrI,WAClC,CACJ,IAAI6qI,EAA6C,iBAAZl2Q,EAAEqrI,OAAqBupI,GAAY50Q,EAAEqrI,QAAUrrI,EAAEqrI,OACtF2qI,EAAKE,EAAQ9uS,EAAG6uS,EAAKC,EAAQptR,EAE1Bi2E,EAAG,UAASA,EAAG,QAAU,SAE9B,IAAI23C,EAAmB,CAACv7I,EAAG,CAAC2tB,EAAE,IAAU1hB,EAAE,KAAWzN,EAAG,CAACmvB,EAAE,EAAG1hB,EAAE,IAChE,GAAG23F,EAAG,QAAS,CACd,IAAIo3M,EAAShB,GAAkBp2M,EAAG,SAClC23C,EAAMv7I,EAAE2tB,EAAIqtR,EAAOh7S,EAAE2tB,EACrB4tH,EAAMv7I,EAAEiM,EAAI+uS,EAAOh7S,EAAEiM,EACrBsvI,EAAM/8I,EAAEmvB,EAAIpM,KAAKC,IAAI+5H,EAAM/8I,EAAEmvB,EAAGqtR,EAAOx8S,EAAEmvB,GACzC4tH,EAAM/8I,EAAEyN,EAAIsV,KAAKC,IAAI+5H,EAAM/8I,EAAEyN,EAAG+uS,EAAOx8S,EAAEyN,IAChC,GAAN4uS,IAAUt/J,EAAM/8I,EAAEyN,EAAI4uS,EAAKG,EAAOx8S,EAAEyN,EAAI,GAG5C,QADI4mO,EAAM,GACF7d,EAAI,EAAGA,GAAKjzN,EAAKjH,SAAUk6N,EAClC,GAAIjzN,EAAKizN,GACT,KAAI7kN,MAAM2C,QAAQ/Q,EAAKizN,IAAK,MAAM,IAAIl4N,MAAM,2CAC5C,IAAIm+S,GAAMJ,EAAK7lF,EAAGkmF,GAAS,IAAMD,GAAM,GACpCL,IACEh3M,EAAG,SAASq3M,MAAMr3M,EAAG,SAASq3M,IAAO,IACzCpoE,EAAMjvI,EAAG,SAASq3M,KAEnB,QAAQzf,GAAI,EAAGA,IAAKz5R,EAAKizN,GAAGl6N,SAAU0gS,GACrC,YAAUz5R,EAAKizN,GAAGwmE,IAAO,KACzB,KAAI+c,GAAiB,CAAC3mS,EAAG7P,EAAKizN,GAAGwmE,KAC7B2f,GAAML,EAAKtf,GAKf,GAJGjgJ,EAAMv7I,EAAEiM,EAAIgvS,KAAK1/J,EAAMv7I,EAAEiM,EAAIgvS,IAC7B1/J,EAAMv7I,EAAE2tB,EAAIwtR,KAAK5/J,EAAMv7I,EAAE2tB,EAAIwtR,IAC7B5/J,EAAM/8I,EAAEyN,EAAIgvS,KAAK1/J,EAAM/8I,EAAEyN,EAAIgvS,IAC7B1/J,EAAM/8I,EAAEmvB,EAAIwtR,KAAK5/J,EAAM/8I,EAAEmvB,EAAIwtR,KAC7Bp5S,EAAKizN,GAAGwmE,KAA4B,iBAAfz5R,EAAKizN,GAAGwmE,KAAoBrrR,MAAM2C,QAAQ/Q,EAAKizN,GAAGwmE,MAASz5R,EAAKizN,GAAGwmE,cAAcp8Q,KAAuB,GAE5HjP,MAAM2C,QAAQylS,GAAK3mS,KAAM2mS,GAAK9gQ,EAAI11C,EAAKizN,GAAGwmE,IAAG,GAAI+c,GAAK3mS,EAAI2mS,GAAK3mS,EAAE,IACtD,OAAX2mS,GAAK3mS,EACP,GAAG2mS,GAAK9gQ,EAAG8gQ,GAAKzmS,EAAI,YACZ+yB,EAAEu2Q,UAAa7C,GAAKzmS,EAAI,IAAKymS,GAAK3mS,EAAI,WACrCizB,EAAEw2Q,WAAY,SAClB9C,GAAKzmS,EAAI,GADS,KAGE,iBAAXymS,GAAK3mS,EAAgB2mS,GAAKzmS,EAAI,IACnB,kBAAXymS,GAAK3mS,EAAiB2mS,GAAKzmS,EAAI,IACtCymS,GAAK3mS,aAAawN,MACzBm5R,GAAKvH,EAAInsQ,EAAE6yP,QAAUjG,GAAU,IAC5B5sP,EAAEy2Q,WAAa/C,GAAKzmS,EAAI,IAAKymS,GAAKp+D,EAAIi6C,GAAWmkB,GAAKvH,EAAGzD,GAAQgL,GAAK3mS,EAAGizB,EAAEouP,aACvEslB,GAAKzmS,EAAI,IAAKymS,GAAK3mS,EAAI27R,GAAQgL,GAAK3mS,EAAGizB,EAAEouP,UAAWslB,GAAKp+D,EAAIi6C,GAAWmkB,GAAKvH,EAAGuH,GAAK3mS,KAExF2mS,GAAKzmS,EAAI,SAhBiGymS,GAAOx2S,EAAKizN,GAAGwmE,IAkB/H,GAAGof,EACC/nE,EAAIsoE,KAAQtoE,EAAIsoE,IAAKnK,IAAGuH,GAAKvH,EAAIn+D,EAAIsoE,IAAKnK,GAC7Cn+D,EAAIsoE,IAAO5C,OACL,CACN,IAAIgD,GAAWrC,GAAWiC,IAAOD,GAC9Bt3M,EAAG23M,KAAa33M,EAAG23M,IAAUvK,IAAGuH,GAAKvH,EAAIptM,EAAG23M,IAAUvK,GACzDptM,EAAG23M,IAAYhD,KAIlB,OAAGh9J,EAAMv7I,EAAE2tB,EAAI,MAAUi2E,EAAG,QAAU+1M,GAAap+J,IAC5C33C,CACR,CACA,SAAS43M,GAAaz5S,EAAc0wR,GAA+B,OAAOioB,GAAc,KAAM34S,EAAM0wR,EAAO,CAK3G,SAASgpB,GAAe/wR,EAAcma,GACrC,OAAKA,IAAGA,EAAIg8P,GAAQ,IACpBh8P,EAAEs3P,YAAY,EAAGzxQ,GACVma,CACR,CAGA,SAAS62Q,GAAmB35S,GAC3B,IAAI45S,EAAgB55S,EAAKy6R,WAAW,GACpC,OAAyB,IAAlBmf,EAAsB,GAAK55S,EAAKy6R,WAAWmf,EAAe,OAClE,CACA,SAASC,GAAmB75S,EAAiB8iC,GAC5C,IAAIg3Q,GAAQ,EAAO,OAAS,MAALh3Q,IAAag3Q,GAAQ,EAAMh3Q,EAAIg8P,GAAQ,EAAI,EAAI9+R,EAAKjH,SAC3E+pC,EAAEs3P,YAAY,EAAGp6R,EAAKjH,QAClBiH,EAAKjH,OAAS,GAAG+pC,EAAEs3P,YAAY,EAAGp6R,EAAM,QACrC85S,EAAQh3Q,EAAEzoC,MAAM,EAAGyoC,EAAE4hE,GAAK5hE,CAClC,CASA,SAASi3Q,IAAa/5S,GACrB,MAAO,CAAEg6S,IAAKh6S,EAAKy6R,WAAW,GAAIwf,KAAMj6S,EAAKy6R,WAAW,GACzD,CASA,SAASyf,GAAcl6S,EAAMjH,GAC5B,IAAI4+E,EAAQ33E,EAAK0kG,EACb5iG,EAAQ9B,EAAKy6R,WAAW,GACxBlrQ,EAAMoqR,GAAmB35S,GACzBm6S,EAAY,GACZlL,EAAK,CAAEl/R,EAAGwf,EAAKmoJ,EAAGnoJ,GACtB,GAAa,EAARztB,EAAkB,CAGtB,QADIs4S,EAAep6S,EAAKy6R,WAAW,GAC1B3hS,EAAI,EAAGA,GAAKshT,IAAgBthT,EAAGqhT,EAAUj9S,KAAK68S,IAAa/5S,IACpEivS,EAAE/kS,EAAIiwS,OAEFlL,EAAE/kS,EAAI,CAAC,CAAE8vS,IAAK,EAAGC,KAAM,IAI5Bj6S,SAAK0kG,EAAI/sB,EAAQ5+E,EACVk2S,CACR,CASA,IAAIoL,IAAuBH,GAY3B,SAASI,GAAet6S,GACvB,IAAIsqJ,EAAMtqJ,EAAKy6R,WAAW,GACtB8f,EAAYv6S,EAAKy6R,WAAW,GAChC8f,UAAav6S,EAAKy6R,WAAW,IAAM,GACnCz6R,EAAK0kG,IACE,CAAE94E,EAAG0+H,EAAKiwJ,UAAWA,EAC7B,CACA,SAASC,GAAehE,EAAc1zQ,GACrC,OAAS,MAALA,IAAWA,EAAIg8P,GAAQ,IAC3Bh8P,EAAEs3P,aAAY,EAAIoc,EAAK5qR,GACvBkX,EAAEs3P,YAAY,EAAGoc,EAAK+D,WAAa/D,EAAKv4S,GACxC6kC,EAAEs3P,YAAY,EAAG,GACVt3P,CACR,CAGA,SAAS23Q,GAAoBz6S,GAC5B,IAAIu6S,EAAYv6S,EAAKy6R,WAAW,GAChC8f,UAAav6S,EAAKy6R,WAAW,IAAK,GAClCz6R,EAAK0kG,IACE,CAAE94E,GAAE,EAAI2uR,UAAWA,EAC3B,CACA,SAASG,GAAoBlE,EAAc1zQ,GAC1C,OAAQ,MAALA,IAAWA,EAAIg8P,GAAQ,IAC1Bh8P,EAAEs3P,YAAY,EAAGoc,EAAK+D,WAAa/D,EAAKv4S,GACxC6kC,EAAEs3P,YAAY,EAAG,GACVt3P,CACR,CAGA,IAAI63Q,IAAqBhB,GACrBiB,GAAqBf,GAGzB,SAASgB,GAA2B76S,GACnC,IAAI45S,EAAgB55S,EAAKy6R,WAAW,GACpC,OAAyB,IAAlBmf,GAAyC,aAAlBA,EAA+B,GAAK55S,EAAKy6R,WAAWmf,EAAe,OAClG,CACA,SAASkB,GAA2B96S,EAAiB8iC,GACpD,IAAIg3Q,GAAQ,EAAO,OAAS,MAALh3Q,IAAag3Q,GAAQ,EAAMh3Q,EAAIg8P,GAAQ,MAC9Dh8P,EAAEs3P,YAAY,EAAGp6R,EAAKjH,OAAS,EAAIiH,EAAKjH,OAAS,YAC7CiH,EAAKjH,OAAS,GAAG+pC,EAAEs3P,YAAY,EAAGp6R,EAAM,QACrC85S,EAAQh3Q,EAAEzoC,MAAM,EAAGyoC,EAAE4hE,GAAK5hE,CAClC,CAGA,IAAIi4Q,IAAyBpB,GAIzBqB,GAAcH,GACdI,GAAcH,GAIlB,SAASI,GAAel7S,GACvB,IAAIulB,EAAIvlB,EAAK3F,MAAM2F,EAAK0kG,EAAG1kG,EAAK0kG,EAAI,GAChCy2M,EAAgB,EAAP51R,EAAE,GAAS61R,EAAe,EAAP71R,EAAE,GAClCvlB,EAAK0kG,GAAK,EACV,IAAI22M,EAAc,IAATD,EAAahH,GAAS,CAAC,EAAG,EAAG,EAAG,EAAW,IAAP7uR,EAAE,GAAYA,EAAE,GAAIA,EAAE,GAAIA,EAAE,IAAK,GAAKg4Q,GAAch4Q,EAAG,IAAM,EAC1G,OAAO41R,EAASE,EAAK,IAAOA,CAC7B,CACA,SAASC,GAAet7S,EAAiB8iC,GAC/B,MAALA,IAAWA,EAAIg8P,GAAQ,IAC3B,IAAIqc,EAAQ,EAAGC,EAAO,EAAGG,EAAc,IAAPv7S,EAGhC,GAFKA,IAAgB,EAAPA,IAAeA,KAAU,GAAK,KAASA,EAAQ,GAAK,GAAQo7S,EAAO,EACvEG,IAAgB,EAAPA,IAAeA,KAAU,GAAK,KAASA,EAAQ,GAAK,KAAQH,EAAO,EAAGD,EAAQ,IAC7FC,EACC,MAAM,IAAIrgT,MAAM,wBAA0BiF,GADrC8iC,EAAEs3P,aAAY,IAAM+gB,EAAQI,EAAOv7S,IAAS,IAAMm7S,EAAQ,GAErE,CAIA,SAASK,GAAUx7S,GAClB,IAAIw2S,EAAkB,CAAEv4S,EAAG,CAAC,EAAGxB,EAAG,CAAC,GACnC+5S,SAAKv4S,EAAEiM,EAAIlK,EAAKy6R,WAAW,GAC3B+b,EAAK/5S,EAAEyN,EAAIlK,EAAKy6R,WAAW,GAC3B+b,EAAKv4S,EAAE2tB,EAAI5rB,EAAKy6R,WAAW,GAC3B+b,EAAK/5S,EAAEmvB,EAAI5rB,EAAKy6R,WAAW,GACpB+b,CACR,CAWA,IAAIiF,GAAqBD,GACrBE,GAXJ,SAASC,IAAUzxS,EAAa44B,GAC/B,OAAKA,IAAGA,EAAIg8P,GAAQ,KACpBh8P,EAAEs3P,YAAY,EAAGlwR,EAAEjM,EAAEiM,GACrB44B,EAAEs3P,YAAY,EAAGlwR,EAAEzN,EAAEyN,GACrB44B,EAAEs3P,YAAY,EAAGlwR,EAAEjM,EAAE2tB,GACrBkX,EAAEs3P,YAAY,EAAGlwR,EAAEzN,EAAEmvB,GACdkX,CACR,EA4BA,SAAS84Q,GAAW57S,GACnB,GAAGA,EAAKjH,OAASiH,EAAK0kG,EAAI,EAAG,KAAM,4BACnC,OAAO1kG,EAAKy6R,WAAW,EAAG,IAC3B,CACA,SAASohB,GAAW77S,EAAM8iC,GAAK,OAAQA,GAAKg8P,GAAQ,IAAI1E,YAAY,EAAGp6R,EAAM,IAAM,CAmCnF,SAAS87S,GAAepwM,EAAO5oE,GAE9B,GADKA,IAAGA,EAAIg8P,GAAQ,KACfpzL,GAASA,EAAMqwM,KAAQj5Q,SAAEs3P,YAAY,EAAG,GAAIt3P,EAAEs3P,YAAY,EAAG,GAAWt3P,EAC1D,MAAf4oE,EAAM/lG,OACTm9B,EAAEs3P,YAAY,EAAG,GACjBt3P,EAAEs3P,YAAY,EAAG1uL,EAAM/lG,QACE,MAAf+lG,EAAMk2E,OAChB9+I,EAAEs3P,YAAY,EAAG,GACjBt3P,EAAEs3P,YAAY,EAAG1uL,EAAMk2E,SAEvB9+I,EAAEs3P,YAAY,EAAG,GACjBt3P,EAAEs3P,YAAY,EAAG,IAElB,IAAI4hB,EAAMtwM,EAAMuwM,MAAQ,EAIxB,GAHID,EAAM,EAAGA,GAAO,MACXA,EAAM,IAAGA,GAAO,OACzBl5Q,EAAEs3P,YAAY,EAAG4hB,GACZtwM,EAAMwwM,KAAsB,MAAfxwM,EAAMk2E,MAIjB,CACN,IAAIs6H,EAAOxwM,EAAMwwM,KAAO,SACN,iBAAPA,IAAiBA,GAAO,SAAWA,EAAItxS,SAAS,KAAKvQ,OAAM,IACtEyoC,EAAEs3P,YAAY,EAAGjmJ,SAAS+nK,EAAI7hT,MAAM,EAAG,GAAI,KAC3CyoC,EAAEs3P,YAAY,EAAGjmJ,SAAS+nK,EAAI7hT,MAAM,EAAG,GAAI,KAC3CyoC,EAAEs3P,YAAY,EAAGjmJ,SAAS+nK,EAAI7hT,MAAM,EAAG,GAAI,KAC3CyoC,EAAEs3P,YAAY,EAAG,IAAI,MATrBt3P,EAAEs3P,YAAY,EAAG,GACjBt3P,EAAEs3P,YAAY,EAAG,GACjBt3P,EAAEs3P,YAAY,EAAG,GASlB,OAAOt3P,CACR,CAiCA,SAASq5Q,GAA8Br5Q,EAAGs1M,GAEzC,IACIhkN,EAAe0O,EAAE23P,WAAW,GAChC,OAAQrmQ,GACP,KAAK,EAAY,MAAO,GACxB,KAAK,WAAY,KAAK,WAAY,MAJrB,CAAE,EAAG,SAAU,EAAG,eAAgB,EAAG,MAAO,GAAI,eAIZ0O,EAAE23P,WAAW,KAAO,GAEtE,GAAIrmQ,EAAI,IAAO,MAAM,IAAIr5B,MAAM,0BAA4Bq5B,EAAExpB,SAAS,KACtEk4B,SAAE4hE,GAAK,EACA5hE,EAAE23P,WAAW,EAAQ,GAALriD,EAAS,QAAU,SAC3C,CAQA,IAAIgkE,GAAc,EACdC,GAAc,EAQdC,GAAc,GA4BdC,GAAc,GACdC,IAAc,CAFA,GAEYD,IAG1BE,GAAmB,CACf,EAAa,CAAEnlR,EAAG,WAAYvnB,EAAGqsS,IACjC,EAAa,CAAE9kR,EAAG,WAAYvnB,EAPpB,IAQV,EAAa,CAAEunB,EAAG,qBAAsBvnB,EAR9B,IASV,EAAa,CAAEunB,EAAG,YAAavnB,EAAGssS,IAClC,EAAa,CAAE/kR,EAAG,YAAavnB,EAAGssS,IAClC,EAAa,CAAE/kR,EAAG,iBAAkBvnB,EAAGssS,IACvC,EAAa,CAAE/kR,EAAG,aAAcvnB,EAAGssS,IACnC,EAAa,CAAE/kR,EAAG,YAAavnB,EAAGssS,IAClC,EAAa,CAAE/kR,EAAG,cAAevnB,EAAGssS,IACpC,GAAa,CAAE/kR,EAAG,sBAAuBvnB,EAAGssS,IAC5C,GAAa,CAAE/kR,EAAG,YAAavnB,EA5CrB,IA6CV,GAAa,CAAEunB,EAAG,eAAgBvnB,EArBlB,MAsBhB,GAAa,CAAEunB,EAAG,gBAAiBvnB,EArBnB,MAsBhB,GAAa,CAAEunB,EAAG,UAAWvnB,EAnBnB,IAoBV,GAAa,CAAEunB,EAAG,UAAWvnB,EApBnB,IAqBV,GAAa,CAAEunB,EAAG,gBAAiBvnB,EAjDzB,IAkDV,GAAa,CAAEunB,EAAG,iBAAkBvnB,EAAGssS,IACvC,GAAa,CAAE/kR,EAAG,YAAavnB,EAnDrB,IAoDV,GAAa,CAAEunB,EAAG,oBAAqBvnB,EApD7B,IAqDV,GAAa,CAAEunB,EAAG,aAAcvnB,EAAGssS,GAAOtuR,EAAG,WAC7C,GAAa,CAAEuJ,EAAG,SAAUvnB,EAxClB,IAyCV,GAAa,CAAEunB,EAAG,cAAevnB,EA3BvB,IA4BV,GAAa,CAAEunB,EAAG,gBAAiBvnB,EA5BzB,IA6BV,GAAa,CAAEunB,EAAG,WAAYvnB,EA7BpB,IA8BV,GAAa,CAAEunB,EAAG,UAAWvnB,EA9BnB,IA+BV,IAAa,CAAC,EAEd,WAAmB,CAAEunB,EAAG,SAAUvnB,EAvDxB,IAwDV,WAAmB,CAAEunB,EAAG,WAAYvnB,EAxD1B,IAyDV,WAAmB,CAAC,GAIxB2sS,GAAe,CACX,EAAa,CAAEplR,EAAG,WAAYvnB,EAAGqsS,IACjC,EAAa,CAAE9kR,EAAG,QAASvnB,EAzCjB,IA0CV,EAAa,CAAEunB,EAAG,UAAWvnB,EA1CnB,IA2CV,EAAa,CAAEunB,EAAG,SAAUvnB,EA3ClB,IA4CV,EAAa,CAAEunB,EAAG,WAAYvnB,EA5CpB,IA6CV,EAAa,CAAEunB,EAAG,WAAYvnB,EA7CpB,IA8CV,EAAa,CAAEunB,EAAG,WAAYvnB,EA9CpB,IA+CV,EAAa,CAAEunB,EAAG,aAAcvnB,EA/CtB,IAgDV,EAAa,CAAEunB,EAAG,YAAavnB,EAhDrB,IAiDV,GAAa,CAAEunB,EAAG,WAAYvnB,EAhEpB,IAiEV,GAAa,CAAEunB,EAAG,cAAevnB,EAjEvB,IAkEV,GAAa,CAAEunB,EAAG,cAAevnB,EAlEvB,IAmEV,GAAa,CAAEunB,EAAG,eAAgBvnB,EAnExB,IAoEV,GAAa,CAAEunB,EAAG,YAAavnB,EAAGssS,IAClC,GAAa,CAAE/kR,EAAG,YAAavnB,EAAGssS,IAClC,GAAa,CAAE/kR,EAAG,YAAavnB,EAAGssS,IAClC,GAAa,CAAE/kR,EAAG,YAAavnB,EAhErB,IAiEV,GAAa,CAAEunB,EAAG,cAAevnB,EAzDvB,IA0DV,GAAa,CAAEunB,EAAG,cAAevnB,EAAGssS,IACpC,IAAa,CAAC,EAEd,WAAmB,CAAE/kR,EAAG,SAAUvnB,EAnFxB,IAoFV,WAAmB,CAAEunB,EAAG,WAAYvnB,EApF1B,IAqFV,WAAmB,CAAC,GAIxB4sS,GAAc,CACV,EAAe,KACf,EAAe,KACf,EAAe,GACf,EAAe,KACf,GAAe,KACf,GAAe,KACf,GAAe,KACf,GAAe,KACf,GAAe,KACf,GAAe,KACf,GAAe,KACf,GAAe,KACf,GAAe,KACf,GAAe,KACf,GAAe,KACf,GAAe,KACf,GAAe,KACf,GAAe,KACf,GAAe,KACf,GAAe,KACf,GAAe,KACf,GAAe,KACf,GAAe,KACf,GAAe,KACf,GAAe,KACf,GAAe,KACf,GAAe,KACf,GAAe,KACf,GAAe,KACf,GAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,IAAe,KACf,MAAe,MAInBC,IAAiB,CACpB,KACA,QACA,aACA,WACA,YACA,iBACA,eACA,WACA,SACA,WACA,cACA,kBACA,gBACA,YACA,UACA,YACA,eACA,UACA,YAGD,SAASC,IAAOnyR,GAA6D,OAAOA,EAAI7uB,IAAI,SAAS8sB,GAAK,MAAO,CAAEA,GAAG,GAAI,IAAKA,GAAG,EAAG,IAAM,IAAFA,EAAQ,EAAI,CAIrJ,IA4FIm0R,GAAsBtQ,GA5FEqQ,IAAO,CAElC,EACA,SACA,SACA,MACA,IACA,SACA,SACA,MAGA,EACA,SACA,SACA,MACA,IACA,SACA,SACA,MAEA,QACA,MACA,IACA,QACA,QACA,MACA,SACA,QACA,SACA,SACA,SACA,SACA,QACA,SACA,MACA,SAEA,IACA,SACA,SACA,MACA,QACA,QACA,MACA,IACA,MACA,SACA,SACA,SACA,SACA,SACA,SACA,SAEA,QACA,QACA,SACA,SACA,SACA,SACA,QACA,QACA,MACA,QACA,MACA,QACA,SACA,SACA,QACA,QAGA,EACA,SACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,KAKG1E,GAAO,CACH,EAAa,SACb,EAAa,UACb,GAAa,UACb,GAAa,QACb,GAAa,SACb,GAAa,QACb,GAAa,OACb,GAAa,gBACb,IAAa,SAGjB4E,GAAQ,CACX,SAAiB,EACjB,UAAiB,EACjB,UAAiB,GACjB,QAAiB,GACjB,SAAiB,GACjB,QAAiB,GACjB,OAAiB,GACjB,gBAAiB,GACjB,QAAiB,KAGdC,GAAgB,CACnB,yBACA,kBACA,mBACA,gBACA,iBACA,iBACA,mBACA,qBACA,iBACA,kBACA,sBACA,wBACA,oBACA,yBAOGC,GAAgC,CAEnC,6EAA8E,YAC9E,uDAAwD,YACxD,0DAA2D,YAC3D,uDAAwD,YACxD,gFAAiF,YAGjF,4EAA6E,SAC7E,qCAAsC,SACtC,sCAAuC,OAGvC,6EAA8E,SAC9E,sCAAuC,SAGvC,0CAA2C,SAC3C,sCAAuC,SACvC,0CAA2C,OAC3C,sCAAuC,OAGvC,8EAA+E,UAC/E,uCAAwC,UAGxC,gFAAiF,OACjF,yCAA0C,OAG1C,yEAA0E,SAC1E,kCAAmC,SAGnC,6DAA8D,YAC9D,sEAAuE,YACvE,wEAAyE,WAGzE,wEAAyE,OACzE,6EAA8E,OAG9E,2EAA4E,WAC5E,oCAAqC,WACrC,gDAAiD,mBACjD,sCAAuC,SAGvC,gFAAiF,WACjF,yCAA0C,WAG1C,sCAAuC,OACvC,6EAA8E,OAG9E,oEAAqE,OAGrE,gDAAiD,OAGjD,2CAA4C,OAG5C,wCAAyC,OAGzC,qCAAsC,aACtC,4EAA6E,a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,YACL,IAAK,YACL,IAAK,aACL,IAAK,cACL,IAAK,UACL,IAAK,SACL,IAAK,cACL,IAAK,UACL,IAAK,oBACL,IAAK,kBACL,IAAK,QACL,IAAK,aACL,IAAK,YACL,IAAK,cACL,IAAK,mBACL,IAAK,oBACL,IAAK,cACL,IAAK,cACL,IAAK,mBACL,IAAK,eACL,IAAK,aACL,IAAK,eACL,IAAK,gBACL,IAAK,aACL,IAAK,cACL,IAAK,cACL,IAAK,iBACL,IAAK,YACL,IAAK,cACL,IAAK,eACL,IAAK,aACL,IAAK,aACL,IAAK,gBACL,IAAK,eACL,IAAK,kBACL,IAAK,gBACL,IAAK,qBACL,IAAK,WACL,IAAK,OACL,IAAK,gBACL,IAAK,kBACL,IAAK,aACL,IAAK,aACL,IAAK,eACL,IAAK,iBACL,IAAK,cACL,IAAK,iBACL,IAAK,qBACL,IAAK,YACL,IAAK,oBACL,IAAK,WACL,IAAK,cACL,IAAK,iBACL,IAAK,WACL,IAAK,eACL,IAAK,gBACL,IAAK,gBACL,IAAK,mBACL,IAAK,iBACL,IAAK,eACL,IAAK,cACL,IAAK,YACL,IAAK,kBACL,IAAK,oBACL,IAAK,iBACL,IAAK,YACL,IAAK,aACL,IAAK,oBACL,IAAK,aACL,IAAK,eACL,IAAK,iBACL,IAAK,kBACL,IAAK,eACL,IAAK,gBACL,IAAK,gBACL,IAAK,qBACL,IAAK,mBACL,IAAK,qBACL,IAAK,yBACL,IAAK,cACL,IAAK,aACL,IAAK,mBACL,IAAK,sBACL,IAAK,eACL,IAAK,eACL,IAAK,gBACL,IAAK,cACL,IAAK,kBACL,IAAK,cACL,IAAK,gBACL,IAAK,kBACL,IAAK,2BACL,IAAK,eACL,IAAK,iBACL,IAAK,aACL,IAAK,iBACL,IAAK,YACL,IAAK,mBACL,IAAK,cACL,IAAK,wBACL,IAAK,kBACL,IAAK,qBACL,IAAK,kBACL,IAAK,kBACL,IAAK,kBACL,IAAK,qBACL,IAAK,aACL,IAAK,iBACL,IAAK,eACL,IAAK,mBACL,IAAK,aACL,IAAK,eACL,IAAK,kBACL,IAAK,gBACL,IAAK,gBACL,IAAK,kBACL,IAAK,kBACL,IAAK,gBACL,IAAK,iBACL,IAAK,uBACL,IAAK,0BACL,IAAK,iBACL,IAAK,eACL,IAAK,YACL,IAAK,cACL,IAAK,aACL,IAAK,iBACL,IAAK,kBACL,IAAK,kBACL,IAAK,gBACL,IAAK,kBACL,IAAK,gBACL,IAAK,gBACL,IAAK,qBACL,IAAK,cACL,IAAK,mBACL,IAAK,uBACL,IAAK,mBACL,IAAK,kBACL,IAAK,mBACL,IAAK,cACL,IAAK,iBACL,IAAK,kBACL,IAAK,eACL,IAAK,eACL,IAAK,oBACL,IAAK,sBACL,IAAK,sBACL,IAAK,mBACL,IAAK,qBACL,IAAK,qBACL,IAAK,gBACL,IAAK,aACL,IAAK,YACL,IAAK,cACL,IAAK,mBACL,IAAK,gBACL,IAAK,wBACL,IAAK,qBACL,IAAK,SACL,IAAK,kBACL,IAAK,gBACL,IAAK,kBACL,IAAK,gBACL,IAAK,gBACL,IAAK,mBACL,IAAK,mBACL,IAAK,oBACL,IAAK,eACL,IAAK,oBACL,IAAK,uBACL,IAAK,cACL,IAAK,WACL,IAAK,WACL,IAAK,aACL,IAAK,aACL,IAAK,eACL,IAAK,eACL,IAAK,cACL,IAAK,qBACL,IAAK,yBACL,IAAK,mBACL,IAAK,WACL,IAAK,iBACL,IAAK,iBACL,IAAK,eACL,IAAK,YACL,IAAK,mBACL,IAAK,mBACL,IAAK,iBACL,IAAK,kBACL,IAAK,oBACL,IAAK,mBACL,IAAK,cACL,IAAK,gBACL,IAAK,WACL,IAAK,YACL,IAAK,cACL,IAAK,cACL,IAAK,mBACL,IAAK,oBACL,IAAK,iBACL,IAAK,YACL,IAAK,SACL,IAAK,SACL,IAAK,gBACL,IAAK,mBACL,IAAK,iBACL,IAAK,WACL,IAAK,gBACL,IAAK,gBACL,IAAK,cACL,IAAK,iBACL,IAAK,iBACL,IAAK,oBACL,IAAK,sBACL,IAAK,aACL,IAAK,cACL,IAAK,cACL,IAAK,oBACL,IAAK,eACL,IAAK,gBACL,IAAK,qBAEHJ,GAAO,CACT,EAAG,QACH,EAAG,KACH,EAAG,OACH,EAAG,UACH,EAAG,MACH,EAAG,UACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,SACH,GAAI,KACJ,GAAI,MACJ,GAAI,QACJ,GAAI,SACJ,GAAI,QACJ,GAAI,MACJ,GAAI,MACJ,GAAI,MACJ,GAAI,OACJ,GAAI,KACJ,GAAI,OACJ,GAAI,MACJ,GAAI,KACJ,GAAI,QACJ,GAAI,MACJ,GAAI,MACJ,GAAI,OACJ,GAAI,QACJ,GAAI,SACJ,GAAI,QACJ,GAAI,OACJ,GAAI,MACJ,GAAI,MACJ,GAAI,QACJ,GAAI,OACJ,GAAI,QACJ,GAAI,MACJ,GAAI,KACJ,GAAI,MACJ,GAAI,MACJ,GAAI,SACJ,GAAI,OACJ,GAAI,WACJ,GAAI,OACJ,GAAI,OACJ,GAAI,SACJ,GAAI,MACJ,GAAI,OACJ,GAAI,OACJ,GAAI,SACJ,GAAI,QACJ,GAAI,SACJ,GAAI,SACJ,GAAI,OACJ,GAAI,OACJ,GAAI,SACJ,GAAI,KACJ,GAAI,KACJ,GAAI,OACJ,GAAI,MACJ,GAAI,OACJ,GAAI,OACJ,GAAI,MACJ,GAAI,OACJ,GAAI,QACJ,GAAI,OACJ,GAAI,OACJ,GAAI,MACJ,GAAI,QACJ,GAAI,OACJ,GAAI,UACJ,GAAI,OACJ,GAAI,SACJ,GAAI,SACJ,GAAI,MACJ,GAAI,QACJ,GAAI,OACJ,GAAI,UACJ,GAAI,SACJ,GAAI,SACJ,GAAI,SACJ,GAAI,WACJ,GAAI,SACJ,GAAI,YACJ,GAAI,QACJ,GAAI,OACJ,GAAI,OACJ,GAAI,OACJ,GAAI,WACJ,GAAI,SACJ,GAAI,QACJ,GAAI,UACJ,GAAI,SACJ,GAAI,YACJ,GAAI,cACJ,GAAI,YACJ,GAAI,SACJ,GAAI,QACJ,GAAI,OACJ,GAAI,OACJ,IAAK,SACL,IAAK,UACL,IAAK,UACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,cACL,IAAK,WACL,IAAK,YACL,IAAK,MACL,IAAK,OACL,IAAK,OACL,IAAK,QACL,IAAK,QACL,IAAK,SACL,IAAK,OACL,IAAK,QACL,IAAK,QACL,IAAK,OACL,IAAK,UACL,IAAK,aACL,IAAK,OACL,IAAK,QACL,IAAK,YACL,IAAK,OACL,IAAK,OACL,IAAK,QACL,IAAK,SACL,IAAK,WACL,IAAK,UACL,IAAK,IACL,IAAK,IACL,IAAK,QACL,IAAK,SACL,IAAK,QACL,IAAK,UACL,IAAK,QACL,IAAK,WACL,IAAK,SACL,IAAK,OACL,IAAK,YACL,IAAK,YACL,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,WACL,IAAK,WACL,IAAK,OACL,IAAK,UACL,IAAK,WACL,IAAK,cACL,IAAK,iBACL,IAAK,gBACL,IAAK,iBACL,IAAK,WACL,IAAK,cACL,IAAK,iBACL,IAAK,iBACL,IAAK,aACL,IAAK,QACL,IAAK,UACL,IAAK,WACL,IAAK,QACL,IAAK,QACL,IAAK,OACL,IAAK,OACL,IAAK,SACL,IAAK,aACL,IAAK,MACL,IAAK,QACL,IAAK,QACL,IAAK,OACL,IAAK,WACL,IAAK,UACL,IAAK,OACL,IAAK,UACL,IAAK,YACL,IAAK,UACL,IAAK,OACL,IAAK,UACL,IAAK,UACL,IAAK,OACL,IAAK,WACL,IAAK,gBACL,IAAK,aACL,IAAK,eACL,IAAK,WACL,IAAK,YACL,IAAK,WACL,IAAK,OACL,IAAK,SACL,IAAK,OACL,IAAK,UACL,IAAK,QACL,IAAK,QACL,IAAK,YACL,IAAK,UACL,IAAK,aACL,IAAK,aACL,IAAK,WACL,IAAK,QACL,IAAK,UACL,IAAK,WACL,IAAK,QACL,IAAK,SACL,IAAK,OACL,IAAK,OACL,IAAK,UACL,IAAK,YACL,IAAK,MACL,IAAK,OACL,IAAK,OACL,IAAK,UACL,IAAK,UACL,IAAK,QACL,IAAK,MACL,IAAK,OACL,IAAK,UACL,IAAK,SACL,IAAK,WACL,IAAK,SACL,IAAK,aACL,IAAK,OACL,IAAK,OACL,IAAK,OACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,OACL,IAAK,gBACL,IAAK,WACL,IAAK,aACL,IAAK,cACL,IAAK,gBACL,IAAK,kBACL,IAAK,gBACL,IAAK,WACL,IAAK,OACL,IAAK,QACL,IAAK,aACL,IAAK,KACL,IAAK,QACL,IAAK,SACL,IAAK,YACL,IAAK,cACL,IAAK,iBACL,IAAK,OACL,IAAK,gBACL,IAAK,WACL,IAAK,cACL,IAAK,WACL,IAAK,iBACL,IAAK,aACL,IAAK,YACL,IAAK,eACL,IAAK,eACL,IAAK,cACL,IAAK,aACL,IAAK,cACL,IAAK,eACL,IAAK,SACL,IAAK,WACL,IAAK,UACL,IAAK,UACL,IAAK,YACL,IAAK,UACL,IAAK,SACL,IAAK,SACL,IAAK,aACL,IAAK,YACL,IAAK,OACL,IAAK,YACL,IAAK,QACL,IAAK,OACL,IAAK,SACL,IAAK,YACL,IAAK,QACL,IAAK,YACL,IAAK,WACL,IAAK,UACL,IAAK,cACL,IAAK,cACL,IAAK,SACL,IAAK,eACL,IAAK,WACL,IAAK,YACL,IAAK,UACL,IAAK,WACL,IAAK,cACL,IAAK,MACL,IAAK,SACL,IAAK,UACL,IAAK,QACL,IAAK,UACL,IAAK,UACL,IAAK,WACL,IAAK,WACL,IAAK,UACL,IAAK,SACL,IAAK,QACL,IAAK,WACL,IAAK,QACL,IAAK,YACL,IAAK,UACL,IAAK,MACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,OACL,IAAK,QACL,IAAK,UACL,IAAK,UACL,IAAK,QACL,IAAK,OACL,IAAK,OACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,WACL,IAAK,aACL,IAAK,cACL,IAAK,OACL,IAAK,WACL,IAAK,OACL,IAAK,gBACL,IAAK,YACL,IAAK,cACL,IAAK,QACL,IAAK,iBACL,IAAK,kBACL,IAAK,kBACL,IAAK,iBACL,IAAK,UACL,IAAK,UACL,IAAK,WACL,IAAK,QACL,IAAK,UACL,IAAK,aACL,IAAK,eACL,IAAK,oBACL,IAAK,QACL,IAAK,UACL,IAAK,aACL,IAAK,eACL,IAAK,QACL,IAAK,cACL,IAAK,cACL,IAAK,WACL,IAAK,eACL,IAAK,YACL,IAAK,WACL,IAAK,WACL,IAAK,OACL,IAAK,OACL,IAAK,UACL,IAAK,QACL,IAAK,SACL,IAAK,OACL,IAAK,WACL,IAAK,gBACL,IAAK,YACL,IAAK,kBACL,IAAK,eACL,IAAK,gBACL,IAAK,mBACL,IAAK,cACL,IAAK,gBACL,IAAK,cACL,IAAK,WACL,IAAK,MACL,IAAK,YACL,IAAK,aACL,IAAK,qBACL,IAAK,mBACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,QACL,IAAK,QACL,IAAK,UACL,IAAK,QACL,IAAK,SACL,IAAK,OACL,IAAK,SACL,IAAK,UACL,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,aACL,IAAK,cACL,IAAK,YACL,IAAK,SACL,IAAK,UACL,IAAK,QACL,IAAK,YACL,IAAK,YACL,IAAK,aACL,IAAK,SACL,IAAK,WACL,IAAK,QACL,IAAK,SACL,IAAK,SACL,IAAK,QACL,IAAK,SACL,IAAK,MACL,IAAK,OACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,OACL,IAAK,OACL,IAAK,WACL,IAAK,WACL,IAAK,UACL,IAAK,WACL,IAAK,OACL,IAAK,YACL,IAAK,YACL,IAAK,UACL,IAAK,aACL,IAAK,aACL,IAAK,QACL,IAAK,QACL,IAAK,WACL,IAAK,WACL,IAAK,UACL,IAAK,SACL,IAAK,WACL,IAAK,UACL,IAAK,QACL,IAAK,UACL,IAAK,WACL,IAAK,YACL,IAAK,WACL,IAAK,aACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,WACL,IAAK,YACL,IAAK,YACL,IAAK,YACL,IAAK,YACL,IAAK,YACL,IAAK,cACL,IAAK,UACL,IAAK,YACL,IAAK,WACL,IAAK,UACL,IAAK,UACL,IAAK,UACL,IAAK,WACL,IAAK,UACL,IAAK,cACL,IAAK,MACL,IAAK,cACL,IAAK,MACL,IAAK,aACL,IAAK,gBACL,IAAK,UACL,IAAK,eACL,IAAK,UACL,IAAK,WACL,IAAK,SACL,IAAK,YACL,IAAK,cAEHD,IAAW,CACb,EAAG,EACH,EAAG,EACH,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,GAAI,EACJ,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL,IAAK,EACL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AAK,MAAMgue,YAAY,mDAAmD,CAAChue,KAAK,SAASgue,YAAY,wDAAwD,CAAChue,KAAK,MAAMgue,YAAY,oDAAoD,CAAChue,KAAK,QAAQgue,YAAY,6FAA6F,CAAChue,KAAK,QAAQgue,YAAY,oCAAoC,CAAChue,KAAK,OAAOgue,YAAY,yDAAyD,CAAChue,KAAK,QAAQgue,YAAY,sCAAsC,CAAChue,KAAK,UAAUgue,YAAY,iFAAiF,CAAChue,KAAK,OAAOgue,YAAY,wCAAwC,CAAChue,KAAK,KAAKgue,YAAY,wCAAwC,CAAChue,KAAK,UAAUgue,YAAY,oHAAoH,CAAChue,KAAK,QAAQgue,YAAY,qDAAqD,CAAChue,KAAK,WAAWgue,YAAY,qHAAqH,CAAChue,KAAK,QAAQgue,YAAY,8HAA8H,CAAChue,KAAK,UAAUgue,YAAY,qHAAqH,CAAChue,KAAK,OAAOgue,YAAY,sDAAsD,CAAChue,KAAK,MAAMgue,YAAY,sDAAsD,CAAChue,KAAK,KAAKgue,YAAY,8CAA8C,CAAChue,KAAK,QAAQgue,YAAY,+BAA+B,CAAChue,KAAK,MAAMgue,YAAY,qDAAqD,CAAChue,KAAK,MAAMgue,YAAY,oGAAoG,CAAChue,KAAK,MAAMgue,YAAY,qDAAqD,CAAChue,KAAK,MAAMgue,YAAY,wCAAwC,CAAChue,KAAK,QAAQgue,YAAY,wCAAwC,CAAChue,KAAK,MAAMgue,YAAY,uCAAuC,CAAChue,KAAK,MAAMgue,YAAY,2DAA2D,CAAChue,KAAK,KAAKgue,YAAY,yCAAyC,CAAChue,KAAK,KAAKgue,YAAY,4BAA4B,CAAChue,KAAK,QAAQgue,YAAY,qDAAqD,CAAChue,KAAK,UAAUgue,YAAY,6BAA6B,CAAChue,KAAK,SAASgue,YAAY,8DAA8D,CAAChue,KAAK,OAAOgue,YAAY,4CAA4C,CAAChue,KAAK,OAAOgue,YAAY,sDAAsD,CAAChue,KAAK,OAAOgue,YAAY,uDAAuD,CAAChue,KAAK,UAAUgue,YAAY,oCAAoC,CAAChue,KAAK,OAAOgue,YAAY,yCAAyC,CAAChue,KAAK,QAAQgue,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WAAQ,EAEvB/K,IAAQN,GAAWO,MAAMD,KACxBzU,KAAK,KAAM0ouB,KACTv0tB,IFQIi4tB,CAAmBj/tB,IAEzB,GAAMA,IAA6C,mBAA5BA,GAAO89tB,OAC/B,MGnB4BoB,KAAcl4tB,KAC9C,MAAMipD,GAAWivqB,GAASpB,SAC1B,OAAG,CACC,IAAIllsB,GACJ,IACIA,GAAOq3B,GAASzoD,MAKpB,CAJA,MACOF,IACHN,UAAWO,MAAMD,IACVN,EACX,CACA,GAAI4xB,GAAKs3B,KAAM,CACXlpD,GAAWqL,WACX,MAGJ,GADArL,GAAWQ,KAAKoxB,GAAKh+B,OACjBoM,GAAWyP,OACX,MAGR,MAA+B,mBAApBw5C,GAAS+mW,QAChBhwZ,GAAWhQ,IAAI,KACPi5D,GAAS+mW,QACT/mW,GAAS+mW,QAAM,GAIpBhwZ,IHRIm4tB,CAAoBn/tB,IAE1B,CAED,MAAMu9M,GAAO,mBADCkmQ,MAASzjd,IAAU,oBAAuB,IAAGA,iGAG3D,MAAM,IAAI40iB,UAAUr3V,GAAG,sDI1BxB,MAAMyghB,EAAoB5gsB,GAAWp2B,KACxC,QAAS9T,GAAI,EAAG+rB,EAAMme,EAAMjqC,OAAQD,GAAI+rB,IAAQjY,GAAWyP,OAAQvjB,KAC/D8T,GAAWQ,KAAK41B,EAAMlqC,KAE1B8T,GAAWqL,UAAQ,qBCJvB,OACA,YACA,eACA,WACA,eACA,kBACA,eACA,kBACA,eACA,kBACA,eACA,kBACA,eACA,kBACA,eACA,kBACA,cACA,YACA,eACA,WACA,cACA,YACA,eACA,YACA,eACA,YACA,cACA,iBACA,eACA,YACA,eACA,YACA,eACA,YACA,eACA,YACA,eACA,YACA,eACA,YACA,eACA,YACA,eACA,YACA,eACA,YACA,eACA,kBACA,eACA,kBACA,eACA,YACA,eACA,YACA,eACA,eACA,kBACA,eACA,kBACA,eACA,kBACA,cACA,iBACA,eACA,kBACA,cACA,iBACA,eACA,kBACA,eACA,kBACA,YACA,eACA,YACA,eACA,kBACA,eACA,kBACA,eACA,kBACA,eACA,YACA,eACA,WACA,cACA,YACA,eACA,YACA,eACA,aACA,gBACA,YACA,eACA,YACA,eACA,kBACA,eACA,kBACA,eACA,WACA,cACA,YACA,eACA,YACA,eACA,YACA,eACA,kBACA,qBACA,kBACA,qBACA,YACA,eACA,YACA,eACA,WACA,cACA,WACA,cACA,YACA,eACA,eACA,kBACA,YACA,eACA,YACA,eACA,YACA,eACA,kBACA,eACA,YACA,eACA,YACA,eACA,YACA,eACA,YACA,eACA,YACA,eACA,YACA,eACA,WACA,cACA,YACA,eACA,YACA,eACA,YACA,eACA,YACA,eACA,UACA,aACA,YACA,eACA,YACA,eACA,YACA,eACA,WACA,cACA,YACA,eACA,YACA,eACA,YACA,eACA,YACA,eACA,kBACA,eACA,YACA,eACA,YACA,eACA,YACA,eACA,YACA,eACA,WACA,eACA,kBACA,cACA,YACA,eACA,eACA,kBACA,cACA,iBACA,YACA,eACA,YACA,eACA,kBACA,eACA,YACA,eACA,YACA,eACA,WACA,cACA,YACA,eACA,YACA,eACA,YACA,eACA,WACA,cACA,YACA,eACA,YACA,iBACA,oBACA,eACA,YACA,eACA,WACA,cACA,YACA,eACA,YACA,eACA,YACA,eACA,aACA,gBACA,YACA,eACA,YACA,eACA,YACA,eACA,eACA,kBACA,aACA,gBACA,YACA,eACA,aACA,gBACA,YACA,kBACA,qBACA,eACA,cACA,iBACA,YACA,eACA,YACA,eACA,YACA,iBACA,oBACA,eACA,YACA,eACA,kBACA,qBACA,YACA,eACA,eACA,kBACA,eACA,kBACA,eACA,kBACA,eACA,mBAIA,eACA,aACA,YACA,CACA,gBACA,gBACA,+CACA,gCACAxb,EAEA,YACA,CACAuouB,kBACA,qBACA,EACAA,aACAtohB,aACAsohB,q2EC1RA,IAAIC,EAAO,KACX,SAASC,KACL,OAAOD,CACX,CACA,SAASE,GAAkBC,IAClBH,IACDA,EAAOG,GAEf,CAQA,MAAMC,GAUN,MAAMpsuB,GAAW,IAAInB,iBAAe,iBAEpC,IAsBMwtuB,GAAgB,MAAtB,MAAMA,GACF3urB,UAAUitlB,IACN,MAAM,IAAI7ooB,MAAM,kBACpB,EAEJuquB,UAAiB/ruB,UAAI,4BAAwF+ruB,GAAgB,EAC7HA,GAAiB9ruB,WADkFC,+BAAE,OACY6ruB,GAAgB5ruB,0BASjI,SAAS6ruB,KACL,SAAOt7tB,sBAASu7tB,GACpB,CAXuKD,EAA0B,aAAlD,aANzID,EAAgB,KAwBtB,MAAMtorB,GAAuB,IAAIllD,iBAAe,wBAChD,IAOM0tuB,GAAuB,MAA7B,MAAMA,WAAgCF,GAClCnxuB,YAAY8G,IACR7G,QACAE,KAAK2G,KAAOA,GACZ3G,KAAKmxuB,UAAYnvuB,OAAOomC,SACxBpoC,KAAKoxuB,SAAWpvuB,OAAOgxO,OAC3B,CACAq+f,qBACI,OAAOT,KAAS1uuB,YAAYlC,KAAK2G,KACrC,CACA2quB,WAAWz2tB,IACP,MAAM7Y,GAAS4uuB,KAAS9uuB,qBAAqB9B,KAAK2G,KAAM,UACxD3E,UAAOvB,iBAAiB,WAAYoa,IAAI,GACjC,IAAM7Y,GAAOtB,oBAAoB,WAAYma,GACxD,CACA02tB,aAAa12tB,IACT,MAAM7Y,GAAS4uuB,KAAS9uuB,qBAAqB9B,KAAK2G,KAAM,UACxD3E,UAAOvB,iBAAiB,aAAcoa,IAAI,GACnC,IAAM7Y,GAAOtB,oBAAoB,aAAcma,GAC1D,CACI1Y,WACA,OAAOnC,KAAKmxuB,UAAUhvuB,IAC1B,CACIm/iB,eACA,OAAOthjB,KAAKmxuB,UAAU7vL,QAC1B,CACIuB,eACA,OAAO7ijB,KAAKmxuB,UAAUtuL,QAC1B,CACIxxa,WACA,OAAOrxI,KAAKmxuB,UAAU9/lB,IAC1B,CACIxuI,eACA,OAAO7C,KAAKmxuB,UAAUtuuB,QAC1B,CACIuhN,aACA,OAAOpkN,KAAKmxuB,UAAU/shB,MAC1B,CACI+rF,WACA,OAAOnwS,KAAKmxuB,UAAUhhc,IAC1B,CACIttS,aAAS2uuB,IACTxxuB,KAAKmxuB,UAAUtuuB,SAAW2uuB,EAC9B,CACAC,UAAU/otB,GAAOnT,GAAO9S,IAChBivuB,KACA1xuB,KAAKoxuB,SAASK,UAAU/otB,GAAOnT,GAAO9S,IAGtCzC,KAAKmxuB,UAAUhhc,KAAO1tS,EAE9B,CACAw/C,aAAav5B,GAAOnT,GAAO9S,IACnBivuB,KACA1xuB,KAAKoxuB,SAASnvrB,aAAav5B,GAAOnT,GAAO9S,IAGzCzC,KAAKmxuB,UAAUhhc,KAAO1tS,EAE9B,CACAy9I,UACIlgJ,KAAKoxuB,SAASlxlB,SAClB,CACAyN,OACI3tJ,KAAKoxuB,SAASzjlB,MAClB,CACAtrG,UAAUitlB,GAAmB,GACzBtvoB,KAAKoxuB,SAASlvrB,GAAGotlB,GACrB,CACA5vlB,WACI,OAAO1/C,KAAKoxuB,SAAS1otB,KACzB,EAEJwotB,UAAwBjsuB,UAAI,4BAAwFisuB,IApGjB/ruB,qBAoG0DR,IAAQ,EACrKusuB,GAAwBhsuB,WArG2EC,+BAAE,OAqGmB+ruB,GAAuB9ruB,0BAe/I,SAASusuB,KACL,OAAO,IAAIT,MAAwBv7tB,sBAAShR,IAChD,CAjBqLgtuB,EAA6B,aAArD,aA1EvJT,EAAuB,KAsF7B,SAASQ,KACL,QAAS1vuB,OAAOgxO,QAAQy+f,SAC5B,CAcA,SAASG,GAAcvupB,GAAO73E,IAC1B,GAAoB,GAAhB63E,GAAM5+E,OACN,OAAO+G,GAEX,GAAkB,GAAdA,GAAI/G,OACJ,OAAO4+E,GAEX,IAAIwupB,GAAU,EAOd,OANIxupB,GAAMyupB,SAAS,MACfD,KAEArmuB,GAAIka,WAAW,MACfmstB,KAEW,GAAXA,GACOxupB,GAAQ73E,GAAIiqB,UAAU,GAElB,GAAXo8sB,GACOxupB,GAAQ73E,GAEZ63E,GAAQ,IAAM73E,EACzB,CAUA,SAASumuB,GAAmBtvuB,IACxB,MAAMy4B,GAAQz4B,GAAIy4B,MAAM,UAClB82sB,GAAa92sB,IAASA,GAAM7pB,OAAS5O,GAAIgC,OAE/C,OAAOhC,GAAIsD,MAAM,EADOisuB,IAAsC,MAAxBvvuB,GAAIuvuB,GAAa,GAAa,EAAI,IACjCvvuB,GAAIsD,MAAMisuB,GACrD,CAQA,SAASC,GAAqBp9tB,IAC1B,OAAOA,IAAwB,MAAdA,GAAO,GAAa,IAAMA,GAASA,EACxD,CAEA,IAiBMmzC,GAAgB,MAAtB,MAAMA,GACF3F,UAAUitlB,IACN,MAAM,IAAI7ooB,MAAM,kBACpB,EAEJuhD,UAAiB/iD,UAAI,4BAAwF+iD,GAAgB,EAC7HA,GAAiB9iD,WAxMkFC,+BAAE,OAwMY6iD,GAAgB5iD,0BAAkC,EAAMsc,UAAOwmC,EAAqB,aAAtD,SANzIF,EAAgB,KAkCtB,MAAMkqrB,GAAgB,IAAI1uuB,iBAAe,eACzC,IA+BM0kD,EAAoB,MAA1B,MAAMA,WAA6BF,GAC/BnoD,YAAYsyuB,GAAmBhwuB,IAC3BrC,QACAE,KAAKmyuB,kBAAoBA,GACzBnyuB,KAAKoyuB,mBAAqB,GAC1BpyuB,KAAKqyuB,UAAYlwuB,IAAQnC,KAAKmyuB,kBAAkBd,uBAAkB,EAC9D3vtB,UAAO/c,IAAUyjC,UAAUyxI,QAAU,EAC7C,CAEAnyK,cACI,KAAO1H,KAAKoyuB,mBAAmB3tuB,QAC3BzE,KAAKoyuB,mBAAmBphuB,KAAxBhR,EAER,CACAsxuB,WAAWz2tB,IACP7a,KAAKoyuB,mBAAmBxpuB,KAAK5I,KAAKmyuB,kBAAkBb,WAAWz2tB,IAAK7a,KAAKmyuB,kBAAkBZ,aAAa12tB,IAC5G,CACA3Y,cACI,OAAOlC,KAAKqyuB,SAChB,CACA3urB,mBAAmBwqW,IACf,OAAO0jV,GAAc5xuB,KAAKqyuB,UAAWnkV,GACzC,CACA/4X,KAAKm9sB,IAAc,GACf,MAAMzvuB,GAAW7C,KAAKmyuB,kBAAkBtvuB,SAAWovuB,GAAqBjyuB,KAAKmyuB,kBAAkB/thB,QACzF+rF,GAAOnwS,KAAKmyuB,kBAAkBhic,KACpC,OAAOA,IAAQmic,GAAe,GAAEzvuB,KAAWstS,KAASttS,EACxD,CACA4uuB,UAAU/otB,GAAOnT,GAAO9S,GAAKw1B,IACzB,MAAMs6sB,GAAcvyuB,KAAK0jD,mBAAmBjhD,GAAMwvuB,GAAqBh6sB,KACvEj4B,KAAKmyuB,kBAAkBV,UAAU/otB,GAAOnT,GAAOg9tB,GACnD,CACAtwrB,aAAav5B,GAAOnT,GAAO9S,GAAKw1B,IAC5B,MAAMs6sB,GAAcvyuB,KAAK0jD,mBAAmBjhD,GAAMwvuB,GAAqBh6sB,KACvEj4B,KAAKmyuB,kBAAkBlwrB,aAAav5B,GAAOnT,GAAOg9tB,GACtD,CACArylB,UACIlgJ,KAAKmyuB,kBAAkBjylB,SAC3B,CACAyN,OACI3tJ,KAAKmyuB,kBAAkBxklB,MAC3B,CACAjuG,WACI,OAAO1/C,KAAKmyuB,kBAAkBzyrB,UAClC,CACA2C,UAAUitlB,GAAmB,GACzBtvoB,KAAKmyuB,kBAAkB9vrB,YAAYitlB,GACvC,EAEJpnlB,UAAqBjjD,UAAI,4BAAwFijD,IArTd/iD,qBAqToD6ruB,IArTpD7ruB,qBAqTiF+suB,GAAa,KACjMhqrB,GAAqBhjD,WAtT8EC,+BAAE,OAsTgB+iD,GAAoB9iD,QAApB8iD,GAAoB,qBAAc,SAlDjJA,EAAoB,KA+EpBD,EAAoB,MAA1B,MAAMA,WAA6BD,GAC/BnoD,YAAYsyuB,GAAmBE,IAC3BvyuB,QACAE,KAAKmyuB,kBAAoBA,GACzBnyuB,KAAKqyuB,UAAY,GACjBryuB,KAAKoyuB,mBAAqB,GACT,MAAbC,KACAryuB,KAAKqyuB,UAAYA,GAEzB,CAEA3quB,cACI,KAAO1H,KAAKoyuB,mBAAmB3tuB,QAC3BzE,KAAKoyuB,mBAAmBphuB,KAAxBhR,EAER,CACAsxuB,WAAWz2tB,IACP7a,KAAKoyuB,mBAAmBxpuB,KAAK5I,KAAKmyuB,kBAAkBb,WAAWz2tB,IAAK7a,KAAKmyuB,kBAAkBZ,aAAa12tB,IAC5G,CACA3Y,cACI,OAAOlC,KAAKqyuB,SAChB,CACAl9sB,KAAKm9sB,IAAc,GAGf,IAAIn9sB,GAAOn1B,KAAKmyuB,kBAAkBhic,KAClC,OAAY,MAARh7Q,KACAA,GAAO,KACJA,GAAK1wB,OAAS,EAAI0wB,GAAKM,UAAU,GAAKN,EACjD,CACAuuB,mBAAmBwqW,IACf,MAAMzrZ,GAAMmvuB,GAAc5xuB,KAAKqyuB,UAAWnkV,IAC1C,OAAOzrZ,GAAIgC,OAAS,EAAK,IAAMhC,GAAOA,EAC1C,CACAgvuB,UAAU/otB,GAAOnT,GAAO4f,GAAM8C,IAC1B,IAAIx1B,GAAMzC,KAAK0jD,mBAAmBvuB,GAAO88sB,GAAqBh6sB,KAC5C,GAAdx1B,GAAIgC,SACJhC,GAAMzC,KAAKmyuB,kBAAkBtvuB,UAEjC7C,KAAKmyuB,kBAAkBV,UAAU/otB,GAAOnT,GAAO9S,GACnD,CACAw/C,aAAav5B,GAAOnT,GAAO4f,GAAM8C,IAC7B,IAAIx1B,GAAMzC,KAAK0jD,mBAAmBvuB,GAAO88sB,GAAqBh6sB,KAC5C,GAAdx1B,GAAIgC,SACJhC,GAAMzC,KAAKmyuB,kBAAkBtvuB,UAEjC7C,KAAKmyuB,kBAAkBlwrB,aAAav5B,GAAOnT,GAAO9S,GACtD,CACAy9I,UACIlgJ,KAAKmyuB,kBAAkBjylB,SAC3B,CACAyN,OACI3tJ,KAAKmyuB,kBAAkBxklB,MAC3B,CACAjuG,WACI,OAAO1/C,KAAKmyuB,kBAAkBzyrB,UAClC,CACA2C,UAAUitlB,GAAmB,GACzBtvoB,KAAKmyuB,kBAAkB9vrB,YAAYitlB,GACvC,EAEJrnlB,UAAqBhjD,UAAI,4BAAwFgjD,IAhZd9iD,qBAgZoD6ruB,IAhZpD7ruB,qBAgZiF+suB,GAAa,KACjMjqrB,GAAqB/iD,WAjZ8EC,+BAAE,OAiZgB8iD,GAAoB7iD,QAApB6iD,GAAoB,YA9DnIA,EAAoB,KAoGpB7H,EAAQ,MAAd,MAAMA,GACFvgD,YAAY8iD,IAER3iD,KAAKsuuB,SAAW,IAAIvmsB,eAEpB/nC,KAAKwyuB,oBAAsB,GAE3BxyuB,KAAKyyuB,uBAAyB,KAC9BzyuB,KAAK0yuB,kBAAoB/vrB,GACzB,MAAMgwrB,GAAW3yuB,KAAK0yuB,kBAAkBxwuB,cAOxClC,KAAK4yuB,UA+Nb,SAASC,EAAaF,IAOlB,GADuB,IAAI9xqB,OAAO,iBAAkB19C,KAAKwvtB,IACtC,CACf,MAAM,CAAG9vuB,IAAY8vuB,GAAS9huB,MAAM,cACpC,OAAOhO,GAEX,OAAO8vuB,EACX,CA3OyBE,CAAad,GAAmBe,GAAgBH,MACjE3yuB,KAAK0yuB,kBAAkBpB,WAAY3oU,KAC/B3oa,KAAKsuuB,SAAS5ksB,KAAK,CACfjnC,IAAOzC,KAAKm1B,MAAK,GACjBnkB,KAAO,EACP0X,MAASigZ,GAAGjgZ,MACZ/d,KAAQg+Z,GAAGh+Z,MACd,EAET,CAEAjD,cACI1H,KAAKyyuB,wBAAwBtqtB,cAC7BnoB,KAAKwyuB,oBAAsB,EAC/B,CAUAr9sB,KAAKm9sB,IAAc,GACf,OAAOtyuB,KAAKmoO,UAAUnoO,KAAK0yuB,kBAAkBv9sB,KAAKm9sB,IACtD,CAKA5yrB,WACI,OAAO1/C,KAAK0yuB,kBAAkBhzrB,UAClC,CAUAqC,qBAAqB5sB,GAAM6E,GAAQ,IAC/B,OAAOh6B,KAAKm1B,QAAUn1B,KAAKmoO,UAAUhzM,GAAO88sB,GAAqBj4sB,IACrE,CAQAmuM,UAAU1lO,IACN,OAAO29C,GAAS2xrB,mBA4JxB,SAASgB,GAAeC,GAAUvwuB,IAC9B,IAAKuwuB,KAAavwuB,GAAIijB,WAAWsttB,IAC7B,OAAOvwuB,GAEX,MAAMwwuB,GAAcxwuB,GAAIgzB,UAAUu9sB,GAASvuuB,QAC3C,MAAoB,KAAhBwuuB,IAAsB,CAAC,IAAK,IAAK,IAAK,KAAK57nB,SAAS47nB,GAAY,IACzDA,GAEJxwuB,EACX,CArK2CswuB,CAAe/yuB,KAAK4yuB,UAAWE,GAAgBrwuB,KACtF,CAWAihD,mBAAmBjhD,IACf,OAAIA,IAAkB,MAAXA,GAAI,KACXA,GAAM,IAAMA,IAETzC,KAAK0yuB,kBAAkBhvrB,mBAAmBjhD,GACrD,CAWAy/C,GAAG/sB,GAAM6E,GAAQ,GAAItR,GAAQ,MACzB1oB,KAAK0yuB,kBAAkBjB,UAAU/otB,GAAO,GAAIyM,GAAM6E,IAClDh6B,KAAKkzuB,0BAA0BlzuB,KAAK0jD,mBAAmBvuB,GAAO88sB,GAAqBj4sB,KAAStR,GAChG,CASAu5B,aAAa9sB,GAAM6E,GAAQ,GAAItR,GAAQ,MACnC1oB,KAAK0yuB,kBAAkBzwrB,aAAav5B,GAAO,GAAIyM,GAAM6E,IACrDh6B,KAAKkzuB,0BAA0BlzuB,KAAK0jD,mBAAmBvuB,GAAO88sB,GAAqBj4sB,KAAStR,GAChG,CAIAw3H,UACIlgJ,KAAK0yuB,kBAAkBxylB,SAC3B,CAIAyN,OACI3tJ,KAAK0yuB,kBAAkB/klB,MAC3B,CAaAtrG,UAAUitlB,GAAmB,GACzBtvoB,KAAK0yuB,kBAAkBrwrB,YAAYitlB,GACvC,CAQA6jG,YAAYt4tB,IACR,YAAK23tB,oBAAoB5puB,KAAKiS,IACzB7a,KAAKyyuB,yBACNzyuB,KAAKyyuB,uBAAyBzyuB,KAAKuY,UAAUgD,KACzCvb,KAAKkzuB,0BAA0B33tB,GAAE9Y,IAAK8Y,GAAEmN,MAAK,IAG9C,KACH,MAAM0qtB,GAAUpzuB,KAAKwyuB,oBAAoBthuB,QAAQ2J,IACjD7a,KAAKwyuB,oBAAoBrhuB,OAAOiiuB,GAAS,GACD,IAApCpzuB,KAAKwyuB,oBAAoB/tuB,SACzBzE,KAAKyyuB,wBAAwBtqtB,cAC7BnoB,KAAKyyuB,uBAAyB,MAG1C,CAEAS,0BAA0BzwuB,GAAM,GAAIimB,IAChC1oB,KAAKwyuB,oBAAoB7suB,QAAQkV,IAAMA,GAAGpY,GAAKimB,IACnD,CAcAnQ,UAAU86tB,GAAQC,GAASC,IACvB,OAAOvzuB,KAAKsuuB,SAAS/1tB,UAAU,CAAEO,KAAMu6tB,GAAQx6tB,MAAOy6tB,GAAS3vtB,SAAU4vtB,IAC7E,EASJnzrB,UAAS6xrB,qBAAuBA,GAUhC7xrB,GAASwxrB,cAAgBA,GAUzBxxrB,GAAS2xrB,mBAAqBA,GAC9B3xrB,GAASn7C,UAAI,4BAAwFm7C,IA5oBFj7C,qBA4oB4B6iD,IAAgB,EAC/I5H,GAASl7C,WA7oB0FC,+BAAE,OA6oBIi7C,GAAQh7C,0BASjH,SAASouuB,KACL,OAAO,IAAIpzrB,KAASzqC,sBAASqyC,IACjC,CAXmJwrrB,EAAc,aAAlC,SAtNzHpzrB,EAAQ,KA4Od,SAAS0yrB,GAAgBrwuB,IACrB,OAAOA,GAAImH,QAAQ,gBAAiB,GACxC,CAgBA,MAAM6puB,GAAgB,CAAEC,IAAO,MAACzluB,OAAWA,EAAW,GAAI0luB,IAAO,MAAC1luB,EAAW,SAAK,GAAI2luB,IAAO,MAAC3luB,OAAWA,EAAW,GAAI4luB,IAAO,MAAC5luB,EAAW,SAAK,GAAI6luB,IAAO,MAAC7luB,EAAW,MAAO8luB,IAAO,MAAC9luB,EAAW,KAAM+luB,IAAO,CAAC,KAAM,KAAMC,IAAO,MAAChmuB,EAAW,UAAMimuB,IAAO,MAACjmuB,EAAW,MAAOkmuB,IAAO,MAAClmuB,EAAW,KAAMmmuB,IAAO,MAACnmuB,EAAW,UAAMomuB,IAAO,MAACpmuB,OAAWA,EAAW,GAAIqmuB,IAAO,MAACrmuB,OAAWA,EAAW,GAAIsmuB,IAAO,MAACtmuB,EAAW,KAAMumuB,IAAO,MAACvmuB,EAAW,KAAMwmuB,IAAO,MAACxmuB,EAAW,MAAOymuB,IAAO,CAAC,MAAOC,IAAO,MAAC1muB,EAAW,KAAM2muB,IAAO,MAAC3muB,EAAW,KAAM4muB,IAAO,MAAC5muB,OAAWA,EAAW,GAAI6muB,IAAO,MAAC7muB,OAAWA,EAAW,GAAI8muB,IAAO,MAAC9muB,EAAW,KAAM+muB,IAAO,CAAC,MAAO,IAAK,GAAIC,IAAO,MAAChnuB,OAAWA,EAAW,GAAIinuB,IAAO,MAACjnuB,OAAWA,EAAW,GAAIknuB,IAAO,MAAClnuB,EAAW,IAAK,GAAImnuB,IAAO,CAAC,SAAO,QAAMC,IAAO,MAACpnuB,EAAW,IAAK,GAAIqnuB,IAAO,MAACrnuB,EAAW,SAAK,GAAIsnuB,IAAO,MAACtnuB,EAAW,KAAMunuB,IAAO,MAACvnuB,EAAW,KAAMwnuB,IAAO,MAACxnuB,EAAW,UAAM,GAAIynuB,IAAO,MAACznuB,OAAWA,EAAW,GAAI0nuB,IAAO,MAAC1nuB,EAAW,KAAM,GAAI2nuB,IAAO,MAAC3nuB,EAAW,KAAM4nuB,IAAO,MAAC5nuB,EAAW,SAAO6nuB,IAAO,MAAC7nuB,EAAW,SAAK,GAAI8nuB,IAAO,CAAC,UAAMC,IAAO,MAAC/nuB,EAAW,KAAMgouB,IAAO,MAAChouB,EAAW,QAAMiouB,IAAO,CAAC,QAAMC,IAAO,MAAClouB,EAAW,UAAMmouB,IAAO,MAACnouB,EAAW,YAAQoouB,IAAO,MAACpouB,EAAW,QAAMqouB,IAAO,MAACrouB,EAAW,KAAM,GAAIsouB,IAAO,MAACtouB,EAAW,KAAMuouB,IAAO,MAACvouB,EAAW,IAAK,GAAIwouB,IAAO,CAAC,MAAO,KAAMC,IAAO,MAACzouB,EAAW,KAAM0ouB,IAAO,MAAC1ouB,EAAW,MAAO2ouB,IAAO,MAAC3ouB,EAAW,KAAM,GAAI4ouB,IAAO,MAAC5ouB,EAAW,KAAM,GAAI6ouB,IAAO,CAAC,UAAMC,IAAO,CAAC,UAAMC,IAAO,MAAC/ouB,OAAWA,EAAW,GAAIgpuB,IAAO,MAAChpuB,OAAWA,EAAW,GAAIipuB,IAAO,MAACjpuB,EAAW,KAAM,GAAIkpuB,IAAO,MAAClpuB,OAAWA,EAAW,GAAImpuB,IAAO,MAACnpuB,EAAW,KAAMopuB,IAAO,MAACppuB,OAAWA,EAAW,GAAIqpuB,IAAO,CAAC,YAAKrpuB,EAAW,GAAIspuB,IAAO,MAACtpuB,EAAW,UAAMupuB,IAAO,MAACvpuB,EAAW,KAAM,GAAIwpuB,IAAO,MAACxpuB,EAAW,SAAK,GAAIypuB,IAAO,CAAC,cAAKzpuB,EAAW,GAAI0puB,IAAO,MAAC1puB,OAAWA,EAAW,GAAI2puB,IAAO,MAAC3puB,EAAW,KAAM4puB,IAAO,MAAC5puB,EAAW,UAAM6puB,IAAO,MAAC7puB,EAAW,SAAK,GAAI8puB,IAAO,MAAC9puB,EAAW,QAAM,GAAI+puB,IAAO,MAAC/puB,EAAW,MAAOgquB,IAAO,MAAChquB,EAAW,KAAMiquB,IAAO,MAACjquB,EAAW,MAAOkquB,IAAO,MAAClquB,OAAWA,EAAW,GAAImquB,IAAO,MAACnquB,EAAW,MAAOoquB,IAAO,MAACpquB,OAAWA,EAAW,GAAIqquB,IAAO,MAACrquB,EAAW,KAAM,GAAIsquB,IAAO,MAACtquB,OAAWA,EAAW,GAAIuquB,IAAO,MAACvquB,EAAW,IAAK,GAAIwquB,IAAO,MAACxquB,EAAW,SAAK,GAAIyquB,IAAO,MAACzquB,OAAWA,EAAW,GAAI0quB,IAAO,MAAC1quB,EAAW,KAAM,GAAI2quB,IAAO,CAAC,MAAO,KAAMC,IAAO,MAAC5quB,EAAW,MAAO6quB,IAAO,MAAC7quB,EAAW,KAAM8quB,IAAO,MAAC9quB,EAAW,UAAM+quB,IAAO,MAAC/quB,EAAW,MAAOgruB,IAAO,MAAChruB,EAAW,KAAM,GAAIiruB,IAAO,MAACjruB,EAAW,MAAOkruB,IAAO,CAAC,MAAO,KAAMC,IAAO,MAACnruB,OAAWA,EAAW,GAAIoruB,IAAO,CAAC,UAAMC,IAAO,MAACrruB,EAAW,KAAM,GAAIsruB,IAAO,MAACtruB,EAAW,WAAOuruB,IAAO,MAACvruB,EAAW,SAAK,GAAIwruB,IAAO,MAACxruB,EAAW,OAAQyruB,IAAO,MAACzruB,OAAWA,EAAW,GAAI0ruB,IAAO,MAAC1ruB,EAAW,UAAM2ruB,IAAO,MAAC3ruB,EAAW,KAAM,GAAI4ruB,IAAO,MAAC5ruB,EAAW,KAAM6ruB,IAAO,MAAC7ruB,EAAW,KAAM,GAAI8ruB,IAAO,MAAC9ruB,EAAW,KAAM+ruB,IAAO,MAAC/ruB,EAAW,QAAMgsuB,IAAO,MAAChsuB,OAAWA,EAAW,GAAIisuB,IAAO,MAACjsuB,OAAWA,EAAW,GAAIksuB,IAAO,MAAClsuB,OAAWA,EAAW,GAAImsuB,IAAO,MAACnsuB,EAAW,KAAMosuB,IAAO,MAACpsuB,EAAW,QAAMqsuB,IAAO,MAACrsuB,OAAWA,EAAW,GAAIssuB,IAAO,MAACtsuB,EAAW,MAAOusuB,IAAO,MAACvsuB,EAAW,OAAK,GAAIwsuB,IAAO,MAACxsuB,EAAW,UAAMysuB,IAAO,MAACzsuB,OAAWA,EAAW,GAAI0suB,IAAO,MAAC1suB,OAAWA,EAAW,GAAImvH,IAAO,MAACnvH,EAAW,MAAO2suB,IAAO,MAAC3suB,OAAWA,EAAW,GAAI4suB,IAAO,MAAC5suB,EAAW,UAAM6suB,IAAO,MAAC7suB,EAAW,KAAM8suB,IAAO,CAAC,MAAO,IAAK,GAAIC,IAAO,MAAC/suB,OAAWA,EAAW,GAAIgtuB,IAAO,MAAChtuB,EAAW,UAAMituB,IAAO,MAACjtuB,OAAWA,EAAW,GAAIktuB,IAAO,CAAC,KAAMC,IAAO,MAACntuB,OAAWA,EAAW,GAAIotuB,IAAO,MAACptuB,EAAW,KAAMqtuB,IAAO,MAACrtuB,OAAWA,EAAW,GAAIstuB,IAAO,MAACttuB,OAAWA,EAAW,GAAIutuB,IAAO,MAACvtuB,EAAW,KAAM,GAAIwtuB,IAAO,CAAC,cAAKxtuB,EAAW,GAAIytuB,IAAO,MAACztuB,OAAWA,EAAW,GAAI0tuB,IAAO,CAAC,YAAQ1tuB,EAAW,GAAI2tuB,IAAO,CAAC,MAAO,KAAMC,IAAO,CAAC,kBAAS5tuB,EAAW,GAAI6tuB,IAAO,CAAC,YAAQ7tuB,EAAW,GAAI8tuB,IAAO,CAAC,QAAMC,IAAO,MAAC/tuB,OAAWA,EAAW,GAAIguuB,IAAO,MAAChuuB,EAAW,KAAMiuuB,IAAO,MAACjuuB,OAAWA,EAAW,GAAIkuuB,IAAO,MAACluuB,EAAW,MAAOmuuB,IAAO,MAACnuuB,OAAWA,EAAW,IASpyH,IAAIouuB,GAAiB,OAAjBA,OAAiB,IAECA,GAAkBC,QAAa,GAAK,UACtDD,GAAkBA,GAAkBvoZ,QAAa,GAAK,UACtDuoZ,GAAkBA,GAAkB1oZ,SAAc,GAAK,WACvD0oZ,GAAkBA,GAAkBtoZ,WAAgB,GAAK,aALzDsoZ,IAAiB,GAgBjBE,GAAM,OAANA,OAAM,IAECA,GAAOC,KAAU,GAAK,OAC7BD,GAAOA,GAAOE,IAAS,GAAK,MAC5BF,GAAOA,GAAOG,IAAS,GAAK,MAC5BH,GAAOA,GAAOI,IAAS,GAAK,MAC5BJ,GAAOA,GAAOK,KAAU,GAAK,OAC7BL,GAAOA,GAAOtulB,MAAW,GAAK,QAP9BsulB,IAAM,GAkBNM,GAAS,OAATA,OAAS,IAECA,GAAU3nZ,OAAY,GAAK,SACrC2nZ,GAAUA,GAAUC,WAAgB,GAAK,aAHzCD,IAAS,GAYTE,GAAgB,OAAhBA,OAAgB,IAGCA,GAAiBC,OAAY,GAAK,SAEnDD,GAAiBA,GAAiBE,YAAiB,GAAK,cAExDF,GAAiBA,GAAiBG,KAAU,GAAK,OAEjDH,GAAiBA,GAAiBI,MAAW,GAAK,QATlDJ,IAAgB,GAsBhBK,EAAW,OAAXA,KAAW,IAMCA,EAAYD,MAAW,GAAK,QAKxCC,EAAYA,EAAYh1R,OAAY,GAAK,SAKzCg1R,EAAYA,EAAYC,KAAU,GAAK,OAKvCD,EAAYA,EAAYE,KAAU,GAAK,OArBvCF,GAAW,GAgCXG,EAAY,OAAZA,KAAY,IAOCA,EAAajB,QAAa,GAAK,UAM5CiB,EAAaA,EAAa9tG,MAAW,GAAK,QAK1C8tG,EAAaA,EAAa5tG,KAAU,GAAK,OAKzC4tG,EAAaA,EAAaC,YAAiB,GAAK,cAKhDD,EAAaA,EAAaE,SAAc,GAAK,WAK7CF,EAAaA,EAAaG,UAAe,GAAK,YAK9CH,EAAaA,EAAaI,YAAiB,GAAK,cAKhDJ,EAAaA,EAAaK,uBAA4B,GAAK,yBAK3DL,EAAaA,EAAaM,SAAc,GAAK,WAK7CN,EAAaA,EAAa/hgB,SAAc,GAAK,WAK7C+hgB,EAAaA,EAAaj5f,IAAS,IAAM,MAKzCi5f,EAAaA,EAAaO,cAAmB,IAAM,gBAKnDP,EAAaA,EAAaQ,gBAAqB,IAAM,kBAKrDR,EAAaA,EAAaS,cAAmB,IAAM,gBAzEnDT,GAAY,GAgFZU,EAAO,OAAPA,KAAO,IAECA,EAAQC,OAAY,GAAK,SACjCD,EAAQA,EAAQE,OAAY,GAAK,SACjCF,EAAQA,EAAQG,QAAa,GAAK,UAClCH,EAAQA,EAAQI,UAAe,GAAK,YACpCJ,EAAQA,EAAQK,SAAc,GAAK,WACnCL,EAAQA,EAAQM,OAAY,GAAK,SACjCN,EAAQA,EAAQO,SAAc,GAAK,WARnCP,GAAO,GAmBX,SAASQ,GAAYh/T,IACjB,SAAOi/T,wBAAgBj/T,IAAQk/T,iCACnC,CAYA,SAASC,GAAoBn/T,GAAQo/T,GAAWpmrB,IAC5C,MAAM/sD,MAAOgzuB,wBAAgBj/T,IAIvBq/T,GAAOC,EAHI,CACbrzuB,GAAKizuB,0CAAoCjzuB,GAAKizuB,+CAEPE,IAC3C,OAAOE,EAAoBD,GAAMrmrB,GACrC,CAaA,SAASumrB,GAAkBv/T,GAAQo/T,GAAWpmrB,IAC1C,MAAM/sD,MAAOgzuB,wBAAgBj/T,IAEvBvkJ,GAAO6jd,EADI,CAACrzuB,GAAKizuB,oCAA8BjzuB,GAAKizuB,yCACfE,IAC3C,OAAOE,EAAoB7jd,GAAMziO,GACrC,CAaA,SAASwmrB,GAAoBx/T,GAAQo/T,GAAWpmrB,IAC5C,MAAM/sD,MAAOgzuB,wBAAgBj/T,IAEvBtkJ,GAAS4jd,EADI,CAACrzuB,GAAKizuB,sCAAgCjzuB,GAAKizuB,2CACfE,IAC/C,OAAOE,EAAoB5jd,GAAQ1iO,GACvC,CAYA,SAASymrB,GAAkBz/T,GAAQhnX,IAG/B,OAAOsmrB,GADDI,EADOT,wBAAgBj/T,IACPk/T,8BACelmrB,GACzC,CAYA,SAAS2mrB,GAAwB3/T,IAE7B,SADai/T,wBAAgBj/T,IACjBk/T,uCAChB,CAUA,SAASU,GAAsB5/T,IAE3B,SADai/T,wBAAgBj/T,IACjBk/T,qCAChB,CAYA,SAASW,GAAoB7/T,GAAQhnX,IAEjC,OAAOsmrB,GADDrzuB,EAAOgzuB,wBAAgBj/T,IACGk/T,oCAA8BlmrB,GAClE,CAYA,SAAS8mrB,GAAoB9/T,GAAQhnX,IAEjC,OAAOsmrB,GADDrzuB,EAAOgzuB,wBAAgBj/T,IACGk/T,oCAA8BlmrB,GAClE,CAYA,SAAS+mrB,GAAwB//T,GAAQhnX,IAGrC,OAAOsmrB,GADDU,EADOf,wBAAgBj/T,IACGk/T,wCACelmrB,GACnD,CAWA,SAASinrB,GAAsBjgU,GAAQgrG,IACnC,MAAM/+gB,MAAOgzuB,wBAAgBj/T,IACvB/ia,GAAMhR,GAAKizuB,uCAAgCl0N,IACjD,UAAW/tgB,GAAQ,IAAa,CAC5B,GAAI+tgB,KAAW8yN,EAAaQ,gBACxB,OAAOryuB,GAAKizuB,uCAAgCpB,EAAajB,SAExD,GAAI7xN,KAAW8yN,EAAaS,cAC7B,OAAOtyuB,GAAKizuB,uCAAgCpB,EAAa9tG,MAAK,CAGtE,OAAO/ynB,EACX,CAoCA,SAASijuB,GAAsBlgU,GAAQ90a,IAEnC,SADa+zuB,wBAAgBj/T,IACjBk/T,uCAAgCh0uB,GAChD,CAYA,SAASi1uB,GAAwBngU,IAE7B,SADai/T,wBAAgBj/T,IACjBk/T,yCAAoC,IACpD,CAWA,SAASkB,GAAsBpgU,IAE3B,SADai/T,wBAAgBj/T,IACjBk/T,uCAAkC,IAClD,CAWA,SAASmB,GAAsBrgU,IAC3B,SAAOsgU,+BAAuBtgU,GAClC,CAeA,MAAMugU,GAAsBC,4BAC5B,SAASC,GAAcx0uB,IACnB,IAAKA,GAAKizuB,mCACN,MAAM,IAAIl4uB,MAAO,6CAA4CiF,GAAKizuB,kIAG1E,CAuBA,SAASwB,GAA6B1gU,IAClC,MAAM/za,MAAOgzuB,wBAAgBj/T,IAC7BygU,UAAcx0uB,KACAA,GAAKizuB,mCAA4B,IAAuD,IACzFp3uB,IAAKkzM,IACM,iBAATA,GACA2liB,EAAY3liB,IAEhB,CAAC2liB,EAAY3liB,GAAK,IAAK2liB,EAAY3liB,GAAK,KAEvD,CAkBA,SAAS4liB,GAAyB5gU,GAAQo/T,GAAWpmrB,IACjD,MAAM/sD,MAAOgzuB,wBAAgBj/T,IAC7BygU,GAAcx0uB,IACd,MAIM40uB,GAAavB,EAJI,CACnBrzuB,GAAKizuB,mCAA4B,GACjCjzuB,GAAKizuB,mCAA4B,IAEkBE,KAAc,GACrE,OAAOE,EAAoBuB,GAAY7nrB,KAAU,EACrD,CAQA,SAAS8nrB,EAAmB9gU,IAExB,SADai/T,wBAAgBj/T,IACjBk/T,uCAChB,CAcA,SAASI,EAAoBrzuB,GAAM2F,IAC/B,QAAS7M,GAAI6M,GAAO7M,IAAI,EAAIA,KACxB,UAAWkH,GAAKlH,IAAO,IACnB,OAAOkH,GAAKlH,IAGpB,MAAM,IAAIiC,MAAM,yCACpB,CAIA,SAAS25uB,EAAYp1tB,IACjB,MAAOo4J,GAAGtjJ,IAAK9U,GAAKna,MAAM,KAC1B,MAAO,CAAEqvsB,OAAQ98hB,GAAG+8hB,SAAUrgrB,GAClC,CAgBA,SAAS0gtB,EAAkB/uuB,GAAM08E,GAAQsxV,GAAS,MAC9C,MAAM+qG,GAlIV,SAASi2N,GAAoBhhU,IAEzB,SADai/T,wBAAgBj/T,IACjBk/T,mCAChB,CA+HqB8B,CAAoBhhU,IAAQhua,KAASgiuB,GAAchiuB,KAAS,GACvEivuB,GAAel2N,GAAS,GAC9B,MAAe,WAAXr8b,IAA+C,iBAAjBuypB,GACvBA,GAEJl2N,GAAS,IAAkC/4gB,EACtD,CAEA,MAAMkvuB,GAAgC,EAWtC,SAASC,GAA0BnvuB,IAC/B,IAAIovuB,GACJ,MAAMr2N,GAAWipN,GAAchiuB,IAC/B,OAAI+4gB,KACAq2N,GAASr2N,GAAS,IAEG,iBAAXq2N,GAAsBA,GAASF,EACjD,CAEA,MAAMG,GAAqB,wGAErBC,GAAgB,CAAC,EACjBC,GAAqB,oNAC3B,IAAIC,GAAS,OAATA,OAAS,IAECA,GAAU9D,MAAW,GAAK,QACpC8D,GAAUA,GAAUC,SAAc,GAAK,WACvCD,GAAUA,GAAU5D,KAAU,GAAK,OACnC4D,GAAUA,GAAUE,SAAc,GAAK,WALvCF,IAAS,GAOTG,GAAQ,OAARA,OAAQ,IAECA,GAASC,SAAc,GAAK,WACrCD,GAASA,GAASxvN,MAAW,GAAK,QAClCwvN,GAASA,GAASr4tB,KAAU,GAAK,OACjCq4tB,GAASA,GAASE,MAAW,GAAK,QAClCF,GAASA,GAASG,QAAa,GAAK,UACpCH,GAASA,GAASI,QAAa,GAAK,UACpCJ,GAASA,GAASK,kBAAuB,GAAK,oBAC9CL,GAASA,GAASzvN,IAAS,GAAK,MAThCyvN,IAAQ,GAWRM,GAAe,OAAfA,OAAe,IAECA,GAAgBC,WAAgB,GAAK,aACrDD,GAAgBA,GAAgBE,KAAU,GAAK,OAC/CF,GAAgBA,GAAgBG,OAAY,GAAK,SACjDH,GAAgBA,GAAgBI,KAAU,GAAK,OAL/CJ,IAAe,GA4BnB,SAASjuf,GAAWvnP,GAAOiiF,GAAQsxV,GAAQm5O,IACvC,IAAItumB,GA4mBR,SAASqpc,GAAOznf,IACZ,GAAIwgB,GAAOxgB,IACP,OAAOA,GAEX,GAAqB,iBAAVA,KAAuBygB,MAAMzgB,IACpC,OAAO,IAAI6c,KAAK7c,IAEpB,GAAqB,iBAAVA,GAAoB,CAE3B,GADAA,GAAQA,GAAMqN,OACV,kCAAkC4J,KAAKjX,IAAQ,CAQ/C,MAAOgpF,GAAGp1D,GAAI,EAAGyE,GAAI,GAAKr4B,GAAM2E,MAAM,KAAKtJ,IAAKgV,KAASA,IACzD,OAAO0zsB,GAAW/6nB,GAAGp1D,GAAI,EAAGyE,GAAC,CAEjC,MAAMw9sB,GAAW7irB,WAAWhzD,IAE5B,IAAKygB,MAAMzgB,GAAQ61uB,IACf,OAAO,IAAIh5tB,KAAKg5tB,IAEpB,IAAI7mtB,GACJ,GAAIA,GAAQhvB,GAAMgvB,MAAM4ltB,IACpB,OAaZ,SAASkB,GAAgB9mtB,IACrB,MAAMovB,GAAO,IAAIvhC,KAAK,GACtB,IAAIk5tB,GAAS,EACTC,GAAQ,EAEZ,MAAMC,GAAajntB,GAAM,GAAKovB,GAAK6lqB,eAAiB7lqB,GAAKgoP,YACnD8vc,GAAalntB,GAAM,GAAKovB,GAAK+3rB,YAAc/3rB,GAAKkoP,SAElDt3Q,GAAM,KACN+mtB,GAAS11pB,OAAOrxD,GAAM,GAAKA,GAAM,KACjCgntB,GAAQ31pB,OAAOrxD,GAAM,GAAKA,GAAM,MAEpCintB,GAAW9puB,KAAKiyC,GAAMiiC,OAAOrxD,GAAM,IAAKqxD,OAAOrxD,GAAM,IAAM,EAAGqxD,OAAOrxD,GAAM,KAC3E,MAAMkoJ,GAAI72F,OAAOrxD,GAAM,IAAM,GAAK+mtB,GAC5BnitB,GAAIysD,OAAOrxD,GAAM,IAAM,GAAKgntB,GAC5Bv4uB,GAAI4iF,OAAOrxD,GAAM,IAAM,GAIvBk6E,GAAKlqF,KAAKosF,MAA2C,IAArCp4C,WAAW,MAAQhkC,GAAM,IAAM,KACrDkntB,UAAW/puB,KAAKiyC,GAAM84H,GAAGtjJ,GAAGn2B,GAAGyrG,IACxB9qD,EACX,CAnCmB03rB,CAAgB9mtB,GAAK,CAGpC,MAAMovB,GAAO,IAAIvhC,KAAK7c,IACtB,IAAKwgB,GAAO49B,IACR,MAAM,IAAI7jD,MAAO,sBAAqByF,mBAE1C,OAAOo+C,EACX,CA/oBeqpc,CAAOznf,IAElBiiF,GADoBm0pB,GAAe7iU,GAAQtxV,KACnBA,GACxB,IACIjzD,GADAvqB,GAAQ,GAEZ,KAAOw9E,IAEH,IADAjzD,GAAQ8ltB,GAAmBjgrB,KAAKotB,KAC5BjzD,GAQC,CACDvqB,GAAM/H,KAAKulF,IACX,MAVO,CACPx9E,GAAQA,GAAM8J,OAAOygB,GAAMn1B,MAAM,IACjC,MAAMwvB,GAAO5kB,GAAMK,MACnB,IAAKukB,GACD,MAEJ44D,GAAS54D,GAIT,CAGR,IAAIgttB,GAAqBj4rB,GAAK+yO,oBAC1Bu7X,KACA2pF,GAAqBC,GAAiB5pF,GAAU2pF,IAChDj4rB,GAmkBR,SAASm4rB,GAAuBn4rB,GAAMsumB,GAAU5ypB,IAC5C,MAAM08uB,GAAe18uB,IAAU,EAAK,EAC9Bu8uB,GAAqBj4rB,GAAK+yO,oBAEhC,OATJ,SAASsld,GAAer4rB,GAAM61pB,IAC1B71pB,UAAO,IAAIvhC,KAAKuhC,GAAKj9B,YAChBolR,WAAWnoP,GAAKs7O,aAAeu6a,IAC7B71pB,EACX,CAKWq4rB,CAAer4rB,GAAMo4rB,IADLF,GAAiB5pF,GAAU2pF,IACWA,IACjE,CAxkBeE,CAAuBn4rB,GAAMsumB,IAAU,IAElD,IAAIl1oB,GAAO,GACX/S,UAAMhL,QAAQuG,KACV,MAAM02uB,GA8Td,SAASC,GAAiB10pB,IACtB,GAAI20pB,GAAa30pB,IACb,OAAO20pB,GAAa30pB,IAExB,IAAIkmM,GACJ,OAAQlmM,IAEJ,IAAK,IACL,IAAK,KACL,IAAK,MACDkmM,GAAY0ud,GAAcrB,GAAgBI,KAAM/E,GAAiBE,aACjE,MACJ,IAAK,OACD5od,GAAY0ud,GAAcrB,GAAgBI,KAAM/E,GAAiBG,MACjE,MACJ,IAAK,QACD7od,GAAY0ud,GAAcrB,GAAgBI,KAAM/E,GAAiBC,QACjE,MAEJ,IAAK,IACD3od,GAAY2ud,GAAW5B,GAASC,SAAU,EAAG,GAAG,GAAO,GACvD,MAEJ,IAAK,KACDhtd,GAAY2ud,GAAW5B,GAASC,SAAU,EAAG,GAAG,GAAM,GACtD,MAEJ,IAAK,MACDhtd,GAAY2ud,GAAW5B,GAASC,SAAU,EAAG,GAAG,GAAO,GACvD,MAEJ,IAAK,OACDhtd,GAAY2ud,GAAW5B,GAASC,SAAU,EAAG,GAAG,GAAO,GACvD,MAEJ,IAAK,IACDhtd,GAAY4ud,GAAwB,GACpC,MAGJ,IAAK,KACD5ud,GAAY4ud,GAAwB,GAAG,GACvC,MAGJ,IAAK,MACD5ud,GAAY4ud,GAAwB,GACpC,MAEJ,IAAK,OACD5ud,GAAY4ud,GAAwB,GACpC,MAEJ,IAAK,IACL,IAAK,IACD5ud,GAAY2ud,GAAW5B,GAASxvN,MAAO,EAAG,GAC1C,MACJ,IAAK,KACL,IAAK,KACDv9P,GAAY2ud,GAAW5B,GAASxvN,MAAO,EAAG,GAC1C,MAEJ,IAAK,MACDv9P,GAAY0ud,GAAcrB,GAAgBG,OAAQ9E,GAAiBE,aACnE,MACJ,IAAK,OACD5od,GAAY0ud,GAAcrB,GAAgBG,OAAQ9E,GAAiBG,MACnE,MACJ,IAAK,QACD7od,GAAY0ud,GAAcrB,GAAgBG,OAAQ9E,GAAiBC,QACnE,MAEJ,IAAK,MACD3od,GACI0ud,GAAcrB,GAAgBG,OAAQ9E,GAAiBE,YAAaJ,GAAUC,YAClF,MACJ,IAAK,OACDzod,GACI0ud,GAAcrB,GAAgBG,OAAQ9E,GAAiBG,KAAML,GAAUC,YAC3E,MACJ,IAAK,QACDzod,GACI0ud,GAAcrB,GAAgBG,OAAQ9E,GAAiBC,OAAQH,GAAUC,YAC7E,MAEJ,IAAK,IACDzod,GAAY6ud,GAAW,GACvB,MACJ,IAAK,KACD7ud,GAAY6ud,GAAW,GACvB,MAEJ,IAAK,IACD7ud,GAAY6ud,GAAW,GAAG,GAC1B,MAEJ,IAAK,IACD7ud,GAAY2ud,GAAW5B,GAASr4tB,KAAM,GACtC,MACJ,IAAK,KACDsrQ,GAAY2ud,GAAW5B,GAASr4tB,KAAM,GACtC,MAEJ,IAAK,IACL,IAAK,KACDsrQ,GAAY2ud,GAAW5B,GAASzvN,IAAK,GACrC,MACJ,IAAK,MACDt9P,GACI0ud,GAAcrB,GAAgBE,KAAM7E,GAAiBE,YAAaJ,GAAUC,YAChF,MACJ,IAAK,OACDzod,GAAY0ud,GAAcrB,GAAgBE,KAAM7E,GAAiBG,KAAML,GAAUC,YACjF,MACJ,IAAK,QACDzod,GACI0ud,GAAcrB,GAAgBE,KAAM7E,GAAiBC,OAAQH,GAAUC,YAC3E,MACJ,IAAK,SACDzod,GAAY0ud,GAAcrB,GAAgBE,KAAM7E,GAAiBI,MAAON,GAAUC,YAClF,MAEJ,IAAK,IACL,IAAK,KACL,IAAK,MACDzod,GAAY0ud,GAAcrB,GAAgBE,KAAM7E,GAAiBE,aACjE,MACJ,IAAK,OACD5od,GAAY0ud,GAAcrB,GAAgBE,KAAM7E,GAAiBG,MACjE,MACJ,IAAK,QACD7od,GAAY0ud,GAAcrB,GAAgBE,KAAM7E,GAAiBC,QACjE,MACJ,IAAK,SACD3od,GAAY0ud,GAAcrB,GAAgBE,KAAM7E,GAAiBI,OACjE,MAEJ,IAAK,IACL,IAAK,KACL,IAAK,MACD9od,GAAY0ud,GAAcrB,GAAgBC,WAAY5E,GAAiBE,aACvE,MACJ,IAAK,OACD5od,GAAY0ud,GAAcrB,GAAgBC,WAAY5E,GAAiBG,MACvE,MACJ,IAAK,QACD7od,GAAY0ud,GAAcrB,GAAgBC,WAAY5E,GAAiBC,QACvE,MAEJ,IAAK,IACL,IAAK,KACL,IAAK,MACD3od,GAAY0ud,GAAcrB,GAAgBC,WAAY5E,GAAiBE,YAAaJ,GAAUC,YAAY,GAC1G,MACJ,IAAK,OACDzod,GAAY0ud,GAAcrB,GAAgBC,WAAY5E,GAAiBG,KAAML,GAAUC,YAAY,GACnG,MACJ,IAAK,QACDzod,GAAY0ud,GAAcrB,GAAgBC,WAAY5E,GAAiBC,OAAQH,GAAUC,YAAY,GACrG,MAEJ,IAAK,IACL,IAAK,KACL,IAAK,MACDzod,GAAY0ud,GAAcrB,GAAgBC,WAAY5E,GAAiBE,YAAaJ,GAAU3nZ,QAAQ,GACtG,MACJ,IAAK,OACD7gE,GACI0ud,GAAcrB,GAAgBC,WAAY5E,GAAiBG,KAAML,GAAU3nZ,QAAQ,GACvF,MACJ,IAAK,QACD7gE,GAAY0ud,GAAcrB,GAAgBC,WAAY5E,GAAiBC,OAAQH,GAAU3nZ,QAAQ,GACjG,MAEJ,IAAK,IACD7gE,GAAY2ud,GAAW5B,GAASE,MAAO,GAAG,IAC1C,MACJ,IAAK,KACDjtd,GAAY2ud,GAAW5B,GAASE,MAAO,GAAG,IAC1C,MAEJ,IAAK,IACDjtd,GAAY2ud,GAAW5B,GAASE,MAAO,GACvC,MAEJ,IAAK,KACDjtd,GAAY2ud,GAAW5B,GAASE,MAAO,GACvC,MAEJ,IAAK,IACDjtd,GAAY2ud,GAAW5B,GAASG,QAAS,GACzC,MACJ,IAAK,KACDltd,GAAY2ud,GAAW5B,GAASG,QAAS,GACzC,MAEJ,IAAK,IACDltd,GAAY2ud,GAAW5B,GAASI,QAAS,GACzC,MACJ,IAAK,KACDntd,GAAY2ud,GAAW5B,GAASI,QAAS,GACzC,MAEJ,IAAK,IACDntd,GAAY2ud,GAAW5B,GAASK,kBAAmB,GACnD,MACJ,IAAK,KACDptd,GAAY2ud,GAAW5B,GAASK,kBAAmB,GACnD,MACJ,IAAK,MACDptd,GAAY2ud,GAAW5B,GAASK,kBAAmB,GACnD,MAEJ,IAAK,IACL,IAAK,KACL,IAAK,MACDptd,GAAY8ud,GAAelC,GAAU9D,OACrC,MAEJ,IAAK,QACD9od,GAAY8ud,GAAelC,GAAUE,UACrC,MAEJ,IAAK,IACL,IAAK,KACL,IAAK,MAEL,IAAK,IACL,IAAK,KACL,IAAK,MACD9sd,GAAY8ud,GAAelC,GAAUC,UACrC,MAEJ,IAAK,OACL,IAAK,OAEL,IAAK,OACD7sd,GAAY8ud,GAAelC,GAAU5D,MACrC,MACJ,QACI,OAAO,KAEfyF,UAAa30pB,IAAUkmM,GAChBA,EACX,CAljB8Bwud,CAAiB32uB,IACvCwX,IAAQk/tB,GAAgBA,GAAct4rB,GAAMm1X,GAAQ8iU,IACtC,OAAVr2uB,GAAmB,IACfA,GAAMtC,QAAQ,WAAY,IAAIA,QAAQ,MAAO,IAAI,GAEtD8Z,EACX,CAWA,SAASussB,GAAWl1N,GAAMC,GAAO1wc,IAK7B,MAAMskf,GAAU,IAAI7lhB,KAAK,GAMzB6lhB,UAAQt8P,YAAYyoN,GAAMC,GAAO1wc,IAIjCskf,GAAQp8P,SAAS,EAAG,EAAG,GAChBo8P,EACX,CACA,SAAS0zM,GAAe7iU,GAAQtxV,IAC5B,MAAMi1pB,GAAW3E,GAAYh/T,IAE7B,GADAshU,GAAcqC,IAAYrC,GAAcqC,KAAa,CAAC,EAClDrC,GAAcqC,IAAUj1pB,IACxB,OAAO4ypB,GAAcqC,IAAUj1pB,IAEnC,IAAI0mT,GAAc,GAClB,OAAQ1mT,IACJ,IAAK,YACD0mT,GAAcyqW,GAAoB7/T,GAAQ29T,EAAYD,OACtD,MACJ,IAAK,aACDtoW,GAAcyqW,GAAoB7/T,GAAQ29T,EAAYh1R,QACtD,MACJ,IAAK,WACDvzE,GAAcyqW,GAAoB7/T,GAAQ29T,EAAYC,MACtD,MACJ,IAAK,WACDxoW,GAAcyqW,GAAoB7/T,GAAQ29T,EAAYE,MACtD,MACJ,IAAK,YACDzoW,GAAc0qW,GAAoB9/T,GAAQ29T,EAAYD,OACtD,MACJ,IAAK,aACDtoW,GAAc0qW,GAAoB9/T,GAAQ29T,EAAYh1R,QACtD,MACJ,IAAK,WACDvzE,GAAc0qW,GAAoB9/T,GAAQ29T,EAAYC,MACtD,MACJ,IAAK,WACDxoW,GAAc0qW,GAAoB9/T,GAAQ29T,EAAYE,MACtD,MACJ,IAAK,QACD,MAAM+F,GAAYf,GAAe7iU,GAAQ,aACnC6jU,GAAYhB,GAAe7iU,GAAQ,aACzC5qC,GAAc0uW,GAAe/D,GAAwB//T,GAAQ29T,EAAYD,OAAQ,CAACkG,GAAWC,KAC7F,MACJ,IAAK,SACD,MAAME,GAAalB,GAAe7iU,GAAQ,cACpCgkU,GAAanB,GAAe7iU,GAAQ,cAC1C5qC,GAAc0uW,GAAe/D,GAAwB//T,GAAQ29T,EAAYh1R,QAAS,CAACo7R,GAAYC,KAC/F,MACJ,IAAK,OACD,MAAMC,GAAWpB,GAAe7iU,GAAQ,YAClCkkU,GAAWrB,GAAe7iU,GAAQ,YACxC5qC,GACI0uW,GAAe/D,GAAwB//T,GAAQ29T,EAAYC,MAAO,CAACqG,GAAUC,KACjF,MACJ,IAAK,OACD,MAAMC,GAAWtB,GAAe7iU,GAAQ,YAClCokU,GAAWvB,GAAe7iU,GAAQ,YACxC5qC,GACI0uW,GAAe/D,GAAwB//T,GAAQ29T,EAAYE,MAAO,CAACsG,GAAUC,KAGzF,OAAIhvW,KACAksW,GAAcqC,IAAUj1pB,IAAU0mT,IAE/BA,EACX,CACA,SAAS0uW,GAAetotB,GAAK6otB,IACzB,OAAIA,KACA7otB,GAAMA,GAAIrxB,QAAQ,cAAe,SAAUsxB,GAAOpqB,IAC9C,OAAsB,MAAdgzuB,IAAsBhzuB,MAAOgzuB,GAAcA,GAAWhzuB,IAAOoqB,EACzE,IAEGD,EACX,CACA,SAAS8otB,GAAUpwf,GAAKktf,GAAQmD,GAAY,IAAKzquB,GAAM0quB,IACnD,IAAIC,GAAM,IACNvwf,GAAM,GAAMswf,IAAWtwf,IAAO,KAC1Bswf,GACAtwf,GAAa,EAANA,IAGPA,IAAOA,GACPuwf,GAAMF,KAGd,IAAIG,GAAS9tuB,OAAOs9O,IACpB,KAAOwwf,GAAO1/uB,OAASo8uB,IACnBsD,GAAS,IAAMA,GAEnB,OAAI5quB,KACA4quB,GAASA,GAAOp+uB,MAAMo+uB,GAAO1/uB,OAASo8uB,KAEnCqD,GAAMC,EACjB,CAQA,SAASnB,GAAW5/uB,GAAMgiE,GAAMlX,GAAS,EAAG30C,IAAO,EAAO0quB,IAAU,GAChE,OAAO,SAAU35rB,GAAMm1X,IACnB,IAAIlqZ,GAgBZ,SAAS6utB,GAAY7utB,GAAM+0B,IACvB,OAAQ/0B,IACJ,KAAK6rtB,GAASC,SACV,OAAO/2rB,GAAKypM,cAChB,KAAKqtf,GAASxvN,MACV,OAAOtne,GAAKwpM,WAChB,KAAKstf,GAASr4tB,KACV,OAAOuhC,GAAKupM,UAChB,KAAKutf,GAASE,MACV,OAAOh3rB,GAAKq7O,WAChB,KAAKy7c,GAASG,QACV,OAAOj3rB,GAAKs7O,aAChB,KAAKw7c,GAASI,QACV,OAAOl3rB,GAAKu7O,aAChB,KAAKu7c,GAASK,kBACV,OAAOn3rB,GAAKokf,kBAChB,KAAK0yM,GAASzvN,IACV,OAAOrne,GAAKwyO,SAChB,QACI,MAAM,IAAIr2R,MAAO,2BAA0B8uB,QAEvD,CArCmB6utB,CAAYhhvB,GAAMknD,IAI7B,IAHI4D,GAAS,GAAK34B,IAAQ24B,MACtB34B,IAAQ24B,IAER9qD,KAASg+uB,GAASE,MACL,IAAT/rtB,KAAyB,KAAX24B,KACd34B,GAAO,YAGNnyB,KAASg+uB,GAASK,kBACvB,OAnBZ,SAAS4C,GAAwB7pB,GAAcqmB,IAE3C,OADckD,GAAUvpB,GAAc,GACzB/ksB,UAAU,EAAGortB,GAC9B,CAgBmBwD,CAAwB9utB,GAAM6vC,IAEzC,MAAMk/qB,GAAc5E,GAAsBjgU,GAAQ89T,EAAaG,WAC/D,OAAOqG,GAAUxutB,GAAM6vC,GAAMk/qB,GAAa/quB,GAAM0quB,GACpD,CACJ,CA0BA,SAASlB,GAAc3/uB,GAAMq1D,GAAOg2K,GAAOougB,GAAU3nZ,OAAQqvZ,IAAW,GACpE,OAAO,SAAUj6rB,GAAMm1X,IACnB,OAMR,SAAS+kU,GAAmBl6rB,GAAMm1X,GAAQr8a,GAAMq1D,GAAOg2K,GAAM81gB,IACzD,OAAQnhvB,IACJ,KAAKs+uB,GAAgBG,OACjB,OAAO5C,GAAoBx/T,GAAQhxM,GAAMh2K,IAAOnO,GAAKwpM,YACzD,KAAK4tf,GAAgBE,KACjB,OAAO5C,GAAkBv/T,GAAQhxM,GAAMh2K,IAAOnO,GAAKwyO,UACvD,KAAK4kd,GAAgBC,WACjB,MAAM8C,GAAen6rB,GAAKq7O,WACpB++c,GAAiBp6rB,GAAKs7O,aAC5B,GAAI2+c,GAAU,CACV,MAAMhulB,GAAQ4plB,GAA6B1gU,IACrC6gU,GAAaD,GAAyB5gU,GAAQhxM,GAAMh2K,IACpDpnD,GAAQklJ,GAAM/5D,UAAUi+G,KAC1B,GAAI3gM,MAAM2C,QAAQg+L,IAAO,CAErB,MAAO1gM,GAAMm5G,IAAMunF,GACbkqiB,GAAYF,IAAgB1quB,GAAKmmsB,OAASwkC,IAAkB3quB,GAAKomsB,QACjEykC,GAAYH,GAAevxnB,GAAGgtlB,OAC/BukC,KAAiBvxnB,GAAGgtlB,OAASwkC,GAAiBxxnB,GAAGitlB,QAWtD,GAAIpmsB,GAAKmmsB,MAAQhtlB,GAAGgtlB,OAChB,GAAIykC,IAAaC,GACb,OAAO,UAGND,IAAaC,GAClB,OAAO,UAIPnqiB,GAAKylgB,QAAUukC,IAAgBhqiB,GAAK0lgB,UAAYukC,GAChD,OAAO,EAGf,OAAO,IAEX,IAAc,IAAVrzuB,GACA,OAAOivuB,GAAWjvuB,GAAK,CAI/B,OAAOutuB,GAAoBn/T,GAAQhxM,GAAMh2K,IAAOgsrB,GAAe,GAAK,EAAI,GAC5E,KAAK/C,GAAgBI,KACjB,OAAO5C,GAAkBz/T,GAAQhnX,IAAOnO,GAAKypM,eAAiB,EAAI,EAAI,GAC1E,QAMI,MAAM,IAAIttP,MAAO,+BADErD,MAG/B,CAnEeohvB,CAAmBl6rB,GAAMm1X,GAAQr8a,GAAMq1D,GAAOg2K,GAAM81gB,GAC/D,CACJ,CAuEA,SAASpB,GAAe1qrB,IACpB,OAAO,SAAUnO,GAAMm1X,GAAQvxX,IAC3B,MAAMv8C,IAAO,EAAKu8C,GACZ81rB,GAAYtE,GAAsBjgU,GAAQ89T,EAAaG,WACvDx9B,GAAQvusB,GAAO,EAAIuZ,KAAKosF,MAAM3lG,GAAO,IAAMuZ,KAAK03J,KAAKjxK,GAAO,IAClE,OAAQ8mD,IACJ,KAAKworB,GAAU9D,MACX,OAASxruB,IAAQ,EAAK,IAAM,IAAMoyuB,GAAU7jC,GAAO,EAAG8jC,IAClDD,GAAU74tB,KAAK0B,IAAIjb,GAAO,IAAK,EAAGqyuB,IAC1C,KAAK/C,GAAUC,SACX,MAAO,OAAUvvuB,IAAQ,EAAK,IAAM,IAAMoyuB,GAAU7jC,GAAO,EAAG8jC,IAClE,KAAK/C,GAAU5D,KACX,MAAO,OAAU1ruB,IAAQ,EAAK,IAAM,IAAMoyuB,GAAU7jC,GAAO,EAAG8jC,IAAa,IACvED,GAAU74tB,KAAK0B,IAAIjb,GAAO,IAAK,EAAGqyuB,IAC1C,KAAK/C,GAAUE,SACX,OAAe,IAAXjzrB,GACO,KAGEv8C,IAAQ,EAAK,IAAM,IAAMoyuB,GAAU7jC,GAAO,EAAG8jC,IAAa,IAC/DD,GAAU74tB,KAAK0B,IAAIjb,GAAO,IAAK,EAAGqyuB,IAE9C,QACI,MAAM,IAAIv9uB,MAAO,uBAAsBgyD,OAEnD,CACJ,CACA,MAAMosrB,GAAU,EACVC,GAAW,EAKjB,SAASC,GAAoB3kU,IACzB,OAAO6vS,GAAW7vS,GAASrsL,cAAeqsL,GAAStsL,WAAYssL,GAASvsL,WAAaixf,GAAW1kU,GAAStjJ,UAC7G,CACA,SAASomd,GAAW99qB,GAAM4/qB,IAAa,GACnC,OAAO,SAAU16rB,GAAMm1X,IACnB,IAAInua,GACJ,GAAI0zuB,GAAY,CACZ,MAAMC,GAA4B,IAAIl8tB,KAAKuhC,GAAKypM,cAAezpM,GAAKwpM,WAAY,GAAGgpC,SAAW,EACxFg+N,GAAQxwc,GAAKupM,UACnBviP,GAAS,EAAI4Z,KAAKosF,OAAOwjZ,GAAQmqP,IAA6B,EAAC,KAE9D,CACD,MAAMC,GAAYH,GAAoBz6rB,IAGhC66rB,GAnBlB,SAASC,GAAuBrqP,IAC5B,MAAM+rO,GAAiB7W,GAAWl1N,GAAM8pP,GAAS,GAAG/nd,SACpD,OAAOmzb,GAAWl1N,GAAM,EAAG,GAAM+rO,IAAkBge,GAAYA,GAAWA,GAAW,GAAKhe,GAC9F,CAgB+Bse,CAAuBF,GAAUnxf,eAC9CjkJ,GAAOo1oB,GAAU73tB,UAAY83tB,GAAW93tB,UAC9C/b,GAAS,EAAI4Z,KAAKqlD,MAAMu/B,GAAO,OAAO,CAE1C,OAAOi0oB,GAAUzyuB,GAAQ8zD,GAAMs6qB,GAAsBjgU,GAAQ89T,EAAaG,WAC9E,CACJ,CAIA,SAASuF,GAAwB79qB,GAAM7rD,IAAO,GAC1C,OAAO,SAAU+wC,GAAMm1X,IAGnB,OAAOskU,GAFWgB,GAAoBz6rB,IACFypM,cACA3uL,GAAMs6qB,GAAsBjgU,GAAQ89T,EAAaG,WAAYnkuB,GACrG,CACJ,CACA,MAAMupuB,GAAe,CAAC,EA0PtB,SAASN,GAAiB5pF,GAAUprb,IAGhCorb,GAAWA,GAAShvpB,QAAQ,KAAM,IAClC,MAAMy7uB,GAA0Bt8tB,KAAKtF,MAAM,yBAA2Bm1oB,IAAY,IAClF,OAAOjsoB,MAAM04tB,IAA2B73gB,GAAW63gB,EACvD,CAuFA,SAAS34tB,GAAOxgB,IACZ,OAAOA,cAAiB6c,OAAS4D,MAAMzgB,GAAMs+C,UACjD,CAEA,MAAM86rB,GAAuB,8BACvBC,GAAa,GACbC,GAAc,IACdC,GAAY,IACZC,GAAc,IACdC,GAAY,IACZC,GAAa,IACbC,GAAgB,OAChBC,GAAe,IAIrB,SAASC,GAA2B75uB,GAAO4/M,GAAS2zN,GAAQumU,GAAaC,GAAeC,GAAYp9F,IAAY,GAC5G,IAAIq9F,GAAgB,GAChBC,IAAS,EACb,GAAKrslB,SAAS7tJ,IAGT,CACD,IAAIm6uB,GAgPZ,SAASC,GAAY3yf,IACjB,IACkBktf,GAAQ0F,GACtB/hvB,GAAG26E,GAAGqnqB,GAFNC,GAASv7tB,KAAK0B,IAAI+mO,IAAO,GACzB+yf,GAAW,EAmBf,KAhBKH,GAAaE,GAAOv1uB,QAAQs0uB,MAAgB,IAC7CiB,GAASA,GAAO78uB,QAAQ47uB,GAAa,MAGpChhvB,GAAIiivB,GAAOriiB,OAAO,OAAS,GAExBmiiB,GAAa,IACbA,GAAa/hvB,IACjB+hvB,KAAeE,GAAO1gvB,MAAMvB,GAAI,GAChCiivB,GAASA,GAAOhxtB,UAAU,EAAGjxB,KAExB+hvB,GAAa,IAElBA,GAAaE,GAAOhivB,QAGnBD,GAAI,EAAGiivB,GAAO3jvB,OAAO0B,MAAOihvB,GAAWjhvB,MAE5C,GAAIA,MAAOgivB,GAAQC,GAAOhivB,QAEtBo8uB,GAAS,CAAC,GACV0F,GAAa,MAEZ,CAGD,IADAC,KACOC,GAAO3jvB,OAAO0jvB,MAAWf,IAC5Be,KAKJ,IAHAD,IAAc/hvB,GACdq8uB,GAAS,GAEJ1hqB,GAAI,EAAG36E,IAAKgivB,GAAOhivB,KAAK26E,KACzB0hqB,GAAO1hqB,IAAKoN,OAAOk6pB,GAAO3jvB,OAAO0B,IAAE,CAI3C,OAAI+hvB,GAAahB,KACb1E,GAASA,GAAO1vuB,OAAO,EAAGo0uB,GAAa,GACvCmB,GAAWH,GAAa,EACxBA,GAAa,GAEV,CAAE1F,UAAQ6F,YAAUH,cAC/B,CAhS2BD,CAAYp6uB,IAC3B48oB,KACAu9F,GAqNZ,SAASM,GAAUN,IAEf,GAA+B,IAA3BA,GAAaxF,OAAO,GACpB,OAAOwF,GAGX,MAAMO,GAAcP,GAAaxF,OAAOp8uB,OAAS4hvB,GAAaE,WAC9D,OAAIF,GAAaK,SACbL,GAAaK,UAAY,GAGL,IAAhBE,GACAP,GAAaxF,OAAOj4uB,KAAK,EAAG,GAEP,IAAhBg+uB,IACLP,GAAaxF,OAAOj4uB,KAAK,GAE7By9uB,GAAaE,YAAc,GAExBF,EACX,CAzO2BM,CAAUN,KAE7B,IAAIQ,GAAS/6hB,GAAQ+6hB,OACjBC,GAAch7hB,GAAQi7hB,QACtBC,GAAcl7hB,GAAQm7hB,QAC1B,GAAIf,GAAY,CACZ,MAAMv1uB,GAAQu1uB,GAAWhrtB,MAAMoqtB,IAC/B,GAAc,OAAV30uB,GACA,MAAM,IAAIlK,MAAO,GAAEy/uB,gCAEvB,MAAMgB,GAAav2uB,GAAM,GACnBw2uB,GAAkBx2uB,GAAM,GACxBy2uB,GAAkBz2uB,GAAM,GACZ,MAAdu2uB,KACAL,GAASQ,GAAkBH,KAER,MAAnBC,KACAL,GAAcO,GAAkBF,KAEb,MAAnBC,GACAJ,GAAcK,GAAkBD,IAER,MAAnBD,IAA2BL,GAAcE,KAC9CA,GAAcF,KA4Q9B,SAASt6pB,GAAY65pB,GAAcU,GAASE,IACxC,GAAIF,GAAUE,GACV,MAAM,IAAIxgvB,MAAO,gDAA+CsgvB,mCAAwCE,QAE5G,IAAIpG,GAASwF,GAAaxF,OACtB+F,GAAc/F,GAAOp8uB,OAAS4hvB,GAAaE,WAC/C,MAAMe,GAAep8tB,KAAK4lC,IAAI5lC,KAAKC,IAAI47tB,GAASH,IAAcK,IAE9D,IAAIM,GAAUD,GAAejB,GAAaE,WACtCiB,GAAQ3G,GAAO0G,IACnB,GAAIA,GAAU,EAAG,CAEb1G,GAAO1vuB,OAAO+Z,KAAKC,IAAIk7tB,GAAaE,WAAYgB,KAEhD,QAASpoqB,GAAIooqB,GAASpoqB,GAAI0hqB,GAAOp8uB,OAAQ06E,KACrC0hqB,GAAO1hqB,IAAK,MAGf,CAEDynqB,GAAc17tB,KAAKC,IAAI,EAAGy7tB,IAC1BP,GAAaE,WAAa,EAC1B1F,GAAOp8uB,OAASymB,KAAKC,IAAI,EAAGo8tB,GAAUD,GAAe,GACrDzG,GAAO,GAAK,EACZ,QAASr8uB,GAAI,EAAGA,GAAI+ivB,GAAS/ivB,KACzBq8uB,GAAOr8uB,IAAK,EAEpB,GAAIgjvB,IAAS,EACT,GAAID,GAAU,EAAI,EAAG,CACjB,QAASxutB,GAAI,EAAGA,GAAIwutB,GAASxutB,KACzB8ntB,GAAOv9sB,QAAQ,GACf+itB,GAAaE,aAEjB1F,GAAOv9sB,QAAQ,GACf+itB,GAAaE,kBAGb1F,GAAO0G,GAAU,KAIzB,KAAOX,GAAc17tB,KAAKC,IAAI,EAAGm8tB,IAAeV,KAC5C/F,GAAOj4uB,KAAK,GAChB,IAAI6+uB,GAAqC,IAAjBH,GAGxB,MAAMj1jB,GAAS00jB,GAAUV,GAAaE,WAEhClmd,GAAQwgd,GAAOj/tB,YAAY,SAAUy+Q,GAAO97P,GAAG//B,GAAGq8uB,IACpDt8sB,OACAs8sB,GAAOr8uB,KADP+/B,IAAQ87P,IACQ,GAAK97P,GAAIA,GAAI,GACzBkjtB,KAEkB,IAAd5G,GAAOr8uB,KAAYA,IAAK6tL,GACxBwujB,GAAO7vuB,MAGPy2uB,IAAoB,GAGrBljtB,IAAK,GAAK,EAAI,CACzB,EAAG,GACC87P,KACAwgd,GAAOv9sB,QAAQ+8P,IACfgmd,GAAaE,aAErB,CA3UQ/5pB,CAAY65pB,GAAcS,GAAaE,IACvC,IAAInG,GAASwF,GAAaxF,OACtB0F,GAAaF,GAAaE,WAC9B,MAAMG,GAAWL,GAAaK,SAC9B,IAAIv2M,GAAW,GAGf,IAFAi2M,GAASvF,GAAO3qtB,MAAMqO,KAAMA,IAErBgitB,GAAaM,GAAQN,KACxB1F,GAAOv9sB,QAAQ,GAGnB,KAAOijtB,GAAa,EAAGA,KACnB1F,GAAOv9sB,QAAQ,GAGfijtB,GAAa,EACbp2M,GAAW0wM,GAAO1vuB,OAAOo1uB,GAAY1F,GAAOp8uB,SAG5C0riB,GAAW0wM,GACXA,GAAS,CAAC,IAGd,MAAMjviB,GAAS,GAIf,IAHIiviB,GAAOp8uB,QAAUqnN,GAAQ47hB,QACzB91iB,GAAOtuK,QAAQu9sB,GAAO1vuB,QAAQ26M,GAAQ47hB,OAAQ7G,GAAOp8uB,QAAQqY,KAAK,KAE/D+juB,GAAOp8uB,OAASqnN,GAAQ67hB,OAC3B/1iB,GAAOtuK,QAAQu9sB,GAAO1vuB,QAAQ26M,GAAQ67hB,MAAO9G,GAAOp8uB,QAAQqY,KAAK,KAEjE+juB,GAAOp8uB,QACPmtM,GAAOtuK,QAAQu9sB,GAAO/juB,KAAK,KAE/BqpuB,GAAgBv0iB,GAAO90L,KAAK4iuB,GAAsBjgU,GAAQumU,KAEtD71M,GAAS1riB,SACT0hvB,IAAiBzG,GAAsBjgU,GAAQwmU,IAAiB91M,GAASrzhB,KAAK,KAE9E4puB,KACAP,IAAiBzG,GAAsBjgU,GAAQ89T,EAAaI,aAAe,IAAM+I,SAtErFP,GAAgBzG,GAAsBjgU,GAAQ89T,EAAa/hgB,UAyE/D,OACI2qgB,GADAj6uB,GAAQ,IAAMk6uB,GACEt6hB,GAAQ87hB,OAASzB,GAAgBr6hB,GAAQ+7hB,OAGzC/7hB,GAAQg8hB,OAAS3B,GAAgBr6hB,GAAQi8hB,OAEtD5B,EACX,CA0BA,SAAS6B,GAAe97uB,GAAOuza,GAAQ+qG,GAAUy9N,GAAc/B,IAC3D,MACMp6hB,GAAUo8hB,GADDvI,GAAsBlgU,GAAQ48T,GAAkB1oZ,UACrB+rZ,GAAsBjgU,GAAQ89T,EAAaG,YACrF5xhB,UAAQi7hB,QAAUnG,GAA0BqH,IAC5Cn8hB,GAAQm7hB,QAAUn7hB,GAAQi7hB,QACdhB,GAA2B75uB,GAAO4/M,GAAS2zN,GAAQ89T,EAAaS,cAAeT,EAAaQ,gBAAiBmI,IAEpHt8uB,QAAQi8uB,GAAer7N,IAEvB5ghB,QAAQi8uB,GAAe,IAKvBtsuB,MACT,CAoBA,SAAS4uuB,GAAcj8uB,GAAOuza,GAAQymU,IAIlC,OADYH,GAA2B75uB,GADvBg8uB,GADDvI,GAAsBlgU,GAAQ48T,GAAkBvoZ,SACrB4rZ,GAAsBjgU,GAAQ89T,EAAaG,YAC9Bj+T,GAAQ89T,EAAa9tG,MAAO8tG,EAAajB,QAAS4J,IAAY,GAC1Gt8uB,QAAQ,IAAIi3D,OAAOilrB,GAAc,KAAMpG,GAAsBjgU,GAAQ89T,EAAaC,aACjG,CAkBA,SAASvvpB,GAAa/hF,GAAOuza,GAAQymU,IAGjC,OAAOH,GAA2B75uB,GADlBg8uB,GADDvI,GAAsBlgU,GAAQ48T,GAAkBC,SACrBoD,GAAsBjgU,GAAQ89T,EAAaG,YACnCj+T,GAAQ89T,EAAa9tG,MAAO8tG,EAAajB,QAAS4J,GACxG,CACA,SAASgC,GAAkB/5pB,GAAQ61pB,GAAY,KAC3C,MAAMvqtB,GAAI,CACNottB,OAAQ,EACRE,QAAS,EACTE,QAAS,EACTa,OAAQ,GACRC,OAAQ,GACRH,OAAQ,GACRC,OAAQ,GACRF,MAAO,EACPD,OAAQ,GAENU,GAAej6pB,GAAOt9E,MAAM60uB,IAC5BtiU,GAAWglU,GAAa,GACxB7nU,GAAW6nU,GAAa,GACxBC,IAAkD,IAAlCjlU,GAASlya,QAAQs0uB,IACnCpiU,GAASvya,MAAM20uB,IACf,CACIpiU,GAAS3tZ,UAAU,EAAG2tZ,GAASriJ,YAAY0kd,IAAa,GACxDriU,GAAS3tZ,UAAU2tZ,GAASriJ,YAAY0kd,IAAa,IACtD1oiB,GAAUsriB,GAAc,GAAI37jB,GAAW27jB,GAAc,IAAM,GAClE5utB,GAAEqutB,OAAS/qiB,GAAQtnL,UAAU,EAAGsnL,GAAQ7rM,QAAQ00uB,KAChD,QAASphvB,GAAI,EAAGA,GAAIkoL,GAASjoL,OAAQD,KAAK,CACtC,MAAMs6I,GAAK4tC,GAAS5pL,OAAO0B,IACvBs6I,KAAO2mmB,GACPhstB,GAAEsttB,QAAUtttB,GAAEwttB,QAAUzivB,GAAI,EAEvBs6I,KAAO8mmB,GACZnstB,GAAEwttB,QAAUzivB,GAAI,EAGhBi1B,GAAEsutB,QAAUjpmB,GAGpB,MAAM8yD,GAASmL,GAAQlsM,MAAM80uB,IAG7B,GAFAlstB,GAAEkutB,MAAQ/1iB,GAAO,GAAKA,GAAO,GAAGntM,OAAS,EACzCg1B,GAAEiutB,OAAU91iB,GAAO,IAAMA,GAAO,IAAOA,GAAO,IAAMA,GAAO,IAAIntM,OAAS,EACpE87a,GAAU,CACV,MAAM+nU,GAAWllU,GAAS3+a,OAASg1B,GAAEqutB,OAAOrjvB,OAASg1B,GAAEsutB,OAAOtjvB,OAAQqvC,GAAMysY,GAASrva,QAAQ00uB,IAC7FnstB,GAAEmutB,OAASrnU,GAAS9qZ,UAAU,EAAGqe,IAAKlqC,QAAQ,KAAM,IACpD6vB,GAAEoutB,OAAStnU,GAASx6a,MAAM+tC,GAAMw0sB,IAAU1+uB,QAAQ,KAAM,GAAE,MAG1D6vB,GAAEmutB,OAAS5D,GAAYvqtB,GAAEqutB,OACzBrutB,GAAEoutB,OAASputB,GAAEsutB,OAEjB,OAAOtutB,EACX,CAmJA,SAAS4ttB,GAAkB3juB,IACvB,MAAMpS,GAASuuI,SAASn8H,IACxB,GAAIiJ,MAAMrb,IACN,MAAM,IAAI7K,MAAM,wCAA0Cid,IAE9D,OAAOpS,EACX,CAEA,IAGMi3uB,GAAc,MAApB,MAAMA,IAENA,UAAetjvB,UAAI,4BAAwFsjvB,GAAc,EACzHA,GAAerjvB,WAh5EoFC,+BAAE,OAg5EUojvB,GAAcnjvB,sDAAmCq6a,GAh5E7Dt6a,qBAg5E0HqjvB,aAAhG5yuB,GAA8C,IAAI6yuB,GAAqBhpU,KAAkC7pa,GAAzGA,IAAmC6pa,EAAsE,aAA3F,SAHrI8oU,EAAc,KAiBpB,SAASG,GAAkBx8uB,GAAOijH,GAAOw5nB,GAAgBlpU,IACrD,IAAI3ua,GAAO,IAAG5E,KAKd,GAJIijH,GAAMj+G,QAAQJ,KAAO,IAGzBA,GAAM63uB,GAAeD,kBAAkBx8uB,GAAOuza,IAC1CtwT,GAAMj+G,QAAQJ,KAAO,GACrB,OAAOA,GAEX,GAAIq+G,GAAMj+G,QAAQ,UAAW,EACzB,MAAO,QAEX,MAAM,IAAIzK,MAAO,sCAAqCyF,MAC1D,CACA,IAKMu8uB,GAAoB,MAA1B,MAAMA,WAA6BF,GAC/B1ovB,YAAY4/a,IACR3/a,QACAE,KAAKy/a,OAASA,EAClB,CACAipU,kBAAkBx8uB,GAAOuza,IAErB,OADeugU,GAAoBvgU,IAAUz/a,KAAKy/a,OAAnCugU,CAA2C9zuB,KAEtD,KAAKqwuB,GAAOC,KACR,MAAO,OACX,KAAKD,GAAOE,IACR,MAAO,MACX,KAAKF,GAAOG,IACR,MAAO,MACX,KAAKH,GAAOI,IACR,MAAO,MACX,KAAKJ,GAAOK,KACR,MAAO,OACX,QACI,MAAO,QAEnB,EAEJ6L,UAAqBxjvB,UAAI,4BAAwFwjvB,IAx8EdtjvB,qBAw8EoDqjvB,aAAS,EAChKC,GAAqBvjvB,WAz8E8EC,+BAAE,OAy8EgBsjvB,GAAoBrjvB,QAApBqjvB,GAAoB,YAxBnIA,EAAoB,KAyC1B,SAASG,GAAmBl9uB,GAAM03uB,GAAUyF,IACxC,SAAOC,4BAAoBp9uB,GAAM03uB,GAAUyF,GAC/C,CAEA,SAASE,GAAiBC,GAAW5lvB,IACjCA,GAAOoY,mBAAmBpY,IAC1B,UAAWE,MAAU0lvB,GAAUn4uB,MAAM,KAAM,CACvC,MAAMo4uB,GAAU3lvB,GAAO4N,QAAQ,MACxBgU,GAAYgkuB,KAA0B,GAAXD,GAAgB,CAAC3lvB,GAAQ,IAAM,CAACA,GAAOyC,MAAM,EAAGkjvB,IAAU3lvB,GAAOyC,MAAMkjvB,GAAU,IACnH,GAAI/juB,GAAW3L,SAAWnW,GACtB,OAAO+X,mBAAmB+tuB,GAAW,CAG7C,OAAO,IACX,CAEA,MAAMC,GAAY,MACZC,GAAc,GACpB,IA4BMC,GAAO,MAAb,MAAMA,GACFxpvB,YAEAypvB,GAAkBC,GAAkBC,GAAO/jqB,IACvCzlF,KAAKspvB,iBAAmBA,GACxBtpvB,KAAKupvB,iBAAmBA,GACxBvpvB,KAAKwpvB,MAAQA,GACbxpvB,KAAKylF,UAAYA,GACjBzlF,KAAKypvB,eAAiBL,GACtBppvB,KAAK4zE,SAAW,IAAIluE,GACxB,CACIwya,UAAMhsa,IACNlM,KAAKypvB,eAA0B,MAATv9uB,GAAgBA,GAAMqN,OAAO1I,MAAMs4uB,IAAaC,EAC1E,CACIM,YAAQx9uB,IACRlM,KAAK2pvB,SAA4B,iBAAVz9uB,GAAqBA,GAAMqN,OAAO1I,MAAMs4uB,IAAaj9uB,EAChF,CA0BA09uB,YAEI,UAAW1xU,MAASl4a,KAAKypvB,eACrBzpvB,KAAKgqhB,aAAa9xG,IAAO,GAG7B,MAAMyxU,GAAW3pvB,KAAK2pvB,SACtB,GAAI7vuB,MAAM2C,QAAQktuB,KAAaA,cAAoB5hvB,IAC/C,UAAWmwa,MAASyxU,GAChB3pvB,KAAKgqhB,aAAa9xG,IAAO,QAAI,GAGhB,MAAZyxU,GACL,UAAWzxU,MAASvsa,OAAOtE,KAAKsivB,IAC5B3pvB,KAAKgqhB,aAAa9xG,GAAOhkZ,QAAQy1tB,GAASzxU,MAGlDl4a,KAAK6pvB,iBACT,CACA7/N,aAAa9xG,GAAO4xU,IAChB,MAAMphuB,GAAQ1oB,KAAK4zE,SAAS5vE,IAAIk0a,SAClBjqa,IAAVya,IACIA,GAAMopQ,UAAYg4d,KAClBphuB,GAAMy/H,SAAU,EAChBz/H,GAAMopQ,QAAUg4d,IAEpBphuB,GAAMunJ,SAAU,GAGhBjwK,KAAK4zE,SAASptE,IAAI0xa,GAAO,CAAEpmJ,QAASg4d,GAAa3hmB,SAAS,EAAM8nB,SAAS,GAEjF,CACA45kB,kBACI,UAAWE,MAAc/pvB,KAAK4zE,SAAU,CACpC,MAAMskW,GAAQ6xU,GAAW,GACnBrhuB,GAAQqhuB,GAAW,GACrBrhuB,GAAMy/H,SACNnoJ,KAAKgqvB,aAAa9xU,GAAOxvZ,GAAMopQ,SAC/BppQ,GAAMy/H,SAAU,GAEVz/H,GAAMunJ,UAGRvnJ,GAAMopQ,SACN9xR,KAAKgqvB,aAAa9xU,IAAO,GAE7Bl4a,KAAK4zE,SAASnsE,OAAOywa,KAEzBxvZ,GAAMunJ,SAAU,EAExB,CACA+5kB,aAAa9xU,GAAOpmJ,KAMhBomJ,GAAQA,GAAM3+Z,QACJ9U,OAAS,GACfyza,GAAMrna,MAAMs4uB,IAAWxjvB,QAAQuya,KACvBpmJ,GACA9xR,KAAKylF,UAAUr4E,SAASpN,KAAKwpvB,MAAMxmsB,cAAek1X,IAGlDl4a,KAAKylF,UAAUn4E,YAAYtN,KAAKwpvB,MAAMxmsB,cAAek1X,GAAK,EAI1E,EAEJmxU,UAAQpkvB,UAAI,4BAAwFokvB,IAxnFDlkvB,8BAwnF0BA,mBAxnF1BA,8BAwnFyDA,mBAxnFzDA,8BAwnFwFA,cAxnFxFA,8BAwnFkHA,aAAY,EACjOkkvB,GAAQ/+sB,UAznF2FnlC,8BAAE,MAynFbkkvB,GAAO9+sB,iGAjHzF8+sB,EAAO,KA2LPY,GAAiB,MAAvB,MAAMA,GACFpqvB,YAAYqqvB,IACRlqvB,KAAKkqvB,kBAAoBA,GACzBlqvB,KAAKmqvB,kBAAoB,IAC7B,CAEAzhtB,YAAYC,IACR,MAAQuhtB,kBAAmBvle,GAAkByle,0BAA2Bt1uB,GAAUu1uB,iCAAkCC,IAAqBtqvB,KAGzI,GAFA2kR,GAAiBh9Q,QACjB3H,KAAKuqvB,mBAAgBt8uB,EACjBjO,KAAKmqvB,kBAAmB,CACxB,MAAMpmvB,GAAW/D,KAAKwqvB,2BAA6B7le,GAAiB5tO,gBAChEpO,GAAQyhtB,2BAAgCzhtB,GAAQ0htB,oCAC5CrqvB,KAAKyqvB,YACLzqvB,KAAKyqvB,WAAW3+uB,UAEhB9L,KAAKyqvB,WADL31uB,IACK21uB,EAAaC,kBAAe51uB,GAAU61uB,GAAkB5mvB,KAExDumvB,GACaA,GAAgB1+uB,OAAO++uB,GAAkB5mvB,UAGzCkK,GAG1BjO,KAAKuqvB,cAAgB5le,GAAiBv6O,gBAAgBpqC,KAAKmqvB,kBAAmB,CAC1E94uB,MAAOszQ,GAAiBlgR,OACxBV,YACA6mvB,YAAa5qvB,KAAKyqvB,WAClBI,iBAAkB7qvB,KAAK8qvB,0BAC1B,CAET,CAEApjvB,cACQ1H,KAAKyqvB,YACLzqvB,KAAKyqvB,WAAW3+uB,SACxB,EAEJm+uB,UAAkBhlvB,UAAI,4BAAwFglvB,IA1uFX9kvB,8BA0uF8CA,oBAAmB,EACpK8kvB,GAAkB3/sB,UA3uFiFnlC,8BAAE,MA2uFH8kvB,GAAiB1/sB,mVA3uFhBplC,oCAmsF7F8kvB,EAAiB,KA2DvB,SAASU,GAAkB5mvB,IAEvB,OADuBA,GAASC,IAAI+mvB,eACdhnvB,QAC1B,CAMA,MAAMinvB,GACFnrvB,YAAYi3Q,GAAWm0e,GAAS55uB,GAAOoC,IACnCzT,KAAK82Q,UAAYA,GACjB92Q,KAAKirvB,QAAUA,GACfjrvB,KAAKqR,MAAQA,GACbrR,KAAKyT,MAAQA,EACjB,CACI0M,YACA,OAAsB,IAAfngB,KAAKqR,KAChB,CACIuiB,WACA,OAAO5zB,KAAKqR,QAAUrR,KAAKyT,MAAQ,CACvC,CACIowqB,WACA,OAAO7jrB,KAAKqR,MAAQ,GAAM,CAC9B,CACI0yqB,UACA,OAAQ/jrB,KAAK6jrB,IACjB,EAEJ,IAkGMqnE,GAAO,MAAb,MAAMA,GAKED,YAAQA,IACRjrvB,KAAKmrvB,SAAWF,GAChBjrvB,KAAKorvB,eAAgB,CACzB,CAmBIC,iBAAaxwuB,IAKb7a,KAAKsrvB,WAAazwuB,EACtB,CACIwwuB,mBACA,OAAOrrvB,KAAKsrvB,UAChB,CACAzrvB,YAAY0rvB,GAAgBC,GAAWC,IACnCzrvB,KAAKurvB,eAAiBA,GACtBvrvB,KAAKwrvB,UAAYA,GACjBxrvB,KAAKyrvB,SAAWA,GAChBzrvB,KAAKmrvB,SAAW,KAChBnrvB,KAAKorvB,eAAgB,EACrBprvB,KAAK0rvB,QAAU,IACnB,CAKIC,kBAAcz/uB,IAIVA,KACAlM,KAAKwrvB,UAAYt/uB,GAEzB,CAKA09uB,YACI,GAAI5pvB,KAAKorvB,cAAe,CACpBprvB,KAAKorvB,eAAgB,EAErB,MAAMl/uB,GAAQlM,KAAKmrvB,UACdnrvB,KAAK0rvB,SAAWx/uB,KAmBblM,KAAK0rvB,QAAU1rvB,KAAKyrvB,SAAS7rtB,KAAK1zB,IAAON,OAAO5L,KAAKqrvB,cAAY,CAI7E,GAAIrrvB,KAAK0rvB,QAAS,CACd,MAAM/itB,GAAU3oC,KAAK0rvB,QAAQ57oB,KAAK9vG,KAAKmrvB,UACnCxitB,IACA3oC,KAAK4rvB,cAAcjjtB,GAAO,CAEtC,CACAijtB,cAAcjjtB,IACV,MAAMkjtB,GAAgB7rvB,KAAKurvB,eAC3B5itB,GAAQmjtB,iBAAiB,CAAC5htB,GAAM6htB,GAAuBC,MACnD,GAA0B,MAAtB9htB,GAAK+htB,cAILJ,GAAcnzT,mBAAmB14b,KAAKwrvB,UAAW,IAAIR,GAAe9gtB,GAAKA,KAAMlqC,KAAKmrvB,UAAU,GAAI,GAAsB,OAAjBa,QAAwB/9uB,EAAY+9uB,SAAY,GAElI,MAAhBA,GACLH,GAAcjrvB,OAAiC,OAA1BmrvB,QAAiC99uB,EAAY89uB,SAAqB,GAExD,OAA1BA,GAAgC,CACrC,MAAMpvlB,GAAOkvlB,GAAc7nvB,IAAI+nvB,IAC/BF,GAAc1ukB,KAAKxgB,GAAMqvlB,IACzBE,GAAgBvvlB,GAAMzyH,GAAI,IAGlC,QAAS1lC,GAAI,EAAG2nvB,GAAON,GAAcpnvB,OAAQD,GAAI2nvB,GAAM3nvB,KAAK,CAExD,MAAM0Z,GADU2tuB,GAAc7nvB,IAAIQ,IACV0Z,QACxBA,GAAQ7M,MAAQ7M,GAChB0Z,GAAQzK,MAAQ04uB,GAChBjuuB,GAAQ+suB,QAAUjrvB,KAAKmrvB,SAE3BxitB,GAAQyjtB,sBAAuBtwkB,KAE3BowkB,GADgBL,GAAc7nvB,IAAI83K,GAAOkwkB,cAChBlwkB,GAAM,EAEvC,CAOA37K,8BAA8B88I,GAAKjnI,IAC/B,OAAO,CACX,EAEJk1uB,UAAQjmvB,UAAI,4BAAwFimvB,IApgGD/lvB,8BAogG0BA,oBApgG1BA,8BAogG0DA,eApgG1DA,8BAogGqFA,mBAAkB,EAC1M+lvB,GAAQ5gtB,UArgG2FnlC,8BAAE,MAqgGb+lvB,GAAO3gtB,8IAxIzF2gtB,EAAO,KAsJb,SAASgB,GAAgBvvlB,GAAMmf,IAC3Bnf,GAAKz+I,QAAQ44P,UAAYh7F,GAAO5xI,IACpC,CAKA,IA2IMkwB,GAAI,MAAV,MAAMA,GACFv6D,YAAY0rvB,GAAgB16S,IACxB7wc,KAAKurvB,eAAiBA,GACtBvrvB,KAAK+yB,SAAW,IAAIs5tB,GACpBrsvB,KAAKssvB,iBAAmB,KACxBtsvB,KAAKusvB,iBAAmB,KACxBvsvB,KAAKwsvB,aAAe,KACpBxsvB,KAAKysvB,aAAe,KACpBzsvB,KAAKssvB,iBAAmBz7S,EAC5B,CAII67S,SAAK16d,IACLhyR,KAAK+yB,SAAS+jP,UAAY92Q,KAAK+yB,SAAS25tB,KAAO16d,GAC/ChyR,KAAK2svB,aACT,CAIIC,aAAS/7S,IACTg8S,GAAe,WAAYh8S,IAC3B7wc,KAAKssvB,iBAAmBz7S,GACxB7wc,KAAKwsvB,aAAe,KACpBxsvB,KAAK2svB,aACT,CAIIG,aAASj8S,IACTg8S,GAAe,WAAYh8S,IAC3B7wc,KAAKusvB,iBAAmB17S,GACxB7wc,KAAKysvB,aAAe,KACpBzsvB,KAAK2svB,aACT,CACAA,cACQ3svB,KAAK+yB,SAAS+jP,UACT92Q,KAAKwsvB,eACNxsvB,KAAKurvB,eAAe5jvB,QACpB3H,KAAKysvB,aAAe,KAChBzsvB,KAAKssvB,mBACLtsvB,KAAKwsvB,aACDxsvB,KAAKurvB,eAAe7yT,mBAAmB14b,KAAKssvB,iBAAkBtsvB,KAAK+yB,YAK1E/yB,KAAKysvB,eACNzsvB,KAAKurvB,eAAe5jvB,QACpB3H,KAAKwsvB,aAAe,KAChBxsvB,KAAKusvB,mBACLvsvB,KAAKysvB,aACDzsvB,KAAKurvB,eAAe7yT,mBAAmB14b,KAAKusvB,iBAAkBvsvB,KAAK+yB,WAIvF,CAOA5yB,8BAA8B88I,GAAKjnI,IAC/B,OAAO,CACX,EAEJokD,UAAKn1D,UAAI,4BAAwFm1D,IAxuGEj1D,8BAwuGoBA,oBAxuGpBA,8BAwuGoDA,eAAc,EACrKi1D,GAAK9vB,UAzuG8FnlC,8BAAE,MAyuGhBi1D,GAAI7vB,wGApEnF6vB,EAAI,KAqFV,MAAMiyrB,GACFxsvB,cACIG,KAAK82Q,UAAY,KACjB92Q,KAAK0svB,KAAO,IAChB,EAEJ,SAASG,GAAejqqB,GAAUiuX,IAE9B,GADgCA,KAAeA,GAAYnY,mBAEvD,MAAM,IAAIjyb,MAAO,GAAEm8E,8CAAiDmqqB,mBAAWl8S,QAEvF,CAEA,MAAMm8S,GACFntvB,YAAYqqvB,GAAmB+C,IAC3BjtvB,KAAKkqvB,kBAAoBA,GACzBlqvB,KAAKitvB,aAAeA,GACpBjtvB,KAAKktvB,UAAW,CACpB,CACAthvB,SACI5L,KAAKktvB,UAAW,EAChBltvB,KAAKkqvB,kBAAkBxxT,mBAAmB14b,KAAKitvB,aACnD,CACAnhvB,UACI9L,KAAKktvB,UAAW,EAChBltvB,KAAKkqvB,kBAAkBvivB,OAC3B,CACAwlvB,aAAa/0U,IACLA,KAAYp4a,KAAKktvB,SACjBltvB,KAAK4L,UAECwsa,IAAWp4a,KAAKktvB,UACtBltvB,KAAK8L,SAEb,EAEJ,IAkEMshvB,GAAQ,MAAd,MAAMA,GACFvtvB,cACIG,KAAKqtvB,cAAgB,GACrBrtvB,KAAKstvB,cAAe,EACpBttvB,KAAKutvB,WAAa,EAClBvtvB,KAAKwtvB,oBAAsB,EAC3BxtvB,KAAKytvB,mBAAoB,CAC7B,CACIC,aAAS5ze,IACT95Q,KAAK2tvB,UAAY7ze,GACO,IAApB95Q,KAAKutvB,YACLvtvB,KAAK4tvB,qBAAoB,EAEjC,CAEAC,WACI,OAAO7tvB,KAAKutvB,YAChB,CAEAO,YAAYnxlB,IACR38J,KAAKqtvB,cAAczkvB,KAAK+zJ,GAC5B,CAEAoxlB,WAAW7hvB,IACP,MAAM4iC,GAAU5iC,IAASlM,KAAK2tvB,UAC9B,YAAKF,kBAAoBztvB,KAAKytvB,mBAAqB3+sB,GACnD9uC,KAAKwtvB,sBACDxtvB,KAAKwtvB,sBAAwBxtvB,KAAKutvB,aAClCvtvB,KAAK4tvB,qBAAqB5tvB,KAAKytvB,mBAC/BztvB,KAAKwtvB,oBAAsB,EAC3BxtvB,KAAKytvB,mBAAoB,GAEtB3+sB,EACX,CACA8+sB,oBAAoBI,IAChB,GAAIhuvB,KAAKqtvB,cAAc5ovB,OAAS,GAAKupvB,KAAehuvB,KAAKstvB,aAAc,CACnEttvB,KAAKstvB,aAAeU,GACpB,UAAW12lB,MAAet3J,KAAKqtvB,cAC3B/1lB,GAAY61lB,aAAaa,GAAU,CAG/C,EAEJZ,UAASnovB,UAAI,4BAAwFmovB,GAAQ,EAC7GA,GAAS9itB,UA54G0FnlC,8BAAE,MA44GZiovB,GAAQ7itB,4EA5C3F6itB,EAAQ,KAuFRa,GAAY,MAAlB,MAAMA,GACFpuvB,YAAYgsvB,GAAeh7S,GAAa68S,IACpC1tvB,KAAK0tvB,SAAWA,GAIhBA,GAASG,WACT7tvB,KAAK4kM,MAAQ,IAAIoojB,GAAWnB,GAAeh7S,GAC/C,CAKA+4S,YACI5pvB,KAAK4kM,MAAMuojB,aAAantvB,KAAK0tvB,SAASK,WAAW/tvB,KAAKkuvB,cAC1D,EAEJD,UAAahpvB,UAAI,4BAAwFgpvB,IAx8GN9ovB,8BAw8GoCA,oBAx8GpCA,8BAw8GoEA,eAx8GpEA,8BAw8G+FiovB,GAAQ,KAC1Ma,GAAa3jtB,UAz8GsFnlC,8BAAE,MAy8GR8ovB,GAAY1jtB,wFAlBnG0jtB,EAAY,KA8CZE,GAAe,MAArB,MAAMA,GACFtuvB,YAAYgsvB,GAAeh7S,GAAa68S,IAIpCA,GAASI,YAAY,IAAId,GAAWnB,GAAeh7S,IACvD,EAEJs9S,UAAgBlpvB,UAAI,4BAAwFkpvB,IA7+GThpvB,8BA6+G0CA,oBA7+G1CA,8BA6+G0EA,eA7+G1EA,8BA6+GqGiovB,GAAQ,KAChNe,GAAgB7jtB,UA9+GmFnlC,8BAAE,MA8+GLgpvB,GAAe5jtB,sDATzG4jtB,EAAe,KA0DfC,GAAQ,MAAd,MAAMA,GACFvuvB,YAAYwuvB,IACRruvB,KAAKquvB,cAAgBA,GACrBruvB,KAAKsuvB,WAAa,CAAC,CACvB,CACIC,aAASrivB,IACTlM,KAAK2svB,YAAYzgvB,GACrB,CACAmjH,QAAQnjH,GAAOsivB,IACXxuvB,KAAKsuvB,WAAWpivB,IAASsivB,EAC7B,CACA7B,YAAY8B,IACRzuvB,KAAK0uvB,cACL,MACM59uB,GAAM43uB,GAAkB+F,GADhB9ivB,OAAOtE,KAAKrH,KAAKsuvB,YACmBtuvB,KAAKquvB,eACvDruvB,KAAK2uvB,cAAc3uvB,KAAKsuvB,WAAWx9uB,IACvC,CACA49uB,cACQ1uvB,KAAK4uvB,aACL5uvB,KAAK4uvB,YAAY9ivB,SACzB,CACA6ivB,cAAchylB,IACNA,KACA38J,KAAK4uvB,YAAcjylB,GACnB38J,KAAK4uvB,YAAYhjvB,SAEzB,EAEJwivB,UAASnpvB,UAAI,4BAAwFmpvB,IA3jHFjpvB,8BA2jH4BojvB,IAAc,EAC7I6F,GAAS9jtB,UA5jH0FnlC,8BAAE,MA4jHZipvB,GAAQ7jtB,4EA7B3F6jtB,EAAQ,KA2DRS,GAAY,MAAlB,MAAMA,GACFhvvB,YAAYqM,GAAO02Q,GAAUipe,GAAe0C,IACxCvuvB,KAAKkM,MAAQA,GACb,MAAM4ivB,IAAaniuB,MAAM4/D,OAAOrgF,KAChCqivB,GAASl/nB,QAAQy/nB,GAAa,IAAG5ivB,KAAUA,GAAO,IAAI8gvB,GAAWnB,GAAejpe,IACpF,EAEJise,UAAa5pvB,UAAI,4BAAwF4pvB,IAjmHN1pvB,8BAimHoC,gBAjmHpCA,8BAimHgFA,eAjmHhFA,8BAimH2GA,oBAjmH3GA,8BAimH2IipvB,GAAQ,KACtPS,GAAavktB,UAlmHsFnlC,8BAAE,MAkmHR0pvB,GAAYtktB,mDARnGsktB,EAAY,KA0DZE,GAAO,MAAb,MAAMA,GACFlvvB,YAAY2pvB,GAAOiC,GAAUhmqB,IACzBzlF,KAAKwpvB,MAAQA,GACbxpvB,KAAKyrvB,SAAWA,GAChBzrvB,KAAKylF,UAAYA,GACjBzlF,KAAKgvvB,SAAW,KAChBhvvB,KAAK0rvB,QAAU,IACnB,CACIuD,YAAQt1uB,IACR3Z,KAAKgvvB,SAAWr1uB,IACX3Z,KAAK0rvB,SAAW/xuB,KACjB3Z,KAAK0rvB,QAAU1rvB,KAAKyrvB,SAAS7rtB,KAAKjmB,IAAQ/N,SAElD,CACAg+uB,YACI,GAAI5pvB,KAAK0rvB,QAAS,CACd,MAAM/itB,GAAU3oC,KAAK0rvB,QAAQ57oB,KAAK9vG,KAAKgvvB,UACnCrmtB,IACA3oC,KAAK4rvB,cAAcjjtB,GAAO,CAGtC,CACAumtB,UAAUC,GAAajjvB,IACnB,MAAO9I,GAAM+7D,IAAQgwrB,GAAYt+uB,MAAM,KACjCrD,IAA8B,IAAtBpK,GAAK8N,QAAQ,UAAcjD,EAAYR,+BACxC,MAATvB,GACAlM,KAAKylF,UAAUl4E,SAASvN,KAAKwpvB,MAAMxmsB,cAAe5/C,GAAM+7D,GAAQ,GAAEjzD,KAAQizD,KAASjzD,GAAOsB,IAG1FxN,KAAKylF,UAAU93E,YAAY3N,KAAKwpvB,MAAMxmsB,cAAe5/C,GAAMoK,GAEnE,CACAo+uB,cAAcjjtB,IACVA,GAAQymtB,mBAAoBtzkB,IAAW97K,KAAKkvvB,UAAUpzkB,GAAOhrK,IAAK,OAClE63B,GAAQ0mtB,iBAAkBvzkB,IAAW97K,KAAKkvvB,UAAUpzkB,GAAOhrK,IAAKgrK,GAAOpwF,eACvE/iD,GAAQ2mtB,mBAAoBxzkB,IAAW97K,KAAKkvvB,UAAUpzkB,GAAOhrK,IAAKgrK,GAAOpwF,cAC7E,EAEJqjqB,UAAQ9pvB,UAAI,4BAAwF8pvB,IA1rHD5pvB,8BA0rH0BA,cA1rH1BA,8BA0rHoDA,mBA1rHpDA,8BA0rHmFA,aAAY,EAClM4pvB,GAAQzktB,UA3rH2FnlC,8BAAE,MA2rHb4pvB,GAAOxktB,yEAvCzFwktB,EAAO,KA2EPQ,GAAgB,MAAtB,MAAMA,GACF1vvB,YAAYqqvB,IACRlqvB,KAAKkqvB,kBAAoBA,GACzBlqvB,KAAKwvvB,SAAW,KAOhBxvvB,KAAKyvvB,wBAA0B,KAI/BzvvB,KAAK0vvB,iBAAmB,KAExB1vvB,KAAK2vvB,yBAA2B,IACpC,CAEAjntB,YAAYC,IACR,GAAIA,GAAQ+mtB,kBAAuB/mtB,GAAQgntB,yBAA6B,CACpE,MAAMhre,GAAmB3kR,KAAKkqvB,kBAI9B,GAHIlqvB,KAAKwvvB,UACL7qe,GAAiB/jR,OAAO+jR,GAAiBzzQ,QAAQlR,KAAKwvvB,WAEtDxvvB,KAAK0vvB,iBAAkB,CACvB,MAAQA,iBAAkB9se,GAAU6se,wBAAyBvxuB,GAASyxuB,yBAA0B5rvB,IAAa/D,KAC7GA,KAAKwvvB,SAAW7qe,GAAiB+zK,mBAAmB91K,GAAU1kQ,GAASna,GAAW,CAAEA,kBAAakK,EAAS,MAG1GjO,KAAKwvvB,SAAW,UAGfxvvB,KAAKwvvB,UAAY7mtB,GAAQ8mtB,yBAA8BzvvB,KAAKyvvB,0BACjEzvvB,KAAKwvvB,SAAStxuB,QAAUle,KAAKyvvB,wBAErC,EAEJF,UAAiBtqvB,UAAI,4BAAwFsqvB,IArwHVpqvB,8BAqwH4CA,oBAAmB,EAClKoqvB,GAAiBjltB,UAtwHkFnlC,8BAAE,MAswHJoqvB,GAAgBhltB,kNAtwHdplC,oCA+tH7FoqvB,EAAgB,KAwEtB,SAASK,GAAyBjlvB,GAAMuB,IACpC,OAAO,IAAI2vB,qBAAc,MAAmDjF,EAChF,CAEA,MAAMi5tB,GACFC,mBAAmBtmuB,GAAOumuB,IACtB,OAAOvmuB,GAAMjR,UAAU,CACnBO,KAAMi3uB,GACNl3uB,MAAQ1Q,KACJ,MAAMA,KAGlB,CACA64C,QAAQjyB,IACJA,GAAa5G,aACjB,EAEJ,MAAM6nuB,GACFF,mBAAmBtmuB,GAAOumuB,IACtB,OAAOvmuB,GAAMrlB,KAAK4rvB,GAAmB5nvB,KACjC,MAAMA,IAEd,CACA64C,QAAQjyB,IAAgB,EAE5B,MAAMkhuB,GAAmB,IAAID,GACvBE,GAAwB,IAAIL,GAClC,IA4BMM,EAAS,MAAf,MAAMA,GACFtwvB,YAAY8pC,IACR3pC,KAAKowvB,aAAe,KACpBpwvB,KAAKqwvB,cAAgB,KACrBrwvB,KAAKw2d,KAAO,KACZx2d,KAAKswvB,UAAY,KAGjBtwvB,KAAKuwvB,KAAO5mtB,EAChB,CACAjiC,cACQ1H,KAAKqwvB,eACLrwvB,KAAKwwvB,WAMTxwvB,KAAKuwvB,KAAO,IAChB,CACArujB,UAAU/kJ,IACN,OAAKn9C,KAAKw2d,KAMNr5a,KAAQn9C,KAAKw2d,MACbx2d,KAAKwwvB,WACExwvB,KAAKkiM,UAAU/kJ,KAEnBn9C,KAAKowvB,cATJjzsB,IACAn9C,KAAK8uB,WAAWquB,IAEbn9C,KAAKowvB,aAOpB,CACAthuB,WAAWquB,IACPn9C,KAAKw2d,KAAOr5a,GACZn9C,KAAKswvB,UAAYtwvB,KAAKywvB,gBAAgBtzsB,IACtCn9C,KAAKqwvB,cAAgBrwvB,KAAKswvB,UAAUR,mBAAmB3ysB,GAAMjxC,IAAUlM,KAAK0wvB,mBAAmBvzsB,GAAKjxC,IACxG,CACAukvB,gBAAgBtzsB,IACZ,MAAI3mB,mBAAW2mB,IACX,OAAO8ysB,GAEX,MAAIU,wBAAgBxzsB,IAChB,OAAO+ysB,GAEX,MAAMN,IACV,CACAY,WAGIxwvB,KAAKswvB,UAAUtvsB,QAAQhhD,KAAKqwvB,eAC5BrwvB,KAAKowvB,aAAe,KACpBpwvB,KAAKqwvB,cAAgB,KACrBrwvB,KAAKw2d,KAAO,IAChB,CACAk6R,mBAAmBlnuB,GAAOtd,IAClBsd,KAAUxpB,KAAKw2d,OACfx2d,KAAKowvB,aAAelkvB,GAGpBlM,KAAKuwvB,KAAKlmtB,eAElB,EAEJ8ltB,UAAUlrvB,UAAI,4BAAwFkrvB,IA95HHhrvB,8BA85H8BA,oBAAoB,MACrJgrvB,GAAUS,WA/5HyFzrvB,yBAAE,mBA+5HDgrvB,GAASl8f,wBAjEvGk8f,EAAS,KA0FTU,EAAa,MAAnB,MAAMA,GACF3ujB,UAAUh2L,IACN,GAAa,MAATA,GACA,OAAO,KACX,GAAqB,iBAAVA,GACP,MAAM0jvB,KAEV,OAAO1jvB,GAAM0E,aACjB,EAEJigvB,UAAc5rvB,UAAI,4BAAwF4rvB,GAAa,EACvHA,GAAcD,WAn8HqFzrvB,yBAAE,uBAm8HG0rvB,GAAa58f,wBAX/G48f,EAAa,KA2BnB,MAAMC,EAAmB,qrPACzB,IAiBMC,EAAa,MAAnB,MAAMA,GACF7ujB,UAAUh2L,IACN,GAAa,MAATA,GACA,OAAO,KACX,GAAqB,iBAAVA,GACP,MAAM0jvB,KAEV,OAAO1jvB,GAAMtC,QAAQknvB,EAAmB7iY,IAAOA,GAAI,GAAGjwW,cAAgBiwW,GAAIloX,MAAM,GAAG6K,cACvF,EAEJmgvB,UAAc9rvB,UAAI,4BAAwF8rvB,GAAa,EACvHA,GAAcH,WAh/HqFzrvB,yBAAE,uBAg/HG4rvB,GAAa98f,wBAX/G88f,EAAa,KA2BbC,EAAa,MAAnB,MAAMA,GACF9ujB,UAAUh2L,IACN,GAAa,MAATA,GACA,OAAO,KACX,GAAqB,iBAAVA,GACP,MAAM0jvB,KAEV,OAAO1jvB,GAAM8R,aACjB,EAEJgzuB,UAAc/rvB,UAAI,4BAAwF+rvB,GAAa,EACvHA,GAAcJ,WA3gIqFzrvB,yBAAE,uBA2gIG6rvB,GAAa/8f,wBAX/G+8f,EAAa,KAwBnB,MAQMC,EAA6B,IAAIztvB,iBAAe,8BAgChD0tvB,GAA4B,IAAI1tvB,iBAAe,6BA+JrD,IACM2tvB,GAAQ,MAAd,MAAMA,GACFtxvB,YAAY4/a,GAAQ2xU,GAAiB19G,IACjC1zoB,KAAKy/a,OAASA,GACdz/a,KAAKoxvB,gBAAkBA,GACvBpxvB,KAAK0zoB,eAAiBA,EAC1B,CACAxxc,UAAUh2L,GAAOiiF,GAAQyqkB,GAAUn5O,IAC/B,GAAa,MAATvza,IAA2B,KAAVA,IAAgBA,IAAUA,GAC3C,OAAO,KACX,IAGI,OAAOunP,GAAWvnP,GAFFiiF,IAAUnuF,KAAK0zoB,gBAAgBya,YAlN/B,aAoNkB1uO,IAAUz/a,KAAKy/a,OAD/Bm5O,IAAY54pB,KAAK0zoB,gBAAgBklB,UAAY54pB,KAAKoxvB,sBAAmBnjvB,EAK3F,CAHA,MACO4K,IACH,MAAM+2uB,IACV,CACJ,EAEJuB,UAASlsvB,UAAI,4BAAwFksvB,IAnvIFhsvB,8BAmvI4BqjvB,YAAS,IAnvIrCrjvB,8BAmvIkD8rvB,EAA0B,IAnvI5E9rvB,8BAmvIyG+rvB,GAAyB,MACrOC,GAASP,WApvI0FzrvB,yBAAE,kBAovIFgsvB,GAAQl9f,wBApBrGk9f,EAAQ,KA2Cd,MAAME,GAAwB,KAC9B,IAcMC,GAAc,MAApB,MAAMA,GACFzxvB,YAAYwuvB,IACRruvB,KAAKquvB,cAAgBA,EACzB,CAQAnsjB,UAAUh2L,GAAOqlvB,GAAW9xU,IACxB,GAAa,MAATvza,GACA,MAAO,GACX,GAAyB,iBAAdqlvB,IAAwC,OAAdA,GACjC,MAAM3B,KAGV,OAAO2B,GADK7I,GAAkBx8uB,GAAOP,OAAOtE,KAAKkqvB,IAAYvxvB,KAAKquvB,cAAe5uU,KAC3D71a,QAAQynvB,GAAuBnlvB,GAAMoK,WAC/D,EAEJg7uB,UAAersvB,UAAI,4BAAwFqsvB,IA/yIRnsvB,8BA+yIwCojvB,GAAc,MACzJ+I,GAAeV,WAhzIoFzrvB,yBAAE,wBAgzIImsvB,GAAcr9f,wBAtBjHq9f,EAAc,KAiDdE,GAAc,MAApB,MAAMA,GAMFtvjB,UAAUh2L,GAAOq/I,IACb,GAAa,MAATr/I,GACA,MAAO,GACX,GAAuB,iBAAZq/I,IAAyC,iBAAVr/I,GACtC,MAAM0jvB,KAEV,OAAIrkmB,GAAQ12H,eAAe3oB,IAChBq/I,GAAQr/I,IAEfq/I,GAAQ12H,eAAe,SAChB02H,GAAQ/wI,MAEZ,EACX,EAEJg3uB,UAAevsvB,UAAI,4BAAwFusvB,GAAc,EACzHA,GAAeZ,WAj2IoFzrvB,yBAAE,wBAi2IIqsvB,GAAcv9f,wBAtBjHu9f,EAAc,KA+Cdh8T,GAAQ,MAAd,MAAMA,GAIFtzP,UAAUh2L,IACN,OAAOsS,KAAKC,UAAUvS,GAAO,KAAM,EACvC,EAEJspb,UAASvwb,UAAI,4BAAwFuwb,GAAQ,EAC7GA,GAASo7T,WAn4I0FzrvB,yBAAE,kBAm4IFqwb,GAAQvhM,wBATrGuhM,EAAQ,KA0CRi8T,GAAY,MAAlB,MAAMA,GACF5xvB,YAAY6xvB,IACR1xvB,KAAK0xvB,QAAUA,GACf1xvB,KAAK2xvB,UAAY,GACjB3xvB,KAAK4xvB,UAAYC,EACrB,CACA3vjB,UAAU/6K,GAAOyquB,GAAYC,IACzB,IAAK1quB,MAAYA,cAAiBzhB,MAAyB,iBAAVyhB,GAC7C,OAAO,KAENnnB,KAAK8xvB,SAEN9xvB,KAAK8xvB,OAAS9xvB,KAAK0xvB,QAAQ9xtB,KAAKzY,IAAOvb,UAE3C,MAAMmmvB,GAAgB/xvB,KAAK8xvB,OAAOhipB,KAAK3oF,IACjC6quB,GAAmBJ,KAAc5xvB,KAAK4xvB,UAC5C,OAAIG,KACA/xvB,KAAK2xvB,UAAY,GACjBI,GAAcE,YAAar8uB,KACvB5V,KAAK2xvB,UAAU/ovB,KA1C/B,SAASspvB,GAAiBphvB,GAAK5E,IAC3B,MAAO,CAAE4E,IAAKA,GAAK5E,MAAOA,GAC9B,CAwCoCgmvB,CAAiBt8uB,GAAE9E,IAAK8E,GAAE81E,cAAa,KAG/DqmqB,IAAiBC,MACjBhyvB,KAAK2xvB,UAAU37tB,KAAK47tB,IACpB5xvB,KAAK4xvB,UAAYA,IAEd5xvB,KAAK2xvB,SAChB,EAEJF,UAAaxsvB,UAAI,4BAAwFwsvB,IAj8INtsvB,8BAi8IoCA,kBAAkB,MACzJssvB,GAAab,WAl8IsFzrvB,yBAAE,sBAk8IEssvB,GAAYx9f,wBA9B7Gw9f,EAAY,KAuClB,SAASI,GAAkBM,GAAWC,IAClC,MAAMphuB,GAAImhuB,GAAUrhvB,IACdmgB,GAAImhuB,GAAUthvB,IAEpB,GAAIkgB,KAAMC,GACN,OAAO,EAEX,QAAUhjB,IAAN+iB,GACA,OAAO,EACX,QAAU/iB,IAANgjB,GACA,OAAO,EAEX,GAAU,OAAND,GACA,OAAO,EACX,GAAU,OAANC,GACA,OAAO,EACX,GAAgB,iBAALD,IAA6B,iBAALC,GAC/B,OAAOD,GAAIC,IAAI,EAAK,EAExB,GAAgB,iBAALD,IAA6B,iBAALC,GAC/B,OAAOD,GAAIC,GAEf,GAAgB,kBAALD,IAA8B,kBAALC,GAChC,OAAOD,GAAIC,IAAI,EAAK,EAGxB,MAAMohuB,GAAUh8uB,OAAO2a,IACjBshuB,GAAUj8uB,OAAO4a,IACvB,OAAOohuB,IAAWC,GAAU,EAAID,GAAUC,IAAU,EAAK,CAC7D,CAEA,IA+DMC,GAAW,MAAjB,MAAMA,GACF1yvB,YAAYiptB,IACR9otB,KAAK8otB,QAAUA,EACnB,CAQA5mhB,UAAUh2L,GAAOg6uB,GAAYzmU,IACzB,IAAK+yU,GAAQtmvB,IACT,OAAO,KACXuza,GAASA,IAAUz/a,KAAK8otB,QACxB,IAEI,OAAO76nB,GADKwkqB,GAAYvmvB,IACCuza,GAAQymU,GAIrC,CAHA,MACOrtuB,IACH,MAAM+2uB,IACV,CACJ,EAEJ2C,UAAYttvB,UAAI,4BAAwFstvB,IAjkJLptvB,8BAikJkCqjvB,YAAS,MAC9I+J,GAAY3B,WAlkJuFzrvB,yBAAE,oBAkkJCotvB,GAAWt+f,wBAzB3Gs+f,EAAW,KAwDXG,GAAW,MAAjB,MAAMA,GACF7yvB,YAAYiptB,IACR9otB,KAAK8otB,QAAUA,EACnB,CAiBA5mhB,UAAUh2L,GAAOg6uB,GAAYzmU,IACzB,IAAK+yU,GAAQtmvB,IACT,OAAO,KACXuza,GAASA,IAAUz/a,KAAK8otB,QACxB,IAEI,OAAOq/B,GADKsK,GAAYvmvB,IACEuza,GAAQymU,GAItC,CAHA,MACOrtuB,IACH,MAAM+2uB,IACV,CACJ,EAEJ8C,UAAYztvB,UAAI,4BAAwFytvB,IAloJLvtvB,8BAkoJkCqjvB,YAAS,MAC9IkK,GAAY9B,WAnoJuFzrvB,yBAAE,qBAmoJCutvB,GAAWz+f,wBAlC3Gy+f,EAAW,KAkEXC,GAAY,MAAlB,MAAMA,GACF9yvB,YAAYiptB,GAAS8pC,GAAuB,OACxC5yvB,KAAK8otB,QAAUA,GACf9otB,KAAK4yvB,qBAAuBA,EAChC,CAkCA1wjB,UAAUh2L,GAAO+7uB,GAAejovB,KAAK4yvB,qBAAsB3xqB,GAAU,SAAUilqB,GAAYzmU,IACvF,IAAK+yU,GAAQtmvB,IACT,OAAO,KACXuza,GAASA,IAAUz/a,KAAK8otB,QACD,kBAAZ7noB,KAIPA,GAAUA,GAAU,SAAW,QAEnC,IAAIupc,GAAWy9N,IAAgBjovB,KAAK4yvB,qBACpB,SAAZ3xqB,KAEIupc,GADY,WAAZvpc,IAAoC,kBAAZA,GACbu/pB,EAAkBh2N,GAAsB,WAAZvpc,GAAuB,OAAS,SAAUw+V,IAGtEx+V,IAGnB,IAEI,OAAO+mqB,GADKyK,GAAYvmvB,IACGuza,GAAQ+qG,GAAUy9N,GAAc/B,GAI/D,CAHA,MACOrtuB,IACH,MAAM+2uB,IACV,CACJ,EAEJ+C,UAAa1tvB,UAAI,4BAAwF0tvB,IAruJNxtvB,8BAquJoCqjvB,YAAS,IAruJ7CrjvB,8BAquJ0D0tvB,wBAAqB,MAClLF,GAAa/B,WAtuJsFzrvB,yBAAE,sBAsuJEwtvB,GAAY1+f,wBAnE7G0+f,EAAY,KAiFlB,SAASH,GAAQtmvB,IACb,QAAkB,MAATA,IAA2B,KAAVA,IAAgBA,IAAUA,GACxD,CAIA,SAASumvB,GAAYvmvB,IAEjB,GAAqB,iBAAVA,KAAuBygB,MAAM4/D,OAAOrgF,IAASgzD,WAAWhzD,KAC/D,OAAOqgF,OAAOrgF,IAElB,GAAqB,iBAAVA,GACP,MAAM,IAAIzF,MAAO,GAAEyF,sBAEvB,OAAOA,EACX,CAEA,IAmCM4mvB,GAAS,MAAf,MAAMA,GACF5wjB,UAAUh2L,GAAOm3E,GAAO73E,IACpB,GAAa,MAATU,GACA,OAAO,KACX,IAAKlM,KAAKuG,SAAS2F,IACf,MAAM0jvB,KAEV,OAAO1jvB,GAAMnG,MAAMs9E,GAAO73E,GAC9B,CACAjF,SAAS42C,IACL,MAAsB,iBAARA,IAAoBrjC,MAAM2C,QAAQ0gC,GACpD,EAEJ21sB,UAAU7tvB,UAAI,4BAAwF6tvB,GAAS,EAC/GA,GAAUlC,WAtzJyFzrvB,yBAAE,mBAszJD2tvB,GAAS7+f,wBAdvG6+f,EAAS,KA0DT39uB,GAAY,MAAlB,MAAMA,IAENA,UAAalQ,UAAI,4BAAwFkQ,GAAY,EACrHA,GAAaH,UAr2JsF7P,6BAAE,MAq2JKgQ,KAC1GA,GAAaF,UAt2JsF9P,6BAAE,IAk2J/FgQ,EAAY,KAalB,MAAM49uB,GAAsB,UACtBC,GAAqB,SACrBC,GAAyB,mBACzBC,GAAwB,kBAK9B,SAASC,GAAkBC,IACvB,OAAOA,KAAeL,EAC1B,CAKA,SAASM,GAAiBD,IACtB,OAAOA,KAAeJ,EAC1B,CAKA,SAASM,GAAoBF,IACzB,OAAOA,KAAeH,EAC1B,CAKA,SAASM,GAAmBH,IACxB,OAAOA,KAAeF,EAC1B,CAUA,MAAMM,EAAU,IAAIC,UAAQ,UAE5B,IAKMtrsB,GAAgB,MAAtB,MAAMA,IAKNA,UAAiBjjD,cAAQwuvB,gCAAmB,CACxCz2uB,MAAOkrC,GACP5+C,WAAY,OACZnE,QAAS,IAAM,IAAIuuvB,MAAwBh+uB,sBAAShR,IAAW3C,UAR7DmmD,EAAgB,KAatB,MAAMwrsB,GACF9zvB,YAAYwB,GAAUW,IAClBhC,KAAKqB,SAAWA,GAChBrB,KAAKgC,OAASA,GACdhC,KAAKkuD,OAAS,IAAM,CAAC,EAAG,EAC5B,CAOA7F,UAAU6F,IAEFluD,KAAKkuD,OADLp0C,MAAM2C,QAAQyxC,IACA,IAAMA,GAGNA,EAEtB,CAKAzI,oBACI,OAAIzlD,KAAK4zvB,oBACE,CAAC5zvB,KAAKgC,OAAO+4Q,YAAa/6Q,KAAKgC,OAAOk5Q,aAGtC,CAAC,EAAG,EAEnB,CAKAv1N,iBAAiBrjB,IACTtiC,KAAK4zvB,qBACL5zvB,KAAKgC,OAAOk4L,SAAS53J,GAAS,GAAIA,GAAS,GAEnD,CAYAsjB,eAAe7jD,IACX,IAAK/B,KAAK4zvB,oBACN,OAEJ,MAAMC,GAyEd,SAASC,GAAuBzyvB,GAAUU,IACtC,MAAMgyvB,GAAiB1yvB,GAAS8zO,eAAepzO,KAAWV,GAASsnrB,kBAAkB5mrB,IAAQ,GAC7F,GAAIgyvB,GACA,OAAOA,GAIX,GAAyC,mBAA9B1yvB,GAAS2yvB,kBAAmC3yvB,GAASY,OAC3DZ,GAASY,KAAKgyvB,kBAAoB5yvB,GAASY,KAAKoM,cAAe,CAChE,MAAM6lvB,GAAa7yvB,GAAS2yvB,iBAAiB3yvB,GAASY,KAAMkyvB,WAAWC,cACvE,IAAIC,GAAcH,GAAWG,YAC7B,KAAOA,IAAa,CAChB,MAAMjmvB,GAAaimvB,GAAYjmvB,WAC/B,GAAIA,GAAY,CAGZ,MAAMkD,GAASlD,GAAW+mO,eAAepzO,KAAWqM,GAAW9L,cAAe,UAASP,QACvF,GAAIuP,GACA,OAAOA,GAGf+ivB,GAAcH,GAAWI,UAAQ,EAGzC,OAAO,IACX,CAlG2BR,CAAuB9zvB,KAAKqB,SAAUU,IACrD8xvB,KACA7zvB,KAAKu0vB,gBAAgBV,IAOrBA,GAAWn5lB,QAEnB,CAIAt1G,4BAA4BovsB,IACxB,GAAIx0vB,KAAKy0vB,2BAA4B,CACjC,MAAMzhhB,GAAUhzO,KAAKgC,OAAOgxO,QACxBA,IAAWA,GAAQwhhB,oBACnBxhhB,GAAQwhhB,kBAAoBA,IAGxC,CAOAD,gBAAgBj0vB,IACZ,MAAM44J,GAAO54J,GAAGuiK,wBACV5yD,GAAOipD,GAAKjpD,KAAOjwG,KAAKgC,OAAO+4Q,YAC/Bx7H,GAAM2Z,GAAK3Z,IAAMv/I,KAAKgC,OAAOk5Q,YAC7BhtN,GAASluD,KAAKkuD,SACpBluD,KAAKgC,OAAOk4L,SAASjqF,GAAO/hD,GAAO,GAAIqxF,GAAMrxF,GAAO,GACxD,CASAumsB,2BACI,IACI,IAAKz0vB,KAAK4zvB,oBACN,OAAO,EAGX,MAAMc,GAA8BC,GAA6B30vB,KAAKgC,OAAOgxO,UACzE2hhB,GAA6BhpvB,OAAO2vb,eAAet7b,KAAKgC,OAAOgxO,UAGnE,SAAS0hhB,KACFA,GAA4BjuM,WAAYiuM,GAA4BluvB,IAI/E,CAHA,MAEI,OAAO,CACX,CACJ,CACAotvB,oBACI,IACI,QAAS5zvB,KAAKgC,UAAYhC,KAAKgC,OAAOk4L,UAAY,gBAAiBl6L,KAAKgC,MAI5E,CAHA,MAEI,OAAO,CACX,CACJ,EAEJ,SAAS2yvB,GAA6Bx3sB,IAClC,OAAOxxC,OAAO6xb,yBAAyBrgZ,GAAK,oBAChD,CA8BA,MAAMy3sB,GAIFvssB,UAAU6F,IAAU,CAIpBzI,oBACI,MAAO,CAAC,EAAG,EACf,CAIAE,iBAAiBrjB,IAAY,CAI7BsjB,eAAerjB,IAAU,CAIzB6iB,4BAA4BovsB,IAAqB,EAQrD,MAAM9/uB,IAkCN,SAASmgvB,GAAatjjB,IAClB,OAAOA,GAAI7rL,WAAW,KAAO6rL,GAAIxrM,MAAM,GAAKwrM,EAChD,CASA,MAAMujjB,GAAmBpltB,IAAWA,GAAO6hK,IAQrCwjjB,GAAe,IAAIvxvB,iBAAe,cAAe,CACnD+F,WAAY,OACZnE,QAAS,IAAM0vvB,KAWnB,SAASE,GAAkBC,GAAYC,IACnC,OAAO,SAA4B//tB,IAC/B,OAnDR,SAASgguB,GAAYhguB,IAEjB,GADiC,iBAATA,IACS,KAAhBA,GAAK5b,OAClB,OAAO,EAGX,IAEI,OADY,IAAI88R,IAAIlhR,KACb,CAIX,CAHA,MAEI,OAAO,CACX,CACJ,CAsCagguB,CAAYhguB,KAqBzB,SAASiguB,GAAsBjguB,GAAM+/tB,IACjC,MAAM,IAAIr5tB,qBAAc,MAAsDjF,EAGlF,CAxBYw+tB,GAIJjguB,GA1CR,SAASkguB,GAAclguB,IACnB,OAAOA,GAAK28sB,SAAS,KAAO38sB,GAAKpvB,MAAM,GAAG,GAAMovB,EACpD,CAwCekguB,CAAclguB,IAYH,CAAC,CAAEzxB,QAASqxvB,GAAc5ivB,SAX1Bu9B,KAjE1B,SAAS4ltB,GAAc/jjB,IACnB,MAAO,eAAepuL,KAAKouL,GAC/B,CAgEgB+jjB,CAAc5ltB,GAAO6hK,MAmBrC,SAASgkjB,GAAgCpguB,GAAM1yB,IAC3C,MAAM,IAAIo5B,qBAAc,MAAsDjF,EAMlF,CApBgB2+tB,GAEGN,GAAW9/tB,GAAM,IAAKua,GAAQ6hK,IAAKsjjB,GAAanltB,GAAO6hK,SAItE,CACJ,CA0BA,MAAMikjB,GAA0BR,GAAkBS,IAClD,SAASA,GAAoBtguB,GAAMua,IAC/B,IAAI76B,GAAU,cACd,OAAI66B,GAAO+oB,QACP5jD,IAAW,UAAS66B,GAAO+oB,SAIvB,GAAEtjC,oBAAsBtgB,MAAU66B,GAAO6hK,KACrD,CA4BA,MAAMmkjB,GAA0BV,GAAkBW,IAMlD,SAASA,GAAoBxguB,GAAMua,IAK/B,IAAI76B,GAAU,gBACd,OAAI66B,GAAO+oB,QACP5jD,IAAW,MAAK66B,GAAO+oB,SAEnB,GAAEtjC,mBAAqBtgB,MAAU66B,GAAO6hK,KACpD,CA2BA,MAAMqkjB,GAAwBZ,GAAkBa,IAChD,SAASA,GAAkB1guB,GAAMua,IAG7B,MAAQ6hK,OAAK94I,UAAU/oB,GACvB,IAAIomtB,GAQJ,OALIA,GAFAr9rB,GAEc,CAACtjC,GADC,QAAOsjC,KACM84I,IAGf,CAACp8K,GAAMo8K,IAElBukjB,GAAYh5uB,KAAK,IAC5B,CAyBA,MAAMi5uB,GAAqBf,GAAkBgB,IAC7C,SAASA,GAAe7guB,GAAMua,IAC1B,MAAMjtC,GAAM,IAAI4zS,IAAK,GAAElhR,MAAQua,GAAO6hK,OAEtC9uM,UAAIwzvB,aAAazvvB,IAAI,OAAQ,UACzBkpC,GAAO+oB,OACPh2D,GAAIwzvB,aAAazvvB,IAAI,IAAKkpC,GAAO+oB,MAAMniD,YAEpC7T,GAAIN,IACf,CA2GA,MAmBM+zvB,GAA6B,IAAI1yvB,iBAAe,8BAqHhD2yvB,GAAmB,IAAI3yvB,iBAAe,gCAAiC,CAAE+F,WAAY,OAAQnE,QAAS,IAAM,IAAI2C,MAEtH,IAQMquvB,GAAkB,MAAxB,MAAMA,GACFv2vB,cACIG,KAAKq2vB,mBAAkB30uB,UAAOy0uB,IAC9Bn2vB,KAAKqB,YAAWqgB,UAAO/c,GAC3B,CAiBA2xvB,qBAAqB1rvB,GAAU2mM,GAAKgljB,GAAQC,IAUxC,GAAIx2vB,KAAKq2vB,gBAAgB58uB,IAAI83L,IACzB,OAEJvxM,KAAKq2vB,gBAAgB/tvB,IAAIipM,IACzB,MAAMntJ,GAAUx5C,GAAS5J,cAAc,QACvC4J,GAASjI,aAAayhD,GAAS,KAAM,SACrCx5C,GAASjI,aAAayhD,GAAS,OAAQmtJ,IACvC3mM,GAASjI,aAAayhD,GAAS,MAAO,WACtCx5C,GAASjI,aAAayhD,GAAS,gBAAiB,QAC5CoysB,IACA5rvB,GAASjI,aAAayhD,GAAS,aAAcoysB,IAE7CD,IACA3rvB,GAASjI,aAAayhD,GAAS,cAAemysB,IAElD3rvB,GAASlC,YAAY1I,KAAKqB,SAASwH,KAAMu7C,GAC7C,EAEJgysB,UAAmBnxvB,UAAI,4BAAwFmxvB,GAAkB,EACjIA,GAAmBlxvB,WAzoLgFC,+BAAE,OAyoLcixvB,GAAkBhxvB,QAAlBgxvB,GAAkB,qBAAc,SAlD7IA,EAAkB,KA+DxB,MAKMK,GAAgC,4BAoBhCC,GAA6B,CAAC,EAAG,GAuBjCrviB,GAAgB,CAClBsviB,YAAa,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,OAStFC,GAAe,IAAIpzvB,iBAAe,cAAe,CAAE+F,WAAY,OAAQnE,QAAS,IAAMiiN,KAC5F,IAkGMwviB,GAAgB,MAAtB,MAAMA,GACFh3vB,cACIG,KAAK82vB,eAAcp1uB,UAAOqzuB,IAC1B/0vB,KAAK0vC,OAkTb,SAASqntB,GAAcrntB,IACnB,IAAIsntB,GAAoB,CAAC,EACzB,OAAItntB,GAAOintB,cACPK,GAAkBL,YAAcjntB,GAAOintB,YAAY3guB,KAAK,CAAChF,GAAGC,KAAMD,GAAIC,KAEnEtlB,OAAO2gM,OAAO,CAAC,EAAG+a,GAAe33K,GAAQsntB,GACpD,CAxTsBD,IAAcr1uB,UAAOk1uB,KACnC52vB,KAAK4K,YAAW8W,UAAOu1uB,aACvBj3vB,KAAKk3vB,cAAax1uB,UAAOy8a,cAAYn7Y,cACrChjD,KAAK+D,YAAW2d,UAAO9c,YACvB5E,KAAKm3vB,SAAW9D,MAAiB3xuB,UAAOxP,gBACxClS,KAAKo3vB,sBAAqB11uB,UAAO00uB,IAEjCp2vB,KAAKq3vB,YAAgE,KAOrEr3vB,KAAKs3vB,aAAe,KACpBt3vB,KAAKu3vB,WAAY,EACjBv3vB,KAAKw3vB,yBAA0B,EAC/Bx3vB,KAAKy3vB,OAAQ,CACjB,CAKIh/rB,UAAMvsD,IAENlM,KAAK03vB,OAASC,GAAezrvB,GACjC,CACIusD,YACA,OAAOz4D,KAAK03vB,MAChB,CAMI3uqB,WAAO78E,IAEPlM,KAAKilL,QAAU0ykB,GAAezrvB,GAClC,CACI68E,aACA,OAAO/oF,KAAKilL,OAChB,CAIIomiB,aAASn/sB,IACTlM,KAAKu3vB,UAAYK,GAAe1rvB,GACpC,CACIm/sB,eACA,OAAOrrtB,KAAKu3vB,SAChB,CAIIM,2BAAuB3rvB,IACvBlM,KAAKw3vB,wBAA0BI,GAAe1rvB,GAClD,CACI2rvB,6BACA,OAAO73vB,KAAKw3vB,uBAChB,CAOI9yqB,SAAKx4E,IACLlM,KAAKy3vB,MAAQG,GAAe1rvB,GAChC,CACIw4E,WACA,OAAO1kF,KAAKy3vB,KAChB,CAEAxutB,WA2CIjpC,KAAK83vB,mBACT,CACAA,oBAGQ93vB,KAAK0kF,KACA1kF,KAAKw2vB,QACNx2vB,KAAKw2vB,MAAQ,UAIjBx2vB,KAAK+3vB,iBAAiB,QAAS/3vB,KAAKy4D,MAAMniD,YAC1CtW,KAAK+3vB,iBAAiB,SAAU/3vB,KAAK+oF,OAAOzyE,aAEhDtW,KAAK+3vB,iBAAiB,UAAW/3vB,KAAKg4vB,sBACtCh4vB,KAAK+3vB,iBAAiB,gBAAiB/3vB,KAAKi4vB,oBAG5Cj4vB,KAAK+3vB,iBAAiB,SAAU,QAGhC,MAAMG,GAAel4vB,KAAKm4vB,kBAE1B,IAAIC,GADJp4vB,KAAK+3vB,iBAAiB,MAAOG,IAEzBl4vB,KAAKw2vB,OACLx2vB,KAAK+3vB,iBAAiB,QAAS/3vB,KAAKw2vB,OAEpCx2vB,KAAKq4vB,SACLD,GAAkBp4vB,KAAKs4vB,qBAElBt4vB,KAAKu4vB,kCACVH,GAAkBp4vB,KAAKw4vB,sBAEvBJ,IACAp4vB,KAAK+3vB,iBAAiB,SAAUK,IAEhCp4vB,KAAKm3vB,UAAYn3vB,KAAKqrtB,UACtBrrtB,KAAKo3vB,mBAAmBd,qBAAqBt2vB,KAAK4K,SAAUstvB,GAAcE,GAAiBp4vB,KAAKw2vB,MAExG,CAEA9ttB,YAAYC,IAeZ,CACA8vtB,gBAAgBC,IACZ,IAAIC,GAAkBD,GACtB,OAAI14vB,KAAK44vB,eACLD,GAAgBC,aAAe54vB,KAAK44vB,cAEjC54vB,KAAK82vB,YAAY6B,GAC5B,CACAX,qBACI,OAAKh4vB,KAAKqrtB,eAA6Bp9sB,IAAjBjO,KAAKitD,QAGpBjtD,KAAKqrtB,SAAW,QAAU,OAFtBrrtB,KAAKitD,OAGpB,CACAgrsB,mBACI,OAAOj4vB,KAAKqrtB,SAAW,OAAS,MACpC,CACA8sC,kBASI,OALKn4vB,KAAKs3vB,eAGNt3vB,KAAKs3vB,aAAet3vB,KAAKy4vB,gBAFP,CAAElnjB,IAAKvxM,KAAK64vB,SAI3B74vB,KAAKs3vB,YAChB,CACAgB,qBACI,MAAMQ,GAAcrC,GAA8BtzuB,KAAKnjB,KAAKq4vB,UAM5D,OALkBr4vB,KAAKq4vB,SAASxnvB,MAAM,KAAKkH,OAAOw5L,IAAe,KAARA,IAAYhqM,IAAIwxvB,KACrEA,GAASA,GAAOx/uB,OAChB,MAAMk/C,GAAQqgsB,GAAc55rB,WAAW65rB,IAAU75rB,WAAW65rB,IAAU/4vB,KAAKy4D,MAC3E,MAAQ,GAAEz4D,KAAKy4vB,gBAAgB,CAAElnjB,IAAKvxM,KAAK64vB,MAAOpgsB,cAAYsgsB,OAEjDj8uB,KAAK,KAC1B,CACA07uB,qBACI,OAAIx4vB,KAAKw2vB,MACEx2vB,KAAKg5vB,sBAGLh5vB,KAAKi5vB,gBAEpB,CACAD,sBACI,MAAQrC,gBAAgB32vB,KAAK0vC,OAC7B,IAAIwptB,GAAsBvC,GAC1B,MAA2B,UAAvB32vB,KAAKw2vB,OAAOj9uB,SAGZ2/uB,GAAsBvC,GAAY5+uB,OAAOwlmB,IAAMA,IAlWxB,MAoWT27I,GAAoB3xvB,IAAIg2mB,IAAO,GAAEv9mB,KAAKy4vB,gBAAgB,CAAElnjB,IAAKvxM,KAAK64vB,MAAOpgsB,MAAO8kjB,QAASA,OAC1FzgmB,KAAK,KAC1B,CACAm8uB,iBAKI,OAJkBvC,GAA2BnvvB,IAAI4xvB,IAAe,GAAEn5vB,KAAKy4vB,gBAAgB,CACnFlnjB,IAAKvxM,KAAK64vB,MACVpgsB,MAAOz4D,KAAKy4D,MAAQ0gsB,QAClBA,OACWr8uB,KAAK,KAC1B,CACAy7uB,gCACI,OAAQv4vB,KAAKw3vB,0BAA4Bx3vB,KAAKu2vB,QAAUv2vB,KAAK82vB,cAAgBhC,MACvE90vB,KAAKy4D,MAjWc,MAiWsBz4D,KAAK+oF,OAhW1B,KAiW9B,CAEArhF,cAMA,CACAqwvB,iBAAiB30vB,GAAM8I,IACnBlM,KAAK4K,SAASjI,aAAa3C,KAAKk3vB,WAAY9zvB,GAAM8I,GACtD,EAEJ2qvB,UAAiB5xvB,UAAI,4BAAwF4xvB,GAAgB,EAC7HA,GAAiBvstB,UAljMkFnlC,8BAAE,MAkjMJ0xvB,GAAgBtstB,6EAljMdplC,wBAAE,mCAAFA,CAAE,4BAAFA,CAAE,6BAAFA,CAAE,oSAAFA,oCAmzL7F0xvB,EAAgB,KAyStB,SAASc,GAAezrvB,IACpB,MAAwB,iBAAVA,GAAqB2zI,SAAS3zI,GAAO,IAAMA,EAC7D,CAIA,SAAS0rvB,GAAe1rvB,IACpB,OAAgB,MAATA,IAAgC,SAAd,GAAEA,IAC/B,y8VC/oMO,MAAMktvB,GACTv5vB,YAAYquuB,EAAgBtitB,GACxB5rB,KAAKkuuB,eAAiBA,EACtBluuB,KAAK4rB,SAAWA,CACpB,CACAvT,KAAKC,EAAYJ,GACb,MAAQ0T,YAAa5rB,KACfs4H,EAAUt4H,KAAKkuuB,iBACfn/sB,GAAenD,EAAS0sG,GAAS//G,UAAUD,GACjDyW,UAAazmB,IAAI4P,EAAOK,UAAU+/G,IAC3BvpG,EACX,kBC7BJ,SAASsquB,KACL,OAAO,IAAIjxuB,IACf,CCIA,SAASkxuB,GAAuBC,GAC5B,QAASzovB,KAAOyovB,EACZ,GAAIA,EAAyBzovB,KAASwovB,GAClC,OAAOxovB,EAGf,MAAMrK,MAAM,oDAChB,CAOA,SAAS+yvB,GAAez3vB,EAAQmW,GAC5B,UAAWpH,KAAOoH,EACVA,EAAO2c,eAAe/jB,KAAS/O,EAAO8yB,eAAe/jB,KACrD/O,EAAO+O,GAAOoH,EAAOpH,GAGjC,CAEA,SAAS2N,GAAUxB,GACf,GAAqB,iBAAVA,EACP,OAAOA,EAEX,GAAInD,MAAM2C,QAAQQ,GACd,MAAO,IAAMA,EAAM1V,IAAIkX,IAAW3B,KAAK,MAAQ,IAEnD,GAAa,MAATG,EACA,MAAO,GAAKA,EAEhB,GAAIA,EAAMw8uB,eACN,MAAQ,GAAEx8uB,EAAMw8uB,iBAEpB,GAAIx8uB,EAAM7Z,KACN,MAAQ,GAAE6Z,EAAM7Z,OAEpB,MAAMsZ,EAAMO,EAAM3G,WAClB,GAAW,MAAPoG,EACA,MAAO,GAAKA,EAEhB,MAAMg9uB,EAAeh9uB,EAAIxL,QAAQ,MACjC,OAAwB,IAAjBwovB,EAAsBh9uB,EAAMA,EAAI+Y,UAAU,EAAGikuB,EACxD,CASA,SAASC,GAAuBx3mB,EAAQob,GACpC,OAAkB,MAAVpb,GAA6B,KAAXA,EACX,OAAVob,EAAiB,GAAKA,EACZ,MAATA,GAA2B,KAAVA,EAAgBpb,EAASA,EAAS,IAAMob,CACnE,CAEA,MAAMq8lB,EAAkBN,GAAuB,CAAEM,gBAAiBN,KAalE,SAASpngB,EAAW2ngB,GAChBA,SAAaD,gBAAkB1ngB,EAC/B2ngB,EAAavjvB,SAAW,WACpB,OAAOmI,GAAUze,OACrB,EACO65vB,CACX,CAcA,SAASC,EAAkBnvvB,GACvB,OAAOovvB,GAAapvvB,GAAQA,IAASA,CACzC,CAEA,SAASovvB,GAAal/uB,GAClB,MAAqB,mBAAPA,GAAqBA,EAAGga,eAAe+kuB,IACjD/+uB,EAAG++uB,kBAAoB1ngB,CAC/B,CAEA,SAAS8ngB,GAAuB9tvB,GAC5B,OAAOA,KAAWA,EAAMoa,eAC5B,CASA,MAIM2zuB,EAAmB,+BAiBzB,MAAMC,WAAqBzzvB,MACvB5G,YAAY4R,EAAMqO,GACdhgB,MAAMq6vB,GAAmB1ovB,EAAMqO,IAC/B9f,KAAKyR,KAAOA,CAChB,EAMJ,SAAS0ovB,GAAmB1ovB,EAAMqO,GAY9B,MAPoB,MADGoL,KAAK0B,IAAInb,KACCqO,EAAU,KAAOA,EAAQvG,OAAS,IAQvE,CAQA,SAAS6gvB,GAAgBluvB,GACrB,MAAqB,iBAAVA,EACAA,EACE,MAATA,EACO,GAGJmK,OAAOnK,EAClB,CAMA,SAASmuvB,GAAkBnuvB,GACvB,MAAqB,mBAAVA,EACAA,EAAM9I,MAAQ8I,EAAMoK,WACV,iBAAVpK,GAA+B,MAATA,GAAuC,mBAAfA,EAAMvB,KACpDuB,EAAMvB,KAAKvH,MAAQ8I,EAAMvB,KAAK2L,WAElC8jvB,GAAgBluvB,EAC3B,CA4BA,SAASouvB,EAA2Br9uB,EAAOs9uB,GAEvC,MAAM,IAAIL,IAAa,KAAgDtjuB,EAC3E,CAyEA,SAASzM,GAAW0kM,EAAKgmZ,EAAQ2lJ,EAAUC,GACvC,MAAM,IAAIh0vB,MAAO,oBAAmBooN,KACjB,MAAd4riB,EAAqB,GAAM,gBAAeD,KAAYC,KAAc5lJ,eAC7E,CAuCA,SAAS6+I,GAAmBt3d,GACxB,MAAO,CACHn/Q,MAAOm/Q,EAAKn/Q,MACZ1T,WAAY6yR,EAAK7yR,YAAc,KAC/BnE,QAASg3R,EAAKh3R,QACd8G,WAAO+B,EAEf,CAMA,MAAMysvB,GAAmBhH,GAkBzB,SAASzsT,EAAiBrrb,GACtB,MAAO,CAAE7G,UAAW6G,EAAQ7G,WAAa,GAAIG,QAAS0G,EAAQ1G,SAAW,GAC7E,CAOA,SAASylvB,EAAiBhwvB,GACtB,OAAOiwvB,EAAiBjwvB,EAAMkwvB,KAAgBD,EAAiBjwvB,EAAMmwvB,GACzE,CACA,SAASC,EAAapwvB,GAClB,OAAkC,OAA3BgwvB,EAAiBhwvB,EAC5B,CAKA,SAASiwvB,EAAiBjwvB,EAAMg8I,GAC5B,OAAOh8I,EAAKkqB,eAAe8xH,GAASh8I,EAAKg8I,GAAS,IACtD,CA0BA,SAASq0mB,GAAerwvB,GACpB,OAAOA,IAASA,EAAKkqB,eAAeomuB,KAAetwvB,EAAKkqB,eAAeqmuB,KACnEvwvB,EAAKswvB,IACL,IACR,CACA,MAAMJ,GAAcvB,GAAuB,CAAEp0vB,WAAOo0vB,KAC9C2B,GAAa3B,GAAuB,CAAErkvB,UAAMqkvB,KAE5CwB,GAAoBxB,GAAuB,CAAE6B,gBAAiB7B,KAC9D4B,GAAkB5B,GAAuB,CAAE8B,cAAe9B,KAQhE,IAAIlitB,GAAW,OAAXA,OAAW,IAKCA,GAAYgzd,QAAa,GAAK,UAK1Chzd,GAAYA,GAAYiktB,KAAU,GAAK,OAEvCjktB,GAAYA,GAAYkktB,KAAU,GAAK,OAEvClktB,GAAYA,GAAY0Q,SAAc,GAAK,WAE3C1Q,GAAYA,GAAYyQ,SAAc,GAAK,WAhB3CzQ,IAAW,GA4Bf,IAAImktB,GAOJ,SAASC,GAAwBC,GAC7B,MAAMr2N,EAAWm2N,GACjBA,UAAwBE,EACjBr2N,CACX,CAQA,SAASs2N,GAAmBz+uB,EAAOutB,EAAeh9B,GAC9C,MAAMmuvB,EAAgBhB,EAAiB19uB,GACvC,OAAI0+uB,GAA6C,QAA5BA,EAAcpyvB,gBACA0E,IAAxB0tvB,EAAczvvB,MAAsByvvB,EAAczvvB,MAAQyvvB,EAAcv2vB,UAC3Eu2vB,EAAczvvB,MAElBsB,EAAQ4pC,GAAYyQ,SACb,UACW55C,IAAlBu8B,EACOA,OACX8vtB,EAA2B77uB,GAAUxB,GACzC,CAkBA,MAAM2+uB,GAA4B,YAAcvlmB,WAAe,KAAeA,mBAClEquC,OAAW,KAAeA,eAAmB1iM,OAAW,KAAeA,eACvEm7M,KAAS,YAAsB0+iB,kBAAsB,KACzD1+iB,gBAAgB0+iB,mBAAqB1+iB,KAHX,GAyE5B2+iB,GADsB,CAAC,EAOvBC,GAAoB,iBACpBC,GAAqB,kBACrBC,GAAgB,cAChBC,GAAW,OACXC,GAAc,SACdC,GAAS,WAOf,IAAIC,GACJ,SAASC,GAAmBv4vB,GACxB,MAAMw4vB,EAASF,GACfA,UAAmBt4vB,EACZw4vB,CACX,CACA,SAASC,GAAmBv/uB,EAAOzP,EAAQ4pC,GAAYgzd,SACnD,QAAyBn8f,IAArBouvB,GACA,MAAM,IAAInC,IAAa,KAAuDtjuB,GAG7E,OAAyB,OAArByluB,GACEX,GAAmBz+uB,OAAOhP,EAAWT,GAGrC6uvB,GAAiBr4vB,IAAIiZ,EAAOzP,EAAQ4pC,GAAYyQ,SAAW,UAAO55C,EAAWT,EAE5F,CACA,SAASmI,GAASsH,EAAOzP,EAAQ4pC,GAAYgzd,SACzC,OA7JJ,SAASqyP,KACL,OAAOlB,EACX,CA2JYkB,IAA6BD,IAAoB1C,EAAkB78uB,GAAQzP,EACvF,CAUA,SAASkvvB,GAAoBrrvB,GACzB,MAAM,IAAI6ovB,GAAa,KAAuDtjuB,EAKlF,CAiEA,SAASlV,GAAOzE,EAAOzP,EAAQ4pC,GAAYgzd,SACvC,OAAOz0f,GAASsH,EAAO0/uB,GAAkBnvvB,GAC7C,CAEA,SAASmvvB,GAAkBnvvB,GACvB,cAAWA,EAAU,KAAgC,iBAAVA,EAChCA,EAKH,GACHA,EAAMmU,UAAY,IAClBnU,EAAMvF,MAAQ,IACduF,EAAM2vM,MAAQ,IACd3vM,EAAMovvB,UAAY,EAC3B,CACA,SAASC,GAAWn0lB,GAChB,MAAMpxJ,EAAO,GACb,QAAS9S,EAAI,EAAGA,EAAIkkK,EAAMjkK,OAAQD,IAAK,CACnC,MAAMgzZ,EAAMsiW,EAAkBpxlB,EAAMlkK,IACpC,GAAIsV,MAAM2C,QAAQ+6Y,GAAM,CACpB,GAAmB,IAAfA,EAAI/yZ,OACJ,MAAM,IAAIy1vB,GAAa,KAAiDtjuB,GAE5E,IAAIjsB,EACA6C,GAAQ4pC,GAAYgzd,QACxB,QAASjrb,GAAI,EAAGA,GAAIq4U,EAAI/yZ,OAAQ06E,KAAK,CACjC,MAAMpvE,GAAOynZ,EAAIr4U,IACXsvmB,GAAOquE,GAAc/svB,IACP,iBAAT0+qB,IAEM,IAATA,GACA9jrB,EAAOoF,GAAKkN,MAGZzP,IAASihrB,GAIb9jrB,EAAOoF,GAGfuH,EAAK1O,KAAK+M,GAAShL,EAAM6C,IAAM,MAG/B8J,EAAK1O,KAAK+M,GAAS6hZ,GAAI,CAG/B,OAAOlgZ,CACX,CAWA,SAASylvB,GAAiBjqhB,EAAW27c,GACjC37c,SAAUiphB,IAAqBttE,EAC/B37c,EAAUzjN,UAAU0suB,IAAqBttE,EAClC37c,CACX,CAMA,SAASgqhB,GAAc7/uB,GACnB,OAAOA,EAAM8+uB,GACjB,CAuCA,SAASiB,GAAcnivB,GACnB,MAAO,CAAEvE,SAAUuE,GAAKvE,UAC5B,CAUA,IAAI2mvB,GAAuB,OAAvBA,OAAuB,IAQCA,GAAwBC,OAAY,GAAK,SAKjED,GAAwBA,GAAwB7yP,QAAa,GAAK,UAblE6yP,IAAuB,GA6BvBE,GAAmB,aACZ/xvB,EAwBR+xvB,KAAwBA,GAAsB,CAAC,IAd5B/xvB,EAAkBgyvB,SAAc,GAAK,WAOvDhyvB,EAAkBA,EAAkBmlU,KAAU,GAAK,OAMnDnlU,EAAkBA,EAAkBiyvB,UAAe,GAAK,YAxBxDF,GACH,IAAU/xvB,CADP+xvB,EAAmB,GAiCvB,MAAMG,GAAY,CAAC,EACblU,GAAc,GAWdmU,GAAcjE,GAAuB,CAAE5utB,UAAM4utB,KAC7CkE,GAAalE,GAAuB,CAAEhvtB,UAAMgvtB,KAC5CmE,GAAcnE,GAAuB,CAAE1I,WAAO0I,KAC9CoE,GAAapE,GAAuB,CAAEtkvB,UAAMskvB,KAC5CqE,GAAiBrE,GAAuB,CAAEr0vB,UAAMq0vB,KAOhDsE,GAAgBtE,GAAuB,CAAEuE,kBAAmBvE,KAGlE,IAAIwE,GAAoB,EAiBxB,SAAS1/T,GAAkB2/T,GACvB,OAAOf,GAAc,KAIjB,MAAMgB,EAAUC,GAAkBF,GAC5Bl5rB,EAAM,IACLm5rB,EACHrztB,MAAOoztB,EAAoBpztB,MAC3B+3O,KAAMq7e,EAAoBr7e,KAC1BE,SAAUm7e,EAAoBn7e,SAC9BD,OAAQo7e,EAAoBp7e,QAAU,KACtCqjL,mBAAoB+3T,EAAoB/3T,mBACxCk4T,OAAQH,EAAoBI,kBAAoBlB,GAAwBC,OACxEkB,cAAe,KACfC,SAAU,KACVz3mB,aAAco3mB,EAAQ77C,YAAc47C,EAAoBn3mB,cAAgB,KACxE03mB,sBAAuB,KACvB5yvB,KAAMqyvB,EAAoBryvB,MAAQ,CAAC,EACnCP,cAAe4yvB,EAAoB5yvB,eAAiBgyvB,GAAoBC,SACxElyvB,GAAK,IAAG4yvB,KACRx5vB,OAAQy5vB,EAAoBz5vB,QAAU8kvB,GACtC13sB,EAAG,KACH6stB,QAASR,EAAoBQ,SAAW,KACxC70jB,MAAO,MAEX80jB,GAAa35rB,GACb,MAAM+hF,EAAem3mB,EAAoBn3mB,aACzC/hF,SAAIu5rB,cAAgBK,GAAwB73mB,GAA4B,GACxE/hF,EAAIw5rB,SAAWI,GAAwB73mB,GAA4B,GAC5D/hF,GAEf,CAUA,SAAS65rB,GAAoB/zvB,EAAMg0vB,EAAY1qU,GAC3C,MAAMpvX,EAAMl6D,EAAK+/B,UACjBm6B,EAAIu5rB,cAAgBK,GAAwBE,GAA0B,GACtE95rB,EAAIw5rB,SAAWI,GAAwBxqU,GAAqB,EAChE,CACA,SAAS2qU,GAAoBj0vB,GACzB,OAAOk0vB,GAAgBl0vB,IAASm0vB,GAAgBn0vB,EACpD,CACA,SAASo0vB,GAAQ7yvB,GACb,OAAiB,OAAVA,CACX,CAIA,SAAS86b,GAAiBniY,GACtB,OAAOm4rB,GAAc,MAEbryvB,KAAMk6D,EAAIl6D,KACV4qb,UAAW1wX,EAAI0wX,WAAa6zT,GAC5B4V,aAAcn6rB,EAAIm6rB,cAAgB5V,GAClCl0uB,QAAS2vD,EAAI3vD,SAAWk0uB,GACxB7jd,QAAS1gO,EAAI0gO,SAAW6jd,GACxB6V,wBAAyB,KACzBV,QAAS15rB,EAAI05rB,SAAW,KACxBrzvB,GAAI25D,EAAI35D,IAAM,OAI1B,CAWA,SAASg0vB,GAAmBv0vB,EAAMk0L,GAC9B,OAAOm+jB,GAAc,KACjB,MAAMmC,EAAcC,GAAez0vB,GAAM,GACzCw0vB,EAAYH,aAAengkB,EAAMmgkB,cAAgB5V,GACjD+V,EAAYjqvB,QAAU2pL,EAAM3pL,SAAWk0uB,GACvC+V,EAAY55d,QAAU1mG,EAAM0mG,SAAW6jd,IAE/C,CAwDA,SAASiW,GAAalitB,EAAKmitB,GACvB,GAAW,MAAPnitB,EACA,OAAOmgtB,GACX,MAAMiC,EAAY,CAAC,EACnB,UAAWC,KAAeritB,EACtB,GAAIA,EAAItoB,eAAe2quB,GAAc,CACjC,IAAIC,EAAatitB,EAAIqitB,GACjBE,GAAeD,EACf3lvB,MAAM2C,QAAQgjvB,KACdC,GAAeD,EAAW,GAC1BA,EAAaA,EAAW,IAE5BF,EAAUE,GAAcD,EACpBF,IACCA,EAAUG,GAAcC,IAIrC,OAAOH,CACX,CAiBA,SAASvkU,GAAkB2kU,GACvB,OAAO3C,GAAc,KACjB,MAAMn4rB,EAAMo5rB,GAAkB0B,GAC9BnB,UAAa35rB,GACNA,GAEf,CAiBA,SAAS+6rB,GAAaC,GAClB,MAAO,CACHl1vB,KAAMk1vB,EAAQl1vB,KACdvH,KAAMy8vB,EAAQz8vB,KACdgC,QAAS,KACT6uP,MAAuB,IAAjB4rgB,EAAQ5rgB,KACdkud,YAAmC,IAAvB09C,EAAQ19C,WACpB72sB,UAAWu0vB,EAAQl1vB,KAAK0kB,UAAU3nB,aAAe,KAEzD,CAMA,SAASm3vB,GAAgBl0vB,GACrB,OAAOA,EAAK4yvB,KAAgB,IAChC,CACA,SAASuB,GAAgBn0vB,GACrB,OAAOA,EAAK6yvB,KAAe,IAC/B,CACA,SAASsC,GAAan1vB,GAClB,OAAOA,EAAK8yvB,KAAgB,IAChC,CASA,SAASsC,GAAap1vB,GAClB,MAAMk6D,EAAMg6rB,GAAgBl0vB,IAASm0vB,GAAgBn0vB,IAASm1vB,GAAan1vB,GAC3E,OAAe,OAARk6D,GAAeA,EAAIs9oB,UAC9B,CACA,SAASi9C,GAAez0vB,EAAMq1vB,GAC1B,MAAMb,EAAcx0vB,EAAK+yvB,KAAe,KACxC,IAAKyB,IAAiC,IAAlBa,EAChB,MAAM,IAAIv5vB,MAAO,QAAOgY,GAAU9T,0CAEtC,OAAOw0vB,CACX,CACA,SAASlB,GAAkB0B,GACvB,MAAMM,EAAiB,CAAC,EACxB,MAAO,CACHt1vB,KAAMg1vB,EAAoBh1vB,KAC1Bu1vB,kBAAmB,KACnB96vB,QAAS,KACT80Q,aAAcylf,EAAoBzlf,cAAgB,KAClDimf,SAAUR,EAAoBQ,UAAY,EAC1CC,UAAWT,EAAoBS,WAAa,KAC5CC,eAAgBV,EAAoBU,gBAAkB,KACtDJ,iBACAn7e,SAAU66e,EAAoB76e,UAAY,KAC1Cq9b,YAA+C,IAAnCw9C,EAAoBx9C,WAChC53qB,UAAWo1tB,EAAoBp1tB,WAAa6+sB,GAC5C3me,UAAWk9e,EAAoBl9e,WAAa,KAC5Cj8P,SAAUm5uB,EAAoBn5uB,UAAY,KAC1C85uB,SAAU,KACVC,sBAAuB,KACvBC,eAAgB,KAChBj2jB,OAAQ80jB,GAAaM,EAAoBp1jB,OAAQ01jB,GACjD9lf,QAASklf,GAAaM,EAAoBxlf,SAElD,CACA,SAASqkf,GAAah/iB,GAClBA,EAAWh5L,UAAU7gB,QAASkV,GAAOA,EAAG2kM,GAC5C,CACA,SAASi/iB,GAAwB73mB,EAAci5mB,GAC3C,IAAKj5mB,EACD,OAAO,KAEX,MAAM65mB,EAAeZ,EAAUC,GAAelB,GAC9C,MAAO,KAA+B,mBAAjBh4mB,EAA8BA,IAAiBA,GAC/Dr/I,IAAI8/I,GAAOo5mB,EAAap5mB,IACxBtvI,OAAOgnvB,GAChB,CAKA,MAAM2B,GAAO,EACPC,GAAQ,EACRC,GAAQ,EACRC,GAAS,EACTC,GAAO,EACPC,GAAgC,EAChCC,GAAS,EACTC,GAAU,EACVC,GAAU,EACVC,GAAa,EACbC,GAAmB,GACnBC,GAAW,GACXC,GAAY,GACZC,GAAa,GACbC,GAAa,GAEbC,GAAmB,GACnBC,GAA6B,GAC7BC,GAAyB,GACzBC,GAAsB,GACtBC,GAAU,GACV9ob,EAAK,GACL+ob,EAAyB,GAQzBC,EAAgB,GAUhB31X,EAAO,EAcP41X,EAAyB,EAKzBC,EAAS,EACTC,GAAY,EACZC,GAAc,EAOdC,GAA0B,GAShC,SAASC,GAAQn2vB,GACb,OAAO4N,MAAM2C,QAAQvQ,IAAiC,iBAAhBA,EAAMkgY,EAChD,CAKA,SAASk2X,GAAap2vB,GAClB,OAAO4N,MAAM2C,QAAQvQ,KAA0B,IAAhBA,EAAMkgY,EACzC,CACA,SAASm2X,GAAmBC,GACxB,OAA8D,IAAxC,EAAdA,EAAMh1vB,MAClB,CACA,SAASi1vB,GAAgBD,GACrB,OAAOA,EAAME,iBAAkB,CACnC,CACA,SAASC,GAAgBH,GACrB,OAA8D,IAAxC,EAAdA,EAAMh1vB,MAClB,CACA,SAASo1vB,GAAe/9rB,GACpB,QAASA,EAAI+9M,QACjB,CACA,SAASigf,GAAW9gwB,GAChB,OAAyD,IAAjC,IAAhBA,EAAO6+vB,IACnB,CA6GA,SAASkC,GAAcn4vB,EAAMq1vB,GAKzB,OAJsBr1vB,EAAKkqB,eAAe8ouB,IAInBhzvB,EAAKgzvB,IAAkB,IAClD,CAWA,MAAMoF,GACFljwB,YAAYgpC,EAAe6iD,EAAc9iD,GACrC5oC,KAAK6oC,cAAgBA,EACrB7oC,KAAK0rF,aAAeA,EACpB1rF,KAAK4oC,YAAcA,CACvB,CAIA+9Z,gBACI,OAAO3mc,KAAK4oC,WAChB,EAyBJ,SAASm+Z,KACL,OAAOi8T,EACX,CACA,SAASA,GAAuBxjjB,GAC5B,OAAIA,EAAW70M,KAAK0kB,UAAUqZ,cAC1B82K,EAAW8gjB,SAAW2C,IAEnBC,EACX,CAgBA,SAASA,KACL,MAAMC,EAAqBC,GAAsBpjwB,MAC3Cq4B,EAAU8quB,GAAoB9quB,QACpC,GAAIA,EAAS,CACT,MAAM+sgB,EAAW+9N,EAAmB/9N,SACpC,GAAIA,IAAak4N,GACb6F,EAAmB/9N,SAAW/sgB,OAK9B,QAASvnB,KAAOunB,EACZ+sgB,EAASt0hB,GAAOunB,EAAQvnB,GAGhCqyvB,EAAmB9quB,QAAU,KAC7Br4B,KAAK0oC,YAAYrQ,EAAO,CAEhC,CACA,SAAS4quB,GAAoB55tB,EAAUn9B,EAAOuzvB,EAAY4D,GACtD,MAAM3D,EAAe1/vB,KAAKigwB,eAAeR,GAEnC0D,GAAqBC,GAAsB/5tB,IAYrD,SAASi6tB,GAAsBj6tB,EAAUyD,GACrC,OAAOzD,EAASk6tB,IAAwBz2tB,CAC5C,CAbQw2tB,CAAsBj6tB,EAAU,CAAE+7f,SAAUk4N,GAAWjluB,QAAS,OAC9DA,GAAU8quB,GAAmB9quB,UAAY8quB,GAAmB9quB,QAAU,CAAC,GACvE+sgB,GAAW+9N,GAAmB/9N,SAC9Bo+N,GAAiBp+N,GAASs6N,GAChCrnuB,GAAQqnuB,GAAgB,IAAIqD,GAAaS,IAAkBA,GAAe93qB,aAAcx/E,EAAOk5hB,KAAak4N,IAC5Gj0tB,EAASg6tB,GAAen3vB,CAC5B,CAxCA66b,GAAqB08T,WAAY,EAyCjC,MAAMF,GAAuB,sBAC7B,SAASH,GAAsB/5tB,GAC3B,OAAOA,EAASk6tB,KAAyB,IAC7C,CAKA,IAAIG,GAAmB,KAWvB,MAAMC,GAAeC,IACjBF,GAAmBE,GAWjBA,GAAW,SAAU75vB,EAAOs/B,EAAUw6tB,GAEpCH,KAAiB35vB,EAAOs/B,EAAUw6tB,EAE1C,EAEMC,GAAgB,MAChBC,GAAoB,OAsB1B,SAASC,GAAY93vB,GACjB,KAAO4N,MAAM2C,QAAQvQ,IACjBA,EAAQA,EAAMw0vB,IAElB,OAAOx0vB,CACX,CAmBA,SAAS+3vB,GAAiB5yvB,EAAO6yvB,GAG7B,OAAOF,GAAYE,EAAM7yvB,GAC7B,CASA,SAAS8yvB,GAAiB3B,EAAO0B,GAI7B,OADaF,GAAYE,EAAM1B,EAAMnxvB,OAEzC,CAmBA,SAAS+yvB,EAAS16jB,EAAOr4L,GAKrB,OAFcq4L,EAAMh+L,KAAK2F,EAG7B,CAEA,SAASw0Q,GAAKlpH,EAAMtrJ,GAEhB,OAAOsrJ,EAAKtrJ,EAChB,CACA,SAASgzvB,GAAyBr6E,EAAWngpB,GAGzC,MAAMy6tB,EAAYz6tB,EAASmgpB,GAE3B,OADcq4E,GAAQiC,GAAaA,EAAYA,EAAU5D,GAE7D,CAWA,SAAS6D,GAA6B5nmB,GAClC,OAAwD,KAAlC,GAAdA,EAAKikmB,IACjB,CAKA,SAAS4D,GAAY7hf,EAAQtxQ,GACzB,OAAc,MAAVA,EACO,KAEJsxQ,EAAOtxQ,EAClB,CAKA,SAASozvB,GAAuBP,GAC5BA,EAAMtC,IAAuB,CACjC,CAQA,SAAS8C,GAA4BC,EAAYC,GAC7CD,EAAW5D,KAAkC6D,EAC7C,IAAIC,EAAkBF,EAClBt4vB,EAASs4vB,EAAW9D,IACxB,KAAkB,OAAXx0vB,IACU,IAAXu4vB,GAAmE,IAAnDC,EAAgB9D,MAClB,IAAX6D,GAAoE,IAAnDC,EAAgB9D,MACtC10vB,EAAO00vB,KAAkC6D,EACzCC,EAAkBx4vB,EAClBA,EAASA,EAAOw0vB,GAExB,CAEA,MAAMiE,GAAmB,CACrBC,OAAQC,GAAa,MACrBC,iBAAiB,GA4BrB,SAASC,KACL,OAAOJ,GAAiBG,eAC5B,CAoBA,SAASE,KACLL,GAAiBG,iBAAkB,CACvC,CAoBA,SAASG,KACLN,GAAiBG,iBAAkB,CACvC,CAIA,SAASI,KACL,OAAOP,GAAiBC,OAAOb,KACnC,CAIA,SAASoB,KACL,OAAOR,GAAiBC,OAAOr7jB,KACnC,CAaA,SAAS67jB,GAAcC,GACnBV,UAAiBC,OAAOU,aAAeD,EAChCA,EAActE,GACzB,CAOA,SAASwE,GAAYx5vB,GACjB44vB,UAAiBC,OAAOU,aAAe,KAChCv5vB,CACX,CACA,SAASy5vB,KACL,IAAIC,EAAeC,KACnB,KAAwB,OAAjBD,GAA+C,KAAtBA,EAAaj7vB,MACzCi7vB,EAAeA,EAAav5vB,OAEhC,OAAOu5vB,CACX,CACA,SAASC,KACL,OAAOf,GAAiBC,OAAOa,YACnC,CACA,SAASE,KACL,MAAMf,EAASD,GAAiBC,OAC1Ba,EAAeb,EAAOa,aAC5B,OAAOb,EAAOr/iB,SAAWkgjB,EAAeA,EAAav5vB,MACzD,CACA,SAAS05vB,GAAgBvD,EAAO98iB,GAE5B,MAAMq/iB,EAASD,GAAiBC,OAChCA,EAAOa,aAAepD,EACtBuC,EAAOr/iB,SAAWA,CACtB,CACA,SAASsgjB,KACL,OAAOlB,GAAiBC,OAAOr/iB,QACnC,CACA,SAASugjB,KACLnB,GAAiBC,OAAOr/iB,UAAW,CACvC,CAeA,SAASwgjB,KACL,MAAMnB,EAASD,GAAiBC,OAChC,IAAI1zvB,EAAQ0zvB,EAAOoB,iBACnB,OAAc,IAAV90vB,IACAA,EAAQ0zvB,EAAOoB,iBAAmBpB,EAAOr7jB,MAAM08jB,mBAE5C/0vB,CACX,CACA,SAASg1vB,KACL,OAAOvB,GAAiBC,OAAOuB,YACnC,CACA,SAASC,GAAgBr6vB,GACrB,OAAO44vB,GAAiBC,OAAOuB,aAAep6vB,CAClD,CACA,SAASs6vB,KACL,OAAO1B,GAAiBC,OAAOuB,cACnC,CACA,SAASG,GAAsBhzvB,GAC3B,MAAMsxvB,EAASD,GAAiBC,OAC1B1zvB,EAAQ0zvB,EAAOuB,aACrBvB,SAAOuB,aAAevB,EAAOuB,aAAe7yvB,EACrCpC,CACX,CAIA,SAASq1vB,GAAeC,GACpB7B,GAAiBC,OAAO6B,OAASD,CACrC,CAYA,SAASE,GAA8BV,EAAkBW,GACrD,MAAM/B,EAASD,GAAiBC,OAChCA,EAAOuB,aAAevB,EAAOoB,iBAAmBA,EAChDY,GAAyBD,EAC7B,CAcA,SAASC,GAAyBD,GAC9BhC,GAAiBC,OAAO+B,sBAAwBA,CACpD,CAOA,SAASE,GAAuBC,GAC5B,MAAMH,EAAwBhC,GAAiBC,OAAO+B,sBACtD,OAAiC,IAA1BA,EAA+B,KAAOG,EAAMH,EACvD,CACA,SAASI,KACL,OAAOpC,GAAiBC,OAAOp4rB,iBACnC,CACA,SAASw6rB,GAAqBj7vB,GAC1B44vB,GAAiBC,OAAOp4rB,kBAAoBzgE,CAChD,CAMA,SAASk7vB,GAAoBlD,GACzB,MAAMx6jB,EAAQw6jB,EAAMvD,IAEpB,OAAmB,IAAfj3jB,EAAM/+L,KAEC++L,EAAM29jB,UAKE,IAAf39jB,EAAM/+L,KACCu5vB,EAAMlD,IAGV,IACX,CAcA,SAASsG,GAAQpD,EAAO1B,EAAOh1vB,GAE3B,GAAIA,EAAQ4pC,GAAY0Q,SAAU,CAE9B,IAAIy/sB,EAAc/E,EACdgF,GAActD,EAClB,OAEIqD,EAAcA,EAAYl7vB,OACN,OAAhBk7vB,GAA0B/5vB,EAAQ4pC,GAAYiktB,OAC9CkM,EAAcH,GAAoBI,IACd,OAAhBD,IAKJC,GAAcA,GAAY/F,IAIF,GAApB8F,EAAY58vB,UAQxB,GAAoB,OAAhB48vB,EAEA,OAAO,EAGP/E,EAAQ+E,EACRrD,EAAQsD,GAIhB,MAAMzC,EAASD,GAAiBC,OAAS0C,KACzC1C,SAAOa,aAAepD,EACtBuC,EAAOb,MAAQA,GACR,CACX,CAYA,SAASwD,GAAUC,GAGf,MAAMC,EAAYH,KAYZ/9jB,EAAQi+jB,EAAQhH,IACtBmE,GAAiBC,OAAS6C,EAE1BA,EAAUhC,aAAel8jB,EAAMxmK,WAC/B0kuB,EAAU1D,MAAQyD,EAClBC,EAAUl+jB,MAAQA,EAClBk+jB,EAAUnC,aAAekC,EACzBC,EAAUtB,aAAe58jB,EAAM08jB,kBAC/BwB,EAAUhB,QAAS,CACvB,CAIA,SAASa,KACL,MAAMI,EAAgB/C,GAAiBC,OACjC+C,EAAgC,OAAlBD,EAAyB,KAAOA,EAAcrtuB,MAElE,OADkC,OAAhBstuB,EAAuB9C,GAAa6C,GAAiBC,CAE3E,CACA,SAAS9C,GAAa34vB,GAClB,MAAM04vB,EAAS,CACXa,aAAc,KACdlgjB,UAAU,EACVw+iB,MAAO,KACPx6jB,MAAO,KACPsoC,eAAe,EACfyzhB,aAAc,KACdsC,kBAAmB,EACnBC,iBAAkB,KAClBlB,uBAAuB,EACvBX,kBAAkB,EAClBG,cAAc,EACd35rB,kBAAmB,EACnBtgE,OAAQA,EACRmuB,MAAO,KACPosuB,QAAQ,GAEZv6vB,OAAW,OAAXA,IAAoBA,EAAOmuB,MAAQuquB,GAC5BA,CACX,CAUA,SAASkD,KACL,MAAMC,EAAYpD,GAAiBC,OACnCD,UAAiBC,OAASmD,EAAU77vB,OACpC67vB,EAAUtC,aAAe,KACzBsC,EAAUhE,MAAQ,KACXgE,CACX,CAOA,MAAMC,GAAUF,GAShB,SAASG,KACL,MAAMF,EAAYD,KAClBC,EAAUxijB,UAAW,EACrBwijB,EAAUx+jB,MAAQ,KAClBw+jB,EAAUl2hB,eAAgB,EAC1Bk2hB,EAAUzC,aAAe,KACzByC,EAAUH,kBAAoB,EAC9BG,EAAUpB,uBAAwB,EAClCoB,EAAUF,iBAAmB,KAC7BE,EAAU/B,kBAAmB,EAC7B+B,EAAU5B,cAAe,EACzB4B,EAAUv7rB,kBAAoB,CAClC,CAqBA,SAAS07rB,KACL,OAAOvD,GAAiBC,OAAO/yhB,aACnC,CAUA,SAASs2hB,GAAiBj3vB,GAKtByzvB,GAAiBC,OAAO/yhB,cAAgB3gO,CAC5C,CAIA,SAASk3vB,KACL,MAAMxD,EAASD,GAAiBC,OAChC,OAAOX,EAASW,EAAOr7jB,MAAOq7jB,EAAO/yhB,cACzC,CAMA,SAASw2hB,KACL1D,GAAiBC,OAAOiD,iBAAmBlE,EAC/C,CAMA,SAAS2E,KACL3D,GAAiBC,OAAOiD,iBAAmBjE,EAC/C,CAOA,SAAS2E,MAOT,SAASC,KACL7D,GAAiBC,OAAOiD,iBAAmB,IAC/C,CARIW,EACJ,CA0DA,SAASC,GAAuBl/jB,EAAO84jB,GAKnC,QAASh+vB,EAAIg+vB,EAAMqG,eAAgBr9vB,EAAMg3vB,EAAMsG,aAActkwB,EAAIgH,EAAKhH,IAAK,CAGvE,MAAMukwB,GAFer/jB,EAAMh+L,KAAKlH,GAEImG,KAAK0kB,WACjC2/N,sBAAoBg6gB,yBAAuB38sB,mBAAiB+jY,sBAAoB1ob,gBAAgBqhwB,GACpG/5gB,KACCtlD,EAAMu/jB,eAAiBv/jB,EAAMu/jB,aAAe,KAAKrgwB,MAAMpE,EAAGwqP,IAE3Dg6gB,MACCt/jB,EAAMu/jB,eAAiBv/jB,EAAMu/jB,aAAe,KAAKrgwB,KAAKpE,EAAGwkwB,KACzDt/jB,EAAMw/jB,oBAAsBx/jB,EAAMw/jB,kBAAoB,KAAKtgwB,KAAKpE,EAAGwkwB,KAEpE38sB,KACCq9I,EAAMy/jB,YAAcz/jB,EAAMy/jB,UAAY,KAAKvgwB,MAAMpE,EAAG6nD,IAErD+jY,MACC1mP,EAAMy/jB,YAAcz/jB,EAAMy/jB,UAAY,KAAKvgwB,KAAKpE,EAAG4rb,KACnD1mP,EAAM0/jB,iBAAmB1/jB,EAAM0/jB,eAAiB,KAAKxgwB,KAAKpE,EAAG4rb,KAE/C,MAAf1ob,KACCgiM,EAAM2/jB,eAAiB3/jB,EAAM2/jB,aAAe,KAAKzgwB,KAAKpE,EAAGkD,GAAW,CAGjF,CAiCA,SAAS4hwB,GAAkBpF,EAAO7oiB,EAAO2ud,GACrCu/E,GAAUrF,EAAO7oiB,EAAO,EAA2C2ud,EACvE,CAcA,SAASw/E,GAAyBtF,EAAO7oiB,EAAOouiB,EAAWz/E,IAGnC,EAAfk6E,EAAMtD,OAAoD6I,GAC3DF,GAAUrF,EAAO7oiB,EAAOouiB,EAAWz/E,EAE3C,CACA,SAAS0/E,GAAwBxF,EAAOuF,GAGpC,IAAIj8vB,EAAQ02vB,EAAMtD,KACL,EAARpzvB,KAAmDi8vB,IACpDj8vB,GAAS,KACTA,GAAS,EACT02vB,EAAMtD,IAASpzvB,EAEvB,CAeA,SAAS+7vB,GAAUI,EAAavzuB,EAAKqzuB,EAAWG,GAG5C,MAGMC,GAAiBD,IAA8C,EAC/Dz+uB,GAAMiL,EAAI3xB,OAAS,EACzB,IAAIqlwB,GAAqB,EACzB,QAAStlwB,QAN+ByJ,IAArB27vB,EACqB,MAAnCD,EAAY/H,IACb,EAIqBp9vB,GAAI2mB,GAAK3mB,KAE9B,GAAoB,iBADP4xB,EAAI5xB,GAAI,IAGjB,GADAslwB,GAAqB1zuB,EAAI5xB,IACD,MAApBolwB,GAA4BE,IAAsBF,EAClD,WAIexzuB,EAAI5xB,IAAK,IAExBmlwB,EAAY/H,KAAwB,QACpCkI,GAAqBD,KAAoC,GAAlBA,MACvCE,GAASJ,EAAaF,EAAWrzuB,EAAK5xB,IACtCmlwB,EAAY/H,KAC4B,WAAnC+H,EAAY/H,KAAyFp9vB,GAClG,GAEZA,IAGZ,CASA,SAASulwB,GAASJ,EAAaF,EAAWrzuB,EAAK5xB,GAC3C,MAAMwlwB,EAAa5zuB,EAAI5xB,GAAK,EACtBk4N,GAAOtmM,EAAI5xB,EAAI,GAEf0yb,GAAYyyU,EADKK,GAAc5zuB,EAAI5xB,GAAK4xB,EAAI5xB,IAElD,GAAIwlwB,GAGA,GAF8BL,EAAY/I,KAAU,GAG/C+I,EAAY/H,KAAwB,KACf,EAArB+H,EAAY/I,OAAoD6I,EAAW,CAC5EE,EAAY/I,KAAU,KACtBgD,GAAS,EAA0C1sU,GAAWx6N,IAC9D,IACIA,GAAKrkN,KAAK6+a,GAId,CAHA,QAEI0sU,GAAS,EAAwC1sU,GAAWx6N,GAChE,OAGH,CACDkniB,GAAS,EAA0C1sU,GAAWx6N,IAC9D,IACIA,GAAKrkN,KAAK6+a,GAId,CAHA,QAEI0sU,GAAS,EAAwC1sU,GAAWx6N,GAChE,EAER,CAEA,MAAMutiB,IAAqB,EA+F3B,MAAMC,GACFrqwB,YAIAuF,EAIA+kwB,EAAgBC,GACZpqwB,KAAKoF,QAAUA,EAKfpF,KAAKqqwB,WAAY,EAGjBrqwB,KAAKsqwB,oBAAsBH,EAC3BnqwB,KAAKuqwB,WAAaH,CACtB,EA0HJ,SAASI,GAAgB5/vB,EAAU6/vB,EAAQtwsB,GACvC,IAAI31D,EAAI,EACR,KAAOA,EAAI21D,EAAM11D,QAAQ,CACrB,MAAMyH,EAAQiuD,EAAM31D,GACpB,GAAqB,iBAAV0H,EAAoB,CAG3B,GAAc,IAAVA,EACA,MAIJ1H,IACA,MAAM2tpB,GAAeh4lB,EAAM31D,KACrBq/C,GAAWsW,EAAM31D,KACjBkmwB,GAAUvwsB,EAAM31D,KAEtBoG,EAASjI,aAAa8nwB,EAAQ5mtB,GAAU6mtB,GAASv4G,GAAY,KAE5D,CAED,MAAMtumB,GAAW33C,EACXw+vB,GAAUvwsB,IAAQ31D,GAGpBmmwB,GAAgB9mtB,IAChBj5C,EAAS8C,YAAY+8vB,EAAQ5mtB,GAAU6mtB,IAGvC9/vB,EAASjI,aAAa8nwB,EAAQ5mtB,GAAU6mtB,IAE5ClmwB,KAOR,OAAOA,CACX,CAQA,SAASomwB,GAA0BtokB,GAC/B,OAAkB,IAAXA,GAA0D,IAAXA,GACvC,IAAXA,CACR,CACA,SAASqokB,GAAgBvnwB,GAIrB,OAA8B,KAAvBA,EAAKm9I,WAAW,EAC3B,CASA,SAASsqnB,GAAej5d,EAAKrgG,GACzB,GAAY,OAARA,GAA+B,IAAfA,EAAI9sM,OAGnB,GAAY,OAARmtS,GAA+B,IAAfA,EAAIntS,OAEzBmtS,EAAMrgG,EAAIxrM,YAET,CACD,IAAI+kwB,GAAY,EAChB,QAAStmwB,EAAI,EAAGA,EAAI+sM,EAAI9sM,OAAQD,IAAK,CACjC,MAAM0lC,EAAOqnK,EAAI/sM,GACG,iBAAT0lC,EACP4guB,EAAY5guB,EAGM,IAAd4guB,GAMAC,GAAmBn5d,EAAKk5d,EAAW5guB,EAAM,MAHtB,IAAd4guB,GACS,IAAdA,EAE+Cv5jB,IAAM/sM,GAIN,KAAI,EAKnE,OAAOotS,CACX,CAUA,SAASm5d,GAAmBn5d,EAAKtvG,EAAQzuH,EAAMC,EAAM5nE,GACjD,IAAI1H,GAAI,EAEJwmwB,GAAuBp5d,EAAIntS,OAE/B,IAAe,IAAX69L,EACA0okB,IAAuB,OAGvB,KAAOxmwB,GAAIotS,EAAIntS,QAAQ,CACnB,MAAMwmwB,GAAWr5d,EAAIptS,MACrB,GAAwB,iBAAbymwB,GAAa,CACpB,GAAIA,KAAa3okB,EAAQ,CACrB0okB,IAAuB,EACvB,SAEKC,GAAW3okB,EAAQ,CAExB0okB,GAAuBxmwB,GAAI,EAC3B,QAMhB,KAAOA,GAAIotS,EAAIntS,QAAQ,CACnB,MAAMylC,GAAO0nQ,EAAIptS,IACjB,GAAoB,iBAAT0lC,GAGP,MAEC,GAAIA,KAAS2pC,GAEd,GAAa,OAATC,EAIA,YAHc,OAAV5nE,IACA0lS,EAAIptS,GAAI,GAAK0H,IAEjB,GAEK4nE,IAAS89N,EAAIptS,GAAI,GAEtB,YADAotS,EAAIptS,GAAI,GAAK0H,EACb,CAIR1H,KACa,OAATsvE,GACAtvE,KACU,OAAV0H,GACA1H,MAGqB,IAAzBwmwB,KACAp5d,EAAIzgS,OAAO65vB,GAAsB,EAAG1okB,GACpC99L,GAAIwmwB,GAAuB,GAE/Bp5d,EAAIzgS,OAAO3M,KAAK,EAAGqvE,GACN,OAATC,GACA89N,EAAIzgS,OAAO3M,KAAK,EAAGsvE,GAET,OAAV5nE,GACA0lS,EAAIzgS,OAAO3M,KAAK,EAAG0H,EAE3B,CAGA,SAASg/vB,GAAkBC,GACvB,OAAOA,IAAmBlB,EAC9B,CACA,SAASmB,GAAuBD,GAM5B,OAAwB,MAAjBA,CACX,CAaA,SAASE,GAAsBjjuB,EAAUkjuB,GACrC,IAAIC,EAbR,SAASC,GAA4BL,GACjC,OAAOA,GAAkB,EAC7B,CAWqBK,CAA4BpjuB,GACzCooI,EAAa86lB,EAKjB,KAAOC,EAAa,GAChB/6lB,EAAaA,EAAWixlB,IACxB8J,IAEJ,OAAO/6lB,CACX,CAsCA,IAAIi7lB,IAAuB,EAC3B,SAASC,GAAwBnwvB,GAC7B,MAAMylE,EAAWyqrB,GACjBA,UAAuBlwvB,EAChBylE,CACX,CAOA,MAAM2qrB,GADa,IAObC,GAAoB,EAE1B,IAAIC,GAAkB,EAEtB,MAAMp+tB,GAAY,CAAC,EA0CnB,SAASq+tB,GAA+BtJ,EAAO0B,GAC3C,MAAM6H,EAAwBC,GAAiBxJ,EAAO0B,GACtD,IAA8B,IAA1B6H,EACA,OAAOA,EAEX,MAAMrikB,EAAQw6jB,EAAMvD,IAChBj3jB,EAAMuikB,kBACNzJ,EAAM0J,cAAgBhI,EAAMz/vB,OAC5B0nwB,GAAYzikB,EAAMh+L,KAAM82vB,GACxB2J,GAAYjI,EAAO,MACnBiI,GAAYzikB,EAAM0ikB,UAAW,OAEjC,MAAMC,EAAYC,GAA0B9J,EAAO0B,GAC7CgI,GAAgB1J,EAAM0J,cAG5B,GAAIhB,GAAkBmB,GAAY,CAC9B,MAAME,GAAcnB,GAAuBiB,GACrC7E,GAAc6D,GAAsBgB,EAAWnI,GAC/CsI,GAAahF,GAAY7G,IAAOj1vB,KAGtC,QAASlH,GAAI,EAAGA,GAAI,EAAuCA,KACvD0/vB,EAAMgI,GAAgB1nwB,IAAKgjwB,GAAY+E,GAAc/nwB,IAAKgowB,GAAWD,GAAc/nwB,GAAC,CAG5F0/vB,SAAMgI,GAAgB,GAAqCG,EACpDH,EACX,CACA,SAASC,GAAY/1uB,EAAKquT,GACtBruT,EAAIxtB,KAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG67U,EACrC,CACA,SAASunb,GAAiBxJ,EAAO0B,GAC7B,OAA4B,IAAxB1B,EAAM0J,eAGL1J,EAAMn2vB,QAAUm2vB,EAAMn2vB,OAAO6/vB,gBAAkB1J,EAAM0J,eAGa,OAAnEhI,EAAM1B,EAAM0J,cAAgB,IACrB,EAIA1J,EAAM0J,aAErB,CAQA,SAASI,GAA0B9J,EAAO0B,GACtC,GAAI1B,EAAMn2vB,SAAyC,IAA/Bm2vB,EAAMn2vB,OAAO6/vB,cAG7B,OAAO1J,EAAMn2vB,OAAO6/vB,cAKxB,IAAIO,EAAwB,EACxBlF,EAAc,KACdmF,EAAcxI,EAIlB,KAAuB,OAAhBwI,GAAsB,CAEzB,GADAnF,EAAcoF,GAAkBD,GACZ,OAAhBnF,EAEA,OAAO0C,GAMX,GAFAwC,IACAC,EAAcA,EAAYjL,KACQ,IAA9B8F,EAAY2E,cAEZ,OAAQ3E,EAAY2E,cACfO,GAAyB,GAGtC,OAAOxC,EACX,CAQA,SAAS2C,GAAmBV,EAAexikB,EAAOzsL,IA/HlD,SAAS4vvB,GAASX,EAAexikB,EAAO/+L,GAEpC,IAAIO,EACgB,iBAATP,EACPO,EAAKP,EAAK41I,WAAW,IAAM,EAEtB51I,EAAKkqB,eAAe+ouB,MACzB1yvB,EAAKP,EAAKizvB,KAIJ,MAAN1yvB,IACAA,EAAKP,EAAKizvB,IAAiBiO,MAI/B,MAAMiB,EAAY5hwB,EAAKygwB,GAQvBjikB,EAAMh+L,KAAKwgwB,GAAiBY,GAAalB,MAJ5B,GAAKkB,CAKtB,CAuGID,CAASX,EAAexikB,EAAOzsL,EACnC,CA2EA,SAAS8vvB,GAAqBviuB,EAAevtB,EAAOzP,GAChD,GAAKA,EAAQ4pC,GAAYyQ,eAA+B55C,IAAlBu8B,EAClC,OAAOA,EAGP8vtB,GAER,CAUA,SAAS0S,GAA+B9I,EAAOjnvB,EAAOzP,EAAOg9B,GAKzD,GAJKh9B,EAAQ4pC,GAAYyQ,eAA+B55C,IAAlBu8B,IAElCA,EAAgB,QAEfh9B,GAAS4pC,GAAYkktB,KAAOlktB,GAAYiktB,OAAc,CACvD,MAAM4R,EAAiB/I,EAAM/C,IAIvB+L,GAA+B1R,QAAwBvtvB,GAC7D,IACI,OAAIg/vB,EACOA,EAAejpwB,IAAIiZ,EAAOutB,EAAeh9B,EAAQ4pC,GAAYyQ,UAG7D6zsB,GAAmBz+uB,EAAOutB,EAAeh9B,EAAQ4pC,GAAYyQ,SAK5E,CAHA,QAEI2zsB,GAAwB0R,GAC5B,EAEJ,OAAOH,GAAqBviuB,EAAevtB,EAAOzP,EACtD,CAiBA,SAAS2/vB,GAAsB3K,EAAO0B,EAAOjnvB,EAAOzP,EAAQ4pC,GAAYgzd,QAAS5/d,GAC7E,GAAc,OAAVg4tB,EAAgB,CAGhB,GAAmB,KAAf0B,EAAMtD,IAAwD,CAC9D,MAAMwM,GA4UlB,SAASC,GAAiC7K,EAAO0B,EAAOjnvB,EAAOzP,EAAOg9B,GAClE,IAAIo7tB,GAAepD,EACf8K,GAAepJ,EAOnB,KAAwB,OAAjB0B,IAA0C,OAAjB0H,IACL,KAAtBA,GAAa1M,OACU,IAAtB0M,GAAa1M,MAAuC,CAKtD,MAAM2M,GAAoBC,GAA6B5H,GAAc0H,GAAcrwvB,EAAOzP,EAAQ4pC,GAAYkktB,KAAM7ttB,IACpH,GAAI8/tB,KAAsB9/tB,GACtB,OAAO8/tB,GAGX,IAAIhG,GAAc3B,GAAav5vB,OAG/B,IAAKk7vB,GAAa,CAEd,MAAMkG,GAAuBH,GAAaxL,GAC1C,GAAI2L,GAAsB,CACtB,MAAMC,GAA4BD,GAAqBzpwB,IAAIiZ,EAAOwwB,GAAWjgC,GAC7E,GAAIkgwB,KAA8BjguB,GAC9B,OAAOiguB,GAIfnG,GAAcoF,GAAkBW,IAChCA,GAAeA,GAAa7L,GAAgB,CAEhDmE,GAAe2B,GAEnB,OAAO/8tB,CACX,CApX0C6iuB,CAAiC7K,EAAO0B,EAAOjnvB,EAAOzP,EAAOigC,IAC3F,GAAI2/tB,KAA0B3/tB,GAC1B,OAAO2/tB,GAIf,MAAMlhwB,GAAQshwB,GAA6BhL,EAAO0B,EAAOjnvB,EAAOzP,EAAOigC,IACvE,GAAIvhC,KAAUuhC,GACV,OAAOvhC,GAIf,OAAO8gwB,GAA+B9I,EAAOjnvB,EAAOzP,EAAOg9B,EAC/D,CAWA,SAASgjuB,GAA6BhL,EAAO0B,EAAOjnvB,EAAOzP,EAAOg9B,GAC9D,MAAMsiuB,GA8MV,SAASa,GAAsB1wvB,GAE3B,GAAqB,iBAAVA,EACP,OAAOA,EAAMsjI,WAAW,IAAM,EAElC,MAAMqtnB,EAEN3wvB,EAAM4X,eAAe+ouB,IAAiB3gvB,EAAM2gvB,SAAiB3vvB,EAE7D,MAAuB,iBAAZ2/vB,EACHA,GAAW,EACJA,EAAUjC,GAKVkC,GAIJD,CAEf,CApOsBD,CAAsB1wvB,GAGxC,GAAyB,mBAAd6vvB,GAA0B,CACjC,IAAKxF,GAAQpD,EAAO1B,EAAOh1vB,GAGvB,OAAQA,EAAQ4pC,GAAYiktB,KACxB0R,GAAqBviuB,EAAevtB,EAAOzP,GAC3Cw/vB,GAA+B9I,EAAOjnvB,EAAOzP,EAAOg9B,GAE5D,IACI,MAAMt+B,GAAQ4gwB,GAAUt/vB,GACxB,GAAa,MAATtB,IAAmBsB,EAAQ4pC,GAAYyQ,SAIvC,OAAO37C,GAHPouvB,GAQR,CAHA,QAEI6N,IACJ,UAE0B,iBAAd2E,GAAwB,CAIpC,IAAIgB,GAAgB,KAChB5B,GAAgBF,GAAiBxJ,EAAO0B,GACxCiH,GAAiBlB,GACjB8D,GAAmBvgwB,EAAQ4pC,GAAYiktB,KAAO6I,EAAMxC,IAA4BV,IAAU,KAiB9F,MAdsB,IAAlBkL,IAAwB1+vB,EAAQ4pC,GAAY0Q,YAC5CqjtB,IAAmC,IAAlBe,GAAuBI,GAA0B9J,EAAO0B,GACrEA,EAAMgI,GAAgB,GACtBf,KAAmBlB,IAAuB+D,GAAmBxgwB,GAAO,IAIpEsgwB,GAAgB5J,EAAMvD,IACtBuL,GAAgBd,GAAuBD,IACvCjH,EAAQmH,GAAsBF,GAAgBjH,IAL9CgI,IAAgB,IAUC,IAAlBA,IAAsB,CAGzB,MAAMxikB,GAAQw6jB,EAAMvD,IAGpB,GAAIsN,GAAcnB,GAAWZ,GAAexikB,GAAMh+L,MAAO,CAIrD,MAAM29B,GAAW6kuB,GAAuBhC,GAAehI,EAAOjnvB,EAAO6wvB,GAAetgwB,EAAOugwB,IAC3F,GAAI1kuB,KAAaoE,GACb,OAAOpE,GAGf8huB,GAAiBjH,EAAMgI,GAAgB,GACnCf,KAAmBlB,IACnB+D,GAAmBxgwB,EAAO02vB,EAAMvD,IAAOj1vB,KAAKwgwB,GAAgB,KAAsC6B,KAClGE,GAAcnB,GAAWZ,GAAehI,IAGxC4J,GAAgBpkkB,GAChBwikB,GAAgBd,GAAuBD,IACvCjH,EAAQmH,GAAsBF,GAAgBjH,IAM9CgI,IAAgB,GAI5B,OAAO1huB,CACX,CACA,SAAS0juB,GAAuBhC,EAAehI,EAAOjnvB,EAAO6wvB,EAAetgwB,EAAOugwB,IAC/E,MAAMI,GAAejK,EAAMvD,IACrB6B,GAAQ2L,GAAaziwB,KAAKwgwB,EAAgB,GAsB1CkC,GAAgBC,GAA0B7L,GAAO2L,GAAclxvB,EAnBrB,MAAjB6wvB,EAQ1BrL,GAAgBD,KAAUiJ,GAO1BqC,GAAiBK,IAA+D,IAAhC,EAAb3L,GAAM73vB,MAGnB6C,EAAQ4pC,GAAYiktB,MAAS0S,KAAqBvL,IAE7E,OAAsB,OAAlB4L,GACOE,GAAkBpK,EAAOiK,GAAcC,GAAe5L,IAGtD/0tB,EAEf,CAWA,SAAS4guB,GAA0B7L,EAAO94jB,EAAOzsL,EAAOsxvB,EAAwBC,GAC5E,MAAMC,GAAsBjM,EAAMkM,gBAC5BC,GAAejlkB,EAAMh+L,KACrBkjwB,GAAyC,QAAtBH,GACnBI,GAAkBrM,EAAMqG,eAExBiG,GAAwBL,IAAuB,GAG/Cx4jB,GAAWu4jB,EAAoBI,GAAmBE,GAJnCtM,EAAMsG,aAK3B,QAAStkwB,GAHa+pwB,EAAyBK,GAAmBA,GAAmBE,GAGzDtqwB,GAAIyxM,GAAUzxM,KAAK,CAC3C,MAAMuqwB,GAAqBJ,GAAanqwB,IACxC,GAAIA,GAAIqqwB,IAAmB5xvB,IAAU8xvB,IACjCvqwB,IAAKqqwB,IAAmBE,GAAmBpkwB,OAASsS,EACpD,OAAOzY,GAGf,GAAIgqwB,EAAmB,CACnB,MAAMQ,GAASL,GAAaE,IAC5B,GAAIG,IAAUpM,GAAeoM,KAAWA,GAAOrkwB,OAASsS,EACpD,OAAO4xvB,GAGf,OAAO,IACX,CAQA,SAASP,GAAkBpK,EAAOx6jB,EAAOr4L,EAAOmxvB,GAC5C,IAAIt2vB,EAAQg4vB,EAAM7yvB,GAClB,MAAM41vB,GAAQv9jB,EAAMh+L,KACpB,GAl1BJ,SAASujwB,GAAU9xtB,GACf,OAAOA,aAAe+stB,EAC1B,CAg1BQ+E,CAAU/iwB,GAAQ,CAClB,MAAM9G,GAAU8G,EACZ9G,GAAQilwB,WAvpGpB,SAAS6E,GAA2BjyvB,EAAOkY,GACvC,MAAMg6uB,EAAUh6uB,EAAQ,sBAAqBA,EAAKrY,KAAK,YAAYG,IAAU,GAC7E,MAAM,IAAIi9uB,IAAa,IAAmD,0CAAyCj9uB,IAAQkyvB,IAC/H,CAqpGYD,CAA2B7U,GAAkB4M,GAAM51vB,KAEvD,MAAM+9vB,GAA+B1D,GAAwBtmwB,GAAQklwB,qBACrEllwB,GAAQilwB,WAAY,EACpB,MAAM6C,GAA+B9nwB,GAAQmlwB,WAAa/O,GAAwBp2vB,GAAQmlwB,YAAc,KACxFjD,GAAQpD,EAAO1B,EAAOprtB,GAAYgzd,SAGlD,IACIl+f,EAAQg4vB,EAAM7yvB,GAASjM,GAAQA,aAAQ6I,EAAWg5vB,GAAO/C,EAAO1B,GAO5D94jB,EAAMuikB,iBAAmB56vB,GAASmxvB,EAAMqG,gBA/qCxD,SAASwG,GAAsBC,EAAgBC,EAAc7lkB,GAEzD,MAAQhhK,cAAaO,WAAU2gtB,cAAc2lB,EAAa5kwB,KAAK0kB,UAC/D,GAAIqZ,EAAa,CACb,MAAM8muB,GAAmBxM,GAAuBuM,IAC/C7lkB,EAAM+lkB,gBAAkB/lkB,EAAM+lkB,cAAgB,KAAK7mwB,KAAK0mwB,EAAgBE,KACxE9lkB,EAAMgmkB,qBAAuBhmkB,EAAMgmkB,mBAAqB,KAAK9mwB,KAAK0mwB,EAAgBE,GAAgB,CAEnGvmuB,IACCygK,EAAM+lkB,gBAAkB/lkB,EAAM+lkB,cAAgB,KAAK7mwB,KAAK,EAAI0mwB,EAAgBrmuB,GAE7E2gtB,MACClgjB,EAAM+lkB,gBAAkB/lkB,EAAM+lkB,cAAgB,KAAK7mwB,KAAK0mwB,EAAgB1lB,KACxElgjB,EAAMgmkB,qBAAuBhmkB,EAAMgmkB,mBAAqB,KAAK9mwB,KAAK0mwB,EAAgB1lB,IAE3F,CAkqCgBylB,CAAsBh+vB,EAAO41vB,GAAM51vB,GAAQq4L,EASnD,CAPA,QAEqC,OAAjCwjkB,IACI1R,GAAwB0R,IAC5BxB,GAAwB0D,IACxBhqwB,GAAQilwB,WAAY,EACpBlC,IACJ,EAEJ,OAAOj8vB,CACX,CAoCA,SAAS+hwB,GAAcnB,EAAWZ,EAAeyD,GAW7C,SAHcA,EAAazD,GAAiBY,GAAalB,KAJ5C,GAAKkB,EAQtB,CAEA,SAASkB,GAAmBxgwB,EAAOoiwB,GAC/B,QAASpiwB,EAAQ4pC,GAAYkktB,MAAW9tvB,EAAQ4pC,GAAYiktB,MAAQuU,EACxE,CACA,MAAMC,GACFhwwB,YAAYiwwB,EAAQC,GAChB/vwB,KAAK8vwB,OAASA,EACd9vwB,KAAK+vwB,OAASA,CAClB,CACA/rwB,IAAIiZ,EAAOutB,EAAeh9B,GACtB,OAAO2/vB,GAAsBntwB,KAAK8vwB,OAAQ9vwB,KAAK+vwB,OAAQ9yvB,EAAO0/uB,GAAkBnvvB,GAAQg9B,EAC5F,EAGJ,SAASqjuB,KACL,OAAO,IAAIgC,GAAalK,KAAmBN,KAC/C,CAIA,SAAS2K,GAAsBrlwB,GAC3B,OAAOqyvB,GAAc,KACjB,MAAMiT,EAAiBtlwB,EAAK0kB,UAAUxvB,YAChCqwwB,EAAaD,EAAetS,KAAmBwS,GAAaF,GAC5DG,EAAkBzkwB,OAAO0jB,UAC/B,IAAIhjB,EAASV,OAAO2vb,eAAe3wb,EAAK0kB,WAAWxvB,YAEnD,KAAOwM,GAAUA,IAAW+jwB,GAAiB,CACzC,MAAMhrwB,GAAUiH,EAAOsxvB,KAAmBwS,GAAa9jwB,GAMvD,GAAIjH,IAAWA,KAAY8qwB,EACvB,OAAO9qwB,GAEXiH,EAASV,OAAO2vb,eAAejvb,EAAM,CAMzC,OAAOoP,IAAK,IAAIA,EAAC,EAEzB,CACA,SAAS00vB,GAAaxlwB,GAClB,OAAIovvB,GAAapvvB,GACN,KACH,MAAMvF,EAAU+qwB,GAAarW,EAAkBnvvB,IAC/C,OAAOvF,GAAWA,GAAO,EAG1B09vB,GAAcn4vB,EACzB,CAqDA,SAASgiwB,GAAkBzI,GACvB,MAAMx6jB,EAAQw6jB,EAAMvD,IACd0P,EAAY3mkB,EAAM/+L,KAExB,OAAkB,IAAd0lwB,EAEO3mkB,EAAM29jB,UAEM,IAAdgJ,EAGEnM,EAAMlD,IAEV,IACX,CAOA,SAASsP,GAAkBC,GACvB,OAtfJ,SAASC,GAAoBhO,EAAO+N,GAGhC,GAAyB,UAArBA,EACA,OAAO/N,EAAMn6jB,QAEjB,GAAyB,UAArBkokB,EACA,OAAO/N,EAAMl+vB,OAEjB,MAAM61D,EAAQqosB,EAAMrosB,MACpB,GAAIA,EAAO,CACP,MAAMs2sB,EAAct2sB,EAAM11D,OAC1B,IAAID,EAAI,EACR,KAAOA,EAAIiswB,GAAa,CACpB,MAAMvkwB,GAAQiuD,EAAM31D,GAEpB,GAAIomwB,GAA0B1+vB,IAC1B,MAEJ,GAAc,IAAVA,GAKA1H,GAAQ,UAEc,iBAAV0H,GAGZ,IADA1H,IACOA,EAAIiswB,GAAmC,iBAAbt2sB,EAAM31D,IACnCA,QAGH,IAAI0H,KAAUqkwB,EACf,OAAOp2sB,EAAM31D,EAAI,GAGjBA,GAAQ,IAIpB,OAAO,IACX,CA4cWgswB,CAAoB7K,KAAmB4K,EAClD,CAEA,MAAMG,GAAc,kBACdC,GAAa,iBACbC,GAAgB,qBAItB,SAAS79hB,GAAc3vO,EAAMm+E,EAAOsvrB,EAAaC,EAAsBC,GACnE,OAAO/T,GAAc,KACjB,MAAMgU,GAAWC,GAAiB1vrB,GAClC,SAAS2vrB,MAAoB55vB,IACzB,GAAItX,gBAAgBkxwB,GAChBF,UAAS34vB,KAAKrY,QAASsX,IAChBtX,KAEX,MAAMmxwB,GAAqB,IAAID,MAAoB55vB,IACnD,OAAO,SAAuB2sJ,IAC1B,OAAI8smB,GACAA,EAAO9smB,MAAQ3sJ,KAGC2sJ,GAAIpvI,eAAe67uB,IACnCzsmB,GAAIysmB,IACJ/kwB,OAAOo/C,eAAek5G,GAAKysmB,GAAa,CAAExkwB,MAAO,KAAMwkwB,KAC/C9nwB,KAAKuowB,IACbL,GACAA,EAAqB7smB,IAClBA,EACX,CACJ,CACA,OAAI4smB,IACAK,GAAiB7hvB,UAAY1jB,OAAOC,OAAOilwB,EAAYxhvB,YAE3D6hvB,GAAiB7hvB,UAAU+hvB,eAAiBhuwB,EAC5C8twB,GAAiBG,cAAgBH,GAC1BA,IAEf,CACA,SAASD,GAAiB1vrB,GACtB,OAAO,YAAiBjqE,GACpB,GAAIiqE,EAAO,CACP,MAAM5nE,EAAS4nE,KAASjqE,GACxB,UAAWk4rB,KAAY71rB,EACnB3Z,KAAKwvsB,GAAY71rB,EAAO61rB,EAAQ,CAG5C,CACJ,CACA,SAAS8hE,GAAmBluwB,EAAMm+E,EAAOsvrB,GACrC,OAAO7T,GAAc,KACjB,MAAMgU,EAAWC,GAAiB1vrB,GAClC,SAASgwrB,KAAyBj6vB,IAC9B,GAAItX,gBAAgBuxwB,EAChBP,SAASpgvB,MAAM5wB,KAAMsX,IACdtX,KAEX,MAAMmxwB,GAAqB,IAAII,KAAyBj6vB,IACxDk6vB,UAAerlnB,WAAaglnB,GACrBK,GACP,SAASA,GAAevtmB,GAAKwtmB,GAAWpgwB,IAGpC,MAAMmnB,GAAayrI,GAAIpvI,eAAe87uB,IAClC1smB,GAAI0smB,IACJhlwB,OAAOo/C,eAAek5G,GAAK0smB,GAAY,CAAEzkwB,MAAO,KAAMykwB,IAG1D,KAAOn4uB,GAAW/zB,QAAU4M,IACxBmnB,GAAW5vB,KAAK,MAEpB,OAAC4vB,GAAWnnB,IAASmnB,GAAWnnB,KAAU,IAAIzI,KAAKuowB,IAC5CltmB,EACX,CACJ,CACA,OAAI4smB,IACAU,EAAsBlivB,UAAY1jB,OAAOC,OAAOilwB,EAAYxhvB,YAEhEkivB,EAAsBlivB,UAAU+hvB,eAAiBhuwB,EACjDmuwB,EAAsBF,cAAgBE,EAC/BA,GAEf,CACA,SAASG,GAAkBtuwB,EAAMm+E,EAAOsvrB,EAAaC,GACjD,OAAO9T,GAAc,KACjB,MAAMgU,EAAWC,GAAiB1vrB,GAClC,SAASowrB,MAAwBr6vB,IAC7B,GAAItX,gBAAgB2xwB,GAChBX,SAASpgvB,MAAM5wB,KAAMsX,IACdtX,KAEX,MAAM4xwB,GAAoB,IAAID,MAAwBr6vB,IAatD,OAZA,SAASu6vB,GAAc9vwB,GAAQqB,IAC3B,MAAMvD,GAAckC,GAAOlC,YAGrBkQ,GAAOlQ,GAAYg1B,eAAe+7uB,IACpC/wwB,GAAY+wwB,IACZjlwB,OAAOo/C,eAAelrD,GAAa+wwB,GAAe,CAAE1kwB,MAAO,CAAC,IAAK0kwB,IACrE7gwB,GAAK3M,IAAQ2M,GAAK8kB,eAAezxB,KAAS2M,GAAK3M,KAAS,GACxD2M,GAAK3M,IAAMkgC,QAAQsuuB,IACfd,GACAA,EAAqB/uwB,GAAQqB,MAASkU,GAC9C,CAEJ,CACA,OAAIu5vB,IACAc,GAAqBtivB,UAAY1jB,OAAOC,OAAOilwB,EAAYxhvB,YAE/DsivB,GAAqBtivB,UAAU+hvB,eAAiBhuwB,EAChDuuwB,GAAqBN,cAAgBM,GAC9BA,IAEf,CAQA,MAAMG,GAAYR,GAAmB,YAAc70jB,KAAqBA,gBAAeohjB,kBAAmB,IAAMyS,GAAkB7zjB,MA8ClI,MAAMj5M,GAOF3D,YAAYkywB,EAAOn2vB,GACf5b,KAAK+xwB,MAAQA,EAEb/xwB,KAAKoxwB,eAAiB,iBACtBpxwB,KAAKkF,gBAAQ+I,EACS,iBAAX2N,EAKP5b,KAAK69vB,kBAAoBjivB,OAER3N,IAAZ2N,IACL5b,KAAKkF,WAAQwuvB,GAAmB,CAC5Bz2uB,MAAOjd,KACPuJ,WAAYqS,EAAQrS,YAAc,OAClCnE,QAASwW,EAAQxW,UAG7B,CAIIP,YACA,OAAO7E,IACX,CACAsW,WACI,MAAQ,kBAAiBtW,KAAK+xwB,OAClC,EAwCJ,MAAMC,GAA+B,IAAIxuwB,GAAe,6BAcxD,MAAMyuwB,IASN,MAAMC,GAAkBR,GAAkB,kBAAmB,CAAC9lvB,EAAUlgB,EAAO,CAAC,MAC5EkgB,WACAzL,OAAO,EACPgyvB,aAAa,EACbC,aAAa,EACbC,yBAzBwC,KA0BrC3mwB,IACHumwB,IASEK,GAAeZ,GAAkB,eAAgB,CAAC9lvB,EAAUlgB,EAAO,CAAC,MAASkgB,WAAUzL,OAAO,EAAMgyvB,aAAa,EAAOC,aAAa,KAAS1mwB,IAASumwB,IAOvJM,GAAeb,GAAkB,eAAgB,CAAC9lvB,EAAUlgB,EAAO,CAAC,MACtEkgB,WACAzL,OAAO,EACPgyvB,aAAa,EACbC,aAAa,EACbC,yBAhDwC,KAiDrC3mwB,IACHumwB,IAOEO,GAAYd,GAAkB,YAAa,CAAC9lvB,EAAUlgB,MAAYkgB,WAAUzL,OAAO,EAAMgyvB,aAAa,EAAMC,aAAa,KAAS1mwB,IAASumwB,IAEjJ,IAAIQ,GAAa,OAAbA,OAAa,IAECA,GAAcC,UAAe,GAAK,YAChDD,GAAcA,GAAcE,UAAe,GAAK,YAChDF,GAAcA,GAAcG,WAAgB,GAAK,aACjDH,GAAcA,GAAc/yqB,KAAU,GAAK,OAC3C+yqB,GAAcA,GAAcI,SAAc,GAAK,WAN/CJ,IAAa,GAsBjB,SAASK,GAAkB5yvB,GACvB,MAAM6yvB,EAAWnX,GAAQl1J,GACzB,GAAIqsK,GAAYA,EAASC,qBACrB,OAAOD,EAASC,qBA2BhB,MAAM,IAAIvswB,MAAM,2BAExB,CAYA,MAAMolT,GAAOx+I,SACb,SAAS4lmB,GAAO13vB,GACZ,MAAoB,mBAANA,CAClB,CA6BA,SAAS4a,GAAQ3Z,GACb,OAAOA,EAAK9S,KAAK6iF,OAAOmjpB,kBAC5B,CACA,SAASwjC,GAAY/rvB,EAAOtM,GACxBsM,EAAMxhB,QAAQuG,GAAS4N,MAAM2C,QAAQvQ,GAASgnwB,GAAYhnwB,EAAO2O,GAAMA,EAAG3O,GAC9E,CACA,SAASinwB,GAAW/8uB,EAAK/kB,EAAOnF,GAExBmF,GAAS+kB,EAAI3xB,OACb2xB,EAAIxtB,KAAKsD,GAGTkqB,EAAIjlB,OAAOE,EAAO,EAAGnF,EAE7B,CACA,SAASknwB,GAAgBh9uB,EAAK/kB,GAE1B,OAAIA,GAAS+kB,EAAI3xB,OAAS,EACf2xB,EAAIplB,MAGJolB,EAAIjlB,OAAOE,EAAO,GAAG,EAEpC,CACA,SAASgiwB,GAASjusB,EAAMl5D,GACpB,MAAMsQ,EAAO,GACb,QAAShY,EAAI,EAAGA,EAAI4gE,EAAM5gE,IACtBgY,EAAK5T,KAAKsD,GAEd,OAAOsQ,CACX,CAyGA,SAAS82vB,GAAiBC,EAAeziwB,EAAK5E,GAC1C,IAAImF,EAAQmiwB,GAAqBD,EAAeziwB,GAChD,OAAIO,GAAS,EAETkiwB,EAAsB,EAARliwB,GAAanF,GAG3BmF,GAASA,EAvDjB,SAASoiwB,GAAa/kuB,EAAOr9B,EAAOqiwB,EAAQC,GAExC,IAAInowB,EAAMkjC,EAAMjqC,OAChB,GAAI+G,GAAO6F,EAEPq9B,EAAM9lC,KAAK8qwB,EAAQC,QAAM,GAEZ,IAARnowB,EAELkjC,EAAM9lC,KAAK+qwB,EAAQjluB,EAAM,IACzBA,EAAM,GAAKgluB,MAEV,CAGD,IAFAlowB,IACAkjC,EAAM9lC,KAAK8lC,EAAMljC,EAAM,GAAIkjC,EAAMljC,IAC1BA,EAAM6F,GAETq9B,EAAMljC,GAAOkjC,EADOljC,EAAM,GAE1BA,IAEJkjC,EAAMr9B,GAASqiwB,EACfhluB,EAAMr9B,EAAQ,GAAKsiwB,EAE3B,CAiCQF,CAAaF,EAAeliwB,EAAOP,EAAK5E,IAErCmF,CACX,CAQA,SAASuiwB,GAAiBL,EAAeziwB,GACrC,MAAMO,EAAQmiwB,GAAqBD,EAAeziwB,GAClD,GAAIO,GAAS,EAET,OAAOkiwB,EAAsB,EAARliwB,EAG7B,CAWA,SAASmiwB,GAAqBD,EAAeziwB,GACzC,OAqCJ,SAAS+iwB,GAAoBnluB,EAAOxiC,EAAO+D,GAEvC,IAAIozE,EAAQ,EACR73E,EAAMkjC,EAAMjqC,QAAUwL,EAC1B,KAAOzE,IAAQ63E,GAAO,CAClB,MAAM29e,GAAS39e,GAAU73E,EAAM63E,GAAU,GACnChrD,GAAUqW,EAAMsyhB,IAAU/wjB,GAChC,GAAI/D,IAAUmsB,GACV,OAAQ2oiB,IAAU/wjB,EAEbooB,GAAUnsB,EACfV,EAAMw1jB,GAGN39e,EAAQ29e,GAAS,EAGzB,QAASx1jB,GAAOyE,EACpB,CAvDW4jwB,CAAoBN,EAAeziwB,EAAK,EACnD,CAsFA,MAAMgjwB,GAAoB,uGAEpBC,GAAyB,4CAKzBC,GAAmC,mEAKnCC,GAA4C,sGAclD,MAAMC,GACFr0wB,YAAYs0wB,GACRn0wB,KAAKo0wB,SAAWD,GAAWvY,GAAQpgU,OACvC,CACAp2b,QAAQqW,GACJ,MAAO,IAAInE,IAAS,IAAImE,KAAKnE,EACjC,CAEA+8vB,wBAAwBC,EAAYC,GAChC,IAAIjjwB,EAEAA,EAAS+hwB,UADFiB,EAAe,IACJC,EAAiB9vwB,OAGjB6vwB,EAAW7vwB,QAEjC,QAASD,EAAI,EAAGA,EAAI8M,EAAO7M,OAAQD,IAK3B8M,EAAO9M,UADA8vwB,EAAe,IACV,GAEPA,EAAW9vwB,IAAM8vwB,EAAW9vwB,IAAMmH,OAC3B,CAAC2owB,EAAW9vwB,IAGZ,GAEZ+vwB,GAA2C,MAAvBA,EAAiB/vwB,KACrC8M,EAAO9M,GAAK8M,EAAO9M,GAAGiW,OAAO85vB,EAAiB/vwB,KAGtD,OAAO8M,CACX,CACAkjwB,eAAe7pwB,EAAM8pwB,GASjB,GAjDR,SAASC,GAAeC,GACpB,OAAOb,GAAkB3wvB,KAAKwxvB,IAC1BV,GAA0C9wvB,KAAKwxvB,IAC9CZ,GAAuB5wvB,KAAKwxvB,KAAaX,GAAiC7wvB,KAAKwxvB,EACxF,CA6CYD,CARY/pwB,EAAK2L,YASjB,OAAO,KAGX,GAAI3L,EAAK6tB,YAAc7tB,EAAK6tB,aAAei8uB,EAAWj8uB,WAClD,OAAO7tB,EAAK6tB,WAGhB,MAAMo8uB,EAAoBjqwB,EAAKkqwB,eAC/B,GAAID,GAAqBA,IAAsBH,EAAWI,eAAgB,CAGtE,MAAMA,GAA8C,mBAAtBD,EAAmCA,IAAsBA,EACjFN,GAAaO,GAAettwB,IAAKutwB,IAAcA,IAAaA,GAAUnqwB,MACtE4pwB,GAAmBM,GAAettwB,IAAKutwB,IAAcA,IAAaC,GAAoCD,GAAUE,aACtH,OAAOh1wB,KAAKq0wB,wBAAwBC,GAAYC,GAAgB,CAGpE,MAAMA,GAAmB5pwB,EAAKkqB,eAAe87uB,KAAehmwB,EAAKgmwB,IAC3D2D,GAAat0wB,KAAKo0wB,UAAYp0wB,KAAKo0wB,SAASa,gBAC9Cj1wB,KAAKo0wB,SAASa,eAAe,oBAAqBtqwB,GACtD,OAAI2pwB,IAAcC,GACPv0wB,KAAKq0wB,wBAAwBC,GAAYC,IAM7ClB,GAAS1owB,EAAKlG,OACzB,CACA+zB,WAAW7tB,GAGP,IAAKsowB,GAAOtowB,GACR,MAAO,GAEX,MAAM8pwB,EAAaS,GAAcvqwB,GACjC,IAAI6tB,EAAax4B,KAAKw0wB,eAAe7pwB,EAAM8pwB,GAC3C,OAAKj8uB,GAAci8uB,IAAe9owB,SAC9B6sB,EAAax4B,KAAKw4B,WAAWi8uB,IAE1Bj8uB,GAAc,EACzB,CACA28uB,gBAAgBC,EAAYX,GAExB,GAAIW,EAAWtpnB,aAAespnB,EAAWtpnB,cAAgB2onB,EAAW3onB,YAAa,CAC7E,IAAIA,EAAcspnB,EAAWtpnB,YAC7B,MAA2B,mBAAhBA,GAA8BA,EAAYA,cACjDA,EAAcA,EAAYA,aAEvBA,EAGX,OAAIspnB,EAAWJ,YAAcI,EAAWJ,aAAeP,EAAWO,WACvDD,GAAoCK,EAAWJ,YAGtDI,EAAWvgvB,eAAe67uB,IACnB0E,EAAW1E,IAEf,IACX,CACA5knB,YAAYspnB,GACR,IAAKnC,GAAOmC,GACR,MAAO,GAEX,MAAMX,EAAaS,GAAcE,GAC3BC,EAAiBr1wB,KAAKm1wB,gBAAgBC,EAAYX,IAAe,GAEvE,OAD0BA,IAAe9owB,OAAS3L,KAAK8rJ,YAAY2onB,GAAc,IACxDh6vB,OAAO46vB,EACpC,CACAC,iBAAiBF,EAAYX,GAEzB,GAAIW,EAAWG,cACXH,EAAWG,eAAiBd,EAAWc,aAAc,CACrD,IAAIA,EAAeH,EAAWG,aAC9B,MAA4B,mBAAjBA,GAA+BA,EAAaA,eACnDA,EAAeA,EAAaA,cAEzBA,EAGX,GAAIH,EAAWI,gBACXJ,EAAWI,iBAAmBf,EAAWe,eAAgB,CACzD,MAAMA,EAAiBJ,EAAWI,eAC5BD,EAAe,CAAC,EACtB5pwB,cAAOtE,KAAKmuwB,GAAgB7vwB,QAAQ0wB,KAChCk/uB,EAAal/uB,IAAQ0+uB,GAAoCS,EAAen/uB,IAAK,GAE1Ek/uB,EAGX,OAAIH,EAAWvgvB,eAAe+7uB,IACnBwE,EAAWxE,IAEf,IACX,CACA2E,aAAaH,GACT,IAAKnC,GAAOmC,GACR,MAAO,CAAC,EAEZ,MAAMX,EAAaS,GAAcE,GAC3BG,EAAe,CAAC,EACtB,GAAId,IAAe9owB,OAAQ,CACvB,MAAM8pwB,GAAqBz1wB,KAAKu1wB,aAAad,GAC7C9owB,OAAOtE,KAAKouwB,IAAoB9vwB,QAAS6psB,KACrC+lE,EAAa/lE,IAAYimE,GAAmBjmE,GAAQ,EACvD,CAEL,MAAMkmE,EAAkB11wB,KAAKs1wB,iBAAiBF,EAAYX,GAC1D,OAAIiB,GACA/pwB,OAAOtE,KAAKquwB,GAAiB/vwB,QAAS6psB,KAClC,MAAMwlE,GAAa,GACfO,EAAa1gvB,eAAe26qB,KAC5BwlE,GAAWpswB,QAAQ2swB,EAAa/lE,KAEpCwlE,GAAWpswB,QAAQ8swB,EAAgBlmE,KACnC+lE,EAAa/lE,IAAYwlE,KAG1BO,CACX,CACAG,gBAAgBN,GACZ,OAAKnC,GAAOmC,IAGLp1wB,KAAKs1wB,iBAAiBF,EAAYF,GAAcE,KAF5C,CAAC,CAGhB,CACAO,iBAAiBhrwB,EAAMirwB,GACnB,OAAOjrwB,aAAgBkhT,IAAQ+pd,KAAcjrwB,EAAK0kB,SACtD,EAEJ,SAAS0lvB,GAAoCc,GACzC,OAAKA,EAGEA,EAAqBtuwB,IAAIuuwB,GAIrB,IAAIzE,EAHWyE,EAAoBnrwB,KACN0mwB,kBACbyE,EAAoBx+vB,KAAOw+vB,EAAoBx+vB,KAAO,KALtE,EAQf,CACA,SAAS49vB,GAAca,GACnB,MAAMC,EAAcD,EAAK1mvB,UAAY1jB,OAAO2vb,eAAey6U,EAAK1mvB,WAAa,KAI7E,OAHmB2mvB,EAAcA,EAAYn2wB,YAAc,OAGtC8L,MACzB,CAQA,MAAM06b,GAAS02T,GAGfuU,GAAmB,SAAWr0vB,KAAaA,YAAW,GAOhD4qC,GAGNk1sB,GAAiBuU,GAAmB,YAAa,GAO3ChW,GAGNyB,GAAiBuU,GAAmB,QAAS,GAOvCxptB,GAGNi1sB,GAAiBuU,GAAmB,YAAa,GAO3CjW,GAGN0B,GAAiBuU,GAAmB,QAAS,GAE7C,IAAI8C,GAAW,KACf,SAAS6B,KACL,OAAQ7B,GAAWA,IAAY,IAAIF,EACvC,CACA,SAASgC,GAAoBvrwB,GACzB,OAAOwrwB,GAAoBF,KAAaz9uB,WAAW7tB,GACvD,CACA,SAASwrwB,GAAoBzxwB,GACzB,OAAOA,EAAK6C,IAAI8/I,GAEpB,SAAS+unB,GAAkB/unB,GACvB,MAAMt3I,EAAO,CACTkN,MAAO,KACPo5vB,UAAW,KACXpuwB,MAAM,EACN0Z,UAAU,EACVw7L,MAAM,EACNy/iB,UAAU,GAEd,GAAI9ivB,MAAM2C,QAAQ4qI,IAAQA,EAAI5iJ,OAAS,EACnC,QAAS06E,EAAI,EAAGA,EAAIkoE,EAAI5iJ,OAAQ06E,IAAK,CACjC,MAAM9iE,EAAQgrI,EAAIloE,GAClB,QAAclxE,IAAVoO,EAEA,SAEJ,MAAMm6V,EAAQ7qW,OAAO2vb,eAAej/a,GACpC,GAAIA,aAAiBwrC,IAAqC,aAAzB2uT,EAAM46Z,eACnCrhwB,EAAK4R,UAAW,UAEXtF,aAAiByrC,IAAqC,aAAzB0uT,EAAM46Z,eACxCrhwB,EAAK6svB,UAAW,UAEXvgvB,aAAiBi/uB,IAAiC,SAAzB9kZ,EAAM46Z,eACpCrhwB,EAAKotM,MAAO,UAEP9gM,aAAiBg/uB,IAAiC,SAAzB7kZ,EAAM46Z,eACpCrhwB,EAAK9H,MAAO,UAEPoU,aAAiBgqb,GACtBt2b,EAAKkN,MAAQZ,EAAMY,cAEdZ,aAAiBy1vB,GAAW,CACjC,QAA4B7jwB,IAAxBoO,EAAMogM,cACN,MAAM,IAAIy9iB,GAAa,KAAoDtjuB,GAE/E7mB,EAAKsmwB,UAAYh6vB,EAAMogM,mBAGvB1sM,EAAKkN,MAAQZ,OAKrBtM,EAAKkN,WADQhP,IAARo5I,GAAsBvtI,MAAM2C,QAAQ4qI,IAAuB,IAAfA,EAAI5iJ,OACxC,KAGA4iJ,EAEjB,OAAOt3I,CACX,CApD2BqmwB,CAAkB/unB,GAC7C,CAqFA,SAASivnB,GAA0BC,GAE/B,MAAMC,EAAoB,GAEpBC,EAAS,IAAI/wwB,IACnB,SAASgxwB,EAAsBj0wB,GAC3B,IAAIq2C,GAAU29tB,EAAOzywB,IAAIvB,GACzB,IAAKq2C,GAAS,CACV,MAAM69tB,GAAOJ,EAAiB9zwB,GAC9Bg0wB,EAAOjwwB,IAAI/D,EAAKq2C,GAAU69tB,GAAKxywB,KAAKyywB,IAAe,CAEvD,OAAO99tB,EACX,CACA+9tB,UAAiClxwB,QAAQ,CAACwI,EAAWxD,MACjD,MAAMmswB,GAAW,GACb3owB,EAAU4owB,aACVD,GAASluwB,KAAK8twB,EAAsBvowB,EAAU4owB,aAAa5ywB,KAAMy+Q,KAC7Dz0Q,EAAUy0Q,SAAWA,MAG7B,MAAMo0f,GAAY7owB,EAAU6owB,UACtB1ywB,GAAS6J,EAAU7J,SAAW6J,EAAU7J,OAAS,IACjD2ywB,GAAc9owB,EAAU7J,OAAOG,OACrCuywB,IAAaA,GAAUrxwB,QAAQ,CAACuxwB,GAAU7lwB,MACtC/M,GAAOsE,KAAK,IACZkuwB,GAASluwB,KAAK8twB,EAAsBQ,IAAU/ywB,KAAM4C,KAChDzC,GAAO2ywB,GAAc5lwB,IAAStK,GAC9BiwwB,GAAU7lwB,OAAO6lwB,GAAU9lwB,QAAQgmwB,IAAW,GACtB,GAApBF,GAAUvywB,SACV0J,EAAU6owB,eAAY/owB,KAE5B,GAEN,MAAMkpwB,GAAgB1gvB,QAAQskL,IAAI+7jB,IAAU3ywB,KAAK,IAsCzD,SAASizwB,GAAqBzswB,GAC1B0swB,GAA8B5vwB,OAAOkD,EACzC,CAxC+DyswB,CAAqBzswB,KAC5E6rwB,EAAkB5twB,KAAKuuwB,GAAa,GAExCG,KACO7gvB,QAAQskL,IAAIy7jB,GAAmBrywB,KAAK,OAC/C,CACA,IAAI0ywB,GAAmC,IAAInxwB,IAE3C,MAAM2xwB,GAAgC,IAAItvwB,IAU1C,SAASwvwB,GAAyBppwB,GAC9B,SAAWA,EAAU4owB,cAAgB5owB,EAAU0mB,eAAe,aAC1D1mB,EAAU6owB,WAAa7owB,EAAU6owB,UAAUvywB,OACnD,CACA,SAAS6ywB,KACL,MAAMl1kB,EAAMy0kB,GACZA,UAAmC,IAAInxwB,IAChC08L,CACX,CASA,SAASw0kB,GAAetzvB,GACpB,MAA0B,iBAAZA,EAAuBA,EAAWA,EAASI,MAC7D,CAQA,MAAMozI,GAAU,IAAIpxJ,IAMpB,IAAI8xwB,IAA6B,EAgBjC,SAASC,GAAqBC,EAAcxswB,IAf5C,SAASyswB,GAAwBzswB,EAAIP,EAAMitwB,GACvC,GAAIjtwB,GAAQA,IAASitwB,GAAYJ,GAC7B,MAAM,IAAI/wwB,MAAO,mCAAkCyE,OAAQuT,GAAU9T,SAAY8T,GAAU9T,EAAKvH,QAExG,EAaIu0wB,CAAwBzswB,EADP4rJ,GAAQ9yJ,IAAIkH,IAAO,KACEwswB,GACtC5gnB,GAAQtwJ,IAAI0E,EAAIwswB,EACpB,CAIA,SAASG,GAA0B3swB,GAC/B,OAAO4rJ,GAAQ9yJ,IAAIkH,EACvB,CAQA,SAAS4swB,GAAoCC,GACzCP,IAA8BO,CAClC,CAUA,MAAMC,GAAyB,CAC3B50wB,KAAM,mBAWJ60wB,GAAmB,CACrB70wB,KAAM,oBAGV,IAAI80wB,IAAmC,EAMvC,SAASC,GAA6BC,GAClCF,GAAmCE,CACvC,CAIA,SAASC,KACL,OAAOH,EACX,CACA,IAAII,IAAoC,EAMxC,SAASC,GAA8BH,GACnCE,GAAoCF,CACxC,CAIA,SAASI,KACL,OAAOF,EACX,CAwOA,IAAI7qwB,GAAmB,OAAnBA,OAAmB,IAQCA,GAAoBgrwB,UAAe,GAAK,YAI5DhrwB,GAAoBA,GAAoBirwB,SAAc,GAAK,WAZ3DjrwB,IAAmB,GAoBvB,MAAMkrwB,GAAqB,6BAIrBC,GAAoB,QACpBC,GAA4B,iBAiClC,MAAMC,GAAiB,IAAIpzwB,IAE3B,IAAIqzwB,GAAkB,EAWtB,SAASC,GAAa9twB,GAElB,OAAO4twB,GAAe90wB,IAAIkH,IAAO,IACrC,CAiBA,MAAM+twB,GAEE/U,YACA,OAAO8U,GAAah5wB,KAAKk5wB,QAC7B,CACAr5wB,YAIAq5wB,EAIAlvF,EAIAygF,GACIzqwB,KAAKk5wB,QAAUA,EACfl5wB,KAAKgqrB,UAAYA,EACjBhqrB,KAAKyqwB,OAASA,CAClB,EAuBJ,SAAS0O,GAAYp3wB,GACjB,IAAIq3wB,EAAUC,GAAgBt3wB,GAC9B,GAAIq3wB,GAGA,GAAI/W,GAAQ+W,GAAU,CAClB,MAAMlV,EAAQkV,EACd,IAAIpvF,EACA77qB,EACAwwvB,GACJ,GAAI2a,GAAoBv3wB,GAAS,CAE7B,GADAiorB,EAAYuvF,GAAiBrV,EAAOniwB,IACnB,GAAbiorB,EACA,MAAM,IAAIvjrB,MAAM,2DAEpB0H,EAAYpM,UA4I5B,SAASy3wB,GAAoBnwuB,GACzB,OAAOA,GAAYA,EAASxpC,aAAewpC,EAASxpC,YAAYyqC,SACpE,CA5IqBkvuB,CAAoBz3wB,GAAS,CAElC,GADAiorB,EAwMhB,SAASyvF,GAAiBvV,EAAOxkf,GAM7B,IAAI8if,EAAQ0B,EAAMvD,IAAOz9tB,WACzB,KAAOs/tB,GAAO,CACV,MACMkX,EAAoBlX,EAAMsG,aAChC,QAAStkwB,GAFmBg+vB,EAAMqG,eAEArkwB,GAAIk1wB,EAAmBl1wB,KACrD,GAAI0/vB,EAAM1/vB,MAAOk7Q,EACb,OAAO8if,EAAMnxvB,MAGrBmxvB,EAAQmX,GAAoBnX,EAAK,CAErC,OAAO,CACX,CA1N4BiX,CAAiBvV,EAAOniwB,IACnB,GAAbiorB,EACA,MAAM,IAAIvjrB,MAAM,2DAEpBk4vB,GAAaib,GAAyB5vF,EAAWk6E,EAAK,SAGtDl6E,EAAY6vF,GAAqB3V,EAAOniwB,IACvB,GAAbiorB,EACA,OAAO,KAOf,MAAMygF,GAASzG,GAAYE,EAAMl6E,IAC3B8vF,GAAcT,GAAgB5O,IAC9BvsvB,GAAW47vB,KAAgBhgwB,MAAM2C,QAAQq9vB,IAC3CA,GACAC,GAAe7V,EAAOl6E,EAAWygF,IAOrC,GALIt8vB,QAAmCF,IAAtBiQ,GAAQ/P,YACrB+P,GAAQ/P,UAAYA,EACpB6rwB,GAAgB97vB,GAAQ/P,UAAW+P,KAGnCygvB,SAAqC1wvB,IAAvBiQ,GAAQygvB,WAA0B,CAChDzgvB,GAAQygvB,WAAaA,GACrB,QAASn6vB,GAAI,EAAGA,GAAIm6vB,GAAWl6vB,OAAQD,KACnCw1wB,GAAgBrb,GAAWn6vB,IAAI0Z,GAAO,CAG9C87vB,GAAgB97vB,GAAQusvB,OAAQvsvB,IAChCk7vB,EAAUl7vB,QAGb,CACD,MAAM+7vB,EAAWl4wB,EAIjB,IAAIsK,EAAS4twB,EACb,KAAO5twB,EAASA,EAAOvL,YAAY,CAC/B,MAAM0rC,EAAgB6suB,GAAgBhtwB,GACtC,GAAImgC,EAAe,CACf,MAAM03tB,GAAQpqvB,MAAM2C,QAAQ+vB,GAAiBA,EAAgBA,EAAc03tB,MAG3E,IAAKA,GACD,OAAO,KAEX,MAAM7yvB,GAAQwowB,GAAqB3V,GAAO+V,GAC1C,GAAI5owB,IAAS,EAAG,CACZ,MAAMo5vB,GAASzG,GAAYE,GAAM7yvB,KAC3B6M,GAAU67vB,GAAe7V,GAAO7yvB,GAAOo5vB,IAC7CuP,GAAgBvP,GAAQvsvB,IACxBk7vB,EAAUl7vB,GACV,SAKhB,OAAOk7vB,GAAW,IACtB,CAIA,SAASW,GAAe7V,EAAOl6E,EAAWygF,GACtC,OAAO,IAAIwO,GAAS/U,EAAMnrb,GAAKixW,EAAWygF,EAC9C,CAOA,SAASyP,GAA2BjitB,GAChC,IACIissB,EADAiW,EAAcd,GAAgBphtB,GAElC,GAAIoqsB,GAAQ8X,GAAc,CACtB,MAAM1U,EAAe0U,EACfnwF,EAAYuvF,GAAiB9T,EAAcxtsB,GACjDissB,EAAQG,GAAyBr6E,EAAWy7E,GAC5C,MAAMvnvB,GAAU67vB,GAAetU,EAAcz7E,EAAWk6E,EAAMxD,KAC9DxivB,GAAQ/P,UAAY8pD,EACpB+htB,GAAgB/htB,EAAmB/5C,IACnC87vB,GAAgB97vB,GAAQusvB,OAAQvsvB,GAAO,MAMvCgmvB,EAAQG,GAHQ8V,EAGyBnwF,UAHzBmwF,EACajW,OAIjC,OAAOA,CACX,CAIA,MAAMkW,GAAwB,gBAK9B,SAASJ,GAAgBj4wB,EAAQ2J,GAKzB22vB,GAAQ32vB,IACR3J,EAAOq4wB,IAAyB1uwB,EAAKqtU,GAtM7C,SAASshc,GAAcnW,GAEnB4U,GAAetywB,IAAI09vB,EAAMnrb,GAAKmrb,EAClC,CAoMQmW,CAAc3uwB,IAGd3J,EAAOq4wB,IAAyB1uwB,CAExC,CAKA,SAAS2twB,GAAgBt3wB,GAErB,MAAM2J,EAAO3J,EAAOq4wB,IACpB,MAAwB,iBAAT1uwB,EAAqBstwB,GAAattwB,GAAQA,GAAQ,IACrE,CACA,SAAS4uwB,GAAiBv4wB,GACtB,MAAMmK,EAAQmtwB,GAAgBt3wB,GAC9B,OAAImK,EACQm2vB,GAAQn2vB,GAASA,EAAQA,EAAMg4vB,MAEpC,IACX,CACA,SAASoV,GAAoBjwuB,GACzB,OAAOA,GAAYA,EAASxpC,aAAewpC,EAASxpC,YAAY6qC,SACpE,CAOA,SAASmvuB,GAAqB3V,EAAOniwB,GACjC,MAAM2nM,EAAQw6jB,EAAMvD,IACpB,QAASn8vB,EAAIu9vB,EAAev9vB,EAAIklM,EAAM08jB,kBAAmB5hwB,IACrD,GAAIw/vB,GAAYE,EAAM1/vB,MAAQzC,EAC1B,OAAOyC,EAGf,OAAO,CACX,CAIA,SAASm1wB,GAAoBnX,GACzB,GAAIA,EAAMhouB,MACN,OAAOgouB,EAAMhouB,MAEZ,GAAIgouB,EAAM1pvB,KACX,OAAO0pvB,EAAM1pvB,KAMb,KAAO0pvB,EAAMn2vB,SAAWm2vB,EAAMn2vB,OAAOyM,MACjC0pvB,EAAQA,EAAMn2vB,OAElB,OAAOm2vB,EAAMn2vB,QAAUm2vB,EAAMn2vB,OAAOyM,IAE5C,CAIA,SAASygwB,GAAiBrV,EAAOjssB,GAC7B,MAAMsitB,EAAmBrW,EAAMvD,IAAOn6sB,WACtC,GAAI+ztB,EACA,QAAS/1wB,EAAI,EAAGA,EAAI+1wB,EAAiB91wB,OAAQD,IAAK,CAC9C,MAAMg2wB,EAAwBD,EAAiB/1wB,GAE/C,GADsB6/vB,GAAyBmW,EAAuBtW,GACpDhD,MAAajpsB,EAC3B,OAAOuitB,UAKWnW,GAAyBtC,EAAemC,GAC1BhD,MAClBjpsB,EAGlB,OAAO8psB,EAGf,OAAO,CACX,CA+BA,SAAS6X,GAAyB5vF,EAAWk6E,GACzC,MAAM1B,EAAQ0B,EAAMvD,IAAOj1vB,KAAKs+qB,GAChC,GAA6B,IAAzBw4E,EAAMqG,eACN,OAAOzf,GACX,MAAMz6sB,EAAU,GAChB,QAASnqC,EAAIg+vB,EAAMqG,eAAgBrkwB,EAAIg+vB,EAAMsG,aAActkwB,IAAK,CAC5D,MAAMk7Q,GAAoBwkf,EAAM1/vB,GAC3B80wB,GAAoB55f,KACrB/wO,EAAQ/lC,KAAK82Q,GAAiB,CAGtC,OAAO/wO,CACX,CAwBA,IAAI8ruB,GAIJ,SAASC,GAAoBC,EAAmBzW,GAC5C,OAAOuW,GAAqBE,EAAmBzW,EACnD,CAoBA,SAAS0W,GAAe1W,GAEpB,MAAM73vB,EAAS63vB,EAAMrD,IACrB,OAAOyB,GAAaj2vB,GAAUA,EAAOw0vB,IAAUx0vB,CACnD,CAuBA,SAASwuwB,GAAeC,GAIpB,OApBJ,SAASC,GAAYC,GAEjB,IAAI9W,EAAQ7B,GAAQ2Y,GAAoBA,EAAmBV,GAAiBU,GAC5E,KAAO9W,KAA0B,IAAfA,EAAMtD,MACpBsD,EAAQ0W,GAAe1W,GAG3B,OAAOA,CACX,CASqB6W,CAAYD,GAGb5Z,GACpB,CAIA,SAAS+Z,GAAmB/W,GACxB,OAAOgX,GAAqBhX,EAAM3C,IACtC,CAIA,SAAS4Z,GAAkBnkvB,GACvB,OAAOkkvB,GAAqBlkvB,EAAU8puB,IAC1C,CACA,SAASoa,GAAqBrW,GAC1B,KAA2B,OAApBA,IAA6BvC,GAAauC,IAC7CA,EAAkBA,EAAgB/D,IAEtC,OAAO+D,CACX,CAMA,SAASuW,GAA0B9xvB,EAAQ1e,EAAUyB,EAAQgvwB,EAAeC,GAKxE,GAAqB,MAAjBD,EAAuB,CACvB,IAAI1W,GACA4W,IAAc,EAIdjZ,GAAa+Y,GACb1W,GAAa0W,EAERhZ,GAAQgZ,KACbE,IAAc,EAEdF,EAAgBA,EAAc3a,KAElC,MAAM8a,GAAQxX,GAAYqX,GACX,IAAX/xvB,GAA4D,OAAXjd,EAC/B,MAAdivwB,EACAG,GAAkB7wwB,EAAUyB,EAAQmvwB,IAGpCE,GAAmB9wwB,EAAUyB,EAAQmvwB,GAAOF,GAAc,MAAM,GAGpD,IAAXhyvB,GAA4D,OAAXjd,EACtDqvwB,GAAmB9wwB,EAAUyB,EAAQmvwB,GAAOF,GAAc,MAAM,GAEhD,IAAXhyvB,EACLqyvB,GAAiB/wwB,EAAU4wwB,GAAOD,IAElB,IAAXjyvB,GAEL1e,EAASiB,YAAY2vwB,IAEP,MAAd7W,IAiwBZ,SAASiX,GAAehxwB,EAAU0e,EAAQq7uB,EAAYkX,EAAgBP,GAElE,MAAM/4uB,GAASoiuB,EAAW1C,GAQtB1/tB,KAPWyhuB,GAAYW,IAYvByW,GAA0B9xvB,EAAQ1e,EAAUixwB,EAAgBt5uB,GAAQ+4uB,GAExE,QAAS92wB,GAAI49vB,GAAyB59vB,GAAImgwB,EAAWlgwB,OAAQD,KAAK,CAC9D,MAAM0/vB,GAAQS,EAAWngwB,IACzBs3wB,GAAU5X,GAAMvD,IAAQuD,GAAOt5vB,EAAU0e,EAAQuyvB,EAAgBt5uB,GAAM,CAE/E,CArxBYq5uB,CAAehxwB,EAAU0e,EAAQq7uB,GAAYt4vB,EAAQivwB,EAAU,CAG3E,CACA,SAASlvwB,GAAexB,EAAUsB,GAG9B,OAAOtB,EAASuB,WAAWD,EAC/B,CACA,SAAS6vwB,GAAenxwB,EAAU4wwB,EAAOtvwB,GAErCtB,EAASiD,SAAS2twB,EAAOtvwB,EAC7B,CACA,SAAS8vwB,GAAkBpxwB,EAAUsB,GAEjC,OAAOtB,EAASqB,cAnfpB,SAASgwwB,GAAkB/vwB,GACvB,OAAOA,EAAMtC,QAAQ+uwB,GAAqBj1vB,GAASA,EAAK9Z,QAAQgvwB,GAAmBC,IACvF,CAifkCoD,CAAkB/vwB,GACpD,CAQA,SAASgwwB,GAAkBtxwB,EAAUxH,EAAM2I,GAEvC,OAAOnB,EAAS5J,cAAcoC,EAAM2I,EACxC,CAuKA,SAASowwB,GAAgBC,EAAsBlY,GAI3C,MAAMmY,EAAaD,EAAqBja,IAClCma,EAAuBD,EAAWnrwB,QAAQgzvB,GAC1CqY,EAAsBrY,EAAMrD,IAKf,IAAfqD,EAAMtD,MACNsD,EAAMtD,MAAU,IAChB8D,GAA4B6X,GAAqB,IAErDF,EAAWlrwB,OAAOmrwB,EAAsB,EAC5C,CAWA,SAAS9ntB,GAAWmwsB,EAAY6X,GAC5B,GAAI7X,EAAWlgwB,QAAU29vB,GACrB,OACJ,MAAMqa,EAAmBra,GAA0Boa,EAC7CE,EAAe/X,EAAW8X,GAChC,GAAIC,EAAc,CACd,MAAMC,EAAwBD,EAAa/a,IACb,OAA1Bgb,GAAkCA,IAA0BhY,GAC5DwX,GAAgBQ,EAAuBD,GAEvCF,EAAc,IACd7X,EAAW8X,EAAmB,GAAG3b,IAAQ4b,EAAa5b,KAE1D,MAAM8b,GAAexJ,GAAgBzO,EAAYvC,GAA0Boa,IApMnF,SAASK,GAAwBnzkB,EAAOw6jB,GAEpC4X,GAAUpykB,EAAOw6jB,EADAA,EAAM7C,IACW,EAAoC,KAAM,MAC5E6C,EAAMxD,IAAQ,KACdwD,EAAMlD,IAAU,IACpB,CAgMQ6b,CAAwBH,EAAa/b,IAAQ+b,GAE7C,MAAMI,GAAWF,GAAa/a,IACb,OAAbib,IACAA,GAAStotB,WAAWootB,GAAajc,KAErC+b,EAAa7b,IAAU,KACvB6b,EAAa5b,IAAQ,KAErB4b,EAAa9b,MAAU,GAE3B,OAAO8b,CACX,CAQA,SAASK,GAAarzkB,EAAOw6jB,GACzB,KAAqB,IAAfA,EAAMtD,KAA0C,CAClD,MAAMh2vB,EAAWs5vB,EAAM7C,IACnBz2vB,EAASiB,aACTiwwB,GAAUpykB,EAAOw6jB,EAAOt5vB,EAAU,EAAqC,KAAM,MA9KzF,SAASoywB,GAAgBv+mB,GAErB,IAAIw+mB,EAAoBx+mB,EAAS8imB,IACjC,IAAK0b,EACD,OAAOC,GAAYz+mB,EAASkimB,IAAQlimB,GAExC,KAAOw+mB,GAAmB,CACtB,IAAInkwB,EAAO,KACX,GAAIupvB,GAAQ4a,GAERnkwB,EAAOmkwB,EAAkB1b,QAExB,CAGD,MAAM4b,EAAYF,EAAkB7a,IAChC+a,IACArkwB,EAAOqkwB,GAEf,IAAKrkwB,EAAM,CAGP,KAAOmkwB,IAAsBA,EAAkBnc,KAASmc,IAAsBx+mB,GACtE4jmB,GAAQ4a,IACRC,GAAYD,EAAkBtc,IAAQsc,GAE1CA,EAAoBA,EAAkBpc,IAEhB,OAAtBoc,IACAA,EAAoBx+mB,GACpB4jmB,GAAQ4a,IACRC,GAAYD,EAAkBtc,IAAQsc,GAE1CnkwB,EAAOmkwB,GAAqBA,EAAkBnc,GAAI,CAEtDmc,EAAoBnkwB,EAE5B,CA2IQkkwB,CAAgB9Y,EAAK,CAE7B,CASA,SAASgZ,GAAYxzkB,EAAOw6jB,GACxB,KAAqB,IAAfA,EAAMtD,KAA0C,CAGlDsD,EAAMtD,MAAU,GAMhBsD,EAAMtD,KAAU,IAmExB,SAASwc,GAAkB1zkB,EAAOw6jB,GAC9B,IAAImF,EACJ,GAAa,MAAT3/jB,GAAwD,OAAtC2/jB,EAAe3/jB,EAAM2/jB,cACvC,QAAS7kwB,EAAI,EAAGA,EAAI6kwB,EAAa5kwB,OAAQD,GAAK,EAAG,CAC7C,MAAM0Z,EAAUgmvB,EAAMmF,EAAa7kwB,IAEnC,KAAM0Z,aAAmBgsvB,IAAsB,CAC3C,MAAMmT,GAAShU,EAAa7kwB,EAAI,GAChC,GAAIsV,MAAM2C,QAAQ4gwB,IACd,QAASl+rB,GAAI,EAAGA,GAAIk+rB,GAAO54wB,OAAQ06E,IAAK,EAAG,CACvC,MAAMm+rB,GAAcp/vB,EAAQm/vB,GAAOl+rB,KAC7Bu9I,GAAO2gjB,GAAOl+rB,GAAI,GACxBykrB,GAAS,EAA0C0Z,GAAa5gjB,IAChE,IACIA,GAAKrkN,KAAKilwB,GAId,CAHA,QAEI1Z,GAAS,EAAwC0Z,GAAa5gjB,GAClE,MAGH,CACDkniB,GAAS,EAA0C1lvB,EAASm/vB,IAC5D,IACIA,GAAOhlwB,KAAK6F,EAIhB,CAHA,QAEI0lvB,GAAS,EAAwC1lvB,EAASm/vB,GAC9D,IAKpB,CAnGQD,CAAkB1zkB,EAAOw6jB,GAyBjC,SAASqZ,GAAgB7zkB,EAAOw6jB,GAC5B,MAAMsZ,EAAW9zkB,EAAM+zkB,QACjBC,EAAWxZ,EAAMjD,IAIvB,IAAI0c,GAAoB,EACxB,GAAiB,OAAbH,EACA,QAASh5wB,GAAI,EAAGA,GAAIg5wB,EAAS/4wB,OAAS,EAAGD,IAAK,EAC1C,GAA2B,iBAAhBg5wB,EAASh5wB,IAAiB,CAGjC,MAAMo5wB,GAAYJ,EAASh5wB,GAAI,GAE3Bo5wB,IAAa,EAEbF,EAASC,EAAoBC,MAI7BF,EAASC,GAAqBC,IAAWz1vB,cAE7C3jB,IAAK,MAEJ,CAED,MAAM0Z,GAAUw/vB,EAASC,EAAoBH,EAASh5wB,GAAI,IAC1Dg5wB,EAASh5wB,IAAG6T,KAAK6F,GAAO,CAIpC,GAAiB,OAAbw/vB,EAAmB,CACnB,QAASl5wB,GAAIm5wB,EAAoB,EAAGn5wB,GAAIk5wB,EAASj5wB,OAAQD,MAGrDq5wB,EAF0BH,EAASl5wB,OAIvC0/vB,EAAMjD,IAAW,KAEzB,CA/DQsc,CAAgB7zkB,EAAOw6jB,GAEG,IAAtBA,EAAMvD,IAAOh2vB,MAEbu5vB,EAAM7C,IAAUv1vB,UAEpB,MAAMswwB,EAAuBlY,EAAMvC,IAEnC,GAA6B,OAAzBya,GAAiC9Z,GAAa4B,EAAMrD,KAAU,CAE1Dub,IAAyBlY,EAAMrD,KAC/Bsb,GAAgBC,EAAsBlY,GAG1C,MAAM4Y,EAAW5Y,EAAMrC,IACN,OAAbib,GACAA,EAAStotB,WAAWk1I,EAAK,EAzvBzC,SAASo0kB,GAAgB5Z,GAErB4U,GAAerxwB,OAAOy8vB,EAAMnrb,GAChC,CA0vBQ+kc,CAAgB5Z,EAAK,CAE7B,CA6FA,SAAS6Z,GAAkBr0kB,EAAO84jB,EAAO0B,GACrC,OAAO8Z,GAAmBt0kB,EAAO84jB,EAAMn2vB,OAAQ63vB,EACnD,CAgBA,SAAS8Z,GAAmBt0kB,EAAO84jB,EAAO0B,GACtC,IAAIqD,EAAc/E,EAGlB,KAAuB,OAAhB+E,GACkB,GAApBA,EAAY58vB,MAEb48vB,GADA/E,EAAQ+E,GACYl7vB,OAIxB,GAAoB,OAAhBk7vB,EAGA,OAAOrD,EAAMxD,IAEZ,CAED,MAAQgC,mBAAoB6E,EAC5B,GAAI7E,GAAkB,EAAI,CAEtB,MAAQv3vB,kBAAkBu+L,EAAMh+L,KAAK67vB,EAAYsB,eAAiBnG,GAOlE,GAAIv3vB,KAAkBgyvB,GAAoB5sb,MACtCplU,KAAkBgyvB,GAAoBC,SACtC,OAAO,KAGf,OAAO+G,GAAiBoD,EAAarD,EAAK,CAElD,CAKA,SAASwX,GAAmB9wwB,EAAUyB,EAAQmuB,EAAO8gvB,EAAY10rB,GAE7Dh8E,EAAS6B,aAAaJ,EAAQmuB,EAAO8gvB,EAAY10rB,EACrD,CACA,SAAS60rB,GAAkB7wwB,EAAUyB,EAAQmuB,GAGzC5vB,EAASlC,YAAY2D,EAAQmuB,EACjC,CACA,SAASyjvB,GAA2BrzwB,EAAUyB,EAAQmuB,EAAO8gvB,EAAY10rB,GAClD,OAAf00rB,EACAI,GAAmB9wwB,EAAUyB,EAAQmuB,EAAO8gvB,EAAY10rB,GAGxD60rB,GAAkB7wwB,EAAUyB,EAAQmuB,EAE5C,CAYA,SAAS0jvB,GAAiBtzwB,EAAU/J,GAChC,OAAO+J,EAAS9J,WAAWD,EAC/B,CAiBA,SAASs9wB,GAAwB5W,EAAa3B,EAAc1B,GACxD,OAAOka,GAAiC7W,EAAa3B,EAAc1B,EACvE,CAYA,SAASma,GAAkC9W,EAAa3B,EAAc1B,GAClE,OAAwB,GAApBqD,EAAY58vB,KACLw5vB,GAAiBoD,EAAarD,GAElC,IACX,CAMA,IAMIoa,GAwWAC,GAgKA55wB,GA8CA65wB,GA5jBAJ,GAAmCC,GAOvC,SAASI,GAAgBC,EAAiCC,GACtDP,GAAmCM,EACnCJ,GAA2BK,CAC/B,CASA,SAASj2wB,GAAYghM,EAAOw6jB,EAAO0a,EAAYC,GAC3C,MAAMC,EAAcf,GAAkBr0kB,EAAOm1kB,EAAY3a,GACnDt5vB,GAAWs5vB,EAAM7C,IAEjBnpmB,GAAaimnB,GADCU,EAAWxywB,QAAU63vB,EAAMlD,IACS6d,EAAY3a,GACpE,GAAmB,MAAf4a,EACA,GAAIhlwB,MAAM2C,QAAQmiwB,GACd,QAASp6wB,GAAI,EAAGA,GAAIo6wB,EAAWn6wB,OAAQD,KACnCy5wB,GAA2BrzwB,GAAUk0wB,EAAaF,EAAWp6wB,IAAI0zJ,IAAY,QAIjF+lnB,GAA2BrzwB,GAAUk0wB,EAAaF,EAAY1mnB,IAAY,QAGrDjqJ,IAA7BqwwB,IACIA,GAAyB1zwB,GAAUi0wB,EAAY3a,EAAO0a,EAAYE,EAC1E,CAMA,SAASC,GAAmB7a,EAAO1B,GAC/B,GAAc,OAAVA,EAAgB,CAGhB,MAAMwc,EAAYxc,EAAM73vB,KACxB,GAAgB,EAAZq0wB,EACA,OAAO7a,GAAiB3B,EAAO0B,GAE9B,GAAgB,EAAZ8a,EACL,OAAOC,IAAqB,EAAI/a,EAAM1B,EAAMnxvB,QAE3C,GAAgB,EAAZ2twB,EAAgD,CACrD,MAAME,EAAsB1c,EAAMhouB,MAClC,GAA4B,OAAxB0kvB,EACA,OAAOH,GAAmB7a,EAAOgb,GAEhC,CACD,MAAMC,EAAoBjb,EAAM1B,EAAMnxvB,OACtC,OAAIixvB,GAAa6c,GACNF,IAAqB,EAAIE,GAGzBnb,GAAYmb,EAAiB,EAI3C,GAAgB,GAAZH,EAIL,OAHgBtE,GAAoBlY,EAAO0B,EAA3BwW,IAGA1W,GAAYE,EAAM1B,EAAMnxvB,QAEvC,CACD,MAAM+twB,EAAkBC,GAAmBnb,EAAO1B,GAClD,OAAwB,OAApB4c,EACItlwB,MAAM2C,QAAQ2iwB,GACPA,EAAgB,GAIpBL,GAFYnE,GAAe1W,EAAMxC,KAEF0d,GAG/BL,GAAmB7a,EAAO1B,EAAM1pvB,KAAI,EAIvD,OAAO,IACX,CACA,SAASumwB,GAAmBnb,EAAO1B,GAC/B,OAAc,OAAVA,EACsB0B,EAAMxC,IACQV,IAGfse,WAFL9c,EAAM8c,YAInB,IACX,CACA,SAASL,GAAqBM,EAAsB5a,GAChD,MAAM6a,EAAgBpd,GAA0Bmd,EAAuB,EACvE,GAAIC,EAAgB7a,EAAWlgwB,OAAQ,CACnC,MAAMy/vB,EAAQS,EAAW6a,GACnBC,EAAmBvb,EAAMvD,IAAOz9tB,WACtC,GAAyB,OAArBu8uB,EACA,OAAOV,GAAmB7a,EAAOub,EAAgB,CAGzD,OAAO9a,EAAW1C,EACtB,CAUA,SAAS0Z,GAAiB/wwB,EAAU4wwB,EAAOngsB,GAEvC,MAAMqksB,EAAexB,GAAiBtzwB,EAAU4wwB,GAC5CkE,GAlLR,SAASC,GAAkB/0wB,EAAUyB,EAAQmuB,EAAO6gD,GAChDzwE,EAAS7J,YAAYsL,EAAQmuB,EAAO6gD,EACxC,CAiLQsksB,CAAkB/0wB,EAAU80wB,EAAclE,EAAOngsB,EAEzD,CAKA,SAASuksB,GAAWh1wB,EAAU0e,EAAQk5uB,EAAO0B,EAAO2X,EAAgBP,GAAYuE,IAC5E,KAAgB,MAATrd,GAAe,CAIlB,MAAMsd,GAAe5b,EAAM1B,EAAMnxvB,OAC3B2twB,GAAYxc,EAAM73vB,KAOxB,GANIk1wB,IACe,IAAXv2vB,IACAw2vB,IAAgB9F,GAAgBhW,GAAY8b,IAAe5b,GAC3D1B,EAAMh1vB,OAAS,GAGgC,KAApC,GAAdg1vB,EAAMh1vB,OACP,GAAgB,EAAZwxwB,GACAY,GAAWh1wB,EAAU0e,EAAQk5uB,EAAMhouB,MAAO0puB,EAAO2X,EAAgBP,IAAY,GAC7EF,GAA0B9xvB,EAAQ1e,EAAUixwB,EAAgBiE,GAAcxE,SAAU,GAEnE,GAAZ0D,GAAoC,CACzC,MAAMe,GAAYrF,GAAoBlY,EAAO0B,GAC7C,IAAIsX,GACJ,KAAOA,GAAQuE,MACX3E,GAA0B9xvB,EAAQ1e,EAAUixwB,EAAgBL,GAAOF,IAEvEF,GAA0B9xvB,EAAQ1e,EAAUixwB,EAAgBiE,GAAcxE,GAAU,MAEnE,GAAZ0D,GACLgB,GAAyBp1wB,EAAU0e,EAAQ46uB,EAAO1B,EAAOqZ,EAAgBP,IAIzEF,GAA0B9xvB,EAAQ1e,EAAUixwB,EAAgBiE,GAAcxE,IAGlF9Y,EAAQqd,GAAerd,EAAMyd,eAAiBzd,EAAM1pvB,KAE5D,CACA,SAASgjwB,GAAUpykB,EAAOw6jB,EAAOt5vB,EAAU0e,EAAQuyvB,EAAgBP,IAC/DsE,GAAWh1wB,EAAU0e,EAAQogL,EAAMxmK,WAAYghuB,EAAO2X,EAAgBP,IAAY,EACtF,CAgCA,SAAS0E,GAAyBp1wB,EAAU0e,EAAQ46uB,EAAOgc,EAAiBrE,EAAgBP,IACxF,MAAM6E,GAAiBjc,EAAMxC,IAIvB0e,GAHgBD,GAAenf,IAGOse,WAAWY,EAAgBZ,YACvE,GAAIxlwB,MAAM2C,QAAQ2jwB,IAMd,QAAS57wB,GAAI,EAAGA,GAAI47wB,GAAsB37wB,OAAQD,KAE9C42wB,GAA0B9xvB,EAAQ1e,EAAUixwB,EAD9BuE,GAAsB57wB,IAC+B82wB,SAMvEsE,GAAWh1wB,EAAU0e,EAFD82vB,GACYD,GAAetf,IACsBgb,EAAgBP,IAAY,EAEzG,CAuGA,SAAS+E,GAAiBz1wB,EAAU3E,EAAS6zQ,GAExB,KAAbA,EAEAlvQ,EAASsC,gBAAgBjH,EAAS,SAGlC2E,EAASjI,aAAasD,EAAS,QAAS6zQ,EAGhD,CAEA,SAASwmgB,GAAsB11wB,EAAU3E,EAASu8vB,GAC9C,MAAQ+d,cAAal4kB,UAAS/jM,WAAWk+vB,EACrB,OAAhB+d,GACA/V,GAAgB5/vB,EAAU3E,EAASs6wB,GAEvB,OAAZl4kB,GACAg4kB,GAAiBz1wB,EAAU3E,EAASoiM,GAEzB,OAAX/jM,IAnCR,SAASk8wB,GAAiB51wB,EAAU3E,EAAS6zQ,GAEzClvQ,EAASjI,aAAasD,EAAS,QAAS6zQ,EAE5C,CAgCQ0mgB,CAAiB51wB,EAAU3E,EAAS3B,GAE5C,CAoBA,SAASm8wB,KACL,QAAiBxywB,IAAbswwB,KACAA,GAAW,KACP3iB,GAAQ8kB,cACR,IACInC,GAAW3iB,GAAQ8kB,aAAaC,aAAa,UAAW,CACpDC,WAAaj3wB,GAAMA,EACnBk3wB,aAAel3wB,GAAMA,EACrBm3wB,gBAAkBn3wB,GAAMA,GAO5B,CALJ,MAKI,CAIZ,OAAO40wB,EACX,CAUA,SAASwC,GAAsBr5f,GAC3B,OAAO+4f,MAAeG,WAAWl5f,IAASA,CAC9C,CAiFA,SAASs5f,GAA0Bl9tB,EAAW7iD,EAAS4iD,GACnD,MAAMqgtB,EAAQmB,KACR7C,EAAQ+F,KACRtiwB,GAAUk+vB,GAAiB3B,EAAO0B,GAGxC,GAAmB,IAAf1B,EAAM73vB,MAAgE,WAA1B1J,EAAQ2P,cAA4B,CAChF,MAAMqwwB,GAASh7wB,GAcf,MAXAg7wB,GAAO1vkB,IAAM,GACb0vkB,GAAOC,OAASH,GAAsB,IAEtCpF,GAAiBzX,EAAM7C,IAAW4f,IAQ5B,IAAI/mB,IAAa,KAPFtjuB,EAO+D,CAExF,OAAOktB,CACX,CA0BA,SAAS0joB,GAAYnmrB,GACjBsD,GAAWtD,CACf,CAOA,SAAS8/wB,KACL,YAAiBlzwB,IAAbtJ,GACOA,UAEKtD,SAAa,IAClBA,cADN,CAST,CAqBA,SAAS+/wB,KACL,QAAenzwB,IAAXuwwB,KACAA,GAAS,KACL5iB,GAAQ8kB,cACR,IACIlC,GAAS5iB,GAAQ8kB,aACZC,aAAa,wBAAyB,CACvCC,WAAaj3wB,GAAMA,EACnBk3wB,aAAel3wB,GAAMA,EACrBm3wB,gBAAkBn3wB,GAAMA,GAO5B,CALJ,MAKI,CAIZ,OAAO60wB,EACX,CASA,SAAS6C,GAA4B35f,GACjC,OAAO05f,MAAaR,WAAWl5f,IAASA,CAC5C,CASA,SAAS45f,GAA8Bh+F,GACnC,OAAO89F,MAAaP,aAAav9F,IAAWA,CAChD,CASA,SAASi+F,GAAiC9+wB,GACtC,OAAO2+wB,MAAaN,gBAAgBr+wB,IAAQA,CAChD,CAEA,MAAM++wB,GACF3hxB,YAAY4hxB,GACRzhxB,KAAKyhxB,sCAAwCA,CACjD,CACAnrwB,WACI,MAAQ,0CAAyCtW,KAAKyhxB,8CACzCxnB,IACjB,EAEJ,MAAMynB,WAAqBF,GACvBG,cACI,MAAO,MACX,EAEJ,MAAMC,WAAsBJ,GACxBG,cACI,MAAO,OACX,EAEJ,MAAME,WAAuBL,GACzBG,cACI,MAAO,QACX,EAEJ,MAAMG,WAAoBN,GACtBG,cACI,MAAO,KACX,EAEJ,MAAMI,WAA4BP,GAC9BG,cACI,MAAO,aACX,EAEJ,SAASK,GAAgB91wB,GACrB,OAAOA,aAAiBs1wB,GAAgBt1wB,EAAMu1wB,sCAC1Cv1wB,CACR,CACA,SAAS+1wB,GAAgC/1wB,EAAOvB,GAC5C,MAAMu3wB,EAAaC,GAA0Bj2wB,GAC7C,GAAkB,MAAdg2wB,GAAsBA,IAAev3wB,EAAM,CAE3C,GAAmB,gBAAfu3wB,GAAsE,QAATv3wB,EAC7D,OAAO,EACX,MAAM,IAAIlE,MAAO,mBAAkBkE,YAAeu3wB,UAAmBjoB,KAAmB,CAE5F,OAAOioB,IAAev3wB,CAC1B,CACA,SAASw3wB,GAA0Bj2wB,GAC/B,OAAOA,aAAiBs1wB,IAAiBt1wB,EAAMy1wB,eAAiB,IACpE,CAUA,SAASS,GAA4BC,GACjC,OAAO,IAAIX,GAAaW,EAC5B,CAUA,SAASC,GAA6BC,GAClC,OAAO,IAAIX,GAAcW,EAC7B,CAUA,SAASC,GAA8BC,GACnC,OAAO,IAAIZ,GAAeY,EAC9B,CAUA,SAASC,GAA2BC,GAChC,OAAO,IAAIb,GAAYa,EAC3B,CAUA,SAASC,GAAmCC,GACxC,OAAO,IAAId,GAAoBc,EACnC,CASA,SAASC,GAAmBC,GACxB,MAAMC,EAAsB,IAAIC,GAAoBF,GACpD,OAwDJ,SAASG,KACL,IACI,SAAS,IAAIlhxB,OAAOo/rB,WAAYC,gBAAgB0/E,GAAsB,IAAK,YAI/E,CAHA,MAEI,OAAO,CACX,CACJ,CA/DWmC,GAAyB,IAAIC,GAAgBH,GAAuBA,CAC/E,CAKA,MAAMG,GACFtjxB,YAAYmjxB,GACRhjxB,KAAKgjxB,oBAAsBA,CAC/B,CACAI,oBAAoB17f,GAKhBA,EAAO,0BAA4BA,EACnC,IACI,MAAMzlR,GAAO,IAAID,OAAOo/rB,WACnBC,gBAAgB0/E,GAAsBr5f,GAAO,aAC7CzlR,KACL,OAAa,OAATA,EAIOjC,KAAKgjxB,oBAAoBI,oBAAoB17f,IAExDzlR,EAAKlB,YAAYkB,EAAKihC,YACfjhC,EAIX,CAHA,MAEI,OAAO,IACX,CACJ,EAMJ,MAAMghxB,GACFpjxB,YAAYkjxB,GACR/ixB,KAAK+ixB,WAAaA,EAClB/ixB,KAAKqjxB,cAAgBrjxB,KAAK+ixB,WAAWzhxB,eAAeC,mBAAmB,qBAC3E,CACA6hxB,oBAAoB17f,GAChB,MAAM47f,EAAatjxB,KAAKqjxB,cAAcrixB,cAAc,YACpDsixB,SAAW5ya,UAAYqwa,GAAsBr5f,GACtC47f,CACX,EA6CJ,MAAMC,GAAmB,4DACzB,SAASC,GAAa/gxB,GAElB,OADAA,EAAM4T,OAAO5T,IACLy4B,MAAMqovB,IACH9gxB,EAIJ,UAAYA,CACvB,CAEA,SAASghxB,GAAOlpkB,GACZ,MAAM79L,EAAM,CAAC,EACb,UAAWjB,KAAK8+L,EAAK1pM,MAAM,KACvB6L,EAAIjB,IAAK,EACb,OAAOiB,CACX,CACA,SAASi+B,MAAS83G,GACd,MAAM/1I,EAAM,CAAC,EACb,UAAW/S,KAAK8oJ,EACZ,UAAWl3I,KAAK5R,EACRA,EAAEkrB,eAAetZ,KACjBmB,EAAInB,IAAK,GAGrB,OAAOmB,CACX,CAMA,MAAMgnwB,GAAgBD,GAAO,0BAGvBE,GAAkCF,GAAO,kDACzCG,GAAmCH,GAAO,SAU1CI,GAAiBlpuB,GAAM+ouB,GAPN/ouB,GAAMgpuB,GAAiCF,GAAO,oMAI7C9ouB,GAAMipuB,GAAkCH,GAAO,+LANrC9ouB,GAAMipuB,GAAkCD,KAWpEG,GAAYL,GAAO,gEAoBnBM,GAAcppuB,GAAMmpuB,GAnBPL,GAAO,wdAMPA,GAAO,6qBAmBpBO,GAA8CP,GAAO,yBAK3D,MAAMQ,GACFpkxB,cAGIG,KAAKkkxB,oBAAqB,EAC1BlkxB,KAAKwrO,IAAM,EACf,CACA24iB,iBAAiB7jxB,GAIb,IAAI+3B,EAAU/3B,EAAG4iC,WACbkhvB,GAAkB,EACtB,KAAO/rvB,GAWH,GAVIA,EAAQ52B,WAAaC,KAAKC,aAC1ByixB,EAAkBpkxB,KAAKqkxB,aAAahsvB,GAE/BA,EAAQ52B,WAAaC,KAAK4ixB,UAC/BtkxB,KAAKwvN,MAAMn3L,EAAQvqB,WAInB9N,KAAKkkxB,oBAAqB,EAE1BE,GAAmB/rvB,EAAQ6K,WAC3B7K,EAAUA,EAAQ6K,gBAGtB,KAAO7K,GAAS,CAERA,EAAQ52B,WAAaC,KAAKC,cAC1B3B,KAAKukxB,WAAWlsvB,GAEpB,IAAIvf,EAAO9Y,KAAKwkxB,sBAAsBnsvB,EAASA,EAAQtrB,aACvD,GAAI+L,EAAM,CACNuf,EAAUvf,EACV,MAEJuf,EAAUr4B,KAAKwkxB,sBAAsBnsvB,EAASA,EAAQv3B,WAAU,CAGxE,OAAOd,KAAKwrO,IAAI1uN,KAAK,GACzB,CASAunwB,aAAap+wB,GACT,MAAMhF,EAAUgF,EAAQ4yJ,SAASjoJ,cACjC,IAAKizwB,GAAehvvB,eAAe5zB,GAC/B,YAAKijxB,oBAAqB,GAClBF,GAA4CnvvB,eAAe5zB,GAEvEjB,KAAKwrO,IAAI5iO,KAAK,KACd5I,KAAKwrO,IAAI5iO,KAAK3H,GACd,MAAMwjxB,EAAUx+wB,EAAQy1J,WACxB,QAASl3J,EAAI,EAAGA,EAAIigxB,EAAQhgxB,OAAQD,IAAK,CACrC,MAAMkgxB,GAASD,EAAQv6uB,KAAK1lC,GACtBq/C,GAAW6guB,GAAOthxB,KAClBo1S,GAAQ30P,GAASjzC,cACvB,IAAKmzwB,GAAYlvvB,eAAe2jR,IAAQ,CACpCx4S,KAAKkkxB,oBAAqB,EAC1B,SAEJ,IAAIh4wB,GAAQw4wB,GAAOx4wB,MAEf43wB,GAAUtre,MACVtsS,GAAQs3wB,GAAat3wB,KACzBlM,KAAKwrO,IAAI5iO,KAAK,IAAKi7C,GAAU,KAAM8guB,GAAez4wB,IAAQ,IAAG,CAEjE,YAAKs/N,IAAI5iO,KAAK,MACP,CACX,CACA27wB,WAAWlsvB,GACP,MAAMp3B,EAAUo3B,EAAQwgI,SAASjoJ,cAC7BizwB,GAAehvvB,eAAe5zB,KAAayixB,GAAc7uvB,eAAe5zB,KACxEjB,KAAKwrO,IAAI5iO,KAAK,MACd5I,KAAKwrO,IAAI5iO,KAAK3H,GACdjB,KAAKwrO,IAAI5iO,KAAK,KAEtB,CACA4mN,MAAMA,GACFxvN,KAAKwrO,IAAI5iO,KAAK+7wB,GAAen1jB,GACjC,CACAg1jB,sBAAsB3jxB,EAAMyzvB,GACxB,GAAIA,IACCzzvB,EAAKgkrB,wBAAwByvE,GAC1B5yvB,KAAKkjxB,kCAAoCljxB,KAAKkjxB,+BAClD,MAAM,IAAIn+wB,MAAO,6DAA4D5F,EAAKira,aAEtF,OAAOwoV,CACX,EAGJ,MAAMuwB,GAAwB,kCAExBC,GAA0B,gBAOhC,SAASH,GAAez4wB,GACpB,OAAOA,EAAMtC,QAAQ,KAAM,SACtBA,QAAQi7wB,GAAuB,SAAU3pvB,GAG1C,MAAO,MAAyB,MAFrBA,EAAMqlH,WAAW,GAEN,QADVrlH,EAAMqlH,WAAW,GACmB,OAAU,OAAW,GACzE,GACK32I,QAAQk7wB,GAAyB,SAAU5pvB,GAC5C,MAAO,KAAOA,EAAMqlH,WAAW,GAAK,GACxC,GACK32I,QAAQ,KAAM,QACdA,QAAQ,KAAM,OACvB,CACA,IAAIm7wB,GAKJ,SAASC,GAAcjC,EAAYkC,GAC/B,IAAIC,EAAmB,KACvB,IACIH,GAAkBA,IAAmBjC,GAAmBC,GAExD,IAAIoC,EAAaF,EAAkB5uwB,OAAO4uwB,GAAmB,GAC7DC,EAAmBH,GAAgB3B,oBAAoB+B,GAGvD,IAAIC,EAAe,EACfC,GAAaF,EACjB,EAAG,CACC,GAAqB,IAAjBC,EACA,MAAM,IAAI3+wB,MAAM,yDAEpB2+wB,IACAD,EAAaE,GACbA,GAAaH,EAAiBx0a,UAC9Bw0a,EAAmBH,GAAgB3B,oBAAoB+B,EAAU,OAC5DA,IAAeE,IAMxB,OAAOtE,IALW,IAAIkD,IACKE,iBAAiBmB,GAAmBJ,IAAqBA,GAcxF,CATA,QAGI,GAAIA,EAAkB,CAClB,MAAM74wB,EAASi5wB,GAAmBJ,IAAqBA,EACvD,KAAO74wB,EAAO62B,YACV72B,EAAOtL,YAAYsL,EAAO62B,WAAU,CAGhD,CACJ,CACA,SAASoivB,GAAmBhlxB,GACxB,MAAO,YAAaA,GAIxB,SAASilxB,GAAkBjlxB,GACvB,OAAOA,EAAGmB,WAAaC,KAAKC,cAAgC,aAAhBrB,EAAGu4J,QACnD,CANgE0snB,CAAkBjlxB,GAC1EA,EAAGkM,QACH,IACR,CAcA,IAAIyJ,GAAe,OAAfA,OAAe,IAECA,GAAgBga,KAAU,GAAK,OAC/Cha,GAAgBA,GAAgBuvwB,KAAU,GAAK,OAC/CvvwB,GAAgBA,GAAgBwvwB,MAAW,GAAK,QAChDxvwB,GAAgBA,GAAgByvwB,OAAY,GAAK,SACjDzvwB,GAAgBA,GAAgBogS,IAAS,GAAK,MAC9CpgS,GAAgBA,GAAgB0vwB,aAAkB,GAAK,eAPvD1vwB,IAAe,GAyBnB,SAAS2vwB,GAAeT,GACpB,MAAMtvtB,EAAYgwtB,KAClB,OAAIhwtB,EACOwrtB,GAA4BxrtB,EAAU9/C,SAASE,GAAgBuvwB,KAAML,IAAe,IAE3FlD,GAAgCkD,EAAY,QACrC9D,GAA4BW,GAAgBmD,IAEhDH,GAAc7D,KAAe/mB,GAAgB+qB,GACxD,CAYA,SAASW,GAAgBC,GACrB,MAAMlwtB,EAAYgwtB,KAClB,OAAIhwtB,EACOA,EAAU9/C,SAASE,GAAgBwvwB,MAAOM,IAAgB,GAEjE9D,GAAgC8D,EAAa,SACtC/D,GAAgB+D,GAEpB3rB,GAAgB2rB,EAC3B,CAiBA,SAASC,GAAcC,GACnB,MAAMpwtB,EAAYgwtB,KAClB,OAAIhwtB,EACOA,EAAU9/C,SAASE,GAAgBogS,IAAK4ve,IAAc,GAE7DhE,GAAgCgE,EAAW,OACpCjE,GAAgBiE,GAEpBzC,GAAappB,GAAgB6rB,GACxC,CAYA,SAASC,GAAsBC,GAC3B,MAAMtwtB,EAAYgwtB,KAClB,GAAIhwtB,EACA,OAAO0rtB,GAAiC1rtB,EAAU9/C,SAASE,GAAgB0vwB,aAAcQ,IAAsB,IAEnH,GAAIlE,GAAgCkE,EAAmB,eACnD,OAAO5E,GAAiCS,GAAgBmE,IAE5D,MAAM,IAAIjsB,GAAa,KAAyDtjuB,EACpF,CAaA,SAASwvvB,GAAiBC,GACtB,MAAMxwtB,EAAYgwtB,KAClB,GAAIhwtB,EACA,OAAOyrtB,GAA8BzrtB,EAAU9/C,SAASE,GAAgByvwB,OAAQW,IAAiB,IAErG,GAAIpE,GAAgCoE,EAAc,UAC9C,OAAO/E,GAA8BU,GAAgBqE,IAEzD,MAAM,IAAInsB,GAAa,KAAmDtjuB,EAC9E,CAcA,SAAS0vvB,GAAoB5+f,GAUzB,OAAOq5f,GAAsBr5f,EAAK,GACtC,CAcA,SAAS6+f,GAA2B9jxB,GAUhC,OAv1BJ,SAAS+jxB,GAA2B/jxB,GAChC,OAAOg+wB,MAAeK,gBAAgBr+wB,IAAQA,CAClD,CAq1BW+jxB,CAA2B/jxB,EAAI,GAC1C,CAgCA,SAASmhD,GAA2BqiuB,EAAWv+mB,EAAKrxI,GAChD,OAzBJ,SAASowvB,GAAgB/+mB,EAAKrxI,GAC1B,MAAc,QAATA,IACQ,UAARqxI,GAA2B,UAARA,GAA2B,WAARA,GAA4B,UAARA,GAC/C,WAARA,IACM,SAATrxI,IAA4B,SAARqxI,GAA0B,SAARA,GAChCw+mB,GAEJF,EACX,CAiBWS,CAAgB/+mB,EAAKrxI,EAArBowvB,CAA2BR,EACtC,CAiBA,SAASJ,KACL,MAAM3hB,EAAQmB,KACd,OAAOnB,GAASA,EAAM5C,GAC1B,CAQA,MAAMv6sB,GAA0B,IAAIvjD,GAAe,2BAU7CkjxB,GAAW,IAAIljxB,GAAe,YAGpC,GAEMmjxB,GAAqB,IAAInjxB,GAAe,sBAE9C,MAAMojxB,GACF5ixB,IAAIiZ,EAAOutB,EAAgBsxtB,IACvB,GAAItxtB,IAAkBsxtB,GAAoB,CACtC,MAAMjjvB,EAAQ,IAAIpS,MAAO,sCAAqCgY,GAAUxB,OACxEpE,QAAMzV,KAAO,oBACPyV,EAEV,OAAO2xB,CACX,EAOJ,SAAS9jB,GAAyB3R,GAC9B,MAAO,CACHuR,gBAAYvR,EAEpB,CAyCA,SAAS8xwB,MAAuB3olB,GAC5B,MAAO,CACH53K,gBAAYwgwB,GAA4B,EAAM5olB,GAC9C6olB,oBAAe,EAEvB,CACA,SAASD,GAA4BE,KAA0B9olB,GAC3D,MAAM+olB,EAAe,GACfC,EAAQ,IAAIn/wB,IAClB,IAAIo/wB,EACJjU,UAAYh1kB,EAAShmL,KAQjB,MAAMkvwB,GAAiBlvwB,GACnBmvwB,GAAiBD,GAAgBH,EAAc,GAAIC,KACnDC,IAA+BA,EAA6B,IAC5DA,EAA2Bv+wB,KAAKw+wB,IAAc,QAInBn5wB,IAA/Bk5wB,GACAG,GAAkCH,EAA4BF,GAE3DA,CACX,CAKA,SAASK,GAAkCC,EAAoBN,GAC3D,QAASzixB,EAAI,EAAGA,EAAI+ixB,EAAmB9ixB,OAAQD,IAAK,CAChD,MAAkBuQ,aAAcwywB,EAAmB/ixB,GACnDgjxB,GAAoBzywB,EAAWu6I,KAE3B23nB,EAAar+wB,KAAK0mJ,GAAQ,EAC7B,CAET,CAUA,SAAS+3nB,GAAiBrwvB,EAAWiwvB,EAAct/f,EAASu/f,GAExD,KADAlwvB,EAAY8iuB,EAAkB9iuB,IAE1B,OAAO,EAGX,IAAIywvB,EAAU,KACVC,GAAS1sB,GAAehkuB,GAC5B,MAAM2wvB,IAAUD,IAAU7oB,GAAgB7nuB,GAC1C,GAAK0wvB,IAAWC,GAgBX,IAAIA,KAAWA,GAAOxlE,WACvB,OAAO,EAGPslE,EAAUzwvB,MApBU,CAMpB,MAAMliB,GAAWkiB,EAAUliB,SAE3B,GADA4ywB,GAAS1sB,GAAelmvB,KACpB4ywB,GAKA,OAAO,EAJPD,EAAU3ywB,EAIH,CAgBf,MAAM8ywB,GAAcV,EAAMztwB,IAAIguwB,GAC9B,GAAIE,GAAQ,CACR,GAAIC,GAEA,OAAO,EAGX,GADAV,EAAM5+wB,IAAIm/wB,GACNE,GAAO/goB,aAAc,CACrB,MAAMliJ,GAAsC,mBAAxBijxB,GAAO/goB,aAA8B+goB,GAAO/goB,eAAiB+goB,GAAO/goB,aACxF,UAAWS,MAAO3iJ,GACd2ixB,GAAiBhgoB,GAAK4/nB,EAAct/f,EAASu/f,EAAK,WAIrDQ,GA0DL,OAAO,EA1DM,CAEb,GAAsB,MAAlBA,GAAOxywB,UAAoB0ywB,GAAa,CAMxC,IAAIC,GADJX,EAAM5+wB,IAAIm/wB,GAEV,IACIvU,GAAYwU,GAAOxywB,QAAS4ywB,KACpBT,GAAiBS,GAAUb,EAAct/f,EAASu/f,KAClDW,KAA6BA,GAA2B,IAGxDA,GAAyBj/wB,KAAKk/wB,IAAQ,EAOlD,CAJA,QAIA,MAIiC75wB,IAA7B45wB,IACAP,GAAkCO,GAA0BZ,EAAY,CAGhF,IAAKW,GAAa,CAGd,MAAMxixB,GAAU09vB,GAAc2kB,IAAO,KAAY,IAAIA,GAIrDR,EAAar+wB,KAEb,CAAElF,QAAS+jxB,EAAS7jxB,WAAYwB,GAASV,KAAM0kvB,IAE/C,CAAE1lvB,QAASijxB,GAAoBx0wB,SAAUs1wB,EAAS5ixB,OAAO,GAEzD,CAAEnB,QAASqjD,GAAyB50C,SAAU,IAAMwD,GAAS8xwB,GAAU5ixB,OAAO,GAAO,CAIzF,MAAMkjxB,GAAeL,GAAO3ywB,UACR,MAAhBgzwB,IAAyBH,IAEzBJ,GAAoBO,GAAcz4nB,KAE9B23nB,EAAar+wB,KAAK0mJ,GAAQ,EAC7B,CAKE,CAEX,OAAQm4nB,IAAYzwvB,QACQ/oB,IAAxB+oB,EAAUjiB,SAClB,CAYA,SAASyywB,GAAoBzywB,EAAW8F,GACpC,QAASy0I,KAAYv6I,EACbilvB,GAAuB1qmB,KACvBA,EAAWA,EAAShpI,iBAEpBxM,MAAM2C,QAAQ6yI,GACdk4nB,GAAoBl4nB,EAAUz0I,GAG9BA,EAAGy0I,EAGf,CACA,MAAM04nB,GAAc1uB,GAAuB,CAAE51vB,QAAS2S,OAAQlE,SAAUmnvB,KACxE,SAAS2uB,GAAgB/7wB,GACrB,OAAiB,OAAVA,GAAkC,iBAATA,GAAqB87wB,MAAe97wB,CACxE,CAOA,SAASg8wB,GAAeh8wB,GACpB,MAAwB,mBAAVA,CAClB,CAUA,MAAMi8wB,GAAiB,IAAI3kxB,GAAe,uBAKpC4kxB,GAAU,CAAC,EAQXC,GAAW,CAAC,EAIlB,IAAIC,GACJ,SAASC,KACL,YAAwBt6wB,IAApBq6wB,KACAA,GAAkB,IAAI1B,IAEnB0B,EACX,CAKA,MAAM7/uB,IAEN,MAAM+/uB,WAAmB//uB,GAIjB+wC,gBACA,OAAOx5E,KAAKgvD,UAChB,CACAnvD,YAAYkV,EAAW1I,EAAQ6L,EAAQ41K,GACnChuL,QACAE,KAAKqM,OAASA,EACdrM,KAAKkY,OAASA,EACdlY,KAAK8tL,OAASA,EAMd9tL,KAAKw2L,QAAU,IAAI9wL,IAInB1F,KAAKyoxB,kBAAoB,IAAI1gxB,IAC7B/H,KAAK0oxB,gBAAkB,GACvB1oxB,KAAKgvD,YAAa,EAElB25tB,GAAsB5zwB,EAAWu6I,IAAYtvJ,KAAK4oxB,gBAAgBt5nB,KAElEtvJ,KAAKw2L,QAAQhwL,IAAIkgxB,GAAUmC,QAAW56wB,EAAWjO,OAE7C8tL,EAAOr0K,IAAI,gBACXzZ,KAAKw2L,QAAQhwL,IAAIiiC,GAAqBogvB,QAAW56wB,EAAWjO,OAIhE,MAAM87K,GAAS97K,KAAKw2L,QAAQxyL,IAAImkxB,IAClB,MAAVrsmB,IAA0C,iBAAjBA,GAAO5vK,OAChClM,KAAK8tL,OAAOxlL,IAAIwzK,GAAO5vK,OAE3BlM,KAAK8oxB,iBACD,IAAI/gxB,IAAI/H,KAAKgE,IAAI2ixB,GAAmB9hxB,MAAOukvB,GAAahysB,GAAYkktB,MAC5E,CAOAxvvB,UACI9L,KAAK+oxB,qBAEL/oxB,KAAKgvD,YAAa,EAClB,IAEI,UAAWg8E,KAAWhrI,KAAKyoxB,kBACvBz9oB,EAAQtjI,cAEZ,UAAWg1N,KAAQ18N,KAAK0oxB,gBACpBhsjB,GASR,CAPA,QAGI18N,KAAKw2L,QAAQ7uL,QACb3H,KAAKyoxB,kBAAkB9gxB,QACvB3H,KAAK8oxB,iBAAiBnhxB,QACtB3H,KAAK0oxB,gBAAgBjkxB,OAAS,CAClC,CACJ,CACA6G,UAAU0C,GACNhO,KAAK0oxB,gBAAgB9/wB,KAAKoF,EAC9B,CACAmU,aAAatH,GACT7a,KAAK+oxB,qBACL,MAAMC,EAAmB1sB,GAAmBt8vB,MACtCktwB,EAA+B1R,QAAwBvtvB,GAC7D,IACI,OAAO4M,GAKX,CAJA,QAEIyhvB,GAAmB0sB,GACnBxtB,GAAwB0R,EAC5B,CACJ,CACAlpwB,IAAIiZ,EAAOutB,EAAgBsxtB,GAAoBtuvB,EAAQ4pC,GAAYgzd,SAC/DpqgB,KAAK+oxB,qBACLv7wB,EAAQmvvB,GAAkBnvvB,GAE1B,MAAMw7wB,EAAmB1sB,GAAmBt8vB,MACtCktwB,GAA+B1R,QAAwBvtvB,GAC7D,IAEI,KAAMT,EAAQ4pC,GAAY0Q,UAAW,CAEjC,IAAIg0H,GAAS97K,KAAKw2L,QAAQxyL,IAAIiZ,GAC9B,QAAehP,IAAX6tK,GAAsB,CAGtB,MAAMj3G,GAuP1B,SAASoktB,GAAsB/8wB,GAC3B,MAAyB,mBAAVA,GACO,iBAAVA,GAAsBA,aAAiB1I,EACvD,CA1PgCylxB,CAAsBhswB,IAAU09uB,EAAiB19uB,GAIzD6+J,GAHAj3G,IAAO7kE,KAAKkpxB,qBAAqBrktB,IAGxBgktB,GAAWM,GAAkClswB,GAAQmrwB,IAGrD,KAEbpoxB,KAAKw2L,QAAQhwL,IAAIyW,EAAO6+J,GAAM,CAGlC,GAAc,MAAVA,GACA,OAAO97K,KAAKopxB,QAAQnswB,EAAO6+J,GAAM,CAQzCtxI,OAHuBh9B,EAAQ4pC,GAAYkktB,KAAsBitB,KAAdvoxB,KAAKqM,QAMpCrI,IAAIiZ,EAHxButB,EAAiBh9B,EAAQ4pC,GAAYyQ,UAAard,IAAkBsxtB,GAChE,KACAtxtB,EAwBR,CAtBA,MACOriC,IACH,GAAe,sBAAXA,GAAE/E,KAA8B,CAGhC,IAFa+E,GAAE6zvB,IAAsB7zvB,GAAE6zvB,KAAuB,IACzD14tB,QAAQ7kB,GAAUxB,IACnB+rwB,EAEA,MAAM7gxB,GAIN,OA5+NpB,SAASkhxB,GAAmBlhxB,EAAG8U,EAAOqswB,EAAmBpxwB,GACrD,MAAMqxwB,EAAYphxB,EAAE6zvB,IACpB,MAAI/+uB,EAAMm/uB,KACNmtB,EAAUjmvB,QAAQrmB,EAAMm/uB,KAE5Bj0vB,EAAE2X,QAKN,SAAS0pwB,GAAY9lwB,EAAMy5B,EAAKmsuB,EAAmBpxwB,EAAS,MACxDwL,EAAOA,GAA2B,OAAnBA,EAAK5gB,OAAO,IAAe4gB,EAAK5gB,OAAO,IAAMq5vB,GAAcz4uB,EAAK3d,MAAM,GAAK2d,EAC1F,IAAIxF,EAAUO,GAAU0+B,GACxB,GAAIrjC,MAAM2C,QAAQ0gC,GACdj/B,EAAUi/B,EAAI51C,IAAIkX,IAAW3B,KAAK,aAAM,GAEpB,iBAARqgC,EAAkB,CAC9B,IAAIxsC,GAAQ,GACZ,QAASG,MAAOqsC,EACZ,GAAIA,EAAItoB,eAAe/jB,IAAM,CACzB,IAAI5E,GAAQixC,EAAIrsC,IAChBH,GAAM/H,KAAKkI,GAAM,KAAwB,iBAAV5E,GAAqBsS,KAAKC,UAAUvS,IAASuS,GAAUvS,KAAO,CAGrGgS,EAAW,IAAGvN,GAAMmM,KAAK,QAAI,CAEjC,MAAQ,GAAEwswB,IAAoBpxwB,EAAS,IAAMA,EAAS,IAAM,MAAMgG,OAAawF,EAAK9Z,QAAQsyvB,GAAU,SAC1G,CAtBgBstB,CAAY,KAAOrhxB,EAAE2X,QAASypwB,EAAWD,EAAmBpxwB,GACxE/P,EAAE8zvB,IAAiBstB,EACnBphxB,EAAE6zvB,IAAsB,KAClB7zvB,CACV,CAm+N2BkhxB,CAAmBlhxB,GAAG8U,EAAO,kBAAmBjd,KAAKkY,OAAM,CAItE,MAAM/P,EAEd,SAGIqzvB,GAAwB0R,IACxB5Q,GAAmB0sB,EACvB,CACJ,CAEAS,8BACI,MAAMT,EAAmB1sB,GAAmBt8vB,MACtCktwB,EAA+B1R,QAAwBvtvB,GAC7D,IACI,MAAMqtO,EAAet7O,KAAKgE,IAAI+iD,GAAwBliD,MAAOukvB,GAAahysB,GAAYkktB,MAOtF,UAAWouB,KAAepuiB,EACtBouiB,GAMR,CAJA,QAEIptB,GAAmB0sB,GACnBxtB,GAAwB0R,EAC5B,CACJ,CACA52vB,WACI,MAAM23C,EAAS,GACTuoI,EAAUx2L,KAAKw2L,QACrB,UAAWv5K,KAASu5K,EAAQnvL,OACxB4mD,EAAOrlD,KAAK6V,GAAUxB,IAE1B,MAAQ,cAAagxC,EAAOnxC,KAAK,QACrC,CACAiswB,qBACI,GAAI/oxB,KAAKgvD,WACL,MAAM,IAAIkrsB,GAAa,KAAuDtjuB,EAEtF,CAIAgyvB,gBAAgBt5nB,GAIZ,IAAIryI,EAAQirwB,GADZ54nB,EAAWwqmB,EAAkBxqmB,IACUA,EAAWwqmB,EAAkBxqmB,GAAYA,EAAS5rJ,SAEzF,MAAMo4K,EA4Fd,SAAS6tmB,GAAiBr6nB,GACtB,OAAI24nB,GAAgB34nB,GACTu5nB,QAAW56wB,EAAWqhJ,EAASn9I,UAI/B02wB,GADSe,GAAkBt6nB,GACP84nB,GAEnC,CApGuBuB,CAAiBr6nB,GAChC,GAAK44nB,GAAe54nB,KAAgC,IAAnBA,EAASzqJ,MAmBrB7E,KAAKw2L,QAAQxyL,IAAIiZ,OAnBoB,CAGtD,IAAI4swB,EAAc7pxB,KAAKw2L,QAAQxyL,IAAIiZ,GAC/B4swB,IAOAA,EAAchB,QAAW56wB,EAAWm6wB,IAAS,GAC7CyB,EAAYzkxB,QAAU,IAAMy3vB,GAAWgtB,EAAYhlxB,OACnD7E,KAAKw2L,QAAQhwL,IAAIyW,EAAO4swB,IAE5B5swB,EAAQqyI,EACRu6nB,EAAYhlxB,MAAM+D,KAAK0mJ,EAAQ,CAQnCtvJ,KAAKw2L,QAAQhwL,IAAIyW,EAAO6+J,EAC5B,CACAstmB,QAAQnswB,EAAO6+J,GAIN,OAAIA,EAAO5vK,QAAUk8wB,KACtBtsmB,EAAO5vK,MAAQm8wB,GACfvsmB,EAAO5vK,MAAQ4vK,EAAO12K,WAEE,iBAAjB02K,EAAO5vK,OAAsB4vK,EAAO5vK,OAoHvD,SAAS49wB,GAAa59wB,GAClB,OAAiB,OAAVA,GAAmC,iBAAVA,GACC,mBAAtBA,EAAMxE,WACrB,CAvHgEoixB,CAAahumB,EAAO5vK,QACxElM,KAAKyoxB,kBAAkBngxB,IAAIwzK,EAAO5vK,OAE/B4vK,EAAO5vK,KAClB,CACAg9wB,qBAAqBrktB,GACjB,IAAKA,EAAIt7D,WACL,OAAO,EAEX,MAAMA,EAAauwvB,EAAkBj1rB,EAAIt7D,YACzC,MAA0B,iBAAfA,EACe,QAAfA,GAAyBvJ,KAAK8tL,OAAOr0K,IAAIlQ,GAGzCvJ,KAAK8oxB,iBAAiBrvwB,IAAIlQ,EAEzC,EAEJ,SAAS4/wB,GAAkClswB,GAEvC,MAAM0+uB,EAAgBhB,EAAiB19uB,GACjC7X,EAA4B,OAAlBu2vB,EAAyBA,EAAcv2vB,QAAU09vB,GAAc7lvB,GAC/E,GAAgB,OAAZ7X,EACA,OAAOA,EAIX,GAAI6X,aAAiBzZ,GACjB,MAAM,IAAI02vB,GAAa,KAAoDtjuB,GAG/E,GAAI3Z,aAAiBowJ,SACjB,OAKR,SAAS08mB,GAAgC9swB,GAErC,MAAM+swB,EAAc/swB,EAAMxY,OAC1B,GAAIulxB,EAAc,EAEd,MADa3W,GAAS2W,EAAa,KAC7B,IAAI9vB,GAAa,KAAoDtjuB,GAO/E,MAAMqzvB,EAh/OV,SAASC,GAA0Bv/wB,GAE/B,OADYA,IAASA,EAAKkwvB,KAAgBlwvB,EAAKmwvB,MAQpC,IAEf,CAq+OmCovB,CAA0BjtwB,GACzD,OAA+B,OAA3BgtwB,EACO,IAAMA,EAAuB7kxB,QAAQ6X,GAGrC,IAAM,IAAIA,CAEzB,CAxBe8swB,CAAgC9swB,GAG3C,MAAM,IAAIi9uB,GAAa,KAAoDtjuB,EAC/E,CAmCA,SAASgzvB,GAAkBt6nB,EAAUoonB,EAAc3iwB,GAC/C,IAAI3P,EAIJ,GAAI8ixB,GAAe54nB,GAAW,CAC1B,MAAM66nB,EAAoBrwB,EAAkBxqmB,GAC5C,OAAOwzmB,GAAcqnB,IAAsBhB,GAAkCgB,EAAiB,IAG1FlC,GAAgB34nB,GAChBlqJ,EAAU,IAAM00vB,EAAkBxqmB,EAASn9I,eAAQ,GA/V/D,SAASi4wB,GAAkBl+wB,GACvB,SAAUA,IAASA,EAAMtI,WAC7B,CA+ViBwmxB,CAAkB96nB,GACvBlqJ,EAAU,IAAMkqJ,EAAS1rJ,cAAci5vB,GAAWvtmB,EAAS5qJ,MAAQ,UAAG,GArWlF,SAAS2lxB,GAAmBn+wB,GACxB,SAAUA,IAASA,EAAMuI,YAC7B,CAqWiB41wB,CAAmB/6nB,GACxBlqJ,EAAU,IAAMuQ,GAASmkvB,EAAkBxqmB,EAAS76I,kBAEnD,CACD,MAAM61wB,EAAWxwB,EAAkBxqmB,IAC9BA,EAASz8I,UAAYy8I,EAAS5rJ,UAInC,IAiBZ,SAAS6mxB,GAAQr+wB,GACb,QAASA,EAAMxH,IACnB,CAnBgB6lxB,CAAQj7nB,GAIR,OAAOwzmB,GAAcwnB,IAAanB,GAAkCmB,GAHpEllxB,EAAU,IAAM,IAAKklxB,KAAaztB,GAAWvtmB,EAAS5qJ,MAGsB,CAIxF,OAAOU,CACX,CACA,SAASyjxB,GAAWzjxB,EAAS8G,EAAOrH,GAAQ,GACxC,MAAO,CACHO,QAASA,EACT8G,MAAOA,EACPrH,MAAOA,EAAQ,QAAKoJ,EAE5B,CAYA,SAAS06wB,GAAsB5zwB,EAAW8F,GACtC,UAAWy0I,KAAYv6I,EACf+E,MAAM2C,QAAQ6yI,GACdq5nB,GAAsBr5nB,EAAUz0I,GAE3By0I,GAAY0qmB,GAAuB1qmB,GACxCq5nB,GAAsBr5nB,EAAShpI,gBAAYzL,GAG3CA,EAAGy0I,EAGf,CASA,MAAMk7nB,IAcN,MAAMC,IAYN,MAAMC,GACFvgvB,wBAAwBh8B,GACpB,MAXR,SAASw8wB,GAAwBx8wB,GAC7B,MAAM0K,EAAQpS,MAAO,kCAAiCgY,GAAUtQ,oDAChE0K,SAAqB,YAAI1K,EAClB0K,CACX,CAOc8xwB,CAAwBx8wB,EAClC,EAEJ,IAeMy8wB,GAA0B,MAAhC,MAAMA,GAENA,SAA2BC,KAAwB,IAAIH,GAFjDE,CAA0B,KAShC,SAASE,KACL,OAAOC,GAAiBplB,KAAmBN,KAC/C,CAQA,SAAS0lB,GAAiBvoB,EAAO0B,GAC7B,OAAO,IAAI/lU,GAAWgmU,GAAiB3B,EAAO0B,GAClD,CAeA,IACM/lU,GAAU,MAAhB,MAAMA,EACFt+b,YAAYmjD,GACRhjD,KAAKgjD,cAAgBA,CACzB,EAMJm7Y,SAAW0/T,kBAAoBitB,GATzB3sV,CAAU,KAgBhB,SAAS6sV,GAAiB9+wB,GACtB,OAAOA,aAAiBiyb,GAAajyb,EAAM82C,cAAgB92C,CAC/D,CAOA,MAAMsI,IAEN,IAeMyivB,GAAS,MAAf,MAAMA,GAMNA,SAAU4G,kBAAoB,IAE9B,SAASotB,KAGL,MAAM/mB,EAAQmB,KAER6lB,EAAc7mB,GADNsB,KACqCt0vB,MAAO6yvB,GAC1D,OAAQ7B,GAAQ6oB,GAAeA,EAAchnB,GAAO7C,GACxD,CAToC4pB,GAN9Bh0B,CAAS,KAsBTk0B,GAAS,MAAf,MAAMA,GAGNA,SAAUjmxB,WAAQwuvB,GAAmB,CACjCz2uB,MAAOkuwB,EACP5hxB,WAAY,OACZnE,QAAS,IAAM,OANb+lxB,CAAS,KAcf,MAAM13B,GACF5zvB,YAAYw/L,GACRr/L,KAAKq/L,KAAOA,EACZr/L,KAAKorxB,MAAQ/rlB,EAAKxuL,MAAM,KAAK,GAC7B7Q,KAAKqrxB,MAAQhslB,EAAKxuL,MAAM,KAAK,GAC7B7Q,KAAK2gB,MAAQ0+K,EAAKxuL,MAAM,KAAK9K,MAAM,GAAG+W,KAAK,IAC/C,EAKJ,MAAM02uB,GAAU,IAAIC,GAAQ,UAmBtB63B,GAAwC,CAAC,EAEzCC,GAAuB,kBAO7B,SAASC,GAAiB3ywB,GACtB,OAAOA,EAAM0ywB,GACjB,CA2BA,MAAMj3wB,GACFzU,cAIIG,KAAKyrxB,SAAW3ruB,OACpB,CACAg6F,YAAYjhI,GACR,MAAM6ywB,EAAgB1rxB,KAAK2rxB,mBAAmB9ywB,GAC9C7Y,KAAKyrxB,SAAS5ywB,MAAM,QAASA,GACzB6ywB,GACA1rxB,KAAKyrxB,SAAS5ywB,MAAM,iBAAkB6ywB,EAE9C,CAEAC,mBAAmB9ywB,GACf,IAAI1Q,EAAI0Q,GAAS2ywB,GAAiB3ywB,GAClC,KAAO1Q,GAAKqjxB,GAAiBrjxB,IACzBA,EAAIqjxB,GAAiBrjxB,GAEzB,OAAOA,GAAK,IAChB,EA0BJ,SAASyjxB,GAAgB3lxB,GACrB,OAAOA,EAAQmxJ,cAAcE,WACjC,CAKA,SAASu0nB,GAAkB5lxB,GACvB,OAAOA,EAAQmxJ,aACnB,CAKA,SAAS00nB,GAAc7lxB,GACnB,OAAOA,EAAQmxJ,cAAcn1J,IACjC,CAmBA,SAAS8pxB,GAAc7/wB,GACnB,OAAIA,aAAiBmhK,SACVnhK,IAGAA,CAEf,CAkGA,SAAS8/wB,GAAanvsB,EAAWovsB,EAAeC,GAE5C,IAAI1gxB,EAAMqxE,EAAUp4E,OACpB,OAAa,CACT,MAAM0nxB,EAAatvsB,EAAU3rE,QAAQ+6wB,EAAeC,GACpD,IAAmB,IAAfC,EACA,OAAOA,EACX,GAAmB,IAAfA,GAAoBtvsB,EAAU0jE,WAAW4roB,EAAa,IAAM,GAAyB,CAErF,MAAM1nxB,GAASwnxB,EAAcxnxB,OAC7B,GAAI0nxB,EAAa1nxB,KAAW+G,GACxBqxE,EAAU0jE,WAAW4roB,EAAa1nxB,KAAW,GAE7C,OAAO0nxB,EAIfD,EAAgBC,EAAa,EAErC,CAEA,MAAMC,GAAuB,cAS7B,SAASC,GAAmBlytB,EAAOmytB,EAAiBC,GAOhD,IAAI/nxB,EAAI,EAGJgoxB,GAAyB,EAC7B,KAAOhoxB,EAAI21D,EAAM11D,QAAQ,CACrB,IAAIylC,GAAOiwB,EAAM31D,KACjB,GAAoB,iBAAT0lC,IAAqBsivB,EAAwB,CACpD,MAAMtgxB,GAAQiuD,EAAM31D,KACpB,GAAI+nxB,GAA6B,UAATrivB,KAG0C,IAA1D8hvB,GAAa9/wB,GAAM0E,cAAe07wB,EAAiB,GACnD,OAAO,UAID,IAATpivB,GAA0C,CAE/C,KAAO1lC,EAAI21D,EAAM11D,QAAwC,iBAAtBylC,GAAOiwB,EAAM31D,OAE5C,GAAI0lC,GAAKt5B,gBAAkB07wB,EACvB,OAAO,EAEf,OAAO,EAEc,iBAATpivB,KAGZsivB,GAAyB,IAGjC,OAAO,CACX,CAMA,SAASC,GAAiBjqB,GACtB,OAAsB,IAAfA,EAAM73vB,MAAwC63vB,EAAMt2vB,QAAUkgxB,EACzE,CAYA,SAASM,GAAmBlqB,EAAOmqB,EAAiBJ,GAEhD,OAAOI,KADiC,IAAfnqB,EAAM73vB,MAAyC4hxB,EAA0C/pB,EAAMt2vB,MAA7BkgxB,GAE/F,CAUA,SAASQ,GAAuBpqB,EAAO52uB,EAAU2gwB,GAE7C,IAAIj+wB,EAAO,EACX,MAAMu+wB,EAAYrqB,EAAMrosB,OAAS,GAE3B2ytB,GA0KV,SAASC,GAAuBF,GAC5B,QAASroxB,EAAI,EAAGA,EAAIqoxB,EAAUpoxB,OAAQD,IAElC,GAAIomwB,GADaiiB,EAAUroxB,IAEvB,OAAOA,EAGf,OAAOqoxB,EAAUpoxB,MACrB,CAlL8BsoxB,CAAuBF,GAGjD,IAAIG,IAAqB,EACzB,QAASxoxB,GAAI,EAAGA,GAAIonB,EAASnnB,OAAQD,KAAK,CACtC,MAAM6zB,GAAUzM,EAASpnB,IACzB,GAAuB,iBAAZ6zB,IAaX,IAAI20vB,GAEJ,GAAW,EAAP1+wB,GAEA,GADAA,EAAO,EAAyC,EAAPA,EACzB,KAAZ+pB,KAAmBq0vB,GAAmBlqB,EAAOnquB,GAASk0vB,IAC1C,KAAZl0vB,IAAsC,IAApBzM,EAASnnB,OAAc,CACzC,GAAIwoxB,GAAW3+wB,GACX,OAAO,EACX0+wB,IAAqB,OAGxB,CACD,MAAME,GAA2B,EAAP5+wB,EAAqC+pB,GAAUzM,IAAWpnB,IAGpF,GAAY,EAAP8J,GAAuD,OAAhBk0vB,EAAMrosB,MAAgB,CAC9D,IAAKkytB,GAAmB7pB,EAAMrosB,MAAO+ytB,GAAmBX,GAAmB,CACvE,GAAIU,GAAW3+wB,GACX,OAAO,EACX0+wB,IAAqB,EAEzB,SAEJ,MACMG,GAAkBC,GADC,EAAP9+wB,EAAsC,QAAU+pB,GACZw0vB,EAAWJ,GAAiBjqB,GAAQ+pB,GAC1F,IAAwB,IAApBY,GAAwB,CACxB,GAAIF,GAAW3+wB,GACX,OAAO,EACX0+wB,IAAqB,EACrB,SAEJ,GAA0B,KAAtBE,GAA0B,CAC1B,IAAIG,GAEAA,GADAF,GAAkBL,GACF,GAQAD,EAAUM,GAAkB,GAAGv8wB,cAEnD,MAAM08wB,GAAiC,EAAPh/wB,EAAqC++wB,GAAgB,KACrF,GAAIC,KACgE,IAAhEtB,GAAasB,GAAyBJ,GAAmB,IAClD,EAAP5+wB,GAA0C4+wB,KAAsBG,GAAe,CAC/E,GAAIJ,GAAW3+wB,GACX,OAAO,EACX0+wB,IAAqB,SA/DjC,CAEI,IAAKA,KAAuBC,GAAW3+wB,KAAU2+wB,GAAW50vB,IACxD,OAAO,EAIX,GAAI20vB,IAAsBC,GAAW50vB,IACjC,SACJ20vB,IAAqB,EACrB1+wB,EAAO+pB,GAAkB,EAAP/pB,CAClB,CAoD6B,CAKrC,OAAO2+wB,GAAW3+wB,IAAS0+wB,EAC/B,CACA,SAASC,GAAW3+wB,GAChB,OAA8C,IAA/B,EAAPA,EACZ,CA8BA,SAAS8+wB,GAAoBhqxB,EAAM+2D,EAAOsytB,EAAkBF,GACxD,GAAc,OAAVpytB,EACA,OAAO,EACX,IAAI31D,EAAI,EACR,GAAI+nxB,IAAqBE,EAAkB,CACvC,IAAIc,IAAe,EACnB,KAAO/oxB,EAAI21D,EAAM11D,QAAQ,CACrB,MAAM+oxB,GAAgBrztB,EAAM31D,GAC5B,GAAIgpxB,KAAkBpqxB,EAClB,OAAOoB,EAEN,GAAsB,IAAlBgpxB,IAAwE,IAAlBA,GAC3DD,IAAe,UAEQ,IAAlBC,IAAuE,IAAlBA,GAAkD,CAC5G,IAAIthxB,GAAQiuD,IAAQ31D,GAGpB,KAAwB,iBAAV0H,IACVA,GAAQiuD,IAAQ31D,GAEpB,SAEC,GAAsB,IAAlBgpxB,GAEL,MAEC,GAAsB,IAAlBA,GAAwD,CAE7DhpxB,GAAK,EACL,UAGJA,GAAK+oxB,GAAe,EAAI,EAG5B,OAAO,EAGP,OAgCR,SAASE,GAAuBtztB,EAAO/2D,GACnC,IAAIoB,EAAI21D,EAAMjpD,QAAQ,GACtB,GAAI1M,GAAI,EAEJ,IADAA,IACOA,EAAI21D,EAAM11D,QAAQ,CACrB,MAAM6lF,EAAOnwB,EAAM31D,GAGnB,GAAoB,iBAAT8lF,EACP,OAAO,EACX,GAAIA,IAASlnF,EACT,OAAOoB,EACXA,IAGR,OAAO,CACX,CAhDeipxB,CAAuBtztB,EAAO/2D,EAE7C,CACA,SAASsqxB,GAA2BlrB,EAAO52uB,EAAU2gwB,GAAmB,GACpE,QAAS/nxB,EAAI,EAAGA,EAAIonB,EAASnnB,OAAQD,IACjC,GAAIooxB,GAAuBpqB,EAAO52uB,EAASpnB,GAAI+nxB,GAC3C,OAAO,EAGf,OAAO,CACX,CA4CA,SAASoB,GAAyB/hwB,EAAUpP,GACxCoxwB,EAAkB,QAASppxB,EAAI,EAAGA,EAAIgY,EAAK/X,OAAQD,IAAK,CACpD,MAAMqpxB,EAAwBrxwB,EAAKhY,GACnC,GAAIonB,EAASnnB,SAAWopxB,EAAsBppxB,OAG9C,SAAS06E,EAAI,EAAGA,EAAIvzD,EAASnnB,OAAQ06E,IACjC,GAAIvzD,EAASuzD,KAAO0usB,EAAsB1usB,GACtC,SAASyusB,EAGjB,OAAO,GAEX,OAAO,CACX,CACA,SAASE,GAAuBC,EAAgBhvoB,GAC5C,OAAOgvoB,EAAiB,QAAUhvoB,EAAMxlI,OAAS,IAAMwlI,CAC3D,CACA,SAASivoB,GAAqBpiwB,GAC1B,IAAIta,EAASsa,EAAS,GAClBpnB,EAAI,EACJ8J,EAAO,EACP+wI,EAAe,GACf0uoB,IAAiB,EACrB,KAAOvpxB,EAAIonB,EAASnnB,QAAQ,CACxB,IAAIwpxB,GAAgBriwB,EAASpnB,GAC7B,GAA6B,iBAAlBypxB,GACP,GAAW,EAAP3/wB,EAAwC,CACxC,MAAMw1C,GAAYl4B,IAAWpnB,GAC7B66I,GACI,IAAM4uoB,IAAiBnquB,GAAUr/C,OAAS,EAAI,KAAOq/C,GAAY,IAAM,IAAM,SAErE,EAAPx1C,EACL+wI,GAAgB,IAAM4uoB,GAEV,EAAP3/wB,IACL+wI,GAAgB,IAAM4uoB,QAqBL,KAAjB5uoB,IAAwB4toB,GAAWgB,MACnC38wB,GAAUw8wB,GAAuBC,GAAgB1uoB,GACjDA,EAAe,IAEnB/wI,EAAO2/wB,GAGPF,GAAiBA,KAAmBd,GAAW3+wB,GAEnD9J,IAEJ,MAAqB,KAAjB66I,IACA/tI,GAAUw8wB,GAAuBC,GAAgB1uoB,IAE9C/tI,CACX,CAyDA,MAAM48wB,GAA2F,CAAC,EAyBlG,SAASC,GAAU7mxB,GAEf8mxB,GAAoB9oB,KAAYD,KAAYgD,KAAqB/gwB,GAAO,EAC5E,CACA,SAAS8mxB,GAAoB1klB,EAAOw6jB,EAAO7yvB,EAAOg9wB,GAI9C,IAAKA,EAED,GAD2F,IAA3C,EAAfnqB,EAAMtD,KACV,CACzB,MAAM8O,GAAqBhmkB,EAAMgmkB,mBACN,OAAvBA,IACApG,GAAkBpF,EAAOwL,GAAoBr+vB,EAAK,KAGrD,CACD,MAAMo+vB,GAAgB/lkB,EAAM+lkB,cACN,OAAlBA,IACAjG,GAAyBtF,EAAOuL,GAAe,EAA2Cp+vB,EAAK,CAQ3Gi3vB,GAAiBj3vB,EACrB,CAOA,MAAMi9wB,GAAmB,CACrB,6BAAsB56B,GACtB,2BAAoBzsT,EACpB,mBAAYtxb,GACZ,8BAAuB+mvB,GACvB5C,kBAAqBA,GA2CzB,MAAMy0B,GAAYj1B,GAAuB,CAAE51vB,QAAS2S,OAAQlE,SAAUmnvB,KACtE,SAASk1B,GAAmBz+wB,GACxB,YAAyB9B,IAAlB8B,EAAK8C,QAChB,CAIA,SAAS47wB,GAAqB1+wB,GAC1B,YAA2B9B,IAApB8B,EAAKnM,UAChB,CAsCA,MAAMgvwB,GAAa7/hB,GAAc,kBAAc9kO,OAAWA,OAAWA,EAAW,CAACtD,EAAMoF,IAnFvF,SAAS2+wB,GAAkB/jxB,EAAMoF,GAC7B,IAAIorvB,EAAkB,KAClBwzB,EAAe,KAEdhkxB,EAAKkqB,eAAegmuB,KACrBlvvB,OAAOo/C,eAAepgD,EAAMkwvB,GAAa,CACrC72vB,IAAK,KACuB,OAApBm3vB,IAEAA,EADiB2X,KACU4b,kBAAkBJ,GAAmB,SAAQ3jxB,EAAKvH,qBAwCjG,SAASwrxB,GAAsBjkxB,EAAMkkxB,GAEjC,MAAM9+wB,EAAO8+wB,GAAW,CAAEtlxB,WAAY,MAChCulxB,EAAe,CACjB1rxB,KAAMuH,EAAKvH,KACXuH,KAAMA,EACNokxB,kBAAmB,EACnBxlxB,WAAYwG,EAAKxG,YAErB,OAAKilxB,GAAmBz+wB,IAAS0+wB,GAAqB1+wB,UAAwB9B,IAAd8B,EAAKrL,OACjEoqxB,EAAapqxB,KAAOyxwB,GAAoBpmwB,EAAKrL,OAG7C8pxB,GAAmBz+wB,GACnB++wB,EAAaj8wB,SAAW9C,EAAK8C,SAvBrC,SAASm8wB,GAAmBj/wB,GACxB,OAAOw+wB,MAAax+wB,CACxB,CAuBai/wB,CAAmBj/wB,GACxB++wB,EAAa38wB,SAAWpC,EAAKoC,SAExBs8wB,GAAqB1+wB,GAC1B++wB,EAAalrxB,WAAamM,EAAKnM,WAvBvC,SAASqrxB,GAAsBl/wB,GAC3B,YAA4B9B,IAArB8B,EAAK0E,WAChB,CAuBaw6wB,CAAsBl/wB,KAC3B++wB,EAAar6wB,YAAc1E,EAAK0E,aAE7Bq6wB,CACX,CAlEkHF,CAAsBjkxB,EAAMoF,KAEvHorvB,KAKdxwvB,EAAKkqB,eAAe8ouB,KACrBhyvB,OAAOo/C,eAAepgD,EAAMgzvB,GAAgB,CACxC35vB,IAAK,KACD,GAAqB,OAAjB2qxB,EAAuB,CACvB,MAAMr4uB,EAAWw8tB,KACjB6b,EAAer4uB,EAAS44uB,eAAeZ,GAAmB,SAAQ3jxB,EAAKvH,oBAAgB,CACnFA,KAAMuH,EAAKvH,KACXuH,OACAokxB,kBAAmB,EACnBrqxB,KAAMwxwB,GAAoBvrwB,GAC1B5I,OAAQu0C,EAASm8tB,cAAcG,YAClC,CAEL,OAAO+b,GAGX1juB,cAAc,GAG1B,CAgDgGyjuB,CAAkB/jxB,EAAMoF,IAOxH,SAASo/wB,GAAe1H,EAASp7wB,EAAS,KAAM+ixB,EAAsB,KAAMhsxB,GACxE,MAAMW,EAAWsrxB,GAAuC5H,EAASp7wB,EAAQ+ixB,EAAqBhsxB,GAC9FW,SAAS0lxB,8BACF1lxB,CACX,CAMA,SAASsrxB,GAAuC5H,EAASp7wB,EAAS,KAAM+ixB,EAAsB,KAAMhsxB,EAAM0qL,EAAS,IAAI/lL,KACnH,MAAMgN,GAAY,CACdq6wB,GAAuBhmC,GACvBy9B,GAAoBY,IAExBrkxB,SAAOA,IAA4B,iBAAZqkxB,OAAuBx5wB,EAAYwQ,GAAUgpwB,IAC7D,IAAIe,GAAWzzwB,GAAW1I,GAAUk8wB,KAAmBnlxB,GAAQ,KAAM0qL,EAChF,CAEA,IAwBMlpL,GAAQ,MAAd,MAAMA,EACFzE,cAAcyb,EAASvP,GACnB,GAAIyN,MAAM2C,QAAQb,GACd,OAAOuzwB,GAAe,CAAE/rxB,KAAM,IAAMiJ,EAAQuP,EAAS,IAEpD,CACD,MAAMxY,EAAOwY,EAAQxY,MAAQ,GAC7B,OAAO+rxB,GAAe,CAAE/rxB,QAAQwY,EAAQvP,OAAQuP,EAAQ7G,UAAW3R,EAAI,CAE/E,EAEJwB,SAASk3vB,mBAAqBA,GAC9Bl3vB,EAASimxB,KAAwB,IAAIjE,GAErChixB,EAASM,WAAQwuvB,GAAmB,CAChCz2uB,MAAOrY,EACP2E,WAAY,MACZnE,QAAS,IAAMuQ,GAAS+wwB,MAM5B9hxB,EAASi5vB,mBAAoB,EAvBvBj5vB,CAAQ,KAoCd,SAAS0qxB,GAAuBjoxB,GAC5B,OAAIA,EAAK5C,OAAS,EAGP,KAff,SAAS8qxB,GAAqBloxB,GAC1B,MAAMqV,EAAM,GACZ,QAASlY,EAAI,EAAGA,EAAI6C,EAAK5C,SAAUD,EAAG,CAClC,GAAIkY,EAAIxL,QAAQ7J,EAAK7C,KAAM,EACvBkY,SAAI9T,KAAKvB,EAAK7C,IACPkY,EAEXA,EAAI9T,KAAKvB,EAAK7C,GAAE,CAEpB,OAAOkY,CACX,CAGyB6ywB,CAAqBloxB,EAAKtB,QAAQC,WACxBuB,IAAIwxB,GAAKta,GAAUsa,EAAE9b,QACxBH,KAAK,QAAU,IAEpC,EACX,CACA,SAAS0ywB,GAAezrxB,EAAU+M,EAAK2+wB,EAA2B/D,GAC9D,MAAMrkxB,EAAO,CAACyJ,GACRipI,GAAS01oB,EAA0BpoxB,GACnCwR,GAAS6ywB,EA/4BnB,SAASgE,GAAa5vwB,EAAS4rwB,GAC3B,MAAM78jB,EAAO,GAAE/uM,gBAAsB4rwB,aAAyBjlxB,MAAQilxB,EAAc5rwB,QAAU4rwB,IACxF7ywB,EAAQpS,MAAMooN,GACpBh2M,SAAM0ywB,IAAwBG,EACvB7ywB,CACX,CA04BmC62wB,CAAa31oB,GAAQ2xoB,GAAiBjlxB,MAAMszI,IAC3ElhI,UAAM82wB,OAASA,GACf92wB,GAAMxR,KAAOA,EACbwR,GAAM+2wB,UAAY,CAAC7rxB,GACnB8U,GAAM42wB,0BAA4BA,EAClC52wB,GAAM0ywB,IAAwBG,EACvB7ywB,EACX,CACA,SAAS82wB,GAAO5rxB,EAAU+M,GACtB9Q,KAAK4vxB,UAAUhnxB,KAAK7E,GACpB/D,KAAKqH,KAAKuB,KAAKkI,GAEf9Q,KAAK8f,QAAU9f,KAAKyvxB,0BAA0BzvxB,KAAKqH,KACvD,CAyHA,SAASwoxB,GAAkBza,EAAYvgwB,GACnC,MAAMi7wB,EAAY,GAClB,QAAStrxB,EAAI,EAAG0sB,EAAKrc,EAAOpQ,OAAQD,EAAI0sB,EAAI1sB,IAAK,CAC7C,MAAM0+G,GAAYruG,EAAOrQ,GAKrBsrxB,EAAUlnxB,KAJTs6G,IAAiC,GAApBA,GAAUz+G,OAITy+G,GAAU37G,IAAIkX,IAAW3B,KAAK,KAH9B,IAGkC,CAGzD,OAAOrW,MAAM,sCAAyCgY,GAAU22vB,GAAc,KAC1E0a,EAAUhzwB,KAAK,MAAQ,2GAEvB2B,GAAU22vB,GAAc,kCAChC,CAiCA,SAAS2a,GAA8CC,EAAWC,GAC9D,OAAOxpxB,MAAO,0DAAyDupxB,KAAaC,IACxF,CAoBA,MAAMC,GAIFrwxB,YAAYod,EAAO/R,GAGf,GAFAlL,KAAKid,MAAQA,EACbjd,KAAKkL,GAAKA,GACL+R,EACD,MAAM,IAAIi9uB,GAAa,KAAoDtjuB,GAE/E52B,KAAKmvF,YAAc1wE,GAAUze,KAAKid,MACtC,CAIA9c,WAAW8c,GACP,OAAOkzwB,GAAmBnsxB,IAAI81vB,EAAkB78uB,GACpD,CAIWmzwB,0BACP,OAAOD,GAAmBC,YAC9B,EAEJ,MAAMC,GACFxwxB,cACIG,KAAKswxB,SAAW,IAAI5qxB,GACxB,CACA1B,IAAIiZ,GACA,GAAIA,aAAiBizwB,GACjB,OAAOjzwB,EACX,GAAIjd,KAAKswxB,SAAS72wB,IAAIwD,GAClB,OAAOjd,KAAKswxB,SAAStsxB,IAAIiZ,GAE7B,MAAM05Y,EAAS,IAAIu5X,GAAcjzwB,EAAOizwB,GAAcE,cACtD,YAAKE,SAAS9pxB,IAAIyW,EAAO05Y,GAClBA,CACX,CACIy5X,mBACA,OAAOpwxB,KAAKswxB,SAASlrtB,IACzB,EAEJ,MAAM+qtB,GAAqB,IAAIE,GAM/B,MAAME,GACF1wxB,YAAYiR,EAAK6Q,EAAUi3c,GACvB54d,KAAK8Q,IAAMA,EACX9Q,KAAK2hB,SAAWA,EAChB3hB,KAAK44d,WAAaA,CACtB,CACAz4d,eAAe2Q,GACX,OAAO,IAAIy/wB,GAAqBz/wB,GAAK,EAAO,KAChD,EAEJ,MAAM0/wB,GAAc,GACpB,MAAMC,GACF5wxB,YAAYiR,EAAK4/wB,EAAmBC,GAChC3wxB,KAAK8Q,IAAMA,EACX9Q,KAAK0wxB,kBAAoBA,EACzB1wxB,KAAK2wxB,cAAgBA,EACrB3wxB,KAAK4wxB,gBAAkB5wxB,KAAK0wxB,kBAAkB,EAClD,EAMJ,MAAMG,GACFhxxB,YAIAuF,EAIAwhJ,GACI5mJ,KAAKoF,QAAUA,EACfpF,KAAK4mJ,aAAeA,CACxB,EAKJ,SAASkqoB,GAAyBxhoB,GAC9B,IAAIyhoB,EACAC,EACJ,GAAI1hoB,EAASz8I,SAAU,CACnB,MAAMA,EAAWinvB,EAAkBxqmB,EAASz8I,UAC5Ck+wB,EAAY9a,KAAa7wwB,QAAQyN,GACjCm+wB,EAAeC,GAAiBp+wB,EAAQ,MAEnCy8I,EAAS76I,aACds8wB,EAAaG,GAAkBA,EAC/BF,EAAe,CAACT,GAAqBY,QAAQjB,GAAclsxB,IAAIsrJ,EAAS76I,gBAEnE66I,EAAS1rJ,YACdmtxB,EAAYzhoB,EAAS1rJ,WACrBotxB,EA6ER,SAASI,GAAsBhc,EAAYxunB,GACvC,GAAKA,EAGA,CACD,MAAM/xI,EAAS+xI,EAAar/I,IAAIkU,GAAK,CAACA,IACtC,OAAOmrI,EAAar/I,IAAIkU,GAAK41wB,GAAcjc,EAAY35vB,EAAG5G,GAAO,CAJjE,OAAOo8wB,GAAiB7b,EAMhC,CArFuBgc,CAAsB9hoB,EAAS1rJ,WAAY0rJ,EAAS5qJ,QAGnEqsxB,EAAY,IAAMzhoB,EAASn9I,SAC3B6+wB,EAAeR,IAEnB,OAAO,IAAIK,GAA0BE,EAAWC,EACpD,CAOA,SAASM,GAA0BhioB,GAC/B,OAAO,IAAImhoB,GAA4BP,GAAclsxB,IAAIsrJ,EAAS5rJ,SAAU,CAACotxB,GAAyBxhoB,IAAYA,EAASzqJ,QAAS,EACxI,CAIA,SAAS0sxB,GAA2Bx8wB,GAEhC,MACMy8wB,EAOV,SAASC,GAAiC18wB,EAAW28wB,GACjD,QAASltxB,EAAI,EAAGA,EAAIuQ,EAAUtQ,OAAQD,IAAK,CACvC,MAAM8qJ,EAAWv6I,EAAUvQ,GACrBoW,EAAW82wB,EAAuB1txB,IAAIsrJ,EAASx+I,IAAI5F,IACzD,GAAI0P,EAAU,CACV,GAAI00I,EAASqhoB,gBAAkB/1wB,EAAS+1wB,cACpC,MAAMZ,GAA8Cn1wB,EAAU00I,GAElE,GAAIA,EAASqhoB,cACT,QAASxxsB,GAAI,EAAGA,GAAImwE,EAASohoB,kBAAkBjsxB,OAAQ06E,KACnDvkE,EAAS81wB,kBAAkB9nxB,KAAK0mJ,EAASohoB,kBAAkBvxsB,UAI/DuysB,EAAuBlrxB,IAAI8oJ,EAASx+I,IAAI5F,GAAIokJ,EAAQ,KAGvD,CACD,IAAIqioB,GAEAA,GADArioB,EAASqhoB,cACU,IAAIF,GAA4BnhoB,EAASx+I,IAAKw+I,EAASohoB,kBAAkB3qxB,QAASupJ,EAASqhoB,eAG3FrhoB,EAEvBoioB,EAAuBlrxB,IAAI8oJ,EAASx+I,IAAI5F,GAAIymxB,GAAgB,EAGpE,OAAOD,CACX,CApCgCD,CAFTG,GAAoB78wB,EAAW,IACtBxN,IAAI+pxB,IACuC,IAAI5rxB,KAC3E,OAAOoU,MAAMC,KAAKy3wB,EAAoB73wB,SAC1C,CAmCA,SAASi4wB,GAAoB78wB,EAAW2H,GACpC3H,SAAUpP,QAAQsrB,IACd,GAAIA,aAAa46R,GACbnvS,EAAI9T,KAAK,CAAElF,QAASutB,EAAGpe,SAAUoe,SAAG,GAE/BA,GAAiB,iBAALA,QAA+BhjB,IAAdgjB,EAAEvtB,QACpCgZ,EAAI9T,KAAKqoB,OAAC,KAELnX,MAAM2C,QAAQwU,GAInB,MAtRZ,SAAS4gwB,GAAqBvioB,GAC1B,OAAO7oJ,MAAO,4EAA2E6oJ,IAC7F,CAoRkBuioB,CAAqB5gwB,GAH3B2gwB,GAAoB3gwB,EAAGvU,EAGK,IAG7BA,CACX,CAUA,SAASu0wB,GAAiB7b,GACtB,MAAMvgwB,EAASohwB,KAAaz9uB,WAAW48uB,GACvC,IAAKvgwB,EACD,MAAO,GACX,GAAIA,EAAO+6B,KAAKnW,GAAU,MAALA,GACjB,MAAMo2vB,GAAkBza,EAAYvgwB,GAExC,OAAOA,EAAOtN,IAAIkyB,GAAK43vB,GAAcjc,EAAY37uB,EAAG5kB,GACxD,CACA,SAASw8wB,GAAcjc,EAAYnxsB,EAAUpvD,GACzC,IAAIoI,EAAQ,KACR0E,GAAW,EACf,IAAK7H,MAAM2C,QAAQwnD,GACf,OACW6ttB,GADP7ttB,aAAoBoiY,GACKpiY,EAAShnD,MAGTgnD,EAHgBtiD,EAAU,MAM3D,IAAIi3c,GAAa,KACjB,QAASp0d,GAAI,EAAGA,GAAIy/D,EAASx/D,SAAUD,GAAG,CACtC,MAAMutxB,GAAgB9ttB,EAASz/D,IAC3ButxB,cAAyBlme,GACzB5uS,EAAQ80wB,GAEHA,cAAyB1rV,GAC9Bppb,EAAQ80wB,GAAc90wB,MAEjB80wB,cAAyBlquB,GAC9BlmC,GAAW,EAENowwB,cAAyBz2B,IAAQy2B,cAAyBjquB,GAC/D8wa,GAAam5T,GAERA,cAAyBvuxB,KAC9ByZ,EAAQ80wB,IAIhB,GADA90wB,EAAQ68uB,EAAkB78uB,GACb,MAATA,EACA,OAAO60wB,GAAkB70wB,EAAO0E,EAAUi3c,IAG1C,MAAMi3T,GAAkBza,EAAYvgwB,EAE5C,CACA,SAASi9wB,GAAkB70wB,EAAO0E,EAAUi3c,GACxC,OAAO,IAAI23T,GAAqBL,GAAclsxB,IAAIiZ,GAAQ0E,EAAUi3c,EACxE,CAGA,MAAMo5T,GAAY,CAAC,EAwCnB,MAAMntgB,GAkCF1kR,eAAe4U,GACX,OAAOw8wB,GAA2Bx8wB,EACtC,CAwBA5U,wBAAwB4U,EAAW1I,GAC/B,MAAM4lxB,EAA8BptgB,GAAmBnuP,QAAQ3hB,GAC/D,OAAO8vQ,GAAmBqtgB,sBAAsBD,EAA6B5lxB,EACjF,CAwBAlM,6BAA6B4U,EAAW1I,GACpC,OAAO,IAAI8lxB,GAAoBp9wB,EAAW1I,EAC9C,EACH,IACK8lxB,GAAmB,MAAzB,MAAMA,EAIFtyxB,YAAYuyxB,EAAYt7kB,GAEpB92M,KAAKqyxB,qBAAuB,EAC5BryxB,KAAKoyxB,WAAaA,EAClBpyxB,KAAKqM,OAASyqM,GAAW,KACzB,MAAMvmL,EAAM6hwB,EAAW3txB,OACvBzE,KAAKsyxB,OAAS,GACdtyxB,KAAKsxG,KAAO,GACZ,QAAS9sG,GAAI,EAAGA,GAAI+rB,EAAK/rB,KACrBxE,KAAKsyxB,OAAO9txB,IAAK4txB,EAAW5txB,IAAGsM,IAAI5F,GACnClL,KAAKsxG,KAAK9sG,IAAKwtxB,EAEvB,CACAhuxB,IAAIiZ,EAAOutB,EAAgBsxtB,IACvB,OAAO97vB,KAAKuyxB,UAAUrC,GAAclsxB,IAAIiZ,GAAQ,KAAMutB,EAC1D,CACAgovB,sBAAsBz9wB,GAClB,MAAMk9wB,EAA8BptgB,GAAmBnuP,QAAQ3hB,GAC/D,OAAO/U,KAAKyyxB,wBAAwBR,EACxC,CACAQ,wBAAwB19wB,GACpB,MAAM29wB,EAAM,IAAIP,EAAoBp9wB,GACpC29wB,SAAIrmxB,OAASrM,KACN0yxB,CACX,CACAC,sBAAsBrjoB,GAClB,OAAOtvJ,KAAK4yxB,oBAAoB/tgB,GAAmBnuP,QAAQ,CAAC44H,IAAW,GAC3E,CACAsjoB,oBAAoBtjoB,GAChB,OAAOtvJ,KAAK6yxB,qBAAqBvjoB,EACrC,CACAwjoB,mBAAmBzhxB,GACf,GAAIA,EAAQ,GAAKA,GAASrR,KAAKoyxB,WAAW3txB,OACtC,MAhcZ,SAASsuxB,GAAiB1hxB,GACtB,OAAO5K,MAAO,SAAQ4K,sBAC1B,CA8bkB0hxB,CAAiB1hxB,GAE3B,OAAOrR,KAAKoyxB,WAAW/gxB,EAC3B,CAEA2hxB,KAAK1joB,GACD,GAAItvJ,KAAKqyxB,uBAAyBryxB,KAAKizxB,yBACnC,MAxjBZ,SAASC,GAAsBnvxB,EAAU+M,GACrC,OAAO0+wB,GAAezrxB,EAAU+M,EAAK,SAAUzJ,GAC3C,MAAQ,wCAAuCioxB,GAAuBjoxB,IAC1E,EACJ,CAojBkB6rxB,CAAsBlzxB,KAAMsvJ,EAASx+I,KAE/C,OAAO9Q,KAAK6yxB,qBAAqBvjoB,EACrC,CACA2joB,yBACI,OAAOjzxB,KAAKsxG,KAAK7sG,MACrB,CACAouxB,qBAAqBvjoB,GACjB,GAAIA,EAASqhoB,cAAe,CACxB,MAAMj0wB,EAAM,GACZ,QAASlY,EAAI,EAAGA,EAAI8qJ,EAASohoB,kBAAkBjsxB,SAAUD,EACrDkY,EAAIlY,GAAKxE,KAAKmzxB,aAAa7joB,EAAUA,EAASohoB,kBAAkBlsxB,IAEpE,OAAOkY,EAGP,OAAO1c,KAAKmzxB,aAAa7joB,EAAUA,EAASohoB,kBAAkB,GAEtE,CACAyC,aAAa7joB,EAAUuhoB,GACnB,MAAMzrxB,EAAUyrxB,EAA0BzrxB,QAC1C,IAAIV,GAWAy4C,GAVJ,IACIz4C,GACImsxB,EAA0BjqoB,aAAar/I,IAAI8/I,IAAOrnJ,KAAKozxB,2BAA2B/roB,IAO1F,CANA,MACOl/I,IACH,MAAIA,GAAEwnxB,QACFxnxB,GAAEwnxB,OAAO3vxB,KAAMsvJ,EAASx+I,KAEtB3I,EACV,CAEA,IACIg1C,GAAM/3C,KAAWV,GAIrB,CAHA,MACOyD,IACH,MA7jBZ,SAASkrxB,GAAmBtvxB,EAAUuvxB,EAAmBC,EAAezixB,GACpE,OAAO0+wB,GAAezrxB,EAAU+M,EAAK,SAAUzJ,GAC3C,MAAM8Y,GAAQ1B,GAAUpX,EAAK,GAAG4V,OAChC,MAAQ,GAAEq2wB,EAAkBxzwB,0CAA0CK,MAASmvwB,GAAuBjoxB,KAC1G,EAAGisxB,EACP,CAwjBkBD,CAAmBrzxB,KAAMmI,GAAGA,EAASmnJ,EAASx+I,IACxD,CACA,OAAOqsC,EACX,CACAi2uB,2BAA2B/roB,GACvB,OAAOrnJ,KAAKuyxB,UAAUlroB,EAAIv2I,IAAKu2I,EAAIuxU,WAAYvxU,EAAI1lI,SAAW,KAAOm6uB,GACzE,CACAy2B,UAAUzhxB,EAAK8nd,EAAYpub,GACvB,OAAI15B,IAAQqhxB,EAAoBqB,aACrBxzxB,KAEP44d,aAAsB0iS,GACft7vB,KAAKyzxB,cAAc3ixB,EAAK05B,GAGxBxqC,KAAK0zxB,iBAAiB5ixB,EAAK05B,EAAeoub,EAEzD,CACA+6T,eAAeC,GACX,QAASpvxB,EAAI,EAAGA,EAAIxE,KAAKsyxB,OAAO7txB,OAAQD,IACpC,GAAIxE,KAAKsyxB,OAAO9txB,KAAOovxB,EACnB,OAAI5zxB,KAAKsxG,KAAK9sG,KAAOwtxB,KACjBhyxB,KAAKsxG,KAAK9sG,GAAKxE,KAAKgzxB,KAAKhzxB,KAAKoyxB,WAAW5txB,KAEtCxE,KAAKsxG,KAAK9sG,GAGzB,OAAOwtxB,EACX,CAEA6B,aAAa/ixB,EAAK05B,GACd,GAAIA,IAAkBsxtB,GAClB,OAAOtxtB,EAGP,MAvpBZ,SAASspvB,GAAgB/vxB,EAAU+M,GAC/B,OAAO0+wB,GAAezrxB,EAAU+M,EAAK,SAAUzJ,GAE3C,MAAQ,mBADMoX,GAAUpX,EAAK,GAAG4V,UACGqywB,GAAuBjoxB,IAC9D,EACJ,CAkpBkBysxB,CAAgB9zxB,KAAM8Q,EAEpC,CAEA2ixB,cAAc3ixB,EAAK05B,GACf,MAAM2S,EAAMn9C,KAAK2zxB,eAAe7ixB,EAAI5F,IACpC,OAAQiyC,IAAQ60uB,GAAa70uB,EAAMn9C,KAAK6zxB,aAAa/ixB,EAAK05B,EAC9D,CAEAkpvB,iBAAiB5ixB,EAAK05B,EAAeoub,GACjC,IAAI85T,GAOJ,IALIA,GADA95T,aAAsB9wa,GAChB9nD,KAAKqM,OAGLrM,KAEH0yxB,cAAeP,GAAqB,CACvC,MAAM4B,GAAOrB,GACPv1uB,GAAM42uB,GAAKJ,eAAe7ixB,EAAI5F,IACpC,GAAIiyC,KAAQ60uB,GACR,OAAO70uB,GACXu1uB,GAAMqB,GAAK1nxB,OAEf,OAAY,OAARqmxB,GACOA,GAAI1uxB,IAAI8M,EAAImM,MAAOutB,GAGnBxqC,KAAK6zxB,aAAa/ixB,EAAK05B,EAEtC,CACI2kD,kBAGA,MAAQ,kCAOhB,SAAS6ksB,GAAcjwxB,EAAU8W,GAC7B,MAAM6B,EAAM,GACZ,QAASlY,EAAI,EAAGA,EAAIT,EAASquxB,WAAW3txB,SAAUD,EAC9CkY,EAAIlY,GAAKqW,EAAG9W,EAAS+uxB,mBAAmBtuxB,IAE5C,OAAOkY,CACX,CAf0Bs3wB,CAAch0xB,KAAOixB,GAAM,KAAOA,EAAEngB,IAAIq+E,YAAc,MACnEryE,KAAK,SAEd,CACAxG,WACI,OAAOtW,KAAKmvF,WAChB,EAEJgjsB,SAAoBqB,aAAgCtD,GAAclsxB,IAAIY,IA5JhEutxB,CAAmB,KA4LzB,SAASj0V,GAAkBjhb,EAAOzP,EAAQ4pC,GAAYgzd,SAClD,MAAM85P,EAAQmB,KAGd,OAAc,OAAVnB,EAGOvuvB,GAASsH,EAAOzP,GAGpB2/vB,GADOxH,KACsBzB,EAAOpK,EAAkB78uB,GAAQzP,EACzE,CAaA,SAASutb,KAEL,MAAM,IAAIt0b,MADiF,UAE/F,CAsCA,SAASwtxB,GAAsBvqlB,EAAOw6jB,GAClC,MAAM7D,EAAiB32jB,EAAM22jB,eAC7B,GAAuB,OAAnBA,EACA,QAAS77vB,EAAI,EAAGA,EAAI67vB,EAAe57vB,OAAQD,GAAK,EAAG,CAC/C,MACM0vxB,GAAkB7zB,EAAe77vB,EAAI,GAC3C,IAAwB,IAApB0vxB,GAAwB,CACxB,MAAM3kB,GAAe7lkB,EAAMh+L,KAAKwoxB,IAIhC/sB,GAPkB9G,EAAe77vB,IAQjC+qwB,GAAalP,eAAe,EAA4B6D,EAAMgwB,IAAkBA,GAAe,EAI/G,CAaA,SAASC,GAAY3sB,EAAa99jB,EAAOxrL,EAAS1Q,EAAOvF,EAAMmsxB,GAAWC,GAAiBzpxB,GAAUirD,GAAW9xD,GAAU0pwB,IACtH,MAAMvJ,GAAQx6jB,EAAM0ikB,UAAUrmwB,QAC9Bm+vB,UAAMxD,IAAQz4vB,EACdi8vB,GAAMtD,IAAiB,GAARpzvB,GACc,OAAzBigwB,IACCjG,GAAqC,KAArBA,EAAY5G,OAC7BsD,GAAMtD,KAAU,MAEpB6D,GAAuBP,IAEvBA,GAAMrD,IAAUqD,GAAMzC,IAAoB+F,EAC1CtD,GAAMhD,IAAWhjvB,EACjBgmvB,GAAM9C,IAAqBizB,IAAmB7sB,GAAeA,EAAYpG,IAEzE8C,GAAM7C,IAAaz2vB,IAAY48vB,GAAeA,EAAYnG,IAE1D6C,GAAM5C,IAAazrsB,IAAa2xsB,GAAeA,EAAYlG,KAAc,KACzE4C,GAAM/C,IAAcp9vB,IAAYyjwB,GAAeA,EAAYrG,KAAe,KAC1E+C,GAAMlD,IAAUozB,GAChBlwB,GAAMnrb,GAx5JV,SAASu7c,KACL,OAAOvb,IACX,CAs5JgBub,GACZpwB,GAAMpC,GAA0B2L,GAGhCvJ,GAAMxC,IACY,GAAdh4jB,EAAM/+L,KAAqC68vB,EAAY9F,IAA8BwC,GAClFA,EACX,CACA,SAASqwB,GAAiB7qlB,EAAOr4L,EAAO1G,EAAMvH,EAAM+2D,GAMhD,IAAIqosB,GAAQ94jB,EAAMh+L,KAAK2F,GACvB,GAAc,OAAVmxvB,GACAA,GAAQgyB,GAAmB9qlB,EAAOr4L,EAAO1G,EAAMvH,EAAM+2D,GAhkQ7D,SAASwssB,KACL,OAAO7B,GAAiBC,OAAO6B,MACnC,CA+jQYD,KAKAnE,GAAMh1vB,OAAS,YAGD,GAAbg1vB,GAAM73vB,KAAuC,CAClD63vB,GAAM73vB,KAAOA,EACb63vB,GAAMt2vB,MAAQ9I,EACdo/vB,GAAMrosB,MAAQA,EACd,MAAM9tD,GAASy5vB,KACftD,GAAM0J,cAA2B,OAAX7/vB,IAAkB,EAAKA,GAAO6/vB,cAIxDnG,UAAgBvD,IAAO,GAChBA,EACX,CACA,SAASgyB,GAAmB9qlB,EAAOr4L,EAAO1G,EAAMvH,EAAM+2D,GAClD,MAAMyrsB,GAAeC,KACfngjB,GAAWsgjB,KAGXxD,GAAQ94jB,EAAMh+L,KAAK2F,GAib7B,SAASojxB,GAAY/qlB,EAAOgrlB,EAAS/pxB,EAAM0G,EAAOnF,EAAOiuD,IAiDrD,MAzCc,CACVxvD,OACA0G,QACAsjxB,kBAAmB,KACnBzoB,cALgBwoB,EAAUA,EAAQxoB,eAAgB,EAMlDrD,gBAAgB,EAChBC,cAAc,EACd8rB,sBAAsB,EACtBlyB,iBAAiB,EACjBmyB,iBAAkB,KAClBrnxB,MAAO,EACPkhwB,gBAAiB,EACjBxiwB,MAAOA,EACPiuD,MAAOA,GACPomtB,YAAa,KACbuU,WAAY,KACZC,mBAAe9mxB,EACfs8L,OAAQ,KACR4vE,QAAS,KACTzwE,MAAO,KACP5wL,KAAM,KACNwtF,KAAM,KACN25qB,eAAgB,KAChBzlvB,MAAO,KACPnuB,OAAQqoxB,EACRpV,WAAY,KACZh7wB,OAAQ,KACR0wxB,kBAAmB,KACnBC,oBAAgBhnxB,EAChBo6L,QAAS,KACT6slB,mBAAoB,KACpBC,qBAAiBlnxB,EACjBmnxB,cAAe,EACfC,cAAe,EASvB,CAleQZ,CAAY/qlB,EAHDgc,GAAWkgjB,GAAeA,IAAgBA,GAAav5vB,OAGvC1B,EAAM0G,EAAOjO,EAAM+2D,GAIlD,OAAyB,OAArBuvI,EAAMxmK,aACNwmK,EAAMxmK,WAAas/tB,IAEF,OAAjBoD,KACIlgjB,GAE0B,MAAtBkgjB,GAAapruB,OAAkC,OAAjBgouB,GAAMn2vB,SAEpCu5vB,GAAapruB,MAAQgouB,IAIC,OAAtBoD,GAAa9svB,OAGb8svB,GAAa9svB,KAAO0pvB,GACpBA,GAAMl8pB,KAAOs/pB,KAIlBpD,EACX,CAWA,SAAS8yB,GAAa5rlB,EAAOw6jB,EAAOqxB,EAAiBC,GACjD,GAAwB,IAApBD,EACA,OAAO,EAQX,MAAME,EAAWvxB,EAAMz/vB,OACvB,QAASD,GAAI,EAAGA,GAAI+wxB,EAAiB/wxB,KACjC0/vB,EAAMt7vB,KAAK4sxB,GACX9rlB,EAAM0ikB,UAAUxjwB,KAAK4sxB,GACrB9rlB,EAAMh+L,KAAK9C,KAAK,MAEpB,OAAO6sxB,CACX,CAWA,SAASC,GAAWhslB,EAAOw6jB,EAAOhmvB,GAE9BwpvB,GAAUxD,GACV,IACI,MAAMzhf,EAAY/4E,EAAM+4E,UACN,OAAdA,GACAkzgB,GAAmB,EAA4BlzgB,EAAWvkQ,GAI9D,MAAM03wB,EAAalslB,EAAMk5E,SACN,OAAfgzgB,GACAC,GAAgBnslB,EAAOw6jB,EAAO0xB,EAAY,EAA4B13wB,GAOtEwrL,EAAMuikB,kBACNvikB,EAAMuikB,iBAAkB,GAKxBvikB,EAAMoslB,sBACN7B,GAAsBvqlB,EAAOw6jB,GAK7Bx6jB,EAAMqslB,mBACNJ,GAAmB,EAA4BjslB,EAAM+4E,UAAWvkQ,GAGpE,MAAMsoC,GAAakjJ,EAAMljJ,WACN,OAAfA,IAvKZ,SAASwvuB,GAAsBC,EAAWzvuB,GACtC,QAAShiD,EAAI,EAAGA,EAAIgiD,EAAW/hD,OAAQD,IACnC0xxB,GAAgBD,EAAWzvuB,EAAWhiD,GAE9C,CAoKYwxxB,CAAsB9xB,EAAO19sB,GAerC,CAbA,MACO3tC,GAGH,MAAI6wL,EAAMuikB,kBACNvikB,EAAMyslB,qBAAsB,EAC5BzslB,EAAMuikB,iBAAkB,GAEtBpzvB,CACV,SAEIqrvB,EAAMtD,MAAU,EAChBwH,IACJ,CACJ,CASA,SAASguB,GAAY1slB,EAAOw6jB,EAAO0xB,EAAY13wB,GAE3C,MAAM1Q,EAAQ02vB,EAAMtD,IACpB,GAAiD,MAApC,IAARpzvB,GAAL,CAEAk6vB,GAAUxD,GAIV,IACIO,GAAuBP,GACvBqC,GAAgB78jB,EAAM08jB,mBACH,OAAfwvB,GACAC,GAAgBnslB,EAAOw6jB,EAAO0xB,EAAY,EAA4B13wB,GAE1E,MAAMm4wB,GAA8E,IAA3C,EAAR7oxB,GAI7B,GAAI6oxB,GAAyB,CACzB,MAAM3mB,GAAqBhmkB,EAAMgmkB,mBACN,OAAvBA,IACApG,GAAkBpF,EAAOwL,GAAoB,KAAI,KAGpD,CACD,MAAMD,GAAgB/lkB,EAAM+lkB,cACN,OAAlBA,IACAjG,GAAyBtF,EAAOuL,GAAe,EAA2C,MAE9F/F,GAAwBxF,EAAO,EAAE,CAerC,GA+9BZ,SAASoyB,GAAgCpyB,GACrC,QAASS,EAAasW,GAAmB/W,GAAuB,OAAfS,EAAqBA,EAAawW,GAAkBxW,GAAa,CAC9G,IAAKA,EAAW3C,GACZ,SACJ,MAAMqa,EAAa1X,EAAWxC,IAE9B,QAAS39vB,EAAI,EAAGA,EAAI63wB,EAAW53wB,OAAQD,IAAK,CACxC,MAAM+xxB,EAAala,EAAW73wB,GAKL,IAApB+xxB,EAAW31B,KACZ8D,GALwB6xB,EAAW11B,IAKc,GAMrD01B,EAAW31B,KAAU,KAGjC,CA9/BQ01B,CAAgCpyB,GAu9BxC,SAASsyB,GAAqBtyB,GAC1B,QAASS,EAAasW,GAAmB/W,GAAuB,OAAfS,EAAqBA,EAAawW,GAAkBxW,GACjG,QAASngwB,EAAI49vB,GAAyB59vB,EAAImgwB,EAAWlgwB,OAAQD,IAAK,CAC9D,MAAMiyxB,EAAgB9xB,EAAWngwB,GAC3BkyxB,EAAgBD,EAAc91B,IAEhC4D,GAA6BkyB,IAC7BL,GAAYM,EAAeD,EAAeC,EAAc9zgB,SAAU6zgB,EAAcv1B,IAAQ,CAIxG,CAj+BQs1B,CAAqBtyB,GAEQ,OAAzBx6jB,EAAM22jB,gBACN4zB,GAAsBvqlB,EAAOw6jB,GAKzBmyB,GAAyB,CACzB,MAAMntB,GAAoBx/jB,EAAMw/jB,kBACN,OAAtBA,IACAI,GAAkBpF,EAAOgF,GAAiB,KAG7C,CACD,MAAMD,GAAev/jB,EAAMu/jB,aACN,OAAjBA,IACAO,GAAyBtF,EAAO+E,GAAc,GAElDS,GAAwBxF,EAAO,EAAE,EA5SjD,SAASyyB,GAA0BjtlB,EAAOw6jB,GACtC,MAAM0yB,EAAqBltlB,EAAMktlB,mBACjC,GAA2B,OAAvBA,EAEJ,IACI,QAASpyxB,EAAI,EAAGA,EAAIoyxB,EAAmBnyxB,OAAQD,IAAK,CAChD,MAAMqyxB,EAASD,EAAmBpyxB,GAClC,GAAIqyxB,EAAS,EAETvuB,IAAkBuuB,OAEjB,CAED,MAAMC,GAAeD,EACfE,GAAkBH,IAAqBpyxB,GACvCwyxB,GAAgBJ,IAAqBpyxB,GAC3CqiwB,GAA8BkwB,GAAiBD,IAE/CE,GAAc,EADE9yB,EAAM4yB,IAC2B,EAM7D,CAHA,QAEIxuB,IAAiB,EACrB,CACJ,CAsRQquB,CAA0BjtlB,EAAOw6jB,GAEjC,MAAM19sB,GAAakjJ,EAAMljJ,WACN,OAAfA,IArQZ,SAASywuB,GAAuBhB,EAAWzvuB,GACvC,QAAShiD,EAAI,EAAGA,EAAIgiD,EAAW/hD,OAAQD,IACnC0yxB,GAAiBjB,EAAWzvuB,EAAWhiD,GAE/C,CAkQYyyxB,CAAuB/yB,EAAO19sB,IAKlC,MAAMi8N,GAAY/4E,EAAM+4E,UAOpB,GANc,OAAdA,IACAkzgB,GAAmB,EAA4BlzgB,GAAWvkQ,GAKtDm4wB,GAAyB,CACzB,MAAMjtB,GAAiB1/jB,EAAM0/jB,eACN,OAAnBA,IACAE,GAAkBpF,EAAOkF,GAAc,KAG1C,CACD,MAAMD,GAAYz/jB,EAAMy/jB,UACN,OAAdA,IACAK,GAAyBtF,EAAOiF,GAAW,GAE/CO,GAAwBxF,EAAO,EAAE,EAGX,IAA1Bx6jB,EAAMytlB,kBAONztlB,EAAMytlB,iBAAkB,GASxBjzB,EAAMtD,MAAU,GAED,IAAfsD,EAAMtD,MACNsD,EAAMtD,MAAU,IAChB8D,GAA4BR,EAAMrD,KAAS,GAKnD,CAHA,QAEIuH,IACJ,CA9GI,CA+GR,CACA,SAASytB,GAAgBnslB,EAAOw6jB,EAAO0xB,EAAYvmhB,EAAInxP,GACnD,MAAMk5wB,GAAoB/uB,KACpBgvB,GAAqB,EAALhohB,EACtB,IACIi5f,IAAiB,GACb+uB,IAAiBnzB,EAAMz/vB,OAASs9vB,GAGhCqsB,GAAoB1klB,EAAOw6jB,EAAOnC,GAAe,GAGrD6B,GADoByzB,GAAgB,EAA4C,EAC1Dn5wB,GACtB03wB,EAAWvmhB,EAAInxP,EAMnB,CALA,QAEIoqvB,GAAiB8uB,IAEjBxzB,GADqByzB,GAAgB,EAA0C,EACxDn5wB,EAC3B,CACJ,CAIA,SAASo5wB,GAAsB5tlB,EAAO84jB,EAAO0B,GACzC,GAAI3B,GAAmBC,GAAQ,CAC3B,MACMh3vB,EAAMg3vB,EAAMsG,aAClB,QAASwG,GAFK9M,EAAMqG,eAEayG,GAAiB9jwB,EAAK8jwB,KAAkB,CACrE,MAAMzqsB,GAAM6kI,EAAMh+L,KAAK4jwB,IACnBzqsB,GAAIw7rB,gBACJx7rB,GAAIw7rB,eAAe,EAA4B6D,EAAMoL,IAAiBA,GAAc,EAIpG,CAIA,SAASioB,GAA0B7tlB,EAAOw6jB,EAAO1B,GACxC0C,OAigBT,SAASsyB,GAAyB9tlB,EAAOw6jB,EAAO1B,EAAOiI,GACnD,MAAMpnrB,EAAQm/qB,EAAMqG,eACdr9vB,GAAMg3vB,EAAMsG,aAGdrG,GAAgBD,IAqMxB,SAASi1B,GAAkBvzB,EAAOwzB,EAAW7ytB,GACzC,MAAM4lsB,EAAStG,GAAiBuzB,EAAWxzB,GACrCx6jB,EAAQiulB,GAA0B9ytB,GAGlCwvtB,GAAkBnwB,EAAM9C,IACxBw2B,GAAgBC,GAAc3zB,EAAOiwB,GAAYjwB,EAAOx6jB,EAAO,KAAM7kI,EAAIq5rB,OAAS,GAA4B,GAAiCuM,EAAQitB,EAAWrD,GAAiBA,GAAgB3pxB,eAAe+/vB,EAAQ5lsB,GAAM,KAAM,KAAM,OAGlPq/rB,EAAMwzB,EAAUrmxB,OAASumxB,EAC7B,CA7MQH,CAAkBvzB,EAAO1B,EAAO94jB,EAAMh+L,KAAK23E,EAAQm/qB,EAAME,kBAExDh5jB,EAAMuikB,iBACPH,GAA+BtJ,EAAO0B,GAE1C8V,GAAgBvP,EAAQvG,GACxB,MAAM6wB,GAAgBvyB,EAAMuyB,cAC5B,QAASvwxB,GAAI6+E,EAAO7+E,GAAIgH,GAAKhH,KAAK,CAC9B,MAAMqgE,GAAM6kI,EAAMh+L,KAAKlH,IACjB0yb,GAAYo3U,GAAkBpK,EAAOx6jB,EAAOllM,GAAGg+vB,GACrDwX,GAAgB9iV,GAAWgtU,GACL,OAAlB6wB,IACA+C,GAAmB5zB,EAAO1/vB,GAAI6+E,EAAO6zW,GAAWryX,GAAK29rB,EAAOuyB,IAE5DnyB,GAAe/9rB,MACOw/rB,GAAyB7B,EAAMnxvB,MAAO6yvB,GAC9ChD,IAAWoN,GAAkBpK,EAAOx6jB,EAAOllM,GAAGg+vB,GAAK,CAG7E,CAzhBIg1B,CAAyB9tlB,EAAOw6jB,EAAO1B,EAAO2B,GAAiB3B,EAAO0B,IACV,KAAzC,GAAd1B,EAAMh1vB,QACPuqxB,GAA6BrulB,EAAOw6jB,EAAO1B,GAEnD,CAKA,SAASw1B,GAAyBC,EAAUz1B,EAAO01B,EAAoB/zB,IACnE,MAAM2wB,EAAatyB,EAAMsyB,WACzB,GAAmB,OAAfA,EAAqB,CACrB,IAAIqD,EAAa31B,EAAMnxvB,MAAQ,EAC/B,QAAS7M,GAAI,EAAGA,GAAIswxB,EAAWrwxB,OAAQD,IAAK,EAAG,CAC3C,MAAM6M,GAAQyjxB,EAAWtwxB,GAAI,GACvB0H,IAAkB,IAAVmF,GACV6mxB,EAAkB11B,EAAOy1B,GACzBA,EAAS5mxB,IACb4mxB,EAASE,KAAgBjsxB,IAGrC,CAQA,SAASyrxB,GAA0B9ytB,GAC/B,MAAM6kI,EAAQ7kI,EAAI6kI,MAGlB,OAAc,OAAVA,GAAkBA,EAAMyslB,oBAIjBtxtB,EAAI6kI,MAAQ0ulB,GAAY,EAA6B/wB,KAAWxisB,EAAI+9M,SAAU/9M,EAAIl6B,MAAOk6B,EAAI69M,KAAM79M,EAAIu5rB,cAAev5rB,EAAIw5rB,SAAUx5rB,EAAI49M,UAAW59M,EAAI05rB,QAAS15rB,EAAI89M,QAExKj5E,CACX,CAcA,SAAS0ulB,GAAYztxB,EAAM08vB,EAAWuuB,EAAYjrvB,EAAO+3O,EAAMi8e,GAAY1qU,GAAOxxK,GAAW87e,GAAS85B,IAElG,MAAMjyB,GAAoBrE,EAAgBp3tB,EAIpC2tvB,GAAoBlyB,GAAoB1jf,EACxC0pf,GA0CV,SAASmsB,GAAoBnyB,EAAmBkyB,GAC5C,MAAMlsB,EAAY,GAClB,QAAS5nwB,EAAI,EAAGA,EAAI8zxB,EAAmB9zxB,IACnC4nwB,EAAUxjwB,KAAKpE,EAAI4hwB,EAAoB,KAAO8nB,IAElD,OAAO9hB,CACX,CAhDsBmsB,CAAoBnyB,GAAmBkyB,IACnD31gB,GAAoC,mBAApB01gB,GAAiCA,KAAoBA,GAuC3E,OAtCcjsB,GAAUzL,IAAS,CAC7Bh2vB,KAAMA,EACNyhwB,UAAWA,GACXxpf,SAAUgzgB,EACV4C,QAAS,KACT/1gB,UAAWA,GACX4kf,UAAWA,EACX37vB,KAAM0gwB,GAAUrmwB,QAAQ2+E,KAAK,KAAM0hrB,IACnCA,kBAAmBA,GACnBqyB,kBAAmBH,GACnB1B,mBAAoB,KACpB3qB,iBAAiB,EACjBkrB,iBAAiB,EACjBpB,mBAAmB,EACnBD,sBAAsB,EACtBrmB,cAAe,KACfC,mBAAoB,KACpBzG,aAAc,KACdC,kBAAmB,KACnBC,UAAW,KACXC,eAAgB,KAChBC,aAAc,KACdoU,QAAS,KACTpd,eAAgB,KAChB75sB,WAAY,KACZkyuB,kBAAyC,mBAAf/5B,GAA4BA,KAAeA,GACrEg6B,aAA+B,mBAAV1kW,GAAuBA,KAAUA,GACtD/wZ,WAAY,KACZq7tB,QAASA,GACT57e,OAAQA,GACRwzgB,qBAAqB,EAS7B,CA8BA,SAASyC,GAAwBlvlB,EAAOw6jB,EAAOhmvB,EAAS26wB,GACpD,MAAMnb,EAAWob,GAAwB50B,GACzB,OAAZhmvB,EAMAw/vB,EAAS90wB,KAAKiwxB,IAGdnb,EAAS90wB,KAAKsV,GACVwrL,EAAMuikB,iBACN8sB,GAAwBrvlB,GAAO9gM,KAAKiwxB,EAAWnb,EAASj5wB,OAAS,GAG7E,CA6DA,SAASu0xB,GAAwBC,EAAU3pB,EAAgB4pB,EAAiBC,GACxE,QAAS15B,KAAcw5B,EACnB,GAAIA,EAASpkwB,eAAe4quB,GAAa,CACrCy5B,EAAsC,OAApBA,EAA2B,CAAC,EAAIA,EAClD,MAAME,GAAeH,EAASx5B,GAOA,OAA1B05B,EACAE,GAAiBH,EAAiB5pB,EAAgB7P,EAAY25B,IAEzDD,EAAsBtkwB,eAAe4quB,IAC1C45B,GAAiBH,EAAiB5pB,EAAgB6pB,EAAsB15B,GAAa25B,GAAY,CAI7G,OAAOF,CACX,CACA,SAASG,GAAiBH,EAAiB5pB,EAAgB7P,EAAY25B,GAC/DF,EAAgBrkwB,eAAe4quB,GAC/By5B,EAAgBz5B,GAAY72vB,KAAK0mwB,EAAgB8pB,GAGjDF,EAAgBz5B,GAAc,CAAC6P,EAAgB8pB,EAEvD,CAqEA,SAASE,GAAwB5vlB,EAAO84jB,EAAO0B,EAAO10D,EAAUtjsB,EAAOtB,GAAUirD,GAAW0juB,IAExF,MAAMtzxB,GAAUk+vB,GAAiB3B,EAAO0B,GACxC,IACIs1B,GADAC,GAAYj3B,EAAMj4jB,QAEjBgvlB,IAA2B,MAAbE,KAAsBD,GAAYC,GAAUjqF,KAC3DkqF,GAAqBhwlB,EAAOw6jB,EAAOs1B,GAAWhqF,EAAUtjsB,GACpDu2vB,GAAgBD,IA6B5B,SAASm3B,GAAkBz1B,EAAO01B,GAE9B,MAAMC,EAAsBx1B,GAAyBu1B,EAAW11B,GAC7B,GAA7B21B,EAAoBj5B,MACtBi5B,EAAoBj5B,KAAU,GAEtC,CAlCY+4B,CAAkBz1B,EAAO1B,EAAMnxvB,QAKjB,EAAbmxvB,EAAM73vB,OACX6ksB,EA7BR,SAASsqF,GAAY12xB,GACjB,MAAa,UAATA,EACO,YACE,QAATA,EACO,UACE,eAATA,EACO,aACE,cAATA,EACO,YACE,aAATA,EACO,WACE,aAATA,EACO,WACJA,CACX,CAemB02xB,CAAYtqF,GAUvBtjsB,EAAqB,MAAb2pD,GAAoBA,GAAU3pD,EAAOs2vB,EAAMt2vB,OAAS,GAAIsjsB,GAAYtjsB,EAC5EtB,GAAS8C,YAAYzH,GAASupsB,EAAUtjsB,GAShD,CA4CA,SAAS6txB,GAAkBrwlB,EAAOw6jB,EAAO1B,EAAOw3B,GAI5C,GAAI90B,KAAsB,CACtB,MAAM+0B,EAA2B,OAAdD,EAAqB,KAAO,CAAE,IAAI,GAC/C9kvB,GAwLd,SAASglvB,GAAwBxwlB,EAAO84jB,GAGpC,MAAMxvvB,EAAW02L,EAAMgvlB,kBACvB,IAAI15tB,EAAU,KACVm7tB,EAAoB,KACxB,GAAInnxB,EACA,QAASxO,GAAI,EAAGA,GAAIwO,EAASvO,OAAQD,KAAK,CACtC,MAAMqgE,GAAM7xD,EAASxO,IACrB,GAAIkpxB,GAA2BlrB,EAAO39rB,GAAIt6B,WAAkC,GAExE,GADAy0B,IAAYA,EAAU,IAClB4jsB,GAAe/9rB,IAkBf,GAAkC,OAA9BA,GAAI07rB,sBAAgC,CACpC,MAAM65B,GAAuB,GAC7BD,EAAoBA,GAAqB,IAAIz0xB,IAC7Cm/D,GAAI07rB,sBAAsB17rB,GAAKu1tB,GAAsBD,GAIrDn7tB,EAAQ17B,WAAW82vB,GAAsBv1tB,IAGzCw1tB,GAAoB3wlB,EAAO84jB,EADH43B,GAAqB31xB,OACI,MAKjDu6D,EAAQ17B,QAAQuhC,IAChBw1tB,GAAoB3wlB,EAAO84jB,EAAO,QAKtC23B,EAAoBA,GAAqB,IAAIz0xB,IAC7Cm/D,GAAI07rB,wBAAwB17rB,GAAK7F,EAASm7tB,GAC1Cn7tB,EAAQp2D,KAAKi8D,GAAG,CAKhC,OAAmB,OAAZ7F,EAAmB,KAAO,CAACA,EAASm7tB,EAC/C,CAlP4BD,CAAwBxwlB,EAAO84jB,GACnD,IAAIpE,GACA+7B,GACgB,OAAhBjlvB,GACAkptB,GAAgB+7B,GAAoB,MAGnC/7B,GAAe+7B,IAAqBjlvB,GAEnB,OAAlBkptB,IACAk8B,GAAqB5wlB,EAAOw6jB,EAAO1B,EAAOpE,GAAe67B,EAAYE,IAErEF,GAmPZ,SAASM,GAAwB/3B,EAAOw3B,EAAWC,GAC/C,GAAID,EAAW,CACX,MAAMlF,EAAatyB,EAAMsyB,WAAa,GAItC,QAAStwxB,EAAI,EAAGA,EAAIw1xB,EAAUv1xB,OAAQD,GAAK,EAAG,CAC1C,MAAM6M,GAAQ4oxB,EAAWD,EAAUx1xB,EAAI,IACvC,GAAa,MAAT6M,GACA,MAAM,IAAI6ovB,IAAa,KAA8CtjuB,GACzEk+vB,EAAWlsxB,KAAKoxxB,EAAUx1xB,GAAI6M,GAAK,EAG/C,CA/PYkpxB,CAAwB/3B,EAAOw3B,EAAWC,EAAU,CAG5Dz3B,EAAM+d,YAAc1V,GAAerI,EAAM+d,YAAa/d,EAAMrosB,MAChE,CAEA,SAASmguB,GAAqB5wlB,EAAOw6jB,EAAO1B,EAAO7D,EAAYs7B,EAAYE,IAIvE,QAAS31xB,GAAI,EAAGA,GAAIm6vB,EAAWl6vB,OAAQD,KACnCoowB,GAAmBd,GAA+BtJ,EAAO0B,GAAQx6jB,EAAOi1jB,EAAWn6vB,IAAGmG,OAyQ9F,SAAS6vxB,GAAeh4B,EAAOnxvB,EAAOopxB,GAGlCj4B,EAAMh1vB,OAAS,EAEfg1vB,EAAMqG,eAAiBx3vB,EACvBmxvB,EAAMsG,aAAez3vB,EAAQopxB,EAC7Bj4B,EAAMkM,gBAAkBr9vB,CAC5B,CA/QImpxB,CAAeh4B,EAAO94jB,EAAMh+L,KAAKjH,OAAQk6vB,EAAWl6vB,QAOpD,QAASD,GAAI,EAAGA,GAAIm6vB,EAAWl6vB,OAAQD,KAAK,CACxC,MAAMqgE,GAAM85rB,EAAWn6vB,IACnBqgE,GAAIq7rB,mBACJr7rB,GAAIq7rB,kBAAkBr7rB,GAAG,CAEjC,IAAI61tB,IAAqB,EACrBC,IAA0B,EAC1B7D,GAAexB,GAAa5rlB,EAAOw6jB,EAAOvF,EAAWl6vB,OAAQ,MAGjE,QAASD,GAAI,EAAGA,GAAIm6vB,EAAWl6vB,OAAQD,KAAK,CACxC,MAAMqgE,GAAM85rB,EAAWn6vB,IAGvBg+vB,EAAM+d,YAAc1V,GAAerI,EAAM+d,YAAa17sB,GAAIu7rB,WAC1Dw6B,GAA2BlxlB,EAAO84jB,EAAO0B,EAAO4yB,GAAcjytB,IAC9Dg2tB,GAAoB/D,GAAcjytB,GAAKo1tB,GACZ,OAAvBp1tB,GAAIw7rB,iBACJmC,EAAMh1vB,OAAS,IACM,OAArBq3D,GAAIq1M,cAA2C,OAAlBr1M,GAAIu7rB,WAAuC,IAAjBv7rB,GAAIs7rB,YAC3DqC,EAAMh1vB,OAAS,IACnB,MAAMstxB,GAAiBj2tB,GAAIl6D,KAAK0kB,WAG3BqrwB,KACAI,GAAepyvB,aAAeoyvB,GAAe7xvB,UAAY6xvB,GAAelxC,cAIxElgjB,EAAM+lkB,gBAAkB/lkB,EAAM+lkB,cAAgB,KAAK7mwB,KAAK45vB,EAAMnxvB,OAC/DqpxB,IAAqB,IAEpBC,KAA4BG,GAAepyvB,aAAeoyvB,GAAelxC,cACzElgjB,EAAMgmkB,qBAAuBhmkB,EAAMgmkB,mBAAqB,KAAK9mwB,KAAK45vB,EAAMnxvB,OACzEspxB,IAA0B,GAE9B7D,MAzNR,SAASiE,GAAgCrxlB,EAAO84jB,EAAOw4B,GAEnD,MACMxvxB,EAAMg3vB,EAAMsG,aACZmyB,GAAYvxlB,EAAMh+L,KAClBwvxB,GAAa14B,EAAMrosB,MACnBghuB,GAAkB,GACxB,IAAIC,GAAc,KACdC,GAAe,KACnB,QAAS/rB,GAPK9M,EAAMqG,eAOayG,GAAiB9jwB,EAAK8jwB,KAAkB,CACrE,MAAMC,GAAe0rB,GAAU3rB,IACzBgsB,GAAYN,EAA6BA,EAA2Bh3xB,IAAIurwB,IAAgB,KAExFgsB,GAAiBD,GAAYA,GAAUnhhB,QAAU,KACvDihhB,GACIpC,GAAwBzpB,GAAahlkB,OAAQ+kkB,GAAgB8rB,GAH3CE,GAAYA,GAAU/wlB,OAAS,MAIrD8wlB,GACIrC,GAAwBzpB,GAAap1f,QAASm1f,GAAgB+rB,GAAcE,IAKhF,MAAMxG,GAAiC,OAAhBqG,IAAuC,OAAfF,IAAwBzO,GAAiBjqB,GAEpF,KADAg5B,GAAsBJ,GAAa9rB,GAAgB4rB,IAEvDC,GAAgBvyxB,KAAKmsxB,GAAa,CAElB,OAAhBqG,KACIA,GAAYvmwB,eAAe,WAC3B2tuB,EAAMh1vB,OAAS,GAEf4txB,GAAYvmwB,eAAe,WAC3B2tuB,EAAMh1vB,OAAS,KAGvBg1vB,EAAMuyB,cAAgBoG,GACtB34B,EAAMj4jB,OAAS6wlB,GACf54B,EAAMrof,QAAUkhhB,EACpB,CAqLIN,CAAgCrxlB,EAAO84jB,EAAO23B,GAClD,CA4EA,SAASpC,GAA6BrulB,EAAOw6jB,EAAO1B,GAChD,MAAMn/qB,EAAQm/qB,EAAMqG,eACdr9vB,EAAMg3vB,EAAMsG,aACZ2yB,GAAej5B,EAAMnxvB,MACrBy1vB,GAz3RV,SAAS40B,KACL,OAAO52B,GAAiBC,OAAO+B,qBACnC,CAu3RkC40B,GAC9B,IACIpzB,GAAiBmzB,IACjB,QAASE,GAAWt4sB,EAAOs4sB,GAAWnwxB,EAAKmwxB,KAAY,CACnD,MAAM92tB,GAAM6kI,EAAMh+L,KAAKiwxB,IACjBzkW,GAAYgtU,EAAMy3B,IACxB50B,GAAyB40B,KACA,OAArB92tB,GAAIq1M,cAA0C,IAAjBr1M,GAAIs7rB,UAAoC,OAAlBt7rB,GAAIu7rB,YACvDw7B,GAAiC/2tB,GAAKqyX,GAAS,CAO3D,CAJA,QAEIoxU,IAAiB,GACjBvB,GAAyBD,GAC7B,CACJ,CAOA,SAAS80B,GAAiC/2tB,EAAKqyX,GAClB,OAArBryX,EAAIq1M,cACJr1M,EAAIq1M,aAAa,EAA4Bg9K,EAErD,CAqEA,SAASmjW,GAAoB3wlB,EAAOgulB,EAAWh1B,GAG3Cg1B,EAAUh1B,gBAAkBA,GAC3Bh5jB,EAAMljJ,aAAekjJ,EAAMljJ,WAAa,KAAK59C,KAAK8uxB,EAAUrmxB,MACjE,CAoBA,SAASwpxB,GAAoB/D,EAAcjytB,EAAKo1tB,GAC5C,GAAIA,EAAY,CACZ,GAAIp1tB,EAAIigN,SACJ,QAAStgR,EAAI,EAAGA,EAAIqgE,EAAIigN,SAASrgR,OAAQD,IACrCy1xB,EAAWp1tB,EAAIigN,SAAStgR,IAAMsyxB,EAGlCl0B,GAAe/9rB,KACfo1tB,EAAW,IAAMnD,GAE7B,CA2BA,SAAS8D,GAA2BlxlB,EAAO84jB,EAAO0B,EAAOoL,EAAgBzqsB,GAGrE6kI,EAAMh+L,KAAK4jwB,GAAkBzqsB,EAC7B,MAAMg3tB,GAAmBh3tB,EAAIz/D,UAAYy/D,EAAIz/D,QAAU09vB,GAAcj+rB,EAAIl6D,OAInEmxxB,GAAsB,IAAI5xB,GAAoB2xB,GAAkBj5B,GAAe/9rB,GAAMq5X,IAC3Fx0P,EAAM0ikB,UAAUkD,GAAkBwsB,GAClC53B,EAAMoL,GAAkBwsB,GA9O5B,SAASC,GAA2BrylB,EAAO84jB,EAAOs0B,EAAckF,EAAkBn3tB,GAE9E,MAAMq1M,GAAer1M,EAAIq1M,aACzB,GAAIA,GAAc,CACd,IAAI08gB,GAAqBltlB,EAAMktlB,mBACJ,OAAvBA,KACAA,GAAqBltlB,EAAMktlB,mBAAqB,IAEpD,MAAMqF,IAAez5B,EAAMnxvB,OAkBnC,SAAS6qxB,GAAuBtF,GAC5B,IAAIpyxB,EAAIoyxB,EAAmBnyxB,OAC3B,KAAOD,EAAI,GAAG,CACV,MAAM0H,EAAQ0qxB,IAAqBpyxB,GACnC,GAAqB,iBAAV0H,GAAsBA,EAAQ,EACrC,OAAOA,EAGf,OAAO,CACX,EA1BYgwxB,CAAuBtF,KAAuBqF,IAI9CrF,GAAmBhuxB,KAAKqzxB,IAE5BrF,GAAmBhuxB,KAAKkuxB,EAAckF,EAAkB9hhB,GAAY,CAE5E,CA8NI6hhB,CAA2BrylB,EAAO84jB,EAAO8M,EAAgBgmB,GAAa5rlB,EAAOw6jB,EAAOr/rB,EAAIs7rB,SAAU+tB,IAAYrptB,EAClH,CAYA,SAASs3tB,GAAyB35B,EAAO0B,EAAO9gwB,EAAM8I,EAAO2pD,EAAW9pD,IAOpE,MAAM9F,GAAUk+vB,GAAiB3B,EAAO0B,GACxCk4B,GAAoBl4B,EAAM7C,IAAWp7vB,GAAS8F,GAAWy2vB,EAAMt2vB,MAAO9I,EAAM8I,EAAO2pD,EACvF,CACA,SAASumuB,GAAoBxxxB,EAAU3E,EAAS8F,EAAW9K,EAASmC,EAAM8I,GAAO2pD,IAC7E,GAAa,MAAT3pD,GAEAtB,EAASsC,gBAAgBjH,EAAS7C,EAAM2I,OAEvC,CAED,MAAMg6D,GAAwB,MAAblQ,GAAoBuksB,GAAgBluvB,IAAS2pD,GAAU3pD,GAAOjL,GAAW,GAAImC,GAC9FwH,EAASjI,aAAasD,EAAS7C,EAAM2iE,GAAUh6D,EAAS,CAEhE,CAUA,SAAS+rxB,GAAmB5zB,EAAOoL,EAAgBjmuB,EAAUw7B,EAAK29rB,EAAO65B,IACrE,MAAMtH,GAAgBsH,GAAiB/sB,GACvC,GAAsB,OAAlBylB,GAAwB,CACxB,MAAMz0B,GAAWz7rB,EAAIy7rB,SACrB,QAAS97vB,GAAI,EAAGA,GAAIuwxB,GAActwxB,QAAS,CACvC,MAAMg7vB,GAAas1B,GAAcvwxB,MAC3B6+vB,GAAc0xB,GAAcvwxB,MAC5B0H,GAAQ6oxB,GAAcvwxB,MACX,OAAb87vB,GACAz7rB,EAAIy7rB,SAASj3tB,EAAUn9B,GAAOuzvB,GAAY4D,IAG1Ch6tB,EAASg6tB,IAAen3vB,IAQxC,CAgBA,SAASsvxB,GAAsBjxlB,EAAQ+kkB,EAAgBn1sB,GACnD,IAAImiuB,EAAgB,KAChB93xB,EAAI,EACR,KAAOA,EAAI21D,EAAM11D,QAAQ,CACrB,MAAMo/C,GAAWsW,EAAM31D,GACvB,GAAiB,IAAbq/C,GAGA,GAEkB,IAAbA,GAFL,CAQJ,GAAwB,iBAAbA,GACP,MACJ,GAAI0mJ,EAAO11K,eAAegvB,IAAW,CACX,OAAlBy4uB,IACAA,EAAgB,IAIpB,MAAMC,GAAchylB,EAAO1mJ,IAC3B,QAASs7B,GAAI,EAAGA,GAAIo9sB,GAAY93xB,OAAQ06E,IAAK,EACzC,GAAIo9sB,GAAYp9sB,MAAOmwrB,EAAgB,CACnCgtB,EAAc1zxB,KAAKi7C,GAAU04uB,GAAYp9sB,GAAI,GAAIhlB,EAAM31D,EAAI,IAE3D,OAIZA,GAAK,CApBD,MADAA,GAAK,OALLA,GAAK,CA0BJ,CAET,OAAO83xB,CACX,CAcA,SAASE,GAAiBC,EAAY9yB,EAAac,EAAQjI,GAgBvD,MAdmB,CACfi6B,GACA,GACA,EACA9yB,EACA,KACA,EACAnH,EACAiI,EACA,KACA,KAKR,CAmDA,SAASysB,GAAiBjB,EAAWyG,GAEjC,MAAM9E,EAAgBvzB,GAAyBq4B,EAAkBzG,GAEjE,GAAI1xB,GAA6BqzB,GAAgB,CAC7C,MAAMlulB,EAAQkulB,EAAcj3B,IACA,GAAxBi3B,EAAch3B,IACdw1B,GAAY1slB,EAAOkulB,EAAelulB,EAAMk5E,SAAUg1gB,EAAc12B,KAE3D02B,EAAc72B,IAAiC,GAEpD47B,GAAyB/E,EAAa,CAGlD,CAOA,SAAS+E,GAAyBz4B,GAC9B,QAASS,EAAasW,GAAmB/W,GAAuB,OAAfS,EAAqBA,EAAawW,GAAkBxW,GACjG,QAASngwB,EAAI49vB,GAAyB59vB,EAAImgwB,EAAWlgwB,OAAQD,IAAK,CAC9D,MAAMiyxB,GAAgB9xB,EAAWngwB,GACjC,GAAI+/vB,GAA6BkyB,IAC7B,GAA2B,IAAvBA,GAAc71B,IAAuD,CACrE,MAAM81B,GAAgBD,GAAc91B,IAEpCy1B,GAAYM,GAAeD,GAAeC,GAAc9zgB,SAAU6zgB,GAAcv1B,IAAQ,MAEnFu1B,GAAc11B,IAAiC,GACpD47B,GAAyBlG,GAAa,CAOtD,MAAMjwuB,EAFQ09sB,EAAMvD,IAEKn6sB,WACzB,GAAmB,OAAfA,EACA,QAAShiD,EAAI,EAAGA,EAAIgiD,EAAW/hD,OAAQD,IAAK,CACxC,MAAMozxB,EAAgBvzB,GAAyB79sB,EAAWhiD,GAAI0/vB,GAE1DK,GAA6BqzB,IAC7BA,EAAc72B,IAAiC,GAC/C47B,GAAyB/E,EAAa,CAItD,CACA,SAAS1B,GAAgBD,EAAWyG,GAEhC,MAAM9E,EAAgBvzB,GAAyBq4B,EAAkBzG,GAC3D2G,EAAiBhF,EAAcj3B,KA+BzC,SAASk8B,GAAsBnzlB,EAAOw6jB,GAClC,QAAS1/vB,EAAI0/vB,EAAMz/vB,OAAQD,EAAIklM,EAAM0ikB,UAAU3nwB,OAAQD,IACnD0/vB,EAAMt7vB,KAAK8gM,EAAM0ikB,UAAU5nwB,GAEnC,EAlCIq4xB,CAAsBD,EAAgBhF,GACtClC,GAAWkH,EAAgBhF,EAAeA,EAAc12B,IAC5D,CA4CA,SAAS22B,GAAc3zB,EAAO+Y,GAK1B,OAAI/Y,EAAM3C,IACN2C,EAAM1C,IAAYV,IAAQmc,EAG1B/Y,EAAM3C,IAAc0b,EAExB/Y,EAAM1C,IAAcyb,EACbA,CACX,CAeA,SAAS6f,GAAc54B,GACnB,KAAOA,GAAO,CACVA,EAAMtD,KAAU,GAChB,MAAMv0vB,EAASuuwB,GAAe1W,GAE9B,GAAIrB,GAAWqB,KAAW73vB,EACtB,OAAO63vB,EAGXA,EAAQ73vB,EAEZ,OAAO,IACX,CACA,SAAS0wxB,GAAsBrzlB,EAAOw6jB,EAAOhmvB,EAAS8+wB,GAAqB,GACvE,MAAM3I,EAAkBnwB,EAAM9C,IAKHizB,EAAgB9oxB,OACvC8oxB,EAAgB9oxB,QACpB,IACI6qxB,GAAY1slB,EAAOw6jB,EAAOx6jB,EAAMk5E,SAAU1kQ,EAW9C,CAVA,MACOrF,IACH,MAAImkxB,GACAljpB,GAAYoqnB,EAAOrrvB,IAEjBA,EACV,SAE+Bw7wB,EAAgB7oxB,KACvC6oxB,EAAgB7oxB,KACxB,CACJ,CAUA,SAASmqxB,GAAmBnoxB,EAAOyvxB,EAAa9uxB,GAE5Cg5vB,GAAqB,GACrB81B,EAAYzvxB,EAAOW,EACvB,CA0CA,SAAS2qxB,GAAwBn8nB,GAE7B,OAAOA,EAAKskmB,MAAatkmB,EAAKskmB,IAAW,GAC7C,CACA,SAAS83B,GAAwBrvlB,GAC7B,OAAOA,EAAM+zkB,UAAY/zkB,EAAM+zkB,QAAU,GAC7C,CAKA,SAASyf,GAAsBC,EAAY36B,EAAO0B,GAO9C,OAAmB,OAAfi5B,GAAuBv6B,GAAeu6B,MACtCj5B,EA3xTR,SAASk5B,GAAYlxxB,GACjB,KAAO4N,MAAM2C,QAAQvQ,IAAQ,CAGzB,GAA2B,iBAAhBA,EAAMkgY,GACb,OAAOlgY,EACXA,EAAQA,EAAMw0vB,GAAI,CAEtB,OAAO,IACX,CAkxTgB08B,CAAYl5B,EAAM1B,EAAMnxvB,SAE7B6yvB,EAAM7C,GACjB,CAEA,SAASvnnB,GAAYoqnB,EAAOrrvB,GACxB,MAAM9U,EAAWmgwB,EAAM/C,IACjB5svB,EAAexQ,EAAWA,EAASC,IAAIsQ,GAAc,MAAQ,KACnEC,GAAgBA,EAAaulI,YAAYjhI,EAC7C,CAUA,SAAS6gxB,GAAqBhwlB,EAAOw6jB,EAAO35jB,EAAQk1jB,EAAYvzvB,GAC5D,QAAS1H,GAAI,EAAGA,GAAI+lM,EAAO9lM,QAAS,CAChC,MAAM4M,GAAQk5L,EAAO/lM,MACf6+vB,GAAc94jB,EAAO/lM,MACrB6kC,GAAW66tB,EAAM7yvB,IAEjBwzD,GAAM6kI,EAAMh+L,KAAK2F,IACF,OAAjBwzD,GAAIy7rB,SACJz7rB,GAAIy7rB,SAASj3tB,GAAUn9B,EAAOuzvB,EAAY4D,IAG1Ch6tB,GAASg6tB,IAAen3vB,EAGpC,CAIA,SAASmxxB,GAAoBn5B,EAAO7yvB,EAAOnF,GAIvC,MAAMjG,EAAUg+vB,GAAiB5yvB,EAAO6yvB,GAExC6X,GAAe7X,EAAM7C,IAAWp7vB,EAASiG,EAC7C,CAaA,SAASoxxB,GAAqB96B,EAAOrosB,EAAOojuB,GAGxC,IAAIj5xB,EAASi5xB,EAAc/6B,EAAMl+vB,OAAS,KACtC+jM,EAAUk1lB,EAAc/6B,EAAMn6jB,QAAU,KACxC/5L,GAAO,EACX,GAAc,OAAV6rD,EACA,QAAS31D,GAAI,EAAGA,GAAI21D,EAAM11D,OAAQD,KAAK,CACnC,MAAM0H,GAAQiuD,EAAM31D,IACC,iBAAV0H,GACPoC,GAAOpC,GAEM,GAARoC,GACL+5L,EAAUsxjB,GAAuBtxjB,EAASn8L,IAE7B,GAARoC,KAGLhK,EAASq1vB,GAAuBr1vB,EAFlB4H,GAEkC,KAD7BiuD,IAAQ31D,IACyC,KAAG,CAInF+4xB,EAAc/6B,EAAMl+vB,OAASA,EAASk+vB,EAAMwyB,kBAAoB1wxB,EAChEi5xB,EAAc/6B,EAAMn6jB,QAAUA,EAAUm6jB,EAAM0yB,mBAAqB7slB,CACvE,CAEA,SAASm1lB,GAAmB9zlB,EAAOw6jB,EAAO1B,EAAOlxvB,EAAQuuwB,GAAe,GACpE,KAAiB,OAAVrd,GAAgB,CAGnB,MAAMi7B,GAAQv5B,EAAM1B,EAAMnxvB,OAO1B,GANc,OAAVosxB,IACAnsxB,EAAO1I,KAAKo7vB,GAAYy5B,KAKxBn7B,GAAam7B,IACb,QAASj5xB,GAAI49vB,GAAyB59vB,GAAIi5xB,GAAMh5xB,OAAQD,KAAK,CACzD,MAAMk5xB,GAAoBD,GAAMj5xB,IAC1Bm5xB,GAAuBD,GAAkB/8B,IAAOz9tB,WACzB,OAAzBy6vB,IACAH,GAAmBE,GAAkB/8B,IAAQ+8B,GAAmBC,GAAsBrsxB,EAAM,CAIxG,MAAM0twB,GAAYxc,EAAM73vB,KACxB,GAAgB,EAAZq0wB,GACAwe,GAAmB9zlB,EAAOw6jB,EAAO1B,EAAMhouB,MAAOlpB,QAAM,GAEnC,GAAZ0twB,GAAoC,CACzC,MAAMe,GAAYrF,GAAoBlY,EAAO0B,GAC7C,IAAIsX,GACJ,KAAOA,GAAQuE,MACXzuwB,EAAO1I,KAAK4ywB,GAAK,SAGJ,GAAZwD,GAA2C,CAChD,MAAM4e,GAAcve,GAAmBnb,EAAO1B,GAC9C,GAAI1ovB,MAAM2C,QAAQmhxB,IACdtsxB,EAAO1I,QAAQg1xB,QAEd,CACD,MAAMptnB,GAAaoqmB,GAAe1W,EAAMxC,KAExC87B,GAAmBhtnB,GAAWmwlB,IAAQnwlB,GAAYotnB,GAAatsxB,GAAQ,EAAI,EAGnFkxvB,EAAQqd,EAAerd,EAAMyd,eAAiBzd,EAAM1pvB,KAExD,OAAOxH,CACX,CAEA,MAAMusxB,GACEnpuB,gBACA,MAAMwvsB,EAAQlkwB,KAAK+vwB,OACbrmkB,EAAQw6jB,EAAMvD,IACpB,OAAO68B,GAAmB9zlB,EAAOw6jB,EAAOx6jB,EAAMxmK,WAAY,GAC9D,CACArjC,YAYAkwwB,EAOA+tB,GACI99xB,KAAK+vwB,OAASA,EACd/vwB,KAAK89xB,oBAAsBA,EAC3B99xB,KAAKq0D,QAAU,KACfr0D,KAAK+9xB,0BAA2B,CACpC,CACI7/wB,cACA,OAAOle,KAAK+vwB,OAAO7O,GACvB,CACIhjvB,YAAQhS,GACRlM,KAAK+vwB,OAAO7O,IAAWh1vB,CAC3B,CACIstE,gBACA,OAAiE,MAApC,IAArBx5E,KAAK+vwB,OAAOnP,IACxB,CACA90vB,UACI,GAAI9L,KAAKq0D,QACLr0D,KAAKq0D,QAAQG,WAAWx0D,WAAI,GAEvBA,KAAK+9xB,yBAA0B,CACpC,MAAM1xxB,EAASrM,KAAK+vwB,OAAOlP,IAC3B,GAAIyB,GAAaj2vB,GAAS,CACtB,MAAM2xxB,EAAW3xxB,EAAO61vB,IAClB7wvB,EAAQ2sxB,EAAWA,EAAS9sxB,QAAQlR,OAAQ,EAC9CqR,GAAQ,IAGRmjD,GAAWnoD,EAAQgF,GACnB+hwB,GAAgB4qB,EAAU3sxB,GAAK,CAGvCrR,KAAK+9xB,0BAA2B,EAEpChhB,GAAa/8wB,KAAK+vwB,OAAOpP,IAAQ3gwB,KAAK+vwB,OAC1C,CACAzkwB,UAAU0C,GACN4qxB,GAAwB54xB,KAAK+vwB,OAAOpP,IAAQ3gwB,KAAK+vwB,OAAQ,KAAM/hwB,EACnE,CAgCAq8B,eACIyyvB,GAAc98xB,KAAK89xB,qBAAuB99xB,KAAK+vwB,OACnD,CAsDAvmuB,SACIxpC,KAAK+vwB,OAAOnP,MAAU,EAC1B,CAyDAq9B,WACIj+xB,KAAK+vwB,OAAOnP,KAAU,EAC1B,CAsBAx0sB,gBACI2wuB,GAAsB/8xB,KAAK+vwB,OAAOpP,IAAQ3gwB,KAAK+vwB,OAAQ/vwB,KAAKke,QAChE,CAOAggxB,iBAIA,CACAC,2BACI,GAAIn+xB,KAAKq0D,QACL,MAAM,IAAI6lsB,GAAa,KAAkDtjuB,GAE7E52B,KAAK+9xB,0BAA2B,CACpC,CACAK,mBACIp+xB,KAAKq0D,QAAU,KAxrMvB,SAASgquB,GAAiB30lB,EAAOw6jB,GAC7B4X,GAAUpykB,EAAOw6jB,EAAOA,EAAM7C,IAAW,EAAoC,KAAM,KACvF,CAurMQg9B,CAAiBr+xB,KAAK+vwB,OAAOpP,IAAQ3gwB,KAAK+vwB,OAC9C,CACAuuB,eAAeh3sB,GACX,GAAItnF,KAAK+9xB,yBACL,MAAM,IAAI7jC,GAAa,KAAkDtjuB,GAE7E52B,KAAKq0D,QAAUizB,CACnB,EAGJ,MAAMi3sB,WAAoBV,GACtBh+xB,YAAY+kM,GACR9kM,MAAM8kM,GACN5kM,KAAK4kM,MAAQA,CACjB,CACAx4I,gBACI,MAAM83sB,EAAQlkwB,KAAK4kM,MAGnBm4lB,GAFc74B,EAAMvD,IAESuD,EADbA,EAAMhD,KACuB,EACjD,CACAg9B,iBAOA,CACIhgxB,cACA,OAAO,IACX,EAGJ,MAAMgvB,WAAiC09uB,GAInC/qxB,YAAYiV,GACRhV,QACAE,KAAK8U,SAAWA,CACpB,CACAq1B,wBAAwBh8B,GAEpB,MAAMqwxB,EAAe3/B,GAAgB1wvB,GACrC,OAAO,IAAIswxB,GAAiBD,EAAcx+xB,KAAK8U,SACnD,EAEJ,SAAS4pxB,GAAWn3xB,GAChB,MAAMmnC,EAAQ,GACd,QAASiwvB,KAAep3xB,EAChBA,EAAIstB,eAAe8pwB,IAEnBjwvB,EAAM9lC,KAAK,CAAE4msB,SADIjosB,EAAIo3xB,GACYlkqB,aAAckkqB,IAGvD,OAAOjwvB,CACX,CASA,MAAMkwvB,GACF/+xB,YAAYkE,EAAUgzC,GAClB/2C,KAAK+D,SAAWA,EAChB/D,KAAK+2C,eAAiBA,CAC1B,CACA/yC,IAAIiZ,EAAOutB,EAAeh9B,GACtBA,EAAQmvvB,GAAkBnvvB,GAC1B,MAAMtB,EAAQlM,KAAK+D,SAASC,IAAIiZ,EAAOquwB,GAAuC99wB,GAC9E,OAAItB,IAAUo/wB,IACV9gvB,IAAkB8gvB,GAMXp/wB,EAEJlM,KAAK+2C,eAAe/yC,IAAIiZ,EAAOutB,EAAeh9B,EACzD,EAKJ,MAAMixxB,WAAyBhU,GACvBlglB,aACA,OAAOm0lB,GAAW1+xB,KAAKw+xB,aAAaj0lB,OACxC,CACI4vE,cACA,OAAOukhB,GAAW1+xB,KAAKw+xB,aAAarkhB,QACxC,CAKAt6Q,YAAY2+xB,EAAc1pxB,GACtBhV,QACAE,KAAKw+xB,aAAeA,EACpBx+xB,KAAK8U,SAAWA,EAChB9U,KAAK6+xB,cAAgBL,EAAa7zxB,KAClC3K,KAAK4rB,SA/jGb,SAASkzwB,GAAyBC,GAC9B,OAAOA,EAAax3xB,IAAIymxB,IAAsBlxwB,KAAK,IACvD,CA6jGwBgixB,CAAyBN,EAAaj0vB,WACtDvqC,KAAKgmc,mBACDw4V,EAAax4V,mBAAqBw4V,EAAax4V,mBAAqB,GACxEhmc,KAAKg/xB,kBAAoBlqxB,CAC7B,CACAlJ,OAAO7H,EAAU8mvB,EAAkBo0C,EAAoBz2vB,GAEnD,IAAI02vB,IADJ12vB,EAAsBA,GAAuBxoC,KAAK8U,oBACW2zB,GACzDD,EACAA,GAAqBzkC,SACrBm7xB,IAAuE,OAA5Cl/xB,KAAKw+xB,aAAalgC,wBAC7C4gC,GAA0Bl/xB,KAAKw+xB,aAAalgC,sBAAsB4gC,KAC9DA,IAER,MAAMC,GAAmBD,GAA0B,IAAIN,GAAgB76xB,EAAUm7xB,IAA2Bn7xB,EACtGswxB,GAAkB8K,GAAiBn7xB,IAAIwQ,GAAkB,MAC/D,GAAwB,OAApB6/wB,GACA,MAAM,IAAIn6B,GAAa,KAA+CtjuB,GAK1E,MAAMi/B,GAAYspuB,GAAiBn7xB,IAAImnxB,GAAW,MAC5CiU,GAAe/K,GAAgB3pxB,eAAe,KAAM1K,KAAKw+xB,cAGzDa,GAAcr/xB,KAAKw+xB,aAAaj0vB,UAAU,GAAG,IAAM,MACnD+0vB,GAAYL,EA1gD1B,SAASM,GAAkB30xB,EAAU40xB,EAAmBr0xB,GAGpD,OAAOP,EAASgC,kBAAkB4yxB,EADVr0xB,IAAkBgyvB,GAAoBE,UAElE,CAugDYkiC,CAAkBH,GAAcH,EAAoBj/xB,KAAKw+xB,aAAarzxB,eACtE+wwB,GAAkBkjB,GAAcC,GA5E5C,SAASI,GAAaJ,GAClB,MAAMj8xB,EAAOi8xB,EAAYzuxB,cACzB,MAAgB,QAATxN,EAAiB0gwB,GAA0B,SAAT1gwB,EAAkB2gwB,GAAoB,IACnF,CAyEyD07B,CAAaJ,KACxDK,GAAY1/xB,KAAKw+xB,aAAatgC,OAAS,IACzC,IAEEyhC,GAAYvH,GAAY,EAAwB,KAAM,KAAM,EAAG,EAAG,KAAM,KAAM,KAAM,KAAM,MAC1FwH,GAAYzL,GAAY,KAAMwL,GAAW,KAAMD,GAAW,KAAM,KAAMrL,GAAiB+K,GAAcvpuB,GAAWspuB,GAAkB,MAOxI,IAAIhxxB,GACA0xxB,GAFJn4B,GAAUk4B,IAGV,IACI,MAAME,GAAmB9/xB,KAAKw+xB,aAC9B,IAAIuB,GACA5F,GAAoB,KACpB2F,GAAiBv/B,uBACjBw/B,GAAiB,GACjB5F,GAAoB,IAAIz0xB,IACxBo6xB,GAAiBv/B,sBAAsBu/B,GAAkBC,GAAgB5F,IACzE4F,GAAen3xB,KAAKk3xB,KAGpBC,GAAiB,CAACD,IAEtB,MAAMpI,GA6ElB,SAASsI,GAAyB97B,EAAOsX,GACrC,MAAM9xkB,EAAQw6jB,EAAMvD,IACdtvvB,EAAQ0wvB,EAEdmC,SAAM7yvB,GAASmqwB,EAIR+Y,GAAiB7qlB,EAAOr4L,EAAO,EAA2B,QAAS,KAC9E,CAtF8B2uxB,CAAyBJ,GAAWN,IAChD1H,GAkGlB,SAASqI,GAAwBz9B,EAAOgZ,EAAOskB,EAAkBC,EAAgBthoB,EAAU41nB,GAAiB+K,GAAcvpuB,IACtH,MAAM6zI,GAAQjrC,EAASkimB,KAY3B,SAASu/B,GAA0BH,EAAgBv9B,EAAOgZ,EAAO4jB,GAC7D,UAAWv6tB,KAAOk7tB,EACdv9B,EAAM+d,YAAc1V,GAAerI,EAAM+d,YAAa17sB,EAAIu7rB,WAEpC,OAAtBoC,EAAM+d,cACN+c,GAAqB96B,EAAOA,EAAM+d,aAAa,GACjC,OAAV/E,GACA8E,GAAsB8e,EAAc5jB,EAAOhZ,GAGvD,CArBI09B,CAA0BH,EAAgBv9B,EAAOgZ,EAAO4jB,IACxD,MAAMe,GAAe9L,GAAgB3pxB,eAAe8wwB,EAAOskB,GACrDlI,GAAgBzD,GAAY11nB,EAAUk5nB,GAA0BmI,GAAmB,KAAMA,EAAiB5hC,OAAS,GAA4B,GAAiCz/lB,EAAS+jmB,EAAMnxvB,OAAQmxvB,EAAO6xB,GAAiB8L,GAActquB,IAAa,KAAM,KAAM,MAC5Q,OAAI6zI,GAAMuikB,iBACNouB,GAAoB3wlB,GAAO84jB,EAAOu9B,EAAet7xB,OAAS,GAE9DozxB,GAAcp5nB,EAAUm5nB,IAEjBn5nB,EAAS+jmB,EAAMnxvB,OAASumxB,EACnC,CA7GkCqI,CAAwBvI,GAAW4H,GAAWQ,GAAkBC,GAAgBH,GAAWvL,GAAiB+K,IAClIS,GAAez7B,EAASu7B,GAAW59B,GAI/Bu9B,IAyJhB,SAASc,GAAsBhB,EAAcZ,EAAcc,EAAWL,GAClE,GAAIA,EACAz0B,GAAgB40B,EAAcE,EAAW,CAAC,aAAc9rC,GAAQn0jB,WAE/D,CAID,MAAQllI,QAAOkuI,YAjxGvB,SAASg4lB,GAAmCz0wB,GACxC,MAAMuuC,EAAQ,GACRkuI,EAAU,GAChB,IAAI7jM,EAAI,EACJ8J,EAAO,EACX,KAAO9J,EAAIonB,EAASnnB,QAAQ,CACxB,IAAIwpxB,GAAgBriwB,EAASpnB,GAC7B,GAA6B,iBAAlBypxB,GACM,IAAT3/wB,EACsB,KAAlB2/wB,IACA9ztB,EAAMvxD,KAAKqlxB,GAAeriwB,IAAWpnB,IAG3B,IAAT8J,GACL+5L,EAAQz/L,KAAKqlxB,QAGhB,CAID,IAAKhB,GAAW3+wB,GACZ,MACJA,EAAO2/wB,GAEXzpxB,IAEJ,MAAO,CAAE21D,QAAOkuI,UACpB,CAqvGmCg4lB,CAAmC7B,EAAaj0vB,UAAU,IACjF4vB,GACAqwsB,GAAgB40B,EAAcE,EAAWnluB,GAEzCkuI,IAAWA,GAAQ5jM,OAAS,GAC5B47wB,GAAiB+e,EAAcE,EAAWj3lB,GAAQvrL,KAAK,KAAI,CAGvE,CAxKgBsjxB,CAAsBhB,GAAcU,GAAkBR,GAAWL,QAE5ChxxB,IAArB48uB,GAwKhB,SAASy1C,GAAa99B,EAAOx8T,EAAoB6kT,GAC7C,MAAMy0B,EAAa9c,EAAM8c,WAAa,GACtC,QAAS96wB,EAAI,EAAGA,EAAIwhc,EAAmBvhc,OAAQD,IAAK,CAChD,MAAM+7xB,GAAe11C,EAAiBrmvB,GAMtC86wB,EAAW12wB,KAAqB,MAAhB23xB,GAAuBzmxB,MAAMC,KAAKwmxB,IAAgB,KAAI,CAE9E,CAlLgBD,CAAaT,GAAc7/xB,KAAKgmc,mBAAoB6kT,GAKxD18uB,GAgHZ,SAASqyxB,GAAoB5I,EAAekI,EAAkBC,EAAgB5F,EAAmByF,EAAWa,IACxG,MAAMC,GAAY/6B,KAEZj8jB,GAAQk2lB,EAAUj/B,IAClB8J,GAAStG,GAAiBu8B,GAAWd,GAC3CtF,GAAqB5wlB,GAAOk2lB,EAAWc,GAAWX,EAAgB,KAAM5F,GACxE,QAAS31xB,GAAI,EAAGA,GAAIu7xB,EAAet7xB,OAAQD,KAGvCw1wB,GAD0B1L,GAAkBsxB,EAAWl2lB,GADhCg3lB,GAAU73B,eAAiBrkwB,GAC4Bk8xB,IAC3Cd,GAEvC7H,GAA6BrulB,GAAOk2lB,EAAWc,IAC3Cj2B,IACAuP,GAAgBvP,GAAQm1B,GAM5B,MAAMzxxB,GAAYmgwB,GAAkBsxB,EAAWl2lB,GAAOg3lB,GAAU73B,eAAiB63B,GAAUh+B,gBAAiBg+B,IAE5G,GADA9I,EAAc12B,IAAW0+B,EAAU1+B,IAAW/yvB,GACzB,OAAjBsyxB,GACA,UAAWh6wB,MAAWg6wB,GAClBh6wB,GAAQtY,GAAW2xxB,GAK3BxI,UAAsB5tlB,GAAOg3lB,GAAW9I,GACjCzpxB,EACX,CA9IwBqyxB,CAAoB5I,GAAekI,GAAkBC,GAAgB5F,GAAmByF,GAAW,CAACe,KAChHjL,GAAWiK,GAAWC,GAAW,KAIrC,CAHA,QAEIx3B,IACJ,CACA,OAAO,IAAIw4B,GAAa5gyB,KAAK6+xB,cAAe1wxB,GAAW48wB,GAAiB8U,GAAcD,IAAYA,GAAWC,GACjH,EAUJ,MAAMe,WAAqBpW,GACvB3qxB,YAAYg/xB,EAAex1vB,EAAUjB,EAAUy4vB,EAAY/wB,IACvDhwwB,QACAE,KAAKooC,SAAWA,EAChBpoC,KAAK6gyB,WAAaA,EAClB7gyB,KAAK8vwB,OAASA,GACd9vwB,KAAKqpC,SAAWA,EAChBrpC,KAAK6pC,SAAW7pC,KAAKykR,kBAAoB,IAAI85gB,GAAYsC,GACzD7gyB,KAAK6+xB,cAAgBA,CACzB,CACAv+B,SAASl9vB,EAAM8I,GACX,MAAMutxB,EAAYz5xB,KAAK8vwB,OAAOvlkB,OAC9B,IAAIivlB,EACJ,GAAkB,OAAdC,IAAuBD,EAAYC,EAAUr2xB,IAAQ,CACrD,MAAM8gwB,GAAQlkwB,KAAK6gyB,WACnBnH,GAAqBx1B,GAAMvD,IAAQuD,GAAOs1B,EAAWp2xB,EAAM8I,GAE3D4wxB,GAD4Bz4B,GAAyBrkwB,KAAK8vwB,OAAOz+vB,MAAO6yvB,IACvC,CAUzC,CACIngwB,eACA,OAAO,IAAI8rwB,GAAa7vwB,KAAK8vwB,OAAQ9vwB,KAAK6gyB,WAC9C,CACA/0xB,UACI9L,KAAK6pC,SAAS/9B,SAClB,CACAR,UAAU0C,GACNhO,KAAK6pC,SAASv+B,UAAU0C,EAC5B,EAsIJ,SAAS2yxB,KACL,MAAMn+B,EAAQmD,KAEdiD,GAAuBvD,KAAW1E,IAAQ6B,EAC9C,CAEA,SAASs+B,GAAan2xB,GAClB,OAAOgB,OAAO2vb,eAAe3wb,EAAK0kB,WAAWxvB,WACjD,CAOA,SAASkhyB,GAA2BvhlB,GAChC,IAAIwhlB,EAAYF,GAAathlB,EAAW70M,MACpCs2xB,GAAsB,EAC1B,MAAMC,EAAmB,CAAC1hlB,GAC1B,KAAOwhlB,GAAW,CACd,IAAIG,EACJ,GAAIv+B,GAAepjjB,GAEf2hlB,EAAWH,EAAUt2vB,WAAQs2vB,EAAU12vB,cAEtC,CACD,GAAI02vB,EAAUt2vB,UACV,MAAM,IAAIwvtB,GAAa,KAAgDtjuB,GAI3EuqwB,EAAWH,EAAU12vB,UAEzB,GAAI62vB,EAAU,CACV,GAAIF,EAAqB,CACrBC,EAAiBt4xB,KAAKu4xB,GAGtB,MAAMC,GAAe5hlB,EACrB4hlB,GAAa72lB,OAAS82lB,GAAiB7hlB,EAAWjV,QAClD62lB,GAAanhC,eAAiBohC,GAAiB7hlB,EAAWygjB,gBAC1DmhC,GAAajnhB,QAAUknhB,GAAiB7hlB,EAAW26D,SAEnD,MAAMmnhB,GAAoBH,EAASjnhB,aACnConhB,IAAqBC,GAAoB/hlB,EAAY8hlB,IAErD,MAAME,GAAiBL,EAAS1+gB,UAC1Bg/gB,GAAsBN,EAAS9gC,eASrC,GARAmhC,IAAkBE,GAAiBlilB,EAAYgilB,IAC/CC,IAAuBE,GAAsBnilB,EAAYiilB,IAEzDjoC,GAAeh6iB,EAAWjV,OAAQ42lB,EAAS52lB,QAC3CivjB,GAAeh6iB,EAAWygjB,eAAgBkhC,EAASlhC,gBACnDzG,GAAeh6iB,EAAW26D,QAASgnhB,EAAShnhB,SAGxCyof,GAAeu+B,IAAaA,EAASz1xB,KAAK2iD,UAAW,CAGrD,MAAMuzuB,GAAUpilB,EAAW9zM,KAC3Bk2xB,GAAQvzuB,WAAauzuB,GAAQvzuB,WAAa,IAAI5zC,OAAO0mxB,EAASz1xB,KAAK2iD,UAAS,EAIpF,MAAM7nC,GAAW26wB,EAAS36wB,SAC1B,GAAIA,GACA,QAAShiB,GAAI,EAAGA,GAAIgiB,GAAS/hB,OAAQD,KAAK,CACtC,MAAMiiB,GAAUD,GAAShiB,IACrBiiB,IAAWA,GAAQg9uB,WACnBh9uB,GAAQ+4L,GASR/4L,KAAYs6wB,KACZE,GAAsB,IAKtCD,EAAYr1xB,OAAO2vb,eAAe0lW,EAAS,EAWnD,SAASa,GAAgCX,GACrC,IAAI/gC,EAAW,EACXC,EAAY,KAEhB,QAAS57vB,EAAI08xB,EAAiBz8xB,OAAS,EAAGD,GAAK,EAAGA,IAAK,CACnD,MAAMqgE,EAAMq8tB,EAAiB18xB,GAE7BqgE,EAAIs7rB,SAAYA,GAAYt7rB,EAAIs7rB,SAEhCt7rB,EAAIu7rB,UACAyK,GAAehmsB,EAAIu7rB,UAAWA,EAAYyK,GAAezK,EAAWv7rB,EAAIu7rB,WAAU,CAE9F,CArBIyhC,CAAgCX,EACpC,CAqBA,SAASG,GAAiBn1xB,GACtB,OAAIA,IAAUoxvB,GACH,CAAC,EAEHpxvB,IAAUk9uB,GACR,GAGAl9uB,CAEf,CACA,SAASw1xB,GAAiBlilB,EAAYgilB,GAClC,MAAMM,EAAgBtilB,EAAWijE,UAE7BjjE,EAAWijE,UADXq/gB,EACuB,CAACzyhB,EAAIr5P,KACxBwrxB,EAAenyhB,EAAIr5P,GACnB8rxB,EAAczyhB,EAAIr5P,EAAG,EAIFwrxB,CAE/B,CACA,SAASG,GAAsBnilB,EAAYiilB,GACvC,MAAMM,EAAqBvilB,EAAW6gjB,eAElC7gjB,EAAW6gjB,eADX0hC,EAC4B,CAAC1yhB,EAAIr5P,EAAKs5vB,MAClCmyB,EAAoBpyhB,EAAIr5P,EAAKs5vB,IAC7ByyB,EAAmB1yhB,EAAIr5P,EAAKs5vB,GAAc,EAIlBmyB,CAEpC,CACA,SAASF,GAAoB/hlB,EAAY8hlB,GACrC,MAAMU,EAAmBxilB,EAAW06D,aAEhC16D,EAAW06D,aADX8nhB,EAC0B,CAAC3yhB,EAAIr5P,KAC3BsrxB,EAAkBjyhB,EAAIr5P,GACtBgsxB,EAAiB3yhB,EAAIr5P,EAAG,EAIFsrxB,CAElC,CAMA,MAAMW,GAAwB,CAE1B,qBAWEC,GAAwB,CAG1B,WACA,QACA,SACA,OACA,SACA,qBAEA,SACA,gBAEA,WAkBJ,SAASC,GAAwB3ilB,GAC7B,IACI2hlB,EADAH,EAAYF,GAAathlB,EAAW70M,MAIpCw2xB,EAFAv+B,GAAepjjB,GAEJwhlB,EAAUt2vB,UAIVs2vB,EAAU12vB,UAGzB,MAAM83vB,EAAS5ilB,EAEf,UAAW74D,KAASs7oB,GAChBG,EAAOz7oB,GAASw6oB,EAASx6oB,GAE7B,GAAIi8mB,GAAeu+B,GAEf,UAAWx6oB,KAASu7oB,GAChBE,EAAOz7oB,GAASw6oB,EAASx6oB,EAGrC,CAsBA,SAAS07oB,GAAwBC,GAC7B,OAAQ9ilB,IACJA,EAAW+gjB,sBAAwBA,GACnC/gjB,EAAWghjB,gBACN1mvB,MAAM2C,QAAQ6lxB,GAAqBA,EAAoBA,KAAqB/6xB,IAAI01I,GACvD,mBAARA,EACV,CAAEi6S,UAAW4iU,EAAkB78mB,GAAMstD,OAAQ+yjB,GAAWnjf,QAASmjf,IACjE,CACIpmU,UAAW4iU,EAAkB78mB,EAAIi6S,WACjC3sP,OAAQg4lB,GAAkBtlpB,EAAIstD,QAC9B4vE,QAASoohB,GAAkBtlpB,EAAIk9H,UAE1C,CAEb,CACA,SAASomf,GAAsB48B,EAAYqF,EAAarI,GACpD,GAAkC,OAA9BgD,EAAW38B,eACX,UAAWiiC,KAAuBtF,EAAW38B,eAAgB,CACzD,MAAMkiC,EAAmB5jC,GAAgB2jC,EAAoBvrW,WAM7DyrW,GAAoBD,EAAiBziC,eAAgBwiC,EAAoBl4lB,QAEzEg2jB,GAAsBmiC,EAAkBF,EAAarI,GACrDA,EAAkB3zxB,IAAIk8xB,EAAkBD,GACxCD,EAAY55xB,KAAK85xB,EAAgB,CAG7C,CAKA,SAASH,GAAkB/jmB,GACvB,QAAiBvwL,IAAbuwL,GAA8C,IAApBA,EAAS/5L,OACnC,OAAO64vB,GAEX,MAAMhsvB,EAAS,CAAC,EAChB,QAAS9M,EAAI,EAAGA,EAAIg6L,EAAS/5L,OAAQD,GAAK,EACtC8M,EAAOktL,EAASh6L,IAAMg6L,EAASh6L,EAAI,GAEvC,OAAO8M,CACX,CAoBA,SAASqxxB,GAAoB1iC,EAAgB2iC,GACzC,UAAWnjC,KAAcmjC,EACjBA,EAAc/twB,eAAe4quB,KAW7BQ,EAV2B2iC,EAAcnjC,IACrBQ,EAAeR,GAY/C,CAoDA,SAASojC,GAAmB1lvB,GACxB,QAAK2lvB,GAAW3lvB,KAETrjC,MAAM2C,QAAQ0gC,MACdA,aAAez3C,MACdivB,OAAO4sC,YAAYpkB,EAC/B,CA6BA,SAAS2lvB,GAAWt0vB,GAChB,OAAa,OAANA,IAA4B,mBAANA,GAAiC,iBAANA,EAC5D,CAEA,SAASu0vB,GAAa/xwB,EAAGC,GACrB,MAAM+xwB,EAAsBH,GAAmB7xwB,GACzCiywB,EAAsBJ,GAAmB5xwB,GAC/C,OAAI+xwB,GAAuBC,EAnC/B,SAASC,GAAkBlywB,EAAGC,EAAG4hI,GAC7B,MAAMswoB,EAAYnywB,EAAE2D,OAAO4sC,YACrB6huB,EAAYnywB,EAAE0D,OAAO4sC,YAC3B,OAAa,CACT,MAAM8huB,GAAQF,EAAUrqxB,OAClBwqxB,GAAQF,EAAUtqxB,OACxB,GAAIuqxB,GAAM7huB,MAAQ8huB,GAAM9huB,KACpB,OAAO,EAGX,GAFI6huB,GAAM7huB,MAAQ8huB,GAAM9huB,OAEnBqxF,EAAWwwoB,GAAMn3xB,MAAOo3xB,GAAMp3xB,OAC/B,OAAO,EAEnB,CAuBeg3xB,CAAkBlywB,EAAGC,EAAG8xwB,MAK1BC,IAFahywB,GAAmB,iBAANA,GAA+B,mBAANA,GAEdiywB,IADxBhywB,GAAmB,iBAANA,GAA+B,mBAANA,IAK7CtlB,OAAOw9E,GAAGn4D,EAAGC,EAGhC,CAIA,SAASsywB,GAAcr/B,EAAOoC,EAAcp6vB,GACxC,OAAOg4vB,EAAMoC,GAAgBp6vB,CACjC,CAEA,SAASs3xB,GAAWt/B,EAAOoC,GAIvB,OAAOpC,EAAMoC,EACjB,CAcA,SAASm9B,GAAev/B,EAAOoC,EAAcp6vB,GAKzC,OAAIP,OAAOw9E,GADM+6qB,EAAMoC,GACCp6vB,KAkBpBg4vB,EAAMoC,GAAgBp6vB,GACf,EAEf,CAEA,SAASw3xB,GAAgBx/B,EAAOoC,EAAcq9B,EAAMC,GAChD,MAAMC,EAAYJ,GAAev/B,EAAOoC,EAAcq9B,GACtD,OAAOF,GAAev/B,EAAOoC,EAAe,EAAGs9B,IAASC,CAC5D,CAEA,SAASC,GAAgB5/B,EAAOoC,EAAcq9B,EAAMC,EAAMG,GACtD,MAAMF,GAAYH,GAAgBx/B,EAAOoC,EAAcq9B,EAAMC,GAC7D,OAAOH,GAAev/B,EAAOoC,EAAe,EAAGy9B,IAASF,EAC5D,CAEA,SAASG,GAAgB9/B,EAAOoC,EAAcq9B,EAAMC,EAAMG,EAAME,IAC5D,MAAMJ,GAAYH,GAAgBx/B,EAAOoC,EAAcq9B,EAAMC,GAC7D,OAAOF,GAAgBx/B,EAAOoC,EAAe,EAAGy9B,EAAME,KAASJ,EACnE,CAeA,SAASK,GAAY9gyB,EAAM8I,EAAO2pD,EAAW9pD,GACzC,MAAMm4vB,EAAQmB,KAQd,OANIo+B,GAAev/B,EADEsC,KACmBt6vB,KACtBo5vB,KAEd62B,GADc5zB,KACkBrE,EAAO9gwB,EAAM8I,EAAO2pD,EAAW9pD,IAG5Dm4xB,EACX,CAcA,SAASC,GAAejgC,EAAOvqvB,GAG3B,IAAIyqxB,GAAmB,EACnB99B,EAAeD,KACnB,QAAS7hwB,GAAI,EAAGA,GAAImV,EAAOlV,OAAQD,IAAK,EAEpC4/xB,EAAmBX,GAAev/B,EAAOoC,IAAgB3svB,EAAOnV,MAAO4/xB,EAG3E,GADA79B,GAAgBD,IACX89B,EACD,OAAOlW,GAGX,IAAI1hxB,EAAUmN,EAAO,GACrB,QAASnV,GAAI,EAAGA,GAAImV,EAAOlV,OAAQD,IAAK,EACpCgI,GAAW4tvB,GAAgBzgvB,EAAOnV,KAAMmV,EAAOnV,GAAI,GAEvD,OAAOgI,CACX,CAQA,SAAS63xB,GAAengC,EAAOpmkB,EAAQwmmB,EAAIxzP,GAEvC,OADkB2yP,GAAev/B,EAAOsC,KAAoB89B,GACzCxmmB,EAASs8jB,GAAgBkqC,GAAMxzP,EAASo9O,EAC/D,CAIA,SAASqW,GAAergC,EAAOpmkB,EAAQwmmB,EAAIn/xB,EAAIsiU,EAAIqpO,IAC/C,MACM+yP,GAAYH,GAAgBx/B,EADbmC,KACkCi+B,EAAI78d,GAC3Dg/b,UAAsB,GACfo9B,GAAY/lmB,EAASs8jB,GAAgBkqC,GAAMn/xB,EAAKi1vB,GAAgB3yb,GAAMqpO,GAASo9O,EAC1F,CAIA,SAASsW,GAAetgC,EAAOpmkB,EAAQwmmB,EAAIn/xB,EAAIsiU,EAAI9iT,GAAI+iT,GAAIopO,IACvD,MACM+yP,GAAYC,GAAgB5/B,EADbmC,KACkCi+B,EAAI78d,EAAIC,IAC/D++b,UAAsB,GACfo9B,GACH/lmB,EAASs8jB,GAAgBkqC,GAAMn/xB,EAAKi1vB,GAAgB3yb,GAAM9iT,GAAKy1uB,GAAgB1yb,IAAMopO,GACrFo9O,EACR,CAIA,SAASuW,GAAevgC,EAAOpmkB,EAAQwmmB,EAAIn/xB,EAAIsiU,EAAI9iT,GAAI+iT,GAAIrvQ,GAAIqsuB,GAAI5zP,IAC/D,MACM+yP,GAAYG,GAAgB9/B,EADbmC,KACkCi+B,EAAI78d,EAAIC,GAAIg9d,IACnEj+B,UAAsB,GACfo9B,GAAY/lmB,EAASs8jB,GAAgBkqC,GAAMn/xB,EAAKi1vB,GAAgB3yb,GAAM9iT,GACzEy1uB,GAAgB1yb,IAAMrvQ,GAAK+hsB,GAAgBsqC,IAAM5zP,GACjDo9O,EACR,CAIA,SAASyW,GAAezgC,EAAOpmkB,EAAQwmmB,EAAIn/xB,EAAIsiU,EAAI9iT,GAAI+iT,GAAIrvQ,GAAIqsuB,GAAI3gvB,GAAI6gvB,GAAI9zP,IACvE,MAAMw1N,GAAeD,KACrB,IAAIw9B,GAAYG,GAAgB9/B,EAAOoC,GAAcg+B,EAAI78d,EAAIC,GAAIg9d,IACjEb,UAAYJ,GAAev/B,EAAOoC,GAAe,EAAGs+B,KAAOf,GAC3Dp9B,GAAsB,GACfo9B,GAAY/lmB,EAASs8jB,GAAgBkqC,GAAMn/xB,EAAKi1vB,GAAgB3yb,GAAM9iT,GACzEy1uB,GAAgB1yb,IAAMrvQ,GAAK+hsB,GAAgBsqC,IAAM3gvB,GAAKq2sB,GAAgBwqC,IAAM9zP,GAC5Eo9O,EACR,CAIA,SAAS2W,GAAe3gC,EAAOpmkB,EAAQwmmB,EAAIn/xB,EAAIsiU,EAAI9iT,GAAI+iT,GAAIrvQ,GAAIqsuB,GAAI3gvB,GAAI6gvB,GAAIE,GAAIC,GAAIj0P,IAC/E,MAAMw1N,GAAeD,KACrB,IAAIw9B,GAAYG,GAAgB9/B,EAAOoC,GAAcg+B,EAAI78d,EAAIC,GAAIg9d,IACjEb,UAAYH,GAAgBx/B,EAAOoC,GAAe,EAAGs+B,GAAIG,KAAOlB,GAChEp9B,GAAsB,GACfo9B,GACH/lmB,EAASs8jB,GAAgBkqC,GAAMn/xB,EAAKi1vB,GAAgB3yb,GAAM9iT,GAAKy1uB,GAAgB1yb,IAAMrvQ,GACjF+hsB,GAAgBsqC,IAAM3gvB,GAAKq2sB,GAAgBwqC,IAAME,GAAK1qC,GAAgB2qC,IAAMj0P,GAChFo9O,EACR,CAIA,SAAS8W,GAAe9gC,EAAOpmkB,EAAQwmmB,EAAIn/xB,EAAIsiU,EAAI9iT,GAAI+iT,GAAIrvQ,GAAIqsuB,GAAI3gvB,GAAI6gvB,GAAIE,GAAIC,GAAIE,GAAIC,GAAIp0P,IACvF,MAAMw1N,GAAeD,KACrB,IAAIw9B,GAAYG,GAAgB9/B,EAAOoC,GAAcg+B,EAAI78d,EAAIC,GAAIg9d,IACjEb,UAAYC,GAAgB5/B,EAAOoC,GAAe,EAAGs+B,GAAIG,GAAIG,KAAOrB,GACpEp9B,GAAsB,GACfo9B,GAAY/lmB,EAASs8jB,GAAgBkqC,GAAMn/xB,EAAKi1vB,GAAgB3yb,GAAM9iT,GACzEy1uB,GAAgB1yb,IAAMrvQ,GAAK+hsB,GAAgBsqC,IAAM3gvB,GAAKq2sB,GAAgBwqC,IAAME,GAC5E1qC,GAAgB2qC,IAAME,GAAK7qC,GAAgB8qC,IAAMp0P,GACjDo9O,EACR,CAIA,SAASiX,GAAejhC,EAAOpmkB,EAAQwmmB,EAAIn/xB,EAAIsiU,EAAI9iT,GAAI+iT,GAAIrvQ,GAAIqsuB,GAAI3gvB,GAAI6gvB,GAAIE,GAAIC,GAAIE,GAAIC,GAAIE,GAAIC,GAAIv0P,IAC/F,MAAMw1N,GAAeD,KACrB,IAAIw9B,GAAYG,GAAgB9/B,EAAOoC,GAAcg+B,EAAI78d,EAAIC,GAAIg9d,IACjEb,UAAYG,GAAgB9/B,EAAOoC,GAAe,EAAGs+B,GAAIG,GAAIG,GAAIG,KAAOxB,GACxEp9B,GAAsB,GACfo9B,GAAY/lmB,EAASs8jB,GAAgBkqC,GAAMn/xB,EAAKi1vB,GAAgB3yb,GAAM9iT,GACzEy1uB,GAAgB1yb,IAAMrvQ,GAAK+hsB,GAAgBsqC,IAAM3gvB,GAAKq2sB,GAAgBwqC,IAAME,GAC5E1qC,GAAgB2qC,IAAME,GAAK7qC,GAAgB8qC,IAAME,GAAKhrC,GAAgBirC,IAAMv0P,GAC5Eo9O,EACR,CA0BA,SAASoX,GAAwBzhvB,EAAUi6I,EAAQwmmB,EAAIxzP,EAAQj7e,EAAW9pD,IACtE,MAAMm4vB,GAAQmB,KACRkgC,GAAoBlB,GAAengC,GAAOpmkB,EAAQwmmB,EAAIxzP,GAO5D,OANIy0P,KAAsBrX,IAEtBiO,GADc5zB,KACkBrE,GAAOrgtB,EAAU0hvB,GAAmB1vuB,EAAW9pD,IAI5Eu5xB,EACX,CA2BA,SAASE,GAAwB3hvB,EAAUi6I,EAAQwmmB,EAAIn/xB,EAAIsiU,EAAIqpO,GAAQj7e,GAAW9pD,IAC9E,MAAMm4vB,GAAQmB,KACRkgC,GAAoBhB,GAAergC,GAAOpmkB,EAAQwmmB,EAAIn/xB,EAAIsiU,EAAIqpO,IAOpE,OANIy0P,KAAsBrX,IAEtBiO,GADc5zB,KACkBrE,GAAOrgtB,EAAU0hvB,GAAmB1vuB,GAAW9pD,IAI5Ey5xB,EACX,CA8BA,SAASC,GAAwB5hvB,EAAUi6I,EAAQwmmB,EAAIn/xB,EAAIsiU,EAAI9iT,GAAI+iT,GAAIopO,GAAQj7e,GAAW9pD,IACtF,MAAMm4vB,GAAQmB,KACRkgC,GAAoBf,GAAetgC,GAAOpmkB,EAAQwmmB,EAAIn/xB,EAAIsiU,EAAI9iT,GAAI+iT,GAAIopO,IAO5E,OANIy0P,KAAsBrX,IAEtBiO,GADc5zB,KACkBrE,GAAOrgtB,EAAU0hvB,GAAmB1vuB,GAAW9pD,IAI5E05xB,EACX,CAgCA,SAASC,GAAwB7hvB,EAAUi6I,EAAQwmmB,EAAIn/xB,EAAIsiU,EAAI9iT,GAAI+iT,GAAIrvQ,GAAIqsuB,GAAI5zP,GAAQj7e,GAAW9pD,IAC9F,MAAMm4vB,GAAQmB,KACRkgC,GAAoBd,GAAevgC,GAAOpmkB,EAAQwmmB,EAAIn/xB,EAAIsiU,EAAI9iT,GAAI+iT,GAAIrvQ,GAAIqsuB,GAAI5zP,IAOpF,OANIy0P,KAAsBrX,IAEtBiO,GADc5zB,KACkBrE,GAAOrgtB,EAAU0hvB,GAAmB1vuB,GAAW9pD,IAI5E25xB,EACX,CAkCA,SAASC,GAAwB9hvB,EAAUi6I,EAAQwmmB,EAAIn/xB,EAAIsiU,EAAI9iT,GAAI+iT,GAAIrvQ,GAAIqsuB,GAAI3gvB,GAAI6gvB,GAAI9zP,GAAQj7e,GAAW9pD,IACtG,MAAMm4vB,GAAQmB,KACRkgC,GAAoBZ,GAAezgC,GAAOpmkB,EAAQwmmB,EAAIn/xB,EAAIsiU,EAAI9iT,GAAI+iT,GAAIrvQ,GAAIqsuB,GAAI3gvB,GAAI6gvB,GAAI9zP,IAO5F,OANIy0P,KAAsBrX,IAEtBiO,GADc5zB,KACkBrE,GAAOrgtB,EAAU0hvB,GAAmB1vuB,GAAW9pD,IAI5E45xB,EACX,CAoCA,SAASC,GAAwB/hvB,EAAUi6I,EAAQwmmB,EAAIn/xB,EAAIsiU,EAAI9iT,GAAI+iT,GAAIrvQ,GAAIqsuB,GAAI3gvB,GAAI6gvB,GAAIE,GAAIC,GAAIj0P,GAAQj7e,GAAW9pD,IAC9G,MAAMm4vB,GAAQmB,KACRkgC,GAAoBV,GAAe3gC,GAAOpmkB,EAAQwmmB,EAAIn/xB,EAAIsiU,EAAI9iT,GAAI+iT,GAAIrvQ,GAAIqsuB,GAAI3gvB,GAAI6gvB,GAAIE,GAAIC,GAAIj0P,IAOpG,OANIy0P,KAAsBrX,IAEtBiO,GADc5zB,KACkBrE,GAAOrgtB,EAAU0hvB,GAAmB1vuB,GAAW9pD,IAI5E65xB,EACX,CAsCA,SAASC,GAAwBhivB,EAAUi6I,EAAQwmmB,EAAIn/xB,EAAIsiU,EAAI9iT,GAAI+iT,GAAIrvQ,GAAIqsuB,GAAI3gvB,GAAI6gvB,GAAIE,GAAIC,GAAIE,GAAIC,GAAIp0P,GAAQj7e,GAAW9pD,IACtH,MAAMm4vB,GAAQmB,KACRkgC,GAAoBP,GAAe9gC,GAAOpmkB,EAAQwmmB,EAAIn/xB,EAAIsiU,EAAI9iT,GAAI+iT,GAAIrvQ,GAAIqsuB,GAAI3gvB,GAAI6gvB,GAAIE,GAAIC,GAAIE,GAAIC,GAAIp0P,IAO5G,OANIy0P,KAAsBrX,IAEtBiO,GADc5zB,KACkBrE,GAAOrgtB,EAAU0hvB,GAAmB1vuB,GAAW9pD,IAI5E85xB,EACX,CAwCA,SAASC,GAAwBjivB,EAAUi6I,EAAQwmmB,EAAIn/xB,EAAIsiU,EAAI9iT,GAAI+iT,GAAIrvQ,GAAIqsuB,GAAI3gvB,GAAI6gvB,GAAIE,GAAIC,GAAIE,GAAIC,GAAIE,GAAIC,GAAIv0P,GAAQj7e,GAAW9pD,IAC9H,MAAMm4vB,GAAQmB,KACRkgC,GAAoBJ,GAAejhC,GAAOpmkB,EAAQwmmB,EAAIn/xB,EAAIsiU,EAAI9iT,GAAI+iT,GAAIrvQ,GAAIqsuB,GAAI3gvB,GAAI6gvB,GAAIE,GAAIC,GAAIE,GAAIC,GAAIE,GAAIC,GAAIv0P,IAOpH,OANIy0P,KAAsBrX,IAEtBiO,GADc5zB,KACkBrE,GAAOrgtB,EAAU0hvB,GAAmB1vuB,GAAW9pD,IAI5E+5xB,EACX,CA2BA,SAASC,GAAwBlivB,EAAUlqC,EAAQk8C,EAAW9pD,GAC1D,MAAMm4vB,EAAQmB,KACR2gC,GAAe7B,GAAejgC,EAAOvqvB,GAY3C,OAXIqsxB,KAAiB9X,IAEjBiO,GADc5zB,KACkBrE,EAAOrgtB,EAAUmivB,GAAcnwuB,EAAW9pD,GASvEg6xB,EACX,CASA,SAAS35uB,GAAcj+C,GACnB,MAAMwuJ,EAAOu9mB,GAA2B/rwB,GACxC4uxB,GAAsBpgoB,EAAKgkmB,IAAQhkmB,EAAMxuJ,EAC7C,CAoCA,SAASwic,GAAWt/b,EAAOukxB,EAAYjrvB,EAAO+3O,EAAMzhR,EAASglyB,GAAYC,GAAgBhO,IACrF,MAAMh0B,GAAQmB,KACR37jB,GAAQ47jB,KACR6gC,GAAgB90xB,EAAQ0wvB,EACxBS,GAAQ94jB,GAAMuikB,gBAtCxB,SAASm6B,GAAwB/0xB,EAAOq4L,EAAOw6jB,EAAO0xB,EAAYjrvB,EAAO+3O,GAAMzhR,GAASglyB,GAAYC,IAGhG,MAAMG,GAAc38lB,EAAMi5E,OAEpB6/e,GAAQ+xB,GAAiB7qlB,EAAOr4L,EAAO,EAA6BpQ,IAAW,KAAMujwB,GAAY6hC,GAAaJ,KACpHlM,GAAkBrwlB,EAAOw6jB,EAAO1B,GAAOgC,GAAY6hC,GAAaH,KAChEt9B,GAAuBl/jB,EAAO84jB,IAC9B,MAAMk0B,GAAgBl0B,GAAM94jB,MAAQ0ulB,GAAY,EAA4B51B,GAAOozB,EAAYjrvB,EAAO+3O,GAAMh5E,EAAMgvlB,kBAAmBhvlB,EAAMivlB,aAAc,KAAMjvlB,EAAM60jB,QAAS8nC,IAC9K,OAAsB,OAAlB38lB,EAAM8ulB,UACN9ulB,EAAM8ulB,QAAQ51gB,SAASl5E,EAAO84jB,IAC9Bk0B,GAAc8B,QAAU9ulB,EAAM8ulB,QAAQ9B,cAAcl0B,KAEjDA,EACX,CAwB0C4jC,CAAwBD,GAAez8lB,GAAOw6jB,GAAO0xB,EAAYjrvB,EAAO+3O,EAAMzhR,EAASglyB,GAAYC,IACrIx8lB,GAAMh+L,KAAKy6xB,IACfpgC,GAAgBvD,IAAO,GACvB,MAAMxjoB,GAAUkloB,GAAM7C,IAAUp1vB,cAAwC,IACxEvD,GAAYghM,GAAOw6jB,GAAOlloB,GAASwjoB,IACnCwX,GAAgBh7oB,GAASkloB,IACzB2zB,GAAc3zB,GAAOA,GAAMiiC,IAAiB3J,GAAiBx9pB,GAASkloB,GAAOlloB,GAASwjoB,KAClFG,GAAgBH,KAChB+0B,GAA0B7tlB,GAAOw6jB,GAAO1B,IAEtB,MAAlB0jC,IACAlO,GAAyB9zB,GAAO1B,GAAO01B,GAE/C,CAGA,SAASprvB,GAAM48J,EAAOw6jB,EAAO7yvB,EAAOnF,GAG5BmF,GAASq4L,EAAMh+L,KAAKjH,SACpBilM,EAAMh+L,KAAK2F,GAAS,KACpBq4L,EAAM0ikB,UAAU/6vB,GAAS,MAE7B6yvB,EAAM7yvB,GAASnF,CACnB,CAWA,SAASo6xB,GAAYj1xB,GAEjB,OAAOw0Q,GA32WX,SAAS0ghB,KAGL,OAFqBzhC,GAAiBC,OAAOU,YAGjD,CAs2WyB8gC,GACKxkC,EAAgB1wvB,EAC9C,CAoBA,SAASm1xB,GAAWh3F,EAAUtjsB,EAAO2pD,GACjC,MAAMqusB,EAAQmB,KAQd,OANIo+B,GAAev/B,EADEsC,KACmBt6vB,IAGpCotxB,GAFch0B,KACAiD,KACwBrE,EAAO10D,EAAUtjsB,EAAOg4vB,EAAM7C,IAAWxrsB,GAAW,GAGvF2wuB,EACX,CAKA,SAASC,GAAsC/8lB,EAAO84jB,EAAO0B,EAAOh4vB,EAAOw6xB,GACvE,MACM9jtB,GAAW8jtB,EAAe,QAAU,QAE1ChN,GAAqBhwlB,EAAOw6jB,EAHb1B,EAAMj4jB,OAGqB3nH,IAAWA,GAAU12E,EACnE,CAmCA,SAASg6b,GAAe70b,EAAOjO,EAAM6iyB,EAAYC,GAC7C,MAAMhiC,EAAQmB,KACR37jB,GAAQ47jB,KACR6gC,GAAgBpkC,EAAgB1wvB,EAIhCzG,GAAWs5vB,EAAM7C,IACjBmB,GAAQ94jB,GAAMuikB,gBAzCxB,SAAS06B,GAA4Bt1xB,EAAOq4L,EAAOw6jB,EAAO9gwB,EAAM6iyB,EAAYC,IAGxE,MAAMG,GAAc38lB,EAAMi5E,OAEpB6/e,GAAQ+xB,GAAiB7qlB,EAAOr4L,EAAO,EAA2BjO,EAD1DohwB,GAAY6hC,GAAaJ,IAEvClM,UAAkBrwlB,EAAOw6jB,EAAO1B,GAAOgC,GAAY6hC,GAAaH,KAC5C,OAAhB1jC,GAAMrosB,OACNmjuB,GAAqB96B,GAAOA,GAAMrosB,OAAO,GAEnB,OAAtBqosB,GAAM+d,aACN+c,GAAqB96B,GAAOA,GAAM+d,aAAa,GAE7B,OAAlB72kB,EAAM8ulB,SACN9ulB,EAAM8ulB,QAAQoO,aAAal9lB,EAAO84jB,IAE/BA,EACX,CAyBQmkC,CAA4BR,GAAez8lB,GAAOw6jB,EAAO9gwB,EAAM6iyB,EAAYC,GAC3Ex8lB,GAAMh+L,KAAKy6xB,IACT17B,GAASvG,EAAMiiC,IAAiBjqB,GAAkBtxwB,GAAUxH,EA9lWtE,SAASyjyB,KACL,OAAO/hC,GAAiBC,OAAOiD,gBACnC,CA4lW4E6+B,IAClEC,GAAgBnkC,GAAgBH,IAItCuD,UAAgBvD,IAAO,GACvB8d,GAAsB11wB,GAAU6/vB,GAAQjI,IACe,KAApC,GAAdA,GAAMh1vB,QAGP9E,GAAYghM,GAAOw6jB,EAAOuG,GAAQjI,IAKP,IA1kXnC,SAASukC,KACL,OAAOjiC,GAAiBC,OAAOgD,iBACnC,CAwkXQg/B,IACA/sB,GAAgBvP,GAAQvG,GAxkXhC,SAAS8iC,KACLliC,GAAiBC,OAAOgD,mBAC5B,CAwkXIi/B,GACIF,KACAvP,GAA0B7tlB,GAAOw6jB,EAAO1B,IACxC80B,GAAsB5tlB,GAAO84jB,GAAO0B,IAEjB,OAAnBgiC,GACAlO,GAAyB9zB,EAAO1B,IAE7Bt8T,EACX,CAOA,SAASE,KACL,IAAIw/T,EAAeD,KAEfK,KACAC,MAIAL,EAAeA,EAAav5vB,OAC5B05vB,GAAgBH,GAAc,IAElC,MAAMpD,EAAQoD,GAlmXlB,SAASqhC,KACLniC,GAAiBC,OAAOgD,mBAC5B,CAkmXIk/B,GACA,MAAMv9lB,EAAQ47jB,KACd,OAAI57jB,EAAMuikB,kBACNrD,GAAuBl/jB,EAAOk8jB,GAC1BrD,GAAmBqD,IACnBl8jB,EAAM8ulB,QAAQ0O,WAAWthC,IAGD,MAA5BpD,EAAM0yB,oBA7wVd,SAASiS,GAAc3kC,GACnB,OAA4D,IAAtC,EAAdA,EAAMh1vB,MAClB,CA2wV4C25xB,CAAc3kC,IAClDikC,GAAsC/8lB,EAAO84jB,EAAO6C,KAAY7C,EAAM0yB,oBAAoB,GAE/D,MAA3B1yB,EAAMwyB,mBAxvVd,SAASoS,GAAc5kC,GACnB,OAA6D,IAAvC,GAAdA,EAAMh1vB,MAClB,CAsvV2C45xB,CAAc5kC,IACjDikC,GAAsC/8lB,EAAO84jB,EAAO6C,KAAY7C,EAAMwyB,mBAAmB,GAEtF5uV,EACX,CAYA,SAASgB,GAAU/1b,EAAOjO,EAAM6iyB,EAAYC,GACxChgW,UAAe70b,EAAOjO,EAAM6iyB,EAAYC,GACxC9/V,KACOgB,EACX,CAkCA,SAASigW,GAAwBh2xB,EAAO40xB,EAAYC,GAChD,MAAMhiC,EAAQmB,KACR37jB,EAAQ47jB,KACR6gC,GAAgB90xB,EAAQ0wvB,EAIxBS,GAAQ94jB,EAAMuikB,gBAvCxB,SAASq7B,GAAqCj2xB,EAAOq4L,EAAOw6jB,EAAO+hC,EAAYC,GAE3E,MAAMG,GAAc38lB,EAAMi5E,OACpBxoN,GAAQqqsB,GAAY6hC,GAAaJ,GACjCzjC,GAAQ+xB,GAAiB7qlB,EAAOr4L,EAAO,EAAoC,eAAgB8oD,IAOjG4/tB,OAJc,OAAV5/tB,IACAmjuB,GAAqB96B,GAAOrosB,IAAO,GAGvC4/tB,GAAkBrwlB,EAAOw6jB,EAAO1B,GADdgC,GAAY6hC,GAAaH,IAErB,OAAlBx8lB,EAAM8ulB,SACN9ulB,EAAM8ulB,QAAQoO,aAAal9lB,EAAO84jB,IAE/BA,EACX,CAwBQ8kC,CAAqCnB,GAAez8lB,EAAOw6jB,EAAO+hC,EAAYC,GAC9Ex8lB,EAAMh+L,KAAKy6xB,IACfpgC,GAAgBvD,IAAO,GAEvB,MAAMiI,GAASvG,EAAMiiC,IACjBjiC,EAAM7C,IAAUp1vB,cAA2C,IAC/DvD,UAAYghM,EAAOw6jB,EAAOuG,GAAQjI,IAClCwX,GAAgBvP,GAAQvG,GACpBvB,GAAgBH,MAChB+0B,GAA0B7tlB,EAAOw6jB,EAAO1B,IACxC80B,GAAsB5tlB,EAAO84jB,GAAO0B,IAElB,MAAlBgiC,GACAlO,GAAyB9zB,EAAO1B,IAE7B6kC,EACX,CAOA,SAASE,KACL,IAAI3hC,EAAeD,KACnB,MAAMj8jB,EAAQ47jB,KACd,OAAIU,KACAC,MAIAL,EAAeA,EAAav5vB,OAC5B05vB,GAAgBH,GAAc,IAG9Bl8jB,EAAMuikB,kBACNrD,GAAuBl/jB,EAAOk8jB,GAC1BrD,GAAmBqD,IACnBl8jB,EAAM8ulB,QAAQ0O,WAAWthC,IAG1B2hC,EACX,CAYA,SAASC,GAAmBn2xB,EAAO40xB,EAAYC,GAC3CmB,UAAwBh2xB,EAAO40xB,EAAYC,GAC3CqB,KACOC,EACX,CAWA,SAASC,KACL,OAAOpiC,IACX,CAKA,SAASp2B,GAAU9xrB,GAGf,QAASA,GAA2B,mBAAbA,EAAIh5C,IAC/B,CAIA,SAASujyB,GAAevqvB,GACpB,QAASA,GAAgC,mBAAlBA,EAAI5kC,SAC/B,CAUA,MAAMovxB,GAAeD,GAiBrB,SAASz0V,GAAW/sc,EAAW0hyB,EAAYC,EAAYC,GACnD,MAAM5jC,EAAQmB,KACR37jB,GAAQ47jB,KACR9C,GAAQmD,KACdoiC,UAAiBr+lB,GAAOw6jB,EAAOA,EAAM7C,IAAWmB,GAAOt8vB,EAAW0hyB,EAAYE,GACvE70V,EACX,CAsBA,SAAS+0V,GAAwB9hyB,EAAW0hyB,GACxC,MAAMplC,EAAQmD,KACRzB,EAAQmB,KACR37jB,EAAQ47jB,KAGdyiC,UAAiBr+lB,EAAOw6jB,EADPg5B,GADEl2B,GAAuBt9jB,EAAMh+L,MACG82vB,EAAO0B,GACjB1B,EAAOt8vB,EAAW0hyB,GACpDI,EACX,CA+BA,SAASD,GAAiBr+lB,EAAOw6jB,EAAOt5vB,EAAU43vB,EAAOt8vB,EAAW0hyB,GAAYE,IAC5E,MAAMG,GAAuBtlC,GAAgBH,GAEvCgb,GADkB9zkB,EAAMuikB,iBACM8sB,GAAwBrvlB,GACtDxrL,GAAUgmvB,EAAMhD,IAIhBwc,GAAWob,GAAwB50B,GAEzC,IAAIgkC,IAAiB,EAKrB,GAAkB,EAAb1lC,EAAM73vB,MAAsCm9xB,GAAqB,CAClE,MAAMr9B,GAAStG,GAAiB3B,EAAO0B,GACjCniwB,GAAS+lyB,GAAsBA,GAAoBr9B,IAAUA,GAC7D09B,GAAgBzqB,GAASj5wB,OACzB2jyB,GAAoBN,GACrB/3B,IAAW+3B,GAAoB9jC,GAAY+L,GAAOvN,EAAMnxvB,SACzDmxvB,EAAMnxvB,MAaV,IAAIg3xB,GAAmB,KAUvB,IAHKP,IAAuBG,KACxBI,GAnEZ,SAASC,GAAqB5+lB,EAAOw6jB,EAAOh+vB,EAAWqiyB,GACnD,MAAM/qB,EAAW9zkB,EAAM+zkB,QACvB,GAAgB,MAAZD,EACA,QAASh5wB,GAAI,EAAGA,GAAIg5wB,EAAS/4wB,OAAS,EAAGD,IAAK,EAAG,CAC7C,MAAMgkyB,GAAmBhrB,EAASh5wB,IAClC,GAAIgkyB,KAAqBtiyB,GAAas3wB,EAASh5wB,GAAI,KAAO+jyB,EAAU,CAIhE,MAAM7qB,GAAWxZ,EAAMjD,IACjBwnC,GAAwBjrB,EAASh5wB,GAAI,GAC3C,OAAOk5wB,GAASj5wB,OAASgkyB,GAAwB/qB,GAAS+qB,IAAyB,KAOvD,iBAArBD,KACPhkyB,IAAK,GAIjB,OAAO,IACX,CA2C+B8jyB,CAAqB5+lB,EAAOw6jB,EAAOh+vB,EAAWs8vB,EAAMnxvB,QAElD,OAArBg3xB,IAKuBA,GAAiBK,sBAAwBL,IACjDM,qBAAuBf,GACtCS,GAAiBK,qBAAuBd,GACxCM,IAAiB,MAEhB,CACDN,GAAagB,GAAapmC,EAAO0B,EAAOhmvB,GAAS0pxB,IAAY,GAC7D,MAAM/O,GAAYjuxB,EAASmD,OAAOhM,GAAQmE,EAAW0hyB,IAErDlqB,GAAS90wB,KAAKg/xB,GAAY/O,IAC1Brb,IAAYA,GAAS50wB,KAAK1C,EAAWkiyB,GAAmBD,GAAeA,GAAgB,EAAC,OAM5FP,GAAagB,GAAapmC,EAAO0B,EAAOhmvB,GAAS0pxB,IAAY,GAGjE,MAAMzthB,GAAUqof,EAAMrof,QACtB,IAAI54L,GACJ,GAAI2mtB,IAA8B,OAAZ/thB,KAAqB54L,GAAQ44L,GAAQj0Q,IAAa,CACpE,MAAM2iyB,GAActntB,GAAM98E,OAC1B,GAAIokyB,GACA,QAASrkyB,GAAI,EAAGA,GAAIqkyB,GAAarkyB,IAAK,EAAG,CACrC,MAQMuqB,GALoBm1uB,EAHZ3irB,GAAM/8E,KAEC+8E,GAAM/8E,GAAI,IAMH+T,UAAUqvxB,IAChC7qxB,GAAM2gwB,GAASj5wB,OACrBi5wB,GAAS90wB,KAAKg/xB,GAAY74wB,IAC1ByuvB,IAAYA,GAAS50wB,KAAK1C,EAAWs8vB,EAAMnxvB,MAAO0L,KAAOA,GAAM,GAAE,EAIjF,CACA,SAAS+rxB,GAAiC5kC,EAAOhmvB,EAAS0pxB,EAAYz/xB,GAClE,IACIy7vB,UAAS,EAAmC1lvB,EAAS0pxB,IAE5B,IAAlBA,EAAWz/xB,EAQtB,CAPA,MACO0Q,GACHihI,UAAYoqnB,EAAOrrvB,IACZ,CACX,SAEI+qvB,GAAS,EAAiC1lvB,EAAS0pxB,EACvD,CACJ,CAWA,SAASgB,GAAapmC,EAAO0B,EAAOhmvB,EAAS0pxB,EAAYmB,GAGrD,OAAO,SAASC,GAA0C7gyB,IAGtD,GAAIA,KAAMklK,SACN,OAAOu6nB,EAKX9K,GADkBt6B,EAAME,iBAAkB,EAAK2B,GAAyB7B,EAAMnxvB,MAAO6yvB,GAASA,GAE9F,IAAI5yvB,GAASw3xB,GAAiC5kC,EAAOhmvB,EAAS0pxB,EAAYz/xB,IAGtE8gyB,GAAiBD,GAA0CL,qBAC/D,KAAOM,IAEH33xB,GAASw3xB,GAAiC5kC,EAAOhmvB,EAAS+qxB,GAAgB9gyB,KAAMmJ,GAChF23xB,GAAiBA,GAAeN,qBAEpC,OAAII,IAAqC,IAAXz3xB,KAC1BnJ,GAAE6B,iBAEF7B,GAAE8B,aAAc,GAEbqH,EACX,CACJ,CAcA,SAAS43xB,GAAcpkpB,EAAQ,GAC3B,OAtnXJ,SAASqkpB,GAAgBrkpB,GAGrB,OAFqBggnB,GAAiBC,OAAOU,aAIjD,SAAS2jC,GAAYC,EAAc1/B,GAC/B,KAAO0/B,EAAe,GAGlB1/B,EAAcA,EAAYlI,IAC1B4nC,IAEJ,OAAO1/B,CACX,CAXQy/B,CAAYtkpB,EAAOggnB,GAAiBC,OAAOU,eAC3BvE,GACxB,CAknXWioC,CAAgBrkpB,EAC3B,CAUA,SAASwkpB,GAA4B9mC,EAAO+mC,GACxC,IAAIC,EAAyB,KAC7B,MAAMC,EAzlKV,SAASC,GAAsBlnC,GAC3B,MAAMqqB,EAAYrqB,EAAMrosB,MACxB,GAAiB,MAAb0ytB,EAAmB,CACnB,MAAM8c,EAAqB9c,EAAU37wB,QAAQ,GAG7C,KAA0B,EAArBy4xB,GACD,OAAO9c,EAAU8c,EAAqB,EAAC,CAG/C,OAAO,IACX,CA8kK+BD,CAAsBlnC,GACjD,QAASh+vB,EAAI,EAAGA,EAAI+kyB,EAAgB9kyB,OAAQD,IAAK,CAC7C,MAAM8/vB,GAAYilC,EAAgB/kyB,GAGlC,GAAkB,MAAd8/vB,IAMJ,GAA2B,OAAvBmlC,EACA/b,GAA2BlrB,EAAO8B,IAAkC,GACpEqpB,GAAyB8b,EAAoBnlC,IAC7C,OAAO9/vB,OARPglyB,EAAyBhlyB,CAQlBA,CAGf,OAAOglyB,CACX,CA0BA,SAASvjW,GAAgBsjW,GACrB,MAAMK,EAAgBvkC,KAAW3D,IAA4BV,IAC7D,IAAK4oC,EAActqB,WAAY,CAG3B,MACMuqB,EAAkBD,EAActqB,WAClCjM,GAFuBk2B,EAAkBA,EAAgB9kyB,OAAS,EAErC,MAC3BqlyB,EAAQD,EAAgB9jyB,QAC9B,IAAIgkyB,GAAiBH,EAAcpvwB,MACnC,KAA0B,OAAnBuvwB,IAAyB,CAC5B,MAAMC,GAAYT,EAAkBD,GAA4BS,GAAgBR,GAAmB,EACjF,OAAdS,KACIF,EAAME,IACNF,EAAME,IAAW/pB,eAAiB8pB,GAGlCF,EAAgBG,IAAaD,GAEjCD,EAAME,IAAaD,IAEvBA,GAAiBA,GAAejxxB,MAG5C,CAYA,SAASqtb,GAAa6jP,EAAWigH,EAAgB,EAAG9vuB,GAChD,MAAM+psB,EAAQmB,KACR37jB,EAAQ47jB,KACR4a,GAAkBqU,GAAiB7qlB,EAAOq4jB,EAAgB/3E,EAAW,GAA+B,KAAM7vnB,GAAS,MAEtF,OAA/B+ltB,GAAgBZ,aAChBY,GAAgBZ,WAAa2qB,GAEjChkC,KACiE,KAApC,GAAxBia,GAAgB1ywB,QAnpPzB,SAAS08xB,GAAgBxgmB,EAAOw6jB,EAAOgc,GAKnCF,GAJiB9b,EAAM7C,IAIY,EAAoC6C,EAAOgc,EAH1DnC,GAAkBr0kB,EAAOw2kB,EAAiBhc,GAE7Cia,GADG+B,EAAgB7zwB,QAAU63vB,EAAMlD,IACEkf,EAAiBhc,GAE3E,CA+oPQgmC,CAAgBxgmB,EAAOw6jB,EAAOgc,GAEtC,CA+BA,SAASiqB,GAAsB36F,EAAU80F,EAAIzuuB,GACzCu0uB,UAAuB56F,EAAU,GAAI80F,EAAI,GAAIzuuB,GACtCs0uB,EACX,CA6BA,SAASC,GAAuB56F,EAAU1xgB,EAAQwmmB,EAAIxzP,EAAQj7e,GAC1D,MAAMqusB,GAAQmB,KACRkgC,GAAoBlB,GAAengC,GAAOpmkB,EAAQwmmB,EAAIxzP,GAQ5D,OAPIy0P,KAAsBrX,IAGtBoL,GAFch0B,KACAiD,KACwBrE,GAAO10D,EAAU+1F,GAAmBrhC,GAAM7C,IAAWxrsB,GAAW,GAInGu0uB,EACX,CA+BA,SAASC,GAAuB76F,EAAU1xgB,EAAQwmmB,EAAIn/xB,EAAIsiU,EAAIqpO,GAAQj7e,IAClE,MAAMqusB,GAAQmB,KACRkgC,GAAoBhB,GAAergC,GAAOpmkB,EAAQwmmB,EAAIn/xB,EAAIsiU,EAAIqpO,IAQpE,OAPIy0P,KAAsBrX,IAGtBoL,GAFch0B,KACAiD,KACwBrE,GAAO10D,EAAU+1F,GAAmBrhC,GAAM7C,IAAWxrsB,IAAW,GAInGw0uB,EACX,CAkCA,SAASC,GAAuB96F,EAAU1xgB,EAAQwmmB,EAAIn/xB,EAAIsiU,EAAI9iT,GAAI+iT,GAAIopO,GAAQj7e,IAC1E,MAAMqusB,GAAQmB,KACRkgC,GAAoBf,GAAetgC,GAAOpmkB,EAAQwmmB,EAAIn/xB,EAAIsiU,EAAI9iT,GAAI+iT,GAAIopO,IAQ5E,OAPIy0P,KAAsBrX,IAGtBoL,GAFch0B,KACAiD,KACwBrE,GAAO10D,EAAU+1F,GAAmBrhC,GAAM7C,IAAWxrsB,IAAW,GAInGy0uB,EACX,CAoCA,SAASC,GAAuB/6F,EAAU1xgB,EAAQwmmB,EAAIn/xB,EAAIsiU,EAAI9iT,GAAI+iT,GAAIrvQ,GAAIqsuB,GAAI5zP,GAAQj7e,IAClF,MAAMqusB,GAAQmB,KACRkgC,GAAoBd,GAAevgC,GAAOpmkB,EAAQwmmB,EAAIn/xB,EAAIsiU,EAAI9iT,GAAI+iT,GAAIrvQ,GAAIqsuB,GAAI5zP,IAQpF,OAPIy0P,KAAsBrX,IAGtBoL,GAFch0B,KACAiD,KACwBrE,GAAO10D,EAAU+1F,GAAmBrhC,GAAM7C,IAAWxrsB,IAAW,GAInG00uB,EACX,CAsCA,SAASC,GAAuBh7F,EAAU1xgB,EAAQwmmB,EAAIn/xB,EAAIsiU,EAAI9iT,GAAI+iT,GAAIrvQ,GAAIqsuB,GAAI3gvB,GAAI6gvB,GAAI9zP,GAAQj7e,IAC1F,MAAMqusB,GAAQmB,KACRkgC,GAAoBZ,GAAezgC,GAAOpmkB,EAAQwmmB,EAAIn/xB,EAAIsiU,EAAI9iT,GAAI+iT,GAAIrvQ,GAAIqsuB,GAAI3gvB,GAAI6gvB,GAAI9zP,IAQ5F,OAPIy0P,KAAsBrX,IAGtBoL,GAFch0B,KACAiD,KACwBrE,GAAO10D,EAAU+1F,GAAmBrhC,GAAM7C,IAAWxrsB,IAAW,GAInG20uB,EACX,CAwCA,SAASC,GAAuBj7F,EAAU1xgB,EAAQwmmB,EAAIn/xB,EAAIsiU,EAAI9iT,GAAI+iT,GAAIrvQ,GAAIqsuB,GAAI3gvB,GAAI6gvB,GAAIE,GAAIC,GAAIj0P,GAAQj7e,IAClG,MAAMqusB,GAAQmB,KACRkgC,GAAoBV,GAAe3gC,GAAOpmkB,EAAQwmmB,EAAIn/xB,EAAIsiU,EAAI9iT,GAAI+iT,GAAIrvQ,GAAIqsuB,GAAI3gvB,GAAI6gvB,GAAIE,GAAIC,GAAIj0P,IAQpG,OAPIy0P,KAAsBrX,IAGtBoL,GAFch0B,KACAiD,KACwBrE,GAAO10D,EAAU+1F,GAAmBrhC,GAAM7C,IAAWxrsB,IAAW,GAInG40uB,EACX,CA0CA,SAASC,GAAuBl7F,EAAU1xgB,EAAQwmmB,EAAIn/xB,EAAIsiU,EAAI9iT,GAAI+iT,GAAIrvQ,GAAIqsuB,GAAI3gvB,GAAI6gvB,GAAIE,GAAIC,GAAIE,GAAIC,GAAIp0P,GAAQj7e,IAC1G,MAAMqusB,GAAQmB,KACRkgC,GAAoBP,GAAe9gC,GAAOpmkB,EAAQwmmB,EAAIn/xB,EAAIsiU,EAAI9iT,GAAI+iT,GAAIrvQ,GAAIqsuB,GAAI3gvB,GAAI6gvB,GAAIE,GAAIC,GAAIE,GAAIC,GAAIp0P,IAQ5G,OAPIy0P,KAAsBrX,IAGtBoL,GAFch0B,KACAiD,KACwBrE,GAAO10D,EAAU+1F,GAAmBrhC,GAAM7C,IAAWxrsB,IAAW,GAInG60uB,EACX,CA4CA,SAASC,GAAuBn7F,EAAU1xgB,EAAQwmmB,EAAIn/xB,EAAIsiU,EAAI9iT,GAAI+iT,GAAIrvQ,GAAIqsuB,GAAI3gvB,GAAI6gvB,GAAIE,GAAIC,GAAIE,GAAIC,GAAIE,GAAIC,GAAIv0P,GAAQj7e,IAClH,MAAMqusB,GAAQmB,KACRkgC,GAAoBJ,GAAejhC,GAAOpmkB,EAAQwmmB,EAAIn/xB,EAAIsiU,EAAI9iT,GAAI+iT,GAAIrvQ,GAAIqsuB,GAAI3gvB,GAAI6gvB,GAAIE,GAAIC,GAAIE,GAAIC,GAAIE,GAAIC,GAAIv0P,IAQpH,OAPIy0P,KAAsBrX,IAGtBoL,GAFch0B,KACAiD,KACwBrE,GAAO10D,EAAU+1F,GAAmBrhC,GAAM7C,IAAWxrsB,IAAW,GAInG80uB,EACX,CA+BA,SAASC,GAAuBp7F,EAAU71rB,EAAQk8C,GAC9C,MAAMqusB,EAAQmB,KACRkgC,EAAoBpB,GAAejgC,EAAOvqvB,GAahD,OAZI4rxB,IAAsBrX,IAGtBoL,GAFch0B,KACAiD,KACwBrE,EAAO10D,EAAU+1F,EAAmBrhC,EAAM7C,IAAWxrsB,GAAW,GASnG+0uB,EACX,CAEA,SAASC,GAAgBvksB,EAAMxtF,GAG3B,OAAQwtF,GAAQ,GAAmCxtF,GAAQ,CAC/D,CACA,SAASgyxB,GAAqBC,GAE1B,OAAQA,GAAiB,GAAoC,KACjE,CAYA,SAASC,GAA8BD,GAEnC,OAAwB,EAAhBA,CACZ,CACA,SAASE,GAAqBF,GAE1B,OAAwB,OAAhBA,IAAwD,CACpE,CACA,SAASG,GAAqBH,EAAejyxB,GAGzC,OAAyB,OAAhBiyxB,EACLjyxB,GAAQ,CAChB,CAMA,SAASqyxB,GAA8BJ,GAEnC,OAAwB,EAAhBA,CACZ,CAoVA,SAASK,GAAenkC,EAAOokC,EAAah6xB,EAAOi6xB,EAAWC,GAC1D,MAAMC,GAAkBvkC,EAAM51vB,EAAQ,GAChCo6xB,GAAwB,OAAhBJ,EACd,IAAI5rpB,GAAS6rpB,EAAYR,GAAqBU,IAAmBP,GAAqBO,IAClFE,IAAiB,EAMrB,KAAkB,IAAXjspB,MAAoC,IAAnBispB,IAA4BD,KAAQ,CAExD,MACME,GAAsB1kC,EAAMxnnB,GAAS,GACvCmspB,GAF0B3kC,EAAMxnnB,IAEM4rpB,KACtCK,IAAiB,EACjBzkC,EAAMxnnB,GAAS,GAAK6rpB,EAAYH,GAA8BQ,IAC1DX,GAA8BW,KAEtClspB,GAAS6rpB,EAAYR,GAAqBa,IACtCV,GAAqBU,GAAmB,CAE5CD,KAEAzkC,EAAM51vB,EAAQ,GAAKi6xB,EAAYN,GAA8BQ,IACzDL,GAA8BK,IAE1C,CAmBA,SAASI,GAAeC,EAAmBR,GAGvC,OAA0B,OAAtBQ,GAEe,MAAfR,IAECvxxB,MAAM2C,QAAQovxB,GAAqBA,EAAkB,GAAKA,KACvDR,MAICvxxB,MAAM2C,QAAQovxB,IAA6C,iBAAhBR,IAGzC73B,GAAqBq4B,EAAmBR,IAC3C,CAGZ,CAGA,MAAMS,GAAc,CAChBC,QAAS,EACTj7xB,IAAK,EACLk7xB,OAAQ,EACR9/xB,MAAO,EACP+/xB,SAAU,GAMd,SAASC,GAAiBxoxB,GACtB,OAAOA,EAAK+R,UAAUq2wB,GAAYh7xB,IAAKg7xB,GAAYE,OACvD,CAKA,SAASG,GAAmBzoxB,GACxB,OAAOA,EAAK+R,UAAUq2wB,GAAY5/xB,MAAO4/xB,GAAYG,SACzD,CAiCA,SAASG,GAAmB1oxB,EAAMrS,GAC9B,MAAM7F,EAAMsgyB,GAAYC,QACxB,OAAIvgyB,IAAQ6F,GACD,GAEXA,EAAQy6xB,GAAYE,OAmFxB,SAASK,GAAkB3oxB,EAAMmc,EAAYo2K,GACzC,KAAOp2K,EAAao2K,GAAYvyL,EAAK68H,WAAW1gH,GAAc,IAC1DA,IAEJ,OAAOA,CACX,CAxFiCwswB,CAAkB3oxB,EAAMooxB,GAAYh7xB,IAAMO,EAAO7F,GACvE8gyB,GAAkB5oxB,EAAMrS,EAAO7F,GAC1C,CAkCA,SAAS+gyB,GAAe7oxB,EAAMmc,GAC1B,MAAMr0B,EAAMsgyB,GAAYC,QACxB,IAAI16xB,EAAQy6xB,GAAYh7xB,IAAMw7xB,GAAkB5oxB,EAAMmc,EAAYr0B,GAClE,OAAIA,IAAQ6F,GAED,GAEXA,EAAQy6xB,GAAYE,OAsDxB,SAASQ,GAAgB9oxB,EAAMmc,EAAYo2K,GACvC,IAAIn3D,EACJ,KAAOj/G,EAAao2K,IACwB,MAAtCn3D,EAAKp7H,EAAK68H,WAAW1gH,KAAkD,KAAPi/G,KACvD,GAALA,IAAuC,MAA6B,GAALA,IAAuC,IACvGA,GAAM,IAA0BA,GAAM,KAC3Cj/G,IAEJ,OAAOA,CACX,CA/DiC2swB,CAAgB9oxB,EAAMrS,EAAO7F,GAC1D6F,EAAQo7xB,GAAiB/oxB,EAAMrS,EAAO7F,GACtC6F,EAAQy6xB,GAAY5/xB,MAAQogyB,GAAkB5oxB,EAAMrS,EAAO7F,GAC3D6F,EAAQy6xB,GAAYG,SAuFxB,SAASS,GAAkBhpxB,EAAMmc,EAAYo2K,GACzC,IAAI02lB,GAAM,EACNC,GAAM,EACNC,IAAM,EACNroyB,GAAIq7B,EACJitwB,GAActoyB,GAClB,KAAOA,GAAIyxM,GAAU,CACjB,MAAMn3D,GAAKp7H,EAAK68H,WAAW/7I,MAC3B,GAAW,KAAPs6I,GACA,OAAOgupB,GAEK,KAAPhupB,IAAgD,KAAPA,GAC9CgupB,GAActoyB,GAAIuoyB,GAAkBrpxB,EAAMo7H,GAAIt6I,GAAGyxM,GAE5Cp2K,IACLr7B,GAAI,GACI,KAARqoyB,IACQ,KAARD,GAAuC,KAARD,GAAsC,KAAP7tpB,GAC9DgupB,GAActoyB,GAAIuoyB,GAAkBrpxB,EAAM,GAA+Blf,GAAGyxM,GAEvEn3D,GAAK,KAEVgupB,GAActoyB,IAElBqoyB,GAAMD,EACNA,EAAMD,EACNA,GAAW,GAAL7tpB,EAAK,CAEf,OAAOgupB,EACX,CApHmCJ,CAAkBhpxB,EAAMrS,EAAO7F,GACvDihyB,GAAiB/oxB,EAAMrS,EAAO7F,GACzC,CAKA,SAASwhyB,GAAiBtpxB,GACtBooxB,GAAYh7xB,IAAM,EAClBg7xB,GAAYE,OAAS,EACrBF,GAAY5/xB,MAAQ,EACpB4/xB,GAAYG,SAAW,EACvBH,GAAYC,QAAUroxB,EAAKjf,MAC/B,CAUA,SAAS6nyB,GAAkB5oxB,EAAMmc,EAAYo2K,GACzC,KAAOp2K,EAAao2K,GAAYvyL,EAAK68H,WAAW1gH,IAAe,IAC3DA,IAEJ,OAAOA,CACX,CAyCA,SAAS4swB,GAAiB/oxB,EAAMmc,EAAYo2K,EAAU5yI,GAClDxjC,SAAayswB,GAAkB5oxB,EAAMmc,EAAYo2K,IAChCA,GAIbp2K,IAEGA,CACX,CAgDA,SAASktwB,GAAkBrpxB,EAAMupxB,EAAeptwB,EAAYo2K,GACxD,IAAI02lB,GAAM,EACNt7xB,GAAQwuB,EACZ,KAAOxuB,GAAQ4kM,GAAU,CACrB,MAAMn3D,GAAKp7H,EAAK68H,WAAWlvI,MAC3B,GAAIytI,IAAMmupB,GAAyB,KAARN,EACvB,OAAOt7xB,GAKPs7xB,EAHM,IAAN7tpB,IAA8C,KAAR6tpB,EAGhC,EAGA7tpB,GAGd,MACI,IAAIr4I,KACZ,CA2BA,SAASymyB,GAAY72wB,EAAMnqB,EAAO4kiB,GAC9Bq8P,UAAqB92wB,EAAMnqB,EAAO4kiB,GAAQ,GACnCo8P,EACX,CAgBA,SAASE,GAAYvwtB,EAAW3wE,GAC5BihyB,UAAqBtwtB,EAAW3wE,EAAO,MAAM,GACtCkhyB,EACX,CAoBA,SAASC,GAAW/oyB,GAChBgpyB,GAAgBC,GAAuBC,GAAmBlpyB,GAAQ,EACtE,CAUA,SAASkpyB,GAAkBj6B,EAAe7vvB,GACtC,QAASlf,EAhQb,SAASipyB,GAAW/pxB,GAChBspxB,UAAiBtpxB,GACV6oxB,GAAe7oxB,EAAM4oxB,GAAkB5oxB,EAAM,EAAGooxB,GAAYC,SACvE,CA6PiB0B,CAAW/pxB,GAAOlf,GAAK,EAAGA,EAAI+nyB,GAAe7oxB,EAAMlf,GAC5D+oyB,GAAsBh6B,EAAe24B,GAAiBxoxB,GAAOyoxB,GAAmBzoxB,GAExF,CAmBA,SAASgqxB,GAAWrlmB,GAChBilmB,GAAgBK,GAAuBC,GAAmBvlmB,GAAS,EACvE,CAUA,SAASulmB,GAAkBr6B,EAAe7vvB,GACtC,QAASlf,EA5Ub,SAASqpyB,GAAenqxB,GACpBspxB,UAAiBtpxB,GACV0oxB,GAAmB1oxB,EAAM4oxB,GAAkB5oxB,EAAM,EAAGooxB,GAAYC,SAC3E,CAyUiB8B,CAAenqxB,GAAOlf,GAAK,EAAGA,EAAI4nyB,GAAmB1oxB,EAAMlf,GACpE8uwB,GAAiBC,EAAe24B,GAAiBxoxB,IAAO,EAEhE,CASA,SAASypxB,GAAqB92wB,EAAMnqB,EAAO4kiB,EAAQ41P,GAC/C,MAAMxiC,EAAQmB,KACR37jB,GAAQ47jB,KAIRgB,GAAeG,GAAsB,GACvC/8jB,GAAMytlB,iBACN2W,GAAuBpkmB,GAAOrzK,EAAMiwuB,GAAcogC,GAElDx6xB,IAAUgixB,IAAauV,GAAev/B,EAAOoC,GAAcp6vB,IAE3D6hyB,GAAcrkmB,GADAA,GAAMh+L,KAAK28vB,MACGnE,EAAOA,EAAM7C,IAAWhruB,EAAM6tuB,EAAMoC,GAAe,GAunBvF,SAAS0nC,GAAgB9hyB,EAAO4kiB,GAC5B,OAAa,MAAT5kiB,GAA2B,KAAVA,IAMM,iBAAX4kiB,EACZ5kiB,GAAgB4kiB,EAEM,iBAAV5kiB,IACZA,EAAQuS,GAAUujwB,GAAgB91wB,MAE/BA,CACX,CAroB4F8hyB,CAAgB9hyB,EAAO4kiB,GAAS41P,EAAcpgC,GAE1I,CAWA,SAASgnC,GAAgBh6B,EAAkB26B,EAAc/hyB,EAAOw6xB,GAC5D,MAAMh9lB,EAAQ47jB,KACRgB,GAAeG,GAAsB,GACvC/8jB,EAAMytlB,iBACN2W,GAAuBpkmB,EAAO,KAAM48jB,GAAcogC,GAEtD,MAAMxiC,GAAQmB,KACd,GAAIn5vB,IAAUgixB,IAAauV,GAAev/B,GAAOoC,GAAcp6vB,GAAQ,CAGnE,MAAMs2vB,GAAQ94jB,EAAMh+L,KAAK28vB,MACzB,GAAI6lC,GAAsB1rC,GAAOkkC,KAAkByH,GAAiBzkmB,EAAO48jB,IAAe,CActF,IAAI8nC,GAAe1H,EAAelkC,GAAM0yB,mBAAqB1yB,GAAMwyB,kBAG9C,OAAjBoZ,KAEAliyB,EAAQytvB,GAAuBy0C,GAAcliyB,GAAgB,KAIjEu6xB,GAAsC/8lB,EAAO84jB,GAAO0B,GAAOh4vB,EAAOw6xB,EAAY,MA6Y1F,SAAS2H,GAAiB3kmB,EAAO84jB,EAAO0B,EAAOt5vB,EAAU0jyB,EAAkBC,GAAkB7H,GAAcpgC,IACnGgoC,IAAqBpgB,KAErBogB,EAAmBllD,IAEvB,IAAIolD,GAAW,EACXC,GAAW,EACXC,GAAS,EAAIJ,EAAiB7pyB,OAAS6pyB,EAAiB,GAAK,KAC7D33Y,GAAS,EAAI43Y,GAAiB9pyB,OAAS8pyB,GAAiB,GAAK,KACjE,KAAkB,OAAXG,IAA8B,OAAX/3Y,IAAiB,CAGvC,MAAM31U,GAAWwttB,GAAWF,EAAiB7pyB,OAAS6pyB,EAAiBE,GAAW,QAAKvgyB,EACjF6rQ,GAAW20hB,GAAWF,GAAiB9pyB,OAAS8pyB,GAAiBE,GAAW,QAAKxgyB,EACvF,IACIJ,GADA8gyB,GAAS,KAETD,KAAW/3Y,IAEX63Y,IAAY,EACZC,IAAY,EACRzttB,KAAa84L,KACb60hB,GAASh4Y,GACT9oZ,GAAWisQ,KAGC,OAAX68I,IAA8B,OAAX+3Y,IAAmBA,GAAS/3Y,IAKpD63Y,IAAY,EACZG,GAASD,KAOTD,IAAY,EACZE,GAASh4Y,GACT9oZ,GAAWisQ,IAEA,OAAX60hB,IACAZ,GAAcrkmB,EAAO84jB,EAAO0B,EAAOt5vB,EAAU+jyB,GAAQ9gyB,GAAU64xB,GAAcpgC,IAEjFooC,GAASF,GAAWF,EAAiB7pyB,OAAS6pyB,EAAiBE,IAAY,KAC3E73Y,GAAS83Y,GAAWF,GAAiB9pyB,OAAS8pyB,GAAiBE,IAAY,KAEnF,CA1bYJ,CAAiB3kmB,EAAO84jB,GAAO0B,GAAOA,GAAM7C,IAAW6C,GAAMoC,GAAe,GAAIpC,GAAMoC,GAAe,GA8TjH,SAASsoC,GAAuBt7B,EAAkB26B,EAAc/hyB,GAC5D,GAAa,MAATA,GAAuD,KAAVA,EAC7C,OAAOk9uB,GACX,MAAMylD,EAAqB,GACrBC,EAAiB9sB,GAAgB91wB,GACvC,GAAI4N,MAAM2C,QAAQqyxB,GACd,QAAStqyB,GAAI,EAAGA,GAAIsqyB,EAAerqyB,OAAQD,KACvC8uwB,EAAiBu7B,EAAoBC,EAAetqyB,KAAI,QAAI,GAGjC,iBAAnBsqyB,EACZ,UAAWh+xB,MAAOg+xB,EACVA,EAAej6wB,eAAe/jB,KAC9BwiwB,EAAiBu7B,EAAoB/9xB,GAAKg+xB,EAAeh+xB,SAIlC,iBAAnBg+xB,GACZb,EAAaY,EAAoBC,GAMrC,OAAOD,CACX,CAvVsHD,CAAuBt7B,EAAkB26B,EAAc/hyB,GAAQw6xB,EAAcpgC,GAAY,CAG/M,CAOA,SAAS6nC,GAAiBzkmB,EAAO48jB,GAE7B,OAAOA,GAAgB58jB,EAAM+ulB,iBACjC,CAUA,SAASqV,GAAuBpkmB,EAAO2hmB,EAAa/kC,EAAcogC,GAE9D,MAAMz/B,EAAQv9jB,EAAMh+L,KACpB,GAAgC,OAA5Bu7vB,EAAMX,EAAe,GAAa,CAMlC,MAAM9D,GAAQyE,EAAMoB,MAEd0mC,GAAiBZ,GAAiBzkmB,EAAO48jB,GAC3C4nC,GAAsB1rC,GAAOkkC,IAAiC,OAAhB2E,IAAyB0D,KAKvE1D,GAAc,GAElBA,EAkBR,SAAS2D,GAAuB/nC,EAAOzE,EAAOysC,EAAYvI,GACtD,MAAMhE,EAAmB17B,GAAuBC,GAChD,IAAIioC,GAAWxI,EAAelkC,EAAM2yB,gBAAkB3yB,EAAMyyB,eAC5D,GAAyB,OAArByN,EAK2G,KAA9DgE,EAAelkC,EAAM4yB,cAAgB5yB,EAAM6yB,iBAMpF4Z,EAAaE,GADbF,EAAaG,GAA6B,KAAMnoC,EAAOzE,EAAOysC,EAAYvI,GACxBlkC,EAAMrosB,MAAOusuB,GAE/DwI,GAAW,UAGd,CAGD,MAAMta,GAAuBpyB,EAAMoyB,qBAEnC,IADwE,IAAzBA,IAA+B3tB,EAAM2tB,MAA0B8N,EAI1G,GAFAuM,EACIG,GAA6B1M,EAAkBz7B,EAAOzE,EAAOysC,EAAYvI,GAC5D,OAAbwI,GAAmB,CAOnB,IAAIG,GAuCpB,SAASC,GAA2BroC,EAAOzE,EAAOkkC,GAC9C,MAAMlomB,EAAWkomB,EAAelkC,EAAM4yB,cAAgB5yB,EAAM6yB,cAC5D,GAAuC,IAAnC4V,GAAqBzsmB,GAIzB,OAAOyokB,EAAM6jC,GAAqBtsmB,GACtC,CA9CyC8wmB,CAA2BroC,EAAOzE,EAAOkkC,QACvCz4xB,IAAvBohyB,IAAoCv1xB,MAAM2C,QAAQ4yxB,MAIlDA,GAAqBD,GAA6B,KAAMnoC,EAAOzE,EAAO6sC,GAAmB,GAAkC3I,GAC3H2I,GACIF,GAAyBE,GAAoB7sC,EAAMrosB,MAAOusuB,GA4FlF,SAAS6I,GAA2BtoC,EAAOzE,EAAOkkC,EAAc2E,GAI5DpkC,EAAM6jC,GAHWpE,EAAelkC,EAAM4yB,cAAgB5yB,EAAM6yB,gBAGpBgW,CAC5C,CAhGoBkE,CAA2BtoC,EAAOzE,EAAOkkC,EAAc2I,IAAkB,MAS7EH,GAkGhB,SAASM,GAAgBvoC,EAAOzE,EAAOkkC,GACnC,IAAIwI,EACJ,MAAMpmC,EAAetG,EAAMsG,aAK3B,QAAStkwB,GAAI,EAAIg+vB,EAAMoyB,qBAAsBpwxB,GAAIskwB,EAActkwB,KAE3D0qyB,EAAWC,GAAyBD,EADtBjoC,EAAMziwB,IAAG47vB,UAC8BsmC,GAEzD,OAAOyI,GAAyBD,EAAU1sC,EAAMrosB,MAAOusuB,EAC3D,CA9G2B8I,CAAgBvoC,EAAOzE,EAAOkkC,EAAY,CAIjE,YAAiBz4xB,IAAbihyB,KACAxI,EAAgBlkC,EAAM2yB,gBAAkB+Z,GAAa1sC,EAAMyyB,eAAiBia,IAEzED,CACX,CA7EsBD,CAAuB/nC,EAAOzE,GAAO6oC,EAAa3E,GArsBxE,SAAS+I,GAAsBxoC,EAAOzE,EAAOktC,EAAuBr+xB,EAAOs+xB,EAAepE,IAEtF,IAAIqE,GAAYrE,GAAiB/oC,EAAM4yB,cAAgB5yB,EAAM6yB,cACzDwa,GAAW/E,GAAqB8E,IAChCE,GAAW7E,GAAqB2E,IACpC3oC,EAAM51vB,GAASq+xB,EACf,IACIrE,GADA0E,IAAyB,EAgB7B,GAdIj2xB,MAAM2C,QAAQizxB,IAGdrE,GAD4BqE,EACM,IAEd,OAAhBrE,IACA73B,GAJwBk8B,EAIkBrE,IAAe,KAEzD0E,IAAyB,IAI7B1E,GAAcqE,EAEdC,EAMA,GAHyC,IAAbG,GAGH,CAErB,MAAM7kuB,GAAe6/tB,GAAqB7jC,EAAM4oC,GAAW,IAC3D5oC,EAAM51vB,EAAQ,GAAKw5xB,GAAgB5/tB,GAAc4kuB,IAG5B,IAAjB5kuB,KAEAg8rB,EAAMh8rB,GAAe,GACjBiguB,GAAqBjkC,EAAMh8rB,GAAe,GAAI55D,IAGtD41vB,EAAM4oC,GAAW,GAzP7B,SAASG,GAAqBjF,EAAe3lQ,GAGzC,OAAyB,OAAhB2lQ,EACJ3lQ,GAAY,EACrB,CAoPkC4qQ,CAAqB/oC,EAAM4oC,GAAW,GAAIx+xB,EAAK,MAGrE41vB,EAAM51vB,EAAQ,GAAKw5xB,GAAgBgF,GAAU,GAG5B,IAAbA,KAEA5oC,EAAM4oC,GAAW,GAAK3E,GAAqBjkC,EAAM4oC,GAAW,GAAIx+xB,IAGpEw+xB,GAAWx+xB,OAMf41vB,EAAM51vB,EAAQ,GAAKw5xB,GAAgBiF,GAAU,GAG5B,IAAbD,GACAA,GAAWx+xB,EAIX41vB,EAAM6oC,GAAW,GAAK5E,GAAqBjkC,EAAM6oC,GAAW,GAAIz+xB,GAEpEy+xB,GAAWz+xB,EAIX0+xB,KACA9oC,EAAM51vB,EAAQ,GAAK25xB,GAA8B/jC,EAAM51vB,EAAQ,KAEnE+5xB,GAAenkC,EAAOokC,GAAah6xB,GAAO,GAC1C+5xB,GAAenkC,EAAOokC,GAAah6xB,GAAO,GAoB9C,SAAS4+xB,GAA+BztC,EAAO6oC,EAAapkC,EAAO51vB,EAAOk6xB,GACtE,MAAM2D,GAAW3D,EAAiB/oC,EAAM2yB,gBAAkB3yB,EAAMyyB,eAChD,MAAZia,IAA6D,iBAAf7D,GAC9C73B,GAAqB07B,GAAU7D,IAAgB,IAE/CpkC,EAAM51vB,EAAQ,GAAK85xB,GAA8BlkC,EAAM51vB,EAAQ,IAEvE,CA1BI4+xB,CAA+BztC,EAAO6oC,GAAapkC,EAAO51vB,EAAOk6xB,IACjEqE,GAAY/E,GAAgBgF,GAAUC,IAClCvE,GACA/oC,EAAM4yB,cAAgBwa,GAGtBptC,EAAM6yB,cAAgBua,EAE9B,CAknBQH,CAAsBxoC,EAAOzE,GAAO6oC,EAAa/kC,EAAcyoC,GAAgBrI,EAAY,CAEnG,CA6LA,SAAS0I,GAA6B1M,EAAkBz7B,EAAOzE,EAAOysC,EAAYvI,GAG9E,IAAIwJ,GAAmB,KACvB,MAAMpnC,GAAetG,EAAMsG,aAC3B,IAAI8rB,GAAuBpyB,EAAMoyB,qBAOjC,KAN6B,IAAzBA,GACAA,GAAuBpyB,EAAMqG,eAG7B+rB,KAEGA,GAAuB9rB,KAC1BonC,GAAmBjpC,EAAM2tB,IAEzBqa,EAAaE,GAAyBF,EAAYiB,GAAiB9vC,UAAWsmC,GAC1EwJ,KAAqBxN,IAEzB9N,KAEJ,OAAyB,OAArB8N,IAIAlgC,EAAMoyB,qBAAuBA,IAE1Bqa,CACX,CAQA,SAASE,GAAyBF,EAAY90uB,EAAOusuB,GACjD,MAAMyJ,EAAgBzJ,EAAe,EAAkC,EACvE,IAAI0J,GAAgB,EACpB,GAAc,OAAVj2uB,EACA,QAAS31D,GAAI,EAAGA,GAAI21D,EAAM11D,OAAQD,KAAK,CACnC,MAAM0lC,GAAOiwB,EAAM31D,IACC,iBAAT0lC,GACPkmwB,EAAgBlmwB,GAGZkmwB,IAAkBD,IACbr2xB,MAAM2C,QAAQwyxB,KACfA,OAA4BhhyB,IAAfghyB,EAA2B,GAAK,CAAC,GAAIA,IAEtD37B,GAAiB27B,EAAY/kwB,KAAMw8vB,GAAsBvsuB,IAAQ31D,KAAE,CAKnF,YAAsByJ,IAAfghyB,EAA2B,KAAOA,CAC7C,CAgEA,SAAS1B,GAAsBh6B,EAAeziwB,EAAK5E,GAC/ConwB,GAAiBC,EAAeziwB,EAAKkxwB,GAAgB91wB,GACzD,CAUA,SAASyhyB,GAAsBp6B,EAAeziwB,EAAK5E,GAM/C,MAAMmkyB,EAAYh6xB,OAAOvF,GACP,KAAdu/xB,IAAqBA,EAAUh5rB,SAAS,MACxCi8pB,GAAiBC,EAAe88B,EAAWnkyB,EAEnD,CAqFA,SAAS6hyB,GAAcrkmB,EAAO84jB,EAAO0B,EAAOt5vB,EAAUyrB,EAAMnqB,GAAOw6xB,GAAcpgC,IAC7E,KAAmB,EAAb9D,EAAM73vB,MAGR,OAEJ,MAAMs8vB,GAAQv9jB,EAAMh+L,KACd4kyB,GAASrpC,GAAMX,GAAe,GAC9BiqC,GA5yCV,SAASC,GAA8BzF,GAEnC,OACI,IADoB,EAAhBA,EAEZ,CAwyCgCyF,CAA8BF,IACtDG,GAAiBxpC,GAAOzE,EAAO0B,EAAO7tuB,EAAM40wB,GAAqBqF,IAAS5J,SAC1Ez4xB,EACCyiyB,GAAsBH,MAElBG,GAAsBxkyB,KA10CnC,SAASykyB,GAA8B5F,GAEnC,OACI,IADoB,EAAhBA,EAEZ,CAw0CgB4F,CAA8BL,MAE9BpkyB,GAAQukyB,GAAiBxpC,GAAO,KAAM/C,EAAO7tuB,EAAMiwuB,GAAcogC,KAt2SjF,SAASkK,GAAahmyB,EAAU87xB,EAAclrB,EAAOnlvB,EAAMnqB,GACvD,GAAIw6xB,EAEKx6xB,EAMDtB,EAASwC,SAASouwB,EAAOnlvB,GAJzBzrB,EAAS0C,YAAYkuwB,EAAOnlvB,OAO/B,CACD,IAAI7oB,IAA8B,IAAtB6oB,EAAKnlB,QAAQ,UAAcjD,EAAYR,GAAoBirwB,SAC1D,MAATxswB,EAEAtB,EAAS+C,YAAY6twB,EAAOnlvB,EAAM7oB,KAKG,iBAAVtB,GAAqBA,EAAM4luB,SAAS,gBAG3D5luB,EAAQA,EAAMnG,MAAM,GAAG,IACvByH,IAASC,GAAoBgrwB,WAGjC7twB,EAAS2C,SAASiuwB,EAAOnlvB,EAAMnqB,EAAOsB,IAAK,CAGvD,CA20SQojyB,CAAahmyB,EAAU87xB,GADTziC,GAAiBoE,KAAoBnE,GACP7tuB,EAAMnqB,IAE1D,CA6BA,SAASukyB,GAAiBxpC,EAAOzE,EAAO0B,EAAO7tuB,EAAMhlB,EAAOq1xB,IAMxD,MAAMmK,GAA4B,OAAVruC,EACxB,IAAIt2vB,GACJ,KAAOmF,EAAQ,GAAG,CACd,MAAMy/xB,GAAS7pC,EAAM51vB,GACf0/xB,GAAkBj3xB,MAAM2C,QAAQq0xB,IAEhChgyB,GAAMigyB,GAAkBD,GAAO,GAAKA,GACpCE,GAAuB,OAARlgyB,GACrB,IAAImgyB,GAAoB/sC,EAAM7yvB,EAAQ,GAClC4/xB,KAAsB/iB,KAQtB+iB,GAAoBD,GAAe5nD,QAAcn7uB,GAErD,IAAIy9E,GAAesltB,GAAep9B,GAAiBq9B,GAAmB56wB,GACjEvlB,KAAQulB,EAAO46wB,QAAoBhjyB,EAIxC,GAHI8iyB,KAAoBL,GAAsBhltB,MAC1CA,GAAekorB,GAAiBk9B,GAAQz6wB,IAExCq6wB,GAAsBhltB,MACtBx/E,GAAQw/E,GACJmltB,IACA,OAAO3kyB,GAGf,MAAMokyB,GAASrpC,EAAM51vB,EAAQ,GAC7BA,EAAQw/xB,GAAkB/F,GAAqBwF,IAAUrF,GAAqBqF,GAAM,CAExF,GAAc,OAAV9tC,EAAgB,CAGhB,IAAI0sC,GAAWxI,GAAelkC,EAAM2yB,gBAAkB3yB,EAAMyyB,eAC5C,MAAZia,KACAhjyB,GAAQ0nwB,GAAiBs7B,GAAU74wB,GAAI,CAG/C,OAAOnqB,EACX,CAOA,SAASwkyB,GAAsBxkyB,GAK3B,YAAiB+B,IAAV/B,CACX,CAgCA,SAASgiyB,GAAsB1rC,EAAOkkC,GAClC,OAAiH,IAAzGlkC,EAAMh1vB,OAASk5xB,EAAe,EAAmC,IAC7E,CAUA,SAASwK,GAAO7/xB,EAAOnF,EAAQ,IAC3B,MAAMg4vB,EAAQmB,KACR37jB,EAAQ47jB,KACR6gC,EAAgB90xB,EAAQ0wvB,EAIxBS,GAAQ94jB,EAAMuikB,gBAChBsoB,GAAiB7qlB,EAAOy8lB,EAAe,EAAwBj6xB,EAAO,MACtEw9L,EAAMh+L,KAAKy6xB,GACTgL,GAAajtC,EAAMiiC,GAAiB/5xB,GAAe83vB,EAAM7C,IAAWn1vB,GAC1ExD,GAAYghM,EAAOw6jB,EAAOitC,GAAY3uC,IAEtCuD,GAAgBvD,IAAO,EAC3B,CAsBA,SAAS4uC,GAAkB9M,GACvB+M,UAAmB,GAAI/M,EAAI,IACpB8M,EACX,CAoBA,SAASC,GAAmBvzmB,EAAQwmmB,EAAIxzP,GACpC,MAAMozN,EAAQmB,KACR2gC,EAAe3B,GAAengC,EAAOpmkB,EAAQwmmB,EAAIxzP,GACvD,OAAIk1P,IAAiB9X,IACjBmP,GAAoBn5B,EAAOmE,KAAoB29B,GAE5CqL,EACX,CAoBA,SAASC,GAAmBxzmB,EAAQwmmB,EAAIn/xB,EAAIsiU,EAAIqpO,GAC5C,MAAMozN,GAAQmB,KACR2gC,GAAezB,GAAergC,GAAOpmkB,EAAQwmmB,EAAIn/xB,EAAIsiU,EAAIqpO,GAC/D,OAAIk1P,KAAiB9X,IACjBmP,GAAoBn5B,GAAOmE,KAAoB29B,IAE5CsL,EACX,CAqBA,SAASC,GAAmBzzmB,EAAQwmmB,EAAIn/xB,EAAIsiU,EAAI9iT,EAAI+iT,GAAIopO,IACpD,MAAMozN,GAAQmB,KACR2gC,GAAexB,GAAetgC,GAAOpmkB,EAAQwmmB,EAAIn/xB,EAAIsiU,EAAI9iT,EAAI+iT,GAAIopO,IACvE,OAAIk1P,KAAiB9X,IACjBmP,GAAoBn5B,GAAOmE,KAAoB29B,IAE5CuL,EACX,CAqBA,SAASC,GAAmB1zmB,EAAQwmmB,EAAIn/xB,EAAIsiU,EAAI9iT,EAAI+iT,GAAIrvQ,GAAIqsuB,GAAI5zP,IAC5D,MAAMozN,GAAQmB,KACR2gC,GAAevB,GAAevgC,GAAOpmkB,EAAQwmmB,EAAIn/xB,EAAIsiU,EAAI9iT,EAAI+iT,GAAIrvQ,GAAIqsuB,GAAI5zP,IAC/E,OAAIk1P,KAAiB9X,IACjBmP,GAAoBn5B,GAAOmE,KAAoB29B,IAE5CwL,EACX,CAqBA,SAASC,GAAmB3zmB,EAAQwmmB,EAAIn/xB,EAAIsiU,EAAI9iT,EAAI+iT,GAAIrvQ,GAAIqsuB,GAAI3gvB,GAAI6gvB,GAAI9zP,IACpE,MAAMozN,GAAQmB,KACR2gC,GAAerB,GAAezgC,GAAOpmkB,EAAQwmmB,EAAIn/xB,EAAIsiU,EAAI9iT,EAAI+iT,GAAIrvQ,GAAIqsuB,GAAI3gvB,GAAI6gvB,GAAI9zP,IACvF,OAAIk1P,KAAiB9X,IACjBmP,GAAoBn5B,GAAOmE,KAAoB29B,IAE5CyL,EACX,CAuBA,SAASC,GAAmB5zmB,EAAQwmmB,EAAIn/xB,EAAIsiU,EAAI9iT,EAAI+iT,GAAIrvQ,GAAIqsuB,GAAI3gvB,GAAI6gvB,GAAIE,GAAIC,GAAIj0P,IAC5E,MAAMozN,GAAQmB,KACR2gC,GAAenB,GAAe3gC,GAAOpmkB,EAAQwmmB,EAAIn/xB,EAAIsiU,EAAI9iT,EAAI+iT,GAAIrvQ,GAAIqsuB,GAAI3gvB,GAAI6gvB,GAAIE,GAAIC,GAAIj0P,IAC/F,OAAIk1P,KAAiB9X,IACjBmP,GAAoBn5B,GAAOmE,KAAoB29B,IAE5C0L,EACX,CAqBA,SAASC,GAAmB7zmB,EAAQwmmB,EAAIn/xB,EAAIsiU,EAAI9iT,EAAI+iT,GAAIrvQ,GAAIqsuB,GAAI3gvB,GAAI6gvB,GAAIE,GAAIC,GAAIE,GAAIC,GAAIp0P,IACpF,MAAMozN,GAAQmB,KACR2gC,GAAehB,GAAe9gC,GAAOpmkB,EAAQwmmB,EAAIn/xB,EAAIsiU,EAAI9iT,EAAI+iT,GAAIrvQ,GAAIqsuB,GAAI3gvB,GAAI6gvB,GAAIE,GAAIC,GAAIE,GAAIC,GAAIp0P,IACvG,OAAIk1P,KAAiB9X,IACjBmP,GAAoBn5B,GAAOmE,KAAoB29B,IAE5C2L,EACX,CAqBA,SAASC,GAAmB9zmB,EAAQwmmB,EAAIn/xB,EAAIsiU,EAAI9iT,EAAI+iT,GAAIrvQ,GAAIqsuB,GAAI3gvB,GAAI6gvB,GAAIE,GAAIC,GAAIE,GAAIC,GAAIE,GAAIC,GAAIv0P,IAC5F,MAAMozN,GAAQmB,KACR2gC,GAAeb,GAAejhC,GAAOpmkB,EAAQwmmB,EAAIn/xB,EAAIsiU,EAAI9iT,EAAI+iT,GAAIrvQ,GAAIqsuB,GAAI3gvB,GAAI6gvB,GAAIE,GAAIC,GAAIE,GAAIC,GAAIE,GAAIC,GAAIv0P,IAC/G,OAAIk1P,KAAiB9X,IACjBmP,GAAoBn5B,GAAOmE,KAAoB29B,IAE5C4L,EACX,CAyBA,SAASC,GAAmBl4xB,GACxB,MAAMuqvB,EAAQmB,KACR2gC,EAAe7B,GAAejgC,EAAOvqvB,GAC3C,OAAIqsxB,IAAiB9X,IACjBmP,GAAoBn5B,EAAOmE,KAAoB29B,GAE5C6L,EACX,CAuBA,SAASC,GAAuBh0mB,EAAQwmmB,EAAIxzP,GAGxCw8P,GAAgBh6B,GAAkBs6B,GADRvJ,GADZh/B,KACkCvnkB,EAAQwmmB,EAAIxzP,IACY,EAC5E,CAwBA,SAASihQ,GAAuBj0mB,EAAQwmmB,EAAIn/xB,EAAIsiU,EAAIqpO,GAGhDw8P,GAAgBh6B,GAAkBs6B,GADRrJ,GADZl/B,KACkCvnkB,EAAQwmmB,EAAIn/xB,EAAIsiU,EAAIqpO,IACI,EAC5E,CA2BA,SAASkhQ,GAAuBl0mB,EAAQwmmB,EAAIn/xB,EAAIsiU,EAAI9iT,EAAI+iT,GAAIopO,IAGxDw8P,GAAgBh6B,GAAkBs6B,GADRpJ,GADZn/B,KACkCvnkB,EAAQwmmB,EAAIn/xB,EAAIsiU,EAAI9iT,EAAI+iT,GAAIopO,KACJ,EAC5E,CA6BA,SAASmhQ,GAAuBn0mB,EAAQwmmB,EAAIn/xB,EAAIsiU,EAAI9iT,EAAI+iT,GAAIrvQ,GAAIqsuB,GAAI5zP,IAGhEw8P,GAAgBh6B,GAAkBs6B,GADRnJ,GADZp/B,KACkCvnkB,EAAQwmmB,EAAIn/xB,EAAIsiU,EAAI9iT,EAAI+iT,GAAIrvQ,GAAIqsuB,GAAI5zP,KACZ,EAC5E,CA+BA,SAASohQ,GAAuBp0mB,EAAQwmmB,EAAIn/xB,EAAIsiU,EAAI9iT,EAAI+iT,GAAIrvQ,GAAIqsuB,GAAI3gvB,GAAI6gvB,GAAI9zP,IAGxEw8P,GAAgBh6B,GAAkBs6B,GADRjJ,GADZt/B,KACkCvnkB,EAAQwmmB,EAAIn/xB,EAAIsiU,EAAI9iT,EAAI+iT,GAAIrvQ,GAAIqsuB,GAAI3gvB,GAAI6gvB,GAAI9zP,KACpB,EAC5E,CAiCA,SAASqhQ,GAAuBr0mB,EAAQwmmB,EAAIn/xB,EAAIsiU,EAAI9iT,EAAI+iT,GAAIrvQ,GAAIqsuB,GAAI3gvB,GAAI6gvB,GAAIE,GAAIC,GAAIj0P,IAGhFw8P,GAAgBh6B,GAAkBs6B,GADR/I,GADZx/B,KACkCvnkB,EAAQwmmB,EAAIn/xB,EAAIsiU,EAAI9iT,EAAI+iT,GAAIrvQ,GAAIqsuB,GAAI3gvB,GAAI6gvB,GAAIE,GAAIC,GAAIj0P,KAC5B,EAC5E,CAmCA,SAASshQ,GAAuBt0mB,EAAQwmmB,EAAIn/xB,EAAIsiU,EAAI9iT,EAAI+iT,GAAIrvQ,GAAIqsuB,GAAI3gvB,GAAI6gvB,GAAIE,GAAIC,GAAIE,GAAIC,GAAIp0P,IAGxFw8P,GAAgBh6B,GAAkBs6B,GADR5I,GADZ3/B,KACkCvnkB,EAAQwmmB,EAAIn/xB,EAAIsiU,EAAI9iT,EAAI+iT,GAAIrvQ,GAAIqsuB,GAAI3gvB,GAAI6gvB,GAAIE,GAAIC,GAAIE,GAAIC,GAAIp0P,KACpC,EAC5E,CAqCA,SAASuhQ,GAAuBv0mB,EAAQwmmB,EAAIn/xB,EAAIsiU,EAAI9iT,EAAI+iT,GAAIrvQ,GAAIqsuB,GAAI3gvB,GAAI6gvB,GAAIE,GAAIC,GAAIE,GAAIC,GAAIE,GAAIC,GAAIv0P,IAGhGw8P,GAAgBh6B,GAAkBs6B,GADRzI,GADZ9/B,KACkCvnkB,EAAQwmmB,EAAIn/xB,EAAIsiU,EAAI9iT,EAAI+iT,GAAIrvQ,GAAIqsuB,GAAI3gvB,GAAI6gvB,GAAIE,GAAIC,GAAIE,GAAIC,GAAIE,GAAIC,GAAIv0P,KAC5C,EAC5E,CAwBA,SAASwhQ,GAAuB34xB,GAG5B2zxB,GAAgBh6B,GAAkBs6B,GADRzJ,GADZ9+B,KACkC1rvB,IACwB,EAC5E,CAuBA,SAAS44xB,GAAuBz0mB,EAAQwmmB,EAAIxzP,GAGxCu8P,GAD0BhJ,GADZh/B,KACkCvnkB,EAAQwmmB,EAAIxzP,GAEhE,CAwBA,SAAS0hQ,GAAuB10mB,EAAQwmmB,EAAIn/xB,EAAIsiU,EAAIqpO,GAGhDu8P,GAD0B9I,GADZl/B,KACkCvnkB,EAAQwmmB,EAAIn/xB,EAAIsiU,EAAIqpO,GAExE,CA2BA,SAAS2hQ,GAAuB30mB,EAAQwmmB,EAAIn/xB,EAAIsiU,EAAI9iT,EAAI+iT,GAAIopO,IAGxDu8P,GAD0B7I,GADZn/B,KACkCvnkB,EAAQwmmB,EAAIn/xB,EAAIsiU,EAAI9iT,EAAI+iT,GAAIopO,IAEhF,CA6BA,SAAS4hQ,GAAuB50mB,EAAQwmmB,EAAIn/xB,EAAIsiU,EAAI9iT,EAAI+iT,GAAIrvQ,GAAIqsuB,GAAI5zP,IAGhEu8P,GAD0B5I,GADZp/B,KACkCvnkB,EAAQwmmB,EAAIn/xB,EAAIsiU,EAAI9iT,EAAI+iT,GAAIrvQ,GAAIqsuB,GAAI5zP,IAExF,CA+BA,SAAS6hQ,GAAuB70mB,EAAQwmmB,EAAIn/xB,EAAIsiU,EAAI9iT,EAAI+iT,GAAIrvQ,GAAIqsuB,GAAI3gvB,GAAI6gvB,GAAI9zP,IAGxEu8P,GAD0B1I,GADZt/B,KACkCvnkB,EAAQwmmB,EAAIn/xB,EAAIsiU,EAAI9iT,EAAI+iT,GAAIrvQ,GAAIqsuB,GAAI3gvB,GAAI6gvB,GAAI9zP,IAEhG,CAmCA,SAAS8hQ,GAAuB90mB,EAAQwmmB,EAAIn/xB,EAAIsiU,EAAI9iT,EAAI+iT,GAAIrvQ,GAAIqsuB,GAAI3gvB,GAAI6gvB,GAAIE,GAAIC,GAAIj0P,IAGhFu8P,GAD0BxI,GADZx/B,KACkCvnkB,EAAQwmmB,EAAIn/xB,EAAIsiU,EAAI9iT,EAAI+iT,GAAIrvQ,GAAIqsuB,GAAI3gvB,GAAI6gvB,GAAIE,GAAIC,GAAIj0P,IAExG,CAqCA,SAAS+hQ,GAAuB/0mB,EAAQwmmB,EAAIn/xB,EAAIsiU,EAAI9iT,EAAI+iT,GAAIrvQ,GAAIqsuB,GAAI3gvB,GAAI6gvB,GAAIE,GAAIC,GAAIE,GAAIC,GAAIp0P,IAGxFu8P,GAD0BrI,GADZ3/B,KACkCvnkB,EAAQwmmB,EAAIn/xB,EAAIsiU,EAAI9iT,EAAI+iT,GAAIrvQ,GAAIqsuB,GAAI3gvB,GAAI6gvB,GAAIE,GAAIC,GAAIE,GAAIC,GAAIp0P,IAEhH,CAuCA,SAASgiQ,GAAuBh1mB,EAAQwmmB,EAAIn/xB,EAAIsiU,EAAI9iT,EAAI+iT,GAAIrvQ,GAAIqsuB,GAAI3gvB,GAAI6gvB,GAAIE,GAAIC,GAAIE,GAAIC,GAAIE,GAAIC,GAAIv0P,IAGhGu8P,GAD0BlI,GADZ9/B,KACkCvnkB,EAAQwmmB,EAAIn/xB,EAAIsiU,EAAI9iT,EAAI+iT,GAAIrvQ,GAAIqsuB,GAAI3gvB,GAAI6gvB,GAAIE,GAAIC,GAAIE,GAAIC,GAAIE,GAAIC,GAAIv0P,IAExH,CAyBA,SAASiiQ,GAAuBp5xB,GAG5B0zxB,GAD0BlJ,GADZ9+B,KACkC1rvB,GAEpD,CA4BA,SAASq5xB,GAAwB38wB,EAAMynK,EAAQwmmB,EAAIxzP,EAAQglI,GAGvDq3H,UAAqB92wB,EADKguwB,GADZh/B,KACkCvnkB,EAAQwmmB,EAAIxzP,GACdglI,GAAa,GACpDk9H,EACX,CA6BA,SAASC,GAAwB58wB,EAAMynK,EAAQwmmB,EAAIn/xB,EAAIsiU,EAAIqpO,GAAQglI,IAG/Dq3H,UAAqB92wB,EADKkuwB,GADZl/B,KACkCvnkB,EAAQwmmB,EAAIn/xB,EAAIsiU,EAAIqpO,IACtBglI,IAAa,GACpDm9H,EACX,CA+BA,SAASC,GAAwB78wB,EAAMynK,EAAQwmmB,EAAIn/xB,EAAIsiU,EAAI9iT,GAAI+iT,GAAIopO,GAAQglI,IAGvEq3H,UAAqB92wB,EADKmuwB,GADZn/B,KACkCvnkB,EAAQwmmB,EAAIn/xB,EAAIsiU,EAAI9iT,GAAI+iT,GAAIopO,IAC9BglI,IAAa,GACpDo9H,EACX,CAiCA,SAASC,GAAwB98wB,EAAMynK,EAAQwmmB,EAAIn/xB,EAAIsiU,EAAI9iT,GAAI+iT,GAAIrvQ,GAAIqsuB,GAAI5zP,GAAQglI,IAG/Eq3H,UAAqB92wB,EADKouwB,GADZp/B,KACkCvnkB,EAAQwmmB,EAAIn/xB,EAAIsiU,EAAI9iT,GAAI+iT,GAAIrvQ,GAAIqsuB,GAAI5zP,IACtCglI,IAAa,GACpDq9H,EACX,CAmCA,SAASC,GAAwB/8wB,EAAMynK,EAAQwmmB,EAAIn/xB,EAAIsiU,EAAI9iT,GAAI+iT,GAAIrvQ,GAAIqsuB,GAAI3gvB,GAAI6gvB,GAAI9zP,GAAQglI,IAGvFq3H,UAAqB92wB,EADKsuwB,GADZt/B,KACkCvnkB,EAAQwmmB,EAAIn/xB,EAAIsiU,EAAI9iT,GAAI+iT,GAAIrvQ,GAAIqsuB,GAAI3gvB,GAAI6gvB,GAAI9zP,IAC9CglI,IAAa,GACpDs9H,EACX,CAqCA,SAASC,GAAwBh9wB,EAAMynK,EAAQwmmB,EAAIn/xB,EAAIsiU,EAAI9iT,GAAI+iT,GAAIrvQ,GAAIqsuB,GAAI3gvB,GAAI6gvB,GAAIE,GAAIC,GAAIj0P,GAAQglI,IAG/Fq3H,UAAqB92wB,EADKwuwB,GADZx/B,KACkCvnkB,EAAQwmmB,EAAIn/xB,EAAIsiU,EAAI9iT,GAAI+iT,GAAIrvQ,GAAIqsuB,GAAI3gvB,GAAI6gvB,GAAIE,GAAIC,GAAIj0P,IACtDglI,IAAa,GACpDu9H,EACX,CAwCA,SAASC,GAAwBj9wB,EAAMynK,EAAQwmmB,EAAIn/xB,EAAIsiU,EAAI9iT,GAAI+iT,GAAIrvQ,GAAIqsuB,GAAI3gvB,GAAI6gvB,GAAIE,GAAIC,GAAIE,GAAIC,GAAIp0P,GAAQglI,IAGvGq3H,UAAqB92wB,EADK2uwB,GADZ3/B,KACkCvnkB,EAAQwmmB,EAAIn/xB,EAAIsiU,EAAI9iT,GAAI+iT,GAAIrvQ,GAAIqsuB,GAAI3gvB,GAAI6gvB,GAAIE,GAAIC,GAAIE,GAAIC,GAAIp0P,IAC9DglI,IAAa,GACpDw9H,EACX,CA0CA,SAASC,GAAwBl9wB,EAAMynK,EAAQwmmB,EAAIn/xB,EAAIsiU,EAAI9iT,GAAI+iT,GAAIrvQ,GAAIqsuB,GAAI3gvB,GAAI6gvB,GAAIE,GAAIC,GAAIE,GAAIC,GAAIE,GAAIC,GAAIv0P,GAAQglI,IAG/Gq3H,UAAqB92wB,EADK8uwB,GADZ9/B,KACkCvnkB,EAAQwmmB,EAAIn/xB,EAAIsiU,EAAI9iT,GAAI+iT,GAAIrvQ,GAAIqsuB,GAAI3gvB,GAAI6gvB,GAAIE,GAAIC,GAAIE,GAAIC,GAAIE,GAAIC,GAAIv0P,IACtEglI,IAAa,GACpDy9H,EACX,CA+BA,SAASC,GAAwBn9wB,EAAM1c,EAAQm8pB,GAG3Cq3H,UAAqB92wB,EADK8twB,GADZ9+B,KACkC1rvB,GACFm8pB,GAAa,GACpD09H,EACX,CAgBA,SAASC,GAAejkG,EAAUtjsB,EAAO2pD,GACrC,MAAMqusB,EAAQmB,KAQd,OANIo+B,GAAev/B,EADEsC,KACmBt6vB,IAGpCotxB,GAFch0B,KACAiD,KACwBrE,EAAO10D,EAAUtjsB,EAAOg4vB,EAAM7C,IAAWxrsB,GAAW,GAGvF49uB,EACX,CAsBA,SAASC,GAAwBlkG,EAAUtjsB,EAAO2pD,GAC9C,MAAMqusB,EAAQmB,KAEd,GAAIo+B,GAAev/B,EADEsC,KACmBt6vB,GAAQ,CAC5C,MAAMw9L,GAAQ47jB,KACR9C,GAAQ+F,KAGd+wB,GAAwB5vlB,GAAO84jB,GAAO0B,EAAO10D,EAAUtjsB,EADtCgxxB,GADEl2B,GAAuBt9jB,GAAMh+L,MACG82vB,GAAO0B,GACcrusB,GAAW,EAAI,CAG3F,OAAO69uB,EACX,CAoBA,MAAMnlxB,QAAItgB,EAOV,IAAI0lyB,GAAW,CAAC,KAAM,CAAC,CAAC,IAAK,KAAM,CAAC,KAAM,MAAOplxB,IAAI,CAAC,CAAC,KAAM,MAAOA,GAAGA,IAAI,CAAC,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OAAQ,CAAC,SAAU,SAAU,UAAW,YAAa,WAAY,SAAU,YAAa,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,OAAQA,GAAG,CAAC,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OAAQ,CAAC,UAAW,WAAY,QAAS,QAAS,MAAO,OAAQ,OAAQ,SAAU,YAAa,UAAW,WAAY,aAAcA,GAAG,CAAC,CAAC,IAAK,KAAM,CAAC,KAAM,MAAO,CAAC,gBAAiB,gBAAiB,EAAG,CAAC,EAAG,GAAI,CAAC,SAAU,WAAY,YAAa,mBAAoB,CAAC,SAAU,YAAa,cAAe,kBAAmB,CAAC,WAAYA,GAAG,eAAgBA,IAAI,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,OAAK,SAAK,SAAK,MAAO,KAAM,CAAC,YAAa,SAAU,eAAa,OAAQ,MAAO,IAAK,YAAa,CAAC,EAAG,MANl6B,SAASosZ,GAAOp+Z,GACZ,MAAe/X,EAAI0mB,KAAKosF,MAAMpsF,KAAK0B,IAAIrQ,IAAOhB,EAAIgB,EAAIjG,WAAW1M,QAAQ,YAAa,IAAInF,OAC1F,OAAU,IAAND,GAAiB,IAAN+W,EACJ,EACJ,CACX,GAMA,IAAIq4xB,GAAc,CAAC,EAQnB,SAAShrD,GAAmBl9uB,EAAM03uB,EAAUyF,GAChB,iBAAbzF,IACPyF,EAAYzF,EACZA,EAAW13uB,EAAKmoyB,EAAgBC,WAEpC1wD,EAAWA,EAASxyuB,cAAchH,QAAQ,KAAM,KAChDgqyB,GAAYxwD,GAAY13uB,EACpBm9uB,IACA+qD,GAAYxwD,GAAUywD,EAAgBE,WAAalrD,EAE3D,CAQA,SAASmrD,GAAev0X,GACpB,MAAMw0X,EAyFV,SAASlgF,EAAgBt0S,GACrB,OAAOA,EAAO7ua,cAAchH,QAAQ,KAAM,IAC9C,CA3F6BmqtB,CAAgBt0S,GACzC,IAAIvkZ,EAAQg5wB,GAAcD,GAC1B,GAAI/4wB,EACA,OAAOA,EAGX,MAAMs5rB,EAAey/E,EAAiBpjyB,MAAM,KAAK,GAEjD,GADAqqB,EAAQg5wB,GAAc1/E,GAClBt5rB,EACA,OAAOA,EAEX,GAAqB,OAAjBs5rB,EACA,OAAOm/E,GAEX,MAAM,IAAIz5C,GAAa,KAAgDtjuB,EAC3E,CAUA,SAASkptB,GAAsBrgU,GAE3B,OADau0X,GAAev0X,GAChBo0X,EAAgBM,eAAiB,IACjD,CASA,SAASn0D,GAAoBvgU,GAEzB,OADau0X,GAAev0X,GAChBo0X,EAAgBO,WAChC,CAKA,SAASF,GAAcD,GACnB,OAAMA,KAAoBL,KACtBA,GAAYK,GAAoBr4C,GAAQl1J,IAAMk1J,GAAQl1J,GAAG2tM,QAAUz4C,GAAQl1J,GAAG2tM,OAAO5gF,SACjFmoC,GAAQl1J,GAAG2tM,OAAO5gF,QAAQwgF,IAE3BL,GAAYK,EACvB,CAIA,SAASK,KACLV,GAAc,CAAC,CACnB,CAIA,IAAIC,EAAe,OAAfA,KAAe,IAECA,EAAgBC,SAAc,GAAK,WACnDD,EAAgBA,EAAgBU,iBAAsB,GAAK,mBAC3DV,EAAgBA,EAAgBW,qBAA0B,GAAK,uBAC/DX,EAAgBA,EAAgBY,WAAgB,GAAK,aACrDZ,EAAgBA,EAAgBa,eAAoB,GAAK,iBACzDb,EAAgBA,EAAgBc,aAAkB,GAAK,eACvDd,EAAgBA,EAAgBe,iBAAsB,GAAK,mBAC3Df,EAAgBA,EAAgB/xD,KAAU,GAAK,OAC/C+xD,EAAgBA,EAAgBgB,eAAoB,GAAK,iBACzDhB,EAAgBA,EAAgBiB,aAAkB,GAAK,eACvDjB,EAAgBA,EAAgBkB,WAAgB,IAAM,aACtDlB,EAAgBA,EAAgBmB,WAAgB,IAAM,aACtDnB,EAAgBA,EAAgBoB,eAAoB,IAAM,iBAC1DpB,EAAgBA,EAAgBqB,cAAmB,IAAM,gBACzDrB,EAAgBA,EAAgBsB,cAAmB,IAAM,gBACzDtB,EAAgBA,EAAgBM,aAAkB,IAAM,eACxDN,EAAgBA,EAAgBuB,eAAoB,IAAM,iBAC1DvB,EAAgBA,EAAgBwB,aAAkB,IAAM,eACxDxB,EAAgBA,EAAgByB,WAAgB,IAAM,aACtDzB,EAAgBA,EAAgB0B,eAAoB,IAAM,iBAC1D1B,EAAgBA,EAAgBO,WAAgB,IAAM,aACtDP,EAAgBA,EAAgBE,UAAe,IAAM,YAvBrDF,GAAe,GAgCnB,MAAM2B,EAAgB,CAAC,OAAQ,MAAO,MAAO,MAAO,QAY9CC,EAAoB,QAYpBC,EAAiB,CACnBpzmB,OAAQ,WAONqzmB,EAAa,CACfrzmB,OAAQ,OAKZ,IAAIszmB,EAAgB,OAAhBA,KAAgB,IAMCA,EAAiBC,MAAW,GAAK,QAIlDD,EAAiBA,EAAiBE,eAAoB,GAAK,iBAI3DF,EAAiBA,EAAiBG,QAAa,GAAK,UAdpDH,GAAgB,GAyBpB,IAAII,EAAcP,EAQlB,SAASQ,EAAY7yD,IA78hBrB,SAAS8yD,GAAcrhM,EAAQhmZ,GACb,MAAVgmZ,GACA1qlB,GAAW0kM,EAAKgmZ,EAAQ,KAAM,KAEtC,EA08hBIqhM,CAAc9yD,EAAW,mCACD,iBAAbA,IACP4yD,EAAc5yD,EAASxyuB,cAAchH,QAAQ,KAAM,KAE3D,CAoBA,SAAS80wB,GAAgCnX,EAAa3B,EAAc1B,GAChE,MAAMiyC,EAAyBvwC,EAAa+uB,kBACtCA,EAAoB76wB,MAAM2C,QAAQ05xB,GAA0BA,EAAuB,GAAKA,EAC9F,OAA0B,OAAtBxhB,EACOtW,GAAkC9W,EAAa3B,EAAc1B,GAI7DF,GAAYE,EAAMywB,GAEjC,CAMA,SAAShW,GAAwB/zwB,EAAUi0wB,EAAY3a,EAAO0a,EAAY/C,GACtE,MAAMs6B,GAAyBt3B,EAAW8V,kBAC1C,GAAI76wB,MAAM2C,QAAQ05xB,IAAyB,CAOvC,IAAIC,GAAax3B,EACby3B,GAAc,KAKlB,GAJwB,EAAlBx3B,EAAWl0wB,OACb0ryB,GAAcD,GACdA,GAAav6B,GAEE,OAAfu6B,KAAsD,IAA/Bv3B,EAAWnc,gBAClC,QAASl+vB,GAAI,EAAGA,GAAI2xyB,GAAuB1xyB,OAAQD,KAI/Ck3wB,GAAmB9wwB,EAAUwryB,GADXlyC,EAAMiyC,GAAuB3xyB,KACK6xyB,IAAa,EAAK,CAItF,CAgCA,SAASC,GAAmCC,EAAgBC,GAKxD,GADAD,EAAe3tyB,KAAK4tyB,GAChBD,EAAe9xyB,OAAS,EACxB,QAASD,EAAI+xyB,EAAe9xyB,OAAS,EAAGD,GAAK,EAAGA,IAAK,CACjD,MAAMiyyB,EAAgBF,EAAe/xyB,GAGhCkyyB,GAAWD,IACRE,GAAwBF,EAAeD,IACC,OAAxCI,GAAqBH,IAGrBI,GAAqBJ,EAAeD,EAASnlyB,MAAK,CAKtE,CACA,SAASqlyB,GAAWl0C,GAChB,QAAsB,GAAbA,EAAM73vB,KACnB,CACA,SAASgsyB,GAAwBF,EAAeD,GAC5C,OAAOE,GAAWF,IAAaC,EAAcplyB,MAAQmlyB,EAASnlyB,KAClE,CACA,SAASulyB,GAAqBp0C,GAC1B,MAAMnxvB,EAAQmxvB,EAAMmyB,kBACpB,OAAO76wB,MAAM2C,QAAQpL,GAASA,EAAM,GAAKA,CAC7C,CACA,SAASwlyB,GAAqBr0C,EAAOt2vB,GACjC,MAAMmF,EAAQmxvB,EAAMmyB,kBAChB76wB,MAAM2C,QAAQpL,GAEdA,EAAM,GAAKnF,GAGXuywB,GAAgBC,GAAiCC,IACjDnc,EAAMmyB,kBAAoBzoxB,EAElC,CAeA,SAAS4qyB,GAAQptmB,EAAOr4L,GACpB,MAAMnF,EAAQw9L,EAAMh+L,KAAK2F,GACzB,OAAc,OAAVnF,GAAmC,iBAAVA,EAClB,KASEA,EAAM2oB,eAAe,yBAA2B3oB,EACzDA,EAAMA,KAGd,CAkDA,SAAS6qyB,GAAuBrtmB,EAAO6smB,EAAgBllyB,GACnD,MAAMmxvB,EAAQgyB,GAAmB9qlB,EAAOr4L,EAAO,GAAgC,KAAM,MACrFilyB,UAAmCC,EAAgB/zC,GAC5CA,CACX,CASA,SAASw0C,GAAuBC,EAAM/yC,GAClC,MAAMryoB,EAAcqyoB,EAAM+yC,EAAKC,uBAC/B,OAAuB,OAAhBrlrB,EAAuBA,EAAeA,EAAc,GAAKA,EAAcA,CAClF,CACA,SAASslrB,GAA6BC,GAClC,OAAOA,IAAe,EAC1B,CACA,SAASC,GAA0BD,GAC/B,OAAqB,OAAbA,KAAwD,CACpE,CAuBA,IAAIE,GAAa,EAMbC,GAAoB,EAkExB,SAASC,GAAoB9tmB,EAAO+tmB,EAAgBvzC,EAAOmyC,GAEvD,MAAMzryB,EAAWs5vB,EAAM7C,IAEvB,IAMIq2C,GANAC,GAAU,KAOd,QAASnzyB,GAAI,EAAGA,GAAIizyB,EAAehzyB,OAAQD,KAAK,CAC5C,MAAMqyxB,GAAS4gB,EAAejzyB,IAC9B,GAAqB,iBAAVqyxB,GAAoB,CAC3B,MAAM+gB,GAAgBH,IAAiBjzyB,IACV,OAAzB0/vB,EAAM0zC,MAGN1zC,EAAM0zC,IAAiBxryB,GAAexB,EAAUisxB,IAAM,SAGpC,iBAAVA,GACZ,OAAiB,EAATA,IACJ,KAAK,EACD,MAAMghB,GAAYV,GAA6BtgB,IAQ/C,IAAIihB,GACAh5B,GAUJ,GAlBgB,OAAZ64B,KAIAA,GAAUE,GACVH,GAAYx5B,GAAiBtzwB,EAAUyryB,IAIvCwB,KAAcF,IACdG,GAAkBzB,EAClBv3B,GAAc44B,KAGdI,GAAkB,KAClBh5B,GAAc9a,GAAYE,EAAM2zC,MAGhB,OAAhB/4B,GAAsB,CAMtB,MAAMi5B,GAASV,GAA0BxgB,IAMzCnb,GAAmB9wwB,EAAUk0wB,GAFf5a,EAAM6zC,IAE6BD,IAAiB,GAClE,MAAMb,GAAOH,GAAQptmB,EAAOqumB,IAC5B,GAAa,OAATd,IAAiC,iBAATA,GAAmB,CAI3C,MAAMv1a,GAAYs1a,GAAuBC,GAAM/yC,GAC7B,OAAdxiY,IACA81a,GAAoB9tmB,EAAOutmB,GAAKrryB,OAAO81X,IAAYwiY,EAAOA,EAAM+yC,GAAKe,WAAU,EAI3F,MACJ,KAAK,EACD,MACMn0vB,GAAW4zvB,IAAiBjzyB,IAC5Bs/C,GAAY2zvB,IAAiBjzyB,IAGnC43xB,GAAoBxxxB,EAAUq5vB,GALL4yB,KAAW,EAK6B3yB,GAAQ,KAAM,KAAMrgtB,GAAUC,GAAW,WASlH,OAAQ+yuB,IACJ,KAAK8e,EACD,MAAMsC,GAAeR,IAAiBjzyB,IAChC0zyB,GAAmBT,IAAiBjzyB,IACV,OAA5B0/vB,EAAMg0C,KAQNl+B,GAHqB9V,EAAMg0C,IACvBl8B,GAAkBpxwB,EAAUqtyB,IAEF/zC,GAElC,MACJ,KAAKwxC,EACD,MAAMz0yB,GAAUw2yB,IAAiBjzyB,IAC3B2zyB,GAAmBV,IAAiBjzyB,IACV,OAA5B0/vB,EAAMi0C,KAQNn+B,GAHqB9V,EAAMi0C,IACvBj8B,GAAkBtxwB,EAAU3J,GAAS,MAEXijwB,GAKiD,CAIvG,CAWA,SAASk0C,GAAmB1umB,EAAOw6jB,EAAOm0C,EAAeC,EAAoBhB,GACzE,QAAS9yyB,GAAI,EAAGA,GAAI6zyB,EAAc5zyB,OAAQD,KAAK,CAE3C,MAAM+zyB,GAAWF,EAAc7zyB,IAEzBg0yB,GAAYH,IAAgB7zyB,IAClC,GAAI+zyB,GAAWjB,EAAY,CAEvB,IAAIpryB,GAAQ,GACZ,QAASizE,GAAI36E,GAAI,EAAG26E,IAAM36E,GAAIg0yB,GAAYr5tB,KAAK,CAC3C,MAAM03sB,GAASwhB,EAAcl5tB,IAC7B,GAAqB,iBAAV03sB,GACP3qxB,IAAS2qxB,WAEa,iBAAVA,GACZ,GAAIA,GAAS,EAET3qxB,IAASkuvB,GAAgB8J,EAAMo0C,EAAqBzhB,SAEnD,CACD,MAAM7sG,GAAa6sG,KAAW,EAC9B,OAAiB,EAATA,IACJ,KAAK,EACD,MAAMrnF,GAAW6oG,IAAgBl5tB,IAC3Bs5tB,GAAaJ,IAAgBl5tB,IAC7Bu5tB,GAAiBhvmB,EAAMh+L,KAAKs+qB,IAEJ,iBAAnB0uH,GAIPtc,GAAoBl4B,EAAM7C,IAAW6C,EAAMl6E,IAAY,KAAM0uH,GAAgBlpG,GAAUtjsB,GAAOusyB,IAG9Fnf,GAAwB5vlB,EAAOgvmB,GAAgBx0C,EAAO10D,GAAUtjsB,GAAOg4vB,EAAM7C,IAAWo3C,IAAY,GAExG,MACJ,KAAK,EACD,MAAME,GAAQz0C,EAAMl6E,IACV,OAAV2uH,IAAkB58B,GAAe7X,EAAM7C,IAAWs3C,GAAOzsyB,IACzD,MACJ,KAAK,EACD0syB,GAAmBlvmB,EAAOotmB,GAAQptmB,EAAOsgf,IAAYk6E,EAAOh4vB,IAC5D,MACJ,KAAK,EACD2syB,GAAmBnvmB,EAAOotmB,GAAQptmB,EAAOsgf,IAAYsuH,EAAoBp0C,GACnE,OAMzB,CACD,MAAM2yB,GAASwhB,EAAc7zyB,GAAI,GACjC,GAAIqyxB,GAAS,GAAyD,IAA1C,EAATA,IAAuF,CAKtG,MACMogB,GAAOH,GAAQptmB,EADFmtlB,KAAW,GAET3yB,EAAM+yC,GAAKC,uBACb,GACf2B,GAAmBnvmB,EAAOutmB,GAAMqB,EAAoBp0C,EAAK,EAIrE1/vB,IAAKg0yB,GAEb,CASA,SAASK,GAAmBnvmB,EAAOutmB,EAAMqB,EAAoBp0C,GAEzD,IAAI40C,EAAkB50C,EAAM+yC,EAAKC,uBACjC,GAAwB,OAApB4B,EAA0B,CAC1B,IAAItsW,GAAO8qW,GACPwB,EAAkB,IAGlBA,EAAkB50C,EAAM+yC,EAAKC,wBAA0B4B,EAEvDtsW,IAAO,GAEX4rW,GAAmB1umB,EAAOw6jB,EAAO+yC,EAAK38xB,OAAOw+xB,GAAkBR,EAAoB9rW,GAAI,CAE/F,CAWA,SAASosW,GAAmBlvmB,EAAOutmB,EAAM/yC,EAAOh4vB,GAE5C,MAAMw1X,EAgDV,SAASq3a,GAAaC,EAAeC,GACjC,IAAI5nyB,EAAQ2nyB,EAAc7prB,MAAMj+G,QAAQ+nyB,GACxC,IAAc,IAAV5nyB,EACA,OAAQ2nyB,EAAcruyB,MAClB,KAAK,EAAwB,CACzB,MAAMuuyB,EAlrBtB,SAASC,EAAcjtyB,EAAOuza,GAC1B,MAAM9E,EAASqlU,GAAoBvgU,EAApBugU,CAA4BngmB,SAAS3zI,EAAO,KACrDoF,EAASkkyB,EAAc76X,GAC7B,YAAmB1sa,IAAXqD,EAAwBA,EAAS,OAC7C,CA8qBqC6nyB,CAAcF,EApmBnD,SAASx6D,KACL,OAAOu3D,CACX,CAkmBiEv3D,IACjDptuB,EAAQ2nyB,EAAc7prB,MAAMj+G,QAAQgoyB,IACtB,IAAV7nyB,GAAiC,UAAjB6nyB,IAChB7nyB,EAAQ2nyB,EAAc7prB,MAAMj+G,QAAQ,UAExC,KACJ,CACA,KAAK,EACDG,EAAQ2nyB,EAAc7prB,MAAMj+G,QAAQ,SAKhD,OAAiB,IAAVG,EAAe,KAAOA,CACjC,CAnEsB0nyB,CAAa9B,EAAM/qyB,GAErC,GADsB8qyB,GAAuBC,EAAM/yC,KAC3BxiY,IACpB03a,GAAyB1vmB,EAAOutmB,EAAM/yC,GACtCA,EAAM+yC,EAAKC,uBAAuC,OAAdx1a,EAAqB,MAAQA,EAC/C,OAAdA,GAAoB,CAEpB,MAAM20a,GAAcnyC,EAAM+yC,EAAKe,WAC3B3B,IAEAmB,GAAoB9tmB,EAAOutmB,EAAKrryB,OAAO81X,GAAYwiY,EAAOmyC,GAAW,CAIrF,CAUA,SAAS+C,GAAyB1vmB,EAAOutmB,EAAM/yC,GAC3C,IAAI40C,EAAkB9B,GAAuBC,EAAM/yC,GACnD,GAAwB,OAApB40C,EAA0B,CAC1B,MAAMO,EAAcpC,EAAKr2yB,OAAOk4yB,GAChC,QAASt0yB,GAAI,EAAGA,GAAI60yB,EAAY50yB,OAAQD,KAAK,CACzC,MAAM80yB,GAAiBD,EAAY70yB,IACnC,GAAI80yB,GAAiB,EAAG,CAEpB,MAAM99B,GAAQvX,GAAiBq1C,GAAgBp1C,GACrC,OAAVsX,IAAkBG,GAAiBzX,EAAM7C,IAAWma,GAAK,MAIzD49B,GAAyB1vmB,EAAOotmB,GAAQptmB,GAAQ4vmB,IAAiBp1C,EAAK,EAItF,CA4BA,SAASq1C,KACL,MAAM/uT,EAAS,GACf,IACIulR,EACAypC,EAFAjwT,GAAS,EA2Bb,SAASkwT,GAASxC,GAAM/yC,IACpB36Q,EAAS,EACT,MAAM13X,GAAcmlrB,GAAuBC,GAAM/yC,IAG7Cs1C,EAFgB,OAAhB3nrB,GAEWolrB,GAAKr2yB,OAAOixH,IAGZu3nB,EAEnB,CACA,SAASswD,KACL,GAAInwT,EAASiwT,EAAS/0yB,OAAQ,CAC1B,MAAMk1yB,GAAeH,EAASjwT,KAE9B,OAAIowT,GAAe,EACD5pC,EAAO4pC,KAKrBnvT,EAAO5hf,KAAK2gf,EAAQiwT,GAKpBC,GAFa1pC,EAAOpP,IAAOj1vB,MADRiuyB,IAGJ5pC,GACR2pC,KAAwB,CAInC,OAAsB,IAAlBlvT,EAAO/lf,OACA,MAGP+0yB,EAAWhvT,EAAOx5e,MAClBu4e,EAASiB,EAAOx5e,MACT0oyB,KAGnB,CACA,OAjDA,SAASE,EAA0Bj/B,GAAmBzW,IAElD,IADA6L,EAAS7L,GACF15Q,EAAO/lf,QACV+lf,EAAOx5e,MAEXyoyB,UAAS9+B,GAAkBzuwB,MAAOg4vB,IAC3Bw1C,EACX,CA2CJ,CAgNA,MAAMG,GAAiB,2BACjBC,GAAa,uDACbC,GAAa,oBACbC,GAAmB,uDACnBC,GAAU,SACVC,GAAqB,+BACrBC,GAAY,kCAQZC,GAAsB,UAmH5B,SAASC,GAAwB3wmB,EAAOg3lB,EAAW4Z,EAAgBp2C,EAAOq2C,EAAe72xB,GAAM82xB,IAC3F,MAAMC,GAAcnlB,GAAa5rlB,EAAOw6jB,EAAO,EAAG,MAClD,IAAI2yB,GAAS4jB,IAAe7E,EAAiBC,MACzCtuC,GAAczB,KACd46B,IAAcn5B,KAIdA,GAAc,MAEE,OAAhBA,KAKAsvB,IAAU+e,EAAiBE,gBAE3B0E,KACA3jB,IAAU+e,EAAiBG,QAr6ZnC,SAAS2E,GAAgC9jwB,QACR3oC,IAAzBwswB,KAGAA,GAAuB7juB,IAE/B,CAg6ZQ8jwB,CAAgCnB,KAEpCgB,EAAc3xyB,KAAKiuxB,GAAiB,OAATnzwB,GAAgB,GAAKA,IAGhD,MAAM8+uB,GAAQgyB,GAAmB9qlB,EAAO+wmB,GAAaD,GAAQ,GAAyB,EAAiC,OAAT92xB,GAAuC,GAAMA,GAAM,MACjK4yxB,GAAmCgE,EAAgB93C,IACnD,MAAM+lC,GAAW/lC,GAAMnxvB,MACvB00vB,UAAgBvD,IAAO,GACH,OAAhB+E,IAAwBm5B,IAAcn5B,IA12B9C,SAASozC,GAA0Bn4C,EAAOnxvB,GAEtC,IAAIsjxB,EAAoBnyB,EAAMmyB,kBACJ,OAAtBA,GACAlW,GAAgBC,GAAiCC,IACjDgW,EAAoBnyB,EAAMmyB,kBACtB,CAAC,KAA2CtjxB,KAzsiBxD,SAASupyB,GAAY/lM,EAAQ2lJ,EAAU3riB,GAC7BgmZ,GAAU2lJ,GACZrwuB,GAAW0kM,EAAKgmZ,EAAQ2lJ,EAAU,KAE1C,CAwsiBQogD,CAAY9gyB,MAAM2C,QAAQk4wB,IAAoB,EAAM,wBACpDA,EAAkB/rxB,KAAKyI,GAE/B,CAi2BQspyB,CAA0BpzC,GAAaghC,IAEpC/lC,EACX,CAoBA,SAASq4C,GAAwCnxmB,EAAOg3lB,EAAW4Z,EAAgBC,EAAelC,EAAen0C,GAAOxgvB,IACpH,MAAMo3xB,GAAap3xB,GAAKwX,MAAM2+wB,IACxBr3C,GAAQ63C,GAAwB3wmB,EAAOg3lB,EAAW4Z,EAAgBp2C,GAAOq2C,EAAeO,GAAa,KAAOp3xB,IAAM,GACpHo3xB,IACAC,GAA6B1C,EAAe30xB,GAAM8+uB,GAAMnxvB,MAAO,KAAM,EAAG,KAEhF,CA6CA,SAAS0pyB,GAA6B1C,EAAep9wB,EAAK+/wB,EAAiBn3vB,EAAUo3vB,EAAcxC,IAG/F,MAAMyC,GAAY7C,EAAc5zyB,OAC1B02yB,GAAYD,GAAY,EAC9B7C,EAAczvyB,KAAK,KAAM,MACzB,MAAMi3B,GAAaq7wB,GAAY,EAIzBE,GAAYngxB,EAAIpqB,MAAMgpyB,IAC5B,IAAIrtW,GAAO,EACX,QAASrtX,GAAI,EAAGA,GAAIi8tB,GAAU32yB,OAAQ06E,KAAK,CACvC,MAAMk8tB,GAAYD,GAAUj8tB,IAC5B,GAAQ,EAAJA,GAAO,CAEP,MAAMmnrB,GAAe20C,EAAep7pB,SAASw7pB,GAAW,IACxDhD,EAAczvyB,MAAK,EAAK09vB,IACxB95T,IAAc8uW,GAAUh1C,GAAY,KAEjB,KAAd+0C,IAELhD,EAAczvyB,KAAKyyyB,GAAS,CAGpChD,SAAczvyB,KAAKoyyB,GAAmB,GACjCn3vB,EAAW,EAAgC,IAC5CA,GACAw0vB,EAAczvyB,KAAKi7C,EAAU40vB,IAEjCJ,EAAc6C,IAAa1uW,GAC3B6rW,EAAc8C,IAAa9C,EAAc5zyB,OAASo7B,GAC3C2sa,EACX,CAYA,SAAS+uW,GAAcC,GACnB,IAAI/nyB,EAAQ,EACZ,QAASjP,EAAI,EAAGA,EAAIg3yB,EAAQ/2yB,OAAQD,IAAK,CACrC,MAAMqyxB,EAAS2kB,EAAQh3yB,GAED,iBAAXqyxB,GAAuBA,EAAS,GACvCpjxB,IAGR,OAAOA,CACX,CASA,SAAS6nyB,GAAUh1C,GACf,OAAO,GAAKp7uB,KAAK4lC,IAAIw1sB,EAAc,GACvC,CAOA,SAASm1C,GAA+B37xB,GACpC,IAAIob,EAIAwgxB,GAHAh/xB,EAAM,GACNrL,EAAQ,EACRsqyB,GAAa,EAEjB,KAAsD,QAA9CzgxB,EAAQg/wB,GAAmBn5uB,KAAKjhD,KAC/B67xB,EAMGzgxB,EAAM,KAAQ,GAAE++wB,OAAWyB,KAAazB,OACxC5oyB,EAAQ6pB,EAAM7pB,MACdsqyB,GAAa,IAPjBj/xB,GAAOoD,EAAQ2V,UAAUpkB,EAAO6pB,EAAM7pB,MAAQ6pB,EAAM,GAAGz2B,QACvDi3yB,GAAaxgxB,EAAM,GACnBygxB,GAAa,GAWrBj/xB,UAAOoD,EAAQ/Z,MAAMsL,GACdqL,CACX,CAoCA,SAASk/xB,GAASlymB,EAAOw6jB,EAAOm0C,EAAeR,EAAWmB,EAAehB,IAErE,IAAI6D,GAAc,EAClB,MAAM5E,GAAO,CACTtsyB,KAAMquyB,EAAcruyB,KACpBusyB,sBAAuB5hB,GAAa5rlB,EAAOw6jB,EAAO,EAAG,MACrD8zC,aACA7orB,MAAO,GACPvjH,OAAQ,GACRhL,OAAQ,GACR0Z,OAAQ,KAkOhB,SAASwhyB,GAAmBxhyB,EAAQ0+xB,EAAe3nyB,GAC/CiJ,EAAO1R,KAAK0yyB,GAAUtC,EAAc+C,aAAc,GAAG,EAAK/C,EAAc+C,YAAa1qyB,GAAS,EAAqC,EACvI,EAlOIyqyB,CAAmBzD,EAAeW,EAAehB,IAxlCrD,SAASgE,GAAQtymB,EAAOr4L,EAAO4lyB,GAC3B,MAAMz0C,EAAQ94jB,EAAMh+L,KAAK2F,GAGX,OAAVmxvB,EACA94jB,EAAMh+L,KAAK2F,GAAS4lyB,EAIpBz0C,EAAMt2vB,MAAQ+qyB,CAEtB,CA8kCI+E,CAAQtymB,EAAOsumB,GAAWf,IAC1B,MAAMt9xB,GAASq/xB,EAAcr/xB,OAC7B,QAASnV,GAAI,EAAGA,GAAImV,GAAOlV,OAAQD,KAAK,CAEpC,MAAMy3yB,GAAWtiyB,GAAOnV,IAClB03yB,GAAa,GACnB,QAAS/8tB,GAAI,EAAGA,GAAI88tB,GAASx3yB,OAAQ06E,KAAK,CACtC,MAAMjzE,GAAQ+vyB,GAAS98tB,IACvB,GAAqB,iBAAVjzE,GAAoB,CAE3B,MAAMiwyB,GAAWD,GAAWtzyB,KAAKsD,IAAS,EAE1C+vyB,GAAS98tB,IAAM,gBAAOg9tB,kBAG9BN,GAAcO,GAAa1ymB,EAAOutmB,GAAM/yC,EAAOm0C,EAAeR,EAAWmB,EAAc7prB,MAAM3qH,IAAIy3yB,GAASn/xB,KAAK,IAAKo/xB,IAChHL,GAEJA,IAgNR,SAASQ,GAAmB/hyB,EAAQuhyB,EAAaxqyB,GAC7CiJ,EAAO1R,KAAKizyB,EAAa,EAAGxqyB,GAAS,EAAqC,EAC9E,CAjNQgryB,CAAmBhE,EAAewD,GAAa7D,GAEvD,CAQA,SAASsE,GAAcxwlB,GACnB,MAAM38F,EAAQ,GACRx1G,EAAS,GACf,IAAI4iyB,EAAU,EACVR,EAAc,EAWlB,MAAMpryB,GAAQ6ryB,GAVd1wlB,EAAUA,EAAQliN,QAAQowyB,GAAkB,SAAU/+wB,GAAKqkK,GAAS30L,IAChE,OACI4xyB,EADS,WAAT5xyB,GACU,EAGA,EAEdoxyB,EAAcl8pB,SAASy/C,GAAQv5L,MAAM,GAAI,IAClC,EACX,IAGA,QAAS+tC,GAAM,EAAGA,GAAMnjC,GAAMlM,QAAS,CACnC,IAAIqM,GAAMH,GAAMmjC,MAAOv6B,OACP,IAAZgjyB,IAEAzryB,GAAMA,GAAIlH,QAAQ,oBAAqB,OAEvCkH,GAAIrM,QACJ0qH,EAAMvmH,KAAKkI,IAEf,MAAMkxH,GAASw6qB,GAA6B7ryB,GAAMmjC,OAC9Cq7E,EAAM1qH,OAASkV,EAAOlV,QACtBkV,EAAO/Q,KAAKo5H,GAAM,CAI1B,MAAO,CAAEr3H,KAAM4xyB,EAASR,YAAaA,EAAa5srB,QAAOx1G,SAC7D,CAWA,SAAS6iyB,GAA6B1wlB,GAClC,IAAKA,EACD,MAAO,GAEX,IAAI2wlB,EAAU,EACd,MAAMC,EAAa,GACb/twB,EAAU,GACVguwB,EAAS,QAGf,IAAIzhxB,GACJ,IAFAyhxB,EAAO37uB,UAAY,EAEZ9lC,GAAQyhxB,EAAO57uB,KAAK+qJ,IAAU,CACjC,MAAMh4K,GAAM5Y,GAAM7pB,MAClB,GAAgB,KAAZ6pB,GAAM,IAEN,GADAwhxB,EAAW1ryB,MACc,GAArB0ryB,EAAWj4yB,OAAa,CAExB,MAAMqgK,GAAQgnD,EAAQr2L,UAAUgnxB,EAAS3owB,IACrCkmwB,GAAiB72xB,KAAK2hJ,IACtBn2H,EAAQ/lC,KAAK0zyB,GAAcx3oB,KAG3Bn2H,EAAQ/lC,KAAKk8J,IAEjB23oB,EAAU3owB,GAAM,OAGnB,CACD,GAAyB,GAArB4owB,EAAWj4yB,OAAa,CACxB,MAAMgxB,GAAYq2L,EAAQr2L,UAAUgnxB,EAAS3owB,IAC7CnF,EAAQ/lC,KAAK6sB,IACbgnxB,EAAU3owB,GAAM,EAEpB4owB,EAAW9zyB,KAAK,IAAG,EAG3B,MAAM6sB,GAAYq2L,EAAQr2L,UAAUgnxB,GACpC9twB,SAAQ/lC,KAAK6sB,IACNkZ,CACX,CAKA,SAASytwB,GAAa1ymB,EAAOutmB,EAAM/yC,EAAOm0C,EAAeR,EAAWl2a,GAAUi7a,GAAgBV,IAC1F,MAAMtwyB,GAAS,GACThL,GAAS,GACT0Z,GAAS,GAMf28xB,EAAK9nrB,MAAMvmH,KAAK+4X,IAChBs1a,EAAKrryB,OAAOhD,KAAKgD,IACjBqryB,EAAKr2yB,OAAOgI,KAAKhI,IACjBq2yB,EAAK38xB,OAAO1R,KAAK0R,IAEjB,MAAM4qwB,GADkBpC,GAAmB3B,MACFiC,oBAAoBw5B,IAEvDC,GAAgBv3B,GAAmBJ,KAAqBA,GAC9D,OAAI23B,GACOC,GAAYpzmB,EAAOutmB,EAAM/yC,EAAOm0C,EAAezsyB,GAAQhL,GAAQ0Z,GAAQuiyB,GAAehF,EAAWqE,GAAY,GAG7G,CAEf,CACA,SAASY,GAAYpzmB,EAAOutmB,EAAM/yC,EAAO64C,EAAqBnxyB,EAAQhL,GAAQ0Z,GAAQxZ,GAAY+2yB,GAAWqE,GAAY7nmB,IACrH,IAAIwnmB,GAAc,EACdxnD,GAAcvzvB,GAAWoiC,WAC7B,KAAOmxtB,IAAa,CAChB,MAAMo6C,GAAWnZ,GAAa5rlB,EAAOw6jB,EAAO,EAAG,MAC/C,OAAQ7P,GAAY5yvB,UAChB,KAAKC,KAAKC,aACN,MAAMsE,GAAUouvB,GACVpzvB,GAAUgF,GAAQhF,QAAQ2P,cAChC,GAAIizwB,GAAehvvB,eAAe5zB,IAAU,CACxC+7yB,GAAuBpxyB,EAAQ8pyB,EAAgBz0yB,GAAS42yB,GAAWpJ,IACnE/kmB,EAAMh+L,KAAK+iyB,IAAYxtyB,GACvB,MAAMwjxB,GAAUx+wB,GAAQy1J,WACxB,QAASl3J,GAAI,EAAGA,GAAIigxB,GAAQhgxB,OAAQD,KAAK,CACrC,MAAM8lF,GAAOm6rB,GAAQv6uB,KAAK1lC,IACpBy4yB,GAAgB3ytB,GAAKlnF,KAAKwN,cACX05E,GAAKp+E,MAAMgvB,MAAM2+wB,IAG9B91B,GAAYlvvB,eAAeooxB,KAEvBlC,GAA6BzgyB,GAAQgwE,GAAKp+E,MAAOuiyB,GAAUnktB,GAAKlnF,KAAM,EADtE0gxB,GAAUm5B,IAC+Dz5B,GAGA,MAWjF05B,GAAmBtxyB,EAAQ6iyB,GAAUnktB,GAAI,CAIjDuxtB,GAAciB,GAAYpzmB,EAAOutmB,EAAM/yC,EAAO64C,EAAqBnxyB,EAAQhL,GAAQ0Z,GAAQ+5uB,GAAao6C,GAAUyN,GAAY7nmB,GAAQ,GAClIwnmB,GACJsB,GAAcv8yB,GAAQ6tyB,GAAUp6lB,GAAK,CAEzC,MACJ,KAAK3yM,KAAK4ixB,UACN,MAAMp4wB,GAAQmovB,GAAY5rvB,aAAe,GACnCqyyB,GAAa5uyB,GAAMgvB,MAAM2+wB,IAC/BmD,GAAuBpxyB,EAAQ,KAAMkvyB,GAAa,GAAK5uyB,GAAO2ryB,GAAWpJ,IACzE0O,GAAcv8yB,GAAQ6tyB,GAAUp6lB,IAC5BymmB,KACAe,GACId,GAA6BzgyB,GAAQpO,GAAOuiyB,GAAU,KAAM,EAAG,MAAQoN,IAE/E,MACJ,KAAKn6yB,KAAK07yB,aAEN,MAAMC,GAActD,GAAWh5uB,KAAKszrB,GAAY5rvB,aAAe,IAC/D,GAAI40yB,GAAa,CACb,MACMrE,GAAgBkD,GADCr8pB,SAASw9pB,GAAY,GAAI,KAGhDL,GAAuBpxyB,EAAQ+pyB,EAAyD,GAAIkC,GAAWpJ,IACvGmN,GAASlymB,EAAOw6jB,EAAO64C,EAAqBlF,GAAWmB,GAAevK,IACtE6O,GAAmB18yB,GAAQ6tyB,GAAUp6lB,GAAK,EAItDggjB,GAAcA,GAAYtnvB,YAE9B,OAAO8uyB,EACX,CACA,SAASsB,GAAcv8yB,EAAQyQ,EAAOgjM,GACpB,IAAVA,GACAzzM,EAAOgI,KAAKyI,EAEpB,CACA,SAASisyB,GAAmB18yB,EAAQyQ,EAAOgjM,GACzB,IAAVA,IACAzzM,EAAOgI,MAAMyI,GACbzQ,EAAOgI,KAAKyI,GAEpB,CAOA,SAAS2ryB,GAAuBpxyB,EAAQ02L,EAAQ5+K,EAAM65xB,EAAmBC,GACtD,OAAXl7mB,GACA12L,EAAOhD,KAAK05L,GAEhB12L,EAAOhD,KAAK8a,EAAM85xB,EArwCtB,SAASC,GAAgB5mB,EAAQghB,EAAWE,GAGxC,OAAOlhB,EAASghB,GAAa,GAAwCE,GAAU,CACnF,CAiwCmC0F,CAAgB,EAAqCF,EAAmBC,GAC3G,CACA,SAASN,GAAmBtxyB,EAAQ6iyB,EAAUnktB,GAC1C1+E,EAAOhD,KAAK6lyB,GAAY,EAAoC,EAA8BnktB,EAAKlnF,KAAMknF,EAAKp+E,MAC9G,CAGA,MAAMwxyB,GAAmB,EACnBC,GAAqC,yBACrCC,GAAyB,qDACzBC,GAAqB,4CACrBC,GAA6B,kBAC7BC,GAAiB,qCACjBC,GAA2B,OAC3BC,GAAwB,aAmI9B,SAASC,GAAY7syB,EAAO8syB,EAAcC,GAAmB,GACzD,MAAM10mB,EAAQ47jB,KACRpB,EAAQmB,KACR8gC,GAAgBpkC,EAAgB1wvB,EAEhCyO,GAAU0kvB,GAAY96jB,EAAMi5E,OAAQw7hB,GACpC52C,GAAczB,KAChBp8jB,EAAMuikB,iBA5sBd,SAASoyC,GAAyB30mB,EAAO40mB,EAAkBp6C,EAAO7yvB,EAAOyO,EAASs+xB,IAC9E,MAAM1d,GAAY56B,KACZy0C,GAAgB,GAChBlC,GAAgB,GAChBkG,GAAqB,CAAC,IAK5Bz+xB,EAiSJ,SAAS0+xB,GAA0B1+xB,EAASs+xB,GACxC,GA9CJ,SAASK,GAAsBL,GAC3B,OAA4B,IAArBA,CACX,CA4CQK,CAAsBL,GAEtB,OAAO3C,GAA+B37xB,GAErC,CAED,MAAMujE,EAAQvjE,EAAQ5O,QAAS,IAAGktyB,IAAmBnE,MAAY,EAAImE,EAAiB9nyB,WAAW7R,OAC3F+G,EAAMsU,EAAQskM,OAAO,IAAIvjJ,OAAQ,GAAEo5uB,gBAAoBmE,IAAmBnE,OAChF,OAAOwB,GAA+B37xB,EAAQ2V,UAAU4tD,EAAO73E,GAAI,CAE3E,CA5ScgzyB,CAA0B1+xB,EAASs+xB,IAC7C,MAAMM,GA3CV,SAASC,GAAYzyyB,GACjB,OAAOA,EAAMtC,QAAQwwyB,GAAqB,IAC9C,CAyCqBuE,CAAY7+xB,GAASjP,MAAMspyB,IAC5C,QAAS31yB,GAAI,EAAGA,GAAIk6yB,GAASj6yB,OAAQD,KAAK,CACtC,IAAI0H,GAAQwyyB,GAASl6yB,IACrB,GAAS,EAAJA,GAiCA,CAGD,MAAMo6yB,GAAoC,KAAxB1yyB,GAAMq0I,WAAW,GAG7BlvI,IAFOnF,GAAMq0I,WAAWq+pB,GAAY,EAAI,GAEhC78C,EAAgBx1qB,OAAOszD,SAAS3zI,GAAMupB,UAAWmpxB,GAAY,EAAI,KAC/E,GAAIA,GACAL,GAAmBtuyB,QACnB81vB,GAAgBD,MAAyB,OAExC,CACD,MAAMtD,GAAQu0C,GAAuBrtmB,EAAO60mB,GAAmB,GAAIltyB,IACnEktyB,GAAmBj7wB,QAAQ,IAC3ByiuB,GAAgBvD,IAAO,EAAI,MA/ChB,CAEf,MAAM7xvB,GAAQ6ryB,GAA6BtwyB,IAC3C,QAASizE,GAAI,EAAGA,GAAIxuE,GAAMlM,OAAQ06E,KAAK,CACnC,IAAI5pD,GAAO5kB,GAAMwuE,IACjB,GAAS,EAAJA,GAQA,CAED,MAAM65tB,GAAgBzjxB,GAOtB,GAA6B,iBAAlByjxB,GACP,MAAM,IAAIvyyB,MAAO,sCAAqCqZ,eAM1D87xB,GAASlymB,EAAOw6jB,EAAOm0C,GAAeiG,EAAkBtF,GAJ9BqB,GAAwB3wmB,EAAOg3lB,GAAW6d,GAAmB,GAAIr6C,EAAOq2C,GAAyE,IAAI,GACxIlpyB,MAG4C,KApBtE,KAFAkkB,IAGTslxB,GAAwCnxmB,EAAOg3lB,GAAW6d,GAAmB,GAAIhE,GAAelC,GAAen0C,EAHtG3uuB,GAGiH,GAyC9Im0K,EAAMh+L,KAAK2F,GAAS,CAChBzF,OAAQ2uyB,GACRjgyB,OAAQ+9xB,GAEhB,CAyoBQgG,CAAyB30mB,EAAuB,OAAhB69jB,GAAuB,EAAIA,GAAYl2vB,MAAO6yvB,EAAOiiC,GAAermxB,GAASs+xB,GAEjH,MAAMS,GAAQn1mB,EAAMh+L,KAAKy6xB,IAEnBrnB,GAAcd,GAAmBt0kB,EADX69jB,KAAgBrD,EAAMlD,IAAU,KAAOuG,GACArD,IAn2CvE,SAAS46C,GAAmB56C,EAAOq2C,EAAez7B,EAAag5B,GAC3D,MAAMltyB,EAAWs5vB,EAAM7C,IACvB,QAAS78vB,GAAI,EAAGA,GAAI+1yB,EAAc91yB,OAAQD,KAAK,CAC3C,MAAMqyxB,GAAS0jB,EAAc/1yB,MACvBkf,GAAO62xB,EAAc/1yB,IAErBu6yB,IAAaloB,GAAS+e,EAAiBE,kBAAoBF,EAAiBE,eAC5EzkyB,GAAQwlxB,KAAW+e,EAAiBC,MAC1C,IAAIr6B,GAAQtX,EAAM7yvB,IACJ,OAAVmqwB,KAGAA,GAAQtX,EAAM7yvB,KAPCwlxB,GAAS+e,EAAiBG,WAAaH,EAAiBG,QAQvDnryB,EAASqB,cAAcyX,IAAQtX,GAAexB,EAAU8Y,KAExEq7xB,IAA6B,OAAhBjgC,GACbpD,GAAmB9wwB,EAAUk0wB,EAAatD,GAAOs8B,GAAiB,EAAK,CAGnF,EAs1CIgH,CAAmB56C,EAAO26C,GAAMjzyB,OAAQkzwB,GAHhBvX,IAAmC,EAAnBA,GAAY58vB,KAChDu5vB,EAAMqD,GAAYl2vB,OAClB,MAEJq1vB,IAAe,EACnB,CAOA,SAASs4C,KACLt4C,IAAe,EACnB,CA2BA,SAASu4C,GAAO5tyB,EAAO8syB,EAAcC,GACjCF,GAAY7syB,EAAO8syB,EAAcC,GACjCY,IACJ,CASA,SAASE,GAAiB7tyB,EAAO40xB,GAC7B,MAAMv8lB,EAAQ47jB,KAERnrsB,EAAQqqsB,GAAY96jB,EAAMi5E,OAAQsjhB,IA3nB5C,SAASkZ,GAAwBz1mB,EAAOr4L,EAAOsI,GAE3C,MAAMylyB,EADkBz5C,KACqBt0vB,MACvCgnyB,GAAgB,GAItB,GAAI3umB,EAAMuikB,iBAAyC,OAAtBvikB,EAAMh+L,KAAK2F,GAAiB,CACrD,QAAS7M,GAAI,EAAGA,GAAImV,EAAOlV,OAAQD,IAAK,EAAG,CACvC,MAAMq/C,GAAWlqC,EAAOnV,IAClBsb,GAAUnG,EAAOnV,GAAI,GAC3B,GAAgB,KAAZsb,GAAgB,CAMhB,GAAIg6xB,GAAW32xB,KAAKrD,IAChB,MAAM,IAAIrZ,MAAO,8DAA6DqZ,QAMlFi7xB,GAA6B1C,GAAev4xB,GAASs/xB,EAAsBv7vB,GAAU03vB,GAAclD,IAAgB,KAAI,EAG/H3umB,EAAMh+L,KAAK2F,GAASgnyB,GAE5B,CA+lBI8G,CAAwBz1mB,EAAOr4L,EAAQ0wvB,EAAe5nsB,EAC1D,CAWA,SAASklvB,GAAUnzyB,GAEfozyB,OA38CJ,SAASA,GAAWC,GACZA,IACAjI,IAA2B,GAAKpsxB,KAAK4lC,IAAIymvB,GAAmB,KAEhEA,IACJ,CAs8CI+H,CAAW7b,GADGp+B,KACmBmB,KAAoBt6vB,IAC9CmzyB,EACX,CASA,SAASG,GAAYnuyB,IAh9CrB,SAASouyB,GAAU/1mB,EAAOw6jB,EAAO7yvB,GAC7B,GAAIkmyB,GAAoB,EAAG,CAEvB,MAAMsH,EAAQn1mB,EAAMh+L,KAAK2F,GAIzB+myB,GAAmB1umB,EAAOw6jB,EAFJpqvB,MAAM2C,QAAQoiyB,GAASA,EAAQA,EAAMvkyB,OAChC+rvB,KAAoBkxC,GAAoB,EACCD,GAAU,CAGlFA,GAAa,EACbC,GAAoB,CACxB,CAq8CIkI,CAAUn6C,KAAYD,KAAYh0vB,EAAQ0wvB,EAC9C,CAqBA,SAAS29C,GAAkB5/xB,EAAS6/xB,EAAe,CAAC,GAChD,OAvOJ,SAASC,GAAgB9/xB,EAAS6/xB,EAAe,CAAC,GAW9C,IAAIruyB,EAASwO,EACb,GAAI69xB,GAAmCx6xB,KAAKrD,GAAU,CAClD,MAAMk/C,EAAU,CAAC,EACX6gvB,EAAmB,CAACnC,IAC1BpsyB,EAASA,EAAO1H,QAAQg0yB,GAAwB,CAAC99wB,GAAGggxB,GAAKC,MACrD,MAAMvzyB,GAAUszyB,IAAOC,GACjBC,GAAehhvB,EAAQxyD,KAAY,GAUzC,GATKwzyB,GAAav7yB,SACd+H,GAAQqE,MAAM,KAAKlL,QAAS6oO,KACxB,MAAMtzM,GAAQszM,GAAYtzM,MAAM+ixB,IAC1BgC,GAAa/kxB,GAAQ2kH,SAAS3kH,GAAM,GAAI,IAAMwixB,GAC9CwC,GAAqBlC,GAAyB76xB,KAAKqrN,IACzDwxkB,GAAap3yB,KAAK,CAACq3yB,GAAYC,GAAoB1xkB,IAAY,GAEnExvK,EAAQxyD,IAAWwzyB,KAElBA,GAAav7yB,OACd,MAAM,IAAIgC,MAAO,6CAA4C+F,MAEjE,MAAM2zyB,GAAoBN,EAAiBA,EAAiBp7yB,OAAS,GACrE,IAAIsY,GAAM,EAEV,QAASvY,GAAI,EAAGA,GAAIw7yB,GAAav7yB,OAAQD,KACrC,GAAIw7yB,GAAax7yB,IAAG,KAAO27yB,GAAmB,CAC1CpjyB,GAAMvY,GACN,MAIR,MAAOy7yB,GAAYC,GAAoB1xkB,IAAewxkB,GAAajjyB,IACnE,OAAImjyB,GACAL,EAAiB7uyB,MAEZmvyB,KAAsBF,IAC3BJ,EAAiBj3yB,KAAKq3yB,IAG1BD,GAAa7uyB,OAAO4L,GAAK,GAClByxN,IACV,CAGL,OAAK7iO,OAAOtE,KAAKs4yB,GAAcl7yB,SAM/B6M,EAASA,EAAO1H,QAAQi0yB,GAAoB,CAAC3ixB,EAAOmoD,EAAOvyE,GAAKq0K,GAAOusP,GAAMlma,KAClEm0yB,EAAa9qxB,eAAe/jB,IAAQ,GAAEuyE,IAAQs8tB,EAAa7uyB,MAAOtF,KAAQ0vB,GAKrF5pB,EAASA,EAAO1H,QAAQk0yB,GAA4B,CAAC5ixB,EAAOpqB,IACjD6uyB,EAAa9qxB,eAAe/jB,GAAO6uyB,EAAa7uyB,GAAOoqB,GAMlE5pB,EAASA,EAAO1H,QAAQm0yB,GAAgB,CAAC7ixB,EAAOpqB,KAC5C,GAAI6uyB,EAAa9qxB,eAAe/jB,GAAM,CAClC,MAAM0L,GAAOmjyB,EAAa7uyB,GAC1B,IAAK0L,GAAK/X,OACN,MAAM,IAAIgC,MAAO,qCAAoCy0B,eAAmBpqB,KAE5E,OAAO0L,GAAKvM,OAAK,CAErB,OAAOirB,KAEJ5pB,CACX,CAoJWsuyB,CAAgB9/xB,EAAS6/xB,EACpC,CAqDA,SAASS,GAAgB9wpB,EAAUq/mB,EAAc0xC,EAAuB9kC,EAAapR,GAEjF,GADA76mB,EAAWwqmB,EAAkBxqmB,GACzBx1I,MAAM2C,QAAQ6yI,GAId,QAAS9qJ,GAAI,EAAGA,GAAI8qJ,EAAS7qJ,OAAQD,KACjC47yB,GAAgB9wpB,EAAS9qJ,IAAImqwB,EAAc0xC,EAAuB9kC,EAAapR,OAGlF,CACD,MAAMzgkB,GAAQ47jB,KACRpB,GAAQmB,KACd,IAAIpovB,GAAQirwB,GAAe54nB,GAAYA,EAAWwqmB,EAAkBxqmB,EAAS5rJ,SACzE48yB,GAAkB12B,GAAkBt6nB,GACxC,MAAMkzmB,GAAQmD,KACR46C,GAAqC,QAAxB/9C,GAAMkM,gBACnBz4jB,GAAWusjB,GAAMqG,eACjBiG,GAAwBtM,GAAMkM,iBAAmB,GACvD,GAAIwZ,GAAe54nB,KAAcA,EAASzqJ,MAAO,CAE7C,MAAMO,GAAU,IAAI8kwB,GAAoBo2C,GAAiBn2C,EAAgBjsU,IACnEsiX,GAAuBtvyB,GAAQ+L,GAAO0xvB,EAAcxE,EAAiBo2C,GAAaA,GAAazxC,GAAuB74jB,KAC/F,IAAzBuqmB,IACA5zC,GAAmBd,GAA+BtJ,GAAO0B,IAAQx6jB,GAAOzsL,IACxEwjyB,GAAgC/2mB,GAAOp6C,EAAUq/mB,EAAalqwB,QAC9DkqwB,EAAa/lwB,KAAKqU,IAClBulvB,GAAMqG,iBACNrG,GAAMsG,eACFqB,IACA3H,GAAMkM,iBAAmB,SAE7B2xC,EAAsBz3yB,KAAKxD,IAC3B8+vB,GAAMt7vB,KAAKxD,MAGXi7yB,EAAsBG,IAAwBp7yB,GAC9C8+vB,GAAMs8C,IAAwBp7yB,QAGjC,CAqBD,MAAMs7yB,GAAgCxvyB,GAAQ+L,GAAO0xvB,EAAc4xC,GAAazxC,GAAuB74jB,IACjG0qmB,GAAoCzvyB,GAAQ+L,GAAO0xvB,EAAc4xC,GAAYA,GAAazxC,IAG1F8xC,GAAgCD,IAAqC,GACvEN,EAAsBM,IAC1B,GAAIx2C,IAAmBy2C,KAClBz2C,KAL6Bu2C,IAAiC,GAC/DL,EAAsBK,KAIyB,CAE/C9zC,GAAmBd,GAA+BtJ,GAAO0B,IAAQx6jB,GAAOzsL,IACxE,MAAM7X,GAgItB,SAASy7yB,GAAa9vB,EAAW1/wB,EAAO84vB,EAAgBoR,EAAan6tB,GACjE,MAAMh8C,GAAU,IAAI8kwB,GAAoB6mB,EAAW5mB,EAAgBjsU,IACnE94b,UAAQP,MAAQ,GAChBO,GAAQiM,MAAQA,EAChBjM,GAAQ07yB,mBAAqB,EAC7BC,GAAgB37yB,GAASg8C,EAAGm6tB,IAAgBpR,GACrC/kwB,EACX,CAvIgCy7yB,CAAa12C,EAAiB62C,GAAoCC,GAA+BZ,EAAsB57yB,OAAQ0lwB,EAAgBoR,EAAa+kC,KACvKn2C,GAAkBy2C,KACnBP,EAAsBM,IAAmCL,gBAAkBl7yB,IAE/Eq7yB,GAAgC/2mB,GAAOp6C,EAAUq/mB,EAAalqwB,OAAQ,GACtEkqwB,EAAa/lwB,KAAKqU,IAClBulvB,GAAMqG,iBACNrG,GAAMsG,eACFqB,IACA3H,GAAMkM,iBAAmB,SAE7B2xC,EAAsBz3yB,KAAKxD,IAC3B8+vB,GAAMt7vB,KAAKxD,GAAO,MAMlBq7yB,GAAgC/2mB,GAAOp6C,EAAUoxpB,IAAgC,EAAKA,GAClFC,GAHmBI,GAAgBV,EAAsBl2C,EAAiBw2C,GAC1ED,IAAgCJ,IAAkBn2C,GAAkBoR,KAIvEpR,GAAkBoR,GAAeqlC,IAClCP,EAAsBM,IAAmCG,sBAIzE,CASA,SAASL,GAAgC/2mB,EAAOp6C,EAAU4xpB,EAAcC,GACpE,MAAMC,EAAyBl5B,GAAe54nB,GACxC+xpB,GA/kXV,SAASC,GAAgBp1yB,GACrB,QAASA,EAAM2G,QACnB,CA6kXoCyuyB,CAAgBhypB,GAChD,GAAI8xpB,GAA0BC,GAAyB,CAInD,MAAM35yB,IAFa25yB,GAA0BvnD,EAAkBxqmB,EAASz8I,UAAYy8I,GACvDjgI,UACC3nB,YAC9B,GAAIA,GAAa,CACb,MAAM2zN,GAAQ3xB,EAAM2/jB,eAAiB3/jB,EAAM2/jB,aAAe,IAC1D,IAAK+3C,GAA0B9xpB,EAASzqJ,MAAO,CAG3C,MAAM08yB,GAAyBlmlB,GAAMnqN,QAAQgwyB,IACd,IAA3BK,GACAlmlB,GAAMzyN,KAAKs4yB,EAAc,CAACC,EAAgBz5yB,KAG1C2zN,GAAMkmlB,GAAyB,GAAG34yB,KAAKu4yB,EAAgBz5yB,GAAW,MAItE2zN,GAAMzyN,KAAKs4yB,EAAcx5yB,GAAW,EAIpD,CAKA,SAASq5yB,GAAgBF,EAAcz7yB,EAASo8yB,GAC5C,OAAIA,GACAX,EAAaC,qBAEVD,EAAah8yB,MAAM+D,KAAKxD,GAAW,CAC9C,CAIA,SAAS8L,GAAQg5B,EAAM9T,EAAK7qB,EAAOC,GAC/B,QAAShH,EAAI+G,EAAO/G,EAAIgH,EAAKhH,IACzB,GAAI4xB,EAAI5xB,KAAO0lC,EACX,OAAO1lC,EAEf,OAAO,CACX,CAIA,SAASy8yB,GAA8BvvwB,EAAGu1tB,EAAOw6C,EAAOj/C,GACpD,OAAOk/C,GAAa1hzB,KAAK6E,MAAO,GACpC,CAMA,SAASm8yB,GAAkCtvwB,EAAGu1tB,EAAO/C,EAAO1B,GACxD,MAAMm/C,EAAY3hzB,KAAK6E,MACvB,IAAIyM,GACJ,GAAItR,KAAKsgzB,gBAAiB,CACtB,MAAMsB,GAAiB5hzB,KAAKsgzB,gBAAgBQ,mBACtCe,GAAiBvzC,GAAkBpK,EAAOA,EAAMvD,IAAQ3gwB,KAAKsgzB,gBAAgBjvyB,MAAOmxvB,GAE1FlxvB,GAASuwyB,GAAe97yB,MAAM,EAAG67yB,IAEjCF,GAAaC,EAAWrwyB,IAExB,QAAS9M,GAAIo9yB,GAAgBp9yB,GAAIq9yB,GAAep9yB,OAAQD,KACpD8M,GAAO1I,KAAKi5yB,GAAer9yB,IAAE,MAIjC8M,GAAS,GAETowyB,GAAaC,EAAWrwyB,IAE5B,OAAOA,EACX,CAIA,SAASowyB,GAAaC,EAAWrwyB,GAC7B,QAAS9M,EAAI,EAAGA,EAAIm9yB,EAAUl9yB,OAAQD,IAElC8M,EAAO1I,MAAKxD,EADIu8yB,EAAUn9yB,OAG9B,OAAO8M,CACX,CA6CA,SAASy0b,GAAmBhxb,EAAW+syB,EAAgB,IACnD,OAAQtimB,IACJA,EAAW0gjB,kBACP,CAACr7rB,EAAKk9uB,IAhQlB,SAAS7hD,GAAkBr7rB,EAAK9vD,EAAW+syB,GACvC,MAAMp4mB,EAAQ47jB,KACd,GAAI57jB,EAAMuikB,gBAAiB,CACvB,MAAMsP,EAAc3Y,GAAe/9rB,GAEnCu7uB,GAAgB0B,EAAep4mB,EAAMh+L,KAAMg+L,EAAM0ikB,UAAWmP,GAAa,GAEzE6kC,GAAgBrryB,EAAW20L,EAAMh+L,KAAMg+L,EAAM0ikB,UAAWmP,GAAa,EAAK,CAElF,CAwPuBrb,CAAkBr7rB,EACzBk9uB,EAAqBA,EAAmBhtyB,GAAaA,EACrD+syB,EAAa,CAG7B,CAQA,MAAME,IAaN,MAAMC,IAaN,SAASv3D,GAAe51uB,EAAUiiC,GAC9B,OAAO,IAAIg0sB,GAAYj2uB,EAAUiiC,GAAkB,KACvD,CAOA,MAAMmrwB,GAAoBx3D,GAC1B,MAAMK,WAAoBi3D,GACtBnizB,YAAY63wB,EAAc5gkB,GACtBh3M,QACAE,KAAK82M,QAAUA,EAEf92M,KAAKmizB,qBAAuB,GAC5BnizB,KAAKoizB,WAAa,GAOlBpizB,KAAKqizB,yBAA2B,IAAIn1wB,GAAyBltC,MAC7D,MAAMm/vB,EAAcC,GAAesY,GAGnC13wB,KAAKmizB,qBAAuBp2B,GAAc5sB,EAAY5pU,WACtDv1b,KAAKsizB,YAAcjzB,GAAuC3X,EAAc5gkB,EAAS,CAC7E,CAAEpzM,QAASs+yB,GAAe7vyB,SAAUnS,MAAQ,CACxC0D,QAASknxB,GACTz4wB,SAAUnS,KAAKqizB,2BAEpB5jyB,GAAUi5vB,GAAe,IAAI3vwB,IAAI,CAAC,iBAIrC/H,KAAKsizB,YAAY74B,8BACjBzpxB,KAAKqpC,SAAWrpC,KAAKsizB,YAAYt+yB,IAAI0zwB,EACzC,CACI3zwB,eACA,OAAO/D,KAAKsizB,WAChB,CACAx2yB,UAEI,MAAM/H,EAAW/D,KAAKsizB,aACrBv+yB,EAASy1E,WAAaz1E,EAAS+H,UAChC9L,KAAKoizB,WAAWz8yB,QAAQkV,GAAMA,KAC9B7a,KAAKoizB,WAAa,IACtB,CACA92yB,UAAU0C,GAENhO,KAAKoizB,WAAWx5yB,KAAKoF,EACzB,EAEJ,MAAMspC,WAAwB2qwB,GAC1BpizB,YAAY0izB,GACRzizB,QACAE,KAAKuizB,WAAaA,CACtB,CACA32yB,OAAOmrC,GACH,OAAO,IAAIg0sB,GAAY/qvB,KAAKuizB,WAAYxrwB,EAC5C,EAEJ,MAAMyrwB,WAAsCR,GACxCnizB,YAAYkV,EAAW1I,EAAQ6L,GAC3BpY,QACAE,KAAKqizB,yBAA2B,IAAIn1wB,GAAyBltC,MAC7DA,KAAKqpC,SAAW,KAChB,MAAMtlC,EAAW,IAAIykxB,GAAW,IACzBzzwB,EACH,CAAErR,QAASs+yB,GAAe7vyB,SAAUnS,MACpC,CAAE0D,QAASknxB,GAA4Bz4wB,SAAUnS,KAAKqizB,2BACvDh2yB,GAAUk8wB,KAAmBrwwB,EAAQ,IAAInQ,IAAI,CAAC,iBACjD/H,KAAK+D,SAAWA,EAChBA,EAAS0lxB,6BACb,CACA39wB,UACI9L,KAAK+D,SAAS+H,SAClB,CACAR,UAAU0C,GACNhO,KAAK+D,SAASuH,UAAU0C,EAC5B,EAeJ,SAAS+8B,GAA0Bh2B,EAAW1I,EAAQo2yB,EAAY,MAE9D,OADgB,IAAID,GAA8BztyB,EAAW1I,EAAQo2yB,GACtD1+yB,QACnB,CAEA,IAKM2+yB,GAAiB,MAAvB,MAAMA,EACF7izB,YAAYirC,GACR9qC,KAAK8qC,UAAYA,EACjB9qC,KAAK2izB,gBAAkB,IAAIj9yB,GAC/B,CACAk9yB,8BAA8BpkB,GAC1B,IAAKA,EAAar8E,WACd,OAAO,KAEX,IAAKnitB,KAAK2izB,gBAAgBlpyB,IAAI+kxB,EAAatzxB,IAAK,CAC5C,MAAM6J,EAAY+xwB,GAA4B,EAAO0X,EAAa7zxB,MAC5Dk4yB,EAAqB9tyB,EAAUtQ,OAAS,EAC1CsmC,GAA0B,CAACh2B,GAAY/U,KAAK8qC,UAAY,cAAa0zvB,EAAa7zxB,KAAKvH,SACvF,KACJpD,KAAK2izB,gBAAgBn8yB,IAAIg4xB,EAAatzxB,GAAI23yB,EAAkB,CAEhE,OAAO7izB,KAAK2izB,gBAAgB3+yB,IAAIw6xB,EAAatzxB,GACjD,CACAxD,cACI,IACI,UAAW3D,KAAY/D,KAAK2izB,gBAAgBhpyB,SACvB,OAAb5V,GACAA,EAAS+H,SAMrB,CAHA,QAEI9L,KAAK2izB,gBAAgBh7yB,OACzB,CACJ,EAGJ+6yB,SAAkBx9yB,WAAQwuvB,GAAmB,CACzCz2uB,MAAOylyB,EACPn5yB,WAAY,cACZnE,QAAS,IAAM,IAAIs9yB,EAAkB/syB,GAAS8yB,OAnC5Ci6wB,CAAiB,KA+CvB,SAASI,GAAoBtjmB,GACzBA,EAAW8+iB,sBAAyBvntB,GACzBA,EAAe/yC,IAAI0+yB,IAAmBE,8BAA8BpjmB,EAEnF,CA6BA,SAASujmB,GAAa98yB,GAElB,MAAMiY,EAAUi7vB,GAAYlzwB,GAC5B,GAAgB,OAAZiY,EACA,OAAO,KACX,QAA0BjQ,IAAtBiQ,EAAQ/P,UAAyB,CACjC,MAAM+1vB,EAAQhmvB,EAAQgmvB,MACtB,GAAc,OAAVA,EACA,OAAO,KAEXhmvB,EAAQ/P,UA1rchB,SAAS60yB,GAAwBh5H,EAAWk6E,GACxC,MAAM1B,EAAQ0B,EAAMvD,IAAOj1vB,KAAKs+qB,IACxB6+E,iBAAgBnG,mBAAoBF,EAC5C,OAAOE,GAAkB,EAAKwB,EAAM2E,EAAiBnG,GAAmB,IAC5E,CAsrc4BsgD,CAAwB9kyB,EAAQ8rqB,UAAWk6E,EAAK,CAExE,OAAOhmvB,EAAQ/P,SACnB,CAaA,SAASq5B,GAAWvhC,IA+TpB,SAASg9yB,GAAiB/2yB,GACtB,UAAWmxD,QAAY,OAAiBnxD,aAAiBmxD,SACrD,MAAM,IAAI52D,MAAM,oCAExB,CAlUIw8yB,CAAiBh9yB,GACjB,MAAMiY,EAAUi7vB,GAAYlzwB,GACtBi+vB,EAAQhmvB,EAAUA,EAAQgmvB,MAAQ,KACxC,OAAiB,OAAVA,EAAiB,KAAOA,EAAMhD,GACzC,CAgBA,SAASgiD,GAAmBC,GACxB,MAAMjlyB,EAAUi7vB,GAAYgqC,GAC5B,IAGI92yB,EAHA63vB,EAAQhmvB,EAAUA,EAAQgmvB,MAAQ,KACtC,GAAc,OAAVA,EACA,OAAO,KAEX,KAA6B,IAAtBA,EAAMvD,IAAOh2vB,OAAwC0B,EAASuuwB,GAAe1W,KAChFA,EAAQ73vB,EAEZ,OAAsB,IAAf63vB,EAAMtD,IAAuC,KAAOsD,EAAMhD,GACrE,CAYA,SAASkiD,GAAkBD,GACvB,MAAMj/C,EAAQoW,GAAiB6oC,GAC/B,OAAiB,OAAVj/C,EAAiB,CAAC2W,GAAe3W,IAAU,EACtD,CAWA,SAASm/C,GAAYF,GACjB,MAAMjlyB,EAAUi7vB,GAAYgqC,GACtBj/C,EAAQhmvB,EAAUA,EAAQgmvB,MAAQ,KACxC,OAAc,OAAVA,EACOt/vB,GAASimxB,KAEb,IAAIhb,GADG3L,EAAMvD,IAAOj1vB,KAAKwS,EAAQ8rqB,WACTk6E,EACnC,CAsDA,SAASo/C,GAAczizB,GAEnB,GAAIA,aAAgBs7I,KAChB,MAAO,GAEX,MAAMj+H,EAAUi7vB,GAAYt4wB,GACtBqjwB,EAAQhmvB,EAAUA,EAAQgmvB,MAAQ,KACxC,GAAc,OAAVA,EACA,MAAO,GAEX,MACMl6E,EAAY9rqB,EAAQ8rqB,UAC1B,OAFck6E,EAAMvD,KAERj1vB,KAAKs+qB,SAGU/7qB,IAAvBiQ,EAAQygvB,aACRzgvB,EAAQygvB,WAAaib,GAAyB5vF,EAAWk6E,IAI/B,OAAvBhmvB,EAAQygvB,WAAsB,GAAK,IAAIzgvB,EAAQygvB,aAP3C,EAQf,CAYA,SAAS4kD,GAAuBC,GAC5B,MAAQ3jzB,eAAgB2jzB,EACxB,IAAK3jzB,EACD,MAAM,IAAI4G,MAAM,2CAIpB,MAAM+3xB,EAAe3/B,GAAgBh/vB,GACrC,GAAI2+xB,EACA,MAAO,CACHj0lB,OAAQi0lB,EAAaj0lB,OACrB4vE,QAASqkhB,EAAarkhB,QACtBhvQ,cAAeqzxB,EAAarzxB,cAC5BgzvB,gBAAiBqgC,EAAatgC,OAASjB,GAAwBC,OAC3DD,GAAwB7yP,SAGpC,MAAMmlQ,EAAezQ,GAAgBj/vB,GACrC,OAAI0vwB,EACO,CAAEhlkB,OAAQglkB,EAAahlkB,OAAQ4vE,QAASo1f,EAAap1f,SAEzD,IACX,CAiCA,SAAS89K,GAAewrX,GACpB,OAAOtqC,GAAYsqC,GAAsBh5C,MAC7C,CA8CA,SAASi5C,GAAaz9yB,GAElB,MAAM09yB,EAAWxqC,GAAYlzwB,GACvBi+vB,EAAqB,OAAby/C,EAAoB,KAAOA,EAASz/C,MAClD,GAAc,OAAVA,EACA,MAAO,GACX,MACMwZ,EAAWxZ,EAAMjD,IACjBuc,GAFQtZ,EAAMvD,IAEG8c,QACjB9msB,GAAY,GAClB,GAAI6msB,IAAYE,EACZ,QAASl5wB,GAAI,EAAGA,GAAIg5wB,GAAS/4wB,QAAS,CAClC,MAAMm/yB,GAAapmC,GAASh5wB,MACtBq/yB,GAAcrmC,GAASh5wB,MAC7B,GAA0B,iBAAfo/yB,GAAyB,CAChC,MAAMxgzB,GAAOwgzB,GACPE,GAAkB9/C,GAAYE,EAAM2/C,KACpC71yB,GAAW0vwB,EAASF,GAASh5wB,OAC7Bu/yB,GAAmBvmC,GAASh5wB,MAM9ByB,GAAW69yB,IACXntuB,GAAU/tE,KAAK,CAAE3C,UAAS7C,QAAM4K,YAAU65xB,WAFC,kBAArBkc,IAAiCA,GAEDp5yB,KAHhB,kBAArBo5yB,IAAkCA,IAAoB,EAAK,MAAQ,UAGxB,EAK5EptuB,UAAU3gD,KAAKguxB,IACRrtuB,EACX,CACA,SAASqtuB,GAAchzxB,EAAGC,GACtB,OAAID,EAAE5tB,MAAQ6tB,EAAE7tB,KACL,EACJ4tB,EAAE5tB,KAAO6tB,EAAE7tB,MAAO,EAAK,CAClC,CAMA,SAAS6gzB,GAAmB9mwB,GACxB,YAAoBlvC,IAAbkvC,EAAIxyC,WAA6CsD,IAAvBkvC,EAAI8itB,qBACHhyvB,IAA9BkvC,EAAIojtB,qBACZ,CAkCA,SAAS2jD,GAAiBv5yB,EAAMqqwB,EAAYH,EAAgBW,GACxD,OAAOxY,GAAc,KACjB,MAAMmnD,EAAQx5yB,EACK,OAAfqqwB,IACImvC,EAAMtvxB,eAAe,oBAAsC5mB,IAArBk2yB,EAAMnvC,WAC5CmvC,EAAMnvC,WAAWpswB,QAAQoswB,GAGzBmvC,EAAMnvC,WAAaA,GAGJ,OAAnBH,IAIAsvC,EAAMtvC,eAAiBA,GAEJ,OAAnBW,IAMI2uC,EAAM3uC,eADN2uC,EAAMtvxB,eAAe,wBAA8C5mB,IAAzBk2yB,EAAM3uC,eACzB,IAAK2uC,EAAM3uC,kBAAmBA,GAG9BA,IAIvC,CA8BA,SAAS4uC,GAAgBC,EAAYC,EAAQrsyB,GACzC,MAAMquvB,EAAeJ,KAAmBm+C,EAClCngD,EAAQmB,KACd,OAAOnB,EAAMoC,KAAkB4nB,GAC3BqV,GAAcr/B,EAAOoC,EAAcruvB,EAAUqsyB,EAAOjsyB,KAAKJ,GAAWqsyB,KACpE9gB,GAAWt/B,EAAOoC,EAC1B,CAaA,SAASi+C,GAAgBF,EAAYC,EAAQ75vB,EAAKxyC,GAC9C,OAAOusyB,GAAsBn/C,KAAYa,KAAkBm+C,EAAYC,EAAQ75vB,EAAKxyC,EACxF,CAcA,SAASwsyB,GAAgBJ,EAAYC,EAAQ3gB,EAAMC,EAAM3rxB,GACrD,OAAOysyB,GAAsBr/C,KAAYa,KAAkBm+C,EAAYC,EAAQ3gB,EAAMC,EAAM3rxB,EAC/F,CAeA,SAAS0syB,GAAgBN,EAAYC,EAAQ3gB,EAAMC,EAAMG,EAAM9rxB,IAC3D,OAAO2syB,GAAsBv/C,KAAYa,KAAkBm+C,EAAYC,EAAQ3gB,EAAMC,EAAMG,EAAM9rxB,GACrG,CAgBA,SAAS4syB,GAAgBR,EAAYC,EAAQ3gB,EAAMC,EAAMG,EAAME,GAAMhsxB,IACjE,OAAO6syB,GAAsBz/C,KAAYa,KAAkBm+C,EAAYC,EAAQ3gB,EAAMC,EAAMG,EAAME,GAAMhsxB,GAC3G,CAiBA,SAAS8syB,GAAgBV,EAAYC,EAAQ3gB,EAAMC,EAAMG,EAAME,GAAM+gB,GAAM/syB,IACvE,MAAMquvB,GAAeJ,KAAmBm+C,EAClCngD,GAAQmB,KACRw+B,GAAYG,GAAgB9/B,GAAOoC,GAAcq9B,EAAMC,EAAMG,EAAME,IACzE,OAAOR,GAAev/B,GAAOoC,GAAe,EAAG0+C,KAASnhB,GACpDN,GAAcr/B,GAAOoC,GAAe,EAAGruvB,GAAUqsyB,EAAOjsyB,KAAKJ,GAAS0rxB,EAAMC,EAAMG,EAAME,GAAM+gB,IAC1FV,EAAO3gB,EAAMC,EAAMG,EAAME,GAAM+gB,KACnCxhB,GAAWt/B,GAAOoC,GAAe,EACzC,CAkBA,SAAS2+C,GAAgBZ,EAAYC,EAAQ3gB,EAAMC,EAAMG,EAAME,GAAM+gB,GAAME,GAAMjtyB,IAC7E,MAAMquvB,GAAeJ,KAAmBm+C,EAClCngD,GAAQmB,KACRw+B,GAAYG,GAAgB9/B,GAAOoC,GAAcq9B,EAAMC,EAAMG,EAAME,IACzE,OAAOP,GAAgBx/B,GAAOoC,GAAe,EAAG0+C,GAAME,KAASrhB,GAC3DN,GAAcr/B,GAAOoC,GAAe,EAAGruvB,GAAUqsyB,EAAOjsyB,KAAKJ,GAAS0rxB,EAAMC,EAAMG,EAAME,GAAM+gB,GAAME,IAChGZ,EAAO3gB,EAAMC,EAAMG,EAAME,GAAM+gB,GAAME,KACzC1hB,GAAWt/B,GAAOoC,GAAe,EACzC,CAmBA,SAAS6+C,GAAgBd,EAAYC,EAAQ3gB,EAAMC,EAAMG,EAAME,GAAM+gB,GAAME,GAAME,GAAMntyB,IACnF,MAAMquvB,GAAeJ,KAAmBm+C,EAClCngD,GAAQmB,KACd,IAAIw+B,GAAYG,GAAgB9/B,GAAOoC,GAAcq9B,EAAMC,EAAMG,EAAME,IACvE,OAAOH,GAAgB5/B,GAAOoC,GAAe,EAAG0+C,GAAME,GAAME,KAASvhB,GACjEN,GAAcr/B,GAAOoC,GAAe,EAAGruvB,GAAUqsyB,EAAOjsyB,KAAKJ,GAAS0rxB,EAAMC,EAAMG,EAAME,GAAM+gB,GAAME,GAAME,IACtGd,EAAO3gB,EAAMC,EAAMG,EAAME,GAAM+gB,GAAME,GAAME,KAC/C5hB,GAAWt/B,GAAOoC,GAAe,EACzC,CAoBA,SAAS++C,GAAgBhB,EAAYC,EAAQ3gB,EAAMC,EAAMG,EAAME,GAAM+gB,GAAME,GAAME,GAAME,GAAMrtyB,IACzF,MAAMquvB,GAAeJ,KAAmBm+C,EAClCngD,GAAQmB,KACRw+B,GAAYG,GAAgB9/B,GAAOoC,GAAcq9B,EAAMC,EAAMG,EAAME,IACzE,OAAOD,GAAgB9/B,GAAOoC,GAAe,EAAG0+C,GAAME,GAAME,GAAME,KAASzhB,GACvEN,GAAcr/B,GAAOoC,GAAe,EAAGruvB,GAAUqsyB,EAAOjsyB,KAAKJ,GAAS0rxB,EAAMC,EAAMG,EAAME,GAAM+gB,GAAME,GAAME,GAAME,IAC5GhB,EAAO3gB,EAAMC,EAAMG,EAAME,GAAM+gB,GAAME,GAAME,GAAME,KACrD9hB,GAAWt/B,GAAOoC,GAAe,EACzC,CAgBA,SAASi/C,GAAgBlB,EAAYC,EAAQkB,EAAMvtyB,GAC/C,OAAOwtyB,GAAsBpgD,KAAYa,KAAkBm+C,EAAYC,EAAQkB,EAAMvtyB,EACzF,CAQA,SAASytyB,GAA2BxhD,EAAOyhD,GAEvC,MAAMC,EAAkB1hD,EAAMyhD,GAC9B,OAAOC,IAAoB13B,QAAYjgxB,EAAY23yB,CACvD,CAaA,SAASpB,GAAsBtgD,EAAO2hD,EAAaxB,EAAYC,EAAQ75vB,EAAKxyC,IACxE,MAAMquvB,GAAeu/C,EAAcxB,EACnC,OAAO5gB,GAAev/B,EAAOoC,GAAc77sB,GACvC84uB,GAAcr/B,EAAOoC,GAAe,EAAGruvB,GAAUqsyB,EAAOjsyB,KAAKJ,GAASwyC,GAAO65vB,EAAO75vB,IACpFi7vB,GAA2BxhD,EAAOoC,GAAe,EACzD,CAcA,SAASo+C,GAAsBxgD,EAAO2hD,EAAaxB,EAAYC,EAAQ3gB,EAAMC,GAAM3rxB,IAC/E,MAAMquvB,GAAeu/C,EAAcxB,EACnC,OAAO3gB,GAAgBx/B,EAAOoC,GAAcq9B,EAAMC,IAC9CL,GAAcr/B,EAAOoC,GAAe,EAAGruvB,GAAUqsyB,EAAOjsyB,KAAKJ,GAAS0rxB,EAAMC,IAAQ0gB,EAAO3gB,EAAMC,KACjG8hB,GAA2BxhD,EAAOoC,GAAe,EACzD,CAeA,SAASs+C,GAAsB1gD,EAAO2hD,EAAaxB,EAAYC,EAAQ3gB,EAAMC,GAAMG,GAAM9rxB,IACrF,MAAMquvB,GAAeu/C,EAAcxB,EACnC,OAAOvgB,GAAgB5/B,EAAOoC,GAAcq9B,EAAMC,GAAMG,IACpDR,GAAcr/B,EAAOoC,GAAe,EAAGruvB,GAAUqsyB,EAAOjsyB,KAAKJ,GAAS0rxB,EAAMC,GAAMG,IAAQugB,EAAO3gB,EAAMC,GAAMG,KAC7G2hB,GAA2BxhD,EAAOoC,GAAe,EACzD,CAiBA,SAASw+C,GAAsB5gD,EAAO2hD,EAAaxB,EAAYC,EAAQ3gB,EAAMC,GAAMG,GAAME,GAAMhsxB,IAC3F,MAAMquvB,GAAeu/C,EAAcxB,EACnC,OAAOrgB,GAAgB9/B,EAAOoC,GAAcq9B,EAAMC,GAAMG,GAAME,IAC1DV,GAAcr/B,EAAOoC,GAAe,EAAGruvB,GAAUqsyB,EAAOjsyB,KAAKJ,GAAS0rxB,EAAMC,GAAMG,GAAME,IAAQqgB,EAAO3gB,EAAMC,GAAMG,GAAME,KACzHyhB,GAA2BxhD,EAAOoC,GAAe,EACzD,CAgBA,SAASm/C,GAAsBvhD,EAAO2hD,EAAaxB,EAAYC,EAAQkB,EAAMvtyB,IACzE,IAAIquvB,GAAeu/C,EAAcxB,EAC7BxgB,IAAY,EAChB,QAASr/xB,GAAI,EAAGA,GAAIghzB,EAAK/gzB,OAAQD,KAC7Bi/xB,GAAev/B,EAAOoC,KAAgBk/C,EAAKhhzB,OAAQq/xB,IAAY,GAEnE,OAAOA,GAAYN,GAAcr/B,EAAOoC,GAAcg+C,EAAO1zxB,MAAM3Y,GAASutyB,IACxEE,GAA2BxhD,EAAOoC,GAC1C,CAWA,SAASw/C,GAAOz0yB,EAAO00yB,GACnB,MAAMr8mB,EAAQ47jB,KACd,IAAIzF,EACJ,MAAMsmC,EAAgB90xB,EAAQ0wvB,EAC1Br4jB,EAAMuikB,iBAGNpM,EAkCR,SAASmmD,GAAW5izB,EAAM4P,GACtB,GAAIA,EACA,QAASxO,EAAIwO,EAASvO,OAAS,EAAGD,GAAK,EAAGA,IAAK,CAC3C,MAAMq7vB,EAAU7svB,EAASxO,GACzB,GAAIpB,IAASy8vB,EAAQz8vB,KACjB,OAAOy8vB,EAOvB,CA9CkBmmD,CAAWD,EAAUr8mB,EAAMivlB,cACrCjvlB,EAAMh+L,KAAKy6xB,GAAiBtmC,EACxBA,EAAQv0vB,YACPo+L,EAAM2/jB,eAAiB3/jB,EAAM2/jB,aAAe,KAAKzgwB,KAAKu9xB,EAAetmC,EAAQv0vB,YAIlFu0vB,EAAUn2jB,EAAMh+L,KAAKy6xB,GAEzB,MAAM8f,GAAcpmD,EAAQz6vB,UAAYy6vB,EAAQz6vB,QAAU09vB,GAAcjD,EAAQl1vB,OAC1EuiwB,GAA+B1R,GAAwBt9T,IAC7D,IAGI,MAAMkxU,GAA+B1D,IAAwB,GACvDw6C,GAAeD,KACrBv6C,UAAwB0D,IACxBtiuB,GAAM48J,EAAO27jB,KAAY8gC,EAAe+f,IACjCA,EAMX,CALA,QAII1qD,GAAwB0R,GAC5B,CACJ,CAmDA,SAASi5C,GAAY90yB,EAAOgzyB,EAAY58e,GACpC,MAAM0+d,EAAgB90xB,EAAQ0wvB,EACxBmC,EAAQmB,KACR6gD,GAAergiB,GAAKq+e,EAAOiiC,GACjC,OAAOigB,GAAOliD,EAAOiiC,GACjBqe,GAAsBtgD,EAAOgC,KAAkBm+C,EAAY6B,GAAahknB,UAAWulI,EAAIy+e,IACvFA,GAAahknB,UAAUulI,EAC/B,CAcA,SAAS4+e,GAAYh1yB,EAAOgzyB,EAAY58e,EAAIC,GACxC,MAAMy+d,EAAgB90xB,EAAQ0wvB,EACxBmC,GAAQmB,KACR6gD,GAAergiB,GAAKq+e,GAAOiiC,GACjC,OAAOigB,GAAOliD,GAAOiiC,GACjBue,GAAsBxgD,GAAOgC,KAAkBm+C,EAAY6B,GAAahknB,UAAWulI,EAAIC,EAAIw+e,IAC3FA,GAAahknB,UAAUulI,EAAIC,EACnC,CAeA,SAAS4+e,GAAYj1yB,EAAOgzyB,EAAY58e,EAAIC,EAAIg9d,GAC5C,MAAMyB,GAAgB90xB,EAAQ0wvB,EACxBmC,GAAQmB,KACR6gD,GAAergiB,GAAKq+e,GAAOiiC,IACjC,OAAOigB,GAAOliD,GAAOiiC,IACjBye,GAAsB1gD,GAAOgC,KAAkBm+C,EAAY6B,GAAahknB,UAAWulI,EAAIC,EAAIg9d,EAAIwhB,IAC/FA,GAAahknB,UAAUulI,EAAIC,EAAIg9d,EACvC,CAgBA,SAAS6hB,GAAYl1yB,EAAOgzyB,EAAY58e,EAAIC,EAAIg9d,EAAIE,IAChD,MAAMuB,GAAgB90xB,EAAQ0wvB,EACxBmC,GAAQmB,KACR6gD,GAAergiB,GAAKq+e,GAAOiiC,IACjC,OAAOigB,GAAOliD,GAAOiiC,IAAiB2e,GAAsB5gD,GAAOgC,KAAkBm+C,EAAY6B,GAAahknB,UAAWulI,EAAIC,EAAIg9d,EAAIE,GAAIshB,IACrIA,GAAahknB,UAAUulI,EAAIC,EAAIg9d,EAAIE,GAC3C,CAaA,SAAS4hB,GAAYn1yB,EAAOgzyB,EAAY1qyB,GACpC,MAAMwsxB,EAAgB90xB,EAAQ0wvB,EACxBmC,EAAQmB,KACR6gD,GAAergiB,GAAKq+e,EAAOiiC,GACjC,OAAOigB,GAAOliD,EAAOiiC,GACjBsf,GAAsBvhD,EAAOgC,KAAkBm+C,EAAY6B,GAAahknB,UAAWvoL,EAAQusyB,IAC3FA,GAAahknB,UAAUtxK,MAAMs1xB,GAAcvsyB,EACnD,CACA,SAASysyB,GAAOliD,EAAO7yvB,GACnB,OAAO6yvB,EAAMvD,IAAOj1vB,KAAK2F,GAAO4iP,IACpC,CAqCA,SAASwyjB,GAAe5ryB,GACpB,OAAQ3O,IACJ00C,WAAW/lC,OAAI5M,EAAW/B,EAAK,CAEvC,CAIA,MAAM67B,GA1CN,MAAM2+wB,WAAsBt+xB,KACxBvoB,YAAY8mzB,GAAU,GAClB7mzB,QACAE,KAAK4mzB,UAAYD,CACrB,CACAj9wB,KAAKx9B,GACDpM,MAAMgZ,KAAK5M,EACf,CACAqM,UAAUma,EAAgB7Z,EAAO8K,GAC7B,IAAIkjyB,EAASn0xB,EACTo0xB,GAAUjuyB,QAAgB,MAC1BkuyB,GAAapjyB,EACjB,GAAI+O,GAA4C,iBAAnBA,EAA6B,CACtD,MAAMlQ,GAAWkQ,EACjBm0xB,EAASrkyB,GAAS1J,MAAMgR,KAAKtH,IAC7BskyB,GAAUtkyB,GAAS3J,OAAOiR,KAAKtH,IAC/BukyB,GAAavkyB,GAASmB,UAAUmG,KAAKtH,GAAQ,CAE7CxiB,KAAK4mzB,YACLE,GAAUL,GAAeK,IACrBD,IACAA,EAASJ,GAAeI,IAExBE,KACAA,GAAaN,GAAeM,MAGpC,MAAMj7E,GAAOhsuB,MAAMyY,UAAU,CAAEO,KAAM+tyB,EAAQhuyB,MAAOiuyB,GAASnjyB,SAAUojyB,KACvE,OAAIr0xB,aAA0BlK,KAC1BkK,EAAepqB,IAAIwjuB,IAEhBA,EACX,GAYJ,SAASk7E,KAEL,OAAOhnzB,KAAKinzB,SAAStyxB,OAAO4sC,WAChC,CA2BA,MAAM2lvB,GAIEv+wB,cACA,OAAO3oC,KAAKmnzB,WAAannzB,KAAKmnzB,SAAW,IAAIp/wB,GACjD,CAMAloC,YAAYunzB,GAA2B,GACnCpnzB,KAAKonzB,yBAA2BA,EAChCpnzB,KAAK46P,OAAQ,EACb56P,KAAKinzB,SAAW,GAChBjnzB,KAAKqnzB,kBAAmB,EACxBrnzB,KAAKmnzB,SAAW,KAChBnnzB,KAAKyE,OAAS,EACdzE,KAAKmgB,WAAQlS,EACbjO,KAAK4zB,UAAO3lB,EAKZ,MAAMuoW,EAAQ0wc,GAAU73xB,UACnBmnV,EAAM7hV,OAAO4sC,YACdi1S,EAAM7hV,OAAO4sC,UAAYylvB,GACjC,CAIAhjzB,IAAIqN,GACA,OAAOrR,KAAKinzB,SAAS51yB,EACzB,CAKA9J,IAAIsT,GACA,OAAO7a,KAAKinzB,SAAS1/yB,IAAIsT,EAC7B,CAKA9C,OAAO8C,GACH,OAAO7a,KAAKinzB,SAASlvyB,OAAO8C,EAChC,CAKA+kB,KAAK/kB,GACD,OAAO7a,KAAKinzB,SAASrnxB,KAAK/kB,EAC9B,CAKA+D,OAAO/D,EAAIhB,GACP,OAAO7Z,KAAKinzB,SAASroyB,OAAO/D,EAAIhB,EACpC,CAKAlU,QAAQkV,GACJ7a,KAAKinzB,SAASthzB,QAAQkV,EAC1B,CAKA+0B,KAAK/0B,GACD,OAAO7a,KAAKinzB,SAASr3wB,KAAK/0B,EAC9B,CAIAkwY,UACI,OAAO/qZ,KAAKinzB,SAASlhzB,OACzB,CACAuQ,WACI,OAAOtW,KAAKinzB,SAAS3wyB,UACzB,CAaAy5C,MAAMu3vB,EAAaC,GAGf,MAAMpqmB,EAAOn9M,KACbm9M,EAAKy9C,OAAQ,EACb,MAAM4sjB,EAAgBrxxB,GAAQmxxB,IAC1BtnzB,KAAKqnzB,kBAlqhBjB,SAASI,GAAYz2xB,EAAGC,EAAGs2xB,GACvB,GAAIv2xB,EAAEvsB,SAAWwsB,EAAExsB,OACf,OAAO,EACX,QAASD,EAAI,EAAGA,EAAIwsB,EAAEvsB,OAAQD,IAAK,CAC/B,IAAIkjzB,EAAS12xB,EAAExsB,GACXmjzB,GAAS12xB,EAAEzsB,GAKf,GAJI+izB,IACAG,EAASH,EAAiBG,GAC1BC,GAASJ,EAAiBI,KAE1BA,KAAWD,EACX,OAAO,EAGf,OAAO,CACX,CAmphBqCD,CAAYtqmB,EAAK8pmB,SAAUO,EAAeD,MACnEpqmB,EAAK8pmB,SAAWO,EAChBrqmB,EAAK14M,OAAS+izB,EAAc/izB,OAC5B04M,EAAKvpL,KAAO4zxB,EAAcxnzB,KAAKyE,OAAS,GACxC04M,EAAKh9L,MAAQqnyB,EAAc,GAEnC,CAIAI,kBACQ5nzB,KAAKmnzB,WAAannzB,KAAKqnzB,mBAAqBrnzB,KAAKonzB,2BACjDpnzB,KAAKmnzB,SAASz9wB,KAAK1pC,KAC3B,CAEA6nzB,WACI7nzB,KAAK46P,OAAQ,CACjB,CAEA9uP,UACI9L,KAAK2oC,QAAQhlB,WACb3jB,KAAK2oC,QAAQxgB,aACjB,EAIJ,IAkBM8ob,GAAW,MAAjB,MAAMA,GAMNA,SAAY4sT,kBAAoBiqD,GAN1B72W,CAAW,KAOjB,MAAM82W,GAAwB92W,GAGxB+2W,GAAgB,cAA0BD,GAC5ClozB,YAAYoozB,EAAmBC,EAAwBxpiB,GACnD5+Q,QACAE,KAAKiozB,kBAAoBA,EACzBjozB,KAAKkozB,uBAAyBA,EAC9BlozB,KAAK0+Q,WAAaA,CACtB,CACAg6K,mBAAmBx6a,EAASna,GACxB,MAAM2yxB,EAAgB12xB,KAAKkozB,uBAAuBx+mB,MAC5C+slB,EAAgBtC,GAAYn0xB,KAAKiozB,kBAAmBvxB,EAAex4wB,EAAS,GAAiC,KAAMw4wB,EAAcrvB,UAAW,KAAM,KAAM,KAAM,KAAMtjwB,GAAY,MAGtL0yxB,EAAc90B,IAFgB3hwB,KAAKiozB,kBAAkBjozB,KAAKkozB,uBAAuB72yB,OAGjF,MAAM82yB,GAA0BnozB,KAAKiozB,kBAAkBpmD,IACvD,OAAgC,OAA5BsmD,KACA1xB,EAAc50B,IAAWsmD,GAAwBzvX,mBAAmBg+V,IAExEhB,GAAWgB,EAAeD,EAAev4wB,GAClC,IAAI2/wB,GAAUpH,EACzB,GAOJ,SAASqxB,KACL,OAAOM,GAAkBziD,KAAmBN,KAChD,CAQA,SAAS+iD,GAAkB1wB,EAAWzB,GAClC,OAAqB,EAAjByB,EAAU/sxB,KAEH,IAAIq9yB,GAAc/xB,EAAWyB,EAAW3M,GAAiB2M,EAAWzB,IAExE,IACX,CAEA,IAeM5tvB,GAAgB,MAAtB,MAAMA,GAMNA,SAAiBw1tB,kBAAoBwqD,GAN/BhgxB,CAAgB,KAatB,SAASggxB,KAEL,OAAOC,GADe3iD,KACmBN,KAC7C,CACA,MAAMkjD,GAAsBlgxB,GAGtBmgxB,GAAqB,cAA+BD,GACtD1ozB,YAAY4ozB,EAAaC,EAAYC,GACjC7ozB,QACAE,KAAKyozB,YAAcA,EACnBzozB,KAAK0ozB,WAAaA,EAClB1ozB,KAAK2ozB,WAAaA,CACtB,CACI1izB,cACA,OAAO8kxB,GAAiB/qxB,KAAK0ozB,WAAY1ozB,KAAK2ozB,WAClD,CACI5kzB,eACA,OAAO,IAAI8rwB,GAAa7vwB,KAAK0ozB,WAAY1ozB,KAAK2ozB,WAClD,CAEI5xwB,qBACA,MAAMo0tB,EAAiBmB,GAA0BtswB,KAAK0ozB,WAAY1ozB,KAAK2ozB,YACvE,GAAIz9C,GAAkBC,GAAiB,CACnC,MAAM36lB,EAAa66lB,GAAsBF,EAAgBnrwB,KAAK2ozB,YACxDz8C,EAAgBd,GAAuBD,GAG7C,OAAO,IAAI0E,GADSr/lB,EAAWmwlB,IAAOj1vB,KAAKwgwB,EAAgB,GACtB17lB,EAAU,CAG/C,OAAO,IAAIq/lB,GAAa,KAAM7vwB,KAAK2ozB,WAE3C,CACAhhzB,QACI,KAAO3H,KAAKyE,OAAS,GACjBzE,KAAKY,OAAOZ,KAAKyE,OAAS,EAElC,CACAT,IAAIqN,GACA,MAAM2sxB,EAAW4qB,GAAY5ozB,KAAKyozB,aAClC,OAAoB,OAAbzqB,GAAqBA,EAAS3sxB,IAAU,IACnD,CACI5M,aACA,OAAOzE,KAAKyozB,YAAYhkzB,OAAS29vB,EACrC,CACA1pU,mBAAmBmY,EAAa3yb,EAAS2qyB,GACrC,IAAIx3yB,EACAtN,GAC0B,iBAAnB8kzB,EACPx3yB,EAAQw3yB,EAEe,MAAlBA,IACLx3yB,EAAQw3yB,EAAex3yB,MACvBtN,GAAW8kzB,EAAe9kzB,UAE9B,MAAM40b,GAAUkY,EAAYnY,mBAAmBx6a,GAAW,CAAC,EAAGna,IAC9D,YAAK6lC,OAAO+uZ,GAAStnb,GACdsnb,EACX,CACAvuZ,gBAAgB0+wB,EAAwBD,EAAgB9kzB,EAAU8mvB,EAAkBritB,IAChF,MAAMugxB,GAAqBD,IAA2B71C,GAAO61C,GAC7D,IAAIz3yB,GAMJ,GAAI03yB,GAQA13yB,GAAQw3yB,MAEP,CASD,MAAMjtyB,GAAWityB,GAAkB,CAAC,EAIpCx3yB,GAAQuK,GAAQvK,MAChBtN,EAAW6X,GAAQ7X,SACnB8mvB,EAAmBjvuB,GAAQivuB,iBAC3BritB,GAAsB5sB,GAAQ4sB,qBAAuB5sB,GAAQgvuB,YAEjE,MAAMt2rB,GAAmBy0vB,GACrBD,EACA,IAAIrqB,GAAiB5/B,GAAgBiqD,IACnCE,GAAkBjlzB,GAAY/D,KAAK+2C,eAEzC,IAAKvO,IAAoD,MAA7B8rB,GAAiBx/C,SAAkB,CAqB3D,MAAMxD,IAJYy3yB,GAAqBC,GAAkBhpzB,KAAK+2C,gBAIrC/yC,IAAIykC,GAAqB,MAC9Cn3B,KACAk3B,GAAsBl3B,IAG9B,MAAMu7B,GAAeynB,GAAiB1oD,OAAOo9yB,GAAiBn+D,OAAkB58uB,EAAWu6B,IAC3F,YAAKoB,OAAOiD,GAAahD,SAAUx4B,IAC5Bw7B,EACX,CACAjD,OAAO+uZ,EAAStnb,GACZ,MAAM6yvB,EAAQvrU,EAAQo3U,OAChBrmkB,EAAQw6jB,EAAMvD,IAIpB,GA9rmBR,SAASsoD,GAAwBtspB,GAC7B,OAAO2lmB,GAAa3lmB,EAAKkkmB,IAC7B,CA4rmBYooD,CAAwB/kD,GAAQ,CAEhC,MAAMglD,GAAUlpzB,KAAKkR,QAAQynb,GAK7B,IAAgB,IAAZuwX,GACAlpzB,KAAKwpC,OAAO0/wB,QAEX,CACD,MAAMC,GAAiBjlD,EAAMrD,IAKvBuoD,GAAY,IAAIZ,GAAmBW,GAAgBA,GAAenoD,IAASmoD,GAAetoD,KAChGuoD,GAAU5/wB,OAAO4/wB,GAAUl4yB,QAAQynb,GAAQ,EAInD,MAAM0wX,GAAcrpzB,KAAKspzB,aAAaj4yB,GAChCszvB,GAAa3kwB,KAAKyozB,aAlwehC,SAASc,GAAW7/mB,EAAOw6jB,EAAOS,EAAYtzvB,GAG1C,MAAMorwB,EAAmBra,GAA0B/wvB,EAC7Cm4yB,GAAkB7kD,EAAWlgwB,OAC/B4M,EAAQ,IAERszvB,EAAW8X,EAAmB,GAAG3b,IAAQoD,GAEzC7yvB,EAAQm4yB,GAAkBpnD,IAC1B8B,EAAMpD,IAAQ6D,EAAW8X,GACzBtJ,GAAWxO,EAAYvC,GAA0B/wvB,EAAO6yvB,KAGxDS,EAAW/7vB,KAAKs7vB,GAChBA,EAAMpD,IAAQ,MAElBoD,EAAMrD,IAAU8D,EAEhB,MAAMgY,GAAwBzY,EAAMvC,IACN,OAA1Bgb,IAAkChY,IAAegY,IAezD,SAAS8sC,GAAertC,EAAsBlY,GAG1C,MAAMmY,EAAaD,EAAqBja,IAKT+B,EAAMxC,MAJVwC,EAAMrD,IAEiBA,IAAQa,MAQtD0a,EAAqBpa,IAA0B,GAEhC,OAAfqa,EACAD,EAAqBja,IAAe,CAAC+B,GAGrCmY,EAAWzzwB,KAAKs7vB,EAExB,CApCQulD,CAAe9sC,GAAuBzY,GAG1C,MAAM4Y,GAAW5Y,EAAMrC,IACN,OAAbib,IACAA,GAASysC,WAAW7/mB,GAGxBw6jB,EAAMtD,KAAU,EACpB,CAqueQ2oD,CAAW7/mB,EAAOw6jB,EAAOS,GAAY0kD,IAErC,MAAM/tC,GAAa2D,GAAqBoqC,GAAa1kD,IAC/C/5vB,GAAWs5vB,EAAM7C,IACjByd,GAAcZ,GAAiBtzwB,GAAU+5vB,GAAW1C,IAC1D,OAAoB,OAAhB6c,IAt1eZ,SAAS4qC,GAAmBhgnB,EAAO69jB,EAAa38vB,EAAUs5vB,EAAOylD,EAAkBruC,IAC/EpX,EAAMxD,IAAQipD,EACdzlD,EAAMlD,IAAUuG,EAChBuU,GAAUpykB,EAAOw6jB,EAAOt5vB,EAAU,EAAoC++yB,EAAkBruC,GAC5F,CAm1eYouC,CAAmBhgnB,EAAOi7jB,GAAW3D,IAASp2vB,GAAUs5vB,EAAO4a,GAAaxD,IAEhF3iV,EAAQwlW,2BACRhrB,GAAWy2C,GAAoBjlD,IAAa0kD,GAAa1wX,GAClDA,CACX,CACAx7Q,KAAKw7Q,EAAS81W,GAIV,OAAOzuyB,KAAK4pC,OAAO+uZ,EAAS81W,EAChC,CACAv9xB,QAAQynb,GACJ,MAAMkxX,EAAcjB,GAAY5ozB,KAAKyozB,aACrC,OAAuB,OAAhBoB,EAAuBA,EAAY34yB,QAAQynb,IAAW,CACjE,CACA/3b,OAAOyQ,GACH,MAAMg4yB,EAAcrpzB,KAAKspzB,aAAaj4yB,GAAO,GACvCy4yB,EAAet1vB,GAAWx0D,KAAKyozB,YAAaY,GAC9CS,IAOA12C,GAAgBw2C,GAAoB5pzB,KAAKyozB,aAAcY,GACvDtsC,GAAa+sC,EAAanpD,IAAQmpD,GAE1C,CACAtgxB,OAAOn4B,GACH,MAAMg4yB,EAAcrpzB,KAAKspzB,aAAaj4yB,GAAO,GACvCsrJ,EAAOnoG,GAAWx0D,KAAKyozB,YAAaY,GAE1C,OADoB1spB,GAA+E,MAAvEy2mB,GAAgBw2C,GAAoB5pzB,KAAKyozB,aAAcY,GAC9D,IAAIxrB,GAAUlhoB,GAAQ,IAC/C,CACA2spB,aAAaj4yB,EAAOpB,EAAQ,GACxB,OAAIoB,GACOrR,KAAKyE,OAASwL,CAQ7B,GAEJ,SAAS24yB,GAAYjkD,GACjB,OAAOA,EAAWzC,GACtB,CACA,SAAS0nD,GAAoBjlD,GACzB,OAAQA,EAAWzC,MAAeyC,EAAWzC,IAAa,GAC9D,CAUA,SAASomD,GAAmB5wB,EAAWzB,GAEnC,IAAItxB,EACJ,MAAML,EAAY2xB,EAAUyB,EAAUrmxB,OACtC,GAAIixvB,GAAagC,GAEbK,EAAaL,MAEZ,CACD,IAAIylD,EAKJ,GAAqB,EAAjBryB,EAAU/sxB,KACVo/yB,EAAc/lD,GAAYM,OAEzB,CAID,MAAM15vB,GAAWqrxB,EAAU50B,IAE3B0oD,EAAcn/yB,GAASqB,cAAwC,IAC/D,MAAMwwxB,GAAat4B,GAAiBuzB,EAAWzB,GAE/Cva,GAAmB9wwB,GADQszwB,GAAiBtzwB,GAAU6xxB,IACLstB,EA//d7D,SAASC,GAAkBp/yB,EAAU/J,GACjC,OAAO+J,EAASmC,YAAYlM,EAChC,CA6/d0EmpzB,CAAkBp/yB,GAAU6xxB,KAAa,EAAK,CAEhHxG,EAAUyB,EAAUrmxB,OAASszvB,EACzB63B,GAAiBl4B,EAAW2xB,EAAW8zB,EAAaryB,GACxDG,GAAc5B,EAAWtxB,EAAU,CAEvC,OAAO,IAAI6jD,GAAmB7jD,EAAY+yB,EAAWzB,EACzD,CAEA,MAAMg0B,GACFpqzB,YAAYqqzB,GACRlqzB,KAAKkqzB,UAAYA,EACjBlqzB,KAAKg/D,QAAU,IACnB,CACA9kD,QACI,OAAO,IAAI+vyB,GAAQjqzB,KAAKkqzB,UAC5B,CACArC,WACI7nzB,KAAKkqzB,UAAUrC,UACnB,EAEJ,MAAMsC,GACFtqzB,YAAY24xB,EAAU,IAClBx4xB,KAAKw4xB,QAAUA,CACnB,CACA9/V,mBAAmBhvP,GACf,MAAM0gnB,EAAW1gnB,EAAM8ulB,QACvB,GAAiB,OAAb4xB,EAAmB,CACnB,MAAMC,EAAgD,OAAzB3gnB,EAAM22jB,eAA0B32jB,EAAM22jB,eAAe,GAAK+pD,EAAS3lzB,OAC1F6lzB,EAAe,GAKrB,QAAS9lzB,GAAI,EAAGA,GAAI6lzB,EAAsB7lzB,KAAK,CAC3C,MAAM+lzB,GAASH,EAASI,WAAWhmzB,IAEnC8lzB,EAAa1hzB,KADQ5I,KAAKw4xB,QAAQ+xB,GAAOE,wBACVvwyB,QAAO,CAE1C,OAAO,IAAIiwyB,GAAUG,EAAY,CAErC,OAAO,IACX,CACAf,WAAW7/mB,GACP1pM,KAAK0qzB,wBAAwBhhnB,EACjC,CACAl1I,WAAWk1I,GACP1pM,KAAK0qzB,wBAAwBhhnB,EACjC,CACAghnB,wBAAwBhhnB,GACpB,QAASllM,EAAI,EAAGA,EAAIxE,KAAKw4xB,QAAQ/zxB,OAAQD,IACD,OAAhCmmzB,GAAUjhnB,EAAOllM,GAAGw6D,SACpBh/D,KAAKw4xB,QAAQh0xB,GAAGqjzB,UAG5B,EAEJ,MAAM+C,GACF/qzB,YAAYmY,EAAWxK,EAAOqzK,EAAO,MACjC7gL,KAAKgY,UAAYA,EACjBhY,KAAKwN,MAAQA,EACbxN,KAAK6gL,KAAOA,CAChB,EAEJ,MAAMgqoB,GACFhrzB,YAAY24xB,EAAU,IAClBx4xB,KAAKw4xB,QAAUA,CACnB,CACAoO,aAAal9lB,EAAO84jB,GAGhB,QAASh+vB,EAAI,EAAGA,EAAIxE,KAAKw4xB,QAAQ/zxB,OAAQD,IACrCxE,KAAKw4xB,QAAQh0xB,GAAGoiyB,aAAal9lB,EAAO84jB,EAE5C,CACA0kC,WAAW1kC,GACP,QAASh+vB,EAAI,EAAGA,EAAIxE,KAAKw4xB,QAAQ/zxB,OAAQD,IACrCxE,KAAKw4xB,QAAQh0xB,GAAG0iyB,WAAW1kC,EAEnC,CACAk0B,cAAcl0B,GACV,IAAIsoD,EAAwB,KAC5B,QAAStmzB,EAAI,EAAGA,EAAIxE,KAAKyE,OAAQD,IAAK,CAClC,MAAMumzB,EAA4C,OAA1BD,EAAiCA,EAAsBrmzB,OAAS,EAClFumzB,GAAchrzB,KAAKwqzB,WAAWhmzB,GAAGkyxB,cAAcl0B,EAAOuoD,GACxDC,KACAA,GAAYP,uBAAyBjmzB,EACP,OAA1BsmzB,EACAA,EAAsBlizB,KAAKoizB,IAG3BF,EAAwB,CAACE,IAAW,CAIhD,OAAiC,OAA1BF,EAAiC,IAAID,GAAUC,GAAyB,IACnF,CACAloiB,SAASl5E,EAAO84jB,GAGZ,QAASh+vB,EAAI,EAAGA,EAAIxE,KAAKw4xB,QAAQ/zxB,OAAQD,IACrCxE,KAAKw4xB,QAAQh0xB,GAAGo+Q,SAASl5E,EAAO84jB,EAExC,CACAgoD,WAAWn5yB,GAEP,OAAOrR,KAAKw4xB,QAAQnnxB,EACxB,CACI5M,aACA,OAAOzE,KAAKw4xB,QAAQ/zxB,MACxB,CACAs4J,MAAMkupB,GACFjrzB,KAAKw4xB,QAAQ5vxB,KAAKqizB,EACtB,EAEJ,MAAMC,GACFrrzB,YAAYokE,EAAU+lnB,GAAY,GAC9BhqrB,KAAKikE,SAAWA,EAChBjkE,KAAKg/D,QAAU,KACfh/D,KAAKyqzB,wBAAyB,EAC9BzqzB,KAAKmrzB,mBAAoB,EAMzBnrzB,KAAKorzB,oBAAqB,EAC1BprzB,KAAKqrzB,sBAAwBrhI,CACjC,CACA48G,aAAal9lB,EAAO84jB,GACZxiwB,KAAKsrzB,iBAAiB9oD,IACtBxiwB,KAAKurzB,WAAW7hnB,EAAO84jB,EAE/B,CACA0kC,WAAW1kC,GACHxiwB,KAAKqrzB,wBAA0B7oD,EAAMnxvB,QACrCrR,KAAKorzB,oBAAqB,EAElC,CACAxoiB,SAASl5E,EAAO84jB,GACZxiwB,KAAK4myB,aAAal9lB,EAAO84jB,EAC7B,CACAk0B,cAAcl0B,EAAOuoD,GACjB,OAAI/qzB,KAAKsrzB,iBAAiB9oD,IACtBxiwB,KAAKmrzB,mBAAoB,EAGzBnrzB,KAAK2kM,UAAU69jB,EAAMnxvB,MAAO05yB,GACrB,IAAIG,GAAQlrzB,KAAKikE,WAErB,IACX,CACAqnvB,iBAAiB9oD,GACb,GAAIxiwB,KAAKorzB,oBACsD,IAApC,EAAtBprzB,KAAKikE,SAASz2D,OAA4E,CAC3F,MAAMg+yB,EAAqBxrzB,KAAKqrzB,sBAChC,IAAIh/yB,EAASm2vB,EAAMn2vB,OAWnB,KAAkB,OAAXA,GAAkC,EAAdA,EAAO1B,MAC9B0B,EAAOgF,QAAUm6yB,GACjBn/yB,EAASA,EAAOA,OAEpB,OAAOm/yB,KAAmC,OAAXn/yB,EAAkBA,EAAOgF,OAAQ,GAEpE,OAAOrR,KAAKorzB,kBAChB,CACAG,WAAW7hnB,EAAO84jB,GACd,MAAMxqvB,EAAYhY,KAAKikE,SAASjsD,UAChC,GAAI8B,MAAM2C,QAAQzE,GACd,QAASxT,EAAI,EAAGA,EAAIwT,EAAUvT,OAAQD,IAAK,CACvC,MAAMpB,GAAO4U,EAAUxT,GACvBxE,KAAKyrzB,yBAAyB/hnB,EAAO84jB,EAAOkpD,GAAyBlpD,EAAOp/vB,KAE5EpD,KAAKyrzB,yBAAyB/hnB,EAAO84jB,EAAO6L,GAA0B7L,EAAO94jB,EAAOtmM,IAAM,GAAO,GAAM,MAIvG4U,IAAci5b,GACG,EAAbuxT,EAAM73vB,MACN3K,KAAKyrzB,yBAAyB/hnB,EAAO84jB,GAAO,GAIhDxiwB,KAAKyrzB,yBAAyB/hnB,EAAO84jB,EAAO6L,GAA0B7L,EAAO94jB,EAAO1xL,GAAW,GAAO,GAGlH,CACAyzyB,yBAAyB/hnB,EAAO84jB,EAAOmpD,GACnC,GAAqB,OAAjBA,EAAuB,CACvB,MAAM9qoB,EAAO7gL,KAAKikE,SAAS48G,KAC3B,GAAa,OAATA,EACA,GAAIA,IAASs9Q,IAAct9Q,IAASx4I,IAChCw4I,IAASowR,IAA6B,EAAbuxT,EAAM73vB,KAC/B3K,KAAK2kM,SAAS69jB,EAAMnxvB,OAAO,OAE1B,CACD,MAAMu6yB,GAAyBv9C,GAA0B7L,EAAO94jB,EAAO7oB,GAAM,GAAO,GACrD,OAA3B+qoB,IACA5rzB,KAAK2kM,SAAS69jB,EAAMnxvB,MAAOu6yB,GAAsB,MAKzD5rzB,KAAK2kM,SAAS69jB,EAAMnxvB,MAAOs6yB,EAAY,CAGnD,CACAhnnB,SAAS4jmB,EAAUsjB,GACM,OAAjB7rzB,KAAKg/D,QACLh/D,KAAKg/D,QAAU,CAACupuB,EAAUsjB,GAG1B7rzB,KAAKg/D,QAAQp2D,KAAK2/xB,EAAUsjB,EAEpC,EAUJ,SAASH,GAAyBlpD,EAAO52uB,GACrC,MAAMkpwB,EAAatyB,EAAMsyB,WACzB,GAAmB,OAAfA,EACA,QAAStwxB,EAAI,EAAGA,EAAIswxB,EAAWrwxB,OAAQD,GAAK,EACxC,GAAIswxB,EAAWtwxB,KAAOonB,EAClB,OAAOkpwB,EAAWtwxB,EAAI,GAIlC,OAAO,IACX,CAUA,SAASsnzB,GAAoB5nD,EAAO1B,EAAOupD,EAAalroB,GACpD,OAAoB,IAAhBkroB,EAVR,SAASC,GAAwBxpD,EAAOmH,GACpC,OAAkB,GAAdnH,EAAM73vB,KACCogxB,GAAiBvoB,EAAOmH,GAEb,EAAbnH,EAAM73vB,KACJy9yB,GAAkB5lD,EAAOmH,GAE7B,IACX,CAIeqiD,CAAwBxpD,EAAO0B,IAEjB,IAAhB6nD,EASb,SAASE,GAAmB/nD,EAAO1B,EAAO3hlB,GACtC,OAAIA,IAASs9Q,GACF4sV,GAAiBvoB,EAAO0B,GAE1BrjlB,IAASowR,GACPm3W,GAAkB5lD,EAAO0B,GAE3BrjlB,IAASx4I,GAEPigxB,GAAmB9lD,EAAO0B,QAFhC,CAQT,CAtBe+nD,CAAmB/nD,EAAO1B,EAAO3hlB,GAIjCytlB,GAAkBpK,EAAOA,EAAMvD,IAAQorD,EAAavpD,EAEnE,CAsBA,SAAS0pD,GAAuBxinB,EAAOw6jB,EAAOqmD,EAAQ4B,GAClD,MAAMC,EAASloD,EAAMrC,IAAS22B,QAAQ2zB,GACtC,GAAuB,OAAnBC,EAAOptvB,QAAkB,CACzB,MAAMi8tB,GAAYvxlB,EAAMh+L,KAClB2gzB,GAAgB9B,EAAOvrvB,QACvB1tD,GAAS,GACf,QAAS9M,GAAI,EAAGA,GAAI6nzB,GAAc5nzB,OAAQD,IAAK,EAAG,CAC9C,MAAM8nzB,GAAiBD,GAAc7nzB,IAKjC8M,GAAO1I,KAJP0jzB,GAAiB,EAIL,KAKAR,GAAoB5nD,EADlB+2B,GAAUqxB,IACsBD,GAAc7nzB,GAAI,GAAI+lzB,EAAOtmvB,SAAS48G,MAAK,CAGjGuroB,EAAOptvB,QAAU1tD,GAErB,OAAO86yB,EAAOptvB,OAClB,CAKA,SAASutvB,GAAoB7inB,EAAOw6jB,EAAOioD,EAAY76yB,GACnD,MAAMi5yB,EAAS7gnB,EAAM8ulB,QAAQgyB,WAAW2B,GAClCE,GAAgB9B,EAAOvrvB,QAC7B,GAAsB,OAAlBqtvB,GAAwB,CACxB,MAAMG,GAAeN,GAAuBxinB,EAAOw6jB,EAAOqmD,EAAQ4B,GAClE,QAAS3nzB,GAAI,EAAGA,GAAI6nzB,GAAc5nzB,OAAQD,IAAK,EAAG,CAC9C,MAAM+jyB,GAAW8jB,GAAc7nzB,IAC/B,GAAI+jyB,GAAW,EACXj3xB,EAAO1I,KAAK4jzB,GAAahozB,GAAI,QAE5B,CACD,MAAMumzB,GAAkBsB,GAAc7nzB,GAAI,GACpCm4wB,GAAwBzY,GAAOqkC,IAGrC,QAAS/jyB,GAAI49vB,GAAyB59vB,GAAIm4wB,GAAsBl4wB,OAAQD,KAAK,CACzE,MAAMiyxB,GAAgB9Z,GAAsBn4wB,IACxCiyxB,GAAc90B,MAA4B80B,GAAc51B,KACxD0rD,GAAoB91B,GAAc91B,IAAQ81B,GAAes0B,GAAiBz5yB,EAAM,CAKxF,GAA2C,OAAvCqrwB,GAAsBxa,IAAuB,CAC7C,MAAMsqD,GAAiB9vC,GAAsBxa,IAC7C,QAAS39vB,GAAI,EAAGA,GAAIiozB,GAAehozB,OAAQD,KAAK,CAC5C,MAAMiyxB,GAAgBg2B,GAAejozB,IACrC+nzB,GAAoB91B,GAAc91B,IAAQ81B,GAAes0B,GAAiBz5yB,EAAM,KAMpG,OAAOA,CACX,CAUA,SAASo7yB,GAAexC,GACpB,MAAMhmD,EAAQmB,KACR37jB,EAAQ47jB,KACR6mD,EAAajlD,KACnBC,GAAqBglD,EAAa,GAClC,MAAM5B,EAASI,GAAUjhnB,EAAOyinB,GAChC,GAAIjC,EAAUtvjB,OA/qnBlB,SAAS+xjB,GAAehwpB,GACpB,OAA2D,IAArC,EAAdA,EAAKikmB,IACjB,CA8qnBS+rD,CAAezoD,MAC+C,IAAjC,EAAxBqmD,EAAOtmvB,SAASz2D,QAAwE,CAC9F,GAAuB,OAAnB+8yB,EAAOvrvB,QACPkrvB,EAAUn6vB,MAAM,QAEf,CACD,MAAMz+C,GAASi5yB,EAAOY,kBAClBoB,GAAoB7inB,EAAOw6jB,EAAOioD,EAAY,IAC9CD,GAAuBxinB,EAAOw6jB,EAAOqmD,EAAQ4B,GACjDjC,EAAUn6vB,MAAMz+C,GAAQ05wB,IACxBk/B,EAAUtC,iBAAe,CAE7B,OAAO,EAEX,OAAO,CACX,CAUA,SAASgF,GAAY50yB,EAAWxK,EAAOqzK,GAEnC,MAAM6oB,EAAQ47jB,KACV57jB,EAAMuikB,kBACN4gD,GAAanjnB,EAAO,IAAIkhnB,GAAgB5yyB,EAAWxK,EAAOqzK,IAAO,GACnB,IAAjC,EAARrzK,KACDk8L,EAAMqslB,mBAAoB,IAGlC+2B,GAAapjnB,EAAO27jB,KAAY73vB,EACpC,CAaA,SAASu/yB,GAAez9C,EAAgBt3vB,EAAWxK,EAAOqzK,GAEtD,MAAM6oB,EAAQ47jB,KACd,GAAI57jB,EAAMuikB,gBAAiB,CACvB,MAAMzJ,GAAQmD,KACdknD,GAAanjnB,EAAO,IAAIkhnB,GAAgB5yyB,EAAWxK,EAAOqzK,GAAO2hlB,GAAMnxvB,OAkC/E,SAAS27yB,GAAkCtjnB,EAAO4lkB,GAC9C,MAAM29C,EAAsBvjnB,EAAM22jB,iBAAmB32jB,EAAM22jB,eAAiB,IAExEiP,KAD4B29C,EAAoBxozB,OAASwozB,EAAoBA,EAAoBxozB,OAAS,IAAK,IAE/GwozB,EAAoBrkzB,KAAK8gM,EAAM8ulB,QAAQ/zxB,OAAS,EAAG6qwB,EAE3D,CAvCQ09C,CAAkCtjnB,EAAO4lkB,GACK,IAAjC,EAAR9hwB,KACDk8L,EAAMoslB,sBAAuB,GAGrCg3B,GAAapjnB,EAAO27jB,KAAY73vB,EACpC,CAMA,SAAS0/yB,KACL,OAEJ,SAASC,GAAkBjpD,EAAOioD,GAI9B,OAAOjoD,EAAMrC,IAAS22B,QAAQ2zB,GAAYjC,SAC9C,CAPWiD,CAAkB9nD,KAAY6B,KACzC,CAOA,SAAS4lD,GAAapjnB,EAAOw6jB,EAAO12vB,GAChC,MAAM08yB,EAAY,IAAIhD,GAAmE,IAAhD,EAAR15yB,IACjCorxB,GAAwBlvlB,EAAOw6jB,EAAOgmD,EAAWA,EAAUp+yB,SACpC,OAAnBo4vB,EAAMrC,MACNqC,EAAMrC,IAAW,IAAIsoD,IACzBjmD,EAAMrC,IAAS22B,QAAQ5vxB,KAAK,IAAIqhzB,GAAQC,GAC5C,CACA,SAAS2C,GAAanjnB,EAAOzlI,EAAU+lnB,GACb,OAAlBtgf,EAAM8ulB,UACN9ulB,EAAM8ulB,QAAU,IAAIqyB,IACxBnhnB,EAAM8ulB,QAAQz7nB,MAAM,IAAImupB,GAAQjnvB,EAAU+lnB,GAC9C,CAQA,SAAS2gI,GAAUjhnB,EAAOr4L,GAEtB,OAAOq4L,EAAM8ulB,QAAQgyB,WAAWn5yB,EACpC,CAQA,SAAS+7yB,GAAuB5qD,EAAO0B,GACnC,OAAOkkD,GAAkB5lD,EAAO0B,EACpC,CAOA,MAAMmpD,GAAkB,OACpB,sBAAenpB,GACf,kCAA2BoB,GAC3B,kCAA2BE,GAC3B,kCAA2BC,GAC3B,kCAA2BC,GAC3B,kCAA2BC,GAC3B,kCAA2BC,GAC3B,kCAA2BC,GAC3B,kCAA2BC,GAC3B,kCAA2BC,GAC3B,4BAAqB3nW,GACrB,4BAAqBpD,GACrB,6BAAsB04T,GACtB,2BAAoBzsT,EACpB,2BAAoBD,GACpB,uBAAgB44T,GAChB,4BAAqB1hU,GACrB,gCAAyB8xU,GACzB,mBAAYr6vB,GACZ,4BAAqB26vB,GACrB,2BAAoBv1U,GACpB,8BAAuB2hU,GACvB,iCAA0B0wD,GAC1B,sBAAe1nD,GACf,kCAA2B28B,GAC3B,+BAAwBt7V,GACxB,6BAAsBhB,GACtB,kCAA2Bo8V,GAC3B,qCAA8BpB,GAC9B,8BAAuB+hB,GACvB,wBAAiB5Z,GACjB,0BAAmBxgC,GACnB,4BAAqBD,GACrB,yBAAkBD,GAClB,2BAAoBrD,GACpB,4BAAqBC,GACrB,yBAAkBl/T,GAClB,uBAAgBE,GAChB,oBAAagB,GACb,kCAA2BigW,GAC3B,gCAAyBE,GACzB,6BAAsBC,GACtB,0BAAmB4c,GACnB,0BAAmBG,GACnB,0BAAmBE,GACnB,0BAAmBE,GACnB,0BAAmBE,GACnB,0BAAmBE,GACnB,0BAAmBE,GACnB,0BAAmBE,GACnB,0BAAmBE,GACnB,0BAAmBE,GACnB,2BAAoB9d,GACpB,wBAAiBliC,GACjB,qBAActyT,GACd,uBAAgB9M,GAChB,kCAA2ButW,GAC3B,kCAA2B1L,GAC3B,sBAAeme,GACf,sBAAeE,GACf,sBAAeC,GACf,sBAAeC,GACf,sBAAeC,GACf,0BAAmBvgX,GACnB,yBAAkBwtW,GAClB,qBAAcjN,GACd,gCAAyB2D,GACzB,iCAA0BC,GAC1B,iCAA0BC,GAC1B,iCAA0BC,GAC1B,iCAA0BC,GAC1B,iCAA0BC,GAC1B,iCAA0BC,GAC1B,iCAA0BC,GAC1B,iCAA0BC,GAC1B,iCAA0BC,GAC1B,iBAAUkb,GACV,yBAAkB4G,GAClB,sBAAeE,GACf,sBAAeM,GACf,yBAAkBH,GAClB,sBAAezmB,GACf,qBAAcoH,GACd,iCAA0BoE,GAC1B,iCAA0BC,GAC1B,iCAA0BC,GAC1B,iCAA0BC,GAC1B,iCAA0BC,GAC1B,iCAA0BC,GAC1B,iCAA0BC,GAC1B,iCAA0BC,GAC1B,iCAA0BC,GAC1B,qBAAcjF,GACd,iCAA0BkF,GAC1B,iCAA0BC,GAC1B,iCAA0BC,GAC1B,iCAA0BC,GAC1B,iCAA0BC,GAC1B,iCAA0BC,GAC1B,iCAA0BC,GAC1B,iCAA0BC,GAC1B,iCAA0BC,GAC1B,sBAAe7F,GACf,kCAA2B8F,GAC3B,kCAA2BC,GAC3B,kCAA2BC,GAC3B,kCAA2BC,GAC3B,kCAA2BC,GAC3B,kCAA2BC,GAC3B,kCAA2BC,GAC3B,kCAA2BC,GAC3B,kCAA2BC,GAC3B,sBAAepG,GACf,oBAAajf,GACb,qBAAcx9U,GACd,iBAAUugW,GACV,4BAAqBE,GACrB,6BAAsBC,GACtB,6BAAsBC,GACtB,6BAAsBC,GACtB,6BAAsBC,GACtB,6BAAsBC,GACtB,6BAAsBC,GACtB,6BAAsBC,GACtB,6BAAsBC,GACtB,6BAAsBC,GACtB,iBAAUoN,GACV,2BAAoBC,GACpB,oBAAaG,GACb,sBAAenB,GACf,oBAAac,GACb,sBAAeQ,GACf,4BAAqBE,GACrB,0BAAmB9zB,GACnB,4BAAqBC,GACrB,wBAAiBC,GACjB,8BAAuBptB,GACvB,6BAAsBQ,GACtB,iCAA0BuY,GAC1B,yBAAkBmO,GAClB,0BAAmBE,GACnB,gCAAyBI,GACzB,2BAAoBE,GACpB,wBAAiBJ,GACjB,qCAA8BpiuB,GAC9B,8BAAuB0iuB,GACvB,qCAA8BC,GAC9B,oCAA6BvF,GAC7B9uhB,WAAcA,EACd4ngB,kBAAqBA,IAtJD,GAyJxB,IAAIwzD,GAAa,KAmBjB,SAASC,KACLD,GAAa,IACjB,CASA,SAASE,GAAWthzB,GAChB,QAASkzvB,GAAelzvB,EAC5B,CAEA,MAAMuhzB,GAAc,GAQpB,IAAIC,IAAsB,EAM1B,SAASC,KACL,IAAKD,GAAqB,CACtBA,IAAsB,EACtB,IACI,QAASlpzB,EAAIipzB,GAAYhpzB,OAAS,EAAGD,GAAK,EAAGA,IAAK,CAC9C,MAAQ+9yB,aAAYztyB,YAAa24yB,GAAYjpzB,GACzCsQ,EAASkqvB,cAAgBlqvB,EAASkqvB,aAAa9ouB,MAAM03xB,MAErDH,GAAYt8yB,OAAO3M,EAAG,GACtBqpzB,GAA6BtL,EAAYztyB,GAAQ,CAM7D,CAHA,QAEI44yB,IAAsB,CAC1B,EAER,CAMA,SAASE,GAAsBE,GAC3B,OAAIh0yB,MAAM2C,QAAQqxyB,GACPA,EAAY53xB,MAAM03xB,MAEpB9zD,EAAkBg0D,EAC/B,CAMA,SAASC,GAAgBxL,EAAYztyB,EAAW,CAAC,GAE7Ck5yB,GAAoBzL,EAAYztyB,QACZ7G,IAAhB6G,EAAS5J,IACTuswB,GAAqB8qC,EAAYztyB,EAAS5J,IA/ClD,SAAS+izB,GAA+B1L,EAAYztyB,GAChD24yB,GAAY7kzB,KAAK,CAAE25yB,aAAYztyB,YACnC,CAmDIm5yB,CAA+B1L,EAAYztyB,EAC/C,CAOA,SAASk5yB,GAAoBzL,EAAYztyB,EAAUo5yB,GAAmC,GAGlF,MAAMlvD,EAAe7ouB,GAAQrhB,EAASkqvB,cAAgB5V,IACtD,IAAI+V,EAAc,KAClBxzvB,OAAOo/C,eAAew3vB,EAAY7kD,GAAY,CAC1CzysB,cAAc,EACdjnD,IAAK,KACmB,OAAhBm7vB,IAOAA,EADiB2T,KACMi7C,gBAAgBV,GAAiB,SAAQ9K,EAAWn/yB,oBAAgB,CACvFuH,KAAM43yB,EACNhtX,UAAWp/Z,GAAQrhB,EAASygb,WAAa6zT,IAAa7hvB,IAAIuyvB,GAC1DkF,aAAcA,EAAaz3vB,IAAIuyvB,GAC/B5kvB,QAASihB,GAAQrhB,EAASI,SAAWk0uB,IAChC7hvB,IAAIuyvB,GACJvyvB,IAAI4mzB,IACT5ohB,QAASpvQ,GAAQrhB,EAASywR,SAAW6jd,IAChC7hvB,IAAIuyvB,GACJvyvB,IAAI4mzB,IACT5vD,QAASzpvB,EAASypvB,QAAUpouB,GAAQrhB,EAASypvB,SAAW,KACxDrzvB,GAAI4J,EAAS5J,IAAM,OAMlBi0vB,EAAYZ,UACbY,EAAYZ,QAAU,KAGvBY,KAGf,IAAIwvB,GAAe,KACnBhjxB,OAAOo/C,eAAew3vB,EAAY5kD,GAAgB,CAC9C35vB,IAAK,KACD,GAAqB,OAAjB2qxB,GAAuB,CACvB,MAAMr4uB,GAAWw8tB,KACjB6b,GAAer4uB,GAAS44uB,eAAem+B,GAAiB,SAAQ9K,EAAWn/yB,oBAAgB,CACvFA,KAAMm/yB,EAAWn/yB,KACjBuH,KAAM43yB,EACN79yB,KAAMwxwB,GAAoBqsC,GAC1BxgzB,OAAQu0C,GAASm8tB,cAAcI,SAC/Bkc,kBAAmB,GACtB,CAEL,OAAOJ,IAGX1juB,cAAc,IAElB,IAAImwsB,GAAgB,KACpBzvvB,OAAOo/C,eAAew3vB,EAAYtnD,GAAY,CAC1Cj3vB,IAAK,KACD,GAAsB,OAAlBo3vB,GAAwB,CAExB,MAAMrrvB,GAAO,CACT3M,KAAMm/yB,EAAWn/yB,KACjBuH,KAAM43yB,EACNxtyB,UAAWD,EAASC,WAAaq0uB,GACjCl0uB,QAAS,EACJJ,EAASI,SAAWk0uB,IAAa7hvB,IAAIuyvB,IACrChlvB,EAASywR,SAAW6jd,IAAa7hvB,IAAIuyvB,KAI9CsB,GADiB0X,KAEJs7C,gBAAgBf,GAAiB,SAAQ9K,EAAWn/yB,oBAAgB2M,GAAI,CAEzF,OAAOqrvB,IAGXnwsB,cAAc,GAEtB,CA4LA,IAAIojwB,GAAgB,IAAIj4wB,QACpBk4wB,GAAmB,IAAIl4wB,QAC3B,SAASm4wB,KACLF,GAAgB,IAAIj4wB,QACpBk4wB,GAAmB,IAAIl4wB,QACvBq3wB,GAAYhpzB,OAAS,CACzB,CA6BA,SAASopzB,GAA6BtL,EAAYztyB,GAC9C,MAAMkqvB,EAAe7ouB,GAAQrhB,EAASkqvB,cAAgB5V,IAChDolE,EAAmBC,GAAoBlM,GAC7CvjD,EAAar5vB,QAAQmozB,KACjBA,EAAch0D,EAAkBg0D,IAChBj5xB,eAAe0ouB,IAI3BmxD,GADqB7vD,GADHivD,GAEuBU,IAEnCV,EAAYj5xB,eAAe2ouB,MAAgBswD,EAAYj5xB,eAAe4ouB,MAE5EqwD,EAAYa,gBAAkBpM,IAG1C,CAKA,SAASmM,GAA2BlwB,EAAcgwB,GAC9ChwB,EAAapgC,cAAgB,IAAMtkvB,MAAMC,KAAKy0yB,EAAiBI,YAAYjwD,YACtEp3vB,IAAI01I,GAAOA,EAAIpoH,eAAe0ouB,IAAesB,GAAgB5hnB,GAAO6hnB,GAAgB7hnB,IACpFllI,OAAO8sD,KAASA,GACrB25tB,EAAangC,SAAW,IAAMvkvB,MAAMC,KAAKy0yB,EAAiBI,YAAY36X,OAAO1sb,IAAI+Y,GAAQw/uB,GAAax/uB,IACtGk+wB,EAAajgC,QAAUiwD,EAAiBjwD,QAKxCigC,EAAa90lB,MAAQ,IACzB,CAKA,SAAS+knB,GAAoB9jzB,GACzB,GAAI6izB,GAAW7izB,GACX,OA4CR,SAASkkzB,GAA4BtM,GACjC,MAAM19uB,EAAMu6rB,GAAemjD,GAAY,GACvC,GAAoC,OAAhC19uB,EAAIo6rB,wBACJ,OAAOp6rB,EAAIo6rB,wBAEf,MAAMnxkB,EAAS,CACXywkB,QAAS15rB,EAAI05rB,SAAW,KACxBqwD,YAAa,CACTjwD,WAAY,IAAI52vB,IAChBksb,MAAO,IAAIlsb,KAEf+mzB,SAAU,CACNnwD,WAAY,IAAI52vB,IAChBksb,MAAO,IAAIlsb,MAGnBgkxB,UAAclntB,EAAI3vD,SAASvP,QAASmixB,IAGhC,MAAMinC,EAAgBN,GAAoB3mC,GAC1CinC,EAAcD,SAASnwD,WAAWh5vB,QAAQ+xE,IAASo2G,EAAO8goB,YAAYjwD,WAAWr2vB,IAAIovE,KACrFq3uB,EAAcD,SAAS76X,MAAMtub,QAAQ+xE,IAASo2G,EAAO8goB,YAAY36X,MAAM3rb,IAAIovE,IAAM,GAErFq0sB,GAAclntB,EAAIm6rB,cAAcr5vB,QAAQqpzB,IAEhClvD,GADqBkvD,GAErBlhoB,EAAO8goB,YAAY36X,MAAM3rb,IAAI0mzB,GAM7BlhoB,EAAO8goB,YAAYjwD,WAAWr2vB,IAAI0mzB,EAAQ,GAGlDjjC,GAAclntB,EAAI0gO,SAAS5/R,QAASmpzB,IAChC,MAAMG,EAAeH,EAGrB,GAAItB,GAAWyB,GAAe,CAG1B,MAAMC,GAAgBT,GAAoBQ,GAC1CC,GAAcJ,SAASnwD,WAAWh5vB,QAAQ+xE,KACtCo2G,EAAO8goB,YAAYjwD,WAAWr2vB,IAAIovE,IAClCo2G,EAAOghoB,SAASnwD,WAAWr2vB,IAAIovE,GAAK,GAExCw3uB,GAAcJ,SAAS76X,MAAMtub,QAAQ+xE,KACjCo2G,EAAO8goB,YAAY36X,MAAM3rb,IAAIovE,IAC7Bo2G,EAAOghoB,SAAS76X,MAAM3rb,IAAIovE,GAAK,EAClC,MAEIoorB,GAAamvD,GAClBnhoB,EAAOghoB,SAAS76X,MAAM3rb,IAAI2mzB,GAG1BnhoB,EAAOghoB,SAASnwD,WAAWr2vB,IAAI2mzB,EAAY,GAGnDpqvB,EAAIo6rB,wBAA0BnxkB,EACvBA,CACX,CAzGe+goB,CAA4BlkzB,GAElC,GAAIo1vB,GAAap1vB,GAAO,CAEzB,GAAqB,QADAk0vB,GAAgBl0vB,IAASm0vB,GAAgBn0vB,IAE1D,MAAO,CACH4zvB,QAAS,KACTqwD,YAAa,CACTjwD,WAAY,IAAI52vB,IAChBksb,MAAO,IAAIlsb,KAEf+mzB,SAAU,CACNnwD,WAAY,IAAI52vB,IAAI,CAAC4C,IACrBspb,MAAO,IAAIlsb,MAKvB,GAAgB,OADA+3vB,GAAan1vB,GAEzB,MAAO,CACH4zvB,QAAS,KACTqwD,YAAa,CACTjwD,WAAY,IAAI52vB,IAChBksb,MAAO,IAAIlsb,KAEf+mzB,SAAU,CACNnwD,WAAY,IAAI52vB,IAChBksb,MAAO,IAAIlsb,IAAI,CAAC4C,KAExB,CAIR,MAAM,IAAIlE,MAAO,GAAEkE,EAAKvH,uDAC5B,CAwEA,SAAS+qzB,GAA0BjizB,GAC/B,OA1gBJ,SAASijzB,GAAsBjjzB,GAC3B,YAA0B+B,IAAnB/B,EAAM4I,QACjB,CAwgBQq6yB,CAAsBjjzB,GACfA,EAAM4I,SAEV5I,CACX,CAeA,IAAIkjzB,GAAmB,EAUvB,SAASC,GAAiB1kzB,EAAMs5D,GAI5B,IAAIqrvB,EAAiB,MAhjjBzB,SAASC,GAAyC5kzB,EAAMs5D,GAChDszsB,GAAyBtzsB,KACzB4ysB,GAAiCrwwB,IAAImE,EAAMs5D,GAC3CozsB,GAA8B/uwB,IAAIqC,GAE1C,EA6ijBI4kzB,CAAyC5kzB,EAAMs5D,GAI/CurvB,GAAuB7kzB,EAAMs5D,GAC7Bt4D,OAAOo/C,eAAepgD,EAAM4yvB,GAAa,CACrCv5vB,IAAK,KACD,GAAuB,OAAnBsrzB,EAAyB,CACzB,MAAMh5wB,EAAWw8tB,KACjB,GAAIyE,GAAyBtzsB,GAAW,CACpC,MAAMprD,GAAQ,CAAE,cAAalO,EAAKvH,0BAClC,MAAI6gE,EAAS8ysB,aACTl+vB,GAAMjQ,KAAM,mBAAkBq7D,EAAS8ysB,eAEvC9ysB,EAAS+ysB,WAAa/ysB,EAAS+ysB,UAAUvywB,QACzCoU,GAAMjQ,KAAM,iBAAgB4V,KAAKC,UAAUwlD,EAAS+ysB,cAExDn+vB,GAAMjQ,KAAM,2DACN,IAAInC,MAAMoS,GAAMiE,KAAK,MAAK,CAMpC,MAAMlB,EAhlBtB,SAAS6zyB,KACL,OAAOnC,EACX,CA8kBgCmC,GAChB,IAAIC,GAAsBzrvB,EAASyrvB,yBACPzhzB,IAAxByhzB,KAEIA,GADY,OAAZ9zyB,QAAoD3N,IAAhC2N,EAAQ8zyB,qBACN9zyB,EAAQ8zyB,qBAMtC,IAAIvkzB,GAAgB84D,EAAS94D,mBACP8C,IAAlB9C,KAEIA,GADY,OAAZyQ,QAAqD3N,IAAjC2N,EAAQ+zyB,qBACZ/zyB,EAAQ+zyB,qBAGRxyD,GAAoBC,UAG5C,MAAM2Z,GAAc9ysB,EAAS8ysB,aAAgB,SAAQpswB,EAAKvH,qBACpD2M,GAAO,IACN6/yB,GAAkBjlzB,EAAMs5D,GAC3B4rvB,eAAgBv5wB,EAASw5wB,sBAAsB,YAAanlzB,EAAKvH,KAAM2zwB,IACvEn0f,SAAU3+M,EAAS2+M,UAAY,GAC/B8siB,uBACAprzB,OAAQ2/D,EAAS3/D,QAAU8kvB,GAC3B2mE,WAAY9rvB,EAAS8rvB,WAMrB/wD,aAAc,GACdb,gBAAiBl6rB,EAASk6rB,gBAC1BhzvB,iBACA6kzB,cAAe/rvB,EAAS+rvB,cACxBlO,cAAe79uB,EAAS69uB,eAAiB,MAE7CsN,KACA,IAMI,GALIr/yB,GAAKkgzB,iBACLC,GAAoCvlzB,GAExC2kzB,EACIh5wB,EAAS+4wB,iBAAiBhC,GAAgBt2C,GAAahnwB,IACvDk0D,EAASk+oB,WAAY,CAIrB,MAAMjtsB,GAAUihB,GAAQ8tC,EAAS/uD,SAAWk0uB,KACpCgV,iBAAeC,aAqF/C,SAAS8xD,GAA0BxlzB,EAAMuK,GACrC,IAAIk7yB,EAAsB,KACtBC,EAAiB,KAgErB,MAAO,CACHjyD,cAhEkB,KAClB,GAA4B,OAAxBgyD,EAA8B,CAG9BA,EAAsB,CAACvxD,GAAgBl0vB,IACvC,MAAM6/I,GAAO,IAAIziJ,IACjB,UAAWuozB,MAAUp7yB,EAAS,CAE1B,MAAMmyI,GAAMyymB,EAAkBw2D,IAC9B,IAAI9lqB,GAAK/wI,IAAI4tI,IAIb,GADAmD,GAAKliJ,IAAI++I,IACH+3mB,GAAe/3mB,IAAM,CACvB,MAAMw3C,GAAQ4vnB,GAAoBpnqB,IAClC,UAAWpK,MAAO4hD,GAAMiwnB,SAASnwD,WAAY,CACzC,MAAM95rB,GAAMg6rB,GAAgB5hnB,KAAQ6hnB,GAAgB7hnB,IAChDp4E,KAAQ2lF,GAAK/wI,IAAIwjI,MACjBuN,GAAKliJ,IAAI20I,IACTmzqB,EAAoBxnzB,KAAKi8D,IAAG,MAInC,CACD,MAAMA,GAAMg6rB,GAAgBx3mB,KAAQy3mB,GAAgBz3mB,IAChDxiF,IACAurvB,EAAoBxnzB,KAAKi8D,GAAG,GAK5C,OAAOurvB,GAkCP/xD,SAhCa,KACb,GAAuB,OAAnBgyD,EAAyB,CACzBA,EAAiB,GACjB,MAAM7lqB,GAAO,IAAIziJ,IACjB,UAAWuozB,MAAUp7yB,EAAS,CAC1B,MAAMmyI,GAAMyymB,EAAkBw2D,IAC9B,IAAI9lqB,GAAK/wI,IAAI4tI,IAIb,GADAmD,GAAKliJ,IAAI++I,IACH+3mB,GAAe/3mB,IAAM,CACvB,MAAMw3C,GAAQ4vnB,GAAoBpnqB,IAClC,UAAW/mI,MAAQu+K,GAAMiwnB,SAAS76X,MAAO,CACrC,MAAMpvX,GAAMi7rB,GAAax/uB,IACrBukD,KAAQ2lF,GAAK/wI,IAAI6G,MACjBkqI,GAAKliJ,IAAIgY,IACT+vyB,EAAeznzB,KAAKi8D,IAAG,MAI9B,CACD,MAAMA,GAAMi7rB,GAAaz4mB,IACrBxiF,IACAwrvB,EAAeznzB,KAAKi8D,GAAG,GAKvC,OAAOwrvB,GAMf,CA3J4DF,CAA0BxlzB,EAAMuK,IACpEo6yB,EAAelxD,cAAgBA,GAC/BkxD,EAAejxD,SAAWA,GAC1BixD,EAAe1oqB,aAAe,IAAM1xI,GAAQ3N,IAAIuyvB,EAAiB,CAMzE,CAJA,QAGIs1D,IACJ,CAaA,GAZyB,IAArBA,IAMAzB,KA4IpB,SAAS4C,GAAiBpizB,GACtB,YAAqCF,IAA9BE,EAAUwgzB,eACrB,CAxIoB4B,CAAiB5lzB,GAAO,CACxB,MAAMmjL,GAAS2goB,GAAoB9jzB,EAAKgkzB,iBACxCD,GAA2BY,EAAgBxhoB,GAAM,CAErD,GAAI7pH,EAASs6rB,QACT,KAAIt6rB,EAASk+oB,WAIT,MAAM,IAAI17sB,MAAO,uCAAsC4zvB,GAAkB1vvB,2DAHzE2kzB,EAAe/wD,QAAUt6rB,EAASs6rB,OAGmG,MAGpIt6rB,EAASk+oB,aACdmtG,EAAe/wD,QAAU,IAGjC,OAAO+wD,GAGXrkwB,cAAc,GAEtB,CA2HA,SAASulwB,GAAiB7lzB,EAAMusb,GAC5B,IAAIu5X,EAAiB,KACrBjB,GAAuB7kzB,EAAMusb,GAAa,CAAC,GAC3Cvrb,OAAOo/C,eAAepgD,EAAM6yvB,GAAY,CACpCx5vB,IAAK,KACD,GAAuB,OAAnByszB,EAAyB,CAIzB,MAAM1gzB,EAAO2gzB,GAAqB/lzB,EAAMusb,GAAa,CAAC,GAEtDu5X,EADiB39C,KAEJ09C,iBAAiBnD,GAAgBt9yB,EAAK4gzB,aAAc5gzB,EAAKk0D,SAAQ,CAElF,OAAOwsvB,GAGXxlwB,cAAc,GAEtB,CACA,SAASylwB,GAAqB/lzB,EAAMs5D,GAChC,MAAM7gE,EAAOuH,GAAQA,EAAKvH,KACpButzB,EAAgB,SAAQvtzB,iBACxBkzC,EAAWw8tB,KACX89C,GAAShB,GAAkBjlzB,EAAMs5D,GACvC2svB,UAAOf,eAAiBv5wB,EAASw5wB,sBAAsB,YAAa1szB,EAAMutzB,GACtEC,GAAOX,iBACPC,GAAoCvlzB,GAEjC,CAAEs5D,SAAU2svB,GAAQD,eAC/B,CACA,SAASnB,GAAuB7kzB,EAAMs5D,GAClC,IAAI0qtB,EAAe,KACnBhjxB,OAAOo/C,eAAepgD,EAAMgzvB,GAAgB,CACxC35vB,IAAK,KACD,GAAqB,OAAjB2qxB,EAAuB,CACvB,MAAM5+wB,EAAO2gzB,GAAqB/lzB,EAAMs5D,GAClC3tB,EAAWw8tB,KACjB6b,EAAer4uB,EAAS44uB,eAAem+B,GAAiB,SAAQ1izB,EAAKvH,oBAAgB,CACjFA,KAAM2M,EAAKk0D,SAAS7gE,KACpBuH,KAAMoF,EAAKk0D,SAASt5D,KACpBokxB,kBAAmB,EACnBrqxB,KAAMwxwB,GAAoBvrwB,GAC1B5I,OAAQu0C,EAASm8tB,cAAcC,WAClC,CAEL,OAAOic,GAGX1juB,cAAc,GAEtB,CACA,SAAS4lwB,GAA0BlmzB,GAC/B,OAAOgB,OAAO2vb,eAAe3wb,EAAK0kB,aAAe1jB,OAAO0jB,SAC5D,CAKA,SAASugyB,GAAkBjlzB,EAAMs5D,GAE7B,MAAMkwsB,EAAU8B,KACVV,EAAepB,EAAQuB,gBAAgB/qwB,GAC7C,MAAO,CACHvH,KAAMuH,EAAKvH,KACXuH,KAAMA,EACNihB,cAAgC3d,IAAtBg2D,EAASr4C,SAAyBq4C,EAASr4C,SAAW,KAChE3jB,KAAMg8D,EAASh8D,MAAQq1vB,GACvBiY,aAAcA,EACdhrkB,OAAQtmI,EAASsmI,QAAU6+iB,GAC3Bjve,QAASl2M,EAASk2M,SAAWive,GAC7BovC,QAASs4B,GAAuBnmzB,EAAM4qwB,EAAcw7C,IACpDC,UAAW,CAAEC,cAAe98C,EAAQwB,iBAAiBhrwB,EAAM,gBAC3DklzB,eAAgB,KAChBI,iBAAkBY,GAA0BlmzB,GAC5Cm6Q,SAAUosiB,GAAgBjtvB,EAAS6gN,UACnC/vQ,UAAWkvD,EAASlvD,WAAa,KACjCo8yB,YAAaL,GAAuBnmzB,EAAM4qwB,EAAcpD,IACxDpS,eAAgB97rB,EAASk+oB,WACzBq+C,eAAgBv8rB,EAASu8rB,gBAAgBj5vB,IAAI2vb,GAAkC,mBAAdA,EAA2B,CAAEA,aAAcA,IACxG,KAEZ,CAIA,SAASg5X,GAAoCvlzB,GACzC,MAAMymzB,EAAezlzB,OAAO0jB,UAC5B,IAAIhjB,EAASV,OAAO2vb,eAAe3wb,EAAK0kB,WAAWxvB,YAEnD,KAAOwM,GAAUA,IAAW+kzB,IAGnBtyD,GAAgBzyvB,KAAYwyvB,GAAgBxyvB,IAC7CglzB,GAA2BhlzB,IAC3BmkzB,GAAiBnkzB,EAAQ,MAE7BA,EAASV,OAAO2vb,eAAejvb,EAEvC,CACA,SAASilzB,GAA0B1lyB,GAC/B,MAA2B,iBAAbA,EAAwB2lyB,GAAa3lyB,GAAYkuuB,EAAkBluuB,EACrF,CACA,SAAS4lyB,GAAyB7gvB,EAAcy7E,GAC5C,MAAO,CACHz7E,aAAcA,EACd34D,UAAWs5yB,GAA0BllqB,EAAIxgI,UACzCwmvB,YAAahmnB,EAAIgmnB,YACjBjyvB,MAAOisI,EAAIjsI,MACX0gK,KAAMz0B,EAAIy0B,KAAOz0B,EAAIy0B,KAAO,KAC5B1gL,SAAUisJ,EAAIjsJ,OACdkywB,0BAA2BjmnB,EAAIimnB,wBAEvC,CACA,SAASy+C,GAAuBnmzB,EAAM4qwB,EAAck8C,GAChD,MAAMC,EAAc,GACpB,UAAW/qqB,KAAS4unB,EAChB,GAAIA,EAAa1gvB,eAAe8xH,GAAQ,CACpC,MAAMmF,GAAcypnB,EAAa5unB,GACjCmF,GAAYnmJ,QAAQymJ,KAChB,GAAIqlqB,EAAWrlqB,IAAM,CACjB,IAAKA,GAAIxgI,SACL,MAAM,IAAInlB,MAAO,6CAA4CkgJ,UACrD0zmB,GAAkB1vvB,gDAE9B,GAAImhJ,GAAYl8G,KAAK+hxB,IACjB,MAAM,IAAIlrzB,MAAO,0DAErBirzB,EAAY9ozB,KAAK4ozB,GAAyB7qqB,EAAOyF,IAAI,GAE5D,CAGT,OAAOslqB,CACX,CACA,SAASR,GAAgBpsiB,GACrB,YAAoB72Q,IAAb62Q,EAAyB,KAAOysiB,GAAazsiB,EACxD,CACA,SAASisiB,GAAe7kzB,GACpB,MAAM9I,EAAO8I,EAAMklwB,eACnB,MAAgB,iBAAThuwB,GAAoC,oBAATA,CACtC,CACA,SAAS+uwB,GAAYjmwB,GACjB,MAAM9I,EAAO8I,EAAMklwB,eACnB,MAAgB,cAAThuwB,GAAiC,iBAATA,CACnC,CACA,SAASuuzB,GAAkBzlzB,GACvB,MAAgC,UAAzBA,EAAMklwB,cACjB,CACA,SAASmgD,GAAarlzB,GAClB,OAAOA,EAAM2E,MAAM,KAAKtJ,IAAI88I,GAASA,EAAM9qI,OAC/C,CACA,MAAMq4yB,GAAkB,CACpB,cAAe,WAAY,cAAe,YAAa,kBAAmB,qBAC1E,qBAAsB,yBAE1B,SAASP,GAA2B1mzB,GAChC,MAAMwpwB,EAAU8B,KAChB,GAAI27C,GAAgBhixB,KAAKiixB,GAAY19C,EAAQwB,iBAAiBhrwB,EAAMknzB,IAChE,OAAO,EAEX,MAAMt8C,EAAepB,EAAQoB,aAAa5qwB,GAC1C,UAAWg8I,KAAS4unB,EAAc,CAC9B,MAAMzpnB,EAAcypnB,EAAa5unB,GACjC,QAASniJ,GAAI,EAAGA,GAAIsnJ,EAAYrnJ,OAAQD,KAAK,CACzC,MAAM6zB,GAAUyzH,EAAYtnJ,IACtB8gE,GAAejtC,GAAQ+4uB,eAC7B,GAAIugD,GAAkBt5xB,KAAY04xB,GAAe14xB,KAAY85uB,GAAY95uB,KACpD,WAAjBitC,IAA8C,gBAAjBA,IACZ,iBAAjBA,GACA,OAAO,GAInB,OAAO,CACX,CAEA,SAASwsvB,GAAYnnzB,EAAMoF,GACvB,IAAIgizB,EAAY,KACZpjC,EAAe,KACnBhjxB,OAAOo/C,eAAepgD,EAAMgzvB,GAAgB,CACxC35vB,IAAK,KACD,GAAqB,OAAjB2qxB,EAAuB,CACvB,MAAM1qtB,EAAW+tvB,GAAgBrnzB,EAAMoF,GACjCumC,GAAWw8tB,KACjB6b,EAAer4uB,GAAS44uB,eAAem+B,GAAiB,SAAQppvB,EAAS7gE,oBAAgB,CACrFA,KAAM6gE,EAAS7gE,KACfuH,KAAMs5D,EAASt5D,KACfokxB,kBAAmB,EACnBrqxB,KAAMwxwB,GAAoBvrwB,GAC1B5I,OAAQu0C,GAASm8tB,cAAc/yqB,MAClC,CAEL,OAAOivrB,GAGX1juB,cAAc,IAElBt/C,OAAOo/C,eAAepgD,EAAM8yvB,GAAa,CACrCz5vB,IAAK,KACD,GAAkB,OAAd+tzB,EAAoB,CACpB,MAAM9tvB,EAAW+tvB,GAAgBrnzB,EAAMoF,GAEvCgizB,EADiBj/C,KAEJg/C,YAAYzE,GAAiB,SAAQppvB,EAAS7gE,qBAAiB6gE,EAAQ,CAExF,OAAO8tvB,GAGX9mwB,cAAc,GAEtB,CACA,SAAS+mwB,GAAgBrnzB,EAAMoF,GAC3B,MAAO,CACHpF,KAAMA,EACNvH,KAAMuH,EAAKvH,KACX2izB,SAAUh2yB,EAAK3M,KACf6wP,UAAoBhmP,IAAd8B,EAAKkkP,MAAqBlkP,EAAKkkP,KACrC8rgB,eAAgBhwvB,EAAKoysB,WAE7B,CAOA,MAAMuwD,GAAY3/hB,GAAc,YAAa,CAAC91F,EAAM,CAAC,IAAMA,OAAKhvI,OAAWA,EAAW,CAACtD,EAAMoF,IAASygzB,GAAiB7lzB,EAAMoF,IAOvH4iwB,GAAY5/hB,GAAc,YAAa,CAACz7M,EAAI,CAAC,MAAS6muB,gBAAiBlB,GAAwB7yP,WAAY9ye,IAAMo7uB,QAAWzkwB,EAAW,CAACtD,EAAMoF,IAASs/yB,GAAiB1kzB,EAAMoF,IAK9K2vF,GAAOqzI,GAAc,OAASt5M,KAASw6N,MAAM,KAASx6N,SAAMxrB,OAAWA,EAAW,CAACtD,EAAMoF,IAAS+hzB,GAAYnnzB,EAAMoF,IAKpHkizB,GAAQvgD,GAAkB,QAAUwgD,KAA2BA,yBAK/DC,GAASzgD,GAAkB,SAAWwgD,KAA2BA,yBAKjEE,GAAc1gD,GAAkB,cAAgB2gD,KAAwBA,sBAkExEC,GAAe5gD,GAAkB,eAAgB,CAACxrwB,EAAWoR,MAAYpR,YAAWoR,UAMpFu7vB,GAAW9/hB,GAAc,WAAaj+N,GAAaA,OAAU7G,OAAWA,EAY9E,CAACtD,EAAMoF,IAASg+yB,GAAgBpjzB,EAAMoF,IAOtC,SAASuiB,MAAQhb,GACb,CAqBJ,MAwEM3T,GAAkB,IAAIH,GAAe,2BAC3C,IAKMS,GAAqB,MAA3B,MAAMA,EACFpE,YAAY0yzB,GACRvyzB,KAAKuyzB,SAAWA,EAChBvyzB,KAAK02B,QAAUpE,GACftyB,KAAK64C,OAASvmB,GACdtyB,KAAKy8b,aAAc,EACnBz8b,KAAKwhE,MAAO,EAEZxhE,KAAKkE,YAAc,IAAIuyB,QAAQ,CAAC/Z,EAAKmlC,KACjC7hD,KAAK02B,QAAUha,EACf1c,KAAK64C,OAASgJ,GAEtB,CAEA2wwB,kBACI,GAAIxyzB,KAAKy8b,YACL,OAEJ,MAAMg2X,EAAoB,GACpB9uyB,EAAW,KACb3jB,KAAKwhE,MAAO,EACZxhE,KAAK02B,SAAO,EAEhB,GAAI12B,KAAKuyzB,SACL,QAAS/tzB,EAAI,EAAGA,EAAIxE,KAAKuyzB,SAAS9tzB,OAAQD,IAAK,CAC3C,MAAMkuzB,GAAa1yzB,KAAKuyzB,SAAS/tzB,KACjC,GAAIyquB,GAAUyjF,IACVD,EAAkB7pzB,KAAK8pzB,SAAU,GAE5B/qB,GAAa+qB,IAAa,CAC/B,MAAMC,GAAsB,IAAIl8xB,QAAQ,CAACC,GAASmiB,MAC9C65wB,GAAWn6yB,UAAU,CAAEoL,SAAU+S,GAAS7d,MAAOggC,IAAQ,GAE7D45wB,EAAkB7pzB,KAAK+pzB,GAAmB,EAItDl8xB,QAAQskL,IAAI03mB,GACPtuzB,KAAK,KACNwf,GAAQ,GAEPm+B,MAAM35C,IACPnI,KAAK64C,OAAO1wC,EAAC,GAEgB,IAA7BsqzB,EAAkBhuzB,QAClBkf,IAEJ3jB,KAAKy8b,aAAc,CACvB,EAEJx4b,SAAsBgB,UAAO,SAAuCwW,GAAK,OAAO,IAAKA,GAAKxX,GAAuB0R,GAAShS,GAAiB,GAAK,EAChJM,EAAsBiB,WAAsBwuvB,GAAmB,CAAEz2uB,MAAOhZ,EAAuBmB,QAASnB,EAAsBgB,UAAMsE,WAAY,SAnD1ItF,CAAqB,KAyE3B,MAAMwH,GAAS,IAAIjI,GAAe,QAAS,CACvC+F,WAAY,OACZnE,QAASwtzB,KAEb,SAASA,KACL,MAAQ,GAAEC,OAAgBA,OAAgBA,MAC9C,CAKA,MAAMC,GAAyB,CAC3BpvzB,QAAS+H,GACT7H,WAAYgvzB,GACZluzB,KAAM,IAEV,SAASmuzB,KACL,OAAOx8yB,OAAO0qI,aAAa,GAAK71H,KAAKosF,MAAsB,GAAhBpsF,KAAKqsF,UACpD,CAKA,MAAMllG,GAAuB,IAAI7O,GAAe,wBAK1C0O,GAAc,IAAI1O,GAAe,cAAe,CAClD+F,WAAY,WACZnE,QAAS,IAAM,YAOb2tzB,GAAmB,IAAIvvzB,GAAe,iCAStCmkF,GAAwB,IAAInkF,GAAe,uBAAuB,IAElEwvzB,GAAO,MAAb,MAAMA,EACFhswB,IAAIlnC,GAEAggC,QAAQkH,IAAIlnC,EAChB,CAEAwgC,KAAKxgC,GAEDggC,QAAQQ,KAAKxgC,EACjB,EAEJkzyB,SAAQ/tzB,UAAO,SAAyBwW,GAAK,OAAO,IAAKA,GAAKu3yB,EAAY,EAC1EA,EAAQ9tzB,WAAsBwuvB,GAAmB,CAAEz2uB,MAAO+1yB,EAAS5tzB,QAAS4tzB,EAAQ/tzB,UAAMsE,WAAY,aAZhGypzB,CAAO,KAmEb,MAAMxqE,GAAY,IAAIhlvB,GAAe,WAAY,CAC7C+F,WAAY,OACZnE,QAAS,IAAMsc,GAAO8muB,GAAWpxsB,GAAYyQ,SAAWzQ,GAAY0Q,WA7CxE,SAASmrwB,KAkBD,cAAeC,UAAc,KAAeA,UAAUzzY,QAAWg2X,CAEzE,CAyBqFwd,KAwC/EpgE,GAAwB,IAAIrvvB,GAAe,sBAAuB,CACpE+F,WAAY,OACZnE,QAAS,IAv2La,QAi4LpB+tzB,GAAe,IAAI3vzB,GAAe,gBAsBlC4vzB,GAAsB,IAAI5vzB,GAAe,sBAwB/C,IAAI6vzB,GAA0B,OAA1BA,OAA0B,IAECA,GAA2B5szB,MAAW,GAAK,QACtE4szB,GAA2BA,GAA2BC,QAAa,GAAK,UACxED,GAA2BA,GAA2BE,OAAY,GAAK,SAJvEF,IAA0B,GAiB9B,MAAMG,GACF3zzB,YAAYyqvB,EAAiBmpE,GACzBzzzB,KAAKsqvB,gBAAkBA,EACvBtqvB,KAAKyzzB,mBAAqBA,CAC9B,EAEJ,IAgBMl9wB,GAAQ,MAAd,MAAMA,EAKFm9wB,kBAAkBnR,GACd,OAAO,IAAIjrwB,GAAgBirwB,EAC/B,CAIAhrwB,mBAAmBgrwB,GACf,OAAO9rxB,QAAQC,QAAQ12B,KAAK0zzB,kBAAkBnR,GAClD,CAIAoR,kCAAkCpR,GAC9B,MAAMj4D,EAAkBtqvB,KAAK0zzB,kBAAkBnR,GAEzCkR,GAAqB1nC,GADT3sB,GAAemjD,GACkBvjD,cAC9CpgvB,OAAO,CAAC+iyB,GAAWmM,MACpB,MAAMtvB,GAAe3/B,GAAgBivD,IACrCtvB,WAAgBmjB,GAAU/4yB,KAAK,IAAI61xB,GAAiBD,KAC7CmjB,IACR,IACH,OAAO,IAAI6R,GAA6BlpE,EAAiBmpE,GAC7D,CAIAG,mCAAmCrR,GAC/B,OAAO9rxB,QAAQC,QAAQ12B,KAAK2zzB,kCAAkCpR,GAClE,CAIA3gM,aAAe,CAIfiyM,cAAclpzB,GAAQ,CAItBmpzB,YAAYvR,GAEZ,EAEJhswB,SAAStxC,UAAO,SAA0BwW,GAAK,OAAO,IAAKA,GAAK86B,EAAa,EAC7EA,EAASrxC,WAAsBwuvB,GAAmB,CAAEz2uB,MAAOs5B,EAAUnxC,QAASmxC,EAAStxC,UAAMsE,WAAY,SAlDnGgtC,CAAQ,KA4Dd,MAAMw9wB,GAAmB,IAAIvwzB,GAAe,mBAW5C,MAAMwwzB,IAYN,SAASxvoB,GAAar2K,GAElB2uxB,GAAc5iB,GAA2B/rwB,IACzCi1yB,GAAkBj1yB,GAAWxI,QAAQi+B,GAAiBwoB,GAAcxoB,GACxE,CAgBA,MAAMqwxB,GAA6B,KACnC,IAAIC,IAAa,EAOjB,SAASC,KACAD,KACDA,IAAa,EAMbE,GAAkB,oBAAgBzwD,IAClCywD,GAAkB,uBAAwB7Q,IAC1C6Q,GAAkB,eAAgBrR,IAClCqR,GAAkB,aAAc5sxB,IAChC4sxB,GAAkB,eAAgB1Q,IAClC0Q,GAAkB,qBAAsBlR,IACxCkR,GAAkB,iBAAkBn8X,IACpCm8X,GAAkB,cAAe/Q,IACjC+Q,GAAkB,oBAAqBhR,IACvCgR,GAAkB,gBAAiB9Q,IACnC8Q,GAAkB,eAAgB5voB,IAE1C,CAKA,SAAS4voB,GAAkBhxzB,EAAMyX,GAC7B,WAAWw5yB,SAAa,MAAgBA,WAK1Bz4D,GAEH,CACH,IAAI5kuB,EAHE4kuB,GAGYq4D,IACbj9xB,IACDA,EALE4kuB,GAKYq4D,IAA8B,CAAC,GAEjDj9xB,EAAU5zB,GAAQyX,EAG9B,CAEA,MAAMi+B,GAAW,KAAMriB,QAAQC,QAAQ,GAAtB,GACjB,SAAS43B,GAAkBzzC,UACZy5yB,KAAS,IAEhBx7wB,GAAQ30C,KAAK,KACT0W,GAAMA,EAAG+V,MAAM,KAAM,KAAI,GAI7B0jyB,KAAKj8xB,QAAQi2B,kBAAkB,oBAAqBzzC,EAE5D,CAmHA,MAAM3G,GACFrU,aAAc00zB,wBAAuB,EAAOC,sCAAqC,EAAOC,oCAAmC,IA2BvH,GA1BAz0zB,KAAK00zB,sBAAuB,EAC5B10zB,KAAK20zB,sBAAuB,EAI5B30zB,KAAK40zB,UAAW,EAIhB50zB,KAAK60zB,WAAa,IAAI9sxB,IAAa,GAMnC/nC,KAAK80zB,iBAAmB,IAAI/sxB,IAAa,GAMzC/nC,KAAK+0zB,SAAW,IAAIhtxB,IAAa,GAIjC/nC,KAAK4jB,QAAU,IAAImkB,IAAa,UACrBusxB,KAAQ,IACf,MAAM,IAAIp6D,GAAa,KAA2CtjuB,GAEtE09xB,KAAKU,oBACL,MAAM73mB,EAAOn9M,KACbm9M,EAAK83mB,SAAW,EAChB93mB,EAAK+3mB,OAAS/3mB,EAAKg4mB,OAASb,KAAKj8xB,QAS7Bi8xB,KAAKc,uBACLj4mB,EAAKg4mB,OAASh4mB,EAAKg4mB,OAAOvnvB,KAAK,IAAI0mvB,KAAKc,uBAExCb,GAAwBD,KAAKe,yBAC7Bl4mB,EAAKg4mB,OAASh4mB,EAAKg4mB,OAAOvnvB,KAAK0mvB,KAAKe,yBAIxCl4mB,EAAKq3mB,oCACAC,GAAoCD,EACzCr3mB,EAAKs3mB,iCAAmCA,EACxCt3mB,EAAKm4mB,6BAA8B,EACnCn4mB,EAAKo4mB,4BAxKb,SAASC,KACL,IAAID,EAA8B35D,GAAQxlkB,sBACtCq/nB,EAA6B75D,GAAQtlkB,qBACzC,UAAWg+nB,KAAS,KAAeiB,GAA+BE,EAA4B,CAG1F,MAAMC,EAAiCH,EAA4BjB,KAAKqB,WAAW,qBAC/ED,IACAH,EAA8BG,GAElC,MAAME,EAAgCH,EAA2BnB,KAAKqB,WAAW,qBAC7EC,IACAH,EAA6BG,GAGrC,MAAO,CAAEL,8BAA6BE,6BAC1C,CAwJ2CD,GAAiCD,4BAyJ5E,SAASM,GAAiClkzB,GACtC,MAAMmkzB,EAAwC,MAzClD,SAASC,GAA8BpkzB,GAc/BA,EAAKqkzB,uBAA6D,IAArCrkzB,EAAK2jzB,8BAGtC3jzB,EAAK2jzB,4BAA8B3jzB,EAAK4jzB,4BAA4Bl9yB,KAAKujvB,GAAS,KAUzEjqvB,EAAKskzB,mBACNtkzB,EAAKskzB,iBAAmB3B,KAAKt8xB,KAAKk+xB,kBAAkB,mBAAoB,KACpEvkzB,EAAK2jzB,6BAA8B,EACnCa,GAAsBxkzB,GACtBA,EAAKqkzB,sBAAuB,EAC5BI,GAAYzkzB,GACZA,EAAKqkzB,sBAAuB,QAC7B/nzB,EAAW,OAAW,SAE7B0D,EAAKskzB,iBAAiBI,QAAM,GAEhCF,GAAsBxkzB,GAC1B,CAGQokzB,CAA8BpkzB,EAAI,EAEtCA,EAAKwjzB,OAASxjzB,EAAKwjzB,OAAOvnvB,KAAK,CAC3BxqE,KAAM,UACN+rE,WAAY,CAAEmnvB,eAAiB,GAC/BC,aAAc,CAACttyB,EAAUoP,EAASt2B,EAAQy0zB,GAAMC,GAAWC,MACvD,IACIC,UAAQhlzB,GACDsX,EAAS2tyB,WAAW70zB,EAAQy0zB,GAAMC,GAAWC,GAQxD,CAPA,SAES/kzB,EAAK6izB,oCAAoD,cAAdgC,GAAK7rzB,MACjDgH,EAAK8izB,mCACLqB,IAEJe,GAAQllzB,EACZ,GAEJmlzB,SAAU,CAAC7tyB,EAAUoP,EAASt2B,EAAQiM,GAAUyozB,GAAWC,GAAWx+yB,MAClE,IACIy+yB,UAAQhlzB,GACDsX,EAASotyB,OAAOt0zB,EAAQiM,GAAUyozB,GAAWC,GAAWx+yB,GAOnE,CANA,QAEQvG,EAAK8izB,kCACLqB,IAEJe,GAAQllzB,EACZ,GAEJolzB,UAAW,CAAC9tyB,EAAUoP,EAASt2B,EAAQi1zB,MACnC/tyB,EAASguyB,QAAQl1zB,EAAQi1zB,IACrB3+xB,IAAYt2B,IAGe,aAAvBi1zB,GAAahyqB,QACbrzI,EAAKulzB,sBAAwBF,GAAaG,UAC1ChB,GAAsBxkzB,GACtBykzB,GAAYzkzB,IAEgB,aAAvBqlzB,GAAahyqB,SAClBrzI,EAAK+izB,qBAAuBsC,GAAaI,aAIrDC,cAAe,CAACpuyB,EAAUoP,EAASt2B,EAAQ8W,MACvCoQ,EAAS6wH,YAAY/3I,EAAQ8W,IAC7BlH,EAAKlB,kBAAkB,IAAMkB,EAAKiS,QAAQ8lB,KAAK7wB,MACxC,IAGnB,CA7MQg9yB,CAAiC14mB,EACrC,CACAh9M,yBAEI,cAAcm0zB,KAAS,MAAqD,IAAtCA,KAAKj8xB,QAAQr0B,IAAI,gBAC3D,CACA7D,6BACI,IAAK+T,GAAOojzB,kBACR,MAAM,IAAIp9D,GAAa,KAAkDtjuB,EAEjF,CACAz2B,gCACI,GAAI+T,GAAOojzB,kBACP,MAAM,IAAIp9D,GAAa,KAAkDtjuB,EAEjF,CAaAivB,IAAIhrC,EAAI47yB,EAAWC,GACf,OAAO12zB,KAAKm1zB,OAAOtvwB,IAAIhrC,EAAI47yB,EAAWC,EAC1C,CAaAa,QAAQ18yB,EAAI47yB,EAAWC,EAAWtzzB,GAC9B,MAAMuO,GAAO3R,KAAKm1zB,OACZqB,GAAO7kzB,GAAKukzB,kBAAkB,gBAAkB9yzB,EAAMyX,EAAI28yB,GAAellyB,GAAMA,IACrF,IACI,OAAO3gB,GAAK4lzB,QAAQf,GAAMC,EAAWC,EAIzC,CAHA,QAEI/kzB,GAAK8lzB,WAAWjB,GACpB,CACJ,CAKA3kzB,WAAWgJ,EAAI47yB,EAAWC,GACtB,OAAO12zB,KAAKm1zB,OAAOtjzB,WAAWgJ,EAAI47yB,EAAWC,EACjD,CAcAjmzB,kBAAkBoK,GACd,OAAO7a,KAAKk1zB,OAAOrvwB,IAAIhrC,EAC3B,EAEJ,MAAM28yB,GAAgB,CAAC,EACvB,SAASpB,GAAYzkzB,GAgBjB,GAAqB,GAAjBA,EAAKsjzB,WAAkBtjzB,EAAKgjzB,uBAAyBhjzB,EAAKijzB,SAC1D,IACIjjzB,EAAKsjzB,WACLtjzB,EAAKmjzB,iBAAiBprxB,KAAK,KAY/B,CAXA,QAGI,GADA/3B,EAAKsjzB,YACAtjzB,EAAKgjzB,qBACN,IACIhjzB,EAAKlB,kBAAkB,IAAMkB,EAAKojzB,SAASrrxB,KAAK,MAIpD,CAHA,QAEI/3B,EAAKijzB,UAAW,CACpB,CAER,CAER,CA+FA,SAASuB,GAAsBxkzB,GAIvBA,EAAKgjzB,wBAHLhjzB,EAAKulzB,wBACHvlzB,EAAK6izB,oCAAsC7izB,EAAK8izB,oCACT,IAArC9izB,EAAK2jzB,4BAMjB,CACA,SAASqB,GAAQhlzB,GACbA,EAAKsjzB,WACDtjzB,EAAKijzB,WACLjjzB,EAAKijzB,UAAW,EAChBjjzB,EAAKkjzB,WAAWnrxB,KAAK,MAE7B,CACA,SAASmtxB,GAAQllzB,GACbA,EAAKsjzB,WACLmB,GAAYzkzB,EAChB,CAKA,MAAM+lzB,GACF73zB,cACIG,KAAK20zB,sBAAuB,EAC5B30zB,KAAK00zB,sBAAuB,EAC5B10zB,KAAK40zB,UAAW,EAChB50zB,KAAK60zB,WAAa,IAAI9sxB,GACtB/nC,KAAK80zB,iBAAmB,IAAI/sxB,GAC5B/nC,KAAK+0zB,SAAW,IAAIhtxB,GACpB/nC,KAAK4jB,QAAU,IAAImkB,EACvB,CACA8d,IAAIhrC,EAAI47yB,EAAWC,GACf,OAAO77yB,EAAG+V,MAAM6lyB,EAAWC,EAC/B,CACA7kzB,WAAWgJ,EAAI47yB,EAAWC,GACtB,OAAO77yB,EAAG+V,MAAM6lyB,EAAWC,EAC/B,CACAjmzB,kBAAkBoK,GACd,OAAOA,GACX,CACA08yB,QAAQ18yB,EAAI47yB,EAAWC,EAAWtzzB,GAC9B,OAAOyX,EAAG+V,MAAM6lyB,EAAWC,EAC/B,EAYJ,MAAMiB,GAAc,IAAIn0zB,GAAe,IAIjCo0zB,GAAqB,IAAIp0zB,GAAe,IAC9C,IAwRIq0zB,GApQE5jzB,GAAW,MAAjB,MAAMA,EACFpU,YAAYi4zB,EAAS9kzB,EAAU+kzB,GAC3B/3zB,KAAK83zB,QAAUA,EACf93zB,KAAKgT,SAAWA,EAChBhT,KAAKg4zB,cAAgB,EACrBh4zB,KAAKi4zB,eAAgB,EAOrBj4zB,KAAKk4zB,UAAW,EAChBl4zB,KAAK42d,WAAa,GAClB52d,KAAKm4zB,iBAAmB,KAGnBN,KACDO,GAAqBL,GACrBA,EAAkBhlzB,YAAYC,IAElChT,KAAKq4zB,sBACLP,EAAQjywB,IAAI,KACR7lD,KAAKm4zB,wBACM7D,KAAQ,IAAc,KAAOA,KAAKj8xB,QAAQr0B,IAAI,mBAAkB,EAEnF,CACAq0zB,sBACIr4zB,KAAK83zB,QAAQjD,WAAWt8yB,UAAU,CAC9BO,KAAM,KACF9Y,KAAKk4zB,UAAW,EAChBl4zB,KAAKi4zB,eAAgB,KAG7Bj4zB,KAAK83zB,QAAQrnzB,kBAAkB,KAC3BzQ,KAAK83zB,QAAQ/C,SAASx8yB,UAAU,CAC5BO,KAAM,KACF5E,GAAOokzB,yBACPhqwB,GAAkB,KACdtuD,KAAKi4zB,eAAgB,EACrBj4zB,KAAKu4zB,sBAAoB,EAC5B,GAER,EAET,CAKAC,8BACI,YAAKR,eAAiB,EACtBh4zB,KAAKk4zB,UAAW,EACTl4zB,KAAKg4zB,aAChB,CAKAS,8BAEI,GADAz4zB,KAAKg4zB,eAAiB,EAClBh4zB,KAAKg4zB,cAAgB,EACrB,MAAM,IAAIvxzB,MAAM,qCAEpB,YAAK8xzB,uBACEv4zB,KAAKg4zB,aAChB,CAIApD,WACI,OAAO50zB,KAAKi4zB,eAAwC,IAAvBj4zB,KAAKg4zB,gBAAwBh4zB,KAAK83zB,QAAQpD,oBAC3E,CACA6D,uBACI,GAAIv4zB,KAAK40zB,WAELtmwB,GAAkB,KACd,KAAkC,IAA3BtuD,KAAK42d,WAAWnyd,QAAc,CACjC,IAAI8pD,EAAKvuD,KAAK42d,WAAW5ld,MACzBooD,aAAa7K,EAAGmqwB,WAChBnqwB,EAAGoqwB,OAAO34zB,KAAKk4zB,SAAQ,CAE3Bl4zB,KAAKk4zB,UAAW,QAGnB,CAED,IAAIxuyB,EAAU1pB,KAAK44zB,kBACnB54zB,KAAK42d,WAAa52d,KAAK42d,WAAW7+c,OAAQw2C,IAClCA,EAAGsqwB,WAAYtqwB,EAAGsqwB,SAASnvyB,KAC3B0vC,aAAa7K,EAAGmqwB,YACT,IAIf14zB,KAAKk4zB,UAAW,EAExB,CACAU,kBACI,OAAK54zB,KAAKm4zB,iBAIHn4zB,KAAKm4zB,iBAAiBW,WAAWvxzB,IAAKkU,KAErCvD,OAAQuD,EAAEvD,OAGV6gzB,iBAAkBt9yB,EAAEs9yB,iBACpBrtzB,KAAM+P,EAAE/P,QATL,EAYf,CACAstzB,YAAYzqwB,EAAI8K,EAASw/vB,GACrB,IAAIH,IAAY,EACZr/vB,GAAWA,EAAU,IACrBq/vB,GAAY93wB,WAAW,KACnB5gD,KAAK42d,WAAa52d,KAAK42d,WAAW7+c,OAAQw2C,IAAOA,GAAGmqwB,YAAcA,IAClEnqwB,EAAGvuD,KAAKk4zB,SAAUl4zB,KAAK44zB,kBAAiB,EACzCv/vB,IAEPr5D,KAAK42d,WAAWhud,KAAK,CAAE+vzB,OAAQpqwB,EAAImqwB,UAAWA,GAAWG,SAAUA,GACvE,CAaAhlzB,WAAW8kzB,EAAQt/vB,EAASw/vB,GACxB,GAAIA,IAAa74zB,KAAKm4zB,iBAClB,MAAM,IAAI1xzB,MAAM,8HAIpBzG,KAAKg5zB,YAAYL,EAAQt/vB,EAASw/vB,GAClC74zB,KAAKu4zB,sBACT,CAKAU,yBACI,OAAOj5zB,KAAKg4zB,aAChB,CAOAkB,oBAAoBj8yB,GAChBjd,KAAKgT,SAASkmzB,oBAAoBj8yB,EAAOjd,KAC7C,CAOAm5zB,sBAAsBl8yB,GAClBjd,KAAKgT,SAASmmzB,sBAAsBl8yB,EACxC,CAOAm8yB,cAAclxH,EAAO54iB,EAAU+pqB,GAE3B,MAAO,EACX,EAEJplzB,SAAYhP,UAAO,SAA6BwW,GAAK,OAAO,IAAKA,GAAKxH,GAAa0B,GAASzB,IAASyB,GAASxB,IAAsBwB,GAASiizB,IAAsB,EACnK3jzB,EAAY/O,WAAsBwuvB,GAAmB,CAAEz2uB,MAAOhJ,EAAa7O,QAAS6O,EAAYhP,YArL1FgP,CAAW,KAgMXE,GAAmB,MAAzB,MAAMA,EACFtU,cAEIG,KAAKs5zB,cAAgB,IAAI5zzB,GAC7B,CAMAwzzB,oBAAoBj8yB,EAAO7J,GACvBpT,KAAKs5zB,cAAc9yzB,IAAIyW,EAAO7J,EAClC,CAKA+lzB,sBAAsBl8yB,GAClBjd,KAAKs5zB,cAAc7xzB,OAAOwV,EAC9B,CAIAs8yB,4BACIv5zB,KAAKs5zB,cAAc3xzB,OACvB,CAKAmM,eAAeZ,GACX,OAAOlT,KAAKs5zB,cAAct1zB,IAAIkP,IAAS,IAC3C,CAIAI,sBACI,OAAOwG,MAAMC,KAAK/Z,KAAKs5zB,cAAc3/yB,SACzC,CAIApG,qBACI,OAAOuG,MAAMC,KAAK/Z,KAAKs5zB,cAAcjyzB,OACzC,CAOAgM,sBAAsBH,EAAMC,GAAkB,GAC1C,OAAO0kzB,IAAoBxkzB,sBAAsBrT,KAAMkT,EAAMC,IAAoB,IACrF,EAEJgB,SAAoBlP,UAAO,SAAqCwW,GAAK,OAAO,IAAKA,GAAKtH,EAAwB,EAC9GA,EAAoBjP,WAAsBwuvB,GAAmB,CAAEz2uB,MAAO9I,EAAqB/O,QAAS+O,EAAoBlP,UAAMsE,WAAY,aAxDpI4K,CAAmB,KAiEzB,SAASikzB,GAAqBnxqB,GAC1B4wqB,GAAqB5wqB,CACzB,CAGA,MAAM7/F,IAAkDxwB,EACxD,IAAI4iyB,GAAoB,KAKxB,MAAMC,GAA2B,IAAIj2zB,GAAe,sBAO9Ck2zB,GAA6B,IAAIl2zB,GAAe,4BAWhDglD,GAAyB,IAAIhlD,GAAe,wBAClD,SAASm2zB,GAAuB51zB,EAAU6X,EAAS2myB,GAE/C,MAAMqX,EAAgB,IAAItixB,GAAgBirwB,GAGtC,OAAO9rxB,QAAQC,QAAQkjyB,EAgC/B,CAIA,SAAS56B,GAAgB7oe,GACrB,OAAOA,EAAG6oe,eACd,CAMA,MAAMv3uB,GACF5nD,YAAYuD,EAAM6Z,GACdjd,KAAKoD,KAAOA,EACZpD,KAAKid,MAAQA,CACjB,EAQJ,SAAS48yB,GAAe91zB,GACpB,GAAIy1zB,KAAsBA,GAAkBx1zB,IAAIy1zB,IAA0B,GACtE,MAAM,IAAIv/D,GAAa,KAA+CtjuB,GAI1E4iyB,GAAoBz1zB,EACpB,MAAMkhB,EAAWlhB,EAASC,IAAI81zB,IAC9BC,UAAwBh2zB,GACjBkhB,CACX,CAkBA,SAAS80yB,GAAwBh2zB,GAC7B,MAAMi2zB,EAAQj2zB,EAASC,IAAIqO,GAAsB,MAC7C2nzB,GACAA,EAAMr0zB,QAASkU,GAASA,IAEhC,CAYA,SAASogzB,GAA0BvqxB,GAC/B,MAAQ9L,gBAAes2xB,eAAcC,qBAAsBzqxB,EACvD0X,SAAiCn5C,IAAlB21B,GA52fvB,SAASw2xB,GAA8BzvzB,GAGnC,GAQJ,SAAS0vzB,GAAmB1vzB,GACxB,IAAKk0vB,GAAgBl0vB,GACjB,MAAM,IAAIuvvB,GAAa,IAAmD,OAAMG,GAAkB1vvB,iFAG1G,CAfI0vzB,CAAmB1vzB,IACEk0vB,GAAgBl0vB,GACnBw3sB,WACd,MAAM,IAAI+3C,GAAa,IAAoD,OAAMG,GAAkB1vvB,2HAEvE0vvB,GAAkB1vvB,mEAGtD,CAo2fQyvzB,CAA8Bx2xB,GAElC,MAAM02xB,EAlCV,SAASC,GAA8BxlzB,EAAY,IAG/C,GAAIykzB,GACA,OAAOA,GAEX,MAAMz1zB,EAAWy2zB,GAAuBzlzB,GACxCykzB,UAAoBz1zB,EAEpBg2zB,GAAwBh2zB,GACjBA,CACX,CAuB6Bw2zB,CAA8BJ,GACjDrkwB,GAAS2kwB,GAAU,UAAWC,MACpC,OAAO5kwB,GAAOjQ,IAAI,KAGd,MAIM80wB,GAAc5vxB,GAJI,CACpB,CAAErnC,QAASwQ,GAAQ/B,SAAU2jD,OACzBokwB,GAAgB,IAEuCI,EAAkB,wBAC3EM,GAAmBD,GAAY32zB,IAAIsQ,GAAc,MACvD,GAAI8yC,KAAgBwzwB,GAChB,MAAM,IAAI1gE,GAAa,IAAoD,6DAE/E,IAAI2gE,GACJ/kwB,GAAOrlD,kBAAkB,KACrBoqzB,GAAsB/kwB,GAAOlyC,QAAQrL,UAAU,CAC3CO,KAAOD,KACH+hzB,GAAiB9grB,YAAYjhI,GAAK,GAEzC,GAIL,MAAMiizB,GAAkB,IAAMH,GAAY7uzB,UACpCivzB,GAA6BT,EAAiBt2zB,IAAI01zB,IACxDqB,UAA2BzyzB,IAAIwyzB,IAC/BH,GAAYrvzB,UAAU,KAClBuvzB,GAAoB1yyB,cACpB4yyB,GAA2BtzzB,OAAOqzzB,GAAe,GAE9CE,GAA6BJ,GAAkB9kwB,GAAQ,KAC1D,MAAMmlwB,GAAaN,GAAY32zB,IAAIC,IACnCg3zB,UAAWzI,kBACJyI,GAAW/2zB,YAAYC,KAAK,KAE/B8xyB,EADiB0kB,GAAY32zB,IAAIwkvB,GAAWitD,IACpBA,GACxB,MAAMnutB,GAASqzuB,GAAY32zB,IAAIuiD,IAC/B,YAAsBt4C,IAAlB21B,GACA0jD,GAAOiuW,UAAU3xZ,GAEd0jD,IACV,EACJ,EAET,CAYA,SAASt1E,GAAsBkpzB,EAAuB93zB,EAAM2R,EAAY,IACpE,MAAMmuI,EAAQ,aAAY9/I,IACpBk/L,EAAS,IAAI9+L,GAAe0/I,GAClC,MAAO,CAACi4qB,GAAiB,MACrB,IAAIl2yB,GAAWm2yB,KACf,IAAKn2yB,IAAYA,GAASlhB,SAASC,IAAIy1zB,IAA0B,GAAQ,CACrE,MAAMU,GAAoB,IACnBplzB,KACAomzB,GACH,CAAEz3zB,QAAS4+L,EAAQnwL,UAAU,IAE7B+ozB,EACAA,EAAsBf,IAGtBN,GAAeW,GAAuBL,GAAmBj3qB,GAAK,CAGtE,OAAOm4qB,IAAqB,CAEpC,CAMA,SAASA,GAAeC,GACpB,MAAMr2yB,EAAWm2yB,KACjB,IAAKn2yB,EACD,MAAM,IAAIi1uB,GAAa,KAA+CtjuB,GAM1E,OAAO3R,CACX,CAKA,SAASu1yB,GAAuBzlzB,EAAY,GAAI3R,GAC5C,OAAOwB,GAASgH,OAAO,CACnBxI,OACA2R,UAAW,CACP,CAAErR,QAASykxB,GAAgBh2wB,SAAU,YACrC,CAAEzO,QAASg2zB,GAA4BvnzB,SAAU,IAAIpK,IAAI,CAAC,IAAMyxzB,GAAoB,WACjFzkzB,IAGf,CAOA,SAASwmzB,KACLH,MAAetvzB,SACnB,CAMA,SAASsvzB,KACL,OAAO5B,IAAmBx1zB,IAAI81zB,KAAgB,IAClD,CACA,IASMA,GAAW,MAAjB,MAAMA,EAEFj6zB,YAAYirC,GACR9qC,KAAK8qC,UAAYA,EACjB9qC,KAAKqviB,SAAW,GAChBrviB,KAAKw7zB,kBAAoB,GACzBx7zB,KAAKgvD,YAAa,CACtB,CAOAyswB,uBAAuB7B,EAAeh+yB,GAKlC,MAAMk6C,EAAS2kwB,GAAU7+yB,GAASk6C,OAAQ4kwB,GAAiB9+yB,IACrD7G,GAAY,CAAC,CAAErR,QAASwQ,GAAQ/B,SAAU2jD,IAKhD,OAAOA,EAAOjQ,IAAI,KACd,MAAM61wB,GAAiB92zB,GAASgH,OAAO,CAAEmJ,UAAWA,GAAW1I,OAAQrM,KAAK+D,SAAUX,KAAMw2zB,EAAcrX,WAAWn/yB,OAC/Gu4zB,GAAY/B,EAAchuzB,OAAO8vzB,IACjCd,GAAmBe,GAAU53zB,SAASC,IAAIsQ,GAAc,MAC9D,IAAKsmzB,GACD,MAAM,IAAI1gE,GAAa,KAAoDtjuB,GAE/Ek/B,SAAOrlD,kBAAkB,KACrB,MAAMse,GAAe+mC,EAAOlyC,QAAQrL,UAAU,CAC1CO,KAAOD,KACH+hzB,GAAiB9grB,YAAYjhI,GAAK,IAG1C8izB,GAAUrwzB,UAAU,KAChB1K,GAAOZ,KAAKqviB,SAAUssR,IACtB5syB,GAAa5G,aAAW,EAC3B,GAEE6yyB,GAA6BJ,GAAkB9kwB,EAAQ,KAC1D,MAAMmlwB,GAAaU,GAAU53zB,SAASC,IAAIC,IAC1Cg3zB,UAAWzI,kBACJyI,GAAW/2zB,YAAYC,KAAK,KAG/B8xyB,EADiB0lB,GAAU53zB,SAASC,IAAIwkvB,GAAWitD,IAC3BA,GACxBz1yB,KAAK47zB,mBAAmBD,IACjBA,IACV,EACJ,EAET,CAiBAhmY,gBAAgB4sX,EAAYsZ,EAAkB,IAC1C,MAAMjgzB,EAAUkgzB,GAAe,CAAC,EAAGD,GACnC,OAAOlC,GAAuB35zB,EAAe4b,EAAS2myB,GACjDp+yB,KAAKy1zB,IAAiB55zB,KAAKy7zB,uBAAuB7B,GAAeh+yB,GAC1E,CACAggzB,mBAAmBD,GACf,MAAMr0uB,EAASq0uB,EAAU53zB,SAASC,IAAIuiD,IACtC,GAAIo1wB,EAAUxZ,qBAAqB19yB,OAAS,EACxCk3zB,EAAUxZ,qBAAqBx8yB,QAAQy7C,GAAKkmC,EAAOiuW,UAAUn0Y,QAAE,KAE1Du6wB,EAAUtyxB,SAAS0yxB,cAIxB,MAAM,IAAI7hE,IAAa,KAA4DtjuB,GAHnF+kyB,EAAUtyxB,SAAS0yxB,cAAcz0uB,EAMI,CAEzCtnF,KAAKqviB,SAASzmiB,KAAK+yzB,EACvB,CAIArwzB,UAAU0C,GACNhO,KAAKw7zB,kBAAkB5yzB,KAAKoF,EAChC,CAKIjK,eACA,OAAO/D,KAAK8qC,SAChB,CAKAh/B,UACI,GAAI9L,KAAKgvD,WACL,MAAM,IAAIkrsB,GAAa,KAAuDtjuB,GAElF52B,KAAKqviB,SAAStpiB,QAAQJ,QAAQyiN,GAAUA,EAAOt8M,WAC/C9L,KAAKw7zB,kBAAkB71zB,QAAQnF,GAAYA,KAC3C,MAAMw7zB,EAAmBh8zB,KAAK8qC,UAAU9mC,IAAI01zB,GAA4B,MACpEsC,IACAA,EAAiBr2zB,QAAQnF,GAAYA,KACrCw7zB,EAAiBr0zB,SAErB3H,KAAKgvD,YAAa,CACtB,CAIIwqB,gBACA,OAAOx5E,KAAKgvD,UAChB,EAEJ8qwB,SAAY70zB,UAAO,SAA6BwW,GAAK,OAAO,IAAKA,GAAKq+yB,GAAankzB,GAAS/Q,IAAY,EACxGk1zB,EAAY50zB,WAAsBwuvB,GAAmB,CAAEz2uB,MAAO68yB,EAAa10zB,QAAS00zB,EAAY70zB,UAAMsE,WAAY,aAnI5GuwzB,CAAW,KA2IjB,SAASY,GAAiB9+yB,GACtB,MAAO,CACH24yB,sBAAiE,EACjEC,sCAAuC54yB,IAAWA,EAAQqgzB,yBAA0B,EACpFxH,oCAAqC74yB,IAAWA,EAAQsgzB,uBAAwB,EAExF,CACA,SAASzB,GAAU0B,EAAavgzB,GAC5B,IAAIk6C,EACJ,OACIA,EADgB,SAAhBqmwB,EACS,IAAIzE,IAGa,YAAhByE,OAA4BluzB,EAAYkuzB,IAAgB,IAAIjozB,GAAO0H,GAE1Ek6C,CACX,CACA,SAASklwB,GAA6BzmzB,EAAcuhD,EAAQ9nD,GACxD,IACI,MAAMsD,EAAStD,IACf,OAAIihuB,GAAU39tB,GACHA,EAAOwwC,MAAO35C,IACjB2tD,QAAOrlD,kBAAkB,IAAM8D,EAAaulI,YAAY3xI,IAElDA,IAGPmJ,CAMX,CALA,MACOnJ,GACH2tD,QAAOrlD,kBAAkB,IAAM8D,EAAaulI,YAAY3xI,IAElDA,CACV,CACJ,CACA,SAAS2zzB,GAAelqhB,EAAKtgM,GACzB,OAAIx3F,MAAM2C,QAAQ60F,GACRA,EAAK1yF,OAAOk9yB,GAAgBlqhB,GAG5B,IAAKA,KAAQtgM,EAG3B,CACA,IA6FM/qD,GAAc,MAApB,MAAMA,EAIEizB,gBACA,OAAOx5E,KAAKgvD,UAChB,CAIIjrD,eACA,OAAO/D,KAAK8qC,SAChB,CAEAjrC,YAAY2F,EAAOslC,EAAWsxxB,GAC1Bp8zB,KAAKwF,MAAQA,EACbxF,KAAK8qC,UAAYA,EACjB9qC,KAAKo8zB,kBAAoBA,EAEzBp8zB,KAAKq8zB,oBAAsB,GAC3Br8zB,KAAKs8zB,OAAS,GACdt8zB,KAAKu8zB,cAAe,EACpBv8zB,KAAKw8zB,SAAU,EACfx8zB,KAAKgvD,YAAa,EAClBhvD,KAAKw7zB,kBAAoB,GAKzBx7zB,KAAK6mD,eAAiB,GAItB7mD,KAAKwmD,WAAa,GAClBxmD,KAAKy8zB,8BAAgCz8zB,KAAKwF,MAAMsvzB,iBAAiBv8yB,UAAU,CACvEO,KAAM,KACF9Y,KAAKwF,MAAMqgD,IAAI,KACX7lD,KAAKu9rB,MAAI,EACZ,IAGT,MAAMm/H,GAAoB,IAAIn6yB,KAAYC,KACtCxiB,KAAKw8zB,QAAUx8zB,KAAKwF,MAAMovzB,WAAa50zB,KAAKwF,MAAMkvzB,uBAC7C10zB,KAAKwF,MAAMmvzB,qBAChB30zB,KAAKwF,MAAMiL,kBAAkB,KACzB+R,GAAS1J,KAAK9Y,KAAKw8zB,SACnBh6yB,GAASmB,UAAQ,EACpB,GAECixyB,GAAW,IAAIryyB,KAAYC,KAG7B,IAAIm6yB,GACJ38zB,KAAKwF,MAAMiL,kBAAkB,KACzBkszB,GAAY38zB,KAAKwF,MAAMuvzB,SAASx8yB,UAAU,KACtCrE,GAAOokzB,yBAGPhqwB,GAAkB,MACTtuD,KAAKw8zB,UAAYx8zB,KAAKwF,MAAMkvzB,uBAC5B10zB,KAAKwF,MAAMmvzB,uBACZ30zB,KAAKw8zB,SAAU,EACfh6yB,GAAS1J,MAAK,GAAI,EAEzB,EACJ,GAEL,MAAM8jzB,GAAc58zB,KAAKwF,MAAMqvzB,WAAWt8yB,UAAU,KAChDrE,GAAO2ozB,sBACH78zB,KAAKw8zB,UACLx8zB,KAAKw8zB,SAAU,EACfx8zB,KAAKwF,MAAMiL,kBAAkB,KACzB+R,GAAS1J,MAAK,EAAK,GACtB,GAGT,MAAO,KACH6jzB,GAAUx0yB,cACVy0yB,GAAYz0yB,aAAW,CAC3B,GAEJnoB,KAAK40zB,SCxnxBN,SAASj6wB,MAASxqB,GACrB,IAAIs/sB,EAAaljpB,OAAOmjpB,kBACpBn4tB,EAAY,KACZqc,EAAOzD,EAAYA,EAAY1rB,OAAS,GAU5C,SATI+S,MAAYoc,IACZrc,EAAY4Y,EAAYnf,MACpBmf,EAAY1rB,OAAS,GAAoD,iBAAxC0rB,EAAYA,EAAY1rB,OAAS,KAClEgruB,EAAat/sB,EAAYnf,QAGR,iBAAT4iB,IACZ67sB,EAAat/sB,EAAYnf,OAEX,OAAduG,GAA6C,IAAvB4Y,EAAY1rB,QAAgB0rB,EAAY,aAAc5N,KACrE4N,EAAY,IAAC,EAEjBW,KAAS2+sB,EAFQ,EAEE,EAAE/3tB,MAAUyY,EAAa5Y,GACvD,CDwmxBYulzB,CAAQJ,GAAmB9H,GAASt0yB,KDvnxBzC,SAASy8yB,KACZ,OAAQ7kzB,MAAW4+B,OAAX5+B,CDNL,SAAS8kzB,GAAUC,EAAyBrxyB,GAC/C,OAAO,SAAmC1T,GACtC,IAAIg2tB,EASJ,GAPIA,EADmC,mBAA5B+uF,EACUA,EAGA,WACb,OAAOA,CACX,EAEoB,mBAAbrxyB,EACP,OAAO1T,EAAOC,KAAK,IAAIihvB,GAAkBlrB,EAAgBtitB,IAE7D,MAAMkjtB,GAAcnjuB,OAAOC,OAAOsM,EAAQ02tB,MAC1CE,UAAY52tB,OAASA,EACrB42tB,GAAYZ,eAAiBA,EACtBY,EACX,CACJ,CCbkCkuF,CAAU3jE,GAAV2jE,CAA+B9kzB,GACjE,CCqnxBqD6kzB,IACjD,CAsCAxnY,UAAU2nY,EAAoBj+B,GAC1B73uB,IAAepnD,KAAKm9zB,kBACpB,MAAMpU,EAAqBmU,aAA8BzyC,GAEzD,IADmBzqxB,KAAK8qC,UAAU9mC,IAAIC,IACtBu9D,KAAM,CAElB,MAAM47vB,GAAe,2EADDrU,GAAsBhpD,GAAam9D,GAErC,GACV,2EACR,MAAM,IAAIhjE,GAAa,IAA6D9ysB,IAAeg2wB,GAAY,CAEnH,IAAI9owB,GAEAA,GADAy0vB,EACmBmU,EAGFl9zB,KAAK8qC,UAAU9mC,IAAI4mxB,IACRzgvB,wBAAwB+yxB,GAExDl9zB,KAAK6mD,eAAej+C,KAAK0rD,GAAiBuquB,eAE1C,MAAM/pxB,GAAWkqxB,GAAgB1quB,SAAoBrmD,EAAYjO,KAAK8qC,UAAU9mC,IAAIg+yB,IAE9Eqb,GAAU/owB,GAAiB1oD,OAAOhH,GAASimxB,KAAM,GADhCoU,GAAsB3quB,GAAiB1oC,SACa9W,IACrEkuC,GAAgBq6wB,GAAQj1xB,SAAS4a,cACjC5vC,GAAciqzB,GAAQt5zB,SAASC,IAAI2zzB,GAAa,MACtDvkzB,WAAa8lzB,oBAAoBl2wB,IACjCq6wB,GAAQ/xzB,UAAU,KACdtL,KAAKw0D,WAAW6owB,GAAQxzxB,UACxBjpC,GAAOZ,KAAKwmD,WAAY62wB,IACxBjqzB,IAAa+lzB,sBAAsBn2wB,GAAa,GAEpDhjD,KAAKs9zB,eAAeD,IAKbA,EACX,CAWA9/H,OAEI,GADAn2oB,IAAepnD,KAAKm9zB,kBAChBn9zB,KAAKu8zB,aACL,MAAM,IAAIriE,GAAa,KAA2DtjuB,GAEtF,IACI52B,KAAKu8zB,cAAe,EACpB,QAAS5/pB,KAAQ38J,KAAKs8zB,OAClB3/pB,EAAKvwG,eAcb,CAPA,MACOjkD,GAEHnI,KAAKwF,MAAMiL,kBAAkB,IAAMzQ,KAAKo8zB,kBAAkBtirB,YAAY3xI,GAC1E,SAEInI,KAAKu8zB,cAAe,CACxB,CACJ,CAMAhowB,WAAWokY,GACPvxY,IAAepnD,KAAKm9zB,kBACpB,MAAMxgqB,EAAOg8R,EACb34b,KAAKs8zB,OAAO1zzB,KAAK+zJ,GACjBA,EAAK2hoB,eAAet+xB,KACxB,CAIAw0D,WAAWmkY,GACPvxY,IAAepnD,KAAKm9zB,kBACpB,MAAMxgqB,EAAOg8R,EACb/3b,GAAOZ,KAAKs8zB,OAAQ3/pB,GACpBA,EAAKyhoB,kBACT,CACAk/B,eAAezwxB,GACX7sC,KAAKu0D,WAAW1nB,EAAahD,UAC7B7pC,KAAKu9rB,OACLv9rB,KAAKwmD,WAAW59C,KAAKikC,GAErB,MAAM8pC,EAAY32E,KAAK8qC,UAAU9mC,IAAIwkD,GAAwB,IAO7DmuB,EAAU/tE,QAAQ5I,KAAKq8zB,qBACvB1lvB,EAAUhxE,QAASnF,GAAaA,EAASqsC,GAC7C,CAEAnlC,cACI,IAAI1H,KAAKgvD,WAET,IAEIhvD,KAAKw7zB,kBAAkB71zB,QAAQnF,GAAYA,KAE3CR,KAAKs8zB,OAAOv2zB,QAAQJ,QAASg3J,GAASA,EAAK7wJ,WAC3C9L,KAAKy8zB,8BAA8Bt0yB,aASvC,CARA,QAGInoB,KAAKgvD,YAAa,EAElBhvD,KAAKs8zB,OAAS,GACdt8zB,KAAKq8zB,oBAAsB,GAC3Br8zB,KAAKw7zB,kBAAoB,EAC7B,CACJ,CASAlwzB,UAAU0C,GACNo5C,WAAepnD,KAAKm9zB,kBACpBn9zB,KAAKw7zB,kBAAkB5yzB,KAAKoF,GACrB,IAAMpN,GAAOZ,KAAKw7zB,kBAAmBxtzB,EAChD,CAMAlC,UACI,GAAI9L,KAAKgvD,WACL,MAAM,IAAIkrsB,GAAa,KAA8DtjuB,GAEzF,MAAM7yB,EAAW/D,KAAK8qC,UAElB/mC,EAAS+H,UAAY/H,EAASy1E,WAG9Bz1E,EAAS+H,SAEjB,CAIIyxzB,gBACA,OAAOv9zB,KAAKs8zB,OAAO73zB,MACvB,CACA04zB,kBACQ/1wB,IAAepnD,KAAKgvD,YACpBlP,QAAQQ,KAAK65sB,GAAmB,IAA8D,qEAEtG,EAEJ5zsB,SAAethD,UAAO,SAAgCwW,GAAK,OAAO,IAAKA,GAAK8qC,GAAgB5wC,GAASzB,IAASyB,GAAS8yB,IAAsB9yB,GAASrB,IAAgB,EACtKiyC,EAAerhD,WAAsBwuvB,GAAmB,CAAEz2uB,MAAOspC,EAAgBnhD,QAASmhD,EAAethD,UAAMsE,WAAY,SApSrHg9C,CAAc,KAySpB,SAAS3lD,GAAO4b,EAAMlc,GAClB,MAAM+Q,EAAQmL,EAAKtL,QAAQ5Q,GACvB+Q,GAAQ,GACRmL,EAAKrL,OAAOE,EAAO,EAE3B,CAwBA,SAASmszB,KACL,OAA2C,CAC/C,CAeA,SAAS/nY,KAMT,CAaA,SAASgoY,GAAiBvyzB,GACtB,MAAMP,EAAOktwB,GAA0B3swB,GACvC,IAAKP,EACD,MAAM+yzB,GAAcxyzB,GACxB,OAAO,IAAIosC,GAAgB3sC,EAC/B,CAOA,SAASgzzB,GAAgBzyzB,GACrB,MAAMP,EAAOktwB,GAA0B3swB,GACvC,IAAKP,EACD,MAAM+yzB,GAAcxyzB,GACxB,OAAOP,CACX,CACA,SAAS+yzB,GAAcxyzB,GACnB,OAAO,IAAIzE,MAAO,qBAAoByE,WAC1C,CAEA,IA6CMq9B,GAAiB,MAAvB,MAAMA,GAMNA,SAAkBs1tB,kBAAoB+/D,GANhCr1xB,CAAiB,KAQvB,SAASq1xB,GAAwBpwzB,GAC7B,OAUJ,SAASqwzB,GAAcr7D,EAAO0B,EAAO45D,GACjC,GAAIr7D,GAAgBD,KAAWs7D,EAAQ,CAGnC,MAAMlmC,EAAgBvzB,GAAyB7B,EAAMnxvB,MAAO6yvB,GAC5D,OAAO,IAAI25B,GAAUjG,EAAeA,EAAa,QAE9B,GAAdp1B,EAAM73vB,KAIJ,IAAIkzxB,GADe35B,EAAMxC,IACQwC,GAErC,IACX,CAxBW25D,CAAcl4D,KAAmBN,KAA+D,KAA1C,GAAR73vB,GACzD,CAgCA,MAAMuwzB,WAAgBx1xB,IAuDtB,MAAMy1xB,WAAwBD,IAW9B,MAAME,GACFp+zB,YAAYuD,EAAM4K,GACdhO,KAAKoD,KAAOA,EACZpD,KAAKgO,SAAWA,CACpB,EAKJ,SAASkwzB,GAAiBC,GACtB,OAAOA,EAAS52zB,IAAKjH,GAAOA,EAAG0iD,cACnC,CAIA,MAAMo7wB,GACFv+zB,YAAYw+zB,GACRr+zB,KAAKq+zB,WAAaA,CACtB,CAIIhyzB,aACA,MAAMA,EAASrM,KAAKq+zB,WAAWv9zB,WAC/B,OAAOuL,EAAS,IAAIiyzB,GAAajyzB,GAAU,IAC/C,CAIItI,eACA,OAAOs/yB,GAAYrjzB,KAAKq+zB,WAC5B,CAIIpmwB,wBACA,MAAMjV,EAAgBhjD,KAAKq+zB,WAC3B,OAAOr7wB,IACF+/vB,GAAa//vB,IAAkBkgwB,GAAmBlgwB,GAC3D,CASI9kC,cACA,OAAO6kyB,GAAa/izB,KAAKq+zB,aAAe72xB,GAAWxnC,KAAKq+zB,WAC5D,CAKI1nvB,gBACA,OAAO+suB,GAAa1jzB,KAAKq+zB,YAAYtmzB,OAAOvX,GAA8B,QAAlBA,EAASmK,KACrE,CAKI4zzB,iBACA,OAj7KR,SAASC,GAAaz8zB,GAClB,MAAMmc,EAAUi7vB,GAAYp3wB,GAC5B,GAAgB,OAAZmc,EACA,MAAO,CAAC,EACZ,QAA0BjQ,IAAtBiQ,EAAQ87wB,UAAyB,CACjC,MAAM91B,EAAQhmvB,EAAQgmvB,MACtB,GAAc,OAAVA,EACA,MAAO,CAAC,EAEZhmvB,EAAQ87wB,UAh4chB,SAASykC,GAAkBv6D,EAAOl6E,GAC9B,MAAMw4E,EAAQ0B,EAAMvD,IAAOj1vB,KAAKs+qB,GAChC,GAAIw4E,GAASA,EAAMsyB,WAAY,CAC3B,MAAMxjxB,EAAS,CAAC,EAChB,IAAI6mxB,EAAa31B,EAAMnxvB,MAAQ,EAC/B,QAAS7M,GAAI,EAAGA,GAAIg+vB,EAAMsyB,WAAWrwxB,OAAQD,IAAK,EAC9C8M,EAAOkxvB,EAAMsyB,WAAWtwxB,KAAM0/vB,EAAMi0B,GACpCA,IAEJ,OAAO7mxB,EAEX,OAAO,IACX,CAo3c4BmtzB,CAAkBv6D,EAAOhmvB,EAAQ8rqB,UAAS,CAElE,OAAO9rqB,EAAQ87wB,WAAa,CAAC,CACjC,CAq6KewkC,CAAax+zB,KAAKq+zB,WAC7B,CAKIK,qBACA,OAxiLR,SAASC,GAAmB14zB,GACxB,MAAMiY,EAAUi7vB,GAAYlzwB,GACtBi+vB,EAAQhmvB,EAAUA,EAAQgmvB,MAAQ,KACxC,GAAc,OAAVA,EACA,MAAO,GACX,MAAMx6jB,EAAQw6jB,EAAMvD,IACd6B,EAAQ94jB,EAAMh+L,KAAKwS,EAAQ8rqB,WAC3B00I,GAAiB,GAEjBzonB,GAAWusjB,EAAMsG,aACvB,QAAStkwB,GAFkC,QAAxBg+vB,EAAMkM,gBAEAlqwB,GAAIyxM,GAAUzxM,KAAK,CACxC,IAAI0H,GAAQw9L,EAAMh+L,KAAKlH,IACnBy/yB,GAAmB/3yB,MAKnBA,GAAQA,GAAMvB,MAElB+zzB,GAAe91zB,KAAKsD,GAAK,CAE7B,OAAOwyzB,EACX,CAkhLeC,CAAmB3+zB,KAAKq+zB,WACnC,EASJ,MAAMC,WAAqBF,GACvBv+zB,YAAYw+zB,GAERv+zB,MAAMu+zB,EACV,CAIIr7wB,oBACA,OAAOhjD,KAAKq+zB,WAAW58zB,UAAYC,KAAKC,aAAe3B,KAAKq+zB,WAAa,IAC7E,CAIIj7zB,WACA,MAAM8a,EAAUi7vB,GAAYn5wB,KAAKq+zB,YAC3Bn6D,EAAQhmvB,EAAUA,EAAQgmvB,MAAQ,KACxC,OAAc,OAAVA,EACcA,EAAMvD,IAAOj1vB,KACPwS,EAAQ8rqB,WACf99qB,MAGNlM,KAAKq+zB,WAAWxlqB,QAE/B,CAaI1pF,iBACA,MAAMjxD,EAAUi7vB,GAAYn5wB,KAAKq+zB,YAC3Bn6D,EAAQhmvB,EAAUA,EAAQgmvB,MAAQ,KACxC,GAAc,OAAVA,EACA,MAAO,CAAC,EAEZ,MAAM+C,EAAQ/C,EAAMvD,IAAOj1vB,KACrB82vB,EAAQyE,EAAM/ovB,EAAQ8rqB,WACtB76mB,GAAa,CAAC,EAEpByvvB,OAoLR,SAASA,GAAkB34zB,EAASkpE,GAChC,GAAIlpE,EAAS,CAET,IAAIk3C,EAAMxxC,OAAO2vb,eAAer1b,GAChC,MAAM44zB,EAAgBn9zB,KAAK2tB,UAC3B,KAAe,OAAR8tB,GAAgBA,IAAQ0hxB,GAAe,CAC1C,MAAMC,EAAcnzzB,OAAOozzB,0BAA0B5hxB,GACrD,QAASrsC,MAAOguzB,EACZ,IAAKhuzB,GAAI4U,WAAW,QAAU5U,GAAI4U,WAAW,MAAO,CAIhD,MAAMxZ,GAAQjG,EAAQ6K,IAClBkuzB,GAAiB9yzB,MACjBijE,EAAWr+D,IAAO5E,IAI9BixC,EAAMxxC,OAAO2vb,eAAen+Y,EAAG,EAG3C,CAzMQyhxB,CAAkB5+zB,KAAKgjD,cAAemsB,IA+X9C,SAAS8vvB,GAAwB9vvB,EAAYqzrB,EAAO0B,EAAO+C,GACvD,IAAIi4D,EAAiB18D,EAAMqyB,iBAC3B,GAAuB,OAAnBqqC,EACA,QAAS16zB,GAAI,EAAGA,GAAI06zB,EAAez6zB,OAAQD,KAAK,CAC5C,MAAM8hwB,GAAe44D,EAAe16zB,IAE9B26zB,GADel4D,EAAMX,IACQz1vB,MArziBd,UAsziBf8/D,GAAewuvB,GAAc,GACnC,GAAIA,GAAc16zB,OAAS,EAAG,CAC1B,IAAIyH,GAAQizzB,GAAc,GAC1B,QAAShgvB,GAAI,EAAGA,GAAIggvB,GAAc16zB,OAAS,EAAG06E,KAC1CjzE,IAASkuvB,GAAgB8J,EAAMoC,GAAennrB,GAAI,IAAMggvB,GAAchgvB,GAAI,GAE9EhQ,EAAWwB,IAAgBzkE,QAG3BijE,EAAWwB,IAAgBuzrB,EAAMoC,GAAY,CAI7D,CAhZQ24D,CAAwB9vvB,GAAYqzrB,EAAO0B,EAAO+C,GAC3C93rB,EACX,CAIIusF,iBACA,MAAMA,EAAa,CAAC,EACdz1J,EAAUjG,KAAKgjD,cACrB,IAAK/8C,EACD,OAAOy1J,EAEX,MAAMx9I,EAAUi7vB,GAAYlzwB,GACtBi+vB,EAAQhmvB,EAAUA,EAAQgmvB,MAAQ,KACxC,GAAc,OAAVA,EACA,MAAO,CAAC,EAEZ,MAAMg3B,GAAah3B,EAAMvD,IAAOj1vB,KAAKwS,EAAQ8rqB,WAAW7vnB,MAClDilwB,GAAsB,GAQ5B,GAAIlkC,GAAY,CACZ,IAAI12xB,GAAI,EACR,KAAOA,GAAI02xB,GAAWz2xB,QAAQ,CAC1B,MAAMo/C,GAAWq3uB,GAAW12xB,IAG5B,GAAwB,iBAAbq/C,GACP,MAEJ63G,EAAW73G,IADOq3uB,GAAW12xB,GAAI,GAEjC46zB,GAAoBx2zB,KAAKi7C,GAASjzC,eAClCpM,IAAK,GAGb,UAAW8lF,MAAQrkF,EAAQy1J,WAGlB0jqB,GAAoB/ntB,SAAS/sB,GAAKlnF,QACnCs4J,EAAWpxE,GAAKlnF,MAAQknF,GAAKp+E,OAGrC,OAAOwvJ,CACX,CAQIp3J,aACA,OAAItE,KAAKgjD,eAAiBhjD,KAAKgjD,cAAcj8C,MAClC/G,KAAKgjD,cAAcj8C,MAEvB,CAAC,CACZ,CAWIshM,cACA,MAAM/2L,EAAS,CAAC,EAGVurE,EAFU78E,KAAKgjD,cAEK65B,UAE1BwrH,OADqC,iBAAdxrH,EAAyBA,EAAUm1hB,QAAQnhmB,MAAM,KAAOgsE,EAAUhsE,MAAM,MACvFlL,QAASuG,IAAUoF,EAAOpF,KAAS,GACpCoF,CACX,CAMIynJ,iBACA,MAAMA,EAAa/4J,KAAKq+zB,WAAWtlqB,WAC7BxhI,EAAW,GACjB,QAAS/yB,EAAI,EAAGA,EAAIu0J,EAAWt0J,OAAQD,IAEnC+yB,EAAS3uB,KAAKy2zB,GADEtmqB,EAAWv0J,KAG/B,OAAO+yB,CACX,CAIIA,eACA,MAAMyrB,EAAgBhjD,KAAKgjD,cAC3B,IAAKA,EACD,MAAO,GACX,MAAM+1G,EAAa/1G,EAAczrB,SAC3BA,EAAW,GACjB,QAAS/yB,EAAI,EAAGA,EAAIu0J,EAAWt0J,OAAQD,IAEnC+yB,EAAS3uB,KAAKy2zB,GADEtmqB,EAAWv0J,KAG/B,OAAO+yB,CACX,CAIAyC,MAAMhiB,GAEF,OADgBhY,KAAKs/zB,SAAStnzB,GACf,IAAM,IACzB,CAIAsnzB,SAAStnzB,GACL,MAAMgnD,EAAU,GAChBugwB,UAAUv/zB,KAAMgY,EAAWgnD,GAAS,GAC7BA,CACX,CAIAwgwB,cAAcxnzB,GACV,MAAMgnD,EAAU,GAChBugwB,UAAUv/zB,KAAMgY,EAAWgnD,GAAS,GAC7BA,CACX,CAaAygwB,oBAAoBv5zB,EAAWw5zB,GAC3B,MAAM7+zB,EAAOb,KAAKq+zB,WACZsB,EAAmB,GACzB3/zB,KAAK22E,UAAUhxE,QAAQnF,KACnB,GAAIA,GAAS4C,OAAS8C,EAAW,CAC7B,MAAM8H,GAAWxN,GAASwN,SAC1BA,GAASqK,KAAKxX,EAAM6+zB,GACpBC,EAAiB/2zB,KAAKoF,GAAQ,IAKH,mBAAxBnN,EAAK++zB,gBAIZ/+zB,EAAK++zB,eAAe15zB,GAAWP,QAASnF,KAOpC,IAAoD,IAAhDA,GAAS8V,WAAWpF,QAAQ,gBAAwB,CACpD,MAAM2uzB,GAAoBr/zB,GAAS,gBACnC,OAAuD,IAAhDm/zB,EAAiBzuzB,QAAQ2uzB,KAC5BA,GAAkBxnzB,KAAKxX,EAAM6+zB,EAAQ,GAIzD,EAwBJ,SAASV,GAAiB9yzB,GACtB,MAAwB,iBAAVA,GAAuC,kBAAVA,GAAwC,iBAAVA,GAC3D,OAAVA,CACR,CACA,SAASqzzB,GAAUxrzB,EAAeiE,EAAWgnD,EAAS8gwB,GAClD,MAAM5hzB,EAAUi7vB,GAAYplwB,EAAcsqzB,YACpCn6D,GAAQhmvB,EAAUA,EAAQgmvB,MAAQ,KAC1B,OAAVA,GAEA67D,GADoB77D,GAAMvD,IAAOj1vB,KAAKwS,EAAQ8rqB,WACdk6E,GAAOlsvB,EAAWgnD,EAAS8gwB,EAAc/rzB,EAAcsqzB,YAKvF2B,GAA4BjszB,EAAcsqzB,WAAYrmzB,EAAWgnD,EAAS8gwB,EAElF,CAWA,SAASC,GAAmBv9D,EAAO0B,EAAOlsvB,EAAWgnD,EAAS8gwB,EAAcG,IAExE,MAAM5B,GA9zvBV,SAAS6B,GAAuB19D,EAAO0B,GACnC,MAAM7yvB,EAAkB,OAAVmxvB,GAAiB,EAAKA,EAAMnxvB,MAC1C,OAAc,IAAVA,EAEa2yvB,GAAYE,EAAM7yvB,IAG5B,IACX,CAszvBuB6uzB,CAAuB19D,EAAO0B,GAEjD,GAAkB,GAAd1B,EAAM73vB,KAA0E,CAIhF,GADAw1zB,GAAe9B,GAAYrmzB,EAAWgnD,EAAS8gwB,EAAcG,IACzDx9D,GAAgBD,GAAQ,CAGxB,MAAMo1B,GAAgBvzB,GAAyB7B,EAAMnxvB,MAAO6yvB,GACxD0zB,IAAiBA,GAAcj3B,IAAOz9tB,YACtC68xB,GAAmBnoC,GAAcj3B,IAAOz9tB,WAAY00vB,GAAe5/wB,EAAWgnD,EAAS8gwB,EAAcG,GAAc,MAInHz9D,EAAMhouB,OAENulyB,GAAmBv9D,EAAMhouB,MAAO0puB,EAAOlsvB,EAAWgnD,EAAS8gwB,EAAcG,IAS7E5B,IAAc2B,GAA4B3B,GAAYrmzB,EAAWgnD,EAAS8gwB,GAI9E,MAAMM,GAAkBl8D,EAAM1B,EAAMnxvB,OAChCixvB,GAAa89D,KACbC,GAA8BD,GAAiBpozB,EAAWgnD,EAAS8gwB,EAAcG,GAAc,SAGjF,EAAbz9D,EAAM73vB,KAAoC,CAG/C,MAAMg6vB,GAAaT,EAAM1B,EAAMnxvB,OAC/B8uzB,GAAex7D,GAAW1C,GAASjqvB,EAAWgnD,EAAS8gwB,EAAcG,IAErEI,GAA8B17D,GAAY3svB,EAAWgnD,EAAS8gwB,EAAcG,GAAc,SAExE,GAAbz9D,EAAM73vB,KAAsC,CAGjD,MAAMitxB,GAAgB1zB,EAAMxC,IAEtB74vB,GADgB+uxB,GAAc52B,IACTse,WAAW9c,EAAM8c,YAC5C,GAAIxlwB,MAAM2C,QAAQ5T,IACd,QAASw1zB,MAAcx1zB,GACnBs3zB,GAAe9B,GAAYrmzB,EAAWgnD,EAAS8gwB,EAAcG,SAAc,GAG1Ep3zB,GAAM,CACX,MAAMy3zB,GAAY1oC,GAAc/2B,IAEhCk/D,GADkBO,GAAU3/D,IAAOj1vB,KAAK7C,GAAKwI,OACfivzB,GAAWtozB,EAAWgnD,EAAS8gwB,EAAcG,GAAc,OAGxFz9D,EAAMhouB,OAEXulyB,GAAmBv9D,EAAMhouB,MAAO0puB,EAAOlsvB,EAAWgnD,EAAS8gwB,EAAcG,IAG7E,GAAIA,KAAmB5B,GAAY,CAG/B,MAAMkC,GAA2B,EAAd/9D,EAAMh1vB,MAA0Cg1vB,EAAMyd,eAAiBzd,EAAM1pvB,KAC5FynzB,IACAR,GAAmBQ,GAAWr8D,EAAOlsvB,EAAWgnD,EAAS8gwB,EAAcG,GAAc,CAGjG,CAUA,SAASI,GAA8B17D,EAAY3svB,EAAWgnD,EAAS8gwB,EAAcG,GACjF,QAASz7zB,GAAI49vB,GAAyB59vB,GAAImgwB,EAAWlgwB,OAAQD,KAAK,CAC9D,MAAMg8zB,GAAY77D,EAAWngwB,IACvB0+B,GAAas9xB,GAAU7/D,IAAOz9tB,WAChCA,IACA68xB,GAAmB78xB,GAAYs9xB,GAAWxozB,EAAWgnD,EAAS8gwB,EAAcG,EAAc,CAGtG,CAUA,SAASE,GAAe9B,EAAYrmzB,EAAWgnD,EAAS8gwB,EAAcG,GAClE,GAAIA,IAAmB5B,EAAY,CAC/B,MAAMoC,GAAYpB,GAAahB,GAC/B,IAAKoC,GACD,QAKAX,GAAiBW,cAAqBnC,IAAiBtmzB,EAAUyozB,MAClC,IAA/BzhwB,EAAQ9tD,QAAQuvzB,MAGVX,GAAgB9nzB,EAAUyozB,MACD,IAA/BzhwB,EAAQ9tD,QAAQuvzB,MAChBzhwB,EAAQp2D,KAAK63zB,GAAS,CAGlC,CASA,SAAST,GAA4Bl/zB,EAAYkX,EAAWgnD,EAAS8gwB,GACjE,MAAM/qxB,EAAQj0C,EAAWi4J,WACnBt0J,GAASswC,EAAMtwC,OACrB,QAASD,GAAI,EAAGA,GAAIC,GAAQD,KAAK,CAC7B,MAAM3D,GAAOk0C,EAAMvwC,IACbi8zB,GAAYpB,GAAax+zB,IAC3B4/zB,MACIX,GAAiBW,cAAqBnC,IAAiBtmzB,EAAUyozB,MAClC,IAA/BzhwB,EAAQ9tD,QAAQuvzB,MAGVX,GAAgB9nzB,EAAUyozB,MACD,IAA/BzhwB,EAAQ9tD,QAAQuvzB,MAChBzhwB,EAAQp2D,KAAK63zB,IAEjBT,GAA4Bn/zB,GAAMmX,EAAWgnD,EAAS8gwB,GAAY,CAG9E,CA4BA,MACMY,GAAoB,eAI1B,SAASrB,GAAahB,GAClB,OAAIA,aAAsB38zB,MAChB28zB,EAAWxpyB,eAAe6ryB,MAC5BrC,EAAWqC,IAAqBrC,EAAW58zB,UAAYC,KAAKC,aACxD,IAAI28zB,GAAaD,GACjB,IAAID,GAAUC,IAEfA,EAAWqC,KAEf,IACX,CAEA,SAASC,GAAeC,GACpB,OAAO,IACX,CAWA,MAAMC,GACFhh0B,cAAgB,CAChB0G,SAAS42C,GACL,OAAO0lvB,GAAmB1lvB,EAC9B,CACAvxC,OAAOk1zB,GACH,OAAO,IAAIC,GAAsBD,EACrC,EAEJ,MAAME,GAAkB,CAAC3vzB,EAAO64B,IAASA,EAKzC,MAAM62xB,GACFlh0B,YAAYih0B,GACR9g0B,KAAKyE,OAAS,EAEdzE,KAAKih0B,eAAiB,KAEtBjh0B,KAAKkh0B,iBAAmB,KACxBlh0B,KAAKmh0B,gBAAkB,KACvBnh0B,KAAKoh0B,QAAU,KACfph0B,KAAKqh0B,QAAU,KACfrh0B,KAAKsh0B,eAAiB,KACtBth0B,KAAKuh0B,eAAiB,KACtBvh0B,KAAKwh0B,WAAa,KAClBxh0B,KAAKyh0B,WAAa,KAClBzh0B,KAAK0h0B,cAAgB,KACrB1h0B,KAAK2h0B,cAAgB,KAErB3h0B,KAAK4h0B,qBAAuB,KAC5B5h0B,KAAK6h0B,qBAAuB,KAC5B7h0B,KAAKsrvB,WAAaw1E,GAAaE,EACnC,CACA/uE,YAAYp3uB,GACR,IAAIihK,EACJ,IAAKA,EAAS97K,KAAKoh0B,QAAoB,OAAXtlpB,EAAiBA,EAASA,EAAOnjK,MACzDkC,EAAGihK,EAEX,CACAgwkB,iBAAiBjxuB,GACb,IAAIinzB,EAAS9h0B,KAAKoh0B,QACdW,EAAa/h0B,KAAK0h0B,cAClBM,EAAkB,EAClBC,GAAc,KAClB,KAAOH,GAAUC,GAAY,CAGzB,MAAMjmpB,IAAUimpB,GACZD,GACIA,EAAO91E,aACHk2E,GAAiBH,EAAYC,EAAiBC,IACtDH,EACAC,EACEI,GAAmBD,GAAiBpmpB,GAAQkmpB,EAAiBC,IAC7Dj2E,GAAelwkB,GAAOkwkB,aAE5B,GAAIlwkB,KAAWimpB,EACXC,IACAD,EAAaA,EAAWK,qBAGxBN,EAASA,EAAOnpzB,MACY,MAAxBmjK,GAAOmwkB,cACP+1E,QAEC,CAEIC,KACDA,GAAc,IAClB,MAAMI,GAAyBF,GAAmBH,EAC5CM,GAAoBt2E,GAAeg2E,EACzC,GAAIK,IAA0BC,GAAmB,CAC7C,QAAS99zB,GAAI,EAAGA,GAAI69zB,GAAwB79zB,KAAK,CAC7C,MAAM0pD,GAAS1pD,GAAIy9zB,GAAYx9zB,OAASw9zB,GAAYz9zB,IAAMy9zB,GAAYz9zB,IAAK,EACrE6M,GAAQ68C,GAAS1pD,GACnB89zB,IAAqBjxzB,IAASA,GAAQgxzB,KACtCJ,GAAYz9zB,IAAK0pD,GAAS,GAIlC+zwB,GADsBnmpB,GAAOmwkB,eACAq2E,GAAoBD,IAIzDF,KAAqBn2E,IACrBnxuB,EAAGihK,GAAQqmpB,GAAkBn2E,GAAY,CAGrD,CACAu2E,oBAAoB1nzB,GAChB,IAAIihK,EACJ,IAAKA,EAAS97K,KAAKmh0B,gBAA4B,OAAXrlpB,EAAiBA,EAASA,EAAO0mpB,cACjE3nzB,EAAGihK,EAEX,CACAuzkB,iBAAiBx0uB,GACb,IAAIihK,EACJ,IAAKA,EAAS97K,KAAKsh0B,eAA2B,OAAXxlpB,EAAiBA,EAASA,EAAO2mpB,WAChE5nzB,EAAGihK,EAEX,CACA4mpB,iBAAiB7nzB,GACb,IAAIihK,EACJ,IAAKA,EAAS97K,KAAKwh0B,WAAuB,OAAX1lpB,EAAiBA,EAASA,EAAO6mpB,WAC5D9nzB,EAAGihK,EAEX,CACAszkB,mBAAmBv0uB,GACf,IAAIihK,EACJ,IAAKA,EAAS97K,KAAK0h0B,cAA0B,OAAX5lpB,EAAiBA,EAASA,EAAOsmpB,aAC/DvnzB,EAAGihK,EAEX,CACAswkB,sBAAsBvxuB,GAClB,IAAIihK,EACJ,IAAKA,EAAS97K,KAAK4h0B,qBAAiC,OAAX9lpB,EAAiBA,EAASA,EAAO8mpB,oBACtE/nzB,EAAGihK,EAEX,CACAhsE,KAAK2nlB,GAGD,GAFkB,MAAdA,IACAA,EAAa,KACZorG,GAAmBprG,GACpB,MAAM,IAAIyiE,GAAa,KAAiDtjuB,GAG5E,OAAI52B,KAAKq7C,MAAMo8oB,GACJz3rB,KAGA,IAEf,CACAsL,YAAc,CACd+vC,MAAMo8oB,GACFz3rB,KAAK6i0B,SACL,IAEIxxzB,EACA64B,GACA44xB,GAJAhnpB,EAAS97K,KAAKoh0B,QACd2B,GAAa,EAIjB,GAAIjpzB,MAAM2C,QAAQg7qB,GAAa,CAC3Bz3rB,KAAKyE,OAASgzrB,EAAWhzrB,OACzB,QAAS4M,GAAQ,EAAGA,GAAQrR,KAAKyE,OAAQ4M,KACrC64B,GAAOutpB,EAAWpmrB,IAClByxzB,GAAc9i0B,KAAKsrvB,WAAWj6uB,GAAO64B,IACtB,OAAX4xI,GAAoBnwK,OAAOw9E,GAAG2yF,EAAOknpB,UAAWF,KAK5CC,IAEAjnpB,EAAS97K,KAAKij0B,mBAAmBnnpB,EAAQ5xI,GAAM44xB,GAAazxzB,KAE3D1F,OAAOw9E,GAAG2yF,EAAO5xI,KAAMA,KACxBlqC,KAAKkj0B,mBAAmBpnpB,EAAQ5xI,MATpC4xI,EAAS97K,KAAKmj0B,UAAUrnpB,EAAQ5xI,GAAM44xB,GAAazxzB,IACnD0xzB,GAAa,GAUjBjnpB,EAASA,EAAOnjK,WAIpBtH,EAAQ,EA7zapB,SAAS+xzB,GAAgBjmxB,EAAKtiC,GAC1B,GAAIf,MAAM2C,QAAQ0gC,GACd,QAAS34C,EAAI,EAAGA,EAAI24C,EAAI14C,OAAQD,IAC5BqW,EAAGsiC,EAAI34C,QAGV,CACD,MAAM+8D,EAAWpkB,EAAIxoB,OAAO4sC,YAC5B,IAAIr3B,EACJ,OAAUA,EAAOq3B,EAASzoD,QAAQ0oD,MAC9B3mD,EAAGqvB,EAAKh+B,MAAK,CAGzB,CAizaYk3zB,CAAgB3rI,EAAavtpB,KACzB44xB,GAAc9i0B,KAAKsrvB,WAAWj6uB,EAAO64B,IACtB,OAAX4xI,GAAoBnwK,OAAOw9E,GAAG2yF,EAAOknpB,UAAWF,KAK5CC,IAEAjnpB,EAAS97K,KAAKij0B,mBAAmBnnpB,EAAQ5xI,GAAM44xB,GAAazxzB,IAE3D1F,OAAOw9E,GAAG2yF,EAAO5xI,KAAMA,KACxBlqC,KAAKkj0B,mBAAmBpnpB,EAAQ5xI,MATpC4xI,EAAS97K,KAAKmj0B,UAAUrnpB,EAAQ5xI,GAAM44xB,GAAazxzB,GACnD0xzB,GAAa,GAUjBjnpB,EAASA,EAAOnjK,MAChBtH,MAEJrR,KAAKyE,OAAS4M,EAElB,YAAKgyzB,UAAUvnpB,GACf97K,KAAKy3rB,WAAaA,EACXz3rB,KAAKo1oB,OAChB,CAIIA,cACA,OAA+B,OAAxBp1oB,KAAKsh0B,gBAA+C,OAApBth0B,KAAKwh0B,YACjB,OAAvBxh0B,KAAK0h0B,eAAwD,OAA9B1h0B,KAAK4h0B,oBAC5C,CASAiB,SACI,GAAI7i0B,KAAKo1oB,QAAS,CACd,IAAIt5d,EACJ,IAAKA,EAAS97K,KAAKmh0B,gBAAkBnh0B,KAAKoh0B,QAAoB,OAAXtlpB,EAAiBA,EAASA,EAAOnjK,MAChFmjK,EAAO0mpB,cAAgB1mpB,EAAOnjK,MAElC,IAAKmjK,EAAS97K,KAAKsh0B,eAA2B,OAAXxlpB,EAAiBA,EAASA,EAAO2mpB,WAChE3mpB,EAAOmwkB,cAAgBnwkB,EAAOkwkB,aAGlC,IADAhsvB,KAAKsh0B,eAAiBth0B,KAAKuh0B,eAAiB,KACvCzlpB,EAAS97K,KAAKwh0B,WAAuB,OAAX1lpB,EAAiBA,EAASA,EAAO6mpB,WAC5D7mpB,EAAOmwkB,cAAgBnwkB,EAAOkwkB,aAElChsvB,KAAKwh0B,WAAaxh0B,KAAKyh0B,WAAa,KACpCzh0B,KAAK0h0B,cAAgB1h0B,KAAK2h0B,cAAgB,KAC1C3h0B,KAAK4h0B,qBAAuB5h0B,KAAK6h0B,qBAAuB,KAIhE,CAWAsB,UAAUrnpB,EAAQ5xI,EAAM44xB,EAAazxzB,GAEjC,IAAIiyzB,GACJ,OAAe,OAAXxnpB,EACAwnpB,GAAiBtj0B,KAAKqh0B,SAGtBiC,GAAiBxnpB,EAAOynpB,MAExBvj0B,KAAKwj0B,QAAQ1npB,IAIF,QADfA,EAAmC,OAA1B97K,KAAKkh0B,iBAA4B,KAAOlh0B,KAAKkh0B,iBAAiBl9zB,IAAI8+zB,EAAa,QAI/En3zB,OAAOw9E,GAAG2yF,EAAO5xI,KAAMA,IACxBlqC,KAAKkj0B,mBAAmBpnpB,EAAQ5xI,GACpClqC,KAAKyj0B,eAAe3npB,EAAQwnpB,GAAgBjyzB,IAK7B,QADfyqK,EAAiC,OAAxB97K,KAAKih0B,eAA0B,KAAOjh0B,KAAKih0B,eAAej9zB,IAAI8+zB,EAAazxzB,KAK3E1F,OAAOw9E,GAAG2yF,EAAO5xI,KAAMA,IACxBlqC,KAAKkj0B,mBAAmBpnpB,EAAQ5xI,GACpClqC,KAAK0j0B,WAAW5npB,EAAQwnpB,GAAgBjyzB,IAIxCyqK,EACI97K,KAAK2j0B,UAAU,IAAIC,GAAsB15xB,EAAM44xB,GAAcQ,GAAgBjyzB,GAGlFyqK,CACX,CA4BAmnpB,mBAAmBnnpB,EAAQ5xI,EAAM44xB,EAAazxzB,GAC1C,IAAIwyzB,GAA2C,OAA1B7j0B,KAAKkh0B,iBAA4B,KAAOlh0B,KAAKkh0B,iBAAiBl9zB,IAAI8+zB,EAAa,MACpG,OAAuB,OAAnBe,GACA/npB,EAAS97K,KAAKyj0B,eAAeI,GAAgB/npB,EAAOynpB,MAAOlyzB,GAEtDyqK,EAAOkwkB,cAAgB36uB,IAC5ByqK,EAAOkwkB,aAAe36uB,EACtBrR,KAAK8j0B,YAAYhopB,EAAQzqK,IAEtByqK,CACX,CAQAunpB,UAAUvnpB,GAEN,KAAkB,OAAXA,GAAiB,CACpB,MAAMiopB,EAAajopB,EAAOnjK,MAC1B3Y,KAAKgk0B,eAAehk0B,KAAKik0B,QAAQnopB,IACjCA,EAASiopB,EAEiB,OAA1B/j0B,KAAKkh0B,kBACLlh0B,KAAKkh0B,iBAAiBv5zB,QAEE,OAAxB3H,KAAKuh0B,iBACLvh0B,KAAKuh0B,eAAekB,WAAa,MAEb,OAApBzi0B,KAAKyh0B,aACLzh0B,KAAKyh0B,WAAWkB,WAAa,MAEZ,OAAjB3i0B,KAAKqh0B,UACLrh0B,KAAKqh0B,QAAQ1ozB,MAAQ,MAEE,OAAvB3Y,KAAK2h0B,gBACL3h0B,KAAK2h0B,cAAcS,aAAe,MAEJ,OAA9Bpi0B,KAAK6h0B,uBACL7h0B,KAAK6h0B,qBAAqBe,oBAAsB,KAExD,CAEAa,eAAe3npB,EAAQoopB,EAAY7yzB,GACD,OAA1BrR,KAAKkh0B,kBACLlh0B,KAAKkh0B,iBAAiBtg0B,OAAOk7K,GAEjC,MAAMx1E,EAAOw1E,EAAOqopB,aACdrrzB,GAAOgjK,EAAOsmpB,aACpB,OAAa,OAAT97tB,EACAtmG,KAAK0h0B,cAAgB5ozB,GAGrBwtF,EAAK87tB,aAAetpzB,GAEX,OAATA,GACA9Y,KAAK2h0B,cAAgBr7tB,EAGrBxtF,GAAKqrzB,aAAe79tB,EAExBtmG,KAAKok0B,aAAatopB,EAAQoopB,EAAY7yzB,GACtCrR,KAAK8j0B,YAAYhopB,EAAQzqK,GAClByqK,CACX,CAEA4npB,WAAW5npB,EAAQoopB,EAAY7yzB,GAC3B,YAAK4yzB,QAAQnopB,GACb97K,KAAKok0B,aAAatopB,EAAQoopB,EAAY7yzB,GACtCrR,KAAK8j0B,YAAYhopB,EAAQzqK,GAClByqK,CACX,CAEA6npB,UAAU7npB,EAAQoopB,EAAY7yzB,GAC1B,YAAK+yzB,aAAatopB,EAAQoopB,EAAY7yzB,GAIlCrR,KAAKuh0B,eAHmB,OAAxBvh0B,KAAKuh0B,eAGiBvh0B,KAAKsh0B,eAAiBxlpB,EAMtB97K,KAAKuh0B,eAAekB,WAAa3mpB,EAEpDA,CACX,CAEAsopB,aAAatopB,EAAQoopB,EAAY7yzB,GAK7B,MAAMyH,EAAsB,OAAforzB,EAAsBlk0B,KAAKoh0B,QAAU8C,EAAWvrzB,MAI7DmjK,SAAOnjK,MAAQG,EACfgjK,EAAOynpB,MAAQW,EACF,OAATprzB,EACA9Y,KAAKqh0B,QAAUvlpB,EAGfhjK,EAAKyqzB,MAAQznpB,EAEE,OAAfoopB,EACAlk0B,KAAKoh0B,QAAUtlpB,EAGfoopB,EAAWvrzB,MAAQmjK,EAEK,OAAxB97K,KAAKih0B,iBACLjh0B,KAAKih0B,eAAiB,IAAIoD,IAE9Brk0B,KAAKih0B,eAAepgzB,IAAIi7J,GACxBA,EAAOkwkB,aAAe36uB,EACfyqK,CACX,CAEA0npB,QAAQ1npB,GACJ,OAAO97K,KAAKgk0B,eAAehk0B,KAAKik0B,QAAQnopB,GAC5C,CAEAmopB,QAAQnopB,GACwB,OAAxB97K,KAAKih0B,gBACLjh0B,KAAKih0B,eAAerg0B,OAAOk7K,GAE/B,MAAMx1E,EAAOw1E,EAAOynpB,MACdzqzB,EAAOgjK,EAAOnjK,MAIpB,OAAa,OAAT2tF,EACAtmG,KAAKoh0B,QAAUtozB,EAGfwtF,EAAK3tF,MAAQG,EAEJ,OAATA,EACA9Y,KAAKqh0B,QAAU/6tB,EAGfxtF,EAAKyqzB,MAAQj9tB,EAEVw1E,CACX,CAEAgopB,YAAYhopB,EAAQwopB,GAGhB,OAAIxopB,EAAOmwkB,gBAAkBq4E,IAMzBtk0B,KAAKyh0B,WAHe,OAApBzh0B,KAAKyh0B,WAGazh0B,KAAKwh0B,WAAa1lpB,EAKlB97K,KAAKyh0B,WAAWkB,WAAa7mpB,GAE5CA,CACX,CACAkopB,eAAelopB,GACX,OAA8B,OAA1B97K,KAAKkh0B,mBACLlh0B,KAAKkh0B,iBAAmB,IAAImD,IAEhCrk0B,KAAKkh0B,iBAAiBrgzB,IAAIi7J,GAC1BA,EAAOkwkB,aAAe,KACtBlwkB,EAAOsmpB,aAAe,KACK,OAAvBpi0B,KAAK2h0B,eAGL3h0B,KAAK2h0B,cAAgB3h0B,KAAK0h0B,cAAgB5lpB,EAC1CA,EAAOqopB,aAAe,OAMtBropB,EAAOqopB,aAAenk0B,KAAK2h0B,cAC3B3h0B,KAAK2h0B,cAAgB3h0B,KAAK2h0B,cAAcS,aAAetmpB,GAEpDA,CACX,CAEAonpB,mBAAmBpnpB,EAAQ5xI,GACvB4xI,SAAO5xI,KAAOA,EAEVlqC,KAAK6h0B,qBADyB,OAA9B7h0B,KAAK6h0B,qBACuB7h0B,KAAK4h0B,qBAAuB9lpB,EAG5B97K,KAAK6h0B,qBAAqBe,oBAAsB9mpB,EAEzEA,CACX,EAEJ,MAAM8npB,GACF/j0B,YAAYqqC,EAAM84xB,GACdhj0B,KAAKkqC,KAAOA,EACZlqC,KAAKgj0B,UAAYA,EACjBhj0B,KAAKgsvB,aAAe,KACpBhsvB,KAAKisvB,cAAgB,KAErBjsvB,KAAKwi0B,cAAgB,KAErBxi0B,KAAKuj0B,MAAQ,KAEbvj0B,KAAK2Y,MAAQ,KAEb3Y,KAAKuk0B,SAAW,KAEhBvk0B,KAAKwk0B,SAAW,KAEhBxk0B,KAAKmk0B,aAAe,KAEpBnk0B,KAAKoi0B,aAAe,KAEpBpi0B,KAAKyi0B,WAAa,KAElBzi0B,KAAK2i0B,WAAa,KAElB3i0B,KAAK4i0B,oBAAsB,IAC/B,EAGJ,MAAM6B,GACF5k0B,cAEIG,KAAK0k0B,MAAQ,KAEb1k0B,KAAK2k0B,MAAQ,IACjB,CAMAr8zB,IAAIwzK,GACmB,OAAf97K,KAAK0k0B,OACL1k0B,KAAK0k0B,MAAQ1k0B,KAAK2k0B,MAAQ7opB,EAC1BA,EAAO0opB,SAAW,KAClB1opB,EAAOyopB,SAAW,OAMlBvk0B,KAAK2k0B,MAAMH,SAAW1opB,EACtBA,EAAOyopB,SAAWvk0B,KAAK2k0B,MACvB7opB,EAAO0opB,SAAW,KAClBxk0B,KAAK2k0B,MAAQ7opB,EAErB,CAGA93K,IAAIg/zB,EAAW4B,GACX,IAAI9opB,EACJ,IAAKA,EAAS97K,KAAK0k0B,MAAkB,OAAX5opB,EAAiBA,EAASA,EAAO0opB,SACvD,IAAwB,OAAnBI,GAA2BA,GAAkB9opB,EAAOkwkB,eACrDrgvB,OAAOw9E,GAAG2yF,EAAOknpB,UAAWA,GAC5B,OAAOlnpB,EAGf,OAAO,IACX,CAMAl7K,OAAOk7K,GASH,MAAMx1E,EAAOw1E,EAAOyopB,SACdzrzB,EAAOgjK,EAAO0opB,SACpB,OAAa,OAATl+tB,EACAtmG,KAAK0k0B,MAAQ5rzB,EAGbwtF,EAAKk+tB,SAAW1rzB,EAEP,OAATA,EACA9Y,KAAK2k0B,MAAQr+tB,EAGbxtF,EAAKyrzB,SAAWj+tB,EAEE,OAAftmG,KAAK0k0B,KAChB,EAEJ,MAAML,GACFxk0B,cACIG,KAAKuH,IAAM,IAAI7B,GACnB,CACAmb,IAAIi7J,GACA,MAAMhrK,EAAMgrK,EAAOknpB,UACnB,IAAI55I,EAAapprB,KAAKuH,IAAIvD,IAAI8M,GACzBs4qB,IACDA,EAAa,IAAIq7I,GACjBzk0B,KAAKuH,IAAIf,IAAIsK,EAAKs4qB,IAEtBA,EAAW9grB,IAAIwzK,EACnB,CAQA93K,IAAIg/zB,EAAW4B,GACX,MACMC,EAAa7k0B,KAAKuH,IAAIvD,IADhBg/zB,GAEZ,OAAO6B,EAAaA,EAAW7g0B,IAAIg/zB,EAAW4B,GAAkB,IACpE,CAMAhk0B,OAAOk7K,GACH,MAAMhrK,EAAMgrK,EAAOknpB,UAGnB,OAFmBhj0B,KAAKuH,IAAIvD,IAAI8M,GAEjBlQ,OAAOk7K,IAClB97K,KAAKuH,IAAIE,OAAOqJ,GAEbgrK,CACX,CACIhqJ,cACA,OAAyB,IAAlB9xB,KAAKuH,IAAI69D,IACpB,CACAz9D,QACI3H,KAAKuH,IAAII,OACb,EAEJ,SAASu6zB,GAAiBh4xB,EAAM83xB,EAAiBC,GAC7C,MAAMh2E,EAAgB/htB,EAAK+htB,cAC3B,GAAsB,OAAlBA,EACA,OAAOA,EACX,IAAI64E,EAAa,EACjB,OAAI7C,GAAeh2E,EAAgBg2E,EAAYx9zB,SAC3Cqg0B,EAAa7C,EAAYh2E,IAEtBA,EAAgB+1E,EAAkB8C,CAC7C,CAEA,MAAMC,GACFll0B,cAAgB,CAChB0G,SAAS42C,GACL,OAAOA,aAAez3C,KAAOo9xB,GAAW3lvB,EAC5C,CACAvxC,SACI,OAAO,IAAIo5zB,EACf,EAEJ,MAAMA,GACFnl0B,cACIG,KAAKil0B,SAAW,IAAIv/zB,IACpB1F,KAAKkl0B,SAAW,KAEhBll0B,KAAKml0B,aAAe,KACpBnl0B,KAAKol0B,iBAAmB,KACxBpl0B,KAAKql0B,aAAe,KACpBrl0B,KAAKsl0B,aAAe,KACpBtl0B,KAAKsh0B,eAAiB,KACtBth0B,KAAKuh0B,eAAiB,KACtBvh0B,KAAK0h0B,cAAgB,KACrB1h0B,KAAK2h0B,cAAgB,IACzB,CACIvsL,cACA,OAA+B,OAAxBp1oB,KAAKsh0B,gBAAiD,OAAtBth0B,KAAKql0B,cACjB,OAAvBrl0B,KAAK0h0B,aACb,CACAzvE,YAAYp3uB,GACR,IAAIihK,EACJ,IAAKA,EAAS97K,KAAKkl0B,SAAqB,OAAXpppB,EAAiBA,EAASA,EAAOnjK,MAC1DkC,EAAGihK,EAEX,CACAympB,oBAAoB1nzB,GAChB,IAAIihK,EACJ,IAAKA,EAAS97K,KAAKol0B,iBAA6B,OAAXtppB,EAAiBA,EAASA,EAAO0mpB,cAClE3nzB,EAAGihK,EAEX,CACAwzkB,mBAAmBz0uB,GACf,IAAIihK,EACJ,IAAKA,EAAS97K,KAAKql0B,aAAyB,OAAXvppB,EAAiBA,EAASA,EAAOyppB,aAC9D1qzB,EAAGihK,EAEX,CACAuzkB,iBAAiBx0uB,GACb,IAAIihK,EACJ,IAAKA,EAAS97K,KAAKsh0B,eAA2B,OAAXxlpB,EAAiBA,EAASA,EAAO2mpB,WAChE5nzB,EAAGihK,EAEX,CACAszkB,mBAAmBv0uB,GACf,IAAIihK,EACJ,IAAKA,EAAS97K,KAAK0h0B,cAA0B,OAAX5lpB,EAAiBA,EAASA,EAAOsmpB,aAC/DvnzB,EAAGihK,EAEX,CACAhsE,KAAKvoG,GACD,GAAKA,GACY,KAENA,aAAe7B,KAAOo9xB,GAAWv7xB,IACxC,MAAM,IAAI2yvB,GAAa,KAAiDtjuB,QAHxErvB,EAAM,IAAI7B,IAMd,OAAO1F,KAAKq7C,MAAM9zC,GAAOvH,KAAO,IACpC,CACAsL,YAAc,CAKd+vC,MAAM9zC,GACFvH,KAAK6i0B,SACL,IAAIp2zB,EAAezM,KAAKkl0B,SAcxB,GAbAll0B,KAAKml0B,aAAe,KACpBnl0B,KAAKwl0B,SAASj+zB,EAAK,CAAC2E,EAAO4E,KACvB,GAAIrE,GAAgBA,EAAaqE,MAAQA,EACrC9Q,KAAKyl0B,mBAAmBh5zB,EAAcP,GACtClM,KAAKml0B,aAAe14zB,EACpBA,EAAeA,EAAakM,UAE3B,CACD,MAAMmjK,GAAS97K,KAAK0l0B,yBAAyB50zB,EAAK5E,GAClDO,EAAezM,KAAK2l0B,sBAAsBl5zB,EAAcqvK,GAAM,IAIlErvK,EAAc,CACVA,EAAa82zB,QACb92zB,EAAa82zB,MAAM5qzB,MAAQ,MAE/B3Y,KAAK0h0B,cAAgBj1zB,EACrB,QAASqvK,EAASrvK,EAAyB,OAAXqvK,EAAiBA,EAASA,EAAOsmpB,aACzDtmpB,IAAW97K,KAAKkl0B,WAChBll0B,KAAKkl0B,SAAW,MAEpBll0B,KAAKil0B,SAASx9zB,OAAOq0K,EAAOhrK,KAC5BgrK,EAAOsmpB,aAAetmpB,EAAOnjK,MAC7BmjK,EAAOjzI,cAAgBizI,EAAOpwF,aAC9BowF,EAAOpwF,aAAe,KACtBowF,EAAOynpB,MAAQ,KACfznpB,EAAOnjK,MAAQ,KAIvB,OAAI3Y,KAAKsl0B,eACLtl0B,KAAKsl0B,aAAaC,aAAe,MACjCvl0B,KAAKuh0B,iBACLvh0B,KAAKuh0B,eAAekB,WAAa,MAC9Bzi0B,KAAKo1oB,OAChB,CASAuwL,sBAAsBxjrB,EAAQ25B,GAC1B,GAAI35B,EAAQ,CACR,MAAM77C,EAAO67C,EAAOohrB,MACpBznpB,SAAOnjK,MAAQwpI,EACf25B,EAAOynpB,MAAQj9tB,EACf67C,EAAOohrB,MAAQznpB,EACXx1E,IACAA,EAAK3tF,MAAQmjK,GAEb35B,IAAWniJ,KAAKkl0B,WAChBll0B,KAAKkl0B,SAAWpppB,GAEpB97K,KAAKml0B,aAAehjrB,EACbA,EAEX,OAAIniJ,KAAKml0B,cACLnl0B,KAAKml0B,aAAaxszB,MAAQmjK,EAC1BA,EAAOynpB,MAAQvj0B,KAAKml0B,cAGpBnl0B,KAAKkl0B,SAAWpppB,EAEpB97K,KAAKml0B,aAAerppB,EACb,IACX,CACA4ppB,yBAAyB50zB,EAAK5E,GAC1B,GAAIlM,KAAKil0B,SAASxrzB,IAAI3I,GAAM,CACxB,MAAMgrK,EAAS97K,KAAKil0B,SAASjh0B,IAAI8M,GACjC9Q,KAAKyl0B,mBAAmB3ppB,EAAQ5vK,GAChC,MAAMo6F,GAAOw1E,EAAOynpB,MACdzqzB,GAAOgjK,EAAOnjK,MACpB,OAAI2tF,KACAA,GAAK3tF,MAAQG,IAEbA,KACAA,GAAKyqzB,MAAQj9tB,IAEjBw1E,EAAOnjK,MAAQ,KACfmjK,EAAOynpB,MAAQ,KACRznpB,EAEX,MAAMA,EAAS,IAAI8ppB,GAAsB90zB,GACzC,YAAKm0zB,SAASz+zB,IAAIsK,EAAKgrK,GACvBA,EAAOpwF,aAAex/E,EACtBlM,KAAK6l0B,gBAAgB/ppB,GACdA,CACX,CAEA+mpB,SACI,GAAI7i0B,KAAKo1oB,QAAS,CACd,IAAIt5d,EAGJ,IADA97K,KAAKol0B,iBAAmBpl0B,KAAKkl0B,SACxBpppB,EAAS97K,KAAKol0B,iBAA6B,OAAXtppB,EAAiBA,EAASA,EAAOnjK,MAClEmjK,EAAO0mpB,cAAgB1mpB,EAAOnjK,MAIlC,IAAKmjK,EAAS97K,KAAKql0B,aAAyB,OAAXvppB,EAAiBA,EAASA,EAAOyppB,aAC9DzppB,EAAOjzI,cAAgBizI,EAAOpwF,aAElC,IAAKowF,EAAS97K,KAAKsh0B,eAA0B,MAAVxlpB,EAAgBA,EAASA,EAAO2mpB,WAC/D3mpB,EAAOjzI,cAAgBizI,EAAOpwF,aAElC1rF,KAAKql0B,aAAerl0B,KAAKsl0B,aAAe,KACxCtl0B,KAAKsh0B,eAAiBth0B,KAAKuh0B,eAAiB,KAC5Cvh0B,KAAK0h0B,cAAgB,KAE7B,CAEA+D,mBAAmB3ppB,EAAQg+F,GAClBnuQ,OAAOw9E,GAAG2wL,EAAUh+F,EAAOpwF,gBAC5BowF,EAAOjzI,cAAgBizI,EAAOpwF,aAC9BowF,EAAOpwF,aAAeouL,EACtB95Q,KAAK8l0B,cAAchqpB,GAE3B,CACA+ppB,gBAAgB/ppB,GACgB,OAAxB97K,KAAKsh0B,eACLth0B,KAAKsh0B,eAAiBth0B,KAAKuh0B,eAAiBzlpB,GAG5C97K,KAAKuh0B,eAAekB,WAAa3mpB,EACjC97K,KAAKuh0B,eAAiBzlpB,EAE9B,CACAgqpB,cAAchqpB,GACgB,OAAtB97K,KAAKql0B,aACLrl0B,KAAKql0B,aAAerl0B,KAAKsl0B,aAAexppB,GAGxC97K,KAAKsl0B,aAAaC,aAAezppB,EACjC97K,KAAKsl0B,aAAexppB,EAE5B,CAEA0ppB,SAASroxB,EAAKtiC,GACNsiC,aAAez3C,IACfy3C,EAAIx3C,QAAQkV,GAGZlP,OAAOtE,KAAK81C,GAAKx3C,QAAQozB,GAAKle,EAAGsiC,EAAIpkB,GAAIA,GAEjD,EAEJ,MAAM6syB,GACF/l0B,YAAYiR,GACR9Q,KAAK8Q,IAAMA,EACX9Q,KAAK6oC,cAAgB,KACrB7oC,KAAK0rF,aAAe,KAEpB1rF,KAAKwi0B,cAAgB,KAErBxi0B,KAAK2Y,MAAQ,KAEb3Y,KAAKuj0B,MAAQ,KAEbvj0B,KAAKyi0B,WAAa,KAElBzi0B,KAAKoi0B,aAAe,KAEpBpi0B,KAAKul0B,aAAe,IACxB,EAGJ,SAASQ,KACL,OAAO,IAAIC,GAAgB,CAAC,IAAInF,IACpC,CACA,IAKMmF,GAAe,MAArB,MAAMA,EACFnm0B,YAAY8hzB,GACR3hzB,KAAK2hzB,UAAYA,CACrB,CACAxhzB,cAAcwhzB,EAAWt1yB,GACrB,GAAc,MAAVA,EAAgB,CAChB,MAAMqxe,EAASrxe,EAAOs1yB,UAAU57yB,QAChC47yB,EAAYA,EAAUlnyB,OAAOije,EAAM,CAEvC,OAAO,IAAIsoV,EAAgBrkB,EAC/B,CAqBAxhzB,cAAcwhzB,GACV,MAAO,CACHj+yB,QAASsi0B,EACTpi0B,WAAayI,GAIF25zB,EAAgBp6zB,OAAO+1yB,EAAWt1yB,GAAU05zB,MAGvDrh0B,KAAM,CAAC,CAACsh0B,EAAiB,IAAIl+wB,GAAY,IAAID,KAErD,CACAjoB,KAAK4wsB,GACD,MAAMpruB,EAAUpF,KAAK2hzB,UAAU/hxB,KAAKwhB,GAAKA,EAAE76C,SAASiquB,IACpD,GAAe,MAAXpruB,EACA,OAAOA,EAGP,MAAM,IAAI80vB,GAAa,KAAyDtjuB,EAGxF,EAGJovyB,SAAgB9g0B,WAAQwuvB,GAAmB,CAAEz2uB,MAAO+ozB,EAAiBz8zB,WAAY,OAAQnE,QAAS2g0B,KAxD5FC,CAAe,KA6DrB,SAASC,KACL,OAAO,IAAIC,GAAgB,CAAC,IAAInB,IACpC,CACA,IAKMmB,GAAe,MAArB,MAAMA,EACFrm0B,YAAY8hzB,GACR3hzB,KAAK2hzB,UAAYA,CACrB,CACAxhzB,cAAcwhzB,EAAWt1yB,GACrB,GAAIA,EAAQ,CACR,MAAMqxe,EAASrxe,EAAOs1yB,UAAU57yB,QAChC47yB,EAAYA,EAAUlnyB,OAAOije,EAAM,CAEvC,OAAO,IAAIwoV,EAAgBvkB,EAC/B,CAqBAxhzB,cAAcwhzB,GACV,MAAO,CACHj+yB,QAASwi0B,EACTti0B,WAAayI,GAIF65zB,EAAgBt6zB,OAAO+1yB,EAAWt1yB,GAAU45zB,MAGvDvh0B,KAAM,CAAC,CAACwh0B,EAAiB,IAAIp+wB,GAAY,IAAID,KAErD,CACAjoB,KAAK0njB,GACD,MAAMlilB,EAAUpF,KAAK2hzB,UAAU/hxB,KAAKwhB,GAAKA,EAAE76C,SAAS+glB,IACpD,GAAIlilB,EACA,OAAOA,EAEX,MAAM,IAAI80vB,GAAa,KAAyDtjuB,EACpF,EAGJsvyB,SAAgBhh0B,WAAQwuvB,GAAmB,CAAEz2uB,MAAOipzB,EAAiB38zB,WAAY,OAAQnE,QAAS6g0B,KArD5FC,CAAe,KA0DrB,MAAMC,GAAa,CAAC,IAAIpB,IAKlBqB,GAAyB,IAAIJ,GADd,CAAC,IAAInF,KAEpBwF,GAAyB,IAAIH,GAAgBC,IAa7Cl0zB,GAAeD,GAAsB,KAAM,OAAQ,IAEzD,IAOMoD,GAAiB,MAAvB,MAAMA,EAEFvV,YAAYynF,GAAU,EAE1BlyE,SAAkBnQ,UAAO,SAAmCwW,GAAK,OAAO,IAAKA,GAAKrG,GAAmBO,GAAS4wC,IAAkB,EAChInxC,EAAkBJ,UAAqBgyb,GAAiB,CAAEr8b,KAAMyK,IAChEA,EAAkBH,UAAqBgyb,EAAiB,CAAC,GANnD7xb,CAAiB,KAYvB,SAASkxzB,GAAgBp6zB,GACrB,MAAwB,kBAAVA,EAAsBA,EAAkB,MAATA,GAA2B,UAAVA,CAClE,CAOA,SAASq6zB,GAAqBC,GAE1B,OADiB1zD,KACD2zD,4BAA4BpZ,GAAiB,SAAQmZ,EAAK77zB,KAAKvH,oBAAgBoj0B,EACnG,CAMA,SAASE,GAAyBF,GAC9BtiB,GAAiBsiB,EAAK77zB,KAAM67zB,EAAKxxD,WAAYwxD,EAAK3xD,gBAAkB,KAAM2xD,EAAKhxD,gBAAkB,KACrG,CAMA,SAASmxD,GAAqBH,GAE1B,OADiB1zD,KACD8zD,4BAA4BvZ,GAAiB,SAAQmZ,EAAK77zB,KAAKvH,oBAAgBoj0B,EACnG,CAMA,SAASK,GAAmBL,GAMxB,OALiB1zD,GAOrB,SAASg0D,GAAe/k0B,GACpB,OAAQA,GACJ,KAAK0wwB,GAAcC,UACf,MAAO,YACX,KAAKD,GAAcE,UACf,MAAO,YACX,KAAKF,GAAcG,WACf,MAAO,aACX,KAAKH,GAAc/yqB,KACf,MAAO,OACX,KAAK+yqB,GAAcI,SACf,MAAO,WAEnB,CAlBci0D,CAAeN,EAAKzk0B,SAGdgl0B,0BAA0B1Z,GAAiB,SAAQmZ,EAAK77zB,KAAKvH,oBAAgBoj0B,EACjG,CAoBA,SAASQ,GAAsBR,GAE3B,OADiB1zD,KACDm0D,6BAA6B5Z,GAAiB,SAAQmZ,EAAK77zB,KAAKvH,qBAAiBoj0B,EACrG,CAMA,SAASU,GAAoBV,GAEzB,OADiB1zD,KACDq0D,2BAA2B9Z,GAAiB,SAAQmZ,EAAK77zB,KAAKvH,oBAAgBoj0B,EAClG,CAMA,SAASY,GAAoBZ,GAEzB,OADiB1zD,KACDu0D,2BAA2Bha,GAAiB,SAAQmZ,EAAK77zB,KAAKvH,oBAAgBoj0B,EAClG,CAMA,SAASc,GAAgBd,GAErB,OADiB1zD,KACDy0D,uBAAuBla,GAAiB,SAAQmZ,EAAK77zB,KAAKvH,qBAAiBoj0B,EAC/F,CAgEA,SAASp8xB,GAAgBj8B,EAAWyN,GAEhC,MAAM4ixB,EAAe3/B,GAAgB1wvB,GAC/Bq5zB,EAAkB5rzB,EAAQ4rzB,iBAAmBj/C,KAEnD,OADgB,IAAIkW,GAAiBD,GACtB5yxB,OAAO47zB,EAAiB5rzB,EAAQivuB,iBAAkBjvuB,EAAQo6D,YAAap6D,EAAQ4sB,oBAClG,CAwCA,SAASi/xB,GAAqBt5zB,GAC1B,MAAMqwxB,EAAe3/B,GAAgB1wvB,GACrC,IAAKqwxB,EACD,OAAO,KACX,MAAMp5xB,EAAU,IAAIq5xB,GAAiBD,GACrC,MAAO,CACC5ywB,eACA,OAAOxmB,EAAQwmB,QACnB,EACIjhB,WACA,OAAOvF,EAAQy5xB,aACnB,EACIt0lB,aACA,OAAOnlM,EAAQmlM,MACnB,EACI4vE,cACA,OAAO/0Q,EAAQ+0Q,OACnB,EACI6rL,yBACA,OAAO5gc,EAAQ4gc,kBACnB,EACI+5T,mBACA,OAAOy+B,EAAar8E,UACxB,EAER,q+CEz31BA,SAASulH,GAAiBxpoB,GAAS72L,IAC/B,OAAO,IAAIkb,KAAWjK,KAClB,MAAMiY,GAAM2tK,GAAQz5L,OACpB,GAAY,IAAR8rB,GAEA,YADAjY,GAAWqL,WAGf,MAAMhK,GAAS,IAAIG,MAAMyW,IACzB,IAAI+oB,GAAY,EACZquxB,GAAU,EACd,QAASnj0B,GAAI,EAAGA,GAAI+rB,GAAK/rB,KAAK,CAC1B,MAAM0T,MAAS6B,MAAKmkL,GAAQ15L,KAC5B,IAAI8lB,IAAW,EACfhS,GAAWhQ,IAAI4P,GAAOK,UAAU,CAC5BO,KAAM5M,KACGoe,KACDA,IAAW,EACXq9yB,MAEJhuzB,GAAOnV,IAAK0H,IAEhB2M,MAAOD,IAAON,GAAWO,MAAMD,IAC/B+K,SAAU,KACN21B,MACIA,KAAc/oB,KAAQjG,MAClBq9yB,KAAYp3yB,IACZjY,GAAWQ,KAAKzR,GACZA,GAAKuX,OAAO,CAACtN,GAAQR,GAAKtM,MAAO8M,GAAOR,IAAO6I,GAAOnV,IAAI8M,IAAS,CAAC,GACpEqI,IAERrB,GAAWqL,WAAQ,IAG7B,GAGd,CC/CA,IAOMikzB,GAAwB,MAA9B,MAAMA,GACF/n0B,YAAY4lF,GAAWoivB,IACnB7n0B,KAAKylF,UAAYA,GACjBzlF,KAAK6n0B,YAAcA,GAMnB7n0B,KAAKu2P,SAAY7kN,OAKjB1xC,KAAK8n0B,UAAY,MACrB,CAMAp6zB,YAAYoD,GAAK5E,IACblM,KAAKylF,UAAU/3E,YAAY1N,KAAK6n0B,YAAY7kxB,cAAelyC,GAAK5E,GACpE,CAKA6lP,kBAAkBl3O,IACd7a,KAAK8n0B,UAAYjtzB,EACrB,CAKAi3O,iBAAiBj3O,IACb7a,KAAKu2P,SAAW17O,EACpB,CAKA67O,iBAAiBC,IACb32P,KAAK0N,YAAY,WAAYipP,GACjC,EAEJixkB,UAAyB3i0B,UAAI,4BAAwF2i0B,IAAVzi0B,8BAAoDA,aAApDA,8BAA6EA,cAAa,EACrMyi0B,GAAyBt9xB,UADkFnlC,8BAAE,MACJyi0B,KA/CnGA,EAAwB,KA4DxBG,GAA2B,MAAjC,MAAMA,WAAoCH,IAE1CG,UAA4B9i0B,UAAI,qDAhB2EE,kCAgBa4i0B,MAA2BtszB,IAA3BsszB,GAA2B,EAAnH,GAChCA,GAA4Bz9xB,UAjB+EnlC,8BAAE,MAiBD4i0B,GAA2BvhzB,UAjB5BrhB,0CAcrG4i0B,EAA2B,KAcjC,MAAM91kB,GAAoB,IAAIzuP,iBAAe,mBAEvCwk0B,GAA0B,CAC5Btk0B,QAASuuP,GACTx9O,aAAay9O,gBAAW,IAAM+1kB,IAC9Bpj0B,OAAO,GAEX,IAuBMoj0B,GAA4B,MAAlC,MAAMA,WAAqCF,GAKvC/1kB,WAAW9lP,IACPlM,KAAK0N,YAAY,UAAWxB,GAChC,EAEJ+7zB,UAA6Bhj0B,UAAI,qDAnE0EE,kCAmEc8i0B,MAA4BxszB,IAA5BwszB,GAA4B,EAApH,GACjCA,GAA6B39xB,UApE8EnlC,8BAAE,MAoEA8i0B,GAA4B19xB,sLApE9BplC,uBAAE,6BAoEA6Q,8BAA+B,EApEjC7Q,CAoEiC,yBAA/B6Q,cAAW,cApEb7Q,+BAoE2P,CAAC6i0B,KApE5P7i0B,0CA0DrG8i0B,EAA4B,KAoBlC,MAAMC,GAAyB,CAC3Bxk0B,QAASuuP,GACTx9O,aAAay9O,gBAAW,IAAMi2kB,GAC9Btj0B,OAAO,GAgBLuj0B,GAA0B,IAAI5k0B,iBAAe,wBACnD,IAmCM2k0B,EAAoB,MAA1B,MAAMA,WAA6BP,GAC/B/n0B,YAAY+K,GAAU8zQ,GAAY2pjB,IAC9Bvo0B,MAAM8K,GAAU8zQ,IAChB1+Q,KAAKqo0B,iBAAmBA,GAExBro0B,KAAKsphB,YAAa,EACW,MAAzBtphB,KAAKqo0B,mBACLro0B,KAAKqo0B,kBArDjB,SAASC,KACL,MAAMpl0B,MAAYmB,mBAAO,EAAKA,kBAAUrB,eAAiB,GACzD,MAAO,gBAAgBmgB,KAAKjgB,GAAU0N,cAC1C,CAkDqC03zB,GAEjC,CAKAt2kB,WAAW9lP,IAEPlM,KAAK0N,YAAY,QADOxB,IAAgB,GAE5C,CAEAq8zB,aAAar8zB,MACJlM,KAAKqo0B,kBAAqBro0B,KAAKqo0B,mBAAqBro0B,KAAKsphB,aAC1DtphB,KAAKu2P,SAASrqP,GAEtB,CAEAs8zB,oBACIxo0B,KAAKsphB,YAAa,CACtB,CAEAm/S,gBAAgBv8zB,IACZlM,KAAKsphB,YAAa,EAClBtphB,KAAKqo0B,kBAAoBro0B,KAAKu2P,SAASrqP,GAC3C,EAEJi8zB,UAAqBlj0B,UAAI,4BAAwFkj0B,IAvKNhj0B,8BAuK4CA,aAvK5CA,8BAuKqEA,cAvKrEA,8BAuK+Fij0B,GAAuB,KACjOD,GAAqB79xB,UAxKsFnlC,8BAAE,MAwKRgj0B,GAAoB59xB,iTAxKdplC,uBAAE,4BAwKR6Q,gCAA4C,EAxKtC7Q,CAwKsC,yBAA5C6Q,cAAW,EAxKL7Q,CAwKK,qCAAX6Q,sBAA8B,EAxKxB7Q,CAwKwB,qCAA9B6Q,mCAA+C,cAxKzC7Q,+BAwKyd,CAAC+i0B,KAxK1d/i0B,0CAqIrGgj0B,EAAoB,KA0D1B,MAAMjixB,GAAoD,EAC1D,SAASwixB,EAAkBx8zB,IAMvB,OAAgB,MAATA,KACgB,iBAAVA,IAAsB4N,MAAM2C,QAAQvQ,MAA4B,IAAjBA,GAAMzH,MACtE,CACA,SAASkk0B,GAAez8zB,IAEpB,OAAgB,MAATA,IAAyC,iBAAjBA,GAAMzH,MACzC,CA6BA,MAAMmk0B,GAAgB,IAAIpl0B,iBAAe,gBA8BnCql0B,GAAsB,IAAIrl0B,iBAAe,qBA+BzCsl0B,EAAe,qMAYrB,MAAMp2kB,GAqBFvyP,WAAW2wD,IACP,OAAOi4wB,GAAaj4wB,GACxB,CAqBA3wD,WAAWgrB,IACP,OAAO69yB,GAAa79yB,GACxB,CAqBAhrB,gBAAgB0P,IACZ,OAAOo5zB,GAAkBp5zB,GAC7B,CAsBA1P,oBAAoB0P,IAChB,OAAOq5zB,GAAsBr5zB,GACjC,CAqCA1P,aAAa0P,IACT,OAAOs5zB,EAAet5zB,GAC1B,CA+BA1P,iBAAiBqqc,IACb,OAAO4+X,EAAmB5+X,GAC9B,CA4BArqc,iBAAiBskM,IACb,OAAO4koB,EAAmB5koB,GAC9B,CAkDAtkM,eAAe2rN,IACX,OAAOw9mB,GAAiBx9mB,GAC5B,CAQA3rN,qBAAqB0P,IACjB,OAyIG,IAxIP,CACA1P,eAAeop0B,IACX,OAAOtmrB,GAAQsmrB,GACnB,CAYApp0B,oBAAoBop0B,IAChB,OAAOC,GAAaD,GACxB,EAMJ,SAASR,GAAaj4wB,IAClB,OAAQjhD,KACJ,GAAI64zB,EAAkB74zB,GAAQ3D,QAAUw8zB,EAAkB53wB,IACtD,OAAO,KAEX,MAAM5kD,GAAQgzD,WAAWrvD,GAAQ3D,OAGjC,OAAQygB,MAAMzgB,KAAUA,GAAQ4kD,GAAM,CAAEA,IAAO,CAAEA,IAAOA,GAAK+jjB,OAAUhlmB,GAAQ3D,QAAY,KAEnG,CAKA,SAAS88zB,GAAa79yB,IAClB,OAAQtb,KACJ,GAAI64zB,EAAkB74zB,GAAQ3D,QAAUw8zB,EAAkBv9yB,IACtD,OAAO,KAEX,MAAMjf,GAAQgzD,WAAWrvD,GAAQ3D,OAGjC,OAAQygB,MAAMzgB,KAAUA,GAAQif,GAAM,CAAEA,IAAO,CAAEA,IAAOA,GAAK0plB,OAAUhlmB,GAAQ3D,QAAY,KAEnG,CAKA,SAAS+8zB,GAAkBp5zB,IACvB,OAAO64zB,EAAkB74zB,GAAQ3D,OAAS,CAAE60gB,UAAY,GAAS,IACrE,CAMA,SAASmoT,GAAsBr5zB,IAC3B,OAAyB,IAAlBA,GAAQ3D,MAAiB,KAAO,CAAE60gB,UAAY,EACzD,CAKA,SAASooT,EAAet5zB,IACpB,OAAI64zB,EAAkB74zB,GAAQ3D,QAGvB48zB,EAAa3lzB,KAAKtT,GAAQ3D,OAFtB,KAEsC,CAAE+lH,OAAS,EAChE,CAKA,SAASm3sB,EAAmB5+X,IACxB,OAAQ36b,IACA64zB,EAAkB74zB,GAAQ3D,SAAWy8zB,GAAe94zB,GAAQ3D,OAGrD,KAEJ2D,GAAQ3D,MAAMzH,OAAS+lc,GAC1B,CAAEi/X,UAAa,CAAEC,eAAkBl/X,GAAWm/X,aAAgB95zB,GAAQ3D,MAAMzH,SAC5E,IAEZ,CAKA,SAAS4k0B,EAAmB5koB,IACxB,OAAQ50L,IACG84zB,GAAe94zB,GAAQ3D,QAAU2D,GAAQ3D,MAAMzH,OAASggM,GAC3D,CAAEmloB,UAAa,CAAEF,eAAkBjloB,GAAWkloB,aAAgB95zB,GAAQ3D,MAAMzH,SAC5E,IAEZ,CAKA,SAAS6k0B,GAAiBx9mB,IACtB,IAAKA,GACD,OAAO+9mB,GACX,IAAIzia,GACA0ia,GACJ,MAAuB,iBAAZh+mB,IACPg+mB,GAAW,GACe,MAAtBh+mB,GAAQhpN,OAAO,KACfgn0B,IAAY,KAChBA,IAAYh+mB,GAC+B,MAAvCA,GAAQhpN,OAAOgpN,GAAQrnN,OAAS,KAChCql0B,IAAY,KAChB1ia,GAAQ,IAAIvmW,OAAOipwB,MAGnBA,GAAWh+mB,GAAQx1M,WACnB8wZ,GAAQt7M,IAEJj8M,KACJ,GAAI64zB,EAAkB74zB,GAAQ3D,OAC1B,OAAO,KAEX,MAAMA,GAAQ2D,GAAQ3D,MACtB,OAAOk7Z,GAAMjkZ,KAAKjX,IAAS,KACvB,CAAE4/M,QAAW,CAAEi+mB,gBAAmBD,GAAUE,YAAe99zB,IAAQ,CAE/E,CAIA,SAAS29zB,GAAch6zB,IACnB,OAAO,IACX,CACA,SAASo6zB,GAAUz7xB,IACf,OAAY,MAALA,EACX,CACA,SAAS9jB,GAAaxe,IAClB,MAAMqiC,MAAM/X,mBAAWtqB,KAAK,EAAI6N,MAAK7N,IAASA,GAC9C,GAAIg6C,KAAiB,EAAE3vB,sBAAcgY,IAAO,CACxC,IAAI6uxB,GAAgB,4DAEpB,KAAqB,iBAAVlxzB,KACPkxzB,IACI,gFAEF,IAAIvhyB,sBAAc,KAA0DuhyB,GAAY,CAElG,OAAO7uxB,EACX,CACA,SAAS27xB,GAAYC,IACjB,IAAIztzB,GAAM,CAAC,EACXytzB,UAAcxk0B,QAAS61D,KACnB9+C,GAAgB,MAAV8+C,GAAiB,IAAK9+C,MAAQ8+C,IAAW9+C,KAEhB,IAA5B/Q,OAAOtE,KAAKqV,IAAKjY,OAAe,KAAOiY,EAClD,CACA,SAAS0tzB,GAAkBv6zB,GAAS05zB,IAChC,OAAOA,GAAWhi0B,IAAI8i0B,IAAaA,GAAUx6zB,IACjD,CAYA,SAASy6zB,GAAoBf,IACzB,OAAOA,GAAWhi0B,IAAI8i0B,IAZ1B,SAASE,GAAcF,IACnB,OAAQA,GAAUG,QACtB,CAWeD,CAAcF,IACjBA,GACE/yyB,IAAM+yyB,GAAUG,SAASlzyB,IAEvC,CAKA,SAAS2rH,GAAQsmrB,IACb,IAAKA,GACD,OAAO,KACX,MAAMkB,GAAoBlB,GAAWxxzB,OAAOkyzB,IAC5C,OAAgC,GAA5BQ,GAAkBhm0B,OACX,KACJ,SAAUoL,IACb,OAAOq6zB,GAAYE,GAAkBv6zB,GAAS46zB,IAClD,CACJ,CAMA,SAASC,GAAkBnB,IACvB,OAAqB,MAAdA,GAAqBtmrB,GAAQqnrB,GAAoBf,KAAe,IAC3E,CAKA,SAASC,GAAaD,IAClB,IAAKA,GACD,OAAO,KACX,MAAMkB,GAAoBlB,GAAWxxzB,OAAOkyzB,IAC5C,OAAgC,GAA5BQ,GAAkBhm0B,OACX,KACJ,SAAUoL,IAEb,ODv0BD,SAAS86zB,MAAYzsoB,IACxB,GAAuB,IAAnBA,GAAQz5L,OAAc,CACtB,MAAM0b,GAAQ+9K,GAAQ,GACtB,MAAIzhL,KAAQ0D,IACR,OAAOunzB,GAAiBvnzB,GAAO,MAEnC,MAAI40c,MAAS50c,KAAUxU,OAAO2vb,eAAen7a,MAAWxU,OAAO0jB,UAAW,CACtE,MAAMhoB,GAAOsE,OAAOtE,KAAK8Y,IACzB,OAAOunzB,GAAiBrg0B,GAAKE,IAAIuJ,IAAOqP,GAAMrP,KAAOzJ,GAAI,EAGjE,GAA2C,mBAAhC62L,GAAQA,GAAQz5L,OAAS,GAAmB,CACnD,MAAMoT,GAAiBqmL,GAAQltL,MAC/BktL,OACOwpoB,GADPxpoB,GAA8B,IAAnBA,GAAQz5L,SAAW,EAAKgY,KAAQyhL,GAAQ,IAAOA,GAAQ,GAAKA,GACtC,MAAM59K,QAAK/Y,MAAK+P,IAASO,MAAkBP,KAAM,CAEtF,OAAOowzB,GAAiBxpoB,GAAS,KACrC,CCszBeysoB,CADaP,GAAkBv6zB,GAAS46zB,IAAmBlj0B,IAAImjB,KACzCpK,QAAK/Y,MAAI2i0B,IAC1C,CACJ,CAMA,SAASU,GAAuBrB,IAC5B,OAAqB,MAAdA,GAAqBC,GAAac,GAAoBf,KACzD,IACR,CAKA,SAASsB,GAAgBC,GAAmBC,IACxC,OAA0B,OAAtBD,GACO,CAACC,IACLjxzB,MAAM2C,QAAQquzB,IAAqB,IAAIA,GAAmBC,IAC7D,CAACD,GAAmBC,GAC5B,CAIA,SAASC,GAAqBn7zB,IAC1B,OAAOA,GAAQo7zB,cACnB,CAIA,SAASC,GAA0Br7zB,IAC/B,OAAOA,GAAQs7zB,mBACnB,CAQA,SAASC,GAAoB7B,IACzB,OAAKA,GAEEzvzB,MAAM2C,QAAQ8szB,IAAcA,GAAa,CAACA,IADtC,EAEf,CAQA,SAAS8B,GAAa9B,GAAYc,IAC9B,OAAOvwzB,MAAM2C,QAAQ8szB,IAAcA,GAAWlytB,SAASgztB,IAAad,KAAec,EACvF,CAQA,SAASiB,GAAc/B,GAAYgC,IAC/B,MAAMlzyB,GAAU+yyB,GAAoBG,IAEpCC,OADwBJ,GAAoB7B,IAC5B5j0B,QAAS4V,KAKhB8vzB,GAAahzyB,GAAS9c,KACvB8c,GAAQzvB,KAAK2S,GAAC,GAGf8c,EACX,CACA,SAASozyB,GAAiBlC,GAAYgC,IAClC,OAAOH,GAAoBG,IAAmBxzzB,OAAOwD,KAAM8vzB,GAAa9B,GAAYhuzB,IACxF,CAUA,MAAMmwzB,GACF7r0B,cAKIG,KAAKir0B,eAAiB,GAMtBjr0B,KAAKmr0B,oBAAsB,GAI3Bnr0B,KAAK2r0B,oBAAsB,EAC/B,CAKIz/zB,YACA,OAAOlM,KAAK6P,QAAU7P,KAAK6P,QAAQ3D,MAAQ,IAC/C,CAOIswH,YACA,OAAOx8H,KAAK6P,QAAU7P,KAAK6P,QAAQ2sH,MAAQ,IAC/C,CAMI6iF,cACA,OAAOr/M,KAAK6P,QAAU7P,KAAK6P,QAAQwvM,QAAU,IACjD,CAOI31L,cACA,OAAO1pB,KAAK6P,QAAU7P,KAAK6P,QAAQ6Z,QAAU,IACjD,CAOIgzC,eACA,OAAO18D,KAAK6P,QAAU7P,KAAK6P,QAAQ6sD,SAAW,IAClD,CAMIo1N,cACA,OAAO9xR,KAAK6P,QAAU7P,KAAK6P,QAAQiiR,QAAU,IACjD,CAKIt2N,aACA,OAAOx7D,KAAK6P,QAAU7P,KAAK6P,QAAQ2rD,OAAS,IAChD,CAMIowwB,eACA,OAAO5r0B,KAAK6P,QAAU7P,KAAK6P,QAAQ+7zB,SAAW,IAClD,CAMIhxkB,YACA,OAAO56P,KAAK6P,QAAU7P,KAAK6P,QAAQ+qP,MAAQ,IAC/C,CAMI3qF,cACA,OAAOjwK,KAAK6P,QAAU7P,KAAK6P,QAAQogK,QAAU,IACjD,CAOIzwJ,aACA,OAAOxf,KAAK6P,QAAU7P,KAAK6P,QAAQ2P,OAAS,IAChD,CAMIqszB,gBACA,OAAO7r0B,KAAK6P,QAAU7P,KAAK6P,QAAQg8zB,UAAY,IACnD,CAMIC,oBACA,OAAO9r0B,KAAK6P,QAAU7P,KAAK6P,QAAQi8zB,cAAgB,IACvD,CAOInwkB,mBACA,OAAO37P,KAAK6P,QAAU7P,KAAK6P,QAAQ8rP,aAAe,IACtD,CAMIxmO,WACA,OAAO,IACX,CAKA42yB,eAAexC,IACXvp0B,KAAKir0B,eAAiB1B,IAAc,GACpCvp0B,KAAKgs0B,qBAAuBtB,GAAkB1q0B,KAAKir0B,eACvD,CAKAgB,oBAAoB1C,IAChBvp0B,KAAKmr0B,oBAAsB5B,IAAc,GACzCvp0B,KAAKks0B,0BAA4BtB,GAAuB5q0B,KAAKmr0B,oBACjE,CAMId,gBACA,OAAOrq0B,KAAKgs0B,sBAAwB,IACxC,CAMIG,qBACA,OAAOns0B,KAAKks0B,2BAA6B,IAC7C,CAMAE,mBAAmBvxzB,IACf7a,KAAK2r0B,oBAAoB/i0B,KAAKiS,GAClC,CAMAwxzB,4BACIrs0B,KAAK2r0B,oBAAoBhm0B,QAAQkV,IAAMA,MACvC7a,KAAK2r0B,oBAAsB,EAC/B,CAKA57wB,MAAM7jD,IACElM,KAAK6P,SACL7P,KAAK6P,QAAQkgD,MAAM7jD,GAC3B,CA+BA8iB,SAASs9yB,GAAWn3yB,IAChB,QAAOn1B,KAAK6P,SAAU7P,KAAK6P,QAAQmf,SAASs9yB,GAAWn3yB,GAC3D,CA4BAyjf,SAAS0zT,GAAWn3yB,IAChB,OAAOn1B,KAAK6P,QAAU7P,KAAK6P,QAAQ+ogB,SAAS0zT,GAAWn3yB,IAAQ,IACnE,EAUJ,MAAMo3yB,UAAyBb,GAKvBc,oBACA,OAAO,IACX,CAKIr3yB,WACA,OAAO,IACX,EAUJ,MAAMs3yB,UAAkBf,GACpB7r0B,cACIC,SAASC,WAOTC,KAAK82M,QAAU,KAKf92M,KAAKoD,KAAO,KAKZpD,KAAK0s0B,cAAgB,IACzB,EAOJ,MAAMC,EACF9s0B,YAAYu0jB,IACRp0jB,KAAK4s0B,IAAMx4Q,EACf,CACIy4Q,gBACA,QAAS7s0B,KAAK4s0B,KAAK/8zB,SAASogK,OAChC,CACI68pB,kBACA,QAAS9s0B,KAAK4s0B,KAAK/8zB,SAASg8zB,SAChC,CACIkB,iBACA,QAAS/s0B,KAAK4s0B,KAAK/8zB,SAAS+7zB,QAChC,CACIx2L,cACA,QAASp1oB,KAAK4s0B,KAAK/8zB,SAAS+qP,KAChC,CACIqvJ,cACA,QAASjqZ,KAAK4s0B,KAAK/8zB,SAAS2sH,KAChC,CACIgvJ,gBACA,QAASxrR,KAAK4s0B,KAAK/8zB,SAASwvM,OAChC,CACI2tnB,gBACA,QAASht0B,KAAK4s0B,KAAK/8zB,SAAS6Z,OAChC,CACI66Z,kBAGA,QAASvkb,KAAK4s0B,KAAKK,SACvB,EAeJ,IAuBMC,GAAe,MAArB,MAAMA,WAAwBP,EAC1B9s0B,YAAYu0jB,IACRt0jB,MAAMs0jB,GACV,EAEJ84Q,UAAgBjo0B,UAAI,4BAAwFio0B,IA7uCD/n0B,8BA6uCkCsn0B,EAAS,KACtJS,GAAgB5iyB,UA9uC2FnlC,8BAAE,MA8uCb+n0B,GAAe3iyB,6HA9uCJplC,wBAAE,8BAAFA,CAAE,0BAAFA,CAAE,4BAAFA,CAAE,sBAAFA,CAAE,sBAAFA,CAAE,0BAAFA,CAAE,sCAAFA,0CAwuCrG+n0B,EAAe,KAyBfC,GAAoB,MAA1B,MAAMA,WAA6BR,EAC/B9s0B,YAAYu0jB,IACRt0jB,MAAMs0jB,GACV,EAEJ+4Q,UAAqBlo0B,UAAI,4BAAwFko0B,IAtwCNho0B,8BAswC4Con0B,EAAgB,MACvKY,GAAqB7iyB,UAvwCsFnlC,8BAAE,MAuwCRgo0B,GAAoB5iyB,gMAvwCdplC,wBAAE,8BAAFA,CAAE,0BAAFA,CAAE,4BAAFA,CAAE,sBAAFA,CAAE,sBAAFA,CAAE,0BAAFA,CAAE,0BAAFA,CAAE,0CAAFA,0CAiwCrGgo0B,EAAoB,KA0J1B,SAASC,GAAYC,GAAav8zB,IAC9B,OAAOu8zB,GAAe,eAAcv8zB,MAAU,aAAYA,IAC9D,CAcA,MAAMs2C,IAAkD,EAMlDkmxB,GAAQ,QAMRC,GAAU,UAQVC,GAAU,UAQVC,GAAW,WAIjB,SAASC,GAAeC,IACpB,OAAQC,GAAaD,IAAmBA,GAAgBpE,WAAaoE,KAAoB,IAC7F,CAUA,SAASE,GAAoB1B,GAAgBwB,IAMzC,OAAQC,GAAaD,IAAmBA,GAAgBG,gBAAkB3B,KAAmB,IACjG,CAQA,SAASyB,GAAaD,IAClB,OAA0B,MAAnBA,KAA4B7zzB,MAAM2C,QAAQkxzB,KAClB,iBAApBA,EACf,CACA,SAASI,GAAqB1h0B,GAAQ2h0B,GAASl9zB,IAC3C,MAAMsmI,GAAW/qI,GAAO+qI,SAExB,KADmB42rB,GAAUri0B,OAAOtE,KAAK+vI,IAAYA,IACrC3yI,OACZ,MAAM,IAAIo3B,qBAAc,IAAyCurB,GAhFzE,SAAS6mxB,GAAgBZ,IACrB,MAAQ,yDAC0CA,GAAc,QAAU,uGAG9E,CA2EuFY,CAAgBD,IAAW,IAE9G,IAAK52rB,GAAStmI,IACV,MAAM,IAAI+qB,qBAAc,KAA6CurB,GA7E7E,SAAS8mxB,GAAoBb,GAAav8zB,IACtC,MAAQ,4BAA2Bs8zB,GAAYC,GAAav8zB,KAChE,CA2E2Fo9zB,CAAoBF,GAASl9zB,IAAO,GAE/H,CACA,SAASq9zB,GAAuBt+zB,GAASm+zB,GAAS9h0B,IAC9C2D,GAAQu+zB,cAAc,CAAC18xB,GAAG5gC,MACtB,QAAmB7C,IAAf/B,GAAM4E,IACN,MAAM,IAAI+qB,qBAAc,KAAmDurB,GAhFvF,SAASinxB,GAAyBhB,GAAav8zB,IAC3C,MAAQ,wCAAuCs8zB,GAAYC,GAAav8zB,KAC5E,CA8EqGu9zB,CAAyBL,GAASl9zB,IAAO,GAAE,EAGhJ,CAmBA,MAAMw9zB,GASFzu0B,YAAY0p0B,GAAYuE,IAEpB9t0B,KAAKuu0B,eAAgB,EAMrBvu0B,KAAKwu0B,8BAA+B,EAEpCxu0B,KAAKyu0B,iBAAkB,EAEvBzu0B,KAAK0u0B,oBAAsB,OAC3B1u0B,KAAK82M,QAAU,KAQf92M,KAAK4r0B,UAAW,EAOhB5r0B,KAAKiwK,SAAU,EAEfjwK,KAAK2u0B,kBAAoB,GACzB3u0B,KAAK4u0B,kBAAkBrF,IACvBvp0B,KAAK6u0B,uBAAuBf,GAChC,CAMIzD,gBACA,OAAOrq0B,KAAKgs0B,oBAChB,CACI3B,cAAUyE,IACV9u0B,KAAKir0B,eAAiBjr0B,KAAKgs0B,qBAAuB8C,EACtD,CAMI3C,qBACA,OAAOns0B,KAAKks0B,yBAChB,CACIC,mBAAe4C,IACf/u0B,KAAKmr0B,oBAAsBnr0B,KAAKks0B,0BAA4B6C,EAChE,CAII1i0B,aACA,OAAOrM,KAAK82M,OAChB,CASIt6E,YACA,OAAOx8H,KAAKwf,SAAW8tzB,EAC3B,CASIjunB,cACA,OAAOr/M,KAAKwf,SAAW+tzB,EAC3B,CASI7jzB,cACA,OAAO1pB,KAAKwf,QAAUguzB,EAC1B,CAYI9wwB,eACA,OAAO18D,KAAKwf,SAAWiuzB,EAC3B,CAUI37iB,cACA,OAAO9xR,KAAKwf,SAAWiuzB,EAC3B,CAQI7ykB,YACA,OAAQ56P,KAAK4r0B,QACjB,CAOIC,gBACA,OAAQ7r0B,KAAKiwK,OACjB,CAOI++pB,eACA,OAAOhv0B,KAAKiv0B,UAAYjv0B,KAAKiv0B,UAAajv0B,KAAKqM,OAASrM,KAAKqM,OAAO2i0B,SAAW,QACnF,CAWAE,cAAc3F,IACVvp0B,KAAK4u0B,kBAAkBrF,GAC3B,CAWA4F,mBAAmB5F,IACfvp0B,KAAK6u0B,uBAAuBtF,GAChC,CAaA+B,cAAc/B,IACVvp0B,KAAKkv0B,cAAc5D,GAAc/B,GAAYvp0B,KAAKir0B,gBACtD,CAYAmE,mBAAmB7F,IACfvp0B,KAAKmv0B,mBAAmB7D,GAAc/B,GAAYvp0B,KAAKmr0B,qBAC3D,CA8BAM,iBAAiBlC,IACbvp0B,KAAKkv0B,cAAczD,GAAiBlC,GAAYvp0B,KAAKir0B,gBACzD,CAYAoE,sBAAsB9F,IAClBvp0B,KAAKmv0B,mBAAmB1D,GAAiBlC,GAAYvp0B,KAAKmr0B,qBAC9D,CAwBAE,aAAahB,IACT,OAAOgB,GAAarr0B,KAAKir0B,eAAgBZ,GAC7C,CASAiF,kBAAkBjF,IACd,OAAOgB,GAAarr0B,KAAKmr0B,oBAAqBd,GAClD,CAQAkF,kBACIvv0B,KAAKqq0B,UAAY,IACrB,CAQAmF,uBACIxv0B,KAAKms0B,eAAiB,IAC1B,CAcAsD,cAAcrziB,GAAO,CAAC,GAClBp8R,KAAKiwK,SAAU,EACXjwK,KAAK82M,UAAYslF,GAAKsziB,UACtB1v0B,KAAK82M,QAAQ24nB,cAAcrziB,GAEnC,CAKAuziB,mBACI3v0B,KAAKyv0B,cAAc,CAAEC,UAAU,IAC/B1v0B,KAAKou0B,cAAev+zB,IAAYA,GAAQ8/zB,mBAC5C,CAgBAC,gBAAgBxziB,GAAO,CAAC,GACpBp8R,KAAKiwK,SAAU,EACfjwK,KAAKyu0B,iBAAkB,EACvBzu0B,KAAKou0B,cAAev+zB,KAChBA,GAAQ+/zB,gBAAgB,CAAEF,UAAU,GAAM,GAE1C1v0B,KAAK82M,UAAYslF,GAAKsziB,UACtB1v0B,KAAK82M,QAAQ+4nB,eAAezziB,GAEpC,CAcA1/B,YAAY0/B,GAAO,CAAC,GAChBp8R,KAAK4r0B,UAAW,EACZ5r0B,KAAK82M,UAAYslF,GAAKsziB,UACtB1v0B,KAAK82M,QAAQ4lD,YAAY0/B,GAEjC,CAiBA0ziB,eAAe1ziB,GAAO,CAAC,GACnBp8R,KAAK4r0B,UAAW,EAChB5r0B,KAAKuu0B,eAAgB,EACrBvu0B,KAAKou0B,cAAev+zB,KAChBA,GAAQig0B,eAAe,CAAEJ,UAAU,GAAM,GAEzC1v0B,KAAK82M,UAAYslF,GAAKsziB,UACtB1v0B,KAAK82M,QAAQi5nB,gBAAgB3ziB,GAErC,CAiBA4ziB,cAAc5ziB,GAAO,CAAC,GAClBp8R,KAAKwf,OAASguzB,IACS,IAAnBpxiB,GAAK7/B,WACLv8P,KAAK8r0B,cAAcpiyB,KAAK1pC,KAAKwf,QAE7Bxf,KAAK82M,UAAYslF,GAAKsziB,UACtB1v0B,KAAK82M,QAAQk5nB,cAAc5ziB,GAEnC,CAkBAz5M,QAAQy5M,GAAO,CAAC,GAGZ,MAAM6ziB,GAAoBjw0B,KAAKkw0B,mBAAmB9ziB,GAAKsziB,UACvD1v0B,KAAKwf,OAASiuzB,GACdzt0B,KAAKw7D,OAAS,KACdx7D,KAAKou0B,cAAev+zB,KAChBA,GAAQ8yE,QAAQ,IAAKy5M,GAAMsziB,UAAU,GAAM,GAE/C1v0B,KAAKmw0B,gBACkB,IAAnB/ziB,GAAK7/B,YACLv8P,KAAK27P,aAAajyN,KAAK1pC,KAAKkM,OAC5BlM,KAAK8r0B,cAAcpiyB,KAAK1pC,KAAKwf,SAEjCxf,KAAKow0B,iBAAiB,IAAKh0iB,GAAM6ziB,uBACjCjw0B,KAAK2u0B,kBAAkBhp0B,QAAS0q0B,IAAaA,IAAS,GAC1D,CAmBAj9kB,OAAOgpC,GAAO,CAAC,GAGX,MAAM6ziB,GAAoBjw0B,KAAKkw0B,mBAAmB9ziB,GAAKsziB,UACvD1v0B,KAAKwf,OAAS8tzB,GACdtt0B,KAAKou0B,cAAev+zB,KAChBA,GAAQujP,OAAO,IAAKgpC,GAAMsziB,UAAU,GAAM,GAE9C1v0B,KAAKsw0B,uBAAuB,CAAEZ,UAAU,EAAMnzkB,UAAW6/B,GAAK7/B,YAC9Dv8P,KAAKow0B,iBAAiB,IAAKh0iB,GAAM6ziB,uBACjCjw0B,KAAK2u0B,kBAAkBhp0B,QAAS0q0B,IAAaA,IAAS,GAC1D,CACAD,iBAAiBh0iB,IACTp8R,KAAK82M,UAAYslF,GAAKsziB,WACtB1v0B,KAAK82M,QAAQw5nB,uBAAuBl0iB,IAC/BA,GAAK6ziB,mBACNjw0B,KAAK82M,QAAQi5nB,kBAEjB/v0B,KAAK82M,QAAQ+4nB,iBAErB,CAMAvxqB,UAAUjyJ,IACNrM,KAAK82M,QAAUzqM,EACnB,CAKAqhI,cACI,OAAO1tI,KAAKkM,KAChB,CAeAok0B,uBAAuBl0iB,GAAO,CAAC,GAC3Bp8R,KAAKuw0B,oBACLvw0B,KAAKmw0B,eACDnw0B,KAAK8xR,UACL9xR,KAAKww0B,8BACLxw0B,KAAKw7D,OAASx7D,KAAKyw0B,gBACnBzw0B,KAAKwf,OAASxf,KAAK0w0B,oBACf1w0B,KAAKwf,SAAW8tzB,IAAStt0B,KAAKwf,SAAWguzB,KACzCxt0B,KAAK2w0B,mBAAmBv0iB,GAAK7/B,aAGd,IAAnB6/B,GAAK7/B,YACLv8P,KAAK27P,aAAajyN,KAAK1pC,KAAKkM,OAC5BlM,KAAK8r0B,cAAcpiyB,KAAK1pC,KAAKwf,SAE7Bxf,KAAK82M,UAAYslF,GAAKsziB,UACtB1v0B,KAAK82M,QAAQw5nB,uBAAuBl0iB,GAE5C,CAEAw0iB,oBAAoBx0iB,GAAO,CAAE7/B,WAAW,IACpCv8P,KAAKou0B,cAAenvoB,IAASA,GAAK2xoB,oBAAoBx0iB,KACtDp8R,KAAKsw0B,uBAAuB,CAAEZ,UAAU,EAAMnzkB,UAAW6/B,GAAK7/B,WAClE,CACAg0kB,oBACIvw0B,KAAKwf,OAASxf,KAAK6w0B,uBAAyBpD,GAAWH,EAC3D,CACAmD,gBACI,OAAOzw0B,KAAKqq0B,UAAYrq0B,KAAKqq0B,UAAUrq0B,MAAQ,IACnD,CACA2w0B,mBAAmBp0kB,IACf,GAAIv8P,KAAKms0B,eAAgB,CACrBns0B,KAAKwf,OAASguzB,GACdxt0B,KAAKwu0B,8BAA+B,EACpC,MAAMjgyB,GAAM7jB,GAAa1qB,KAAKms0B,eAAens0B,OAC7CA,KAAK8w0B,6BAA+BviyB,GAAIh2B,UAAWijD,KAC/Cx7D,KAAKwu0B,8BAA+B,EAIpCxu0B,KAAK+w0B,UAAUv1wB,GAAQ,CAAE+gM,cAAW,EACvC,CAET,CACAi0kB,8BACQxw0B,KAAK8w0B,+BACL9w0B,KAAK8w0B,6BAA6B3ozB,cAClCnoB,KAAKwu0B,8BAA+B,EAE5C,CA6BAuC,UAAUv1wB,GAAQ4gO,GAAO,CAAC,GACtBp8R,KAAKw7D,OAASA,GACdx7D,KAAKgx0B,uBAAyC,IAAnB50iB,GAAK7/B,UACpC,CA+BAv4P,IAAImxB,IACA,IAAI87yB,GAAW97yB,GAKf,OAJgB,MAAZ87yB,KAECn3zB,MAAM2C,QAAQw0zB,MACfA,GAAWA,GAASpg0B,MAAM,MACN,IAApBog0B,GAASxs0B,QACF,KACJws0B,GAASryzB,OAAO,CAAC/O,GAASzM,KAASyM,IAAWA,GAAQqh0B,MAAM9t0B,IAAOpD,KAC9E,CA4BA44gB,SAAS0zT,GAAWn3yB,IAChB,MAAMtlB,GAAUslB,GAAOn1B,KAAKgE,IAAImxB,IAAQn1B,KACxC,OAAO6P,IAAWA,GAAQ2rD,OAAS3rD,GAAQ2rD,OAAO8wwB,IAAa,IACnE,CA+BAt9yB,SAASs9yB,GAAWn3yB,IAChB,QAASn1B,KAAK44gB,SAAS0zT,GAAWn3yB,GACtC,CAII6C,WACA,IAAI3D,GAAIr0B,KACR,KAAOq0B,GAAEyiL,SACLziL,GAAIA,GAAEyiL,QAEV,OAAOziL,EACX,CAEA28yB,sBAAsBz0kB,IAClBv8P,KAAKwf,OAASxf,KAAK0w0B,mBACfn0kB,IACAv8P,KAAK8r0B,cAAcpiyB,KAAK1pC,KAAKwf,QAE7Bxf,KAAK82M,SACL92M,KAAK82M,QAAQk6nB,sBAAsBz0kB,GAE3C,CAEA40kB,mBACInx0B,KAAK27P,aAAe,IAAI5zN,eACxB/nC,KAAK8r0B,cAAgB,IAAI/jyB,cAC7B,CACA2oyB,mBACI,OAAI1w0B,KAAK6w0B,uBACEpD,GACPzt0B,KAAKw7D,OACE+xwB,GACPvt0B,KAAKwu0B,8BAAgCxu0B,KAAKox0B,uBAAuB5D,IAC1DA,GACPxt0B,KAAKox0B,uBAAuB7D,IACrBA,GACJD,EACX,CAEA8D,uBAAuB5xzB,IACnB,OAAOxf,KAAKqx0B,aAAcxh0B,IAAYA,GAAQ2P,SAAWA,GAC7D,CAEA8xzB,oBACI,OAAOtx0B,KAAKqx0B,aAAcxh0B,IAAYA,GAAQ+qP,MAClD,CAEA22kB,sBACI,OAAOvx0B,KAAKqx0B,aAAcxh0B,IAAYA,GAAQogK,QAClD,CAEA8/pB,gBAAgB3ziB,GAAO,CAAC,GACpBp8R,KAAK4r0B,UAAY5r0B,KAAKsx0B,oBAClBtx0B,KAAK82M,UAAYslF,GAAKsziB,UACtB1v0B,KAAK82M,QAAQi5nB,gBAAgB3ziB,GAErC,CAEAyziB,eAAezziB,GAAO,CAAC,GACnBp8R,KAAKiwK,QAAUjwK,KAAKux0B,sBAChBvx0B,KAAK82M,UAAYslF,GAAKsziB,UACtB1v0B,KAAK82M,QAAQ+4nB,eAAezziB,GAEpC,CAEAo1iB,4BAA4B32zB,IACxB7a,KAAK0u0B,oBAAsB7zzB,EAC/B,CAEA42zB,mBAAmBr1iB,IACXwxiB,GAAaxxiB,KAA0B,MAAjBA,GAAK4yiB,WAC3Bhv0B,KAAKiv0B,UAAY7yiB,GAAK4yiB,SAE9B,CAMAkB,mBAAmBR,IAEf,OAAQA,OADY1v0B,KAAK82M,UAAW92M,KAAK82M,QAAQ8jD,SACX56P,KAAK82M,QAAQw6nB,mBACvD,CAEAJ,MAAM9t0B,IACF,OAAO,IACX,CAMAwr0B,kBAAkBrF,IACdvp0B,KAAKir0B,eAAiBnxzB,MAAM2C,QAAQ8szB,IAAcA,GAAWxj0B,QAAUwj0B,GACvEvp0B,KAAKgs0B,qBA92Bb,SAAS0F,GAAkBrH,IACvB,OAAOvwzB,MAAM2C,QAAQ4tzB,IAAaK,GAAkBL,IAAaA,IAAa,IAClF,CA42BoCqH,CAAkB1x0B,KAAKir0B,eACvD,CAMA4D,uBAAuBtF,IACnBvp0B,KAAKmr0B,oBAAsBrxzB,MAAM2C,QAAQ8szB,IAAcA,GAAWxj0B,QAAUwj0B,GAC5Evp0B,KAAKks0B,0BAt2Bb,SAASyF,GAAuBxF,IAC5B,OAAOryzB,MAAM2C,QAAQ0vzB,IAAkBvB,GAAuBuB,IAC1DA,IAAkB,IAC1B,CAm2ByCwF,CAAuB3x0B,KAAKmr0B,oBACjE,EAoHJ,MAAMv1kB,WAAkB04kB,GAcpBzu0B,YAAYu3I,GAAUu2rB,GAAiBxB,IACnCrs0B,MAAM4t0B,GAAeC,IAAkBE,GAAoB1B,GAAgBwB,KAC3E3t0B,KAAKo3I,SAAWA,GAChBp3I,KAAKmx0B,mBACLnx0B,KAAKyx0B,mBAAmB9D,IACxB3t0B,KAAK4x0B,iBACL5x0B,KAAKsw0B,uBAAuB,CACxBZ,UAAU,EAIVnzkB,YAAav8P,KAAKms0B,gBAE1B,CACA0F,gBAAgBzu0B,GAAMyM,IAClB,OAAI7P,KAAKo3I,SAASh0I,IACPpD,KAAKo3I,SAASh0I,KACzBpD,KAAKo3I,SAASh0I,IAAQyM,GACtBA,GAAQyuJ,UAAUt+J,MAClB6P,GAAQ2h0B,4BAA4Bxx0B,KAAK0u0B,qBAClC7+zB,GACX,CACA0iP,WAAWnvP,GAAMyM,GAAS+L,GAAU,CAAC,GACjC5b,KAAK6x0B,gBAAgBzu0B,GAAMyM,IAC3B7P,KAAKsw0B,uBAAuB,CAAE/zkB,UAAW3gP,GAAQ2gP,YACjDv8P,KAAK0u0B,qBACT,CAcAn3rB,cAAcn0I,GAAMwY,GAAU,CAAC,GACvB5b,KAAKo3I,SAASh0I,KACdpD,KAAKo3I,SAASh0I,IAAMou0B,4BAA4B,eAC5Cxx0B,KAAKo3I,SAASh0I,IACtBpD,KAAKsw0B,uBAAuB,CAAE/zkB,UAAW3gP,GAAQ2gP,YACjDv8P,KAAK0u0B,qBACT,CACAoD,WAAW1u0B,GAAMyM,GAAS+L,GAAU,CAAC,GAC7B5b,KAAKo3I,SAASh0I,KACdpD,KAAKo3I,SAASh0I,IAAMou0B,4BAA4B,eAC5Cxx0B,KAAKo3I,SAASh0I,IAClByM,IACA7P,KAAK6x0B,gBAAgBzu0B,GAAMyM,IAC/B7P,KAAKsw0B,uBAAuB,CAAE/zkB,UAAW3gP,GAAQ2gP,YACjDv8P,KAAK0u0B,qBACT,CACAnxwB,SAASw0wB,IACL,OAAO/x0B,KAAKo3I,SAASviH,eAAek9yB,KAAgB/x0B,KAAKo3I,SAAS26rB,IAAajgjB,OACnF,CAoCAjkR,SAAS3B,GAAO0P,GAAU,CAAC,GACvBuyzB,GAAuBnu0B,MAAM,EAAMkM,IACnCP,OAAOtE,KAAK6E,IAAOvG,QAAQvC,KACvB2q0B,GAAqB/t0B,MAAM,EAAMoD,IACjCpD,KAAKo3I,SAASh0I,IAAMyK,SAAS3B,GAAM9I,IAAO,CAAEss0B,UAAU,EAAMnzkB,UAAW3gP,GAAQ2gP,WAAW,GAE9Fv8P,KAAKsw0B,uBAAuB10zB,GAChC,CAgCAo6O,WAAW9pP,GAAO0P,GAAU,CAAC,GAKZ,MAAT1P,KAEJP,OAAOtE,KAAK6E,IAAOvG,QAAQvC,KAGvB,MAAMyM,GAAU7P,KAAKo3I,SAASh0I,IAC1ByM,IACAA,GAAQmmP,WACkD9pP,GAAM9I,IAAO,CAAEss0B,UAAU,EAAMnzkB,UAAW3gP,GAAQ2gP,WAAW,GAG/Hv8P,KAAKsw0B,uBAAuB10zB,IAChC,CA0DAm0C,MAAM7jD,GAAQ,CAAC,EAAG0P,GAAU,CAAC,GACzB5b,KAAKou0B,cAAc,CAACv+zB,GAASzM,MACzByM,GAAQkgD,MAAM7jD,GAAM9I,IAAO,CAAEss0B,UAAU,EAAMnzkB,UAAW3gP,GAAQ2gP,WAAW,GAE/Ev8P,KAAK+v0B,gBAAgBn0zB,IACrB5b,KAAK6v0B,eAAej0zB,IACpB5b,KAAKsw0B,uBAAuB10zB,GAChC,CAMA8xH,cACI,OAAO1tI,KAAKgy0B,gBAAgB,CAAC,EAAG,CAAC52d,GAAKvrW,GAASzM,MAC3Cg4W,GAAIh4W,IAAQyM,GAAQ69H,cACb0tO,IAEf,CAEA62d,uBACI,IAAIC,GAAiBly0B,KAAKgy0B,iBAAgB,EAAO,CAAC3zrB,GAAS7jH,OAChDA,GAAMy3yB,wBAAgC5zrB,IAEjD,OAAI6zrB,IACAly0B,KAAKsw0B,uBAAuB,CAAEZ,UAAU,IACrCwC,EACX,CAEA9D,cAAc7/wB,IACV5iD,OAAOtE,KAAKrH,KAAKo3I,UAAUzxI,QAAQmL,KAI/B,MAAMjB,GAAU7P,KAAKo3I,SAAStmI,IAC9BjB,IAAW0+C,GAAG1+C,GAASiB,GAAG,EAElC,CAEA8g0B,iBACI5x0B,KAAKou0B,cAAev+zB,KAChBA,GAAQyuJ,UAAUt+J,MAClB6P,GAAQ2h0B,4BAA4Bxx0B,KAAK0u0B,oBAAmB,EAEpE,CAEAyB,eACInw0B,KAAKkM,MAAQlM,KAAKmy0B,cACtB,CAEAd,aAAar/iB,IACT,UAAY+/iB,GAAali0B,MAAYlE,OAAO+N,QAAQ1Z,KAAKo3I,UACrD,GAAIp3I,KAAKu9D,SAASw0wB,KAAgB//iB,GAAUniR,IACxC,OAAO,EAGf,OAAO,CACX,CAEAsi0B,eAEI,OAAOny0B,KAAKgy0B,gBADF,CAAC,EACsB,CAAC52d,GAAKvrW,GAASzM,OACxCyM,GAAQiiR,SAAW9xR,KAAK08D,YACxB0+S,GAAIh4W,IAAQyM,GAAQ3D,OAEjBkvW,IAEf,CAEA42d,gBAAgBI,GAAWv3zB,IACvB,IAAI6B,GAAM01zB,GACV,YAAKhE,cAAc,CAACv+zB,GAASzM,MACzBsZ,GAAM7B,GAAG6B,GAAK7M,GAASzM,GAAI,GAExBsZ,EACX,CAEAm0zB,uBACI,UAAWkB,MAAepm0B,OAAOtE,KAAKrH,KAAKo3I,UACvC,GAAIp3I,KAAKo3I,SAAS26rB,IAAajgjB,QAC3B,OAAO,EAGf,OAAOnmR,OAAOtE,KAAKrH,KAAKo3I,UAAU3yI,OAAS,GAAKzE,KAAK08D,QACzD,CAEAw0wB,MAAM9t0B,IACF,OAAOpD,KAAKo3I,SAASviH,eAAezxB,IAChCpD,KAAKo3I,SAASh0I,IACd,IACR,EAEJ,MAAM21I,GAAmB68G,GAOnBy3kB,GAAex9zB,IAAYA,cAAmB+lP,GAoBpD,MAAMy8kB,WAAmBz8kB,IAQzB,MAAM08kB,GAAgBzi0B,IAAYA,cAAmBwi0B,GAQ/CE,GAA0B,IAAI/u0B,iBAAe,uBAAwB,CAAE+F,WAAY,OAAQnE,QAAS,IAAMot0B,KAI1GA,GAA0B,SAChC,SAASC,GAAYrv0B,GAAMiJ,IACvB,MAAO,IAAIA,GAAO8oB,KAAM/xB,GAC5B,CAQA,SAASsv0B,GAAa7i0B,GAASotI,GAAK01rB,GAAuBH,IAOvDI,GAAgB/i0B,GAASotI,IACzBA,GAAIyvrB,cAAc16kB,WAAWniP,GAAQ3D,QAIjC2D,GAAQ6sD,UAAqC,WAAzBi2wB,KACpB11rB,GAAIyvrB,cAAch2kB,mBAAmB7mP,GAAQ6sD,UA4IrD,SAASm2wB,GAAwBhj0B,GAASotI,IACtCA,GAAIyvrB,cAAc56kB,iBAAkBgoB,KAChCjqQ,GAAQij0B,cAAgBh5jB,GACxBjqQ,GAAQkj0B,gBAAiB,EACzBlj0B,GAAQ0+zB,eAAgB,EACC,WAArB1+zB,GAAQm/zB,UACRgE,GAAcnj0B,GAASotI,GAAG,EAEtC,CAlJI41rB,CAAwBhj0B,GAASotI,IAmKrC,SAASg2rB,GAAyBpj0B,GAASotI,IACvC,MAAMs5G,GAAW,CAACujB,GAAUo5jB,MAExBj2rB,GAAIyvrB,cAAc16kB,WAAW8nB,IAEzBo5jB,IACAj2rB,GAAIk2rB,kBAAkBr5jB,GAAQ,EAEtCjqQ,GAAQiiP,iBAAiByE,IAGzBt5G,GAAImvrB,mBAAmB,KACnBv8zB,GAAQuj0B,oBAAoB78kB,GAAQ,EAE5C,CAhLI08kB,CAAyBpj0B,GAASotI,IAkJtC,SAASo2rB,GAAkBxj0B,GAASotI,IAChCA,GAAIyvrB,cAAc36kB,kBAAkB,KAChCliP,GAAQ4+zB,iBAAkB,EACD,SAArB5+zB,GAAQm/zB,UAAuBn/zB,GAAQkj0B,gBACvCC,GAAcnj0B,GAASotI,IACF,WAArBptI,GAAQm/zB,UACRn/zB,GAAQ4/zB,eAAa,EAEjC,CAzJI4D,CAAkBxj0B,GAASotI,IAgD/B,SAASq2rB,GAA2Bzj0B,GAASotI,IACzC,GAAIA,GAAIyvrB,cAAch2kB,iBAAkB,CACpC,MAAM68kB,GAAoB58kB,KACtB15G,GAAIyvrB,cAAch2kB,iBAAiBC,GAAU,EAEjD9mP,GAAQ2j0B,yBAAyBD,IAGjCt2rB,GAAImvrB,mBAAmB,KACnBv8zB,GAAQ4j0B,4BAA4BF,GAAgB,EACvD,CAET,CA3DID,CAA2Bzj0B,GAASotI,GACxC,CAYA,SAASy2rB,GAAe7j0B,GAASotI,GAAK02rB,IAAkC,GACpE,MAAMrhzB,GAAO,OAUT2qH,GAAIyvrB,gBACJzvrB,GAAIyvrB,cAAc56kB,iBAAiBx/N,IACnC2qH,GAAIyvrB,cAAc36kB,kBAAkBz/N,KAExCshzB,GAAkB/j0B,GAASotI,IACvBptI,KACAotI,GAAIovrB,4BACJx8zB,GAAQ2h0B,4BAA4B,QAE5C,CACA,SAASqC,GAA0BtK,GAAYhzkB,IAC3CgzkB,GAAW5j0B,QAAS0k0B,KACZA,GAAUwJ,2BACVxJ,GAAUwJ,0BAA0Bt9kB,GAAQ,EAExD,CA4BA,SAASq8kB,GAAgB/i0B,GAASotI,IAC9B,MAAMssrB,GAAayB,GAAqBn7zB,IAClB,OAAlBotI,GAAIotrB,UACJx6zB,GAAQq/zB,cAAcrE,GAAgBtB,GAAYtsrB,GAAIotrB,YAE3B,mBAAfd,IAQZ15zB,GAAQq/zB,cAAc,CAAC3F,KAE3B,MAAMuE,GAAkB5C,GAA0Br7zB,IACvB,OAAvBotI,GAAIkvrB,eACJt8zB,GAAQs/zB,mBAAmBtE,GAAgBiD,GAAiB7wrB,GAAIkvrB,iBAEhC,mBAApB2B,IACZj+zB,GAAQs/zB,mBAAmB,CAACrB,KAGhC,MAAMgG,GAAoB,IAAMjk0B,GAAQyg0B,yBACxCuD,GAA0B52rB,GAAIgurB,eAAgB6I,IAC9CD,GAA0B52rB,GAAIkurB,oBAAqB2I,GACvD,CAUA,SAASF,GAAkB/j0B,GAASotI,IAChC,IAAI82rB,IAAmB,EACvB,GAAgB,OAAZlk0B,GAAkB,CAClB,GAAsB,OAAlBotI,GAAIotrB,UAAoB,CACxB,MAAMd,GAAayB,GAAqBn7zB,IACxC,GAAIiK,MAAM2C,QAAQ8szB,KAAeA,GAAW9k0B,OAAS,EAAG,CAEpD,MAAMuv0B,GAAoBzK,GAAWxxzB,OAAQsyzB,IAAcA,KAAcptrB,GAAIotrB,WACzE2J,GAAkBvv0B,SAAW8k0B,GAAW9k0B,SACxCsv0B,IAAmB,EACnBlk0B,GAAQq/zB,cAAc8E,IAAiB,EAInD,GAA2B,OAAvB/2rB,GAAIkvrB,eAAyB,CAC7B,MAAM2B,GAAkB5C,GAA0Br7zB,IAClD,GAAIiK,MAAM2C,QAAQqxzB,KAAoBA,GAAgBrp0B,OAAS,EAAG,CAE9D,MAAMwv0B,GAAyBnG,GAAgB/1zB,OAAQo0zB,IAAmBA,KAAmBlvrB,GAAIkvrB,gBAC7F8H,GAAuBxv0B,SAAWqp0B,GAAgBrp0B,SAClDsv0B,IAAmB,EACnBlk0B,GAAQs/zB,mBAAmB8E,IAAsB,GAMjE,MAAM3hzB,GAAO,OACbuhzB,UAA0B52rB,GAAIgurB,eAAgB34yB,IAC9CuhzB,GAA0B52rB,GAAIkurB,oBAAqB74yB,IAC5CyhzB,EACX,CAmBA,SAASf,GAAcnj0B,GAASotI,IACxBptI,GAAQ0+zB,eACR1+zB,GAAQ6sP,cACZ7sP,GAAQhC,SAASgC,GAAQij0B,cAAe,CAAEt2kB,uBAAuB,IACjEv/G,GAAIk2rB,kBAAkBtj0B,GAAQij0B,eAC9Bjj0B,GAAQkj0B,gBAAiB,CAC7B,CAuBA,SAASmB,GAAmBrk0B,GAASotI,IAGjC21rB,GAAgB/i0B,GAASotI,GAC7B,CAmCA,SAASk3rB,GAAkBxryB,GAASyryB,IAChC,IAAKzryB,GAAQ9T,eAAe,SACxB,OAAO,EACX,MAAMmwH,GAASr8G,GAAQu/C,MACvB,QAAI88D,GAAO2hT,kBAEHh7b,OAAOw9E,GAAGirvB,GAAWpvrB,GAAOt5D,aACxC,CAMA,SAAS2ovB,GAAoB5lmB,GAAMkwhB,IAC/BlwhB,GAAKwjmB,uBACLtzE,GAAWh5vB,QAASs3I,KAChB,MAAMptI,GAAUotI,GAAIptI,QACK,WAArBA,GAAQm/zB,UAAyBn/zB,GAAQkj0B,iBACzC91rB,GAAIk2rB,kBAAkBtj0B,GAAQij0B,eAC9Bjj0B,GAAQkj0B,gBAAiB,IAGrC,CAEA,SAASuB,GAAoBr3rB,GAAKs3rB,IAC9B,IAAKA,GACD,OAAO,KAGX,IAAIC,GACAC,GACAC,GAgBJ,OApBK56zB,MAAM2C,QAAQ83zB,IAKnBA,GAAe5u0B,QAAS4V,KAChBA,GAAE1b,cAAgBso0B,EAClBqM,GAAkBj5zB,GA1B9B,SAASo5zB,GAAkBjI,IAGvB,OAAO/g0B,OAAO2vb,eAAeoxY,GAAc7s0B,eAAiBko0B,EAChE,CAwBiB4M,CAAkBp5zB,IAGvBk5zB,GAAkBl5zB,GAKlBm5zB,GAAiBn5zB,KAGrBm5zB,IAEAD,IAEAD,IAKG,IACX,CAkBA,MAAMI,GAA0B,CAC5Blx0B,QAAS6o0B,EACT93zB,aAAay9O,gBAAW,IAAM2ilB,KAE5BC,GAAqB,KAAMr+yB,QAAQC,UAAd,GAC3B,IAgEMm+yB,GAAM,MAAZ,MAAMA,WAAetI,EACjB1s0B,YAAY0p0B,GAAYuE,GAAiB6E,IACrC7y0B,QACAE,KAAK2y0B,qBAAuBA,GAK5B3y0B,KAAKit0B,WAAY,EACjBjt0B,KAAK+00B,YAAc,IAAIht0B,IAKvB/H,KAAKg10B,SAAW,IAAIjtyB,eACpB/nC,KAAKyuO,KACD,IAAImnB,GAAU,CAAC,EAAG80kB,GAAkBnB,IAAaqB,GAAuBkD,IAChF,CAEAzhxB,kBACIrsD,KAAKyx0B,oBACT,CAKIjF,oBACA,OAAOxs0B,IACX,CAKI6P,cACA,OAAO7P,KAAKyuO,IAChB,CAMIt5M,WACA,MAAO,EACX,CAKIiiH,eACA,OAAOp3I,KAAKyuO,KAAKr3F,QACrB,CAQAm7G,WAAWt1G,IACP63rB,GAAkB3w0B,KAAK,KACnB,MAAM6yB,GAAYh3B,KAAKi10B,eAAeh4rB,GAAI9nH,MAC1C8nH,GAAIptI,QACAmnB,GAAU66yB,gBAAgB50rB,GAAI75I,KAAM65I,GAAIptI,SAC5C6i0B,GAAaz1rB,GAAIptI,QAASotI,GAAKj9I,KAAK2y0B,sBACpC11rB,GAAIptI,QAAQyg0B,uBAAuB,CAAE/zkB,WAAW,IAChDv8P,KAAK+00B,YAAYzs0B,IAAI20I,GAAG,EAEhC,CAOAswZ,WAAWtwZ,IACP,OAAOj9I,KAAKyuO,KAAKzqO,IAAIi5I,GAAI9nH,KAC7B,CAOAoiH,cAAc0F,IACV63rB,GAAkB3w0B,KAAK,KACnB,MAAM6yB,GAAYh3B,KAAKi10B,eAAeh4rB,GAAI9nH,MACtC6B,IACAA,GAAUugH,cAAc0F,GAAI75I,MAEhCpD,KAAK+00B,YAAYtt0B,OAAOw1I,GAAG,EAEnC,CAOAi4rB,aAAaj4rB,IACT63rB,GAAkB3w0B,KAAK,KACnB,MAAM6yB,GAAYh3B,KAAKi10B,eAAeh4rB,GAAI9nH,MACpCmJ,GAAQ,IAAIs3N,GAAU,CAAC,GAC7Bs+kB,GAAmB51yB,GAAO2+G,IAC1BjmH,GAAU66yB,gBAAgB50rB,GAAI75I,KAAMk7B,IACpCA,GAAMgyyB,uBAAuB,CAAE/zkB,WAAW,GAAO,EAEzD,CAOA44kB,gBAAgBl4rB,IACZ63rB,GAAkB3w0B,KAAK,KACnB,MAAM6yB,GAAYh3B,KAAKi10B,eAAeh4rB,GAAI9nH,MACtC6B,IACAA,GAAUugH,cAAc0F,GAAI75I,KAAI,EAG5C,CAOAi0I,aAAa4F,IACT,OAAOj9I,KAAKyuO,KAAKzqO,IAAIi5I,GAAI9nH,KAC7B,CAOAigzB,YAAYn4rB,GAAK/wI,IACb4o0B,GAAkB3w0B,KAAK,KACNnE,KAAKyuO,KAAKzqO,IAAIi5I,GAAI9nH,MAC1BtnB,SAAS3B,GAAK,EAE3B,CAOA2B,SAAS3B,IACLlM,KAAK6P,QAAQhC,SAAS3B,GAC1B,CAQAmp0B,SAASx1kB,IACL,YAAKotkB,WAAY,EACjBoH,GAAoBr00B,KAAKyuO,KAAMzuO,KAAK+00B,aACpC/00B,KAAKg10B,SAAStryB,KAAKm2N,IAGe,WAA3BA,IAAQ99P,QAAQ2b,MAC3B,CAKA43zB,UACIt10B,KAAKu10B,WACT,CAOAA,UAAUrp0B,IACNlM,KAAKyuO,KAAK1+K,MAAM7jD,IAChBlM,KAAKit0B,WAAY,CACrB,CACAwE,qBACQzx0B,KAAK4b,SAAoC,MAAzB5b,KAAK4b,QAAQozzB,WAC7Bhv0B,KAAKyuO,KAAKwgmB,UAAYjv0B,KAAK4b,QAAQozzB,SAE3C,CACAiG,eAAe9/yB,IACXA,UAAKnkB,MACEmkB,GAAK1wB,OAASzE,KAAKyuO,KAAKzqO,IAAImxB,IAAQn1B,KAAKyuO,IACpD,EAEJommB,UAAO5v0B,UAAI,4BAAwF4v0B,IAj3GQ1v0B,8BAi3GgByj0B,GAAa,IAj3G7Bzj0B,8BAi3GsE0j0B,GAAmB,IAj3GzF1j0B,8BAi3GkIot0B,GAAuB,KACpQsC,GAAOvqyB,UAl3GoGnlC,8BAAE,MAk3GtB0v0B,GAAMtqyB,sHAl3GcplC,uBAAE,6BAk3GtB6Q,eAAgB,EAl3GI7Q,CAk3GJ,0BAAhB6Q,YAAS,6GAl3GW7Q,+BAk3GsO,CAACyv0B,KAl3GvOzv0B,0CAgrGrG0v0B,EAAM,KAoOZ,SAASW,GAAeh5zB,GAAMlc,IAC1B,MAAM+Q,GAAQmL,GAAKtL,QAAQ5Q,IACvB+Q,IAAQ,GACRmL,GAAKrL,OAAOE,GAAO,EAC3B,CAEA,SAASok0B,GAAmBC,IACxB,MAA4B,iBAAdA,IAAwC,OAAdA,IACF,IAAlC/p0B,OAAOtE,KAAKqu0B,IAAWjx0B,QAAgB,UAAWix0B,IAAa,aAAcA,EACrF,CACA,MAAM7/kB,GAAe,cAA0By4kB,GAC3Czu0B,YAEA610B,GAAY,KAAM/H,GAAiBxB,IAC/Brs0B,MAAM4t0B,GAAeC,IAAkBE,GAAoB1B,GAAgBwB,KAE3E3t0B,KAAKkd,aAAe,KAEpBld,KAAKi8b,UAAY,GAEjBj8b,KAAK+y0B,gBAAiB,EACtB/y0B,KAAK210B,gBAAgBD,IACrB110B,KAAKyx0B,mBAAmB9D,IACxB3t0B,KAAKmx0B,mBACLnx0B,KAAKsw0B,uBAAuB,CACxBZ,UAAU,EAKVnzkB,YAAav8P,KAAKms0B,iBAElByB,GAAaD,MACZA,GAAgBiI,aAAejI,GAAgBkI,yBAE5C710B,KAAKkd,aADLu4zB,GAAmBC,IACCA,GAAUxp0B,MAGVwp0B,GAGhC,CACA7n0B,SAAS3B,GAAO0P,GAAU,CAAC,GACvB5b,KAAKkM,MAAQlM,KAAK8y0B,cAAgB5m0B,GAC9BlM,KAAKi8b,UAAUx3b,SAA4C,IAAlCmX,GAAQ4gP,uBACjCx8P,KAAKi8b,UAAUt2b,QAAS0q0B,IAAaA,GAASrw0B,KAAKkM,OAAyC,IAAlC0P,GAAQ6gP,wBAEtEz8P,KAAKsw0B,uBAAuB10zB,GAChC,CACAo6O,WAAW9pP,GAAO0P,GAAU,CAAC,GACzB5b,KAAK6N,SAAS3B,GAAO0P,GACzB,CACAm0C,MAAM2lxB,GAAY110B,KAAKkd,aAActB,GAAU,CAAC,GAC5C5b,KAAK210B,gBAAgBD,IACrB110B,KAAK8v0B,eAAel0zB,IACpB5b,KAAK4v0B,gBAAgBh0zB,IACrB5b,KAAK6N,SAAS7N,KAAKkM,MAAO0P,IAC1B5b,KAAK+y0B,gBAAiB,CAC1B,CAEA5C,eAAiB,CAEjBkB,aAAar/iB,IACT,OAAO,CACX,CAEA6+iB,uBACI,OAAO7w0B,KAAK08D,QAChB,CACAo1L,iBAAiBj3O,IACb7a,KAAKi8b,UAAUrzb,KAAKiS,GACxB,CAEAu4zB,oBAAoBv4zB,IAChB26zB,GAAex10B,KAAKi8b,UAAWphb,GACnC,CACA24zB,yBAAyB34zB,IACrB7a,KAAK2u0B,kBAAkB/l0B,KAAKiS,GAChC,CAEA44zB,4BAA4B54zB,IACxB26zB,GAAex10B,KAAK2u0B,kBAAmB9zzB,GAC3C,CAEAuzzB,cAAc7/wB,IAAM,CAEpB0jxB,uBACI,QAAsB,WAAlBjy0B,KAAKgv0B,WACDhv0B,KAAKuu0B,eACLvu0B,KAAK08P,cACL18P,KAAKyu0B,iBACLzu0B,KAAKyv0B,iBACLzv0B,KAAK+y0B,kBACL/y0B,KAAK6N,SAAS7N,KAAK8y0B,cAAe,CAAEpD,UAAU,EAAMlzkB,uBAAuB,IACpE,GAInB,CACAm5kB,gBAAgBD,IACRD,GAAmBC,KACnB110B,KAAKkM,MAAQlM,KAAK8y0B,cAAgB4C,GAAUxp0B,MAC5Cwp0B,GAAUh5wB,SAAW18D,KAAK2iF,QAAQ,CAAE+svB,UAAU,EAAMnzkB,WAAW,IAC3Dv8P,KAAKozP,OAAO,CAAEs8kB,UAAU,EAAMnzkB,WAAW,KAG7Cv8P,KAAKkM,MAAQlM,KAAK8y0B,cAAgB4C,EAE1C,GAEEhglB,GAAqBG,GAOrBiglB,GAAiBjm0B,IAAYA,cAAmBgmP,GAEtD,IAMMkglB,GAA0B,MAAhC,MAAMA,WAAmCxJ,EAErCtjyB,WACIjpC,KAAKg20B,mBAELh20B,KAAKws0B,cAAc0I,aAAal10B,KACpC,CAEA0H,cACQ1H,KAAKws0B,eAELxs0B,KAAKws0B,cAAc2I,gBAAgBn10B,KAE3C,CAKI6P,cACA,OAAO7P,KAAKws0B,cAAcn1rB,aAAar3I,KAC3C,CAKIm1B,WACA,OAAOs9yB,GAAyB,MAAbzy0B,KAAKoD,KAAepD,KAAKoD,KAAOpD,KAAKoD,KAAKkT,WAAYtW,KAAK82M,QAClF,CAKI01nB,oBACA,OAAOxs0B,KAAK82M,QAAU92M,KAAK82M,QAAQ01nB,cAAgB,IACvD,CAEAwJ,mBAAqB,EAEzBD,UAA2B9w0B,UAAI,qDAvjH4EE,kCAujHY4w0B,MAA0Bt6zB,IAA1Bs6zB,GAA0B,EAAlH,GAC/BA,GAA2BzryB,UAxjHgFnlC,8BAAE,MAwjHF4w0B,GAA0BvvzB,UAxjH1BrhB,0CAihHrG4w0B,EAA0B,KAyFhC,MAAME,GAAqB,CACvBvy0B,QAAS6o0B,EACT93zB,aAAay9O,gBAAW,IAAMgklB,KAElC,IA0BMA,GAAY,MAAlB,MAAMA,WAAqBH,GACvBl20B,YAAYwM,GAAQk9zB,GAAYuE,IAC5Bhu0B,QACAE,KAAK82M,QAAUzqM,GACfrM,KAAK+r0B,eAAexC,IACpBvp0B,KAAKis0B,oBAAoB6B,GAC7B,CAEAkI,mBAKA,EAEJE,UAAajx0B,UAAI,4BAAwFix0B,IAvpHE/w0B,8BAupH4Bon0B,EAAgB,GAvpH5Cpn0B,8BAupHqFyj0B,GAAa,IAvpHlGzj0B,8BAupH2I0j0B,GAAmB,MACzQqN,GAAa5ryB,UAxpH8FnlC,8BAAE,MAwpHhB+w0B,GAAY3ryB,6GAxpHEplC,+BAwpHmF,CAAC8w0B,KAxpHpF9w0B,0CAwoHrG+w0B,EAAY,KA2ClB,MAAMC,GAAuB,CACzBzy0B,QAAS+o0B,EACTh4zB,aAAay9O,gBAAW,IAAMkklB,KAmB5BC,GAAmB,KAAM5/yB,QAAQC,UAAd,GACzB,IAqFM0/yB,GAAO,MAAb,MAAMA,WAAgB3J,EAClB5s0B,YAAYwM,GAAQk9zB,GAAYuE,GAAiByG,GAAgB+B,GAAoB3D,IACjF7y0B,QACAE,KAAKs20B,mBAAqBA,GAC1Bt20B,KAAK2y0B,qBAAuBA,GAC5B3y0B,KAAK6P,QAAU,IAAIgmP,GAEnB71P,KAAKu20B,aAAc,EAMnBv20B,KAAKsa,OAAS,IAAIytB,eAClB/nC,KAAK82M,QAAUzqM,GACfrM,KAAK+r0B,eAAexC,IACpBvp0B,KAAKis0B,oBAAoB6B,IACzB9t0B,KAAK0s0B,cAAgB4H,GAAoBt00B,EAAMu00B,GACnD,CAEA7ryB,YAAYC,IAER,GADA3oC,KAAKw20B,mBACAx20B,KAAKu20B,aAAe,SAAU5tyB,GAAS,CACxC,GAAI3oC,KAAKu20B,cACLv20B,KAAKy20B,aACDz20B,KAAKws0B,eAAe,CAKpB,MAAMkK,GAAU/tyB,GAAQvlC,KAAQylC,cAChC7oC,KAAKws0B,cAAcj1rB,cAAc,CAAEn0I,KAAMsz0B,GAASvhzB,KAAMn1B,KAAK220B,SAASD,KAAU,CAGxF120B,KAAK420B,eAAa,CAElB,eAAgBjuyB,IAChB3oC,KAAK620B,gBAAgBluyB,IAErBwryB,GAAkBxryB,GAAS3oC,KAAKo00B,aAChCp00B,KAAKmw0B,aAAanw0B,KAAKkoF,OACvBloF,KAAKo00B,UAAYp00B,KAAKkoF,MAE9B,CAEAxgF,cACI1H,KAAKws0B,eAAiBxs0B,KAAKws0B,cAAcj1rB,cAAcv3I,KAC3D,CAMIm1B,WACA,OAAOn1B,KAAK220B,SAAS320B,KAAKoD,KAC9B,CAKIop0B,oBACA,OAAOxs0B,KAAK82M,QAAU92M,KAAK82M,QAAQ01nB,cAAgB,IACvD,CAOA2G,kBAAkBr5jB,IACd95Q,KAAKo00B,UAAYt6jB,GACjB95Q,KAAKsa,OAAOovB,KAAKowO,GACrB,CACA88jB,gBACI520B,KAAKyx0B,qBACLzx0B,KAAK820B,gBAAkB920B,KAAK+20B,mBAAqB/20B,KAAKws0B,cAAcj6kB,WAAWvyP,MAC/EA,KAAKu20B,aAAc,CACvB,CACA9E,qBACQzx0B,KAAK4b,SAAoC,MAAzB5b,KAAK4b,QAAQozzB,WAC7Bhv0B,KAAK6P,QAAQo/zB,UAAYjv0B,KAAK4b,QAAQozzB,SAE9C,CACA8H,gBACI,OAAQ920B,KAAK82M,YAAc92M,KAAK4b,UAAW5b,KAAK4b,QAAQumsB,WAC5D,CACA40H,mBACIrE,GAAa1y0B,KAAK6P,QAAS7P,KAAMA,KAAK2y0B,sBACtC3y0B,KAAK6P,QAAQyg0B,uBAAuB,CAAE/zkB,WAAW,GACrD,CACAi6kB,kBACSx20B,KAAK820B,iBACN920B,KAAKg20B,mBAETh20B,KAAKy20B,YACT,CACAT,mBAUA,CACAS,aACQz20B,KAAK4b,SAAW5b,KAAK4b,QAAQxY,OAC7BpD,KAAKoD,KAAOpD,KAAK4b,QAAQxY,MACxBpD,KAAK820B,eAGd,CACA3G,aAAajk0B,IACTmq0B,GAAgBly0B,KAAK,KACjBnE,KAAK6P,QAAQhC,SAAS3B,GAAO,CAAEuwP,uBAAuB,IACtDz8P,KAAKs20B,oBAAoBjsyB,cAAY,EAE7C,CACAwsyB,gBAAgBluyB,IACZ,MAAMquyB,GAAgBruyB,GAAQguN,WAAcjrK,aAEtCirK,GAA+B,IAAlBqglB,KAAkB,EAAK5zxB,yBAAiB4zxB,IAC3DX,GAAgBly0B,KAAK,KACbwyP,KAAe32P,KAAK6P,QAAQ6sD,SAC5B18D,KAAK6P,QAAQ8yE,WAEPg0K,IAAc32P,KAAK6P,QAAQ6sD,UACjC18D,KAAK6P,QAAQujP,SAEjBpzP,KAAKs20B,oBAAoBjsyB,cAAY,EAE7C,CACAssyB,SAAS5E,IACL,OAAO/x0B,KAAK82M,QAAU27nB,GAAYV,GAAa/x0B,KAAK82M,SAAW,CAACi7nB,GACpE,EAEJqE,UAAQnx0B,UAAI,4BAAwFmx0B,IAx6HOjx0B,8BAw6HkBon0B,EAAgB,GAx6HlCpn0B,8BAw6H2Eyj0B,GAAa,IAx6HxFzj0B,8BAw6HiI0j0B,GAAmB,IAx6HpJ1j0B,8BAw6H6L8sP,GAAiB,IAx6H9M9sP,8BAw6HuPojC,oBAAiB,GAx6HxQpjC,8BAw6HqSot0B,GAAuB,KACva6D,GAAQ9ryB,UAz6HmGnlC,8BAAE,MAy6HrBix0B,GAAO7ryB,iQAz6HYplC,+BAy6H+O,CAACgx0B,KAz6HhPhx0B,2EA8xHrGix0B,EAAO,KAuNPa,GAAa,MAAnB,MAAMA,IAENA,UAAchy0B,UAAI,4BAAwFgy0B,GAAa,EACvHA,GAAc3syB,UAx/H6FnlC,8BAAE,MAw/Hf8x0B,GAAa1syB,qFAAgG,MAHrM0syB,EAAa,KAYnB,MAAMC,GAAwB,CAC1Bxz0B,QAASuuP,GACTx9O,aAAay9O,gBAAW,IAAMillB,GAC9Bty0B,OAAO,GAEX,IAwBMsy0B,EAAmB,MAAzB,MAAMA,WAA4BpP,GAK9B/1kB,WAAW9lP,IAGPlM,KAAK0N,YAAY,QADOxB,IAAgB,GAE5C,CAKA4lP,iBAAiBj3O,IACb7a,KAAKu2P,SAAYrqP,KACb2O,GAAY,IAAT3O,GAAc,KAAOgzD,WAAWhzD,IAAM,CAEjD,EAEJir0B,UAAoBly0B,UAAI,qDAljImFE,kCAkjIKgy0B,MAAmB17zB,IAAnB07zB,GAAmB,EAA3G,GACxBA,GAAoB7syB,UAnjIuFnlC,8BAAE,MAmjITgy0B,GAAmB5syB,gLAnjIZplC,uBAAE,4BAmjIT6Q,4BAA6B,EAnjItB7Q,CAmjIsB,yBAA7B6Q,cAAW,cAnjIJ7Q,+BAmjIgO,CAAC+x0B,KAnjIjO/x0B,0CA8hIrGgy0B,EAAmB,KA+BzB,MAAMC,EAAuB,CACzB1z0B,QAASuuP,GACTx9O,aAAay9O,gBAAW,IAAMmllB,GAC9Bxy0B,OAAO,GAQX,IAMMyy0B,EAA0B,MAAhC,MAAMA,IAENA,UAA2Bry0B,UAAI,4BAAwFqy0B,GAA0B,EACjJA,GAA2Bti0B,UAjlIgF7P,6BAAE,MAilIWmy0B,KACxHA,GAA2Bri0B,UAllIgF9P,6BAAE,IA8kIvGmy0B,EAA0B,KAY1BC,EAAoB,MAA1B,MAAMA,GACF130B,cACIG,KAAKw30B,WAAa,EACtB,CAKAlv0B,IAAIuH,GAAS4n0B,IACTz30B,KAAKw30B,WAAW5u0B,KAAK,CAACiH,GAAS4n0B,IACnC,CAKA720B,OAAO620B,IACH,QAASjz0B,GAAIxE,KAAKw30B,WAAW/y0B,OAAS,EAAGD,IAAK,IAAKA,GAC/C,GAAIxE,KAAKw30B,WAAWhz0B,IAAG,KAAOiz0B,GAE1B,YADAz30B,KAAKw30B,WAAWrm0B,OAAO3M,GAAG,EAItC,CAKA+2H,OAAOk8sB,IACHz30B,KAAKw30B,WAAW7x0B,QAAS2xB,KACjBt3B,KAAK030B,aAAapgzB,GAAGmgzB,KAAangzB,GAAE,KAAOmgzB,IAC3CngzB,GAAE,GAAGqgzB,YAAYF,GAASvr0B,MAAK,EAG3C,CACAwr0B,aAAaE,GAAaH,IACtB,QAAKG,GAAY,GAAG/n0B,SAEb+n0B,GAAY,GAAG9goB,UAAY2goB,GAASI,SAAS/goB,SAChD8goB,GAAY,GAAGx00B,OAASq00B,GAASr00B,IACzC,EAEJm00B,UAAqBty0B,UAAI,4BAAwFsy0B,GAAoB,EACrIA,GAAqBry0B,WApoIsFC,+BAAE,OAooIQoy0B,GAAoBny0B,QAApBmy0B,GAAoB,qBAAcD,IA1CjJC,EAAoB,KAmEpBF,EAAyB,MAA/B,MAAMA,WAAkCtP,GACpClo0B,YAAY+K,GAAU8zQ,GAAYo5jB,GAAWhtyB,IACzChrC,MAAM8K,GAAU8zQ,IAChB1+Q,KAAK830B,UAAYA,GACjB930B,KAAK8qC,UAAYA,GACjB9qC,KAAK+30B,uBAAwB,EAQ7B/30B,KAAKu2P,SAAW,OAChBv2P,KAAK2y0B,wBAAuBjxzB,UAAO6wzB,GAAyB,CAAE5wzB,UAAU,KAAW6wzB,EACvF,CAEAvpyB,WACIjpC,KAAK630B,SAAW730B,KAAK8qC,UAAU9mC,IAAIyo0B,GACnCzs0B,KAAKy20B,aACLz20B,KAAK830B,UAAUxv0B,IAAItI,KAAK630B,SAAU730B,KACtC,CAEA0H,cACI1H,KAAK830B,UAAUl30B,OAAOZ,KAC1B,CAKAgyP,WAAW9lP,IACPlM,KAAKijF,OAAS/2E,KAAUlM,KAAKkM,MAC7BlM,KAAK0N,YAAY,UAAW1N,KAAKijF,OACrC,CAKA6uK,iBAAiBj3O,IACb7a,KAAKg40B,IAAMn9zB,GACX7a,KAAKu2P,SAAW,KACZ17O,GAAG7a,KAAKkM,OACRlM,KAAK830B,UAAUv8sB,OAAOv7H,KAAI,CAElC,CAEA02P,iBAAiBC,KAmBT32P,KAAK+30B,uBAAyBphlB,IACA,8BAA9B32P,KAAK2y0B,uBACL3y0B,KAAK0N,YAAY,WAAYipP,IAEjC32P,KAAK+30B,uBAAwB,CACjC,CAMAJ,YAAYzr0B,IACRlM,KAAKgyP,WAAW9lP,GACpB,CACAuq0B,cAKSz20B,KAAKoD,MAAQpD,KAAKi40B,kBACnBj40B,KAAKoD,KAAOpD,KAAKi40B,gBACzB,EAEJZ,UAA0Bpy0B,UAAI,4BAAwFoy0B,IArvIXly0B,8BAqvIsDA,aArvItDA,8BAqvI+EA,cArvI/EA,8BAqvIyGoy0B,GArvIzGpy0B,8BAqvI0IA,YAAW,EAChQky0B,GAA0B/syB,UAtvIiFnlC,8BAAE,MAsvIHky0B,GAAyB9syB,6KAtvIxBplC,uBAAE,2BAsvIH6Q,aAAU,EAtvIT7Q,CAsvIS,yBAAV6Q,cAAW,mFAtvIV7Q,+BAsvIqS,CAACiy0B,IAtvItSjy0B,0CA6pIrGky0B,EAAyB,KAyG/B,MAAMa,EAAuB,CACzBx00B,QAASuuP,GACTx9O,aAAay9O,gBAAW,IAAMimlB,IAC9Btz0B,OAAO,GAEX,IAwBMsz0B,GAAkB,MAAxB,MAAMA,WAA2BpQ,GAK7B/1kB,WAAW9lP,IACPlM,KAAK0N,YAAY,QAASwxD,WAAWhzD,IACzC,CAKA4lP,iBAAiBj3O,IACb7a,KAAKu2P,SAAYrqP,KACb2O,GAAY,IAAT3O,GAAc,KAAOgzD,WAAWhzD,IAAM,CAEjD,EAEJis0B,UAAmBlz0B,UAAI,qDArzIoFE,kCAqzIIgz0B,MAAkB18zB,IAAlB08zB,GAAkB,EAA1G,GACvBA,GAAmB7tyB,UAtzIwFnlC,8BAAE,MAszIVgz0B,GAAkB5tyB,6KAtzIVplC,uBAAE,6BAszIV6Q,4BAA6B,EAtzIrB7Q,CAszIqB,4BAA7B6Q,4BAA6B,EAtzIrB7Q,CAszIqB,yBAA7B6Q,cAAW,cAtzIH7Q,+BAszIsQ,CAAC+y0B,IAtzIvQ/y0B,0CAmyIrGgz0B,EAAkB,KAoCxB,MAAMC,GAAqC,IAAI500B,iBAAe,iCACxD600B,GAAqB,CACvB300B,QAAS+o0B,EACTh4zB,aAAay9O,gBAAW,IAAMomlB,KAElC,IAsBMA,GAAoB,MAA1B,MAAMA,WAA6B7L,EAK3B91kB,eAAWA,IAIf,CACA92P,YAAY0p0B,GAAYuE,GAAiByG,GAAgBgE,GAAuB5F,IAC5E7y0B,QACAE,KAAKu40B,sBAAwBA,GAC7Bv40B,KAAK2y0B,qBAAuBA,GAE5B3y0B,KAAKsa,OAAS,IAAIytB,eAQlB/nC,KAAKw40B,qBAAsB,EAC3Bx40B,KAAK+r0B,eAAexC,IACpBvp0B,KAAKis0B,oBAAoB6B,IACzB9t0B,KAAK0s0B,cAAgB4H,GAAoBt00B,EAAMu00B,GACnD,CAEA7ryB,YAAYC,IACR,GAAI3oC,KAAKy40B,kBAAkB9vyB,IAAU,CACjC,MAAM+vyB,GAAe/vyB,GAAQ8lM,KAAQ5lM,cACjC6vyB,IACAhF,GAAegF,GAAc140B,MAA4C,GAE7E0y0B,GAAa1y0B,KAAKyuO,KAAMzuO,KAAMA,KAAK2y0B,sBACnC3y0B,KAAKyuO,KAAK6hmB,uBAAuB,CAAE/zkB,WAAW,GAAO,CAErD43kB,GAAkBxryB,GAAS3oC,KAAKo00B,aAIhCp00B,KAAKyuO,KAAK5gO,SAAS7N,KAAKkoF,OACxBloF,KAAKo00B,UAAYp00B,KAAKkoF,MAE9B,CAEAxgF,cACQ1H,KAAKyuO,MACLilmB,GAAe1z0B,KAAKyuO,KAAMzuO,MAA4C,EAE9E,CAMIm1B,WACA,MAAO,EACX,CAKItlB,cACA,OAAO7P,KAAKyuO,IAChB,CAOA0kmB,kBAAkBr5jB,IACd95Q,KAAKo00B,UAAYt6jB,GACjB95Q,KAAKsa,OAAOovB,KAAKowO,GACrB,CACA2+jB,kBAAkB9vyB,IACd,OAAOA,GAAQ9T,eAAe,OAClC,EASJyjzB,UAAqBK,yBAA0B,EAC/CL,GAAqBrz0B,UAAI,4BAAwFqz0B,IA37INnz0B,8BA27I4Cyj0B,GAAa,IA37IzDzj0B,8BA27IkG0j0B,GAAmB,IA37IrH1j0B,8BA27I8J8sP,GAAiB,IA37I/K9sP,8BA27IwNiz0B,GAAkC,GA37I1Pjz0B,8BA27IuRot0B,GAAuB,KACzZ+F,GAAqBhuyB,UA57IsFnlC,8BAAE,MA47IRmz0B,GAAoB/tyB,qMA57IdplC,+BA47I4M,CAACkz0B,KA57I7Mlz0B,2EAk2IrGmz0B,EAAoB,KA2I1B,MAAMM,GAAwB,CAC1Bl10B,QAAS6o0B,EACT93zB,aAAay9O,gBAAW,IAAM2mlB,KAElC,IAwBMA,GAAkB,MAAxB,MAAMA,WAA2BtM,EAC7B1s0B,YAAY0p0B,GAAYuE,GAAiB6E,IACrC7y0B,QACAE,KAAK2y0B,qBAAuBA,GAK5B3y0B,KAAKit0B,WAAY,EAKjBjt0B,KAAK0u0B,oBAAsB,IAAM1u0B,KAAK840B,kBAKtC940B,KAAK2+vB,WAAa,GAKlB3+vB,KAAKyuO,KAAO,KAKZzuO,KAAKg10B,SAAW,IAAIjtyB,eACpB/nC,KAAK+r0B,eAAexC,IACpBvp0B,KAAKis0B,oBAAoB6B,GAC7B,CAEAplyB,YAAYC,IACR3oC,KAAK+40B,oBACDpwyB,GAAQ9T,eAAe,UACvB70B,KAAKg50B,oBACLh50B,KAAK840B,kBACL940B,KAAKi50B,uBACLj50B,KAAKk50B,SAAWl50B,KAAKyuO,KAE7B,CAEA/mO,cACQ1H,KAAKyuO,OACLmlmB,GAAkB5z0B,KAAKyuO,KAAMzuO,MAOzBA,KAAKyuO,KAAKigmB,sBAAwB1u0B,KAAK0u0B,qBACvC1u0B,KAAKyuO,KAAK+imB,4BAA4B,QAGlD,CAKIhF,oBACA,OAAOxs0B,IACX,CAKI6P,cACA,OAAO7P,KAAKyuO,IAChB,CAMIt5M,WACA,MAAO,EACX,CAQAo9N,WAAWt1G,IACP,MAAMgiD,GAAOj/L,KAAKyuO,KAAKzqO,IAAIi5I,GAAI9nH,MAC/Bu9yB,UAAazzoB,GAAMhiD,GAAKj9I,KAAK2y0B,sBAC7B1zoB,GAAKqxoB,uBAAuB,CAAE/zkB,WAAW,IACzCv8P,KAAK2+vB,WAAW/1vB,KAAKq0I,IACdgiD,EACX,CAOAsuW,WAAWtwZ,IACP,OAAOj9I,KAAKyuO,KAAKzqO,IAAIi5I,GAAI9nH,KAC7B,CAOAoiH,cAAc0F,IACVy2rB,GAAez2rB,GAAIptI,SAAW,KAAMotI,IAA2C,GA5hDvF,SAASk8rB,GAAiB38zB,GAAMlc,IAC5B,MAAM+Q,GAAQmL,GAAKtL,QAAQ5Q,IACvB+Q,IAAQ,GACRmL,GAAKrL,OAAOE,GAAO,EAC3B,CAyhDQ8n0B,CAAiBn50B,KAAK2+vB,WAAY1hnB,GACtC,CAMAi4rB,aAAaj4rB,IACTj9I,KAAKo50B,oBAAoBn8rB,GAC7B,CAOAk4rB,gBAAgBl4rB,IACZj9I,KAAKq50B,sBAAsBp8rB,GAC/B,CAOA5F,aAAa4F,IACT,OAAOj9I,KAAKyuO,KAAKzqO,IAAIi5I,GAAI9nH,KAC7B,CAMAmkzB,aAAar8rB,IACTj9I,KAAKo50B,oBAAoBn8rB,GAC7B,CAOAs8rB,gBAAgBt8rB,IACZj9I,KAAKq50B,sBAAsBp8rB,GAC/B,CAOAu8rB,aAAav8rB,IACT,OAAOj9I,KAAKyuO,KAAKzqO,IAAIi5I,GAAI9nH,KAC7B,CAOAigzB,YAAYn4rB,GAAK/wI,IACAlM,KAAKyuO,KAAKzqO,IAAIi5I,GAAI9nH,MAC1BtnB,SAAS3B,GAClB,CAQAmp0B,SAASx1kB,IACL,YAAKotkB,WAAY,EACjBoH,GAAoBr00B,KAAKyuO,KAAMzuO,KAAK2+vB,YACpC3+vB,KAAKg10B,SAAStryB,KAAKm2N,IAIe,WAA3BA,IAAQ99P,QAAQ2b,MAC3B,CAKA43zB,UACIt10B,KAAKu10B,WACT,CAOAA,UAAUrp0B,IACNlM,KAAKyuO,KAAK1+K,MAAM7jD,IAChBlM,KAAKit0B,WAAY,CACrB,CAEA6L,kBACI940B,KAAK2+vB,WAAWh5vB,QAAQs3I,KACpB,MAAMw8rB,GAAUx8rB,GAAIptI,QACd6p0B,GAAU150B,KAAKyuO,KAAKzqO,IAAIi5I,GAAI9nH,MAC9BskzB,KAAYC,KAGZhG,GAAe+F,IAAW,KAAMx8rB,IAM5B64rB,GAAc4D,MACdhH,GAAagH,GAASz8rB,GAAKj9I,KAAK2y0B,sBAChC11rB,GAAIptI,QAAU6p0B,OAI1B150B,KAAKyuO,KAAKmimB,oBAAoB,CAAEr0kB,WAAW,GAC/C,CACA68kB,oBAAoBn8rB,IAChB,MAAMgiD,GAAOj/L,KAAKyuO,KAAKzqO,IAAIi5I,GAAI9nH,MAC/B++yB,GAAmBj1oB,GAAMhiD,IAIzBgiD,GAAKqxoB,uBAAuB,CAAE/zkB,WAAW,GAC7C,CACA88kB,sBAAsBp8rB,IAClB,GAAIj9I,KAAKyuO,KAAM,CACX,MAAMxvC,GAAOj/L,KAAKyuO,KAAKzqO,IAAIi5I,GAAI9nH,MAC3B8pK,IApvDhB,SAAS06oB,GAAqB9p0B,GAASotI,IACnC,OAAO22rB,GAAkB/j0B,GAASotI,GACtC,CAmvDyC08rB,CAAqB16oB,GAAMhiD,KAIhDgiD,GAAKqxoB,uBAAuB,CAAE/zkB,WAAW,GAAO,CAIhE,CACA08kB,uBACIj50B,KAAKyuO,KAAK+imB,4BAA4Bxx0B,KAAK0u0B,qBACvC1u0B,KAAKk50B,UACLl50B,KAAKk50B,SAAS1H,4BAA4B,OAElD,CACAwH,oBACIpG,GAAgB5y0B,KAAKyuO,KAAMzuO,MACvBA,KAAKk50B,UACLtF,GAAkB5z0B,KAAKk50B,SAAUl50B,KAEzC,CACA+40B,oBAIA,EAEJF,UAAmB5z0B,UAAI,4BAAwF4z0B,IArxJJ1z0B,8BAqxJwCyj0B,GAAa,IArxJrDzj0B,8BAqxJ8F0j0B,GAAmB,IArxJjH1j0B,8BAqxJ0Jot0B,GAAuB,KAC5RsG,GAAmBvuyB,UAtxJwFnlC,8BAAE,MAsxJV0z0B,GAAkBtuyB,mEAtxJVplC,uBAAE,6BAsxJV6Q,eAAgB,EAtxJR7Q,CAsxJQ,0BAAhB6Q,YAAS,mGAtxJD7Q,+BAsxJyM,CAACyz0B,KAtxJ1Mzz0B,2EAygJrG0z0B,EAAkB,KAgTxB,MAAMe,GAAwB,CAC1Bl20B,QAAS6o0B,EACT93zB,aAAay9O,gBAAW,IAAM2nlB,KAElC,IA+CMA,GAAa,MAAnB,MAAMA,WAAsB9D,GACxBl20B,YAAYwM,GAAQk9zB,GAAYuE,IAC5Bhu0B,QACAE,KAAK82M,QAAUzqM,GACfrM,KAAK+r0B,eAAexC,IACpBvp0B,KAAKis0B,oBAAoB6B,GAC7B,CAEAkI,mBACQ8D,GAAkB950B,KAAK82M,QAG/B,EAEJ+ioB,UAAc500B,UAAI,4BAAwF400B,IA13JC100B,8BA03J8Bon0B,EAAgB,IA13J9Cpn0B,8BA03JuGyj0B,GAAa,IA13JpHzj0B,8BA03J6J0j0B,GAAmB,MAC3RgR,GAAcvvyB,UA33J6FnlC,8BAAE,MA23Jf000B,GAAatvyB,qFA33JAplC,+BA23JuF,CAACy00B,KA33JxFz00B,0CA42JrG000B,EAAa,KA2CnB,MAAME,GAAwB,CAC1Br20B,QAAS6o0B,EACT93zB,aAAay9O,gBAAW,IAAM8nlB,KAElC,IAwBMA,GAAa,MAAnB,MAAMA,WAAsBzN,EACxB1s0B,YAAYwM,GAAQk9zB,GAAYuE,IAC5Bhu0B,QACAE,KAAK82M,QAAUzqM,GACfrM,KAAK+r0B,eAAexC,IACpBvp0B,KAAKis0B,oBAAoB6B,GAC7B,CAMA7kyB,WACIjpC,KAAKg20B,mBACLh20B,KAAKws0B,cAAc8M,aAAat50B,KACpC,CAKA0H,cACQ1H,KAAKws0B,eACLxs0B,KAAKws0B,cAAc+M,gBAAgBv50B,KAE3C,CAKI6P,cACA,OAAO7P,KAAKws0B,cAAcgN,aAAax50B,KAC3C,CAKIws0B,oBACA,OAAOxs0B,KAAK82M,QAAU92M,KAAK82M,QAAQ01nB,cAAgB,IACvD,CAMIr3yB,WACA,OAAOs9yB,GAAyB,MAAbzy0B,KAAKoD,KAAepD,KAAKoD,KAAOpD,KAAKoD,KAAKkT,WAAYtW,KAAK82M,QAClF,CACAk/nB,mBACQ8D,GAAkB950B,KAAK82M,QAG/B,EAEJkjoB,UAAc/00B,UAAI,4BAAwF+00B,IAx+JC700B,8BAw+J8Bon0B,EAAgB,IAx+J9Cpn0B,8BAw+JuGyj0B,GAAa,IAx+JpHzj0B,8BAw+J6J0j0B,GAAmB,MAC3RmR,GAAc1vyB,UAz+J6FnlC,8BAAE,MAy+Jf600B,GAAazvyB,qFAz+JAplC,+BAy+JuF,CAAC400B,KAz+JxF500B,0CAm7JrG600B,EAAa,KAkFnB,SAASF,GAAkBzt0B,IACvB,QAASA,cAAkBwt0B,IAAoBxt0B,cAAkBws0B,IAC3Dxs0B,cAAkB2t0B,GAC5B,CAEA,MAAMC,GAAqB,CACvBv20B,QAAS+o0B,EACTh4zB,aAAay9O,gBAAW,IAAMgolB,KAElC,IAkCMA,GAAe,MAArB,MAAMA,WAAwBzN,EAKtB91kB,eAAWA,IAIf,CACA92P,YAAYwM,GAAQk9zB,GAAYuE,GAAiByG,GAAgBgE,IAC7Dz40B,QACAE,KAAKu40B,sBAAwBA,GAC7Bv40B,KAAKspf,QAAS,EAEdtpf,KAAKsa,OAAS,IAAIytB,eAQlB/nC,KAAKw40B,qBAAsB,EAC3Bx40B,KAAK82M,QAAUzqM,GACfrM,KAAK+r0B,eAAexC,IACpBvp0B,KAAKis0B,oBAAoB6B,IACzB9t0B,KAAK0s0B,cAAgB4H,GAAoBt00B,EAAMu00B,GACnD,CAEA7ryB,YAAYC,IACH3oC,KAAKspf,QACNtpf,KAAK420B,gBACLzC,GAAkBxryB,GAAS3oC,KAAKo00B,aAIhCp00B,KAAKo00B,UAAYp00B,KAAKkoF,MACtBloF,KAAKws0B,cAAc4I,YAAYp10B,KAAMA,KAAKkoF,OAElD,CAEAxgF,cACQ1H,KAAKws0B,eACLxs0B,KAAKws0B,cAAcj1rB,cAAcv3I,KAEzC,CAOAmz0B,kBAAkBr5jB,IACd95Q,KAAKo00B,UAAYt6jB,GACjB95Q,KAAKsa,OAAOovB,KAAKowO,GACrB,CAMI3kP,WACA,OAAOs9yB,GAAyB,MAAbzy0B,KAAKoD,KAAepD,KAAKoD,KAAOpD,KAAKoD,KAAKkT,WAAYtW,KAAK82M,QAClF,CAKI01nB,oBACA,OAAOxs0B,KAAK82M,QAAU92M,KAAK82M,QAAQ01nB,cAAgB,IACvD,CACAwJ,mBAYA,CACAY,gBACI520B,KAAKg20B,mBACLh20B,KAAK6P,QAAU7P,KAAKws0B,cAAcj6kB,WAAWvyP,MAC7CA,KAAKspf,QAAS,CAClB,EASJ4wV,UAAgBvB,yBAA0B,EAC1CuB,GAAgBj10B,UAAI,4BAAwFi10B,IAnpKD/00B,8BAmpKkCon0B,EAAgB,IAnpKlDpn0B,8BAmpK2Gyj0B,GAAa,IAnpKxHzj0B,8BAmpKiK0j0B,GAAmB,IAnpKpL1j0B,8BAmpK6N8sP,GAAiB,IAnpK9O9sP,8BAmpKuRiz0B,GAAkC,KACpa8B,GAAgB5vyB,UAppK2FnlC,8BAAE,MAopKb+00B,GAAe3vyB,yLAppKJplC,+BAopK0M,CAAC800B,KAppK3M900B,2EAgjKrG+00B,EAAe,KAsJrB,MAAMC,GAAwB,CAC1Bz20B,QAASuuP,GACTx9O,aAAay9O,gBAAW,IAAMkolB,IAC9Bv10B,OAAO,GAEX,SAASw10B,GAAoBnv0B,GAAIgB,IAC7B,OAAU,MAANhB,GACQ,GAAEgB,MACVA,IAA0B,iBAAVA,KAChBA,GAAQ,UACJ,GAAEhB,OAAOgB,KAAQnG,MAAM,EAAG,IACtC,CAIA,IAwDMq00B,GAA0B,MAAhC,MAAMA,WAAmCrS,GACrClo0B,cACIC,SAASC,WAETC,KAAKs60B,WAAa,IAAI500B,IAEtB1F,KAAKu60B,WAAa,EAClBv60B,KAAKw60B,aAAe7u0B,OAAOw9E,EAC/B,CAMIsxvB,gBAAY5/zB,IAIZ7a,KAAKw60B,aAAe3/zB,EACxB,CAKAm3O,WAAW9lP,IACPlM,KAAKkM,MAAQA,GACb,MACMwu0B,GAAcL,GADTr60B,KAAK260B,aAAazu0B,IACeA,IAC5ClM,KAAK0N,YAAY,QAASgt0B,GAC9B,CAKA5olB,iBAAiBj3O,IACb7a,KAAKu2P,SAAYmklB,KACb160B,KAAKkM,MAAQlM,KAAK460B,gBAAgBF,IAClC7/zB,GAAG7a,KAAKkM,MAAK,CAErB,CAEA2u0B,kBACI,OAAQ760B,KAAKu60B,cAAcjk0B,UAC/B,CAEAqk0B,aAAazu0B,IACT,UAAWhB,MAAM4O,MAAMC,KAAK/Z,KAAKs60B,WAAWjz0B,QACxC,GAAIrH,KAAKw60B,aAAax60B,KAAKs60B,WAAWt20B,IAAIkH,IAAKgB,IAC3C,OAAOhB,GAEf,OAAO,IACX,CAEA0v0B,gBAAgBF,IACZ,MAAMxv0B,GAjHd,SAAS4v0B,GAAaJ,IAClB,OAAOA,GAAY7p0B,MAAM,KAAK,EAClC,CA+GmBiq0B,CAAaJ,IACxB,OAAO160B,KAAKs60B,WAAW7g0B,IAAIvO,IAAMlL,KAAKs60B,WAAWt20B,IAAIkH,IAAMwv0B,EAC/D,EAEJN,UAA2Bn10B,UAAI,qDAv0K4EE,kCAu0KYi10B,MAA0B3+zB,IAA1B2+zB,GAA0B,EAAlH,GAC/BA,GAA2B9vyB,UAx0KgFnlC,8BAAE,MAw0KFi10B,GAA0B7vyB,mLAx0K1BplC,uBAAE,6BAw0KF6Q,4BAA6B,EAx0K7B7Q,CAw0K6B,yBAA7B6Q,cAAW,iDAx0KX7Q,+BAw0KmS,CAACg10B,KAx0KpSh10B,0CA6wKrGi10B,EAA0B,KAgF1BW,GAAc,MAApB,MAAMA,GACFl70B,YAAYo+D,GAAUwnB,GAAWu1vB,IAC7Bh70B,KAAKi+D,SAAWA,GAChBj+D,KAAKylF,UAAYA,GACjBzlF,KAAKg70B,QAAUA,GACXh70B,KAAKg70B,UACLh70B,KAAKkL,GAAKlL,KAAKg70B,QAAQH,kBAC/B,CAMII,YAAQ/u0B,IACY,MAAhBlM,KAAKg70B,UAETh70B,KAAKg70B,QAAQV,WAAW9z0B,IAAIxG,KAAKkL,GAAIgB,IACrClM,KAAKk70B,iBAAiBb,GAAoBr60B,KAAKkL,GAAIgB,KACnDlM,KAAKg70B,QAAQhplB,WAAWhyP,KAAKg70B,QAAQ9u0B,OACzC,CAMIA,UAAMA,IACNlM,KAAKk70B,iBAAiBhv0B,IAClBlM,KAAKg70B,SACLh70B,KAAKg70B,QAAQhplB,WAAWhyP,KAAKg70B,QAAQ9u0B,MAC7C,CAEAgv0B,iBAAiBhv0B,IACblM,KAAKylF,UAAU/3E,YAAY1N,KAAKi+D,SAASjb,cAAe,QAAS92C,GACrE,CAEAxE,cACQ1H,KAAKg70B,UACLh70B,KAAKg70B,QAAQV,WAAW7y0B,OAAOzH,KAAKkL,IACpClL,KAAKg70B,QAAQhplB,WAAWhyP,KAAKg70B,QAAQ9u0B,OAE7C,EAEJ6u0B,UAAe910B,UAAI,4BAAwF810B,IAv4KA510B,8BAu4KgCA,cAv4KhCA,8BAu4K0DA,aAv4K1DA,8BAu4KmFi10B,GAA0B,KACxNW,GAAezwyB,UAx4K4FnlC,8BAAE,MAw4Kd410B,GAAcxwyB,kEA3CvGwwyB,EAAc,KA2DpB,MAAMI,GAAiC,CACnCz30B,QAASuuP,GACTx9O,aAAay9O,gBAAW,IAAMkplB,IAC9Bv20B,OAAO,GAEX,SAASw20B,GAAkBnw0B,GAAIgB,IAC3B,OAAU,MAANhB,GACQ,GAAEgB,MACO,iBAAVA,KACPA,GAAS,IAAGA,OACZA,IAA0B,iBAAVA,KAChBA,GAAQ,UACJ,GAAEhB,OAAOgB,KAAQnG,MAAM,EAAG,IACtC,CAOA,IAmCMq10B,GAAkC,MAAxC,MAAMA,WAA2CrT,GAC7Clo0B,cACIC,SAASC,WAETC,KAAKs60B,WAAa,IAAI500B,IAEtB1F,KAAKu60B,WAAa,EAClBv60B,KAAKw60B,aAAe7u0B,OAAOw9E,EAC/B,CAMIsxvB,gBAAY5/zB,IAIZ7a,KAAKw60B,aAAe3/zB,EACxB,CAKAm3O,WAAW9lP,IAEP,IAAIov0B,GACJ,GAFAt70B,KAAKkM,MAAQA,GAET4N,MAAM2C,QAAQvQ,IAAQ,CAEtB,MAAMi/E,GAAMj/E,GAAM3E,IAAKgU,IAAMvb,KAAK260B,aAAap/zB,KAC/C+/zB,GAA4B,CAACrmnB,GAAKzmL,MAC9BymL,GAAIsmnB,aAAapwvB,GAAIj6E,QAAQs9B,GAAEl4B,aAAc,EAAE,CACnD,MAGAgl0B,GAA4B,CAACrmnB,GAAKzmL,MAC9BymL,GAAIsmnB,cAAa,EAAK,EAG9Bv70B,KAAKs60B,WAAW300B,QAAQ210B,GAC5B,CAMAxplB,iBAAiBj3O,IACb7a,KAAKu2P,SAAYtwP,KACb,MAAMstN,GAAW,GACXionB,GAAkBv10B,GAAQu10B,gBAChC,QAAwBvt0B,IAApBut0B,GAA+B,CAC/B,MAAM5/zB,GAAU4/zB,GAChB,QAASh30B,GAAI,EAAGA,GAAIoX,GAAQnX,OAAQD,KAAK,CACrC,MACM+X,GAAMvc,KAAK460B,gBADLh/zB,GAAQpX,IACiB0H,OACrCqnN,GAAS3qN,KAAK2T,GAAG,MAMpB,CACD,MAAMX,GAAU3V,GAAQ2V,QACxB,QAASpX,GAAI,EAAGA,GAAIoX,GAAQnX,OAAQD,KAAK,CACrC,MAAMywN,GAAMr5M,GAAQpX,IACpB,GAAIywN,GAAI1B,SAAU,CACd,MAAMh3M,GAAMvc,KAAK460B,gBAAgB3lnB,GAAI/oN,OACrCqnN,GAAS3qN,KAAK2T,GAAG,GAI7Bvc,KAAKkM,MAAQqnN,GACb14M,GAAG04M,GAAQ,CAEnB,CAEAsnnB,gBAAgB3u0B,IACZ,MAAMhB,IAAMlL,KAAKu60B,cAAcjk0B,WAC/B,YAAKgk0B,WAAW9z0B,IAAI0E,GAAIgB,IACjBhB,EACX,CAEAyv0B,aAAazu0B,IACT,UAAWhB,MAAM4O,MAAMC,KAAK/Z,KAAKs60B,WAAWjz0B,QACxC,GAAIrH,KAAKw60B,aAAax60B,KAAKs60B,WAAWt20B,IAAIkH,IAAI0R,OAAQ1Q,IAClD,OAAOhB,GAEf,OAAO,IACX,CAEA0v0B,gBAAgBF,IACZ,MAAMxv0B,GApId,SAASuw0B,GAAWf,IAChB,OAAOA,GAAY7p0B,MAAM,KAAK,EAClC,CAkImB4q0B,CAAWf,IACtB,OAAO160B,KAAKs60B,WAAW7g0B,IAAIvO,IAAMlL,KAAKs60B,WAAWt20B,IAAIkH,IAAI0R,OAAS89zB,EACtE,EAEJU,UAAmCn20B,UAAI,qDA9iLoEE,kCA8iLoBi20B,MAAkC3/zB,IAAlC2/zB,GAAkC,EAA1H,GACvCA,GAAmC9wyB,UA/iLwEnlC,8BAAE,MA+iLMi20B,GAAkC7wyB,6KA/iL1CplC,uBAAE,6BA+iLM6Q,sBAAuB,EA/iL/B7Q,CA+iL+B,yBAAvB6Q,cAAW,iDA/iLnB7Q,+BA+iL2R,CAACg20B,KA/iL5Rh20B,0CA+8KrGi20B,EAAkC,KAqHlCM,GAAuB,MAA7B,MAAMA,GACF770B,YAAYo+D,GAAUwnB,GAAWu1vB,IAC7Bh70B,KAAKi+D,SAAWA,GAChBj+D,KAAKylF,UAAYA,GACjBzlF,KAAKg70B,QAAUA,GACXh70B,KAAKg70B,UACLh70B,KAAKkL,GAAKlL,KAAKg70B,QAAQH,gBAAgB760B,MAE/C,CAMIi70B,YAAQ/u0B,IACY,MAAhBlM,KAAKg70B,UAETh70B,KAAK4c,OAAS1Q,GACdlM,KAAKk70B,iBAAiBG,GAAkBr70B,KAAKkL,GAAIgB,KACjDlM,KAAKg70B,QAAQhplB,WAAWhyP,KAAKg70B,QAAQ9u0B,OACzC,CAMIA,UAAMA,IACFlM,KAAKg70B,SACLh70B,KAAK4c,OAAS1Q,GACdlM,KAAKk70B,iBAAiBG,GAAkBr70B,KAAKkL,GAAIgB,KACjDlM,KAAKg70B,QAAQhplB,WAAWhyP,KAAKg70B,QAAQ9u0B,QAGrClM,KAAKk70B,iBAAiBhv0B,GAE9B,CAEAgv0B,iBAAiBhv0B,IACblM,KAAKylF,UAAU/3E,YAAY1N,KAAKi+D,SAASjb,cAAe,QAAS92C,GACrE,CAEAqv0B,aAAahonB,IACTvzN,KAAKylF,UAAU/3E,YAAY1N,KAAKi+D,SAASjb,cAAe,WAAYuwK,GACxE,CAEA7rN,cACQ1H,KAAKg70B,UACLh70B,KAAKg70B,QAAQV,WAAW7y0B,OAAOzH,KAAKkL,IACpClL,KAAKg70B,QAAQhplB,WAAWhyP,KAAKg70B,QAAQ9u0B,OAE7C,EAEJwv0B,UAAwBz20B,UAAI,4BAAwFy20B,IAxnLTv20B,8BAwnLkDA,cAxnLlDA,8BAwnL4EA,aAxnL5EA,8BAwnLqGi20B,GAAkC,KAClPM,GAAwBpxyB,UAznLmFnlC,8BAAE,MAynLLu20B,GAAuBnxyB,kEArDzHmxyB,EAAuB,KA2E7B,SAASC,GAAUzv0B,IACf,MAAwB,iBAAVA,GAAqBA,GAAQ2zI,SAAS3zI,GAAO,GAC/D,CAOA,SAAS0v0B,EAAQ1v0B,IACb,MAAwB,iBAAVA,GAAqBA,GAAQgzD,WAAWhzD,GAC1D,CACA,IAMM2v0B,GAA0B,MAAhC,MAAMA,GACFh80B,cACIG,KAAK870B,WAAajS,EACtB,CAEAnhyB,YAAYC,IACR,GAAI3oC,KAAK+70B,aAAapzyB,GAAS,CAC3B,MAAMxhB,GAAQnnB,KAAKg80B,eAAerzyB,GAAQ3oC,KAAK+70B,WAAWrwvB,cAC1D1rF,KAAKi80B,SAAWj80B,KAAK8xR,QAAQ3qQ,IAC7BnnB,KAAK870B,WAAa970B,KAAKi80B,SAAWj80B,KAAKk80B,gBAAgB/0zB,IAAS0izB,GAC5D7p0B,KAAKi8b,WACLj8b,KAAKi8b,WAAS,CAG1B,CAEAuuY,SAAS36zB,IACL,OAAO7P,KAAK870B,WAAWjs0B,GAC3B,CAEAgk0B,0BAA0Bh5zB,IACtB7a,KAAKi8b,UAAYphb,EACrB,CAQAi3Q,QAAQ3qQ,IACJ,OAAgB,MAATA,EACX,EAEJ00zB,UAA2B520B,UAAI,4BAAwF420B,GAA0B,EACjJA,GAA2BvxyB,UApsLgFnlC,8BAAE,MAosLF020B,GAA0Br1zB,UApsL1BrhB,oCAiqLrG020B,EAA0B,KA2ChC,MAAMM,GAAgB,CAClBz40B,QAASkl0B,GACTn0zB,aAAay9O,gBAAW,IAAMkqlB,IAC9Bv30B,OAAO,GAEX,IAqBMu30B,GAAY,MAAlB,MAAMA,WAAqBP,GACvBh80B,cACIC,SAASC,WAETC,KAAK+70B,UAAY,MAEjB/70B,KAAKg80B,eAAkB70zB,IAAUy0zB,EAAQz0zB,IAEzCnnB,KAAKk80B,gBAAmB/wzB,IAAQ69yB,GAAa79yB,GACjD,EAEJixzB,UAAan30B,UAAI,qDAjvL0FE,kCAivLFi30B,MAAY3g0B,IAAZ2g0B,GAAY,EAApG,GACjBA,GAAa9xyB,UAlvL8FnlC,8BAAE,MAkvLhBi30B,GAAY7xyB,sNAlvLEplC,wBAAE,6DAAFA,+BAkvL8N,CAACg30B,KAlvL/Nh30B,0CAsuLrGi30B,EAAY,KA2BlB,MAAMC,GAAgB,CAClB340B,QAASkl0B,GACTn0zB,aAAay9O,gBAAW,IAAMoqlB,IAC9Bz30B,OAAO,GAEX,IAqBMy30B,GAAY,MAAlB,MAAMA,WAAqBT,GACvBh80B,cACIC,SAASC,WAETC,KAAK+70B,UAAY,MAEjB/70B,KAAKg80B,eAAkB70zB,IAAUy0zB,EAAQz0zB,IAEzCnnB,KAAKk80B,gBAAmBprxB,IAAQi4wB,GAAaj4wB,GACjD,EAEJwrxB,UAAar30B,UAAI,qDAtyL0FE,kCAsyLFm30B,MAAY7g0B,IAAZ6g0B,GAAY,EAApG,GACjBA,GAAahyyB,UAvyL8FnlC,8BAAE,MAuyLhBm30B,GAAY/xyB,sNAvyLEplC,wBAAE,6DAAFA,+BAuyL8N,CAACk30B,KAvyL/Nl30B,0CA2xLrGm30B,EAAY,KA2BlB,MAAMC,GAAqB,CACvB740B,QAASkl0B,GACTn0zB,aAAay9O,gBAAW,IAAMsqlB,IAC9B330B,OAAO,GAML430B,GAA8B,CAChC/40B,QAASkl0B,GACTn0zB,aAAay9O,gBAAW,IAAMwqlB,IAC9B730B,OAAO,GAEX,IAmBM230B,GAAiB,MAAvB,MAAMA,WAA0BX,GAC5Bh80B,cACIC,SAASC,WAETC,KAAK+70B,UAAY,WAEjB/70B,KAAKg80B,eAAiB54xB,wBAEtBpjD,KAAKk80B,gBAAmB/0zB,IAAU8hzB,EACtC,CAEAn3iB,QAAQ3qQ,IACJ,OAAOA,EACX,EAEJq1zB,UAAkBv30B,UAAI,qDAt2LqFE,kCAs2LGq30B,MAAiB/g0B,IAAjB+g0B,GAAiB,EAAzG,GACtBA,GAAkBlyyB,UAv2LyFnlC,8BAAE,MAu2LXq30B,GAAiBjyyB,kOAv2LRplC,wBAAE,wEAAFA,+BAu2LgR,CAACo30B,KAv2LjRp30B,0CAu1LrGq30B,EAAiB,KAgDjBE,GAAyB,MAA/B,MAAMA,WAAkCF,GACpC380B,cACIC,SAASC,WAETC,KAAKk80B,gBAAmB/0zB,IAAU+hzB,EACtC,EAEJwT,UAA0Bz30B,UAAI,qDA94L6EE,kCA84LWu30B,MAAyBjh0B,IAAzBih0B,GAAyB,EAAjH,GAC9BA,GAA0BpyyB,UA/4LiFnlC,8BAAE,MA+4LHu30B,GAAyBnyyB,2OA/4LxBplC,wBAAE,2CAAFA,+BA+4L2P,CAACs30B,KA/4L5Pt30B,0CAu4LrGu30B,EAAyB,KAqB/B,MAAMC,GAAkB,CACpBj50B,QAASkl0B,GACTn0zB,aAAay9O,gBAAW,IAAM0qlB,IAC9B/30B,OAAO,GAEX,IA2BM+30B,GAAc,MAApB,MAAMA,WAAuBf,GACzBh80B,cACIC,SAASC,WAETC,KAAK+70B,UAAY,QAEjB/70B,KAAKg80B,eAAiB54xB,wBAEtBpjD,KAAKk80B,gBAAmB/0zB,IAAUgizB,CACtC,CAEAr3iB,QAAQ3qQ,IACJ,OAAOA,EACX,EAEJy1zB,UAAe330B,UAAI,qDA38LwFE,kCA28LAy30B,MAAcnh0B,IAAdmh0B,GAAc,EAAtG,GACnBA,GAAetyyB,UA58L4FnlC,8BAAE,MA48Ldy30B,GAAcryyB,gJA58LFplC,+BA48LuH,CAACw30B,KA58LxHx30B,0CA47LrGy30B,EAAc,KA8BpB,MAAMC,GAAuB,CACzBn50B,QAASkl0B,GACTn0zB,aAAay9O,gBAAW,IAAM4qlB,IAC9Bj40B,OAAO,GAEX,IAqBMi40B,GAAkB,MAAxB,MAAMA,WAA2BjB,GAC7Bh80B,cACIC,SAASC,WAETC,KAAK+70B,UAAY,YAEjB/70B,KAAKg80B,eAAkB70zB,IAAUw0zB,GAAUx0zB,IAE3CnnB,KAAKk80B,gBAAmBzS,IAAcL,EAAmBK,GAC7D,EAEJqT,UAAmB730B,UAAI,qDA//LoFE,kCA+/LI230B,MAAkBrh0B,IAAlBqh0B,GAAkB,EAA1G,GACvBA,GAAmBxyyB,UAhgMwFnlC,8BAAE,MAggMV230B,GAAkBvyyB,yKAhgMVplC,wBAAE,qFAAFA,+BAggM8N,CAAC030B,KAhgM/N130B,0CAo/LrG230B,EAAkB,KA2BxB,MAAMC,GAAuB,CACzBr50B,QAASkl0B,GACTn0zB,aAAay9O,gBAAW,IAAM8qlB,IAC9Bn40B,OAAO,GAEX,IAqBMm40B,GAAkB,MAAxB,MAAMA,WAA2BnB,GAC7Bh80B,cACIC,SAASC,WAETC,KAAK+70B,UAAY,YAEjB/70B,KAAKg80B,eAAkB70zB,IAAUw0zB,GAAUx0zB,IAE3CnnB,KAAKk80B,gBAAmBtS,IAAcP,EAAmBO,GAC7D,EAEJoT,UAAmB/30B,UAAI,qDApjMoFE,kCAojMI630B,MAAkBvh0B,IAAlBuh0B,GAAkB,EAA1G,GACvBA,GAAmB1yyB,UArjMwFnlC,8BAAE,MAqjMV630B,GAAkBzyyB,yKArjMVplC,wBAAE,qFAAFA,+BAqjM8N,CAAC430B,KArjM/N530B,0CAyiMrG630B,EAAkB,KA2BxB,MAAMC,GAAoB,CACtBv50B,QAASkl0B,GACTn0zB,aAAay9O,gBAAW,IAAMgrlB,IAC9Br40B,OAAO,GAEX,IAuBMq40B,GAAgB,MAAtB,MAAMA,WAAyBrB,GAC3Bh80B,cACIC,SAASC,WAETC,KAAK+70B,UAAY,UAEjB/70B,KAAKg80B,eAAkB70zB,IAAUA,GAEjCnnB,KAAKk80B,gBAAmB/0zB,IAAUmizB,GAAiBnizB,GACvD,EAEJ+1zB,UAAiBj40B,UAAI,qDA3mMsFE,kCA2mME+30B,MAAgBzh0B,IAAhByh0B,GAAgB,EAAxG,GACrBA,GAAiB5yyB,UA5mM0FnlC,8BAAE,MA4mMZ+30B,GAAgB3yyB,mKA5mMNplC,wBAAE,6EAAFA,+BA4mM4M,CAAC830B,KA5mM7M930B,0CAgmMrG+30B,EAAgB,KAmDhBC,GAA0B,MAAhC,MAAMA,IAENA,UAA2Bl40B,UAAI,4BAAwFk40B,GAA0B,EACjJA,GAA2Bno0B,UAtpMgF7P,6BAAE,MAspMWg40B,KAuCxHA,GAA2Blo0B,UA7rMgF9P,6BAAE,UA6rMiDmy0B,KA1CxJ6F,EAA0B,KAuHhC,MAAM5hlB,WAAkB+ykB,GAcpBzu0B,YAAYu3I,GAAUu2rB,GAAiBxB,IACnCrs0B,MAAM4t0B,GAAeC,IAAkBE,GAAoB1B,GAAgBwB,KAC3E3t0B,KAAKo3I,SAAWA,GAChBp3I,KAAKmx0B,mBACLnx0B,KAAKyx0B,mBAAmB9D,IACxB3t0B,KAAK4x0B,iBACL5x0B,KAAKsw0B,uBAAuB,CACxBZ,UAAU,EAKVnzkB,YAAav8P,KAAKms0B,gBAE1B,CAQA38qB,GAAGn+I,IACC,OAAOrR,KAAKo3I,SAASp3I,KAAKspzB,aAAaj4yB,IAC3C,CAWAzI,KAAKiH,GAAS+L,GAAU,CAAC,GACrB5b,KAAKo3I,SAASxuI,KAAKiH,IACnB7P,KAAKo90B,iBAAiBvt0B,IACtB7P,KAAKsw0B,uBAAuB,CAAE/zkB,UAAW3gP,GAAQ2gP,YACjDv8P,KAAK0u0B,qBACT,CAcA9kyB,OAAOv4B,GAAOxB,GAAS+L,GAAU,CAAC,GAC9B5b,KAAKo3I,SAASjmI,OAAOE,GAAO,EAAGxB,IAC/B7P,KAAKo90B,iBAAiBvt0B,IACtB7P,KAAKsw0B,uBAAuB,CAAE/zkB,UAAW3gP,GAAQ2gP,WACrD,CAaAjZ,SAASjyO,GAAOuK,GAAU,CAAC,GAEvB,IAAIuqxB,GAAgBnmyB,KAAKspzB,aAAaj4yB,IAClC80xB,GAAgB,IAChBA,GAAgB,GAChBnmyB,KAAKo3I,SAAS+upB,KACdnmyB,KAAKo3I,SAAS+upB,IAAeqrC,4BAA4B,QAC7Dxx0B,KAAKo3I,SAASjmI,OAAOg1xB,GAAe,GACpCnmyB,KAAKsw0B,uBAAuB,CAAE/zkB,UAAW3gP,GAAQ2gP,WACrD,CAcAu1kB,WAAWzg0B,GAAOxB,GAAS+L,GAAU,CAAC,GAElC,IAAIuqxB,GAAgBnmyB,KAAKspzB,aAAaj4yB,IAClC80xB,GAAgB,IAChBA,GAAgB,GAChBnmyB,KAAKo3I,SAAS+upB,KACdnmyB,KAAKo3I,SAAS+upB,IAAeqrC,4BAA4B,QAC7Dxx0B,KAAKo3I,SAASjmI,OAAOg1xB,GAAe,GAChCt2xB,KACA7P,KAAKo3I,SAASjmI,OAAOg1xB,GAAe,EAAGt2xB,IACvC7P,KAAKo90B,iBAAiBvt0B,KAE1B7P,KAAKsw0B,uBAAuB,CAAE/zkB,UAAW3gP,GAAQ2gP,YACjDv8P,KAAK0u0B,qBACT,CAIIjq0B,aACA,OAAOzE,KAAKo3I,SAAS3yI,MACzB,CAoCAoJ,SAAS3B,GAAO0P,GAAU,CAAC,GACvBuyzB,GAAuBnu0B,MAAM,EAAOkM,IACpCA,GAAMvG,QAAQ,CAACm0Q,GAAUzoQ,MACrB08zB,GAAqB/t0B,MAAM,EAAOqR,IAClCrR,KAAKwvJ,GAAGn+I,IAAOxD,SAASisQ,GAAU,CAAE41jB,UAAU,EAAMnzkB,UAAW3gP,GAAQ2gP,WAAW,GAEtFv8P,KAAKsw0B,uBAAuB10zB,GAChC,CAiCAo6O,WAAW9pP,GAAO0P,GAAU,CAAC,GAKZ,MAAT1P,KAEJA,GAAMvG,QAAQ,CAACm0Q,GAAUzoQ,MACjBrR,KAAKwvJ,GAAGn+I,KACRrR,KAAKwvJ,GAAGn+I,IAAO2kP,WAAW8jB,GAAU,CAAE41jB,UAAU,EAAMnzkB,UAAW3gP,GAAQ2gP,WAAW,GAG5Fv8P,KAAKsw0B,uBAAuB10zB,IAChC,CA+CAm0C,MAAM7jD,GAAQ,GAAI0P,GAAU,CAAC,GACzB5b,KAAKou0B,cAAc,CAACv+zB,GAASwB,MACzBxB,GAAQkgD,MAAM7jD,GAAMmF,IAAQ,CAAEq+zB,UAAU,EAAMnzkB,UAAW3gP,GAAQ2gP,WAAW,GAEhFv8P,KAAK+v0B,gBAAgBn0zB,IACrB5b,KAAK6v0B,eAAej0zB,IACpB5b,KAAKsw0B,uBAAuB10zB,GAChC,CAMA8xH,cACI,OAAO1tI,KAAKo3I,SAAS7vI,IAAKsI,IAAYA,GAAQ69H,cAClD,CAqCA/lI,MAAMiU,GAAU,CAAC,GACT5b,KAAKo3I,SAAS3yI,OAAS,IAE3BzE,KAAKou0B,cAAev+zB,IAAYA,GAAQ2h0B,4BAA4B,SACpExx0B,KAAKo3I,SAASjmI,OAAO,GACrBnR,KAAKsw0B,uBAAuB,CAAE/zkB,UAAW3gP,GAAQ2gP,YACrD,CAMA+sjB,aAAaj4yB,IACT,OAAOA,GAAQ,EAAIA,GAAQrR,KAAKyE,OAAS4M,EAC7C,CAEA4g0B,uBACI,IAAIC,GAAiBly0B,KAAKo3I,SAASx4H,OAAO,CAACy/H,GAAS7jH,OACzCA,GAAMy3yB,wBAAgC5zrB,IAC9C,GACH,OAAI6zrB,IACAly0B,KAAKsw0B,uBAAuB,CAAEZ,UAAU,IACrCwC,EACX,CAEA9D,cAAc7/wB,IACVvuD,KAAKo3I,SAASzxI,QAAQ,CAACkK,GAASwB,MAC5Bk9C,GAAG1+C,GAASwB,GAAK,EAEzB,CAEA8+zB,eACInw0B,KAAKkM,MACDlM,KAAKo3I,SAASr/H,OAAQlI,IAAYA,GAAQiiR,SAAW9xR,KAAK08D,UACrDn1D,IAAKsI,IAAYA,GAAQ3D,MACtC,CAEAml0B,aAAar/iB,IACT,OAAOhyR,KAAKo3I,SAASxnG,KAAM//B,IAAYA,GAAQiiR,SAAWE,GAAUniR,IACxE,CAEA+h0B,iBACI5x0B,KAAKou0B,cAAev+zB,IAAY7P,KAAKo90B,iBAAiBvt0B,IAC1D,CAEAgh0B,uBACI,UAAWhh0B,MAAW7P,KAAKo3I,SACvB,GAAIvnI,GAAQiiR,QACR,OAAO,EAEf,OAAO9xR,KAAKo3I,SAAS3yI,OAAS,GAAKzE,KAAK08D,QAC5C,CACA0gxB,iBAAiBvt0B,IACbA,GAAQyuJ,UAAUt+J,MAClB6P,GAAQ2h0B,4BAA4Bxx0B,KAAK0u0B,oBAC7C,CAEAwC,MAAM9t0B,IACF,OAAOpD,KAAKwvJ,GAAGpsJ,KAAS,IAC5B,EAEJ,MAAMi60B,GAAmB9hlB,GAOnB+hlB,GAAezt0B,IAAYA,cAAmB0rP,GAEpD,SAASgilB,EAAyB3h0B,IAC9B,QAASA,UACwB3N,IAA5B2N,GAAQkyzB,sBACkB7/zB,IAAvB2N,GAAQ2tzB,iBACat7zB,IAArB2N,GAAQozzB,SACpB,CAEA,IAYMwO,GAAW,MAAjB,MAAMA,GACF390B,cACIG,KAAKy90B,gBAAiB,CAC1B,CA2CI7H,kBACA,MAAM8H,GAAO,IAAIF,GACjBE,UAAKD,gBAAiB,EACfC,EACX,CACAp/yB,MAAM84G,GAAUx7H,GAAU,MACtB,MAAM+h0B,GAAkB390B,KAAK490B,gBAAgBxmsB,IAC7C,IAAI/pE,GAAa,CAAC,EAClB,OAAIkwwB,EAAyB3h0B,IAEzByxD,GAAazxD,GAEI,OAAZA,KAELyxD,GAAWk8vB,WAAa3tzB,GAAQyuzB,UAChCh9vB,GAAWygwB,gBAAkBlyzB,GAAQuwzB,gBAElC,IAAIv2kB,GAAU+nlB,GAAiBtwwB,GAC1C,CAgBAyuG,OAAO1kC,GAAUx7H,GAAU,MACvB,MAAM+h0B,GAAkB390B,KAAK490B,gBAAgBxmsB,IAE7C,OAAO,IAAIi7rB,GAAWsL,GAAiB/h0B,GAC3C,CA2BA/L,QAAQ6l0B,GAAW/H,GAAiBxB,IAChC,IAAI9+vB,GAAa,CAAC,EAClB,OAAKrtE,KAAKy90B,gBAGNF,EAAyB5P,IAEzBtgwB,GAAasgwB,IAIbtgwB,GAAWk8vB,WAAaoE,GACxBtgwB,GAAWygwB,gBAAkB3B,IAE1B,IAAIt2kB,GAAY6/kB,GAAW,IAAKrowB,GAAYuowB,aAAa,KAXrD,IAAI//kB,GAAY6/kB,GAAW/H,GAAiBxB,GAY3D,CAeAz9xB,MAAM0oG,GAAUu2rB,GAAiBxB,IAC7B,MAAM0R,GAAkBzmsB,GAAS7vI,IAAI+vB,IAAKt3B,KAAK890B,eAAexmzB,KAE9D,OAAO,IAAIikO,GAAUsilB,GAAiBlQ,GAAiBxB,GAC3D,CAEAyR,gBAAgBxmsB,IACZ,MAAMymsB,GAAkB,CAAC,EACzBly0B,cAAOtE,KAAK+vI,IAAUzxI,QAAQos0B,KAC1B8L,GAAgB9L,IAAe/x0B,KAAK890B,eAAe1msB,GAAS26rB,IAAY,GAErE8L,EACX,CAEAC,eAAe1msB,IACX,OAAIA,cAAoBy+G,IAGfz+G,cAAoBk3rB,GAFlBl3rB,GAKFt9H,MAAM2C,QAAQ26H,IAIZp3I,KAAK6P,QAHEunI,GAAS,GACLA,GAAS3yI,OAAS,EAAI2yI,GAAS,GAAK,KAC/BA,GAAS3yI,OAAS,EAAI2yI,GAAS,GAAK,MAIpDp3I,KAAK6P,QAAQunI,GAE5B,EAEJomsB,UAAYv40B,UAAI,4BAAwFu40B,GAAW,EACnHA,GAAYt40B,WA70N+FC,+BAAE,OA60NDq40B,GAAWp40B,QAAXo40B,GAAW,qBAAc,SA9K/HA,EAAW,KA0LXO,GAAsB,MAA5B,MAAMA,IAENA,UAAuB940B,UAAI,4BAAwF840B,GAAsB,EACzIA,GAAuB740B,WA51NoFC,+BAAE,OA41NU440B,GAAsB340B,0BAAkC,EAAMsc,UAAO87zB,IAAa5H,WAAW,aAAzD,SAHrJmI,EAAsB,KActBC,GAAkB,MAAxB,MAAMA,WAA2BR,GAC7Bl/yB,MAAM2/yB,GAAgBri0B,GAAU,MAC5B,OAAO9b,MAAMw+B,MAAM2/yB,GAAgBri0B,GACvC,CAIA/L,QAAQ6l0B,GAAW/H,GAAiBxB,IAChC,OAAOrs0B,MAAM+P,QAAQ6l0B,GAAW/H,GAAiBxB,GACrD,CAIAz9xB,MAAMuvyB,GAAgBtQ,GAAiBxB,IACnC,OAAOrs0B,MAAM4uC,MAAMuvyB,GAAgBtQ,GAAiBxB,GACxD,EAEJ6R,UAAmB/40B,UAAI,qDAx3NoFE,kCAw3NI640B,MAAkBvi0B,IAAlBui0B,GAAkB,EAA1G,GACvBA,GAAmB940B,WAz3NwFC,+BAAE,OAy3NM640B,GAAkB540B,QAAlB440B,GAAkB,qBAAc,SAlB7IA,EAAkB,KAgCxB,MAAMxqF,GAAU,IAAIC,UAAQ,UAE5B,IAYM9hU,GAAW,MAAjB,MAAMA,GASFxxb,kBAAkBi8R,IACd,MAAO,CACHtnR,SAAU68a,GACV58a,UAAW,CAAC,CACJrR,QAAS6u0B,GACTpg0B,SAAUiqR,GAAKu2iB,sBAAwBH,KAGvD,EAEJ7gZ,UAAY1sb,UAAI,4BAAwF0sb,GAAW,EACnHA,GAAY38a,UAz6N+F7P,6BAAE,MAy6NJwsb,KACzGA,GAAY18a,UA16N+F9P,6BAAE,UA06NmBg40B,MArB1HxrZ,EAAW,KA0CXmD,GAAmB,MAAzB,MAAMA,GAWF30b,kBAAkBi8R,IACd,MAAO,CACHtnR,SAAUggb,GACV//a,UAAW,CACP,CACIrR,QAAS000B,GACTjm0B,SAAUiqR,GAAK8hjB,8BAAgC,UAEnD,CACIx60B,QAAS6u0B,GACTpg0B,SAAUiqR,GAAKu2iB,sBAAwBH,KAIvD,EAEJ19Y,UAAoB7vb,UAAI,4BAAwF6vb,GAAmB,EACnIA,GAAoB9/a,UA39NuF7P,6BAAE,MA29NI2vb,KACjHA,GAAoB7/a,UA59NuF9P,6BAAE,UA49NmCg40B,MA7B1IroZ,EAAmB","names":["GenericBrowserDomAdapter","ɵDomAdapter","constructor","super","arguments","this","supportsDOMEvents","BrowserDomAdapter","static","ɵsetRootDomAdapter","onAndCancel","el","evt","listener","addEventListener","removeEventListener","dispatchEvent","remove","node","parentNode","removeChild","createElement","tagName","doc","getDefaultDocument","createHtmlDocument","document","implementation","createHTMLDocument","isElementNode","nodeType","Node","ELEMENT_NODE","isShadowRoot","DocumentFragment","getGlobalEventTarget","target","window","body","getBaseHref","href","getBaseElementHref","baseElement","querySelector","getAttribute","relativePath","url","urlParsingNode","setAttribute","pathName","pathname","charAt","resetBaseElement","getUserAgent","navigator","userAgent","getCookie","name","ɵparseCookieValue","cookie","TRANSITION_ID","InjectionToken","SERVER_TRANSITION_PROVIDERS","provide","APP_INITIALIZER","useFactory","appInitializerFactory","transitionId","injector","get","ApplicationInitStatus","donePromise","then","dom","ɵgetDOM","styles","querySelectorAll","i","length","deps","DOCUMENT","Injector","multi","BrowserXhr","build","XMLHttpRequest","ɵfac","ɵprov","i0","factory","EVENT_MANAGER_PLUGINS","EventManager","plugins","_zone","_eventNameToPlugin","Map","forEach","plugin","manager","_plugins","slice","reverse","element","eventName","handler","_findPluginFor","addGlobalEventListener","getZone","supports","set","Error","EventManagerPlugin","_doc","SharedStylesHost","usageCount","addStyles","style","changeUsageCount","onStyleAdded","removeStyles","onStyleRemoved","getAllStyles","keys","delta","map","usage","delete","ngOnDestroy","clear","DomSharedStylesHost","styleRef","hostNodes","Set","resetHostNodes","host","addStyleToHost","e","addHost","hostNode","add","removeHost","styleEl","textContent","appendChild","styleElRef","push","head","NAMESPACE_URIS","svg","xhtml","xlink","xml","xmlns","math","COMPONENT_REGEX","REMOVE_STYLES_ON_COMPONENT_DESTROY","providedIn","flattenStyles","compId","flat","s","replace","decoratePreventDefault","eventHandler","event","preventDefault","returnValue","DomRendererFactory2","eventManager","sharedStylesHost","appId","removeStylesOnCompDestory","rendererByCompId","defaultRenderer","DefaultDomRenderer2","createRenderer","type","renderer","getOrCreateRenderer","EmulatedEncapsulationDomRenderer2","applyToHost","NoneEncapsulationDomRenderer","applyStyles","id","encapsulation","ViewEncapsulation","ShadowDomRenderer","onDestroy","begin","end","APP_ID","data","Object","create","destroyNode","destroy","namespace","createElementNS","createComment","value","createText","createTextNode","parent","newChild","isTemplateNode","content","insertBefore","refChild","oldChild","selectRootElement","selectorOrNode","preserveContent","nextSibling","namespaceUri","setAttributeNS","removeAttribute","removeAttributeNS","addClass","classList","removeClass","setStyle","flags","RendererStyleFlags2","setProperty","removeStyle","removeProperty","setValue","nodeValue","listen","callback","undefined","hostEl","component","shadowRoot","attachShadow","mode","nodeOrShadowRoot","rendererUsageCount","contentAttr","shimContentAttribute","componentShortId","hostAttr","shimHostAttribute","DomEventsPlugin","MODIFIER_KEYS","_keyMap","Del","Esc","Left","Right","Up","Down","Menu","Scroll","Win","MODIFIER_KEY_GETTERS","alt","altKey","control","ctrlKey","meta","metaKey","shift","shiftKey","KeyEventsPlugin","parseEventName","parsedEvent","outsideHandler","eventCallback","fullKey","runOutsideAngular","domEventName","parts","toLowerCase","split","key","_normalizeKey","pop","codeIX","indexOf","splice","modifierName","index","result","fullKeyCode","keycode","code","modifierGetter","zone","matchEventFullKeyCode","runGuarded","keyName","platformBrowser","createPlatformFactory","platformCore","PLATFORM_ID","useValue","ɵPLATFORM_BROWSER_ID","PLATFORM_INITIALIZER","initDomAdapter","makeCurrent","_document","ɵsetDocument","BROWSER_MODULE_PROVIDERS_MARKER","TESTABILITY_PROVIDERS","ɵTESTABILITY_GETTER","useClass","BrowserGetTestability","addToWindow","registry","ɵglobal","elem","findInAncestors","testability","findTestabilityInTree","getAllTestabilities","getAllRootElements","testabilities","count","didWork","decrement","didWork_","whenStable","getTestability","parentElement","ɵTESTABILITY","Testability","NgZone","TestabilityRegistry","BROWSER_MODULE_PROVIDERS","ɵINJECTOR_SCOPE","ErrorHandler","errorHandler","RendererFactory2","useExisting","XhrFactory","BrowserModule","providersAlreadyPresent","params","ngModule","providers","ɵmod","ɵinj","imports","CommonModule","ApplicationModule","Title","getTitle","title","setTitle","newTitle","createTitle","ɵɵinject","r","DomSanitizer","DomSanitizerImpl","sanitize","ctx","SecurityContext","ɵallowSanitizationBypassAndThrow","ɵunwrapSafeValue","ɵ_sanitizeHtml","String","toString","ɵ_sanitizeUrl","ɵXSS_SECURITY_URL","bypassSecurityTrustHtml","ɵbypassSanitizationTrustHtml","bypassSecurityTrustStyle","ɵbypassSanitizationTrustStyle","bypassSecurityTrustScript","ɵbypassSanitizationTrustScript","bypassSecurityTrustUrl","ɵbypassSanitizationTrustUrl","bypassSecurityTrustResourceUrl","ɵbypassSanitizationTrustResourceUrl","domSanitizerImplFactory","environment","of","args","scheduler","isScheduler","scheduleArray","fromArray","concatMap","project","resultSelector","mergeMap","filter","predicate","thisArg","source","lift","FilterOperator","call","subscriber","subscribe","FilterSubscriber","Subscriber","destination","_next","err","error","next","HttpHandler","HttpBackend","HttpHeaders","headers","normalizedNames","lazyUpdate","lazyInit","line","trim","maybeSetNormalizedName","has","entries","values","headerValues","init","Array","from","getAll","append","clone","op","lcName","copyFrom","update","applyUpdate","other","concat","base","toDelete","existing","fn","HttpUrlEncodingCodec","encodeKey","standardEncoding","encodeValue","decodeKey","decodeURIComponent","decodeValue","STANDARD_ENCODING_REGEX","STANDARD_ENCODING_REPLACEMENTS","v","encodeURIComponent","t","valueToString","HttpParams","options","updates","cloneFrom","encoder","fromString","fromObject","paramParser","rawParams","codec","param","eqIdx","val","list","isArray","res","appendAll","_value","eKey","join","idx","HttpContext","token","defaultValue","isArrayBuffer","ArrayBuffer","isBlob","Blob","isFormData","FormData","HttpRequest","method","third","fourth","reportProgress","withCredentials","responseType","toUpperCase","mightHaveBody","context","urlWithParams","qIdx","serializeBody","isUrlSearchParams","URLSearchParams","JSON","stringify","detectContentTypeHeader","setHeaders","reduce","setParams","HttpEventType","Sent","UploadProgress","ResponseHeader","DownloadProgress","Response","User","HttpResponseBase","defaultStatus","defaultStatusText","status","statusText","ok","HttpHeaderResponse","HttpResponse","HttpErrorResponse","message","addBody","observe","HttpClient","request","first","req","events$","pipe","handle","res$","jsonp","callbackParam","patch","post","put","interceptorChainEndFn","finalHandlerFn","adaptLegacyInterceptorToChain","chainTailFn","interceptor","initialRequest","intercept","downstreamRequest","HTTP_INTERCEPTORS","HTTP_INTERCEPTOR_FNS","legacyInterceptorFnFactory","chain","inject","optional","reduceRight","HttpInterceptorHandler","backend","dedupedInterceptorFns","nextSequencedFn","interceptorFn","chainedInterceptorFn","runInContext","XSSI_PREFIX","HttpXhrBackend","xhrFactory","Observable","observer","xhr","open","setRequestHeader","detectedType","reqBody","headerResponse","partialFromXhr","getAllResponseHeaders","getResponseUrl","responseURL","test","getResponseHeader","onLoad","response","responseText","originalBody","parse","text","complete","onError","sentHeaders","onDownProgress","progressEvent","loaded","lengthComputable","total","partialText","onUpProgress","progress","upload","send","readyState","DONE","abort","i1","XSRF_ENABLED","XSRF_COOKIE_NAME","XSRF_HEADER_NAME","HttpXsrfTokenExtractor","HttpXsrfCookieExtractor","platform","cookieName","lastCookieString","lastToken","parseCount","getToken","cookieString","xsrfInterceptorFn","lcUrl","startsWith","headerName","HttpFeatureKind","Interceptors","LegacyInterceptors","CustomXsrfConfiguration","NoXsrfProtection","JsonpSupport","RequestsMadeViaParent","makeHttpFeature","kind","ɵkind","ɵproviders","provideHttpClient","features","feature","makeEnvironmentProviders","LEGACY_INTERCEPTOR_FN","HttpClientModule","EMPTY","empty","emptyScheduled","schedule","defer","observableFactory","input","RepeatWhenOperator","notifier","RepeatWhenSubscriber","SimpleOuterSubscriber","sourceIsBeingSubscribedTo","notifyNext","notifyComplete","isStopped","retries","subscribeToRetries","retriesSubscription","closed","_unsubscribeAndRecycle","notifications","_unsubscribe","unsubscribe","Subject","innerSubscribe","SimpleInnerSubscriber","Action","Subscription","work","state","delay","Scheduler","SchedulerAction","now","Date","AsyncScheduler","delegate","actions","active","scheduled","flush","action","execute","async","AsyncAction","pending","recycleAsyncId","requestAsyncId","setInterval","bind","clearInterval","_execute","errorValue","errored","throwError","dispatch","Notification","hasValue","do","accept","nextOrObserver","toObservable","undefinedValueNotification","completeNotification","DelayOperator","DelaySubscriber","queue","time","notification","Math","max","_schedule","scheduleNotification","DelayMessage","_error","_complete","RetryOperator","RetrySubscriber","catchError","selector","operator","CatchOperator","caught","CatchSubscriber","err2","innerSubscriber","innerSubscription","LatestUserAccessService","http","beginRegisteringAccess","registerAccess","repeatWhen","delayFor","isDate","isNaN","abs","OBSERVABLE_DELAY","retry","serializedUser","localStorage","getItem","username","userName","currentTime","getTime","getLatestAccessTime","POLL_DELAY","storeLatestAccessTime","getHeaders","getLatestAccesses","setItem","latestAccessTime","Username","fesm2020_core","UserService","setCurrentUser","signUp","user","getUser","getCurrentUserId","getCurrentUser","currentUser","u","getCurrentUserFullName","firstName","lastName","currentUsername","BehaviorSubject","getValue","_subscribe","subscription","hasError","thrownError","ObjectUnsubscribedError","EmptyError","EmptyErrorImpl","prototype","OuterSubscriber","outerValue","innerValue","outerIndex","innerIndex","innerSub","notifyError","InnerSubscriber","subscribeToResult","outerSubscriber","subscribeTo","NONE","combineLatest","observables","CombineLatestOperator","CombineLatestSubscriber","observable","len","toRespond","unused","_outerValue","_tryResultSelector","apply","concatAll","mergeAll","switchMap","a","b","ii","SwitchMapOperator","SwitchMapSubscriber","_innerSub","ArgumentOutOfRangeError","ArgumentOutOfRangeErrorImpl","take","TakeOperator","TakeSubscriber","defaultIfEmpty","DefaultIfEmptyOperator","DefaultIfEmptySubscriber","isEmpty","throwIfEmpty","errorFactory","defaultErrorFactory","ThrowIfEmptyOperator","ThrowIfEmptySubscriber","hasDefaultValue","identity","noop","tap","DoOperator","TapSubscriber","observerOrNext","_tapNext","_tapError","_tapComplete","isFunction","_context","scan","accumulator","seed","hasSeed","ScanOperator","ScanSubscriber","_seed","_tryNext","takeLast","TakeLastOperator","TakeLastSubscriber","ring","last","TakeWhileOperator","inclusive","TakeWhileSubscriber","nextOrComplete","predicateResult","Boolean","MapToOperator","MapToSubscriber","x","finalize","FinallyOperator","FinallySubscriber","PRIMARY_OUTLET","RouteTitleKey","Symbol","ParamsAsMap","hasOwnProperty","convertToParamMap","defaultUrlMatcher","segments","segmentGroup","route","path","pathMatch","hasChildren","posParams","part","segment","substring","consumed","shallowEqual","k1","k2","equalArraysOrString","aSorted","sort","bSorted","every","flatten","arr","prop","wrapIntoObservable","ɵisObservable","ɵisPromise","Promise","resolve","NG_DEV_MODE$b","ngDevMode","pathCompareMap","exact","equalSegmentGroups","container","containee","matrixParams","equalPath","matrixParamsMatch","numberOfChildren","c","children","subset","containsSegmentGroup","paramCompareMap","equalParams","containsParams","ignored","containsTree","paths","root","queryParams","fragment","containsSegmentGroupHelper","containeePaths","current","containerPaths","containeeSegment","parameters","UrlTree","UrlSegmentGroup","queryParamMap","_queryParamMap","DEFAULT_SERIALIZER","serialize","k","serializePaths","UrlSegment","parameterMap","_parameterMap","serializePath","as","bs","UrlSerializer","DefaultUrlSerializer","p","UrlParser","parseRootSegment","parseQueryParams","parseFragment","tree","serializeSegment","query","serializeQueryParams","strParams","encodeUriQuery","encodeUriFragment","encodeURI","primary","mapChildrenIntoArray","child","childOutlet","encodeUriString","encodeUriSegment","decode","decodeQuery","serializeMatrixParams","SEGMENT_RE","matchSegments","str","match","QUERY_PARAM_RE","QUERY_PARAM_VALUE_RE","remaining","consumeOptional","peekStartsWith","parseChildren","parseQueryParam","parseSegment","capture","parseParens","ɵRuntimeError","parseMatrixParams","parseParam","valueMatch","matchQueryParams","matchUrlQueryParamValue","decodedKey","decodedVal","currentVal","allowPrimary","outletName","createRoot","rootCandidate","Jr","squashSegmentGroup","newChildren","childCandidate","mergeTrivialChildren","isUrlTree","NG_DEV_MODE$a","createUrlTree","urlTree","commands","nav","computeNavigation","Navigation","numberOfDoubleDots","isAbsolute","cmd","cmdIdx","outlets","segmentPath","urlPart","partIndex","toRoot","createTreeUsingPathIndex","lastPathIndex","startingPosition","findStartingPosition","Position","createPositionApplyingDoubleDots","group","g","ci","dd","isMatrixParams","snapshot","_urlSegment","processChildren","updateSegmentGroupChildren","updateSegmentGroup","_lastPathIndex","command","isCommandWithOutlets","oldRoot","oldSegmentGroup","newSegmentGroup","qp","replaceSegment","newRoot","oldSegment","newSegment","cmdWithOutlet","find","startIndex","m","prefixedWith","currentCommandIndex","currentPathIndex","noMatch","pathIndex","commandIndex","curr","compare","slicedCommands","createNewSegmentGroup","getOutlets","childrenOfEmptyChild","outlet","createNewSegmentChildren","IMPERATIVE_NAVIGATION","RouterEvent","NavigationStart","navigationTrigger","restoredState","NavigationEnd","urlAfterRedirects","NavigationCancel","reason","NavigationSkipped","NavigationError","RoutesRecognized","GuardsCheckStart","GuardsCheckEnd","shouldActivate","ResolveStart","ResolveEnd","RouteConfigLoadStart","RouteConfigLoadEnd","ChildActivationStart","routeConfig","ChildActivationEnd","ActivationStart","ActivationEnd","routerEvent","position","anchor","LegacyCreateUrlTree","relativeTo","currentState","currentUrlTree","CreateUrlTreeStrategy","Tree","_root","pathFromRoot","n","findNode","firstChild","siblings","findPath","cc","unshift","TreeNode","nodeChildrenAsMap","RouterState","setRouterState","createEmptyState","rootComponent","createEmptyStateSnapshot","activated","ActivatedRouteSnapshot","RouterStateSnapshot","emptyUrl","emptyParams","emptyData","emptyQueryParams","ActivatedRoute","futureSnapshot","d","_futureSnapshot","_routerState","paramMap","_paramMap","inheritedParamsDataResolve","paramsInheritanceStrategy","inheritingStartingFrom","flattenInherited","_resolvedData","urlSegment","_resolve","serializeNode","advanceActivatedRoute","currentSnapshot","nextSnapshot","shallowEqualArrays","equalParamsAndUrlSegments","equalUrlParams","equalSegments","createNode","routeReuseStrategy","prevState","shouldReuseRoute","createOrReuseChildren","shouldAttach","detachedRouteHandle","retrieve","createActivatedRoute","NAVIGATION_CANCELING_ERROR","redirectingNavigationError","urlSerializer","redirect","redirectTo","navigationBehaviorOptions","navigationCancelingError","redirectUrl","cancellationCode","isRedirectingNavigationCancelingError$1","isNavigationCancelingError$1","OutletContext","resolver","ChildrenOutletContexts","attachRef","contexts","onChildOutletCreated","childName","getOrCreateContext","onChildOutletDestroyed","getContext","onOutletDeactivated","onOutletReAttached","NG_DEV_MODE$8","RouterOutlet","_activatedRoute","activateEvents","EventEmitter","deactivateEvents","attachEvents","detachEvents","parentContexts","location","ViewContainerRef","changeDetector","ChangeDetectorRef","environmentInjector","EnvironmentInjector","ngOnChanges","changes","firstChange","previousValue","isTrackedInParentContexts","deactivate","initializeOutletWithName","ngOnInit","attach","activateWith","isActivated","instance","activatedRoute","activatedRouteData","detach","cmp","emit","ref","insert","hostView","resolverOrInjector","childContexts","OutletInjector","isComponentFactoryResolver","item","resolveComponentFactory","createComponent","markForCheck","ɵdir","selectors","notFoundValue","ɵEmptyOutletComponent","ɵcmp","decls","getOrCreateRouteInjectorIfNeeded","currentInjector","_injector","createEnvironmentInjector","standardizeConfig","loadComponent","loadChildren","getOutlet","sortByMatchingOutlets","routes","sortedConfig","getClosestRouteInjector","_loadedInjector","ActivateRoutes","futureState","currState","forwardEvent","activate","futureRoot","currRoot","deactivateChildRoutes","activateChildRoutes","futureNode","currNode","futureChild","childOutletName","deactivateRoutes","deactivateRouteAndItsChildren","parentContext","future","shouldDetach","detachAndStoreRouteSubtree","deactivateRouteAndOutlet","componentRef","store","activateRoutes","stored","cmpFactoryResolver","ComponentFactoryResolver","CanActivate","CanDeactivate","getAllRouteGuards","getChildRouteGuards","getTokenOrFunctionIdentity","tokenOrFunction","NOT_FOUND","ɵisInjectable","futurePath","checks","canDeactivateChecks","canActivateChecks","prevChildren","getRouteGuards","shouldRun","shouldRunGuardsAndResolvers","runGuardsAndResolvers","isEmptyError","INITIAL_VALUE","prioritizedGuardValue","obs","o","startWith","array","results","redirectIfUrlTree","noMatch$1","matched","consumedSegments","remainingSegments","positionalParamSegments","matchWithChecks","runCanMatchGuards","canMatch","injectionToken","guard","isCanMatch","matcher","slicedSegments","config","containsEmptyPathMatchesWithNamedOutlets","some","emptyPathMatch","createChildrenForEmptyPaths","primarySegment","_sourceSegment","_segmentIndexShift","containsEmptyPathMatches","addEmptyPathsToChildrenIfNeeded","isImmediateMatch","rawSegment","noLeftoversInUrl","NG_DEV_MODE$7","NoMatch$1","AbsoluteRedirect","absoluteRedirect","newTree","ApplyRedirects","configLoader","allowRedirects","splitGroup","rootSegmentGroup","expandSegmentGroup","noMatchError","expandChildren","expandSegment","childOutlets","sortedRoutes","expandedChild","last$1","expandSegmentAgainstRoute","_","matchSegmentAgainstRoute","expandSegmentAgainstRouteUsingRedirect","expandWildCardWithParamsAgainstRouteUsingRedirect","expandRegularSegmentAgainstRouteUsingRedirect","applyRedirectCommands","lineralizeSegments","newSegments","rawSegmentGroup","_loadedRoutes","cfg","getChildConfig","routerConfig","childInjector","childConfig","splitSegmentGroup","matchedOnOutlet","cs","runCanLoadGuards","canLoad","isCanLoad","shouldLoadResult","canLoadFails","applyRedirectCreateUrlTree","createSegmentGroup","createQueryParams","redirectToParams","actualParams","sourceName","updatedSegments","createSegments","redirectToSegments","actualSegments","findPosParam","findOrReturn","redirectToUrlSegment","pos","NoMatch","Recognizer","rootComponentType","recognize","processSegmentGroup","freeze","rootNode","routeState","inheritParamsAndData","routeNode","processSegment","outletChildren","takeWhile","mergedChildren","mergeEmptyPathMatches","sortActivatedRouteSnapshots","nodes","localeCompare","processSegmentAgainstRoute","matchResult","pathIndexShift","getPathIndexShift","getData","_loadedComponent","getSourceSegmentGroup","getResolve","hasEmptyPathConfig","mergedNodes","duplicateEmptyPathNode","resultNode","mergedNode","hasStaticTitle","switchTap","nextResult","ROUTES","RouterConfigLoader","componentLoaders","WeakMap","childrenLoaders","compiler","Compiler","onLoadStartListener","loadRunner","maybeUnwrapDefaultExport","onLoadEndListener","loader","ConnectableObservable","refCount","parentInjector","loadModuleFactoryOrRoutes","factoryOrRoutes","rawRoutes","requireStandaloneComponents","InjectFlags","NG_DEV_MODE$5","NgModuleFactory","compileModuleAsync","isWrappedDefaultExport","default","NavigationTransitions","hasRequestedNavigation","navigationId","currentNavigation","lastSuccessfulNavigation","events","rootContexts","afterPreactivation","transitions","handleNavigationRequest","setupNavigations","router","targetPageId","currentRawUrl","extractedUrl","urlHandlingStrategy","extract","rawUrl","extras","reject","promise","routerState","targetSnapshot","currentRouterState","targetRouterState","guards","guardsResult","overallTransitionState","completed","initialUrl","trigger","previousNavigation","browserUrlTree","urlTransition","navigated","onSameUrlNavigation","serializeUrl","rawUrlTree","shouldProcessUrl","isBrowserTriggeredNavigation","transition","applyRedirects","applyRedirects$1","finalUrl","serializer","recognize$1","newObservableError","urlUpdateStrategy","skipLocationChange","merge","setBrowserUrl","routesRecognized","navStart","replaceUrl","guardsStart","checkGuards","runCanDeactivateChecks","futureRSS","currRSS","check","runCanDeactivate","currARS","canDeactivate","closestInjector","isCanDeactivate","isBoolean","runCanActivateChecks","fireChildActivationStart","fireActivationStart","runCanActivateChild","futureARS","canActivateChildGuardsMapped","getCanActivateChild","canActivateChild","isCanActivateChild","runCanActivate","canActivate","canActivateObservables","isCanActivate","guardsEnd","restoreHistory","cancelNavigationTransition","resolveStart","dataResolved","resolveData","canActivateChecksResolved","runResolve","resolveNode","getDataKeys","obj","getOwnPropertySymbols","getResolver","mapTo","resolvedData","resolveEnd","loadComponents","loaders","loadedComponent","createRouterState","titleStrategy","updateTitle","navCancel","mergedTree","scheduleNavigation","navError","ee","TitleStrategy","buildTitle","pageTitle","getResolvedTitleForRoute","DefaultTitleStrategy","RouteReuseStrategy","DefaultRouteReuseStrategy","BaseRouteReuseStrategy","detachedTree","ROUTER_CONFIGURATION","UrlHandlingStrategy","DefaultUrlHandlingStrategy","newUrlPart","wholeUrl","defaultErrorHandler","defaultMalformedUriErrorHandler","exactMatchOptions","subsetMatchOptions","Router","navigationTransitions","browserPageId","canceledNavigationResolution","getState","ɵrouterPageId","disposed","currentPageId","console","ɵConsole","isNgZoneEnabled","malformedUriErrorHandler","lastSuccessfulId","urlCreationStrategy","Location","resetConfig","warn","resetRootComponentType","initialNavigation","setUpLocationChangeListener","navigateToSyncWithBrowser","locationSubscription","setTimeout","stateCopy","parseUrl","getCurrentNavigation","dispose","navigationExtras","queryParamsHandling","preserveFragment","f","q","removeEmptyProps","navigateByUrl","navigate","validateCommands","isActive","matchOptions","priorPromise","rej","catch","isCurrentPathEqualTo","generateNgRouterState","replaceState","go","restoringFromCaughtError","targetPagePosition","historyGo","resetState","resetUrlToCurrentUrlTree","routerPageId","RouterLink","tabIndexAttribute","locationStrategy","_preserveFragment","_skipLocationChange","_replaceUrl","onChanges","nativeElement","isAnchorElement","updateHref","setTabIndexIfNotOnNativeEl","ɵcoerceToBoolean","newTabIndex","applyAttributeValue","routerLink","onClick","button","prepareExternalUrl","sanitizedValue","ɵɵsanitizeUrlOrResourceUrl","attrName","attrValue","i3","PreloadingStrategy","RouterPreloader","preloadingStrategy","setUpPreloading","preload","processRoutes","injectorForCurrentRoute","injectorForChildren","preloadConfig","loadedChildren$","recursiveLoadChildren$","loadComponent$","ROUTER_SCROLLER","RouterScroller","viewportScroller","lastId","lastSource","restoredId","scrollPositionRestoration","anchorScrolling","setHistoryScrollRestoration","routerEventsSubscription","createScrollEvents","scrollEventsSubscription","consumeScrollEvents","getScrollPosition","scheduleScrollEvent","scrollToPosition","scrollToAnchor","run","NavigationResult","COMPLETE","FAILED","REDIRECTING","NG_DEV_MODE$1","routerFeature","ROUTER_IS_PROVIDED","getBootstrapListener","bootstrappedComponentRef","ApplicationRef","components","bootstrapDone","BOOTSTRAP_DONE","INITIAL_NAVIGATION","ROUTER_PRELOADER","componentTypes","withDebugTracing","ENVIRONMENT_INITIALIZER","log","stringifyEvent","groupEnd","withPreloading","NG_DEV_MODE","ROUTER_FORROOT_GUARD","ROUTER_PROVIDERS","rootRoute","routerNgProbeToken","NgProbeToken","RouterModule","enableTracing","provideForRootGuard","Optional","SkipSelf","useHash","LocationStrategy","HashLocationStrategy","PathLocationStrategy","ViewportScroller","scrollOffset","setOffset","provideInitialNavigation","ROUTER_INITIALIZER","APP_BOOTSTRAP_LISTENER","locationInitialized","LOCATION_INITIALIZED","afterNextNavigation","AuthService","_route","userService","_router","userNameSubject","asObservable","login","password","jwt","initLocalStorageItems","auth_token","setUser","success","sendPasswordRecovery","setNewPassword","userId","logout","removeItem","getIdentity","getRole","jwtData","role","atob","isAuthenticated","isTokenExpired","offsetSeconds","date","getTokenExpirationDate","valueOf","exp","setUTCSeconds","SubSink","_subs","subscriptions","_i","defineProperty","enumerable","configurable","sub","GlobalErrorModalService","errorOccurredSubject","reportError","GlobalErrorModalComponent","globalErrorModalService","stackTrace","errorOccurred$","previousError","currentError","getStackTrace","areCurrentAndPreviousErrorsEqual","isModalWindowOpen","showModalWindow","timeNow","previousErrorNotifiedAt","errorNotificationDelayTimeMs","sendErrorToPe","detectChanges","ngAfterViewInit","$collapsible","$","on","errorDetailsCollapsed","$globalErrorModal","modal","stack","startLoading","processEcologyNotified","subSink","stopLoading","loading","isLoading","Highcharts","lang","thousandsSep","AppComponent","latestUserAccessService","authService","AnimationBuilder","AnimationFactory","AUTO_STYLE","definitions","animate","timings","sequence","steps","tokens","offset","stateChangeExpr","expr","animation","scheduleMicroTask","cb","NoopAnimationPlayer","duration","_onDoneFns","_onStartFns","_onDestroyFns","_originalOnDoneFns","_originalOnStartFns","_started","_destroyed","_finished","_position","parentPlayer","totalTime","_onFinish","onStart","onDone","hasStarted","play","_onStart","triggerMicrotask","pause","restart","finish","reset","setPosition","getPosition","triggerCallback","phaseName","methods","AnimationGroupPlayer","_players","players","doneCount","destroyCount","startCount","player","_onDestroy","timeAtPosition","min","longestPlayer","longestSoFar","beforeDestroy","ɵPRE_STYLE","_c0","_r6","ctx_r5","ctx_r1","ctx_r2","ctx_r3","ComponentPortal","newestOnTop","_attachedHost","isAttached","setAttachedHost","BasePortalHost","portal","_attachedPortal","attachComponentPortal","_disposeFn","setDisposeFn","ToastRef","_overlayRef","duplicatesCount","_afterClosed","_activate","_manualClose","_resetTimeout","_countDuplicate","manualClose","manualClosed","timeoutReset","countDuplicate","close","afterClosed","isInactive","afterActivate","onDuplicate","resetTimeout","ToastPackage","toastId","toastType","toastRef","_onTap","_onAction","triggerTap","tapToDismiss","onTap","triggerAction","onAction","TOAST_CONFIG","DomPortalHost","_hostDomElement","_componentFactoryResolver","_appRef","componentFactory","attachView","detachView","_getComponentRootNode","rootNodes","OverlayContainer","_containerElement","getContainerElement","_createContainer","OverlayRef","_portalHost","Overlay","_overlayContainer","_paneElements","positionClass","overlayContainer","_createOverlayRef","getPaneElement","_createPaneElement","pane","_createPortalHost","ToastrService","overlay","sanitizer","ngZone","currentlyActive","toasts","toastrConfig","iconClasses","show","override","_preBuildNotification","applyConfig","info","warning","toast","found","_findToast","activeToast","maxOpened","findDuplicate","resetOnDuplicate","countDuplicates","includeTitleDuplicates","onActivateTick","_buildNotification","toastComponent","duplicate","resetTimeoutOnDuplicate","timeOut","preventDuplicates","previousToastMessage","keepInactive","autoDismiss","overlayRef","sanitizedMessage","enableHtml","toastPackage","toastInjector","componentInstance","ins","onShown","onHidden","i2","Toast","displayStyle","toastrService","width","toastClasses","easeTime","easing","originalTimeout","toastClass","activateToast","sub1","sub2","sub3","intervalId","clearTimeout","timeout","disableTimeOut","outsideTimeout","hideTime","progressBar","outsideInterval","updateProgress","progressAnimation","tapToast","stickAround","delayedHideToast","extendedTimeOut","func","runInsideAngular","attrs","NgIf","opacity","DefaultGlobalConfig","closeButton","titleClass","messageClass","provideToastr","ToastrModule","invalidTimingValue","isBrowser","isNode","process","optimizeGroupPlayer","ɵAnimationGroupPlayer","normalizeKeyframes$1","driver","normalizer","keyframes","preStyles","postStyles","errors","normalizedKeyframes","previousOffset","previousKeyframe","kf","isSameOffset","normalizedKeyframe","normalizedProp","normalizedValue","normalizePropertyName","normalizeStyleValue","animationFailed","listenOnPlayer","copyAnimationEvent","makeAnimationEvent","triggerName","fromState","toState","disabled","_data","getOrSetDefaultValue","parseTimelineCommand","separatorPos","_contains","elm1","elm2","_query","_documentElement","getParentElement","Element","documentElement","contains","_CACHED_BODY","_IS_WEBKIT","containsElement","invokeQuery","NoopAnimationDriver","validateStyleProperty","getBodyNode","containsVendorPrefix","matchesElement","_element","_selector","computeStyle","previousPlayers","scrubberAccessRequested","AnimationDriver","NOOP","ONE_SECOND","ENTER_CLASSNAME","LEAVE_CLASSNAME","NG_TRIGGER_CLASSNAME","NG_TRIGGER_SELECTOR","NG_ANIMATING_CLASSNAME","NG_ANIMATING_SELECTOR","resolveTimingValue","matches","_convertTimeValueToMS","parseFloat","unit","resolveTiming","allowNegativeValues","parseTimeExpression","delayMatch","easingVal","containsErrors","negativeStepValue","negativeDelayValue","copyObj","convertToMap","styleMap","copyStyles","backfill","getStyleAttributeString","writeStyleAttribute","styleAttrValue","getPropertyValue","camelCaseToDashCase","setStyles","formerStyles","camelProp","dashCaseToCamelCase","eraseStyles","normalizeAnimationEntry","PARAM_REGEX","RegExp","extractStyleParams","exec","lastIndex","interpolateParams","original","varName","localVal","invalidParamValue","iteratorToArray","iterator","done","DASH_CASE_REGEXP","visitDslNode","visitor","visitTrigger","visitState","visitTransition","visitSequence","visitGroup","visitAnimate","visitKeyframes","visitStyle","visitReference","visitAnimateChild","visitAnimateRef","visitQuery","visitStagger","invalidNodeType","getComputedStyle","ANY_STATE","parseTransitionExpr","transitionValue","expressions","parseInnerTransitionStr","eventStr","parseAnimationAlias","alias","invalidTransitionAlias","invalidExpression","separator","makeLambdaFromStates","TRUE_BOOLEAN_VALUES","FALSE_BOOLEAN_VALUES","lhs","rhs","LHS_MATCH_BOOLEAN","RHS_MATCH_BOOLEAN","lhsMatch","rhsMatch","SELF_TOKEN_REGEX","buildAnimationAst","metadata","warnings","AnimationAstBuilderVisitor","_driver","AnimationAstBuilderContext","_resetContextStyleTimingState","currentQuerySelector","collectedStyles","queryCount","depCount","states","invalidTrigger","def","stateDef","invalidDefinition","styleAst","astParams","containsDynamicStyles","missingSubs","size","invalidState","metadataName","matchers","normalizeAnimationOptions","furthestTime","step","innerAst","timingAst","constructTimingAst","makeTimingAst","strValue","ast","dynamic","currentAnimateTimings","styleMetadata","newStyleData","_styleAst","isEmptyStep","_makeStyleAst","_validateStyleAst","metadataStyles","styleTuple","collectedEasing","styleData","endTime","startTime","tuple","collectedEntry","updateCollectedStyle","invalidParallelAnimation","firstStart","firstEnd","secondStart","secondEnd","validateStyleParams","invalidStyleParams","invalidKeyframes","totalKeyframesWithOffsets","offsets","offsetsOutOfOrder","keyframesOutOfRange","offsetVal","consumeOffset","invalidOffset","keyframeOffsetsOutOfOrder","generatedOffset","keyframesMissingOffsets","limit","animateDuration","durationUpToThisFrame","parentSelector","currentQuery","includeSelf","normalizeSelector","hasAmpersand","originalSelector","invalidStagger","currentTransition","unsupportedCSSPropertiesFound","normalizeParams","createTimelineInstruction","preStyleProps","postStyleProps","subTimeline","ElementInstructionMap","_map","instructions","existingInstructions","ENTER_TOKEN_REGEX","LEAVE_TOKEN_REGEX","buildAnimationTimelines","rootElement","enterClassName","leaveClassName","startingStyles","finalStyles","subInstructions","AnimationTimelineBuilderVisitor","buildKeyframes","AnimationTimelineContext","currentTimeline","delayNextStep","timelines","timeline","containsAnimation","lastRootTimeline","allowOnlyTimelineStyles","elementInstructions","innerContext","createSubContext","_visitSubInstructions","transformIntoNewTimeline","previousNode","_applyAnimationRefDelays","animationsRefsOptions","animationRefOptions","animationDelay","animationDelayValue","instruction","instructionTimings","appendInstructionToTimeline","updateOptions","subContextCount","snapshotCurrentStyles","DEFAULT_NOOP_PREVIOUS_NODE","applyStylesToKeyframe","innerTimelines","mergeTimelineCollectedStyles","_visitTiming","incrementTime","hasCurrentStyleProperties","forwardFrame","applyEmptyStep","innerTimeline","forwardTime","elms","currentQueryTotal","sameElementTimeline","currentQueryIndex","tl","maxTime","currentStaggerTime","startingTime","_enterClassName","_leaveClassName","initialTimeline","TimelineBuilder","skipIfExists","newOptions","optionsToUpdate","newParams","paramsToUpdate","_copyOptions","oldParams","newTime","fork","updatedTimings","builder","SubTimelineBuilder","stretchStartingKeyframe","elements","invalidQuery","_elementTimelineStylesLookup","_previousKeyframe","_currentKeyframe","_keyframes","_styleSummary","_localTimelineStyles","_pendingStyles","_backFill","_currentEmptyStepKeyframe","_globalTimelineStyles","_loadKeyframe","hasPreStyleStep","_updateStyle","allStyles","allProperties","getFinalKeyframe","properties","details1","details0","finalKeyframes","keyframe","finalKeyframe","preProps","postProps","kf0","kf1","_stretchStartingKeyframe","newKeyframes","startingGap","newFirstKeyframe","oldFirstKeyframe","roundOffset","oldOffset","decimalPoints","mult","pow","round","AnimationStyleNormalizer","DIMENSIONAL_PROP_SET","WebAnimationsStyleNormalizer","propertyName","userProvidedProperty","normalizedProperty","strVal","valAndSuffixMatch","invalidCssUnitValue","createTransitionInstruction","isRemovalTransition","fromStyles","toStyles","queriedElements","EMPTY_OBJECT","AnimationTransitionFactory","_triggerName","_stateStyles","nextState","oneOrMoreTransitionsMatch","matchFns","buildStyles","stateName","styler","currentOptions","nextOptions","skipAstBuild","transitionAnimationParams","currentStateStyles","nextAnimationParams","nextStateStyles","preStyleMap","postStyleMap","isRemoval","animationOptions","applyParamDefaults","elm","queriedElementsList","userParams","defaults","AnimationStateStyles","defaultParams","combinedParams","AnimationTrigger","_normalizer","transitionFactories","balanceProperties","fallbackTransition","createFallbackTransition","containsQueries","matchTransition","matchStyles","stateMap","key1","key2","EMPTY_INSTRUCTION_MAP","TimelineAnimationEngine","bodyNode","_animations","_playersById","register","registerFailed","_buildPlayer","autoStylesMap","inst","missingOrDestroyedAnimation","createAnimationFailed","_getPlayer","missingPlayer","baseEvent","QUEUED_CLASSNAME","DISABLED_CLASSNAME","EMPTY_PLAYER_ARRAY","NULL_REMOVAL_STATE","namespaceId","setForRemoval","setForMove","hasAnimation","removedBeforeQueried","NULL_REMOVED_QUERIED_STATE","REMOVAL_FLAG","StateValue","isObj","normalizeTriggerValue","absorbOptions","VOID_VALUE","DEFAULT_STATE_VALUE","AnimationTransitionNamespace","hostElement","_engine","_triggers","_queue","_elementListeners","_hostClassName","phase","missingTrigger","missingEvent","isTriggerEventValid","unsupportedTriggerEvent","listeners","triggersWithStates","statesByElement","afterFlush","_getTrigger","unregisteredTrigger","defaultToFallback","TransitionAnimationPlayer","objEquals","playersOnElement","playersByElement","queued","isFallbackTransition","totalQueuedPlayers","deregister","entry","clearElementCache","elementPlayers","_signalRemovalForInnerTriggers","namespaces","fetchNamespacesByElement","ns","triggerLeaveAnimation","afterFlushAnimationsDone","destroyAfterComplete","triggerStates","previousTriggersValues","markElementAsRemoved","processLeaveNode","prepareLeaveAnimationListeners","elementStates","visitedTriggers","removeNode","engine","childElementCount","containsPotentialParentTransition","totalAnimations","currentPlayers","playersByQueriedElement","removalFlag","destroyInnerAnimations","_onRemovalComplete","insertNode","drainQueuedTransitions","microtaskId","destroyed","markedForDestroy","d0","d1","elementContainsData","containsData","TransitionAnimationEngine","onRemovalComplete","newHostElements","disabledNodes","_namespaceLookup","_namespaceList","_flushFns","_whenQuietFns","namespacesByHostElement","collectedEnterElements","collectedLeaveElements","queuedPlayers","createNamespace","_balanceNamespaceList","collectEnterElement","namespaceList","ancestor","ancestorNs","registerTrigger","_fetchNamespace","stateValue","details","markElementAsDisabled","isHostElement","hostNS","_buildInstruction","subTimelines","skipBuildAst","containerElement","destroyActiveAnimationsForElement","finishActiveQueriedAnimationOnElement","whenRenderingDone","cleanupFns","_flushAnimations","quietFns","triggerTransitionsFailed","skippedPlayers","skippedPlayersMap","queuedInstructions","allPreStyleElements","allPostStyleElements","disabledElementsSet","nodesThatAreDisabled","allTriggerElements","enterNodeMap","buildRootMap","enterNodeMapIds","className","allLeaveNodes","mergedLeaveNodes","leaveNodesWithoutAnimations","leaveNodeMapIds","leaveNodeMap","allPlayers","erroneousTransitions","nodeIsOrphaned","stringMap","setVal","transitionFailed","allPreviousPlayersMap","animationElementMap","_beforeAnimationBuild","_getPreviousPlayers","prevPlayer","replaceNodes","replacePostStylesAsPre","postStylesMap","cloakAndComputeStyles","preStylesMap","pre","rootPlayers","subPlayers","NO_PARENT_ANIMATION_ELEMENT_DETECTED","overrideTotalTime","parentWithAnimation","parentsToAdd","detectedParent","innerPlayer","_buildAnimation","setRealPlayer","parentPlayers","playersForElement","syncPlayerEvents","queriedPlayerResults","queriedInnerElements","j","queriedPlayers","activePlayers","removeNodesAfterAnimationDone","isQueriedElement","toStateValue","queriedElementPlayers","isRemovalAnimation","targetNameSpaceId","targetTriggerName","timelineInstruction","realPlayer","getRealPlayer","allQueriedPlayers","allConsumedElements","allSubElements","allNewPlayers","flattenGroupPlayers","finalPlayers","_flattenGroupPlayersRecur","wrappedPlayer","deleteOrUnsetInMap","currentValues","_player","_containsRealPlayer","_queuedCallbacks","callbacks","_queueEvent","cloakElement","oldValue","display","valuesMap","elementPropsMap","defaultStyle","cloakVals","failedElements","props","roots","rootMap","NULL_NODE","nodeSet","localRootMap","getRoot","postEntry","preEntry","AnimationEngine","_triggerCache","_transitionEngine","_timelineEngine","componentId","cacheKey","triggerBuildFailed","buildTrigger","onInsert","onRemove","disableAnimations","disable","property","eventPhase","SpecialCasedStyles","_startStyles","_endStyles","_state","initialStyles","initialStylesByElement","_initialStyles","start","filterNonAnimatableStyles","isNonAnimatableStyle","WebAnimationsPlayer","_specialStyles","_initialized","_duration","_delay","_preparePlayerBeforeStart","domPlayer","_triggerWebAnimation","_finalKeyframe","_resetDomPlayerState","_convertKeyframesToObject","kfs","frame","fromEntries","cancel","WebAnimationsDriver","validateAnimatableStyleProperty","playerOptions","fill","previousStyles","previousWebAnimationPlayers","allowPreviousPlayerStylesMerge","normalizeKeyframes","balancePreviousStylesIntoKeyframes","startingKeyframe","missingStyleProps","specialStyles","packageNonAnimatableStyles","startStyles","endStyles","BrowserAnimationBuilder","rootRenderer","_nextAnimationId","_renderer","issueAnimationCommand","BrowserAnimationFactory","_id","RendererAnimationPlayer","_command","_listen","DISABLE_ANIMATIONS_FLAG","AnimationRendererFactory","_currentId","_microtaskId","_animationCallbacksBuffer","_rendererCache","_cdRecurDepth","BaseAnimationRenderer","animationTriggers","AnimationRenderer","_scheduleCountTask","scheduleListenerCallback","isMove","resolveElementFromTarget","parseTriggerCallbackName","dotIndex","SHARED_ANIMATION_PROVIDERS","ɵAnimationStyleNormalizer","instantiateDefaultStyleNormalizer","ɵWebAnimationsStyleNormalizer","ɵAnimationEngine","InjectableAnimationEngine","appRef","instantiateRendererFactory","ɵDomRendererFactory2","BROWSER_ANIMATIONS_PROVIDERS","ɵWebAnimationsDriver","ANIMATION_MODULE_TYPE","BROWSER_NOOP_ANIMATIONS_PROVIDERS","ɵNoopAnimationDriver","BrowserAnimationsModule","HeaderInterceptor","SignupComponent","signup","model","confirmPassword","onSignUpError","Password","closeModal","smoothlyMenu","$body","hasClass","hide","fadeIn","removeAttr","flowsheetHeight","windowHeight","height","topNavBarHeight","outerHeight","subFlowsheetInfoHeight","is","bottomBarHeight","pageWrapper","flowsheetDiagramWrapper","sankeyDiagramWrapper","minHeight","pageWrapperHeight","css","flowsheetWrapperHeight","detectBody","BaseObject","ownerCase","uuid","setName","getName","updateStatus","another","updateSimulationVariablesStatus","simVar","attr","SimulationVariable","updateVariableStatus","convertToInternalUnit","simVars","getSimVars","setSimulationVariablesOwner","sv","setOwnerBaseObject","getAllBaseObjects","allBaseObjects","getChildrenObjectsForRemoval","getSimVarIds","ids","getSimulationVariableSafe","getSimulationVariable","addToPools","category","addSimVarsToPool","overwriteValues","currentValue","ignoreForOverWrite","detectValueChange","toNonCircularObject","plainObject","toJSON","isPropertyBlackListed","Case","dePersist","persistedObj","ReadyStatus","VariableStatus","hasNumericValue","Number","roundNumber","fractionDigits","toFixed","isTypeUndefined","isNullOrUndefined","isEmptyValue","isTypeNumber","isTypeString","isTypeFunction","ownerBaseObject","quantity","variableStatus","readyStatus","setDefaultUnitIfNeeded","lowerBound","upperBound","setQuantity","getDefaultUnit","unitConverter","getInternalUnit","getFullName","convert","parseFloatString","convertToCaptureUnit","asNumber","formatNumber","conversion","format","convertToAnotherUnit","anotherUnit","convertToDefaultUnit","roundCurrentValue","unitInQuantity","setDefaultValue","parseCurrentValue","anotherValue","thisValue","setIsActive","isUndefined","isSolverCalculated","outOfBounds","unitOperationsConfig","diluentSource","displayName","diagramIcon","paletteIcon","extraction","flexibleExtraction","mine","mixer","offshore","refinery","multipleInletRefinery","suncorRenewableBlock","sagd","splitter","thirdPartyRefinery","thirdPartySource","upgrader","multipleInletUpgrader","flexibleUpgrader","level2Upgrader","upgraderInlet","waterUtilityUnitOperation","bitumenConversion","dru","hydrogenPlant","sulfurPlant","vac","hydrotreater","hgoHydrotreater","lgoHydrotreater","separatedHydrotreater","dcu","fluidCoker","genericSink","commodityTank","productTank","hydrocracker","inletTransferUnit","outletTransferUnit","waterSource","waterSourceImport","waterSinkImport","waterHeatExchanger","waterTurbine","waterHeater","waterCooler","waterTwoPhaseSeparator","waterPump","waterValve","waterSink","waterMixer","waterSplitter","waterPipe","waterBoiler","waterHeader","waterCogeneration","fuelGasUtilityUnitOperation","fuelGasFlare","fuelGasSink","fuelGasSinkImport","fuelGasSourceImport","fuelGasMixer","fuelGasSource","fuelGasSplitter","fuelGasAmineContactor","recycleStream","SuncorConstraint","constraint","constraintValueDefined","constraintValueViolated","referenceValue","tolerance","UnitOperationConstraints","addConstraint","constraints","getConstraint","allConstraintValuesDefined","anyConstraintValueDefined","BitumenConversionOutlet","bco","initValues","unitOperationId","fluidAnalysisId","yield","price","setQuantites","Quantity","SimulationVariableName","defaultBitumenConversionModel","BitumenModelTypes","BitumenConversionYieldBasis","UnitOperationReadiness","UnitOperation","unitOperation","flowsheetId","readiness","y","comments","setQuantities","setDefaultValues","clearResults","simVarsArray","saveToGoJS","propertiesToSave","nodeData","findNodeDataForKey","startTransaction","setDataProperty","commitTransaction","ignoreForMakeReady","simvar","loadResourceData","resourceData","getCategoryDisplayName","findUnitOperationDisplayNameByCategory","resetReadiness","isFlowsheetOwner","objectToSerialize","SuncorUnitOperation","unitValue","revenue","electricityPrice","opexFixed","opexVar","opexGasDiesel","opexPower","opexCarbonDioxide","opexTotal","capexAmortized","capexTotal","capacity","minimumFlow","ghgEmissions","ghgIntensity","inletCutMassFlows","outletCutMassFlows","units","Massflowrate","MMTPA","MassPerVolume","KG_BBL","setSimulationVariableNames","serializedUnitOperation","SteamType","SteamUseUnitOperation","steamMake900","steamUse900","steamMake600","steamUse600","steamMake150","steamUse150","steamMake50","steamUse50","useSteamCustomModel","steamModelScript","uo","getSteamMakeVariableByType","steamType","getSteamUseVariableByType","GasContributorUnitOperation","energyFlow","flowrate","fuelGasEmissionFactor","fuelGasHeatingValue","useCustomGasModel","gasModelScript","gasAnalysisId","MassEmissionsPerVolume","KG_SCF","EnergyPerVolume","BTU_SCF","BitumenConversion","yieldBasis","totalYield","productPrice","powerUseRate","naturalGasUseRate","hydrogenUseRate","hydrogenImbalance","absoluteGhgEmissions","volumetricYield","powerEmissionFactor","powerPrice","hydrogenEmissionFactor","hydrogenPrice","naturalGasEmissionFactor","naturalGasPrice","hydrogenUse","modelType","customModelScript","useCustomModel","initConstraints","getAvailableKpis","getAvailableParametricStudyParameters","MJ_M3","MassPerStdH2Volume","KGCO2E_tonne","CurrencyPerStdH2Volume","CAD_tonne","MassPerEnergy","KG_KWH","CurrencyPerElectricity","CAD_MEGAWH","getAlternativeGhgIntensity","getAvailableParameters","constraintViolated","inletStream","filterSuncorMaterialStreams","outletUnitOperationId","volumetricFlowrate","findOutlet","addOutlet","removeOutlet","outletId","findIndex","removeFromPools","getAvailableMultiPeriodParameters","sup","DiluentSource","isOptimizable","premiumDiscountToWTI","setOptimizable","SuncorUnitOpWithCogen","cogenElectricityGeneration","netElectricityExport","gridIntensity","cogenIntensity","MineSource","MixerConstraintOption","MixerBlendRecipeOption","DistributionRatioVariable","RangeDistributionRatioVariable","dv","minimumValue","maximumValue","RangeDistributionConstraint","sourceUnitOperationId","constraintName","constraintValue","MixingConstraints","addNewConstraint","removeConstraint","cstr","removeMinMaxConIfNoOptimizable","minAndMaxConstraintsExists","removeExactConstraintIfOptimizable","exactValueConstraintExists","Mixer","addInletDistributionRatioVariables","addMixingRatioVariable","clearAllMixingRatioVariables","rangeDistributionRatioVar","mixingRatioVariables","createConstraintsObjInstance","initConstraintsBasedInMixingRatios","findMixingRatioVariable","drv","removeInletDistributionRatioVariables","constraintOption","blendRecipeOption","unitOpId","getUnitOperation","initConstraintsBasedInExistingConstraints","SagdSource","Pipe","multiPeriodEnabled","pressureDrop","ghgIntensityPerMassDistance","pipeLength","pipeDensitySpec","LiquidDensity","KG_M3","altGhgIntensity","massDensity","Refinery","feedstockValue","cumulativeGhgEmissions","lightEndsMargin","naphthaMargin","distillateMargin","gasOilMargin","vacuumResidueMargin","train1Capacity","train2Capacity","maximumSulfurContent","maximumMassDensity","train2MaximumSulfurContent","train2MaximumMassDensity","train2FeedstockValue","train2MinimumFlow","hasTwoInlets","sulfur","ThirdPartyRefinery","suncorProfitPercentage","suo","Splitter","distributionRatioVariables","initConstraintsBasedInDistributionRatios","addOutletDistributionRatioVariables","clearAllRatioVariables","distributionRatioVar","findDistributionRatioVariable","findDistributionRatioVariableName","removeOutletDistributionRatioVariables","defaultUpgraderModel","Upgrader","amineCirculationRate","sourGhgIntensity","sourProductPrice","sweetGhgIntensity","sweetProductPrice","totalH2SProduction","ccrRemoval","nitrogenRemoval","sulfurRemoval","sweetProductRatio","deaUseRate","maximumHydrogenProduction","swellFactor","amineRateCapacity","sulfurCapacity","useSubFlowsheet","hydrogenPlantsCustomModel","useCustomModelForHydrogenPlants","upgraderModelScript","ThirdPartySource","OffshoreSource","RenewableTypes","SuncorRenewable","renewable","renewableType","OFFSET","capacityFactor","ghgCredit","opex","amortizedCapex","SuncorRenewableBlock","renewablesList","sr","anotherSrb","renewablesToRemove","findRenewableById","renewableToRemove","anotherSr","serializedUnit","newSr","DistributionRatioVariablePerCut","lightEnds","lightNaphtha","heavyNaphtha","distillate","LGO","HGO","VGO","HVGO","resid","initEmpty","BoilingPointCut","bpc","pc","owner","DRU","boilingPointCuts","percentCuts","solveOption","Energyrate","GJ_H","addDistributionVariable","emptyDistributionValues","removeDistributionRatioVariable","calculateDistributionVariables","sum","prev","clearComponent","VAC","h2sProductionRate","h2sProduction","UpgraderInlet","Hydrotreater","maximumNitrogen","butaneRecovery","separateLightEndsProduct","totalInletVolume","totalInletSulfur","totalInletNitrogen","hydrogenUseRateVariables","feedSlateDisabled","ds","findHydrogenUseRateVariable","nitrogen","defaultDCUModel","DCU","producedCoke","percentCokeToCombustion","cokeEmissionFactor","minimumAPI","maximumCCR","modelScript","GenericSink","getInletStream","CommodityTankConstraintOption","CommodityTank","commodityVolume","commoditySulfur","commodityNitrogen","commodityDensity","maxSulfur","maxDensity","maxNitrogen","floatTank","estimateProductValue","isBlendRatioConstraintSelected","ProductTank","inventory","productVolume","maxVolume","minVolume","initialVolume","productType","DEFAULT_HYDROCRACKER_MODEL","Hydrocracker","Extraction","bitumenLossToTailing","InletTransferUnit","OutletTransferUnit","WaterUnitOperation","WaterSource","massFlowrate","temperature","pressure","vaporFraction","KPPH","WaterHeatExchangerConfiguration","WaterHeatExchangerTemperatureCalculationMode","WaterHeatExchanger","configuration","temperatureCalculationMode","outletTemperature","pressureDropTube","pressureDropShell","geometryFactor","duty","ua","uaResult","lmtd","Temperature","CELSIUS","PressureCalculationMode","WaterTurbine","pressureCalculationMode","outletPressure","isentropicEfficiency","polytropicEfficiency","pressureRatio","dutyResult","massCapacity","minimumMassFlowrate","minimumDuty","maximumDuty","Power","KW","Dimensionless","PERCENT","TemperatureCalculationMode","WaterHeater","temperatureGain","WaterCooler","temperatureDrop","WaterTwoPhaseSeparator","gasLiquidCarryover","liquidGasCarryover","WaterPump","pressureGain","efficiency","WaterUtilityUnitOperation","isSolved","WaterValve","WaterSink","maximumMassFlowrate","getStreamComingInToTheUnitOp","getStreamsByOutletUnitOperationId","WaterMixer","BaseWaterSplitter","waterStreams","filterAllMaterialStreams","ws","outletUnitOperation","findDistributionRatioVariableIndex","WaterSplitter","FluidCoker","feedDensity","naphthaYield","gasOilYield","producedFuelGasRate","useDataDrivenYieldModel","producedFuelGas","minimumApi","maximumCcr","TONNES_D","ThermalCalculationMode","WaterPipePressureModel","WaterPipeSegment","waterPipeSegment","segmentLength","insideDiameter","outsideDiameter","segmentAngle","relativeRoughness","overallU","inletAmbientTemperature","outletAmbientTemperature","Length","M","CM","getWaterPipeSegmentOwner","wPipeSegmentId","waterPipeOwner","waterPipes","filterUnitOperations","WaterPipe","wP","wPSegments","ArrayDiff","baseArray","diff","against","compareFunction","left","right","intersection","l","pipePressureModel","thermalCalculationMode","stepLength","sourceWaterPipe","destinationWaterPipe","mapStepLengthProperty","sourceWaterPipeSegment","destinationWaterPipeSegment","informationStream","mapSimulationVariables","waterPipeSegmentsToAdd","addWaterPipeSegments","waterPipeSegmentsToDelete","waterPipeSegmentToDelete","removeWaterPipeSegment","wps","setWaterPipeSegmentsName","objs","dePersistPipeSegments","isId","getOtherBaseObject","HgoHydroteaterCatalystRun","defaultHgoHydrotreaterModel","HgoHydrotreater","lgoYield","hgoYield","catalystRun","WaterSourceInformationStream","waterSourceInformationStream","simulationVariableId","providerUnitOperationId","BaseWaterImportUnitOperation","inletSourceInformationStreams","addInformationStream","removeInformationStream","removeInformationStreamsByProviderUnitOperationId","streamsToRemove","getStreamComingOutOfTheUnitOp","getStreamsByInletUnitOperationId","dePersistInformationStreams","WaterSourceImport","WaterSinkImport","Pressure","KPAA","LgoHydroteaterCatalystRun","LgoYieldProfile","defaultLgoHydrotreaterModel","LgoHydrotreater","yieldProfile","WaterBoiler","outletVaporFraction","power","WaterHeader","HydrogenPlant","hydrogenGHGIntensity","hydrogenProduction","SulfurPlant","sulfurGHGIntensity","sulfurFlowrate","FuelGasUtilityUnitOperation","FuelGasUnitOperation","FuelGasFlare","FuelGasSink","EnergyStream","energyStream","FuelGasSinkImport","energyStreams","heatFlow","addEnergyStream","es","removeEnergyStream","dePersistEnergyStreams","FuelGasSourceInformationStream","FuelGasSourceImport","FuelGasMixer","FuelGasSource","fgs","BaseFuelGasSplitter","streams","ms","FuelGasSplitter","FuelGasAmineContactor","h2SRemovalFraction","WaterCogeneration","heatRate","quality","otsgEnergyDemand","turbineEnergyDemand","totalEnergyDemand","hrsgScript","EnergyPerPower","KJ_KWH","UnitOperationFactory","sourceUnitOperation","createUnitOperation","Cut","cut","olefinContent","weightFraction","aromaticityFactor","anilinePoint","afc","ccr","volumeFraction","MassFraction","PPMW","clearValues","clearIds","obsoleteColorPalette","colors","getColor","color","includes","floor","random","BaseStream","baseStream","streamColor","fromPort","toPort","inletUnitOperationId","isRecycleStream","inletUnitOperation","connectionName","StreamCompositionNames","enumValuesToArray","enumToConvert","DistillationCompositionNames","SuncorMaterialStream","materialStream","initStreamCompositions","lightEndsCut","lightNaphthaCut","heavyNaphthaCut","distillateCut","LGOCut","HGOCut","VGOCut","HVGOCut","residCut","setCompositionNames","composition","volumeComposition","distillationComposition","initSingleComposition","COMPOSITION_LENGTH","DISTILLATION_COMP_LENGTH","streamComposition","destinationComposition","compositionLength","sourceComposition","getStreamCompositionArray","addCompoundSimVars","destinationCompositionArray","sourceCompositionArray","compound","compositionNames","setCompositionQuantities","hasFlowrate","clearCompositionResults","sms","dePersistComposition","svId","getCompositionSimVars","ce","RefineryEmissionsOptions","CaseSettings","caseSettings","cogenMethodology","operatingDaysPerYear","cadUSDExchange","refineryEmissions","carbonPrice","wtiPrice","SUOnly","CaseStudyCategory","categoryName","filterCallback","SuncorCalculator","calculator","integration","totalGhg","totalSuncorGhg","totalRevenue","totalOpex","totalCapex","totalValue","totalGhgIntensity","totalSuncorGhgIntensity","so","Flowsheet","flowsheet","isSubflowsheet","getDiagramJson","diagramJson","setDiagramJson","StreamCategory","WaterMaterialStream","waterMaterialStream","FuelGasMaterialStream","stream","lhv","initComposition","compoundNames","fgms","simulationVariableDeletedSubject","kpiDeletedSubject","isReady","cloneUnitOperation","sourceUnitOp","createAndAddToUnitOperations","addToUnitOperations","findUnitOpsByCategory","findUnitOperationsByFlowsheetId","unitOperationPool","getBitumenConversionUnits","bitumenUnits","sId","materialStreamPool","getMaterialStream","filterWaterMaterialStreams","getWaterStream","filterFuelGasMaterialStreams","getFuelGasStream","getSuncorMaterialStream","filterSimvars","simulationVariablePool","filterFlowsheets","flowsheetPool","getFirstLevelFlowsheet","getUnitOperationName","getAllSuncorMaterialStreamIds","getAllWaterMaterialStreamIds","getAllMaterialStreamIds","getAllFuelGasMaterialStreamIds","getAttachedStreams","createFlowsheet","getFlowsheet","findFlowsheetByUnitOperationId","otherBaseObjectPool","getBaseObject","childrenObjectsForRemoval","onSimulationVariableDeleted","removeComments","multiPeriodSettings","removeMultiPeriodParameterBySimulationVariableId","deleteUnitOperationById","deleteFlowsheetByUoId","waterImportUnitOperations","bwi","waterImportUnitOperation","fuelGasSourceImportList","fg","fuelGasSinkImportList","deleteMaterialStreamById","subFlowsheetUnitOps","saveUnitOperation","saveCaseSettings","initCaseStudyManagerCategories","caseStudyManager","addToUncertaintyCategories","bo","initMainFlowsheetParametricStudyCategories","addToParametricStudyCategories","initUpgraderFlowsheetParametricStudyCategories","initSteamFlowsheetParametricStudyCategories","initFuelGasFlowsheetParametricStudyCategories","initExtractionFlowsheetParametricStudyCategories","initMainFlowsheetCategories","kpiManager","addToCategories","initStreamsCategory","initUpgraderFlowsheetCategories","initSteamFlowsheetCategories","initFuelGasFlowsheetCategories","initMultiPeriodCategories","unitOperationExistsByName","removeFluidAnalysis","analysisId","calculateUnitOperationName","originalName","nameIndex","calculateMaterialStreamName","ownerObjectId","indices","commentsPool","ownerId","commentIndex","getDiagramString","diagram","setDiagramString","getActiveFlowsheet","activeFlowsheet","setActiveFlowsheet","getMainFlowsheetId","setMainFlowsheetId","assayManager","objectiveFunction","constraintViolationEntries","marginalValueEntries","Parameter","parameter","simulationVariable","initMemberVariables","UncertainParameter","uncertainParameter","distributionType","confidenceInterval","up","KpiResult","kpiResult","kpi","cumulativeProbabilities","p90Value","p10Value","ParameterSensitivity","sensitivity","partialDifferential","oneAtATime","standardRegression","rankedRegression","tornadoMean","tornadoMin","tornadoMax","tornadoRank","getTornadoMeanCapture","getTornadoMinCapture","getTornadoMaxCapture","UncertaintyAnalysis","uncertaintyAnalysis","uncertainParameters","parameterSensitivities","ps","kpiResults","sampleSize","simulationVariableDeletedRequest","removeParameterSensitivityBySimulationVariable","removeParameterBySimulationVariable","removeKpiResultsByKpi","kpiDeletedRequest","removeParameterSensitivityByKpi","addParameterBySimulationVariableId","addParameterBySimulationVariable","findParameterBySimulationVariableId","addParameter","parametersToPool","removeParameterById","removeParameter","removedParameter","removeParameterSensitivityByParameter","findParameterById","parametersToRemove","existingParameter","resultsToRemove","resultToRemove","addParametersToPool","pId","dePersistResults","persistedAnalysis","ParametricStudyKpiResult","parametricStudyResult","variableValues","SimulationVariableArray","simulationVariableArray","addValue","removeValue","convertValueToAnotherUnit","parseValue","convertedValues","convertValueToInternalUnit","convertToCaptureUnitArray","noUnitOrQuantity","captureUnit","internalUnit","convertToAnotherUnitArray","ParametricStudyParameter","addState","removeLastValue","ParametricStudy","parametricStudy","removeResultByKpi","setParameterBySimulationVariableId","setParameter","subscribeToOwnerCaseEvents","isParameterProvider","pp","isKpiProvider","MultiPeriodParameter","multiPeriodValues","isMultiPeriodParameter","CaseStudyManager","analysisResultsAdded","uncertaintyAnalyses","currentStudyId","parametricStudies","currentAnalysisId","initParameterCategories","parametricStudyCategories","addUncertaintyAnalysis","addParametricStudy","removeUncertaintyAnalysis","analyses","removeParametricStudy","uncertaintyCategories","findUncertaintyAnalysisById","findParametricStudy","addUncertaintyAnalysisResults","getAvailableKpiProviders","uoKeys","streamIds","boKeys","getAvailableMultiPeriodProviders","multiPeriodProviders","getKpiProvidersForCategory","availableKpiProviders","baseObjectsByCategory","kpiProvider","getMultiPeriodProvidersForCategory","availableMultiPeriodProviders","multiPeriodProvider","getAvailableParameterProviders","getUncertainParameterProvidersByCategory","availableParameterProviders","paramProvider","getParameterProvidersByCategory","getUncertainParameterProvidersByCategoryName","selectedCategory","getParameterProvidersByCategoryName","KpiManager","selectedKpis","removeKpi","categories","cat","ownerBaseObjectId","getKpiProvidersByCategoryName","addKpiById","addKpi","removeKpiById","kpiId","getDefaultKpis","addDefaultKpis","defaultKpis","removeDefaultKpis","objectiveFunctionType","Cost","GHG","ObjectiveFunction","objectiveFunctionName","FluidAnalysis","fluidAnalysis","Compound","SuncorHypotheticalCompound","nitrogenContent","sulfurContent","ccrContent","vabp","fbp","ibp","SuncorFluidAnalysis","fakeFluidPackage","assayName","assayType","initSimVars","initFluidPackage","fs","hypo","getCompositionElement","names","sfa","GasFluidAnalysis","gasFluidAnalysis","gfa","AssayManager","fluidAnalyses","addFluidAnalysis","fa","findFluidAnalysisById","getAssaysByCategory","getAssayByName","getAllAssays","cloneAssay","assay","clonedAssay","MultiPeriodSettings","numberOfSteps","evaluateInventory","getMultiPeriodProvidersByCategoryName","addMultiPeriodParameter","multiPeriodParameters","mpp","removeMultiPeriodParameter","multiPeriodResults","Project","createCase","cases","createEmptyCase","addCase","findCaseById","findCaseIndexById","version","SolveCaseCanceller","apiService","cancelSolve","cancelSolveCase","ApiObjectsBackupManager","backupObject","removedAnalyses","analysisToKeep","analysesToRemove","studyToKeep","csm","studiesToRemove","removedStudies","LogManagerService","logMessageSubject","logSerializedMessagesSubject","clearLogCounterSubject","clearLogManagerSubject","severity","timestamp","logSerializedMessages","serializedMessages","clearLogCounter","clearLogManager","ProgressIndicatorService","showSubject","hideSubject","cancelSubject","solveCanceller","setApiService","ApiService","logManager","progressIndicator","readResourceFile","solveCase","caseId","currentCase","flowsheets","dataToSend","caseModel","email","solveSubject","solveObservable","timeToGetResponse","performance","stacktrace","solvedResponse","backupFlowsheets","sendCaseToProcessEcology","formData","getMultipartHeaders","solveCaseAsync","caseToBeSolvedId","sendSolveAsyncRequest","handleSolveCaseError","GojsBaseStream","linkKey","to","GojsSuncorMaterialStream","volumetricFlowrateUnit","Volumetricflowrate","KBPCD","ghgIntensityUnit","priceUnit","CurrencyPerVolume","CAD_BBL","dashedLine","ConstraintTextSolver","valuesTextInfo","variableName","variableValue","GojsUnitOperation","isConstrainableObject","co","constraintInfo","solveText","constraintColor","GojsWaterMaterialStream","massFlowrateUnit","temperatureUnit","pressureUnit","GojsFuelGasMaterialStream","flowrateUnit","heatFlowUnit","lhvUnit","GojsStreamFactory","FlowsheetDiagramService","clearCaseSubject","contextClickOnNodeSubject","doubleClickOnNodeSubject","doubleClickOnLinkSubject","doubleClickOnWaterLinkSubject","doubleClickOnFuelGasLinkSubject","connectionFromSplitterSubject","connectionFromBitumenConversionSubject","cutRatioVariableConnectionSubject","connectionToMixerSubject","linkCreatedSubject","linkDeletedSubject","mainMapCenterSubject","nodeCreatedSubject","nodeDeletedSubject","nodeDraggedSubject","updateModelSubject","setStreamCategory","streamCategory","clearCaseResults","contextClickOnNode","nodeId","doubleClickOnNode","doubleClickOnLink","linkId","doubleClickOnWaterLink","doubleClickOnFuelGasLink","linkDeleted","linkData","inletId","gojsDiagram","inletUnitOpId","outletUnitOpId","nodeCreated","nodeDragged","addNodeData","requestUpdate","nodeDeleted","drawDiagram","caseToGoJSModel","updateUnitOperationsInfoOnDiagram","uoId","saveUnitOperationOnModel","gojsUo","findNodeForData","findNodesByExample","saveStreamOnModel","findLinkDataForKey","gs","makeAllUnitOperationsDeletable","deletable","each","preventUnitOperationDeletion","linkDrawn","subject","fromNode","splitterId","toNode","nodeDataArray","linkDataArray","keyLessNodes","addNodeDataCollection","addLinkDataCollection","moveParts","Point","updateRecycleStreamData","link","updateStreamData","skipSimVars","gojsLink","findLinksByExample","gojsStream","zoomToFit","hideDashedLineLinks","links","showDashedLineLinks","hideInactiveItems","hasActiveLinks","findLinksConnected","showInactiveItems","hideNodeLabels","hiddenLabel","updateTargetBindings","showNodeLabels","toJson","setDiagramModel","Model","clearModel","changeTemplate","templateName","setCategoryForNodeData","deleteOutletStreams","linksToDelete","findLinksOutOf","selectCollection","commandHandler","deleteSelection","updateUpgraders","upgraders","findPort","deleteInletStreams","findLinksInto","zoomToUnitOperation","select","anim","reversible","scrollToPart","setMultiPeriodStyle","setNormalStyle","setDiagramAsReadOnly","isReadOnly","setDiagramAsEditable","OldCaseValidator","messages","validateSplitters","validateSources","validateRefineries","validatePipes","validateUpgraders","validateHydrocrackers","valid","splitters","unitOperations","AppInfo","BaseObjectFactory","sourceObj","BaseObjectHierarchy","OtherBaseObjectPoolDeserializer","serializedCase","arrangedPool","arrangePool","serializedPool","TOP","SECOND","THIRD","FOURTH","deserializeSimulationVariableArrays","serializedArray","sva","deserializeLowerHierarchyObjects","objectsInHierarchy","serializedObject","postDeserialization","ResourceDataService","loadResourceFile","UnitOperations","assayManagerResourceData","getUOResourceData","getAssayManagerResourceData","ConstraintViolationEntry","ownerOperationName","constraintViolationPercent","MarginalValueEntry","unitOperationName","objFunctionChangeRate","objFunctionChangeRateUnit","ownerOperationId","StreamFactory","streamData","BaseObjectComment","comment","commentDate","CaseDeserializerService","resourceDataService","deserialize","plainCase","plainObjectToCase","loadSimulationVariables","otherBaseObjectDeserializer","loadUnitOperations","loadMaterialStreams","loadFlowsheets","loadComments","loadOtherBaseObjects","rd","newComment","streamId","serializedStream","fId","serializedFlowsheet","loadCaseSettings","loadMultiPeriodSettings","loadCaseStudyManager","loadAssayManager","loadObjectiveFunction","loadCalculator","loadConstraintViolationEntries","loadWaterPipeSegments","loadWaterSourceImportInformationStreams","loadWaterSinkImportInformationStreams","loadFuelGasSinkImportEnergyStreams","loadFuelGasSourceImportInformationStreams","waterPipeList","waterSourceImportList","waterSinkImportList","fuelGasImportList","fuelGasImport","fuelGasSourceList","V102","unitsWithFluidAnalysis","oldComposition","V201","hydrotreaters","ratioVariable","V210","unitOpsWithAssays","am","V2100","blocks","CompatibilityService","makeCompatible","serializedProject","compatibilityFunctions","getCompatibilityFunctions","versionsList","firstFunctionToApply","AfterDeserializationCompatibilityService","makeCaseCompatible","addMixingRatioVariablesToAllNormalMixers","addMinimumAndMaximumRatioValuesToNormalOptimizableSplitters","setRangeConstraintsName","mixersList","inletStreamsList","inletName","optimizableSplittersList","constraintsWithMissingOwner","ProjectDeserializerService","caseDeserializer","compatibility","afterDeserializationCompatibility","plainProject","plainObjectToProject","mainFlowsheet","SankeyUnitOperation","getRandomColor","SankeySuncorMaterialStream","SankeyWaterMaterialStream","SankeyFuelGasMaterialStream","Molarflowrate","MMSCFD","SankeyDiagramService","flowsheetDiagramService","caseToSankeyDiagram","upgId","subDiagram","restoreKeylessNodes","sankeyDiagram","getSankeyMaterialStreamByStreamType","removePipes","removeMixers","removeSplittersWithOneInlet","removeSplittersWithOneOutlet","removeDisconnectedNodes","nodesToDelete","it","findNodeForKey","findSinkNode","linksToReasign","sinkNode","removeParts","disconnectedNodes","linksConnected","outLink","getLinksToGenericSink","hideGenericSinks","visible","showGenericSinks","FileService","downloadFile","filename","generateFile","saveAs","jszip","JSZip","file","binary","generateAsync","getPools","getFile","DefaultBaseObjectFormGroupMapper","simVarMapper","ignoreForAutoMapping","otherSimVar","WaterBoilerFormGroupMapper","solverCalculatedVariables","userSpecifiedVariables","WaterSourceImportFormGroupMapper","destinationInstance","sourceInformationStream","destinationStream","informationStreamsToAdd","destinationInformationStream","informationStreamsToDelete","informationStreamToDelete","WaterSinkImportFormGroupMapper","BaseWaterSplitterFormGroupMapper","sourcePlainObject","mapRatioVariables","sourceValue","WaterHeaderFormGroupMapper","WaterSplitterFormGroupMapper","FuelGasSinkImportFormGroupMapper","sourceEnergyStream","energyStreamsToAdd","destinationEnergyStream","energyStreamsToDelete","energyStreamToDelete","FuelGasSourceImportFormGroupMapper","BaseFuelGasSplitterFormGroupMapper","FuelGasSplitterFormGroupMapper","WaterSourceFormGroupMapper","BaseSplitterFormGroupMapper","SplitterFormGroupMapper","mapDistributionRatioVariables","mapConstraintValues","constraintsLength","mixingRatioVariable","mixRatioVar","BaseProductTankFormGroupMapper","ProductTankFormGroupMapper","HydrotreaterFormGroupMapper","destinationHydrotreater","sourceHydrotreater","MixerFormGroupMapper","mapMixingRatioVariables","BitumenConversionFormGroupMapper","destinationBitumenConversion","plainOutlet","destinationOutlet","BaseObjectFormGroupMapper","mappers","SimulationVariableMapper","isInletDistributionRatioVariablesOwner","isOutletDistributionRatioVariablesOwner","SendCaseModalService","CoreService","sendCaseModal","projectDeserializer","fileService","toastr","sankeyDiagramService","caseChangedSubject","currentCaseReplacedSubject","unitOperationAddedSubject","assayAddedSubject","unitOperationUpdatedSubject","assayUpdatedSubject","unitOperationRemovedSubject","assayRemovedSubject","streamRemovedSubject","streamAddedSubject","createEmptyProject","service","nodeCreatedRequest","createUnitOpFromNodeData","connectionFromSplitterRequest","createSplitDistributionVariable","cutRatioVariableConnectionRequest","createCutDistributionVariable","connectionFromBitumenConversionRequest","createBitumenConversionOutlet","linkCreatedRequest","addStream","linkDeletedRequest","removeStream","clearCaseRequest","clearCurrentCaseResults","nodeDeletedRequest","removeUnitOperation","nodeDraggedRequest","unitOperationData","updateUnitOperationLocation","unitOperationUpdatedRequest","unitOperationUpdated","changesInValues","redrawDiagram","notifyCaseChanged","notifyCurrentCaseReplaced","wholeProjectReplaced","nId","copyUnitOperationById","saveUnitOperationFromTemplateDrivenForm","unitOperationCopy","originalUnitOperation","notifyUnitOperationUpdated","saveUnitOperationWithReactiveFormWhenCustomCodeChange","formGroupWrapper","detectChangesInValues","saveUnitOperationWhenCustomCodeChange","saveUnitOperationFromReactiveForm","svMapper","mapper","updateBaseObjectNameOnFormGroup","actualUnitOperation","getRawValue","changesInName","detectChangesInName","notifyAssayUpdated","notifyAssayAdded","notifyAssayDeleted","saveStream","saveCurrentFlowsheet","unitOperationBeingDeleted","detachStream","inletUnitOp","outletUnitOp","attachedStreams","attachedStream","notifyAllChildUnitOperationsRemoved","allChildUnitOperations","childUnitOperation","projectToJson","parseSolvedResponse","validation","showStopButton","sendSolveCaseAsyncRequest","sendSolveCaseRequest","getProjectFormData","caseSolveSuccess","solveSuccess","isCaseReady","solvedCaseIndex","loggedMessages","updateCurrentCaseDiagramString","setCurrentCaseById","newCurrentCase","setCurrentCase","setCurrentFlowsheet","createFlowsheetAndSave","DeletedPortType","AbstractSubFlowsheetHandler","coreService","getDefaultNodeData","addNewNodeOnDiagram","newNode","syncBlockInletOutletPorts","outletUnitOperations","getSubFlowsheetOutlets","inletUnitOperations","getSubFlowsheetInlets","outletPorts","inletPorts","handleDeletedInletPorts","handleDeletedOutletPorts","inlet","addOrUpdateInletPort","commodity","addOrUpdateOutletPort","updateAllRelationshipsFromData","updateAllTargetBindings","ownerUnitOperation","inetUnitOperations","deletedInlets","port","portId","handleDeletedPorts","INLET","deletedOutlets","OUTLET","deletedPorts","deletedPortType","portsArray","removeArrayItem","upNode","portNode","addOrUpdatePort","tooltip","newPortData","insertArrayItem","UpgraderSubFlowsheetHandler","addUpgraderInlet","loc","syncWhileFlowsheetLoading","syncL2WithUpgraderPorts","upgraderId","upgraderInlets","addExtraUpgraderInlet","removeExtraUpgraderInlet","syncAllBlocksInletOutletPorts","ExtractionSubFlowsheetHandler","addInletTransferUnit","UtilitiesFlowsheetHandler","FuelGasSubFlowsheetHandler","SubFlowsheetService","upgraderSubFlowsheetHandler","utilitiesFlowsheetHandler","fuelGasFlowsheetHandler","extractionSubFlowsheetHandler","sankeyService","enableMaterialStreams","subFlowsheetHandlers","currentCaseReplacedRequest","onCurrentCaseReplaced","currentCaseSubFlowsheetStack","setSubFlowsheetStyle","changeFlowsheet","prepareSubFlowsheet","setActiveSubFlowsheetHandler","activeSubFlowsheetHandler","isUtilitiesFlowsheetHandlerActive","enableWaterStreams","isFuelGasFlowsheetHandlerActive","enableFuelGasStreams","unitOperationCategory","newSubFlowsheetHandler","exitToMainFlowsheet","setNormalFlowsheetStyle","setCurrentFlowsheetById","clearCurrentCaseSubFlowsheetStack","clearAllSubFlowsheetStacks","updateMaxLinksForAllSubFlowsheets","subFlowsheetOwnerId","getSubFlowsheetOwnerNames","currentCaseId","allSubFlowsheetStacks","currentSubFlowsheetCategory","currentSubFlowsheetId","isPlainBasicSimulationVariable","DefaultBaseObjectFormChangeDetector","formGroup","originalFormValue","currentFormValue","currentValueKeys","ignoreForDefaultChangeDetection","originalValue","isTypeBoolean","WaterSinkImportFormChangeDetector","WaterSourceImportFormChangeDetector","WaterHeaderFormChangeDetector","WaterSplitterFormChangeDetector","FuelGasSplitterFormChangeDetector","FuelGasSinkImportFormChangeDetector","FuelGasSourceImportFormChangeDetector","SplitterFormChangeDetector","currentDistributionRatioVariable","originalDistributionRatioVariable","LgoHydrotreaterFormChangeDetector","ProductTankFormChangeDetector","MixerFormChangeDetector","currentMixingRatioVariable","originalMixingRatioVariable","BitumenConversionFormChangeDetector","originalOutlet","currentOutlet","BaseObjectFormChangeDetector","detectors","defaultChangeDetector","BaseObjectFormGroupWrapper","controls","getFormGroup","storeOriginalValue","removeControl","hasControls","FlowsheetService","subFlowsheetService","openCaseSettingsSubject","openPropertyWindowSubject","openStreamPropertyWindowSubject","openWaterStreamPropertyWindowSubject","openFuelGasStreamPropertyWindowSubject","closePropertyWindowSubject","saveCustomCodeSubject","prepareUnitOperationForSaveSubject","subFlowsheetOpenedSubject","subFlowsheetClosedSubject","doubleClickOnNodeRequest","openPropertyWindow","contextClickOnNodeRequest","doubleClickOnLinkRequest","openStreamPropertyWindow","doubleClickOnWaterLinkRequest","openWaterStreamPropertyWindow","doubleClickOnFuelGasLinkRequest","openFuelGasStreamPropertyWindow","propertyWindowFormGroupWrapper","UntypedFormGroup","openCaseSettings","closePropertyWindow","saveCustomCodeChanges","prepareUnitOperationForSave","loadUnitOperationFlowsheet","closeSubFlowsheet","UncertaintyAnalysisComponentService","solveErrorSubject","notifySolveError","UncertaintyAnalysisApiService","uncertaintyCore","solveUncertaintyAnalysis","analysis","handleUncertaintyAnalysisError","handleError","errMsg","observableThrowError","finishSubscriptions","UncertaintyAnalysisService","caseService","uncertaintyApi","solvedRequest","serializedAnalysis","CaseStatsService","core","findOtherBaseObjectsByCategory","filterOtherBaseObjects","getUnitOperationCount","getMaterialStreamCount","getOtherBaseObjectCount","getSimulationVariableCount","ServerUtcDateService","setServerSeedDate","serializedSeedDate","serverSeedDate","retrievedAt","getCurrentDate","elapsedTime","getServerSeedDate","CommentsService","utcDateService","addComment","getUserName","getUserId","updateComment","removeComment","commentId","getCommentsPool","getCommentById","com","getCommentsByOwnerId","Text","lineAt","RangeError","lineInner","lines","clip","decompose","TextNode","eq","scanIdentical","RawTextCursor","skip","lineBreak","iter","dir","iterRange","PartialTextCursor","iterLines","inner","LineCursor","sliceString","TextLeaf","textLength","isLine","string","Line","sliceText","joined","appendText","mid","newLen","lineSep","endLine","childOpen","updated","totalLines","copy","iA","iB","eA","eB","chA","chB","ch","chunk","maxChunk","minChunk","chunked","currentLines","currentLen","currentChunk","nextInner","top","offsetValue","cursor","afterBreak","number","extend","parseInt","isExtendingChar","isRegionalIndicator","ZWJ","findClusterBreak","forward","includeExtending","nextClusterBreak","prevClusterBreak","surrogateLow","charCodeAt","surrogateHigh","codePointAt","codePointSize","countBefore","code0","code1","fromCodePoint","fromCharCode","DefaultSplit","MapMode","Simple","TrackDel","TrackBefore","TrackAfter","ChangeDesc","sections","newLength","iterGaps","posA","posB","iterChangedRanges","individual","iterChanges","invertedDesc","composeDesc","composeSets","mapDesc","before","mapSet","mapPos","assoc","endA","touchesRange","json","ChangeSet","inserted","fromA","toA","fromB","_toB","invert","compose","desc","ranges","resultSections","resultInserted","filteredSections","SectionIter","addSection","off","addInsert","filtered","force","spec","insText","insLen","forceJoin","endB","setA","setB","mkSet","piece","createSet","len2","sectionLen","insB","textBit","forward2","SelectionRange","bidiLevel","level","goalColumn","change","EditorSelection","range","includeAssoc","mainIndex","main","asSingle","addRange","replaceRange","which","fromJSON","normalized","checkSelection","selection","docLength","nextID","Facet","combine","compareInput","isStatic","enables","extensions","reader","sameArray","FacetProvider","compute","computeN","field","dependencies","facet","dynamicSlot","addresses","_a","getter","depDoc","depSel","depAddrs","dep","tr","docChanged","ensureAll","newVal","compareArray","reconfigure","oldState","oldAddr","address","oldVal","getAddr","StateField","addrs","changed","addr","ensureAddr","dynamicFacetSlot","providerAddrs","providerTypes","depChanged","oldProviders","facets","initField","define","createF","updateF","compareF","provides","slot","extension","Prec_","lowest","low","high","highest","prec","ext","PrecExtension","Prec","Compartment","CompartmentInstance","compartment","compartments","Configuration","dynamicSlots","staticValues","statusTemplate","staticFacet","fields","newCompartments","seen","known","oldFacets","computeSlot","languageData","allowMultipleSelections","lineSeparator","changeFilter","transactionFilter","transactionExtender","readOnly","Annotation","AnnotationType","StateEffectType","StateEffect","mapping","mapped","effects","effect","appendConfig","Transaction","startState","annotations","scrollIntoView","newDoc","newSelection","applyTransaction","annotation","ann","reconfigured","isUserEvent","userEvent","addToHistory","remote","joinRanges","mergeTransaction","sequential","mapForA","mapForB","mapEffects","resolveTransactionInner","docSize","sel","asArray","single","resolveTransaction","specs","seq","extendTransaction","extenders","filterTransaction","back","filters","none","CharCategory","Word","Space","Other","nonASCIISingleCaseWordChar","wordChar","EditorState","require","startValues","conf","replaceSelection","toText","changeByRange","result1","newChanges","newMapped","mapBy","sliceDoc","fieldInit","tabSize","phrase","phrases","languageDataAt","side","provider","charCategorizer","at","makeCategorizer","wordChars","char","hasWordChar","wordAt","kA","kB","combineConfig","configs","RangeValue","Range","startSide","endSide","point","mapMode","cmpRange","Chunk","maxPoint","startAt","lo","hi","between","newPos","newFrom","newTo","curFrom","curTo","RangeSet","chunkPos","nextLayer","chunkEnd","updateSpec","filterFrom","filterTo","cur","LayerCursor","goto","spill","RangeSetBuilder","addInner","rangeIndex","chunkIndex","addChunk","nextChunk","finishInner","chunks","touch","HeapCursor","sets","oldSets","newSets","textDiff","comparator","minPointSize","sharedChunks","findSharedChunks","sideA","SpanCursor","sideB","sameValues","openRanges","openStart","activeForPoint","openCount","pointFrom","pointRank","openEnd","span","lazySort","layer","finishChunk","newArrays","chunkStart","setMaxPoint","lastFrom","lastTo","inA","shared","minPoint","rank","gotoInner","setRangeIndex","heap","heapBubble","childIndex","activeTo","activeRank","minActive","removeActive","findMinIndex","addActive","trackOpen","wasPoint","nextVal","startA","startB","dPos","clipEnd","comparePoint","compareRange","foundPos","countColumn","findColumn","col","strict","COUNT","for","SET","globalThis","StyleModule","rules","splitSelector","render","isKeyframes","local","isAt","getRules","modules","nonce","setNonce","StyleSet","mount","adoptedSet","ownerDocument","win","defaultView","adoptedStyleSheets","CSSStyleSheet","adopted","sheet","styleTag","mod","insertRule","mac","ie","getSelection","hasSelection","anchorNode","clientRectsFor","textRange","getClientRects","isEquivalentPosition","targetNode","targetOff","scanFor","domIndex","previousSibling","isBlockElement","nodeName","maxOffset","childNodes","contentEditable","flattenRect","rect","bottom","windowRect","vp","visualViewport","innerWidth","innerHeight","getScale","elt","scaleX","offsetWidth","scaleY","offsetHeight","isFinite","DOMSelectionState","anchorOffset","focusNode","focusOffset","domSel","setRange","scratchRange","preventScrollSupported","focusPreventScroll","setActive","focus","scrollTop","scrollLeft","preventScroll","createRange","setEnd","setStart","dispatchKey","mods","keyCode","cancelable","down","KeyboardEvent","synthetic","defaultPrevented","clearAttributes","attributes","removeAttributeNode","isScrolledToBottom","scrollHeight","clientHeight","textNodeBefore","startNode","startOffset","textNodeAfter","DOMPos","precise","noChildren","ContentView","overrideDOMText","posAtStart","posBefore","posAtEnd","view","breakAfter","posAfter","sync","track","contentView","canReuseDOM","reuseDOM","written","rm$1","_dom","localPosFromDOM","after","bias","lastChild","domBoundsAround","fromI","fromStart","toI","toEnd","prevEnd","startDOM","endDOM","markDirty","andParent","markParentsDirty","childList","setParent","setDOM","cmView","rootView","replaceChildren","ignoreMutation","_rec","ignoreEvent","_event","childCursor","ChildCursor","childPos","findPos","isEditable","isWidget","isHidden","hasStart","become","getSide","fromOff","toOff","breakAtStart","breakAtEnd","mergeChildrenInto","dLen","vendor","ie_edge","ie_upto10","ie_11up","gecko","chrome","webkit","safari","ios","maxTouchPoints","browser","windows","linux","dist_ie","ie_version","documentMode","gecko_version","chrome_version","android","webkit_version","TextView","createDOM","textDOM","domAtPos","_from","_to","coordsAt","textCoords","rects","MarkView","mark","setAttrs","class","_hasStart","detachFrom","inlineDOMAtPos","coordsInChildren","WidgetView","widget","prevWidget","updateDOM","toDOM","editable","custom","fromBack","WidgetBufferView","getBoundingClientRect","joinInlineInto","beforePos","afterPos","fallbackRect","combineAttrs","noAttrs","attrsEq","ignore","keysA","keysB","updateAttrs","cssText","getAttrs","LineView","prevAttrs","transferDOM","setDeco","addLineDeco","deco","cls","hack","cmIgnore","measureTextSize","textHeight","totalWidth","lineHeight","charWidth","heightOracle","viewState","dist","covers","docView","block","BlockWidgetView","_takeDeco","WidgetType","estimatedHeight","lineBreaks","BlockType","WidgetBefore","WidgetAfter","WidgetRange","Decoration","heightRelevant","MarkDecoration","inlineOrder","PointDecoration","isBlockGap","getInclusive","LineDecoration","hasHeight","_b","isReplace","widgetsEq","inclusiveStart","inclusiveEnd","margin","ContentBuilder","disallowBlockEffectsFor","curLine","pendingBuffer","bufferMarks","atCursorPos","textOff","posCovered","getLine","flushBuffer","wrapMarks","addBlockWidget","buildText","NullWidget","inline","cursorBefore","cursorAfter","decorations","dynamicDecorationMap","tag","Direction","LTR","RTL","dec","LowTypes","ArabicTypes","Brackets","BracketStack","charType","BidiRE","BidiSpan","order","maybe","isolatesEq","direction","types","emitSpans","baseLevel","isolates","ourType","iCh","iI","sameDir","isNum","recurse","localLevel","iScan","iso","upto","jI","computeSectionOrder","outerType","computeCharTypes","rFrom","rTo","prevType","prevStrong","processBracketPairs","oppositeType","sI","br","sJ","embed","processNeutrals","beforeL","fromJ","trivialOrder","movedOver","moveVisually","spanI","spanEnd","nextI","nextIndex","nextSpan","autoDirection","clickAddsSelectionRange","dragMovesSelection$1","mouseSelectionStyle","exceptionSink","updateListener","inputHandler","focusChangeEffect","perLineTextDirection","nativeSelectionHidden","scrollHandler","ScrollTarget","yMargin","xMargin","isSnapshot","setEditContextFormatting","logException","exception","onerror","nextPluginID","viewPlugin","ViewPlugin","domEventHandlers","domEventObservers","buildExtensions","eventHandlers","eventObservers","pluginInst","PluginInstance","mustUpdate","editorAttributes","contentAttributes","outerDecorations","atomicRanges","bidiIsolatedRanges","getIsolatedRanges","Function","fromDoc","toDoc","bidiIsolate","scrollMargins","getScrollMargins","styleModule","ChangedRange","toB","addToSet","me","dI","rI","ViewUpdate","transactions","changedRanges","viewportChanged","heightChanged","geometryChanged","focusChanged","selectionSet","DocView","domChanged","hasComposition","markedForComposition","editContextFormatting","lastCompositionAfterCursor","minWidth","minWidthFrom","minWidthTo","impreciseAnchor","impreciseHead","forceSelection","lastUpdate","contentDOM","updateDeco","updateInner","updateEditContextFormatting","readCompositionAt","inputState","composing","editContext","newSel","touchesComposition","touched","findCompositionRange","headPos","findCompositionNode","textNode","inv","marks","parentView","decoDiff","findChangedDeco","comp","DecorationComparator$1","extendWithRanges","oldLength","mustMeasureContent","updateChildren","contentHeight","flexBasis","selectionRange","cView","gaps","viewport","BlockGapWidget","updateGaps","compLine","compositionView","fixCompositionDOM","fix","updateSelection","mustRead","fromPointer","readSelectionRange","activeElt","activeElement","focused","selectionNotFocus","moveToLine","betweenUneditable","dummy","suppressWidgetCursorChange","inUneditable","inside","assignedSlot","blur","rawSel","nextTo","nextToUneditable","collapse","caretBidiLevel","removeAllRanges","setSelectionRange","posFromDOM","enforceCursorAssoc","modify","lineStart","newRange","nearest","domView","best","bestPos","coordsForChar","childOff","measureVisibleLineHeights","contentWidth","clientWidth","isWider","scrollDOM","widest","ltr","textDirection","childRect","textDirectionAt","measure","computeBlockGapDeco","vs","viewports","lineBlockAt","allDeco","dynamicOuter","outerDeco","lineGapDeco","margins","targetRect","scrollRectIntoView","stop","bounding","scrollWidth","moveX","moveY","rectHeight","boundingHeight","scrollBy","movedX","movedY","textBefore","textAfter","descAfter","descBefore","getdx","getdy","yOverlap","upTop","upBot","domPosAtCoords","closest","closestRect","closestX","closestY","above","below","aboveRect","belowRect","closestOverlap","dx","dy","domPosInText","clipX","closestOffset","closestDY","generalSide","posAtCoords","coords","docTop","paddingTop","docHeight","yOffset","halfLine","bounced","elementAtHeight","posAtCoordsImprecise","elementFromPoint","caretPositionFromPoint","offsetNode","caretRangeFromPoint","startContainer","isSuspiciousSafariCaretResult","isSuspiciousChromeCaretResult","contentRect","into","defaultCharacterWidth","lineWrapping","defaultLineHeight","lineLength","blockAt","moveByChar","by","spans","bidiSpans","visualLineSide","skipAtomicRanges","atoms","moved","skipAtoms","oldPos","InputState","setSelectionOrigin","origin","lastSelectionOrigin","lastSelectionTime","lastKeyCode","lastKeyTime","lastTouchTime","lastFocusTime","lastScrollTop","lastScrollLeft","pendingIOSKey","tabFocusMode","lastContextMenu","scrollHandlers","handlers","compositionFirstChange","compositionEndedAt","compositionPendingKey","compositionPendingChange","mouseSelection","draggedContent","handleEvent","notifiedFocused","hasFocus","firefoxCopyCutHack","appliedFirefoxHack","eventBelongsToEditor","bubbles","ignoreDuringComposition","keydown","runHandlers","observers","ensureHandlers","computeHandlers","record","bindHandler","passive","exists","modifierCodes","delayAndroidKey","PendingKeys","EmacsyPendingKeys","forceFlush","flushIOSKey","startMouseSelection","inputType","dragScrollSpeed","MouseSelection","startEvent","mustSelect","scrollSpeed","scrolling","lastEvent","scrollParents","scrollableParents","move","multiple","addsSelectionRange","dragging","isInPrimarySelection","rangeCount","getRangeAt","clientX","clientY","getClickType","buttons","sx","sy","setScrollSpeed","scroll","brokenClipboardAPI","doPaste","byLine","lastLinewiseCopy","lastLine","rangeForClick","groupAt","categorize","linePos","visual","touchstart","touchmove","mousedown","makeStyle","basicMouseSelection","queryPos","startSel","removed","startRange","removeRangeAround","mustFocus","mouseSel","insideY","findPositionSide","BadMouseDetail","lastMouseDown","lastMouseDownCount","lastMouseDownTime","detail","lastTime","dropText","direct","dropPos","del","dragMovesSelection","dragstart","draggable","dataTransfer","setData","effectAllowed","dragend","drop","files","read","finishFile","FileReader","onload","readAsText","paste","clipboardData","capturePaste","linewise","copiedRange","clearData","captureCopy","selectionEnd","selectionStart","isFocusChange","focusChangeTransaction","getEffect","updateForFocusChange","clearSelectionRange","compositionstart","compositionupdate","compositionend","pendingRecords","flushSoon","contextmenu","beforeinput","startViewHeight","wrappingWhiteSpace","HeightOracle","heightSamples","heightForGap","ceil","heightForLine","setDoc","mustRefreshForWrapping","whiteSpace","mustRefreshForHeights","lineHeights","newHeight","h","refresh","knownHeights","MeasuredHeights","heights","more","BlockInfo","_content","widgetLineBreaks","QueryType","ByPos","ByHeight","ByPosNoHeight","Epsilon","HeightMap","outdated","setHeight","oracle","decomposeLeft","decomposeRight","applyChanges","oldDoc","NodeBuilder","updateHeight","HeightMapText","break","brk","HeightMapBranch","HeightMapBlock","_height","_oracle","_type","forEachLine","_force","measured","collapsed","widgetHeight","breaks","HeightMapGap","heightMetrics","perLine","firstLine","perChar","totalPerLine","guess","lineTop","linesAbove","singleHeight","rightTop","rightOffset","subQuery","rightStart","balanced","mergeGaps","rebalance","around","lineEnd","covering","writtenTo","isCovered","addBlock","enterLine","blankContent","gap","ensureLine","DecorationComparator","visiblePixelRange","overflow","parentRect","offsetParent","fullPixelRange","LineGap","gA","gB","draw","wrapping","LineGapWidget","vertical","ViewState","pixelViewport","inView","paddingBottom","contentDOMWidth","contentDOMHeight","editorHeight","editorWidth","scrolledToBottom","scrollAnchorPos","scrollAnchorHeight","scaler","IdScaler","scrollTarget","printing","defaultTextDirection","visibleRanges","mustEnforceCursorAssoc","guessWrapping","stateDeco","heightMap","getViewport","updateForViewport","updateViewportLines","lineGaps","ensureLineGaps","computeVisibleRanges","Viewport","updateScaler","BigScaler","viewportLines","scaleBlock","prevDeco","heightChanges","heightRelevantDecoChanges","prevHeight","scrollAnchor","scrollAnchorAt","mapViewport","viewportIsAppropriate","viewportChange","updateLineGaps","mapLineGaps","domRect","measureContent","dTop","dBottom","visibleTop","fromDOM","visibleBottom","marginTop","topPos","viewHeight","mayMeasure","halfMargin","doubleMargin","addGap","structure","avoid","moveToLineBoundary","gapSize","checkLine","lineStructure","viewFrom","viewTo","bot","marginHeight","targetFrac","findFraction","spaceFrac","findPosition","marginWidth","fraction","same","lineBlockAtHeight","ratio","counted","scale","vpHeight","domBase","domTop","domBottom","bTop","bBottom","theme","strs","darkTheme","baseThemeID","baseLightID","baseDarkID","lightDarkIDs","buildTheme","scopes","baseTheme$1","boxSizing","outline","flexDirection","alignItems","fontFamily","overflowX","zIndex","flexGrow","flexShrink","wordWrap","padding","WebkitUserModify","whiteSpace_fallback","wordBreak","overflowWrap","caretColor","contain","background","pointerEvents","borderLeft","marginLeft","borderLeftColor","unicodeBidi","backgroundColor","insetInlineStart","borderRight","textAlign","borderBottom","borderTop","verticalAlign","backgroundImage","backgroundSize","backgroundPosition","backgroundRepeat","fontSize","borderRadius","border","LineBreakPlaceholder","DOMReader","points","readRange","findPointBefore","oldLen","readNode","nextView","readTextNode","re","nextBreak","breakSize","fromView","findPointInside","isAtEnd","DOMPoint","DOMChange","typeOver","bounds","iHead","iAnchor","selPoints","selectionPoints","selectionFromPoints","offFrom","offTo","applyDOMChange","domChange","lastKey","preferredPos","preferredSide","findDiff","minLen","applyDOMChangeInner","defaultTr","defaultInsert","applyDefaultInsert","mainSel","compositionRange","replaced","rangeChanges","selOff","observeOptions","characterData","subtree","characterDataOldValue","useCharData","DOMObserver","selectionChanged","delayedFlush","resizeTimeout","delayedAndroidKey","flushingAndroidKey","lastChange","scrollTargets","resizeScroll","intersecting","gapIntersection","printQuery","parentCheck","MutationObserver","mutations","mut","removedNodes","EditContext","EDIT_CONTEXT","EditContextManager","onCharData","prevValue","onSelectionChange","onResize","onPrint","onScroll","matchMedia","ResizeObserver","addWindowListeners","IntersectionObserver","listenForScroll","intersectionRatio","onScrollChanged","createEvent","threshold","requestMeasure","measureReq","disconnect","wasChanged","deepActiveElement","safariSelectionRangeHack","getComposedRanges","buildSelectionRangeFromRange","stopImmediatePropagation","getTargetRanges","execCommand","atElementStart","processRecords","requestAnimationFrame","clearDelayedAndroidKey","cancelAnimationFrame","takeRecords","records","readMutation","readChange","readSelection","handled","rec","childBefore","findChild","childAfter","setWindow","removeWindowListeners","_c","curView","endContainer","endOffset","curAnchor","pendingContextChange","resetRange","toContextPos","textupdate","toEditorPos","updateRangeStart","updateRangeEnd","revertPending","setSelection","characterboundsupdate","rangeStart","rangeEnd","DOMRect","updateCharacterBounds","textformatupdate","getTextFormats","lineStyle","underlineStyle","thickness","underlineThickness","updateControlBounds","updateSelectionBounds","applyEdits","_fromB","updateText","reverted","rangeIsValid","contextPos","editorPos","EditorView","compositionStarted","pluginMap","editorAttrs","contentAttrs","bidiCache","updateState","measureScheduled","measureRequests","tabIndex","announceDOM","dispatchTransactions","trs","scrollTo","mountStyles","redrawn","attrsChanged","focusFlag","dispatchFocus","pendingKey","setState","CachedOrder","updatePlugins","styleModules","showAnnouncements","docViewUpdate","newState","hadFocus","prevSpecs","newPlugins","sDOM","measuring","BadMeasure","write","themeClasses","attrsFromFacet","spellcheck","autocorrect","autocapitalize","translate","contenteditable","changedContent","changedEditor","announce","cspNonce","readMeasured","documentTop","documentPadding","viewportLineBlocks","moveByGroup","initial","byGroup","nextCat","includeWrap","coordsAtPos","editorRect","moveVertically","distance","startPos","startY","goal","startCoords","resolvedGoal","extra","curY","charRect","posAtDOM","MaxBidiLine","fresh","computeOrder","setRoot","scrollSnapshot","setTabFocusMode","prefix","dark","cache","lastDir","sources","currentPlatform","modifiers","keymap","getKeymap","Keymaps","bindings","buildKeymap","bound","isPrefix","checkPrefix","scope","stopPropagation","scopeObj","normalizeKeyName","ctrl","ourObj","storedPrefix","PrefixTimeout","full","binding","_any","any","currentKeyEvent","isChar","prevented","baseName","shiftName","ran","runFor","RectangleMarker","adjust","getBase","rectanglesForRange","lineElt","leftSide","paddingLeft","textIndent","rightSide","paddingRight","startBlock","endBlock","visualStart","visualEnd","wrappedLine","pieces","drawForLine","drawForWidget","horizontal","addSpan","fromOpen","toOpen","fromCoords","toCoords","endPos","docLine","spanFrom","spanTo","LayerView","drawn","setOrder","layerOrder","updateOnDocViewUpdate","markers","transform","sameMarker","old","oldI","marker","CanHidePrimary","selectionConfig","cursorBlinkRate","drawRangeCursor","configChanged","cursorLayer","cursors","prim","forRange","animationName","confChange","setBlinkRate","animationDuration","selectionLayer","themeSpec","hideNativeSelection","setDropCursorPos","dropCursorPos","drawDropCursor","fromClass","readPos","drawCursor","cursorPos","outer","setDropPos","dragover","dragleave","relatedTarget","iterMatches","MatchDecorator","regexp","decoration","decorate","boundary","maxLength","global","addMatch","_view","createDeco","matchRanges","changeFrom","changeTo","_f","_t","updateRange","updateFrom","updateTo","fromLine","toLine","UnicodeRegexpSupport","unicode","Specials","Names","_supportsTabSize","specialCharConfig","specialChars","addSpecialChars","replaceTabs","supportsTabSize","MozTabSize","_plugin","SpecialCharWidget","ph","placeholder$1","TabWidget","lineDeco","activeLineHighlighter","getDeco","lastLineStart","MaxOff","getPos","absoluteColumn","Alt","Control","Shift","Meta","showCrosshair","Outside","TooltipViewManager","createTooltipView","removeTooltipView","tooltips","tooltipViews","newAbove","tip","tooltipView","windowSpace","tooltipConfig","tooltipSpace","knownHeight","tooltipPlugin","madeAbsolute","lastTransaction","measureTimeout","classes","createContainer","readMeasure","writeMeasure","resizeObserver","measureSoon","showTooltip","createTooltip","unobserve","intersectionObserver","observeIntersection","maybeMeasure","shouldMeasure","newConfig","arrow","editor","makeAbsolute","tv","getCoords","space","others","tView","arrowHeight","noOffset","strictSide","spaceVert","resize","overlap","toggle","positioned","baseTheme","borderTopColor","borderBottomColor","showHoverTooltip","inputs","HoverTooltipHost","mounted","createHostedView","hostedView","passProp","given","showHoverTooltipHost","HoverPlugin","setHover","hoverTime","hoverTimeout","restartTimeout","lastMove","checkHover","mouseleave","mousemove","startHover","hovered","posCoords","bidi","rtl","isInTooltip","tooltipMargin","isOverRange","watchTooltipLeave","watch","hoverTooltip","hoverState","hideOnChange","hideOn","assign","closeHoverTooltipEffect","getTooltip","panelConfig","topContainer","bottomContainer","getPanel","panel","panelPlugin","panels","showPanel","PanelGroup","syncClasses","scrollMargin","syncDOM","curDOM","rm","GutterMarker","elementClass","gutterLineClass","renderEmptyElements","elementStyle","lineMarker","widgetMarker","lineMarkerChange","initialSpacer","updateSpacer","activeGutters","gutter","gutters","unfixGutters","gutterView","fixed","prevViewport","SingleGutterView","syncGutters","updateGutters","vpA","vpB","vpOverlap","lineClasses","classSet","UpdateContext","advanceCursor","cx","collect","addElement","newElt","GutterElement","extraMarkers","localMarkers","forLine","spacer","prevMarkers","sameMarkers","setMarkers","domPos","iNew","iOld","skipTo","lineNumberMarkers","lineNumberConfig","NumberMarker","lineNumberGutter","maxLineNumber","activeLineGutterMarker","activeLineGutterHighlighter","DefaultBufferLength","nextPropID","NodeProp","perNode","NodeType","closedBy","openedBy","isolate","contextHash","lookAhead","MountedTree","parser","noProps","skipped","src","isTop","isSkipped","isError","isAnonymous","groups","NodeSet","newTypes","newProps","CachedNode","CachedInnerNode","IterMode","ExcludeBuffers","IncludeAnonymous","IgnoreMounts","IgnoreOverlays","positions","TreeCursor","topNode","cursorAt","moveTo","_tree","resolveInner","resolveStack","stackIterator","layers","iterStack","iterate","enter","leave","anon","entered","propValues","balance","balanceRange","makeTree","buildTree","buffer","maxBufferLength","reused","minRepeatType","FlatBufferCursor","takeNode","parentStart","minPos","inRepeat","depth","lookAheadAtStart","findBufferSize","maxSize","minStart","nodeSize","localSkipped","nodeStart","Uint16Array","copyToBuffer","TreeBuffer","localChildren","localPositions","localInRepeat","lastGroup","lastEnd","makeRepeatLeaf","takeFlatNode","make","makeBalanced","lookAheadProp","lastI","nodeCount","stopAt","pair","bufferStart","topID","childString","endIndex","pick","checkSide","startI","endI","overlays","BaseNode","getChild","getChildren","matchContext","matchNodeContext","enterUnfinishedNodesBefore","prevSibling","_parent","nextChild","BufferNode","BufferContext","hasChild","rPos","nextSignificantParent","toTree","externalSibling","heads","picked","newHeads","StackIterator","bufferNode","yieldNode","yieldBuf","enterChild","sibling","atLastNode","mustLeave","nodeSizeCache","balanceType","mkTop","mkTree","maxChild","divide","groupFrom","groupStart","groupSize","nextSize","only","TreeFragment","fragments","partial","minGap","fI","nextF","cI","nextC","nextPos","fFrom","fTo","Parser","startParse","StringInput","createParse","advance","lineChunks","nextTagID","Tag","modified","Modifier","nextModifierID","instances","powerSet","styleTags","byName","tags","rest","rule","Rule","ruleNodeProp","opaque","inherit","tagHighlighter","all","tagClass","highlightTree","highlighter","putStyle","HighlightBuilder","highlightRange","highlighters","startSpan","inheritedClass","getStyleTags","tagCls","highlightTags","innerHighlighters","rangeFrom","rangeTo","typeName","literal","heading","keyword","punctuation","bracket","lineComment","blockComment","docComment","dist_name","attributeName","labelName","macroName","docString","character","attributeValue","integer","float","bool","escape","self","null","atom","modifier","operatorKeyword","controlKeyword","definitionKeyword","moduleKeyword","derefOperator","arithmeticOperator","logicOperator","bitwiseOperator","compareOperator","updateOperator","definitionOperator","typeOperator","controlOperator","angleBracket","squareBracket","paren","brace","heading1","heading2","heading3","heading4","heading5","heading6","contentSeparator","quote","emphasis","strong","monospace","strikethrough","deleted","invalid","documentMeta","processingInstruction","definition","defineModifier","constant","function","standard","special","languageDataProp","sublanguageProp","Language","extraExtensions","syntaxTree","language","topNodeAt","innerNode","sublang","isActiveAt","findRegions","allowsNesting","explore","topLang","DocInput","syncTo","stringStart","currentContext","ParseContext","treeLen","scheduleOn","tempSkipped","until","isDone","takeTree","withContext","stoppedAt","withoutTempSkipped","parsedPos","cutFragments","updateViewport","startLen","skipUntilInView","frags","LanguageState","newCx","vpTo","parseState","requestIdle","requestIdleCallback","idle","cancelIdleCallback","isInputPending","scheduling","parseWorker","working","workScheduled","chunkBudget","scheduleWork","checkAsyncSchedule","deadline","timeRemaining","viewportFirst","isWorking","languages","indentService","indentUnit","getIndentUnit","indentString","cols","ts","getIndentation","IndentContext","syntaxIndentation","indentFor","simulateBreak","simulateDoubleBreak","textAfterPos","column","overrideIndentation","search","lineIndent","overriden","simulatedBreak","indentNodeProp","strategy","indentStrategy","TreeIndentContext","delimitedStrategy","align","closing","closedAt","aligned","bracketedAligned","openToken","sim","openLine","baseIndent","ignoreClosed","topIndent","baseIndentFor","atBreak","isParent","continue","foldService","foldNodeProp","isUnfinished","foldable","syntaxFolding","mapRange","foldEffect","unfoldEffect","selectedLines","foldState","folded","foldExists","preparePlaceholder","foldConfig","PreparedFoldWidget","foldWidget","onSelection","findFold","maybeEnable","codeFolding","announceFold","fold","lineFrom","lineTo","foldKeymap","defaultConfig","placeholderDOM","placeholderText","widgetToDOM","prepared","onclick","foldGutterDefaults","openText","closedText","markerDOM","foldingChanged","FoldMarker","HighlightStyle","modSpec","scopeOpt","module","themeType","highlighterFacet","fallbackHighlighter","getHighlighters","TreeHighlighter","markCache","buildDeco","decoratedTo","styleChange","decoratedToMapped","treeHighlighter","defaultHighlightStyle","textDecoration","fontWeight","fontStyle","DefaultScanDist","DefaultBrackets","bracketMatchingConfig","afterCursor","brackets","maxScanDistance","renderMatch","defaultRenderMatch","matchingMark","nonmatchingMark","bracketMatchingUnique","matchBrackets","bracketMatchingHandle","matchingNodes","byProp","findHandle","hasHandle","matchMarkedBrackets","matchPlainBrackets","tokenType","startCh","startToken","basePos","_pos","matching","firstToken","endHandle","countCol","startValue","StringStream","overrideIndent","lastColumnPos","lastColumnValue","eol","sol","peek","eat","eatWhile","eatSpace","skipToEnd","backUp","indentation","pattern","consume","caseInsensitive","cased","substr","defaultCopyState","IndentedFrom","StreamLanguage","defineLanguageFacet","baseData","fullParser","blankLine","copyState","indent","tokenTable","noTokens","Parse","getIndent","docID","typeArray","streamParser","stateAfter","TokenTable","defaultTokenTable","statePos","findState","readToken","cutTree","chunkReused","findStartInFragments","editorState","moveRangeIndex","parseEnd","parseLine","lineAfter","nextLine","skipGapsTo","offPos","emitToken","len0","warned","byTag","defaultTable","legacyName","createTokenType","table","warnForPart","msg","tagStr","tags$1","CompletionContext","explicit","abortListeners","tokenBefore","matchBefore","ensureAnchor","aborted","toSet","chars","words","Option","completion","score","addStart","addEnd","ignoreCase","pickedCompletion","SourceCache","asSource","completeFromList","label","validFor","prefixMatch","startCompletionEffect","closeCompletionEffect","FuzzyMatcher","byWord","upper","astral","ret","word","firstSize","anyTo","preciseTo","byWordTo","byWordFolded","adjacentTo","adjacentStart","adjacentEnd","hasLower","wordAdjacent","StrictMatcher","completionConfig","activateOnTyping","activateOnCompletion","activateOnTypingDelay","selectOnOpen","closeOnBlur","maxRenderedOptions","defaultKeymap","tooltipClass","optionClass","aboveCursor","icons","addToOptions","positionInfo","defaultPositionInfo","filterStrict","compareCompletions","interactionDelay","updateSyncTime","joinClass","option","maxWidth","narrow","spaceLeft","spaceRight","infoWidth","infoHeight","spaceBelow","rangeAroundSelected","selected","CompletionTooltip","stateField","applyCompletion","infoDestroy","placeInfoReq","measureInfo","placeInfo","currentClass","cState","optionContent","icon","_s","_v","labelElt","displayLabel","detailElt","updateTooltipClass","showOptions","updateSel","createListBox","updateSelectedOption","destroyInfo","infoResult","addInfoPane","wrap","opt","hasAttribute","listRect","infoRect","selRect","ul","curSection","section","header","li","completionTooltip","boost","CompletionDialog","setSelected","makeAttrs","sortOptions","addOption","hasResult","getMatch","sectionOrder","selectedValue","CompletionState","ActiveSource","sameResults","setSelectedEffect","baseAttrs","getUpdateType","typing","explicitPos","touches","updateFor","setActiveEffect","ActiveResult","checkValid","completionState","insertCompletionText","moveCompletionSelection","RunningQuery","completionPlugin","debounceUpdate","running","debounceAccept","pendingStart","startQuery","doesReset","startUpdate","scheduleAccept","dialog","commitCharacters","commitChars","maxWidth_fallback","maxHeight","listStyle","textOverflow","stringPrefixes","closeBracketEffect","closedBracket","bracketState","definedClosing","insertBracket","tok","handleSame","handleOpen","closedBracketAt","handleClose","closeBracketsKeymap","dont","prevChar","nextChar","closeBefore","_open","allowTriple","canStartStringAt","probablyInString","quoteToken","prefixes","maxPrefix","quotePos","charCat","autocompletion","completionKeymapExt","completionKeymap","Context","indented","pushContext","popContext","typeBefore","prevToken","typeAtEndOfLine","isTopScope","clike","parserConfig","curPunc","isDefKeyword","statementIndentUnit","dontAlignCalls","keywords","builtin","blockKeywords","defKeywords","hooks","multiLineStrings","indentStatements","namespaceSeparator","isPunctuationChar","numberStart","isOperatorChar","isIdentifierChar","isReservedIdentifier","tokenBase","tokenize","tokenString","escaped","tokenComment","maybeEnd","maybeEOL","typeFirstDefinitions","startOfLine","styleDefs","firstChar","dontIndentStatements","hook","switchBlock","allmanIndentation","indentOnInput","indentSwitch","commentTokens","autocomplete","propertyIsEnumerable","cKeywords","cppKeywords","objCKeywords","objCBuiltins","basicCTypes","basicObjCTypes","cTypes","identifier","objCTypes","cBlockKeywords","cDefKeywords","cppHook","pointerHook","_stream","cIsReservedIdentifier","cpp14Literal","cpp11StringHook","cpp11RawStringDelim","tokenRawString","cppLooksLikeConstructor","lastTwo","tokenAtString","delim","U","L","R","tokenTripleString","csharp","tokenNestedComment","closeBrackets","intendSwitch","tokenKotlinString","tripleString","stringTokenizer","tokenCeylonString","pushInterpolationStack","interpolationStack","popInterpolationStack","tokenDartString","raw","tripleQuoted","tokenStringHelper","tokenInterpolation","tokenInterpolationIdentifier","sizeInterpolationStack","toggleLineComment","changeLineComment","toggleBlockComment","changeBlockComment","toggleBlockCommentByLine","selectedLineRanges","getConfig","SearchMargin","findBlockComment","startText","endText","spaceBefore","spaceAfter","beforeOff","startSpace","endSpace","endOff","prevLine","minIndent","changeSet","fromHistory","isolateHistory","invertedEffects","historyConfig","minDepth","newGroupDelay","joinToEvent","isAdjacent","adj","historyField_","HistoryState","fromHist","HistEvent","fromTransaction","undone","updateBranch","addSelection","addMapping","addChanges","historyState","undo","redo","undoSelection","redoSelection","startSelection","selectionsAfter","setSelAfter","selections","branch","maxLen","newEvent","newBranch","conc","MaxSelectionsPerEvent","sels","popSelection","addMappingToBranch","mapEvent","extraSelections","mappedChanges","fullMapping","joinableUserEvent","prevTime","prevUserEvent","eqSelectionShape","onlySelection","historyKeymap","setSel","moveSel","how","cursorByChar","ltrAtCursor","cursorCharLeft","cursorCharRight","cursorByGroup","interestingNode","bracketProp","moveBySyntax","cursorByLine","Intl","cursorLineUp","cursorLineDown","pageInfo","selfScroll","marginBottom","cursorByPage","page","scrollRect","cursorPageUp","cursorPageDown","moveByLineBoundary","extendSel","selectByChar","selectCharLeft","selectCharRight","selectByGroup","selectByLine","selectLineUp","selectLineDown","selectByPage","selectPageUp","selectPageDown","cursorDocStart","cursorDocEnd","selectDocStart","selectDocEnd","deleteBy","towards","skipAtomic","deleteByChar","byIndentUnit","targetPos","deleteCharBackward","deleteCharForward","deleteByGroup","deleteGroupBackward","selectedLineBlocks","startLine","moveLine","copyLine","insertNewlineAndIndent","newlineAndIndent","atEof","explode","isBetweenBrackets","changeBySelectedLine","atLine","keep","norm","toMatchingBracket","crelt","basicNormalize","normalize","SearchCursor","bufferPos","nextOverlapping","baseFlags","RegExpCursor","MultilineRegExpCursor","curLineStart","matchPos","toCharEnd","flattened","FlattenedDoc","cached","cachedFrom","createLineDialog","sign","ln","cl","percent","dialogEffect","onkeydown","onsubmit","dialogField","defaultHighlightOptions","highlightWordAroundCursor","minSelectionLength","maxMatches","wholeWords","highlightConfig","matchDeco","mainMatchDeco","insideWordBoundaries","matchHighlighter","insideWord","defaultTheme","searchConfigFacet","caseSensitive","wholeWord","createPanel","SearchPanel","scrollToMatch","SearchQuery","validRegExp","unquoted","unquote","RegExpQuery","StringQuery","getCursor","st","regexpCursor","stringCursor","stringWordTest","categorizer","buf","bufPos","charBefore","charAfter","nextMatch","prevMatchInRange","prevMatch","getReplacement","_result","matchAll","highlight","regexpWordTest","setSearchQuery","togglePanel","searchState","SearchState","defaultQuery","createSearchPanel","matchMark","selectedMatchMark","searchHighlighter","searchCommand","openSearchPanel","findNext","announceMatch","selectSearchInput","findPrevious","selectMatches","replaceNext","replacement","replaceAll","announceText","fallback","_d","_e","selText","getSearchInput","searchInput","searchExtensions","closeSearchPanel","searchKeymap","selectWord","searchedText","findNextOccurrence","fullWord","cycled","commit","searchField","placeholder","form","onchange","onkeyup","replaceField","caseField","checked","reField","wordField","runScopeHandlers","setQuery","AnnounceMargin","Break","font","marginRight","SelectedDiagnostic","diagnostic","LintState","diagnostics","markedDiagnostics","diagnosticFilter","lintConfig","markerFilter","DiagnosticWidget","markClass","findDiagnostic","maybeEnableLint","lintState","lintExtensions","setDiagnosticsEffect","movePanelSelection","selPos","autoPanel","LintPanel","activeMark","lintTooltip","stackStart","stackEnd","tooltipFilter","diagnosticsTooltip","renderDiagnostic","closeLintPanel","lintKeymap","needsRefresh","assignKeys","assigned","inPanel","renderMessage","fired","click","keyIndex","nameElt","onmousedown","PanelItem","items","moveSelection","selectedIndex","needsSync","newSelectedItem","_start","_end","underline","overflowY","background_fallback","color_fallback","hideTooltip","codemirrorBasicSetup","lineNumbers","highlightSpecialChars","decorationCache","decorator","makeDecorator","history","foldGutter","fullConfig","canFold","canUnfold","buildMarkers","drawSelection","syntaxHighlighting","bracketMatching","rectangularSelection","eventFilter","rectangleSelectionStyle","newStart","newLine","_extend","rectangleFor","startOff","startCol","endCol","crosshairCursor","isDown","keyup","highlightSelectionMatches","CodeEditorService","setCodeSubject","closeAndSaveCodeSubject","setEditorCode","codeData","closeAndSaveCode","CodeEditorComponent","codeEditorService","setCodeRequest","defaultCodeProvider","setCode","editorElement","getElementById","autoComplete","customCompletionFunction","editorView","saveAndClose","instanceId","getCode","openRestoreDefaultCodeModal","restoreDefaultCode","getDefaultCode","activeAutoCompletions","getCodeCompletions","declaredVariables","DownloadManualService","download","fileName","FileSaver","FlowsheetSideMenuComponent","flowsheetService","downloadManualService","metisMenu","createNewProject","openAboutWindow","openConstraintViolationReport","openKpiManagerModal","openUncertaintyAnalysisModal","openCaseStudyModal","openSaveFileDialog","openLoadFileDialog","openSummaryReport","openMultiPeriodResults","openUpgraderReport","openAssayManagerModal","openOptimizationSettingsTable","openFlowsheetComments","openCaseCommentsModal","excelReport","downloadManual","openCaseList","openGlobalKpiModal","toggleNavigation","toggleClass","isMultiPeriodEnabled","MultiPeriodService","multiPeriodModeEnabledSubject","multiPeriodSettingsCompletedSubject","enableMultiPeriod","showNotification","notifyMultiPeriodEnabled","disableMultiPeriod","notifyMultiPeriodSettingsCompleted","FlowsheetViewSelectorComponent","multiPeriodService","multiPeriodModeEnabledRequest","showSettingsModal","openMultiPeriodSettingsTab","closeMultiPeriodSettingsTab","multiPeriodSettingsCompletedRequest","openDiagramTab","refreshSankey","firstTime","delayInitialization","showSankeyControls","hidePalette","hideControls","tab","showControls","hideSankeyControls","showPalette","FlowsheetNavbarComponent","_accessService","_userService","userNameRequest","openSearchModal","$backdrop","currentProject","GoJsDiagramUtils","createNodeSelectionTemplate","stroke","strokeWidth","getNodeTransparentBackground","figure","getNameTextBlockTemplate","ofObject","getAllSidesBusyReadinessIndicator","getReadinessIndicatorTemplate","offsetY","getTopRightReadinessIndicator","offsetX","getTopLeftReadinessIndicator","getTopCenterReadinessIndicator","getCenterRightReadinessIndicator","getBottomCenterReadinessIndicator","alignment","toolTip","getReadinessTooltipText","getReadinessColor","getReadinessIcon","createOutletPort","initializers","fromMaxLinks","Infinity","fromLinkable","fromSpot","createPortTooltip","createInletPort","toLinkable","toMaxLinks","toSpot","createNodeTooltip","getClickEventHandlers","doubleClick","contextClick","toLocation","getDeletableBinding","createLinkToolTip","defaultStretch","row","createWaterLinkToolTip","createFuelGasLinkToolTip","OtherDiagramObject","FlowsheetDiagramTemplateProvider","gojsDiagramUtils","getOverviewTemplate","getDiagramTemplate","allowCopy","initialContentAlignment","LinkDrawn","ExternalObjectsDropped","textBlock","findObject","editTextBlock","SelectionDeleting","SelectionMoved","createConstraintTooltip","itemTemplate","getLinkTemplate","routing","corner","reshapable","adjusting","layerName","makeTwoWay","toArrow","selectionAdornmentTemplate","isPanelMain","getWaterLinkTemplate","getFuelGasLinkTemplate","getContextMenuTemplate","canUndo","canRedo","getModelTemplate","linkFromPortIdProperty","linkToPortIdProperty","linkKeyProperty","getDiluentSourceTemplate","locationObjectName","desiredSize","getMineTemplate","getMixerTemplate","linkConnected","proportion","linkDisconnected","getCommodityTankTemplate","getOffshoreTemplate","getPipeTemplate","getBitumenConversionTemplate","getRefineryTemplate","getMultipleInletRefineryTemplate","getRenewableTemplate","getSagdTemplate","getUpgraderInletTemplate","getSplitterTemplate","getProductTankTemplate","getDRUTemplate","getVACTemplate","getThirdPartyRefineryTemplate","getGenericSinkTemplate","getThirdPartySourceTemplate","getUpgraderTemplate","getMultipleInletUpgraderTemplate","locationSpot","selectionObjectName","stretch","minSize","_side","getFlexibleUpgraderTemplate","getFuelGasUtilityTemplate","getWaterUtilityTemplate","wu","getExtractionTemplate","getFlexibleExtractionTemplate","getLevel2UpgraderTemplate","getHydrotreaterTemplate","getHgoHydrotreaterTemplate","getLgoHydrotreaterTemplate","getSeparatedHydrotreaterTemplate","getDCUTemplate","getFluidCokerTemplate","getHydrogenPlantTemplate","getSulfurPlantTemplate","getHydrocrackerTemplate","getInletTransferUnitTemplate","getOutletTransferUnitTemplate","UtilitiesFlowsheetTemplateProvider","getWaterSourceTemplate","getWaterBoilerTemplate","getWaterCogenerationTemplate","getWaterSourceImportTemplate","getWaterSinkImportTemplate","getHeatExchangerTemplate","getTurbineTemplate","getHeaterTemplate","getCoolerTemplate","getTwoPhaseSeparatorTemplate","getPumpTemplate","getValveTemplate","getSinkTemplate","getWaterMixerTemplate","getWaterSplitterTemplate","getWaterHeaderTemplate","onWaterHeaderLinkConnected","onWaterHeaderLinkDisconnected","getWaterHeaderBody","getWaterHeaderBodySegmentPicture","increaseSize","shouldDecreaseSize","removeAt","getWaterPipeTemplate","DiagramItemColorPickerService","openSubject","OtherDiagramObjectsTemplateProvider","diagramItemColorPickerService","getDiagramCommentsTemplate","shape","w","geo","fig","fig2","spot1","spot2","resizable","getCommentsSelectionAdornmentTemplate","NaN","textEditor","getCommentsTextEditor","textEdited","actualBounds","ensureBounds","autoCalculatedTextBounds","customEditor","customTextArea","tool","textEditingTool","doCancel","currentTextEditor","selectsTextOnActivate","scaledWidth","measuredBounds","scaledHeight","scaledFontSize","getDocumentPoint","transformDocToView","div","valueFunction","alignmentFocus","clickedNode","adornedPart","diagramItemKey","documentX","viewPoint","documentY","_buttonFillOver","FuelGasFlowsheetTemplateProvider","getFuelGasFlareTemplate","getFuelGasSinkImportTemplate","getFuelGasSourceImportTemplate","getFuelGasSinkTemplate","getFuelGasMixerTemplate","getFuelGasSplitterTemplate","getFuelGasSourceTemplate","getFuelGasAmineContactorTemplate","FlowsheetDiagramComponent","templateProvider","utilitiesFlowsheetProvider","otherObjectsTemplateProvider","fuelGasFlowsheetProvider","updateModelRequest","initFlowsheetDiagram","nodeTemplateMap","getNodeTemplateMap","linkTemplateMap","getLinkTemplateMap","contextMenu","allowDrop","toolManager","rotatingTool","snapAngleMultiple","snapAngleEpsilon","dragSelectingTool","animationManager","isEnabled","grid","gridCellSize","draggingTool","isGridSnapEnabled","resizingTool","overview","observed","templateMap","GoJsPaletteUtils","initPaletteElement","paletteDivId","autoScale","contentAlignment","layout","sorting","getPaletteNodeTemplate","mouseEnter","mouseLeave","selectable","AbstractSubFlowsheetPaletteHandler","paletteUtils","paletteContainerDivId","subFlowsheetPalette","nodeTemplate","getPaletteModel","updatePalette","UpgraderPaletteSections","UpgraderPaletteHandler","GENERAL","general","getGeneralModel","PROCESSING","processing","getProcessingModel","REACTORS","reactors","getReactorsModel","UTILITIES_AND_ENVIRONMENTAL","utilitiesAndEnvironmental","getUtilitiesAndEnvironmentalModel","updatePaletteNodeByAction","enableNode","disableNode","iconHeight","iconWidth","getProcessModel","FirstLevelPaletteModelProvider","getSourcesModel","getTransportModel","getConnectorsModel","ExtractionPaletteHandler","gojsPaletteUtils","UtilitiesPaletteHandler","FuelGasPaletteHandler","FlowsheetTreeNode","addChild","findChildById","FlowsheetTreeRoot","FlowsheetTree","FlowsheetTreeService","getFlowsheetTree","allFlowsheetOwners","getAllFlowsheetOwners","addChildren","getFlowsheetTreeIncludeNormalUpgraders","getAllFlowsheetOwnersIncludeNormalUpgraders","childNode","getFlowsheetOwnerIdByName","flowsheetName","flowsheetOwnerId","flowsheetTree","getFlowsheetOwnersCount","flowsheetOwnersCount","pNode","getUpgradersWithSubFlowsheet","upg","FlowsheetDiagramPaletteComponent","modelProvider","upgraderPaletteHandler","utilitiesPaletteHandler","fuelGasPaletteHandler","extractionPaletteHandler","subFlowsheetPaletteHandlers","subFlowsheetOpenedRequest","changePaletteHandler","subFlowsheetClosedRequest","hidePaletteButton","showPaletteButton","unitOperationAddedRequest","unitOperationRemovedRequest","initPalettes","transport","connectors","activeSubFlowsheetPaletteHandler","disableWaterOrGasPaletteNodesInExistingCase","enablePaletteHandler","disablePaletteHandler","togglePalette","waterUtilityCount","fuelGasUtilityCount","attachSimVarEvent","valueField","unitField","_self","$valueField","fromUnit","toUnit","valToConvert","ValueInputComponent","convertedBy","inputId","ngAfterContentInit","rawValue","displayValue","readOnlyValue","setUnit","readOnlyUnit","getConversionToInternalUnit","valueChanged","valueInternal","UnitSelectComponent","dynamicModel","transientModel","createUnitSelect","selectId","unitSubset","MultipleSimVarInputDirective","objectToValidate","attachMultipleSimVarEvent","valueInputs","unitSelect","$valueInput","$unitSelect","totalOutputId","calculateTotal","vi","$totalOutput","totalInternal","getSelectedUnit","SimVarInputComponent","widerControls","controlWidthClass","getConversionToUnit","roundedValue","transientValue","CollapsePanelIconDirective","$panel","jQuery","$link","CutComponent","CutPropertiesComponent","readonly","idPrefix","AssaySelectorComponent","updateCurrentAnalysis","updateCurrentAssay","openAssayManager","registerOnChange","registerOnTouched","writeValue","NG_VALUE_ACCESSOR","forwardRef","UnitOperationCommentsComponent","fb","commentsService","unitOpComments","addControl","commentsGroup","commentArea","Validators","commentsArray","fillArrayComments","addCommentControl","confirm","commentsFormGroupArray","isControlDisabled","isSameUser","userControl","enableTextArea","enable","newText","confirmDelete","cancelDelete","deleteComment","formatDate","padTo2Digits","num","padStart","getDate","getMonth","getFullYear","KeysPipe","pure","TitleCaseCompositionNamePipe","compositionName","compositionNameArray","compositionNameTitleCase","letterTitleCase","DiluentSourceComponent","isOptimizableChanged","currentAnalysis","assayChanged","cuts","simvarNames","cutId","simvarName","$field","MineSourceComponent","simVarNames","simVarName","SagdSourceComponent","SimVarFormBuilder","valueInputDisabled","unitSelectDisabled","isConstraint","valueValidatorOpts","unitValidatorOpts","UntypedFormControl","populatedControl","FormGroup","FormControl","emptyControl","emptyConstraintControl","patchValue","svFormGroup","patchConstraintValue","ReactiveVariableValueInputComponent","valueMetaData","onInput","onTouch","onChange","alwaysDefault","setUserSpecifiedStatus","setDisabledState","isDisabled","displayValueOnInput","updateUnit","setDisplayValue","conversionFractionDigits","conversions","precision","DEFAULT_PRECISION","displayValueAsNumber","scientificNotationValue","scientificNotation","commaNumberFormat","nStr","x1","x2","rgx","valueInInternalUnit","statusClass","toExponential","ReactiveUnitSelectComponent","unitChanged","unitChange","ReactiveConstraintCheckBoxComponent","isConstraintChanged","ReactiveSimVarInputDirective","newUnit","valueInput","RefineryComponent","svfb","addControls","propertyWindowFormGroup","changeInletPorts","twoInletsControl","ThirdPartyRefineryComponent","baseCodeEditorAutoCompletions","CodemirrorCompletionType","xtremaSuncorBaseApiEnums","xtremaSuncorBaseApiCompletions","DefaultCodeProvider","defaultCode","UpgraderCodeProvider","takeUntil","TakeUntilOperator","takeUntilSubscriber","TakeUntilSubscriber","notifierSubscription","seenValue","OpenCodeEditorButtonComponent","closeAndSaveCodeRequest","ngUnsubscribe","codeSaved","openCodeEditor","UpgraderComponent","steamDefaultCodeProvider","saveCustomModel","saveSteamCustomModel","openSubFlowsheet","clearOpex","changeNodeTemplate","subFlowsheetEnabled","has2Inlets","switchOpened","isOpened","AbstractFormGroupPropertyWindow","isTouchedOrDirty","dirty","shouldShowValidationError","formControl","shouldShowFormArrayValidationError","formArray","controlIndex","IdentifiableFormGroup","formGroupId","getFormGroupId","RangeDistributionRatioVariableFormBuilder","variablesArray","FormArray","dvRoundedValue","ReactiveRangeDistributionRatioVariablesComponent","ratioVariablesFormArray","valueChanges","calculateLastDistributionVariable","findDistributionRatioName","ratioVariables","sanitizeRangeValues","ratioVariableFormGroup","roundValues","parsedValue","parsedMin","parsedMax","valueParsed","lastDistributionRatio","emitEvent","emitModelToViewChange","emitViewToModelChange","markAsDirty","isRangeControlReadonly","valueControlsReadonly","isValueControlReadonly","ratioVariablesFormGroup","getValueControlAt","getMinimumValueControlAt","getMaximumValueControlAt","areFormControlsValid","isSingleFormControlValid","formControlsHasErrors","SplitterComponent","rangeRatioVariablesFormBuilder","streamRemovedRequest","streamAddedRequest","addDistributionRatioVariable","rangeDistributionVariablesFormArray","rangeDistributionVariablesFormGroup","ratioVariableControl","formGroupToRemove","formGroupIndex","ratioVariableValueControlsReadonly","MixerComponent","initOutletStream","initInletStreams","removeOutletStream","removeInletStream","removeMixingRatioVariable","selectedBlendRecipeOption","outletStreams","outletStream","inletStreams","removedStream","matchingStream","mixingRatioValueControlsReadonly","ThirdPartySourceComponent","OffshoreSourceComponent","SuncorRenewableComponent","SuncorRenewableBlockComponent","addRenewable","findRenewableNameByType","removeRenewable","howMany","steamContributorCodeCompletions","SteamContributorCodeProvider","SteamUseUtilityComponent","gasContributorCodeCompletions","GasContributorCodeProvider","GasContributorComponent","saveGasCustomModel","component_r20","$event","DRUComponent","updateDistributionRatioVariables","onDistributionRatioVariableValueChange","dvParsed","ratioVariableIndex","componentName","componentIndex","VACComponent","BulkPropertiesComponent","bulkPropsFormGroup","updateControls","ReactiveMultipleVariableInputDirective","CompositionComponent","compositionFormGroup","compositionArray","compositionTotal","compositionUnit","ReactiveCutComponent","cutFormGroup","ReactiveCutPropertiesComponent","updateControlsValues","groupName","cutControlsGroup","controlsKey","RangeDistributionRatioVariableComponent","tableRows","initRows","rows","validateRange","OpenReactiveCodeEditorButtonComponent","openReactiveCodeEditor","ReactiveSteamUseUtilityComponent","useSteam","ReactiveGasContributorComponent","HydrotreaterComponent","GasStdVolumePerVolume","SCF_BBL","addRatioVariableControls","bulkProperties","cutProperties","disableFeedSlateCheckBox","isSimpleUtility","getHydrogenUseRateControls","changeLightEndsProduct","lightEndsProduct","feedSlateCheckBoxChange","updateRecipeOption","disableBlendProperties","hydrogenUseRateVariablesFormArray","dcuCodeCompletions","DcuCodeProvider","DCUComponent","CommodityTankComponent","saveSubscription","prepareUnitOperationForSaveRequest","save","distribution","ProductTankComponent","multiperiodEnabled","calculateDistributionRatioVaririables","createDistributionRatioVariablesControls","distributionRatioVariablesFormArray","createSingleDistributionRatioVariableControl","valueControl","roundDistributionVariable","variable","dvControl","hydrocrackerCodeCompletions","HydrocrackerCodeProvider","HydrocrackerComponent","ExtractionComponent","level2Enabled","WaterTurbineComponent","ready","grayOutFields","pressureMode","controlsWithValue","controlsDuty","controlsFlowrate","capacityStatus","flowrateStatus","minDutyStatus","maxDutyStatus","WaterHeatExchangerComponent","temperatureCalculationModeChanged","calculationValue","configurationModeChanged","WaterHeaterComponent","WaterCoolerComponent","UnitSubset","WaterTwoPhaseSeparatorComponent","WaterPumpComponent","pressureCalculationModeChanged","WaterUtilityUnitOperationComponent","WaterValveComponent","WaterMixerComponent","WaterSplitterComponent","getDistributionRatioVariableValueControl","WaterSinkComponent","FluidCokerComponent","useDataDrivenYieldModelChanged","codeEditorInstanceId","HydrogenPlantComponent","AssaySelectorHelper","setUnitOperation","setCurrentAnalysis","hgoHydrotreaterCodeCompletions","HgoHydrotreaterCodeProvider","HgoHydrotreaterComponent","assaySelectorHelper","lgoHydrotreaterCodeCompletions","LgoHydrotreaterCodeProvider","LgoHydrotreaterComponent","useCustomModelChanged","changeVariableStatusToEnableField","WaterSourceInformationStreamFormComponent","AbstractWaterInformationStreamPropertyWindow","activeInformationStreams","addInformationStreamControls","getAvailableInformationStreamVariables","steamUnitOperations","getParentFlowsheetSteamUnitOperations","simulationVariables","steamUnitOperation","getAllowedAvailableSteamVariableByType","selectedSteamType","isInformationStreamInUseByOtherUnitOperation","parentFlowsheetId","onSteamTypeChanged","availableInformationStreamVariables","informationStreamGroup","informationStreamsFormArray","otherInformationStreamUsers","getOtherInformationStreamUsers","informationStreamUser","usesInformationStream","isSelectedInformationStreamActive","selectedInformationStreamVariableId","simVarIndex","filterStreams","getInformationStreamsFormGroupsArray","isOutletPressureCalculationMode","WaterSourceImportComponent","WaterPipeComponent","waterPipeSegmentForm","initWaterPipeSegments","addSegmentControlWhenOtherMode","pipeSegment","calculationModeSelected","addWaterPipeSegmentFormGroup","pipePressureModelChanged","pressureValue","thermalCalculationModeChanged","changeWaterPipeFormGroup","thermalMode","getValueFieldsErrorValidations","formGroupName","mapSegmentValuesWhenOtherMode","mapSegmentValuesWhenThermalMode","WaterSinkImportComponent","WaterBoilerComponent","controlsWithSimVar","controlsWithUndefinedValue","SulfurPlantComponent","WaterHeaderComponent","FuelGasUtilityUnitOperationComponent","WaterCogenerationComponent","FuelGasFlareComponent","getComposition","FuelGasSinkComponent","EnergyStreamFormComponent","FuelGasSinkImportComponent","activeEnergyStreams","addEnergyStreamControls","getOtherEnergyStreamUsers","usesEnergyStream","energyStreamUser","getAvailableEnergyStreamProviders","allowedUnitOperations","getParentFlowsheetAllowedUnitOperations","gasContributor","isEnergyStreamInUseByOtherUnitOperation","energyStreamStreamGroup","energyStreamsFormArray","otherEnergyStreamUsers","isSelectedEnergyStreamActive","unitOp","availableProviderUnitOperations","selectedProviderUnitOperationId","unitOpIndex","getEnergyStreamsFormGroupsArray","FuelGasSourceInformationStreamFormComponent","getGasAnalysis","informationStreamFormGroup","currentUnitOp","gasAnalysis","FuelGasSourceImportComponent","getAvailableInformationStreamProviders","gasContributorUnitOperations","informationStreamStreamGroup","gasContributorId","FuelGasMixerComponent","FuelGasSourceComponent","FuelGasSplitterComponent","FuelGasAmineContactorComponent","WaterSourceComponent","controlsWithoutValue","controlsSolverCalculatedWithValue","disabledControls","enabledControls","controlsArray","PipeComponent","AssayType","bitumenConversionCompletions","BitumenConversionCodeProvider","BitumenConversionOutletFormBuilder","outletsArray","BitumenConversionComponent","bofb","addBitumenConversionOutlet","removeBitumenConversionOutlet","onModelTypeChanged","onCustomModelChanged","outletControl","isCustomModelEnabled","outletsFormArray","findOutletName","getCurrentAnalysisByOutletIndex","selectedAssayId","updateModelType","isSimpleModelType","disableAndClearUtilityFields","enableUtilityFields","disableAllOutletsYields","enableAllOutletsYields","PropertyWindowComponent","onClosePropertyWindowClicked","ObjectiveFunctionSelectorComponent","caseChangedRequest","objectiveFunctionChanged","functionType","CaseSettingsComponent","openCaseSettingsRequest","StreamCompositionType","_c1","_c2","ColorPickerComponent_div_2_Template","rf","ɵngcc0","cpUsePosition","arrowTop","ColorPickerComponent_div_3_Template","_r17","ctx_r16","onColorChange","ctx_r18","onDragStart","ctx_r19","onDragEnd","hueSliderColor","slider","ColorPickerComponent_button_8_Template","_r21","ctx_r20","onAddPresetColor","selectedColor","cpAddColorButtonClass","cpPresetColors","cpMaxPresetColorsLength","cpAddColorButtonText","ColorPickerComponent_div_10_Template","ColorPickerComponent_div_20_input_6_Template","_r25","ctx_r24","onAcceptColor","ctx_r26","onAlphaInput","ctx_r22","cmykText","ColorPickerComponent_div_20_div_16_Template","ColorPickerComponent_div_20_Template","_r28","ctx_r27","ctx_r29","onCyanInput","ctx_r30","ctx_r31","onMagentaInput","ctx_r32","ctx_r33","onYellowInput","ctx_r34","ctx_r35","onBlackInput","ctx_r8","cpAlphaChannel","ColorPickerComponent_div_21_input_5_Template","_r39","ctx_r38","ctx_r40","ctx_r36","hslaText","ColorPickerComponent_div_21_div_13_Template","ColorPickerComponent_div_21_Template","_r42","ctx_r41","ctx_r43","onHueInput","ctx_r44","ctx_r45","onSaturationInput","ctx_r46","ctx_r47","onLightnessInput","ctx_r9","ColorPickerComponent_div_22_input_5_Template","_r51","ctx_r50","ctx_r52","ctx_r48","rgbaText","ColorPickerComponent_div_22_div_13_Template","ColorPickerComponent_div_22_Template","_r54","ctx_r53","ctx_r55","onRedInput","ctx_r56","ctx_r57","onGreenInput","ctx_r58","ctx_r59","onBlueInput","ctx_r10","ColorPickerComponent_div_23_input_3_Template","_r63","ctx_r62","ctx_r64","ctx_r60","hexAlpha","ColorPickerComponent_div_23_div_7_Template","ColorPickerComponent_div_23_Template","_r66","ctx_r65","onHexInput","ctx_r67","ctx_r68","ctx_r11","hexText","ColorPickerComponent_div_24_input_3_Template","_r71","ctx_r70","ctx_r72","ctx_r69","ColorPickerComponent_div_24_Template","_r74","ctx_r73","ctx_r75","onValueInput","ctx_r12","ColorPickerComponent_div_25_Template","_r77","ctx_r76","onFormatToggle","ctx_r78","ColorPickerComponent_div_26_div_4_div_1_span_1_Template","_r86","color_r82","$implicit","ctx_r84","onRemovePresetColor","ctx_r83","cpRemoveColorButtonClass","ColorPickerComponent_div_26_div_4_div_1_Template","_r88","ctx_r87","setColorFromString","ctx_r81","cpAddColorButton","ColorPickerComponent_div_26_div_4_Template","ctx_r79","cpPresetColorsClass","ColorPickerComponent_div_26_div_5_Template","ctx_r80","cpPresetEmptyMessageClass","cpPresetEmptyMessage","ColorPickerComponent_div_26_Template","ctx_r14","cpPresetLabel","ColorPickerComponent_div_27_button_1_Template","_r92","ctx_r91","onCancelColor","ctx_r89","cpCancelButtonClass","cpCancelButtonText","ColorPickerComponent_div_27_button_2_Template","_r94","ctx_r93","ctx_r90","cpOKButtonClass","cpOKButtonText","ColorPickerComponent_div_27_Template","ctx_r15","cpCancelButton","cpOKButton","ColorFormats","HEX","RGBA","HSLA","CMYK","Rgba","Hsva","Hsla","Cmyk","TextDirective","newValue","inputChange","rg","numeric","hostBindings","outputs","SliderDirective","elRef","dragEnd","dragStart","listenerMove","listenerStop","mouseDown","touchStart","setCursor","getX","pageX","pageXOffset","getY","pageY","pageYOffset","rgX","rgY","SliderPosition","SliderDimension","ColorPickerService","cpDialogDisplay","closeDialog","hsva2hsla","hsva","hsla2hsva","hsla","hsvaToRgba","cmykToRgb","cmyk","rgbaToCmyk","rgba","rgbaToHsva","rgbaToHex","allowHex8","hex","normalizeCMYK","denormalizeCMYK","denormalizeRGBA","stringToHsva","colorString","stringParsers","execResult","outputFormat","alphaChannel","ColorPickerComponent","cdRef","isIE10","dialogArrowSize","dialogArrowOffset","dialogInputFields","useRootViewContainer","handleEsc","handleEnter","sliderDimMax","hueSlider","cpWidth","alphaSlider","cpCmykEnabled","cpOutputFormat","listenerMouseDown","onMouseDown","listenerResize","openDialog","initialColor","updateColorPicker","directiveElementRef","setInitialColor","openColorPicker","closeColorPicker","setupDialog","elementRef","cpHeight","cpFallbackColor","cpColorMode","cpDisableInput","cpIgnoredElements","cpSaveClickOutside","cpCloseClickOutside","cpUseRootViewContainer","cpPosition","cpPositionOffset","cpPositionRelativeToArrow","cpTriggerElement","setColorMode","detectIE","msie","directiveInstance","fallbackColor","setPresetConfig","sliderH","setDialogPosition","sliderDragEnd","outputColor","sliderDragStart","isDescendant","colorSelected","cmykChanged","cmykColor","colorChanged","colorCanceled","availableFormats","nextFormat","sliderChanged","onHueChange","onValueChange","onAlphaChange","validHex","inputChanged","presetColorsChanged","hidden","stateChanged","cmykInput","hue","lastOutput","alphaSliderColor","alpha","transformNode","dialogHeight","dialogElement","boxDirective","createDialogBox","HTMLUnknownElement","boxParent","usePosition","calculateAutoPositioning","elBounds","triggerElBounds","usePositionX","usePositionY","collisionTop","collisionBottom","collisionLeft","collisionRight","viewQuery","vars","consts","template","ɵngcc1","ColorPickerDirective","cfr","vcRef","_service","dialogCreated","ignoreChanges","viewAttachedToAppRef","cpToggle","cpDisabled","cpInputChange","cpToggleChange","cpSliderChange","cpSliderDragEnd","cpSliderDragStart","colorPickerOpen","colorPickerClose","colorPickerCancel","colorPickerSelect","colorPickerChange","cpCmykColorChange","cpPresetColorsChange","handleClick","inputFocus","handleFocus","handleInput","cmpRef","colorPicker","changeDetectorRef","appInstance","viewContainerRef","compFactory","ReflectiveInjector","exportAs","ColorPickerModule","MaterialStreamComponent","openStreamPropertyWindowRequest","openStream","initForm","streamGroup","uniqueNameValidator","nameControl","unique","compositionTypeChanged","compositionTypeSelected","SaveCaseFileComponent","downloadCase","ProjectFileLoaderService","load","skipDiagramReload","cleanAllCases","simVarsWithoutOwner","flowsheetsWithoutOwner","OpenCaseFileComponent","projectFileLoader","uploadCase","File","FileList","alert","fr","loadLegacyCase","pools","loadPools","loadDiagrams","loadFlowsheetFile","LogManagerComponent","logMessageRequest","appendMessage","messagesCount","displayMessagesCountIfNeeded","logSerializedMessagesRequest","clearLogCounterRequest","clearLogManagerRequest","logManagerDiv","moment","displayMessagesCount","$logCounter","html","parents","CaseStatusIndicatorComponent","BottomBarComponent","ionRangeSlider","hide_min_max","force_edges","$invertedTabs","$clickedTab","delegateTarget","$targetPanel","targetPanelVisible","ReportValue","childDataId","setIsFlowsheetOwner","GhgReportValue","alternativeGhgIntensity","MixedGhgReportValue","unitOperationType","ReportDataSet","addToData","rv","GhgEmissionsReport","initReport","diluentGhg","diluentSet","mineGhg","mineSet","pipeGhg","pipeSet","refineryGhg","refinerySet","sagdGhg","sagdSet","upgraderGhg","upgraderSet","thirdPartyRefineryGhg","thirdPartyRefinerySet","thirdPartySourceGhg","thirdPartySourceSet","bitumenConversionGhg","bitumenConversionSet","reportValue","contributionByCategory","contributionByUnit","contributionByUpgraderSubFlowsheet","getUpgraderDataSet","convertReportValues","contribution","cbu","contrib","upgraderName","dataSet","upgraderUnitOperationsEvenNestedOnes","subFlowsheetOwners","sfo","subFlowsheetUnitOperations","RefineryFlowRatesReport","refineries","thirpartyrefineries","totalSv","RevenueReport","isInvalid","DiluentFlowRatesReport","diluentSources","OptimizationReportVariable","ownerName","variables","OptimizationVariablesReport","activeFlowsheetId","flowsheetOwners","productTanks","optimizableUnits","detectActiveFlowsheetUnitsOperation","pT","findActiveFlowsheetCategory","optimizationTableVariables","createOptimizationReportVariableByUnitOpCategory","flowsheetOwnerCategory","uO","BaseConstraintReportVariable","isConstraintViolated","constraintReportVariable","WaterBoilerConstraintReportVariableResolver","addCurrentValueAndUnitToConstraintReportVariable","crv","currentUnit","WaterTurbineConstraintReportVariableResolver","inletStreamList","WaterCogenerationConstraintReportVariableResolver","WaterValveConstraintReportVariableResolver","WaterSinkImportConstraintReportVariableResolver","FuelGasSinkImportConstraintReportVariableResolver","HgoHydrotreaterConstraintReportVariableResolver","WATER_PERCENT","LgoHydrotreaterConstraintReportVariableResolver","WaterSinkConstraintReportVariableResolver","FluidCokerConstraintReportVariableResolver","UpgraderConstraintReportVariableResolver","CommodityTankReportVariableResolver","constraintDisabled","ConstraintReportVariable","constraintUnit","simVarLowerCaseName","simVarId","verifyIfConstraintIsViolated","MixingConstraintReportVariable","FRACTION","reportVariable","ConstraintsReport","activeFlowhseetId","suncorConstraint","mixingConstraint","filterConstraintsForUpgradersOnFirstLevel","isRangeConstraintsUser","createMixingConstraintReportVariable","createConstraintReportVariable","filterConstraintsForUpgradersOnSecondLevel","detectHydrogenPlants","detectSulfurPlants","detectSulfurAndHydrogenPlants","CapexReport","valuesHolder","currentKey","categoryValue","categorySet","unitType","OpexReport","ReportService","buildGhgEmissionsReport","buildUpgraderDataSet","buildRefineryFlowRatesReport","buildRevenueReport","buildDiluentFlowRatesReport","buildCapexReport","buildOpexReport","buildOptimizationVariablesReport","buildConstraintsReport","InsightsComponent","setChartSubtitleValues","initGhgChart","ghgReport","series","colorByPoint","cv","innerSize","chartOptions","getCommonChartOptions","initRevenueChart","revenueReport","initCapexChart","capexReport","initOpexChart","opexReport","initRefineryChart","refineryReport","initDiluentChart","diluentReport","chart","plotBackgroundColor","plotBorderWidth","plotShadow","useHTML","credits","enabled","responsive","condition","plotOptions","dataLabels","headerFormat","pointFormat","switchTab","tabId","ThousandSeparatorPipe","GhgSummaryReportComponent","buildReport","subFlowsheetDataActive","currentSubFlowsheetDataset","buildTopLevelTable","buildPieChart","tableData","cu","buildTable","buildSubFlowsheetTable","$table","destroyDataTable","DataTable","paging","searching","columns","dataTable","isDataTable","drilldown","drilldownSeries","ghgReportValue","aGhgUnit","alternativeGhgIntensityUnit","getGhgDrilldownChartOptions","that","drillup","hideSubFlowsheetData","pie","showSubFlowsheetData","formatter","formattedTooltip","subFlowsheetId","buildWaterfallChart","getTotalEmissionsBar","getWaterfallChartOptions","xAxis","yAxis","legend","waterfall","pointPadding","borderWidth","SummaryReportComponent","reportService","buildReports","showInsightsPage","constraintRanking","showConstraintRank","refineryFlowRates","diluentFlowRates","buildInsightsCharts","ghgSummaryReport","buildDiluentFlowratesChart","buildDiluentFlowratesTable","buildRefineryFlowratesChart","buildRefineryFlowratesTable","buildCapexChart","buildCapexTable","buildOpexChart","buildOpexTable","buildRevenueChart","buildRevenueTable","objFunctionUnit","buildConstraintRankingChart","buildConstraintRankingByPercentChart","insights","getOwnerFlowsheetName","mve","ownerFlowsheet","getCommonDrilldownChartOptions","switchConstraintChartType","getBarChartOptions","totalObjFunctionChangeRateValue","getTotalObjFunctionChangeRate","followPointer","ProgressIndicatorComponent","showRequest","hideRequest","cancelRequest","$cptable","XLSX","current_codepage","current_ansi","VALID_ANSI","CS2CP","set_ansi","cp","set_cp","reset_cp","reset_ansi","char_codes","utf16leread","utf16beread","debom","c1","c2","_getchar","_getansi","DENSE","DIF_XL","Base64_map","Base64_encode","c3","e1","e2","e3","e4","Base64_decode","has_buf","Buffer","versions","Buffer_from","nbfs","enc","buf_utf16le","new_raw_buf","alloc","Uint8Array","new_unsafe_buf","allocUnsafe","s2a","s2ab","a2s","ab2a","bconcat","bufs","isBuffer","maxlen","chr0","chr1","_strrev","pad0","pad_","rpad_","p2_32","pad0r","pad0r1","pad0r2","SSF_isgeneral","days","months","table_fmt","SSF_default_map","SSF_default_str","SSF_frac","D","mixed","sgn","B","P_2","P_1","P","Q_2","Q_1","Q","A","SSF_parse_date_code","opts","b2","dow","dout","out","T","H","S","date1904","setDate","getDay","SSF_fix_hijri","SSFbasedate","SSFdnthresh","SSFbase1904","datenum_local","epoch","getTimezoneOffset","SSF_strip_decimal","SSF_general_num","V","LOG10E","toPrecision","SSF_small_exp","SSF_large_exp","SSF_normalize_exp","SSF_general","SSF_format","SSF_write_date","fmt","ss0","ss","tt","outl","commaify","pct1","write_num_exp","period","fakee","$$","$1","$2","$3","frac1","dec1","closeparen","phone","hashq","rnd","_frac","write_num_flt","ffmt","write_num_cm","write_num","write_num_pct","sfmt","mul","ri","ff","aval","write_num_f1","den","rr","myn","myd","carry","oa","lres","rres","flr","write_num_exp2","write_num_int","write_num_cm2","write_num_pct2","write_num_f2","lastIndexOf","SSF_abstime","fmt_is_date","cfregex2","chkcond","thresh","dateNF","choose_fmt","SSF_split_fmt","in_str","lat","m1","m2","eval_fmt","flen","dt","lst","hr","ssm","bt","jj","nstr","myv","ostr","vv","decpt","lasti","retval","SSF_load","SSF_load_table","tbl","make_ssf","SSF_init_table","SSF","_table","load_table","parse_date_code","is_date","get_table","SSFImplicit","dateNFregex","bad_formats","SSF__load","_fs","CRC32","T0","signed_crc_table","Int32Array","TT","slice_by_16_tables","subarray","T1","T2","T3","T4","T5","T6","T7","T8","T9","Ta","Tb","Tc","Td","Te","Tf","bstr","crc32_bstr","C","crc32_buf","crc32_str","CFB","exports","dirname","write_dos_date","hms","getHours","getMinutes","getSeconds","write_shift","ymd","parse_extra_field","blob","prep_blob","read_shift","sz","tgt","mtime","atime","ctime","mt","sz1","sz2","usz","csz","get_fs","parse_zip","parse_mad","di","mboundary","FileIndex","FullPaths","init_cfb","start_di","fcnt","parse_mime","mver","nmfs","difat_sec_cnt","dir_start","minifat_start","difat_start","ssz","fat_addrs","mv","check_get_mver","chk","HEADER_SIGNATURE","check_shifts","dir_cnt","sectors","sectorify","nsectors","sleuth_fat","sector_list","make_sector_list","sl","chkd","buf_chain","modulus","__readInt32LE","__toBuffer","ENDOFCHAIN","Paths","read_directory","mini","minifat_store","pl","sector","namelen","__utf16le","clsid","ct","read_date","storage","get_sector_list","get_mfat_entry","build_full_paths","FI","FP","dad","payload","MSSZ","new_buf","cnt","__readUInt32LE","cfb","CLSID","seed_cfb","nm","rebuild_cfb","gc","_file","fullPaths","HEADER_CLSID","namecmp","Z","_write","_opts","fileType","write_mad","fp","fi","ca","dispcnt","csl","get_content_type","write_quoted_printable","write_base64_76","write_zip","cdirs","compression","start_cd","crcs","sz_cd","namebuf","outbuf","_deflateRawSync","mini_size","fat_size","mfat_cnt","fat_base","fat_cnt","difat_cnt","HEADER_SIG","chainit","DIFSECT","FATSECT","_nm","_zlib","MAXREGSECT","FREESECT","HEADER_MINOR_VERSION","MAXREGSID","NOSTREAM","EntryTypes","deflateRawSync","_deflate","CLEN_ORDER","LEN_LN","DST_LN","use_typed_arrays","bitswap8","bit_swap_n","rev","read_bits_2","bl","read_bits_3","read_bits_5","read_bits_7","read_bits_n","write_bits_3","write_bits_1","write_bits_8","write_bits_16","realloc","zero_fill_array","build_tree","clens","cmap","MAX","ccode","bl_count","ctree","cleni","fix_lmap","fix_dmap","dlens","_deflateRaw","DST_LN_RE","LEN_LN_RE","write_stored","boff","write_huff_fixed","hash","mlen","len_eb","dst_eb","dyn_lmap","dyn_dmap","dyn_cmap","dyn_len_1","dyn_len_2","dyn","_HLIT","_HDIST","_HCLEN","read_bits_4","next_code","hcodes","h1","h2","_inflate","inflate","woff","OL","max_len_1","max_len_2","bits","dst","warn_or_throw","wrn","efsz","fcsz","EF","parse_local_file","meth","parse_dos_date","setMilliseconds","setFullYear","setMonth","setHours","setMinutes","setSeconds","_csz","_usz","ef","_inflateRawSync","InflRaw","InflateRaw","_processChunk","_finishFlushFlag","bytesRead","cfb_add","unsafe","ContentTypeMap","htm","gif","jpg","png","mso","thmx","sh33tj5","ctype","encoded","si","tmp","fdata","fname","cte","parse_quoted_printable","oi","fpath","utils","cfb_gc","UCFullPaths","UCPaths","UCPath","read_file","readFileSync","writeFileSync","writeFile","write_file","cfb_new","cfb_del","cfb_mov","old_name","new_name","ReadShift","CheckField","use_zlib","zlib","_inflateRaw","blobify","a2u","write_dl","Deno","TextEncoder","encode","utf8write","IE_SaveFile","msSaveBlob","URL","createObjectURL","downloads","revokeObjectURL","Folder","encoding","ks","o2","evert_key","K","evert","evert_num","basedate","datenum","dnthresh","refdate","refoffset","numdate","setTime","parse_isodur","sec","good_pd_date_1","good_pd_date","good_pd","parseDate","fixdate","cc2str","debomit","TextDecoder","dup","fuzzynum","wt","FDRE1","lower_months","fuzzydate","lower","fuzzytime1","getYear","split_regex","safe_split_regex","getdatastr","asNodeBuffer","asBinary","getContent","getdatabin","safegetzipfile","zip","getzipfile","getzipdata","safe","getdata","getzipstr","getzipbin","zipentries","zip_add_file","utf8decode","widx","ridx","zip_new","zip_read","resolve_path","XML_HEADER","attregexg","tagregex1","tagregex","nsregex","nsregex2","parsexmltag","skip_root","skip_LC","z","quot","strip_ns","encodings","rencoding","unescapexml","encregex","coderegex","raw_unescapexml","xlsx","decregex","charegex","escapexml","escapexmltag","htmlcharegex","escapehtml","xlml_fixstr","entregex","entrepl","parsexmlbool","utf8reada","orig","utf8readb","ww","utf8readc","utf8corpus","utf8read","matchtag","mtcache","htmldecode","entities","vtregex","vt_cache","vtvregex","vtmregex","parseVector","baseType","WTF","wtregex","writetag","wxt_helper","writextag","write_w3cdtf","toISOString","xlml_normalize","xlmlregex","XMLNS","CORE_PROPS","CUST_PROPS","EXT_PROPS","CT","RELS","TCMNT","dc","dcterms","dcmitype","mx","sjs","vt","xsi","xsd","XMLNS_main","XLMLNS","___toBuffer","___utf16le","__readUInt16LE","___hexlify","__hexlify","___utf8","__readUInt8","__utf8","___lpstr","__lpstr","___cpstr","__cpstr","___lpwstr","__lpwstr","___lpp4","__lpp4","___8lpp4","__8lpp4","___double","read_double_le","__double","is_buf","readUInt32LE","readDoubleLE","cpdoit","__readInt16LE","__readInt32BE","oI","oR","oo","lens","__writeUInt32LE","__writeInt32LE","__writeUInt16LE","WriteShift","cpp","write_double_le","av","LN2","hexstr","fld","parsenoop","recordhopper","tmpbyte","cntbyte","RT","XLSBRecordEnum","buf_array","blksz","newblk","curbuf","endbuf","_bufs","write_record","ba","shift_cell_xls","cell","cRel","rRel","biff","shift_range_xls","encode_cell_xls","encode_cell","fix_col","fix_row","encode_range_xls","encode_row","encode_col","decode_row","rowstr","unfix_row","decode_col","colstr","unfix_col","decode_cell","decode_range","encode_range","fix_range","a1","formula_quote_sheet_name","sname","safe_decode_range","format_cell","BErr","safe_format_cell","XF","numFmtId","sheet_to_workbook","sheets","SheetNames","Sheets","sheet_add_aoa","_ws","dense","_R","_C","_origin","_range","__R","__Rstr","__C","nullError","sheetStubs","cellDates","cell_ref","aoa_to_sheet","write_UInt32LE","parse_XLWideString","cchCharacters","write_XLWideString","_null","parse_StrRun","ich","ifnt","parse_RichStr","rgsStrRun","dwSizeStrRun","parse_BrtCommentText","parse_XLSBCell","iStyleRef","write_XLSBCell","parse_XLSBShortCell","write_XLSBShortCell","parse_XLSBCodeName","write_XLSBCodeName","parse_XLNullableWideString","write_XLNullableWideString","parse_XLNameWideString","parse_RelID","write_RelID","parse_RkNumber","fX100","fInt","RK","write_RkNumber","d100","parse_RfX","parse_UncheckedRfX","write_UncheckedRfX","write_RfX","parse_Xnum","write_Xnum","write_BrtColor","auto","nTS","tint","rgb","parse_ClipboardFormatOrString","VT_I2","VT_I4","VT_VARIANT","VT_USTR","VT_CUSTOM","DocSummaryPIDDSI","SummaryPIDSI","CountryEnum","XLSFillPattern","rgbify","XLSIcv","RBErr","XLSLblBuiltIn","ct2type","CT_LIST","workbooks","xlsm","xlsb","xlam","xltx","charts","dialogs","macros","write_ct","type2ct","evert_arr","Extension","ContentType","f1","PartName","bookType","f2","f3","WB","SHEET","HLINK","VML","XPATH","XMISS","XLINK","CXML","CXMLP","CMNT","SST","STY","THEME","CHART","CHARTEX","CS","WS","DS","MS","IMG","DRAW","XLMETA","PEOPLE","CONN","VBA","get_rels_path","parse_rels","currentFilePath","rels","rel","Type","Target","Id","TargetMode","canonictarget","write_rels","rid","add_rels","rId","relobj","targetmode","CT_ODS","write_rdf_type","write_rdf_has","write_meta_ods","wb","CORE_PROPS_REGEX","parse_core_props","cp_doit","write_core_props","Props","CreatedDate","ModifiedDate","PseudoPropsPairs","load_props_pairs","HP","hp","Worksheets","NamedRanges","DefinedNames","Chartsheets","ChartNames","write_ext_props","W","Application","custregex","write_cust_props","pid","write_vt","fmtid","evert_XLMLDPM","XLMLDocPropsMap","Author","Keywords","Comments","LastAuthor","RevNumber","LastPrinted","Category","Manager","Company","AppVersion","ContentStatus","Identifier","xlml_set_prop","parse_FILETIME","dwLowDateTime","dwHighDateTime","parse_lpstr","pad","parse_lpwstr","parse_VtStringBase","stringType","parse_VtString","parse_VtHeadingPair","headingString","parse_TypedPropertyValue","parse_dictionary","CodePage","dict","parse_BLOB","bytes","parse_ClipboardData","Size","parse_VtUnalignedString","parse_VtVecHeadingPairValue","cElements","parse_VtVecLpwstrValue","parse_VtVecUnalignedLpstrValue","write_TypedPropertyValue","write_FILETIME","parse_PropertySet","PIDSI","start_addr","NumProps","Dictionary","DictObj","PropID","Offset","PropH","fail","piddsi","oldpos","parsebool","XLSPSSkip","guess_property_type","write_PropertySet","RE","hdr","piao","pr","pio","pinfo","parse_PropertySetStream","NumSets","FMTID0","FMTID1","Offset0","Offset1","SystemIdentifier","PSet1","PSet0","rval","FMTID","write_PropertySetStream","entries2","clsid2","ps0","ps1","parsenoop2","writebool","parseuint16","writeuint16","parseuint16a","parslurp","write_Bes","parse_ShortXLUnicodeString","cch","parse_XLUnicodeRichExtendedString","cbExtRst","fExtSt","fRichSt","cRun","write_XLUnicodeRichExtendedString","xlstr","otext","parse_XLUnicodeStringNoCch","fHighByte","parse_XLUnicodeString","parse_XLUnicodeString2","write_XLUnicodeString","parse_HyperlinkString","write_HyperlinkString","write_Hyperlink","hl","hashidx","F","Pretarget","parse_LongRGBA","parse_LongRGB","parse_XLSCell","ixfe","write_XLSCell","parse_XTI","parse_RkRec","parse_Ref8U","rwFirst","rwLast","write_Ref8U","parse_RefU","parse_Ref","parse_FtCmo","ot","parse_FtSkip","FtTab","parse_FtCf","cf","parse_FtNts","fSharedNote","parse_BOF","BIFFVer","write_BOF","write_BoundSheet8","hs","parse_DefaultRowHeight","miyRw","Unsynced","DyZero","ExAsc","ExDsc","write_Format","b5","parse_BIFF2Format","parse_Dimensions","write_XF","ixfeP","parse_BoolErr","parse_Bes","parse_XLHeaderFooter","parse_OptXLUnicodeString","parse_ExternName","fBuiltIn","fWantAdvise","fWantPict","fOle","fOleLink","fIcon","sbcch","parse_AddinUdf","udfName","Name","parse_Lbl","chKey","cce","itab","npflen","rgce","parse_NameParsedFormula","rgcb","parse_Rgce","parse_RgbExtra","parse_ExternSheet","parse_BIFF5ExternSheet","parse_Array","parse_ArrayParsedFormula","parse_BIFF5OT","cchName","write_HLink","O","write_HLinkTooltip","Tooltip","parse_ColInfo","cellStyles","colFirst","colLast","coldx","parse_Blank","parse_Scl","parse_String","DBF_SUPPORTED_VERSIONS","DBF","dbf_codepage_map","dbf_reverse_map","dbf_to_sheet","dbf_to_aoa","ft","memo","vfp","l7","nrow","fpos","rlen","current_cp","codepage","hend","sheetRows","wch","_RLEN","to_workbook","dbf_to_workbook","to_sheet","from_sheet","sheet_to_dbf","old_cp","aoa","sheet_to_json","hcnt","coltypes","colwidths","coldecimals","_guess","hf","hb","rout","_n","_l","SYLK","sylk_escapes","AA","BA","CA","DA","HA","JA","AE","BE","CE","HE","AI","BI","CI","HI","AO","BO","CO","DO","HO","AU","BU","CU","HU","Aa","Ba","Ca","Da","Ha","Ja","Ae","Be","Ce","He","Ai","Bi","Ci","Hi","Ao","Bo","Co","Do","Ho","Au","Bu","Cu","Hu","KC","Kc","DN","Dn","Hy","sylk_char_regex","sylk_char_fn","decode_sylk_char","newcc","sylk_to_aoa_str","rj","formats","next_cell_format","sht","rowinfo","colinfo","cw","Mval","Workbook","WBProps","rstr","d1904","nn","Sheet","Ref","rc_to_a1","C_seen_K","C_seen_X","C_seen_S","C_seen_E","formula","cell_t","cellText","shrbase","shift_formula_str","F_seen","hpt","hpx","pt2px","process_col","write_ws_cell_sylk","a1_to_rc","sylk_to_workbook","aoasht","sylk_to_aoa","outwb","sheet_to_sylk","preamble","RS","write_ws_cols_sylk","wpx","width2px","px2char","write_ws_rows_sylk","px2pt","DIF","dif_to_aoa_str","dif_to_sheet","dif_to_aoa","make_value","make_value_str","dif_to_workbook","sheet_to_dif","_DIF_XL","ETH","eth_to_sheet","eth_to_aoa","sep","sheet_to_eth_data","coord","eth_to_workbook","sheet_to_eth","PRN","set_text_arr","guess_seps","guess_sep_weights","guess_sep","instr","prn_to_sheet_str","FS","dsv_to_sheet_str","sepcc","startcc","_re","dateNF_regex","finish_cell","fuzzyfmla","dateNF_fix","Y","datestr","timestr","cellNF","prn_to_aoa_str","prn_to_sheet","firstbyte","prn_to_workbook","sheet_to_prn","WK_","lotushopper","Enum","WK1Enum","lotus_to_workbook_buf","next_n","sidx","snames","realnames","sdata","refguess","qpw_to_workbook_buf","book_append_sheet","CC","vers","qpro","works","works2","tmpcell","WK3Enum","osheets","rnames","parse_cell","write_LABEL","write_INTEGER","write_NUMBER","wk1_parse_rc","FuncTab","BinOpTab","parse_cell_3","write_LABEL_16","wsidx","parse_NUMBER_17","v1","v2","write_NUMBER_17","log2","parse_NUMBER_27","parse_SHEETNAMECS","write_XFORMAT_SHEETNAME","parse_RANGE","parse_INTEGER","parse_NUMBER","parse_LABEL","parse_FORMULA","wk1_fmla_to_csf","argc","argL","argR","parse_STRING","parse_SHEETNAMELP","parse_LABEL_16","parse_NUMBER_18","parse_FORMULA_19","parse_XFORMAT","parse_NUMBER_25","parse_FORMULA_28","parse_SHEETINFOQP","sheet_to_wk1","write_biff_rec","write_BOF_WK1","write_RANGE","max_R","book_to_wk3","write_BOF_WK3","wscnt","lotus_to_workbook","parse_rs","tregex","rpregex","parse_r","rpr","parse_rpr","pass","shadow","strike","uval","family","valign","rregex","rend","rs","rs_to_html","nlregex","r_to_html","terms","parse_rpr2","intro","outro","sitregex","sirregex","sirphregex","parse_si","cellHTML","sstr0","sstr1","sstr2","straywsregex","write_BrtSSTItem","write_RichStr","_JS2ANSI","parse_CRYPTOVersion","Major","Minor","parse_DataSpaceMapEntry","comps","parse_EncryptionHeader","Flags","AlgID","AlgIDHash","KeySize","ProviderType","CSPName","parse_EncryptionVerifier","Salt","Verifier","VerifierHash","parse_EncInfoStd","parse_EncInfoExt","parse_EncInfoAgl","KeyData","encryptedHmacKey","encryptedHmacValue","encs","uri","crypto_CreatePasswordVerifier_Method1","PasswordArray","PasswordDecoded","crypto_CreateXorArray_Method1","PadArray","InitialCode","XorMatrix","XorRor","byte1","byte2","Byte","Ror","XorKey","CurrentElement","Char","CreateXorKey_Method1","Index","ObfuscationArray","PadIndex","rtf_to_sheet_str","rowtf","rtfre","last_index","rgb2Hex","rgb_tint","hsl","rgb2HSL","G","H6","L2","hex2RGB","hsl2RGB","X","h6","DEF_MDW","MAX_MDW","MIN_MDW","MDW","px","char2width","chr","cycle_width","collw","find_mdw_colw","_MDW","coll","customWidth","PPI","pt","XLMLPatternTypeMap","None","Solid","Gray50","Gray75","Gray25","HorzStripe","VertStripe","ReverseDiagStripe","DiagStripe","DiagCross","ThickDiagCross","ThinHorzStripe","ThinVertStripe","ThinReverseDiagStripe","ThinHorzCross","cellXF_uint","cellXF_bool","parse_sty_xml","numFmtRegex","cellXfRegex","fillsRegex","fontsRegex","bordersRegex","themes","parse_numFmts","NumberFmt","formatCode","parse_fonts","Fonts","bold","italic","condense","vertAlign","scheme","indexed","icv","themeElements","clrScheme","parse_fills","Fills","patternType","bgColor","fgColor","parse_borders","Borders","diagonalUp","diagonalDown","parse_cellXfs","CellXf","xf","textRotation","wrapText","write_BrtFmt","rev_XLSBFillPTNames","XLSBFillPTNames","parse_BrtFill","write_BrtFill","fls","write_BrtXF","write_Blxf","parse_BrtBorder","write_sty_bin","write_FMTS_bin","NF","write_FONTS_bin","write_BrtFont","write_FontFlags","sss","charset","write_FILLS_bin","write_BORDERS_bin","write_BrtBorder","write_CELLSTYLEXFS_bin","fontId","fillId","borderId","write_CELLXFS_bin","cellXfs","write_STYLES_bin","write_BrtStyle","xfId","builtinId","write_DXFS_bin","write_TABLESTYLES_bin","write_BrtBeginTableStyles","defTableStyle","defPivotStyle","XLSXThemeClrScheme","parse_clrScheme","lastClr","parse_fontScheme","parse_fmtScheme","clrsregex","fntsregex","fmtsregex","themeltregex","parse_theme_xml","write_theme","parse_themeElements","Themes","themeXLSX","parse_ExtProp","extType","parse_FullColorExt","xclrType","nTintShade","xclrValue","parse_IcvXF","parse_ColorTheme","parse_XFExtGradient","update_xfext","xfext","xfe","write_vml","csize","bbox","_shapeid","_comments","joinstyle","gradientshapeok","coordsize","write_vml_comment","fillopts","color2","angle","fillparm","fillxml","fillcolor","strokecolor","obscured","sheet_insert_comments","threaded","people","author","write_comments_xml","iauthor","ID","lastauthor","tcnt","write_tcmnt_xml","carr","rootid","tcopts","tcid","parentId","personId","parse_BrtCommentAuthor","write_comments_bin","write_BrtCommentAuthor","write_BrtBeginComment","write_BrtCommentText","write_StrRun","CT_VBA","VBAFMTS","rcregex","rcbase","rcfunc","fstr","crefregex","$0","$4","$5","shift_formula_xlsx","_xlfn","parseread1","parse_ColRelU","parse_RgceArea","parse_RgceArea_BIFF2","parse_RgceLoc","parse_RgceLoc_BIFF2","parse_RgceElfLoc","fQuoted","parse_PtgAttrBaxcel","bitSemi","parse_PtgAttrSpaceType","parse_SerAr","parse_PtgExtraMem","parse_PtgExtraArray","parse_PtgElfLoc","parse_PtgElfNoop","parse_PtgElfLel","PtgListRT","PtgTypes","parse_PtgExp","parse_PtgStr","parse_PtgSheet","parse_PtgEndSheet","parse_PtgErr","parse_PtgBool","parse_PtgInt","parse_PtgNum","parse_PtgArray","parse_PtgFunc","iftab","FtabArgc","Ftab","parse_PtgFuncVar","cparams","parsetab","Cetab","parse_PtgName","nameindex","parse_PtgRef","parse_PtgArea","parse_PtgMemArea","parse_PtgMemFunc","parse_PtgRefErr","parse_PtgAreaErr","parse_PtgRefN","parse_RgceLocRel","parse_RgceLocRel_BIFF2","rl","parse_PtgAreaN","area","parse_RgceAreaRel","parse_PtgMemAreaN","parse_PtgMemNoMemN","parse_PtgNameX","parse_PtgNameX_BIFF5","ixti","parse_PtgRef3d","parse_PtgArea3d","parse_PtgRefErr3d","parse_PtgAreaErr3d","PtgDupes","Ptg18","parse_PtgList","coltype","rt","parse_PtgSxName","Ptg19","parse_PtgAttrNoop","parse_PtgAttrSemi","parse_PtgAttrIf","bitIf","parse_PtgAttrChoose","parse_PtgAttrGoto","bitGoto","parse_PtgAttrSum","parse_PtgAttrSpace","parse_PtgAttrSpaceSemi","parse_PtgAttrIfError","ptgs","stringify_array","PtgBinOp","PtgAdd","PtgConcat","PtgDiv","PtgEq","PtgGe","PtgGt","PtgLe","PtgLt","PtgMul","PtgNe","PtgPower","PtgSub","make_3d_range","get_ixti_raw","supbooks","XTI","SID","get_ixti","ixtiraw","stringify_formula","nameidx","last_sp","sp","fflen","lbl","xlfn","externbook","bookidx","ixtidata","lp","rp","sharedf","parsedf","fnd","arrayf","_left","parse_SharedParsedFormula","parse_Formula","parse_FormulaValue","cbf","parse_XLSCellParsedFormula","parse_XLSBParsedFormula","parse_XLSBArrayParsedFormula","parse_XLSBCellParsedFormula","parse_XLSBNameParsedFormula","parse_XLSBSharedParsedFormula","write_XLSBFormulaNum","oint","write_XLSBNameParsedFormula","write_XLSBFormula","write_XLSBFormulaBool","write_XLSBFormulaErr","write_XLSBFormulaRef","write_XLSBFormulaRange","_str","write_XLSBFormulaArea3D","lastbang","write_XLSBFormulaRef3D","write_XLSBFormulaRangeWS","write_XLSBFormulaRefErr3D","write_XLSBFormulaStr","postamble","ods_to_csf_formula","csf_to_ods_formula","ods_to_csf_3D","csf_to_ods_3D","_ssfopts","browser_has_Map","get_sst_id","sst","revarr","Count","Unique","col_obj_w","outlineLevel","default_margins","defs","footer","get_cell_style","revssf","ssf","applyNumberFormat","safe_format","fillid","raw_rgb","check_ws","mergecregex","sheetdataregex","hlinkregex","dimregex","colregex","afregex","marginregex","sheetprregex","sheetprregex2","svsregex","parse_ws_xml_sheetpr","sheetPr","codeName","CodeName","sheetprot_deffalse","sheetprot_deftrue","sviewregex","write_ws_xml_cell","oldt","oldv","os","bookSST","Strings","revStrings","cm","parse_ws_xml_data","cellregex","rowregex","isregex","refregex","match_v","match_f","sstr","ftag","cells","cref","tagr","tagc","do_format","rowobj","rowrite","marr","marrlen","xlen","rstarti","outa","ht","nodim","rslice","cellFormula","___f","_tag","xlmeta","Cell","_r","write_ws_xml","rdata","_drawing","write_ws_xml_sheetpr","needed","vbaraw","cname","outlineprops","summaryBelow","summaryRight","write_ws_xml_sheetviews","sview","workbookViewId","Views","rightToLeft","sheetFormat","defaultRowHeight","baseColWidth","outlineLevelRow","write_ws_xml_cols","write_ws_xml_data","_cell","customHeight","write_ws_xml_protection","write_ws_xml_autofilter","write_ws_xml_merges","merges","relc","write_ws_xml_margins","ignoreEC","numberStoredAsText","sqref","write_row_header","write_BrtRowHdr","ncolspan","lcs","caddr","parse_BrtWsDim","write_BrtWsDim","parse_BrtShortReal","parse_BrtMergeCell","write_BrtMergeCell","BrtMarginKeys","write_ws_bin_cell","last_seen","write_BrtShortIsst","ncell","write_BrtCellIsst","write_BrtShortSt","write_BrtCellSt","write_BrtShortRk","write_BrtCellRk","write_BrtShortReal","write_BrtCellReal","write_BrtShortBool","write_BrtCellBool","write_BrtShortError","write_BrtCellError","write_BrtShortBlank","write_BrtCellBlank","write_ws_bin","write_BrtWsProp","write_WSVIEWS2","write_BrtBeginWsView","write_COLINFOS","write_BrtColInfo","write_CELLTABLE","cap","write_SHEETPROTECT","write_BrtSheetProtection","write_AUTOFILTER","write_MERGECELLS","write_BrtBeginMergeCells","write_HLINKS","write_BrtHLink","locidx","write_BrtMargins","write_IGNOREECS","write_BrtCellIgnoreEC","write_LEGACYDRAWING","WBPropsDef","WBViewDef","SheetDef","CalcPrDef","push_defaults_array","push_defaults","parse_wb_defaults","CalcPr","WBView","badchars","check_ws_name","wbnsregex","write_BrtBundleSh","Hidden","iTabID","strRelID","parse_BrtFRTArchID$","ArchID","write_wb_bin","write_BrtFileVersion","write_BrtWbProp","filterPrivacy","write_BOOKVIEWS","vistab","write_BrtBookView","write_BUNDLESHS","write_EXTERNALS_xlsb","write_SELF_EXTERNS_xlsb","write_BRTNAMES","write_BrtName","dname","Comment","parse_ws","parse_ws_bin","ai","af","vm","seencol","RR","aii","relId","Rel","rfx","tmpref","parse_ws_xml","data1","data2","mtch","parse_ws_xml_sheetpr2","parse_ws_xml_dim","svs","parse_ws_xml_sheetviews","zoomScale","zoom","parse_ws_xml_cols","coli","colm","colM","afilter","parse_ws_xml_autofilter","_merge","hlink","parse_ws_xml_hlinks","rng","parse_ws_xml_margins","XLMLFormatMap","attregexg2","attregex2","xlml_parsexmltag","xlml_parsexmltagobj","xlml_set_custprop","Custprops","oval","process_style_xlml","stag","Interior","I","Pattern","parse_xlml_data","csty","nf","sid","StyleID","interiors","Parent","UTC","safe_format_xlml","xlml_format","Formula","ArrayRange","xlml_prefix_dname","xlml_clean_comment","parse_xlml_xml","opening","ishtml","_o","html_to_workbook","html_to_sheet","Currency","Fixed","Standard","Percent","Scientific","Rn","sheetnames","cursheet","sheetname","dtag","didx","fidx","pidx","cstys","wsprops","raw_Rn3","HRef","HRefScreenTip","MergeAcross","MergeDown","cma","AutoFitHeight","Height","Format","ssfidx","Width","_col","Span","_NamedRange","_DefinedName","RefersTo","AutoFilter","parse_fods","Margin","pagemargins","Top","Bottom","bookSheets","bookProps","parse_xlml","fix_read_opts","write_name_xlml","write_ws_xlml_cell","mi","escapexlml","write_ws_xlml_comment","xlml_unfixstr","write_ws_xlml_row","write_ws_xlml","write_ws_xlml_names","write_ws_xlml_table","write_ws_xlml_wsopts","objects","scenarios","selectLockedCells","selectUnlockedCells","write_xlml","General","write_props_xlml","xlml_write_docprops","xlml_write_custprops","BLACKLIST","write_wb_xlml","write_sty_xlml","write_names_xlml","CONTINUE_RT","slurp","RecordType","insitu","nextrt","XLSRecordEnum","ll","safe_format_xf","make_cell","PSCLSID","SI","DSI","UDI","parse_xlscfb","CompObj","WorkbookP","parse_compobj","AnsiUserType","AnsiClipboardFormat","parse_ClipboardFormatOrAnsiString","Reserved1","UnicodeClipboardFormat","parse_ClipboardFormatOrUnicodeString","Reserved2","parse_workbook","lastcell","rngC","rngR","temp_val","country","Directory","last_formula","cur_sheet","Preamble","last_cell","XFs","palette","get_rgb","addcell","file_depth","xfd","icvFore","icvBack","process_cell_style","afi","rrtabid","lastuser","winlocked","wtf","last_lbl","last_RT","BIFF2Fmt","BIFF2FmtTable","FilterDatabases","seen_codepage","Date1904","WriteProtect","cpval","RefreshAll","CalcCount","CalcDelta","CalcIter","CalcMode","CalcPrecision","CalcSaveRecalc","CalcRefMode","FullCalc","fDialog","fBelow","fRight","ExternCount","tmpri","biffguess","fakebs8","rknum","rkrec","_fr","_fc","_fe","_arraystart","isst","_j","_ixfe","b4idx","b2idx","cmo","lastobj","TxO","ImData","noteobj","Sheet1","Encryption","Metadata","Country","bookVBA","make_vba_xls","newcfb","newpath","parse_xls_props","DocSummary","Summary","HeadingPairs","TitlesOfParts","bookFiles","parse_BrtRowHdr","parse_BrtCellBlank","parse_BrtCellRk","parse_BrtCellError","parse_BrtCellBool","parse_BrtCellReal","parse_BrtCellSt","parse_BrtCellIsst","parse_BrtFmlaString","parse_BrtFmlaNum","parse_BrtFmlaBool","parse_BrtFmlaError","parse_BrtShortBlank","parse_BrtShortRk","parse_BrtShortError","parse_BrtShortBool","parse_BrtShortSt","parse_BrtShortIsst","parse_BrtName","Ptg","parse_BrtFont","grbit","parse_FontFlags","fBold","fItalic","fUnderline","fStrikeout","fOutline","fShadow","fCondense","fExtend","bCharSet","parse_BrtColor","xColorType","bR","bG","bB","parse_BrtFmt","parse_BrtXF","ixfeParent","ifmt","parse_Int32LE","parse_BrtMdb","parse_BrtCellRString","parse_BrtCalcChainItem$","parse_BrtDVal","parse_BrtBeginWsView","parse_BrtWsProp","parse_BrtPane","parse_BrtWbProp","defaultThemeVersion","strName","autoCompressPictures","backupFile","checkCompatibility","hidePivotFieldList","promptedSolutions","publishItems","refreshAllConnections","saveExternalLinkValues","showBorderUnselectedTables","showInkAnnotation","showObjects","showPivotChartFilter","updateLinks","parse_BrtBundleSh","parse_BrtBeginSst","parse_BrtMdtinfo","parse_BrtBeginEsmdb","parse_BrtArrFmla","fAlwaysCalc","parse_BrtShrFmla","parse_BrtMargins","parse_BrtWsFmtInfo","parse_BrtHLink","parse_BrtBeginComment","parse_BrtCsProp","parse_BrtDVal14","parse_Note","parse_NoteSh","idObj","stAuthor","parse_FilePass","parse_FilePassHeader","Info","Data","parse_RC4Header","EncryptionVersionInfo","EncryptedVerifier","EncryptedVerifierHash","parse_RC4CryptoHeader","EncryptionHeader","EncryptionVerifier","parse_XORObfuscation","verificationBytes","verifier","XorArrayIndex","XorArray","Value","crypto_DecryptData_Method1","crypto_MakeXorDecryptor","parse_Font","dyHeight","fl","parse_Window1","Pos","Dim","CurTab","FirstTab","Selected","TabRatio","parse_Pane","parse_WriteAccess","UserName","parse_Obj","parse_BIFF5Obj","fts","parse_FtArray","parse_Guts","parse_WsBool","parse_BoundSheet8","parse_Country","parse_Palette","ccv","parse_Setup","parse_MulRk","rw","rkrecs","lastcol","parse_MulBlank","ixfes","parse_XF","fStyle","parse_CellStyleXF","alc","fWrap","alcV","fJustLast","trot","cIndent","fShrinkToFit","iReadOrder","fAtrNum","fAtrFnt","fAtrAlc","fAtrBdr","fAtrPat","fAtrProt","dgLeft","dgRight","dgTop","dgBottom","icvLeft","icvRight","grbitDiag","icvTop","icvBottom","icvDiag","dgDiag","fsxButton","parse_InterfaceHdr","parse_MergeCells","cmcs","parse_SST","ucnt","parse_LabelSst","parse_ExtSST","extsst","dsst","parse_SupBook","ctab","virtPath","rgst","parse_TxO","texts","parse_ControlInfo","accel","cchText","parse_HLink","parse_Hyperlink","sVer","targetFrameName","moniker","oleMoniker","guid","fileTime","Loc","parse_HyperlinkMoniker","parse_URLMoniker","parse_FileMoniker","cAnti","ansiPath","parse_RecalcId","parse_Number","xnum","parse_Label","parse_Row","parse_Window2","parse_RK","parse_Format","parse_ShrFmla","cUse","parse_HLinkTooltip","wzTooltip","parse_XFCRC","cxfs","crc","parse_XFExt","cexts","parse_NameCmt","cchComment","parse_Theme","themeXML","parse_MTRSettings","parse_ForceFullCalculation","parse_frtHeader","parse_ShtProps","parse_ClrtClient","parse_BIFF2INT","parse_BIFF2NUM","parse_BIFF2STR","parse_BIFF2STRING","parse_BIFF2FONTXTRA","parse_ImData","env","lcb","parse_RString","write_BIFF2Cell","write_ws_biff2_cell","write_BIFF2INT","write_BIFF2NUM","write_BIFF2BERR","write_BIFF2LABEL","write_ws_biff8_cell","bf","write_Formula","o1","write_FormulaValue","o3","write_Number","write_BoolErr","write_LabelSst","write_Label","b8","write_ws_biff8","_WB","_sheet","MAX_ROWS","write_Guts","guts","write_ws_cols_biff8","write_ColInfo","write_Dimensions","write_Window2","write_MergeCells","write_ws_biff8_hlinks","HL","write_FEAT","write_biff8_global","_sheets","_wb","writezeroes","write_WriteAccess","write_RRTabId","write_Window1","safe1904","write_FONTS_biff8","write_Font","write_FMTS_biff8","write_CELLXFS_biff8","write_Country","write_biff_continue","write_SST","blen","write_biff_buf","write_biff8_buf","fix_write_opts","write_biff2_buf","write_ws_biff2","mtch2","hd","midx","colspan","rowspan","make_html_row","HTML_BEGIN","HTML_END","sheet_to_html","make_html_preamble","sheet_add_dom","or_R","or_C","is_dom_element_hidden","elts","innerHTML","Aelts","getElementsByTagName","Aelti","parse_dom_table","get_computed_style","get_get_computed_style_function","parse_text_p","parse_ods_styles","_nfm","number_format_map","NFtag","tNF","etpos","tidx","textual","grouping","parse_content_xml","nfidx","sheetag","rowtag","ctag","textp","textpidx","textR","row_ol","mrange","mR","mC","rowpeat","colpeat","atag","_Ref","creator","creatoridx","isstub","intable","baddate","rptR","rpt","xlmlidx","styletag","nrange","ptp","write_styles_ods","master_styles","write_number_format_ods","nopts","has_time","np","write_names_ods","scoped","odsref","write_content_ods","write_text_p","null_cell_xml","write_ws","nfs","ods","ROWS","_Fref","text_p","_tgt","fods","cidx","colobj","nfi","write_automatic_styles_ods","write_ods","manifest","rdf","write_rdf","write_manifest","u8_to_dataview","DataView","byteOffset","byteLength","u8str","u8","stru8","u8concat","u8a","popcnt","parse_varint49","ptr","varint","write_varint49","parse_packed_varints","write_packed_varints","nums","varint_to_i32","i32","parse_shallow","write_shallow","proto","mappa","parse_iwa_file","write_iwa_file","ias","ia","midata","aipayload","parse_snappy_chunk","clen","u8i","decompress_iwa_file","compress_iwa_file","numbers_lut_new","rsst","ofmt","nfmt","numbers_format_cell","ver","dur","dstyle","dmin","dmax","autodur","dstr","zstr","write_new_storage","writeDecimal128LE","mantissa","setFloat64","setUint32","write_old_storage","parse_cell_storage","lut","parse_old_storage","getUint32","zidx","ieee","doff","getFloat64","parse_new_storage","d128","readDecimal128LE","parse_TSP_Reference","write_TSP_Reference","numbers_add_oref","iwa","orefs","numbers_del_oref","parse_TST_TableDataList","pb","le","rtp","rtpref","mtype","tswpsa","parse_TST_TableInfoArchive","tableref","parse_TST_TableModelArchive","dws","tile","ref2","mtype2","_tile","parse_TST_Tile","parse_TST_TileRowInfo","_g","_h","_k","_m","used_storage_u8","used_storage","wide_offsets","used_storage_offsets","getUint16","nrows","acc","pi","parse_numbers_iwa","packets","packet","docroot","iwam","parse_TN_DocumentArchive","root2","parse_TN_SheetArchive","shapeoffs","write_TST_TileRowInfo","wide","tri","new_7","new_4","last_offset","cell_storage","_dv","_last_offset","_cell_storage","celload","_celload","setUint16","write_iwam","get_unique_msgid","dependents","numbers_iwa_doit","numbers_iwa_find","USE_WIDE_ROWS","fix_opts_func","get_sheet_type","safe_parse_sheet","relsPath","sheetRels","stype","parse_cs","parse_cs_bin","parse_cs_xml","dfile","drelsp","parse_drawing","chartp","crelsp","parse_chart","csheet","nc","parse_Cache","parse_ms","parse_ds","tcomments","parse_cmnt","parse_comments_bin","authors","parse_comments_xml","commentList","authtag","cmnttag","authorId","textMatch","parse_tcmnt_xml","strip_front_slash","parse_ods","parse_manifest","FEtag","Styles","_zip","index_zip","Bun","readSync","binname","parse_ct","threadedcomments","coreprops","extprops","custprops","calcchains","vba","drawings","TODO","ctext","calcchain","parse_sst","parse_sst_bin","parse_sst_xml","uniqueCount","parse_sty","parse_sty_bin","parse_xlink","parse_xlink_bin","parse_xlink_xml","parse_wb","parse_wb_bin","parse_wb_xml","dnstart","localSheetId","propdata","parse_ext_props","parse_cust_props","toks","bookDeps","parse_cc","parse_cc_bin","parse_cc_xml","wbsheets","wbext","wbrelsi","wbrelsfile","wbrels","parse_xlmeta","parse_xlmeta_bin","Types","metatype","parse_xlmeta_xml","lastmeta","parse_people_xml","displayname","safe_parse_wbrels","nmode","wsloop","snjseen","snj","Deps","bin","parse_xlsxcfb","parse_DataSpaceVersionInfo","dsm","parse_DataSpaceMap","seds","parse_DataSpaceDefinition","parse_Primary","parse_TransformInfoHeader","ename","cmode","einfo","parse_EncryptionInfo","decrypt_agile","decrypt_std76","write_zip_xlsx","foo","vbafmt","_sn","wsrels","need_vml","needtc","rId1","write_sst_xml","sitag","write_wb_xml","write_names","workbookPr","sheetId","write_sty_xml","write_numFmts","write_cellXfs","write_xlmeta_xml","write_people_xml","person","providerId","read_plaintext","read_prn","read_binary","infile","bstrify","ab","vu","read_cfb","read_wb_ID","OLD_WTF","read_zip","read_utf16","utf16lereadu","rtf_to_workbook","rtf_to_sheet","read_plaintext_raw","write_cfb_ctr","write_numbers_iwa","numbers","build_numbers_deps","mess","sheetrefs","numbers_add_ws","sheetref","newsheetref","remap","arch","tiaref","sheetroot","sa","drawables","tia","loc2","mlist","parentidx","mm","tmaref","tiaroot","da","dap","oldtmaref","tma","tmaroot","new_uuid","hsa","hseadata","hsea","_a2","oldref","newref","newloc","_a3","_b2","row_headers","tspref","tiles","tst","oldtileref","newtileref","oldtile","write_numbers_ws","wsname","sheetidx","rootref","write_numbers_tma","tmafile","trunc","rowhead","_x","base_bucket","R2","_bucket","colhead","rbtree","tilestore","tstride","mlst","tileref","save_token","ntiles","newtileid","tiledata","tilerow","tilecontent","mergeid","sstroot","sstdata","write_zip_xlsb","write_sst_bin","write_BrtBeginSst","write_xlmeta_bin","write_BrtMdtinfo","write_BrtBeginEsfmd","write_BrtBeginEsmdb","write_BrtMdb","mdb","write_string_type","bom","write_binary_type","writeSync","check_wb","check_wb_names","N","codes","cn","dn","write_stxt_type","Base64_encode_pass","sheet_to_txt","sheet_to_csv","sheet_to_rtf","write_cfb_type","write_xlscfb","wbpath","write_xls_props","Keys","DSEntries","SEntries","CEntries","DocSummaryRE","SummaryRE","CEntries2","fill_vba_xls","write_zip_type","write_zip_denouement","oopts","ftype","nodebuffer","generate","encrypt_agile","make_json_row","defval","isempty","__rowNum__","rawNumbers","outi","counter","header_cnt","skipHidden","blankrows","qreg","make_csv_row","txt","datarow","forceQuotes","endregex","strip","sheet_add_json","js","skipHeader","ROW","JS","ws_get_cell_stub","RC","roll","cell_set_hyperlink","split_cell","json_to_sheet","table_to_sheet","table_to_book","sheet_to_formulae","cmds","sheet_to_row_object_array","sheet_get_cell","book_new","book_set_sheet_visibility","sh","vis","wb_sheet_idx","cell_set_number_format","cell_set_internal_link","cell_add_comment","sheet_set_array_formula","rngstr","wsr","SHEET_VISIBLE","SHEET_HIDDEN","SHEET_VERY_HIDDEN","XlsxUtils","cellRef","ExcelReportUtils","decimalAdjust","InletOutletExcelReport","dataArray","addMainFlowsheetStreamReport","isUpgraderOwnerFlowsheet","addStreamReport","waterStream","addWaterStreamReport","fuelGasStream","addFuelGasStreamReport","columnHeader","addStreamReportRowHeadersInCommon","addDistillationCompositionRowHeaders","rowNum","addStreamReportValuesOfRowsInCommon","sc","addDistillationCompositionRowValues","VolumeFraction","VOLUME_PERCENT","KpiManagerExcelReport","ConstraintsExcelReport","constraintsReport","arrayConstraintElement","MassBalanceExcelReport","uos","inlets","CommodityTankExcelReport","commodityTanks","GhgExcelReport","ghgEmissionsReport","upgraderSubFlowsheet","unitData","NumberToUnitConverter","defaultUnit","convertDefaultToInternalUnit","UtilitiesSummaryReportChartComponent","nuc","buildChart","displayTitle","reportItems","getChartOptions","initialisedChart","showEmptyChartMessage","showLoading","UtilitiesSummaryReportComponent","utilitiesUnitOperation","getUtilitiesUnitOperation","buildData","utilitiesUnitOperationId","steamUse50Units","getWaterSinkImportUnits","steamUse50ReportData","createSingleReportData","steamMake50Units","getWaterSourceImportUnits","steamMake50ReportData","steamUse150Units","steamUse150ReportData","steamMake150Units","steamMake150ReportData","steamUse600Units","steamUse600ReportData","steamMake600Units","steamMake600ReportData","buildSteam900Data","steamUse900Units","steamUse900ReportData","turbinesReportData","getTurbinesInletFlowrateReportData","steamMake900Units","steamMake900ReportData","boilersReportData","getBoilersOutletFlowrateReportData","waterImportUnitsArray","totalInInternalUnit","allReportItems","wiu","currentReportItems","infStream","informationStreamToUtilitiesSummaryReportItem","ownerFlowsheetId","turbines","turbine","SteamExcelReport","steamReport","getSteamValuesByUnitOperation","upgraderSubFlowsheetUos","steamSubFlowsheet","steamSubFlowsheetUos","unitOperationNamesBySubFlowsheet","unitOperationNames","getReportUnitOperationNames","unitOpNames","getUnitOperationNamesBySubFlowsheet","sM900","sU900","sM600","sU600","sM150","sU150","sM50","sU50","getSteamValue","steamReportData","steamValue","FuelGasSummaryReportChartComponent","changeUnitColumnName","FuelGasSummaryReportComponent","getFuelGasUtilityUnitOperation","fuelGasMakeReportData","buildFuelGasMakeReportData","fuelGasUseReportData","buildFuelGasUseReportData","fuelGasSourceUnits","getFuelGasSourceUnits","fuelGasMakeContributorsList","getFuelGasMakeContributors","flowrateToUtilitiesSummaryReportItem","fuelGasMakeContributor","fuelGasMakeUnit","getFuelGasFlareUnits","fuelGasUseContributorsList","getFuelGasUseContributors","energyFlowToUtilitiesSummaryReportItem","fuelGasUseUnit","energyFlowUnit","informationStreams","getFuelGasSourceImportUnits","gasContributorIds","gasContributors","getFuelGasSinkImportUnits","FuelGasExcelReport","fuelGasReport","getFuelGasValuesByUnitOperation","fuelGasSubFlowsheet","fuelGasSubFlowsheetUos","uOs","fuelGasMake","getFuelGasValue","fuelGasUse","fuelGasReportData","fuelGasValue","MultiperiodResultsExcelReport","multiPerdiod","generateMultiperiodParametersDataArray","generateMultiperiodResultsDataArray","utc","currentDate","parameterValue","toLocaleString","noNullSelectedKpis","arrayValues","kpiValue","CaseStudyExcelReport","caseStudy","getUsername","addToDataArrayConvertedValues","kpiQuantity","parameterQuantity","parameterVariable","kpiValueConverted","convertValuesToDefaultUnit","parameterValueConverted","ExcelReportService","generateExcelReport","extractionsWithSubflowsheet","getUnitOperationsWithSubFlowsheet","upgradersWithSubflowsheet","generateExtractionConstraintsSheets","generateUpgraderConstraintsSheets","generateExtractionsStreamsSheets","generateUpgradersStreamsSheets","generateExtractionMassBalanceSheets","generateUpgraderMassBalanceSheets","generateUpgradersCommodityTanksSheets","generateUpgradersGhgEmissionsSheets","generateUpgradersSteamSheets","generateUpgradersFuelGasSheets","generateMultiPeriodResultsExcelReport","generateCaseStudyExcelReport","currentCaseStudy","generateCaseStudyKpiResultsSheets","sheetName","SHEET_NAME_MAX_LENGTH","replaceSheetNameForbiddenCharacters","extractions","adjustSheetName","generateWaterUtilityConstraintsSheet","generateFuelGasUtilityConstraintsSheet","wU","fGU","generateWaterUtilityStreamsSheet","generateFuelGasUtilityStreamsSheet","waterUtility","fuelGasUtility","detectReportWithData","report","reportsWithData","mainUnitOpName","sheetTypeName","subUnitOpName","excessCharacters","media","ExcelReportComponent","xlsxSrv","downloadExcelReport","excelFile","generateExcel","FlowsheetTreeSelectorComponent","modalName","initializeTree","selectedFlowsheet","treeData","getTreeData","getNode_","sortedFlowsheets","keepDropdownOpen","onCheckedItemsChanged","flowsheetsTree","checkedItems","disableCheckBoxes","enableCheckBoxes","emitFlowsheetOwnerId","isChecked","dataItem","checkBox","getFirstNode","OptimizationSettingsTableComponent","$modal","$target","currentTarget","optimizableChanged","isActiveChanged","saveOptimizationVariables","getActiveFlowsheetTitle","getFlowsheetOwnerId","fOwnerId","saveOptimizationVariable","constraintReportVar","unitOperationOwner","optimizationVariablesReport","buildOptimizationVariablesTable","buildConstraintsTable","orderable","rowCallback","usedSplitterIds","$el","FlowsheetCommentsComponent","AboutWindowComponent","appVersion","SendCaseModalComponent","sendCaseModalService","hideError","hideLoading","showMessage","sendCase","showError","CaseClonerService","newCaseName","clonedCase","cloneFlowsheetPool","sourceFlowsheet","newFlowsheet","CaseListComponent","caseCloner","openCloneCaseModal","selectedCaseId","cloneCase","caseToClone","hideCloneCaseModal","hideModal","openDeleteCaseModal","selectedCaseName","deleteCase","caseIndex","caseName","hideDeleteCaseModal","GlobalKpiService","getGlobalKpiNames","globalKpis","kpis","gKpi","existsInAllCases","getGlobalKpi","GlobalKpiComponent","globalKpiService","initData","openingKpiManager","destroyChart","displayKpi","switchChartType","chartType","$chart","highcharts","xLabels","chartData","renderTo","pointFormatter","footerFormat","stacking","kpiChanged","openKpiManager","SankeyDiagramTemplateProviderService","initialAutoScale","getNodeTemplate","portSpreading","textStyle","GraphObject","Link","getLinkSelectionAdornmentTemplate","fromEndSegmentLength","toEndSegmentLength","Shape","Binding","getAutoLinkColor","getLinkToolTip","getWaterLinkToolTip","getFuelGasLinkToolTip","getSankeyLayout","sankeyLayout","LayeredDigraphLayout","setsPortSpots","layeringOption","packOption","layerSpacing","columnSpacing","createNetwork","getAutoHeightForNode","heightIn","computeThickness","heightOut","getTextFontSize","ltext","nodeMinColumnSpace","topLeft","edgesCount","edges","edge","assignLayers","maxlayer","maxLayer","network","vertexes","destinationVertexes","sourceVertexes","commitLayout","curve","invalidateRoute","SankeyDiagramComponent","initDiagram","changeLinkTemplate","linkTemplate","uoName","SagdSourceSheetRows","SagdSourceCellConfig","NAME","dataType","wjcCore","VOLUMETRIC_FLOW_RATE","GHG_INTENSITY","COGEN_ELECTRICITY_GENERATION","NET_ELECTRICITY_EXPORT","COGEN_INTENSITY","GRID_INTENSITY","LIGHT_ENDS","LIGHT_NAPHTHA","HEAVY_NAPHTHA","DISTILLATE","RESID","PRICE","CAPEX_AMORTIZED","OPEX_FIXED","OPEX_VAR","OPEX_GAS_DIESEL","OPEX_POWER","SagdSourceFlexSheetMapper","simulationVariableMapper","NumberToSimulationVariableMapper","originalUnit","SagdSourceFlexSheetEventHandler","valueConverter","spreadsheet","flexSheetEvent","cellConfig","rowConfig","convertedValue","FlexSheetValueConverter","evaluate","MineSourceSheetRows","MineSourceCellConfig","MineSourceFlexSheetMapper","MineSourceFlexSheetEventHandler","DiluentSourceSheetRows","DiluentSourceCellConfig","DiluentSourceFlexSheetMapper","DiluentSourceFlexSheetEventHandler","ThirdPartySourceSheetRows","ThirdPartySourceCellConfig","ThirdPartySourceFlexSheetMapper","ThirdPartySourceFlexSheetEventHandler","OffshoreSourceSheetRows","OffshoreSourceCellConfig","OffshoreSourceFlexSheetMapper","OffshoreSourceFlexSheetEventHandler","UpgraderSheetRows","UpgraderCellConfig","CCR_REMOVAL","NITROGEN_REMOVAL","SULFUR_REMOVAL","SWEET_PRODUCT_RATIO","SWEET_GHG_INTENSITY","SOUR_GHG_INTENSITY","CAPACITY","SWEET_PRODUCT_PRICE","SOUR_PRODUCT_PRICE","TOTAL_H2S_PRODUCTION","DEA_USE_RATE","AMINE_CIRCULATION_RATE","AMINE_RATE_CAPACITY","UpgraderFlexSheetMapper","UpgraderFlexSheetEventHandler","PipeSheetRows","PipeCellConfig","PIPE_LENGTH","PRESSURE_DROP","GHG_INTENSITY_PER_MASS_DISTANCE","PIPE_DENSITY_SPEC","PipeFlexSheetMapper","PipeFlexSheetEventHandler","RefinerySheetRows","RefineryCellConfig","LIGHT_ENDS_MARGIN","NAPHTHA_MARGIN","DISTILLATE_MARGIN","GAS_OIL_MARGIN","VACUUM_RESIDUE_MARGIN","RefineryFlexSheetMapper","RefineryFlexSheetEventHandler","ThirdPartyRefinerySheetRows","ThirdPartyRefineryCellConfig","ThirdPartyRefineryFlexSheetMapper","ThirdPartyRefineryFlexSheetEventHandler","AssaySheetRows","AssayCellConfig","TYPE","COMP_LIGHT_ENDS","COMP_LIGHT_NAPHTHA","COMP_HEAVY_NAPHTHA","COMP_DISTILLATE","COMP_LGO","COMP_HGO","COMP_VGO","COMP_HVGO","COMP_RESID","LE_SULFUR","LE_ANILINE_POINT","LE_MASS_DENSITY","LE_NITROGEN","LE_CCR","LN_SULFUR","LN_ANILINE_POINT","LN_MASS_DENSITY","LN_NITROGEN","LN_CCR","HN_SULFUR","HN_ANILINE_POINT","HN_MASS_DENSITY","HN_NITROGEN","HN_CCR","DIS_SULFUR","DIS_ANILINE_POINT","DIS_MASS_DENSITY","DIS_NITROGEN","DIS_CCR","LGO_SULFUR","LGO_ANILINE_POINT","LGO_MASS_DENSITY","LGO_NITROGEN","LGO_CCR","HGO_SULFUR","HGO_ANILINE_POINT","HGO_MASS_DENSITY","HGO_NITROGEN","HGO_CCR","VGO_SULFUR","VGO_ANILINE_POINT","VGO_MASS_DENSITY","VGO_NITROGEN","VGO_CCR","HVGO_SULFUR","HVGO_ANILINE_POINT","HVGO_MASS_DENSITY","HVGO_NITROGEN","HVGO_CCR","RES_SULFUR","RES_ANILINE_POINT","RES_MASS_DENSITY","RES_NITROGEN","RES_CCR","AssayFlexsheetMapper","AssayFlexsheetEventHandler","flexsheetEvent","UtilitiesSheetColumns","UtilitiesCellConfig","HYDROGEN_USE_RATE","HYDROGEN_USE","UtilitiesFlexSheetMapper","updateHydrogenUseRateVariables","UtilitiesFlexSheetEventHandler","H2sSheetColumns","h2sCellConfig","H2S_PRODUCTION","H2S_PRODUCTION_RATE","H2sFlexSheetMapper","H2sProductionSheetEventHandler","SteamSheetEventHandler","AssayGasesSheetRows","AssayGasesCellConfig","COMP_CO","COMP_CO2","COMP_H2","COMP_N2","COMP_H2S","COMP_SO2","COMP_METHANE","COMP_ETHANE","COMP_PROPANE","COMP_IC4","COMP_NC4","COMP_IC5","COMP_NC5","COMP_C6","AssayGasesFlexsheetMapper","AssayGasesFlexsheetEventHandler","FlexSheetEventHandler","sagdSourceEventHandler","mineSourceEventHandler","diluentSourceEventHandler","thirdPartySourceEventHandler","offshoreSourceEventHandler","upgraderEventHandler","pipeEventHandler","refineryEventHandler","thirdPartyRefineryEventHandler","assayEventHandler","assayGasesEventHandler","utilitiesEventHandler","h2sProductionEventHandler","steamSheetEventHandler","handleEditEvent","activeEditor","handleCellPasteEvent","getEventHandler","selectedSheetIndex","activeSheet","FlexSheetColumnTracker","columnOffset","addUnitOperation","unitOperationIds","addAssay","assayIds","unitOperationIndex","removeAssay","assayIndex","columnCount","findColumnIndex","findAssayColumnIndex","findAssayId","AbstractSheetHandler","SHEET_INDEX","columnTracker","labels","getLabels","arrayToSpreadsheetColumn","frozenColumns","wjCore","updateUnitOperation","updateAssay","unitOperationColumn","assayColumn","formatSimulationVariable","formatValue","isNumber","setCellData","clearColumn","columnIndex","setAt","AssaySheetHandler","isUnitOperationAllowed","AssayGasesSheetHandler","FlexSheetSpreadsheetService","caseToSpreadsheet","frozenRows","initializeEditEventHandler","initializePasteEventHandler","assayColumnTracker","ASSAY_COLUMN_OFFSET","assaySheetHandler","assayGasesColumnTracker","ASSAY_GASES_COLUMN_OFFSET","assayGasesSheetHandler","editHandler","_contextMenu","showFilterIcons","getSheetHandlers","sheetHandler","sheetHandlers","cellEditEnding","addHandler","object","pastingCell","assayId","ASSAY_SHEET","ASSAY_GASES_SHEET","AbstractConstraintsHandler","flowsheetTreeService","toSpreadsheetItem","flowsheetOwner","constraintSpreadsheetModel","mixingConstraintReportVar","wjGrid","autoGenerateColumns","getColumnsConfiguration","clearSpreadsheetItems","createCollectionView","addBoundSheet","CollectionView","definedConstraints","addConstraintReportVariableToArray","cKey","assignFlowsheetOwner","addConstraintWithoutRefreshing","collectionView","selectedSheet","handleEventActiveChange","handleDeleteEvent","isMixingConstraintsUser","handlePasteEvent","valueAsNumber","assignValueToUnitOperation","deleteUnitOperationValue","DEFAULT_NUMBER_OF_ROWS","newItem","updateConstraintValue","noDefinedConstraints","removeAllConstraintItemsByUnitOperationId","constraintId","definedConstraint","removeRangeConstraints","removeExactConstraints","ck","noDefinedConstraint","removeMixingConstraintsWhenStreamDeleted","removeMixingConstraintItemsWhenUnitOperationDeleted","getUnitOperationFlowsheetId","flowshetId","exactConstraintModels","exactConstraint","constraintIdx","rangeConstraintModels","rangeConstraint","constraintModels","assignNewValuesForRangeConstraints","unitOpConstraint","constraintArray","streamsByInletUnitOperation","removeListOfMixingConstraintsFromItemsList","constraintsToDelete","constraintItemIdx","constraintList","ConstraintsSheetHandler","DataType","UpgraderConstraintsSheetHandler","ExtractionConstraintsSheetHandler","ConstraintsSpreadsheetService","constraintsSheetHandler","upgraderConstraintsSheetHandler","extractionConstraintsSheetHandler","beginningEdit","AbstractUtilitiesHandler","sheetIndex","upgOwner","addUnitOperationWithoutRefreshing","addTotal","belongsToUnitOperation","sheetType","ownerUnitOperationId","SteamSheetItemType","FlowsheetType","SteamSheetHelper","calculateNewItemIndex","itemOfSameTypeIndex","findLastIndexOfTypeInItems","firstItemOfItsType","firstUtilitiesItem","newItemOrder","itemOrderGuide","io","resultIndex","newItemIndex","findFirstIndexOfTypeInItems","isFromUtilitiesFlowsheet","isItemFromUtilitiesFlowsheet","utilitiesTypes","typeToSearch","itemsOfCurrentType","getExtraItemsToRemove","uoItem","itemsOfSameType","itemsWithEmptyId","allItemsFromUtilitiesFlowsheet","utilitiesItemsWithoutId","alternateName","steamUseUnitOperationToSpreadsheetItem","isBoiler","boilerToSpreadsheetItem","isWaterTurbine","turbineToSpreadsheetItem","isWaterSourceImport","waterSourceImportToSpreadsheetItem","isWaterSinkImport","waterSinkImportToSpreadsheetItem","isWaterSource","waterSourceToSpreadsheetItem","isWaterHeader","waterHeaderToSpreadsheetItem","getEmptySpreadsheetItem","convertItemValuesToDisplayUnit","totalFlowrate","totalInletFlowrate","totalOutletFlowrate","subType","sumValuesToItem","isFromHydroCarbonFlowsheet","SteamSheetHandler","steamSheetHelper","itemsAndTotals","getItemsAndTotalsConfig","hydrocarbonSpreadsheetItems","othersTotal","uoSteam","itemInRawValue","getItemInRawValue","upgraderTotalItem","getInformativeItem","iat","utilitiesItems","utilitiesTitle","allItems","boilerTotals","turbineTotals","waterSourceImportTotals","waterSinkImportTotals","waterSourceTotals","waterHeaderTotals","indexData","titleItem","addNewItemAt","isUpgraderChild","itemsToRemove","extraItemsToRemove","itemToRemove","steamAndPowerSubFs","HydrogenSheetHandler","totalIndex","SpreadsheetTitle","UtilitiesSpreadsheetService","upgsOwners","removeSheetHandlersByType","removeAllUtilitiesSheetsByType","cont","steamSheetHandlerV2","getSheetIndex","hydrogenSheetHandlerV2","addEventsHandlers","sheetNames","removeUtilitiesSheetsByUpgOwner","allSheets","lastH2sSheetIdx","H2sSheetUtils","addUnitOperationToSpreadsheetItem","h2sUo","unitCategory","addSulfurPlantToSpreadsheetItem","sulfurPlantId","sulfurPlantName","Moleflowrate","findItemByUnitOperationIdOrSulfurPlantId","isItemEmpty","copyUnitOperationItemData","copySulfurPlantItemData","clearSulfurPlantData","clearUnitOperationData","H2sSheetItemDataShifter","h2sUtils","shiftItemData","emptyItem","belongsToFirstSection","copyDataMethod","clearDataMethod","lastItem","currentItem","H2sSheetColumnsConfiguration","H2sItemType","H2sItemTitle","UpgraderH2sSheetHandler","h2sItemShifter","setSheetIndex","grandTotal","calculateTotals","firstSectionTotal","getFirstSectionFreeItem","secondSectionTotal","getSecondSectionFreeItem","unitOperationBelongsToFirstSection","unitOperationBelongsToSecondSection","addUnitOperationToFirstSection","addSulfurPlantToSecondSection","totals","freeItem","firstSectionItemIsFree","secondSectionItemIsFree","lastHydrogenSheetIdx","H2sSheetGroupHandler","removeAllH2sSheets","upgraderH2sSheetHandler","removeH2sSheetsByUpgOwner","FlowsheetSpreadsheetComponent","flexSheetService","spreadsheetService","utilitiesSpreadsheetV2Service","h2sSheetGroupHandler","updateSpreadsheetWhenCaseReplaced","updateSpreadsheetWhenUnitOpAdded","updateSpreadsheetWhenUnitOpUpdated","updateSpreadsheetWhenUnitOpRemoved","assayAddedRequest","assayUpdatedRequest","assayRemovedRequest","initializeFlexSheet","flex","flexSheet","initializeH2sSheets","upgOwners","initializeUtilitiesSheets","upgraderOwner","updateUtilitiesSheetsWhenUnitOpAdded","updateUtilitiesSheetsWhenUnitOpUpdated","updateUtilitiesSheetsWhenUnitOpRemoved","steamAndPowerOwner","getSteamAndPowerSubFlowsheet","steamAndPowerUpgraderOwner","uOpOwner","DiagramCommentButtonComponent","allowZoom","selectionAdorned","DiagramControlsComponent","toggleDottedLines","hiddenDashedLines","toggleInactiveItems","hiddenInactiveItems","toggleLabels","hiddenLabels","toggleMultiPeriodMode","ParametricStudyApiService","solveParametricStudy","solveParametricStudyAsync","SolveCaseStudyCanceller","ParametricStudyService","parametricStudyApi","handleSuccess","cancelled","restoreBackup","serializedStudy","ParameterInputComponent","parametersGroup","addVariableValueControl","updateVariableValueInput","valuesGroupArray","addValueControl","removeState","ParametricStudyComponent","availableParamId","categoryChanged","paramProvidersForCategory","currentlyFlowsheetOwnerId","availableParams","parameterProviderChanged","selectedBaseObject","cleanInputs","ParametricStudyResultsComponent","selectedKpisWithResults","unitCase","changeResults","selectedKpi","findKpiResultsByKpiId","kpiData","parameterData","tableHtml","ErrorMessage","ParametricStudyWindowComponent","parametricStudyService","setCurrentStudyById","invalidName","parametricStudyComponent","validateParametricStudyName","currentStudyChanged","currentStudy","KEY_NOT_FOUND","SubFlowsheetInfoComponent","subFlowsheetOwnerNames","AssayManagerExcelReport","assays","addFirstColumn","fCut","AssayManagerExcelService","Assays","uploadAssays","assayFields","assayNames","validateType","isValid","_ext","_Api","_api_register","_api_registerPlural","sSelector","oOpts","api","traditional","_fnSettingsFromNode","iApiIndex","fnAddData","redraw","isPlainObject","toArray","fnAdjustColumnSizing","bRedraw","settings","oScroll","sX","sY","_fnScrollDraw","fnClearTable","fnClose","nTr","fnDeleteRow","aoData","fnDestroy","fnDraw","fnFilter","sInput","iColumn","bRegex","bSmart","bShowGlobal","bCaseInsensitive","fnGetData","fnGetNodes","iRow","fnGetPosition","columnVisible","fnIsOpen","isShown","fnOpen","mHtml","sClass","fnPageChange","mAction","fnSetColumnVis","iCol","bShow","fnSettings","fnSort","aaSort","fnSortListener","nNode","fnCallback","fnUpdate","mData","mRow","bAction","fnVersionCheck","_that","emptyInit","oApi","internal","_fnExternApiFunc","iLen","oInit","_fnExtend","bInitHandedOff","$this","_fnCompatOpts","_fnCompatCols","_fnCamelToHungarian","allSettings","nTable","nTHead","nTFoot","bRetrieve","oInstance","bDestroy","_fnLog","sTableId","_unique","oSettings","models","sDestroyWidth","sInstance","_fnLanguageCompat","oLanguage","aLengthMenu","iDisplayLength","_fnMap","oFeatures","_fnCallbackReg","fnDrawCallback","fnServerParams","fnStateSaveParams","fnStateLoadParams","fnStateLoaded","fnRowCallback","fnCreatedRow","fnHeaderCallback","fnFooterCallback","fnInitComplete","fnPreDrawCallback","rowIdFn","_fnGetObjectDataFn","rowId","_fnBrowserDetect","oClasses","sTable","iInitDisplayStart","iDisplayStart","_iDisplayStart","iDeferLoading","bDeferLoading","_iRecordsDisplay","_iRecordsTotal","sUrl","ajax","_fnCallbackFire","_fnInitialise","asStripeClasses","sStripeOdd","sStripeEven","stripeClasses","rowOne","inArray","asDestroyStripes","aoColumnsInit","anThs","nThead","_fnDetectHeader","aoHeader","_fnGetUniqueThs","aoColumns","_fnAddColumn","_fnApplyColumnDefs","aoColumnDefs","oDef","_fnColumnOptions","_isArrayHost","loadedInit","aaSorting","asSorting","_fnSortingClasses","bSort","aSort","_fnSortFlatten","sortedColumns","_fnSortAria","_fnDataSource","bDeferRender","captions","_captionSide","thead","appendTo","tbody","insertAfter","nTBody","tfoot","sNoFooter","aoFooter","aaData","_fnAddData","_fnAddTr","aiDisplay","aiDisplayMaster","bInitialised","_fnSaveState","bStateSave","_fnLoadState","_re_dic","_re_new_lines","_re_html","_re_date","_re_escape_regex","_re_formatted_numeric","_empty","_intVal","_numToDecimal","decimalPoint","_fnEscapeRegex","_isNumber","formatted","strType","_htmlNumeric","_isHtml","_stripHtml","_pluck","prop2","ien","_pluck_order","_removeEmpty","sorted","_areAllUnique","again","_flatten","_includes","_fnHungarianMap","newKey","_hungarianMap","hungarianKey","defaultDecimal","sDecimal","_addNumericSort","zeroRecords","sZeroRecords","sEmptyTable","sLoadingRecords","sInfoThousands","sThousands","decimal","arg","util","throttle","freq","timer","frequency","escapeRegex","arrayNotation","funcNotation","innerSrc","_fnSplitObjNotation","aLast","__reArray","__reFn","jLen","fetchData","_fnCompatMap","knew","sScrollX","scrollX","searchCols","aoSearchCols","oSearch","dataSort","aDataSort","__browser","barWidth","bScrollOversize","bScrollbarLeft","bBounding","oBrowser","iBarWidth","_fnReduce","inc","isSet","nTh","oDefaults","oCol","oColumn","sTitle","aoPreSearchCols","oOptions","th","sWidthOrig","mDataProp","sType","_sManualType","origClass","iDataSort","mDataSrc","mRender","attrTest","_bAttrSrc","_setter","rowData","innerData","fnSetData","_fnSetObjectDataFn","_rowReadObject","bSortable","sSortableNone","bAsc","bDesc","sSortingClass","sSortableAsc","sSortingClassJUI","sSortJUIAscAllowed","sSortableDesc","sSortJUIDescAllowed","sSortable","sSortJUI","_fnAdjustColumnSizing","bAutoWidth","_fnCalculateColumnWidths","sWidth","_fnVisibleToColumnIndex","iMatch","aiVis","_fnGetColumns","_fnColumnIndexToVisible","iPos","_fnVisbleColumns","bVisible","sParam","_fnColumnTypes","jen","ken","detect","_fnGetCellData","aoColDefs","aoCols","kLen","aTargets","targets","aDataIn","anTds","oData","oRow","_aData","aIds","_fnCreateTr","_fnGetRowElements","rowIdx","colIdx","iDraw","defaultContent","sDefaultContent","cellData","iDrawError","fomatters","_fnSetCellData","_fnGetDataMaster","_fnClearTable","_fnDeleteIndex","iTarget","iTargetIndex","_fnInvalidate","cellWrite","anCells","_aSortData","_aFilterData","_fnRowAttributes","contents","tds","td","objectRead","setter","cellProcess","rowNode","nTrIn","nTd","_DT_RowIndex","sCellType","_DT_CellIndex","fnCreatedCell","DT_RowClass","__rowc","DT_RowAttr","DT_RowData","_fnBuildHead","createHeader","iTabIndex","_fnSortAttachListener","_fnRenderer","sHeaderTH","sFooterTH","nTf","_fnDrawHead","aoSource","bIncludeHidden","nLocalTr","iRowspan","iColspan","aoLocal","aApplied","iColumns","_fnDraw","ajaxComplete","_fnStart","bServerSide","fnRecordsDisplay","aPreDraw","anRows","iRowCount","iStripes","oLang","iDisplayEnd","fnDisplayEnd","bDrawing","_fnProcessingDisplay","bDestroying","_fnAjaxUpdate","iEnd","iDataIndex","nRow","sStripe","_sRowStripe","sZero","fnRecordsTotal","colSpan","sRowEmpty","bFiltered","_fnReDraw","holdPosition","bFilter","_fnSort","_fnFilterComplete","oPreviousSearch","_drawHold","_fnAddOptionsHtml","holding","sWrapper","nHolding","nTableWrapper","nTableReinsertBefore","featureNode","cOption","nNewNode","cNext","sAttr","aDom","sDom","sJUIHeader","sJUIFooter","aSplit","bPaginate","bLengthChange","_fnFeatureHtmlLength","_fnFeatureHtmlFilter","bProcessing","_fnFeatureHtmlProcessing","_fnFeatureHtmlTable","bInfo","_fnFeatureHtmlInfo","_fnFeatureHtmlPaginate","aoFeatures","cFeature","fnInit","aanFeatures","replaceWith","aLayout","nCell","iColShifted","bUnique","nTrs","fnShiftCol","nHeader","aReturn","bSortCellsTop","_fnBuildAjax","rbracket","ajaxData","jqXHR","_fnAjaxDataSrc","sError","newData","baseAjax","sServerMethod","thrown","oAjaxData","fnServerData","sAjaxSource","_fnAjaxParameters","_fnAjaxUpdateDraw","dataProp","columnSearch","preSearch","preColSearch","displayStart","displayLength","_iDisplayLength","sSearch","regex","sName","searchable","bSearchable","legacy","compat","modern","recordsTotal","recordsFiltered","_bInitComplete","_fnInitComplete","dataSrc","sAjaxDataProp","tableId","previousSearch","sFilterInput","sFilter","searchFn","return","searchDelay","jqFilter","sSearchPlaceholder","_fnThrottle","ev","oInput","iForce","oPrevSearch","aoPrevSearch","fnSaveFilter","oFilter","fnRegex","bEscapeRegex","_fnFilter","_fnFilterColumn","_fnFilterCustom","displayRows","searchStr","smart","rpSearch","_fnFilterCreateSearch","invalidated","prevSearch","displayMaster","_fnFilterData","_sFilterRow","__filter_div","__filter_div_textContent","filterData","wasInvalidated","innerText","_fnSearchToCamel","_fnSearchToHung","tid","sInfo","aoDrawCallback","_fnUpdateInfo","sInfoEmpty","sInfoFiltered","_fnInfoMacros","sInfoPostFix","fnInfoCallback","fnFormatNumber","iAjaxStart","deferLoading","_fnStringToCss","aData","_fnLengthChange","_fnLengthOverflow","menu","d2","lengths","sLengthSelect","sLength","sLengthMenu","outerHTML","sPaginationType","pager","sPaging","visRecords","pages","_fnPageChange","sProcessing","scrollY","caption","captionSide","headerClone","cloneNode","footerClone","_div","scroller","sScrollWrapper","sScrollHead","sScrollHeadInner","sXInner","sScrollBody","sScrollFoot","sScrollFootInner","scrollHead","scrollBody","scrollFoot","bCollapse","nScrollHead","nScrollBody","nScrollFoot","headerTrgEls","footerTrgEls","headerSrcEls","footerSrcEls","headerCopy","footerCopy","correction","sanityWidth","scrollXInner","divHeader","divHeaderStyle","divHeaderInner","divHeaderInnerStyle","divHeaderTable","divBodyEl","divBody","divBodyStyle","divFooterInner","divFooterTable","tableEl","tableStyle","ie67","headerWidths","footerWidths","headerContent","footerContent","zeroOut","nSizer","borderTopWidth","borderBottomWidth","scrollBarVis","prependTo","_fnApplyToChildren","outerWidth","nToSize","iOuterWidth","bScrolling","an1","an2","nNode1","nNode2","__re_html_remove","columnIdx","visibleColumns","headerCells","tableWidthAttr","tableContainer","userInputs","styleWidth","_fnConvertToWidth","tmpTable","_fnGetWidestNode","sContentPadding","holder","_reszEvt","bindResize","_fnGetMaxLenString","maxIdx","srcCol","aaSortingFixed","fixedObj","nestedSort","_idx","sortCol","aiOrig","oExtSort","formatters","_fnSortData","dataA","dataB","nextSort","oAria","ariaTitle","sSortAscending","sSortDescending","_fnSortListener","nextSortIdx","bSortMulti","sortIdx","attachTo","_fnBindAction","oldSort","aLastSort","sortClass","sSortColumn","bSortClasses","customData","customSort","sSortDataType","_bLoadingState","oSavedState","fnStateSaveCallback","fnStateLoadCallback","_fnImplementState","Api","abStateLoad","iStateDuration","oLoadedState","tn","sErrMode","errMode","mappedName","extender","breakRefs","sStore","callbackArr","Event","__apiStruct","__arrayProto","ctxSettings","jq","tables","_toSettings","alwaysNew","apiInst","_selector_row_indexes","apiSelector","pluck","to$","toJQuery","__dt_wrapper","struct","methodScoping","struc","methodExt","propExt","heir","registerPlural","pluralName","singularName","__table_selector","recordsDisplay","serverSide","__reload","one","resetPaging","_selector_run","selectFn","selectorType","_selector_opts","_selector_first","displayFiltered","displayFilteredMap","selInt","cellIdx","rowObj","__row_selector","thatIdx","loopRow","loopCells","newRows","modRows","stateSaveParamsEvent","destroyEvent","idFn","_detailsShow","childRows","__details_state","__details_remove","_details","__details_display","__details_events","drawEvent","colvisEvent","_child_obj","_child_mth","klass","addRow","created","__details_add","__re_column_selector","__columnData","r1","r2","visColumns","jqResult","__column_selector","calc","__setColumnVis","rowSelector","columnSelector","allCells","fnSelector","__cell_selector","internalOpts","cellsNoOpts","caseInsen","use","jquery","versionCheck","iThis","iThat","aThis","aThat","fnIsDataTable","foot","fnTables","camelToHungarian","jqRows","jqTable","jqTbody","jqWrapper","removedMethod","arg1","arg2","arg3","arg4","plural","resolved","bScrollCollapse","toFormat","sessionStorage","oPaginate","sFirst","sLast","sNext","sPrevious","sScrollXInner","sScrollY","aoRowCallback","aoHeaderCallback","aoFooterCallback","aoRowCreatedCallback","aoPreDrawCallback","aoInitComplete","aoStateSaveParams","aoStateLoadParams","aoStateLoaded","aoOpenRows","aoStateSave","aoStateLoad","aoServerParams","aoDestroyCallback","paginate","oPlugins","pageButton","oJUIClasses","sVersion","afnFiltering","aTypes","ofnSearch","oSort","afnSortData","oStdClasses","oPagination","sPageButton","sPageButtonActive","sPageButtonDisabled","sSortAsc","sSortDesc","sSortJUIAsc","sSortJUIDesc","sSortJUIWrapper","sSortIcon","extPagination","_numbers","numbers_length","half","DT_el","simple","simple_numbers","full_numbers","first_last_numbers","btnDisplay","btnClass","activeEl","aria","disabledClass","clickHandler","pagingTag","tabindex","parsed","__numericReplace","decimalPlace","re1","re2","jqueryui","__htmlEscapeEntities","__mld","momentFn","luxonFn","dateFn","luxon","__mlWarning","__mldObj","locale","DateTime","fromFormat","fromISO","setLocale","__mlHelper","localeString","__thousands","__decimal","NumberFormat","formatToParts","datetime","thousands","postfix","negative","flo","intPart","floatPart","_fnNodeToDataIndex","_fnNodeToColumnIndex","_fnCalculateEnd","dataTableSettings","dataTableExt","AssayManagerComponent","assayManagerExcelService","newAnalysisType","saveCurrentAnalysis","setDefaultCompositionValues","setCurrentAnalysisById","newAnalysisName","originalAnalysis","validateName","newAssay","cloneFluidAnalysis","removeCurrentAnalysis","readAsBinaryString","totalOutputWarningMessage","totalOutput","selectedUnit","MAX_SAFE_INTEGER","assayByName","ConstraintViolationReportComponent","showConstraintViolationReport","SankeyDiagramControlsComponent","genericSinksVisible","UnitOperationFilterPipePipe","searchTerm","SearchModalComponent","selectedUnitId","assignSearchTerm","focusin","$e","focusout","WaterMaterialStreamComponent","openWaterStreamPropertyWindowRequest","isMultiPeriodTank","tank","CustomValidators","numericValue","positive","performRequiredValidation","validNumber","NumberValidationMessagesComponent","MultiPeriodInventorySettingsComponent","removeFormControls","allTanks","addFormControls","findAllTanks","addTanksFormControls","removeTanksFormControls","onEvaluateInventoryChange","onEvaluateInventoryChecked","onEvaluateInventoryUnchecked","numberOfStepsControl","touchedOrDirty","getTankValueFormControl","tankId","shouldShowControlValidation","isSubmitted","mapTankValues","AbstractMultiPeriodSpreadsheetEventHandler","multiPeriodParameter","getEventData","MultiPeriodSpreadsheetEditEventHandler","MultiPeriodSpreadsheetPasteEventHandler","MultiPeriodParameterSpreadsheetComponent","numberToUnitConverter","initializeSheet","displayPeriodsColumn","numberOfMultiPeriodParameters","parameterToSpreadsheetColumn","autoSizeColumns","columnNumber","editEventHandler","pasteEventHandler","numberOfRows","minRows","numberOfColumns","minCols","AlphanumericSortPipe","numericArray","numericWhitHyphenArray","kpiObject","nameArray","maxNumericLength","findMaxStringLength","maxNumericHyphenLength","objectA","objectB","arrayObjectA","arrayObjectB","addZerosIfNumeric","stringArray","stringToCompare","addZeros","numericString","maxStringLength","numberOfZeros","KpiManagerComponent","availableKpiId","kpiProvidersForCategory","availableKpis","kpiProviderChanged","removeKpis","copyToClipboard","MultiPeriodParameterSelectorComponent","availableMultiPeriodParameterId","multiPeriodProvidersForCategory","availableMultiPeriodParameters","multiPeriodProviderChanged","MultiPeriodSettingsComponent","showFirstStep","multiPeriodInventorySettingsComponent","onFirstStepNextClicked","showNextStep","cursorFocusInFieldsWithValidationError","$formLabel","$formDiv","onSecondStepNextClicked","difference","multiPeriodParameterSpreadsheetComponent","onThirdStepNextClicked","kpiManagerComponent","flowsheetSelector","onFourthStepPreviousClicked","showPreviousStep","visibleStep","hiddenStep","$step","onMultiPeriodSettingsDone","KpiManagerModalComponent","MultiPeriodResultsComponent","generateMultiPeriodReportArray","selectedKpiId","getKpiResults","kpiOwnerBaseObject","selectedKpiOwner","tankCapacity","getPeriods","plotLines","setPlotLineColor","dashStyle","calculateYAxisMaxValue","dataRounded","multiPeriodReportData","charData","maxKpiResult","findMaxKpiResult","FuelGasMaterialStreamComponent","openFuelGasStreamPropertyWindowRequest","GhgUpgraderReportComponent","upgraderData","convertToDisplayUnit","upgTotalGhgEmissions","getUpgraderTotalGhgEmissions","totalBarSeries","getPieChartOptions","ConstraintRankingComponent","buildConstraintRankingGraphics","TabHref","TabTooltipText","UpgraderReportComponent","buildReportsForCurrentSubFlowsheet","removeUpgrader","currentFlowsheetCategory","getTopFlowsheetOwners","selectedUpgrader","openUpgrader","currentOwnerId","uw","topOwners","utilitiesSummaryReport","disableEmptyReportTab","STEAM_TAB","fuelGasSummaryReport","FUEL_GAS_TAB","buildConstraintRanking","currentOwner","cr","upgraderConstraintRanking","CONSTRAINTS_TAB","reportData","tabHref","tooltipText","CaseCommentsComponent","updateDataTable","getCaseComments","buildCommentsTable","selectedComment","saveComment","getUnitOpOwnerName","idOwner","getFlowsheetOwner","validateUser","tableUser","MultiperiodExcelReportComponent","CaseStudyExcelReportComponent","DebounceOperator","durationSelector","DebounceSubscriber","emitValue","durationSubscription","DiagramItemColorPickerComponent","colorPickerService","PopupTrigger","colorChangedSubject","open$","isAnimating","popup","isVisible","colorChanged$","debounce","interval","isNumeric","updateFill","PopupPosition","moveContainer","onColorPickerInputChanged","oldSkipsUndoManagerValue","skipsUndoManager","commentsNode","onPopupShowing","animationStarting","onPopupShown","animationFinished","guessedAnimationTimeMs","onPopupHiding","onPopupHidden","animationInProgress","FlowsheetComponent","uncertaintyAnalysisService","caseStatsService","closePropertyWindowRequest","closePropertyWindowAndSave","saveCustomCodeRequest","saveUnitOperationWithCustomCode","openPropertyWindowRequest","loadPropertyView","calculateHeightFlag","setCaseLevelPropertyValues","serializedDate","initStackedModals","not","debounced","wait","immediate","callNow","ngAfterViewChecked","setCurrentUnitOp","$propertyWindow","openingPropertyWindow","activeFlowsheetOwner","LoginComponent","authenticationService","returnUrl","AuthGuard","ChangelogComponent","ctx_r23","ForgotPasswordComponent","onSendPasswordRecoverySuccess","LatestAccessComponent","latestAccesses","onLatestAccessesReceived","latestAccessList","momentDate","lastAccessDate","ago","fromNow","RoleAdminGuard","CodeEditorModule","FormsModule","StringToSimulationVariableMapper","SagdSourceExcelIndexes","ArrayToSagdSourceMapper","DiluentSourceExcelIndexes","ArrayToDiluentSourceMapper","MineSourceExcelIndexes","ArrayToMineSourceMapper","ThirdPartySourceExcelIndexes","ArrayToThirdPartySourceMapper","OffshoreSourceExcelIndexes","ArrayToOffshoreSourceMapper","UpgraderExcelIndexes","ArrayToUpgraderMapper","PipeExcelIndexes","ArrayToPipeMapper","RefineryExcelIndexes","ArrayToRefineryMapper","ThirdPartyRefineryExcelIndexes","ArrayToThirdPartyRefineryMapper","ArrayToUnitOperationMapper","arrayToSagdSourceMapper","arrayToDiluentSourceMapper","arrayToMineSourceMapper","arrayToThirdPartySourceMapper","arrayToOffshoreSourceMapper","arrayToUpgraderMapper","arrayToPipeMapper","arrayToRefineryMapper","arrayToThirdPartyRefineryMapper","NAME_INDEX","ExcelUploadService","arrayToUnitOperationMapper","importExcelFile","readSheet","SOURCES_SHEET","arrayOfArraysToUnitOperations","UPGRADERS_SHEET","pipes","PIPES_SHEET","REFINERIES_SHEET","sheetAsJson","transposeArrayOfArrays","transposedArray","rowIndex","fillRow","cellIndex","itemsToAdd","sourceValues","ID_INDEX","ReactiveCodeEditorModule","ReactiveFormsModule","FlowsheetModule","WjGridSheetModule","WjNavModule","WjInputModule","GlobalErrorHandler","initHighcharts","Drilldown","AppModule","bootstrap","JsonPipe","enableProdMode","__NgCli_bootstrap_1","bootstrapModule","core_1","wijmo","WjOptions","asyncBindings","WjComponentResolvedMetadata","changeEventMap","allImplEvents","resolveChangeEventMap","changeEvents","implName","exposeName","Ng2Utils","getWjEventName","eventImpl","evExposed","getChangeEventNameExposed","evImpl","getChangeEventNameImplemented","WjDirectiveBehavior","_pendingEvents","isInitialized","isDestroyed","directive","injectedParent","typeData","directiveTypeDataProp","siblingId","siblingDirId","directiveResolvedTypeDataProp","resolvedTypeData","BehaviourRefProp","isInitializedPropAttr","_createEvents","_setupAsChild","_isHostElement","siblingDirIdAttr","subscribeToEvents","getHostElement","_initParent","initializedEventAttr","_siblingInsertedEH","_isChild","parentBehavior","_getParentProp","replaceChild","instantiateTemplate","createEmbeddedView","viewRef","getPropChangeEvent","addHandlers","triggerPropChangeEvents","evaluatePath","_runInsideNgZone","_triggerEvent","getBehavior","_isAsyncBinding","asyncBindingUpdatePropAttr","_isParentInitializer","_isParentReferencer","parPropAttr","parentRefProperty","_getParentReferenceProperty","_useParentObj","_parentInCtor","_getSiblingIndex","_siblingInserted","_ngZoneRun","_pendingEventsTO","_triggerPendingEvents","flushPendingEvents","_pathBinding","wjModelPropAttr","wijmoComponentProviderId","outsideZoneEvents","pointermove","pointerover","wheel","pointerenter","pointerleave","pointerout","mouseover","mouseenter","mouseout","ɵɵinvalidFactory","ɵɵdefineDirective","initEvents","changeEventImplementSuffix","getWjEventNameImplemented","wjEventImplementSuffix","getBaseType","getPrototypeOf","getAnnotations","Reflect","getMetadata","getAnnotation","getTypeAnnotation","equals","_copy","WjValueAccessor","_writeQnt","_isSubscribed","_onChange","_onTouched","_directive","_behavior","_modelValue","_ensureInitEhUnsubscribed","_updateDirective","_dirInitEh","initialized","_isFirstChange","_ensureNgModelProp","_ngModelProp","_ensureSubscribed","_dirValChgEh","lostFocus","_dirLostFocusEh","WjValueAccessorFactory","extendStatics","__extends","setPrototypeOf","__proto__","__","__decorate","getOwnPropertyDescriptor","__param","common_1","forms_1","wijmo_angular2_directivebase_1","wjcGridSheet","wjFlexSheetMeta","WjFlexSheet","_wjBehaviour","selectedSheetChanged","ɵɵdirectiveInject","ElementRef","ɵɵdefineComponent","wjModelProperty","newRowAtTop","allowAddNew","allowDelete","allowDragging","allowMerging","allowResizing","allowSorting","allowPinning","quickAutoSize","autoScroll","autoSearch","autoRowHeights","autoSizeMode","bigCheckboxes","childItemsPath","groupHeaderFormat","headersVisibility","showSelectedHeaders","showMarquee","itemFormatter","imeEnabled","mergeManager","selectionMode","showGroups","showSort","showDropDown","showAlternatingRows","showErrors","alternatingRowStep","validateEdits","treeIndent","itemsSource","autoClipboard","expandSelectionOnCopyPaste","cloneFrozenCells","deferResizing","sortRowIndex","editColumnIndex","stickyHeaders","preserveSelectedState","preserveOutlineState","preserveWhiteSpace","keyActionTab","keyActionEnter","rowHeaderPath","virtualizationThreshold","anchorCursor","lazyRender","refreshOnEdit","copyHeaders","columnGroups","allowAutoFill","isTabHolderVisible","enableDragDrop","enableFormulas","gotFocusNg","lostFocusNg","refreshingNg","refreshedNg","beginningEditNg","cellEditEndedNg","cellEditEndingNg","prepareCellForEditNg","formatItemNg","resizingColumnNg","resizedColumnNg","autoSizingColumnNg","autoSizedColumnNg","draggingColumnNg","draggingColumnOverNg","draggedColumnNg","sortingColumnNg","sortedColumnNg","pinningColumnNg","pinnedColumnNg","resizingRowNg","resizedRowNg","autoSizingRowNg","autoSizedRowNg","draggingRowNg","draggingRowOverNg","draggedRowNg","deletingRowNg","deletedRowNg","loadingRowsNg","loadedRowsNg","rowEditStartingNg","rowEditStartedNg","rowEditEndingNg","rowEditEndedNg","rowAddedNg","groupCollapsedChangedNg","groupCollapsedChangingNg","itemsSourceChangingNg","itemsSourceChangedNg","selectionChangingNg","selectionChangedNg","scrollPositionChangedNg","updatingViewNg","updatedViewNg","updatingLayoutNg","updatedLayoutNg","pastingNg","pastedNg","pastingCellNg","pastedCellNg","copyingNg","copiedNg","selectedSheetChangedNg","selectedSheetIndexChangePC","draggingRowColumnNg","droppingRowColumnNg","beginDroppingRowColumnNg","endDroppingRowColumnNg","loadedNg","unknownFunctionNg","sheetClearedNg","prepareChangingRowNg","prepareChangingColumnNg","rowChangedNg","columnChangedNg","ɵɵProvidersFeature","ngContentSelectors","ɵɵprojectionDef","ɵɵelementStart","ɵɵprojection","ɵɵelementEnd","Inject","FlexSheet","wjSheetMeta","WjSheet","wjProperty","rowCount","isFirstChange","boundRowCount","boundColumnCount","nameChangedNg","ɵɵNgOnChangesFeature","ɵɵdefineNgModule","ɵɵdefineInjector","WjMenuItem_div_0_Template","WjMenuSeparator_div_0_Template","ɵɵelement","wjcInput","wjListBoxMeta","WjListBox","selectedIndexChanged","checkedItemsChanged","isContentHtml","selectedValuePath","displayMemberPath","checkedMemberPath","selectedItem","itemsChangedNg","itemCheckedNg","selectedIndexChangedNg","selectedIndexChangePC","selectedItemChangePC","selectedValueChangePC","checkedItemsChangedNg","checkedItemsChangePC","ListBox","wjMultiSelectListBoxMeta","WjMultiSelectListBox","checkOnFilter","showFilterInput","filterInputPlaceholder","showSelectAllCheckbox","selectAllLabel","MultiSelectListBox","wjComboBoxMeta","WjComboBox","isDroppedDownChanged","textChanged","isDroppedDown","showDropDownButton","autoExpandSelection","dropDownCssClass","isAnimated","isRequired","clickAction","headerPath","maxDropDownHeight","maxDropDownWidth","trimText","isDroppedDownChangingNg","isDroppedDownChangedNg","isDroppedDownChangePC","textChangedNg","textChangePC","ComboBox","wjAutoCompleteMeta","WjAutoComplete","maxItems","minLength","cssMatch","itemsSourceFunction","searchMemberPath","AutoComplete","wjCalendarMeta","WjCalendar","displayMonthChanged","monthView","showHeader","itemValidator","firstDayOfWeek","formatYearMonth","formatDayHeaders","formatDays","formatYear","formatMonths","repeatButtons","showYearPicker","displayMonth","valueChangedNg","valueChangePC","displayMonthChangedNg","displayMonthChangePC","Calendar","wjColorPickerMeta","WjColorPicker","showAlphaChannel","showColorString","ColorPicker","wjInputMaskMeta","WjInputMask","mask","promptChar","rawValueChangePC","InputMask","wjInputColorMeta","WjInputColor","InputColor","wjMultiSelectMeta","WjMultiSelect","maxHeaderItems","headerFormatter","MultiSelect","wjMultiAutoCompleteMeta","WjMultiAutoComplete","selectedItemsChanged","maxSelectedItems","selectedItems","selectedMemberPath","selectedItemsChangedNg","selectedItemsChangePC","MultiAutoComplete","wjInputNumberMeta","WjInputNumber","showSpinner","InputNumber","wjInputDateMeta","WjInputDate","InputDate","wjInputTimeMeta","WjInputTime","InputTime","wjInputDateTimeMeta","WjInputDateTime","timeMax","timeMin","timeStep","timeFormat","InputDateTime","wjMenuMeta","WjMenu","ObservableArray","_attachToControl","_updateHeader","listBox","formatItem","removeHandler","_fmtItem","loadingItems","_loadingItems","_definedHeader","onItemClicked","invalidate","getElementsByClassName","WjMenuItem","contentRoot","added","itemClicked","commandParameterPath","commandPath","subItemsPath","openOnHover","closeOnLeave","isButton","itemClickedNg","wjMenuItemMeta","_ownerMenu","cmdParam","ɵɵtemplate","WjMenuItemTemplateDir","templateRef","ownerItem","templateDir","loadList","TemplateRef","WjMenuSeparator","wjMenuItemTemplateDir","wjMenuSeparatorMeta","wjItemTemplateMeta","WjItemTemplate","ownerControl","_getListBox","_cdRef","_instantiateTemplate","itemIndex","wjItemTemplate","wjPopupMeta","WjPopup","hiding","removeAllHandlers","fadeOut","showTrigger","hideTrigger","isDraggable","isResizable","dialogResultEnter","removeOnHide","showingNg","shownNg","hidingNg","hiddenNg","Popup","WjContextMenu","onContextMenu","wjContextMenu","dropDown","ɵɵlistener","wjCollectionViewNavigatorMeta","WjCollectionViewNavigator","byPage","CollectionViewNavigator","wjCollectionViewPagerMeta","WjCollectionViewPager","wjcNav","wjTreeViewMeta","WjTreeView","selectedItemChanged","imageMemberPath","showCheckboxes","autoCollapse","checkOnClick","expandOnClick","expandOnLoad","lazyLoadFunction","selectedNode","loadingItemsNg","loadedItemsNg","selectedItemChangedNg","selectedNodeChangePC","isCollapsedChangingNg","isCollapsedChangedNg","isCheckedChangingNg","isCheckedChangedNg","dragStartNg","dragOverNg","dropNg","dragEndNg","nodeEditStartingNg","nodeEditStartedNg","nodeEditEndingNg","nodeEditEndedNg","TreeView","wjTabPanelMeta","WjTabPanel","tabs","beginUpdate","endUpdate","autoSwitch","selectedTab","selectedTabChangePC","TabPanel","wjTabMeta","WjTab","_setParts","Tab","wjAccordionMeta","WjAccordion","panes","selectedPane","showIcons","allowCollapseAll","allowExpandMany","Accordion","wjAccordionPaneMeta","WjAccordionPane","AccordionPane","Operator","FilterCondition","_op","_filter","asEnum","_val","_strVal","isString","EQ","NE","_refDateTime","GT","GE","LT","LE","BW","EW","NC","FilterType","ConditionFilter","_and","asBoolean","asType","DataMap","_binding","dataMap","getDisplayValue","_hasTimePart","_hasDatePart","Globalize","and","culture","implementsInterface","ConditionFilterEditor","getTemplate","applyTemplate","_divHdr","_divCmb1","_divVal1","_btnAnd","_btnOr","_spAnd","_spOr","_divCmb2","_divVal2","ariaLabels","setAriaLabel","or","setText","_cmb1","_createOperatorCombo","op1","_cmb2","op2","_val1","_createValueInput","val1","_val2","val2","_btnAndOrChanged","_keydown","updateEditor","condition1","condition2","changeType","_checkRadio","clearEditor","updateFilter","_getComboValue","stringOperators","dateOperators","booleanOperators","numberOperators","inputElement","getDisplayValues","Key","controlTemplate","ValueFilter","_xValueSearch","_maxValues","_sortValues","_values","_filterText","asString","_uniqueValues","showValues","filterText","_getUniqueValues","uniqueValues","sourceCollection","ValueFilterEditor","_divFilter","_cbSelectAll","_spSelectAll","_divValues","selectAll","sortNulls","SortNulls","sortValues","sortDescriptions","SortDescription","_filterValues","collectionChanged","_updateSelectAllCheck","_rxFilter","_cmbFilter","_lbValues","_filterTextChanged","_cbSelectAllClicked","escapeRegExp","maxValues","pageSize","moveCurrentTo","indeterminate","_getItems","exclusiveValueSearch","_toFilter","ColumnFilter","_owner","_valueFilter","_conditionFilter","_filterType","defaultFilterType","conditionFilter","valueFilter","Condition","Both","FlexGridFilter","_showIcons","_showSort","_defFilterType","filterApplied","filterChanging","filterChanged","_filters","FlexGrid","_formatItem","itemsSourceChanged","_mousedown","_click","_filterColumns","getColumnFilter","_asColumn","filterType","_loop_1","getColumn","_divEdt","editColumnFilter","closeEditor","ColumnFilterEditor","showSortButtons","_edtCol","CellRangeEventArgs","CellRange","onFilterChanging","buttonClicked","onFilterChanged","containsFocus","leftCol","_edtHdl","_commitRowEdits","columnHeaders","getCellElement","getCellBoundingRect","showPopup","_setAriaExpanded","_WJC_FILTER","hidePopup","editableCollectionView","commitEdit","commitNew","updateFilterDefinition","onFilterApplied","raise","Column","getMergedRange","_getBindingColumn","row2","_addFilterButton","describedById","_edtColPrev","_toggleEditor","closestClass","hitTest","dataMapEditor","DataMapEditor","_addCultureInfo","edit","asc","dsc","ascending","descending","conditions","_divSort","_btnAsc","_btnDsc","_divType","_aVal","_aCnd","_divEdtVal","_divEdtCnd","_btnApply","_btnCancel","_btnClear","_showFilter","canSort","_btnClicked","onButtonClicked","moveFocus","isTouching","_wasTouching","_edtVal","_edtCnd","_getFilterType","_enableLink","sortMemberPath","deferUpdate","_registerModule","selfModule","HAlign","VAlign","BorderStyle","_externalCancellation","_styles","_definedNames","_colorThemes","_reservedContent","_xlsx","_saveToFile","base64","saveAsync","cancelAsync","_cs","_SyncPromise","_getBase64String","_deserialize","loadAsync","_serialize","_serializeWorkSheets","_serializeWorkbookStyles","reservedContent","activeWorksheet","application","company","lastModifiedBy","definedNames","_serializeDefinedNames","colorThemes","_deserializeWorkSheets","_deserializeWorkbookStyles","_deserializeDefinedNames","_addWorkSheet","_base64DecToArr","initMouseEvent","readAsDataURL","toXlsxDateFormat","toXlsxNumberFormat","_formatMap","fromXlsxFormat","_parseCellFormat","_parseExcelFormat","isInt","xlsxAddress","_numAlpha","tableAddress","_alphaNum","absCol","absRow","_parseHAlignToString","Center","Justify","_parseStringToHAlign","_parseVAlignToString","_parseStringToVAlign","_parseBorderTypeToString","Dashed","Dotted","Double","Hair","Medium","MediumDashDotDotted","MediumDashDotted","MediumDashed","SlantedMediumDashDotted","Thick","Thin","ThinDashDotDotted","ThinDashDotted","_parseStringToBorderType","_escapeXML","_unescapeXML","_alphabet","_b64ToUint6","_uint6ToB64","_base64EncArr","_serializeTableStyles","_tableStyles","assert","WorkSheet","WorkbookStyle","DefinedName","_deserializeTableStyles","WorkbookTableStyle","_columns","_rows","_tables","_checkEmptyWorkSheet","_serializeWorkbookColumns","_serializeWorkbookRows","frozenPane","_serializeTables","_deserializeWorkbookColumns","_deserializeWorkbookRows","WorkbookFrozenPane","_deserializeTables","_addWorkbookColumn","_addWorkbookRow","WorkbookColumn","WorkbookRow","WorkbookTable","_checkEmptyWorkbookColumn","autoWidth","_cells","_checkEmptyWorkbookRow","_serializeWorkbookCells","groupLevel","_deserializeWorkbookCells","_addWorkbookCell","WorkbookCell","_checkEmptyWorkbookCell","rowSpan","textRuns","_serializeTextRuns","_deserializeTextRuns","WorkbookTextRun","_checkEmptyWorkbookStyle","basedOn","borders","hAlign","vAlign","WorkbookFill","WorkbookFont","WorkbookBorder","_checkEmptyWorkbookFont","_checkEmptyWorkbookBorder","diagonal","WorkbookBorderSetting","showHeaderRow","showTotalRow","showBandedColumns","showBandedRows","alterFirstColumn","alterLastColumn","_serializeTableColumns","_deserializeTableColumns","WorkbookTableColumn","totalRowLabel","totalRowFunction","showFilterButton","_checkEmptyWorkbookTableStyle","wholeTableStyle","firstBandedColumnStyle","firstBandedRowStyle","secondBandedColumnStyle","secondBandedRowStyle","headerRowStyle","totalRowStyle","firstColumnStyle","lastColumnStyle","firstHeaderCellStyle","lastHeaderCellStyle","firstTotalCellStyle","lastTotalCellStyle","WorkbookTableCommonStyle","WorkbookTableBandedStyle","WorkbookTableBorder","Fill","JSZipRef","useJSZip","_JsZipWrapper","_loadImpl","_saveWorkbookToZip","_macroEnabled","zipTime","processTime","_getTheme","_getZipStyle","_getZipSharedString","_getWorkbook","folder","_getTable","_getCoreSetting","_getSheetIndex","_getSheet","tableRIds","hyperlinkRIds","_getAttr","_getSheetRelatedTable","_getSheetRelatedHyperlink","_getStyle","tableStyles","_getSharedString","_xmlDescription","_generateRelsDoc","_generateThemeDoc","_generateCoreDoc","_sharedStrings","_borders","_fonts","_fills","_dxfs","_contentTypes","_props","_xlRels","_worksheets","_generateWorksheets","_generateStyleDoc","_generateContentTypesDoc","_generateAppDoc","_generateWorkbookRels","_generateSharedStringsDoc","_generateWorkbook","_generateWorkSheet","externalLinks","_generateHyperlinkRel","_generateTable","serial","_getTextRunFont","_getInlineString","_defaultColorThemes","_numFmts","_getChildNodeValue","_getColor","_getEdgeBorder","fillColor","quotePrefix","_getTableStyles","topRow","bottomRow","rightCol","_getsBaseSharedFormulas","maxCol","maxRow","_getSharedFormula","_getTextOfTextRuns","_convertDate","_parseCharWidthToPixel","_getHyperlink","_isBuiltInStyleName","_getTableStyleByName","_getTableColumn","_getTableStyleElement","_relationshipsNS","_generateClrScheme","_generateFontScheme","_generateFmtScheme","_generateFillScheme","_generateLineStyles","_generateEffectScheme","_generateBgFillScheme","_generateSheetGlobalSetting","_generateCell","_generateMergeSetting","_workbookNS","_generateFontStyle","_generateFillStyle","_generateBorderStyle","_generateCellXfs","_getDxfs","_generateDxfs","_generateTableStyles","_defaultFontSize","_defaultFontName","_getSheetIndexBySheetName","_generateWorksheetRows","_loop_2","sheetData","_cloneStyle","_resolveStyleInheritance","_parseColor","_applyDefaultBorder","_parseBorder","isObject","_checkValidMergeCell","hyperlinks","_cloneColumnsStyle","_isEmpty","_parseCharCountToCharWidth","_parsePixelToCharWidth","_generatePlainText","isNullOrWhiteSpace","_generateTableFilterSetting","_tableColumnFunctions","_isEmptyStyleEle","styleIndex","_getTableFileName","_indexedColors","_getThemeColor","Color","getHsl","_sharedFormulas","_parseSharedFormulaInfo","cellAddress","sheetRef","formulaRefs","_typeOf","_JSZipSyncPromise","_obj","_wrapOrNull","asUint8Array","asText","_callbacks","_onCancel","drain","_cancelled","onFulfilled","onRejected","_resolved","softDetail","_getModule","softMultiRow","softTransGrid","_IncludeCellStyles","FlexGridXlsxConverter","mXlsx","_saveFlexGridToWorkbook","resizedColumn","resizedRow","removeHandlers","_loadToFlexGrid","readAsArrayBuffer","includeColumnHeaders","includeRowHeaders","Cache","includeColumns","rowHeaders","includeCellStyles","quickCellStyles","Regular","_StyleCache","hasCssText","wj_sheetInfo","sheetVisible","visibility","cellType","CellType","renderSize","_getColumnSetting","topLeftCells","columnFooters","_saveContentToWorksheet","panelIdx","globRowIdx","rowsOffset","totalRows","_NewRowTemplate","GroupRow","maxGroupLevel","_parseFlexGridRowToSheetRow","_getColumnCount","_getRowCount","_getColumnHeadersHeight","isCollapsed","_checkParentCollapsed","_setFlag","RowColFlags","Row","_parseTextRunsToHTML","_getItemValue","_setColumn","E","_getItemType","_parseBorderStyle","borderRightColor","styledCells","mergedRanges","fonts","_escapePlainText","evaluateFormula","recordIndex","renderHeight","defaultSize","TransposedGrid","DetailRow","_MultiRow","_getMergedRange","_getMeasureCell","_getCellStyle","_getColSpan","getCellData","_isFormula","_parseToTextRuns","_parseCellStyle","firstVisibleIndex","getGroupHeader","_parseToExcelFormula","centerHeadersVertically","XlsxFormatItemEventArgs","textDecorationStyle","_parseToExcelFontFamily","_parseEgdeBorder","_parseToTextRunFont","_getRenderColumn","renderWidth","_toExcelHAlign","getAlignment","getType","cellFactory","updateCell","_patternCell","_xlsxCell","_cellsCache","_styleCache","getFormattedCell","_cache","_size","_max","hasKey","_KnownErrors","softInput","softXlsx","_ErrorMessages","InvalidCellRef","InvalidSheetRef","InvalidTableRef","InvalidTableColRef","InvalidParameters","BadExpression","CircRef","InvalidParameter","ParameterIsOutOfRange","RowIsOutOfTableRange","UnkFuncName","DefNameInvalidSheet","InvalidTable","InvalidExpression","Atan2ArgsLessThanZero","RateCriteriaFails","RangesMustBeTheSame","TooFewParameters","TooManyParameters","ExpressionExpected","UnbalancedParenthesis","UnbalancedSquareBrackets","TableReferencesExpected","IdentifierExpected","CantFindFinalQuote","IllegalCrossSheetReference","CantFindFinalDateDelimiter","CellRefMustBeInSameSheet","SyntaxError","Div","Num","Val","Null","NA","TableSection","FormulaError","DivideByZeroError","NameError","ReferenceError","NumericError","ValueError","NotAvailableError","NullError","UnknownError","_FormulaErrorHelper","asError","_errTypeMap","Table","_showHeaderRow","_showTotalRow","_showBandedColumns","_showBandedRows","_alterFirstColumn","_alterLastColumn","_orgHeaderCellsContent","_name","_style","_pushTableColumns","_isUndoing","undoStack","stackSize","_TableSettingAction","_updateFormulasWithNameUpdating","saveNewState","_addAction","_adjustTableRangeWithHeaderRow","_adjustTableRangeWithTotalRow","getRange","All","_getDataRange","Header","_getHeaderRange","Footer","_getFooterRange","_getColumnIndex","col2","getColumns","insertRows","_canShiftCells","_needAddRowCountForInsertTableRows","_moveDownCells","_canInsertRowsWithoutShift","_moveDownCellsWithinTable","_updateTableRange","deleteRows","_moveUpCellsWithinTable","_moveUpCells","_addColumn","_getUniqueColumnName","TableColumn","_attach","_updateCell","_getTableCellAppliedStyles","_applyStylesForCell","_setTableRange","_updateColumnName","_updateColumnTotalRowContent","_getSubtotalFunction","_attachSheet","_containsMergedCells","getBuiltInTableStyle","_generateColumns","_updateTotalRow","_detachSheet","columnSpan","_formatEvaluatedResult","_styledCells","_totalRowLabel","_totalRowFunction","_extendStyle","borderBottomStyle","borderRightStyle","borderRightWidth","_checkColumnNameExist","_needMoveDownTable","_moveDownTable","_updateAffectedFormula","_beneathRowIsEmpty","_moveColumns","getCellStyle","findTable","_mergedRanges","_showFilterButton","_updateTableTotalInfo","TableStyle","_isBuiltIn","_wholeTableStyle","_firstBandedColumnStyle","_secondBandedColumnStyle","_firstBandedRowStyle","_secondBandedRowStyle","_firstColumnStyle","_lastColumnStyle","_headerRowStyle","_totalRowStyle","_firstHeaderCellStyle","_lastHeaderCellStyle","_firstTotalCellStyle","_lastTotalCellStyle","_UndoAction","_sheetIndex","_EditAction","_isPaste","_selections","selectionRanges","_mergeAction","_CellMergeAction","_cellStyleAction","_CellStyleAction","_saveValues","_handleUndoRedo","_checkActionState","markIsPaste","updateForPasting","_oldValues","_storeDeletedTables","_deletedTables","_newValues","_clearCalcEngine","_affectedFormulas","oldFormulas","newFormulas","_ColumnResizeAction","_panel","_colIndex","_oldColWidth","_newColWidth","_RowResizeAction","_rowIndex","_oldRowHeight","_newRowHeight","_ColumnsChangedAction","_delSubActions","_columnIndex","_count","_isAdding","sortList","sortManager","_cloneSortList","_committedList","_cloneObject","mergedCells","_cloneMergedCells","tableRanges","filterDef","_filterDefinition","_oldValue","_newValue","finishEditing","_ubv","_hash","_affectedDefinedNameVals","oldDefinedNameVals","newDefinedNameVals","_getDefinedNameIndexByName","_copyColumnsToSelectedSheet","commitSort","_RowsChangedAction","addDeleteSubAction","setting","tableSettings","dataView","scrollPosition","_itemIdx","_updateItemIndexForInsertingRow","_updateItemIndexForRemovingRow","_lastCount","itemCount","_pgView","_getPageView","_bindGrid","_copyRowsToSelectedSheet","_oldStyledCells","_newStyledCells","_oldMergedCells","_newMergedCells","_SortColumnAction","formulas","_scanFormulas","rowsVisible","_resetFormulas","_MoveCellsAction","_isDraggingColumns","_isCopyCells","_dragRange","_dropRange","cellContent","cellStyle","_oldDroppingCells","_oldDroppingColumnSetting","_newDroppingCells","_newDroppingColumnSetting","_draggingTableColumns","updatedCellContent","_draggingCells","_draggingColumnSetting","_updateColumnFiler","_CutAction","_celltyleAction","_cutSheet","_copiedSheet","_selection","_cutSelection","SelectionMode","_getSelectionForListBoxMode","_copiedRanges","_saveCutValues","_oldCutValues","_newCutValues","showbandedRows","_oldTableSetting","_newTableSetting","_TableAction","_addedTable","_FilteringAction","_oldFilterDefinition","filterDefinition","_oldRowsVisible","_getRowsVisible","_newFilterDefinition","_newRowsVisible","_applyFilterSetting","_setRowVisible","_FillAction","_fillSource","_oldCellSettings","_orgCellSettings","_fillRange","_newCellSettings","_getCellSettingsForFill","_resetMergedRange","mergedCell","mergeRange","SortManager","_sortDescriptions","ColumnSortDescription","newItemCreator","addSortLevel","addNew","deleteSortLevel","_getSortItem","copySortLevel","editSortLevel","moveSortLevel","checkSortItemExists","_needCopyToSheet","_unboundSortDesc","_isSorting","currentEditItem","HeaderRow","_filteringIsActive","useStableSort","_updateFormulaForReorderingRows","_updateCellStyleForReorderingRows","_UnboundSortDescription","cancelSort","clearSort","_updateSortSortDescription","_ascending","insertRow","deleteRow","insertCol","deleteCol","convertTable","insertSheet","deleteSheet","renameSheet","copyCells","fillSeries","fillFormat","fillWithoutFormat","AutoFillOperation","FlexSheetFunctions","description","_selectedSheetIndex","_columnHeaderClicked","_addingSheet","_mouseMoveHdl","_mouseMove","_clickHdl","_touchStartHdl","_touchStart","_touchEndHdl","_touchEnd","_keydownHdl","_isContextMenuKeyDown","_isClicking","_builtInTableStylesCache","_fillingData","_endDragFillOperationHdl","_endDragFillOperation","_enableDragDrop","_enableFormulas","_headerRowRemoved","_clearCalcCacheOnRefresh","_copyingTo","_ignoreBindGrid","draggingRowColumn","droppingRowColumn","beginDroppingRowColumn","endDroppingRowColumn","unknownFunction","sheetCleared","prepareChangingRow","prepareChangingColumn","rowChanged","columnChanged","autoFilling","autoFilled","_allowAutoFill","_eCt","setCss","_cf","_FlexSheetCellFactory","_bndSortConverter","_sheetSortConverter","_selHdl","_FlexSheetSelectionHandler","_init","AllowSorting","HeadersVisibility","AllowResizing","AllowDragging","KeyAction","_getProductInfo","SheetCollection","_showSheet","_functionListHost","_tabHolder","_updateDivContainerHeight","_eFocus","_orgTabIndex","_undoStack","_sortManager","_lsmPos","onSelectedSheetChanged","onDraggingRowColumn","onDroppingRowColumn","_deprecated","EventArgs","onBeginDroppingRowColumn","onEndDroppingRowColumn","onLoaded","_toRefresh","_setFlexSheetToDirty","onUnknownFunction","onSheetCleared","onPrepareChangingRow","onPrepareChangingColumn","onRowChanged","onColumnChanged","onAutoFilling","onAutoFilled","_lastVisibleFrozenRow","_lastVisibleFrozenColumn","_freezeHiddenRows","_freezeHiddenCols","adjustSize","sheetControl","_getHasValidation","isFunctionListOpen","addUnboundSheet","_addSheet","applyCellsStyle","_applyStyleForCell","freezeAtCursor","_ptScrl","showColumnFilter","_isCutting","_cutValue","getSelectionFormatState","isBold","isItalic","isUnderline","isMergedCell","_checkCellFormat","RowColumnChangedEventArgs","_updateCellsForUpdatingRow","_updateAffectedNamedRanges","_dataView","_updateTablesForUpdatingRow","_RangesHelper","validateRowRanges","_getCvIndex","insertColumns","_updateCellsForUpdatingColumn","_getHeaderRowText","_dirty","_updateTablesForUpdatingColumn","deleteColumns","validateColumnRanges","isSingleCell","_evaluate","isPrimitive","getCellValue","showFunctionList","_cumulativeOffset","_functionTarget","tryCast","HTMLInputElement","_functionList","_cv","actualvalue","_getCurrentFormulaIndex","hideFunctionList","selectPreviousFunction","selectNextFunction","applyFunctionToCell","_saveToWorkbook","saveToWorkbookOM","_loadFromWorkbook","loadFromWorkbookOM","_lastSelMovePos","_isPasting","_pendingRefresh","_enableMulSel","addCustomFunction","_calcEngine","_addCustomFunctionDescription","addFunction","getClipString","_isMultipleRowsSelected","_sortByRow","_isMultipleColumnsSelected","_sortByColumn","isSelected","setClipString","_parseClipString","_expandClipRows","_containsMultiLineText","_getRangeString","_containsRandFormula","onPasting","_postSetClipStringProcess","_parse","_moveCellRangeExp","_getStringExpression","_delCutData","onPasted","_createBuiltInTableStyle","mouseUp","_mouseUp","_divContainer","_TabHolder","_selectedSheetChange","_sourceChange","sheetVisibleChanged","_sheetVisibleChange","_SheetContextMenu","_hideContextMenu","_gpCells","FlexSheetPanel","_gpCHdr","_hdrRows","_eCHdrCt","_gpRHdr","_hdrCols","_eRHdrCt","_gpTL","_eTLCt","_syncSelection","_flexSheetSyncSelection","FlexSheetFilter","_storeRowSettings","_setRowSettings","_CalcEngine","_initFuncsList","UndoStack","loadedRows","currentChanged","_cvCurrentChanged","copied","_clearForEmptySheet","_isCopying","NotifyCollectionChangedAction","_validateSheetName","_checkExistDefinedName","_isDescendant","_mouseDown","_htDown","_cumulativeScrollOffset","offsetLeft","offsetTop","_isCellSelected","prepareCellForEdit","_prepareCellForEditHandler","cellEditEnded","getEditorValue","_updateFormulaBoundaryForEditingCell","_pendingAction","rowEditEnding","_orgRowVisible","_scrollPosition","rowEditEnded","pasting","pasted","resizingColumn","_resizing","resizingRow","onCopying","Clipboard","onCopied","isFirefox","isUpdating","CollectionViewGroup","currentAddItem","_getRowIndex","currentPosition","mInput","_getFunctions","_edt","isValidSheetName","_setValidName","getValidSheetName","nameChanged","_updateDefinedNameWithSheetRefUpdating","_exchangingPosition","_copyTo","_copyFrom","_attachOwner","_setCurrentIdx","borderTopStyle","borderLeftStyle","borderLeftWidth","_clearAndCheckItemsOwner","_list","_checkCollectionOwner","_checkCollectionsOwner","extendedSelection","_ownerHeaderRowRemoved","_sortList","_getFilterSetting","_resetMappedColumns","_dragable","moveCurrentToPosition","_rowSettings","_mappedColumns","_parseFromWorkbookTable","includeFormulaValues","_parseToWorkbookTable","_checkTableHeaderRow","_isDragging","_draggingMarker","borderStyle","_draggingTooltip","DraggingRowColumnEventArgs","_draggingRow","_fillingMarker","edgeRight","_multiSelectColumns","_fillingPoint","_fillingSource","_fillingTooltip","_showDraggingMarker","edgeBottom","_showFillMarker","_draggingColumn","_containsGroupRows","HitTestInfo","DroppingRowColumnEventArgs","CancelEventArgs","_handleDropping","CopyContent","_fillingRange","_canDoFillOperation","FillSeries","_fillData","CopyFormat","_showFillMenuSmartTag","_addSelection","_longClickTimer","_delSeletionContent","moveToNext","moveToPrev","moveToFirst","moveToLast","handleContextMenu","_eCHdr","convertNumberToAlpha","_eRHdr","_showFillTooltip","_getFillSeries","_getFillData","_fillSmartTagHost","_fillMenuHost","_showFillMenu","_removeActiveStyleForFillMenuItem","MouseEvent","_disposeFillSmartTag","_disposeFillMenu","_updateCurrentAction","_allowExchangeCells","moveElement","_exchangeTableColumns","_exchangeCellStyle","_moveCellContent","_updateFormulaForDropping","_updateNamedRangesForDropping","intersects","HTMLBodyElement","_checkHitWithinSelection","CellEditEndingEventArgs","onBeginningEdit","editItem","_edItem","onCellEditEnding","onCellEditEnded","_updateCellRef","_updateCellBoundary","_clearExpressionCache","onPastingCell","_ValWithFormat","onPastedCell","_updateCellRangeExpForReorderingRows","_updateCellRefForDropping","_sheetName","getSheetBlanketSize","_isDisableDeleteRow","_getTableSheetIndex","_sortConverter","_updateCellRangeExp","_FunctionExpression","AutoFillingEventArgs","_resetCellsForFillRange","_fillFormula","itemIndexes","_getLinearBestFitTrendData","_fromOADate","_toOADate","_parseFromWorkbookTableStyle","_parseFromWorkbookTableStyleElement","borderVerticalColor","borderHorizontalColor","isBuiltIn","_parseToWorkbookTableStyle","_parseToWorkbookTableStyleElement","_generateTableLightStyle1","_generateTableLightStyle2","_generateTableMediumStyle1","_generateTableMediumStyle2","_generateTableMediumStyle3","_generateTableMediumStyle4","_generateTableDarkStyle1","_generateTableDarkStyle2","borderHorizontalStyle","borderHorizontalWidth","borderVerticalStyle","borderVerticalWidth","_hdr","toHeaderCase","_draggingRange","_isDraggingRows","_isShiftKey","_droppingRange","_isDroppingRows","UnknownFunctionEventArgs","_funcName","_params","_ranges","_added","_index","AutoFilledEventArgs","getSelectedState","SelectedState","containsRow","containsColumn","_showDefaultHeader","editRange","_renderCell","getRenderSize","GridPanel","_FlexSheetAggregate","_SubtotalFunction","_TokenType","_TokenID","_validateCellRanges","MAX_STACK_SIZE","_stack","_pointer","_resizingTriggered","undoStackChanged","_initCellEditAction","isPaste","_afterProcessCellEditAction","_initCellEditActionForPasting","isShiftKey","isDraggingRows","_stackSize","onUndoStackChanged","_beforeUndoRedo","_pop","FlexSheetValueFilterEditor","FlexSheetConditionFilter","FlexSheetValueFilter","FlexSheetColumnFilter","FlexSheetColumnFilterEditor","cloneElement","_sortBtnClick","getCellRange","_checkGroupVisible","_undoAcion","_filterChanged","_SelectionHandler","_ContextMenu","_removeSelectedState","_handleMenuItemOperation","_localize","_isDisableDelRow","_isDisableConvertTable","_insRows","_delRows","_insCols","_delCols","_splitter","_convertTable","_showTableOperation","_addTable","_SheetTabContextMenu","_insSheet","_delSheet","_renameSheet","_startEditingSheetName","_visible","_currentStyledCells","_currentMergedRanges","_isEmptyGrid","visibleChanged","_rowCount","_columnCount","_grid","_addHeaderRow","_createGrid","refreshed","_gridItemsSourceChanged","_compareRows","_update","PropertyChangedEventArgs","onNameChanged","onVisibleChanged","_selectionRanges","_clearGrid","_filterSetting","addTableFromArray","_needShiftForTable","_needAddRowCountForAddTable","_getUniqueTableName","_needAddHeaderRow","filterColumns","columnFilterSettings","valueFilterSetting","conditionFilterSetting","_clearFilterSetting","_current","sheetNameChanged","_moveCurrentTo","_getUniqueName","_postprocessSheet","onCollectionChanged","onSheetNameChanged","onSheetVisibleChanged","selectFirst","selectLast","selectPrevious","selectNext","_getSheetIndexFrom","NotifyCollectionChangedEventArgs","_SheetTabs","_rtl","_sheetTabClicked","_initControl","initialize","_tabContainer","_getSheetTabs","_adjustSheetsPosition","_adjustSize","_sourceChanged","_selectedSheetChanged","_updateTabActive","_scrollToActiveSheet","_sheetContainer","_sheetPage","_newSheet","_contextMenuHost","cssFloat","_adjustNavigationButtons","_mouseHdl","_dragSrcIdx","HTMLLIElement","_getItemIndex","dropEffect","_updateSheetName","_updateTabShown","_initSheetPage","_initSheetTab","_scrollSheetTabContainer","_getSheetElement","_editingSheetTab","_measureEle","_commitSheetName","_measureInputWidth","_column","_splitterMousedownHdl","_splitterMousedownHandler","_divSheet","_divSplitter","_divRight","_sheetControl","scrollSize","clientSize","_funSplitterMousedown","_splitterMouseupHandler","_startPos","_splitterMousemoveHandler","_adjustDis","_Expression","_token","_Token","ATOM","LITERAL","IDENTIFIER","ERROR","toNumber","isDateValue","toBoolean","toDate","_UnaryExpression","_expr","tokenID","SUB","_evaluatedValue","ADD","_inGroup","_BinaryExpression","_leftExpr","_rightExpr","CONCAT","COMPARE","MUL","DIV","DIVINT","MOD","POWER","sqrt","_CellRangeExpression","_sheetRef","_flex","_evalutingRange","_isCellRange","_absRow","_absCol","_absRow2","_absCol2","_isWholeRow","_getCellValue","getValues","getValuseWithTwoDimensions","_tableParams","intersectsRow","intersectsColumn","_getTableParamsStringExpression","_tableName","_funcId","_funcDefinition","_needCacheEvaluatedVal","_parseParamsExpToString","_expressionCache","_idChars","_functionTable","_cacheSize","_tableRefStart","_buildSymbolTable","_registerAggregateFunction","_registerMathFunction","_registerLogicalFunction","_registerTextFunction","_registerDateFunction","_registLookUpReferenceFunction","_registFinacialFunction","_registAddressRelatedFunction","_registerErrorFunctions","_containsCellRef","_checkCache","_FunctionDefinition","_expression","_expressLength","_parseExpression","_tokenTable","_addToken","ADDSUB","OPEN","GROUP","CLOSE","MULDIV","COMMA","PERIOD","SQUAREBRACKETS","_getAggregateResult","Aggregate","average","var","varp","stdev","stdevp","_getFlexSheetAggregateResult","counta","CountA","countblank","ConutBlank","countif","CountIf","countifs","CountIfs","sumif","SumIf","sumifs","SumIfs","Rank","product","Product","subtotal","_handleSubtotal","dcount","_handleDCount","sumproduct","_getSumProduct","PI","rand","atan2","MAX_VALUE","if","true","false","concatenate","asInt","proper","rgLetter","substitute","rept","_parseToScientificValue","today","year","month","day","hour","datedif","_ensureNonFunctionExpression","choose","hlookup","_handleHLookup","vlookup","_handleVLookup","rate","_calculateRate","indirect","_getDefinedName","_getCellRange","cellRange","iserror","iserr","iferror","_getToken","_parseCompareOrConcat","_parseAddSub","_parseMulDiv","_parsePower","_parseUnary","_parseAtom","_getParameters","paramMin","paramMax","_getTableReference","absRow2","absCol2","isWholeRow","END","_parseDigit","_parseSheetRef","_parseError","_parseDate","_parseString","_getTableToken","_parseCell","_parseCellRange","_getTableParameter","_getTableRange","_getItemList","getAggregate","_countNumberCells","_countBlankCells","_getRankOfCellRange","_countCellsByCriteria","_handleCountIfs","_sumCellsByCriteria","_handleSumIfs","_getProductOfNumbers","_parseRightExpr","_combineExpr","reg","checkMathces","CountAWithoutHidden","CountWithoutHidden","ProductWithoutHidden","Average","AverageWithoutHidden","Max","MaxWithoutHidden","Min","MinWithoutHidden","Std","StdWithoutHidden","StdPop","StdPopWithoutHidden","Sum","SumWithoutHidden","Var","VarWithoutHidden","VarPop","VarPopWithoutHidden","_getColumnIndexByField","_DCountWithCriteria","_getItemListForSumProduct","_parseRegCriteria","_handleLookup","iterStart","iterEnd","_exactMatch","_approximateMatch","_tokenID","_tokenType","_paramMax","_paramMin","MIN_VALUE","_func","_resetCellStyle","escapeHtml","_getFirstVisibleCell","firstElementChild","HTMLLabelElement","_getFormattedValue","canEditCell","_isURL","_getCellBorders","CellFactory","DropDownList","RadioButtons","SelMove","mapChanged","asCollectionView","_keyPath","_displayPath","onMapChanged","_sortByKey","getDataItem","getKeyValue","_indexOf","getKeyValues","_editable","toPlainText","_row","_row2","_col2","_p","_rng","getRow","FormatItemEventArgs","HTMLElement","_stayInEditMode","_refresh","RowRange","MultiRange","Cursor","Active","Next","Prev","NextPage","PrevPage","Home","End","NextCell","PrevCell","_sel","_xSel","_mode","_setSelectionMode","isRangeValid","_showSelection","onSelectionChanging","refreshCells","onSelectionChanged","_adjustReferenceCell","_szClient","getNextCell","_expandSelection","_deselectRange","Visible","AllowMerging","AutoGenerated","Collapsed","ParentCollapsed","ReadOnly","HtmlContent","WordWrap","MultiLine","HasTemplate","RowDefault","ColumnDefault","AllowPinning","ClipStringOptions","RowCol","_idxVis","_idxData","gridChanged","onPropertyChanged","_bindingSort","_inpType","_mask","_maxLen","_align","_fmt","_mapEditor","_ddCssClass","_getFlag","_sz","_szMin","_szMax","_required","_cssClass","_cssClassAll","onGridChanged","_setList","_ctr","_szStar","_parseStarSize","_quickSize","_getQuickAutoSize","multiLine","_tpl","currentSortIndex","_getBindingSort","_agg","_descById","getIsRequired","_level","_setCollapsed","groupDescription","onGroupCollapsedChanging","onGroupCollapsedChanged","RowColCollection","_frozen","_lastFrozen","_firstVisible","_vlen","_szDef","_szTot","_szCustom","isFrozen","frozen","getTotalSize","getItemAt","canMoveElement","_setDefaultSize","ColumnCollection","_updateStarSizes","RowCollection","_maxLevel","_ariaLabel","ariaLabel","_AddNewHandler","_nrt","_keydownBnd","_top","updateNewRowTemplate","canAddNew","_beginningEdit","_rowEditEnded","_detach","onRowAdded","cancelNew","_committing","isAddingNew","toggleDropDown","toggleGroup","SingleColumn","MultiColumn","ColumnRange","Default","CSV","QuoteAll","SkipMerged","Unformatted","InvisibleRows","InvisibleColumns","InvisibleCells","_offsetY","_cssPage","_cellPadLeft","_cellPadHorz","_cellPadVert","_clipToScreen","_autoGenCols","_autoClipboard","_xOnCopyPaste","_autoScroll","_autoSearch","_caseSensitive","_readOnly","_indent","_autoSizeMode","AutoSizeMode","_autoHeights","_hdrVis","_alSorting","_alPinning","_alAddNew","_alDelete","_alResizing","Columns","_alDragging","_alMerging","_ssHdr","_shSort","_shGroups","_shMarquee","_altStep","_shErr","_shDropDown","_valEdt","_deferResizing","_pSel","_pOutline","_stickyHdr","_anchorCursor","_copyHeaders","_bigChecks","_vt","_vtRows","_vtCols","_lazyRender","_refreshOnEdit","_reorderCells","itemsSourceChanging","scrollPositionChanged","selectionChanging","loadingRows","updatingLayout","updatedLayout","autoSizingColumn","autoSizedColumn","starSizedColumns","draggingColumn","draggingColumnOver","draggedColumn","pinningColumn","pinnedColumn","autoSizingRow","autoSizedRow","draggingRow","draggingRowOver","draggedRow","groupCollapsedChanging","groupCollapsedChanged","columnGroupCollapsedChanging","columnGroupCollapsedChanged","sortingColumn","sortedColumn","rowEditStarting","rowEditStarted","rowAdded","deletingRow","deletedRow","copying","pastedCell","_clearCells","updatingView","updatedView","isIE","_eSz","_fCt","_eTL","_eBL","_eCFtr","_eBLCt","_eCFtrCt","_eMarquee","webkitOverflowScrolling","_getDefaultRowHeight","_cols","_ftrRows","TopLeft","ColumnHeader","RowHeader","_gpBL","BottomLeft","_gpCFtr","ColumnFooter","_keyHdl","_KeyboardHandler","_MouseHandler","_EditHandler","_addHdl","_grpHdl","_ColumnGroupHandler","_mrgMgr","MergeManager","_errorTip","showDelay","cssClass","_updateScrollPosition","_updateContent","_setFocus","_handleResize","_rcBounds","_updateStickyHeaders","_getSerializableProperties","getGroupDefinitions","createColumnGroups","_setAria","_imeHdl","_ImeHandler","hasHandlers","_itemValidator","asFunction","_gHdrFmt","_items","onItemsSourceChanging","sortConverter","_cvCollectionChanged","_getCollectionView","onItemsSourceChanged","_childItemsPath","_rowHdrPath","_fzClone","_sortRowIndex","_editColIndex","_getRtlMode","getElementRect","_heightBrowser","viewRange","_itemFormatter","_allowEdit","_updateColumnTypes","_toInv","_szCtl","_updateLayout","refreshRange","_INDEX_KEY","autoSizeColumn","bottomLeftCells","_WJS_MEASURE","_getCanvasContext","Headers","_getDesiredWidth","Cells","_getWidestRow","disposeCell","autoSizeRow","autoSizeRows","_getDesiredRowHeight","collapseGroupsToLevel","selectedRows","_maxOffsetY","_getFrozenPos","_getCssPage","_focus","_activeCell","behavior","startEditing","_kaTab","_kaEnter","_WJS_WSPRE","toggleDropDownList","_tglDropDown","_toggleListBox","_lbx","_defTypeWidth","onScrollPositionChanged","onLoadingRows","onLoadedRows","_autoRowHeights","onUpdatingLayout","onUpdatedLayout","onResizingColumn","onResizedColumn","onAutoSizingColumn","onAutoSizedColumn","onStarSizedColumns","onDraggingColumn","onDraggingColumnOver","onDraggedColumn","onPinningColumn","onPinnedColumn","onResizingRow","onResizedRow","onAutoSizingRow","onAutoSizedRow","onDraggingRow","onDraggingRowOver","onDraggedRow","onColumnGroupCollapsedChanging","onColumnGroupCollapsedChanged","onSortingColumn","onSortedColumn","onPrepareCellForEdit","stayInEditMode","onRowEditStarting","onRowEditStarted","onRowEditEnding","onRowEditEnded","onDeletingRow","onDeletedRow","onFormatItem","onUpdatingView","onUpdatedView","_toAutoHeights","_getShowErrors","_hasValidation","_getError","getError","getActiveElement","_WJC_COLLAPSE","_setFocusNoScroll","supportsFocusOptions","_fixScroll","measureText","_getDesiredHeight","_getSortRowIndex","_getEditColumnIndex","sortByDisplayValues","hasItems","_getMap","_path","_bindColumns","_bindRows","Change","Add","Remove","_findRow","dataIndex","_heightReal","_getMaxSupportedCssHeight","_updateScrollHandler","_WJS_STICKY","_getClipToScreen","_scrollHandlerAttached","_scroll","_MIN_VIRT_ROWS","_afClip","_afSticky","clamp","_tips","_updateMarquee","_toErrorTips","setTooltip","_useFrozenDiv","_updateFrozenCells","_updating","isSafari","isMobile","_getMarqueeRect","Rect","_getColumnTypes","getTypes","_getMapEditor","_getBindingColumns","_getRowHeaderPath","_addNode","_addGroup","_addBoundRow","_addGroupRow","isBottomLevel","getOwnPropertyNames","_hasColumnGroups","hasColumnGroups","_getColumnGroup","getColumnGroup","_isInputElement","_isNativeCheckbox","_WJC_CHECKBOX","_wantsInput","_maxCssHeight","_rtlMode","_WJS_UPDATING","_updateImeFocusBnd","_updateImeFocus","_cmpstartBnd","_compositionstart","_mousedownBnd","_mouseupBnd","_mouseup","_keypressBnd","_keypress","_cssHidden","disableAutoComplete","_tbx","_cellEditEnded","HTMLTextAreaElement","_isMouseDown","_enableIme","_groupDefs","_colGroups","ColumnGroup","_addColumnGroup","_getMaxLevel","_expandRange","cssClassAll","_lvl","_collapsed","_pGrp","_collTo","_updateCollapsedState","collapseTo","_shiftRange","_ct","_vrb","_getViewRange","aggregate","_getAdjustedSelection","_getOffsetY","_vru","_recycle","_renderColHdrRow","_renderRow","lastElementChild","_removeExtraCells","_createRange","extractContents","_docRange","_renderRowHdrCell","_renderColHdrCell","_HTML_CELL","currentSort","ColumnHeaders","RowHeaders","AllHeaders","_mergeCell","_edge","_target","mouseToPage","_pt","controlRect","_SZEDGE","visibleIndex","_getResizeCol","Rows","_getResizeRow","_isEditingCell","_getTreeBtn","J","required","_MaskProvider","_WJC_RADIOMAP","te","_tplCtx","oe","evalTemplate","ne","se","ae","_getSortIcon","_addPinButton","de","_getDropDownBtn","he","ge","pe","fe","we","_setCellError","ye","_fmtRng","ve","_ddBtn","_WJC_DROPDOWN","_WJC_PIN","_fullEdit","_evtInput","initEvent","_evtChange","_szRowCol","_updateRowHeaderCell","_updateEditorCell","_removeListBox","onLostFocus","_getValidationError","_edtValue","errorTip","selectedRanges","_sameCols","_sameRows","_getRowClipString","_skipMergedCell","_getCellClipString","_parseClipCell","_hasPendingUpdates","_keydownListBox","charCode","_findString","_createListBox","showSelection","MoveDown","MoveAcross","Cycle","CycleOut","_getKeyCode","_startEditing","_moveSel","_performKeyAction","cancelEdit","resetMouseState","_deleteSel","_search","_toSearch","_findNext","caseSensitiveSearch","canRemove","isEditingItem","_deleteRange","_WJC_DRAGSRC","_WJC_FLEXGRID","ColumnsAllCells","RowsAllCells","BothAllCells","_dvMarker","_hasRadioMap","mouseMove","_isDown","_mousemove","_hover","_dblclick","deltaY","deltaMode","_dragstart","_dragover","_drop","_dragend","_dragSrc","_showDragMarker","_eMouse","_lbSelRows","_szArgs","_selDown","_resized","_getResizeRowHt","_getResizeColHt","_startListBoxSelection","_mouseSelect","isIE9","_handleResizing","timeStamp","HTMLHtmlElement","_finishResizing","_handleClick","_clickPin","HTMLSpanElement","_clickSort","_szStart","edgeFarRight","edgeLeft","edgeFarBottom","edgeTop","_asResizable","_handleSelection","_SZ_MIN","_showResizeMarker","_htDrag","_startDrag","_hitTest","_rngTarget","_lbSelState","_handleListBoxSelection","_splitRange","incVal","decVal","_min","_format","_step","_showBtn","_btnUp","_btnDn","_updateSymbols","_input","_oldText","_setText","_composing","_chrPct","_clickSpinner","_rptUp","_ClickRepeater","_rptDn","_increment","_updateAria","_updateBtn","onTextChanged","_updateState","onValueChanged","onGotFocus","_chrDec","_chrTho","_chrNeg","_chrPls","_chrCur","currency","symbol","_fmtSpc","_fmtPrc","_rxSym","_rxNeg","_isNumeric","_getInputRange","_flipSign","_getSelStartDigits","_setSelStartDigits","_delKey","_orgTag","_msk","_applyMask","maskFull","getMaskRange","_pristine","_hsb","_alpha","_eSB","_eHue","_eAlpha","_ePreview","_ePal","_eText","_palette","_updatePalette","_cSB","_tplCursor","_cHue","_cAlpha","_updatePanels","getHsb","_getTargetPanel","_updateColor","_makePalEntry","_byPage","_btnFirst","_btnPrev","_txtCurr","_btnNext","_btnLast","_rptNext","_rptPrev","_collectionChanged","_currentChanged","pageIndex","pageCount","currentPage","moveToFirstPage","moveCurrentToFirst","moveToPreviousPage","moveCurrentToPrevious","moveToNextPage","moveCurrentToNext","moveToLastPage","moveCurrentToLast","_pathDisplay","_pathValue","_pathChecked","_html","_itemRole","_fmtItemHandlers","_itemCount","itemsChanged","loadedItems","itemChecked","_initFromSelect","_checkedItems","_populateList","onItemsChanged","onSelectedIndexChanged","itemRole","getDisplayText","_getChild","isItemEnabled","_getElementIndex","_getCheckbox","_getAriaSelected","getItemChecked","setItemChecked","_setItemChecked","toggleItemChecked","onLoadingItems","onLoadedItems","onItemChecked","handlerCount","_checking","_createHeaderItem","_createItem","_item","_selectNext","_selectPrev","_selectFirst","_selectLast","_selectNextPage","_selectPrevPage","filterPlaceholder","DateSelectionMode","_checkOnFilter","_selectAll","_lbHost","_DEF_CHECKED_PATH","_applyFilter","_filterPlaceholder","_selectAllLabel","_updateCheckAllCheckbox","calendar","yearView","prvMo","nxtMo","prvYr","currMo","nxtYr","Day","Month","ClickAction","_selMode","_yrPicker","_tmYrHidden","_fmtYrMo","_fmtYr","_fmtDayHdr","_fmtDay","_fmtMonths","_currMonth","_getMonth","_createChildren","_createYearPicker","_btnPrv","_btnNxt","asDate","_clamp","_valid","_monthMode","_btnMth","_fdw","_monthInValidRange","_yearInValidRange","onDisplayMonthChanged","_tbHdr","_tbMth","_tbYr","_btnTdy","_lbYears","_firstDay","_spMth","_inValidRange","_sameMonth","_canChangeValue","_getValidDate","_createElement","_navigate","_getCellIndex","tgl","Select","Open","Toggle","_Edges","DropDown","_clickAction","_autoExpand","_animate","isDroppedDownChanging","_btn","_dropDown","_elRef","_createDropDown","_updateFocusState","_commitText","_btnclick","_dropDownClick","onIsDroppedDownChanging","_minWidthDropdown","_updateDropDown","onIsDroppedDownChanged","_getCharType","ClickOwner","ClickPopup","Click","BlurOwner","BlurPopup","Blur","ClickOrBlur","DownOwner","DownPopup","EnterOwner","EnterPopup","Enter","LeaveOwner","LeavePopup","Leave","LeftTop","RightTop","RightBottom","LeftBottom","_modal","_showTrigger","_hideTrigger","_hideAnim","_fadeIn","_fadeOut","_removeOnHide","_draggable","_resizable","_ownerClickBnd","_ownerClick","_ownerDownBnd","_ownerDown","_ownerBlurBnd","_ownerBlur","_ownerEnterBnd","_ownerEnter","_ownerLeaveBnd","_ownerLeave","_mousemoveBnd","_mousedragBnd","_mousedrag","_hideBnd","_lastShow","showing","shown","resizing","resized","dragged","sizeChanging","sizeChanged","positionChanging","positionChanged","_dragged","_oldFocus","_validateAndHide","_toggle","_ignoreClick","getElement","_resultEnter","dialogResult","_callback","onShowing","_showBackdrop","_handleDragResize","onHiding","_bkDrop","_evtHover","_wasVisible","onResizing","onResized","onDragging","onDragged","onSizeChanging","onSizeChanged","onPositionChanging","onPositionChanged","_refreshing","_getHeaderElement","touchAction","_mousedownEvt","_getEdges","_edges","_getClosestHeader","PopupBoundsChangingEventArgs","_DRAG_THRESHOLD","_SZ_EDGE","_toHide","_toShow","_rc","_isValidDate","_calChanging","_calendar","_calChanged","_colorPicker","_trimText","_pathHdr","_bsCollapse","getUniqueId","_wheel","_hasItems","_settingText","_getSelStart","_getSelEnd","_updateInputSelection","_setSelRange","itemsSelected","_maxHdrItems","_hdrFmt","_msLbx","_hdrFormatter","_isButton","_openOnHover","_closeOnLeave","_hoverEnterBnd","_hoverEnter","_hoverLeaveBnd","_hoverLeave","_hoverOverBnd","_hoverOver","_orgOuter","_clearHover","_raiseCommand","_formatMenuItem","_cmd","_cmdPath","_cmdParamPath","_subPath","_updateHoverEvents","_enableDisableItems","_closing","_defaultItem","_subMenu","_getSubItems","_showSubMenu","_getCommand","_getCommandParm","_canExecuteCommand","_executeCommand","executeCommand","canExecuteCommand","_toHover","_updateItems","_hasCustomItems","_getTime","tglDate","tglTime","_btnTm","_inputTime","_setDropdown","_cssMatch","_minLength","_maxItems","_inCallback","_srchProps","_formatListItem","_itemsSourceFnCallBackBnd","_itemSourceFunctionCallback","_srchProp","_itemsSourceFn","_rxHighlight","_rxSrch","_getItemText","_enclosed","_selItems","_lastInputValue","_selPath","_notAddItm","_wjTpl","_wjInput","_keyup","_adjustInputWidth","_itemOff","_addHelperInput","_initSeltems","_refreshHeader","_maxSelItems","_updateMaxItems","_clearSelIndex","onSelectedItemsChanged","_setSelItem","_addItem","_updateFocus","_itemOn","_delItem","_helperInput","_insertToken","_clsActive","_updateSelItems","_disableInput","_hasSelectedMemeberPath","_getSelItem","DropPosition","_tabs","_selectedIndex","_animated","_autoSwitch","_dRoot","_dTabHeaders","_dTabPanes","_populateControl","getTab","_removeChildren","_setPanel","_validateSelection","_getNextIndex","_eAnim","_toAnim","_szObserver","_getTabIndex","_pane","tabPanel","_CLS_ACTIVE","_panes","_alCollapseAll","_alExpandMany","_autoSwitching","getPane","_setAccordion","_hidePane","_getPaneIndex","_acc","accordion","FormatNodeEventArgs","TreeNodeEventArgs","_node","TreeNodeDragDropEventArgs","_src","Before","After","Into","_assertNode","_DATAITEM_KEY","ensureVisible","_selNode","_CSEL","onSelectedItemChanged","_pse","_isNode","_assertNodeList","_isNodeList","nextElementSibling","_getChildNodes","_CNDC","_CCLD","onIsCollapsedChanging","setCollapsed","onIsCollapsedChanged","onIsCheckedChanging","setChecked","onIsCheckedChanged","previous","_CCLG","coreAnimate","_AN_DLY","_lazyLoadNode","_chkPath","_updateCheckedState","_raiseCheckedItemsChanged","_getArray","addChildNode","_createNode","hasPendingChildren","_moveElements","treeView","previousElementSibling","_itmPath","createDocumentFragment","_CNDL","_updateEmptyState","_CEMP","_CND","_isCollapsed","_BindingArray","_bindings","_dspPath","_imgPath","_chkOnClick","_xpndOnClick","_xpndOnLoad","_autoColl","_showChk","_srch","_isReadOnly","isCollapsedChanging","isCollapsedChanged","isCheckedChanging","isCheckedChanged","dragOver","nodeEditStarting","nodeEditStarted","nodeEditEnding","nodeEditEnded","_edtNode","deleteFromDocument","_reload","_CNDT","onNodeEditStarting","selectNodeContents","onNodeEditStarted","onNodeEditEnding","onNodeEditEnded","_dd","_TreeDragDropManager","getNode","_prevSel","_chkItems","checkAllItems","_lazyLoad","getLastNode","_isDirty","_loadTree","collapseToLevel","_collapseToLevel","loadTree","onDragOver","onDrop","_toItemsChanged","_toSrch","_AS_DLY","_ldLvl","_CLDG","_lazyLoadCallback","_lazyLoadNodeDone","_dragstartBnd","_dragoverBnd","_dropBnd","_dragendBnd","_drgSrc","_handleDragDrop","totalItemCount","dragSource","dropTarget","_dMarker","_parts","_key","EventHandler","_handlers","_handlersChanged","_oldVal","_newVal","RequestErrorEventArgs","_xhr","_msg","Reset","_bnd","_asc","PageChangingEventArgs","newPageIndex","GroupDescription","groupNameFromItem","namesMatch","PropertyGroupDescription","_converter","_VERSION","getVersion","setLicenseKey","_licKey","when","glbz","_evalExpression","_ENTITYMAP","Back","Escape","PageUp","PageDown","Delete","F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12","_getFocusableElements","HTMLAnchorElement","HTMLDivElement","getControl","saveFile","_OWNR_KEY","webkitMatchesSelector","msMatchesSelector","mozMatchesSelector","_ANIM_DEF_DURATION","_ANIM_DEF_STEP","sin","fromBoundingRect","union","addDays","addMonths","addYears","addHours","addMinutes","addSeconds","sameDate","sameTime","getMilliseconds","fromDateTime","newDate","toFiscal","fiscalYearOffsets","fromFiscal","httpRequest","URL_DEBUG","btoa","requestHeaders","beforeSend","_modules","fromRgba","fromHsb","_hsbToRgb","fromHsl","_hslToRgb","_rgbToHsb","_rgbToHsl","interpolate","toOpaque","_hue2rgb","_hslToHsb","_hsbToHsl","numberFormat","decimals","firstDay","daysAbbr","monthsAbbr","pm","eras","patterns","_parseNumericFormat","specRaw","_shiftDecimal","_toFixedStr","suffix","toUTCString","_expandFormat","_parseDateFormat","_formatDatePart","_CJK","_getEra","_unquote","twoDigitYearMax","getFirstDayOfWeek","getNumberDecimalSeparator","_numFormatInfo","_dateFormatParts","_zeroPad","_h12","_updateCulture","_agent","_isMobile","_isiOS","isiOS","_isFF","_isSafari","_isEdge","isEdge","_isIE","_isIE9","_isIE10","_supportsPassive","getEventOptions","_supportsFocusOptions","doctype","dragDrop","raf","expectedTime_1","keys_1","keysRe_1","PrintDocument","_copyCss","_title","addCSS","_css","_getDocument","print","_iframe","_close","contentWindow","onafterprint","_afterPrint","queryCommandSupported","contentDocument","_addStyle","CntAll","First","Avg","Cnt","Rng","Last","ArrayBase","canChangePrototype","symb","species","_raiseCollectionChanged","Natural","_srtDsc","_grpDesc","_newItem","_edtItem","_pgSz","_pgIdx","_stableSort","_srtNulls","_canFilter","_canGroup","_canSort","_canAddNew","_canCancelEdit","_canRemove","_canChangePage","_trackChanges","_chgAdded","_chgRemoved","_chgEdited","sourceCollectionChanging","sourceCollectionChanged","currentChanging","pageChanged","pageChanging","_commitAndRefresh","canGroup","canFilter","_keepCurrentItem","groupDescriptions","_itemCreator","_srtCvt","_srtCmp","clearChanges","_canceling","_trackItemChanged","onSourceCollectionChanging","onSourceCollectionChanged","_groups","_ncc","onCurrentChanged","onCurrentChanging","_performRefresh","_performFilter","_performSort","_createGroups","_fullGroups","_mergeGroupItems","_digest","_getGroupsDigest","_compareItems","_collator","_filterItem","_edtClone","_getChangedFields","_needRefresh","canCancelEdit","_getBindingRoot","_sameContent","_sameValue","moveToPage","canChangePage","onPageChanging","onPageChanged","_getFullGroup","_getGroupByPath","_getGroup","_isBottomLevel","Collator","_gd","controlBaseClass","__isES6Mode","__callSuper","ControlBase","_listeners","_fullUpdate","gotFocus","refreshing","_updateWme","_orgAtts","_replaceWithDiv","_CTRL_KEY","_handleFocusBlur","_handleDisabled","_touching","_handleTouchStart","_handleTouchEnd","_rxInputAtts","_copyAttributes","htmlFor","_rtlDir","_REFRESH_INTERVAL","onRefreshing","onRefreshed","invalidateAll","refreshAll","disposeAll","_toWme","_toFocus","_FOCUS_INTERVAL","validationMessage","pointerType","_toTouch","_CLICK_DELAY","_CLICK_REPEAT","_CLIPBOARD_DELAY","_POPUP_ZINDEX","_SEARCH_DELAY","_HOVER_DELAY","_LEAVE_DELAY","_POPUP_OFFSET","_DRAG_SCROLL_EDGE","_DRAG_SCROLL_STEP","_SCRL_KEY","_TTIP_KEY","_copyPaste","_promptChar","_mskArr","_full","_inputBnd","_cmpstart","_cmpendBnd","_cmpend","_connect","_parseMask","_valueChanged","_firstPos","_lastPos","_backSpace","_preventKey","_validatePosition","wildCard","_isCharValid","_autoComplete","_spellCheck","_matchEnd","_handleVagueLiterals","charCase","vague","_isDigit","_isLetter","_X_DBCS_BIG_HIRA","_X_DBCS_BIG_KATA","_X_SBCS_BIG_KATA","_MaskElement","_clickBnd","_disabled","_startEvents","_clearTimeouts","_toRepeat","_toDelay","_stopEvents","_clicked","AboveLeft","BelowLeft","_getPopupParent","_isjQueryDialog","_addPopupToDOM","_copyPopupStyles","_updatePopupPosition","_hidePopupOnscroll","_hidePopup","_getReferenceRect","_getPopupOffset","_getPopupPosition","AboveRight","BelowRight","_getRtlPosition","Above","Below","_showAutoTipBnd","_showAutoTip","_hideAutoTipBnd","_hideAutoTip","_gap","_isAnimated","_showAtMouse","_showDelay","_hideDelay","_getContent","_eTip","_setContent","TooltipEventArgs","onPopup","theLic","_licStr","evl","prd","dmn","lic","mss","ctc","_codes","_wme","_getControlCode","_attorn","parseKeyData","algorithmCode","tripleHash","msCrypto","crypto","subtle","protocol","alg","kty","str64ToJwkBase64","publicKey","str2ArrayBuffer","asPromise","importKey","arrayBuffer2Str","uint8Array","str64ToArrayBuffer","str64EncodeUnicode","verify","_checkLicense","_getControlName","Licensing","_checkExpiration","Exp","_checkVersion","Anl","_checkDomain","_isLocalHost","Dms","hostname","_checkHost","_checkProductCode","Prd","_checkEval","_addWme","_getMessage","HTMLButtonElement","_getWmeHref","Evl","domain","licVer","licDomain","expDate","TypedArray","unshiftString","swapArrayElements","unshiftChar","reverseString","str64DecodeUnicode","shiftChar","oncomplete","get_URL","webkitURL","save_link","can_use_save_link","is_safari","is_chrome_ios","throw_outside","ex","setImmediate","revoke","auto_bom","no_auto_bom","object_url","filesaver","dispatch_all","event_types","INIT","onloadend","fs_error","FS_proto","msSaveOrOpenBlob","WRITING","onwritestart","onprogress","onwrite","onabort","onwriteend","aa","ea","ha","ja","TypeError","ka","la","defineProperties","LA","ma","na","writable","qa","ra","ta","va","wa","ya","za","NodeList","HTMLCollection","Fa","Ga","Ia","_className","Ka","FA","La","Oa","Pa","Qa","Ra","Sa","Ua","Va","Wa","Xa","Ya","Za","Ow","db","eb","gb","jb","nb","kb","bh","addAll","mb","Eb","Cb","Ue","__gohashid","lb","Dx","adym","vfo","classType","ed","Bd","hasNext","ib","gd","Xb","Kb","removeRange","mw","ej","_dataArray","iteratorBackwards","sortRange","insertAt","setElt","thaw","ob","Dl","Uy","Vy","Fq","qA","lw","toList","retainAll","removeAll","containsAny","containsAll","rb","sb","tb","ub","vb","yb","atan","zb","Vd","Ab","Bb","uniqueHash","hashIdUnique","hashId","Df","iteratorKeys","iteratorValues","toKeySet","Fg","Ri","Ma","Zd","rotate","cos","Lh","lA","wA","mq","xA","dj","xk","Db","allocAt","free","isReal","setSpot","setRectSpot","snapToGridPoint","snapToGrid","projectOntoLineSegmentPoint","projectOntoLineSegment","intersectingLineSegments","sq","directionPoint","distanceSquared","distanceSquaredPoint","subtract","equalsApprox","equalTo","setTo","Lb","Mb","Nb","Ob","Pb","Rb","Fb","Gb","Hb","Ib","Jb","Sb","distanceLineSegmentSquared","Origin","InfiniteTopLeft","InfiniteBottomRight","SixPoint","NoPoint","Ub","Vb","Wb","Zb","$b","ac","bc","ec","fc","ZeroSize","OneSize","SixSize","EightSize","TenSize","InfiniteSize","NoSize","uA","ze","Vc","cq","kw","Oz","Sz","Dv","Gc","Ev","Hc","Uz","hc","center","centerX","centerY","intersectsLineSegment","Rx","unionRect","unionPoint","intersectsRect","intersect","intersectRect","grow","subtractMargin","addMargin","containsRect","containsPoint","setSize","setPoint","ic","oc","qc","ZeroRect","NoRect","rc","uc","vc","xc","yc","zc","Ac","Bc","Cc","Fc","Ic","Jc","Lc","Mc","Nc","Pc","Qc","Rc","Sc","Uc","Yc","Zc","$c","ad","bd","cd","fd","tc","jd","kd","ld","ZeroMargin","TwoMargin","Pv","wf","yf","jc","qd","isDefault","isNone","isSide","isNoSpot","isSpot","includesSide","opposite","m11","m21","m12","m22","TopCenter","TopRight","LeftCenter","RightCenter","BottomCenter","BottomRight","MiddleTop","MiddleLeft","MiddleRight","MiddleBottom","TopSide","LeftSide","RightSide","BottomSide","TopBottomSides","LeftRightSides","TopLeftSides","TopRightSides","BottomLeftSides","BottomRightSides","NotTopSide","NotLeftSide","NotRightSide","NotBottomSide","AllSides","ut","multiply","Lv","qw","sd","transformRect","invertedTransformPoint","transformPoint","multiplyInverted","isIdentity","xF","Ig","Hw","Qy","Py","bm","Sv","Rv","Cq","fq","De","IA","GA","zq","Cx","Xy","Nx","bz","cz","Je","Nm","Ff","Gf","ud","pa","mc","Dr","kr","Tm","Gk","Um","jf","jl","kl","Qf","vd","xd","wd","figures","startX","yd","endX","endY","zd","Jd","Kd","Ld","Qd","arcTo","Rd","Sd","isFilled","Lq","Ud","Gd","Hd","Wd","Xd","point1X","point1Y","point2X","point2Y","Yd","$d","be","ke","startAngle","sweepAngle","radiusX","radiusY","isClosed","Iv","computeBounds","Is","Le","Bx","xAxisRotation","isClockwiseArc","yv","flattenedSegments","flattenedLengths","flattenedTotalLength","Ox","zv","Px","Jm","setSpots","getFractionForPoint","getPointAndAngleAlongPath","getAngleAlongPath","getPointAlongPath","computeBoundsWithoutOrigin","Or","Sr","Kl","ue","Di","Ei","kh","Kk","wj","acos","fillPath","Rectangle","Ellipse","Path","isShadowed","isLargeArc","Yu","iu","dr","Wr","Ws","xr","ur","Mg","Hr","Qr","Cr","Rs","Qs","qs","Ps","qe","Oo","Po","Vo","Wo","Uo","Move","Bezier","QuadraticBezier","Arc","SvgArc","documentPoint","clickCount","oq","Ez","Pt","isMultiTouch","isTouchEvent","TouchEvent","PointerEvent","targetDiagram","targetObject","middle","getMultiTouchDocumentPoint","getMultiTouchViewPoint","modelChange","oldParam","newParam","Gz","changeState","isTransactionFinished","getParam","Fu","Li","Al","pu","zu","xe","isUndoingRedoing","checksTransactionLevel","transactionLevel","xb","currentTransaction","isComplete","historyIndex","maxHistoryLength","Gw","Ey","Zs","Ef","Ke","qr","Qj","Ne","standardMouseOver","isBeyondDragSize","standardWaitAfter","holdDelay","hoverDelay","lastInput","Property","Insert","nestedTransactionNames","copyProperties","ux","Bf","transactionToUndo","transactionToRedo","Cv","skipsEvent","kk","isTemporary","isInTransaction","handleChanged","rollbackTransaction","removeModel","addModel","updateAdornments","canStart","doStart","doActivate","doDeactivate","doStop","transactionResult","stopTool","currentTool","currentCursor","doMouseDown","doMouseMove","doMouseUp","doMouseWheel","canStartMultiTouch","standardPinchZoomStart","Cl","Su","standardPinchZoomMove","canResetZoom","zoomPoint","resetZoom","doKeyDown","doKeyUp","Hg","standardMouseSelect","allowSelect","jm","canSelect","containingGroup","clearSelection","standardMouseClick","Eg","viewportBounds","mj","doCurrentObjectChanged","Dg","mouseOver","standardMouseWheel","documentBounds","mouseWheelBehavior","canIncreaseZoom","canDecreaseZoom","increaseZoom","decreaseZoom","deltaX","allowVerticalScroll","scrollVerticalLineChange","allowHorizontalScroll","scrollHorizontalLineChange","cancelWaitAfter","doWaitAfter","findToolHandleAt","firstInput","dragSize","stopTransaction","initializeStandardTools","currentToolTip","adornedObject","showToolTip","hideToolTip","gestureBehavior","Me","mouseDownTools","doFocus","mouseMoveTools","doMouseHover","doToolTip","Pj","mouseHold","mouseHover","positionToolTip","Oe","toolTipDuration","Af","mouseUpTools","findTool","replaceTool","replaceStandardTool","Pe","Qe","og","Bn","Ql","Ns","Vk","Tg","Sq","Re","ko","Oh","Ie","dragsLink","allowRelink","ik","draggedLink","canRelinkFrom","canRelinkTo","Yj","Xe","lf","mf","Se","Cf","pf","copiedParts","isModelReadOnly","draggedParts","undoManager","partManager","addsToTemporaryLayer","startPoint","copiesEffectiveCollection","canCopy","qf","routeBounds","Jt","temporaryFromNode","temporaryToNode","uh","xx","Ht","suspendsRouting","Wc","tf","uf","findDragOverObject","doUpdateCursor","handlesDragDropForTopLevelParts","isTopLevel","mouseDragOver","doDragOver","allowMove","gt","mouseDragLeave","mouseDragEnter","handlesDragDropForMembers","Ag","portGravity","findValidLinkablePort","ga","pointsCount","isValidLink","defaultFromPoint","defaultToPoint","fromPortId","toPortId","Xx","Yx","mouseDrop","doDropOnto","getAvoidableRect","uv","isAvoiding","Jf","WheelScroll","WheelZoom","WheelNone","GestureZoom","GestureCancel","GestureNone","allowDragOut","findDraggablePart","canMove","currentPart","computeEffectiveCollection","dragOptions","Ot","Ve","isMouseCaptured","isDragOutStarted","We","doSimulatedDragOut","df","gf","sf","vf","mayCopy","copyCursor","mayMove","moveCursor","mayDragOut","nodropCursor","simulatedMouseMove","simulatedMouseUp","Hf","Na","doSimulatedDragLeave","doSimulatedDragEnter","allowInsert","targetTouches","changedTouches","getMouse","Nq","doSimulatedDragOver","doSimulatedDrop","isCopyEnabled","computeBorder","Bz","mayDragIn","dataFormat","Xc","If","bn","computeMove","isComplexRoutingRealtime","isGridSnapRealtime","gridSnapCellSize","gridSnapCellSpot","gridSnapOrigin","dragsTree","draggingParts","getDraggingSource","Kf","Lf","Dw","Bw","Cw","Ew","Fw","vy","xi","Mf","isLinkLabel","labeledLink","Pf","isTreeLink","Sf","Vf","Wf","Xf","originalToPort","originalToNode","originalFromPort","originalFromNode","originalLink","validPortsCache","targetPort","copyPortProperties","naturalBounds","Xi","portTargeted","setNoTargetPortProperties","findTargetPort","isForwards","temporaryToPort","temporaryFromPort","isValidTo","isValidFrom","allowLink","isUnconnectedLinkValid","lq","isInSameNode","isLinked","fromLinkableSelfNode","toLinkableSelfNode","fromLinkableDuplicates","toLinkableDuplicates","isLabelDependentOnLink","isValidCycle","linkValidation","validCycle","Nf","Of","temporaryLink","Rf","Uf","linkingCursor","findLinkablePort","startObject","Yf","Zf","isNewTreeLink","insertLink","gq","doNoLink","archetypeLinkData","getLinkCategoryForData","findLinkTemplateForCategory","archetypeLabelNodeData","segmentIndex","gx","cg","Xt","hx","ug","resegmentingDistance","Either","ForwardsOnly","BackwardsOnly","selectionObject","zf","fk","makeAdornment","Ch","toHandleArchetype","fromHandleArchetype","copyLinkProperties","$f","ag","bg","curviness","smoothness","fromShortLength","toShortLength","reconnectLink","doNoRelink","tq","Av","dg","Im","canReshape","ax","qx","resegmentable","isOrthogonal","firstPickIndex","lastPickIndex","computeCurve","qg","makeResegmentHandle","segmentFraction","makeHandle","sg","tg","handleArchetype","midHandleArchetype","allowReshape","getResegmentingPoint","adornedLink","computeReshape","reshape","Nh","findVisibleNode","computeSpot","getLinkPointFromPoint","originalPoint","originalPoints","setReshapingBehavior","getReshapingBehavior","vg","eg","Ng","Xo","nu","mu","lu","$w","Cg","bx","Lu","Bk","ij","Uw","Iu","Dy","kx","Jg","Ax","Kg","Zw","du","xu","Wu","Rg","currentContextMenu","Sg","findObjectWithContextMenu","currentObject","showContextMenu","Horizontal","Vertical","resizeObject","canResize","wg","updateResizeHandles","resizeAdornmentTemplate","Spot","xg","yg","allowResize","computeCellSize","computeMinSize","computeMaxSize","originalDesiredSize","originalLocation","computeResize","oppositePoint","zg","Bg","resizeCellSize","cellSize","Kh","rotateObject","canRotate","computeAdornmentLocation","rotateAdornmentTemplate","allowRotate","computeRotationPoint","delaysLayout","locationObject","rotationSpot","rotationPoint","handleAngle","handleDistance","originalAngle","computeRotate","isActionable","actionDown","actionMove","actionUp","actionCancel","archetypeNodeData","isDoubleClick","insertPart","copyNodeData","wc","Gg","box","computeBoxBounds","selectInRect","Mx","isPartialInclusion","originalPosition","mainElement","defaultTouchContextMenu","hideContextMenu","positionContextMenu","showDefaultContextMenu","copySelection","canCopySelection","cutSelection","canCutSelection","canDeleteSelection","pasteSelection","mouseDownPoint","canPasteSelection","canSelectAll","canScrollToPart","canZoomToFit","groupSelection","canGroupSelection","ungroupSelection","canUngroupSelection","canEditTextBlock","Og","Pg","xy","hideDefaultContextMenu","Qg","Ug","Lg","Vg","vh","Wg","Xg","Ji","Yg","hu","Zg","Wx","yA","lineCount","isMultiline","acceptText","$g","ah","dh","minimumEditorScale","jh","isValidText","hh","errorFunction","eh","fh","canEdit","starting","gh","defaultTextEditor","ih","textValidation","ti","measureTemporaryTextBlock","wh","gl","Ze","Tr","xh","Mw","ox","Ad","yh","Ck","Tu","Ss","zh","Ah","defaultAnimation","Bh","isViewportUnconstrained","Dh","Eh","Fh","Nu","Gh","Hh","Ih","Jh","skipsModelSourceBindings","Ph","Qh","Rh","Sh","Kq","strokeDashOffset","areaBackground","Th","LostFocus","MouseDown","SingleClick","SingleClickSelected","DoubleClick","StateNone","StateActive","StateEditing","StateValidating","StateInvalid","StateValidated","Dt","Gv","gm","Vj","Tj","animationReasons","isTicking","isInitial","activeAnimations","initialAnimationStyle","stopAnimation","Xu","nx","Gn","nr","ku","Uh","ol","Mu","Ku","md","Pw","Hn","Gu","Xl","Nw","Vh","Yh","Zh","pv","Wh","kv","Uv","$h","Mp","Hk","bi","defineAnimationEffect","AnimateLocations","suspend","advanceTo","Ee","scrollMode","Gi","Xh","Ly","oh","yt","memberParts","Hz","runCount","finished","getTemporaryState","addTemporaryPart","EaseLinear","EaseInOutQuad","EaseInQuad","EaseOutQuad","EaseInExpo","EaseOutExpo","Hx","animationSettings","startCondition","ei","qb","Yo","globalAlpha","ji","ki","zOrder","Ik","nl","Pu","zs","setRTL","jx","aw","vj","$v","yn","Kr","Lr","$s","Fr","Fi","Hs","As","ni","lj","Xn","Mr","nd","Xk","Zm","an","pj","sj","Pd","vr","wr","Vm","msPointerEnabled","Ur","Vs","uu","Xs","qi","Ts","xn","mr","hg","ig","kg","Ir","jg","gg","Kj","gr","Ls","Ru","yu","updateDataBindings","doModelChanged","$u","Uq","Vq","ar","Zq","Yq","Wq","$q","Xq","dl","Gs","Cs","Bs","wp","Es","Ds","Fs","bb","Qu","ru","Yw","su","Jv","Zu","Zl","zn","Vr","qo","Vn","Ro","fu","eu","gu","Ye","zr","yi","Un","defaultTool","yr","Qk","Op","zi","Rw","ju","Io","Jo","Ko","od","Aj","Us","$m","je","wm","um","tm","rk","tk","sk","pk","qk","vw","nw","ow","pw","nh","Gl","mh","Fl","$n","Pp","In","Jn","avoidable","Auto","setScrollWidth","computePixelRatio","isViewportSized","$l","isBoundsIncluded","pickable","tx","im","Ni","Grid","isInDocumentBounds","Oi","Ex","Pi","Qi","Ti","fixedBounds","Ui","initialPosition","initialDocumentSpot","initialViewportSpot","Vi","Wi","Bq","Ii","Yi","minScale","maxScale","Zi","positionComputation","Si","cj","composedPath","fj","gj","hj","cancelBubble","kj","nj","oj","initialScale","isModified","gv","qj","arrange","tj","setTransform","clearRect","fillStyle","fillRect","uj","imageSmoothingEnabled","ky","defaultFont","xj","vx","yj","Uj","Cj","hasHorizontalScrollbar","hasVerticalScrollbar","Jj","isHighlighted","dk","layerChanged","Lj","Mz","labelNodes","Mj","Nj","shifted","Bv","dragComputation","gridOrigin","Oj","Sj","scaleComputation","hk","Ej","jk","HTMLImageElement","Pr","Ou","lk","mk","zj","nk","isValidLayout","zl","isRealtime","doLayout","uk","oy","computeOccupiedArea","computePartsBounds","vk","dm","wk","zk","yk","Ak","vl","callbackTimeout","omitTemporary","elementFinished","showTemporary","showGrid","Immediate","Bundled","Xw","adornments","gi","isClipping","lm","beginPath","restore","aj","ui","qq","rq","partsBackwards","allowTextEdit","allowGroup","allowUngroup","findObjectsNear","findObjectsIn","findObjectsAt","findObjectAt","Ki","devicePixelRatio","scrollsPageOnFocus","Sy","Ry","Ay","By","EA","My","Az","nz","$i","oz","bj","acceptEvent","Xz","Yz","dz","ez","Wz","Zy","ly","drawShadows","textGreeking","viewportOptimizations","temporaryPixelRatio","pictureRatioOptimization","minDrawingLength","tA","extraTouchArea","extraTouchThreshold","hasGestureZoom","iw","Sx","drawImage","Ea","Bj","Dj","Fj","Gj","Hj","Ij","canDelete","minLocation","maxLocation","Nz","Gy","mA","oA","Rj","isRow","Yv","Wv","getRowDefinition","getColumnDefinition","et","Pq","isVirtualized","sA","clearHighlighteds","highlighteds","Pz","Qz","Mh","findPartForKey","findLinkForKey","kt","jt","rz","aA","zz","ym","At","Kv","Ky","cA","returnType","Ux","dA","canvas","getImageData","toDataURL","toBlob","msToBlob","Fx","allowClipboard","allowUndo","defaultCursor","maxSelectionCount","nodeSelectionAdornmentTemplate","groupSelectionAdornmentTemplate","linkSelectionAdornmentTemplate","addAllModeledParts","groupTemplate","groupTemplateMap","SVGElement","viewSize","defaultScale","isTreePathToChildren","Dk","treeCollapsePolicy","Ek","Fk","autoScrollInterval","autoScrollRegion","licenseKey","makeImageData","makeImage","addRenderer","makeSVG","makeSvg","stopAutoScroll","doAutoScroll","isUnoccupied","raiseDiagramEvent","removeDiagramListener","addDiagramListener","findTreeRoots","layoutDiagram","findTopLevelGroups","findTopLevelNodesAndLinks","findLinkForData","findPartForData","rebuildParts","transformViewToDoc","transformRectDocToView","centerRect","scrollToRect","highlightCollection","raiseChanged","raiseChangedEvent","removeChangedListener","addChangedListener","removeModelChangedListener","addModelChangedListener","findLayer","removeLayer","addLayerAfter","addLayerBefore","addLayer","copyParts","clearDelayedGeometries","setProperties","resetInputOptions","setInputOption","getInputOption","resetRenderingHints","setRenderingHint","getRenderingHint","maybeUpdate","isUpdateRequested","invalidateDocumentBounds","findPartsNear","findPartsIn","findPartsAt","findPartAt","focusObject","alignDocument","zoomToRect","diagramScroll","useDOM","isUsingDOM","Wk","Yk","Zk","$k","al","Cy","_tk","styleSheets","cssRules","selectorText","userSelect","webkitUserSelect","MozUserSelect","onscroll","ontouchstart","wheelDeltaX","wheelDeltaY","wheelDelta","screenX","screenY","pointerId","Mi","HTMLCanvasElement","Jk","Lk","Mk","Ml","resizeObjectName","Nk","Ok","updateDelay","Pk","drawsTemporaryLayers","drawsGrid","Rk","Ww","bv","pg","Tk","isTreeExpanded","wasTreeExpanded","isSubGraphExpanded","wasSubGraphExpanded","Uk","ng","Yb","ep","gn","Kp","xp","Hl","Il","Jl","$a","Ll","Pl","Qq","isToModel","modelData","tw","il","ml","strokeStyle","wl","xl","yl","au","createLinearGradient","endRadius","startRadius","createRadialGradient","createPattern","colorStops","addColorStop","ql","Bl","El","Km","Nl","Ol","fromDiv","Uniform","UniformToFill","CycleAll","CycleNotDirected","CycleNotDirectedFast","CycleNotUndirected","CycleDestinationTree","CycleSourceTree","DocumentScroll","InfiniteScroll","TreeParentCollapsed","AllParentsCollapsed","AnyParentsCollapsed","canStopCommand","stopCommand","canShowContextMenu","Sk","deletesTree","deletesConnectedLinks","copiesTree","copiesConnectedLinks","qm","bk","copiesParentKey","ak","copiesGroupKey","pasteFromClipboard","zoomFactor","scrollToPartPause","collapseTree","canCollapseTree","nq","expandTree","canExpandTree","archetypeGroupData","Hv","isValidMember","memberValidation","canUngroup","expandSubGraph","Mt","addTopLevelParts","collapseSubGraph","canCollapseSubGraph","canExpandSubGraph","hm","copiesClipboardData","cloneProtected","segmentOrientation","Ec","Lx","sm","TableRow","$r","Et","To","Gx","shadowOffset","clipInsteadOfFill","jw","shadowBlur","shadowColor","shadowVisible","om","Fv","hw","gw","enabledChanged","En","segmentOffset","Rl","spanAllocation","Sl","Tl","Tp","Kn","Ln","Fo","Go","Pm","Qm","Rm","Om","findTemplateBinder","isEnabledObject","isVisibleObject","isContainedBy","getNearestIntersectionPoint","getLocalPoint","getDocumentScale","getDocumentAngle","getDocumentBounds","containedInRect","addCopyProperty","Ul","Vl","y2","y1","zx","hA","viewBox","Wl","lineCap","lineDashOffset","lineJoin","lineWidth","miterLimit","shadowOffsetY","shadowOffsetX","Gp","Fp","uq","rh","jA","Yl","gradientUnits","Yt","$t","Zt","_buttonFillNormal","_buttonFillDisabled","_buttonStrokeNormal","_buttonStrokeOver","_buttonFillPressed","_buttonStrokePressed","parameter1","parameter2","_treeExpandedFigure","_treeCollapsedFigure","Aq","_subGraphExpandedFigure","_subGraphCollapsedFigure","_buttonExpandedFigure","_buttonCollapsedFigure","geometryString","geometryStretch","Vx","_doClick","_buttonClick","FlipVertical","FlipHorizontal","FlipBoth","getBuilders","defineBuilder","takeBuilderArgument","baseVal","arc","bezierCurveTo","addPath","closePath","patternUnits","naturalWidth","naturalHeight","preserveAspectRatio","fillText","quadraticCurveTo","in","KA","in2","geometry","setLineDash","Os","Br","fm","em","Tx","km","bA","Yy","isDark","darkenBy","lightenBy","xm","zm","Am","Dm","Gm","Hm","Lm","Mm","Sm","isAtomic","un","Yp","Sn","Tn","Pn","On","Qn","Xm","actual","separatorStrokeWidth","separatorStroke","separatorDashArray","Wm","coversSeparators","Ym","Bm","Cm","Qp","targetProperty","jn","kn","itemTemplateMap","mn","en","An","Linear","Radial","Lab","HSL","randomColor","isValidColor","lighten","darken","mix","Oy","arrangeElement","measureElement","isGeometryPositioned","isOpposite","defaultAlignment","xa","topIndex","leftIndex","Md","lh","Dc","Nd","Oc","kc","Qb","Wj","lc","Cd","Dd","minimum","maximum","Od","pn","qh","lg","Ed","qn","Fd","Fe","Ge","mg","rn","sn","Xj","Lt","Zj","Nt","jr","wi","Em","Fm","ek","gk","vn","pd","wn","iv","viewboxStretch","strokeDashArray","computeAngle","midPoint","midAngle","graduatedTickUnit","graduatedRange","graduatedStart","graduatedEnd","graduatedTickBase","graduatedMin","graduatedMax","graduatedSkip","graduatedFunction","Zz","Graduated","itemArray","pz","hz","Kz","Lz","Wy","sourceProperty","converter","Gt","Kx","defaultSeparatorPadding","defaultRowSeparatorStroke","defaultRowSeparatorStrokeWidth","defaultRowSeparatorDashArray","defaultColumnSeparatorStroke","defaultColumnSeparatorStrokeWidth","defaultColumnSeparatorDashArray","rowSizing","columnSizing","hn","itemCategoryProperty","alignmentFocusName","Viewbox","findItemPanelForData","rebuildItemElements","copyTemplate","graduatedValueForPoint","graduatedPointForValue","findColumnForLocalX","findRowForLocalY","removeColumnDefinition","removeRowDefinition","findInVisualTree","walkVisualTreeFrom","findMainElement","Rr","Hp","Bp","Cp","sizing","definePanelLayout","separatorPadding","computeEffectiveSpacing","computeEffectiveSpacingTop","Nn","$o","Zo","Zn","bp","Cn","Fn","ProportionalExtra","fromArrow","pathPattern","makeGeometry","strokeCap","strokeJoin","strokeMiterLimit","Mn","ix","Du","Eu","Rp","Sp","Wn","ao","eo","fo","ho","getFigureGenerators","defineFigureGenerator","getArrowheadGeometries","defineArrowheadGeometry","flip","maxLines","Yn","verticalAlignment","isStrikethrough","spacingAbove","spacingBelow","metrics","arrSize","arrText","maxLineWidth","fontHeight","choices","jo","Jp","tu","Er","mo","no","getEllipsis","setEllipsis","getBaseline","setBaseline","getUnderline","setUnderline","isValidFont","WrapFit","WrapDesiredSize","WrapBreakAll","OverflowClip","OverflowEllipsis","imageStretch","videoWidth","videoHeight","sourceRect","__goCache","po","HTMLVideoElement","Vw","crossOrigin","sourceCrossOrigin","imageAlignment","successFunction","ro","clearCache","mp","ip","yp","Ap","zp","kp","jp","vo","Ep","Dp","aq","yy","wo","xo","yo","zo","isTreeLeaf","Eo","Backward","Triangle","BackwardTriangle","Boomerang","BackwardBoomerang","SidewaysV","BackwardV","OpenTriangle","BackwardOpenTriangle","OpenTriangleLine","BackwardOpenTriangleLine","OpenTriangleTop","BackwardOpenTriangleTop","OpenTriangleBottom","BackwardOpenTriangleBottom","HalfTriangleTop","BackwardHalfTriangleTop","HalfTriangleBottom","BackwardHalfTriangleBottom","ForwardSemiCircle","BackwardSemiCircle","Feather","BackwardFeather","DoubleFeathers","BackwardDoubleFeathers","TripleFeathers","BackwardTripleFeathers","ForwardSlash","BackSlash","DoubleForwardSlash","DoubleBackSlash","TripleForwardSlash","TripleBackSlash","Fork","BackwardFork","LineFork","BackwardLineFork","CircleFork","BackwardCircleFork","CircleLineFork","BackwardCircleLineFork","Circle","Block","StretchedDiamond","Diamond","Chevron","StretchedChevron","NormalArrow","TailedNormalArrow","DoubleTriangle","BigEndArrow","ConcaveTailArrow","RoundedTriangle","SimpleArrow","AccelerationArrow","BoxArrow","TriangleLine","CircleEndedArrow","DynamicWidthArrow","EquilibriumArrow","FastForward","Kite","HalfArrowTop","HalfArrowBottom","OpposingDirectionDoubleArrow","PartialDoubleTriangle","LineCircle","DoubleLineCircle","TripleLineCircle","CircleLine","DiamondCircle","PlusCircle","OpenRightTriangleTop","OpenRightTriangleBottom","DoubleLine","TripleLine","PentagonArrow","updateRelationshipsFromData","copyable","textEditable","groupable","movable","rotatable","qz","uz","Ix","canLayout","isLayoutPositioned","layoutConditions","setLinkCategoryForData","Jq","highlightedChanged","rotateObjectName","containingGroupChanged","Lo","invalidateLayout","findCommonContainingGroup","isMemberOf","findTopLevelPart","findSubGraphLevel","getRelativePoint","invalidateAdornments","clearAdornments","removeAdornment","addAdornment","findAdornment","Wp","Mo","No","Bt","Mv","Zx","$x","Qo","So","LayoutNone","LayoutAdded","LayoutRemoved","LayoutShown","LayoutHidden","LayoutNodeSized","LayoutGroupLayout","LayoutNodeReplaced","LayoutStandard","LayoutAll","Tz","Jx","lz","mz","lt","Vz","yz","iz","wz","vz","xz","avoidableMargin","ay","ports","treeExpandedChanged","findTreeParts","findTreeChildrenNodes","findTreeChildrenLinks","findTreeLevel","findTreeParentChain","findTreeParentNode","findTreeParentLink","findCommonTreeParent","findTreeRoot","isInTreeOf","findLinksTo","findLinksBetween","findNodesInto","findNodesOutOf","findNodesConnected","findExternalTreeLinksConnected","invalidateConnectedLinks","invalidateLinkBundle","Np","memberAdded","computesBoundsIncludingLinks","memberRemoved","ap","tp","Vp","Ip","Vu","Gr","lx","qu","isLabeledLink","computeShortLength","usesSamePort","SpreadingNone","SpreadingEvenly","SpreadingPacked","canAddMembers","addMembers","ungroupable","qv","kz","jz","computesBoundsAfterDrag","computesBoundsIncludingLocation","subGraphExpandedChanged","findSubGraphParts","findContainingGroupChain","findExternalNodesConnected","findExternalLinksConnected","computeMemberBounds","dp","gp","Fz","removeDataForLink","relinkableFrom","relinkableTo","computeMidPoint","computeCorner","computeMidAngle","Rz","Xv","ey","jv","computePoints","computeAdjusting","getLinkPoint","adjustPoints","computeCurviness","hasCurviness","computeEndSegmentLength","getLinkDirection","addOrthoPoints","wq","ov","computeOtherPoint","findMidLabel","computeSpacing","arrangeBundledLinks","computeMidOrthoPosition","vA","$z","gz","setFromNodeForLink","fromPortChanged","jy","setToNodeForLink","toPortChanged","ny","invalidateOtherJumpOvers","findClosestSegment","updateRoute","rollbackRoute","commitRoute","startRoute","clearPoints","removePoint","addPointAt","addPoint","insertPointAt","insertPoint","setPointAt","getPoint","getOtherPort","getOtherNode","Nr","Lp","Normal","Orthogonal","AvoidsNodes","AvoidsNodesStraight","JumpGap","JumpOver","Scale","Stretch","OrientAlong","OrientPlus90","OrientMinus90","OrientOpposite","OrientUpright","OrientPlus90Upright","OrientMinus90Upright","OrientUpright45","yq","Qv","pq","Qw","Ct","xt","kq","Xp","Zp","sourceEdges","fromVertex","destinationEdges","toVertex","$p","bq","dq","isOngoing","makeNetwork","updateParts","isRouting","arrangementOrigin","initialOrigin","boundsComputation","yx","collectParts","getLayoutBounds","createVertex","createEdge","findGroupVertex","nv","az","lv","$y","iq","deleteArtificialVertexes","py","fz","findAllParts","splitIntoSubNetworks","deleteSelfEdges","reverseEdge","linkVertexes","findEdge","deleteLink","deleteEdge","addLink","addEdge","findVertex","deleteNode","deleteVertex","addNode","addVertex","addParts","focusX","focusY","sourceEdgesArrayAccess","destinationEdgesArrayAccess","deleteDestinationEdge","addDestinationEdge","deleteSourceEdge","addSourceEdge","standardComparer","smartComparer","toLocaleLowerCase","Qx","getOtherVertex","hq","arrangement","comparer","wrappingColumn","wrappingWidth","spacing","commitLayers","Tq","nt","resolveReferencesForData","copyPartData","LeftToRight","RightToLeft","Forward","Reverse","Ascending","Descending","removeAllModeledParts","addModeledParts","It","Gq","unresolveReferencesForPart","refreshDataBoundLinks","afterCopyFunction","removeModeledPart","removeModeledParts","vq","xq","Hq","Ut","Jw","Wt","isExtensible","Mq","Oq","Rq","Iq","enum","zt","Dq","copiesArrays","copiesArrayObjects","copiesKey","nodeKeyProperty","wv","iy","my","Eq","xv","ew","zA","xw","cloneDeep","removedNodeKeys","insertedNodeKeys","modifiedNodeData","nodeCategoryProperty","yw","Tv","Ty","nodeIsGroupProperty","qy","wx","incremental","Ny","constructGraphLinksModel","Ft","Jy","pA","sw","Fy","qt","Vv","makeUniqueKeyFunction","copyNodeDataFunction","getCategoryForNodeData","addArrayItem","assignAllDataProperties","clearUnresolvedReferences","mergeNodeDataArray","removeNodeDataCollection","removeNodeData","makeNodeDataKeyUnique","containsNodeData","setKeyForNodeData","getKeyForNodeData","raiseDataChanged","writeJsonValue","replaceJsonObjects","applyIncrementalJSON","applyIncrementalJson","toIncrementalJSON","toIncrementalJson","computeJsonDifference","toIncrementalData","Ms","ou","fromJson","safePropertyValue","safePropertySet","Brush","ChangedEvent","Geometry","Panel","UndoManager","backConverter","updateSource","updateTarget","ofModel","Tt","Iw","Vt","er","parseEnum","OneWay","TwoWay","removedLinkKeys","insertedLinkKeys","modifiedLinkData","linkCategoryProperty","linkFromKeyProperty","linkToKeyProperty","linkLabelKeysProperty","nodeGroupKeyProperty","Cz","Iz","Dz","Jz","dw","Iy","nA","fA","Zv","makeUniqueLinkKeyFunction","copyLinkDataFunction","setCategoryForLinkData","getCategoryForLinkData","setGroupKeyForNodeData","getGroupKeyForNodeData","isGroupForNodeData","copyLinkData","mergeLinkDataArray","removeLinkDataCollection","removeLinkData","addLinkData","containsLinkData","makeLinkDataKeyUnique","setKeyForLinkData","getKeyForLinkData","removeLabelKeyForLinkData","addLabelKeyForLinkData","setLabelKeysForLinkData","getLabelKeysForLinkData","setToPortIdForLinkData","getToPortIdForLinkData","setFromPortIdForLinkData","getFromPortIdForLinkData","setToKeyForLinkData","getToKeyForLinkData","setFromKeyForLinkData","getFromKeyForLinkData","Tw","Ar","Sw","Kw","lr","Ys","ir","bu","zy","tan","actualAngle","diameter","GraphLinksModel","initDiagramModel","nodeParentKeyProperty","parentLinkCategoryProperty","setParentLinkCategoryForNodeData","getParentLinkCategoryForNodeData","setParentKeyForNodeData","getParentKeyForNodeData","TreeModel","nodeDiameterFormula","radius","aspectRatio","commitNodes","commitLinks","actualCenter","actualXRadius","actualYRadius","actualSpacing","Rt","St","Qt","zw","Aw","bw","$j","maxIterations","isFixed","Xr","Yr","forceX","forceY","charge","electricalFieldX","electricalFieldY","mass","gravitationalFieldX","gravitationalFieldY","randomNumberGenerator","Zr","stiffness","moveLimit","moveFixedVertex","epsilonDistance","uy","wy","ty","near","portToPos","portFromPos","ls","portFromColOffset","portToColOffset","linkMinLength","us","xs","ys","forest","Js","Ks","ConstantSpacing","ConstantDistance","ConstantAngle","Packed","Clockwise","Counterclockwise","BidirectionalLeft","BidirectionalRight","Forwards","Optimized","Pythagorean","Circular","electricalCharge","gravitationalMass","springStiffness","springLength","fv","needsClusterLayout","arrangementSpacing","addComments","defaultCommentElectricalCharge","defaultCommentSpringLength","fw","arrangesToOrigin","currentIteration","infinityDistance","defaultSpringStiffness","defaultSpringLength","defaultElectricalCharge","defaultGravitationalMass","aggressiveOption","cycleRemoveOption","initializeOption","removeCycles","initializeIndices","reduceCrossings","straightenAndPack","nodeMinLayerSpace","Ov","Nv","countCrossings","hv","avoidOrthogonalOverlaps","hy","Kt","gy","linkSpacing","iterations","maxIndex","maxColumn","minIndexLayer","maxIndexLayer","Lw","Uu","initializeTreeVertexValues","sortTreeVertexChildren","childrenCount","descendantCount","maxChildrenCount","maxGenerationCount","assignTreeVertexValues","breadthLimit","nodeSpacing","rowSpacing","rowIndent","relativePoint","setPortSpots","layerSpacingParentOverlap","nodeIndent","nodeIndentPastParent","CycleDepthFirst","CycleGreedy","CycleFromLayers","LayerOptimalLinkLength","LayerLongestPathSink","LayerLongestPathSource","InitDepthFirstOut","InitDepthFirstIn","InitNaive","AggressiveNone","AggressiveLess","AggressiveMore","PackNone","PackExpand","PackStraighten","PackMedian","PackAll","copyInheritedPropertiesFrom","compaction","treeStyle","findRoots","layerStyle","layoutTree","arrangeTrees","commentSpacing","commentMargin","layoutComments","setsPortSpot","setsChildPortSpot","portSpot","childPortSpot","rootDefaults","alternateDefaults","alternateSorting","alternateComparer","alternateAngle","alternateAlignment","alternateNodeIndent","alternateNodeIndentPastParent","alternateNodeSpacing","alternateLayerSpacing","alternateLayerSpacingParentOverlap","alternateCompaction","alternateBreadthLimit","alternateRowSpacing","alternateRowIndent","alternateCommentSpacing","alternateCommentMargin","alternateSetsPortSpot","alternatePortSpot","alternateSetsChildPortSpot","alternateChildPortSpot","rA","Ju","PathDefault","PathDestination","PathSource","SortingForwards","SortingReverse","SortingAscending","SortingDescending","AlignmentCenterSubtrees","AlignmentCenterChildren","AlignmentStart","AlignmentEnd","AlignmentBus","AlignmentBusBranching","AlignmentTopLeftBus","AlignmentBottomRightBus","CompactionNone","CompactionBlock","StyleLayered","StyleLastParents","StyleAlternating","StyleRootOnly","ArrangementVertical","ArrangementHorizontal","ArrangementFixedRoots","LayerIndividual","LayerSiblings","LayerUniform","relativePosition","subtreeSize","subtreeOffset","Group","EnumValue","List","PathFigure","PathSegment","InputEvent","DiagramEvent","CommandHandler","Tool","DraggingTool","DraggingInfo","LinkingBaseTool","LinkingTool","RelinkingTool","LinkReshapingTool","ResizingTool","RotatingTool","ClickSelectingTool","ActionTool","ClickCreatingTool","HTMLInfo","ContextMenuTool","DragSelectingTool","PanningTool","TextEditingTool","ToolManager","Animation","AnimationManager","Layer","Diagram","Palette","Overview","RowColumnDefinition","TextBlock","TextBlockMetrics","Picture","Part","Adornment","Placeholder","Layout","LayoutNetwork","LayoutVertex","LayoutEdge","GridLayout","PanelLayout","CircularLayout","CircularNetwork","CircularVertex","CircularEdge","ForceDirectedLayout","ForceDirectedNetwork","ForceDirectedVertex","ForceDirectedEdge","LayeredDigraphNetwork","LayeredDigraphVertex","LayeredDigraphEdge","TreeLayout","TreeNetwork","TreeVertex","TreeEdge","amd","CenteredSeriesMixin","splat","Pane","setOptions","defaultOptions","angular","backgroundOption","updateCenter","axis","renderBackground","defaultBackgroundOptions","backgroundOptions","getPlotBandPath","borderColor","linearGradient","stops","innerRadius","outerRadius","getCenter","axes","addEvent","pInt","correctFloat","axisProto","Axis","tickProto","Tick","radialAxisExtended","hiddenAxisMixin","getOffset","isDirty","setScale","setCategories","radialAxisMixin","defaultRadialGaugeOptions","minorGridLineWidth","minorTickInterval","minorTickLength","minorTickPosition","minorTickWidth","tickLength","tickPosition","tickWidth","rotation","defaultRadialXOptions","gridLineWidth","maxPadding","minPadding","showLastLabel","defaultRadialYOptions","gridLineInterpolation","userOptions","defaultRadialOptions","plotBands","fireEvent","axisOffset","getLinePath","isCircular","symbols","startAngleRad","endAngleRad","innerR","xBounds","yBounds","postTranslate","angleRad","plotLeft","plotTop","setAxisTranslation","transA","minPixelPadding","isXAxis","minPointOffset","beforeSetTickPositions","autoConnect","userMax","pointRange","closestPointRange","setAxisSize","isRadial","fullRadius","radii","percentRegex","getPlotLinePath","tickPositions","getTitlePosition","titleOptions","polar","isX","defaultYAxisOptions","inverted","zoomType","paneOptions","endAngle","proceed","labelOptions","optionsY","centerSlot","fontMetrics","getBBox","tickInterval","horiz","endPoint","defined","seriesTypes","seriesProto","Series","pointProto","seriesType","trackByArea","xLow","xHigh","yLow","yHigh","pointArrayMap","toYData","pointValKey","deferTranslatePolar","highToXY","rectPlotX","plotHigh","plotHighX","plotLowX","plotX","hasModifyValue","modifyValue","plotY","isNull","plotLow","yBottom","tooltipPos","getGraphPath","pointShim","linePath","lowerPath","higherPath","higherAreaPath","highPoints","highAreaPoints","connectEnds","connectNulls","doCurve","polarPlotY","graphPath","areaPath","isArea","xMap","drawDataLabels","upperDataLabelOptions","lowerDataLabelOptions","originalDataLabels","dataLabelOptions","_hasPointLabels","_plotY","dataLabel","dataLabelUpper","alignDataLabel","drawPoints","pointLength","origProps","isInside","lowerGraphic","graphic","upperGraphic","zones","isTopInside","setStackedPoints","isPolar","toPixels","stateMarkerGraphic","lowerStateMarkerGraphic","upperStateMarkerGraphic","haloPath","destroyElements","graphicName","getPointSpline","spline","defaultPlotOptions","colProto","arearange","hover","halo","safeDistance","chartWidth","chartHeight","safeBounds","pixelPos","heightDifference","shapeArgs","minPointLength","rectPlotY","barX","shapeType","polarArc","pointWidth","directTouch","trackerGroups","drawGraph","getSymbol","crispCol","drawTracker","getColumnMetrics","pointAttribs","translate3dPoints","translate3dShapes","pointClass","TrackerMixin","crop","dial","pivot","showInLegend","fixedBox","forceDL","noSharedTooltip","generatePoints","dialOptions","baseLength","rearLength","baseWidth","topWidth","overshoot","translateX","translateY","pivotOptions","circle","plotGroup","seriesGroup","clipRect","processData","drawTrackerPoint","whiskerLength","medianWidth","whiskerWidth","q1","median","q3","q1Plot","q3Plot","highPlot","lowPlot","medianPlot","crispCorr","halfWidth","pointWiskerLength","crispX","doQuartiles","verb","boxAttr","stemAttr","whiskersAttr","medianAttr","stem","whiskers","boxPath","medianShape","medianPath","stemColor","stemWidth","dashstyle","stemDashStyle","whiskerColor","lineColor","medianColor","linkedTo","valKey","linkedParent","columnMetrics","lineWidthPlus","showLine","previousIntermediate","processedYData","isSum","isIntermediateSum","yValue","previousY","stackIndicator","tooltipY","halfMinPointLength","stacks","negStacks","stackKey","getStackIndicator","minPointLengthOffset","subSum","dataMin","dataMax","yData","dataLength","upColor","getCrispPath","prevArgs","graph","reversedXAxis","reversed","reversedYAxis","stackedYLength","stackedYData","getExtremes","getClassName","stickyTracking","drawLegendSymbol","LegendSymbolMixin","drawRectangle","arrayMax","arrayMin","animationLimit","fillOpacity","radiusPlus","softThreshold","turboThreshold","zThreshold","zoneAxis","parallelArrays","specialGroup","bubblePadding","setOpacity","getRadii","zMin","zMax","zData","sizeByArea","sizeBy","zRange","sizeByAbsoluteValue","animationTarget","scatter","minPxSize","dlBox","buildKDTree","applyZones","ttBelow","beforePadding","axisLength","pxMin","pxMax","dataKey","extremes","smallestSize","plotWidth","plotHeight","activeSeries","seriesOptions","ignoreHiddenSeries","allowZoomOutside","isPercent","maxPxSize","grep","displayNegative","isLog","pointerProto","Pointer","polarExtended","searchPointByAngle","searchKDTree","chartX","chartY","getConnectors","calculateNeighbours","prevPointInd","previousPoint","nextPoint","leftContX","leftContY","rightContX","rightContY","dLControlPoint","dRControlPoint","leftContAngle","rightContAngle","jointAngle","smoothing","denom","addedNumber","prevPointCont","kdByAngle","searchPoint","findNearestPointBy","toXY","polarPlotX","areasplinerange","preventPostTranslate","hasClipCircleSetter","circ","clipCircle","setClip","firstValid","popLastPoint","polarAnimate","attribs","markerGroup","isSVG","alignTo","isNew","SVGRenderer","wrapper","uniqueKey","clipPath","Chart","createSVGRect","opera","deg2rad","hasBidiBug","hasTouch","isMS","isWebKit","isChrome","isTouchDevice","SVG_NS","chartCount","symbolSizes","marginNames","timers","dSetter","toD","stopped","curAnim","objectEach","initPath","fillSetter","strokeSetter","tweenTo","isClass","isDOMElement","erase","syncTimeout","extendClass","relativeLength","datePropsToTimestamps","formatSingle","dateFormat","getMagnitude","LN10","normalizeTickInterval","stableSort","safeI","destroyObjectProperties","discardElement","garbageBin","setAnimation","globalAnimation","animObject","timeUnits","millisecond","second","minute","week","easeInOutSine","getStyle","indexOfPolyfill","filterPolyfill","somePolyfill","keysPolyfill","reducePolyfill","clientTop","clientLeft","forEachPolyfill","addEventListenerPolyfill","protoEvents","hcEvents","runTrackerClick","removeEvent","removeEventListenerPolyfill","getOptions","parsers","white","black","brighten","textProps","complexColor","radialGradient","gradients","radialReference","getRadialAttr","radAttr","gradient","applyTextOutline","getContrast","fakeTS","ySetter","xSetter","_defaultGetter","symbolName","symbolAttr","doTransform","_defaultSetter","shadows","updateShadows","afterSetters","updateTransform","cutHeight","crisp","textWidth","forExport","namespaceURI","textOutline","touchEventFired","setRadialReference","matrix","rotationOriginX","rotationOriginY","toFront","alignedObjects","alignOptions","alignByTranslate","placed","alignAttr","textStr","cacheKeys","htmlGetBBox","parentGroup","parentInverted","handleZ","zIndexSetter","onAdd","safeRemoveChild","ownerSVGElement","onmouseout","onmouseover","onmousemove","destroyShadows","xGetter","dashstyleSetter","alignSetter","alignValue","opacitySetter","titleSetter","textSetter","bBox","visibilitySetter","yGetter","translateXSetter","translateYSetter","rotationSetter","verticalAlignSetter","rotationOriginXSetter","rotationOriginYSetter","scaleXSetter","scaleYSetter","matrixSetter","hasStroke","boxWrapper","allowHTML","imgCount","unSubPixelFix","cy","truncate","getSubStringLength","getSpanWidth","actualWidth","escapes","textCache","crispLine","rSetter","rx","ry","image","Image","imgwidth","imgheight","isImg","chartIndex","square","triangle","diamond","callout","anchorX","anchorY","rotCorr","hasBoxWidthChanged","widthSetter","heightSetter","paddingSetter","paddingLeftSetter","anchorXSetter","anchorYSetter","Renderer","htmlCss","htmlUpdateTransform","invertChild","oldTextWidth","textPxLength","cTT","oldRotation","oldAlign","setSpanRotation","getSpanCorrection","xCorr","yCorr","alignOnAdd","getTransformKey","transformOrigin","addedSetters","classSetter","Time","useUTC","timezoneOffset","timezoneOffsetFunction","variableTimezone","timezone","makeTime","tz","utcOffset","invalidDate","weekdays","shortWeekdays","shortMonths","dateFormats","resolveDTLFormat","getTimeTicks","unitRange","higherRanks","totalRange","numericSymbols","resetZoomTitle","defaultSeriesType","resetZoomButton","plotBorderColor","widthAdjust","subtitle","alignColumns","labelFormatter","navigation","activeColor","inactiveColor","itemStyle","itemHoverStyle","itemHiddenStyle","itemCheckboxStyle","squareSymbol","symbolPadding","labelStyle","dateTimeLabelFormats","snap","isNewLabel","tickmarkOffset","addLabel","isDatetimeAxis","unitName","isFirst","isLast","formatCtx","dateTimeLabelFormat","tickPositionInfo","lin2log","shortenLabel","getSlotWidth","labelGroup","getLabelSize","handleOverflow","labelLeft","labelRight","labelAlign","autoRotation","oldChartHeight","transB","oldChartWidth","getLabelPosition","staggerLines","tickRotCorr","reserveSpaceDefault","labelOffset","getMarkPath","renderGridLine","gridLine","gridGroup","renderMark","tickSize","axisGroup","renderLabel","showFirstLabel","endOnTick","startOfWeek","startOnTick","tickPixelInterval","tickmarkPlacement","minorGridLineColor","minorTickColor","gridLineColor","tickColor","stackLabels","allowOverlap","defaultLeftAxisOptions","defaultRightAxisOptions","defaultBottomAxisOptions","defaultTopAxisOptions","isZAxis","defaultLabelFormatter","zoomEnabled","hasNames","plotLinesAndBandsGroups","positiveValuesOnly","allowNegativeLog","ticks","labelEdge","minorTicks","plotLinesAndBands","alternateBands","minRange","userMinRange","maxZoom","oldStacks","stacksTouched","crosshair","crosshairs","linearToLogConverter","val2lin","log2lin","lin2val","numericSymbolMagnitude","getSeriesExtremes","hasVisibleSeries","buildStacks","xData","oldTransA","oldMin","isOrdinal","isBroken","toValue","getLinearTickPositions","getMinorTickInterval","getMinorTickPositions","pointRangePadding","paddedTicks","getLogTickPositions","normalizeTimeTickInterval","trimTicks","adjustForMinRange","xIncrement","getClosest","nameToX","requireSorting","uniqueNames","autoIncrement","updateNames","isDirtyData","axisPointRange","pointPlacement","ordinalSlope","translationSlope","staticScale","minFromRange","setTickInterval","getTickAmount","userMin","usePercentage","softMin","softMax","ceiling","tickAmount","oldMax","postProcessTickInterval","minTickInterval","allowDecimals","unsquish","setTickPositions","tickPositioner","ordinalPositions","adjustTickAmount","alignToOthers","alignTicks","finalTickAmt","hasData","oldAxisLength","forceRedraw","oldUserMin","oldUserMax","resetStacks","cleanStacks","setExtremes","kdTree","eventArgs","displayBtn","getThreshold","autoLabelAlign","labelMetrics","autoRotationLimit","labelRotation","slotWidth","renderUnsquish","maxLabelLength","specificTextOverflow","addTitle","axisTitle","generateTick","clipOffset","axisParent","showAxis","showEmpty","gridZIndex","reserveSpace","titleOffset","renderLine","axisTitleMargin","getMaxLabelDimensions","maxLabelDimensions","axisLine","renderMinorTick","hasRendered","renderTick","alternateGridColor","PlotLineOrBand","_addedPlotLB","addPlotBandOrLine","isPlaced","renderStackTotals","keepProps","keepEvents","drawCrosshair","cross","crosshairPos","stackY","hideCrosshair","_minorAutoInterval","svgElem","isFlat","addPlotBand","addPlotLine","removePlotBandOrLine","removePlotBand","removePlotLine","outside","cleanSplit","getLabel","hideTimer","tooltipTimeout","hideDelay","getAnchor","pointer","chartPosition","defaultFormatter","tooltipFooterHeaderFormatter","bodyFormatter","tooltipOptions","getLabelConfig","renderSplit","spacingBox","colorIndex","updatePosition","isHeader","scrollablePixels","distribute","positioner","getDateFormat","getXDateFormat","xDateFormat","tooltipDateKeys","formatPrefix","tooltipFormatter","runChartClick","pinchDown","lastValidTouch","followTouchMove","setDOMEvents","zoomOption","pinchType","zoomX","zoomY","zoomHor","zoomVert","hasZoom","getCoordinates","findNearestKDPoint","distX","getPointFromEvent","getChartCoordinatesFromPoint","getHoverData","isBoosting","enableMouseTracking","hoverPoint","hoverSeries","hoverPoints","runPointActions","isDirectTouch","onMouseOver","firePointEvent","unDocMouseMove","hoverChartIndex","onDocumentMouseMove","isCartesian","onMouseOut","hoverX","scaleGroups","getPlotBox","dataLabelsGroup","clipBox","mouseIsDown","cancelClick","mouseDownX","mouseDownY","drag","selectionMarker","panKey","hasDragged","isInsidePlot","hasCartesianSeries","selectionMarkerFill","panning","pan","hasPinched","originalEvent","_cursor","onContainerMouseDown","onDocumentMouseUp","inClass","onContainerMouseLeave","toElement","onContainerMouseMove","openMenu","onTrackerMouseOut","onContainerClick","unbindContainerMouseLeave","unbindDocumentMouseUp","onContainerTouchStart","ontouchmove","onContainerTouchMove","unbindDocumentTouchEnd","onDocumentTouchEnd","pinchTranslate","pinchTranslateDirection","pinch","initiated","plotBox","MSPointerEvent","MSPOINTER_TYPE_TOUCH","onContainerPointerDown","onContainerPointerMove","onDocumentPointerUp","batchMSEvents","Legend","positionCheckboxes","proximate","unchartrender","proximatePositions","positionItems","itemMarginTop","initialItemY","symbolWidth","isDirtyLegend","isDirtyBox","colorizeItem","legendGroup","legendItem","legendLine","legendSymbol","isMarker","positionItem","isResizing","_legendItemPos","checkbox","legendWidth","destroyItem","getAllItems","clipHeight","legendHeight","titleHeight","checkboxOffset","renderTitle","contentGroup","labelFormat","renderItem","itemDistance","createCheckboxForItem","showCheckbox","scrollGroup","baseline","symbolHeight","setItemEvents","itemWidth","legendItemWidth","maxItemWidth","totalItemWidth","itemHeight","legendItemHeight","layoutItem","itemMarginBottom","itemX","itemY","lastLineHeight","lastItemY","legendItems","legendType","floating","adjustMargins","legendIndex","arrowSize","fullHeight","pageIx","symbolRadius","drawLineMarker","getArgs","labelCollectors","showAxes","pointCount","colorCounter","symbolCounter","firstRender","initSeries","orderSeries","setResponsive","temporaryDisplay","layOutTitles","updateTotals","getStacks","updateYNames","getMargins","extKey","drawChartBox","getAxes","getSelectedPoints","getSelectedSeries","isStock","getChartSize","containerWidth","containerHeight","hcOrigStyle","hcOrigDetached","hcOricDetached","setClassName","getContainer","skipClone","exporting","resetMargins","getAxisMargins","setChartSize","reflow","isPrinting","reflowTimeout","setReflow","unbindReflow","plotSizeX","plotSizeY","skipAxes","chartBackground","plotBackground","plotBorder","plotBGImage","plotBackgroundImage","propFromSeries","linkSeries","linkedSeries","renderSeries","renderLabels","addCredits","mapCredits","isReadyToRender","scrollablePlotArea","setUpScrolling","applyFixed","fixedDiv","scrollingContainer","WebkitOverflowScrolling","innerContainer","fixedRenderer","scrollableMask","scrollPositionX","applyOptions","optionsToObject","setNestedProperty","_hasPointMarkers","nonZonedColor","percentage","stackTotal","valueDecimals","valuePrefix","valueSuffix","importEvents","allowPointSelect","enabledThreshold","normal","cropThreshold","axisTypes","bindAxes","optionalAxis","updateParallelArrays","pointIntervalUnit","pointStart","pointInterval","negativeColor","negativeFillColor","getCyclic","updateData","cropped","hasGroupedData","isSeriesBoosting","getExtremesFromAll","forceCrop","cropData","cropStart","processedXData","cropShoulder","dataGroup","groupMap","startFromThreshold","pointXOffset","barW","closestPointRangePx","getValidPoints","sharedClipKey","afterAnimate","finishedAnimating","markerAttribs","hasImage","animationTimeout","survive","leftCliff","rightCliff","gappedPath","getZonesGraphs","preventGraphAnimation","fillGraph","linecap","clips","isVML","resetZones","invertGroups","kdAxisArray","buildingKdTree","kdNow","StackItem","isNegative","labelrank","getStackBox","reversedStacks","modifyStacks","stackTotalGroup","cumulative","singleStacks","percentStacker","addSeries","addAxis","loadingDiv","loadingSpan","loadingShown","showDuration","hideDuration","propsRequireDirtyBox","propsRequireUpdateSeries","isInternal","setSubtitle","connector","oldType","getStackPoints","leftNull","rightNull","isCliff","shiftUnit","groupPadding","brightness","maxPointWidth","translatedThreshold","pointAttrToOptions","takeOrdinalPosition","slicedOffset","getStartAndEndRadians","ignoreHiddenPoint","startR","asin","labelDistance","maxLabelDistance","slicedTranslation","labelPos","shadowGroup","getTranslate","sortByAngle","setVisible","sliced","reducedLen","dlOptions","contrastColor","isLabelJustified","justifyDataLabel","connectorPadding","connectorWidth","shortened","distributeBox","positionIndex","justify","_attr","sideOverflow","verifyDataLabelOverflow","placeDataLabels","connectorColor","connectorPath","softConnector","hideOverlappingLabels","oldOpacity","newOpacity","absoluteBox","isOld","_hasTracking","drawTrackerGraph","tracker","browserEvent","defaultChecked","showResetZoom","zoomOut","resetSelection","accumulate","hasImportedEvents","currentSymbol","mouseOut","currentResponsive","matchResponsiveRule","ruleIds","undoOptions","mergedOptions","PieSeries","ColumnSeries","ddSeriesId","drillUpText","activeAxisLabelStyle","activeDataLabelStyle","drillUpButton","addSeriesAsDrilldown","addSingleSeriesAsDrilldown","applyDrilldown","ddOptions","newSeries","pointIndex","levelNumber","colorProp","oldSeries","levelSeries","levelSeriesOptions","drilldownLevels","_levelNumber","_ddSeriesId","isDrilling","_colorIndex","lowerSeriesOptions","pointOptions","oldExtremes","xMin","xMax","yMin","yMax","lowerSeries","animateDrilldown","levelToRemove","showDrillUpButton","getDrilldownBackText","lastLevel","backText","buttonOptions","drillUp","seriesI","chartSeries","addedSeries","animateDrillupTo","drilldownLevel","animateDrillupFrom","ddDupes","ddPoints","drillable","animateFrom","removeGroup","columnGroup","animateTo","doDrilldown","_holdRedraw","getDDPoints","drilldownCategory","isDrillable","ddPointsX","basicStyles","allowPointDrilldown","dataLabelsOptions","pointCSS","applyCursorCSS","noGlobal","getProto","class2type","hasOwn","fnToString","ObjectFunctionString","support","isWindow","preservedScriptAttributes","noModule","DOMEval","script","toType","rhtmlSuffix","isArrayLike","pushStack","elems","prevObject","even","_elem","odd","copyIsArray","deep","expando","Ctor","isEmptyObject","globalEval","makeArray","isXMLDoc","docElem","callbackExpect","whitespace","rtrimCSS","bup","compareDocumentPosition","rcssescape","fcssescape","asCodePoint","escapeSelector","preferredDoc","pushNative","Expr","outermostContext","sortInput","hasDuplicate","documentIsHTML","rbuggyQSA","dirruns","classCache","createCache","tokenCache","compilerCache","nonnativeSelectorCache","sortOrder","booleans","pseudos","rwhitespace","rcomma","rleadingCombinator","rdescend","rpseudo","ridentifier","matchExpr","CLASS","TAG","ATTR","PSEUDO","CHILD","needsContext","rinputs","rheader","rquickExpr","rsibling","runescape","funescape","nonHex","unloadHandler","setDocument","inDisabledFieldset","addCombinator","els","nid","newSelector","newContext","testContext","toSelector","cacheLength","markFunction","createInputPseudo","createButtonPseudo","createDisabledPseudo","createPositionalPseudo","argument","matchIndexes","subWindow","getById","getElementsByName","disconnectedMatch","cssHas","attrId","getAttributeNode","sortDetached","matchesSelector","attrHandle","uniqueSort","duplicates","sortStable","createPseudo","relative","preFilter","excess","nodeNameSelector","expectedNodeName","what","_argument","ofType","outerCache","nodeIndex","useCache","pseudo","setFilters","compile","unmatched","elemLang","safeActiveElement","_matchIndexes","nth","radio","submit","parseOnly","soFar","preFilters","combinator","checkNonElements","doneName","oldCache","newCache","elementMatcher","newUnmatched","setMatcher","postFilter","postFinder","postSelector","temp","matcherOut","preMap","postMap","preexisting","multipleContexts","matcherIn","matcherFromTokens","checkContext","leadingRelative","implicitRelative","matchAnyContext","setMatchers","elementMatchers","matcherFromGroupMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","compiled","getText","isXML","rneedsContext","rsingleTag","winnow","qualifier","rootjQuery","parseHTML","rparentsprev","guaranteedUnique","prevAll","addBack","parentsUntil","nextAll","nextUntil","prevUntil","rnothtmlwhite","Identity","Thrower","adoptValue","noValue","Callbacks","createOptions","flag","firing","memory","locked","firingIndex","fire","once","stopOnFalse","lock","fireWith","Deferred","tuples","always","deferred","fns","newDefer","returned","notify","onProgress","maxDepth","mightThrow","notifyWith","resolveWith","exceptionHook","rejectWith","getErrorHook","getStackHook","stateString","singleValue","resolveContexts","resolveValues","updateFunc","rerrorNames","asyncError","readyException","readyList","readyWait","doScroll","access","chainable","emptyGet","bulk","rmsPrefix","rdashAlpha","fcamelCase","_all","letter","camelCase","acceptData","uid","dataPriv","dataUser","rbrace","rmultiDash","dataAttr","removeData","_removeData","dequeue","startLength","_queueHooks","clearQueue","pnum","rcssNum","cssExpand","composed","getRootNode","isHiddenWithinTree","adjustCSS","valueParts","tween","adjusted","cssNumber","initialInUnit","defaultDisplayMap","getDefaultDisplay","showHide","rcheckableType","rtagName","rscriptType","checkClone","noCloneChecked","wrapMap","_default","setGlobalEval","refElements","colgroup","optgroup","rhtml","buildFragment","scripts","attached","htmlPrefilter","rtypenamespace","returnTrue","returnFalse","origFn","leverageNative","isSetup","saved","isTrigger","delegateType","isImmediatePropagationStopped","handleObjIn","eventHandle","handleObj","origType","elemData","triggered","bindType","delegateCount","setup","mappedTypes","origCount","teardown","nativeEvent","handlerQueue","preDispatch","isPropagationStopped","rnamespace","postDispatch","matchedHandlers","matchedSelectors","addProp","noBubble","beforeunload","isDefaultPrevented","isSimulated","focusMappedHandler","simulate","attaches","dataHolder","related","rnoInnerhtml","rchecked","rcleanScript","manipulationTarget","disableScript","restoreScript","cloneCopyEvent","dest","udataOld","udataCur","fixInput","domManip","collection","hasScripts","iNoClone","valueIsFunction","_evalUrl","keepData","cleanData","dataAndEvents","deepDataAndEvents","srcElements","destElements","inPage","prepend","rnumnonpx","rcustomProp","getStyles","opener","swap","rboxStyle","curCSS","computed","isCustomProp","pixelBoxStyles","addGetHookIf","conditionFn","hookFn","computeStyleTests","divStyle","pixelPositionVal","reliableMarginLeftVal","roundPixelMeasures","pixelBoxStylesVal","boxSizingReliableVal","scrollboxSizeVal","reliableTrDimensionsVal","backgroundClip","clearCloneStyle","boxSizingReliable","pixelPosition","reliableMarginLeft","scrollboxSize","reliableTrDimensions","trChild","trStyle","cssPrefixes","emptyStyle","vendorProps","finalPropName","cssProps","vendorPropName","capName","rdisplayswap","cssShow","cssNormalTransform","letterSpacing","setPositiveNumber","boxModelAdjustment","dimension","isBorderBox","computedVal","marginDelta","getWidthOrHeight","valueIsBorderBox","offsetProp","Tween","cssHooks","animationIterationCount","borderImageSlice","gridArea","gridColumn","gridColumnEnd","gridColumnStart","gridRow","gridRowEnd","gridRowStart","orphans","widows","floodOpacity","stopOpacity","strokeMiterlimit","strokeOpacity","origName","scrollboxSizeBuggy","expand","expanded","propHooks","eased","fx","linear","swing","fxNow","inProgress","rfxtypes","rrun","tick","createFxNow","genFx","includeWidth","createTween","tweeners","prefilters","tweens","specialEasing","originalProperties","originalOptions","gotoEnd","propFilter","tweener","defaultPrefilter","oldfire","propTween","restoreDisplay","isBox","dataShow","unqueued","prefilter","speed","speeds","fadeTo","optall","doAnimation","stopQueue","cssFn","slideDown","slideUp","slideToggle","fadeToggle","slow","fast","checkOn","optSelected","radioValue","boolHook","nType","attrHooks","attrNames","lowercaseName","rfocusable","rclickable","stripAndCollapse","getClass","classesToArray","removeProp","propFix","classNames","curValue","finalValue","stateVal","isValidValue","rreturn","valHooks","optionSet","rquery","parseXML","parserErrorElem","DOMParser","parseFromString","rfocusMorph","stopPropagationCallback","onlyHandlers","bubbleType","ontype","lastElement","eventPath","parentWindow","triggerHandler","rCRLF","rsubmitterTypes","rsubmittable","buildParams","valueOrFunction","serializeArray","r20","rhash","rantiCache","rheaders","rnoContent","rprotocol","transports","allTypes","originAnchor","addToPrefiltersOrTransports","dataTypeExpression","dataTypes","inspectPrefiltersOrTransports","inspected","seekingTransport","inspect","prefilterOrFactory","dataTypeOrTransport","ajaxExtend","flatOptions","ajaxSettings","lastModified","etag","isLocal","contentType","accepts","responseFields","converters","ajaxSetup","ajaxPrefilter","ajaxTransport","cacheURL","responseHeadersString","responseHeaders","timeoutTimer","urlAnchor","fireGlobals","uncached","callbackContext","globalEventContext","completeDeferred","statusCode","requestHeadersNames","strAbort","overrideMimeType","mimeType","finalText","crossDomain","hasContent","ifModified","nativeStatusText","responses","isSuccess","ajaxHandleResponses","finalDataType","firstDataType","ajaxConvert","conv2","conv","dataFilter","throws","getJSON","getScript","wrapAll","wrapInner","htmlIsFunction","unwrap","xhrSuccessStatus","xhrSupported","cors","errorCallback","xhrFields","ontimeout","onreadystatechange","scriptAttrs","scriptCharset","oldCallbacks","rjsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","keepScripts","animated","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","curElem","using","parentOffset","defaultExtra","funcName","unbind","undelegate","fnOver","fnOut","rtrim","proxy","holdReady","hold","parseJSON","__WEBPACK_AMD_DEFINE_RESULT__","_jQuery","_$","noConflict","getTypeOf","uint8array","compressedSize","uncompressedSize","crc32","compressedContent","getContentWorker","uncompressWorker","streamInfo","data_length","getCompressedWorker","withStreamInfo","createWorkerFrom","compressWorker","STORE","magic","DEFLATE","createFolders","compressionOptions","unixPermissions","dosPermissions","lie","Uint32Array","_pako","_pakoAction","_pakoOptions","inherits","processChunk","_createPako","transformTo","cleanUp","onData","pako","utf8encode","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCFullYear","getUTCMonth","getUTCDate","fileRecord","LOCAL_FILE_HEADER","dirRecord","CENTRAL_FILE_HEADER","bytesWritten","zipComment","zipPlatform","encodeFileName","streamFiles","contentBuffer","dirRecords","currentSourceOffset","entriesCount","currentFile","_sources","openedSource","closedSource","DATA_DESCRIPTOR","CENTRAL_DIRECTORY_END","prepareNextSource","isPaused","resume","registerPrevious","generatedError","generateWorker","_compressWorker","external","decompressed","checkCRC32","optimizedBinaryString","decodeFileName","isStream","prepareContent","fileNameStr","fileCommentStr","unsafeOriginalName","_upstreamEnded","_bindStream","Readable","_helper","_read","newBufferFrom","allocBuffer","generateInternalStream","checkSupport","generateNodeStream","toNodejsStream","byteAt","zero","lastIndexOfSignature","readAndCheckSignature","readData","checkOffset","checkIndex","setIndex","readInt","readString","readDate","ZIP64_CENTRAL_DIRECTORY_LOCATOR","ZIP64_CENTRAL_DIRECTORY_END","destType","propName","dataIsReady","_tickScheduled","_tickAndRepeat","isFinished","_tick","extraStreamInfo","isLocked","mergeStreamInfo","nodestream","_internalType","_outputType","_mimeType","_worker","newBlob","objectMode","arraybuffer","BlobBuilder","WebKitBlobBuilder","MozBlobBuilder","MSBlobBuilder","getBlob","leftOver","applyFromCharCode","Utf8DecodeWorker","Utf8EncodeWorker","stringifyByChunk","stringifyByChar","applyCanBeUsed","MAX_VALUE_16BITS","MAX_VALUE_32BITS","pretty","setimmediate","loadOptions","checkSignature","isSignature","readBlockEndOfCentral","diskNumber","diskWithCentralDirStart","centralDirRecordsOnThisDisk","centralDirRecords","centralDirSize","centralDirOffset","zipCommentLength","readBlockZip64EndOfCentral","zip64EndOfCentralSize","zip64ExtensibleData","readBlockZip64EndOfCentralLocator","diskWithZip64CentralDirStart","relativeOffsetEndOfZip64CentralDir","disksCount","readLocalFiles","localHeaderOffset","readLocalPart","handleUTF8","processAttributes","readCentralDir","zip64","readCentralPart","readEndOfCentral","prepareReader","isEncrypted","bitFlag","useUTF8","fileNameLength","compressionMethod","versionMadeBy","extraFieldsLength","fileCommentLength","diskNumberStart","internalFileAttributes","externalFileAttributes","readExtraFields","parseZIP64ExtraField","fileComment","extraFields","findExtraFieldUnicodePath","findExtraFieldUnicodeComment","_dataBinary","internalStream","_decompressWorker","nodeStream","WebKitMutationObserver","MessageChannel","port1","onmessage","port2","postMessage","outcome","callFulfilled","otherCallFulfilled","callRejected","otherCallRejected","finally","race","chunkSize","windowBits","memLevel","gzip","ended","strm","avail_out","deflateInit2","deflateSetHeader","dictionary","string2buf","deflateSetDictionary","_dict_set","next_in","avail_in","output","Buf8","next_out","deflate","onEnd","buf2binstring","shrinkBuf","deflateEnd","flattenChunks","Deflate","deflateRaw","inflateInit2","Z_OK","inflateGetHeader","Z_FINISH","Z_NO_FLUSH","binstring2buf","Z_NEED_DICT","inflateSetDictionary","Z_BUF_ERROR","Z_STREAM_END","Z_SYNC_FLUSH","utf8border","buf2string","arraySet","inflateEnd","Inflate","inflateRaw","ungzip","setTyped","Buf16","Buf32","Z_PARTIAL_FLUSH","Z_FULL_FLUSH","Z_BLOCK","Z_TREES","Z_ERRNO","Z_STREAM_ERROR","Z_DATA_ERROR","Z_NO_COMPRESSION","Z_BEST_SPEED","Z_BEST_COMPRESSION","Z_DEFAULT_COMPRESSION","Z_FILTERED","Z_HUFFMAN_ONLY","Z_RLE","Z_FIXED","Z_DEFAULT_STRATEGY","Z_BINARY","Z_TEXT","Z_UNKNOWN","Z_DEFLATED","pending_buf","pending_out","total_out","_tr_flush_block","block_start","strstart","max_chain_length","prev_length","nice_match","w_size","w_mask","good_match","lookahead","match_start","window_size","hash_size","adler","total_in","ins_h","hash_shift","hash_mask","match_length","_tr_tally","max_lazy_match","last_lit","prev_match","match_available","good_length","max_lazy","nice_length","max_chain","pending_buf_size","gzhead","gzindex","last_flush","w_bits","hash_bits","dyn_ltree","dyn_dtree","bl_tree","l_desc","d_desc","bl_desc","heap_len","heap_max","l_buf","lit_bufsize","d_buf","opt_len","static_len","bi_buf","bi_valid","data_type","_tr_init","deflateInit","deflateReset","deflateResetKeep","hcrc","_tr_align","_tr_stored_block","deflateInfo","xflags","extra_len","wsize","whave","wnext","lencode","distcode","lenbits","distbits","sane","havedict","wbits","ncode","nlen","ndist","have","lendyn","distdyn","was","inflateReset","inflateReset2","inflateResetKeep","inflateInit","inflateInfo","static_tree","extra_bits","extra_base","max_length","has_stree","dyn_tree","max_code","stat_desc","nextTick","importScripts","attachEvent","clearImmediate","defineLocale","monthsShort","weekdaysShort","weekdaysMin","meridiemParse","isPM","meridiem","hours","minutes","isLower","longDateFormat","LTS","LL","LLL","LLLL","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","relativeTime","past","MM","dayOfMonthOrdinalParse","ordinal","doy","pluralForm","plurals","pluralize","withoutSuffix","isFuture","weekdaysParseExact","postformat","symbolMap","preparse","numberMap","suffixes","relativeTimeWithPlural","forms","standalone","isFormat","lastDigit","last2Digits","meridiemHour","monthsShortRegex","monthsParseExact","relativeTimeWithMutation","mutation","softMutation","mutationTable","lastNumber","monthsParse","monthsRegex","minWeekdaysParse","weekdaysParse","fullWeekdaysParse","shortWeekdaysParse","monthsStrictRegex","monthsShortStrictRegex","longMonthsParse","shortMonthsParse","specialMutationForYears","lll","llll","processRelativeTime","monthsNominativeEl","monthsGenitiveEl","momentToFormat","_monthsGenitiveEl","_monthsNominativeEl","calendarEl","mom","_calendarEl","monthsShortDot","numbersPast","numbersFuture","verbalNumber","monthsShortWithDots","monthsShortWithoutDots","weekEndings","since","abbr","eraYearOrdinalRegex","eraYearOrdinalParse","isUpper","eifelerRegelAppliesToNumber","processFutureTime","processPastTime","translateSingular","translateSeconds","relativeTimeWithSingular","relativeSeconds","translator","correctGrammaticalCase","wordKey","relativeTimeMr","monthsNominative","monthsSubjective","numbersNouns","numberNoun","numberAsNoun","hundred","ten","translateFuture","translatePast","processHoursFunction","weekdaysCaseReplace","nominative","accusative","genitive","hookCallback","hasOwnProp","isObjectEmpty","arrLen","createUTC","createLocalOrUTC","getParsingFlags","_pf","unusedTokens","unusedInput","charsLeftOver","nullInput","invalidEra","invalidMonth","invalidFormat","userInvalidated","parsedDateParts","era","rfc2822","weekdayMismatch","_isValid","parsedParts","isNowValid","invalidWeekday","_strict","bigHour","createInvalid","fun","momentProperties","updateInProgress","copyConfig","momentPropertiesLen","_isAMomentObject","_tzm","_isUTC","_offset","_locale","Moment","updateOffset","isMoment","suppressDeprecationWarnings","deprecate","deprecationHandler","argLen","deprecations","deprecateSimple","mergeConfigs","parentConfig","Locale","zeroFill","targetLength","forceSign","absNumber","formattingTokens","localFormattingTokens","formatFunctions","formatTokenFunctions","addFormatToken","padded","localeData","removeFormattingTokens","formatMoment","expandFormat","makeFormatFunction","replaceLongDateFormatTokens","aliases","addUnitAlias","shorthand","lowerCase","normalizeUnits","normalizeObjectUnits","inputObject","normalizedInput","priorities","addUnitPriority","priority","isLeapYear","absFloor","toInt","argumentForCoercion","coercedNumber","makeGetSet","keepTime","set$1","daysInMonth","regexes","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchOffset","matchShortOffset","matchWord","addRegexToken","strictRegex","isStrict","getParseRegexForToken","unescapeFormat","regexEscape","p1","p2","p3","p4","addParseToken","tokenLen","addWeekParseToken","_w","addTimeToArrayFromToken","YEAR","MONTH","DATE","HOUR","MINUTE","MILLISECOND","WEEK","WEEKDAY","modMonth","defaultLocaleMonths","defaultLocaleMonthsShort","MONTHS_IN_FORMAT","defaultMonthsShortRegex","defaultMonthsRegex","handleStrictParse","monthName","llc","_monthsParse","_longMonthsParse","_shortMonthsParse","dayOfMonth","getSetMonth","computeMonthsParse","cmpLenRev","shortPieces","longPieces","mixedPieces","_monthsRegex","_monthsShortRegex","_monthsStrictRegex","_monthsShortStrictRegex","daysInYear","parseTwoDigitYear","getSetYear","createDate","createUTCDate","setUTCFullYear","firstWeekOffset","fwd","getUTCDay","dayOfYearFromWeeks","weekday","resYear","resDayOfYear","dayOfYear","weekOfYear","resWeek","weekOffset","weeksInYear","weekOffsetNext","shiftWeekdays","weekdaysMinRegex","weekdaysShortRegex","weekdaysRegex","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","defaultWeekdaysRegex","defaultWeekdaysShortRegex","defaultWeekdaysMinRegex","handleStrictParse$1","weekdayName","_weekdaysParse","_shortWeekdaysParse","_minWeekdaysParse","computeWeekdaysParse","minp","shortp","longp","minPieces","_weekdaysRegex","_weekdaysShortRegex","_weekdaysMinRegex","_weekdaysStrictRegex","_weekdaysShortStrictRegex","_weekdaysMinStrictRegex","hFormat","lowercase","matchMeridiem","_meridiemParse","kFormat","seconds","kInput","_isPm","_meridiem","pos1","pos2","getSetHour","globalLocale","baseConfig","locales","localeFamilies","commonPrefix","arr1","arr2","minl","normalizeLocale","loadLocale","oldLocale","isLocaleNameSane","_abbr","aliasedRequire","getSetGlobalLocale","getLocale","_config","parentLocale","chooseLocale","checkOverflow","_overflowDayOfYear","_overflowWeeks","_overflowWeekday","extendedIsoRegex","basicIsoRegex","tzRegex","isoDates","isoTimes","aspNetJsonRegex","obsOffsets","UT","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","configFromISO","allowTime","tzFormat","isoDatesLen","isoTimesLen","configFromStringAndFormat","untruncateYear","yearStr","configFromRFC2822","parsedArray","preprocessRFC2822","extractFromRFC2822Strings","monthStr","dayStr","hourStr","minuteStr","secondStr","checkWeekday","weekdayStr","parsedInput","calculateOffset","obsOffset","militaryOffset","numOffset","setUTCMinutes","configFromArray","expectedWeekday","yearToUse","currentDateArray","nowValue","_useUTC","dayOfYearFromWeekInfo","weekYear","weekdayOverflow","curWeek","GG","createLocal","_week","_dayOfYear","_nextDay","ISO_8601","RFC_2822","stringLength","totalParsedInputLength","meridiemFixWrap","isPm","erasConvertYear","prepareConfig","configFromStringAndArray","tempConfig","bestMoment","scoreToBeat","currentScore","validFormatFound","bestFormatIsValid","configfLen","configFromInput","configFromString","createFromInputFallback","configFromObject","isUTC","createFromConfig","prototypeMin","prototypeMax","pickBy","moments","ordering","Duration","years","quarters","quarter","weeks","isoWeek","milliseconds","isDurationValid","unitHasDecimal","orderLen","_milliseconds","_days","_months","_bubble","isDuration","absRound","offsetFromString","chunkOffset","cloneWithOffset","getDateOffset","isUtc","aspNetRegex","isoRegex","createDuration","diffRes","parseIso","momentsDifference","isBefore","positiveMomentsDifference","inp","isAfter","createAdder","addSubtract","isAdding","createInvalid$1","isMomentInput","isNumberOrStringArray","arrayTest","dataTypeTest","isMomentInputObject","objectTest","propertyTest","propertyLen","monthDiff","wholeMonthDiff","newLocaleData","defaultFormat","defaultFormatUtc","MS_PER_SECOND","MS_PER_MINUTE","MS_PER_HOUR","MS_PER_400_YEARS","mod$1","dividend","divisor","localStartOfDate","utcStartOfDate","matchEraAbbr","erasAbbrRegex","computeErasParse","abbrPieces","namePieces","narrowPieces","_erasRegex","_erasNameRegex","_erasAbbrRegex","_erasNarrowRegex","addWeekYearFormatToken","getSetWeekYearHelper","weeksTarget","setWeekAll","dayOfYearData","matchEraName","erasNameRegex","matchEraNarrow","erasNarrowRegex","erasParse","matchEraYearOrdinal","_eraYearOrdinalRegex","isoWeekYear","_dayOfMonthOrdinalParse","_ordinalParse","_dayOfMonthOrdinalParseLenient","getSetDayOfMonth","getSetMinute","getSetMillisecond","getSetSecond","parseMs","preParsePostFormat","calendar$1","isCalendarSpec","sod","startOf","calendarFormat","asFloat","zoneDelta","endOf","startOfDate","isoWeekday","inputString","humanize","toNow","stringGet","invalidAt","localInput","isBetween","inclusivity","localFrom","localTo","isSame","inputMs","isSameOrAfter","isSameOrBefore","isValid$2","parsingFlags","stringSet","prioritized","getPrioritizedUnits","unitsObj","prioritizedLen","toObject","keepOffset","unix","creationData","eraName","getEraName","eraNarrow","getEraNarrow","eraAbbr","getEraAbbr","eraYear","getEraYear","getIsLeapYear","getSetWeekYear","getSetISOWeekYear","getSetQuarter","getDaysInMonth","getSetWeek","isoWeeks","getSetISOWeek","getWeeksInYear","weekInfo","weeksInWeekYear","getWeeksInWeekYear","isoWeeksInYear","getISOWeeksInYear","isoWeeksInISOWeekYear","getISOWeeksInISOWeekYear","getSetDayOfWeek","parseWeekday","getSetLocaleDayOfWeek","getSetISODayOfWeek","parseIsoWeekday","getSetDayOfYear","getSetOffset","keepLocalTime","keepMinutes","localAdjust","_changeInProgress","setOffsetToUTC","setOffsetToLocal","parseZone","setOffsetToParsedOffset","tZone","hasAlignedHourOffset","isDST","isDaylightSavingTime","isUtcOffset","zoneAbbr","getZoneAbbr","zoneName","getZoneName","dates","getSetZone","isDSTShifted","isDaylightSavingTimeShifted","_isDSTShifted","compareArrays","array1","array2","dontConvert","lengthDiff","diffs","proto$1","get$1","listMonthsImpl","listWeekdaysImpl","localeSorted","_longDateFormat","formatUpper","_invalidDate","_ordinal","_relativeTime","pastFuture","localeEras","_eras","localeErasParse","localeErasConvertYear","localeMonths","localeMonthsShort","_monthsShort","localeMonthsParse","_monthsParseExact","localeWeek","firstDayOfYear","localeFirstDayOfYear","localeFirstDayOfWeek","localeWeekdays","_weekdays","localeWeekdaysMin","_weekdaysMin","localeWeekdaysShort","_weekdaysShort","localeWeekdaysParse","_weekdaysParseExact","_fullWeekdaysParse","localeIsPM","localeMeridiem","langData","mathAbs","addSubtract$1","absCeil","daysToMonths","monthsToDays","makeAs","asMilliseconds","asSeconds","asMinutes","asHours","asDays","asWeeks","asMonths","asQuarters","asYears","makeGetter","thresholds","substituteTimeAgo","abs$1","toISOString$1","totalSign","ymSign","daysSign","hmsSign","proto$2","isValid$1","add$1","subtract$1","valueOf$1","bubble","monthsFromDays","clone$1","get$2","argWithSuffix","argThresholds","withSuffix","relativeTime$1","posNegDuration","toIsoString","setHookCallback","createUnix","listMonths","listWeekdays","createInZone","listMonthsShort","listWeekdaysMin","updateLocale","tmpLocale","listLocales","listWeekdaysShort","relativeTimeRounding","getSetRelativeTimeRounding","roundingFunction","relativeTimeThreshold","getSetRelativeTimeThreshold","getCalendarFormat","myMoment","HTML5_FMT","DATETIME_LOCAL","DATETIME_LOCAL_SECONDS","DATETIME_LOCAL_MS","TIME","TIME_SECONDS","TIME_MS","_isScalar","sink","toSubscriber","rxSubscriberSymbol","emptyObserver","syncErrorThrowable","_trySubscribe","syncErrorThrown","syncErrorValue","canReportError","promiseCtor","getPromiseCtor","Symbol_observable","operations","pipeFromArray","toPromise","hostReportError","SubjectSubscription","subscriberIndex","SubjectSubscriber","AnonymousSubject","destinationOrNext","SafeSubscriber","_parentOrParents","_parentSubscriber","__tryOrSetError","__tryOrUnsub","useDeprecatedSynchronousErrorHandling","wrappedComplete","UnsubscriptionError","UnsubscriptionErrorImpl","_subscriptions","_ctorUnsubscribe","flattenUnsubscriptionErrors","subscriptionIndex","errs","_enable_super_gross_mode_that_will_cause_bad_things","subjectFactory","_refCount","_isComplete","getSubject","_subject","connect","connection","_connection","ConnectableSubscriber","higherOrderRefCount","connectableObservableDescriptor","connectableProto","connectable","isInteropObservable","scheduleObservable","isPromise","schedulePromise","isIterable","Symbol_iterator","scheduleIterable","subscribeToArray","MapOperator","MapSubscriber","concurrent","POSITIVE_INFINITY","MergeMapOperator","MergeMapSubscriber","hasCompleted","ish","RefCountOperator","refCounter","RefCountSubscriber","sharedConnection","getSymbolIterator","rxSubscriber","ObjectUnsubscribedErrorImpl","subscribeToObservable","subscribeToPromise","iterable","subscribeToIterable","webpackContext","_DOM","getDOM","setRootDomAdapter","adapter","DomAdapter","PlatformLocation","useBrowserPlatformLocation","BrowserPlatformLocation","_location","_history","getBaseHrefFromDOM","onPopState","onHashChange","newPath","pushState","supportsState","createBrowserPlatformLocation","joinWithSlash","slashes","endsWith","stripTrailingSlash","pathEndIdx","normalizeQueryParams","APP_BASE_HREF","_platformLocation","_removeListenerFns","_baseHref","includeHash","externalUrl","_urlChangeListeners","_urlChangeSubscription","_locationStrategy","baseHref","_basePath","_stripOrigin","_stripIndexHtml","_stripBasePath","basePath","strippedUrl","_notifyUrlChangeListeners","onUrlChange","fnIndex","onNext","onThrow","onReturn","createLocation","CURRENCIES_EN","ADP","AFN","ALL","AMD","AOA","ARS","AUD","AZN","BAM","BBD","BDT","BHD","BIF","BMD","BND","BOB","BRL","BSD","BWP","BYN","BYR","BZD","CAD","CHF","CLF","CLP","CNY","COP","CRC","CUC","CUP","CZK","DJF","DKK","DOP","EGP","ESP","EUR","FJD","FKP","GBP","GEL","GHS","GIP","GNF","GTQ","GYD","HKD","HNL","HRK","HUF","IDR","ILS","INR","IQD","IRR","ISK","ITL","JMD","JOD","JPY","KHR","KMF","KPW","KRW","KWD","KYD","KZT","LAK","LBP","LKR","LRD","LTL","LUF","LVL","LYD","MGA","MGF","MMK","MNT","MRO","MUR","MXN","MYR","NAD","NGN","NIO","NOK","NPR","NZD","OMR","PHP","PKR","PLN","PYG","RON","RSD","RUB","RWF","SBD","SEK","SGD","SHP","SLE","SLL","SOS","SRD","SSP","STD","STN","SYP","THB","TMM","TND","TRL","TRY","TTD","TWD","TZS","UAH","UGX","USD","UYI","UYU","UYW","UZS","VEF","VND","VUV","XAF","XCD","XOF","XPF","XXX","YER","ZAR","ZMK","ZMW","ZWD","NumberFormatStyle","Decimal","Plural","Zero","One","Two","Few","Many","FormStyle","Standalone","TranslationWidth","Narrow","Abbreviated","Wide","Short","FormatWidth","Long","Full","NumberSymbol","PercentSign","PlusSign","MinusSign","Exponential","SuperscriptingExponent","PerMille","TimeSeparator","CurrencyDecimal","CurrencyGroup","WeekDay","Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","getLocaleId","ɵfindLocaleData","ɵLocaleDataIndex","getLocaleDayPeriods","formStyle","amPm","getLastDefinedValue","getLocaleDayNames","getLocaleMonthNames","getLocaleEraNames","erasData","getLocaleFirstDayOfWeek","getLocaleWeekEndRange","getLocaleDateFormat","getLocaleTimeFormat","getLocaleDateTimeFormat","dateTimeFormatData","getLocaleNumberSymbol","getLocaleNumberFormat","getLocaleCurrencySymbol","getLocaleCurrencyName","getLocaleCurrencyCode","ɵgetLocaleCurrencyCode","getLocalePluralCase","ɵgetLocalePluralCase","checkFullData","getLocaleExtraDayPeriodRules","extractTime","getLocaleExtraDayPeriods","dayPeriods","getLocaleDirection","getCurrencySymbol","getLocaleCurrencies","symbolNarrow","DEFAULT_NB_OF_CURRENCY_DIGITS","getNumberOfCurrencyDigits","digits","ISO8601_DATE_REGEX","NAMED_FORMATS","DATE_FORMATS_SPLIT","ZoneWidth","ShortGMT","Extended","DateType","FullYear","Hours","Minutes","Seconds","FractionalSeconds","TranslationType","DayPeriods","Days","Months","Eras","parsedNb","isoStringToDate","tzHour","tzMin","dateSetter","timeSetter","setUTCHours","getNamedFormat","dateTimezoneOffset","timezoneToOffset","convertTimezoneToLocal","reverseValue","addDateMinutes","dateFormatter","getDateFormatter","DATE_FORMATS","dateStrGetter","dateGetter","weekNumberingYearGetter","weekGetter","timeZoneGetter","localeId","shortTime","shortDate","formatDateTime","mediumTime","mediumDate","longTime","longDate","fullTime","fullDate","opt_values","padNumber","minusSign","negWrap","neg","strNum","getDatePart","formatFractionalSeconds","localeMinus","extended","getDateTranslation","currentHours","currentMinutes","afterFrom","beforeTo","JANUARY","THURSDAY","getThursdayThisWeek","monthBased","nbDaysBefore1stDayOfMonth","thisThurs","firstThurs","getFirstThursdayOfYear","requestedTimezoneOffset","NUMBER_FORMAT_REGEXP","MAX_DIGITS","DECIMAL_SEP","ZERO_CHAR","PATTERN_SEP","GROUP_SEP","DIGIT_CHAR","CURRENCY_CHAR","PERCENT_CHAR","formatNumberToLocaleString","groupSymbol","decimalSymbol","digitsInfo","formattedText","isZero","parsedNumber","parseNumber","integerLen","zeros","numStr","exponent","toPercent","fractionLen","minInt","minFraction","minFrac","maxFraction","maxFrac","minIntPart","minFractionPart","maxFractionPart","parseIntAutoRadix","fractionSize","roundAt","digit","dropTrailingZeros","lgSize","gSize","negPre","negSuf","posPre","posSuf","formatCurrency","currencyCode","parseNumberFormat","formatPercent","patternParts","positiveParts","trunkLen","NgLocalization","LOCALE_ID","NgLocaleLocalization","getPluralCategory","ngLocalization","registerLocaleData","extraData","ɵregisterLocaleData","parseCookieValue","cookieStr","eqIndex","cookieValue","WS_REGEXP","EMPTY_ARRAY","NgClass","_iterableDiffers","_keyValueDiffers","_ngEl","initialClasses","ngClass","rawClass","ngDoCheck","_applyStateDiff","nextEnabled","stateEntry","_toggleClass","NgComponentOutlet","_viewContainerRef","ngComponentOutlet","ngComponentOutletNgModule","ngComponentOutletNgModuleFactory","ngModuleFactory","_componentRef","ngComponentOutletInjector","_moduleRef","createNgModule","getParentInjector","ngModuleRef","projectableNodes","ngComponentOutletContent","NgModuleRef","NgForOfContext","ngForOf","NgForOf","_ngForOf","_ngForOfDirty","ngForTrackBy","_trackByFn","_viewContainer","_template","_differs","_differ","ngForTemplate","_applyChanges","viewContainer","forEachOperation","adjustedPreviousIndex","currentIndex","previousIndex","applyViewChange","ilen","forEachIdentityChange","NgIfContext","_thenTemplateRef","_elseTemplateRef","_thenViewRef","_elseViewRef","ngIf","_updateView","ngIfThen","assertTemplate","ngIfElse","ɵstringify","SwitchView","_templateRef","_created","enforceState","NgSwitch","_defaultViews","_defaultUsed","_caseCount","_lastCaseCheckIndex","_lastCasesMatched","ngSwitch","_ngSwitch","_updateDefaultCases","_addCase","_addDefault","_matchCase","useDefault","NgSwitchCase","ngSwitchCase","NgSwitchDefault","NgPlural","_localization","_caseViews","ngPlural","switchView","switchValue","_clearViews","_activateView","_activeView","NgPluralCase","isANumber","NgStyle","_ngStyle","ngStyle","_setStyle","nameAndUnit","forEachRemovedItem","forEachAddedItem","forEachChangedItem","NgTemplateOutlet","_viewRef","ngTemplateOutletContext","ngTemplateOutlet","ngTemplateOutletInjector","invalidPipeArgumentError","SubscribableStrategy","createSubscription","updateLatestValue","PromiseStrategy","_promiseStrategy","_subscribableStrategy","AsyncPipe","_latestValue","_subscription","_strategy","_ref","_dispose","_selectStrategy","_updateLatestValue","ɵisSubscribable","ɵpipe","LowerCasePipe","unicodeWordMatch","TitleCasePipe","UpperCasePipe","DATE_PIPE_DEFAULT_TIMEZONE","DATE_PIPE_DEFAULT_OPTIONS","DatePipe","defaultTimezone","_INTERPOLATION_REGEXP","I18nPluralPipe","pluralMap","I18nSelectPipe","KeyValuePipe","differs","keyValues","compareFn","defaultComparator","differ","differChanges","compareFnChanged","forEachItem","makeKeyValuePair","keyValueA","keyValueB","aString","bString","DecimalPipe","isValue","strToNumber","PercentPipe","CurrencyPipe","_defaultCurrencyCode","DEFAULT_CURRENCY_CODE","SlicePipe","PLATFORM_BROWSER_ID","PLATFORM_SERVER_ID","PLATFORM_WORKER_APP_ID","PLATFORM_WORKER_UI_ID","isPlatformBrowser","platformId","isPlatformServer","isPlatformWorkerApp","isPlatformWorkerUi","VERSION","Version","ɵɵdefineInjectable","BrowserViewportScroller","supportsScrolling","elSelected","findAnchorFromDocument","documentResult","createTreeWalker","createShadowRoot","treeWalker","NodeFilter","SHOW_ELEMENT","currentNode","nextNode","scrollToElement","scrollRestoration","supportScrollRestoration","scrollRestorationDescriptor","getScrollRestorationProperty","NullViewportScroller","normalizeSrc","noopImageLoader","IMAGE_LOADER","createImageLoader","buildUrlFn","exampleUrls","isValidPath","throwInvalidPathError","normalizePath","isAbsoluteUrl","throwUnexpectedAbsoluteUrlError","provideCloudflareLoader","createCloudflareUrl","provideCloudinaryLoader","createCloudinaryUrl","provideImageKitLoader","createImagekitUrl","urlSegments","provideImgixLoader","createImgixUrl","searchParams","PRECONNECT_CHECK_BLOCKLIST","PRELOADED_IMAGES","PreloadLinkCreator","preloadedImages","createPreloadLinkTag","srcset","sizes","VALID_WIDTH_DESCRIPTOR_SRCSET","DENSITY_SRCSET_MULTIPLIERS","breakpoints","IMAGE_CONFIG","NgOptimizedImage","imageLoader","processConfig","sortedBreakpoints","Renderer2","imgElement","isServer","preloadLinkChecker","lcpObserver","_renderedSrc","_priority","_disableOptimizedSrcset","_fill","_width","inputToInteger","inputToBoolean","disableOptimizedSrcset","setHostAttributes","setHostAttribute","getLoadingBehavior","getFetchPriority","rewrittenSrc","getRewrittenSrc","rewrittenSrcset","ngSrcset","getRewrittenSrcset","shouldGenerateAutomaticSrcset","getAutomaticSrcset","callImageLoader","configWithoutCustomParams","augmentedConfig","loaderParams","ngSrc","widthSrcSet","srcStr","getResponsiveSrcset","getFixedSrcset","filteredBreakpoints","multiplier","MulticastOperator","shareSubjectFactory","getClosureSafeProperty","objWithPropertyToExtract","fillProperties","overriddenName","newLineIndex","concatStringsWithSpace","__forward_ref__","forwardRefFn","resolveForwardRef","isForwardRef","isEnvironmentProviders","XSS_SECURITY_URL","RuntimeError","formatRuntimeError","renderStringify","stringifyForError","throwProviderNotFoundError","injectorName","expected","comparison","defineInjectable","getInjectableDef","getOwnDefinition","NG_PROV_DEF","NG_INJECTABLE_DEF","isInjectable","getInjectorDef","NG_INJ_DEF","NG_INJECTOR_DEF","ngInjectableDef","ngInjectorDef","Host","Self","_injectImplementation","setInjectImplementation","impl","injectRootLimpMode","injectableDef","_global","WorkerGlobalScope","THROW_IF_NOT_FOUND","DI_DECORATOR_FLAG","NG_TEMP_TOKEN_PATH","NG_TOKEN_PATH","NEW_LINE","NO_NEW_LINE","SOURCE","_currentInjector","setCurrentInjector","former","injectInjectorOnly","getInjectImplementation","ɵɵinvalidFactoryDep","convertToBitFlags","skipSelf","injectArgs","getInjectFlag","attachInjectFlag","noSideEffects","ChangeDetectionStrategy","OnPush","ViewEncapsulation$1","Emulated","ShadowDom","EMPTY_OBJ","NG_COMP_DEF","NG_DIR_DEF","NG_PIPE_DEF","NG_MOD_DEF","NG_FACTORY_DEF","NG_ELEMENT_ID","__NG_ELEMENT_ID__","componentDefCount","componentDefinition","baseDef","getNgDirectiveDef","onPush","changeDetection","directiveDefs","pipeDefs","getStandaloneInjector","schemas","initFeatures","extractDefListOrFactory","ɵɵsetComponentScope","directives","extractDirectiveDef","getComponentDef","getDirectiveDef","nonNull","declarations","transitiveCompileScopes","ɵɵsetNgModuleScope","ngModuleDef","getNgModuleDef","invertObject","secondary","newLookup","minifiedKey","publicName","declaredName","directiveDefinition","ɵɵdefinePipe","pipeDef","getPipeDef$1","isStandalone","throwNotFound","declaredInputs","providersResolver","hostVars","hostAttrs","contentQueries","setInput","findHostDirectiveDefs","hostDirectives","defExtractor","HOST","TVIEW","FLAGS","PARENT","NEXT","TRANSPLANTED_VIEWS_TO_REFRESH","T_HOST","CLEANUP","CONTEXT","INJECTOR$1","RENDERER_FACTORY","RENDERER","SANITIZER","CHILD_HEAD","CHILD_TAIL","DECLARATION_VIEW","DECLARATION_COMPONENT_VIEW","DECLARATION_LCONTAINER","PREORDER_HOOK_FLAGS","QUERIES","EMBEDDED_VIEW_INJECTOR","HEADER_OFFSET","HAS_TRANSPLANTED_VIEWS","NATIVE","VIEW_REFS","MOVED_VIEWS","CONTAINER_HEADER_OFFSET","isLView","isLContainer","isContentQueryHost","tNode","isComponentHost","componentOffset","isDirectiveHost","isComponentDef","isRootView","getFactoryDef","SimpleChange","NgOnChangesFeatureImpl","ngOnChangesSetInput","rememberChangeHistoryAndInvokeOnChangesHook","simpleChangesStore","getSimpleChangesStore","privateName","setSimpleChangesStore","SIMPLE_CHANGES_STORE","previousChange","ngInherit","profilerCallback","setProfiler","profiler","hookOrListener","SVG_NAMESPACE","MATH_ML_NAMESPACE","unwrapRNode","getNativeByIndex","lView","getNativeByTNode","getTNode","getComponentLViewByIndex","slotValue","viewAttachedToChangeDetector","getConstant","resetPreOrderHookFlags","updateTransplantedViewCount","lContainer","amount","viewOrContainer","instructionState","lFrame","createLFrame","bindingsEnabled","getBindingsEnabled","ɵɵenableBindings","ɵɵdisableBindings","getLView","getTView","ɵɵrestoreView","viewToRestore","contextLView","ɵɵresetView","getCurrentTNode","currentTNode","getCurrentTNodePlaceholderOk","getCurrentParentTNode","setCurrentTNode","isCurrentTNodeParent","setCurrentTNodeAsNotParent","getBindingRoot","bindingRootIndex","bindingStartIndex","getBindingIndex","bindingIndex","setBindingIndex","nextBindingIndex","incrementBindingIndex","setInI18nBlock","isInI18nBlock","inI18n","setBindingRootForHostBindings","currentDirectiveIndex","setCurrentDirectiveIndex","getCurrentDirectiveDef","tData","getCurrentQueryIndex","setCurrentQueryIndex","getDeclarationTNode","declTNode","enterDI","parentTNode","parentLView","allocLFrame","enterView","newView","newLFrame","currentLFrame","childLFrame","elementDepthCount","currentNamespace","leaveViewLight","oldLFrame","leaveDI","leaveView","getSelectedIndex","setSelectedIndex","getSelectedTNode","ɵɵnamespaceSVG","ɵɵnamespaceMathML","ɵɵnamespaceHTML","namespaceHTMLInternal","registerPostOrderHooks","directiveStart","directiveEnd","lifecycleHooks","ngAfterContentChecked","contentHooks","contentCheckHooks","viewHooks","viewCheckHooks","destroyHooks","executeCheckHooks","callHooks","executeInitAndCheckHooks","initPhase","incrementInitPhaseFlags","currentView","currentNodeIndex","nodeIndexLimit","lastNodeIndexFound","callHook","isInitHook","NO_PARENT_INJECTOR","NodeInjectorFactory","isViewProvider","injectImplementation","resolving","canSeeViewProviders","injectImpl","setUpAttributes","native","attrVal","isAnimationProp","isNameOnlyAttributeMarker","mergeHostAttrs","srcMarker","mergeHostAttribute","markerInsertPosition","dstValue","hasParentInjector","parentLocation","getParentInjectorIndex","getParentInjectorView","startView","viewOffset","getParentInjectorViewOffset","includeViewProviders","setIncludeViewProviders","BLOOM_MASK","BLOOM_BUCKET_BITS","nextNgElementId","getOrCreateNodeInjectorForNode","existingInjectorIndex","getInjectorIndex","firstCreatePass","injectorIndex","insertBloom","blueprint","parentLoc","getParentInjectorLocation","parentIndex","parentData","declarationViewOffset","lViewCursor","getTNodeFromLView","diPublicInInjector","bloomAdd","bloomHash","notFoundValueOrThrow","lookupTokenUsingModuleInjector","moduleInjector","previousInjectImplementation","getOrCreateInjectable","embeddedInjectorValue","lookupTokenUsingEmbeddedInjector","currentLView","nodeInjectorValue","lookupTokenUsingNodeInjector","embeddedViewInjector","embeddedViewInjectorValue","bloomHashBitOrFactory","tokenId","createNodeInjector","previousTView","hostTElementNode","shouldSearchParent","bloomHasToken","searchTokensOnInjector","currentTView","injectableIdx","locateDirectiveOrProvider","getNodeInjectable","canAccessViewProviders","isHostSpecialCase","nodeProviderIndexes","providerIndexes","tInjectables","injectablesStart","directivesStart","cptViewProvidersCount","providerTokenOrDef","dirDef","isFactory","throwCyclicDependencyError","depPath","previousIncludeViewProviders","registerPreOrderHooks","directiveIndex","directiveDef","wrappedOnChanges","preOrderHooks","preOrderCheckHooks","injectorView","isFirstHostTNode","NodeInjector","_tNode","_lView","ɵɵgetInheritedFactory","ownConstructor","ownFactory","getFactoryOf","objectPrototype","tViewType","ɵɵinjectAttribute","attrNameToInject","injectAttributeImpl","attrsLength","ANNOTATIONS","PARAMETERS","PROP_METADATA","parentClass","additionalProcessing","typeFn","metaCtor","makeMetadataCtor","DecoratorFactory","annotationInstance","ngMetadataName","annotationCls","makeParamDecorator","ParamDecoratorFactory","ParamDecorator","unusedKey","makePropDecorator","PropDecoratorFactory","decoratorInstance","PropDecorator","Attribute","_desc","ANALYZE_FOR_ENTRY_COMPONENTS","Query","ContentChildren","isViewQuery","descendants","emitDistinctChangesOnly","ContentChild","ViewChildren","ViewChild","FactoryTarget","Directive","Component","Injectable","NgModule","getCompilerFacade","globalNg","ɵcompilerFacade","isType","deepForEach","addToArray","removeFromArray","newArray","keyValueArraySet","keyValueArray","keyValueArrayIndexOf","arrayInsert2","value1","value2","keyValueArrayGet","_arrayIndexOfSorted","ES5_DELEGATE_CTOR","ES2015_INHERITED_CLASS","ES2015_INHERITED_CLASS_WITH_CTOR","ES2015_INHERITED_CLASS_WITH_DELEGATE_CTOR","ReflectionCapabilities","reflect","_reflect","_zipTypesAndAnnotations","paramTypes","paramAnnotations","_ownParameters","parentCtor","isDelegateCtor","typeStr","tsickleCtorParams","ctorParameters","ctorParam","convertTsickleDecoratorIntoMetadata","decorators","getOwnMetadata","getParentCtor","_ownAnnotations","typeOrFunc","ownAnnotations","_ownPropMetadata","propMetadata","propDecorators","parentPropMetadata","ownPropMetadata","hasLifecycleHook","lcProperty","decoratorInvocations","decoratorInvocation","ctor","parentProto","getReflect","reflectDependencies","convertDependencies","reflectDependency","attribute","resolveComponentResources","resourceResolver","componentResolved","urlMap","cachedResourceResolve","resp","unwrapResponse","componentResourceResolutionQueue","promises","templateUrl","styleUrls","styleOffset","styleUrl","fullyResolved","componentDefResolved","componentDefPendingResolution","clearResolutionOfComponentResourcesQueue","componentNeedsResolution","checkForDuplicateNgModules","registerNgModuleType","ngModuleType","assertSameOrNotExisting","incoming","getRegisteredNgModuleType","setAllowDuplicateNgModuleIdsForTest","allowDuplicates","CUSTOM_ELEMENTS_SCHEMA","NO_ERRORS_SCHEMA","shouldThrowErrorOnUnknownElement","ɵsetUnknownElementStrictMode","shouldThrow","ɵgetUnknownElementStrictMode","shouldThrowErrorOnUnknownProperty","ɵsetUnknownPropertyStrictMode","ɵgetUnknownPropertyStrictMode","Important","DashCase","COMMENT_DISALLOWED","COMMENT_DELIMITER","COMMENT_DELIMITER_ESCAPED","TRACKED_LVIEWS","uniqueIdCounter","getLViewById","LContext","lViewId","getLContext","mpValue","readPatchedData","isComponentInstance","findViaComponent","isDirectiveInstance","findViaDirective","directiveIndexEnd","traverseNextElement","getDirectivesAtNodeIndex","findViaNativeElement","existingCtx","createLContext","attachPatchData","rElement","getComponentViewByInstance","patchedData","MONKEY_PATCH_KEY_NAME","registerLView","readPatchedLView","componentIndices","elementComponentIndex","_icuContainerIterate","icuContainerIterate","tIcuContainerNode","getLViewParent","getRootContext","viewOrComponent","getRootView","componentOrLView","getFirstLContainer","getNearestLContainer","getNextLContainer","applyToElementOrContainer","lNodeToHandle","beforeNode","isComponent","rNode","nativeAppendChild","nativeInsertBefore","nativeRemoveNode","applyContainer","parentRElement","applyView","updateTextNode","createCommentNode","escapeCommentText","createElementNode","detachMovedView","declarationContainer","movedViews","declarationViewIndex","insertionLContainer","removeIndex","indexInContainer","viewToDetach","declarationLContainer","removedLView","removeViewFromContainer","lQueries","destroyLView","destroyViewTree","lViewOrLContainer","cleanUpView","firstView","executeOnDestroys","toCall","callContext","processCleanups","tCleanup","cleanup","lCleanup","lastLCleanupIndex","targetIdx","instanceCleanupFn","unregisterLView","getParentRElement","getClosestRElement","nativeAppendOrInsertBefore","nativeParentNode","getInsertInFrontOfRNode","_getInsertInFrontOfRNodeWithI18n","getInsertInFrontOfRNodeWithNoI18n","_processI18nInsertBefore","policy$1","policy","setI18nHandling","getInsertInFrontOfRNodeWithI18n","processI18nInsertBefore","childRNode","childTNode","parentRNode","getFirstNativeNode","tNodeType","getBeforeNodeForView","elIcuContainerChild","rNodeOrLContainer","projectionNodes","getProjectionNodes","projection","viewIndexInContainer","nextViewIndex","firstTNodeOfView","nativeParent","nativeRemoveChild","applyNodes","isProjection","rawSlotValue","nextRNode","applyProjectionRecursive","projectionNext","tProjectionNode","componentLView","nodeToProjectOrRNodes","writeDirectClass","setupStaticAttributes","mergedAttrs","writeDirectStyle","getPolicy$1","trustedTypes","createPolicy","createHTML","createScript","createScriptURL","trustedHTMLFromString","ɵɵvalidateIframeAttribute","iframe","srcdoc","getDocument","getPolicy","trustedHTMLFromStringBypass","trustedScriptFromStringBypass","trustedScriptURLFromStringBypass","SafeValueImpl","changingThisBreaksApplicationSecurity","SafeHtmlImpl","getTypeName","SafeStyleImpl","SafeScriptImpl","SafeUrlImpl","SafeResourceUrlImpl","unwrapSafeValue","allowSanitizationBypassAndThrow","actualType","getSanitizationBypassType","bypassSanitizationTrustHtml","trustedHtml","bypassSanitizationTrustStyle","trustedStyle","bypassSanitizationTrustScript","trustedScript","bypassSanitizationTrustUrl","trustedUrl","bypassSanitizationTrustResourceUrl","trustedResourceUrl","getInertBodyHelper","defaultDoc","inertDocumentHelper","InertDocumentHelper","isDOMParserAvailable","DOMParserHelper","getInertBodyElement","inertDocument","templateEl","SAFE_URL_PATTERN","_sanitizeUrl","tagSet","VOID_ELEMENTS","OPTIONAL_END_TAG_BLOCK_ELEMENTS","OPTIONAL_END_TAG_INLINE_ELEMENTS","VALID_ELEMENTS","URI_ATTRS","VALID_ATTRS","SKIP_TRAVERSING_CONTENT_IF_INVALID_ELEMENTS","SanitizingHtmlSerializer","sanitizedSomething","sanitizeChildren","traverseContent","startElement","TEXT_NODE","endElement","checkClobberedElement","elAttrs","elAttr","encodeEntities","DOCUMENT_POSITION_CONTAINED_BY","SURROGATE_PAIR_REGEXP","NON_ALPHANUMERIC_REGEXP","inertBodyHelper","_sanitizeHtml","unsafeHtmlInput","inertBodyElement","unsafeHtml","mXSSAttempts","parsedHtml","getTemplateContent","isTemplateElement","HTML","STYLE","SCRIPT","RESOURCE_URL","ɵɵsanitizeHtml","getSanitizer","ɵɵsanitizeStyle","unsafeStyle","ɵɵsanitizeUrl","unsafeUrl","ɵɵsanitizeResourceUrl","unsafeResourceUrl","ɵɵsanitizeScript","unsafeScript","ɵɵtrustConstantHtml","ɵɵtrustConstantResourceUrl","trustedScriptURLFromString","getUrlSanitizer","INJECTOR","INJECTOR_DEF_TYPES","NullInjector","importProvidersFrom","internalImportProvidersFrom","ɵfromNgModule","checkForStandaloneCmp","providersOut","dedup","injectorTypesWithProviders","internalSource","walkProviderTree","processInjectorTypesWithProviders","typesWithProviders","deepForEachProvider","defType","injDef","cmpDef","isDuplicate","importTypesWithProviders","imported","defProviders","USE_VALUE$1","isValueProvider","isTypeProvider","INJECTOR_SCOPE","NOT_YET","CIRCULAR","NULL_INJECTOR$1","getNullInjector","R3Injector","_ngOnDestroyHooks","_onDestroyHooks","forEachSingleProvider","processProvider","makeRecord","injectorDefTypes","assertNotDestroyed","previousInjector","couldBeInjectableType","injectableDefInScope","injectableDefOrInjectorDefFactory","hydrate","catchInjectorError","injectorErrorName","tokenPath","formatError","resolveInjectorInitializers","initializer","providerToRecord","providerToFactory","multiRecord","hasOnDestroy","getUndecoratedInjectableFactory","paramLength","inheritedInjectableDef","getInheritedInjectableDef","unwrappedProvider","isFactoryProvider","isExistingProvider","classRef","hasDeps","ComponentRef$1","ComponentFactory$1","_NullComponentFactoryResolver","noComponentFactoryError","ComponentFactoryResolver$1","NULL","injectElementRef","createElementRef","unwrapElementRef","injectRenderer2","nodeAtIndex","Sanitizer","major","minor","NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR","ERROR_ORIGINAL_ERROR","getOriginalError","_console","originalError","_findOriginalError","ɵɵresolveWindow","ɵɵresolveDocument","ɵɵresolveBody","maybeUnwrapFn","classIndexOf","classToSearch","startingIndex","foundIndex","NG_TEMPLATE_SELECTOR","isCssClassMatching","cssClassToMatch","isProjectionMode","isImplicitAttrsSection","isInlineTemplate","hasTagAndTypeMatch","currentSelector","isNodeMatchingSelector","nodeAttrs","nameOnlyMarkerIdx","getNameOnlyMarkerIndex","skipToNextSelector","isPositive","selectorAttrValue","attrIndexInNode","findAttrIndexInNode","nodeAttrValue","compareAgainstClassName","bindingsMode","maybeAttrName","matchTemplateAttribute","isNodeMatchingSelectorList","isSelectorInSelectorList","selectorListLoop","currentSelectorInList","maybeWrapInNotSelector","isNegativeMode","stringifyCSSSelector","valueOrMarker","NO_CHANGE","ɵɵadvance","selectIndexInternal","checkNoChangesMode","angularCoreDiEnv","USE_VALUE","isUseClassProvider","isUseFactoryProvider","compileInjectable","ngFactoryDef","getInjectableMetadata","srcMeta","compilerMeta","typeArgumentCount","isUseValueProvider","isUseExistingProvider","compileFactory","createInjector","additionalProviders","createInjectorWithoutInjectorInstances","constructResolvingPath","findFirstClosedCycle","injectionError","constructResolvingMessage","wrappedError","addKey","injectors","noAnnotationError","signature","mixingMultiProvidersWithRegularProvidersError","provider1","provider2","ReflectiveKey","_globalKeyRegistry","numberOfKeys","KeyRegistry","_allKeys","ReflectiveDependency","_EMPTY_LIST","ResolvedReflectiveProvider_","resolvedFactories","multiProvider","resolvedFactory","ResolvedReflectiveFactory","resolveReflectiveFactory","factoryFn","resolvedDeps","_dependenciesFor","aliasInstance","fromKey","constructDependencies","_extractToken","resolveReflectiveProvider","resolveReflectiveProviders","resolvedProviderMap","mergeResolvedReflectiveProviders","normalizedProvidersMap","resolvedProvider","_normalizeProviders","invalidProviderError","_createDependency","paramMetadata","UNDEFINED","ResolvedReflectiveProviders","fromResolvedProviders","ReflectiveInjector_","_providers","_constructionCounter","keyIds","_getByKey","resolveAndCreateChild","createChildFromResolved","inj","resolveAndInstantiate","instantiateResolved","_instantiateProvider","getProviderAtIndex","outOfBoundsError","_new","_getMaxNumberOfObjects","cyclicDependencyError","_instantiate","_getByReflectiveDependency","instantiationError","originalException","originalStack","INJECTOR_KEY","_getByKeySelf","_getByKeyDefault","_getObjByKeyId","keyId","_throwOrNull","noProviderError","inj_","_mapProviders","refreshContentQueries","directiveDefIdx","createLView","tHostNode","rendererFactory","getUniqueLViewId","getOrCreateTNode","createTNodeAtIndex","createTNode","tParent","insertBeforeIndex","directiveStylingLast","propertyBindings","localNames","initialInputs","stylesWithoutHost","residualStyles","classesWithoutHost","residualClasses","classBindings","styleBindings","allocExpando","numSlotsToAlloc","initialValue","allocIdx","renderView","executeViewQueryFn","templateFn","executeTemplate","staticContentQueries","staticViewQueries","renderChildComponents","hostLView","renderComponent","incompleteFirstPass","refreshView","hooksInitPhaseCompleted","markTransplantedViewsForRefresh","movedLView","refreshEmbeddedViews","embeddedLView","embeddedTView","processHostBindingOpCodes","hostBindingOpCodes","opCode","directiveIdx","bindingRootIndx","hostBindingFn","refreshChildComponents","refreshComponent","firstUpdatePass","prevSelectedIndex","isUpdatePhase","executeContentQueries","createDirectivesInstances","instantiateAllDirectives","addComponentLogic","hostTNode","getOrCreateComponentTView","componentView","addToViewTree","setInputsFromAttrs","invokeDirectivesHostBindings","saveResolvedLocalsInData","viewData","localRefExtractor","localIndex","createTView","constsOrFactory","initialViewLength","createViewBlueprint","queries","expandoStartIndex","directiveRegistry","pipeRegistry","storeCleanupWithContext","cleanupFn","getOrCreateLViewCleanup","getOrCreateTViewCleanup","generatePropertyAliases","aliasMap","propertyAliases","hostDirectiveAliasMap","internalName","addPropertyAlias","elementPropertyInternal","nativeOnly","dataValue","inputData","setInputsForProperty","markDirtyIfOnPush","viewIndex","childComponentLView","mapPropName","resolveDirectives","localRefs","exportsMap","findDirectiveDefMatches","hostDirectiveDefs","hostDirectiveMatches","markAsComponentHost","initializeDirectives","cacheMatchingLocalNames","initTNodeFlags","numberOfDirectives","preOrderHooksFound","preOrderCheckHooksFound","configureViewWithDirective","saveNameToExportMap","lifeCycleHooks","initializeInputAndOutputAliases","hostDirectiveDefinitionMap","tViewData","tNodeAttrs","inputsFromAttrs","inputsStore","outputsStore","aliasData","aliasedOutputs","generateInitialInputs","elementIndex","getCurrentDirectiveIndex","dirIndex","invokeHostBindingsInCreationMode","directiveFactory","nodeInjectorFactory","registerHostBindingOpCodes","directiveVarsIdx","elementIndx","lastSelectedElementIdx","elementAttributeInternal","setElementAttribute","initialInputData","inputsToStore","inputConfig","createLContainer","hostNative","componentHostIdx","refreshContainsDirtyView","componentTView","syncViewWithBlueprint","markViewDirty","detectChangesInternal","notifyErrorHandler","viewQueryFn","loadComponentRenderer","currentDef","unwrapLView","textBindingInternal","computeStaticStyling","writeToHost","collectNativeNodes","lNode","lViewInAContainer","lViewFirstChildTNode","nodesInSlot","ViewRef$1","_cdRefInjectingView","_attachedToViewContainer","viewRefs","reattach","checkNoChanges","attachToViewContainerRef","detachFromAppRef","renderDetachView","attachToAppRef","RootViewRef","componentDef","ComponentFactory","toRefArray","nonMinified","ChainedInjector","componentType","stringifyCSSSelectorList","selectorList","isBoundToModule","rootSelectorOrNode","realEnvironmentInjector","rootViewInjector","hostRenderer","elementName","hostRNode","locateHostElement","elementOrSelector","getNamespace","rootFlags","rootTView","rootLView","tElementNode","rootComponentDef","rootDirectives","createRootComponentTNode","createRootComponentView","applyRootComponentStyling","viewRenderer","setRootNodeAttributes","extractAttrsAndClassesFromSelector","projectNodes","nodesforSlot","createRootComponent","hostFeatures","rootTNode","LifecycleHooksFeature","ComponentRef","_rootLView","getSuperType","ɵɵInheritDefinitionFeature","superType","shouldInheritFields","inheritanceChain","superDef","writeableDef","maybeUnwrapEmpty","superHostBindings","inheritHostBindings","superViewQuery","superContentQueries","inheritViewQuery","inheritContentQueries","defData","mergeHostAttrsAcrossInheritance","prevViewQuery","prevContentQueries","prevHostBindings","COPY_DIRECTIVE_FIELDS","COPY_COMPONENT_FIELDS","ɵɵCopyDefinitionFeature","defAny","ɵɵHostDirectivesFeature","rawHostDirectives","bindingArrayToMap","matchedDefs","hostDirectiveConfig","hostDirectiveDef","patchDeclaredInputs","exposedInputs","isListLikeIterable","isJsObject","devModeEqual","isListLikeIterableA","isListLikeIterableB","areIterablesEqual","iterator1","iterator2","item1","item2","updateBinding","getBinding","bindingUpdated","bindingUpdated2","exp1","exp2","different","bindingUpdated3","exp3","bindingUpdated4","exp4","ɵɵattribute","interpolationV","isBindingUpdated","interpolation1","v0","interpolation2","interpolation3","interpolation4","v3","interpolation5","v4","interpolation6","i4","v5","interpolation7","i5","v6","interpolation8","i6","v7","ɵɵattributeInterpolate1","interpolatedValue","ɵɵattributeInterpolate2","ɵɵattributeInterpolate3","ɵɵattributeInterpolate4","ɵɵattributeInterpolate5","ɵɵattributeInterpolate6","ɵɵattributeInterpolate7","ɵɵattributeInterpolate8","ɵɵattributeInterpolateV","interpolated","attrsIndex","localRefsIndex","adjustedIndex","templateFirstCreatePass","tViewConsts","ɵɵreference","getContextLView","ɵɵproperty","setDirectiveInputsWhichShadowsStyling","isClassBased","elementStartFirstCreatePass","elementStart","getNamespace$1","hasDirectives","getElementDepthCount","increaseElementDepthCount","decreaseElementDepthCount","elementEnd","hasClassInput","hasStyleInput","ɵɵelementContainerStart","elementContainerStartFirstCreatePass","ɵɵelementContainerEnd","ɵɵelementContainer","ɵɵgetCurrentView","isSubscribable","isObservable","listenerFn","useCapture","eventTargetResolver","listenerInternal","ɵɵsyntheticHostListener","isTNodeDirectiveHost","processOutputs","lCleanupIndex","idxOrTargetGetter","existingListener","findExistingListener","tNodeIdx","cleanupEventName","listenerIdxInLCleanup","__ngLastListenerFn__","__ngNextListenerFn__","wrapListener","propsLength","executeListenerWithErrorHandling","wrapWithPreventDefault","wrapListenerIn_markDirtyAndPreventDefault","nextListenerFn","ɵɵnextContext","nextContextImpl","walkUpViews","nestingLevel","matchingProjectionSlotIndex","projectionSlots","wildcardNgContentIndex","ngProjectAsAttrVal","getProjectAsAttrValue","ngProjectAsAttrIdx","componentNode","projectionHeads","tails","componentChild","slotIndex","selectorIndex","applyProjection","ɵɵpropertyInterpolate","ɵɵpropertyInterpolate1","ɵɵpropertyInterpolate2","ɵɵpropertyInterpolate3","ɵɵpropertyInterpolate4","ɵɵpropertyInterpolate5","ɵɵpropertyInterpolate6","ɵɵpropertyInterpolate7","ɵɵpropertyInterpolate8","ɵɵpropertyInterpolateV","toTStylingRange","getTStylingRangePrev","tStylingRange","setTStylingRangePrevDuplicate","getTStylingRangeNext","setTStylingRangeNext","setTStylingRangeNextDuplicate","markDuplicates","tStylingKey","isPrevDir","isClassBinding","tStylingAtIndex","isMap","foundDuplicate","tStyleRangeAtCursor","isStylingMatch","tStylingKeyCursor","parserState","textEnd","keyEnd","valueEnd","getLastParsedKey","getLastParsedValue","parseClassNameNext","consumeClassToken","consumeWhitespace","parseStyleNext","consumeStyleKey","consumeSeparator","consumeStyleValue","ch1","ch2","ch3","lastChIndex","consumeQuotedText","resetParserState","quoteCharCode","ɵɵstyleProp","checkStylingProperty","ɵɵclassProp","ɵɵstyleMap","checkStylingMap","styleKeyValueArraySet","styleStringParser","parseStyle","ɵɵclassMap","classKeyValueArraySet","classStringParser","parseClassName","stylingFirstUpdatePass","updateStyling","normalizeSuffix","stringParser","hasStylingInputShadow","isInHostBindings","staticPrefix","updateStylingMap","oldKeyValueArray","newKeyValueArray","oldIndex","newIndex","oldKey","setKey","toStylingKeyValueArray","styleKeyValueArray","unwrappedValue","isHostBindings","wrapInStaticStylingKey","stylingKey","residual","collectStylingFromTAttrs","collectStylingFromDirectives","templateStylingKey","getTemplateHeadTStylingKey","setTemplateHeadTStylingKey","collectResidual","insertTStylingBinding","tStylingKeyWithStatic","isHostBinding","tBindings","tmplHead","tmplTail","isKeyDuplicateOfStatic","setTStylingRangePrev","markDuplicateOfResidualStyling","currentDirective","desiredMarker","currentMarker","stringKey","tRange","higherPriorityValue","getTStylingRangeNextDuplicate","findStylingValue","isStylingValuePresent","getTStylingRangePrevDuplicate","applyStyling","isPrevDirection","rawKey","containsStatics","isStylingMap","valueAtLViewIndex","ɵɵtext","textNative","ɵɵtextInterpolate","ɵɵtextInterpolate1","ɵɵtextInterpolate2","ɵɵtextInterpolate3","ɵɵtextInterpolate4","ɵɵtextInterpolate5","ɵɵtextInterpolate6","ɵɵtextInterpolate7","ɵɵtextInterpolate8","ɵɵtextInterpolateV","ɵɵclassMapInterpolate1","ɵɵclassMapInterpolate2","ɵɵclassMapInterpolate3","ɵɵclassMapInterpolate4","ɵɵclassMapInterpolate5","ɵɵclassMapInterpolate6","ɵɵclassMapInterpolate7","ɵɵclassMapInterpolate8","ɵɵclassMapInterpolateV","ɵɵstyleMapInterpolate1","ɵɵstyleMapInterpolate2","ɵɵstyleMapInterpolate3","ɵɵstyleMapInterpolate4","ɵɵstyleMapInterpolate5","ɵɵstyleMapInterpolate6","ɵɵstyleMapInterpolate7","ɵɵstyleMapInterpolate8","ɵɵstyleMapInterpolateV","ɵɵstylePropInterpolate1","ɵɵstylePropInterpolate2","ɵɵstylePropInterpolate3","ɵɵstylePropInterpolate4","ɵɵstylePropInterpolate5","ɵɵstylePropInterpolate6","ɵɵstylePropInterpolate7","ɵɵstylePropInterpolate8","ɵɵstylePropInterpolateV","ɵɵhostProperty","ɵɵsyntheticHostProperty","localeEn","LOCALE_DATA","LocaleDataIndex","LocaleId","ExtraData","findLocaleData","normalizedLocale","getLocaleData","CurrencyCode","PluralCase","common","unregisterAllLocaleData","DayPeriodsFormat","DayPeriodsStandalone","DaysFormat","DaysStandalone","MonthsFormat","MonthsStandalone","FirstDayOfWeek","WeekendRange","DateFormat","TimeFormat","DateTimeFormat","NumberSymbols","NumberFormats","CurrencySymbol","CurrencyName","Currencies","Directionality","pluralMapping","DEFAULT_LOCALE_ID","ELEMENT_MARKER","ICU_MARKER","I18nCreateOpCode","SHIFT","APPEND_EAGERLY","COMMENT","LOCALE_ID$1","setLocaleId","assertDefined","tNodeInsertBeforeIndex","i18nParent","anchorRNode","addTNodeAndUpdateInsertBeforeIndex","previousTNodes","newTNode","existingTNode","isI18nText","isNewTNodeCreatedBefore","getInsertBeforeIndex","setInsertBeforeIndex","getTIcu","createTNodePlaceholder","getCurrentICUCaseIndex","tIcu","currentCaseLViewIndex","getParentFromIcuCreateOpCode","mergedCode","getRefFromIcuCreateOpCode","changeMask","changeMaskCounter","applyMutableOpCodes","mutableOpCodes","rootRNode","rootIdx","textNodeIndex","parentIdx","insertInFrontOf","refIdx","anchorIdx","commentValue","commentNodeIndex","elementNodeIndex","applyUpdateOpCodes","updateOpCodes","bindingsStartIndex","checkBit","skipCodes","sanitizeFn","tNodeOrTagName","rText","applyIcuSwitchCase","applyIcuUpdateCase","activeCaseIndex","getCaseIndex","icuExpression","bindingValue","resolvedCase","getPluralCase","applyIcuSwitchCaseRemove","removeCodes","nodeOrIcuIndex","loadIcuContainerVisitor","_removes","enterIcu","icuContainerIteratorNext","removeOpCode","icuContainerIteratorStart","BINDING_REGEXP","ICU_REGEXP","NESTED_ICU","ICU_BLOCK_REGEXP","MARKER","SUBTEMPLATE_REGEXP","PH_REGEXP","NGSP_UNICODE_REGEXP","createTNodeAndAddOpCode","existingTNodes","createOpCodes","isICU","i18nNodeIdx","ensureIcuContainerVisitorLoaded","setTNodeInsertBeforeIndex","assertEqual","i18nStartFirstCreatePassProcessTextNode","hasBinding","generateBindingUpdateOpCodes","destinationNode","bindingStart","maskIndex","sizeIndex","textParts","textValue","toMaskBit","countBindings","opCodes","removeInnerTemplateTranslation","tagMatched","inTemplate","icuStart","bindingMask","addUpdateIcuSwitch","mainBinding","setTIcu","valueArr","nestedIcus","icuIndex","parseIcuCase","addUpdateIcuUpdate","parseICUBlock","icuType","i18nParseTextIntoPartsAndICU","prevPos","braceStack","braces","unsafeCaseHtml","inertRootNode","walkIcuTree","sharedUpdateOpCodes","addCreateNodeAndAppend","lowerAttrName","addCreateAttribute","addRemoveNode","COMMENT_NODE","isNestedIcu","addRemoveNestedIcu","appendToParentIdx","createAtIdx","icuCreateOpCode","ROOT_TEMPLATE_ID","PP_MULTI_VALUE_PLACEHOLDERS_REGEXP","PP_PLACEHOLDERS_REGEXP","PP_ICU_VARS_REGEXP","PP_ICU_PLACEHOLDERS_REGEXP","PP_ICUS_REGEXP","PP_CLOSE_TEMPLATE_REGEXP","PP_TEMPLATE_ID_REGEXP","ɵɵi18nStart","messageIndex","subTemplateIndex","i18nStartFirstCreatePass","parentTNodeIndex","existingTNodeStack","getTranslationForTemplate","isRootTemplateMessage","msgParts","replaceNgsp","isClosing","tI18n","applyCreateOpCodes","appendNow","ɵɵi18nEnd","ɵɵi18n","ɵɵi18nAttributes","i18nAttributesFirstPass","previousElementIndex","ɵɵi18nExp","setMaskBit","hasChange","ɵɵi18nApply","applyI18n","ɵɵi18nPostprocess","replacements","i18nPostprocess","templateIdsStack","phs","tmpl","placeholders","templateId","isCloseTemplateTag","currentTemplateId","resolveProvider","lInjectablesBlueprint","providerFactory","beginIndex","existingFactoryIndex","registerDestroyHooksIfSupported","existingProvidersFactoryIndex","existingViewProvidersFactoryIndex","doesViewProvidersFactoryExist","multiFactory","componentProviders","multiFactoryAdd","multiViewProvidersFactoryResolver","multiProvidersFactoryResolver","contextIndex","indexInFactory","providerIsTypeProvider","providerIsClassProvider","isClassProvider","existingCallbacksIndex","isComponentProvider","lData","multiResolve","factories","componentCount","multiProviders","viewProviders","processProvidersFn","NgModuleRef$1","NgModuleFactory$1","createNgModuleRef","_bootstrapComponents","destroyCbs","componentFactoryResolver","_r3Injector","moduleType","EnvironmentNgModuleRefAdapter","debugName","StandaloneService","cachedInjectors","getOrCreateStandaloneInjector","standaloneInjector","ɵɵStandaloneFeature","getComponent","getComponentAtNodeIndex","assertDomElement","getOwningComponent","elementOrDir","getRootComponents","getInjector","getDirectives","getDirectiveMetadata$1","directiveOrComponentInstance","componentOrDirective","getListeners","lContext","firstParam","secondParam","listenerElement","useCaptureOrIndx","sortListeners","isDirectiveDefHack","setClassMetadata","clazz","ɵɵpureFunction0","slotOffset","pureFn","ɵɵpureFunction1","pureFunction1Internal","ɵɵpureFunction2","pureFunction2Internal","ɵɵpureFunction3","pureFunction3Internal","ɵɵpureFunction4","pureFunction4Internal","ɵɵpureFunction5","exp5","ɵɵpureFunction6","exp6","ɵɵpureFunction7","exp7","ɵɵpureFunction8","exp8","ɵɵpureFunctionV","exps","pureFunctionVInternal","getPureFunctionReturnValue","returnValueIndex","lastReturnValue","bindingRoot","ɵɵpipe","pipeName","getPipeDef","pipeFactory","pipeInstance","ɵɵpipeBind1","isPure","ɵɵpipeBind2","ɵɵpipeBind3","ɵɵpipeBind4","ɵɵpipeBindV","_wrapInTimeout","EventEmitter_","isAsync","__isAsync","nextFn","errorFn","completeFn","symbolIterator","_results","QueryList","_changes","_emitDistinctChangesOnly","_changesDetected","resultsTree","identityAccessor","newResultFlat","arrayEquals","valueA","valueB","notifyOnChanges","setDirty","injectTemplateRef","ViewEngineTemplateRef","R3TemplateRef","_declarationLView","_declarationTContainer","declarationViewLQueries","createTemplateRef","injectViewContainerRef","createContainerRef","VE_ViewContainerRef","R3ViewContainerRef","_lContainer","_hostTNode","_hostLView","getViewRefs","indexOrOptions","componentFactoryOrType","isComponentFactory","contextInjector","viewAttachedToContainer","prevIdx","prevLContainer","prevVCRef","adjustedIdx","_adjustIndex","insertView","containerLength","trackMovedView","addViewToContainer","parentNativeNode","getOrCreateViewRefs","viewRefsArr","detachedView","commentNode","nativeNextSibling","LQuery_","queryList","LQueries_","tQueries","noOfInheritedQueries","viewLQueries","tQuery","getByIndex","indexInDeclarationView","dirtyQueriesWithMatches","getTQuery","TQueryMetadata_","TQueries_","queriesForTemplateRef","childQueryIndex","tqueryClone","tquery","TQuery_","crossesNgTemplate","_appliesToNextNode","_declarationNodeIndex","isApplyingToNode","matchTNode","declarationNodeIdx","matchTNodeWithReadOption","getIdxOfMatchingSelector","nodeMatchIdx","directiveOrProviderIdx","matchIdx","createResultForNode","matchingIdx","createResultByTNodeType","createSpecialToken","materializeViewResults","queryIndex","lQuery","tQueryMatches","matchedNodeIdx","collectQueryResults","lViewResults","embeddedLViews","ɵɵqueryRefresh","isCreationMode","ɵɵviewQuery","createTQuery","createLQuery","ɵɵcontentQuery","saveContentQueryAndDirectiveIndex","tViewContentQueries","ɵɵloadQuery","loadQueryInternal","ɵɵtemplateRefExtractor","angularCoreEnv","jitOptions","resetJitOptions","isNgModule","moduleQueue","flushingModuleQueue","flushModuleScopingQueueAsMuchAsPossible","isResolvedDeclaration","setScopeOnDeclaredComponents","declaration","compileNgModule","compileNgModuleDefs","enqueueModuleForDelayedScoping","allowDuplicateDeclarationsInRoot","expandModuleWithProviders","compileInjector","ownerNgModule","verifiedNgModule","resetCompiledComponents","transitiveScopes","transitiveScopesFor","patchComponentDefWithScope","ngSelectorScope","compilation","transitiveScopesForNgModule","exported","importedScope","declared","exportedType","exportedScope","isModuleWithProviders","compilationDepth","compileComponent","ngComponentDef","maybeQueueResolutionOfComponentResources","addDirectiveFactoryDef","getJitOptions","preserveWhitespaces","defaultEncapsulation","directiveMetadata","typeSourceSpan","createParseSourceSpan","animations","interpolation","usesInheritance","addDirectiveDefToUndecoratedParents","getStandaloneDefFunctions","cachedDirectiveDefs","cachedPipeDefs","rawDep","hasSelectorScope","compileDirective","ngDirectiveDef","getDirectiveMetadata","sourceMapUrl","facade","extendsDirectlyFromObject","extractQueriesMetadata","isContentQuery","lifecycle","usesOnChanges","extractExportAs","viewQueries","objPrototype","shouldAddAbstractDirective","convertToR3QueryPredicate","splitByComma","convertToR3QueryMetadata","isQueryAnn","queriesMeta","isInputAnnotation","LIFECYCLE_HOOKS","hookName","compilePipe","ngPipeDef","getPipeMetadata","Input","bindingPropertyName","Output","HostBinding","hostPropertyName","HostListener","appInits","runInitializers","asyncInitPromises","initResult","observableAsPromise","_appIdRandomProviderFactory","_randomChar","APP_ID_RANDOM_PROVIDER","PACKAGE_ROOT_URL","Console","getGlobalLocale","$localize","TRANSLATIONS","TRANSLATIONS_FORMAT","MissingTranslationStrategy","Warning","Ignore","ModuleWithComponentFactories","componentFactories","compileModuleSync","compileModuleAndAllComponentsSync","compileModuleAndAllComponentsAsync","clearCacheFor","getModuleId","COMPILER_OPTIONS","CompilerFactory","GLOBAL_PUBLISH_EXPANDO_KEY","_published","publishDefaultGlobalUtils$1","publishGlobalUtil","COMPILED","Zone","enableLongStackTrace","shouldCoalesceEventChangeDetection","shouldCoalesceRunChangeDetection","hasPendingMacrotasks","hasPendingMicrotasks","isStable","onUnstable","onMicrotaskEmpty","onStable","assertZonePatched","_nesting","_outer","_inner","TaskTrackingZoneSpec","longStackTraceZoneSpec","lastRequestAnimationFrameId","nativeRequestAnimationFrame","getNativeRequestAnimationFrame","nativeCancelAnimationFrame","unpatchedRequestAnimationFrame","__symbol__","unpatchedCancelAnimationFrame","forkInnerZoneWithAngularBehavior","delayChangeDetectionForEventsDelegate","delayChangeDetectionForEvents","isCheckStableRunning","fakeTopEventTask","scheduleEventTask","updateMicroTaskStatus","checkStable","invoke","isAngularZone","onInvokeTask","task","applyThis","applyArgs","onEnter","invokeTask","onLeave","onInvoke","onHasTask","hasTaskState","hasTask","_hasPendingMicrotasks","microTask","macroTask","onHandleError","isInAngularZone","runTask","EMPTY_PAYLOAD","cancelTask","NoopNgZone","TESTABILITY","TESTABILITY_GETTER","_testabilityGetter","_ngZone","testabilityGetter","_pendingCount","_isZoneStable","_didWork","taskTrackingZone","setTestabilityGetter","_watchAngularEvents","assertNotInAngularZone","_runCallbacksIfReady","increasePendingRequestCount","decreasePendingRequestCount","timeoutId","doneCb","getPendingTasks","updateCb","macroTasks","creationLocation","addCallback","getPendingRequestCount","registerApplication","unregisterApplication","findProviders","exactMatch","_applications","unregisterAllApplications","_platformInjector","ALLOW_MULTIPLE_PLATFORMS","PLATFORM_DESTROY_LISTENERS","compileNgModuleFactory","moduleFactory","createPlatform","PlatformRef","runPlatformInitializers","inits","internalCreateApplication","appProviders","platformProviders","assertStandaloneComponentType","assertComponentDef","platformInjector","createOrReusePlatformInjector","createPlatformInjector","getNgZone","getNgZoneOptions","envInjector","exceptionHandler","onErrorSubscription","destroyListener","onPlatformDestroyListeners","_callAndReportToErrorHandler","initStatus","parentPlatformFactory","extraProviders","getPlatform","assertPlatform","requiredToken","destroyPlatform","_destroyListeners","bootstrapModuleFactory","ngZoneInjector","moduleRef","_moduleDoBootstrap","compilerOptions","optionsReducer","ngDoBootstrap","destroyListeners","ngZoneEventCoalescing","ngZoneRunCoalescing","ngZoneToUse","_exceptionHandler","_bootstrapListeners","_views","_runningTick","_stable","_onMicrotaskEmptySubscription","isCurrentlyStable","stableSub","unstableSub","assertInAngularZone","merge$1","share","multicast","subjectOrSubjectFactory","componentOrFactory","warnIfDestroyed","errorMessage","compRef","_loadComponent","viewCount","isDevMode","getModuleFactory","noModuleError","getNgModuleById","injectChangeDetectorRef","createViewRef","isPipe","ViewRef","EmbeddedViewRef","DebugEventListener","asNativeElements","debugEls","DebugNode","nativeNode","DebugElement","references","getLocalRefs","discoverLocalRefs","providerTokens","getInjectionTokens","copyDomProperties","NodePrototype","descriptors","getOwnPropertyDescriptors","isPrimitiveValue","collectPropertyBindings","bindingIndexes","metadataParts","lowercaseTNodeAttrs","getDebugNode","queryAll","_queryAll","queryAllNodes","triggerEventHandler","eventObj","invokedListeners","eventListeners","unwrappedListener","elementsOnly","_queryNodeChildren","_queryNativeNodeDescendants","rootNativeNode","getNativeByTNodeOrNull","_addQueryMatch","nodeOrContainer","_queryNodeChildrenInContainer","nextLView","nextTNode","childView","debugNode","NG_DEBUG_PROPERTY","getDebugNodeR2","_nativeNode","DefaultIterableDifferFactory","trackByFn","DefaultIterableDiffer","trackByIdentity","_linkedRecords","_unlinkedRecords","_previousItHead","_itHead","_itTail","_additionsHead","_additionsTail","_movesHead","_movesTail","_removalsHead","_removalsTail","_identityChangesHead","_identityChangesTail","nextIt","nextRemove","addRemoveOffset","moveOffsets","getPreviousIndex","adjPreviousIndex","_nextRemoved","localMovePreviousIndex","localCurrentIndex","forEachPreviousItem","_nextPrevious","_nextAdded","forEachMovedItem","_nextMoved","_nextIdentityChange","_reset","itemTrackBy","mayBeDirty","trackById","_verifyReinsertion","_addIdentityChange","_mismatch","iterateListLike","_truncate","previousRecord","_prev","_remove","_reinsertAfter","_moveAfter","_addAfter","IterableChangeRecord_","reinsertRecord","_addToMoves","nextRecord","_addToRemovals","_unlink","prevRecord","_prevRemoved","_insertAfter","_DuplicateMap","toIndex","_prevDup","_nextDup","_DuplicateItemRecordList","_head","_tail","atOrAfterIndex","recordList","moveOffset","DefaultKeyValueDifferFactory","DefaultKeyValueDiffer","_records","_mapHead","_appendAfter","_previousMapHead","_changesHead","_changesTail","_nextChanged","_forEach","_maybeAddToChanges","_getOrCreateRecordForKey","_insertBeforeOrAppend","KeyValueChangeRecord_","_addToAdditions","_addToChanges","defaultIterableDiffersFactory","IterableDiffers","defaultKeyValueDiffersFactory","KeyValueDiffers","keyValDiff","defaultIterableDiffers","defaultKeyValueDiffers","coerceToBoolean","ɵɵngDeclareDirective","decl","compileDirectiveDeclaration","ɵɵngDeclareClassMetadata","ɵɵngDeclareComponent","compileComponentDeclaration","ɵɵngDeclareFactory","getFactoryKind","compileFactoryDeclaration","ɵɵngDeclareInjectable","compileInjectableDeclaration","ɵɵngDeclareInjector","compileInjectorDeclaration","ɵɵngDeclareNgModule","compileNgModuleDeclaration","ɵɵngDeclarePipe","compilePipeDeclaration","elementInjector","reflectComponentType","forkJoinInternal","emitted","BaseControlValueAccessor","_elementRef","onTouched","BuiltInControlValueAccessor","CHECKBOX_VALUE_ACCESSOR","CheckboxControlValueAccessor","DEFAULT_VALUE_ACCESSOR","DefaultValueAccessor","COMPOSITION_BUFFER_MODE","_compositionMode","_isAndroid","_handleInput","_compositionStart","_compositionEnd","isEmptyInputValue","hasValidLength","NG_VALIDATORS","NG_ASYNC_VALIDATORS","EMAIL_REGEXP","minValidator","maxValidator","requiredValidator","requiredTrueValidator","emailValidator","minLengthValidator","maxLengthValidator","patternValidator","validators","composeAsync","minlength","requiredLength","actualLength","maxlength","nullValidator","regexStr","requiredPattern","actualValue","isPresent","mergeErrors","arrayOfErrors","executeValidators","validator","normalizeValidators","isValidatorFn","validate","presentValidators","composeValidators","forkJoin","composeAsyncValidators","mergeValidators","controlValidators","dirValidator","getControlValidators","_rawValidators","getControlAsyncValidators","_rawAsyncValidators","makeValidatorsArray","hasValidator","addValidators","currentValidators","validatorsToAdd","removeValidators","AbstractControlDirective","_onDestroyCallbacks","pristine","untouched","statusChanges","_setValidators","_composedValidatorFn","_setAsyncValidators","_composedAsyncValidatorFn","asyncValidator","_registerOnDestroy","_invokeOnDestroyCallbacks","errorCode","ControlContainer","formDirective","NgControl","valueAccessor","AbstractControlStatus","_cd","isTouched","isUntouched","isPristine","isPending","submitted","NgControlStatus","NgControlStatusGroup","describeKey","isFormGroup","VALID","INVALID","PENDING","DISABLED","pickValidators","validatorOrOpts","isOptionsObj","pickAsyncValidators","asyncValidators","assertControlPresent","isGroup","noControlsError","missingControlError","assertAllValuesPresent","_forEachChild","missingControlValueError","AbstractControl","_pendingDirty","_hasOwnPendingAsyncValidator","_pendingTouched","_onCollectionChange","_onDisabledChange","_assignValidators","_assignAsyncValidators","validatorFn","asyncValidatorFn","updateOn","_updateOn","setValidators","setAsyncValidators","addAsyncValidators","removeAsyncValidators","hasAsyncValidator","clearValidators","clearAsyncValidators","markAsTouched","onlySelf","markAllAsTouched","markAsUntouched","_updateTouched","markAsPristine","_updatePristine","markAsPending","skipPristineCheck","_parentMarkedDirty","_updateValue","_updateAncestors","changeFn","updateValueAndValidity","_setInitialStatus","_cancelExistingSubscription","_runValidator","_calculateStatus","_runAsyncValidator","_updateTreeValidity","_allControlsDisabled","_asyncValidationSubscription","setErrors","_updateControlsErrors","currPath","_find","_initObservables","_anyControlsHaveStatus","_anyControls","_anyControlsDirty","_anyControlsTouched","_registerOnCollectionChange","_setUpdateStrategy","coerceToValidator","coerceToAsyncValidator","_setUpControls","registerControl","setControl","controlName","_reduceChildren","_syncPendingControls","subtreeUpdated","_reduceValue","initValue","FormRecord","isFormRecord","CALL_SET_DISABLED_STATE","setDisabledStateDefault","controlPath","setUpControl","callSetDisabledState","setUpValidators","setUpViewChangePipeline","_pendingValue","_pendingChange","updateControl","setUpModelChangePipeline","emitModelEvent","viewToModelUpdate","_unregisterOnChange","setUpBlurPipeline","setUpDisabledChangeHandler","onDisabledChange","registerOnDisabledChange","_unregisterOnDisabledChange","cleanUpControl","validateControlPresenceOnChange","cleanUpValidators","registerOnValidatorChange","onValidatorChange","isControlUpdated","updatedValidators","updatedAsyncValidators","setUpFormContainer","isPropertyUpdated","viewModel","syncPendingControls","selectValueAccessor","valueAccessors","defaultAccessor","builtinAccessor","customAccessor","isBuiltInAccessor","formDirectiveProvider$1","NgForm","resolvedPromise$1","_directives","ngSubmit","_findContainer","addFormGroup","removeFormGroup","updateModel","onSubmit","onReset","resetForm","removeListItem","isFormControlState","formState","_applyFormState","nonNullable","initialValueIsDefault","isFormControl","AbstractFormGroupDirective","_checkParentType","modelGroupProvider","NgModelGroup","formControlBinding$1","NgModel","resolvedPromise","_changeDetectorRef","_registered","_checkForErrors","_checkName","oldName","_getPath","_setUpControl","_updateDisabled","_isStandalone","_setUpStandalone","disabledValue","ɵNgNoValidate","NUMBER_VALUE_ACCESSOR","NumberValueAccessor","RADIO_VALUE_ACCESSOR","RadioControlValueAccessor","RadioControlRegistryModule","RadioControlRegistry","_accessors","accessor","_isSameGroup","fireUncheck","controlPair","_control","_registry","setDisabledStateFired","_fn","formControlName","RANGE_VALUE_ACCESSOR","RangeValueAccessor","NG_MODEL_WITH_FORM_CONTROL_WARNING","formControlBinding","FormControlDirective","_ngModelWarningConfig","_ngModelWarningSent","_isControlChanged","previousForm","_ngModelWarningSentOnce","formDirectiveProvider","FormGroupDirective","_updateDomValue","_checkFormPresent","_updateValidators","_updateRegistrations","_oldForm","removeListItem$1","_setUpFormContainer","_cleanUpFormContainer","addFormArray","removeFormArray","getFormArray","oldCtrl","newCtrl","cleanUpFormContainer","formGroupNameProvider","FormGroupName","_hasInvalidParent","formArrayNameProvider","FormArrayName","controlNameBinding","FormControlName","SELECT_VALUE_ACCESSOR","SelectControlValueAccessor","_buildValueString$1","_optionMap","_idCounter","_compareWith","compareWith","valueString","_getOptionId","_getOptionValue","_registerOption","_extractId$1","NgSelectOption","_select","ngValue","_setElementValue","SELECT_MULTIPLE_VALUE_ACCESSOR","SelectMultipleControlValueAccessor","_buildValueString","optionSelectedStateSetter","_setSelected","selectedOptions","_extractId","ɵNgSelectMultipleOption","toInteger","toFloat","AbstractValidatorDirective","_validator","inputName","normalizeInput","_enabled","createValidator","MAX_VALIDATOR","MaxValidator","MIN_VALIDATOR","MinValidator","REQUIRED_VALIDATOR","RequiredValidator","CHECKBOX_REQUIRED_VALIDATOR","CheckboxRequiredValidator","EMAIL_VALIDATOR","EmailValidator","MIN_LENGTH_VALIDATOR","MinLengthValidator","MAX_LENGTH_VALIDATOR","MaxLengthValidator","PATTERN_VALIDATOR","PatternValidator","ɵInternalFormsSharedModule","_registerControl","UntypedFormArray","isFormArray","isAbstractControlOptions","FormBuilder","useNonNullable","nnfb","reducedControls","_reduceControls","createdControls","_createControl","NonNullableFormBuilder","UntypedFormBuilder","controlsConfig","warnOnNgModelWithFormControl"],"sourceRoot":"webpack:///","sources":["./node_modules/@angular/platform-browser/fesm2020/platform-browser.mjs","./src/environments/environment.prod.ts","./node_modules/rxjs/_esm2015/internal/observable/of.js","./node_modules/rxjs/_esm2015/internal/operators/concatMap.js","./node_modules/rxjs/_esm2015/internal/operators/filter.js","./node_modules/@angular/common/fesm2020/http.mjs","./node_modules/rxjs/_esm2015/internal/observable/empty.js","./node_modules/rxjs/_esm2015/internal/observable/defer.js","./node_modules/rxjs/_esm2015/internal/operators/repeatWhen.js","./node_modules/rxjs/_esm2015/internal/scheduler/Action.js","./node_modules/rxjs/_esm2015/internal/Scheduler.js","./node_modules/rxjs/_esm2015/internal/scheduler/AsyncScheduler.js","./node_modules/rxjs/_esm2015/internal/scheduler/async.js","./node_modules/rxjs/_esm2015/internal/scheduler/AsyncAction.js","./node_modules/rxjs/_esm2015/internal/observable/throwError.js","./node_modules/rxjs/_esm2015/internal/Notification.js","./node_modules/rxjs/_esm2015/internal/operators/delay.js","./node_modules/rxjs/_esm2015/internal/operators/retry.js","./node_modules/rxjs/_esm2015/internal/operators/catchError.js","./src/app/_services/latest-user-access.service.ts","./node_modules/rxjs/_esm2015/internal/util/isDate.js","./src/app/_services/user.service.ts","./node_modules/rxjs/_esm2015/internal/BehaviorSubject.js","./node_modules/rxjs/_esm2015/internal/util/EmptyError.js","./node_modules/rxjs/_esm2015/internal/OuterSubscriber.js","./node_modules/rxjs/_esm2015/internal/InnerSubscriber.js","./node_modules/rxjs/_esm2015/internal/util/subscribeToResult.js","./node_modules/rxjs/_esm2015/internal/observable/combineLatest.js","./node_modules/rxjs/_esm2015/internal/observable/concat.js","./node_modules/rxjs/_esm2015/internal/operators/concatAll.js","./node_modules/rxjs/_esm2015/internal/operators/switchMap.js","./node_modules/rxjs/_esm2015/internal/util/ArgumentOutOfRangeError.js","./node_modules/rxjs/_esm2015/internal/operators/take.js","./node_modules/rxjs/_esm2015/internal/operators/defaultIfEmpty.js","./node_modules/rxjs/_esm2015/internal/operators/throwIfEmpty.js","./node_modules/rxjs/_esm2015/internal/operators/first.js","./node_modules/rxjs/_esm2015/internal/util/noop.js","./node_modules/rxjs/_esm2015/internal/operators/tap.js","./node_modules/rxjs/_esm2015/internal/operators/scan.js","./node_modules/rxjs/_esm2015/internal/operators/takeLast.js","./node_modules/rxjs/_esm2015/internal/operators/last.js","./node_modules/rxjs/_esm2015/internal/operators/takeWhile.js","./node_modules/rxjs/_esm2015/internal/operators/mapTo.js","./node_modules/rxjs/_esm2015/internal/operators/finalize.js","./node_modules/@angular/router/fesm2020/router.mjs","./node_modules/rxjs/_esm2015/internal/operators/startWith.js","./src/app/_services/auth.service.ts","./node_modules/subsink/dist/es2015/subsink.js","./src/app/shared/global-error-modal/global-error-modal.service.ts","./src/app/shared/global-error-modal/global-error-modal.component.html","./src/app/shared/global-error-modal/global-error-modal.component.ts","./src/app/app.component.ts","./src/app/app.component.html","./node_modules/@angular/animations/fesm2020/animations.mjs","./node_modules/ngx-toastr/fesm2020/ngx-toastr.mjs","./node_modules/@angular/animations/fesm2020/browser.mjs","./node_modules/@angular/platform-browser/fesm2020/animations.mjs","./src/app/shared/header-interceptor.ts","./src/app/signup/signup.component.html","./src/app/signup/signup.component.ts","./src/app/app.helpers.ts","./src/app/_models/base-object.ts","./src/app/_config/ready-status.enum.ts","./src/app/_config/variable-status.enum.ts","./src/app/_utils/utils.ts","./src/app/_models/simulation-variable.ts","./src/app/_config/unit-operations.config.ts","./src/app/_models/_unit-operations/suncor-constraint.ts","./src/app/_models/_unit-operations/unit-operation-constraints.ts","./src/app/_models/_unit-operations/bitumen-conversion-outlet.ts","./src/app/_config/quantity.enum.ts","./src/app/_config/simulation-variable-name.enum.ts","./src/app/_config/unit-operations/default-models/default-bitumen-conversion-model.ts","./src/app/_config/unit-operations/bitumen-conversion-enums.ts","./src/app/_config/unit-operations/unit-operation-readiness.ts","./src/app/_models/unit-operation.ts","./src/app/_models/_unit-operations/suncor-unit-operation.ts","./src/app/_config/steam-type.enum.ts","./src/app/_models/_unit-operations/steam-use-unit-operation.ts","./src/app/_models/_unit-operations/gas-contributor-unit-operation.ts","./src/app/_models/_unit-operations/bitumen-conversion.ts","./src/app/_models/_unit-operations/diluent-source.ts","./src/app/_models/_unit-operations/suncor-unit-op-with-cogen.ts","./src/app/_models/_unit-operations/mine-source.ts","./src/app/_config/unit-operations/mixer-enums.ts","./src/app/_models/_unit-operations/distribution-ratio-variable.ts","./src/app/_models/_unit-operations/range-distribution-ratio-variable.ts","./src/app/_models/_unit-operations/range-distribution-constraint.ts","./src/app/_models/_unit-operations/mixing-constraints.ts","./src/app/_models/_unit-operations/mixer.ts","./src/app/_models/_unit-operations/sagd-source.ts","./src/app/_models/_unit-operations/pipe.ts","./src/app/_models/_unit-operations/refinery.ts","./src/app/_models/_unit-operations/third-party-refinery.ts","./src/app/_models/_unit-operations/splitter.ts","./src/app/_config/unit-operations/default-models/default-upgrader-model.ts","./src/app/_models/_unit-operations/upgrader.ts","./src/app/_models/_unit-operations/third-party-source.ts","./src/app/_models/_unit-operations/offshore-source.ts","./src/app/_models/_unit-operations/suncor-renewable.ts","./src/app/_models/_unit-operations/suncor-renewable-block.ts","./src/app/_models/_unit-operations/distribution-ratio-variable-per-cut.ts","./src/app/_models/_unit-operations/boiling-point-cut.ts","./src/app/_models/_unit-operations/dru.ts","./src/app/_models/_unit-operations/vac.ts","./src/app/_models/_unit-operations/upgrader-inlet.ts","./src/app/_models/_unit-operations/hydrotreater.ts","./src/app/_config/unit-operations/default-models/default-dcu-model.ts","./src/app/_models/_unit-operations/dcu.ts","./src/app/_models/_unit-operations/generic-sink.ts","./src/app/_config/unit-operations/commodity-tank-enums.ts","./src/app/_models/_unit-operations/commodity-tank.ts","./src/app/_models/product-tank.ts","./src/app/_config/unit-operations/default-models/default-hydrocracker-model.ts","./src/app/_models/_unit-operations/hydrocracker.ts","./src/app/_models/_unit-operations/extraction.ts","./src/app/_models/_unit-operations/inlet-transfer-unit.ts","./src/app/_models/_unit-operations/outlet-transfer-unit.ts","./src/app/_models/_unit-operations/utilties/water-unit-operation.ts","./src/app/_models/_unit-operations/utilties/water-source.ts","./src/app/_config/water-heat-exchanger-configuration.enum.ts","./src/app/_config/water-heat-exchanger-temperature-calculation-mode.enum.ts","./src/app/_models/_unit-operations/utilties/water-heat-exchanger.ts","./src/app/_config/pressure-calculation-mode.enum.ts","./src/app/_models/_unit-operations/utilties/water-turbine.ts","./src/app/_config/temperature-calculation-mode.enum.ts","./src/app/_models/_unit-operations/utilties/water-heater.ts","./src/app/_models/_unit-operations/utilties/water-cooler.ts","./src/app/_models/_unit-operations/utilties/water-two-phase-separator.ts","./src/app/_models/_unit-operations/utilties/water-pump.ts","./src/app/_models/_unit-operations/utilties/water-utility-unit-operation.ts","./src/app/_models/_unit-operations/utilties/water-valve.ts","./src/app/_models/_unit-operations/utilties/water-sink.ts","./src/app/_models/_unit-operations/utilties/water-mixer.ts","./src/app/_models/_unit-operations/utilties/base-water-splitter.ts","./src/app/_models/_unit-operations/utilties/water-splitter.ts","./src/app/_models/_unit-operations/fluid-coker.ts","./src/app/_config/thermal-calculation-mode.enum.ts","./src/app/_config/water-pipe-pressure-model.enum.ts","./src/app/_models/_unit-operations/utilties/water-pipe-segment.ts","./src/app/_utils/array-diff.ts","./src/app/_models/_unit-operations/utilties/water-pipe.ts","./src/app/_config/unit-operations/hgo-hydroteater-catalyst-run.enum.ts","./src/app/_config/unit-operations/default-models/default-hgo-hydrotreater-model.ts","./src/app/_models/_unit-operations/hgo-hydrotreater.ts","./src/app/_models/_unit-operations/utilties/water-source-information-stream.ts","./src/app/_models/_unit-operations/utilties/base-water-import-unit-operation.ts","./src/app/_models/_unit-operations/utilties/water-source-import.ts","./src/app/_models/_unit-operations/utilties/water-sink-import.ts","./src/app/_config/unit-operations/lgo-hydroteater.enum.ts","./src/app/_config/unit-operations/default-models/default-lgo-hydrotreater-model.ts","./src/app/_models/_unit-operations/lgo-hydrotreater.ts","./src/app/_models/_unit-operations/utilties/water-boiler.ts","./src/app/_models/_unit-operations/utilties/water-header.ts","./src/app/_models/_unit-operations/hydrogen-plant.ts","./src/app/_models/_unit-operations/sulfur-plant.ts","./src/app/_models/_unit-operations/fuel-gas/fuel-gas-utility-unit-operation.ts","./src/app/_models/_unit-operations/fuel-gas/fuel-gas-unit-operation.ts","./src/app/_models/_unit-operations/fuel-gas/fuel-gas-flare.ts","./src/app/_models/_unit-operations/fuel-gas/fuel-gas-sink.ts","./src/app/_models/_unit-operations/fuel-gas/energy-stream.ts","./src/app/_models/_unit-operations/fuel-gas/fuel-gas-sink-import.ts","./src/app/_models/_unit-operations/fuel-gas/fuel-gas-source-information-stream.ts","./src/app/_models/_unit-operations/fuel-gas/fuel-gas-source-import.ts","./src/app/_models/_unit-operations/fuel-gas/fuel-gas-mixer.ts","./src/app/_models/_unit-operations/fuel-gas/fuel-gas-source.ts","./src/app/_models/_unit-operations/fuel-gas/base-fuel-gas-splitter.ts","./src/app/_models/_unit-operations/fuel-gas/fuel-gas-splitter.ts","./src/app/_models/_unit-operations/fuel-gas/fuel-gas-amine-contactor.ts","./src/app/_models/_unit-operations/utilties/water-cogeneration.ts","./src/app/_models/_unit-operations/unit-operation-factory.ts","./src/app/_models/_fluid/cut.ts","./src/app/_models/color.generator.ts","./src/app/_models/_streams/base-stream.ts","./src/app/_config/stream-composition-names.enum.ts","./src/app/_utils/enum-values-to-array.ts","./src/app/_config/distillation-composition-names.enum.ts","./src/app/_models/_streams/suncor-material-stream.ts","./src/app/_models/case-settings.ts","./src/app/_models/_case-study/case-study-category.ts","./src/app/_models/suncor-calculator.ts","./src/app/_models/flowsheet-manager/flowsheet.ts","./src/app/_config/stream-category.enum.ts","./src/app/_models/_streams/water-material-stream.ts","./src/app/_models/_streams/fuel-gas-material-stream.ts","./src/app/_models/case.ts","./src/app/_models/_case-study/parameter.ts","./src/app/_models/_case-study/uncertain-parameter.ts","./src/app/_models/_case-study/kpi-result.ts","./src/app/_models/_case-study/parameter-sensitivity.ts","./src/app/_models/_case-study/uncertainty-analysis.ts","./src/app/_models/_case-study/parametric-study-kpi-result.ts","./src/app/_models/simulation-variable-array.ts","./src/app/_models/_case-study/parametric-study-parameter.ts","./src/app/_models/_case-study/parametric-study.ts","./src/app/_models/_case-study/parameter-provider.ts","./src/app/_models/_case-study/kpi-provider.ts","./src/app/_models/_multi-period/multi-period-parameter.ts","./src/app/_models/_case-study/case-study-manager.ts","./src/app/_models/_case-study/kpi-manager.ts","./src/app/_models/_optimization/objective-function.ts","./src/app/_models/_fluid/fluid-analysis.ts","./src/app/_models/_fluid/compound.ts","./src/app/_models/_fluid/suncor-hypothetical-compound.ts","./src/app/_models/_fluid/suncor-fluid-analysis.ts","./src/app/_models/_fluid/gas-fluid-analysis.ts","./src/app/_models/_fluid/assay-manager.ts","./src/app/_models/_multi-period/multi-period-settings.ts","./src/app/_models/project.ts","./src/app/_models/solve-case-canceller.ts","./src/app/_models/api-objects-backup-manager.ts","./src/app/flowsheet/log-manager/log-manager.service.ts","./src/app/flowsheet/progress-indicator/progress-indicator.service.ts","./src/app/_services/api.service.ts","./src/app/_models/_gojs/gojs-base-stream.ts","./src/app/_models/_gojs/gojs-suncor-material-stream.ts","./src/app/_models/_gojs/gojs-unit-operation.ts","./src/app/_models/_interfaces/constrainable-object.ts","./src/app/_models/_gojs/gojs-water-material-stream.ts","./src/app/_models/_gojs/gojs-fuel-gas-material-stream.ts","./src/app/_models/_gojs/gojs-stream-factory.ts","./src/app/_services/flowsheet-diagram/flowsheet-diagram.service.ts","./src/app/_models/_validation/old-case-validator.ts","./src/app/_config/app-info.ts","./src/app/_models/base-object-factory.ts","./src/app/_services/case-deserializer/other-base-object-pool-deserializer.ts","./src/app/_services/resource-data.service.ts","./src/app/_models/constraint-violation-entry.ts","./src/app/_models/marginal-value-entry.ts","./src/app/_models/_streams/stream-factory.ts","./src/app/_models/base-object-comment.ts","./src/app/_services/case-deserializer/case-deserializer.service.ts","./src/app/_compatibility/v-1-0-2.ts","./src/app/_compatibility/v201.ts","./src/app/_compatibility/v210.ts","./src/app/_compatibility/v2100.ts","./src/app/_services/compatibility-service.ts","./src/app/_services/after-deserialization-compatibility-service.ts","./src/app/_services/project-deserializer/project-deserializer.service.ts","./src/app/_models/_gojs/sankey-unit-operation.ts","./src/app/_models/_gojs/sankey-suncor-material-stream.ts","./src/app/_models/_gojs/sankey-water-material-stream.ts","./src/app/_models/_gojs/sankey-fuel-gas-material-stream.ts","./src/app/flowsheet/sankey-diagram/sankey-diagram.service.ts","./src/app/_services/file.service.ts","./src/app/_mappers/default-base-object-form-group.mapper.ts","./src/app/_mappers/water-boiler-form-group.mapper.ts","./src/app/_mappers/water-source-import-form-group.mapper.ts","./src/app/_mappers/water-sink-import-form-group.mapper.ts","./src/app/_mappers/base-water-splitter-form-group.mapper.ts","./src/app/_mappers/water-header-form-group.mapper.ts","./src/app/_mappers/water-splitter-form-group.mapper.ts","./src/app/_mappers/fuel-gas-sink-import-form-group.mapper.ts","./src/app/_mappers/fuel-gas-source-import-form-group.mapper.ts","./src/app/_mappers/base-fuel-gas-splitter-form-group.mapper.ts","./src/app/_mappers/fuel-gas-splitter-form-group.mapper.ts","./src/app/_mappers/water-source-form-group.mapper.ts","./src/app/_mappers/base-splitter-form-group.mapper.ts","./src/app/_mappers/splitter-form-group.mapper.ts","./src/app/_mappers/base-product-tank-form-group.mapper.ts","./src/app/_mappers/product-tank-form-group.mapper.ts","./src/app/_mappers/hydrotreater-form-group-mapper.ts","./src/app/_mappers/mixer-form-group.mapper.ts","./src/app/_mappers/bitumen-conversion-form-group-mapper.ts","./src/app/_mappers/base-object-form-group.mapper.ts","./src/app/_mappers/simulation-variable-mapper.ts","./src/app/_models/_unit-operations/inlet-distribution-ratio-variables-owner.ts","./src/app/_models/_unit-operations/outlet-distribution-ratio-variables-owner.ts","./src/app/flowsheet/send-case-modal/send-case-modal.service.ts","./src/app/_services/core.service.ts","./src/app/_services/sub-flowsheet/abstract-sub-flowsheet-handler.ts","./src/app/_services/sub-flowsheet/upgrader-sub-flowsheet-handler.service.ts","./src/app/_services/sub-flowsheet/extraction-sub-flowsheet-handler.service.ts","./src/app/_services/sub-flowsheet/utilities-flowsheet-handler.ts","./src/app/_services/sub-flowsheet/fuel-gas-sub-flowsheet-handler.ts","./src/app/_services/sub-flowsheet/sub-flowsheet.service.ts","./src/app/_utils/optea-utils.ts","./src/app/_form-utils/default-base-object-form-change-detector.ts","./src/app/_form-utils/water-sink-import-form-change-detector.ts","./src/app/_form-utils/water-source-import-form-change-detector.ts","./src/app/_form-utils/water-header-form-change-detector.ts","./src/app/_form-utils/water-splitter-form-change-detector.ts","./src/app/_form-utils/fuel-gas-splitter-form-change-detector.ts","./src/app/_form-utils/fuel-gas-sink-import-form-change-detector.ts","./src/app/_form-utils/fuel-gas-source-import-form-change-detector.ts","./src/app/_form-utils/splitter-form-change-detector.ts","./src/app/_form-utils/lgo-hydrotreater-form-change-detector.ts","./src/app/_form-utils/product-tank-form-change-detector.ts","./src/app/_form-utils/mixer-form-change-detector.ts","./src/app/_form-utils/bitumen-conversion-form-change-detector.ts","./src/app/_form-utils/base-object-form-change-detector.ts","./src/app/_form-utils/base-object-form-group-wrapper.ts","./src/app/_services/flowsheet.service.ts","./src/app/flowsheet/case-study/uncertainty-analysis/uncertainty-analysis-component.service.ts","./src/app/_services/case-study/uncertainty-analysis-api.service.ts","./src/app/_services/case-study/uncertainty-analysis.service.ts","./src/app/_services/case-stats.service.ts","./src/app/_services/helpers/server-utc-date.service.ts","./src/app/_services/helpers/comments.service.ts","./node_modules/@codemirror/state/dist/index.js","./node_modules/style-mod/src/style-mod.js","./node_modules/w3c-keyname/index.js","./node_modules/@codemirror/view/dist/index.js","./node_modules/@lezer/common/dist/index.js","./node_modules/@lezer/highlight/dist/index.js","./node_modules/@codemirror/language/dist/index.js","./node_modules/@codemirror/autocomplete/dist/index.js","./node_modules/@codemirror/legacy-modes/mode/clike.js","./node_modules/@codemirror/commands/dist/index.js","./node_modules/crelt/index.js","./node_modules/@codemirror/search/dist/index.js","./node_modules/@codemirror/lint/dist/index.js","./src/app/flowsheet/code-editor/codemirror-custom-basic-setup.ts","./src/app/flowsheet/code-editor/code-editor.service.ts","./src/app/flowsheet/code-editor/code-editor.component.html","./src/app/flowsheet/code-editor/code-editor.component.ts","./src/app/_services/download-manual.service.ts","./src/app/flowsheet/flowsheet-side-menu/flowsheet-side-menu.component.html","./src/app/flowsheet/flowsheet-side-menu/flowsheet-side-menu.component.ts","./src/app/_services/multi-period/multi-period.service.ts","./src/app/flowsheet/flowsheet-view-selector/flowsheet-view-selector.component.html","./src/app/flowsheet/flowsheet-view-selector/flowsheet-view-selector.component.ts","./src/app/flowsheet/flowsheet-navbar/flowsheet-navbar.component.html","./src/app/flowsheet/flowsheet-navbar/flowsheet-navbar.component.ts","./src/app/_services/flowsheet-diagram/go-js-diagram-utils.ts","./src/app/_config/other-diagram.object.ts","./src/app/_services/flowsheet-diagram/flowsheet-diagram-template-provider.service.ts","./src/app/_services/flowsheet-diagram/utilities-flowsheet-template-provider.ts","./src/app/flowsheet/diagram-item-color-picker/diagram-item-color-picker.service.ts","./src/app/_services/flowsheet-diagram/other-diagram-objects-template-provider.ts","./src/app/_services/flowsheet-diagram/fuel-gas-flowsheet-template-provider.ts","./src/app/flowsheet/flowsheet-diagram/flowsheet-diagram.component.ts","./src/app/flowsheet/flowsheet-diagram/flowsheet-diagram.component.html","./src/app/_services/flowsheet-palette/gojs-palette-utils.ts","./src/app/_services/flowsheet-palette/abstract-sub-flowsheet-palette-handler.ts","./src/app/_services/flowsheet-palette/upgrader-palette-handler.ts","./src/app/_services/flowsheet-palette/first-level-palette-model-provider.ts","./src/app/_services/flowsheet-palette/extraction-palette-handler.service.ts","./src/app/_services/flowsheet-palette/utilities-palette-handler.ts","./src/app/_services/flowsheet-palette/fuel-gas-palette-handler.ts","./src/app/_models/flowsheet-manager/flowsheet-tree-node.ts","./src/app/_models/flowsheet-manager/flowsheet-tree-root.ts","./src/app/_models/flowsheet-manager/flowsheet-tree.ts","./src/app/_services/sub-flowsheet/flowsheet-tree/flowsheet-tree.service.ts","./src/app/flowsheet/flowsheet-diagram-palette/flowsheet-diagram-palette.component.ts","./src/app/flowsheet/flowsheet-diagram-palette/flowsheet-diagram-palette.component.html","./src/app/flowsheet/shared/unit-converter.helper.ts","./src/app/flowsheet/shared/value-input/value-input.component.ts","./src/app/flowsheet/shared/unit-select/unit-select.component.ts","./src/app/flowsheet/shared/multiple-sim-var-input/multiple-sim-var-input.directive.ts","./src/app/flowsheet/shared/sim-var-input/sim-var-input.component.ts","./src/app/flowsheet/shared/collapse-panel-icon/collapse-panel-icon.directive.ts","./src/app/flowsheet/shared/cut/cut.component.html","./src/app/flowsheet/shared/cut/cut.component.ts","./src/app/flowsheet/shared/cut-properties/cut-properties.component.ts","./src/app/flowsheet/shared/cut-properties/cut-properties.component.html","./src/app/flowsheet/assay-manager/assay-selector/assay-selector.component.html","./src/app/flowsheet/assay-manager/assay-selector/assay-selector.component.ts","./src/app/flowsheet/unit-operation-comments/unit-operation-comments.component.html","./src/app/flowsheet/unit-operation-comments/unit-operation-comments.component.ts","./src/app/shared/keys.pipe.ts","./src/app/shared/title-case-composition-name.pipe.ts","./src/app/flowsheet/property-window/diluent-source/diluent-source.component.html","./src/app/flowsheet/property-window/diluent-source/diluent-source.component.ts","./src/app/flowsheet/property-window/mine-source/mine-source.component.html","./src/app/flowsheet/property-window/mine-source/mine-source.component.ts","./src/app/flowsheet/property-window/sagd-source/sagd-source.component.html","./src/app/flowsheet/property-window/sagd-source/sagd-source.component.ts","./src/app/_form-utils/sim-var-form-builder.ts","./src/app/shared/reactive-variable-value-input/reactive-variable-value-input.component.ts","./src/app/shared/reactive-unit-select/reactive-unit-select.component.ts","./src/app/shared/reactive-constraint-check-box/reactive-constraint-check-box.component.ts","./src/app/shared/reactive-sim-var-input.directive.ts","./src/app/flowsheet/property-window/refinery/refinery.component.html","./src/app/flowsheet/property-window/refinery/refinery.component.ts","./src/app/flowsheet/property-window/third-party-refinery/third-party-refinery.component.ts","./src/app/flowsheet/property-window/third-party-refinery/third-party-refinery.component.html","./src/app/_services/custom-code-providers/base-code-editor-autocompletions.ts","./src/app/_config/codemirror-completion.type.ts","./src/app/_config/unit-operations/custom-code-completions/xtrema-suncor-base-api-completions.ts","./src/app/_services/custom-code-providers/default-code-provider.ts","./src/app/_services/custom-code-providers/upgrader-code-provider.ts","./node_modules/rxjs/_esm2015/internal/operators/takeUntil.js","./src/app/flowsheet/code-editor/open-code-editor-button/open-code-editor-button.component.ts","./src/app/flowsheet/code-editor/open-code-editor-button/open-code-editor-button.component.html","./src/app/flowsheet/property-window/upgrader/upgrader.component.html","./src/app/flowsheet/property-window/upgrader/upgrader.component.ts","./src/app/_config/unit-operations/default-models/default-steam-model-for-hydrogen-plants.ts","./src/app/flowsheet/property-window/abstract-form-group-property-window.ts","./src/app/shared/identifiable-form-group.ts","./src/app/_form-utils/range-distribution-ratio-variable-form-builder.ts","./src/app/flowsheet/shared/reactive-range-distribution-ratio-variables/reactive-range-distribution-ratio-variables.component.html","./src/app/flowsheet/shared/reactive-range-distribution-ratio-variables/reactive-range-distribution-ratio-variables.component.ts","./src/app/flowsheet/property-window/splitter/splitter.component.ts","./src/app/flowsheet/property-window/splitter/splitter.component.html","./src/app/flowsheet/property-window/mixer/mixer.component.html","./src/app/flowsheet/property-window/mixer/mixer.component.ts","./src/app/flowsheet/property-window/third-party-source/third-party-source.component.html","./src/app/flowsheet/property-window/third-party-source/third-party-source.component.ts","./src/app/flowsheet/property-window/offshore-source/offshore-source.component.html","./src/app/flowsheet/property-window/offshore-source/offshore-source.component.ts","./src/app/flowsheet/property-window/suncor-renewable-block/suncor-renewable/suncor-renewable.component.ts","./src/app/flowsheet/property-window/suncor-renewable-block/suncor-renewable/suncor-renewable.component.html","./src/app/flowsheet/property-window/suncor-renewable-block/suncor-renewable-block.component.html","./src/app/flowsheet/property-window/suncor-renewable-block/suncor-renewable-block.component.ts","./src/app/_config/unit-operations/default-models/default-steam-model.ts","./src/app/_config/unit-operations/custom-code-completions/steam-contributor-code-completions.ts","./src/app/_services/custom-code-providers/steam-contributor-code-provider.ts","./src/app/flowsheet/shared/steam-use-utility/steam-use-utility.component.html","./src/app/flowsheet/shared/steam-use-utility/steam-use-utility.component.ts","./src/app/_config/unit-operations/default-models/default-gas-contributor-model.ts","./src/app/_config/unit-operations/custom-code-completions/gas-contributor-code-completions.ts","./src/app/_services/custom-code-providers/gas-contributor-code-provider.ts","./src/app/flowsheet/shared/gas-contributor/gas-contributor.component.html","./src/app/flowsheet/shared/gas-contributor/gas-contributor.component.ts","./src/app/flowsheet/property-window/dru/dru.component.html","./src/app/flowsheet/property-window/dru/dru.component.ts","./src/app/flowsheet/property-window/vac/vac.component.html","./src/app/flowsheet/property-window/vac/vac.component.ts","./src/app/flowsheet/shared/bulk-properties/bulk-properties.component.ts","./src/app/flowsheet/shared/bulk-properties/bulk-properties.component.html","./src/app/shared/reactive-multiple-variable-input.directive.ts","./src/app/flowsheet/shared/composition/composition.component.html","./src/app/flowsheet/shared/composition/composition.component.ts","./src/app/flowsheet/shared/reactive-cut/reactive-cut.component.html","./src/app/flowsheet/shared/reactive-cut/reactive-cut.component.ts","./src/app/flowsheet/shared/reactive-cut-properties/reactive-cut-properties.component.ts","./src/app/flowsheet/shared/reactive-cut-properties/reactive-cut-properties.component.html","./src/app/flowsheet/shared/range-distriburion-ratio-variable/range-distribution-ratio-variable.component.html","./src/app/flowsheet/shared/range-distriburion-ratio-variable/range-distribution-ratio-variable.component.ts","./src/app/flowsheet/reactive-code-editor/open-reactive-code-editor-button/open-reactive-code-editor-button.component.ts","./src/app/flowsheet/reactive-code-editor/open-reactive-code-editor-button/open-reactive-code-editor-button.component.html","./src/app/flowsheet/shared/reactive-sob-steam-use-utility/reactive-steam-use-utility.component.html","./src/app/flowsheet/shared/reactive-sob-steam-use-utility/reactive-steam-use-utility.component.ts","./src/app/flowsheet/shared/reactive-gas-contributor/reactive-gas-contributor.component.html","./src/app/flowsheet/shared/reactive-gas-contributor/reactive-gas-contributor.component.ts","./src/app/flowsheet/property-window/hydrotreater/hydrotreater.component.html","./src/app/flowsheet/property-window/hydrotreater/hydrotreater.component.ts","./src/app/_config/unit-operations/custom-code-completions/dcu-code-completions.ts","./src/app/_services/custom-code-providers/dcu-code-provider.ts","./src/app/flowsheet/property-window/dcu/dcu.component.ts","./src/app/flowsheet/property-window/dcu/dcu.component.html","./src/app/flowsheet/property-window/commodity-tank/commodity-tank.component.ts","./src/app/flowsheet/property-window/commodity-tank/commodity-tank.component.html","./src/app/flowsheet/property-window/product-tank/product-tank.component.html","./src/app/flowsheet/property-window/product-tank/product-tank.component.ts","./src/app/_config/unit-operations/custom-code-completions/hydrocracker-code-completions.ts","./src/app/_services/custom-code-providers/hydrocracker-code-provider.ts","./src/app/flowsheet/property-window/hydrocracker/hydrocracker.component.ts","./src/app/flowsheet/property-window/hydrocracker/hydrocracker.component.html","./src/app/flowsheet/property-window/extraction/extraction.component.html","./src/app/flowsheet/property-window/extraction/extraction.component.ts","./src/app/flowsheet/property-window/water-turbine/water-turbine.component.html","./src/app/flowsheet/property-window/water-turbine/water-turbine.component.ts","./src/app/flowsheet/property-window/water-heat-exchanger/water-heat-exchanger.component.ts","./src/app/flowsheet/property-window/water-heat-exchanger/water-heat-exchanger.component.html","./src/app/flowsheet/property-window/water-heater/water-heater.component.ts","./src/app/flowsheet/property-window/water-heater/water-heater.component.html","./src/app/flowsheet/property-window/water-cooler/water-cooler.component.html","./src/app/flowsheet/property-window/water-cooler/water-cooler.component.ts","./src/app/_config/unitSubset.enum.ts","./src/app/flowsheet/property-window/water-two-phase-separator/water-two-phase-separator.component.ts","./src/app/flowsheet/property-window/water-two-phase-separator/water-two-phase-separator.component.html","./src/app/flowsheet/property-window/water-pump/water-pump.component.ts","./src/app/flowsheet/property-window/water-pump/water-pump.component.html","./src/app/flowsheet/property-window/water-utility-unit-operation/water-utility-unit-operation.component.ts","./src/app/flowsheet/property-window/water-utility-unit-operation/water-utility-unit-operation.component.html","./src/app/flowsheet/property-window/water-valve/water-valve.component.ts","./src/app/flowsheet/property-window/water-valve/water-valve.component.html","./src/app/flowsheet/property-window/water-mixer/water-mixer.component.ts","./src/app/flowsheet/property-window/water-mixer/water-mixer.component.html","./src/app/flowsheet/property-window/water-splitter/water-splitter.component.html","./src/app/flowsheet/property-window/water-splitter/water-splitter.component.ts","./src/app/flowsheet/property-window/water-sink/water-sink.component.ts","./src/app/flowsheet/property-window/water-sink/water-sink.component.html","./src/app/flowsheet/property-window/fluid-coker/fluid-coker.component.ts","./src/app/flowsheet/property-window/fluid-coker/fluid-coker.component.html","./src/app/flowsheet/property-window/hydrogen-plant/hydrogen-plant.component.ts","./src/app/flowsheet/property-window/hydrogen-plant/hydrogen-plant.component.html","./src/app/_services/property-window/assay-selector.helper.ts","./src/app/_config/unit-operations/custom-code-completions/hgo-hydrotreater-code-completions.ts","./src/app/_services/custom-code-providers/hgo-hydrotreater-code-provider.ts","./src/app/flowsheet/property-window/hgo-hydrotreater/hgo-hydrotreater.component.html","./src/app/flowsheet/property-window/hgo-hydrotreater/hgo-hydrotreater.component.ts","./src/app/_config/unit-operations/custom-code-completions/lgo-hydrotreater-code-completions.ts","./src/app/_services/custom-code-providers/lgo-hydrotreater-code-provider.ts","./src/app/flowsheet/property-window/lgo-hydrotreater/lgo-hydrotreater.component.html","./src/app/flowsheet/property-window/lgo-hydrotreater/lgo-hydrotreater.component.ts","./src/app/flowsheet/property-window/water-source-information-stream-form/water-source-information-stream-form.component.ts","./src/app/flowsheet/property-window/water-source-information-stream-form/water-source-information-stream-form.component.html","./src/app/flowsheet/property-window/abstract-water-information-stream-property-window.ts","./src/app/flowsheet/property-window/water-source-import/water-source-import.component.html","./src/app/flowsheet/property-window/water-source-import/water-source-import.component.ts","./src/app/flowsheet/property-window/water-pipe/water-pipe.component.html","./src/app/flowsheet/property-window/water-pipe/water-pipe.component.ts","./src/app/flowsheet/property-window/water-sink-import/water-sink-import.component.html","./src/app/flowsheet/property-window/water-sink-import/water-sink-import.component.ts","./src/app/flowsheet/property-window/water-boiler/water-boiler.component.ts","./src/app/flowsheet/property-window/water-boiler/water-boiler.component.html","./src/app/flowsheet/property-window/sulfur-plant/sulfur-plant.component.ts","./src/app/flowsheet/property-window/sulfur-plant/sulfur-plant.component.html","./src/app/flowsheet/property-window/water-header/water-header.component.html","./src/app/flowsheet/property-window/water-header/water-header.component.ts","./src/app/flowsheet/property-window/fuel-gas-utility/fuel-gas-utility-unit-operation.component.ts","./src/app/flowsheet/property-window/fuel-gas-utility/fuel-gas-utility-unit-operation.component.html","./src/app/flowsheet/property-window/water-cogeneration/water-cogeneration.component.html","./src/app/flowsheet/property-window/water-cogeneration/water-cogeneration.component.ts","./src/app/_config/unit-operations/default-models/default-water-cogeneration-model.ts","./src/app/flowsheet/property-window/fuel-gas-flare/fuel-gas-flare.component.html","./src/app/flowsheet/property-window/fuel-gas-flare/fuel-gas-flare.component.ts","./src/app/flowsheet/property-window/fuel-gas-sink/fuel-gas-sink.component.html","./src/app/flowsheet/property-window/fuel-gas-sink/fuel-gas-sink.component.ts","./src/app/flowsheet/property-window/energy-stream-form/energy-stream-form.component.ts","./src/app/flowsheet/property-window/energy-stream-form/energy-stream-form.component.html","./src/app/flowsheet/property-window/fuel-gas-sink-import/fuel-gas-sink-import.component.html","./src/app/flowsheet/property-window/fuel-gas-sink-import/fuel-gas-sink-import.component.ts","./src/app/flowsheet/property-window/fuel-gas-source-information-stream-form/fuel-gas-source-information-stream-form.component.ts","./src/app/flowsheet/property-window/fuel-gas-source-information-stream-form/fuel-gas-source-information-stream-form.component.html","./src/app/flowsheet/property-window/fuel-gas-source-import/fuel-gas-source-import.component.html","./src/app/flowsheet/property-window/fuel-gas-source-import/fuel-gas-source-import.component.ts","./src/app/flowsheet/property-window/fuel-gas-mixer/fuel-gas-mixer.component.html","./src/app/flowsheet/property-window/fuel-gas-mixer/fuel-gas-mixer.component.ts","./src/app/flowsheet/property-window/fuel-gas-source/fuel-gas-source.component.html","./src/app/flowsheet/property-window/fuel-gas-source/fuel-gas-source.component.ts","./src/app/flowsheet/property-window/fuel-gas-splitter/fuel-gas-splitter.component.html","./src/app/flowsheet/property-window/fuel-gas-splitter/fuel-gas-splitter.component.ts","./src/app/flowsheet/property-window/fuel-gas-amine-contactor/fuel-gas-amine-contactor.component.ts","./src/app/flowsheet/property-window/fuel-gas-amine-contactor/fuel-gas-amine-contactor.component.html","./src/app/flowsheet/property-window/water-source/water-source.component.ts","./src/app/flowsheet/property-window/water-source/water-source.component.html","./src/app/flowsheet/property-window/pipe/pipe.component.ts","./src/app/flowsheet/property-window/pipe/pipe.component.html","./src/app/_config/assay-type.enum.ts","./src/app/_config/unit-operations/custom-code-completions/bitumen-conversion-completions.ts","./src/app/_services/custom-code-providers/bitumen-conversion-code-provider.ts","./src/app/_form-utils/bitumen-conversion-outlet-form-builder.ts","./src/app/flowsheet/property-window/bitumen-conversion/bitumen-conversion.component.html","./src/app/flowsheet/property-window/bitumen-conversion/bitumen-conversion.component.ts","./src/app/flowsheet/property-window/property-window.component.html","./src/app/flowsheet/property-window/property-window.component.ts","./src/app/flowsheet/objective-function-selector/objective-function-selector.component.ts","./src/app/flowsheet/objective-function-selector/objective-function-selector.component.html","./src/app/flowsheet/case-settings/case-settings.component.html","./src/app/flowsheet/case-settings/case-settings.component.ts","./src/app/_config/stream-composition-type.enum.ts","./node_modules/ngx-color-picker/__ivy_ngcc__/fesm2015/ngx-color-picker.js","./src/app/flowsheet/property-window/material-stream/material-stream.component.html","./src/app/flowsheet/property-window/material-stream/material-stream.component.ts","./src/app/flowsheet/save-case-file/save-case-file.component.ts","./src/app/flowsheet/save-case-file/save-case-file.component.html","./src/app/_services/project-deserializer/project-file-loader.service.ts","./src/app/flowsheet/open-case-file/open-case-file.component.ts","./src/app/flowsheet/open-case-file/open-case-file.component.html","./src/app/flowsheet/log-manager/log-manager.component.ts","./src/app/flowsheet/log-manager/log-manager.component.html","./src/app/flowsheet/case-status-indicator/case-status-indicator.component.html","./src/app/flowsheet/case-status-indicator/case-status-indicator.component.ts","./src/app/flowsheet/bottom-bar/bottom-bar.component.ts","./src/app/flowsheet/bottom-bar/bottom-bar.component.html","./src/app/_models/_reports/report-value.ts","./src/app/_models/_reports/report-data-set.ts","./src/app/_models/_reports/ghg-emissions-report.ts","./src/app/_models/_reports/refinery-flow-rates-report.ts","./src/app/_models/_reports/revenue-report.ts","./src/app/_models/_reports/diluent-flow-rates-report.ts","./src/app/_models/_reports/_optimization-settings-table/optimization-report-variable.ts","./src/app/_models/_reports/_optimization-settings-table/optimization-variables-report.ts","./src/app/_models/_reports/_optimization-settings-table/base-constraint-report-variable.ts","./src/app/_models/_reports/_optimization-settings-table/variable-resolvers/water-boiler-constraint-report-variable-resolver.ts","./src/app/_models/_reports/_optimization-settings-table/variable-resolvers/water-turbine-constraint-report-variable-resolver.ts","./src/app/_models/_reports/_optimization-settings-table/variable-resolvers/water-cogeneration-constraint-report-variable-resolver.ts","./src/app/_models/_reports/_optimization-settings-table/variable-resolvers/water-valve-constraint-report-variable-resolver.ts","./src/app/_models/_reports/_optimization-settings-table/variable-resolvers/water-sink-import-constraint-report-variable-resolver.ts","./src/app/_models/_reports/_optimization-settings-table/variable-resolvers/fuel-gas-sink-import-constraint-report-variable-resolver.ts","./src/app/_models/_reports/_optimization-settings-table/variable-resolvers/hgo-hydrotreater-constraint-report-variable-resolver.ts","./src/app/_models/_reports/_optimization-settings-table/variable-resolvers/lgo-hydrotreater-constraint-report-variable-resolver.ts","./src/app/_models/_reports/_optimization-settings-table/variable-resolvers/water-sink-constraint-report-variable-resolver.ts","./src/app/_models/_reports/_optimization-settings-table/variable-resolvers/fluid-coker-constraint-report-variable-resolver.ts","./src/app/_models/_reports/_optimization-settings-table/variable-resolvers/upgrader-constraint-report-variable-resolver.ts","./src/app/_models/_reports/_optimization-settings-table/variable-resolvers/commodity-tank-report-variable-resolver.ts","./src/app/_models/_reports/_optimization-settings-table/constraint-report-variable.ts","./src/app/_models/_reports/_optimization-settings-table/mixing-constraint-report-variable.ts","./src/app/_models/_reports/_optimization-settings-table/constraints-report.ts","./src/app/_models/_reports/capex-report.ts","./src/app/_models/_reports/opex-report.ts","./src/app/_services/report.service.ts","./src/app/flowsheet/summary-report/insights/insights.component.html","./src/app/flowsheet/summary-report/insights/insights.component.ts","./src/app/shared/thousand-separator.pipe.ts","./src/app/flowsheet/summary-report/ghg-summary-report/ghg-summary-report.component.html","./src/app/flowsheet/summary-report/ghg-summary-report/ghg-summary-report.component.ts","./src/app/flowsheet/summary-report/summary-report.component.html","./src/app/flowsheet/summary-report/summary-report.component.ts","./src/app/flowsheet/progress-indicator/progress-indicator.component.html","./src/app/flowsheet/progress-indicator/progress-indicator.component.ts","./node_modules/xlsx/xlsx.mjs","./src/app/_services/excel-report/xlsx.utils.ts","./src/app/_services/excel-report/workbook.ts","./src/app/_services/excel-report/excel-report.utils.ts","./src/app/_services/excel-report/inlet-outlet-excel-report.ts","./src/app/_services/excel-report/kpi-manager-excel-report.ts","./src/app/_services/excel-report/constraints-excel-report.ts","./src/app/_services/excel-report/mass-balance-excel-report.ts","./src/app/_services/excel-report/commodity-tank-excel-report.ts","./src/app/_services/excel-report/ghg-excel-report.ts","./src/app/_services/number-to-unit-converter.service.ts","./src/app/flowsheet/summary-report/utilities-summary-report-chart/utilities-summary-report-chart.component.ts","./src/app/flowsheet/summary-report/utilities-summary-report-chart/utilities-summary-report-chart.component.html","./src/app/flowsheet/summary-report/utilities-summary-report/utilities-summary-report.component.html","./src/app/flowsheet/summary-report/utilities-summary-report/utilities-summary-report.component.ts","./src/app/_services/excel-report/steam-excel-report.ts","./src/app/flowsheet/summary-report/fuel-gas-summary-report-chart/fuel-gas-summary-report-chart.component.ts","./src/app/flowsheet/summary-report/fuel-gas-summary-report-chart/fuel-gas-summary-report-chart.component.html","./src/app/flowsheet/summary-report/fuel-gas-summary-report/fuel-gas-summary-report.component.html","./src/app/flowsheet/summary-report/fuel-gas-summary-report/fuel-gas-summary-report.component.ts","./src/app/_services/excel-report/fuel-gas-excel-report.ts","./src/app/_services/excel-report/multiperiod-results-excel-report.ts","./src/app/_services/excel-report/case-study-excel-report.ts","./src/app/_services/excel-report/excel-report.service.ts","./src/app/flowsheet/excel-report/excel-report.component.ts","./src/app/flowsheet/excel-report/excel-report.component.html","./src/app/flowsheet/flowsheet-tree-selector/flowsheet-tree-selector.component.ts","./src/app/flowsheet/flowsheet-tree-selector/flowsheet-tree-selector.component.html","./src/app/flowsheet/optimization-settings-table/optimization-settings-table.component.ts","./src/app/flowsheet/optimization-settings-table/optimization-settings-table.component.html","./src/app/flowsheet/flowsheet-comments/flowsheet-comments.component.ts","./src/app/flowsheet/flowsheet-comments/flowsheet-comments.component.html","./src/app/flowsheet/about-window/about-window.component.ts","./src/app/flowsheet/about-window/about-window.component.html","./src/app/flowsheet/send-case-modal/send-case-modal.component.ts","./src/app/flowsheet/send-case-modal/send-case-modal.component.html","./src/app/_services/case-cloner/case-cloner.service.ts","./src/app/flowsheet/case-list/case-list.component.html","./src/app/flowsheet/case-list/case-list.component.ts","./src/app/_services/global-kpi.service.ts","./src/app/flowsheet/global-kpi/global-kpi.component.html","./src/app/flowsheet/global-kpi/global-kpi.component.ts","./src/app/flowsheet/sankey-diagram/sankey-diagram-template-provider.service.ts","./src/app/flowsheet/sankey-diagram/sankey-diagram.component.ts","./src/app/flowsheet/sankey-diagram/sankey-diagram.component.html","./src/app/_services/flowsheet-spreadsheet/cell-config/sagd-source-cell-config.ts","./src/app/_services/flowsheet-spreadsheet/mappers/sagd-source-flex-sheet-mapper.ts","./src/app/_services/flowsheet-spreadsheet/mappers/number-to-simulation-variable-mapper.ts","./src/app/_services/flowsheet-spreadsheet/event-handlers/sagd-source-flex-sheet-event-handler.ts","./src/app/_services/flowsheet-spreadsheet/flex-sheet-value-converter.ts","./src/app/_services/flowsheet-spreadsheet/cell-config/mine-source-cell-config.ts","./src/app/_services/flowsheet-spreadsheet/mappers/mine-source-flex-sheet-mapper.ts","./src/app/_services/flowsheet-spreadsheet/event-handlers/mine-source-flex-sheet-event-handler.ts","./src/app/_services/flowsheet-spreadsheet/cell-config/diluent-source-cell-config.ts","./src/app/_services/flowsheet-spreadsheet/mappers/diluent-source-flex-sheet-mapper.ts","./src/app/_services/flowsheet-spreadsheet/event-handlers/diluent-source-flex-sheet-event-handler.ts","./src/app/_services/flowsheet-spreadsheet/cell-config/third-party-source-cell-config.ts","./src/app/_services/flowsheet-spreadsheet/mappers/third-party-source-flex-sheet-mapper.ts","./src/app/_services/flowsheet-spreadsheet/event-handlers/third-party-source-flex-sheet-event-handler.ts","./src/app/_services/flowsheet-spreadsheet/cell-config/offshore-source-cell-config.ts","./src/app/_services/flowsheet-spreadsheet/mappers/offshore-source-flex-sheet-mapper.ts","./src/app/_services/flowsheet-spreadsheet/event-handlers/offshore-source-flex-sheet-event-handler.ts","./src/app/_services/flowsheet-spreadsheet/cell-config/upgrader-cell-config.ts","./src/app/_services/flowsheet-spreadsheet/mappers/upgrader-flex-sheet-mapper.ts","./src/app/_services/flowsheet-spreadsheet/event-handlers/upgrader-flex-sheet-event-handler.ts","./src/app/_services/flowsheet-spreadsheet/cell-config/pipe-cell-config.ts","./src/app/_services/flowsheet-spreadsheet/mappers/pipe-flex-sheet-mapper.ts","./src/app/_services/flowsheet-spreadsheet/event-handlers/pipe-flex-sheet-event-handler.ts","./src/app/_services/flowsheet-spreadsheet/cell-config/refinery-cell-config.ts","./src/app/_services/flowsheet-spreadsheet/mappers/refinery-flex-sheet-mapper.ts","./src/app/_services/flowsheet-spreadsheet/event-handlers/refinery-flex-sheet-event-handler.ts","./src/app/_services/flowsheet-spreadsheet/cell-config/third-party-refinery-cell-config.ts","./src/app/_services/flowsheet-spreadsheet/mappers/third-party-refinery-flex-sheet-mapper.ts","./src/app/_services/flowsheet-spreadsheet/event-handlers/third-party-refinery-flex-sheet-event-handler.ts","./src/app/_services/flowsheet-spreadsheet/cell-config/assay-cell-config.ts","./src/app/_services/flowsheet-spreadsheet/mappers/assay-flexsheet-mapper.ts","./src/app/_services/flowsheet-spreadsheet/event-handlers/assay-flexsheet-event-handler.ts","./src/app/_services/flowsheet-spreadsheet/cell-config/utilities-cell-config.enum.ts","./src/app/_services/flowsheet-spreadsheet/mappers/utilities-flex-sheet-mapper.ts","./src/app/_services/flowsheet-spreadsheet/event-handlers/utilities-flex-sheet-event-handler.ts","./src/app/_services/flowsheet-spreadsheet/cell-config/h2s-production-cell-config.ts","./src/app/_services/flowsheet-spreadsheet/mappers/h2s-flex-sheet-mapper.ts","./src/app/_services/flowsheet-spreadsheet/event-handlers/h2s-production-sheet-event-handler.ts","./src/app/_services/flowsheet-spreadsheet/event-handlers/steam-sheet-event-handler.ts","./src/app/_services/flowsheet-spreadsheet/cell-config/assay-gases-cell-config.ts","./src/app/_services/flowsheet-spreadsheet/mappers/assay-gases-flexsheet-mapper.ts","./src/app/_services/flowsheet-spreadsheet/event-handlers/assay-gases-flexsheet-event-handler.ts","./src/app/_services/flowsheet-spreadsheet/event-handlers/flex-sheet-event-handler.ts","./src/app/_services/flowsheet-spreadsheet/flex-sheet-column-tracker.ts","./src/app/_services/flowsheet-spreadsheet/sheet-handlers/abstract-sheet-handler.ts","./src/app/_services/flowsheet-spreadsheet/sheet-handlers/assay-sheet-handler.ts","./src/app/_services/flowsheet-spreadsheet/sheet-handlers/assay-gases-sheet-handler.ts","./src/app/_services/flowsheet-spreadsheet/flex-sheet-spreadsheet.service.ts","./src/app/_services/constraints-spreadsheet/abstract-constraints-handler.ts","./src/app/_services/constraints-spreadsheet/constraints-sheet-handler.ts","./src/app/_services/constraints-spreadsheet/upgrader-constraints-sheet-handler.ts","./src/app/_services/constraints-spreadsheet/extraction-constraints-sheet-handler.ts","./src/app/_services/constraints-spreadsheet/constraints-spreadsheet.service.ts","./src/app/_services/utilities-spreadsheet/abstract-utilities-handler.ts","./src/app/_config/spreadsheet/steam-sheet-item-type.enum.ts","./src/app/_config/flowsheet-type.enum.ts","./src/app/_services/utilities-spreadsheet/steam-sheet-helper.ts","./src/app/_services/utilities-spreadsheet/steam-sheet-handler.ts","./src/app/_services/utilities-spreadsheet/hydrogen-sheet-handler.ts","./src/app/_config/spreadsheet/spreadsheet-title.enum.ts","./src/app/_services/utilities-spreadsheet/utilities-spreadsheet.service.ts","./src/app/_services/utilities-spreadsheet/h2s/h2s-sheet-utils.ts","./src/app/_services/utilities-spreadsheet/h2s/h2s-sheet-item-data-shifter.service.ts","./src/app/_services/utilities-spreadsheet/h2s/h2s-sheet-columns.configuration.ts","./src/app/_config/spreadsheet/h2s-item-type.enum.ts","./src/app/_config/spreadsheet/h2s-item-title.enum.ts","./src/app/_services/utilities-spreadsheet/h2s/upgrader-h2s-sheet-handler.ts","./src/app/_services/utilities-spreadsheet/h2s/h2s-sheet-group-handler.service.ts","./src/app/flowsheet/flowsheet-spreadsheet/flowsheet-spreadsheet.component.ts","./src/app/flowsheet/flowsheet-spreadsheet/flowsheet-spreadsheet.component.html","./src/app/flowsheet/diagram-comment-button/diagram-comment-button.component.ts","./src/app/flowsheet/diagram-comment-button/diagram-comment-button.component.html","./src/app/flowsheet/diagram-controls/diagram-controls.component.ts","./src/app/flowsheet/diagram-controls/diagram-controls.component.html","./src/app/_services/case-study/parametric-study-api.service.ts","./src/app/_models/_case-study/solve-case-study-canceller.ts","./src/app/_services/case-study/parametric-study.service.ts","./src/app/flowsheet/case-study/parameter-input/parameter-input.component.html","./src/app/flowsheet/case-study/parameter-input/parameter-input.component.ts","./src/app/flowsheet/case-study/parametric-study/parametric-study.component.html","./src/app/flowsheet/case-study/parametric-study/parametric-study.component.ts","./src/app/flowsheet/case-study/parametric-study-results/parametric-study-results.component.html","./src/app/flowsheet/case-study/parametric-study-results/parametric-study-results.component.ts","./src/app/flowsheet/case-study/parametric-study-window/parametric-study-window.component.html","./src/app/flowsheet/case-study/parametric-study-window/parametric-study-window.component.ts","./src/app/flowsheet/sub-flowsheet-info/sub-flowsheet-info.component.html","./src/app/flowsheet/sub-flowsheet-info/sub-flowsheet-info.component.ts","./src/app/_services/excel-report/assay-manager-excel-report.ts","./src/app/_services/excel-upload/assay-manager/assay-manager-excel.service.ts","./node_modules/DataTables.net/js/jquery.dataTables.mjs","./src/app/flowsheet/assay-manager/assay-manager.component.html","./src/app/flowsheet/assay-manager/assay-manager.component.ts","./src/app/flowsheet/constraint-violation-report/constraint-violation-report.component.html","./src/app/flowsheet/constraint-violation-report/constraint-violation-report.component.ts","./src/app/flowsheet/sankey-diagram-controls/sankey-diagram-controls.component.html","./src/app/flowsheet/sankey-diagram-controls/sankey-diagram-controls.component.ts","./src/app/shared/unit-operation-filter-pipe.pipe.ts","./src/app/flowsheet/search-modal/search-modal.component.html","./src/app/flowsheet/search-modal/search-modal.component.ts","./src/app/flowsheet/property-window/water-material-stream/water-material-stream.component.html","./src/app/flowsheet/property-window/water-material-stream/water-material-stream.component.ts","./src/app/_models/_multi-period/multi-period-tank.ts","./src/app/shared/custom-validators.ts","./src/app/flowsheet/shared/number-validation-messages/number-validation-messages.component.html","./src/app/flowsheet/shared/number-validation-messages/number-validation-messages.component.ts","./src/app/flowsheet/multi-period/multi-period-inventory-settings/multi-period-inventory-settings.component.html","./src/app/flowsheet/multi-period/multi-period-inventory-settings/multi-period-inventory-settings.component.ts","./src/app/_services/multi-period/abstract-multi-period-spreadsheet-event-handler.ts","./src/app/flowsheet/multi-period/multi-period-parameter-spreadsheet/multi-period-parameter-spreadsheet.component.ts","./src/app/flowsheet/multi-period/multi-period-parameter-spreadsheet/multi-period-parameter-spreadsheet.component.html","./src/app/shared/alphanumeric-sort.pipe.ts","./src/app/flowsheet/case-study/kpi-manager/kpi-manager.component.html","./src/app/flowsheet/case-study/kpi-manager/kpi-manager.component.ts","./src/app/flowsheet/multi-period/multi-period-parameter-selector/multi-period-parameter-selector.component.html","./src/app/flowsheet/multi-period/multi-period-parameter-selector/multi-period-parameter-selector.component.ts","./src/app/flowsheet/multi-period/multi-period-settings/multi-period-settings.component.html","./src/app/flowsheet/multi-period/multi-period-settings/multi-period-settings.component.ts","./src/app/flowsheet/case-study/kpi-manager-modal/kpi-manager-modal.component.html","./src/app/flowsheet/case-study/kpi-manager-modal/kpi-manager-modal.component.ts","./src/app/flowsheet/multi-period/multi-period-results/multi-period-results.component.html","./src/app/flowsheet/multi-period/multi-period-results/multi-period-results.component.ts","./src/app/flowsheet/property-window/fuel-gas-material-stream/fuel-gas-material-stream.component.html","./src/app/flowsheet/property-window/fuel-gas-material-stream/fuel-gas-material-stream.component.ts","./src/app/flowsheet/upgrader-report/ghg-upgrader-report/ghg-upgrader-report.component.html","./src/app/flowsheet/upgrader-report/ghg-upgrader-report/ghg-upgrader-report.component.ts","./src/app/flowsheet/upgrader-report/constraint-ranking/constraint-ranking.component.html","./src/app/flowsheet/upgrader-report/constraint-ranking/constraint-ranking.component.ts","./src/app/flowsheet/upgrader-report/upgrader-report.component.html","./src/app/flowsheet/upgrader-report/upgrader-report.component.ts","./src/app/flowsheet/case-comments/case-comments.component.html","./src/app/flowsheet/case-comments/case-comments.component.ts","./src/app/flowsheet/multiperiod-excel-report/multiperiod-excel-report.component.ts","./src/app/flowsheet/multiperiod-excel-report/multiperiod-excel-report.component.html","./src/app/flowsheet/case-study-excel-report/case-study-excel-report.component.ts","./src/app/flowsheet/case-study-excel-report/case-study-excel-report.component.html","./node_modules/rxjs/_esm2015/internal/observable/interval.js","./node_modules/rxjs/_esm2015/internal/operators/debounce.js","./src/app/flowsheet/diagram-item-color-picker/diagram-item-color-picker.component.html","./src/app/flowsheet/diagram-item-color-picker/diagram-item-color-picker.component.ts","./node_modules/rxjs/_esm2015/internal/util/isNumeric.js","./src/app/flowsheet/flowsheet.component.html","./src/app/flowsheet/flowsheet.component.ts","./src/app/ui.helpers.ts","./src/app/login/login.component.html","./src/app/login/login.component.ts","./src/app/_guards/auth.guard.ts","./src/app/changelog/changelog.component.ts","./src/app/changelog/changelog.component.html","./src/app/forgot-password/forgot-password.component.html","./src/app/forgot-password/forgot-password.component.ts","./src/app/latest-access/latest-access.component.html","./src/app/latest-access/latest-access.component.ts","./src/app/_guards/roleAdmin.guard.ts","./src/app/app.routing.ts","./src/app/flowsheet/code-editor/code-editor.module.ts","./src/app/_services/excel-upload/mappers/string-to-simulation-variable-mapper.ts","./src/app/_services/excel-upload/mappers/sources/array-to-sagd-source-mapper.ts","./src/app/_services/excel-upload/mappers/sources/array-to-diluent-source-mapper.ts","./src/app/_services/excel-upload/mappers/sources/array-to-mine-source-mapper.ts","./src/app/_services/excel-upload/mappers/array-to-third-party-source-mapper.ts","./src/app/_services/excel-upload/mappers/sources/array-to-offshore-source-mapper.ts","./src/app/_services/excel-upload/mappers/array-to-upgrader-mapper.ts","./src/app/_services/excel-upload/mappers/array-to-pipe-mapper.ts","./src/app/_services/excel-upload/mappers/refineries/array-to-refinery-mapper.ts","./src/app/_services/excel-upload/mappers/array-to-third-party-refinery.mapper.ts","./src/app/_services/excel-upload/mappers/array-to-unit-operation-mapper.ts","./src/app/_services/excel-upload/excel-upload.service.ts","./src/app/flowsheet/reactive-code-editor/reactive-code-editor.module.ts","./src/app/flowsheet/flowsheet.module.ts","./src/app/_services/global-error-handler.ts","./src/app/app.module.ts","./src/main.ts","./node_modules/@grapecity/wijmo.angular2.directivebase/__ivy_ngcc__/index.js","./node_modules/@grapecity/wijmo.angular2.grid.sheet/__ivy_ngcc__/index.js","./node_modules/@grapecity/wijmo.angular2.input/__ivy_ngcc__/index.js","./node_modules/@grapecity/wijmo.angular2.nav/__ivy_ngcc__/index.js","./node_modules/@grapecity/wijmo.grid.filter/es5-esm.js","./node_modules/@grapecity/wijmo.xlsx/es5-esm.js","./node_modules/@grapecity/wijmo.grid.xlsx/es5-esm.js","./node_modules/@grapecity/wijmo.grid.sheet/es5-esm.js","./node_modules/@grapecity/wijmo.grid/es5-esm.js","./node_modules/@grapecity/wijmo.input/es5-esm.js","./node_modules/@grapecity/wijmo.nav/es5-esm.js","./node_modules/@grapecity/wijmo/es5-esm.js","./node_modules/file-saver/FileSaver.js","./node_modules/gojs/release/go.js","./node_modules/highcharts/highcharts-more.src.js","./node_modules/highcharts/highcharts.js","./node_modules/highcharts/modules/drilldown.src.js","./node_modules/jquery/dist/jquery.js","./node_modules/jszip/dist/jszip.min.js","./node_modules/moment/locale/af.js","./node_modules/moment/locale/ar-dz.js","./node_modules/moment/locale/ar-kw.js","./node_modules/moment/locale/ar-ly.js","./node_modules/moment/locale/ar-ma.js","./node_modules/moment/locale/ar-sa.js","./node_modules/moment/locale/ar-tn.js","./node_modules/moment/locale/ar.js","./node_modules/moment/locale/az.js","./node_modules/moment/locale/be.js","./node_modules/moment/locale/bg.js","./node_modules/moment/locale/bm.js","./node_modules/moment/locale/bn-bd.js","./node_modules/moment/locale/bn.js","./node_modules/moment/locale/bo.js","./node_modules/moment/locale/br.js","./node_modules/moment/locale/bs.js","./node_modules/moment/locale/ca.js","./node_modules/moment/locale/cs.js","./node_modules/moment/locale/cv.js","./node_modules/moment/locale/cy.js","./node_modules/moment/locale/da.js","./node_modules/moment/locale/de-at.js","./node_modules/moment/locale/de-ch.js","./node_modules/moment/locale/de.js","./node_modules/moment/locale/dv.js","./node_modules/moment/locale/el.js","./node_modules/moment/locale/en-au.js","./node_modules/moment/locale/en-ca.js","./node_modules/moment/locale/en-gb.js","./node_modules/moment/locale/en-ie.js","./node_modules/moment/locale/en-il.js","./node_modules/moment/locale/en-in.js","./node_modules/moment/locale/en-nz.js","./node_modules/moment/locale/en-sg.js","./node_modules/moment/locale/eo.js","./node_modules/moment/locale/es-do.js","./node_modules/moment/locale/es-mx.js","./node_modules/moment/locale/es-us.js","./node_modules/moment/locale/es.js","./node_modules/moment/locale/et.js","./node_modules/moment/locale/eu.js","./node_modules/moment/locale/fa.js","./node_modules/moment/locale/fi.js","./node_modules/moment/locale/fil.js","./node_modules/moment/locale/fo.js","./node_modules/moment/locale/fr-ca.js","./node_modules/moment/locale/fr-ch.js","./node_modules/moment/locale/fr.js","./node_modules/moment/locale/fy.js","./node_modules/moment/locale/ga.js","./node_modules/moment/locale/gd.js","./node_modules/moment/locale/gl.js","./node_modules/moment/locale/gom-deva.js","./node_modules/moment/locale/gom-latn.js","./node_modules/moment/locale/gu.js","./node_modules/moment/locale/he.js","./node_modules/moment/locale/hi.js","./node_modules/moment/locale/hr.js","./node_modules/moment/locale/hu.js","./node_modules/moment/locale/hy-am.js","./node_modules/moment/locale/id.js","./node_modules/moment/locale/is.js","./node_modules/moment/locale/it-ch.js","./node_modules/moment/locale/it.js","./node_modules/moment/locale/ja.js","./node_modules/moment/locale/jv.js","./node_modules/moment/locale/ka.js","./node_modules/moment/locale/kk.js","./node_modules/moment/locale/km.js","./node_modules/moment/locale/kn.js","./node_modules/moment/locale/ko.js","./node_modules/moment/locale/ku.js","./node_modules/moment/locale/ky.js","./node_modules/moment/locale/lb.js","./node_modules/moment/locale/lo.js","./node_modules/moment/locale/lt.js","./node_modules/moment/locale/lv.js","./node_modules/moment/locale/me.js","./node_modules/moment/locale/mi.js","./node_modules/moment/locale/mk.js","./node_modules/moment/locale/ml.js","./node_modules/moment/locale/mn.js","./node_modules/moment/locale/mr.js","./node_modules/moment/locale/ms-my.js","./node_modules/moment/locale/ms.js","./node_modules/moment/locale/mt.js","./node_modules/moment/locale/my.js","./node_modules/moment/locale/nb.js","./node_modules/moment/locale/ne.js","./node_modules/moment/locale/nl-be.js","./node_modules/moment/locale/nl.js","./node_modules/moment/locale/nn.js","./node_modules/moment/locale/oc-lnc.js","./node_modules/moment/locale/pa-in.js","./node_modules/moment/locale/pl.js","./node_modules/moment/locale/pt-br.js","./node_modules/moment/locale/pt.js","./node_modules/moment/locale/ro.js","./node_modules/moment/locale/ru.js","./node_modules/moment/locale/sd.js","./node_modules/moment/locale/se.js","./node_modules/moment/locale/si.js","./node_modules/moment/locale/sk.js","./node_modules/moment/locale/sl.js","./node_modules/moment/locale/sq.js","./node_modules/moment/locale/sr-cyrl.js","./node_modules/moment/locale/sr.js","./node_modules/moment/locale/ss.js","./node_modules/moment/locale/sv.js","./node_modules/moment/locale/sw.js","./node_modules/moment/locale/ta.js","./node_modules/moment/locale/te.js","./node_modules/moment/locale/tet.js","./node_modules/moment/locale/tg.js","./node_modules/moment/locale/th.js","./node_modules/moment/locale/tk.js","./node_modules/moment/locale/tl-ph.js","./node_modules/moment/locale/tlh.js","./node_modules/moment/locale/tr.js","./node_modules/moment/locale/tzl.js","./node_modules/moment/locale/tzm-latn.js","./node_modules/moment/locale/tzm.js","./node_modules/moment/locale/ug-cn.js","./node_modules/moment/locale/uk.js","./node_modules/moment/locale/ur.js","./node_modules/moment/locale/uz-latn.js","./node_modules/moment/locale/uz.js","./node_modules/moment/locale/vi.js","./node_modules/moment/locale/x-pseudo.js","./node_modules/moment/locale/yo.js","./node_modules/moment/locale/zh-cn.js","./node_modules/moment/locale/zh-hk.js","./node_modules/moment/locale/zh-mo.js","./node_modules/moment/locale/zh-tw.js","./node_modules/moment/moment.js","./node_modules/rxjs/_esm2015/internal/Observable.js","./node_modules/rxjs/_esm2015/internal/util/toSubscriber.js","./node_modules/rxjs/_esm2015/internal/util/canReportError.js","./node_modules/rxjs/_esm2015/internal/Observer.js","./node_modules/rxjs/_esm2015/internal/SubjectSubscription.js","./node_modules/rxjs/_esm2015/internal/Subject.js","./node_modules/rxjs/_esm2015/internal/Subscriber.js","./node_modules/rxjs/_esm2015/internal/util/UnsubscriptionError.js","./node_modules/rxjs/_esm2015/internal/Subscription.js","./node_modules/rxjs/_esm2015/internal/config.js","./node_modules/rxjs/_esm2015/internal/innerSubscribe.js","./node_modules/rxjs/_esm2015/internal/observable/ConnectableObservable.js","./node_modules/rxjs/_esm2015/internal/observable/from.js","./node_modules/rxjs/_esm2015/internal/scheduled/scheduled.js","./node_modules/rxjs/_esm2015/internal/util/isInteropObservable.js","./node_modules/rxjs/_esm2015/internal/scheduled/scheduleObservable.js","./node_modules/rxjs/_esm2015/internal/scheduled/schedulePromise.js","./node_modules/rxjs/_esm2015/internal/util/isIterable.js","./node_modules/rxjs/_esm2015/internal/scheduled/scheduleIterable.js","./node_modules/rxjs/_esm2015/internal/observable/fromArray.js","./node_modules/rxjs/_esm2015/internal/operators/map.js","./node_modules/rxjs/_esm2015/internal/operators/mergeAll.js","./node_modules/rxjs/_esm2015/internal/operators/mergeMap.js","./node_modules/rxjs/_esm2015/internal/operators/refCount.js","./node_modules/rxjs/_esm2015/internal/scheduled/scheduleArray.js","./node_modules/rxjs/_esm2015/internal/symbol/iterator.js","./node_modules/rxjs/_esm2015/internal/symbol/observable.js","./node_modules/rxjs/_esm2015/internal/symbol/rxSubscriber.js","./node_modules/rxjs/_esm2015/internal/util/ObjectUnsubscribedError.js","./node_modules/rxjs/_esm2015/internal/util/hostReportError.js","./node_modules/rxjs/_esm2015/internal/util/identity.js","./node_modules/rxjs/_esm2015/internal/util/isArray.js","./node_modules/rxjs/_esm2015/internal/util/isArrayLike.js","./node_modules/rxjs/_esm2015/internal/util/isFunction.js","./node_modules/rxjs/_esm2015/internal/util/isObject.js","./node_modules/rxjs/_esm2015/internal/util/isPromise.js","./node_modules/rxjs/_esm2015/internal/util/isScheduler.js","./node_modules/rxjs/_esm2015/internal/util/pipe.js","./node_modules/rxjs/_esm2015/internal/util/subscribeTo.js","./node_modules/rxjs/_esm2015/internal/util/subscribeToObservable.js","./node_modules/rxjs/_esm2015/internal/util/subscribeToPromise.js","./node_modules/rxjs/_esm2015/internal/util/subscribeToIterable.js","./node_modules/rxjs/_esm2015/internal/util/subscribeToArray.js","./node_modules/moment/locale/ sync ^\\.\\/.*$","./node_modules/@angular/common/fesm2020/common.mjs","./node_modules/rxjs/_esm2015/internal/operators/multicast.js","./node_modules/rxjs/_esm2015/internal/operators/share.js","./node_modules/@angular/core/fesm2020/core.mjs","./node_modules/rxjs/_esm2015/internal/observable/merge.js","./node_modules/rxjs/_esm2015/internal/observable/forkJoin.js","./node_modules/@angular/forms/fesm2020/forms.mjs"],"sourcesContent":["/**\n * @license Angular v15.2.9\n * (c) 2010-2022 Google LLC. https://angular.io/\n * License: MIT\n */\n\nimport { ɵDomAdapter, ɵsetRootDomAdapter, ɵparseCookieValue, ɵgetDOM, DOCUMENT, ɵPLATFORM_BROWSER_ID, XhrFactory, CommonModule } from '@angular/common';\nexport { ɵgetDOM } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { InjectionToken, ApplicationInitStatus, APP_INITIALIZER, Injector, ɵglobal, Injectable, Inject, ViewEncapsulation, APP_ID, RendererStyleFlags2, ɵinternalCreateApplication, ErrorHandler, ɵsetDocument, PLATFORM_ID, PLATFORM_INITIALIZER, createPlatformFactory, platformCore, ɵTESTABILITY_GETTER, ɵTESTABILITY, Testability, NgZone, TestabilityRegistry, ɵINJECTOR_SCOPE, RendererFactory2, ApplicationModule, NgModule, Optional, SkipSelf, ɵɵinject, ApplicationRef, inject, ɵConsole, forwardRef, ɵXSS_SECURITY_URL, SecurityContext, ɵallowSanitizationBypassAndThrow, ɵunwrapSafeValue, ɵ_sanitizeUrl, ɵ_sanitizeHtml, ɵbypassSanitizationTrustHtml, ɵbypassSanitizationTrustStyle, ɵbypassSanitizationTrustScript, ɵbypassSanitizationTrustUrl, ɵbypassSanitizationTrustResourceUrl, Version } from '@angular/core';\n\n/**\n * Provides DOM operations in any browser environment.\n *\n * @security Tread carefully! Interacting with the DOM directly is dangerous and\n * can introduce XSS risks.\n */\nclass GenericBrowserDomAdapter extends ɵDomAdapter {\n constructor() {\n super(...arguments);\n this.supportsDOMEvents = true;\n }\n}\n\n/**\n * A `DomAdapter` powered by full browser DOM APIs.\n *\n * @security Tread carefully! Interacting with the DOM directly is dangerous and\n * can introduce XSS risks.\n */\n/* tslint:disable:requireParameterType no-console */\nclass BrowserDomAdapter extends GenericBrowserDomAdapter {\n static makeCurrent() {\n ɵsetRootDomAdapter(new BrowserDomAdapter());\n }\n onAndCancel(el, evt, listener) {\n el.addEventListener(evt, listener, false);\n // Needed to follow Dart's subscription semantic, until fix of\n // https://code.google.com/p/dart/issues/detail?id=17406\n return () => {\n el.removeEventListener(evt, listener, false);\n };\n }\n dispatchEvent(el, evt) {\n el.dispatchEvent(evt);\n }\n remove(node) {\n if (node.parentNode) {\n node.parentNode.removeChild(node);\n }\n }\n createElement(tagName, doc) {\n doc = doc || this.getDefaultDocument();\n return doc.createElement(tagName);\n }\n createHtmlDocument() {\n return document.implementation.createHTMLDocument('fakeTitle');\n }\n getDefaultDocument() {\n return document;\n }\n isElementNode(node) {\n return node.nodeType === Node.ELEMENT_NODE;\n }\n isShadowRoot(node) {\n return node instanceof DocumentFragment;\n }\n /** @deprecated No longer being used in Ivy code. To be removed in version 14. */\n getGlobalEventTarget(doc, target) {\n if (target === 'window') {\n return window;\n }\n if (target === 'document') {\n return doc;\n }\n if (target === 'body') {\n return doc.body;\n }\n return null;\n }\n getBaseHref(doc) {\n const href = getBaseElementHref();\n return href == null ? null : relativePath(href);\n }\n resetBaseElement() {\n baseElement = null;\n }\n getUserAgent() {\n return window.navigator.userAgent;\n }\n getCookie(name) {\n return ɵparseCookieValue(document.cookie, name);\n }\n}\nlet baseElement = null;\nfunction getBaseElementHref() {\n baseElement = baseElement || document.querySelector('base');\n return baseElement ? baseElement.getAttribute('href') : null;\n}\n// based on urlUtils.js in AngularJS 1\nlet urlParsingNode;\nfunction relativePath(url) {\n urlParsingNode = urlParsingNode || document.createElement('a');\n urlParsingNode.setAttribute('href', url);\n const pathName = urlParsingNode.pathname;\n return pathName.charAt(0) === '/' ? pathName : `/${pathName}`;\n}\n\n/**\n * An id that identifies a particular application being bootstrapped, that should\n * match across the client/server boundary.\n */\nconst TRANSITION_ID = new InjectionToken('TRANSITION_ID');\nfunction appInitializerFactory(transitionId, document, injector) {\n return () => {\n // Wait for all application initializers to be completed before removing the styles set by\n // the server.\n injector.get(ApplicationInitStatus).donePromise.then(() => {\n const dom = ɵgetDOM();\n const styles = document.querySelectorAll(`style[ng-transition=\"${transitionId}\"]`);\n for (let i = 0; i < styles.length; i++) {\n dom.remove(styles[i]);\n }\n });\n };\n}\nconst SERVER_TRANSITION_PROVIDERS = [\n {\n provide: APP_INITIALIZER,\n useFactory: appInitializerFactory,\n deps: [TRANSITION_ID, DOCUMENT, Injector],\n multi: true\n },\n];\n\nclass BrowserGetTestability {\n addToWindow(registry) {\n ɵglobal['getAngularTestability'] = (elem, findInAncestors = true) => {\n const testability = registry.findTestabilityInTree(elem, findInAncestors);\n if (testability == null) {\n throw new Error('Could not find testability for element.');\n }\n return testability;\n };\n ɵglobal['getAllAngularTestabilities'] = () => registry.getAllTestabilities();\n ɵglobal['getAllAngularRootElements'] = () => registry.getAllRootElements();\n const whenAllStable = (callback /** TODO #9100 */) => {\n const testabilities = ɵglobal['getAllAngularTestabilities']();\n let count = testabilities.length;\n let didWork = false;\n const decrement = function (didWork_ /** TODO #9100 */) {\n didWork = didWork || didWork_;\n count--;\n if (count == 0) {\n callback(didWork);\n }\n };\n testabilities.forEach(function (testability /** TODO #9100 */) {\n testability.whenStable(decrement);\n });\n };\n if (!ɵglobal['frameworkStabilizers']) {\n ɵglobal['frameworkStabilizers'] = [];\n }\n ɵglobal['frameworkStabilizers'].push(whenAllStable);\n }\n findTestabilityInTree(registry, elem, findInAncestors) {\n if (elem == null) {\n return null;\n }\n const t = registry.getTestability(elem);\n if (t != null) {\n return t;\n }\n else if (!findInAncestors) {\n return null;\n }\n if (ɵgetDOM().isShadowRoot(elem)) {\n return this.findTestabilityInTree(registry, elem.host, true);\n }\n return this.findTestabilityInTree(registry, elem.parentElement, true);\n }\n}\n\n/**\n * A factory for `HttpXhrBackend` that uses the `XMLHttpRequest` browser API.\n */\nclass BrowserXhr {\n build() {\n return new XMLHttpRequest();\n }\n}\nBrowserXhr.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: BrowserXhr, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nBrowserXhr.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: BrowserXhr });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: BrowserXhr, decorators: [{\n type: Injectable\n }] });\n\n/**\n * The injection token for the event-manager plug-in service.\n *\n * @publicApi\n */\nconst EVENT_MANAGER_PLUGINS = new InjectionToken('EventManagerPlugins');\n/**\n * An injectable service that provides event management for Angular\n * through a browser plug-in.\n *\n * @publicApi\n */\nclass EventManager {\n /**\n * Initializes an instance of the event-manager service.\n */\n constructor(plugins, _zone) {\n this._zone = _zone;\n this._eventNameToPlugin = new Map();\n plugins.forEach((plugin) => {\n plugin.manager = this;\n });\n this._plugins = plugins.slice().reverse();\n }\n /**\n * Registers a handler for a specific element and event.\n *\n * @param element The HTML element to receive event notifications.\n * @param eventName The name of the event to listen for.\n * @param handler A function to call when the notification occurs. Receives the\n * event object as an argument.\n * @returns A callback function that can be used to remove the handler.\n */\n addEventListener(element, eventName, handler) {\n const plugin = this._findPluginFor(eventName);\n return plugin.addEventListener(element, eventName, handler);\n }\n /**\n * Registers a global handler for an event in a target view.\n *\n * @param target A target for global event notifications. One of \"window\", \"document\", or \"body\".\n * @param eventName The name of the event to listen for.\n * @param handler A function to call when the notification occurs. Receives the\n * event object as an argument.\n * @returns A callback function that can be used to remove the handler.\n * @deprecated No longer being used in Ivy code. To be removed in version 14.\n */\n addGlobalEventListener(target, eventName, handler) {\n const plugin = this._findPluginFor(eventName);\n return plugin.addGlobalEventListener(target, eventName, handler);\n }\n /**\n * Retrieves the compilation zone in which event listeners are registered.\n */\n getZone() {\n return this._zone;\n }\n /** @internal */\n _findPluginFor(eventName) {\n const plugin = this._eventNameToPlugin.get(eventName);\n if (plugin) {\n return plugin;\n }\n const plugins = this._plugins;\n for (let i = 0; i < plugins.length; i++) {\n const plugin = plugins[i];\n if (plugin.supports(eventName)) {\n this._eventNameToPlugin.set(eventName, plugin);\n return plugin;\n }\n }\n throw new Error(`No event manager plugin found for event ${eventName}`);\n }\n}\nEventManager.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: EventManager, deps: [{ token: EVENT_MANAGER_PLUGINS }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable });\nEventManager.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: EventManager });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: EventManager, decorators: [{\n type: Injectable\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [EVENT_MANAGER_PLUGINS]\n }] }, { type: i0.NgZone }]; } });\nclass EventManagerPlugin {\n constructor(_doc) {\n this._doc = _doc;\n }\n addGlobalEventListener(element, eventName, handler) {\n const target = ɵgetDOM().getGlobalEventTarget(this._doc, element);\n if (!target) {\n throw new Error(`Unsupported event target ${target} for event ${eventName}`);\n }\n return this.addEventListener(target, eventName, handler);\n }\n}\n\nclass SharedStylesHost {\n constructor() {\n this.usageCount = new Map();\n }\n addStyles(styles) {\n for (const style of styles) {\n const usageCount = this.changeUsageCount(style, 1);\n if (usageCount === 1) {\n this.onStyleAdded(style);\n }\n }\n }\n removeStyles(styles) {\n for (const style of styles) {\n const usageCount = this.changeUsageCount(style, -1);\n if (usageCount === 0) {\n this.onStyleRemoved(style);\n }\n }\n }\n onStyleRemoved(style) { }\n onStyleAdded(style) { }\n getAllStyles() {\n return this.usageCount.keys();\n }\n changeUsageCount(style, delta) {\n const map = this.usageCount;\n let usage = map.get(style) ?? 0;\n usage += delta;\n if (usage > 0) {\n map.set(style, usage);\n }\n else {\n map.delete(style);\n }\n return usage;\n }\n ngOnDestroy() {\n for (const style of this.getAllStyles()) {\n this.onStyleRemoved(style);\n }\n this.usageCount.clear();\n }\n}\nSharedStylesHost.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: SharedStylesHost, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nSharedStylesHost.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: SharedStylesHost });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: SharedStylesHost, decorators: [{\n type: Injectable\n }] });\nclass DomSharedStylesHost extends SharedStylesHost {\n constructor(doc) {\n super();\n this.doc = doc;\n // Maps all registered host nodes to a list of style nodes that have been added to the host node.\n this.styleRef = new Map();\n this.hostNodes = new Set();\n this.resetHostNodes();\n }\n onStyleAdded(style) {\n for (const host of this.hostNodes) {\n this.addStyleToHost(host, style);\n }\n }\n onStyleRemoved(style) {\n const styleRef = this.styleRef;\n const styleElements = styleRef.get(style);\n styleElements?.forEach(e => e.remove());\n styleRef.delete(style);\n }\n ngOnDestroy() {\n super.ngOnDestroy();\n this.styleRef.clear();\n this.resetHostNodes();\n }\n addHost(hostNode) {\n this.hostNodes.add(hostNode);\n for (const style of this.getAllStyles()) {\n this.addStyleToHost(hostNode, style);\n }\n }\n removeHost(hostNode) {\n this.hostNodes.delete(hostNode);\n }\n addStyleToHost(host, style) {\n const styleEl = this.doc.createElement('style');\n styleEl.textContent = style;\n host.appendChild(styleEl);\n const styleElRef = this.styleRef.get(style);\n if (styleElRef) {\n styleElRef.push(styleEl);\n }\n else {\n this.styleRef.set(style, [styleEl]);\n }\n }\n resetHostNodes() {\n const hostNodes = this.hostNodes;\n hostNodes.clear();\n // Re-add the head element back since this is the default host.\n hostNodes.add(this.doc.head);\n }\n}\nDomSharedStylesHost.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: DomSharedStylesHost, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });\nDomSharedStylesHost.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: DomSharedStylesHost });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: DomSharedStylesHost, decorators: [{\n type: Injectable\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }]; } });\n\nconst NAMESPACE_URIS = {\n 'svg': 'http://www.w3.org/2000/svg',\n 'xhtml': 'http://www.w3.org/1999/xhtml',\n 'xlink': 'http://www.w3.org/1999/xlink',\n 'xml': 'http://www.w3.org/XML/1998/namespace',\n 'xmlns': 'http://www.w3.org/2000/xmlns/',\n 'math': 'http://www.w3.org/1998/MathML/',\n};\nconst COMPONENT_REGEX = /%COMP%/g;\nconst NG_DEV_MODE$1 = typeof ngDevMode === 'undefined' || !!ngDevMode;\nconst COMPONENT_VARIABLE = '%COMP%';\nconst HOST_ATTR = `_nghost-${COMPONENT_VARIABLE}`;\nconst CONTENT_ATTR = `_ngcontent-${COMPONENT_VARIABLE}`;\n/**\n * The default value for the `REMOVE_STYLES_ON_COMPONENT_DESTROY` DI token.\n */\nconst REMOVE_STYLES_ON_COMPONENT_DESTROY_DEFAULT = false;\n/**\n * A [DI token](guide/glossary#di-token \"DI token definition\") that indicates whether styles\n * of destroyed components should be removed from DOM.\n *\n * By default, the value is set to `false`. This will be changed in the next major version.\n * @publicApi\n */\nconst REMOVE_STYLES_ON_COMPONENT_DESTROY = new InjectionToken('RemoveStylesOnCompDestory', {\n providedIn: 'root',\n factory: () => REMOVE_STYLES_ON_COMPONENT_DESTROY_DEFAULT,\n});\nfunction shimContentAttribute(componentShortId) {\n return CONTENT_ATTR.replace(COMPONENT_REGEX, componentShortId);\n}\nfunction shimHostAttribute(componentShortId) {\n return HOST_ATTR.replace(COMPONENT_REGEX, componentShortId);\n}\nfunction flattenStyles(compId, styles) {\n // Cannot use `Infinity` as depth as `infinity` is not a number literal in TypeScript.\n // See: https://github.com/microsoft/TypeScript/issues/32277\n return styles.flat(100).map(s => s.replace(COMPONENT_REGEX, compId));\n}\nfunction decoratePreventDefault(eventHandler) {\n // `DebugNode.triggerEventHandler` needs to know if the listener was created with\n // decoratePreventDefault or is a listener added outside the Angular context so it can handle the\n // two differently. In the first case, the special '__ngUnwrap__' token is passed to the unwrap\n // the listener (see below).\n return (event) => {\n // Ivy uses '__ngUnwrap__' as a special token that allows us to unwrap the function\n // so that it can be invoked programmatically by `DebugNode.triggerEventHandler`. The debug_node\n // can inspect the listener toString contents for the existence of this special token. Because\n // the token is a string literal, it is ensured to not be modified by compiled code.\n if (event === '__ngUnwrap__') {\n return eventHandler;\n }\n const allowDefaultBehavior = eventHandler(event);\n if (allowDefaultBehavior === false) {\n // TODO(tbosch): move preventDefault into event plugins...\n event.preventDefault();\n event.returnValue = false;\n }\n return undefined;\n };\n}\nclass DomRendererFactory2 {\n constructor(eventManager, sharedStylesHost, appId, removeStylesOnCompDestory) {\n this.eventManager = eventManager;\n this.sharedStylesHost = sharedStylesHost;\n this.appId = appId;\n this.removeStylesOnCompDestory = removeStylesOnCompDestory;\n this.rendererByCompId = new Map();\n this.defaultRenderer = new DefaultDomRenderer2(eventManager);\n }\n createRenderer(element, type) {\n if (!element || !type) {\n return this.defaultRenderer;\n }\n const renderer = this.getOrCreateRenderer(element, type);\n // Renderers have different logic due to different encapsulation behaviours.\n // Ex: for emulated, an attribute is added to the element.\n if (renderer instanceof EmulatedEncapsulationDomRenderer2) {\n renderer.applyToHost(element);\n }\n else if (renderer instanceof NoneEncapsulationDomRenderer) {\n renderer.applyStyles();\n }\n return renderer;\n }\n getOrCreateRenderer(element, type) {\n const rendererByCompId = this.rendererByCompId;\n let renderer = rendererByCompId.get(type.id);\n if (!renderer) {\n const eventManager = this.eventManager;\n const sharedStylesHost = this.sharedStylesHost;\n const removeStylesOnCompDestory = this.removeStylesOnCompDestory;\n switch (type.encapsulation) {\n case ViewEncapsulation.Emulated:\n renderer = new EmulatedEncapsulationDomRenderer2(eventManager, sharedStylesHost, type, this.appId, removeStylesOnCompDestory);\n break;\n case ViewEncapsulation.ShadowDom:\n return new ShadowDomRenderer(eventManager, sharedStylesHost, element, type);\n default:\n renderer = new NoneEncapsulationDomRenderer(eventManager, sharedStylesHost, type, removeStylesOnCompDestory);\n break;\n }\n renderer.onDestroy = () => rendererByCompId.delete(type.id);\n rendererByCompId.set(type.id, renderer);\n }\n return renderer;\n }\n ngOnDestroy() {\n this.rendererByCompId.clear();\n }\n begin() { }\n end() { }\n}\nDomRendererFactory2.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: DomRendererFactory2, deps: [{ token: EventManager }, { token: DomSharedStylesHost }, { token: APP_ID }, { token: REMOVE_STYLES_ON_COMPONENT_DESTROY }], target: i0.ɵɵFactoryTarget.Injectable });\nDomRendererFactory2.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: DomRendererFactory2 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: DomRendererFactory2, decorators: [{\n type: Injectable\n }], ctorParameters: function () { return [{ type: EventManager }, { type: DomSharedStylesHost }, { type: undefined, decorators: [{\n type: Inject,\n args: [APP_ID]\n }] }, { type: undefined, decorators: [{\n type: Inject,\n args: [REMOVE_STYLES_ON_COMPONENT_DESTROY]\n }] }]; } });\nclass DefaultDomRenderer2 {\n constructor(eventManager) {\n this.eventManager = eventManager;\n this.data = Object.create(null);\n this.destroyNode = null;\n }\n destroy() { }\n createElement(name, namespace) {\n if (namespace) {\n // TODO: `|| namespace` was added in\n // https://github.com/angular/angular/commit/2b9cc8503d48173492c29f5a271b61126104fbdb to\n // support how Ivy passed around the namespace URI rather than short name at the time. It did\n // not, however extend the support to other parts of the system (setAttribute, setAttribute,\n // and the ServerRenderer). We should decide what exactly the semantics for dealing with\n // namespaces should be and make it consistent.\n // Related issues:\n // https://github.com/angular/angular/issues/44028\n // https://github.com/angular/angular/issues/44883\n return document.createElementNS(NAMESPACE_URIS[namespace] || namespace, name);\n }\n return document.createElement(name);\n }\n createComment(value) {\n return document.createComment(value);\n }\n createText(value) {\n return document.createTextNode(value);\n }\n appendChild(parent, newChild) {\n const targetParent = isTemplateNode(parent) ? parent.content : parent;\n targetParent.appendChild(newChild);\n }\n insertBefore(parent, newChild, refChild) {\n if (parent) {\n const targetParent = isTemplateNode(parent) ? parent.content : parent;\n targetParent.insertBefore(newChild, refChild);\n }\n }\n removeChild(parent, oldChild) {\n if (parent) {\n parent.removeChild(oldChild);\n }\n }\n selectRootElement(selectorOrNode, preserveContent) {\n let el = typeof selectorOrNode === 'string' ? document.querySelector(selectorOrNode) :\n selectorOrNode;\n if (!el) {\n throw new Error(`The selector \"${selectorOrNode}\" did not match any elements`);\n }\n if (!preserveContent) {\n el.textContent = '';\n }\n return el;\n }\n parentNode(node) {\n return node.parentNode;\n }\n nextSibling(node) {\n return node.nextSibling;\n }\n setAttribute(el, name, value, namespace) {\n if (namespace) {\n name = namespace + ':' + name;\n const namespaceUri = NAMESPACE_URIS[namespace];\n if (namespaceUri) {\n el.setAttributeNS(namespaceUri, name, value);\n }\n else {\n el.setAttribute(name, value);\n }\n }\n else {\n el.setAttribute(name, value);\n }\n }\n removeAttribute(el, name, namespace) {\n if (namespace) {\n const namespaceUri = NAMESPACE_URIS[namespace];\n if (namespaceUri) {\n el.removeAttributeNS(namespaceUri, name);\n }\n else {\n el.removeAttribute(`${namespace}:${name}`);\n }\n }\n else {\n el.removeAttribute(name);\n }\n }\n addClass(el, name) {\n el.classList.add(name);\n }\n removeClass(el, name) {\n el.classList.remove(name);\n }\n setStyle(el, style, value, flags) {\n if (flags & (RendererStyleFlags2.DashCase | RendererStyleFlags2.Important)) {\n el.style.setProperty(style, value, flags & RendererStyleFlags2.Important ? 'important' : '');\n }\n else {\n el.style[style] = value;\n }\n }\n removeStyle(el, style, flags) {\n if (flags & RendererStyleFlags2.DashCase) {\n // removeProperty has no effect when used on camelCased properties.\n el.style.removeProperty(style);\n }\n else {\n el.style[style] = '';\n }\n }\n setProperty(el, name, value) {\n NG_DEV_MODE$1 && checkNoSyntheticProp(name, 'property');\n el[name] = value;\n }\n setValue(node, value) {\n node.nodeValue = value;\n }\n listen(target, event, callback) {\n NG_DEV_MODE$1 && checkNoSyntheticProp(event, 'listener');\n if (typeof target === 'string') {\n return this.eventManager.addGlobalEventListener(target, event, decoratePreventDefault(callback));\n }\n return this.eventManager.addEventListener(target, event, decoratePreventDefault(callback));\n }\n}\nconst AT_CHARCODE = (() => '@'.charCodeAt(0))();\nfunction checkNoSyntheticProp(name, nameKind) {\n if (name.charCodeAt(0) === AT_CHARCODE) {\n throw new Error(`Unexpected synthetic ${nameKind} ${name} found. Please make sure that:\n - Either \\`BrowserAnimationsModule\\` or \\`NoopAnimationsModule\\` are imported in your application.\n - There is corresponding configuration for the animation named \\`${name}\\` defined in the \\`animations\\` field of the \\`@Component\\` decorator (see https://angular.io/api/core/Component#animations).`);\n }\n}\nfunction isTemplateNode(node) {\n return node.tagName === 'TEMPLATE' && node.content !== undefined;\n}\nclass ShadowDomRenderer extends DefaultDomRenderer2 {\n constructor(eventManager, sharedStylesHost, hostEl, component) {\n super(eventManager);\n this.sharedStylesHost = sharedStylesHost;\n this.hostEl = hostEl;\n this.shadowRoot = hostEl.attachShadow({ mode: 'open' });\n this.sharedStylesHost.addHost(this.shadowRoot);\n const styles = flattenStyles(component.id, component.styles);\n for (const style of styles) {\n const styleEl = document.createElement('style');\n styleEl.textContent = style;\n this.shadowRoot.appendChild(styleEl);\n }\n }\n nodeOrShadowRoot(node) {\n return node === this.hostEl ? this.shadowRoot : node;\n }\n appendChild(parent, newChild) {\n return super.appendChild(this.nodeOrShadowRoot(parent), newChild);\n }\n insertBefore(parent, newChild, refChild) {\n return super.insertBefore(this.nodeOrShadowRoot(parent), newChild, refChild);\n }\n removeChild(parent, oldChild) {\n return super.removeChild(this.nodeOrShadowRoot(parent), oldChild);\n }\n parentNode(node) {\n return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(node)));\n }\n destroy() {\n this.sharedStylesHost.removeHost(this.shadowRoot);\n }\n}\nclass NoneEncapsulationDomRenderer extends DefaultDomRenderer2 {\n constructor(eventManager, sharedStylesHost, component, removeStylesOnCompDestory, compId = component.id) {\n super(eventManager);\n this.sharedStylesHost = sharedStylesHost;\n this.removeStylesOnCompDestory = removeStylesOnCompDestory;\n this.rendererUsageCount = 0;\n this.styles = flattenStyles(compId, component.styles);\n }\n applyStyles() {\n this.sharedStylesHost.addStyles(this.styles);\n this.rendererUsageCount++;\n }\n destroy() {\n if (!this.removeStylesOnCompDestory) {\n return;\n }\n this.sharedStylesHost.removeStyles(this.styles);\n this.rendererUsageCount--;\n if (this.rendererUsageCount === 0) {\n this.onDestroy?.();\n }\n }\n}\nclass EmulatedEncapsulationDomRenderer2 extends NoneEncapsulationDomRenderer {\n constructor(eventManager, sharedStylesHost, component, appId, removeStylesOnCompDestory) {\n const compId = appId + '-' + component.id;\n super(eventManager, sharedStylesHost, component, removeStylesOnCompDestory, compId);\n this.contentAttr = shimContentAttribute(compId);\n this.hostAttr = shimHostAttribute(compId);\n }\n applyToHost(element) {\n this.applyStyles();\n this.setAttribute(element, this.hostAttr, '');\n }\n createElement(parent, name) {\n const el = super.createElement(parent, name);\n super.setAttribute(el, this.contentAttr, '');\n return el;\n }\n}\n\nclass DomEventsPlugin extends EventManagerPlugin {\n constructor(doc) {\n super(doc);\n }\n // This plugin should come last in the list of plugins, because it accepts all\n // events.\n supports(eventName) {\n return true;\n }\n addEventListener(element, eventName, handler) {\n element.addEventListener(eventName, handler, false);\n return () => this.removeEventListener(element, eventName, handler);\n }\n removeEventListener(target, eventName, callback) {\n return target.removeEventListener(eventName, callback);\n }\n}\nDomEventsPlugin.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: DomEventsPlugin, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });\nDomEventsPlugin.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: DomEventsPlugin });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: DomEventsPlugin, decorators: [{\n type: Injectable\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }]; } });\n\n/**\n * Defines supported modifiers for key events.\n */\nconst MODIFIER_KEYS = ['alt', 'control', 'meta', 'shift'];\n// The following values are here for cross-browser compatibility and to match the W3C standard\n// cf https://www.w3.org/TR/DOM-Level-3-Events-key/\nconst _keyMap = {\n '\\b': 'Backspace',\n '\\t': 'Tab',\n '\\x7F': 'Delete',\n '\\x1B': 'Escape',\n 'Del': 'Delete',\n 'Esc': 'Escape',\n 'Left': 'ArrowLeft',\n 'Right': 'ArrowRight',\n 'Up': 'ArrowUp',\n 'Down': 'ArrowDown',\n 'Menu': 'ContextMenu',\n 'Scroll': 'ScrollLock',\n 'Win': 'OS'\n};\n/**\n * Retrieves modifiers from key-event objects.\n */\nconst MODIFIER_KEY_GETTERS = {\n 'alt': (event) => event.altKey,\n 'control': (event) => event.ctrlKey,\n 'meta': (event) => event.metaKey,\n 'shift': (event) => event.shiftKey\n};\n/**\n * @publicApi\n * A browser plug-in that provides support for handling of key events in Angular.\n */\nclass KeyEventsPlugin extends EventManagerPlugin {\n /**\n * Initializes an instance of the browser plug-in.\n * @param doc The document in which key events will be detected.\n */\n constructor(doc) {\n super(doc);\n }\n /**\n * Reports whether a named key event is supported.\n * @param eventName The event name to query.\n * @return True if the named key event is supported.\n */\n supports(eventName) {\n return KeyEventsPlugin.parseEventName(eventName) != null;\n }\n /**\n * Registers a handler for a specific element and key event.\n * @param element The HTML element to receive event notifications.\n * @param eventName The name of the key event to listen for.\n * @param handler A function to call when the notification occurs. Receives the\n * event object as an argument.\n * @returns The key event that was registered.\n */\n addEventListener(element, eventName, handler) {\n const parsedEvent = KeyEventsPlugin.parseEventName(eventName);\n const outsideHandler = KeyEventsPlugin.eventCallback(parsedEvent['fullKey'], handler, this.manager.getZone());\n return this.manager.getZone().runOutsideAngular(() => {\n return ɵgetDOM().onAndCancel(element, parsedEvent['domEventName'], outsideHandler);\n });\n }\n /**\n * Parses the user provided full keyboard event definition and normalizes it for\n * later internal use. It ensures the string is all lowercase, converts special\n * characters to a standard spelling, and orders all the values consistently.\n *\n * @param eventName The name of the key event to listen for.\n * @returns an object with the full, normalized string, and the dom event name\n * or null in the case when the event doesn't match a keyboard event.\n */\n static parseEventName(eventName) {\n const parts = eventName.toLowerCase().split('.');\n const domEventName = parts.shift();\n if ((parts.length === 0) || !(domEventName === 'keydown' || domEventName === 'keyup')) {\n return null;\n }\n const key = KeyEventsPlugin._normalizeKey(parts.pop());\n let fullKey = '';\n let codeIX = parts.indexOf('code');\n if (codeIX > -1) {\n parts.splice(codeIX, 1);\n fullKey = 'code.';\n }\n MODIFIER_KEYS.forEach(modifierName => {\n const index = parts.indexOf(modifierName);\n if (index > -1) {\n parts.splice(index, 1);\n fullKey += modifierName + '.';\n }\n });\n fullKey += key;\n if (parts.length != 0 || key.length === 0) {\n // returning null instead of throwing to let another plugin process the event\n return null;\n }\n // NOTE: Please don't rewrite this as so, as it will break JSCompiler property renaming.\n // The code must remain in the `result['domEventName']` form.\n // return {domEventName, fullKey};\n const result = {};\n result['domEventName'] = domEventName;\n result['fullKey'] = fullKey;\n return result;\n }\n /**\n * Determines whether the actual keys pressed match the configured key code string.\n * The `fullKeyCode` event is normalized in the `parseEventName` method when the\n * event is attached to the DOM during the `addEventListener` call. This is unseen\n * by the end user and is normalized for internal consistency and parsing.\n *\n * @param event The keyboard event.\n * @param fullKeyCode The normalized user defined expected key event string\n * @returns boolean.\n */\n static matchEventFullKeyCode(event, fullKeyCode) {\n let keycode = _keyMap[event.key] || event.key;\n let key = '';\n if (fullKeyCode.indexOf('code.') > -1) {\n keycode = event.code;\n key = 'code.';\n }\n // the keycode could be unidentified so we have to check here\n if (keycode == null || !keycode)\n return false;\n keycode = keycode.toLowerCase();\n if (keycode === ' ') {\n keycode = 'space'; // for readability\n }\n else if (keycode === '.') {\n keycode = 'dot'; // because '.' is used as a separator in event names\n }\n MODIFIER_KEYS.forEach(modifierName => {\n if (modifierName !== keycode) {\n const modifierGetter = MODIFIER_KEY_GETTERS[modifierName];\n if (modifierGetter(event)) {\n key += modifierName + '.';\n }\n }\n });\n key += keycode;\n return key === fullKeyCode;\n }\n /**\n * Configures a handler callback for a key event.\n * @param fullKey The event name that combines all simultaneous keystrokes.\n * @param handler The function that responds to the key event.\n * @param zone The zone in which the event occurred.\n * @returns A callback function.\n */\n static eventCallback(fullKey, handler, zone) {\n return (event) => {\n if (KeyEventsPlugin.matchEventFullKeyCode(event, fullKey)) {\n zone.runGuarded(() => handler(event));\n }\n };\n }\n /** @internal */\n static _normalizeKey(keyName) {\n // TODO: switch to a Map if the mapping grows too much\n switch (keyName) {\n case 'esc':\n return 'escape';\n default:\n return keyName;\n }\n }\n}\nKeyEventsPlugin.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: KeyEventsPlugin, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });\nKeyEventsPlugin.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: KeyEventsPlugin });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: KeyEventsPlugin, decorators: [{\n type: Injectable\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }]; } });\n\nconst NG_DEV_MODE = typeof ngDevMode === 'undefined' || !!ngDevMode;\n/**\n * Bootstraps an instance of an Angular application and renders a standalone component as the\n * application's root component. More information about standalone components can be found in [this\n * guide](guide/standalone-components).\n *\n * @usageNotes\n * The root component passed into this function *must* be a standalone one (should have the\n * `standalone: true` flag in the `@Component` decorator config).\n *\n * ```typescript\n * @Component({\n * standalone: true,\n * template: 'Hello world!'\n * })\n * class RootComponent {}\n *\n * const appRef: ApplicationRef = await bootstrapApplication(RootComponent);\n * ```\n *\n * You can add the list of providers that should be available in the application injector by\n * specifying the `providers` field in an object passed as the second argument:\n *\n * ```typescript\n * await bootstrapApplication(RootComponent, {\n * providers: [\n * {provide: BACKEND_URL, useValue: 'https://yourdomain.com/api'}\n * ]\n * });\n * ```\n *\n * The `importProvidersFrom` helper method can be used to collect all providers from any\n * existing NgModule (and transitively from all NgModules that it imports):\n *\n * ```typescript\n * await bootstrapApplication(RootComponent, {\n * providers: [\n * importProvidersFrom(SomeNgModule)\n * ]\n * });\n * ```\n *\n * Note: the `bootstrapApplication` method doesn't include [Testability](api/core/Testability) by\n * default. You can add [Testability](api/core/Testability) by getting the list of necessary\n * providers using `provideProtractorTestingSupport()` function and adding them into the `providers`\n * array, for example:\n *\n * ```typescript\n * import {provideProtractorTestingSupport} from '@angular/platform-browser';\n *\n * await bootstrapApplication(RootComponent, {providers: [provideProtractorTestingSupport()]});\n * ```\n *\n * @param rootComponent A reference to a standalone component that should be rendered.\n * @param options Extra configuration for the bootstrap operation, see `ApplicationConfig` for\n * additional info.\n * @returns A promise that returns an `ApplicationRef` instance once resolved.\n *\n * @publicApi\n */\nfunction bootstrapApplication(rootComponent, options) {\n return ɵinternalCreateApplication({ rootComponent, ...createProvidersConfig(options) });\n}\n/**\n * Create an instance of an Angular application without bootstrapping any components. This is useful\n * for the situation where one wants to decouple application environment creation (a platform and\n * associated injectors) from rendering components on a screen. Components can be subsequently\n * bootstrapped on the returned `ApplicationRef`.\n *\n * @param options Extra configuration for the application environment, see `ApplicationConfig` for\n * additional info.\n * @returns A promise that returns an `ApplicationRef` instance once resolved.\n *\n * @publicApi\n */\nfunction createApplication(options) {\n return ɵinternalCreateApplication(createProvidersConfig(options));\n}\nfunction createProvidersConfig(options) {\n return {\n appProviders: [\n ...BROWSER_MODULE_PROVIDERS,\n ...(options?.providers ?? []),\n ],\n platformProviders: INTERNAL_BROWSER_PLATFORM_PROVIDERS\n };\n}\n/**\n * Returns a set of providers required to setup [Testability](api/core/Testability) for an\n * application bootstrapped using the `bootstrapApplication` function. The set of providers is\n * needed to support testing an application with Protractor (which relies on the Testability APIs\n * to be present).\n *\n * @returns An array of providers required to setup Testability for an application and make it\n * available for testing using Protractor.\n *\n * @publicApi\n */\nfunction provideProtractorTestingSupport() {\n // Return a copy to prevent changes to the original array in case any in-place\n // alterations are performed to the `provideProtractorTestingSupport` call results in app code.\n return [...TESTABILITY_PROVIDERS];\n}\nfunction initDomAdapter() {\n BrowserDomAdapter.makeCurrent();\n}\nfunction errorHandler() {\n return new ErrorHandler();\n}\nfunction _document() {\n // Tell ivy about the global document\n ɵsetDocument(document);\n return document;\n}\nconst INTERNAL_BROWSER_PLATFORM_PROVIDERS = [\n { provide: PLATFORM_ID, useValue: ɵPLATFORM_BROWSER_ID },\n { provide: PLATFORM_INITIALIZER, useValue: initDomAdapter, multi: true },\n { provide: DOCUMENT, useFactory: _document, deps: [] },\n];\n/**\n * A factory function that returns a `PlatformRef` instance associated with browser service\n * providers.\n *\n * @publicApi\n */\nconst platformBrowser = createPlatformFactory(platformCore, 'browser', INTERNAL_BROWSER_PLATFORM_PROVIDERS);\n/**\n * Internal marker to signal whether providers from the `BrowserModule` are already present in DI.\n * This is needed to avoid loading `BrowserModule` providers twice. We can't rely on the\n * `BrowserModule` presence itself, since the standalone-based bootstrap just imports\n * `BrowserModule` providers without referencing the module itself.\n */\nconst BROWSER_MODULE_PROVIDERS_MARKER = new InjectionToken(NG_DEV_MODE ? 'BrowserModule Providers Marker' : '');\nconst TESTABILITY_PROVIDERS = [\n {\n provide: ɵTESTABILITY_GETTER,\n useClass: BrowserGetTestability,\n deps: [],\n },\n {\n provide: ɵTESTABILITY,\n useClass: Testability,\n deps: [NgZone, TestabilityRegistry, ɵTESTABILITY_GETTER]\n },\n {\n provide: Testability,\n useClass: Testability,\n deps: [NgZone, TestabilityRegistry, ɵTESTABILITY_GETTER]\n }\n];\nconst BROWSER_MODULE_PROVIDERS = [\n { provide: ɵINJECTOR_SCOPE, useValue: 'root' },\n { provide: ErrorHandler, useFactory: errorHandler, deps: [] }, {\n provide: EVENT_MANAGER_PLUGINS,\n useClass: DomEventsPlugin,\n multi: true,\n deps: [DOCUMENT, NgZone, PLATFORM_ID]\n },\n { provide: EVENT_MANAGER_PLUGINS, useClass: KeyEventsPlugin, multi: true, deps: [DOCUMENT] }, {\n provide: DomRendererFactory2,\n useClass: DomRendererFactory2,\n deps: [EventManager, DomSharedStylesHost, APP_ID, REMOVE_STYLES_ON_COMPONENT_DESTROY]\n },\n { provide: RendererFactory2, useExisting: DomRendererFactory2 },\n { provide: SharedStylesHost, useExisting: DomSharedStylesHost },\n { provide: DomSharedStylesHost, useClass: DomSharedStylesHost, deps: [DOCUMENT] },\n { provide: EventManager, useClass: EventManager, deps: [EVENT_MANAGER_PLUGINS, NgZone] },\n { provide: XhrFactory, useClass: BrowserXhr, deps: [] },\n NG_DEV_MODE ? { provide: BROWSER_MODULE_PROVIDERS_MARKER, useValue: true } : []\n];\n/**\n * Exports required infrastructure for all Angular apps.\n * Included by default in all Angular apps created with the CLI\n * `new` command.\n * Re-exports `CommonModule` and `ApplicationModule`, making their\n * exports and providers available to all apps.\n *\n * @publicApi\n */\nclass BrowserModule {\n constructor(providersAlreadyPresent) {\n if (NG_DEV_MODE && providersAlreadyPresent) {\n throw new Error(`Providers from the \\`BrowserModule\\` have already been loaded. If you need access ` +\n `to common directives such as NgIf and NgFor, import the \\`CommonModule\\` instead.`);\n }\n }\n /**\n * Configures a browser-based app to transition from a server-rendered app, if\n * one is present on the page.\n *\n * @param params An object containing an identifier for the app to transition.\n * The ID must match between the client and server versions of the app.\n * @returns The reconfigured `BrowserModule` to import into the app's root `AppModule`.\n */\n static withServerTransition(params) {\n return {\n ngModule: BrowserModule,\n providers: [\n { provide: APP_ID, useValue: params.appId },\n { provide: TRANSITION_ID, useExisting: APP_ID },\n SERVER_TRANSITION_PROVIDERS,\n ],\n };\n }\n}\nBrowserModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: BrowserModule, deps: [{ token: BROWSER_MODULE_PROVIDERS_MARKER, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.NgModule });\nBrowserModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"15.2.9\", ngImport: i0, type: BrowserModule, exports: [CommonModule, ApplicationModule] });\nBrowserModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: BrowserModule, providers: [\n ...BROWSER_MODULE_PROVIDERS,\n ...TESTABILITY_PROVIDERS\n ], imports: [CommonModule, ApplicationModule] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: BrowserModule, decorators: [{\n type: NgModule,\n args: [{\n providers: [\n ...BROWSER_MODULE_PROVIDERS,\n ...TESTABILITY_PROVIDERS\n ],\n exports: [CommonModule, ApplicationModule],\n }]\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\n type: Optional\n }, {\n type: SkipSelf\n }, {\n type: Inject,\n args: [BROWSER_MODULE_PROVIDERS_MARKER]\n }] }]; } });\n\n/**\n * Factory to create a `Meta` service instance for the current DOM document.\n */\nfunction createMeta() {\n return new Meta(ɵɵinject(DOCUMENT));\n}\n/**\n * A service for managing HTML `` tags.\n *\n * Properties of the `MetaDefinition` object match the attributes of the\n * HTML `` tag. These tags define document metadata that is important for\n * things like configuring a Content Security Policy, defining browser compatibility\n * and security settings, setting HTTP Headers, defining rich content for social sharing,\n * and Search Engine Optimization (SEO).\n *\n * To identify specific `` tags in a document, use an attribute selection\n * string in the format `\"tag_attribute='value string'\"`.\n * For example, an `attrSelector` value of `\"name='description'\"` matches a tag\n * whose `name` attribute has the value `\"description\"`.\n * Selectors are used with the `querySelector()` Document method,\n * in the format `meta[{attrSelector}]`.\n *\n * @see [HTML meta tag](https://developer.mozilla.org/docs/Web/HTML/Element/meta)\n * @see [Document.querySelector()](https://developer.mozilla.org/docs/Web/API/Document/querySelector)\n *\n *\n * @publicApi\n */\nclass Meta {\n constructor(_doc) {\n this._doc = _doc;\n this._dom = ɵgetDOM();\n }\n /**\n * Retrieves or creates a specific `` tag element in the current HTML document.\n * In searching for an existing tag, Angular attempts to match the `name` or `property` attribute\n * values in the provided tag definition, and verifies that all other attribute values are equal.\n * If an existing element is found, it is returned and is not modified in any way.\n * @param tag The definition of a `` element to match or create.\n * @param forceCreation True to create a new element without checking whether one already exists.\n * @returns The existing element with the same attributes and values if found,\n * the new element if no match is found, or `null` if the tag parameter is not defined.\n */\n addTag(tag, forceCreation = false) {\n if (!tag)\n return null;\n return this._getOrCreateElement(tag, forceCreation);\n }\n /**\n * Retrieves or creates a set of `` tag elements in the current HTML document.\n * In searching for an existing tag, Angular attempts to match the `name` or `property` attribute\n * values in the provided tag definition, and verifies that all other attribute values are equal.\n * @param tags An array of tag definitions to match or create.\n * @param forceCreation True to create new elements without checking whether they already exist.\n * @returns The matching elements if found, or the new elements.\n */\n addTags(tags, forceCreation = false) {\n if (!tags)\n return [];\n return tags.reduce((result, tag) => {\n if (tag) {\n result.push(this._getOrCreateElement(tag, forceCreation));\n }\n return result;\n }, []);\n }\n /**\n * Retrieves a `` tag element in the current HTML document.\n * @param attrSelector The tag attribute and value to match against, in the format\n * `\"tag_attribute='value string'\"`.\n * @returns The matching element, if any.\n */\n getTag(attrSelector) {\n if (!attrSelector)\n return null;\n return this._doc.querySelector(`meta[${attrSelector}]`) || null;\n }\n /**\n * Retrieves a set of `` tag elements in the current HTML document.\n * @param attrSelector The tag attribute and value to match against, in the format\n * `\"tag_attribute='value string'\"`.\n * @returns The matching elements, if any.\n */\n getTags(attrSelector) {\n if (!attrSelector)\n return [];\n const list /*NodeList*/ = this._doc.querySelectorAll(`meta[${attrSelector}]`);\n return list ? [].slice.call(list) : [];\n }\n /**\n * Modifies an existing `` tag element in the current HTML document.\n * @param tag The tag description with which to replace the existing tag content.\n * @param selector A tag attribute and value to match against, to identify\n * an existing tag. A string in the format `\"tag_attribute=`value string`\"`.\n * If not supplied, matches a tag with the same `name` or `property` attribute value as the\n * replacement tag.\n * @return The modified element.\n */\n updateTag(tag, selector) {\n if (!tag)\n return null;\n selector = selector || this._parseSelector(tag);\n const meta = this.getTag(selector);\n if (meta) {\n return this._setMetaElementAttributes(tag, meta);\n }\n return this._getOrCreateElement(tag, true);\n }\n /**\n * Removes an existing `` tag element from the current HTML document.\n * @param attrSelector A tag attribute and value to match against, to identify\n * an existing tag. A string in the format `\"tag_attribute=`value string`\"`.\n */\n removeTag(attrSelector) {\n this.removeTagElement(this.getTag(attrSelector));\n }\n /**\n * Removes an existing `` tag element from the current HTML document.\n * @param meta The tag definition to match against to identify an existing tag.\n */\n removeTagElement(meta) {\n if (meta) {\n this._dom.remove(meta);\n }\n }\n _getOrCreateElement(meta, forceCreation = false) {\n if (!forceCreation) {\n const selector = this._parseSelector(meta);\n // It's allowed to have multiple elements with the same name so it's not enough to\n // just check that element with the same name already present on the page. We also need to\n // check if element has tag attributes\n const elem = this.getTags(selector).filter(elem => this._containsAttributes(meta, elem))[0];\n if (elem !== undefined)\n return elem;\n }\n const element = this._dom.createElement('meta');\n this._setMetaElementAttributes(meta, element);\n const head = this._doc.getElementsByTagName('head')[0];\n head.appendChild(element);\n return element;\n }\n _setMetaElementAttributes(tag, el) {\n Object.keys(tag).forEach((prop) => el.setAttribute(this._getMetaKeyMap(prop), tag[prop]));\n return el;\n }\n _parseSelector(tag) {\n const attr = tag.name ? 'name' : 'property';\n return `${attr}=\"${tag[attr]}\"`;\n }\n _containsAttributes(tag, elem) {\n return Object.keys(tag).every((key) => elem.getAttribute(this._getMetaKeyMap(key)) === tag[key]);\n }\n _getMetaKeyMap(prop) {\n return META_KEYS_MAP[prop] || prop;\n }\n}\nMeta.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: Meta, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });\nMeta.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: Meta, providedIn: 'root', useFactory: createMeta, deps: [] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: Meta, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root', useFactory: createMeta, deps: [] }]\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }]; } });\n/**\n * Mapping for MetaDefinition properties with their correct meta attribute names\n */\nconst META_KEYS_MAP = {\n httpEquiv: 'http-equiv'\n};\n\n/**\n * Factory to create Title service.\n */\nfunction createTitle() {\n return new Title(ɵɵinject(DOCUMENT));\n}\n/**\n * A service that can be used to get and set the title of a current HTML document.\n *\n * Since an Angular application can't be bootstrapped on the entire HTML document (`` tag)\n * it is not possible to bind to the `text` property of the `HTMLTitleElement` elements\n * (representing the `` tag). Instead, this service can be used to set and get the current\n * title value.\n *\n * @publicApi\n */\nclass Title {\n constructor(_doc) {\n this._doc = _doc;\n }\n /**\n * Get the title of the current HTML document.\n */\n getTitle() {\n return this._doc.title;\n }\n /**\n * Set the title of the current HTML document.\n * @param newTitle\n */\n setTitle(newTitle) {\n this._doc.title = newTitle || '';\n }\n}\nTitle.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: Title, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });\nTitle.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: Title, providedIn: 'root', useFactory: createTitle, deps: [] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: Title, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root', useFactory: createTitle, deps: [] }]\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }]; } });\n\n/**\n * Exports the value under a given `name` in the global property `ng`. For example `ng.probe` if\n * `name` is `'probe'`.\n * @param name Name under which it will be exported. Keep in mind this will be a property of the\n * global `ng` object.\n * @param value The value to export.\n */\nfunction exportNgVar(name, value) {\n if (typeof COMPILED === 'undefined' || !COMPILED) {\n // Note: we can't export `ng` when using closure enhanced optimization as:\n // - closure declares globals itself for minified names, which sometimes clobber our `ng` global\n // - we can't declare a closure extern as the namespace `ng` is already used within Google\n // for typings for angularJS (via `goog.provide('ng....')`).\n const ng = ɵglobal['ng'] = ɵglobal['ng'] || {};\n ng[name] = value;\n }\n}\n\nconst win = typeof window !== 'undefined' && window || {};\n\nclass ChangeDetectionPerfRecord {\n constructor(msPerTick, numTicks) {\n this.msPerTick = msPerTick;\n this.numTicks = numTicks;\n }\n}\n/**\n * Entry point for all Angular profiling-related debug tools. This object\n * corresponds to the `ng.profiler` in the dev console.\n */\nclass AngularProfiler {\n constructor(ref) {\n this.appRef = ref.injector.get(ApplicationRef);\n }\n // tslint:disable:no-console\n /**\n * Exercises change detection in a loop and then prints the average amount of\n * time in milliseconds how long a single round of change detection takes for\n * the current state of the UI. It runs a minimum of 5 rounds for a minimum\n * of 500 milliseconds.\n *\n * Optionally, a user may pass a `config` parameter containing a map of\n * options. Supported options are:\n *\n * `record` (boolean) - causes the profiler to record a CPU profile while\n * it exercises the change detector. Example:\n *\n * ```\n * ng.profiler.timeChangeDetection({record: true})\n * ```\n */\n timeChangeDetection(config) {\n const record = config && config['record'];\n const profileName = 'Change Detection';\n // Profiler is not available in Android browsers without dev tools opened\n const isProfilerAvailable = win.console.profile != null;\n if (record && isProfilerAvailable) {\n win.console.profile(profileName);\n }\n const start = performanceNow();\n let numTicks = 0;\n while (numTicks < 5 || (performanceNow() - start) < 500) {\n this.appRef.tick();\n numTicks++;\n }\n const end = performanceNow();\n if (record && isProfilerAvailable) {\n win.console.profileEnd(profileName);\n }\n const msPerTick = (end - start) / numTicks;\n win.console.log(`ran ${numTicks} change detection cycles`);\n win.console.log(`${msPerTick.toFixed(2)} ms per check`);\n return new ChangeDetectionPerfRecord(msPerTick, numTicks);\n }\n}\nfunction performanceNow() {\n return win.performance && win.performance.now ? win.performance.now() :\n new Date().getTime();\n}\n\nconst PROFILER_GLOBAL_NAME = 'profiler';\n/**\n * Enabled Angular debug tools that are accessible via your browser's\n * developer console.\n *\n * Usage:\n *\n * 1. Open developer console (e.g. in Chrome Ctrl + Shift + j)\n * 1. Type `ng.` (usually the console will show auto-complete suggestion)\n * 1. Try the change detection profiler `ng.profiler.timeChangeDetection()`\n * then hit Enter.\n *\n * @publicApi\n */\nfunction enableDebugTools(ref) {\n exportNgVar(PROFILER_GLOBAL_NAME, new AngularProfiler(ref));\n return ref;\n}\n/**\n * Disables Angular tools.\n *\n * @publicApi\n */\nfunction disableDebugTools() {\n exportNgVar(PROFILER_GLOBAL_NAME, null);\n}\n\nfunction escapeHtml(text) {\n const escapedText = {\n '&': '&a;',\n '\"': '&q;',\n '\\'': '&s;',\n '<': '&l;',\n '>': '&g;',\n };\n return text.replace(/[&\"'<>]/g, s => escapedText[s]);\n}\nfunction unescapeHtml(text) {\n const unescapedText = {\n '&a;': '&',\n '&q;': '\"',\n '&s;': '\\'',\n '&l;': '<',\n '&g;': '>',\n };\n return text.replace(/&[^;]+;/g, s => unescapedText[s]);\n}\n/**\n * Create a `StateKey<T>` that can be used to store value of type T with `TransferState`.\n *\n * Example:\n *\n * ```\n * const COUNTER_KEY = makeStateKey<number>('counter');\n * let value = 10;\n *\n * transferState.set(COUNTER_KEY, value);\n * ```\n *\n * @publicApi\n */\nfunction makeStateKey(key) {\n return key;\n}\n/**\n * A key value store that is transferred from the application on the server side to the application\n * on the client side.\n *\n * The `TransferState` is available as an injectable token.\n * On the client, just inject this token using DI and use it, it will be lazily initialized.\n * On the server it's already included if `renderApplication` function is used. Otherwise, import\n * the `ServerTransferStateModule` module to make the `TransferState` available.\n *\n * The values in the store are serialized/deserialized using JSON.stringify/JSON.parse. So only\n * boolean, number, string, null and non-class objects will be serialized and deserialized in a\n * non-lossy manner.\n *\n * @publicApi\n */\nclass TransferState {\n constructor() {\n this.store = {};\n this.onSerializeCallbacks = {};\n this.store = retrieveTransferredState(inject(DOCUMENT), inject(APP_ID));\n }\n /**\n * Get the value corresponding to a key. Return `defaultValue` if key is not found.\n */\n get(key, defaultValue) {\n return this.store[key] !== undefined ? this.store[key] : defaultValue;\n }\n /**\n * Set the value corresponding to a key.\n */\n set(key, value) {\n this.store[key] = value;\n }\n /**\n * Remove a key from the store.\n */\n remove(key) {\n delete this.store[key];\n }\n /**\n * Test whether a key exists in the store.\n */\n hasKey(key) {\n return this.store.hasOwnProperty(key);\n }\n /**\n * Indicates whether the state is empty.\n */\n get isEmpty() {\n return Object.keys(this.store).length === 0;\n }\n /**\n * Register a callback to provide the value for a key when `toJson` is called.\n */\n onSerialize(key, callback) {\n this.onSerializeCallbacks[key] = callback;\n }\n /**\n * Serialize the current state of the store to JSON.\n */\n toJson() {\n // Call the onSerialize callbacks and put those values into the store.\n for (const key in this.onSerializeCallbacks) {\n if (this.onSerializeCallbacks.hasOwnProperty(key)) {\n try {\n this.store[key] = this.onSerializeCallbacks[key]();\n }\n catch (e) {\n console.warn('Exception in onSerialize callback: ', e);\n }\n }\n }\n return JSON.stringify(this.store);\n }\n}\nTransferState.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: TransferState, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nTransferState.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: TransferState, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: TransferState, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return []; } });\nfunction retrieveTransferredState(doc, appId) {\n // Locate the script tag with the JSON data transferred from the server.\n // The id of the script tag is set to the Angular appId + 'state'.\n const script = doc.getElementById(appId + '-state');\n let initialState = {};\n if (script && script.textContent) {\n try {\n // Avoid using any here as it triggers lint errors in google3 (any is not allowed).\n initialState = JSON.parse(unescapeHtml(script.textContent));\n }\n catch (e) {\n console.warn('Exception while restoring TransferState for app ' + appId, e);\n }\n }\n return initialState;\n}\n/**\n * NgModule to install on the client side while using the `TransferState` to transfer state from\n * server to client.\n *\n * @publicApi\n * @deprecated no longer needed, you can inject the `TransferState` in an app without providing\n * this module.\n */\nclass BrowserTransferStateModule {\n}\nBrowserTransferStateModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: BrowserTransferStateModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nBrowserTransferStateModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"15.2.9\", ngImport: i0, type: BrowserTransferStateModule });\nBrowserTransferStateModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: BrowserTransferStateModule });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: BrowserTransferStateModule, decorators: [{\n type: NgModule,\n args: [{}]\n }] });\n\n/**\n * Predicates for use with {@link DebugElement}'s query functions.\n *\n * @publicApi\n */\nclass By {\n /**\n * Match all nodes.\n *\n * @usageNotes\n * ### Example\n *\n * {@example platform-browser/dom/debug/ts/by/by.ts region='by_all'}\n */\n static all() {\n return () => true;\n }\n /**\n * Match elements by the given CSS selector.\n *\n * @usageNotes\n * ### Example\n *\n * {@example platform-browser/dom/debug/ts/by/by.ts region='by_css'}\n */\n static css(selector) {\n return (debugElement) => {\n return debugElement.nativeElement != null ?\n elementMatches(debugElement.nativeElement, selector) :\n false;\n };\n }\n /**\n * Match nodes that have the given directive present.\n *\n * @usageNotes\n * ### Example\n *\n * {@example platform-browser/dom/debug/ts/by/by.ts region='by_directive'}\n */\n static directive(type) {\n return (debugNode) => debugNode.providerTokens.indexOf(type) !== -1;\n }\n}\nfunction elementMatches(n, selector) {\n if (ɵgetDOM().isElementNode(n)) {\n return n.matches && n.matches(selector) ||\n n.msMatchesSelector && n.msMatchesSelector(selector) ||\n n.webkitMatchesSelector && n.webkitMatchesSelector(selector);\n }\n return false;\n}\n\n/**\n * Supported HammerJS recognizer event names.\n */\nconst EVENT_NAMES = {\n // pan\n 'pan': true,\n 'panstart': true,\n 'panmove': true,\n 'panend': true,\n 'pancancel': true,\n 'panleft': true,\n 'panright': true,\n 'panup': true,\n 'pandown': true,\n // pinch\n 'pinch': true,\n 'pinchstart': true,\n 'pinchmove': true,\n 'pinchend': true,\n 'pinchcancel': true,\n 'pinchin': true,\n 'pinchout': true,\n // press\n 'press': true,\n 'pressup': true,\n // rotate\n 'rotate': true,\n 'rotatestart': true,\n 'rotatemove': true,\n 'rotateend': true,\n 'rotatecancel': true,\n // swipe\n 'swipe': true,\n 'swipeleft': true,\n 'swiperight': true,\n 'swipeup': true,\n 'swipedown': true,\n // tap\n 'tap': true,\n 'doubletap': true\n};\n/**\n * DI token for providing [HammerJS](https://hammerjs.github.io/) support to Angular.\n * @see `HammerGestureConfig`\n *\n * @ngModule HammerModule\n * @publicApi\n */\nconst HAMMER_GESTURE_CONFIG = new InjectionToken('HammerGestureConfig');\n/**\n * Injection token used to provide a {@link HammerLoader} to Angular.\n *\n * @publicApi\n */\nconst HAMMER_LOADER = new InjectionToken('HammerLoader');\n/**\n * An injectable [HammerJS Manager](https://hammerjs.github.io/api/#hammermanager)\n * for gesture recognition. Configures specific event recognition.\n * @publicApi\n */\nclass HammerGestureConfig {\n constructor() {\n /**\n * A set of supported event names for gestures to be used in Angular.\n * Angular supports all built-in recognizers, as listed in\n * [HammerJS documentation](https://hammerjs.github.io/).\n */\n this.events = [];\n /**\n * Maps gesture event names to a set of configuration options\n * that specify overrides to the default values for specific properties.\n *\n * The key is a supported event name to be configured,\n * and the options object contains a set of properties, with override values\n * to be applied to the named recognizer event.\n * For example, to disable recognition of the rotate event, specify\n * `{\"rotate\": {\"enable\": false}}`.\n *\n * Properties that are not present take the HammerJS default values.\n * For information about which properties are supported for which events,\n * and their allowed and default values, see\n * [HammerJS documentation](https://hammerjs.github.io/).\n *\n */\n this.overrides = {};\n }\n /**\n * Creates a [HammerJS Manager](https://hammerjs.github.io/api/#hammermanager)\n * and attaches it to a given HTML element.\n * @param element The element that will recognize gestures.\n * @returns A HammerJS event-manager object.\n */\n buildHammer(element) {\n const mc = new Hammer(element, this.options);\n mc.get('pinch').set({ enable: true });\n mc.get('rotate').set({ enable: true });\n for (const eventName in this.overrides) {\n mc.get(eventName).set(this.overrides[eventName]);\n }\n return mc;\n }\n}\nHammerGestureConfig.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: HammerGestureConfig, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nHammerGestureConfig.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: HammerGestureConfig });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: HammerGestureConfig, decorators: [{\n type: Injectable\n }] });\n/**\n * Event plugin that adds Hammer support to an application.\n *\n * @ngModule HammerModule\n */\nclass HammerGesturesPlugin extends EventManagerPlugin {\n constructor(doc, _config, console, loader) {\n super(doc);\n this._config = _config;\n this.console = console;\n this.loader = loader;\n this._loaderPromise = null;\n }\n supports(eventName) {\n if (!EVENT_NAMES.hasOwnProperty(eventName.toLowerCase()) && !this.isCustomEvent(eventName)) {\n return false;\n }\n if (!window.Hammer && !this.loader) {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n this.console.warn(`The \"${eventName}\" event cannot be bound because Hammer.JS is not ` +\n `loaded and no custom loader has been specified.`);\n }\n return false;\n }\n return true;\n }\n addEventListener(element, eventName, handler) {\n const zone = this.manager.getZone();\n eventName = eventName.toLowerCase();\n // If Hammer is not present but a loader is specified, we defer adding the event listener\n // until Hammer is loaded.\n if (!window.Hammer && this.loader) {\n this._loaderPromise = this._loaderPromise || zone.runOutsideAngular(() => this.loader());\n // This `addEventListener` method returns a function to remove the added listener.\n // Until Hammer is loaded, the returned function needs to *cancel* the registration rather\n // than remove anything.\n let cancelRegistration = false;\n let deregister = () => {\n cancelRegistration = true;\n };\n zone.runOutsideAngular(() => this._loaderPromise\n .then(() => {\n // If Hammer isn't actually loaded when the custom loader resolves, give up.\n if (!window.Hammer) {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n this.console.warn(`The custom HAMMER_LOADER completed, but Hammer.JS is not present.`);\n }\n deregister = () => { };\n return;\n }\n if (!cancelRegistration) {\n // Now that Hammer is loaded and the listener is being loaded for real,\n // the deregistration function changes from canceling registration to\n // removal.\n deregister = this.addEventListener(element, eventName, handler);\n }\n })\n .catch(() => {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n this.console.warn(`The \"${eventName}\" event cannot be bound because the custom ` +\n `Hammer.JS loader failed.`);\n }\n deregister = () => { };\n }));\n // Return a function that *executes* `deregister` (and not `deregister` itself) so that we\n // can change the behavior of `deregister` once the listener is added. Using a closure in\n // this way allows us to avoid any additional data structures to track listener removal.\n return () => {\n deregister();\n };\n }\n return zone.runOutsideAngular(() => {\n // Creating the manager bind events, must be done outside of angular\n const mc = this._config.buildHammer(element);\n const callback = function (eventObj) {\n zone.runGuarded(function () {\n handler(eventObj);\n });\n };\n mc.on(eventName, callback);\n return () => {\n mc.off(eventName, callback);\n // destroy mc to prevent memory leak\n if (typeof mc.destroy === 'function') {\n mc.destroy();\n }\n };\n });\n }\n isCustomEvent(eventName) {\n return this._config.events.indexOf(eventName) > -1;\n }\n}\nHammerGesturesPlugin.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: HammerGesturesPlugin, deps: [{ token: DOCUMENT }, { token: HAMMER_GESTURE_CONFIG }, { token: i0.ɵConsole }, { token: HAMMER_LOADER, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });\nHammerGesturesPlugin.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: HammerGesturesPlugin });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: HammerGesturesPlugin, decorators: [{\n type: Injectable\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }, { type: HammerGestureConfig, decorators: [{\n type: Inject,\n args: [HAMMER_GESTURE_CONFIG]\n }] }, { type: i0.ɵConsole }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [HAMMER_LOADER]\n }] }]; } });\n/**\n * Adds support for HammerJS.\n *\n * Import this module at the root of your application so that Angular can work with\n * HammerJS to detect gesture events.\n *\n * Note that applications still need to include the HammerJS script itself. This module\n * simply sets up the coordination layer between HammerJS and Angular's EventManager.\n *\n * @publicApi\n */\nclass HammerModule {\n}\nHammerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: HammerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nHammerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"15.2.9\", ngImport: i0, type: HammerModule });\nHammerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: HammerModule, providers: [\n {\n provide: EVENT_MANAGER_PLUGINS,\n useClass: HammerGesturesPlugin,\n multi: true,\n deps: [DOCUMENT, HAMMER_GESTURE_CONFIG, ɵConsole, [new Optional(), HAMMER_LOADER]]\n },\n { provide: HAMMER_GESTURE_CONFIG, useClass: HammerGestureConfig, deps: [] },\n ] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: HammerModule, decorators: [{\n type: NgModule,\n args: [{\n providers: [\n {\n provide: EVENT_MANAGER_PLUGINS,\n useClass: HammerGesturesPlugin,\n multi: true,\n deps: [DOCUMENT, HAMMER_GESTURE_CONFIG, ɵConsole, [new Optional(), HAMMER_LOADER]]\n },\n { provide: HAMMER_GESTURE_CONFIG, useClass: HammerGestureConfig, deps: [] },\n ]\n }]\n }] });\n\n/**\n * DomSanitizer helps preventing Cross Site Scripting Security bugs (XSS) by sanitizing\n * values to be safe to use in the different DOM contexts.\n *\n * For example, when binding a URL in an `<a [href]=\"someValue\">` hyperlink, `someValue` will be\n * sanitized so that an attacker cannot inject e.g. a `javascript:` URL that would execute code on\n * the website.\n *\n * In specific situations, it might be necessary to disable sanitization, for example if the\n * application genuinely needs to produce a `javascript:` style link with a dynamic value in it.\n * Users can bypass security by constructing a value with one of the `bypassSecurityTrust...`\n * methods, and then binding to that value from the template.\n *\n * These situations should be very rare, and extraordinary care must be taken to avoid creating a\n * Cross Site Scripting (XSS) security bug!\n *\n * When using `bypassSecurityTrust...`, make sure to call the method as early as possible and as\n * close as possible to the source of the value, to make it easy to verify no security bug is\n * created by its use.\n *\n * It is not required (and not recommended) to bypass security if the value is safe, e.g. a URL that\n * does not start with a suspicious protocol, or an HTML snippet that does not contain dangerous\n * code. The sanitizer leaves safe values intact.\n *\n * @security Calling any of the `bypassSecurityTrust...` APIs disables Angular's built-in\n * sanitization for the value passed in. Carefully check and audit all values and code paths going\n * into this call. Make sure any user data is appropriately escaped for this security context.\n * For more detail, see the [Security Guide](https://g.co/ng/security).\n *\n * @publicApi\n */\nclass DomSanitizer {\n}\nDomSanitizer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: DomSanitizer, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nDomSanitizer.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: DomSanitizer, providedIn: 'root', useExisting: i0.forwardRef(function () { return DomSanitizerImpl; }) });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: DomSanitizer, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root', useExisting: forwardRef(() => DomSanitizerImpl) }]\n }] });\nfunction domSanitizerImplFactory(injector) {\n return new DomSanitizerImpl(injector.get(DOCUMENT));\n}\nclass DomSanitizerImpl extends DomSanitizer {\n constructor(_doc) {\n super();\n this._doc = _doc;\n }\n sanitize(ctx, value) {\n if (value == null)\n return null;\n switch (ctx) {\n case SecurityContext.NONE:\n return value;\n case SecurityContext.HTML:\n if (ɵallowSanitizationBypassAndThrow(value, \"HTML\" /* BypassType.Html */)) {\n return ɵunwrapSafeValue(value);\n }\n return ɵ_sanitizeHtml(this._doc, String(value)).toString();\n case SecurityContext.STYLE:\n if (ɵallowSanitizationBypassAndThrow(value, \"Style\" /* BypassType.Style */)) {\n return ɵunwrapSafeValue(value);\n }\n return value;\n case SecurityContext.SCRIPT:\n if (ɵallowSanitizationBypassAndThrow(value, \"Script\" /* BypassType.Script */)) {\n return ɵunwrapSafeValue(value);\n }\n throw new Error('unsafe value used in a script context');\n case SecurityContext.URL:\n if (ɵallowSanitizationBypassAndThrow(value, \"URL\" /* BypassType.Url */)) {\n return ɵunwrapSafeValue(value);\n }\n return ɵ_sanitizeUrl(String(value));\n case SecurityContext.RESOURCE_URL:\n if (ɵallowSanitizationBypassAndThrow(value, \"ResourceURL\" /* BypassType.ResourceUrl */)) {\n return ɵunwrapSafeValue(value);\n }\n throw new Error(`unsafe value used in a resource URL context (see ${ɵXSS_SECURITY_URL})`);\n default:\n throw new Error(`Unexpected SecurityContext ${ctx} (see ${ɵXSS_SECURITY_URL})`);\n }\n }\n bypassSecurityTrustHtml(value) {\n return ɵbypassSanitizationTrustHtml(value);\n }\n bypassSecurityTrustStyle(value) {\n return ɵbypassSanitizationTrustStyle(value);\n }\n bypassSecurityTrustScript(value) {\n return ɵbypassSanitizationTrustScript(value);\n }\n bypassSecurityTrustUrl(value) {\n return ɵbypassSanitizationTrustUrl(value);\n }\n bypassSecurityTrustResourceUrl(value) {\n return ɵbypassSanitizationTrustResourceUrl(value);\n }\n}\nDomSanitizerImpl.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: DomSanitizerImpl, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });\nDomSanitizerImpl.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: DomSanitizerImpl, providedIn: 'root', useFactory: domSanitizerImplFactory, deps: [{ token: Injector }] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: DomSanitizerImpl, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root', useFactory: domSanitizerImplFactory, deps: [Injector] }]\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }]; } });\n\n/**\n * @module\n * @description\n * Entry point for all public APIs of the platform-browser package.\n */\n/**\n * @publicApi\n */\nconst VERSION = new Version('15.2.9');\n\n/**\n * @module\n * @description\n * Entry point for all public APIs of this package.\n */\n// This file only reexports content of the `src` folder. Keep it that way.\n\n// This file is not used to build this module. It is only used during editing\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { BrowserModule, BrowserTransferStateModule, By, DomSanitizer, EVENT_MANAGER_PLUGINS, EventManager, HAMMER_GESTURE_CONFIG, HAMMER_LOADER, HammerGestureConfig, HammerModule, Meta, REMOVE_STYLES_ON_COMPONENT_DESTROY, Title, TransferState, VERSION, bootstrapApplication, createApplication, disableDebugTools, enableDebugTools, makeStateKey, platformBrowser, provideProtractorTestingSupport, BrowserDomAdapter as ɵBrowserDomAdapter, BrowserGetTestability as ɵBrowserGetTestability, DomEventsPlugin as ɵDomEventsPlugin, DomRendererFactory2 as ɵDomRendererFactory2, DomSanitizerImpl as ɵDomSanitizerImpl, DomSharedStylesHost as ɵDomSharedStylesHost, HammerGesturesPlugin as ɵHammerGesturesPlugin, INTERNAL_BROWSER_PLATFORM_PROVIDERS as ɵINTERNAL_BROWSER_PLATFORM_PROVIDERS, KeyEventsPlugin as ɵKeyEventsPlugin, NAMESPACE_URIS as ɵNAMESPACE_URIS, SharedStylesHost as ɵSharedStylesHost, TRANSITION_ID as ɵTRANSITION_ID, escapeHtml as ɵescapeHtml, flattenStyles as ɵflattenStyles, initDomAdapter as ɵinitDomAdapter, shimContentAttribute as ɵshimContentAttribute, shimHostAttribute as ɵshimHostAttribute };\n","export const environment = {\r\n production: true,\r\n apiBaseUrl: 'https://suncor-optea.com/api',\r\n apiUrl: 'https://suncor-optea.com/api/simulation',\r\n simulationAsync: 'https://suncor-optea.com/api/solveAsync',\r\n authUrl: 'https://suncor-optea.com/api/auth',\r\n usersUrl: 'https://suncor-optea.com/api/users',\r\n accountUrl: 'https://suncor-optea.com/api/account',\r\n sendCaseUrl: 'https://suncor-optea.com/api/sendCaseToPe',\r\n sendFrontendErrorDetailsToPe: 'https://suncor-optea.com/api/send-frontend-error-details-to-pe',\r\n manualUrl: 'https://suncor-optea.com/api/downloadManual',\r\n uncertaintyUrl: 'https://suncor-optea.com/api/UncertaintyAnalysis',\r\n parametricStudyUrl: 'https://www.suncor-optea.com/api/ParametricStudy',\r\n parametricStudyAsyncUrl: 'https://www.suncor-optea.com/api/solveParametricStudyAsync',\r\n};\r\n","import { isScheduler } from '../util/isScheduler';\nimport { fromArray } from './fromArray';\nimport { scheduleArray } from '../scheduled/scheduleArray';\nexport function of(...args) {\n let scheduler = args[args.length - 1];\n if (isScheduler(scheduler)) {\n args.pop();\n return scheduleArray(args, scheduler);\n }\n else {\n return fromArray(args);\n }\n}\n","import { mergeMap } from './mergeMap';\nexport function concatMap(project, resultSelector) {\n return mergeMap(project, resultSelector, 1);\n}\n","import { Subscriber } from '../Subscriber';\nexport function filter(predicate, thisArg) {\n return function filterOperatorFunction(source) {\n return source.lift(new FilterOperator(predicate, thisArg));\n };\n}\nclass FilterOperator {\n constructor(predicate, thisArg) {\n this.predicate = predicate;\n this.thisArg = thisArg;\n }\n call(subscriber, source) {\n return source.subscribe(new FilterSubscriber(subscriber, this.predicate, this.thisArg));\n }\n}\nclass FilterSubscriber extends Subscriber {\n constructor(destination, predicate, thisArg) {\n super(destination);\n this.predicate = predicate;\n this.thisArg = thisArg;\n this.count = 0;\n }\n _next(value) {\n let result;\n try {\n result = this.predicate.call(this.thisArg, value, this.count++);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n if (result) {\n this.destination.next(value);\n }\n }\n}\n","/**\n * @license Angular v15.2.9\n * (c) 2010-2022 Google LLC. https://angular.io/\n * License: MIT\n */\n\nimport * as i1 from '@angular/common';\nimport { DOCUMENT, ɵparseCookieValue, XhrFactory as XhrFactory$1 } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { Injectable, InjectionToken, inject, Inject, PLATFORM_ID, makeEnvironmentProviders, NgModule } from '@angular/core';\nimport { of, Observable } from 'rxjs';\nimport { concatMap, filter, map } from 'rxjs/operators';\n\n/**\n * Transforms an `HttpRequest` into a stream of `HttpEvent`s, one of which will likely be a\n * `HttpResponse`.\n *\n * `HttpHandler` is injectable. When injected, the handler instance dispatches requests to the\n * first interceptor in the chain, which dispatches to the second, etc, eventually reaching the\n * `HttpBackend`.\n *\n * In an `HttpInterceptor`, the `HttpHandler` parameter is the next interceptor in the chain.\n *\n * @publicApi\n */\nclass HttpHandler {\n}\n/**\n * A final `HttpHandler` which will dispatch the request via browser HTTP APIs to a backend.\n *\n * Interceptors sit between the `HttpClient` interface and the `HttpBackend`.\n *\n * When injected, `HttpBackend` dispatches requests directly to the backend, without going\n * through the interceptor chain.\n *\n * @publicApi\n */\nclass HttpBackend {\n}\n\n/**\n * Represents the header configuration options for an HTTP request.\n * Instances are immutable. Modifying methods return a cloned\n * instance with the change. The original object is never changed.\n *\n * @publicApi\n */\nclass HttpHeaders {\n /** Constructs a new HTTP header object with the given values.*/\n constructor(headers) {\n /**\n * Internal map of lowercased header names to the normalized\n * form of the name (the form seen first).\n */\n this.normalizedNames = new Map();\n /**\n * Queued updates to be materialized the next initialization.\n */\n this.lazyUpdate = null;\n if (!headers) {\n this.headers = new Map();\n }\n else if (typeof headers === 'string') {\n this.lazyInit = () => {\n this.headers = new Map();\n headers.split('\\n').forEach(line => {\n const index = line.indexOf(':');\n if (index > 0) {\n const name = line.slice(0, index);\n const key = name.toLowerCase();\n const value = line.slice(index + 1).trim();\n this.maybeSetNormalizedName(name, key);\n if (this.headers.has(key)) {\n this.headers.get(key).push(value);\n }\n else {\n this.headers.set(key, [value]);\n }\n }\n });\n };\n }\n else {\n this.lazyInit = () => {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n assertValidHeaders(headers);\n }\n this.headers = new Map();\n Object.entries(headers).forEach(([name, values]) => {\n let headerValues;\n if (typeof values === 'string') {\n headerValues = [values];\n }\n else if (typeof values === 'number') {\n headerValues = [values.toString()];\n }\n else {\n headerValues = values.map((value) => value.toString());\n }\n if (headerValues.length > 0) {\n const key = name.toLowerCase();\n this.headers.set(key, headerValues);\n this.maybeSetNormalizedName(name, key);\n }\n });\n };\n }\n }\n /**\n * Checks for existence of a given header.\n *\n * @param name The header name to check for existence.\n *\n * @returns True if the header exists, false otherwise.\n */\n has(name) {\n this.init();\n return this.headers.has(name.toLowerCase());\n }\n /**\n * Retrieves the first value of a given header.\n *\n * @param name The header name.\n *\n * @returns The value string if the header exists, null otherwise\n */\n get(name) {\n this.init();\n const values = this.headers.get(name.toLowerCase());\n return values && values.length > 0 ? values[0] : null;\n }\n /**\n * Retrieves the names of the headers.\n *\n * @returns A list of header names.\n */\n keys() {\n this.init();\n return Array.from(this.normalizedNames.values());\n }\n /**\n * Retrieves a list of values for a given header.\n *\n * @param name The header name from which to retrieve values.\n *\n * @returns A string of values if the header exists, null otherwise.\n */\n getAll(name) {\n this.init();\n return this.headers.get(name.toLowerCase()) || null;\n }\n /**\n * Appends a new value to the existing set of values for a header\n * and returns them in a clone of the original instance.\n *\n * @param name The header name for which to append the values.\n * @param value The value to append.\n *\n * @returns A clone of the HTTP headers object with the value appended to the given header.\n */\n append(name, value) {\n return this.clone({ name, value, op: 'a' });\n }\n /**\n * Sets or modifies a value for a given header in a clone of the original instance.\n * If the header already exists, its value is replaced with the given value\n * in the returned object.\n *\n * @param name The header name.\n * @param value The value or values to set or override for the given header.\n *\n * @returns A clone of the HTTP headers object with the newly set header value.\n */\n set(name, value) {\n return this.clone({ name, value, op: 's' });\n }\n /**\n * Deletes values for a given header in a clone of the original instance.\n *\n * @param name The header name.\n * @param value The value or values to delete for the given header.\n *\n * @returns A clone of the HTTP headers object with the given value deleted.\n */\n delete(name, value) {\n return this.clone({ name, value, op: 'd' });\n }\n maybeSetNormalizedName(name, lcName) {\n if (!this.normalizedNames.has(lcName)) {\n this.normalizedNames.set(lcName, name);\n }\n }\n init() {\n if (!!this.lazyInit) {\n if (this.lazyInit instanceof HttpHeaders) {\n this.copyFrom(this.lazyInit);\n }\n else {\n this.lazyInit();\n }\n this.lazyInit = null;\n if (!!this.lazyUpdate) {\n this.lazyUpdate.forEach(update => this.applyUpdate(update));\n this.lazyUpdate = null;\n }\n }\n }\n copyFrom(other) {\n other.init();\n Array.from(other.headers.keys()).forEach(key => {\n this.headers.set(key, other.headers.get(key));\n this.normalizedNames.set(key, other.normalizedNames.get(key));\n });\n }\n clone(update) {\n const clone = new HttpHeaders();\n clone.lazyInit =\n (!!this.lazyInit && this.lazyInit instanceof HttpHeaders) ? this.lazyInit : this;\n clone.lazyUpdate = (this.lazyUpdate || []).concat([update]);\n return clone;\n }\n applyUpdate(update) {\n const key = update.name.toLowerCase();\n switch (update.op) {\n case 'a':\n case 's':\n let value = update.value;\n if (typeof value === 'string') {\n value = [value];\n }\n if (value.length === 0) {\n return;\n }\n this.maybeSetNormalizedName(update.name, key);\n const base = (update.op === 'a' ? this.headers.get(key) : undefined) || [];\n base.push(...value);\n this.headers.set(key, base);\n break;\n case 'd':\n const toDelete = update.value;\n if (!toDelete) {\n this.headers.delete(key);\n this.normalizedNames.delete(key);\n }\n else {\n let existing = this.headers.get(key);\n if (!existing) {\n return;\n }\n existing = existing.filter(value => toDelete.indexOf(value) === -1);\n if (existing.length === 0) {\n this.headers.delete(key);\n this.normalizedNames.delete(key);\n }\n else {\n this.headers.set(key, existing);\n }\n }\n break;\n }\n }\n /**\n * @internal\n */\n forEach(fn) {\n this.init();\n Array.from(this.normalizedNames.keys())\n .forEach(key => fn(this.normalizedNames.get(key), this.headers.get(key)));\n }\n}\n/**\n * Verifies that the headers object has the right shape: the values\n * must be either strings, numbers or arrays. Throws an error if an invalid\n * header value is present.\n */\nfunction assertValidHeaders(headers) {\n for (const [key, value] of Object.entries(headers)) {\n if (!(typeof value === 'string' || typeof value === 'number') && !Array.isArray(value)) {\n throw new Error(`Unexpected value of the \\`${key}\\` header provided. ` +\n `Expecting either a string, a number or an array, but got: \\`${value}\\`.`);\n }\n }\n}\n\n/**\n * Provides encoding and decoding of URL parameter and query-string values.\n *\n * Serializes and parses URL parameter keys and values to encode and decode them.\n * If you pass URL query parameters without encoding,\n * the query parameters can be misinterpreted at the receiving end.\n *\n *\n * @publicApi\n */\nclass HttpUrlEncodingCodec {\n /**\n * Encodes a key name for a URL parameter or query-string.\n * @param key The key name.\n * @returns The encoded key name.\n */\n encodeKey(key) {\n return standardEncoding(key);\n }\n /**\n * Encodes the value of a URL parameter or query-string.\n * @param value The value.\n * @returns The encoded value.\n */\n encodeValue(value) {\n return standardEncoding(value);\n }\n /**\n * Decodes an encoded URL parameter or query-string key.\n * @param key The encoded key name.\n * @returns The decoded key name.\n */\n decodeKey(key) {\n return decodeURIComponent(key);\n }\n /**\n * Decodes an encoded URL parameter or query-string value.\n * @param value The encoded value.\n * @returns The decoded value.\n */\n decodeValue(value) {\n return decodeURIComponent(value);\n }\n}\nfunction paramParser(rawParams, codec) {\n const map = new Map();\n if (rawParams.length > 0) {\n // The `window.location.search` can be used while creating an instance of the `HttpParams` class\n // (e.g. `new HttpParams({ fromString: window.location.search })`). The `window.location.search`\n // may start with the `?` char, so we strip it if it's present.\n const params = rawParams.replace(/^\\?/, '').split('&');\n params.forEach((param) => {\n const eqIdx = param.indexOf('=');\n const [key, val] = eqIdx == -1 ?\n [codec.decodeKey(param), ''] :\n [codec.decodeKey(param.slice(0, eqIdx)), codec.decodeValue(param.slice(eqIdx + 1))];\n const list = map.get(key) || [];\n list.push(val);\n map.set(key, list);\n });\n }\n return map;\n}\n/**\n * Encode input string with standard encodeURIComponent and then un-encode specific characters.\n */\nconst STANDARD_ENCODING_REGEX = /%(\\d[a-f0-9])/gi;\nconst STANDARD_ENCODING_REPLACEMENTS = {\n '40': '@',\n '3A': ':',\n '24': '$',\n '2C': ',',\n '3B': ';',\n '3D': '=',\n '3F': '?',\n '2F': '/',\n};\nfunction standardEncoding(v) {\n return encodeURIComponent(v).replace(STANDARD_ENCODING_REGEX, (s, t) => STANDARD_ENCODING_REPLACEMENTS[t] ?? s);\n}\nfunction valueToString(value) {\n return `${value}`;\n}\n/**\n * An HTTP request/response body that represents serialized parameters,\n * per the MIME type `application/x-www-form-urlencoded`.\n *\n * This class is immutable; all mutation operations return a new instance.\n *\n * @publicApi\n */\nclass HttpParams {\n constructor(options = {}) {\n this.updates = null;\n this.cloneFrom = null;\n this.encoder = options.encoder || new HttpUrlEncodingCodec();\n if (!!options.fromString) {\n if (!!options.fromObject) {\n throw new Error(`Cannot specify both fromString and fromObject.`);\n }\n this.map = paramParser(options.fromString, this.encoder);\n }\n else if (!!options.fromObject) {\n this.map = new Map();\n Object.keys(options.fromObject).forEach(key => {\n const value = options.fromObject[key];\n // convert the values to strings\n const values = Array.isArray(value) ? value.map(valueToString) : [valueToString(value)];\n this.map.set(key, values);\n });\n }\n else {\n this.map = null;\n }\n }\n /**\n * Reports whether the body includes one or more values for a given parameter.\n * @param param The parameter name.\n * @returns True if the parameter has one or more values,\n * false if it has no value or is not present.\n */\n has(param) {\n this.init();\n return this.map.has(param);\n }\n /**\n * Retrieves the first value for a parameter.\n * @param param The parameter name.\n * @returns The first value of the given parameter,\n * or `null` if the parameter is not present.\n */\n get(param) {\n this.init();\n const res = this.map.get(param);\n return !!res ? res[0] : null;\n }\n /**\n * Retrieves all values for a parameter.\n * @param param The parameter name.\n * @returns All values in a string array,\n * or `null` if the parameter not present.\n */\n getAll(param) {\n this.init();\n return this.map.get(param) || null;\n }\n /**\n * Retrieves all the parameters for this body.\n * @returns The parameter names in a string array.\n */\n keys() {\n this.init();\n return Array.from(this.map.keys());\n }\n /**\n * Appends a new value to existing values for a parameter.\n * @param param The parameter name.\n * @param value The new value to add.\n * @return A new body with the appended value.\n */\n append(param, value) {\n return this.clone({ param, value, op: 'a' });\n }\n /**\n * Constructs a new body with appended values for the given parameter name.\n * @param params parameters and values\n * @return A new body with the new value.\n */\n appendAll(params) {\n const updates = [];\n Object.keys(params).forEach(param => {\n const value = params[param];\n if (Array.isArray(value)) {\n value.forEach(_value => {\n updates.push({ param, value: _value, op: 'a' });\n });\n }\n else {\n updates.push({ param, value: value, op: 'a' });\n }\n });\n return this.clone(updates);\n }\n /**\n * Replaces the value for a parameter.\n * @param param The parameter name.\n * @param value The new value.\n * @return A new body with the new value.\n */\n set(param, value) {\n return this.clone({ param, value, op: 's' });\n }\n /**\n * Removes a given value or all values from a parameter.\n * @param param The parameter name.\n * @param value The value to remove, if provided.\n * @return A new body with the given value removed, or with all values\n * removed if no value is specified.\n */\n delete(param, value) {\n return this.clone({ param, value, op: 'd' });\n }\n /**\n * Serializes the body to an encoded string, where key-value pairs (separated by `=`) are\n * separated by `&`s.\n */\n toString() {\n this.init();\n return this.keys()\n .map(key => {\n const eKey = this.encoder.encodeKey(key);\n // `a: ['1']` produces `'a=1'`\n // `b: []` produces `''`\n // `c: ['1', '2']` produces `'c=1&c=2'`\n return this.map.get(key).map(value => eKey + '=' + this.encoder.encodeValue(value))\n .join('&');\n })\n // filter out empty values because `b: []` produces `''`\n // which results in `a=1&&c=1&c=2` instead of `a=1&c=1&c=2` if we don't\n .filter(param => param !== '')\n .join('&');\n }\n clone(update) {\n const clone = new HttpParams({ encoder: this.encoder });\n clone.cloneFrom = this.cloneFrom || this;\n clone.updates = (this.updates || []).concat(update);\n return clone;\n }\n init() {\n if (this.map === null) {\n this.map = new Map();\n }\n if (this.cloneFrom !== null) {\n this.cloneFrom.init();\n this.cloneFrom.keys().forEach(key => this.map.set(key, this.cloneFrom.map.get(key)));\n this.updates.forEach(update => {\n switch (update.op) {\n case 'a':\n case 's':\n const base = (update.op === 'a' ? this.map.get(update.param) : undefined) || [];\n base.push(valueToString(update.value));\n this.map.set(update.param, base);\n break;\n case 'd':\n if (update.value !== undefined) {\n let base = this.map.get(update.param) || [];\n const idx = base.indexOf(valueToString(update.value));\n if (idx !== -1) {\n base.splice(idx, 1);\n }\n if (base.length > 0) {\n this.map.set(update.param, base);\n }\n else {\n this.map.delete(update.param);\n }\n }\n else {\n this.map.delete(update.param);\n break;\n }\n }\n });\n this.cloneFrom = this.updates = null;\n }\n }\n}\n\n/**\n * A token used to manipulate and access values stored in `HttpContext`.\n *\n * @publicApi\n */\nclass HttpContextToken {\n constructor(defaultValue) {\n this.defaultValue = defaultValue;\n }\n}\n/**\n * Http context stores arbitrary user defined values and ensures type safety without\n * actually knowing the types. It is backed by a `Map` and guarantees that keys do not clash.\n *\n * This context is mutable and is shared between cloned requests unless explicitly specified.\n *\n * @usageNotes\n *\n * ### Usage Example\n *\n * ```typescript\n * // inside cache.interceptors.ts\n * export const IS_CACHE_ENABLED = new HttpContextToken<boolean>(() => false);\n *\n * export class CacheInterceptor implements HttpInterceptor {\n *\n * intercept(req: HttpRequest<any>, delegate: HttpHandler): Observable<HttpEvent<any>> {\n * if (req.context.get(IS_CACHE_ENABLED) === true) {\n * return ...;\n * }\n * return delegate.handle(req);\n * }\n * }\n *\n * // inside a service\n *\n * this.httpClient.get('/api/weather', {\n * context: new HttpContext().set(IS_CACHE_ENABLED, true)\n * }).subscribe(...);\n * ```\n *\n * @publicApi\n */\nclass HttpContext {\n constructor() {\n this.map = new Map();\n }\n /**\n * Store a value in the context. If a value is already present it will be overwritten.\n *\n * @param token The reference to an instance of `HttpContextToken`.\n * @param value The value to store.\n *\n * @returns A reference to itself for easy chaining.\n */\n set(token, value) {\n this.map.set(token, value);\n return this;\n }\n /**\n * Retrieve the value associated with the given token.\n *\n * @param token The reference to an instance of `HttpContextToken`.\n *\n * @returns The stored value or default if one is defined.\n */\n get(token) {\n if (!this.map.has(token)) {\n this.map.set(token, token.defaultValue());\n }\n return this.map.get(token);\n }\n /**\n * Delete the value associated with the given token.\n *\n * @param token The reference to an instance of `HttpContextToken`.\n *\n * @returns A reference to itself for easy chaining.\n */\n delete(token) {\n this.map.delete(token);\n return this;\n }\n /**\n * Checks for existence of a given token.\n *\n * @param token The reference to an instance of `HttpContextToken`.\n *\n * @returns True if the token exists, false otherwise.\n */\n has(token) {\n return this.map.has(token);\n }\n /**\n * @returns a list of tokens currently stored in the context.\n */\n keys() {\n return this.map.keys();\n }\n}\n\n/**\n * Determine whether the given HTTP method may include a body.\n */\nfunction mightHaveBody(method) {\n switch (method) {\n case 'DELETE':\n case 'GET':\n case 'HEAD':\n case 'OPTIONS':\n case 'JSONP':\n return false;\n default:\n return true;\n }\n}\n/**\n * Safely assert whether the given value is an ArrayBuffer.\n *\n * In some execution environments ArrayBuffer is not defined.\n */\nfunction isArrayBuffer(value) {\n return typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer;\n}\n/**\n * Safely assert whether the given value is a Blob.\n *\n * In some execution environments Blob is not defined.\n */\nfunction isBlob(value) {\n return typeof Blob !== 'undefined' && value instanceof Blob;\n}\n/**\n * Safely assert whether the given value is a FormData instance.\n *\n * In some execution environments FormData is not defined.\n */\nfunction isFormData(value) {\n return typeof FormData !== 'undefined' && value instanceof FormData;\n}\n/**\n * Safely assert whether the given value is a URLSearchParams instance.\n *\n * In some execution environments URLSearchParams is not defined.\n */\nfunction isUrlSearchParams(value) {\n return typeof URLSearchParams !== 'undefined' && value instanceof URLSearchParams;\n}\n/**\n * An outgoing HTTP request with an optional typed body.\n *\n * `HttpRequest` represents an outgoing request, including URL, method,\n * headers, body, and other request configuration options. Instances should be\n * assumed to be immutable. To modify a `HttpRequest`, the `clone`\n * method should be used.\n *\n * @publicApi\n */\nclass HttpRequest {\n constructor(method, url, third, fourth) {\n this.url = url;\n /**\n * The request body, or `null` if one isn't set.\n *\n * Bodies are not enforced to be immutable, as they can include a reference to any\n * user-defined data type. However, interceptors should take care to preserve\n * idempotence by treating them as such.\n */\n this.body = null;\n /**\n * Whether this request should be made in a way that exposes progress events.\n *\n * Progress events are expensive (change detection runs on each event) and so\n * they should only be requested if the consumer intends to monitor them.\n */\n this.reportProgress = false;\n /**\n * Whether this request should be sent with outgoing credentials (cookies).\n */\n this.withCredentials = false;\n /**\n * The expected response type of the server.\n *\n * This is used to parse the response appropriately before returning it to\n * the requestee.\n */\n this.responseType = 'json';\n this.method = method.toUpperCase();\n // Next, need to figure out which argument holds the HttpRequestInit\n // options, if any.\n let options;\n // Check whether a body argument is expected. The only valid way to omit\n // the body argument is to use a known no-body method like GET.\n if (mightHaveBody(this.method) || !!fourth) {\n // Body is the third argument, options are the fourth.\n this.body = (third !== undefined) ? third : null;\n options = fourth;\n }\n else {\n // No body required, options are the third argument. The body stays null.\n options = third;\n }\n // If options have been passed, interpret them.\n if (options) {\n // Normalize reportProgress and withCredentials.\n this.reportProgress = !!options.reportProgress;\n this.withCredentials = !!options.withCredentials;\n // Override default response type of 'json' if one is provided.\n if (!!options.responseType) {\n this.responseType = options.responseType;\n }\n // Override headers if they're provided.\n if (!!options.headers) {\n this.headers = options.headers;\n }\n if (!!options.context) {\n this.context = options.context;\n }\n if (!!options.params) {\n this.params = options.params;\n }\n }\n // If no headers have been passed in, construct a new HttpHeaders instance.\n if (!this.headers) {\n this.headers = new HttpHeaders();\n }\n // If no context have been passed in, construct a new HttpContext instance.\n if (!this.context) {\n this.context = new HttpContext();\n }\n // If no parameters have been passed in, construct a new HttpUrlEncodedParams instance.\n if (!this.params) {\n this.params = new HttpParams();\n this.urlWithParams = url;\n }\n else {\n // Encode the parameters to a string in preparation for inclusion in the URL.\n const params = this.params.toString();\n if (params.length === 0) {\n // No parameters, the visible URL is just the URL given at creation time.\n this.urlWithParams = url;\n }\n else {\n // Does the URL already have query parameters? Look for '?'.\n const qIdx = url.indexOf('?');\n // There are 3 cases to handle:\n // 1) No existing parameters -> append '?' followed by params.\n // 2) '?' exists and is followed by existing query string ->\n // append '&' followed by params.\n // 3) '?' exists at the end of the url -> append params directly.\n // This basically amounts to determining the character, if any, with\n // which to join the URL and parameters.\n const sep = qIdx === -1 ? '?' : (qIdx < url.length - 1 ? '&' : '');\n this.urlWithParams = url + sep + params;\n }\n }\n }\n /**\n * Transform the free-form body into a serialized format suitable for\n * transmission to the server.\n */\n serializeBody() {\n // If no body is present, no need to serialize it.\n if (this.body === null) {\n return null;\n }\n // Check whether the body is already in a serialized form. If so,\n // it can just be returned directly.\n if (isArrayBuffer(this.body) || isBlob(this.body) || isFormData(this.body) ||\n isUrlSearchParams(this.body) || typeof this.body === 'string') {\n return this.body;\n }\n // Check whether the body is an instance of HttpUrlEncodedParams.\n if (this.body instanceof HttpParams) {\n return this.body.toString();\n }\n // Check whether the body is an object or array, and serialize with JSON if so.\n if (typeof this.body === 'object' || typeof this.body === 'boolean' ||\n Array.isArray(this.body)) {\n return JSON.stringify(this.body);\n }\n // Fall back on toString() for everything else.\n return this.body.toString();\n }\n /**\n * Examine the body and attempt to infer an appropriate MIME type\n * for it.\n *\n * If no such type can be inferred, this method will return `null`.\n */\n detectContentTypeHeader() {\n // An empty body has no content type.\n if (this.body === null) {\n return null;\n }\n // FormData bodies rely on the browser's content type assignment.\n if (isFormData(this.body)) {\n return null;\n }\n // Blobs usually have their own content type. If it doesn't, then\n // no type can be inferred.\n if (isBlob(this.body)) {\n return this.body.type || null;\n }\n // Array buffers have unknown contents and thus no type can be inferred.\n if (isArrayBuffer(this.body)) {\n return null;\n }\n // Technically, strings could be a form of JSON data, but it's safe enough\n // to assume they're plain strings.\n if (typeof this.body === 'string') {\n return 'text/plain';\n }\n // `HttpUrlEncodedParams` has its own content-type.\n if (this.body instanceof HttpParams) {\n return 'application/x-www-form-urlencoded;charset=UTF-8';\n }\n // Arrays, objects, boolean and numbers will be encoded as JSON.\n if (typeof this.body === 'object' || typeof this.body === 'number' ||\n typeof this.body === 'boolean') {\n return 'application/json';\n }\n // No type could be inferred.\n return null;\n }\n clone(update = {}) {\n // For method, url, and responseType, take the current value unless\n // it is overridden in the update hash.\n const method = update.method || this.method;\n const url = update.url || this.url;\n const responseType = update.responseType || this.responseType;\n // The body is somewhat special - a `null` value in update.body means\n // whatever current body is present is being overridden with an empty\n // body, whereas an `undefined` value in update.body implies no\n // override.\n const body = (update.body !== undefined) ? update.body : this.body;\n // Carefully handle the boolean options to differentiate between\n // `false` and `undefined` in the update args.\n const withCredentials = (update.withCredentials !== undefined) ? update.withCredentials : this.withCredentials;\n const reportProgress = (update.reportProgress !== undefined) ? update.reportProgress : this.reportProgress;\n // Headers and params may be appended to if `setHeaders` or\n // `setParams` are used.\n let headers = update.headers || this.headers;\n let params = update.params || this.params;\n // Pass on context if needed\n const context = update.context ?? this.context;\n // Check whether the caller has asked to add headers.\n if (update.setHeaders !== undefined) {\n // Set every requested header.\n headers =\n Object.keys(update.setHeaders)\n .reduce((headers, name) => headers.set(name, update.setHeaders[name]), headers);\n }\n // Check whether the caller has asked to set params.\n if (update.setParams) {\n // Set every requested param.\n params = Object.keys(update.setParams)\n .reduce((params, param) => params.set(param, update.setParams[param]), params);\n }\n // Finally, construct the new HttpRequest using the pieces from above.\n return new HttpRequest(method, url, body, {\n params,\n headers,\n context,\n reportProgress,\n responseType,\n withCredentials,\n });\n }\n}\n\n/**\n * Type enumeration for the different kinds of `HttpEvent`.\n *\n * @publicApi\n */\nvar HttpEventType;\n(function (HttpEventType) {\n /**\n * The request was sent out over the wire.\n */\n HttpEventType[HttpEventType[\"Sent\"] = 0] = \"Sent\";\n /**\n * An upload progress event was received.\n */\n HttpEventType[HttpEventType[\"UploadProgress\"] = 1] = \"UploadProgress\";\n /**\n * The response status code and headers were received.\n */\n HttpEventType[HttpEventType[\"ResponseHeader\"] = 2] = \"ResponseHeader\";\n /**\n * A download progress event was received.\n */\n HttpEventType[HttpEventType[\"DownloadProgress\"] = 3] = \"DownloadProgress\";\n /**\n * The full response including the body was received.\n */\n HttpEventType[HttpEventType[\"Response\"] = 4] = \"Response\";\n /**\n * A custom event from an interceptor or a backend.\n */\n HttpEventType[HttpEventType[\"User\"] = 5] = \"User\";\n})(HttpEventType || (HttpEventType = {}));\n/**\n * Base class for both `HttpResponse` and `HttpHeaderResponse`.\n *\n * @publicApi\n */\nclass HttpResponseBase {\n /**\n * Super-constructor for all responses.\n *\n * The single parameter accepted is an initialization hash. Any properties\n * of the response passed there will override the default values.\n */\n constructor(init, defaultStatus = 200 /* HttpStatusCode.Ok */, defaultStatusText = 'OK') {\n // If the hash has values passed, use them to initialize the response.\n // Otherwise use the default values.\n this.headers = init.headers || new HttpHeaders();\n this.status = init.status !== undefined ? init.status : defaultStatus;\n this.statusText = init.statusText || defaultStatusText;\n this.url = init.url || null;\n // Cache the ok value to avoid defining a getter.\n this.ok = this.status >= 200 && this.status < 300;\n }\n}\n/**\n * A partial HTTP response which only includes the status and header data,\n * but no response body.\n *\n * `HttpHeaderResponse` is a `HttpEvent` available on the response\n * event stream, only when progress events are requested.\n *\n * @publicApi\n */\nclass HttpHeaderResponse extends HttpResponseBase {\n /**\n * Create a new `HttpHeaderResponse` with the given parameters.\n */\n constructor(init = {}) {\n super(init);\n this.type = HttpEventType.ResponseHeader;\n }\n /**\n * Copy this `HttpHeaderResponse`, overriding its contents with the\n * given parameter hash.\n */\n clone(update = {}) {\n // Perform a straightforward initialization of the new HttpHeaderResponse,\n // overriding the current parameters with new ones if given.\n return new HttpHeaderResponse({\n headers: update.headers || this.headers,\n status: update.status !== undefined ? update.status : this.status,\n statusText: update.statusText || this.statusText,\n url: update.url || this.url || undefined,\n });\n }\n}\n/**\n * A full HTTP response, including a typed response body (which may be `null`\n * if one was not returned).\n *\n * `HttpResponse` is a `HttpEvent` available on the response event\n * stream.\n *\n * @publicApi\n */\nclass HttpResponse extends HttpResponseBase {\n /**\n * Construct a new `HttpResponse`.\n */\n constructor(init = {}) {\n super(init);\n this.type = HttpEventType.Response;\n this.body = init.body !== undefined ? init.body : null;\n }\n clone(update = {}) {\n return new HttpResponse({\n body: (update.body !== undefined) ? update.body : this.body,\n headers: update.headers || this.headers,\n status: (update.status !== undefined) ? update.status : this.status,\n statusText: update.statusText || this.statusText,\n url: update.url || this.url || undefined,\n });\n }\n}\n/**\n * A response that represents an error or failure, either from a\n * non-successful HTTP status, an error while executing the request,\n * or some other failure which occurred during the parsing of the response.\n *\n * Any error returned on the `Observable` response stream will be\n * wrapped in an `HttpErrorResponse` to provide additional context about\n * the state of the HTTP layer when the error occurred. The error property\n * will contain either a wrapped Error object or the error response returned\n * from the server.\n *\n * @publicApi\n */\nclass HttpErrorResponse extends HttpResponseBase {\n constructor(init) {\n // Initialize with a default status of 0 / Unknown Error.\n super(init, 0, 'Unknown Error');\n this.name = 'HttpErrorResponse';\n /**\n * Errors are never okay, even when the status code is in the 2xx success range.\n */\n this.ok = false;\n // If the response was successful, then this was a parse error. Otherwise, it was\n // a protocol-level failure of some sort. Either the request failed in transit\n // or the server returned an unsuccessful status code.\n if (this.status >= 200 && this.status < 300) {\n this.message = `Http failure during parsing for ${init.url || '(unknown url)'}`;\n }\n else {\n this.message = `Http failure response for ${init.url || '(unknown url)'}: ${init.status} ${init.statusText}`;\n }\n this.error = init.error || null;\n }\n}\n\n/**\n * Constructs an instance of `HttpRequestOptions<T>` from a source `HttpMethodOptions` and\n * the given `body`. This function clones the object and adds the body.\n *\n * Note that the `responseType` *options* value is a String that identifies the\n * single data type of the response.\n * A single overload version of the method handles each response type.\n * The value of `responseType` cannot be a union, as the combined signature could imply.\n *\n */\nfunction addBody(options, body) {\n return {\n body,\n headers: options.headers,\n context: options.context,\n observe: options.observe,\n params: options.params,\n reportProgress: options.reportProgress,\n responseType: options.responseType,\n withCredentials: options.withCredentials,\n };\n}\n/**\n * Performs HTTP requests.\n * This service is available as an injectable class, with methods to perform HTTP requests.\n * Each request method has multiple signatures, and the return type varies based on\n * the signature that is called (mainly the values of `observe` and `responseType`).\n *\n * Note that the `responseType` *options* value is a String that identifies the\n * single data type of the response.\n * A single overload version of the method handles each response type.\n * The value of `responseType` cannot be a union, as the combined signature could imply.\n\n *\n * @usageNotes\n * Sample HTTP requests for the [Tour of Heroes](/tutorial/tour-of-heroes/toh-pt0) application.\n *\n * ### HTTP Request Example\n *\n * ```\n * // GET heroes whose name contains search term\n * searchHeroes(term: string): observable<Hero[]>{\n *\n * const params = new HttpParams({fromString: 'name=term'});\n * return this.httpClient.request('GET', this.heroesUrl, {responseType:'json', params});\n * }\n * ```\n *\n * Alternatively, the parameter string can be used without invoking HttpParams\n * by directly joining to the URL.\n * ```\n * this.httpClient.request('GET', this.heroesUrl + '?' + 'name=term', {responseType:'json'});\n * ```\n *\n *\n * ### JSONP Example\n * ```\n * requestJsonp(url, callback = 'callback') {\n * return this.httpClient.jsonp(this.heroesURL, callback);\n * }\n * ```\n *\n * ### PATCH Example\n * ```\n * // PATCH one of the heroes' name\n * patchHero (id: number, heroName: string): Observable<{}> {\n * const url = `${this.heroesUrl}/${id}`; // PATCH api/heroes/42\n * return this.httpClient.patch(url, {name: heroName}, httpOptions)\n * .pipe(catchError(this.handleError('patchHero')));\n * }\n * ```\n *\n * @see [HTTP Guide](guide/http)\n * @see [HTTP Request](api/common/http/HttpRequest)\n *\n * @publicApi\n */\nclass HttpClient {\n constructor(handler) {\n this.handler = handler;\n }\n /**\n * Constructs an observable for a generic HTTP request that, when subscribed,\n * fires the request through the chain of registered interceptors and on to the\n * server.\n *\n * You can pass an `HttpRequest` directly as the only parameter. In this case,\n * the call returns an observable of the raw `HttpEvent` stream.\n *\n * Alternatively you can pass an HTTP method as the first parameter,\n * a URL string as the second, and an options hash containing the request body as the third.\n * See `addBody()`. In this case, the specified `responseType` and `observe` options determine the\n * type of returned observable.\n * * The `responseType` value determines how a successful response body is parsed.\n * * If `responseType` is the default `json`, you can pass a type interface for the resulting\n * object as a type parameter to the call.\n *\n * The `observe` value determines the return type, according to what you are interested in\n * observing.\n * * An `observe` value of events returns an observable of the raw `HttpEvent` stream, including\n * progress events by default.\n * * An `observe` value of response returns an observable of `HttpResponse<T>`,\n * where the `T` parameter depends on the `responseType` and any optionally provided type\n * parameter.\n * * An `observe` value of body returns an observable of `<T>` with the same `T` body type.\n *\n */\n request(first, url, options = {}) {\n let req;\n // First, check whether the primary argument is an instance of `HttpRequest`.\n if (first instanceof HttpRequest) {\n // It is. The other arguments must be undefined (per the signatures) and can be\n // ignored.\n req = first;\n }\n else {\n // It's a string, so it represents a URL. Construct a request based on it,\n // and incorporate the remaining arguments (assuming `GET` unless a method is\n // provided.\n // Figure out the headers.\n let headers = undefined;\n if (options.headers instanceof HttpHeaders) {\n headers = options.headers;\n }\n else {\n headers = new HttpHeaders(options.headers);\n }\n // Sort out parameters.\n let params = undefined;\n if (!!options.params) {\n if (options.params instanceof HttpParams) {\n params = options.params;\n }\n else {\n params = new HttpParams({ fromObject: options.params });\n }\n }\n // Construct the request.\n req = new HttpRequest(first, url, (options.body !== undefined ? options.body : null), {\n headers,\n context: options.context,\n params,\n reportProgress: options.reportProgress,\n // By default, JSON is assumed to be returned for all calls.\n responseType: options.responseType || 'json',\n withCredentials: options.withCredentials,\n });\n }\n // Start with an Observable.of() the initial request, and run the handler (which\n // includes all interceptors) inside a concatMap(). This way, the handler runs\n // inside an Observable chain, which causes interceptors to be re-run on every\n // subscription (this also makes retries re-run the handler, including interceptors).\n const events$ = of(req).pipe(concatMap((req) => this.handler.handle(req)));\n // If coming via the API signature which accepts a previously constructed HttpRequest,\n // the only option is to get the event stream. Otherwise, return the event stream if\n // that is what was requested.\n if (first instanceof HttpRequest || options.observe === 'events') {\n return events$;\n }\n // The requested stream contains either the full response or the body. In either\n // case, the first step is to filter the event stream to extract a stream of\n // responses(s).\n const res$ = events$.pipe(filter((event) => event instanceof HttpResponse));\n // Decide which stream to return.\n switch (options.observe || 'body') {\n case 'body':\n // The requested stream is the body. Map the response stream to the response\n // body. This could be done more simply, but a misbehaving interceptor might\n // transform the response body into a different format and ignore the requested\n // responseType. Guard against this by validating that the response is of the\n // requested type.\n switch (req.responseType) {\n case 'arraybuffer':\n return res$.pipe(map((res) => {\n // Validate that the body is an ArrayBuffer.\n if (res.body !== null && !(res.body instanceof ArrayBuffer)) {\n throw new Error('Response is not an ArrayBuffer.');\n }\n return res.body;\n }));\n case 'blob':\n return res$.pipe(map((res) => {\n // Validate that the body is a Blob.\n if (res.body !== null && !(res.body instanceof Blob)) {\n throw new Error('Response is not a Blob.');\n }\n return res.body;\n }));\n case 'text':\n return res$.pipe(map((res) => {\n // Validate that the body is a string.\n if (res.body !== null && typeof res.body !== 'string') {\n throw new Error('Response is not a string.');\n }\n return res.body;\n }));\n case 'json':\n default:\n // No validation needed for JSON responses, as they can be of any type.\n return res$.pipe(map((res) => res.body));\n }\n case 'response':\n // The response stream was requested directly, so return it.\n return res$;\n default:\n // Guard against new future observe types being added.\n throw new Error(`Unreachable: unhandled observe type ${options.observe}}`);\n }\n }\n /**\n * Constructs an observable that, when subscribed, causes the configured\n * `DELETE` request to execute on the server. See the individual overloads for\n * details on the return type.\n *\n * @param url The endpoint URL.\n * @param options The HTTP options to send with the request.\n *\n */\n delete(url, options = {}) {\n return this.request('DELETE', url, options);\n }\n /**\n * Constructs an observable that, when subscribed, causes the configured\n * `GET` request to execute on the server. See the individual overloads for\n * details on the return type.\n */\n get(url, options = {}) {\n return this.request('GET', url, options);\n }\n /**\n * Constructs an observable that, when subscribed, causes the configured\n * `HEAD` request to execute on the server. The `HEAD` method returns\n * meta information about the resource without transferring the\n * resource itself. See the individual overloads for\n * details on the return type.\n */\n head(url, options = {}) {\n return this.request('HEAD', url, options);\n }\n /**\n * Constructs an `Observable` that, when subscribed, causes a request with the special method\n * `JSONP` to be dispatched via the interceptor pipeline.\n * The [JSONP pattern](https://en.wikipedia.org/wiki/JSONP) works around limitations of certain\n * API endpoints that don't support newer,\n * and preferable [CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS) protocol.\n * JSONP treats the endpoint API as a JavaScript file and tricks the browser to process the\n * requests even if the API endpoint is not located on the same domain (origin) as the client-side\n * application making the request.\n * The endpoint API must support JSONP callback for JSONP requests to work.\n * The resource API returns the JSON response wrapped in a callback function.\n * You can pass the callback function name as one of the query parameters.\n * Note that JSONP requests can only be used with `GET` requests.\n *\n * @param url The resource URL.\n * @param callbackParam The callback function name.\n *\n */\n jsonp(url, callbackParam) {\n return this.request('JSONP', url, {\n params: new HttpParams().append(callbackParam, 'JSONP_CALLBACK'),\n observe: 'body',\n responseType: 'json',\n });\n }\n /**\n * Constructs an `Observable` that, when subscribed, causes the configured\n * `OPTIONS` request to execute on the server. This method allows the client\n * to determine the supported HTTP methods and other capabilities of an endpoint,\n * without implying a resource action. See the individual overloads for\n * details on the return type.\n */\n options(url, options = {}) {\n return this.request('OPTIONS', url, options);\n }\n /**\n * Constructs an observable that, when subscribed, causes the configured\n * `PATCH` request to execute on the server. See the individual overloads for\n * details on the return type.\n */\n patch(url, body, options = {}) {\n return this.request('PATCH', url, addBody(options, body));\n }\n /**\n * Constructs an observable that, when subscribed, causes the configured\n * `POST` request to execute on the server. The server responds with the location of\n * the replaced resource. See the individual overloads for\n * details on the return type.\n */\n post(url, body, options = {}) {\n return this.request('POST', url, addBody(options, body));\n }\n /**\n * Constructs an observable that, when subscribed, causes the configured\n * `PUT` request to execute on the server. The `PUT` method replaces an existing resource\n * with a new set of values.\n * See the individual overloads for details on the return type.\n */\n put(url, body, options = {}) {\n return this.request('PUT', url, addBody(options, body));\n }\n}\nHttpClient.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: HttpClient, deps: [{ token: HttpHandler }], target: i0.ɵɵFactoryTarget.Injectable });\nHttpClient.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: HttpClient });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: HttpClient, decorators: [{\n type: Injectable\n }], ctorParameters: function () { return [{ type: HttpHandler }]; } });\n\nfunction interceptorChainEndFn(req, finalHandlerFn) {\n return finalHandlerFn(req);\n}\n/**\n * Constructs a `ChainedInterceptorFn` which adapts a legacy `HttpInterceptor` to the\n * `ChainedInterceptorFn` interface.\n */\nfunction adaptLegacyInterceptorToChain(chainTailFn, interceptor) {\n return (initialRequest, finalHandlerFn) => interceptor.intercept(initialRequest, {\n handle: (downstreamRequest) => chainTailFn(downstreamRequest, finalHandlerFn),\n });\n}\n/**\n * Constructs a `ChainedInterceptorFn` which wraps and invokes a functional interceptor in the given\n * injector.\n */\nfunction chainedInterceptorFn(chainTailFn, interceptorFn, injector) {\n // clang-format off\n return (initialRequest, finalHandlerFn) => injector.runInContext(() => interceptorFn(initialRequest, downstreamRequest => chainTailFn(downstreamRequest, finalHandlerFn)));\n // clang-format on\n}\n/**\n * A multi-provider token that represents the array of registered\n * `HttpInterceptor` objects.\n *\n * @publicApi\n */\nconst HTTP_INTERCEPTORS = new InjectionToken('HTTP_INTERCEPTORS');\n/**\n * A multi-provided token of `HttpInterceptorFn`s.\n */\nconst HTTP_INTERCEPTOR_FNS = new InjectionToken('HTTP_INTERCEPTOR_FNS');\n/**\n * Creates an `HttpInterceptorFn` which lazily initializes an interceptor chain from the legacy\n * class-based interceptors and runs the request through it.\n */\nfunction legacyInterceptorFnFactory() {\n let chain = null;\n return (req, handler) => {\n if (chain === null) {\n const interceptors = inject(HTTP_INTERCEPTORS, { optional: true }) ?? [];\n // Note: interceptors are wrapped right-to-left so that final execution order is\n // left-to-right. That is, if `interceptors` is the array `[a, b, c]`, we want to\n // produce a chain that is conceptually `c(b(a(end)))`, which we build from the inside\n // out.\n chain = interceptors.reduceRight(adaptLegacyInterceptorToChain, interceptorChainEndFn);\n }\n return chain(req, handler);\n };\n}\nclass HttpInterceptorHandler extends HttpHandler {\n constructor(backend, injector) {\n super();\n this.backend = backend;\n this.injector = injector;\n this.chain = null;\n }\n handle(initialRequest) {\n if (this.chain === null) {\n const dedupedInterceptorFns = Array.from(new Set(this.injector.get(HTTP_INTERCEPTOR_FNS)));\n // Note: interceptors are wrapped right-to-left so that final execution order is\n // left-to-right. That is, if `dedupedInterceptorFns` is the array `[a, b, c]`, we want to\n // produce a chain that is conceptually `c(b(a(end)))`, which we build from the inside\n // out.\n this.chain = dedupedInterceptorFns.reduceRight((nextSequencedFn, interceptorFn) => chainedInterceptorFn(nextSequencedFn, interceptorFn, this.injector), interceptorChainEndFn);\n }\n return this.chain(initialRequest, downstreamRequest => this.backend.handle(downstreamRequest));\n }\n}\nHttpInterceptorHandler.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: HttpInterceptorHandler, deps: [{ token: HttpBackend }, { token: i0.EnvironmentInjector }], target: i0.ɵɵFactoryTarget.Injectable });\nHttpInterceptorHandler.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: HttpInterceptorHandler });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: HttpInterceptorHandler, decorators: [{\n type: Injectable\n }], ctorParameters: function () { return [{ type: HttpBackend }, { type: i0.EnvironmentInjector }]; } });\n\n// Every request made through JSONP needs a callback name that's unique across the\n// whole page. Each request is assigned an id and the callback name is constructed\n// from that. The next id to be assigned is tracked in a global variable here that\n// is shared among all applications on the page.\nlet nextRequestId = 0;\n/**\n * When a pending <script> is unsubscribed we'll move it to this document, so it won't be\n * executed.\n */\nlet foreignDocument;\n// Error text given when a JSONP script is injected, but doesn't invoke the callback\n// passed in its URL.\nconst JSONP_ERR_NO_CALLBACK = 'JSONP injected script did not invoke callback.';\n// Error text given when a request is passed to the JsonpClientBackend that doesn't\n// have a request method JSONP.\nconst JSONP_ERR_WRONG_METHOD = 'JSONP requests must use JSONP request method.';\nconst JSONP_ERR_WRONG_RESPONSE_TYPE = 'JSONP requests must use Json response type.';\n// Error text given when a request is passed to the JsonpClientBackend that has\n// headers set\nconst JSONP_ERR_HEADERS_NOT_SUPPORTED = 'JSONP requests do not support headers.';\n/**\n * DI token/abstract type representing a map of JSONP callbacks.\n *\n * In the browser, this should always be the `window` object.\n *\n *\n */\nclass JsonpCallbackContext {\n}\n/**\n * Factory function that determines where to store JSONP callbacks.\n *\n * Ordinarily JSONP callbacks are stored on the `window` object, but this may not exist\n * in test environments. In that case, callbacks are stored on an anonymous object instead.\n *\n *\n */\nfunction jsonpCallbackContext() {\n if (typeof window === 'object') {\n return window;\n }\n return {};\n}\n/**\n * Processes an `HttpRequest` with the JSONP method,\n * by performing JSONP style requests.\n * @see {@link HttpHandler}\n * @see {@link HttpXhrBackend}\n *\n * @publicApi\n */\nclass JsonpClientBackend {\n constructor(callbackMap, document) {\n this.callbackMap = callbackMap;\n this.document = document;\n /**\n * A resolved promise that can be used to schedule microtasks in the event handlers.\n */\n this.resolvedPromise = Promise.resolve();\n }\n /**\n * Get the name of the next callback method, by incrementing the global `nextRequestId`.\n */\n nextCallback() {\n return `ng_jsonp_callback_${nextRequestId++}`;\n }\n /**\n * Processes a JSONP request and returns an event stream of the results.\n * @param req The request object.\n * @returns An observable of the response events.\n *\n */\n handle(req) {\n // Firstly, check both the method and response type. If either doesn't match\n // then the request was improperly routed here and cannot be handled.\n if (req.method !== 'JSONP') {\n throw new Error(JSONP_ERR_WRONG_METHOD);\n }\n else if (req.responseType !== 'json') {\n throw new Error(JSONP_ERR_WRONG_RESPONSE_TYPE);\n }\n // Check the request headers. JSONP doesn't support headers and\n // cannot set any that were supplied.\n if (req.headers.keys().length > 0) {\n throw new Error(JSONP_ERR_HEADERS_NOT_SUPPORTED);\n }\n // Everything else happens inside the Observable boundary.\n return new Observable((observer) => {\n // The first step to make a request is to generate the callback name, and replace the\n // callback placeholder in the URL with the name. Care has to be taken here to ensure\n // a trailing &, if matched, gets inserted back into the URL in the correct place.\n const callback = this.nextCallback();\n const url = req.urlWithParams.replace(/=JSONP_CALLBACK(&|$)/, `=${callback}$1`);\n // Construct the <script> tag and point it at the URL.\n const node = this.document.createElement('script');\n node.src = url;\n // A JSONP request requires waiting for multiple callbacks. These variables\n // are closed over and track state across those callbacks.\n // The response object, if one has been received, or null otherwise.\n let body = null;\n // Whether the response callback has been called.\n let finished = false;\n // Set the response callback in this.callbackMap (which will be the window\n // object in the browser. The script being loaded via the <script> tag will\n // eventually call this callback.\n this.callbackMap[callback] = (data) => {\n // Data has been received from the JSONP script. Firstly, delete this callback.\n delete this.callbackMap[callback];\n // Set state to indicate data was received.\n body = data;\n finished = true;\n };\n // cleanup() is a utility closure that removes the <script> from the page and\n // the response callback from the window. This logic is used in both the\n // success, error, and cancellation paths, so it's extracted out for convenience.\n const cleanup = () => {\n // Remove the <script> tag if it's still on the page.\n if (node.parentNode) {\n node.parentNode.removeChild(node);\n }\n // Remove the response callback from the callbackMap (window object in the\n // browser).\n delete this.callbackMap[callback];\n };\n // onLoad() is the success callback which runs after the response callback\n // if the JSONP script loads successfully. The event itself is unimportant.\n // If something went wrong, onLoad() may run without the response callback\n // having been invoked.\n const onLoad = (event) => {\n // We wrap it in an extra Promise, to ensure the microtask\n // is scheduled after the loaded endpoint has executed any potential microtask itself,\n // which is not guaranteed in Internet Explorer and EdgeHTML. See issue #39496\n this.resolvedPromise.then(() => {\n // Cleanup the page.\n cleanup();\n // Check whether the response callback has run.\n if (!finished) {\n // It hasn't, something went wrong with the request. Return an error via\n // the Observable error path. All JSONP errors have status 0.\n observer.error(new HttpErrorResponse({\n url,\n status: 0,\n statusText: 'JSONP Error',\n error: new Error(JSONP_ERR_NO_CALLBACK),\n }));\n return;\n }\n // Success. body either contains the response body or null if none was\n // returned.\n observer.next(new HttpResponse({\n body,\n status: 200 /* HttpStatusCode.Ok */,\n statusText: 'OK',\n url,\n }));\n // Complete the stream, the response is over.\n observer.complete();\n });\n };\n // onError() is the error callback, which runs if the script returned generates\n // a Javascript error. It emits the error via the Observable error channel as\n // a HttpErrorResponse.\n const onError = (error) => {\n cleanup();\n // Wrap the error in a HttpErrorResponse.\n observer.error(new HttpErrorResponse({\n error,\n status: 0,\n statusText: 'JSONP Error',\n url,\n }));\n };\n // Subscribe to both the success (load) and error events on the <script> tag,\n // and add it to the page.\n node.addEventListener('load', onLoad);\n node.addEventListener('error', onError);\n this.document.body.appendChild(node);\n // The request has now been successfully sent.\n observer.next({ type: HttpEventType.Sent });\n // Cancellation handler.\n return () => {\n if (!finished) {\n this.removeListeners(node);\n }\n // And finally, clean up the page.\n cleanup();\n };\n });\n }\n removeListeners(script) {\n // Issue #34818\n // Changing <script>'s ownerDocument will prevent it from execution.\n // https://html.spec.whatwg.org/multipage/scripting.html#execute-the-script-block\n if (!foreignDocument) {\n foreignDocument = this.document.implementation.createHTMLDocument();\n }\n foreignDocument.adoptNode(script);\n }\n}\nJsonpClientBackend.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: JsonpClientBackend, deps: [{ token: JsonpCallbackContext }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });\nJsonpClientBackend.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: JsonpClientBackend });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: JsonpClientBackend, decorators: [{\n type: Injectable\n }], ctorParameters: function () { return [{ type: JsonpCallbackContext }, { type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }]; } });\n/**\n * Identifies requests with the method JSONP and shifts them to the `JsonpClientBackend`.\n */\nfunction jsonpInterceptorFn(req, next) {\n if (req.method === 'JSONP') {\n return inject(JsonpClientBackend).handle(req);\n }\n // Fall through for normal HTTP requests.\n return next(req);\n}\n/**\n * Identifies requests with the method JSONP and\n * shifts them to the `JsonpClientBackend`.\n *\n * @see {@link HttpInterceptor}\n *\n * @publicApi\n */\nclass JsonpInterceptor {\n constructor(injector) {\n this.injector = injector;\n }\n /**\n * Identifies and handles a given JSONP request.\n * @param initialRequest The outgoing request object to handle.\n * @param next The next interceptor in the chain, or the backend\n * if no interceptors remain in the chain.\n * @returns An observable of the event stream.\n */\n intercept(initialRequest, next) {\n return this.injector.runInContext(() => jsonpInterceptorFn(initialRequest, downstreamRequest => next.handle(downstreamRequest)));\n }\n}\nJsonpInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: JsonpInterceptor, deps: [{ token: i0.EnvironmentInjector }], target: i0.ɵɵFactoryTarget.Injectable });\nJsonpInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: JsonpInterceptor });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: JsonpInterceptor, decorators: [{\n type: Injectable\n }], ctorParameters: function () { return [{ type: i0.EnvironmentInjector }]; } });\n\nconst XSSI_PREFIX = /^\\)\\]\\}',?\\n/;\n/**\n * Determine an appropriate URL for the response, by checking either\n * XMLHttpRequest.responseURL or the X-Request-URL header.\n */\nfunction getResponseUrl(xhr) {\n if ('responseURL' in xhr && xhr.responseURL) {\n return xhr.responseURL;\n }\n if (/^X-Request-URL:/m.test(xhr.getAllResponseHeaders())) {\n return xhr.getResponseHeader('X-Request-URL');\n }\n return null;\n}\n/**\n * Uses `XMLHttpRequest` to send requests to a backend server.\n * @see {@link HttpHandler}\n * @see {@link JsonpClientBackend}\n *\n * @publicApi\n */\nclass HttpXhrBackend {\n constructor(xhrFactory) {\n this.xhrFactory = xhrFactory;\n }\n /**\n * Processes a request and returns a stream of response events.\n * @param req The request object.\n * @returns An observable of the response events.\n */\n handle(req) {\n // Quick check to give a better error message when a user attempts to use\n // HttpClient.jsonp() without installing the HttpClientJsonpModule\n if (req.method === 'JSONP') {\n throw new Error(`Attempted to construct Jsonp request without HttpClientJsonpModule installed.`);\n }\n // Everything happens on Observable subscription.\n return new Observable((observer) => {\n // Start by setting up the XHR object with request method, URL, and withCredentials flag.\n const xhr = this.xhrFactory.build();\n xhr.open(req.method, req.urlWithParams);\n if (!!req.withCredentials) {\n xhr.withCredentials = true;\n }\n // Add all the requested headers.\n req.headers.forEach((name, values) => xhr.setRequestHeader(name, values.join(',')));\n // Add an Accept header if one isn't present already.\n if (!req.headers.has('Accept')) {\n xhr.setRequestHeader('Accept', 'application/json, text/plain, */*');\n }\n // Auto-detect the Content-Type header if one isn't present already.\n if (!req.headers.has('Content-Type')) {\n const detectedType = req.detectContentTypeHeader();\n // Sometimes Content-Type detection fails.\n if (detectedType !== null) {\n xhr.setRequestHeader('Content-Type', detectedType);\n }\n }\n // Set the responseType if one was requested.\n if (req.responseType) {\n const responseType = req.responseType.toLowerCase();\n // JSON responses need to be processed as text. This is because if the server\n // returns an XSSI-prefixed JSON response, the browser will fail to parse it,\n // xhr.response will be null, and xhr.responseText cannot be accessed to\n // retrieve the prefixed JSON data in order to strip the prefix. Thus, all JSON\n // is parsed by first requesting text and then applying JSON.parse.\n xhr.responseType = ((responseType !== 'json') ? responseType : 'text');\n }\n // Serialize the request body if one is present. If not, this will be set to null.\n const reqBody = req.serializeBody();\n // If progress events are enabled, response headers will be delivered\n // in two events - the HttpHeaderResponse event and the full HttpResponse\n // event. However, since response headers don't change in between these\n // two events, it doesn't make sense to parse them twice. So headerResponse\n // caches the data extracted from the response whenever it's first parsed,\n // to ensure parsing isn't duplicated.\n let headerResponse = null;\n // partialFromXhr extracts the HttpHeaderResponse from the current XMLHttpRequest\n // state, and memoizes it into headerResponse.\n const partialFromXhr = () => {\n if (headerResponse !== null) {\n return headerResponse;\n }\n const statusText = xhr.statusText || 'OK';\n // Parse headers from XMLHttpRequest - this step is lazy.\n const headers = new HttpHeaders(xhr.getAllResponseHeaders());\n // Read the response URL from the XMLHttpResponse instance and fall back on the\n // request URL.\n const url = getResponseUrl(xhr) || req.url;\n // Construct the HttpHeaderResponse and memoize it.\n headerResponse = new HttpHeaderResponse({ headers, status: xhr.status, statusText, url });\n return headerResponse;\n };\n // Next, a few closures are defined for the various events which XMLHttpRequest can\n // emit. This allows them to be unregistered as event listeners later.\n // First up is the load event, which represents a response being fully available.\n const onLoad = () => {\n // Read response state from the memoized partial data.\n let { headers, status, statusText, url } = partialFromXhr();\n // The body will be read out if present.\n let body = null;\n if (status !== 204 /* HttpStatusCode.NoContent */) {\n // Use XMLHttpRequest.response if set, responseText otherwise.\n body = (typeof xhr.response === 'undefined') ? xhr.responseText : xhr.response;\n }\n // Normalize another potential bug (this one comes from CORS).\n if (status === 0) {\n status = !!body ? 200 /* HttpStatusCode.Ok */ : 0;\n }\n // ok determines whether the response will be transmitted on the event or\n // error channel. Unsuccessful status codes (not 2xx) will always be errors,\n // but a successful status code can still result in an error if the user\n // asked for JSON data and the body cannot be parsed as such.\n let ok = status >= 200 && status < 300;\n // Check whether the body needs to be parsed as JSON (in many cases the browser\n // will have done that already).\n if (req.responseType === 'json' && typeof body === 'string') {\n // Save the original body, before attempting XSSI prefix stripping.\n const originalBody = body;\n body = body.replace(XSSI_PREFIX, '');\n try {\n // Attempt the parse. If it fails, a parse error should be delivered to the user.\n body = body !== '' ? JSON.parse(body) : null;\n }\n catch (error) {\n // Since the JSON.parse failed, it's reasonable to assume this might not have been a\n // JSON response. Restore the original body (including any XSSI prefix) to deliver\n // a better error response.\n body = originalBody;\n // If this was an error request to begin with, leave it as a string, it probably\n // just isn't JSON. Otherwise, deliver the parsing error to the user.\n if (ok) {\n // Even though the response status was 2xx, this is still an error.\n ok = false;\n // The parse error contains the text of the body that failed to parse.\n body = { error, text: body };\n }\n }\n }\n if (ok) {\n // A successful response is delivered on the event stream.\n observer.next(new HttpResponse({\n body,\n headers,\n status,\n statusText,\n url: url || undefined,\n }));\n // The full body has been received and delivered, no further events\n // are possible. This request is complete.\n observer.complete();\n }\n else {\n // An unsuccessful request is delivered on the error channel.\n observer.error(new HttpErrorResponse({\n // The error in this case is the response body (error from the server).\n error: body,\n headers,\n status,\n statusText,\n url: url || undefined,\n }));\n }\n };\n // The onError callback is called when something goes wrong at the network level.\n // Connection timeout, DNS error, offline, etc. These are actual errors, and are\n // transmitted on the error channel.\n const onError = (error) => {\n const { url } = partialFromXhr();\n const res = new HttpErrorResponse({\n error,\n status: xhr.status || 0,\n statusText: xhr.statusText || 'Unknown Error',\n url: url || undefined,\n });\n observer.error(res);\n };\n // The sentHeaders flag tracks whether the HttpResponseHeaders event\n // has been sent on the stream. This is necessary to track if progress\n // is enabled since the event will be sent on only the first download\n // progress event.\n let sentHeaders = false;\n // The download progress event handler, which is only registered if\n // progress events are enabled.\n const onDownProgress = (event) => {\n // Send the HttpResponseHeaders event if it hasn't been sent already.\n if (!sentHeaders) {\n observer.next(partialFromXhr());\n sentHeaders = true;\n }\n // Start building the download progress event to deliver on the response\n // event stream.\n let progressEvent = {\n type: HttpEventType.DownloadProgress,\n loaded: event.loaded,\n };\n // Set the total number of bytes in the event if it's available.\n if (event.lengthComputable) {\n progressEvent.total = event.total;\n }\n // If the request was for text content and a partial response is\n // available on XMLHttpRequest, include it in the progress event\n // to allow for streaming reads.\n if (req.responseType === 'text' && !!xhr.responseText) {\n progressEvent.partialText = xhr.responseText;\n }\n // Finally, fire the event.\n observer.next(progressEvent);\n };\n // The upload progress event handler, which is only registered if\n // progress events are enabled.\n const onUpProgress = (event) => {\n // Upload progress events are simpler. Begin building the progress\n // event.\n let progress = {\n type: HttpEventType.UploadProgress,\n loaded: event.loaded,\n };\n // If the total number of bytes being uploaded is available, include\n // it.\n if (event.lengthComputable) {\n progress.total = event.total;\n }\n // Send the event.\n observer.next(progress);\n };\n // By default, register for load and error events.\n xhr.addEventListener('load', onLoad);\n xhr.addEventListener('error', onError);\n xhr.addEventListener('timeout', onError);\n xhr.addEventListener('abort', onError);\n // Progress events are only enabled if requested.\n if (req.reportProgress) {\n // Download progress is always enabled if requested.\n xhr.addEventListener('progress', onDownProgress);\n // Upload progress depends on whether there is a body to upload.\n if (reqBody !== null && xhr.upload) {\n xhr.upload.addEventListener('progress', onUpProgress);\n }\n }\n // Fire the request, and notify the event stream that it was fired.\n xhr.send(reqBody);\n observer.next({ type: HttpEventType.Sent });\n // This is the return from the Observable function, which is the\n // request cancellation handler.\n return () => {\n // On a cancellation, remove all registered event listeners.\n xhr.removeEventListener('error', onError);\n xhr.removeEventListener('abort', onError);\n xhr.removeEventListener('load', onLoad);\n xhr.removeEventListener('timeout', onError);\n if (req.reportProgress) {\n xhr.removeEventListener('progress', onDownProgress);\n if (reqBody !== null && xhr.upload) {\n xhr.upload.removeEventListener('progress', onUpProgress);\n }\n }\n // Finally, abort the in-flight request.\n if (xhr.readyState !== xhr.DONE) {\n xhr.abort();\n }\n };\n });\n }\n}\nHttpXhrBackend.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: HttpXhrBackend, deps: [{ token: i1.XhrFactory }], target: i0.ɵɵFactoryTarget.Injectable });\nHttpXhrBackend.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: HttpXhrBackend });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: HttpXhrBackend, decorators: [{\n type: Injectable\n }], ctorParameters: function () { return [{ type: i1.XhrFactory }]; } });\n\nconst XSRF_ENABLED = new InjectionToken('XSRF_ENABLED');\nconst XSRF_DEFAULT_COOKIE_NAME = 'XSRF-TOKEN';\nconst XSRF_COOKIE_NAME = new InjectionToken('XSRF_COOKIE_NAME', {\n providedIn: 'root',\n factory: () => XSRF_DEFAULT_COOKIE_NAME,\n});\nconst XSRF_DEFAULT_HEADER_NAME = 'X-XSRF-TOKEN';\nconst XSRF_HEADER_NAME = new InjectionToken('XSRF_HEADER_NAME', {\n providedIn: 'root',\n factory: () => XSRF_DEFAULT_HEADER_NAME,\n});\n/**\n * Retrieves the current XSRF token to use with the next outgoing request.\n *\n * @publicApi\n */\nclass HttpXsrfTokenExtractor {\n}\n/**\n * `HttpXsrfTokenExtractor` which retrieves the token from a cookie.\n */\nclass HttpXsrfCookieExtractor {\n constructor(doc, platform, cookieName) {\n this.doc = doc;\n this.platform = platform;\n this.cookieName = cookieName;\n this.lastCookieString = '';\n this.lastToken = null;\n /**\n * @internal for testing\n */\n this.parseCount = 0;\n }\n getToken() {\n if (this.platform === 'server') {\n return null;\n }\n const cookieString = this.doc.cookie || '';\n if (cookieString !== this.lastCookieString) {\n this.parseCount++;\n this.lastToken = ɵparseCookieValue(cookieString, this.cookieName);\n this.lastCookieString = cookieString;\n }\n return this.lastToken;\n }\n}\nHttpXsrfCookieExtractor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: HttpXsrfCookieExtractor, deps: [{ token: DOCUMENT }, { token: PLATFORM_ID }, { token: XSRF_COOKIE_NAME }], target: i0.ɵɵFactoryTarget.Injectable });\nHttpXsrfCookieExtractor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: HttpXsrfCookieExtractor });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: HttpXsrfCookieExtractor, decorators: [{\n type: Injectable\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }, { type: undefined, decorators: [{\n type: Inject,\n args: [PLATFORM_ID]\n }] }, { type: undefined, decorators: [{\n type: Inject,\n args: [XSRF_COOKIE_NAME]\n }] }]; } });\nfunction xsrfInterceptorFn(req, next) {\n const lcUrl = req.url.toLowerCase();\n // Skip both non-mutating requests and absolute URLs.\n // Non-mutating requests don't require a token, and absolute URLs require special handling\n // anyway as the cookie set\n // on our origin is not the same as the token expected by another origin.\n if (!inject(XSRF_ENABLED) || req.method === 'GET' || req.method === 'HEAD' ||\n lcUrl.startsWith('http://') || lcUrl.startsWith('https://')) {\n return next(req);\n }\n const token = inject(HttpXsrfTokenExtractor).getToken();\n const headerName = inject(XSRF_HEADER_NAME);\n // Be careful not to overwrite an existing header of the same name.\n if (token != null && !req.headers.has(headerName)) {\n req = req.clone({ headers: req.headers.set(headerName, token) });\n }\n return next(req);\n}\n/**\n * `HttpInterceptor` which adds an XSRF token to eligible outgoing requests.\n */\nclass HttpXsrfInterceptor {\n constructor(injector) {\n this.injector = injector;\n }\n intercept(initialRequest, next) {\n return this.injector.runInContext(() => xsrfInterceptorFn(initialRequest, downstreamRequest => next.handle(downstreamRequest)));\n }\n}\nHttpXsrfInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: HttpXsrfInterceptor, deps: [{ token: i0.EnvironmentInjector }], target: i0.ɵɵFactoryTarget.Injectable });\nHttpXsrfInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: HttpXsrfInterceptor });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: HttpXsrfInterceptor, decorators: [{\n type: Injectable\n }], ctorParameters: function () { return [{ type: i0.EnvironmentInjector }]; } });\n\n/**\n * Identifies a particular kind of `HttpFeature`.\n *\n * @publicApi\n */\nvar HttpFeatureKind;\n(function (HttpFeatureKind) {\n HttpFeatureKind[HttpFeatureKind[\"Interceptors\"] = 0] = \"Interceptors\";\n HttpFeatureKind[HttpFeatureKind[\"LegacyInterceptors\"] = 1] = \"LegacyInterceptors\";\n HttpFeatureKind[HttpFeatureKind[\"CustomXsrfConfiguration\"] = 2] = \"CustomXsrfConfiguration\";\n HttpFeatureKind[HttpFeatureKind[\"NoXsrfProtection\"] = 3] = \"NoXsrfProtection\";\n HttpFeatureKind[HttpFeatureKind[\"JsonpSupport\"] = 4] = \"JsonpSupport\";\n HttpFeatureKind[HttpFeatureKind[\"RequestsMadeViaParent\"] = 5] = \"RequestsMadeViaParent\";\n})(HttpFeatureKind || (HttpFeatureKind = {}));\nfunction makeHttpFeature(kind, providers) {\n return {\n ɵkind: kind,\n ɵproviders: providers,\n };\n}\n/**\n * Configures Angular's `HttpClient` service to be available for injection.\n *\n * By default, `HttpClient` will be configured for injection with its default options for XSRF\n * protection of outgoing requests. Additional configuration options can be provided by passing\n * feature functions to `provideHttpClient`. For example, HTTP interceptors can be added using the\n * `withInterceptors(...)` feature.\n *\n * @see {@link withInterceptors}\n * @see {@link withInterceptorsFromDi}\n * @see {@link withXsrfConfiguration}\n * @see {@link withNoXsrfProtection}\n * @see {@link withJsonpSupport}\n * @see {@link withRequestsMadeViaParent}\n */\nfunction provideHttpClient(...features) {\n if (ngDevMode) {\n const featureKinds = new Set(features.map(f => f.ɵkind));\n if (featureKinds.has(HttpFeatureKind.NoXsrfProtection) &&\n featureKinds.has(HttpFeatureKind.CustomXsrfConfiguration)) {\n throw new Error(ngDevMode ?\n `Configuration error: found both withXsrfConfiguration() and withNoXsrfProtection() in the same call to provideHttpClient(), which is a contradiction.` :\n '');\n }\n }\n const providers = [\n HttpClient,\n HttpXhrBackend,\n HttpInterceptorHandler,\n { provide: HttpHandler, useExisting: HttpInterceptorHandler },\n { provide: HttpBackend, useExisting: HttpXhrBackend },\n {\n provide: HTTP_INTERCEPTOR_FNS,\n useValue: xsrfInterceptorFn,\n multi: true,\n },\n { provide: XSRF_ENABLED, useValue: true },\n { provide: HttpXsrfTokenExtractor, useClass: HttpXsrfCookieExtractor },\n ];\n for (const feature of features) {\n providers.push(...feature.ɵproviders);\n }\n return makeEnvironmentProviders(providers);\n}\n/**\n * Adds one or more functional-style HTTP interceptors to the configuration of the `HttpClient`\n * instance.\n *\n * @see {@link HttpInterceptorFn}\n * @see {@link provideHttpClient}\n * @publicApi\n */\nfunction withInterceptors(interceptorFns) {\n return makeHttpFeature(HttpFeatureKind.Interceptors, interceptorFns.map(interceptorFn => {\n return {\n provide: HTTP_INTERCEPTOR_FNS,\n useValue: interceptorFn,\n multi: true,\n };\n }));\n}\nconst LEGACY_INTERCEPTOR_FN = new InjectionToken('LEGACY_INTERCEPTOR_FN');\n/**\n * Includes class-based interceptors configured using a multi-provider in the current injector into\n * the configured `HttpClient` instance.\n *\n * Prefer `withInterceptors` and functional interceptors instead, as support for DI-provided\n * interceptors may be phased out in a later release.\n *\n * @see {@link HttpInterceptor}\n * @see {@link HTTP_INTERCEPTORS}\n * @see {@link provideHttpClient}\n */\nfunction withInterceptorsFromDi() {\n // Note: the legacy interceptor function is provided here via an intermediate token\n // (`LEGACY_INTERCEPTOR_FN`), using a pattern which guarantees that if these providers are\n // included multiple times, all of the multi-provider entries will have the same instance of the\n // interceptor function. That way, the `HttpINterceptorHandler` will dedup them and legacy\n // interceptors will not run multiple times.\n return makeHttpFeature(HttpFeatureKind.LegacyInterceptors, [\n {\n provide: LEGACY_INTERCEPTOR_FN,\n useFactory: legacyInterceptorFnFactory,\n },\n {\n provide: HTTP_INTERCEPTOR_FNS,\n useExisting: LEGACY_INTERCEPTOR_FN,\n multi: true,\n }\n ]);\n}\n/**\n * Customizes the XSRF protection for the configuration of the current `HttpClient` instance.\n *\n * This feature is incompatible with the `withNoXsrfProtection` feature.\n *\n * @see {@link provideHttpClient}\n */\nfunction withXsrfConfiguration({ cookieName, headerName }) {\n const providers = [];\n if (cookieName !== undefined) {\n providers.push({ provide: XSRF_COOKIE_NAME, useValue: cookieName });\n }\n if (headerName !== undefined) {\n providers.push({ provide: XSRF_HEADER_NAME, useValue: headerName });\n }\n return makeHttpFeature(HttpFeatureKind.CustomXsrfConfiguration, providers);\n}\n/**\n * Disables XSRF protection in the configuration of the current `HttpClient` instance.\n *\n * This feature is incompatible with the `withXsrfConfiguration` feature.\n *\n * @see {@link provideHttpClient}\n */\nfunction withNoXsrfProtection() {\n return makeHttpFeature(HttpFeatureKind.NoXsrfProtection, [\n {\n provide: XSRF_ENABLED,\n useValue: false,\n },\n ]);\n}\n/**\n * Add JSONP support to the configuration of the current `HttpClient` instance.\n *\n * @see {@link provideHttpClient}\n */\nfunction withJsonpSupport() {\n return makeHttpFeature(HttpFeatureKind.JsonpSupport, [\n JsonpClientBackend,\n { provide: JsonpCallbackContext, useFactory: jsonpCallbackContext },\n { provide: HTTP_INTERCEPTOR_FNS, useValue: jsonpInterceptorFn, multi: true },\n ]);\n}\n/**\n * Configures the current `HttpClient` instance to make requests via the parent injector's\n * `HttpClient` instead of directly.\n *\n * By default, `provideHttpClient` configures `HttpClient` in its injector to be an independent\n * instance. For example, even if `HttpClient` is configured in the parent injector with\n * one or more interceptors, they will not intercept requests made via this instance.\n *\n * With this option enabled, once the request has passed through the current injector's\n * interceptors, it will be delegated to the parent injector's `HttpClient` chain instead of\n * dispatched directly, and interceptors in the parent configuration will be applied to the request.\n *\n * If there are several `HttpClient` instances in the injector hierarchy, it's possible for\n * `withRequestsMadeViaParent` to be used at multiple levels, which will cause the request to\n * \"bubble up\" until either reaching the root level or an `HttpClient` which was not configured with\n * this option.\n *\n * @see {@link provideHttpClient}\n * @developerPreview\n */\nfunction withRequestsMadeViaParent() {\n return makeHttpFeature(HttpFeatureKind.RequestsMadeViaParent, [\n {\n provide: HttpBackend,\n useFactory: () => {\n const handlerFromParent = inject(HttpHandler, { skipSelf: true, optional: true });\n if (ngDevMode && handlerFromParent === null) {\n throw new Error('withRequestsMadeViaParent() can only be used when the parent injector also configures HttpClient');\n }\n return handlerFromParent;\n },\n },\n ]);\n}\n\n/**\n * Configures XSRF protection support for outgoing requests.\n *\n * For a server that supports a cookie-based XSRF protection system,\n * use directly to configure XSRF protection with the correct\n * cookie and header names.\n *\n * If no names are supplied, the default cookie name is `XSRF-TOKEN`\n * and the default header name is `X-XSRF-TOKEN`.\n *\n * @publicApi\n */\nclass HttpClientXsrfModule {\n /**\n * Disable the default XSRF protection.\n */\n static disable() {\n return {\n ngModule: HttpClientXsrfModule,\n providers: [\n withNoXsrfProtection().ɵproviders,\n ],\n };\n }\n /**\n * Configure XSRF protection.\n * @param options An object that can specify either or both\n * cookie name or header name.\n * - Cookie name default is `XSRF-TOKEN`.\n * - Header name default is `X-XSRF-TOKEN`.\n *\n */\n static withOptions(options = {}) {\n return {\n ngModule: HttpClientXsrfModule,\n providers: withXsrfConfiguration(options).ɵproviders,\n };\n }\n}\nHttpClientXsrfModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: HttpClientXsrfModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nHttpClientXsrfModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"15.2.9\", ngImport: i0, type: HttpClientXsrfModule });\nHttpClientXsrfModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: HttpClientXsrfModule, providers: [\n HttpXsrfInterceptor,\n { provide: HTTP_INTERCEPTORS, useExisting: HttpXsrfInterceptor, multi: true },\n { provide: HttpXsrfTokenExtractor, useClass: HttpXsrfCookieExtractor },\n withXsrfConfiguration({\n cookieName: XSRF_DEFAULT_COOKIE_NAME,\n headerName: XSRF_DEFAULT_HEADER_NAME,\n }).ɵproviders,\n { provide: XSRF_ENABLED, useValue: true },\n ] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: HttpClientXsrfModule, decorators: [{\n type: NgModule,\n args: [{\n providers: [\n HttpXsrfInterceptor,\n { provide: HTTP_INTERCEPTORS, useExisting: HttpXsrfInterceptor, multi: true },\n { provide: HttpXsrfTokenExtractor, useClass: HttpXsrfCookieExtractor },\n withXsrfConfiguration({\n cookieName: XSRF_DEFAULT_COOKIE_NAME,\n headerName: XSRF_DEFAULT_HEADER_NAME,\n }).ɵproviders,\n { provide: XSRF_ENABLED, useValue: true },\n ],\n }]\n }] });\n/**\n * Configures the [dependency injector](guide/glossary#injector) for `HttpClient`\n * with supporting services for XSRF. Automatically imported by `HttpClientModule`.\n *\n * You can add interceptors to the chain behind `HttpClient` by binding them to the\n * multiprovider for built-in [DI token](guide/glossary#di-token) `HTTP_INTERCEPTORS`.\n *\n * @publicApi\n */\nclass HttpClientModule {\n}\nHttpClientModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: HttpClientModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nHttpClientModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"15.2.9\", ngImport: i0, type: HttpClientModule });\nHttpClientModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: HttpClientModule, providers: [\n provideHttpClient(withInterceptorsFromDi()),\n ] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: HttpClientModule, decorators: [{\n type: NgModule,\n args: [{\n /**\n * Configures the [dependency injector](guide/glossary#injector) where it is imported\n * with supporting services for HTTP communications.\n */\n providers: [\n provideHttpClient(withInterceptorsFromDi()),\n ],\n }]\n }] });\n/**\n * Configures the [dependency injector](guide/glossary#injector) for `HttpClient`\n * with supporting services for JSONP.\n * Without this module, Jsonp requests reach the backend\n * with method JSONP, where they are rejected.\n *\n * @publicApi\n */\nclass HttpClientJsonpModule {\n}\nHttpClientJsonpModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: HttpClientJsonpModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nHttpClientJsonpModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"15.2.9\", ngImport: i0, type: HttpClientJsonpModule });\nHttpClientJsonpModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: HttpClientJsonpModule, providers: [\n withJsonpSupport().ɵproviders,\n ] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: HttpClientJsonpModule, decorators: [{\n type: NgModule,\n args: [{\n providers: [\n withJsonpSupport().ɵproviders,\n ],\n }]\n }] });\n\n/**\n * A wrapper around the `XMLHttpRequest` constructor.\n *\n * @publicApi\n * @see `XhrFactory`\n * @deprecated\n * `XhrFactory` has moved, please import `XhrFactory` from `@angular/common` instead.\n */\nconst XhrFactory = XhrFactory$1;\n\n// This file is not used to build this module. It is only used during editing\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { HTTP_INTERCEPTORS, HttpBackend, HttpClient, HttpClientJsonpModule, HttpClientModule, HttpClientXsrfModule, HttpContext, HttpContextToken, HttpErrorResponse, HttpEventType, HttpFeatureKind, HttpHandler, HttpHeaderResponse, HttpHeaders, HttpParams, HttpRequest, HttpResponse, HttpResponseBase, HttpUrlEncodingCodec, HttpXhrBackend, HttpXsrfTokenExtractor, JsonpClientBackend, JsonpInterceptor, XhrFactory, provideHttpClient, withInterceptors, withInterceptorsFromDi, withJsonpSupport, withNoXsrfProtection, withRequestsMadeViaParent, withXsrfConfiguration, HttpInterceptorHandler as ɵHttpInterceptingHandler, HttpInterceptorHandler as ɵHttpInterceptorHandler };\n","import { Observable } from '../Observable';\nexport const EMPTY = new Observable(subscriber => subscriber.complete());\nexport function empty(scheduler) {\n return scheduler ? emptyScheduled(scheduler) : EMPTY;\n}\nfunction emptyScheduled(scheduler) {\n return new Observable(subscriber => scheduler.schedule(() => subscriber.complete()));\n}\n","import { Observable } from '../Observable';\nimport { from } from './from';\nimport { empty } from './empty';\nexport function defer(observableFactory) {\n return new Observable(subscriber => {\n let input;\n try {\n input = observableFactory();\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n const source = input ? from(input) : empty();\n return source.subscribe(subscriber);\n });\n}\n","import { Subject } from '../Subject';\nimport { SimpleOuterSubscriber, innerSubscribe, SimpleInnerSubscriber } from '../innerSubscribe';\nexport function repeatWhen(notifier) {\n return (source) => source.lift(new RepeatWhenOperator(notifier));\n}\nclass RepeatWhenOperator {\n constructor(notifier) {\n this.notifier = notifier;\n }\n call(subscriber, source) {\n return source.subscribe(new RepeatWhenSubscriber(subscriber, this.notifier, source));\n }\n}\nclass RepeatWhenSubscriber extends SimpleOuterSubscriber {\n constructor(destination, notifier, source) {\n super(destination);\n this.notifier = notifier;\n this.source = source;\n this.sourceIsBeingSubscribedTo = true;\n }\n notifyNext() {\n this.sourceIsBeingSubscribedTo = true;\n this.source.subscribe(this);\n }\n notifyComplete() {\n if (this.sourceIsBeingSubscribedTo === false) {\n return super.complete();\n }\n }\n complete() {\n this.sourceIsBeingSubscribedTo = false;\n if (!this.isStopped) {\n if (!this.retries) {\n this.subscribeToRetries();\n }\n if (!this.retriesSubscription || this.retriesSubscription.closed) {\n return super.complete();\n }\n this._unsubscribeAndRecycle();\n this.notifications.next(undefined);\n }\n }\n _unsubscribe() {\n const { notifications, retriesSubscription } = this;\n if (notifications) {\n notifications.unsubscribe();\n this.notifications = undefined;\n }\n if (retriesSubscription) {\n retriesSubscription.unsubscribe();\n this.retriesSubscription = undefined;\n }\n this.retries = undefined;\n }\n _unsubscribeAndRecycle() {\n const { _unsubscribe } = this;\n this._unsubscribe = null;\n super._unsubscribeAndRecycle();\n this._unsubscribe = _unsubscribe;\n return this;\n }\n subscribeToRetries() {\n this.notifications = new Subject();\n let retries;\n try {\n const { notifier } = this;\n retries = notifier(this.notifications);\n }\n catch (e) {\n return super.complete();\n }\n this.retries = retries;\n this.retriesSubscription = innerSubscribe(retries, new SimpleInnerSubscriber(this));\n }\n}\n","import { Subscription } from '../Subscription';\nexport class Action extends Subscription {\n constructor(scheduler, work) {\n super();\n }\n schedule(state, delay = 0) {\n return this;\n }\n}\n","export class Scheduler {\n constructor(SchedulerAction, now = Scheduler.now) {\n this.SchedulerAction = SchedulerAction;\n this.now = now;\n }\n schedule(work, delay = 0, state) {\n return new this.SchedulerAction(this, work).schedule(state, delay);\n }\n}\nScheduler.now = () => Date.now();\n","import { Scheduler } from '../Scheduler';\nexport class AsyncScheduler extends Scheduler {\n constructor(SchedulerAction, now = Scheduler.now) {\n super(SchedulerAction, () => {\n if (AsyncScheduler.delegate && AsyncScheduler.delegate !== this) {\n return AsyncScheduler.delegate.now();\n }\n else {\n return now();\n }\n });\n this.actions = [];\n this.active = false;\n this.scheduled = undefined;\n }\n schedule(work, delay = 0, state) {\n if (AsyncScheduler.delegate && AsyncScheduler.delegate !== this) {\n return AsyncScheduler.delegate.schedule(work, delay, state);\n }\n else {\n return super.schedule(work, delay, state);\n }\n }\n flush(action) {\n const { actions } = this;\n if (this.active) {\n actions.push(action);\n return;\n }\n let error;\n this.active = true;\n do {\n if (error = action.execute(action.state, action.delay)) {\n break;\n }\n } while (action = actions.shift());\n this.active = false;\n if (error) {\n while (action = actions.shift()) {\n action.unsubscribe();\n }\n throw error;\n }\n }\n}\n","import { AsyncAction } from './AsyncAction';\nimport { AsyncScheduler } from './AsyncScheduler';\nexport const asyncScheduler = new AsyncScheduler(AsyncAction);\nexport const async = asyncScheduler;\n","import { Action } from './Action';\nexport class AsyncAction extends Action {\n constructor(scheduler, work) {\n super(scheduler, work);\n this.scheduler = scheduler;\n this.work = work;\n this.pending = false;\n }\n schedule(state, delay = 0) {\n if (this.closed) {\n return this;\n }\n this.state = state;\n const id = this.id;\n const scheduler = this.scheduler;\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, delay);\n }\n this.pending = true;\n this.delay = delay;\n this.id = this.id || this.requestAsyncId(scheduler, this.id, delay);\n return this;\n }\n requestAsyncId(scheduler, id, delay = 0) {\n return setInterval(scheduler.flush.bind(scheduler, this), delay);\n }\n recycleAsyncId(scheduler, id, delay = 0) {\n if (delay !== null && this.delay === delay && this.pending === false) {\n return id;\n }\n clearInterval(id);\n return undefined;\n }\n execute(state, delay) {\n if (this.closed) {\n return new Error('executing a cancelled action');\n }\n this.pending = false;\n const error = this._execute(state, delay);\n if (error) {\n return error;\n }\n else if (this.pending === false && this.id != null) {\n this.id = this.recycleAsyncId(this.scheduler, this.id, null);\n }\n }\n _execute(state, delay) {\n let errored = false;\n let errorValue = undefined;\n try {\n this.work(state);\n }\n catch (e) {\n errored = true;\n errorValue = !!e && e || new Error(e);\n }\n if (errored) {\n this.unsubscribe();\n return errorValue;\n }\n }\n _unsubscribe() {\n const id = this.id;\n const scheduler = this.scheduler;\n const actions = scheduler.actions;\n const index = actions.indexOf(this);\n this.work = null;\n this.state = null;\n this.pending = false;\n this.scheduler = null;\n if (index !== -1) {\n actions.splice(index, 1);\n }\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, null);\n }\n this.delay = null;\n }\n}\n","import { Observable } from '../Observable';\nexport function throwError(error, scheduler) {\n if (!scheduler) {\n return new Observable(subscriber => subscriber.error(error));\n }\n else {\n return new Observable(subscriber => scheduler.schedule(dispatch, 0, { error, subscriber }));\n }\n}\nfunction dispatch({ error, subscriber }) {\n subscriber.error(error);\n}\n","import { empty } from './observable/empty';\nimport { of } from './observable/of';\nimport { throwError } from './observable/throwError';\nexport var NotificationKind;\n(function (NotificationKind) {\n NotificationKind[\"NEXT\"] = \"N\";\n NotificationKind[\"ERROR\"] = \"E\";\n NotificationKind[\"COMPLETE\"] = \"C\";\n})(NotificationKind || (NotificationKind = {}));\nexport class Notification {\n constructor(kind, value, error) {\n this.kind = kind;\n this.value = value;\n this.error = error;\n this.hasValue = kind === 'N';\n }\n observe(observer) {\n switch (this.kind) {\n case 'N':\n return observer.next && observer.next(this.value);\n case 'E':\n return observer.error && observer.error(this.error);\n case 'C':\n return observer.complete && observer.complete();\n }\n }\n do(next, error, complete) {\n const kind = this.kind;\n switch (kind) {\n case 'N':\n return next && next(this.value);\n case 'E':\n return error && error(this.error);\n case 'C':\n return complete && complete();\n }\n }\n accept(nextOrObserver, error, complete) {\n if (nextOrObserver && typeof nextOrObserver.next === 'function') {\n return this.observe(nextOrObserver);\n }\n else {\n return this.do(nextOrObserver, error, complete);\n }\n }\n toObservable() {\n const kind = this.kind;\n switch (kind) {\n case 'N':\n return of(this.value);\n case 'E':\n return throwError(this.error);\n case 'C':\n return empty();\n }\n throw new Error('unexpected notification kind value');\n }\n static createNext(value) {\n if (typeof value !== 'undefined') {\n return new Notification('N', value);\n }\n return Notification.undefinedValueNotification;\n }\n static createError(err) {\n return new Notification('E', undefined, err);\n }\n static createComplete() {\n return Notification.completeNotification;\n }\n}\nNotification.completeNotification = new Notification('C');\nNotification.undefinedValueNotification = new Notification('N', undefined);\n","import { async } from '../scheduler/async';\nimport { isDate } from '../util/isDate';\nimport { Subscriber } from '../Subscriber';\nimport { Notification } from '../Notification';\nexport function delay(delay, scheduler = async) {\n const absoluteDelay = isDate(delay);\n const delayFor = absoluteDelay ? (+delay - scheduler.now()) : Math.abs(delay);\n return (source) => source.lift(new DelayOperator(delayFor, scheduler));\n}\nclass DelayOperator {\n constructor(delay, scheduler) {\n this.delay = delay;\n this.scheduler = scheduler;\n }\n call(subscriber, source) {\n return source.subscribe(new DelaySubscriber(subscriber, this.delay, this.scheduler));\n }\n}\nclass DelaySubscriber extends Subscriber {\n constructor(destination, delay, scheduler) {\n super(destination);\n this.delay = delay;\n this.scheduler = scheduler;\n this.queue = [];\n this.active = false;\n this.errored = false;\n }\n static dispatch(state) {\n const source = state.source;\n const queue = source.queue;\n const scheduler = state.scheduler;\n const destination = state.destination;\n while (queue.length > 0 && (queue[0].time - scheduler.now()) <= 0) {\n queue.shift().notification.observe(destination);\n }\n if (queue.length > 0) {\n const delay = Math.max(0, queue[0].time - scheduler.now());\n this.schedule(state, delay);\n }\n else {\n this.unsubscribe();\n source.active = false;\n }\n }\n _schedule(scheduler) {\n this.active = true;\n const destination = this.destination;\n destination.add(scheduler.schedule(DelaySubscriber.dispatch, this.delay, {\n source: this, destination: this.destination, scheduler: scheduler\n }));\n }\n scheduleNotification(notification) {\n if (this.errored === true) {\n return;\n }\n const scheduler = this.scheduler;\n const message = new DelayMessage(scheduler.now() + this.delay, notification);\n this.queue.push(message);\n if (this.active === false) {\n this._schedule(scheduler);\n }\n }\n _next(value) {\n this.scheduleNotification(Notification.createNext(value));\n }\n _error(err) {\n this.errored = true;\n this.queue = [];\n this.destination.error(err);\n this.unsubscribe();\n }\n _complete() {\n this.scheduleNotification(Notification.createComplete());\n this.unsubscribe();\n }\n}\nclass DelayMessage {\n constructor(time, notification) {\n this.time = time;\n this.notification = notification;\n }\n}\n","import { Subscriber } from '../Subscriber';\nexport function retry(count = -1) {\n return (source) => source.lift(new RetryOperator(count, source));\n}\nclass RetryOperator {\n constructor(count, source) {\n this.count = count;\n this.source = source;\n }\n call(subscriber, source) {\n return source.subscribe(new RetrySubscriber(subscriber, this.count, this.source));\n }\n}\nclass RetrySubscriber extends Subscriber {\n constructor(destination, count, source) {\n super(destination);\n this.count = count;\n this.source = source;\n }\n error(err) {\n if (!this.isStopped) {\n const { source, count } = this;\n if (count === 0) {\n return super.error(err);\n }\n else if (count > -1) {\n this.count = count - 1;\n }\n source.subscribe(this._unsubscribeAndRecycle());\n }\n }\n}\n","import { SimpleOuterSubscriber, SimpleInnerSubscriber, innerSubscribe } from '../innerSubscribe';\nexport function catchError(selector) {\n return function catchErrorOperatorFunction(source) {\n const operator = new CatchOperator(selector);\n const caught = source.lift(operator);\n return (operator.caught = caught);\n };\n}\nclass CatchOperator {\n constructor(selector) {\n this.selector = selector;\n }\n call(subscriber, source) {\n return source.subscribe(new CatchSubscriber(subscriber, this.selector, this.caught));\n }\n}\nclass CatchSubscriber extends SimpleOuterSubscriber {\n constructor(destination, selector, caught) {\n super(destination);\n this.selector = selector;\n this.caught = caught;\n }\n error(err) {\n if (!this.isStopped) {\n let result;\n try {\n result = this.selector(err, this.caught);\n }\n catch (err2) {\n super.error(err2);\n return;\n }\n this._unsubscribeAndRecycle();\n const innerSubscriber = new SimpleInnerSubscriber(this);\n this.add(innerSubscriber);\n const innerSubscription = innerSubscribe(result, innerSubscriber);\n if (innerSubscription !== innerSubscriber) {\n this.add(innerSubscription);\n }\n }\n }\n}\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { defer, of } from 'rxjs';\r\nimport { catchError, delay, repeatWhen, retry } from 'rxjs/operators';\r\nimport { Injectable } from '@angular/core';\r\nimport { environment } from '../../environments/environment';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class LatestUserAccessService {\r\n // the time between the observable checks if the request can be sent\r\n private readonly OBSERVABLE_DELAY = 30000;\r\n\r\n // the actual delay between requests\r\n private readonly POLL_DELAY = 60000;\r\n\r\n constructor(private http: HttpClient) {}\r\n\r\n beginRegisteringAccess() {\r\n defer(() => {\r\n return this.registerAccess();\r\n })\r\n .pipe(\r\n repeatWhen(notifications => notifications.pipe(delay(this.OBSERVABLE_DELAY))),\r\n retry(),\r\n catchError(() => {\r\n return of(undefined);\r\n })\r\n )\r\n .subscribe();\r\n }\r\n\r\n registerAccess() {\r\n const serializedUser = localStorage.getItem('user');\r\n const username = JSON.parse(serializedUser || '{}').userName;\r\n\r\n if (!username) {\r\n // dummy observable, do nothing\r\n return of(undefined);\r\n }\r\n\r\n // use local storage so it will prevent multiple tabs from sending the request\r\n const currentTime = new Date().getTime();\r\n const latestAccessTime = this.getLatestAccessTime();\r\n\r\n // wait until some time passes between requests\r\n if (currentTime - latestAccessTime < this.POLL_DELAY) {\r\n // dummy observable, do nothing\r\n return of(undefined);\r\n }\r\n\r\n this.storeLatestAccessTime();\r\n return this.http.post(`${environment.apiBaseUrl}/latest-access`, undefined, { headers: this.getHeaders(username) });\r\n }\r\n\r\n getLatestAccesses() {\r\n return this.http.get(`${environment.apiBaseUrl}/latest-access`);\r\n }\r\n\r\n private storeLatestAccessTime() {\r\n localStorage.setItem('latestAccessTime', new Date().getTime().toString());\r\n }\r\n\r\n private getLatestAccessTime(): number {\r\n const latestAccessTime = localStorage.getItem('latestAccessTime');\r\n\r\n if (!latestAccessTime) {\r\n return 0;\r\n }\r\n\r\n return +latestAccessTime;\r\n }\r\n\r\n private getHeaders(username) {\r\n return new HttpHeaders({ 'Content-Type': 'application/json; charset=utf-8', Username: username });\r\n }\r\n}\r\n","export function isDate(value) {\n return value instanceof Date && !isNaN(+value);\n}\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { environment } from '../../environments/environment';\r\nimport { User } from '../shared/user';\r\n\r\n@Injectable()\r\nexport class UserService {\r\n private currentUser: User;\r\n\r\n constructor(private http: HttpClient) {\r\n this.setCurrentUser();\r\n }\r\n\r\n signUp(user: any) {\r\n return this.http.post(`${environment.accountUrl}/signup`, user);\r\n }\r\n\r\n getUser(id?) {\r\n if (!id) {\r\n id = this.getCurrentUserId();\r\n }\r\n return this.http.get<User>(`${environment.usersUrl}/${id}`);\r\n }\r\n\r\n getCurrentUser() {\r\n const currentUser = localStorage.getItem('user');\r\n if (currentUser) {\r\n const u = JSON.parse(currentUser);\r\n if (!this.currentUser) {\r\n this.currentUser = u;\r\n }\r\n return u;\r\n }\r\n return undefined;\r\n }\r\n\r\n getCurrentUserId() {\r\n const currentUser = localStorage.getItem('currentUser');\r\n if (currentUser) {\r\n const u = JSON.parse(currentUser);\r\n return u.id;\r\n }\r\n return undefined;\r\n }\r\n\r\n getCurrentUserFullName() {\r\n if (this.getCurrentUser()) {\r\n return `${this.currentUser.firstName} ${this.currentUser.lastName}`;\r\n }\r\n return '';\r\n }\r\n\r\n private setCurrentUser() {\r\n const id = this.getCurrentUserId();\r\n\r\n if (id) {\r\n this.getUser(id).subscribe(\r\n u => {\r\n this.currentUser = u;\r\n },\r\n () => {\r\n this.currentUser = undefined;\r\n }\r\n );\r\n }\r\n }\r\n\r\n get currentUsername(): string {\r\n if (this.getCurrentUser()) {\r\n return this.getCurrentUser().userName;\r\n }\r\n\r\n return this.getCurrentUserId();\r\n }\r\n}\r\n","import { Subject } from './Subject';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nexport class BehaviorSubject extends Subject {\n constructor(_value) {\n super();\n this._value = _value;\n }\n get value() {\n return this.getValue();\n }\n _subscribe(subscriber) {\n const subscription = super._subscribe(subscriber);\n if (subscription && !subscription.closed) {\n subscriber.next(this._value);\n }\n return subscription;\n }\n getValue() {\n if (this.hasError) {\n throw this.thrownError;\n }\n else if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n else {\n return this._value;\n }\n }\n next(value) {\n super.next(this._value = value);\n }\n}\n","const EmptyErrorImpl = (() => {\n function EmptyErrorImpl() {\n Error.call(this);\n this.message = 'no elements in sequence';\n this.name = 'EmptyError';\n return this;\n }\n EmptyErrorImpl.prototype = Object.create(Error.prototype);\n return EmptyErrorImpl;\n})();\nexport const EmptyError = EmptyErrorImpl;\n","import { Subscriber } from './Subscriber';\nexport class OuterSubscriber extends Subscriber {\n notifyNext(outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.destination.next(innerValue);\n }\n notifyError(error, innerSub) {\n this.destination.error(error);\n }\n notifyComplete(innerSub) {\n this.destination.complete();\n }\n}\n","import { Subscriber } from './Subscriber';\nexport class InnerSubscriber extends Subscriber {\n constructor(parent, outerValue, outerIndex) {\n super();\n this.parent = parent;\n this.outerValue = outerValue;\n this.outerIndex = outerIndex;\n this.index = 0;\n }\n _next(value) {\n this.parent.notifyNext(this.outerValue, value, this.outerIndex, this.index++, this);\n }\n _error(error) {\n this.parent.notifyError(error, this);\n this.unsubscribe();\n }\n _complete() {\n this.parent.notifyComplete(this);\n this.unsubscribe();\n }\n}\n","import { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeTo } from './subscribeTo';\nimport { Observable } from '../Observable';\nexport function subscribeToResult(outerSubscriber, result, outerValue, outerIndex, innerSubscriber = new InnerSubscriber(outerSubscriber, outerValue, outerIndex)) {\n if (innerSubscriber.closed) {\n return undefined;\n }\n if (result instanceof Observable) {\n return result.subscribe(innerSubscriber);\n }\n return subscribeTo(result)(innerSubscriber);\n}\n","import { isScheduler } from '../util/isScheduler';\nimport { isArray } from '../util/isArray';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { fromArray } from './fromArray';\nconst NONE = {};\nexport function combineLatest(...observables) {\n let resultSelector = undefined;\n let scheduler = undefined;\n if (isScheduler(observables[observables.length - 1])) {\n scheduler = observables.pop();\n }\n if (typeof observables[observables.length - 1] === 'function') {\n resultSelector = observables.pop();\n }\n if (observables.length === 1 && isArray(observables[0])) {\n observables = observables[0];\n }\n return fromArray(observables, scheduler).lift(new CombineLatestOperator(resultSelector));\n}\nexport class CombineLatestOperator {\n constructor(resultSelector) {\n this.resultSelector = resultSelector;\n }\n call(subscriber, source) {\n return source.subscribe(new CombineLatestSubscriber(subscriber, this.resultSelector));\n }\n}\nexport class CombineLatestSubscriber extends OuterSubscriber {\n constructor(destination, resultSelector) {\n super(destination);\n this.resultSelector = resultSelector;\n this.active = 0;\n this.values = [];\n this.observables = [];\n }\n _next(observable) {\n this.values.push(NONE);\n this.observables.push(observable);\n }\n _complete() {\n const observables = this.observables;\n const len = observables.length;\n if (len === 0) {\n this.destination.complete();\n }\n else {\n this.active = len;\n this.toRespond = len;\n for (let i = 0; i < len; i++) {\n const observable = observables[i];\n this.add(subscribeToResult(this, observable, undefined, i));\n }\n }\n }\n notifyComplete(unused) {\n if ((this.active -= 1) === 0) {\n this.destination.complete();\n }\n }\n notifyNext(_outerValue, innerValue, outerIndex) {\n const values = this.values;\n const oldVal = values[outerIndex];\n const toRespond = !this.toRespond\n ? 0\n : oldVal === NONE ? --this.toRespond : this.toRespond;\n values[outerIndex] = innerValue;\n if (toRespond === 0) {\n if (this.resultSelector) {\n this._tryResultSelector(values);\n }\n else {\n this.destination.next(values.slice());\n }\n }\n }\n _tryResultSelector(values) {\n let result;\n try {\n result = this.resultSelector.apply(this, values);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(result);\n }\n}\n","import { of } from './of';\nimport { concatAll } from '../operators/concatAll';\nexport function concat(...observables) {\n return concatAll()(of(...observables));\n}\n","import { mergeAll } from './mergeAll';\nexport function concatAll() {\n return mergeAll(1);\n}\n","import { map } from './map';\nimport { from } from '../observable/from';\nimport { SimpleOuterSubscriber, SimpleInnerSubscriber, innerSubscribe } from '../innerSubscribe';\nexport function switchMap(project, resultSelector) {\n if (typeof resultSelector === 'function') {\n return (source) => source.pipe(switchMap((a, i) => from(project(a, i)).pipe(map((b, ii) => resultSelector(a, b, i, ii)))));\n }\n return (source) => source.lift(new SwitchMapOperator(project));\n}\nclass SwitchMapOperator {\n constructor(project) {\n this.project = project;\n }\n call(subscriber, source) {\n return source.subscribe(new SwitchMapSubscriber(subscriber, this.project));\n }\n}\nclass SwitchMapSubscriber extends SimpleOuterSubscriber {\n constructor(destination, project) {\n super(destination);\n this.project = project;\n this.index = 0;\n }\n _next(value) {\n let result;\n const index = this.index++;\n try {\n result = this.project(value, index);\n }\n catch (error) {\n this.destination.error(error);\n return;\n }\n this._innerSub(result);\n }\n _innerSub(result) {\n const innerSubscription = this.innerSubscription;\n if (innerSubscription) {\n innerSubscription.unsubscribe();\n }\n const innerSubscriber = new SimpleInnerSubscriber(this);\n const destination = this.destination;\n destination.add(innerSubscriber);\n this.innerSubscription = innerSubscribe(result, innerSubscriber);\n if (this.innerSubscription !== innerSubscriber) {\n destination.add(this.innerSubscription);\n }\n }\n _complete() {\n const { innerSubscription } = this;\n if (!innerSubscription || innerSubscription.closed) {\n super._complete();\n }\n this.unsubscribe();\n }\n _unsubscribe() {\n this.innerSubscription = undefined;\n }\n notifyComplete() {\n this.innerSubscription = undefined;\n if (this.isStopped) {\n super._complete();\n }\n }\n notifyNext(innerValue) {\n this.destination.next(innerValue);\n }\n}\n","const ArgumentOutOfRangeErrorImpl = (() => {\n function ArgumentOutOfRangeErrorImpl() {\n Error.call(this);\n this.message = 'argument out of range';\n this.name = 'ArgumentOutOfRangeError';\n return this;\n }\n ArgumentOutOfRangeErrorImpl.prototype = Object.create(Error.prototype);\n return ArgumentOutOfRangeErrorImpl;\n})();\nexport const ArgumentOutOfRangeError = ArgumentOutOfRangeErrorImpl;\n","import { Subscriber } from '../Subscriber';\nimport { ArgumentOutOfRangeError } from '../util/ArgumentOutOfRangeError';\nimport { empty } from '../observable/empty';\nexport function take(count) {\n return (source) => {\n if (count === 0) {\n return empty();\n }\n else {\n return source.lift(new TakeOperator(count));\n }\n };\n}\nclass TakeOperator {\n constructor(total) {\n this.total = total;\n if (this.total < 0) {\n throw new ArgumentOutOfRangeError;\n }\n }\n call(subscriber, source) {\n return source.subscribe(new TakeSubscriber(subscriber, this.total));\n }\n}\nclass TakeSubscriber extends Subscriber {\n constructor(destination, total) {\n super(destination);\n this.total = total;\n this.count = 0;\n }\n _next(value) {\n const total = this.total;\n const count = ++this.count;\n if (count <= total) {\n this.destination.next(value);\n if (count === total) {\n this.destination.complete();\n this.unsubscribe();\n }\n }\n }\n}\n","import { Subscriber } from '../Subscriber';\nexport function defaultIfEmpty(defaultValue = null) {\n return (source) => source.lift(new DefaultIfEmptyOperator(defaultValue));\n}\nclass DefaultIfEmptyOperator {\n constructor(defaultValue) {\n this.defaultValue = defaultValue;\n }\n call(subscriber, source) {\n return source.subscribe(new DefaultIfEmptySubscriber(subscriber, this.defaultValue));\n }\n}\nclass DefaultIfEmptySubscriber extends Subscriber {\n constructor(destination, defaultValue) {\n super(destination);\n this.defaultValue = defaultValue;\n this.isEmpty = true;\n }\n _next(value) {\n this.isEmpty = false;\n this.destination.next(value);\n }\n _complete() {\n if (this.isEmpty) {\n this.destination.next(this.defaultValue);\n }\n this.destination.complete();\n }\n}\n","import { EmptyError } from '../util/EmptyError';\nimport { Subscriber } from '../Subscriber';\nexport function throwIfEmpty(errorFactory = defaultErrorFactory) {\n return (source) => {\n return source.lift(new ThrowIfEmptyOperator(errorFactory));\n };\n}\nclass ThrowIfEmptyOperator {\n constructor(errorFactory) {\n this.errorFactory = errorFactory;\n }\n call(subscriber, source) {\n return source.subscribe(new ThrowIfEmptySubscriber(subscriber, this.errorFactory));\n }\n}\nclass ThrowIfEmptySubscriber extends Subscriber {\n constructor(destination, errorFactory) {\n super(destination);\n this.errorFactory = errorFactory;\n this.hasValue = false;\n }\n _next(value) {\n this.hasValue = true;\n this.destination.next(value);\n }\n _complete() {\n if (!this.hasValue) {\n let err;\n try {\n err = this.errorFactory();\n }\n catch (e) {\n err = e;\n }\n this.destination.error(err);\n }\n else {\n return this.destination.complete();\n }\n }\n}\nfunction defaultErrorFactory() {\n return new EmptyError();\n}\n","import { EmptyError } from '../util/EmptyError';\nimport { filter } from './filter';\nimport { take } from './take';\nimport { defaultIfEmpty } from './defaultIfEmpty';\nimport { throwIfEmpty } from './throwIfEmpty';\nimport { identity } from '../util/identity';\nexport function first(predicate, defaultValue) {\n const hasDefaultValue = arguments.length >= 2;\n return (source) => source.pipe(predicate ? filter((v, i) => predicate(v, i, source)) : identity, take(1), hasDefaultValue ? defaultIfEmpty(defaultValue) : throwIfEmpty(() => new EmptyError()));\n}\n","export function noop() { }\n","import { Subscriber } from '../Subscriber';\nimport { noop } from '../util/noop';\nimport { isFunction } from '../util/isFunction';\nexport function tap(nextOrObserver, error, complete) {\n return function tapOperatorFunction(source) {\n return source.lift(new DoOperator(nextOrObserver, error, complete));\n };\n}\nclass DoOperator {\n constructor(nextOrObserver, error, complete) {\n this.nextOrObserver = nextOrObserver;\n this.error = error;\n this.complete = complete;\n }\n call(subscriber, source) {\n return source.subscribe(new TapSubscriber(subscriber, this.nextOrObserver, this.error, this.complete));\n }\n}\nclass TapSubscriber extends Subscriber {\n constructor(destination, observerOrNext, error, complete) {\n super(destination);\n this._tapNext = noop;\n this._tapError = noop;\n this._tapComplete = noop;\n this._tapError = error || noop;\n this._tapComplete = complete || noop;\n if (isFunction(observerOrNext)) {\n this._context = this;\n this._tapNext = observerOrNext;\n }\n else if (observerOrNext) {\n this._context = observerOrNext;\n this._tapNext = observerOrNext.next || noop;\n this._tapError = observerOrNext.error || noop;\n this._tapComplete = observerOrNext.complete || noop;\n }\n }\n _next(value) {\n try {\n this._tapNext.call(this._context, value);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(value);\n }\n _error(err) {\n try {\n this._tapError.call(this._context, err);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.error(err);\n }\n _complete() {\n try {\n this._tapComplete.call(this._context);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n return this.destination.complete();\n }\n}\n","import { Subscriber } from '../Subscriber';\nexport function scan(accumulator, seed) {\n let hasSeed = false;\n if (arguments.length >= 2) {\n hasSeed = true;\n }\n return function scanOperatorFunction(source) {\n return source.lift(new ScanOperator(accumulator, seed, hasSeed));\n };\n}\nclass ScanOperator {\n constructor(accumulator, seed, hasSeed = false) {\n this.accumulator = accumulator;\n this.seed = seed;\n this.hasSeed = hasSeed;\n }\n call(subscriber, source) {\n return source.subscribe(new ScanSubscriber(subscriber, this.accumulator, this.seed, this.hasSeed));\n }\n}\nclass ScanSubscriber extends Subscriber {\n constructor(destination, accumulator, _seed, hasSeed) {\n super(destination);\n this.accumulator = accumulator;\n this._seed = _seed;\n this.hasSeed = hasSeed;\n this.index = 0;\n }\n get seed() {\n return this._seed;\n }\n set seed(value) {\n this.hasSeed = true;\n this._seed = value;\n }\n _next(value) {\n if (!this.hasSeed) {\n this.seed = value;\n this.destination.next(value);\n }\n else {\n return this._tryNext(value);\n }\n }\n _tryNext(value) {\n const index = this.index++;\n let result;\n try {\n result = this.accumulator(this.seed, value, index);\n }\n catch (err) {\n this.destination.error(err);\n }\n this.seed = result;\n this.destination.next(result);\n }\n}\n","import { Subscriber } from '../Subscriber';\nimport { ArgumentOutOfRangeError } from '../util/ArgumentOutOfRangeError';\nimport { empty } from '../observable/empty';\nexport function takeLast(count) {\n return function takeLastOperatorFunction(source) {\n if (count === 0) {\n return empty();\n }\n else {\n return source.lift(new TakeLastOperator(count));\n }\n };\n}\nclass TakeLastOperator {\n constructor(total) {\n this.total = total;\n if (this.total < 0) {\n throw new ArgumentOutOfRangeError;\n }\n }\n call(subscriber, source) {\n return source.subscribe(new TakeLastSubscriber(subscriber, this.total));\n }\n}\nclass TakeLastSubscriber extends Subscriber {\n constructor(destination, total) {\n super(destination);\n this.total = total;\n this.ring = new Array();\n this.count = 0;\n }\n _next(value) {\n const ring = this.ring;\n const total = this.total;\n const count = this.count++;\n if (ring.length < total) {\n ring.push(value);\n }\n else {\n const index = count % total;\n ring[index] = value;\n }\n }\n _complete() {\n const destination = this.destination;\n let count = this.count;\n if (count > 0) {\n const total = this.count >= this.total ? this.total : this.count;\n const ring = this.ring;\n for (let i = 0; i < total; i++) {\n const idx = (count++) % total;\n destination.next(ring[idx]);\n }\n }\n destination.complete();\n }\n}\n","import { EmptyError } from '../util/EmptyError';\nimport { filter } from './filter';\nimport { takeLast } from './takeLast';\nimport { throwIfEmpty } from './throwIfEmpty';\nimport { defaultIfEmpty } from './defaultIfEmpty';\nimport { identity } from '../util/identity';\nexport function last(predicate, defaultValue) {\n const hasDefaultValue = arguments.length >= 2;\n return (source) => source.pipe(predicate ? filter((v, i) => predicate(v, i, source)) : identity, takeLast(1), hasDefaultValue ? defaultIfEmpty(defaultValue) : throwIfEmpty(() => new EmptyError()));\n}\n","import { Subscriber } from '../Subscriber';\nexport function takeWhile(predicate, inclusive = false) {\n return (source) => source.lift(new TakeWhileOperator(predicate, inclusive));\n}\nclass TakeWhileOperator {\n constructor(predicate, inclusive) {\n this.predicate = predicate;\n this.inclusive = inclusive;\n }\n call(subscriber, source) {\n return source.subscribe(new TakeWhileSubscriber(subscriber, this.predicate, this.inclusive));\n }\n}\nclass TakeWhileSubscriber extends Subscriber {\n constructor(destination, predicate, inclusive) {\n super(destination);\n this.predicate = predicate;\n this.inclusive = inclusive;\n this.index = 0;\n }\n _next(value) {\n const destination = this.destination;\n let result;\n try {\n result = this.predicate(value, this.index++);\n }\n catch (err) {\n destination.error(err);\n return;\n }\n this.nextOrComplete(value, result);\n }\n nextOrComplete(value, predicateResult) {\n const destination = this.destination;\n if (Boolean(predicateResult)) {\n destination.next(value);\n }\n else {\n if (this.inclusive) {\n destination.next(value);\n }\n destination.complete();\n }\n }\n}\n","import { Subscriber } from '../Subscriber';\nexport function mapTo(value) {\n return (source) => source.lift(new MapToOperator(value));\n}\nclass MapToOperator {\n constructor(value) {\n this.value = value;\n }\n call(subscriber, source) {\n return source.subscribe(new MapToSubscriber(subscriber, this.value));\n }\n}\nclass MapToSubscriber extends Subscriber {\n constructor(destination, value) {\n super(destination);\n this.value = value;\n }\n _next(x) {\n this.destination.next(this.value);\n }\n}\n","import { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nexport function finalize(callback) {\n return (source) => source.lift(new FinallyOperator(callback));\n}\nclass FinallyOperator {\n constructor(callback) {\n this.callback = callback;\n }\n call(subscriber, source) {\n return source.subscribe(new FinallySubscriber(subscriber, this.callback));\n }\n}\nclass FinallySubscriber extends Subscriber {\n constructor(destination, callback) {\n super(destination);\n this.add(new Subscription(callback));\n }\n}\n","/**\n * @license Angular v15.2.9\n * (c) 2010-2022 Google LLC. https://angular.io/\n * License: MIT\n */\n\nimport * as i0 from '@angular/core';\nimport { ɵisObservable, ɵisPromise, ɵRuntimeError, Injectable, EventEmitter, inject, ViewContainerRef, ChangeDetectorRef, EnvironmentInjector, Directive, Input, Output, Component, createEnvironmentInjector, ɵisNgModule, isStandalone, ComponentFactoryResolver, ɵisInjectable, InjectionToken, Compiler, InjectFlags, NgModuleFactory, ɵConsole, NgZone, ɵcoerceToBoolean, ɵɵsanitizeUrlOrResourceUrl, Attribute, HostBinding, HostListener, Optional, ContentChildren, makeEnvironmentProviders, APP_BOOTSTRAP_LISTENER, ENVIRONMENT_INITIALIZER, Injector, ApplicationRef, APP_INITIALIZER, NgProbeToken, SkipSelf, NgModule, Inject, Version } from '@angular/core';\nimport { from, of, BehaviorSubject, EmptyError, combineLatest, concat, defer, pipe, throwError, Observable, EMPTY, ConnectableObservable, Subject } from 'rxjs';\nimport * as i3 from '@angular/common';\nimport { Location, ViewportScroller, LOCATION_INITIALIZED, LocationStrategy, HashLocationStrategy, PathLocationStrategy } from '@angular/common';\nimport { map, switchMap, take, startWith, filter, mergeMap, first, concatMap, tap, catchError, scan, last as last$1, takeWhile, defaultIfEmpty, takeLast, mapTo, finalize, refCount, mergeAll } from 'rxjs/operators';\nimport * as i1 from '@angular/platform-browser';\n\n/**\n * The primary routing outlet.\n *\n * @publicApi\n */\nconst PRIMARY_OUTLET = 'primary';\n/**\n * A private symbol used to store the value of `Route.title` inside the `Route.data` if it is a\n * static string or `Route.resolve` if anything else. This allows us to reuse the existing route\n * data/resolvers to support the title feature without new instrumentation in the `Router` pipeline.\n */\nconst RouteTitleKey = Symbol('RouteTitle');\nclass ParamsAsMap {\n constructor(params) {\n this.params = params || {};\n }\n has(name) {\n return Object.prototype.hasOwnProperty.call(this.params, name);\n }\n get(name) {\n if (this.has(name)) {\n const v = this.params[name];\n return Array.isArray(v) ? v[0] : v;\n }\n return null;\n }\n getAll(name) {\n if (this.has(name)) {\n const v = this.params[name];\n return Array.isArray(v) ? v : [v];\n }\n return [];\n }\n get keys() {\n return Object.keys(this.params);\n }\n}\n/**\n * Converts a `Params` instance to a `ParamMap`.\n * @param params The instance to convert.\n * @returns The new map instance.\n *\n * @publicApi\n */\nfunction convertToParamMap(params) {\n return new ParamsAsMap(params);\n}\n/**\n * Matches the route configuration (`route`) against the actual URL (`segments`).\n *\n * When no matcher is defined on a `Route`, this is the matcher used by the Router by default.\n *\n * @param segments The remaining unmatched segments in the current navigation\n * @param segmentGroup The current segment group being matched\n * @param route The `Route` to match against.\n *\n * @see UrlMatchResult\n * @see Route\n *\n * @returns The resulting match information or `null` if the `route` should not match.\n * @publicApi\n */\nfunction defaultUrlMatcher(segments, segmentGroup, route) {\n const parts = route.path.split('/');\n if (parts.length > segments.length) {\n // The actual URL is shorter than the config, no match\n return null;\n }\n if (route.pathMatch === 'full' &&\n (segmentGroup.hasChildren() || parts.length < segments.length)) {\n // The config is longer than the actual URL but we are looking for a full match, return null\n return null;\n }\n const posParams = {};\n // Check each config part against the actual URL\n for (let index = 0; index < parts.length; index++) {\n const part = parts[index];\n const segment = segments[index];\n const isParameter = part.startsWith(':');\n if (isParameter) {\n posParams[part.substring(1)] = segment;\n }\n else if (part !== segment.path) {\n // The actual URL part does not match the config, no match\n return null;\n }\n }\n return { consumed: segments.slice(0, parts.length), posParams };\n}\n\nfunction shallowEqualArrays(a, b) {\n if (a.length !== b.length)\n return false;\n for (let i = 0; i < a.length; ++i) {\n if (!shallowEqual(a[i], b[i]))\n return false;\n }\n return true;\n}\nfunction shallowEqual(a, b) {\n // While `undefined` should never be possible, it would sometimes be the case in IE 11\n // and pre-chromium Edge. The check below accounts for this edge case.\n const k1 = a ? Object.keys(a) : undefined;\n const k2 = b ? Object.keys(b) : undefined;\n if (!k1 || !k2 || k1.length != k2.length) {\n return false;\n }\n let key;\n for (let i = 0; i < k1.length; i++) {\n key = k1[i];\n if (!equalArraysOrString(a[key], b[key])) {\n return false;\n }\n }\n return true;\n}\n/**\n * Test equality for arrays of strings or a string.\n */\nfunction equalArraysOrString(a, b) {\n if (Array.isArray(a) && Array.isArray(b)) {\n if (a.length !== b.length)\n return false;\n const aSorted = [...a].sort();\n const bSorted = [...b].sort();\n return aSorted.every((val, index) => bSorted[index] === val);\n }\n else {\n return a === b;\n }\n}\n/**\n * Flattens single-level nested arrays.\n */\nfunction flatten(arr) {\n return Array.prototype.concat.apply([], arr);\n}\n/**\n * Return the last element of an array.\n */\nfunction last(a) {\n return a.length > 0 ? a[a.length - 1] : null;\n}\n/**\n * Verifys all booleans in an array are `true`.\n */\nfunction and(bools) {\n return !bools.some(v => !v);\n}\nfunction forEach(map, callback) {\n for (const prop in map) {\n if (map.hasOwnProperty(prop)) {\n callback(map[prop], prop);\n }\n }\n}\nfunction wrapIntoObservable(value) {\n if (ɵisObservable(value)) {\n return value;\n }\n if (ɵisPromise(value)) {\n // Use `Promise.resolve()` to wrap promise-like instances.\n // Required ie when a Resolver returns a AngularJS `$q` promise to correctly trigger the\n // change detection.\n return from(Promise.resolve(value));\n }\n return of(value);\n}\n\nconst NG_DEV_MODE$b = typeof ngDevMode === 'undefined' || ngDevMode;\nconst pathCompareMap = {\n 'exact': equalSegmentGroups,\n 'subset': containsSegmentGroup,\n};\nconst paramCompareMap = {\n 'exact': equalParams,\n 'subset': containsParams,\n 'ignored': () => true,\n};\nfunction containsTree(container, containee, options) {\n return pathCompareMap[options.paths](container.root, containee.root, options.matrixParams) &&\n paramCompareMap[options.queryParams](container.queryParams, containee.queryParams) &&\n !(options.fragment === 'exact' && container.fragment !== containee.fragment);\n}\nfunction equalParams(container, containee) {\n // TODO: This does not handle array params correctly.\n return shallowEqual(container, containee);\n}\nfunction equalSegmentGroups(container, containee, matrixParams) {\n if (!equalPath(container.segments, containee.segments))\n return false;\n if (!matrixParamsMatch(container.segments, containee.segments, matrixParams)) {\n return false;\n }\n if (container.numberOfChildren !== containee.numberOfChildren)\n return false;\n for (const c in containee.children) {\n if (!container.children[c])\n return false;\n if (!equalSegmentGroups(container.children[c], containee.children[c], matrixParams))\n return false;\n }\n return true;\n}\nfunction containsParams(container, containee) {\n return Object.keys(containee).length <= Object.keys(container).length &&\n Object.keys(containee).every(key => equalArraysOrString(container[key], containee[key]));\n}\nfunction containsSegmentGroup(container, containee, matrixParams) {\n return containsSegmentGroupHelper(container, containee, containee.segments, matrixParams);\n}\nfunction containsSegmentGroupHelper(container, containee, containeePaths, matrixParams) {\n if (container.segments.length > containeePaths.length) {\n const current = container.segments.slice(0, containeePaths.length);\n if (!equalPath(current, containeePaths))\n return false;\n if (containee.hasChildren())\n return false;\n if (!matrixParamsMatch(current, containeePaths, matrixParams))\n return false;\n return true;\n }\n else if (container.segments.length === containeePaths.length) {\n if (!equalPath(container.segments, containeePaths))\n return false;\n if (!matrixParamsMatch(container.segments, containeePaths, matrixParams))\n return false;\n for (const c in containee.children) {\n if (!container.children[c])\n return false;\n if (!containsSegmentGroup(container.children[c], containee.children[c], matrixParams)) {\n return false;\n }\n }\n return true;\n }\n else {\n const current = containeePaths.slice(0, container.segments.length);\n const next = containeePaths.slice(container.segments.length);\n if (!equalPath(container.segments, current))\n return false;\n if (!matrixParamsMatch(container.segments, current, matrixParams))\n return false;\n if (!container.children[PRIMARY_OUTLET])\n return false;\n return containsSegmentGroupHelper(container.children[PRIMARY_OUTLET], containee, next, matrixParams);\n }\n}\nfunction matrixParamsMatch(containerPaths, containeePaths, options) {\n return containeePaths.every((containeeSegment, i) => {\n return paramCompareMap[options](containerPaths[i].parameters, containeeSegment.parameters);\n });\n}\n/**\n * @description\n *\n * Represents the parsed URL.\n *\n * Since a router state is a tree, and the URL is nothing but a serialized state, the URL is a\n * serialized tree.\n * UrlTree is a data structure that provides a lot of affordances in dealing with URLs\n *\n * @usageNotes\n * ### Example\n *\n * ```\n * @Component({templateUrl:'template.html'})\n * class MyComponent {\n * constructor(router: Router) {\n * const tree: UrlTree =\n * router.parseUrl('/team/33/(user/victor//support:help)?debug=true#fragment');\n * const f = tree.fragment; // return 'fragment'\n * const q = tree.queryParams; // returns {debug: 'true'}\n * const g: UrlSegmentGroup = tree.root.children[PRIMARY_OUTLET];\n * const s: UrlSegment[] = g.segments; // returns 2 segments 'team' and '33'\n * g.children[PRIMARY_OUTLET].segments; // returns 2 segments 'user' and 'victor'\n * g.children['support'].segments; // return 1 segment 'help'\n * }\n * }\n * ```\n *\n * @publicApi\n */\nclass UrlTree {\n constructor(\n /** The root segment group of the URL tree */\n root = new UrlSegmentGroup([], {}), \n /** The query params of the URL */\n queryParams = {}, \n /** The fragment of the URL */\n fragment = null) {\n this.root = root;\n this.queryParams = queryParams;\n this.fragment = fragment;\n if (NG_DEV_MODE$b) {\n if (root.segments.length > 0) {\n throw new ɵRuntimeError(4015 /* RuntimeErrorCode.INVALID_ROOT_URL_SEGMENT */, 'The root `UrlSegmentGroup` should not contain `segments`. ' +\n 'Instead, these segments belong in the `children` so they can be associated with a named outlet.');\n }\n }\n }\n get queryParamMap() {\n if (!this._queryParamMap) {\n this._queryParamMap = convertToParamMap(this.queryParams);\n }\n return this._queryParamMap;\n }\n /** @docsNotRequired */\n toString() {\n return DEFAULT_SERIALIZER.serialize(this);\n }\n}\n/**\n * @description\n *\n * Represents the parsed URL segment group.\n *\n * See `UrlTree` for more information.\n *\n * @publicApi\n */\nclass UrlSegmentGroup {\n constructor(\n /** The URL segments of this group. See `UrlSegment` for more information */\n segments, \n /** The list of children of this group */\n children) {\n this.segments = segments;\n this.children = children;\n /** The parent node in the url tree */\n this.parent = null;\n forEach(children, (v, k) => v.parent = this);\n }\n /** Whether the segment has child segments */\n hasChildren() {\n return this.numberOfChildren > 0;\n }\n /** Number of child segments */\n get numberOfChildren() {\n return Object.keys(this.children).length;\n }\n /** @docsNotRequired */\n toString() {\n return serializePaths(this);\n }\n}\n/**\n * @description\n *\n * Represents a single URL segment.\n *\n * A UrlSegment is a part of a URL between the two slashes. It contains a path and the matrix\n * parameters associated with the segment.\n *\n * @usageNotes\n * ### Example\n *\n * ```\n * @Component({templateUrl:'template.html'})\n * class MyComponent {\n * constructor(router: Router) {\n * const tree: UrlTree = router.parseUrl('/team;id=33');\n * const g: UrlSegmentGroup = tree.root.children[PRIMARY_OUTLET];\n * const s: UrlSegment[] = g.segments;\n * s[0].path; // returns 'team'\n * s[0].parameters; // returns {id: 33}\n * }\n * }\n * ```\n *\n * @publicApi\n */\nclass UrlSegment {\n constructor(\n /** The path part of a URL segment */\n path, \n /** The matrix parameters associated with a segment */\n parameters) {\n this.path = path;\n this.parameters = parameters;\n }\n get parameterMap() {\n if (!this._parameterMap) {\n this._parameterMap = convertToParamMap(this.parameters);\n }\n return this._parameterMap;\n }\n /** @docsNotRequired */\n toString() {\n return serializePath(this);\n }\n}\nfunction equalSegments(as, bs) {\n return equalPath(as, bs) && as.every((a, i) => shallowEqual(a.parameters, bs[i].parameters));\n}\nfunction equalPath(as, bs) {\n if (as.length !== bs.length)\n return false;\n return as.every((a, i) => a.path === bs[i].path);\n}\nfunction mapChildrenIntoArray(segment, fn) {\n let res = [];\n forEach(segment.children, (child, childOutlet) => {\n if (childOutlet === PRIMARY_OUTLET) {\n res = res.concat(fn(child, childOutlet));\n }\n });\n forEach(segment.children, (child, childOutlet) => {\n if (childOutlet !== PRIMARY_OUTLET) {\n res = res.concat(fn(child, childOutlet));\n }\n });\n return res;\n}\n/**\n * @description\n *\n * Serializes and deserializes a URL string into a URL tree.\n *\n * The url serialization strategy is customizable. You can\n * make all URLs case insensitive by providing a custom UrlSerializer.\n *\n * See `DefaultUrlSerializer` for an example of a URL serializer.\n *\n * @publicApi\n */\nclass UrlSerializer {\n}\nUrlSerializer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: UrlSerializer, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nUrlSerializer.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: UrlSerializer, providedIn: 'root', useFactory: () => new DefaultUrlSerializer() });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: UrlSerializer, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root', useFactory: () => new DefaultUrlSerializer() }]\n }] });\n/**\n * @description\n *\n * A default implementation of the `UrlSerializer`.\n *\n * Example URLs:\n *\n * ```\n * /inbox/33(popup:compose)\n * /inbox/33;open=true/messages/44\n * ```\n *\n * DefaultUrlSerializer uses parentheses to serialize secondary segments (e.g., popup:compose), the\n * colon syntax to specify the outlet, and the ';parameter=value' syntax (e.g., open=true) to\n * specify route specific parameters.\n *\n * @publicApi\n */\nclass DefaultUrlSerializer {\n /** Parses a url into a `UrlTree` */\n parse(url) {\n const p = new UrlParser(url);\n return new UrlTree(p.parseRootSegment(), p.parseQueryParams(), p.parseFragment());\n }\n /** Converts a `UrlTree` into a url */\n serialize(tree) {\n const segment = `/${serializeSegment(tree.root, true)}`;\n const query = serializeQueryParams(tree.queryParams);\n const fragment = typeof tree.fragment === `string` ? `#${encodeUriFragment(tree.fragment)}` : '';\n return `${segment}${query}${fragment}`;\n }\n}\nconst DEFAULT_SERIALIZER = new DefaultUrlSerializer();\nfunction serializePaths(segment) {\n return segment.segments.map(p => serializePath(p)).join('/');\n}\nfunction serializeSegment(segment, root) {\n if (!segment.hasChildren()) {\n return serializePaths(segment);\n }\n if (root) {\n const primary = segment.children[PRIMARY_OUTLET] ?\n serializeSegment(segment.children[PRIMARY_OUTLET], false) :\n '';\n const children = [];\n forEach(segment.children, (v, k) => {\n if (k !== PRIMARY_OUTLET) {\n children.push(`${k}:${serializeSegment(v, false)}`);\n }\n });\n return children.length > 0 ? `${primary}(${children.join('//')})` : primary;\n }\n else {\n const children = mapChildrenIntoArray(segment, (v, k) => {\n if (k === PRIMARY_OUTLET) {\n return [serializeSegment(segment.children[PRIMARY_OUTLET], false)];\n }\n return [`${k}:${serializeSegment(v, false)}`];\n });\n // use no parenthesis if the only child is a primary outlet route\n if (Object.keys(segment.children).length === 1 && segment.children[PRIMARY_OUTLET] != null) {\n return `${serializePaths(segment)}/${children[0]}`;\n }\n return `${serializePaths(segment)}/(${children.join('//')})`;\n }\n}\n/**\n * Encodes a URI string with the default encoding. This function will only ever be called from\n * `encodeUriQuery` or `encodeUriSegment` as it's the base set of encodings to be used. We need\n * a custom encoding because encodeURIComponent is too aggressive and encodes stuff that doesn't\n * have to be encoded per https://url.spec.whatwg.org.\n */\nfunction encodeUriString(s) {\n return encodeURIComponent(s)\n .replace(/%40/g, '@')\n .replace(/%3A/gi, ':')\n .replace(/%24/g, '$')\n .replace(/%2C/gi, ',');\n}\n/**\n * This function should be used to encode both keys and values in a query string key/value. In\n * the following URL, you need to call encodeUriQuery on \"k\" and \"v\":\n *\n * http://www.site.org/html;mk=mv?k=v#f\n */\nfunction encodeUriQuery(s) {\n return encodeUriString(s).replace(/%3B/gi, ';');\n}\n/**\n * This function should be used to encode a URL fragment. In the following URL, you need to call\n * encodeUriFragment on \"f\":\n *\n * http://www.site.org/html;mk=mv?k=v#f\n */\nfunction encodeUriFragment(s) {\n return encodeURI(s);\n}\n/**\n * This function should be run on any URI segment as well as the key and value in a key/value\n * pair for matrix params. In the following URL, you need to call encodeUriSegment on \"html\",\n * \"mk\", and \"mv\":\n *\n * http://www.site.org/html;mk=mv?k=v#f\n */\nfunction encodeUriSegment(s) {\n return encodeUriString(s).replace(/\\(/g, '%28').replace(/\\)/g, '%29').replace(/%26/gi, '&');\n}\nfunction decode(s) {\n return decodeURIComponent(s);\n}\n// Query keys/values should have the \"+\" replaced first, as \"+\" in a query string is \" \".\n// decodeURIComponent function will not decode \"+\" as a space.\nfunction decodeQuery(s) {\n return decode(s.replace(/\\+/g, '%20'));\n}\nfunction serializePath(path) {\n return `${encodeUriSegment(path.path)}${serializeMatrixParams(path.parameters)}`;\n}\nfunction serializeMatrixParams(params) {\n return Object.keys(params)\n .map(key => `;${encodeUriSegment(key)}=${encodeUriSegment(params[key])}`)\n .join('');\n}\nfunction serializeQueryParams(params) {\n const strParams = Object.keys(params)\n .map((name) => {\n const value = params[name];\n return Array.isArray(value) ?\n value.map(v => `${encodeUriQuery(name)}=${encodeUriQuery(v)}`).join('&') :\n `${encodeUriQuery(name)}=${encodeUriQuery(value)}`;\n })\n .filter(s => !!s);\n return strParams.length ? `?${strParams.join('&')}` : '';\n}\nconst SEGMENT_RE = /^[^\\/()?;=#]+/;\nfunction matchSegments(str) {\n const match = str.match(SEGMENT_RE);\n return match ? match[0] : '';\n}\nconst QUERY_PARAM_RE = /^[^=?&#]+/;\n// Return the name of the query param at the start of the string or an empty string\nfunction matchQueryParams(str) {\n const match = str.match(QUERY_PARAM_RE);\n return match ? match[0] : '';\n}\nconst QUERY_PARAM_VALUE_RE = /^[^&#]+/;\n// Return the value of the query param at the start of the string or an empty string\nfunction matchUrlQueryParamValue(str) {\n const match = str.match(QUERY_PARAM_VALUE_RE);\n return match ? match[0] : '';\n}\nclass UrlParser {\n constructor(url) {\n this.url = url;\n this.remaining = url;\n }\n parseRootSegment() {\n this.consumeOptional('/');\n if (this.remaining === '' || this.peekStartsWith('?') || this.peekStartsWith('#')) {\n return new UrlSegmentGroup([], {});\n }\n // The root segment group never has segments\n return new UrlSegmentGroup([], this.parseChildren());\n }\n parseQueryParams() {\n const params = {};\n if (this.consumeOptional('?')) {\n do {\n this.parseQueryParam(params);\n } while (this.consumeOptional('&'));\n }\n return params;\n }\n parseFragment() {\n return this.consumeOptional('#') ? decodeURIComponent(this.remaining) : null;\n }\n parseChildren() {\n if (this.remaining === '') {\n return {};\n }\n this.consumeOptional('/');\n const segments = [];\n if (!this.peekStartsWith('(')) {\n segments.push(this.parseSegment());\n }\n while (this.peekStartsWith('/') && !this.peekStartsWith('//') && !this.peekStartsWith('/(')) {\n this.capture('/');\n segments.push(this.parseSegment());\n }\n let children = {};\n if (this.peekStartsWith('/(')) {\n this.capture('/');\n children = this.parseParens(true);\n }\n let res = {};\n if (this.peekStartsWith('(')) {\n res = this.parseParens(false);\n }\n if (segments.length > 0 || Object.keys(children).length > 0) {\n res[PRIMARY_OUTLET] = new UrlSegmentGroup(segments, children);\n }\n return res;\n }\n // parse a segment with its matrix parameters\n // ie `name;k1=v1;k2`\n parseSegment() {\n const path = matchSegments(this.remaining);\n if (path === '' && this.peekStartsWith(';')) {\n throw new ɵRuntimeError(4009 /* RuntimeErrorCode.EMPTY_PATH_WITH_PARAMS */, NG_DEV_MODE$b && `Empty path url segment cannot have parameters: '${this.remaining}'.`);\n }\n this.capture(path);\n return new UrlSegment(decode(path), this.parseMatrixParams());\n }\n parseMatrixParams() {\n const params = {};\n while (this.consumeOptional(';')) {\n this.parseParam(params);\n }\n return params;\n }\n parseParam(params) {\n const key = matchSegments(this.remaining);\n if (!key) {\n return;\n }\n this.capture(key);\n let value = '';\n if (this.consumeOptional('=')) {\n const valueMatch = matchSegments(this.remaining);\n if (valueMatch) {\n value = valueMatch;\n this.capture(value);\n }\n }\n params[decode(key)] = decode(value);\n }\n // Parse a single query parameter `name[=value]`\n parseQueryParam(params) {\n const key = matchQueryParams(this.remaining);\n if (!key) {\n return;\n }\n this.capture(key);\n let value = '';\n if (this.consumeOptional('=')) {\n const valueMatch = matchUrlQueryParamValue(this.remaining);\n if (valueMatch) {\n value = valueMatch;\n this.capture(value);\n }\n }\n const decodedKey = decodeQuery(key);\n const decodedVal = decodeQuery(value);\n if (params.hasOwnProperty(decodedKey)) {\n // Append to existing values\n let currentVal = params[decodedKey];\n if (!Array.isArray(currentVal)) {\n currentVal = [currentVal];\n params[decodedKey] = currentVal;\n }\n currentVal.push(decodedVal);\n }\n else {\n // Create a new value\n params[decodedKey] = decodedVal;\n }\n }\n // parse `(a/b//outlet_name:c/d)`\n parseParens(allowPrimary) {\n const segments = {};\n this.capture('(');\n while (!this.consumeOptional(')') && this.remaining.length > 0) {\n const path = matchSegments(this.remaining);\n const next = this.remaining[path.length];\n // if is is not one of these characters, then the segment was unescaped\n // or the group was not closed\n if (next !== '/' && next !== ')' && next !== ';') {\n throw new ɵRuntimeError(4010 /* RuntimeErrorCode.UNPARSABLE_URL */, NG_DEV_MODE$b && `Cannot parse url '${this.url}'`);\n }\n let outletName = undefined;\n if (path.indexOf(':') > -1) {\n outletName = path.slice(0, path.indexOf(':'));\n this.capture(outletName);\n this.capture(':');\n }\n else if (allowPrimary) {\n outletName = PRIMARY_OUTLET;\n }\n const children = this.parseChildren();\n segments[outletName] = Object.keys(children).length === 1 ? children[PRIMARY_OUTLET] :\n new UrlSegmentGroup([], children);\n this.consumeOptional('//');\n }\n return segments;\n }\n peekStartsWith(str) {\n return this.remaining.startsWith(str);\n }\n // Consumes the prefix when it is present and returns whether it has been consumed\n consumeOptional(str) {\n if (this.peekStartsWith(str)) {\n this.remaining = this.remaining.substring(str.length);\n return true;\n }\n return false;\n }\n capture(str) {\n if (!this.consumeOptional(str)) {\n throw new ɵRuntimeError(4011 /* RuntimeErrorCode.UNEXPECTED_VALUE_IN_URL */, NG_DEV_MODE$b && `Expected \"${str}\".`);\n }\n }\n}\nfunction createRoot(rootCandidate) {\n return rootCandidate.segments.length > 0 ?\n new UrlSegmentGroup([], { [PRIMARY_OUTLET]: rootCandidate }) :\n rootCandidate;\n}\n/**\n * Recursively merges primary segment children into their parents and also drops empty children\n * (those which have no segments and no children themselves). The latter prevents serializing a\n * group into something like `/a(aux:)`, where `aux` is an empty child segment.\n */\nfunction squashSegmentGroup(segmentGroup) {\n const newChildren = {};\n for (const childOutlet of Object.keys(segmentGroup.children)) {\n const child = segmentGroup.children[childOutlet];\n const childCandidate = squashSegmentGroup(child);\n // don't add empty children\n if (childCandidate.segments.length > 0 || childCandidate.hasChildren()) {\n newChildren[childOutlet] = childCandidate;\n }\n }\n const s = new UrlSegmentGroup(segmentGroup.segments, newChildren);\n return mergeTrivialChildren(s);\n}\n/**\n * When possible, merges the primary outlet child into the parent `UrlSegmentGroup`.\n *\n * When a segment group has only one child which is a primary outlet, merges that child into the\n * parent. That is, the child segment group's segments are merged into the `s` and the child's\n * children become the children of `s`. Think of this like a 'squash', merging the child segment\n * group into the parent.\n */\nfunction mergeTrivialChildren(s) {\n if (s.numberOfChildren === 1 && s.children[PRIMARY_OUTLET]) {\n const c = s.children[PRIMARY_OUTLET];\n return new UrlSegmentGroup(s.segments.concat(c.segments), c.children);\n }\n return s;\n}\nfunction isUrlTree(v) {\n return v instanceof UrlTree;\n}\n\nconst NG_DEV_MODE$a = typeof ngDevMode === 'undefined' || ngDevMode;\n/**\n * Creates a `UrlTree` relative to an `ActivatedRouteSnapshot`.\n *\n * @publicApi\n *\n *\n * @param relativeTo The `ActivatedRouteSnapshot` to apply the commands to\n * @param commands An array of URL fragments with which to construct the new URL tree.\n * If the path is static, can be the literal URL string. For a dynamic path, pass an array of path\n * segments, followed by the parameters for each segment.\n * The fragments are applied to the one provided in the `relativeTo` parameter.\n * @param queryParams The query parameters for the `UrlTree`. `null` if the `UrlTree` does not have\n * any query parameters.\n * @param fragment The fragment for the `UrlTree`. `null` if the `UrlTree` does not have a fragment.\n *\n * @usageNotes\n *\n * ```\n * // create /team/33/user/11\n * createUrlTreeFromSnapshot(snapshot, ['/team', 33, 'user', 11]);\n *\n * // create /team/33;expand=true/user/11\n * createUrlTreeFromSnapshot(snapshot, ['/team', 33, {expand: true}, 'user', 11]);\n *\n * // you can collapse static segments like this (this works only with the first passed-in value):\n * createUrlTreeFromSnapshot(snapshot, ['/team/33/user', userId]);\n *\n * // If the first segment can contain slashes, and you do not want the router to split it,\n * // you can do the following:\n * createUrlTreeFromSnapshot(snapshot, [{segmentPath: '/one/two'}]);\n *\n * // create /team/33/(user/11//right:chat)\n * createUrlTreeFromSnapshot(snapshot, ['/team', 33, {outlets: {primary: 'user/11', right:\n * 'chat'}}], null, null);\n *\n * // remove the right secondary node\n * createUrlTreeFromSnapshot(snapshot, ['/team', 33, {outlets: {primary: 'user/11', right: null}}]);\n *\n * // For the examples below, assume the current URL is for the `/team/33/user/11` and the\n * `ActivatedRouteSnapshot` points to `user/11`:\n *\n * // navigate to /team/33/user/11/details\n * createUrlTreeFromSnapshot(snapshot, ['details']);\n *\n * // navigate to /team/33/user/22\n * createUrlTreeFromSnapshot(snapshot, ['../22']);\n *\n * // navigate to /team/44/user/22\n * createUrlTreeFromSnapshot(snapshot, ['../../team/44/user/22']);\n * ```\n */\nfunction createUrlTreeFromSnapshot(relativeTo, commands, queryParams = null, fragment = null) {\n const relativeToUrlSegmentGroup = createSegmentGroupFromRoute(relativeTo);\n return createUrlTreeFromSegmentGroup(relativeToUrlSegmentGroup, commands, queryParams, fragment);\n}\nfunction createSegmentGroupFromRoute(route) {\n let targetGroup;\n function createSegmentGroupFromRouteRecursive(currentRoute) {\n const childOutlets = {};\n for (const childSnapshot of currentRoute.children) {\n const root = createSegmentGroupFromRouteRecursive(childSnapshot);\n childOutlets[childSnapshot.outlet] = root;\n }\n const segmentGroup = new UrlSegmentGroup(currentRoute.url, childOutlets);\n if (currentRoute === route) {\n targetGroup = segmentGroup;\n }\n return segmentGroup;\n }\n const rootCandidate = createSegmentGroupFromRouteRecursive(route.root);\n const rootSegmentGroup = createRoot(rootCandidate);\n return targetGroup ?? rootSegmentGroup;\n}\nfunction createUrlTreeFromSegmentGroup(relativeTo, commands, queryParams, fragment) {\n let root = relativeTo;\n while (root.parent) {\n root = root.parent;\n }\n // There are no commands so the `UrlTree` goes to the same path as the one created from the\n // `UrlSegmentGroup`. All we need to do is update the `queryParams` and `fragment` without\n // applying any other logic.\n if (commands.length === 0) {\n return tree(root, root, root, queryParams, fragment);\n }\n const nav = computeNavigation(commands);\n if (nav.toRoot()) {\n return tree(root, root, new UrlSegmentGroup([], {}), queryParams, fragment);\n }\n const position = findStartingPositionForTargetGroup(nav, root, relativeTo);\n const newSegmentGroup = position.processChildren ?\n updateSegmentGroupChildren(position.segmentGroup, position.index, nav.commands) :\n updateSegmentGroup(position.segmentGroup, position.index, nav.commands);\n return tree(root, position.segmentGroup, newSegmentGroup, queryParams, fragment);\n}\nfunction createUrlTree(route, urlTree, commands, queryParams, fragment) {\n if (commands.length === 0) {\n return tree(urlTree.root, urlTree.root, urlTree.root, queryParams, fragment);\n }\n const nav = computeNavigation(commands);\n if (nav.toRoot()) {\n return tree(urlTree.root, urlTree.root, new UrlSegmentGroup([], {}), queryParams, fragment);\n }\n function createTreeUsingPathIndex(lastPathIndex) {\n const startingPosition = findStartingPosition(nav, urlTree, route.snapshot?._urlSegment, lastPathIndex);\n const segmentGroup = startingPosition.processChildren ?\n updateSegmentGroupChildren(startingPosition.segmentGroup, startingPosition.index, nav.commands) :\n updateSegmentGroup(startingPosition.segmentGroup, startingPosition.index, nav.commands);\n return tree(urlTree.root, startingPosition.segmentGroup, segmentGroup, queryParams, fragment);\n }\n // Note: The types should disallow `snapshot` from being `undefined` but due to test mocks, this\n // may be the case. Since we try to access it at an earlier point before the refactor to add the\n // warning for `relativeLinkResolution: 'legacy'`, this may cause failures in tests where it\n // didn't before.\n const result = createTreeUsingPathIndex(route.snapshot?._lastPathIndex);\n return result;\n}\nfunction isMatrixParams(command) {\n return typeof command === 'object' && command != null && !command.outlets && !command.segmentPath;\n}\n/**\n * Determines if a given command has an `outlets` map. When we encounter a command\n * with an outlets k/v map, we need to apply each outlet individually to the existing segment.\n */\nfunction isCommandWithOutlets(command) {\n return typeof command === 'object' && command != null && command.outlets;\n}\nfunction tree(oldRoot, oldSegmentGroup, newSegmentGroup, queryParams, fragment) {\n let qp = {};\n if (queryParams) {\n forEach(queryParams, (value, name) => {\n qp[name] = Array.isArray(value) ? value.map((v) => `${v}`) : `${value}`;\n });\n }\n let rootCandidate;\n if (oldRoot === oldSegmentGroup) {\n rootCandidate = newSegmentGroup;\n }\n else {\n rootCandidate = replaceSegment(oldRoot, oldSegmentGroup, newSegmentGroup);\n }\n const newRoot = createRoot(squashSegmentGroup(rootCandidate));\n return new UrlTree(newRoot, qp, fragment);\n}\n/**\n * Replaces the `oldSegment` which is located in some child of the `current` with the `newSegment`.\n * This also has the effect of creating new `UrlSegmentGroup` copies to update references. This\n * shouldn't be necessary but the fallback logic for an invalid ActivatedRoute in the creation uses\n * the Router's current url tree. If we don't create new segment groups, we end up modifying that\n * value.\n */\nfunction replaceSegment(current, oldSegment, newSegment) {\n const children = {};\n forEach(current.children, (c, outletName) => {\n if (c === oldSegment) {\n children[outletName] = newSegment;\n }\n else {\n children[outletName] = replaceSegment(c, oldSegment, newSegment);\n }\n });\n return new UrlSegmentGroup(current.segments, children);\n}\nclass Navigation {\n constructor(isAbsolute, numberOfDoubleDots, commands) {\n this.isAbsolute = isAbsolute;\n this.numberOfDoubleDots = numberOfDoubleDots;\n this.commands = commands;\n if (isAbsolute && commands.length > 0 && isMatrixParams(commands[0])) {\n throw new ɵRuntimeError(4003 /* RuntimeErrorCode.ROOT_SEGMENT_MATRIX_PARAMS */, NG_DEV_MODE$a && 'Root segment cannot have matrix parameters');\n }\n const cmdWithOutlet = commands.find(isCommandWithOutlets);\n if (cmdWithOutlet && cmdWithOutlet !== last(commands)) {\n throw new ɵRuntimeError(4004 /* RuntimeErrorCode.MISPLACED_OUTLETS_COMMAND */, NG_DEV_MODE$a && '{outlets:{}} has to be the last command');\n }\n }\n toRoot() {\n return this.isAbsolute && this.commands.length === 1 && this.commands[0] == '/';\n }\n}\n/** Transforms commands to a normalized `Navigation` */\nfunction computeNavigation(commands) {\n if ((typeof commands[0] === 'string') && commands.length === 1 && commands[0] === '/') {\n return new Navigation(true, 0, commands);\n }\n let numberOfDoubleDots = 0;\n let isAbsolute = false;\n const res = commands.reduce((res, cmd, cmdIdx) => {\n if (typeof cmd === 'object' && cmd != null) {\n if (cmd.outlets) {\n const outlets = {};\n forEach(cmd.outlets, (commands, name) => {\n outlets[name] = typeof commands === 'string' ? commands.split('/') : commands;\n });\n return [...res, { outlets }];\n }\n if (cmd.segmentPath) {\n return [...res, cmd.segmentPath];\n }\n }\n if (!(typeof cmd === 'string')) {\n return [...res, cmd];\n }\n if (cmdIdx === 0) {\n cmd.split('/').forEach((urlPart, partIndex) => {\n if (partIndex == 0 && urlPart === '.') {\n // skip './a'\n }\n else if (partIndex == 0 && urlPart === '') { // '/a'\n isAbsolute = true;\n }\n else if (urlPart === '..') { // '../a'\n numberOfDoubleDots++;\n }\n else if (urlPart != '') {\n res.push(urlPart);\n }\n });\n return res;\n }\n return [...res, cmd];\n }, []);\n return new Navigation(isAbsolute, numberOfDoubleDots, res);\n}\nclass Position {\n constructor(segmentGroup, processChildren, index) {\n this.segmentGroup = segmentGroup;\n this.processChildren = processChildren;\n this.index = index;\n }\n}\nfunction findStartingPositionForTargetGroup(nav, root, target) {\n if (nav.isAbsolute) {\n return new Position(root, true, 0);\n }\n if (!target) {\n // `NaN` is used only to maintain backwards compatibility with incorrectly mocked\n // `ActivatedRouteSnapshot` in tests. In prior versions of this code, the position here was\n // determined based on an internal property that was rarely mocked, resulting in `NaN`. In\n // reality, this code path should _never_ be touched since `target` is not allowed to be falsey.\n return new Position(root, false, NaN);\n }\n if (target.parent === null) {\n return new Position(target, true, 0);\n }\n const modifier = isMatrixParams(nav.commands[0]) ? 0 : 1;\n const index = target.segments.length - 1 + modifier;\n return createPositionApplyingDoubleDots(target, index, nav.numberOfDoubleDots);\n}\nfunction findStartingPosition(nav, tree, segmentGroup, lastPathIndex) {\n if (nav.isAbsolute) {\n return new Position(tree.root, true, 0);\n }\n if (lastPathIndex === -1) {\n // Pathless ActivatedRoute has _lastPathIndex === -1 but should not process children\n // see issue #26224, #13011, #35687\n // However, if the ActivatedRoute is the root we should process children like above.\n const processChildren = segmentGroup === tree.root;\n return new Position(segmentGroup, processChildren, 0);\n }\n const modifier = isMatrixParams(nav.commands[0]) ? 0 : 1;\n const index = lastPathIndex + modifier;\n return createPositionApplyingDoubleDots(segmentGroup, index, nav.numberOfDoubleDots);\n}\nfunction createPositionApplyingDoubleDots(group, index, numberOfDoubleDots) {\n let g = group;\n let ci = index;\n let dd = numberOfDoubleDots;\n while (dd > ci) {\n dd -= ci;\n g = g.parent;\n if (!g) {\n throw new ɵRuntimeError(4005 /* RuntimeErrorCode.INVALID_DOUBLE_DOTS */, NG_DEV_MODE$a && 'Invalid number of \\'../\\'');\n }\n ci = g.segments.length;\n }\n return new Position(g, false, ci - dd);\n}\nfunction getOutlets(commands) {\n if (isCommandWithOutlets(commands[0])) {\n return commands[0].outlets;\n }\n return { [PRIMARY_OUTLET]: commands };\n}\nfunction updateSegmentGroup(segmentGroup, startIndex, commands) {\n if (!segmentGroup) {\n segmentGroup = new UrlSegmentGroup([], {});\n }\n if (segmentGroup.segments.length === 0 && segmentGroup.hasChildren()) {\n return updateSegmentGroupChildren(segmentGroup, startIndex, commands);\n }\n const m = prefixedWith(segmentGroup, startIndex, commands);\n const slicedCommands = commands.slice(m.commandIndex);\n if (m.match && m.pathIndex < segmentGroup.segments.length) {\n const g = new UrlSegmentGroup(segmentGroup.segments.slice(0, m.pathIndex), {});\n g.children[PRIMARY_OUTLET] =\n new UrlSegmentGroup(segmentGroup.segments.slice(m.pathIndex), segmentGroup.children);\n return updateSegmentGroupChildren(g, 0, slicedCommands);\n }\n else if (m.match && slicedCommands.length === 0) {\n return new UrlSegmentGroup(segmentGroup.segments, {});\n }\n else if (m.match && !segmentGroup.hasChildren()) {\n return createNewSegmentGroup(segmentGroup, startIndex, commands);\n }\n else if (m.match) {\n return updateSegmentGroupChildren(segmentGroup, 0, slicedCommands);\n }\n else {\n return createNewSegmentGroup(segmentGroup, startIndex, commands);\n }\n}\nfunction updateSegmentGroupChildren(segmentGroup, startIndex, commands) {\n if (commands.length === 0) {\n return new UrlSegmentGroup(segmentGroup.segments, {});\n }\n else {\n const outlets = getOutlets(commands);\n const children = {};\n // If the set of commands does not apply anything to the primary outlet and the child segment is\n // an empty path primary segment on its own, we want to apply the commands to the empty child\n // path rather than here. The outcome is that the empty primary child is effectively removed\n // from the final output UrlTree. Imagine the following config:\n //\n // {path: '', children: [{path: '**', outlet: 'popup'}]}.\n //\n // Navigation to /(popup:a) will activate the child outlet correctly Given a follow-up\n // navigation with commands\n // ['/', {outlets: {'popup': 'b'}}], we _would not_ want to apply the outlet commands to the\n // root segment because that would result in\n // //(popup:a)(popup:b) since the outlet command got applied one level above where it appears in\n // the `ActivatedRoute` rather than updating the existing one.\n //\n // Because empty paths do not appear in the URL segments and the fact that the segments used in\n // the output `UrlTree` are squashed to eliminate these empty paths where possible\n // https://github.com/angular/angular/blob/13f10de40e25c6900ca55bd83b36bd533dacfa9e/packages/router/src/url_tree.ts#L755\n // it can be hard to determine what is the right thing to do when applying commands to a\n // `UrlSegmentGroup` that is created from an \"unsquashed\"/expanded `ActivatedRoute` tree.\n // This code effectively \"squashes\" empty path primary routes when they have no siblings on\n // the same level of the tree.\n if (!outlets[PRIMARY_OUTLET] && segmentGroup.children[PRIMARY_OUTLET] &&\n segmentGroup.numberOfChildren === 1 &&\n segmentGroup.children[PRIMARY_OUTLET].segments.length === 0) {\n const childrenOfEmptyChild = updateSegmentGroupChildren(segmentGroup.children[PRIMARY_OUTLET], startIndex, commands);\n return new UrlSegmentGroup(segmentGroup.segments, childrenOfEmptyChild.children);\n }\n forEach(outlets, (commands, outlet) => {\n if (typeof commands === 'string') {\n commands = [commands];\n }\n if (commands !== null) {\n children[outlet] = updateSegmentGroup(segmentGroup.children[outlet], startIndex, commands);\n }\n });\n forEach(segmentGroup.children, (child, childOutlet) => {\n if (outlets[childOutlet] === undefined) {\n children[childOutlet] = child;\n }\n });\n return new UrlSegmentGroup(segmentGroup.segments, children);\n }\n}\nfunction prefixedWith(segmentGroup, startIndex, commands) {\n let currentCommandIndex = 0;\n let currentPathIndex = startIndex;\n const noMatch = { match: false, pathIndex: 0, commandIndex: 0 };\n while (currentPathIndex < segmentGroup.segments.length) {\n if (currentCommandIndex >= commands.length)\n return noMatch;\n const path = segmentGroup.segments[currentPathIndex];\n const command = commands[currentCommandIndex];\n // Do not try to consume command as part of the prefixing if it has outlets because it can\n // contain outlets other than the one being processed. Consuming the outlets command would\n // result in other outlets being ignored.\n if (isCommandWithOutlets(command)) {\n break;\n }\n const curr = `${command}`;\n const next = currentCommandIndex < commands.length - 1 ? commands[currentCommandIndex + 1] : null;\n if (currentPathIndex > 0 && curr === undefined)\n break;\n if (curr && next && (typeof next === 'object') && next.outlets === undefined) {\n if (!compare(curr, next, path))\n return noMatch;\n currentCommandIndex += 2;\n }\n else {\n if (!compare(curr, {}, path))\n return noMatch;\n currentCommandIndex++;\n }\n currentPathIndex++;\n }\n return { match: true, pathIndex: currentPathIndex, commandIndex: currentCommandIndex };\n}\nfunction createNewSegmentGroup(segmentGroup, startIndex, commands) {\n const paths = segmentGroup.segments.slice(0, startIndex);\n let i = 0;\n while (i < commands.length) {\n const command = commands[i];\n if (isCommandWithOutlets(command)) {\n const children = createNewSegmentChildren(command.outlets);\n return new UrlSegmentGroup(paths, children);\n }\n // if we start with an object literal, we need to reuse the path part from the segment\n if (i === 0 && isMatrixParams(commands[0])) {\n const p = segmentGroup.segments[startIndex];\n paths.push(new UrlSegment(p.path, stringify(commands[0])));\n i++;\n continue;\n }\n const curr = isCommandWithOutlets(command) ? command.outlets[PRIMARY_OUTLET] : `${command}`;\n const next = (i < commands.length - 1) ? commands[i + 1] : null;\n if (curr && next && isMatrixParams(next)) {\n paths.push(new UrlSegment(curr, stringify(next)));\n i += 2;\n }\n else {\n paths.push(new UrlSegment(curr, {}));\n i++;\n }\n }\n return new UrlSegmentGroup(paths, {});\n}\nfunction createNewSegmentChildren(outlets) {\n const children = {};\n forEach(outlets, (commands, outlet) => {\n if (typeof commands === 'string') {\n commands = [commands];\n }\n if (commands !== null) {\n children[outlet] = createNewSegmentGroup(new UrlSegmentGroup([], {}), 0, commands);\n }\n });\n return children;\n}\nfunction stringify(params) {\n const res = {};\n forEach(params, (v, k) => res[k] = `${v}`);\n return res;\n}\nfunction compare(path, params, segment) {\n return path == segment.path && shallowEqual(params, segment.parameters);\n}\n\nconst IMPERATIVE_NAVIGATION = 'imperative';\n/**\n * Base for events the router goes through, as opposed to events tied to a specific\n * route. Fired one time for any given navigation.\n *\n * The following code shows how a class subscribes to router events.\n *\n * ```ts\n * import {Event, RouterEvent, Router} from '@angular/router';\n *\n * class MyService {\n * constructor(public router: Router) {\n * router.events.pipe(\n * filter((e: Event): e is RouterEvent => e instanceof RouterEvent)\n * ).subscribe((e: RouterEvent) => {\n * // Do something\n * });\n * }\n * }\n * ```\n *\n * @see `Event`\n * @see [Router events summary](guide/router-reference#router-events)\n * @publicApi\n */\nclass RouterEvent {\n constructor(\n /** A unique ID that the router assigns to every router navigation. */\n id, \n /** The URL that is the destination for this navigation. */\n url) {\n this.id = id;\n this.url = url;\n }\n}\n/**\n * An event triggered when a navigation starts.\n *\n * @publicApi\n */\nclass NavigationStart extends RouterEvent {\n constructor(\n /** @docsNotRequired */\n id, \n /** @docsNotRequired */\n url, \n /** @docsNotRequired */\n navigationTrigger = 'imperative', \n /** @docsNotRequired */\n restoredState = null) {\n super(id, url);\n this.type = 0 /* EventType.NavigationStart */;\n this.navigationTrigger = navigationTrigger;\n this.restoredState = restoredState;\n }\n /** @docsNotRequired */\n toString() {\n return `NavigationStart(id: ${this.id}, url: '${this.url}')`;\n }\n}\n/**\n * An event triggered when a navigation ends successfully.\n *\n * @see `NavigationStart`\n * @see `NavigationCancel`\n * @see `NavigationError`\n *\n * @publicApi\n */\nclass NavigationEnd extends RouterEvent {\n constructor(\n /** @docsNotRequired */\n id, \n /** @docsNotRequired */\n url, \n /** @docsNotRequired */\n urlAfterRedirects) {\n super(id, url);\n this.urlAfterRedirects = urlAfterRedirects;\n this.type = 1 /* EventType.NavigationEnd */;\n }\n /** @docsNotRequired */\n toString() {\n return `NavigationEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}')`;\n }\n}\n/**\n * An event triggered when a navigation is canceled, directly or indirectly.\n * This can happen for several reasons including when a route guard\n * returns `false` or initiates a redirect by returning a `UrlTree`.\n *\n * @see `NavigationStart`\n * @see `NavigationEnd`\n * @see `NavigationError`\n *\n * @publicApi\n */\nclass NavigationCancel extends RouterEvent {\n constructor(\n /** @docsNotRequired */\n id, \n /** @docsNotRequired */\n url, \n /**\n * A description of why the navigation was cancelled. For debug purposes only. Use `code`\n * instead for a stable cancellation reason that can be used in production.\n */\n reason, \n /**\n * A code to indicate why the navigation was canceled. This cancellation code is stable for\n * the reason and can be relied on whereas the `reason` string could change and should not be\n * used in production.\n */\n code) {\n super(id, url);\n this.reason = reason;\n this.code = code;\n this.type = 2 /* EventType.NavigationCancel */;\n }\n /** @docsNotRequired */\n toString() {\n return `NavigationCancel(id: ${this.id}, url: '${this.url}')`;\n }\n}\n/**\n * An event triggered when a navigation is skipped.\n * This can happen for a couple reasons including onSameUrlHandling\n * is set to `ignore` and the navigation URL is not different than the\n * current state.\n *\n * @publicApi\n */\nclass NavigationSkipped extends RouterEvent {\n constructor(\n /** @docsNotRequired */\n id, \n /** @docsNotRequired */\n url, \n /**\n * A description of why the navigation was skipped. For debug purposes only. Use `code`\n * instead for a stable skipped reason that can be used in production.\n */\n reason, \n /**\n * A code to indicate why the navigation was skipped. This code is stable for\n * the reason and can be relied on whereas the `reason` string could change and should not be\n * used in production.\n */\n code) {\n super(id, url);\n this.reason = reason;\n this.code = code;\n this.type = 16 /* EventType.NavigationSkipped */;\n }\n}\n/**\n * An event triggered when a navigation fails due to an unexpected error.\n *\n * @see `NavigationStart`\n * @see `NavigationEnd`\n * @see `NavigationCancel`\n *\n * @publicApi\n */\nclass NavigationError extends RouterEvent {\n constructor(\n /** @docsNotRequired */\n id, \n /** @docsNotRequired */\n url, \n /** @docsNotRequired */\n error, \n /**\n * The target of the navigation when the error occurred.\n *\n * Note that this can be `undefined` because an error could have occurred before the\n * `RouterStateSnapshot` was created for the navigation.\n */\n target) {\n super(id, url);\n this.error = error;\n this.target = target;\n this.type = 3 /* EventType.NavigationError */;\n }\n /** @docsNotRequired */\n toString() {\n return `NavigationError(id: ${this.id}, url: '${this.url}', error: ${this.error})`;\n }\n}\n/**\n * An event triggered when routes are recognized.\n *\n * @publicApi\n */\nclass RoutesRecognized extends RouterEvent {\n constructor(\n /** @docsNotRequired */\n id, \n /** @docsNotRequired */\n url, \n /** @docsNotRequired */\n urlAfterRedirects, \n /** @docsNotRequired */\n state) {\n super(id, url);\n this.urlAfterRedirects = urlAfterRedirects;\n this.state = state;\n this.type = 4 /* EventType.RoutesRecognized */;\n }\n /** @docsNotRequired */\n toString() {\n return `RoutesRecognized(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`;\n }\n}\n/**\n * An event triggered at the start of the Guard phase of routing.\n *\n * @see `GuardsCheckEnd`\n *\n * @publicApi\n */\nclass GuardsCheckStart extends RouterEvent {\n constructor(\n /** @docsNotRequired */\n id, \n /** @docsNotRequired */\n url, \n /** @docsNotRequired */\n urlAfterRedirects, \n /** @docsNotRequired */\n state) {\n super(id, url);\n this.urlAfterRedirects = urlAfterRedirects;\n this.state = state;\n this.type = 7 /* EventType.GuardsCheckStart */;\n }\n toString() {\n return `GuardsCheckStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`;\n }\n}\n/**\n * An event triggered at the end of the Guard phase of routing.\n *\n * @see `GuardsCheckStart`\n *\n * @publicApi\n */\nclass GuardsCheckEnd extends RouterEvent {\n constructor(\n /** @docsNotRequired */\n id, \n /** @docsNotRequired */\n url, \n /** @docsNotRequired */\n urlAfterRedirects, \n /** @docsNotRequired */\n state, \n /** @docsNotRequired */\n shouldActivate) {\n super(id, url);\n this.urlAfterRedirects = urlAfterRedirects;\n this.state = state;\n this.shouldActivate = shouldActivate;\n this.type = 8 /* EventType.GuardsCheckEnd */;\n }\n toString() {\n return `GuardsCheckEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state}, shouldActivate: ${this.shouldActivate})`;\n }\n}\n/**\n * An event triggered at the start of the Resolve phase of routing.\n *\n * Runs in the \"resolve\" phase whether or not there is anything to resolve.\n * In future, may change to only run when there are things to be resolved.\n *\n * @see `ResolveEnd`\n *\n * @publicApi\n */\nclass ResolveStart extends RouterEvent {\n constructor(\n /** @docsNotRequired */\n id, \n /** @docsNotRequired */\n url, \n /** @docsNotRequired */\n urlAfterRedirects, \n /** @docsNotRequired */\n state) {\n super(id, url);\n this.urlAfterRedirects = urlAfterRedirects;\n this.state = state;\n this.type = 5 /* EventType.ResolveStart */;\n }\n toString() {\n return `ResolveStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`;\n }\n}\n/**\n * An event triggered at the end of the Resolve phase of routing.\n * @see `ResolveStart`.\n *\n * @publicApi\n */\nclass ResolveEnd extends RouterEvent {\n constructor(\n /** @docsNotRequired */\n id, \n /** @docsNotRequired */\n url, \n /** @docsNotRequired */\n urlAfterRedirects, \n /** @docsNotRequired */\n state) {\n super(id, url);\n this.urlAfterRedirects = urlAfterRedirects;\n this.state = state;\n this.type = 6 /* EventType.ResolveEnd */;\n }\n toString() {\n return `ResolveEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`;\n }\n}\n/**\n * An event triggered before lazy loading a route configuration.\n *\n * @see `RouteConfigLoadEnd`\n *\n * @publicApi\n */\nclass RouteConfigLoadStart {\n constructor(\n /** @docsNotRequired */\n route) {\n this.route = route;\n this.type = 9 /* EventType.RouteConfigLoadStart */;\n }\n toString() {\n return `RouteConfigLoadStart(path: ${this.route.path})`;\n }\n}\n/**\n * An event triggered when a route has been lazy loaded.\n *\n * @see `RouteConfigLoadStart`\n *\n * @publicApi\n */\nclass RouteConfigLoadEnd {\n constructor(\n /** @docsNotRequired */\n route) {\n this.route = route;\n this.type = 10 /* EventType.RouteConfigLoadEnd */;\n }\n toString() {\n return `RouteConfigLoadEnd(path: ${this.route.path})`;\n }\n}\n/**\n * An event triggered at the start of the child-activation\n * part of the Resolve phase of routing.\n * @see `ChildActivationEnd`\n * @see `ResolveStart`\n *\n * @publicApi\n */\nclass ChildActivationStart {\n constructor(\n /** @docsNotRequired */\n snapshot) {\n this.snapshot = snapshot;\n this.type = 11 /* EventType.ChildActivationStart */;\n }\n toString() {\n const path = this.snapshot.routeConfig && this.snapshot.routeConfig.path || '';\n return `ChildActivationStart(path: '${path}')`;\n }\n}\n/**\n * An event triggered at the end of the child-activation part\n * of the Resolve phase of routing.\n * @see `ChildActivationStart`\n * @see `ResolveStart`\n * @publicApi\n */\nclass ChildActivationEnd {\n constructor(\n /** @docsNotRequired */\n snapshot) {\n this.snapshot = snapshot;\n this.type = 12 /* EventType.ChildActivationEnd */;\n }\n toString() {\n const path = this.snapshot.routeConfig && this.snapshot.routeConfig.path || '';\n return `ChildActivationEnd(path: '${path}')`;\n }\n}\n/**\n * An event triggered at the start of the activation part\n * of the Resolve phase of routing.\n * @see `ActivationEnd`\n * @see `ResolveStart`\n *\n * @publicApi\n */\nclass ActivationStart {\n constructor(\n /** @docsNotRequired */\n snapshot) {\n this.snapshot = snapshot;\n this.type = 13 /* EventType.ActivationStart */;\n }\n toString() {\n const path = this.snapshot.routeConfig && this.snapshot.routeConfig.path || '';\n return `ActivationStart(path: '${path}')`;\n }\n}\n/**\n * An event triggered at the end of the activation part\n * of the Resolve phase of routing.\n * @see `ActivationStart`\n * @see `ResolveStart`\n *\n * @publicApi\n */\nclass ActivationEnd {\n constructor(\n /** @docsNotRequired */\n snapshot) {\n this.snapshot = snapshot;\n this.type = 14 /* EventType.ActivationEnd */;\n }\n toString() {\n const path = this.snapshot.routeConfig && this.snapshot.routeConfig.path || '';\n return `ActivationEnd(path: '${path}')`;\n }\n}\n/**\n * An event triggered by scrolling.\n *\n * @publicApi\n */\nclass Scroll {\n constructor(\n /** @docsNotRequired */\n routerEvent, \n /** @docsNotRequired */\n position, \n /** @docsNotRequired */\n anchor) {\n this.routerEvent = routerEvent;\n this.position = position;\n this.anchor = anchor;\n this.type = 15 /* EventType.Scroll */;\n }\n toString() {\n const pos = this.position ? `${this.position[0]}, ${this.position[1]}` : null;\n return `Scroll(anchor: '${this.anchor}', position: '${pos}')`;\n }\n}\nfunction stringifyEvent(routerEvent) {\n if (!('type' in routerEvent)) {\n return `Unknown Router Event: ${routerEvent.constructor.name}`;\n }\n switch (routerEvent.type) {\n case 14 /* EventType.ActivationEnd */:\n return `ActivationEnd(path: '${routerEvent.snapshot.routeConfig?.path || ''}')`;\n case 13 /* EventType.ActivationStart */:\n return `ActivationStart(path: '${routerEvent.snapshot.routeConfig?.path || ''}')`;\n case 12 /* EventType.ChildActivationEnd */:\n return `ChildActivationEnd(path: '${routerEvent.snapshot.routeConfig?.path || ''}')`;\n case 11 /* EventType.ChildActivationStart */:\n return `ChildActivationStart(path: '${routerEvent.snapshot.routeConfig?.path || ''}')`;\n case 8 /* EventType.GuardsCheckEnd */:\n return `GuardsCheckEnd(id: ${routerEvent.id}, url: '${routerEvent.url}', urlAfterRedirects: '${routerEvent.urlAfterRedirects}', state: ${routerEvent.state}, shouldActivate: ${routerEvent.shouldActivate})`;\n case 7 /* EventType.GuardsCheckStart */:\n return `GuardsCheckStart(id: ${routerEvent.id}, url: '${routerEvent.url}', urlAfterRedirects: '${routerEvent.urlAfterRedirects}', state: ${routerEvent.state})`;\n case 2 /* EventType.NavigationCancel */:\n return `NavigationCancel(id: ${routerEvent.id}, url: '${routerEvent.url}')`;\n case 16 /* EventType.NavigationSkipped */:\n return `NavigationSkipped(id: ${routerEvent.id}, url: '${routerEvent.url}')`;\n case 1 /* EventType.NavigationEnd */:\n return `NavigationEnd(id: ${routerEvent.id}, url: '${routerEvent.url}', urlAfterRedirects: '${routerEvent.urlAfterRedirects}')`;\n case 3 /* EventType.NavigationError */:\n return `NavigationError(id: ${routerEvent.id}, url: '${routerEvent.url}', error: ${routerEvent.error})`;\n case 0 /* EventType.NavigationStart */:\n return `NavigationStart(id: ${routerEvent.id}, url: '${routerEvent.url}')`;\n case 6 /* EventType.ResolveEnd */:\n return `ResolveEnd(id: ${routerEvent.id}, url: '${routerEvent.url}', urlAfterRedirects: '${routerEvent.urlAfterRedirects}', state: ${routerEvent.state})`;\n case 5 /* EventType.ResolveStart */:\n return `ResolveStart(id: ${routerEvent.id}, url: '${routerEvent.url}', urlAfterRedirects: '${routerEvent.urlAfterRedirects}', state: ${routerEvent.state})`;\n case 10 /* EventType.RouteConfigLoadEnd */:\n return `RouteConfigLoadEnd(path: ${routerEvent.route.path})`;\n case 9 /* EventType.RouteConfigLoadStart */:\n return `RouteConfigLoadStart(path: ${routerEvent.route.path})`;\n case 4 /* EventType.RoutesRecognized */:\n return `RoutesRecognized(id: ${routerEvent.id}, url: '${routerEvent.url}', urlAfterRedirects: '${routerEvent.urlAfterRedirects}', state: ${routerEvent.state})`;\n case 15 /* EventType.Scroll */:\n const pos = routerEvent.position ? `${routerEvent.position[0]}, ${routerEvent.position[1]}` : null;\n return `Scroll(anchor: '${routerEvent.anchor}', position: '${pos}')`;\n }\n}\n\nconst NG_DEV_MODE$9 = typeof ngDevMode === 'undefined' || ngDevMode;\nclass LegacyCreateUrlTree {\n createUrlTree(relativeTo, currentState, currentUrlTree, commands, queryParams, fragment) {\n const a = relativeTo || currentState.root;\n const tree = createUrlTree(a, currentUrlTree, commands, queryParams, fragment);\n if (NG_DEV_MODE$9) {\n const treeFromSnapshotStrategy = new CreateUrlTreeUsingSnapshot().createUrlTree(relativeTo, currentState, currentUrlTree, commands, queryParams, fragment);\n if (treeFromSnapshotStrategy.toString() !== tree.toString()) {\n let warningString = `The navigation to ${tree.toString()} will instead go to ${treeFromSnapshotStrategy.toString()} in an upcoming version of Angular.`;\n if (!!relativeTo) {\n warningString += ' `relativeTo` might need to be removed from the `UrlCreationOptions`.';\n }\n tree._warnIfUsedForNavigation = warningString;\n }\n }\n return tree;\n }\n}\nLegacyCreateUrlTree.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: LegacyCreateUrlTree, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nLegacyCreateUrlTree.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: LegacyCreateUrlTree });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: LegacyCreateUrlTree, decorators: [{\n type: Injectable\n }] });\nclass CreateUrlTreeUsingSnapshot {\n createUrlTree(relativeTo, currentState, currentUrlTree, commands, queryParams, fragment) {\n let relativeToUrlSegmentGroup;\n try {\n const relativeToSnapshot = relativeTo ? relativeTo.snapshot : currentState.snapshot.root;\n relativeToUrlSegmentGroup = createSegmentGroupFromRoute(relativeToSnapshot);\n }\n catch (e) {\n // This is strictly for backwards compatibility with tests that create\n // invalid `ActivatedRoute` mocks.\n // Note: the difference between having this fallback for invalid `ActivatedRoute` setups and\n // just throwing is ~500 test failures. Fixing all of those tests by hand is not feasible at\n // the moment.\n if (typeof commands[0] !== 'string' || !commands[0].startsWith('/')) {\n // Navigations that were absolute in the old way of creating UrlTrees\n // would still work because they wouldn't attempt to match the\n // segments in the `ActivatedRoute` to the `currentUrlTree` but\n // instead just replace the root segment with the navigation result.\n // Non-absolute navigations would fail to apply the commands because\n // the logic could not find the segment to replace (so they'd act like there were no\n // commands).\n commands = [];\n }\n relativeToUrlSegmentGroup = currentUrlTree.root;\n }\n return createUrlTreeFromSegmentGroup(relativeToUrlSegmentGroup, commands, queryParams, fragment);\n }\n}\nCreateUrlTreeUsingSnapshot.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: CreateUrlTreeUsingSnapshot, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nCreateUrlTreeUsingSnapshot.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: CreateUrlTreeUsingSnapshot });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: CreateUrlTreeUsingSnapshot, decorators: [{\n type: Injectable\n }] });\nclass CreateUrlTreeStrategy {\n}\nCreateUrlTreeStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: CreateUrlTreeStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nCreateUrlTreeStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: CreateUrlTreeStrategy, providedIn: 'root', useClass: LegacyCreateUrlTree });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: CreateUrlTreeStrategy, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root', useClass: LegacyCreateUrlTree }]\n }] });\n\nclass Tree {\n constructor(root) {\n this._root = root;\n }\n get root() {\n return this._root.value;\n }\n /**\n * @internal\n */\n parent(t) {\n const p = this.pathFromRoot(t);\n return p.length > 1 ? p[p.length - 2] : null;\n }\n /**\n * @internal\n */\n children(t) {\n const n = findNode(t, this._root);\n return n ? n.children.map(t => t.value) : [];\n }\n /**\n * @internal\n */\n firstChild(t) {\n const n = findNode(t, this._root);\n return n && n.children.length > 0 ? n.children[0].value : null;\n }\n /**\n * @internal\n */\n siblings(t) {\n const p = findPath(t, this._root);\n if (p.length < 2)\n return [];\n const c = p[p.length - 2].children.map(c => c.value);\n return c.filter(cc => cc !== t);\n }\n /**\n * @internal\n */\n pathFromRoot(t) {\n return findPath(t, this._root).map(s => s.value);\n }\n}\n// DFS for the node matching the value\nfunction findNode(value, node) {\n if (value === node.value)\n return node;\n for (const child of node.children) {\n const node = findNode(value, child);\n if (node)\n return node;\n }\n return null;\n}\n// Return the path to the node with the given value using DFS\nfunction findPath(value, node) {\n if (value === node.value)\n return [node];\n for (const child of node.children) {\n const path = findPath(value, child);\n if (path.length) {\n path.unshift(node);\n return path;\n }\n }\n return [];\n}\nclass TreeNode {\n constructor(value, children) {\n this.value = value;\n this.children = children;\n }\n toString() {\n return `TreeNode(${this.value})`;\n }\n}\n// Return the list of T indexed by outlet name\nfunction nodeChildrenAsMap(node) {\n const map = {};\n if (node) {\n node.children.forEach(child => map[child.value.outlet] = child);\n }\n return map;\n}\n\n/**\n * Represents the state of the router as a tree of activated routes.\n *\n * @usageNotes\n *\n * Every node in the route tree is an `ActivatedRoute` instance\n * that knows about the \"consumed\" URL segments, the extracted parameters,\n * and the resolved data.\n * Use the `ActivatedRoute` properties to traverse the tree from any node.\n *\n * The following fragment shows how a component gets the root node\n * of the current state to establish its own route tree:\n *\n * ```\n * @Component({templateUrl:'template.html'})\n * class MyComponent {\n * constructor(router: Router) {\n * const state: RouterState = router.routerState;\n * const root: ActivatedRoute = state.root;\n * const child = root.firstChild;\n * const id: Observable<string> = child.params.map(p => p.id);\n * //...\n * }\n * }\n * ```\n *\n * @see `ActivatedRoute`\n * @see [Getting route information](guide/router#getting-route-information)\n *\n * @publicApi\n */\nclass RouterState extends Tree {\n /** @internal */\n constructor(root, \n /** The current snapshot of the router state */\n snapshot) {\n super(root);\n this.snapshot = snapshot;\n setRouterState(this, root);\n }\n toString() {\n return this.snapshot.toString();\n }\n}\nfunction createEmptyState(urlTree, rootComponent) {\n const snapshot = createEmptyStateSnapshot(urlTree, rootComponent);\n const emptyUrl = new BehaviorSubject([new UrlSegment('', {})]);\n const emptyParams = new BehaviorSubject({});\n const emptyData = new BehaviorSubject({});\n const emptyQueryParams = new BehaviorSubject({});\n const fragment = new BehaviorSubject('');\n const activated = new ActivatedRoute(emptyUrl, emptyParams, emptyQueryParams, fragment, emptyData, PRIMARY_OUTLET, rootComponent, snapshot.root);\n activated.snapshot = snapshot.root;\n return new RouterState(new TreeNode(activated, []), snapshot);\n}\nfunction createEmptyStateSnapshot(urlTree, rootComponent) {\n const emptyParams = {};\n const emptyData = {};\n const emptyQueryParams = {};\n const fragment = '';\n const activated = new ActivatedRouteSnapshot([], emptyParams, emptyQueryParams, fragment, emptyData, PRIMARY_OUTLET, rootComponent, null, urlTree.root, -1, {});\n return new RouterStateSnapshot('', new TreeNode(activated, []));\n}\n/**\n * Provides access to information about a route associated with a component\n * that is loaded in an outlet.\n * Use to traverse the `RouterState` tree and extract information from nodes.\n *\n * The following example shows how to construct a component using information from a\n * currently activated route.\n *\n * Note: the observables in this class only emit when the current and previous values differ based\n * on shallow equality. For example, changing deeply nested properties in resolved `data` will not\n * cause the `ActivatedRoute.data` `Observable` to emit a new value.\n *\n * {@example router/activated-route/module.ts region=\"activated-route\"\n * header=\"activated-route.component.ts\"}\n *\n * @see [Getting route information](guide/router#getting-route-information)\n *\n * @publicApi\n */\nclass ActivatedRoute {\n /** @internal */\n constructor(\n /** An observable of the URL segments matched by this route. */\n url, \n /** An observable of the matrix parameters scoped to this route. */\n params, \n /** An observable of the query parameters shared by all the routes. */\n queryParams, \n /** An observable of the URL fragment shared by all the routes. */\n fragment, \n /** An observable of the static and resolved data of this route. */\n data, \n /** The outlet name of the route, a constant. */\n outlet, \n /** The component of the route, a constant. */\n component, futureSnapshot) {\n this.url = url;\n this.params = params;\n this.queryParams = queryParams;\n this.fragment = fragment;\n this.data = data;\n this.outlet = outlet;\n this.component = component;\n /** An Observable of the resolved route title */\n this.title = this.data?.pipe(map((d) => d[RouteTitleKey])) ?? of(undefined);\n this._futureSnapshot = futureSnapshot;\n }\n /** The configuration used to match this route. */\n get routeConfig() {\n return this._futureSnapshot.routeConfig;\n }\n /** The root of the router state. */\n get root() {\n return this._routerState.root;\n }\n /** The parent of this route in the router state tree. */\n get parent() {\n return this._routerState.parent(this);\n }\n /** The first child of this route in the router state tree. */\n get firstChild() {\n return this._routerState.firstChild(this);\n }\n /** The children of this route in the router state tree. */\n get children() {\n return this._routerState.children(this);\n }\n /** The path from the root of the router state tree to this route. */\n get pathFromRoot() {\n return this._routerState.pathFromRoot(this);\n }\n /**\n * An Observable that contains a map of the required and optional parameters\n * specific to the route.\n * The map supports retrieving single and multiple values from the same parameter.\n */\n get paramMap() {\n if (!this._paramMap) {\n this._paramMap = this.params.pipe(map((p) => convertToParamMap(p)));\n }\n return this._paramMap;\n }\n /**\n * An Observable that contains a map of the query parameters available to all routes.\n * The map supports retrieving single and multiple values from the query parameter.\n */\n get queryParamMap() {\n if (!this._queryParamMap) {\n this._queryParamMap =\n this.queryParams.pipe(map((p) => convertToParamMap(p)));\n }\n return this._queryParamMap;\n }\n toString() {\n return this.snapshot ? this.snapshot.toString() : `Future(${this._futureSnapshot})`;\n }\n}\n/**\n * Returns the inherited params, data, and resolve for a given route.\n * By default, this only inherits values up to the nearest path-less or component-less route.\n * @internal\n */\nfunction inheritedParamsDataResolve(route, paramsInheritanceStrategy = 'emptyOnly') {\n const pathFromRoot = route.pathFromRoot;\n let inheritingStartingFrom = 0;\n if (paramsInheritanceStrategy !== 'always') {\n inheritingStartingFrom = pathFromRoot.length - 1;\n while (inheritingStartingFrom >= 1) {\n const current = pathFromRoot[inheritingStartingFrom];\n const parent = pathFromRoot[inheritingStartingFrom - 1];\n // current route is an empty path => inherits its parent's params and data\n if (current.routeConfig && current.routeConfig.path === '') {\n inheritingStartingFrom--;\n // parent is componentless => current route should inherit its params and data\n }\n else if (!parent.component) {\n inheritingStartingFrom--;\n }\n else {\n break;\n }\n }\n }\n return flattenInherited(pathFromRoot.slice(inheritingStartingFrom));\n}\n/** @internal */\nfunction flattenInherited(pathFromRoot) {\n return pathFromRoot.reduce((res, curr) => {\n const params = { ...res.params, ...curr.params };\n const data = { ...res.data, ...curr.data };\n const resolve = { ...curr.data, ...res.resolve, ...curr.routeConfig?.data, ...curr._resolvedData };\n return { params, data, resolve };\n }, { params: {}, data: {}, resolve: {} });\n}\n/**\n * @description\n *\n * Contains the information about a route associated with a component loaded in an\n * outlet at a particular moment in time. ActivatedRouteSnapshot can also be used to\n * traverse the router state tree.\n *\n * The following example initializes a component with route information extracted\n * from the snapshot of the root node at the time of creation.\n *\n * ```\n * @Component({templateUrl:'./my-component.html'})\n * class MyComponent {\n * constructor(route: ActivatedRoute) {\n * const id: string = route.snapshot.params.id;\n * const url: string = route.snapshot.url.join('');\n * const user = route.snapshot.data.user;\n * }\n * }\n * ```\n *\n * @publicApi\n */\nclass ActivatedRouteSnapshot {\n /** The resolved route title */\n get title() {\n // Note: This _must_ be a getter because the data is mutated in the resolvers. Title will not be\n // available at the time of class instantiation.\n return this.data?.[RouteTitleKey];\n }\n /** @internal */\n constructor(\n /** The URL segments matched by this route */\n url, \n /**\n * The matrix parameters scoped to this route.\n *\n * You can compute all params (or data) in the router state or to get params outside\n * of an activated component by traversing the `RouterState` tree as in the following\n * example:\n * ```\n * collectRouteParams(router: Router) {\n * let params = {};\n * let stack: ActivatedRouteSnapshot[] = [router.routerState.snapshot.root];\n * while (stack.length > 0) {\n * const route = stack.pop()!;\n * params = {...params, ...route.params};\n * stack.push(...route.children);\n * }\n * return params;\n * }\n * ```\n */\n params, \n /** The query parameters shared by all the routes */\n queryParams, \n /** The URL fragment shared by all the routes */\n fragment, \n /** The static and resolved data of this route */\n data, \n /** The outlet name of the route */\n outlet, \n /** The component of the route */\n component, routeConfig, urlSegment, lastPathIndex, resolve) {\n this.url = url;\n this.params = params;\n this.queryParams = queryParams;\n this.fragment = fragment;\n this.data = data;\n this.outlet = outlet;\n this.component = component;\n this.routeConfig = routeConfig;\n this._urlSegment = urlSegment;\n this._lastPathIndex = lastPathIndex;\n this._resolve = resolve;\n }\n /** The root of the router state */\n get root() {\n return this._routerState.root;\n }\n /** The parent of this route in the router state tree */\n get parent() {\n return this._routerState.parent(this);\n }\n /** The first child of this route in the router state tree */\n get firstChild() {\n return this._routerState.firstChild(this);\n }\n /** The children of this route in the router state tree */\n get children() {\n return this._routerState.children(this);\n }\n /** The path from the root of the router state tree to this route */\n get pathFromRoot() {\n return this._routerState.pathFromRoot(this);\n }\n get paramMap() {\n if (!this._paramMap) {\n this._paramMap = convertToParamMap(this.params);\n }\n return this._paramMap;\n }\n get queryParamMap() {\n if (!this._queryParamMap) {\n this._queryParamMap = convertToParamMap(this.queryParams);\n }\n return this._queryParamMap;\n }\n toString() {\n const url = this.url.map(segment => segment.toString()).join('/');\n const matched = this.routeConfig ? this.routeConfig.path : '';\n return `Route(url:'${url}', path:'${matched}')`;\n }\n}\n/**\n * @description\n *\n * Represents the state of the router at a moment in time.\n *\n * This is a tree of activated route snapshots. Every node in this tree knows about\n * the \"consumed\" URL segments, the extracted parameters, and the resolved data.\n *\n * The following example shows how a component is initialized with information\n * from the snapshot of the root node's state at the time of creation.\n *\n * ```\n * @Component({templateUrl:'template.html'})\n * class MyComponent {\n * constructor(router: Router) {\n * const state: RouterState = router.routerState;\n * const snapshot: RouterStateSnapshot = state.snapshot;\n * const root: ActivatedRouteSnapshot = snapshot.root;\n * const child = root.firstChild;\n * const id: Observable<string> = child.params.map(p => p.id);\n * //...\n * }\n * }\n * ```\n *\n * @publicApi\n */\nclass RouterStateSnapshot extends Tree {\n /** @internal */\n constructor(\n /** The url from which this snapshot was created */\n url, root) {\n super(root);\n this.url = url;\n setRouterState(this, root);\n }\n toString() {\n return serializeNode(this._root);\n }\n}\nfunction setRouterState(state, node) {\n node.value._routerState = state;\n node.children.forEach(c => setRouterState(state, c));\n}\nfunction serializeNode(node) {\n const c = node.children.length > 0 ? ` { ${node.children.map(serializeNode).join(', ')} } ` : '';\n return `${node.value}${c}`;\n}\n/**\n * The expectation is that the activate route is created with the right set of parameters.\n * So we push new values into the observables only when they are not the initial values.\n * And we detect that by checking if the snapshot field is set.\n */\nfunction advanceActivatedRoute(route) {\n if (route.snapshot) {\n const currentSnapshot = route.snapshot;\n const nextSnapshot = route._futureSnapshot;\n route.snapshot = nextSnapshot;\n if (!shallowEqual(currentSnapshot.queryParams, nextSnapshot.queryParams)) {\n route.queryParams.next(nextSnapshot.queryParams);\n }\n if (currentSnapshot.fragment !== nextSnapshot.fragment) {\n route.fragment.next(nextSnapshot.fragment);\n }\n if (!shallowEqual(currentSnapshot.params, nextSnapshot.params)) {\n route.params.next(nextSnapshot.params);\n }\n if (!shallowEqualArrays(currentSnapshot.url, nextSnapshot.url)) {\n route.url.next(nextSnapshot.url);\n }\n if (!shallowEqual(currentSnapshot.data, nextSnapshot.data)) {\n route.data.next(nextSnapshot.data);\n }\n }\n else {\n route.snapshot = route._futureSnapshot;\n // this is for resolved data\n route.data.next(route._futureSnapshot.data);\n }\n}\nfunction equalParamsAndUrlSegments(a, b) {\n const equalUrlParams = shallowEqual(a.params, b.params) && equalSegments(a.url, b.url);\n const parentsMismatch = !a.parent !== !b.parent;\n return equalUrlParams && !parentsMismatch &&\n (!a.parent || equalParamsAndUrlSegments(a.parent, b.parent));\n}\n\nfunction createRouterState(routeReuseStrategy, curr, prevState) {\n const root = createNode(routeReuseStrategy, curr._root, prevState ? prevState._root : undefined);\n return new RouterState(root, curr);\n}\nfunction createNode(routeReuseStrategy, curr, prevState) {\n // reuse an activated route that is currently displayed on the screen\n if (prevState && routeReuseStrategy.shouldReuseRoute(curr.value, prevState.value.snapshot)) {\n const value = prevState.value;\n value._futureSnapshot = curr.value;\n const children = createOrReuseChildren(routeReuseStrategy, curr, prevState);\n return new TreeNode(value, children);\n }\n else {\n if (routeReuseStrategy.shouldAttach(curr.value)) {\n // retrieve an activated route that is used to be displayed, but is not currently displayed\n const detachedRouteHandle = routeReuseStrategy.retrieve(curr.value);\n if (detachedRouteHandle !== null) {\n const tree = detachedRouteHandle.route;\n tree.value._futureSnapshot = curr.value;\n tree.children = curr.children.map(c => createNode(routeReuseStrategy, c));\n return tree;\n }\n }\n const value = createActivatedRoute(curr.value);\n const children = curr.children.map(c => createNode(routeReuseStrategy, c));\n return new TreeNode(value, children);\n }\n}\nfunction createOrReuseChildren(routeReuseStrategy, curr, prevState) {\n return curr.children.map(child => {\n for (const p of prevState.children) {\n if (routeReuseStrategy.shouldReuseRoute(child.value, p.value.snapshot)) {\n return createNode(routeReuseStrategy, child, p);\n }\n }\n return createNode(routeReuseStrategy, child);\n });\n}\nfunction createActivatedRoute(c) {\n return new ActivatedRoute(new BehaviorSubject(c.url), new BehaviorSubject(c.params), new BehaviorSubject(c.queryParams), new BehaviorSubject(c.fragment), new BehaviorSubject(c.data), c.outlet, c.component, c);\n}\n\nconst NAVIGATION_CANCELING_ERROR = 'ngNavigationCancelingError';\nfunction redirectingNavigationError(urlSerializer, redirect) {\n const { redirectTo, navigationBehaviorOptions } = isUrlTree(redirect) ? { redirectTo: redirect, navigationBehaviorOptions: undefined } : redirect;\n const error = navigationCancelingError(ngDevMode && `Redirecting to \"${urlSerializer.serialize(redirectTo)}\"`, 0 /* NavigationCancellationCode.Redirect */, redirect);\n error.url = redirectTo;\n error.navigationBehaviorOptions = navigationBehaviorOptions;\n return error;\n}\nfunction navigationCancelingError(message, code, redirectUrl) {\n const error = new Error('NavigationCancelingError: ' + (message || ''));\n error[NAVIGATION_CANCELING_ERROR] = true;\n error.cancellationCode = code;\n if (redirectUrl) {\n error.url = redirectUrl;\n }\n return error;\n}\nfunction isRedirectingNavigationCancelingError$1(error) {\n return isNavigationCancelingError$1(error) && isUrlTree(error.url);\n}\nfunction isNavigationCancelingError$1(error) {\n return error && error[NAVIGATION_CANCELING_ERROR];\n}\n\n/**\n * Store contextual information about a `RouterOutlet`\n *\n * @publicApi\n */\nclass OutletContext {\n constructor() {\n this.outlet = null;\n this.route = null;\n /**\n * @deprecated Passing a resolver to retrieve a component factory is not required and is\n * deprecated since v14.\n */\n this.resolver = null;\n this.injector = null;\n this.children = new ChildrenOutletContexts();\n this.attachRef = null;\n }\n}\n/**\n * Store contextual information about the children (= nested) `RouterOutlet`\n *\n * @publicApi\n */\nclass ChildrenOutletContexts {\n constructor() {\n // contexts for child outlets, by name.\n this.contexts = new Map();\n }\n /** Called when a `RouterOutlet` directive is instantiated */\n onChildOutletCreated(childName, outlet) {\n const context = this.getOrCreateContext(childName);\n context.outlet = outlet;\n this.contexts.set(childName, context);\n }\n /**\n * Called when a `RouterOutlet` directive is destroyed.\n * We need to keep the context as the outlet could be destroyed inside a NgIf and might be\n * re-created later.\n */\n onChildOutletDestroyed(childName) {\n const context = this.getContext(childName);\n if (context) {\n context.outlet = null;\n context.attachRef = null;\n }\n }\n /**\n * Called when the corresponding route is deactivated during navigation.\n * Because the component get destroyed, all children outlet are destroyed.\n */\n onOutletDeactivated() {\n const contexts = this.contexts;\n this.contexts = new Map();\n return contexts;\n }\n onOutletReAttached(contexts) {\n this.contexts = contexts;\n }\n getOrCreateContext(childName) {\n let context = this.getContext(childName);\n if (!context) {\n context = new OutletContext();\n this.contexts.set(childName, context);\n }\n return context;\n }\n getContext(childName) {\n return this.contexts.get(childName) || null;\n }\n}\nChildrenOutletContexts.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: ChildrenOutletContexts, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nChildrenOutletContexts.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: ChildrenOutletContexts, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: ChildrenOutletContexts, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n\nconst NG_DEV_MODE$8 = typeof ngDevMode === 'undefined' || ngDevMode;\n/**\n * @description\n *\n * Acts as a placeholder that Angular dynamically fills based on the current router state.\n *\n * Each outlet can have a unique name, determined by the optional `name` attribute.\n * The name cannot be set or changed dynamically. If not set, default value is \"primary\".\n *\n * ```\n * <router-outlet></router-outlet>\n * <router-outlet name='left'></router-outlet>\n * <router-outlet name='right'></router-outlet>\n * ```\n *\n * Named outlets can be the targets of secondary routes.\n * The `Route` object for a secondary route has an `outlet` property to identify the target outlet:\n *\n * `{path: <base-path>, component: <component>, outlet: <target_outlet_name>}`\n *\n * Using named outlets and secondary routes, you can target multiple outlets in\n * the same `RouterLink` directive.\n *\n * The router keeps track of separate branches in a navigation tree for each named outlet and\n * generates a representation of that tree in the URL.\n * The URL for a secondary route uses the following syntax to specify both the primary and secondary\n * routes at the same time:\n *\n * `http://base-path/primary-route-path(outlet-name:route-path)`\n *\n * A router outlet emits an activate event when a new component is instantiated,\n * deactivate event when a component is destroyed.\n * An attached event emits when the `RouteReuseStrategy` instructs the outlet to reattach the\n * subtree, and the detached event emits when the `RouteReuseStrategy` instructs the outlet to\n * detach the subtree.\n *\n * ```\n * <router-outlet\n * (activate)='onActivate($event)'\n * (deactivate)='onDeactivate($event)'\n * (attach)='onAttach($event)'\n * (detach)='onDetach($event)'></router-outlet>\n * ```\n *\n * @see [Routing tutorial](guide/router-tutorial-toh#named-outlets \"Example of a named\n * outlet and secondary route configuration\").\n * @see `RouterLink`\n * @see `Route`\n * @ngModule RouterModule\n *\n * @publicApi\n */\nclass RouterOutlet {\n constructor() {\n this.activated = null;\n this._activatedRoute = null;\n /**\n * The name of the outlet\n *\n * @see [named outlets](guide/router-tutorial-toh#displaying-multiple-routes-in-named-outlets)\n */\n this.name = PRIMARY_OUTLET;\n this.activateEvents = new EventEmitter();\n this.deactivateEvents = new EventEmitter();\n /**\n * Emits an attached component instance when the `RouteReuseStrategy` instructs to re-attach a\n * previously detached subtree.\n **/\n this.attachEvents = new EventEmitter();\n /**\n * Emits a detached component instance when the `RouteReuseStrategy` instructs to detach the\n * subtree.\n */\n this.detachEvents = new EventEmitter();\n this.parentContexts = inject(ChildrenOutletContexts);\n this.location = inject(ViewContainerRef);\n this.changeDetector = inject(ChangeDetectorRef);\n this.environmentInjector = inject(EnvironmentInjector);\n }\n /** @nodoc */\n ngOnChanges(changes) {\n if (changes['name']) {\n const { firstChange, previousValue } = changes['name'];\n if (firstChange) {\n // The first change is handled by ngOnInit. Because ngOnChanges doesn't get called when no\n // input is set at all, we need to centrally handle the first change there.\n return;\n }\n // unregister with the old name\n if (this.isTrackedInParentContexts(previousValue)) {\n this.deactivate();\n this.parentContexts.onChildOutletDestroyed(previousValue);\n }\n // register the new name\n this.initializeOutletWithName();\n }\n }\n /** @nodoc */\n ngOnDestroy() {\n // Ensure that the registered outlet is this one before removing it on the context.\n if (this.isTrackedInParentContexts(this.name)) {\n this.parentContexts.onChildOutletDestroyed(this.name);\n }\n }\n isTrackedInParentContexts(outletName) {\n return this.parentContexts.getContext(outletName)?.outlet === this;\n }\n /** @nodoc */\n ngOnInit() {\n this.initializeOutletWithName();\n }\n initializeOutletWithName() {\n this.parentContexts.onChildOutletCreated(this.name, this);\n if (this.activated) {\n return;\n }\n // If the outlet was not instantiated at the time the route got activated we need to populate\n // the outlet when it is initialized (ie inside a NgIf)\n const context = this.parentContexts.getContext(this.name);\n if (context?.route) {\n if (context.attachRef) {\n // `attachRef` is populated when there is an existing component to mount\n this.attach(context.attachRef, context.route);\n }\n else {\n // otherwise the component defined in the configuration is created\n this.activateWith(context.route, context.injector);\n }\n }\n }\n get isActivated() {\n return !!this.activated;\n }\n /**\n * @returns The currently activated component instance.\n * @throws An error if the outlet is not activated.\n */\n get component() {\n if (!this.activated)\n throw new ɵRuntimeError(4012 /* RuntimeErrorCode.OUTLET_NOT_ACTIVATED */, NG_DEV_MODE$8 && 'Outlet is not activated');\n return this.activated.instance;\n }\n get activatedRoute() {\n if (!this.activated)\n throw new ɵRuntimeError(4012 /* RuntimeErrorCode.OUTLET_NOT_ACTIVATED */, NG_DEV_MODE$8 && 'Outlet is not activated');\n return this._activatedRoute;\n }\n get activatedRouteData() {\n if (this._activatedRoute) {\n return this._activatedRoute.snapshot.data;\n }\n return {};\n }\n /**\n * Called when the `RouteReuseStrategy` instructs to detach the subtree\n */\n detach() {\n if (!this.activated)\n throw new ɵRuntimeError(4012 /* RuntimeErrorCode.OUTLET_NOT_ACTIVATED */, NG_DEV_MODE$8 && 'Outlet is not activated');\n this.location.detach();\n const cmp = this.activated;\n this.activated = null;\n this._activatedRoute = null;\n this.detachEvents.emit(cmp.instance);\n return cmp;\n }\n /**\n * Called when the `RouteReuseStrategy` instructs to re-attach a previously detached subtree\n */\n attach(ref, activatedRoute) {\n this.activated = ref;\n this._activatedRoute = activatedRoute;\n this.location.insert(ref.hostView);\n this.attachEvents.emit(ref.instance);\n }\n deactivate() {\n if (this.activated) {\n const c = this.component;\n this.activated.destroy();\n this.activated = null;\n this._activatedRoute = null;\n this.deactivateEvents.emit(c);\n }\n }\n activateWith(activatedRoute, resolverOrInjector) {\n if (this.isActivated) {\n throw new ɵRuntimeError(4013 /* RuntimeErrorCode.OUTLET_ALREADY_ACTIVATED */, NG_DEV_MODE$8 && 'Cannot activate an already activated outlet');\n }\n this._activatedRoute = activatedRoute;\n const location = this.location;\n const snapshot = activatedRoute.snapshot;\n const component = snapshot.component;\n const childContexts = this.parentContexts.getOrCreateContext(this.name).children;\n const injector = new OutletInjector(activatedRoute, childContexts, location.injector);\n if (resolverOrInjector && isComponentFactoryResolver(resolverOrInjector)) {\n const factory = resolverOrInjector.resolveComponentFactory(component);\n this.activated = location.createComponent(factory, location.length, injector);\n }\n else {\n const environmentInjector = resolverOrInjector ?? this.environmentInjector;\n this.activated = location.createComponent(component, { index: location.length, injector, environmentInjector });\n }\n // Calling `markForCheck` to make sure we will run the change detection when the\n // `RouterOutlet` is inside a `ChangeDetectionStrategy.OnPush` component.\n this.changeDetector.markForCheck();\n this.activateEvents.emit(this.activated.instance);\n }\n}\nRouterOutlet.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: RouterOutlet, deps: [], target: i0.ɵɵFactoryTarget.Directive });\nRouterOutlet.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"15.2.9\", type: RouterOutlet, isStandalone: true, selector: \"router-outlet\", inputs: { name: \"name\" }, outputs: { activateEvents: \"activate\", deactivateEvents: \"deactivate\", attachEvents: \"attach\", detachEvents: \"detach\" }, exportAs: [\"outlet\"], usesOnChanges: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: RouterOutlet, decorators: [{\n type: Directive,\n args: [{\n selector: 'router-outlet',\n exportAs: 'outlet',\n standalone: true,\n }]\n }], propDecorators: { name: [{\n type: Input\n }], activateEvents: [{\n type: Output,\n args: ['activate']\n }], deactivateEvents: [{\n type: Output,\n args: ['deactivate']\n }], attachEvents: [{\n type: Output,\n args: ['attach']\n }], detachEvents: [{\n type: Output,\n args: ['detach']\n }] } });\nclass OutletInjector {\n constructor(route, childContexts, parent) {\n this.route = route;\n this.childContexts = childContexts;\n this.parent = parent;\n }\n get(token, notFoundValue) {\n if (token === ActivatedRoute) {\n return this.route;\n }\n if (token === ChildrenOutletContexts) {\n return this.childContexts;\n }\n return this.parent.get(token, notFoundValue);\n }\n}\nfunction isComponentFactoryResolver(item) {\n return !!item.resolveComponentFactory;\n}\n\n/**\n * This component is used internally within the router to be a placeholder when an empty\n * router-outlet is needed. For example, with a config such as:\n *\n * `{path: 'parent', outlet: 'nav', children: [...]}`\n *\n * In order to render, there needs to be a component on this config, which will default\n * to this `EmptyOutletComponent`.\n */\nclass ɵEmptyOutletComponent {\n}\nɵEmptyOutletComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: ɵEmptyOutletComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\nɵEmptyOutletComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"15.2.9\", type: ɵEmptyOutletComponent, isStandalone: true, selector: \"ng-component\", ngImport: i0, template: `<router-outlet></router-outlet>`, isInline: true, dependencies: [{ kind: \"directive\", type: RouterOutlet, selector: \"router-outlet\", inputs: [\"name\"], outputs: [\"activate\", \"deactivate\", \"attach\", \"detach\"], exportAs: [\"outlet\"] }] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: ɵEmptyOutletComponent, decorators: [{\n type: Component,\n args: [{\n template: `<router-outlet></router-outlet>`,\n imports: [RouterOutlet],\n standalone: true,\n }]\n }] });\n\n/**\n * Creates an `EnvironmentInjector` if the `Route` has providers and one does not already exist\n * and returns the injector. Otherwise, if the `Route` does not have `providers`, returns the\n * `currentInjector`.\n *\n * @param route The route that might have providers\n * @param currentInjector The parent injector of the `Route`\n */\nfunction getOrCreateRouteInjectorIfNeeded(route, currentInjector) {\n if (route.providers && !route._injector) {\n route._injector =\n createEnvironmentInjector(route.providers, currentInjector, `Route: ${route.path}`);\n }\n return route._injector ?? currentInjector;\n}\nfunction getLoadedRoutes(route) {\n return route._loadedRoutes;\n}\nfunction getLoadedInjector(route) {\n return route._loadedInjector;\n}\nfunction getLoadedComponent(route) {\n return route._loadedComponent;\n}\nfunction getProvidersInjector(route) {\n return route._injector;\n}\nfunction validateConfig(config, parentPath = '', requireStandaloneComponents = false) {\n // forEach doesn't iterate undefined values\n for (let i = 0; i < config.length; i++) {\n const route = config[i];\n const fullPath = getFullPath(parentPath, route);\n validateNode(route, fullPath, requireStandaloneComponents);\n }\n}\nfunction assertStandalone(fullPath, component) {\n if (component && ɵisNgModule(component)) {\n throw new ɵRuntimeError(4014 /* RuntimeErrorCode.INVALID_ROUTE_CONFIG */, `Invalid configuration of route '${fullPath}'. You are using 'loadComponent' with a module, ` +\n `but it must be used with standalone components. Use 'loadChildren' instead.`);\n }\n else if (component && !isStandalone(component)) {\n throw new ɵRuntimeError(4014 /* RuntimeErrorCode.INVALID_ROUTE_CONFIG */, `Invalid configuration of route '${fullPath}'. The component must be standalone.`);\n }\n}\nfunction validateNode(route, fullPath, requireStandaloneComponents) {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (!route) {\n throw new ɵRuntimeError(4014 /* RuntimeErrorCode.INVALID_ROUTE_CONFIG */, `\n Invalid configuration of route '${fullPath}': Encountered undefined route.\n The reason might be an extra comma.\n\n Example:\n const routes: Routes = [\n { path: '', redirectTo: '/dashboard', pathMatch: 'full' },\n { path: 'dashboard', component: DashboardComponent },, << two commas\n { path: 'detail/:id', component: HeroDetailComponent }\n ];\n `);\n }\n if (Array.isArray(route)) {\n throw new ɵRuntimeError(4014 /* RuntimeErrorCode.INVALID_ROUTE_CONFIG */, `Invalid configuration of route '${fullPath}': Array cannot be specified`);\n }\n if (!route.redirectTo && !route.component && !route.loadComponent && !route.children &&\n !route.loadChildren && (route.outlet && route.outlet !== PRIMARY_OUTLET)) {\n throw new ɵRuntimeError(4014 /* RuntimeErrorCode.INVALID_ROUTE_CONFIG */, `Invalid configuration of route '${fullPath}': a componentless route without children or loadChildren cannot have a named outlet set`);\n }\n if (route.redirectTo && route.children) {\n throw new ɵRuntimeError(4014 /* RuntimeErrorCode.INVALID_ROUTE_CONFIG */, `Invalid configuration of route '${fullPath}': redirectTo and children cannot be used together`);\n }\n if (route.redirectTo && route.loadChildren) {\n throw new ɵRuntimeError(4014 /* RuntimeErrorCode.INVALID_ROUTE_CONFIG */, `Invalid configuration of route '${fullPath}': redirectTo and loadChildren cannot be used together`);\n }\n if (route.children && route.loadChildren) {\n throw new ɵRuntimeError(4014 /* RuntimeErrorCode.INVALID_ROUTE_CONFIG */, `Invalid configuration of route '${fullPath}': children and loadChildren cannot be used together`);\n }\n if (route.redirectTo && (route.component || route.loadComponent)) {\n throw new ɵRuntimeError(4014 /* RuntimeErrorCode.INVALID_ROUTE_CONFIG */, `Invalid configuration of route '${fullPath}': redirectTo and component/loadComponent cannot be used together`);\n }\n if (route.component && route.loadComponent) {\n throw new ɵRuntimeError(4014 /* RuntimeErrorCode.INVALID_ROUTE_CONFIG */, `Invalid configuration of route '${fullPath}': component and loadComponent cannot be used together`);\n }\n if (route.redirectTo && route.canActivate) {\n throw new ɵRuntimeError(4014 /* RuntimeErrorCode.INVALID_ROUTE_CONFIG */, `Invalid configuration of route '${fullPath}': redirectTo and canActivate cannot be used together. Redirects happen before activation ` +\n `so canActivate will never be executed.`);\n }\n if (route.path && route.matcher) {\n throw new ɵRuntimeError(4014 /* RuntimeErrorCode.INVALID_ROUTE_CONFIG */, `Invalid configuration of route '${fullPath}': path and matcher cannot be used together`);\n }\n if (route.redirectTo === void 0 && !route.component && !route.loadComponent &&\n !route.children && !route.loadChildren) {\n throw new ɵRuntimeError(4014 /* RuntimeErrorCode.INVALID_ROUTE_CONFIG */, `Invalid configuration of route '${fullPath}'. One of the following must be provided: component, loadComponent, redirectTo, children or loadChildren`);\n }\n if (route.path === void 0 && route.matcher === void 0) {\n throw new ɵRuntimeError(4014 /* RuntimeErrorCode.INVALID_ROUTE_CONFIG */, `Invalid configuration of route '${fullPath}': routes must have either a path or a matcher specified`);\n }\n if (typeof route.path === 'string' && route.path.charAt(0) === '/') {\n throw new ɵRuntimeError(4014 /* RuntimeErrorCode.INVALID_ROUTE_CONFIG */, `Invalid configuration of route '${fullPath}': path cannot start with a slash`);\n }\n if (route.path === '' && route.redirectTo !== void 0 && route.pathMatch === void 0) {\n const exp = `The default value of 'pathMatch' is 'prefix', but often the intent is to use 'full'.`;\n throw new ɵRuntimeError(4014 /* RuntimeErrorCode.INVALID_ROUTE_CONFIG */, `Invalid configuration of route '{path: \"${fullPath}\", redirectTo: \"${route.redirectTo}\"}': please provide 'pathMatch'. ${exp}`);\n }\n if (requireStandaloneComponents) {\n assertStandalone(fullPath, route.component);\n }\n }\n if (route.children) {\n validateConfig(route.children, fullPath, requireStandaloneComponents);\n }\n}\nfunction getFullPath(parentPath, currentRoute) {\n if (!currentRoute) {\n return parentPath;\n }\n if (!parentPath && !currentRoute.path) {\n return '';\n }\n else if (parentPath && !currentRoute.path) {\n return `${parentPath}/`;\n }\n else if (!parentPath && currentRoute.path) {\n return currentRoute.path;\n }\n else {\n return `${parentPath}/${currentRoute.path}`;\n }\n}\n/**\n * Makes a copy of the config and adds any default required properties.\n */\nfunction standardizeConfig(r) {\n const children = r.children && r.children.map(standardizeConfig);\n const c = children ? { ...r, children } : { ...r };\n if ((!c.component && !c.loadComponent) && (children || c.loadChildren) &&\n (c.outlet && c.outlet !== PRIMARY_OUTLET)) {\n c.component = ɵEmptyOutletComponent;\n }\n return c;\n}\n/** Returns the `route.outlet` or PRIMARY_OUTLET if none exists. */\nfunction getOutlet(route) {\n return route.outlet || PRIMARY_OUTLET;\n}\n/**\n * Sorts the `routes` such that the ones with an outlet matching `outletName` come first.\n * The order of the configs is otherwise preserved.\n */\nfunction sortByMatchingOutlets(routes, outletName) {\n const sortedConfig = routes.filter(r => getOutlet(r) === outletName);\n sortedConfig.push(...routes.filter(r => getOutlet(r) !== outletName));\n return sortedConfig;\n}\n/**\n * Gets the first injector in the snapshot's parent tree.\n *\n * If the `Route` has a static list of providers, the returned injector will be the one created from\n * those. If it does not exist, the returned injector may come from the parents, which may be from a\n * loaded config or their static providers.\n *\n * Returns `null` if there is neither this nor any parents have a stored injector.\n *\n * Generally used for retrieving the injector to use for getting tokens for guards/resolvers and\n * also used for getting the correct injector to use for creating components.\n */\nfunction getClosestRouteInjector(snapshot) {\n if (!snapshot)\n return null;\n // If the current route has its own injector, which is created from the static providers on the\n // route itself, we should use that. Otherwise, we start at the parent since we do not want to\n // include the lazy loaded injector from this route.\n if (snapshot.routeConfig?._injector) {\n return snapshot.routeConfig._injector;\n }\n for (let s = snapshot.parent; s; s = s.parent) {\n const route = s.routeConfig;\n // Note that the order here is important. `_loadedInjector` stored on the route with\n // `loadChildren: () => NgModule` so it applies to child routes with priority. The `_injector`\n // is created from the static providers on that parent route, so it applies to the children as\n // well, but only if there is no lazy loaded NgModuleRef injector.\n if (route?._loadedInjector)\n return route._loadedInjector;\n if (route?._injector)\n return route._injector;\n }\n return null;\n}\n\nconst activateRoutes = (rootContexts, routeReuseStrategy, forwardEvent) => map(t => {\n new ActivateRoutes(routeReuseStrategy, t.targetRouterState, t.currentRouterState, forwardEvent)\n .activate(rootContexts);\n return t;\n});\nclass ActivateRoutes {\n constructor(routeReuseStrategy, futureState, currState, forwardEvent) {\n this.routeReuseStrategy = routeReuseStrategy;\n this.futureState = futureState;\n this.currState = currState;\n this.forwardEvent = forwardEvent;\n }\n activate(parentContexts) {\n const futureRoot = this.futureState._root;\n const currRoot = this.currState ? this.currState._root : null;\n this.deactivateChildRoutes(futureRoot, currRoot, parentContexts);\n advanceActivatedRoute(this.futureState.root);\n this.activateChildRoutes(futureRoot, currRoot, parentContexts);\n }\n // De-activate the child route that are not re-used for the future state\n deactivateChildRoutes(futureNode, currNode, contexts) {\n const children = nodeChildrenAsMap(currNode);\n // Recurse on the routes active in the future state to de-activate deeper children\n futureNode.children.forEach(futureChild => {\n const childOutletName = futureChild.value.outlet;\n this.deactivateRoutes(futureChild, children[childOutletName], contexts);\n delete children[childOutletName];\n });\n // De-activate the routes that will not be re-used\n forEach(children, (v, childName) => {\n this.deactivateRouteAndItsChildren(v, contexts);\n });\n }\n deactivateRoutes(futureNode, currNode, parentContext) {\n const future = futureNode.value;\n const curr = currNode ? currNode.value : null;\n if (future === curr) {\n // Reusing the node, check to see if the children need to be de-activated\n if (future.component) {\n // If we have a normal route, we need to go through an outlet.\n const context = parentContext.getContext(future.outlet);\n if (context) {\n this.deactivateChildRoutes(futureNode, currNode, context.children);\n }\n }\n else {\n // if we have a componentless route, we recurse but keep the same outlet map.\n this.deactivateChildRoutes(futureNode, currNode, parentContext);\n }\n }\n else {\n if (curr) {\n // Deactivate the current route which will not be re-used\n this.deactivateRouteAndItsChildren(currNode, parentContext);\n }\n }\n }\n deactivateRouteAndItsChildren(route, parentContexts) {\n // If there is no component, the Route is never attached to an outlet (because there is no\n // component to attach).\n if (route.value.component && this.routeReuseStrategy.shouldDetach(route.value.snapshot)) {\n this.detachAndStoreRouteSubtree(route, parentContexts);\n }\n else {\n this.deactivateRouteAndOutlet(route, parentContexts);\n }\n }\n detachAndStoreRouteSubtree(route, parentContexts) {\n const context = parentContexts.getContext(route.value.outlet);\n const contexts = context && route.value.component ? context.children : parentContexts;\n const children = nodeChildrenAsMap(route);\n for (const childOutlet of Object.keys(children)) {\n this.deactivateRouteAndItsChildren(children[childOutlet], contexts);\n }\n if (context && context.outlet) {\n const componentRef = context.outlet.detach();\n const contexts = context.children.onOutletDeactivated();\n this.routeReuseStrategy.store(route.value.snapshot, { componentRef, route, contexts });\n }\n }\n deactivateRouteAndOutlet(route, parentContexts) {\n const context = parentContexts.getContext(route.value.outlet);\n // The context could be `null` if we are on a componentless route but there may still be\n // children that need deactivating.\n const contexts = context && route.value.component ? context.children : parentContexts;\n const children = nodeChildrenAsMap(route);\n for (const childOutlet of Object.keys(children)) {\n this.deactivateRouteAndItsChildren(children[childOutlet], contexts);\n }\n if (context) {\n if (context.outlet) {\n // Destroy the component\n context.outlet.deactivate();\n // Destroy the contexts for all the outlets that were in the component\n context.children.onOutletDeactivated();\n }\n // Clear the information about the attached component on the context but keep the reference to\n // the outlet. Clear even if outlet was not yet activated to avoid activating later with old\n // info\n context.attachRef = null;\n context.resolver = null;\n context.route = null;\n }\n }\n activateChildRoutes(futureNode, currNode, contexts) {\n const children = nodeChildrenAsMap(currNode);\n futureNode.children.forEach(c => {\n this.activateRoutes(c, children[c.value.outlet], contexts);\n this.forwardEvent(new ActivationEnd(c.value.snapshot));\n });\n if (futureNode.children.length) {\n this.forwardEvent(new ChildActivationEnd(futureNode.value.snapshot));\n }\n }\n activateRoutes(futureNode, currNode, parentContexts) {\n const future = futureNode.value;\n const curr = currNode ? currNode.value : null;\n advanceActivatedRoute(future);\n // reusing the node\n if (future === curr) {\n if (future.component) {\n // If we have a normal route, we need to go through an outlet.\n const context = parentContexts.getOrCreateContext(future.outlet);\n this.activateChildRoutes(futureNode, currNode, context.children);\n }\n else {\n // if we have a componentless route, we recurse but keep the same outlet map.\n this.activateChildRoutes(futureNode, currNode, parentContexts);\n }\n }\n else {\n if (future.component) {\n // if we have a normal route, we need to place the component into the outlet and recurse.\n const context = parentContexts.getOrCreateContext(future.outlet);\n if (this.routeReuseStrategy.shouldAttach(future.snapshot)) {\n const stored = this.routeReuseStrategy.retrieve(future.snapshot);\n this.routeReuseStrategy.store(future.snapshot, null);\n context.children.onOutletReAttached(stored.contexts);\n context.attachRef = stored.componentRef;\n context.route = stored.route.value;\n if (context.outlet) {\n // Attach right away when the outlet has already been instantiated\n // Otherwise attach from `RouterOutlet.ngOnInit` when it is instantiated\n context.outlet.attach(stored.componentRef, stored.route.value);\n }\n advanceActivatedRoute(stored.route.value);\n this.activateChildRoutes(futureNode, null, context.children);\n }\n else {\n const injector = getClosestRouteInjector(future.snapshot);\n const cmpFactoryResolver = injector?.get(ComponentFactoryResolver) ?? null;\n context.attachRef = null;\n context.route = future;\n context.resolver = cmpFactoryResolver;\n context.injector = injector;\n if (context.outlet) {\n // Activate the outlet when it has already been instantiated\n // Otherwise it will get activated from its `ngOnInit` when instantiated\n context.outlet.activateWith(future, context.injector);\n }\n this.activateChildRoutes(futureNode, null, context.children);\n }\n }\n else {\n // if we have a componentless route, we recurse but keep the same outlet map.\n this.activateChildRoutes(futureNode, null, parentContexts);\n }\n }\n }\n}\n\nclass CanActivate {\n constructor(path) {\n this.path = path;\n this.route = this.path[this.path.length - 1];\n }\n}\nclass CanDeactivate {\n constructor(component, route) {\n this.component = component;\n this.route = route;\n }\n}\nfunction getAllRouteGuards(future, curr, parentContexts) {\n const futureRoot = future._root;\n const currRoot = curr ? curr._root : null;\n return getChildRouteGuards(futureRoot, currRoot, parentContexts, [futureRoot.value]);\n}\nfunction getCanActivateChild(p) {\n const canActivateChild = p.routeConfig ? p.routeConfig.canActivateChild : null;\n if (!canActivateChild || canActivateChild.length === 0)\n return null;\n return { node: p, guards: canActivateChild };\n}\nfunction getTokenOrFunctionIdentity(tokenOrFunction, injector) {\n const NOT_FOUND = Symbol();\n const result = injector.get(tokenOrFunction, NOT_FOUND);\n if (result === NOT_FOUND) {\n if (typeof tokenOrFunction === 'function' && !ɵisInjectable(tokenOrFunction)) {\n // We think the token is just a function so return it as-is\n return tokenOrFunction;\n }\n else {\n // This will throw the not found error\n return injector.get(tokenOrFunction);\n }\n }\n return result;\n}\nfunction getChildRouteGuards(futureNode, currNode, contexts, futurePath, checks = {\n canDeactivateChecks: [],\n canActivateChecks: []\n}) {\n const prevChildren = nodeChildrenAsMap(currNode);\n // Process the children of the future route\n futureNode.children.forEach(c => {\n getRouteGuards(c, prevChildren[c.value.outlet], contexts, futurePath.concat([c.value]), checks);\n delete prevChildren[c.value.outlet];\n });\n // Process any children left from the current route (not active for the future route)\n forEach(prevChildren, (v, k) => deactivateRouteAndItsChildren(v, contexts.getContext(k), checks));\n return checks;\n}\nfunction getRouteGuards(futureNode, currNode, parentContexts, futurePath, checks = {\n canDeactivateChecks: [],\n canActivateChecks: []\n}) {\n const future = futureNode.value;\n const curr = currNode ? currNode.value : null;\n const context = parentContexts ? parentContexts.getContext(futureNode.value.outlet) : null;\n // reusing the node\n if (curr && future.routeConfig === curr.routeConfig) {\n const shouldRun = shouldRunGuardsAndResolvers(curr, future, future.routeConfig.runGuardsAndResolvers);\n if (shouldRun) {\n checks.canActivateChecks.push(new CanActivate(futurePath));\n }\n else {\n // we need to set the data\n future.data = curr.data;\n future._resolvedData = curr._resolvedData;\n }\n // If we have a component, we need to go through an outlet.\n if (future.component) {\n getChildRouteGuards(futureNode, currNode, context ? context.children : null, futurePath, checks);\n // if we have a componentless route, we recurse but keep the same outlet map.\n }\n else {\n getChildRouteGuards(futureNode, currNode, parentContexts, futurePath, checks);\n }\n if (shouldRun && context && context.outlet && context.outlet.isActivated) {\n checks.canDeactivateChecks.push(new CanDeactivate(context.outlet.component, curr));\n }\n }\n else {\n if (curr) {\n deactivateRouteAndItsChildren(currNode, context, checks);\n }\n checks.canActivateChecks.push(new CanActivate(futurePath));\n // If we have a component, we need to go through an outlet.\n if (future.component) {\n getChildRouteGuards(futureNode, null, context ? context.children : null, futurePath, checks);\n // if we have a componentless route, we recurse but keep the same outlet map.\n }\n else {\n getChildRouteGuards(futureNode, null, parentContexts, futurePath, checks);\n }\n }\n return checks;\n}\nfunction shouldRunGuardsAndResolvers(curr, future, mode) {\n if (typeof mode === 'function') {\n return mode(curr, future);\n }\n switch (mode) {\n case 'pathParamsChange':\n return !equalPath(curr.url, future.url);\n case 'pathParamsOrQueryParamsChange':\n return !equalPath(curr.url, future.url) ||\n !shallowEqual(curr.queryParams, future.queryParams);\n case 'always':\n return true;\n case 'paramsOrQueryParamsChange':\n return !equalParamsAndUrlSegments(curr, future) ||\n !shallowEqual(curr.queryParams, future.queryParams);\n case 'paramsChange':\n default:\n return !equalParamsAndUrlSegments(curr, future);\n }\n}\nfunction deactivateRouteAndItsChildren(route, context, checks) {\n const children = nodeChildrenAsMap(route);\n const r = route.value;\n forEach(children, (node, childName) => {\n if (!r.component) {\n deactivateRouteAndItsChildren(node, context, checks);\n }\n else if (context) {\n deactivateRouteAndItsChildren(node, context.children.getContext(childName), checks);\n }\n else {\n deactivateRouteAndItsChildren(node, null, checks);\n }\n });\n if (!r.component) {\n checks.canDeactivateChecks.push(new CanDeactivate(null, r));\n }\n else if (context && context.outlet && context.outlet.isActivated) {\n checks.canDeactivateChecks.push(new CanDeactivate(context.outlet.component, r));\n }\n else {\n checks.canDeactivateChecks.push(new CanDeactivate(null, r));\n }\n}\n\n/**\n * Simple function check, but generic so type inference will flow. Example:\n *\n * function product(a: number, b: number) {\n * return a * b;\n * }\n *\n * if (isFunction<product>(fn)) {\n * return fn(1, 2);\n * } else {\n * throw \"Must provide the `product` function\";\n * }\n */\nfunction isFunction(v) {\n return typeof v === 'function';\n}\nfunction isBoolean(v) {\n return typeof v === 'boolean';\n}\nfunction isCanLoad(guard) {\n return guard && isFunction(guard.canLoad);\n}\nfunction isCanActivate(guard) {\n return guard && isFunction(guard.canActivate);\n}\nfunction isCanActivateChild(guard) {\n return guard && isFunction(guard.canActivateChild);\n}\nfunction isCanDeactivate(guard) {\n return guard && isFunction(guard.canDeactivate);\n}\nfunction isCanMatch(guard) {\n return guard && isFunction(guard.canMatch);\n}\nfunction isRedirectingNavigationCancelingError(error) {\n return isNavigationCancelingError(error) && isUrlTree(error.url);\n}\nfunction isNavigationCancelingError(error) {\n return error && error[NAVIGATION_CANCELING_ERROR];\n}\nfunction isEmptyError(e) {\n return e instanceof EmptyError || e?.name === 'EmptyError';\n}\n\nconst INITIAL_VALUE = Symbol('INITIAL_VALUE');\nfunction prioritizedGuardValue() {\n return switchMap(obs => {\n return combineLatest(obs.map(o => o.pipe(take(1), startWith(INITIAL_VALUE))))\n .pipe(map((results) => {\n for (const result of results) {\n if (result === true) {\n // If result is true, check the next one\n continue;\n }\n else if (result === INITIAL_VALUE) {\n // If guard has not finished, we need to stop processing.\n return INITIAL_VALUE;\n }\n else if (result === false || result instanceof UrlTree) {\n // Result finished and was not true. Return the result.\n // Note that we only allow false/UrlTree. Other values are considered invalid and\n // ignored.\n return result;\n }\n }\n // Everything resolved to true. Return true.\n return true;\n }), filter((item) => item !== INITIAL_VALUE), take(1));\n });\n}\n\nfunction checkGuards(injector, forwardEvent) {\n return mergeMap(t => {\n const { targetSnapshot, currentSnapshot, guards: { canActivateChecks, canDeactivateChecks } } = t;\n if (canDeactivateChecks.length === 0 && canActivateChecks.length === 0) {\n return of({ ...t, guardsResult: true });\n }\n return runCanDeactivateChecks(canDeactivateChecks, targetSnapshot, currentSnapshot, injector)\n .pipe(mergeMap(canDeactivate => {\n return canDeactivate && isBoolean(canDeactivate) ?\n runCanActivateChecks(targetSnapshot, canActivateChecks, injector, forwardEvent) :\n of(canDeactivate);\n }), map(guardsResult => ({ ...t, guardsResult })));\n });\n}\nfunction runCanDeactivateChecks(checks, futureRSS, currRSS, injector) {\n return from(checks).pipe(mergeMap(check => runCanDeactivate(check.component, check.route, currRSS, futureRSS, injector)), first(result => {\n return result !== true;\n }, true));\n}\nfunction runCanActivateChecks(futureSnapshot, checks, injector, forwardEvent) {\n return from(checks).pipe(concatMap((check) => {\n return concat(fireChildActivationStart(check.route.parent, forwardEvent), fireActivationStart(check.route, forwardEvent), runCanActivateChild(futureSnapshot, check.path, injector), runCanActivate(futureSnapshot, check.route, injector));\n }), first(result => {\n return result !== true;\n }, true));\n}\n/**\n * This should fire off `ActivationStart` events for each route being activated at this\n * level.\n * In other words, if you're activating `a` and `b` below, `path` will contain the\n * `ActivatedRouteSnapshot`s for both and we will fire `ActivationStart` for both. Always\n * return\n * `true` so checks continue to run.\n */\nfunction fireActivationStart(snapshot, forwardEvent) {\n if (snapshot !== null && forwardEvent) {\n forwardEvent(new ActivationStart(snapshot));\n }\n return of(true);\n}\n/**\n * This should fire off `ChildActivationStart` events for each route being activated at this\n * level.\n * In other words, if you're activating `a` and `b` below, `path` will contain the\n * `ActivatedRouteSnapshot`s for both and we will fire `ChildActivationStart` for both. Always\n * return\n * `true` so checks continue to run.\n */\nfunction fireChildActivationStart(snapshot, forwardEvent) {\n if (snapshot !== null && forwardEvent) {\n forwardEvent(new ChildActivationStart(snapshot));\n }\n return of(true);\n}\nfunction runCanActivate(futureRSS, futureARS, injector) {\n const canActivate = futureARS.routeConfig ? futureARS.routeConfig.canActivate : null;\n if (!canActivate || canActivate.length === 0)\n return of(true);\n const canActivateObservables = canActivate.map((canActivate) => {\n return defer(() => {\n const closestInjector = getClosestRouteInjector(futureARS) ?? injector;\n const guard = getTokenOrFunctionIdentity(canActivate, closestInjector);\n const guardVal = isCanActivate(guard) ?\n guard.canActivate(futureARS, futureRSS) :\n closestInjector.runInContext(() => guard(futureARS, futureRSS));\n return wrapIntoObservable(guardVal).pipe(first());\n });\n });\n return of(canActivateObservables).pipe(prioritizedGuardValue());\n}\nfunction runCanActivateChild(futureRSS, path, injector) {\n const futureARS = path[path.length - 1];\n const canActivateChildGuards = path.slice(0, path.length - 1)\n .reverse()\n .map(p => getCanActivateChild(p))\n .filter(_ => _ !== null);\n const canActivateChildGuardsMapped = canActivateChildGuards.map((d) => {\n return defer(() => {\n const guardsMapped = d.guards.map((canActivateChild) => {\n const closestInjector = getClosestRouteInjector(d.node) ?? injector;\n const guard = getTokenOrFunctionIdentity(canActivateChild, closestInjector);\n const guardVal = isCanActivateChild(guard) ?\n guard.canActivateChild(futureARS, futureRSS) :\n closestInjector.runInContext(() => guard(futureARS, futureRSS));\n return wrapIntoObservable(guardVal).pipe(first());\n });\n return of(guardsMapped).pipe(prioritizedGuardValue());\n });\n });\n return of(canActivateChildGuardsMapped).pipe(prioritizedGuardValue());\n}\nfunction runCanDeactivate(component, currARS, currRSS, futureRSS, injector) {\n const canDeactivate = currARS && currARS.routeConfig ? currARS.routeConfig.canDeactivate : null;\n if (!canDeactivate || canDeactivate.length === 0)\n return of(true);\n const canDeactivateObservables = canDeactivate.map((c) => {\n const closestInjector = getClosestRouteInjector(currARS) ?? injector;\n const guard = getTokenOrFunctionIdentity(c, closestInjector);\n const guardVal = isCanDeactivate(guard) ?\n guard.canDeactivate(component, currARS, currRSS, futureRSS) :\n closestInjector.runInContext(() => guard(component, currARS, currRSS, futureRSS));\n return wrapIntoObservable(guardVal).pipe(first());\n });\n return of(canDeactivateObservables).pipe(prioritizedGuardValue());\n}\nfunction runCanLoadGuards(injector, route, segments, urlSerializer) {\n const canLoad = route.canLoad;\n if (canLoad === undefined || canLoad.length === 0) {\n return of(true);\n }\n const canLoadObservables = canLoad.map((injectionToken) => {\n const guard = getTokenOrFunctionIdentity(injectionToken, injector);\n const guardVal = isCanLoad(guard) ?\n guard.canLoad(route, segments) :\n injector.runInContext(() => guard(route, segments));\n return wrapIntoObservable(guardVal);\n });\n return of(canLoadObservables)\n .pipe(prioritizedGuardValue(), redirectIfUrlTree(urlSerializer));\n}\nfunction redirectIfUrlTree(urlSerializer) {\n return pipe(tap((result) => {\n if (!isUrlTree(result))\n return;\n throw redirectingNavigationError(urlSerializer, result);\n }), map(result => result === true));\n}\nfunction runCanMatchGuards(injector, route, segments, urlSerializer) {\n const canMatch = route.canMatch;\n if (!canMatch || canMatch.length === 0)\n return of(true);\n const canMatchObservables = canMatch.map(injectionToken => {\n const guard = getTokenOrFunctionIdentity(injectionToken, injector);\n const guardVal = isCanMatch(guard) ?\n guard.canMatch(route, segments) :\n injector.runInContext(() => guard(route, segments));\n return wrapIntoObservable(guardVal);\n });\n return of(canMatchObservables)\n .pipe(prioritizedGuardValue(), redirectIfUrlTree(urlSerializer));\n}\n\nconst noMatch$1 = {\n matched: false,\n consumedSegments: [],\n remainingSegments: [],\n parameters: {},\n positionalParamSegments: {}\n};\nfunction matchWithChecks(segmentGroup, route, segments, injector, urlSerializer) {\n const result = match(segmentGroup, route, segments);\n if (!result.matched) {\n return of(result);\n }\n // Only create the Route's `EnvironmentInjector` if it matches the attempted\n // navigation\n injector = getOrCreateRouteInjectorIfNeeded(route, injector);\n return runCanMatchGuards(injector, route, segments, urlSerializer)\n .pipe(map((v) => v === true ? result : { ...noMatch$1 }));\n}\nfunction match(segmentGroup, route, segments) {\n if (route.path === '') {\n if (route.pathMatch === 'full' && (segmentGroup.hasChildren() || segments.length > 0)) {\n return { ...noMatch$1 };\n }\n return {\n matched: true,\n consumedSegments: [],\n remainingSegments: segments,\n parameters: {},\n positionalParamSegments: {}\n };\n }\n const matcher = route.matcher || defaultUrlMatcher;\n const res = matcher(segments, segmentGroup, route);\n if (!res)\n return { ...noMatch$1 };\n const posParams = {};\n forEach(res.posParams, (v, k) => {\n posParams[k] = v.path;\n });\n const parameters = res.consumed.length > 0 ?\n { ...posParams, ...res.consumed[res.consumed.length - 1].parameters } :\n posParams;\n return {\n matched: true,\n consumedSegments: res.consumed,\n remainingSegments: segments.slice(res.consumed.length),\n // TODO(atscott): investigate combining parameters and positionalParamSegments\n parameters,\n positionalParamSegments: res.posParams ?? {}\n };\n}\nfunction split(segmentGroup, consumedSegments, slicedSegments, config) {\n if (slicedSegments.length > 0 &&\n containsEmptyPathMatchesWithNamedOutlets(segmentGroup, slicedSegments, config)) {\n const s = new UrlSegmentGroup(consumedSegments, createChildrenForEmptyPaths(segmentGroup, consumedSegments, config, new UrlSegmentGroup(slicedSegments, segmentGroup.children)));\n s._sourceSegment = segmentGroup;\n s._segmentIndexShift = consumedSegments.length;\n return { segmentGroup: s, slicedSegments: [] };\n }\n if (slicedSegments.length === 0 &&\n containsEmptyPathMatches(segmentGroup, slicedSegments, config)) {\n const s = new UrlSegmentGroup(segmentGroup.segments, addEmptyPathsToChildrenIfNeeded(segmentGroup, consumedSegments, slicedSegments, config, segmentGroup.children));\n s._sourceSegment = segmentGroup;\n s._segmentIndexShift = consumedSegments.length;\n return { segmentGroup: s, slicedSegments };\n }\n const s = new UrlSegmentGroup(segmentGroup.segments, segmentGroup.children);\n s._sourceSegment = segmentGroup;\n s._segmentIndexShift = consumedSegments.length;\n return { segmentGroup: s, slicedSegments };\n}\nfunction addEmptyPathsToChildrenIfNeeded(segmentGroup, consumedSegments, slicedSegments, routes, children) {\n const res = {};\n for (const r of routes) {\n if (emptyPathMatch(segmentGroup, slicedSegments, r) && !children[getOutlet(r)]) {\n const s = new UrlSegmentGroup([], {});\n s._sourceSegment = segmentGroup;\n s._segmentIndexShift = consumedSegments.length;\n res[getOutlet(r)] = s;\n }\n }\n return { ...children, ...res };\n}\nfunction createChildrenForEmptyPaths(segmentGroup, consumedSegments, routes, primarySegment) {\n const res = {};\n res[PRIMARY_OUTLET] = primarySegment;\n primarySegment._sourceSegment = segmentGroup;\n primarySegment._segmentIndexShift = consumedSegments.length;\n for (const r of routes) {\n if (r.path === '' && getOutlet(r) !== PRIMARY_OUTLET) {\n const s = new UrlSegmentGroup([], {});\n s._sourceSegment = segmentGroup;\n s._segmentIndexShift = consumedSegments.length;\n res[getOutlet(r)] = s;\n }\n }\n return res;\n}\nfunction containsEmptyPathMatchesWithNamedOutlets(segmentGroup, slicedSegments, routes) {\n return routes.some(r => emptyPathMatch(segmentGroup, slicedSegments, r) && getOutlet(r) !== PRIMARY_OUTLET);\n}\nfunction containsEmptyPathMatches(segmentGroup, slicedSegments, routes) {\n return routes.some(r => emptyPathMatch(segmentGroup, slicedSegments, r));\n}\nfunction emptyPathMatch(segmentGroup, slicedSegments, r) {\n if ((segmentGroup.hasChildren() || slicedSegments.length > 0) && r.pathMatch === 'full') {\n return false;\n }\n return r.path === '';\n}\n/**\n * Determines if `route` is a path match for the `rawSegment`, `segments`, and `outlet` without\n * verifying that its children are a full match for the remainder of the `rawSegment` children as\n * well.\n */\nfunction isImmediateMatch(route, rawSegment, segments, outlet) {\n // We allow matches to empty paths when the outlets differ so we can match a url like `/(b:b)` to\n // a config like\n // * `{path: '', children: [{path: 'b', outlet: 'b'}]}`\n // or even\n // * `{path: '', outlet: 'a', children: [{path: 'b', outlet: 'b'}]`\n //\n // The exception here is when the segment outlet is for the primary outlet. This would\n // result in a match inside the named outlet because all children there are written as primary\n // outlets. So we need to prevent child named outlet matches in a url like `/b` in a config like\n // * `{path: '', outlet: 'x' children: [{path: 'b'}]}`\n // This should only match if the url is `/(x:b)`.\n if (getOutlet(route) !== outlet &&\n (outlet === PRIMARY_OUTLET || !emptyPathMatch(rawSegment, segments, route))) {\n return false;\n }\n if (route.path === '**') {\n return true;\n }\n return match(rawSegment, route, segments).matched;\n}\nfunction noLeftoversInUrl(segmentGroup, segments, outlet) {\n return segments.length === 0 && !segmentGroup.children[outlet];\n}\n\nconst NG_DEV_MODE$7 = typeof ngDevMode === 'undefined' || ngDevMode;\nclass NoMatch$1 {\n constructor(segmentGroup) {\n this.segmentGroup = segmentGroup || null;\n }\n}\nclass AbsoluteRedirect {\n constructor(urlTree) {\n this.urlTree = urlTree;\n }\n}\nfunction noMatch(segmentGroup) {\n return throwError(new NoMatch$1(segmentGroup));\n}\nfunction absoluteRedirect(newTree) {\n return throwError(new AbsoluteRedirect(newTree));\n}\nfunction namedOutletsRedirect(redirectTo) {\n return throwError(new ɵRuntimeError(4000 /* RuntimeErrorCode.NAMED_OUTLET_REDIRECT */, NG_DEV_MODE$7 &&\n `Only absolute redirects can have named outlets. redirectTo: '${redirectTo}'`));\n}\nfunction canLoadFails(route) {\n return throwError(navigationCancelingError(NG_DEV_MODE$7 &&\n `Cannot load children because the guard of the route \"path: '${route.path}'\" returned false`, 3 /* NavigationCancellationCode.GuardRejected */));\n}\n/**\n * Returns the `UrlTree` with the redirection applied.\n *\n * Lazy modules are loaded along the way.\n */\nfunction applyRedirects$1(injector, configLoader, urlSerializer, urlTree, config) {\n return new ApplyRedirects(injector, configLoader, urlSerializer, urlTree, config).apply();\n}\nclass ApplyRedirects {\n constructor(injector, configLoader, urlSerializer, urlTree, config) {\n this.injector = injector;\n this.configLoader = configLoader;\n this.urlSerializer = urlSerializer;\n this.urlTree = urlTree;\n this.config = config;\n this.allowRedirects = true;\n }\n apply() {\n const splitGroup = split(this.urlTree.root, [], [], this.config).segmentGroup;\n // TODO(atscott): creating a new segment removes the _sourceSegment _segmentIndexShift, which is\n // only necessary to prevent failures in tests which assert exact object matches. The `split` is\n // now shared between `applyRedirects` and `recognize` but only the `recognize` step needs these\n // properties. Before the implementations were merged, the `applyRedirects` would not assign\n // them. We should be able to remove this logic as a \"breaking change\" but should do some more\n // investigation into the failures first.\n const rootSegmentGroup = new UrlSegmentGroup(splitGroup.segments, splitGroup.children);\n const expanded$ = this.expandSegmentGroup(this.injector, this.config, rootSegmentGroup, PRIMARY_OUTLET);\n const urlTrees$ = expanded$.pipe(map((rootSegmentGroup) => {\n return this.createUrlTree(squashSegmentGroup(rootSegmentGroup), this.urlTree.queryParams, this.urlTree.fragment);\n }));\n return urlTrees$.pipe(catchError((e) => {\n if (e instanceof AbsoluteRedirect) {\n // After an absolute redirect we do not apply any more redirects!\n // If this implementation changes, update the documentation note in `redirectTo`.\n this.allowRedirects = false;\n // we need to run matching, so we can fetch all lazy-loaded modules\n return this.match(e.urlTree);\n }\n if (e instanceof NoMatch$1) {\n throw this.noMatchError(e);\n }\n throw e;\n }));\n }\n match(tree) {\n const expanded$ = this.expandSegmentGroup(this.injector, this.config, tree.root, PRIMARY_OUTLET);\n const mapped$ = expanded$.pipe(map((rootSegmentGroup) => {\n return this.createUrlTree(squashSegmentGroup(rootSegmentGroup), tree.queryParams, tree.fragment);\n }));\n return mapped$.pipe(catchError((e) => {\n if (e instanceof NoMatch$1) {\n throw this.noMatchError(e);\n }\n throw e;\n }));\n }\n noMatchError(e) {\n return new ɵRuntimeError(4002 /* RuntimeErrorCode.NO_MATCH */, NG_DEV_MODE$7 && `Cannot match any routes. URL Segment: '${e.segmentGroup}'`);\n }\n createUrlTree(rootCandidate, queryParams, fragment) {\n const root = createRoot(rootCandidate);\n return new UrlTree(root, queryParams, fragment);\n }\n expandSegmentGroup(injector, routes, segmentGroup, outlet) {\n if (segmentGroup.segments.length === 0 && segmentGroup.hasChildren()) {\n return this.expandChildren(injector, routes, segmentGroup)\n .pipe(map((children) => new UrlSegmentGroup([], children)));\n }\n return this.expandSegment(injector, segmentGroup, routes, segmentGroup.segments, outlet, true);\n }\n // Recursively expand segment groups for all the child outlets\n expandChildren(injector, routes, segmentGroup) {\n // Expand outlets one at a time, starting with the primary outlet. We need to do it this way\n // because an absolute redirect from the primary outlet takes precedence.\n const childOutlets = [];\n for (const child of Object.keys(segmentGroup.children)) {\n if (child === 'primary') {\n childOutlets.unshift(child);\n }\n else {\n childOutlets.push(child);\n }\n }\n return from(childOutlets)\n .pipe(concatMap(childOutlet => {\n const child = segmentGroup.children[childOutlet];\n // Sort the routes so routes with outlets that match the segment appear\n // first, followed by routes for other outlets, which might match if they have an\n // empty path.\n const sortedRoutes = sortByMatchingOutlets(routes, childOutlet);\n return this.expandSegmentGroup(injector, sortedRoutes, child, childOutlet)\n .pipe(map(s => ({ segment: s, outlet: childOutlet })));\n }), scan((children, expandedChild) => {\n children[expandedChild.outlet] = expandedChild.segment;\n return children;\n }, {}), last$1());\n }\n expandSegment(injector, segmentGroup, routes, segments, outlet, allowRedirects) {\n return from(routes).pipe(concatMap(r => {\n const expanded$ = this.expandSegmentAgainstRoute(injector, segmentGroup, routes, r, segments, outlet, allowRedirects);\n return expanded$.pipe(catchError((e) => {\n if (e instanceof NoMatch$1) {\n return of(null);\n }\n throw e;\n }));\n }), first((s) => !!s), catchError((e, _) => {\n if (isEmptyError(e)) {\n if (noLeftoversInUrl(segmentGroup, segments, outlet)) {\n return of(new UrlSegmentGroup([], {}));\n }\n return noMatch(segmentGroup);\n }\n throw e;\n }));\n }\n expandSegmentAgainstRoute(injector, segmentGroup, routes, route, paths, outlet, allowRedirects) {\n if (!isImmediateMatch(route, segmentGroup, paths, outlet)) {\n return noMatch(segmentGroup);\n }\n if (route.redirectTo === undefined) {\n return this.matchSegmentAgainstRoute(injector, segmentGroup, route, paths, outlet);\n }\n if (allowRedirects && this.allowRedirects) {\n return this.expandSegmentAgainstRouteUsingRedirect(injector, segmentGroup, routes, route, paths, outlet);\n }\n return noMatch(segmentGroup);\n }\n expandSegmentAgainstRouteUsingRedirect(injector, segmentGroup, routes, route, segments, outlet) {\n if (route.path === '**') {\n return this.expandWildCardWithParamsAgainstRouteUsingRedirect(injector, routes, route, outlet);\n }\n return this.expandRegularSegmentAgainstRouteUsingRedirect(injector, segmentGroup, routes, route, segments, outlet);\n }\n expandWildCardWithParamsAgainstRouteUsingRedirect(injector, routes, route, outlet) {\n const newTree = this.applyRedirectCommands([], route.redirectTo, {});\n if (route.redirectTo.startsWith('/')) {\n return absoluteRedirect(newTree);\n }\n return this.lineralizeSegments(route, newTree).pipe(mergeMap((newSegments) => {\n const group = new UrlSegmentGroup(newSegments, {});\n return this.expandSegment(injector, group, routes, newSegments, outlet, false);\n }));\n }\n expandRegularSegmentAgainstRouteUsingRedirect(injector, segmentGroup, routes, route, segments, outlet) {\n const { matched, consumedSegments, remainingSegments, positionalParamSegments } = match(segmentGroup, route, segments);\n if (!matched)\n return noMatch(segmentGroup);\n const newTree = this.applyRedirectCommands(consumedSegments, route.redirectTo, positionalParamSegments);\n if (route.redirectTo.startsWith('/')) {\n return absoluteRedirect(newTree);\n }\n return this.lineralizeSegments(route, newTree).pipe(mergeMap((newSegments) => {\n return this.expandSegment(injector, segmentGroup, routes, newSegments.concat(remainingSegments), outlet, false);\n }));\n }\n matchSegmentAgainstRoute(injector, rawSegmentGroup, route, segments, outlet) {\n if (route.path === '**') {\n // Only create the Route's `EnvironmentInjector` if it matches the attempted navigation\n injector = getOrCreateRouteInjectorIfNeeded(route, injector);\n if (route.loadChildren) {\n const loaded$ = route._loadedRoutes ?\n of({ routes: route._loadedRoutes, injector: route._loadedInjector }) :\n this.configLoader.loadChildren(injector, route);\n return loaded$.pipe(map((cfg) => {\n route._loadedRoutes = cfg.routes;\n route._loadedInjector = cfg.injector;\n return new UrlSegmentGroup(segments, {});\n }));\n }\n return of(new UrlSegmentGroup(segments, {}));\n }\n return matchWithChecks(rawSegmentGroup, route, segments, injector, this.urlSerializer)\n .pipe(switchMap(({ matched, consumedSegments, remainingSegments }) => {\n if (!matched)\n return noMatch(rawSegmentGroup);\n // If the route has an injector created from providers, we should start using that.\n injector = route._injector ?? injector;\n const childConfig$ = this.getChildConfig(injector, route, segments);\n return childConfig$.pipe(mergeMap((routerConfig) => {\n const childInjector = routerConfig.injector ?? injector;\n const childConfig = routerConfig.routes;\n const { segmentGroup: splitSegmentGroup, slicedSegments } = split(rawSegmentGroup, consumedSegments, remainingSegments, childConfig);\n // See comment on the other call to `split` about why this is necessary.\n const segmentGroup = new UrlSegmentGroup(splitSegmentGroup.segments, splitSegmentGroup.children);\n if (slicedSegments.length === 0 && segmentGroup.hasChildren()) {\n const expanded$ = this.expandChildren(childInjector, childConfig, segmentGroup);\n return expanded$.pipe(map((children) => new UrlSegmentGroup(consumedSegments, children)));\n }\n if (childConfig.length === 0 && slicedSegments.length === 0) {\n return of(new UrlSegmentGroup(consumedSegments, {}));\n }\n const matchedOnOutlet = getOutlet(route) === outlet;\n const expanded$ = this.expandSegment(childInjector, segmentGroup, childConfig, slicedSegments, matchedOnOutlet ? PRIMARY_OUTLET : outlet, true);\n return expanded$.pipe(map((cs) => new UrlSegmentGroup(consumedSegments.concat(cs.segments), cs.children)));\n }));\n }));\n }\n getChildConfig(injector, route, segments) {\n if (route.children) {\n // The children belong to the same module\n return of({ routes: route.children, injector });\n }\n if (route.loadChildren) {\n // lazy children belong to the loaded module\n if (route._loadedRoutes !== undefined) {\n return of({ routes: route._loadedRoutes, injector: route._loadedInjector });\n }\n return runCanLoadGuards(injector, route, segments, this.urlSerializer)\n .pipe(mergeMap((shouldLoadResult) => {\n if (shouldLoadResult) {\n return this.configLoader.loadChildren(injector, route)\n .pipe(tap((cfg) => {\n route._loadedRoutes = cfg.routes;\n route._loadedInjector = cfg.injector;\n }));\n }\n return canLoadFails(route);\n }));\n }\n return of({ routes: [], injector });\n }\n lineralizeSegments(route, urlTree) {\n let res = [];\n let c = urlTree.root;\n while (true) {\n res = res.concat(c.segments);\n if (c.numberOfChildren === 0) {\n return of(res);\n }\n if (c.numberOfChildren > 1 || !c.children[PRIMARY_OUTLET]) {\n return namedOutletsRedirect(route.redirectTo);\n }\n c = c.children[PRIMARY_OUTLET];\n }\n }\n applyRedirectCommands(segments, redirectTo, posParams) {\n return this.applyRedirectCreateUrlTree(redirectTo, this.urlSerializer.parse(redirectTo), segments, posParams);\n }\n applyRedirectCreateUrlTree(redirectTo, urlTree, segments, posParams) {\n const newRoot = this.createSegmentGroup(redirectTo, urlTree.root, segments, posParams);\n return new UrlTree(newRoot, this.createQueryParams(urlTree.queryParams, this.urlTree.queryParams), urlTree.fragment);\n }\n createQueryParams(redirectToParams, actualParams) {\n const res = {};\n forEach(redirectToParams, (v, k) => {\n const copySourceValue = typeof v === 'string' && v.startsWith(':');\n if (copySourceValue) {\n const sourceName = v.substring(1);\n res[k] = actualParams[sourceName];\n }\n else {\n res[k] = v;\n }\n });\n return res;\n }\n createSegmentGroup(redirectTo, group, segments, posParams) {\n const updatedSegments = this.createSegments(redirectTo, group.segments, segments, posParams);\n let children = {};\n forEach(group.children, (child, name) => {\n children[name] = this.createSegmentGroup(redirectTo, child, segments, posParams);\n });\n return new UrlSegmentGroup(updatedSegments, children);\n }\n createSegments(redirectTo, redirectToSegments, actualSegments, posParams) {\n return redirectToSegments.map(s => s.path.startsWith(':') ? this.findPosParam(redirectTo, s, posParams) :\n this.findOrReturn(s, actualSegments));\n }\n findPosParam(redirectTo, redirectToUrlSegment, posParams) {\n const pos = posParams[redirectToUrlSegment.path.substring(1)];\n if (!pos)\n throw new ɵRuntimeError(4001 /* RuntimeErrorCode.MISSING_REDIRECT */, NG_DEV_MODE$7 &&\n `Cannot redirect to '${redirectTo}'. Cannot find '${redirectToUrlSegment.path}'.`);\n return pos;\n }\n findOrReturn(redirectToUrlSegment, actualSegments) {\n let idx = 0;\n for (const s of actualSegments) {\n if (s.path === redirectToUrlSegment.path) {\n actualSegments.splice(idx);\n return s;\n }\n idx++;\n }\n return redirectToUrlSegment;\n }\n}\n\nfunction applyRedirects(environmentInjector, configLoader, urlSerializer, config) {\n return switchMap(t => applyRedirects$1(environmentInjector, configLoader, urlSerializer, t.extractedUrl, config)\n .pipe(map(urlAfterRedirects => ({ ...t, urlAfterRedirects }))));\n}\n\nconst NG_DEV_MODE$6 = typeof ngDevMode === 'undefined' || !!ngDevMode;\nclass NoMatch {\n}\nfunction newObservableError(e) {\n // TODO(atscott): This pattern is used throughout the router code and can be `throwError` instead.\n return new Observable((obs) => obs.error(e));\n}\nfunction recognize$1(injector, rootComponentType, config, urlTree, url, urlSerializer, paramsInheritanceStrategy = 'emptyOnly') {\n return new Recognizer(injector, rootComponentType, config, urlTree, url, paramsInheritanceStrategy, urlSerializer)\n .recognize()\n .pipe(switchMap(result => {\n if (result === null) {\n return newObservableError(new NoMatch());\n }\n else {\n return of(result);\n }\n }));\n}\nclass Recognizer {\n constructor(injector, rootComponentType, config, urlTree, url, paramsInheritanceStrategy, urlSerializer) {\n this.injector = injector;\n this.rootComponentType = rootComponentType;\n this.config = config;\n this.urlTree = urlTree;\n this.url = url;\n this.paramsInheritanceStrategy = paramsInheritanceStrategy;\n this.urlSerializer = urlSerializer;\n }\n recognize() {\n const rootSegmentGroup = split(this.urlTree.root, [], [], this.config.filter(c => c.redirectTo === undefined))\n .segmentGroup;\n return this.processSegmentGroup(this.injector, this.config, rootSegmentGroup, PRIMARY_OUTLET)\n .pipe(map(children => {\n if (children === null) {\n return null;\n }\n // Use Object.freeze to prevent readers of the Router state from modifying it outside of a\n // navigation, resulting in the router being out of sync with the browser.\n const root = new ActivatedRouteSnapshot([], Object.freeze({}), Object.freeze({ ...this.urlTree.queryParams }), this.urlTree.fragment, {}, PRIMARY_OUTLET, this.rootComponentType, null, this.urlTree.root, -1, {});\n const rootNode = new TreeNode(root, children);\n const routeState = new RouterStateSnapshot(this.url, rootNode);\n this.inheritParamsAndData(routeState._root);\n return routeState;\n }));\n }\n inheritParamsAndData(routeNode) {\n const route = routeNode.value;\n const i = inheritedParamsDataResolve(route, this.paramsInheritanceStrategy);\n route.params = Object.freeze(i.params);\n route.data = Object.freeze(i.data);\n routeNode.children.forEach(n => this.inheritParamsAndData(n));\n }\n processSegmentGroup(injector, config, segmentGroup, outlet) {\n if (segmentGroup.segments.length === 0 && segmentGroup.hasChildren()) {\n return this.processChildren(injector, config, segmentGroup);\n }\n return this.processSegment(injector, config, segmentGroup, segmentGroup.segments, outlet);\n }\n /**\n * Matches every child outlet in the `segmentGroup` to a `Route` in the config. Returns `null` if\n * we cannot find a match for _any_ of the children.\n *\n * @param config - The `Routes` to match against\n * @param segmentGroup - The `UrlSegmentGroup` whose children need to be matched against the\n * config.\n */\n processChildren(injector, config, segmentGroup) {\n return from(Object.keys(segmentGroup.children))\n .pipe(concatMap(childOutlet => {\n const child = segmentGroup.children[childOutlet];\n // Sort the config so that routes with outlets that match the one being activated\n // appear first, followed by routes for other outlets, which might match if they have\n // an empty path.\n const sortedConfig = sortByMatchingOutlets(config, childOutlet);\n return this.processSegmentGroup(injector, sortedConfig, child, childOutlet);\n }), scan((children, outletChildren) => {\n if (!children || !outletChildren)\n return null;\n children.push(...outletChildren);\n return children;\n }), takeWhile(children => children !== null), defaultIfEmpty(null), last$1(), map(children => {\n if (children === null)\n return null;\n // Because we may have matched two outlets to the same empty path segment, we can have\n // multiple activated results for the same outlet. We should merge the children of\n // these results so the final return value is only one `TreeNode` per outlet.\n const mergedChildren = mergeEmptyPathMatches(children);\n if (NG_DEV_MODE$6) {\n // This should really never happen - we are only taking the first match for each\n // outlet and merge the empty path matches.\n checkOutletNameUniqueness(mergedChildren);\n }\n sortActivatedRouteSnapshots(mergedChildren);\n return mergedChildren;\n }));\n }\n processSegment(injector, routes, segmentGroup, segments, outlet) {\n return from(routes).pipe(concatMap(r => {\n return this.processSegmentAgainstRoute(r._injector ?? injector, r, segmentGroup, segments, outlet);\n }), first((x) => !!x), catchError(e => {\n if (isEmptyError(e)) {\n if (noLeftoversInUrl(segmentGroup, segments, outlet)) {\n return of([]);\n }\n return of(null);\n }\n throw e;\n }));\n }\n processSegmentAgainstRoute(injector, route, rawSegment, segments, outlet) {\n if (route.redirectTo || !isImmediateMatch(route, rawSegment, segments, outlet))\n return of(null);\n let matchResult;\n if (route.path === '**') {\n const params = segments.length > 0 ? last(segments).parameters : {};\n const pathIndexShift = getPathIndexShift(rawSegment) + segments.length;\n const snapshot = new ActivatedRouteSnapshot(segments, params, Object.freeze({ ...this.urlTree.queryParams }), this.urlTree.fragment, getData(route), getOutlet(route), route.component ?? route._loadedComponent ?? null, route, getSourceSegmentGroup(rawSegment), pathIndexShift, getResolve(route));\n matchResult = of({\n snapshot,\n consumedSegments: [],\n remainingSegments: [],\n });\n }\n else {\n matchResult =\n matchWithChecks(rawSegment, route, segments, injector, this.urlSerializer)\n .pipe(map(({ matched, consumedSegments, remainingSegments, parameters }) => {\n if (!matched) {\n return null;\n }\n const pathIndexShift = getPathIndexShift(rawSegment) + consumedSegments.length;\n const snapshot = new ActivatedRouteSnapshot(consumedSegments, parameters, Object.freeze({ ...this.urlTree.queryParams }), this.urlTree.fragment, getData(route), getOutlet(route), route.component ?? route._loadedComponent ?? null, route, getSourceSegmentGroup(rawSegment), pathIndexShift, getResolve(route));\n return { snapshot, consumedSegments, remainingSegments };\n }));\n }\n return matchResult.pipe(switchMap((result) => {\n if (result === null) {\n return of(null);\n }\n const { snapshot, consumedSegments, remainingSegments } = result;\n // If the route has an injector created from providers, we should start using that.\n injector = route._injector ?? injector;\n const childInjector = route._loadedInjector ?? injector;\n const childConfig = getChildConfig(route);\n const { segmentGroup, slicedSegments } = split(rawSegment, consumedSegments, remainingSegments, \n // Filter out routes with redirectTo because we are trying to create activated route\n // snapshots and don't handle redirects here. That should have been done in\n // `applyRedirects`.\n childConfig.filter(c => c.redirectTo === undefined));\n if (slicedSegments.length === 0 && segmentGroup.hasChildren()) {\n return this.processChildren(childInjector, childConfig, segmentGroup).pipe(map(children => {\n if (children === null) {\n return null;\n }\n return [new TreeNode(snapshot, children)];\n }));\n }\n if (childConfig.length === 0 && slicedSegments.length === 0) {\n return of([new TreeNode(snapshot, [])]);\n }\n const matchedOnOutlet = getOutlet(route) === outlet;\n // If we matched a config due to empty path match on a different outlet, we need to\n // continue passing the current outlet for the segment rather than switch to PRIMARY.\n // Note that we switch to primary when we have a match because outlet configs look like\n // this: {path: 'a', outlet: 'a', children: [\n // {path: 'b', component: B},\n // {path: 'c', component: C},\n // ]}\n // Notice that the children of the named outlet are configured with the primary outlet\n return this\n .processSegment(childInjector, childConfig, segmentGroup, slicedSegments, matchedOnOutlet ? PRIMARY_OUTLET : outlet)\n .pipe(map(children => {\n if (children === null) {\n return null;\n }\n return [new TreeNode(snapshot, children)];\n }));\n }));\n }\n}\nfunction sortActivatedRouteSnapshots(nodes) {\n nodes.sort((a, b) => {\n if (a.value.outlet === PRIMARY_OUTLET)\n return -1;\n if (b.value.outlet === PRIMARY_OUTLET)\n return 1;\n return a.value.outlet.localeCompare(b.value.outlet);\n });\n}\nfunction getChildConfig(route) {\n if (route.children) {\n return route.children;\n }\n if (route.loadChildren) {\n return route._loadedRoutes;\n }\n return [];\n}\nfunction hasEmptyPathConfig(node) {\n const config = node.value.routeConfig;\n return config && config.path === '' && config.redirectTo === undefined;\n}\n/**\n * Finds `TreeNode`s with matching empty path route configs and merges them into `TreeNode` with\n * the children from each duplicate. This is necessary because different outlets can match a\n * single empty path route config and the results need to then be merged.\n */\nfunction mergeEmptyPathMatches(nodes) {\n const result = [];\n // The set of nodes which contain children that were merged from two duplicate empty path nodes.\n const mergedNodes = new Set();\n for (const node of nodes) {\n if (!hasEmptyPathConfig(node)) {\n result.push(node);\n continue;\n }\n const duplicateEmptyPathNode = result.find(resultNode => node.value.routeConfig === resultNode.value.routeConfig);\n if (duplicateEmptyPathNode !== undefined) {\n duplicateEmptyPathNode.children.push(...node.children);\n mergedNodes.add(duplicateEmptyPathNode);\n }\n else {\n result.push(node);\n }\n }\n // For each node which has children from multiple sources, we need to recompute a new `TreeNode`\n // by also merging those children. This is necessary when there are multiple empty path configs\n // in a row. Put another way: whenever we combine children of two nodes, we need to also check\n // if any of those children can be combined into a single node as well.\n for (const mergedNode of mergedNodes) {\n const mergedChildren = mergeEmptyPathMatches(mergedNode.children);\n result.push(new TreeNode(mergedNode.value, mergedChildren));\n }\n return result.filter(n => !mergedNodes.has(n));\n}\nfunction checkOutletNameUniqueness(nodes) {\n const names = {};\n nodes.forEach(n => {\n const routeWithSameOutletName = names[n.value.outlet];\n if (routeWithSameOutletName) {\n const p = routeWithSameOutletName.url.map(s => s.toString()).join('/');\n const c = n.value.url.map(s => s.toString()).join('/');\n throw new ɵRuntimeError(4006 /* RuntimeErrorCode.TWO_SEGMENTS_WITH_SAME_OUTLET */, NG_DEV_MODE$6 && `Two segments cannot have the same outlet name: '${p}' and '${c}'.`);\n }\n names[n.value.outlet] = n.value;\n });\n}\nfunction getSourceSegmentGroup(segmentGroup) {\n let s = segmentGroup;\n while (s._sourceSegment) {\n s = s._sourceSegment;\n }\n return s;\n}\nfunction getPathIndexShift(segmentGroup) {\n let s = segmentGroup;\n let res = s._segmentIndexShift ?? 0;\n while (s._sourceSegment) {\n s = s._sourceSegment;\n res += s._segmentIndexShift ?? 0;\n }\n return res - 1;\n}\nfunction getCorrectedPathIndexShift(segmentGroup) {\n let s = segmentGroup;\n let res = s._segmentIndexShiftCorrected ?? s._segmentIndexShift ?? 0;\n while (s._sourceSegment) {\n s = s._sourceSegment;\n res += s._segmentIndexShiftCorrected ?? s._segmentIndexShift ?? 0;\n }\n return res - 1;\n}\nfunction getData(route) {\n return route.data || {};\n}\nfunction getResolve(route) {\n return route.resolve || {};\n}\n\nfunction recognize(injector, rootComponentType, config, serializer, paramsInheritanceStrategy) {\n return mergeMap(t => recognize$1(injector, rootComponentType, config, t.urlAfterRedirects, serializer.serialize(t.urlAfterRedirects), serializer, paramsInheritanceStrategy)\n .pipe(map(targetSnapshot => ({ ...t, targetSnapshot }))));\n}\n\nfunction resolveData(paramsInheritanceStrategy, injector) {\n return mergeMap(t => {\n const { targetSnapshot, guards: { canActivateChecks } } = t;\n if (!canActivateChecks.length) {\n return of(t);\n }\n let canActivateChecksResolved = 0;\n return from(canActivateChecks)\n .pipe(concatMap(check => runResolve(check.route, targetSnapshot, paramsInheritanceStrategy, injector)), tap(() => canActivateChecksResolved++), takeLast(1), mergeMap(_ => canActivateChecksResolved === canActivateChecks.length ? of(t) : EMPTY));\n });\n}\nfunction runResolve(futureARS, futureRSS, paramsInheritanceStrategy, injector) {\n const config = futureARS.routeConfig;\n const resolve = futureARS._resolve;\n if (config?.title !== undefined && !hasStaticTitle(config)) {\n resolve[RouteTitleKey] = config.title;\n }\n return resolveNode(resolve, futureARS, futureRSS, injector).pipe(map((resolvedData) => {\n futureARS._resolvedData = resolvedData;\n futureARS.data = inheritedParamsDataResolve(futureARS, paramsInheritanceStrategy).resolve;\n if (config && hasStaticTitle(config)) {\n futureARS.data[RouteTitleKey] = config.title;\n }\n return null;\n }));\n}\nfunction resolveNode(resolve, futureARS, futureRSS, injector) {\n const keys = getDataKeys(resolve);\n if (keys.length === 0) {\n return of({});\n }\n const data = {};\n return from(keys).pipe(mergeMap(key => getResolver(resolve[key], futureARS, futureRSS, injector)\n .pipe(first(), tap((value) => {\n data[key] = value;\n }))), takeLast(1), mapTo(data), catchError((e) => isEmptyError(e) ? EMPTY : throwError(e)));\n}\nfunction getDataKeys(obj) {\n return [...Object.keys(obj), ...Object.getOwnPropertySymbols(obj)];\n}\nfunction getResolver(injectionToken, futureARS, futureRSS, injector) {\n const closestInjector = getClosestRouteInjector(futureARS) ?? injector;\n const resolver = getTokenOrFunctionIdentity(injectionToken, closestInjector);\n const resolverValue = resolver.resolve ?\n resolver.resolve(futureARS, futureRSS) :\n closestInjector.runInContext(() => resolver(futureARS, futureRSS));\n return wrapIntoObservable(resolverValue);\n}\nfunction hasStaticTitle(config) {\n return typeof config.title === 'string' || config.title === null;\n}\n\n/**\n * Perform a side effect through a switchMap for every emission on the source Observable,\n * but return an Observable that is identical to the source. It's essentially the same as\n * the `tap` operator, but if the side effectful `next` function returns an ObservableInput,\n * it will wait before continuing with the original value.\n */\nfunction switchTap(next) {\n return switchMap(v => {\n const nextResult = next(v);\n if (nextResult) {\n return from(nextResult).pipe(map(() => v));\n }\n return of(v);\n });\n}\n\nconst NG_DEV_MODE$5 = typeof ngDevMode === 'undefined' || !!ngDevMode;\n/**\n * The [DI token](guide/glossary/#di-token) for a router configuration.\n *\n * `ROUTES` is a low level API for router configuration via dependency injection.\n *\n * We recommend that in almost all cases to use higher level APIs such as `RouterModule.forRoot()`,\n * `provideRouter`, or `Router.resetConfig()`.\n *\n * @publicApi\n */\nconst ROUTES = new InjectionToken('ROUTES');\nclass RouterConfigLoader {\n constructor() {\n this.componentLoaders = new WeakMap();\n this.childrenLoaders = new WeakMap();\n this.compiler = inject(Compiler);\n }\n loadComponent(route) {\n if (this.componentLoaders.get(route)) {\n return this.componentLoaders.get(route);\n }\n else if (route._loadedComponent) {\n return of(route._loadedComponent);\n }\n if (this.onLoadStartListener) {\n this.onLoadStartListener(route);\n }\n const loadRunner = wrapIntoObservable(route.loadComponent())\n .pipe(map(maybeUnwrapDefaultExport), tap(component => {\n if (this.onLoadEndListener) {\n this.onLoadEndListener(route);\n }\n NG_DEV_MODE$5 && assertStandalone(route.path ?? '', component);\n route._loadedComponent = component;\n }), finalize(() => {\n this.componentLoaders.delete(route);\n }));\n // Use custom ConnectableObservable as share in runners pipe increasing the bundle size too much\n const loader = new ConnectableObservable(loadRunner, () => new Subject()).pipe(refCount());\n this.componentLoaders.set(route, loader);\n return loader;\n }\n loadChildren(parentInjector, route) {\n if (this.childrenLoaders.get(route)) {\n return this.childrenLoaders.get(route);\n }\n else if (route._loadedRoutes) {\n return of({ routes: route._loadedRoutes, injector: route._loadedInjector });\n }\n if (this.onLoadStartListener) {\n this.onLoadStartListener(route);\n }\n const moduleFactoryOrRoutes$ = this.loadModuleFactoryOrRoutes(route.loadChildren);\n const loadRunner = moduleFactoryOrRoutes$.pipe(map((factoryOrRoutes) => {\n if (this.onLoadEndListener) {\n this.onLoadEndListener(route);\n }\n // This injector comes from the `NgModuleRef` when lazy loading an `NgModule`. There is no\n // injector associated with lazy loading a `Route` array.\n let injector;\n let rawRoutes;\n let requireStandaloneComponents = false;\n if (Array.isArray(factoryOrRoutes)) {\n rawRoutes = factoryOrRoutes;\n requireStandaloneComponents = true;\n }\n else {\n injector = factoryOrRoutes.create(parentInjector).injector;\n // When loading a module that doesn't provide `RouterModule.forChild()` preloader\n // will get stuck in an infinite loop. The child module's Injector will look to\n // its parent `Injector` when it doesn't find any ROUTES so it will return routes\n // for it's parent module instead.\n rawRoutes = flatten(injector.get(ROUTES, [], InjectFlags.Self | InjectFlags.Optional));\n }\n const routes = rawRoutes.map(standardizeConfig);\n NG_DEV_MODE$5 && validateConfig(routes, route.path, requireStandaloneComponents);\n return { routes, injector };\n }), finalize(() => {\n this.childrenLoaders.delete(route);\n }));\n // Use custom ConnectableObservable as share in runners pipe increasing the bundle size too much\n const loader = new ConnectableObservable(loadRunner, () => new Subject())\n .pipe(refCount());\n this.childrenLoaders.set(route, loader);\n return loader;\n }\n loadModuleFactoryOrRoutes(loadChildren) {\n return wrapIntoObservable(loadChildren())\n .pipe(map(maybeUnwrapDefaultExport), mergeMap((t) => {\n if (t instanceof NgModuleFactory || Array.isArray(t)) {\n return of(t);\n }\n else {\n return from(this.compiler.compileModuleAsync(t));\n }\n }));\n }\n}\nRouterConfigLoader.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: RouterConfigLoader, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nRouterConfigLoader.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: RouterConfigLoader, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: RouterConfigLoader, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\nfunction isWrappedDefaultExport(value) {\n // We use `in` here with a string key `'default'`, because we expect `DefaultExport` objects to be\n // dynamically imported ES modules with a spec-mandated `default` key. Thus we don't expect that\n // `default` will be a renamed property.\n return value && typeof value === 'object' && 'default' in value;\n}\nfunction maybeUnwrapDefaultExport(input) {\n // As per `isWrappedDefaultExport`, the `default` key here is generated by the browser and not\n // subject to property renaming, so we reference it with bracket access.\n return isWrappedDefaultExport(input) ? input['default'] : input;\n}\n\nconst NG_DEV_MODE$4 = typeof ngDevMode === 'undefined' || !!ngDevMode;\nclass NavigationTransitions {\n get hasRequestedNavigation() {\n return this.navigationId !== 0;\n }\n constructor() {\n this.currentNavigation = null;\n this.lastSuccessfulNavigation = null;\n this.events = new Subject();\n this.configLoader = inject(RouterConfigLoader);\n this.environmentInjector = inject(EnvironmentInjector);\n this.urlSerializer = inject(UrlSerializer);\n this.rootContexts = inject(ChildrenOutletContexts);\n this.navigationId = 0;\n /**\n * Hook that enables you to pause navigation after the preactivation phase.\n * Used by `RouterModule`.\n *\n * @internal\n */\n this.afterPreactivation = () => of(void 0);\n /** @internal */\n this.rootComponentType = null;\n const onLoadStart = (r) => this.events.next(new RouteConfigLoadStart(r));\n const onLoadEnd = (r) => this.events.next(new RouteConfigLoadEnd(r));\n this.configLoader.onLoadEndListener = onLoadEnd;\n this.configLoader.onLoadStartListener = onLoadStart;\n }\n complete() {\n this.transitions?.complete();\n }\n handleNavigationRequest(request) {\n const id = ++this.navigationId;\n this.transitions?.next({ ...this.transitions.value, ...request, id });\n }\n setupNavigations(router) {\n this.transitions = new BehaviorSubject({\n id: 0,\n targetPageId: 0,\n currentUrlTree: router.currentUrlTree,\n currentRawUrl: router.currentUrlTree,\n extractedUrl: router.urlHandlingStrategy.extract(router.currentUrlTree),\n urlAfterRedirects: router.urlHandlingStrategy.extract(router.currentUrlTree),\n rawUrl: router.currentUrlTree,\n extras: {},\n resolve: null,\n reject: null,\n promise: Promise.resolve(true),\n source: IMPERATIVE_NAVIGATION,\n restoredState: null,\n currentSnapshot: router.routerState.snapshot,\n targetSnapshot: null,\n currentRouterState: router.routerState,\n targetRouterState: null,\n guards: { canActivateChecks: [], canDeactivateChecks: [] },\n guardsResult: null,\n });\n return this.transitions.pipe(filter(t => t.id !== 0), \n // Extract URL\n map(t => ({ ...t, extractedUrl: router.urlHandlingStrategy.extract(t.rawUrl) })), \n // Using switchMap so we cancel executing navigations when a new one comes in\n switchMap(overallTransitionState => {\n let completed = false;\n let errored = false;\n return of(overallTransitionState)\n .pipe(\n // Store the Navigation object\n tap(t => {\n this.currentNavigation = {\n id: t.id,\n initialUrl: t.rawUrl,\n extractedUrl: t.extractedUrl,\n trigger: t.source,\n extras: t.extras,\n previousNavigation: !this.lastSuccessfulNavigation ? null : {\n ...this.lastSuccessfulNavigation,\n previousNavigation: null,\n },\n };\n }), switchMap(t => {\n const browserUrlTree = router.browserUrlTree.toString();\n const urlTransition = !router.navigated ||\n t.extractedUrl.toString() !== browserUrlTree ||\n // Navigations which succeed or ones which fail and are cleaned up\n // correctly should result in `browserUrlTree` and `currentUrlTree`\n // matching. If this is not the case, assume something went wrong and\n // try processing the URL again.\n browserUrlTree !== router.currentUrlTree.toString();\n const onSameUrlNavigation = t.extras.onSameUrlNavigation ?? router.onSameUrlNavigation;\n if (!urlTransition && onSameUrlNavigation !== 'reload') {\n const reason = NG_DEV_MODE$4 ?\n `Navigation to ${t.rawUrl} was ignored because it is the same as the current Router URL.` :\n '';\n this.events.next(new NavigationSkipped(t.id, router.serializeUrl(overallTransitionState.rawUrl), reason, 0 /* NavigationSkippedCode.IgnoredSameUrlNavigation */));\n router.rawUrlTree = t.rawUrl;\n t.resolve(null);\n return EMPTY;\n }\n if (router.urlHandlingStrategy.shouldProcessUrl(t.rawUrl)) {\n // If the source of the navigation is from a browser event, the URL is\n // already updated. We already need to sync the internal state.\n if (isBrowserTriggeredNavigation(t.source)) {\n router.browserUrlTree = t.extractedUrl;\n }\n return of(t).pipe(\n // Fire NavigationStart event\n switchMap(t => {\n const transition = this.transitions?.getValue();\n this.events.next(new NavigationStart(t.id, this.urlSerializer.serialize(t.extractedUrl), t.source, t.restoredState));\n if (transition !== this.transitions?.getValue()) {\n return EMPTY;\n }\n // This delay is required to match old behavior that forced\n // navigation to always be async\n return Promise.resolve(t);\n }), \n // ApplyRedirects\n applyRedirects(this.environmentInjector, this.configLoader, this.urlSerializer, router.config), \n // Update the currentNavigation\n // `urlAfterRedirects` is guaranteed to be set after this point\n tap(t => {\n this.currentNavigation = {\n ...this.currentNavigation,\n finalUrl: t.urlAfterRedirects\n };\n overallTransitionState.urlAfterRedirects = t.urlAfterRedirects;\n }), \n // Recognize\n recognize(this.environmentInjector, this.rootComponentType, router.config, this.urlSerializer, router.paramsInheritanceStrategy), \n // Update URL if in `eager` update mode\n tap(t => {\n overallTransitionState.targetSnapshot = t.targetSnapshot;\n if (router.urlUpdateStrategy === 'eager') {\n if (!t.extras.skipLocationChange) {\n const rawUrl = router.urlHandlingStrategy.merge(t.urlAfterRedirects, t.rawUrl);\n router.setBrowserUrl(rawUrl, t);\n }\n router.browserUrlTree = t.urlAfterRedirects;\n }\n // Fire RoutesRecognized\n const routesRecognized = new RoutesRecognized(t.id, this.urlSerializer.serialize(t.extractedUrl), this.urlSerializer.serialize(t.urlAfterRedirects), t.targetSnapshot);\n this.events.next(routesRecognized);\n }));\n }\n else if (urlTransition &&\n router.urlHandlingStrategy.shouldProcessUrl(router.rawUrlTree)) {\n /* When the current URL shouldn't be processed, but the previous one\n * was, we handle this \"error condition\" by navigating to the\n * previously successful URL, but leaving the URL intact.*/\n const { id, extractedUrl, source, restoredState, extras } = t;\n const navStart = new NavigationStart(id, this.urlSerializer.serialize(extractedUrl), source, restoredState);\n this.events.next(navStart);\n const targetSnapshot = createEmptyState(extractedUrl, this.rootComponentType).snapshot;\n overallTransitionState = {\n ...t,\n targetSnapshot,\n urlAfterRedirects: extractedUrl,\n extras: { ...extras, skipLocationChange: false, replaceUrl: false },\n };\n return of(overallTransitionState);\n }\n else {\n /* When neither the current or previous URL can be processed, do\n * nothing other than update router's internal reference to the\n * current \"settled\" URL. This way the next navigation will be coming\n * from the current URL in the browser.\n */\n const reason = NG_DEV_MODE$4 ?\n `Navigation was ignored because the UrlHandlingStrategy` +\n ` indicated neither the current URL ${router.rawUrlTree} nor target URL ${t.rawUrl} should be processed.` :\n '';\n this.events.next(new NavigationSkipped(t.id, router.serializeUrl(overallTransitionState.extractedUrl), reason, 1 /* NavigationSkippedCode.IgnoredByUrlHandlingStrategy */));\n router.rawUrlTree = t.rawUrl;\n t.resolve(null);\n return EMPTY;\n }\n }), \n // --- GUARDS ---\n tap(t => {\n const guardsStart = new GuardsCheckStart(t.id, this.urlSerializer.serialize(t.extractedUrl), this.urlSerializer.serialize(t.urlAfterRedirects), t.targetSnapshot);\n this.events.next(guardsStart);\n }), map(t => {\n overallTransitionState = {\n ...t,\n guards: getAllRouteGuards(t.targetSnapshot, t.currentSnapshot, this.rootContexts)\n };\n return overallTransitionState;\n }), checkGuards(this.environmentInjector, (evt) => this.events.next(evt)), tap(t => {\n overallTransitionState.guardsResult = t.guardsResult;\n if (isUrlTree(t.guardsResult)) {\n throw redirectingNavigationError(this.urlSerializer, t.guardsResult);\n }\n const guardsEnd = new GuardsCheckEnd(t.id, this.urlSerializer.serialize(t.extractedUrl), this.urlSerializer.serialize(t.urlAfterRedirects), t.targetSnapshot, !!t.guardsResult);\n this.events.next(guardsEnd);\n }), filter(t => {\n if (!t.guardsResult) {\n router.restoreHistory(t);\n this.cancelNavigationTransition(t, '', 3 /* NavigationCancellationCode.GuardRejected */);\n return false;\n }\n return true;\n }), \n // --- RESOLVE ---\n switchTap(t => {\n if (t.guards.canActivateChecks.length) {\n return of(t).pipe(tap(t => {\n const resolveStart = new ResolveStart(t.id, this.urlSerializer.serialize(t.extractedUrl), this.urlSerializer.serialize(t.urlAfterRedirects), t.targetSnapshot);\n this.events.next(resolveStart);\n }), switchMap(t => {\n let dataResolved = false;\n return of(t).pipe(resolveData(router.paramsInheritanceStrategy, this.environmentInjector), tap({\n next: () => dataResolved = true,\n complete: () => {\n if (!dataResolved) {\n router.restoreHistory(t);\n this.cancelNavigationTransition(t, NG_DEV_MODE$4 ?\n `At least one route resolver didn't emit any value.` :\n '', 2 /* NavigationCancellationCode.NoDataFromResolver */);\n }\n }\n }));\n }), tap(t => {\n const resolveEnd = new ResolveEnd(t.id, this.urlSerializer.serialize(t.extractedUrl), this.urlSerializer.serialize(t.urlAfterRedirects), t.targetSnapshot);\n this.events.next(resolveEnd);\n }));\n }\n return undefined;\n }), \n // --- LOAD COMPONENTS ---\n switchTap((t) => {\n const loadComponents = (route) => {\n const loaders = [];\n if (route.routeConfig?.loadComponent &&\n !route.routeConfig._loadedComponent) {\n loaders.push(this.configLoader.loadComponent(route.routeConfig)\n .pipe(tap(loadedComponent => {\n route.component = loadedComponent;\n }), map(() => void 0)));\n }\n for (const child of route.children) {\n loaders.push(...loadComponents(child));\n }\n return loaders;\n };\n return combineLatest(loadComponents(t.targetSnapshot.root))\n .pipe(defaultIfEmpty(), take(1));\n }), switchTap(() => this.afterPreactivation()), map((t) => {\n const targetRouterState = createRouterState(router.routeReuseStrategy, t.targetSnapshot, t.currentRouterState);\n overallTransitionState = { ...t, targetRouterState };\n return (overallTransitionState);\n }), \n /* Once here, we are about to activate synchronously. The assumption is\n this will succeed, and user code may read from the Router service.\n Therefore before activation, we need to update router properties storing\n the current URL and the RouterState, as well as updated the browser URL.\n All this should happen *before* activating. */\n tap((t) => {\n router.currentUrlTree = t.urlAfterRedirects;\n router.rawUrlTree =\n router.urlHandlingStrategy.merge(t.urlAfterRedirects, t.rawUrl);\n router.routerState =\n t.targetRouterState;\n if (router.urlUpdateStrategy === 'deferred') {\n if (!t.extras.skipLocationChange) {\n router.setBrowserUrl(router.rawUrlTree, t);\n }\n router.browserUrlTree = t.urlAfterRedirects;\n }\n }), activateRoutes(this.rootContexts, router.routeReuseStrategy, (evt) => this.events.next(evt)), \n // Ensure that if some observable used to drive the transition doesn't\n // complete, the navigation still finalizes This should never happen, but\n // this is done as a safety measure to avoid surfacing this error (#49567).\n take(1), tap({\n next: (t) => {\n completed = true;\n this.lastSuccessfulNavigation = this.currentNavigation;\n router.navigated = true;\n this.events.next(new NavigationEnd(t.id, this.urlSerializer.serialize(t.extractedUrl), this.urlSerializer.serialize(router.currentUrlTree)));\n router.titleStrategy?.updateTitle(t.targetRouterState.snapshot);\n t.resolve(true);\n },\n complete: () => {\n completed = true;\n }\n }), finalize(() => {\n /* When the navigation stream finishes either through error or success,\n * we set the `completed` or `errored` flag. However, there are some\n * situations where we could get here without either of those being set.\n * For instance, a redirect during NavigationStart. Therefore, this is a\n * catch-all to make sure the NavigationCancel event is fired when a\n * navigation gets cancelled but not caught by other means. */\n if (!completed && !errored) {\n const cancelationReason = NG_DEV_MODE$4 ?\n `Navigation ID ${overallTransitionState\n .id} is not equal to the current navigation id ${this.navigationId}` :\n '';\n this.cancelNavigationTransition(overallTransitionState, cancelationReason, 1 /* NavigationCancellationCode.SupersededByNewNavigation */);\n }\n // Only clear current navigation if it is still set to the one that\n // finalized.\n if (this.currentNavigation?.id === overallTransitionState.id) {\n this.currentNavigation = null;\n }\n }), catchError((e) => {\n errored = true;\n /* This error type is issued during Redirect, and is handled as a\n * cancellation rather than an error. */\n if (isNavigationCancelingError$1(e)) {\n if (!isRedirectingNavigationCancelingError$1(e)) {\n // Set property only if we're not redirecting. If we landed on a page\n // and redirect to `/` route, the new navigation is going to see the\n // `/` isn't a change from the default currentUrlTree and won't\n // navigate. This is only applicable with initial navigation, so\n // setting `navigated` only when not redirecting resolves this\n // scenario.\n router.navigated = true;\n router.restoreHistory(overallTransitionState, true);\n }\n const navCancel = new NavigationCancel(overallTransitionState.id, this.urlSerializer.serialize(overallTransitionState.extractedUrl), e.message, e.cancellationCode);\n this.events.next(navCancel);\n // When redirecting, we need to delay resolving the navigation\n // promise and push it to the redirect navigation\n if (!isRedirectingNavigationCancelingError$1(e)) {\n overallTransitionState.resolve(false);\n }\n else {\n const mergedTree = router.urlHandlingStrategy.merge(e.url, router.rawUrlTree);\n const extras = {\n skipLocationChange: overallTransitionState.extras.skipLocationChange,\n // The URL is already updated at this point if we have 'eager' URL\n // updates or if the navigation was triggered by the browser (back\n // button, URL bar, etc). We want to replace that item in history\n // if the navigation is rejected.\n replaceUrl: router.urlUpdateStrategy === 'eager' ||\n isBrowserTriggeredNavigation(overallTransitionState.source)\n };\n router.scheduleNavigation(mergedTree, IMPERATIVE_NAVIGATION, null, extras, {\n resolve: overallTransitionState.resolve,\n reject: overallTransitionState.reject,\n promise: overallTransitionState.promise\n });\n }\n /* All other errors should reset to the router's internal URL reference\n * to the pre-error state. */\n }\n else {\n router.restoreHistory(overallTransitionState, true);\n const navError = new NavigationError(overallTransitionState.id, this.urlSerializer.serialize(overallTransitionState.extractedUrl), e, overallTransitionState.targetSnapshot ?? undefined);\n this.events.next(navError);\n try {\n overallTransitionState.resolve(router.errorHandler(e));\n }\n catch (ee) {\n overallTransitionState.reject(ee);\n }\n }\n return EMPTY;\n }));\n // casting because `pipe` returns observable({}) when called with 8+ arguments\n }));\n }\n cancelNavigationTransition(t, reason, code) {\n const navCancel = new NavigationCancel(t.id, this.urlSerializer.serialize(t.extractedUrl), reason, code);\n this.events.next(navCancel);\n t.resolve(false);\n }\n}\nNavigationTransitions.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: NavigationTransitions, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nNavigationTransitions.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: NavigationTransitions, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: NavigationTransitions, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return []; } });\nfunction isBrowserTriggeredNavigation(source) {\n return source !== IMPERATIVE_NAVIGATION;\n}\n\n/**\n * Provides a strategy for setting the page title after a router navigation.\n *\n * The built-in implementation traverses the router state snapshot and finds the deepest primary\n * outlet with `title` property. Given the `Routes` below, navigating to\n * `/base/child(popup:aux)` would result in the document title being set to \"child\".\n * ```\n * [\n * {path: 'base', title: 'base', children: [\n * {path: 'child', title: 'child'},\n * ],\n * {path: 'aux', outlet: 'popup', title: 'popupTitle'}\n * ]\n * ```\n *\n * This class can be used as a base class for custom title strategies. That is, you can create your\n * own class that extends the `TitleStrategy`. Note that in the above example, the `title`\n * from the named outlet is never used. However, a custom strategy might be implemented to\n * incorporate titles in named outlets.\n *\n * @publicApi\n * @see [Page title guide](guide/router#setting-the-page-title)\n */\nclass TitleStrategy {\n /**\n * @returns The `title` of the deepest primary route.\n */\n buildTitle(snapshot) {\n let pageTitle;\n let route = snapshot.root;\n while (route !== undefined) {\n pageTitle = this.getResolvedTitleForRoute(route) ?? pageTitle;\n route = route.children.find(child => child.outlet === PRIMARY_OUTLET);\n }\n return pageTitle;\n }\n /**\n * Given an `ActivatedRouteSnapshot`, returns the final value of the\n * `Route.title` property, which can either be a static string or a resolved value.\n */\n getResolvedTitleForRoute(snapshot) {\n return snapshot.data[RouteTitleKey];\n }\n}\nTitleStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: TitleStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nTitleStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: TitleStrategy, providedIn: 'root', useFactory: () => inject(DefaultTitleStrategy) });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: TitleStrategy, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root', useFactory: () => inject(DefaultTitleStrategy) }]\n }] });\n/**\n * The default `TitleStrategy` used by the router that updates the title using the `Title` service.\n */\nclass DefaultTitleStrategy extends TitleStrategy {\n constructor(title) {\n super();\n this.title = title;\n }\n /**\n * Sets the title of the browser to the given value.\n *\n * @param title The `pageTitle` from the deepest primary route.\n */\n updateTitle(snapshot) {\n const title = this.buildTitle(snapshot);\n if (title !== undefined) {\n this.title.setTitle(title);\n }\n }\n}\nDefaultTitleStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: DefaultTitleStrategy, deps: [{ token: i1.Title }], target: i0.ɵɵFactoryTarget.Injectable });\nDefaultTitleStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: DefaultTitleStrategy, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: DefaultTitleStrategy, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return [{ type: i1.Title }]; } });\n\n/**\n * @description\n *\n * Provides a way to customize when activated routes get reused.\n *\n * @publicApi\n */\nclass RouteReuseStrategy {\n}\nRouteReuseStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: RouteReuseStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nRouteReuseStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: RouteReuseStrategy, providedIn: 'root', useFactory: () => inject(DefaultRouteReuseStrategy) });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: RouteReuseStrategy, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root', useFactory: () => inject(DefaultRouteReuseStrategy) }]\n }] });\n/**\n * @description\n *\n * This base route reuse strategy only reuses routes when the matched router configs are\n * identical. This prevents components from being destroyed and recreated\n * when just the route parameters, query parameters or fragment change\n * (that is, the existing component is _reused_).\n *\n * This strategy does not store any routes for later reuse.\n *\n * Angular uses this strategy by default.\n *\n *\n * It can be used as a base class for custom route reuse strategies, i.e. you can create your own\n * class that extends the `BaseRouteReuseStrategy` one.\n * @publicApi\n */\nclass BaseRouteReuseStrategy {\n /**\n * Whether the given route should detach for later reuse.\n * Always returns false for `BaseRouteReuseStrategy`.\n * */\n shouldDetach(route) {\n return false;\n }\n /**\n * A no-op; the route is never stored since this strategy never detaches routes for later re-use.\n */\n store(route, detachedTree) { }\n /** Returns `false`, meaning the route (and its subtree) is never reattached */\n shouldAttach(route) {\n return false;\n }\n /** Returns `null` because this strategy does not store routes for later re-use. */\n retrieve(route) {\n return null;\n }\n /**\n * Determines if a route should be reused.\n * This strategy returns `true` when the future route config and current route config are\n * identical.\n */\n shouldReuseRoute(future, curr) {\n return future.routeConfig === curr.routeConfig;\n }\n}\nclass DefaultRouteReuseStrategy extends BaseRouteReuseStrategy {\n}\nDefaultRouteReuseStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: DefaultRouteReuseStrategy, deps: null, target: i0.ɵɵFactoryTarget.Injectable });\nDefaultRouteReuseStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: DefaultRouteReuseStrategy, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: DefaultRouteReuseStrategy, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n\nconst NG_DEV_MODE$3 = typeof ngDevMode === 'undefined' || !!ngDevMode;\n/**\n * A [DI token](guide/glossary/#di-token) for the router service.\n *\n * @publicApi\n */\nconst ROUTER_CONFIGURATION = new InjectionToken(NG_DEV_MODE$3 ? 'router config' : '', {\n providedIn: 'root',\n factory: () => ({}),\n});\n\n/**\n * @description\n *\n * Provides a way to migrate AngularJS applications to Angular.\n *\n * @publicApi\n */\nclass UrlHandlingStrategy {\n}\nUrlHandlingStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: UrlHandlingStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nUrlHandlingStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: UrlHandlingStrategy, providedIn: 'root', useFactory: () => inject(DefaultUrlHandlingStrategy) });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: UrlHandlingStrategy, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root', useFactory: () => inject(DefaultUrlHandlingStrategy) }]\n }] });\n/**\n * @publicApi\n */\nclass DefaultUrlHandlingStrategy {\n shouldProcessUrl(url) {\n return true;\n }\n extract(url) {\n return url;\n }\n merge(newUrlPart, wholeUrl) {\n return newUrlPart;\n }\n}\nDefaultUrlHandlingStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: DefaultUrlHandlingStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nDefaultUrlHandlingStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: DefaultUrlHandlingStrategy, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: DefaultUrlHandlingStrategy, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n\nconst NG_DEV_MODE$2 = typeof ngDevMode === 'undefined' || !!ngDevMode;\nfunction defaultErrorHandler(error) {\n throw error;\n}\nfunction defaultMalformedUriErrorHandler(error, urlSerializer, url) {\n return urlSerializer.parse('/');\n}\n/**\n * The equivalent `IsActiveMatchOptions` options for `Router.isActive` is called with `true`\n * (exact = true).\n */\nconst exactMatchOptions = {\n paths: 'exact',\n fragment: 'ignored',\n matrixParams: 'ignored',\n queryParams: 'exact'\n};\n/**\n * The equivalent `IsActiveMatchOptions` options for `Router.isActive` is called with `false`\n * (exact = false).\n */\nconst subsetMatchOptions = {\n paths: 'subset',\n fragment: 'ignored',\n matrixParams: 'ignored',\n queryParams: 'subset'\n};\n/**\n * @description\n *\n * A service that provides navigation among views and URL manipulation capabilities.\n *\n * @see `Route`.\n * @see [Routing and Navigation Guide](guide/router).\n *\n * @ngModule RouterModule\n *\n * @publicApi\n */\nclass Router {\n // TODO(b/260747083): This should not exist and navigationId should be private in\n // `NavigationTransitions`\n get navigationId() {\n return this.navigationTransitions.navigationId;\n }\n /**\n * The ɵrouterPageId of whatever page is currently active in the browser history. This is\n * important for computing the target page id for new navigations because we need to ensure each\n * page id in the browser history is 1 more than the previous entry.\n */\n get browserPageId() {\n if (this.canceledNavigationResolution !== 'computed') {\n return undefined;\n }\n return this.location.getState()?.ɵrouterPageId;\n }\n /**\n * An event stream for routing events.\n */\n get events() {\n // TODO(atscott): This _should_ be events.asObservable(). However, this change requires internal\n // cleanup: tests are doing `(route.events as Subject<Event>).next(...)`. This isn't\n // allowed/supported but we still have to fix these or file bugs against the teams before making\n // the change.\n return this.navigationTransitions.events;\n }\n constructor() {\n this.disposed = false;\n /**\n * The id of the currently active page in the router.\n * Updated to the transition's target id on a successful navigation.\n *\n * This is used to track what page the router last activated. When an attempted navigation fails,\n * the router can then use this to compute how to restore the state back to the previously active\n * page.\n */\n this.currentPageId = 0;\n this.console = inject(ɵConsole);\n this.isNgZoneEnabled = false;\n this.options = inject(ROUTER_CONFIGURATION, { optional: true }) || {};\n /**\n * A handler for navigation errors in this NgModule.\n *\n * @deprecated Subscribe to the `Router` events and watch for `NavigationError` instead.\n * `provideRouter` has the `withNavigationErrorHandler` feature to make this easier.\n * @see `withNavigationErrorHandler`\n */\n this.errorHandler = this.options.errorHandler || defaultErrorHandler;\n /**\n * A handler for errors thrown by `Router.parseUrl(url)`\n * when `url` contains an invalid character.\n * The most common case is a `%` sign\n * that's not encoded and is not part of a percent encoded sequence.\n *\n * @deprecated URI parsing errors should be handled in the `UrlSerializer`.\n *\n * @see `RouterModule`\n */\n this.malformedUriErrorHandler = this.options.malformedUriErrorHandler || defaultMalformedUriErrorHandler;\n /**\n * True if at least one navigation event has occurred,\n * false otherwise.\n */\n this.navigated = false;\n this.lastSuccessfulId = -1;\n /**\n * A strategy for extracting and merging URLs.\n * Used for AngularJS to Angular migrations.\n *\n * @deprecated Configure using `providers` instead:\n * `{provide: UrlHandlingStrategy, useClass: MyStrategy}`.\n */\n this.urlHandlingStrategy = inject(UrlHandlingStrategy);\n /**\n * A strategy for re-using routes.\n *\n * @deprecated Configure using `providers` instead:\n * `{provide: RouteReuseStrategy, useClass: MyStrategy}`.\n */\n this.routeReuseStrategy = inject(RouteReuseStrategy);\n /** Strategy used to create a UrlTree. */\n this.urlCreationStrategy = inject(CreateUrlTreeStrategy);\n /**\n * A strategy for setting the title based on the `routerState`.\n *\n * @deprecated Configure using `providers` instead:\n * `{provide: TitleStrategy, useClass: MyStrategy}`.\n */\n this.titleStrategy = inject(TitleStrategy);\n /**\n * How to handle a navigation request to the current URL.\n *\n *\n * @deprecated Configure this through `provideRouter` or `RouterModule.forRoot` instead.\n * @see `withRouterConfig`\n * @see `provideRouter`\n * @see `RouterModule`\n */\n this.onSameUrlNavigation = this.options.onSameUrlNavigation || 'ignore';\n /**\n * How to merge parameters, data, resolved data, and title from parent to child\n * routes. One of:\n *\n * - `'emptyOnly'` : Inherit parent parameters, data, and resolved data\n * for path-less or component-less routes.\n * - `'always'` : Inherit parent parameters, data, and resolved data\n * for all child routes.\n *\n * @deprecated Configure this through `provideRouter` or `RouterModule.forRoot` instead.\n * @see `withRouterConfig`\n * @see `provideRouter`\n * @see `RouterModule`\n */\n this.paramsInheritanceStrategy = this.options.paramsInheritanceStrategy || 'emptyOnly';\n /**\n * Determines when the router updates the browser URL.\n * By default (`\"deferred\"`), updates the browser URL after navigation has finished.\n * Set to `'eager'` to update the browser URL at the beginning of navigation.\n * You can choose to update early so that, if navigation fails,\n * you can show an error message with the URL that failed.\n *\n * @deprecated Configure this through `provideRouter` or `RouterModule.forRoot` instead.\n * @see `withRouterConfig`\n * @see `provideRouter`\n * @see `RouterModule`\n */\n this.urlUpdateStrategy = this.options.urlUpdateStrategy || 'deferred';\n /**\n * Configures how the Router attempts to restore state when a navigation is cancelled.\n *\n * 'replace' - Always uses `location.replaceState` to set the browser state to the state of the\n * router before the navigation started. This means that if the URL of the browser is updated\n * _before_ the navigation is canceled, the Router will simply replace the item in history rather\n * than trying to restore to the previous location in the session history. This happens most\n * frequently with `urlUpdateStrategy: 'eager'` and navigations with the browser back/forward\n * buttons.\n *\n * 'computed' - Will attempt to return to the same index in the session history that corresponds\n * to the Angular route when the navigation gets cancelled. For example, if the browser back\n * button is clicked and the navigation is cancelled, the Router will trigger a forward navigation\n * and vice versa.\n *\n * Note: the 'computed' option is incompatible with any `UrlHandlingStrategy` which only\n * handles a portion of the URL because the history restoration navigates to the previous place in\n * the browser history rather than simply resetting a portion of the URL.\n *\n * The default value is `replace`.\n *\n * @deprecated Configure this through `provideRouter` or `RouterModule.forRoot` instead.\n * @see `withRouterConfig`\n * @see `provideRouter`\n * @see `RouterModule`\n */\n this.canceledNavigationResolution = this.options.canceledNavigationResolution || 'replace';\n this.config = flatten(inject(ROUTES, { optional: true }) ?? []);\n this.navigationTransitions = inject(NavigationTransitions);\n this.urlSerializer = inject(UrlSerializer);\n this.location = inject(Location);\n this.isNgZoneEnabled = inject(NgZone) instanceof NgZone && NgZone.isInAngularZone();\n this.resetConfig(this.config);\n this.currentUrlTree = new UrlTree();\n this.rawUrlTree = this.currentUrlTree;\n this.browserUrlTree = this.currentUrlTree;\n this.routerState = createEmptyState(this.currentUrlTree, null);\n this.navigationTransitions.setupNavigations(this).subscribe(t => {\n this.lastSuccessfulId = t.id;\n this.currentPageId = this.browserPageId ?? 0;\n }, e => {\n this.console.warn(`Unhandled Navigation Error: ${e}`);\n });\n }\n /** @internal */\n resetRootComponentType(rootComponentType) {\n // TODO: vsavkin router 4.0 should make the root component set to null\n // this will simplify the lifecycle of the router.\n this.routerState.root.component = rootComponentType;\n this.navigationTransitions.rootComponentType = rootComponentType;\n }\n /**\n * Sets up the location change listener and performs the initial navigation.\n */\n initialNavigation() {\n this.setUpLocationChangeListener();\n if (!this.navigationTransitions.hasRequestedNavigation) {\n const state = this.location.getState();\n this.navigateToSyncWithBrowser(this.location.path(true), IMPERATIVE_NAVIGATION, state);\n }\n }\n /**\n * Sets up the location change listener. This listener detects navigations triggered from outside\n * the Router (the browser back/forward buttons, for example) and schedules a corresponding Router\n * navigation so that the correct events, guards, etc. are triggered.\n */\n setUpLocationChangeListener() {\n // Don't need to use Zone.wrap any more, because zone.js\n // already patch onPopState, so location change callback will\n // run into ngZone\n if (!this.locationSubscription) {\n this.locationSubscription = this.location.subscribe(event => {\n const source = event['type'] === 'popstate' ? 'popstate' : 'hashchange';\n if (source === 'popstate') {\n // The `setTimeout` was added in #12160 and is likely to support Angular/AngularJS\n // hybrid apps.\n setTimeout(() => {\n this.navigateToSyncWithBrowser(event['url'], source, event.state);\n }, 0);\n }\n });\n }\n }\n /**\n * Schedules a router navigation to synchronize Router state with the browser state.\n *\n * This is done as a response to a popstate event and the initial navigation. These\n * two scenarios represent times when the browser URL/state has been updated and\n * the Router needs to respond to ensure its internal state matches.\n */\n navigateToSyncWithBrowser(url, source, state) {\n const extras = { replaceUrl: true };\n // TODO: restoredState should always include the entire state, regardless\n // of navigationId. This requires a breaking change to update the type on\n // NavigationStart’s restoredState, which currently requires navigationId\n // to always be present. The Router used to only restore history state if\n // a navigationId was present.\n // The stored navigationId is used by the RouterScroller to retrieve the scroll\n // position for the page.\n const restoredState = state?.navigationId ? state : null;\n // Separate to NavigationStart.restoredState, we must also restore the state to\n // history.state and generate a new navigationId, since it will be overwritten\n if (state) {\n const stateCopy = { ...state };\n delete stateCopy.navigationId;\n delete stateCopy.ɵrouterPageId;\n if (Object.keys(stateCopy).length !== 0) {\n extras.state = stateCopy;\n }\n }\n const urlTree = this.parseUrl(url);\n this.scheduleNavigation(urlTree, source, restoredState, extras);\n }\n /** The current URL. */\n get url() {\n return this.serializeUrl(this.currentUrlTree);\n }\n /**\n * Returns the current `Navigation` object when the router is navigating,\n * and `null` when idle.\n */\n getCurrentNavigation() {\n return this.navigationTransitions.currentNavigation;\n }\n /**\n * Resets the route configuration used for navigation and generating links.\n *\n * @param config The route array for the new configuration.\n *\n * @usageNotes\n *\n * ```\n * router.resetConfig([\n * { path: 'team/:id', component: TeamCmp, children: [\n * { path: 'simple', component: SimpleCmp },\n * { path: 'user/:name', component: UserCmp }\n * ]}\n * ]);\n * ```\n */\n resetConfig(config) {\n NG_DEV_MODE$2 && validateConfig(config);\n this.config = config.map(standardizeConfig);\n this.navigated = false;\n this.lastSuccessfulId = -1;\n }\n /** @nodoc */\n ngOnDestroy() {\n this.dispose();\n }\n /** Disposes of the router. */\n dispose() {\n this.navigationTransitions.complete();\n if (this.locationSubscription) {\n this.locationSubscription.unsubscribe();\n this.locationSubscription = undefined;\n }\n this.disposed = true;\n }\n /**\n * Appends URL segments to the current URL tree to create a new URL tree.\n *\n * @param commands An array of URL fragments with which to construct the new URL tree.\n * If the path is static, can be the literal URL string. For a dynamic path, pass an array of path\n * segments, followed by the parameters for each segment.\n * The fragments are applied to the current URL tree or the one provided in the `relativeTo`\n * property of the options object, if supplied.\n * @param navigationExtras Options that control the navigation strategy.\n * @returns The new URL tree.\n *\n * @usageNotes\n *\n * ```\n * // create /team/33/user/11\n * router.createUrlTree(['/team', 33, 'user', 11]);\n *\n * // create /team/33;expand=true/user/11\n * router.createUrlTree(['/team', 33, {expand: true}, 'user', 11]);\n *\n * // you can collapse static segments like this (this works only with the first passed-in value):\n * router.createUrlTree(['/team/33/user', userId]);\n *\n * // If the first segment can contain slashes, and you do not want the router to split it,\n * // you can do the following:\n * router.createUrlTree([{segmentPath: '/one/two'}]);\n *\n * // create /team/33/(user/11//right:chat)\n * router.createUrlTree(['/team', 33, {outlets: {primary: 'user/11', right: 'chat'}}]);\n *\n * // remove the right secondary node\n * router.createUrlTree(['/team', 33, {outlets: {primary: 'user/11', right: null}}]);\n *\n * // assuming the current url is `/team/33/user/11` and the route points to `user/11`\n *\n * // navigate to /team/33/user/11/details\n * router.createUrlTree(['details'], {relativeTo: route});\n *\n * // navigate to /team/33/user/22\n * router.createUrlTree(['../22'], {relativeTo: route});\n *\n * // navigate to /team/44/user/22\n * router.createUrlTree(['../../team/44/user/22'], {relativeTo: route});\n *\n * Note that a value of `null` or `undefined` for `relativeTo` indicates that the\n * tree should be created relative to the root.\n * ```\n */\n createUrlTree(commands, navigationExtras = {}) {\n const { relativeTo, queryParams, fragment, queryParamsHandling, preserveFragment } = navigationExtras;\n const f = preserveFragment ? this.currentUrlTree.fragment : fragment;\n let q = null;\n switch (queryParamsHandling) {\n case 'merge':\n q = { ...this.currentUrlTree.queryParams, ...queryParams };\n break;\n case 'preserve':\n q = this.currentUrlTree.queryParams;\n break;\n default:\n q = queryParams || null;\n }\n if (q !== null) {\n q = this.removeEmptyProps(q);\n }\n return this.urlCreationStrategy.createUrlTree(relativeTo, this.routerState, this.currentUrlTree, commands, q, f ?? null);\n }\n /**\n * Navigates to a view using an absolute route path.\n *\n * @param url An absolute path for a defined route. The function does not apply any delta to the\n * current URL.\n * @param extras An object containing properties that modify the navigation strategy.\n *\n * @returns A Promise that resolves to 'true' when navigation succeeds,\n * to 'false' when navigation fails, or is rejected on error.\n *\n * @usageNotes\n *\n * The following calls request navigation to an absolute path.\n *\n * ```\n * router.navigateByUrl(\"/team/33/user/11\");\n *\n * // Navigate without updating the URL\n * router.navigateByUrl(\"/team/33/user/11\", { skipLocationChange: true });\n * ```\n *\n * @see [Routing and Navigation guide](guide/router)\n *\n */\n navigateByUrl(url, extras = {\n skipLocationChange: false\n }) {\n if (NG_DEV_MODE$2) {\n if (this.isNgZoneEnabled && !NgZone.isInAngularZone()) {\n this.console.warn(`Navigation triggered outside Angular zone, did you forget to call 'ngZone.run()'?`);\n }\n if (url instanceof UrlTree && url._warnIfUsedForNavigation) {\n this.console.warn(url._warnIfUsedForNavigation);\n }\n }\n const urlTree = isUrlTree(url) ? url : this.parseUrl(url);\n const mergedTree = this.urlHandlingStrategy.merge(urlTree, this.rawUrlTree);\n return this.scheduleNavigation(mergedTree, IMPERATIVE_NAVIGATION, null, extras);\n }\n /**\n * Navigate based on the provided array of commands and a starting point.\n * If no starting route is provided, the navigation is absolute.\n *\n * @param commands An array of URL fragments with which to construct the target URL.\n * If the path is static, can be the literal URL string. For a dynamic path, pass an array of path\n * segments, followed by the parameters for each segment.\n * The fragments are applied to the current URL or the one provided in the `relativeTo` property\n * of the options object, if supplied.\n * @param extras An options object that determines how the URL should be constructed or\n * interpreted.\n *\n * @returns A Promise that resolves to `true` when navigation succeeds, to `false` when navigation\n * fails,\n * or is rejected on error.\n *\n * @usageNotes\n *\n * The following calls request navigation to a dynamic route path relative to the current URL.\n *\n * ```\n * router.navigate(['team', 33, 'user', 11], {relativeTo: route});\n *\n * // Navigate without updating the URL, overriding the default behavior\n * router.navigate(['team', 33, 'user', 11], {relativeTo: route, skipLocationChange: true});\n * ```\n *\n * @see [Routing and Navigation guide](guide/router)\n *\n */\n navigate(commands, extras = { skipLocationChange: false }) {\n validateCommands(commands);\n return this.navigateByUrl(this.createUrlTree(commands, extras), extras);\n }\n /** Serializes a `UrlTree` into a string */\n serializeUrl(url) {\n return this.urlSerializer.serialize(url);\n }\n /** Parses a string into a `UrlTree` */\n parseUrl(url) {\n let urlTree;\n try {\n urlTree = this.urlSerializer.parse(url);\n }\n catch (e) {\n urlTree = this.malformedUriErrorHandler(e, this.urlSerializer, url);\n }\n return urlTree;\n }\n isActive(url, matchOptions) {\n let options;\n if (matchOptions === true) {\n options = { ...exactMatchOptions };\n }\n else if (matchOptions === false) {\n options = { ...subsetMatchOptions };\n }\n else {\n options = matchOptions;\n }\n if (isUrlTree(url)) {\n return containsTree(this.currentUrlTree, url, options);\n }\n const urlTree = this.parseUrl(url);\n return containsTree(this.currentUrlTree, urlTree, options);\n }\n removeEmptyProps(params) {\n return Object.keys(params).reduce((result, key) => {\n const value = params[key];\n if (value !== null && value !== undefined) {\n result[key] = value;\n }\n return result;\n }, {});\n }\n /** @internal */\n scheduleNavigation(rawUrl, source, restoredState, extras, priorPromise) {\n if (this.disposed) {\n return Promise.resolve(false);\n }\n let resolve;\n let reject;\n let promise;\n if (priorPromise) {\n resolve = priorPromise.resolve;\n reject = priorPromise.reject;\n promise = priorPromise.promise;\n }\n else {\n promise = new Promise((res, rej) => {\n resolve = res;\n reject = rej;\n });\n }\n let targetPageId;\n if (this.canceledNavigationResolution === 'computed') {\n // If the `ɵrouterPageId` exist in the state then `targetpageId` should have the value of\n // `ɵrouterPageId`. This is the case for something like a page refresh where we assign the\n // target id to the previously set value for that page.\n if (restoredState && restoredState.ɵrouterPageId) {\n targetPageId = restoredState.ɵrouterPageId;\n }\n else {\n // Otherwise, targetPageId should be the next number in the event of a `pushState`\n // navigation.\n targetPageId = (this.browserPageId ?? 0) + 1;\n }\n }\n else {\n // This is unused when `canceledNavigationResolution` is not computed.\n targetPageId = 0;\n }\n this.navigationTransitions.handleNavigationRequest({\n targetPageId,\n source,\n restoredState,\n currentUrlTree: this.currentUrlTree,\n currentRawUrl: this.currentUrlTree,\n rawUrl,\n extras,\n resolve,\n reject,\n promise,\n currentSnapshot: this.routerState.snapshot,\n currentRouterState: this.routerState\n });\n // Make sure that the error is propagated even though `processNavigations` catch\n // handler does not rethrow\n return promise.catch((e) => {\n return Promise.reject(e);\n });\n }\n /** @internal */\n setBrowserUrl(url, transition) {\n const path = this.urlSerializer.serialize(url);\n if (this.location.isCurrentPathEqualTo(path) || !!transition.extras.replaceUrl) {\n // replacements do not update the target page\n const currentBrowserPageId = this.browserPageId;\n const state = {\n ...transition.extras.state,\n ...this.generateNgRouterState(transition.id, currentBrowserPageId)\n };\n this.location.replaceState(path, '', state);\n }\n else {\n const state = {\n ...transition.extras.state,\n ...this.generateNgRouterState(transition.id, transition.targetPageId)\n };\n this.location.go(path, '', state);\n }\n }\n /**\n * Performs the necessary rollback action to restore the browser URL to the\n * state before the transition.\n * @internal\n */\n restoreHistory(transition, restoringFromCaughtError = false) {\n if (this.canceledNavigationResolution === 'computed') {\n const currentBrowserPageId = this.browserPageId ?? this.currentPageId;\n const targetPagePosition = this.currentPageId - currentBrowserPageId;\n if (targetPagePosition !== 0) {\n this.location.historyGo(targetPagePosition);\n }\n else if (this.currentUrlTree === this.getCurrentNavigation()?.finalUrl &&\n targetPagePosition === 0) {\n // We got to the activation stage (where currentUrlTree is set to the navigation's\n // finalUrl), but we weren't moving anywhere in history (skipLocationChange or replaceUrl).\n // We still need to reset the router state back to what it was when the navigation started.\n this.resetState(transition);\n // TODO(atscott): resetting the `browserUrlTree` should really be done in `resetState`.\n // Investigate if this can be done by running TGP.\n this.browserUrlTree = transition.currentUrlTree;\n this.resetUrlToCurrentUrlTree();\n }\n else {\n // The browser URL and router state was not updated before the navigation cancelled so\n // there's no restoration needed.\n }\n }\n else if (this.canceledNavigationResolution === 'replace') {\n // TODO(atscott): It seems like we should _always_ reset the state here. It would be a no-op\n // for `deferred` navigations that haven't change the internal state yet because guards\n // reject. For 'eager' navigations, it seems like we also really should reset the state\n // because the navigation was cancelled. Investigate if this can be done by running TGP.\n if (restoringFromCaughtError) {\n this.resetState(transition);\n }\n this.resetUrlToCurrentUrlTree();\n }\n }\n resetState(t) {\n this.routerState = t.currentRouterState;\n this.currentUrlTree = t.currentUrlTree;\n // Note here that we use the urlHandlingStrategy to get the reset `rawUrlTree` because it may be\n // configured to handle only part of the navigation URL. This means we would only want to reset\n // the part of the navigation handled by the Angular router rather than the whole URL. In\n // addition, the URLHandlingStrategy may be configured to specifically preserve parts of the URL\n // when merging, such as the query params so they are not lost on a refresh.\n this.rawUrlTree = this.urlHandlingStrategy.merge(this.currentUrlTree, t.rawUrl);\n }\n resetUrlToCurrentUrlTree() {\n this.location.replaceState(this.urlSerializer.serialize(this.rawUrlTree), '', this.generateNgRouterState(this.lastSuccessfulId, this.currentPageId));\n }\n generateNgRouterState(navigationId, routerPageId) {\n if (this.canceledNavigationResolution === 'computed') {\n return { navigationId, ɵrouterPageId: routerPageId };\n }\n return { navigationId };\n }\n}\nRouter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: Router, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nRouter.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: Router, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: Router, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return []; } });\nfunction validateCommands(commands) {\n for (let i = 0; i < commands.length; i++) {\n const cmd = commands[i];\n if (cmd == null) {\n throw new ɵRuntimeError(4008 /* RuntimeErrorCode.NULLISH_COMMAND */, NG_DEV_MODE$2 && `The requested path contains ${cmd} segment at index ${i}`);\n }\n }\n}\n\n/**\n * @description\n *\n * When applied to an element in a template, makes that element a link\n * that initiates navigation to a route. Navigation opens one or more routed components\n * in one or more `<router-outlet>` locations on the page.\n *\n * Given a route configuration `[{ path: 'user/:name', component: UserCmp }]`,\n * the following creates a static link to the route:\n * `<a routerLink=\"/user/bob\">link to user component</a>`\n *\n * You can use dynamic values to generate the link.\n * For a dynamic link, pass an array of path segments,\n * followed by the params for each segment.\n * For example, `['/team', teamId, 'user', userName, {details: true}]`\n * generates a link to `/team/11/user/bob;details=true`.\n *\n * Multiple static segments can be merged into one term and combined with dynamic segments.\n * For example, `['/team/11/user', userName, {details: true}]`\n *\n * The input that you provide to the link is treated as a delta to the current URL.\n * For instance, suppose the current URL is `/user/(box//aux:team)`.\n * The link `<a [routerLink]=\"['/user/jim']\">Jim</a>` creates the URL\n * `/user/(jim//aux:team)`.\n * See {@link Router#createUrlTree createUrlTree} for more information.\n *\n * @usageNotes\n *\n * You can use absolute or relative paths in a link, set query parameters,\n * control how parameters are handled, and keep a history of navigation states.\n *\n * ### Relative link paths\n *\n * The first segment name can be prepended with `/`, `./`, or `../`.\n * * If the first segment begins with `/`, the router looks up the route from the root of the\n * app.\n * * If the first segment begins with `./`, or doesn't begin with a slash, the router\n * looks in the children of the current activated route.\n * * If the first segment begins with `../`, the router goes up one level in the route tree.\n *\n * ### Setting and handling query params and fragments\n *\n * The following link adds a query parameter and a fragment to the generated URL:\n *\n * ```\n * <a [routerLink]=\"['/user/bob']\" [queryParams]=\"{debug: true}\" fragment=\"education\">\n * link to user component\n * </a>\n * ```\n * By default, the directive constructs the new URL using the given query parameters.\n * The example generates the link: `/user/bob?debug=true#education`.\n *\n * You can instruct the directive to handle query parameters differently\n * by specifying the `queryParamsHandling` option in the link.\n * Allowed values are:\n *\n * - `'merge'`: Merge the given `queryParams` into the current query params.\n * - `'preserve'`: Preserve the current query params.\n *\n * For example:\n *\n * ```\n * <a [routerLink]=\"['/user/bob']\" [queryParams]=\"{debug: true}\" queryParamsHandling=\"merge\">\n * link to user component\n * </a>\n * ```\n *\n * See {@link UrlCreationOptions.queryParamsHandling UrlCreationOptions#queryParamsHandling}.\n *\n * ### Preserving navigation history\n *\n * You can provide a `state` value to be persisted to the browser's\n * [`History.state` property](https://developer.mozilla.org/en-US/docs/Web/API/History#Properties).\n * For example:\n *\n * ```\n * <a [routerLink]=\"['/user/bob']\" [state]=\"{tracingId: 123}\">\n * link to user component\n * </a>\n * ```\n *\n * Use {@link Router.getCurrentNavigation() Router#getCurrentNavigation} to retrieve a saved\n * navigation-state value. For example, to capture the `tracingId` during the `NavigationStart`\n * event:\n *\n * ```\n * // Get NavigationStart events\n * router.events.pipe(filter(e => e instanceof NavigationStart)).subscribe(e => {\n * const navigation = router.getCurrentNavigation();\n * tracingService.trace({id: navigation.extras.state.tracingId});\n * });\n * ```\n *\n * @ngModule RouterModule\n *\n * @publicApi\n */\nclass RouterLink {\n constructor(router, route, tabIndexAttribute, renderer, el, locationStrategy) {\n this.router = router;\n this.route = route;\n this.tabIndexAttribute = tabIndexAttribute;\n this.renderer = renderer;\n this.el = el;\n this.locationStrategy = locationStrategy;\n this._preserveFragment = false;\n this._skipLocationChange = false;\n this._replaceUrl = false;\n /**\n * Represents an `href` attribute value applied to a host element,\n * when a host element is `<a>`. For other tags, the value is `null`.\n */\n this.href = null;\n this.commands = null;\n /** @internal */\n this.onChanges = new Subject();\n const tagName = el.nativeElement.tagName?.toLowerCase();\n this.isAnchorElement = tagName === 'a' || tagName === 'area';\n if (this.isAnchorElement) {\n this.subscription = router.events.subscribe((s) => {\n if (s instanceof NavigationEnd) {\n this.updateHref();\n }\n });\n }\n else {\n this.setTabIndexIfNotOnNativeEl('0');\n }\n }\n /**\n * Passed to {@link Router#createUrlTree Router#createUrlTree} as part of the\n * `UrlCreationOptions`.\n * @see {@link UrlCreationOptions#preserveFragment UrlCreationOptions#preserveFragment}\n * @see {@link Router#createUrlTree Router#createUrlTree}\n */\n set preserveFragment(preserveFragment) {\n this._preserveFragment = ɵcoerceToBoolean(preserveFragment);\n }\n get preserveFragment() {\n return this._preserveFragment;\n }\n /**\n * Passed to {@link Router#navigateByUrl Router#navigateByUrl} as part of the\n * `NavigationBehaviorOptions`.\n * @see {@link NavigationBehaviorOptions#skipLocationChange NavigationBehaviorOptions#skipLocationChange}\n * @see {@link Router#navigateByUrl Router#navigateByUrl}\n */\n set skipLocationChange(skipLocationChange) {\n this._skipLocationChange = ɵcoerceToBoolean(skipLocationChange);\n }\n get skipLocationChange() {\n return this._skipLocationChange;\n }\n /**\n * Passed to {@link Router#navigateByUrl Router#navigateByUrl} as part of the\n * `NavigationBehaviorOptions`.\n * @see {@link NavigationBehaviorOptions#replaceUrl NavigationBehaviorOptions#replaceUrl}\n * @see {@link Router#navigateByUrl Router#navigateByUrl}\n */\n set replaceUrl(replaceUrl) {\n this._replaceUrl = ɵcoerceToBoolean(replaceUrl);\n }\n get replaceUrl() {\n return this._replaceUrl;\n }\n /**\n * Modifies the tab index if there was not a tabindex attribute on the element during\n * instantiation.\n */\n setTabIndexIfNotOnNativeEl(newTabIndex) {\n if (this.tabIndexAttribute != null /* both `null` and `undefined` */ || this.isAnchorElement) {\n return;\n }\n this.applyAttributeValue('tabindex', newTabIndex);\n }\n /** @nodoc */\n ngOnChanges(changes) {\n if (this.isAnchorElement) {\n this.updateHref();\n }\n // This is subscribed to by `RouterLinkActive` so that it knows to update when there are changes\n // to the RouterLinks it's tracking.\n this.onChanges.next(this);\n }\n /**\n * Commands to pass to {@link Router#createUrlTree Router#createUrlTree}.\n * - **array**: commands to pass to {@link Router#createUrlTree Router#createUrlTree}.\n * - **string**: shorthand for array of commands with just the string, i.e. `['/route']`\n * - **null|undefined**: effectively disables the `routerLink`\n * @see {@link Router#createUrlTree Router#createUrlTree}\n */\n set routerLink(commands) {\n if (commands != null) {\n this.commands = Array.isArray(commands) ? commands : [commands];\n this.setTabIndexIfNotOnNativeEl('0');\n }\n else {\n this.commands = null;\n this.setTabIndexIfNotOnNativeEl(null);\n }\n }\n /** @nodoc */\n onClick(button, ctrlKey, shiftKey, altKey, metaKey) {\n if (this.urlTree === null) {\n return true;\n }\n if (this.isAnchorElement) {\n if (button !== 0 || ctrlKey || shiftKey || altKey || metaKey) {\n return true;\n }\n if (typeof this.target === 'string' && this.target != '_self') {\n return true;\n }\n }\n const extras = {\n skipLocationChange: this.skipLocationChange,\n replaceUrl: this.replaceUrl,\n state: this.state,\n };\n this.router.navigateByUrl(this.urlTree, extras);\n // Return `false` for `<a>` elements to prevent default action\n // and cancel the native behavior, since the navigation is handled\n // by the Router.\n return !this.isAnchorElement;\n }\n /** @nodoc */\n ngOnDestroy() {\n this.subscription?.unsubscribe();\n }\n updateHref() {\n this.href = this.urlTree !== null && this.locationStrategy ?\n this.locationStrategy?.prepareExternalUrl(this.router.serializeUrl(this.urlTree)) :\n null;\n const sanitizedValue = this.href === null ?\n null :\n // This class represents a directive that can be added to both `<a>` elements,\n // as well as other elements. As a result, we can't define security context at\n // compile time. So the security context is deferred to runtime.\n // The `ɵɵsanitizeUrlOrResourceUrl` selects the necessary sanitizer function\n // based on the tag and property names. The logic mimics the one from\n // `packages/compiler/src/schema/dom_security_schema.ts`, which is used at compile time.\n //\n // Note: we should investigate whether we can switch to using `@HostBinding('attr.href')`\n // instead of applying a value via a renderer, after a final merge of the\n // `RouterLinkWithHref` directive.\n ɵɵsanitizeUrlOrResourceUrl(this.href, this.el.nativeElement.tagName.toLowerCase(), 'href');\n this.applyAttributeValue('href', sanitizedValue);\n }\n applyAttributeValue(attrName, attrValue) {\n const renderer = this.renderer;\n const nativeElement = this.el.nativeElement;\n if (attrValue !== null) {\n renderer.setAttribute(nativeElement, attrName, attrValue);\n }\n else {\n renderer.removeAttribute(nativeElement, attrName);\n }\n }\n get urlTree() {\n if (this.commands === null) {\n return null;\n }\n return this.router.createUrlTree(this.commands, {\n // If the `relativeTo` input is not defined, we want to use `this.route` by default.\n // Otherwise, we should use the value provided by the user in the input.\n relativeTo: this.relativeTo !== undefined ? this.relativeTo : this.route,\n queryParams: this.queryParams,\n fragment: this.fragment,\n queryParamsHandling: this.queryParamsHandling,\n preserveFragment: this.preserveFragment,\n });\n }\n}\nRouterLink.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: RouterLink, deps: [{ token: Router }, { token: ActivatedRoute }, { token: 'tabindex', attribute: true }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i3.LocationStrategy }], target: i0.ɵɵFactoryTarget.Directive });\nRouterLink.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"15.2.9\", type: RouterLink, isStandalone: true, selector: \"[routerLink]\", inputs: { target: \"target\", queryParams: \"queryParams\", fragment: \"fragment\", queryParamsHandling: \"queryParamsHandling\", state: \"state\", relativeTo: \"relativeTo\", preserveFragment: \"preserveFragment\", skipLocationChange: \"skipLocationChange\", replaceUrl: \"replaceUrl\", routerLink: \"routerLink\" }, host: { listeners: { \"click\": \"onClick($event.button,$event.ctrlKey,$event.shiftKey,$event.altKey,$event.metaKey)\" }, properties: { \"attr.target\": \"this.target\" } }, usesOnChanges: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: RouterLink, decorators: [{\n type: Directive,\n args: [{\n selector: '[routerLink]',\n standalone: true,\n }]\n }], ctorParameters: function () { return [{ type: Router }, { type: ActivatedRoute }, { type: undefined, decorators: [{\n type: Attribute,\n args: ['tabindex']\n }] }, { type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i3.LocationStrategy }]; }, propDecorators: { target: [{\n type: HostBinding,\n args: ['attr.target']\n }, {\n type: Input\n }], queryParams: [{\n type: Input\n }], fragment: [{\n type: Input\n }], queryParamsHandling: [{\n type: Input\n }], state: [{\n type: Input\n }], relativeTo: [{\n type: Input\n }], preserveFragment: [{\n type: Input\n }], skipLocationChange: [{\n type: Input\n }], replaceUrl: [{\n type: Input\n }], routerLink: [{\n type: Input\n }], onClick: [{\n type: HostListener,\n args: ['click',\n ['$event.button', '$event.ctrlKey', '$event.shiftKey', '$event.altKey', '$event.metaKey']]\n }] } });\n\n/**\n *\n * @description\n *\n * Tracks whether the linked route of an element is currently active, and allows you\n * to specify one or more CSS classes to add to the element when the linked route\n * is active.\n *\n * Use this directive to create a visual distinction for elements associated with an active route.\n * For example, the following code highlights the word \"Bob\" when the router\n * activates the associated route:\n *\n * ```\n * <a routerLink=\"/user/bob\" routerLinkActive=\"active-link\">Bob</a>\n * ```\n *\n * Whenever the URL is either '/user' or '/user/bob', the \"active-link\" class is\n * added to the anchor tag. If the URL changes, the class is removed.\n *\n * You can set more than one class using a space-separated string or an array.\n * For example:\n *\n * ```\n * <a routerLink=\"/user/bob\" routerLinkActive=\"class1 class2\">Bob</a>\n * <a routerLink=\"/user/bob\" [routerLinkActive]=\"['class1', 'class2']\">Bob</a>\n * ```\n *\n * To add the classes only when the URL matches the link exactly, add the option `exact: true`:\n *\n * ```\n * <a routerLink=\"/user/bob\" routerLinkActive=\"active-link\" [routerLinkActiveOptions]=\"{exact:\n * true}\">Bob</a>\n * ```\n *\n * To directly check the `isActive` status of the link, assign the `RouterLinkActive`\n * instance to a template variable.\n * For example, the following checks the status without assigning any CSS classes:\n *\n * ```\n * <a routerLink=\"/user/bob\" routerLinkActive #rla=\"routerLinkActive\">\n * Bob {{ rla.isActive ? '(already open)' : ''}}\n * </a>\n * ```\n *\n * You can apply the `RouterLinkActive` directive to an ancestor of linked elements.\n * For example, the following sets the active-link class on the `<div>` parent tag\n * when the URL is either '/user/jim' or '/user/bob'.\n *\n * ```\n * <div routerLinkActive=\"active-link\" [routerLinkActiveOptions]=\"{exact: true}\">\n * <a routerLink=\"/user/jim\">Jim</a>\n * <a routerLink=\"/user/bob\">Bob</a>\n * </div>\n * ```\n *\n * The `RouterLinkActive` directive can also be used to set the aria-current attribute\n * to provide an alternative distinction for active elements to visually impaired users.\n *\n * For example, the following code adds the 'active' class to the Home Page link when it is\n * indeed active and in such case also sets its aria-current attribute to 'page':\n *\n * ```\n * <a routerLink=\"/\" routerLinkActive=\"active\" ariaCurrentWhenActive=\"page\">Home Page</a>\n * ```\n *\n * @ngModule RouterModule\n *\n * @publicApi\n */\nclass RouterLinkActive {\n get isActive() {\n return this._isActive;\n }\n constructor(router, element, renderer, cdr, link) {\n this.router = router;\n this.element = element;\n this.renderer = renderer;\n this.cdr = cdr;\n this.link = link;\n this.classes = [];\n this._isActive = false;\n /**\n * Options to configure how to determine if the router link is active.\n *\n * These options are passed to the `Router.isActive()` function.\n *\n * @see Router.isActive\n */\n this.routerLinkActiveOptions = { exact: false };\n /**\n *\n * You can use the output `isActiveChange` to get notified each time the link becomes\n * active or inactive.\n *\n * Emits:\n * true -> Route is active\n * false -> Route is inactive\n *\n * ```\n * <a\n * routerLink=\"/user/bob\"\n * routerLinkActive=\"active-link\"\n * (isActiveChange)=\"this.onRouterLinkActive($event)\">Bob</a>\n * ```\n */\n this.isActiveChange = new EventEmitter();\n this.routerEventsSubscription = router.events.subscribe((s) => {\n if (s instanceof NavigationEnd) {\n this.update();\n }\n });\n }\n /** @nodoc */\n ngAfterContentInit() {\n // `of(null)` is used to force subscribe body to execute once immediately (like `startWith`).\n of(this.links.changes, of(null)).pipe(mergeAll()).subscribe(_ => {\n this.update();\n this.subscribeToEachLinkOnChanges();\n });\n }\n subscribeToEachLinkOnChanges() {\n this.linkInputChangesSubscription?.unsubscribe();\n const allLinkChanges = [...this.links.toArray(), this.link]\n .filter((link) => !!link)\n .map(link => link.onChanges);\n this.linkInputChangesSubscription = from(allLinkChanges).pipe(mergeAll()).subscribe(link => {\n if (this._isActive !== this.isLinkActive(this.router)(link)) {\n this.update();\n }\n });\n }\n set routerLinkActive(data) {\n const classes = Array.isArray(data) ? data : data.split(' ');\n this.classes = classes.filter(c => !!c);\n }\n /** @nodoc */\n ngOnChanges(changes) {\n this.update();\n }\n /** @nodoc */\n ngOnDestroy() {\n this.routerEventsSubscription.unsubscribe();\n this.linkInputChangesSubscription?.unsubscribe();\n }\n update() {\n if (!this.links || !this.router.navigated)\n return;\n Promise.resolve().then(() => {\n const hasActiveLinks = this.hasActiveLinks();\n if (this._isActive !== hasActiveLinks) {\n this._isActive = hasActiveLinks;\n this.cdr.markForCheck();\n this.classes.forEach((c) => {\n if (hasActiveLinks) {\n this.renderer.addClass(this.element.nativeElement, c);\n }\n else {\n this.renderer.removeClass(this.element.nativeElement, c);\n }\n });\n if (hasActiveLinks && this.ariaCurrentWhenActive !== undefined) {\n this.renderer.setAttribute(this.element.nativeElement, 'aria-current', this.ariaCurrentWhenActive.toString());\n }\n else {\n this.renderer.removeAttribute(this.element.nativeElement, 'aria-current');\n }\n // Emit on isActiveChange after classes are updated\n this.isActiveChange.emit(hasActiveLinks);\n }\n });\n }\n isLinkActive(router) {\n const options = isActiveMatchOptions(this.routerLinkActiveOptions) ?\n this.routerLinkActiveOptions :\n // While the types should disallow `undefined` here, it's possible without strict inputs\n (this.routerLinkActiveOptions.exact || false);\n return (link) => link.urlTree ? router.isActive(link.urlTree, options) : false;\n }\n hasActiveLinks() {\n const isActiveCheckFn = this.isLinkActive(this.router);\n return this.link && isActiveCheckFn(this.link) || this.links.some(isActiveCheckFn);\n }\n}\nRouterLinkActive.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: RouterLinkActive, deps: [{ token: Router }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: RouterLink, optional: true }], target: i0.ɵɵFactoryTarget.Directive });\nRouterLinkActive.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"15.2.9\", type: RouterLinkActive, isStandalone: true, selector: \"[routerLinkActive]\", inputs: { routerLinkActiveOptions: \"routerLinkActiveOptions\", ariaCurrentWhenActive: \"ariaCurrentWhenActive\", routerLinkActive: \"routerLinkActive\" }, outputs: { isActiveChange: \"isActiveChange\" }, queries: [{ propertyName: \"links\", predicate: RouterLink, descendants: true }], exportAs: [\"routerLinkActive\"], usesOnChanges: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: RouterLinkActive, decorators: [{\n type: Directive,\n args: [{\n selector: '[routerLinkActive]',\n exportAs: 'routerLinkActive',\n standalone: true,\n }]\n }], ctorParameters: function () { return [{ type: Router }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }, { type: RouterLink, decorators: [{\n type: Optional\n }] }]; }, propDecorators: { links: [{\n type: ContentChildren,\n args: [RouterLink, { descendants: true }]\n }], routerLinkActiveOptions: [{\n type: Input\n }], ariaCurrentWhenActive: [{\n type: Input\n }], isActiveChange: [{\n type: Output\n }], routerLinkActive: [{\n type: Input\n }] } });\n/**\n * Use instead of `'paths' in options` to be compatible with property renaming\n */\nfunction isActiveMatchOptions(options) {\n return !!options.paths;\n}\n\n/**\n * @description\n *\n * Provides a preloading strategy.\n *\n * @publicApi\n */\nclass PreloadingStrategy {\n}\n/**\n * @description\n *\n * Provides a preloading strategy that preloads all modules as quickly as possible.\n *\n * ```\n * RouterModule.forRoot(ROUTES, {preloadingStrategy: PreloadAllModules})\n * ```\n *\n * @publicApi\n */\nclass PreloadAllModules {\n preload(route, fn) {\n return fn().pipe(catchError(() => of(null)));\n }\n}\nPreloadAllModules.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: PreloadAllModules, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nPreloadAllModules.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: PreloadAllModules, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: PreloadAllModules, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n/**\n * @description\n *\n * Provides a preloading strategy that does not preload any modules.\n *\n * This strategy is enabled by default.\n *\n * @publicApi\n */\nclass NoPreloading {\n preload(route, fn) {\n return of(null);\n }\n}\nNoPreloading.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: NoPreloading, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nNoPreloading.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: NoPreloading, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: NoPreloading, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n/**\n * The preloader optimistically loads all router configurations to\n * make navigations into lazily-loaded sections of the application faster.\n *\n * The preloader runs in the background. When the router bootstraps, the preloader\n * starts listening to all navigation events. After every such event, the preloader\n * will check if any configurations can be loaded lazily.\n *\n * If a route is protected by `canLoad` guards, the preloaded will not load it.\n *\n * @publicApi\n */\nclass RouterPreloader {\n constructor(router, compiler, injector, preloadingStrategy, loader) {\n this.router = router;\n this.injector = injector;\n this.preloadingStrategy = preloadingStrategy;\n this.loader = loader;\n }\n setUpPreloading() {\n this.subscription =\n this.router.events\n .pipe(filter((e) => e instanceof NavigationEnd), concatMap(() => this.preload()))\n .subscribe(() => { });\n }\n preload() {\n return this.processRoutes(this.injector, this.router.config);\n }\n /** @nodoc */\n ngOnDestroy() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n processRoutes(injector, routes) {\n const res = [];\n for (const route of routes) {\n if (route.providers && !route._injector) {\n route._injector =\n createEnvironmentInjector(route.providers, injector, `Route: ${route.path}`);\n }\n const injectorForCurrentRoute = route._injector ?? injector;\n const injectorForChildren = route._loadedInjector ?? injectorForCurrentRoute;\n // Note that `canLoad` is only checked as a condition that prevents `loadChildren` and not\n // `loadComponent`. `canLoad` guards only block loading of child routes by design. This\n // happens as a consequence of needing to descend into children for route matching immediately\n // while component loading is deferred until route activation. Because `canLoad` guards can\n // have side effects, we cannot execute them here so we instead skip preloading altogether\n // when present. Lastly, it remains to be decided whether `canLoad` should behave this way\n // at all. Code splitting and lazy loading is separate from client-side authorization checks\n // and should not be used as a security measure to prevent loading of code.\n if ((route.loadChildren && !route._loadedRoutes && route.canLoad === undefined) ||\n (route.loadComponent && !route._loadedComponent)) {\n res.push(this.preloadConfig(injectorForCurrentRoute, route));\n }\n if (route.children || route._loadedRoutes) {\n res.push(this.processRoutes(injectorForChildren, (route.children ?? route._loadedRoutes)));\n }\n }\n return from(res).pipe(mergeAll());\n }\n preloadConfig(injector, route) {\n return this.preloadingStrategy.preload(route, () => {\n let loadedChildren$;\n if (route.loadChildren && route.canLoad === undefined) {\n loadedChildren$ = this.loader.loadChildren(injector, route);\n }\n else {\n loadedChildren$ = of(null);\n }\n const recursiveLoadChildren$ = loadedChildren$.pipe(mergeMap((config) => {\n if (config === null) {\n return of(void 0);\n }\n route._loadedRoutes = config.routes;\n route._loadedInjector = config.injector;\n // If the loaded config was a module, use that as the module/module injector going\n // forward. Otherwise, continue using the current module/module injector.\n return this.processRoutes(config.injector ?? injector, config.routes);\n }));\n if (route.loadComponent && !route._loadedComponent) {\n const loadComponent$ = this.loader.loadComponent(route);\n return from([recursiveLoadChildren$, loadComponent$]).pipe(mergeAll());\n }\n else {\n return recursiveLoadChildren$;\n }\n });\n }\n}\nRouterPreloader.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: RouterPreloader, deps: [{ token: Router }, { token: i0.Compiler }, { token: i0.EnvironmentInjector }, { token: PreloadingStrategy }, { token: RouterConfigLoader }], target: i0.ɵɵFactoryTarget.Injectable });\nRouterPreloader.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: RouterPreloader, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: RouterPreloader, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return [{ type: Router }, { type: i0.Compiler }, { type: i0.EnvironmentInjector }, { type: PreloadingStrategy }, { type: RouterConfigLoader }]; } });\n\nconst ROUTER_SCROLLER = new InjectionToken('');\nclass RouterScroller {\n /** @nodoc */\n constructor(urlSerializer, transitions, viewportScroller, zone, options = {}) {\n this.urlSerializer = urlSerializer;\n this.transitions = transitions;\n this.viewportScroller = viewportScroller;\n this.zone = zone;\n this.options = options;\n this.lastId = 0;\n this.lastSource = 'imperative';\n this.restoredId = 0;\n this.store = {};\n // Default both options to 'disabled'\n options.scrollPositionRestoration = options.scrollPositionRestoration || 'disabled';\n options.anchorScrolling = options.anchorScrolling || 'disabled';\n }\n init() {\n // we want to disable the automatic scrolling because having two places\n // responsible for scrolling results race conditions, especially given\n // that browser don't implement this behavior consistently\n if (this.options.scrollPositionRestoration !== 'disabled') {\n this.viewportScroller.setHistoryScrollRestoration('manual');\n }\n this.routerEventsSubscription = this.createScrollEvents();\n this.scrollEventsSubscription = this.consumeScrollEvents();\n }\n createScrollEvents() {\n return this.transitions.events.subscribe(e => {\n if (e instanceof NavigationStart) {\n // store the scroll position of the current stable navigations.\n this.store[this.lastId] = this.viewportScroller.getScrollPosition();\n this.lastSource = e.navigationTrigger;\n this.restoredId = e.restoredState ? e.restoredState.navigationId : 0;\n }\n else if (e instanceof NavigationEnd) {\n this.lastId = e.id;\n this.scheduleScrollEvent(e, this.urlSerializer.parse(e.urlAfterRedirects).fragment);\n }\n });\n }\n consumeScrollEvents() {\n return this.transitions.events.subscribe(e => {\n if (!(e instanceof Scroll))\n return;\n // a popstate event. The pop state event will always ignore anchor scrolling.\n if (e.position) {\n if (this.options.scrollPositionRestoration === 'top') {\n this.viewportScroller.scrollToPosition([0, 0]);\n }\n else if (this.options.scrollPositionRestoration === 'enabled') {\n this.viewportScroller.scrollToPosition(e.position);\n }\n // imperative navigation \"forward\"\n }\n else {\n if (e.anchor && this.options.anchorScrolling === 'enabled') {\n this.viewportScroller.scrollToAnchor(e.anchor);\n }\n else if (this.options.scrollPositionRestoration !== 'disabled') {\n this.viewportScroller.scrollToPosition([0, 0]);\n }\n }\n });\n }\n scheduleScrollEvent(routerEvent, anchor) {\n this.zone.runOutsideAngular(() => {\n // The scroll event needs to be delayed until after change detection. Otherwise, we may\n // attempt to restore the scroll position before the router outlet has fully rendered the\n // component by executing its update block of the template function.\n setTimeout(() => {\n this.zone.run(() => {\n this.transitions.events.next(new Scroll(routerEvent, this.lastSource === 'popstate' ? this.store[this.restoredId] : null, anchor));\n });\n }, 0);\n });\n }\n /** @nodoc */\n ngOnDestroy() {\n this.routerEventsSubscription?.unsubscribe();\n this.scrollEventsSubscription?.unsubscribe();\n }\n}\nRouterScroller.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: RouterScroller, deps: \"invalid\", target: i0.ɵɵFactoryTarget.Injectable });\nRouterScroller.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: RouterScroller });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: RouterScroller, decorators: [{\n type: Injectable\n }], ctorParameters: function () { return [{ type: UrlSerializer }, { type: NavigationTransitions }, { type: i3.ViewportScroller }, { type: i0.NgZone }, { type: undefined }]; } });\n\nvar NavigationResult;\n(function (NavigationResult) {\n NavigationResult[NavigationResult[\"COMPLETE\"] = 0] = \"COMPLETE\";\n NavigationResult[NavigationResult[\"FAILED\"] = 1] = \"FAILED\";\n NavigationResult[NavigationResult[\"REDIRECTING\"] = 2] = \"REDIRECTING\";\n})(NavigationResult || (NavigationResult = {}));\n/**\n * Performs the given action once the router finishes its next/current navigation.\n *\n * The navigation is considered complete under the following conditions:\n * - `NavigationCancel` event emits and the code is not `NavigationCancellationCode.Redirect` or\n * `NavigationCancellationCode.SupersededByNewNavigation`. In these cases, the\n * redirecting/superseding navigation must finish.\n * - `NavigationError`, `NavigationEnd`, or `NavigationSkipped` event emits\n */\nfunction afterNextNavigation(router, action) {\n router.events\n .pipe(filter((e) => e instanceof NavigationEnd || e instanceof NavigationCancel ||\n e instanceof NavigationError || e instanceof NavigationSkipped), map(e => {\n if (e instanceof NavigationEnd || e instanceof NavigationSkipped) {\n return NavigationResult.COMPLETE;\n }\n const redirecting = e instanceof NavigationCancel ?\n (e.code === 0 /* NavigationCancellationCode.Redirect */ ||\n e.code === 1 /* NavigationCancellationCode.SupersededByNewNavigation */) :\n false;\n return redirecting ? NavigationResult.REDIRECTING : NavigationResult.FAILED;\n }), filter((result) => result !== NavigationResult.REDIRECTING), take(1))\n .subscribe(() => {\n action();\n });\n}\n\nconst NG_DEV_MODE$1 = typeof ngDevMode === 'undefined' || ngDevMode;\n/**\n * Sets up providers necessary to enable `Router` functionality for the application.\n * Allows to configure a set of routes as well as extra features that should be enabled.\n *\n * @usageNotes\n *\n * Basic example of how you can add a Router to your application:\n * ```\n * const appRoutes: Routes = [];\n * bootstrapApplication(AppComponent, {\n * providers: [provideRouter(appRoutes)]\n * });\n * ```\n *\n * You can also enable optional features in the Router by adding functions from the `RouterFeatures`\n * type:\n * ```\n * const appRoutes: Routes = [];\n * bootstrapApplication(AppComponent,\n * {\n * providers: [\n * provideRouter(appRoutes,\n * withDebugTracing(),\n * withRouterConfig({paramsInheritanceStrategy: 'always'}))\n * ]\n * }\n * );\n * ```\n *\n * @see `RouterFeatures`\n *\n * @publicApi\n * @param routes A set of `Route`s to use for the application routing table.\n * @param features Optional features to configure additional router behaviors.\n * @returns A set of providers to setup a Router.\n */\nfunction provideRouter(routes, ...features) {\n return makeEnvironmentProviders([\n { provide: ROUTES, multi: true, useValue: routes },\n NG_DEV_MODE$1 ? { provide: ROUTER_IS_PROVIDED, useValue: true } : [],\n { provide: ActivatedRoute, useFactory: rootRoute, deps: [Router] },\n { provide: APP_BOOTSTRAP_LISTENER, multi: true, useFactory: getBootstrapListener },\n features.map(feature => feature.ɵproviders),\n ]);\n}\nfunction rootRoute(router) {\n return router.routerState.root;\n}\n/**\n * Helper function to create an object that represents a Router feature.\n */\nfunction routerFeature(kind, providers) {\n return { ɵkind: kind, ɵproviders: providers };\n}\n/**\n * An Injection token used to indicate whether `provideRouter` or `RouterModule.forRoot` was ever\n * called.\n */\nconst ROUTER_IS_PROVIDED = new InjectionToken('', { providedIn: 'root', factory: () => false });\nconst routerIsProvidedDevModeCheck = {\n provide: ENVIRONMENT_INITIALIZER,\n multi: true,\n useFactory() {\n return () => {\n if (!inject(ROUTER_IS_PROVIDED)) {\n console.warn('`provideRoutes` was called without `provideRouter` or `RouterModule.forRoot`. ' +\n 'This is likely a mistake.');\n }\n };\n }\n};\n/**\n * Registers a [DI provider](guide/glossary#provider) for a set of routes.\n * @param routes The route configuration to provide.\n *\n * @usageNotes\n *\n * ```\n * @NgModule({\n * providers: [provideRoutes(ROUTES)]\n * })\n * class LazyLoadedChildModule {}\n * ```\n *\n * @deprecated If necessary, provide routes using the `ROUTES` `InjectionToken`.\n * @see `ROUTES`\n * @publicApi\n */\nfunction provideRoutes(routes) {\n return [\n { provide: ROUTES, multi: true, useValue: routes },\n NG_DEV_MODE$1 ? routerIsProvidedDevModeCheck : [],\n ];\n}\n/**\n * Enables customizable scrolling behavior for router navigations.\n *\n * @usageNotes\n *\n * Basic example of how you can enable scrolling feature:\n * ```\n * const appRoutes: Routes = [];\n * bootstrapApplication(AppComponent,\n * {\n * providers: [\n * provideRouter(appRoutes, withInMemoryScrolling())\n * ]\n * }\n * );\n * ```\n *\n * @see `provideRouter`\n * @see `ViewportScroller`\n *\n * @publicApi\n * @param options Set of configuration parameters to customize scrolling behavior, see\n * `InMemoryScrollingOptions` for additional information.\n * @returns A set of providers for use with `provideRouter`.\n */\nfunction withInMemoryScrolling(options = {}) {\n const providers = [{\n provide: ROUTER_SCROLLER,\n useFactory: () => {\n const viewportScroller = inject(ViewportScroller);\n const zone = inject(NgZone);\n const transitions = inject(NavigationTransitions);\n const urlSerializer = inject(UrlSerializer);\n return new RouterScroller(urlSerializer, transitions, viewportScroller, zone, options);\n },\n }];\n return routerFeature(4 /* RouterFeatureKind.InMemoryScrollingFeature */, providers);\n}\nfunction getBootstrapListener() {\n const injector = inject(Injector);\n return (bootstrappedComponentRef) => {\n const ref = injector.get(ApplicationRef);\n if (bootstrappedComponentRef !== ref.components[0]) {\n return;\n }\n const router = injector.get(Router);\n const bootstrapDone = injector.get(BOOTSTRAP_DONE);\n if (injector.get(INITIAL_NAVIGATION) === 1 /* InitialNavigation.EnabledNonBlocking */) {\n router.initialNavigation();\n }\n injector.get(ROUTER_PRELOADER, null, InjectFlags.Optional)?.setUpPreloading();\n injector.get(ROUTER_SCROLLER, null, InjectFlags.Optional)?.init();\n router.resetRootComponentType(ref.componentTypes[0]);\n if (!bootstrapDone.closed) {\n bootstrapDone.next();\n bootstrapDone.complete();\n bootstrapDone.unsubscribe();\n }\n };\n}\n/**\n * A subject used to indicate that the bootstrapping phase is done. When initial navigation is\n * `enabledBlocking`, the first navigation waits until bootstrapping is finished before continuing\n * to the activation phase.\n */\nconst BOOTSTRAP_DONE = new InjectionToken(NG_DEV_MODE$1 ? 'bootstrap done indicator' : '', {\n factory: () => {\n return new Subject();\n }\n});\nconst INITIAL_NAVIGATION = new InjectionToken(NG_DEV_MODE$1 ? 'initial navigation' : '', { providedIn: 'root', factory: () => 1 /* InitialNavigation.EnabledNonBlocking */ });\n/**\n * Configures initial navigation to start before the root component is created.\n *\n * The bootstrap is blocked until the initial navigation is complete. This value is required for\n * [server-side rendering](guide/universal) to work.\n *\n * @usageNotes\n *\n * Basic example of how you can enable this navigation behavior:\n * ```\n * const appRoutes: Routes = [];\n * bootstrapApplication(AppComponent,\n * {\n * providers: [\n * provideRouter(appRoutes, withEnabledBlockingInitialNavigation())\n * ]\n * }\n * );\n * ```\n *\n * @see `provideRouter`\n *\n * @publicApi\n * @returns A set of providers for use with `provideRouter`.\n */\nfunction withEnabledBlockingInitialNavigation() {\n const providers = [\n { provide: INITIAL_NAVIGATION, useValue: 0 /* InitialNavigation.EnabledBlocking */ },\n {\n provide: APP_INITIALIZER,\n multi: true,\n deps: [Injector],\n useFactory: (injector) => {\n const locationInitialized = injector.get(LOCATION_INITIALIZED, Promise.resolve());\n return () => {\n return locationInitialized.then(() => {\n return new Promise(resolve => {\n const router = injector.get(Router);\n const bootstrapDone = injector.get(BOOTSTRAP_DONE);\n afterNextNavigation(router, () => {\n // Unblock APP_INITIALIZER in case the initial navigation was canceled or errored\n // without a redirect.\n resolve(true);\n });\n injector.get(NavigationTransitions).afterPreactivation = () => {\n // Unblock APP_INITIALIZER once we get to `afterPreactivation`. At this point, we\n // assume activation will complete successfully (even though this is not\n // guaranteed).\n resolve(true);\n return bootstrapDone.closed ? of(void 0) : bootstrapDone;\n };\n router.initialNavigation();\n });\n });\n };\n }\n },\n ];\n return routerFeature(2 /* RouterFeatureKind.EnabledBlockingInitialNavigationFeature */, providers);\n}\n/**\n * Disables initial navigation.\n *\n * Use if there is a reason to have more control over when the router starts its initial navigation\n * due to some complex initialization logic.\n *\n * @usageNotes\n *\n * Basic example of how you can disable initial navigation:\n * ```\n * const appRoutes: Routes = [];\n * bootstrapApplication(AppComponent,\n * {\n * providers: [\n * provideRouter(appRoutes, withDisabledInitialNavigation())\n * ]\n * }\n * );\n * ```\n *\n * @see `provideRouter`\n *\n * @returns A set of providers for use with `provideRouter`.\n *\n * @publicApi\n */\nfunction withDisabledInitialNavigation() {\n const providers = [\n {\n provide: APP_INITIALIZER,\n multi: true,\n useFactory: () => {\n const router = inject(Router);\n return () => {\n router.setUpLocationChangeListener();\n };\n }\n },\n { provide: INITIAL_NAVIGATION, useValue: 2 /* InitialNavigation.Disabled */ }\n ];\n return routerFeature(3 /* RouterFeatureKind.DisabledInitialNavigationFeature */, providers);\n}\n/**\n * Enables logging of all internal navigation events to the console.\n * Extra logging might be useful for debugging purposes to inspect Router event sequence.\n *\n * @usageNotes\n *\n * Basic example of how you can enable debug tracing:\n * ```\n * const appRoutes: Routes = [];\n * bootstrapApplication(AppComponent,\n * {\n * providers: [\n * provideRouter(appRoutes, withDebugTracing())\n * ]\n * }\n * );\n * ```\n *\n * @see `provideRouter`\n *\n * @returns A set of providers for use with `provideRouter`.\n *\n * @publicApi\n */\nfunction withDebugTracing() {\n let providers = [];\n if (NG_DEV_MODE$1) {\n providers = [{\n provide: ENVIRONMENT_INITIALIZER,\n multi: true,\n useFactory: () => {\n const router = inject(Router);\n return () => router.events.subscribe((e) => {\n // tslint:disable:no-console\n console.group?.(`Router Event: ${e.constructor.name}`);\n console.log(stringifyEvent(e));\n console.log(e);\n console.groupEnd?.();\n // tslint:enable:no-console\n });\n }\n }];\n }\n else {\n providers = [];\n }\n return routerFeature(1 /* RouterFeatureKind.DebugTracingFeature */, providers);\n}\nconst ROUTER_PRELOADER = new InjectionToken(NG_DEV_MODE$1 ? 'router preloader' : '');\n/**\n * Allows to configure a preloading strategy to use. The strategy is configured by providing a\n * reference to a class that implements a `PreloadingStrategy`.\n *\n * @usageNotes\n *\n * Basic example of how you can configure preloading:\n * ```\n * const appRoutes: Routes = [];\n * bootstrapApplication(AppComponent,\n * {\n * providers: [\n * provideRouter(appRoutes, withPreloading(PreloadAllModules))\n * ]\n * }\n * );\n * ```\n *\n * @see `provideRouter`\n *\n * @param preloadingStrategy A reference to a class that implements a `PreloadingStrategy` that\n * should be used.\n * @returns A set of providers for use with `provideRouter`.\n *\n * @publicApi\n */\nfunction withPreloading(preloadingStrategy) {\n const providers = [\n { provide: ROUTER_PRELOADER, useExisting: RouterPreloader },\n { provide: PreloadingStrategy, useExisting: preloadingStrategy },\n ];\n return routerFeature(0 /* RouterFeatureKind.PreloadingFeature */, providers);\n}\n/**\n * Allows to provide extra parameters to configure Router.\n *\n * @usageNotes\n *\n * Basic example of how you can provide extra configuration options:\n * ```\n * const appRoutes: Routes = [];\n * bootstrapApplication(AppComponent,\n * {\n * providers: [\n * provideRouter(appRoutes, withRouterConfig({\n * onSameUrlNavigation: 'reload'\n * }))\n * ]\n * }\n * );\n * ```\n *\n * @see `provideRouter`\n *\n * @param options A set of parameters to configure Router, see `RouterConfigOptions` for\n * additional information.\n * @returns A set of providers for use with `provideRouter`.\n *\n * @publicApi\n */\nfunction withRouterConfig(options) {\n const providers = [\n { provide: ROUTER_CONFIGURATION, useValue: options },\n ];\n return routerFeature(5 /* RouterFeatureKind.RouterConfigurationFeature */, providers);\n}\n/**\n * Provides the location strategy that uses the URL fragment instead of the history API.\n *\n * @usageNotes\n *\n * Basic example of how you can use the hash location option:\n * ```\n * const appRoutes: Routes = [];\n * bootstrapApplication(AppComponent,\n * {\n * providers: [\n * provideRouter(appRoutes, withHashLocation())\n * ]\n * }\n * );\n * ```\n *\n * @see `provideRouter`\n * @see `HashLocationStrategy`\n *\n * @returns A set of providers for use with `provideRouter`.\n *\n * @publicApi\n */\nfunction withHashLocation() {\n const providers = [\n { provide: LocationStrategy, useClass: HashLocationStrategy },\n ];\n return routerFeature(5 /* RouterFeatureKind.RouterConfigurationFeature */, providers);\n}\n/**\n * Subscribes to the Router's navigation events and calls the given function when a\n * `NavigationError` happens.\n *\n * This function is run inside application's injection context so you can use the `inject` function.\n *\n * @usageNotes\n *\n * Basic example of how you can use the error handler option:\n * ```\n * const appRoutes: Routes = [];\n * bootstrapApplication(AppComponent,\n * {\n * providers: [\n * provideRouter(appRoutes, withNavigationErrorHandler((e: NavigationError) =>\n * inject(MyErrorTracker).trackError(e)))\n * ]\n * }\n * );\n * ```\n *\n * @see `NavigationError`\n * @see `inject`\n * @see `EnvironmentInjector#runInContext`\n *\n * @returns A set of providers for use with `provideRouter`.\n *\n * @publicApi\n */\nfunction withNavigationErrorHandler(fn) {\n const providers = [{\n provide: ENVIRONMENT_INITIALIZER,\n multi: true,\n useValue: () => {\n const injector = inject(EnvironmentInjector);\n inject(Router).events.subscribe((e) => {\n if (e instanceof NavigationError) {\n injector.runInContext(() => fn(e));\n }\n });\n }\n }];\n return routerFeature(7 /* RouterFeatureKind.NavigationErrorHandlerFeature */, providers);\n}\n\nconst NG_DEV_MODE = typeof ngDevMode === 'undefined' || ngDevMode;\n/**\n * The directives defined in the `RouterModule`.\n */\nconst ROUTER_DIRECTIVES = [RouterOutlet, RouterLink, RouterLinkActive, ɵEmptyOutletComponent];\n/**\n * @docsNotRequired\n */\nconst ROUTER_FORROOT_GUARD = new InjectionToken(NG_DEV_MODE ? 'router duplicate forRoot guard' : 'ROUTER_FORROOT_GUARD');\n// TODO(atscott): All of these except `ActivatedRoute` are `providedIn: 'root'`. They are only kept\n// here to avoid a breaking change whereby the provider order matters based on where the\n// `RouterModule`/`RouterTestingModule` is imported. These can/should be removed as a \"breaking\"\n// change in a major version.\nconst ROUTER_PROVIDERS = [\n Location,\n { provide: UrlSerializer, useClass: DefaultUrlSerializer },\n Router,\n ChildrenOutletContexts,\n { provide: ActivatedRoute, useFactory: rootRoute, deps: [Router] },\n RouterConfigLoader,\n // Only used to warn when `provideRoutes` is used without `RouterModule` or `provideRouter`. Can\n // be removed when `provideRoutes` is removed.\n NG_DEV_MODE ? { provide: ROUTER_IS_PROVIDED, useValue: true } : [],\n];\nfunction routerNgProbeToken() {\n return new NgProbeToken('Router', Router);\n}\n/**\n * @description\n *\n * Adds directives and providers for in-app navigation among views defined in an application.\n * Use the Angular `Router` service to declaratively specify application states and manage state\n * transitions.\n *\n * You can import this NgModule multiple times, once for each lazy-loaded bundle.\n * However, only one `Router` service can be active.\n * To ensure this, there are two ways to register routes when importing this module:\n *\n * * The `forRoot()` method creates an `NgModule` that contains all the directives, the given\n * routes, and the `Router` service itself.\n * * The `forChild()` method creates an `NgModule` that contains all the directives and the given\n * routes, but does not include the `Router` service.\n *\n * @see [Routing and Navigation guide](guide/router) for an\n * overview of how the `Router` service should be used.\n *\n * @publicApi\n */\nclass RouterModule {\n constructor(guard) { }\n /**\n * Creates and configures a module with all the router providers and directives.\n * Optionally sets up an application listener to perform an initial navigation.\n *\n * When registering the NgModule at the root, import as follows:\n *\n * ```\n * @NgModule({\n * imports: [RouterModule.forRoot(ROUTES)]\n * })\n * class MyNgModule {}\n * ```\n *\n * @param routes An array of `Route` objects that define the navigation paths for the application.\n * @param config An `ExtraOptions` configuration object that controls how navigation is performed.\n * @return The new `NgModule`.\n *\n */\n static forRoot(routes, config) {\n return {\n ngModule: RouterModule,\n providers: [\n ROUTER_PROVIDERS,\n NG_DEV_MODE ? (config?.enableTracing ? withDebugTracing().ɵproviders : []) : [],\n { provide: ROUTES, multi: true, useValue: routes },\n {\n provide: ROUTER_FORROOT_GUARD,\n useFactory: provideForRootGuard,\n deps: [[Router, new Optional(), new SkipSelf()]]\n },\n { provide: ROUTER_CONFIGURATION, useValue: config ? config : {} },\n config?.useHash ? provideHashLocationStrategy() : providePathLocationStrategy(),\n provideRouterScroller(),\n config?.preloadingStrategy ? withPreloading(config.preloadingStrategy).ɵproviders : [],\n { provide: NgProbeToken, multi: true, useFactory: routerNgProbeToken },\n config?.initialNavigation ? provideInitialNavigation(config) : [],\n provideRouterInitializer(),\n ],\n };\n }\n /**\n * Creates a module with all the router directives and a provider registering routes,\n * without creating a new Router service.\n * When registering for submodules and lazy-loaded submodules, create the NgModule as follows:\n *\n * ```\n * @NgModule({\n * imports: [RouterModule.forChild(ROUTES)]\n * })\n * class MyNgModule {}\n * ```\n *\n * @param routes An array of `Route` objects that define the navigation paths for the submodule.\n * @return The new NgModule.\n *\n */\n static forChild(routes) {\n return {\n ngModule: RouterModule,\n providers: [{ provide: ROUTES, multi: true, useValue: routes }],\n };\n }\n}\nRouterModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: RouterModule, deps: [{ token: ROUTER_FORROOT_GUARD, optional: true }], target: i0.ɵɵFactoryTarget.NgModule });\nRouterModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"15.2.9\", ngImport: i0, type: RouterModule, imports: [RouterOutlet, RouterLink, RouterLinkActive, ɵEmptyOutletComponent], exports: [RouterOutlet, RouterLink, RouterLinkActive, ɵEmptyOutletComponent] });\nRouterModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: RouterModule, imports: [ɵEmptyOutletComponent] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: RouterModule, decorators: [{\n type: NgModule,\n args: [{\n imports: ROUTER_DIRECTIVES,\n exports: ROUTER_DIRECTIVES,\n }]\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [ROUTER_FORROOT_GUARD]\n }] }]; } });\n/**\n * For internal use by `RouterModule` only. Note that this differs from `withInMemoryRouterScroller`\n * because it reads from the `ExtraOptions` which should not be used in the standalone world.\n */\nfunction provideRouterScroller() {\n return {\n provide: ROUTER_SCROLLER,\n useFactory: () => {\n const viewportScroller = inject(ViewportScroller);\n const zone = inject(NgZone);\n const config = inject(ROUTER_CONFIGURATION);\n const transitions = inject(NavigationTransitions);\n const urlSerializer = inject(UrlSerializer);\n if (config.scrollOffset) {\n viewportScroller.setOffset(config.scrollOffset);\n }\n return new RouterScroller(urlSerializer, transitions, viewportScroller, zone, config);\n },\n };\n}\n// Note: For internal use only with `RouterModule`. Standalone setup via `provideRouter` should\n// provide hash location directly via `{provide: LocationStrategy, useClass: HashLocationStrategy}`.\nfunction provideHashLocationStrategy() {\n return { provide: LocationStrategy, useClass: HashLocationStrategy };\n}\n// Note: For internal use only with `RouterModule`. Standalone setup via `provideRouter` does not\n// need this at all because `PathLocationStrategy` is the default factory for `LocationStrategy`.\nfunction providePathLocationStrategy() {\n return { provide: LocationStrategy, useClass: PathLocationStrategy };\n}\nfunction provideForRootGuard(router) {\n if (NG_DEV_MODE && router) {\n throw new ɵRuntimeError(4007 /* RuntimeErrorCode.FOR_ROOT_CALLED_TWICE */, `The Router was provided more than once. This can happen if 'forRoot' is used outside of the root injector.` +\n ` Lazy loaded modules should use RouterModule.forChild() instead.`);\n }\n return 'guarded';\n}\n// Note: For internal use only with `RouterModule`. Standalone router setup with `provideRouter`\n// users call `withXInitialNavigation` directly.\nfunction provideInitialNavigation(config) {\n return [\n config.initialNavigation === 'disabled' ? withDisabledInitialNavigation().ɵproviders : [],\n config.initialNavigation === 'enabledBlocking' ?\n withEnabledBlockingInitialNavigation().ɵproviders :\n [],\n ];\n}\n// TODO(atscott): This should not be in the public API\n/**\n * A [DI token](guide/glossary/#di-token) for the router initializer that\n * is called after the app is bootstrapped.\n *\n * @publicApi\n */\nconst ROUTER_INITIALIZER = new InjectionToken(NG_DEV_MODE ? 'Router Initializer' : '');\nfunction provideRouterInitializer() {\n return [\n // ROUTER_INITIALIZER token should be removed. It's public API but shouldn't be. We can just\n // have `getBootstrapListener` directly attached to APP_BOOTSTRAP_LISTENER.\n { provide: ROUTER_INITIALIZER, useFactory: getBootstrapListener },\n { provide: APP_BOOTSTRAP_LISTENER, multi: true, useExisting: ROUTER_INITIALIZER },\n ];\n}\n\n/**\n * @module\n * @description\n * Entry point for all public APIs of the router package.\n */\n/**\n * @publicApi\n */\nconst VERSION = new Version('15.2.9');\n\n/**\n * @module\n * @description\n * Entry point for all public APIs of this package.\n */\n// This file only reexports content of the `src` folder. Keep it that way.\n\n// This file is not used to build this module. It is only used during editing\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { ActivatedRoute, ActivatedRouteSnapshot, ActivationEnd, ActivationStart, BaseRouteReuseStrategy, ChildActivationEnd, ChildActivationStart, ChildrenOutletContexts, DefaultTitleStrategy, DefaultUrlSerializer, GuardsCheckEnd, GuardsCheckStart, NavigationCancel, NavigationEnd, NavigationError, NavigationSkipped, NavigationStart, NoPreloading, OutletContext, PRIMARY_OUTLET, PreloadAllModules, PreloadingStrategy, ROUTER_CONFIGURATION, ROUTER_INITIALIZER, ROUTES, ResolveEnd, ResolveStart, RouteConfigLoadEnd, RouteConfigLoadStart, RouteReuseStrategy, Router, RouterEvent, RouterLink, RouterLinkActive, RouterLink as RouterLinkWithHref, RouterModule, RouterOutlet, RouterPreloader, RouterState, RouterStateSnapshot, RoutesRecognized, Scroll, TitleStrategy, UrlHandlingStrategy, UrlSegment, UrlSegmentGroup, UrlSerializer, UrlTree, VERSION, convertToParamMap, createUrlTreeFromSnapshot, defaultUrlMatcher, provideRouter, provideRoutes, withDebugTracing, withDisabledInitialNavigation, withEnabledBlockingInitialNavigation, withHashLocation, withInMemoryScrolling, withNavigationErrorHandler, withPreloading, withRouterConfig, ɵEmptyOutletComponent, ROUTER_PROVIDERS as ɵROUTER_PROVIDERS, afterNextNavigation as ɵafterNextNavigation, flatten as ɵflatten, withPreloading as ɵwithPreloading };\n","import { concat } from '../observable/concat';\nimport { isScheduler } from '../util/isScheduler';\nexport function startWith(...array) {\n const scheduler = array[array.length - 1];\n if (isScheduler(scheduler)) {\n array.pop();\n return (source) => concat(array, source, scheduler);\n }\n else {\n return (source) => concat(array, source);\n }\n}\n","import { map } from 'rxjs/operators';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { environment } from '../../environments/environment';\r\nimport { UserService } from './user.service';\r\n\r\n@Injectable()\r\nexport class AuthService {\r\n user: string;\r\n\r\n private userNameSubject = new Subject();\r\n userNameRequest = this.userNameSubject.asObservable();\r\n // This only authenticates, it concerns itself with nothing else.\r\n constructor(\r\n private http: HttpClient,\r\n private _route: ActivatedRoute,\r\n private userService: UserService,\r\n private _router: Router\r\n ) {}\r\n\r\n login(username: string, password: string) {\r\n return this.http.post(`${environment.authUrl}/login`, { username, password }, { headers: this.getHeaders() }).pipe(\r\n map((jwt: any) => {\r\n if (jwt) {\r\n this.initLocalStorageItems(jwt);\r\n }\r\n })\r\n );\r\n }\r\n\r\n initLocalStorageItems(jwt) {\r\n localStorage.setItem('currentUser', JSON.stringify(jwt));\r\n localStorage.setItem('token', jwt.auth_token);\r\n localStorage.setItem('userId', jwt.id);\r\n this.setUser(jwt.id);\r\n }\r\n\r\n setUser(id) {\r\n this.userService.getUser(id).subscribe(\r\n success => {\r\n this.user = `${success.firstName} ${success.lastName}`;\r\n localStorage.setItem('userName', this.user);\r\n localStorage.setItem('user', JSON.stringify(success));\r\n this.userNameSubject.next(this.user);\r\n },\r\n error => {\r\n console.error(error.error);\r\n }\r\n );\r\n }\r\n\r\n sendPasswordRecovery(username: string) {\r\n return this.http.post(`${environment.accountUrl}/passwordRecovery`, { username }, { headers: this.getHeaders() });\r\n }\r\n\r\n setNewPassword(userId: string, token: string, password: string) {\r\n return this.http.post(\r\n `${environment.accountUrl}/newPassword`,\r\n { userId, token, password },\r\n { headers: this.getHeaders() }\r\n );\r\n }\r\n\r\n // Should do a lot more(?)\r\n logout() {\r\n localStorage.removeItem('currentUser');\r\n localStorage.removeItem('token');\r\n localStorage.clear();\r\n this._router.navigate(['/login']);\r\n }\r\n\r\n getIdentity() {\r\n const identity = JSON.parse(localStorage.getItem('currentUser'));\r\n if (identity) {\r\n return identity;\r\n }\r\n return null;\r\n }\r\n\r\n getToken() {\r\n const token = localStorage.getItem('token');\r\n if (token) {\r\n return token;\r\n }\r\n return null;\r\n }\r\n\r\n getRole() {\r\n const token = localStorage.getItem('token');\r\n if (token) {\r\n const jwtData = token.split('.');\r\n const payload = JSON.parse(atob(jwtData[1]));\r\n let role = '';\r\n // noice\r\n role = payload['http://schemas.microsoft.com/ws/2008/06/identity/claims/role'];\r\n return role;\r\n }\r\n return '';\r\n }\r\n\r\n isAuthenticated() {\r\n return localStorage.getItem('token') && localStorage.getItem('currentUser') && !this.isTokenExpired(10);\r\n }\r\n\r\n isTokenExpired(offsetSeconds?: number): boolean {\r\n const date = this.getTokenExpirationDate();\r\n offsetSeconds = offsetSeconds || 10;\r\n if (!date) {\r\n return false;\r\n }\r\n\r\n return !(date.valueOf() > new Date().valueOf() + offsetSeconds);\r\n }\r\n\r\n getTokenExpirationDate(): Date {\r\n const token = this.getToken();\r\n if (token) {\r\n const jwtData = token.split('.');\r\n const payload = JSON.parse(atob(jwtData[1]));\r\n let exp = 0;\r\n exp = payload.exp;\r\n const date = new Date(0); // The 0 here is the key, which sets the date to the epoch\r\n date.setUTCSeconds(exp);\r\n return date;\r\n }\r\n return undefined;\r\n }\r\n\r\n private getHeaders() {\r\n const headers = new HttpHeaders().set('Accept', 'application/json');\r\n return headers;\r\n }\r\n}\r\n","var isFunction = function (fn) { return typeof fn === 'function'; };\n/**\n * Subscription sink that holds Observable subscriptions\n * until you call unsubscribe on it in ngOnDestroy.\n */\nvar SubSink = /** @class */ (function () {\n /**\n * Subscription sink that holds Observable subscriptions\n * until you call unsubscribe on it in ngOnDestroy.\n *\n * @example\n * In Angular:\n * ```\n * private subs = new SubSink();\n * ...\n * this.subs.sink = observable$.subscribe(...)\n * this.subs.add(observable$.subscribe(...));\n * ...\n * ngOnDestroy() {\n * this.subs.unsubscribe();\n * }\n * ```\n */\n function SubSink() {\n this._subs = [];\n }\n /**\n * Add subscriptions to the tracked subscriptions\n * @example\n * this.subs.add(observable$.subscribe(...));\n */\n SubSink.prototype.add = function () {\n var subscriptions = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n subscriptions[_i] = arguments[_i];\n }\n this._subs = this._subs.concat(subscriptions);\n };\n Object.defineProperty(SubSink.prototype, \"sink\", {\n /**\n * Assign subscription to this sink to add it to the tracked subscriptions\n * @example\n * this.subs.sink = observable$.subscribe(...);\n */\n set: function (subscription) {\n this._subs.push(subscription);\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Unsubscribe to all subscriptions in ngOnDestroy()\n * @example\n * ngOnDestroy() {\n * this.subs.unsubscribe();\n * }\n */\n SubSink.prototype.unsubscribe = function () {\n this._subs.forEach(function (sub) { return sub && isFunction(sub.unsubscribe) && sub.unsubscribe(); });\n this._subs = [];\n };\n return SubSink;\n}());\nexport { SubSink };\n","import { Injectable } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class GlobalErrorModalService {\r\n protected errorOccurredSubject = new Subject<unknown>();\r\n errorOccurred$ = this.errorOccurredSubject.asObservable();\r\n\r\n reportError(error: unknown) {\r\n this.errorOccurredSubject.next(error);\r\n }\r\n}\r\n","<div class=\"modal fade\" id=\"globalErrorModal\" tabindex=\"-1\" role=\"dialog\" aria-labelledby=\"globalErrorModalLabel\">\r\n <div class=\"modal-dialog modal-lg\" role=\"document\">\r\n <div class=\"modal-content\">\r\n <div class=\"modal-header\">\r\n <button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"Close\">\r\n <span aria-hidden=\"true\">×</span>\r\n </button>\r\n <h4 class=\"modal-title\" id=\"\">An application error occurred</h4>\r\n </div>\r\n <div class=\"modal-body\">\r\n <div class=\"row\">\r\n <div class=\"col-xs-1 px-0 text-center\">\r\n <i class=\"fa fa-times-circle text-danger error-icon\"></i>\r\n </div>\r\n <div class=\"col-xs-11\">\r\n <h3 class=\"text-danger error-title\">An application error occurred.</h3>\r\n <span *ngIf=\"isLoading()\" class=\"text-info\"\r\n ><i class=\"fa fa-spinner fa-spin\"></i> Notifying Process Ecology</span\r\n >\r\n <span *ngIf=\"!isLoading() && processEcologyNotified\" class=\"text-success\">\r\n <i class=\"fa fa-check-circle\"></i> Process Ecology has been notified</span\r\n >\r\n <span *ngIf=\"!isLoading() && !processEcologyNotified\" class=\"text-danger\"\r\n ><i class=\"fa fa-times-circle\"></i> An error occurred while notifying Process Ecology</span\r\n >\r\n <br />\r\n If the error occurred while modifying the Case, please send it to Process Ecology to detect any possible\r\n data corruption.\r\n <br />\r\n Be sure to save all your work and reload this page.\r\n <div>\r\n <button\r\n type=\"button\"\r\n class=\"btn btn-link px-0 underline\"\r\n data-toggle=\"collapse\"\r\n data-target=\"#errorDetailsCollapsible\">\r\n <i class=\"fa fa-chevron-right expand-collapse\" *ngIf=\"errorDetailsCollapsed\"></i>\r\n <i class=\"fa fa-chevron-down expand-collapse\" *ngIf=\"!errorDetailsCollapsed\"></i>\r\n Error details\r\n </button>\r\n </div>\r\n <div class=\"collapse mt-2\" id=\"errorDetailsCollapsible\">\r\n <div class=\"well\">\r\n <b>{{ currentError.message }}</b> <br />\r\n <div class=\"error-details\">\r\n {{ currentError.stackTrace }}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n","import { AfterViewInit, ChangeDetectorRef, Component, OnDestroy } from '@angular/core';\r\nimport { SubSink } from 'subsink';\r\nimport { HttpClient, HttpErrorResponse, HttpHeaders } from '@angular/common/http';\r\nimport { GlobalErrorModalService } from './global-error-modal.service';\r\nimport { environment } from '../../../environments/environment';\r\nimport { UserService } from '../../_services/user.service';\r\n\r\ninterface FrontendError {\r\n message: string;\r\n stackTrace: string;\r\n username: string;\r\n}\r\n\r\n@Component({\r\n selector: 'sob-global-error-modal',\r\n templateUrl: './global-error-modal.component.html',\r\n styleUrls: ['./global-error-modal.component.css'],\r\n})\r\nexport class GlobalErrorModalComponent implements AfterViewInit, OnDestroy {\r\n private isModalWindowOpen = false;\r\n private subSink = new SubSink();\r\n\r\n private readonly errorNotificationDelayTimeMs = 15 * 1000;\r\n private previousErrorNotifiedAt = 0;\r\n protected previousError?: FrontendError;\r\n protected currentError: FrontendError = {\r\n message: '',\r\n stackTrace: '',\r\n username: '',\r\n };\r\n\r\n protected errorDetailsCollapsed = true;\r\n protected processEcologyNotified = true;\r\n private loading = false;\r\n\r\n constructor(\r\n private globalErrorModalService: GlobalErrorModalService,\r\n private http: HttpClient,\r\n private userService: UserService,\r\n private ref: ChangeDetectorRef\r\n ) {\r\n this.globalErrorModalService.errorOccurred$.subscribe({\r\n next: error => {\r\n if (error instanceof HttpErrorResponse) {\r\n return;\r\n }\r\n\r\n this.previousError = this.currentError;\r\n\r\n if (error instanceof Error) {\r\n this.currentError = {\r\n message: error.message,\r\n stackTrace: this.getStackTrace(error),\r\n username: '',\r\n };\r\n } else {\r\n try {\r\n this.currentError = {\r\n message: 'An unexpected error occurred',\r\n stackTrace: JSON.stringify(error),\r\n username: '',\r\n };\r\n } catch (e: unknown) {\r\n // This is very, very unlikely to happen, just in case the error has a circular reference and fails\r\n // to be serialized...\r\n this.currentError = {\r\n message: 'An unexpected error occurred, please check the browser console for more details',\r\n stackTrace: '',\r\n username: '',\r\n };\r\n }\r\n }\r\n\r\n if (this.areCurrentAndPreviousErrorsEqual() || this.isModalWindowOpen) {\r\n return;\r\n }\r\n\r\n this.showModalWindow();\r\n\r\n const timeNow = new Date().getTime();\r\n // wait some time before sending another notification another guard against\r\n // bursting errors...\r\n if (timeNow - this.previousErrorNotifiedAt < this.errorNotificationDelayTimeMs) {\r\n return;\r\n }\r\n this.previousErrorNotifiedAt = timeNow;\r\n\r\n this.sendErrorToPe();\r\n this.ref.detectChanges();\r\n },\r\n });\r\n }\r\n\r\n ngAfterViewInit() {\r\n const $collapsible = $('#errorDetailsCollapsible');\r\n $collapsible.on('show.bs.collapse', () => {\r\n this.errorDetailsCollapsed = false;\r\n });\r\n $collapsible.on('hide.bs.collapse.bs.collapse', () => {\r\n this.errorDetailsCollapsed = true;\r\n });\r\n\r\n const $globalErrorModal = $('#globalErrorModal');\r\n $globalErrorModal.on('show.bs.modal', () => {\r\n this.isModalWindowOpen = true;\r\n });\r\n\r\n $globalErrorModal.on('hide.bs.modal', () => {\r\n this.isModalWindowOpen = false;\r\n });\r\n }\r\n\r\n protected showModalWindow() {\r\n $('#globalErrorModal').modal('show');\r\n }\r\n\r\n private getStackTrace(error: unknown) {\r\n if (error instanceof Error) {\r\n return error.stack;\r\n }\r\n\r\n return '';\r\n }\r\n\r\n private sendErrorToPe() {\r\n this.startLoading();\r\n this.processEcologyNotified = false;\r\n this.currentError.username = this.userService.currentUsername;\r\n this.subSink.add(\r\n this.http\r\n .post(environment.sendFrontendErrorDetailsToPe, this.currentError, { headers: this.getHeaders() })\r\n .subscribe({\r\n next: () => {\r\n this.stopLoading();\r\n this.processEcologyNotified = true;\r\n this.ref.detectChanges();\r\n },\r\n error: () => {\r\n this.stopLoading();\r\n this.processEcologyNotified = false;\r\n this.ref.detectChanges();\r\n },\r\n })\r\n );\r\n }\r\n\r\n private getHeaders() {\r\n return new HttpHeaders().set('Accept', 'application/json');\r\n }\r\n\r\n protected startLoading() {\r\n this.loading = true;\r\n }\r\n\r\n protected stopLoading() {\r\n this.loading = false;\r\n }\r\n\r\n protected isLoading() {\r\n return this.loading;\r\n }\r\n\r\n protected areCurrentAndPreviousErrorsEqual(): boolean {\r\n if (!this.previousError) {\r\n return false;\r\n }\r\n\r\n return (\r\n this.currentError.message === this.previousError.message &&\r\n this.currentError.stackTrace === this.previousError.stackTrace\r\n );\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subSink.unsubscribe();\r\n }\r\n}\r\n","import { AfterViewInit, Component } from '@angular/core';\r\nimport * as Highcharts from 'highcharts';\r\nimport { LatestUserAccessService } from './_services/latest-user-access.service';\r\nimport { AuthService } from './_services/auth.service';\r\n\r\nHighcharts.setOptions({ lang: { thousandsSep: ',' } });\r\n\r\n@Component({\r\n selector: 'sob-root',\r\n templateUrl: './app.component.html',\r\n styleUrls: ['./app.component.css'],\r\n})\r\nexport class AppComponent implements AfterViewInit {\r\n constructor(private latestUserAccessService: LatestUserAccessService, private authService: AuthService) {}\r\n\r\n ngAfterViewInit(): void {\r\n this.latestUserAccessService.beginRegisteringAccess();\r\n }\r\n}\r\n","<router-outlet></router-outlet>\r\n<sob-global-error-modal></sob-global-error-modal>\r\n","/**\n * @license Angular v15.2.9\n * (c) 2010-2022 Google LLC. https://angular.io/\n * License: MIT\n */\n\n/**\n * An injectable service that produces an animation sequence programmatically within an\n * Angular component or directive.\n * Provided by the `BrowserAnimationsModule` or `NoopAnimationsModule`.\n *\n * @usageNotes\n *\n * To use this service, add it to your component or directive as a dependency.\n * The service is instantiated along with your component.\n *\n * Apps do not typically need to create their own animation players, but if you\n * do need to, follow these steps:\n *\n * 1. Use the <code>[AnimationBuilder.build](api/animations/AnimationBuilder#build)()</code> method\n * to create a programmatic animation. The method returns an `AnimationFactory` instance.\n *\n * 2. Use the factory object to create an `AnimationPlayer` and attach it to a DOM element.\n *\n * 3. Use the player object to control the animation programmatically.\n *\n * For example:\n *\n * ```ts\n * // import the service from BrowserAnimationsModule\n * import {AnimationBuilder} from '@angular/animations';\n * // require the service as a dependency\n * class MyCmp {\n * constructor(private _builder: AnimationBuilder) {}\n *\n * makeAnimation(element: any) {\n * // first define a reusable animation\n * const myAnimation = this._builder.build([\n * style({ width: 0 }),\n * animate(1000, style({ width: '100px' }))\n * ]);\n *\n * // use the returned factory object to create a player\n * const player = myAnimation.create(element);\n *\n * player.play();\n * }\n * }\n * ```\n *\n * @publicApi\n */\nclass AnimationBuilder {\n}\n/**\n * A factory object returned from the\n * <code>[AnimationBuilder.build](api/animations/AnimationBuilder#build)()</code>\n * method.\n *\n * @publicApi\n */\nclass AnimationFactory {\n}\n\n/**\n * Specifies automatic styling.\n *\n * @publicApi\n */\nconst AUTO_STYLE = '*';\n/**\n * Creates a named animation trigger, containing a list of [`state()`](api/animations/state)\n * and `transition()` entries to be evaluated when the expression\n * bound to the trigger changes.\n *\n * @param name An identifying string.\n * @param definitions An animation definition object, containing an array of\n * [`state()`](api/animations/state) and `transition()` declarations.\n *\n * @return An object that encapsulates the trigger data.\n *\n * @usageNotes\n * Define an animation trigger in the `animations` section of `@Component` metadata.\n * In the template, reference the trigger by name and bind it to a trigger expression that\n * evaluates to a defined animation state, using the following format:\n *\n * `[@triggerName]=\"expression\"`\n *\n * Animation trigger bindings convert all values to strings, and then match the\n * previous and current values against any linked transitions.\n * Booleans can be specified as `1` or `true` and `0` or `false`.\n *\n * ### Usage Example\n *\n * The following example creates an animation trigger reference based on the provided\n * name value.\n * The provided animation value is expected to be an array consisting of state and\n * transition declarations.\n *\n * ```typescript\n * @Component({\n * selector: \"my-component\",\n * templateUrl: \"my-component-tpl.html\",\n * animations: [\n * trigger(\"myAnimationTrigger\", [\n * state(...),\n * state(...),\n * transition(...),\n * transition(...)\n * ])\n * ]\n * })\n * class MyComponent {\n * myStatusExp = \"something\";\n * }\n * ```\n *\n * The template associated with this component makes use of the defined trigger\n * by binding to an element within its template code.\n *\n * ```html\n * <!-- somewhere inside of my-component-tpl.html -->\n * <div [@myAnimationTrigger]=\"myStatusExp\">...</div>\n * ```\n *\n * ### Using an inline function\n * The `transition` animation method also supports reading an inline function which can decide\n * if its associated animation should be run.\n *\n * ```typescript\n * // this method is run each time the `myAnimationTrigger` trigger value changes.\n * function myInlineMatcherFn(fromState: string, toState: string, element: any, params: {[key:\n string]: any}): boolean {\n * // notice that `element` and `params` are also available here\n * return toState == 'yes-please-animate';\n * }\n *\n * @Component({\n * selector: 'my-component',\n * templateUrl: 'my-component-tpl.html',\n * animations: [\n * trigger('myAnimationTrigger', [\n * transition(myInlineMatcherFn, [\n * // the animation sequence code\n * ]),\n * ])\n * ]\n * })\n * class MyComponent {\n * myStatusExp = \"yes-please-animate\";\n * }\n * ```\n *\n * ### Disabling Animations\n * When true, the special animation control binding `@.disabled` binding prevents\n * all animations from rendering.\n * Place the `@.disabled` binding on an element to disable\n * animations on the element itself, as well as any inner animation triggers\n * within the element.\n *\n * The following example shows how to use this feature:\n *\n * ```typescript\n * @Component({\n * selector: 'my-component',\n * template: `\n * <div [@.disabled]=\"isDisabled\">\n * <div [@childAnimation]=\"exp\"></div>\n * </div>\n * `,\n * animations: [\n * trigger(\"childAnimation\", [\n * // ...\n * ])\n * ]\n * })\n * class MyComponent {\n * isDisabled = true;\n * exp = '...';\n * }\n * ```\n *\n * When `@.disabled` is true, it prevents the `@childAnimation` trigger from animating,\n * along with any inner animations.\n *\n * ### Disable animations application-wide\n * When an area of the template is set to have animations disabled,\n * **all** inner components have their animations disabled as well.\n * This means that you can disable all animations for an app\n * by placing a host binding set on `@.disabled` on the topmost Angular component.\n *\n * ```typescript\n * import {Component, HostBinding} from '@angular/core';\n *\n * @Component({\n * selector: 'app-component',\n * templateUrl: 'app.component.html',\n * })\n * class AppComponent {\n * @HostBinding('@.disabled')\n * public animationsDisabled = true;\n * }\n * ```\n *\n * ### Overriding disablement of inner animations\n * Despite inner animations being disabled, a parent animation can `query()`\n * for inner elements located in disabled areas of the template and still animate\n * them if needed. This is also the case for when a sub animation is\n * queried by a parent and then later animated using `animateChild()`.\n *\n * ### Detecting when an animation is disabled\n * If a region of the DOM (or the entire application) has its animations disabled, the animation\n * trigger callbacks still fire, but for zero seconds. When the callback fires, it provides\n * an instance of an `AnimationEvent`. If animations are disabled,\n * the `.disabled` flag on the event is true.\n *\n * @publicApi\n */\nfunction trigger(name, definitions) {\n return { type: 7 /* AnimationMetadataType.Trigger */, name, definitions, options: {} };\n}\n/**\n * Defines an animation step that combines styling information with timing information.\n *\n * @param timings Sets `AnimateTimings` for the parent animation.\n * A string in the format \"duration [delay] [easing]\".\n * - Duration and delay are expressed as a number and optional time unit,\n * such as \"1s\" or \"10ms\" for one second and 10 milliseconds, respectively.\n * The default unit is milliseconds.\n * - The easing value controls how the animation accelerates and decelerates\n * during its runtime. Value is one of `ease`, `ease-in`, `ease-out`,\n * `ease-in-out`, or a `cubic-bezier()` function call.\n * If not supplied, no easing is applied.\n *\n * For example, the string \"1s 100ms ease-out\" specifies a duration of\n * 1000 milliseconds, and delay of 100 ms, and the \"ease-out\" easing style,\n * which decelerates near the end of the duration.\n * @param styles Sets AnimationStyles for the parent animation.\n * A function call to either `style()` or `keyframes()`\n * that returns a collection of CSS style entries to be applied to the parent animation.\n * When null, uses the styles from the destination state.\n * This is useful when describing an animation step that will complete an animation;\n * see \"Animating to the final state\" in `transitions()`.\n * @returns An object that encapsulates the animation step.\n *\n * @usageNotes\n * Call within an animation `sequence()`, `{@link animations/group group()}`, or\n * `transition()` call to specify an animation step\n * that applies given style data to the parent animation for a given amount of time.\n *\n * ### Syntax Examples\n * **Timing examples**\n *\n * The following examples show various `timings` specifications.\n * - `animate(500)` : Duration is 500 milliseconds.\n * - `animate(\"1s\")` : Duration is 1000 milliseconds.\n * - `animate(\"100ms 0.5s\")` : Duration is 100 milliseconds, delay is 500 milliseconds.\n * - `animate(\"5s ease-in\")` : Duration is 5000 milliseconds, easing in.\n * - `animate(\"5s 10ms cubic-bezier(.17,.67,.88,.1)\")` : Duration is 5000 milliseconds, delay is 10\n * milliseconds, easing according to a bezier curve.\n *\n * **Style examples**\n *\n * The following example calls `style()` to set a single CSS style.\n * ```typescript\n * animate(500, style({ background: \"red\" }))\n * ```\n * The following example calls `keyframes()` to set a CSS style\n * to different values for successive keyframes.\n * ```typescript\n * animate(500, keyframes(\n * [\n * style({ background: \"blue\" }),\n * style({ background: \"red\" })\n * ])\n * ```\n *\n * @publicApi\n */\nfunction animate(timings, styles = null) {\n return { type: 4 /* AnimationMetadataType.Animate */, styles, timings };\n}\n/**\n * @description Defines a list of animation steps to be run in parallel.\n *\n * @param steps An array of animation step objects.\n * - When steps are defined by `style()` or `animate()`\n * function calls, each call within the group is executed instantly.\n * - To specify offset styles to be applied at a later time, define steps with\n * `keyframes()`, or use `animate()` calls with a delay value.\n * For example:\n *\n * ```typescript\n * group([\n * animate(\"1s\", style({ background: \"black\" })),\n * animate(\"2s\", style({ color: \"white\" }))\n * ])\n * ```\n *\n * @param options An options object containing a delay and\n * developer-defined parameters that provide styling defaults and\n * can be overridden on invocation.\n *\n * @return An object that encapsulates the group data.\n *\n * @usageNotes\n * Grouped animations are useful when a series of styles must be\n * animated at different starting times and closed off at different ending times.\n *\n * When called within a `sequence()` or a\n * `transition()` call, does not continue to the next\n * instruction until all of the inner animation steps have completed.\n *\n * @publicApi\n */\nfunction group(steps, options = null) {\n return { type: 3 /* AnimationMetadataType.Group */, steps, options };\n}\n/**\n * Defines a list of animation steps to be run sequentially, one by one.\n *\n * @param steps An array of animation step objects.\n * - Steps defined by `style()` calls apply the styling data immediately.\n * - Steps defined by `animate()` calls apply the styling data over time\n * as specified by the timing data.\n *\n * ```typescript\n * sequence([\n * style({ opacity: 0 }),\n * animate(\"1s\", style({ opacity: 1 }))\n * ])\n * ```\n *\n * @param options An options object containing a delay and\n * developer-defined parameters that provide styling defaults and\n * can be overridden on invocation.\n *\n * @return An object that encapsulates the sequence data.\n *\n * @usageNotes\n * When you pass an array of steps to a\n * `transition()` call, the steps run sequentially by default.\n * Compare this to the `{@link animations/group group()}` call, which runs animation steps in\n *parallel.\n *\n * When a sequence is used within a `{@link animations/group group()}` or a `transition()` call,\n * execution continues to the next instruction only after each of the inner animation\n * steps have completed.\n *\n * @publicApi\n **/\nfunction sequence(steps, options = null) {\n return { type: 2 /* AnimationMetadataType.Sequence */, steps, options };\n}\n/**\n * Declares a key/value object containing CSS properties/styles that\n * can then be used for an animation [`state`](api/animations/state), within an animation\n *`sequence`, or as styling data for calls to `animate()` and `keyframes()`.\n *\n * @param tokens A set of CSS styles or HTML styles associated with an animation state.\n * The value can be any of the following:\n * - A key-value style pair associating a CSS property with a value.\n * - An array of key-value style pairs.\n * - An asterisk (*), to use auto-styling, where styles are derived from the element\n * being animated and applied to the animation when it starts.\n *\n * Auto-styling can be used to define a state that depends on layout or other\n * environmental factors.\n *\n * @return An object that encapsulates the style data.\n *\n * @usageNotes\n * The following examples create animation styles that collect a set of\n * CSS property values:\n *\n * ```typescript\n * // string values for CSS properties\n * style({ background: \"red\", color: \"blue\" })\n *\n * // numerical pixel values\n * style({ width: 100, height: 0 })\n * ```\n *\n * The following example uses auto-styling to allow an element to animate from\n * a height of 0 up to its full height:\n *\n * ```\n * style({ height: 0 }),\n * animate(\"1s\", style({ height: \"*\" }))\n * ```\n *\n * @publicApi\n **/\nfunction style(tokens) {\n return { type: 6 /* AnimationMetadataType.Style */, styles: tokens, offset: null };\n}\n/**\n * Declares an animation state within a trigger attached to an element.\n *\n * @param name One or more names for the defined state in a comma-separated string.\n * The following reserved state names can be supplied to define a style for specific use\n * cases:\n *\n * - `void` You can associate styles with this name to be used when\n * the element is detached from the application. For example, when an `ngIf` evaluates\n * to false, the state of the associated element is void.\n * - `*` (asterisk) Indicates the default state. You can associate styles with this name\n * to be used as the fallback when the state that is being animated is not declared\n * within the trigger.\n *\n * @param styles A set of CSS styles associated with this state, created using the\n * `style()` function.\n * This set of styles persists on the element once the state has been reached.\n * @param options Parameters that can be passed to the state when it is invoked.\n * 0 or more key-value pairs.\n * @return An object that encapsulates the new state data.\n *\n * @usageNotes\n * Use the `trigger()` function to register states to an animation trigger.\n * Use the `transition()` function to animate between states.\n * When a state is active within a component, its associated styles persist on the element,\n * even when the animation ends.\n *\n * @publicApi\n **/\nfunction state(name, styles, options) {\n return { type: 0 /* AnimationMetadataType.State */, name, styles, options };\n}\n/**\n * Defines a set of animation styles, associating each style with an optional `offset` value.\n *\n * @param steps A set of animation styles with optional offset data.\n * The optional `offset` value for a style specifies a percentage of the total animation\n * time at which that style is applied.\n * @returns An object that encapsulates the keyframes data.\n *\n * @usageNotes\n * Use with the `animate()` call. Instead of applying animations\n * from the current state\n * to the destination state, keyframes describe how each style entry is applied and at what point\n * within the animation arc.\n * Compare [CSS Keyframe Animations](https://www.w3schools.com/css/css3_animations.asp).\n *\n * ### Usage\n *\n * In the following example, the offset values describe\n * when each `backgroundColor` value is applied. The color is red at the start, and changes to\n * blue when 20% of the total time has elapsed.\n *\n * ```typescript\n * // the provided offset values\n * animate(\"5s\", keyframes([\n * style({ backgroundColor: \"red\", offset: 0 }),\n * style({ backgroundColor: \"blue\", offset: 0.2 }),\n * style({ backgroundColor: \"orange\", offset: 0.3 }),\n * style({ backgroundColor: \"black\", offset: 1 })\n * ]))\n * ```\n *\n * If there are no `offset` values specified in the style entries, the offsets\n * are calculated automatically.\n *\n * ```typescript\n * animate(\"5s\", keyframes([\n * style({ backgroundColor: \"red\" }) // offset = 0\n * style({ backgroundColor: \"blue\" }) // offset = 0.33\n * style({ backgroundColor: \"orange\" }) // offset = 0.66\n * style({ backgroundColor: \"black\" }) // offset = 1\n * ]))\n *```\n\n * @publicApi\n */\nfunction keyframes(steps) {\n return { type: 5 /* AnimationMetadataType.Keyframes */, steps };\n}\n/**\n * Declares an animation transition which is played when a certain specified condition is met.\n *\n * @param stateChangeExpr A string with a specific format or a function that specifies when the\n * animation transition should occur (see [State Change Expression](#state-change-expression)).\n *\n * @param steps One or more animation objects that represent the animation's instructions.\n *\n * @param options An options object that can be used to specify a delay for the animation or provide\n * custom parameters for it.\n *\n * @returns An object that encapsulates the transition data.\n *\n * @usageNotes\n *\n * ### State Change Expression\n *\n * The State Change Expression instructs Angular when to run the transition's animations, it can\n *either be\n * - a string with a specific syntax\n * - or a function that compares the previous and current state (value of the expression bound to\n * the element's trigger) and returns `true` if the transition should occur or `false` otherwise\n *\n * The string format can be:\n * - `fromState => toState`, which indicates that the transition's animations should occur then the\n * expression bound to the trigger's element goes from `fromState` to `toState`\n *\n * _Example:_\n * ```typescript\n * transition('open => closed', animate('.5s ease-out', style({ height: 0 }) ))\n * ```\n *\n * - `fromState <=> toState`, which indicates that the transition's animations should occur then\n * the expression bound to the trigger's element goes from `fromState` to `toState` or vice versa\n *\n * _Example:_\n * ```typescript\n * transition('enabled <=> disabled', animate('1s cubic-bezier(0.8,0.3,0,1)'))\n * ```\n *\n * - `:enter`/`:leave`, which indicates that the transition's animations should occur when the\n * element enters or exists the DOM\n *\n * _Example:_\n * ```typescript\n * transition(':enter', [\n * style({ opacity: 0 }),\n * animate('500ms', style({ opacity: 1 }))\n * ])\n * ```\n *\n * - `:increment`/`:decrement`, which indicates that the transition's animations should occur when\n * the numerical expression bound to the trigger's element has increased in value or decreased\n *\n * _Example:_\n * ```typescript\n * transition(':increment', query('@counter', animateChild()))\n * ```\n *\n * - a sequence of any of the above divided by commas, which indicates that transition's animations\n * should occur whenever one of the state change expressions matches\n *\n * _Example:_\n * ```typescript\n * transition(':increment, * => enabled, :enter', animate('1s ease', keyframes([\n * style({ transform: 'scale(1)', offset: 0}),\n * style({ transform: 'scale(1.1)', offset: 0.7}),\n * style({ transform: 'scale(1)', offset: 1})\n * ]))),\n * ```\n *\n * Also note that in such context:\n * - `void` can be used to indicate the absence of the element\n * - asterisks can be used as wildcards that match any state\n * - (as a consequence of the above, `void => *` is equivalent to `:enter` and `* => void` is\n * equivalent to `:leave`)\n * - `true` and `false` also match expression values of `1` and `0` respectively (but do not match\n * _truthy_ and _falsy_ values)\n *\n * <div class=\"alert is-helpful\">\n *\n * Be careful about entering end leaving elements as their transitions present a common\n * pitfall for developers.\n *\n * Note that when an element with a trigger enters the DOM its `:enter` transition always\n * gets executed, but its `:leave` transition will not be executed if the element is removed\n * alongside its parent (as it will be removed \"without warning\" before its transition has\n * a chance to be executed, the only way that such transition can occur is if the element\n * is exiting the DOM on its own).\n *\n *\n * </div>\n *\n * ### Animating to a Final State\n *\n * If the final step in a transition is a call to `animate()` that uses a timing value\n * with no `style` data, that step is automatically considered the final animation arc,\n * for the element to reach the final state, in such case Angular automatically adds or removes\n * CSS styles to ensure that the element is in the correct final state.\n *\n *\n * ### Usage Examples\n *\n * - Transition animations applied based on\n * the trigger's expression value\n *\n * ```HTML\n * <div [@myAnimationTrigger]=\"myStatusExp\">\n * ...\n * </div>\n * ```\n *\n * ```typescript\n * trigger(\"myAnimationTrigger\", [\n * ..., // states\n * transition(\"on => off, open => closed\", animate(500)),\n * transition(\"* <=> error\", query('.indicator', animateChild()))\n * ])\n * ```\n *\n * - Transition animations applied based on custom logic dependent\n * on the trigger's expression value and provided parameters\n *\n * ```HTML\n * <div [@myAnimationTrigger]=\"{\n * value: stepName,\n * params: { target: currentTarget }\n * }\">\n * ...\n * </div>\n * ```\n *\n * ```typescript\n * trigger(\"myAnimationTrigger\", [\n * ..., // states\n * transition(\n * (fromState, toState, _element, params) =>\n * ['firststep', 'laststep'].includes(fromState.toLowerCase())\n * && toState === params?.['target'],\n * animate('1s')\n * )\n * ])\n * ```\n *\n * @publicApi\n **/\nfunction transition(stateChangeExpr, steps, options = null) {\n return { type: 1 /* AnimationMetadataType.Transition */, expr: stateChangeExpr, animation: steps, options };\n}\n/**\n * Produces a reusable animation that can be invoked in another animation or sequence,\n * by calling the `useAnimation()` function.\n *\n * @param steps One or more animation objects, as returned by the `animate()`\n * or `sequence()` function, that form a transformation from one state to another.\n * A sequence is used by default when you pass an array.\n * @param options An options object that can contain a delay value for the start of the\n * animation, and additional developer-defined parameters.\n * Provided values for additional parameters are used as defaults,\n * and override values can be passed to the caller on invocation.\n * @returns An object that encapsulates the animation data.\n *\n * @usageNotes\n * The following example defines a reusable animation, providing some default parameter\n * values.\n *\n * ```typescript\n * var fadeAnimation = animation([\n * style({ opacity: '{{ start }}' }),\n * animate('{{ time }}',\n * style({ opacity: '{{ end }}'}))\n * ],\n * { params: { time: '1000ms', start: 0, end: 1 }});\n * ```\n *\n * The following invokes the defined animation with a call to `useAnimation()`,\n * passing in override parameter values.\n *\n * ```js\n * useAnimation(fadeAnimation, {\n * params: {\n * time: '2s',\n * start: 1,\n * end: 0\n * }\n * })\n * ```\n *\n * If any of the passed-in parameter values are missing from this call,\n * the default values are used. If one or more parameter values are missing before a step is\n * animated, `useAnimation()` throws an error.\n *\n * @publicApi\n */\nfunction animation(steps, options = null) {\n return { type: 8 /* AnimationMetadataType.Reference */, animation: steps, options };\n}\n/**\n * Executes a queried inner animation element within an animation sequence.\n *\n * @param options An options object that can contain a delay value for the start of the\n * animation, and additional override values for developer-defined parameters.\n * @return An object that encapsulates the child animation data.\n *\n * @usageNotes\n * Each time an animation is triggered in Angular, the parent animation\n * has priority and any child animations are blocked. In order\n * for a child animation to run, the parent animation must query each of the elements\n * containing child animations, and run them using this function.\n *\n * Note that this feature is designed to be used with `query()` and it will only work\n * with animations that are assigned using the Angular animation library. CSS keyframes\n * and transitions are not handled by this API.\n *\n * @publicApi\n */\nfunction animateChild(options = null) {\n return { type: 9 /* AnimationMetadataType.AnimateChild */, options };\n}\n/**\n * Starts a reusable animation that is created using the `animation()` function.\n *\n * @param animation The reusable animation to start.\n * @param options An options object that can contain a delay value for the start of\n * the animation, and additional override values for developer-defined parameters.\n * @return An object that contains the animation parameters.\n *\n * @publicApi\n */\nfunction useAnimation(animation, options = null) {\n return { type: 10 /* AnimationMetadataType.AnimateRef */, animation, options };\n}\n/**\n * Finds one or more inner elements within the current element that is\n * being animated within a sequence. Use with `animate()`.\n *\n * @param selector The element to query, or a set of elements that contain Angular-specific\n * characteristics, specified with one or more of the following tokens.\n * - `query(\":enter\")` or `query(\":leave\")` : Query for newly inserted/removed elements (not\n * all elements can be queried via these tokens, see\n * [Entering and Leaving Elements](#entering-and-leaving-elements))\n * - `query(\":animating\")` : Query all currently animating elements.\n * - `query(\"@triggerName\")` : Query elements that contain an animation trigger.\n * - `query(\"@*\")` : Query all elements that contain an animation triggers.\n * - `query(\":self\")` : Include the current element into the animation sequence.\n *\n * @param animation One or more animation steps to apply to the queried element or elements.\n * An array is treated as an animation sequence.\n * @param options An options object. Use the 'limit' field to limit the total number of\n * items to collect.\n * @return An object that encapsulates the query data.\n *\n * @usageNotes\n *\n * ### Multiple Tokens\n *\n * Tokens can be merged into a combined query selector string. For example:\n *\n * ```typescript\n * query(':self, .record:enter, .record:leave, @subTrigger', [...])\n * ```\n *\n * The `query()` function collects multiple elements and works internally by using\n * `element.querySelectorAll`. Use the `limit` field of an options object to limit\n * the total number of items to be collected. For example:\n *\n * ```js\n * query('div', [\n * animate(...),\n * animate(...)\n * ], { limit: 1 })\n * ```\n *\n * By default, throws an error when zero items are found. Set the\n * `optional` flag to ignore this error. For example:\n *\n * ```js\n * query('.some-element-that-may-not-be-there', [\n * animate(...),\n * animate(...)\n * ], { optional: true })\n * ```\n *\n * ### Entering and Leaving Elements\n *\n * Not all elements can be queried via the `:enter` and `:leave` tokens, the only ones\n * that can are those that Angular assumes can enter/leave based on their own logic\n * (if their insertion/removal is simply a consequence of that of their parent they\n * should be queried via a different token in their parent's `:enter`/`:leave` transitions).\n *\n * The only elements Angular assumes can enter/leave based on their own logic (thus the only\n * ones that can be queried via the `:enter` and `:leave` tokens) are:\n * - Those inserted dynamically (via `ViewContainerRef`)\n * - Those that have a structural directive (which, under the hood, are a subset of the above ones)\n *\n * <div class=\"alert is-helpful\">\n *\n * Note that elements will be successfully queried via `:enter`/`:leave` even if their\n * insertion/removal is not done manually via `ViewContainerRef`or caused by their structural\n * directive (e.g. they enter/exit alongside their parent).\n *\n * </div>\n *\n * <div class=\"alert is-important\">\n *\n * There is an exception to what previously mentioned, besides elements entering/leaving based on\n * their own logic, elements with an animation trigger can always be queried via `:leave` when\n * their parent is also leaving.\n *\n * </div>\n *\n * ### Usage Example\n *\n * The following example queries for inner elements and animates them\n * individually using `animate()`.\n *\n * ```typescript\n * @Component({\n * selector: 'inner',\n * template: `\n * <div [@queryAnimation]=\"exp\">\n * <h1>Title</h1>\n * <div class=\"content\">\n * Blah blah blah\n * </div>\n * </div>\n * `,\n * animations: [\n * trigger('queryAnimation', [\n * transition('* => goAnimate', [\n * // hide the inner elements\n * query('h1', style({ opacity: 0 })),\n * query('.content', style({ opacity: 0 })),\n *\n * // animate the inner elements in, one by one\n * query('h1', animate(1000, style({ opacity: 1 }))),\n * query('.content', animate(1000, style({ opacity: 1 }))),\n * ])\n * ])\n * ]\n * })\n * class Cmp {\n * exp = '';\n *\n * goAnimate() {\n * this.exp = 'goAnimate';\n * }\n * }\n * ```\n *\n * @publicApi\n */\nfunction query(selector, animation, options = null) {\n return { type: 11 /* AnimationMetadataType.Query */, selector, animation, options };\n}\n/**\n * Use within an animation `query()` call to issue a timing gap after\n * each queried item is animated.\n *\n * @param timings A delay value.\n * @param animation One ore more animation steps.\n * @returns An object that encapsulates the stagger data.\n *\n * @usageNotes\n * In the following example, a container element wraps a list of items stamped out\n * by an `ngFor`. The container element contains an animation trigger that will later be set\n * to query for each of the inner items.\n *\n * Each time items are added, the opacity fade-in animation runs,\n * and each removed item is faded out.\n * When either of these animations occur, the stagger effect is\n * applied after each item's animation is started.\n *\n * ```html\n * <!-- list.component.html -->\n * <button (click)=\"toggle()\">Show / Hide Items</button>\n * <hr />\n * <div [@listAnimation]=\"items.length\">\n * <div *ngFor=\"let item of items\">\n * {{ item }}\n * </div>\n * </div>\n * ```\n *\n * Here is the component code:\n *\n * ```typescript\n * import {trigger, transition, style, animate, query, stagger} from '@angular/animations';\n * @Component({\n * templateUrl: 'list.component.html',\n * animations: [\n * trigger('listAnimation', [\n * ...\n * ])\n * ]\n * })\n * class ListComponent {\n * items = [];\n *\n * showItems() {\n * this.items = [0,1,2,3,4];\n * }\n *\n * hideItems() {\n * this.items = [];\n * }\n *\n * toggle() {\n * this.items.length ? this.hideItems() : this.showItems();\n * }\n * }\n * ```\n *\n * Here is the animation trigger code:\n *\n * ```typescript\n * trigger('listAnimation', [\n * transition('* => *', [ // each time the binding value changes\n * query(':leave', [\n * stagger(100, [\n * animate('0.5s', style({ opacity: 0 }))\n * ])\n * ]),\n * query(':enter', [\n * style({ opacity: 0 }),\n * stagger(100, [\n * animate('0.5s', style({ opacity: 1 }))\n * ])\n * ])\n * ])\n * ])\n * ```\n *\n * @publicApi\n */\nfunction stagger(timings, animation) {\n return { type: 12 /* AnimationMetadataType.Stagger */, timings, animation };\n}\n\nfunction scheduleMicroTask(cb) {\n Promise.resolve().then(cb);\n}\n\n/**\n * An empty programmatic controller for reusable animations.\n * Used internally when animations are disabled, to avoid\n * checking for the null case when an animation player is expected.\n *\n * @see `animate()`\n * @see `AnimationPlayer`\n * @see `GroupPlayer`\n *\n * @publicApi\n */\nclass NoopAnimationPlayer {\n constructor(duration = 0, delay = 0) {\n this._onDoneFns = [];\n this._onStartFns = [];\n this._onDestroyFns = [];\n this._originalOnDoneFns = [];\n this._originalOnStartFns = [];\n this._started = false;\n this._destroyed = false;\n this._finished = false;\n this._position = 0;\n this.parentPlayer = null;\n this.totalTime = duration + delay;\n }\n _onFinish() {\n if (!this._finished) {\n this._finished = true;\n this._onDoneFns.forEach(fn => fn());\n this._onDoneFns = [];\n }\n }\n onStart(fn) {\n this._originalOnStartFns.push(fn);\n this._onStartFns.push(fn);\n }\n onDone(fn) {\n this._originalOnDoneFns.push(fn);\n this._onDoneFns.push(fn);\n }\n onDestroy(fn) {\n this._onDestroyFns.push(fn);\n }\n hasStarted() {\n return this._started;\n }\n init() { }\n play() {\n if (!this.hasStarted()) {\n this._onStart();\n this.triggerMicrotask();\n }\n this._started = true;\n }\n /** @internal */\n triggerMicrotask() {\n scheduleMicroTask(() => this._onFinish());\n }\n _onStart() {\n this._onStartFns.forEach(fn => fn());\n this._onStartFns = [];\n }\n pause() { }\n restart() { }\n finish() {\n this._onFinish();\n }\n destroy() {\n if (!this._destroyed) {\n this._destroyed = true;\n if (!this.hasStarted()) {\n this._onStart();\n }\n this.finish();\n this._onDestroyFns.forEach(fn => fn());\n this._onDestroyFns = [];\n }\n }\n reset() {\n this._started = false;\n this._finished = false;\n this._onStartFns = this._originalOnStartFns;\n this._onDoneFns = this._originalOnDoneFns;\n }\n setPosition(position) {\n this._position = this.totalTime ? position * this.totalTime : 1;\n }\n getPosition() {\n return this.totalTime ? this._position / this.totalTime : 1;\n }\n /** @internal */\n triggerCallback(phaseName) {\n const methods = phaseName == 'start' ? this._onStartFns : this._onDoneFns;\n methods.forEach(fn => fn());\n methods.length = 0;\n }\n}\n\n/**\n * A programmatic controller for a group of reusable animations.\n * Used internally to control animations.\n *\n * @see `AnimationPlayer`\n * @see `{@link animations/group group()}`\n *\n */\nclass AnimationGroupPlayer {\n constructor(_players) {\n this._onDoneFns = [];\n this._onStartFns = [];\n this._finished = false;\n this._started = false;\n this._destroyed = false;\n this._onDestroyFns = [];\n this.parentPlayer = null;\n this.totalTime = 0;\n this.players = _players;\n let doneCount = 0;\n let destroyCount = 0;\n let startCount = 0;\n const total = this.players.length;\n if (total == 0) {\n scheduleMicroTask(() => this._onFinish());\n }\n else {\n this.players.forEach(player => {\n player.onDone(() => {\n if (++doneCount == total) {\n this._onFinish();\n }\n });\n player.onDestroy(() => {\n if (++destroyCount == total) {\n this._onDestroy();\n }\n });\n player.onStart(() => {\n if (++startCount == total) {\n this._onStart();\n }\n });\n });\n }\n this.totalTime = this.players.reduce((time, player) => Math.max(time, player.totalTime), 0);\n }\n _onFinish() {\n if (!this._finished) {\n this._finished = true;\n this._onDoneFns.forEach(fn => fn());\n this._onDoneFns = [];\n }\n }\n init() {\n this.players.forEach(player => player.init());\n }\n onStart(fn) {\n this._onStartFns.push(fn);\n }\n _onStart() {\n if (!this.hasStarted()) {\n this._started = true;\n this._onStartFns.forEach(fn => fn());\n this._onStartFns = [];\n }\n }\n onDone(fn) {\n this._onDoneFns.push(fn);\n }\n onDestroy(fn) {\n this._onDestroyFns.push(fn);\n }\n hasStarted() {\n return this._started;\n }\n play() {\n if (!this.parentPlayer) {\n this.init();\n }\n this._onStart();\n this.players.forEach(player => player.play());\n }\n pause() {\n this.players.forEach(player => player.pause());\n }\n restart() {\n this.players.forEach(player => player.restart());\n }\n finish() {\n this._onFinish();\n this.players.forEach(player => player.finish());\n }\n destroy() {\n this._onDestroy();\n }\n _onDestroy() {\n if (!this._destroyed) {\n this._destroyed = true;\n this._onFinish();\n this.players.forEach(player => player.destroy());\n this._onDestroyFns.forEach(fn => fn());\n this._onDestroyFns = [];\n }\n }\n reset() {\n this.players.forEach(player => player.reset());\n this._destroyed = false;\n this._finished = false;\n this._started = false;\n }\n setPosition(p) {\n const timeAtPosition = p * this.totalTime;\n this.players.forEach(player => {\n const position = player.totalTime ? Math.min(1, timeAtPosition / player.totalTime) : 1;\n player.setPosition(position);\n });\n }\n getPosition() {\n const longestPlayer = this.players.reduce((longestSoFar, player) => {\n const newPlayerIsLongest = longestSoFar === null || player.totalTime > longestSoFar.totalTime;\n return newPlayerIsLongest ? player : longestSoFar;\n }, null);\n return longestPlayer != null ? longestPlayer.getPosition() : 0;\n }\n beforeDestroy() {\n this.players.forEach(player => {\n if (player.beforeDestroy) {\n player.beforeDestroy();\n }\n });\n }\n /** @internal */\n triggerCallback(phaseName) {\n const methods = phaseName == 'start' ? this._onStartFns : this._onDoneFns;\n methods.forEach(fn => fn());\n methods.length = 0;\n }\n}\n\nconst ɵPRE_STYLE = '!';\n\n/**\n * @module\n * @description\n * Entry point for all animation APIs of the animation package.\n */\n\n/**\n * @module\n * @description\n * Entry point for all public APIs of this package.\n */\n\n// This file is not used to build this module. It is only used during editing\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { AUTO_STYLE, AnimationBuilder, AnimationFactory, NoopAnimationPlayer, animate, animateChild, animation, group, keyframes, query, sequence, stagger, state, style, transition, trigger, useAnimation, AnimationGroupPlayer as ɵAnimationGroupPlayer, ɵPRE_STYLE };\n","import * as i0 from '@angular/core';\nimport { Directive, InjectionToken, inject, Injectable, ComponentFactoryResolver, ApplicationRef, SecurityContext, Injector, Inject, Component, HostBinding, HostListener, makeEnvironmentProviders, NgModule } from '@angular/core';\nimport { trigger, state, style, transition, animate } from '@angular/animations';\nimport { DOCUMENT, NgIf } from '@angular/common';\nimport { Subject } from 'rxjs';\nimport * as i2 from '@angular/platform-browser';\n\nclass ToastContainerDirective {\n constructor(el) {\n this.el = el;\n }\n getContainerElement() {\n return this.el.nativeElement;\n }\n}\nToastContainerDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.7\", ngImport: i0, type: ToastContainerDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });\nToastContainerDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"15.2.7\", type: ToastContainerDirective, isStandalone: true, selector: \"[toastContainer]\", exportAs: [\"toastContainer\"], ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.7\", ngImport: i0, type: ToastContainerDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[toastContainer]',\n exportAs: 'toastContainer',\n standalone: true\n }]\n }], ctorParameters: function () { return [{ type: i0.ElementRef }]; } });\n\n/**\n * A `ComponentPortal` is a portal that instantiates some Component upon attachment.\n */\nclass ComponentPortal {\n constructor(component, injector) {\n this.component = component;\n this.injector = injector;\n }\n /** Attach this portal to a host. */\n attach(host, newestOnTop) {\n this._attachedHost = host;\n return host.attach(this, newestOnTop);\n }\n /** Detach this portal from its host */\n detach() {\n const host = this._attachedHost;\n if (host) {\n this._attachedHost = undefined;\n return host.detach();\n }\n }\n /** Whether this portal is attached to a host. */\n get isAttached() {\n return this._attachedHost != null;\n }\n /**\n * Sets the PortalHost reference without performing `attach()`. This is used directly by\n * the PortalHost when it is performing an `attach()` or `detach()`.\n */\n setAttachedHost(host) {\n this._attachedHost = host;\n }\n}\n/**\n * Partial implementation of PortalHost that only deals with attaching a\n * ComponentPortal\n */\nclass BasePortalHost {\n attach(portal, newestOnTop) {\n this._attachedPortal = portal;\n return this.attachComponentPortal(portal, newestOnTop);\n }\n detach() {\n if (this._attachedPortal) {\n this._attachedPortal.setAttachedHost();\n }\n this._attachedPortal = undefined;\n if (this._disposeFn) {\n this._disposeFn();\n this._disposeFn = undefined;\n }\n }\n setDisposeFn(fn) {\n this._disposeFn = fn;\n }\n}\n\n/**\n * Reference to a toast opened via the Toastr service.\n */\nclass ToastRef {\n constructor(_overlayRef) {\n this._overlayRef = _overlayRef;\n /** Count of duplicates of this toast */\n this.duplicatesCount = 0;\n /** Subject for notifying the user that the toast has finished closing. */\n this._afterClosed = new Subject();\n /** triggered when toast is activated */\n this._activate = new Subject();\n /** notifies the toast that it should close before the timeout */\n this._manualClose = new Subject();\n /** notifies the toast that it should reset the timeouts */\n this._resetTimeout = new Subject();\n /** notifies the toast that it should count a duplicate toast */\n this._countDuplicate = new Subject();\n }\n manualClose() {\n this._manualClose.next();\n this._manualClose.complete();\n }\n manualClosed() {\n return this._manualClose.asObservable();\n }\n timeoutReset() {\n return this._resetTimeout.asObservable();\n }\n countDuplicate() {\n return this._countDuplicate.asObservable();\n }\n /**\n * Close the toast.\n */\n close() {\n this._overlayRef.detach();\n this._afterClosed.next();\n this._manualClose.next();\n this._afterClosed.complete();\n this._manualClose.complete();\n this._activate.complete();\n this._resetTimeout.complete();\n this._countDuplicate.complete();\n }\n /** Gets an observable that is notified when the toast is finished closing. */\n afterClosed() {\n return this._afterClosed.asObservable();\n }\n isInactive() {\n return this._activate.isStopped;\n }\n activate() {\n this._activate.next();\n this._activate.complete();\n }\n /** Gets an observable that is notified when the toast has started opening. */\n afterActivate() {\n return this._activate.asObservable();\n }\n /** Reset the toast timouts and count duplicates */\n onDuplicate(resetTimeout, countDuplicate) {\n if (resetTimeout) {\n this._resetTimeout.next();\n }\n if (countDuplicate) {\n this._countDuplicate.next(++this.duplicatesCount);\n }\n }\n}\n\n/**\n * Everything a toast needs to launch\n */\nclass ToastPackage {\n constructor(toastId, config, message, title, toastType, toastRef) {\n this.toastId = toastId;\n this.config = config;\n this.message = message;\n this.title = title;\n this.toastType = toastType;\n this.toastRef = toastRef;\n this._onTap = new Subject();\n this._onAction = new Subject();\n this.toastRef.afterClosed().subscribe(() => {\n this._onAction.complete();\n this._onTap.complete();\n });\n }\n /** Fired on click */\n triggerTap() {\n this._onTap.next();\n if (this.config.tapToDismiss) {\n this._onTap.complete();\n }\n }\n onTap() {\n return this._onTap.asObservable();\n }\n /** available for use in custom toast */\n triggerAction(action) {\n this._onAction.next(action);\n }\n onAction() {\n return this._onAction.asObservable();\n }\n}\nconst DefaultNoComponentGlobalConfig = {\n maxOpened: 0,\n autoDismiss: false,\n newestOnTop: true,\n preventDuplicates: false,\n countDuplicates: false,\n resetTimeoutOnDuplicate: false,\n includeTitleDuplicates: false,\n iconClasses: {\n error: 'toast-error',\n info: 'toast-info',\n success: 'toast-success',\n warning: 'toast-warning',\n },\n // Individual\n closeButton: false,\n disableTimeOut: false,\n timeOut: 5000,\n extendedTimeOut: 1000,\n enableHtml: false,\n progressBar: false,\n toastClass: 'ngx-toastr',\n positionClass: 'toast-top-right',\n titleClass: 'toast-title',\n messageClass: 'toast-message',\n easing: 'ease-in',\n easeTime: 300,\n tapToDismiss: true,\n onActivateTick: false,\n progressAnimation: 'decreasing',\n};\nconst TOAST_CONFIG = new InjectionToken('ToastConfig');\n\n/**\n * A PortalHost for attaching portals to an arbitrary DOM element outside of the Angular\n * application context.\n *\n * This is the only part of the portal core that directly touches the DOM.\n */\nclass DomPortalHost extends BasePortalHost {\n constructor(_hostDomElement, _componentFactoryResolver, _appRef) {\n super();\n this._hostDomElement = _hostDomElement;\n this._componentFactoryResolver = _componentFactoryResolver;\n this._appRef = _appRef;\n }\n /**\n * Attach the given ComponentPortal to DOM element using the ComponentFactoryResolver.\n * @param portal Portal to be attached\n */\n attachComponentPortal(portal, newestOnTop) {\n const componentFactory = this._componentFactoryResolver.resolveComponentFactory(portal.component);\n let componentRef;\n // If the portal specifies a ViewContainerRef, we will use that as the attachment point\n // for the component (in terms of Angular's component tree, not rendering).\n // When the ViewContainerRef is missing, we use the factory to create the component directly\n // and then manually attach the ChangeDetector for that component to the application (which\n // happens automatically when using a ViewContainer).\n componentRef = componentFactory.create(portal.injector);\n // When creating a component outside of a ViewContainer, we need to manually register\n // its ChangeDetector with the application. This API is unfortunately not yet published\n // in Angular core. The change detector must also be deregistered when the component\n // is destroyed to prevent memory leaks.\n this._appRef.attachView(componentRef.hostView);\n this.setDisposeFn(() => {\n this._appRef.detachView(componentRef.hostView);\n componentRef.destroy();\n });\n // At this point the component has been instantiated, so we move it to the location in the DOM\n // where we want it to be rendered.\n if (newestOnTop) {\n this._hostDomElement.insertBefore(this._getComponentRootNode(componentRef), this._hostDomElement.firstChild);\n }\n else {\n this._hostDomElement.appendChild(this._getComponentRootNode(componentRef));\n }\n return componentRef;\n }\n /** Gets the root HTMLElement for an instantiated component. */\n _getComponentRootNode(componentRef) {\n return componentRef.hostView.rootNodes[0];\n }\n}\n\n/** Container inside which all toasts will render. */\nclass OverlayContainer {\n constructor() {\n this._document = inject(DOCUMENT);\n }\n ngOnDestroy() {\n if (this._containerElement && this._containerElement.parentNode) {\n this._containerElement.parentNode.removeChild(this._containerElement);\n }\n }\n /**\n * This method returns the overlay container element. It will lazily\n * create the element the first time it is called to facilitate using\n * the container in non-browser environments.\n * @returns the container element\n */\n getContainerElement() {\n if (!this._containerElement) {\n this._createContainer();\n }\n return this._containerElement;\n }\n /**\n * Create the overlay container element, which is simply a div\n * with the 'cdk-overlay-container' class on the document body\n * and 'aria-live=\"polite\"'\n */\n _createContainer() {\n const container = this._document.createElement('div');\n container.classList.add('overlay-container');\n container.setAttribute('aria-live', 'polite');\n this._document.body.appendChild(container);\n this._containerElement = container;\n }\n}\nOverlayContainer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.7\", ngImport: i0, type: OverlayContainer, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nOverlayContainer.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.2.7\", ngImport: i0, type: OverlayContainer, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.7\", ngImport: i0, type: OverlayContainer, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n\n/**\n * Reference to an overlay that has been created with the Overlay service.\n * Used to manipulate or dispose of said overlay.\n */\nclass OverlayRef {\n constructor(_portalHost) {\n this._portalHost = _portalHost;\n }\n attach(portal, newestOnTop = true) {\n return this._portalHost.attach(portal, newestOnTop);\n }\n /**\n * Detaches an overlay from a portal.\n * @returns Resolves when the overlay has been detached.\n */\n detach() {\n return this._portalHost.detach();\n }\n}\n\n/* eslint-disable @typescript-eslint/no-non-null-assertion */\n/**\n * Service to create Overlays. Overlays are dynamically added pieces of floating UI, meant to be\n * used as a low-level building building block for other components. Dialogs, tooltips, menus,\n * selects, etc. can all be built using overlays. The service should primarily be used by authors\n * of re-usable components rather than developers building end-user applications.\n *\n * An overlay *is* a PortalHost, so any kind of Portal can be loaded into one.\n */\nclass Overlay {\n constructor() {\n this._overlayContainer = inject(OverlayContainer);\n this._componentFactoryResolver = inject(ComponentFactoryResolver);\n this._appRef = inject(ApplicationRef);\n this._document = inject(DOCUMENT);\n // Namespace panes by overlay container\n this._paneElements = new Map();\n }\n /**\n * Creates an overlay.\n * @returns A reference to the created overlay.\n */\n create(positionClass, overlayContainer) {\n // get existing pane if possible\n return this._createOverlayRef(this.getPaneElement(positionClass, overlayContainer));\n }\n getPaneElement(positionClass = '', overlayContainer) {\n if (!this._paneElements.get(overlayContainer)) {\n this._paneElements.set(overlayContainer, {});\n }\n if (!this._paneElements.get(overlayContainer)[positionClass]) {\n this._paneElements.get(overlayContainer)[positionClass] = this._createPaneElement(positionClass, overlayContainer);\n }\n return this._paneElements.get(overlayContainer)[positionClass];\n }\n /**\n * Creates the DOM element for an overlay and appends it to the overlay container.\n * @returns Newly-created pane element\n */\n _createPaneElement(positionClass, overlayContainer) {\n const pane = this._document.createElement('div');\n pane.id = 'toast-container';\n pane.classList.add(positionClass);\n pane.classList.add('toast-container');\n if (!overlayContainer) {\n this._overlayContainer.getContainerElement().appendChild(pane);\n }\n else {\n overlayContainer.getContainerElement().appendChild(pane);\n }\n return pane;\n }\n /**\n * Create a DomPortalHost into which the overlay content can be loaded.\n * @param pane The DOM element to turn into a portal host.\n * @returns A portal host for the given DOM element.\n */\n _createPortalHost(pane) {\n return new DomPortalHost(pane, this._componentFactoryResolver, this._appRef);\n }\n /**\n * Creates an OverlayRef for an overlay in the given DOM element.\n * @param pane DOM element for the overlay\n */\n _createOverlayRef(pane) {\n return new OverlayRef(this._createPortalHost(pane));\n }\n}\nOverlay.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.7\", ngImport: i0, type: Overlay, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nOverlay.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.2.7\", ngImport: i0, type: Overlay, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.7\", ngImport: i0, type: Overlay, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n\nclass ToastrService {\n constructor(token, overlay, _injector, sanitizer, ngZone) {\n this.overlay = overlay;\n this._injector = _injector;\n this.sanitizer = sanitizer;\n this.ngZone = ngZone;\n this.currentlyActive = 0;\n this.toasts = [];\n this.index = 0;\n this.toastrConfig = {\n ...token.default,\n ...token.config,\n };\n if (token.config.iconClasses) {\n this.toastrConfig.iconClasses = {\n ...token.default.iconClasses,\n ...token.config.iconClasses,\n };\n }\n }\n /** show toast */\n show(message, title, override = {}, type = '') {\n return this._preBuildNotification(type, message, title, this.applyConfig(override));\n }\n /** show successful toast */\n success(message, title, override = {}) {\n const type = this.toastrConfig.iconClasses.success || '';\n return this._preBuildNotification(type, message, title, this.applyConfig(override));\n }\n /** show error toast */\n error(message, title, override = {}) {\n const type = this.toastrConfig.iconClasses.error || '';\n return this._preBuildNotification(type, message, title, this.applyConfig(override));\n }\n /** show info toast */\n info(message, title, override = {}) {\n const type = this.toastrConfig.iconClasses.info || '';\n return this._preBuildNotification(type, message, title, this.applyConfig(override));\n }\n /** show warning toast */\n warning(message, title, override = {}) {\n const type = this.toastrConfig.iconClasses.warning || '';\n return this._preBuildNotification(type, message, title, this.applyConfig(override));\n }\n /**\n * Remove all or a single toast by id\n */\n clear(toastId) {\n // Call every toastRef manualClose function\n for (const toast of this.toasts) {\n if (toastId !== undefined) {\n if (toast.toastId === toastId) {\n toast.toastRef.manualClose();\n return;\n }\n }\n else {\n toast.toastRef.manualClose();\n }\n }\n }\n /**\n * Remove and destroy a single toast by id\n */\n remove(toastId) {\n const found = this._findToast(toastId);\n if (!found) {\n return false;\n }\n found.activeToast.toastRef.close();\n this.toasts.splice(found.index, 1);\n this.currentlyActive = this.currentlyActive - 1;\n if (!this.toastrConfig.maxOpened || !this.toasts.length) {\n return false;\n }\n if (this.currentlyActive < this.toastrConfig.maxOpened && this.toasts[this.currentlyActive]) {\n const p = this.toasts[this.currentlyActive].toastRef;\n if (!p.isInactive()) {\n this.currentlyActive = this.currentlyActive + 1;\n p.activate();\n }\n }\n return true;\n }\n /**\n * Determines if toast message is already shown\n */\n findDuplicate(title = '', message = '', resetOnDuplicate, countDuplicates) {\n const { includeTitleDuplicates } = this.toastrConfig;\n for (const toast of this.toasts) {\n const hasDuplicateTitle = includeTitleDuplicates && toast.title === title;\n if ((!includeTitleDuplicates || hasDuplicateTitle) && toast.message === message) {\n toast.toastRef.onDuplicate(resetOnDuplicate, countDuplicates);\n return toast;\n }\n }\n return null;\n }\n /** create a clone of global config and apply individual settings */\n applyConfig(override = {}) {\n return { ...this.toastrConfig, ...override };\n }\n /**\n * Find toast object by id\n */\n _findToast(toastId) {\n for (let i = 0; i < this.toasts.length; i++) {\n if (this.toasts[i].toastId === toastId) {\n return { index: i, activeToast: this.toasts[i] };\n }\n }\n return null;\n }\n /**\n * Determines the need to run inside angular's zone then builds the toast\n */\n _preBuildNotification(toastType, message, title, config) {\n if (config.onActivateTick) {\n return this.ngZone.run(() => this._buildNotification(toastType, message, title, config));\n }\n return this._buildNotification(toastType, message, title, config);\n }\n /**\n * Creates and attaches toast data to component\n * returns the active toast, or in case preventDuplicates is enabled the original/non-duplicate active toast.\n */\n _buildNotification(toastType, message, title, config) {\n if (!config.toastComponent) {\n throw new Error('toastComponent required');\n }\n // max opened and auto dismiss = true\n // if timeout = 0 resetting it would result in setting this.hideTime = Date.now(). Hence, we only want to reset timeout if there is\n // a timeout at all\n const duplicate = this.findDuplicate(title, message, this.toastrConfig.resetTimeoutOnDuplicate && config.timeOut > 0, this.toastrConfig.countDuplicates);\n if (((this.toastrConfig.includeTitleDuplicates && title) || message) &&\n this.toastrConfig.preventDuplicates &&\n duplicate !== null) {\n return duplicate;\n }\n this.previousToastMessage = message;\n let keepInactive = false;\n if (this.toastrConfig.maxOpened && this.currentlyActive >= this.toastrConfig.maxOpened) {\n keepInactive = true;\n if (this.toastrConfig.autoDismiss) {\n this.clear(this.toasts[0].toastId);\n }\n }\n const overlayRef = this.overlay.create(config.positionClass, this.overlayContainer);\n this.index = this.index + 1;\n let sanitizedMessage = message;\n if (message && config.enableHtml) {\n sanitizedMessage = this.sanitizer.sanitize(SecurityContext.HTML, message);\n }\n const toastRef = new ToastRef(overlayRef);\n const toastPackage = new ToastPackage(this.index, config, sanitizedMessage, title, toastType, toastRef);\n /** New injector that contains an instance of `ToastPackage`. */\n const providers = [{ provide: ToastPackage, useValue: toastPackage }];\n const toastInjector = Injector.create({ providers, parent: this._injector });\n const component = new ComponentPortal(config.toastComponent, toastInjector);\n const portal = overlayRef.attach(component, config.newestOnTop);\n toastRef.componentInstance = portal.instance;\n const ins = {\n toastId: this.index,\n title: title || '',\n message: message || '',\n toastRef,\n onShown: toastRef.afterActivate(),\n onHidden: toastRef.afterClosed(),\n onTap: toastPackage.onTap(),\n onAction: toastPackage.onAction(),\n portal,\n };\n if (!keepInactive) {\n this.currentlyActive = this.currentlyActive + 1;\n setTimeout(() => {\n ins.toastRef.activate();\n });\n }\n this.toasts.push(ins);\n return ins;\n }\n}\nToastrService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.7\", ngImport: i0, type: ToastrService, deps: [{ token: TOAST_CONFIG }, { token: Overlay }, { token: i0.Injector }, { token: i2.DomSanitizer }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable });\nToastrService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.2.7\", ngImport: i0, type: ToastrService, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.7\", ngImport: i0, type: ToastrService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [TOAST_CONFIG]\n }] }, { type: Overlay }, { type: i0.Injector }, { type: i2.DomSanitizer }, { type: i0.NgZone }]; } });\n\nclass Toast {\n /** hides component when waiting to be displayed */\n get displayStyle() {\n if (this.state.value === 'inactive') {\n return 'none';\n }\n return;\n }\n constructor(toastrService, toastPackage, ngZone) {\n this.toastrService = toastrService;\n this.toastPackage = toastPackage;\n this.ngZone = ngZone;\n /** width of progress bar */\n this.width = -1;\n /** a combination of toast type and options.toastClass */\n this.toastClasses = '';\n /** controls animation */\n this.state = {\n value: 'inactive',\n params: {\n easeTime: this.toastPackage.config.easeTime,\n easing: 'ease-in'\n }\n };\n this.message = toastPackage.message;\n this.title = toastPackage.title;\n this.options = toastPackage.config;\n this.originalTimeout = toastPackage.config.timeOut;\n this.toastClasses = `${toastPackage.toastType} ${toastPackage.config.toastClass}`;\n this.sub = toastPackage.toastRef.afterActivate().subscribe(() => {\n this.activateToast();\n });\n this.sub1 = toastPackage.toastRef.manualClosed().subscribe(() => {\n this.remove();\n });\n this.sub2 = toastPackage.toastRef.timeoutReset().subscribe(() => {\n this.resetTimeout();\n });\n this.sub3 = toastPackage.toastRef.countDuplicate().subscribe(count => {\n this.duplicatesCount = count;\n });\n }\n ngOnDestroy() {\n this.sub.unsubscribe();\n this.sub1.unsubscribe();\n this.sub2.unsubscribe();\n this.sub3.unsubscribe();\n clearInterval(this.intervalId);\n clearTimeout(this.timeout);\n }\n /**\n * activates toast and sets timeout\n */\n activateToast() {\n this.state = { ...this.state, value: 'active' };\n if (!(this.options.disableTimeOut === true || this.options.disableTimeOut === 'timeOut') && this.options.timeOut) {\n this.outsideTimeout(() => this.remove(), this.options.timeOut);\n this.hideTime = new Date().getTime() + this.options.timeOut;\n if (this.options.progressBar) {\n this.outsideInterval(() => this.updateProgress(), 10);\n }\n }\n }\n /**\n * updates progress bar width\n */\n updateProgress() {\n if (this.width === 0 || this.width === 100 || !this.options.timeOut) {\n return;\n }\n const now = new Date().getTime();\n const remaining = this.hideTime - now;\n this.width = (remaining / this.options.timeOut) * 100;\n if (this.options.progressAnimation === 'increasing') {\n this.width = 100 - this.width;\n }\n if (this.width <= 0) {\n this.width = 0;\n }\n if (this.width >= 100) {\n this.width = 100;\n }\n }\n resetTimeout() {\n clearTimeout(this.timeout);\n clearInterval(this.intervalId);\n this.state = { ...this.state, value: 'active' };\n this.outsideTimeout(() => this.remove(), this.originalTimeout);\n this.options.timeOut = this.originalTimeout;\n this.hideTime = new Date().getTime() + (this.options.timeOut || 0);\n this.width = -1;\n if (this.options.progressBar) {\n this.outsideInterval(() => this.updateProgress(), 10);\n }\n }\n /**\n * tells toastrService to remove this toast after animation time\n */\n remove() {\n if (this.state.value === 'removed') {\n return;\n }\n clearTimeout(this.timeout);\n this.state = { ...this.state, value: 'removed' };\n this.outsideTimeout(() => this.toastrService.remove(this.toastPackage.toastId), +this.toastPackage.config.easeTime);\n }\n tapToast() {\n if (this.state.value === 'removed') {\n return;\n }\n this.toastPackage.triggerTap();\n if (this.options.tapToDismiss) {\n this.remove();\n }\n }\n stickAround() {\n if (this.state.value === 'removed') {\n return;\n }\n if (this.options.disableTimeOut !== 'extendedTimeOut') {\n clearTimeout(this.timeout);\n this.options.timeOut = 0;\n this.hideTime = 0;\n // disable progressBar\n clearInterval(this.intervalId);\n this.width = 0;\n }\n }\n delayedHideToast() {\n if ((this.options.disableTimeOut === true || this.options.disableTimeOut === 'extendedTimeOut') ||\n this.options.extendedTimeOut === 0 ||\n this.state.value === 'removed') {\n return;\n }\n this.outsideTimeout(() => this.remove(), this.options.extendedTimeOut);\n this.options.timeOut = this.options.extendedTimeOut;\n this.hideTime = new Date().getTime() + (this.options.timeOut || 0);\n this.width = -1;\n if (this.options.progressBar) {\n this.outsideInterval(() => this.updateProgress(), 10);\n }\n }\n outsideTimeout(func, timeout) {\n if (this.ngZone) {\n this.ngZone.runOutsideAngular(() => (this.timeout = setTimeout(() => this.runInsideAngular(func), timeout)));\n }\n else {\n this.timeout = setTimeout(() => func(), timeout);\n }\n }\n outsideInterval(func, timeout) {\n if (this.ngZone) {\n this.ngZone.runOutsideAngular(() => (this.intervalId = setInterval(() => this.runInsideAngular(func), timeout)));\n }\n else {\n this.intervalId = setInterval(() => func(), timeout);\n }\n }\n runInsideAngular(func) {\n if (this.ngZone) {\n this.ngZone.run(() => func());\n }\n else {\n func();\n }\n }\n}\nToast.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.7\", ngImport: i0, type: Toast, deps: [{ token: ToastrService }, { token: ToastPackage }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });\nToast.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"15.2.7\", type: Toast, isStandalone: true, selector: \"[toast-component]\", host: { listeners: { \"click\": \"tapToast()\", \"mouseenter\": \"stickAround()\", \"mouseleave\": \"delayedHideToast()\" }, properties: { \"class\": \"this.toastClasses\", \"@flyInOut\": \"this.state\", \"style.display\": \"this.displayStyle\" } }, ngImport: i0, template: `\n <button *ngIf=\"options.closeButton\" (click)=\"remove()\" type=\"button\" class=\"toast-close-button\" aria-label=\"Close\">\n <span aria-hidden=\"true\">×</span>\n </button>\n <div *ngIf=\"title\" [class]=\"options.titleClass\" [attr.aria-label]=\"title\">\n {{ title }} <ng-container *ngIf=\"duplicatesCount\">[{{ duplicatesCount + 1 }}]</ng-container>\n </div>\n <div *ngIf=\"message && options.enableHtml\" role=\"alert\"\n [class]=\"options.messageClass\" [innerHTML]=\"message\">\n </div>\n <div *ngIf=\"message && !options.enableHtml\" role=\"alert\"\n [class]=\"options.messageClass\" [attr.aria-label]=\"message\">\n {{ message }}\n </div>\n <div *ngIf=\"options.progressBar\">\n <div class=\"toast-progress\" [style.width]=\"width + '%'\"></div>\n </div>\n `, isInline: true, dependencies: [{ kind: \"directive\", type: NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }], animations: [\n trigger('flyInOut', [\n state('inactive', style({ opacity: 0 })),\n state('active', style({ opacity: 1 })),\n state('removed', style({ opacity: 0 })),\n transition('inactive => active', animate('{{ easeTime }}ms {{ easing }}')),\n transition('active => removed', animate('{{ easeTime }}ms {{ easing }}')),\n ]),\n ] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.7\", ngImport: i0, type: Toast, decorators: [{\n type: Component,\n args: [{\n selector: '[toast-component]',\n template: `\n <button *ngIf=\"options.closeButton\" (click)=\"remove()\" type=\"button\" class=\"toast-close-button\" aria-label=\"Close\">\n <span aria-hidden=\"true\">×</span>\n </button>\n <div *ngIf=\"title\" [class]=\"options.titleClass\" [attr.aria-label]=\"title\">\n {{ title }} <ng-container *ngIf=\"duplicatesCount\">[{{ duplicatesCount + 1 }}]</ng-container>\n </div>\n <div *ngIf=\"message && options.enableHtml\" role=\"alert\"\n [class]=\"options.messageClass\" [innerHTML]=\"message\">\n </div>\n <div *ngIf=\"message && !options.enableHtml\" role=\"alert\"\n [class]=\"options.messageClass\" [attr.aria-label]=\"message\">\n {{ message }}\n </div>\n <div *ngIf=\"options.progressBar\">\n <div class=\"toast-progress\" [style.width]=\"width + '%'\"></div>\n </div>\n `,\n animations: [\n trigger('flyInOut', [\n state('inactive', style({ opacity: 0 })),\n state('active', style({ opacity: 1 })),\n state('removed', style({ opacity: 0 })),\n transition('inactive => active', animate('{{ easeTime }}ms {{ easing }}')),\n transition('active => removed', animate('{{ easeTime }}ms {{ easing }}')),\n ]),\n ],\n preserveWhitespaces: false,\n standalone: true,\n imports: [NgIf],\n }]\n }], ctorParameters: function () { return [{ type: ToastrService }, { type: ToastPackage }, { type: i0.NgZone }]; }, propDecorators: { toastClasses: [{\n type: HostBinding,\n args: ['class']\n }], state: [{\n type: HostBinding,\n args: ['@flyInOut']\n }], displayStyle: [{\n type: HostBinding,\n args: ['style.display']\n }], tapToast: [{\n type: HostListener,\n args: ['click']\n }], stickAround: [{\n type: HostListener,\n args: ['mouseenter']\n }], delayedHideToast: [{\n type: HostListener,\n args: ['mouseleave']\n }] } });\n\nconst DefaultGlobalConfig = {\n ...DefaultNoComponentGlobalConfig,\n toastComponent: Toast,\n};\n/**\n * @description\n * Provides the `TOAST_CONFIG` token with the given config.\n *\n * @param config The config to configure toastr.\n * @returns The environment providers.\n *\n * @example\n * ```ts\n * import { provideToastr } from 'ngx-toastr';\n *\n * bootstrap(AppComponent, {\n * providers: [\n * provideToastr({\n * timeOut: 2000,\n * positionClass: 'toast-top-right',\n * }),\n * ],\n * })\n */\nconst provideToastr = (config = {}) => {\n const providers = [\n {\n provide: TOAST_CONFIG,\n useValue: {\n default: DefaultGlobalConfig,\n config,\n }\n }\n ];\n return makeEnvironmentProviders(providers);\n};\n\nclass ToastrModule {\n static forRoot(config = {}) {\n return {\n ngModule: ToastrModule,\n providers: [provideToastr(config)],\n };\n }\n}\nToastrModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.7\", ngImport: i0, type: ToastrModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nToastrModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"15.2.7\", ngImport: i0, type: ToastrModule, imports: [Toast], exports: [Toast] });\nToastrModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"15.2.7\", ngImport: i0, type: ToastrModule, imports: [Toast] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.7\", ngImport: i0, type: ToastrModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [Toast],\n exports: [Toast],\n }]\n }] });\nclass ToastrComponentlessModule {\n static forRoot(config = {}) {\n return {\n ngModule: ToastrModule,\n providers: [\n {\n provide: TOAST_CONFIG,\n useValue: {\n default: DefaultNoComponentGlobalConfig,\n config,\n },\n },\n ],\n };\n }\n}\nToastrComponentlessModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.7\", ngImport: i0, type: ToastrComponentlessModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nToastrComponentlessModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"15.2.7\", ngImport: i0, type: ToastrComponentlessModule });\nToastrComponentlessModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"15.2.7\", ngImport: i0, type: ToastrComponentlessModule });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.7\", ngImport: i0, type: ToastrComponentlessModule, decorators: [{\n type: NgModule,\n args: [{}]\n }] });\n\nclass ToastNoAnimation {\n /** hides component when waiting to be displayed */\n get displayStyle() {\n if (this.state === 'inactive') {\n return 'none';\n }\n }\n constructor(toastrService, toastPackage, appRef) {\n this.toastrService = toastrService;\n this.toastPackage = toastPackage;\n this.appRef = appRef;\n /** width of progress bar */\n this.width = -1;\n /** a combination of toast type and options.toastClass */\n this.toastClasses = '';\n /** controls animation */\n this.state = 'inactive';\n this.message = toastPackage.message;\n this.title = toastPackage.title;\n this.options = toastPackage.config;\n this.originalTimeout = toastPackage.config.timeOut;\n this.toastClasses = `${toastPackage.toastType} ${toastPackage.config.toastClass}`;\n this.sub = toastPackage.toastRef.afterActivate().subscribe(() => {\n this.activateToast();\n });\n this.sub1 = toastPackage.toastRef.manualClosed().subscribe(() => {\n this.remove();\n });\n this.sub2 = toastPackage.toastRef.timeoutReset().subscribe(() => {\n this.resetTimeout();\n });\n this.sub3 = toastPackage.toastRef.countDuplicate().subscribe(count => {\n this.duplicatesCount = count;\n });\n }\n ngOnDestroy() {\n this.sub.unsubscribe();\n this.sub1.unsubscribe();\n this.sub2.unsubscribe();\n this.sub3.unsubscribe();\n clearInterval(this.intervalId);\n clearTimeout(this.timeout);\n }\n /**\n * activates toast and sets timeout\n */\n activateToast() {\n this.state = 'active';\n if (!(this.options.disableTimeOut === true || this.options.disableTimeOut === 'timeOut') && this.options.timeOut) {\n this.timeout = setTimeout(() => {\n this.remove();\n }, this.options.timeOut);\n this.hideTime = new Date().getTime() + this.options.timeOut;\n if (this.options.progressBar) {\n this.intervalId = setInterval(() => this.updateProgress(), 10);\n }\n }\n if (this.options.onActivateTick) {\n this.appRef.tick();\n }\n }\n /**\n * updates progress bar width\n */\n updateProgress() {\n if (this.width === 0 || this.width === 100 || !this.options.timeOut) {\n return;\n }\n const now = new Date().getTime();\n const remaining = this.hideTime - now;\n this.width = (remaining / this.options.timeOut) * 100;\n if (this.options.progressAnimation === 'increasing') {\n this.width = 100 - this.width;\n }\n if (this.width <= 0) {\n this.width = 0;\n }\n if (this.width >= 100) {\n this.width = 100;\n }\n }\n resetTimeout() {\n clearTimeout(this.timeout);\n clearInterval(this.intervalId);\n this.state = 'active';\n this.options.timeOut = this.originalTimeout;\n this.timeout = setTimeout(() => this.remove(), this.originalTimeout);\n this.hideTime = new Date().getTime() + (this.originalTimeout || 0);\n this.width = -1;\n if (this.options.progressBar) {\n this.intervalId = setInterval(() => this.updateProgress(), 10);\n }\n }\n /**\n * tells toastrService to remove this toast after animation time\n */\n remove() {\n if (this.state === 'removed') {\n return;\n }\n clearTimeout(this.timeout);\n this.state = 'removed';\n this.timeout = setTimeout(() => this.toastrService.remove(this.toastPackage.toastId));\n }\n tapToast() {\n if (this.state === 'removed') {\n return;\n }\n this.toastPackage.triggerTap();\n if (this.options.tapToDismiss) {\n this.remove();\n }\n }\n stickAround() {\n if (this.state === 'removed') {\n return;\n }\n clearTimeout(this.timeout);\n this.options.timeOut = 0;\n this.hideTime = 0;\n // disable progressBar\n clearInterval(this.intervalId);\n this.width = 0;\n }\n delayedHideToast() {\n if ((this.options.disableTimeOut === true || this.options.disableTimeOut === 'extendedTimeOut') ||\n this.options.extendedTimeOut === 0 ||\n this.state === 'removed') {\n return;\n }\n this.timeout = setTimeout(() => this.remove(), this.options.extendedTimeOut);\n this.options.timeOut = this.options.extendedTimeOut;\n this.hideTime = new Date().getTime() + (this.options.timeOut || 0);\n this.width = -1;\n if (this.options.progressBar) {\n this.intervalId = setInterval(() => this.updateProgress(), 10);\n }\n }\n}\nToastNoAnimation.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.7\", ngImport: i0, type: ToastNoAnimation, deps: [{ token: ToastrService }, { token: ToastPackage }, { token: i0.ApplicationRef }], target: i0.ɵɵFactoryTarget.Component });\nToastNoAnimation.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"15.2.7\", type: ToastNoAnimation, isStandalone: true, selector: \"[toast-component]\", host: { listeners: { \"click\": \"tapToast()\", \"mouseenter\": \"stickAround()\", \"mouseleave\": \"delayedHideToast()\" }, properties: { \"class\": \"this.toastClasses\", \"style.display\": \"this.displayStyle\" } }, ngImport: i0, template: `\n <button *ngIf=\"options.closeButton\" (click)=\"remove()\" type=\"button\" class=\"toast-close-button\" aria-label=\"Close\">\n <span aria-hidden=\"true\">×</span>\n </button>\n <div *ngIf=\"title\" [class]=\"options.titleClass\" [attr.aria-label]=\"title\">\n {{ title }} <ng-container *ngIf=\"duplicatesCount\">[{{ duplicatesCount + 1 }}]</ng-container>\n </div>\n <div *ngIf=\"message && options.enableHtml\" role=\"alert\"\n [class]=\"options.messageClass\" [innerHTML]=\"message\">\n </div>\n <div *ngIf=\"message && !options.enableHtml\" role=\"alert\"\n [class]=\"options.messageClass\" [attr.aria-label]=\"message\">\n {{ message }}\n </div>\n <div *ngIf=\"options.progressBar\">\n <div class=\"toast-progress\" [style.width]=\"width + '%'\"></div>\n </div>\n `, isInline: true, dependencies: [{ kind: \"directive\", type: NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.7\", ngImport: i0, type: ToastNoAnimation, decorators: [{\n type: Component,\n args: [{\n selector: '[toast-component]',\n template: `\n <button *ngIf=\"options.closeButton\" (click)=\"remove()\" type=\"button\" class=\"toast-close-button\" aria-label=\"Close\">\n <span aria-hidden=\"true\">×</span>\n </button>\n <div *ngIf=\"title\" [class]=\"options.titleClass\" [attr.aria-label]=\"title\">\n {{ title }} <ng-container *ngIf=\"duplicatesCount\">[{{ duplicatesCount + 1 }}]</ng-container>\n </div>\n <div *ngIf=\"message && options.enableHtml\" role=\"alert\"\n [class]=\"options.messageClass\" [innerHTML]=\"message\">\n </div>\n <div *ngIf=\"message && !options.enableHtml\" role=\"alert\"\n [class]=\"options.messageClass\" [attr.aria-label]=\"message\">\n {{ message }}\n </div>\n <div *ngIf=\"options.progressBar\">\n <div class=\"toast-progress\" [style.width]=\"width + '%'\"></div>\n </div>\n `,\n standalone: true,\n imports: [NgIf]\n }]\n }], ctorParameters: function () { return [{ type: ToastrService }, { type: ToastPackage }, { type: i0.ApplicationRef }]; }, propDecorators: { toastClasses: [{\n type: HostBinding,\n args: ['class']\n }], displayStyle: [{\n type: HostBinding,\n args: ['style.display']\n }], tapToast: [{\n type: HostListener,\n args: ['click']\n }], stickAround: [{\n type: HostListener,\n args: ['mouseenter']\n }], delayedHideToast: [{\n type: HostListener,\n args: ['mouseleave']\n }] } });\nconst DefaultNoAnimationsGlobalConfig = {\n ...DefaultNoComponentGlobalConfig,\n toastComponent: ToastNoAnimation,\n};\nclass ToastNoAnimationModule {\n static forRoot(config = {}) {\n return {\n ngModule: ToastNoAnimationModule,\n providers: [\n {\n provide: TOAST_CONFIG,\n useValue: {\n default: DefaultNoAnimationsGlobalConfig,\n config,\n },\n },\n ],\n };\n }\n}\nToastNoAnimationModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.7\", ngImport: i0, type: ToastNoAnimationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nToastNoAnimationModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"15.2.7\", ngImport: i0, type: ToastNoAnimationModule, imports: [ToastNoAnimation], exports: [ToastNoAnimation] });\nToastNoAnimationModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"15.2.7\", ngImport: i0, type: ToastNoAnimationModule, imports: [ToastNoAnimation] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.7\", ngImport: i0, type: ToastNoAnimationModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [ToastNoAnimation],\n exports: [ToastNoAnimation],\n }]\n }] });\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { BasePortalHost, ComponentPortal, DefaultGlobalConfig, DefaultNoAnimationsGlobalConfig, DefaultNoComponentGlobalConfig, Overlay, OverlayContainer, OverlayRef, TOAST_CONFIG, Toast, ToastContainerDirective, ToastNoAnimation, ToastNoAnimationModule, ToastPackage, ToastRef, ToastrComponentlessModule, ToastrModule, ToastrService, provideToastr };\n","/**\n * @license Angular v15.2.9\n * (c) 2010-2022 Google LLC. https://angular.io/\n * License: MIT\n */\n\nimport { ɵAnimationGroupPlayer, NoopAnimationPlayer, AUTO_STYLE, ɵPRE_STYLE, sequence, style } from '@angular/animations';\nimport * as i0 from '@angular/core';\nimport { ɵRuntimeError, Injectable } from '@angular/core';\n\nconst LINE_START = '\\n - ';\nfunction invalidTimingValue(exp) {\n return new ɵRuntimeError(3000 /* RuntimeErrorCode.INVALID_TIMING_VALUE */, ngDevMode && `The provided timing value \"${exp}\" is invalid.`);\n}\nfunction negativeStepValue() {\n return new ɵRuntimeError(3100 /* RuntimeErrorCode.NEGATIVE_STEP_VALUE */, ngDevMode && 'Duration values below 0 are not allowed for this animation step.');\n}\nfunction negativeDelayValue() {\n return new ɵRuntimeError(3101 /* RuntimeErrorCode.NEGATIVE_DELAY_VALUE */, ngDevMode && 'Delay values below 0 are not allowed for this animation step.');\n}\nfunction invalidStyleParams(varName) {\n return new ɵRuntimeError(3001 /* RuntimeErrorCode.INVALID_STYLE_PARAMS */, ngDevMode &&\n `Unable to resolve the local animation param ${varName} in the given list of values`);\n}\nfunction invalidParamValue(varName) {\n return new ɵRuntimeError(3003 /* RuntimeErrorCode.INVALID_PARAM_VALUE */, ngDevMode && `Please provide a value for the animation param ${varName}`);\n}\nfunction invalidNodeType(nodeType) {\n return new ɵRuntimeError(3004 /* RuntimeErrorCode.INVALID_NODE_TYPE */, ngDevMode && `Unable to resolve animation metadata node #${nodeType}`);\n}\nfunction invalidCssUnitValue(userProvidedProperty, value) {\n return new ɵRuntimeError(3005 /* RuntimeErrorCode.INVALID_CSS_UNIT_VALUE */, ngDevMode && `Please provide a CSS unit value for ${userProvidedProperty}:${value}`);\n}\nfunction invalidTrigger() {\n return new ɵRuntimeError(3006 /* RuntimeErrorCode.INVALID_TRIGGER */, ngDevMode &&\n 'animation triggers cannot be prefixed with an `@` sign (e.g. trigger(\\'@foo\\', [...]))');\n}\nfunction invalidDefinition() {\n return new ɵRuntimeError(3007 /* RuntimeErrorCode.INVALID_DEFINITION */, ngDevMode && 'only state() and transition() definitions can sit inside of a trigger()');\n}\nfunction invalidState(metadataName, missingSubs) {\n return new ɵRuntimeError(3008 /* RuntimeErrorCode.INVALID_STATE */, ngDevMode &&\n `state(\"${metadataName}\", ...) must define default values for all the following style substitutions: ${missingSubs.join(', ')}`);\n}\nfunction invalidStyleValue(value) {\n return new ɵRuntimeError(3002 /* RuntimeErrorCode.INVALID_STYLE_VALUE */, ngDevMode && `The provided style string value ${value} is not allowed.`);\n}\nfunction invalidProperty(prop) {\n return new ɵRuntimeError(3009 /* RuntimeErrorCode.INVALID_PROPERTY */, ngDevMode &&\n `The provided animation property \"${prop}\" is not a supported CSS property for animations`);\n}\nfunction invalidParallelAnimation(prop, firstStart, firstEnd, secondStart, secondEnd) {\n return new ɵRuntimeError(3010 /* RuntimeErrorCode.INVALID_PARALLEL_ANIMATION */, ngDevMode &&\n `The CSS property \"${prop}\" that exists between the times of \"${firstStart}ms\" and \"${firstEnd}ms\" is also being animated in a parallel animation between the times of \"${secondStart}ms\" and \"${secondEnd}ms\"`);\n}\nfunction invalidKeyframes() {\n return new ɵRuntimeError(3011 /* RuntimeErrorCode.INVALID_KEYFRAMES */, ngDevMode && `keyframes() must be placed inside of a call to animate()`);\n}\nfunction invalidOffset() {\n return new ɵRuntimeError(3012 /* RuntimeErrorCode.INVALID_OFFSET */, ngDevMode && `Please ensure that all keyframe offsets are between 0 and 1`);\n}\nfunction keyframeOffsetsOutOfOrder() {\n return new ɵRuntimeError(3200 /* RuntimeErrorCode.KEYFRAME_OFFSETS_OUT_OF_ORDER */, ngDevMode && `Please ensure that all keyframe offsets are in order`);\n}\nfunction keyframesMissingOffsets() {\n return new ɵRuntimeError(3202 /* RuntimeErrorCode.KEYFRAMES_MISSING_OFFSETS */, ngDevMode && `Not all style() steps within the declared keyframes() contain offsets`);\n}\nfunction invalidStagger() {\n return new ɵRuntimeError(3013 /* RuntimeErrorCode.INVALID_STAGGER */, ngDevMode && `stagger() can only be used inside of query()`);\n}\nfunction invalidQuery(selector) {\n return new ɵRuntimeError(3014 /* RuntimeErrorCode.INVALID_QUERY */, ngDevMode &&\n `\\`query(\"${selector}\")\\` returned zero elements. (Use \\`query(\"${selector}\", { optional: true })\\` if you wish to allow this.)`);\n}\nfunction invalidExpression(expr) {\n return new ɵRuntimeError(3015 /* RuntimeErrorCode.INVALID_EXPRESSION */, ngDevMode && `The provided transition expression \"${expr}\" is not supported`);\n}\nfunction invalidTransitionAlias(alias) {\n return new ɵRuntimeError(3016 /* RuntimeErrorCode.INVALID_TRANSITION_ALIAS */, ngDevMode && `The transition alias value \"${alias}\" is not supported`);\n}\nfunction validationFailed(errors) {\n return new ɵRuntimeError(3500 /* RuntimeErrorCode.VALIDATION_FAILED */, ngDevMode && `animation validation failed:\\n${errors.map(err => err.message).join('\\n')}`);\n}\nfunction buildingFailed(errors) {\n return new ɵRuntimeError(3501 /* RuntimeErrorCode.BUILDING_FAILED */, ngDevMode && `animation building failed:\\n${errors.map(err => err.message).join('\\n')}`);\n}\nfunction triggerBuildFailed(name, errors) {\n return new ɵRuntimeError(3404 /* RuntimeErrorCode.TRIGGER_BUILD_FAILED */, ngDevMode &&\n `The animation trigger \"${name}\" has failed to build due to the following errors:\\n - ${errors.map(err => err.message).join('\\n - ')}`);\n}\nfunction animationFailed(errors) {\n return new ɵRuntimeError(3502 /* RuntimeErrorCode.ANIMATION_FAILED */, ngDevMode &&\n `Unable to animate due to the following errors:${LINE_START}${errors.map(err => err.message).join(LINE_START)}`);\n}\nfunction registerFailed(errors) {\n return new ɵRuntimeError(3503 /* RuntimeErrorCode.REGISTRATION_FAILED */, ngDevMode &&\n `Unable to build the animation due to the following errors: ${errors.map(err => err.message).join('\\n')}`);\n}\nfunction missingOrDestroyedAnimation() {\n return new ɵRuntimeError(3300 /* RuntimeErrorCode.MISSING_OR_DESTROYED_ANIMATION */, ngDevMode && 'The requested animation doesn\\'t exist or has already been destroyed');\n}\nfunction createAnimationFailed(errors) {\n return new ɵRuntimeError(3504 /* RuntimeErrorCode.CREATE_ANIMATION_FAILED */, ngDevMode &&\n `Unable to create the animation due to the following errors:${errors.map(err => err.message).join('\\n')}`);\n}\nfunction missingPlayer(id) {\n return new ɵRuntimeError(3301 /* RuntimeErrorCode.MISSING_PLAYER */, ngDevMode && `Unable to find the timeline player referenced by ${id}`);\n}\nfunction missingTrigger(phase, name) {\n return new ɵRuntimeError(3302 /* RuntimeErrorCode.MISSING_TRIGGER */, ngDevMode &&\n `Unable to listen on the animation trigger event \"${phase}\" because the animation trigger \"${name}\" doesn\\'t exist!`);\n}\nfunction missingEvent(name) {\n return new ɵRuntimeError(3303 /* RuntimeErrorCode.MISSING_EVENT */, ngDevMode &&\n `Unable to listen on the animation trigger \"${name}\" because the provided event is undefined!`);\n}\nfunction unsupportedTriggerEvent(phase, name) {\n return new ɵRuntimeError(3400 /* RuntimeErrorCode.UNSUPPORTED_TRIGGER_EVENT */, ngDevMode &&\n `The provided animation trigger event \"${phase}\" for the animation trigger \"${name}\" is not supported!`);\n}\nfunction unregisteredTrigger(name) {\n return new ɵRuntimeError(3401 /* RuntimeErrorCode.UNREGISTERED_TRIGGER */, ngDevMode && `The provided animation trigger \"${name}\" has not been registered!`);\n}\nfunction triggerTransitionsFailed(errors) {\n return new ɵRuntimeError(3402 /* RuntimeErrorCode.TRIGGER_TRANSITIONS_FAILED */, ngDevMode &&\n `Unable to process animations due to the following failed trigger transitions\\n ${errors.map(err => err.message).join('\\n')}`);\n}\nfunction triggerParsingFailed(name, errors) {\n return new ɵRuntimeError(3403 /* RuntimeErrorCode.TRIGGER_PARSING_FAILED */, ngDevMode &&\n `Animation parsing for the ${name} trigger have failed:${LINE_START}${errors.map(err => err.message).join(LINE_START)}`);\n}\nfunction transitionFailed(name, errors) {\n return new ɵRuntimeError(3505 /* RuntimeErrorCode.TRANSITION_FAILED */, ngDevMode && `@${name} has failed due to:\\n ${errors.map(err => err.message).join('\\n- ')}`);\n}\n\n/**\n * Set of all animatable CSS properties\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_animated_properties\n */\nconst ANIMATABLE_PROP_SET = new Set([\n '-moz-outline-radius',\n '-moz-outline-radius-bottomleft',\n '-moz-outline-radius-bottomright',\n '-moz-outline-radius-topleft',\n '-moz-outline-radius-topright',\n '-ms-grid-columns',\n '-ms-grid-rows',\n '-webkit-line-clamp',\n '-webkit-text-fill-color',\n '-webkit-text-stroke',\n '-webkit-text-stroke-color',\n 'accent-color',\n 'all',\n 'backdrop-filter',\n 'background',\n 'background-color',\n 'background-position',\n 'background-size',\n 'block-size',\n 'border',\n 'border-block-end',\n 'border-block-end-color',\n 'border-block-end-width',\n 'border-block-start',\n 'border-block-start-color',\n 'border-block-start-width',\n 'border-bottom',\n 'border-bottom-color',\n 'border-bottom-left-radius',\n 'border-bottom-right-radius',\n 'border-bottom-width',\n 'border-color',\n 'border-end-end-radius',\n 'border-end-start-radius',\n 'border-image-outset',\n 'border-image-slice',\n 'border-image-width',\n 'border-inline-end',\n 'border-inline-end-color',\n 'border-inline-end-width',\n 'border-inline-start',\n 'border-inline-start-color',\n 'border-inline-start-width',\n 'border-left',\n 'border-left-color',\n 'border-left-width',\n 'border-radius',\n 'border-right',\n 'border-right-color',\n 'border-right-width',\n 'border-start-end-radius',\n 'border-start-start-radius',\n 'border-top',\n 'border-top-color',\n 'border-top-left-radius',\n 'border-top-right-radius',\n 'border-top-width',\n 'border-width',\n 'bottom',\n 'box-shadow',\n 'caret-color',\n 'clip',\n 'clip-path',\n 'color',\n 'column-count',\n 'column-gap',\n 'column-rule',\n 'column-rule-color',\n 'column-rule-width',\n 'column-width',\n 'columns',\n 'filter',\n 'flex',\n 'flex-basis',\n 'flex-grow',\n 'flex-shrink',\n 'font',\n 'font-size',\n 'font-size-adjust',\n 'font-stretch',\n 'font-variation-settings',\n 'font-weight',\n 'gap',\n 'grid-column-gap',\n 'grid-gap',\n 'grid-row-gap',\n 'grid-template-columns',\n 'grid-template-rows',\n 'height',\n 'inline-size',\n 'input-security',\n 'inset',\n 'inset-block',\n 'inset-block-end',\n 'inset-block-start',\n 'inset-inline',\n 'inset-inline-end',\n 'inset-inline-start',\n 'left',\n 'letter-spacing',\n 'line-clamp',\n 'line-height',\n 'margin',\n 'margin-block-end',\n 'margin-block-start',\n 'margin-bottom',\n 'margin-inline-end',\n 'margin-inline-start',\n 'margin-left',\n 'margin-right',\n 'margin-top',\n 'mask',\n 'mask-border',\n 'mask-position',\n 'mask-size',\n 'max-block-size',\n 'max-height',\n 'max-inline-size',\n 'max-lines',\n 'max-width',\n 'min-block-size',\n 'min-height',\n 'min-inline-size',\n 'min-width',\n 'object-position',\n 'offset',\n 'offset-anchor',\n 'offset-distance',\n 'offset-path',\n 'offset-position',\n 'offset-rotate',\n 'opacity',\n 'order',\n 'outline',\n 'outline-color',\n 'outline-offset',\n 'outline-width',\n 'padding',\n 'padding-block-end',\n 'padding-block-start',\n 'padding-bottom',\n 'padding-inline-end',\n 'padding-inline-start',\n 'padding-left',\n 'padding-right',\n 'padding-top',\n 'perspective',\n 'perspective-origin',\n 'right',\n 'rotate',\n 'row-gap',\n 'scale',\n 'scroll-margin',\n 'scroll-margin-block',\n 'scroll-margin-block-end',\n 'scroll-margin-block-start',\n 'scroll-margin-bottom',\n 'scroll-margin-inline',\n 'scroll-margin-inline-end',\n 'scroll-margin-inline-start',\n 'scroll-margin-left',\n 'scroll-margin-right',\n 'scroll-margin-top',\n 'scroll-padding',\n 'scroll-padding-block',\n 'scroll-padding-block-end',\n 'scroll-padding-block-start',\n 'scroll-padding-bottom',\n 'scroll-padding-inline',\n 'scroll-padding-inline-end',\n 'scroll-padding-inline-start',\n 'scroll-padding-left',\n 'scroll-padding-right',\n 'scroll-padding-top',\n 'scroll-snap-coordinate',\n 'scroll-snap-destination',\n 'scrollbar-color',\n 'shape-image-threshold',\n 'shape-margin',\n 'shape-outside',\n 'tab-size',\n 'text-decoration',\n 'text-decoration-color',\n 'text-decoration-thickness',\n 'text-emphasis',\n 'text-emphasis-color',\n 'text-indent',\n 'text-shadow',\n 'text-underline-offset',\n 'top',\n 'transform',\n 'transform-origin',\n 'translate',\n 'vertical-align',\n 'visibility',\n 'width',\n 'word-spacing',\n 'z-index',\n 'zoom',\n]);\n\nfunction isBrowser() {\n return (typeof window !== 'undefined' && typeof window.document !== 'undefined');\n}\nfunction isNode() {\n // Checking only for `process` isn't enough to identify whether or not we're in a Node\n // environment, because Webpack by default will polyfill the `process`. While we can discern\n // that Webpack polyfilled it by looking at `process.browser`, it's very Webpack-specific and\n // might not be future-proof. Instead we look at the stringified version of `process` which\n // is `[object process]` in Node and `[object Object]` when polyfilled.\n return typeof process !== 'undefined' && {}.toString.call(process) === '[object process]';\n}\nfunction optimizeGroupPlayer(players) {\n switch (players.length) {\n case 0:\n return new NoopAnimationPlayer();\n case 1:\n return players[0];\n default:\n return new ɵAnimationGroupPlayer(players);\n }\n}\nfunction normalizeKeyframes$1(driver, normalizer, element, keyframes, preStyles = new Map(), postStyles = new Map()) {\n const errors = [];\n const normalizedKeyframes = [];\n let previousOffset = -1;\n let previousKeyframe = null;\n keyframes.forEach(kf => {\n const offset = kf.get('offset');\n const isSameOffset = offset == previousOffset;\n const normalizedKeyframe = (isSameOffset && previousKeyframe) || new Map();\n kf.forEach((val, prop) => {\n let normalizedProp = prop;\n let normalizedValue = val;\n if (prop !== 'offset') {\n normalizedProp = normalizer.normalizePropertyName(normalizedProp, errors);\n switch (normalizedValue) {\n case ɵPRE_STYLE:\n normalizedValue = preStyles.get(prop);\n break;\n case AUTO_STYLE:\n normalizedValue = postStyles.get(prop);\n break;\n default:\n normalizedValue =\n normalizer.normalizeStyleValue(prop, normalizedProp, normalizedValue, errors);\n break;\n }\n }\n normalizedKeyframe.set(normalizedProp, normalizedValue);\n });\n if (!isSameOffset) {\n normalizedKeyframes.push(normalizedKeyframe);\n }\n previousKeyframe = normalizedKeyframe;\n previousOffset = offset;\n });\n if (errors.length) {\n throw animationFailed(errors);\n }\n return normalizedKeyframes;\n}\nfunction listenOnPlayer(player, eventName, event, callback) {\n switch (eventName) {\n case 'start':\n player.onStart(() => callback(event && copyAnimationEvent(event, 'start', player)));\n break;\n case 'done':\n player.onDone(() => callback(event && copyAnimationEvent(event, 'done', player)));\n break;\n case 'destroy':\n player.onDestroy(() => callback(event && copyAnimationEvent(event, 'destroy', player)));\n break;\n }\n}\nfunction copyAnimationEvent(e, phaseName, player) {\n const totalTime = player.totalTime;\n const disabled = player.disabled ? true : false;\n const event = makeAnimationEvent(e.element, e.triggerName, e.fromState, e.toState, phaseName || e.phaseName, totalTime == undefined ? e.totalTime : totalTime, disabled);\n const data = e['_data'];\n if (data != null) {\n event['_data'] = data;\n }\n return event;\n}\nfunction makeAnimationEvent(element, triggerName, fromState, toState, phaseName = '', totalTime = 0, disabled) {\n return { element, triggerName, fromState, toState, phaseName, totalTime, disabled: !!disabled };\n}\nfunction getOrSetDefaultValue(map, key, defaultValue) {\n let value = map.get(key);\n if (!value) {\n map.set(key, value = defaultValue);\n }\n return value;\n}\nfunction parseTimelineCommand(command) {\n const separatorPos = command.indexOf(':');\n const id = command.substring(1, separatorPos);\n const action = command.slice(separatorPos + 1);\n return [id, action];\n}\nlet _contains = (elm1, elm2) => false;\nlet _query = (element, selector, multi) => {\n return [];\n};\nlet _documentElement = null;\nfunction getParentElement(element) {\n const parent = element.parentNode || element.host; // consider host to support shadow DOM\n if (parent === _documentElement) {\n return null;\n }\n return parent;\n}\n// Define utility methods for browsers and platform-server(domino) where Element\n// and utility methods exist.\nconst _isNode = isNode();\nif (_isNode || typeof Element !== 'undefined') {\n if (!isBrowser()) {\n _contains = (elm1, elm2) => elm1.contains(elm2);\n }\n else {\n // Read the document element in an IIFE that's been marked pure to avoid a top-level property\n // read that may prevent tree-shaking.\n _documentElement = /* @__PURE__ */ (() => document.documentElement)();\n _contains = (elm1, elm2) => {\n while (elm2) {\n if (elm2 === elm1) {\n return true;\n }\n elm2 = getParentElement(elm2);\n }\n return false;\n };\n }\n _query = (element, selector, multi) => {\n if (multi) {\n return Array.from(element.querySelectorAll(selector));\n }\n const elem = element.querySelector(selector);\n return elem ? [elem] : [];\n };\n}\nfunction containsVendorPrefix(prop) {\n // Webkit is the only real popular vendor prefix nowadays\n // cc: http://shouldiprefix.com/\n return prop.substring(1, 6) == 'ebkit'; // webkit or Webkit\n}\nlet _CACHED_BODY = null;\nlet _IS_WEBKIT = false;\nfunction validateStyleProperty(prop) {\n if (!_CACHED_BODY) {\n _CACHED_BODY = getBodyNode() || {};\n _IS_WEBKIT = _CACHED_BODY.style ? ('WebkitAppearance' in _CACHED_BODY.style) : false;\n }\n let result = true;\n if (_CACHED_BODY.style && !containsVendorPrefix(prop)) {\n result = prop in _CACHED_BODY.style;\n if (!result && _IS_WEBKIT) {\n const camelProp = 'Webkit' + prop.charAt(0).toUpperCase() + prop.slice(1);\n result = camelProp in _CACHED_BODY.style;\n }\n }\n return result;\n}\nfunction validateWebAnimatableStyleProperty(prop) {\n return ANIMATABLE_PROP_SET.has(prop);\n}\nfunction getBodyNode() {\n if (typeof document != 'undefined') {\n return document.body;\n }\n return null;\n}\nconst containsElement = _contains;\nconst invokeQuery = _query;\nfunction hypenatePropsKeys(original) {\n const newMap = new Map();\n original.forEach((val, prop) => {\n const newProp = prop.replace(/([a-z])([A-Z])/g, '$1-$2');\n newMap.set(newProp, val);\n });\n return newMap;\n}\n\n/**\n * @publicApi\n */\nclass NoopAnimationDriver {\n validateStyleProperty(prop) {\n return validateStyleProperty(prop);\n }\n matchesElement(_element, _selector) {\n // This method is deprecated and no longer in use so we return false.\n return false;\n }\n containsElement(elm1, elm2) {\n return containsElement(elm1, elm2);\n }\n getParentElement(element) {\n return getParentElement(element);\n }\n query(element, selector, multi) {\n return invokeQuery(element, selector, multi);\n }\n computeStyle(element, prop, defaultValue) {\n return defaultValue || '';\n }\n animate(element, keyframes, duration, delay, easing, previousPlayers = [], scrubberAccessRequested) {\n return new NoopAnimationPlayer(duration, delay);\n }\n}\nNoopAnimationDriver.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: NoopAnimationDriver, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nNoopAnimationDriver.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: NoopAnimationDriver });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: NoopAnimationDriver, decorators: [{\n type: Injectable\n }] });\n/**\n * @publicApi\n */\nclass AnimationDriver {\n}\nAnimationDriver.NOOP = ( /* @__PURE__ */new NoopAnimationDriver());\n\nconst ONE_SECOND = 1000;\nconst SUBSTITUTION_EXPR_START = '{{';\nconst SUBSTITUTION_EXPR_END = '}}';\nconst ENTER_CLASSNAME = 'ng-enter';\nconst LEAVE_CLASSNAME = 'ng-leave';\nconst NG_TRIGGER_CLASSNAME = 'ng-trigger';\nconst NG_TRIGGER_SELECTOR = '.ng-trigger';\nconst NG_ANIMATING_CLASSNAME = 'ng-animating';\nconst NG_ANIMATING_SELECTOR = '.ng-animating';\nfunction resolveTimingValue(value) {\n if (typeof value == 'number')\n return value;\n const matches = value.match(/^(-?[\\.\\d]+)(m?s)/);\n if (!matches || matches.length < 2)\n return 0;\n return _convertTimeValueToMS(parseFloat(matches[1]), matches[2]);\n}\nfunction _convertTimeValueToMS(value, unit) {\n switch (unit) {\n case 's':\n return value * ONE_SECOND;\n default: // ms or something else\n return value;\n }\n}\nfunction resolveTiming(timings, errors, allowNegativeValues) {\n return timings.hasOwnProperty('duration') ?\n timings :\n parseTimeExpression(timings, errors, allowNegativeValues);\n}\nfunction parseTimeExpression(exp, errors, allowNegativeValues) {\n const regex = /^(-?[\\.\\d]+)(m?s)(?:\\s+(-?[\\.\\d]+)(m?s))?(?:\\s+([-a-z]+(?:\\(.+?\\))?))?$/i;\n let duration;\n let delay = 0;\n let easing = '';\n if (typeof exp === 'string') {\n const matches = exp.match(regex);\n if (matches === null) {\n errors.push(invalidTimingValue(exp));\n return { duration: 0, delay: 0, easing: '' };\n }\n duration = _convertTimeValueToMS(parseFloat(matches[1]), matches[2]);\n const delayMatch = matches[3];\n if (delayMatch != null) {\n delay = _convertTimeValueToMS(parseFloat(delayMatch), matches[4]);\n }\n const easingVal = matches[5];\n if (easingVal) {\n easing = easingVal;\n }\n }\n else {\n duration = exp;\n }\n if (!allowNegativeValues) {\n let containsErrors = false;\n let startIndex = errors.length;\n if (duration < 0) {\n errors.push(negativeStepValue());\n containsErrors = true;\n }\n if (delay < 0) {\n errors.push(negativeDelayValue());\n containsErrors = true;\n }\n if (containsErrors) {\n errors.splice(startIndex, 0, invalidTimingValue(exp));\n }\n }\n return { duration, delay, easing };\n}\nfunction copyObj(obj, destination = {}) {\n Object.keys(obj).forEach(prop => {\n destination[prop] = obj[prop];\n });\n return destination;\n}\nfunction convertToMap(obj) {\n const styleMap = new Map();\n Object.keys(obj).forEach(prop => {\n const val = obj[prop];\n styleMap.set(prop, val);\n });\n return styleMap;\n}\nfunction normalizeKeyframes(keyframes) {\n if (!keyframes.length) {\n return [];\n }\n if (keyframes[0] instanceof Map) {\n return keyframes;\n }\n return keyframes.map(kf => convertToMap(kf));\n}\nfunction normalizeStyles(styles) {\n const normalizedStyles = new Map();\n if (Array.isArray(styles)) {\n styles.forEach(data => copyStyles(data, normalizedStyles));\n }\n else {\n copyStyles(styles, normalizedStyles);\n }\n return normalizedStyles;\n}\nfunction copyStyles(styles, destination = new Map(), backfill) {\n if (backfill) {\n for (let [prop, val] of backfill) {\n destination.set(prop, val);\n }\n }\n for (let [prop, val] of styles) {\n destination.set(prop, val);\n }\n return destination;\n}\nfunction getStyleAttributeString(element, key, value) {\n // Return the key-value pair string to be added to the style attribute for the\n // given CSS style key.\n if (value) {\n return key + ':' + value + ';';\n }\n else {\n return '';\n }\n}\nfunction writeStyleAttribute(element) {\n // Read the style property of the element and manually reflect it to the\n // style attribute. This is needed because Domino on platform-server doesn't\n // understand the full set of allowed CSS properties and doesn't reflect some\n // of them automatically.\n let styleAttrValue = '';\n for (let i = 0; i < element.style.length; i++) {\n const key = element.style.item(i);\n styleAttrValue += getStyleAttributeString(element, key, element.style.getPropertyValue(key));\n }\n for (const key in element.style) {\n // Skip internal Domino properties that don't need to be reflected.\n if (!element.style.hasOwnProperty(key) || key.startsWith('_')) {\n continue;\n }\n const dashKey = camelCaseToDashCase(key);\n styleAttrValue += getStyleAttributeString(element, dashKey, element.style[key]);\n }\n element.setAttribute('style', styleAttrValue);\n}\nfunction setStyles(element, styles, formerStyles) {\n if (element['style']) {\n styles.forEach((val, prop) => {\n const camelProp = dashCaseToCamelCase(prop);\n if (formerStyles && !formerStyles.has(prop)) {\n formerStyles.set(prop, element.style[camelProp]);\n }\n element.style[camelProp] = val;\n });\n // On the server set the 'style' attribute since it's not automatically reflected.\n if (isNode()) {\n writeStyleAttribute(element);\n }\n }\n}\nfunction eraseStyles(element, styles) {\n if (element['style']) {\n styles.forEach((_, prop) => {\n const camelProp = dashCaseToCamelCase(prop);\n element.style[camelProp] = '';\n });\n // On the server set the 'style' attribute since it's not automatically reflected.\n if (isNode()) {\n writeStyleAttribute(element);\n }\n }\n}\nfunction normalizeAnimationEntry(steps) {\n if (Array.isArray(steps)) {\n if (steps.length == 1)\n return steps[0];\n return sequence(steps);\n }\n return steps;\n}\nfunction validateStyleParams(value, options, errors) {\n const params = options.params || {};\n const matches = extractStyleParams(value);\n if (matches.length) {\n matches.forEach(varName => {\n if (!params.hasOwnProperty(varName)) {\n errors.push(invalidStyleParams(varName));\n }\n });\n }\n}\nconst PARAM_REGEX = new RegExp(`${SUBSTITUTION_EXPR_START}\\\\s*(.+?)\\\\s*${SUBSTITUTION_EXPR_END}`, 'g');\nfunction extractStyleParams(value) {\n let params = [];\n if (typeof value === 'string') {\n let match;\n while (match = PARAM_REGEX.exec(value)) {\n params.push(match[1]);\n }\n PARAM_REGEX.lastIndex = 0;\n }\n return params;\n}\nfunction interpolateParams(value, params, errors) {\n const original = value.toString();\n const str = original.replace(PARAM_REGEX, (_, varName) => {\n let localVal = params[varName];\n // this means that the value was never overridden by the data passed in by the user\n if (localVal == null) {\n errors.push(invalidParamValue(varName));\n localVal = '';\n }\n return localVal.toString();\n });\n // we do this to assert that numeric values stay as they are\n return str == original ? value : str;\n}\nfunction iteratorToArray(iterator) {\n const arr = [];\n let item = iterator.next();\n while (!item.done) {\n arr.push(item.value);\n item = iterator.next();\n }\n return arr;\n}\nconst DASH_CASE_REGEXP = /-+([a-z0-9])/g;\nfunction dashCaseToCamelCase(input) {\n return input.replace(DASH_CASE_REGEXP, (...m) => m[1].toUpperCase());\n}\nfunction camelCaseToDashCase(input) {\n return input.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n}\nfunction allowPreviousPlayerStylesMerge(duration, delay) {\n return duration === 0 || delay === 0;\n}\nfunction balancePreviousStylesIntoKeyframes(element, keyframes, previousStyles) {\n if (previousStyles.size && keyframes.length) {\n let startingKeyframe = keyframes[0];\n let missingStyleProps = [];\n previousStyles.forEach((val, prop) => {\n if (!startingKeyframe.has(prop)) {\n missingStyleProps.push(prop);\n }\n startingKeyframe.set(prop, val);\n });\n if (missingStyleProps.length) {\n for (let i = 1; i < keyframes.length; i++) {\n let kf = keyframes[i];\n missingStyleProps.forEach(prop => kf.set(prop, computeStyle(element, prop)));\n }\n }\n }\n return keyframes;\n}\nfunction visitDslNode(visitor, node, context) {\n switch (node.type) {\n case 7 /* AnimationMetadataType.Trigger */:\n return visitor.visitTrigger(node, context);\n case 0 /* AnimationMetadataType.State */:\n return visitor.visitState(node, context);\n case 1 /* AnimationMetadataType.Transition */:\n return visitor.visitTransition(node, context);\n case 2 /* AnimationMetadataType.Sequence */:\n return visitor.visitSequence(node, context);\n case 3 /* AnimationMetadataType.Group */:\n return visitor.visitGroup(node, context);\n case 4 /* AnimationMetadataType.Animate */:\n return visitor.visitAnimate(node, context);\n case 5 /* AnimationMetadataType.Keyframes */:\n return visitor.visitKeyframes(node, context);\n case 6 /* AnimationMetadataType.Style */:\n return visitor.visitStyle(node, context);\n case 8 /* AnimationMetadataType.Reference */:\n return visitor.visitReference(node, context);\n case 9 /* AnimationMetadataType.AnimateChild */:\n return visitor.visitAnimateChild(node, context);\n case 10 /* AnimationMetadataType.AnimateRef */:\n return visitor.visitAnimateRef(node, context);\n case 11 /* AnimationMetadataType.Query */:\n return visitor.visitQuery(node, context);\n case 12 /* AnimationMetadataType.Stagger */:\n return visitor.visitStagger(node, context);\n default:\n throw invalidNodeType(node.type);\n }\n}\nfunction computeStyle(element, prop) {\n return window.getComputedStyle(element)[prop];\n}\n\nconst NG_DEV_MODE = typeof ngDevMode === 'undefined' || !!ngDevMode;\nfunction createListOfWarnings(warnings) {\n const LINE_START = '\\n - ';\n return `${LINE_START}${warnings.filter(Boolean).map(warning => warning).join(LINE_START)}`;\n}\nfunction warnValidation(warnings) {\n NG_DEV_MODE && console.warn(`animation validation warnings:${createListOfWarnings(warnings)}`);\n}\nfunction warnTriggerBuild(name, warnings) {\n NG_DEV_MODE &&\n console.warn(`The animation trigger \"${name}\" has built with the following warnings:${createListOfWarnings(warnings)}`);\n}\nfunction warnRegister(warnings) {\n NG_DEV_MODE &&\n console.warn(`Animation built with the following warnings:${createListOfWarnings(warnings)}`);\n}\nfunction triggerParsingWarnings(name, warnings) {\n NG_DEV_MODE &&\n console.warn(`Animation parsing for the ${name} trigger presents the following warnings:${createListOfWarnings(warnings)}`);\n}\nfunction pushUnrecognizedPropertiesWarning(warnings, props) {\n if (props.length) {\n warnings.push(`The following provided properties are not recognized: ${props.join(', ')}`);\n }\n}\n\nconst ANY_STATE = '*';\nfunction parseTransitionExpr(transitionValue, errors) {\n const expressions = [];\n if (typeof transitionValue == 'string') {\n transitionValue.split(/\\s*,\\s*/).forEach(str => parseInnerTransitionStr(str, expressions, errors));\n }\n else {\n expressions.push(transitionValue);\n }\n return expressions;\n}\nfunction parseInnerTransitionStr(eventStr, expressions, errors) {\n if (eventStr[0] == ':') {\n const result = parseAnimationAlias(eventStr, errors);\n if (typeof result == 'function') {\n expressions.push(result);\n return;\n }\n eventStr = result;\n }\n const match = eventStr.match(/^(\\*|[-\\w]+)\\s*(<?[=-]>)\\s*(\\*|[-\\w]+)$/);\n if (match == null || match.length < 4) {\n errors.push(invalidExpression(eventStr));\n return expressions;\n }\n const fromState = match[1];\n const separator = match[2];\n const toState = match[3];\n expressions.push(makeLambdaFromStates(fromState, toState));\n const isFullAnyStateExpr = fromState == ANY_STATE && toState == ANY_STATE;\n if (separator[0] == '<' && !isFullAnyStateExpr) {\n expressions.push(makeLambdaFromStates(toState, fromState));\n }\n}\nfunction parseAnimationAlias(alias, errors) {\n switch (alias) {\n case ':enter':\n return 'void => *';\n case ':leave':\n return '* => void';\n case ':increment':\n return (fromState, toState) => parseFloat(toState) > parseFloat(fromState);\n case ':decrement':\n return (fromState, toState) => parseFloat(toState) < parseFloat(fromState);\n default:\n errors.push(invalidTransitionAlias(alias));\n return '* => *';\n }\n}\n// DO NOT REFACTOR ... keep the follow set instantiations\n// with the values intact (closure compiler for some reason\n// removes follow-up lines that add the values outside of\n// the constructor...\nconst TRUE_BOOLEAN_VALUES = new Set(['true', '1']);\nconst FALSE_BOOLEAN_VALUES = new Set(['false', '0']);\nfunction makeLambdaFromStates(lhs, rhs) {\n const LHS_MATCH_BOOLEAN = TRUE_BOOLEAN_VALUES.has(lhs) || FALSE_BOOLEAN_VALUES.has(lhs);\n const RHS_MATCH_BOOLEAN = TRUE_BOOLEAN_VALUES.has(rhs) || FALSE_BOOLEAN_VALUES.has(rhs);\n return (fromState, toState) => {\n let lhsMatch = lhs == ANY_STATE || lhs == fromState;\n let rhsMatch = rhs == ANY_STATE || rhs == toState;\n if (!lhsMatch && LHS_MATCH_BOOLEAN && typeof fromState === 'boolean') {\n lhsMatch = fromState ? TRUE_BOOLEAN_VALUES.has(lhs) : FALSE_BOOLEAN_VALUES.has(lhs);\n }\n if (!rhsMatch && RHS_MATCH_BOOLEAN && typeof toState === 'boolean') {\n rhsMatch = toState ? TRUE_BOOLEAN_VALUES.has(rhs) : FALSE_BOOLEAN_VALUES.has(rhs);\n }\n return lhsMatch && rhsMatch;\n };\n}\n\nconst SELF_TOKEN = ':self';\nconst SELF_TOKEN_REGEX = new RegExp(`\\s*${SELF_TOKEN}\\s*,?`, 'g');\n/*\n * [Validation]\n * The visitor code below will traverse the animation AST generated by the animation verb functions\n * (the output is a tree of objects) and attempt to perform a series of validations on the data. The\n * following corner-cases will be validated:\n *\n * 1. Overlap of animations\n * Given that a CSS property cannot be animated in more than one place at the same time, it's\n * important that this behavior is detected and validated. The way in which this occurs is that\n * each time a style property is examined, a string-map containing the property will be updated with\n * the start and end times for when the property is used within an animation step.\n *\n * If there are two or more parallel animations that are currently running (these are invoked by the\n * group()) on the same element then the validator will throw an error. Since the start/end timing\n * values are collected for each property then if the current animation step is animating the same\n * property and its timing values fall anywhere into the window of time that the property is\n * currently being animated within then this is what causes an error.\n *\n * 2. Timing values\n * The validator will validate to see if a timing value of `duration delay easing` or\n * `durationNumber` is valid or not.\n *\n * (note that upon validation the code below will replace the timing data with an object containing\n * {duration,delay,easing}.\n *\n * 3. Offset Validation\n * Each of the style() calls are allowed to have an offset value when placed inside of keyframes().\n * Offsets within keyframes() are considered valid when:\n *\n * - No offsets are used at all\n * - Each style() entry contains an offset value\n * - Each offset is between 0 and 1\n * - Each offset is greater to or equal than the previous one\n *\n * Otherwise an error will be thrown.\n */\nfunction buildAnimationAst(driver, metadata, errors, warnings) {\n return new AnimationAstBuilderVisitor(driver).build(metadata, errors, warnings);\n}\nconst ROOT_SELECTOR = '';\nclass AnimationAstBuilderVisitor {\n constructor(_driver) {\n this._driver = _driver;\n }\n build(metadata, errors, warnings) {\n const context = new AnimationAstBuilderContext(errors);\n this._resetContextStyleTimingState(context);\n const ast = visitDslNode(this, normalizeAnimationEntry(metadata), context);\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (context.unsupportedCSSPropertiesFound.size) {\n pushUnrecognizedPropertiesWarning(warnings, [...context.unsupportedCSSPropertiesFound.keys()]);\n }\n }\n return ast;\n }\n _resetContextStyleTimingState(context) {\n context.currentQuerySelector = ROOT_SELECTOR;\n context.collectedStyles = new Map();\n context.collectedStyles.set(ROOT_SELECTOR, new Map());\n context.currentTime = 0;\n }\n visitTrigger(metadata, context) {\n let queryCount = context.queryCount = 0;\n let depCount = context.depCount = 0;\n const states = [];\n const transitions = [];\n if (metadata.name.charAt(0) == '@') {\n context.errors.push(invalidTrigger());\n }\n metadata.definitions.forEach(def => {\n this._resetContextStyleTimingState(context);\n if (def.type == 0 /* AnimationMetadataType.State */) {\n const stateDef = def;\n const name = stateDef.name;\n name.toString().split(/\\s*,\\s*/).forEach(n => {\n stateDef.name = n;\n states.push(this.visitState(stateDef, context));\n });\n stateDef.name = name;\n }\n else if (def.type == 1 /* AnimationMetadataType.Transition */) {\n const transition = this.visitTransition(def, context);\n queryCount += transition.queryCount;\n depCount += transition.depCount;\n transitions.push(transition);\n }\n else {\n context.errors.push(invalidDefinition());\n }\n });\n return {\n type: 7 /* AnimationMetadataType.Trigger */,\n name: metadata.name,\n states,\n transitions,\n queryCount,\n depCount,\n options: null\n };\n }\n visitState(metadata, context) {\n const styleAst = this.visitStyle(metadata.styles, context);\n const astParams = (metadata.options && metadata.options.params) || null;\n if (styleAst.containsDynamicStyles) {\n const missingSubs = new Set();\n const params = astParams || {};\n styleAst.styles.forEach(style => {\n if (style instanceof Map) {\n style.forEach(value => {\n extractStyleParams(value).forEach(sub => {\n if (!params.hasOwnProperty(sub)) {\n missingSubs.add(sub);\n }\n });\n });\n }\n });\n if (missingSubs.size) {\n const missingSubsArr = iteratorToArray(missingSubs.values());\n context.errors.push(invalidState(metadata.name, missingSubsArr));\n }\n }\n return {\n type: 0 /* AnimationMetadataType.State */,\n name: metadata.name,\n style: styleAst,\n options: astParams ? { params: astParams } : null\n };\n }\n visitTransition(metadata, context) {\n context.queryCount = 0;\n context.depCount = 0;\n const animation = visitDslNode(this, normalizeAnimationEntry(metadata.animation), context);\n const matchers = parseTransitionExpr(metadata.expr, context.errors);\n return {\n type: 1 /* AnimationMetadataType.Transition */,\n matchers,\n animation,\n queryCount: context.queryCount,\n depCount: context.depCount,\n options: normalizeAnimationOptions(metadata.options)\n };\n }\n visitSequence(metadata, context) {\n return {\n type: 2 /* AnimationMetadataType.Sequence */,\n steps: metadata.steps.map(s => visitDslNode(this, s, context)),\n options: normalizeAnimationOptions(metadata.options)\n };\n }\n visitGroup(metadata, context) {\n const currentTime = context.currentTime;\n let furthestTime = 0;\n const steps = metadata.steps.map(step => {\n context.currentTime = currentTime;\n const innerAst = visitDslNode(this, step, context);\n furthestTime = Math.max(furthestTime, context.currentTime);\n return innerAst;\n });\n context.currentTime = furthestTime;\n return {\n type: 3 /* AnimationMetadataType.Group */,\n steps,\n options: normalizeAnimationOptions(metadata.options)\n };\n }\n visitAnimate(metadata, context) {\n const timingAst = constructTimingAst(metadata.timings, context.errors);\n context.currentAnimateTimings = timingAst;\n let styleAst;\n let styleMetadata = metadata.styles ? metadata.styles : style({});\n if (styleMetadata.type == 5 /* AnimationMetadataType.Keyframes */) {\n styleAst = this.visitKeyframes(styleMetadata, context);\n }\n else {\n let styleMetadata = metadata.styles;\n let isEmpty = false;\n if (!styleMetadata) {\n isEmpty = true;\n const newStyleData = {};\n if (timingAst.easing) {\n newStyleData['easing'] = timingAst.easing;\n }\n styleMetadata = style(newStyleData);\n }\n context.currentTime += timingAst.duration + timingAst.delay;\n const _styleAst = this.visitStyle(styleMetadata, context);\n _styleAst.isEmptyStep = isEmpty;\n styleAst = _styleAst;\n }\n context.currentAnimateTimings = null;\n return {\n type: 4 /* AnimationMetadataType.Animate */,\n timings: timingAst,\n style: styleAst,\n options: null\n };\n }\n visitStyle(metadata, context) {\n const ast = this._makeStyleAst(metadata, context);\n this._validateStyleAst(ast, context);\n return ast;\n }\n _makeStyleAst(metadata, context) {\n const styles = [];\n const metadataStyles = Array.isArray(metadata.styles) ? metadata.styles : [metadata.styles];\n for (let styleTuple of metadataStyles) {\n if (typeof styleTuple === 'string') {\n if (styleTuple === AUTO_STYLE) {\n styles.push(styleTuple);\n }\n else {\n context.errors.push(invalidStyleValue(styleTuple));\n }\n }\n else {\n styles.push(convertToMap(styleTuple));\n }\n }\n let containsDynamicStyles = false;\n let collectedEasing = null;\n styles.forEach(styleData => {\n if (styleData instanceof Map) {\n if (styleData.has('easing')) {\n collectedEasing = styleData.get('easing');\n styleData.delete('easing');\n }\n if (!containsDynamicStyles) {\n for (let value of styleData.values()) {\n if (value.toString().indexOf(SUBSTITUTION_EXPR_START) >= 0) {\n containsDynamicStyles = true;\n break;\n }\n }\n }\n }\n });\n return {\n type: 6 /* AnimationMetadataType.Style */,\n styles,\n easing: collectedEasing,\n offset: metadata.offset,\n containsDynamicStyles,\n options: null\n };\n }\n _validateStyleAst(ast, context) {\n const timings = context.currentAnimateTimings;\n let endTime = context.currentTime;\n let startTime = context.currentTime;\n if (timings && startTime > 0) {\n startTime -= timings.duration + timings.delay;\n }\n ast.styles.forEach(tuple => {\n if (typeof tuple === 'string')\n return;\n tuple.forEach((value, prop) => {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (!this._driver.validateStyleProperty(prop)) {\n tuple.delete(prop);\n context.unsupportedCSSPropertiesFound.add(prop);\n return;\n }\n }\n // This is guaranteed to have a defined Map at this querySelector location making it\n // safe to add the assertion here. It is set as a default empty map in prior methods.\n const collectedStyles = context.collectedStyles.get(context.currentQuerySelector);\n const collectedEntry = collectedStyles.get(prop);\n let updateCollectedStyle = true;\n if (collectedEntry) {\n if (startTime != endTime && startTime >= collectedEntry.startTime &&\n endTime <= collectedEntry.endTime) {\n context.errors.push(invalidParallelAnimation(prop, collectedEntry.startTime, collectedEntry.endTime, startTime, endTime));\n updateCollectedStyle = false;\n }\n // we always choose the smaller start time value since we\n // want to have a record of the entire animation window where\n // the style property is being animated in between\n startTime = collectedEntry.startTime;\n }\n if (updateCollectedStyle) {\n collectedStyles.set(prop, { startTime, endTime });\n }\n if (context.options) {\n validateStyleParams(value, context.options, context.errors);\n }\n });\n });\n }\n visitKeyframes(metadata, context) {\n const ast = { type: 5 /* AnimationMetadataType.Keyframes */, styles: [], options: null };\n if (!context.currentAnimateTimings) {\n context.errors.push(invalidKeyframes());\n return ast;\n }\n const MAX_KEYFRAME_OFFSET = 1;\n let totalKeyframesWithOffsets = 0;\n const offsets = [];\n let offsetsOutOfOrder = false;\n let keyframesOutOfRange = false;\n let previousOffset = 0;\n const keyframes = metadata.steps.map(styles => {\n const style = this._makeStyleAst(styles, context);\n let offsetVal = style.offset != null ? style.offset : consumeOffset(style.styles);\n let offset = 0;\n if (offsetVal != null) {\n totalKeyframesWithOffsets++;\n offset = style.offset = offsetVal;\n }\n keyframesOutOfRange = keyframesOutOfRange || offset < 0 || offset > 1;\n offsetsOutOfOrder = offsetsOutOfOrder || offset < previousOffset;\n previousOffset = offset;\n offsets.push(offset);\n return style;\n });\n if (keyframesOutOfRange) {\n context.errors.push(invalidOffset());\n }\n if (offsetsOutOfOrder) {\n context.errors.push(keyframeOffsetsOutOfOrder());\n }\n const length = metadata.steps.length;\n let generatedOffset = 0;\n if (totalKeyframesWithOffsets > 0 && totalKeyframesWithOffsets < length) {\n context.errors.push(keyframesMissingOffsets());\n }\n else if (totalKeyframesWithOffsets == 0) {\n generatedOffset = MAX_KEYFRAME_OFFSET / (length - 1);\n }\n const limit = length - 1;\n const currentTime = context.currentTime;\n const currentAnimateTimings = context.currentAnimateTimings;\n const animateDuration = currentAnimateTimings.duration;\n keyframes.forEach((kf, i) => {\n const offset = generatedOffset > 0 ? (i == limit ? 1 : (generatedOffset * i)) : offsets[i];\n const durationUpToThisFrame = offset * animateDuration;\n context.currentTime = currentTime + currentAnimateTimings.delay + durationUpToThisFrame;\n currentAnimateTimings.duration = durationUpToThisFrame;\n this._validateStyleAst(kf, context);\n kf.offset = offset;\n ast.styles.push(kf);\n });\n return ast;\n }\n visitReference(metadata, context) {\n return {\n type: 8 /* AnimationMetadataType.Reference */,\n animation: visitDslNode(this, normalizeAnimationEntry(metadata.animation), context),\n options: normalizeAnimationOptions(metadata.options)\n };\n }\n visitAnimateChild(metadata, context) {\n context.depCount++;\n return {\n type: 9 /* AnimationMetadataType.AnimateChild */,\n options: normalizeAnimationOptions(metadata.options)\n };\n }\n visitAnimateRef(metadata, context) {\n return {\n type: 10 /* AnimationMetadataType.AnimateRef */,\n animation: this.visitReference(metadata.animation, context),\n options: normalizeAnimationOptions(metadata.options)\n };\n }\n visitQuery(metadata, context) {\n const parentSelector = context.currentQuerySelector;\n const options = (metadata.options || {});\n context.queryCount++;\n context.currentQuery = metadata;\n const [selector, includeSelf] = normalizeSelector(metadata.selector);\n context.currentQuerySelector =\n parentSelector.length ? (parentSelector + ' ' + selector) : selector;\n getOrSetDefaultValue(context.collectedStyles, context.currentQuerySelector, new Map());\n const animation = visitDslNode(this, normalizeAnimationEntry(metadata.animation), context);\n context.currentQuery = null;\n context.currentQuerySelector = parentSelector;\n return {\n type: 11 /* AnimationMetadataType.Query */,\n selector,\n limit: options.limit || 0,\n optional: !!options.optional,\n includeSelf,\n animation,\n originalSelector: metadata.selector,\n options: normalizeAnimationOptions(metadata.options)\n };\n }\n visitStagger(metadata, context) {\n if (!context.currentQuery) {\n context.errors.push(invalidStagger());\n }\n const timings = metadata.timings === 'full' ?\n { duration: 0, delay: 0, easing: 'full' } :\n resolveTiming(metadata.timings, context.errors, true);\n return {\n type: 12 /* AnimationMetadataType.Stagger */,\n animation: visitDslNode(this, normalizeAnimationEntry(metadata.animation), context),\n timings,\n options: null\n };\n }\n}\nfunction normalizeSelector(selector) {\n const hasAmpersand = selector.split(/\\s*,\\s*/).find(token => token == SELF_TOKEN) ? true : false;\n if (hasAmpersand) {\n selector = selector.replace(SELF_TOKEN_REGEX, '');\n }\n // Note: the :enter and :leave aren't normalized here since those\n // selectors are filled in at runtime during timeline building\n selector = selector.replace(/@\\*/g, NG_TRIGGER_SELECTOR)\n .replace(/@\\w+/g, match => NG_TRIGGER_SELECTOR + '-' + match.slice(1))\n .replace(/:animating/g, NG_ANIMATING_SELECTOR);\n return [selector, hasAmpersand];\n}\nfunction normalizeParams(obj) {\n return obj ? copyObj(obj) : null;\n}\nclass AnimationAstBuilderContext {\n constructor(errors) {\n this.errors = errors;\n this.queryCount = 0;\n this.depCount = 0;\n this.currentTransition = null;\n this.currentQuery = null;\n this.currentQuerySelector = null;\n this.currentAnimateTimings = null;\n this.currentTime = 0;\n this.collectedStyles = new Map();\n this.options = null;\n this.unsupportedCSSPropertiesFound = new Set();\n }\n}\nfunction consumeOffset(styles) {\n if (typeof styles == 'string')\n return null;\n let offset = null;\n if (Array.isArray(styles)) {\n styles.forEach(styleTuple => {\n if (styleTuple instanceof Map && styleTuple.has('offset')) {\n const obj = styleTuple;\n offset = parseFloat(obj.get('offset'));\n obj.delete('offset');\n }\n });\n }\n else if (styles instanceof Map && styles.has('offset')) {\n const obj = styles;\n offset = parseFloat(obj.get('offset'));\n obj.delete('offset');\n }\n return offset;\n}\nfunction constructTimingAst(value, errors) {\n if (value.hasOwnProperty('duration')) {\n return value;\n }\n if (typeof value == 'number') {\n const duration = resolveTiming(value, errors).duration;\n return makeTimingAst(duration, 0, '');\n }\n const strValue = value;\n const isDynamic = strValue.split(/\\s+/).some(v => v.charAt(0) == '{' && v.charAt(1) == '{');\n if (isDynamic) {\n const ast = makeTimingAst(0, 0, '');\n ast.dynamic = true;\n ast.strValue = strValue;\n return ast;\n }\n const timings = resolveTiming(strValue, errors);\n return makeTimingAst(timings.duration, timings.delay, timings.easing);\n}\nfunction normalizeAnimationOptions(options) {\n if (options) {\n options = copyObj(options);\n if (options['params']) {\n options['params'] = normalizeParams(options['params']);\n }\n }\n else {\n options = {};\n }\n return options;\n}\nfunction makeTimingAst(duration, delay, easing) {\n return { duration, delay, easing };\n}\n\nfunction createTimelineInstruction(element, keyframes, preStyleProps, postStyleProps, duration, delay, easing = null, subTimeline = false) {\n return {\n type: 1 /* AnimationTransitionInstructionType.TimelineAnimation */,\n element,\n keyframes,\n preStyleProps,\n postStyleProps,\n duration,\n delay,\n totalTime: duration + delay,\n easing,\n subTimeline\n };\n}\n\nclass ElementInstructionMap {\n constructor() {\n this._map = new Map();\n }\n get(element) {\n return this._map.get(element) || [];\n }\n append(element, instructions) {\n let existingInstructions = this._map.get(element);\n if (!existingInstructions) {\n this._map.set(element, existingInstructions = []);\n }\n existingInstructions.push(...instructions);\n }\n has(element) {\n return this._map.has(element);\n }\n clear() {\n this._map.clear();\n }\n}\n\nconst ONE_FRAME_IN_MILLISECONDS = 1;\nconst ENTER_TOKEN = ':enter';\nconst ENTER_TOKEN_REGEX = new RegExp(ENTER_TOKEN, 'g');\nconst LEAVE_TOKEN = ':leave';\nconst LEAVE_TOKEN_REGEX = new RegExp(LEAVE_TOKEN, 'g');\n/*\n * The code within this file aims to generate web-animations-compatible keyframes from Angular's\n * animation DSL code.\n *\n * The code below will be converted from:\n *\n * ```\n * sequence([\n * style({ opacity: 0 }),\n * animate(1000, style({ opacity: 0 }))\n * ])\n * ```\n *\n * To:\n * ```\n * keyframes = [{ opacity: 0, offset: 0 }, { opacity: 1, offset: 1 }]\n * duration = 1000\n * delay = 0\n * easing = ''\n * ```\n *\n * For this operation to cover the combination of animation verbs (style, animate, group, etc...) a\n * combination of AST traversal and merge-sort-like algorithms are used.\n *\n * [AST Traversal]\n * Each of the animation verbs, when executed, will return an string-map object representing what\n * type of action it is (style, animate, group, etc...) and the data associated with it. This means\n * that when functional composition mix of these functions is evaluated (like in the example above)\n * then it will end up producing a tree of objects representing the animation itself.\n *\n * When this animation object tree is processed by the visitor code below it will visit each of the\n * verb statements within the visitor. And during each visit it will build the context of the\n * animation keyframes by interacting with the `TimelineBuilder`.\n *\n * [TimelineBuilder]\n * This class is responsible for tracking the styles and building a series of keyframe objects for a\n * timeline between a start and end time. The builder starts off with an initial timeline and each\n * time the AST comes across a `group()`, `keyframes()` or a combination of the two within a\n * `sequence()` then it will generate a sub timeline for each step as well as a new one after\n * they are complete.\n *\n * As the AST is traversed, the timing state on each of the timelines will be incremented. If a sub\n * timeline was created (based on one of the cases above) then the parent timeline will attempt to\n * merge the styles used within the sub timelines into itself (only with group() this will happen).\n * This happens with a merge operation (much like how the merge works in mergeSort) and it will only\n * copy the most recently used styles from the sub timelines into the parent timeline. This ensures\n * that if the styles are used later on in another phase of the animation then they will be the most\n * up-to-date values.\n *\n * [How Missing Styles Are Updated]\n * Each timeline has a `backFill` property which is responsible for filling in new styles into\n * already processed keyframes if a new style shows up later within the animation sequence.\n *\n * ```\n * sequence([\n * style({ width: 0 }),\n * animate(1000, style({ width: 100 })),\n * animate(1000, style({ width: 200 })),\n * animate(1000, style({ width: 300 }))\n * animate(1000, style({ width: 400, height: 400 })) // notice how `height` doesn't exist anywhere\n * else\n * ])\n * ```\n *\n * What is happening here is that the `height` value is added later in the sequence, but is missing\n * from all previous animation steps. Therefore when a keyframe is created it would also be missing\n * from all previous keyframes up until where it is first used. For the timeline keyframe generation\n * to properly fill in the style it will place the previous value (the value from the parent\n * timeline) or a default value of `*` into the backFill map. The `copyStyles` method in util.ts\n * handles propagating that backfill map to the styles object.\n *\n * When a sub-timeline is created it will have its own backFill property. This is done so that\n * styles present within the sub-timeline do not accidentally seep into the previous/future timeline\n * keyframes\n *\n * [Validation]\n * The code in this file is not responsible for validation. That functionality happens with within\n * the `AnimationValidatorVisitor` code.\n */\nfunction buildAnimationTimelines(driver, rootElement, ast, enterClassName, leaveClassName, startingStyles = new Map(), finalStyles = new Map(), options, subInstructions, errors = []) {\n return new AnimationTimelineBuilderVisitor().buildKeyframes(driver, rootElement, ast, enterClassName, leaveClassName, startingStyles, finalStyles, options, subInstructions, errors);\n}\nclass AnimationTimelineBuilderVisitor {\n buildKeyframes(driver, rootElement, ast, enterClassName, leaveClassName, startingStyles, finalStyles, options, subInstructions, errors = []) {\n subInstructions = subInstructions || new ElementInstructionMap();\n const context = new AnimationTimelineContext(driver, rootElement, subInstructions, enterClassName, leaveClassName, errors, []);\n context.options = options;\n const delay = options.delay ? resolveTimingValue(options.delay) : 0;\n context.currentTimeline.delayNextStep(delay);\n context.currentTimeline.setStyles([startingStyles], null, context.errors, options);\n visitDslNode(this, ast, context);\n // this checks to see if an actual animation happened\n const timelines = context.timelines.filter(timeline => timeline.containsAnimation());\n // note: we just want to apply the final styles for the rootElement, so we do not\n // just apply the styles to the last timeline but the last timeline which\n // element is the root one (basically `*`-styles are replaced with the actual\n // state style values only for the root element)\n if (timelines.length && finalStyles.size) {\n let lastRootTimeline;\n for (let i = timelines.length - 1; i >= 0; i--) {\n const timeline = timelines[i];\n if (timeline.element === rootElement) {\n lastRootTimeline = timeline;\n break;\n }\n }\n if (lastRootTimeline && !lastRootTimeline.allowOnlyTimelineStyles()) {\n lastRootTimeline.setStyles([finalStyles], null, context.errors, options);\n }\n }\n return timelines.length ?\n timelines.map(timeline => timeline.buildKeyframes()) :\n [createTimelineInstruction(rootElement, [], [], [], 0, delay, '', false)];\n }\n visitTrigger(ast, context) {\n // these values are not visited in this AST\n }\n visitState(ast, context) {\n // these values are not visited in this AST\n }\n visitTransition(ast, context) {\n // these values are not visited in this AST\n }\n visitAnimateChild(ast, context) {\n const elementInstructions = context.subInstructions.get(context.element);\n if (elementInstructions) {\n const innerContext = context.createSubContext(ast.options);\n const startTime = context.currentTimeline.currentTime;\n const endTime = this._visitSubInstructions(elementInstructions, innerContext, innerContext.options);\n if (startTime != endTime) {\n // we do this on the upper context because we created a sub context for\n // the sub child animations\n context.transformIntoNewTimeline(endTime);\n }\n }\n context.previousNode = ast;\n }\n visitAnimateRef(ast, context) {\n const innerContext = context.createSubContext(ast.options);\n innerContext.transformIntoNewTimeline();\n this._applyAnimationRefDelays([ast.options, ast.animation.options], context, innerContext);\n this.visitReference(ast.animation, innerContext);\n context.transformIntoNewTimeline(innerContext.currentTimeline.currentTime);\n context.previousNode = ast;\n }\n _applyAnimationRefDelays(animationsRefsOptions, context, innerContext) {\n for (const animationRefOptions of animationsRefsOptions) {\n const animationDelay = animationRefOptions?.delay;\n if (animationDelay) {\n const animationDelayValue = typeof animationDelay === 'number' ?\n animationDelay :\n resolveTimingValue(interpolateParams(animationDelay, animationRefOptions?.params ?? {}, context.errors));\n innerContext.delayNextStep(animationDelayValue);\n }\n }\n }\n _visitSubInstructions(instructions, context, options) {\n const startTime = context.currentTimeline.currentTime;\n let furthestTime = startTime;\n // this is a special-case for when a user wants to skip a sub\n // animation from being fired entirely.\n const duration = options.duration != null ? resolveTimingValue(options.duration) : null;\n const delay = options.delay != null ? resolveTimingValue(options.delay) : null;\n if (duration !== 0) {\n instructions.forEach(instruction => {\n const instructionTimings = context.appendInstructionToTimeline(instruction, duration, delay);\n furthestTime =\n Math.max(furthestTime, instructionTimings.duration + instructionTimings.delay);\n });\n }\n return furthestTime;\n }\n visitReference(ast, context) {\n context.updateOptions(ast.options, true);\n visitDslNode(this, ast.animation, context);\n context.previousNode = ast;\n }\n visitSequence(ast, context) {\n const subContextCount = context.subContextCount;\n let ctx = context;\n const options = ast.options;\n if (options && (options.params || options.delay)) {\n ctx = context.createSubContext(options);\n ctx.transformIntoNewTimeline();\n if (options.delay != null) {\n if (ctx.previousNode.type == 6 /* AnimationMetadataType.Style */) {\n ctx.currentTimeline.snapshotCurrentStyles();\n ctx.previousNode = DEFAULT_NOOP_PREVIOUS_NODE;\n }\n const delay = resolveTimingValue(options.delay);\n ctx.delayNextStep(delay);\n }\n }\n if (ast.steps.length) {\n ast.steps.forEach(s => visitDslNode(this, s, ctx));\n // this is here just in case the inner steps only contain or end with a style() call\n ctx.currentTimeline.applyStylesToKeyframe();\n // this means that some animation function within the sequence\n // ended up creating a sub timeline (which means the current\n // timeline cannot overlap with the contents of the sequence)\n if (ctx.subContextCount > subContextCount) {\n ctx.transformIntoNewTimeline();\n }\n }\n context.previousNode = ast;\n }\n visitGroup(ast, context) {\n const innerTimelines = [];\n let furthestTime = context.currentTimeline.currentTime;\n const delay = ast.options && ast.options.delay ? resolveTimingValue(ast.options.delay) : 0;\n ast.steps.forEach(s => {\n const innerContext = context.createSubContext(ast.options);\n if (delay) {\n innerContext.delayNextStep(delay);\n }\n visitDslNode(this, s, innerContext);\n furthestTime = Math.max(furthestTime, innerContext.currentTimeline.currentTime);\n innerTimelines.push(innerContext.currentTimeline);\n });\n // this operation is run after the AST loop because otherwise\n // if the parent timeline's collected styles were updated then\n // it would pass in invalid data into the new-to-be forked items\n innerTimelines.forEach(timeline => context.currentTimeline.mergeTimelineCollectedStyles(timeline));\n context.transformIntoNewTimeline(furthestTime);\n context.previousNode = ast;\n }\n _visitTiming(ast, context) {\n if (ast.dynamic) {\n const strValue = ast.strValue;\n const timingValue = context.params ? interpolateParams(strValue, context.params, context.errors) : strValue;\n return resolveTiming(timingValue, context.errors);\n }\n else {\n return { duration: ast.duration, delay: ast.delay, easing: ast.easing };\n }\n }\n visitAnimate(ast, context) {\n const timings = context.currentAnimateTimings = this._visitTiming(ast.timings, context);\n const timeline = context.currentTimeline;\n if (timings.delay) {\n context.incrementTime(timings.delay);\n timeline.snapshotCurrentStyles();\n }\n const style = ast.style;\n if (style.type == 5 /* AnimationMetadataType.Keyframes */) {\n this.visitKeyframes(style, context);\n }\n else {\n context.incrementTime(timings.duration);\n this.visitStyle(style, context);\n timeline.applyStylesToKeyframe();\n }\n context.currentAnimateTimings = null;\n context.previousNode = ast;\n }\n visitStyle(ast, context) {\n const timeline = context.currentTimeline;\n const timings = context.currentAnimateTimings;\n // this is a special case for when a style() call\n // directly follows an animate() call (but not inside of an animate() call)\n if (!timings && timeline.hasCurrentStyleProperties()) {\n timeline.forwardFrame();\n }\n const easing = (timings && timings.easing) || ast.easing;\n if (ast.isEmptyStep) {\n timeline.applyEmptyStep(easing);\n }\n else {\n timeline.setStyles(ast.styles, easing, context.errors, context.options);\n }\n context.previousNode = ast;\n }\n visitKeyframes(ast, context) {\n const currentAnimateTimings = context.currentAnimateTimings;\n const startTime = (context.currentTimeline).duration;\n const duration = currentAnimateTimings.duration;\n const innerContext = context.createSubContext();\n const innerTimeline = innerContext.currentTimeline;\n innerTimeline.easing = currentAnimateTimings.easing;\n ast.styles.forEach(step => {\n const offset = step.offset || 0;\n innerTimeline.forwardTime(offset * duration);\n innerTimeline.setStyles(step.styles, step.easing, context.errors, context.options);\n innerTimeline.applyStylesToKeyframe();\n });\n // this will ensure that the parent timeline gets all the styles from\n // the child even if the new timeline below is not used\n context.currentTimeline.mergeTimelineCollectedStyles(innerTimeline);\n // we do this because the window between this timeline and the sub timeline\n // should ensure that the styles within are exactly the same as they were before\n context.transformIntoNewTimeline(startTime + duration);\n context.previousNode = ast;\n }\n visitQuery(ast, context) {\n // in the event that the first step before this is a style step we need\n // to ensure the styles are applied before the children are animated\n const startTime = context.currentTimeline.currentTime;\n const options = (ast.options || {});\n const delay = options.delay ? resolveTimingValue(options.delay) : 0;\n if (delay &&\n (context.previousNode.type === 6 /* AnimationMetadataType.Style */ ||\n (startTime == 0 && context.currentTimeline.hasCurrentStyleProperties()))) {\n context.currentTimeline.snapshotCurrentStyles();\n context.previousNode = DEFAULT_NOOP_PREVIOUS_NODE;\n }\n let furthestTime = startTime;\n const elms = context.invokeQuery(ast.selector, ast.originalSelector, ast.limit, ast.includeSelf, options.optional ? true : false, context.errors);\n context.currentQueryTotal = elms.length;\n let sameElementTimeline = null;\n elms.forEach((element, i) => {\n context.currentQueryIndex = i;\n const innerContext = context.createSubContext(ast.options, element);\n if (delay) {\n innerContext.delayNextStep(delay);\n }\n if (element === context.element) {\n sameElementTimeline = innerContext.currentTimeline;\n }\n visitDslNode(this, ast.animation, innerContext);\n // this is here just incase the inner steps only contain or end\n // with a style() call (which is here to signal that this is a preparatory\n // call to style an element before it is animated again)\n innerContext.currentTimeline.applyStylesToKeyframe();\n const endTime = innerContext.currentTimeline.currentTime;\n furthestTime = Math.max(furthestTime, endTime);\n });\n context.currentQueryIndex = 0;\n context.currentQueryTotal = 0;\n context.transformIntoNewTimeline(furthestTime);\n if (sameElementTimeline) {\n context.currentTimeline.mergeTimelineCollectedStyles(sameElementTimeline);\n context.currentTimeline.snapshotCurrentStyles();\n }\n context.previousNode = ast;\n }\n visitStagger(ast, context) {\n const parentContext = context.parentContext;\n const tl = context.currentTimeline;\n const timings = ast.timings;\n const duration = Math.abs(timings.duration);\n const maxTime = duration * (context.currentQueryTotal - 1);\n let delay = duration * context.currentQueryIndex;\n let staggerTransformer = timings.duration < 0 ? 'reverse' : timings.easing;\n switch (staggerTransformer) {\n case 'reverse':\n delay = maxTime - delay;\n break;\n case 'full':\n delay = parentContext.currentStaggerTime;\n break;\n }\n const timeline = context.currentTimeline;\n if (delay) {\n timeline.delayNextStep(delay);\n }\n const startingTime = timeline.currentTime;\n visitDslNode(this, ast.animation, context);\n context.previousNode = ast;\n // time = duration + delay\n // the reason why this computation is so complex is because\n // the inner timeline may either have a delay value or a stretched\n // keyframe depending on if a subtimeline is not used or is used.\n parentContext.currentStaggerTime =\n (tl.currentTime - startingTime) + (tl.startTime - parentContext.currentTimeline.startTime);\n }\n}\nconst DEFAULT_NOOP_PREVIOUS_NODE = {};\nclass AnimationTimelineContext {\n constructor(_driver, element, subInstructions, _enterClassName, _leaveClassName, errors, timelines, initialTimeline) {\n this._driver = _driver;\n this.element = element;\n this.subInstructions = subInstructions;\n this._enterClassName = _enterClassName;\n this._leaveClassName = _leaveClassName;\n this.errors = errors;\n this.timelines = timelines;\n this.parentContext = null;\n this.currentAnimateTimings = null;\n this.previousNode = DEFAULT_NOOP_PREVIOUS_NODE;\n this.subContextCount = 0;\n this.options = {};\n this.currentQueryIndex = 0;\n this.currentQueryTotal = 0;\n this.currentStaggerTime = 0;\n this.currentTimeline = initialTimeline || new TimelineBuilder(this._driver, element, 0);\n timelines.push(this.currentTimeline);\n }\n get params() {\n return this.options.params;\n }\n updateOptions(options, skipIfExists) {\n if (!options)\n return;\n const newOptions = options;\n let optionsToUpdate = this.options;\n // NOTE: this will get patched up when other animation methods support duration overrides\n if (newOptions.duration != null) {\n optionsToUpdate.duration = resolveTimingValue(newOptions.duration);\n }\n if (newOptions.delay != null) {\n optionsToUpdate.delay = resolveTimingValue(newOptions.delay);\n }\n const newParams = newOptions.params;\n if (newParams) {\n let paramsToUpdate = optionsToUpdate.params;\n if (!paramsToUpdate) {\n paramsToUpdate = this.options.params = {};\n }\n Object.keys(newParams).forEach(name => {\n if (!skipIfExists || !paramsToUpdate.hasOwnProperty(name)) {\n paramsToUpdate[name] = interpolateParams(newParams[name], paramsToUpdate, this.errors);\n }\n });\n }\n }\n _copyOptions() {\n const options = {};\n if (this.options) {\n const oldParams = this.options.params;\n if (oldParams) {\n const params = options['params'] = {};\n Object.keys(oldParams).forEach(name => {\n params[name] = oldParams[name];\n });\n }\n }\n return options;\n }\n createSubContext(options = null, element, newTime) {\n const target = element || this.element;\n const context = new AnimationTimelineContext(this._driver, target, this.subInstructions, this._enterClassName, this._leaveClassName, this.errors, this.timelines, this.currentTimeline.fork(target, newTime || 0));\n context.previousNode = this.previousNode;\n context.currentAnimateTimings = this.currentAnimateTimings;\n context.options = this._copyOptions();\n context.updateOptions(options);\n context.currentQueryIndex = this.currentQueryIndex;\n context.currentQueryTotal = this.currentQueryTotal;\n context.parentContext = this;\n this.subContextCount++;\n return context;\n }\n transformIntoNewTimeline(newTime) {\n this.previousNode = DEFAULT_NOOP_PREVIOUS_NODE;\n this.currentTimeline = this.currentTimeline.fork(this.element, newTime);\n this.timelines.push(this.currentTimeline);\n return this.currentTimeline;\n }\n appendInstructionToTimeline(instruction, duration, delay) {\n const updatedTimings = {\n duration: duration != null ? duration : instruction.duration,\n delay: this.currentTimeline.currentTime + (delay != null ? delay : 0) + instruction.delay,\n easing: ''\n };\n const builder = new SubTimelineBuilder(this._driver, instruction.element, instruction.keyframes, instruction.preStyleProps, instruction.postStyleProps, updatedTimings, instruction.stretchStartingKeyframe);\n this.timelines.push(builder);\n return updatedTimings;\n }\n incrementTime(time) {\n this.currentTimeline.forwardTime(this.currentTimeline.duration + time);\n }\n delayNextStep(delay) {\n // negative delays are not yet supported\n if (delay > 0) {\n this.currentTimeline.delayNextStep(delay);\n }\n }\n invokeQuery(selector, originalSelector, limit, includeSelf, optional, errors) {\n let results = [];\n if (includeSelf) {\n results.push(this.element);\n }\n if (selector.length > 0) { // only if :self is used then the selector can be empty\n selector = selector.replace(ENTER_TOKEN_REGEX, '.' + this._enterClassName);\n selector = selector.replace(LEAVE_TOKEN_REGEX, '.' + this._leaveClassName);\n const multi = limit != 1;\n let elements = this._driver.query(this.element, selector, multi);\n if (limit !== 0) {\n elements = limit < 0 ? elements.slice(elements.length + limit, elements.length) :\n elements.slice(0, limit);\n }\n results.push(...elements);\n }\n if (!optional && results.length == 0) {\n errors.push(invalidQuery(originalSelector));\n }\n return results;\n }\n}\nclass TimelineBuilder {\n constructor(_driver, element, startTime, _elementTimelineStylesLookup) {\n this._driver = _driver;\n this.element = element;\n this.startTime = startTime;\n this._elementTimelineStylesLookup = _elementTimelineStylesLookup;\n this.duration = 0;\n this.easing = null;\n this._previousKeyframe = new Map();\n this._currentKeyframe = new Map();\n this._keyframes = new Map();\n this._styleSummary = new Map();\n this._localTimelineStyles = new Map();\n this._pendingStyles = new Map();\n this._backFill = new Map();\n this._currentEmptyStepKeyframe = null;\n if (!this._elementTimelineStylesLookup) {\n this._elementTimelineStylesLookup = new Map();\n }\n this._globalTimelineStyles = this._elementTimelineStylesLookup.get(element);\n if (!this._globalTimelineStyles) {\n this._globalTimelineStyles = this._localTimelineStyles;\n this._elementTimelineStylesLookup.set(element, this._localTimelineStyles);\n }\n this._loadKeyframe();\n }\n containsAnimation() {\n switch (this._keyframes.size) {\n case 0:\n return false;\n case 1:\n return this.hasCurrentStyleProperties();\n default:\n return true;\n }\n }\n hasCurrentStyleProperties() {\n return this._currentKeyframe.size > 0;\n }\n get currentTime() {\n return this.startTime + this.duration;\n }\n delayNextStep(delay) {\n // in the event that a style() step is placed right before a stagger()\n // and that style() step is the very first style() value in the animation\n // then we need to make a copy of the keyframe [0, copy, 1] so that the delay\n // properly applies the style() values to work with the stagger...\n const hasPreStyleStep = this._keyframes.size === 1 && this._pendingStyles.size;\n if (this.duration || hasPreStyleStep) {\n this.forwardTime(this.currentTime + delay);\n if (hasPreStyleStep) {\n this.snapshotCurrentStyles();\n }\n }\n else {\n this.startTime += delay;\n }\n }\n fork(element, currentTime) {\n this.applyStylesToKeyframe();\n return new TimelineBuilder(this._driver, element, currentTime || this.currentTime, this._elementTimelineStylesLookup);\n }\n _loadKeyframe() {\n if (this._currentKeyframe) {\n this._previousKeyframe = this._currentKeyframe;\n }\n this._currentKeyframe = this._keyframes.get(this.duration);\n if (!this._currentKeyframe) {\n this._currentKeyframe = new Map();\n this._keyframes.set(this.duration, this._currentKeyframe);\n }\n }\n forwardFrame() {\n this.duration += ONE_FRAME_IN_MILLISECONDS;\n this._loadKeyframe();\n }\n forwardTime(time) {\n this.applyStylesToKeyframe();\n this.duration = time;\n this._loadKeyframe();\n }\n _updateStyle(prop, value) {\n this._localTimelineStyles.set(prop, value);\n this._globalTimelineStyles.set(prop, value);\n this._styleSummary.set(prop, { time: this.currentTime, value });\n }\n allowOnlyTimelineStyles() {\n return this._currentEmptyStepKeyframe !== this._currentKeyframe;\n }\n applyEmptyStep(easing) {\n if (easing) {\n this._previousKeyframe.set('easing', easing);\n }\n // special case for animate(duration):\n // all missing styles are filled with a `*` value then\n // if any destination styles are filled in later on the same\n // keyframe then they will override the overridden styles\n // We use `_globalTimelineStyles` here because there may be\n // styles in previous keyframes that are not present in this timeline\n for (let [prop, value] of this._globalTimelineStyles) {\n this._backFill.set(prop, value || AUTO_STYLE);\n this._currentKeyframe.set(prop, AUTO_STYLE);\n }\n this._currentEmptyStepKeyframe = this._currentKeyframe;\n }\n setStyles(input, easing, errors, options) {\n if (easing) {\n this._previousKeyframe.set('easing', easing);\n }\n const params = (options && options.params) || {};\n const styles = flattenStyles(input, this._globalTimelineStyles);\n for (let [prop, value] of styles) {\n const val = interpolateParams(value, params, errors);\n this._pendingStyles.set(prop, val);\n if (!this._localTimelineStyles.has(prop)) {\n this._backFill.set(prop, this._globalTimelineStyles.get(prop) ?? AUTO_STYLE);\n }\n this._updateStyle(prop, val);\n }\n }\n applyStylesToKeyframe() {\n if (this._pendingStyles.size == 0)\n return;\n this._pendingStyles.forEach((val, prop) => {\n this._currentKeyframe.set(prop, val);\n });\n this._pendingStyles.clear();\n this._localTimelineStyles.forEach((val, prop) => {\n if (!this._currentKeyframe.has(prop)) {\n this._currentKeyframe.set(prop, val);\n }\n });\n }\n snapshotCurrentStyles() {\n for (let [prop, val] of this._localTimelineStyles) {\n this._pendingStyles.set(prop, val);\n this._updateStyle(prop, val);\n }\n }\n getFinalKeyframe() {\n return this._keyframes.get(this.duration);\n }\n get properties() {\n const properties = [];\n for (let prop in this._currentKeyframe) {\n properties.push(prop);\n }\n return properties;\n }\n mergeTimelineCollectedStyles(timeline) {\n timeline._styleSummary.forEach((details1, prop) => {\n const details0 = this._styleSummary.get(prop);\n if (!details0 || details1.time > details0.time) {\n this._updateStyle(prop, details1.value);\n }\n });\n }\n buildKeyframes() {\n this.applyStylesToKeyframe();\n const preStyleProps = new Set();\n const postStyleProps = new Set();\n const isEmpty = this._keyframes.size === 1 && this.duration === 0;\n let finalKeyframes = [];\n this._keyframes.forEach((keyframe, time) => {\n const finalKeyframe = copyStyles(keyframe, new Map(), this._backFill);\n finalKeyframe.forEach((value, prop) => {\n if (value === ɵPRE_STYLE) {\n preStyleProps.add(prop);\n }\n else if (value === AUTO_STYLE) {\n postStyleProps.add(prop);\n }\n });\n if (!isEmpty) {\n finalKeyframe.set('offset', time / this.duration);\n }\n finalKeyframes.push(finalKeyframe);\n });\n const preProps = preStyleProps.size ? iteratorToArray(preStyleProps.values()) : [];\n const postProps = postStyleProps.size ? iteratorToArray(postStyleProps.values()) : [];\n // special case for a 0-second animation (which is designed just to place styles onscreen)\n if (isEmpty) {\n const kf0 = finalKeyframes[0];\n const kf1 = new Map(kf0);\n kf0.set('offset', 0);\n kf1.set('offset', 1);\n finalKeyframes = [kf0, kf1];\n }\n return createTimelineInstruction(this.element, finalKeyframes, preProps, postProps, this.duration, this.startTime, this.easing, false);\n }\n}\nclass SubTimelineBuilder extends TimelineBuilder {\n constructor(driver, element, keyframes, preStyleProps, postStyleProps, timings, _stretchStartingKeyframe = false) {\n super(driver, element, timings.delay);\n this.keyframes = keyframes;\n this.preStyleProps = preStyleProps;\n this.postStyleProps = postStyleProps;\n this._stretchStartingKeyframe = _stretchStartingKeyframe;\n this.timings = { duration: timings.duration, delay: timings.delay, easing: timings.easing };\n }\n containsAnimation() {\n return this.keyframes.length > 1;\n }\n buildKeyframes() {\n let keyframes = this.keyframes;\n let { delay, duration, easing } = this.timings;\n if (this._stretchStartingKeyframe && delay) {\n const newKeyframes = [];\n const totalTime = duration + delay;\n const startingGap = delay / totalTime;\n // the original starting keyframe now starts once the delay is done\n const newFirstKeyframe = copyStyles(keyframes[0]);\n newFirstKeyframe.set('offset', 0);\n newKeyframes.push(newFirstKeyframe);\n const oldFirstKeyframe = copyStyles(keyframes[0]);\n oldFirstKeyframe.set('offset', roundOffset(startingGap));\n newKeyframes.push(oldFirstKeyframe);\n /*\n When the keyframe is stretched then it means that the delay before the animation\n starts is gone. Instead the first keyframe is placed at the start of the animation\n and it is then copied to where it starts when the original delay is over. This basically\n means nothing animates during that delay, but the styles are still rendered. For this\n to work the original offset values that exist in the original keyframes must be \"warped\"\n so that they can take the new keyframe + delay into account.\n \n delay=1000, duration=1000, keyframes = 0 .5 1\n \n turns into\n \n delay=0, duration=2000, keyframes = 0 .33 .66 1\n */\n // offsets between 1 ... n -1 are all warped by the keyframe stretch\n const limit = keyframes.length - 1;\n for (let i = 1; i <= limit; i++) {\n let kf = copyStyles(keyframes[i]);\n const oldOffset = kf.get('offset');\n const timeAtKeyframe = delay + oldOffset * duration;\n kf.set('offset', roundOffset(timeAtKeyframe / totalTime));\n newKeyframes.push(kf);\n }\n // the new starting keyframe should be added at the start\n duration = totalTime;\n delay = 0;\n easing = '';\n keyframes = newKeyframes;\n }\n return createTimelineInstruction(this.element, keyframes, this.preStyleProps, this.postStyleProps, duration, delay, easing, true);\n }\n}\nfunction roundOffset(offset, decimalPoints = 3) {\n const mult = Math.pow(10, decimalPoints - 1);\n return Math.round(offset * mult) / mult;\n}\nfunction flattenStyles(input, allStyles) {\n const styles = new Map();\n let allProperties;\n input.forEach(token => {\n if (token === '*') {\n allProperties = allProperties || allStyles.keys();\n for (let prop of allProperties) {\n styles.set(prop, AUTO_STYLE);\n }\n }\n else {\n copyStyles(token, styles);\n }\n });\n return styles;\n}\n\nclass Animation {\n constructor(_driver, input) {\n this._driver = _driver;\n const errors = [];\n const warnings = [];\n const ast = buildAnimationAst(_driver, input, errors, warnings);\n if (errors.length) {\n throw validationFailed(errors);\n }\n if (warnings.length) {\n warnValidation(warnings);\n }\n this._animationAst = ast;\n }\n buildTimelines(element, startingStyles, destinationStyles, options, subInstructions) {\n const start = Array.isArray(startingStyles) ? normalizeStyles(startingStyles) :\n startingStyles;\n const dest = Array.isArray(destinationStyles) ? normalizeStyles(destinationStyles) :\n destinationStyles;\n const errors = [];\n subInstructions = subInstructions || new ElementInstructionMap();\n const result = buildAnimationTimelines(this._driver, element, this._animationAst, ENTER_CLASSNAME, LEAVE_CLASSNAME, start, dest, options, subInstructions, errors);\n if (errors.length) {\n throw buildingFailed(errors);\n }\n return result;\n }\n}\n\n/**\n * @publicApi\n */\nclass AnimationStyleNormalizer {\n}\n/**\n * @publicApi\n */\nclass NoopAnimationStyleNormalizer {\n normalizePropertyName(propertyName, errors) {\n return propertyName;\n }\n normalizeStyleValue(userProvidedProperty, normalizedProperty, value, errors) {\n return value;\n }\n}\n\nconst DIMENSIONAL_PROP_SET = new Set([\n 'width',\n 'height',\n 'minWidth',\n 'minHeight',\n 'maxWidth',\n 'maxHeight',\n 'left',\n 'top',\n 'bottom',\n 'right',\n 'fontSize',\n 'outlineWidth',\n 'outlineOffset',\n 'paddingTop',\n 'paddingLeft',\n 'paddingBottom',\n 'paddingRight',\n 'marginTop',\n 'marginLeft',\n 'marginBottom',\n 'marginRight',\n 'borderRadius',\n 'borderWidth',\n 'borderTopWidth',\n 'borderLeftWidth',\n 'borderRightWidth',\n 'borderBottomWidth',\n 'textIndent',\n 'perspective'\n]);\nclass WebAnimationsStyleNormalizer extends AnimationStyleNormalizer {\n normalizePropertyName(propertyName, errors) {\n return dashCaseToCamelCase(propertyName);\n }\n normalizeStyleValue(userProvidedProperty, normalizedProperty, value, errors) {\n let unit = '';\n const strVal = value.toString().trim();\n if (DIMENSIONAL_PROP_SET.has(normalizedProperty) && value !== 0 && value !== '0') {\n if (typeof value === 'number') {\n unit = 'px';\n }\n else {\n const valAndSuffixMatch = value.match(/^[+-]?[\\d\\.]+([a-z]*)$/);\n if (valAndSuffixMatch && valAndSuffixMatch[1].length == 0) {\n errors.push(invalidCssUnitValue(userProvidedProperty, value));\n }\n }\n }\n return strVal + unit;\n }\n}\n\nfunction createTransitionInstruction(element, triggerName, fromState, toState, isRemovalTransition, fromStyles, toStyles, timelines, queriedElements, preStyleProps, postStyleProps, totalTime, errors) {\n return {\n type: 0 /* AnimationTransitionInstructionType.TransitionAnimation */,\n element,\n triggerName,\n isRemovalTransition,\n fromState,\n fromStyles,\n toState,\n toStyles,\n timelines,\n queriedElements,\n preStyleProps,\n postStyleProps,\n totalTime,\n errors\n };\n}\n\nconst EMPTY_OBJECT = {};\nclass AnimationTransitionFactory {\n constructor(_triggerName, ast, _stateStyles) {\n this._triggerName = _triggerName;\n this.ast = ast;\n this._stateStyles = _stateStyles;\n }\n match(currentState, nextState, element, params) {\n return oneOrMoreTransitionsMatch(this.ast.matchers, currentState, nextState, element, params);\n }\n buildStyles(stateName, params, errors) {\n let styler = this._stateStyles.get('*');\n if (stateName !== undefined) {\n styler = this._stateStyles.get(stateName?.toString()) || styler;\n }\n return styler ? styler.buildStyles(params, errors) : new Map();\n }\n build(driver, element, currentState, nextState, enterClassName, leaveClassName, currentOptions, nextOptions, subInstructions, skipAstBuild) {\n const errors = [];\n const transitionAnimationParams = this.ast.options && this.ast.options.params || EMPTY_OBJECT;\n const currentAnimationParams = currentOptions && currentOptions.params || EMPTY_OBJECT;\n const currentStateStyles = this.buildStyles(currentState, currentAnimationParams, errors);\n const nextAnimationParams = nextOptions && nextOptions.params || EMPTY_OBJECT;\n const nextStateStyles = this.buildStyles(nextState, nextAnimationParams, errors);\n const queriedElements = new Set();\n const preStyleMap = new Map();\n const postStyleMap = new Map();\n const isRemoval = nextState === 'void';\n const animationOptions = {\n params: applyParamDefaults(nextAnimationParams, transitionAnimationParams),\n delay: this.ast.options?.delay,\n };\n const timelines = skipAstBuild ?\n [] :\n buildAnimationTimelines(driver, element, this.ast.animation, enterClassName, leaveClassName, currentStateStyles, nextStateStyles, animationOptions, subInstructions, errors);\n let totalTime = 0;\n timelines.forEach(tl => {\n totalTime = Math.max(tl.duration + tl.delay, totalTime);\n });\n if (errors.length) {\n return createTransitionInstruction(element, this._triggerName, currentState, nextState, isRemoval, currentStateStyles, nextStateStyles, [], [], preStyleMap, postStyleMap, totalTime, errors);\n }\n timelines.forEach(tl => {\n const elm = tl.element;\n const preProps = getOrSetDefaultValue(preStyleMap, elm, new Set());\n tl.preStyleProps.forEach(prop => preProps.add(prop));\n const postProps = getOrSetDefaultValue(postStyleMap, elm, new Set());\n tl.postStyleProps.forEach(prop => postProps.add(prop));\n if (elm !== element) {\n queriedElements.add(elm);\n }\n });\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n checkNonAnimatableInTimelines(timelines, this._triggerName, driver);\n }\n const queriedElementsList = iteratorToArray(queriedElements.values());\n return createTransitionInstruction(element, this._triggerName, currentState, nextState, isRemoval, currentStateStyles, nextStateStyles, timelines, queriedElementsList, preStyleMap, postStyleMap, totalTime);\n }\n}\n/**\n * Checks inside a set of timelines if they try to animate a css property which is not considered\n * animatable, in that case it prints a warning on the console.\n * Besides that the function doesn't have any other effect.\n *\n * Note: this check is done here after the timelines are built instead of doing on a lower level so\n * that we can make sure that the warning appears only once per instruction (we can aggregate here\n * all the issues instead of finding them separately).\n *\n * @param timelines The built timelines for the current instruction.\n * @param triggerName The name of the trigger for the current instruction.\n * @param driver Animation driver used to perform the check.\n *\n */\nfunction checkNonAnimatableInTimelines(timelines, triggerName, driver) {\n if (!driver.validateAnimatableStyleProperty) {\n return;\n }\n const allowedNonAnimatableProps = new Set([\n // 'easing' is a utility/synthetic prop we use to represent\n // easing functions, it represents a property of the animation\n // which is not animatable but different values can be used\n // in different steps\n 'easing'\n ]);\n const invalidNonAnimatableProps = new Set();\n timelines.forEach(({ keyframes }) => {\n const nonAnimatablePropsInitialValues = new Map();\n keyframes.forEach(keyframe => {\n const entriesToCheck = Array.from(keyframe.entries()).filter(([prop]) => !allowedNonAnimatableProps.has(prop));\n for (const [prop, value] of entriesToCheck) {\n if (!driver.validateAnimatableStyleProperty(prop)) {\n if (nonAnimatablePropsInitialValues.has(prop) && !invalidNonAnimatableProps.has(prop)) {\n const propInitialValue = nonAnimatablePropsInitialValues.get(prop);\n if (propInitialValue !== value) {\n invalidNonAnimatableProps.add(prop);\n }\n }\n else {\n nonAnimatablePropsInitialValues.set(prop, value);\n }\n }\n }\n });\n });\n if (invalidNonAnimatableProps.size > 0) {\n console.warn(`Warning: The animation trigger \"${triggerName}\" is attempting to animate the following` +\n ' not animatable properties: ' + Array.from(invalidNonAnimatableProps).join(', ') + '\\n' +\n '(to check the list of all animatable properties visit https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_animated_properties)');\n }\n}\nfunction oneOrMoreTransitionsMatch(matchFns, currentState, nextState, element, params) {\n return matchFns.some(fn => fn(currentState, nextState, element, params));\n}\nfunction applyParamDefaults(userParams, defaults) {\n const result = copyObj(defaults);\n for (const key in userParams) {\n if (userParams.hasOwnProperty(key) && userParams[key] != null) {\n result[key] = userParams[key];\n }\n }\n return result;\n}\nclass AnimationStateStyles {\n constructor(styles, defaultParams, normalizer) {\n this.styles = styles;\n this.defaultParams = defaultParams;\n this.normalizer = normalizer;\n }\n buildStyles(params, errors) {\n const finalStyles = new Map();\n const combinedParams = copyObj(this.defaultParams);\n Object.keys(params).forEach(key => {\n const value = params[key];\n if (value !== null) {\n combinedParams[key] = value;\n }\n });\n this.styles.styles.forEach(value => {\n if (typeof value !== 'string') {\n value.forEach((val, prop) => {\n if (val) {\n val = interpolateParams(val, combinedParams, errors);\n }\n const normalizedProp = this.normalizer.normalizePropertyName(prop, errors);\n val = this.normalizer.normalizeStyleValue(prop, normalizedProp, val, errors);\n finalStyles.set(prop, val);\n });\n }\n });\n return finalStyles;\n }\n}\n\nfunction buildTrigger(name, ast, normalizer) {\n return new AnimationTrigger(name, ast, normalizer);\n}\nclass AnimationTrigger {\n constructor(name, ast, _normalizer) {\n this.name = name;\n this.ast = ast;\n this._normalizer = _normalizer;\n this.transitionFactories = [];\n this.states = new Map();\n ast.states.forEach(ast => {\n const defaultParams = (ast.options && ast.options.params) || {};\n this.states.set(ast.name, new AnimationStateStyles(ast.style, defaultParams, _normalizer));\n });\n balanceProperties(this.states, 'true', '1');\n balanceProperties(this.states, 'false', '0');\n ast.transitions.forEach(ast => {\n this.transitionFactories.push(new AnimationTransitionFactory(name, ast, this.states));\n });\n this.fallbackTransition = createFallbackTransition(name, this.states, this._normalizer);\n }\n get containsQueries() {\n return this.ast.queryCount > 0;\n }\n matchTransition(currentState, nextState, element, params) {\n const entry = this.transitionFactories.find(f => f.match(currentState, nextState, element, params));\n return entry || null;\n }\n matchStyles(currentState, params, errors) {\n return this.fallbackTransition.buildStyles(currentState, params, errors);\n }\n}\nfunction createFallbackTransition(triggerName, states, normalizer) {\n const matchers = [(fromState, toState) => true];\n const animation = { type: 2 /* AnimationMetadataType.Sequence */, steps: [], options: null };\n const transition = {\n type: 1 /* AnimationMetadataType.Transition */,\n animation,\n matchers,\n options: null,\n queryCount: 0,\n depCount: 0\n };\n return new AnimationTransitionFactory(triggerName, transition, states);\n}\nfunction balanceProperties(stateMap, key1, key2) {\n if (stateMap.has(key1)) {\n if (!stateMap.has(key2)) {\n stateMap.set(key2, stateMap.get(key1));\n }\n }\n else if (stateMap.has(key2)) {\n stateMap.set(key1, stateMap.get(key2));\n }\n}\n\nconst EMPTY_INSTRUCTION_MAP = new ElementInstructionMap();\nclass TimelineAnimationEngine {\n constructor(bodyNode, _driver, _normalizer) {\n this.bodyNode = bodyNode;\n this._driver = _driver;\n this._normalizer = _normalizer;\n this._animations = new Map();\n this._playersById = new Map();\n this.players = [];\n }\n register(id, metadata) {\n const errors = [];\n const warnings = [];\n const ast = buildAnimationAst(this._driver, metadata, errors, warnings);\n if (errors.length) {\n throw registerFailed(errors);\n }\n else {\n if (warnings.length) {\n warnRegister(warnings);\n }\n this._animations.set(id, ast);\n }\n }\n _buildPlayer(i, preStyles, postStyles) {\n const element = i.element;\n const keyframes = normalizeKeyframes$1(this._driver, this._normalizer, element, i.keyframes, preStyles, postStyles);\n return this._driver.animate(element, keyframes, i.duration, i.delay, i.easing, [], true);\n }\n create(id, element, options = {}) {\n const errors = [];\n const ast = this._animations.get(id);\n let instructions;\n const autoStylesMap = new Map();\n if (ast) {\n instructions = buildAnimationTimelines(this._driver, element, ast, ENTER_CLASSNAME, LEAVE_CLASSNAME, new Map(), new Map(), options, EMPTY_INSTRUCTION_MAP, errors);\n instructions.forEach(inst => {\n const styles = getOrSetDefaultValue(autoStylesMap, inst.element, new Map());\n inst.postStyleProps.forEach(prop => styles.set(prop, null));\n });\n }\n else {\n errors.push(missingOrDestroyedAnimation());\n instructions = [];\n }\n if (errors.length) {\n throw createAnimationFailed(errors);\n }\n autoStylesMap.forEach((styles, element) => {\n styles.forEach((_, prop) => {\n styles.set(prop, this._driver.computeStyle(element, prop, AUTO_STYLE));\n });\n });\n const players = instructions.map(i => {\n const styles = autoStylesMap.get(i.element);\n return this._buildPlayer(i, new Map(), styles);\n });\n const player = optimizeGroupPlayer(players);\n this._playersById.set(id, player);\n player.onDestroy(() => this.destroy(id));\n this.players.push(player);\n return player;\n }\n destroy(id) {\n const player = this._getPlayer(id);\n player.destroy();\n this._playersById.delete(id);\n const index = this.players.indexOf(player);\n if (index >= 0) {\n this.players.splice(index, 1);\n }\n }\n _getPlayer(id) {\n const player = this._playersById.get(id);\n if (!player) {\n throw missingPlayer(id);\n }\n return player;\n }\n listen(id, element, eventName, callback) {\n // triggerName, fromState, toState are all ignored for timeline animations\n const baseEvent = makeAnimationEvent(element, '', '', '');\n listenOnPlayer(this._getPlayer(id), eventName, baseEvent, callback);\n return () => { };\n }\n command(id, element, command, args) {\n if (command == 'register') {\n this.register(id, args[0]);\n return;\n }\n if (command == 'create') {\n const options = (args[0] || {});\n this.create(id, element, options);\n return;\n }\n const player = this._getPlayer(id);\n switch (command) {\n case 'play':\n player.play();\n break;\n case 'pause':\n player.pause();\n break;\n case 'reset':\n player.reset();\n break;\n case 'restart':\n player.restart();\n break;\n case 'finish':\n player.finish();\n break;\n case 'init':\n player.init();\n break;\n case 'setPosition':\n player.setPosition(parseFloat(args[0]));\n break;\n case 'destroy':\n this.destroy(id);\n break;\n }\n }\n}\n\nconst QUEUED_CLASSNAME = 'ng-animate-queued';\nconst QUEUED_SELECTOR = '.ng-animate-queued';\nconst DISABLED_CLASSNAME = 'ng-animate-disabled';\nconst DISABLED_SELECTOR = '.ng-animate-disabled';\nconst STAR_CLASSNAME = 'ng-star-inserted';\nconst STAR_SELECTOR = '.ng-star-inserted';\nconst EMPTY_PLAYER_ARRAY = [];\nconst NULL_REMOVAL_STATE = {\n namespaceId: '',\n setForRemoval: false,\n setForMove: false,\n hasAnimation: false,\n removedBeforeQueried: false\n};\nconst NULL_REMOVED_QUERIED_STATE = {\n namespaceId: '',\n setForMove: false,\n setForRemoval: false,\n hasAnimation: false,\n removedBeforeQueried: true\n};\nconst REMOVAL_FLAG = '__ng_removed';\nclass StateValue {\n get params() {\n return this.options.params;\n }\n constructor(input, namespaceId = '') {\n this.namespaceId = namespaceId;\n const isObj = input && input.hasOwnProperty('value');\n const value = isObj ? input['value'] : input;\n this.value = normalizeTriggerValue(value);\n if (isObj) {\n const options = copyObj(input);\n delete options['value'];\n this.options = options;\n }\n else {\n this.options = {};\n }\n if (!this.options.params) {\n this.options.params = {};\n }\n }\n absorbOptions(options) {\n const newParams = options.params;\n if (newParams) {\n const oldParams = this.options.params;\n Object.keys(newParams).forEach(prop => {\n if (oldParams[prop] == null) {\n oldParams[prop] = newParams[prop];\n }\n });\n }\n }\n}\nconst VOID_VALUE = 'void';\nconst DEFAULT_STATE_VALUE = new StateValue(VOID_VALUE);\nclass AnimationTransitionNamespace {\n constructor(id, hostElement, _engine) {\n this.id = id;\n this.hostElement = hostElement;\n this._engine = _engine;\n this.players = [];\n this._triggers = new Map();\n this._queue = [];\n this._elementListeners = new Map();\n this._hostClassName = 'ng-tns-' + id;\n addClass(hostElement, this._hostClassName);\n }\n listen(element, name, phase, callback) {\n if (!this._triggers.has(name)) {\n throw missingTrigger(phase, name);\n }\n if (phase == null || phase.length == 0) {\n throw missingEvent(name);\n }\n if (!isTriggerEventValid(phase)) {\n throw unsupportedTriggerEvent(phase, name);\n }\n const listeners = getOrSetDefaultValue(this._elementListeners, element, []);\n const data = { name, phase, callback };\n listeners.push(data);\n const triggersWithStates = getOrSetDefaultValue(this._engine.statesByElement, element, new Map());\n if (!triggersWithStates.has(name)) {\n addClass(element, NG_TRIGGER_CLASSNAME);\n addClass(element, NG_TRIGGER_CLASSNAME + '-' + name);\n triggersWithStates.set(name, DEFAULT_STATE_VALUE);\n }\n return () => {\n // the event listener is removed AFTER the flush has occurred such\n // that leave animations callbacks can fire (otherwise if the node\n // is removed in between then the listeners would be deregistered)\n this._engine.afterFlush(() => {\n const index = listeners.indexOf(data);\n if (index >= 0) {\n listeners.splice(index, 1);\n }\n if (!this._triggers.has(name)) {\n triggersWithStates.delete(name);\n }\n });\n };\n }\n register(name, ast) {\n if (this._triggers.has(name)) {\n // throw\n return false;\n }\n else {\n this._triggers.set(name, ast);\n return true;\n }\n }\n _getTrigger(name) {\n const trigger = this._triggers.get(name);\n if (!trigger) {\n throw unregisteredTrigger(name);\n }\n return trigger;\n }\n trigger(element, triggerName, value, defaultToFallback = true) {\n const trigger = this._getTrigger(triggerName);\n const player = new TransitionAnimationPlayer(this.id, triggerName, element);\n let triggersWithStates = this._engine.statesByElement.get(element);\n if (!triggersWithStates) {\n addClass(element, NG_TRIGGER_CLASSNAME);\n addClass(element, NG_TRIGGER_CLASSNAME + '-' + triggerName);\n this._engine.statesByElement.set(element, triggersWithStates = new Map());\n }\n let fromState = triggersWithStates.get(triggerName);\n const toState = new StateValue(value, this.id);\n const isObj = value && value.hasOwnProperty('value');\n if (!isObj && fromState) {\n toState.absorbOptions(fromState.options);\n }\n triggersWithStates.set(triggerName, toState);\n if (!fromState) {\n fromState = DEFAULT_STATE_VALUE;\n }\n const isRemoval = toState.value === VOID_VALUE;\n // normally this isn't reached by here, however, if an object expression\n // is passed in then it may be a new object each time. Comparing the value\n // is important since that will stay the same despite there being a new object.\n // The removal arc here is special cased because the same element is triggered\n // twice in the event that it contains animations on the outer/inner portions\n // of the host container\n if (!isRemoval && fromState.value === toState.value) {\n // this means that despite the value not changing, some inner params\n // have changed which means that the animation final styles need to be applied\n if (!objEquals(fromState.params, toState.params)) {\n const errors = [];\n const fromStyles = trigger.matchStyles(fromState.value, fromState.params, errors);\n const toStyles = trigger.matchStyles(toState.value, toState.params, errors);\n if (errors.length) {\n this._engine.reportError(errors);\n }\n else {\n this._engine.afterFlush(() => {\n eraseStyles(element, fromStyles);\n setStyles(element, toStyles);\n });\n }\n }\n return;\n }\n const playersOnElement = getOrSetDefaultValue(this._engine.playersByElement, element, []);\n playersOnElement.forEach(player => {\n // only remove the player if it is queued on the EXACT same trigger/namespace\n // we only also deal with queued players here because if the animation has\n // started then we want to keep the player alive until the flush happens\n // (which is where the previousPlayers are passed into the new player)\n if (player.namespaceId == this.id && player.triggerName == triggerName && player.queued) {\n player.destroy();\n }\n });\n let transition = trigger.matchTransition(fromState.value, toState.value, element, toState.params);\n let isFallbackTransition = false;\n if (!transition) {\n if (!defaultToFallback)\n return;\n transition = trigger.fallbackTransition;\n isFallbackTransition = true;\n }\n this._engine.totalQueuedPlayers++;\n this._queue.push({ element, triggerName, transition, fromState, toState, player, isFallbackTransition });\n if (!isFallbackTransition) {\n addClass(element, QUEUED_CLASSNAME);\n player.onStart(() => {\n removeClass(element, QUEUED_CLASSNAME);\n });\n }\n player.onDone(() => {\n let index = this.players.indexOf(player);\n if (index >= 0) {\n this.players.splice(index, 1);\n }\n const players = this._engine.playersByElement.get(element);\n if (players) {\n let index = players.indexOf(player);\n if (index >= 0) {\n players.splice(index, 1);\n }\n }\n });\n this.players.push(player);\n playersOnElement.push(player);\n return player;\n }\n deregister(name) {\n this._triggers.delete(name);\n this._engine.statesByElement.forEach(stateMap => stateMap.delete(name));\n this._elementListeners.forEach((listeners, element) => {\n this._elementListeners.set(element, listeners.filter(entry => {\n return entry.name != name;\n }));\n });\n }\n clearElementCache(element) {\n this._engine.statesByElement.delete(element);\n this._elementListeners.delete(element);\n const elementPlayers = this._engine.playersByElement.get(element);\n if (elementPlayers) {\n elementPlayers.forEach(player => player.destroy());\n this._engine.playersByElement.delete(element);\n }\n }\n _signalRemovalForInnerTriggers(rootElement, context) {\n const elements = this._engine.driver.query(rootElement, NG_TRIGGER_SELECTOR, true);\n // emulate a leave animation for all inner nodes within this node.\n // If there are no animations found for any of the nodes then clear the cache\n // for the element.\n elements.forEach(elm => {\n // this means that an inner remove() operation has already kicked off\n // the animation on this element...\n if (elm[REMOVAL_FLAG])\n return;\n const namespaces = this._engine.fetchNamespacesByElement(elm);\n if (namespaces.size) {\n namespaces.forEach(ns => ns.triggerLeaveAnimation(elm, context, false, true));\n }\n else {\n this.clearElementCache(elm);\n }\n });\n // If the child elements were removed along with the parent, their animations might not\n // have completed. Clear all the elements from the cache so we don't end up with a memory leak.\n this._engine.afterFlushAnimationsDone(() => elements.forEach(elm => this.clearElementCache(elm)));\n }\n triggerLeaveAnimation(element, context, destroyAfterComplete, defaultToFallback) {\n const triggerStates = this._engine.statesByElement.get(element);\n const previousTriggersValues = new Map();\n if (triggerStates) {\n const players = [];\n triggerStates.forEach((state, triggerName) => {\n previousTriggersValues.set(triggerName, state.value);\n // this check is here in the event that an element is removed\n // twice (both on the host level and the component level)\n if (this._triggers.has(triggerName)) {\n const player = this.trigger(element, triggerName, VOID_VALUE, defaultToFallback);\n if (player) {\n players.push(player);\n }\n }\n });\n if (players.length) {\n this._engine.markElementAsRemoved(this.id, element, true, context, previousTriggersValues);\n if (destroyAfterComplete) {\n optimizeGroupPlayer(players).onDone(() => this._engine.processLeaveNode(element));\n }\n return true;\n }\n }\n return false;\n }\n prepareLeaveAnimationListeners(element) {\n const listeners = this._elementListeners.get(element);\n const elementStates = this._engine.statesByElement.get(element);\n // if this statement fails then it means that the element was picked up\n // by an earlier flush (or there are no listeners at all to track the leave).\n if (listeners && elementStates) {\n const visitedTriggers = new Set();\n listeners.forEach(listener => {\n const triggerName = listener.name;\n if (visitedTriggers.has(triggerName))\n return;\n visitedTriggers.add(triggerName);\n const trigger = this._triggers.get(triggerName);\n const transition = trigger.fallbackTransition;\n const fromState = elementStates.get(triggerName) || DEFAULT_STATE_VALUE;\n const toState = new StateValue(VOID_VALUE);\n const player = new TransitionAnimationPlayer(this.id, triggerName, element);\n this._engine.totalQueuedPlayers++;\n this._queue.push({\n element,\n triggerName,\n transition,\n fromState,\n toState,\n player,\n isFallbackTransition: true\n });\n });\n }\n }\n removeNode(element, context) {\n const engine = this._engine;\n if (element.childElementCount) {\n this._signalRemovalForInnerTriggers(element, context);\n }\n // this means that a * => VOID animation was detected and kicked off\n if (this.triggerLeaveAnimation(element, context, true))\n return;\n // find the player that is animating and make sure that the\n // removal is delayed until that player has completed\n let containsPotentialParentTransition = false;\n if (engine.totalAnimations) {\n const currentPlayers = engine.players.length ? engine.playersByQueriedElement.get(element) : [];\n // when this `if statement` does not continue forward it means that\n // a previous animation query has selected the current element and\n // is animating it. In this situation want to continue forwards and\n // allow the element to be queued up for animation later.\n if (currentPlayers && currentPlayers.length) {\n containsPotentialParentTransition = true;\n }\n else {\n let parent = element;\n while (parent = parent.parentNode) {\n const triggers = engine.statesByElement.get(parent);\n if (triggers) {\n containsPotentialParentTransition = true;\n break;\n }\n }\n }\n }\n // at this stage we know that the element will either get removed\n // during flush or will be picked up by a parent query. Either way\n // we need to fire the listeners for this element when it DOES get\n // removed (once the query parent animation is done or after flush)\n this.prepareLeaveAnimationListeners(element);\n // whether or not a parent has an animation we need to delay the deferral of the leave\n // operation until we have more information (which we do after flush() has been called)\n if (containsPotentialParentTransition) {\n engine.markElementAsRemoved(this.id, element, false, context);\n }\n else {\n const removalFlag = element[REMOVAL_FLAG];\n if (!removalFlag || removalFlag === NULL_REMOVAL_STATE) {\n // we do this after the flush has occurred such\n // that the callbacks can be fired\n engine.afterFlush(() => this.clearElementCache(element));\n engine.destroyInnerAnimations(element);\n engine._onRemovalComplete(element, context);\n }\n }\n }\n insertNode(element, parent) {\n addClass(element, this._hostClassName);\n }\n drainQueuedTransitions(microtaskId) {\n const instructions = [];\n this._queue.forEach(entry => {\n const player = entry.player;\n if (player.destroyed)\n return;\n const element = entry.element;\n const listeners = this._elementListeners.get(element);\n if (listeners) {\n listeners.forEach((listener) => {\n if (listener.name == entry.triggerName) {\n const baseEvent = makeAnimationEvent(element, entry.triggerName, entry.fromState.value, entry.toState.value);\n baseEvent['_data'] = microtaskId;\n listenOnPlayer(entry.player, listener.phase, baseEvent, listener.callback);\n }\n });\n }\n if (player.markedForDestroy) {\n this._engine.afterFlush(() => {\n // now we can destroy the element properly since the event listeners have\n // been bound to the player\n player.destroy();\n });\n }\n else {\n instructions.push(entry);\n }\n });\n this._queue = [];\n return instructions.sort((a, b) => {\n // if depCount == 0 them move to front\n // otherwise if a contains b then move back\n const d0 = a.transition.ast.depCount;\n const d1 = b.transition.ast.depCount;\n if (d0 == 0 || d1 == 0) {\n return d0 - d1;\n }\n return this._engine.driver.containsElement(a.element, b.element) ? 1 : -1;\n });\n }\n destroy(context) {\n this.players.forEach(p => p.destroy());\n this._signalRemovalForInnerTriggers(this.hostElement, context);\n }\n elementContainsData(element) {\n let containsData = false;\n if (this._elementListeners.has(element))\n containsData = true;\n containsData =\n (this._queue.find(entry => entry.element === element) ? true : false) || containsData;\n return containsData;\n }\n}\nclass TransitionAnimationEngine {\n /** @internal */\n _onRemovalComplete(element, context) {\n this.onRemovalComplete(element, context);\n }\n constructor(bodyNode, driver, _normalizer) {\n this.bodyNode = bodyNode;\n this.driver = driver;\n this._normalizer = _normalizer;\n this.players = [];\n this.newHostElements = new Map();\n this.playersByElement = new Map();\n this.playersByQueriedElement = new Map();\n this.statesByElement = new Map();\n this.disabledNodes = new Set();\n this.totalAnimations = 0;\n this.totalQueuedPlayers = 0;\n this._namespaceLookup = {};\n this._namespaceList = [];\n this._flushFns = [];\n this._whenQuietFns = [];\n this.namespacesByHostElement = new Map();\n this.collectedEnterElements = [];\n this.collectedLeaveElements = [];\n // this method is designed to be overridden by the code that uses this engine\n this.onRemovalComplete = (element, context) => { };\n }\n get queuedPlayers() {\n const players = [];\n this._namespaceList.forEach(ns => {\n ns.players.forEach(player => {\n if (player.queued) {\n players.push(player);\n }\n });\n });\n return players;\n }\n createNamespace(namespaceId, hostElement) {\n const ns = new AnimationTransitionNamespace(namespaceId, hostElement, this);\n if (this.bodyNode && this.driver.containsElement(this.bodyNode, hostElement)) {\n this._balanceNamespaceList(ns, hostElement);\n }\n else {\n // defer this later until flush during when the host element has\n // been inserted so that we know exactly where to place it in\n // the namespace list\n this.newHostElements.set(hostElement, ns);\n // given that this host element is a part of the animation code, it\n // may or may not be inserted by a parent node that is of an\n // animation renderer type. If this happens then we can still have\n // access to this item when we query for :enter nodes. If the parent\n // is a renderer then the set data-structure will normalize the entry\n this.collectEnterElement(hostElement);\n }\n return this._namespaceLookup[namespaceId] = ns;\n }\n _balanceNamespaceList(ns, hostElement) {\n const namespaceList = this._namespaceList;\n const namespacesByHostElement = this.namespacesByHostElement;\n const limit = namespaceList.length - 1;\n if (limit >= 0) {\n let found = false;\n // Find the closest ancestor with an existing namespace so we can then insert `ns` after it,\n // establishing a top-down ordering of namespaces in `this._namespaceList`.\n let ancestor = this.driver.getParentElement(hostElement);\n while (ancestor) {\n const ancestorNs = namespacesByHostElement.get(ancestor);\n if (ancestorNs) {\n // An animation namespace has been registered for this ancestor, so we insert `ns`\n // right after it to establish top-down ordering of animation namespaces.\n const index = namespaceList.indexOf(ancestorNs);\n namespaceList.splice(index + 1, 0, ns);\n found = true;\n break;\n }\n ancestor = this.driver.getParentElement(ancestor);\n }\n if (!found) {\n // No namespace exists that is an ancestor of `ns`, so `ns` is inserted at the front to\n // ensure that any existing descendants are ordered after `ns`, retaining the desired\n // top-down ordering.\n namespaceList.unshift(ns);\n }\n }\n else {\n namespaceList.push(ns);\n }\n namespacesByHostElement.set(hostElement, ns);\n return ns;\n }\n register(namespaceId, hostElement) {\n let ns = this._namespaceLookup[namespaceId];\n if (!ns) {\n ns = this.createNamespace(namespaceId, hostElement);\n }\n return ns;\n }\n registerTrigger(namespaceId, name, trigger) {\n let ns = this._namespaceLookup[namespaceId];\n if (ns && ns.register(name, trigger)) {\n this.totalAnimations++;\n }\n }\n destroy(namespaceId, context) {\n if (!namespaceId)\n return;\n const ns = this._fetchNamespace(namespaceId);\n this.afterFlush(() => {\n this.namespacesByHostElement.delete(ns.hostElement);\n delete this._namespaceLookup[namespaceId];\n const index = this._namespaceList.indexOf(ns);\n if (index >= 0) {\n this._namespaceList.splice(index, 1);\n }\n });\n this.afterFlushAnimationsDone(() => ns.destroy(context));\n }\n _fetchNamespace(id) {\n return this._namespaceLookup[id];\n }\n fetchNamespacesByElement(element) {\n // normally there should only be one namespace per element, however\n // if @triggers are placed on both the component element and then\n // its host element (within the component code) then there will be\n // two namespaces returned. We use a set here to simply deduplicate\n // the namespaces in case (for the reason described above) there are multiple triggers\n const namespaces = new Set();\n const elementStates = this.statesByElement.get(element);\n if (elementStates) {\n for (let stateValue of elementStates.values()) {\n if (stateValue.namespaceId) {\n const ns = this._fetchNamespace(stateValue.namespaceId);\n if (ns) {\n namespaces.add(ns);\n }\n }\n }\n }\n return namespaces;\n }\n trigger(namespaceId, element, name, value) {\n if (isElementNode(element)) {\n const ns = this._fetchNamespace(namespaceId);\n if (ns) {\n ns.trigger(element, name, value);\n return true;\n }\n }\n return false;\n }\n insertNode(namespaceId, element, parent, insertBefore) {\n if (!isElementNode(element))\n return;\n // special case for when an element is removed and reinserted (move operation)\n // when this occurs we do not want to use the element for deletion later\n const details = element[REMOVAL_FLAG];\n if (details && details.setForRemoval) {\n details.setForRemoval = false;\n details.setForMove = true;\n const index = this.collectedLeaveElements.indexOf(element);\n if (index >= 0) {\n this.collectedLeaveElements.splice(index, 1);\n }\n }\n // in the event that the namespaceId is blank then the caller\n // code does not contain any animation code in it, but it is\n // just being called so that the node is marked as being inserted\n if (namespaceId) {\n const ns = this._fetchNamespace(namespaceId);\n // This if-statement is a workaround for router issue #21947.\n // The router sometimes hits a race condition where while a route\n // is being instantiated a new navigation arrives, triggering leave\n // animation of DOM that has not been fully initialized, until this\n // is resolved, we need to handle the scenario when DOM is not in a\n // consistent state during the animation.\n if (ns) {\n ns.insertNode(element, parent);\n }\n }\n // only *directives and host elements are inserted before\n if (insertBefore) {\n this.collectEnterElement(element);\n }\n }\n collectEnterElement(element) {\n this.collectedEnterElements.push(element);\n }\n markElementAsDisabled(element, value) {\n if (value) {\n if (!this.disabledNodes.has(element)) {\n this.disabledNodes.add(element);\n addClass(element, DISABLED_CLASSNAME);\n }\n }\n else if (this.disabledNodes.has(element)) {\n this.disabledNodes.delete(element);\n removeClass(element, DISABLED_CLASSNAME);\n }\n }\n removeNode(namespaceId, element, isHostElement, context) {\n if (isElementNode(element)) {\n const ns = namespaceId ? this._fetchNamespace(namespaceId) : null;\n if (ns) {\n ns.removeNode(element, context);\n }\n else {\n this.markElementAsRemoved(namespaceId, element, false, context);\n }\n if (isHostElement) {\n const hostNS = this.namespacesByHostElement.get(element);\n if (hostNS && hostNS.id !== namespaceId) {\n hostNS.removeNode(element, context);\n }\n }\n }\n else {\n this._onRemovalComplete(element, context);\n }\n }\n markElementAsRemoved(namespaceId, element, hasAnimation, context, previousTriggersValues) {\n this.collectedLeaveElements.push(element);\n element[REMOVAL_FLAG] = {\n namespaceId,\n setForRemoval: context,\n hasAnimation,\n removedBeforeQueried: false,\n previousTriggersValues\n };\n }\n listen(namespaceId, element, name, phase, callback) {\n if (isElementNode(element)) {\n return this._fetchNamespace(namespaceId).listen(element, name, phase, callback);\n }\n return () => { };\n }\n _buildInstruction(entry, subTimelines, enterClassName, leaveClassName, skipBuildAst) {\n return entry.transition.build(this.driver, entry.element, entry.fromState.value, entry.toState.value, enterClassName, leaveClassName, entry.fromState.options, entry.toState.options, subTimelines, skipBuildAst);\n }\n destroyInnerAnimations(containerElement) {\n let elements = this.driver.query(containerElement, NG_TRIGGER_SELECTOR, true);\n elements.forEach(element => this.destroyActiveAnimationsForElement(element));\n if (this.playersByQueriedElement.size == 0)\n return;\n elements = this.driver.query(containerElement, NG_ANIMATING_SELECTOR, true);\n elements.forEach(element => this.finishActiveQueriedAnimationOnElement(element));\n }\n destroyActiveAnimationsForElement(element) {\n const players = this.playersByElement.get(element);\n if (players) {\n players.forEach(player => {\n // special case for when an element is set for destruction, but hasn't started.\n // in this situation we want to delay the destruction until the flush occurs\n // so that any event listeners attached to the player are triggered.\n if (player.queued) {\n player.markedForDestroy = true;\n }\n else {\n player.destroy();\n }\n });\n }\n }\n finishActiveQueriedAnimationOnElement(element) {\n const players = this.playersByQueriedElement.get(element);\n if (players) {\n players.forEach(player => player.finish());\n }\n }\n whenRenderingDone() {\n return new Promise(resolve => {\n if (this.players.length) {\n return optimizeGroupPlayer(this.players).onDone(() => resolve());\n }\n else {\n resolve();\n }\n });\n }\n processLeaveNode(element) {\n const details = element[REMOVAL_FLAG];\n if (details && details.setForRemoval) {\n // this will prevent it from removing it twice\n element[REMOVAL_FLAG] = NULL_REMOVAL_STATE;\n if (details.namespaceId) {\n this.destroyInnerAnimations(element);\n const ns = this._fetchNamespace(details.namespaceId);\n if (ns) {\n ns.clearElementCache(element);\n }\n }\n this._onRemovalComplete(element, details.setForRemoval);\n }\n if (element.classList?.contains(DISABLED_CLASSNAME)) {\n this.markElementAsDisabled(element, false);\n }\n this.driver.query(element, DISABLED_SELECTOR, true).forEach(node => {\n this.markElementAsDisabled(node, false);\n });\n }\n flush(microtaskId = -1) {\n let players = [];\n if (this.newHostElements.size) {\n this.newHostElements.forEach((ns, element) => this._balanceNamespaceList(ns, element));\n this.newHostElements.clear();\n }\n if (this.totalAnimations && this.collectedEnterElements.length) {\n for (let i = 0; i < this.collectedEnterElements.length; i++) {\n const elm = this.collectedEnterElements[i];\n addClass(elm, STAR_CLASSNAME);\n }\n }\n if (this._namespaceList.length &&\n (this.totalQueuedPlayers || this.collectedLeaveElements.length)) {\n const cleanupFns = [];\n try {\n players = this._flushAnimations(cleanupFns, microtaskId);\n }\n finally {\n for (let i = 0; i < cleanupFns.length; i++) {\n cleanupFns[i]();\n }\n }\n }\n else {\n for (let i = 0; i < this.collectedLeaveElements.length; i++) {\n const element = this.collectedLeaveElements[i];\n this.processLeaveNode(element);\n }\n }\n this.totalQueuedPlayers = 0;\n this.collectedEnterElements.length = 0;\n this.collectedLeaveElements.length = 0;\n this._flushFns.forEach(fn => fn());\n this._flushFns = [];\n if (this._whenQuietFns.length) {\n // we move these over to a variable so that\n // if any new callbacks are registered in another\n // flush they do not populate the existing set\n const quietFns = this._whenQuietFns;\n this._whenQuietFns = [];\n if (players.length) {\n optimizeGroupPlayer(players).onDone(() => {\n quietFns.forEach(fn => fn());\n });\n }\n else {\n quietFns.forEach(fn => fn());\n }\n }\n }\n reportError(errors) {\n throw triggerTransitionsFailed(errors);\n }\n _flushAnimations(cleanupFns, microtaskId) {\n const subTimelines = new ElementInstructionMap();\n const skippedPlayers = [];\n const skippedPlayersMap = new Map();\n const queuedInstructions = [];\n const queriedElements = new Map();\n const allPreStyleElements = new Map();\n const allPostStyleElements = new Map();\n const disabledElementsSet = new Set();\n this.disabledNodes.forEach(node => {\n disabledElementsSet.add(node);\n const nodesThatAreDisabled = this.driver.query(node, QUEUED_SELECTOR, true);\n for (let i = 0; i < nodesThatAreDisabled.length; i++) {\n disabledElementsSet.add(nodesThatAreDisabled[i]);\n }\n });\n const bodyNode = this.bodyNode;\n const allTriggerElements = Array.from(this.statesByElement.keys());\n const enterNodeMap = buildRootMap(allTriggerElements, this.collectedEnterElements);\n // this must occur before the instructions are built below such that\n // the :enter queries match the elements (since the timeline queries\n // are fired during instruction building).\n const enterNodeMapIds = new Map();\n let i = 0;\n enterNodeMap.forEach((nodes, root) => {\n const className = ENTER_CLASSNAME + i++;\n enterNodeMapIds.set(root, className);\n nodes.forEach(node => addClass(node, className));\n });\n const allLeaveNodes = [];\n const mergedLeaveNodes = new Set();\n const leaveNodesWithoutAnimations = new Set();\n for (let i = 0; i < this.collectedLeaveElements.length; i++) {\n const element = this.collectedLeaveElements[i];\n const details = element[REMOVAL_FLAG];\n if (details && details.setForRemoval) {\n allLeaveNodes.push(element);\n mergedLeaveNodes.add(element);\n if (details.hasAnimation) {\n this.driver.query(element, STAR_SELECTOR, true).forEach(elm => mergedLeaveNodes.add(elm));\n }\n else {\n leaveNodesWithoutAnimations.add(element);\n }\n }\n }\n const leaveNodeMapIds = new Map();\n const leaveNodeMap = buildRootMap(allTriggerElements, Array.from(mergedLeaveNodes));\n leaveNodeMap.forEach((nodes, root) => {\n const className = LEAVE_CLASSNAME + i++;\n leaveNodeMapIds.set(root, className);\n nodes.forEach(node => addClass(node, className));\n });\n cleanupFns.push(() => {\n enterNodeMap.forEach((nodes, root) => {\n const className = enterNodeMapIds.get(root);\n nodes.forEach(node => removeClass(node, className));\n });\n leaveNodeMap.forEach((nodes, root) => {\n const className = leaveNodeMapIds.get(root);\n nodes.forEach(node => removeClass(node, className));\n });\n allLeaveNodes.forEach(element => {\n this.processLeaveNode(element);\n });\n });\n const allPlayers = [];\n const erroneousTransitions = [];\n for (let i = this._namespaceList.length - 1; i >= 0; i--) {\n const ns = this._namespaceList[i];\n ns.drainQueuedTransitions(microtaskId).forEach(entry => {\n const player = entry.player;\n const element = entry.element;\n allPlayers.push(player);\n if (this.collectedEnterElements.length) {\n const details = element[REMOVAL_FLAG];\n // animations for move operations (elements being removed and reinserted,\n // e.g. when the order of an *ngFor list changes) are currently not supported\n if (details && details.setForMove) {\n if (details.previousTriggersValues &&\n details.previousTriggersValues.has(entry.triggerName)) {\n const previousValue = details.previousTriggersValues.get(entry.triggerName);\n // we need to restore the previous trigger value since the element has\n // only been moved and hasn't actually left the DOM\n const triggersWithStates = this.statesByElement.get(entry.element);\n if (triggersWithStates && triggersWithStates.has(entry.triggerName)) {\n const state = triggersWithStates.get(entry.triggerName);\n state.value = previousValue;\n triggersWithStates.set(entry.triggerName, state);\n }\n }\n player.destroy();\n return;\n }\n }\n const nodeIsOrphaned = !bodyNode || !this.driver.containsElement(bodyNode, element);\n const leaveClassName = leaveNodeMapIds.get(element);\n const enterClassName = enterNodeMapIds.get(element);\n const instruction = this._buildInstruction(entry, subTimelines, enterClassName, leaveClassName, nodeIsOrphaned);\n if (instruction.errors && instruction.errors.length) {\n erroneousTransitions.push(instruction);\n return;\n }\n // even though the element may not be in the DOM, it may still\n // be added at a later point (due to the mechanics of content\n // projection and/or dynamic component insertion) therefore it's\n // important to still style the element.\n if (nodeIsOrphaned) {\n player.onStart(() => eraseStyles(element, instruction.fromStyles));\n player.onDestroy(() => setStyles(element, instruction.toStyles));\n skippedPlayers.push(player);\n return;\n }\n // if an unmatched transition is queued and ready to go\n // then it SHOULD NOT render an animation and cancel the\n // previously running animations.\n if (entry.isFallbackTransition) {\n player.onStart(() => eraseStyles(element, instruction.fromStyles));\n player.onDestroy(() => setStyles(element, instruction.toStyles));\n skippedPlayers.push(player);\n return;\n }\n // this means that if a parent animation uses this animation as a sub-trigger\n // then it will instruct the timeline builder not to add a player delay, but\n // instead stretch the first keyframe gap until the animation starts. This is\n // important in order to prevent extra initialization styles from being\n // required by the user for the animation.\n const timelines = [];\n instruction.timelines.forEach(tl => {\n tl.stretchStartingKeyframe = true;\n if (!this.disabledNodes.has(tl.element)) {\n timelines.push(tl);\n }\n });\n instruction.timelines = timelines;\n subTimelines.append(element, instruction.timelines);\n const tuple = { instruction, player, element };\n queuedInstructions.push(tuple);\n instruction.queriedElements.forEach(element => getOrSetDefaultValue(queriedElements, element, []).push(player));\n instruction.preStyleProps.forEach((stringMap, element) => {\n if (stringMap.size) {\n let setVal = allPreStyleElements.get(element);\n if (!setVal) {\n allPreStyleElements.set(element, setVal = new Set());\n }\n stringMap.forEach((_, prop) => setVal.add(prop));\n }\n });\n instruction.postStyleProps.forEach((stringMap, element) => {\n let setVal = allPostStyleElements.get(element);\n if (!setVal) {\n allPostStyleElements.set(element, setVal = new Set());\n }\n stringMap.forEach((_, prop) => setVal.add(prop));\n });\n });\n }\n if (erroneousTransitions.length) {\n const errors = [];\n erroneousTransitions.forEach(instruction => {\n errors.push(transitionFailed(instruction.triggerName, instruction.errors));\n });\n allPlayers.forEach(player => player.destroy());\n this.reportError(errors);\n }\n const allPreviousPlayersMap = new Map();\n // this map tells us which element in the DOM tree is contained by\n // which animation. Further down this map will get populated once\n // the players are built and in doing so we can use it to efficiently\n // figure out if a sub player is skipped due to a parent player having priority.\n const animationElementMap = new Map();\n queuedInstructions.forEach(entry => {\n const element = entry.element;\n if (subTimelines.has(element)) {\n animationElementMap.set(element, element);\n this._beforeAnimationBuild(entry.player.namespaceId, entry.instruction, allPreviousPlayersMap);\n }\n });\n skippedPlayers.forEach(player => {\n const element = player.element;\n const previousPlayers = this._getPreviousPlayers(element, false, player.namespaceId, player.triggerName, null);\n previousPlayers.forEach(prevPlayer => {\n getOrSetDefaultValue(allPreviousPlayersMap, element, []).push(prevPlayer);\n prevPlayer.destroy();\n });\n });\n // this is a special case for nodes that will be removed either by\n // having their own leave animations or by being queried in a container\n // that will be removed once a parent animation is complete. The idea\n // here is that * styles must be identical to ! styles because of\n // backwards compatibility (* is also filled in by default in many places).\n // Otherwise * styles will return an empty value or \"auto\" since the element\n // passed to getComputedStyle will not be visible (since * === destination)\n const replaceNodes = allLeaveNodes.filter(node => {\n return replacePostStylesAsPre(node, allPreStyleElements, allPostStyleElements);\n });\n // POST STAGE: fill the * styles\n const postStylesMap = new Map();\n const allLeaveQueriedNodes = cloakAndComputeStyles(postStylesMap, this.driver, leaveNodesWithoutAnimations, allPostStyleElements, AUTO_STYLE);\n allLeaveQueriedNodes.forEach(node => {\n if (replacePostStylesAsPre(node, allPreStyleElements, allPostStyleElements)) {\n replaceNodes.push(node);\n }\n });\n // PRE STAGE: fill the ! styles\n const preStylesMap = new Map();\n enterNodeMap.forEach((nodes, root) => {\n cloakAndComputeStyles(preStylesMap, this.driver, new Set(nodes), allPreStyleElements, ɵPRE_STYLE);\n });\n replaceNodes.forEach(node => {\n const post = postStylesMap.get(node);\n const pre = preStylesMap.get(node);\n postStylesMap.set(node, new Map([...Array.from(post?.entries() ?? []), ...Array.from(pre?.entries() ?? [])]));\n });\n const rootPlayers = [];\n const subPlayers = [];\n const NO_PARENT_ANIMATION_ELEMENT_DETECTED = {};\n queuedInstructions.forEach(entry => {\n const { element, player, instruction } = entry;\n // this means that it was never consumed by a parent animation which\n // means that it is independent and therefore should be set for animation\n if (subTimelines.has(element)) {\n if (disabledElementsSet.has(element)) {\n player.onDestroy(() => setStyles(element, instruction.toStyles));\n player.disabled = true;\n player.overrideTotalTime(instruction.totalTime);\n skippedPlayers.push(player);\n return;\n }\n // this will flow up the DOM and query the map to figure out\n // if a parent animation has priority over it. In the situation\n // that a parent is detected then it will cancel the loop. If\n // nothing is detected, or it takes a few hops to find a parent,\n // then it will fill in the missing nodes and signal them as having\n // a detected parent (or a NO_PARENT value via a special constant).\n let parentWithAnimation = NO_PARENT_ANIMATION_ELEMENT_DETECTED;\n if (animationElementMap.size > 1) {\n let elm = element;\n const parentsToAdd = [];\n while (elm = elm.parentNode) {\n const detectedParent = animationElementMap.get(elm);\n if (detectedParent) {\n parentWithAnimation = detectedParent;\n break;\n }\n parentsToAdd.push(elm);\n }\n parentsToAdd.forEach(parent => animationElementMap.set(parent, parentWithAnimation));\n }\n const innerPlayer = this._buildAnimation(player.namespaceId, instruction, allPreviousPlayersMap, skippedPlayersMap, preStylesMap, postStylesMap);\n player.setRealPlayer(innerPlayer);\n if (parentWithAnimation === NO_PARENT_ANIMATION_ELEMENT_DETECTED) {\n rootPlayers.push(player);\n }\n else {\n const parentPlayers = this.playersByElement.get(parentWithAnimation);\n if (parentPlayers && parentPlayers.length) {\n player.parentPlayer = optimizeGroupPlayer(parentPlayers);\n }\n skippedPlayers.push(player);\n }\n }\n else {\n eraseStyles(element, instruction.fromStyles);\n player.onDestroy(() => setStyles(element, instruction.toStyles));\n // there still might be a ancestor player animating this\n // element therefore we will still add it as a sub player\n // even if its animation may be disabled\n subPlayers.push(player);\n if (disabledElementsSet.has(element)) {\n skippedPlayers.push(player);\n }\n }\n });\n // find all of the sub players' corresponding inner animation players\n subPlayers.forEach(player => {\n // even if no players are found for a sub animation it\n // will still complete itself after the next tick since it's Noop\n const playersForElement = skippedPlayersMap.get(player.element);\n if (playersForElement && playersForElement.length) {\n const innerPlayer = optimizeGroupPlayer(playersForElement);\n player.setRealPlayer(innerPlayer);\n }\n });\n // the reason why we don't actually play the animation is\n // because all that a skipped player is designed to do is to\n // fire the start/done transition callback events\n skippedPlayers.forEach(player => {\n if (player.parentPlayer) {\n player.syncPlayerEvents(player.parentPlayer);\n }\n else {\n player.destroy();\n }\n });\n // run through all of the queued removals and see if they\n // were picked up by a query. If not then perform the removal\n // operation right away unless a parent animation is ongoing.\n for (let i = 0; i < allLeaveNodes.length; i++) {\n const element = allLeaveNodes[i];\n const details = element[REMOVAL_FLAG];\n removeClass(element, LEAVE_CLASSNAME);\n // this means the element has a removal animation that is being\n // taken care of and therefore the inner elements will hang around\n // until that animation is over (or the parent queried animation)\n if (details && details.hasAnimation)\n continue;\n let players = [];\n // if this element is queried or if it contains queried children\n // then we want for the element not to be removed from the page\n // until the queried animations have finished\n if (queriedElements.size) {\n let queriedPlayerResults = queriedElements.get(element);\n if (queriedPlayerResults && queriedPlayerResults.length) {\n players.push(...queriedPlayerResults);\n }\n let queriedInnerElements = this.driver.query(element, NG_ANIMATING_SELECTOR, true);\n for (let j = 0; j < queriedInnerElements.length; j++) {\n let queriedPlayers = queriedElements.get(queriedInnerElements[j]);\n if (queriedPlayers && queriedPlayers.length) {\n players.push(...queriedPlayers);\n }\n }\n }\n const activePlayers = players.filter(p => !p.destroyed);\n if (activePlayers.length) {\n removeNodesAfterAnimationDone(this, element, activePlayers);\n }\n else {\n this.processLeaveNode(element);\n }\n }\n // this is required so the cleanup method doesn't remove them\n allLeaveNodes.length = 0;\n rootPlayers.forEach(player => {\n this.players.push(player);\n player.onDone(() => {\n player.destroy();\n const index = this.players.indexOf(player);\n this.players.splice(index, 1);\n });\n player.play();\n });\n return rootPlayers;\n }\n elementContainsData(namespaceId, element) {\n let containsData = false;\n const details = element[REMOVAL_FLAG];\n if (details && details.setForRemoval)\n containsData = true;\n if (this.playersByElement.has(element))\n containsData = true;\n if (this.playersByQueriedElement.has(element))\n containsData = true;\n if (this.statesByElement.has(element))\n containsData = true;\n return this._fetchNamespace(namespaceId).elementContainsData(element) || containsData;\n }\n afterFlush(callback) {\n this._flushFns.push(callback);\n }\n afterFlushAnimationsDone(callback) {\n this._whenQuietFns.push(callback);\n }\n _getPreviousPlayers(element, isQueriedElement, namespaceId, triggerName, toStateValue) {\n let players = [];\n if (isQueriedElement) {\n const queriedElementPlayers = this.playersByQueriedElement.get(element);\n if (queriedElementPlayers) {\n players = queriedElementPlayers;\n }\n }\n else {\n const elementPlayers = this.playersByElement.get(element);\n if (elementPlayers) {\n const isRemovalAnimation = !toStateValue || toStateValue == VOID_VALUE;\n elementPlayers.forEach(player => {\n if (player.queued)\n return;\n if (!isRemovalAnimation && player.triggerName != triggerName)\n return;\n players.push(player);\n });\n }\n }\n if (namespaceId || triggerName) {\n players = players.filter(player => {\n if (namespaceId && namespaceId != player.namespaceId)\n return false;\n if (triggerName && triggerName != player.triggerName)\n return false;\n return true;\n });\n }\n return players;\n }\n _beforeAnimationBuild(namespaceId, instruction, allPreviousPlayersMap) {\n const triggerName = instruction.triggerName;\n const rootElement = instruction.element;\n // when a removal animation occurs, ALL previous players are collected\n // and destroyed (even if they are outside of the current namespace)\n const targetNameSpaceId = instruction.isRemovalTransition ? undefined : namespaceId;\n const targetTriggerName = instruction.isRemovalTransition ? undefined : triggerName;\n for (const timelineInstruction of instruction.timelines) {\n const element = timelineInstruction.element;\n const isQueriedElement = element !== rootElement;\n const players = getOrSetDefaultValue(allPreviousPlayersMap, element, []);\n const previousPlayers = this._getPreviousPlayers(element, isQueriedElement, targetNameSpaceId, targetTriggerName, instruction.toState);\n previousPlayers.forEach(player => {\n const realPlayer = player.getRealPlayer();\n if (realPlayer.beforeDestroy) {\n realPlayer.beforeDestroy();\n }\n player.destroy();\n players.push(player);\n });\n }\n // this needs to be done so that the PRE/POST styles can be\n // computed properly without interfering with the previous animation\n eraseStyles(rootElement, instruction.fromStyles);\n }\n _buildAnimation(namespaceId, instruction, allPreviousPlayersMap, skippedPlayersMap, preStylesMap, postStylesMap) {\n const triggerName = instruction.triggerName;\n const rootElement = instruction.element;\n // we first run this so that the previous animation player\n // data can be passed into the successive animation players\n const allQueriedPlayers = [];\n const allConsumedElements = new Set();\n const allSubElements = new Set();\n const allNewPlayers = instruction.timelines.map(timelineInstruction => {\n const element = timelineInstruction.element;\n allConsumedElements.add(element);\n // FIXME (matsko): make sure to-be-removed animations are removed properly\n const details = element[REMOVAL_FLAG];\n if (details && details.removedBeforeQueried)\n return new NoopAnimationPlayer(timelineInstruction.duration, timelineInstruction.delay);\n const isQueriedElement = element !== rootElement;\n const previousPlayers = flattenGroupPlayers((allPreviousPlayersMap.get(element) || EMPTY_PLAYER_ARRAY)\n .map(p => p.getRealPlayer()))\n .filter(p => {\n // the `element` is not apart of the AnimationPlayer definition, but\n // Mock/WebAnimations\n // use the element within their implementation. This will be added in Angular5 to\n // AnimationPlayer\n const pp = p;\n return pp.element ? pp.element === element : false;\n });\n const preStyles = preStylesMap.get(element);\n const postStyles = postStylesMap.get(element);\n const keyframes = normalizeKeyframes$1(this.driver, this._normalizer, element, timelineInstruction.keyframes, preStyles, postStyles);\n const player = this._buildPlayer(timelineInstruction, keyframes, previousPlayers);\n // this means that this particular player belongs to a sub trigger. It is\n // important that we match this player up with the corresponding (@trigger.listener)\n if (timelineInstruction.subTimeline && skippedPlayersMap) {\n allSubElements.add(element);\n }\n if (isQueriedElement) {\n const wrappedPlayer = new TransitionAnimationPlayer(namespaceId, triggerName, element);\n wrappedPlayer.setRealPlayer(player);\n allQueriedPlayers.push(wrappedPlayer);\n }\n return player;\n });\n allQueriedPlayers.forEach(player => {\n getOrSetDefaultValue(this.playersByQueriedElement, player.element, []).push(player);\n player.onDone(() => deleteOrUnsetInMap(this.playersByQueriedElement, player.element, player));\n });\n allConsumedElements.forEach(element => addClass(element, NG_ANIMATING_CLASSNAME));\n const player = optimizeGroupPlayer(allNewPlayers);\n player.onDestroy(() => {\n allConsumedElements.forEach(element => removeClass(element, NG_ANIMATING_CLASSNAME));\n setStyles(rootElement, instruction.toStyles);\n });\n // this basically makes all of the callbacks for sub element animations\n // be dependent on the upper players for when they finish\n allSubElements.forEach(element => {\n getOrSetDefaultValue(skippedPlayersMap, element, []).push(player);\n });\n return player;\n }\n _buildPlayer(instruction, keyframes, previousPlayers) {\n if (keyframes.length > 0) {\n return this.driver.animate(instruction.element, keyframes, instruction.duration, instruction.delay, instruction.easing, previousPlayers);\n }\n // special case for when an empty transition|definition is provided\n // ... there is no point in rendering an empty animation\n return new NoopAnimationPlayer(instruction.duration, instruction.delay);\n }\n}\nclass TransitionAnimationPlayer {\n constructor(namespaceId, triggerName, element) {\n this.namespaceId = namespaceId;\n this.triggerName = triggerName;\n this.element = element;\n this._player = new NoopAnimationPlayer();\n this._containsRealPlayer = false;\n this._queuedCallbacks = new Map();\n this.destroyed = false;\n this.parentPlayer = null;\n this.markedForDestroy = false;\n this.disabled = false;\n this.queued = true;\n this.totalTime = 0;\n }\n setRealPlayer(player) {\n if (this._containsRealPlayer)\n return;\n this._player = player;\n this._queuedCallbacks.forEach((callbacks, phase) => {\n callbacks.forEach(callback => listenOnPlayer(player, phase, undefined, callback));\n });\n this._queuedCallbacks.clear();\n this._containsRealPlayer = true;\n this.overrideTotalTime(player.totalTime);\n this.queued = false;\n }\n getRealPlayer() {\n return this._player;\n }\n overrideTotalTime(totalTime) {\n this.totalTime = totalTime;\n }\n syncPlayerEvents(player) {\n const p = this._player;\n if (p.triggerCallback) {\n player.onStart(() => p.triggerCallback('start'));\n }\n player.onDone(() => this.finish());\n player.onDestroy(() => this.destroy());\n }\n _queueEvent(name, callback) {\n getOrSetDefaultValue(this._queuedCallbacks, name, []).push(callback);\n }\n onDone(fn) {\n if (this.queued) {\n this._queueEvent('done', fn);\n }\n this._player.onDone(fn);\n }\n onStart(fn) {\n if (this.queued) {\n this._queueEvent('start', fn);\n }\n this._player.onStart(fn);\n }\n onDestroy(fn) {\n if (this.queued) {\n this._queueEvent('destroy', fn);\n }\n this._player.onDestroy(fn);\n }\n init() {\n this._player.init();\n }\n hasStarted() {\n return this.queued ? false : this._player.hasStarted();\n }\n play() {\n !this.queued && this._player.play();\n }\n pause() {\n !this.queued && this._player.pause();\n }\n restart() {\n !this.queued && this._player.restart();\n }\n finish() {\n this._player.finish();\n }\n destroy() {\n this.destroyed = true;\n this._player.destroy();\n }\n reset() {\n !this.queued && this._player.reset();\n }\n setPosition(p) {\n if (!this.queued) {\n this._player.setPosition(p);\n }\n }\n getPosition() {\n return this.queued ? 0 : this._player.getPosition();\n }\n /** @internal */\n triggerCallback(phaseName) {\n const p = this._player;\n if (p.triggerCallback) {\n p.triggerCallback(phaseName);\n }\n }\n}\nfunction deleteOrUnsetInMap(map, key, value) {\n let currentValues = map.get(key);\n if (currentValues) {\n if (currentValues.length) {\n const index = currentValues.indexOf(value);\n currentValues.splice(index, 1);\n }\n if (currentValues.length == 0) {\n map.delete(key);\n }\n }\n return currentValues;\n}\nfunction normalizeTriggerValue(value) {\n // we use `!= null` here because it's the most simple\n // way to test against a \"falsy\" value without mixing\n // in empty strings or a zero value. DO NOT OPTIMIZE.\n return value != null ? value : null;\n}\nfunction isElementNode(node) {\n return node && node['nodeType'] === 1;\n}\nfunction isTriggerEventValid(eventName) {\n return eventName == 'start' || eventName == 'done';\n}\nfunction cloakElement(element, value) {\n const oldValue = element.style.display;\n element.style.display = value != null ? value : 'none';\n return oldValue;\n}\nfunction cloakAndComputeStyles(valuesMap, driver, elements, elementPropsMap, defaultStyle) {\n const cloakVals = [];\n elements.forEach(element => cloakVals.push(cloakElement(element)));\n const failedElements = [];\n elementPropsMap.forEach((props, element) => {\n const styles = new Map();\n props.forEach(prop => {\n const value = driver.computeStyle(element, prop, defaultStyle);\n styles.set(prop, value);\n // there is no easy way to detect this because a sub element could be removed\n // by a parent animation element being detached.\n if (!value || value.length == 0) {\n element[REMOVAL_FLAG] = NULL_REMOVED_QUERIED_STATE;\n failedElements.push(element);\n }\n });\n valuesMap.set(element, styles);\n });\n // we use a index variable here since Set.forEach(a, i) does not return\n // an index value for the closure (but instead just the value)\n let i = 0;\n elements.forEach(element => cloakElement(element, cloakVals[i++]));\n return failedElements;\n}\n/*\nSince the Angular renderer code will return a collection of inserted\nnodes in all areas of a DOM tree, it's up to this algorithm to figure\nout which nodes are roots for each animation @trigger.\n\nBy placing each inserted node into a Set and traversing upwards, it\nis possible to find the @trigger elements and well any direct *star\ninsertion nodes, if a @trigger root is found then the enter element\nis placed into the Map[@trigger] spot.\n */\nfunction buildRootMap(roots, nodes) {\n const rootMap = new Map();\n roots.forEach(root => rootMap.set(root, []));\n if (nodes.length == 0)\n return rootMap;\n const NULL_NODE = 1;\n const nodeSet = new Set(nodes);\n const localRootMap = new Map();\n function getRoot(node) {\n if (!node)\n return NULL_NODE;\n let root = localRootMap.get(node);\n if (root)\n return root;\n const parent = node.parentNode;\n if (rootMap.has(parent)) { // ngIf inside @trigger\n root = parent;\n }\n else if (nodeSet.has(parent)) { // ngIf inside ngIf\n root = NULL_NODE;\n }\n else { // recurse upwards\n root = getRoot(parent);\n }\n localRootMap.set(node, root);\n return root;\n }\n nodes.forEach(node => {\n const root = getRoot(node);\n if (root !== NULL_NODE) {\n rootMap.get(root).push(node);\n }\n });\n return rootMap;\n}\nfunction addClass(element, className) {\n element.classList?.add(className);\n}\nfunction removeClass(element, className) {\n element.classList?.remove(className);\n}\nfunction removeNodesAfterAnimationDone(engine, element, players) {\n optimizeGroupPlayer(players).onDone(() => engine.processLeaveNode(element));\n}\nfunction flattenGroupPlayers(players) {\n const finalPlayers = [];\n _flattenGroupPlayersRecur(players, finalPlayers);\n return finalPlayers;\n}\nfunction _flattenGroupPlayersRecur(players, finalPlayers) {\n for (let i = 0; i < players.length; i++) {\n const player = players[i];\n if (player instanceof ɵAnimationGroupPlayer) {\n _flattenGroupPlayersRecur(player.players, finalPlayers);\n }\n else {\n finalPlayers.push(player);\n }\n }\n}\nfunction objEquals(a, b) {\n const k1 = Object.keys(a);\n const k2 = Object.keys(b);\n if (k1.length != k2.length)\n return false;\n for (let i = 0; i < k1.length; i++) {\n const prop = k1[i];\n if (!b.hasOwnProperty(prop) || a[prop] !== b[prop])\n return false;\n }\n return true;\n}\nfunction replacePostStylesAsPre(element, allPreStyleElements, allPostStyleElements) {\n const postEntry = allPostStyleElements.get(element);\n if (!postEntry)\n return false;\n let preEntry = allPreStyleElements.get(element);\n if (preEntry) {\n postEntry.forEach(data => preEntry.add(data));\n }\n else {\n allPreStyleElements.set(element, postEntry);\n }\n allPostStyleElements.delete(element);\n return true;\n}\n\nclass AnimationEngine {\n constructor(bodyNode, _driver, _normalizer) {\n this.bodyNode = bodyNode;\n this._driver = _driver;\n this._normalizer = _normalizer;\n this._triggerCache = {};\n // this method is designed to be overridden by the code that uses this engine\n this.onRemovalComplete = (element, context) => { };\n this._transitionEngine = new TransitionAnimationEngine(bodyNode, _driver, _normalizer);\n this._timelineEngine = new TimelineAnimationEngine(bodyNode, _driver, _normalizer);\n this._transitionEngine.onRemovalComplete = (element, context) => this.onRemovalComplete(element, context);\n }\n registerTrigger(componentId, namespaceId, hostElement, name, metadata) {\n const cacheKey = componentId + '-' + name;\n let trigger = this._triggerCache[cacheKey];\n if (!trigger) {\n const errors = [];\n const warnings = [];\n const ast = buildAnimationAst(this._driver, metadata, errors, warnings);\n if (errors.length) {\n throw triggerBuildFailed(name, errors);\n }\n if (warnings.length) {\n warnTriggerBuild(name, warnings);\n }\n trigger = buildTrigger(name, ast, this._normalizer);\n this._triggerCache[cacheKey] = trigger;\n }\n this._transitionEngine.registerTrigger(namespaceId, name, trigger);\n }\n register(namespaceId, hostElement) {\n this._transitionEngine.register(namespaceId, hostElement);\n }\n destroy(namespaceId, context) {\n this._transitionEngine.destroy(namespaceId, context);\n }\n onInsert(namespaceId, element, parent, insertBefore) {\n this._transitionEngine.insertNode(namespaceId, element, parent, insertBefore);\n }\n onRemove(namespaceId, element, context, isHostElement) {\n this._transitionEngine.removeNode(namespaceId, element, isHostElement || false, context);\n }\n disableAnimations(element, disable) {\n this._transitionEngine.markElementAsDisabled(element, disable);\n }\n process(namespaceId, element, property, value) {\n if (property.charAt(0) == '@') {\n const [id, action] = parseTimelineCommand(property);\n const args = value;\n this._timelineEngine.command(id, element, action, args);\n }\n else {\n this._transitionEngine.trigger(namespaceId, element, property, value);\n }\n }\n listen(namespaceId, element, eventName, eventPhase, callback) {\n // @@listen\n if (eventName.charAt(0) == '@') {\n const [id, action] = parseTimelineCommand(eventName);\n return this._timelineEngine.listen(id, element, action, callback);\n }\n return this._transitionEngine.listen(namespaceId, element, eventName, eventPhase, callback);\n }\n flush(microtaskId = -1) {\n this._transitionEngine.flush(microtaskId);\n }\n get players() {\n return this._transitionEngine.players\n .concat(this._timelineEngine.players);\n }\n whenRenderingDone() {\n return this._transitionEngine.whenRenderingDone();\n }\n}\n\n/**\n * Returns an instance of `SpecialCasedStyles` if and when any special (non animateable) styles are\n * detected.\n *\n * In CSS there exist properties that cannot be animated within a keyframe animation\n * (whether it be via CSS keyframes or web-animations) and the animation implementation\n * will ignore them. This function is designed to detect those special cased styles and\n * return a container that will be executed at the start and end of the animation.\n *\n * @returns an instance of `SpecialCasedStyles` if any special styles are detected otherwise `null`\n */\nfunction packageNonAnimatableStyles(element, styles) {\n let startStyles = null;\n let endStyles = null;\n if (Array.isArray(styles) && styles.length) {\n startStyles = filterNonAnimatableStyles(styles[0]);\n if (styles.length > 1) {\n endStyles = filterNonAnimatableStyles(styles[styles.length - 1]);\n }\n }\n else if (styles instanceof Map) {\n startStyles = filterNonAnimatableStyles(styles);\n }\n return (startStyles || endStyles) ? new SpecialCasedStyles(element, startStyles, endStyles) :\n null;\n}\n/**\n * Designed to be executed during a keyframe-based animation to apply any special-cased styles.\n *\n * When started (when the `start()` method is run) then the provided `startStyles`\n * will be applied. When finished (when the `finish()` method is called) the\n * `endStyles` will be applied as well any any starting styles. Finally when\n * `destroy()` is called then all styles will be removed.\n */\nclass SpecialCasedStyles {\n constructor(_element, _startStyles, _endStyles) {\n this._element = _element;\n this._startStyles = _startStyles;\n this._endStyles = _endStyles;\n this._state = 0 /* SpecialCasedStylesState.Pending */;\n let initialStyles = SpecialCasedStyles.initialStylesByElement.get(_element);\n if (!initialStyles) {\n SpecialCasedStyles.initialStylesByElement.set(_element, initialStyles = new Map());\n }\n this._initialStyles = initialStyles;\n }\n start() {\n if (this._state < 1 /* SpecialCasedStylesState.Started */) {\n if (this._startStyles) {\n setStyles(this._element, this._startStyles, this._initialStyles);\n }\n this._state = 1 /* SpecialCasedStylesState.Started */;\n }\n }\n finish() {\n this.start();\n if (this._state < 2 /* SpecialCasedStylesState.Finished */) {\n setStyles(this._element, this._initialStyles);\n if (this._endStyles) {\n setStyles(this._element, this._endStyles);\n this._endStyles = null;\n }\n this._state = 1 /* SpecialCasedStylesState.Started */;\n }\n }\n destroy() {\n this.finish();\n if (this._state < 3 /* SpecialCasedStylesState.Destroyed */) {\n SpecialCasedStyles.initialStylesByElement.delete(this._element);\n if (this._startStyles) {\n eraseStyles(this._element, this._startStyles);\n this._endStyles = null;\n }\n if (this._endStyles) {\n eraseStyles(this._element, this._endStyles);\n this._endStyles = null;\n }\n setStyles(this._element, this._initialStyles);\n this._state = 3 /* SpecialCasedStylesState.Destroyed */;\n }\n }\n}\nSpecialCasedStyles.initialStylesByElement = ( /* @__PURE__ */new WeakMap());\nfunction filterNonAnimatableStyles(styles) {\n let result = null;\n styles.forEach((val, prop) => {\n if (isNonAnimatableStyle(prop)) {\n result = result || new Map();\n result.set(prop, val);\n }\n });\n return result;\n}\nfunction isNonAnimatableStyle(prop) {\n return prop === 'display' || prop === 'position';\n}\n\nclass WebAnimationsPlayer {\n constructor(element, keyframes, options, _specialStyles) {\n this.element = element;\n this.keyframes = keyframes;\n this.options = options;\n this._specialStyles = _specialStyles;\n this._onDoneFns = [];\n this._onStartFns = [];\n this._onDestroyFns = [];\n this._initialized = false;\n this._finished = false;\n this._started = false;\n this._destroyed = false;\n // the following original fns are persistent copies of the _onStartFns and _onDoneFns\n // and are used to reset the fns to their original values upon reset()\n // (since the _onStartFns and _onDoneFns get deleted after they are called)\n this._originalOnDoneFns = [];\n this._originalOnStartFns = [];\n this.time = 0;\n this.parentPlayer = null;\n this.currentSnapshot = new Map();\n this._duration = options['duration'];\n this._delay = options['delay'] || 0;\n this.time = this._duration + this._delay;\n }\n _onFinish() {\n if (!this._finished) {\n this._finished = true;\n this._onDoneFns.forEach(fn => fn());\n this._onDoneFns = [];\n }\n }\n init() {\n this._buildPlayer();\n this._preparePlayerBeforeStart();\n }\n _buildPlayer() {\n if (this._initialized)\n return;\n this._initialized = true;\n const keyframes = this.keyframes;\n // @ts-expect-error overwriting a readonly property\n this.domPlayer = this._triggerWebAnimation(this.element, keyframes, this.options);\n this._finalKeyframe = keyframes.length ? keyframes[keyframes.length - 1] : new Map();\n this.domPlayer.addEventListener('finish', () => this._onFinish());\n }\n _preparePlayerBeforeStart() {\n // this is required so that the player doesn't start to animate right away\n if (this._delay) {\n this._resetDomPlayerState();\n }\n else {\n this.domPlayer.pause();\n }\n }\n _convertKeyframesToObject(keyframes) {\n const kfs = [];\n keyframes.forEach(frame => {\n kfs.push(Object.fromEntries(frame));\n });\n return kfs;\n }\n /** @internal */\n _triggerWebAnimation(element, keyframes, options) {\n // jscompiler doesn't seem to know animate is a native property because it's not fully\n // supported yet across common browsers (we polyfill it for Edge/Safari) [CL #143630929]\n return element['animate'](this._convertKeyframesToObject(keyframes), options);\n }\n onStart(fn) {\n this._originalOnStartFns.push(fn);\n this._onStartFns.push(fn);\n }\n onDone(fn) {\n this._originalOnDoneFns.push(fn);\n this._onDoneFns.push(fn);\n }\n onDestroy(fn) {\n this._onDestroyFns.push(fn);\n }\n play() {\n this._buildPlayer();\n if (!this.hasStarted()) {\n this._onStartFns.forEach(fn => fn());\n this._onStartFns = [];\n this._started = true;\n if (this._specialStyles) {\n this._specialStyles.start();\n }\n }\n this.domPlayer.play();\n }\n pause() {\n this.init();\n this.domPlayer.pause();\n }\n finish() {\n this.init();\n if (this._specialStyles) {\n this._specialStyles.finish();\n }\n this._onFinish();\n this.domPlayer.finish();\n }\n reset() {\n this._resetDomPlayerState();\n this._destroyed = false;\n this._finished = false;\n this._started = false;\n this._onStartFns = this._originalOnStartFns;\n this._onDoneFns = this._originalOnDoneFns;\n }\n _resetDomPlayerState() {\n if (this.domPlayer) {\n this.domPlayer.cancel();\n }\n }\n restart() {\n this.reset();\n this.play();\n }\n hasStarted() {\n return this._started;\n }\n destroy() {\n if (!this._destroyed) {\n this._destroyed = true;\n this._resetDomPlayerState();\n this._onFinish();\n if (this._specialStyles) {\n this._specialStyles.destroy();\n }\n this._onDestroyFns.forEach(fn => fn());\n this._onDestroyFns = [];\n }\n }\n setPosition(p) {\n if (this.domPlayer === undefined) {\n this.init();\n }\n this.domPlayer.currentTime = p * this.time;\n }\n getPosition() {\n return this.domPlayer.currentTime / this.time;\n }\n get totalTime() {\n return this._delay + this._duration;\n }\n beforeDestroy() {\n const styles = new Map();\n if (this.hasStarted()) {\n // note: this code is invoked only when the `play` function was called prior to this\n // (thus `hasStarted` returns true), this implies that the code that initializes\n // `_finalKeyframe` has also been executed and the non-null assertion can be safely used here\n const finalKeyframe = this._finalKeyframe;\n finalKeyframe.forEach((val, prop) => {\n if (prop !== 'offset') {\n styles.set(prop, this._finished ? val : computeStyle(this.element, prop));\n }\n });\n }\n this.currentSnapshot = styles;\n }\n /** @internal */\n triggerCallback(phaseName) {\n const methods = phaseName === 'start' ? this._onStartFns : this._onDoneFns;\n methods.forEach(fn => fn());\n methods.length = 0;\n }\n}\n\nclass WebAnimationsDriver {\n validateStyleProperty(prop) {\n // Perform actual validation in dev mode only, in prod mode this check is a noop.\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n return validateStyleProperty(prop);\n }\n return true;\n }\n validateAnimatableStyleProperty(prop) {\n // Perform actual validation in dev mode only, in prod mode this check is a noop.\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n const cssProp = camelCaseToDashCase(prop);\n return validateWebAnimatableStyleProperty(cssProp);\n }\n return true;\n }\n matchesElement(_element, _selector) {\n // This method is deprecated and no longer in use so we return false.\n return false;\n }\n containsElement(elm1, elm2) {\n return containsElement(elm1, elm2);\n }\n getParentElement(element) {\n return getParentElement(element);\n }\n query(element, selector, multi) {\n return invokeQuery(element, selector, multi);\n }\n computeStyle(element, prop, defaultValue) {\n return window.getComputedStyle(element)[prop];\n }\n animate(element, keyframes, duration, delay, easing, previousPlayers = []) {\n const fill = delay == 0 ? 'both' : 'forwards';\n const playerOptions = { duration, delay, fill };\n // we check for this to avoid having a null|undefined value be present\n // for the easing (which results in an error for certain browsers #9752)\n if (easing) {\n playerOptions['easing'] = easing;\n }\n const previousStyles = new Map();\n const previousWebAnimationPlayers = previousPlayers.filter(player => player instanceof WebAnimationsPlayer);\n if (allowPreviousPlayerStylesMerge(duration, delay)) {\n previousWebAnimationPlayers.forEach(player => {\n player.currentSnapshot.forEach((val, prop) => previousStyles.set(prop, val));\n });\n }\n let _keyframes = normalizeKeyframes(keyframes).map(styles => copyStyles(styles));\n _keyframes = balancePreviousStylesIntoKeyframes(element, _keyframes, previousStyles);\n const specialStyles = packageNonAnimatableStyles(element, _keyframes);\n return new WebAnimationsPlayer(element, _keyframes, playerOptions, specialStyles);\n }\n}\n\n/**\n * @module\n * @description\n * Entry point for all animation APIs of the animation browser package.\n */\n\n/**\n * @module\n * @description\n * Entry point for all public APIs of this package.\n */\n\n// This file is not used to build this module. It is only used during editing\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { AnimationDriver, Animation as ɵAnimation, AnimationEngine as ɵAnimationEngine, AnimationStyleNormalizer as ɵAnimationStyleNormalizer, NoopAnimationDriver as ɵNoopAnimationDriver, NoopAnimationStyleNormalizer as ɵNoopAnimationStyleNormalizer, WebAnimationsDriver as ɵWebAnimationsDriver, WebAnimationsPlayer as ɵWebAnimationsPlayer, WebAnimationsStyleNormalizer as ɵWebAnimationsStyleNormalizer, allowPreviousPlayerStylesMerge as ɵallowPreviousPlayerStylesMerge, containsElement as ɵcontainsElement, getParentElement as ɵgetParentElement, invokeQuery as ɵinvokeQuery, normalizeKeyframes as ɵnormalizeKeyframes, validateStyleProperty as ɵvalidateStyleProperty };\n","/**\n * @license Angular v15.2.9\n * (c) 2010-2022 Google LLC. https://angular.io/\n * License: MIT\n */\n\nimport * as i0 from '@angular/core';\nimport { ViewEncapsulation, Injectable, Inject, RendererFactory2, NgZone, ANIMATION_MODULE_TYPE, NgModule } from '@angular/core';\nexport { ANIMATION_MODULE_TYPE } from '@angular/core';\nimport { ɵDomRendererFactory2, BrowserModule } from '@angular/platform-browser';\nimport { AnimationBuilder, sequence, AnimationFactory } from '@angular/animations';\nimport * as i1 from '@angular/animations/browser';\nimport { ɵAnimationEngine, ɵWebAnimationsStyleNormalizer, ɵAnimationStyleNormalizer, AnimationDriver, ɵWebAnimationsDriver, ɵNoopAnimationDriver } from '@angular/animations/browser';\nimport { DOCUMENT } from '@angular/common';\n\nclass BrowserAnimationBuilder extends AnimationBuilder {\n constructor(rootRenderer, doc) {\n super();\n this._nextAnimationId = 0;\n const typeData = { id: '0', encapsulation: ViewEncapsulation.None, styles: [], data: { animation: [] } };\n this._renderer = rootRenderer.createRenderer(doc.body, typeData);\n }\n build(animation) {\n const id = this._nextAnimationId.toString();\n this._nextAnimationId++;\n const entry = Array.isArray(animation) ? sequence(animation) : animation;\n issueAnimationCommand(this._renderer, null, id, 'register', [entry]);\n return new BrowserAnimationFactory(id, this._renderer);\n }\n}\nBrowserAnimationBuilder.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: BrowserAnimationBuilder, deps: [{ token: i0.RendererFactory2 }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });\nBrowserAnimationBuilder.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: BrowserAnimationBuilder });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: BrowserAnimationBuilder, decorators: [{\n type: Injectable\n }], ctorParameters: function () { return [{ type: i0.RendererFactory2 }, { type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }]; } });\nclass BrowserAnimationFactory extends AnimationFactory {\n constructor(_id, _renderer) {\n super();\n this._id = _id;\n this._renderer = _renderer;\n }\n create(element, options) {\n return new RendererAnimationPlayer(this._id, element, options || {}, this._renderer);\n }\n}\nclass RendererAnimationPlayer {\n constructor(id, element, options, _renderer) {\n this.id = id;\n this.element = element;\n this._renderer = _renderer;\n this.parentPlayer = null;\n this._started = false;\n this.totalTime = 0;\n this._command('create', options);\n }\n _listen(eventName, callback) {\n return this._renderer.listen(this.element, `@@${this.id}:${eventName}`, callback);\n }\n _command(command, ...args) {\n return issueAnimationCommand(this._renderer, this.element, this.id, command, args);\n }\n onDone(fn) {\n this._listen('done', fn);\n }\n onStart(fn) {\n this._listen('start', fn);\n }\n onDestroy(fn) {\n this._listen('destroy', fn);\n }\n init() {\n this._command('init');\n }\n hasStarted() {\n return this._started;\n }\n play() {\n this._command('play');\n this._started = true;\n }\n pause() {\n this._command('pause');\n }\n restart() {\n this._command('restart');\n }\n finish() {\n this._command('finish');\n }\n destroy() {\n this._command('destroy');\n }\n reset() {\n this._command('reset');\n this._started = false;\n }\n setPosition(p) {\n this._command('setPosition', p);\n }\n getPosition() {\n return this._renderer.engine.players[+this.id]?.getPosition() ?? 0;\n }\n}\nfunction issueAnimationCommand(renderer, element, id, command, args) {\n return renderer.setProperty(element, `@@${id}:${command}`, args);\n}\n\nconst ANIMATION_PREFIX = '@';\nconst DISABLE_ANIMATIONS_FLAG = '@.disabled';\nclass AnimationRendererFactory {\n constructor(delegate, engine, _zone) {\n this.delegate = delegate;\n this.engine = engine;\n this._zone = _zone;\n this._currentId = 0;\n this._microtaskId = 1;\n this._animationCallbacksBuffer = [];\n this._rendererCache = new Map();\n this._cdRecurDepth = 0;\n this.promise = Promise.resolve(0);\n engine.onRemovalComplete = (element, delegate) => {\n // Note: if a component element has a leave animation, and a host leave animation,\n // the view engine will call `removeChild` for the parent\n // component renderer as well as for the child component renderer.\n // Therefore, we need to check if we already removed the element.\n const parentNode = delegate?.parentNode(element);\n if (parentNode) {\n delegate.removeChild(parentNode, element);\n }\n };\n }\n createRenderer(hostElement, type) {\n const EMPTY_NAMESPACE_ID = '';\n // cache the delegates to find out which cached delegate can\n // be used by which cached renderer\n const delegate = this.delegate.createRenderer(hostElement, type);\n if (!hostElement || !type || !type.data || !type.data['animation']) {\n let renderer = this._rendererCache.get(delegate);\n if (!renderer) {\n // Ensure that the renderer is removed from the cache on destroy\n // since it may contain references to detached DOM nodes.\n const onRendererDestroy = () => this._rendererCache.delete(delegate);\n renderer =\n new BaseAnimationRenderer(EMPTY_NAMESPACE_ID, delegate, this.engine, onRendererDestroy);\n // only cache this result when the base renderer is used\n this._rendererCache.set(delegate, renderer);\n }\n return renderer;\n }\n const componentId = type.id;\n const namespaceId = type.id + '-' + this._currentId;\n this._currentId++;\n this.engine.register(namespaceId, hostElement);\n const registerTrigger = (trigger) => {\n if (Array.isArray(trigger)) {\n trigger.forEach(registerTrigger);\n }\n else {\n this.engine.registerTrigger(componentId, namespaceId, hostElement, trigger.name, trigger);\n }\n };\n const animationTriggers = type.data['animation'];\n animationTriggers.forEach(registerTrigger);\n return new AnimationRenderer(this, namespaceId, delegate, this.engine);\n }\n begin() {\n this._cdRecurDepth++;\n if (this.delegate.begin) {\n this.delegate.begin();\n }\n }\n _scheduleCountTask() {\n // always use promise to schedule microtask instead of use Zone\n this.promise.then(() => {\n this._microtaskId++;\n });\n }\n /** @internal */\n scheduleListenerCallback(count, fn, data) {\n if (count >= 0 && count < this._microtaskId) {\n this._zone.run(() => fn(data));\n return;\n }\n if (this._animationCallbacksBuffer.length == 0) {\n Promise.resolve(null).then(() => {\n this._zone.run(() => {\n this._animationCallbacksBuffer.forEach(tuple => {\n const [fn, data] = tuple;\n fn(data);\n });\n this._animationCallbacksBuffer = [];\n });\n });\n }\n this._animationCallbacksBuffer.push([fn, data]);\n }\n end() {\n this._cdRecurDepth--;\n // this is to prevent animations from running twice when an inner\n // component does CD when a parent component instead has inserted it\n if (this._cdRecurDepth == 0) {\n this._zone.runOutsideAngular(() => {\n this._scheduleCountTask();\n this.engine.flush(this._microtaskId);\n });\n }\n if (this.delegate.end) {\n this.delegate.end();\n }\n }\n whenRenderingDone() {\n return this.engine.whenRenderingDone();\n }\n}\nAnimationRendererFactory.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: AnimationRendererFactory, deps: [{ token: i0.RendererFactory2 }, { token: i1.ɵAnimationEngine }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable });\nAnimationRendererFactory.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: AnimationRendererFactory });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: AnimationRendererFactory, decorators: [{\n type: Injectable\n }], ctorParameters: function () { return [{ type: i0.RendererFactory2 }, { type: i1.ɵAnimationEngine }, { type: i0.NgZone }]; } });\nclass BaseAnimationRenderer {\n constructor(namespaceId, delegate, engine, _onDestroy) {\n this.namespaceId = namespaceId;\n this.delegate = delegate;\n this.engine = engine;\n this._onDestroy = _onDestroy;\n this.destroyNode = this.delegate.destroyNode ? (n) => delegate.destroyNode(n) : null;\n }\n get data() {\n return this.delegate.data;\n }\n destroy() {\n this.engine.destroy(this.namespaceId, this.delegate);\n this.delegate.destroy();\n this._onDestroy?.();\n }\n createElement(name, namespace) {\n return this.delegate.createElement(name, namespace);\n }\n createComment(value) {\n return this.delegate.createComment(value);\n }\n createText(value) {\n return this.delegate.createText(value);\n }\n appendChild(parent, newChild) {\n this.delegate.appendChild(parent, newChild);\n this.engine.onInsert(this.namespaceId, newChild, parent, false);\n }\n insertBefore(parent, newChild, refChild, isMove = true) {\n this.delegate.insertBefore(parent, newChild, refChild);\n // If `isMove` true than we should animate this insert.\n this.engine.onInsert(this.namespaceId, newChild, parent, isMove);\n }\n removeChild(parent, oldChild, isHostElement) {\n this.engine.onRemove(this.namespaceId, oldChild, this.delegate, isHostElement);\n }\n selectRootElement(selectorOrNode, preserveContent) {\n return this.delegate.selectRootElement(selectorOrNode, preserveContent);\n }\n parentNode(node) {\n return this.delegate.parentNode(node);\n }\n nextSibling(node) {\n return this.delegate.nextSibling(node);\n }\n setAttribute(el, name, value, namespace) {\n this.delegate.setAttribute(el, name, value, namespace);\n }\n removeAttribute(el, name, namespace) {\n this.delegate.removeAttribute(el, name, namespace);\n }\n addClass(el, name) {\n this.delegate.addClass(el, name);\n }\n removeClass(el, name) {\n this.delegate.removeClass(el, name);\n }\n setStyle(el, style, value, flags) {\n this.delegate.setStyle(el, style, value, flags);\n }\n removeStyle(el, style, flags) {\n this.delegate.removeStyle(el, style, flags);\n }\n setProperty(el, name, value) {\n if (name.charAt(0) == ANIMATION_PREFIX && name == DISABLE_ANIMATIONS_FLAG) {\n this.disableAnimations(el, !!value);\n }\n else {\n this.delegate.setProperty(el, name, value);\n }\n }\n setValue(node, value) {\n this.delegate.setValue(node, value);\n }\n listen(target, eventName, callback) {\n return this.delegate.listen(target, eventName, callback);\n }\n disableAnimations(element, value) {\n this.engine.disableAnimations(element, value);\n }\n}\nclass AnimationRenderer extends BaseAnimationRenderer {\n constructor(factory, namespaceId, delegate, engine, onDestroy) {\n super(namespaceId, delegate, engine, onDestroy);\n this.factory = factory;\n this.namespaceId = namespaceId;\n }\n setProperty(el, name, value) {\n if (name.charAt(0) == ANIMATION_PREFIX) {\n if (name.charAt(1) == '.' && name == DISABLE_ANIMATIONS_FLAG) {\n value = value === undefined ? true : !!value;\n this.disableAnimations(el, value);\n }\n else {\n this.engine.process(this.namespaceId, el, name.slice(1), value);\n }\n }\n else {\n this.delegate.setProperty(el, name, value);\n }\n }\n listen(target, eventName, callback) {\n if (eventName.charAt(0) == ANIMATION_PREFIX) {\n const element = resolveElementFromTarget(target);\n let name = eventName.slice(1);\n let phase = '';\n // @listener.phase is for trigger animation callbacks\n // @@listener is for animation builder callbacks\n if (name.charAt(0) != ANIMATION_PREFIX) {\n [name, phase] = parseTriggerCallbackName(name);\n }\n return this.engine.listen(this.namespaceId, element, name, phase, event => {\n const countId = event['_data'] || -1;\n this.factory.scheduleListenerCallback(countId, callback, event);\n });\n }\n return this.delegate.listen(target, eventName, callback);\n }\n}\nfunction resolveElementFromTarget(target) {\n switch (target) {\n case 'body':\n return document.body;\n case 'document':\n return document;\n case 'window':\n return window;\n default:\n return target;\n }\n}\nfunction parseTriggerCallbackName(triggerName) {\n const dotIndex = triggerName.indexOf('.');\n const trigger = triggerName.substring(0, dotIndex);\n const phase = triggerName.slice(dotIndex + 1);\n return [trigger, phase];\n}\n\nclass InjectableAnimationEngine extends ɵAnimationEngine {\n // The `ApplicationRef` is injected here explicitly to force the dependency ordering.\n // Since the `ApplicationRef` should be created earlier before the `AnimationEngine`, they\n // both have `ngOnDestroy` hooks and `flush()` must be called after all views are destroyed.\n constructor(doc, driver, normalizer, appRef) {\n super(doc.body, driver, normalizer);\n }\n ngOnDestroy() {\n this.flush();\n }\n}\nInjectableAnimationEngine.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: InjectableAnimationEngine, deps: [{ token: DOCUMENT }, { token: i1.AnimationDriver }, { token: i1.ɵAnimationStyleNormalizer }, { token: i0.ApplicationRef }], target: i0.ɵɵFactoryTarget.Injectable });\nInjectableAnimationEngine.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: InjectableAnimationEngine });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: InjectableAnimationEngine, decorators: [{\n type: Injectable\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }, { type: i1.AnimationDriver }, { type: i1.ɵAnimationStyleNormalizer }, { type: i0.ApplicationRef }]; } });\nfunction instantiateDefaultStyleNormalizer() {\n return new ɵWebAnimationsStyleNormalizer();\n}\nfunction instantiateRendererFactory(renderer, engine, zone) {\n return new AnimationRendererFactory(renderer, engine, zone);\n}\nconst SHARED_ANIMATION_PROVIDERS = [\n { provide: AnimationBuilder, useClass: BrowserAnimationBuilder },\n { provide: ɵAnimationStyleNormalizer, useFactory: instantiateDefaultStyleNormalizer },\n { provide: ɵAnimationEngine, useClass: InjectableAnimationEngine }, {\n provide: RendererFactory2,\n useFactory: instantiateRendererFactory,\n deps: [ɵDomRendererFactory2, ɵAnimationEngine, NgZone]\n }\n];\n/**\n * Separate providers from the actual module so that we can do a local modification in Google3 to\n * include them in the BrowserModule.\n */\nconst BROWSER_ANIMATIONS_PROVIDERS = [\n { provide: AnimationDriver, useFactory: () => new ɵWebAnimationsDriver() },\n { provide: ANIMATION_MODULE_TYPE, useValue: 'BrowserAnimations' }, ...SHARED_ANIMATION_PROVIDERS\n];\n/**\n * Separate providers from the actual module so that we can do a local modification in Google3 to\n * include them in the BrowserTestingModule.\n */\nconst BROWSER_NOOP_ANIMATIONS_PROVIDERS = [\n { provide: AnimationDriver, useClass: ɵNoopAnimationDriver },\n { provide: ANIMATION_MODULE_TYPE, useValue: 'NoopAnimations' }, ...SHARED_ANIMATION_PROVIDERS\n];\n\n/**\n * Exports `BrowserModule` with additional [dependency-injection providers](guide/glossary#provider)\n * for use with animations. See [Animations](guide/animations).\n * @publicApi\n */\nclass BrowserAnimationsModule {\n /**\n * Configures the module based on the specified object.\n *\n * @param config Object used to configure the behavior of the `BrowserAnimationsModule`.\n * @see `BrowserAnimationsModuleConfig`\n *\n * @usageNotes\n * When registering the `BrowserAnimationsModule`, you can use the `withConfig`\n * function as follows:\n * ```\n * @NgModule({\n * imports: [BrowserAnimationsModule.withConfig(config)]\n * })\n * class MyNgModule {}\n * ```\n */\n static withConfig(config) {\n return {\n ngModule: BrowserAnimationsModule,\n providers: config.disableAnimations ? BROWSER_NOOP_ANIMATIONS_PROVIDERS :\n BROWSER_ANIMATIONS_PROVIDERS\n };\n }\n}\nBrowserAnimationsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: BrowserAnimationsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nBrowserAnimationsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"15.2.9\", ngImport: i0, type: BrowserAnimationsModule, exports: [BrowserModule] });\nBrowserAnimationsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: BrowserAnimationsModule, providers: BROWSER_ANIMATIONS_PROVIDERS, imports: [BrowserModule] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: BrowserAnimationsModule, decorators: [{\n type: NgModule,\n args: [{\n exports: [BrowserModule],\n providers: BROWSER_ANIMATIONS_PROVIDERS,\n }]\n }] });\n/**\n * Returns the set of [dependency-injection providers](guide/glossary#provider)\n * to enable animations in an application. See [animations guide](guide/animations)\n * to learn more about animations in Angular.\n *\n * @usageNotes\n *\n * The function is useful when you want to enable animations in an application\n * bootstrapped using the `bootstrapApplication` function. In this scenario there\n * is no need to import the `BrowserAnimationsModule` NgModule at all, just add\n * providers returned by this function to the `providers` list as show below.\n *\n * ```typescript\n * bootstrapApplication(RootComponent, {\n * providers: [\n * provideAnimations()\n * ]\n * });\n * ```\n *\n * @publicApi\n */\nfunction provideAnimations() {\n // Return a copy to prevent changes to the original array in case any in-place\n // alterations are performed to the `provideAnimations` call results in app code.\n return [...BROWSER_ANIMATIONS_PROVIDERS];\n}\n/**\n * A null player that must be imported to allow disabling of animations.\n * @publicApi\n */\nclass NoopAnimationsModule {\n}\nNoopAnimationsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: NoopAnimationsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nNoopAnimationsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"15.2.9\", ngImport: i0, type: NoopAnimationsModule, exports: [BrowserModule] });\nNoopAnimationsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: NoopAnimationsModule, providers: BROWSER_NOOP_ANIMATIONS_PROVIDERS, imports: [BrowserModule] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: NoopAnimationsModule, decorators: [{\n type: NgModule,\n args: [{\n exports: [BrowserModule],\n providers: BROWSER_NOOP_ANIMATIONS_PROVIDERS,\n }]\n }] });\n/**\n * Returns the set of [dependency-injection providers](guide/glossary#provider)\n * to disable animations in an application. See [animations guide](guide/animations)\n * to learn more about animations in Angular.\n *\n * @usageNotes\n *\n * The function is useful when you want to bootstrap an application using\n * the `bootstrapApplication` function, but you need to disable animations\n * (for example, when running tests).\n *\n * ```typescript\n * bootstrapApplication(RootComponent, {\n * providers: [\n * provideNoopAnimations()\n * ]\n * });\n * ```\n *\n * @publicApi\n */\nfunction provideNoopAnimations() {\n // Return a copy to prevent changes to the original array in case any in-place\n // alterations are performed to the `provideNoopAnimations` call results in app code.\n return [...BROWSER_NOOP_ANIMATIONS_PROVIDERS];\n}\n\n/**\n * @module\n * @description\n * Entry point for all animation APIs of the animation browser package.\n */\n\n/**\n * @module\n * @description\n * Entry point for all public APIs of this package.\n */\n\n// This file is not used to build this module. It is only used during editing\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { BrowserAnimationsModule, NoopAnimationsModule, provideAnimations, provideNoopAnimations, AnimationRenderer as ɵAnimationRenderer, AnimationRendererFactory as ɵAnimationRendererFactory, BrowserAnimationBuilder as ɵBrowserAnimationBuilder, BrowserAnimationFactory as ɵBrowserAnimationFactory, InjectableAnimationEngine as ɵInjectableAnimationEngine };\n","import { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { Router } from '@angular/router';\r\n\r\n@Injectable()\r\nexport class HeaderInterceptor implements HttpInterceptor {\r\n constructor(private _router: Router) {}\r\n\r\n intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\r\n const token = localStorage.getItem('token');\r\n if (token) {\r\n req = req.clone({ headers: req.headers.set('Authorization', `Bearer ${token}`) });\r\n return next.handle(req);\r\n }\r\n return next.handle(req);\r\n }\r\n}\r\n","<div class=\"row\" style=\"margin-top: 20px\">\r\n <div class=\"col-xs-12\">\r\n <div class=\"navbar\" style=\"margin-bottom: 0px\">\r\n <div class=\"col-md-12\" style=\"height: 90px\">\r\n <div class=\"col-md-2 col-md-offset-4 col-xs-6\">\r\n <img\r\n class=\"img-responsive\"\r\n src=\"/assets/img/logo_pe_white.png\"\r\n style=\"max-height: 70px; min-height: 70px; padding-bottom: 10px\" />\r\n </div>\r\n <div class=\"col-md-2 text-center col-xs-6\">\r\n <img\r\n class=\"img-responsive\"\r\n src=\"/assets/img/suncor-w.png\"\r\n style=\"max-height: 70px; float: right; min-height: 70px; padding-bottom: 10px\" />\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n<div class=\"row\">\r\n <div class=\"col-xs-12\" style=\"background: rgb(243, 243, 244)\">\r\n <div class=\"col-xs-offset-1 col-xs-10 col-sm-offset-2 col-sm-8 col-lg-offset-3 col-lg-6\">\r\n <div class=\"row\" style=\"margin-top: 20px\">\r\n <div class=\"col-xs-12\">\r\n <br />\r\n <br />\r\n <br />\r\n <br />\r\n <br />\r\n </div>\r\n <div\r\n class=\"col-xs-12 col-sm-offset-2 col-sm-8 panel panel-default\"\r\n style=\"padding-top: 20px; padding-bottom: 20px\">\r\n <div *ngIf=\"error\" class=\"alert alert-danger margin-bottom-30\" id=\"errorModal\">\r\n <button type=\"button\" autofocus class=\"close\" (click)=\"closeModal()\">\r\n <span aria-hidden=\"true\">×</span>\r\n <span class=\"sr-only\">Close</span>\r\n </button>\r\n <strong>{{ error }}</strong>\r\n </div>\r\n <div *ngIf=\"success\" class=\"alert alert-success margin-bottom-30\">\r\n <button type=\"button\" autofocus class=\"close\" (click)=\"closeModal()\">\r\n <span aria-hidden=\"true\">×</span>\r\n <span class=\"sr-only\">Close</span>\r\n </button>\r\n <strong>{{ success }}</strong>\r\n </div>\r\n\r\n <div class=\"panel-body\">\r\n <form name=\"signup\" (ngSubmit)=\"f.form.valid && signup()\" #f=\"ngForm\" novalidate>\r\n <div class=\"form-group\" [ngClass]=\"{ 'has-error': f.submitted && !firstName.valid }\">\r\n <label for=\"firstName\">First Name</label>\r\n <input\r\n type=\"text\"\r\n class=\"form-control\"\r\n name=\"firstName\"\r\n [(ngModel)]=\"model.firstName\"\r\n #firstName=\"ngModel\"\r\n required />\r\n <div *ngIf=\"f.submitted && !firstName.valid\" class=\"help-block\">First Name is required</div>\r\n </div>\r\n <div class=\"form-group\" [ngClass]=\"{ 'has-error': f.submitted && !lastName.valid }\">\r\n <label for=\"lastName\">Last Name</label>\r\n <input\r\n type=\"text\"\r\n class=\"form-control\"\r\n name=\"lastName\"\r\n [(ngModel)]=\"model.lastName\"\r\n #lastName=\"ngModel\"\r\n required />\r\n <div *ngIf=\"f.submitted && !lastName.valid\" class=\"help-block\">Last Name is required</div>\r\n </div>\r\n <div class=\"form-group\" [ngClass]=\"{ 'has-error': f.submitted && !userName.valid }\">\r\n <label for=\"userName\">Username</label>\r\n <input\r\n type=\"email\"\r\n class=\"form-control\"\r\n name=\"userName\"\r\n placeholder=\"E-Mail (Username)\"\r\n [(ngModel)]=\"model.userName\"\r\n #userName=\"ngModel\"\r\n required />\r\n <div *ngIf=\"f.submitted && !userName.valid\" class=\"help-block\">Username is required</div>\r\n </div>\r\n <div class=\"form-group\" [ngClass]=\"{ 'has-error': f.submitted && !password.valid }\">\r\n <label for=\"password\">Password</label>\r\n <input\r\n type=\"password\"\r\n class=\"form-control\"\r\n name=\"password\"\r\n [(ngModel)]=\"model.password\"\r\n #password=\"ngModel\"\r\n required />\r\n <div *ngIf=\"f.submitted && !password.valid\" class=\"help-block\">Password is required</div>\r\n </div>\r\n <div class=\"form-group\" [ngClass]=\"{ 'has-error': f.submitted && !confirmPassword.valid }\">\r\n <label for=\"confirmPassword\">Confirm Password</label>\r\n <input\r\n name=\"confirmPassword\"\r\n type=\"password\"\r\n class=\"form-control\"\r\n id=\"confirmPassword\"\r\n placeholder=\"Confirm Password\"\r\n [(ngModel)]=\"model.confirmPassword\"\r\n #confirmPassword=\"ngModel\"\r\n required />\r\n <div *ngIf=\"f.submitted && !confirmPassword.valid\" class=\"help-block\">Password is required</div>\r\n </div>\r\n <div class=\"form-group\">\r\n <button [disabled]=\"loading\" class=\"btn btn-primary\">Register</button>\r\n <img\r\n *ngIf=\"loading\"\r\n src=\"data:image/gif;base64,R0lGODlhEAAQAPIAAP///wAAAMLCwkJCQgAAAGJiYoKCgpKSkiH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCgAAACwAAAAAEAAQAAADMwi63P4wyklrE2MIOggZnAdOmGYJRbExwroUmcG2LmDEwnHQLVsYOd2mBzkYDAdKa+dIAAAh+QQJCgAAACwAAAAAEAAQAAADNAi63P5OjCEgG4QMu7DmikRxQlFUYDEZIGBMRVsaqHwctXXf7WEYB4Ag1xjihkMZsiUkKhIAIfkECQoAAAAsAAAAABAAEAAAAzYIujIjK8pByJDMlFYvBoVjHA70GU7xSUJhmKtwHPAKzLO9HMaoKwJZ7Rf8AYPDDzKpZBqfvwQAIfkECQoAAAAsAAAAABAAEAAAAzMIumIlK8oyhpHsnFZfhYumCYUhDAQxRIdhHBGqRoKw0R8DYlJd8z0fMDgsGo/IpHI5TAAAIfkECQoAAAAsAAAAABAAEAAAAzIIunInK0rnZBTwGPNMgQwmdsNgXGJUlIWEuR5oWUIpz8pAEAMe6TwfwyYsGo/IpFKSAAAh+QQJCgAAACwAAAAAEAAQAAADMwi6IMKQORfjdOe82p4wGccc4CEuQradylesojEMBgsUc2G7sDX3lQGBMLAJibufbSlKAAAh+QQJCgAAACwAAAAAEAAQAAADMgi63P7wCRHZnFVdmgHu2nFwlWCI3WGc3TSWhUFGxTAUkGCbtgENBMJAEJsxgMLWzpEAACH5BAkKAAAALAAAAAAQABAAAAMyCLrc/jDKSatlQtScKdceCAjDII7HcQ4EMTCpyrCuUBjCYRgHVtqlAiB1YhiCnlsRkAAAOwAAAAAAAAAAAA==\"\r\n style=\"margin: 15px\" />\r\n <a [routerLink]=\"['/login']\" class=\"btn btn-link\">Cancel</a>\r\n </div>\r\n </form>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n<div class=\"row blocky\"></div>\r\n","/* eslint-disable no-console */\r\nimport { Component } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { UserService } from '../_services/user.service';\r\n\r\n@Component({\r\n // eslint-disable-next-line @angular-eslint/component-selector\r\n selector: 'signup',\r\n templateUrl: './signup.component.html',\r\n styleUrls: ['./signup.component.css'],\r\n})\r\nexport class SignupComponent {\r\n model: any = {};\r\n error: string;\r\n success: string;\r\n\r\n loading = false;\r\n\r\n constructor(private router: Router, private userService: UserService) {}\r\n\r\n signup() {\r\n // does this actually do anything?\r\n this.loading = true;\r\n if (this.model.password === this.model.confirmPassword) {\r\n this.error = '';\r\n this.userService.signUp(this.model).subscribe(\r\n () => {\r\n // eslint-disable-next-line max-len\r\n this.success = `Thanks for creating your account, we've sent a confirmation email to ${this.model.userName}. Please check your email to confirm your account. The confirmation email from Suncor OPTEA might be redirected to the Spam folder`;\r\n this.loading = false;\r\n setTimeout(() => {\r\n this.router.navigate(['/login']);\r\n }, 3000);\r\n },\r\n error => {\r\n this.loading = false;\r\n this.onSignUpError(error);\r\n }\r\n );\r\n } else {\r\n this.loading = false;\r\n this.error = 'Passwords do not match';\r\n }\r\n }\r\n\r\n private onSignUpError(error: any) {\r\n this.error = 'An error has occurred';\r\n if (error.error instanceof Error) {\r\n // A client-side or network error occurred. Handle it accordingly.\r\n this.error = `An error occurred: ${error.error.message}`;\r\n console.error('An error occurred:', error.error.message);\r\n } else if (error.status === 400) {\r\n if (error.error instanceof Array) {\r\n this.error = error.error[0];\r\n } else if (error.error) {\r\n if (error.error.Password) {\r\n this.error = error.error.Password[0];\r\n }\r\n }\r\n } else {\r\n // The backend returned an unsuccessful response code.\r\n // The response body may contain clues as to what went wrong,\r\n // eslint-disable-next-line no-console\r\n console.error(`Backend returned code ${error.status}, body was: ${error.error}`);\r\n }\r\n }\r\n\r\n closeModal() {\r\n if (this.error) {\r\n this.error = undefined;\r\n } else {\r\n this.success = undefined;\r\n }\r\n }\r\n}\r\n","/*\r\n * Inspinia js helpers:\r\n *\r\n * correctHeight() - fix the height of main wrapper\r\n * detectBody() - detect windows size\r\n * smoothlyMenu() - add smooth fade in/out on navigation show/ide\r\n *\r\n */\r\nexport function smoothlyMenu() {\r\n const $body = $('body');\r\n if (!$body.hasClass('mini-navbar') || $body.hasClass('body-small')) {\r\n // Hide menu in order to smoothly turn on when maximize menu\r\n $('#side-menu').hide();\r\n // For smoothly turn on menu\r\n setTimeout(function () {\r\n $('#side-menu').fadeIn(400);\r\n }, 200);\r\n } else if ($('body').hasClass('fixed-sidebar')) {\r\n $('#side-menu').hide();\r\n setTimeout(function () {\r\n $('#side-menu').fadeIn(400);\r\n }, 100);\r\n } else {\r\n // Remove all inline style from $ fadeIn function to reset menu state\r\n $('#side-menu').removeAttr('style');\r\n }\r\n}\r\n\r\nexport function flowsheetHeight() {\r\n const windowHeight = $(window).height();\r\n const topNavBarHeight = $('nav.navbar-static-top').outerHeight();\r\n\r\n const subFlowsheetInfoBar = $('#sub-flowsheet-info').is(':visible');\r\n const subFlowsheetInfoHeight = subFlowsheetInfoBar ? $('.layer-info-container').outerHeight() : 0;\r\n\r\n const bottomBarHeight = $('#lower-toolbar').outerHeight();\r\n const pageWrapper = $('#page-wrapper');\r\n const flowsheetDiagramWrapper = $('#flowsheet-diagram-wrapper');\r\n const sankeyDiagramWrapper = $('#sankey-diagram-wrapper');\r\n\r\n const diagramMinHeight = 300;\r\n const minHeight = diagramMinHeight + topNavBarHeight;\r\n const pageWrapperHeight =\r\n windowHeight < minHeight ? minHeight : windowHeight - topNavBarHeight - subFlowsheetInfoHeight;\r\n pageWrapper.css('min-height', pageWrapperHeight - 1);\r\n\r\n let flowsheetWrapperHeight = pageWrapperHeight - bottomBarHeight;\r\n\r\n if (flowsheetWrapperHeight < diagramMinHeight) {\r\n flowsheetWrapperHeight = diagramMinHeight;\r\n }\r\n\r\n flowsheetDiagramWrapper.css('height', flowsheetWrapperHeight - 1);\r\n $('#flowsheet-spreadsheet-wrapper').css('height', flowsheetWrapperHeight - 1);\r\n $('#utilities-spreadsheet-wrapper').css('height', flowsheetWrapperHeight - 1);\r\n $('#constraints-spreadsheet-wrapper').css('height', flowsheetWrapperHeight - 1);\r\n sankeyDiagramWrapper.css('height', flowsheetWrapperHeight - 1);\r\n $('#multi-period-settings-wrapper').css('height', flowsheetWrapperHeight - 1);\r\n}\r\n\r\nexport function debounce(func, wait, immediate) {\r\n let timeout;\r\n return function () {\r\n const context = this;\r\n const args = arguments;\r\n const later = function () {\r\n timeout = null;\r\n if (!immediate) {\r\n func.apply(context, args);\r\n }\r\n };\r\n\r\n const callNow = immediate && !timeout;\r\n clearTimeout(timeout);\r\n timeout = setTimeout(later, wait);\r\n if (callNow) {\r\n func.apply(context, args);\r\n }\r\n };\r\n}\r\n\r\nexport function detectBody() {\r\n if ($(document).width() < 769) {\r\n $('body').addClass('body-small');\r\n } else {\r\n $('body').removeClass('body-small');\r\n }\r\n}\r\n","import { SimulationVariable } from './simulation-variable';\r\nimport { Case } from './case';\r\n\r\nexport abstract class BaseObject {\r\n id: string;\r\n name: string;\r\n abstract category: string;\r\n ownerCase: Case;\r\n\r\n /**\r\n *\r\n */\r\n constructor(id: string, ownerCase: Case) {\r\n this.id = id || (<any>window).uuid();\r\n this.ownerCase = ownerCase || null;\r\n }\r\n\r\n setName(name: string) {\r\n this.name = name;\r\n }\r\n\r\n getName() {\r\n return this.name;\r\n }\r\n\r\n updateStatus(another: BaseObject): void {\r\n this.updateSimulationVariablesStatus(another);\r\n }\r\n\r\n updateSimulationVariablesStatus(another: BaseObject): void {\r\n let simVar: any;\r\n\r\n // eslint-disable-next-line guard-for-in\r\n for (simVar in this) {\r\n const attr = this[simVar];\r\n\r\n if (attr instanceof SimulationVariable) {\r\n const otherSimVar = another[simVar];\r\n (<SimulationVariable>attr).updateVariableStatus(<SimulationVariable>otherSimVar);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Converts all simulation variables to its internal value\r\n */\r\n convertToInternalUnit(): void {\r\n // loop abusing? where?\r\n const simVars = this.getSimVars();\r\n for (const simVar of simVars) {\r\n simVar.value = simVar.convertToInternalUnit();\r\n }\r\n }\r\n\r\n setSimulationVariablesOwner(): void {\r\n for (const sv of this.getSimVars()) {\r\n sv.setOwnerBaseObject(this);\r\n }\r\n }\r\n\r\n getAllBaseObjects(): Array<BaseObject> {\r\n const allBaseObjects: Array<BaseObject> = [];\r\n let val: any;\r\n for (val in this) {\r\n if (this[val] instanceof BaseObject) {\r\n allBaseObjects.push(this[val]);\r\n }\r\n }\r\n return allBaseObjects;\r\n }\r\n\r\n getChildrenObjectsForRemoval(): BaseObject[] {\r\n return this.getSimVars();\r\n }\r\n\r\n getSimVars(): Array<SimulationVariable> {\r\n const simVars: Array<SimulationVariable> = [];\r\n let simVar: any;\r\n for (simVar in this) {\r\n if (this[simVar] instanceof SimulationVariable) {\r\n simVars.push(<SimulationVariable>this[simVar]);\r\n }\r\n }\r\n return simVars;\r\n }\r\n\r\n getSimVarIds(): Array<String> {\r\n const ids: Array<String> = [];\r\n let simVar: any;\r\n for (simVar in this) {\r\n if (this[simVar] instanceof SimulationVariable) {\r\n ids.push(this[simVar].id);\r\n }\r\n }\r\n return ids;\r\n }\r\n\r\n /**\r\n * This method should be used ONLY for deserialization, other usages of this are DANGEROUS\r\n * TODO: Rename to Dangerous!\r\n * @param id\r\n */\r\n getSimulationVariableSafe(id: string): SimulationVariable {\r\n let sv = this.ownerCase.getSimulationVariable(id);\r\n\r\n if (sv) {\r\n return sv;\r\n }\r\n\r\n sv = new SimulationVariable({}, this.ownerCase, this);\r\n this.ownerCase.addToPools(sv);\r\n\r\n // eslint-disable-next-line no-console\r\n console.warn(\r\n // eslint-disable-next-line max-len\r\n `Warning Simulation Variable with the id ${id} was not found in the pools - A new one has been created and added to the pools Owner Base Object Data: ${this.category} - ${this.name} - ${this.id}`\r\n );\r\n return sv;\r\n }\r\n\r\n addSimVarsToPool(): void {\r\n const simVars = this.getSimVars();\r\n for (const sv of simVars) {\r\n this.ownerCase.addToPools(sv);\r\n }\r\n }\r\n\r\n overwriteValues(another: BaseObject): void {\r\n // eslint-disable-next-line guard-for-in\r\n for (const val in another) {\r\n const currentValue = another[val];\r\n\r\n if (currentValue instanceof SimulationVariable) {\r\n if (!this.ignoreForOverWrite(val)) {\r\n (<SimulationVariable>this[val]).overwriteValues(<SimulationVariable>currentValue);\r\n }\r\n } else if (this.ignoreForOverWrite(val)) {\r\n // nothing ...\r\n } else {\r\n this[val] = another[val];\r\n }\r\n }\r\n }\r\n\r\n detectChanges(another: BaseObject): boolean {\r\n // eslint-disable-next-line guard-for-in\r\n for (const val in another) {\r\n const currentValue = another[val];\r\n\r\n if (currentValue instanceof SimulationVariable) {\r\n if ((<SimulationVariable>this[val]).detectValueChange(<SimulationVariable>currentValue)) {\r\n return true;\r\n }\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n // this name is... what about 'plain'\r\n public toNonCircularObject(): Object {\r\n // this will be useful for saving to gojs and for creating a gojs model using\r\n // a flowsheet as the source\r\n const plainObject = {};\r\n let val: any;\r\n for (val in this as Object) {\r\n if (this[val] instanceof SimulationVariable) {\r\n plainObject[val] = (<SimulationVariable>this[val]).toJSON();\r\n } else if (this.isPropertyBlackListed(this[val])) {\r\n // welp, nothing...\r\n } else {\r\n plainObject[val] = this[val];\r\n }\r\n }\r\n\r\n return plainObject;\r\n }\r\n\r\n protected isPropertyBlackListed(property: any): boolean {\r\n return property instanceof Case || typeof property === 'function';\r\n }\r\n\r\n protected ignoreForOverWrite(propertyName: string): boolean {\r\n return typeof this[propertyName] === 'function';\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n public dePersist(persistedObj: any) {\r\n // nothing\r\n }\r\n}\r\n","export enum ReadyStatus {\r\n READY = 'ready',\r\n NOT_VALID = 'not-valid',\r\n NOT_READY = 'not-ready',\r\n NOT_FULLY_CONNECTED = 'not-fully-connected',\r\n UNDEFINED = 'undefined',\r\n}\r\n","export enum VariableStatus {\r\n UNDEFINED = 'UnDefined', // capital d?\r\n DEFAULT = 'Default',\r\n USER_SPECIFIED = 'UserSpecified',\r\n SOLVER_CALCULATED = 'SolverCalculated',\r\n}\r\n","// region number utils\r\nexport function hasNumericValue(value: number | undefined) {\r\n return value !== null && typeof value !== 'undefined' && value.toString() !== '' && !Number.isNaN(+value);\r\n}\r\n\r\nexport function roundNumber(n: number, fractionDigits: number) {\r\n return parseFloat(n.toFixed(fractionDigits));\r\n}\r\n// endregion\r\n\r\n// region type/value utils\r\nexport function isTypeUndefined(value): value is undefined {\r\n return typeof value === 'undefined';\r\n}\r\n\r\nexport function isNullOrUndefined(value: any) {\r\n return typeof value === 'undefined' || value === null;\r\n}\r\n\r\nexport function isEmptyValue(value: any) {\r\n return isNullOrUndefined(value) || `${value}`.trim() === '';\r\n}\r\n\r\nexport function isTypeBoolean(value: any): value is boolean {\r\n return typeof value === 'boolean';\r\n}\r\n\r\nexport function isTypeNumber(value): value is number {\r\n return typeof value === 'number';\r\n}\r\n\r\nexport function isTypeString(value: any): value is string {\r\n return typeof value === 'string';\r\n}\r\n\r\nexport function isPrimitiveType(value: any): boolean {\r\n return isTypeNumber(value) || isNullOrUndefined(value) || isTypeString(value) || isTypeBoolean(value);\r\n}\r\n\r\nexport function isTypeFunction(value: any): boolean {\r\n return typeof value === 'function';\r\n}\r\n\r\n// taken from unit converter - there are times when this is useful and needs to be used\r\n// outside the unitConverter...\r\nexport function commaNumberFormat(nStr): string {\r\n nStr += '';\r\n const x = nStr.split('.');\r\n let x1 = x[0];\r\n const x2 = x.length > 1 ? `.${x[1]}` : '';\r\n const rgx = /(\\d+)(\\d{3})/;\r\n while (rgx.test(x1)) {\r\n x1 = x1.replace(rgx, '$1' + ',' + '$2');\r\n }\r\n\r\n return x1 + x2;\r\n}\r\n","import { Case } from './case';\r\nimport { BaseObject } from './base-object';\r\nimport { ReadyStatus } from '../_config/ready-status.enum';\r\nimport { VariableStatus } from '../_config/variable-status.enum';\r\nimport { hasNumericValue } from '../_utils/utils';\r\nimport { BasicSimulationVariableInterface } from './simulation-variable-interfaces';\r\n// Wait, what, why\r\ndeclare let unitConverter: any;\r\n\r\nexport class SimulationVariable extends BaseObject implements BasicSimulationVariableInterface {\r\n category = 'simulationVariable';\r\n value: number;\r\n unit: string;\r\n quantity: string;\r\n variableStatus: string;\r\n lowerBound: number;\r\n upperBound: number;\r\n isActive: boolean;\r\n readyStatus: ReadyStatus;\r\n ownerBaseObject: BaseObject;\r\n\r\n constructor(simVar: any, ownerCase: Case, ownerBaseObject: BaseObject) {\r\n super(simVar ? simVar.id : '', ownerCase);\r\n if (simVar instanceof Object) {\r\n this.value = simVar.value;\r\n this.unit = simVar.unit;\r\n this.quantity = simVar.quantity;\r\n this.isActive = simVar.isActive;\r\n this.variableStatus = simVar.variableStatus || 'UnDefined';\r\n this.readyStatus = simVar.readyStatus || ReadyStatus.UNDEFINED;\r\n this.setDefaultUnitIfNeeded();\r\n this.lowerBound = simVar.lowerBound === null ? undefined : simVar.lowerBound || 0;\r\n this.upperBound = simVar.upperBound === null ? undefined : simVar.upperBound;\r\n } else {\r\n this.value = undefined;\r\n this.unit = '';\r\n this.quantity = '';\r\n this.lowerBound = 0;\r\n this.readyStatus = ReadyStatus.UNDEFINED;\r\n this.upperBound = undefined;\r\n this.variableStatus = 'UnDefined';\r\n }\r\n this.ownerBaseObject = ownerBaseObject;\r\n }\r\n\r\n setQuantity(quantity: string) {\r\n this.quantity = quantity;\r\n this.setDefaultUnitIfNeeded();\r\n }\r\n\r\n setOwnerBaseObject(ownerBaseObject: BaseObject): void {\r\n if (this.ownerBaseObject && this.ownerBaseObject !== ownerBaseObject) {\r\n console.error(\r\n `An attempt to change SimulationVariable owner has occurred - old:`,\r\n this.ownerBaseObject,\r\n 'new:',\r\n ownerBaseObject\r\n );\r\n throw new Error(\r\n `An attempt to change SimulationVariable owner has occurred - old ${this.ownerBaseObject?.id}:${this.ownerBaseObject?.name} //// new ${ownerBaseObject?.id}:${ownerBaseObject?.name} `\r\n );\r\n }\r\n this.ownerBaseObject = ownerBaseObject;\r\n }\r\n\r\n getDefaultUnit(): string {\r\n return unitConverter(this.quantity).getDefaultUnit();\r\n }\r\n\r\n getInternalUnit(): string {\r\n return unitConverter(this.quantity).getInternalUnit();\r\n }\r\n\r\n getFullName(): string {\r\n return `${this.ownerBaseObject.getName()} - ${this.name}`;\r\n }\r\n\r\n override convertToInternalUnit(): number {\r\n // if no quantity, at least remove the format\r\n if (!this.quantity || !this.unit) {\r\n return unitConverter.parseFloatString(this.value);\r\n }\r\n\r\n return unitConverter(this.quantity).convert(this.value, this.unit, this.getInternalUnit()).getValue();\r\n }\r\n\r\n convertToCaptureUnit(asNumber: boolean): any {\r\n if (!this.quantity || !this.unit) {\r\n if (asNumber) {\r\n return unitConverter.parseFloatString(this.value);\r\n }\r\n\r\n return unitConverter.formatNumber(this.value);\r\n }\r\n\r\n const conversion = unitConverter(this.quantity).convert(this.value, this.getInternalUnit(), this.unit).round();\r\n\r\n if (asNumber) {\r\n return conversion.getValue();\r\n }\r\n\r\n return conversion.format();\r\n }\r\n\r\n convertToAnotherUnit(anotherUnit, format?: boolean): any {\r\n if (!this.quantity || !anotherUnit) {\r\n return unitConverter.parseFloatString(this.value);\r\n }\r\n\r\n const conversion = unitConverter(this.quantity).convert(this.value, this.getInternalUnit(), anotherUnit);\r\n\r\n if (format) {\r\n return conversion.round().format();\r\n }\r\n\r\n return conversion.round().getValue();\r\n }\r\n\r\n /**\r\n * Converts from internal to default unit\r\n * @param {boolean} round\r\n * @param {boolean} format\r\n * @returns {any}\r\n */\r\n convertToDefaultUnit(round?: boolean, format?: boolean) {\r\n if (!this.quantity || !this.unit) {\r\n return unitConverter.parseFloatString(this.value);\r\n }\r\n\r\n let conversion = unitConverter(this.quantity).convert(this.value, this.getInternalUnit(), this.getDefaultUnit());\r\n\r\n if (round) {\r\n conversion = conversion.round();\r\n }\r\n\r\n if (format) {\r\n return conversion.format();\r\n }\r\n\r\n return conversion.getValue();\r\n }\r\n\r\n roundCurrentValue() {\r\n return unitConverter(this.quantity).convert(this.value, this.unit, this.unit).round().getValue();\r\n }\r\n\r\n setDefaultUnitIfNeeded() {\r\n if (\r\n (this.unit === '' && this.quantity) ||\r\n (this.quantity && !unitConverter(this.quantity).unitInQuantity(this.unit))\r\n ) {\r\n this.unit = this.getDefaultUnit();\r\n }\r\n }\r\n\r\n setDefaultValue(value: number, unit?: string): void {\r\n this.value = value;\r\n\r\n if (this.quantity) {\r\n this.unit = unit || this.getDefaultUnit();\r\n this.value = this.convertToInternalUnit();\r\n }\r\n\r\n this.variableStatus = 'Default';\r\n }\r\n\r\n private parseCurrentValue(): any {\r\n return unitConverter.parseFloatString(this.value);\r\n }\r\n\r\n detectValueChange(another: SimulationVariable): boolean {\r\n const anotherValue = unitConverter.parseFloatString(another.convertToAnotherUnit(this.unit));\r\n const thisValue = unitConverter.parseFloatString(this.roundCurrentValue()); // this.parseCurrentValue();\r\n if ((isNaN(anotherValue) && isNaN(thisValue)) || (another.value === this.value && another.unit === this.unit)) {\r\n return false;\r\n }\r\n\r\n return thisValue !== anotherValue;\r\n }\r\n\r\n updateVariableStatus(another: SimulationVariable): void {\r\n if (this.detectValueChange(another)) {\r\n this.variableStatus = 'UserSpecified';\r\n }\r\n }\r\n\r\n override overwriteValues(another: SimulationVariable): void {\r\n // for sim vars, only value, unit and status may be modified\r\n this.unit = another.unit;\r\n this.value = another.value;\r\n this.variableStatus = another.variableStatus;\r\n this.isActive = another.isActive;\r\n this.readyStatus = another.readyStatus;\r\n }\r\n\r\n setIsActive(isActive: boolean) {\r\n this.isActive = isActive;\r\n }\r\n\r\n isUndefined(): boolean {\r\n return this.variableStatus === 'UnDefined' && (this.value === null || typeof this.value === 'undefined');\r\n }\r\n\r\n isSolverCalculated(): boolean {\r\n return this.variableStatus === VariableStatus.SOLVER_CALCULATED;\r\n }\r\n\r\n hasNumericValue(): boolean {\r\n return hasNumericValue(this.value);\r\n }\r\n\r\n // where is _Override_ ?\r\n public toJSON() {\r\n return {\r\n category: this.category,\r\n id: this.id,\r\n value: this.value,\r\n unit: this.unit,\r\n quantity: this.quantity,\r\n isActive: this.isActive === undefined ? true : this.isActive,\r\n variableStatus: this.variableStatus,\r\n };\r\n }\r\n\r\n outOfBounds(): boolean {\r\n if (this.hasNumericValue()) {\r\n return +this.value < this.lowerBound || +this.value > this.upperBound;\r\n }\r\n\r\n return true;\r\n }\r\n}\r\n","export const unitOperationsConfig = {\r\n diluentSource: {\r\n displayName: 'Diluent',\r\n key: 'diluent-source',\r\n diagramIcon: '/assets/img/blocks/icons/diluentSource.svg',\r\n paletteIcon: '/assets/img/blocks/palette_icons/diluentSource.svg',\r\n },\r\n extraction: {\r\n displayName: 'Extraction',\r\n key: 'extraction',\r\n diagramIcon: '/assets/img/blocks/icons/extraction.svg',\r\n paletteIcon: '/assets/img/blocks/palette_icons/extraction.svg',\r\n },\r\n flexibleExtraction: {\r\n displayName: 'Extraction',\r\n key: 'flexible-extraction',\r\n diagramIcon: '/assets/img/blocks/icons/extraction.svg',\r\n paletteIcon: '/assets/img/blocks/palette_icons/extraction.svg',\r\n },\r\n mine: {\r\n displayName: 'Mine',\r\n key: 'mine-source',\r\n diagramIcon: '/assets/img/blocks/icons/mine.svg',\r\n paletteIcon: '/assets/img/blocks/palette_icons/mine.svg',\r\n },\r\n mixer: {\r\n displayName: 'Mixer',\r\n key: 'mixer',\r\n diagramIcon: '/assets/img/blocks/icons/mixer.svg',\r\n paletteIcon: '/assets/img/blocks/palette_icons/mixer.svg',\r\n },\r\n offshore: {\r\n displayName: 'Offshore',\r\n key: 'offshore-source',\r\n diagramIcon: '/assets/img/blocks/icons/offshore.svg',\r\n paletteIcon: '/assets/img/blocks/palette_icons/offshore.svg',\r\n },\r\n pipe: {\r\n displayName: 'Pipe',\r\n key: 'pipe',\r\n diagramIcon: '/assets/img/blocks/icons/pipe.svg',\r\n paletteIcon: '/assets/img/blocks/palette_icons/pipe.svg',\r\n },\r\n refinery: {\r\n displayName: 'Refinery',\r\n key: 'refinery',\r\n diagramIcon: '/assets/img/blocks/icons/refinery.svg',\r\n paletteIcon: '/assets/img/blocks/palette_icons/refinery.svg',\r\n },\r\n multipleInletRefinery: {\r\n displayName: 'Refinery',\r\n key: 'multipleInletRefinery',\r\n diagramIcon: '/assets/img/blocks/icons/refinery.svg',\r\n paletteIcon: '/assets/img/blocks/palette_icons/refinery.svg',\r\n },\r\n suncorRenewableBlock: {\r\n displayName: 'Renewable',\r\n key: 'suncor-renewable-block',\r\n diagramIcon: '/assets/img/blocks/icons/suncorRenewableBlock.svg',\r\n paletteIcon: '/assets/img/blocks/palette_icons/suncorRenewableBlock.svg',\r\n },\r\n sagd: {\r\n displayName: 'SAGD',\r\n key: 'sagd-source',\r\n diagramIcon: '/assets/img/blocks/icons/sagd.svg',\r\n paletteIcon: '/assets/img/blocks/palette_icons/sagd.svg',\r\n },\r\n splitter: {\r\n displayName: 'Splitter',\r\n key: 'splitter',\r\n diagramIcon: '/assets/img/blocks/icons/splitter.svg',\r\n paletteIcon: '/assets/img/blocks/palette_icons/splitter.svg',\r\n },\r\n thirdPartyRefinery: {\r\n displayName: 'Third Party Refinery',\r\n key: 'third-party-refinery',\r\n diagramIcon: '/assets/img/blocks/icons/thirdPartyRefinery.svg',\r\n paletteIcon: '/assets/img/blocks/palette_icons/thirdPartyRefinery.svg',\r\n },\r\n thirdPartySource: {\r\n displayName: 'Third Party Source',\r\n key: 'third-party-source',\r\n diagramIcon: '/assets/img/blocks/icons/thirdPartySource.svg',\r\n paletteIcon: '/assets/img/blocks/palette_icons/thirdPartySource.svg',\r\n },\r\n upgrader: {\r\n displayName: 'Upgrader',\r\n key: 'upgrader',\r\n diagramIcon: '/assets/img/blocks/icons/upgrader.svg',\r\n paletteIcon: '/assets/img/blocks/palette_icons/upgrader.svg',\r\n },\r\n multipleInletUpgrader: {\r\n displayName: 'Upgrader',\r\n key: 'multipleInletUpgrader',\r\n diagramIcon: '/assets/img/blocks/icons/upgrader.svg',\r\n paletteIcon: '/assets/img/blocks/palette_icons/upgrader.svg',\r\n },\r\n flexibleUpgrader: {\r\n displayName: 'Upgrader',\r\n key: 'flexibleUpgrader',\r\n diagramIcon: '/assets/img/blocks/icons/upgrader.svg',\r\n paletteIcon: '/assets/img/blocks/palette_icons/upgrader.svg',\r\n },\r\n level2Upgrader: {\r\n displayName: 'Upgrader',\r\n key: 'level2-upgrader',\r\n diagramIcon: '/assets/img/blocks/icons/upgrader.svg',\r\n paletteIcon: '/assets/img/blocks/palette_icons/upgrader.svg',\r\n },\r\n upgraderInlet: {\r\n displayName: 'Upgrader Inlet',\r\n key: 'upgrader-inlet',\r\n diagramIcon: '/assets/img/blocks/icons/upgraderInlet.svg',\r\n paletteIcon: '/assets/img/blocks/icons/upgraderInlet.svg',\r\n },\r\n waterUtilityUnitOperation: {\r\n displayName: 'Steam and Power',\r\n key: 'water-utility-unit-operation',\r\n diagramIcon: '/assets/img/blocks/icons/water-utility-unit-operation.svg',\r\n paletteIcon: '/assets/img/blocks/palette_icons/water-utility-unit-operation.svg',\r\n },\r\n bitumenConversion: {\r\n displayName: 'Bitumen Conversion',\r\n key: 'bitumen-conversion',\r\n diagramIcon: '/assets/img/blocks/icons/bitumenConversion.svg',\r\n paletteIcon: '/assets/img/blocks/palette_icons/bitumenConversion.svg',\r\n },\r\n dru: {\r\n displayName: 'DRU',\r\n key: 'dru',\r\n diagramIcon: '/assets/img/blocks/icons/dru.svg',\r\n paletteIcon: '/assets/img/blocks/palette_icons/dru.svg',\r\n },\r\n hydrogenPlant: {\r\n displayName: 'Hydrogen Plant',\r\n key: 'hydrogen-plant',\r\n diagramIcon: '/assets/img/blocks/icons/hydrogenPlant.svg',\r\n paletteIcon: '/assets/img/blocks/palette_icons/hydrogenPlant.svg',\r\n },\r\n sulfurPlant: {\r\n displayName: 'Sulfur Plant',\r\n key: 'sulfur-plant',\r\n diagramIcon: '/assets/img/blocks/icons/sulfurPlant.svg',\r\n paletteIcon: '/assets/img/blocks/palette_icons/sulfurPlant.svg',\r\n },\r\n vac: {\r\n displayName: 'VAC',\r\n key: 'vac',\r\n diagramIcon: '/assets/img/blocks/icons/vac.svg',\r\n paletteIcon: '/assets/img/blocks/palette_icons/vac.svg',\r\n },\r\n hydrotreater: {\r\n displayName: 'Hydrotreater',\r\n key: 'hydrotreater',\r\n diagramIcon: '/assets/img/blocks/icons/hydrotreater.svg',\r\n paletteIcon: '/assets/img/blocks/palette_icons/hydrotreater.svg',\r\n },\r\n hgoHydrotreater: {\r\n displayName: 'HGO Hydrotreater',\r\n key: 'hgo-hydrotreater',\r\n diagramIcon: '/assets/img/blocks/icons/hydrotreater.svg',\r\n paletteIcon: '/assets/img/blocks/palette_icons/hydrotreater.svg',\r\n },\r\n lgoHydrotreater: {\r\n displayName: 'LGO Hydrotreater',\r\n key: 'lgo-hydrotreater',\r\n diagramIcon: '/assets/img/blocks/icons/hydrotreater.svg',\r\n paletteIcon: '/assets/img/blocks/palette_icons/hydrotreater.svg',\r\n },\r\n separatedHydrotreater: {\r\n displayName: 'Hydrotreater',\r\n key: 'separated-hydrotreater',\r\n diagramIcon: '/assets/img/blocks/icons/hydrotreater.svg',\r\n paletteIcon: '/assets/img/blocks/palette_icons/hydrotreater.svg',\r\n },\r\n dcu: {\r\n displayName: 'DCU',\r\n key: 'dcu',\r\n diagramIcon: '/assets/img/blocks/icons/dcu.svg',\r\n paletteIcon: '/assets/img/blocks/palette_icons/dcu.svg',\r\n },\r\n fluidCoker: {\r\n displayName: 'Fluid Coker',\r\n key: 'fluid-coker',\r\n diagramIcon: '/assets/img/blocks/icons/dcu.svg',\r\n paletteIcon: '/assets/img/blocks/palette_icons/dcu.svg',\r\n },\r\n genericSink: {\r\n displayName: 'Generic Sink',\r\n key: 'generic-sink',\r\n diagramIcon: '/assets/img/blocks/icons/genericSink.svg',\r\n paletteIcon: '/assets/img/blocks/palette_icons/genericSink.svg',\r\n },\r\n commodityTank: {\r\n displayName: 'Commodity Tank',\r\n key: 'commodity-tank',\r\n diagramIcon: '/assets/img/blocks/icons/commodityTank.svg',\r\n paletteIcon: '/assets/img/blocks/palette_icons/commodityTank.svg',\r\n },\r\n productTank: {\r\n displayName: 'Product Tank',\r\n key: 'product-tank',\r\n diagramIcon: '/assets/img/blocks/icons/productTank.svg',\r\n paletteIcon: '/assets/img/blocks/palette_icons/productTank.svg',\r\n },\r\n hydrocracker: {\r\n displayName: 'Hydrocracker',\r\n key: 'hydrocracker',\r\n diagramIcon: '/assets/img/blocks/icons/dcu.svg',\r\n paletteIcon: '/assets/img/blocks/palette_icons/dcu.svg',\r\n },\r\n inletTransferUnit: {\r\n displayName: 'Inlet Transfer Unit',\r\n key: 'inlet-transfer-unit',\r\n diagramIcon: '/assets/img/blocks/icons/inletTransferUnit.svg',\r\n paletteIcon: '/assets/img/blocks/palette_icons/inletTransferUnit.svg',\r\n },\r\n outletTransferUnit: {\r\n displayName: 'Outlet Transfer Unit',\r\n key: 'outlet-transfer-unit',\r\n diagramIcon: '/assets/img/blocks/icons/outletTransferUnit.svg',\r\n paletteIcon: '/assets/img/blocks/palette_icons/outletTransferUnit.svg',\r\n },\r\n // region water-utility-unit-operation\r\n waterSource: {\r\n displayName: 'Source',\r\n key: 'water-source',\r\n diagramIcon: '/assets/img/blocks/icons/diluentSource.svg',\r\n paletteIcon: '/assets/img/blocks/palette_icons/diluentSource.svg',\r\n },\r\n waterSourceImport: {\r\n displayName: 'Upgrader Steam Make',\r\n key: 'water-source-import',\r\n diagramIcon: '/assets/img/blocks/icons/SteamMake.svg',\r\n paletteIcon: '/assets/img/blocks/palette_icons/SteamMake.svg',\r\n },\r\n waterSinkImport: {\r\n displayName: 'Upgrader Steam Use',\r\n key: 'water-sink-import',\r\n diagramIcon: '/assets/img/blocks/icons/SteamUse.svg',\r\n paletteIcon: '/assets/img/blocks/palette_icons/SteamUse.svg',\r\n },\r\n waterHeatExchanger: {\r\n displayName: 'Heat Exchanger',\r\n key: 'water-heat-exchanger',\r\n diagramIcon: '/assets/img/blocks/icons/heatExchanger.svg',\r\n paletteIcon: '/assets/img/blocks/palette_icons/heatExchanger.svg',\r\n },\r\n waterTurbine: {\r\n displayName: 'Turbine',\r\n key: 'water-turbine',\r\n diagramIcon: '/assets/img/blocks/icons/GasTurbine.svg',\r\n paletteIcon: '/assets/img/blocks/palette_icons/GasTurbine.svg',\r\n },\r\n waterHeater: {\r\n displayName: 'Heater',\r\n key: 'water-heater',\r\n diagramIcon: '/assets/img/blocks/icons/heater.svg',\r\n paletteIcon: '/assets/img/blocks/palette_icons/heater.svg',\r\n },\r\n waterCooler: {\r\n displayName: 'Cooler',\r\n key: 'water-cooler',\r\n diagramIcon: '/assets/img/blocks/icons/cooler.svg',\r\n paletteIcon: '/assets/img/blocks/palette_icons/cooler.svg',\r\n },\r\n waterTwoPhaseSeparator: {\r\n displayName: 'Two Phase Separator',\r\n key: 'water-two-phase-separator',\r\n diagramIcon: '/assets/img/blocks/icons/two-phase-separator.svg',\r\n paletteIcon: '/assets/img/blocks/palette_icons/two-phase-separator.svg',\r\n },\r\n waterPump: {\r\n displayName: 'Pump',\r\n key: 'water-pump',\r\n diagramIcon: '/assets/img/blocks/icons/pump.svg',\r\n paletteIcon: '/assets/img/blocks/palette_icons/pump.svg',\r\n },\r\n waterValve: {\r\n displayName: 'Valve',\r\n key: 'water-valve',\r\n diagramIcon: '/assets/img/blocks/icons/valve.svg',\r\n paletteIcon: '/assets/img/blocks/palette_icons/valve.svg',\r\n },\r\n waterSink: {\r\n displayName: 'Sink',\r\n key: 'water-sink',\r\n diagramIcon: '/assets/img/blocks/icons/genericSink.svg',\r\n paletteIcon: '/assets/img/blocks/palette_icons/genericSink.svg',\r\n },\r\n waterMixer: {\r\n displayName: 'Mixer',\r\n key: 'water-mixer',\r\n diagramIcon: '/assets/img/blocks/icons/mixer.svg',\r\n paletteIcon: '/assets/img/blocks/palette_icons/mixer.svg',\r\n },\r\n waterSplitter: {\r\n displayName: 'Splitter',\r\n key: 'water-splitter',\r\n diagramIcon: '/assets/img/blocks/icons/splitter.svg',\r\n paletteIcon: '/assets/img/blocks/palette_icons/splitter.svg',\r\n },\r\n waterPipe: {\r\n displayName: 'Pipe',\r\n key: 'water-pipe',\r\n diagramIcon: '/assets/img/blocks/icons/pipe.svg',\r\n paletteIcon: '/assets/img/blocks/palette_icons/pipe.svg',\r\n },\r\n waterBoiler: {\r\n displayName: 'Boiler',\r\n key: 'water-boiler',\r\n diagramIcon: '/assets/img/blocks/icons/Boiler.svg',\r\n paletteIcon: '/assets/img/blocks/palette_icons/waterBoiler.svg',\r\n },\r\n waterHeader: {\r\n displayName: 'Header',\r\n key: 'water-header',\r\n diagramIcon: '/assets/img/blocks/icons/waterHeader.svg',\r\n paletteIcon: '/assets/img/blocks/palette_icons/waterHeader.svg',\r\n },\r\n waterCogeneration: {\r\n displayName: 'Cogeneration',\r\n key: 'water-cogeneration',\r\n diagramIcon: '/assets/img/blocks/icons/waterCogeneration.svg',\r\n paletteIcon: '/assets/img/blocks/palette_icons/waterCogeneration.svg',\r\n },\r\n fuelGasUtilityUnitOperation: {\r\n displayName: 'Fuel Gas',\r\n key: 'fuel-gas-utility-unit-operation',\r\n diagramIcon: '/assets/img/blocks/icons/fuelGasUtilityUnitOperation.svg',\r\n paletteIcon: '/assets/img/blocks/palette_icons/fuelGasUtilityUnitOperation.svg',\r\n },\r\n fuelGasFlare: {\r\n displayName: 'Flare',\r\n key: 'fuel-gas-flare',\r\n diagramIcon: '/assets/img/blocks/icons/fuelGasFlare.svg',\r\n paletteIcon: '/assets/img/blocks/palette_icons/thirdPartySource.svg',\r\n },\r\n fuelGasSink: {\r\n displayName: 'Sink',\r\n key: 'fuel-gas-sink',\r\n diagramIcon: '/assets/img/blocks/icons/genericSink.svg',\r\n paletteIcon: '/assets/img/blocks/palette_icons/genericSink.svg',\r\n },\r\n fuelGasSinkImport: {\r\n displayName: 'Gas Use',\r\n key: 'fuel-gas-sink-import',\r\n diagramIcon: '/assets/img/blocks/icons/fuelGasSinkImport.svg',\r\n paletteIcon: '/assets/img/blocks/palette_icons/fuelGasSinkImport.svg',\r\n },\r\n fuelGasSourceImport: {\r\n displayName: 'Gas Make',\r\n key: 'fuel-gas-source-import',\r\n diagramIcon: '/assets/img/blocks/icons/fuelGasSourceImport.svg',\r\n paletteIcon: '/assets/img/blocks/palette_icons/fuelGasSourceImport.svg',\r\n },\r\n fuelGasMixer: {\r\n displayName: 'Mixer',\r\n key: 'fuel-gas-mixer',\r\n diagramIcon: '/assets/img/blocks/icons/genericSink.svg',\r\n paletteIcon: '/assets/img/blocks/palette_icons/genericSink.svg',\r\n },\r\n fuelGasSource: {\r\n displayName: 'Source',\r\n key: 'fuel-gas-source',\r\n diagramIcon: '/assets/img/blocks/icons/diluentSource.svg',\r\n paletteIcon: '/assets/img/blocks/palette_icons/diluentSource.svg',\r\n },\r\n fuelGasSplitter: {\r\n displayName: 'Splitter',\r\n key: 'fuel-gas-splitter',\r\n diagramIcon: '/assets/img/blocks/icons/splitter.svg',\r\n paletteIcon: '/assets/img/blocks/palette_icons/splitter.svg',\r\n },\r\n fuelGasAmineContactor: {\r\n displayName: 'Amine Contactor',\r\n key: 'fuel-gas-amine-contactor',\r\n diagramIcon: '/assets/img/blocks/icons/AmineContactor.svg',\r\n paletteIcon: '/assets/img/blocks/palette_icons/AmineContactor.svg',\r\n },\r\n // endregion\r\n recycleStream: {\r\n diagramIcon: 'assets/img/blocks/icons/recycle.svg',\r\n },\r\n};\r\n\r\nexport function findUnitOperationDisplayNameByCategory(category: string) {\r\n const result = Object.entries(unitOperationsConfig).find((entry: any) => entry[1].key === category)[1];\r\n\r\n return (result as any).displayName;\r\n}\r\n","import { SimulationVariable } from '../simulation-variable';\r\nimport { ConstraintValueChecker } from '../_interfaces/constraint-value-checker';\r\n\r\nexport class SuncorConstraint implements ConstraintValueChecker {\r\n constraint: SimulationVariable;\r\n tolerance = 0.01;\r\n constructor(constraint: SimulationVariable) {\r\n this.constraint = constraint;\r\n this.constraint.isActive = this.constraint.isActive || false;\r\n }\r\n\r\n constraintValueDefined(): boolean {\r\n return (\r\n typeof this.constraint.value !== 'undefined' &&\r\n `${this.constraint.value}` !== '' &&\r\n this.constraint.value !== null &&\r\n !isNaN(this.constraint.value)\r\n );\r\n }\r\n\r\n constraintValueViolated(referenceValue: number): boolean {\r\n return this.constraintValueDefined()\r\n ? (referenceValue - this.constraint.value) / this.constraint.value > this.tolerance\r\n : false;\r\n }\r\n}\r\n","/**\r\n * Class for storing the constraints of a unit operation\r\n */\r\nimport { SuncorConstraint } from './suncor-constraint';\r\nimport { SimulationVariable } from '../simulation-variable';\r\n\r\nexport class UnitOperationConstraints {\r\n constraints: { [id: string]: SuncorConstraint } = {};\r\n\r\n addConstraint(name: string, constraint: SimulationVariable) {\r\n this.constraints[name] = new SuncorConstraint(constraint);\r\n }\r\n\r\n getConstraint(name: string) {\r\n return this.constraints[name];\r\n }\r\n\r\n allConstraintValuesDefined(): boolean {\r\n for (const id in this.constraints) {\r\n if (!this.getConstraint(id).constraintValueDefined()) {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n anyConstraintValueDefined(): boolean {\r\n for (const id in this.constraints) {\r\n if (this.getConstraint(id).constraintValueDefined()) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n constraintValueViolated(id: string, referenceValue: number) {\r\n return this.getConstraint(id).constraintValueViolated(referenceValue);\r\n }\r\n}\r\n","import { SimulationVariable } from '../simulation-variable';\r\nimport { BaseObject } from '../base-object';\r\nimport { DefaultOptionalPropertiesMappedType } from '../default-mapped-type';\r\nimport { Case } from '../case';\r\n\r\nexport class BitumenConversionOutlet extends BaseObject {\r\n unitOperationId: string;\r\n yield: SimulationVariable;\r\n price: SimulationVariable;\r\n fluidAnalysisId: string;\r\n ownerBaseObject: BaseObject;\r\n category = 'bitumenConversionOutlet';\r\n\r\n constructor(\r\n bco: DefaultOptionalPropertiesMappedType<BitumenConversionOutlet>,\r\n ownerCase: Case,\r\n ownerBaseObject: BaseObject\r\n ) {\r\n super(bco.id, ownerCase);\r\n this.ownerBaseObject = ownerBaseObject;\r\n this.initValues(bco);\r\n }\r\n\r\n initValues(bco: DefaultOptionalPropertiesMappedType<BitumenConversionOutlet>) {\r\n this.unitOperationId = bco.unitOperationId;\r\n this.fluidAnalysisId = bco.fluidAnalysisId;\r\n this.yield = new SimulationVariable(bco.yield, this.ownerCase, this);\r\n this.price = new SimulationVariable(bco.price, this.ownerCase, this);\r\n this.setQuantites();\r\n }\r\n\r\n setQuantites() {\r\n this.yield.setQuantity('Percent');\r\n this.price.setQuantity('CurrencyPerVolume');\r\n }\r\n\r\n override dePersist(persistedObj: any) {\r\n if (persistedObj) {\r\n this.yield = this.getSimulationVariableSafe(persistedObj.yield);\r\n this.price = this.getSimulationVariableSafe(persistedObj.price);\r\n }\r\n this.setSimulationVariablesOwner();\r\n }\r\n\r\n toJSON() {\r\n return {\r\n unitOperationId: this.unitOperationId,\r\n yield: this.yield.id,\r\n price: this.price.id,\r\n fluidAnalysisId: this.fluidAnalysisId,\r\n category: this.category,\r\n id: this.id,\r\n };\r\n }\r\n}\r\n","export enum Quantity {\r\n ANGLE = 'Angle',\r\n AREA = 'Area',\r\n CURRENCY = 'Currency',\r\n CURRENCY_PER_ENERGY = 'CurrencyPerEnergy',\r\n CURRENCY_PER_ELECTRICITY = 'CurrencyPerElectricity',\r\n CURRENCY_PER_MASS = 'CurrencyPerMass',\r\n CURRENCY_PER_DISTANCE = 'CurrencyPerDistance',\r\n CURRENCY_PER_STD_H2_VOLUME = 'CurrencyPerStdH2Volume',\r\n CURRENCY_PER_TIME = 'CurrencyPerTime',\r\n CURRENCY_PER_VOLUME = 'CurrencyPerVolume',\r\n DELTA_PRESSURE = 'DeltaPressure',\r\n DELTA_TEMPERATURE = 'DeltaTemperature',\r\n DIMENSIONLESS = 'Dimensionless',\r\n ENERGY_PER_POWER = 'EnergyPerPower',\r\n ENERGY_PER_VOLUME = 'EnergyPerVolume',\r\n ENERGY_PER_MASS = 'EnergyPerMass',\r\n ENERGY_PER_MOLE = 'EnergyPerMole',\r\n ENERGY_PER_TIME = 'EnergyPerTime',\r\n ENERGYRATE = 'Energyrate',\r\n FLOW_COEFFICIENT = 'FlowCoefficient',\r\n FRACTION = 'Fraction',\r\n GAS_STD_VOLUME_PER_VOLUME = 'GasStdVolumePerVolume',\r\n GOR = 'Gor',\r\n HEAT_FLUX_DENSITY = 'HeatFluxDensity',\r\n LENGTH = 'Length',\r\n LIQUID_DENSITY = 'LiquidDensity',\r\n MASS_DENSITY = 'MassDensity',\r\n MASS_EMISSIONS_PER_VOLUME = 'MassEmissionsPerVolume',\r\n MASS_EMISSIONS_PER_FUEL_MASS = 'MassEmissionsPerFuelMass',\r\n MASS_PER_ENERGY = 'MassPerEnergy',\r\n MASS_PER_STD_H2_VOLUME = 'MassPerStdH2Volume',\r\n MASS_PER_VOLUME = 'MassPerVolume',\r\n MASSFLOWRATE = 'Massflowrate',\r\n MASS_FRACTION = 'MassFraction',\r\n MOLARFLOWRATE = 'Molarflowrate',\r\n MOLEFLOWRATE = 'Moleflowrate',\r\n SMALL_GASFLOWRATE = 'SmallGasFlowRate',\r\n MOLAR_DENSITY = 'MolarDensity',\r\n MOLAR_ENTHALPY = 'MolarEnthalpy',\r\n MOLAR_ENTROPY = 'MolarEntropy',\r\n MOLAR_HEAT_CAPACITY = 'MolarHeatCapacity',\r\n MOLAR_WEIGHT = 'MolarWeight',\r\n MOLE_FRACTION = 'MoleFraction',\r\n PERCENT = 'Percent',\r\n POWER = 'Power',\r\n POWER_PER_VOLUMETRIC_FLOW = 'PowerPerVolumetricFlow',\r\n PRESSURE = 'Pressure',\r\n SPEED = 'Speed',\r\n SURFACE_TENSION = 'SurfaceTension',\r\n TEMPERATURE = 'Temperature',\r\n THERMAL_CONDUCTIVITY = 'ThermalConductivity',\r\n TIME = 'Time',\r\n U = 'U',\r\n UA = 'UA',\r\n VISCOSITY = 'Viscosity',\r\n VOLUME = 'Volume',\r\n VOLUME_FRACTION = 'VolumeFraction',\r\n VOLUMETRIC_FLOWRATE = 'Volumetricflowrate',\r\n LARGE_TIME = 'LargeTime',\r\n ENERGY = 'Energy',\r\n EMBODIED_ENERGY = 'EmbodiedEnergy',\r\n INTENSITY = 'Intensity',\r\n MASS_PER_AREA = 'MassPerArea',\r\n CURRENCY_PER_AREA = 'CurrencyPerArea',\r\n CURRENCY_PER_AREA_TIME = 'CurrencyPerAreaTime',\r\n CURRENCY_PER_POWER_CAPACITY = 'CurrencyPerPowerCapacity',\r\n MASS_PER_MASS = 'MassPerMass',\r\n CURRENCY_PER_MASS_TIME = 'CurrencyPerMassTime',\r\n CURRENCY_PER_POWER_CAPACITY_TIME = 'CurrencyPerPowerCapacityTime',\r\n}\r\n","export enum SimulationVariableName {\r\n ANGLE = 'Angle',\r\n AMINE_RATE_CAPACITY = 'Amine Rate Capacity',\r\n CAPACITY = 'Capacity',\r\n COKE_EMISSION_FACTOR = 'Coke Emission Factor',\r\n DUTY = 'Duty',\r\n DEA_USE_RATE = 'DEA Use Rate',\r\n EFFICIENCY = 'Efficiency',\r\n ENERGY_DEMAND = 'Energy Demand',\r\n ENERGY_FLOW = 'Energy Flow',\r\n FLOWRATE = 'Flowrate',\r\n FUEL_GAS_EMISSION_FACTOR = 'Fuel Gas Emission Factor',\r\n FUEL_GAS_FLOWRATE = 'Fuel Gas Flowrate',\r\n FUEL_GAS_HEATING_VALUE = 'Fuel Gas Heating Value',\r\n GAS_LIQUID_CARRY_OVER = 'Gas Liquid Carry Over',\r\n GEOMETRY_FACTOR = 'Geometry Factor',\r\n GHG_EMISSIONS = 'GHG Emissions',\r\n GHG_INTENSITY = 'GHG Intensity',\r\n H2S_PRODUCTION = 'H2S Production',\r\n H2S_PRODUCTION_RATE = 'H2S Production Rate',\r\n H2S_REMOVAL = 'H2S Removal',\r\n HEAT_RATE = 'Heat Rate',\r\n HGO_YIELD = 'HGO Yield',\r\n PROCESS_GHG_INTENSITY = 'Process GHG Intensity',\r\n HYDROGEN_IMBALANCE = 'Hydrogen Excess',\r\n HYDROGEN_USE = 'Hydrogen Use',\r\n HYDROGEN_USE_RATE = 'Hydrogen Use Rate',\r\n HYDROGEN_PRICE = 'Hydrogen Price',\r\n HYDROGEN_PRODUCTION = 'Hydrogen Production',\r\n INSIDE_DIAMETER = 'Inside Diameter',\r\n ISENTROPIC_EFFICIENCY = 'Isentropic Efficiency',\r\n LENGTH = 'Length',\r\n LGO_YIELD = 'LGO Yield',\r\n LIQUID_GAS_CARRY_OVER = 'Liquid Gas Carry Over',\r\n LMTD = 'LMTD',\r\n MASS_FLOWRATE = 'Mass Flowrate',\r\n MAXIMUM_CCR = 'Maximum CCR',\r\n MAXIMUM_DEMAND = 'Maximum Demand',\r\n MAXIMUM_FEED_CAPACITY = 'Maximum Feed Capacity',\r\n MAXIMUM_HYDROGEN_PRODUCTION = 'Maximum Hydrogen Production',\r\n MAXIMUM_NITROGEN = 'Maximum Nitrogen',\r\n MAXIMUM_SULFUR = 'Maximum Sulfur',\r\n MAXIMUM_SULFUR_CONTENT = 'Maximum Sulfur Content',\r\n MINIMUM_API = 'Minimum API',\r\n MAXIMUM_MASS_DENSITY = 'Maximum Mass Density',\r\n MAXIMUM_MASS_FLOWRATE = 'Maximum Mass Flowrate',\r\n MINIMUM_DEMAND = 'Minimum Demand',\r\n MINIMUM_MASS_FLOWRATE = 'Minimum Mass Flowrate',\r\n MINIMUM_FLOW = 'Minimum Flow',\r\n MAXIMUM_FLOW = 'Maximum Flow',\r\n MINIMUM_DUTY = 'Minimum Duty',\r\n MAXIMUM_DUTY = 'Maximum Duty',\r\n OTSG_ENERGY_DEMAND = 'OTSG Energy Demand',\r\n NAPHTHA_YIELD = 'Naphtha Yield',\r\n OIL_YIELD = 'Gas Oil Yield ',\r\n OUTLET_PRESSURE = 'Outlet Pressure',\r\n OUTLET_TEMPERATURE = 'Outlet Temperature',\r\n OUTLET_VAPOR_FRACTION = 'Outlet Vapor Fraction',\r\n OUTSIDE_DIAMETER = 'Outside Diameter',\r\n PERCENT_COKE_TO_COMBUSTION = 'Percent Coke To Combustion',\r\n POLYTROPIC_EFFICIENCY = 'Polytropic Efficiency',\r\n POWER = 'Power',\r\n PRESSURE = 'Pressure',\r\n PRESSURE_DROP = 'Pressure Drop',\r\n PRESSURE_GAIN = 'Pressure Gain',\r\n PRESSURE_RATIO = 'Pressure Ratio',\r\n PRESSURE_DROP_SHELL = 'Pressure Drop Shell',\r\n PRESSURE_DROP_TUBE = 'Pressure Drop Tube',\r\n QUALITY = 'Quality',\r\n RELATIVE_ROUGHNESS = 'Relative Roughness',\r\n STEP_LENGTH = 'Step Length',\r\n SULFUR_CAPACITY = 'Sulfur Capacity',\r\n SULFUR_FLOWRATE = 'Sulfur Flowrate',\r\n SUNCOR_PROFIT_PERCENTAGE = 'Suncor Profit Percentage',\r\n TEMPERATURE = 'Temperature',\r\n TEMPERATURE_DROP = 'Temperature Drop',\r\n TEMPERATURE_GAIN = 'Temperature Gain',\r\n TOTAL_ENERGY_DEMAND = 'Total Energy Demand',\r\n TOTAL_INLET_VOLUME = 'Total Inlet Volume',\r\n TOTAL_YIELD = 'Total Yield',\r\n TURBINE_ENERGY_DEMAND = 'Turbine Energy Demand',\r\n UA = 'UA',\r\n UA_RESULT = 'UA Result',\r\n VAPOR_FRACTION = 'Vapor Fraction',\r\n}\r\n","export const defaultBitumenConversionModel =\r\n '// GetUnitOpInletVolumetricFlowRate(string UnitOperationName)\\n' +\r\n '// Gets the UnitOperationName and returns the Inlet Volumetric Flowrate\\n' +\r\n '// GetStreamVolumetricFlowRate(string MaterialStreamName)\\n' +\r\n '// Gets the MaterialStreamName as string and returns the volumetric Flowrate of any stream in the flowsheet\\n' +\r\n '// GetStreamFlowRate (string MaterialStreamName, FlowrateBasis basis)\\n' +\r\n '// Gets the MaterialStreamName and \"FlowrateBasis\" and return the flowrate\\n' +\r\n '// Valid Options for FlowrateBasis: \\n' +\r\n '// FlowrateBasis.Mass (returns in TPD)| FlowrateBasis.Volume (returns in kbpcd)\\n' +\r\n '// GetStreamVolumetricFlowRate(string MaterialStreamName) \\n' +\r\n '// Gets the MaterialStreamName as string and returns the volumetric Flowrate of any stream in the flowsheet\\n' +\r\n '// GetStreamCutFlowRate(string streamName, SuncorCuts suncorCut, FlowrateBasis basis)\\n' +\r\n '// Gets streamName, SuncorCut and Flowrate basis and returns the cut flowrate for the given stream\\n ' +\r\n '// Valid options for SuncorCut:\\n ' +\r\n '// SuncorCuts.LightEnd, SuncorCuts.LightNaphta, SuncorCuts.HeavyNaphta, \\n' +\r\n '// SuncorCuts.Distillate, SuncorCuts.LightGasOil, SuncorCuts.HeavyGasOil, \\n' +\r\n '// SuncorCuts.VacGasOil, SuncorCuts.HeavyVacGasOil, SuncorCuts.VacuumResidue \\n' +\r\n '// Accessible block variables:\\n' +\r\n '// YieldBasis \\n' +\r\n '// Valid options: YieldBasis.Mass, YieldBasis.Volume)\\n' +\r\n '// ProductYields (Dictionary of stream Name and Corresponding Yield Percent for the stream)\\n' +\r\n '// Example: ProductYields[\"Outlet1\"] = 80.0 \\n';\r\n","export enum BitumenModelTypes {\r\n SIMPLE = 'Simple',\r\n UTILITY = 'Utility',\r\n}\r\n\r\nexport enum BitumenConversionYieldBasis {\r\n VOLUME = 'Volume',\r\n MASS = 'Mass',\r\n}\r\n","export enum UnitOperationReadiness {\r\n UNDEFINED = 'undefined',\r\n NOT_FULLY_CONNECTED = 'not-fully-connected',\r\n NOT_FULLY_SPECIFIED = 'not-fully-specified',\r\n READY = 'ready',\r\n}\r\n","import { IUnitOperation } from './i-unit-operation';\r\nimport { SimulationVariable } from './simulation-variable';\r\nimport { Case } from './case';\r\nimport { BaseObject } from './base-object';\r\nimport { SimulationVariableResourceData } from './_unit-operations/simulation-variable-resource-data';\r\nimport { findUnitOperationDisplayNameByCategory } from '../_config/unit-operations.config';\r\nimport { UnitOperationReadiness } from '../_config/unit-operations/unit-operation-readiness';\r\n\r\nexport abstract class UnitOperation extends BaseObject implements IUnitOperation {\r\n key: number; // damn GoJS\r\n flowsheetId: string; // the flowsheet where the unit op belongs\r\n readiness: UnitOperationReadiness;\r\n location: any = {};\r\n comments: string;\r\n\r\n protected constructor(unitOperation: any, ownerCase: Case) {\r\n super(unitOperation.id, ownerCase);\r\n this.key = unitOperation.key || '';\r\n this.name = unitOperation.name || '';\r\n this.flowsheetId = unitOperation.flowsheetId || '';\r\n\r\n // TODO undefined might not be needed when implemented frontend-based validation\r\n this.readiness = unitOperation.readiness || UnitOperationReadiness.UNDEFINED;\r\n\r\n if (unitOperation.location) {\r\n this.location.x = unitOperation.location.x;\r\n this.location.y = unitOperation.location.y;\r\n }\r\n\r\n this.comments = unitOperation.comments || '';\r\n }\r\n\r\n abstract setSimulationVariableNames();\r\n abstract initValues(unitOperation: any);\r\n\r\n // TODO should be abstract\r\n setQuantities() {}\r\n\r\n // TODO should be abstract\r\n setDefaultValues() {}\r\n\r\n clearResults() {\r\n const simVarsArray = this.getSimVars();\r\n for (const simVar of simVarsArray) {\r\n if (simVar.variableStatus && simVar.isSolverCalculated()) {\r\n simVar.value = undefined;\r\n }\r\n }\r\n }\r\n\r\n saveToGoJS(model: any): void {\r\n const propertiesToSave = this.toNonCircularObject();\r\n const nodeData = model.findNodeDataForKey(this.key);\r\n model.startTransaction('save');\r\n\r\n let property: any;\r\n // eslint-disable-next-line guard-for-in\r\n for (property in propertiesToSave) {\r\n model.setDataProperty(nodeData, property, propertiesToSave[property]);\r\n }\r\n\r\n model.commitTransaction('save');\r\n }\r\n\r\n protected override isPropertyBlackListed(property: any): boolean {\r\n return property instanceof Case || typeof property === 'function' || property instanceof UnitOperation;\r\n }\r\n\r\n ignoreForMakeReady(simvar: SimulationVariable): boolean {\r\n return false;\r\n }\r\n\r\n loadResourceData(resourceData) {\r\n if (resourceData) {\r\n Object.keys(resourceData).forEach(prop => {\r\n const simvar = this[prop] as SimulationVariable;\r\n const data = resourceData[prop] as SimulationVariableResourceData;\r\n if (simvar && data) {\r\n simvar.lowerBound = data.lowerBound;\r\n simvar.upperBound = data.upperBound;\r\n }\r\n });\r\n }\r\n }\r\n\r\n getCategoryDisplayName(): string {\r\n return findUnitOperationDisplayNameByCategory(this.category);\r\n }\r\n\r\n resetReadiness() {\r\n this.readiness = UnitOperationReadiness.UNDEFINED;\r\n }\r\n\r\n get isFlowsheetOwner() {\r\n return false;\r\n }\r\n\r\n // TODO: this should be at BaseObject class check if the isPropertyBlackListed affects.\r\n public toJSON(): any {\r\n const objectToSerialize: any = {};\r\n let val: any;\r\n for (val in this) {\r\n if (this.isPropertyBlackListed(this[val])) {\r\n continue;\r\n }\r\n\r\n // only simulation variable id will be serialized\r\n // maybe detect all base objects?\r\n if (this[val] instanceof SimulationVariable) {\r\n objectToSerialize[val] = (<SimulationVariable>this[val]).id;\r\n } else if (this.isPropertyBlackListed(this[val])) {\r\n // welp, nothing\r\n } else {\r\n objectToSerialize[val] = this[val];\r\n }\r\n }\r\n\r\n return objectToSerialize;\r\n }\r\n}\r\n","import { IUnitOperation } from '../i-unit-operation';\r\nimport { SimulationVariable } from '../simulation-variable';\r\nimport { UnitOperation } from '../unit-operation';\r\nimport { Quantity } from '../../_config/quantity.enum';\r\nimport { SimulationVariableName } from '../../_config/simulation-variable-name.enum';\r\n\r\ndeclare let unitConverter: any;\r\n\r\nexport abstract class SuncorUnitOperation extends UnitOperation implements IUnitOperation {\r\n capacity: SimulationVariable;\r\n // yield: SimulationVariable; No longer seen\r\n ghgEmissions: SimulationVariable;\r\n ghgIntensity: SimulationVariable;\r\n minimumFlow: SimulationVariable;\r\n unitValue: SimulationVariable;\r\n revenue: SimulationVariable;\r\n electricityPrice: SimulationVariable;\r\n\r\n // OPEX/CAPEX\r\n opexFixed: SimulationVariable;\r\n opexVar: SimulationVariable;\r\n opexGasDiesel: SimulationVariable;\r\n opexPower: SimulationVariable;\r\n opexCarbonDioxide: SimulationVariable;\r\n opexTotal: SimulationVariable;\r\n\r\n capexAmortized: SimulationVariable;\r\n capexTotal: SimulationVariable;\r\n\r\n inletCutMassFlows: number[] = [];\r\n outletCutMassFlows: number[] = [];\r\n\r\n override initValues(unitOperation: any): void {\r\n this.unitValue = new SimulationVariable(unitOperation.unitValue, this.ownerCase, this);\r\n this.revenue = new SimulationVariable(unitOperation.revenue, this.ownerCase, this);\r\n this.electricityPrice = new SimulationVariable(unitOperation.electricityPrice, this.ownerCase, this);\r\n\r\n this.opexFixed = new SimulationVariable(unitOperation.opexFixed, this.ownerCase, this);\r\n this.opexVar = new SimulationVariable(unitOperation.opexVar, this.ownerCase, this);\r\n this.opexGasDiesel = new SimulationVariable(unitOperation.opexGasDiesel, this.ownerCase, this);\r\n this.opexPower = new SimulationVariable(unitOperation.opexPower, this.ownerCase, this);\r\n this.opexCarbonDioxide = new SimulationVariable(unitOperation.opexCarbonDioxide, this.ownerCase, this);\r\n this.opexTotal = new SimulationVariable(unitOperation.opexTotal, this.ownerCase, this);\r\n this.capexAmortized = new SimulationVariable(unitOperation.capexAmortized, this.ownerCase, this);\r\n this.capexTotal = new SimulationVariable(unitOperation.capexTotal, this.ownerCase, this);\r\n this.capacity = new SimulationVariable(unitOperation.capacity, this.ownerCase, this);\r\n this.minimumFlow = new SimulationVariable(unitOperation.minimumFlow, this.ownerCase, this);\r\n // this.yield = new SimulationVariable(unitOperation.yield, this.ownerCase, this);\r\n this.ghgEmissions = new SimulationVariable(unitOperation.ghgEmissions, this.ownerCase, this);\r\n this.ghgIntensity = new SimulationVariable(unitOperation.ghgIntensity, this.ownerCase, this);\r\n this.inletCutMassFlows = unitOperation.inletCutMassFlows || [];\r\n this.outletCutMassFlows = unitOperation.outletCutMassFlows || [];\r\n }\r\n\r\n override setDefaultValues(): void {\r\n if (this.opexFixed.isUndefined()) {\r\n this.opexFixed.setDefaultValue(0.0);\r\n }\r\n if (this.opexVar.isUndefined()) {\r\n this.opexVar.setDefaultValue(0.0);\r\n }\r\n if (this.opexGasDiesel.isUndefined()) {\r\n this.opexGasDiesel.setDefaultValue(0.0);\r\n }\r\n if (this.opexPower.isUndefined()) {\r\n this.opexPower.setDefaultValue(0.0);\r\n }\r\n if (this.opexCarbonDioxide.isUndefined()) {\r\n this.opexCarbonDioxide.setDefaultValue(0.0);\r\n }\r\n if (this.opexTotal.isUndefined()) {\r\n this.opexTotal.setDefaultValue(0.0);\r\n }\r\n\r\n if (this.capexAmortized.isUndefined()) {\r\n this.capexAmortized.setDefaultValue(0.0);\r\n }\r\n\r\n if (this.capexTotal.isUndefined()) {\r\n this.capexTotal.setDefaultValue(0.0);\r\n }\r\n\r\n if (this.unitValue.isUndefined()) {\r\n this.unitValue.setDefaultValue(0.0);\r\n }\r\n if (this.revenue.isUndefined()) {\r\n this.revenue.setDefaultValue(0.0);\r\n }\r\n if (this.electricityPrice.isUndefined()) {\r\n this.electricityPrice.setDefaultValue(45.0);\r\n }\r\n\r\n // if (this.yield.isUndefined()) {\r\n // this.yield.setDefaultValue(0.0);\r\n // }\r\n\r\n if (this.ghgEmissions.isUndefined()) {\r\n this.ghgEmissions.setDefaultValue(0.0, unitConverter.units.Massflowrate.MMTPA);\r\n }\r\n\r\n if (this.ghgIntensity.isUndefined()) {\r\n this.ghgIntensity.setDefaultValue(0.0, unitConverter.units.MassPerVolume.KG_BBL);\r\n }\r\n }\r\n\r\n override setQuantities() {\r\n this.unitValue.setQuantity(Quantity.CURRENCY_PER_TIME);\r\n this.revenue.setQuantity(Quantity.CURRENCY_PER_TIME);\r\n this.electricityPrice.setQuantity(Quantity.CURRENCY_PER_ELECTRICITY);\r\n this.opexFixed.setQuantity(Quantity.CURRENCY_PER_TIME);\r\n this.opexVar.setQuantity(Quantity.CURRENCY_PER_VOLUME);\r\n this.opexGasDiesel.setQuantity(Quantity.CURRENCY_PER_VOLUME);\r\n this.opexPower.setQuantity(Quantity.CURRENCY_PER_VOLUME);\r\n this.opexCarbonDioxide.setQuantity(Quantity.CURRENCY_PER_VOLUME);\r\n this.opexTotal.setQuantity(Quantity.CURRENCY_PER_TIME);\r\n this.capexAmortized.setQuantity(Quantity.CURRENCY_PER_TIME);\r\n this.capexTotal.setQuantity(Quantity.CURRENCY_PER_TIME);\r\n this.capacity.setQuantity(Quantity.VOLUMETRIC_FLOWRATE);\r\n this.minimumFlow.setQuantity(Quantity.VOLUMETRIC_FLOWRATE);\r\n // this.yield.setQuantity('Percent');\r\n this.ghgEmissions.setQuantity(Quantity.MASSFLOWRATE);\r\n this.ghgIntensity.setQuantity(Quantity.MASS_PER_VOLUME);\r\n }\r\n\r\n override setSimulationVariableNames() {\r\n this.unitValue.setName('Unit Value');\r\n this.revenue.setName('Revenue');\r\n this.electricityPrice.setName('Electricity Price');\r\n this.opexFixed.setName('OPEX Fixed');\r\n this.opexVar.setName('OPEX Var');\r\n this.opexGasDiesel.setName('OPEX Gas Diesel');\r\n this.opexPower.setName('OPEX Power');\r\n this.opexCarbonDioxide.setName('OPEX CO2');\r\n this.opexTotal.setName('OPEX Total');\r\n this.capexTotal.setName('CAPEX Total');\r\n this.capacity.setName(SimulationVariableName.MAXIMUM_FEED_CAPACITY);\r\n this.minimumFlow.setName(SimulationVariableName.MINIMUM_FLOW);\r\n this.capexAmortized.setName('CAPEX Amortized');\r\n // this.yield.setName('Yield');\r\n this.ghgEmissions.setName('GHG Emissions');\r\n this.ghgIntensity.setName('GHG Intensity');\r\n }\r\n\r\n override dePersist(serializedUnitOperation: any) {\r\n this.location = { x: +serializedUnitOperation.location.x, y: +serializedUnitOperation.location.y };\r\n this.unitValue = this.getSimulationVariableSafe(serializedUnitOperation.unitValue);\r\n this.revenue = this.getSimulationVariableSafe(serializedUnitOperation.revenue);\r\n this.electricityPrice = this.getSimulationVariableSafe(serializedUnitOperation.electricityPrice);\r\n this.opexFixed = this.getSimulationVariableSafe(serializedUnitOperation.opexFixed);\r\n this.opexVar = this.getSimulationVariableSafe(serializedUnitOperation.opexVar);\r\n this.opexGasDiesel = this.getSimulationVariableSafe(serializedUnitOperation.opexGasDiesel);\r\n this.opexPower = this.getSimulationVariableSafe(serializedUnitOperation.opexPower);\r\n this.opexCarbonDioxide = this.getSimulationVariableSafe(serializedUnitOperation.opexCarbonDioxide);\r\n this.opexTotal = this.getSimulationVariableSafe(serializedUnitOperation.opexTotal);\r\n this.capexAmortized = this.getSimulationVariableSafe(serializedUnitOperation.capexAmortized);\r\n this.capexTotal = this.getSimulationVariableSafe(serializedUnitOperation.capexTotal);\r\n this.capacity = this.getSimulationVariableSafe(serializedUnitOperation.capacity);\r\n this.minimumFlow = this.getSimulationVariableSafe(serializedUnitOperation.minimumFlow);\r\n this.ghgEmissions = this.getSimulationVariableSafe(serializedUnitOperation.ghgEmissions);\r\n this.ghgIntensity = this.getSimulationVariableSafe(serializedUnitOperation.ghgIntensity);\r\n this.setQuantities();\r\n }\r\n\r\n /**\r\n * For getting the GHG intensity to be displayed in the summary report charts\r\n * @returns {number}\r\n */\r\n abstract getAlternativeGhgIntensity(): SimulationVariable;\r\n\r\n override clearResults() {\r\n super.clearResults();\r\n this.ghgEmissions.value = undefined;\r\n this.opexCarbonDioxide.value = undefined;\r\n this.opexTotal.value = undefined;\r\n this.capexTotal.value = undefined;\r\n }\r\n}\r\n","export enum SteamType {\r\n Steam900 = '#900',\r\n Steam600 = '#600',\r\n Steam150 = '#150',\r\n Steam50 = '#50',\r\n}\r\n","import { SuncorUnitOperation } from './suncor-unit-operation';\r\nimport { SimulationVariable } from '../simulation-variable';\r\nimport { SteamType } from '../../_config/steam-type.enum';\r\n\r\nexport abstract class SteamUseUnitOperation extends SuncorUnitOperation {\r\n steamMake900: SimulationVariable;\r\n steamUse900: SimulationVariable;\r\n steamMake600: SimulationVariable;\r\n steamUse600: SimulationVariable;\r\n steamMake150: SimulationVariable;\r\n steamUse150: SimulationVariable;\r\n steamMake50: SimulationVariable;\r\n steamUse50: SimulationVariable;\r\n // custom model\r\n useSteamCustomModel: boolean;\r\n steamModelScript: string;\r\n\r\n override initValues(unitOperation: any): void {\r\n super.initValues(unitOperation);\r\n this.steamMake900 = new SimulationVariable(unitOperation.steamMake900 || {}, this.ownerCase, this);\r\n this.steamUse900 = new SimulationVariable(unitOperation.steamUse900 || {}, this.ownerCase, this);\r\n this.steamMake600 = new SimulationVariable(unitOperation.steamMake600 || {}, this.ownerCase, this);\r\n this.steamUse600 = new SimulationVariable(unitOperation.steamUse600 || {}, this.ownerCase, this);\r\n this.steamMake150 = new SimulationVariable(unitOperation.steamMake150 || {}, this.ownerCase, this);\r\n this.steamUse150 = new SimulationVariable(unitOperation.steamUse150 || {}, this.ownerCase, this);\r\n this.steamMake50 = new SimulationVariable(unitOperation.steamMake50 || {}, this.ownerCase, this);\r\n this.steamUse50 = new SimulationVariable(unitOperation.steamUse50 || {}, this.ownerCase, this);\r\n this.useSteamCustomModel = !!unitOperation.useSteamCustomModel;\r\n this.steamModelScript = unitOperation.steamModelScript || '';\r\n }\r\n\r\n override setQuantities() {\r\n super.setQuantities();\r\n this.steamMake900.setQuantity('Massflowrate');\r\n this.steamUse900.setQuantity('Massflowrate');\r\n this.steamMake600.setQuantity('Massflowrate');\r\n this.steamUse600.setQuantity('Massflowrate');\r\n this.steamMake150.setQuantity('Massflowrate');\r\n this.steamUse150.setQuantity('Massflowrate');\r\n this.steamMake50.setQuantity('Massflowrate');\r\n this.steamUse50.setQuantity('Massflowrate');\r\n }\r\n\r\n override setSimulationVariableNames() {\r\n super.setSimulationVariableNames();\r\n\r\n this.steamMake900.setName('#900 Steam Make');\r\n this.steamMake600.setName('#600 Steam Make');\r\n this.steamMake150.setName('#150 Steam Make');\r\n this.steamMake50.setName('#50 Steam Make');\r\n\r\n this.steamUse900.setName('#900 Steam Use');\r\n this.steamUse600.setName('#600 Steam Use');\r\n this.steamUse150.setName('#150 Steam Use');\r\n this.steamUse50.setName('#50 Steam Use');\r\n }\r\n\r\n override dePersist(uo: any) {\r\n super.dePersist(uo);\r\n this.steamMake900 = this.getSimulationVariableSafe(uo.steamMake900);\r\n this.steamUse900 = this.getSimulationVariableSafe(uo.steamUse900);\r\n this.steamMake600 = this.getSimulationVariableSafe(uo.steamMake600);\r\n this.steamUse600 = this.getSimulationVariableSafe(uo.steamUse600);\r\n this.steamMake150 = this.getSimulationVariableSafe(uo.steamMake150);\r\n this.steamUse150 = this.getSimulationVariableSafe(uo.steamUse150);\r\n this.steamMake50 = this.getSimulationVariableSafe(uo.steamMake50);\r\n this.steamUse50 = this.getSimulationVariableSafe(uo.steamUse50);\r\n }\r\n\r\n override clearResults() {\r\n super.clearResults();\r\n this.steamMake900.value = null;\r\n this.steamUse900.value = null;\r\n this.steamMake600.value = null;\r\n this.steamUse600.value = null;\r\n this.steamMake150.value = null;\r\n this.steamUse150.value = null;\r\n this.steamMake50.value = null;\r\n this.steamUse50.value = null;\r\n }\r\n\r\n getSteamMakeVariableByType(steamType: SteamType): SimulationVariable {\r\n switch (steamType) {\r\n case SteamType.Steam900:\r\n return this.steamMake900;\r\n case SteamType.Steam600:\r\n return this.steamMake600;\r\n case SteamType.Steam150:\r\n return this.steamMake150;\r\n case SteamType.Steam50:\r\n return this.steamMake50;\r\n }\r\n }\r\n\r\n getSteamUseVariableByType(steamType: SteamType): SimulationVariable {\r\n switch (steamType) {\r\n case SteamType.Steam900:\r\n return this.steamUse900;\r\n case SteamType.Steam600:\r\n return this.steamUse600;\r\n case SteamType.Steam150:\r\n return this.steamUse150;\r\n case SteamType.Steam50:\r\n return this.steamUse50;\r\n }\r\n }\r\n\r\n override detectChanges(another: any): boolean {\r\n const changes = super.detectChanges(another);\r\n return changes || another.steamModelScript !== this.steamModelScript;\r\n }\r\n}\r\n","import { SteamUseUnitOperation } from './steam-use-unit-operation';\r\nimport { SimulationVariable } from '../simulation-variable';\r\nimport { Quantity } from '../../_config/quantity.enum';\r\nimport { VariableStatus } from '../../_config/variable-status.enum';\r\n\r\ndeclare let unitConverter: any;\r\nexport abstract class GasContributorUnitOperation extends SteamUseUnitOperation {\r\n energyFlow: SimulationVariable;\r\n flowrate: SimulationVariable;\r\n fuelGasEmissionFactor: SimulationVariable;\r\n fuelGasHeatingValue: SimulationVariable;\r\n useCustomGasModel: boolean;\r\n gasModelScript: string;\r\n gasAnalysisId: string;\r\n\r\n override initValues(unitOperation: any) {\r\n super.initValues(unitOperation);\r\n\r\n this.energyFlow = new SimulationVariable(unitOperation.energyFlow || {}, this.ownerCase, this);\r\n this.flowrate = new SimulationVariable(unitOperation.flowrate || {}, this.ownerCase, this);\r\n this.fuelGasEmissionFactor = new SimulationVariable(\r\n unitOperation.fuelGasEmissionFactor || {},\r\n this.ownerCase,\r\n this\r\n );\r\n this.fuelGasHeatingValue = new SimulationVariable(unitOperation.fuelGasHeatingValue || {}, this.ownerCase, this);\r\n this.useCustomGasModel = !!unitOperation.useCustomGasModel;\r\n this.gasModelScript = unitOperation.gasModelScript || '';\r\n this.gasAnalysisId = unitOperation.gasAnalysisId || '';\r\n }\r\n\r\n override clearResults() {\r\n super.clearResults();\r\n this.energyFlow.value = undefined;\r\n this.flowrate.value = undefined;\r\n\r\n if (this.fuelGasHeatingValue.isSolverCalculated()) {\r\n this.fuelGasHeatingValue.variableStatus = VariableStatus.UNDEFINED;\r\n this.setDefaultValues();\r\n }\r\n\r\n if (this.fuelGasEmissionFactor.isSolverCalculated()) {\r\n this.fuelGasEmissionFactor.variableStatus = VariableStatus.UNDEFINED;\r\n this.setDefaultValues();\r\n }\r\n }\r\n\r\n override setQuantities() {\r\n super.setQuantities();\r\n\r\n this.energyFlow.setQuantity(Quantity.ENERGYRATE);\r\n this.flowrate.setQuantity(Quantity.MOLARFLOWRATE);\r\n this.fuelGasEmissionFactor.setQuantity(Quantity.MASS_EMISSIONS_PER_VOLUME);\r\n this.fuelGasHeatingValue.setQuantity(Quantity.ENERGY_PER_VOLUME);\r\n }\r\n\r\n override setDefaultValues(): void {\r\n super.setDefaultValues();\r\n if (this.fuelGasEmissionFactor.isUndefined()) {\r\n this.fuelGasEmissionFactor.setDefaultValue(0.0702, unitConverter.units.MassEmissionsPerVolume.KG_SCF);\r\n }\r\n if (this.fuelGasHeatingValue.isUndefined()) {\r\n this.fuelGasHeatingValue.setDefaultValue(1088.3, unitConverter.units.EnergyPerVolume.BTU_SCF);\r\n }\r\n }\r\n\r\n override dePersist(uo: any) {\r\n super.dePersist(uo);\r\n\r\n this.energyFlow = this.getSimulationVariableSafe(uo.energyFlow);\r\n this.flowrate = this.getSimulationVariableSafe(uo.flowrate);\r\n this.fuelGasEmissionFactor = this.getSimulationVariableSafe(uo.fuelGasEmissionFactor);\r\n this.fuelGasHeatingValue = this.getSimulationVariableSafe(uo.fuelGasHeatingValue);\r\n }\r\n\r\n override detectChanges(another: any): boolean {\r\n const changes = super.detectChanges(another);\r\n return changes || another.gasModelScript !== this.gasModelScript;\r\n }\r\n}\r\n","import { SimulationVariable } from '../simulation-variable';\r\nimport { IUnitOperation } from '../i-unit-operation';\r\nimport { Case } from '../case';\r\nimport { UnitOperationConstraints } from './unit-operation-constraints';\r\nimport { ConstrainableObject } from '../_interfaces/constrainable-object';\r\nimport { BitumenConversionOutlet } from './bitumen-conversion-outlet';\r\nimport { Quantity } from '../../_config/quantity.enum';\r\nimport { KpiProvider } from '../_case-study/kpi-provider';\r\nimport { MultiPeriodParameterProvider } from '../_multi-period/multi-period-parameter-provider';\r\nimport { SimulationVariableName } from '../../_config/simulation-variable-name.enum';\r\nimport { ParameterProvider } from '../_case-study/parameter-provider';\r\nimport { DefaultMappedType } from '../default-mapped-type';\r\nimport { defaultBitumenConversionModel } from '../../_config/unit-operations/default-models/default-bitumen-conversion-model';\r\nimport { BitumenConversionYieldBasis, BitumenModelTypes } from '../../_config/unit-operations/bitumen-conversion-enums';\r\nimport { GasContributorUnitOperation } from './gas-contributor-unit-operation';\r\nimport { unitOperationsConfig } from '../../_config/unit-operations.config';\r\n\r\ndeclare let unitConverter: any;\r\n\r\nexport class BitumenConversion\r\n extends GasContributorUnitOperation\r\n implements IUnitOperation, ConstrainableObject, MultiPeriodParameterProvider, KpiProvider, ParameterProvider\r\n{\r\n category = unitOperationsConfig.bitumenConversion.key;\r\n\r\n yieldBasis: BitumenConversionYieldBasis;\r\n volumetricYield: SimulationVariable;\r\n totalYield: SimulationVariable;\r\n productPrice: SimulationVariable;\r\n powerUseRate: SimulationVariable;\r\n naturalGasUseRate: SimulationVariable;\r\n hydrogenUseRate: SimulationVariable;\r\n hydrogenImbalance: SimulationVariable;\r\n absoluteGhgEmissions: SimulationVariable;\r\n fluidAnalysisId: string;\r\n hydrogenUse: SimulationVariable;\r\n powerEmissionFactor: SimulationVariable;\r\n powerPrice: SimulationVariable;\r\n hydrogenEmissionFactor: SimulationVariable;\r\n hydrogenPrice: SimulationVariable;\r\n naturalGasEmissionFactor: SimulationVariable;\r\n naturalGasPrice: SimulationVariable;\r\n outlets: BitumenConversionOutlet[] = [];\r\n modelType: BitumenModelTypes;\r\n constraints: UnitOperationConstraints;\r\n\r\n useCustomModel = false;\r\n customModelScript = '';\r\n\r\n /**\r\n *\r\n */\r\n constructor(unitOperation: any, ownerCase: Case) {\r\n super(unitOperation, ownerCase);\r\n this.initValues(unitOperation);\r\n this.setSimulationVariableNames();\r\n }\r\n\r\n override initValues(unitOperation: DefaultMappedType<BitumenConversion>): void {\r\n super.initValues(unitOperation);\r\n this.yieldBasis = unitOperation.yieldBasis || BitumenConversionYieldBasis.VOLUME;\r\n this.totalYield = new SimulationVariable(unitOperation.totalYield, this.ownerCase, this);\r\n this.productPrice = new SimulationVariable(unitOperation.productPrice, this.ownerCase, this);\r\n this.powerUseRate = new SimulationVariable(unitOperation.powerUseRate, this.ownerCase, this);\r\n this.naturalGasUseRate = new SimulationVariable(unitOperation.naturalGasUseRate, this.ownerCase, this);\r\n this.hydrogenUseRate = new SimulationVariable(unitOperation.hydrogenUseRate, this.ownerCase, this);\r\n this.hydrogenImbalance = new SimulationVariable(unitOperation.hydrogenImbalance, this.ownerCase, this);\r\n this.absoluteGhgEmissions = new SimulationVariable(unitOperation.absoluteGhgEmissions, this.ownerCase, this);\r\n this.fluidAnalysisId = unitOperation.fluidAnalysisId || '';\r\n this.volumetricYield = new SimulationVariable(unitOperation.volumetricYield, this.ownerCase, this);\r\n\r\n this.powerEmissionFactor = new SimulationVariable(unitOperation.powerEmissionFactor || {}, this.ownerCase, this);\r\n this.powerPrice = new SimulationVariable(unitOperation.powerPrice || {}, this.ownerCase, this);\r\n this.hydrogenEmissionFactor = new SimulationVariable(\r\n unitOperation.hydrogenEmissionFactor || {},\r\n this.ownerCase,\r\n this\r\n );\r\n this.hydrogenPrice = new SimulationVariable(unitOperation.hydrogenPrice || {}, this.ownerCase, this);\r\n this.naturalGasEmissionFactor = new SimulationVariable(\r\n unitOperation.naturalGasEmissionFactor || {},\r\n this.ownerCase,\r\n this\r\n );\r\n this.naturalGasPrice = new SimulationVariable(unitOperation.naturalGasPrice || {}, this.ownerCase, this);\r\n this.hydrogenUse = new SimulationVariable(unitOperation.hydrogenUse || {}, this.ownerCase, this);\r\n\r\n this.modelType = unitOperation.modelType || BitumenModelTypes.UTILITY;\r\n\r\n if (unitOperation.outlets instanceof Array) {\r\n for (let i = 0; i < unitOperation.outlets.length; i++) {\r\n const o = unitOperation.outlets[i];\r\n this.outlets.push(new BitumenConversionOutlet(o, this.ownerCase, this));\r\n }\r\n }\r\n\r\n this.customModelScript = unitOperation.customModelScript ?? defaultBitumenConversionModel;\r\n this.useCustomModel = !!unitOperation.useCustomModel;\r\n\r\n this.initConstraints();\r\n }\r\n\r\n initConstraints() {\r\n this.constraints = new UnitOperationConstraints();\r\n this.constraints.addConstraint('capacity', this.capacity);\r\n }\r\n\r\n override addSimVarsToPool() {\r\n super.addSimVarsToPool();\r\n this.outlets.forEach((outlet: BitumenConversionOutlet) => {\r\n outlet.addSimVarsToPool();\r\n });\r\n }\r\n\r\n getAvailableKpis(): SimulationVariable[] {\r\n return [\r\n this.volumetricYield,\r\n this.productPrice,\r\n this.hydrogenUse,\r\n this.ghgIntensity,\r\n this.ghgEmissions,\r\n this.opexTotal,\r\n this.capexTotal,\r\n this.powerUseRate,\r\n this.powerPrice,\r\n this.powerEmissionFactor,\r\n this.hydrogenEmissionFactor,\r\n this.naturalGasUseRate,\r\n this.naturalGasPrice,\r\n this.naturalGasEmissionFactor,\r\n ];\r\n }\r\n\r\n getAvailableParametricStudyParameters(): SimulationVariable[] {\r\n return [\r\n this.hydrogenUseRate,\r\n this.ghgIntensity,\r\n this.opexFixed,\r\n this.opexVar,\r\n this.capexAmortized,\r\n this.powerUseRate,\r\n this.powerPrice,\r\n this.powerEmissionFactor,\r\n this.hydrogenPrice,\r\n this.hydrogenEmissionFactor,\r\n this.naturalGasUseRate,\r\n this.naturalGasPrice,\r\n this.naturalGasEmissionFactor,\r\n ];\r\n }\r\n\r\n override clearResults() {}\r\n\r\n protected override ignoreForOverWrite(propertyName: string): boolean {\r\n return super.ignoreForOverWrite(propertyName) || propertyName === 'outlets';\r\n }\r\n\r\n override overwriteValues(another: any) {\r\n super.overwriteValues(another);\r\n this.outlets.forEach((outlet: BitumenConversionOutlet, index) => {\r\n outlet.yield.overwriteValues(another.outlets[index].yield);\r\n outlet.price.overwriteValues(another.outlets[index].price);\r\n outlet.fluidAnalysisId = another.outlets[index].fluidAnalysisId;\r\n });\r\n }\r\n\r\n override setSimulationVariablesOwner() {\r\n super.setSimulationVariablesOwner();\r\n }\r\n\r\n override setSimulationVariableNames(): void {\r\n super.setSimulationVariableNames();\r\n this.totalYield.setName('Total Yield');\r\n this.volumetricYield.setName('Yield');\r\n this.absoluteGhgEmissions.setName('Absolute GHG Emissions');\r\n this.productPrice.setName('Product price');\r\n this.powerUseRate.setName('Power use rate');\r\n this.hydrogenUseRate.setName('Hydrogen use rate');\r\n this.naturalGasUseRate.setName('Natural gas use rate');\r\n this.capacity.setName(SimulationVariableName.CAPACITY);\r\n this.hydrogenImbalance.setName(SimulationVariableName.HYDROGEN_IMBALANCE);\r\n this.hydrogenUse.setName('Hydrogen Use');\r\n this.hydrogenPrice.setName(SimulationVariableName.HYDROGEN_PRICE);\r\n this.ghgIntensity.setName('GHG intensity');\r\n this.ghgEmissions.setName('GHG Emissions');\r\n this.opexTotal.setName('Total OPEX');\r\n this.capexTotal.setName('Total CAPEX');\r\n this.powerPrice.setName('Power Price');\r\n this.powerEmissionFactor.setName('Power Emission Factor');\r\n this.hydrogenEmissionFactor.setName('Hydrogen Emission Factor');\r\n this.naturalGasPrice.setName('Natural Gas Price');\r\n this.naturalGasEmissionFactor.setName('Natural Gas Emission Factor');\r\n }\r\n\r\n override setDefaultValues(): void {\r\n if (this.totalYield.isUndefined()) {\r\n this.totalYield.setDefaultValue(90.0);\r\n }\r\n\r\n if (this.naturalGasUseRate.isUndefined()) {\r\n this.naturalGasUseRate.setDefaultValue(undefined, unitConverter.units.EnergyPerVolume.MJ_M3);\r\n }\r\n\r\n if (this.hydrogenEmissionFactor.isUndefined()) {\r\n this.hydrogenEmissionFactor.setDefaultValue(8500, unitConverter.units.MassPerStdH2Volume.KGCO2E_tonne);\r\n }\r\n\r\n if (this.hydrogenPrice.isUndefined()) {\r\n this.hydrogenPrice.setDefaultValue(1600, unitConverter.units.CurrencyPerStdH2Volume.CAD_tonne);\r\n }\r\n\r\n if (this.powerEmissionFactor.isUndefined()) {\r\n this.powerEmissionFactor.setDefaultValue(0.5, unitConverter.units.MassPerEnergy.KG_KWH);\r\n }\r\n\r\n if (this.powerPrice.isUndefined()) {\r\n this.powerPrice.setDefaultValue(40, unitConverter.units.CurrencyPerElectricity.CAD_MEGAWH);\r\n }\r\n\r\n if (this.naturalGasEmissionFactor.isUndefined()) {\r\n this.naturalGasEmissionFactor.setDefaultValue(55.32);\r\n }\r\n\r\n if (this.naturalGasPrice.isUndefined()) {\r\n this.naturalGasPrice.setDefaultValue(4.28);\r\n }\r\n\r\n if (this.absoluteGhgEmissions.isUndefined()) {\r\n this.absoluteGhgEmissions.setDefaultValue(0.0, unitConverter.units.Massflowrate.MMTPA);\r\n }\r\n\r\n super.setDefaultValues();\r\n }\r\n\r\n override setQuantities() {\r\n super.setQuantities();\r\n this.totalYield.setQuantity(Quantity.PERCENT);\r\n this.naturalGasUseRate.setQuantity(Quantity.ENERGY_PER_VOLUME);\r\n this.hydrogenUseRate.setQuantity(Quantity.GAS_STD_VOLUME_PER_VOLUME);\r\n this.powerUseRate.setQuantity(Quantity.POWER_PER_VOLUMETRIC_FLOW);\r\n this.absoluteGhgEmissions.setQuantity(Quantity.MASSFLOWRATE);\r\n this.productPrice.setQuantity(Quantity.CURRENCY_PER_VOLUME);\r\n this.volumetricYield.setQuantity('Percent');\r\n this.hydrogenImbalance.setQuantity(Quantity.MASSFLOWRATE);\r\n this.powerEmissionFactor.setQuantity(Quantity.MASS_PER_ENERGY);\r\n this.powerPrice.setQuantity(Quantity.CURRENCY_PER_ELECTRICITY);\r\n this.hydrogenEmissionFactor.setQuantity(Quantity.MASS_PER_STD_H2_VOLUME);\r\n this.hydrogenPrice.setQuantity(Quantity.CURRENCY_PER_STD_H2_VOLUME);\r\n this.hydrogenUse.setQuantity(Quantity.MOLEFLOWRATE);\r\n this.naturalGasPrice.setQuantity(Quantity.CURRENCY_PER_ENERGY);\r\n this.naturalGasEmissionFactor.setQuantity(Quantity.MASS_PER_ENERGY);\r\n }\r\n\r\n override convertToInternalUnit() {\r\n super.convertToInternalUnit();\r\n this.outlets.forEach(outlet => {\r\n outlet.price.value = outlet.price.convertToInternalUnit();\r\n outlet.yield.value = outlet.yield.convertToInternalUnit();\r\n });\r\n }\r\n\r\n override detectChanges(another: BitumenConversion) {\r\n return super.detectChanges(another);\r\n }\r\n // getSimVars(): Array<SimulationVariable> {\r\n // const simvars = super.getSimVars();\r\n // this.outlets.forEach((outlet: BitumenConversionOutlet) => {\r\n // simvars.push(outlet.price);\r\n // simvars.push(outlet.yield);\r\n // });\r\n // return simvars;\r\n // }\r\n\r\n override getChildrenObjectsForRemoval() {\r\n return super.getChildrenObjectsForRemoval();\r\n }\r\n\r\n override updateStatus(another: BitumenConversion) {\r\n this.updateSimulationVariablesStatus(another);\r\n }\r\n\r\n getAlternativeGhgIntensity() {\r\n return new SimulationVariable(this.ghgIntensity, this.ownerCase, this);\r\n }\r\n\r\n getAvailableParameters() {\r\n const params = [this.totalYield, this.ghgIntensity, this.productPrice, this.opexFixed, this.opexVar];\r\n if (this.modelType === BitumenModelTypes.UTILITY) {\r\n params.push(this.powerUseRate, this.hydrogenUseRate, this.naturalGasUseRate);\r\n }\r\n return params;\r\n }\r\n\r\n constraintViolated() {\r\n const inletStream = this.ownerCase.filterSuncorMaterialStreams(s => {\r\n return s.outletUnitOperationId === this.id;\r\n })[0];\r\n\r\n return inletStream && this.constraints.constraintValueViolated('capacity', inletStream.volumetricFlowrate.value);\r\n }\r\n\r\n constraintValueDefined() {\r\n return this.constraints.anyConstraintValueDefined();\r\n }\r\n\r\n findOutlet(unitOperationId: string): BitumenConversionOutlet | undefined {\r\n return this.outlets.find(o => o.unitOperationId === unitOperationId);\r\n }\r\n\r\n addOutlet(unitOperationId: string) {\r\n const outlet = new BitumenConversionOutlet({ unitOperationId }, this.ownerCase, this);\r\n this.outlets.push(outlet);\r\n this.ownerCase.addToPools(outlet.price);\r\n this.ownerCase.addToPools(outlet.yield);\r\n }\r\n\r\n removeOutlet(outletId: string) {\r\n const index = this.outlets.findIndex(outlet => {\r\n return outlet.unitOperationId === outletId;\r\n });\r\n\r\n if (index === -1) {\r\n return;\r\n }\r\n const outlet = this.outlets[index];\r\n this.ownerCase.removeFromPools(outlet.price);\r\n this.ownerCase.removeFromPools(outlet.yield);\r\n this.outlets.splice(index, 1);\r\n }\r\n\r\n getAvailableMultiPeriodParameters(): SimulationVariable[] {\r\n return [this.capacity];\r\n }\r\n\r\n override dePersist(sup: any) {\r\n super.dePersist(sup);\r\n this.naturalGasUseRate = this.getSimulationVariableSafe(sup.naturalGasUseRate);\r\n this.hydrogenUseRate = this.getSimulationVariableSafe(sup.hydrogenUseRate);\r\n this.hydrogenUse = this.getSimulationVariableSafe(sup.hydrogenUse);\r\n this.powerUseRate = this.getSimulationVariableSafe(sup.powerUseRate);\r\n this.absoluteGhgEmissions = this.getSimulationVariableSafe(sup.absoluteGhgEmissions);\r\n this.volumetricYield = this.getSimulationVariableSafe(sup.volumetricYield);\r\n this.hydrogenImbalance = this.getSimulationVariableSafe(sup.hydrogenImbalance);\r\n this.powerPrice = this.getSimulationVariableSafe(sup.powerPrice);\r\n this.powerEmissionFactor = this.getSimulationVariableSafe(sup.powerEmissionFactor);\r\n this.naturalGasPrice = this.getSimulationVariableSafe(sup.naturalGasPrice);\r\n this.naturalGasEmissionFactor = this.getSimulationVariableSafe(sup.naturalGasEmissionFactor);\r\n this.hydrogenPrice = this.getSimulationVariableSafe(sup.hydrogenPrice);\r\n this.hydrogenEmissionFactor = this.getSimulationVariableSafe(sup.hydrogenEmissionFactor);\r\n this.outlets.forEach((outlet: BitumenConversionOutlet, index) => {\r\n outlet.dePersist(sup.outlets[index]);\r\n });\r\n this.setQuantities();\r\n this.setDefaultValues();\r\n this.initConstraints();\r\n }\r\n}\r\n","import { SimulationVariable } from '../simulation-variable';\r\nimport { SuncorUnitOperation } from './suncor-unit-operation';\r\nimport { IUnitOperation } from '../i-unit-operation';\r\nimport { Case } from '../case';\r\nimport { BaseObject } from '../base-object';\r\nimport { KpiProvider } from '../_case-study/kpi-provider';\r\nimport { ParameterProvider } from '../_case-study/parameter-provider';\r\nimport { ConstrainableObject } from '../_interfaces/constrainable-object';\r\nimport { UnitOperationConstraints } from './unit-operation-constraints';\r\nimport { MultiPeriodParameterProvider } from '../_multi-period/multi-period-parameter-provider';\r\nimport { unitOperationsConfig } from '../../_config/unit-operations.config';\r\n\r\ndeclare let unitConverter: any;\r\n\r\nexport class DiluentSource\r\n extends SuncorUnitOperation\r\n implements IUnitOperation, KpiProvider, ParameterProvider, ConstrainableObject, MultiPeriodParameterProvider\r\n{\r\n category = unitOperationsConfig.diluentSource.key;\r\n\r\n isOptimizable: boolean;\r\n volumetricFlowrate: SimulationVariable;\r\n price: SimulationVariable;\r\n premiumDiscountToWTI: SimulationVariable;\r\n fluidAnalysisId: string;\r\n constraints: UnitOperationConstraints;\r\n /**\r\n *\r\n */\r\n constructor(unitOperation: any, ownerCase: Case) {\r\n super(unitOperation, ownerCase);\r\n this.initValues(unitOperation);\r\n this.setSimulationVariableNames();\r\n }\r\n\r\n override addSimVarsToPool() {\r\n super.addSimVarsToPool();\r\n }\r\n\r\n override overwriteValues(another: BaseObject) {\r\n super.overwriteValues(another);\r\n const ds = another as DiluentSource;\r\n this.isOptimizable = ds.isOptimizable;\r\n }\r\n\r\n protected override ignoreForOverWrite(propertyName: string): boolean {\r\n return super.ignoreForOverWrite(propertyName);\r\n }\r\n\r\n getAvailableKpis() {\r\n return [this.volumetricFlowrate, this.price, this.premiumDiscountToWTI, this.ghgIntensity, this.ghgEmissions];\r\n }\r\n\r\n getAvailableMultiPeriodParameters(): SimulationVariable[] {\r\n return [this.volumetricFlowrate];\r\n }\r\n\r\n override clearResults() {\r\n super.clearResults();\r\n this.ghgEmissions.value = null;\r\n this.opexCarbonDioxide.value = null;\r\n this.opexVar.value = null;\r\n this.opexTotal.value = null;\r\n this.price.value = null;\r\n if (this.isOptimizable) {\r\n this.volumetricFlowrate.value = null;\r\n }\r\n }\r\n\r\n override initValues(unitOperation: any): void {\r\n super.initValues(unitOperation);\r\n\r\n if (typeof unitOperation.isOptimizable === 'undefined') {\r\n // I think this is the only place to know if isOptimizable will have an 'undefined' value\r\n this.isOptimizable = true;\r\n } else {\r\n this.isOptimizable = !!unitOperation.isOptimizable;\r\n }\r\n\r\n this.volumetricFlowrate = new SimulationVariable(unitOperation.volumetricFlowrate, this.ownerCase, this);\r\n this.price = new SimulationVariable(unitOperation.price, this.ownerCase, this);\r\n this.premiumDiscountToWTI = new SimulationVariable(unitOperation.premiumDiscountToWTI, this.ownerCase, this);\r\n\r\n this.fluidAnalysisId = unitOperation.fluidAnalysisId || '';\r\n this.initConstraints();\r\n }\r\n\r\n override setQuantities() {\r\n super.setQuantities();\r\n this.volumetricFlowrate.setQuantity('Volumetricflowrate');\r\n this.price.setQuantity('CurrencyPerVolume');\r\n this.premiumDiscountToWTI.setQuantity('Percent');\r\n }\r\n\r\n override setSimulationVariableNames(): void {\r\n super.setSimulationVariableNames();\r\n this.volumetricFlowrate.setName('Volumetric Flowrate');\r\n this.ghgIntensity.setName('GHG Intensity');\r\n this.ghgEmissions.setName('GHG Emissions');\r\n this.price.setName('Diluent Price');\r\n this.premiumDiscountToWTI.setName('Premium/Discount to WTI');\r\n this.capacity.setName('Maximum Flow Rate');\r\n }\r\n\r\n override setSimulationVariablesOwner() {\r\n super.setSimulationVariablesOwner();\r\n }\r\n\r\n override setDefaultValues(): void {\r\n super.setDefaultValues();\r\n\r\n // nope, numbers and booleans can't be initialized like this...\r\n // this.isOptimizable = true;\r\n\r\n if (this.ghgIntensity.isUndefined()) {\r\n this.ghgIntensity.setDefaultValue(25, unitConverter.units.MassPerVolume.KG_BBL);\r\n }\r\n if (this.premiumDiscountToWTI.isUndefined()) {\r\n this.premiumDiscountToWTI.setDefaultValue(5.0);\r\n }\r\n }\r\n\r\n override convertToInternalUnit() {\r\n super.convertToInternalUnit();\r\n }\r\n\r\n override detectChanges(another: DiluentSource) {\r\n return super.detectChanges(another);\r\n }\r\n\r\n override getChildrenObjectsForRemoval() {\r\n return super.getChildrenObjectsForRemoval();\r\n }\r\n\r\n getAlternativeGhgIntensity() {\r\n return new SimulationVariable(this.ghgIntensity, this.ownerCase, this);\r\n }\r\n\r\n // region class-specific methods\r\n setOptimizable(isOptimizable: boolean) {\r\n this.isOptimizable = isOptimizable;\r\n\r\n if (this.isOptimizable) {\r\n this.volumetricFlowrate.value = null;\r\n }\r\n }\r\n // endregion\r\n\r\n getAvailableParameters() {\r\n return [this.premiumDiscountToWTI, this.ghgIntensity];\r\n }\r\n\r\n override dePersist(serializedUnitOperation: any) {\r\n super.dePersist(serializedUnitOperation);\r\n\r\n this.isOptimizable = serializedUnitOperation.isOptimizable;\r\n\r\n this.volumetricFlowrate = this.getSimulationVariableSafe(serializedUnitOperation.volumetricFlowrate);\r\n this.price = this.getSimulationVariableSafe(serializedUnitOperation.price);\r\n this.premiumDiscountToWTI = this.getSimulationVariableSafe(serializedUnitOperation.premiumDiscountToWTI);\r\n\r\n this.setQuantities();\r\n this.setDefaultValues();\r\n this.initConstraints();\r\n }\r\n\r\n override ignoreForMakeReady(simvar: SimulationVariable): boolean {\r\n let result = super.ignoreForMakeReady(simvar);\r\n if (this.isOptimizable) {\r\n result = result || simvar === this.volumetricFlowrate;\r\n }\r\n result = result || simvar === this.capacity || simvar === this.minimumFlow || this.price === simvar;\r\n return result;\r\n }\r\n\r\n getAvailableParametricStudyParameters(): Array<SimulationVariable> {\r\n return [this.premiumDiscountToWTI, this.volumetricFlowrate, this.ghgIntensity];\r\n }\r\n\r\n constraintValueDefined(): boolean {\r\n return this.constraints.anyConstraintValueDefined();\r\n }\r\n\r\n constraintViolated(): boolean {\r\n return false;\r\n }\r\n\r\n initConstraints() {\r\n this.constraints = new UnitOperationConstraints();\r\n this.constraints.addConstraint('Maximum Flow Rate', this.capacity);\r\n }\r\n}\r\n","import { SuncorUnitOperation } from './suncor-unit-operation';\r\nimport { SimulationVariable } from '../simulation-variable';\r\n\r\nexport abstract class SuncorUnitOpWithCogen extends SuncorUnitOperation {\r\n // cogenRevenue: SimulationVariable;\r\n cogenElectricityGeneration: SimulationVariable;\r\n netElectricityExport: SimulationVariable;\r\n gridIntensity: SimulationVariable;\r\n cogenIntensity: SimulationVariable;\r\n\r\n override initValues(unitOperation: any): void {\r\n super.initValues(unitOperation);\r\n // this.cogenRevenue = new SimulationVariable(unitOperation.cogenRevenue, this.ownerCase, this);\r\n this.cogenElectricityGeneration = new SimulationVariable(\r\n unitOperation.cogenElectricityGeneration,\r\n this.ownerCase,\r\n this\r\n );\r\n this.netElectricityExport = new SimulationVariable(unitOperation.netElectricityExport, this.ownerCase, this);\r\n this.gridIntensity = new SimulationVariable(unitOperation.gridIntensity, this.ownerCase, this);\r\n this.cogenIntensity = new SimulationVariable(unitOperation.cogenIntensity, this.ownerCase, this);\r\n }\r\n\r\n override setDefaultValues(): void {\r\n super.setDefaultValues();\r\n // if (this.cogenRevenue.isUndefined()) {\r\n // this.cogenRevenue.setDefaultValue(0.0);\r\n // }\r\n if (this.cogenElectricityGeneration.isUndefined()) {\r\n this.cogenElectricityGeneration.setDefaultValue(0.0);\r\n }\r\n\r\n if (this.netElectricityExport.isUndefined()) {\r\n this.netElectricityExport.setDefaultValue(0.0);\r\n }\r\n\r\n if (this.gridIntensity.isUndefined()) {\r\n this.gridIntensity.setDefaultValue(0.0);\r\n }\r\n\r\n if (this.cogenIntensity.isUndefined()) {\r\n this.cogenIntensity.setDefaultValue(0.0);\r\n }\r\n }\r\n\r\n override setQuantities() {\r\n super.setQuantities();\r\n // this.cogenRevenue.setQuantity('CurrencyPerTime');\r\n this.cogenElectricityGeneration.setQuantity('Power');\r\n this.netElectricityExport.setQuantity('Power');\r\n this.gridIntensity.setQuantity('MassPerEnergy');\r\n this.cogenIntensity.setQuantity('MassPerEnergy');\r\n }\r\n\r\n override setSimulationVariableNames() {\r\n super.setSimulationVariableNames();\r\n // this.cogenRevenue.setName('Cogen Revenue');\r\n this.cogenElectricityGeneration.setName('Cogen Electricity Generation');\r\n this.netElectricityExport.setName('Net Electricity Export');\r\n this.gridIntensity.setName('Grid Intensity');\r\n this.cogenIntensity.setName('Cogen Intensity');\r\n }\r\n\r\n override dePersist(serializedUnitOperation: any) {\r\n super.dePersist(serializedUnitOperation);\r\n // this.cogenRevenue = this.getSimulationVariableSafe(serializedUnitOperation.cogenRevenue);\r\n this.cogenElectricityGeneration = this.getSimulationVariableSafe(\r\n serializedUnitOperation.cogenElectricityGeneration\r\n );\r\n this.netElectricityExport = this.getSimulationVariableSafe(serializedUnitOperation.netElectricityExport);\r\n this.gridIntensity = this.getSimulationVariableSafe(serializedUnitOperation.gridIntensity);\r\n this.cogenIntensity = this.getSimulationVariableSafe(serializedUnitOperation.cogenIntensity);\r\n }\r\n\r\n abstract override getAlternativeGhgIntensity(): SimulationVariable;\r\n}\r\n","import { SimulationVariable } from '../simulation-variable';\r\nimport { IUnitOperation } from '../i-unit-operation';\r\nimport { Case } from '../case';\r\nimport { KpiProvider } from '../_case-study/kpi-provider';\r\nimport { SuncorUnitOpWithCogen } from './suncor-unit-op-with-cogen';\r\nimport { ConstrainableObject } from '../_interfaces/constrainable-object';\r\nimport { UnitOperationConstraints } from './unit-operation-constraints';\r\nimport { MultiPeriodParameterProvider } from '../_multi-period/multi-period-parameter-provider';\r\nimport { ParameterProvider } from '../_case-study/parameter-provider';\r\n\r\ndeclare let unitConverter: any;\r\n\r\nexport class MineSource\r\n extends SuncorUnitOpWithCogen\r\n implements IUnitOperation, KpiProvider, ConstrainableObject, MultiPeriodParameterProvider, ParameterProvider\r\n{\r\n category = 'mine-source';\r\n\r\n volumetricFlowrate: SimulationVariable;\r\n absoluteGhgEmissions: SimulationVariable;\r\n price: SimulationVariable;\r\n fluidAnalysisId: string;\r\n constraints: UnitOperationConstraints;\r\n /**\r\n *\r\n */\r\n constructor(unitOperation: any, ownerCase: Case) {\r\n super(unitOperation, ownerCase);\r\n this.initValues(unitOperation);\r\n this.setSimulationVariableNames();\r\n }\r\n\r\n override initValues(unitOperation: any): void {\r\n super.initValues(unitOperation);\r\n this.volumetricFlowrate = new SimulationVariable(unitOperation.volumetricFlowrate, this.ownerCase, this);\r\n this.absoluteGhgEmissions = new SimulationVariable(unitOperation.absoluteGhgEmissions, this.ownerCase, this);\r\n this.price = new SimulationVariable(unitOperation.price, this.ownerCase, this);\r\n this.fluidAnalysisId = unitOperation.fluidAnalysisId || '';\r\n this.initConstraints();\r\n }\r\n\r\n initConstraints() {\r\n this.constraints = new UnitOperationConstraints();\r\n this.constraints.addConstraint('Maximum Flow Rate', this.capacity);\r\n }\r\n\r\n override setSimulationVariableNames(): void {\r\n super.setSimulationVariableNames();\r\n this.volumetricFlowrate.setName('Volumetric Flowrate');\r\n this.absoluteGhgEmissions.setName('Absolute GHG Emissions');\r\n this.cogenElectricityGeneration.setName('Cogen Electricity Generation');\r\n this.price.setName('Product Price');\r\n this.capacity.setName('Maximum Flow Rate');\r\n }\r\n\r\n override setDefaultValues(): void {\r\n super.setDefaultValues();\r\n if (this.volumetricFlowrate.isUndefined()) {\r\n this.volumetricFlowrate.setDefaultValue(0.0);\r\n }\r\n if (this.absoluteGhgEmissions.isUndefined()) {\r\n this.absoluteGhgEmissions.setDefaultValue(0.0, unitConverter.units.Massflowrate.MMTPA);\r\n }\r\n if (this.price.isUndefined()) {\r\n this.price.setDefaultValue(50.0);\r\n }\r\n }\r\n\r\n override addSimVarsToPool() {\r\n super.addSimVarsToPool();\r\n }\r\n\r\n override setSimulationVariablesOwner() {\r\n super.setSimulationVariablesOwner();\r\n }\r\n\r\n override setQuantities() {\r\n super.setQuantities();\r\n this.volumetricFlowrate.setQuantity('Volumetricflowrate');\r\n this.absoluteGhgEmissions.setQuantity('Massflowrate');\r\n this.price.setQuantity('CurrencyPerVolume');\r\n }\r\n\r\n getAlternativeGhgIntensity() {\r\n return new SimulationVariable(this.ghgIntensity, this.ownerCase, this);\r\n }\r\n\r\n getAvailableKpis() {\r\n return [this.cogenElectricityGeneration, this.absoluteGhgEmissions, this.volumetricFlowrate, this.price];\r\n }\r\n\r\n getAvailableMultiPeriodParameters(): SimulationVariable[] {\r\n return [this.volumetricFlowrate];\r\n }\r\n\r\n getAvailableParameters() {\r\n return [\r\n this.volumetricFlowrate,\r\n this.ghgIntensity,\r\n this.price,\r\n this.opexVar,\r\n this.opexGasDiesel,\r\n this.opexPower,\r\n this.opexFixed,\r\n ];\r\n }\r\n\r\n getAvailableParametricStudyParameters(): SimulationVariable[] {\r\n return [\r\n this.volumetricFlowrate,\r\n this.ghgIntensity,\r\n this.cogenElectricityGeneration,\r\n this.netElectricityExport,\r\n this.cogenIntensity,\r\n this.gridIntensity,\r\n this.price,\r\n this.electricityPrice,\r\n this.opexVar,\r\n this.opexGasDiesel,\r\n this.opexPower,\r\n this.opexFixed,\r\n this.capexAmortized,\r\n ];\r\n }\r\n\r\n override ignoreForMakeReady(simvar: SimulationVariable): boolean {\r\n // TODO consider if subFlowsheet is used?\r\n return super.ignoreForMakeReady(simvar) || simvar === this.minimumFlow || simvar === this.capacity;\r\n }\r\n\r\n constraintValueDefined(): boolean {\r\n return false;\r\n }\r\n\r\n constraintViolated(): boolean {\r\n return false;\r\n }\r\n\r\n override clearResults() {\r\n super.clearResults();\r\n this.absoluteGhgEmissions.value = null;\r\n this.ghgEmissions.value = null;\r\n this.revenue.value = null;\r\n this.unitValue.value = null;\r\n this.opexCarbonDioxide.value = null;\r\n this.opexTotal.value = null;\r\n this.capexTotal.value = null;\r\n }\r\n\r\n protected override ignoreForOverWrite(propertyName: string): boolean {\r\n return super.ignoreForOverWrite(propertyName);\r\n }\r\n\r\n override dePersist(sup: any) {\r\n super.dePersist(sup);\r\n this.volumetricFlowrate = this.getSimulationVariableSafe(sup.volumetricFlowrate);\r\n this.absoluteGhgEmissions = this.getSimulationVariableSafe(sup.absoluteGhgEmissions);\r\n this.price = this.getSimulationVariableSafe(sup.price);\r\n\r\n this.setQuantities();\r\n this.setDefaultValues();\r\n this.initConstraints();\r\n }\r\n}\r\n","export enum MixerConstraintOption {\r\n NONE = 'none',\r\n BLEND_RATIO = 'blendRatio',\r\n}\r\n\r\nexport enum MixerBlendRecipeOption {\r\n EXACT = 'exact',\r\n RANGE = 'range',\r\n}\r\n","export class DistributionRatioVariable {\r\n // should it be stream id?\r\n // could the same unit op be connected twice to a single splitter?\r\n unitOperationId: string;\r\n value?: number;\r\n\r\n constructor(unitOperationId: string, value?: number) {\r\n this.unitOperationId = unitOperationId;\r\n this.value = value;\r\n }\r\n}\r\n","import { DistributionRatioVariable } from './distribution-ratio-variable';\r\n\r\nexport class RangeDistributionRatioVariable extends DistributionRatioVariable {\r\n minimumValue?: number;\r\n maximumValue?: number;\r\n\r\n constructor(dv: any) {\r\n super(dv.unitOperationId, dv.value);\r\n this.minimumValue = dv.minimumValue;\r\n this.maximumValue = dv.maximumValue;\r\n }\r\n}\r\n","import { ConstraintValueChecker } from '../_interfaces/constraint-value-checker';\r\nimport { isEmptyValue, isNullOrUndefined } from '../../_utils/utils';\r\n\r\nexport class RangeDistributionConstraint implements ConstraintValueChecker {\r\n id: string;\r\n sourceUnitOperationId: string;\r\n constraintName: string;\r\n constraintValue: number;\r\n isActive: boolean;\r\n\r\n constructor(\r\n id: string,\r\n sourceUnitOperationId: string,\r\n constraintName: string,\r\n constraintValue: number,\r\n isActive?: boolean\r\n ) {\r\n this.id = id;\r\n this.sourceUnitOperationId = sourceUnitOperationId;\r\n this.constraintName = constraintName;\r\n this.constraintValue = constraintValue;\r\n this.isActive = isActive || false;\r\n }\r\n\r\n constraintValueDefined(): boolean {\r\n return (\r\n !isNullOrUndefined(this.constraintValue) &&\r\n !isEmptyValue(this.constraintValue) &&\r\n !Number.isNaN(this.constraintValue)\r\n );\r\n }\r\n\r\n constraintValueViolated(referenceValue: number): boolean {\r\n return false;\r\n }\r\n}\r\n","import { RangeDistributionConstraint } from './range-distribution-constraint';\r\n\r\nexport class MixingConstraints {\r\n constraints: { [id: string]: RangeDistributionConstraint } = {};\r\n\r\n addNewConstraint(id: string, name: string, value: number, unitOperationId: string, isActive?: boolean) {\r\n this.constraints[id] = new RangeDistributionConstraint(id, unitOperationId, name, value, isActive);\r\n }\r\n\r\n removeConstraint(unitOperationId: string) {\r\n Object.entries(this.constraints).forEach(cstr => {\r\n if (cstr[1].sourceUnitOperationId === unitOperationId) delete this.constraints[cstr[0]];\r\n });\r\n }\r\n\r\n removeMinMaxConIfNoOptimizable(unitOperationId: string) {\r\n if (this.minAndMaxConstraintsExists(unitOperationId)) {\r\n this.removeConstraint(unitOperationId);\r\n }\r\n }\r\n\r\n removeExactConstraintIfOptimizable(unitOperationId: string) {\r\n if (this.exactValueConstraintExists(unitOperationId)) {\r\n this.removeConstraint(unitOperationId);\r\n }\r\n }\r\n\r\n minAndMaxConstraintsExists(unitOperationId: string) {\r\n return !!(this.constraints[`minimumRange${unitOperationId}`] && this.constraints[`maximumRange${unitOperationId}`]);\r\n }\r\n\r\n exactValueConstraintExists(unitOperationId: string) {\r\n return !!this.constraints[`exactValue${unitOperationId}`];\r\n }\r\n}\r\n","import { IUnitOperation } from '../i-unit-operation';\r\nimport { SuncorUnitOperation } from './suncor-unit-operation';\r\nimport { Case } from '../case';\r\nimport { MixerBlendRecipeOption, MixerConstraintOption } from '../../_config/unit-operations/mixer-enums';\r\nimport { DefaultMappedType } from '../default-mapped-type';\r\nimport { isTypeUndefined } from '../../_utils/utils';\r\nimport { RangeDistributionRatioVariable } from './range-distribution-ratio-variable';\r\nimport { unitOperationsConfig } from '../../_config/unit-operations.config';\r\nimport { InletDistributionRatioVariablesOwner } from './inlet-distribution-ratio-variables-owner';\r\nimport { MixingConstraints } from './mixing-constraints';\r\nimport { RangeDistributionConstraint } from './range-distribution-constraint';\r\n\r\nexport class Mixer extends SuncorUnitOperation implements IUnitOperation, InletDistributionRatioVariablesOwner {\r\n category = unitOperationsConfig.mixer.key;\r\n constraintOption: MixerConstraintOption;\r\n blendRecipeOption: MixerBlendRecipeOption;\r\n mixingRatioVariables: RangeDistributionRatioVariable[] = [];\r\n constraints: MixingConstraints;\r\n\r\n /**\r\n *\r\n */\r\n constructor(unitOperation: any, ownerCase: Case) {\r\n super(unitOperation, ownerCase);\r\n // TODO: ...\r\n this.initValues(unitOperation);\r\n this.setQuantities();\r\n }\r\n\r\n getAlternativeGhgIntensity() {\r\n return undefined;\r\n }\r\n\r\n addInletDistributionRatioVariables(unitOperationId: string) {\r\n this.addMixingRatioVariable(unitOperationId);\r\n }\r\n\r\n private addMixingRatioVariable(unitOperationId: string) {\r\n this.clearAllMixingRatioVariables();\r\n const rangeDistributionRatioVar = new RangeDistributionRatioVariable({ unitOperationId });\r\n this.mixingRatioVariables.push(rangeDistributionRatioVar);\r\n\r\n if (this.mixingRatioVariables.length === 1) {\r\n this.mixingRatioVariables[0].value = 1;\r\n }\r\n\r\n this.createConstraintsObjInstance();\r\n this.initConstraintsBasedInMixingRatios(rangeDistributionRatioVar);\r\n }\r\n\r\n findMixingRatioVariable(unitOperationId: string): RangeDistributionRatioVariable | undefined {\r\n return this.mixingRatioVariables.find(drv => {\r\n return drv.unitOperationId === unitOperationId;\r\n });\r\n }\r\n\r\n removeInletDistributionRatioVariables(unitOperationId: string) {\r\n const index = this.mixingRatioVariables.indexOf(this.findMixingRatioVariable(unitOperationId));\r\n\r\n if (index >= 0) {\r\n this.mixingRatioVariables.splice(index, 1);\r\n this.constraints.removeConstraint(unitOperationId);\r\n }\r\n }\r\n\r\n clearAllMixingRatioVariables() {\r\n for (const dv of this.mixingRatioVariables) {\r\n dv.value = null;\r\n }\r\n }\r\n\r\n override initValues(unitOperation: DefaultMappedType<Mixer>) {\r\n super.initValues(unitOperation);\r\n\r\n this.constraintOption = unitOperation.constraintOption || MixerConstraintOption.NONE;\r\n this.blendRecipeOption = isTypeUndefined(unitOperation.blendRecipeOption)\r\n ? MixerBlendRecipeOption.EXACT\r\n : unitOperation.blendRecipeOption;\r\n\r\n if (unitOperation.mixingRatioVariables instanceof Array) {\r\n this.createConstraintsObjInstance(unitOperation);\r\n for (const dv of unitOperation.mixingRatioVariables) {\r\n const rangeDistributionRatioVar = new RangeDistributionRatioVariable(dv);\r\n this.mixingRatioVariables.push(rangeDistributionRatioVar);\r\n this.initConstraintsBasedInMixingRatios(rangeDistributionRatioVar);\r\n }\r\n }\r\n }\r\n\r\n initConstraintsBasedInMixingRatios(rangeDistributionRatioVar: RangeDistributionRatioVariable) {\r\n if (this.constraintOption === MixerConstraintOption.BLEND_RATIO) {\r\n const unitOpId = rangeDistributionRatioVar.unitOperationId;\r\n const unitOperation = this.ownerCase.getUnitOperation(unitOpId);\r\n\r\n if (this.blendRecipeOption === MixerBlendRecipeOption.RANGE) {\r\n if (\r\n this.constraints.constraints[`minimumRange${unitOpId}`] &&\r\n this.constraints.constraints[`maximumRange${unitOpId}`]\r\n )\r\n return;\r\n\r\n this.constraints.addNewConstraint(\r\n `minimumRange${unitOpId}`,\r\n unitOperation ? `Minimum ${unitOperation.name} Ratio` : 'Minimum',\r\n rangeDistributionRatioVar.minimumValue,\r\n unitOpId\r\n );\r\n this.constraints.addNewConstraint(\r\n `maximumRange${unitOpId}`,\r\n unitOperation ? `Maximum ${unitOperation.name} Ratio` : 'Maximum',\r\n rangeDistributionRatioVar.maximumValue,\r\n unitOpId\r\n );\r\n }\r\n\r\n if (this.blendRecipeOption === MixerBlendRecipeOption.EXACT) {\r\n if (this.constraints.constraints[`exactValue${unitOpId}`]) return;\r\n this.constraints.addNewConstraint(\r\n `exactValue${unitOpId}`,\r\n unitOperation ? `Exact ${unitOperation.name} Ratio` : 'Exact',\r\n rangeDistributionRatioVar.value,\r\n unitOpId\r\n );\r\n }\r\n }\r\n }\r\n\r\n initConstraintsBasedInExistingConstraints(unitOperation: DefaultMappedType<Mixer>) {\r\n Object.entries(unitOperation.constraints.constraints).forEach((entry: [string, RangeDistributionConstraint]) => {\r\n this.constraints.addNewConstraint(\r\n entry[0],\r\n entry[1].constraintName,\r\n entry[1].constraintValue,\r\n entry[1].sourceUnitOperationId,\r\n entry[1].isActive\r\n );\r\n });\r\n }\r\n\r\n createConstraintsObjInstance(unitOperation?: DefaultMappedType<Mixer>) {\r\n if (isTypeUndefined(this.constraints)) {\r\n this.constraints = new MixingConstraints();\r\n }\r\n if (isTypeUndefined(unitOperation)) return;\r\n if (!isTypeUndefined(unitOperation.constraints)) {\r\n if (Object.keys(unitOperation.constraints.constraints).length > 0)\r\n this.initConstraintsBasedInExistingConstraints(unitOperation);\r\n }\r\n }\r\n}\r\n","import { SimulationVariable } from '../simulation-variable';\r\nimport { IUnitOperation } from '../i-unit-operation';\r\nimport { Case } from '../case';\r\nimport { KpiProvider } from '../_case-study/kpi-provider';\r\nimport { SuncorUnitOpWithCogen } from './suncor-unit-op-with-cogen';\r\nimport { ConstrainableObject } from '../_interfaces/constrainable-object';\r\nimport { UnitOperationConstraints } from './unit-operation-constraints';\r\nimport { MultiPeriodParameterProvider } from '../_multi-period/multi-period-parameter-provider';\r\nimport { ParameterProvider } from '../_case-study/parameter-provider';\r\n\r\ndeclare let unitConverter: any;\r\n\r\nexport class SagdSource\r\n extends SuncorUnitOpWithCogen\r\n implements IUnitOperation, KpiProvider, ConstrainableObject, ParameterProvider, MultiPeriodParameterProvider\r\n{\r\n category = 'sagd-source';\r\n volumetricFlowrate: SimulationVariable;\r\n absoluteGhgEmissions: SimulationVariable;\r\n price: SimulationVariable;\r\n fluidAnalysisId: string;\r\n constraints: UnitOperationConstraints;\r\n\r\n /**\r\n *\r\n */\r\n constructor(unitOperation: any, ownerCase: Case) {\r\n super(unitOperation, ownerCase);\r\n this.initValues(unitOperation);\r\n this.setSimulationVariableNames();\r\n }\r\n\r\n override addSimVarsToPool() {\r\n super.addSimVarsToPool();\r\n }\r\n\r\n protected override ignoreForOverWrite(propertyName: string): boolean {\r\n return super.ignoreForOverWrite(propertyName);\r\n }\r\n\r\n getAvailableKpis() {\r\n return [this.cogenElectricityGeneration, this.absoluteGhgEmissions, this.volumetricFlowrate, this.price];\r\n }\r\n\r\n getAvailableMultiPeriodParameters(): SimulationVariable[] {\r\n return [this.volumetricFlowrate];\r\n }\r\n\r\n getAvailableParametricStudyParameters(): SimulationVariable[] {\r\n return [\r\n this.volumetricFlowrate,\r\n this.ghgIntensity,\r\n this.cogenElectricityGeneration,\r\n this.netElectricityExport,\r\n this.cogenIntensity,\r\n this.gridIntensity,\r\n this.price,\r\n this.electricityPrice,\r\n this.opexVar,\r\n this.opexGasDiesel,\r\n this.opexPower,\r\n this.opexFixed,\r\n this.capexAmortized,\r\n ];\r\n }\r\n\r\n override clearResults() {\r\n super.clearResults();\r\n this.absoluteGhgEmissions.value = null;\r\n this.ghgEmissions.value = null;\r\n this.opexCarbonDioxide.value = null;\r\n this.opexTotal.value = null;\r\n this.revenue.value = null;\r\n this.unitValue.value = null;\r\n }\r\n\r\n override initValues(unitOperation: any): void {\r\n super.initValues(unitOperation);\r\n this.volumetricFlowrate = new SimulationVariable(unitOperation.volumetricFlowrate, this.ownerCase, this);\r\n this.absoluteGhgEmissions = new SimulationVariable(unitOperation.absoluteGhgEmissions, this.ownerCase, this);\r\n this.price = new SimulationVariable(unitOperation.price, this.ownerCase, this);\r\n this.fluidAnalysisId = unitOperation.fluidAnalysisId || '';\r\n this.initConstraints();\r\n }\r\n\r\n override setSimulationVariableNames(): void {\r\n super.setSimulationVariableNames();\r\n this.volumetricFlowrate.setName('Volumetric Flowrate');\r\n this.absoluteGhgEmissions.setName('Absolute GHG Emissions');\r\n this.cogenElectricityGeneration.setName('Cogen Electricity Generation');\r\n this.price.setName('Product Price');\r\n this.capacity.setName('Maximum Flow Rate');\r\n }\r\n\r\n override setSimulationVariablesOwner() {\r\n super.setSimulationVariablesOwner();\r\n }\r\n\r\n override setDefaultValues(): void {\r\n super.setDefaultValues();\r\n if (this.volumetricFlowrate.isUndefined()) {\r\n this.volumetricFlowrate.setDefaultValue(0.0);\r\n }\r\n\r\n if (this.absoluteGhgEmissions.isUndefined()) {\r\n this.absoluteGhgEmissions.setDefaultValue(0.0, unitConverter.units.Massflowrate.MMTPA);\r\n }\r\n\r\n if (this.price.isUndefined()) {\r\n this.price.setDefaultValue(60.0);\r\n }\r\n }\r\n\r\n override setQuantities() {\r\n super.setQuantities();\r\n this.volumetricFlowrate.setQuantity('Volumetricflowrate');\r\n this.absoluteGhgEmissions.setQuantity('Massflowrate');\r\n this.price.setQuantity('CurrencyPerVolume');\r\n }\r\n\r\n override convertToInternalUnit() {\r\n super.convertToInternalUnit();\r\n }\r\n\r\n getAlternativeGhgIntensity() {\r\n return new SimulationVariable(this.ghgIntensity, this.ownerCase, this);\r\n }\r\n\r\n getAvailableParameters() {\r\n return [\r\n this.volumetricFlowrate,\r\n this.ghgIntensity,\r\n this.price,\r\n this.opexVar,\r\n this.opexGasDiesel,\r\n this.opexPower,\r\n this.opexFixed,\r\n ];\r\n }\r\n\r\n override ignoreForMakeReady(simvar: SimulationVariable): boolean {\r\n return super.ignoreForMakeReady(simvar) || simvar === this.minimumFlow || simvar === this.capacity;\r\n }\r\n\r\n override dePersist(sup: any) {\r\n super.dePersist(sup);\r\n this.volumetricFlowrate = this.getSimulationVariableSafe(sup.volumetricFlowrate);\r\n this.absoluteGhgEmissions = this.getSimulationVariableSafe(sup.absoluteGhgEmissions);\r\n this.price = this.getSimulationVariableSafe(sup.price);\r\n this.setQuantities();\r\n this.setDefaultValues();\r\n this.initConstraints();\r\n }\r\n\r\n constraintValueDefined(): boolean {\r\n return false;\r\n }\r\n\r\n constraintViolated(): boolean {\r\n return false;\r\n }\r\n\r\n initConstraints() {\r\n this.constraints = new UnitOperationConstraints();\r\n this.constraints.addConstraint('Maximum Flow Rate', this.capacity);\r\n }\r\n}\r\n","import { SimulationVariable } from '../simulation-variable';\r\nimport { SuncorUnitOperation } from './suncor-unit-operation';\r\nimport { IUnitOperation } from '../i-unit-operation';\r\nimport { Case } from '../case';\r\nimport { ConstrainableObject } from '../_interfaces/constrainable-object';\r\nimport { UnitOperationConstraints } from './unit-operation-constraints';\r\nimport { KpiProvider } from '../_case-study/kpi-provider';\r\nimport { SimulationVariableName } from '../../_config/simulation-variable-name.enum';\r\nimport { ParameterProvider } from '../_case-study/parameter-provider';\r\nimport { MultiPeriodParameterProvider } from '../_multi-period/multi-period-parameter-provider';\r\nimport { unitOperationsConfig } from '../../_config/unit-operations.config';\r\n\r\ndeclare let unitConverter: any;\r\n\r\nexport class Pipe\r\n extends SuncorUnitOperation\r\n implements IUnitOperation, ConstrainableObject, KpiProvider, ParameterProvider, MultiPeriodParameterProvider\r\n{\r\n category = unitOperationsConfig.pipe.key;\r\n\r\n // can't use \"length\"\r\n pipeLength: SimulationVariable;\r\n pressureDrop: SimulationVariable;\r\n pipeDensitySpec: SimulationVariable;\r\n ghgIntensityPerMassDistance: SimulationVariable;\r\n\r\n constraints: UnitOperationConstraints;\r\n\r\n /**\r\n *\r\n */\r\n constructor(unitOperation: any, ownerCase: Case) {\r\n super(unitOperation, ownerCase);\r\n this.initValues(unitOperation);\r\n this.setSimulationVariableNames();\r\n }\r\n\r\n getAvailableKpis(): SimulationVariable[] {\r\n if (this.ownerCase.multiPeriodEnabled) {\r\n return [this.pressureDrop, this.ghgIntensityPerMassDistance, this.ghgEmissions];\r\n }\r\n return [this.pipeLength, this.pressureDrop, this.ghgIntensityPerMassDistance, this.ghgEmissions];\r\n }\r\n\r\n getAvailableParametricStudyParameters(): SimulationVariable[] {\r\n return [this.pipeLength, this.pressureDrop, this.ghgIntensity, this.opexFixed, this.opexVar];\r\n }\r\n\r\n getAvailableParameters() {\r\n return undefined;\r\n }\r\n\r\n override clearResults() {\r\n super.clearResults();\r\n this.ghgEmissions.value = null;\r\n this.opexCarbonDioxide.value = null;\r\n this.opexTotal.value = null;\r\n }\r\n\r\n override initValues(unitOperation: any): void {\r\n super.initValues(unitOperation);\r\n this.pipeLength = new SimulationVariable(unitOperation.pipeLength, this.ownerCase, this);\r\n this.pressureDrop = new SimulationVariable(unitOperation.pressureDrop, this.ownerCase, this);\r\n this.pipeDensitySpec = new SimulationVariable(unitOperation.pipeDensitySpec, this.ownerCase, this);\r\n // redefine?\r\n this.ghgIntensityPerMassDistance = new SimulationVariable(\r\n unitOperation.ghgIntensityPerMassDistance,\r\n this.ownerCase,\r\n this\r\n );\r\n this.initConstraints();\r\n }\r\n\r\n initConstraints() {\r\n this.constraints = new UnitOperationConstraints();\r\n this.constraints.addConstraint('capacity', this.capacity);\r\n this.constraints.addConstraint('pipeDensitySpec', this.pipeDensitySpec);\r\n this.constraints.addConstraint('minimumFlow', this.minimumFlow);\r\n }\r\n\r\n override setSimulationVariableNames(): void {\r\n super.setSimulationVariableNames();\r\n this.pipeLength.setName('Pipe Length');\r\n this.pressureDrop.setName('Pressure drop');\r\n this.pipeDensitySpec.setName('Density spec');\r\n this.capacity.setName(SimulationVariableName.CAPACITY);\r\n this.ghgIntensityPerMassDistance.setName(SimulationVariableName.GHG_INTENSITY);\r\n }\r\n\r\n override setDefaultValues(): void {\r\n if (this.pipeLength.isUndefined()) {\r\n this.pipeLength.setDefaultValue(0.0);\r\n }\r\n if (this.pressureDrop.isUndefined()) {\r\n this.pressureDrop.setDefaultValue(0.0);\r\n }\r\n if (this.pipeDensitySpec.isUndefined()) {\r\n this.pipeDensitySpec.setDefaultValue(920.98, unitConverter.units.LiquidDensity.KG_M3);\r\n }\r\n if (this.ghgIntensityPerMassDistance.isUndefined()) {\r\n this.ghgIntensityPerMassDistance.setDefaultValue(0.01);\r\n }\r\n\r\n super.setDefaultValues();\r\n }\r\n\r\n override setQuantities() {\r\n super.setQuantities();\r\n this.pipeLength.setQuantity('Length');\r\n // TODO: Fix this\r\n // Should be DeltaPressure\r\n this.pressureDrop.setQuantity('Pressure');\r\n this.pipeDensitySpec.setQuantity('LiquidDensity');\r\n\r\n this.ghgIntensityPerMassDistance.setQuantity('MassGHGPerMassDistance');\r\n }\r\n\r\n override updateStatus(another: Pipe) {\r\n this.updateSimulationVariablesStatus(another);\r\n }\r\n\r\n getAlternativeGhgIntensity() {\r\n const inletStream = this.ownerCase.filterSuncorMaterialStreams(s => {\r\n return s.outletUnitOperationId === this.id;\r\n });\r\n\r\n if (inletStream.length) {\r\n const altGhgIntensity = new SimulationVariable(this.ghgEmissions, this.ownerCase, this);\r\n altGhgIntensity.value = this.ghgEmissions.value / inletStream[0].volumetricFlowrate.value;\r\n altGhgIntensity.setQuantity('MassPerVolume');\r\n return altGhgIntensity;\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n override dePersist(sup: any) {\r\n super.dePersist(sup);\r\n\r\n this.pipeLength = this.getSimulationVariableSafe(sup.pipeLength);\r\n this.pressureDrop = this.getSimulationVariableSafe(sup.pressureDrop);\r\n this.pipeDensitySpec = this.getSimulationVariableSafe(sup.pipeDensitySpec);\r\n this.ghgIntensityPerMassDistance = this.getSimulationVariableSafe(sup.ghgIntensityPerMassDistance);\r\n\r\n this.setQuantities();\r\n this.setDefaultValues();\r\n this.initConstraints();\r\n }\r\n\r\n override ignoreForMakeReady(simvar: SimulationVariable): boolean {\r\n return super.ignoreForMakeReady(simvar);\r\n }\r\n\r\n // region constraints\r\n constraintViolated() {\r\n const inletStream = this.ownerCase.filterSuncorMaterialStreams(s => {\r\n return s.outletUnitOperationId === this.id;\r\n })[0];\r\n\r\n return inletStream\r\n ? this.constraints.constraintValueViolated('capacity', inletStream.volumetricFlowrate.value) ||\r\n this.constraints.constraintValueViolated('pipeDensitySpec', inletStream.massDensity.value)\r\n : false;\r\n }\r\n\r\n constraintValueDefined() {\r\n return this.constraints.anyConstraintValueDefined();\r\n }\r\n // endregion\r\n\r\n getAvailableMultiPeriodParameters(): SimulationVariable[] {\r\n return [this.capacity];\r\n }\r\n}\r\n","import { SimulationVariable } from '../simulation-variable';\r\nimport { SuncorUnitOperation } from './suncor-unit-operation';\r\nimport { Case } from '../case';\r\nimport { KpiProvider } from '../_case-study/kpi-provider';\r\nimport { ConstrainableObject } from '../_interfaces/constrainable-object';\r\nimport { UnitOperationConstraints } from './unit-operation-constraints';\r\nimport { ParameterProvider } from '../_case-study/parameter-provider';\r\nimport { MultiPeriodParameterProvider } from '../_multi-period/multi-period-parameter-provider';\r\nimport { unitOperationsConfig } from '../../_config/unit-operations.config';\r\nimport { SimulationVariableName } from '../../_config/simulation-variable-name.enum';\r\n\r\ndeclare let unitConverter: any;\r\nexport class Refinery\r\n extends SuncorUnitOperation\r\n implements KpiProvider, ConstrainableObject, ParameterProvider, MultiPeriodParameterProvider\r\n{\r\n category = unitOperationsConfig.refinery.key;\r\n\r\n volumetricFlowrate: SimulationVariable;\r\n cumulativeGhgEmissions: SimulationVariable;\r\n feedstockValue: SimulationVariable;\r\n lightEndsMargin: SimulationVariable;\r\n naphthaMargin: SimulationVariable;\r\n distillateMargin: SimulationVariable;\r\n gasOilMargin: SimulationVariable;\r\n vacuumResidueMargin: SimulationVariable;\r\n\r\n maximumSulfurContent: SimulationVariable;\r\n maximumMassDensity: SimulationVariable;\r\n train2MaximumSulfurContent: SimulationVariable;\r\n train2MaximumMassDensity: SimulationVariable;\r\n train1Capacity: SimulationVariable;\r\n train2Capacity: SimulationVariable;\r\n train2FeedstockValue: SimulationVariable;\r\n hasTwoInlets: boolean;\r\n constraints: UnitOperationConstraints;\r\n train2MinimumFlow: SimulationVariable;\r\n\r\n /**\r\n *\r\n */\r\n constructor(unitOperation: any, ownerCase: Case) {\r\n super(unitOperation, ownerCase);\r\n this.initValues(unitOperation);\r\n this.setSimulationVariableNames();\r\n }\r\n\r\n getAvailableKpis() {\r\n return [\r\n this.feedstockValue,\r\n this.cumulativeGhgEmissions,\r\n this.volumetricFlowrate,\r\n this.lightEndsMargin,\r\n this.naphthaMargin,\r\n this.distillateMargin,\r\n this.gasOilMargin,\r\n this.vacuumResidueMargin,\r\n this.ghgIntensity,\r\n this.ghgEmissions,\r\n ];\r\n }\r\n\r\n getAvailableMultiPeriodParameters(): SimulationVariable[] {\r\n return [this.train1Capacity, this.train2Capacity];\r\n }\r\n\r\n override clearResults() {\r\n super.clearResults();\r\n this.volumetricFlowrate.value = null;\r\n this.feedstockValue.value = null;\r\n this.ghgIntensity.value = null;\r\n this.ghgEmissions.value = null;\r\n this.cumulativeGhgEmissions.value = null;\r\n this.revenue.value = null;\r\n this.unitValue.value = null;\r\n this.opexCarbonDioxide.value = null;\r\n this.opexTotal.value = null;\r\n this.capexTotal.value = null;\r\n }\r\n\r\n override initValues(unitOperation: any): void {\r\n super.initValues(unitOperation);\r\n this.volumetricFlowrate = new SimulationVariable(unitOperation.volumetricFlowrate, this.ownerCase, this);\r\n this.cumulativeGhgEmissions = new SimulationVariable(unitOperation.cumulativeGhgEmissions, this.ownerCase, this);\r\n this.feedstockValue = new SimulationVariable(unitOperation.feedstockValue, this.ownerCase, this);\r\n this.lightEndsMargin = new SimulationVariable(unitOperation.lightEndsMargin, this.ownerCase, this);\r\n this.naphthaMargin = new SimulationVariable(unitOperation.naphthaMargin, this.ownerCase, this);\r\n this.distillateMargin = new SimulationVariable(unitOperation.distillateMargin, this.ownerCase, this);\r\n this.gasOilMargin = new SimulationVariable(unitOperation.gasOilMargin, this.ownerCase, this);\r\n this.vacuumResidueMargin = new SimulationVariable(unitOperation.vacuumResidueMargin, this.ownerCase, this);\r\n this.maximumSulfurContent = new SimulationVariable(unitOperation.maximumSulfurContent, this.ownerCase, this);\r\n this.maximumMassDensity = new SimulationVariable(unitOperation.maximumMassDensity, this.ownerCase, this);\r\n this.train2MaximumSulfurContent = new SimulationVariable(\r\n unitOperation.train2MaximumSulfurContent,\r\n this.ownerCase,\r\n this\r\n );\r\n this.train2MaximumMassDensity = new SimulationVariable(\r\n unitOperation.train2MaximumMassDensity,\r\n this.ownerCase,\r\n this\r\n );\r\n this.train1Capacity = new SimulationVariable(unitOperation.train1Capacity, this.ownerCase, this);\r\n this.train2Capacity = new SimulationVariable(unitOperation.train2Capacity, this.ownerCase, this);\r\n this.train2FeedstockValue = new SimulationVariable(unitOperation.train2FeedstockValue, this.ownerCase, this);\r\n this.train2MinimumFlow = new SimulationVariable(unitOperation.train2MinimumFlow, this.ownerCase, this);\r\n if (typeof unitOperation.hasTwoInlets === 'undefined') {\r\n this.hasTwoInlets = false;\r\n } else {\r\n this.hasTwoInlets = unitOperation.hasTwoInlets;\r\n }\r\n this.initConstraints();\r\n }\r\n\r\n initConstraints() {\r\n this.constraints = new UnitOperationConstraints();\r\n this.constraints.addConstraint('train1Capacity', this.train1Capacity);\r\n this.constraints.addConstraint('maximumSulfurContent', this.maximumSulfurContent);\r\n this.constraints.addConstraint(SimulationVariableName.MAXIMUM_MASS_DENSITY, this.maximumMassDensity);\r\n this.constraints.addConstraint('minimumFlow', this.minimumFlow);\r\n this.constraints.addConstraint('train2Capacity', this.train2Capacity);\r\n this.constraints.addConstraint('train2MinimumFlow', this.train2MinimumFlow);\r\n this.constraints.addConstraint('train2MaximumSulfurContent', this.train2MaximumSulfurContent);\r\n this.constraints.addConstraint('train2MaximumMassDensity', this.train2MaximumMassDensity);\r\n }\r\n\r\n override setSimulationVariableNames() {\r\n super.setSimulationVariableNames();\r\n this.volumetricFlowrate.setName('Volumetric Flowrate');\r\n this.cumulativeGhgEmissions.setName('Cumulative GHG Emissions');\r\n this.feedstockValue.setName('Feedstock Value');\r\n this.lightEndsMargin.setName('Light Ends Margin');\r\n this.naphthaMargin.setName('Naphtha Margin');\r\n this.distillateMargin.setName('Distillate Margin');\r\n this.gasOilMargin.setName('Gas Oil Margin');\r\n this.vacuumResidueMargin.setName('Vacuum Residue Margin');\r\n this.maximumSulfurContent.setName(SimulationVariableName.MAXIMUM_SULFUR_CONTENT);\r\n this.maximumMassDensity.setName(SimulationVariableName.MAXIMUM_MASS_DENSITY);\r\n this.train2MaximumSulfurContent.setName('Train 2 Maximum Sulfur Content');\r\n this.train2MaximumMassDensity.setName('Train 2 Maximum Mass Density');\r\n this.train1Capacity.setName('Train 1 Maximum feed capacity');\r\n this.train2Capacity.setName('Train 2 Maximum feed capacity');\r\n this.train2MinimumFlow.setName('Train 2 Minimum flow');\r\n }\r\n\r\n override setQuantities() {\r\n super.setQuantities();\r\n this.volumetricFlowrate.setQuantity('Volumetricflowrate');\r\n this.cumulativeGhgEmissions.setQuantity('Massflowrate');\r\n this.feedstockValue.setQuantity('CurrencyPerVolume');\r\n this.lightEndsMargin.setQuantity('Percent');\r\n this.naphthaMargin.setQuantity('Percent');\r\n this.distillateMargin.setQuantity('Percent');\r\n this.gasOilMargin.setQuantity('Percent');\r\n this.vacuumResidueMargin.setQuantity('Percent');\r\n\r\n this.maximumSulfurContent.setQuantity('MassFraction');\r\n this.maximumMassDensity.setQuantity('LiquidDensity');\r\n this.train2MaximumSulfurContent.setQuantity('MassFraction');\r\n this.train2MaximumMassDensity.setQuantity('LiquidDensity');\r\n this.train1Capacity.setQuantity('Volumetricflowrate');\r\n this.train2Capacity.setQuantity('Volumetricflowrate');\r\n this.train2MinimumFlow.setQuantity('Volumetricflowrate');\r\n this.train2FeedstockValue.setQuantity('CurrencyPerVolume');\r\n }\r\n\r\n override setDefaultValues() {\r\n super.setDefaultValues();\r\n if (this.volumetricFlowrate.isUndefined()) {\r\n this.volumetricFlowrate.setDefaultValue(0.0);\r\n }\r\n\r\n if (this.cumulativeGhgEmissions.isUndefined()) {\r\n this.cumulativeGhgEmissions.setDefaultValue(0.0, unitConverter.units.Massflowrate.MMTPA);\r\n }\r\n\r\n if (this.feedstockValue.isUndefined()) {\r\n this.feedstockValue.setDefaultValue(0.0);\r\n }\r\n if (this.train2FeedstockValue.isUndefined()) {\r\n this.train2FeedstockValue.setDefaultValue(0.0);\r\n }\r\n\r\n if (this.lightEndsMargin.isUndefined()) {\r\n this.lightEndsMargin.setDefaultValue(-5.0);\r\n }\r\n\r\n if (this.naphthaMargin.isUndefined()) {\r\n this.naphthaMargin.setDefaultValue(0.0);\r\n }\r\n\r\n if (this.distillateMargin.isUndefined()) {\r\n this.distillateMargin.setDefaultValue(18.0);\r\n }\r\n\r\n if (this.gasOilMargin.isUndefined()) {\r\n this.gasOilMargin.setDefaultValue(12.0);\r\n }\r\n\r\n if (this.vacuumResidueMargin.isUndefined()) {\r\n this.vacuumResidueMargin.setDefaultValue(8.0);\r\n }\r\n\r\n if (this.maximumMassDensity.isUndefined()) {\r\n this.maximumMassDensity.setDefaultValue(null, unitConverter.units.LiquidDensity.KG_M3);\r\n }\r\n\r\n if (this.train2MaximumMassDensity.isUndefined()) {\r\n this.train2MaximumMassDensity.setDefaultValue(null, unitConverter.units.LiquidDensity.KG_M3);\r\n }\r\n }\r\n\r\n getAlternativeGhgIntensity() {\r\n return new SimulationVariable(this.ghgIntensity, this.ownerCase, this);\r\n }\r\n\r\n override dePersist(sup: any) {\r\n super.dePersist(sup);\r\n\r\n this.volumetricFlowrate = this.getSimulationVariableSafe(sup.volumetricFlowrate);\r\n this.cumulativeGhgEmissions = this.getSimulationVariableSafe(sup.cumulativeGhgEmissions);\r\n this.feedstockValue = this.getSimulationVariableSafe(sup.feedstockValue);\r\n this.lightEndsMargin = this.getSimulationVariableSafe(sup.lightEndsMargin);\r\n this.naphthaMargin = this.getSimulationVariableSafe(sup.naphthaMargin);\r\n this.distillateMargin = this.getSimulationVariableSafe(sup.distillateMargin);\r\n this.gasOilMargin = this.getSimulationVariableSafe(sup.gasOilMargin);\r\n this.vacuumResidueMargin = this.getSimulationVariableSafe(sup.vacuumResidueMargin);\r\n\r\n this.maximumSulfurContent = this.getSimulationVariableSafe(sup.maximumSulfurContent);\r\n this.maximumMassDensity = this.getSimulationVariableSafe(sup.maximumMassDensity);\r\n this.train2MaximumSulfurContent = this.getSimulationVariableSafe(sup.train2MaximumSulfurContent);\r\n this.train2MaximumMassDensity = this.getSimulationVariableSafe(sup.train2MaximumMassDensity);\r\n this.train1Capacity = this.getSimulationVariableSafe(sup.train1Capacity);\r\n this.train2Capacity = this.getSimulationVariableSafe(sup.train2Capacity);\r\n this.train2MinimumFlow = this.getSimulationVariableSafe(sup.train2MinimumFlow);\r\n this.train2FeedstockValue = this.getSimulationVariableSafe(sup.train2FeedstockValue);\r\n\r\n this.setQuantities();\r\n this.setDefaultValues();\r\n this.initConstraints();\r\n }\r\n\r\n // region constraints\r\n constraintViolated() {\r\n const inletStream = this.ownerCase.filterSuncorMaterialStreams(s => {\r\n return s.outletUnitOperationId === this.id;\r\n })[0];\r\n\r\n return (\r\n inletStream &&\r\n (this.constraints.constraintValueViolated('train1Capacity', inletStream.volumetricFlowrate.value) ||\r\n this.constraints.constraintValueViolated('maximumSulfurContent', inletStream.sulfur.value) ||\r\n this.constraints.constraintValueViolated(\r\n SimulationVariableName.MAXIMUM_MASS_DENSITY,\r\n inletStream.massDensity.value\r\n ))\r\n );\r\n }\r\n\r\n constraintValueDefined() {\r\n // const v = this.capacity.value;\r\n // return typeof v !== 'undefined' && v + '' !== '' && v !== null && !isNaN(v);\r\n return this.constraints.anyConstraintValueDefined();\r\n }\r\n // endregion\r\n\r\n override isPropertyBlackListed(property) {\r\n return super.isPropertyBlackListed(property) || property === this.constraints;\r\n }\r\n\r\n getAvailableParameters(): Array<SimulationVariable> {\r\n return undefined;\r\n }\r\n\r\n getAvailableParametricStudyParameters(): Array<SimulationVariable> {\r\n return [\r\n this.electricityPrice,\r\n this.opexVar,\r\n this.opexGasDiesel,\r\n this.opexPower,\r\n this.opexFixed,\r\n this.capexAmortized,\r\n ];\r\n }\r\n}\r\n","import { SimulationVariable } from '..';\r\nimport { SuncorUnitOperation } from './suncor-unit-operation';\r\nimport { Case } from '../case';\r\nimport { KpiProvider } from '../_case-study/kpi-provider';\r\nimport { ConstrainableObject } from '../_interfaces/constrainable-object';\r\nimport { UnitOperationConstraints } from './unit-operation-constraints';\r\nimport { Quantity } from '../../_config/quantity.enum';\r\nimport { SimulationVariableName } from '../../_config/simulation-variable-name.enum';\r\nimport { ParameterProvider } from '../_case-study/parameter-provider';\r\nimport { MultiPeriodParameterProvider } from '../_multi-period/multi-period-parameter-provider';\r\nimport { unitOperationsConfig } from '../../_config/unit-operations.config';\r\n\r\ndeclare let unitConverter: any;\r\nexport class ThirdPartyRefinery\r\n extends SuncorUnitOperation\r\n implements KpiProvider, ConstrainableObject, ParameterProvider, MultiPeriodParameterProvider\r\n{\r\n category = unitOperationsConfig.thirdPartyRefinery.key;\r\n\r\n volumetricFlowrate: SimulationVariable;\r\n cumulativeGhgEmissions: SimulationVariable;\r\n feedstockValue: SimulationVariable;\r\n\r\n lightEndsMargin: SimulationVariable;\r\n naphthaMargin: SimulationVariable;\r\n distillateMargin: SimulationVariable;\r\n gasOilMargin: SimulationVariable;\r\n vacuumResidueMargin: SimulationVariable;\r\n\r\n suncorProfitPercentage: SimulationVariable;\r\n\r\n maximumSulfurContent: SimulationVariable;\r\n maximumMassDensity: SimulationVariable;\r\n\r\n constraints: UnitOperationConstraints;\r\n\r\n /**\r\n *\r\n */\r\n constructor(unitOperation: any, ownerCase: Case) {\r\n super(unitOperation, ownerCase);\r\n this.initValues(unitOperation);\r\n this.setSimulationVariableNames();\r\n }\r\n\r\n override clearResults() {\r\n super.clearResults();\r\n this.volumetricFlowrate.value = null;\r\n this.feedstockValue.value = null;\r\n this.ghgIntensity.value = null;\r\n this.ghgEmissions.value = null;\r\n this.cumulativeGhgEmissions.value = null;\r\n }\r\n\r\n override initValues(unitOperation: any): void {\r\n super.initValues(unitOperation);\r\n this.volumetricFlowrate = new SimulationVariable(unitOperation.volumetricFlowrate, this.ownerCase, this);\r\n this.cumulativeGhgEmissions = new SimulationVariable(unitOperation.cumulativeGhgEmissions, this.ownerCase, this);\r\n this.feedstockValue = new SimulationVariable(unitOperation.feedstockValue, this.ownerCase, this);\r\n\r\n this.lightEndsMargin = new SimulationVariable(unitOperation.lightEndsMargin, this.ownerCase, this);\r\n this.naphthaMargin = new SimulationVariable(unitOperation.naphthaMargin, this.ownerCase, this);\r\n this.distillateMargin = new SimulationVariable(unitOperation.distillateMargin, this.ownerCase, this);\r\n this.gasOilMargin = new SimulationVariable(unitOperation.gasOilMargin, this.ownerCase, this);\r\n this.vacuumResidueMargin = new SimulationVariable(unitOperation.vacuumResidueMargin, this.ownerCase, this);\r\n\r\n this.suncorProfitPercentage = new SimulationVariable(unitOperation.suncorProfitPercentage, this.ownerCase, this);\r\n\r\n this.maximumSulfurContent = new SimulationVariable(unitOperation.maximumSulfurContent, this.ownerCase, this);\r\n this.maximumMassDensity = new SimulationVariable(unitOperation.maximumMassDensity, this.ownerCase, this);\r\n this.initConstraints();\r\n }\r\n\r\n initConstraints() {\r\n this.constraints = new UnitOperationConstraints();\r\n this.constraints.addConstraint('capacity', this.capacity);\r\n this.constraints.addConstraint('maximumSulfurContent', this.maximumSulfurContent);\r\n this.constraints.addConstraint('maximumMassDensity', this.maximumMassDensity);\r\n }\r\n\r\n getAvailableKpis() {\r\n return [\r\n this.volumetricFlowrate,\r\n this.feedstockValue,\r\n this.cumulativeGhgEmissions,\r\n this.ghgIntensity,\r\n this.ghgEmissions,\r\n ];\r\n }\r\n\r\n getAvailableMultiPeriodParameters(): SimulationVariable[] {\r\n return [this.capacity];\r\n }\r\n\r\n getAvailableParametricStudyParameters(): SimulationVariable[] {\r\n return [\r\n this.lightEndsMargin,\r\n this.naphthaMargin,\r\n this.distillateMargin,\r\n this.gasOilMargin,\r\n this.vacuumResidueMargin,\r\n this.suncorProfitPercentage,\r\n ];\r\n }\r\n\r\n getAvailableParameters() {\r\n return [this.ghgIntensity];\r\n }\r\n\r\n override setSimulationVariableNames() {\r\n super.setSimulationVariableNames();\r\n this.volumetricFlowrate.setName('Volumetric Flowrate');\r\n this.cumulativeGhgEmissions.setName('Cumulative GHG Emissions');\r\n this.feedstockValue.setName('Feedstock Value');\r\n this.suncorProfitPercentage.setName(SimulationVariableName.SUNCOR_PROFIT_PERCENTAGE);\r\n\r\n this.lightEndsMargin.setName('Light Ends Margin');\r\n this.naphthaMargin.setName('Naphtha Margin');\r\n this.distillateMargin.setName('Distillate Margin');\r\n this.gasOilMargin.setName('Gas Oil Margin');\r\n this.vacuumResidueMargin.setName('Vacuum Residue Margin');\r\n this.maximumMassDensity.setName(SimulationVariableName.MAXIMUM_MASS_DENSITY);\r\n this.maximumSulfurContent.setName(SimulationVariableName.MAXIMUM_SULFUR_CONTENT);\r\n this.capacity.setName(SimulationVariableName.CAPACITY);\r\n }\r\n\r\n override setQuantities() {\r\n super.setQuantities();\r\n this.feedstockValue.setQuantity('CurrencyPerVolume');\r\n this.volumetricFlowrate.setQuantity('Volumetricflowrate');\r\n this.cumulativeGhgEmissions.setQuantity('Massflowrate');\r\n\r\n this.lightEndsMargin.setQuantity('Percent');\r\n this.naphthaMargin.setQuantity('Percent');\r\n this.distillateMargin.setQuantity('Percent');\r\n this.gasOilMargin.setQuantity('Percent');\r\n this.vacuumResidueMargin.setQuantity('Percent');\r\n\r\n this.suncorProfitPercentage.setQuantity('Percent');\r\n\r\n this.maximumSulfurContent.setQuantity(Quantity.MASS_FRACTION);\r\n this.maximumMassDensity.setQuantity('LiquidDensity');\r\n }\r\n\r\n override setDefaultValues() {\r\n super.setDefaultValues();\r\n\r\n if (this.volumetricFlowrate.isUndefined()) {\r\n this.volumetricFlowrate.setDefaultValue(0.0);\r\n }\r\n\r\n if (this.cumulativeGhgEmissions.isUndefined()) {\r\n this.cumulativeGhgEmissions.setDefaultValue(0.0, unitConverter.units.Massflowrate.MMTPA);\r\n }\r\n\r\n if (this.feedstockValue.isUndefined()) {\r\n this.feedstockValue.setDefaultValue(0.0);\r\n }\r\n\r\n if (this.lightEndsMargin.isUndefined()) {\r\n this.lightEndsMargin.setDefaultValue(-5.0);\r\n }\r\n\r\n if (this.naphthaMargin.isUndefined()) {\r\n this.naphthaMargin.setDefaultValue(0.0);\r\n }\r\n\r\n if (this.distillateMargin.isUndefined()) {\r\n this.distillateMargin.setDefaultValue(18.0);\r\n }\r\n\r\n if (this.gasOilMargin.isUndefined()) {\r\n this.gasOilMargin.setDefaultValue(12.0);\r\n }\r\n\r\n if (this.vacuumResidueMargin.isUndefined()) {\r\n this.vacuumResidueMargin.setDefaultValue(8.0);\r\n }\r\n if (this.maximumMassDensity.isUndefined()) {\r\n this.maximumMassDensity.setDefaultValue(null, unitConverter.units.LiquidDensity.KG_M3);\r\n }\r\n }\r\n\r\n override ignoreForMakeReady(simvar: SimulationVariable): boolean {\r\n return (\r\n super.ignoreForMakeReady(simvar) ||\r\n simvar === this.volumetricFlowrate ||\r\n simvar === this.capacity ||\r\n simvar === this.maximumSulfurContent ||\r\n simvar === this.maximumMassDensity ||\r\n simvar === this.minimumFlow\r\n );\r\n }\r\n\r\n getAlternativeGhgIntensity() {\r\n return new SimulationVariable(this.ghgIntensity, this.ownerCase, this);\r\n }\r\n\r\n override dePersist(suo: any) {\r\n super.dePersist(suo);\r\n\r\n this.feedstockValue = this.getSimulationVariableSafe(suo.feedstockValue);\r\n this.volumetricFlowrate = this.getSimulationVariableSafe(suo.volumetricFlowrate);\r\n this.cumulativeGhgEmissions = this.getSimulationVariableSafe(suo.cumulativeGhgEmissions);\r\n\r\n this.lightEndsMargin = this.getSimulationVariableSafe(suo.lightEndsMargin);\r\n this.naphthaMargin = this.getSimulationVariableSafe(suo.naphthaMargin);\r\n this.distillateMargin = this.getSimulationVariableSafe(suo.distillateMargin);\r\n this.gasOilMargin = this.getSimulationVariableSafe(suo.gasOilMargin);\r\n this.vacuumResidueMargin = this.getSimulationVariableSafe(suo.vacuumResidueMargin);\r\n\r\n this.suncorProfitPercentage = this.getSimulationVariableSafe(suo.suncorProfitPercentage);\r\n\r\n this.maximumSulfurContent = this.getSimulationVariableSafe(suo.maximumSulfurContent);\r\n this.maximumMassDensity = this.getSimulationVariableSafe(suo.maximumMassDensity);\r\n\r\n this.setQuantities();\r\n this.setDefaultValues();\r\n this.initConstraints();\r\n }\r\n\r\n constraintViolated() {\r\n const inletStream = this.ownerCase.filterSuncorMaterialStreams(s => {\r\n return s.outletUnitOperationId === this.id;\r\n })[0];\r\n\r\n // return inletStream && this.constraintValueDefined() ? inletStream.volumetricFlowrate.value > (this.capacity.value + 0.01) : false;\r\n return (\r\n inletStream &&\r\n (this.constraints.constraintValueViolated('capacity', inletStream.volumetricFlowrate.value) ||\r\n this.constraints.constraintValueViolated('maximumSulfurContent', inletStream.sulfur.value) ||\r\n this.constraints.constraintValueViolated('maximumMassDensity', inletStream.massDensity.value))\r\n );\r\n // this.constraints.constraintValueViolated('maximumHydrogenProduction', inletStream.hyd.value));\r\n }\r\n\r\n constraintValueDefined() {\r\n return this.constraints.anyConstraintValueDefined();\r\n }\r\n}\r\n","import { Case } from '../case';\r\nimport { SuncorUnitOperation } from './suncor-unit-operation';\r\nimport { DistributionRatioVariable } from './distribution-ratio-variable';\r\nimport { isTypeUndefined } from '../../_utils/utils';\r\nimport { RangeDistributionRatioVariable } from './range-distribution-ratio-variable';\r\nimport { OutletDistributionRatioVariablesOwner } from './outlet-distribution-ratio-variables-owner';\r\nimport { MixingConstraints } from './mixing-constraints';\r\nimport { DefaultMappedType } from '../default-mapped-type';\r\nimport { RangeDistributionConstraint } from './range-distribution-constraint';\r\n\r\nexport class Splitter extends SuncorUnitOperation implements OutletDistributionRatioVariablesOwner {\r\n category = 'splitter';\r\n\r\n distributionRatioVariables: RangeDistributionRatioVariable[] = [];\r\n isOptimizable: boolean; // default value... otherwise will be initialized by false...\r\n constraints: MixingConstraints;\r\n\r\n /**\r\n *\r\n */\r\n constructor(unitOperation: any, ownerCase: Case) {\r\n super(unitOperation, ownerCase);\r\n this.initValues(unitOperation);\r\n }\r\n\r\n override initValues(unitOperation: any) {\r\n super.initValues(unitOperation);\r\n\r\n if (isTypeUndefined(unitOperation.isOptimizable)) {\r\n this.isOptimizable = true;\r\n } else {\r\n this.isOptimizable = !!unitOperation.isOptimizable;\r\n }\r\n\r\n if (unitOperation.distributionRatioVariables instanceof Array) {\r\n this.createConstraintsObjInstance(unitOperation);\r\n for (const dv of unitOperation.distributionRatioVariables) {\r\n const rangeDistributionRatioVar = new RangeDistributionRatioVariable(dv);\r\n this.distributionRatioVariables.push(rangeDistributionRatioVar);\r\n this.initConstraintsBasedInDistributionRatios(rangeDistributionRatioVar);\r\n }\r\n }\r\n this.setQuantities();\r\n }\r\n\r\n // region class-specific methods\r\n addOutletDistributionRatioVariables(unitOperationId: string) {\r\n this.clearAllRatioVariables();\r\n const distributionRatioVar = new DistributionRatioVariable(unitOperationId, null);\r\n this.distributionRatioVariables.push(distributionRatioVar);\r\n\r\n if (this.distributionRatioVariables.length === 1) {\r\n this.distributionRatioVariables[0].value = 1;\r\n }\r\n\r\n this.createConstraintsObjInstance();\r\n this.initConstraintsBasedInDistributionRatios(distributionRatioVar);\r\n }\r\n\r\n private clearAllRatioVariables() {\r\n for (const dv of this.distributionRatioVariables) {\r\n dv.value = null;\r\n }\r\n }\r\n\r\n findDistributionRatioVariable(unitOperationId: string) {\r\n return this.distributionRatioVariables.find(drv => {\r\n return drv.unitOperationId === unitOperationId;\r\n });\r\n }\r\n\r\n findDistributionRatioVariableName(i: number) {\r\n const dv = this.distributionRatioVariables[i];\r\n\r\n if (dv) {\r\n const uo = this.ownerCase.getUnitOperation(dv.unitOperationId);\r\n return uo ? uo.name : null;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n removeOutletDistributionRatioVariables(unitOperationId: string) {\r\n const index = this.distributionRatioVariables.indexOf(this.findDistributionRatioVariable(unitOperationId));\r\n\r\n if (index >= 0) {\r\n this.distributionRatioVariables.splice(index, 1);\r\n this.constraints.removeConstraint(unitOperationId);\r\n }\r\n }\r\n\r\n setOptimizable(isOptimizable: boolean) {\r\n this.isOptimizable = isOptimizable;\r\n }\r\n // endregion\r\n\r\n getAlternativeGhgIntensity() {\r\n return undefined;\r\n }\r\n\r\n // Constraints region\r\n initConstraintsBasedInDistributionRatios(rangeDistributionRatioVar: RangeDistributionRatioVariable) {\r\n const unitOpId = rangeDistributionRatioVar.unitOperationId;\r\n const unitOperation = this.ownerCase.getUnitOperation(unitOpId);\r\n\r\n if (this.isOptimizable) {\r\n if (this.constraints.minAndMaxConstraintsExists(unitOpId)) return;\r\n\r\n this.constraints.removeExactConstraintIfOptimizable(unitOpId);\r\n\r\n this.constraints.addNewConstraint(\r\n `minimumRange${unitOpId}`,\r\n unitOperation ? `Minimum ${unitOperation.name} Ratio` : 'Minimum',\r\n rangeDistributionRatioVar.minimumValue,\r\n unitOpId\r\n );\r\n this.constraints.addNewConstraint(\r\n `maximumRange${unitOpId}`,\r\n unitOperation ? `Maximum ${unitOperation.name} Ratio` : 'Maximum',\r\n rangeDistributionRatioVar.maximumValue,\r\n unitOpId\r\n );\r\n } else {\r\n if (this.constraints.exactValueConstraintExists(unitOpId)) return;\r\n\r\n this.constraints.removeMinMaxConIfNoOptimizable(unitOpId);\r\n\r\n this.constraints.addNewConstraint(\r\n `exactValue${unitOpId}`,\r\n unitOperation ? `Exact ${unitOperation.name} Ratio` : 'Exact',\r\n rangeDistributionRatioVar.value,\r\n unitOpId\r\n );\r\n }\r\n }\r\n\r\n initConstraintsBasedInExistingConstraints(unitOperation: DefaultMappedType<Splitter>) {\r\n Object.entries(unitOperation.constraints.constraints).forEach((entry: [string, RangeDistributionConstraint]) => {\r\n this.constraints.addNewConstraint(\r\n entry[0],\r\n entry[1].constraintName,\r\n entry[1].constraintValue,\r\n entry[1].sourceUnitOperationId,\r\n entry[1].isActive\r\n );\r\n });\r\n }\r\n\r\n createConstraintsObjInstance(unitOperation?: DefaultMappedType<Splitter>) {\r\n if (isTypeUndefined(this.constraints)) {\r\n this.constraints = new MixingConstraints();\r\n }\r\n if (isTypeUndefined(unitOperation)) return;\r\n if (!isTypeUndefined(unitOperation.constraints)) {\r\n if (Object.keys(unitOperation.constraints.constraints).length > 0)\r\n this.initConstraintsBasedInExistingConstraints(unitOperation);\r\n }\r\n }\r\n // end region\r\n}\r\n","// should it be part of unit operations config object?\r\n// eslint-disable-next-line\r\nexport const defaultUpgraderModel = 'GasYield = Inletccrpercent * 0.1786 + 6.4542;;\\r\\nNaphtaYield = (-0.0519 * Inletccrpercent * Inletccrpercent + 2.1168 * Inletccrpercent - 2.6873);\\r\\nDistillateYield = (0.0346 * Inletccrpercent * Inletccrpercent - 2.3061 * Inletccrpercent + 53.62);\\r\\nGasOilYield = (0.0663 * Inletccrpercent * Inletccrpercent - 3.0023 * Inletccrpercent + 52.654);\\r\\nCokeYield = (-0.0043 * Inletccrpercent * Inletccrpercent + 1.4772 * Inletccrpercent + 2.116);\\r\\n\\r\\nNaphtaAPI = 0.0217 * Inletccrpercent + 55.018;\\r\\nDistillateAPI = 0.1716 * Inletccrpercent + 25.121;\\r\\nGasOilAPI = -0.295 * Inletccrpercent + 14.438;\\r\\n\\r\\nNaphtaSulfur =0.0026 * Inletccrpercent + 1.796;\\r\\nDistillateSulfur = 0.0888 * Inletccrpercent + 1.7721;\\r\\nGasOilSulfur =0.1319 * Inletccrpercent + 2.1964;\\r\\n\\r\\nNaphtaNitrogen =3.8236 * Inletccrpercent + 82.464;\\r\\nDistillateNitrogen = 28.481 * Inletccrpercent + 272.6;\\r\\nGasOilNitrogen = 44.724 * Inletccrpercent + 2931.7;';\r\n","import { SimulationVariable } from '../simulation-variable';\r\nimport { IUnitOperation } from '../i-unit-operation';\r\nimport { Case } from '../case';\r\nimport { KpiProvider } from '../_case-study/kpi-provider';\r\nimport { defaultUpgraderModel } from '../../_config/unit-operations/default-models/default-upgrader-model';\r\nimport { ConstrainableObject } from '../_interfaces/constrainable-object';\r\nimport { UnitOperationConstraints } from './unit-operation-constraints';\r\nimport { SuncorUnitOpWithCogen } from './suncor-unit-op-with-cogen';\r\nimport { SimulationVariableName } from '../../_config/simulation-variable-name.enum';\r\nimport { ParameterProvider } from '../_case-study/parameter-provider';\r\nimport { MultiPeriodParameterProvider } from '../_multi-period/multi-period-parameter-provider';\r\n\r\ndeclare let unitConverter: any;\r\n\r\nexport class Upgrader\r\n extends SuncorUnitOpWithCogen\r\n implements IUnitOperation, KpiProvider, ConstrainableObject, ParameterProvider, MultiPeriodParameterProvider\r\n{\r\n category = 'upgrader';\r\n\r\n absoluteGhgEmissions: SimulationVariable;\r\n sweetProductRatio: SimulationVariable;\r\n sweetGhgIntensity: SimulationVariable;\r\n sourGhgIntensity: SimulationVariable;\r\n sulfurRemoval: SimulationVariable;\r\n nitrogenRemoval: SimulationVariable;\r\n ccrRemoval: SimulationVariable;\r\n sweetProductPrice: SimulationVariable;\r\n sourProductPrice: SimulationVariable;\r\n volumetricYield: SimulationVariable;\r\n maximumSulfurContent: SimulationVariable;\r\n maximumMassDensity: SimulationVariable;\r\n maximumHydrogenProduction: SimulationVariable;\r\n hydrogenUse: SimulationVariable;\r\n swellFactor: SimulationVariable;\r\n useSubFlowsheet: boolean;\r\n useCustomModel: boolean;\r\n upgraderModelScript: string;\r\n\r\n // TODO this seems to be obsolete\r\n hasTwoInlets: boolean;\r\n sulfurCapacity: SimulationVariable;\r\n constraints: UnitOperationConstraints;\r\n\r\n useCustomModelForHydrogenPlants: boolean;\r\n hydrogenPlantsCustomModel: string;\r\n\r\n // Amine tab fields\r\n totalH2SProduction: SimulationVariable;\r\n deaUseRate: SimulationVariable;\r\n amineCirculationRate: SimulationVariable;\r\n amineRateCapacity: SimulationVariable;\r\n\r\n // results for Utility Steam\r\n steamMake900: SimulationVariable;\r\n steamUse900: SimulationVariable;\r\n steamMake600: SimulationVariable;\r\n steamUse600: SimulationVariable;\r\n steamMake150: SimulationVariable;\r\n steamUse150: SimulationVariable;\r\n steamMake50: SimulationVariable;\r\n steamUse50: SimulationVariable;\r\n /**\r\n *\r\n */\r\n constructor(unitOperation: any, ownerCase: Case) {\r\n super(unitOperation, ownerCase);\r\n this.initValues(unitOperation);\r\n this.setSimulationVariableNames();\r\n }\r\n\r\n getAvailableKpis() {\r\n if (this.ownerCase.multiPeriodEnabled) {\r\n return [\r\n this.absoluteGhgEmissions,\r\n this.amineCirculationRate,\r\n this.cogenElectricityGeneration,\r\n this.ghgEmissions,\r\n this.hydrogenUse,\r\n this.sourGhgIntensity,\r\n this.sourProductPrice,\r\n this.sweetGhgIntensity,\r\n this.sweetProductPrice,\r\n this.totalH2SProduction,\r\n ];\r\n }\r\n return [\r\n this.absoluteGhgEmissions,\r\n this.amineCirculationRate,\r\n this.cogenElectricityGeneration,\r\n this.ghgEmissions,\r\n this.hydrogenUse,\r\n this.sourGhgIntensity,\r\n this.sourProductPrice,\r\n this.steamMake900,\r\n this.steamUse900,\r\n this.sweetGhgIntensity,\r\n this.sweetProductPrice,\r\n this.totalH2SProduction,\r\n ];\r\n }\r\n\r\n getAvailableMultiPeriodParameters(): SimulationVariable[] {\r\n return [this.capacity];\r\n }\r\n\r\n getAvailableParametricStudyParameters(): SimulationVariable[] {\r\n return [\r\n this.ccrRemoval,\r\n this.nitrogenRemoval,\r\n this.sulfurRemoval,\r\n this.sweetProductRatio,\r\n this.sweetGhgIntensity,\r\n this.sourGhgIntensity,\r\n this.cogenElectricityGeneration,\r\n this.netElectricityExport,\r\n this.gridIntensity,\r\n this.cogenIntensity,\r\n this.deaUseRate,\r\n this.sweetProductPrice,\r\n this.sourProductPrice,\r\n this.electricityPrice,\r\n this.opexVar,\r\n this.opexGasDiesel,\r\n this.opexPower,\r\n this.opexFixed,\r\n this.capexAmortized,\r\n ];\r\n }\r\n\r\n override clearResults() {\r\n super.clearResults();\r\n this.absoluteGhgEmissions.value = null;\r\n this.ghgEmissions.value = null;\r\n this.revenue.value = null;\r\n this.unitValue.value = null;\r\n this.opexCarbonDioxide.value = null;\r\n this.opexTotal.value = null;\r\n this.capexTotal.value = null;\r\n this.volumetricYield.value = null;\r\n }\r\n\r\n override initValues(unitOperation: any): void {\r\n super.initValues(unitOperation);\r\n this.absoluteGhgEmissions = new SimulationVariable(unitOperation.absoluteGhgEmissions, this.ownerCase, this);\r\n this.sweetProductRatio = new SimulationVariable(unitOperation.sweetProductRatio, this.ownerCase, this);\r\n this.sweetGhgIntensity = new SimulationVariable(unitOperation.sweetGhgIntensity, this.ownerCase, this);\r\n this.sourGhgIntensity = new SimulationVariable(unitOperation.sourGhgIntensity, this.ownerCase, this);\r\n this.sulfurRemoval = new SimulationVariable(unitOperation.sulfurRemoval, this.ownerCase, this);\r\n this.nitrogenRemoval = new SimulationVariable(unitOperation.nitrogenRemoval, this.ownerCase, this);\r\n this.ccrRemoval = new SimulationVariable(unitOperation.ccrRemoval, this.ownerCase, this);\r\n this.sweetProductPrice = new SimulationVariable(unitOperation.sweetProductPrice, this.ownerCase, this);\r\n this.sourProductPrice = new SimulationVariable(unitOperation.sourProductPrice, this.ownerCase, this);\r\n this.volumetricYield = new SimulationVariable(unitOperation.volumetricYield, this.ownerCase, this);\r\n this.maximumSulfurContent = new SimulationVariable(unitOperation.maximumSulfurContent, this.ownerCase, this);\r\n this.maximumMassDensity = new SimulationVariable(unitOperation.maximumMassDensity, this.ownerCase, this);\r\n this.maximumHydrogenProduction = new SimulationVariable(\r\n unitOperation.maximumHydrogenProduction,\r\n this.ownerCase,\r\n this\r\n );\r\n this.hydrogenUse = new SimulationVariable(unitOperation.hydrogenUse, this.ownerCase, this);\r\n this.swellFactor = new SimulationVariable(unitOperation.swellFactor, this.ownerCase, this);\r\n\r\n // Amine tab\r\n this.totalH2SProduction = new SimulationVariable(unitOperation.totalH2SProduction || {}, this.ownerCase, this);\r\n this.deaUseRate = new SimulationVariable(unitOperation.deaUseRate || {}, this.ownerCase, this);\r\n this.amineCirculationRate = new SimulationVariable(unitOperation.amineCirculationRate || {}, this.ownerCase, this);\r\n this.amineRateCapacity = new SimulationVariable(unitOperation.amineRateCapacity || {}, this.ownerCase, this);\r\n this.sulfurCapacity = new SimulationVariable(unitOperation.sulfurCapacity || {}, this.ownerCase, this);\r\n\r\n // utility Steam\r\n this.steamMake900 = new SimulationVariable(unitOperation.steamMake900 || {}, this.ownerCase, this);\r\n this.steamUse900 = new SimulationVariable(unitOperation.steamUse900 || {}, this.ownerCase, this);\r\n this.steamMake600 = new SimulationVariable(unitOperation.steamMake600 || {}, this.ownerCase, this);\r\n this.steamUse600 = new SimulationVariable(unitOperation.steamUse600 || {}, this.ownerCase, this);\r\n this.steamMake150 = new SimulationVariable(unitOperation.steamMake150 || {}, this.ownerCase, this);\r\n this.steamUse150 = new SimulationVariable(unitOperation.steamUse150 || {}, this.ownerCase, this);\r\n this.steamMake50 = new SimulationVariable(unitOperation.steamMake50 || {}, this.ownerCase, this);\r\n this.steamUse50 = new SimulationVariable(unitOperation.steamUse50 || {}, this.ownerCase, this);\r\n\r\n if (typeof unitOperation.useCustomModel === 'undefined') {\r\n this.useCustomModel = false;\r\n } else {\r\n this.useCustomModel = unitOperation.useCustomModel;\r\n }\r\n if (typeof unitOperation.useSubFlowsheet === 'undefined') {\r\n this.useSubFlowsheet = false;\r\n } else {\r\n this.useSubFlowsheet = unitOperation.useSubFlowsheet;\r\n }\r\n\r\n if (typeof unitOperation.hasTwoInlets === 'undefined') {\r\n this.hasTwoInlets = false;\r\n } else {\r\n this.hasTwoInlets = unitOperation.hasTwoInlets;\r\n }\r\n this.hydrogenPlantsCustomModel = unitOperation.hydrogenPlantsCustomModel;\r\n this.useCustomModelForHydrogenPlants = unitOperation.useCustomModelForHydrogenPlants;\r\n\r\n this.upgraderModelScript =\r\n typeof unitOperation.upgraderModelScript === 'undefined'\r\n ? defaultUpgraderModel\r\n : unitOperation.upgraderModelScript;\r\n\r\n this.initConstraints();\r\n }\r\n\r\n initConstraints() {\r\n this.constraints = new UnitOperationConstraints();\r\n this.constraints.addConstraint('capacity', this.capacity);\r\n this.constraints.addConstraint('maximumSulfurContent', this.maximumSulfurContent);\r\n this.constraints.addConstraint('maximumMassDensity', this.maximumMassDensity);\r\n this.constraints.addConstraint('maximumHydrogenProduction', this.maximumHydrogenProduction);\r\n this.constraints.addConstraint('amineRateCapacity', this.amineRateCapacity);\r\n this.constraints.addConstraint('sulfurCapacity', this.sulfurCapacity);\r\n }\r\n\r\n override setDefaultValues() {\r\n super.setDefaultValues();\r\n\r\n if (this.absoluteGhgEmissions.isUndefined()) {\r\n this.absoluteGhgEmissions.setDefaultValue(0.0, unitConverter.units.Massflowrate.MMTPA);\r\n }\r\n\r\n if (this.ccrRemoval.isUndefined()) {\r\n this.ccrRemoval.setDefaultValue(95);\r\n }\r\n\r\n if (this.sulfurRemoval.isUndefined()) {\r\n this.sulfurRemoval.setDefaultValue(99);\r\n }\r\n\r\n if (this.nitrogenRemoval.isUndefined()) {\r\n this.nitrogenRemoval.setDefaultValue(95);\r\n }\r\n\r\n if (this.sweetProductRatio.isUndefined()) {\r\n this.sweetProductRatio.setDefaultValue(55);\r\n }\r\n\r\n if (this.sweetProductPrice.isUndefined()) {\r\n this.sweetProductPrice.setDefaultValue(70);\r\n }\r\n\r\n if (this.sourProductPrice.isUndefined()) {\r\n this.sourProductPrice.setDefaultValue(65);\r\n }\r\n\r\n if (this.sourGhgIntensity.isUndefined()) {\r\n this.sourGhgIntensity.setDefaultValue(null, unitConverter.units.MassPerVolume.KG_BBL);\r\n }\r\n\r\n if (this.sweetGhgIntensity.isUndefined()) {\r\n this.sweetGhgIntensity.setDefaultValue(null, unitConverter.units.MassPerVolume.KG_BBL);\r\n }\r\n if (this.volumetricYield.isUndefined()) {\r\n this.volumetricYield.setDefaultValue(null);\r\n }\r\n if (this.swellFactor.isUndefined()) {\r\n this.swellFactor.setDefaultValue(1.03);\r\n }\r\n }\r\n\r\n override setSimulationVariableNames() {\r\n super.setSimulationVariableNames();\r\n this.absoluteGhgEmissions.setName('Absolute GHG Emissions');\r\n this.sweetProductRatio.setName('Sweet Product Ratio');\r\n this.sweetGhgIntensity.setName('Sweet Product GHG Intensity');\r\n this.sourGhgIntensity.setName('Sour Product GHG Intensity');\r\n this.sulfurRemoval.setName('Sulfur Removal');\r\n this.nitrogenRemoval.setName('Nitrogen Removal');\r\n this.ccrRemoval.setName('CCR Removal');\r\n this.sweetProductPrice.setName('Sweet Product Price');\r\n this.sourProductPrice.setName('Sour Product Price');\r\n this.deaUseRate.setName(SimulationVariableName.DEA_USE_RATE);\r\n // this.volumetricYield.setName('Volumetric Yield');\r\n this.volumetricYield.setName('Swell factor');\r\n this.maximumHydrogenProduction.setName(SimulationVariableName.MAXIMUM_HYDROGEN_PRODUCTION);\r\n this.maximumMassDensity.setName(SimulationVariableName.MAXIMUM_MASS_DENSITY);\r\n this.maximumSulfurContent.setName(SimulationVariableName.MAXIMUM_SULFUR_CONTENT);\r\n this.amineRateCapacity.setName(SimulationVariableName.AMINE_RATE_CAPACITY);\r\n this.sulfurCapacity.setName(SimulationVariableName.SULFUR_CAPACITY);\r\n\r\n this.hydrogenUse.setName('Hydrogen Use');\r\n this.totalH2SProduction.setName('Total H2S Production');\r\n this.amineCirculationRate.setName('Amine Circulation Rate');\r\n this.steamMake900.setName('#900 Steam Make');\r\n this.steamUse900.setName('#900 Steam Use');\r\n this.capacity.setName(SimulationVariableName.CAPACITY);\r\n }\r\n\r\n override setQuantities() {\r\n super.setQuantities();\r\n this.absoluteGhgEmissions.setQuantity('Massflowrate');\r\n this.sweetProductRatio.setQuantity('Percent');\r\n this.sweetGhgIntensity.setQuantity('MassPerVolume');\r\n this.sourGhgIntensity.setQuantity('MassPerVolume');\r\n this.sulfurRemoval.setQuantity('Percent');\r\n this.nitrogenRemoval.setQuantity('Percent');\r\n this.ccrRemoval.setQuantity('Percent');\r\n this.sweetProductPrice.setQuantity('CurrencyPerVolume');\r\n this.sourProductPrice.setQuantity('CurrencyPerVolume');\r\n this.volumetricYield.setQuantity('Percent');\r\n this.maximumSulfurContent.setQuantity('MassFraction');\r\n this.maximumMassDensity.setQuantity('LiquidDensity');\r\n this.maximumHydrogenProduction.setQuantity('Moleflowrate');\r\n this.swellFactor.setQuantity('Dimensionless');\r\n this.hydrogenUse.setQuantity('Moleflowrate');\r\n this.sulfurCapacity.setQuantity('Moleflowrate');\r\n\r\n // Amine tab\r\n this.totalH2SProduction.setQuantity('Moleflowrate');\r\n this.deaUseRate.setQuantity('AmineUseRate');\r\n this.amineCirculationRate.setQuantity('Volumetricflowrate');\r\n this.amineRateCapacity.setQuantity('Volumetricflowrate');\r\n\r\n // utility steam\r\n this.steamMake900.setQuantity('Massflowrate');\r\n this.steamUse900.setQuantity('Massflowrate');\r\n this.steamMake600.setQuantity('Massflowrate');\r\n this.steamUse600.setQuantity('Massflowrate');\r\n this.steamMake150.setQuantity('Massflowrate');\r\n this.steamUse150.setQuantity('Massflowrate');\r\n this.steamMake50.setQuantity('Massflowrate');\r\n this.steamUse50.setQuantity('Massflowrate');\r\n }\r\n\r\n getAlternativeGhgIntensity() {\r\n const inletStream = this.ownerCase.filterSuncorMaterialStreams(s => {\r\n return s.outletUnitOperationId === this.id;\r\n });\r\n\r\n if (inletStream.length) {\r\n const altGhgIntensity = new SimulationVariable(this.ghgEmissions, this.ownerCase, this);\r\n altGhgIntensity.value = this.ghgEmissions.value / inletStream[0].volumetricFlowrate.value;\r\n altGhgIntensity.setQuantity('MassPerVolume');\r\n return altGhgIntensity;\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n getAvailableParameters() {\r\n return [\r\n this.sourGhgIntensity,\r\n this.sweetGhgIntensity,\r\n this.sourProductPrice,\r\n this.sweetProductPrice,\r\n this.electricityPrice,\r\n this.opexVar,\r\n this.opexGasDiesel,\r\n this.opexPower,\r\n this.opexFixed,\r\n ];\r\n }\r\n\r\n override dePersist(sup: any) {\r\n super.dePersist(sup);\r\n\r\n this.absoluteGhgEmissions = this.getSimulationVariableSafe(sup.absoluteGhgEmissions);\r\n this.sweetProductRatio = this.getSimulationVariableSafe(sup.sweetProductRatio);\r\n this.sweetGhgIntensity = this.getSimulationVariableSafe(sup.sweetGhgIntensity);\r\n this.sourGhgIntensity = this.getSimulationVariableSafe(sup.sourGhgIntensity);\r\n this.sulfurRemoval = this.getSimulationVariableSafe(sup.sulfurRemoval);\r\n this.nitrogenRemoval = this.getSimulationVariableSafe(sup.nitrogenRemoval);\r\n this.ccrRemoval = this.getSimulationVariableSafe(sup.ccrRemoval);\r\n this.sweetProductPrice = this.getSimulationVariableSafe(sup.sweetProductPrice);\r\n this.sourProductPrice = this.getSimulationVariableSafe(sup.sourProductPrice);\r\n this.volumetricYield = this.getSimulationVariableSafe(sup.volumetricYield);\r\n this.maximumSulfurContent = this.getSimulationVariableSafe(sup.maximumSulfurContent);\r\n this.maximumMassDensity = this.getSimulationVariableSafe(sup.maximumMassDensity);\r\n this.maximumHydrogenProduction = this.getSimulationVariableSafe(sup.maximumHydrogenProduction);\r\n this.hydrogenUse = this.getSimulationVariableSafe(sup.hydrogenUse);\r\n this.swellFactor = this.getSimulationVariableSafe(sup.swellFactor);\r\n\r\n // Amine tab\r\n this.totalH2SProduction = this.getSimulationVariableSafe(sup.totalH2SProduction);\r\n this.deaUseRate = this.getSimulationVariableSafe(sup.deaUseRate);\r\n this.amineCirculationRate = this.getSimulationVariableSafe(sup.amineCirculationRate);\r\n this.amineRateCapacity = this.getSimulationVariableSafe(sup.amineRateCapacity);\r\n this.sulfurCapacity = this.getSimulationVariableSafe(sup.sulfurCapacity);\r\n\r\n // utility Steam\r\n this.steamMake900 = this.getSimulationVariableSafe(sup.steamMake900);\r\n this.steamUse900 = this.getSimulationVariableSafe(sup.steamUse900);\r\n this.steamMake600 = this.getSimulationVariableSafe(sup.steamMake600);\r\n this.steamUse600 = this.getSimulationVariableSafe(sup.steamUse600);\r\n this.steamMake150 = this.getSimulationVariableSafe(sup.steamMake150);\r\n this.steamUse150 = this.getSimulationVariableSafe(sup.steamUse150);\r\n this.steamMake50 = this.getSimulationVariableSafe(sup.steamMake50);\r\n this.steamUse50 = this.getSimulationVariableSafe(sup.steamUse50);\r\n\r\n this.setQuantities();\r\n this.setDefaultValues();\r\n this.initConstraints();\r\n }\r\n\r\n override get isFlowsheetOwner() {\r\n return this.useSubFlowsheet;\r\n }\r\n\r\n // region constraints\r\n constraintViolated() {\r\n const inletStream = this.ownerCase.filterSuncorMaterialStreams(s => {\r\n return s.outletUnitOperationId === this.id;\r\n })[0];\r\n\r\n return (\r\n inletStream &&\r\n (this.constraints.constraintValueViolated('capacity', inletStream.volumetricFlowrate.value) ||\r\n this.constraints.constraintValueViolated('maximumSulfurContent', inletStream.sulfur.value) ||\r\n this.constraints.constraintValueViolated('maximumMassDensity', inletStream.massDensity.value))\r\n );\r\n }\r\n\r\n override ignoreForMakeReady(simvar: SimulationVariable): boolean {\r\n if (!this.useSubFlowsheet) {\r\n return (\r\n super.ignoreForMakeReady(simvar) ||\r\n simvar === this.volumetricYield ||\r\n simvar === this.minimumFlow ||\r\n simvar === this.hydrogenUse ||\r\n simvar === this.opexCarbonDioxide ||\r\n simvar === this.opexTotal\r\n );\r\n }\r\n return (\r\n super.ignoreForMakeReady(simvar) ||\r\n simvar === this.volumetricYield ||\r\n simvar === this.minimumFlow ||\r\n simvar === this.hydrogenUse ||\r\n simvar === this.opexCarbonDioxide ||\r\n simvar === this.opexTotal ||\r\n simvar === this.sweetGhgIntensity ||\r\n simvar === this.sourGhgIntensity ||\r\n simvar === this.sweetProductPrice ||\r\n simvar === this.sourProductPrice ||\r\n simvar === this.electricityPrice ||\r\n simvar === this.sweetProductRatio ||\r\n simvar === this.sulfurRemoval ||\r\n simvar === this.nitrogenRemoval ||\r\n simvar === this.ccrRemoval ||\r\n simvar === this.swellFactor\r\n );\r\n }\r\n\r\n constraintValueDefined() {\r\n return this.constraints.anyConstraintValueDefined();\r\n }\r\n // endregion\r\n\r\n override isPropertyBlackListed(property) {\r\n return super.isPropertyBlackListed(property) || property === this.constraints;\r\n }\r\n}\r\n","import { SuncorUnitOperation } from './suncor-unit-operation';\r\nimport { KpiProvider } from '../_case-study/kpi-provider';\r\nimport { SimulationVariable } from '../simulation-variable';\r\nimport { Case } from '../case';\r\nimport { unitOperationsConfig } from '../../_config/unit-operations.config';\r\nimport { BaseObject } from '../base-object';\r\nimport { ParameterProvider } from '../_case-study/parameter-provider';\r\nimport { MultiPeriodParameterProvider } from '../_multi-period/multi-period-parameter-provider';\r\n\r\nexport class ThirdPartySource\r\n extends SuncorUnitOperation\r\n implements KpiProvider, ParameterProvider, MultiPeriodParameterProvider\r\n{\r\n category = unitOperationsConfig.thirdPartySource.key;\r\n\r\n isOptimizable: boolean;\r\n volumetricFlowrate: SimulationVariable;\r\n price: SimulationVariable;\r\n fluidAnalysisId: string;\r\n\r\n /**\r\n *\r\n */\r\n constructor(unitOperation: any, ownerCase: Case) {\r\n super(unitOperation, ownerCase);\r\n this.initValues(unitOperation);\r\n this.setSimulationVariableNames();\r\n }\r\n\r\n override addSimVarsToPool() {\r\n super.addSimVarsToPool();\r\n }\r\n\r\n override overwriteValues(another: BaseObject) {\r\n super.overwriteValues(another);\r\n const ds = another as ThirdPartySource;\r\n this.isOptimizable = ds.isOptimizable;\r\n }\r\n\r\n override ignoreForOverWrite(propertyName: string): boolean {\r\n return super.ignoreForOverWrite(propertyName);\r\n }\r\n\r\n getAvailableKpis() {\r\n return [this.volumetricFlowrate, this.price, this.ghgIntensity, this.ghgEmissions];\r\n }\r\n\r\n getAvailableMultiPeriodParameters(): SimulationVariable[] {\r\n return [this.volumetricFlowrate];\r\n }\r\n\r\n getAvailableParametricStudyParameters(): SimulationVariable[] {\r\n return [this.volumetricFlowrate, this.ghgIntensity, this.price];\r\n }\r\n\r\n override clearResults() {\r\n super.clearResults();\r\n this.ghgEmissions.value = null;\r\n this.opexCarbonDioxide.value = null;\r\n this.opexVar.value = null;\r\n this.opexTotal.value = null;\r\n\r\n if (this.isOptimizable) {\r\n this.volumetricFlowrate.value = null;\r\n }\r\n }\r\n\r\n override initValues(unitOperation: any): void {\r\n super.initValues(unitOperation);\r\n\r\n if (typeof unitOperation.isOptimizable === 'undefined') {\r\n // I think this is the only place to know if isOptimizable will have an 'undefined' value\r\n this.isOptimizable = true;\r\n } else {\r\n this.isOptimizable = !!unitOperation.isOptimizable;\r\n }\r\n\r\n this.volumetricFlowrate = new SimulationVariable(unitOperation.volumetricFlowrate, this.ownerCase, this);\r\n this.price = new SimulationVariable(unitOperation.price, this.ownerCase, this);\r\n this.fluidAnalysisId = unitOperation.fluidAnalysisId || '';\r\n }\r\n\r\n override setSimulationVariableNames(): void {\r\n super.setSimulationVariableNames();\r\n this.volumetricFlowrate.setName('Volumetric flowrate');\r\n this.price.setName('Price');\r\n // Rename\r\n }\r\n\r\n override setSimulationVariablesOwner() {\r\n super.setSimulationVariablesOwner();\r\n }\r\n\r\n override setDefaultValues(): void {\r\n super.setDefaultValues();\r\n\r\n if (this.price.isUndefined()) {\r\n this.price.setDefaultValue(60.0);\r\n }\r\n }\r\n\r\n override setQuantities() {\r\n super.setQuantities();\r\n this.volumetricFlowrate.setQuantity('Volumetricflowrate');\r\n this.price.setQuantity('CurrencyPerVolume');\r\n }\r\n\r\n override convertToInternalUnit() {\r\n super.convertToInternalUnit();\r\n }\r\n\r\n getAvailableParameters() {\r\n return [this.ghgIntensity, this.price];\r\n }\r\n\r\n getAlternativeGhgIntensity() {\r\n return new SimulationVariable(this.ghgIntensity, this.ownerCase, this);\r\n }\r\n\r\n // region class-specific methods\r\n setOptimizable(isOptimizable: boolean) {\r\n this.isOptimizable = isOptimizable;\r\n\r\n if (this.isOptimizable) {\r\n this.volumetricFlowrate.value = null;\r\n }\r\n }\r\n\r\n override ignoreForMakeReady(simvar: SimulationVariable): boolean {\r\n let result = super.ignoreForMakeReady(simvar);\r\n if (this.isOptimizable) {\r\n result = result || simvar === this.volumetricFlowrate;\r\n }\r\n result = result || simvar === this.capacity || simvar === this.minimumFlow;\r\n return result;\r\n }\r\n // endregion\r\n\r\n override dePersist(sup: any) {\r\n super.dePersist(sup);\r\n this.volumetricFlowrate = this.getSimulationVariableSafe(sup.volumetricFlowrate);\r\n this.price = this.getSimulationVariableSafe(sup.price);\r\n\r\n this.setQuantities();\r\n this.setDefaultValues();\r\n }\r\n}\r\n","import { SimulationVariable } from '../simulation-variable';\r\nimport { Case } from '../case';\r\nimport { KpiProvider } from '../_case-study/kpi-provider';\r\nimport { BaseObject } from '../base-object';\r\nimport { unitOperationsConfig } from '../../_config/unit-operations.config';\r\nimport { SuncorUnitOpWithCogen } from './suncor-unit-op-with-cogen';\r\nimport { MultiPeriodParameterProvider } from '../_multi-period/multi-period-parameter-provider';\r\nimport { ParameterProvider } from '../_case-study/parameter-provider';\r\n\r\ndeclare let unitConverter: any;\r\n\r\nexport class OffshoreSource\r\n extends SuncorUnitOpWithCogen\r\n implements KpiProvider, ParameterProvider, MultiPeriodParameterProvider\r\n{\r\n category = unitOperationsConfig.offshore.key;\r\n\r\n volumetricFlowrate: SimulationVariable;\r\n absoluteGhgEmissions: SimulationVariable;\r\n price: SimulationVariable;\r\n fluidAnalysisId: string;\r\n\r\n /**\r\n *\r\n */\r\n constructor(unitOperation: any, ownerCase: Case) {\r\n super(unitOperation, ownerCase);\r\n this.initValues(unitOperation);\r\n this.setSimulationVariableNames();\r\n }\r\n\r\n override addSimVarsToPool() {\r\n super.addSimVarsToPool();\r\n }\r\n\r\n override overwriteValues(another: BaseObject) {\r\n super.overwriteValues(another);\r\n }\r\n\r\n getAvailableKpis() {\r\n return [this.cogenElectricityGeneration, this.absoluteGhgEmissions, this.volumetricFlowrate, this.price];\r\n }\r\n\r\n getAvailableMultiPeriodParameters(): SimulationVariable[] {\r\n return [this.volumetricFlowrate];\r\n }\r\n\r\n getAvailableParametricStudyParameters(): SimulationVariable[] {\r\n return [\r\n this.volumetricFlowrate,\r\n this.ghgIntensity,\r\n this.cogenElectricityGeneration,\r\n this.netElectricityExport,\r\n this.cogenIntensity,\r\n this.gridIntensity,\r\n this.price,\r\n this.electricityPrice,\r\n this.opexVar,\r\n this.opexGasDiesel,\r\n this.opexPower,\r\n this.opexFixed,\r\n this.capexAmortized,\r\n ];\r\n }\r\n\r\n override clearResults() {\r\n super.clearResults();\r\n this.absoluteGhgEmissions.value = null;\r\n this.ghgEmissions.value = null;\r\n this.revenue.value = null;\r\n this.unitValue.value = null;\r\n this.opexCarbonDioxide.value = null;\r\n this.opexTotal.value = null;\r\n this.capexTotal.value = null;\r\n }\r\n\r\n override initValues(unitOperation: any): void {\r\n super.initValues(unitOperation);\r\n this.volumetricFlowrate = new SimulationVariable(unitOperation.volumetricFlowrate, this.ownerCase, this);\r\n this.absoluteGhgEmissions = new SimulationVariable(unitOperation.absoluteGhgEmissions, this.ownerCase, this);\r\n this.price = new SimulationVariable(unitOperation.price, this.ownerCase, this);\r\n\r\n this.fluidAnalysisId = unitOperation.fluidAnalysisId || '';\r\n }\r\n\r\n override setSimulationVariableNames(): void {\r\n super.setSimulationVariableNames();\r\n this.volumetricFlowrate.setName('Volumetric Flowrate');\r\n this.absoluteGhgEmissions.setName('Absolute GHG Emissions');\r\n this.cogenElectricityGeneration.setName('Cogen Electricity Generation');\r\n this.price.setName('Product Price');\r\n }\r\n\r\n override setDefaultValues(): void {\r\n super.setDefaultValues();\r\n if (this.volumetricFlowrate.isUndefined()) {\r\n this.volumetricFlowrate.setDefaultValue(0.0);\r\n }\r\n if (this.absoluteGhgEmissions.isUndefined()) {\r\n this.absoluteGhgEmissions.setDefaultValue(0.0, unitConverter.units.Massflowrate.MMTPA);\r\n }\r\n if (this.price.isUndefined()) {\r\n this.price.setDefaultValue(50.0);\r\n }\r\n }\r\n\r\n override setQuantities() {\r\n super.setQuantities();\r\n this.volumetricFlowrate.setQuantity('Volumetricflowrate');\r\n this.absoluteGhgEmissions.setQuantity('Massflowrate');\r\n this.price.setQuantity('CurrencyPerVolume');\r\n }\r\n\r\n override convertToInternalUnit() {\r\n super.convertToInternalUnit();\r\n }\r\n\r\n getAlternativeGhgIntensity() {\r\n return new SimulationVariable(this.ghgIntensity, this.ownerCase, this);\r\n }\r\n\r\n getAvailableParameters() {\r\n return [\r\n this.volumetricFlowrate,\r\n this.ghgIntensity,\r\n this.price,\r\n this.opexVar,\r\n this.opexGasDiesel,\r\n this.opexPower,\r\n this.opexFixed,\r\n ];\r\n }\r\n\r\n override ignoreForMakeReady(simvar: SimulationVariable): boolean {\r\n return super.ignoreForMakeReady(simvar) || simvar === this.capacity || simvar === this.minimumFlow;\r\n }\r\n\r\n override dePersist(sup: any) {\r\n super.dePersist(sup);\r\n this.volumetricFlowrate = this.getSimulationVariableSafe(sup.volumetricFlowrate);\r\n this.absoluteGhgEmissions = this.getSimulationVariableSafe(sup.absoluteGhgEmissions);\r\n this.price = this.getSimulationVariableSafe(sup.price);\r\n\r\n this.setQuantities();\r\n this.setDefaultValues();\r\n }\r\n}\r\n","import { SimulationVariable } from '../simulation-variable';\r\nimport { BaseObject } from '../base-object';\r\nimport { Case } from '../case';\r\n\r\nexport enum RenewableTypes {\r\n WIND = 'Wind',\r\n SOLAR = 'Solar',\r\n OFFSET = 'Offset',\r\n}\r\n\r\nexport class SuncorRenewable extends BaseObject {\r\n category = 'suncorRenewable';\r\n ownerBaseObject: BaseObject;\r\n\r\n renewableType: RenewableTypes;\r\n capacity: SimulationVariable;\r\n capacityFactor: SimulationVariable;\r\n ghgCredit: SimulationVariable;\r\n opex: SimulationVariable;\r\n amortizedCapex: SimulationVariable;\r\n electricityPrice: SimulationVariable;\r\n\r\n constructor(renewable: any, ownerBaseObject: BaseObject, ownerCase: Case) {\r\n super(renewable.id, ownerCase);\r\n this.ownerBaseObject = ownerBaseObject;\r\n this.initValues(renewable);\r\n }\r\n\r\n initValues(renewable: any) {\r\n this.name = renewable.name || '';\r\n this.renewableType = renewable.renewableType || RenewableTypes.OFFSET;\r\n this.capacity = new SimulationVariable(renewable.capacity, this.ownerCase, this);\r\n this.capacityFactor = new SimulationVariable(renewable.capacityFactor, this.ownerCase, this);\r\n this.ghgCredit = new SimulationVariable(renewable.ghgCredit, this.ownerCase, this);\r\n this.opex = new SimulationVariable(renewable.opex, this.ownerCase, this);\r\n this.amortizedCapex = new SimulationVariable(renewable.amortizedCapex, this.ownerCase, this);\r\n this.electricityPrice = new SimulationVariable(renewable.electricityPrice, this.ownerCase, this);\r\n\r\n this.setQuantities();\r\n }\r\n\r\n setQuantities() {\r\n this.capacity.setQuantity('Power');\r\n this.capacityFactor.setQuantity('Percent');\r\n this.ghgCredit.setQuantity('MassPerEnergy');\r\n this.opex.setQuantity('CurrencyPerTime');\r\n this.amortizedCapex.setQuantity('CurrencyPerTime');\r\n this.electricityPrice.setQuantity('CurrencyPerElectricity');\r\n }\r\n\r\n override dePersist(renewable: any) {\r\n this.capacity = this.getSimulationVariableSafe(renewable.capacity);\r\n this.capacityFactor = this.getSimulationVariableSafe(renewable.capacityFactor);\r\n this.ghgCredit = this.getSimulationVariableSafe(renewable.ghgCredit);\r\n this.opex = this.getSimulationVariableSafe(renewable.opex);\r\n this.amortizedCapex = this.getSimulationVariableSafe(renewable.amortizedCapex);\r\n this.electricityPrice = this.getSimulationVariableSafe(renewable.electricityPrice);\r\n }\r\n\r\n public toJSON() {\r\n return {\r\n id: this.id,\r\n category: this.category,\r\n name: this.name,\r\n renewableType: this.renewableType,\r\n capacity: this.capacity.id,\r\n capacityFactor: this.capacityFactor.id,\r\n ghgCredit: this.ghgCredit.id,\r\n opex: this.opex.id,\r\n amortizedCapex: this.amortizedCapex.id,\r\n electricityPrice: this.electricityPrice.id,\r\n };\r\n }\r\n}\r\n","import { unitOperationsConfig } from '../../_config/unit-operations.config';\r\nimport { Case } from '../case';\r\nimport { SuncorUnitOperation } from './suncor-unit-operation';\r\nimport { SuncorRenewable } from './suncor-renewable';\r\nimport { BaseObject } from '../base-object';\r\nimport { SimulationVariable } from '../simulation-variable';\r\n\r\nexport class SuncorRenewableBlock extends SuncorUnitOperation {\r\n category = unitOperationsConfig.suncorRenewableBlock.key;\r\n\r\n renewablesList: SuncorRenewable[] = [];\r\n\r\n constructor(unitOperation: any, ownerCase: Case) {\r\n super(unitOperation, ownerCase);\r\n this.initValues(unitOperation);\r\n this.setSimulationVariableNames();\r\n }\r\n\r\n override initValues(unitOperation) {\r\n super.initValues(unitOperation);\r\n\r\n if (unitOperation.renewablesList instanceof Array) {\r\n for (const sr of unitOperation.renewablesList) {\r\n if (sr instanceof SuncorRenewable) {\r\n this.renewablesList.push(new SuncorRenewable(sr, this, this.ownerCase));\r\n }\r\n }\r\n }\r\n }\r\n\r\n override overwriteValues(another: BaseObject) {\r\n super.overwriteValues(another);\r\n const anotherSrb = another as SuncorRenewableBlock;\r\n\r\n const renewablesToRemove = [];\r\n for (const sr of this.renewablesList) {\r\n if (!anotherSrb.findRenewableById(sr.id)) {\r\n renewablesToRemove.push(sr);\r\n }\r\n }\r\n\r\n for (const renewableToRemove of renewablesToRemove) {\r\n const idx = this.renewablesList.findIndex(sr => sr.id === renewableToRemove.id);\r\n this.renewablesList.splice(idx, 1);\r\n this.ownerCase.removeFromPools(renewableToRemove);\r\n }\r\n\r\n // renewables to be added / overwritten\r\n for (const anotherSr of anotherSrb.renewablesList) {\r\n let sr = this.findRenewableById(anotherSr.id);\r\n\r\n if (sr) {\r\n sr.overwriteValues(anotherSr);\r\n } else {\r\n sr = new SuncorRenewable(anotherSr, this, this.ownerCase);\r\n this.renewablesList.push(sr);\r\n sr.addSimVarsToPool();\r\n }\r\n }\r\n }\r\n\r\n override ignoreForOverWrite(propertyName: string) {\r\n return super.ignoreForOverWrite(propertyName) || this[propertyName] === this.renewablesList;\r\n }\r\n\r\n findRenewableById(id): SuncorRenewable {\r\n return this.renewablesList.find(sr => sr.id === id);\r\n }\r\n\r\n override setSimulationVariableNames() {\r\n super.setSimulationVariableNames();\r\n }\r\n\r\n override convertToInternalUnit() {\r\n super.convertToInternalUnit();\r\n for (const sr of this.renewablesList) {\r\n sr.convertToInternalUnit();\r\n }\r\n }\r\n\r\n override getSimVars() {\r\n const simVars = super.getSimVars();\r\n for (const sr of this.renewablesList) {\r\n simVars.push.apply(sr.getSimVars(), this.renewablesList);\r\n }\r\n\r\n return simVars;\r\n }\r\n\r\n override setQuantities() {\r\n super.setQuantities();\r\n for (const sr of this.renewablesList) {\r\n sr.setQuantities();\r\n }\r\n }\r\n\r\n getAlternativeGhgIntensity() {\r\n return undefined;\r\n }\r\n\r\n override ignoreForMakeReady(simvar: SimulationVariable): boolean {\r\n return super.ignoreForMakeReady(simvar) || simvar === this.capacity || simvar === this.minimumFlow;\r\n }\r\n\r\n override dePersist(serializedUnit: any) {\r\n super.dePersist(serializedUnit);\r\n\r\n if (serializedUnit.renewablesList instanceof Array) {\r\n for (const sr of serializedUnit.renewablesList) {\r\n const newSr = new SuncorRenewable(sr, this, this.ownerCase);\r\n newSr.dePersist(sr);\r\n this.renewablesList.push(newSr);\r\n }\r\n }\r\n\r\n this.setQuantities();\r\n this.setDefaultValues();\r\n }\r\n}\r\n","export class DistributionRatioVariablePerCut {\r\n unitOperationId: string;\r\n lightEnds: number;\r\n lightNaphtha: number;\r\n heavyNaphtha: number;\r\n distillate: number;\r\n LGO: number;\r\n HGO: number;\r\n VGO: number;\r\n HVGO: number;\r\n resid: number;\r\n constructor(unitOperationId: string, obj: any) {\r\n this.unitOperationId = unitOperationId;\r\n this.lightEnds = obj.lightEnds;\r\n this.lightNaphtha = obj.lightNaphtha;\r\n this.heavyNaphtha = obj.heavyNaphtha;\r\n this.distillate = obj.distillate;\r\n this.LGO = obj.LGO;\r\n this.HGO = obj.HGO;\r\n this.VGO = obj.VGO;\r\n this.HVGO = obj.HVGO;\r\n this.resid = obj.resid;\r\n }\r\n\r\n initEmpty() {\r\n this.lightEnds = 0;\r\n this.lightNaphtha = 0;\r\n this.heavyNaphtha = 0;\r\n this.distillate = 0;\r\n this.LGO = 0;\r\n this.HGO = 0;\r\n this.VGO = 0;\r\n this.HVGO = 0;\r\n this.resid = 0;\r\n }\r\n}\r\n","import { SimulationVariable } from '../simulation-variable';\r\nimport { BaseObject } from '../base-object';\r\n\r\nexport class BoilingPointCut extends BaseObject {\r\n category = 'boilingPointCut';\r\n unitOperationId: string;\r\n values: SimulationVariable[] = [];\r\n ownerBaseObject: BaseObject;\r\n\r\n constructor(bpc, pc, ownerCase, owner) {\r\n super(bpc, ownerCase);\r\n this.ownerBaseObject = owner;\r\n this.unitOperationId = bpc.unitOperationId;\r\n const values = bpc.values || [];\r\n for (let idx = 0; idx < pc; idx++) {\r\n if (values[idx] instanceof SimulationVariable || typeof values[idx] === 'undefined') {\r\n this.values.push(new SimulationVariable(values[idx], this.ownerCase, this));\r\n }\r\n }\r\n if (values.length === 0) {\r\n this.addSimVarsToPool();\r\n }\r\n this.setQuantities();\r\n }\r\n\r\n initEmpty(length: number) {\r\n for (let i = 0; i < length; i++) {\r\n this.values.push(new SimulationVariable('', this.ownerCase, this));\r\n }\r\n this.addSimVarsToPool();\r\n this.setQuantities();\r\n }\r\n\r\n override overwriteValues(another: any) {\r\n super.overwriteValues(another);\r\n this.unitOperationId = another.unitOperationId;\r\n for (let i = 0; i < this.values.length; i++) {\r\n this.values[i].overwriteValues(another.values[i]);\r\n }\r\n }\r\n\r\n protected override ignoreForOverWrite(propertyName: string): boolean {\r\n return super.ignoreForOverWrite(propertyName) || this[propertyName] instanceof Array;\r\n }\r\n\r\n setQuantities() {\r\n for (const sv of this.values) {\r\n sv.setQuantity('Temperature');\r\n }\r\n }\r\n\r\n override convertToInternalUnit(): void {\r\n super.convertToInternalUnit();\r\n for (const simVar of this.values) {\r\n simVar.value = simVar.convertToInternalUnit();\r\n }\r\n }\r\n\r\n override addSimVarsToPool(): void {\r\n super.addSimVarsToPool();\r\n for (const sv of this.values) {\r\n this.ownerCase.addToPools(sv);\r\n }\r\n }\r\n\r\n override detectChanges(another) {\r\n let changes = super.detectChanges(another);\r\n for (let idx = 0; idx < another.values.length; idx++) {\r\n changes = changes || this.values[idx].detectValueChange(another.values[idx]);\r\n }\r\n return changes;\r\n }\r\n\r\n override dePersist(persistedObj: any) {\r\n for (let idx = 0; idx < persistedObj.values.length; idx++) {\r\n this.values.push(this.ownerCase.getSimulationVariable(persistedObj.values[idx]));\r\n }\r\n this.setSimulationVariablesOwner();\r\n }\r\n\r\n override setSimulationVariablesOwner(): void {\r\n for (const sv of this.values) {\r\n sv.setOwnerBaseObject(this);\r\n }\r\n }\r\n\r\n toJSON() {\r\n return {\r\n category: this.category,\r\n unitOperationId: this.unitOperationId,\r\n values: this.values.map(sv => sv.id),\r\n };\r\n }\r\n}\r\n","import { SimulationVariable } from '../simulation-variable';\r\nimport { Case } from '../case';\r\nimport { DistributionRatioVariablePerCut } from './distribution-ratio-variable-per-cut';\r\nimport { ConstrainableObject } from '../_interfaces/constrainable-object';\r\nimport { UnitOperationConstraints } from './unit-operation-constraints';\r\nimport { BoilingPointCut } from './boiling-point-cut';\r\nimport { KpiProvider } from '../_case-study/kpi-provider';\r\nimport { GasContributorUnitOperation } from './gas-contributor-unit-operation';\r\nimport { MultiPeriodParameterProvider } from '../_multi-period/multi-period-parameter-provider';\r\nimport { SimulationVariableName } from '../../_config/simulation-variable-name.enum';\r\nimport { ParameterProvider } from '../_case-study/parameter-provider';\r\nimport { unitOperationsConfig } from '../../_config/unit-operations.config';\r\n\r\ndeclare let unitConverter: any;\r\n\r\nexport class DRU\r\n extends GasContributorUnitOperation\r\n implements ConstrainableObject, MultiPeriodParameterProvider, KpiProvider, ParameterProvider\r\n{\r\n category = unitOperationsConfig.dru.key;\r\n distributionRatioVariables: Array<DistributionRatioVariablePerCut> = [];\r\n boilingPointCuts: Array<BoilingPointCut> = [];\r\n absoluteGhgEmissions: SimulationVariable;\r\n solveOption: string;\r\n yieldBasis: string;\r\n percentCuts = [0, 0.25, 0.5, 0.75, 1];\r\n constraints: UnitOperationConstraints;\r\n\r\n constructor(unitOperation: any, ownerCase: Case) {\r\n super(unitOperation, ownerCase);\r\n this.initValues(unitOperation);\r\n this.setSimulationVariableNames();\r\n }\r\n\r\n getAvailableKpis(): SimulationVariable[] {\r\n if (this.ownerCase.multiPeriodEnabled) {\r\n return [this.ghgEmissions, this.ghgIntensity, this.opexTotal, this.capexTotal];\r\n }\r\n return [\r\n this.ghgEmissions,\r\n this.ghgIntensity,\r\n this.steamMake600,\r\n this.steamUse600,\r\n this.steamUse900,\r\n this.steamMake900,\r\n this.steamMake150,\r\n this.steamUse150,\r\n this.steamMake50,\r\n this.steamUse50,\r\n this.opexTotal,\r\n this.capexTotal,\r\n this.fuelGasHeatingValue,\r\n this.fuelGasEmissionFactor,\r\n this.energyFlow,\r\n this.flowrate,\r\n ];\r\n }\r\n\r\n getAvailableParametricStudyParameters(): SimulationVariable[] {\r\n return [this.opexVar, this.opexGasDiesel, this.opexPower, this.opexFixed, this.capexAmortized];\r\n }\r\n\r\n getAvailableParameters() {\r\n return undefined;\r\n }\r\n\r\n getAlternativeGhgIntensity(): SimulationVariable {\r\n return undefined;\r\n }\r\n\r\n override initValues(unitOperation: any): void {\r\n super.initValues(unitOperation);\r\n this.absoluteGhgEmissions = new SimulationVariable(unitOperation.absoluteGhgEmissions, this.ownerCase, this);\r\n if (unitOperation.distributionRatioVariables instanceof Array) {\r\n for (let i = 0; i < unitOperation.distributionRatioVariables.length; i++) {\r\n const dv = unitOperation.distributionRatioVariables[i];\r\n this.distributionRatioVariables.push(new DistributionRatioVariablePerCut(dv.unitOperationId, dv));\r\n const bp = unitOperation.boilingPointCuts ? unitOperation.boilingPointCuts[i] : [];\r\n const bpc = new BoilingPointCut(bp, this.percentCuts.length, this.ownerCase, this);\r\n bpc.unitOperationId = dv.unitOperationId;\r\n this.boilingPointCuts.push(bpc);\r\n }\r\n }\r\n this.solveOption = typeof unitOperation.solveOption === 'undefined' ? 'Component split' : unitOperation.solveOption;\r\n\r\n this.yieldBasis = typeof unitOperation.yieldBasis === 'undefined' ? 'Weight basis' : unitOperation.yieldBasis;\r\n this.initConstraints();\r\n this.setQuantities();\r\n }\r\n\r\n initConstraints() {\r\n this.constraints = new UnitOperationConstraints();\r\n this.constraints.addConstraint('capacity', this.capacity);\r\n this.constraints.addConstraint('minimumFlow', this.minimumFlow);\r\n }\r\n\r\n override setDefaultValues(): void {\r\n super.setDefaultValues();\r\n if (this.absoluteGhgEmissions.isUndefined()) {\r\n this.absoluteGhgEmissions.setDefaultValue(0.0);\r\n }\r\n if (this.energyFlow.isUndefined()) {\r\n this.energyFlow.setDefaultValue(0.0, unitConverter.units.Energyrate.GJ_H);\r\n }\r\n }\r\n\r\n override setSimulationVariableNames() {\r\n super.setSimulationVariableNames();\r\n this.steamMake900.setName('#900 Steam Make');\r\n this.steamUse900.setName('#900 Steam Use');\r\n this.steamMake600.setName('#600 Steam Make');\r\n this.steamUse600.setName('#600 Steam Use');\r\n this.steamMake150.setName('#150 Steam Make');\r\n this.steamUse150.setName('#150 Steam Use');\r\n this.steamMake50.setName('#50 Steam Make');\r\n this.steamUse50.setName('#50 Steam Use');\r\n this.opexTotal.setName('Total OPEX');\r\n this.capexTotal.setName('Total CAPEX');\r\n this.capacity.setName(SimulationVariableName.CAPACITY);\r\n this.fuelGasHeatingValue.setName(SimulationVariableName.FUEL_GAS_HEATING_VALUE);\r\n this.fuelGasEmissionFactor.setName(SimulationVariableName.FUEL_GAS_EMISSION_FACTOR);\r\n this.energyFlow.setName(SimulationVariableName.ENERGY_FLOW);\r\n this.flowrate.setName(SimulationVariableName.FUEL_GAS_FLOWRATE);\r\n }\r\n\r\n override addSimVarsToPool(): void {\r\n super.addSimVarsToPool();\r\n for (let idx = 0; idx < this.boilingPointCuts.length; idx++) {\r\n this.boilingPointCuts[idx].addSimVarsToPool();\r\n }\r\n }\r\n\r\n override setQuantities() {\r\n super.setQuantities();\r\n this.absoluteGhgEmissions.setQuantity('Massflowrate');\r\n for (const sv of this.boilingPointCuts) {\r\n sv.setQuantities();\r\n }\r\n }\r\n\r\n addDistributionVariable(unitOperationId: string) {\r\n const dv = new DistributionRatioVariablePerCut(unitOperationId, {});\r\n dv.initEmpty();\r\n const bpc = new BoilingPointCut('', this.percentCuts.length, this.ownerCase, this);\r\n bpc.unitOperationId = unitOperationId;\r\n this.boilingPointCuts.push(bpc);\r\n this.distributionRatioVariables.push(dv);\r\n if (this.distributionRatioVariables.length === 1) {\r\n this.distributionRatioVariables[0].lightEnds = 1;\r\n this.distributionRatioVariables[0].lightNaphtha = 1;\r\n this.distributionRatioVariables[0].heavyNaphtha = 1;\r\n this.distributionRatioVariables[0].distillate = 1;\r\n this.distributionRatioVariables[0].LGO = 1;\r\n this.distributionRatioVariables[0].HGO = 1;\r\n this.distributionRatioVariables[0].VGO = 1;\r\n this.distributionRatioVariables[0].HVGO = 1;\r\n this.distributionRatioVariables[0].resid = 1;\r\n }\r\n }\r\n\r\n emptyDistributionValues() {\r\n for (const dv of this.distributionRatioVariables) {\r\n dv.lightEnds = null;\r\n dv.lightNaphtha = null;\r\n dv.heavyNaphtha = null;\r\n dv.distillate = null;\r\n dv.LGO = null;\r\n dv.HGO = null;\r\n dv.VGO = null;\r\n dv.HVGO = null;\r\n dv.resid = null;\r\n }\r\n }\r\n\r\n findDistributionRatioVariable(unitOperationId: string) {\r\n return this.distributionRatioVariables.find(drv => {\r\n return drv.unitOperationId === unitOperationId;\r\n });\r\n }\r\n\r\n removeDistributionRatioVariable(unitOperationId: string) {\r\n const index = this.distributionRatioVariables.indexOf(this.findDistributionRatioVariable(unitOperationId));\r\n if (index >= 0) {\r\n this.distributionRatioVariables.splice(index, 1);\r\n this.boilingPointCuts.splice(index, 1);\r\n }\r\n if (this.distributionRatioVariables.length === 1) {\r\n this.distributionRatioVariables[0].lightEnds = 1;\r\n this.distributionRatioVariables[0].lightNaphtha = 1;\r\n this.distributionRatioVariables[0].heavyNaphtha = 1;\r\n this.distributionRatioVariables[0].distillate = 1;\r\n this.distributionRatioVariables[0].LGO = 1;\r\n this.distributionRatioVariables[0].HGO = 1;\r\n this.distributionRatioVariables[0].VGO = 1;\r\n this.distributionRatioVariables[0].HVGO = 1;\r\n this.distributionRatioVariables[0].resid = 1;\r\n }\r\n this.calculateDistributionVariables();\r\n }\r\n\r\n calculateDistributionVariables() {\r\n const components = [\r\n 'lightEnds',\r\n 'lightNaphtha',\r\n 'heavyNaphtha',\r\n 'distillate',\r\n 'LGO',\r\n 'HGO',\r\n 'VGO',\r\n 'HVGO',\r\n 'resid',\r\n ];\r\n for (let j = 0; j < components.length; j++) {\r\n const component = components[j];\r\n const sum = this.distributionRatioVariables.reduce((prev, curr) => Number(prev) + Number(curr[component]), 0);\r\n for (let i = 0; i < this.distributionRatioVariables.length; i++) {\r\n if (sum !== 1) {\r\n this.distributionRatioVariables[i][component] /= sum;\r\n }\r\n if (sum === 0) {\r\n this.distributionRatioVariables[i][component] = 1 / this.distributionRatioVariables.length;\r\n }\r\n }\r\n }\r\n }\r\n\r\n override overwriteValues(another: any) {\r\n const s = another as DRU;\r\n super.overwriteValues(another);\r\n this.name = another.name;\r\n for (let i = 0; i < s.distributionRatioVariables.length; i++) {\r\n this.distributionRatioVariables[i].lightEnds = s.distributionRatioVariables[i].lightEnds;\r\n this.distributionRatioVariables[i].lightNaphtha = s.distributionRatioVariables[i].lightNaphtha;\r\n this.distributionRatioVariables[i].heavyNaphtha = s.distributionRatioVariables[i].heavyNaphtha;\r\n this.distributionRatioVariables[i].distillate = s.distributionRatioVariables[i].distillate;\r\n this.distributionRatioVariables[i].LGO = s.distributionRatioVariables[i].LGO;\r\n this.distributionRatioVariables[i].HGO = s.distributionRatioVariables[i].HGO;\r\n this.distributionRatioVariables[i].VGO = s.distributionRatioVariables[i].VGO;\r\n this.distributionRatioVariables[i].HVGO = s.distributionRatioVariables[i].HVGO;\r\n this.distributionRatioVariables[i].resid = s.distributionRatioVariables[i].resid;\r\n this.boilingPointCuts[i].overwriteValues(another.boilingPointCuts[i]);\r\n }\r\n }\r\n\r\n protected override ignoreForOverWrite(propertyName: string): boolean {\r\n return super.ignoreForOverWrite(propertyName) || this[propertyName] instanceof Array;\r\n }\r\n\r\n findDistributionRatioVariableName(i: number) {\r\n const dv = this.distributionRatioVariables[i];\r\n\r\n if (dv) {\r\n const uo = this.ownerCase.getUnitOperation(dv.unitOperationId);\r\n return uo ? uo.name : null;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n override dePersist(serializedUnitOperation: any) {\r\n super.dePersist(serializedUnitOperation);\r\n this.absoluteGhgEmissions = this.getSimulationVariableSafe(serializedUnitOperation.absoluteGhgEmissions);\r\n if (serializedUnitOperation.boilingPointCuts) {\r\n for (let idx = 0; idx < this.boilingPointCuts.length; idx++) {\r\n this.boilingPointCuts[idx].dePersist(serializedUnitOperation.boilingPointCuts[idx]);\r\n }\r\n }\r\n this.setQuantities();\r\n this.setDefaultValues();\r\n this.initConstraints();\r\n }\r\n\r\n override detectChanges(another: any): boolean {\r\n let changes = super.detectChanges(another);\r\n for (let idx = 0; idx < another.boilingPointCuts.length; idx++) {\r\n changes = changes || this.boilingPointCuts[idx].detectChanges(another.boilingPointCuts[idx]);\r\n }\r\n return changes;\r\n }\r\n\r\n override convertToInternalUnit(): void {\r\n super.convertToInternalUnit();\r\n for (let idx = 0; idx < this.boilingPointCuts.length; idx++) {\r\n this.boilingPointCuts[idx].convertToInternalUnit();\r\n }\r\n }\r\n\r\n constraintViolated() {\r\n const inletStream = this.ownerCase.filterSuncorMaterialStreams(s => {\r\n return s.outletUnitOperationId === this.id;\r\n })[0];\r\n\r\n return inletStream && this.constraints.constraintValueViolated('capacity', inletStream.volumetricFlowrate.value);\r\n }\r\n\r\n constraintValueDefined() {\r\n return this.constraints.anyConstraintValueDefined();\r\n }\r\n\r\n clearComponent(component: string) {\r\n for (let i = 0; i < this.distributionRatioVariables.length; i++) {\r\n this.distributionRatioVariables[i][component] = null;\r\n }\r\n }\r\n\r\n getAvailableMultiPeriodParameters(): SimulationVariable[] {\r\n return [this.capacity];\r\n }\r\n}\r\n","import { SimulationVariable } from '../simulation-variable';\r\nimport { Case } from '../case';\r\nimport { DistributionRatioVariablePerCut } from './distribution-ratio-variable-per-cut';\r\nimport { UnitOperationConstraints } from './unit-operation-constraints';\r\nimport { ConstrainableObject } from '../_interfaces/constrainable-object';\r\nimport { BoilingPointCut } from './boiling-point-cut';\r\nimport { KpiProvider } from '../_case-study/kpi-provider';\r\nimport { GasContributorUnitOperation } from './gas-contributor-unit-operation';\r\nimport { SimulationVariableName } from '../../_config/simulation-variable-name.enum';\r\nimport { MultiPeriodParameterProvider } from '../_multi-period/multi-period-parameter-provider';\r\nimport { ParameterProvider } from '../_case-study/parameter-provider';\r\nimport { unitOperationsConfig } from '../../_config/unit-operations.config';\r\n\r\ndeclare let unitConverter: any;\r\n\r\nexport class VAC\r\n extends GasContributorUnitOperation\r\n implements ConstrainableObject, MultiPeriodParameterProvider, KpiProvider, ParameterProvider\r\n{\r\n category = unitOperationsConfig.vac.key;\r\n distributionRatioVariables: Array<DistributionRatioVariablePerCut> = [];\r\n boilingPointCuts: Array<BoilingPointCut> = [];\r\n absoluteGhgEmissions: SimulationVariable;\r\n solveOption: string;\r\n yieldBasis: string;\r\n percentCuts = [0, 0.25, 0.5, 0.75, 1];\r\n h2sProductionRate: SimulationVariable;\r\n h2sProduction: SimulationVariable;\r\n constraints: UnitOperationConstraints;\r\n\r\n constructor(unitOperation: any, ownerCase: Case) {\r\n super(unitOperation, ownerCase);\r\n this.initValues(unitOperation);\r\n this.setSimulationVariableNames();\r\n }\r\n\r\n getAvailableKpis(): SimulationVariable[] {\r\n if (this.ownerCase.multiPeriodEnabled) {\r\n return [\r\n this.ghgEmissions,\r\n this.ghgIntensity,\r\n this.h2sProductionRate,\r\n this.h2sProduction,\r\n this.opexTotal,\r\n this.capexTotal,\r\n ];\r\n }\r\n return [\r\n this.ghgEmissions,\r\n this.ghgIntensity,\r\n this.steamMake600,\r\n this.steamUse600,\r\n this.steamUse900,\r\n this.steamMake900,\r\n this.steamMake150,\r\n this.steamUse150,\r\n this.steamMake50,\r\n this.steamUse50,\r\n this.h2sProductionRate,\r\n this.h2sProduction,\r\n this.opexTotal,\r\n this.capexTotal,\r\n this.fuelGasHeatingValue,\r\n this.fuelGasEmissionFactor,\r\n this.energyFlow,\r\n this.flowrate,\r\n ];\r\n }\r\n\r\n getAvailableParametricStudyParameters(): SimulationVariable[] {\r\n return [\r\n this.h2sProductionRate,\r\n this.opexVar,\r\n this.opexGasDiesel,\r\n this.opexPower,\r\n this.opexFixed,\r\n this.capexAmortized,\r\n ];\r\n }\r\n\r\n getAvailableParameters() {\r\n return undefined;\r\n }\r\n\r\n override initValues(unitOperation: any): void {\r\n super.initValues(unitOperation);\r\n this.absoluteGhgEmissions = new SimulationVariable(unitOperation.absoluteGhgEmissions, this.ownerCase, this);\r\n this.h2sProductionRate = new SimulationVariable(unitOperation.h2sProductionRate || {}, this.ownerCase, this);\r\n this.h2sProduction = new SimulationVariable(unitOperation.h2sProduction || {}, this.ownerCase, this);\r\n if (unitOperation.distributionRatioVariables instanceof Array) {\r\n for (let i = 0; i < unitOperation.distributionRatioVariables.length; i++) {\r\n const dv = unitOperation.distributionRatioVariables[i];\r\n this.distributionRatioVariables.push(new DistributionRatioVariablePerCut(dv.unitOperationId, dv));\r\n const bp = unitOperation.boilingPointCuts ? unitOperation.boilingPointCuts[i] : [];\r\n const bpc = new BoilingPointCut(bp, this.percentCuts.length, this.ownerCase, this);\r\n bpc.unitOperationId = dv.unitOperationId;\r\n this.boilingPointCuts.push(bpc);\r\n }\r\n }\r\n this.solveOption = typeof unitOperation.solveOption === 'undefined' ? 'Component split' : unitOperation.solveOption;\r\n\r\n this.yieldBasis = typeof unitOperation.yieldBasis === 'undefined' ? 'Weight basis' : unitOperation.yieldBasis;\r\n this.initConstraints();\r\n this.setQuantities();\r\n }\r\n\r\n initConstraints() {\r\n this.constraints = new UnitOperationConstraints();\r\n this.constraints.addConstraint('capacity', this.capacity);\r\n this.constraints.addConstraint('minimumFlow', this.minimumFlow);\r\n }\r\n\r\n getAlternativeGhgIntensity(): SimulationVariable {\r\n return undefined;\r\n }\r\n\r\n addDistributionVariable(unitOperationId: string) {\r\n const dv = new DistributionRatioVariablePerCut(unitOperationId, {});\r\n dv.initEmpty();\r\n const bpc = new BoilingPointCut('', this.percentCuts.length, this.ownerCase, this);\r\n bpc.unitOperationId = unitOperationId;\r\n this.boilingPointCuts.push(bpc);\r\n this.distributionRatioVariables.push(dv);\r\n if (this.distributionRatioVariables.length === 1) {\r\n this.distributionRatioVariables[0].lightEnds = 1;\r\n this.distributionRatioVariables[0].lightNaphtha = 1;\r\n this.distributionRatioVariables[0].heavyNaphtha = 1;\r\n this.distributionRatioVariables[0].distillate = 1;\r\n this.distributionRatioVariables[0].LGO = 1;\r\n this.distributionRatioVariables[0].HGO = 1;\r\n this.distributionRatioVariables[0].VGO = 1;\r\n this.distributionRatioVariables[0].HVGO = 1;\r\n this.distributionRatioVariables[0].resid = 1;\r\n }\r\n }\r\n\r\n constraintViolated() {\r\n const inletStream = this.ownerCase.filterSuncorMaterialStreams(s => {\r\n return s.outletUnitOperationId === this.id;\r\n })[0];\r\n\r\n return inletStream && this.constraints.constraintValueViolated('capacity', inletStream.volumetricFlowrate.value);\r\n }\r\n\r\n constraintValueDefined() {\r\n return this.constraints.anyConstraintValueDefined();\r\n }\r\n\r\n override setDefaultValues(): void {\r\n super.setDefaultValues();\r\n if (this.absoluteGhgEmissions.isUndefined()) {\r\n this.absoluteGhgEmissions.setDefaultValue(0.0);\r\n }\r\n if (this.energyFlow.isUndefined()) {\r\n this.energyFlow.setDefaultValue(0.0, unitConverter.units.Energyrate.GJ_H);\r\n }\r\n }\r\n\r\n override setSimulationVariableNames() {\r\n super.setSimulationVariableNames();\r\n this.steamMake900.setName('#900 Steam Make');\r\n this.steamUse900.setName('#900 Steam Use');\r\n this.steamMake600.setName('#600 Steam Make');\r\n this.steamUse600.setName('#600 Steam Use');\r\n this.steamMake150.setName('#150 Steam Make');\r\n this.steamUse150.setName('#150 Steam Use');\r\n this.steamMake50.setName('#50 Steam Make');\r\n this.steamUse50.setName('#50 Steam Use');\r\n this.h2sProductionRate.setName('H2S Production Rate');\r\n this.h2sProduction.setName('H2S Production');\r\n this.opexTotal.setName('Total OPEX');\r\n this.capexTotal.setName('Total CAPEX');\r\n this.capacity.setName(SimulationVariableName.CAPACITY);\r\n this.fuelGasHeatingValue.setName(SimulationVariableName.FUEL_GAS_HEATING_VALUE);\r\n this.fuelGasEmissionFactor.setName(SimulationVariableName.FUEL_GAS_EMISSION_FACTOR);\r\n this.energyFlow.setName(SimulationVariableName.ENERGY_FLOW);\r\n this.flowrate.setName(SimulationVariableName.FUEL_GAS_FLOWRATE);\r\n }\r\n\r\n override setQuantities() {\r\n super.setQuantities();\r\n this.absoluteGhgEmissions.setQuantity('Massflowrate');\r\n this.h2sProduction.setQuantity('Moleflowrate');\r\n this.h2sProductionRate.setQuantity('GasStdVolumePerVolume');\r\n for (const sv of this.boilingPointCuts) {\r\n sv.setQuantities();\r\n }\r\n }\r\n\r\n override dePersist(serializedUnitOperation: any) {\r\n super.dePersist(serializedUnitOperation);\r\n this.absoluteGhgEmissions = this.getSimulationVariableSafe(serializedUnitOperation.absoluteGhgEmissions);\r\n this.h2sProduction = this.getSimulationVariableSafe(serializedUnitOperation.h2sProduction);\r\n this.h2sProductionRate = this.getSimulationVariableSafe(serializedUnitOperation.h2sProductionRate);\r\n if (serializedUnitOperation.boilingPointCuts) {\r\n for (let idx = 0; idx < this.boilingPointCuts.length; idx++) {\r\n this.boilingPointCuts[idx].dePersist(serializedUnitOperation.boilingPointCuts[idx]);\r\n }\r\n }\r\n this.setQuantities();\r\n this.setDefaultValues();\r\n this.initConstraints();\r\n }\r\n\r\n calculateDistributionVariables() {\r\n const components = [\r\n 'lightEnds',\r\n 'lightNaphtha',\r\n 'heavyNaphtha',\r\n 'distillate',\r\n 'LGO',\r\n 'HGO',\r\n 'VGO',\r\n 'HVGO',\r\n 'resid',\r\n ];\r\n for (let j = 0; j < components.length; j++) {\r\n const component = components[j];\r\n const sum = this.distributionRatioVariables.reduce((prev, curr) => Number(prev) + Number(curr[component]), 0);\r\n for (let i = 0; i < this.distributionRatioVariables.length; i++) {\r\n if (sum !== 1) {\r\n this.distributionRatioVariables[i][component] /= sum;\r\n }\r\n if (sum === 0) {\r\n this.distributionRatioVariables[i][component] = 1 / this.distributionRatioVariables.length;\r\n }\r\n }\r\n }\r\n }\r\n\r\n emptyDistributionValues() {\r\n for (const dv of this.distributionRatioVariables) {\r\n dv.lightEnds = null;\r\n dv.lightNaphtha = null;\r\n dv.heavyNaphtha = null;\r\n dv.distillate = null;\r\n dv.LGO = null;\r\n dv.HGO = null;\r\n dv.VGO = null;\r\n dv.HVGO = null;\r\n dv.resid = null;\r\n }\r\n }\r\n\r\n findDistributionRatioVariable(unitOperationId: string) {\r\n return this.distributionRatioVariables.find(drv => {\r\n return drv.unitOperationId === unitOperationId;\r\n });\r\n }\r\n\r\n removeDistributionRatioVariable(unitOperationId: string) {\r\n const index = this.distributionRatioVariables.indexOf(this.findDistributionRatioVariable(unitOperationId));\r\n if (index >= 0) {\r\n this.boilingPointCuts.splice(index, 1);\r\n this.distributionRatioVariables.splice(index, 1);\r\n }\r\n if (this.distributionRatioVariables.length === 1) {\r\n this.distributionRatioVariables[0].lightEnds = 1;\r\n this.distributionRatioVariables[0].lightNaphtha = 1;\r\n this.distributionRatioVariables[0].heavyNaphtha = 1;\r\n this.distributionRatioVariables[0].distillate = 1;\r\n this.distributionRatioVariables[0].LGO = 1;\r\n this.distributionRatioVariables[0].HGO = 1;\r\n this.distributionRatioVariables[0].VGO = 1;\r\n this.distributionRatioVariables[0].HVGO = 1;\r\n this.distributionRatioVariables[0].resid = 1;\r\n }\r\n this.calculateDistributionVariables();\r\n }\r\n\r\n override overwriteValues(another: any) {\r\n super.overwriteValues(another);\r\n const s = another as VAC;\r\n this.name = another.name;\r\n for (let i = 0; i < s.distributionRatioVariables.length; i++) {\r\n this.distributionRatioVariables[i].lightEnds = s.distributionRatioVariables[i].lightEnds;\r\n this.distributionRatioVariables[i].lightNaphtha = s.distributionRatioVariables[i].lightNaphtha;\r\n this.distributionRatioVariables[i].heavyNaphtha = s.distributionRatioVariables[i].heavyNaphtha;\r\n this.distributionRatioVariables[i].distillate = s.distributionRatioVariables[i].distillate;\r\n this.distributionRatioVariables[i].LGO = s.distributionRatioVariables[i].LGO;\r\n this.distributionRatioVariables[i].HGO = s.distributionRatioVariables[i].HGO;\r\n this.distributionRatioVariables[i].VGO = s.distributionRatioVariables[i].VGO;\r\n this.distributionRatioVariables[i].HVGO = s.distributionRatioVariables[i].HVGO;\r\n this.distributionRatioVariables[i].resid = s.distributionRatioVariables[i].resid;\r\n this.boilingPointCuts[i].overwriteValues(another.boilingPointCuts[i]);\r\n }\r\n }\r\n\r\n protected override ignoreForOverWrite(propertyName: string): boolean {\r\n return super.ignoreForOverWrite(propertyName) || this[propertyName] instanceof Array;\r\n }\r\n\r\n override detectChanges(another: any): boolean {\r\n let changes = super.detectChanges(another);\r\n for (let idx = 0; idx < another.boilingPointCuts.length; idx++) {\r\n changes = changes || this.boilingPointCuts[idx].detectChanges(another.boilingPointCuts[idx]);\r\n }\r\n return changes;\r\n }\r\n\r\n override convertToInternalUnit(): void {\r\n super.convertToInternalUnit();\r\n for (let idx = 0; idx < this.boilingPointCuts.length; idx++) {\r\n this.boilingPointCuts[idx].convertToInternalUnit();\r\n }\r\n }\r\n\r\n override addSimVarsToPool(): void {\r\n super.addSimVarsToPool();\r\n for (let idx = 0; idx < this.boilingPointCuts.length; idx++) {\r\n this.boilingPointCuts[idx].addSimVarsToPool();\r\n }\r\n }\r\n\r\n findDistributionRatioVariableName(i: number) {\r\n const dv = this.distributionRatioVariables[i];\r\n\r\n if (dv) {\r\n const uo = this.ownerCase.getUnitOperation(dv.unitOperationId);\r\n return uo ? uo.name : null;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n clearComponent(component: string) {\r\n for (let i = 0; i < this.distributionRatioVariables.length; i++) {\r\n this.distributionRatioVariables[i][component] = null;\r\n }\r\n }\r\n\r\n getAvailableMultiPeriodParameters(): SimulationVariable[] {\r\n return [this.capacity];\r\n }\r\n}\r\n","import { UnitOperation } from '../unit-operation';\r\nimport { Case } from '../case';\r\nimport { SimulationVariable } from '../simulation-variable';\r\n\r\nexport class UpgraderInlet extends UnitOperation {\r\n category = 'upgrader-inlet';\r\n\r\n constructor(unitOperation: any, ownerCase: Case) {\r\n super(unitOperation, ownerCase);\r\n this.initValues(unitOperation);\r\n this.setSimulationVariableNames();\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n override initValues(unitOperation: any) {}\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n override dePersist(serializedUnitOperation: any) {}\r\n\r\n override setSimulationVariableNames() {}\r\n\r\n getAlternativeGhgIntensity(): SimulationVariable {\r\n return undefined;\r\n }\r\n\r\n override setQuantities() {}\r\n\r\n override clearResults() {}\r\n\r\n override setDefaultValues() {}\r\n}\r\n","import { SimulationVariable } from '../simulation-variable';\r\nimport { Case } from '../case';\r\nimport { BaseObject } from '../base-object';\r\nimport { UnitOperationConstraints } from './unit-operation-constraints';\r\nimport { ConstrainableObject } from '../_interfaces/constrainable-object';\r\nimport { DistributionRatioVariable } from './distribution-ratio-variable';\r\nimport { RangeDistributionRatioVariable } from './range-distribution-ratio-variable';\r\nimport { Quantity } from '../../_config/quantity.enum';\r\nimport { SimulationVariableName } from '../../_config/simulation-variable-name.enum';\r\nimport { KpiProvider } from '../_case-study/kpi-provider';\r\nimport { GasContributorUnitOperation } from './gas-contributor-unit-operation';\r\nimport { MultiPeriodParameterProvider } from '../_multi-period/multi-period-parameter-provider';\r\nimport { ParameterProvider } from '../_case-study/parameter-provider';\r\nimport { BitumenModelTypes } from '../../_config/unit-operations/bitumen-conversion-enums';\r\n\r\ndeclare let unitConverter: any;\r\n\r\nexport class Hydrotreater\r\n extends GasContributorUnitOperation\r\n implements ConstrainableObject, MultiPeriodParameterProvider, KpiProvider, ParameterProvider\r\n{\r\n category = 'hydrotreater';\r\n\r\n separateLightEndsProduct: boolean;\r\n totalYield: SimulationVariable;\r\n powerUseRate: SimulationVariable;\r\n naturalGasUseRate: SimulationVariable;\r\n hydrogenUseRate: SimulationVariable;\r\n fluidAnalysisId: string;\r\n\r\n powerEmissionFactor: SimulationVariable;\r\n powerPrice: SimulationVariable;\r\n hydrogenEmissionFactor: SimulationVariable;\r\n hydrogenPrice: SimulationVariable;\r\n naturalGasEmissionFactor: SimulationVariable;\r\n maximumSulfurContent: SimulationVariable;\r\n maximumNitrogen: SimulationVariable;\r\n naturalGasPrice: SimulationVariable;\r\n hydrogenUse: SimulationVariable;\r\n modelType: BitumenModelTypes;\r\n constraints: UnitOperationConstraints;\r\n butaneRecovery: SimulationVariable;\r\n distributionRatioVariables: Array<RangeDistributionRatioVariable> = [];\r\n hydrogenUseRateVariables: Array<DistributionRatioVariable> = [];\r\n blendRecipeOption: string;\r\n feedSlateDisabled: boolean;\r\n h2sProductionRate: SimulationVariable;\r\n h2sProduction: SimulationVariable;\r\n\r\n // values for constraint results\r\n totalInletVolume: SimulationVariable;\r\n totalInletSulfur: SimulationVariable;\r\n totalInletNitrogen: SimulationVariable;\r\n\r\n constraintOption: string;\r\n constructor(unitOperation: any, ownerCase: Case) {\r\n super(unitOperation, ownerCase);\r\n this.initValues(unitOperation);\r\n this.setSimulationVariableNames();\r\n }\r\n\r\n getAvailableKpis(): SimulationVariable[] {\r\n if (this.ownerCase.multiPeriodEnabled) {\r\n return [\r\n this.ghgEmissions,\r\n this.ghgIntensity,\r\n this.totalYield,\r\n this.opexTotal,\r\n this.capexTotal,\r\n this.hydrogenUseRate,\r\n this.h2sProductionRate,\r\n this.h2sProduction,\r\n this.powerUseRate,\r\n this.naturalGasUseRate,\r\n ];\r\n }\r\n return [\r\n this.ghgEmissions,\r\n this.ghgIntensity,\r\n this.totalYield,\r\n this.opexTotal,\r\n this.capexTotal,\r\n this.hydrogenUseRate,\r\n this.h2sProductionRate,\r\n this.h2sProduction,\r\n this.powerUseRate,\r\n this.naturalGasUseRate,\r\n this.steamMake600,\r\n this.steamUse600,\r\n this.steamUse900,\r\n this.steamMake900,\r\n this.steamMake150,\r\n this.steamUse150,\r\n this.steamMake50,\r\n this.steamUse50,\r\n this.fuelGasHeatingValue,\r\n this.fuelGasEmissionFactor,\r\n this.energyFlow,\r\n this.flowrate,\r\n ];\r\n }\r\n\r\n getAvailableParametricStudyParameters(): SimulationVariable[] {\r\n return [\r\n this.totalYield,\r\n this.opexVar,\r\n this.opexFixed,\r\n this.capexAmortized,\r\n this.h2sProductionRate,\r\n this.powerUseRate,\r\n this.naturalGasUseRate,\r\n ];\r\n }\r\n\r\n override clearResults() {\r\n super.clearResults();\r\n this.hydrogenUse.value = null;\r\n this.h2sProduction.value = null;\r\n }\r\n\r\n protected override ignoreForOverWrite(propertyName: string): boolean {\r\n return super.ignoreForOverWrite(propertyName) || propertyName === 'totalInletSulfur';\r\n }\r\n\r\n override initValues(unitOperation: any): void {\r\n super.initValues(unitOperation);\r\n this.totalYield = new SimulationVariable(unitOperation.totalYield, this.ownerCase, this);\r\n this.powerUseRate = new SimulationVariable(unitOperation.powerUseRate, this.ownerCase, this);\r\n this.naturalGasUseRate = new SimulationVariable(unitOperation.naturalGasUseRate, this.ownerCase, this);\r\n this.fluidAnalysisId = unitOperation.fluidAnalysisId || '';\r\n this.powerEmissionFactor = new SimulationVariable(unitOperation.powerEmissionFactor || {}, this.ownerCase, this);\r\n this.powerPrice = new SimulationVariable(unitOperation.powerPrice || {}, this.ownerCase, this);\r\n this.hydrogenEmissionFactor = new SimulationVariable(\r\n unitOperation.hydrogenEmissionFactor || {},\r\n this.ownerCase,\r\n this\r\n );\r\n this.hydrogenPrice = new SimulationVariable(unitOperation.hydrogenPrice || {}, this.ownerCase, this);\r\n this.naturalGasEmissionFactor = new SimulationVariable(\r\n unitOperation.naturalGasEmissionFactor || {},\r\n this.ownerCase,\r\n this\r\n );\r\n this.naturalGasPrice = new SimulationVariable(unitOperation.naturalGasPrice || {}, this.ownerCase, this);\r\n this.hydrogenUse = new SimulationVariable(unitOperation.hydrogenUse || {}, this.ownerCase, this);\r\n this.hydrogenUseRate = new SimulationVariable(unitOperation.hydrogenUseRate || {}, this.ownerCase, this);\r\n this.maximumSulfurContent = new SimulationVariable(unitOperation.maximumSulfurContent, this.ownerCase, this);\r\n this.maximumNitrogen = new SimulationVariable(unitOperation.maximumNitrogen, this.ownerCase, this);\r\n this.butaneRecovery = new SimulationVariable(unitOperation.butaneRecovery, this.ownerCase, this);\r\n this.modelType = unitOperation.modelType || BitumenModelTypes.UTILITY;\r\n this.separateLightEndsProduct = unitOperation.separateLightEndsProduct;\r\n this.totalInletVolume = new SimulationVariable(unitOperation.totalInletVolume, this.ownerCase, this);\r\n this.totalInletSulfur = new SimulationVariable(unitOperation.totalInletSulfur, this.ownerCase, this);\r\n this.totalInletNitrogen = new SimulationVariable(unitOperation.totalInletNitrogen, this.ownerCase, this);\r\n this.h2sProductionRate = new SimulationVariable(unitOperation.h2sProductionRate || {}, this.ownerCase, this);\r\n this.h2sProduction = new SimulationVariable(unitOperation.h2sProduction || {}, this.ownerCase, this);\r\n this.constraintOption = unitOperation.constraintOption;\r\n if (unitOperation.distributionRatioVariables instanceof Array) {\r\n for (const dv of unitOperation.distributionRatioVariables) {\r\n this.distributionRatioVariables.push(new RangeDistributionRatioVariable(dv));\r\n }\r\n }\r\n if (unitOperation.hydrogenUseRateVariables instanceof Array) {\r\n for (const dv of unitOperation.hydrogenUseRateVariables) {\r\n this.hydrogenUseRateVariables.push(new DistributionRatioVariable(dv.unitOperationId, dv.value));\r\n }\r\n }\r\n if (typeof unitOperation.blendRecipeOption === 'undefined') {\r\n this.blendRecipeOption = 'exact';\r\n } else {\r\n this.blendRecipeOption = unitOperation.blendRecipeOption;\r\n }\r\n if (typeof unitOperation.feedSlateDisabled === 'undefined') {\r\n this.feedSlateDisabled = false;\r\n } else {\r\n this.feedSlateDisabled = !!unitOperation.feedSlateDisabled;\r\n }\r\n this.initConstraints();\r\n }\r\n\r\n override addSimVarsToPool() {\r\n super.addSimVarsToPool();\r\n }\r\n\r\n override overwriteValues(another: BaseObject) {\r\n super.overwriteValues(another);\r\n const ds = another as Hydrotreater;\r\n for (let i = 0; i < ds.distributionRatioVariables.length; i++) {\r\n this.distributionRatioVariables[i].value = ds.distributionRatioVariables[i].value;\r\n this.distributionRatioVariables[i].minimumValue = ds.distributionRatioVariables[i].minimumValue;\r\n this.distributionRatioVariables[i].maximumValue = ds.distributionRatioVariables[i].maximumValue;\r\n }\r\n for (let i = 0; i < ds.hydrogenUseRateVariables.length; i++) {\r\n this.hydrogenUseRateVariables[i].value = ds.hydrogenUseRateVariables[i].value;\r\n }\r\n }\r\n\r\n override setSimulationVariablesOwner() {\r\n super.setSimulationVariablesOwner();\r\n }\r\n\r\n override setSimulationVariableNames(): void {\r\n super.setSimulationVariableNames();\r\n this.totalYield.setName('Volumetric Yield');\r\n this.powerUseRate.setName('Power Use Rate');\r\n this.opexTotal.setName('Total OPEX');\r\n this.capexTotal.setName('Total CAPEX');\r\n this.hydrogenUseRate.setName('Hydrogen Use Rate');\r\n this.h2sProductionRate.setName('H2S Production Rate');\r\n this.h2sProduction.setName('H2S Production');\r\n this.naturalGasUseRate.setName('Natural Gas Use Rate');\r\n this.steamMake900.setName('#900 Steam Make');\r\n this.steamUse900.setName('#900 Steam Use');\r\n this.steamMake600.setName('#600 Steam Make');\r\n this.steamUse600.setName('#600 Steam Use');\r\n this.steamMake150.setName('#150 Steam Make');\r\n this.steamUse150.setName('#150 Steam Use');\r\n this.steamMake50.setName('#50 Steam Make');\r\n this.steamUse50.setName('#50 Steam Use');\r\n this.maximumNitrogen.setName(SimulationVariableName.MAXIMUM_NITROGEN);\r\n this.maximumSulfurContent.setName(SimulationVariableName.MAXIMUM_SULFUR_CONTENT);\r\n this.totalInletVolume.setName('Total inlet volume');\r\n this.totalInletSulfur.setName('Total inlet sulfur');\r\n this.totalInletNitrogen.setName('Total inlet nitrogen');\r\n this.capacity.setName(SimulationVariableName.CAPACITY);\r\n this.fuelGasHeatingValue.setName(SimulationVariableName.FUEL_GAS_HEATING_VALUE);\r\n this.fuelGasEmissionFactor.setName(SimulationVariableName.FUEL_GAS_EMISSION_FACTOR);\r\n this.energyFlow.setName(SimulationVariableName.ENERGY_FLOW);\r\n this.flowrate.setName(SimulationVariableName.FUEL_GAS_FLOWRATE);\r\n }\r\n\r\n addDistributionVariable(unitOperationId: string) {\r\n this.emptyDistributionValues();\r\n this.distributionRatioVariables.push(new RangeDistributionRatioVariable({ unitOperationId }));\r\n this.hydrogenUseRateVariables.push(new DistributionRatioVariable(unitOperationId, null));\r\n\r\n if (this.distributionRatioVariables.length === 1) {\r\n this.distributionRatioVariables[0].value = 1;\r\n }\r\n }\r\n\r\n emptyDistributionValues() {\r\n for (const dv of this.distributionRatioVariables) {\r\n dv.value = null;\r\n }\r\n }\r\n\r\n findDistributionRatioVariable(unitOperationId: string) {\r\n return this.distributionRatioVariables.find(drv => {\r\n return drv.unitOperationId === unitOperationId;\r\n });\r\n }\r\n\r\n findHydrogenUseRateVariable(unitOperationId: string) {\r\n return this.hydrogenUseRateVariables.find(drv => {\r\n return drv.unitOperationId === unitOperationId;\r\n });\r\n }\r\n\r\n findDistributionRatioVariableName(i: number) {\r\n const dv = this.distributionRatioVariables[i];\r\n\r\n if (dv) {\r\n const uo = this.ownerCase.getUnitOperation(dv.unitOperationId);\r\n return uo ? uo.name : null;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n removeDistributionRatioVariable(unitOperationId: string) {\r\n const index = this.distributionRatioVariables.indexOf(this.findDistributionRatioVariable(unitOperationId));\r\n\r\n if (index >= 0) {\r\n this.distributionRatioVariables.splice(index, 1);\r\n this.hydrogenUseRateVariables.splice(index, 1);\r\n }\r\n }\r\n\r\n override setDefaultValues(): void {\r\n if (this.totalYield.isUndefined()) {\r\n this.totalYield.setDefaultValue(90.0);\r\n }\r\n\r\n if (this.naturalGasUseRate.isUndefined()) {\r\n this.naturalGasUseRate.setDefaultValue(undefined, unitConverter.units.EnergyPerVolume.MJ_M3);\r\n }\r\n\r\n if (this.hydrogenEmissionFactor.isUndefined()) {\r\n this.hydrogenEmissionFactor.setDefaultValue(8500, unitConverter.units.MassPerStdH2Volume.KGCO2E_tonne);\r\n }\r\n\r\n if (this.hydrogenPrice.isUndefined()) {\r\n this.hydrogenPrice.setDefaultValue(1600, unitConverter.units.CurrencyPerStdH2Volume.CAD_tonne);\r\n }\r\n\r\n if (this.powerEmissionFactor.isUndefined()) {\r\n this.powerEmissionFactor.setDefaultValue(0.5, unitConverter.units.MassPerEnergy.KG_KWH);\r\n }\r\n\r\n if (this.powerPrice.isUndefined()) {\r\n this.powerPrice.setDefaultValue(40, unitConverter.units.CurrencyPerElectricity.CAD_MEGAWH);\r\n }\r\n\r\n if (this.naturalGasEmissionFactor.isUndefined()) {\r\n this.naturalGasEmissionFactor.setDefaultValue(55.32);\r\n }\r\n\r\n if (this.naturalGasPrice.isUndefined()) {\r\n this.naturalGasPrice.setDefaultValue(4.28);\r\n }\r\n\r\n if (this.butaneRecovery.isUndefined()) {\r\n this.butaneRecovery.setDefaultValue(18);\r\n }\r\n\r\n if (!this.constraintOption) {\r\n this.constraintOption = 'blendRatio';\r\n }\r\n\r\n if (this.energyFlow.isUndefined()) {\r\n this.energyFlow.setDefaultValue(0.0, unitConverter.units.Energyrate.GJ_H);\r\n }\r\n\r\n super.setDefaultValues();\r\n }\r\n\r\n override setQuantities() {\r\n super.setQuantities();\r\n this.totalYield.setQuantity('Percent');\r\n this.naturalGasUseRate.setQuantity('EnergyPerVolume');\r\n this.powerUseRate.setQuantity('PowerPerVolumetricFlow');\r\n this.totalInletVolume.setQuantity('Volumetricflowrate');\r\n this.totalInletSulfur.setQuantity(Quantity.MASS_FRACTION);\r\n this.totalInletNitrogen.setQuantity(Quantity.MASS_FRACTION);\r\n this.powerEmissionFactor.setQuantity('MassPerEnergy');\r\n this.powerPrice.setQuantity('CurrencyPerElectricity');\r\n this.hydrogenEmissionFactor.setQuantity('MassPerStdH2Volume');\r\n this.hydrogenPrice.setQuantity('CurrencyPerStdH2Volume');\r\n this.naturalGasPrice.setQuantity('CurrencyPerEnergy');\r\n this.hydrogenUse.setQuantity('Moleflowrate');\r\n this.hydrogenUseRate.setQuantity(Quantity.GAS_STD_VOLUME_PER_VOLUME);\r\n this.naturalGasEmissionFactor.setQuantity('MassPerEnergy');\r\n this.maximumSulfurContent.setQuantity(Quantity.MASS_FRACTION);\r\n this.maximumNitrogen.setQuantity(Quantity.MASS_FRACTION);\r\n this.butaneRecovery.setQuantity('Percent');\r\n this.h2sProduction.setQuantity('Moleflowrate');\r\n this.h2sProductionRate.setQuantity('GasStdVolumePerVolume');\r\n }\r\n\r\n override convertToInternalUnit() {\r\n super.convertToInternalUnit();\r\n }\r\n\r\n override detectChanges(another: Hydrotreater) {\r\n return super.detectChanges(another);\r\n }\r\n\r\n override getChildrenObjectsForRemoval() {\r\n return super.getChildrenObjectsForRemoval();\r\n }\r\n\r\n override updateStatus(another: Hydrotreater) {\r\n this.updateSimulationVariablesStatus(another);\r\n }\r\n\r\n getAlternativeGhgIntensity() {\r\n return new SimulationVariable(this.ghgIntensity, this.ownerCase, this);\r\n }\r\n\r\n override dePersist(sup: any) {\r\n super.dePersist(sup);\r\n this.totalYield = this.getSimulationVariableSafe(sup.totalYield);\r\n this.naturalGasUseRate = this.getSimulationVariableSafe(sup.naturalGasUseRate);\r\n this.hydrogenUseRate = this.getSimulationVariableSafe(sup.hydrogenUseRate);\r\n this.powerUseRate = this.getSimulationVariableSafe(sup.powerUseRate);\r\n\r\n this.powerPrice = this.getSimulationVariableSafe(sup.powerPrice);\r\n this.powerEmissionFactor = this.getSimulationVariableSafe(sup.powerEmissionFactor);\r\n this.naturalGasPrice = this.getSimulationVariableSafe(sup.naturalGasPrice);\r\n this.hydrogenUse = this.getSimulationVariableSafe(sup.hydrogenUse);\r\n this.naturalGasEmissionFactor = this.getSimulationVariableSafe(sup.naturalGasEmissionFactor);\r\n this.hydrogenPrice = this.getSimulationVariableSafe(sup.hydrogenPrice);\r\n this.hydrogenEmissionFactor = this.getSimulationVariableSafe(sup.hydrogenEmissionFactor);\r\n this.maximumNitrogen = this.getSimulationVariableSafe(sup.maximumNitrogen);\r\n this.maximumSulfurContent = this.getSimulationVariableSafe(sup.maximumSulfurContent);\r\n this.butaneRecovery = this.getSimulationVariableSafe(sup.butaneRecovery);\r\n this.totalInletVolume = this.getSimulationVariableSafe(sup.totalInletVolume);\r\n this.totalInletSulfur = this.getSimulationVariableSafe(sup.totalInletSulfur);\r\n this.totalInletNitrogen = this.getSimulationVariableSafe(sup.totalInletNitrogen);\r\n this.h2sProduction = this.getSimulationVariableSafe(sup.h2sProduction);\r\n this.h2sProductionRate = this.getSimulationVariableSafe(sup.h2sProductionRate);\r\n this.setQuantities();\r\n this.setDefaultValues();\r\n this.initConstraints();\r\n }\r\n\r\n initConstraints() {\r\n this.constraints = new UnitOperationConstraints();\r\n this.constraints.addConstraint('capacity', this.capacity);\r\n this.constraints.addConstraint('minimumFlow', this.minimumFlow);\r\n this.constraints.addConstraint('maximumSulfurContent', this.maximumSulfurContent);\r\n this.constraints.addConstraint('maximumNitrogen', this.maximumNitrogen);\r\n }\r\n\r\n constraintViolated() {\r\n const inletStream = this.ownerCase.filterSuncorMaterialStreams(s => {\r\n return s.outletUnitOperationId === this.id;\r\n })[0];\r\n return (\r\n inletStream &&\r\n (this.constraints.constraintValueViolated('capacity', inletStream.volumetricFlowrate.value) ||\r\n this.constraints.constraintValueViolated('maximumSulfurContent', inletStream.sulfur.value) ||\r\n this.constraints.constraintValueViolated('maximumNitrogen', inletStream.nitrogen.value))\r\n );\r\n }\r\n\r\n getAvailableParameters() {\r\n const params = [this.totalYield, this.ghgIntensity, this.opexFixed, this.opexVar];\r\n if (this.modelType === BitumenModelTypes.UTILITY) {\r\n params.push(this.powerUseRate, this.naturalGasUseRate);\r\n }\r\n return params;\r\n }\r\n\r\n constraintValueDefined() {\r\n return this.constraints.anyConstraintValueDefined();\r\n }\r\n\r\n getAvailableMultiPeriodParameters(): SimulationVariable[] {\r\n return [this.capacity];\r\n }\r\n}\r\n","export const defaultDCUModel =\r\n '// GetStreamFlowRate (string MaterialStreamName, FlowrateBasis basis)\\n' +\r\n '// Gets the MaterialStreamName and \"FlowrateBasis\" and return the flowrate\\n' +\r\n '// Valid Options for FlowrateBasis: \\n' +\r\n '// FlowrateBasis.Mass (returns in TPD)| FlowrateBasis.Volume (returns in kbpcd)\\n' +\r\n '// GetStreamVolumetricFlowRate(string MaterialStreamName) \\n' +\r\n '// Gets the MaterialStreamName as string and returns the volumetric Flowrate of any stream in the flowsheet\\n' +\r\n '// GetStreamCutFlowRate(string streamName, SuncorCuts suncorCut, FlowrateBasis basis)\\n' +\r\n '// Gets streamName, SuncorCut and Flowrate basis and returns the cut flowrate for the given stream\\n ' +\r\n '// Valid options for SuncorCut:\\n ' +\r\n '// SuncorCuts.LightEnd, SuncorCuts.LightNaphta, SuncorCuts.HeavyNaphta, \\n' +\r\n '// SuncorCuts.Distillate, SuncorCuts.LightGasOil, SuncorCuts.HeavyGasOil, \\n' +\r\n '// SuncorCuts.VacGasOil, SuncorCuts.HeavyVacGasOil, SuncorCuts.VacuumResidue \\n' +\r\n 'GasYield = 0.52 * (0.0591 * Inletccrpercent + 2.1372);\\n' +\r\n 'double naphtayieldwtpercent = (-0.0519 * Inletccrpercent * Inletccrpercent + 2.1168 * Inletccrpercent - 2.6873);\\n' +\r\n 'LightNaphtaYield = naphtayieldwtpercent * 0.891;\\n' +\r\n 'HeavyNaphtaYield = naphtayieldwtpercent * (1.0 - 0.891);\\n' +\r\n 'DistillateYield = 0.616 * (0.0346 * Inletccrpercent * Inletccrpercent - 2.3061 * Inletccrpercent + 53.62);\\n' +\r\n '//Gas oil yield split equally between LGO, HGO, VGO, HVGO\\n' +\r\n 'GasOilYield = 0.906 * (0.0663 * Inletccrpercent * Inletccrpercent - 3.0023 * Inletccrpercent + 52.654);\\n' +\r\n 'CokeYield = (-0.0043 * Inletccrpercent * Inletccrpercent + 1.4772 * Inletccrpercent + 2.116);\\n' +\r\n '\\n' +\r\n ' \\n' +\r\n '\\n' +\r\n 'double naphthaAPI = 0.0217 * Inletccrpercent + 55.018;\\n' +\r\n 'DistillateAPI = 0.1716 * Inletccrpercent + 25.121;\\n' +\r\n '//All gas oil components (LGO, HGO, VGO, HVGO) are assumed to have the same Density\\n' +\r\n 'GasOilAPI = -0.295 * Inletccrpercent + 14.438;\\n' +\r\n ' \\n' +\r\n 'LightNaphtaAPI = naphthaAPI;\\n' +\r\n 'HeavyNaphtaAPI = 0.93 * naphthaAPI;\\n' +\r\n ' \\n' +\r\n 'double naphthaSulfur = 0.0026 * Inletccrpercent + 1.796;\\n' +\r\n 'DistillateSulfur = 0.0888 * Inletccrpercent + 1.7721;\\n' +\r\n '//All gas oil components (LGO,. HGO, VGO, HVGO) are assumed to have the same sulfur content\\n' +\r\n 'GasOilSulfur = 0.1319 * Inletccrpercent + 2.1964;\\n' +\r\n ' \\n' +\r\n 'LightNaphtaSulfur = naphthaSulfur * 0.91;\\n' +\r\n 'HeavyNaphtaSulfur = naphthaSulfur * 1.78;\\n' +\r\n '\\n' +\r\n ' \\n' +\r\n '\\n' +\r\n 'double naphthaNitrogen = 3.8236 * Inletccrpercent + 82.464;\\n' +\r\n 'DistillateNitrogen = 28.481 * Inletccrpercent + 272.6;\\n' +\r\n '//All gas oil components (LGO, HGO, VGO, HVGO) are assumed to have the same Nitrogen content\\n' +\r\n 'GasOilNitrogen = 44.724 * Inletccrpercent + 2931.7; \\n' +\r\n ' \\n' +\r\n 'LightNaphtaNitrogen = naphthaNitrogen;\\n' +\r\n 'HeavyNaphtaNitrogen = 1.13 * naphthaNitrogen;';\r\n","import { Case } from '../case';\r\nimport { SimulationVariable } from '../simulation-variable';\r\n// @ts-ignore\r\nimport { defaultDCUModel } from '../../_config/unit-operations/default-models/default-dcu-model';\r\nimport { ConstrainableObject } from '../_interfaces/constrainable-object';\r\nimport { UnitOperationConstraints } from './unit-operation-constraints';\r\nimport { MultiPeriodParameterProvider } from '../_multi-period/multi-period-parameter-provider';\r\nimport { SimulationVariableName } from '../../_config/simulation-variable-name.enum';\r\nimport { KpiProvider } from '../_case-study/kpi-provider';\r\nimport { GasContributorUnitOperation } from './gas-contributor-unit-operation';\r\nimport { Quantity } from '../../_config/quantity.enum';\r\nimport { ParameterProvider } from '../_case-study/parameter-provider';\r\nimport { unitOperationsConfig } from '../../_config/unit-operations.config';\r\n\r\ndeclare let unitConverter: any;\r\n\r\nexport class DCU\r\n extends GasContributorUnitOperation\r\n implements ConstrainableObject, MultiPeriodParameterProvider, KpiProvider, ParameterProvider\r\n{\r\n category = unitOperationsConfig.dcu.key;\r\n volumetricYield: SimulationVariable;\r\n producedCoke: SimulationVariable;\r\n useCustomModel: boolean;\r\n modelScript: string;\r\n h2sProductionRate: SimulationVariable;\r\n h2sProduction: SimulationVariable;\r\n constraints: UnitOperationConstraints;\r\n minimumAPI: SimulationVariable;\r\n maximumCCR: SimulationVariable;\r\n cokeEmissionFactor: SimulationVariable;\r\n percentCokeToCombustion: SimulationVariable;\r\n\r\n constructor(unitOperation: any, ownerCase: Case) {\r\n super(unitOperation, ownerCase);\r\n this.initValues(unitOperation);\r\n this.setSimulationVariableNames();\r\n }\r\n\r\n getAvailableKpis(): SimulationVariable[] {\r\n if (this.ownerCase.multiPeriodEnabled) {\r\n return [\r\n this.ghgEmissions,\r\n this.ghgIntensity,\r\n this.volumetricYield,\r\n this.producedCoke,\r\n this.h2sProductionRate,\r\n this.h2sProduction,\r\n this.opexTotal,\r\n this.capexTotal,\r\n this.percentCokeToCombustion,\r\n this.cokeEmissionFactor,\r\n ];\r\n }\r\n return [\r\n this.ghgEmissions,\r\n this.ghgIntensity,\r\n this.volumetricYield,\r\n this.producedCoke,\r\n this.h2sProductionRate,\r\n this.h2sProduction,\r\n this.steamUse900,\r\n this.steamMake900,\r\n this.steamMake600,\r\n this.steamUse600,\r\n this.steamMake150,\r\n this.steamUse150,\r\n this.steamMake50,\r\n this.steamUse50,\r\n this.opexTotal,\r\n this.capexTotal,\r\n this.percentCokeToCombustion,\r\n this.cokeEmissionFactor,\r\n this.fuelGasHeatingValue,\r\n this.fuelGasEmissionFactor,\r\n this.energyFlow,\r\n this.flowrate,\r\n ];\r\n }\r\n\r\n getAvailableParametricStudyParameters(): SimulationVariable[] {\r\n return [\r\n this.percentCokeToCombustion,\r\n this.cokeEmissionFactor,\r\n this.h2sProductionRate,\r\n this.opexVar,\r\n this.opexGasDiesel,\r\n this.opexPower,\r\n this.opexFixed,\r\n this.capexAmortized,\r\n ];\r\n }\r\n\r\n getAvailableParameters() {\r\n return undefined;\r\n }\r\n\r\n getAlternativeGhgIntensity(): SimulationVariable {\r\n return undefined;\r\n }\r\n\r\n override initValues(unitOperation: any): void {\r\n super.initValues(unitOperation);\r\n this.volumetricYield = new SimulationVariable(unitOperation.volumetricYield, this.ownerCase, this);\r\n this.producedCoke = new SimulationVariable(unitOperation.producedCoke, this.ownerCase, this);\r\n this.h2sProductionRate = new SimulationVariable(unitOperation.h2sProductionRate || {}, this.ownerCase, this);\r\n this.h2sProduction = new SimulationVariable(unitOperation.h2sProduction || {}, this.ownerCase, this);\r\n this.minimumAPI = new SimulationVariable(unitOperation.minimumAPI || {}, this.ownerCase, this);\r\n this.maximumCCR = new SimulationVariable(unitOperation.maximumCCR || {}, this.ownerCase, this);\r\n this.cokeEmissionFactor = new SimulationVariable(unitOperation.cokeEmissionFactor || {}, this.ownerCase, this);\r\n this.percentCokeToCombustion = new SimulationVariable(\r\n unitOperation.percentCokeToCombustion || {},\r\n this.ownerCase,\r\n this\r\n );\r\n if (typeof unitOperation.useCustomModel === 'undefined') {\r\n this.useCustomModel = false;\r\n } else {\r\n this.useCustomModel = unitOperation.useCustomModel;\r\n }\r\n this.modelScript = typeof unitOperation.modelScript === 'undefined' ? defaultDCUModel : unitOperation.modelScript;\r\n\r\n this.initConstraints();\r\n }\r\n\r\n initConstraints() {\r\n this.constraints = new UnitOperationConstraints();\r\n this.constraints.addConstraint('capacity', this.capacity);\r\n this.constraints.addConstraint('minimumFlow', this.minimumFlow);\r\n this.constraints.addConstraint('minimumAPI', this.minimumAPI);\r\n this.constraints.addConstraint('maximumCCR', this.maximumCCR);\r\n }\r\n\r\n override setQuantities() {\r\n super.setQuantities();\r\n this.volumetricYield.setQuantity('Percent');\r\n this.producedCoke.setQuantity('Massflowrate');\r\n this.h2sProduction.setQuantity('Moleflowrate');\r\n this.h2sProductionRate.setQuantity('GasStdVolumePerVolume');\r\n this.minimumAPI.setQuantity('LiquidDensity');\r\n this.maximumCCR.setQuantity('MassFraction');\r\n this.percentCokeToCombustion.setQuantity(Quantity.PERCENT);\r\n this.cokeEmissionFactor.setQuantity(Quantity.MASS_EMISSIONS_PER_FUEL_MASS);\r\n }\r\n\r\n override setDefaultValues(): void {\r\n super.setDefaultValues();\r\n if (this.cokeEmissionFactor.isUndefined()) {\r\n this.cokeEmissionFactor.setDefaultValue(3386.3);\r\n }\r\n if (this.percentCokeToCombustion.isUndefined()) {\r\n this.percentCokeToCombustion.setDefaultValue(15.0);\r\n }\r\n if (this.energyFlow.isUndefined()) {\r\n this.energyFlow.setDefaultValue(0.0, unitConverter.units.Energyrate.GJ_H);\r\n }\r\n }\r\n\r\n override dePersist(sup: any) {\r\n super.dePersist(sup);\r\n this.volumetricYield = this.getSimulationVariableSafe(sup.volumetricYield);\r\n this.producedCoke = this.getSimulationVariableSafe(sup.producedCoke);\r\n this.h2sProduction = this.getSimulationVariableSafe(sup.h2sProduction);\r\n this.h2sProductionRate = this.getSimulationVariableSafe(sup.h2sProductionRate);\r\n this.minimumAPI = this.getSimulationVariableSafe(sup.minimumAPI);\r\n this.maximumCCR = this.getSimulationVariableSafe(sup.maximumCCR);\r\n this.cokeEmissionFactor = this.getSimulationVariableSafe(sup.cokeEmissionFactor);\r\n this.percentCokeToCombustion = this.getSimulationVariableSafe(sup.percentCokeToCombustion);\r\n this.setQuantities();\r\n this.setDefaultValues();\r\n this.initConstraints();\r\n }\r\n\r\n constraintViolated() {\r\n const inletStream = this.ownerCase.filterSuncorMaterialStreams(s => {\r\n return s.outletUnitOperationId === this.id;\r\n })[0];\r\n\r\n return inletStream && this.constraints.constraintValueViolated('capacity', inletStream.volumetricFlowrate.value);\r\n }\r\n\r\n constraintValueDefined() {\r\n return this.constraints.anyConstraintValueDefined();\r\n }\r\n\r\n override setSimulationVariableNames() {\r\n super.setSimulationVariableNames();\r\n this.volumetricYield.setName('Volumetric Yield');\r\n this.producedCoke.setName('Produced Coke');\r\n this.maximumCCR.setName(SimulationVariableName.MAXIMUM_CCR);\r\n this.minimumAPI.setName(SimulationVariableName.MINIMUM_API);\r\n this.opexTotal.setName('Total OPEX');\r\n this.capexTotal.setName('Total CAPEX');\r\n this.h2sProductionRate.setName('H2S Production Rate');\r\n this.h2sProduction.setName('H2S Production');\r\n this.steamMake900.setName('#900 Steam Make');\r\n this.steamUse900.setName('#900 Steam Use');\r\n this.steamMake600.setName('#600 Steam Make');\r\n this.steamUse600.setName('#600 Steam Use');\r\n this.steamMake150.setName('#150 Steam Make');\r\n this.steamUse150.setName('#150 Steam Use');\r\n this.steamMake50.setName('#50 Steam Make');\r\n this.steamUse50.setName('#50 Steam Use');\r\n\r\n this.percentCokeToCombustion.setName(SimulationVariableName.PERCENT_COKE_TO_COMBUSTION);\r\n this.cokeEmissionFactor.setName(SimulationVariableName.COKE_EMISSION_FACTOR);\r\n this.fuelGasHeatingValue.setName(SimulationVariableName.FUEL_GAS_HEATING_VALUE);\r\n this.fuelGasEmissionFactor.setName(SimulationVariableName.FUEL_GAS_EMISSION_FACTOR);\r\n this.energyFlow.setName(SimulationVariableName.ENERGY_FLOW);\r\n this.flowrate.setName(SimulationVariableName.FUEL_GAS_FLOWRATE);\r\n this.capacity.setName(SimulationVariableName.CAPACITY);\r\n }\r\n\r\n getAvailableMultiPeriodParameters(): SimulationVariable[] {\r\n return [this.capacity];\r\n }\r\n\r\n override detectChanges(another: any): boolean {\r\n const changes = super.detectChanges(another);\r\n return changes || another.modelScript !== this.modelScript;\r\n }\r\n}\r\n","import { Case } from '../case';\r\nimport { SimulationVariable } from '../simulation-variable';\r\nimport { UnitOperation } from '../unit-operation';\r\nimport { KpiProvider } from '../_case-study/kpi-provider';\r\nimport { unitOperationsConfig } from '../../_config/unit-operations.config';\r\n\r\nexport class GenericSink extends UnitOperation implements KpiProvider {\r\n category = unitOperationsConfig.genericSink.key;\r\n\r\n constructor(unitOperation: any, ownerCase: Case) {\r\n super(unitOperation, ownerCase);\r\n this.initValues(unitOperation);\r\n this.setSimulationVariableNames();\r\n }\r\n\r\n getAvailableKpis(): SimulationVariable[] {\r\n return [this.getInletStream().volumetricFlowrate];\r\n }\r\n\r\n getInletStream() {\r\n return this.ownerCase.filterSuncorMaterialStreams(s => {\r\n return s.outletUnitOperationId === this.id;\r\n })[0];\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n override initValues(unitOperation: any) {}\r\n\r\n override setSimulationVariableNames() {}\r\n\r\n getAlternativeGhgIntensity(): SimulationVariable {\r\n return undefined;\r\n }\r\n\r\n override setQuantities() {}\r\n\r\n override setDefaultValues() {}\r\n override clearResults() {}\r\n}\r\n","export enum CommodityTankConstraintOption {\r\n BLEND_RATIO = 'blendRatio',\r\n PROPERTIES = 'properties',\r\n}\r\n","import { MultiPeriodParameterProvider } from '../_multi-period/multi-period-parameter-provider';\r\nimport { SuncorUnitOperation } from './suncor-unit-operation';\r\nimport { SimulationVariable } from '../simulation-variable';\r\nimport { Case } from '../case';\r\nimport { IUnitOperation } from '../i-unit-operation';\r\nimport { BaseObject } from '../base-object';\r\nimport { UnitOperationConstraints } from './unit-operation-constraints';\r\nimport { ConstrainableObject } from '../_interfaces/constrainable-object';\r\nimport { RangeDistributionRatioVariable } from './range-distribution-ratio-variable';\r\nimport { SimulationVariableName } from '../../_config/simulation-variable-name.enum';\r\nimport { KpiProvider } from '../_case-study/kpi-provider';\r\nimport { ParameterProvider } from '../_case-study/parameter-provider';\r\nimport { unitOperationsConfig } from '../../_config/unit-operations.config';\r\nimport { CommodityTankConstraintOption } from '../../_config/unit-operations/commodity-tank-enums';\r\n\r\ndeclare let unitConverter: any;\r\n\r\nexport class CommodityTank\r\n extends SuncorUnitOperation\r\n implements IUnitOperation, ConstrainableObject, MultiPeriodParameterProvider, KpiProvider, ParameterProvider\r\n{\r\n category = unitOperationsConfig.commodityTank.key;\r\n distributionRatioVariables: Array<RangeDistributionRatioVariable> = [];\r\n floatTank: boolean;\r\n estimateProductValue: boolean;\r\n productPrice: SimulationVariable;\r\n constraints: UnitOperationConstraints;\r\n commodityVolume: SimulationVariable;\r\n maxSulfur: SimulationVariable;\r\n maxDensity: SimulationVariable;\r\n maxNitrogen: SimulationVariable;\r\n blendRecipeOption: string;\r\n constraintOption: string;\r\n\r\n commoditySulfur: SimulationVariable;\r\n commodityNitrogen: SimulationVariable;\r\n commodityDensity: SimulationVariable;\r\n\r\n getAlternativeGhgIntensity(): SimulationVariable {\r\n return undefined;\r\n }\r\n\r\n constructor(unitOperation: any, ownerCase: Case) {\r\n super(unitOperation, ownerCase);\r\n this.initValues(unitOperation);\r\n this.setSimulationVariableNames();\r\n }\r\n\r\n getAvailableKpis(): SimulationVariable[] {\r\n return [\r\n this.productPrice,\r\n this.commodityVolume,\r\n this.commoditySulfur,\r\n this.commodityNitrogen,\r\n this.commodityDensity,\r\n ];\r\n }\r\n\r\n getAvailableParametricStudyParameters(): Array<SimulationVariable> {\r\n return [this.productPrice];\r\n }\r\n\r\n getAvailableParameters(): Array<SimulationVariable> {\r\n return undefined;\r\n }\r\n\r\n override initValues(unitOperation: any) {\r\n super.initValues(unitOperation);\r\n this.productPrice = new SimulationVariable(unitOperation.productPrice, this.ownerCase, this);\r\n this.commodityVolume = new SimulationVariable(unitOperation.commodityVolume, this.ownerCase, this);\r\n this.maxSulfur = new SimulationVariable(unitOperation.maxSulfur, this.ownerCase, this);\r\n this.maxDensity = new SimulationVariable(unitOperation.maxDensity, this.ownerCase, this);\r\n this.maxNitrogen = new SimulationVariable(unitOperation.maxNitrogen, this.ownerCase, this);\r\n\r\n this.commoditySulfur = new SimulationVariable(unitOperation.commoditySulfur, this.ownerCase, this);\r\n this.commodityNitrogen = new SimulationVariable(unitOperation.commodityNitrogen, this.ownerCase, this);\r\n this.commodityDensity = new SimulationVariable(unitOperation.commodityDensity, this.ownerCase, this);\r\n\r\n this.constraintOption = unitOperation.constraintOption;\r\n if (typeof unitOperation.floatTank === 'undefined') {\r\n this.floatTank = false;\r\n } else {\r\n this.floatTank = !!unitOperation.floatTank;\r\n }\r\n if (typeof unitOperation.estimateProductValue === 'undefined') {\r\n this.estimateProductValue = true;\r\n } else {\r\n this.estimateProductValue = !!unitOperation.estimateProductValue;\r\n }\r\n if (unitOperation.distributionRatioVariables instanceof Array) {\r\n for (const dv of unitOperation.distributionRatioVariables) {\r\n this.distributionRatioVariables.push(new RangeDistributionRatioVariable(dv));\r\n }\r\n }\r\n if (typeof unitOperation.blendRecipeOption === 'undefined') {\r\n this.blendRecipeOption = 'exact';\r\n } else {\r\n this.blendRecipeOption = unitOperation.blendRecipeOption;\r\n }\r\n\r\n this.initConstraints();\r\n }\r\n\r\n override overwriteValues(another: BaseObject) {\r\n super.overwriteValues(another);\r\n const s = another as CommodityTank;\r\n this.name = another.name;\r\n this.floatTank = s.floatTank;\r\n this.estimateProductValue = s.estimateProductValue;\r\n for (let i = 0; i < s.distributionRatioVariables.length; i++) {\r\n this.distributionRatioVariables[i].value = s.distributionRatioVariables[i].value;\r\n this.distributionRatioVariables[i].minimumValue = s.distributionRatioVariables[i].minimumValue;\r\n this.distributionRatioVariables[i].maximumValue = s.distributionRatioVariables[i].maximumValue;\r\n }\r\n }\r\n\r\n initConstraints() {\r\n this.constraints = new UnitOperationConstraints();\r\n this.constraints.addConstraint('Maximum demand', this.capacity);\r\n this.constraints.addConstraint('minimumFlow', this.minimumFlow);\r\n this.constraints.addConstraint(SimulationVariableName.MAXIMUM_SULFUR, this.maxSulfur);\r\n this.constraints.addConstraint(SimulationVariableName.MAXIMUM_MASS_DENSITY, this.maxDensity);\r\n this.constraints.addConstraint(SimulationVariableName.MAXIMUM_NITROGEN, this.maxNitrogen);\r\n }\r\n\r\n override setDefaultValues(): void {\r\n super.setDefaultValues();\r\n if (this.maxDensity.isUndefined()) {\r\n this.maxDensity.setDefaultValue(null, unitConverter.units.LiquidDensity.KG_M3);\r\n }\r\n if (!this.constraintOption) {\r\n this.constraintOption = CommodityTankConstraintOption.BLEND_RATIO;\r\n }\r\n }\r\n\r\n override setQuantities() {\r\n super.setQuantities();\r\n this.productPrice.setQuantity('CurrencyPerVolume');\r\n this.commodityVolume.setQuantity('Volumetricflowrate');\r\n this.maxSulfur.setQuantity('MassFraction');\r\n this.maxNitrogen.setQuantity('MassFraction');\r\n this.maxDensity.setQuantity('LiquidDensity');\r\n this.commoditySulfur.setQuantity('MassFraction');\r\n this.commodityNitrogen.setQuantity('MassFraction');\r\n this.commodityDensity.setQuantity('LiquidDensity');\r\n }\r\n\r\n override setSimulationVariableNames() {\r\n super.setSimulationVariableNames();\r\n this.capacity.setName(SimulationVariableName.MAXIMUM_DEMAND);\r\n this.minimumFlow.setName(SimulationVariableName.MINIMUM_DEMAND);\r\n this.maxSulfur.setName(SimulationVariableName.MAXIMUM_SULFUR);\r\n this.maxDensity.setName('Minimum API');\r\n this.maxNitrogen.setName(SimulationVariableName.MAXIMUM_NITROGEN);\r\n this.productPrice.setName('Product Price');\r\n this.commodityVolume.setName('Commodity Volume');\r\n this.commoditySulfur.setName('Commodity Sulfur');\r\n this.commodityNitrogen.setName('Commodity Nitrogen');\r\n this.commodityDensity.setName('Commodity Density');\r\n }\r\n\r\n getAvailableMultiPeriodParameters(): SimulationVariable[] {\r\n return [this.capacity];\r\n }\r\n\r\n isBlendRatioConstraintSelected() {\r\n return this.constraintOption === CommodityTankConstraintOption.BLEND_RATIO;\r\n }\r\n\r\n addDistributionVariable(unitOperationId: string) {\r\n this.emptyDistributionValues();\r\n this.distributionRatioVariables.push(new RangeDistributionRatioVariable({ unitOperationId }));\r\n\r\n if (this.distributionRatioVariables.length === 1) {\r\n this.distributionRatioVariables[0].value = 1;\r\n }\r\n }\r\n\r\n emptyDistributionValues() {\r\n for (const dv of this.distributionRatioVariables) {\r\n dv.value = null;\r\n }\r\n }\r\n\r\n findDistributionRatioVariable(unitOperationId: string) {\r\n return this.distributionRatioVariables.find(drv => {\r\n return drv.unitOperationId === unitOperationId;\r\n });\r\n }\r\n\r\n findDistributionRatioVariableName(i: number) {\r\n const dv = this.distributionRatioVariables[i];\r\n\r\n if (dv) {\r\n const uo = this.ownerCase.getUnitOperation(dv.unitOperationId);\r\n return uo ? uo.name : null;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n removeDistributionRatioVariable(unitOperationId: string) {\r\n const index = this.distributionRatioVariables.indexOf(this.findDistributionRatioVariable(unitOperationId));\r\n\r\n if (index >= 0) {\r\n this.distributionRatioVariables.splice(index, 1);\r\n }\r\n }\r\n\r\n constraintViolated() {\r\n const inletStream = this.ownerCase.filterSuncorMaterialStreams(s => {\r\n return s.outletUnitOperationId === this.id;\r\n })[0];\r\n\r\n return (\r\n inletStream && this.constraints.constraintValueViolated('Maximum demand', inletStream.volumetricFlowrate.value)\r\n );\r\n }\r\n\r\n constraintValueDefined(): boolean {\r\n return this.constraints.anyConstraintValueDefined();\r\n }\r\n\r\n override dePersist(sup: any) {\r\n super.dePersist(sup);\r\n this.productPrice = this.getSimulationVariableSafe(sup.productPrice);\r\n this.commodityVolume = this.getSimulationVariableSafe(sup.commodityVolume);\r\n this.maxSulfur = this.getSimulationVariableSafe(sup.maxSulfur);\r\n this.maxDensity = this.getSimulationVariableSafe(sup.maxDensity);\r\n this.maxNitrogen = this.getSimulationVariableSafe(sup.maxNitrogen);\r\n this.commodityNitrogen = this.getSimulationVariableSafe(sup.commodityNitrogen);\r\n this.commoditySulfur = this.getSimulationVariableSafe(sup.commoditySulfur);\r\n this.commodityDensity = this.getSimulationVariableSafe(sup.commodityDensity);\r\n\r\n this.setQuantities();\r\n this.setDefaultValues();\r\n this.initConstraints();\r\n }\r\n}\r\n","import { SuncorUnitOperation } from './_unit-operations/suncor-unit-operation';\r\nimport { SimulationVariable } from './simulation-variable';\r\nimport { Case } from './case';\r\nimport { DistributionRatioVariable } from './_unit-operations/distribution-ratio-variable';\r\nimport { BaseObject } from './base-object';\r\nimport { MultiPeriodTank } from './_multi-period/multi-period-tank';\r\nimport { KpiProvider } from './_case-study/kpi-provider';\r\n\r\nexport class ProductTank extends SuncorUnitOperation implements MultiPeriodTank, KpiProvider {\r\n category = 'product-tank';\r\n distributionRatioVariables: DistributionRatioVariable[] = [];\r\n productType: string;\r\n productVolume: SimulationVariable;\r\n isOptimizable: boolean;\r\n inventory: SimulationVariable;\r\n\r\n minVolume: SimulationVariable;\r\n maxVolume: SimulationVariable;\r\n initialVolume: SimulationVariable;\r\n\r\n constructor(unitOperation: any, ownerCase: Case) {\r\n super(unitOperation, ownerCase);\r\n this.initValues(unitOperation);\r\n this.setSimulationVariableNames();\r\n }\r\n\r\n getAvailableKpis(): SimulationVariable[] {\r\n if (this.ownerCase.multiPeriodEnabled) {\r\n return [this.inventory];\r\n }\r\n return [this.productVolume];\r\n }\r\n\r\n getAlternativeGhgIntensity(): SimulationVariable {\r\n return undefined;\r\n }\r\n\r\n override initValues(unitOperation: any) {\r\n super.initValues(unitOperation);\r\n this.productVolume = new SimulationVariable(unitOperation.productVolume, this.ownerCase, this);\r\n this.maxVolume = new SimulationVariable(unitOperation.maxVolume, this.ownerCase, this);\r\n this.minVolume = new SimulationVariable(unitOperation.minVolume, this.ownerCase, this);\r\n this.initialVolume = new SimulationVariable(unitOperation.initialVolume, this.ownerCase, this);\r\n this.inventory = new SimulationVariable(unitOperation.inventory, this.ownerCase, this);\r\n\r\n if (unitOperation.distributionRatioVariables instanceof Array) {\r\n for (const dv of unitOperation.distributionRatioVariables) {\r\n this.distributionRatioVariables.push(new DistributionRatioVariable(dv.unitOperationId, dv.value));\r\n }\r\n }\r\n this.productType = unitOperation.productType || '';\r\n if (typeof unitOperation.isOptimizable === 'undefined') {\r\n this.isOptimizable = true;\r\n } else {\r\n this.isOptimizable = !!unitOperation.isOptimizable;\r\n }\r\n }\r\n\r\n override overwriteValues(another: BaseObject) {\r\n super.overwriteValues(another);\r\n const s = another as ProductTank;\r\n this.name = another.name;\r\n this.comments = s.comments;\r\n this.productType = s.productType;\r\n this.inventory = s.inventory;\r\n this.isOptimizable = s.isOptimizable;\r\n for (let i = 0; i < s.distributionRatioVariables.length; i++) {\r\n this.distributionRatioVariables[i].value = s.distributionRatioVariables[i].value;\r\n }\r\n\r\n // TODO call to super.overwriteValues at the beginning of this function instead of this\r\n this.minVolume.overwriteValues(s.minVolume);\r\n this.maxVolume.overwriteValues(s.maxVolume);\r\n this.initialVolume.overwriteValues(s.initialVolume);\r\n }\r\n\r\n override setQuantities() {\r\n super.setQuantities();\r\n this.productVolume.setQuantity('Volumetricflowrate');\r\n this.minVolume.setQuantity('Volume');\r\n this.maxVolume.setQuantity('Volume');\r\n this.initialVolume.setQuantity('Volume');\r\n this.inventory.setQuantity('Volume');\r\n }\r\n\r\n override setSimulationVariableNames() {\r\n super.setSimulationVariableNames();\r\n this.productVolume.setName('Product Volume');\r\n this.inventory.setName('Inventory');\r\n }\r\n\r\n addDistributionVariable(unitOperationId: string) {\r\n this.emptyDistributionValues();\r\n this.distributionRatioVariables.push(new DistributionRatioVariable(unitOperationId, null));\r\n\r\n if (this.distributionRatioVariables.length === 1) {\r\n this.distributionRatioVariables[0].value = 1;\r\n }\r\n }\r\n\r\n private emptyDistributionValues() {\r\n for (const dv of this.distributionRatioVariables) {\r\n dv.value = null;\r\n }\r\n }\r\n\r\n findDistributionRatioVariable(unitOperationId: string) {\r\n return this.distributionRatioVariables.find(drv => {\r\n return drv.unitOperationId === unitOperationId;\r\n });\r\n }\r\n\r\n findDistributionRatioVariableName(i: number) {\r\n const dv = this.distributionRatioVariables[i];\r\n\r\n if (dv) {\r\n const uo = this.ownerCase.getUnitOperation(dv.unitOperationId);\r\n return uo ? uo.name : null;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n removeDistributionRatioVariable(unitOperationId: string) {\r\n const index = this.distributionRatioVariables.indexOf(this.findDistributionRatioVariable(unitOperationId));\r\n\r\n if (index >= 0) {\r\n this.distributionRatioVariables.splice(index, 1);\r\n }\r\n }\r\n\r\n setOptimizable(isOptimizable: boolean) {\r\n this.isOptimizable = isOptimizable;\r\n }\r\n\r\n override dePersist(sup: any) {\r\n super.dePersist(sup);\r\n this.productVolume = this.getSimulationVariableSafe(sup.productVolume);\r\n this.inventory = this.getSimulationVariableSafe(sup.inventory);\r\n\r\n this.maxVolume = this.getSimulationVariableSafe(sup.maxVolume);\r\n this.minVolume = this.getSimulationVariableSafe(sup.minVolume);\r\n this.initialVolume = this.getSimulationVariableSafe(sup.initialVolume);\r\n\r\n this.setQuantities();\r\n this.setDefaultValues();\r\n }\r\n}\r\n","/* eslint-disable max-len */\r\nexport const DEFAULT_HYDROCRACKER_MODEL =\r\n '// Variables available to user: \\n' +\r\n '// \"Inletccrpercent\" : CCR of the feed in wt%\\n' +\r\n '// \"InletSpecificGravity\" : Specific gravity of the feed\\n' +\r\n '// \"WatsonK\" : UOP Watson K factor of the feed\\n' +\r\n '// \"H2MassPercent\" : Hydrogen use as wt% of the feed\\n' +\r\n '// GetStreamFlowRate (string MaterialStreamName, FlowrateBasis basis)\\n' +\r\n '// Gets the MaterialStreamName and \"FlowrateBasis\" and return the flowrate\\n' +\r\n '// Valid Options for FlowrateBasis: \\n' +\r\n '// FlowrateBasis.Mass (returns in TPD)| FlowrateBasis.Volume (returns in kbpcd)\\n' +\r\n '// GetStreamVolumetricFlowRate(string MaterialStreamName) \\n' +\r\n '// Gets the MaterialStreamName as string and returns the volumetric Flowrate of any stream in the flowsheet\\n' +\r\n '// GetStreamCutFlowRate(string streamName, SuncorCuts suncorCut, FlowrateBasis basis)\\n' +\r\n '// Gets streamName, SuncorCut and Flowrate basis and returns the cut flowrate for the given stream\\n ' +\r\n '// Valid options for SuncorCut:\\n ' +\r\n '// SuncorCuts.LightEnd, SuncorCuts.LightNaphta, SuncorCuts.HeavyNaphta, \\n' +\r\n '// SuncorCuts.Distillate, SuncorCuts.LightGasOil, SuncorCuts.HeavyGasOil, \\n' +\r\n '// SuncorCuts.VacGasOil, SuncorCuts.HeavyVacGasOil, SuncorCuts.VacuumResidue \\n' +\r\n '// Calculated Variables:\\n' +\r\n '// Yield parameters (all calculated in wt%)\\n' +\r\n '// \"DiluentYield\" , \"NaphtaYield\" , \"LGOYield\", \"HGOYield\", \"ResidueYield\"\\n' +\r\n '// Properties:\\n' +\r\n '// \"NaphtaAPI, \"LGOAPI\", \"HGOAPI\", \"ResidueAPI\"\\n' +\r\n '// \"NaphtaSulfur\", \"LGOSulfur\", \"HGOSulfur\", \"ResidueOilSulfur\" (in wt%)\\n' +\r\n '// \"NaphtaNitrogen\", \"LGONitrogen\", \"HGONitrogen\", \"ResidueNitrogen\" (in ppmw)\\n' +\r\n 'double vh = 0.6621 * H2MassPercent * InletSpecificGravity;\\n' +\r\n 'double inletAPI = 141.5 / InletSpecificGravity - 131.5;\\n' +\r\n 'double gasolineYieldLVPercent = -0.03734 * (inletAPI * inletAPI) + 1.57575 * inletAPI + 0.014923 * WatsonK - 1.36473 * vh - 0.16324 * (vh / WatsonK);\\n' +\r\n 'DiluentYield = 0.8672 * gasolineYieldLVPercent - 0.9969; // in wt%\\n' +\r\n 'double c4YieldLVPercent = 0.020359 * (gasolineYieldLVPercent * gasolineYieldLVPercent) + 0.04888 * gasolineYieldLVPercent+ 0.108964 * inletAPI;\\n' +\r\n 'double c4YieldWtPercent = 0.8672 * c4YieldLVPercent - 0.5;\\n' +\r\n 'double naphthaYieldLVPercent = -0.10322 * (gasolineYieldLVPercent * gasolineYieldLVPercent) + 2.981215 * gasolineYieldLVPercent - 0.07898 * inletAPI;\\n' +\r\n 'NaphtaYield = 0.8672 * naphthaYieldLVPercent - 0.9969; // in wt%\\n' +\r\n 'LGOYield = (100.0 + H2MassPercent - NaphtaYield - c4YieldWtPercent - DiluentYield) * 0.41; // in wt%\\n' +\r\n 'HGOYield = (100.0 + H2MassPercent - NaphtaYield - c4YieldWtPercent - DiluentYield) * 0.41; // in wt%\\n' +\r\n 'ResidueYield = (100.0 + H2MassPercent - NaphtaYield - c4YieldWtPercent - DiluentYield) * (1.0 - 0.41); // in wt%\\n' +\r\n 'NaphtaAPI = 0.0217 * Inletccrpercent + 55.018;\\n' +\r\n '//All gas oil components (LGO, HGO, VGO, HVGO) are assumed to have the same Density\\n' +\r\n 'LGOAPI = -0.295 * Inletccrpercent + 14.438;\\n' +\r\n 'HGOAPI = -0.295 * Inletccrpercent + 14.438;\\n' +\r\n 'ResidueAPI = -0.295 * Inletccrpercent + 14.438;\\n' +\r\n 'NaphtaSulfur = 0.0026 * Inletccrpercent + 1.796;\\n' +\r\n '//All gas oil components (LGO,. HGO, VGO, HVGO) are assumed to have the same sulfur content\\n' +\r\n 'LGOSulfur = 0.1319 * Inletccrpercent + 2.1964;\\n' +\r\n 'HGOSulfur = 0.1319 * Inletccrpercent + 2.1964;\\n' +\r\n 'ResidueSulfur = 0.1319 * Inletccrpercent + 2.1964;\\n' +\r\n 'NaphtaNitrogen = 3.8236 * Inletccrpercent + 82.464;\\n' +\r\n '//All gas oil components (LGO, HGO, VGO, HVGO) are assumed to have the same Nitrogen content\\n' +\r\n 'LGONitrogen = 44.724 * Inletccrpercent + 2931.7;\\n' +\r\n 'HGONitrogen = 44.724 * Inletccrpercent + 2931.7;\\n' +\r\n 'ResidueNitrogen = 44.724 * Inletccrpercent + 2931.7;';\r\n","import { ConstrainableObject } from '../_interfaces/constrainable-object';\r\nimport { SimulationVariable } from '../simulation-variable';\r\nimport { UnitOperationConstraints } from './unit-operation-constraints';\r\nimport { Case } from '../case';\r\n// @ts-ignore\r\nimport { DEFAULT_HYDROCRACKER_MODEL } from '../../_config/unit-operations/default-models/default-hydrocracker-model';\r\nimport { Quantity } from '../../_config/quantity.enum';\r\nimport { SimulationVariableName } from '../../_config/simulation-variable-name.enum';\r\nimport { KpiProvider } from '../_case-study/kpi-provider';\r\nimport { GasContributorUnitOperation } from './gas-contributor-unit-operation';\r\nimport { MultiPeriodParameterProvider } from '../_multi-period/multi-period-parameter-provider';\r\nimport { ParameterProvider } from '../_case-study/parameter-provider';\r\nimport { unitOperationsConfig } from '../../_config/unit-operations.config';\r\n\r\ndeclare let unitConverter: any;\r\n\r\nexport class Hydrocracker\r\n extends GasContributorUnitOperation\r\n implements ConstrainableObject, MultiPeriodParameterProvider, KpiProvider, ParameterProvider\r\n{\r\n category = unitOperationsConfig.hydrocracker.key;\r\n volumetricYield: SimulationVariable;\r\n useCustomModel: boolean;\r\n modelScript: string;\r\n hydrogenUse: SimulationVariable;\r\n hydrogenUseRate: SimulationVariable;\r\n h2sProductionRate: SimulationVariable;\r\n h2sProduction: SimulationVariable;\r\n minimumAPI: SimulationVariable;\r\n maximumCCR: SimulationVariable;\r\n\r\n constraints: UnitOperationConstraints;\r\n constructor(unitOperation: any, ownerCase: Case) {\r\n super(unitOperation, ownerCase);\r\n this.initValues(unitOperation);\r\n this.setSimulationVariableNames();\r\n }\r\n\r\n getAvailableKpis(): SimulationVariable[] {\r\n if (this.ownerCase.multiPeriodEnabled) {\r\n return [\r\n this.ghgIntensity,\r\n this.ghgEmissions,\r\n this.hydrogenUse,\r\n this.h2sProductionRate,\r\n this.h2sProduction,\r\n this.opexTotal,\r\n this.capexTotal,\r\n ];\r\n }\r\n return [\r\n this.ghgIntensity,\r\n this.ghgEmissions,\r\n this.hydrogenUse,\r\n this.h2sProductionRate,\r\n this.h2sProduction,\r\n this.steamUse900,\r\n this.steamMake900,\r\n this.steamMake600,\r\n this.steamUse600,\r\n this.steamMake150,\r\n this.steamUse150,\r\n this.steamMake50,\r\n this.steamUse50,\r\n this.opexTotal,\r\n this.capexTotal,\r\n this.fuelGasHeatingValue,\r\n this.fuelGasEmissionFactor,\r\n this.energyFlow,\r\n this.flowrate,\r\n ];\r\n }\r\n\r\n getAvailableParametricStudyParameters(): SimulationVariable[] {\r\n return [\r\n this.hydrogenUseRate,\r\n this.h2sProductionRate,\r\n this.opexVar,\r\n this.opexGasDiesel,\r\n this.opexPower,\r\n this.opexFixed,\r\n this.capexAmortized,\r\n ];\r\n }\r\n\r\n getAvailableParameters() {\r\n return undefined;\r\n }\r\n\r\n getAlternativeGhgIntensity(): SimulationVariable {\r\n return undefined;\r\n }\r\n\r\n override initValues(unitOperation: any): void {\r\n super.initValues(unitOperation);\r\n this.volumetricYield = new SimulationVariable(unitOperation.volumetricYield, this.ownerCase, this);\r\n this.hydrogenUse = new SimulationVariable(unitOperation.hydrogenUse || {}, this.ownerCase, this);\r\n this.hydrogenUseRate = new SimulationVariable(unitOperation.hydrogenUseRate || {}, this.ownerCase, this);\r\n this.h2sProductionRate = new SimulationVariable(unitOperation.h2sProductionRate || {}, this.ownerCase, this);\r\n this.h2sProduction = new SimulationVariable(unitOperation.h2sProduction || {}, this.ownerCase, this);\r\n this.minimumAPI = new SimulationVariable(unitOperation.minimumAPI || {}, this.ownerCase, this);\r\n this.maximumCCR = new SimulationVariable(unitOperation.maximumCCR || {}, this.ownerCase, this);\r\n if (typeof unitOperation.useCustomModel === 'undefined') {\r\n this.useCustomModel = false;\r\n } else {\r\n this.useCustomModel = unitOperation.useCustomModel;\r\n }\r\n this.modelScript =\r\n typeof unitOperation.modelScript === 'undefined' ? DEFAULT_HYDROCRACKER_MODEL : unitOperation.modelScript;\r\n this.initConstraints();\r\n }\r\n\r\n initConstraints() {\r\n this.constraints = new UnitOperationConstraints();\r\n this.constraints.addConstraint('capacity', this.capacity);\r\n this.constraints.addConstraint('minimumFlow', this.minimumFlow);\r\n this.constraints.addConstraint('minimumAPI', this.minimumAPI);\r\n this.constraints.addConstraint('maximumCCR', this.maximumCCR);\r\n }\r\n\r\n override setQuantities() {\r\n super.setQuantities();\r\n this.hydrogenUse.setQuantity(Quantity.MOLEFLOWRATE);\r\n this.hydrogenUseRate.setQuantity(Quantity.GAS_STD_VOLUME_PER_VOLUME);\r\n this.h2sProduction.setQuantity(Quantity.MOLEFLOWRATE);\r\n this.h2sProductionRate.setQuantity(Quantity.GAS_STD_VOLUME_PER_VOLUME);\r\n this.volumetricYield.setQuantity('Percent');\r\n this.minimumAPI.setQuantity('LiquidDensity');\r\n this.maximumCCR.setQuantity('MassFraction');\r\n }\r\n\r\n override dePersist(sup: any) {\r\n super.dePersist(sup);\r\n this.volumetricYield = this.getSimulationVariableSafe(sup.volumetricYield);\r\n this.hydrogenUse = this.getSimulationVariableSafe(sup.hydrogenUse);\r\n this.hydrogenUseRate = this.getSimulationVariableSafe(sup.hydrogenUseRate);\r\n this.h2sProduction = this.getSimulationVariableSafe(sup.h2sProduction);\r\n this.h2sProductionRate = this.getSimulationVariableSafe(sup.h2sProductionRate);\r\n this.minimumAPI = this.getSimulationVariableSafe(sup.minimumAPI);\r\n this.maximumCCR = this.getSimulationVariableSafe(sup.maximumCCR);\r\n this.setQuantities();\r\n this.setDefaultValues();\r\n this.initConstraints();\r\n }\r\n\r\n override setDefaultValues(): void {\r\n super.setDefaultValues();\r\n if (this.energyFlow.isUndefined()) {\r\n this.energyFlow.setDefaultValue(0.0, unitConverter.units.Energyrate.GJ_H);\r\n }\r\n }\r\n\r\n constraintViolated() {\r\n const inletStream = this.ownerCase.filterSuncorMaterialStreams(s => {\r\n return s.outletUnitOperationId === this.id;\r\n })[0];\r\n\r\n return inletStream && this.constraints.constraintValueViolated('capacity', inletStream.volumetricFlowrate.value);\r\n }\r\n\r\n override clearResults() {\r\n super.clearResults();\r\n this.hydrogenUse.value = null;\r\n this.h2sProduction.value = null;\r\n }\r\n\r\n constraintValueDefined() {\r\n return this.constraints.anyConstraintValueDefined();\r\n }\r\n\r\n override setSimulationVariableNames() {\r\n super.setSimulationVariableNames();\r\n this.volumetricYield.setName('Volumetric Yield');\r\n this.maximumCCR.setName(SimulationVariableName.MAXIMUM_CCR);\r\n this.minimumAPI.setName(SimulationVariableName.MINIMUM_API);\r\n this.hydrogenUse.setName('Hydrogen Use');\r\n this.hydrogenUseRate.setName(SimulationVariableName.HYDROGEN_USE_RATE);\r\n this.opexTotal.setName('Total OPEX');\r\n this.capexTotal.setName('Total CAPEX');\r\n this.h2sProductionRate.setName('H2S Production Rate');\r\n this.h2sProduction.setName('H2S Production');\r\n this.steamMake900.setName('#900 Steam Make');\r\n this.steamUse900.setName('#900 Steam Use');\r\n this.steamMake600.setName('#600 Steam Make');\r\n this.steamUse600.setName('#600 Steam Use');\r\n this.steamMake150.setName('#150 Steam Make');\r\n this.steamUse150.setName('#150 Steam Use');\r\n this.steamMake50.setName('#50 Steam Make');\r\n this.steamUse50.setName('#50 Steam Use');\r\n this.capacity.setName(SimulationVariableName.CAPACITY);\r\n this.fuelGasHeatingValue.setName(SimulationVariableName.FUEL_GAS_HEATING_VALUE);\r\n this.fuelGasEmissionFactor.setName(SimulationVariableName.FUEL_GAS_EMISSION_FACTOR);\r\n this.energyFlow.setName(SimulationVariableName.ENERGY_FLOW);\r\n this.flowrate.setName(SimulationVariableName.FUEL_GAS_FLOWRATE);\r\n }\r\n\r\n getAvailableMultiPeriodParameters(): SimulationVariable[] {\r\n return [this.capacity];\r\n }\r\n\r\n override detectChanges(another: any): boolean {\r\n const changes = super.detectChanges(another);\r\n return changes || another.modelScript !== this.modelScript;\r\n }\r\n}\r\n","import { SuncorUnitOperation } from './suncor-unit-operation';\r\nimport { IUnitOperation } from '../i-unit-operation';\r\nimport { SimulationVariable } from '../simulation-variable';\r\nimport { Case } from '../case';\r\nimport { BaseObject } from '../base-object';\r\nimport { isTypeUndefined } from '../../_utils/utils';\r\nimport { ParameterProvider } from '../_case-study/parameter-provider';\r\nimport { unitOperationsConfig } from '../../_config/unit-operations.config';\r\n\r\nexport class Extraction extends SuncorUnitOperation implements IUnitOperation, ParameterProvider {\r\n category = unitOperationsConfig.extraction.key;\r\n\r\n yield: SimulationVariable;\r\n bitumenLossToTailing: SimulationVariable;\r\n price: SimulationVariable;\r\n fluidAnalysisId: string;\r\n\r\n useSubFlowsheet: boolean;\r\n\r\n constructor(unitOperation: any, ownerCase: Case) {\r\n super(unitOperation, ownerCase);\r\n this.initValues(unitOperation);\r\n this.setSimulationVariableNames();\r\n }\r\n\r\n override clearResults() {\r\n super.clearResults();\r\n this.ghgEmissions.value = null;\r\n this.unitValue.value = null;\r\n this.opexCarbonDioxide.value = null;\r\n this.opexTotal.value = null;\r\n this.capexTotal.value = null;\r\n }\r\n\r\n override initValues(unitOperation: any): void {\r\n super.initValues(unitOperation);\r\n this.yield = new SimulationVariable(unitOperation.yield, this.ownerCase, this);\r\n this.bitumenLossToTailing = new SimulationVariable(unitOperation.bitumenLossToTailing, this.ownerCase, this);\r\n this.price = new SimulationVariable(unitOperation.price, this.ownerCase, this);\r\n this.fluidAnalysisId = unitOperation.fluidAnalysisId || '';\r\n this.useSubFlowsheet = isTypeUndefined(unitOperation.useSubFlowsheet) ? false : unitOperation.useSubFlowsheet;\r\n }\r\n\r\n override addSimVarsToPool() {\r\n super.addSimVarsToPool();\r\n }\r\n\r\n override overwriteValues(another: BaseObject) {\r\n super.overwriteValues(another);\r\n }\r\n\r\n protected override ignoreForOverWrite(propertyName: string): boolean {\r\n return super.ignoreForOverWrite(propertyName);\r\n }\r\n\r\n override setSimulationVariableNames(): void {\r\n super.setSimulationVariableNames();\r\n this.yield.setName('Yield');\r\n this.bitumenLossToTailing.setName('Bitumen Loss to Tailing');\r\n this.price.setName('Price');\r\n }\r\n\r\n override setQuantities() {\r\n super.setQuantities();\r\n this.yield.setQuantity('Percent');\r\n this.bitumenLossToTailing.setQuantity('Massflowrate');\r\n this.price.setQuantity('CurrencyPerVolume');\r\n }\r\n\r\n override setDefaultValues(): void {\r\n if (this.yield.isUndefined()) {\r\n this.yield.setDefaultValue(95.0);\r\n }\r\n if (this.price.isUndefined()) {\r\n this.price.setDefaultValue(50.0);\r\n }\r\n super.setDefaultValues();\r\n }\r\n\r\n getAvailableParametricStudyParameters(): SimulationVariable[] {\r\n return [this.yield, this.ghgIntensity, this.price, this.opexFixed, this.opexVar, this.capexAmortized];\r\n }\r\n\r\n getAvailableParameters() {\r\n return [this.ghgIntensity, this.price, this.opexVar, this.opexFixed];\r\n }\r\n\r\n override ignoreForMakeReady(simvar: SimulationVariable): boolean {\r\n return super.ignoreForMakeReady(simvar) || simvar === this.capacity || simvar === this.minimumFlow;\r\n }\r\n\r\n override get isFlowsheetOwner() {\r\n return true;\r\n }\r\n\r\n override dePersist(sup: any) {\r\n super.dePersist(sup);\r\n this.yield = this.getSimulationVariableSafe(sup.yield);\r\n this.bitumenLossToTailing = this.getSimulationVariableSafe(sup.bitumenLossToTailing);\r\n this.price = this.getSimulationVariableSafe(sup.price);\r\n\r\n this.setQuantities();\r\n this.setDefaultValues();\r\n }\r\n\r\n getAlternativeGhgIntensity(): SimulationVariable {\r\n return new SimulationVariable(this.ghgIntensity, this.ownerCase, this);\r\n }\r\n}\r\n","import { SimulationVariable } from '../simulation-variable';\r\nimport { Case } from '../case';\r\nimport { UnitOperation } from '../unit-operation';\r\n\r\nexport class InletTransferUnit extends UnitOperation {\r\n category = 'inlet-transfer-unit';\r\n\r\n constructor(unitOperation: any, ownerCase: Case) {\r\n super(unitOperation, ownerCase);\r\n this.initValues(unitOperation);\r\n this.setSimulationVariableNames();\r\n }\r\n\r\n // empty methods so errors aren't generated\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n override initValues(unitOperation: any) {}\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n override dePersist(serializedUnitOperation: any) {}\r\n\r\n override setSimulationVariableNames() {}\r\n\r\n getAlternativeGhgIntensity(): SimulationVariable {\r\n return undefined;\r\n }\r\n\r\n override setQuantities() {}\r\n\r\n override clearResults() {}\r\n\r\n override setDefaultValues() {}\r\n}\r\n","import { SimulationVariable } from '../simulation-variable';\r\nimport { Case } from '../case';\r\nimport { UnitOperation } from '../unit-operation';\r\n\r\nexport class OutletTransferUnit extends UnitOperation {\r\n category = 'outlet-transfer-unit';\r\n\r\n constructor(unitOperation: any, ownerCase: Case) {\r\n super(unitOperation, ownerCase);\r\n this.initValues(unitOperation);\r\n this.setSimulationVariableNames();\r\n }\r\n\r\n // empty methods so errors aren't generated\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n override initValues(unitOperation: any) {}\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n override dePersist(serializedUnitOperation: any) {}\r\n\r\n override setSimulationVariableNames() {}\r\n\r\n getAlternativeGhgIntensity(): SimulationVariable {\r\n return undefined;\r\n }\r\n\r\n override setQuantities() {}\r\n\r\n override clearResults() {}\r\n\r\n override setDefaultValues() {}\r\n}\r\n","import { UnitOperation } from '../../unit-operation';\r\nimport { IUnitOperation } from '../../i-unit-operation';\r\n\r\nexport abstract class WaterUnitOperation extends UnitOperation implements IUnitOperation {\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n override initValues(unitOperation: any) {}\r\n\r\n override setSimulationVariableNames() {}\r\n\r\n override setDefaultValues(): void {}\r\n\r\n override setQuantities() {}\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n override dePersist(unitOperation: any) {\r\n this.setQuantities();\r\n }\r\n}\r\n","import { WaterUnitOperation } from './water-unit-operation';\r\nimport { Case } from '../../case';\r\nimport { unitOperationsConfig } from '../../../_config/unit-operations.config';\r\nimport { SimulationVariable } from '../../simulation-variable';\r\nimport { Quantity } from '../../../_config/quantity.enum';\r\nimport { BaseObject } from '../../base-object';\r\nimport { VariableStatus } from '../../../_config/variable-status.enum';\r\nimport { SimulationVariableName } from '../../../_config/simulation-variable-name.enum';\r\nimport { KpiProvider } from '../../_case-study/kpi-provider';\r\nimport { ParameterProvider } from '../../_case-study/parameter-provider';\r\n\r\ndeclare let unitConverter: any;\r\n\r\nexport class WaterSource extends WaterUnitOperation implements KpiProvider, ParameterProvider {\r\n category = unitOperationsConfig.waterSource.key;\r\n massFlowrate: SimulationVariable;\r\n temperature: SimulationVariable;\r\n pressure: SimulationVariable;\r\n vaporFraction: SimulationVariable;\r\n isOptimizable: boolean;\r\n\r\n constructor(unitOperation: any | WaterSource, ownerCase: Case) {\r\n super(unitOperation, ownerCase);\r\n this.initValues(unitOperation);\r\n this.setSimulationVariableNames();\r\n }\r\n\r\n override initValues(unitOperation: any) {\r\n super.initValues(unitOperation);\r\n this.massFlowrate = new SimulationVariable(unitOperation.massFlowrate, this.ownerCase, this);\r\n this.temperature = new SimulationVariable(unitOperation.temperature, this.ownerCase, this);\r\n this.pressure = new SimulationVariable(unitOperation.pressure, this.ownerCase, this);\r\n this.vaporFraction = new SimulationVariable(unitOperation.vaporFraction, this.ownerCase, this);\r\n\r\n if (typeof unitOperation.isOptimizable === 'undefined') {\r\n this.isOptimizable = false;\r\n } else {\r\n this.isOptimizable = !!unitOperation.isOptimizable;\r\n }\r\n }\r\n\r\n override clearResults() {\r\n super.clearResults();\r\n\r\n if (this.isOptimizable) {\r\n this.massFlowrate.value = undefined;\r\n }\r\n\r\n if (this.temperature.variableStatus === VariableStatus.SOLVER_CALCULATED) {\r\n this.temperature.value = undefined;\r\n } else if (this.pressure.variableStatus === VariableStatus.SOLVER_CALCULATED) {\r\n this.pressure.value = undefined;\r\n } else if (this.vaporFraction.variableStatus === VariableStatus.SOLVER_CALCULATED) {\r\n this.vaporFraction.value = undefined;\r\n }\r\n }\r\n\r\n override overwriteValues(another: BaseObject) {\r\n super.overwriteValues(another);\r\n const ws = another as WaterSource;\r\n this.isOptimizable = ws.isOptimizable;\r\n }\r\n\r\n override setSimulationVariableNames() {\r\n super.setSimulationVariableNames();\r\n this.massFlowrate.setName(SimulationVariableName.MASS_FLOWRATE);\r\n this.temperature.setName(SimulationVariableName.TEMPERATURE);\r\n this.pressure.setName(SimulationVariableName.PRESSURE);\r\n this.vaporFraction.setName(SimulationVariableName.VAPOR_FRACTION);\r\n }\r\n\r\n override setQuantities() {\r\n super.setQuantities();\r\n this.massFlowrate.setQuantity(Quantity.MASSFLOWRATE);\r\n this.temperature.setQuantity(Quantity.TEMPERATURE);\r\n this.pressure.setQuantity(Quantity.PRESSURE);\r\n this.vaporFraction.setQuantity(Quantity.FRACTION);\r\n }\r\n\r\n override setDefaultValues() {\r\n super.setDefaultValues();\r\n\r\n if (this.massFlowrate.isUndefined()) {\r\n this.massFlowrate.setDefaultValue(null, unitConverter.units.Massflowrate.KPPH);\r\n }\r\n }\r\n\r\n getAvailableKpis(): SimulationVariable[] {\r\n return [this.massFlowrate, this.temperature, this.pressure, this.vaporFraction];\r\n }\r\n\r\n getAvailableParametricStudyParameters(): SimulationVariable[] {\r\n return [this.massFlowrate, this.temperature, this.pressure, this.vaporFraction];\r\n }\r\n\r\n getAvailableParameters() {\r\n return undefined;\r\n }\r\n\r\n override dePersist(sup: any) {\r\n super.dePersist(sup);\r\n this.massFlowrate = this.getSimulationVariableSafe(sup.massFlowrate);\r\n this.temperature = this.getSimulationVariableSafe(sup.temperature);\r\n this.pressure = this.getSimulationVariableSafe(sup.pressure);\r\n this.vaporFraction = this.getSimulationVariableSafe(sup.vaporFraction);\r\n this.isOptimizable = sup.isOptimizable;\r\n\r\n this.setQuantities();\r\n this.setDefaultValues();\r\n }\r\n}\r\n","export enum WaterHeatExchangerConfiguration {\r\n COUNTER_CURRENT = 'Counter-current',\r\n CO_CURRENT = 'Co-current',\r\n}\r\n","export enum WaterHeatExchangerTemperatureCalculationMode {\r\n OUTLET_TEMPERATURE_TUBE = 'Outlet Temperature - Tube',\r\n OUTLET_TEMPERATURE_SHELL = 'Outlet Temperature - Shell',\r\n UA = 'UA',\r\n}\r\n","import { unitOperationsConfig } from '../../../_config/unit-operations.config';\r\nimport { Case } from '../../case';\r\nimport { WaterUnitOperation } from './water-unit-operation';\r\nimport { WaterHeatExchangerConfiguration } from '../../../_config/water-heat-exchanger-configuration.enum';\r\nimport { WaterHeatExchangerTemperatureCalculationMode } from '../../../_config/water-heat-exchanger-temperature-calculation-mode.enum';\r\nimport { SimulationVariable } from '../../simulation-variable';\r\nimport { Quantity } from '../../../_config/quantity.enum';\r\nimport { SimulationVariableName } from '../../../_config/simulation-variable-name.enum';\r\nimport { KpiProvider } from '../../_case-study/kpi-provider';\r\nimport { ParameterProvider } from '../../_case-study/parameter-provider';\r\n\r\ndeclare let unitConverter: any;\r\n\r\nexport class WaterHeatExchanger extends WaterUnitOperation implements KpiProvider, ParameterProvider {\r\n category = unitOperationsConfig.waterHeatExchanger.key;\r\n\r\n configuration: WaterHeatExchangerConfiguration | string;\r\n temperatureCalculationMode: WaterHeatExchangerTemperatureCalculationMode | string;\r\n outletTemperature: SimulationVariable;\r\n pressureDropTube: SimulationVariable;\r\n pressureDropShell: SimulationVariable;\r\n geometryFactor: SimulationVariable;\r\n\r\n duty: SimulationVariable;\r\n ua: SimulationVariable;\r\n\r\n uaResult: SimulationVariable;\r\n\r\n lmtd: SimulationVariable;\r\n\r\n constructor(unitOperation: any | WaterHeatExchanger, ownerCase: Case) {\r\n super(unitOperation, ownerCase);\r\n this.initValues(unitOperation);\r\n this.setSimulationVariableNames();\r\n }\r\n\r\n override initValues(unitOperation: any) {\r\n super.initValues(unitOperation);\r\n this.configuration = unitOperation.configuration || '';\r\n this.temperatureCalculationMode = unitOperation.temperatureCalculationMode || '';\r\n this.outletTemperature = new SimulationVariable(unitOperation.outletTemperature, this.ownerCase, this);\r\n this.pressureDropTube = new SimulationVariable(unitOperation.pressureDropTube, this.ownerCase, this);\r\n this.pressureDropShell = new SimulationVariable(unitOperation.pressureDropShell, this.ownerCase, this);\r\n this.geometryFactor = new SimulationVariable(unitOperation.geometryFactor, this.ownerCase, this);\r\n\r\n this.duty = new SimulationVariable(unitOperation.duty, this.ownerCase, this);\r\n this.ua = new SimulationVariable(unitOperation.ua, this.ownerCase, this);\r\n\r\n this.uaResult = new SimulationVariable(unitOperation.uaResult, this.ownerCase, this);\r\n\r\n this.lmtd = new SimulationVariable(unitOperation.lmtd, this.ownerCase, this);\r\n }\r\n\r\n override clearResults() {\r\n super.clearResults();\r\n this.duty.value = null;\r\n this.uaResult.value = null;\r\n this.lmtd.value = null;\r\n }\r\n\r\n override setSimulationVariableNames() {\r\n super.setSimulationVariableNames();\r\n this.outletTemperature.setName(SimulationVariableName.OUTLET_TEMPERATURE);\r\n this.pressureDropTube.setName(SimulationVariableName.PRESSURE_DROP_TUBE);\r\n this.pressureDropShell.setName(SimulationVariableName.PRESSURE_DROP_SHELL);\r\n this.geometryFactor.setName(SimulationVariableName.GEOMETRY_FACTOR);\r\n\r\n this.duty.setName(SimulationVariableName.DUTY);\r\n this.ua.setName(SimulationVariableName.UA);\r\n\r\n this.uaResult.setName(SimulationVariableName.UA_RESULT);\r\n\r\n this.lmtd.setName(SimulationVariableName.LMTD);\r\n }\r\n\r\n override setQuantities() {\r\n super.setQuantities();\r\n this.outletTemperature.setQuantity(Quantity.TEMPERATURE);\r\n this.pressureDropTube.setQuantity(Quantity.DELTA_PRESSURE);\r\n this.pressureDropShell.setQuantity(Quantity.DELTA_PRESSURE);\r\n this.geometryFactor.setQuantity(Quantity.DIMENSIONLESS);\r\n\r\n this.duty.setQuantity(Quantity.POWER);\r\n this.ua.setQuantity(Quantity.UA);\r\n\r\n this.uaResult.setQuantity(Quantity.UA);\r\n\r\n this.lmtd.setQuantity(Quantity.DELTA_TEMPERATURE);\r\n }\r\n\r\n override setDefaultValues() {\r\n super.setDefaultValues();\r\n if (this.configuration === '') {\r\n this.configuration = WaterHeatExchangerConfiguration.COUNTER_CURRENT;\r\n }\r\n if (this.temperatureCalculationMode === '') {\r\n this.temperatureCalculationMode = WaterHeatExchangerTemperatureCalculationMode.OUTLET_TEMPERATURE_TUBE;\r\n }\r\n if (this.outletTemperature.isUndefined()) {\r\n this.outletTemperature.setDefaultValue(null, unitConverter.units.Temperature.CELSIUS);\r\n }\r\n if (this.pressureDropTube.isUndefined()) {\r\n this.pressureDropTube.setDefaultValue(0.0);\r\n }\r\n if (this.pressureDropShell.isUndefined()) {\r\n this.pressureDropShell.setDefaultValue(0.0);\r\n }\r\n if (this.geometryFactor.isUndefined()) {\r\n this.geometryFactor.setDefaultValue(1.0);\r\n }\r\n if (this.ua.isUndefined()) {\r\n this.ua.setDefaultValue(null);\r\n }\r\n\r\n if (this.uaResult.isUndefined()) {\r\n this.uaResult.setDefaultValue(null);\r\n }\r\n }\r\n\r\n getAvailableKpis(): SimulationVariable[] {\r\n if (this.ownerCase.multiPeriodEnabled) {\r\n return [this.outletTemperature, this.duty, this.ua];\r\n }\r\n return [\r\n this.outletTemperature,\r\n this.pressureDropTube,\r\n this.pressureDropShell,\r\n this.geometryFactor,\r\n this.duty,\r\n this.ua,\r\n this.lmtd,\r\n ];\r\n }\r\n\r\n getAvailableParametricStudyParameters(): SimulationVariable[] {\r\n return [this.pressureDropTube, this.pressureDropShell, this.geometryFactor];\r\n }\r\n\r\n getAvailableParameters() {\r\n return undefined;\r\n }\r\n\r\n override dePersist(sup: any) {\r\n super.dePersist(sup);\r\n\r\n this.outletTemperature = this.getSimulationVariableSafe(sup.outletTemperature);\r\n this.pressureDropTube = this.getSimulationVariableSafe(sup.pressureDropTube);\r\n this.pressureDropShell = this.getSimulationVariableSafe(sup.pressureDropShell);\r\n this.geometryFactor = this.getSimulationVariableSafe(sup.geometryFactor);\r\n this.duty = this.getSimulationVariableSafe(sup.duty);\r\n this.ua = this.getSimulationVariableSafe(sup.ua);\r\n\r\n this.uaResult = this.getSimulationVariableSafe(sup.uaResult);\r\n\r\n this.lmtd = this.getSimulationVariableSafe(sup.lmtd);\r\n\r\n this.setQuantities();\r\n this.setDefaultValues();\r\n }\r\n}\r\n","export enum PressureCalculationMode {\r\n PRESSURE_GAIN = 'Pressure Gain',\r\n PRESSURE_DROP = 'Pressure Drop',\r\n OUTLET_PRESSURE = 'Outlet Pressure',\r\n DUTY = 'Duty',\r\n LOWEST = 'Lowest',\r\n}\r\n","import { unitOperationsConfig } from '../../../_config/unit-operations.config';\r\nimport { Case } from '../../case';\r\nimport { WaterUnitOperation } from './water-unit-operation';\r\nimport { SimulationVariable } from '../../simulation-variable';\r\nimport { PressureCalculationMode } from '../../../_config/pressure-calculation-mode.enum';\r\nimport { Quantity } from '../../../_config/quantity.enum';\r\nimport { BaseObject } from '../../base-object';\r\nimport { UnitOperationConstraints } from '../unit-operation-constraints';\r\nimport { SimulationVariableName } from '../../../_config/simulation-variable-name.enum';\r\nimport { KpiProvider } from '../../_case-study/kpi-provider';\r\nimport { ParameterProvider } from '../../_case-study/parameter-provider';\r\n\r\ndeclare let unitConverter: any;\r\n\r\nexport class WaterTurbine extends WaterUnitOperation implements KpiProvider, ParameterProvider {\r\n category = unitOperationsConfig.waterTurbine.key;\r\n\r\n pressureCalculationMode: PressureCalculationMode | string;\r\n pressureDrop: SimulationVariable;\r\n outletPressure: SimulationVariable;\r\n duty: SimulationVariable;\r\n isentropicEfficiency: SimulationVariable;\r\n pressureRatio: SimulationVariable;\r\n polytropicEfficiency: SimulationVariable;\r\n\r\n dutyResult: SimulationVariable;\r\n\r\n massCapacity: SimulationVariable;\r\n minimumMassFlowrate: SimulationVariable;\r\n\r\n minimumDuty: SimulationVariable;\r\n maximumDuty: SimulationVariable;\r\n\r\n constraints: UnitOperationConstraints;\r\n\r\n constructor(unitOperation: any | WaterTurbine, ownerCase: Case) {\r\n super(unitOperation, ownerCase);\r\n this.initValues(unitOperation);\r\n this.setSimulationVariableNames();\r\n }\r\n\r\n override initValues(unitOperation: any): void {\r\n super.initValues(unitOperation);\r\n this.pressureCalculationMode = unitOperation.pressureCalculationMode || '';\r\n this.pressureDrop = new SimulationVariable(unitOperation.pressureDrop, this.ownerCase, this);\r\n this.outletPressure = new SimulationVariable(unitOperation.outletPressure, this.ownerCase, this);\r\n this.duty = new SimulationVariable(unitOperation.duty, this.ownerCase, this);\r\n this.isentropicEfficiency = new SimulationVariable(unitOperation.isentropicEfficiency, this.ownerCase, this);\r\n this.polytropicEfficiency = new SimulationVariable(unitOperation.polytropicEfficiency, this.ownerCase, this);\r\n this.pressureRatio = new SimulationVariable(unitOperation.pressureRatio, this.ownerCase, this);\r\n\r\n this.dutyResult = new SimulationVariable(unitOperation.dutyResult, this.ownerCase, this);\r\n\r\n this.massCapacity = new SimulationVariable(unitOperation.massCapacity, this.ownerCase, this);\r\n this.minimumMassFlowrate = new SimulationVariable(unitOperation.minimumMassFlowrate, this.ownerCase, this);\r\n this.minimumDuty = new SimulationVariable(unitOperation.minimumDuty, this.ownerCase, this);\r\n this.maximumDuty = new SimulationVariable(unitOperation.maximumDuty, this.ownerCase, this);\r\n\r\n this.initConstraints();\r\n }\r\n\r\n initConstraints() {\r\n this.constraints = new UnitOperationConstraints();\r\n this.constraints.addConstraint('massCapacity', this.massCapacity);\r\n this.constraints.addConstraint('minimumMassFlowrate', this.minimumMassFlowrate);\r\n this.constraints.addConstraint('minimumDuty', this.minimumDuty);\r\n this.constraints.addConstraint('maximumDuty', this.maximumDuty);\r\n }\r\n\r\n override clearResults() {\r\n super.clearResults();\r\n this.dutyResult.value = null;\r\n this.pressureRatio.value = null;\r\n this.polytropicEfficiency.value = null;\r\n }\r\n\r\n override setSimulationVariablesOwner() {\r\n super.setSimulationVariablesOwner();\r\n }\r\n\r\n override addSimVarsToPool() {\r\n super.addSimVarsToPool();\r\n }\r\n\r\n override overwriteValues(another: BaseObject) {\r\n super.overwriteValues(another);\r\n }\r\n\r\n protected override ignoreForOverWrite(propertyName: string): boolean {\r\n return super.ignoreForOverWrite(propertyName);\r\n }\r\n\r\n override setSimulationVariableNames(): void {\r\n super.setSimulationVariableNames();\r\n this.pressureDrop.setName(SimulationVariableName.PRESSURE_DROP);\r\n this.outletPressure.setName(SimulationVariableName.OUTLET_PRESSURE);\r\n this.duty.setName(SimulationVariableName.DUTY);\r\n this.isentropicEfficiency.setName(SimulationVariableName.ISENTROPIC_EFFICIENCY);\r\n this.polytropicEfficiency.setName(SimulationVariableName.POLYTROPIC_EFFICIENCY);\r\n this.pressureRatio.setName(SimulationVariableName.PRESSURE_RATIO);\r\n\r\n this.dutyResult.setName(SimulationVariableName.DUTY);\r\n\r\n this.massCapacity.setName(SimulationVariableName.MAXIMUM_FEED_CAPACITY);\r\n this.minimumMassFlowrate.setName(SimulationVariableName.MINIMUM_MASS_FLOWRATE);\r\n this.minimumDuty.setName(SimulationVariableName.MINIMUM_DUTY);\r\n this.maximumDuty.setName(SimulationVariableName.MAXIMUM_DUTY);\r\n }\r\n\r\n override setDefaultValues() {\r\n if (this.pressureCalculationMode === '') {\r\n this.pressureCalculationMode = PressureCalculationMode.PRESSURE_DROP;\r\n }\r\n if (this.pressureDrop.isUndefined()) {\r\n this.pressureDrop.setDefaultValue(null);\r\n }\r\n if (this.outletPressure.isUndefined()) {\r\n this.outletPressure.setDefaultValue(null);\r\n }\r\n if (this.duty.isUndefined()) {\r\n this.duty.setDefaultValue(null, unitConverter.units.Power.KW);\r\n }\r\n\r\n if (this.dutyResult.isUndefined()) {\r\n this.dutyResult.setDefaultValue(null, unitConverter.units.Power.KW);\r\n }\r\n\r\n if (this.isentropicEfficiency.isUndefined()) {\r\n this.isentropicEfficiency.setDefaultValue(75, unitConverter.units.Dimensionless.PERCENT);\r\n }\r\n if (this.polytropicEfficiency.isUndefined()) {\r\n this.polytropicEfficiency.setDefaultValue(null, unitConverter.units.Dimensionless.PERCENT);\r\n }\r\n if (this.pressureRatio.isUndefined()) {\r\n this.pressureRatio.setDefaultValue(null);\r\n }\r\n\r\n if (this.minimumMassFlowrate.isUndefined()) {\r\n this.minimumMassFlowrate.setDefaultValue(null, unitConverter.units.Massflowrate.KPPH);\r\n }\r\n\r\n if (this.massCapacity.isUndefined()) {\r\n this.massCapacity.setDefaultValue(null, unitConverter.units.Massflowrate.KPPH);\r\n }\r\n\r\n if (this.minimumDuty.isUndefined()) {\r\n this.minimumDuty.setDefaultValue(null, unitConverter.units.Power.KW);\r\n }\r\n if (this.maximumDuty.isUndefined()) {\r\n this.maximumDuty.setDefaultValue(null, unitConverter.units.Power.KW);\r\n }\r\n\r\n super.setDefaultValues();\r\n }\r\n\r\n override setQuantities() {\r\n super.setQuantities();\r\n this.pressureDrop.setQuantity(Quantity.DELTA_PRESSURE);\r\n this.outletPressure.setQuantity(Quantity.PRESSURE);\r\n this.duty.setQuantity(Quantity.POWER);\r\n this.isentropicEfficiency.setQuantity(Quantity.DIMENSIONLESS);\r\n this.pressureRatio.setQuantity(Quantity.DIMENSIONLESS);\r\n this.polytropicEfficiency.setQuantity(Quantity.DIMENSIONLESS);\r\n\r\n this.dutyResult.setQuantity(Quantity.POWER);\r\n\r\n this.massCapacity.setQuantity(Quantity.MASSFLOWRATE);\r\n this.minimumMassFlowrate.setQuantity(Quantity.MASSFLOWRATE);\r\n\r\n this.minimumDuty.setQuantity(Quantity.POWER);\r\n this.maximumDuty.setQuantity(Quantity.POWER);\r\n }\r\n\r\n getAvailableKpis(): SimulationVariable[] {\r\n if (this.ownerCase.multiPeriodEnabled) {\r\n return [this.outletPressure, this.dutyResult];\r\n }\r\n return [this.outletPressure, this.isentropicEfficiency, this.dutyResult, this.pressureRatio];\r\n }\r\n\r\n getAvailableParametricStudyParameters(): SimulationVariable[] {\r\n return [this.isentropicEfficiency];\r\n }\r\n\r\n getAvailableParameters() {\r\n return undefined;\r\n }\r\n\r\n override dePersist(sup: any) {\r\n super.dePersist(sup);\r\n\r\n this.pressureDrop = this.getSimulationVariableSafe(sup.pressureDrop);\r\n this.outletPressure = this.getSimulationVariableSafe(sup.outletPressure);\r\n this.duty = this.getSimulationVariableSafe(sup.duty);\r\n this.isentropicEfficiency = this.getSimulationVariableSafe(sup.isentropicEfficiency);\r\n this.pressureRatio = this.getSimulationVariableSafe(sup.pressureRatio);\r\n this.polytropicEfficiency = this.getSimulationVariableSafe(sup.polytropicEfficiency);\r\n\r\n this.dutyResult = this.getSimulationVariableSafe(sup.dutyResult);\r\n\r\n this.massCapacity = this.getSimulationVariableSafe(sup.massCapacity);\r\n this.minimumMassFlowrate = this.getSimulationVariableSafe(sup.minimumMassFlowrate);\r\n this.minimumDuty = this.getSimulationVariableSafe(sup.minimumDuty);\r\n this.maximumDuty = this.getSimulationVariableSafe(sup.maximumDuty);\r\n\r\n this.setDefaultValues();\r\n this.setQuantities();\r\n this.initConstraints();\r\n }\r\n}\r\n","export enum TemperatureCalculationMode {\r\n TEMPERATURE_GAIN = 'Temperature Gain',\r\n OUTLET_TEMPERATURE = 'Outlet Temperature',\r\n TEMPERATURE_DROP = 'Temperature Drop',\r\n}\r\n","import { WaterUnitOperation } from './water-unit-operation';\r\nimport { unitOperationsConfig } from '../../../_config/unit-operations.config';\r\nimport { Case } from '../../case';\r\nimport { SimulationVariable } from '../../simulation-variable';\r\nimport { Quantity } from '../../../_config/quantity.enum';\r\nimport { TemperatureCalculationMode } from '../../../_config/temperature-calculation-mode.enum';\r\nimport { SimulationVariableName } from '../../../_config/simulation-variable-name.enum';\r\nimport { KpiProvider } from '../../_case-study/kpi-provider';\r\nimport { ParameterProvider } from '../../_case-study/parameter-provider';\r\n\r\ndeclare let unitConverter: any;\r\n\r\nexport class WaterHeater extends WaterUnitOperation implements KpiProvider, ParameterProvider {\r\n category = unitOperationsConfig.waterHeater.key;\r\n temperatureGain: SimulationVariable;\r\n pressureDrop: SimulationVariable;\r\n duty: SimulationVariable;\r\n outletTemperature: SimulationVariable;\r\n temperatureCalculationMode: TemperatureCalculationMode | string;\r\n\r\n constructor(unitOperation: any | WaterHeater, ownerCase: Case) {\r\n super(unitOperation, ownerCase);\r\n this.initValues(unitOperation);\r\n this.setSimulationVariableNames();\r\n }\r\n\r\n override initValues(unitOperation: any) {\r\n super.initValues(unitOperation);\r\n this.temperatureGain = new SimulationVariable(unitOperation.temperatureGain, this.ownerCase, this);\r\n this.pressureDrop = new SimulationVariable(unitOperation.pressureDrop, this.ownerCase, this);\r\n this.duty = new SimulationVariable(unitOperation.duty, this.ownerCase, this);\r\n this.outletTemperature = new SimulationVariable(unitOperation.outletTemperature, this.ownerCase, this);\r\n this.temperatureCalculationMode = unitOperation.temperatureCalculationMode || '';\r\n }\r\n\r\n override clearResults() {\r\n super.clearResults();\r\n this.duty.value = null;\r\n }\r\n\r\n override setSimulationVariableNames() {\r\n super.setSimulationVariableNames();\r\n this.temperatureGain.setName(SimulationVariableName.TEMPERATURE_GAIN);\r\n this.pressureDrop.setName(SimulationVariableName.PRESSURE_DROP);\r\n this.duty.setName(SimulationVariableName.DUTY);\r\n this.outletTemperature.setName(SimulationVariableName.OUTLET_TEMPERATURE);\r\n }\r\n\r\n override setQuantities() {\r\n super.setQuantities();\r\n this.temperatureGain.setQuantity(Quantity.DELTA_TEMPERATURE);\r\n this.pressureDrop.setQuantity(Quantity.DELTA_PRESSURE);\r\n this.duty.setQuantity(Quantity.POWER);\r\n this.outletTemperature.setQuantity(Quantity.TEMPERATURE);\r\n }\r\n\r\n override setDefaultValues() {\r\n super.setDefaultValues();\r\n if (this.temperatureCalculationMode === '') {\r\n this.temperatureCalculationMode = TemperatureCalculationMode.TEMPERATURE_GAIN;\r\n }\r\n if (this.pressureDrop.isUndefined()) {\r\n this.pressureDrop.setDefaultValue(0.0);\r\n }\r\n if (this.duty.isUndefined()) {\r\n this.duty.setDefaultValue(null, unitConverter.units.Power.KW);\r\n }\r\n if (this.outletTemperature.isUndefined()) {\r\n this.outletTemperature.setDefaultValue(null, unitConverter.units.Temperature.CELSIUS);\r\n }\r\n }\r\n\r\n getAvailableKpis(): SimulationVariable[] {\r\n if (this.ownerCase.multiPeriodEnabled) {\r\n return [this.temperatureGain, this.duty];\r\n }\r\n return [this.temperatureGain, this.pressureDrop, this.duty];\r\n }\r\n\r\n getAvailableParametricStudyParameters(): SimulationVariable[] {\r\n return [this.pressureDrop];\r\n }\r\n\r\n getAvailableParameters() {\r\n return undefined;\r\n }\r\n\r\n override dePersist(unitOperation: any) {\r\n super.dePersist(unitOperation);\r\n this.temperatureGain = this.getSimulationVariableSafe(unitOperation.temperatureGain);\r\n this.pressureDrop = this.getSimulationVariableSafe(unitOperation.pressureDrop);\r\n this.duty = this.getSimulationVariableSafe(unitOperation.duty);\r\n this.outletTemperature = this.getSimulationVariableSafe(unitOperation.outletTemperature);\r\n this.setQuantities();\r\n this.setDefaultValues();\r\n }\r\n}\r\n","import { unitOperationsConfig } from '../../../_config/unit-operations.config';\r\nimport { WaterUnitOperation } from './water-unit-operation';\r\nimport { TemperatureCalculationMode } from '../../../_config/temperature-calculation-mode.enum';\r\nimport { SimulationVariable } from '../../simulation-variable';\r\nimport { Case } from '../../case';\r\nimport { Quantity } from '../../../_config/quantity.enum';\r\nimport { SimulationVariableName } from '../../../_config/simulation-variable-name.enum';\r\nimport { KpiProvider } from '../../_case-study/kpi-provider';\r\nimport { ParameterProvider } from '../../_case-study/parameter-provider';\r\n\r\ndeclare let unitConverter: any;\r\n\r\nexport class WaterCooler extends WaterUnitOperation implements KpiProvider, ParameterProvider {\r\n category = unitOperationsConfig.waterCooler.key;\r\n\r\n temperatureCalculationMode: TemperatureCalculationMode | string;\r\n temperatureDrop: SimulationVariable;\r\n outletTemperature: SimulationVariable;\r\n pressureDrop: SimulationVariable;\r\n duty: SimulationVariable;\r\n\r\n constructor(unitOperation: any | WaterCooler, ownerCase: Case) {\r\n super(unitOperation, ownerCase);\r\n this.initValues(unitOperation);\r\n this.setSimulationVariableNames();\r\n }\r\n\r\n override initValues(unitOperation: any) {\r\n super.initValues(unitOperation);\r\n this.temperatureCalculationMode = unitOperation.temperatureCalculationMode || '';\r\n this.temperatureDrop = new SimulationVariable(unitOperation.temperatureDrop, this.ownerCase, this);\r\n this.outletTemperature = new SimulationVariable(unitOperation.outletTemperature, this.ownerCase, this);\r\n this.pressureDrop = new SimulationVariable(unitOperation.pressureDrop, this.ownerCase, this);\r\n\r\n this.duty = new SimulationVariable(unitOperation.duty, this.ownerCase, this);\r\n }\r\n\r\n override clearResults() {\r\n super.clearResults();\r\n this.duty.value = null;\r\n }\r\n\r\n override setSimulationVariableNames() {\r\n super.setSimulationVariableNames();\r\n this.temperatureDrop.setName(SimulationVariableName.TEMPERATURE_DROP);\r\n this.outletTemperature.setName(SimulationVariableName.OUTLET_TEMPERATURE);\r\n this.pressureDrop.setName(SimulationVariableName.PRESSURE_DROP);\r\n this.duty.setName(SimulationVariableName.DUTY);\r\n }\r\n\r\n override setQuantities() {\r\n super.setQuantities();\r\n this.temperatureDrop.setQuantity(Quantity.DELTA_TEMPERATURE);\r\n this.outletTemperature.setQuantity(Quantity.TEMPERATURE);\r\n this.pressureDrop.setQuantity(Quantity.DELTA_PRESSURE);\r\n this.duty.setQuantity(Quantity.POWER);\r\n }\r\n\r\n override setDefaultValues() {\r\n super.setDefaultValues();\r\n\r\n if (this.temperatureCalculationMode === '') {\r\n this.temperatureCalculationMode = TemperatureCalculationMode.TEMPERATURE_DROP;\r\n }\r\n\r\n if (this.duty.isUndefined()) {\r\n this.duty.setDefaultValue(null, unitConverter.units.Power.KW);\r\n }\r\n }\r\n\r\n getAvailableKpis(): SimulationVariable[] {\r\n if (this.ownerCase.multiPeriodEnabled) {\r\n return [this.temperatureDrop, this.outletTemperature, this.duty];\r\n }\r\n return [this.temperatureDrop, this.outletTemperature, this.pressureDrop, this.duty];\r\n }\r\n\r\n getAvailableParametricStudyParameters(): SimulationVariable[] {\r\n return [this.pressureDrop];\r\n }\r\n\r\n getAvailableParameters() {\r\n return undefined;\r\n }\r\n\r\n override dePersist(unitOperation: any) {\r\n super.dePersist(unitOperation);\r\n this.temperatureDrop = this.getSimulationVariableSafe(unitOperation.temperatureDrop);\r\n this.outletTemperature = this.getSimulationVariableSafe(unitOperation.outletTemperature);\r\n this.pressureDrop = this.getSimulationVariableSafe(unitOperation.pressureDrop);\r\n this.duty = this.getSimulationVariableSafe(unitOperation.duty);\r\n this.setQuantities();\r\n this.setDefaultValues();\r\n }\r\n}\r\n","import { unitOperationsConfig } from '../../../_config/unit-operations.config';\r\nimport { WaterUnitOperation } from './water-unit-operation';\r\nimport { SimulationVariable } from '../../simulation-variable';\r\nimport { Case } from '../../case';\r\nimport { Quantity } from '../../../_config/quantity.enum';\r\nimport { SimulationVariableName } from '../../../_config/simulation-variable-name.enum';\r\nimport { KpiProvider } from '../../_case-study/kpi-provider';\r\nimport { ParameterProvider } from '../../_case-study/parameter-provider';\r\n\r\nexport class WaterTwoPhaseSeparator extends WaterUnitOperation implements KpiProvider, ParameterProvider {\r\n category = unitOperationsConfig.waterTwoPhaseSeparator.key;\r\n\r\n gasLiquidCarryover: SimulationVariable;\r\n liquidGasCarryover: SimulationVariable;\r\n\r\n constructor(unitOperation: any | WaterTwoPhaseSeparator, ownerCase: Case) {\r\n super(unitOperation, ownerCase);\r\n this.initValues(unitOperation);\r\n this.setSimulationVariableNames();\r\n }\r\n\r\n override initValues(unitOperation: any) {\r\n super.initValues(unitOperation);\r\n this.gasLiquidCarryover = new SimulationVariable(unitOperation.gasLiquidCarryover, this.ownerCase, this);\r\n this.liquidGasCarryover = new SimulationVariable(unitOperation.liquidGasCarryover, this.ownerCase, this);\r\n }\r\n\r\n override setSimulationVariableNames() {\r\n super.setSimulationVariableNames();\r\n this.gasLiquidCarryover.setName(SimulationVariableName.GAS_LIQUID_CARRY_OVER);\r\n this.liquidGasCarryover.setName(SimulationVariableName.LIQUID_GAS_CARRY_OVER);\r\n }\r\n\r\n override setQuantities() {\r\n super.setQuantities();\r\n this.gasLiquidCarryover.setQuantity(Quantity.MOLE_FRACTION);\r\n this.liquidGasCarryover.setQuantity(Quantity.MOLE_FRACTION);\r\n }\r\n\r\n getAvailableKpis(): SimulationVariable[] {\r\n if (!this.ownerCase.multiPeriodEnabled) {\r\n return [this.gasLiquidCarryover, this.liquidGasCarryover];\r\n }\r\n return [];\r\n }\r\n\r\n getAvailableParametricStudyParameters(): SimulationVariable[] {\r\n return [this.gasLiquidCarryover, this.liquidGasCarryover];\r\n }\r\n\r\n getAvailableParameters() {\r\n return undefined;\r\n }\r\n\r\n override dePersist(unitOperation: any) {\r\n super.dePersist(unitOperation);\r\n this.gasLiquidCarryover = this.getSimulationVariableSafe(unitOperation.gasLiquidCarryover);\r\n this.liquidGasCarryover = this.getSimulationVariableSafe(unitOperation.liquidGasCarryover);\r\n this.setQuantities();\r\n this.setDefaultValues();\r\n }\r\n}\r\n","import { WaterUnitOperation } from './water-unit-operation';\r\nimport { unitOperationsConfig } from '../../../_config/unit-operations.config';\r\nimport { SimulationVariable } from '../../simulation-variable';\r\nimport { Case } from '../../case';\r\nimport { PressureCalculationMode } from '../../../_config/pressure-calculation-mode.enum';\r\nimport { Quantity } from '../../../_config/quantity.enum';\r\nimport { SimulationVariableName } from '../../../_config/simulation-variable-name.enum';\r\nimport { KpiProvider } from '../../_case-study/kpi-provider';\r\nimport { ParameterProvider } from '../../_case-study/parameter-provider';\r\n\r\ndeclare let unitConverter: any;\r\n\r\nexport class WaterPump extends WaterUnitOperation implements KpiProvider, ParameterProvider {\r\n category = unitOperationsConfig.waterPump.key;\r\n pressureCalculationMode: PressureCalculationMode | string;\r\n pressureGain: SimulationVariable;\r\n outletPressure: SimulationVariable;\r\n duty: SimulationVariable;\r\n efficiency: SimulationVariable;\r\n dutyResult: SimulationVariable;\r\n\r\n constructor(unitOperation: any | WaterPump, ownerCase: Case) {\r\n super(unitOperation, ownerCase);\r\n this.initValues(unitOperation);\r\n this.setSimulationVariableNames();\r\n }\r\n\r\n override initValues(unitOperation: any) {\r\n super.initValues(unitOperation);\r\n this.pressureCalculationMode = unitOperation.pressureCalculationMode || '';\r\n this.pressureGain = new SimulationVariable(unitOperation.pressureGain, this.ownerCase, this);\r\n this.outletPressure = new SimulationVariable(unitOperation.outletPressure, this.ownerCase, this);\r\n this.duty = new SimulationVariable(unitOperation.duty, this.ownerCase, this);\r\n this.efficiency = new SimulationVariable(unitOperation.efficiency, this.ownerCase, this);\r\n this.dutyResult = new SimulationVariable(unitOperation.dutyResult, this.ownerCase, this);\r\n }\r\n\r\n override clearResults() {\r\n super.clearResults();\r\n this.dutyResult.value = null;\r\n }\r\n\r\n override setSimulationVariableNames() {\r\n super.setSimulationVariableNames();\r\n this.pressureGain.setName(SimulationVariableName.PRESSURE_GAIN);\r\n this.outletPressure.setName(SimulationVariableName.OUTLET_PRESSURE);\r\n this.duty.setName(SimulationVariableName.DUTY);\r\n this.efficiency.setName(SimulationVariableName.EFFICIENCY);\r\n this.dutyResult.setName(SimulationVariableName.DUTY);\r\n }\r\n\r\n override setQuantities() {\r\n super.setQuantities();\r\n this.pressureGain.setQuantity(Quantity.PRESSURE);\r\n this.outletPressure.setQuantity(Quantity.PRESSURE);\r\n this.duty.setQuantity(Quantity.POWER);\r\n this.efficiency.setQuantity(Quantity.DIMENSIONLESS);\r\n this.dutyResult.setQuantity(Quantity.POWER);\r\n }\r\n\r\n override setDefaultValues() {\r\n super.setDefaultValues();\r\n if (this.pressureCalculationMode === '') {\r\n this.pressureCalculationMode = PressureCalculationMode.PRESSURE_GAIN;\r\n }\r\n if (this.efficiency.isUndefined()) {\r\n this.efficiency.setDefaultValue(75, unitConverter.units.Dimensionless.PERCENT);\r\n }\r\n if (this.duty.isUndefined()) {\r\n this.duty.setDefaultValue(null, unitConverter.units.Power.KW);\r\n }\r\n if (this.dutyResult.isUndefined()) {\r\n this.dutyResult.setDefaultValue(null, unitConverter.units.Power.KW);\r\n }\r\n }\r\n\r\n getAvailableKpis(): SimulationVariable[] {\r\n if (this.ownerCase.multiPeriodEnabled) {\r\n return [this.outletPressure, this.dutyResult];\r\n }\r\n return [this.outletPressure, this.efficiency, this.dutyResult];\r\n }\r\n\r\n getAvailableParametricStudyParameters(): SimulationVariable[] {\r\n return [this.efficiency];\r\n }\r\n\r\n getAvailableParameters() {\r\n return undefined;\r\n }\r\n\r\n override dePersist(unitOperation: any) {\r\n super.dePersist(unitOperation);\r\n this.pressureGain = this.getSimulationVariableSafe(unitOperation.pressureGain);\r\n this.outletPressure = this.getSimulationVariableSafe(unitOperation.outletPressure);\r\n this.duty = this.getSimulationVariableSafe(unitOperation.duty);\r\n this.efficiency = this.getSimulationVariableSafe(unitOperation.efficiency);\r\n this.dutyResult = this.getSimulationVariableSafe(unitOperation.dutyResult);\r\n this.setQuantities();\r\n this.setDefaultValues();\r\n }\r\n}\r\n","import { UnitOperation } from '../../unit-operation';\r\nimport { unitOperationsConfig } from '../../../_config/unit-operations.config';\r\nimport { Case } from '../../case';\r\n\r\nexport class WaterUtilityUnitOperation extends UnitOperation {\r\n category = unitOperationsConfig.waterUtilityUnitOperation.key;\r\n isSolved: boolean;\r\n\r\n constructor(unitOperation: WaterUtilityUnitOperation | any, ownerCase: Case) {\r\n super(unitOperation, ownerCase);\r\n this.initValues(unitOperation);\r\n }\r\n\r\n override initValues(unitOperation: any) {\r\n this.isSolved = unitOperation.isSolved;\r\n }\r\n\r\n override clearResults() {\r\n super.clearResults();\r\n this.isSolved = false;\r\n }\r\n\r\n override setSimulationVariableNames() {}\r\n\r\n override get isFlowsheetOwner() {\r\n return true;\r\n }\r\n}\r\n","import { WaterUnitOperation } from './water-unit-operation';\r\nimport { unitOperationsConfig } from '../../../_config/unit-operations.config';\r\nimport { PressureCalculationMode } from '../../../_config/pressure-calculation-mode.enum';\r\nimport { SimulationVariable } from '../../simulation-variable';\r\nimport { Case } from '../../case';\r\nimport { Quantity } from '../../../_config/quantity.enum';\r\nimport { UnitOperationConstraints } from '../unit-operation-constraints';\r\nimport { SimulationVariableName } from '../../../_config/simulation-variable-name.enum';\r\nimport { KpiProvider } from '../../_case-study/kpi-provider';\r\n\r\ndeclare let unitConverter: any;\r\n\r\nexport class WaterValve extends WaterUnitOperation implements KpiProvider {\r\n category = unitOperationsConfig.waterValve.key;\r\n pressureCalculationMode: PressureCalculationMode | string;\r\n pressureDrop: SimulationVariable;\r\n outletPressure: SimulationVariable;\r\n\r\n massCapacity: SimulationVariable;\r\n constraints: UnitOperationConstraints;\r\n\r\n constructor(unitOperation: any | WaterValve, ownerCase: Case) {\r\n super(unitOperation, ownerCase);\r\n this.initValues(unitOperation);\r\n this.setSimulationVariableNames();\r\n }\r\n\r\n override initValues(unitOperation: any) {\r\n super.initValues(unitOperation);\r\n this.pressureCalculationMode = unitOperation.pressureCalculationMode || '';\r\n this.pressureDrop = new SimulationVariable(unitOperation.pressureDrop, this.ownerCase, this);\r\n this.outletPressure = new SimulationVariable(unitOperation.outletPressure, this.ownerCase, this);\r\n\r\n this.massCapacity = new SimulationVariable(unitOperation.massCapacity, this.ownerCase, this);\r\n this.initConstraints();\r\n }\r\n\r\n initConstraints() {\r\n this.constraints = new UnitOperationConstraints();\r\n this.constraints.addConstraint('massCapacity', this.massCapacity);\r\n }\r\n\r\n override setSimulationVariableNames() {\r\n super.setSimulationVariableNames();\r\n this.pressureDrop.setName(SimulationVariableName.PRESSURE_DROP);\r\n this.outletPressure.setName(SimulationVariableName.OUTLET_PRESSURE);\r\n this.massCapacity.setName(SimulationVariableName.MAXIMUM_FEED_CAPACITY);\r\n }\r\n\r\n override setQuantities() {\r\n super.setQuantities();\r\n this.pressureDrop.setQuantity(Quantity.DELTA_PRESSURE);\r\n this.outletPressure.setQuantity(Quantity.PRESSURE);\r\n\r\n this.massCapacity.setQuantity(Quantity.MASSFLOWRATE);\r\n }\r\n\r\n override setDefaultValues() {\r\n super.setDefaultValues();\r\n if (this.pressureCalculationMode === '') {\r\n this.pressureCalculationMode = PressureCalculationMode.PRESSURE_DROP;\r\n }\r\n\r\n if (this.massCapacity.isUndefined()) {\r\n this.massCapacity.setDefaultValue(null, unitConverter.units.Massflowrate.KPPH);\r\n }\r\n }\r\n\r\n getAvailableKpis(): SimulationVariable[] {\r\n return [this.outletPressure, this.pressureDrop];\r\n }\r\n\r\n override dePersist(unitOperation: any) {\r\n super.dePersist(unitOperation);\r\n this.pressureDrop = this.getSimulationVariableSafe(unitOperation.pressureDrop);\r\n this.outletPressure = this.getSimulationVariableSafe(unitOperation.outletPressure);\r\n this.massCapacity = this.getSimulationVariableSafe(unitOperation.massCapacity);\r\n this.setQuantities();\r\n this.setDefaultValues();\r\n this.initConstraints();\r\n }\r\n}\r\n","import { unitOperationsConfig } from '../../../_config/unit-operations.config';\r\nimport { WaterUnitOperation } from './water-unit-operation';\r\nimport { Case } from '../../case';\r\nimport { SimulationVariable } from '../../simulation-variable';\r\nimport { Quantity } from '../../../_config/quantity.enum';\r\nimport { UnitOperationConstraints } from '../unit-operation-constraints';\r\nimport { SimulationVariableName } from '../../../_config/simulation-variable-name.enum';\r\nimport { WaterMaterialStream } from '../../_streams/water-material-stream';\r\nimport { KpiProvider } from '../../_case-study/kpi-provider';\r\n\r\ndeclare let unitConverter: any;\r\n\r\nexport class WaterSink extends WaterUnitOperation implements KpiProvider {\r\n category = unitOperationsConfig.waterSink.key;\r\n\r\n massFlowrate: SimulationVariable;\r\n temperature: SimulationVariable;\r\n pressure: SimulationVariable;\r\n vaporFraction: SimulationVariable;\r\n\r\n maximumMassFlowrate: SimulationVariable;\r\n minimumMassFlowrate: SimulationVariable;\r\n\r\n constraints: UnitOperationConstraints;\r\n\r\n constructor(unitOperation: any | WaterSink, ownerCase: Case) {\r\n super(unitOperation, ownerCase);\r\n this.initValues(unitOperation);\r\n this.setSimulationVariableNames();\r\n }\r\n\r\n override initValues(unitOperation: any) {\r\n super.initValues(unitOperation);\r\n this.massFlowrate = new SimulationVariable(unitOperation.massFlowrate, this.ownerCase, this);\r\n this.temperature = new SimulationVariable(unitOperation.temperature, this.ownerCase, this);\r\n this.pressure = new SimulationVariable(unitOperation.pressure, this.ownerCase, this);\r\n this.vaporFraction = new SimulationVariable(unitOperation.vaporFraction, this.ownerCase, this);\r\n\r\n this.maximumMassFlowrate = new SimulationVariable(unitOperation.maximumMassFlowrate, this.ownerCase, this);\r\n this.minimumMassFlowrate = new SimulationVariable(unitOperation.minimumMassFlowrate, this.ownerCase, this);\r\n this.initConstraints();\r\n }\r\n\r\n initConstraints() {\r\n this.constraints = new UnitOperationConstraints();\r\n this.constraints.addConstraint('maximumMassFlowrate', this.maximumMassFlowrate);\r\n this.constraints.addConstraint('minimumMassFlowrate', this.minimumMassFlowrate);\r\n }\r\n\r\n override clearResults() {\r\n super.clearResults();\r\n this.massFlowrate.value = null;\r\n this.temperature.value = null;\r\n this.pressure.value = null;\r\n this.vaporFraction.value = null;\r\n }\r\n\r\n override setSimulationVariableNames() {\r\n super.setSimulationVariableNames();\r\n this.massFlowrate.setName('Mass Flowrate');\r\n this.temperature.setName('Temperature');\r\n this.pressure.setName('Pressure');\r\n this.vaporFraction.setName('Vapor Fraction');\r\n\r\n this.maximumMassFlowrate.setName(SimulationVariableName.MAXIMUM_MASS_FLOWRATE);\r\n this.minimumMassFlowrate.setName(SimulationVariableName.MINIMUM_MASS_FLOWRATE);\r\n }\r\n\r\n override setQuantities() {\r\n super.setQuantities();\r\n this.massFlowrate.setQuantity(Quantity.MASSFLOWRATE);\r\n this.temperature.setQuantity(Quantity.TEMPERATURE);\r\n this.pressure.setQuantity(Quantity.PRESSURE);\r\n this.vaporFraction.setQuantity(Quantity.FRACTION);\r\n\r\n this.maximumMassFlowrate.setQuantity(Quantity.MASSFLOWRATE);\r\n this.minimumMassFlowrate.setQuantity(Quantity.MASSFLOWRATE);\r\n }\r\n\r\n override setDefaultValues() {\r\n super.setDefaultValues();\r\n\r\n if (this.massFlowrate.isUndefined()) {\r\n this.massFlowrate.setDefaultValue(null, unitConverter.units.Massflowrate.KPPH);\r\n }\r\n\r\n if (this.maximumMassFlowrate.isUndefined()) {\r\n this.maximumMassFlowrate.setDefaultValue(null, unitConverter.units.Massflowrate.KPPH);\r\n }\r\n\r\n if (this.minimumMassFlowrate.isUndefined()) {\r\n this.minimumMassFlowrate.setDefaultValue(null, unitConverter.units.Massflowrate.KPPH);\r\n }\r\n }\r\n\r\n getStreamComingInToTheUnitOp() {\r\n return this.ownerCase.getStreamsByOutletUnitOperationId(this.id) as WaterMaterialStream[];\r\n }\r\n\r\n getAvailableKpis(): SimulationVariable[] {\r\n return [\r\n this.getStreamComingInToTheUnitOp()[0].massFlowrate,\r\n this.getStreamComingInToTheUnitOp()[0].temperature,\r\n this.getStreamComingInToTheUnitOp()[0].pressure,\r\n ];\r\n }\r\n\r\n override dePersist(sup: any) {\r\n super.dePersist(sup);\r\n this.massFlowrate = this.getSimulationVariableSafe(sup.massFlowrate);\r\n this.temperature = this.getSimulationVariableSafe(sup.temperature);\r\n this.pressure = this.getSimulationVariableSafe(sup.pressure);\r\n this.vaporFraction = this.getSimulationVariableSafe(sup.vaporFraction);\r\n\r\n this.maximumMassFlowrate = this.getSimulationVariableSafe(sup.maximumMassFlowrate);\r\n this.minimumMassFlowrate = this.getSimulationVariableSafe(sup.minimumMassFlowrate);\r\n this.setQuantities();\r\n this.setDefaultValues();\r\n this.initConstraints();\r\n }\r\n}\r\n","import { unitOperationsConfig } from '../../../_config/unit-operations.config';\r\nimport { WaterUnitOperation } from './water-unit-operation';\r\nimport { PressureCalculationMode } from '../../../_config/pressure-calculation-mode.enum';\r\nimport { SimulationVariable } from '../../simulation-variable';\r\nimport { Case } from '../../case';\r\nimport { Quantity } from '../../../_config/quantity.enum';\r\n\r\nexport class WaterMixer extends WaterUnitOperation {\r\n category = unitOperationsConfig.waterMixer.key;\r\n\r\n pressureCalculationMode: PressureCalculationMode | string;\r\n outletPressure: SimulationVariable;\r\n\r\n constructor(unitOperation: any | WaterMixer, ownerCase: Case) {\r\n super(unitOperation, ownerCase);\r\n this.initValues(unitOperation);\r\n this.setSimulationVariableNames();\r\n }\r\n\r\n override initValues(unitOperation: any) {\r\n super.initValues(unitOperation);\r\n this.pressureCalculationMode = unitOperation.pressureCalculationMode || '';\r\n this.outletPressure = new SimulationVariable(unitOperation.outletPressure, this.ownerCase, this);\r\n }\r\n\r\n override setDefaultValues() {\r\n super.setDefaultValues();\r\n if (this.pressureCalculationMode === '') {\r\n this.pressureCalculationMode = PressureCalculationMode.LOWEST;\r\n }\r\n }\r\n\r\n override setSimulationVariableNames() {\r\n super.setSimulationVariableNames();\r\n this.outletPressure.setName('Outlet Pressure');\r\n }\r\n\r\n override setQuantities() {\r\n super.setQuantities();\r\n this.outletPressure.setQuantity(Quantity.PRESSURE);\r\n }\r\n\r\n override dePersist(unitOperation: any) {\r\n super.dePersist(unitOperation);\r\n this.outletPressure = this.getSimulationVariableSafe(unitOperation.outletPressure);\r\n this.setQuantities();\r\n this.setDefaultValues();\r\n }\r\n}\r\n","import { WaterUnitOperation } from './water-unit-operation';\r\nimport { isTypeUndefined } from '../../../_utils/utils';\r\nimport { DistributionRatioVariable } from '../distribution-ratio-variable';\r\nimport { WaterMaterialStream } from '../../_streams/water-material-stream';\r\n\r\nexport abstract class BaseWaterSplitter extends WaterUnitOperation {\r\n abstract override category: string;\r\n\r\n isOptimizable: boolean;\r\n distributionRatioVariables: DistributionRatioVariable[] = [];\r\n\r\n override initValues(unitOperation: BaseWaterSplitter | any) {\r\n super.initValues(unitOperation);\r\n\r\n this.isOptimizable = isTypeUndefined(unitOperation.isOptimizable) ? false : unitOperation.isOptimizable;\r\n if (unitOperation.distributionRatioVariables instanceof Array) {\r\n for (const dv of unitOperation.distributionRatioVariables) {\r\n this.distributionRatioVariables.push(new DistributionRatioVariable(dv.unitOperationId, dv.value));\r\n }\r\n }\r\n }\r\n\r\n addDistributionVariable(unitOperationId: string) {\r\n this.emptyDistributionValues();\r\n this.distributionRatioVariables.push(new DistributionRatioVariable(unitOperationId, null));\r\n }\r\n\r\n private emptyDistributionValues() {\r\n for (const dv of this.distributionRatioVariables) {\r\n dv.value = null;\r\n }\r\n }\r\n\r\n findDistributionRatioVariable(unitOperationId: string): DistributionRatioVariable {\r\n return this.distributionRatioVariables.find(drv => {\r\n return drv.unitOperationId === unitOperationId;\r\n });\r\n }\r\n\r\n findDistributionRatioVariableName(i: number): string {\r\n const dv = this.distributionRatioVariables[i];\r\n\r\n if (dv) {\r\n const uo = this.ownerCase.getUnitOperation(dv.unitOperationId);\r\n\r\n const waterStreams = this.ownerCase.filterAllMaterialStreams((ws: WaterMaterialStream) => {\r\n return ws.outletUnitOperationId === uo?.id;\r\n });\r\n\r\n return waterStreams.length ? waterStreams[0].outletUnitOperation.name : undefined;\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n findDistributionRatioVariableIndex(unitOperationId: string) {\r\n return this.distributionRatioVariables.indexOf(this.findDistributionRatioVariable(unitOperationId));\r\n }\r\n\r\n removeDistributionRatioVariable(unitOperationId: string): void {\r\n const index = this.findDistributionRatioVariableIndex(unitOperationId);\r\n\r\n if (index >= 0) {\r\n this.distributionRatioVariables.splice(index, 1);\r\n }\r\n }\r\n}\r\n","import { unitOperationsConfig } from '../../../_config/unit-operations.config';\r\nimport { Case } from '../../case';\r\nimport { BaseObject } from '../../base-object';\r\nimport { BaseWaterSplitter } from './base-water-splitter';\r\n\r\nexport class WaterSplitter extends BaseWaterSplitter {\r\n category = unitOperationsConfig.waterSplitter.key;\r\n\r\n constructor(unitOperation: any, ownerCase: Case) {\r\n super(unitOperation, ownerCase);\r\n this.initValues(unitOperation);\r\n }\r\n\r\n override initValues(unitOperation: any) {\r\n super.initValues(unitOperation);\r\n this.setQuantities();\r\n }\r\n\r\n override clearResults() {\r\n super.clearResults();\r\n }\r\n\r\n override overwriteValues(another: BaseObject) {\r\n const ws = another as WaterSplitter;\r\n this.isOptimizable = ws.isOptimizable;\r\n\r\n this.name = another.name;\r\n for (let i = 0; i < ws.distributionRatioVariables.length; i++) {\r\n this.distributionRatioVariables[i].value = ws.distributionRatioVariables[i].value;\r\n }\r\n }\r\n\r\n setOptimizable(isOptimizable: boolean) {\r\n this.isOptimizable = isOptimizable;\r\n }\r\n}\r\n","import { ConstrainableObject } from '../_interfaces/constrainable-object';\r\nimport { SimulationVariable } from '../simulation-variable';\r\nimport { UnitOperationConstraints } from './unit-operation-constraints';\r\nimport { unitOperationsConfig } from '../../_config/unit-operations.config';\r\nimport { Case } from '../case';\r\n\r\nimport { isTypeUndefined } from '../../_utils/utils';\r\nimport { Quantity } from '../../_config/quantity.enum';\r\nimport { SimulationVariableName } from '../../_config/simulation-variable-name.enum';\r\nimport { GasContributorUnitOperation } from './gas-contributor-unit-operation';\r\nimport { KpiProvider } from '../_case-study/kpi-provider';\r\nimport { ParameterProvider } from '../_case-study/parameter-provider';\r\n\r\ndeclare let unitConverter: any;\r\n\r\nexport class FluidCoker\r\n extends GasContributorUnitOperation\r\n implements ConstrainableObject, KpiProvider, ParameterProvider\r\n{\r\n category = unitOperationsConfig.fluidCoker.key;\r\n\r\n useDataDrivenYieldModel: boolean;\r\n naphthaYield: SimulationVariable;\r\n totalInletVolume: SimulationVariable;\r\n feedDensity: SimulationVariable;\r\n gasOilYield: SimulationVariable;\r\n producedFuelGas: SimulationVariable;\r\n producedFuelGasRate: SimulationVariable;\r\n producedCoke: SimulationVariable;\r\n useCustomModel: boolean;\r\n modelScript: string;\r\n h2sProductionRate: SimulationVariable;\r\n h2sProduction: SimulationVariable;\r\n constraints: UnitOperationConstraints;\r\n minimumApi: SimulationVariable;\r\n maximumCcr: SimulationVariable;\r\n cokeEmissionFactor: SimulationVariable;\r\n percentCokeToCombustion: SimulationVariable;\r\n\r\n constructor(unitOperation: any, ownerCase: Case) {\r\n super(unitOperation, ownerCase);\r\n this.initValues(unitOperation);\r\n this.setSimulationVariableNames();\r\n }\r\n\r\n getAvailableKpis(): SimulationVariable[] {\r\n if (this.ownerCase.multiPeriodEnabled) {\r\n return [\r\n this.totalInletVolume,\r\n this.feedDensity,\r\n this.naphthaYield,\r\n this.gasOilYield,\r\n this.producedCoke,\r\n this.producedFuelGasRate,\r\n this.ghgIntensity,\r\n this.percentCokeToCombustion,\r\n this.cokeEmissionFactor,\r\n this.ghgEmissions,\r\n this.h2sProductionRate,\r\n this.h2sProduction,\r\n this.opexTotal,\r\n this.capexTotal,\r\n ];\r\n }\r\n return [\r\n this.totalInletVolume,\r\n this.feedDensity,\r\n this.naphthaYield,\r\n this.gasOilYield,\r\n this.producedCoke,\r\n this.producedFuelGasRate,\r\n this.ghgIntensity,\r\n this.percentCokeToCombustion,\r\n this.cokeEmissionFactor,\r\n this.ghgEmissions,\r\n this.h2sProductionRate,\r\n this.h2sProduction,\r\n this.steamMake600,\r\n this.steamUse600,\r\n this.steamUse900,\r\n this.steamMake900,\r\n this.steamMake150,\r\n this.steamUse150,\r\n this.steamMake50,\r\n this.steamUse50,\r\n this.fuelGasHeatingValue,\r\n this.fuelGasEmissionFactor,\r\n this.energyFlow,\r\n this.flowrate,\r\n this.opexTotal,\r\n this.capexTotal,\r\n ];\r\n }\r\n\r\n getAvailableParametricStudyParameters(): SimulationVariable[] {\r\n return [\r\n this.percentCokeToCombustion,\r\n this.cokeEmissionFactor,\r\n this.h2sProductionRate,\r\n this.opexVar,\r\n this.opexGasDiesel,\r\n this.opexPower,\r\n this.opexFixed,\r\n this.capexAmortized,\r\n ];\r\n }\r\n\r\n getAvailableParameters() {\r\n return undefined;\r\n }\r\n\r\n getAlternativeGhgIntensity(): SimulationVariable {\r\n return undefined;\r\n }\r\n\r\n override initValues(unitOperation: any | FluidCoker): void {\r\n super.initValues(unitOperation);\r\n\r\n if (isTypeUndefined(unitOperation.useDataDrivenYieldModel)) {\r\n this.useDataDrivenYieldModel = true;\r\n } else {\r\n this.useDataDrivenYieldModel = unitOperation.useDataDrivenYieldModel;\r\n }\r\n\r\n this.totalInletVolume = new SimulationVariable(unitOperation.totalInletVolume, this.ownerCase, this);\r\n this.feedDensity = new SimulationVariable(unitOperation.feedDensity, this.ownerCase, this);\r\n this.naphthaYield = new SimulationVariable(unitOperation.naphthaYield, this.ownerCase, this);\r\n this.gasOilYield = new SimulationVariable(unitOperation.gasOilYield, this.ownerCase, this);\r\n this.producedFuelGasRate = new SimulationVariable(unitOperation.producedFuelGasRate, this.ownerCase, this);\r\n this.producedFuelGas = new SimulationVariable(unitOperation.producedFuelGas, this.ownerCase, this);\r\n this.producedCoke = new SimulationVariable(unitOperation.producedCoke, this.ownerCase, this);\r\n this.h2sProductionRate = new SimulationVariable(unitOperation.h2sProductionRate || {}, this.ownerCase, this);\r\n this.h2sProduction = new SimulationVariable(unitOperation.h2sProduction || {}, this.ownerCase, this);\r\n this.minimumApi = new SimulationVariable(unitOperation.minimumApi || {}, this.ownerCase, this);\r\n this.maximumCcr = new SimulationVariable(unitOperation.maximumCcr || {}, this.ownerCase, this);\r\n this.cokeEmissionFactor = new SimulationVariable(unitOperation.cokeEmissionFactor || {}, this.ownerCase, this);\r\n this.percentCokeToCombustion = new SimulationVariable(\r\n unitOperation.percentCokeToCombustion || {},\r\n this.ownerCase,\r\n this\r\n );\r\n if (isTypeUndefined(unitOperation.useCustomModel)) {\r\n this.useCustomModel = false;\r\n } else {\r\n this.useCustomModel = unitOperation.useCustomModel;\r\n }\r\n\r\n this.modelScript = typeof isTypeUndefined(unitOperation.modelScript) ? '' : unitOperation.modelScript;\r\n\r\n this.initConstraints();\r\n }\r\n\r\n initConstraints() {\r\n this.constraints = new UnitOperationConstraints();\r\n this.constraints.addConstraint('capacity', this.capacity);\r\n this.constraints.addConstraint('minimumFlow', this.minimumFlow);\r\n this.constraints.addConstraint('minimumApi', this.minimumApi);\r\n this.constraints.addConstraint('maximumCcr', this.maximumCcr);\r\n }\r\n\r\n override setQuantities() {\r\n super.setQuantities();\r\n this.feedDensity.setQuantity(Quantity.LIQUID_DENSITY);\r\n this.totalInletVolume.setQuantity(Quantity.VOLUMETRIC_FLOWRATE);\r\n this.naphthaYield.setQuantity(Quantity.PERCENT);\r\n this.gasOilYield.setQuantity(Quantity.PERCENT);\r\n this.producedFuelGasRate.setQuantity(Quantity.GAS_STD_VOLUME_PER_VOLUME);\r\n this.producedFuelGas.setQuantity(Quantity.MASSFLOWRATE);\r\n this.producedCoke.setQuantity(Quantity.MASSFLOWRATE);\r\n this.h2sProduction.setQuantity(Quantity.MOLEFLOWRATE);\r\n this.h2sProductionRate.setQuantity(Quantity.GAS_STD_VOLUME_PER_VOLUME);\r\n this.minimumApi.setQuantity(Quantity.LIQUID_DENSITY);\r\n this.maximumCcr.setQuantity(Quantity.MASS_FRACTION);\r\n this.percentCokeToCombustion.setQuantity(Quantity.PERCENT);\r\n this.cokeEmissionFactor.setQuantity(Quantity.MASS_EMISSIONS_PER_FUEL_MASS);\r\n }\r\n\r\n override dePersist(sup: any) {\r\n super.dePersist(sup);\r\n this.totalInletVolume = this.getSimulationVariableSafe(sup.totalInletVolume);\r\n this.feedDensity = this.getSimulationVariableSafe(sup.feedDensity);\r\n this.naphthaYield = this.getSimulationVariableSafe(sup.naphthaYield);\r\n this.gasOilYield = this.getSimulationVariableSafe(sup.gasOilYield);\r\n this.producedFuelGasRate = this.getSimulationVariableSafe(sup.producedFuelGasRate);\r\n this.producedFuelGas = this.getSimulationVariableSafe(sup.producedFuelGas);\r\n this.producedCoke = this.getSimulationVariableSafe(sup.producedCoke);\r\n this.h2sProduction = this.getSimulationVariableSafe(sup.h2sProduction);\r\n this.h2sProductionRate = this.getSimulationVariableSafe(sup.h2sProductionRate);\r\n this.minimumApi = this.getSimulationVariableSafe(sup.minimumApi);\r\n this.maximumCcr = this.getSimulationVariableSafe(sup.maximumCcr);\r\n this.cokeEmissionFactor = this.getSimulationVariableSafe(sup.cokeEmissionFactor);\r\n this.percentCokeToCombustion = this.getSimulationVariableSafe(sup.percentCokeToCombustion);\r\n this.setQuantities();\r\n this.setDefaultValues();\r\n this.initConstraints();\r\n }\r\n\r\n constraintViolated() {\r\n const inletStream = this.ownerCase.filterSuncorMaterialStreams(s => {\r\n return s.outletUnitOperationId === this.id;\r\n })[0];\r\n\r\n return inletStream && this.constraints.constraintValueViolated('capacity', inletStream.volumetricFlowrate.value);\r\n }\r\n\r\n override setDefaultValues(): void {\r\n super.setDefaultValues();\r\n if (this.cokeEmissionFactor.isUndefined()) {\r\n this.cokeEmissionFactor.setDefaultValue(3017.4);\r\n }\r\n if (this.percentCokeToCombustion.isUndefined()) {\r\n this.percentCokeToCombustion.setDefaultValue(15.0);\r\n }\r\n if (this.producedCoke.isUndefined()) {\r\n this.producedCoke.setDefaultValue(0.0, unitConverter.units.Massflowrate.TONNES_D);\r\n }\r\n if (this.energyFlow.isUndefined()) {\r\n this.energyFlow.setDefaultValue(0.0, unitConverter.units.Energyrate.GJ_H);\r\n }\r\n }\r\n\r\n constraintValueDefined() {\r\n return this.constraints.anyConstraintValueDefined();\r\n }\r\n\r\n override setSimulationVariableNames() {\r\n super.setSimulationVariableNames();\r\n this.feedDensity.setName('Feed Density');\r\n this.totalInletVolume.setName('Total Inlet Volume');\r\n this.producedFuelGasRate.setName('Produced Fuel Gas Rate');\r\n this.producedFuelGas.setName('Produced Fuel Gas');\r\n this.producedCoke.setName('Produced Coke');\r\n this.cokeEmissionFactor.setName('Coke Emission Factor');\r\n this.percentCokeToCombustion.setName('Coke to Combustion ');\r\n this.maximumCcr.setName(SimulationVariableName.MAXIMUM_CCR);\r\n this.minimumApi.setName(SimulationVariableName.MINIMUM_API);\r\n this.h2sProduction.setName(SimulationVariableName.H2S_PRODUCTION);\r\n this.h2sProductionRate.setName(SimulationVariableName.H2S_PRODUCTION_RATE);\r\n this.gasOilYield.setName(SimulationVariableName.OIL_YIELD);\r\n this.naphthaYield.setName(SimulationVariableName.NAPHTHA_YIELD);\r\n this.steamMake900.setName('#900 Steam Make');\r\n this.steamUse900.setName('#900 Steam Use');\r\n this.steamMake600.setName('#600 Steam Make');\r\n this.steamUse600.setName('#600 Steam Use');\r\n this.steamMake150.setName('#150 Steam Make');\r\n this.steamUse150.setName('#150 Steam Use');\r\n this.steamMake50.setName('#50 Steam Make');\r\n this.steamUse50.setName('#50 Steam Use');\r\n this.opexTotal.setName('Total OPEX');\r\n this.capexTotal.setName('Total CAPEX');\r\n this.fuelGasHeatingValue.setName(SimulationVariableName.FUEL_GAS_HEATING_VALUE);\r\n this.fuelGasEmissionFactor.setName(SimulationVariableName.FUEL_GAS_EMISSION_FACTOR);\r\n this.energyFlow.setName(SimulationVariableName.ENERGY_FLOW);\r\n this.flowrate.setName(SimulationVariableName.FUEL_GAS_FLOWRATE);\r\n }\r\n\r\n override detectChanges(another: any): boolean {\r\n const changes = super.detectChanges(another);\r\n return changes || another.modelScript !== this.modelScript;\r\n }\r\n}\r\n","export enum ThermalCalculationMode {\r\n ADIABATIC = 'Adiabatic',\r\n ISOTHERMAL = 'Isothermal',\r\n THERMAL = 'Thermal',\r\n}\r\n","export enum WaterPipePressureModel {\r\n HOMOGENEOUS = 'Homogeneous',\r\n}\r\n","import { BaseObject } from '../../base-object';\r\nimport { SimulationVariable } from '../../simulation-variable';\r\nimport { Case } from '../../case';\r\nimport { Quantity } from '../../../_config/quantity.enum';\r\nimport { SimulationVariableName } from '../../../_config/simulation-variable-name.enum';\r\nimport { WaterPipe } from './water-pipe';\r\nimport { KpiProvider } from '../../_case-study/kpi-provider';\r\n\r\ndeclare let unitConverter: any;\r\nexport class WaterPipeSegment extends BaseObject implements KpiProvider {\r\n category = 'waterPipeSegment';\r\n segmentLength: SimulationVariable;\r\n insideDiameter: SimulationVariable;\r\n outsideDiameter: SimulationVariable;\r\n segmentAngle: SimulationVariable;\r\n relativeRoughness: SimulationVariable;\r\n overallU: SimulationVariable;\r\n inletAmbientTemperature: SimulationVariable;\r\n outletAmbientTemperature: SimulationVariable;\r\n\r\n constructor(waterPipeSegment: WaterPipeSegment | any, ownerCase: Case) {\r\n super(waterPipeSegment.id, ownerCase);\r\n this.initValues(waterPipeSegment);\r\n this.setSimulationVariableNames();\r\n }\r\n\r\n initValues(waterPipeSegment: WaterPipeSegment | any) {\r\n this.name = waterPipeSegment.name;\r\n this.segmentLength = new SimulationVariable(waterPipeSegment.segmentLength, this.ownerCase, this);\r\n this.insideDiameter = new SimulationVariable(waterPipeSegment.insideDiameter, this.ownerCase, this);\r\n this.outsideDiameter = new SimulationVariable(waterPipeSegment.outsideDiameter, this.ownerCase, this);\r\n this.segmentAngle = new SimulationVariable(waterPipeSegment.segmentAngle, this.ownerCase, this);\r\n this.relativeRoughness = new SimulationVariable(waterPipeSegment.relativeRoughness, this.ownerCase, this);\r\n this.overallU = new SimulationVariable(waterPipeSegment.overallU, this.ownerCase, this);\r\n this.inletAmbientTemperature = new SimulationVariable(\r\n waterPipeSegment.inletAmbientTemperature,\r\n this.ownerCase,\r\n this\r\n );\r\n this.outletAmbientTemperature = new SimulationVariable(\r\n waterPipeSegment.outletAmbientTemperature,\r\n this.ownerCase,\r\n this\r\n );\r\n\r\n this.setQuantities();\r\n this.setDefaultValues();\r\n }\r\n\r\n setSimulationVariableNames() {\r\n this.segmentLength.setName(SimulationVariableName.LENGTH);\r\n this.insideDiameter.setName(SimulationVariableName.INSIDE_DIAMETER);\r\n this.outsideDiameter.setName(SimulationVariableName.OUTSIDE_DIAMETER);\r\n this.segmentAngle.setName(SimulationVariableName.ANGLE);\r\n this.relativeRoughness.setName(SimulationVariableName.RELATIVE_ROUGHNESS);\r\n }\r\n\r\n setQuantities() {\r\n this.segmentLength.setQuantity(Quantity.LENGTH);\r\n this.insideDiameter.setQuantity(Quantity.LENGTH);\r\n this.outsideDiameter.setQuantity(Quantity.LENGTH);\r\n this.segmentAngle.setQuantity(Quantity.ANGLE);\r\n this.relativeRoughness.setQuantity(Quantity.DIMENSIONLESS);\r\n this.overallU.setQuantity(Quantity.U);\r\n this.inletAmbientTemperature.setQuantity(Quantity.TEMPERATURE);\r\n this.outletAmbientTemperature.setQuantity(Quantity.TEMPERATURE);\r\n }\r\n\r\n setDefaultValues() {\r\n if (this.segmentLength.isUndefined()) {\r\n this.segmentLength.setDefaultValue(null, unitConverter.units.Length.M);\r\n }\r\n if (this.insideDiameter.isUndefined()) {\r\n this.insideDiameter.setDefaultValue(null, unitConverter.units.Length.CM);\r\n }\r\n if (this.outsideDiameter.isUndefined()) {\r\n this.outsideDiameter.setDefaultValue(null, unitConverter.units.Length.CM);\r\n }\r\n }\r\n\r\n getAvailableKpis(): SimulationVariable[] {\r\n if (!this.ownerCase.multiPeriodEnabled) {\r\n return [this.segmentLength, this.insideDiameter, this.outsideDiameter, this.segmentAngle, this.relativeRoughness];\r\n }\r\n return [];\r\n }\r\n\r\n getWaterPipeSegmentOwner(wPipeSegmentId: string) {\r\n const waterPipes = this.ownerCase.filterUnitOperations(uo => uo instanceof WaterPipe) as WaterPipe[];\r\n let waterPipeOwner;\r\n waterPipes.forEach(wP => {\r\n wP.segments.forEach(wPSegments => {\r\n if (wPSegments.id === wPipeSegmentId) {\r\n waterPipeOwner = wP;\r\n }\r\n });\r\n });\r\n\r\n return waterPipeOwner;\r\n }\r\n\r\n override dePersist(persistedObj: any) {\r\n super.dePersist(persistedObj);\r\n this.segmentLength = this.getSimulationVariableSafe(persistedObj.segmentLength);\r\n this.insideDiameter = this.getSimulationVariableSafe(persistedObj.insideDiameter);\r\n this.outsideDiameter = this.getSimulationVariableSafe(persistedObj.outsideDiameter);\r\n this.segmentAngle = this.getSimulationVariableSafe(persistedObj.segmentAngle);\r\n this.relativeRoughness = this.getSimulationVariableSafe(persistedObj.relativeRoughness);\r\n this.overallU = this.getSimulationVariableSafe(persistedObj.overallU);\r\n this.inletAmbientTemperature = this.getSimulationVariableSafe(persistedObj.inletAmbientTemperature);\r\n this.outletAmbientTemperature = this.getSimulationVariableSafe(persistedObj.outletAmbientTemperature);\r\n\r\n this.setQuantities();\r\n this.setDefaultValues();\r\n this.setSimulationVariablesOwner();\r\n this.setSimulationVariableNames();\r\n }\r\n\r\n public toJSON(): any {\r\n return {\r\n id: this.id,\r\n name: this.name,\r\n category: this.category,\r\n segmentLength: this.segmentLength.id,\r\n insideDiameter: this.insideDiameter.id,\r\n outsideDiameter: this.outsideDiameter.id,\r\n segmentAngle: this.segmentAngle.id,\r\n relativeRoughness: this.relativeRoughness.id,\r\n overallU: this.overallU.id,\r\n inletAmbientTemperature: this.inletAmbientTemperature.id,\r\n outletAmbientTemperature: this.outletAmbientTemperature.id,\r\n };\r\n }\r\n}\r\n","export class ArrayDiff<T> {\r\n constructor(private baseArray: T[]) {}\r\n\r\n /**\r\n * Gets the difference between two arrays - something like right/left join in sql but without the intersection\r\n * @param against The array that baseArray will be compared against\r\n * @param compareFunction anonymous function to compare two items of each array - should return true if both items\r\n * are equal\r\n */\r\n diff<U>(against: U[], compareFunction: (l: T, r: U) => boolean): { left: T[]; right: U[]; intersection: T[] } {\r\n const leftResult = this.left(against, compareFunction);\r\n const rightResult = this.right(against, compareFunction);\r\n const intersection = this.intersection(against, compareFunction);\r\n return { left: leftResult, right: rightResult, intersection };\r\n }\r\n\r\n /**\r\n * Gets the left difference against the array passed by parameter\r\n * @param against The array that baseArray will be compared against\r\n * @param compareFunction anonymous function to compare two items of each array -\r\n * should return true if both items are equal\r\n */\r\n left<U>(against: U[], compareFunction: (l: T, r: U) => boolean): T[] {\r\n return this.baseArray.filter(l => {\r\n return against.findIndex(r => compareFunction(l, r)) === -1;\r\n });\r\n }\r\n\r\n /**\r\n * Gets the right difference against the array passed by parameter\r\n * @param against The array that baseArray will be compared against\r\n * @param compareFunction anonymous function to compare two items of each array - should return true if both items\r\n * are equal\r\n */\r\n right<U>(against: U[], compareFunction: (l: T, r: U) => boolean): U[] {\r\n return against.filter(r => {\r\n return this.baseArray.findIndex(l => compareFunction(l, r)) === -1;\r\n });\r\n }\r\n\r\n /**\r\n * Gets the intersection with the array passed by parameter\r\n * @param against The array that baseArray will be compared against\r\n * @param compareFunction anonymous function to compare two items of each array - should return true if both items\r\n * are equal\r\n */\r\n intersection<U>(against: U[], compareFunction: (l: T, r: U) => boolean): T[] {\r\n return this.baseArray.filter(l => against.findIndex(r => compareFunction(l, r)) >= 0);\r\n }\r\n}\r\n","import { WaterUnitOperation } from './water-unit-operation';\r\nimport { unitOperationsConfig } from '../../../_config/unit-operations.config';\r\nimport { SimulationVariable } from '../../simulation-variable';\r\nimport { Case } from '../../case';\r\nimport { Quantity } from '../../../_config/quantity.enum';\r\nimport { ThermalCalculationMode } from '../../../_config/thermal-calculation-mode.enum';\r\nimport { WaterPipePressureModel } from '../../../_config/water-pipe-pressure-model.enum';\r\nimport { WaterPipeSegment } from './water-pipe-segment';\r\nimport { BaseObject } from '../../base-object';\r\nimport { ArrayDiff } from '../../../_utils/array-diff';\r\nimport { hasNumericValue } from '../../../_utils/utils';\r\nimport { SimulationVariableName } from '../../../_config/simulation-variable-name.enum';\r\nimport { KpiProvider } from '../../_case-study/kpi-provider';\r\nimport { ParameterProvider } from '../../_case-study/parameter-provider';\r\n\r\ndeclare let unitConverter: any;\r\nexport class WaterPipe extends WaterUnitOperation implements KpiProvider, ParameterProvider {\r\n category = unitOperationsConfig.waterPipe.key;\r\n pipePressureModel: WaterPipePressureModel;\r\n thermalCalculationMode: ThermalCalculationMode;\r\n stepLength: SimulationVariable;\r\n segments: WaterPipeSegment[];\r\n\r\n constructor(unitOperation: WaterPipe | any, ownerCase: Case) {\r\n super(unitOperation, ownerCase);\r\n this.initValues(unitOperation);\r\n this.setSimulationVariableNames();\r\n }\r\n\r\n override initValues(unitOperation: WaterPipe | any) {\r\n super.initValues(unitOperation);\r\n this.pipePressureModel = unitOperation.pipePressureModel || WaterPipePressureModel.HOMOGENEOUS;\r\n this.thermalCalculationMode = unitOperation.thermalCalculationMode || ThermalCalculationMode.ADIABATIC;\r\n this.stepLength = new SimulationVariable(unitOperation.stepLength, this.ownerCase, this);\r\n this.segments = [];\r\n\r\n if (unitOperation.segments instanceof Array) {\r\n const waterPipeSegment = unitOperation.segments.length ? unitOperation.segments[0] : undefined;\r\n if (waterPipeSegment instanceof WaterPipeSegment) {\r\n this.segments = unitOperation.segments;\r\n }\r\n }\r\n }\r\n\r\n override setSimulationVariableNames() {\r\n super.setSimulationVariableNames();\r\n this.stepLength.setName(SimulationVariableName.STEP_LENGTH);\r\n }\r\n\r\n override overwriteValues(another: BaseObject) {\r\n const sourceWaterPipe = another as WaterPipe;\r\n const destinationWaterPipe = this;\r\n\r\n destinationWaterPipe.pipePressureModel = sourceWaterPipe.pipePressureModel;\r\n destinationWaterPipe.thermalCalculationMode = sourceWaterPipe.thermalCalculationMode;\r\n this.mapStepLengthProperty(sourceWaterPipe, destinationWaterPipe);\r\n destinationWaterPipe.comments = sourceWaterPipe.comments;\r\n\r\n const arrayDiff = new ArrayDiff(sourceWaterPipe.segments);\r\n\r\n const diff = arrayDiff.diff(destinationWaterPipe.segments, (l: WaterPipeSegment, r: WaterPipeSegment) => {\r\n return l.id === r.id;\r\n });\r\n\r\n for (const sourceWaterPipeSegment of diff.intersection) {\r\n const destinationWaterPipeSegment = destinationWaterPipe.segments.find(\r\n informationStream => informationStream.id === sourceWaterPipeSegment.id\r\n );\r\n\r\n this.mapSimulationVariables(sourceWaterPipeSegment, destinationWaterPipeSegment);\r\n }\r\n\r\n const waterPipeSegmentsToAdd = diff.left;\r\n for (const sourceWaterPipeSegment of waterPipeSegmentsToAdd) {\r\n const destinationWaterPipeSegment = new WaterPipeSegment(sourceWaterPipeSegment, destinationWaterPipe.ownerCase);\r\n destinationWaterPipe.addWaterPipeSegments(destinationWaterPipeSegment);\r\n }\r\n\r\n const waterPipeSegmentsToDelete = diff.right;\r\n for (const waterPipeSegmentToDelete of waterPipeSegmentsToDelete) {\r\n destinationWaterPipe.removeWaterPipeSegment(waterPipeSegmentToDelete);\r\n }\r\n }\r\n\r\n mapStepLengthProperty(source: WaterPipe, destination: WaterPipe) {\r\n destination.stepLength.quantity = source.stepLength.quantity;\r\n destination.stepLength.value = source.stepLength.value;\r\n destination.stepLength.unit = source.stepLength.unit;\r\n destination.stepLength.variableStatus = source.stepLength.variableStatus;\r\n }\r\n\r\n mapSimulationVariables(source: BaseObject, destination: BaseObject) {\r\n const keys = Object.keys(source);\r\n\r\n for (const key of keys) {\r\n const currentValue = destination[key];\r\n\r\n if (currentValue instanceof SimulationVariable) {\r\n if (source[key].id) {\r\n destination[key].id = source[key].id;\r\n }\r\n\r\n if (source[key].quantity) {\r\n destination[key].quantity = source[key].quantity;\r\n }\r\n\r\n if (hasNumericValue(source[key].value)) {\r\n destination[key].value = +source[key].value;\r\n } else {\r\n destination[key].value = undefined;\r\n }\r\n\r\n if (source[key].unit) {\r\n destination[key].unit = source[key].unit;\r\n }\r\n\r\n if (source[key].status) {\r\n destination[key].variableStatus = source[key].variableStatus;\r\n }\r\n } else {\r\n destination[key] = source[key];\r\n }\r\n }\r\n }\r\n\r\n addWaterPipeSegments(waterPipeSegment: WaterPipeSegment) {\r\n const index = this.segments.findIndex(wps => wps.id === waterPipeSegment.id);\r\n if (index > -1) {\r\n return;\r\n }\r\n\r\n this.segments.push(waterPipeSegment);\r\n this.setWaterPipeSegmentsName();\r\n this.ownerCase.addToPools(waterPipeSegment);\r\n waterPipeSegment.addSimVarsToPool();\r\n }\r\n\r\n removeWaterPipeSegment(wps: WaterPipeSegment) {\r\n const index = this.segments.findIndex(s => s.id === wps.id);\r\n if (index === -1) {\r\n return;\r\n }\r\n\r\n this.segments.splice(index, 1);\r\n this.ownerCase.removeFromPools(wps);\r\n this.ownerCase.removeFromPools(wps.segmentLength);\r\n this.ownerCase.removeFromPools(wps.insideDiameter);\r\n this.ownerCase.removeFromPools(wps.outsideDiameter);\r\n this.ownerCase.removeFromPools(wps.segmentAngle);\r\n this.ownerCase.removeFromPools(wps.relativeRoughness);\r\n this.ownerCase.removeFromPools(wps.overallU);\r\n this.ownerCase.removeFromPools(wps.inletAmbientTemperature);\r\n this.ownerCase.removeFromPools(wps.outletAmbientTemperature);\r\n }\r\n\r\n override setQuantities() {\r\n super.setQuantities();\r\n this.stepLength.setQuantity(Quantity.LENGTH);\r\n }\r\n\r\n override setDefaultValues() {\r\n super.setDefaultValues();\r\n if (this.stepLength.isUndefined()) {\r\n this.stepLength.setDefaultValue(1.0, unitConverter.units.Length.M);\r\n }\r\n }\r\n\r\n setWaterPipeSegmentsName() {\r\n for (let i = 0; i < this.segments.length; i++) {\r\n this.segments[i].name = `${this.name} - Segment ${i + 1}`;\r\n }\r\n }\r\n\r\n override getChildrenObjectsForRemoval(): BaseObject[] {\r\n const objs = super.getChildrenObjectsForRemoval();\r\n objs.push(...this.segments);\r\n return objs;\r\n }\r\n\r\n getAvailableKpis(): SimulationVariable[] {\r\n if (!this.ownerCase.multiPeriodEnabled) {\r\n return [this.stepLength];\r\n }\r\n return [];\r\n }\r\n\r\n getAvailableParametricStudyParameters(): SimulationVariable[] {\r\n return [this.stepLength];\r\n }\r\n\r\n getAvailableParameters() {\r\n return undefined;\r\n }\r\n\r\n override dePersist(unitOperation: any) {\r\n super.dePersist(unitOperation);\r\n this.stepLength = this.getSimulationVariableSafe(unitOperation.stepLength);\r\n\r\n this.setQuantities();\r\n this.setDefaultValues();\r\n this.setSimulationVariableNames();\r\n }\r\n\r\n dePersistPipeSegments(persistedObj: any) {\r\n if (!persistedObj.segments) {\r\n return;\r\n }\r\n\r\n persistedObj.segments.forEach(isId => {\r\n this.segments.push(this.ownerCase.getOtherBaseObject(isId) as WaterPipeSegment);\r\n });\r\n }\r\n\r\n public override toJSON(): any {\r\n return {\r\n id: this.id,\r\n location: this.location,\r\n key: this.key,\r\n name: this.name,\r\n flowsheetId: this.flowsheetId,\r\n readiness: this.readiness,\r\n comments: this.comments,\r\n category: this.category,\r\n segments: this.segments.map(wps => wps.id),\r\n pipePressureModel: this.pipePressureModel,\r\n thermalCalculationMode: this.thermalCalculationMode,\r\n stepLength: this.stepLength.id,\r\n };\r\n }\r\n}\r\n","export enum HgoHydroteaterCatalystRun {\r\n EOR = 'EOR',\r\n SOR = 'SOR',\r\n}\r\n","export const defaultHgoHydrotreaterModel =\r\n '// GetUnitOpInletVolumetricFlowRate(string UnitOperationName)\\n' +\r\n '// Gets the UnitOperationName and returns the Inlet Volumetric Flowrate\\n' +\r\n '// GetStreamVolumetricFlowRate(string MaterialStreamName)\\n' +\r\n '// Gets the MaterialStreamName as string and returns the volumetric Flowrate of any stream in the flowsheet\\n' +\r\n '// GetStreamFlowRate (string MaterialStreamName, FlowrateBasis basis)\\n' +\r\n '// Gets the MaterialStreamName and \"FlowrateBasis\" and return the flowrate\\n' +\r\n '// Valid Options for FlowrateBasis: \\n' +\r\n '// FlowrateBasis.Mass (returns in TPD)| FlowrateBasis.Volume (returns in kbpcd)\\n' +\r\n '// GetStreamVolumetricFlowRate(string MaterialStreamName) \\n' +\r\n '// Gets the MaterialStreamName as string and returns the volumetric Flowrate of any stream in the flowsheet\\n' +\r\n '// GetStreamCutFlowRate(string streamName, SuncorCuts suncorCut, FlowrateBasis basis)\\n' +\r\n '// Gets streamName, SuncorCut and Flowrate basis and returns the cut flowrate for the given stream\\n ' +\r\n '// Valid options for SuncorCut:\\n ' +\r\n '// SuncorCuts.LightEnd, SuncorCuts.LightNaphta, SuncorCuts.HeavyNaphta, \\n' +\r\n '// SuncorCuts.Distillate, SuncorCuts.LightGasOil, SuncorCuts.HeavyGasOil, \\n' +\r\n '// SuncorCuts.VacGasOil, SuncorCuts.HeavyVacGasOil, SuncorCuts.VacuumResidue \\n' +\r\n '// Calculated Variables:\\n' +\r\n '// Feed composition (all calculated in vol%)\\n' +\r\n '// \"HGOFeedVolumePercent\" , \"LGOFeedVolumePercent\" , \"HVGOFeedVolumePercent\"\\n';\r\n","import { unitOperationsConfig } from '../../_config/unit-operations.config';\r\nimport { SimulationVariable } from '../simulation-variable';\r\nimport { Case } from '../case';\r\nimport { isTypeUndefined } from '../../_utils/utils';\r\nimport { Quantity } from '../../_config/quantity.enum';\r\nimport { ConstrainableObject } from '../_interfaces/constrainable-object';\r\nimport { UnitOperationConstraints } from './unit-operation-constraints';\r\nimport { HgoHydroteaterCatalystRun } from '../../_config/unit-operations/hgo-hydroteater-catalyst-run.enum';\r\nimport { SimulationVariableName } from '../../_config/simulation-variable-name.enum';\r\nimport { defaultHgoHydrotreaterModel } from '../../_config/unit-operations/default-models/default-hgo-hydrotreater-model';\r\nimport { GasContributorUnitOperation } from './gas-contributor-unit-operation';\r\nimport { KpiProvider } from '../_case-study/kpi-provider';\r\n\r\ndeclare let unitConverter: any;\r\n\r\nexport class HgoHydrotreater extends GasContributorUnitOperation implements ConstrainableObject, KpiProvider {\r\n category = unitOperationsConfig.hgoHydrotreater.key;\r\n\r\n fluidAnalysisId: string;\r\n catalystRun: string;\r\n naphthaYield: SimulationVariable;\r\n lgoYield: SimulationVariable;\r\n hgoYield: SimulationVariable;\r\n totalYield: SimulationVariable;\r\n totalInletVolume: SimulationVariable;\r\n hydrogenUse: SimulationVariable;\r\n hydrogenUseRate: SimulationVariable;\r\n h2sProductionRate: SimulationVariable;\r\n h2sProduction: SimulationVariable;\r\n maximumSulfurContent: SimulationVariable;\r\n maximumNitrogen: SimulationVariable;\r\n\r\n constraints: UnitOperationConstraints;\r\n\r\n useCustomModel: boolean;\r\n customModelScript: string;\r\n\r\n constructor(unitOperation: HgoHydrotreater | any, ownerCase: Case) {\r\n super(unitOperation, ownerCase);\r\n this.initValues(unitOperation);\r\n this.setSimulationVariableNames();\r\n }\r\n\r\n getAvailableKpis(): SimulationVariable[] {\r\n if (this.ownerCase.multiPeriodEnabled) {\r\n return [\r\n this.naphthaYield,\r\n this.lgoYield,\r\n this.hgoYield,\r\n this.totalYield,\r\n this.totalInletVolume,\r\n this.ghgIntensity,\r\n this.ghgEmissions,\r\n this.hydrogenUse,\r\n this.hydrogenUseRate,\r\n this.h2sProductionRate,\r\n this.h2sProduction,\r\n ];\r\n }\r\n return [\r\n this.naphthaYield,\r\n this.lgoYield,\r\n this.hgoYield,\r\n this.totalYield,\r\n this.totalInletVolume,\r\n this.ghgIntensity,\r\n this.ghgEmissions,\r\n this.hydrogenUse,\r\n this.hydrogenUseRate,\r\n this.h2sProductionRate,\r\n this.h2sProduction,\r\n this.steamMake600,\r\n this.steamUse600,\r\n this.steamUse900,\r\n this.steamMake900,\r\n this.steamMake150,\r\n this.steamUse150,\r\n this.steamMake50,\r\n this.steamUse50,\r\n this.fuelGasHeatingValue,\r\n this.fuelGasEmissionFactor,\r\n this.energyFlow,\r\n this.flowrate,\r\n ];\r\n }\r\n\r\n override initValues(unitOperation: HgoHydrotreater | any) {\r\n super.initValues(unitOperation);\r\n\r\n this.fluidAnalysisId = unitOperation.fluidAnalysisId || '';\r\n this.catalystRun = unitOperation.catalystRun || HgoHydroteaterCatalystRun.EOR;\r\n this.naphthaYield = new SimulationVariable(unitOperation.naphthaYield, this.ownerCase, this);\r\n this.hgoYield = new SimulationVariable(unitOperation.hgoYield, this.ownerCase, this);\r\n this.lgoYield = new SimulationVariable(unitOperation.lgoYield, this.ownerCase, this);\r\n this.totalYield = new SimulationVariable(unitOperation.totalYield, this.ownerCase, this);\r\n this.totalInletVolume = new SimulationVariable(unitOperation.totalInletVolume, this.ownerCase, this);\r\n this.hydrogenUse = new SimulationVariable(unitOperation.hydrogenUse || {}, this.ownerCase, this);\r\n this.hydrogenUseRate = new SimulationVariable(unitOperation.hydrogenUseRate || {}, this.ownerCase, this);\r\n this.h2sProductionRate = new SimulationVariable(unitOperation.h2sProductionRate || {}, this.ownerCase, this);\r\n this.h2sProduction = new SimulationVariable(unitOperation.h2sProduction || {}, this.ownerCase, this);\r\n this.maximumSulfurContent = new SimulationVariable(unitOperation.maximumSulfurContent, this.ownerCase, this);\r\n this.maximumNitrogen = new SimulationVariable(unitOperation.maximumNitrogen, this.ownerCase, this);\r\n\r\n this.useCustomModel = isTypeUndefined(unitOperation.useCustomModel) ? false : unitOperation.useCustomModel;\r\n this.customModelScript = isTypeUndefined(unitOperation.customModelScript)\r\n ? defaultHgoHydrotreaterModel\r\n : unitOperation.customModelScript;\r\n this.initConstraints();\r\n }\r\n\r\n override setQuantities() {\r\n super.setQuantities();\r\n this.naphthaYield.setQuantity(Quantity.PERCENT);\r\n this.lgoYield.setQuantity(Quantity.PERCENT);\r\n this.hgoYield.setQuantity(Quantity.PERCENT);\r\n this.totalYield.setQuantity(Quantity.PERCENT);\r\n this.totalInletVolume.setQuantity(Quantity.VOLUMETRIC_FLOWRATE);\r\n this.hydrogenUse.setQuantity(Quantity.MOLEFLOWRATE);\r\n this.hydrogenUseRate.setQuantity(Quantity.GAS_STD_VOLUME_PER_VOLUME);\r\n this.h2sProduction.setQuantity(Quantity.MOLEFLOWRATE);\r\n this.h2sProductionRate.setQuantity(Quantity.GAS_STD_VOLUME_PER_VOLUME);\r\n this.maximumSulfurContent.setQuantity(Quantity.MASS_FRACTION);\r\n this.maximumNitrogen.setQuantity(Quantity.MASS_FRACTION);\r\n }\r\n\r\n override setSimulationVariableNames() {\r\n super.setSimulationVariableNames();\r\n this.maximumSulfurContent.setName(SimulationVariableName.MAXIMUM_SULFUR_CONTENT);\r\n this.maximumNitrogen.setName(SimulationVariableName.MAXIMUM_NITROGEN);\r\n\r\n this.naphthaYield.setName(SimulationVariableName.NAPHTHA_YIELD);\r\n this.lgoYield.setName(SimulationVariableName.LGO_YIELD);\r\n this.hgoYield.setName(SimulationVariableName.HGO_YIELD);\r\n this.totalYield.setName(SimulationVariableName.TOTAL_YIELD);\r\n this.totalInletVolume.setName(SimulationVariableName.TOTAL_INLET_VOLUME);\r\n this.hydrogenUse.setName(SimulationVariableName.HYDROGEN_USE);\r\n this.hydrogenUseRate.setName(SimulationVariableName.HYDROGEN_USE_RATE);\r\n this.h2sProduction.setName(SimulationVariableName.H2S_PRODUCTION);\r\n this.h2sProductionRate.setName(SimulationVariableName.H2S_PRODUCTION_RATE);\r\n this.fuelGasHeatingValue.setName(SimulationVariableName.FUEL_GAS_HEATING_VALUE);\r\n this.fuelGasEmissionFactor.setName(SimulationVariableName.FUEL_GAS_EMISSION_FACTOR);\r\n this.energyFlow.setName(SimulationVariableName.ENERGY_FLOW);\r\n this.flowrate.setName(SimulationVariableName.FUEL_GAS_FLOWRATE);\r\n }\r\n\r\n override setDefaultValues() {\r\n super.setDefaultValues();\r\n\r\n if (this.energyFlow.isUndefined()) {\r\n this.energyFlow.setDefaultValue(0.0, unitConverter.units.Energyrate.GJ_H);\r\n }\r\n }\r\n\r\n getAlternativeGhgIntensity(): SimulationVariable {\r\n return undefined;\r\n }\r\n\r\n constraintValueDefined(): boolean {\r\n return this.constraints.anyConstraintValueDefined();\r\n }\r\n\r\n constraintViolated(): boolean {\r\n const inletStream = this.ownerCase.filterSuncorMaterialStreams(s => {\r\n return s.outletUnitOperationId === this.id;\r\n })[0];\r\n return (\r\n inletStream &&\r\n (this.constraints.constraintValueViolated('capacity', inletStream.volumetricFlowrate.value) ||\r\n this.constraints.constraintValueViolated('maximumSulfurContent', inletStream.sulfur.value) ||\r\n this.constraints.constraintValueViolated('maximumNitrogen', inletStream.nitrogen.value))\r\n );\r\n }\r\n\r\n initConstraints() {\r\n this.constraints = new UnitOperationConstraints();\r\n this.constraints.addConstraint('capacity', this.capacity);\r\n this.constraints.addConstraint('minimumFlow', this.minimumFlow);\r\n this.constraints.addConstraint('maximumSulfurContent', this.maximumSulfurContent);\r\n this.constraints.addConstraint('maximumNitrogen', this.maximumNitrogen);\r\n }\r\n\r\n override clearResults() {\r\n super.clearResults();\r\n this.totalInletVolume.value = undefined;\r\n this.naphthaYield.value = undefined;\r\n this.lgoYield.value = undefined;\r\n this.hgoYield.value = undefined;\r\n this.totalYield.value = undefined;\r\n this.h2sProduction.value = undefined;\r\n this.h2sProductionRate.value = undefined;\r\n this.hydrogenUse.value = undefined;\r\n this.hydrogenUseRate.value = undefined;\r\n }\r\n\r\n override dePersist(sup: any) {\r\n super.dePersist(sup);\r\n this.naphthaYield = this.getSimulationVariableSafe(sup.naphthaYield);\r\n this.lgoYield = this.getSimulationVariableSafe(sup.lgoYield);\r\n this.hgoYield = this.getSimulationVariableSafe(sup.hgoYield);\r\n this.totalYield = this.getSimulationVariableSafe(sup.totalYield);\r\n this.totalInletVolume = this.getSimulationVariableSafe(sup.totalInletVolume);\r\n this.hydrogenUse = this.getSimulationVariableSafe(sup.hydrogenUse);\r\n this.hydrogenUseRate = this.getSimulationVariableSafe(sup.hydrogenUseRate);\r\n this.h2sProduction = this.getSimulationVariableSafe(sup.h2sProduction);\r\n this.h2sProductionRate = this.getSimulationVariableSafe(sup.h2sProductionRate);\r\n this.maximumSulfurContent = this.getSimulationVariableSafe(sup.maximumSulfurContent);\r\n this.maximumNitrogen = this.getSimulationVariableSafe(sup.maximumNitrogen);\r\n\r\n this.setQuantities();\r\n this.setDefaultValues();\r\n this.initConstraints();\r\n }\r\n\r\n override detectChanges(another: any): boolean {\r\n const changes = super.detectChanges(another);\r\n return changes || another.customModelScript !== this.customModelScript;\r\n }\r\n}\r\n","import { BaseObject } from '../../base-object';\r\nimport { SimulationVariable } from '../../simulation-variable';\r\nimport { Case } from '../../case';\r\nimport { Quantity } from '../../../_config/quantity.enum';\r\n\r\nexport class WaterSourceInformationStream extends BaseObject {\r\n category = 'water-source-information-stream';\r\n\r\n temperature: SimulationVariable;\r\n pressure: SimulationVariable;\r\n massFlowrate: SimulationVariable;\r\n vaporFraction: SimulationVariable;\r\n simulationVariableId: string;\r\n providerUnitOperationId: string;\r\n\r\n constructor(waterSourceInformationStream: WaterSourceInformationStream | any, ownerCase: Case) {\r\n super(waterSourceInformationStream.id, ownerCase);\r\n this.initValues(waterSourceInformationStream);\r\n this.setQuantities();\r\n }\r\n\r\n private initValues(waterSourceInformationStream: WaterSourceInformationStream | any) {\r\n this.simulationVariableId = waterSourceInformationStream.simulationVariableId;\r\n this.providerUnitOperationId = waterSourceInformationStream.providerUnitOperationId;\r\n this.temperature = new SimulationVariable(waterSourceInformationStream.temperature, this.ownerCase, this);\r\n this.pressure = new SimulationVariable(waterSourceInformationStream.pressure, this.ownerCase, this);\r\n this.massFlowrate = new SimulationVariable(waterSourceInformationStream.massFlowrate, this.ownerCase, this);\r\n this.vaporFraction = new SimulationVariable(waterSourceInformationStream.vaporFraction, this.ownerCase, this);\r\n }\r\n\r\n setQuantities() {\r\n this.temperature.setQuantity(Quantity.TEMPERATURE);\r\n this.pressure.setQuantity(Quantity.PRESSURE);\r\n this.massFlowrate.setQuantity(Quantity.MASSFLOWRATE);\r\n this.vaporFraction.setQuantity(Quantity.FRACTION);\r\n }\r\n\r\n getFullName(): string {\r\n return this.getSimulationVariable().getFullName();\r\n }\r\n\r\n getSimulationVariable(): SimulationVariable {\r\n return this.ownerCase.getSimulationVariable(this.simulationVariableId);\r\n }\r\n\r\n override dePersist(persistedObj: any) {\r\n super.dePersist(persistedObj);\r\n this.temperature = this.getSimulationVariableSafe(persistedObj.temperature);\r\n this.pressure = this.getSimulationVariableSafe(persistedObj.pressure);\r\n this.massFlowrate = this.getSimulationVariableSafe(persistedObj.massFlowrate);\r\n this.vaporFraction = this.getSimulationVariableSafe(persistedObj.vaporFraction);\r\n this.setSimulationVariablesOwner();\r\n this.setQuantities();\r\n }\r\n\r\n toJSON() {\r\n return {\r\n id: this.id,\r\n name: this.name,\r\n category: this.category,\r\n simulationVariableId: this.simulationVariableId,\r\n providerUnitOperationId: this.providerUnitOperationId,\r\n temperature: this.temperature.id,\r\n pressure: this.pressure.id,\r\n massFlowrate: this.massFlowrate.id,\r\n vaporFraction: this.vaporFraction.id,\r\n };\r\n }\r\n}\r\n","import { WaterUnitOperation } from './water-unit-operation';\r\nimport { PressureCalculationMode } from '../../../_config/pressure-calculation-mode.enum';\r\nimport { SimulationVariable } from '../../simulation-variable';\r\nimport { SteamType } from '../../../_config/steam-type.enum';\r\nimport { WaterSourceInformationStream } from './water-source-information-stream';\r\nimport { Case } from '../../case';\r\nimport { isTypeUndefined } from '../../../_utils/utils';\r\nimport { Quantity } from '../../../_config/quantity.enum';\r\nimport { BaseObject } from '../../base-object';\r\nimport { WaterMaterialStream } from '../../_streams/water-material-stream';\r\nimport { KpiProvider } from '../../_case-study/kpi-provider';\r\n\r\nexport abstract class BaseWaterImportUnitOperation extends WaterUnitOperation implements KpiProvider {\r\n pressureCalculationMode: PressureCalculationMode;\r\n outletPressure: SimulationVariable;\r\n steamType: SteamType;\r\n inletSourceInformationStreams: WaterSourceInformationStream[];\r\n\r\n constructor(unitOperation: BaseWaterImportUnitOperation | any, ownerCase: Case) {\r\n super(unitOperation, ownerCase);\r\n this.initValues(unitOperation);\r\n this.setSimulationVariableNames();\r\n }\r\n\r\n override initValues(unitOperation: BaseWaterImportUnitOperation | any) {\r\n super.initValues(unitOperation);\r\n\r\n this.steamType = unitOperation.steamType || SteamType.Steam900;\r\n this.inletSourceInformationStreams = [];\r\n\r\n if (\r\n !isTypeUndefined(unitOperation.inletSourceInformationStreams) &&\r\n unitOperation.inletSourceInformationStreams instanceof Array\r\n ) {\r\n // could be an array of strings\r\n const informationStream = unitOperation.inletSourceInformationStreams.length\r\n ? unitOperation.inletSourceInformationStreams[0]\r\n : undefined;\r\n\r\n // the copies and the original will share the reference to WaterSourceInformationStreams array\r\n // as the copies only make sense for property windows that use template-driven forms\r\n if (informationStream instanceof WaterSourceInformationStream) {\r\n this.inletSourceInformationStreams = unitOperation.inletSourceInformationStreams;\r\n }\r\n }\r\n\r\n this.pressureCalculationMode = unitOperation.pressureCalculationMode || PressureCalculationMode.LOWEST;\r\n this.outletPressure = new SimulationVariable(unitOperation.outletPressure, this.ownerCase, this);\r\n }\r\n\r\n override setQuantities() {\r\n super.setQuantities();\r\n this.outletPressure.setQuantity(Quantity.PRESSURE);\r\n }\r\n\r\n addInformationStream(informationStream: WaterSourceInformationStream) {\r\n const index = this.inletSourceInformationStreams.findIndex(is => is.id === informationStream.id);\r\n if (index > -1) {\r\n return;\r\n }\r\n\r\n informationStream.providerUnitOperationId = informationStream.getSimulationVariable().ownerBaseObject.id;\r\n\r\n if (!informationStream.providerUnitOperationId) {\r\n throw new Error('Unable to set providerUnitOperationId for information Stream');\r\n }\r\n\r\n this.inletSourceInformationStreams.push(informationStream);\r\n this.ownerCase.addToPools(informationStream);\r\n informationStream.addSimVarsToPool();\r\n }\r\n\r\n removeInformationStream(simulationVariableId: string) {\r\n const index = this.inletSourceInformationStreams.findIndex(i => i.simulationVariableId === simulationVariableId);\r\n if (index === -1) {\r\n return;\r\n }\r\n\r\n const informationStream = this.inletSourceInformationStreams.splice(index, 1)[0];\r\n this.ownerCase.removeFromPools(informationStream);\r\n }\r\n\r\n removeInformationStreamsByProviderUnitOperationId(providerUnitOperationId: string) {\r\n const streamsToRemove = this.inletSourceInformationStreams.filter(\r\n s => s.providerUnitOperationId === providerUnitOperationId\r\n );\r\n\r\n for (const informationStream of streamsToRemove) {\r\n this.removeInformationStream(informationStream.simulationVariableId);\r\n }\r\n }\r\n\r\n override getChildrenObjectsForRemoval(): BaseObject[] {\r\n const objs = super.getChildrenObjectsForRemoval();\r\n objs.push(...this.inletSourceInformationStreams);\r\n\r\n return objs;\r\n }\r\n\r\n getStreamComingInToTheUnitOp() {\r\n return this.ownerCase.getStreamsByOutletUnitOperationId(this.id) as WaterMaterialStream[];\r\n }\r\n\r\n getStreamComingOutOfTheUnitOp() {\r\n return this.ownerCase.getStreamsByInletUnitOperationId(this.id) as WaterMaterialStream[];\r\n }\r\n\r\n getAvailableKpis() {\r\n if (!this.ownerCase.multiPeriodEnabled) {\r\n return [\r\n this.getStreamComingOutOfTheUnitOp()[0].massFlowrate,\r\n this.getStreamComingOutOfTheUnitOp()[0].temperature,\r\n this.getStreamComingOutOfTheUnitOp()[0].pressure,\r\n ];\r\n }\r\n return [];\r\n }\r\n\r\n override dePersist(sup: any) {\r\n super.dePersist(sup);\r\n this.outletPressure = this.getSimulationVariableSafe(sup.outletPressure);\r\n }\r\n\r\n dePersistInformationStreams(persistedObj: any) {\r\n // TODO this is temporary...\r\n if (!persistedObj.inletSourceInformationStreams) {\r\n return;\r\n }\r\n\r\n persistedObj.inletSourceInformationStreams.forEach(isId => {\r\n this.inletSourceInformationStreams.push(this.ownerCase.getOtherBaseObject(isId) as WaterSourceInformationStream);\r\n });\r\n }\r\n\r\n protected override isPropertyBlackListed(property: any): boolean {\r\n return super.isPropertyBlackListed(property) || property === this.inletSourceInformationStreams;\r\n }\r\n\r\n override toJSON(): any {\r\n const plainObject = super.toJSON();\r\n plainObject.inletSourceInformationStreams = this.inletSourceInformationStreams.map(i => i.id);\r\n\r\n return plainObject;\r\n }\r\n}\r\n","import { unitOperationsConfig } from '../../../_config/unit-operations.config';\r\nimport { BaseWaterImportUnitOperation } from './base-water-import-unit-operation';\r\n\r\nexport class WaterSourceImport extends BaseWaterImportUnitOperation {\r\n category = unitOperationsConfig.waterSourceImport.key;\r\n}\r\n","import { unitOperationsConfig } from '../../../_config/unit-operations.config';\r\nimport { BaseWaterImportUnitOperation } from './base-water-import-unit-operation';\r\nimport { SimulationVariable } from '../../simulation-variable';\r\nimport { Case } from '../../case';\r\nimport { UnitOperationConstraints } from '../unit-operation-constraints';\r\nimport { Quantity } from '../../../_config/quantity.enum';\r\nimport { SimulationVariableName } from '../../../_config/simulation-variable-name.enum';\r\nimport { KpiProvider } from '../../_case-study/kpi-provider';\r\n\r\ndeclare let unitConverter: any;\r\n\r\nexport class WaterSinkImport extends BaseWaterImportUnitOperation implements KpiProvider {\r\n category = unitOperationsConfig.waterSinkImport.key;\r\n\r\n massFlowrate: SimulationVariable;\r\n pressure: SimulationVariable;\r\n temperature: SimulationVariable;\r\n constraints: UnitOperationConstraints;\r\n\r\n constructor(unitOperation: any | WaterSinkImport, ownerCase: Case) {\r\n super(unitOperation, ownerCase);\r\n this.initValues(unitOperation);\r\n this.setSimulationVariableNames();\r\n }\r\n\r\n override initValues(unitOperation: any) {\r\n super.initValues(unitOperation);\r\n this.massFlowrate = new SimulationVariable(unitOperation.massFlowrate, this.ownerCase, this);\r\n this.pressure = new SimulationVariable(unitOperation.pressure, this.ownerCase, this);\r\n this.temperature = new SimulationVariable(unitOperation.temperature, this.ownerCase, this);\r\n this.initConstraints();\r\n }\r\n\r\n initConstraints() {\r\n this.constraints = new UnitOperationConstraints();\r\n this.constraints.addConstraint('flowrate', this.massFlowrate);\r\n this.constraints.addConstraint('temperature', this.temperature);\r\n this.constraints.addConstraint('pressure', this.pressure);\r\n }\r\n\r\n override setSimulationVariableNames() {\r\n super.setSimulationVariableNames();\r\n this.massFlowrate.setName(SimulationVariableName.FLOWRATE);\r\n this.pressure.setName(SimulationVariableName.PRESSURE);\r\n this.temperature.setName(SimulationVariableName.TEMPERATURE);\r\n }\r\n\r\n override setDefaultValues() {\r\n super.setDefaultValues();\r\n if (this.massFlowrate.isUndefined()) {\r\n this.massFlowrate.setDefaultValue(null, unitConverter.units.Massflowrate.KPPH);\r\n this.massFlowrate.setIsActive(true);\r\n }\r\n if (this.pressure.isUndefined()) {\r\n this.pressure.setDefaultValue(null, unitConverter.units.Pressure.KPAA);\r\n }\r\n\r\n if (this.temperature.isUndefined()) {\r\n this.temperature.setDefaultValue(null, unitConverter.units.Temperature.CELSIUS);\r\n }\r\n }\r\n\r\n override setQuantities() {\r\n super.setQuantities();\r\n this.massFlowrate.setQuantity(Quantity.MASSFLOWRATE);\r\n this.temperature.setQuantity(Quantity.TEMPERATURE);\r\n this.pressure.setQuantity(Quantity.PRESSURE);\r\n }\r\n\r\n override getAvailableKpis(): SimulationVariable[] {\r\n if (!this.ownerCase.multiPeriodEnabled) {\r\n return [\r\n this.getStreamComingInToTheUnitOp()[0].massFlowrate,\r\n this.getStreamComingInToTheUnitOp()[0].temperature,\r\n this.getStreamComingInToTheUnitOp()[0].pressure,\r\n ];\r\n }\r\n return [];\r\n }\r\n\r\n override dePersist(sup: any) {\r\n super.dePersist(sup);\r\n\r\n this.massFlowrate = this.getSimulationVariableSafe(sup.massFlowrate);\r\n this.pressure = this.getSimulationVariableSafe(sup.pressure);\r\n this.temperature = this.getSimulationVariableSafe(sup.temperature);\r\n\r\n this.setDefaultValues();\r\n this.setQuantities();\r\n this.initConstraints();\r\n }\r\n}\r\n","export enum LgoHydroteaterCatalystRun {\r\n EOR = 'EOR',\r\n SOR = 'SOR',\r\n}\r\nexport enum LgoYieldProfile {\r\n HIGH = 'High',\r\n LOW = 'Low',\r\n}\r\n","export const defaultLgoHydrotreaterModel =\r\n '// GetUnitOpInletVolumetricFlowRate(string UnitOperationName)\\n' +\r\n '// Gets the UnitOperationName as string and returns the Inlet Volumetric Flowrate\\n' +\r\n '// GetStreamVolumetricFlowRate(string MaterialStreamName)\\n' +\r\n '// Gets the MaterialStreamName as string and returns the volumetric Flowrate of any stream in the flowsheet\\n' +\r\n '// GetStreamFlowRate (string MaterialStreamName, FlowrateBasis basis)\\n' +\r\n '// Gets the MaterialStreamName and \"FlowrateBasis\" and return the flowrate\\n' +\r\n '// Valid Options for FlowrateBasis: \\n' +\r\n '// FlowrateBasis.Mass (returns in TPD)| FlowrateBasis.Volume (returns in kbpcd)\\n' +\r\n '// GetStreamVolumetricFlowRate(string MaterialStreamName) \\n' +\r\n '// Gets the MaterialStreamName as string and returns the volumetric Flowrate of any stream in the flowsheet\\n' +\r\n '// GetStreamCutFlowRate(string streamName, SuncorCuts suncorCut, FlowrateBasis basis)\\n' +\r\n '// Gets streamName, SuncorCut and Flowrate basis and returns the cut flowrate for the given stream\\n ' +\r\n '// Valid options for SuncorCut:\\n ' +\r\n '// SuncorCuts.LightEnd, SuncorCuts.LightNaphta, SuncorCuts.HeavyNaphta, \\n' +\r\n '// SuncorCuts.Distillate, SuncorCuts.LightGasOil, SuncorCuts.HeavyGasOil, \\n' +\r\n '// SuncorCuts.VacGasOil, SuncorCuts.HeavyVacGasOil, SuncorCuts.VacuumResidue \\n' +\r\n '// Calculated Variables:\\n' +\r\n '// \"NaphthaYield\" , \"LGOYield\" (in vol% basis)\\n' +\r\n '// \"HydrogenUseRate (scf/bbl)\\n';\r\n","import { unitOperationsConfig } from '../../_config/unit-operations.config';\r\nimport { SimulationVariable } from '../simulation-variable';\r\nimport { Case } from '../case';\r\nimport { isTypeUndefined } from '../../_utils/utils';\r\nimport { Quantity } from '../../_config/quantity.enum';\r\nimport { ConstrainableObject } from '../_interfaces/constrainable-object';\r\nimport { UnitOperationConstraints } from './unit-operation-constraints';\r\nimport { LgoHydroteaterCatalystRun, LgoYieldProfile } from '../../_config/unit-operations/lgo-hydroteater.enum';\r\nimport { SimulationVariableName } from '../../_config/simulation-variable-name.enum';\r\nimport { defaultLgoHydrotreaterModel } from '../../_config/unit-operations/default-models/default-lgo-hydrotreater-model';\r\nimport { GasContributorUnitOperation } from './gas-contributor-unit-operation';\r\nimport { KpiProvider } from '../_case-study/kpi-provider';\r\n\r\ndeclare let unitConverter: any;\r\n\r\nexport class LgoHydrotreater extends GasContributorUnitOperation implements ConstrainableObject, KpiProvider {\r\n category = unitOperationsConfig.lgoHydrotreater.key;\r\n catalystRun: string;\r\n yieldProfile: string;\r\n fluidAnalysisId: string;\r\n naphthaYield: SimulationVariable;\r\n lgoYield: SimulationVariable;\r\n hgoYield: SimulationVariable;\r\n totalYield: SimulationVariable;\r\n totalInletVolume: SimulationVariable;\r\n hydrogenUse: SimulationVariable;\r\n hydrogenUseRate: SimulationVariable;\r\n h2sProductionRate: SimulationVariable;\r\n h2sProduction: SimulationVariable;\r\n maximumSulfurContent: SimulationVariable;\r\n maximumNitrogen: SimulationVariable;\r\n\r\n constraints: UnitOperationConstraints;\r\n\r\n useCustomModel: boolean;\r\n customModelScript: string;\r\n\r\n constructor(unitOperation: LgoHydrotreater | any, ownerCase: Case) {\r\n super(unitOperation, ownerCase);\r\n this.initValues(unitOperation);\r\n this.setSimulationVariableNames();\r\n }\r\n\r\n getAvailableKpis(): SimulationVariable[] {\r\n if (this.ownerCase.multiPeriodEnabled) {\r\n return [\r\n this.naphthaYield,\r\n this.lgoYield,\r\n this.hgoYield,\r\n this.totalYield,\r\n this.totalInletVolume,\r\n this.ghgIntensity,\r\n this.ghgEmissions,\r\n this.hydrogenUse,\r\n this.hydrogenUseRate,\r\n this.h2sProductionRate,\r\n this.h2sProduction,\r\n ];\r\n }\r\n return [\r\n this.naphthaYield,\r\n this.lgoYield,\r\n this.hgoYield,\r\n this.totalYield,\r\n this.totalInletVolume,\r\n this.ghgIntensity,\r\n this.ghgEmissions,\r\n this.hydrogenUse,\r\n this.hydrogenUseRate,\r\n this.h2sProductionRate,\r\n this.h2sProduction,\r\n this.steamMake600,\r\n this.steamUse600,\r\n this.steamUse900,\r\n this.steamMake900,\r\n this.steamMake150,\r\n this.steamUse150,\r\n this.steamMake50,\r\n this.steamUse50,\r\n this.fuelGasHeatingValue,\r\n this.fuelGasEmissionFactor,\r\n this.energyFlow,\r\n this.flowrate,\r\n ];\r\n }\r\n\r\n override initValues(unitOperation: LgoHydrotreater | any) {\r\n super.initValues(unitOperation);\r\n\r\n this.fluidAnalysisId = unitOperation.fluidAnalysisId || '';\r\n this.catalystRun = unitOperation.catalystRun || LgoHydroteaterCatalystRun.EOR;\r\n this.yieldProfile = unitOperation.yieldProfile || LgoYieldProfile.HIGH;\r\n this.naphthaYield = new SimulationVariable(unitOperation.naphthaYield, this.ownerCase, this);\r\n this.lgoYield = new SimulationVariable(unitOperation.lgoYield, this.ownerCase, this);\r\n this.hgoYield = new SimulationVariable(unitOperation.hgoYield, this.ownerCase, this);\r\n this.totalYield = new SimulationVariable(unitOperation.totalYield, this.ownerCase, this);\r\n this.totalInletVolume = new SimulationVariable(unitOperation.totalInletVolume, this.ownerCase, this);\r\n this.hydrogenUse = new SimulationVariable(unitOperation.hydrogenUse || {}, this.ownerCase, this);\r\n this.hydrogenUseRate = new SimulationVariable(unitOperation.hydrogenUseRate || {}, this.ownerCase, this);\r\n this.h2sProductionRate = new SimulationVariable(unitOperation.h2sProductionRate || {}, this.ownerCase, this);\r\n this.h2sProduction = new SimulationVariable(unitOperation.h2sProduction || {}, this.ownerCase, this);\r\n this.maximumSulfurContent = new SimulationVariable(unitOperation.maximumSulfurContent, this.ownerCase, this);\r\n this.maximumNitrogen = new SimulationVariable(unitOperation.maximumNitrogen, this.ownerCase, this);\r\n\r\n this.useCustomModel = isTypeUndefined(unitOperation.useCustomModel) ? false : unitOperation.useCustomModel;\r\n this.customModelScript = isTypeUndefined(unitOperation.customModelScript)\r\n ? defaultLgoHydrotreaterModel\r\n : unitOperation.customModelScript;\r\n this.initConstraints();\r\n }\r\n\r\n override setQuantities() {\r\n super.setQuantities();\r\n this.naphthaYield.setQuantity(Quantity.PERCENT);\r\n this.lgoYield.setQuantity(Quantity.PERCENT);\r\n this.hgoYield.setQuantity(Quantity.PERCENT);\r\n this.totalYield.setQuantity(Quantity.PERCENT);\r\n this.totalInletVolume.setQuantity(Quantity.VOLUMETRIC_FLOWRATE);\r\n this.hydrogenUse.setQuantity(Quantity.MOLEFLOWRATE);\r\n this.hydrogenUseRate.setQuantity(Quantity.GAS_STD_VOLUME_PER_VOLUME);\r\n this.h2sProduction.setQuantity(Quantity.MOLEFLOWRATE);\r\n this.h2sProductionRate.setQuantity(Quantity.GAS_STD_VOLUME_PER_VOLUME);\r\n this.maximumSulfurContent.setQuantity(Quantity.MASS_FRACTION);\r\n this.maximumNitrogen.setQuantity(Quantity.MASS_FRACTION);\r\n }\r\n\r\n override setSimulationVariableNames() {\r\n super.setSimulationVariableNames();\r\n this.maximumSulfurContent.setName(SimulationVariableName.MAXIMUM_SULFUR_CONTENT);\r\n this.maximumNitrogen.setName(SimulationVariableName.MAXIMUM_NITROGEN);\r\n\r\n this.naphthaYield.setName(SimulationVariableName.NAPHTHA_YIELD);\r\n this.lgoYield.setName(SimulationVariableName.LGO_YIELD);\r\n this.hgoYield.setName(SimulationVariableName.HGO_YIELD);\r\n this.totalYield.setName(SimulationVariableName.TOTAL_YIELD);\r\n this.totalInletVolume.setName(SimulationVariableName.TOTAL_INLET_VOLUME);\r\n this.hydrogenUse.setName(SimulationVariableName.HYDROGEN_USE);\r\n this.hydrogenUseRate.setName(SimulationVariableName.HYDROGEN_USE_RATE);\r\n this.h2sProduction.setName(SimulationVariableName.H2S_PRODUCTION);\r\n this.h2sProductionRate.setName(SimulationVariableName.H2S_PRODUCTION_RATE);\r\n this.fuelGasHeatingValue.setName(SimulationVariableName.FUEL_GAS_HEATING_VALUE);\r\n this.fuelGasEmissionFactor.setName(SimulationVariableName.FUEL_GAS_EMISSION_FACTOR);\r\n this.energyFlow.setName(SimulationVariableName.ENERGY_FLOW);\r\n this.flowrate.setName(SimulationVariableName.FUEL_GAS_FLOWRATE);\r\n }\r\n\r\n override setDefaultValues() {\r\n super.setDefaultValues();\r\n\r\n if (this.energyFlow.isUndefined()) {\r\n this.energyFlow.setDefaultValue(0.0, unitConverter.units.Energyrate.GJ_H);\r\n }\r\n }\r\n\r\n getAlternativeGhgIntensity(): SimulationVariable {\r\n return undefined;\r\n }\r\n\r\n constraintValueDefined(): boolean {\r\n return this.constraints.anyConstraintValueDefined();\r\n }\r\n\r\n constraintViolated(): boolean {\r\n const inletStream = this.ownerCase.filterSuncorMaterialStreams(s => {\r\n return s.outletUnitOperationId === this.id;\r\n })[0];\r\n return (\r\n inletStream &&\r\n (this.constraints.constraintValueViolated('capacity', inletStream.volumetricFlowrate.value) ||\r\n this.constraints.constraintValueViolated('maximumSulfurContent', inletStream.sulfur.value) ||\r\n this.constraints.constraintValueViolated('maximumNitrogen', inletStream.nitrogen.value))\r\n );\r\n }\r\n\r\n initConstraints() {\r\n this.constraints = new UnitOperationConstraints();\r\n this.constraints.addConstraint('capacity', this.capacity);\r\n this.constraints.addConstraint('minimumFlow', this.minimumFlow);\r\n this.constraints.addConstraint('maximumSulfurContent', this.maximumSulfurContent);\r\n this.constraints.addConstraint('maximumNitrogen', this.maximumNitrogen);\r\n }\r\n\r\n override clearResults() {\r\n super.clearResults();\r\n this.naphthaYield.value = undefined;\r\n this.lgoYield.value = undefined;\r\n this.hgoYield.value = undefined;\r\n this.totalYield.value = undefined;\r\n this.totalInletVolume.value = undefined;\r\n this.hydrogenUse.value = undefined;\r\n this.h2sProduction.value = undefined;\r\n\r\n if (this.useCustomModel) {\r\n this.h2sProductionRate.value = undefined;\r\n this.hydrogenUseRate.value = undefined;\r\n }\r\n }\r\n\r\n override dePersist(sup: any) {\r\n super.dePersist(sup);\r\n this.naphthaYield = this.getSimulationVariableSafe(sup.naphthaYield);\r\n this.lgoYield = this.getSimulationVariableSafe(sup.lgoYield);\r\n this.hgoYield = this.getSimulationVariableSafe(sup.hgoYield);\r\n this.totalYield = this.getSimulationVariableSafe(sup.totalYield);\r\n this.totalInletVolume = this.getSimulationVariableSafe(sup.totalInletVolume);\r\n this.hydrogenUse = this.getSimulationVariableSafe(sup.hydrogenUse);\r\n this.hydrogenUseRate = this.getSimulationVariableSafe(sup.hydrogenUseRate);\r\n this.h2sProduction = this.getSimulationVariableSafe(sup.h2sProduction);\r\n this.h2sProductionRate = this.getSimulationVariableSafe(sup.h2sProductionRate);\r\n this.maximumSulfurContent = this.getSimulationVariableSafe(sup.maximumSulfurContent);\r\n this.maximumNitrogen = this.getSimulationVariableSafe(sup.maximumNitrogen);\r\n\r\n this.setQuantities();\r\n this.setDefaultValues();\r\n this.initConstraints();\r\n }\r\n\r\n override detectChanges(another: any): boolean {\r\n const changes = super.detectChanges(another);\r\n return changes || another.customModelScript !== this.customModelScript;\r\n }\r\n}\r\n","import { WaterUnitOperation } from './water-unit-operation';\r\nimport { unitOperationsConfig } from '../../../_config/unit-operations.config';\r\nimport { SimulationVariable } from '../../simulation-variable';\r\nimport { Case } from '../../case';\r\nimport { Quantity } from '../../../_config/quantity.enum';\r\nimport { UnitOperationConstraints } from '../unit-operation-constraints';\r\nimport { SimulationVariableName } from '../../../_config/simulation-variable-name.enum';\r\nimport { VariableStatus } from '../../../_config/variable-status.enum';\r\nimport { KpiProvider } from '../../_case-study/kpi-provider';\r\nimport { ParameterProvider } from '../../_case-study/parameter-provider';\r\n\r\ndeclare let unitConverter: any;\r\n\r\nexport class WaterBoiler extends WaterUnitOperation implements KpiProvider, ParameterProvider {\r\n category = unitOperationsConfig.waterBoiler.key;\r\n outletTemperature: SimulationVariable;\r\n outletPressure: SimulationVariable;\r\n outletVaporFraction: SimulationVariable;\r\n power: SimulationVariable;\r\n\r\n massCapacity: SimulationVariable;\r\n minimumMassFlowrate: SimulationVariable;\r\n constraints: UnitOperationConstraints;\r\n fuelGasEmissionFactor: SimulationVariable;\r\n fuelGasHeatingValue: SimulationVariable;\r\n ghgEmissions: SimulationVariable;\r\n\r\n constructor(unitOperation: any | WaterBoiler, ownerCase: Case) {\r\n super(unitOperation, ownerCase);\r\n this.initValues(unitOperation);\r\n this.setSimulationVariableNames();\r\n }\r\n\r\n override initValues(unitOperation: any) {\r\n super.initValues(unitOperation);\r\n this.outletTemperature = new SimulationVariable(unitOperation.outletTemperature, this.ownerCase, this);\r\n this.outletPressure = new SimulationVariable(unitOperation.outletPressure, this.ownerCase, this);\r\n this.outletVaporFraction = new SimulationVariable(unitOperation.outletVaporFraction, this.ownerCase, this);\r\n this.power = new SimulationVariable(unitOperation.power, this.ownerCase, this);\r\n this.fuelGasEmissionFactor = new SimulationVariable(\r\n unitOperation.fuelGasEmissionFactor || {},\r\n this.ownerCase,\r\n this\r\n );\r\n this.fuelGasHeatingValue = new SimulationVariable(unitOperation.fuelGasHeatingValue || {}, this.ownerCase, this);\r\n this.ghgEmissions = new SimulationVariable(unitOperation.ghgEmissions || {}, this.ownerCase, this);\r\n\r\n this.massCapacity = new SimulationVariable(unitOperation.massCapacity, this.ownerCase, this);\r\n this.minimumMassFlowrate = new SimulationVariable(unitOperation.minimumMassFlowrate, this.ownerCase, this);\r\n\r\n this.setQuantities(); // it is ok here?\r\n this.initConstraints();\r\n }\r\n\r\n initConstraints() {\r\n this.constraints = new UnitOperationConstraints();\r\n this.constraints.addConstraint('massCapacity', this.massCapacity);\r\n this.constraints.addConstraint('minimumMassFlowrate', this.minimumMassFlowrate);\r\n }\r\n\r\n override clearResults() {\r\n super.clearResults();\r\n if (this.outletTemperature.isSolverCalculated()) {\r\n this.outletTemperature.value = undefined;\r\n }\r\n\r\n if (this.outletPressure.isSolverCalculated()) {\r\n this.outletPressure.value = undefined;\r\n }\r\n\r\n if (this.power.isSolverCalculated()) {\r\n this.power.value = undefined;\r\n }\r\n\r\n if (this.outletVaporFraction.isSolverCalculated()) {\r\n this.outletVaporFraction.value = undefined;\r\n }\r\n\r\n if (this.fuelGasHeatingValue.isSolverCalculated()) {\r\n this.fuelGasHeatingValue.variableStatus = VariableStatus.UNDEFINED;\r\n this.setDefaultValues();\r\n }\r\n\r\n if (this.fuelGasEmissionFactor.isSolverCalculated()) {\r\n this.fuelGasEmissionFactor.variableStatus = VariableStatus.UNDEFINED;\r\n this.setDefaultValues();\r\n }\r\n }\r\n\r\n override setSimulationVariableNames() {\r\n super.setSimulationVariableNames();\r\n this.outletPressure.setName(SimulationVariableName.OUTLET_PRESSURE);\r\n this.outletTemperature.setName(SimulationVariableName.OUTLET_TEMPERATURE);\r\n this.outletVaporFraction.setName(SimulationVariableName.OUTLET_VAPOR_FRACTION);\r\n this.power.setName(SimulationVariableName.POWER);\r\n this.fuelGasEmissionFactor.setName(SimulationVariableName.FUEL_GAS_EMISSION_FACTOR);\r\n this.fuelGasHeatingValue.setName(SimulationVariableName.FUEL_GAS_HEATING_VALUE);\r\n this.ghgEmissions.setName(SimulationVariableName.GHG_EMISSIONS);\r\n\r\n this.massCapacity.setName(SimulationVariableName.MAXIMUM_FEED_CAPACITY);\r\n this.minimumMassFlowrate.setName(SimulationVariableName.MINIMUM_MASS_FLOWRATE);\r\n }\r\n\r\n override setQuantities() {\r\n super.setQuantities();\r\n this.outletPressure.setQuantity(Quantity.PRESSURE);\r\n this.outletTemperature.setQuantity(Quantity.TEMPERATURE);\r\n this.outletVaporFraction.setQuantity(Quantity.FRACTION);\r\n this.power.setQuantity(Quantity.POWER);\r\n\r\n this.massCapacity.setQuantity(Quantity.MASSFLOWRATE);\r\n this.minimumMassFlowrate.setQuantity(Quantity.MASSFLOWRATE);\r\n\r\n this.ghgEmissions.setQuantity(Quantity.MASSFLOWRATE);\r\n this.fuelGasEmissionFactor.setQuantity(Quantity.MASS_EMISSIONS_PER_VOLUME);\r\n this.fuelGasHeatingValue.setQuantity(Quantity.ENERGY_PER_VOLUME);\r\n }\r\n\r\n override setDefaultValues() {\r\n if (this.massCapacity.isUndefined()) {\r\n this.massCapacity.setDefaultValue(null, unitConverter.units.Massflowrate.KPPH);\r\n }\r\n\r\n if (this.minimumMassFlowrate.isUndefined()) {\r\n this.minimumMassFlowrate.setDefaultValue(null, unitConverter.units.Massflowrate.KPPH);\r\n }\r\n\r\n if (this.fuelGasEmissionFactor.isUndefined()) {\r\n this.fuelGasEmissionFactor.setDefaultValue(0.0702, unitConverter.units.MassEmissionsPerVolume.KG_SCF);\r\n }\r\n\r\n if (this.fuelGasHeatingValue.isUndefined()) {\r\n this.fuelGasHeatingValue.setDefaultValue(1088.3, unitConverter.units.EnergyPerVolume.BTU_SCF);\r\n }\r\n\r\n if (this.ghgEmissions.isUndefined()) {\r\n this.ghgEmissions.setDefaultValue(0.0, unitConverter.units.Massflowrate.MMTPA);\r\n }\r\n super.setDefaultValues();\r\n }\r\n\r\n getAvailableKpis(): SimulationVariable[] {\r\n if (this.ownerCase.multiPeriodEnabled) {\r\n return [this.outletVaporFraction, this.outletTemperature, this.outletPressure, this.power, this.ghgEmissions];\r\n }\r\n return [\r\n this.outletVaporFraction,\r\n this.outletTemperature,\r\n this.outletPressure,\r\n this.power,\r\n this.fuelGasEmissionFactor,\r\n this.fuelGasHeatingValue,\r\n this.ghgEmissions,\r\n ];\r\n }\r\n\r\n getAvailableParametricStudyParameters(): SimulationVariable[] {\r\n return [this.outletTemperature, this.outletPressure, this.outletVaporFraction];\r\n }\r\n\r\n getAvailableParameters() {\r\n return undefined;\r\n }\r\n\r\n override dePersist(sup: any) {\r\n super.dePersist(sup);\r\n this.outletTemperature = this.getSimulationVariableSafe(sup.outletTemperature);\r\n this.outletPressure = this.getSimulationVariableSafe(sup.outletPressure);\r\n this.outletVaporFraction = this.getSimulationVariableSafe(sup.outletVaporFraction);\r\n this.power = this.getSimulationVariableSafe(sup.power);\r\n this.massCapacity = this.getSimulationVariableSafe(sup.massCapacity);\r\n this.minimumMassFlowrate = this.getSimulationVariableSafe(sup.minimumMassFlowrate);\r\n this.ghgEmissions = this.getSimulationVariableSafe(sup.ghgEmissions);\r\n this.fuelGasEmissionFactor = this.getSimulationVariableSafe(sup.fuelGasEmissionFactor);\r\n this.fuelGasHeatingValue = this.getSimulationVariableSafe(sup.fuelGasHeatingValue);\r\n this.setQuantities();\r\n this.setDefaultValues();\r\n this.initConstraints();\r\n }\r\n}\r\n","import { unitOperationsConfig } from '../../../_config/unit-operations.config';\r\nimport { DistributionRatioVariable } from '../distribution-ratio-variable';\r\nimport { Case } from '../../case';\r\nimport { PressureCalculationMode } from '../../../_config/pressure-calculation-mode.enum';\r\nimport { SimulationVariable } from '../../simulation-variable';\r\nimport { Quantity } from '../../../_config/quantity.enum';\r\nimport { BaseWaterSplitter } from './base-water-splitter';\r\n\r\nexport class WaterHeader extends BaseWaterSplitter {\r\n category = unitOperationsConfig.waterHeader.key;\r\n\r\n pressureCalculationMode: PressureCalculationMode | string;\r\n outletPressure: SimulationVariable;\r\n\r\n override isOptimizable: boolean;\r\n override distributionRatioVariables: DistributionRatioVariable[] = [];\r\n\r\n constructor(unitOperation: WaterHeader | any, ownerCase: Case) {\r\n super(unitOperation, ownerCase);\r\n this.initValues(unitOperation);\r\n }\r\n\r\n override initValues(unitOperation: WaterHeader | any) {\r\n super.initValues(unitOperation);\r\n\r\n this.pressureCalculationMode = unitOperation.pressureCalculationMode || PressureCalculationMode.LOWEST;\r\n this.outletPressure = new SimulationVariable(unitOperation.outletPressure, this.ownerCase, this);\r\n this.setQuantities();\r\n }\r\n\r\n override setSimulationVariableNames() {\r\n super.setSimulationVariableNames();\r\n this.outletPressure.setName('Outlet Pressure');\r\n }\r\n\r\n override setQuantities() {\r\n super.setQuantities();\r\n this.outletPressure.setQuantity(Quantity.PRESSURE);\r\n }\r\n\r\n override dePersist(unitOperation: any) {\r\n super.dePersist(unitOperation);\r\n this.outletPressure = this.getSimulationVariableSafe(unitOperation.outletPressure);\r\n this.setQuantities();\r\n this.setDefaultValues();\r\n }\r\n}\r\n","import { SimulationVariable } from '../simulation-variable';\r\nimport { UnitOperationConstraints } from './unit-operation-constraints';\r\nimport { unitOperationsConfig } from '../../_config/unit-operations.config';\r\nimport { Case } from '../case';\r\nimport { Quantity } from '../../_config/quantity.enum';\r\nimport { GasContributorUnitOperation } from './gas-contributor-unit-operation';\r\nimport { KpiProvider } from '../_case-study/kpi-provider';\r\nimport { SimulationVariableName } from '../../_config/simulation-variable-name.enum';\r\nimport { ParameterProvider } from '../_case-study/parameter-provider';\r\n\r\ndeclare let unitConverter: any;\r\n\r\nexport class HydrogenPlant extends GasContributorUnitOperation implements KpiProvider, ParameterProvider {\r\n category = unitOperationsConfig.hydrogenPlant.key;\r\n\r\n constraints: UnitOperationConstraints;\r\n\r\n hydrogenGHGIntensity: SimulationVariable;\r\n hydrogenProduction: SimulationVariable;\r\n maximumHydrogenProduction: SimulationVariable;\r\n constructor(unitOperation: any, ownerCase: Case) {\r\n super(unitOperation, ownerCase);\r\n this.initValues(unitOperation);\r\n this.hydrogenGHGIntensity = new SimulationVariable(unitOperation.hydrogenGHGIntensity, this.ownerCase, this);\r\n this.hydrogenProduction = new SimulationVariable(unitOperation.hydrogenProduction, this.ownerCase, this);\r\n this.maximumHydrogenProduction = new SimulationVariable(\r\n unitOperation.maximumHydrogenProduction,\r\n this.ownerCase,\r\n this\r\n );\r\n this.setSimulationVariableNames();\r\n }\r\n\r\n getAvailableKpis(): SimulationVariable[] {\r\n if (this.ownerCase.multiPeriodEnabled) {\r\n return [\r\n this.maximumHydrogenProduction,\r\n this.hydrogenProduction,\r\n this.hydrogenGHGIntensity,\r\n this.ghgEmissions,\r\n this.opexTotal,\r\n this.capexTotal,\r\n ];\r\n }\r\n return [\r\n this.maximumHydrogenProduction,\r\n this.hydrogenProduction,\r\n this.hydrogenGHGIntensity,\r\n this.ghgEmissions,\r\n this.steamUse900,\r\n this.steamMake900,\r\n this.steamMake600,\r\n this.steamUse600,\r\n this.steamMake150,\r\n this.steamUse150,\r\n this.steamMake50,\r\n this.steamUse50,\r\n this.fuelGasHeatingValue,\r\n this.fuelGasEmissionFactor,\r\n this.energyFlow,\r\n this.flowrate,\r\n this.opexTotal,\r\n this.capexTotal,\r\n ];\r\n }\r\n\r\n getAvailableParametricStudyParameters(): SimulationVariable[] {\r\n return [this.ghgIntensity, this.opexVar, this.opexGasDiesel, this.opexPower, this.opexFixed, this.capexAmortized];\r\n }\r\n\r\n getAvailableParameters() {\r\n return undefined;\r\n }\r\n\r\n getAlternativeGhgIntensity(): SimulationVariable {\r\n return undefined;\r\n }\r\n\r\n override initValues(unitOperation: any | HydrogenPlant): void {\r\n super.initValues(unitOperation);\r\n }\r\n\r\n override setQuantities() {\r\n super.setQuantities();\r\n this.hydrogenGHGIntensity.setQuantity(Quantity.MASS_PER_STD_H2_VOLUME);\r\n this.hydrogenProduction.setQuantity(Quantity.MOLEFLOWRATE);\r\n this.maximumHydrogenProduction.setQuantity(Quantity.MOLEFLOWRATE);\r\n }\r\n\r\n override dePersist(sup: any) {\r\n super.dePersist(sup);\r\n this.hydrogenGHGIntensity = this.getSimulationVariableSafe(sup.hydrogenGHGIntensity);\r\n this.hydrogenProduction = this.getSimulationVariableSafe(sup.hydrogenProduction);\r\n this.maximumHydrogenProduction = this.getSimulationVariableSafe(sup.maximumHydrogenProduction);\r\n this.setQuantities();\r\n this.setDefaultValues();\r\n }\r\n\r\n override setDefaultValues(): void {\r\n if (this.hydrogenGHGIntensity.isUndefined()) {\r\n this.hydrogenGHGIntensity.setDefaultValue(0.0);\r\n }\r\n if (this.energyFlow.isUndefined()) {\r\n this.energyFlow.setDefaultValue(0.0, unitConverter.units.Energyrate.GJ_H);\r\n }\r\n\r\n super.setDefaultValues();\r\n }\r\n\r\n constraintValueDefined() {\r\n return this.constraints.anyConstraintValueDefined();\r\n }\r\n\r\n override setSimulationVariableNames() {\r\n super.setSimulationVariableNames();\r\n this.maximumHydrogenProduction.setName(SimulationVariableName.MAXIMUM_HYDROGEN_PRODUCTION);\r\n this.hydrogenProduction.setName(SimulationVariableName.HYDROGEN_PRODUCTION);\r\n this.hydrogenGHGIntensity.setName(SimulationVariableName.PROCESS_GHG_INTENSITY);\r\n this.fuelGasHeatingValue.setName(SimulationVariableName.FUEL_GAS_HEATING_VALUE);\r\n this.fuelGasEmissionFactor.setName(SimulationVariableName.FUEL_GAS_EMISSION_FACTOR);\r\n this.energyFlow.setName(SimulationVariableName.ENERGY_FLOW);\r\n this.flowrate.setName(SimulationVariableName.FUEL_GAS_FLOWRATE);\r\n }\r\n}\r\n","import { SimulationVariable } from '../simulation-variable';\r\nimport { UnitOperationConstraints } from './unit-operation-constraints';\r\nimport { unitOperationsConfig } from '../../_config/unit-operations.config';\r\nimport { Case } from '../case';\r\nimport { Quantity } from '../../_config/quantity.enum';\r\nimport { GasContributorUnitOperation } from './gas-contributor-unit-operation';\r\nimport { KpiProvider } from '../_case-study/kpi-provider';\r\nimport { SimulationVariableName } from '../../_config/simulation-variable-name.enum';\r\nimport { ParameterProvider } from '../_case-study/parameter-provider';\r\n\r\ndeclare let unitConverter: any;\r\n\r\nexport class SulfurPlant extends GasContributorUnitOperation implements KpiProvider, ParameterProvider {\r\n category = unitOperationsConfig.sulfurPlant.key;\r\n\r\n constraints: UnitOperationConstraints;\r\n\r\n sulfurGHGIntensity: SimulationVariable;\r\n sulfurFlowrate: SimulationVariable;\r\n sulfurCapacity: SimulationVariable;\r\n constructor(unitOperation: any, ownerCase: Case) {\r\n super(unitOperation, ownerCase);\r\n this.initValues(unitOperation);\r\n this.sulfurGHGIntensity = new SimulationVariable(unitOperation.sulfurGHGIntensity, this.ownerCase, this);\r\n this.sulfurFlowrate = new SimulationVariable(unitOperation.sulfurFlowrate, this.ownerCase, this);\r\n this.sulfurCapacity = new SimulationVariable(unitOperation.sulfurCapacity, this.ownerCase, this);\r\n this.setSimulationVariableNames();\r\n }\r\n\r\n getAvailableKpis(): SimulationVariable[] {\r\n if (this.ownerCase.multiPeriodEnabled) {\r\n return [\r\n this.sulfurCapacity,\r\n this.sulfurFlowrate,\r\n this.sulfurGHGIntensity,\r\n this.ghgEmissions,\r\n this.opexTotal,\r\n this.capexTotal,\r\n ];\r\n }\r\n return [\r\n this.sulfurCapacity,\r\n this.sulfurFlowrate,\r\n this.sulfurGHGIntensity,\r\n this.ghgEmissions,\r\n this.steamUse900,\r\n this.steamMake900,\r\n this.steamMake600,\r\n this.steamUse600,\r\n this.steamMake150,\r\n this.steamUse150,\r\n this.steamMake50,\r\n this.steamUse50,\r\n this.fuelGasHeatingValue,\r\n this.fuelGasEmissionFactor,\r\n this.energyFlow,\r\n this.flowrate,\r\n this.opexTotal,\r\n this.capexTotal,\r\n ];\r\n }\r\n\r\n getAvailableParametricStudyParameters(): SimulationVariable[] {\r\n return [this.ghgIntensity, this.opexVar, this.opexGasDiesel, this.opexPower, this.opexFixed, this.capexAmortized];\r\n }\r\n\r\n getAvailableParameters() {\r\n return undefined;\r\n }\r\n\r\n override clearResults() {\r\n super.clearResults();\r\n this.sulfurFlowrate.value = undefined;\r\n }\r\n\r\n getAlternativeGhgIntensity(): SimulationVariable {\r\n return undefined;\r\n }\r\n\r\n override initValues(unitOperation: any | SulfurPlant): void {\r\n super.initValues(unitOperation);\r\n }\r\n\r\n override setDefaultValues(): void {\r\n if (this.sulfurGHGIntensity.isUndefined()) {\r\n this.sulfurGHGIntensity.setDefaultValue(0.0);\r\n }\r\n if (this.energyFlow.isUndefined()) {\r\n this.energyFlow.setDefaultValue(0.0, unitConverter.units.Energyrate.GJ_H);\r\n }\r\n\r\n super.setDefaultValues();\r\n }\r\n\r\n override setQuantities() {\r\n super.setQuantities();\r\n this.sulfurGHGIntensity.setQuantity(Quantity.MASS_PER_STD_H2_VOLUME);\r\n this.sulfurFlowrate.setQuantity(Quantity.MOLEFLOWRATE);\r\n this.sulfurCapacity.setQuantity(Quantity.MOLEFLOWRATE);\r\n }\r\n\r\n override dePersist(sup: any) {\r\n super.dePersist(sup);\r\n this.sulfurGHGIntensity = this.getSimulationVariableSafe(sup.sulfurGHGIntensity);\r\n this.sulfurFlowrate = this.getSimulationVariableSafe(sup.sulfurFlowrate);\r\n this.sulfurCapacity = this.getSimulationVariableSafe(sup.sulfurCapacity);\r\n this.setQuantities();\r\n this.setDefaultValues();\r\n }\r\n\r\n constraintValueDefined() {\r\n return this.constraints.anyConstraintValueDefined();\r\n }\r\n\r\n override setSimulationVariableNames() {\r\n super.setSimulationVariableNames();\r\n this.sulfurCapacity.setName(SimulationVariableName.SULFUR_CAPACITY);\r\n this.sulfurFlowrate.setName(SimulationVariableName.SULFUR_FLOWRATE);\r\n this.sulfurGHGIntensity.setName(SimulationVariableName.PROCESS_GHG_INTENSITY);\r\n this.fuelGasHeatingValue.setName(SimulationVariableName.FUEL_GAS_HEATING_VALUE);\r\n this.fuelGasEmissionFactor.setName(SimulationVariableName.FUEL_GAS_EMISSION_FACTOR);\r\n this.energyFlow.setName(SimulationVariableName.ENERGY_FLOW);\r\n this.flowrate.setName(SimulationVariableName.FUEL_GAS_FLOWRATE);\r\n }\r\n}\r\n","import { UnitOperation } from '../../unit-operation';\r\nimport { Case } from '../../case';\r\nimport { unitOperationsConfig } from '../../../_config/unit-operations.config';\r\n\r\nexport class FuelGasUtilityUnitOperation extends UnitOperation {\r\n category = unitOperationsConfig.fuelGasUtilityUnitOperation.key;\r\n isSolved: boolean;\r\n\r\n constructor(unitOperation: FuelGasUtilityUnitOperation | any, ownerCase: Case) {\r\n super(unitOperation, ownerCase);\r\n this.initValues(unitOperation);\r\n }\r\n\r\n override initValues(unitOperation: any) {\r\n this.isSolved = unitOperation.isSolved;\r\n }\r\n\r\n override clearResults() {\r\n super.clearResults();\r\n this.isSolved = false;\r\n }\r\n\r\n override setSimulationVariableNames() {}\r\n\r\n override get isFlowsheetOwner() {\r\n return true;\r\n }\r\n}\r\n","import { UnitOperation } from '../../unit-operation';\r\n\r\nexport abstract class FuelGasUnitOperation extends UnitOperation {\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n override initValues(unitOperation: any) {}\r\n\r\n override setDefaultValues() {}\r\n\r\n override setQuantities() {}\r\n}\r\n","import { Quantity } from '../../../_config/quantity.enum';\r\nimport { unitOperationsConfig } from '../../../_config/unit-operations.config';\r\nimport { Case } from '../../case';\r\nimport { SimulationVariable } from '../../simulation-variable';\r\nimport { FuelGasUnitOperation } from './fuel-gas-unit-operation';\r\nimport { SimulationVariableName } from '../../../_config/simulation-variable-name.enum';\r\nimport { KpiProvider } from '../../_case-study/kpi-provider';\r\n\r\ndeclare let unitConverter: any;\r\n\r\nexport class FuelGasFlare extends FuelGasUnitOperation implements KpiProvider {\r\n category = unitOperationsConfig.fuelGasFlare.key;\r\n flowrate: SimulationVariable;\r\n fuelGasEmissionFactor: SimulationVariable;\r\n ghgEmissions: SimulationVariable;\r\n\r\n constructor(unitOperation: any | FuelGasFlare, ownerCase: Case) {\r\n super(unitOperation, ownerCase);\r\n this.initValues(unitOperation);\r\n }\r\n\r\n override initValues(unitOperation: any) {\r\n super.initValues(unitOperation);\r\n this.flowrate = new SimulationVariable(unitOperation.flowrate || {}, this.ownerCase, this);\r\n this.fuelGasEmissionFactor = new SimulationVariable(\r\n unitOperation.fuelGasEmissionFactor || {},\r\n this.ownerCase,\r\n this\r\n );\r\n this.ghgEmissions = new SimulationVariable(unitOperation.ghgEmissions || {}, this.ownerCase, this);\r\n this.setQuantities();\r\n }\r\n\r\n override setSimulationVariableNames() {\r\n this.flowrate.setName(SimulationVariableName.FLOWRATE);\r\n this.fuelGasEmissionFactor.setName(SimulationVariableName.FUEL_GAS_EMISSION_FACTOR);\r\n this.ghgEmissions.setName(SimulationVariableName.GHG_EMISSIONS);\r\n }\r\n\r\n override setDefaultValues() {\r\n if (this.fuelGasEmissionFactor.isUndefined()) {\r\n this.fuelGasEmissionFactor.setDefaultValue(0.0702, unitConverter.units.MassEmissionsPerVolume.KG_M3);\r\n }\r\n if (this.ghgEmissions.isUndefined()) {\r\n this.ghgEmissions.setDefaultValue(null, unitConverter.units.Massflowrate.MMTPA);\r\n }\r\n }\r\n\r\n override setQuantities() {\r\n super.setQuantities();\r\n this.flowrate.setQuantity(Quantity.MOLARFLOWRATE);\r\n this.ghgEmissions.setQuantity(Quantity.MASSFLOWRATE);\r\n this.fuelGasEmissionFactor.setQuantity(Quantity.MASS_EMISSIONS_PER_VOLUME);\r\n }\r\n\r\n getAvailableKpis(): SimulationVariable[] {\r\n if (this.ownerCase.multiPeriodEnabled) {\r\n return [this.ghgEmissions];\r\n }\r\n return [this.flowrate, this.fuelGasEmissionFactor, this.ghgEmissions];\r\n }\r\n\r\n override dePersist(sup: any) {\r\n super.dePersist(sup);\r\n this.flowrate = this.getSimulationVariableSafe(sup.flowrate);\r\n this.fuelGasEmissionFactor = this.getSimulationVariableSafe(sup.fuelGasEmissionFactor);\r\n this.ghgEmissions = this.getSimulationVariableSafe(sup.ghgEmissions);\r\n this.setQuantities();\r\n }\r\n}\r\n","import { unitOperationsConfig } from '../../../_config/unit-operations.config';\r\nimport { Case } from '../../case';\r\nimport { SimulationVariable } from '../../simulation-variable';\r\nimport { FuelGasUnitOperation } from './fuel-gas-unit-operation';\r\nimport { Quantity } from '../../../_config/quantity.enum';\r\nimport { SimulationVariableName } from '../../../_config/simulation-variable-name.enum';\r\nimport { KpiProvider } from '../../_case-study/kpi-provider';\r\n\r\nexport class FuelGasSink extends FuelGasUnitOperation implements KpiProvider {\r\n category = unitOperationsConfig.fuelGasSink.key;\r\n flowrate: SimulationVariable;\r\n\r\n constructor(unitOperation: any | FuelGasSink, ownerCase: Case) {\r\n super(unitOperation, ownerCase);\r\n this.initValues(unitOperation);\r\n }\r\n\r\n override initValues(unitOperation: any) {\r\n super.initValues(unitOperation);\r\n this.flowrate = new SimulationVariable(unitOperation.flowrate || {}, this.ownerCase, this);\r\n this.setQuantities();\r\n }\r\n\r\n override setQuantities() {\r\n super.setQuantities();\r\n this.flowrate.setQuantity(Quantity.MOLARFLOWRATE);\r\n }\r\n\r\n override setSimulationVariableNames() {\r\n this.flowrate.setName(SimulationVariableName.FLOWRATE);\r\n }\r\n\r\n getAvailableKpis(): SimulationVariable[] {\r\n if (!this.ownerCase.multiPeriodEnabled) {\r\n return [this.flowrate];\r\n }\r\n return [];\r\n }\r\n\r\n override dePersist(sup: any) {\r\n super.dePersist(sup);\r\n this.flowrate = this.getSimulationVariableSafe(sup.flowrate);\r\n this.setQuantities();\r\n }\r\n}\r\n","import { SimulationVariable } from '../../simulation-variable';\r\nimport { BaseObject } from '../../base-object';\r\nimport { Case } from '../../case';\r\nimport { Quantity } from '../../../_config/quantity.enum';\r\n\r\nexport class EnergyStream extends BaseObject {\r\n category = 'energyStream';\r\n energyFlow: SimulationVariable;\r\n providerUnitOperationId: string;\r\n\r\n constructor(energyStream: EnergyStream | any, ownerCase: Case) {\r\n super(energyStream.id, ownerCase);\r\n this.initValues(energyStream);\r\n this.setQuantities();\r\n }\r\n\r\n private initValues(energyStream: EnergyStream | any) {\r\n this.providerUnitOperationId = energyStream.providerUnitOperationId;\r\n this.energyFlow = new SimulationVariable(energyStream.energyFlow, this.ownerCase, this);\r\n }\r\n\r\n setQuantities() {\r\n this.energyFlow.setQuantity(Quantity.POWER);\r\n }\r\n\r\n getFullName() {\r\n return `${this.ownerCase.getUnitOperation(this.providerUnitOperationId).name} - Thermal Energy Use`;\r\n }\r\n\r\n override dePersist(persistedObj: any) {\r\n super.dePersist(persistedObj);\r\n this.energyFlow = this.getSimulationVariableSafe(persistedObj.energyFlow);\r\n this.setSimulationVariablesOwner();\r\n this.setQuantities();\r\n }\r\n\r\n toJSON() {\r\n return {\r\n id: this.id,\r\n name: this.name,\r\n category: this.category,\r\n providerUnitOperationId: this.providerUnitOperationId,\r\n energyFlow: this.energyFlow.id,\r\n };\r\n }\r\n}\r\n","import { unitOperationsConfig } from '../../../_config/unit-operations.config';\r\nimport { Case } from '../../case';\r\nimport { SimulationVariable } from '../../simulation-variable';\r\nimport { Quantity } from '../../../_config/quantity.enum';\r\nimport { EnergyStream } from './energy-stream';\r\nimport { isTypeUndefined } from '../../../_utils/utils';\r\nimport { FuelGasUnitOperation } from './fuel-gas-unit-operation';\r\nimport { BaseObject } from '../../base-object';\r\nimport { UnitOperationConstraints } from '../unit-operation-constraints';\r\nimport { SimulationVariableName } from '../../../_config/simulation-variable-name.enum';\r\nimport { KpiProvider } from '../../_case-study/kpi-provider';\r\n\r\nexport class FuelGasSinkImport extends FuelGasUnitOperation implements KpiProvider {\r\n category = unitOperationsConfig.fuelGasSinkImport.key;\r\n heatFlow: SimulationVariable;\r\n energyStreams: EnergyStream[];\r\n constraints: UnitOperationConstraints;\r\n\r\n constructor(unitOperation: any | FuelGasSinkImport, ownerCase: Case) {\r\n super(unitOperation, ownerCase);\r\n this.initValues(unitOperation);\r\n this.setSimulationVariableNames();\r\n }\r\n\r\n override initValues(unitOperation: any | FuelGasSinkImport) {\r\n super.initValues(unitOperation);\r\n this.energyStreams = [];\r\n\r\n if (!isTypeUndefined(unitOperation.energyStreams) && unitOperation.energyStreams instanceof Array) {\r\n // could be an array of strings\r\n const energyStream = unitOperation.energyStreams.length ? unitOperation.energyStreams[0] : undefined;\r\n\r\n // the copies and the original will share the reference to EnergyStreams array\r\n // as the copies only make sense for property windows that use template-driven forms\r\n if (energyStream instanceof EnergyStream) {\r\n this.energyStreams = unitOperation.energyStreams;\r\n }\r\n }\r\n\r\n this.heatFlow = new SimulationVariable(unitOperation.heatFlow, this.ownerCase, this);\r\n this.initConstraints();\r\n }\r\n\r\n initConstraints() {\r\n this.constraints = new UnitOperationConstraints();\r\n this.constraints.addConstraint('energyDemand', this.heatFlow);\r\n }\r\n\r\n override setSimulationVariableNames() {\r\n this.heatFlow.setName(SimulationVariableName.ENERGY_DEMAND);\r\n }\r\n\r\n override setQuantities() {\r\n this.heatFlow.setQuantity(Quantity.ENERGYRATE);\r\n }\r\n\r\n addEnergyStream(energyStream: EnergyStream) {\r\n const index = this.energyStreams.findIndex(\r\n es => es.providerUnitOperationId === energyStream.providerUnitOperationId\r\n );\r\n if (index > -1) {\r\n return;\r\n }\r\n\r\n if (!energyStream.providerUnitOperationId) {\r\n throw new Error('Unable to set providerUnitOperationId for energy Stream');\r\n }\r\n\r\n this.energyStreams.push(energyStream);\r\n this.ownerCase.addToPools(energyStream);\r\n energyStream.addSimVarsToPool();\r\n }\r\n\r\n removeEnergyStream(providerUnitOperationId: string) {\r\n const index = this.energyStreams.findIndex(i => i.providerUnitOperationId === providerUnitOperationId);\r\n if (index === -1) {\r\n return;\r\n }\r\n\r\n const energyStream = this.energyStreams.splice(index, 1)[0];\r\n this.ownerCase.removeFromPools(energyStream);\r\n }\r\n\r\n override getChildrenObjectsForRemoval(): BaseObject[] {\r\n const objs = super.getChildrenObjectsForRemoval();\r\n objs.push(...this.energyStreams);\r\n return objs;\r\n }\r\n\r\n protected override isPropertyBlackListed(property: any): boolean {\r\n return super.isPropertyBlackListed(property) || property === this.energyStreams;\r\n }\r\n\r\n getAvailableKpis(): SimulationVariable[] {\r\n if (!this.ownerCase.multiPeriodEnabled) {\r\n return [this.heatFlow];\r\n }\r\n return [];\r\n }\r\n\r\n dePersistEnergyStreams(persistedObj: any) {\r\n // TODO this is temporary...\r\n if (!persistedObj.energyStreams) {\r\n return;\r\n }\r\n\r\n persistedObj.energyStreams.forEach(isId => {\r\n this.energyStreams.push(this.ownerCase.getOtherBaseObject(isId) as EnergyStream);\r\n });\r\n }\r\n\r\n override dePersist(sup: any) {\r\n super.dePersist(sup);\r\n\r\n this.heatFlow = this.getSimulationVariableSafe(sup.heatFlow);\r\n this.setQuantities();\r\n this.initConstraints();\r\n }\r\n\r\n override toJSON(): any {\r\n const plainObject = super.toJSON();\r\n plainObject.energyStreams = this.energyStreams.map(i => i.id);\r\n\r\n return plainObject;\r\n }\r\n}\r\n","import { BaseObject } from '../../base-object';\r\nimport { SimulationVariable } from '../../simulation-variable';\r\nimport { Case } from '../../case';\r\nimport { Quantity } from '../../../_config/quantity.enum';\r\n\r\nexport class FuelGasSourceInformationStream extends BaseObject {\r\n category = 'fuelGasSourceInformationStream';\r\n flowrate: SimulationVariable;\r\n providerUnitOperationId: string;\r\n\r\n constructor(informationStream: FuelGasSourceInformationStream | any, ownerCase: Case) {\r\n super(informationStream.id, ownerCase);\r\n this.initValues(informationStream);\r\n this.setQuantities();\r\n }\r\n\r\n private initValues(informationStream: FuelGasSourceInformationStream) {\r\n this.providerUnitOperationId = informationStream.providerUnitOperationId;\r\n this.flowrate = new SimulationVariable(informationStream.flowrate, this.ownerCase, this);\r\n }\r\n\r\n setQuantities() {\r\n this.flowrate.setQuantity(Quantity.MOLARFLOWRATE);\r\n }\r\n\r\n getFullName() {\r\n return `${this.ownerCase.getUnitOperation(this.providerUnitOperationId).name}`;\r\n }\r\n\r\n override dePersist(persistedObj: any) {\r\n super.dePersist(persistedObj);\r\n this.flowrate = this.getSimulationVariableSafe(persistedObj.flowrate);\r\n this.setSimulationVariablesOwner();\r\n this.setQuantities();\r\n }\r\n\r\n toJSON() {\r\n return {\r\n id: this.id,\r\n name: this.name,\r\n category: this.category,\r\n providerUnitOperationId: this.providerUnitOperationId,\r\n flowrate: this.flowrate.id,\r\n };\r\n }\r\n}\r\n","import { FuelGasUnitOperation } from './fuel-gas-unit-operation';\r\nimport { unitOperationsConfig } from '../../../_config/unit-operations.config';\r\nimport { Case } from '../../case';\r\nimport { isTypeUndefined } from '../../../_utils/utils';\r\nimport { FuelGasSourceInformationStream } from './fuel-gas-source-information-stream';\r\nimport { BaseObject } from '../../base-object';\r\nimport { SimulationVariable } from '../../simulation-variable';\r\nimport { FuelGasMaterialStream } from '../../_streams/fuel-gas-material-stream';\r\nimport { KpiProvider } from '../../_case-study/kpi-provider';\r\n\r\nexport class FuelGasSourceImport extends FuelGasUnitOperation implements KpiProvider {\r\n category = unitOperationsConfig.fuelGasSourceImport.key;\r\n inletSourceInformationStreams: FuelGasSourceInformationStream[];\r\n\r\n constructor(unitOperation: any | FuelGasSourceImport, ownerCase: Case) {\r\n super(unitOperation, ownerCase);\r\n\r\n this.initValues(unitOperation);\r\n this.setSimulationVariableNames();\r\n }\r\n\r\n override initValues(unitOperation: any | FuelGasSourceImport) {\r\n super.initValues(unitOperation);\r\n\r\n this.inletSourceInformationStreams = [];\r\n\r\n if (\r\n !isTypeUndefined(unitOperation.inletSourceInformationStreams) &&\r\n unitOperation.inletSourceInformationStreams instanceof Array\r\n ) {\r\n // could be an array of strings\r\n const informationStream = unitOperation.inletSourceInformationStreams.length\r\n ? unitOperation.inletSourceInformationStreams[0]\r\n : undefined;\r\n\r\n // the copies and the original will share the reference to inletSourceInformationStreams array\r\n // as the copies only make sense for property windows that use template-driven forms\r\n if (informationStream instanceof FuelGasSourceInformationStream) {\r\n this.inletSourceInformationStreams = unitOperation.inletSourceInformationStreams;\r\n }\r\n }\r\n }\r\n\r\n override setQuantities() {}\r\n\r\n override setSimulationVariableNames() {}\r\n\r\n addInformationStream(informationStream: FuelGasSourceInformationStream) {\r\n const index = this.inletSourceInformationStreams.findIndex(\r\n is => is.providerUnitOperationId === informationStream.providerUnitOperationId\r\n );\r\n\r\n if (index > -1) {\r\n return;\r\n }\r\n\r\n if (!informationStream.providerUnitOperationId) {\r\n throw new Error('Unable to set providerUnitOperationId for information Stream');\r\n }\r\n\r\n this.inletSourceInformationStreams.push(informationStream);\r\n this.ownerCase.addToPools(informationStream);\r\n informationStream.addSimVarsToPool();\r\n }\r\n\r\n removeInformationStream(providerUnitOperationId: string) {\r\n const index = this.inletSourceInformationStreams.findIndex(\r\n i => i.providerUnitOperationId === providerUnitOperationId\r\n );\r\n if (index === -1) {\r\n return;\r\n }\r\n\r\n const informationStream = this.inletSourceInformationStreams.splice(index, 1)[0];\r\n this.ownerCase.removeFromPools(informationStream);\r\n }\r\n\r\n override getChildrenObjectsForRemoval(): BaseObject[] {\r\n const objs = super.getChildrenObjectsForRemoval();\r\n objs.push(...this.inletSourceInformationStreams);\r\n return objs;\r\n }\r\n\r\n protected override isPropertyBlackListed(property: any): boolean {\r\n return super.isPropertyBlackListed(property) || property === this.inletSourceInformationStreams;\r\n }\r\n\r\n getStreamComingOutOfTheUnitOp() {\r\n return this.ownerCase.getStreamsByInletUnitOperationId(this.id) as FuelGasMaterialStream[];\r\n }\r\n\r\n getAvailableKpis(): SimulationVariable[] {\r\n if (!this.ownerCase.multiPeriodEnabled) {\r\n return [this.getStreamComingOutOfTheUnitOp()[0].flowrate];\r\n }\r\n return [];\r\n }\r\n\r\n override dePersist(persistedObj: any) {\r\n super.dePersist(persistedObj);\r\n this.setQuantities();\r\n }\r\n\r\n dePersistInformationStreams(persistedObj: any) {\r\n persistedObj.inletSourceInformationStreams.forEach(isId => {\r\n this.inletSourceInformationStreams.push(\r\n this.ownerCase.getOtherBaseObject(isId) as FuelGasSourceInformationStream\r\n );\r\n });\r\n }\r\n\r\n override toJSON(): any {\r\n const plainObject = super.toJSON();\r\n plainObject.inletSourceInformationStreams = this.inletSourceInformationStreams.map(i => i.id);\r\n\r\n return plainObject;\r\n }\r\n}\r\n","import { unitOperationsConfig } from '../../../_config/unit-operations.config';\r\nimport { Case } from '../../case';\r\nimport { FuelGasUnitOperation } from './fuel-gas-unit-operation';\r\n\r\nexport class FuelGasMixer extends FuelGasUnitOperation {\r\n category = unitOperationsConfig.fuelGasMixer.key;\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-useless-constructor\r\n constructor(unitOperation: any | FuelGasMixer, ownerCase: Case) {\r\n super(unitOperation, ownerCase);\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n override initValues(unitOperation: any) {}\r\n\r\n override setSimulationVariableNames() {}\r\n\r\n override setQuantities() {}\r\n}\r\n","import { FuelGasUnitOperation } from './fuel-gas-unit-operation';\r\nimport { unitOperationsConfig } from '../../../_config/unit-operations.config';\r\nimport { SimulationVariable } from '../../simulation-variable';\r\nimport { Case } from '../../case';\r\nimport { Quantity } from '../../../_config/quantity.enum';\r\nimport { BaseObject } from '../../base-object';\r\nimport { SimulationVariableName } from '../../../_config/simulation-variable-name.enum';\r\nimport { KpiProvider } from '../../_case-study/kpi-provider';\r\nimport { ParameterProvider } from '../../_case-study/parameter-provider';\r\n\r\nexport class FuelGasSource extends FuelGasUnitOperation implements KpiProvider, ParameterProvider {\r\n category = unitOperationsConfig.fuelGasSource.key;\r\n flowrate: SimulationVariable;\r\n fluidAnalysisId: string;\r\n isOptimizable: boolean;\r\n\r\n constructor(unitOperation: any | FuelGasSource, ownerCase: Case) {\r\n super(unitOperation, ownerCase);\r\n this.initValues(unitOperation);\r\n this.setSimulationVariableNames();\r\n }\r\n\r\n override initValues(unitOperation: any) {\r\n this.flowrate = new SimulationVariable(unitOperation.flowrate, this.ownerCase, this);\r\n this.fluidAnalysisId = unitOperation.fluidAnalysisId || '';\r\n\r\n if (typeof unitOperation.isOptimizable === 'undefined') {\r\n this.isOptimizable = false;\r\n } else {\r\n this.isOptimizable = !!unitOperation.isOptimizable;\r\n }\r\n this.setQuantities();\r\n }\r\n\r\n override clearResults() {\r\n super.clearResults();\r\n\r\n if (this.isOptimizable) {\r\n this.flowrate.value = null;\r\n }\r\n }\r\n\r\n override overwriteValues(another: BaseObject) {\r\n super.overwriteValues(another);\r\n const fgs = another as FuelGasSource;\r\n this.isOptimizable = fgs.isOptimizable;\r\n this.fluidAnalysisId = fgs.fluidAnalysisId;\r\n }\r\n\r\n override setSimulationVariableNames() {\r\n this.flowrate.setName(SimulationVariableName.FLOWRATE);\r\n }\r\n\r\n override setQuantities() {\r\n this.flowrate.setQuantity(Quantity.MOLARFLOWRATE);\r\n }\r\n\r\n getAvailableKpis(): SimulationVariable[] {\r\n return [this.flowrate];\r\n }\r\n\r\n getAvailableParametricStudyParameters(): SimulationVariable[] {\r\n return [this.flowrate];\r\n }\r\n\r\n getAvailableParameters() {\r\n return undefined;\r\n }\r\n\r\n override dePersist(persistedObj: any) {\r\n super.dePersist(persistedObj);\r\n this.flowrate = this.getSimulationVariableSafe(persistedObj.flowrate);\r\n this.isOptimizable = persistedObj.isOptimizable;\r\n\r\n this.setQuantities();\r\n this.setDefaultValues();\r\n }\r\n}\r\n","import { FuelGasUnitOperation } from './fuel-gas-unit-operation';\r\nimport { DistributionRatioVariable } from '../distribution-ratio-variable';\r\nimport { isTypeUndefined } from '../../../_utils/utils';\r\nimport { SuncorMaterialStream } from '../../_streams/suncor-material-stream';\r\n\r\nexport abstract class BaseFuelGasSplitter extends FuelGasUnitOperation {\r\n abstract override category: string;\r\n\r\n isOptimizable: boolean;\r\n distributionRatioVariables: DistributionRatioVariable[] = [];\r\n\r\n override initValues(unitOperation: BaseFuelGasSplitter | any) {\r\n super.initValues(unitOperation);\r\n\r\n this.isOptimizable = isTypeUndefined(unitOperation.isOptimizable) ? false : unitOperation.isOptimizable;\r\n if (unitOperation.distributionRatioVariables instanceof Array) {\r\n for (const dv of unitOperation.distributionRatioVariables) {\r\n this.distributionRatioVariables.push(new DistributionRatioVariable(dv.unitOperationId, dv.value));\r\n }\r\n }\r\n }\r\n\r\n addDistributionVariable(unitOperationId: string) {\r\n this.emptyDistributionValues();\r\n this.distributionRatioVariables.push(new DistributionRatioVariable(unitOperationId, null));\r\n }\r\n\r\n private emptyDistributionValues() {\r\n for (const dv of this.distributionRatioVariables) {\r\n dv.value = null;\r\n }\r\n }\r\n\r\n findDistributionRatioVariable(unitOperationId: string): DistributionRatioVariable {\r\n return this.distributionRatioVariables.find(drv => {\r\n return drv.unitOperationId === unitOperationId;\r\n });\r\n }\r\n\r\n findDistributionRatioVariableName(i: number): string {\r\n const dv = this.distributionRatioVariables[i];\r\n\r\n if (dv) {\r\n const uo = this.ownerCase.getUnitOperation(dv.unitOperationId);\r\n\r\n const streams = this.ownerCase.filterAllMaterialStreams((ms: SuncorMaterialStream) => {\r\n return ms.outletUnitOperationId === uo?.id;\r\n });\r\n\r\n return streams.length ? streams[0].outletUnitOperation.name : undefined;\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n findDistributionRatioVariableIndex(unitOperationId: string) {\r\n return this.distributionRatioVariables.indexOf(this.findDistributionRatioVariable(unitOperationId));\r\n }\r\n\r\n removeDistributionRatioVariable(unitOperationId: string): void {\r\n const index = this.findDistributionRatioVariableIndex(unitOperationId);\r\n\r\n if (index >= 0) {\r\n this.distributionRatioVariables.splice(index, 1);\r\n }\r\n }\r\n}\r\n","import { unitOperationsConfig } from '../../../_config/unit-operations.config';\r\nimport { Case } from '../../case';\r\nimport { BaseObject } from '../../base-object';\r\nimport { BaseFuelGasSplitter } from './base-fuel-gas-splitter';\r\n\r\nexport class FuelGasSplitter extends BaseFuelGasSplitter {\r\n category = unitOperationsConfig.fuelGasSplitter.key;\r\n\r\n constructor(unitOperation: any, ownerCase: Case) {\r\n super(unitOperation, ownerCase);\r\n this.initValues(unitOperation);\r\n }\r\n\r\n override initValues(unitOperation: any) {\r\n super.initValues(unitOperation);\r\n this.setQuantities();\r\n }\r\n\r\n override clearResults() {\r\n super.clearResults();\r\n }\r\n\r\n override overwriteValues(another: BaseObject) {\r\n const fgs = another as FuelGasSplitter;\r\n this.isOptimizable = fgs.isOptimizable;\r\n\r\n this.name = another.name;\r\n for (let i = 0; i < fgs.distributionRatioVariables.length; i++) {\r\n this.distributionRatioVariables[i].value = fgs.distributionRatioVariables[i].value;\r\n }\r\n }\r\n\r\n setOptimizable(isOptimizable: boolean) {\r\n this.isOptimizable = isOptimizable;\r\n }\r\n\r\n override setSimulationVariableNames() {}\r\n}\r\n","import { unitOperationsConfig } from '../../../_config/unit-operations.config';\r\nimport { Case } from '../../case';\r\nimport { FuelGasUnitOperation } from './fuel-gas-unit-operation';\r\nimport { SimulationVariable } from '../../simulation-variable';\r\nimport { Quantity } from '../../../_config/quantity.enum';\r\nimport { SimulationVariableName } from '../../../_config/simulation-variable-name.enum';\r\nimport { KpiProvider } from '../../_case-study/kpi-provider';\r\nimport { ParameterProvider } from '../../_case-study/parameter-provider';\r\n\r\nexport class FuelGasAmineContactor extends FuelGasUnitOperation implements KpiProvider, ParameterProvider {\r\n category = unitOperationsConfig.fuelGasAmineContactor.key;\r\n h2SRemovalFraction: SimulationVariable;\r\n\r\n constructor(unitOperation: any | FuelGasAmineContactor, ownerCase: Case) {\r\n super(unitOperation, ownerCase);\r\n this.initValues(unitOperation);\r\n }\r\n\r\n override initValues(unitOperation: any) {\r\n super.initValues(unitOperation);\r\n this.h2SRemovalFraction = new SimulationVariable(unitOperation.h2SRemovalFraction || {}, this.ownerCase, this);\r\n this.setQuantities();\r\n }\r\n\r\n override setSimulationVariableNames() {\r\n this.h2SRemovalFraction.setName(SimulationVariableName.H2S_REMOVAL);\r\n }\r\n\r\n override setQuantities() {\r\n super.setQuantities();\r\n this.h2SRemovalFraction.setQuantity(Quantity.PERCENT);\r\n }\r\n\r\n getAvailableKpis(): SimulationVariable[] {\r\n return [this.h2SRemovalFraction];\r\n }\r\n\r\n getAvailableParametricStudyParameters(): SimulationVariable[] {\r\n return [this.h2SRemovalFraction];\r\n }\r\n\r\n getAvailableParameters() {\r\n return undefined;\r\n }\r\n\r\n override dePersist(sup: any) {\r\n super.dePersist(sup);\r\n this.h2SRemovalFraction = this.getSimulationVariableSafe(sup.h2SRemovalFraction);\r\n this.setQuantities();\r\n }\r\n}\r\n","import { WaterUnitOperation } from './water-unit-operation';\r\nimport { unitOperationsConfig } from '../../../_config/unit-operations.config';\r\nimport { Case } from '../../case';\r\nimport { SimulationVariable } from '../../simulation-variable';\r\nimport { Quantity } from '../../../_config/quantity.enum';\r\nimport { UnitOperationConstraints } from '../unit-operation-constraints';\r\nimport { SimulationVariableName } from '../../../_config/simulation-variable-name.enum';\r\nimport { VariableStatus } from '../../../_config/variable-status.enum';\r\nimport { KpiProvider } from '../../_case-study/kpi-provider';\r\nimport { ParameterProvider } from '../../_case-study/parameter-provider';\r\n\r\ndeclare let unitConverter: any;\r\n\r\nexport class WaterCogeneration extends WaterUnitOperation implements KpiProvider, ParameterProvider {\r\n category = unitOperationsConfig.waterCogeneration.key;\r\n heatRate: SimulationVariable;\r\n power: SimulationVariable;\r\n quality: SimulationVariable;\r\n\r\n fuelGasEmissionFactor: SimulationVariable;\r\n fuelGasHeatingValue: SimulationVariable;\r\n ghgEmissions: SimulationVariable;\r\n\r\n otsgEnergyDemand: SimulationVariable;\r\n turbineEnergyDemand: SimulationVariable;\r\n totalEnergyDemand: SimulationVariable;\r\n\r\n massCapacity: SimulationVariable;\r\n minimumMassFlowrate: SimulationVariable;\r\n constraints: UnitOperationConstraints;\r\n\r\n useCustomModel: boolean;\r\n hrsgScript: string;\r\n\r\n constructor(unitOperation: any | WaterCogeneration, ownerCase: Case) {\r\n super(unitOperation, ownerCase);\r\n this.initValues(unitOperation);\r\n this.setSimulationVariableNames();\r\n }\r\n\r\n override initValues(unitOperation: any) {\r\n super.initValues(unitOperation);\r\n this.heatRate = new SimulationVariable(unitOperation.heatRate, this.ownerCase, this);\r\n this.power = new SimulationVariable(unitOperation.power, this.ownerCase, this);\r\n this.quality = new SimulationVariable(unitOperation.quality, this.ownerCase, this);\r\n\r\n this.fuelGasEmissionFactor = new SimulationVariable(\r\n unitOperation.fuelGasEmissionFactor || {},\r\n this.ownerCase,\r\n this\r\n );\r\n this.fuelGasHeatingValue = new SimulationVariable(unitOperation.fuelGasHeatingValue || {}, this.ownerCase, this);\r\n this.ghgEmissions = new SimulationVariable(unitOperation.ghgEmissions || {}, this.ownerCase, this);\r\n\r\n this.otsgEnergyDemand = new SimulationVariable(unitOperation.otsgEnergyDemand || {}, this.ownerCase, this);\r\n this.turbineEnergyDemand = new SimulationVariable(unitOperation.turbineEnergyDemand || {}, this.ownerCase, this);\r\n this.totalEnergyDemand = new SimulationVariable(unitOperation.totalEnergyDemand || {}, this.ownerCase, this);\r\n\r\n this.useCustomModel = !!unitOperation.useCustomModel;\r\n this.hrsgScript = unitOperation.hrsgScript || '';\r\n\r\n this.massCapacity = new SimulationVariable(unitOperation.massCapacity, this.ownerCase, this);\r\n this.minimumMassFlowrate = new SimulationVariable(unitOperation.minimumMassFlowrate, this.ownerCase, this);\r\n\r\n this.initConstraints();\r\n }\r\n\r\n override setSimulationVariableNames() {\r\n super.setSimulationVariableNames();\r\n this.heatRate.setName(SimulationVariableName.HEAT_RATE);\r\n this.power.setName(SimulationVariableName.POWER);\r\n this.quality.setName(SimulationVariableName.QUALITY);\r\n this.otsgEnergyDemand.setName(SimulationVariableName.OTSG_ENERGY_DEMAND);\r\n this.turbineEnergyDemand.setName(SimulationVariableName.TURBINE_ENERGY_DEMAND);\r\n this.totalEnergyDemand.setName(SimulationVariableName.TOTAL_ENERGY_DEMAND);\r\n this.fuelGasEmissionFactor.setName(SimulationVariableName.FUEL_GAS_EMISSION_FACTOR);\r\n this.fuelGasHeatingValue.setName(SimulationVariableName.FUEL_GAS_HEATING_VALUE);\r\n this.ghgEmissions.setName(SimulationVariableName.GHG_EMISSIONS);\r\n this.massCapacity.setName(SimulationVariableName.MAXIMUM_FEED_CAPACITY);\r\n this.minimumMassFlowrate.setName(SimulationVariableName.MINIMUM_MASS_FLOWRATE);\r\n }\r\n\r\n initConstraints() {\r\n this.constraints = new UnitOperationConstraints();\r\n this.constraints.addConstraint('massCapacity', this.massCapacity);\r\n this.constraints.addConstraint('minimumMassFlowrate', this.minimumMassFlowrate);\r\n }\r\n\r\n override setQuantities() {\r\n super.setQuantities();\r\n this.heatRate.setQuantity(Quantity.ENERGY_PER_POWER);\r\n this.power.setQuantity(Quantity.POWER);\r\n this.quality.setQuantity(Quantity.FRACTION);\r\n\r\n this.ghgEmissions.setQuantity(Quantity.MASSFLOWRATE);\r\n this.fuelGasEmissionFactor.setQuantity(Quantity.MASS_EMISSIONS_PER_VOLUME);\r\n this.fuelGasHeatingValue.setQuantity(Quantity.ENERGY_PER_VOLUME);\r\n\r\n this.otsgEnergyDemand.setQuantity(Quantity.ENERGYRATE);\r\n this.turbineEnergyDemand.setQuantity(Quantity.ENERGYRATE);\r\n this.totalEnergyDemand.setQuantity(Quantity.ENERGYRATE);\r\n\r\n this.massCapacity.setQuantity(Quantity.MASSFLOWRATE);\r\n this.minimumMassFlowrate.setQuantity(Quantity.MASSFLOWRATE);\r\n }\r\n\r\n override setDefaultValues() {\r\n if (this.fuelGasEmissionFactor.isUndefined()) {\r\n this.fuelGasEmissionFactor.setDefaultValue(0.0702, unitConverter.units.MassEmissionsPerVolume.KG_SCF);\r\n }\r\n if (this.fuelGasHeatingValue.isUndefined()) {\r\n this.fuelGasHeatingValue.setDefaultValue(1088.3, unitConverter.units.EnergyPerVolume.BTU_SCF);\r\n }\r\n if (this.heatRate.isUndefined()) {\r\n this.heatRate.setDefaultValue(12687, unitConverter.units.EnergyPerPower.KJ_KWH);\r\n }\r\n if (this.ghgEmissions.isUndefined()) {\r\n this.ghgEmissions.setDefaultValue(0.0, unitConverter.units.Massflowrate.MMTPA);\r\n }\r\n super.setDefaultValues();\r\n }\r\n\r\n override clearResults() {\r\n super.clearResults();\r\n\r\n if (this.fuelGasHeatingValue.isSolverCalculated()) {\r\n this.fuelGasHeatingValue.variableStatus = VariableStatus.UNDEFINED;\r\n this.setDefaultValues();\r\n }\r\n\r\n if (this.fuelGasEmissionFactor.isSolverCalculated()) {\r\n this.fuelGasEmissionFactor.variableStatus = VariableStatus.UNDEFINED;\r\n this.setDefaultValues();\r\n }\r\n }\r\n\r\n getAvailableKpis(): SimulationVariable[] {\r\n if (this.ownerCase.multiPeriodEnabled) {\r\n return [this.heatRate, this.power, this.quality, this.totalEnergyDemand, this.ghgEmissions];\r\n }\r\n return [\r\n this.heatRate,\r\n this.power,\r\n this.quality,\r\n this.otsgEnergyDemand,\r\n this.turbineEnergyDemand,\r\n this.totalEnergyDemand,\r\n this.fuelGasEmissionFactor,\r\n this.fuelGasHeatingValue,\r\n this.ghgEmissions,\r\n ];\r\n }\r\n\r\n getAvailableParametricStudyParameters(): SimulationVariable[] {\r\n return [this.heatRate, this.power, this.quality];\r\n }\r\n\r\n getAvailableParameters() {\r\n return undefined;\r\n }\r\n\r\n override dePersist(sup: any) {\r\n super.dePersist(sup);\r\n this.heatRate = this.getSimulationVariableSafe(sup.heatRate);\r\n this.power = this.getSimulationVariableSafe(sup.power);\r\n this.quality = this.getSimulationVariableSafe(sup.quality);\r\n this.ghgEmissions = this.getSimulationVariableSafe(sup.ghgEmissions);\r\n this.fuelGasEmissionFactor = this.getSimulationVariableSafe(sup.fuelGasEmissionFactor);\r\n this.fuelGasHeatingValue = this.getSimulationVariableSafe(sup.fuelGasHeatingValue);\r\n this.otsgEnergyDemand = this.getSimulationVariableSafe(sup.otsgEnergyDemand);\r\n this.turbineEnergyDemand = this.getSimulationVariableSafe(sup.turbineEnergyDemand);\r\n this.totalEnergyDemand = this.getSimulationVariableSafe(sup.totalEnergyDemand);\r\n this.massCapacity = this.getSimulationVariableSafe(sup.massCapacity);\r\n this.minimumMassFlowrate = this.getSimulationVariableSafe(sup.minimumMassFlowrate);\r\n\r\n this.setQuantities();\r\n this.setDefaultValues();\r\n this.initConstraints();\r\n }\r\n}\r\n","import { Case } from '../case';\r\nimport { unitOperationsConfig } from '../../_config/unit-operations.config';\r\nimport { BitumenConversion } from './bitumen-conversion';\r\nimport { DiluentSource } from './diluent-source';\r\nimport { MineSource } from './mine-source';\r\nimport { Mixer } from './mixer';\r\nimport { SagdSource } from './sagd-source';\r\nimport { Pipe } from './pipe';\r\nimport { Refinery } from './refinery';\r\nimport { ThirdPartyRefinery } from './third-party-refinery';\r\nimport { Splitter } from './splitter';\r\nimport { Upgrader } from './upgrader';\r\nimport { ThirdPartySource } from './third-party-source';\r\nimport { OffshoreSource } from './offshore-source';\r\nimport { SuncorRenewableBlock } from './suncor-renewable-block';\r\nimport { DRU } from './dru';\r\nimport { VAC } from './vac';\r\nimport { UpgraderInlet } from './upgrader-inlet';\r\nimport { Hydrotreater } from './hydrotreater';\r\nimport { DCU } from './dcu';\r\nimport { UnitOperation } from '../unit-operation';\r\nimport { GenericSink } from './generic-sink';\r\nimport { CommodityTank } from './commodity-tank';\r\nimport { ProductTank } from '../product-tank';\r\nimport { Hydrocracker } from './hydrocracker';\r\nimport { Extraction } from './extraction';\r\nimport { InletTransferUnit } from './inlet-transfer-unit';\r\nimport { OutletTransferUnit } from './outlet-transfer-unit';\r\nimport { WaterSource } from './utilties/water-source';\r\nimport { WaterHeatExchanger } from './utilties/water-heat-exchanger';\r\nimport { WaterTurbine } from './utilties/water-turbine';\r\nimport { WaterHeater } from './utilties/water-heater';\r\nimport { WaterCooler } from './utilties/water-cooler';\r\nimport { WaterTwoPhaseSeparator } from './utilties/water-two-phase-separator';\r\nimport { WaterPump } from './utilties/water-pump';\r\nimport { WaterUtilityUnitOperation } from './utilties/water-utility-unit-operation';\r\nimport { WaterValve } from './utilties/water-valve';\r\nimport { WaterSink } from './utilties/water-sink';\r\nimport { WaterMixer } from './utilties/water-mixer';\r\nimport { WaterSplitter } from './utilties/water-splitter';\r\nimport { FluidCoker } from './fluid-coker';\r\nimport { WaterPipe } from './utilties/water-pipe';\r\nimport { HgoHydrotreater } from './hgo-hydrotreater';\r\nimport { WaterSourceImport } from './utilties/water-source-import';\r\nimport { WaterSinkImport } from './utilties/water-sink-import';\r\nimport { LgoHydrotreater } from './lgo-hydrotreater';\r\nimport { WaterBoiler } from './utilties/water-boiler';\r\nimport { WaterHeader } from './utilties/water-header';\r\nimport { HydrogenPlant } from './hydrogen-plant';\r\nimport { SulfurPlant } from './sulfur-plant';\r\nimport { FuelGasUtilityUnitOperation } from './fuel-gas/fuel-gas-utility-unit-operation';\r\nimport { FuelGasFlare } from './fuel-gas/fuel-gas-flare';\r\nimport { FuelGasSink } from './fuel-gas/fuel-gas-sink';\r\nimport { FuelGasSinkImport } from './fuel-gas/fuel-gas-sink-import';\r\nimport { FuelGasSourceImport } from './fuel-gas/fuel-gas-source-import';\r\nimport { FuelGasMixer } from './fuel-gas/fuel-gas-mixer';\r\nimport { FuelGasSource } from './fuel-gas/fuel-gas-source';\r\nimport { FuelGasSplitter } from './fuel-gas/fuel-gas-splitter';\r\nimport { FuelGasAmineContactor } from './fuel-gas/fuel-gas-amine-contactor';\r\nimport { WaterCogeneration } from './utilties/water-cogeneration';\r\n\r\nexport class UnitOperationFactory {\r\n static createUnitOperationAndSetDefaultValues(\r\n sourceUnitOperation: any,\r\n ownerCase: Case,\r\n resourceData?\r\n ): UnitOperation {\r\n const uo = this.createUnitOperation(sourceUnitOperation, ownerCase);\r\n\r\n uo.setQuantities();\r\n uo.setDefaultValues();\r\n if (resourceData) {\r\n uo.loadResourceData(resourceData);\r\n }\r\n return uo;\r\n }\r\n\r\n // eslint-disable-next-line max-len\r\n static createUnitOperation(sourceUnitOperation: any, ownerCase: Case): UnitOperation {\r\n switch (sourceUnitOperation.category) {\r\n case unitOperationsConfig.bitumenConversion.key:\r\n return new BitumenConversion(sourceUnitOperation, ownerCase);\r\n case unitOperationsConfig.hydrogenPlant.key:\r\n return new HydrogenPlant(sourceUnitOperation, ownerCase);\r\n case unitOperationsConfig.sulfurPlant.key:\r\n return new SulfurPlant(sourceUnitOperation, ownerCase);\r\n case unitOperationsConfig.diluentSource.key:\r\n return new DiluentSource(sourceUnitOperation, ownerCase);\r\n case unitOperationsConfig.extraction.key:\r\n return new Extraction(sourceUnitOperation, ownerCase);\r\n case unitOperationsConfig.mine.key:\r\n return new MineSource(sourceUnitOperation, ownerCase);\r\n case unitOperationsConfig.mixer.key:\r\n return new Mixer(sourceUnitOperation, ownerCase);\r\n case unitOperationsConfig.offshore.key:\r\n return new OffshoreSource(sourceUnitOperation, ownerCase);\r\n case unitOperationsConfig.pipe.key:\r\n return new Pipe(sourceUnitOperation, ownerCase);\r\n case unitOperationsConfig.refinery.key:\r\n return new Refinery(sourceUnitOperation, ownerCase);\r\n case unitOperationsConfig.suncorRenewableBlock.key:\r\n return new SuncorRenewableBlock(sourceUnitOperation, ownerCase);\r\n case unitOperationsConfig.sagd.key:\r\n return new SagdSource(sourceUnitOperation, ownerCase);\r\n case unitOperationsConfig.splitter.key:\r\n return new Splitter(sourceUnitOperation, ownerCase);\r\n case unitOperationsConfig.thirdPartyRefinery.key:\r\n return new ThirdPartyRefinery(sourceUnitOperation, ownerCase);\r\n case unitOperationsConfig.thirdPartySource.key:\r\n return new ThirdPartySource(sourceUnitOperation, ownerCase);\r\n case unitOperationsConfig.upgrader.key:\r\n return new Upgrader(sourceUnitOperation, ownerCase);\r\n case unitOperationsConfig.dru.key:\r\n return new DRU(sourceUnitOperation, ownerCase);\r\n case unitOperationsConfig.vac.key:\r\n return new VAC(sourceUnitOperation, ownerCase);\r\n case unitOperationsConfig.upgraderInlet.key:\r\n return new UpgraderInlet(sourceUnitOperation, ownerCase);\r\n case unitOperationsConfig.hydrotreater.key:\r\n return new Hydrotreater(sourceUnitOperation, ownerCase);\r\n case unitOperationsConfig.hgoHydrotreater.key:\r\n return new HgoHydrotreater(sourceUnitOperation, ownerCase);\r\n case unitOperationsConfig.lgoHydrotreater.key:\r\n return new LgoHydrotreater(sourceUnitOperation, ownerCase);\r\n case unitOperationsConfig.dcu.key:\r\n return new DCU(sourceUnitOperation, ownerCase);\r\n case unitOperationsConfig.fluidCoker.key:\r\n return new FluidCoker(sourceUnitOperation, ownerCase);\r\n case unitOperationsConfig.genericSink.key:\r\n return new GenericSink(sourceUnitOperation, ownerCase);\r\n case unitOperationsConfig.commodityTank.key:\r\n return new CommodityTank(sourceUnitOperation, ownerCase);\r\n case unitOperationsConfig.productTank.key:\r\n return new ProductTank(sourceUnitOperation, ownerCase);\r\n case unitOperationsConfig.hydrocracker.key:\r\n return new Hydrocracker(sourceUnitOperation, ownerCase);\r\n case unitOperationsConfig.inletTransferUnit.key:\r\n return new InletTransferUnit(sourceUnitOperation, ownerCase);\r\n case unitOperationsConfig.outletTransferUnit.key:\r\n return new OutletTransferUnit(sourceUnitOperation, ownerCase);\r\n\r\n // water-utility-unit-operation\r\n case unitOperationsConfig.waterUtilityUnitOperation.key:\r\n return new WaterUtilityUnitOperation(sourceUnitOperation, ownerCase);\r\n case unitOperationsConfig.waterSourceImport.key:\r\n return new WaterSourceImport(sourceUnitOperation, ownerCase);\r\n case unitOperationsConfig.waterSinkImport.key:\r\n return new WaterSinkImport(sourceUnitOperation, ownerCase);\r\n case unitOperationsConfig.waterSource.key:\r\n return new WaterSource(sourceUnitOperation, ownerCase);\r\n case unitOperationsConfig.waterHeatExchanger.key:\r\n return new WaterHeatExchanger(sourceUnitOperation, ownerCase);\r\n case unitOperationsConfig.waterTurbine.key:\r\n return new WaterTurbine(sourceUnitOperation, ownerCase);\r\n case unitOperationsConfig.waterHeater.key:\r\n return new WaterHeater(sourceUnitOperation, ownerCase);\r\n case unitOperationsConfig.waterCooler.key:\r\n return new WaterCooler(sourceUnitOperation, ownerCase);\r\n case unitOperationsConfig.waterTwoPhaseSeparator.key:\r\n return new WaterTwoPhaseSeparator(sourceUnitOperation, ownerCase);\r\n case unitOperationsConfig.waterPump.key:\r\n return new WaterPump(sourceUnitOperation, ownerCase);\r\n case unitOperationsConfig.waterValve.key:\r\n return new WaterValve(sourceUnitOperation, ownerCase);\r\n case unitOperationsConfig.waterSink.key:\r\n return new WaterSink(sourceUnitOperation, ownerCase);\r\n case unitOperationsConfig.waterMixer.key:\r\n return new WaterMixer(sourceUnitOperation, ownerCase);\r\n case unitOperationsConfig.waterSplitter.key:\r\n return new WaterSplitter(sourceUnitOperation, ownerCase);\r\n case unitOperationsConfig.waterHeader.key:\r\n return new WaterHeader(sourceUnitOperation, ownerCase);\r\n case unitOperationsConfig.waterPipe.key:\r\n return new WaterPipe(sourceUnitOperation, ownerCase);\r\n case unitOperationsConfig.waterBoiler.key:\r\n return new WaterBoiler(sourceUnitOperation, ownerCase);\r\n case unitOperationsConfig.waterCogeneration.key:\r\n return new WaterCogeneration(sourceUnitOperation, ownerCase);\r\n\r\n // fuel gas\r\n case unitOperationsConfig.fuelGasUtilityUnitOperation.key:\r\n return new FuelGasUtilityUnitOperation(sourceUnitOperation, ownerCase);\r\n case unitOperationsConfig.fuelGasFlare.key:\r\n return new FuelGasFlare(sourceUnitOperation, ownerCase);\r\n case unitOperationsConfig.fuelGasSink.key:\r\n return new FuelGasSink(sourceUnitOperation, ownerCase);\r\n case unitOperationsConfig.fuelGasSinkImport.key:\r\n return new FuelGasSinkImport(sourceUnitOperation, ownerCase);\r\n case unitOperationsConfig.fuelGasSourceImport.key:\r\n return new FuelGasSourceImport(sourceUnitOperation, ownerCase);\r\n case unitOperationsConfig.fuelGasMixer.key:\r\n return new FuelGasMixer(sourceUnitOperation, ownerCase);\r\n case unitOperationsConfig.fuelGasSource.key:\r\n return new FuelGasSource(sourceUnitOperation, ownerCase);\r\n case unitOperationsConfig.fuelGasSplitter.key:\r\n return new FuelGasSplitter(sourceUnitOperation, ownerCase);\r\n case unitOperationsConfig.fuelGasAmineContactor.key:\r\n return new FuelGasAmineContactor(sourceUnitOperation, ownerCase);\r\n default:\r\n throw new Error(`Unknown unit operation ${sourceUnitOperation.category}`);\r\n }\r\n }\r\n}\r\n","import { BaseObject } from '../base-object';\r\nimport { Case } from '../case';\r\nimport { SimulationVariable } from '../simulation-variable';\r\nimport { CutResourceData } from './assay-manager-resource-data';\r\nimport { SimulationVariableResourceData } from '../_unit-operations/simulation-variable-resource-data';\r\n\r\ndeclare let unitConverter: any;\r\nexport class Cut extends BaseObject {\r\n category = 'source-cut';\r\n // TODO: properties should be Simulation Variable!\r\n ownerBaseObject: BaseObject;\r\n olefinContent: SimulationVariable;\r\n weightFraction: SimulationVariable;\r\n massDensity: SimulationVariable;\r\n sulfur: SimulationVariable;\r\n nitrogen: SimulationVariable;\r\n ccr: SimulationVariable;\r\n aromaticityFactor: SimulationVariable;\r\n anilinePoint: SimulationVariable;\r\n // vabp: SimulationVariable;\r\n afc: SimulationVariable;\r\n volumeFraction: SimulationVariable;\r\n\r\n constructor(cut: any, ownerCase: Case, ownerBaseObject: BaseObject) {\r\n super(cut.id, ownerCase);\r\n this.ownerBaseObject = ownerBaseObject;\r\n this.initValues(cut);\r\n }\r\n\r\n initValues(cut: any) {\r\n this.olefinContent = new SimulationVariable(cut.olefinContent, this.ownerCase, this);\r\n this.weightFraction = new SimulationVariable(cut.weightFraction, this.ownerCase, this);\r\n this.massDensity = new SimulationVariable(cut.massDensity, this.ownerCase, this);\r\n this.sulfur = new SimulationVariable(cut.sulfur, this.ownerCase, this);\r\n this.aromaticityFactor = new SimulationVariable(cut.aromaticityFactor, this.ownerCase, this);\r\n this.anilinePoint = new SimulationVariable(cut.anilinePoint, this.ownerCase, this);\r\n // this.vabp = new SimulationVariable(cut.vabp, this.ownerCase, this);\r\n this.afc = new SimulationVariable(cut.afc, this.ownerCase, this);\r\n this.nitrogen = new SimulationVariable(cut.nitrogen, this.ownerCase, this);\r\n this.ccr = new SimulationVariable(cut.ccr, this.ownerCase, this);\r\n this.volumeFraction = new SimulationVariable(cut.volumeFraction, this.ownerCase, this);\r\n\r\n // :v ...\r\n this.setQuantities();\r\n if (this.nitrogen.isUndefined()) {\r\n this.nitrogen.setDefaultValue(null, unitConverter.units.MassFraction.PPMW);\r\n }\r\n }\r\n\r\n setQuantities() {\r\n // TODO add missing quantities\r\n this.olefinContent.setQuantity('Dimensionless');\r\n this.weightFraction.setQuantity('Dimensionless'); // <- tbcl\r\n this.massDensity.setQuantity('LiquidDensity');\r\n this.sulfur.setQuantity('MassFraction');\r\n this.aromaticityFactor.setQuantity('Dimensionless');\r\n this.anilinePoint.setQuantity('Temperature');\r\n // this.vabp.setQuantity('Temperature');\r\n this.afc.setQuantity('Dimensionless');\r\n this.nitrogen.setQuantity('MassFraction');\r\n this.ccr.setQuantity('MassFraction');\r\n this.volumeFraction.setQuantity('Dimensionless');\r\n }\r\n\r\n clearValues() {\r\n this.olefinContent.value = null;\r\n this.weightFraction.value = null;\r\n this.massDensity.value = null;\r\n this.sulfur.value = null;\r\n this.aromaticityFactor.value = null;\r\n this.anilinePoint.value = null;\r\n // this.vabp.value = null;\r\n this.afc.value = null;\r\n this.nitrogen.value = null;\r\n this.ccr.value = null;\r\n this.volumeFraction.value = null;\r\n }\r\n\r\n override dePersist(c: any) {\r\n if (c) {\r\n this.olefinContent = this.getSimulationVariableSafe(c.olefinContent);\r\n this.weightFraction = this.getSimulationVariableSafe(c.weightFraction);\r\n this.massDensity = this.getSimulationVariableSafe(c.massDensity);\r\n this.sulfur = this.getSimulationVariableSafe(c.sulfur);\r\n this.aromaticityFactor = this.getSimulationVariableSafe(c.aromaticityFactor);\r\n this.anilinePoint = this.getSimulationVariableSafe(c.anilinePoint);\r\n // this.vabp = this.getSimulationVariableSafe(c.vabp);\r\n this.afc = this.getSimulationVariableSafe(c.afc);\r\n this.nitrogen = this.getSimulationVariableSafe(c.nitrogen);\r\n this.ccr = this.getSimulationVariableSafe(c.ccr);\r\n this.volumeFraction = this.getSimulationVariableSafe(c.volumeFraction);\r\n this.setSimulationVariablesOwner();\r\n }\r\n }\r\n\r\n clearIds() {\r\n this.id = (<any>window).uuid();\r\n const simvars = this.getSimVars();\r\n simvars.forEach(simvar => {\r\n simvar.id = (<any>window).uuid();\r\n });\r\n }\r\n\r\n loadResourceData(resourceData: CutResourceData) {\r\n if (resourceData) {\r\n Object.keys(resourceData).forEach(prop => {\r\n const simVar = this[prop] as SimulationVariable;\r\n const data = resourceData[prop] as SimulationVariableResourceData;\r\n if (simVar && data) {\r\n simVar.lowerBound = data.lowerBound;\r\n simVar.upperBound = data.upperBound;\r\n }\r\n });\r\n }\r\n }\r\n\r\n toJSON() {\r\n return {\r\n category: this.category,\r\n olefinContent: this.olefinContent.id,\r\n weightFraction: this.weightFraction.id,\r\n massDensity: this.massDensity.id,\r\n sulfur: this.sulfur.id,\r\n aromaticityFactor: this.aromaticityFactor.id,\r\n anilinePoint: this.anilinePoint.id,\r\n // vabp: this.vabp.id,\r\n afc: this.afc.id,\r\n nitrogen: this.nitrogen.id,\r\n ccr: this.ccr.id,\r\n volumeFraction: this.volumeFraction.id,\r\n };\r\n }\r\n}\r\n","// not sure about the file name of this (tempted to name color.enum)\r\n// const colors = {\r\n// BLUE: '#0000FF',\r\n// BROWN: '#A52A2A',\r\n// CADET_BLUE: '#5F9EA0',\r\n// CRIMSON: '#DC143C',\r\n// DARK_BLUE: '#00008B',\r\n// GREEN: '#008000',\r\n// INDIAN_RED: '#CD5C5C',\r\n// LIGHT_SLATE_GRAY: '#778899',\r\n// RED: '#FF0000',\r\n// SEA_GREEN: '#2E8B57',\r\n// SLATE_GRAY: '#708090',\r\n// YELLOW: '#FFFF00',\r\n// YELLOW_GREEN: '#9ACD32'\r\n// };\r\n\r\nconst obsoleteColorPalette = [\r\n '#58A6A2',\r\n '#92D2CA',\r\n '#317B96',\r\n '#7BA4BD',\r\n '#616C9F',\r\n '#9299B3',\r\n '#C7936B',\r\n '#DBB983',\r\n '#E6A04D',\r\n '#F3CB92',\r\n '#A8A151',\r\n '#D3CB87',\r\n '#6A9177',\r\n '#83BC89',\r\n '#1332c2',\r\n '#244662',\r\n '#9B55A6',\r\n '#D07B53',\r\n '#5D7D93',\r\n '#8BA98A',\r\n];\r\n\r\nconst colors = [\r\n '#31A6A0',\r\n '#52ABBB',\r\n '#317B96',\r\n '#3F87CE',\r\n '#616C9F',\r\n '#6F11CB',\r\n '#C77F48',\r\n '#B3584C',\r\n '#E57A0E',\r\n '#9E7132',\r\n '#A8A151',\r\n '#B7A717',\r\n '#38754C',\r\n '#319A3C',\r\n '#1332c2',\r\n '#244662',\r\n '#9B55A6',\r\n '#BF0863',\r\n '#4B6A80',\r\n '#7D997D',\r\n '#008C69',\r\n '#E34D1B',\r\n '#80234D',\r\n '#547252',\r\n '#755117',\r\n];\r\n\r\nexport function getRandomColor() {\r\n return colors[Math.floor(Math.random() * colors.length)];\r\n}\r\n\r\n/**\r\n * Use this function for getting the color for a stream\r\n * if an obsolete color with low contrast is used, then a new valid random one will be returned.\r\n * If the color is user defined, then the same color will be returned\r\n * If the color string evaluates to boolean false, then a new valid random color will be returned\r\n * @param color\r\n */\r\nexport function getColor(color: string) {\r\n if (obsoleteColorPalette.includes(color)) {\r\n return colors[Math.floor(Math.random() * colors.length)];\r\n }\r\n\r\n return color || colors[Math.floor(Math.random() * colors.length)];\r\n}\r\n","import { BaseObject } from '../base-object';\r\nimport { getColor } from '../color.generator';\r\n\r\nexport abstract class BaseStream extends BaseObject {\r\n // gojs data, should it be in a separated object?\r\n key: number;\r\n streamColor: string;\r\n\r\n inletUnitOperationId: string;\r\n outletUnitOperationId: string;\r\n fromPort: string;\r\n toPort: string;\r\n\r\n isRecycleStream: boolean;\r\n\r\n abstract setQuantities();\r\n abstract clearResults();\r\n abstract setSimulationVariableNames();\r\n abstract setDefaultValues();\r\n\r\n initValues(baseStream: BaseStream | any) {\r\n this.key = baseStream.key;\r\n this.name = baseStream.name;\r\n this.streamColor = getColor(baseStream.color);\r\n this.fromPort = baseStream.fromPort;\r\n this.toPort = baseStream.toPort;\r\n this.inletUnitOperationId = baseStream.inletUnitOperationId;\r\n this.outletUnitOperationId = baseStream.outletUnitOperationId;\r\n this.isRecycleStream = !!baseStream.isRecycleStream;\r\n }\r\n\r\n get inletUnitOperation() {\r\n return this.ownerCase.getUnitOperation(this.inletUnitOperationId);\r\n }\r\n\r\n get outletUnitOperation() {\r\n return this.ownerCase.getUnitOperation(this.outletUnitOperationId);\r\n }\r\n\r\n get connectionName() {\r\n return `${this.inletUnitOperation.name} - ${this.outletUnitOperation.name}`;\r\n }\r\n}\r\n","export enum StreamCompositionNames {\r\n LIGHT_ENDS = 'Light Ends',\r\n LIGHT_NAPHTHA = 'Light Naphtha',\r\n HEAVY_NAPHTHA = 'Heavy Naphtha',\r\n DISTILLATE = 'Distillate',\r\n LGO = 'LGO',\r\n HGO = 'HGO',\r\n VGO = 'VGO',\r\n HVGO = 'HVGO',\r\n RESID = 'Resid',\r\n}\r\n","export function enumValuesToArray(enumToConvert) {\r\n return Object.keys(enumToConvert)\r\n .filter((key, value) => {\r\n return isNaN(Number(key));\r\n })\r\n .map(value => {\r\n return enumToConvert[value];\r\n });\r\n}\r\n","export enum DistillationCompositionNames {\r\n NAPHTHA = 'Naphtha',\r\n KEROSENE = 'Kerosene',\r\n LIGHT_GAS_OIL = 'Light Gas Oil',\r\n HEAVY_GAS_OIL = 'Heavy Gas Oil',\r\n BOTTOMS = 'Bottoms',\r\n}\r\n","import { SimulationVariable } from '../simulation-variable';\r\nimport { BaseObject } from '../base-object';\r\nimport { Cut } from '../_fluid/cut';\r\nimport { SuncorUnitOperation } from '../_unit-operations/suncor-unit-operation';\r\nimport { Case } from '../case';\r\nimport { getColor } from '../color.generator';\r\nimport { KpiProvider } from '../_case-study/kpi-provider';\r\nimport { BaseStream } from './base-stream';\r\nimport { Quantity } from '../../_config/quantity.enum';\r\nimport { DefaultMappedType } from '../default-mapped-type';\r\nimport { isTypeString } from '../../_utils/utils';\r\nimport { StreamCompositionNames } from '../../_config/stream-composition-names.enum';\r\nimport { enumValuesToArray } from '../../_utils/enum-values-to-array';\r\nimport { DistillationCompositionNames } from '../../_config/distillation-composition-names.enum';\r\n\r\ndeclare let unitConverter: any;\r\n\r\nexport class SuncorMaterialStream extends BaseStream implements KpiProvider {\r\n category = 'material-stream';\r\n private readonly COMPOSITION_LENGTH = 9;\r\n private readonly DISTILLATION_COMP_LENGTH = 5;\r\n\r\n // So-called Bulk properties\r\n // they are in the FluidAnalysis on sources\r\n massDensity: SimulationVariable; // SuncorMassDensity\r\n ccr: SimulationVariable;\r\n sulfur: SimulationVariable;\r\n nitrogen: SimulationVariable;\r\n\r\n // general properties\r\n volumetricFlowrate: SimulationVariable;\r\n massFlowrate: SimulationVariable;\r\n ghgEmissions: SimulationVariable;\r\n ghgIntensity: SimulationVariable;\r\n\r\n // maybe not shown\r\n price: SimulationVariable;\r\n\r\n // this or each?\r\n // Also, spec says it should 'expand'\r\n // therefore the FluidAnalysis seems more apt.\r\n cuts: Array<Cut> = [];\r\n\r\n lightEndsCut: Cut;\r\n lightNaphthaCut: Cut;\r\n heavyNaphthaCut: Cut;\r\n distillateCut: Cut;\r\n LGOCut: Cut;\r\n HGOCut: Cut;\r\n VGOCut: Cut;\r\n HVGOCut: Cut;\r\n residCut: Cut;\r\n\r\n // Should this be an object though?\r\n // Composition\r\n composition: Array<SimulationVariable> = [];\r\n volumeComposition: SimulationVariable[] = [];\r\n distillationComposition: SimulationVariable[] = [];\r\n\r\n constructor(materialStream: any, ownerCase: Case) {\r\n super(materialStream.id, ownerCase);\r\n\r\n this.initValues(materialStream);\r\n this.initStreamCompositions(materialStream);\r\n this.setSimulationVariableNames();\r\n }\r\n\r\n getAvailableKpis() {\r\n if (this.ownerCase.multiPeriodEnabled) {\r\n return [];\r\n }\r\n\r\n // wtf is this shit\r\n this.setSimulationVariableNames();\r\n return [\r\n this.ccr,\r\n this.ghgIntensity,\r\n this.ghgEmissions,\r\n this.price,\r\n this.nitrogen,\r\n this.massDensity,\r\n this.sulfur,\r\n this.volumetricFlowrate,\r\n ];\r\n }\r\n\r\n override getChildrenObjectsForRemoval(): BaseObject[] {\r\n const children = super.getChildrenObjectsForRemoval();\r\n children.push(this.lightEndsCut);\r\n children.push(this.lightNaphthaCut);\r\n children.push(this.heavyNaphthaCut);\r\n children.push(this.distillateCut);\r\n children.push(this.LGOCut);\r\n children.push(this.HGOCut);\r\n children.push(this.VGOCut);\r\n children.push(this.HVGOCut);\r\n children.push(this.residCut);\r\n\r\n return children;\r\n }\r\n\r\n // isn't this object only useful after solving?\r\n\r\n override initValues(materialStream: any): void {\r\n super.initValues(materialStream);\r\n\r\n this.price = new SimulationVariable(materialStream.price, this.ownerCase, this);\r\n this.massDensity = new SimulationVariable(materialStream.massDensity, this.ownerCase, this); // SuncorMassDensity\r\n this.ccr = new SimulationVariable(materialStream.ccr, this.ownerCase, this);\r\n this.sulfur = new SimulationVariable(materialStream.sulfur, this.ownerCase, this);\r\n this.nitrogen = new SimulationVariable(materialStream.nitrogen, this.ownerCase, this);\r\n // general properties\r\n this.volumetricFlowrate = new SimulationVariable(materialStream.volumetricFlowrate, this.ownerCase, this);\r\n this.massFlowrate = new SimulationVariable(materialStream.massFlowrate, this.ownerCase, this);\r\n this.ghgEmissions = new SimulationVariable(materialStream.ghgEmissions, this.ownerCase, this);\r\n this.ghgIntensity = new SimulationVariable(materialStream.ghgIntensity, this.ownerCase, this);\r\n\r\n this.lightEndsCut = new Cut(materialStream.lightEndsCut || {}, this.ownerCase, this);\r\n this.lightNaphthaCut = new Cut(materialStream.lightNaphthaCut || {}, this.ownerCase, this);\r\n this.heavyNaphthaCut = new Cut(materialStream.heavyNaphthaCut || {}, this.ownerCase, this);\r\n this.distillateCut = new Cut(materialStream.distillateCut || {}, this.ownerCase, this);\r\n this.LGOCut = new Cut(materialStream.LGOCut || {}, this.ownerCase, this);\r\n this.HGOCut = new Cut(materialStream.HGOCut || {}, this.ownerCase, this);\r\n this.VGOCut = new Cut(materialStream.VGOCut || {}, this.ownerCase, this);\r\n this.HVGOCut = new Cut(materialStream.HVGOCut || {}, this.ownerCase, this);\r\n this.residCut = new Cut(materialStream.residCut || {}, this.ownerCase, this);\r\n }\r\n\r\n override setSimulationVariableNames(): void {\r\n this.price.setName('Price');\r\n this.massDensity.setName('Mass Density');\r\n this.ccr.setName('CCR Content');\r\n this.sulfur.setName('Sulphur Content');\r\n this.nitrogen.setName('Nitrogen Content');\r\n this.volumetricFlowrate.setName('Volumetric Flowrate');\r\n this.massFlowrate.setName('Mass Flowrate');\r\n this.ghgEmissions.setName('GHG Emissions');\r\n this.ghgIntensity.setName('GHG Intensity');\r\n this.massDensity.setName('Mass Density');\r\n\r\n this.setCompositionNames(this.composition);\r\n this.setCompositionNames(this.volumeComposition);\r\n this.setCompositionNames(this.distillationComposition);\r\n }\r\n\r\n override setDefaultValues(): void {\r\n if (this.price.isUndefined()) {\r\n this.price.setDefaultValue(null);\r\n }\r\n if (this.massDensity.isUndefined()) {\r\n this.massDensity.setDefaultValue(null);\r\n }\r\n if (this.ccr.isUndefined()) {\r\n this.ccr.setDefaultValue(null);\r\n }\r\n if (this.sulfur.isUndefined()) {\r\n this.sulfur.setDefaultValue(null);\r\n }\r\n if (this.nitrogen.isUndefined()) {\r\n this.nitrogen.setDefaultValue(null);\r\n }\r\n if (this.volumetricFlowrate.isUndefined()) {\r\n this.volumetricFlowrate.setDefaultValue(null);\r\n }\r\n if (this.massFlowrate.isUndefined()) {\r\n this.massFlowrate.setDefaultValue(null, unitConverter.units.Massflowrate.KPPH);\r\n }\r\n if (this.ghgEmissions.isUndefined()) {\r\n this.ghgEmissions.setDefaultValue(null, unitConverter.units.Massflowrate.MMTPA);\r\n }\r\n if (this.ghgIntensity.isUndefined()) {\r\n this.ghgIntensity.setDefaultValue(null);\r\n }\r\n }\r\n\r\n initStreamCompositions(materialStream: DefaultMappedType<SuncorMaterialStream>): void {\r\n if (!this.composition.length) {\r\n this.initSingleComposition(materialStream.composition, this.composition, this.COMPOSITION_LENGTH);\r\n\r\n if (this.composition.length !== this.COMPOSITION_LENGTH) {\r\n throw new Error('Wrong number of Stream composition elements!');\r\n }\r\n }\r\n\r\n if (!this.volumeComposition.length) {\r\n this.initSingleComposition(materialStream.volumeComposition, this.volumeComposition, this.COMPOSITION_LENGTH);\r\n if (this.volumeComposition.length !== this.COMPOSITION_LENGTH) {\r\n throw new Error('Wrong number of Stream volume composition elements!');\r\n }\r\n }\r\n\r\n if (!this.distillationComposition.length) {\r\n this.initSingleComposition(\r\n materialStream.distillationComposition,\r\n this.distillationComposition,\r\n this.DISTILLATION_COMP_LENGTH\r\n );\r\n if (this.distillationComposition.length !== this.DISTILLATION_COMP_LENGTH) {\r\n throw new Error('Wrong number of Stream distillation composition elements!');\r\n }\r\n }\r\n }\r\n\r\n initSingleComposition(\r\n streamComposition: any[],\r\n destinationComposition: SimulationVariable[],\r\n compositionLength: number\r\n ) {\r\n const sourceComposition = this.getStreamCompositionArray(streamComposition);\r\n this.addCompoundSimVars(destinationComposition, sourceComposition, compositionLength);\r\n this.setCompositionNames(destinationComposition);\r\n }\r\n\r\n addCompoundSimVars(\r\n destinationCompositionArray: SimulationVariable[],\r\n sourceCompositionArray: any[],\r\n compositionLength: number\r\n ) {\r\n let compound: SimulationVariable;\r\n for (let i = 0; i < compositionLength; i++) {\r\n compound = new SimulationVariable(sourceCompositionArray[i] || {}, this.ownerCase, this);\r\n destinationCompositionArray.push(compound);\r\n }\r\n }\r\n\r\n getStreamCompositionArray(streamComposition: any[]) {\r\n return streamComposition && streamComposition.every((sv: any) => sv instanceof SimulationVariable)\r\n ? streamComposition\r\n : [];\r\n }\r\n\r\n private setCompositionNames(composition: SimulationVariable[]) {\r\n // Bruh\r\n let compositionNames: string[] = [];\r\n if (composition.length === this.COMPOSITION_LENGTH) {\r\n compositionNames = enumValuesToArray(StreamCompositionNames);\r\n } else if (composition.length === this.DISTILLATION_COMP_LENGTH) {\r\n compositionNames = enumValuesToArray(DistillationCompositionNames);\r\n }\r\n\r\n for (let i = 0; i < composition.length; i++) {\r\n const compound = composition[i];\r\n compound.setName(compositionNames[i]);\r\n }\r\n }\r\n\r\n override setQuantities() {\r\n // rushed set quantities here...\r\n this.volumetricFlowrate.setQuantity('Volumetricflowrate');\r\n this.massFlowrate.setQuantity(Quantity.MASSFLOWRATE);\r\n this.ghgEmissions.setQuantity('Massflowrate');\r\n this.ghgIntensity.setQuantity('MassPerVolume');\r\n this.price.setQuantity('CurrencyPerVolume');\r\n\r\n this.massDensity.setQuantity('LiquidDensity');\r\n this.ccr.setQuantity('MassFraction');\r\n this.sulfur.setQuantity('MassFraction');\r\n this.nitrogen.setQuantity('MassFraction');\r\n\r\n this.setCompositionQuantities(this.composition, Quantity.MASS_FRACTION);\r\n this.setCompositionQuantities(this.volumeComposition, Quantity.VOLUME_FRACTION);\r\n this.setCompositionQuantities(this.distillationComposition, Quantity.VOLUME_FRACTION);\r\n }\r\n\r\n setCompositionQuantities(composition: SimulationVariable[], quantity: string) {\r\n for (const sv of composition) {\r\n sv.setQuantity(quantity);\r\n }\r\n }\r\n\r\n hasFlowrate(): boolean {\r\n return this.volumetricFlowrate.value > 1e-3;\r\n }\r\n\r\n protected override isPropertyBlackListed(property: any) {\r\n return property instanceof Case || typeof property === 'function' || property instanceof SuncorUnitOperation;\r\n }\r\n\r\n // region results handling\r\n override clearResults() {\r\n this.massDensity.value = null;\r\n this.ccr.value = null;\r\n this.sulfur.value = null;\r\n this.nitrogen.value = null;\r\n this.volumetricFlowrate.value = null;\r\n this.massFlowrate.value = null;\r\n this.ghgEmissions.value = null;\r\n this.ghgIntensity.value = null;\r\n this.price.value = null;\r\n this.clearCompositionResults(this.composition);\r\n this.clearCompositionResults(this.volumeComposition);\r\n this.clearCompositionResults(this.distillationComposition);\r\n\r\n this.lightEndsCut.clearValues();\r\n this.lightNaphthaCut.clearValues();\r\n this.heavyNaphthaCut.clearValues();\r\n this.distillateCut.clearValues();\r\n this.LGOCut.clearValues();\r\n this.HGOCut.clearValues();\r\n this.VGOCut.clearValues();\r\n this.HVGOCut.clearValues();\r\n this.residCut.clearValues();\r\n }\r\n\r\n clearCompositionResults(composition: SimulationVariable[]) {\r\n for (const c of composition) {\r\n c.value = null;\r\n }\r\n }\r\n\r\n // endregion\r\n\r\n override dePersist(sms: DefaultMappedType<SuncorMaterialStream>) {\r\n this.massDensity = this.getSimulationVariableSafe(sms.massDensity); // SuncorMassDensity\r\n this.ccr = this.getSimulationVariableSafe(sms.ccr);\r\n this.sulfur = this.getSimulationVariableSafe(sms.sulfur);\r\n this.nitrogen = this.getSimulationVariableSafe(sms.nitrogen);\r\n this.volumetricFlowrate = this.getSimulationVariableSafe(sms.volumetricFlowrate);\r\n this.massFlowrate = this.getSimulationVariableSafe(sms.massFlowrate);\r\n this.ghgEmissions = this.getSimulationVariableSafe(sms.ghgEmissions);\r\n this.ghgIntensity = this.getSimulationVariableSafe(sms.ghgIntensity);\r\n this.price = this.getSimulationVariableSafe(sms.price);\r\n this.isRecycleStream = sms.isRecycleStream;\r\n\r\n // Cuts\r\n // this.lightEndsCut.dePersist(sms.lightEndsCut);\r\n // this.lightNaphthaCut.dePersist(sms.lightNaphthaCut);\r\n // this.heavyNaphthaCut.dePersist(sms.heavyNaphthaCut);\r\n // this.distillateCut.dePersist(sms.distillateCut);\r\n // this.LGOCut.dePersist(sms.LGOCut);\r\n // this.HGOCut.dePersist(sms.HGOCut);\r\n // this.VGOCut.dePersist(sms.VGOCut);\r\n // this.HVGOCut.dePersist(sms.HVGOCut);\r\n // this.residCut.dePersist(sms.residCut);\r\n\r\n // if there was any variable, it will be discarded\r\n this.composition = this.dePersistComposition(this.composition, sms.composition, this.COMPOSITION_LENGTH);\r\n this.volumeComposition = this.dePersistComposition(\r\n this.volumeComposition,\r\n sms.volumeComposition,\r\n this.COMPOSITION_LENGTH\r\n );\r\n this.distillationComposition = this.dePersistComposition(\r\n this.distillationComposition,\r\n sms.distillationComposition,\r\n this.DISTILLATION_COMP_LENGTH\r\n );\r\n\r\n this.streamColor = getColor(sms.streamColor);\r\n }\r\n\r\n dePersistComposition(\r\n destinationComposition: SimulationVariable[],\r\n sourceComposition: any[],\r\n compositionLength: number\r\n ) {\r\n destinationComposition = [];\r\n if (sourceComposition instanceof Array && sourceComposition.every(isTypeString)) {\r\n for (const svId of sourceComposition) {\r\n destinationComposition.push(this.getSimulationVariableSafe(svId));\r\n }\r\n } else if (!sourceComposition) {\r\n for (let i = 0; i < compositionLength; i++) {\r\n destinationComposition.push(this.getSimulationVariableSafe(''));\r\n }\r\n } else {\r\n throw new Error('Attempted to deserialize a wrong stream composition object!!');\r\n }\r\n\r\n return destinationComposition;\r\n }\r\n\r\n override getSimVars() {\r\n const simVars = super.getSimVars();\r\n this.getCompositionSimVars(simVars, this.composition);\r\n this.getCompositionSimVars(simVars, this.volumeComposition);\r\n this.getCompositionSimVars(simVars, this.distillationComposition);\r\n\r\n return simVars;\r\n }\r\n\r\n getCompositionSimVars(simVars: SimulationVariable[], composition: SimulationVariable[]) {\r\n for (const ce of composition) {\r\n simVars.push(ce);\r\n }\r\n }\r\n\r\n public toJSON() {\r\n return {\r\n key: this.key,\r\n streamColor: this.streamColor,\r\n id: this.id,\r\n category: this.category,\r\n name: this.name,\r\n inletUnitOperationId: this.inletUnitOperationId,\r\n outletUnitOperationId: this.outletUnitOperationId,\r\n fromPort: this.fromPort,\r\n toPort: this.toPort,\r\n massDensity: this.massDensity.id,\r\n ccr: this.ccr.id,\r\n sulfur: this.sulfur.id,\r\n nitrogen: this.nitrogen.id,\r\n volumetricFlowrate: this.volumetricFlowrate.id,\r\n massFlowrate: this.massFlowrate.id,\r\n ghgEmissions: this.ghgEmissions.id,\r\n ghgIntensity: this.ghgIntensity.id,\r\n price: this.price.id,\r\n isRecycleStream: this.isRecycleStream,\r\n composition: this.composition.map(sv => sv.id),\r\n volumeComposition: this.volumeComposition.map(sv => sv.id),\r\n distillationComposition: this.distillationComposition.map(sv => sv.id),\r\n };\r\n }\r\n}\r\n","import { Case } from './case';\r\nimport { BaseObject } from './base-object';\r\nimport { SimulationVariable } from './simulation-variable';\r\nimport { ParameterProvider } from './_case-study/parameter-provider';\r\n\r\nexport enum RefineryEmissionsOptions {\r\n SUOnly = 'SUonly',\r\n All = 'All',\r\n}\r\n\r\nexport class CaseSettings extends BaseObject implements ParameterProvider {\r\n category = 'caseSettings';\r\n\r\n cogenMethodology: string;\r\n operatingDaysPerYear: number;\r\n carbonPrice: SimulationVariable;\r\n wtiPrice: SimulationVariable;\r\n cadUSDExchange: number;\r\n refineryEmissions: RefineryEmissionsOptions;\r\n\r\n constructor(caseSettings: any, ownerCase: Case) {\r\n super(caseSettings.id, ownerCase);\r\n this.initValues(caseSettings);\r\n this.name = 'Case settings';\r\n this.setQuantities();\r\n }\r\n\r\n override detectChanges(another: BaseObject) {\r\n let changes = super.detectChanges(another);\r\n\r\n // of course it is... but direct cast is not allowed by the transpiler (?)\r\n if (another instanceof CaseSettings) {\r\n changes =\r\n changes ||\r\n another.cogenMethodology !== this.cogenMethodology ||\r\n another.operatingDaysPerYear !== this.operatingDaysPerYear ||\r\n another.cadUSDExchange !== this.cadUSDExchange ||\r\n another.refineryEmissions !== this.refineryEmissions;\r\n }\r\n\r\n return changes;\r\n }\r\n\r\n initValues(caseSettings: any): void {\r\n // something\r\n this.cogenMethodology = caseSettings.cogenMethodology || 'OBA';\r\n\r\n if (typeof caseSettings.operatingDaysPerYear === 'undefined') {\r\n this.operatingDaysPerYear = 365;\r\n } else {\r\n this.operatingDaysPerYear = caseSettings.operatingDaysPerYear;\r\n }\r\n\r\n this.carbonPrice = new SimulationVariable(caseSettings.carbonPrice, this.ownerCase, this);\r\n this.wtiPrice = new SimulationVariable(caseSettings.wtiPrice, this.ownerCase, this);\r\n\r\n if (typeof caseSettings.cadUSDExchange === 'undefined') {\r\n this.cadUSDExchange = 0.77;\r\n } else {\r\n this.cadUSDExchange = caseSettings.cadUSDExchange;\r\n }\r\n\r\n this.refineryEmissions = caseSettings.refineryEmissions || RefineryEmissionsOptions.SUOnly;\r\n\r\n this.setSimulationVariableNames();\r\n }\r\n\r\n setQuantities(): void {\r\n this.carbonPrice.setQuantity('CurrencyPerMass');\r\n this.wtiPrice.setQuantity('CurrencyPerVolume');\r\n }\r\n\r\n setDefaultValues(): void {\r\n if (this.carbonPrice.isUndefined()) {\r\n this.carbonPrice.setDefaultValue(30);\r\n }\r\n if (this.wtiPrice.isUndefined()) {\r\n this.wtiPrice.setDefaultValue(80.0);\r\n }\r\n }\r\n\r\n override dePersist(sup: any) {\r\n this.carbonPrice = this.getSimulationVariableSafe(sup.carbonPrice);\r\n this.wtiPrice = this.getSimulationVariableSafe(sup.wtiPrice);\r\n\r\n this.setSimulationVariablesOwner();\r\n this.setQuantities();\r\n this.setDefaultValues();\r\n this.setSimulationVariableNames();\r\n }\r\n\r\n setSimulationVariableNames() {\r\n this.carbonPrice.name = 'Carbon Price';\r\n this.wtiPrice.name = 'WTI Price';\r\n }\r\n\r\n getAvailableParameters(): SimulationVariable[] {\r\n throw new Error('Method not implemented.');\r\n }\r\n\r\n getAvailableParametricStudyParameters(): SimulationVariable[] {\r\n return [this.carbonPrice, this.wtiPrice];\r\n }\r\n\r\n public toJSON() {\r\n return {\r\n id: this.id,\r\n category: this.category,\r\n cogenMethodology: this.cogenMethodology,\r\n operatingDaysPerYear: this.operatingDaysPerYear,\r\n cadUSDExchange: this.cadUSDExchange,\r\n carbonPrice: this.carbonPrice.id,\r\n wtiPrice: this.wtiPrice.id,\r\n refineryEmissions: this.refineryEmissions,\r\n };\r\n }\r\n}\r\n","import { BaseObject } from '../base-object';\r\n\r\nexport class CaseStudyCategory {\r\n categoryName: string;\r\n ownerBaseObjectId: string;\r\n\r\n // boolean callback, used for getting the base objects for this category,\r\n // if filterCallback(bo) is true then bo will be considered part of this category\r\n filterCallback: (bo: BaseObject) => boolean;\r\n\r\n constructor(categoryName: string, callback: (bo: BaseObject) => boolean) {\r\n this.categoryName = categoryName;\r\n this.filterCallback = callback;\r\n }\r\n}\r\n","import { SimulationVariable } from './simulation-variable';\r\nimport { BaseObject } from './base-object';\r\nimport { Case } from './case';\r\nimport { KpiProvider } from './_case-study/kpi-provider';\r\n\r\nexport class SuncorCalculator extends BaseObject implements KpiProvider {\r\n category = 'suncorCalculator';\r\n override name = 'Insights';\r\n integration: SimulationVariable;\r\n totalGhg: SimulationVariable;\r\n totalSuncorGhg: SimulationVariable;\r\n totalRevenue: SimulationVariable;\r\n totalOpex: SimulationVariable;\r\n totalCapex: SimulationVariable;\r\n totalValue: SimulationVariable;\r\n totalGhgIntensity: SimulationVariable;\r\n totalSuncorGhgIntensity: SimulationVariable;\r\n\r\n constructor(calculator: any, ownerCase: Case) {\r\n super(calculator.id, ownerCase);\r\n this.initValues(calculator);\r\n this.setSimulationVariableNames();\r\n this.setSimulationVariablesOwner();\r\n }\r\n\r\n initValues(calculator: any) {\r\n this.integration = new SimulationVariable(calculator.integration, this.ownerCase, this);\r\n this.totalGhg = new SimulationVariable(calculator.totalGhg, this.ownerCase, this);\r\n this.totalSuncorGhg = new SimulationVariable(calculator.totalSuncorGhg, this.ownerCase, this);\r\n this.totalRevenue = new SimulationVariable(calculator.totalRevenue, this.ownerCase, this);\r\n this.totalOpex = new SimulationVariable(calculator.totalOpex, this.ownerCase, this);\r\n this.totalCapex = new SimulationVariable(calculator.totalCapex, this.ownerCase, this);\r\n this.totalValue = new SimulationVariable(calculator.totalValue, this.ownerCase, this);\r\n this.totalGhgIntensity = new SimulationVariable(calculator.totalGhgIntensity, this.ownerCase, this);\r\n this.totalSuncorGhgIntensity = new SimulationVariable(calculator.totalSuncorGhgIntensity, this.ownerCase, this);\r\n this.setQuantities();\r\n this.setSimulationVariablesOwner();\r\n }\r\n\r\n setQuantities() {\r\n this.integration.setQuantity('Percent');\r\n this.totalGhg.setQuantity('Massflowrate');\r\n this.totalSuncorGhg.setQuantity('Massflowrate');\r\n this.totalOpex.setQuantity('CurrencyPerTime');\r\n this.totalRevenue.setQuantity('CurrencyPerTime');\r\n this.totalCapex.setQuantity('CurrencyPerTime');\r\n this.totalValue.setQuantity('CurrencyPerTime');\r\n this.totalGhgIntensity.setQuantity('MassPerVolume');\r\n this.totalSuncorGhgIntensity.setQuantity('MassPerVolume');\r\n }\r\n\r\n override dePersist(so: any) {\r\n this.integration = this.getSimulationVariableSafe(so.integration);\r\n this.totalGhg = this.getSimulationVariableSafe(so.totalGhg);\r\n this.totalSuncorGhg = this.getSimulationVariableSafe(so.totalSuncorGhg);\r\n this.totalRevenue = this.getSimulationVariableSafe(so.totalRevenue);\r\n this.totalOpex = this.getSimulationVariableSafe(so.totalOpex);\r\n this.totalCapex = this.getSimulationVariableSafe(so.totalCapex);\r\n this.totalValue = this.getSimulationVariableSafe(so.totalValue);\r\n this.totalGhgIntensity = this.getSimulationVariableSafe(so.totalGhgIntensity);\r\n this.totalSuncorGhgIntensity = this.getSimulationVariableSafe(so.totalSuncorGhgIntensity);\r\n this.setSimulationVariableNames();\r\n this.setSimulationVariablesOwner();\r\n }\r\n\r\n getAvailableKpis() {\r\n if (!this.ownerCase.multiPeriodEnabled) {\r\n return [\r\n this.integration,\r\n this.totalGhg,\r\n this.totalRevenue,\r\n this.totalOpex,\r\n this.totalCapex,\r\n this.totalValue,\r\n this.totalGhgIntensity,\r\n this.totalSuncorGhgIntensity,\r\n ];\r\n }\r\n return [];\r\n }\r\n\r\n setSimulationVariableNames() {\r\n this.integration.setName('Integration');\r\n this.totalGhg.setName('Total GHG');\r\n this.totalRevenue.setName('Total revenue');\r\n this.totalOpex.setName('Total OPEX');\r\n this.totalCapex.setName('Total CAPEX');\r\n this.totalValue.setName('Total value');\r\n this.totalGhgIntensity.setName('Total GHG intensity');\r\n this.totalSuncorGhgIntensity.setName('Total Suncor GHG intensity');\r\n }\r\n\r\n public toJSON() {\r\n return {\r\n id: this.id,\r\n category: this.category,\r\n integration: this.integration.id,\r\n totalGhg: this.totalGhg.id,\r\n totalSuncorGhg: this.totalSuncorGhg.id,\r\n totalRevenue: this.totalRevenue.id,\r\n totalOpex: this.totalOpex.id,\r\n totalCapex: this.totalCapex.id,\r\n totalValue: this.totalValue.id,\r\n totalGhgIntensity: this.totalGhgIntensity.id,\r\n totalSuncorGhgIntensity: this.totalSuncorGhgIntensity.id,\r\n };\r\n }\r\n}\r\n","import { BaseObject } from '../base-object';\r\nimport { Case } from '../case';\r\n\r\nexport class Flowsheet extends BaseObject {\r\n category = 'flowsheet';\r\n private diagramJson: string;\r\n unitOperationId: string;\r\n constructor(flowsheet: any, ownerCase: Case) {\r\n super(flowsheet.id, ownerCase);\r\n }\r\n\r\n isSubflowsheet(): boolean {\r\n return !!this.unitOperationId;\r\n }\r\n\r\n getDiagramJson() {\r\n return this.diagramJson;\r\n }\r\n\r\n setDiagramJson(diagramJson: string) {\r\n this.diagramJson = diagramJson;\r\n }\r\n\r\n override dePersist(persistedObj: any) {\r\n this.unitOperationId = persistedObj.unitOperationId;\r\n }\r\n\r\n toJSON() {\r\n return {\r\n unitOperationId: this.unitOperationId,\r\n };\r\n }\r\n}\r\n","export enum StreamCategory {\r\n MATERIAL_STREAM = 'material-stream',\r\n WATER_MATERIAL_STREAM = 'water-material-stream',\r\n FUEL_GAS_MATERIAL_STREAM = 'fuel-gas-material-stream',\r\n}\r\n","import { BaseStream } from './base-stream';\r\nimport { Case } from '../case';\r\nimport { SimulationVariable } from '../simulation-variable';\r\nimport { Quantity } from '../../_config/quantity.enum';\r\nimport { StreamCategory } from '../../_config/stream-category.enum';\r\nimport { UnitOperation } from '../unit-operation';\r\nimport { SimulationVariableName } from '../../_config/simulation-variable-name.enum';\r\nimport { KpiProvider } from '../_case-study/kpi-provider';\r\n\r\ndeclare let unitConverter: any;\r\n\r\nexport class WaterMaterialStream extends BaseStream implements KpiProvider {\r\n category = StreamCategory.WATER_MATERIAL_STREAM;\r\n\r\n massFlowrate: SimulationVariable;\r\n temperature: SimulationVariable;\r\n pressure: SimulationVariable;\r\n\r\n constructor(waterMaterialStream: WaterMaterialStream | any, ownerCase: Case) {\r\n super(waterMaterialStream.id, ownerCase);\r\n\r\n this.initValues(waterMaterialStream);\r\n this.setSimulationVariableNames();\r\n }\r\n\r\n getAvailableKpis() {\r\n if (this.ownerCase.multiPeriodEnabled) {\r\n return [];\r\n }\r\n this.setSimulationVariableNames();\r\n return [this.massFlowrate, this.temperature, this.pressure];\r\n }\r\n\r\n override initValues(baseStream: any | WaterMaterialStream) {\r\n super.initValues(baseStream);\r\n\r\n this.massFlowrate = new SimulationVariable(baseStream.massFlowrate, this.ownerCase, this);\r\n this.temperature = new SimulationVariable(baseStream.temperature, this.ownerCase, this);\r\n this.pressure = new SimulationVariable(baseStream.pressure, this.ownerCase, this);\r\n }\r\n\r\n override clearResults() {\r\n this.massFlowrate.value = undefined;\r\n this.temperature.value = undefined;\r\n this.pressure.value = undefined;\r\n }\r\n\r\n override setQuantities() {\r\n this.massFlowrate.setQuantity(Quantity.MASSFLOWRATE);\r\n this.temperature.setQuantity(Quantity.TEMPERATURE);\r\n this.pressure.setQuantity(Quantity.PRESSURE);\r\n }\r\n\r\n override setSimulationVariableNames() {\r\n this.massFlowrate.setName(SimulationVariableName.MASS_FLOWRATE);\r\n this.temperature.setName(SimulationVariableName.TEMPERATURE);\r\n this.pressure.setName(SimulationVariableName.PRESSURE);\r\n }\r\n\r\n override setDefaultValues() {\r\n if (this.massFlowrate.isUndefined()) {\r\n this.massFlowrate.setDefaultValue(undefined, unitConverter.units.Massflowrate.KPPH);\r\n }\r\n }\r\n\r\n hasFlowrate(): boolean {\r\n return this.massFlowrate.value > 1e-3;\r\n }\r\n\r\n protected override isPropertyBlackListed(property: any) {\r\n return property instanceof Case || typeof property === 'function' || property instanceof UnitOperation;\r\n }\r\n\r\n override dePersist(persistedObj: any) {\r\n this.massFlowrate = this.getSimulationVariableSafe(persistedObj.massFlowrate);\r\n this.temperature = this.getSimulationVariableSafe(persistedObj.temperature);\r\n this.pressure = this.getSimulationVariableSafe(persistedObj.pressure);\r\n }\r\n\r\n public toJSON() {\r\n return {\r\n key: this.key,\r\n streamColor: this.streamColor,\r\n id: this.id,\r\n category: this.category,\r\n name: this.name,\r\n inletUnitOperationId: this.inletUnitOperationId,\r\n outletUnitOperationId: this.outletUnitOperationId,\r\n fromPort: this.fromPort,\r\n toPort: this.toPort,\r\n massFlowrate: this.massFlowrate.id,\r\n temperature: this.temperature.id,\r\n pressure: this.pressure.id,\r\n isRecycleStream: this.isRecycleStream,\r\n };\r\n }\r\n}\r\n","import { StreamCategory } from '../../_config/stream-category.enum';\r\nimport { SimulationVariable } from '../simulation-variable';\r\nimport { Case } from '../case';\r\nimport { BaseStream } from './base-stream';\r\nimport { BaseObject } from '../base-object';\r\nimport { UnitOperation } from '../unit-operation';\r\nimport { Quantity } from '../../_config/quantity.enum';\r\nimport { KpiProvider } from '../_case-study/kpi-provider';\r\n\r\ndeclare let unitConverter: any;\r\n\r\nexport class FuelGasMaterialStream extends BaseStream implements KpiProvider {\r\n category = StreamCategory.FUEL_GAS_MATERIAL_STREAM;\r\n flowrate: SimulationVariable;\r\n heatFlow: SimulationVariable;\r\n lhv: SimulationVariable;\r\n\r\n composition: SimulationVariable[] = [];\r\n\r\n constructor(stream: FuelGasMaterialStream | any, ownerCase: Case) {\r\n super(stream.id, ownerCase);\r\n\r\n this.initValues(stream);\r\n this.setSimulationVariableNames();\r\n }\r\n\r\n getAvailableKpis() {\r\n if (this.ownerCase.multiPeriodEnabled) {\r\n return [];\r\n }\r\n this.setSimulationVariableNames();\r\n return [this.flowrate, this.heatFlow, this.lhv];\r\n }\r\n\r\n override initValues(stream: any | FuelGasMaterialStream) {\r\n super.initValues(stream);\r\n\r\n this.flowrate = new SimulationVariable(stream.flowrate, this.ownerCase, this);\r\n this.heatFlow = new SimulationVariable(stream.heatFlow, this.ownerCase, this);\r\n this.lhv = new SimulationVariable(stream.lhv, this.ownerCase, this);\r\n\r\n this.initComposition(stream);\r\n this.setQuantities();\r\n }\r\n\r\n private initComposition(stream: any | FuelGasMaterialStream) {\r\n if (this.composition.length) {\r\n return;\r\n }\r\n\r\n const composition = stream.composition || [];\r\n\r\n let compound = new SimulationVariable(composition[0] || {}, this.ownerCase, this);\r\n this.composition.push(compound);\r\n\r\n compound = new SimulationVariable(composition[1] || {}, this.ownerCase, this);\r\n this.composition.push(compound);\r\n\r\n compound = new SimulationVariable(composition[2] || {}, this.ownerCase, this);\r\n this.composition.push(compound);\r\n\r\n compound = new SimulationVariable(composition[3] || {}, this.ownerCase, this);\r\n this.composition.push(compound);\r\n\r\n compound = new SimulationVariable(composition[4] || {}, this.ownerCase, this);\r\n this.composition.push(compound);\r\n\r\n compound = new SimulationVariable(composition[5] || {}, this.ownerCase, this);\r\n this.composition.push(compound);\r\n\r\n compound = new SimulationVariable(composition[6] || {}, this.ownerCase, this);\r\n this.composition.push(compound);\r\n\r\n compound = new SimulationVariable(composition[7] || {}, this.ownerCase, this);\r\n this.composition.push(compound);\r\n\r\n compound = new SimulationVariable(composition[8] || {}, this.ownerCase, this);\r\n this.composition.push(compound);\r\n\r\n compound = new SimulationVariable(composition[9] || {}, this.ownerCase, this);\r\n this.composition.push(compound);\r\n\r\n compound = new SimulationVariable(composition[10] || {}, this.ownerCase, this);\r\n this.composition.push(compound);\r\n\r\n compound = new SimulationVariable(composition[11] || {}, this.ownerCase, this);\r\n this.composition.push(compound);\r\n\r\n compound = new SimulationVariable(composition[12] || {}, this.ownerCase, this);\r\n this.composition.push(compound);\r\n\r\n compound = new SimulationVariable(composition[13] || {}, this.ownerCase, this);\r\n this.composition.push(compound);\r\n }\r\n\r\n override setDefaultValues() {\r\n if (this.heatFlow.isUndefined()) {\r\n this.heatFlow.setDefaultValue(0.0, unitConverter.units.Energyrate.GJ_H);\r\n }\r\n }\r\n\r\n override setQuantities() {\r\n this.flowrate.setQuantity(Quantity.MOLARFLOWRATE);\r\n this.heatFlow.setQuantity(Quantity.ENERGYRATE);\r\n this.lhv.setQuantity(Quantity.ENERGY_PER_VOLUME);\r\n\r\n for (const sv of this.composition) {\r\n sv.setQuantity(Quantity.MOLE_FRACTION);\r\n }\r\n }\r\n\r\n override setSimulationVariableNames() {\r\n this.flowrate.setName('Flowrate');\r\n this.heatFlow.setName('Heat Flow');\r\n this.lhv.setName('LHV');\r\n this.setCompositionNames();\r\n }\r\n\r\n setCompositionNames(): void {\r\n const compoundNames = [\r\n 'CO',\r\n 'CO2',\r\n 'H2',\r\n 'N2',\r\n 'H2S',\r\n 'SO2',\r\n 'Methane',\r\n 'Ethane',\r\n 'Propane',\r\n 'iC4',\r\n 'nC4',\r\n 'iC5',\r\n 'nC5',\r\n 'C6+',\r\n ];\r\n\r\n for (let i = 0; i < this.composition.length; i++) {\r\n this.composition[i].name = compoundNames[i];\r\n }\r\n }\r\n\r\n override clearResults() {\r\n this.flowrate.value = undefined;\r\n this.heatFlow.value = undefined;\r\n this.lhv.value = undefined;\r\n\r\n for (const sv of this.composition) {\r\n sv.value = undefined;\r\n }\r\n }\r\n\r\n override getChildrenObjectsForRemoval(): BaseObject[] {\r\n const objs = super.getChildrenObjectsForRemoval();\r\n objs.push(...this.composition);\r\n return objs;\r\n }\r\n\r\n override getSimVars() {\r\n const simVars = super.getSimVars();\r\n for (const sv of this.composition) {\r\n simVars.push(sv);\r\n }\r\n\r\n return simVars;\r\n }\r\n\r\n hasFlowrate(): boolean {\r\n return this.flowrate.value > 1e-3;\r\n }\r\n\r\n protected override isPropertyBlackListed(property: any) {\r\n return property instanceof Case || typeof property === 'function' || property instanceof UnitOperation;\r\n }\r\n\r\n override dePersist(fgms: any) {\r\n this.flowrate = this.getSimulationVariableSafe(fgms.flowrate);\r\n this.heatFlow = this.getSimulationVariableSafe(fgms.heatFlow);\r\n this.lhv = this.getSimulationVariableSafe(fgms.lhv);\r\n\r\n if (fgms.composition instanceof Array) {\r\n for (let i = 0; i < fgms.composition.length; i++) {\r\n this.composition[i] = this.getSimulationVariableSafe(fgms.composition[i]);\r\n }\r\n }\r\n\r\n this.setQuantities();\r\n }\r\n\r\n public toJSON() {\r\n return {\r\n key: this.key,\r\n streamColor: this.streamColor,\r\n id: this.id,\r\n category: this.category,\r\n name: this.name,\r\n inletUnitOperationId: this.inletUnitOperationId,\r\n outletUnitOperationId: this.outletUnitOperationId,\r\n fromPort: this.fromPort,\r\n toPort: this.toPort,\r\n flowrate: this.flowrate.id,\r\n heatFlow: this.heatFlow.id,\r\n lhv: this.lhv.id,\r\n composition: this.composition.map(sv => sv.id),\r\n isRecycleStream: this.isRecycleStream,\r\n };\r\n }\r\n}\r\n","import { Subject } from 'rxjs';\r\nimport { SimulationVariable } from './simulation-variable'; // DO NOT MOVE!\r\nimport { UnitOperationFactory } from './_unit-operations/unit-operation-factory';\r\nimport { UnitOperation } from './unit-operation';\r\nimport { BaseObject } from './base-object';\r\nimport { SuncorMaterialStream } from './_streams/suncor-material-stream';\r\nimport { CaseSettings } from './case-settings';\r\n\r\nimport { CaseStudyManager } from './_case-study/case-study-manager';\r\nimport { CaseStudyCategory } from './_case-study/case-study-category';\r\nimport { unitOperationsConfig } from '../_config/unit-operations.config';\r\nimport { ObjectiveFunction } from './_optimization/objective-function';\r\nimport { SuncorCalculator } from './suncor-calculator';\r\nimport { Flowsheet } from './flowsheet-manager/flowsheet';\r\nimport { AssayManager } from './_fluid/assay-manager';\r\nimport { DRU } from './_unit-operations/dru';\r\nimport { VAC } from './_unit-operations/vac';\r\nimport { ProductTank } from './product-tank';\r\nimport { CommodityTank } from './_unit-operations/commodity-tank';\r\nimport { Hydrotreater } from './_unit-operations/hydrotreater';\r\nimport { ConstraintViolationEntry } from './constraint-violation-entry';\r\nimport { MarginalValueEntry } from './marginal-value-entry';\r\nimport { BaseStream } from './_streams/base-stream';\r\nimport { WaterMaterialStream } from './_streams/water-material-stream';\r\nimport { WaterSplitter } from './_unit-operations/utilties/water-splitter';\r\nimport { WaterHeader } from './_unit-operations/utilties/water-header';\r\nimport { FuelGasSplitter } from './_unit-operations/fuel-gas/fuel-gas-splitter';\r\nimport { SteamUseUnitOperation } from './_unit-operations/steam-use-unit-operation';\r\nimport { BaseWaterImportUnitOperation } from './_unit-operations/utilties/base-water-import-unit-operation';\r\nimport { GasContributorUnitOperation } from './_unit-operations/gas-contributor-unit-operation';\r\nimport { FuelGasSourceImport } from './_unit-operations/fuel-gas/fuel-gas-source-import';\r\nimport { FuelGasSinkImport } from './_unit-operations/fuel-gas/fuel-gas-sink-import';\r\nimport { FuelGasMaterialStream } from './_streams/fuel-gas-material-stream';\r\nimport { WaterPipeSegment } from './_unit-operations/utilties/water-pipe-segment';\r\nimport { MultiPeriodSettings } from './_multi-period/multi-period-settings';\r\nimport { BaseObjectComment } from './base-object-comment';\r\nimport { DiluentSource } from './_unit-operations/diluent-source';\r\nimport { Refinery } from './_unit-operations/refinery';\r\nimport { SagdSource } from './_unit-operations/sagd-source';\r\nimport { MineSource } from './_unit-operations/mine-source';\r\nimport { ThirdPartySource } from './_unit-operations/third-party-source';\r\nimport { OffshoreSource } from './_unit-operations/offshore-source';\r\nimport { Upgrader } from './_unit-operations/upgrader';\r\nimport { BitumenConversion } from './_unit-operations/bitumen-conversion';\r\nimport { ThirdPartyRefinery } from './_unit-operations/third-party-refinery';\r\nimport { Extraction } from './_unit-operations/extraction';\r\nimport { Pipe } from './_unit-operations/pipe';\r\nimport { DCU } from './_unit-operations/dcu';\r\nimport { FluidCoker } from './_unit-operations/fluid-coker';\r\nimport { Hydrocracker } from './_unit-operations/hydrocracker';\r\nimport { SulfurPlant } from './_unit-operations/sulfur-plant';\r\nimport { HydrogenPlant } from './_unit-operations/hydrogen-plant';\r\nimport { WaterBoiler } from './_unit-operations/utilties/water-boiler';\r\nimport { WaterSource } from './_unit-operations/utilties/water-source';\r\nimport { WaterHeatExchanger } from './_unit-operations/utilties/water-heat-exchanger';\r\nimport { WaterTurbine } from './_unit-operations/utilties/water-turbine';\r\nimport { WaterHeater } from './_unit-operations/utilties/water-heater';\r\nimport { WaterCooler } from './_unit-operations/utilties/water-cooler';\r\nimport { WaterTwoPhaseSeparator } from './_unit-operations/utilties/water-two-phase-separator';\r\nimport { WaterPump } from './_unit-operations/utilties/water-pump';\r\nimport { WaterPipe } from './_unit-operations/utilties/water-pipe';\r\nimport { WaterCogeneration } from './_unit-operations/utilties/water-cogeneration';\r\nimport { FuelGasSource } from './_unit-operations/fuel-gas/fuel-gas-source';\r\nimport { FuelGasAmineContactor } from './_unit-operations/fuel-gas/fuel-gas-amine-contactor';\r\nimport { isInletDistributionRatioVariablesOwner } from './_unit-operations/inlet-distribution-ratio-variables-owner';\r\nimport { isOutletDistributionRatioVariablesOwner } from './_unit-operations/outlet-distribution-ratio-variables-owner';\r\n\r\nexport class Case extends BaseObject {\r\n category = 'case';\r\n\r\n comments: any = { text: '' };\r\n\r\n isSolved: boolean;\r\n isReady: boolean;\r\n caseSettings: CaseSettings;\r\n // objectiveFunction: ObjectiveFunction;\r\n caseStudyManager: CaseStudyManager;\r\n // economicAnalyzer: EconomicAnalyzer;\r\n calculator: SuncorCalculator;\r\n objectiveFunction: ObjectiveFunction;\r\n assayManager: AssayManager;\r\n\r\n // I think we should have a map Type. or Hash type.\r\n // Or something that implements forEach, serialization be dammed\r\n simulationVariablePool: { [id: string]: SimulationVariable } = {};\r\n unitOperationPool: { [id: string]: UnitOperation } = {};\r\n materialStreamPool: { [id: string]: BaseStream } = {};\r\n otherBaseObjectPool: { [id: string]: BaseObject } = {}; // case settings.. and other stuff (?)\r\n commentsPool: BaseObjectComment[] = [];\r\n\r\n /**\r\n * This is the id of the main flowsheet and by no means it should change\r\n * @private\r\n */\r\n private flowsheetId: string;\r\n flowsheetPool: { [id: string]: Flowsheet } = {};\r\n\r\n constraintViolationEntries: ConstraintViolationEntry[] = [];\r\n marginalValueEntries: MarginalValueEntry[] = [];\r\n multiPeriodEnabled: boolean;\r\n multiPeriodSettings: MultiPeriodSettings;\r\n\r\n // fancy delegates\r\n private simulationVariableDeletedSubject = new Subject<SimulationVariable>();\r\n simulationVariableDeletedRequest = this.simulationVariableDeletedSubject.asObservable();\r\n\r\n // kpi manager triggers this subject and uncertainty analyses subscribe to it\r\n // should this be replaced by a service? YES\r\n kpiDeletedSubject = new Subject<SimulationVariable>();\r\n kpiDeletedRequest = this.kpiDeletedSubject.asObservable();\r\n\r\n // this is a temporary property that'll help remember either the user wants to wait for case results\r\n // or prefer to receive them via email.\r\n solveOption: string;\r\n\r\n /**\r\n * A string that holds the JSON model of the gojs diagram\r\n * ### The manipulation of this property is extremely dangerous!\r\n * In the code, it is used to store the JSON of the subflowsheets.\r\n *\r\n * This property is not serialized at case level, however, it is serialized as a separated file in the .opt zipped\r\n * file and the contents of this property are assumed to contain the main flowsheet diagram\r\n *\r\n * Based on the usage of this property when saving a file, it seems that this should always reference the\r\n * main flowsheet diagram.\r\n * ###\r\n *\r\n * ### This property seems to be redundant\r\n * The JSON strings that contain gojs models are stored (in memory) in the flowsheet pool...\r\n * Seems the same thing (saving the gojs JSON) is done twice - one here and other in the flowsheet pool.\r\n *\r\n * **Original comment (Humberto)** *temporarily stores the case's diagram to be loaded on case switch*\r\n * @private\r\n */\r\n private diagram: string;\r\n\r\n private activeFlowsheet: Flowsheet;\r\n\r\n constructor(c: any) {\r\n super(c.id, null);\r\n this.isSolved = !!c.isSolved;\r\n this.isReady = !!c.isReady;\r\n this.name = c.name;\r\n this.flowsheetId = c.flowsheetId;\r\n this.solveOption = c.solveOption || 'waitForResults';\r\n this.multiPeriodEnabled = !!c.multiPeriodEnabled;\r\n\r\n if (c.comments) {\r\n this.comments = c.comments; // wat\r\n }\r\n }\r\n\r\n // region base functions\r\n cloneUnitOperation(sourceUnitOp: UnitOperation) {\r\n return UnitOperationFactory.createUnitOperation(sourceUnitOp, this);\r\n }\r\n\r\n createAndAddToUnitOperations(sourceUnitOp: any, resourceData?): UnitOperation {\r\n const unitOperation = this.createUnitOperation(sourceUnitOp, resourceData);\r\n this.addToUnitOperations(unitOperation);\r\n return unitOperation;\r\n }\r\n\r\n createUnitOperation(sourceUnitOp: any, resourceData?): UnitOperation {\r\n return UnitOperationFactory.createUnitOperationAndSetDefaultValues(sourceUnitOp, this, resourceData);\r\n }\r\n\r\n addToUnitOperations(unitOperation: UnitOperation) {\r\n unitOperation.addSimVarsToPool();\r\n this.addToPools(unitOperation);\r\n }\r\n\r\n /**\r\n * Puts all unit operations from this flowsheet into an array given a category\r\n * @param category A string containing the desired\r\n * @returns {Array<UnitOperation>}\r\n */\r\n findUnitOpsByCategory(category: string): Array<any> {\r\n return this.filterUnitOperations((uo: UnitOperation): boolean => {\r\n return uo.category === category;\r\n });\r\n }\r\n\r\n findUnitOperationsByFlowsheetId(flowsheetId: string): UnitOperation[] {\r\n return this.filterUnitOperations(uo => uo.flowsheetId === flowsheetId);\r\n }\r\n\r\n /**\r\n *\r\n * @param callback A callback function that must return a boolean value,\r\n * if true, the current unit operation will be added to array result.\r\n * @returns {Array<UnitOperation>} An array containing unit operations that\r\n * satisfy the condition given by the callback function\r\n */\r\n filterUnitOperations(callback: (uo: UnitOperation) => boolean): Array<UnitOperation> {\r\n const result: Array<UnitOperation> = [];\r\n for (const uo in this.unitOperationPool) {\r\n if (callback(this.unitOperationPool[uo])) {\r\n result.push(this.unitOperationPool[uo]);\r\n }\r\n }\r\n\r\n return result;\r\n }\r\n\r\n getBitumenConversionUnits() {\r\n const bitumenUnits: BitumenConversion[] = [];\r\n for (const uo in this.unitOperationPool) {\r\n if (this.unitOperationPool[uo].category === unitOperationsConfig.bitumenConversion.key) {\r\n bitumenUnits.push(this.unitOperationPool[uo] as BitumenConversion);\r\n }\r\n }\r\n return bitumenUnits;\r\n }\r\n\r\n filterAllMaterialStreams(callback: (s: BaseStream) => boolean): BaseStream[] {\r\n const result: BaseStream[] = [];\r\n // eslint-disable-next-line guard-for-in\r\n for (const sId in this.materialStreamPool) {\r\n const stream = this.getMaterialStream(sId);\r\n if (callback(stream)) {\r\n result.push(stream);\r\n }\r\n }\r\n\r\n return result;\r\n }\r\n\r\n filterWaterMaterialStreams(callback: (s: WaterMaterialStream) => boolean): Array<WaterMaterialStream> {\r\n const result: Array<WaterMaterialStream> = [];\r\n // eslint-disable-next-line guard-for-in\r\n for (const sId in this.materialStreamPool) {\r\n const stream = this.getWaterStream(sId);\r\n if (stream instanceof WaterMaterialStream) {\r\n if (callback(stream)) {\r\n result.push(stream);\r\n }\r\n }\r\n }\r\n\r\n return result;\r\n }\r\n\r\n filterFuelGasMaterialStreams(callback: (s: FuelGasMaterialStream) => boolean): Array<FuelGasMaterialStream> {\r\n const result: Array<FuelGasMaterialStream> = [];\r\n // eslint-disable-next-line guard-for-in\r\n for (const sId in this.materialStreamPool) {\r\n const stream = this.getFuelGasStream(sId);\r\n if (stream instanceof FuelGasMaterialStream) {\r\n if (callback(stream)) {\r\n result.push(stream);\r\n }\r\n }\r\n }\r\n\r\n return result;\r\n }\r\n\r\n filterSuncorMaterialStreams(callback: (s: SuncorMaterialStream) => boolean): Array<SuncorMaterialStream> {\r\n const result: Array<SuncorMaterialStream> = [];\r\n // eslint-disable-next-line guard-for-in\r\n for (const sId in this.materialStreamPool) {\r\n const stream = this.getSuncorMaterialStream(sId);\r\n if (stream instanceof SuncorMaterialStream) {\r\n if (callback(stream)) {\r\n result.push(stream);\r\n }\r\n }\r\n }\r\n\r\n return result;\r\n }\r\n\r\n filterSimvars(callback: (s: SimulationVariable) => boolean): Array<SimulationVariable> {\r\n const result: Array<SimulationVariable> = [];\r\n for (const s in this.simulationVariablePool) {\r\n if (callback(this.simulationVariablePool[s])) {\r\n result.push(this.simulationVariablePool[s]);\r\n }\r\n }\r\n\r\n return result;\r\n }\r\n\r\n filterFlowsheets(callback: (s: Flowsheet) => boolean): Array<Flowsheet> {\r\n const result: Array<Flowsheet> = [];\r\n for (const s in this.flowsheetPool) {\r\n if (callback(this.flowsheetPool[s])) {\r\n result.push(this.flowsheetPool[s]);\r\n }\r\n }\r\n\r\n return result;\r\n }\r\n\r\n getFirstLevelFlowsheet(): Flowsheet {\r\n return this.filterFlowsheets(f => !f.isSubflowsheet())[0];\r\n }\r\n\r\n getSimulationVariable(id: string): SimulationVariable {\r\n return this.simulationVariablePool[id];\r\n }\r\n\r\n getUnitOperation(id: string): UnitOperation {\r\n return this.unitOperationPool[id];\r\n }\r\n\r\n getUnitOperationName(id: string): string {\r\n return this.unitOperationPool[id].name;\r\n }\r\n\r\n getAllSuncorMaterialStreamIds(): string[] {\r\n return this.filterSuncorMaterialStreams(() => true).map(s => s.id);\r\n }\r\n\r\n getAllWaterMaterialStreamIds(): string[] {\r\n return this.filterWaterMaterialStreams(() => true).map(s => s.id);\r\n }\r\n\r\n getAllMaterialStreamIds(): string[] {\r\n return this.filterAllMaterialStreams(() => true).map(s => s.id);\r\n }\r\n\r\n getAllFuelGasMaterialStreamIds(): string[] {\r\n return this.filterFuelGasMaterialStreams(() => true).map(s => s.id);\r\n }\r\n\r\n getMaterialStream(id: string): BaseStream {\r\n return this.materialStreamPool[id];\r\n }\r\n\r\n getSuncorMaterialStream(id: string): SuncorMaterialStream {\r\n const s = this.materialStreamPool[id];\r\n return s instanceof SuncorMaterialStream ? s : undefined;\r\n }\r\n\r\n getWaterStream(id: string): WaterMaterialStream {\r\n const s = this.materialStreamPool[id];\r\n return s instanceof WaterMaterialStream ? s : undefined;\r\n }\r\n\r\n getFuelGasStream(id: string): FuelGasMaterialStream {\r\n const s = this.materialStreamPool[id];\r\n return s instanceof FuelGasMaterialStream ? s : undefined;\r\n }\r\n\r\n getStreamsByInletUnitOperationId(inletUnitOperationId: string): BaseStream[] {\r\n return Object.entries(this.materialStreamPool)\r\n .filter(entry => entry[1].inletUnitOperationId === inletUnitOperationId)\r\n .map(entry => entry[1]);\r\n }\r\n\r\n getStreamsByOutletUnitOperationId(outletUnitOperationId: string) {\r\n return Object.entries(this.materialStreamPool)\r\n .filter(entry => entry[1].outletUnitOperationId === outletUnitOperationId)\r\n .map(entry => entry[1]);\r\n }\r\n\r\n getAttachedStreams(unitOperationId: string): BaseStream[] {\r\n return Object.entries(this.materialStreamPool)\r\n .filter(\r\n entry => entry[1].inletUnitOperationId === unitOperationId || entry[1].outletUnitOperationId === unitOperationId\r\n )\r\n .map(entry => entry[1]);\r\n }\r\n\r\n createFlowsheet(unitOperationId?: string) {\r\n const flowsheet = new Flowsheet({}, this);\r\n flowsheet.unitOperationId = unitOperationId;\r\n // here add code plz\r\n this.addToPools(flowsheet);\r\n return flowsheet;\r\n }\r\n\r\n getFlowsheet(id: string): Flowsheet {\r\n return this.flowsheetPool[id];\r\n }\r\n\r\n findFlowsheetByUnitOperationId(id: string): Flowsheet {\r\n let flowsheet;\r\n for (const f in this.flowsheetPool) {\r\n if (this.flowsheetPool[f].unitOperationId === id) {\r\n flowsheet = this.flowsheetPool[f];\r\n }\r\n }\r\n return flowsheet;\r\n }\r\n\r\n getOtherBaseObject(id: string): BaseObject {\r\n return this.otherBaseObjectPool[id];\r\n }\r\n\r\n getBaseObject(id: string): BaseObject {\r\n return this.unitOperationPool[id] || this.materialStreamPool[id] || this.otherBaseObjectPool[id];\r\n }\r\n\r\n removeFromPools(obj: BaseObject): void {\r\n // delete all nested SimulationVariables...\r\n const childrenObjectsForRemoval = obj.getChildrenObjectsForRemoval();\r\n for (const child of childrenObjectsForRemoval) {\r\n // only remove the simulation variables that belong to the object being removed\r\n if (child instanceof SimulationVariable) {\r\n if (child.ownerBaseObject === obj && this.simulationVariablePool[child.id]) {\r\n this.removeFromPools(child);\r\n }\r\n } else {\r\n this.removeFromPools(child);\r\n }\r\n }\r\n\r\n if (obj instanceof UnitOperation) {\r\n delete this.unitOperationPool[obj.id];\r\n } else if (obj instanceof SimulationVariable) {\r\n this.onSimulationVariableDeleted(obj);\r\n delete this.simulationVariablePool[obj.id];\r\n } else if (obj instanceof BaseStream) {\r\n delete this.materialStreamPool[obj.id];\r\n } else if (obj instanceof Flowsheet) {\r\n delete this.flowsheetPool[obj.id];\r\n } else {\r\n delete this.otherBaseObjectPool[obj.id];\r\n }\r\n\r\n this.removeComments(obj.id);\r\n }\r\n\r\n private onSimulationVariableDeleted(sv: SimulationVariable) {\r\n this.simulationVariableDeletedSubject.next(sv);\r\n this.multiPeriodSettings.removeMultiPeriodParameterBySimulationVariableId(sv.id);\r\n }\r\n\r\n deleteUnitOperationById(id: string): void {\r\n const uo = this.getUnitOperation(id);\r\n\r\n // a recursive call is done here...\r\n this.deleteFlowsheetByUoId(uo.id);\r\n\r\n // TODO another loop through all the unit ops\r\n // if the unit op was imported by WaterImportUnitOperation\r\n if (uo instanceof SteamUseUnitOperation) {\r\n // remove the water source information streams\r\n const waterImportUnitOperations = this.filterUnitOperations(\r\n bwi => bwi instanceof BaseWaterImportUnitOperation\r\n ) as BaseWaterImportUnitOperation[];\r\n\r\n for (const waterImportUnitOperation of waterImportUnitOperations) {\r\n waterImportUnitOperation.removeInformationStreamsByProviderUnitOperationId(uo.id);\r\n }\r\n }\r\n\r\n // TODO one loop through all the unit ops\r\n // if the unit op was imported by FuelGasSourceImport\r\n if (uo instanceof GasContributorUnitOperation) {\r\n const fuelGasSourceImportList = this.filterUnitOperations(\r\n fg => fg instanceof FuelGasSourceImport\r\n ) as FuelGasSourceImport[];\r\n for (const fuelGasSourceImport of fuelGasSourceImportList) {\r\n fuelGasSourceImport.removeInformationStream(uo.id);\r\n }\r\n\r\n const fuelGasSinkImportList = this.filterUnitOperations(\r\n fg => fg instanceof FuelGasSinkImport\r\n ) as FuelGasSinkImport[];\r\n for (const fuelGasSinkImport of fuelGasSinkImportList) {\r\n fuelGasSinkImport.removeEnergyStream(uo.id);\r\n }\r\n }\r\n\r\n this.removeFromPools(uo);\r\n }\r\n\r\n deleteMaterialStreamById(id: string) {\r\n const ms = this.getMaterialStream(id);\r\n this.removeFromPools(ms);\r\n }\r\n\r\n // TODO this should be recursive - to delete level 3 and so - should we fire an observable for this?\r\n deleteFlowsheetByUoId(unitOperationId: string) {\r\n const flowsheet = this.findFlowsheetByUnitOperationId(unitOperationId);\r\n if (flowsheet) {\r\n this.removeFromPools(flowsheet);\r\n }\r\n const subFlowsheetUnitOps = this.findUnitOperationsByFlowsheetId(unitOperationId);\r\n\r\n for (let i = 0; i < subFlowsheetUnitOps.length; i++) {\r\n this.deleteUnitOperationById(subFlowsheetUnitOps[i].id);\r\n const streams = this.filterAllMaterialStreams((ms: SuncorMaterialStream) => {\r\n return (\r\n ms.inletUnitOperationId === subFlowsheetUnitOps[i].id ||\r\n ms.outletUnitOperationId === subFlowsheetUnitOps[i].id\r\n );\r\n });\r\n for (const ms of streams) {\r\n this.deleteMaterialStreamById(ms.id);\r\n }\r\n }\r\n }\r\n\r\n clearResults(): void {\r\n this.isSolved = false;\r\n\r\n for (const s of Object.keys(this.materialStreamPool)) {\r\n this.materialStreamPool[s].clearResults();\r\n }\r\n\r\n for (const u of Object.keys(this.unitOperationPool)) {\r\n this.unitOperationPool[u].clearResults();\r\n }\r\n }\r\n\r\n saveUnitOperation(unitOperation: UnitOperation): void {\r\n this.unitOperationPool[unitOperation.id].overwriteValues(unitOperation);\r\n }\r\n\r\n saveCaseSettings(cs: CaseSettings) {\r\n cs.updateStatus(this.caseSettings);\r\n cs.convertToInternalUnit();\r\n this.caseSettings.overwriteValues(cs);\r\n }\r\n\r\n // region case study manager\r\n initCaseStudyManagerCategories() {\r\n // Uncertainty categories\r\n this.caseStudyManager.addToUncertaintyCategories(\r\n new CaseStudyCategory('Mine Sources', (bo: BaseObject): boolean => {\r\n return bo.category === unitOperationsConfig.mine.key;\r\n })\r\n );\r\n this.caseStudyManager.addToUncertaintyCategories(\r\n new CaseStudyCategory('SAGD Sources', (bo: BaseObject): boolean => {\r\n return bo.category === unitOperationsConfig.sagd.key;\r\n })\r\n );\r\n this.caseStudyManager.addToUncertaintyCategories(\r\n new CaseStudyCategory('Offshore Sources', (bo: BaseObject): boolean => {\r\n return bo.category === unitOperationsConfig.offshore.key;\r\n })\r\n );\r\n this.caseStudyManager.addToUncertaintyCategories(\r\n new CaseStudyCategory('Diluent sources', (bo: BaseObject): boolean => {\r\n return bo.category === unitOperationsConfig.diluentSource.key;\r\n })\r\n );\r\n this.caseStudyManager.addToUncertaintyCategories(\r\n new CaseStudyCategory('Upgraders', (bo: BaseObject): boolean => {\r\n return bo.category === unitOperationsConfig.upgrader.key;\r\n })\r\n );\r\n this.caseStudyManager.addToUncertaintyCategories(\r\n new CaseStudyCategory('Third party sources', (bo: BaseObject): boolean => {\r\n return bo.category === unitOperationsConfig.thirdPartySource.key;\r\n })\r\n );\r\n this.caseStudyManager.addToUncertaintyCategories(\r\n new CaseStudyCategory('Bitumen conversion', (bo: BaseObject): boolean => {\r\n return bo.category === unitOperationsConfig.bitumenConversion.key;\r\n })\r\n );\r\n }\r\n\r\n initMainFlowsheetParametricStudyCategories() {\r\n this.caseStudyManager.addToParametricStudyCategories(\r\n new CaseStudyCategory('Diluent sources', (bo: BaseObject): boolean => {\r\n return bo instanceof DiluentSource;\r\n })\r\n );\r\n\r\n this.caseStudyManager.addToParametricStudyCategories(\r\n new CaseStudyCategory('Refineries', uo => {\r\n return uo instanceof Refinery;\r\n })\r\n );\r\n\r\n this.caseStudyManager.addToParametricStudyCategories(\r\n new CaseStudyCategory('Case settings', cs => {\r\n return cs instanceof CaseSettings;\r\n })\r\n );\r\n\r\n this.caseStudyManager.addToParametricStudyCategories(\r\n new CaseStudyCategory('SAGD Sources', cs => {\r\n return cs instanceof SagdSource;\r\n })\r\n );\r\n\r\n this.caseStudyManager.addToParametricStudyCategories(\r\n new CaseStudyCategory('Mine Sources', cs => {\r\n return cs instanceof MineSource;\r\n })\r\n );\r\n\r\n this.caseStudyManager.addToParametricStudyCategories(\r\n new CaseStudyCategory('Third Party Sources', cs => {\r\n return cs instanceof ThirdPartySource;\r\n })\r\n );\r\n\r\n this.caseStudyManager.addToParametricStudyCategories(\r\n new CaseStudyCategory('Offshore Sources', cs => {\r\n return cs instanceof OffshoreSource;\r\n })\r\n );\r\n\r\n this.caseStudyManager.addToParametricStudyCategories(\r\n new CaseStudyCategory('Upgraders', cs => {\r\n return cs instanceof Upgrader;\r\n })\r\n );\r\n\r\n this.caseStudyManager.addToParametricStudyCategories(\r\n new CaseStudyCategory('Bitumen Conversion', cs => {\r\n return cs instanceof BitumenConversion;\r\n })\r\n );\r\n\r\n this.caseStudyManager.addToParametricStudyCategories(\r\n new CaseStudyCategory('Third Party Refineries', cs => {\r\n return cs instanceof ThirdPartyRefinery;\r\n })\r\n );\r\n\r\n this.caseStudyManager.addToParametricStudyCategories(\r\n new CaseStudyCategory('Extractions', cs => {\r\n return cs instanceof Extraction;\r\n })\r\n );\r\n\r\n this.caseStudyManager.addToParametricStudyCategories(\r\n new CaseStudyCategory('Pipes', cs => {\r\n return cs instanceof Pipe;\r\n })\r\n );\r\n }\r\n\r\n initUpgraderFlowsheetParametricStudyCategories() {\r\n this.caseStudyManager.addToParametricStudyCategories(\r\n new CaseStudyCategory('Commodity Tanks', cs => {\r\n return cs instanceof CommodityTank;\r\n })\r\n );\r\n\r\n this.caseStudyManager.addToParametricStudyCategories(\r\n new CaseStudyCategory('Pipes', bo => {\r\n return bo instanceof Pipe;\r\n })\r\n );\r\n\r\n this.caseStudyManager.addToParametricStudyCategories(\r\n new CaseStudyCategory('DRUs', cs => {\r\n return cs instanceof DRU;\r\n })\r\n );\r\n\r\n this.caseStudyManager.addToParametricStudyCategories(\r\n new CaseStudyCategory('VACs', (bo: BaseObject): boolean => {\r\n return bo instanceof VAC;\r\n })\r\n );\r\n\r\n this.caseStudyManager.addToParametricStudyCategories(\r\n new CaseStudyCategory('Bitumen Conversion', cs => {\r\n return cs instanceof BitumenConversion;\r\n })\r\n );\r\n\r\n this.caseStudyManager.addToParametricStudyCategories(\r\n new CaseStudyCategory('Hydrotreaters', cs => {\r\n return cs instanceof Hydrotreater;\r\n })\r\n );\r\n\r\n this.caseStudyManager.addToParametricStudyCategories(\r\n new CaseStudyCategory('DCUs', cs => {\r\n return cs instanceof DCU;\r\n })\r\n );\r\n\r\n this.caseStudyManager.addToParametricStudyCategories(\r\n new CaseStudyCategory('Fluid Cokers', cs => {\r\n return cs instanceof FluidCoker;\r\n })\r\n );\r\n\r\n this.caseStudyManager.addToParametricStudyCategories(\r\n new CaseStudyCategory('Hydrocrackers', cs => {\r\n return cs instanceof Hydrocracker;\r\n })\r\n );\r\n\r\n this.caseStudyManager.addToParametricStudyCategories(\r\n new CaseStudyCategory('Sulfur Plants', cs => {\r\n return cs instanceof SulfurPlant;\r\n })\r\n );\r\n\r\n this.caseStudyManager.addToParametricStudyCategories(\r\n new CaseStudyCategory('Hydrogen Plants', cs => {\r\n return cs instanceof HydrogenPlant;\r\n })\r\n );\r\n }\r\n\r\n initSteamFlowsheetParametricStudyCategories() {\r\n this.caseStudyManager.addToParametricStudyCategories(\r\n new CaseStudyCategory('Boilers', cs => {\r\n return cs instanceof WaterBoiler;\r\n })\r\n );\r\n\r\n this.caseStudyManager.addToParametricStudyCategories(\r\n new CaseStudyCategory('Sources', cs => {\r\n return cs instanceof WaterSource;\r\n })\r\n );\r\n\r\n this.caseStudyManager.addToParametricStudyCategories(\r\n new CaseStudyCategory('Heat Exchangers', cs => {\r\n return cs instanceof WaterHeatExchanger;\r\n })\r\n );\r\n\r\n this.caseStudyManager.addToParametricStudyCategories(\r\n new CaseStudyCategory('Turbines', cs => {\r\n return cs instanceof WaterTurbine;\r\n })\r\n );\r\n\r\n this.caseStudyManager.addToParametricStudyCategories(\r\n new CaseStudyCategory('Heaters', cs => {\r\n return cs instanceof WaterHeater;\r\n })\r\n );\r\n\r\n this.caseStudyManager.addToParametricStudyCategories(\r\n new CaseStudyCategory('Coolers', cs => {\r\n return cs instanceof WaterCooler;\r\n })\r\n );\r\n\r\n this.caseStudyManager.addToParametricStudyCategories(\r\n new CaseStudyCategory('Two Phase Separators', cs => {\r\n return cs instanceof WaterTwoPhaseSeparator;\r\n })\r\n );\r\n\r\n this.caseStudyManager.addToParametricStudyCategories(\r\n new CaseStudyCategory('Pumps', cs => {\r\n return cs instanceof WaterPump;\r\n })\r\n );\r\n\r\n this.caseStudyManager.addToParametricStudyCategories(\r\n new CaseStudyCategory('Pipes', cs => {\r\n return cs instanceof WaterPipe;\r\n })\r\n );\r\n\r\n this.caseStudyManager.addToParametricStudyCategories(\r\n new CaseStudyCategory('Cogenerations', cs => {\r\n return cs instanceof WaterCogeneration;\r\n })\r\n );\r\n }\r\n\r\n initFuelGasFlowsheetParametricStudyCategories() {\r\n this.caseStudyManager.addToParametricStudyCategories(\r\n new CaseStudyCategory('Gas Sources', cs => {\r\n return cs instanceof FuelGasSource;\r\n })\r\n );\r\n\r\n this.caseStudyManager.addToParametricStudyCategories(\r\n new CaseStudyCategory('Gas Amine Contactors', cs => {\r\n return cs instanceof FuelGasAmineContactor;\r\n })\r\n );\r\n }\r\n\r\n initExtractionFlowsheetParametricStudyCategories() {\r\n this.caseStudyManager.addToParametricStudyCategories(\r\n new CaseStudyCategory('Bitumen Conversion', cs => {\r\n return cs instanceof BitumenConversion;\r\n })\r\n );\r\n }\r\n\r\n initMainFlowsheetCategories() {\r\n this.caseStudyManager.kpiManager.addToCategories(\r\n new CaseStudyCategory('Dashboard', (bo: BaseObject): boolean => {\r\n return bo instanceof SuncorCalculator;\r\n })\r\n );\r\n this.caseStudyManager.kpiManager.addToCategories(\r\n new CaseStudyCategory('Mine Sources', (bo: BaseObject): boolean => {\r\n return bo.category === unitOperationsConfig.mine.key;\r\n })\r\n );\r\n this.caseStudyManager.kpiManager.addToCategories(\r\n new CaseStudyCategory('Offshore Sources', (bo: BaseObject): boolean => {\r\n return bo.category === unitOperationsConfig.offshore.key;\r\n })\r\n );\r\n this.caseStudyManager.kpiManager.addToCategories(\r\n new CaseStudyCategory('SAGD Sources', (bo: BaseObject): boolean => {\r\n return bo.category === unitOperationsConfig.sagd.key;\r\n })\r\n );\r\n this.caseStudyManager.kpiManager.addToCategories(\r\n new CaseStudyCategory('Third Party Sources', (bo: BaseObject): boolean => {\r\n return bo.category === unitOperationsConfig.thirdPartySource.key;\r\n })\r\n );\r\n this.caseStudyManager.kpiManager.addToCategories(\r\n new CaseStudyCategory('Diluent Sources', (bo: BaseObject): boolean => {\r\n return bo.category === unitOperationsConfig.diluentSource.key;\r\n })\r\n );\r\n this.caseStudyManager.kpiManager.addToCategories(\r\n new CaseStudyCategory('Upgraders', (bo: BaseObject): boolean => {\r\n return bo.category === unitOperationsConfig.upgrader.key;\r\n })\r\n );\r\n this.caseStudyManager.kpiManager.addToCategories(\r\n new CaseStudyCategory('Refineries', (bo: BaseObject): boolean => {\r\n return bo.category === unitOperationsConfig.refinery.key;\r\n })\r\n );\r\n this.caseStudyManager.kpiManager.addToCategories(\r\n new CaseStudyCategory('Third Party Refineries', (bo: BaseObject): boolean => {\r\n return bo.category === unitOperationsConfig.thirdPartyRefinery.key;\r\n })\r\n );\r\n this.initStreamsCategory();\r\n }\r\n\r\n initUpgraderFlowsheetCategories() {\r\n this.caseStudyManager.kpiManager.addToCategories(\r\n new CaseStudyCategory('Commodity Tanks', (bo: BaseObject): boolean => {\r\n return bo.category === unitOperationsConfig.commodityTank.key;\r\n })\r\n );\r\n this.caseStudyManager.kpiManager.addToCategories(\r\n new CaseStudyCategory('Product Tanks', (bo: BaseObject): boolean => {\r\n return bo.category === unitOperationsConfig.productTank.key;\r\n })\r\n );\r\n this.caseStudyManager.kpiManager.addToCategories(\r\n new CaseStudyCategory('Pipes', (bo: BaseObject): boolean => {\r\n return bo.category === unitOperationsConfig.pipe.key;\r\n })\r\n );\r\n this.caseStudyManager.kpiManager.addToCategories(\r\n new CaseStudyCategory('Generic Sinks', (bo: BaseObject): boolean => {\r\n return bo.category === unitOperationsConfig.genericSink.key;\r\n })\r\n );\r\n this.caseStudyManager.kpiManager.addToCategories(\r\n new CaseStudyCategory('DRUs', (bo: BaseObject): boolean => {\r\n return bo.category === unitOperationsConfig.dru.key;\r\n })\r\n );\r\n this.caseStudyManager.kpiManager.addToCategories(\r\n new CaseStudyCategory('VACs', (bo: BaseObject): boolean => {\r\n return bo.category === unitOperationsConfig.vac.key;\r\n })\r\n );\r\n this.caseStudyManager.kpiManager.addToCategories(\r\n new CaseStudyCategory('Bitumen conversion', (bo: BaseObject): boolean => {\r\n return bo.category === unitOperationsConfig.bitumenConversion.key;\r\n })\r\n );\r\n this.caseStudyManager.kpiManager.addToCategories(\r\n new CaseStudyCategory('Hydrotreaters', (bo: BaseObject): boolean => {\r\n return bo.category === unitOperationsConfig.hydrotreater.key;\r\n })\r\n );\r\n this.caseStudyManager.kpiManager.addToCategories(\r\n new CaseStudyCategory('LGO Hydrotreaters', (bo: BaseObject): boolean => {\r\n return bo.category === unitOperationsConfig.lgoHydrotreater.key;\r\n })\r\n );\r\n this.caseStudyManager.kpiManager.addToCategories(\r\n new CaseStudyCategory('HGO Hydrotreaters', (bo: BaseObject): boolean => {\r\n return bo.category === unitOperationsConfig.hgoHydrotreater.key;\r\n })\r\n );\r\n this.caseStudyManager.kpiManager.addToCategories(\r\n new CaseStudyCategory('DCUs', (bo: BaseObject): boolean => {\r\n return bo.category === unitOperationsConfig.dcu.key;\r\n })\r\n );\r\n this.caseStudyManager.kpiManager.addToCategories(\r\n new CaseStudyCategory('Fluid Cokers', (bo: BaseObject): boolean => {\r\n return bo.category === unitOperationsConfig.fluidCoker.key;\r\n })\r\n );\r\n this.caseStudyManager.kpiManager.addToCategories(\r\n new CaseStudyCategory('Hydrocrackers', (bo: BaseObject): boolean => {\r\n return bo.category === unitOperationsConfig.hydrocracker.key;\r\n })\r\n );\r\n this.caseStudyManager.kpiManager.addToCategories(\r\n new CaseStudyCategory('Sulfur Plants', (bo: BaseObject): boolean => {\r\n return bo.category === unitOperationsConfig.sulfurPlant.key;\r\n })\r\n );\r\n this.caseStudyManager.kpiManager.addToCategories(\r\n new CaseStudyCategory('Hydrogen Plants', (bo: BaseObject): boolean => {\r\n return bo.category === unitOperationsConfig.hydrogenPlant.key;\r\n })\r\n );\r\n this.initStreamsCategory();\r\n }\r\n\r\n initSteamFlowsheetCategories() {\r\n this.caseStudyManager.kpiManager.addToCategories(\r\n new CaseStudyCategory('Boilers', (bo: BaseObject): boolean => {\r\n return bo.category === unitOperationsConfig.waterBoiler.key;\r\n })\r\n );\r\n this.caseStudyManager.kpiManager.addToCategories(\r\n new CaseStudyCategory('Steam and Power Sources', (bo: BaseObject): boolean => {\r\n return bo.category === unitOperationsConfig.waterSource.key;\r\n })\r\n );\r\n this.caseStudyManager.kpiManager.addToCategories(\r\n new CaseStudyCategory('Upgrader Steam Make', (bo: BaseObject): boolean => {\r\n return bo.category === unitOperationsConfig.waterSourceImport.key;\r\n })\r\n );\r\n this.caseStudyManager.kpiManager.addToCategories(\r\n new CaseStudyCategory('Upgrader Steam Use', (bo: BaseObject): boolean => {\r\n return bo.category === unitOperationsConfig.waterSinkImport.key;\r\n })\r\n );\r\n this.caseStudyManager.kpiManager.addToCategories(\r\n new CaseStudyCategory('Heat Exchangers', (bo: BaseObject): boolean => {\r\n return bo.category === unitOperationsConfig.waterHeatExchanger.key;\r\n })\r\n );\r\n this.caseStudyManager.kpiManager.addToCategories(\r\n new CaseStudyCategory('Turbines', (bo: BaseObject): boolean => {\r\n return bo.category === unitOperationsConfig.waterTurbine.key;\r\n })\r\n );\r\n this.caseStudyManager.kpiManager.addToCategories(\r\n new CaseStudyCategory('Heaters', (bo: BaseObject): boolean => {\r\n return bo.category === unitOperationsConfig.waterHeater.key;\r\n })\r\n );\r\n this.caseStudyManager.kpiManager.addToCategories(\r\n new CaseStudyCategory('Coolers', (bo: BaseObject): boolean => {\r\n return bo.category === unitOperationsConfig.waterCooler.key;\r\n })\r\n );\r\n this.caseStudyManager.kpiManager.addToCategories(\r\n new CaseStudyCategory('Two Phase Separators', (bo: BaseObject): boolean => {\r\n return bo.category === unitOperationsConfig.waterTwoPhaseSeparator.key;\r\n })\r\n );\r\n this.caseStudyManager.kpiManager.addToCategories(\r\n new CaseStudyCategory('Pumps', (bo: BaseObject): boolean => {\r\n return bo.category === unitOperationsConfig.waterPump.key;\r\n })\r\n );\r\n this.caseStudyManager.kpiManager.addToCategories(\r\n new CaseStudyCategory('Valves', (bo: BaseObject): boolean => {\r\n return bo.category === unitOperationsConfig.waterValve.key;\r\n })\r\n );\r\n this.caseStudyManager.kpiManager.addToCategories(\r\n new CaseStudyCategory('Steam and Power Sinks', (bo: BaseObject): boolean => {\r\n return bo.category === unitOperationsConfig.waterSink.key;\r\n })\r\n );\r\n this.caseStudyManager.kpiManager.addToCategories(\r\n new CaseStudyCategory('Steam and Power Pipes', (bo: BaseObject): boolean => {\r\n return bo.category === unitOperationsConfig.waterPipe.key;\r\n })\r\n );\r\n this.caseStudyManager.kpiManager.addToCategories(\r\n new CaseStudyCategory('Steam and Power Pipe Segments', (bo: BaseObject): boolean => {\r\n return bo instanceof WaterPipeSegment;\r\n })\r\n );\r\n this.caseStudyManager.kpiManager.addToCategories(\r\n new CaseStudyCategory('Cogenerations', (bo: BaseObject): boolean => {\r\n return bo.category === unitOperationsConfig.waterCogeneration.key;\r\n })\r\n );\r\n this.initStreamsCategory();\r\n }\r\n\r\n initFuelGasFlowsheetCategories() {\r\n this.caseStudyManager.kpiManager.addToCategories(\r\n new CaseStudyCategory('Gas Sources', (bo: BaseObject): boolean => {\r\n return bo.category === unitOperationsConfig.fuelGasSource.key;\r\n })\r\n );\r\n this.caseStudyManager.kpiManager.addToCategories(\r\n new CaseStudyCategory('Flares', (bo: BaseObject): boolean => {\r\n return bo.category === unitOperationsConfig.fuelGasFlare.key;\r\n })\r\n );\r\n this.caseStudyManager.kpiManager.addToCategories(\r\n new CaseStudyCategory('Gas Sinks', (bo: BaseObject): boolean => {\r\n return bo.category === unitOperationsConfig.fuelGasSink.key;\r\n })\r\n );\r\n this.caseStudyManager.kpiManager.addToCategories(\r\n new CaseStudyCategory('Gas Use', (bo: BaseObject): boolean => {\r\n return bo.category === unitOperationsConfig.fuelGasSinkImport.key;\r\n })\r\n );\r\n this.caseStudyManager.kpiManager.addToCategories(\r\n new CaseStudyCategory('Gas Make', (bo: BaseObject): boolean => {\r\n return bo.category === unitOperationsConfig.fuelGasSourceImport.key;\r\n })\r\n );\r\n this.caseStudyManager.kpiManager.addToCategories(\r\n new CaseStudyCategory('Amine Contactors', (bo: BaseObject): boolean => {\r\n return bo.category === unitOperationsConfig.fuelGasAmineContactor.key;\r\n })\r\n );\r\n this.initStreamsCategory();\r\n }\r\n\r\n initStreamsCategory() {\r\n this.caseStudyManager.kpiManager.addToCategories(\r\n new CaseStudyCategory('Streams', (bo: BaseObject): boolean => {\r\n return bo instanceof BaseStream;\r\n })\r\n );\r\n this.caseStudyManager.kpiManager.addToCategories(\r\n new CaseStudyCategory('Tanks', (bo: BaseObject): boolean => {\r\n return bo.category === unitOperationsConfig.productTank.key;\r\n })\r\n );\r\n\r\n // Uncertainty categories\r\n this.caseStudyManager.addToUncertaintyCategories(\r\n new CaseStudyCategory('Mine Sources', (bo: BaseObject): boolean => {\r\n return bo.category === unitOperationsConfig.mine.key;\r\n })\r\n );\r\n this.caseStudyManager.addToUncertaintyCategories(\r\n new CaseStudyCategory('SAGD Sources', (bo: BaseObject): boolean => {\r\n return bo.category === unitOperationsConfig.sagd.key;\r\n })\r\n );\r\n this.caseStudyManager.addToUncertaintyCategories(\r\n new CaseStudyCategory('Offshore Sources', (bo: BaseObject): boolean => {\r\n return bo.category === unitOperationsConfig.offshore.key;\r\n })\r\n );\r\n this.caseStudyManager.addToUncertaintyCategories(\r\n new CaseStudyCategory('Diluent sources', (bo: BaseObject): boolean => {\r\n return bo.category === unitOperationsConfig.diluentSource.key;\r\n })\r\n );\r\n this.caseStudyManager.addToUncertaintyCategories(\r\n new CaseStudyCategory('Upgraders', (bo: BaseObject): boolean => {\r\n return bo.category === unitOperationsConfig.upgrader.key;\r\n })\r\n );\r\n this.caseStudyManager.addToUncertaintyCategories(\r\n new CaseStudyCategory('Third party sources', (bo: BaseObject): boolean => {\r\n return bo.category === unitOperationsConfig.thirdPartySource.key;\r\n })\r\n );\r\n this.caseStudyManager.addToUncertaintyCategories(\r\n new CaseStudyCategory('Bitumen conversion', (bo: BaseObject): boolean => {\r\n return bo.category === unitOperationsConfig.bitumenConversion.key;\r\n })\r\n );\r\n }\r\n\r\n initMultiPeriodCategories() {\r\n this.multiPeriodSettings.addToCategories(\r\n new CaseStudyCategory('Unit Operations', (bo: BaseObject): boolean => {\r\n return bo instanceof UnitOperation;\r\n })\r\n );\r\n }\r\n // endregion\r\n\r\n addToPools(obj: BaseObject): void {\r\n if (obj instanceof UnitOperation) {\r\n this.unitOperationPool[obj.id] = obj;\r\n } else if (obj instanceof SimulationVariable) {\r\n this.simulationVariablePool[obj.id] = obj;\r\n } else if (obj instanceof BaseStream) {\r\n this.materialStreamPool[obj.id] = obj;\r\n } else if (obj instanceof Flowsheet) {\r\n this.flowsheetPool[obj.id] = obj;\r\n } else {\r\n this.otherBaseObjectPool[obj.id] = obj;\r\n }\r\n }\r\n\r\n unitOperationExistsByName(name: string): boolean {\r\n for (const uo in this.unitOperationPool) {\r\n if (this.unitOperationPool[uo].name === name) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n removeFluidAnalysis(analysisId) {\r\n const uos = this.filterUnitOperations(uo => {\r\n return (uo as any).fluidAnalysisId === analysisId;\r\n });\r\n uos.forEach(uo => {\r\n const unit = uo as any;\r\n unit.fluidAnalysisId = '';\r\n });\r\n }\r\n\r\n calculateUnitOperationName(originalName: string): string {\r\n let nameIndex = 1;\r\n for (const uo in this.unitOperationPool) {\r\n if (this.unitOperationExistsByName(`${originalName} ${nameIndex}`)) {\r\n nameIndex++;\r\n }\r\n }\r\n return `${originalName} ${nameIndex}`;\r\n }\r\n\r\n calculateMaterialStreamName(originalName: string) {\r\n let i;\r\n for (i = 0; i < Object.keys(this.materialStreamPool).length; i++) {\r\n const matchingStreams = this.filterAllMaterialStreams(s => s.name === `Stream ${i + 1}`);\r\n if (!matchingStreams.length) {\r\n break;\r\n }\r\n }\r\n return `${originalName} ${i + 1}`;\r\n }\r\n\r\n removeComments(ownerObjectId: string): void {\r\n const commentsToRemove = this.commentsPool.filter(c => c.ownerId === ownerObjectId);\r\n\r\n const indices = commentsToRemove.map(c => this.commentsPool.indexOf(c));\r\n\r\n for (const commentIndex of indices) {\r\n this.commentsPool.splice(commentIndex, 1);\r\n }\r\n }\r\n // endregion\r\n\r\n // region getters and setters\r\n getDiagramString() {\r\n return this.diagram;\r\n }\r\n\r\n /**\r\n * When this is called, the main flowsheet must be active? - to prevent wiping out the main flowsheet diagram\r\n * @param diagram\r\n */\r\n setDiagramString(diagram: string) {\r\n this.diagram = diagram;\r\n }\r\n\r\n getActiveFlowsheet() {\r\n return this.activeFlowsheet;\r\n }\r\n\r\n setActiveFlowsheet(flowsheet: Flowsheet) {\r\n this.activeFlowsheet = flowsheet;\r\n }\r\n\r\n getMainFlowsheetId() {\r\n return this.flowsheetId;\r\n }\r\n\r\n /**\r\n * We won't want to call this often...\r\n * @param flowsheetId\r\n */\r\n setMainFlowsheetId(flowsheetId: string) {\r\n this.flowsheetId = flowsheetId;\r\n }\r\n // endregion\r\n\r\n public toJSON(): any {\r\n return {\r\n category: this.category,\r\n id: this.id,\r\n name: this.name,\r\n comments: this.comments,\r\n isSolved: this.isSolved,\r\n isReady: this.isReady,\r\n calculator: this.calculator.id,\r\n caseSettings: this.caseSettings.id,\r\n caseStudyManager: this.caseStudyManager.id,\r\n assayManager: this.assayManager.id,\r\n objectiveFunction: this.objectiveFunction.id,\r\n unitOperationPool: this.unitOperationPool,\r\n materialStreamPool: this.materialStreamPool,\r\n simulationVariablePool: this.simulationVariablePool,\r\n otherBaseObjectPool: this.otherBaseObjectPool,\r\n flowsheetPool: this.flowsheetPool,\r\n constraintViolationEntries: this.constraintViolationEntries,\r\n marginalValueEntries: this.marginalValueEntries,\r\n flowsheetId: this.flowsheetId,\r\n solveOption: this.solveOption,\r\n multiPeriodEnabled: this.multiPeriodEnabled,\r\n multiPeriodSettings: this.multiPeriodSettings.id,\r\n commentsPool: this.commentsPool,\r\n };\r\n }\r\n}\r\n","import { BaseObject } from '../base-object';\r\nimport { SimulationVariable } from '../simulation-variable';\r\nimport { Case } from '../case';\r\nimport { UncertainParameter } from './uncertain-parameter';\r\n\r\nexport class Parameter extends BaseObject {\r\n category = 'parameter';\r\n simulationVariable: SimulationVariable;\r\n minimumValue: SimulationVariable;\r\n maximumValue: SimulationVariable;\r\n constructor(parameter: any, ownerCase: Case) {\r\n super(parameter.id, ownerCase);\r\n if (parameter.simulationVariable instanceof SimulationVariable) {\r\n this.simulationVariable = this.ownerCase.getSimulationVariable(parameter.simulationVariable.id);\r\n this.initMemberVariables(parameter);\r\n }\r\n }\r\n\r\n protected initMemberVariables(parameter: any) {\r\n if (parameter.maximumValue == null) {\r\n this.maximumValue = new SimulationVariable(\r\n {\r\n value: this.simulationVariable.value * 1.05,\r\n unit: this.simulationVariable.unit,\r\n quantity: this.simulationVariable.quantity,\r\n },\r\n this.ownerCase,\r\n this\r\n );\r\n } else {\r\n this.maximumValue = new SimulationVariable(\r\n {\r\n value: parameter.maximumValue.value,\r\n unit: parameter.maximumValue.unit,\r\n quantity: this.simulationVariable.quantity,\r\n },\r\n this.ownerCase,\r\n this\r\n );\r\n }\r\n\r\n if (parameter.minimumValue == null) {\r\n this.minimumValue = new SimulationVariable(\r\n {\r\n value: this.simulationVariable.value * 0.95,\r\n unit: this.simulationVariable.unit,\r\n quantity: this.simulationVariable.quantity,\r\n },\r\n this.ownerCase,\r\n this\r\n );\r\n } else {\r\n this.minimumValue = new SimulationVariable(\r\n {\r\n value: parameter.minimumValue.value,\r\n unit: parameter.minimumValue.unit,\r\n quantity: this.simulationVariable.quantity,\r\n },\r\n this.ownerCase,\r\n this\r\n );\r\n }\r\n }\r\n\r\n override convertToInternalUnit(): void {\r\n this.maximumValue.value = this.maximumValue.convertToInternalUnit();\r\n this.minimumValue.value = this.minimumValue.convertToInternalUnit();\r\n }\r\n\r\n override overwriteValues(p: UncertainParameter): void {\r\n this.minimumValue.overwriteValues(p.minimumValue);\r\n this.maximumValue.overwriteValues(p.maximumValue);\r\n }\r\n\r\n override setSimulationVariablesOwner() {\r\n this.maximumValue.setOwnerBaseObject(this);\r\n this.minimumValue.setOwnerBaseObject(this);\r\n }\r\n\r\n override dePersist(persistedObj: any) {\r\n this.simulationVariable = this.ownerCase.getSimulationVariable(persistedObj.simulationVariable);\r\n this.maximumValue = this.getSimulationVariableSafe(persistedObj.maximumValue);\r\n this.minimumValue = this.getSimulationVariableSafe(persistedObj.minimumValue);\r\n }\r\n\r\n public toJSON() {\r\n return {\r\n id: this.id,\r\n name: this.name,\r\n category: this.category,\r\n simulationVariable: this.simulationVariable.id,\r\n maximumValue: this.maximumValue.id,\r\n minimumValue: this.minimumValue.id,\r\n };\r\n }\r\n}\r\n","import { Parameter } from './parameter';\r\nimport { SimulationVariable } from '../simulation-variable';\r\nimport { Case } from '../case';\r\n\r\nexport class UncertainParameter extends Parameter {\r\n override category = 'uncertainParameter';\r\n mode: SimulationVariable;\r\n confidenceInterval: number;\r\n distributionType: string;\r\n\r\n constructor(uncertainParameter: any, ownerCase: Case) {\r\n super(uncertainParameter, ownerCase);\r\n if (uncertainParameter.simulationVariable instanceof SimulationVariable) {\r\n this.initMemberVariables(uncertainParameter);\r\n }\r\n }\r\n\r\n override initMemberVariables(uncertainParameter: any) {\r\n super.initMemberVariables(uncertainParameter);\r\n if (uncertainParameter.mode == null) {\r\n this.mode = new SimulationVariable(\r\n {\r\n unit: this.simulationVariable.unit,\r\n quantity: this.simulationVariable.quantity,\r\n },\r\n this.ownerCase,\r\n this\r\n );\r\n } else {\r\n this.mode = new SimulationVariable(\r\n {\r\n value: uncertainParameter.mode.value,\r\n unit: uncertainParameter.mode.unit,\r\n quantity: this.simulationVariable.quantity,\r\n },\r\n this.ownerCase,\r\n this\r\n );\r\n }\r\n this.distributionType = uncertainParameter.distributionType || 'normal';\r\n this.confidenceInterval =\r\n uncertainParameter.confidenceInterval == null ? 0.95 : uncertainParameter.confidenceInterval;\r\n }\r\n\r\n override convertToInternalUnit(): void {\r\n super.convertToInternalUnit();\r\n this.mode.value = this.mode.convertToInternalUnit();\r\n }\r\n\r\n override setSimulationVariablesOwner() {\r\n super.setSimulationVariablesOwner();\r\n this.mode.setOwnerBaseObject(this);\r\n }\r\n\r\n override overwriteValues(up: UncertainParameter) {\r\n super.overwriteValues(up);\r\n this.distributionType = up.distributionType;\r\n this.mode.overwriteValues(up.mode);\r\n this.confidenceInterval = up.confidenceInterval;\r\n }\r\n\r\n override dePersist(persistedObj: any): void {\r\n super.dePersist(persistedObj);\r\n this.mode = this.getSimulationVariableSafe(persistedObj.mode);\r\n this.confidenceInterval = +persistedObj.confidenceInterval;\r\n this.distributionType = persistedObj.distributionType;\r\n\r\n this.setSimulationVariablesOwner();\r\n }\r\n\r\n public override toJSON() {\r\n return {\r\n id: this.id,\r\n name: this.name,\r\n category: this.category,\r\n simulationVariable: this.simulationVariable.id,\r\n mode: this.mode.id,\r\n maximumValue: this.maximumValue.id,\r\n minimumValue: this.minimumValue.id,\r\n confidenceInterval: this.confidenceInterval,\r\n distributionType: this.distributionType,\r\n };\r\n }\r\n}\r\n","import { SimulationVariable } from '../simulation-variable';\r\n\r\nexport class KpiResult {\r\n kpi: SimulationVariable;\r\n cumulativeProbabilities: Array<number> = [];\r\n values: Array<number> = [];\r\n p10Value: number;\r\n p90Value: number;\r\n\r\n constructor(kpiResult: any) {\r\n if (kpiResult.kpi instanceof SimulationVariable) {\r\n this.kpi = kpiResult.kpi;\r\n this.cumulativeProbabilities = Array.from(kpiResult.cumulativeProbabilities);\r\n this.values = Array.from(kpiResult.values);\r\n this.p90Value = kpiResult.p90Value;\r\n this.p10Value = kpiResult.p10Value;\r\n } else {\r\n this.kpi = kpiResult.kpi;\r\n this.cumulativeProbabilities = Array.from(kpiResult.cumulativeProbabilities);\r\n this.values = Array.from(kpiResult.values);\r\n this.p90Value = kpiResult.p90Value;\r\n this.p10Value = kpiResult.p10Value;\r\n }\r\n }\r\n\r\n public toJSON() {\r\n return {\r\n kpi: this.kpi.id,\r\n cumulativeProbabilities: this.cumulativeProbabilities,\r\n values: this.values,\r\n p90Value: this.p90Value,\r\n p10Value: this.p10Value,\r\n };\r\n }\r\n}\r\n","import { SimulationVariable } from '../simulation-variable';\r\nimport { UncertainParameter } from './uncertain-parameter';\r\n\r\nexport class ParameterSensitivity {\r\n kpi: SimulationVariable;\r\n parameter: UncertainParameter;\r\n // not sure if these properties will be used or not\r\n partialDifferential: number;\r\n oneAtATime: number;\r\n standardRegression: number;\r\n rankedRegression: number;\r\n tornadoMean: number;\r\n tornadoMin: number;\r\n tornadoMax: number;\r\n tornadoRank: number;\r\n\r\n constructor(sensitivity: any) {\r\n if (sensitivity.kpi instanceof SimulationVariable && sensitivity.parameter instanceof UncertainParameter) {\r\n this.kpi = sensitivity.kpi;\r\n this.parameter = sensitivity.parameter;\r\n this.partialDifferential = sensitivity.partialDifferential;\r\n this.oneAtATime = sensitivity.oneAtATime;\r\n this.standardRegression = sensitivity.standardRegression;\r\n this.rankedRegression = sensitivity.rankedRegression;\r\n this.tornadoMean = sensitivity.tornadoMean;\r\n this.tornadoMin = sensitivity.tornadoMin;\r\n this.tornadoMax = sensitivity.tornadoMax;\r\n this.tornadoRank = sensitivity.tornadoRank;\r\n } else {\r\n this.kpi = sensitivity.kpi;\r\n this.parameter = sensitivity.parameter;\r\n this.partialDifferential = sensitivity.partialDifferential;\r\n this.oneAtATime = sensitivity.oneAtATime;\r\n this.standardRegression = sensitivity.standardRegression;\r\n this.rankedRegression = sensitivity.rankedRegression;\r\n this.tornadoMean = sensitivity.tornadoMean;\r\n this.tornadoMin = sensitivity.tornadoMin;\r\n this.tornadoMax = sensitivity.tornadoMax;\r\n this.tornadoRank = sensitivity.tornadoRank;\r\n }\r\n }\r\n\r\n getTornadoMeanCapture(asNumber: boolean) {\r\n return new SimulationVariable(\r\n {\r\n value: this.tornadoMean,\r\n unit: this.kpi.unit,\r\n quantity: this.kpi.quantity,\r\n },\r\n null,\r\n null\r\n ).convertToCaptureUnit(asNumber);\r\n }\r\n\r\n getTornadoMinCapture(asNumber: boolean) {\r\n return new SimulationVariable(\r\n {\r\n value: this.tornadoMin,\r\n unit: this.kpi.unit,\r\n quantity: this.kpi.quantity,\r\n },\r\n null,\r\n null\r\n ).convertToCaptureUnit(asNumber);\r\n }\r\n\r\n getTornadoMaxCapture(asNumber: boolean) {\r\n return new SimulationVariable(\r\n {\r\n value: this.tornadoMax,\r\n unit: this.kpi.unit,\r\n quantity: this.kpi.quantity,\r\n },\r\n null,\r\n null\r\n ).convertToCaptureUnit(asNumber);\r\n }\r\n\r\n public toJSON() {\r\n return {\r\n kpi: this.kpi.id,\r\n parameter: this.parameter.id,\r\n partialDifferential: this.partialDifferential,\r\n oneAtATime: this.oneAtATime,\r\n standardRegression: this.standardRegression,\r\n rankedRegression: this.rankedRegression,\r\n tornadoMean: this.tornadoMean,\r\n tornadoMin: this.tornadoMin,\r\n tornadoMax: this.tornadoMax,\r\n tornadoRank: this.tornadoRank,\r\n };\r\n }\r\n}\r\n","import { BaseObject } from '../base-object';\r\nimport { UncertainParameter } from './uncertain-parameter';\r\nimport { KpiResult } from './kpi-result';\r\nimport { ParameterSensitivity } from './parameter-sensitivity';\r\nimport { Case } from '../case';\r\nimport { SimulationVariable } from '../simulation-variable';\r\n\r\ndeclare let unitConverter: any;\r\n\r\nexport class UncertaintyAnalysis extends BaseObject {\r\n category = 'uncertaintyAnalysis';\r\n uncertainParameters: Array<UncertainParameter> = [];\r\n sampleSize: number;\r\n parameterSensitivities: Array<ParameterSensitivity> = [];\r\n kpiResults: Array<KpiResult> = [];\r\n parametersToPool = true;\r\n\r\n constructor(uncertaintyAnalysis: any, ownerCase: Case) {\r\n super(uncertaintyAnalysis.id, ownerCase);\r\n this.name = uncertaintyAnalysis.name || '';\r\n\r\n if (uncertaintyAnalysis.uncertainParameters instanceof Array) {\r\n for (const up of uncertaintyAnalysis.uncertainParameters) {\r\n this.uncertainParameters.push(new UncertainParameter(up, this.ownerCase));\r\n }\r\n }\r\n if (uncertaintyAnalysis.parameterSensitivities instanceof Array) {\r\n for (const ps of uncertaintyAnalysis.parameterSensitivities) {\r\n if (ps instanceof ParameterSensitivity) {\r\n this.parameterSensitivities.push(ps);\r\n }\r\n }\r\n }\r\n if (uncertaintyAnalysis.kpiResults instanceof Array) {\r\n for (const kpiResult of uncertaintyAnalysis.kpiResults) {\r\n if (kpiResult instanceof KpiResult) {\r\n this.kpiResults.push(kpiResult);\r\n }\r\n }\r\n }\r\n this.sampleSize = uncertaintyAnalysis.sampleSize == null ? 100 : uncertaintyAnalysis.sampleSize;\r\n\r\n this.ownerCase.simulationVariableDeletedRequest.subscribe((sv: SimulationVariable) => {\r\n // first remove the results, then other stuff\r\n this.removeParameterSensitivityBySimulationVariable(sv);\r\n this.removeParameterBySimulationVariable(sv);\r\n this.removeKpiResultsByKpi(sv);\r\n });\r\n this.ownerCase.kpiDeletedRequest.subscribe((kpi: SimulationVariable) => {\r\n this.removeParameterSensitivityByKpi(kpi);\r\n this.removeKpiResultsByKpi(kpi);\r\n });\r\n }\r\n\r\n addParameterBySimulationVariableId(id: string) {\r\n if (this.ownerCase.getSimulationVariable(id)) {\r\n this.addParameterBySimulationVariable(this.ownerCase.getSimulationVariable(id));\r\n }\r\n }\r\n\r\n addParameterBySimulationVariable(sv: SimulationVariable): UncertainParameter {\r\n if (!this.findParameterBySimulationVariableId(sv.id)) {\r\n const up = new UncertainParameter({ simulationVariable: sv }, this.ownerCase);\r\n this.addParameter(up);\r\n return up;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n addParameter(up: UncertainParameter) {\r\n this.uncertainParameters.push(up);\r\n if (this.parametersToPool) {\r\n this.ownerCase.addToPools(up);\r\n this.ownerCase.addToPools(up.mode);\r\n this.ownerCase.addToPools(up.minimumValue);\r\n this.ownerCase.addToPools(up.maximumValue);\r\n }\r\n }\r\n\r\n removeParameterById(id: string) {\r\n this.removeParameter(this.uncertainParameters.find(up => up.id === id));\r\n }\r\n\r\n removeParameterBySimulationVariable(sv: SimulationVariable) {\r\n const parameter = this.findParameterBySimulationVariableId(sv.id);\r\n if (parameter) {\r\n this.removeParameter(parameter);\r\n }\r\n }\r\n\r\n removeParameter(parameter: UncertainParameter) {\r\n const index = this.uncertainParameters.indexOf(parameter);\r\n if (index > -1) {\r\n const removedParameter = this.uncertainParameters.splice(index, 1)[0];\r\n this.removeParameterSensitivityByParameter(removedParameter);\r\n if (this.parametersToPool) {\r\n this.ownerCase.removeFromPools(removedParameter);\r\n this.ownerCase.removeFromPools(removedParameter.maximumValue);\r\n this.ownerCase.removeFromPools(removedParameter.minimumValue);\r\n this.ownerCase.removeFromPools(removedParameter.mode);\r\n }\r\n }\r\n }\r\n\r\n findParameterBySimulationVariableId(id: string) {\r\n return this.uncertainParameters.find(up => up.simulationVariable.id === id);\r\n }\r\n\r\n findParameterById(id: string): UncertainParameter {\r\n return this.uncertainParameters.find(up => up.id === id);\r\n }\r\n\r\n override overwriteValues(ua: UncertaintyAnalysis) {\r\n const parametersToRemove = this.uncertainParameters.filter((up: UncertainParameter) => {\r\n return ua.uncertainParameters.indexOf(ua.findParameterById(up.id)) < 0;\r\n });\r\n for (const p of parametersToRemove) {\r\n this.removeParameter(p);\r\n }\r\n for (const up of ua.uncertainParameters) {\r\n const existingParameter = this.findParameterBySimulationVariableId(up.simulationVariable.id);\r\n if (existingParameter) {\r\n existingParameter.overwriteValues(up);\r\n } else {\r\n this.addParameter(up);\r\n }\r\n }\r\n this.parameterSensitivities = [];\r\n for (const ps of ua.parameterSensitivities) {\r\n this.parameterSensitivities.push(ps);\r\n }\r\n this.kpiResults = [];\r\n for (const kpiResult of ua.kpiResults) {\r\n this.kpiResults.push(kpiResult);\r\n }\r\n this.sampleSize = ua.sampleSize;\r\n }\r\n\r\n override convertToInternalUnit(): void {\r\n for (const up of this.uncertainParameters) {\r\n // up.confidenceInterval = unitConverter.parseFloatString(up.confidenceInterval);\r\n up.convertToInternalUnit();\r\n }\r\n this.sampleSize = unitConverter.parseFloatString(this.sampleSize);\r\n }\r\n\r\n removeParameterSensitivityByKpi(kpi: SimulationVariable) {\r\n const resultsToRemove = this.parameterSensitivities.filter((ps: ParameterSensitivity) => ps.kpi.id === kpi.id);\r\n for (const ps of resultsToRemove) {\r\n this.parameterSensitivities.splice(this.parameterSensitivities.indexOf(ps), 1);\r\n }\r\n }\r\n\r\n removeParameterSensitivityByParameter(parameter: UncertainParameter) {\r\n const resultsToRemove = this.parameterSensitivities.filter((ps: ParameterSensitivity) => {\r\n return ps.parameter.id === parameter.id;\r\n });\r\n for (const ps of resultsToRemove) {\r\n this.parameterSensitivities.splice(this.parameterSensitivities.indexOf(ps), 1);\r\n }\r\n }\r\n\r\n removeParameterSensitivityBySimulationVariable(sv: SimulationVariable) {\r\n this.removeParameterSensitivityByKpi(sv);\r\n const p = this.findParameterBySimulationVariableId(sv.id);\r\n if (p) {\r\n this.removeParameterSensitivityByParameter(p);\r\n }\r\n }\r\n\r\n removeKpiResultsByKpi(kpi: SimulationVariable) {\r\n const resultsToRemove = this.kpiResults.filter(result => {\r\n return result.kpi.id === kpi.id;\r\n });\r\n for (const resultToRemove of resultsToRemove) {\r\n this.kpiResults.splice(this.kpiResults.indexOf(resultToRemove), 1);\r\n }\r\n }\r\n\r\n clearResults(): void {\r\n this.parameterSensitivities = [];\r\n this.kpiResults = [];\r\n }\r\n\r\n public addParametersToPool(): void {\r\n if (this.parametersToPool) {\r\n for (const p of this.uncertainParameters) {\r\n this.ownerCase.addToPools(p);\r\n this.ownerCase.addToPools(p.mode);\r\n this.ownerCase.addToPools(p.maximumValue);\r\n this.ownerCase.addToPools(p.minimumValue);\r\n }\r\n }\r\n }\r\n\r\n override dePersist(persistedObj: any): void {\r\n this.uncertainParameters = [];\r\n for (const pId of persistedObj.uncertainParameters) {\r\n const up = <UncertainParameter>this.ownerCase.getOtherBaseObject(pId);\r\n if (up) {\r\n this.uncertainParameters.push(up);\r\n }\r\n }\r\n this.dePersistResults(persistedObj);\r\n }\r\n\r\n public dePersistResults(persistedAnalysis: any) {\r\n for (const ps of persistedAnalysis.parameterSensitivities) {\r\n const kpi = this.ownerCase.getSimulationVariable(ps.kpi);\r\n const parameter = <UncertainParameter>this.ownerCase.getOtherBaseObject(ps.parameter);\r\n if (kpi && parameter) {\r\n ps.kpi = kpi;\r\n ps.parameter = parameter;\r\n this.parameterSensitivities.push(new ParameterSensitivity(ps));\r\n }\r\n }\r\n if (persistedAnalysis.kpiResults) {\r\n for (const kpiResult of persistedAnalysis.kpiResults) {\r\n const kpi = this.ownerCase.getSimulationVariable(kpiResult.kpi);\r\n if (kpi) {\r\n kpiResult.kpi = kpi;\r\n this.kpiResults.push(new KpiResult(kpiResult));\r\n }\r\n }\r\n }\r\n }\r\n\r\n public toJSON(): any {\r\n return {\r\n id: this.id,\r\n name: this.name,\r\n category: this.category,\r\n uncertainParameters: this.uncertainParameters.map((up: UncertainParameter) => up.id),\r\n sampleSize: this.sampleSize,\r\n parameterSensitivities: this.parameterSensitivities,\r\n kpiResults: this.kpiResults,\r\n };\r\n }\r\n}\r\n","import { SimulationVariable } from '../simulation-variable';\r\n\r\nexport class ParametricStudyKpiResult {\r\n kpi: SimulationVariable;\r\n variableValues: number[] = [];\r\n\r\n constructor(parametricStudyResult: any) {\r\n if (parametricStudyResult.kpi instanceof SimulationVariable) {\r\n this.kpi = parametricStudyResult.kpi;\r\n this.variableValues = Array.from(parametricStudyResult.variableValues);\r\n }\r\n }\r\n\r\n get length() {\r\n return this.variableValues.length;\r\n }\r\n\r\n public toJSON() {\r\n return {\r\n kpi: this.kpi.id.toString(),\r\n variableValues: this.variableValues,\r\n };\r\n }\r\n}\r\n","import { BaseObject } from './base-object';\r\nimport { Case } from './case';\r\n\r\ndeclare let unitConverter: any;\r\nexport class SimulationVariableArray extends BaseObject {\r\n category = 'simulationVariableArray';\r\n values: Array<number> = [];\r\n unit: string;\r\n quantity: string;\r\n variableStatus: string;\r\n ownerBaseObject: BaseObject;\r\n\r\n constructor(simulationVariableArray: any, ownerCase: Case, ownerBaseObject: BaseObject) {\r\n super(simulationVariableArray ? simulationVariableArray.id : '', ownerCase);\r\n\r\n if (simulationVariableArray instanceof Object) {\r\n if (simulationVariableArray.values instanceof Array) {\r\n for (const value of simulationVariableArray.values) {\r\n this.values.push(value);\r\n }\r\n }\r\n\r\n this.unit = simulationVariableArray.unit;\r\n this.quantity = simulationVariableArray.quantity;\r\n this.variableStatus = simulationVariableArray.variableStatus;\r\n this.setDefaultUnitIfNeeded();\r\n } else {\r\n this.unit = '';\r\n this.quantity = '';\r\n this.variableStatus = 'UnDefined';\r\n }\r\n\r\n this.ownerBaseObject = ownerBaseObject;\r\n }\r\n\r\n addValue(value: number) {\r\n this.values.push(value);\r\n }\r\n\r\n removeValue(index: number) {\r\n this.values.splice(index, 1);\r\n }\r\n\r\n setQuantity(quantity: string) {\r\n this.quantity = quantity;\r\n this.setDefaultUnitIfNeeded();\r\n }\r\n\r\n setOwnerBaseObject(ownerBaseObject: BaseObject): void {\r\n this.ownerBaseObject = ownerBaseObject;\r\n }\r\n\r\n getDefaultUnit(): string {\r\n return unitConverter(this.quantity).getDefaultUnit();\r\n }\r\n\r\n getInternalUnit(): string {\r\n return unitConverter(this.quantity).getInternalUnit();\r\n }\r\n\r\n getFullName(): string {\r\n return `${this.ownerBaseObject.name} - ${this.name}`;\r\n }\r\n\r\n isUndefined(): boolean {\r\n return this.variableStatus === 'UnDefined' && (typeof this.values === 'undefined' || this.values.length === 0);\r\n }\r\n\r\n setDefaultUnitIfNeeded() {\r\n if (\r\n (this.unit === '' && this.quantity) ||\r\n (this.quantity && !unitConverter(this.quantity).unitInQuantity(this.unit))\r\n ) {\r\n this.unit = this.getDefaultUnit();\r\n }\r\n }\r\n\r\n updateVariableStatus(another: SimulationVariableArray): void {\r\n if (this.detectValueChange(another)) {\r\n this.variableStatus = 'UserSpecified';\r\n }\r\n }\r\n\r\n detectValueChange(another: SimulationVariableArray): boolean {\r\n // eslint-disable-next-line guard-for-in\r\n for (const i in another.values) {\r\n const anotherValue = unitConverter.parseFloatString(\r\n another.convertValueToAnotherUnit(another.values[i], this.unit)\r\n );\r\n\r\n const thisValue = this.parseValue(this.values[i]);\r\n\r\n // NaN === NaN returns false, so it may be detected as a value change, avoid it\r\n if (thisValue !== anotherValue && !(isNaN(anotherValue) && isNaN(thisValue))) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n private convertValueToAnotherUnit(value: number, anotherUnit: string): any {\r\n if (!this.quantity || !anotherUnit) {\r\n return unitConverter.parseFloatString(value);\r\n }\r\n\r\n return unitConverter(this.quantity).convert(value, this.getInternalUnit(), anotherUnit).round().getValue();\r\n }\r\n\r\n override convertToInternalUnit() {\r\n const convertedValues = [];\r\n\r\n if (!this.quantity || !this.unit) {\r\n for (const value of this.values) {\r\n convertedValues.push(unitConverter.parseFloatString(value));\r\n }\r\n\r\n return convertedValues;\r\n }\r\n\r\n for (const value of this.values) {\r\n convertedValues.push(this.convertValueToInternalUnit(value));\r\n }\r\n\r\n return convertedValues;\r\n }\r\n\r\n convertValueToInternalUnit(value: number) {\r\n return unitConverter(this.quantity).convert(value, this.unit, this.getInternalUnit()).getValue();\r\n }\r\n\r\n convertToCaptureUnitArray(asNumber: boolean, round: boolean) {\r\n const convertedValues = [];\r\n\r\n const noUnitOrQuantity = !this.quantity || !this.unit;\r\n\r\n for (const value of this.values) {\r\n if (noUnitOrQuantity) {\r\n if (asNumber) {\r\n convertedValues.push(unitConverter.parseFloatString(value));\r\n } else {\r\n convertedValues.push(unitConverter.formatNumber(value));\r\n }\r\n } else {\r\n let conversion = unitConverter(this.quantity).convert(value, this.getInternalUnit(), this.unit);\r\n\r\n if (round) {\r\n conversion = conversion.round();\r\n }\r\n\r\n if (asNumber) {\r\n convertedValues.push(conversion.getValue());\r\n } else {\r\n convertedValues.push(conversion.format());\r\n }\r\n }\r\n }\r\n\r\n return convertedValues;\r\n }\r\n\r\n convertToCaptureUnit(captureUnit: string, internalUnit: string) {\r\n const convertedValues = [];\r\n for (const value of this.values) {\r\n let conversion = unitConverter(this.quantity).convert(value, internalUnit, captureUnit);\r\n conversion = conversion.round();\r\n convertedValues.push(conversion.getValue());\r\n }\r\n return convertedValues;\r\n }\r\n\r\n convertToAnotherUnitArray(asNumber: boolean, round: boolean, unit: string) {\r\n const convertedValues = [];\r\n\r\n for (const value of this.values) {\r\n if (!this.quantity) {\r\n if (asNumber) {\r\n convertedValues.push(unitConverter.parseFloatString(value));\r\n } else {\r\n convertedValues.push(unitConverter.formatNumber(value));\r\n }\r\n } else {\r\n let conversion = unitConverter(this.quantity).convert(value, this.getInternalUnit(), unit);\r\n if (round) {\r\n conversion = conversion.round();\r\n }\r\n\r\n if (asNumber) {\r\n convertedValues.push(conversion.getValue());\r\n } else {\r\n convertedValues.push(conversion.format());\r\n }\r\n }\r\n }\r\n\r\n return convertedValues;\r\n }\r\n\r\n private parseValue(value: number): any {\r\n return unitConverter.parseFloatString(value);\r\n }\r\n\r\n override overwriteValues(another: SimulationVariableArray): void {\r\n // for sim vars, only value, unit and status may be modified\r\n this.unit = another.unit;\r\n\r\n this.values = [];\r\n\r\n for (const value of another.values) {\r\n this.values.push(value);\r\n }\r\n\r\n this.variableStatus = another.variableStatus;\r\n }\r\n\r\n public override dePersist() {}\r\n\r\n get length() {\r\n return this.values.length;\r\n }\r\n\r\n public toJSON() {\r\n return {\r\n category: this.category,\r\n id: this.id,\r\n values: this.values,\r\n unit: this.unit,\r\n quantity: this.quantity,\r\n variableStatus: this.variableStatus,\r\n };\r\n }\r\n}\r\n","import { BaseObject } from '../base-object';\r\nimport { SimulationVariableArray } from '../simulation-variable-array';\r\nimport { SimulationVariable } from '../simulation-variable';\r\nimport { Case } from '../case';\r\n\r\nexport class ParametricStudyParameter extends BaseObject {\r\n category = 'parametricStudyParameter';\r\n variableValues: SimulationVariableArray;\r\n simulationVariable: SimulationVariable;\r\n\r\n constructor(parameter: any, ownerCase: Case) {\r\n super(parameter.id, ownerCase);\r\n this.initValues(parameter);\r\n }\r\n\r\n initValues(parameter: any) {\r\n if (parameter.simulationVariable instanceof SimulationVariable) {\r\n this.simulationVariable = parameter.simulationVariable;\r\n }\r\n\r\n this.variableValues = new SimulationVariableArray(parameter.variableValues, null, null);\r\n\r\n if (!this.variableValues.quantity) {\r\n this.variableValues.setQuantity(this.simulationVariable.quantity);\r\n this.variableValues.unit = this.simulationVariable.unit;\r\n }\r\n\r\n if (parameter.variableValues instanceof SimulationVariableArray) {\r\n for (const n of parameter.variableValues) {\r\n this.variableValues.addValue(n);\r\n }\r\n }\r\n }\r\n\r\n override convertToInternalUnit() {\r\n const convertedValues = this.variableValues.convertToInternalUnit();\r\n\r\n for (let i = 0; i < convertedValues.length; i++) {\r\n this.variableValues.values[i] = convertedValues[i];\r\n }\r\n }\r\n\r\n convertToCaptureUnit() {\r\n const convertedValues = this.variableValues.convertToCaptureUnitArray(true, false);\r\n\r\n for (let i = 0; i < convertedValues.length; i++) {\r\n this.variableValues.values[i] = convertedValues[i];\r\n }\r\n }\r\n\r\n addState() {\r\n this.variableValues.addValue(this.simulationVariable.value);\r\n }\r\n\r\n removeLastValue() {\r\n this.variableValues.removeValue(this.variableValues.values.length - 1);\r\n }\r\n\r\n // region serialization\r\n override dePersist(persistedObj: any): void {\r\n this.simulationVariable = this.ownerCase.getSimulationVariable(persistedObj.simulationVariable);\r\n this.variableValues = new SimulationVariableArray(persistedObj.variableValues, null, null);\r\n }\r\n\r\n public toJSON() {\r\n return {\r\n id: this.id,\r\n name: this.name,\r\n category: this.category,\r\n simulationVariable: this.simulationVariable.id,\r\n variableValues: this.variableValues,\r\n };\r\n }\r\n}\r\n","import { BaseObject } from '../base-object';\r\nimport { ParametricStudyKpiResult } from './parametric-study-kpi-result';\r\nimport { Case } from '../case';\r\nimport { SimulationVariable } from '../simulation-variable';\r\nimport { ParametricStudyParameter } from './parametric-study-parameter';\r\n\r\nexport class ParametricStudy extends BaseObject {\r\n category = 'parametricStudy';\r\n\r\n parameter: ParametricStudyParameter;\r\n kpiResults: ParametricStudyKpiResult[] = [];\r\n\r\n constructor(parametricStudy: any, ownerCase: Case) {\r\n super(parametricStudy.id, ownerCase);\r\n this.name = parametricStudy.name || '';\r\n }\r\n\r\n clearResults() {\r\n this.kpiResults = [];\r\n }\r\n\r\n private removeParameterBySimulationVariable(sv: SimulationVariable) {\r\n if (this.parameter && sv === this.parameter.simulationVariable) {\r\n this.parameter = undefined;\r\n this.clearResults();\r\n }\r\n }\r\n\r\n private removeResultByKpi(kpi: SimulationVariable) {\r\n const i = this.kpiResults.findIndex(res => res.kpi.id === kpi.id);\r\n if (i > -1) {\r\n this.kpiResults.splice(i, 1);\r\n }\r\n }\r\n\r\n setParameterBySimulationVariableId(id: string): ParametricStudyParameter {\r\n const sv = this.ownerCase.getSimulationVariable(id);\r\n if (sv) {\r\n const p = new ParametricStudyParameter({ simulationVariable: sv }, this.ownerCase);\r\n this.setParameter(p);\r\n return p;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n setParameter(parameter: ParametricStudyParameter) {\r\n if (this.parameter) {\r\n this.ownerCase.removeFromPools(this.parameter);\r\n }\r\n\r\n this.parameter = parameter;\r\n this.ownerCase.addToPools(parameter);\r\n }\r\n\r\n removeParameter() {\r\n if (this.parameter) {\r\n this.ownerCase.removeFromPools(this.parameter);\r\n this.parameter = undefined;\r\n }\r\n }\r\n\r\n override convertToInternalUnit() {\r\n super.convertToInternalUnit();\r\n\r\n if (this.parameter) {\r\n this.parameter.convertToInternalUnit();\r\n }\r\n }\r\n\r\n convertToCaptureUnit() {\r\n if (this.parameter) {\r\n this.parameter.convertToCaptureUnit();\r\n }\r\n }\r\n\r\n subscribeToOwnerCaseEvents() {\r\n this.ownerCase.simulationVariableDeletedRequest.subscribe(sv => {\r\n this.removeParameterBySimulationVariable(sv);\r\n });\r\n\r\n this.ownerCase.kpiDeletedRequest.subscribe(kpi => this.removeResultByKpi(kpi));\r\n }\r\n\r\n override dePersist(persistedObj: any) {\r\n this.parameter = this.ownerCase.getOtherBaseObject(persistedObj.parameter) as ParametricStudyParameter;\r\n this.dePersistResults(persistedObj);\r\n }\r\n\r\n dePersistResults(persistedObj: any) {\r\n if (persistedObj.kpiResults instanceof Array) {\r\n for (const kpiResult of persistedObj.kpiResults) {\r\n kpiResult.kpi = this.ownerCase.getSimulationVariable(kpiResult.kpi);\r\n this.kpiResults.push(new ParametricStudyKpiResult(kpiResult));\r\n }\r\n }\r\n }\r\n\r\n public toJSON() {\r\n return {\r\n id: this.id,\r\n name: this.name,\r\n category: this.category,\r\n parameter: this.parameter ? this.parameter.id : '',\r\n kpiResults: this.kpiResults.map(res => res),\r\n };\r\n }\r\n}\r\n","import { SimulationVariable } from '../simulation-variable';\r\n\r\nexport interface ParameterProvider {\r\n getAvailableParameters(): Array<SimulationVariable>;\r\n getAvailableParametricStudyParameters(): Array<SimulationVariable>;\r\n}\r\nexport function isParameterProvider(pp: any): pp is ParameterProvider {\r\n return pp !== null && typeof (pp as ParameterProvider).getAvailableParameters === 'function';\r\n}\r\n","import { SimulationVariable } from '../simulation-variable';\r\n\r\nexport interface KpiProvider {\r\n getAvailableKpis(): Array<SimulationVariable>;\r\n}\r\n\r\nexport function isKpiProvider(value: any): value is KpiProvider {\r\n return typeof value.getAvailableKpis === 'function';\r\n}\r\n","import { BaseObject } from '../base-object';\r\nimport { SimulationVariable } from '../simulation-variable';\r\nimport { Case } from '../case';\r\n\r\nexport class MultiPeriodParameter extends BaseObject {\r\n category = 'multiPeriodParameter';\r\n\r\n simulationVariable: SimulationVariable;\r\n\r\n multiPeriodValues: number[];\r\n\r\n constructor(parameter: MultiPeriodParameter | any, ownerCase: Case) {\r\n super(parameter.id, ownerCase);\r\n this.multiPeriodValues = parameter.multiPeriodValues || [];\r\n\r\n if (parameter.simulationVariable instanceof SimulationVariable) {\r\n this.simulationVariable = parameter.simulationVariable;\r\n }\r\n }\r\n\r\n getFullName(): string {\r\n return this.simulationVariable.getFullName();\r\n }\r\n\r\n getDefaultUnit(): string {\r\n return this.simulationVariable.getDefaultUnit();\r\n }\r\n\r\n override dePersist(persistedObj: any) {\r\n this.simulationVariable = this.ownerCase.getSimulationVariable(persistedObj.simulationVariable);\r\n }\r\n\r\n public toJSON() {\r\n return {\r\n id: this.id,\r\n category: this.category,\r\n simulationVariable: this.simulationVariable.id,\r\n multiPeriodValues: this.multiPeriodValues,\r\n };\r\n }\r\n}\r\n\r\nexport function isMultiPeriodParameter(value: any): value is MultiPeriodParameter {\r\n return typeof value.getAvailableMultiPeriodParameters === 'function';\r\n}\r\n","import { BaseObject } from '../base-object';\r\nimport { Case } from '../case';\r\nimport { KpiManager } from './kpi-manager';\r\nimport { CaseStudyCategory } from './case-study-category';\r\nimport { UncertaintyAnalysis } from './uncertainty-analysis';\r\nimport { ParametricStudy } from './parametric-study';\r\nimport { isParameterProvider, ParameterProvider } from './parameter-provider';\r\nimport { DiluentSource } from '../_unit-operations/diluent-source';\r\nimport { Refinery } from '../_unit-operations/refinery';\r\nimport { CaseSettings } from '../case-settings';\r\nimport { isKpiProvider } from './kpi-provider';\r\nimport { isMultiPeriodParameter } from '../_multi-period/multi-period-parameter';\r\nimport { Subject } from 'rxjs';\r\n\r\nexport class CaseStudyManager extends BaseObject {\r\n category = 'caseStudyManager';\r\n\r\n kpiManager: KpiManager;\r\n\r\n uncertaintyAnalyses: Array<UncertaintyAnalysis> = [];\r\n\r\n parametricStudies: ParametricStudy[] = [];\r\n\r\n currentAnalysisId: string;\r\n\r\n currentStudyId: string;\r\n\r\n uncertaintyCategories: Array<CaseStudyCategory> = [];\r\n\r\n parametricStudyCategories: CaseStudyCategory[] = [];\r\n\r\n private analysisResultsAdded = new Subject<UncertaintyAnalysis>();\r\n\r\n analysisResultsAddedRequest = this.analysisResultsAdded.asObservable();\r\n\r\n constructor(caseStudyManager: any, ownerCase: Case) {\r\n super(caseStudyManager.id, ownerCase);\r\n\r\n if (caseStudyManager.uncertaintyAnalyses instanceof Array) {\r\n for (const uncertaintyAnalysis of caseStudyManager.uncertaintyAnalyses) {\r\n if (uncertaintyAnalysis instanceof UncertaintyAnalysis) {\r\n this.uncertaintyAnalyses.push(uncertaintyAnalysis);\r\n }\r\n }\r\n }\r\n if (caseStudyManager.currentStudyId) {\r\n this.currentStudyId = caseStudyManager.currentStudyId;\r\n }\r\n if (caseStudyManager.parametricStudies instanceof Array) {\r\n for (const ps of caseStudyManager.parametricStudies) {\r\n this.parametricStudies.push(ps);\r\n }\r\n }\r\n this.currentStudyId = caseStudyManager.currentStudyId || '';\r\n this.currentAnalysisId = caseStudyManager.currentAnalysisId || '';\r\n }\r\n\r\n private initParameterCategories() {\r\n this.parametricStudyCategories.push(\r\n new CaseStudyCategory('Diluent sources', uo => {\r\n return uo instanceof DiluentSource;\r\n })\r\n );\r\n\r\n this.parametricStudyCategories.push(\r\n new CaseStudyCategory('Refineries', uo => {\r\n return uo instanceof Refinery;\r\n })\r\n );\r\n\r\n this.parametricStudyCategories.push(\r\n new CaseStudyCategory('Case settings', cs => {\r\n return cs instanceof CaseSettings;\r\n })\r\n );\r\n }\r\n\r\n addUncertaintyAnalysis(name: string): UncertaintyAnalysis {\r\n const ua: UncertaintyAnalysis = new UncertaintyAnalysis({}, this.ownerCase);\r\n ua.setName(name);\r\n\r\n this.uncertaintyAnalyses.push(ua);\r\n this.ownerCase.addToPools(ua);\r\n\r\n return ua;\r\n }\r\n\r\n addParametricStudy(name: string) {\r\n const ps = new ParametricStudy({}, this.ownerCase);\r\n ps.setName(name);\r\n\r\n this.parametricStudies.push(ps);\r\n this.ownerCase.addToPools(ps);\r\n\r\n return ps;\r\n }\r\n\r\n removeUncertaintyAnalysis(id: string) {\r\n const analyses = this.uncertaintyAnalyses.filter(ua => {\r\n return ua.id === id;\r\n });\r\n\r\n if (analyses.length) {\r\n const index = this.uncertaintyAnalyses.indexOf(analyses[0]);\r\n\r\n if (index > -1) {\r\n this.uncertaintyAnalyses.splice(index, 1);\r\n this.ownerCase.removeFromPools(analyses[0]);\r\n this.ownerCase.caseStudyManager.currentAnalysisId = '';\r\n }\r\n }\r\n }\r\n\r\n removeParametricStudy(id: string) {\r\n const ps = this.parametricStudies.find(p => p.id === id);\r\n\r\n if (ps) {\r\n const i = this.parametricStudies.indexOf(ps);\r\n this.parametricStudies.splice(i, 1);\r\n this.ownerCase.removeFromPools(ps);\r\n }\r\n }\r\n\r\n addToUncertaintyCategories(category: CaseStudyCategory): void {\r\n this.uncertaintyCategories.push(category);\r\n }\r\n\r\n addToParametricStudyCategories(category: CaseStudyCategory): void {\r\n this.parametricStudyCategories.push(category);\r\n }\r\n\r\n findUncertaintyAnalysisById(id: String): UncertaintyAnalysis {\r\n return this.uncertaintyAnalyses.find(ua => ua.id === id);\r\n }\r\n\r\n findParametricStudy(id: string): ParametricStudy {\r\n return this.parametricStudies.find(ps => ps.id === id);\r\n }\r\n\r\n addUncertaintyAnalysisResults() {\r\n const currentAnalysis = this.uncertaintyAnalyses[0];\r\n this.analysisResultsAdded.next(currentAnalysis);\r\n }\r\n\r\n // region kpi and parameter providers\r\n /**\r\n * Builds a list of BaseObject filled with all the available kpi providers from case's unit operation pool, material\r\n * stream pool and other base object pool.\r\n * @returns {Array} All available kpi providers\r\n */\r\n getAvailableKpiProviders(): BaseObject[] {\r\n const providers: BaseObject[] = [];\r\n\r\n const uoKeys = Object.keys(this.ownerCase.unitOperationPool);\r\n for (const id of uoKeys) {\r\n const uo = this.ownerCase.unitOperationPool[id];\r\n if (isKpiProvider(uo)) {\r\n providers.push(this.ownerCase.unitOperationPool[id]);\r\n }\r\n }\r\n\r\n const streamIds = this.ownerCase.getAllMaterialStreamIds();\r\n\r\n for (const id of streamIds) {\r\n const stream = this.ownerCase.getMaterialStream(id);\r\n if (isKpiProvider(stream)) {\r\n providers.push(stream);\r\n }\r\n }\r\n\r\n const boKeys = Object.keys(this.ownerCase.otherBaseObjectPool);\r\n for (const id of boKeys) {\r\n const bo = this.ownerCase.otherBaseObjectPool[id];\r\n if (isKpiProvider(bo)) {\r\n providers.push(bo);\r\n }\r\n }\r\n\r\n return providers;\r\n }\r\n\r\n getAvailableMultiPeriodProviders(): BaseObject[] {\r\n const multiPeriodProviders = [];\r\n\r\n const uoKeys = Object.keys(this.ownerCase.unitOperationPool);\r\n\r\n for (const id of uoKeys) {\r\n const uo = this.ownerCase.unitOperationPool[id];\r\n if (isMultiPeriodParameter(uo)) {\r\n multiPeriodProviders.push(uo);\r\n }\r\n }\r\n\r\n const boKeys = Object.keys(this.ownerCase.otherBaseObjectPool);\r\n for (const id of boKeys) {\r\n const bo = this.ownerCase.otherBaseObjectPool[id];\r\n if (isMultiPeriodParameter(bo)) {\r\n multiPeriodProviders.push(bo);\r\n }\r\n }\r\n\r\n return multiPeriodProviders;\r\n }\r\n\r\n /**\r\n *\r\n * @param category\r\n * @returns {Array<BaseObject>}\r\n */\r\n getKpiProvidersForCategory(category: CaseStudyCategory): BaseObject[] {\r\n const availableKpiProviders = this.getAvailableKpiProviders();\r\n const baseObjectsByCategory: BaseObject[] = [];\r\n\r\n for (const kpiProvider of availableKpiProviders) {\r\n if (category.filterCallback(kpiProvider)) {\r\n baseObjectsByCategory.push(kpiProvider);\r\n }\r\n }\r\n\r\n return baseObjectsByCategory.sort();\r\n }\r\n\r\n getMultiPeriodProvidersForCategory(category: CaseStudyCategory): BaseObject[] {\r\n const availableMultiPeriodProviders = this.getAvailableMultiPeriodProviders();\r\n const baseObjectsByCategory: BaseObject[] = [];\r\n\r\n for (const multiPeriodProvider of availableMultiPeriodProviders) {\r\n if (category.filterCallback(multiPeriodProvider)) {\r\n baseObjectsByCategory.push(multiPeriodProvider);\r\n }\r\n }\r\n\r\n return baseObjectsByCategory.sort();\r\n }\r\n\r\n /**\r\n * Builds a list of BaseObject filled with all the available kpi providers from case's unit operation pool, material\r\n * stream pool and other base object pool.\r\n * @returns {Array} All available kpi providers\r\n */\r\n getAvailableParameterProviders(): BaseObject[] {\r\n const providers: BaseObject[] = [];\r\n\r\n const uoKeys = Object.keys(this.ownerCase.unitOperationPool);\r\n for (const id of uoKeys) {\r\n const uo = this.ownerCase.unitOperationPool[id];\r\n if (isParameterProvider(uo)) {\r\n providers.push(uo);\r\n }\r\n }\r\n\r\n const streamIds = this.ownerCase.getAllSuncorMaterialStreamIds();\r\n for (const id of streamIds) {\r\n const stream = this.ownerCase.getSuncorMaterialStream(id);\r\n if (isParameterProvider(stream)) {\r\n providers.push(stream);\r\n }\r\n }\r\n\r\n const boKeys = Object.keys(this.ownerCase.otherBaseObjectPool);\r\n for (const id of boKeys) {\r\n const bo = this.ownerCase.otherBaseObjectPool[id];\r\n if (isParameterProvider(bo)) {\r\n providers.push(bo);\r\n }\r\n }\r\n return providers;\r\n }\r\n\r\n getUncertainParameterProvidersByCategory(category: CaseStudyCategory) {\r\n const availableParameterProviders = this.getAvailableParameterProviders();\r\n const baseObjectsByCategory: Array<BaseObject> = [];\r\n\r\n for (const paramProvider of availableParameterProviders) {\r\n if (category.filterCallback(paramProvider)) {\r\n baseObjectsByCategory.push(paramProvider);\r\n }\r\n }\r\n\r\n return baseObjectsByCategory.sort();\r\n }\r\n\r\n getParameterProvidersByCategory(category: CaseStudyCategory): (BaseObject & ParameterProvider)[] {\r\n const availableParameterProviders = this.getAvailableParameterProviders();\r\n const baseObjectsByCategory = [];\r\n\r\n for (const paramProvider of availableParameterProviders) {\r\n if (category.filterCallback(paramProvider)) {\r\n baseObjectsByCategory.push(paramProvider);\r\n }\r\n }\r\n\r\n return baseObjectsByCategory.sort();\r\n }\r\n\r\n getUncertainParameterProvidersByCategoryName(categoryName: string): Array<BaseObject> {\r\n const selectedCategory: CaseStudyCategory = this.uncertaintyCategories.find(c => c.categoryName === categoryName);\r\n return this.getUncertainParameterProvidersByCategory(selectedCategory);\r\n }\r\n\r\n getParameterProvidersByCategoryName(categoryName: string): (BaseObject & ParameterProvider)[] {\r\n const selectedCategory: CaseStudyCategory = this.parametricStudyCategories.find(\r\n c => c.categoryName === categoryName\r\n );\r\n\r\n return this.getParameterProvidersByCategory(selectedCategory);\r\n }\r\n // endregion\r\n\r\n // region serialization and deserialization\r\n override dePersist(persistedObj: any) {\r\n this.kpiManager = <KpiManager>this.ownerCase.getOtherBaseObject(persistedObj.kpiManager);\r\n if (persistedObj.parametricStudies) {\r\n for (let i = 0; i < persistedObj.parametricStudies.length; i++) {\r\n this.parametricStudies[i] = this.ownerCase.getOtherBaseObject(\r\n persistedObj.parametricStudies[i]\r\n ) as ParametricStudy;\r\n }\r\n }\r\n if (persistedObj.parametricStudies) {\r\n for (const analysisId of persistedObj.uncertaintyAnalyses) {\r\n const ua = <UncertaintyAnalysis>this.ownerCase.getOtherBaseObject(analysisId);\r\n this.uncertaintyAnalyses.push(ua);\r\n }\r\n }\r\n }\r\n\r\n public toJSON(): any {\r\n return {\r\n id: this.id,\r\n name: this.name,\r\n category: this.category,\r\n kpiManager: this.kpiManager.id,\r\n uncertaintyAnalyses: this.uncertaintyAnalyses.map(ua => ua.id),\r\n currentAnalysisId: this.currentAnalysisId,\r\n parametricStudies: this.parametricStudies.map(ps => ps.id),\r\n currentStudyId: this.currentStudyId,\r\n };\r\n }\r\n // endregion\r\n}\r\n","import { BaseObject } from '../base-object';\r\nimport { SimulationVariable } from '../simulation-variable';\r\nimport { Case } from '../case';\r\nimport { CaseStudyCategory } from './case-study-category';\r\nimport { CaseStudyManager } from './case-study-manager';\r\nimport { SuncorCalculator } from '../suncor-calculator';\r\n\r\nexport class KpiManager extends BaseObject {\r\n category = 'kpiManager'; // um...\r\n selectedKpis: SimulationVariable[] = [];\r\n categories: CaseStudyCategory[] = [];\r\n\r\n constructor(kpiManager: any, ownerCase: Case) {\r\n super(kpiManager.id, ownerCase);\r\n\r\n if (kpiManager.selectedKpis instanceof Array) {\r\n for (const kpi of kpiManager.selectedKpis) {\r\n if (kpi instanceof SimulationVariable) {\r\n this.selectedKpis.push(this.ownerCase.getSimulationVariable(kpi.id));\r\n }\r\n }\r\n }\r\n\r\n this.ownerCase.simulationVariableDeletedRequest.subscribe((sv: SimulationVariable) => {\r\n this.removeKpi(sv);\r\n });\r\n }\r\n\r\n addToCategories(category: CaseStudyCategory): void {\r\n const existingCategory = this.categories.find(cat => {\r\n return cat.ownerBaseObjectId && cat.ownerBaseObjectId === category.ownerBaseObjectId;\r\n });\r\n if (existingCategory) {\r\n return;\r\n }\r\n this.categories.push(category);\r\n }\r\n\r\n /**\r\n * @param categoryName The name of the category\r\n * @returns {Array<BaseObject>} An array of all the base objects that belong to categoryName\r\n */\r\n getKpiProvidersByCategoryName(categoryName: string): Array<BaseObject> {\r\n let selectedCategory: CaseStudyCategory = null;\r\n for (const category of this.categories) {\r\n if (category.categoryName === categoryName) {\r\n selectedCategory = category;\r\n }\r\n }\r\n return this.caseStudyManager.getKpiProvidersForCategory(selectedCategory);\r\n }\r\n\r\n addKpiById(id: string) {\r\n this.addKpi(this.ownerCase.getSimulationVariable(id));\r\n }\r\n\r\n addKpi(sv: SimulationVariable) {\r\n if (this.selectedKpis.indexOf(sv) > -1) {\r\n return;\r\n }\r\n\r\n this.selectedKpis.push(sv);\r\n }\r\n\r\n removeKpi(sv: SimulationVariable) {\r\n const index = this.selectedKpis.indexOf(sv);\r\n\r\n if (index > -1) {\r\n this.ownerCase.kpiDeletedSubject.next(this.selectedKpis[index]);\r\n this.selectedKpis.splice(index, 1);\r\n }\r\n }\r\n\r\n removeKpiById(id: string) {\r\n this.removeKpi(this.ownerCase.getSimulationVariable(id));\r\n }\r\n\r\n override dePersist(kpiManager: any) {\r\n for (const kpiId of kpiManager.selectedKpis) {\r\n this.selectedKpis.push(this.ownerCase.getSimulationVariable(kpiId));\r\n }\r\n }\r\n\r\n get caseStudyManager(): CaseStudyManager {\r\n return this.ownerCase.caseStudyManager;\r\n }\r\n\r\n public toJSON(): any {\r\n return {\r\n category: this.category,\r\n id: this.id,\r\n selectedKpis: this.selectedKpis.map((sv: SimulationVariable) => {\r\n return sv.id;\r\n }),\r\n };\r\n }\r\n\r\n private getDefaultKpis(calculator: SuncorCalculator): SimulationVariable[] {\r\n return calculator.getAvailableKpis();\r\n }\r\n\r\n addDefaultKpis(calculator: SuncorCalculator) {\r\n const defaultKpis = this.getDefaultKpis(calculator);\r\n for (const kpi of defaultKpis) {\r\n this.addKpi(kpi);\r\n }\r\n }\r\n\r\n removeDefaultKpis(calculator: SuncorCalculator) {\r\n const defaultKpis = this.getDefaultKpis(calculator);\r\n for (const kpi of defaultKpis) {\r\n this.removeKpi(kpi);\r\n }\r\n }\r\n}\r\n","import { BaseObject } from '../base-object';\r\nimport { Case } from '../case';\r\n\r\nexport const objectiveFunctionType = {\r\n Cost: {\r\n displayName: 'Maximize value',\r\n id: 'Cost',\r\n },\r\n GHG: {\r\n displayName: 'Minimize GHG',\r\n id: 'GHG',\r\n },\r\n};\r\n\r\nexport class ObjectiveFunction extends BaseObject {\r\n category = 'objectiveFunction';\r\n\r\n objectiveFunctionType: string;\r\n\r\n constructor(objectiveFunction: any, ownerCase: Case) {\r\n super(objectiveFunction.id, ownerCase);\r\n\r\n this.initValues(objectiveFunction);\r\n }\r\n\r\n initValues(objectiveFunction: any) {\r\n this.objectiveFunctionType = objectiveFunction.objectiveFunctionType || objectiveFunctionType.Cost.id;\r\n }\r\n\r\n get objectiveFunctionName() {\r\n return objectiveFunctionType[this.objectiveFunctionType].displayName;\r\n }\r\n\r\n // no dePersist needed so far, no child simulationVariables...\r\n\r\n public toJSON() {\r\n return {\r\n id: this.id,\r\n category: this.category,\r\n objectiveFunctionType: this.objectiveFunctionType,\r\n };\r\n }\r\n}\r\n","import { Case } from '../case';\r\nimport { BaseObject } from '../base-object';\r\n\r\nexport abstract class FluidAnalysis extends BaseObject {\r\n constructor(fluidAnalysis: any, ownerCase: Case) {\r\n super(fluidAnalysis.id, ownerCase);\r\n }\r\n}\r\n","import { BaseObject } from '../base-object';\r\n\r\nexport abstract class Compound extends BaseObject {\r\n // Nothing here, though\r\n}\r\n","import { SimulationVariable } from '../simulation-variable';\r\nimport { Compound } from './compound';\r\nimport { Case } from '../case';\r\n\r\nexport class SuncorHypotheticalCompound extends Compound {\r\n category = 'hypothetical-compound';\r\n\r\n massDensity: SimulationVariable;\r\n olefinContent: SimulationVariable;\r\n aromaticityFactor: SimulationVariable;\r\n anilinePoint: SimulationVariable;\r\n nitrogenContent: SimulationVariable;\r\n sulfurContent: SimulationVariable;\r\n ccrContent: SimulationVariable;\r\n vabp: SimulationVariable;\r\n fbp: SimulationVariable;\r\n ibp: SimulationVariable;\r\n\r\n /**\r\n *\r\n */\r\n constructor(compound: any, ownerCase: Case) {\r\n super(compound.id, ownerCase);\r\n\r\n this.initValues(compound);\r\n this.setSimulationVariableNames();\r\n }\r\n\r\n initValues(compound: any) {\r\n this.massDensity = new SimulationVariable(compound.massDensity, this.ownerCase, this);\r\n this.olefinContent = new SimulationVariable(compound.olefinContent, this.ownerCase, this);\r\n this.aromaticityFactor = new SimulationVariable(compound.aromaticityFactor, this.ownerCase, this);\r\n this.anilinePoint = new SimulationVariable(compound.anilinePoint, this.ownerCase, this);\r\n this.nitrogenContent = new SimulationVariable(compound.nitrogenContent, this.ownerCase, this);\r\n this.sulfurContent = new SimulationVariable(compound.sulfurContent, this.ownerCase, this);\r\n this.ccrContent = new SimulationVariable(compound.ccrContent, this.ownerCase, this);\r\n this.vabp = new SimulationVariable(compound.vabp, this.ownerCase, this);\r\n this.fbp = new SimulationVariable(compound.fbp, this.ownerCase, this);\r\n this.ibp = new SimulationVariable(compound.ibp, this.ownerCase, this);\r\n }\r\n\r\n setSimulationVariableNames() {\r\n this.massDensity.setName('Mass Density');\r\n this.olefinContent.setName('Olefin content');\r\n this.aromaticityFactor.setName('Aromaticity factor');\r\n this.anilinePoint.setName('Aniline point');\r\n this.nitrogenContent.setName('Nitrogen content');\r\n this.sulfurContent.setName('Sulfur content');\r\n this.ccrContent.setName('CCR Content');\r\n this.vabp.setName('VABP');\r\n this.fbp.setName('FBP');\r\n this.ibp.setName('IBP');\r\n }\r\n\r\n // More methods are needed :(\r\n\r\n protected override isPropertyBlackListed(property: any): boolean {\r\n return property instanceof Case || typeof property === 'function';\r\n }\r\n\r\n // TODO: this should be at BaseObject class check if the isPropertyBlackListed affects.\r\n public toJSON(): any {\r\n const objectToSerialize: any = {};\r\n let val: any;\r\n for (val in this) {\r\n // only simulation variable id will be serialized\r\n // maybe detect all base objects?\r\n if (this[val] instanceof SimulationVariable) {\r\n objectToSerialize[val] = (<SimulationVariable>this[val]).id;\r\n } else if (this.isPropertyBlackListed(this[val])) {\r\n // welp, nothing\r\n } else {\r\n objectToSerialize[val] = this[val];\r\n }\r\n }\r\n\r\n return objectToSerialize;\r\n }\r\n}\r\n","import { SimulationVariable } from '../simulation-variable';\r\nimport { FluidAnalysis } from './fluid-analysis';\r\nimport { Case } from '../case';\r\nimport { SuncorHypotheticalCompound } from './suncor-hypothetical-compound';\r\nimport { BaseObject } from '../base-object';\r\nimport { Cut } from './cut';\r\nimport { AssayManagerFluidAnalysisResourceData } from './assay-manager-resource-data';\r\nimport { BoundedObject } from '../bounded-object';\r\nimport { ReadyStatus } from '../../_config/ready-status.enum';\r\n\r\nexport class SuncorFluidAnalysis extends FluidAnalysis implements BoundedObject {\r\n category = 'fluid-analysis';\r\n assayName: string;\r\n ownerBaseObject: BaseObject;\r\n assayType: string;\r\n\r\n // So-called Bulk properties\r\n massDensity: SimulationVariable;\r\n ccr: SimulationVariable;\r\n sulfur: SimulationVariable;\r\n nitrogen: SimulationVariable;\r\n\r\n // So called Cuts\r\n lightEndsCut: Cut;\r\n lightNaphthaCut: Cut;\r\n heavyNaphthaCut: Cut;\r\n distillateCut: Cut;\r\n LGOCut: Cut;\r\n HGOCut: Cut;\r\n VGOCut: Cut;\r\n HVGOCut: Cut;\r\n residCut: Cut;\r\n\r\n composition: Array<SimulationVariable>;\r\n\r\n // non-serializable objects, helpers for composition validation\r\n upperBound: number;\r\n lowerBound: number;\r\n readyStatus: ReadyStatus;\r\n quantity: string;\r\n\r\n protected fakeFluidPackage: Array<SuncorHypotheticalCompound>;\r\n\r\n /**\r\n *\r\n */\r\n constructor(fluidAnalysis: any, ownerCase: Case, ownerBaseObject?: BaseObject) {\r\n super(fluidAnalysis, ownerCase);\r\n if (fluidAnalysis.composition) {\r\n if (fluidAnalysis.composition.length < 9) {\r\n fluidAnalysis.composition = [];\r\n fluidAnalysis.fakeFluidPackage = [];\r\n }\r\n }\r\n this.ownerBaseObject = ownerBaseObject;\r\n this.assayName = fluidAnalysis.assayName || '';\r\n this.assayType = fluidAnalysis.assayType || '';\r\n this.composition = []; // fluidAnalysis.composition || [];\r\n this.fakeFluidPackage = fluidAnalysis.fakeFluidPackage || [];\r\n\r\n this.initSimVars(fluidAnalysis);\r\n\r\n if (!this.fakeFluidPackage.length) {\r\n this.initFluidPackage();\r\n }\r\n\r\n this.initComposition(fluidAnalysis.composition || []);\r\n\r\n this.setQuantities();\r\n\r\n this.upperBound = fluidAnalysis.upperBound;\r\n this.lowerBound = fluidAnalysis.lowerBound;\r\n this.readyStatus = fluidAnalysis.readyStatus || ReadyStatus.UNDEFINED;\r\n }\r\n\r\n override addSimVarsToPool() {\r\n super.addSimVarsToPool();\r\n for (const c of this.composition) {\r\n this.ownerCase.addToPools(c);\r\n }\r\n this.lightEndsCut.addSimVarsToPool();\r\n this.lightNaphthaCut.addSimVarsToPool();\r\n this.heavyNaphthaCut.addSimVarsToPool();\r\n this.distillateCut.addSimVarsToPool();\r\n this.LGOCut.addSimVarsToPool();\r\n this.HGOCut.addSimVarsToPool();\r\n this.VGOCut.addSimVarsToPool();\r\n this.HVGOCut.addSimVarsToPool();\r\n this.residCut.addSimVarsToPool();\r\n }\r\n\r\n override overwriteValues(another: BaseObject) {\r\n super.overwriteValues(another);\r\n\r\n const fs = another as SuncorFluidAnalysis;\r\n\r\n for (let i = 0; i < this.composition.length; i++) {\r\n this.composition[i].overwriteValues(fs.composition[i]);\r\n }\r\n this.lightEndsCut.overwriteValues(fs.lightEndsCut);\r\n this.lightNaphthaCut.overwriteValues(fs.lightNaphthaCut);\r\n this.heavyNaphthaCut.overwriteValues(fs.heavyNaphthaCut);\r\n this.distillateCut.overwriteValues(fs.distillateCut);\r\n this.LGOCut.overwriteValues(fs.LGOCut);\r\n this.HGOCut.overwriteValues(fs.HGOCut);\r\n this.VGOCut.overwriteValues(fs.VGOCut);\r\n this.HVGOCut.overwriteValues(fs.HVGOCut);\r\n this.residCut.overwriteValues(fs.residCut);\r\n }\r\n\r\n override convertToInternalUnit(): void {\r\n super.convertToInternalUnit();\r\n this.lightEndsCut.convertToInternalUnit();\r\n this.lightNaphthaCut.convertToInternalUnit();\r\n this.heavyNaphthaCut.convertToInternalUnit();\r\n this.distillateCut.convertToInternalUnit();\r\n this.LGOCut.convertToInternalUnit();\r\n this.HGOCut.convertToInternalUnit();\r\n this.VGOCut.convertToInternalUnit();\r\n this.HVGOCut.convertToInternalUnit();\r\n this.residCut.convertToInternalUnit();\r\n }\r\n\r\n protected override ignoreForOverWrite(propertyName: string): boolean {\r\n return (\r\n super.ignoreForOverWrite(propertyName) || this[propertyName] instanceof Array || this[propertyName] instanceof Cut\r\n );\r\n }\r\n\r\n override getName() {\r\n return this.ownerBaseObject.getName();\r\n }\r\n\r\n setSimulationVariableNames(): void {\r\n this.massDensity.setName('Mass Density');\r\n this.ccr.setName('CCR');\r\n }\r\n\r\n override setSimulationVariablesOwner(): void {\r\n super.setSimulationVariablesOwner();\r\n for (let i = 0; i < this.composition.length; i++) {\r\n this.composition[i].setSimulationVariablesOwner();\r\n }\r\n }\r\n\r\n initSimVars(fluidAnalysis: any): void {\r\n this.massDensity = new SimulationVariable(fluidAnalysis.massDensity, this.ownerCase, this);\r\n this.ccr = new SimulationVariable(fluidAnalysis.ccr, this.ownerCase, this);\r\n this.sulfur = new SimulationVariable(fluidAnalysis.sulfur, this.ownerCase, this);\r\n this.nitrogen = new SimulationVariable(fluidAnalysis.nitrogen, this.ownerCase, this);\r\n // Apparently\r\n this.lightEndsCut = new Cut(fluidAnalysis.lightEndsCut || {}, this.ownerCase, this);\r\n this.lightNaphthaCut = new Cut(fluidAnalysis.lightNaphthaCut || {}, this.ownerCase, this);\r\n this.heavyNaphthaCut = new Cut(fluidAnalysis.heavyNaphthaCut || {}, this.ownerCase, this);\r\n this.distillateCut = new Cut(fluidAnalysis.distillateCut || {}, this.ownerCase, this);\r\n this.LGOCut = new Cut(fluidAnalysis.LGOCut || {}, this.ownerCase, this);\r\n this.HGOCut = new Cut(fluidAnalysis.HGOCut || {}, this.ownerCase, this);\r\n this.VGOCut = new Cut(fluidAnalysis.VGOCut || {}, this.ownerCase, this);\r\n this.HVGOCut = new Cut(fluidAnalysis.HVGOCut || {}, this.ownerCase, this);\r\n this.residCut = new Cut(fluidAnalysis.residCut || {}, this.ownerCase, this);\r\n }\r\n\r\n setOwnerBaseObject(ownerBaseObject: BaseObject): void {\r\n this.ownerBaseObject = ownerBaseObject;\r\n }\r\n\r\n // this should be an override\r\n initFluidPackage(): void {\r\n // this.fluidPackage = new SuncorFluidPackage({});\r\n\r\n // this is so useless\r\n let hypo: SuncorHypotheticalCompound;\r\n\r\n hypo = new SuncorHypotheticalCompound({}, this.ownerCase);\r\n hypo.setName('Light ends');\r\n this.fakeFluidPackage.push(hypo);\r\n\r\n hypo = new SuncorHypotheticalCompound({}, this.ownerCase);\r\n hypo.setName('Light naphtha');\r\n this.fakeFluidPackage.push(hypo);\r\n\r\n hypo = new SuncorHypotheticalCompound({}, this.ownerCase);\r\n hypo.setName('Heavy naphtha');\r\n this.fakeFluidPackage.push(hypo);\r\n\r\n hypo = new SuncorHypotheticalCompound({}, this.ownerCase);\r\n hypo.setName('Distillate');\r\n this.fakeFluidPackage.push(hypo);\r\n\r\n hypo = new SuncorHypotheticalCompound({}, this.ownerCase);\r\n hypo.setName('LGO');\r\n this.fakeFluidPackage.push(hypo);\r\n\r\n hypo = new SuncorHypotheticalCompound({}, this.ownerCase);\r\n hypo.setName('HGO');\r\n this.fakeFluidPackage.push(hypo);\r\n\r\n hypo = new SuncorHypotheticalCompound({}, this.ownerCase);\r\n hypo.setName('VGO');\r\n this.fakeFluidPackage.push(hypo);\r\n\r\n hypo = new SuncorHypotheticalCompound({}, this.ownerCase);\r\n hypo.setName('HVGO');\r\n this.fakeFluidPackage.push(hypo);\r\n\r\n hypo = new SuncorHypotheticalCompound({}, this.ownerCase);\r\n hypo.setName('Resid');\r\n this.fakeFluidPackage.push(hypo);\r\n }\r\n\r\n initComposition(composition): void {\r\n // YE OLDE LOOP\r\n for (let idx = 0; idx < 9; idx++) {\r\n // let's use the input composition values for initialization\r\n if (composition[idx] instanceof SimulationVariable || typeof composition[idx] === 'undefined') {\r\n this.composition.push(new SimulationVariable(composition[idx], this.ownerCase, this));\r\n this.composition[idx].setName(this.fakeFluidPackage[idx].name);\r\n }\r\n }\r\n }\r\n\r\n getCompositionElement(name: string): SimulationVariable {\r\n return this.composition.find(sv => sv.name === name);\r\n }\r\n\r\n setCompositionNames() {\r\n const names = ['Light ends', 'Light naphtha', 'Heavy naphtha', 'Distillate', 'LGO', 'HGO', 'VGO', 'HVGO', 'Resid'];\r\n for (let idx = 0; idx < 9; idx++) {\r\n this.composition[idx].setName(names[idx]);\r\n }\r\n }\r\n\r\n setQuantities() {\r\n this.massDensity.setQuantity('LiquidDensity');\r\n this.ccr.setQuantity('MassFraction');\r\n this.sulfur.setQuantity('MassFraction');\r\n this.nitrogen.setQuantity('MassFraction');\r\n\r\n for (const sv of this.composition) {\r\n sv.setQuantity('MassFraction');\r\n }\r\n\r\n this.quantity = 'MassFraction';\r\n }\r\n\r\n override detectChanges(another: SuncorFluidAnalysis) {\r\n let changes = super.detectChanges(another);\r\n\r\n for (let idx = 0; idx < another.composition.length; idx++) {\r\n changes = changes || this.composition[idx].detectValueChange(another.composition[idx]);\r\n }\r\n return changes;\r\n }\r\n\r\n override getSimVars() {\r\n const simVars = super.getSimVars();\r\n for (const ce of this.composition) {\r\n simVars.push(ce);\r\n }\r\n\r\n return simVars;\r\n }\r\n\r\n protected override isPropertyBlackListed(property: any): boolean {\r\n return property instanceof Case || typeof property === 'function' || property === this.ownerBaseObject;\r\n }\r\n\r\n override getChildrenObjectsForRemoval(): BaseObject[] {\r\n const children = super.getChildrenObjectsForRemoval();\r\n children.push(this.lightEndsCut);\r\n children.push(this.lightNaphthaCut);\r\n children.push(this.heavyNaphthaCut);\r\n children.push(this.distillateCut);\r\n children.push(this.LGOCut);\r\n children.push(this.HGOCut);\r\n children.push(this.VGOCut);\r\n children.push(this.HVGOCut);\r\n children.push(this.residCut);\r\n return children;\r\n }\r\n\r\n loadResourceData(resourceData: AssayManagerFluidAnalysisResourceData) {\r\n this.lightEndsCut.loadResourceData(resourceData.cut);\r\n this.lightNaphthaCut.loadResourceData(resourceData.cut);\r\n this.heavyNaphthaCut.loadResourceData(resourceData.cut);\r\n this.distillateCut.loadResourceData(resourceData.cut);\r\n this.LGOCut.loadResourceData(resourceData.cut);\r\n this.HGOCut.loadResourceData(resourceData.cut);\r\n this.VGOCut.loadResourceData(resourceData.cut);\r\n this.HVGOCut.loadResourceData(resourceData.cut);\r\n this.residCut.loadResourceData(resourceData.cut);\r\n\r\n this.upperBound = resourceData.composition.upperBound;\r\n this.lowerBound = resourceData.composition.lowerBound;\r\n\r\n for (const sv of this.composition) {\r\n // TODO create a method inside SimulationVariable for loading resource data\r\n sv.upperBound = resourceData.composition.upperBound;\r\n sv.lowerBound = resourceData.composition.lowerBound;\r\n }\r\n }\r\n\r\n // TODO: this should be at BaseObject class check if the isPropertyBlackListed affects.\r\n public toJSON(): any {\r\n // wait, wat, why not just return a key-value object? O.o\r\n const objectToSerialize: any = {};\r\n let val: any;\r\n for (val in this) {\r\n // only simulation variable id will be serialized\r\n // maybe detect all base objects?\r\n if (this[val] instanceof SimulationVariable) {\r\n objectToSerialize[val] = (<SimulationVariable>this[val]).id;\r\n } else if (this[val] === this.composition) {\r\n objectToSerialize.composition = [];\r\n for (const c of this.composition) {\r\n objectToSerialize.composition.push(c.id);\r\n }\r\n } else if (this.isPropertyBlackListed(this[val])) {\r\n // welp, nothing\r\n } else {\r\n objectToSerialize[val] = this[val];\r\n }\r\n }\r\n\r\n return objectToSerialize;\r\n }\r\n\r\n override dePersist(sfa: any) {\r\n this.massDensity = this.getSimulationVariableSafe(sfa.massDensity);\r\n this.ccr = this.getSimulationVariableSafe(sfa.ccr);\r\n this.sulfur = this.getSimulationVariableSafe(sfa.sulfur);\r\n this.nitrogen = this.getSimulationVariableSafe(sfa.nitrogen);\r\n\r\n if (sfa.composition.length === 9) {\r\n this.lightEndsCut.dePersist(sfa.lightEndsCut);\r\n this.lightNaphthaCut.dePersist(sfa.lightNaphthaCut);\r\n this.heavyNaphthaCut.dePersist(sfa.heavyNaphthaCut);\r\n this.distillateCut.dePersist(sfa.distillateCut);\r\n this.LGOCut.dePersist(sfa.LGOCut);\r\n this.HGOCut.dePersist(sfa.HGOCut);\r\n this.VGOCut.dePersist(sfa.VGOCut);\r\n this.HVGOCut.dePersist(sfa.HVGOCut);\r\n this.residCut.dePersist(sfa.residCut);\r\n\r\n for (let idx = 0; idx < 9; idx++) {\r\n this.composition.push(this.ownerCase.getSimulationVariable(sfa.composition[idx]));\r\n }\r\n this.setCompositionNames();\r\n }\r\n }\r\n}\r\n","import { BaseObject } from '../base-object';\r\nimport { Case } from '../case';\r\nimport { SimulationVariable } from '../simulation-variable';\r\nimport { AssayManagerFluidAnalysisResourceData } from './assay-manager-resource-data';\r\nimport { FluidAnalysis } from './fluid-analysis';\r\nimport { ReadyStatus } from '../../_config/ready-status.enum';\r\n\r\nexport class GasFluidAnalysis extends FluidAnalysis {\r\n category = 'gas-fluid-analysis';\r\n assayName: string;\r\n ownerBaseObject: BaseObject;\r\n assayType: string;\r\n\r\n composition: Array<SimulationVariable>;\r\n\r\n upperBound: number;\r\n lowerBound: number;\r\n readyStatus: ReadyStatus;\r\n quantity: string;\r\n\r\n constructor(gasFluidAnalysis: any, ownerCase: Case, ownerBaseObject?: BaseObject) {\r\n super(gasFluidAnalysis, ownerCase);\r\n if (gasFluidAnalysis.composition) {\r\n if (gasFluidAnalysis.composition.length < 14) {\r\n gasFluidAnalysis.composition = [];\r\n }\r\n }\r\n\r\n this.ownerBaseObject = ownerBaseObject;\r\n this.assayName = gasFluidAnalysis.assayName || '';\r\n this.assayType = gasFluidAnalysis.assayType || '';\r\n this.composition = [];\r\n\r\n this.initSimVars();\r\n\r\n this.initComposition(gasFluidAnalysis.composition || []);\r\n\r\n this.setQuantities();\r\n\r\n this.upperBound = gasFluidAnalysis.upperBound;\r\n this.lowerBound = gasFluidAnalysis.lowerBound;\r\n this.readyStatus = gasFluidAnalysis.readyStatus || ReadyStatus.UNDEFINED;\r\n }\r\n\r\n override addSimVarsToPool() {\r\n super.addSimVarsToPool();\r\n for (const c of this.composition) {\r\n this.ownerCase.addToPools(c);\r\n }\r\n }\r\n\r\n override overwriteValues(another: BaseObject) {\r\n super.overwriteValues(another);\r\n\r\n const fg = another as GasFluidAnalysis;\r\n\r\n for (let i = 0; i < this.composition.length; i++) {\r\n this.composition[i].overwriteValues(fg.composition[i]);\r\n }\r\n }\r\n\r\n override convertToInternalUnit() {\r\n super.convertToInternalUnit();\r\n }\r\n\r\n protected override ignoreForOverWrite(propertyName: string): boolean {\r\n return super.ignoreForOverWrite(propertyName) || this[propertyName] instanceof Array;\r\n }\r\n\r\n override getName() {\r\n return this.ownerBaseObject.getName();\r\n }\r\n\r\n setSimulationVariableNames(): void {}\r\n\r\n override setSimulationVariablesOwner(): void {\r\n super.setSimulationVariablesOwner();\r\n for (let i = 0; i < this.composition.length; i++) {\r\n this.composition[i].setSimulationVariablesOwner();\r\n }\r\n }\r\n\r\n initSimVars(): void {}\r\n\r\n setOwnerBaseObject(ownerBaseObject: BaseObject): void {\r\n this.ownerBaseObject = ownerBaseObject;\r\n }\r\n\r\n initComposition(composition) {\r\n for (let idx = 0; idx < 14; idx++) {\r\n if (composition[idx] instanceof SimulationVariable || typeof composition[idx] === 'undefined') {\r\n this.composition.push(new SimulationVariable(composition[idx], this.ownerCase, this));\r\n }\r\n }\r\n\r\n this.setCompositionNames();\r\n }\r\n\r\n getCompositionElement(name: string): SimulationVariable {\r\n return this.composition.find(sv => sv.name === name);\r\n }\r\n\r\n setCompositionNames() {\r\n const names = [\r\n 'CO',\r\n 'CO2',\r\n 'H2',\r\n 'N2',\r\n 'H2S',\r\n 'SO2',\r\n 'Methane',\r\n 'Ethane',\r\n 'Propane',\r\n 'IC4',\r\n 'NC4',\r\n 'IC5',\r\n 'NC5',\r\n 'C6+',\r\n ];\r\n if (this.composition.length === 14) {\r\n for (let idx = 0; idx < 14; idx++) {\r\n this.composition[idx].setName(names[idx]);\r\n }\r\n }\r\n }\r\n\r\n setQuantities() {\r\n for (const sv of this.composition) {\r\n sv.setQuantity('MoleFraction');\r\n }\r\n\r\n this.quantity = 'MoleFraction';\r\n }\r\n\r\n override detectChanges(another: GasFluidAnalysis) {\r\n let changes = super.detectChanges(another);\r\n\r\n for (let idx = 0; idx < another.composition.length; idx++) {\r\n changes = changes || this.composition[idx].detectValueChange(another.composition[idx]);\r\n }\r\n return changes;\r\n }\r\n\r\n override getSimVars() {\r\n const simVars = super.getSimVars();\r\n for (const ce of this.composition) {\r\n simVars.push(ce);\r\n }\r\n\r\n return simVars;\r\n }\r\n\r\n protected override isPropertyBlackListed(property: any): boolean {\r\n return property instanceof Case || typeof property === 'function' || property === this.ownerBaseObject;\r\n }\r\n\r\n override getChildrenObjectsForRemoval(): BaseObject[] {\r\n return super.getChildrenObjectsForRemoval();\r\n }\r\n\r\n loadResourceData(resourceData: AssayManagerFluidAnalysisResourceData) {\r\n this.upperBound = resourceData.composition.upperBound;\r\n this.lowerBound = resourceData.composition.lowerBound;\r\n\r\n for (const sv of this.composition) {\r\n sv.upperBound = resourceData.composition.upperBound;\r\n sv.lowerBound = resourceData.composition.lowerBound;\r\n }\r\n }\r\n\r\n public toJSON(): any {\r\n const objectToSerialize: any = {};\r\n let val: any;\r\n for (val in this) {\r\n if (this[val] instanceof SimulationVariable) {\r\n objectToSerialize[val] = (<SimulationVariable>this[val]).id;\r\n } else if (this[val] === this.composition) {\r\n objectToSerialize.composition = [];\r\n for (const c of this.composition) {\r\n objectToSerialize.composition.push(c.id);\r\n }\r\n } else if (this.isPropertyBlackListed(this[val])) {\r\n // bruh\r\n } else {\r\n objectToSerialize[val] = this[val];\r\n }\r\n }\r\n\r\n return objectToSerialize;\r\n }\r\n\r\n override dePersist(gfa: any) {\r\n if (gfa.composition.length === 14) {\r\n for (let idx = 0; idx < 14; idx++) {\r\n this.composition.push(this.ownerCase.getSimulationVariable(gfa.composition[idx]));\r\n }\r\n this.setCompositionNames();\r\n }\r\n }\r\n}\r\n","import { BaseObject } from '../base-object';\r\nimport { Case } from '../case';\r\nimport { SuncorFluidAnalysis } from './suncor-fluid-analysis';\r\nimport { GasFluidAnalysis } from './gas-fluid-analysis';\r\nimport { isTypeUndefined } from '../../_utils/utils';\r\n\r\nexport class AssayManager extends BaseObject {\r\n category = 'assayManager';\r\n fluidAnalyses: Array<SuncorFluidAnalysis | GasFluidAnalysis> = [];\r\n currentAnalysisId: string;\r\n\r\n constructor(assayManager: any, ownerCase: Case) {\r\n super(assayManager.id, ownerCase);\r\n\r\n if (assayManager.fluidAnalyses instanceof Array) {\r\n for (const fluidAnalysis of assayManager.fluidAnalyses) {\r\n if (fluidAnalysis instanceof SuncorFluidAnalysis || fluidAnalysis instanceof GasFluidAnalysis) {\r\n this.fluidAnalyses.push(fluidAnalysis);\r\n }\r\n }\r\n }\r\n this.currentAnalysisId = assayManager.currentAnalysisId || '';\r\n }\r\n\r\n addFluidAnalysis(name: string, type: string): SuncorFluidAnalysis | GasFluidAnalysis {\r\n let fa: GasFluidAnalysis | SuncorFluidAnalysis;\r\n if (type === 'Gas') {\r\n fa = new GasFluidAnalysis({}, this.ownerCase, this);\r\n } else {\r\n fa = new SuncorFluidAnalysis({}, this.ownerCase, this);\r\n }\r\n\r\n fa.assayName = name;\r\n fa.assayType = type || 'Crude oil - Bitumen';\r\n\r\n // fa.loadResourceData(resourceData.fluidAnalysis);\r\n\r\n this.fluidAnalyses.push(fa);\r\n this.ownerCase.addToPools(fa);\r\n fa.addSimVarsToPool();\r\n return fa;\r\n }\r\n\r\n removeFluidAnalysis(id: string) {\r\n const analyses = this.fluidAnalyses.filter(fa => {\r\n return fa.id === id;\r\n });\r\n\r\n if (analyses.length) {\r\n const index = this.fluidAnalyses.indexOf(analyses[0]);\r\n\r\n if (index > -1) {\r\n this.fluidAnalyses.splice(index, 1);\r\n this.ownerCase.removeFromPools(analyses[0]);\r\n this.ownerCase.removeFluidAnalysis(id);\r\n this.ownerCase.assayManager.currentAnalysisId = '';\r\n }\r\n }\r\n }\r\n\r\n findFluidAnalysisById(id: String): any {\r\n return this.fluidAnalyses.find(fa => fa.id === id);\r\n }\r\n\r\n override setSimulationVariablesOwner(): void {\r\n super.setSimulationVariablesOwner();\r\n for (const fa of this.fluidAnalyses) {\r\n fa.setSimulationVariablesOwner();\r\n }\r\n }\r\n\r\n getAssaysByCategory(type: string) {\r\n return this.fluidAnalyses.filter(fa => {\r\n return fa.assayType === type;\r\n });\r\n }\r\n\r\n getAssayByName(name: string) {\r\n if (!isTypeUndefined(name)) {\r\n return this.fluidAnalyses.find(fa => {\r\n return fa.assayName.toLowerCase() === name.toLowerCase();\r\n });\r\n }\r\n return undefined;\r\n }\r\n\r\n getAllAssays() {\r\n return this.fluidAnalyses;\r\n }\r\n\r\n override dePersist(persistedObj: any) {\r\n if (persistedObj.fluidAnalyses) {\r\n for (let i = 0; i < persistedObj.fluidAnalyses.length; i++) {\r\n this.fluidAnalyses[i] = this.ownerCase.getOtherBaseObject(persistedObj.fluidAnalyses[i]) as\r\n | SuncorFluidAnalysis\r\n | GasFluidAnalysis;\r\n }\r\n }\r\n }\r\n\r\n cloneAssay(id: string) {\r\n const assay = this.findFluidAnalysisById(id);\r\n let clonedAssay: GasFluidAnalysis | SuncorFluidAnalysis;\r\n\r\n if (assay instanceof GasFluidAnalysis) {\r\n clonedAssay = new GasFluidAnalysis(assay, this.ownerCase, this);\r\n } else if (assay instanceof SuncorFluidAnalysis) {\r\n clonedAssay = new SuncorFluidAnalysis(assay, this.ownerCase, this);\r\n }\r\n\r\n clonedAssay.assayName = `${assay.assayName} cloned`;\r\n clonedAssay.id = (<any>window).uuid();\r\n\r\n const simvars = clonedAssay.getSimVars();\r\n simvars.forEach(simvar => {\r\n simvar.id = (<any>window).uuid();\r\n });\r\n\r\n if (clonedAssay instanceof SuncorFluidAnalysis) {\r\n clonedAssay.lightEndsCut.clearIds();\r\n clonedAssay.lightNaphthaCut.clearIds();\r\n clonedAssay.heavyNaphthaCut.clearIds();\r\n clonedAssay.distillateCut.clearIds();\r\n clonedAssay.LGOCut.clearIds();\r\n clonedAssay.HGOCut.clearIds();\r\n clonedAssay.VGOCut.clearIds();\r\n clonedAssay.HVGOCut.clearIds();\r\n clonedAssay.residCut.clearIds();\r\n }\r\n\r\n for (let i = 0; i < clonedAssay.composition.length; i++) {\r\n clonedAssay.composition[i].id = (<any>window).uuid();\r\n }\r\n clonedAssay.addSimVarsToPool();\r\n this.ownerCase.addToPools(clonedAssay);\r\n this.fluidAnalyses.push(clonedAssay);\r\n return clonedAssay;\r\n }\r\n\r\n public toJSON(): any {\r\n return {\r\n id: this.id,\r\n category: this.category,\r\n fluidAnalyses: this.fluidAnalyses.map(fa => fa.id),\r\n currentAnalysisId: this.currentAnalysisId,\r\n };\r\n }\r\n}\r\n","import { BaseObject } from '../base-object';\r\nimport { Case } from '../case';\r\nimport { CaseStudyCategory } from '../_case-study/case-study-category';\r\nimport { CaseStudyManager } from '../_case-study/case-study-manager';\r\nimport { MultiPeriodParameter } from './multi-period-parameter';\r\nimport { KeyValueObject } from '../key-value-object';\r\n\r\nexport class MultiPeriodSettings extends BaseObject {\r\n category = 'multiPeriodSettings';\r\n\r\n numberOfSteps: number;\r\n evaluateInventory: boolean;\r\n multiPeriodParameters: MultiPeriodParameter[] = [];\r\n multiPeriodResults: KeyValueObject<number>[] = [];\r\n\r\n categories: Array<CaseStudyCategory> = [];\r\n\r\n constructor(multiPeriodSettings: MultiPeriodSettings | any, ownerCase: Case) {\r\n super(multiPeriodSettings.id, ownerCase);\r\n this.numberOfSteps = multiPeriodSettings.numberOfSteps;\r\n this.evaluateInventory = !!multiPeriodSettings.evaluateInventory;\r\n }\r\n\r\n addToCategories(category: CaseStudyCategory): void {\r\n this.categories.push(category);\r\n }\r\n\r\n getMultiPeriodProvidersByCategoryName(categoryName: string): Array<BaseObject> {\r\n let selectedCategory: CaseStudyCategory = null;\r\n\r\n for (const category of this.categories) {\r\n if (category.categoryName === categoryName) {\r\n selectedCategory = category;\r\n }\r\n }\r\n\r\n return this.caseStudyManager.getMultiPeriodProvidersForCategory(selectedCategory);\r\n }\r\n\r\n addMultiPeriodParameter(simulationVariableId: string) {\r\n const sv = this.ownerCase.getSimulationVariable(simulationVariableId);\r\n\r\n if (this.multiPeriodParameters.find(p => p.simulationVariable === sv)) {\r\n return;\r\n }\r\n\r\n const mpp = new MultiPeriodParameter({ simulationVariable: sv }, this.ownerCase);\r\n\r\n this.multiPeriodParameters.push(mpp);\r\n this.ownerCase.addToPools(mpp);\r\n }\r\n\r\n removeMultiPeriodParameter(id: string) {\r\n const index = this.multiPeriodParameters.findIndex(p => p.id === id);\r\n\r\n if (index > -1) {\r\n this.multiPeriodParameters.splice(index, 1);\r\n }\r\n }\r\n\r\n removeMultiPeriodParameterBySimulationVariableId(simulationVariableId: string) {\r\n const index = this.multiPeriodParameters.findIndex(p => p.simulationVariable.id === simulationVariableId);\r\n\r\n if (index > -1) {\r\n this.multiPeriodParameters.splice(index, 1);\r\n }\r\n }\r\n\r\n get caseStudyManager(): CaseStudyManager {\r\n return this.ownerCase.caseStudyManager;\r\n }\r\n\r\n override dePersist(persistedObj: any) {\r\n for (const pId of persistedObj.multiPeriodParameters) {\r\n const mpp = this.ownerCase.getOtherBaseObject(pId) as MultiPeriodParameter;\r\n if (mpp) {\r\n this.multiPeriodParameters.push(mpp);\r\n }\r\n }\r\n\r\n this.multiPeriodResults = persistedObj.multiPeriodResults;\r\n }\r\n\r\n public toJSON(): any {\r\n return {\r\n category: this.category,\r\n id: this.id,\r\n numberOfSteps: this.numberOfSteps,\r\n evaluateInventory: this.evaluateInventory,\r\n multiPeriodParameters: this.multiPeriodParameters.map((mpp: MultiPeriodParameter) => mpp.id),\r\n multiPeriodResults: this.multiPeriodResults,\r\n };\r\n }\r\n}\r\n","import { CaseSettings } from './case-settings';\r\nimport { Case } from './case';\r\nimport { CaseStudyManager } from './_case-study/case-study-manager';\r\nimport { KpiManager } from './_case-study/kpi-manager';\r\nimport { ObjectiveFunction } from './_optimization/objective-function';\r\nimport { SuncorCalculator } from './suncor-calculator';\r\nimport { Flowsheet } from './flowsheet-manager/flowsheet';\r\nimport { AssayManager } from './_fluid/assay-manager';\r\nimport { MultiPeriodSettings } from './_multi-period/multi-period-settings';\r\n\r\nexport class Project {\r\n cases: Array<Case> = [];\r\n version: string;\r\n name: string;\r\n\r\n fileName: string;\r\n\r\n createCase(): Case {\r\n const c = new Case({});\r\n this.cases.push(c);\r\n return c;\r\n }\r\n\r\n createEmptyCase(): Case {\r\n const c = this.createCase();\r\n\r\n c.calculator = new SuncorCalculator({}, c);\r\n c.addToPools(c.calculator);\r\n c.calculator.addSimVarsToPool();\r\n\r\n c.caseSettings = new CaseSettings({}, c);\r\n c.caseSettings.setDefaultValues();\r\n c.addToPools(c.caseSettings);\r\n c.caseSettings.addSimVarsToPool();\r\n\r\n c.caseStudyManager = new CaseStudyManager({}, c);\r\n c.addToPools(c.caseStudyManager);\r\n\r\n c.assayManager = new AssayManager({}, c);\r\n c.addToPools(c.assayManager);\r\n\r\n c.caseStudyManager.kpiManager = new KpiManager({}, c);\r\n c.initCaseStudyManagerCategories();\r\n c.addToPools(c.caseStudyManager.kpiManager); // does this make sense?\r\n c.caseStudyManager.kpiManager.addDefaultKpis(c.calculator);\r\n\r\n c.objectiveFunction = new ObjectiveFunction({}, c);\r\n c.addToPools(c.objectiveFunction);\r\n c.name = 'Empty case';\r\n c.setActiveFlowsheet(new Flowsheet({}, c));\r\n c.setMainFlowsheetId(c.getActiveFlowsheet().id);\r\n c.addToPools(c.getActiveFlowsheet());\r\n\r\n c.multiPeriodSettings = new MultiPeriodSettings({}, c);\r\n c.initMultiPeriodCategories();\r\n c.addToPools(c.multiPeriodSettings);\r\n c.multiPeriodSettings.addSimVarsToPool();\r\n\r\n return c;\r\n }\r\n\r\n addCase(c: Case) {\r\n this.cases.push(c);\r\n }\r\n\r\n findCaseById(id: string) {\r\n return this.cases.find(c => c.id === id);\r\n }\r\n\r\n findCaseIndexById(id: string) {\r\n return this.cases.findIndex(c => c.id === id);\r\n }\r\n\r\n toJSON() {\r\n return {\r\n cases: this.cases,\r\n version: this.version,\r\n name: this.name,\r\n };\r\n }\r\n}\r\n","import { SolveCanceller } from './solve-canceller';\r\nimport { ApiService } from '../_services/api.service';\r\n\r\nexport class SolveCaseCanceller implements SolveCanceller {\r\n apiService: ApiService;\r\n\r\n constructor(apiService: ApiService) {\r\n this.apiService = apiService;\r\n }\r\n\r\n cancelSolve() {\r\n this.apiService.cancelSolveCase();\r\n }\r\n}\r\n","import { CaseResultsBackup } from './case-results-backup';\r\nimport { Case } from './case';\r\nimport { UncertaintyAnalysis } from './_case-study/uncertainty-analysis';\r\nimport { ParametricStudy } from './_case-study/parametric-study';\r\n\r\nexport class ApiObjectsBackupManager {\r\n /**\r\n * Cleans the results of a case and saves them into a backup object\r\n * a backup object containing the results and other stuff that is not needed when solving a case.\r\n * @returns\r\n * @param c\r\n */\r\n static cleanAndCreateBackupObject(c: Case): CaseResultsBackup {\r\n // remove the calculator\r\n const { calculator } = c;\r\n c.removeFromPools(calculator);\r\n\r\n return {\r\n ownerCase: c,\r\n calculator,\r\n };\r\n }\r\n\r\n static restoreBackupData(backupObject: CaseResultsBackup) {\r\n const c = backupObject.ownerCase;\r\n\r\n c.calculator = backupObject.calculator;\r\n c.addToPools(c.calculator);\r\n c.calculator.addSimVarsToPool();\r\n }\r\n\r\n static restoreRemovedAnalyses(removedAnalyses: Array<UncertaintyAnalysis>) {\r\n // TODO: Should the case be passed as parameter?\r\n for (const ua of removedAnalyses) {\r\n ua.ownerCase.caseStudyManager.uncertaintyAnalyses.push(ua);\r\n ua.ownerCase.addToPools(ua);\r\n ua.addParametersToPool();\r\n }\r\n }\r\n\r\n static removeOtherUncertaintyAnalyses(analysisToKeep: UncertaintyAnalysis): Array<UncertaintyAnalysis> {\r\n const analysesToRemove = analysisToKeep.ownerCase.caseStudyManager.uncertaintyAnalyses.filter(\r\n (ua: UncertaintyAnalysis) => {\r\n return ua.id !== analysisToKeep.id;\r\n }\r\n );\r\n\r\n for (const ua of analysesToRemove) {\r\n analysisToKeep.ownerCase.caseStudyManager.uncertaintyAnalyses.splice(\r\n analysisToKeep.ownerCase.caseStudyManager.uncertaintyAnalyses.indexOf(ua),\r\n 1\r\n );\r\n\r\n analysisToKeep.ownerCase.removeFromPools(ua);\r\n\r\n for (const p of ua.uncertainParameters) {\r\n analysisToKeep.ownerCase.removeFromPools(p);\r\n }\r\n }\r\n\r\n return analysesToRemove;\r\n }\r\n\r\n static removeParametricStudies(c: Case, studyToKeep?: ParametricStudy) {\r\n const csm = c.caseStudyManager;\r\n\r\n const studiesToRemove = csm.parametricStudies.filter(ps => {\r\n return studyToKeep ? studyToKeep.id !== ps.id : true;\r\n });\r\n\r\n for (const ps of studiesToRemove) {\r\n csm.parametricStudies.splice(csm.parametricStudies.indexOf(ps), 1);\r\n const p = ps.parameter;\r\n c.removeFromPools(ps);\r\n c.removeFromPools(p);\r\n ps.parameter = p; // wat, seems removal from pools deletes the parameter property from owner study...\r\n }\r\n\r\n return studiesToRemove;\r\n }\r\n\r\n static restoreRemovedStudies(c: Case, removedStudies: ParametricStudy[]) {\r\n for (const ps of removedStudies) {\r\n ps.ownerCase = c; // is this needed? maybe... after de serializing a case coming from the API\r\n c.addToPools(ps);\r\n c.caseStudyManager.parametricStudies.push(ps);\r\n\r\n // and the parameter\r\n if (ps.parameter) {\r\n c.addToPools(ps.parameter);\r\n }\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class LogManagerService {\r\n private logMessageSubject = new Subject();\r\n logMessageRequest = this.logMessageSubject.asObservable();\r\n\r\n private logSerializedMessagesSubject = new Subject();\r\n logSerializedMessagesRequest = this.logSerializedMessagesSubject.asObservable();\r\n\r\n private clearLogCounterSubject = new Subject();\r\n clearLogCounterRequest = this.clearLogCounterSubject.asObservable();\r\n\r\n private clearLogManagerSubject = new Subject();\r\n clearLogManagerRequest = this.clearLogManagerSubject.asObservable();\r\n\r\n info(message: string): void {\r\n this.logMessageSubject.next({ message, severity: 'INFO', timestamp: new Date() });\r\n }\r\n\r\n warning(message: string): void {\r\n this.logMessageSubject.next({ message, severity: 'WARNING', timestamp: new Date() });\r\n }\r\n\r\n error(message: string): void {\r\n this.logMessageSubject.next({ message, severity: 'ERROR', timestamp: new Date() });\r\n }\r\n\r\n logSerializedMessages(serializedMessages: Array<any>) {\r\n this.logSerializedMessagesSubject.next(serializedMessages);\r\n }\r\n\r\n clearLogCounter() {\r\n this.clearLogCounterSubject.next();\r\n }\r\n\r\n clearLogManager() {\r\n this.clearLogManagerSubject.next();\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { ApiService } from '../../_services/api.service';\r\nimport { SolveCanceller } from '../../_models/solve-canceller';\r\n\r\n@Injectable()\r\nexport class ProgressIndicatorService {\r\n private apiService: ApiService;\r\n solveCanceller: SolveCanceller;\r\n\r\n private showSubject = new Subject();\r\n showRequest = this.showSubject.asObservable();\r\n\r\n private hideSubject = new Subject();\r\n hideRequest = this.hideSubject.asObservable();\r\n\r\n private cancelSubject = new Subject();\r\n cancelRequest = this.cancelSubject.asObservable();\r\n\r\n show(data?: { message?: string; showStopButton?: boolean; solveCanceller?: SolveCanceller }) {\r\n if (data) {\r\n this.solveCanceller = data.solveCanceller;\r\n }\r\n this.showSubject.next(data || {});\r\n }\r\n\r\n hide() {\r\n this.hideSubject.next();\r\n }\r\n\r\n cancel() {\r\n // this.apiService.cancelSolveCase();\r\n this.solveCanceller.cancelSolve();\r\n this.hide();\r\n this.solveCanceller = undefined;\r\n }\r\n\r\n setApiService(apiService: ApiService) {\r\n this.apiService = apiService;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Observable, Subject, Subscriber, SubscriptionLike as ISubscription } from 'rxjs';\r\nimport { Project } from '../_models/project';\r\nimport { ProgressIndicatorService } from '../flowsheet/progress-indicator/progress-indicator.service';\r\nimport { environment } from '../../environments/environment';\r\nimport { LogManagerService } from '../flowsheet/log-manager/log-manager.service';\r\nimport { UserService } from './user.service';\r\nimport { SolveCaseRequest } from '../_models/solve-case-request';\r\nimport { SolveCaseCanceller } from '../_models/solve-case-canceller';\r\nimport { ApiObjectsBackupManager } from '../_models/api-objects-backup-manager';\r\nimport { CaseResultsBackup } from '../_models/case-results-backup';\r\n\r\n@Injectable()\r\nexport class ApiService {\r\n request: ISubscription;\r\n solveCanceller: SolveCaseCanceller;\r\n private currentError;\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private logManager: LogManagerService,\r\n private progressIndicator: ProgressIndicatorService,\r\n private userService: UserService\r\n ) {\r\n this.solveCanceller = new SolveCaseCanceller(this);\r\n }\r\n\r\n readResourceFile() {\r\n return this.http.get('/assets/resources.json');\r\n }\r\n\r\n solveCase(project: Project, caseId): Observable<any> {\r\n const currentCase = project.cases.find(c => c.id === caseId);\r\n const flowsheets = currentCase.flowsheetPool;\r\n const activeFlowsheet = currentCase.getActiveFlowsheet();\r\n const dataToSend: SolveCaseRequest = {\r\n solveOption: currentCase.solveOption,\r\n version: project.version,\r\n caseModel: currentCase,\r\n username: this.userService.getCurrentUserFullName(),\r\n email: this.userService.currentUsername,\r\n userId: this.userService.getCurrentUserId(),\r\n };\r\n\r\n // TODO remove this heresy\r\n const solveSubject = new Subject<any>();\r\n const solveObservable = solveSubject.asObservable();\r\n let timeToGetResponse = performance.now();\r\n\r\n this.request = this.http.post(environment.apiUrl, dataToSend, { headers: this.getHeaders() }).subscribe(\r\n response => {\r\n if ((<any>response).stacktrace) {\r\n solveSubject.next({ success: false, error: response });\r\n this.currentError = response;\r\n } else {\r\n timeToGetResponse = performance.now() - timeToGetResponse;\r\n solveSubject.next({\r\n success: true,\r\n solvedResponse: response,\r\n backupFlowsheets: flowsheets,\r\n activeFlowsheet: activeFlowsheet.id,\r\n timeToGetResponse,\r\n });\r\n }\r\n },\r\n error => {\r\n solveSubject.next({ success: false, error });\r\n\r\n if (error.error) {\r\n this.currentError = error.error;\r\n } else {\r\n this.currentError = error;\r\n }\r\n\r\n // return this.handleSolveCaseError(backupObject);\r\n }\r\n );\r\n\r\n return solveObservable;\r\n }\r\n\r\n /**\r\n *\r\n * @param {Project} project A project containing the case that failed.\r\n * @returns {Observable<any>}\r\n */\r\n sendCaseToProcessEcology(formData): Observable<any> {\r\n const obs = new Observable(observer => {\r\n formData.then(data => {\r\n data.append('error', this.currentError);\r\n data.append('user', JSON.stringify(this.userService.getCurrentUser()));\r\n data.append('errorMessage', this.currentError.stackTrace ? '' : JSON.stringify(this.currentError));\r\n this.http.post(environment.sendCaseUrl, data, { headers: this.getMultipartHeaders() }).subscribe(\r\n () => {\r\n observer.next();\r\n },\r\n () => {\r\n observer.error();\r\n }\r\n );\r\n });\r\n });\r\n return obs;\r\n }\r\n\r\n solveCaseAsync(formData, caseToBeSolvedId: string): Observable<any> {\r\n return new Observable(observer => {\r\n formData.then(data => {\r\n data.append('user', JSON.stringify(this.userService.getCurrentUser()));\r\n data.append('caseToBeSolvedId', caseToBeSolvedId);\r\n this.sendSolveAsyncRequest(data, observer);\r\n });\r\n });\r\n }\r\n\r\n private sendSolveAsyncRequest(data, observer: Subscriber<any>) {\r\n this.http.post(environment.simulationAsync, data, { headers: this.getMultipartHeaders() }).subscribe(\r\n response => {\r\n observer.next({ success: true, solvedResponse: response });\r\n },\r\n error => {\r\n observer.error();\r\n }\r\n );\r\n }\r\n\r\n cancelSolveCase(): void {\r\n this.request.unsubscribe();\r\n\r\n // Insert api call to stop the engine here\r\n\r\n this.logManager.warning('Solving case canceled by user.');\r\n }\r\n\r\n private getHeaders() {\r\n return new HttpHeaders().set('Accept', 'application/json');\r\n }\r\n\r\n private getMultipartHeaders() {\r\n return new HttpHeaders().set('enctype', 'multipart/form-data');\r\n }\r\n\r\n handleSolveCaseError(backupObject: CaseResultsBackup): void {\r\n ApiObjectsBackupManager.restoreBackupData(backupObject);\r\n }\r\n}\r\n","import { BaseStream } from '../_streams/base-stream';\r\n\r\nexport abstract class GojsBaseStream {\r\n category: string;\r\n id: string;\r\n linkKey: number;\r\n from: number;\r\n to: number;\r\n fromPort: string;\r\n toPort: string;\r\n name: string;\r\n connectionName: string;\r\n streamColor: string;\r\n dashedLine: boolean;\r\n\r\n protected constructor(s: BaseStream) {\r\n this.id = s.id;\r\n this.linkKey = s.key;\r\n this.from = s.inletUnitOperation.key;\r\n this.to = s.outletUnitOperation.key;\r\n this.fromPort = s.fromPort;\r\n this.toPort = s.toPort;\r\n this.name = s.name || s.connectionName;\r\n this.connectionName = s.connectionName;\r\n this.streamColor = s.streamColor;\r\n }\r\n}\r\n","import { SuncorMaterialStream } from '../_streams/suncor-material-stream';\r\nimport { GojsBaseStream } from './gojs-base-stream';\r\nimport { StreamCategory } from '../../_config/stream-category.enum';\r\n\r\ndeclare let unitConverter: any;\r\n\r\nexport class GojsSuncorMaterialStream extends GojsBaseStream {\r\n override category = StreamCategory.MATERIAL_STREAM;\r\n volumetricFlowrate: string;\r\n volumetricFlowrateUnit: string;\r\n ghgIntensity: string;\r\n ghgIntensityUnit: string;\r\n price: string;\r\n priceUnit: string;\r\n\r\n constructor(s: SuncorMaterialStream) {\r\n super(s);\r\n\r\n this.volumetricFlowrateUnit = unitConverter.units.Volumetricflowrate.KBPCD;\r\n this.volumetricFlowrate = s.volumetricFlowrate.convertToAnotherUnit(this.volumetricFlowrateUnit, true);\r\n\r\n this.ghgIntensityUnit = unitConverter.units.MassPerVolume.KG_BBL;\r\n this.ghgIntensity = s.ghgIntensity.convertToAnotherUnit(this.ghgIntensityUnit, true);\r\n\r\n this.priceUnit = unitConverter.units.CurrencyPerVolume.CAD_BBL;\r\n this.price = s.price.convertToAnotherUnit(this.priceUnit, true);\r\n\r\n this.dashedLine = !s.hasFlowrate();\r\n }\r\n}\r\n","import { SuncorUnitOperation } from '../_unit-operations/suncor-unit-operation';\r\nimport { ConstrainableObject, isConstrainableObject } from '../_interfaces/constrainable-object';\r\nimport { Pipe } from '../_unit-operations/pipe';\r\nimport { WaterUtilityUnitOperation } from '../_unit-operations/utilties/water-utility-unit-operation';\r\nimport { FuelGasUtilityUnitOperation } from '../_unit-operations/fuel-gas/fuel-gas-utility-unit-operation';\r\nimport { UnitOperationReadiness } from '../../_config/unit-operations/unit-operation-readiness';\r\nimport { UnitOperation } from '../unit-operation';\r\n\r\nclass ConstraintTextSolver {\r\n static solveText(uo: SuncorUnitOperation & ConstrainableObject) {\r\n const c = uo.ownerCase;\r\n const inletStream = c.filterSuncorMaterialStreams(s => {\r\n return s.outletUnitOperationId === uo.id;\r\n })[0];\r\n\r\n const valuesTextInfo: ConstraintTextInfo[] = [];\r\n\r\n valuesTextInfo[0] = {\r\n variableName: uo.capacity.name,\r\n variableValue: uo.capacity.convertToDefaultUnit(true, true),\r\n unit: uo.capacity.getDefaultUnit(),\r\n constraintName: 'Vol. flow rate',\r\n constraintValue: inletStream ? inletStream.volumetricFlowrate.convertToDefaultUnit(true, true) : undefined,\r\n };\r\n\r\n if (uo instanceof Pipe) {\r\n valuesTextInfo[1] = {\r\n variableName: uo.pipeDensitySpec.name,\r\n variableValue: uo.pipeDensitySpec.convertToDefaultUnit(true, true),\r\n unit: uo.pipeDensitySpec.getDefaultUnit(),\r\n constraintName: 'Mass Density',\r\n constraintValue: inletStream ? inletStream.massDensity.convertToDefaultUnit(true, true) : undefined,\r\n };\r\n }\r\n\r\n return valuesTextInfo;\r\n }\r\n}\r\n\r\nexport class GojsUnitOperation {\r\n id: string;\r\n name: string;\r\n\r\n key: number;\r\n location: number[];\r\n category: string;\r\n isSolved: boolean;\r\n readiness: UnitOperationReadiness;\r\n\r\n constraintInfo: ConstraintInfo;\r\n\r\n constructor(uo: UnitOperation) {\r\n this.id = uo.id;\r\n this.name = uo.name;\r\n\r\n this.location = uo.location;\r\n this.key = uo.key;\r\n this.category = uo.category;\r\n this.readiness = uo.readiness;\r\n\r\n if (uo instanceof WaterUtilityUnitOperation) {\r\n this.isSolved = uo.isSolved;\r\n }\r\n if (uo instanceof FuelGasUtilityUnitOperation) {\r\n this.isSolved = uo.isSolved;\r\n }\r\n\r\n if (isConstrainableObject(uo)) {\r\n const co = uo as SuncorUnitOperation & ConstrainableObject;\r\n\r\n this.constraintInfo = {\r\n constraintValueDefined: co.constraintValueDefined(),\r\n statusText: co.constraintViolated() ? 'Constraint violated' : 'Constraint value defined',\r\n valuesTextInfo: ConstraintTextSolver.solveText(co),\r\n constraintColor: '',\r\n };\r\n\r\n if (this.constraintInfo.constraintValueDefined) {\r\n if (uo.ownerCase.isSolved) {\r\n if (co.constraintViolated()) {\r\n this.constraintInfo.constraintColor = 'red';\r\n } else {\r\n this.constraintInfo.constraintColor = 'green';\r\n }\r\n } else {\r\n this.constraintInfo.constraintColor = 'orange';\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\ninterface ConstraintInfo {\r\n constraintColor: string;\r\n constraintValueDefined: boolean;\r\n statusText: string;\r\n valuesTextInfo: ConstraintTextInfo[];\r\n}\r\n\r\ninterface ConstraintTextInfo {\r\n variableName: string;\r\n variableValue: string;\r\n constraintName: string;\r\n constraintValue: string;\r\n unit: string;\r\n}\r\n","import { UnitOperationConstraints } from '../_unit-operations/unit-operation-constraints';\r\n\r\nexport interface ConstrainableObject {\r\n constraints: UnitOperationConstraints;\r\n constraintViolated(): boolean;\r\n constraintValueDefined(): boolean;\r\n initConstraints();\r\n}\r\n\r\nexport function isConstrainableObject(co: any): co is ConstrainableObject {\r\n return typeof (co as ConstrainableObject).constraintViolated === 'function';\r\n}\r\n","import { WaterMaterialStream } from '../_streams/water-material-stream';\r\nimport { GojsBaseStream } from './gojs-base-stream';\r\nimport { StreamCategory } from '../../_config/stream-category.enum';\r\n\r\ndeclare let unitConverter: any;\r\n\r\nexport class GojsWaterMaterialStream extends GojsBaseStream {\r\n override category = StreamCategory.WATER_MATERIAL_STREAM;\r\n massFlowrate: string;\r\n massFlowrateUnit: string;\r\n\r\n temperature: string;\r\n temperatureUnit: string;\r\n\r\n pressure: string;\r\n pressureUnit: string;\r\n\r\n constructor(s: WaterMaterialStream) {\r\n super(s);\r\n\r\n this.massFlowrateUnit = unitConverter.units.Massflowrate.KPPH;\r\n this.massFlowrate = s.massFlowrate.convertToAnotherUnit(this.massFlowrateUnit, true);\r\n\r\n this.temperatureUnit = s.temperature.getDefaultUnit();\r\n this.temperature = s.temperature.convertToDefaultUnit(true, true);\r\n\r\n this.pressureUnit = s.pressure.getDefaultUnit();\r\n this.pressure = s.pressure.convertToDefaultUnit(true, true);\r\n\r\n this.dashedLine = !s.hasFlowrate();\r\n }\r\n}\r\n","import { StreamCategory } from '../../_config/stream-category.enum';\r\nimport { GojsBaseStream } from './gojs-base-stream';\r\nimport { FuelGasMaterialStream } from '../_streams/fuel-gas-material-stream';\r\n\r\nexport class GojsFuelGasMaterialStream extends GojsBaseStream {\r\n override category = StreamCategory.FUEL_GAS_MATERIAL_STREAM;\r\n flowrate: string;\r\n flowrateUnit: string;\r\n heatFlow: string;\r\n heatFlowUnit: string;\r\n lhv: string;\r\n lhvUnit: string;\r\n\r\n constructor(s: FuelGasMaterialStream) {\r\n super(s);\r\n\r\n this.flowrate = s.flowrate.convertToDefaultUnit(true, true);\r\n this.flowrateUnit = s.flowrate.getDefaultUnit();\r\n\r\n this.heatFlow = s.heatFlow.convertToDefaultUnit(true, true);\r\n this.heatFlowUnit = s.heatFlow.getDefaultUnit();\r\n\r\n this.lhv = s.lhv.convertToDefaultUnit(true, true);\r\n this.lhvUnit = s.lhv.getDefaultUnit();\r\n\r\n this.dashedLine = !s.hasFlowrate();\r\n }\r\n}\r\n","import { BaseStream } from '../_streams/base-stream';\r\nimport { GojsSuncorMaterialStream } from './gojs-suncor-material-stream';\r\nimport { SuncorMaterialStream } from '../_streams/suncor-material-stream';\r\nimport { GojsBaseStream } from './gojs-base-stream';\r\nimport { WaterMaterialStream } from '../_streams/water-material-stream';\r\nimport { GojsWaterMaterialStream } from './gojs-water-material-stream';\r\nimport { FuelGasMaterialStream } from '../_streams/fuel-gas-material-stream';\r\nimport { GojsFuelGasMaterialStream } from './gojs-fuel-gas-material-stream';\r\n\r\nexport class GojsStreamFactory {\r\n static create(stream: BaseStream): GojsBaseStream {\r\n if (stream instanceof SuncorMaterialStream) {\r\n return new GojsSuncorMaterialStream(stream);\r\n }\r\n if (stream instanceof WaterMaterialStream) {\r\n return new GojsWaterMaterialStream(stream);\r\n }\r\n if (stream instanceof FuelGasMaterialStream) {\r\n return new GojsFuelGasMaterialStream(stream);\r\n }\r\n\r\n throw new Error(`Unknown stream type ${stream.category}`);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport * as go from 'gojs';\r\nimport { Diagram, DiagramEvent, GraphLinksModel, Model, Overview, Point } from 'gojs';\r\n\r\nimport { Case, UnitOperation } from '../../_models';\r\nimport { unitOperationsConfig } from '../../_config/unit-operations.config';\r\nimport { SuncorUnitOperation } from '../../_models/_unit-operations/suncor-unit-operation';\r\nimport { GojsSuncorMaterialStream } from '../../_models/_gojs/gojs-suncor-material-stream';\r\nimport { GojsUnitOperation } from '../../_models/_gojs/gojs-unit-operation';\r\nimport { Upgrader } from '../../_models/_unit-operations/upgrader';\r\nimport { BaseStream } from '../../_models/_streams/base-stream';\r\nimport { GojsStreamFactory } from '../../_models/_gojs/gojs-stream-factory';\r\nimport { isNullOrUndefined } from '../../_utils/utils';\r\nimport { GojsWaterMaterialStream } from '../../_models/_gojs/gojs-water-material-stream';\r\nimport { WaterUtilityUnitOperation } from '../../_models/_unit-operations/utilties/water-utility-unit-operation';\r\nimport { GojsFuelGasMaterialStream } from '../../_models/_gojs/gojs-fuel-gas-material-stream';\r\nimport { FuelGasUtilityUnitOperation } from '../../_models/_unit-operations/fuel-gas/fuel-gas-utility-unit-operation';\r\n\r\n@Injectable()\r\nexport class FlowsheetDiagramService {\r\n gojsDiagram: Diagram;\r\n overview: Overview;\r\n streamCategory: string; // defines the type of stream that will be created\r\n\r\n private clearCaseSubject = new Subject();\r\n clearCaseRequest = this.clearCaseSubject.asObservable();\r\n\r\n private contextClickOnNodeSubject = new Subject();\r\n contextClickOnNodeRequest = this.contextClickOnNodeSubject.asObservable();\r\n\r\n private doubleClickOnNodeSubject = new Subject();\r\n doubleClickOnNodeRequest = this.doubleClickOnNodeSubject.asObservable();\r\n\r\n private doubleClickOnLinkSubject = new Subject();\r\n doubleClickOnLinkRequest = this.doubleClickOnLinkSubject.asObservable();\r\n\r\n private doubleClickOnWaterLinkSubject = new Subject();\r\n doubleClickOnWaterLinkRequest = this.doubleClickOnWaterLinkSubject.asObservable();\r\n\r\n private doubleClickOnFuelGasLinkSubject = new Subject();\r\n doubleClickOnFuelGasLinkRequest = this.doubleClickOnFuelGasLinkSubject.asObservable();\r\n\r\n private connectionFromSplitterSubject = new Subject();\r\n connectionFromSplitterRequest = this.connectionFromSplitterSubject.asObservable();\r\n\r\n private connectionFromBitumenConversionSubject = new Subject();\r\n connectionFromBitumenConversionRequest = this.connectionFromBitumenConversionSubject.asObservable();\r\n\r\n private cutRatioVariableConnectionSubject = new Subject();\r\n cutRatioVariableConnectionRequest = this.cutRatioVariableConnectionSubject.asObservable();\r\n\r\n private connectionToMixerSubject = new Subject();\r\n connectionToMixerRequest = this.connectionToMixerSubject.asObservable();\r\n\r\n private linkCreatedSubject = new Subject();\r\n linkCreatedRequest = this.linkCreatedSubject.asObservable();\r\n\r\n private linkDeletedSubject = new Subject();\r\n linkDeletedRequest = this.linkDeletedSubject.asObservable();\r\n\r\n private mainMapCenterSubject = new Subject();\r\n mainMapCenterRequest = this.mainMapCenterSubject.asObservable();\r\n\r\n private nodeCreatedSubject = new Subject();\r\n nodeCreatedRequest = this.nodeCreatedSubject.asObservable();\r\n\r\n private nodeDeletedSubject = new Subject();\r\n nodeDeletedRequest = this.nodeDeletedSubject.asObservable();\r\n\r\n private nodeDraggedSubject = new Subject();\r\n nodeDraggedRequest = this.nodeDraggedSubject.asObservable();\r\n\r\n private updateModelSubject = new Subject();\r\n updateModelRequest = this.updateModelSubject.asObservable();\r\n\r\n setStreamCategory(category: string) {\r\n this.streamCategory = category;\r\n }\r\n\r\n // region Subject handling\r\n clearCaseResults() {\r\n this.clearCaseSubject.next();\r\n }\r\n\r\n contextClickOnNode(nodeId: string) {\r\n this.contextClickOnNodeSubject.next(nodeId);\r\n }\r\n\r\n doubleClickOnNode(nodeId: string) {\r\n this.doubleClickOnNodeSubject.next(nodeId);\r\n }\r\n\r\n doubleClickOnLink(linkId: string) {\r\n this.doubleClickOnLinkSubject.next(linkId);\r\n }\r\n\r\n doubleClickOnWaterLink(linkId: string) {\r\n this.doubleClickOnWaterLinkSubject.next(linkId);\r\n }\r\n\r\n doubleClickOnFuelGasLink(linkId: string) {\r\n this.doubleClickOnFuelGasLinkSubject.next(linkId);\r\n }\r\n\r\n linkDeleted(linkData: any) {\r\n const inletId = this.gojsDiagram.model.findNodeDataForKey(linkData.from)['id'];\r\n const outletId = this.gojsDiagram.model.findNodeDataForKey(linkData.to)['id'];\r\n\r\n this.linkDeletedSubject.next({ id: linkData.id, inletUnitOpId: inletId, outletUnitOpId: outletId });\r\n }\r\n\r\n nodeCreated(nodeData: any) {\r\n this.nodeCreatedSubject.next(nodeData);\r\n }\r\n\r\n nodeDragged(nodeData: any) {\r\n this.nodeDraggedSubject.next(nodeData);\r\n }\r\n\r\n addNodeData(nodeData: any) {\r\n this.gojsDiagram.model.startTransaction('addNewNode');\r\n this.gojsDiagram.model.addNodeData(nodeData);\r\n this.gojsDiagram.model.commitTransaction('addNewNode');\r\n this.gojsDiagram.requestUpdate();\r\n }\r\n\r\n nodeDeleted(nodeId: string) {\r\n this.nodeDeletedSubject.next(nodeId);\r\n }\r\n\r\n /**\r\n * Clears the current diagram and creates a new gojs model\r\n * @param {Case} c\r\n */\r\n drawDiagram(c: Case) {\r\n this.updateModelSubject.next(c);\r\n this.caseToGoJSModel(c);\r\n }\r\n\r\n /**\r\n * Used after clearing results, as the name says, updates all the unit operations info and thus, updating\r\n * all possible data bindings in the diagram\r\n * @param {Case} c\r\n */\r\n updateUnitOperationsInfoOnDiagram(c: Case) {\r\n // eslint-disable-next-line guard-for-in\r\n for (const uoId in c.unitOperationPool) {\r\n this.saveUnitOperationOnModel(c.getUnitOperation(uoId));\r\n }\r\n }\r\n\r\n // endregion\r\n\r\n // region diagram logic\r\n saveUnitOperationOnModel(uo: UnitOperation, data?: any) {\r\n const gojsUo = new GojsUnitOperation(uo as SuncorUnitOperation);\r\n\r\n let node;\r\n if (data) {\r\n node = this.gojsDiagram.findNodeForData(data);\r\n } else {\r\n node = this.gojsDiagram.findNodesByExample({ id: uo.id }).first();\r\n }\r\n\r\n if (node) {\r\n const nodeData = node.data;\r\n this.gojsDiagram.model.startTransaction('save');\r\n this.gojsDiagram.model.setDataProperty(nodeData, 'id', gojsUo.id);\r\n this.gojsDiagram.model.setDataProperty(nodeData, 'name', gojsUo.name);\r\n this.gojsDiagram.model.setDataProperty(nodeData, 'readiness', gojsUo.readiness);\r\n this.gojsDiagram.model.setDataProperty(nodeData, 'constraintInfo', gojsUo.constraintInfo);\r\n if (uo instanceof WaterUtilityUnitOperation) {\r\n this.gojsDiagram.model.setDataProperty(nodeData, 'isSolved', gojsUo.isSolved);\r\n }\r\n if (uo instanceof FuelGasUtilityUnitOperation) {\r\n this.gojsDiagram.model.setDataProperty(nodeData, 'isSolved', gojsUo.isSolved);\r\n }\r\n\r\n this.gojsDiagram.model.commitTransaction('save');\r\n }\r\n }\r\n\r\n saveStreamOnModel(s: BaseStream) {\r\n const linkData = (this.gojsDiagram.model as GraphLinksModel).findLinkDataForKey(s.key);\r\n const gs = GojsStreamFactory.create(s);\r\n\r\n this.gojsDiagram.model.startTransaction('saveStream');\r\n this.gojsDiagram.model.setDataProperty(linkData, 'category', gs.category);\r\n this.gojsDiagram.model.setDataProperty(linkData, 'id', gs.id);\r\n this.gojsDiagram.model.setDataProperty(linkData, 'streamColor', gs.streamColor);\r\n this.gojsDiagram.model.setDataProperty(linkData, 'name', gs.name);\r\n this.gojsDiagram.model.setDataProperty(linkData, 'inletUnitOperationId', s.inletUnitOperationId);\r\n this.gojsDiagram.model.setDataProperty(linkData, 'outletUnitOperationId', s.outletUnitOperationId);\r\n this.gojsDiagram.model.setDataProperty(linkData, 'connectionName', gs.connectionName);\r\n this.gojsDiagram.model.commitTransaction('saveStream');\r\n }\r\n\r\n /**\r\n * Finds all nodes marked as non deletable and makes them deletable\r\n */\r\n makeAllUnitOperationsDeletable() {\r\n const nonDeletableNodes = this.gojsDiagram.findNodesByExample({ deletable: false });\r\n\r\n nonDeletableNodes.each(node => {\r\n this.gojsDiagram.model.startTransaction('makeDeletable');\r\n this.gojsDiagram.model.setDataProperty(node.data, 'deletable', true);\r\n this.gojsDiagram.model.commitTransaction('makeDeletable');\r\n });\r\n }\r\n\r\n /**\r\n * Sets a node's deletable attribute as false, which will prevent deletion in the diagram\r\n * @param {UnitOperation} uo\r\n */\r\n preventUnitOperationDeletion(uo: UnitOperation) {\r\n const nodeData = this.gojsDiagram.model.findNodeDataForKey(uo.key);\r\n this.gojsDiagram.model.startTransaction('save');\r\n this.gojsDiagram.model.setDataProperty(nodeData, 'deletable', false);\r\n this.gojsDiagram.model.commitTransaction('save');\r\n }\r\n\r\n linkDrawn(e: DiagramEvent) {\r\n if (e.subject.fromNode.data.category === unitOperationsConfig.splitter.key) {\r\n this.connectionFromSplitterSubject.next({\r\n splitterId: e.subject.fromNode.data.id,\r\n unitOperationId: e.subject.toNode.data.id,\r\n });\r\n } else if (e.subject.toNode.data.category === unitOperationsConfig.mixer.key) {\r\n this.connectionToMixerSubject.next(e.subject.toNode.data);\r\n }\r\n\r\n if (e.subject.fromNode.data.category === unitOperationsConfig.waterSplitter.key) {\r\n this.connectionFromSplitterSubject.next({\r\n splitterId: e.subject.fromNode.data.id,\r\n unitOperationId: e.subject.toNode.data.id,\r\n });\r\n }\r\n\r\n if (e.subject.fromNode.data.category === unitOperationsConfig.fuelGasSplitter.key) {\r\n this.connectionFromSplitterSubject.next({\r\n splitterId: e.subject.fromNode.data.id,\r\n unitOperationId: e.subject.toNode.data.id,\r\n });\r\n }\r\n\r\n if (e.subject.fromNode.data.category === unitOperationsConfig.productTank.key) {\r\n this.connectionFromSplitterSubject.next({\r\n splitterId: e.subject.fromNode.data.id,\r\n unitOperationId: e.subject.toNode.data.id,\r\n });\r\n }\r\n if (\r\n e.subject.fromNode.data.category === unitOperationsConfig.dru.key ||\r\n e.subject.fromNode.data.category === unitOperationsConfig.vac.key\r\n ) {\r\n this.cutRatioVariableConnectionSubject.next({\r\n id: e.subject.fromNode.data.id,\r\n unitOperationId: e.subject.toNode.data.id,\r\n });\r\n }\r\n\r\n if (e.subject.toNode.data.category === unitOperationsConfig.commodityTank.key) {\r\n this.connectionFromSplitterSubject.next({\r\n splitterId: e.subject.toNode.data.id,\r\n unitOperationId: e.subject.fromNode.data.id,\r\n });\r\n }\r\n\r\n if (e.subject.fromNode.data.category === unitOperationsConfig.bitumenConversion.key) {\r\n this.connectionFromBitumenConversionSubject.next({\r\n id: e.subject.fromNode.data.id,\r\n unitOperationId: e.subject.toNode.data.id,\r\n });\r\n }\r\n\r\n if (\r\n e.subject.toNode.data.category === unitOperationsConfig.hydrotreater.key ||\r\n e.subject.toNode.data.category === unitOperationsConfig.separatedHydrotreater.key\r\n ) {\r\n this.connectionFromSplitterSubject.next({\r\n splitterId: e.subject.toNode.data.id,\r\n unitOperationId: e.subject.fromNode.data.id,\r\n });\r\n }\r\n\r\n this.linkCreatedSubject.next({\r\n inletUnitOperationId: e.subject.fromNode.data.id,\r\n outletUnitOperationId: e.subject.toNode.data.id,\r\n id: e.subject.data.id,\r\n fromPort: e.subject.data.fromPort,\r\n toPort: e.subject.data.toPort,\r\n key: e.subject.data.linkKey,\r\n category: this.streamCategory,\r\n isRecycleStream: false,\r\n });\r\n }\r\n\r\n // endregion\r\n\r\n private caseToGoJSModel(c: Case) {\r\n const nodeDataArray = [];\r\n const linkDataArray = [];\r\n const keyLessNodes = [];\r\n\r\n // eslint-disable-next-line guard-for-in\r\n for (const uoId in c.unitOperationPool) {\r\n const o = new GojsUnitOperation(c.unitOperationPool[uoId] as SuncorUnitOperation);\r\n\r\n // the tanks created in the API don't have a key value.\r\n if (isNullOrUndefined(o.key) || <any>o.key === '') {\r\n delete o.key;\r\n keyLessNodes.push(o);\r\n } else {\r\n nodeDataArray.push(o);\r\n }\r\n }\r\n\r\n // first add the nodes that have a key defined\r\n this.gojsDiagram.clear(); // this will destroy all the undo actions so far\r\n this.gojsDiagram.model.startTransaction('updateModel');\r\n this.gojsDiagram.model.addNodeDataCollection(nodeDataArray);\r\n this.gojsDiagram.model.commitTransaction('updateModel');\r\n\r\n // then, add the nodes that don't have a key at all\r\n for (const node of keyLessNodes) {\r\n this.addNodeData(node);\r\n c.getUnitOperation(node.id).key = node.key;\r\n }\r\n\r\n this.gojsDiagram.model.startTransaction('updateModel');\r\n // then, add the streams considering the nodes that hadn't a key\r\n\r\n const streamIds = c.getAllSuncorMaterialStreamIds();\r\n\r\n for (const id of streamIds) {\r\n const stream = c.getSuncorMaterialStream(id);\r\n\r\n if (!stream) {\r\n return;\r\n }\r\n\r\n linkDataArray.push(GojsStreamFactory.create(stream));\r\n }\r\n\r\n (this.gojsDiagram.model as GraphLinksModel).addLinkDataCollection(linkDataArray);\r\n this.gojsDiagram.model.commitTransaction('updateModel');\r\n\r\n this.gojsDiagram.moveParts(this.gojsDiagram.nodes, new Point(0, 0), false);\r\n }\r\n\r\n updateRecycleStreamData(ms: Case) {\r\n // eslint-disable-next-line guard-for-in\r\n for (const sId in ms.materialStreamPool) {\r\n const stream = ms.materialStreamPool[sId];\r\n const link = this.gojsDiagram.findNodesByExample({ id: stream.id }).first();\r\n if (link) {\r\n this.gojsDiagram.model.startTransaction('updateStreamData');\r\n this.gojsDiagram.model.setDataProperty(link.data, 'isRecycleStream', stream.isRecycleStream);\r\n this.gojsDiagram.model.commitTransaction('updateStreamData');\r\n }\r\n }\r\n }\r\n\r\n updateStreamData(c: Case, skipSimVars?: boolean) {\r\n // I could not find another way to update the link's data, setting the data to a GojsStream instance\r\n // would not work properly.\r\n // I know it's ugly\r\n\r\n const streamIds = c.getAllMaterialStreamIds();\r\n for (const sId of streamIds) {\r\n const stream = c.getMaterialStream(sId);\r\n\r\n if (!stream) {\r\n return;\r\n }\r\n\r\n const gojsLink = this.gojsDiagram.findLinksByExample({ id: stream.id }).first();\r\n const gojsStream = GojsStreamFactory.create(stream);\r\n if (gojsLink) {\r\n this.gojsDiagram.model.startTransaction('updateStream');\r\n\r\n if (!skipSimVars) {\r\n this.gojsDiagram.model.setDataProperty(gojsLink.data, 'dashedLine', gojsStream.dashedLine);\r\n\r\n if (gojsStream instanceof GojsSuncorMaterialStream) {\r\n this.gojsDiagram.model.setDataProperty(gojsLink.data, 'volumetricFlowrate', gojsStream.volumetricFlowrate);\r\n this.gojsDiagram.model.setDataProperty(\r\n gojsLink.data,\r\n 'volumetricFlowrateUnit',\r\n gojsStream.volumetricFlowrateUnit\r\n );\r\n this.gojsDiagram.model.setDataProperty(gojsLink.data, 'ghgIntensity', gojsStream.ghgIntensity);\r\n this.gojsDiagram.model.setDataProperty(gojsLink.data, 'ghgIntensityUnit', gojsStream.ghgIntensityUnit);\r\n } else if (gojsStream instanceof GojsWaterMaterialStream) {\r\n this.gojsDiagram.model.setDataProperty(gojsLink.data, 'massFlowrate', gojsStream.massFlowrate);\r\n this.gojsDiagram.model.setDataProperty(gojsLink.data, 'massFlowrateUnit', gojsStream.massFlowrateUnit);\r\n this.gojsDiagram.model.setDataProperty(gojsLink.data, 'temperature', gojsStream.temperature);\r\n this.gojsDiagram.model.setDataProperty(gojsLink.data, 'temperatureUnit', gojsStream.temperatureUnit);\r\n this.gojsDiagram.model.setDataProperty(gojsLink.data, 'pressure', gojsStream.pressure);\r\n this.gojsDiagram.model.setDataProperty(gojsLink.data, 'pressureUnit', gojsStream.pressureUnit);\r\n } else if (gojsStream instanceof GojsFuelGasMaterialStream) {\r\n this.gojsDiagram.model.setDataProperty(gojsLink.data, 'flowrate', gojsStream.flowrate);\r\n this.gojsDiagram.model.setDataProperty(gojsLink.data, 'flowrateUnit', gojsStream.flowrateUnit);\r\n this.gojsDiagram.model.setDataProperty(gojsLink.data, 'heatFlow', gojsStream.heatFlow);\r\n this.gojsDiagram.model.setDataProperty(gojsLink.data, 'heatFlowUnit', gojsStream.heatFlowUnit);\r\n this.gojsDiagram.model.setDataProperty(gojsLink.data, 'lhv', gojsStream.lhv);\r\n this.gojsDiagram.model.setDataProperty(gojsLink.data, 'lhvUnit', gojsStream.lhvUnit);\r\n }\r\n }\r\n\r\n this.gojsDiagram.model.setDataProperty(gojsLink.data, 'category', stream.category);\r\n this.gojsDiagram.model.setDataProperty(gojsLink.data, 'name', stream.name);\r\n this.gojsDiagram.model.setDataProperty(gojsLink.data, 'connectionName', gojsStream.connectionName);\r\n this.gojsDiagram.model.setDataProperty(gojsLink.data, 'inletUnitOperationId', stream.inletUnitOperationId);\r\n this.gojsDiagram.model.setDataProperty(gojsLink.data, 'outletUnitOperationId', stream.outletUnitOperationId);\r\n this.gojsDiagram.model.setDataProperty(gojsLink.data, 'isRecycleStream', stream.isRecycleStream);\r\n\r\n // this will actually synchronize the color from the stream object with the diagram model\r\n this.gojsDiagram.model.setDataProperty(gojsLink.data, 'streamColor', stream.streamColor);\r\n this.gojsDiagram.model.commitTransaction('updateStream');\r\n }\r\n }\r\n }\r\n\r\n zoomToFit() {\r\n this.gojsDiagram.zoomToFit();\r\n }\r\n\r\n hideDashedLineLinks() {\r\n this.gojsDiagram.links.each(link => {\r\n if (link.data.dashedLine) {\r\n link.opacity = 0;\r\n }\r\n });\r\n }\r\n\r\n showDashedLineLinks() {\r\n this.gojsDiagram.links.each(link => {\r\n if (link.data.dashedLine) {\r\n link.opacity = 1;\r\n }\r\n });\r\n }\r\n\r\n hideInactiveItems() {\r\n this.hideDashedLineLinks();\r\n this.gojsDiagram.nodes.each(node => {\r\n let hasActiveLinks = false;\r\n node.findLinksConnected().each(link => {\r\n if (!link.data.dashedLine) {\r\n hasActiveLinks = true;\r\n }\r\n });\r\n node.opacity = hasActiveLinks ? 1 : 0;\r\n });\r\n }\r\n\r\n showInactiveItems() {\r\n this.showDashedLineLinks();\r\n this.gojsDiagram.nodes.each(node => {\r\n node.opacity = 1;\r\n });\r\n }\r\n\r\n hideNodeLabels() {\r\n this.gojsDiagram.nodes.each(node => {\r\n node.data.hiddenLabel = true;\r\n node.updateTargetBindings();\r\n });\r\n }\r\n\r\n showNodeLabels() {\r\n this.gojsDiagram.nodes.each(node => {\r\n node.data.hiddenLabel = false;\r\n node.updateTargetBindings();\r\n });\r\n }\r\n\r\n getDiagramJson() {\r\n return this.gojsDiagram.model.toJson();\r\n }\r\n\r\n setDiagramModel(diagram: string) {\r\n this.gojsDiagram.model = Model.fromJson(diagram);\r\n }\r\n\r\n clearModel() {\r\n const nodeDataArray = [];\r\n // first add the nodes that have a key defined\r\n this.gojsDiagram.clear(); // this will destroy all the undo actions so far\r\n this.gojsDiagram.model.startTransaction('updateModel');\r\n this.gojsDiagram.model.addNodeDataCollection(nodeDataArray);\r\n this.gojsDiagram.model.commitTransaction('updateModel');\r\n }\r\n\r\n changeTemplate(unitOperationId: string, templateName: string) {\r\n const node = this.gojsDiagram.findNodesByExample({ id: unitOperationId }).first();\r\n this.gojsDiagram.model.setCategoryForNodeData(node.data, templateName);\r\n }\r\n\r\n deleteOutletStreams(unitOperationId: string) {\r\n const linksToDelete = [];\r\n const node = this.gojsDiagram.findNodesByExample({ id: unitOperationId }).first();\r\n const linksIterator = node.findLinksOutOf();\r\n linksIterator.each(link => {\r\n linksToDelete.push(link);\r\n });\r\n this.gojsDiagram.selectCollection(linksToDelete);\r\n this.gojsDiagram.commandHandler.deleteSelection();\r\n }\r\n\r\n updateUpgraders(upgraders: Upgrader[]) {\r\n upgraders.forEach(upgrader => {\r\n const node = this.gojsDiagram.findNodesByExample({ id: upgrader.id }).first();\r\n if (node.findPort('coker') !== node) {\r\n if (upgrader.hasTwoInlets) {\r\n this.changeTemplate(upgrader.id, unitOperationsConfig.multipleInletUpgrader.key);\r\n } else {\r\n this.changeTemplate(upgrader.id, unitOperationsConfig.level2Upgrader.key);\r\n }\r\n this.deleteInletStreams(upgrader.id);\r\n this.deleteOutletStreams(upgrader.id);\r\n }\r\n if (node.findPort('inlet1') !== node && upgrader.useSubFlowsheet) {\r\n this.changeTemplate(upgrader.id, unitOperationsConfig.flexibleUpgrader.key);\r\n this.deleteInletStreams(upgrader.id);\r\n }\r\n });\r\n }\r\n\r\n deleteInletStreams(unitOperationId: string) {\r\n const linksToDelete = [];\r\n const node = this.gojsDiagram.findNodesByExample({ id: unitOperationId }).first();\r\n const linksIterator = node.findLinksInto();\r\n linksIterator.each(link => {\r\n linksToDelete.push(link);\r\n });\r\n this.gojsDiagram.selectCollection(linksToDelete);\r\n this.gojsDiagram.commandHandler.deleteSelection();\r\n }\r\n\r\n zoomToUnitOperation(id: string) {\r\n const node = this.gojsDiagram.findNodesByExample({ id }).first();\r\n if (!node) {\r\n return;\r\n }\r\n this.gojsDiagram.select(node);\r\n const anim = new go.Animation();\r\n anim.add(node, 'scale', 1, 3);\r\n anim.reversible = true;\r\n anim.start();\r\n this.gojsDiagram.commandHandler.scrollToPart(node);\r\n }\r\n\r\n setMultiPeriodStyle(): void {\r\n $('#flowsheet-diagram-wrapper').css('background', '#D9D9D9');\r\n }\r\n\r\n setNormalStyle(): void {\r\n $('#flowsheet-diagram-wrapper').css('background', '#CCC');\r\n }\r\n\r\n setDiagramAsReadOnly(): void {\r\n this.gojsDiagram.isReadOnly = true;\r\n }\r\n\r\n setDiagramAsEditable(): void {\r\n this.gojsDiagram.isReadOnly = false;\r\n }\r\n}\r\n","import { Case } from '../case';\r\nimport { unitOperationsConfig } from '../../_config/unit-operations.config';\r\nimport { Splitter } from '../_unit-operations/splitter';\r\nimport { Upgrader } from '../_unit-operations/upgrader';\r\nimport { Refinery } from '../_unit-operations/refinery';\r\nimport { isTypeNumber } from '../../_utils/utils';\r\n\r\nexport class OldCaseValidator {\r\n static validate(c: Case) {\r\n const messages = OldCaseValidator.validateSplitters(c)\r\n .concat(OldCaseValidator.validateSources(c))\r\n .concat(OldCaseValidator.validateRefineries(c))\r\n .concat(OldCaseValidator.validatePipes(c))\r\n .concat(OldCaseValidator.validateUpgraders(c).concat(OldCaseValidator.validateHydrocrackers(c)));\r\n return { valid: !messages.length, messages };\r\n }\r\n\r\n static validateSplitters(c: Case) {\r\n const splitters = c.filterUnitOperations(uo => {\r\n return uo.category === unitOperationsConfig.splitter.key && !(<Splitter>uo).isOptimizable;\r\n }) as Splitter[];\r\n\r\n const messages: string[] = [];\r\n\r\n for (const s of splitters) {\r\n for (let i = 0; i < s.distributionRatioVariables.length; i++) {\r\n const drv = s.distributionRatioVariables[i];\r\n if (!isTypeNumber(drv.value)) {\r\n messages.push(\r\n `Please enter a valid distribution ratio for ${c.getUnitOperationName(drv.unitOperationId)} on ${s.name}`\r\n );\r\n }\r\n }\r\n }\r\n\r\n return messages;\r\n }\r\n\r\n static validateSources(c: Case) {\r\n const messages = [];\r\n const unitOperations = c.filterUnitOperations(uo => {\r\n return (\r\n uo.category === unitOperationsConfig.diluentSource.key ||\r\n uo.category === unitOperationsConfig.mine.key ||\r\n uo.category === unitOperationsConfig.offshore.key ||\r\n uo.category === unitOperationsConfig.sagd.key ||\r\n uo.category === unitOperationsConfig.thirdPartySource.key\r\n );\r\n });\r\n\r\n for (const uo of unitOperations) {\r\n if (c.filterSuncorMaterialStreams(s => s.inletUnitOperationId === uo.id).length !== 1) {\r\n messages.push(`Please define an outlet for ${uo.name}`);\r\n }\r\n }\r\n\r\n return messages;\r\n }\r\n\r\n static validateRefineries(c: Case) {\r\n const messages = [];\r\n const unitOperations = c.filterUnitOperations(uo => {\r\n return (\r\n uo.category === unitOperationsConfig.refinery.key || uo.category === unitOperationsConfig.thirdPartyRefinery.key\r\n );\r\n });\r\n for (const uo of unitOperations) {\r\n const refinery = uo as Refinery;\r\n if (refinery.hasTwoInlets) {\r\n if (c.filterSuncorMaterialStreams(s => s.outletUnitOperationId === uo.id).length !== 2) {\r\n messages.push(`Please define an inlet for ${uo.name}`);\r\n }\r\n } else if (c.filterSuncorMaterialStreams(s => s.outletUnitOperationId === uo.id).length !== 1) {\r\n messages.push(`Please define an inlet for ${uo.name}`);\r\n }\r\n }\r\n\r\n return messages;\r\n }\r\n\r\n static validatePipes(c: Case) {\r\n const messages = [];\r\n const unitOperations = c.findUnitOpsByCategory(unitOperationsConfig.pipe.key);\r\n\r\n for (const uo of unitOperations) {\r\n if (c.filterSuncorMaterialStreams(s => s.outletUnitOperationId === uo.id).length !== 1) {\r\n messages.push(`Please define an inlet for ${uo.name}`);\r\n }\r\n\r\n if (c.filterSuncorMaterialStreams(s => s.inletUnitOperationId === uo.id).length !== 1) {\r\n messages.push(`Please define an outlet for ${uo.name}`);\r\n }\r\n }\r\n\r\n return messages;\r\n }\r\n\r\n static validateHydrocrackers(c: Case) {\r\n const messages = [];\r\n const unitOperations = c.findUnitOpsByCategory(unitOperationsConfig.hydrocracker.key);\r\n\r\n for (const uo of unitOperations) {\r\n if (c.filterSuncorMaterialStreams(s => s.outletUnitOperationId === uo.id).length !== 1) {\r\n messages.push(`Please define an inlet for ${uo.name}`);\r\n }\r\n\r\n if (c.filterSuncorMaterialStreams(s => s.inletUnitOperationId === uo.id).length !== 5) {\r\n messages.push(`${uo.name} is not properly connected`);\r\n }\r\n }\r\n return messages;\r\n }\r\n\r\n static validateUpgraders(c: Case) {\r\n const messages = [];\r\n const unitOperations = c.findUnitOpsByCategory(unitOperationsConfig.upgrader.key);\r\n\r\n for (const uo of unitOperations) {\r\n const upgrader = uo as Upgrader;\r\n if (!upgrader.useSubFlowsheet) {\r\n if (c.filterSuncorMaterialStreams(s => s.outletUnitOperationId === uo.id).length === 0) {\r\n messages.push(`Please define an inlet for ${uo.name}`);\r\n }\r\n if (c.filterSuncorMaterialStreams(s => s.inletUnitOperationId === uo.id).length < 2) {\r\n messages.push(`Please define the outlets for ${uo.name}`);\r\n }\r\n } else {\r\n if (c.filterSuncorMaterialStreams(s => s.outletUnitOperationId === uo.id).length === 0) {\r\n messages.push(`Please define an inlet for ${uo.name}`);\r\n }\r\n if (c.filterSuncorMaterialStreams(s => s.inletUnitOperationId === uo.id).length === 0) {\r\n messages.push(`Please define the outlets for ${uo.name}`);\r\n }\r\n }\r\n }\r\n return messages;\r\n }\r\n}\r\n","export enum AppInfo {\r\n APP_VERSION = '2.82.0',\r\n FILE_VERSION = '2.3.0',\r\n}\r\n","import { BaseObject } from './base-object';\r\nimport { CaseSettings } from './case-settings';\r\nimport { Case } from './case';\r\nimport { CaseStudyManager } from './_case-study/case-study-manager';\r\nimport { KpiManager } from './_case-study/kpi-manager';\r\nimport { ObjectiveFunction } from './_optimization/objective-function';\r\nimport { SuncorCalculator } from './suncor-calculator';\r\nimport { ParametricStudy } from './_case-study/parametric-study';\r\nimport { Parameter } from './_case-study/parameter';\r\nimport { ParametricStudyParameter } from './_case-study/parametric-study-parameter';\r\nimport { UncertaintyAnalysis } from './_case-study/uncertainty-analysis';\r\nimport { UncertainParameter } from './_case-study/uncertain-parameter';\r\nimport { SimulationVariableArray } from './simulation-variable-array';\r\nimport { AssayManager } from './_fluid/assay-manager';\r\nimport { SuncorFluidAnalysis } from './_fluid/suncor-fluid-analysis';\r\nimport { WaterSourceInformationStream } from './_unit-operations/utilties/water-source-information-stream';\r\nimport { WaterPipeSegment } from './_unit-operations/utilties/water-pipe-segment';\r\nimport { GasFluidAnalysis } from './_fluid/gas-fluid-analysis';\r\nimport { EnergyStream } from './_unit-operations/fuel-gas/energy-stream';\r\nimport { FuelGasSourceInformationStream } from './_unit-operations/fuel-gas/fuel-gas-source-information-stream';\r\nimport { MultiPeriodSettings } from './_multi-period/multi-period-settings';\r\nimport { MultiPeriodParameter } from './_multi-period/multi-period-parameter';\r\n\r\nexport class BaseObjectFactory {\r\n static create(sourceObj: any, ownerCase: Case): BaseObject {\r\n let bo: BaseObject;\r\n\r\n switch (sourceObj.category) {\r\n case 'caseSettings':\r\n bo = new CaseSettings(sourceObj, ownerCase);\r\n break;\r\n\r\n case 'caseStudyManager':\r\n bo = new CaseStudyManager(sourceObj, ownerCase);\r\n break;\r\n\r\n case 'assayManager':\r\n bo = new AssayManager(sourceObj, ownerCase);\r\n break;\r\n\r\n case 'fluid-analysis':\r\n bo = new SuncorFluidAnalysis(sourceObj, ownerCase);\r\n break;\r\n\r\n case 'gas-fluid-analysis':\r\n bo = new GasFluidAnalysis(sourceObj, ownerCase);\r\n break;\r\n\r\n case 'kpiManager':\r\n bo = new KpiManager(sourceObj, ownerCase);\r\n break;\r\n\r\n case 'objectiveFunction':\r\n bo = new ObjectiveFunction(sourceObj, ownerCase);\r\n break;\r\n\r\n case 'suncorCalculator':\r\n bo = new SuncorCalculator(sourceObj, ownerCase);\r\n break;\r\n case 'parametricStudy':\r\n bo = new ParametricStudy(sourceObj, ownerCase);\r\n break;\r\n case 'parameter':\r\n bo = new Parameter(sourceObj, ownerCase);\r\n break;\r\n case 'parametricStudyParameter':\r\n bo = new ParametricStudyParameter(sourceObj, ownerCase);\r\n break;\r\n case 'uncertaintyAnalysis':\r\n bo = new UncertaintyAnalysis(sourceObj, ownerCase);\r\n break;\r\n case 'uncertainParameter':\r\n bo = new UncertainParameter(sourceObj, ownerCase);\r\n break;\r\n case 'simulationVariableArray':\r\n bo = new SimulationVariableArray(sourceObj, ownerCase, null);\r\n break;\r\n\r\n case 'water-source-information-stream':\r\n bo = new WaterSourceInformationStream(sourceObj, ownerCase);\r\n break;\r\n case 'waterPipeSegment':\r\n bo = new WaterPipeSegment(sourceObj, ownerCase);\r\n break;\r\n\r\n case 'multiPeriodSettings':\r\n bo = new MultiPeriodSettings(sourceObj, ownerCase);\r\n break;\r\n\r\n case 'multiPeriodParameter':\r\n bo = new MultiPeriodParameter(sourceObj, ownerCase);\r\n break;\r\n\r\n case 'energyStream':\r\n bo = new EnergyStream(sourceObj, ownerCase);\r\n break;\r\n case 'fuelGasSourceInformationStream':\r\n bo = new FuelGasSourceInformationStream(sourceObj, ownerCase);\r\n break;\r\n }\r\n\r\n return bo;\r\n }\r\n}\r\n","import { enumValuesToArray } from '../../_utils/enum-values-to-array';\r\nimport { Case, CaseSettings } from '../../_models';\r\nimport { BaseObjectFactory } from '../../_models/base-object-factory';\r\nimport { ObjectiveFunction } from '../../_models/_optimization/objective-function';\r\nimport { CaseStudyManager } from '../../_models/_case-study/case-study-manager';\r\nimport { KpiManager } from '../../_models/_case-study/kpi-manager';\r\nimport { SuncorCalculator } from '../../_models/suncor-calculator';\r\n\r\nenum BaseObjectHierarchy {\r\n TOP = 0,\r\n SECOND = 1,\r\n THIRD = 2,\r\n FOURTH = 3,\r\n}\r\n\r\nexport class OtherBaseObjectPoolDeserializer {\r\n private readonly arrangedPool;\r\n private readonly serializedCase;\r\n\r\n constructor(serializedCase) {\r\n this.arrangedPool = {};\r\n this.arrangePool(serializedCase.otherBaseObjectPool);\r\n this.serializedCase = serializedCase;\r\n }\r\n\r\n private arrangePool(serializedPool) {\r\n let i;\r\n for (i = 0; i < enumValuesToArray(BaseObjectHierarchy).length; i++) {\r\n this.arrangedPool[i] = [];\r\n }\r\n\r\n for (const id in serializedPool) {\r\n if (!serializedPool.hasOwnProperty(id)) {\r\n continue;\r\n }\r\n\r\n const current = serializedPool[id];\r\n\r\n switch (current.category) {\r\n case 'simulationVariableArray':\r\n this.arrangedPool[BaseObjectHierarchy.TOP].push(current);\r\n break;\r\n\r\n case 'multiPeriodParameter':\r\n this.arrangedPool[BaseObjectHierarchy.SECOND].push(current);\r\n break;\r\n case 'waterPipeSegment':\r\n this.arrangedPool[BaseObjectHierarchy.SECOND].push(current);\r\n break;\r\n\r\n case 'uncertainParameter':\r\n this.arrangedPool[BaseObjectHierarchy.SECOND].push(current);\r\n break;\r\n case 'ParametricStudyKpiResult':\r\n this.arrangedPool[BaseObjectHierarchy.SECOND].push(current);\r\n break;\r\n case 'parametricStudyParameter':\r\n this.arrangedPool[BaseObjectHierarchy.SECOND].push(current);\r\n break;\r\n\r\n case 'kpiManager':\r\n case 'uncertaintyAnalysis':\r\n case 'multiPeriodSettings':\r\n this.arrangedPool[BaseObjectHierarchy.THIRD].push(current);\r\n break;\r\n case 'parametricStudy':\r\n this.arrangedPool[BaseObjectHierarchy.THIRD].push(current);\r\n break;\r\n case 'fluid-analysis':\r\n this.arrangedPool[BaseObjectHierarchy.THIRD].push(current);\r\n break;\r\n case 'gas-fluid-analysis':\r\n this.arrangedPool[BaseObjectHierarchy.THIRD].push(current);\r\n break;\r\n\r\n default:\r\n this.arrangedPool[BaseObjectHierarchy.FOURTH].push(current);\r\n }\r\n }\r\n }\r\n\r\n deserializeSimulationVariableArrays(c: Case) {\r\n for (const serializedArray of this.arrangedPool[BaseObjectHierarchy.TOP]) {\r\n const sva = BaseObjectFactory.create(serializedArray, c);\r\n sva.dePersist(serializedArray);\r\n c.addToPools(sva);\r\n }\r\n }\r\n\r\n deserializeLowerHierarchyObjects(c: Case) {\r\n for (let i = 1; i < enumValuesToArray(BaseObjectHierarchy).length; i++) {\r\n const objectsInHierarchy = this.arrangedPool[i];\r\n\r\n for (const serializedObject of objectsInHierarchy) {\r\n const bo = BaseObjectFactory.create(serializedObject, c);\r\n bo.dePersist(serializedObject);\r\n c.addToPools(bo);\r\n }\r\n }\r\n\r\n // this.postDeserialization(c);\r\n }\r\n\r\n postDeserialization(c: Case) {\r\n c.caseSettings = <CaseSettings>c.getOtherBaseObject(this.serializedCase.caseSettings);\r\n\r\n if (!c.caseSettings) {\r\n c.caseSettings = new CaseSettings({}, c);\r\n c.addToPools(c.caseSettings);\r\n c.caseSettings.addSimVarsToPool();\r\n }\r\n\r\n c.objectiveFunction = <ObjectiveFunction>c.getOtherBaseObject(this.serializedCase.objectiveFunction);\r\n\r\n if (!c.objectiveFunction) {\r\n c.objectiveFunction = new ObjectiveFunction({}, c);\r\n c.addToPools(c.objectiveFunction);\r\n c.objectiveFunction.addSimVarsToPool();\r\n }\r\n c.caseStudyManager = <CaseStudyManager>c.getOtherBaseObject(this.serializedCase.caseStudyManager);\r\n if (!c.caseStudyManager) {\r\n c.caseStudyManager = new CaseStudyManager({}, c);\r\n c.caseStudyManager.kpiManager = new KpiManager({}, c);\r\n c.addToPools(c.caseStudyManager);\r\n }\r\n\r\n c.calculator = <SuncorCalculator>c.getOtherBaseObject(this.serializedCase.calculator);\r\n\r\n if (!c.calculator) {\r\n c.calculator = new SuncorCalculator({}, c);\r\n c.addToPools(c.calculator);\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ApiService } from './api.service';\r\nimport { SimulationVariableResourceData } from '../_models/_unit-operations/simulation-variable-resource-data';\r\nimport { AssayManagerResourceData } from '../_models/_fluid/assay-manager-resource-data';\r\n\r\ninterface ResourceDataFile {\r\n UnitOperations: any;\r\n AssayManager: any;\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ResourceDataService {\r\n resourceData: { [category: string]: SimulationVariableResourceData };\r\n assayManagerResourceData: AssayManagerResourceData;\r\n\r\n constructor(private apiService: ApiService) {}\r\n\r\n loadResourceFile() {\r\n this.resourceData = {};\r\n this.readResourceFile().subscribe((data: ResourceDataFile) => {\r\n this.resourceData = data.UnitOperations;\r\n this.assayManagerResourceData = data.AssayManager;\r\n });\r\n }\r\n\r\n readResourceFile() {\r\n return this.apiService.readResourceFile();\r\n }\r\n\r\n getUOResourceData(category) {\r\n if (this.resourceData.hasOwnProperty(category)) {\r\n return this.resourceData[category];\r\n }\r\n return null;\r\n }\r\n\r\n getAssayManagerResourceData(): AssayManagerResourceData {\r\n return this.assayManagerResourceData;\r\n }\r\n}\r\n","export class ConstraintViolationEntry {\r\n ownerOperationName: string;\r\n constraintViolationPercent: number;\r\n variableName: string;\r\n\r\n constructor(bo: any) {\r\n this.ownerOperationName = bo.ownerOperationName;\r\n this.constraintViolationPercent = bo.constraintViolationPercent;\r\n this.variableName = bo.variableName;\r\n }\r\n}\r\n","export class MarginalValueEntry {\r\n unitOperationName: string;\r\n variableName: string;\r\n value: number;\r\n unit: string;\r\n objFunctionChangeRate: number;\r\n objFunctionChangeRateUnit: string;\r\n ownerOperationId: string;\r\n\r\n constructor(entry: any) {\r\n this.unitOperationName = entry.unitOperationName;\r\n this.variableName = entry.variableName;\r\n this.value = entry.value;\r\n this.unit = entry.unit;\r\n this.objFunctionChangeRate = entry.objFunctionChangeRate;\r\n this.objFunctionChangeRateUnit = entry.objFunctionChangeRateUnit;\r\n this.ownerOperationId = entry.ownerOperationId;\r\n }\r\n}\r\n","import { BaseStream } from './base-stream';\r\nimport { SuncorMaterialStream } from './suncor-material-stream';\r\nimport { Case } from '../case';\r\nimport { WaterMaterialStream } from './water-material-stream';\r\nimport { StreamCategory } from '../../_config/stream-category.enum';\r\nimport { FuelGasMaterialStream } from './fuel-gas-material-stream';\r\n\r\nexport class StreamFactory {\r\n public static create(streamData, ownerCase: Case): BaseStream {\r\n switch (streamData.category) {\r\n case StreamCategory.MATERIAL_STREAM:\r\n default:\r\n return new SuncorMaterialStream(streamData, ownerCase);\r\n\r\n case StreamCategory.WATER_MATERIAL_STREAM:\r\n return new WaterMaterialStream(streamData, ownerCase);\r\n\r\n case StreamCategory.FUEL_GAS_MATERIAL_STREAM:\r\n return new FuelGasMaterialStream(streamData, ownerCase);\r\n }\r\n }\r\n}\r\n","export class BaseObjectComment {\r\n id: string;\r\n ownerId: string;\r\n commentDate: Date;\r\n text: string;\r\n username: string;\r\n userId: string;\r\n\r\n static createCommentAndSetValues(plainObject: PlainObject<BaseObjectComment>) {\r\n const comment = new BaseObjectComment();\r\n comment.id = plainObject.id;\r\n comment.ownerId = plainObject.ownerId;\r\n comment.commentDate = plainObject.commentDate;\r\n comment.text = plainObject.text;\r\n comment.username = plainObject.username;\r\n comment.userId = plainObject.userId;\r\n return comment;\r\n }\r\n\r\n static create(ownerObjectId: string): BaseObjectComment {\r\n const comment = new BaseObjectComment();\r\n comment.id = (<any>window).uuid();\r\n\r\n comment.ownerId = ownerObjectId;\r\n return comment;\r\n }\r\n\r\n dePersist(plainObject: PlainObject<BaseObjectComment>) {\r\n this.id = plainObject.id;\r\n this.ownerId = plainObject.ownerId;\r\n this.commentDate = new Date(plainObject.commentDate);\r\n this.text = plainObject.text;\r\n this.username = plainObject.username;\r\n this.userId = plainObject.userId;\r\n }\r\n}\r\n\r\ntype PlainObject<Type> = {\r\n [Property in keyof Type]: any;\r\n};\r\n","import { Injectable } from '@angular/core';\r\nimport { Case, CaseSettings, SimulationVariable } from '../../_models';\r\nimport { UnitOperationFactory } from '../../_models/_unit-operations/unit-operation-factory';\r\nimport { CaseStudyManager } from '../../_models/_case-study/case-study-manager';\r\nimport { KpiManager } from '../../_models/_case-study/kpi-manager';\r\nimport { ObjectiveFunction } from '../../_models/_optimization/objective-function';\r\nimport { SuncorCalculator } from '../../_models/suncor-calculator';\r\nimport { OtherBaseObjectPoolDeserializer } from './other-base-object-pool-deserializer';\r\nimport { Flowsheet } from '../../_models/flowsheet-manager/flowsheet';\r\nimport { AssayManager } from '../../_models/_fluid/assay-manager';\r\nimport { ResourceDataService } from '../resource-data.service';\r\nimport { ConstraintViolationEntry } from '../../_models/constraint-violation-entry';\r\nimport { MarginalValueEntry } from '../../_models/marginal-value-entry';\r\nimport { StreamFactory } from '../../_models/_streams/stream-factory';\r\nimport { WaterSourceImport } from '../../_models/_unit-operations/utilties/water-source-import';\r\nimport { WaterSinkImport } from '../../_models/_unit-operations/utilties/water-sink-import';\r\nimport { FuelGasSourceImport } from '../../_models/_unit-operations/fuel-gas/fuel-gas-source-import';\r\nimport { FuelGasSinkImport } from '../../_models/_unit-operations/fuel-gas/fuel-gas-sink-import';\r\nimport { WaterPipe } from '../../_models/_unit-operations/utilties/water-pipe';\r\nimport { MultiPeriodSettings } from '../../_models/_multi-period/multi-period-settings';\r\nimport { BaseObjectComment } from '../../_models/base-object-comment';\r\n\r\n@Injectable()\r\nexport class CaseDeserializerService {\r\n constructor(private resourceDataService: ResourceDataService) {}\r\n\r\n deserialize(serializedCase: string): Case {\r\n const plainCase = JSON.parse(serializedCase);\r\n return this.plainObjectToCase(plainCase);\r\n }\r\n\r\n plainObjectToCase(plainCase): Case {\r\n const c = new Case(plainCase);\r\n\r\n this.loadSimulationVariables(plainCase, c);\r\n\r\n const otherBaseObjectDeserializer = new OtherBaseObjectPoolDeserializer(plainCase);\r\n otherBaseObjectDeserializer.deserializeSimulationVariableArrays(c);\r\n\r\n this.loadUnitOperations(plainCase, c);\r\n this.loadMaterialStreams(plainCase, c);\r\n this.loadFlowsheets(plainCase, c);\r\n this.loadComments(plainCase, c);\r\n otherBaseObjectDeserializer.deserializeLowerHierarchyObjects(c);\r\n this.loadOtherBaseObjects(plainCase, c);\r\n return c;\r\n }\r\n\r\n private loadSimulationVariables(plainCase, c: Case) {\r\n // Simulation variables are (so far) the most basic object,\r\n // so it's good to load them first\r\n // eslint-disable-next-line guard-for-in\r\n for (const svId in plainCase.simulationVariablePool) {\r\n // owner to be set later, while de\r\n if (plainCase.simulationVariablePool[svId].quantity === 'Tempreature') {\r\n plainCase.simulationVariablePool[svId].quantity = 'Temperature';\r\n }\r\n\r\n const sv: SimulationVariable = new SimulationVariable(plainCase.simulationVariablePool[svId], c, null);\r\n c.addToPools(sv);\r\n }\r\n }\r\n\r\n private loadUnitOperations(plainCase, c: Case) {\r\n // load unit operation pool\r\n // eslint-disable-next-line guard-for-in\r\n for (const uoId in plainCase.unitOperationPool) {\r\n const serializedUnitOperation = plainCase.unitOperationPool[uoId];\r\n const rd = this.resourceDataService.getUOResourceData(serializedUnitOperation.category);\r\n const uo = UnitOperationFactory.createUnitOperationAndSetDefaultValues(serializedUnitOperation, c);\r\n\r\n uo.dePersist(serializedUnitOperation);\r\n uo.setSimulationVariablesOwner();\r\n uo.setSimulationVariableNames();\r\n uo.loadResourceData(rd);\r\n c.addToPools(uo);\r\n }\r\n }\r\n\r\n private loadComments(plainCase, c: Case) {\r\n if (!plainCase.commentsPool) {\r\n return;\r\n }\r\n\r\n for (const comment of plainCase.commentsPool) {\r\n const newComment = BaseObjectComment.createCommentAndSetValues(comment);\r\n newComment.dePersist(comment);\r\n c.commentsPool.push(newComment);\r\n }\r\n }\r\n\r\n private loadMaterialStreams(plainCase, c: Case) {\r\n // eslint-disable-next-line guard-for-in\r\n for (const streamId in plainCase.materialStreamPool) {\r\n const serializedStream = plainCase.materialStreamPool[streamId];\r\n const stream = StreamFactory.create(serializedStream, c);\r\n stream.dePersist(serializedStream);\r\n stream.setQuantities(); // may be added to dePersist\r\n stream.setSimulationVariablesOwner();\r\n stream.setSimulationVariableNames();\r\n c.addToPools(stream);\r\n }\r\n }\r\n\r\n private loadFlowsheets(plainCase, c: Case) {\r\n // eslint-disable-next-line guard-for-in\r\n for (const fId in plainCase.flowsheetPool) {\r\n const serializedFlowsheet = plainCase.flowsheetPool[fId];\r\n const flowsheet = new Flowsheet(serializedFlowsheet, c);\r\n flowsheet.dePersist(serializedFlowsheet);\r\n c.addToPools(flowsheet);\r\n }\r\n }\r\n\r\n private loadOtherBaseObjects(plainCase, c: Case) {\r\n // eslint-disable-next-line guard-for-in\r\n this.loadCaseSettings(plainCase, c);\r\n this.loadMultiPeriodSettings(plainCase, c);\r\n this.loadCaseStudyManager(plainCase, c);\r\n this.loadAssayManager(plainCase, c);\r\n this.loadObjectiveFunction(plainCase, c);\r\n this.loadCalculator(plainCase, c);\r\n this.loadConstraintViolationEntries(plainCase, c);\r\n this.loadWaterPipeSegments(plainCase, c);\r\n this.loadWaterSourceImportInformationStreams(plainCase, c);\r\n this.loadWaterSinkImportInformationStreams(plainCase, c);\r\n this.loadFuelGasSinkImportEnergyStreams(plainCase, c);\r\n this.loadFuelGasSourceImportInformationStreams(plainCase, c);\r\n }\r\n\r\n private loadCaseSettings(plainCase: any, c: Case) {\r\n c.caseSettings = <CaseSettings>c.getOtherBaseObject(plainCase.caseSettings);\r\n\r\n if (!c.caseSettings) {\r\n c.caseSettings = new CaseSettings({}, c);\r\n c.addToPools(c.caseSettings);\r\n c.caseSettings.addSimVarsToPool();\r\n }\r\n }\r\n\r\n private loadConstraintViolationEntries(plainCase: any, c: Case) {\r\n if (plainCase.hasOwnProperty('constraintViolationEntries')) {\r\n for (let i = 0; i < plainCase.constraintViolationEntries.length; i++) {\r\n c.constraintViolationEntries.push(new ConstraintViolationEntry(plainCase.constraintViolationEntries[i]));\r\n }\r\n }\r\n if (plainCase.hasOwnProperty('marginalValueEntries')) {\r\n for (let i = 0; i < plainCase.marginalValueEntries.length; i++) {\r\n c.marginalValueEntries.push(new MarginalValueEntry(plainCase.marginalValueEntries[i]));\r\n }\r\n }\r\n }\r\n\r\n private loadCaseStudyManager(plainCase: any, c: Case) {\r\n c.caseStudyManager = <CaseStudyManager>c.getOtherBaseObject(plainCase.caseStudyManager);\r\n if (!c.caseStudyManager) {\r\n c.caseStudyManager = new CaseStudyManager({}, c);\r\n c.addToPools(c.caseStudyManager);\r\n\r\n c.caseStudyManager.kpiManager = new KpiManager({}, c);\r\n c.addToPools(c.caseStudyManager.kpiManager);\r\n } else {\r\n const serializedCaseStudy = plainCase.otherBaseObjectPool[plainCase.caseStudyManager];\r\n c.caseStudyManager.kpiManager = <KpiManager>c.getOtherBaseObject(serializedCaseStudy.kpiManager);\r\n }\r\n c.initCaseStudyManagerCategories(); // wat\r\n }\r\n\r\n private loadAssayManager(plainCase: any, c: Case) {\r\n c.assayManager = <AssayManager>c.getOtherBaseObject(plainCase.assayManager);\r\n if (!c.assayManager) {\r\n c.assayManager = new AssayManager({}, c);\r\n c.addToPools(c.assayManager);\r\n }\r\n c.assayManager.setSimulationVariablesOwner();\r\n }\r\n\r\n private loadObjectiveFunction(plainCase: any, c: Case) {\r\n c.objectiveFunction = <ObjectiveFunction>c.getOtherBaseObject(plainCase.objectiveFunction);\r\n\r\n if (!c.objectiveFunction) {\r\n c.objectiveFunction = new ObjectiveFunction({}, c);\r\n c.addToPools(c.objectiveFunction);\r\n // c.objectiveFunction.addSimVarsToPool();\r\n }\r\n }\r\n\r\n private loadCalculator(plainCase: any, c: Case) {\r\n c.calculator = <SuncorCalculator>c.getOtherBaseObject(plainCase.calculator);\r\n if (!c.calculator) {\r\n c.calculator = new SuncorCalculator({}, c);\r\n c.addToPools(c.calculator);\r\n c.calculator.addSimVarsToPool();\r\n }\r\n }\r\n\r\n private loadWaterPipeSegments(plainCase, c: Case) {\r\n const waterPipeList = c.filterUnitOperations(uo => uo instanceof WaterPipe) as WaterPipe[];\r\n\r\n for (const waterPipe of waterPipeList) {\r\n const plainWaterPipe = plainCase.unitOperationPool[waterPipe.id];\r\n waterPipe.dePersistPipeSegments(plainWaterPipe);\r\n }\r\n }\r\n\r\n private loadWaterSourceImportInformationStreams(plainCase: any, c: Case) {\r\n const waterSourceImportList = c.filterUnitOperations(uo => uo instanceof WaterSourceImport) as WaterSourceImport[];\r\n\r\n for (const waterSourceImport of waterSourceImportList) {\r\n const plainWaterSourceImport = plainCase.unitOperationPool[waterSourceImport.id];\r\n waterSourceImport.dePersistInformationStreams(plainWaterSourceImport);\r\n }\r\n }\r\n\r\n private loadWaterSinkImportInformationStreams(plainCase: any, c: Case) {\r\n const waterSinkImportList = c.filterUnitOperations(uo => uo instanceof WaterSinkImport) as WaterSinkImport[];\r\n\r\n for (const waterSinkImport of waterSinkImportList) {\r\n const plainWaterSourceImport = plainCase.unitOperationPool[waterSinkImport.id];\r\n waterSinkImport.dePersistInformationStreams(plainWaterSourceImport);\r\n }\r\n }\r\n\r\n private loadMultiPeriodSettings(plainCase: any, c: Case) {\r\n c.multiPeriodSettings = c.getOtherBaseObject(plainCase.multiPeriodSettings) as MultiPeriodSettings;\r\n\r\n if (!c.multiPeriodSettings) {\r\n c.multiPeriodSettings = new MultiPeriodSettings({}, c);\r\n c.addToPools(c.multiPeriodSettings);\r\n c.multiPeriodSettings.addSimVarsToPool();\r\n }\r\n c.initMultiPeriodCategories();\r\n }\r\n\r\n private loadFuelGasSinkImportEnergyStreams(plainCase: any, c: Case) {\r\n const fuelGasImportList = c.filterUnitOperations(uo => uo instanceof FuelGasSinkImport) as FuelGasSinkImport[];\r\n for (const fuelGasImport of fuelGasImportList) {\r\n const plainFuelGasImport = plainCase.unitOperationPool[fuelGasImport.id];\r\n fuelGasImport.dePersistEnergyStreams(plainFuelGasImport);\r\n }\r\n }\r\n\r\n private loadFuelGasSourceImportInformationStreams(plainCase: any, c: Case) {\r\n const fuelGasSourceList = c.filterUnitOperations(uo => uo instanceof FuelGasSourceImport) as FuelGasSourceImport[];\r\n\r\n for (const fuelGasSourceImport of fuelGasSourceList) {\r\n const plainFuelGasSourceImport = plainCase.unitOperationPool[fuelGasSourceImport.id];\r\n fuelGasSourceImport.dePersistInformationStreams(plainFuelGasSourceImport);\r\n }\r\n }\r\n}\r\n","// should the directory be named 'migrations'?\r\nexport class V102 {\r\n static moveFluidAnalysisVarsToPool(serializedCase: any) {\r\n // find the unit operations with the fluidAnalysis key\r\n // TODO use correct types...\r\n const unitsWithFluidAnalysis = Object.values(serializedCase.unitOperationPool).filter(uo =>\r\n uo.hasOwnProperty('fluidAnalysis')\r\n ) as any[];\r\n\r\n for (const uo of unitsWithFluidAnalysis) {\r\n const oldComposition = uo.fluidAnalysis.composition;\r\n uo.fluidAnalysis.composition = [];\r\n\r\n for (let i = 0; i < oldComposition.length; i++) {\r\n uo.fluidAnalysis.composition.push(oldComposition[i].id);\r\n serializedCase.simulationVariablePool[oldComposition[i].id] = oldComposition[i];\r\n }\r\n }\r\n }\r\n}\r\n","import { unitOperationsConfig } from '../_config/unit-operations.config';\r\nimport { DistributionRatioVariable } from '../_models/_unit-operations/distribution-ratio-variable';\r\n\r\nexport class V201 {\r\n static updateHydrotreatersRatioVariables(serializedCase: any) {\r\n const hydrotreaters = Object.values(serializedCase.unitOperationPool).filter((uo: any) => {\r\n return uo.category === unitOperationsConfig.hydrotreater.key && !uo.hasOwnProperty('distributionRatioVariables');\r\n }) as any[];\r\n\r\n for (const uo of hydrotreaters) {\r\n const streams = Object.values(serializedCase.materialStreamPool).filter(\r\n (s: any) => s.outletUnitOperationId === uo.id\r\n );\r\n if (streams) {\r\n uo.distributionRatioVariables = [];\r\n uo.hydrogenUseRateVariables = [];\r\n streams.forEach((stream: any) => {\r\n const ratioVariable = new DistributionRatioVariable(stream.inletUnitOperationId, 1 / streams.length);\r\n uo.distributionRatioVariables.push(ratioVariable);\r\n const simVar = Object.values(serializedCase.simulationVariablePool).filter((sv: any) => {\r\n return sv.id === uo.hydrogenUseRate;\r\n })[0] as any;\r\n if (simVar) {\r\n uo.hydrogenUseRateVariables.push(new DistributionRatioVariable(stream.inletUnitOperationId, simVar.value));\r\n } else {\r\n uo.hydrogenUseRateVariables.push(new DistributionRatioVariable(stream.inletUnitOperationId, null));\r\n }\r\n });\r\n }\r\n }\r\n }\r\n}\r\n","import { AssayManager } from '../_models/_fluid/assay-manager';\r\nimport { unitOperationsConfig } from '../_config/unit-operations.config';\r\n\r\nexport class V210 {\r\n static moveFluidAnalysisToAssayManager(serializedCase: any) {\r\n if (!serializedCase.assayManager) {\r\n const unitOpsWithAssays = Object.values(serializedCase.unitOperationPool).filter((uo: any) => {\r\n return uo.hasOwnProperty('fluidAnalysis');\r\n });\r\n const am = new AssayManager({}, null);\r\n unitOpsWithAssays.forEach((uo: any) => {\r\n uo.fluidAnalysis.assayName = `${uo.name} assay`;\r\n if (uo.category === unitOperationsConfig.diluentSource.key) {\r\n uo.fluidAnalysis.assayType = 'Diluent';\r\n } else if (\r\n uo.category === unitOperationsConfig.hydrotreater.key ||\r\n uo.category === unitOperationsConfig.bitumenConversion.key\r\n ) {\r\n uo.fluidAnalysis.assayType = 'Product';\r\n } else {\r\n uo.fluidAnalysis.assayType = 'Crude oil - Bitumen';\r\n }\r\n serializedCase.otherBaseObjectPool[uo.fluidAnalysis.id] = uo.fluidAnalysis;\r\n am.fluidAnalyses.push(uo.fluidAnalysis.id);\r\n uo.fluidAnalysisId = uo.fluidAnalysis.id;\r\n });\r\n serializedCase.assayManager = am.id;\r\n serializedCase.otherBaseObjectPool[am.id] = am;\r\n }\r\n }\r\n}\r\n","import { unitOperationsConfig } from '../_config/unit-operations.config';\r\nimport { BitumenConversionOutlet } from '../_models/_unit-operations/bitumen-conversion-outlet';\r\nimport { SuncorMaterialStream } from '../_models';\r\n\r\nexport class V2100 {\r\n static transformBitumenConversionBlocks(serializedCase: any) {\r\n const blocks = Object.values(serializedCase.unitOperationPool).filter((uo: any) => {\r\n return uo.category === unitOperationsConfig.bitumenConversion.key && !uo.hasOwnProperty('outlets');\r\n }) as any[];\r\n\r\n for (const uo of blocks) {\r\n const stream = Object.values(serializedCase.materialStreamPool).filter(\r\n (s: any) => s.inletUnitOperationId === uo.id\r\n )[0] as SuncorMaterialStream;\r\n if (stream) {\r\n uo.outlets = [];\r\n const outlet = new BitumenConversionOutlet(\r\n {\r\n unitOperationId: stream.outletUnitOperationId,\r\n },\r\n null,\r\n null\r\n );\r\n outlet.fluidAnalysisId = uo.fluidAnalysisId;\r\n outlet.yield = uo.totalYield;\r\n outlet.price = uo.productPrice;\r\n uo.outlets.push(outlet);\r\n }\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { V102 } from '../_compatibility/v-1-0-2';\r\nimport { V201 } from '../_compatibility/v201';\r\nimport { V210 } from '../_compatibility/v210';\r\nimport { V2100 } from '../_compatibility/v2100';\r\n\r\n@Injectable()\r\nexport class CompatibilityService {\r\n makeCompatible(serializedProject: any) {\r\n const compatibilityFunctions = this.getCompatibilityFunctions();\r\n const versionsList = Object.keys(compatibilityFunctions).sort();\r\n const firstFunctionToApply = versionsList.findIndex(key => key > serializedProject.version);\r\n\r\n if (firstFunctionToApply > -1) {\r\n for (let i = firstFunctionToApply; i < versionsList.length; i++) {\r\n for (const serializedCase of serializedProject.cases) {\r\n compatibilityFunctions[versionsList[i]](serializedCase);\r\n }\r\n }\r\n }\r\n }\r\n\r\n getCompatibilityFunctions(): { [v: string]: (serializedCase: any) => void } {\r\n return {\r\n '1.0.2': V102.moveFluidAnalysisVarsToPool,\r\n '2.0.1': V201.updateHydrotreatersRatioVariables,\r\n '2.1.0': V210.moveFluidAnalysisToAssayManager,\r\n '2.10.0': V2100.transformBitumenConversionBlocks,\r\n };\r\n }\r\n}\r\n","/* eslint-disable no-console */\r\nimport { Injectable } from '@angular/core';\r\nimport { Case, Project } from '../_models';\r\nimport { unitOperationsConfig } from '../_config/unit-operations.config';\r\nimport { Mixer } from '../_models/_unit-operations/mixer';\r\nimport { Splitter } from '../_models/_unit-operations/splitter';\r\nimport { isTypeUndefined } from '../_utils/utils';\r\nimport { RangeDistributionConstraint } from '../_models/_unit-operations/range-distribution-constraint';\r\n\r\n@Injectable()\r\nexport class AfterDeserializationCompatibilityService {\r\n makeCompatible(project: Project) {\r\n for (const c of project.cases) {\r\n this.makeCaseCompatible(c);\r\n }\r\n }\r\n\r\n private makeCaseCompatible(c: Case) {\r\n this.addMixingRatioVariablesToAllNormalMixers(c);\r\n this.addMinimumAndMaximumRatioValuesToNormalOptimizableSplitters(c);\r\n this.setRangeConstraintsName(c);\r\n }\r\n\r\n private addMixingRatioVariablesToAllNormalMixers(c: Case) {\r\n const mixersList = c.findUnitOpsByCategory(unitOperationsConfig.mixer.key) as Mixer[];\r\n\r\n for (const mixer of mixersList) {\r\n const inletStreamsList = c.getStreamsByOutletUnitOperationId(mixer.id);\r\n\r\n const hasMissingMixingRatioVariables = !mixer.mixingRatioVariables.length && inletStreamsList.length;\r\n\r\n if (!hasMissingMixingRatioVariables) {\r\n return;\r\n }\r\n\r\n console.warn(`${mixer.name} has missing mixing ratio variables!!`);\r\n for (const inletStream of inletStreamsList) {\r\n const inletName = c.getUnitOperationName(inletStream.inletUnitOperationId);\r\n console.warn(`${inletName} is connected to ${mixer.name}`);\r\n mixer.addInletDistributionRatioVariables(inletStream.inletUnitOperationId);\r\n }\r\n\r\n console.warn('....');\r\n console.warn('....');\r\n }\r\n }\r\n\r\n private addMinimumAndMaximumRatioValuesToNormalOptimizableSplitters(c: Case) {\r\n const optimizableSplittersList = c.filterUnitOperations(\r\n uo => uo instanceof Splitter && uo.isOptimizable\r\n ) as Splitter[];\r\n\r\n for (const splitter of optimizableSplittersList) {\r\n for (const drv of splitter.distributionRatioVariables) {\r\n if (isTypeUndefined(drv.minimumValue)) {\r\n drv.minimumValue = 0;\r\n const outletName = c.getUnitOperationName(drv.unitOperationId);\r\n console.warn(\r\n `Setting Minimum value on Splitter :: ${splitter.name}` +\r\n `Distribution Ratio Variable corresponding to ${outletName}`\r\n );\r\n }\r\n\r\n if (isTypeUndefined(drv.maximumValue)) {\r\n drv.maximumValue = 1;\r\n const outletName = c.getUnitOperationName(drv.unitOperationId);\r\n console.warn(\r\n `Setting maximum value on Splitter :: ${splitter.name}` +\r\n `Distribution Ratio Variable corresponding to ${outletName}\\n-----\\n\\n`\r\n );\r\n }\r\n }\r\n }\r\n }\r\n\r\n private setRangeConstraintsName(c: Case) {\r\n const mixersAndSplitters = c.filterUnitOperations(\r\n unitOperation => unitOperation instanceof Mixer || unitOperation instanceof Splitter\r\n );\r\n\r\n mixersAndSplitters.forEach((unitOperation: Mixer | Splitter) => {\r\n const constraintsWithMissingOwner = [] as RangeDistributionConstraint[];\r\n\r\n if (isTypeUndefined(unitOperation.constraints) || Object.keys(unitOperation.constraints).length === 0) return;\r\n\r\n Object.values(unitOperation.constraints.constraints).forEach(cstr => {\r\n const sourceUnitOperation = c.getUnitOperation(cstr.sourceUnitOperationId);\r\n\r\n if (!sourceUnitOperation) {\r\n constraintsWithMissingOwner.push(cstr);\r\n } else if (cstr.id.includes('minimumRange')) {\r\n cstr.constraintName = `Minimum ${sourceUnitOperation.name} Ratio`;\r\n } else if (cstr.id.includes('maximumRange')) {\r\n cstr.constraintName = `Maximum ${sourceUnitOperation.name} Ratio`;\r\n } else {\r\n cstr.constraintName = `Exact ${sourceUnitOperation.name} Ratio`;\r\n }\r\n });\r\n\r\n // TODO this is a temporary fix just to remove orphan distribution ratio variables\r\n // TODO this error was detected in Test on June 20, 2024\r\n // REMOVE WHEN NO LONGER NEEDED!!!\r\n for (const cstr of constraintsWithMissingOwner) {\r\n // eslint-disable-next-line no-console\r\n console.warn(\r\n `Removing all variables depending on missing unit operation ${cstr.sourceUnitOperationId}`,\r\n `from ${unitOperation.name} - doesn't have an owner!`\r\n );\r\n\r\n if (unitOperation instanceof Mixer) {\r\n unitOperation.removeInletDistributionRatioVariables(cstr.sourceUnitOperationId);\r\n } else if (unitOperation instanceof Splitter) {\r\n unitOperation.removeOutletDistributionRatioVariables(cstr.sourceUnitOperationId);\r\n }\r\n }\r\n });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { CaseDeserializerService } from '../case-deserializer/case-deserializer.service';\r\nimport { Project } from '../../_models';\r\nimport { AppInfo } from '../../_config/app-info';\r\nimport { CompatibilityService } from '../compatibility-service';\r\nimport { Flowsheet } from '../../_models/flowsheet-manager/flowsheet';\r\nimport { AfterDeserializationCompatibilityService } from '../after-deserialization-compatibility-service';\r\n\r\n@Injectable()\r\nexport class ProjectDeserializerService {\r\n constructor(\r\n private caseDeserializer: CaseDeserializerService,\r\n private compatibility: CompatibilityService,\r\n private afterDeserializationCompatibility: AfterDeserializationCompatibilityService\r\n ) {}\r\n\r\n deserialize(serializedProject: string): Project {\r\n const plainProject = JSON.parse(serializedProject);\r\n this.compatibility.makeCompatible(plainProject);\r\n\r\n const project = this.plainObjectToProject(plainProject);\r\n\r\n this.afterDeserializationCompatibility.makeCompatible(project);\r\n return project;\r\n }\r\n\r\n plainObjectToProject(plainProject: any): Project {\r\n const project = new Project();\r\n project.name = plainProject.name || '';\r\n project.version = plainProject.version || AppInfo.FILE_VERSION.toString(); // hmm...\r\n\r\n for (const serializedCase of plainProject.cases) {\r\n const c = this.caseDeserializer.plainObjectToCase(serializedCase);\r\n project.cases.push(c);\r\n\r\n if (!c.getActiveFlowsheet()) {\r\n const mainFlowsheet = c.getFlowsheet(c.getMainFlowsheetId());\r\n if (!mainFlowsheet) {\r\n c.setActiveFlowsheet(new Flowsheet({}, c));\r\n c.setMainFlowsheetId(c.getActiveFlowsheet().id);\r\n c.addToPools(c.getActiveFlowsheet());\r\n } else {\r\n c.setActiveFlowsheet(mainFlowsheet);\r\n }\r\n }\r\n }\r\n\r\n return project;\r\n }\r\n}\r\n","import { getRandomColor } from '../color.generator';\r\n\r\nexport class SankeyUnitOperation {\r\n id: string;\r\n name: string;\r\n color: string;\r\n key: number;\r\n location: number[];\r\n category: string;\r\n\r\n constructor(uo: any) {\r\n this.id = uo.id;\r\n this.name = uo.name;\r\n this.location = uo.location;\r\n this.key = uo.key;\r\n this.category = uo.category;\r\n this.color = getRandomColor();\r\n }\r\n}\r\n","import { SuncorMaterialStream } from '../_streams/suncor-material-stream';\r\n\r\ndeclare let unitConverter: any;\r\n\r\nexport class SankeySuncorMaterialStream {\r\n id: string;\r\n from: number;\r\n to: number;\r\n name: string;\r\n volumetricFlowrate: number;\r\n volumetricFlowrateUnit: string;\r\n width: number;\r\n\r\n constructor(s: SuncorMaterialStream) {\r\n this.id = s.id;\r\n this.from = s.inletUnitOperation.key;\r\n this.to = s.outletUnitOperation.key;\r\n this.name = s.name || s.connectionName;\r\n this.volumetricFlowrateUnit = unitConverter.units.Volumetricflowrate.KBPCD;\r\n this.volumetricFlowrate = s.volumetricFlowrate.convertToAnotherUnit(this.volumetricFlowrateUnit, false);\r\n this.width = this.volumetricFlowrate > 700 ? 700 : this.volumetricFlowrate;\r\n }\r\n}\r\n","import { WaterMaterialStream } from '../_streams/water-material-stream';\r\n\r\ndeclare let unitConverter: any;\r\n\r\nexport class SankeyWaterMaterialStream {\r\n id: string;\r\n from: number;\r\n to: number;\r\n name: string;\r\n massFlowrate: number;\r\n massFlowrateUnit: string;\r\n width: number;\r\n\r\n constructor(s: WaterMaterialStream) {\r\n this.id = s.id;\r\n this.from = s.inletUnitOperation.key;\r\n this.to = s.outletUnitOperation.key;\r\n this.name = s.name || s.connectionName;\r\n this.massFlowrateUnit = unitConverter.units.Massflowrate.KPPH;\r\n this.massFlowrate = s.massFlowrate.convertToAnotherUnit(this.massFlowrateUnit, false);\r\n this.width = this.massFlowrate > 700 ? 700 : this.massFlowrate;\r\n }\r\n}\r\n","import { FuelGasMaterialStream } from '../_streams/fuel-gas-material-stream';\r\n\r\ndeclare let unitConverter: any;\r\n\r\nexport class SankeyFuelGasMaterialStream {\r\n id: string;\r\n from: number;\r\n to: number;\r\n name: string;\r\n flowrate: number;\r\n flowrateUnit: string;\r\n width: number;\r\n\r\n constructor(s: FuelGasMaterialStream) {\r\n this.id = s.id;\r\n this.from = s.inletUnitOperation.key;\r\n this.to = s.outletUnitOperation.key;\r\n this.name = s.name || s.connectionName;\r\n this.flowrateUnit = unitConverter.units.Molarflowrate.MMSCFD;\r\n this.flowrate = s.flowrate.convertToAnotherUnit(this.flowrateUnit, false);\r\n this.width = this.flowrate > 120 ? 120 : this.flowrate;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport * as go from 'gojs';\r\nimport { Diagram, GraphLinksModel } from 'gojs';\r\nimport { FlowsheetDiagramService } from '../../_services/flowsheet-diagram/flowsheet-diagram.service';\r\nimport { SankeyUnitOperation } from '../../_models/_gojs/sankey-unit-operation';\r\nimport { SuncorUnitOperation } from '../../_models/_unit-operations/suncor-unit-operation';\r\nimport { SankeySuncorMaterialStream } from '../../_models/_gojs/sankey-suncor-material-stream';\r\nimport { Case, SuncorMaterialStream, UnitOperation } from '../../_models';\r\nimport { unitOperationsConfig } from '../../_config/unit-operations.config';\r\nimport { WaterMaterialStream } from '../../_models/_streams/water-material-stream';\r\nimport { SankeyWaterMaterialStream } from '../../_models/_gojs/sankey-water-material-stream';\r\nimport { FuelGasMaterialStream } from '../../_models/_streams/fuel-gas-material-stream';\r\nimport { SankeyFuelGasMaterialStream } from '../../_models/_gojs/sankey-fuel-gas-material-stream';\r\nimport { isNullOrUndefined } from '../../_utils/utils';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SankeyDiagramService {\r\n sankeyDiagram: Diagram;\r\n constructor(private flowsheetDiagramService: FlowsheetDiagramService) {}\r\n\r\n caseToSankeyDiagram(c: Case, upgId?: string, subDiagram?: boolean) {\r\n if (c.isSolved) {\r\n const nodeDataArray = [];\r\n const linkDataArray = [];\r\n // eslint-disable-next-line guard-for-in\r\n for (const uoId in c.unitOperationPool) {\r\n if (subDiagram) {\r\n this.restoreKeylessNodes(c);\r\n if (c.unitOperationPool[uoId].flowsheetId && c.unitOperationPool[uoId].flowsheetId === upgId) {\r\n const o = new SankeyUnitOperation(c.unitOperationPool[uoId] as UnitOperation);\r\n // if (o.category !== 'mixer' && o.category !== 'splitter' && o.category !== 'pipe') {\r\n if (isNullOrUndefined(o.key) || <any>o.key === '') {\r\n delete o.key;\r\n } else {\r\n nodeDataArray.push(o);\r\n }\r\n }\r\n } else if (!c.unitOperationPool[uoId].flowsheetId) {\r\n const o = new SankeyUnitOperation(c.unitOperationPool[uoId] as SuncorUnitOperation);\r\n // if (o.category !== 'mixer' && o.category !== 'splitter' && o.category !== 'pipe') {\r\n if (isNullOrUndefined(o.key) || <any>o.key === '') {\r\n delete o.key;\r\n } else {\r\n nodeDataArray.push(o);\r\n }\r\n }\r\n }\r\n this.sankeyDiagram.clear(); // this will destroy all the undo actions so far\r\n\r\n const streamIds = c.getAllMaterialStreamIds();\r\n\r\n for (const id of streamIds) {\r\n let stream;\r\n stream = c.getSuncorMaterialStream(id);\r\n\r\n if (!(stream instanceof SuncorMaterialStream)) {\r\n stream = c.getWaterStream(id);\r\n if (!(stream instanceof WaterMaterialStream)) {\r\n stream = c.getFuelGasStream(id);\r\n }\r\n }\r\n\r\n if (!stream) {\r\n continue;\r\n }\r\n\r\n if (subDiagram) {\r\n const toNode = c.unitOperationPool[stream.outletUnitOperationId];\r\n const fromNode = c.unitOperationPool[stream.inletUnitOperationId];\r\n if (toNode.flowsheetId === upgId && fromNode.flowsheetId === upgId) {\r\n if (stream.hasFlowrate() && stream.inletUnitOperation.key && stream.outletUnitOperation.key) {\r\n linkDataArray.push(this.getSankeyMaterialStreamByStreamType(stream));\r\n }\r\n }\r\n } else {\r\n const toNode = c.unitOperationPool[stream.outletUnitOperationId];\r\n const fromNode = c.unitOperationPool[stream.inletUnitOperationId];\r\n if (!toNode.flowsheetId && !fromNode.flowsheetId) {\r\n if (stream.hasFlowrate()) {\r\n linkDataArray.push(this.getSankeyMaterialStreamByStreamType(stream));\r\n }\r\n }\r\n }\r\n }\r\n\r\n this.sankeyDiagram.model.startTransaction('addNodeDataArray');\r\n this.sankeyDiagram.model.addNodeDataCollection(nodeDataArray);\r\n this.sankeyDiagram.model.commitTransaction('addNodeDataArray');\r\n\r\n this.sankeyDiagram.model.startTransaction('addLinkDataArray');\r\n (this.sankeyDiagram.model as GraphLinksModel).addLinkDataCollection(linkDataArray);\r\n this.sankeyDiagram.model.commitTransaction('addLinkDataArray');\r\n this.removePipes();\r\n this.removeMixers();\r\n this.removeSplittersWithOneInlet();\r\n this.removeSplittersWithOneOutlet();\r\n this.removeDisconnectedNodes();\r\n\r\n this.zoomToFit();\r\n }\r\n }\r\n\r\n getSankeyMaterialStreamByStreamType(stream: any) {\r\n if (stream instanceof SuncorMaterialStream) {\r\n return new SankeySuncorMaterialStream(stream);\r\n }\r\n if (stream instanceof WaterMaterialStream) {\r\n return new SankeyWaterMaterialStream(stream);\r\n }\r\n if (stream instanceof FuelGasMaterialStream) {\r\n return new SankeyFuelGasMaterialStream(stream);\r\n }\r\n\r\n throw new Error(`Unknown material stream ${stream.category}`);\r\n }\r\n\r\n restoreKeylessNodes(c: Case) {\r\n const nodes = c.filterUnitOperations(o => {\r\n return isNullOrUndefined(o.key) || <any>o.key === '';\r\n });\r\n nodes.forEach(uo => {\r\n const node = this.flowsheetDiagramService.gojsDiagram.findNodesByExample({ id: uo.id }).first();\r\n if (node) {\r\n uo.key = node.data.key;\r\n }\r\n });\r\n }\r\n\r\n removePipes() {\r\n const nodesToDelete = [];\r\n const it = this.sankeyDiagram.links;\r\n while (it.next()) {\r\n const link = it.value;\r\n const toNode = this.sankeyDiagram.findNodeForKey(link.data.to);\r\n if (toNode && (toNode.data.category === 'pipe' || toNode.data.category === 'water-pipe')) {\r\n link.toNode = this.findSinkNode(link);\r\n nodesToDelete.push(toNode);\r\n nodesToDelete.push(toNode.findLinksOutOf().first());\r\n }\r\n }\r\n\r\n nodesToDelete.forEach(node => {\r\n this.sankeyDiagram.remove(node);\r\n });\r\n }\r\n\r\n removeMixers() {\r\n const nodesToDelete = [];\r\n const it = this.sankeyDiagram.links;\r\n while (it.next()) {\r\n const link = it.value;\r\n\r\n const toNode = this.sankeyDiagram.findNodeForKey(link.data.to);\r\n if (\r\n toNode &&\r\n (toNode.data.category === 'mixer' ||\r\n toNode.data.category === 'water-mixer' ||\r\n toNode.data.category === 'fuel-gas-mixer')\r\n ) {\r\n link.toNode = this.findSinkNode(link);\r\n nodesToDelete.push(toNode);\r\n nodesToDelete.push(toNode.findLinksOutOf().first());\r\n }\r\n }\r\n\r\n nodesToDelete.forEach(node => {\r\n this.sankeyDiagram.remove(node);\r\n });\r\n }\r\n\r\n removeSplittersWithOneInlet() {\r\n const nodesToDelete = [];\r\n\r\n const it = this.sankeyDiagram.links;\r\n while (it.next()) {\r\n const link = it.value;\r\n\r\n const toNode = this.sankeyDiagram.findNodeForKey(link.data.to);\r\n if (\r\n toNode &&\r\n (toNode.data.category === 'splitter' ||\r\n toNode.data.category === 'water-splitter' ||\r\n toNode.data.category === 'fuel-gas-splitter')\r\n ) {\r\n if (toNode.findLinksInto().count === 1) {\r\n const linksToReasign = [];\r\n const linksOut = toNode.findLinksOutOf();\r\n linksOut.each(l => {\r\n linksToReasign.push(l);\r\n });\r\n linksToReasign.forEach(l => {\r\n l.fromNode = toNode.findLinksInto().first().fromNode;\r\n });\r\n nodesToDelete.push(toNode);\r\n }\r\n }\r\n }\r\n\r\n nodesToDelete.forEach(node => {\r\n this.sankeyDiagram.remove(node);\r\n });\r\n }\r\n\r\n removeSplittersWithOneOutlet() {\r\n const splitters = this.sankeyDiagram.nodes.filter(n => {\r\n return (\r\n (n.data.category === 'splitter' ||\r\n n.data.category === 'water-splitter' ||\r\n n.data.category === 'fuel-gas-splitter') &&\r\n n.findLinksOutOf().count === 1\r\n );\r\n });\r\n\r\n while (splitters.next()) {\r\n const n = splitters.value;\r\n const linksToReasign = [];\r\n const links = n.findLinksInto();\r\n const sinkNode = n.findLinksOutOf().first().toNode;\r\n links.each(l => {\r\n linksToReasign.push(l);\r\n });\r\n linksToReasign.forEach(l => {\r\n l.toNode = sinkNode;\r\n });\r\n }\r\n\r\n this.sankeyDiagram.removeParts(splitters, false);\r\n }\r\n\r\n removeDisconnectedNodes() {\r\n const disconnectedNodes = this.sankeyDiagram.nodes.filter(n => {\r\n return n.linksConnected.count === 0;\r\n });\r\n this.sankeyDiagram.removeParts(disconnectedNodes, false);\r\n }\r\n\r\n findSinkNode(link) {\r\n const node = link.toNode;\r\n if (\r\n node.data.category === 'mixer' ||\r\n node.data.category === 'pipe' ||\r\n node.data.category === 'water-mixer' ||\r\n node.data.category === 'water-pipe' ||\r\n node.data.category === 'fuel-gas-mixer'\r\n ) {\r\n const outLink = node.findLinksOutOf().first();\r\n return this.findSinkNode(outLink);\r\n }\r\n return node;\r\n }\r\n\r\n getLinksToGenericSink(): go.Link[] {\r\n const results: go.Link[] = [];\r\n this.sankeyDiagram.links.each(link => {\r\n if (\r\n link.toNode.data.category === unitOperationsConfig.genericSink.key ||\r\n link.toNode.data.category === unitOperationsConfig.waterSink.key ||\r\n link.toNode.data.category === unitOperationsConfig.fuelGasSink.key\r\n ) {\r\n results.push(link);\r\n }\r\n });\r\n return results;\r\n }\r\n\r\n hideGenericSinks() {\r\n // we also need to hide the links\r\n const links = this.getLinksToGenericSink();\r\n links.forEach(link => {\r\n link.visible = false;\r\n link.toNode.visible = false;\r\n });\r\n }\r\n\r\n showGenericSinks() {\r\n const links = this.getLinksToGenericSink();\r\n links.forEach(link => {\r\n link.visible = true;\r\n link.toNode.visible = true;\r\n });\r\n }\r\n\r\n zoomToFit() {\r\n this.sankeyDiagram.zoomToFit();\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport * as JSZip from 'jszip';\r\nimport { saveAs } from 'file-saver/FileSaver';\r\nimport { Case } from '../_models';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class FileService {\r\n downloadFile(cases: Case[], serializedProject: string, filename?: string) {\r\n this.generateFile(cases, serializedProject).then(function (content) {\r\n saveAs(content, filename);\r\n });\r\n }\r\n\r\n generateFile(cases: Case[], serializedProject: string) {\r\n const jszip = new JSZip();\r\n\r\n cases.forEach(function (c: Case) {\r\n const diagram = c.getDiagramString();\r\n\r\n // TODO WTF! so this property is not serialized in the case itself but in the zip file!?\r\n // This generates a file with the same name as the case\r\n jszip.file(c.name || 'unnamed', diagram, { binary: true });\r\n\r\n // eslint-disable-next-line guard-for-in\r\n for (const flowsheet in c.flowsheetPool) {\r\n const f = c.flowsheetPool[flowsheet];\r\n\r\n // and this only writes a file for each of the subflowsheet diagrams diagrams - but actually,\r\n // the main flowsheet does have an entry in the flowsheet pool...\r\n if (f.unitOperationId) {\r\n jszip.file(`${f.unitOperationId}@${c.id}` || 'unnamed', f.getDiagramJson(), { binary: true });\r\n }\r\n }\r\n });\r\n\r\n jszip.file('pools', serializedProject, { binary: true });\r\n return jszip.generateAsync({ type: 'blob' });\r\n }\r\n\r\n getPools(file) {\r\n return this.getFile(file, 'pools');\r\n }\r\n\r\n getFile(file, filename) {\r\n return JSZip.loadAsync(file).then(function (f) {\r\n return f.file(filename).async('text');\r\n });\r\n }\r\n}\r\n","import { SimulationVariableMapper } from './simulation-variable-mapper';\r\nimport { BaseObject } from '../_models/base-object';\r\nimport { SimulationVariable } from '../_models';\r\n\r\nexport class DefaultBaseObjectFormGroupMapper {\r\n constructor(protected simVarMapper: SimulationVariableMapper) {}\r\n\r\n map(source: BaseObject, destination: BaseObject) {\r\n const keys = Object.keys(source);\r\n\r\n for (const key of keys) {\r\n const currentValue = destination[key];\r\n\r\n if (this.ignoreForAutoMapping(key, source, destination)) {\r\n continue;\r\n }\r\n\r\n if (currentValue instanceof SimulationVariable) {\r\n this.simVarMapper.map(source[key], currentValue);\r\n } else {\r\n destination[key] = source[key];\r\n }\r\n }\r\n }\r\n\r\n ignoreForAutoMapping(key: string, source: BaseObject, destination: BaseObject): boolean {\r\n return typeof destination[key] === 'function';\r\n }\r\n\r\n updateVariableStatus(source: BaseObject, destination: BaseObject) {\r\n // eslint-disable-next-line guard-for-in\r\n for (const key in destination) {\r\n const property = destination[key];\r\n\r\n if (property instanceof SimulationVariable && source.hasOwnProperty(key)) {\r\n const simVarData = source[key];\r\n const otherSimVar = new SimulationVariable(simVarData, null, null);\r\n otherSimVar.setQuantity(property.quantity);\r\n property.updateVariableStatus(otherSimVar);\r\n }\r\n }\r\n }\r\n}\r\n","import { BaseObject } from '../_models/base-object';\r\nimport { WaterBoiler } from '../_models/_unit-operations/utilties/water-boiler';\r\nimport { hasNumericValue } from '../_utils/utils';\r\nimport { VariableStatus } from '../_config/variable-status.enum';\r\nimport { DefaultBaseObjectFormGroupMapper } from './default-base-object-form-group.mapper';\r\n\r\nexport class WaterBoilerFormGroupMapper extends DefaultBaseObjectFormGroupMapper {\r\n override map(source: BaseObject, destination: BaseObject) {\r\n super.map(source, destination);\r\n\r\n const boiler = destination as WaterBoiler;\r\n\r\n const simVars = [boiler.outletTemperature, boiler.outletPressure, boiler.outletVaporFraction, boiler.power];\r\n\r\n const solverCalculatedVariables = simVars.filter(sv => !hasNumericValue(sv.value));\r\n const userSpecifiedVariables = simVars.filter(sv => hasNumericValue(sv.value));\r\n\r\n // if two variables don't have value and the other two do, then it is clear which ones will be solver calculated\r\n if (solverCalculatedVariables.length === userSpecifiedVariables.length) {\r\n solverCalculatedVariables.forEach(sv => {\r\n sv.variableStatus = VariableStatus.SOLVER_CALCULATED;\r\n });\r\n\r\n userSpecifiedVariables.forEach(sv => {\r\n sv.variableStatus = VariableStatus.USER_SPECIFIED;\r\n });\r\n }\r\n }\r\n}\r\n","import { BaseObject } from '../_models/base-object';\r\nimport { WaterSourceImport } from '../_models/_unit-operations/utilties/water-source-import';\r\nimport { ArrayDiff } from '../_utils/array-diff';\r\nimport { WaterSourceInformationStream } from '../_models/_unit-operations/utilties/water-source-information-stream';\r\nimport { DefaultBaseObjectFormGroupMapper } from './default-base-object-form-group.mapper';\r\n\r\nexport class WaterSourceImportFormGroupMapper extends DefaultBaseObjectFormGroupMapper {\r\n override map(source: BaseObject, destination: BaseObject) {\r\n super.map(source, destination);\r\n\r\n const sourcePlainObject = source as WaterSourceImport;\r\n const destinationInstance = destination as WaterSourceImport;\r\n\r\n const arrayDiff = new ArrayDiff(sourcePlainObject.inletSourceInformationStreams);\r\n\r\n // diff with the source information streams as its base array\r\n const diff = arrayDiff.diff(\r\n destinationInstance.inletSourceInformationStreams,\r\n (l: WaterSourceInformationStream, r: WaterSourceInformationStream) => {\r\n return l.simulationVariableId === r.simulationVariableId;\r\n }\r\n );\r\n\r\n // map matching information streams\r\n for (const sourceInformationStream of diff.intersection) {\r\n const destinationStream = destinationInstance.inletSourceInformationStreams.find(\r\n informationStream => informationStream.simulationVariableId === sourceInformationStream.simulationVariableId\r\n );\r\n\r\n super.map(sourceInformationStream, destinationStream);\r\n }\r\n\r\n // add new information streams\r\n const informationStreamsToAdd = diff.left;\r\n for (const sourceInformationStream of informationStreamsToAdd) {\r\n const destinationInformationStream = new WaterSourceInformationStream(\r\n sourceInformationStream,\r\n destinationInstance.ownerCase\r\n );\r\n destinationInstance.addInformationStream(destinationInformationStream);\r\n }\r\n\r\n // delete information streams\r\n const informationStreamsToDelete = diff.right;\r\n for (const informationStreamToDelete of informationStreamsToDelete) {\r\n destinationInstance.removeInformationStream(informationStreamToDelete.simulationVariableId);\r\n }\r\n }\r\n\r\n override ignoreForAutoMapping(key: keyof WaterSourceImport, source: BaseObject, destination: BaseObject): boolean {\r\n const result = super.ignoreForAutoMapping(key, source, destination);\r\n return key === 'inletSourceInformationStreams' || result;\r\n }\r\n}\r\n","import { DefaultBaseObjectFormGroupMapper } from './default-base-object-form-group.mapper';\r\nimport { BaseObject } from '../_models/base-object';\r\nimport { WaterSinkImport } from '../_models/_unit-operations/utilties/water-sink-import';\r\nimport { ArrayDiff } from '../_utils/array-diff';\r\nimport { WaterSourceInformationStream } from '../_models/_unit-operations/utilties/water-source-information-stream';\r\n\r\nexport class WaterSinkImportFormGroupMapper extends DefaultBaseObjectFormGroupMapper {\r\n override map(source: BaseObject, destination: BaseObject) {\r\n super.map(source, destination);\r\n\r\n const sourcePlainObject = source as WaterSinkImport;\r\n const destinationInstance = destination as WaterSinkImport;\r\n\r\n const arrayDiff = new ArrayDiff(sourcePlainObject.inletSourceInformationStreams);\r\n\r\n // diff with the source information streams as its base array\r\n const diff = arrayDiff.diff(\r\n destinationInstance.inletSourceInformationStreams,\r\n (l: WaterSourceInformationStream, r: WaterSourceInformationStream) => {\r\n return l.simulationVariableId === r.simulationVariableId;\r\n }\r\n );\r\n\r\n // map matching information streams\r\n for (const sourceInformationStream of diff.intersection) {\r\n const destinationStream = destinationInstance.inletSourceInformationStreams.find(\r\n informationStream => informationStream.simulationVariableId === sourceInformationStream.simulationVariableId\r\n );\r\n\r\n super.map(sourceInformationStream, destinationStream);\r\n }\r\n\r\n // add new information streams\r\n const informationStreamsToAdd = diff.left;\r\n for (const sourceInformationStream of informationStreamsToAdd) {\r\n const destinationInformationStream = new WaterSourceInformationStream(\r\n sourceInformationStream,\r\n destinationInstance.ownerCase\r\n );\r\n destinationInstance.addInformationStream(destinationInformationStream);\r\n }\r\n\r\n // delete information streams\r\n const informationStreamsToDelete = diff.right;\r\n for (const informationStreamToDelete of informationStreamsToDelete) {\r\n destinationInstance.removeInformationStream(informationStreamToDelete.simulationVariableId);\r\n }\r\n }\r\n\r\n override ignoreForAutoMapping(key: keyof WaterSinkImport, source: BaseObject, destination: BaseObject): boolean {\r\n const result = super.ignoreForAutoMapping(key, source, destination);\r\n return key === 'inletSourceInformationStreams' || result;\r\n }\r\n}\r\n","import { DefaultBaseObjectFormGroupMapper } from './default-base-object-form-group.mapper';\r\nimport { BaseObject } from '../_models/base-object';\r\nimport { BaseWaterSplitter } from '../_models/_unit-operations/utilties/base-water-splitter';\r\nimport { hasNumericValue } from '../_utils/utils';\r\n\r\nexport abstract class BaseWaterSplitterFormGroupMapper extends DefaultBaseObjectFormGroupMapper {\r\n override map(source: BaseObject, destination: BaseObject) {\r\n super.map(source, destination);\r\n const sourcePlainObject = source as BaseWaterSplitter;\r\n const destinationInstance = destination as BaseWaterSplitter;\r\n\r\n destinationInstance.isOptimizable = !!sourcePlainObject.isOptimizable;\r\n this.mapRatioVariables(sourcePlainObject, destinationInstance);\r\n }\r\n\r\n mapRatioVariables(source: BaseWaterSplitter, destination: BaseWaterSplitter) {\r\n for (let i = 0; i < source.distributionRatioVariables.length; i++) {\r\n const sourceValue = source.distributionRatioVariables[i].value;\r\n\r\n // eslint-disable-next-line max-len\r\n destination.distributionRatioVariables[i].value = hasNumericValue(sourceValue) ? +sourceValue : undefined; // source.distributionRatioVariables[i].value;\r\n }\r\n }\r\n\r\n override ignoreForAutoMapping(key: string, source: BaseObject, destination: BaseObject): boolean {\r\n const sourcePlainObject = source as BaseWaterSplitter;\r\n return (\r\n super.ignoreForAutoMapping(key, source, destination) ||\r\n source[key] === sourcePlainObject.distributionRatioVariables\r\n );\r\n }\r\n}\r\n","import { BaseObject } from '../_models/base-object';\r\nimport { BaseWaterSplitterFormGroupMapper } from './base-water-splitter-form-group.mapper';\r\n\r\nexport class WaterHeaderFormGroupMapper extends BaseWaterSplitterFormGroupMapper {\r\n override map(source: BaseObject, destination: BaseObject) {\r\n super.map(source, destination);\r\n }\r\n}\r\n","import { BaseObject } from '../_models/base-object';\r\nimport { BaseWaterSplitterFormGroupMapper } from './base-water-splitter-form-group.mapper';\r\n\r\nexport class WaterSplitterFormGroupMapper extends BaseWaterSplitterFormGroupMapper {\r\n override map(source: BaseObject, destination: BaseObject) {\r\n super.map(source, destination);\r\n }\r\n}\r\n","import { DefaultBaseObjectFormGroupMapper } from './default-base-object-form-group.mapper';\r\nimport { FuelGasSinkImport } from '../_models/_unit-operations/fuel-gas/fuel-gas-sink-import';\r\nimport { ArrayDiff } from '../_utils/array-diff';\r\nimport { EnergyStream } from '../_models/_unit-operations/fuel-gas/energy-stream';\r\nimport { BaseObject } from '../_models/base-object';\r\n\r\nexport class FuelGasSinkImportFormGroupMapper extends DefaultBaseObjectFormGroupMapper {\r\n override map(source: BaseObject, destination: BaseObject) {\r\n super.map(source, destination);\r\n\r\n const sourcePlainObject = source as FuelGasSinkImport;\r\n const destinationInstance = destination as FuelGasSinkImport;\r\n\r\n const arrayDiff = new ArrayDiff(sourcePlainObject.energyStreams);\r\n\r\n // diff with the source information streams as its base array\r\n const diff = arrayDiff.diff(destinationInstance.energyStreams, (l: EnergyStream, r: EnergyStream) => {\r\n return l.providerUnitOperationId === r.providerUnitOperationId;\r\n });\r\n\r\n // map matching energy streams\r\n for (const sourceEnergyStream of diff.intersection) {\r\n const destinationStream = destinationInstance.energyStreams.find(\r\n energyStream => energyStream.providerUnitOperationId === sourceEnergyStream.providerUnitOperationId\r\n );\r\n\r\n super.map(sourceEnergyStream, destinationStream);\r\n }\r\n\r\n // add new energy streams\r\n const energyStreamsToAdd = diff.left;\r\n for (const energyStream of energyStreamsToAdd) {\r\n const destinationEnergyStream = new EnergyStream(energyStream, destinationInstance.ownerCase);\r\n destinationInstance.addEnergyStream(destinationEnergyStream);\r\n }\r\n\r\n // delete energy streams\r\n const energyStreamsToDelete = diff.right;\r\n for (const energyStreamToDelete of energyStreamsToDelete) {\r\n destinationInstance.removeEnergyStream(energyStreamToDelete.providerUnitOperationId);\r\n }\r\n }\r\n\r\n override ignoreForAutoMapping(key: string, source: BaseObject, destination: BaseObject): boolean {\r\n const result = super.ignoreForAutoMapping(key, source, destination);\r\n return key === 'energyStreams' || result;\r\n }\r\n}\r\n","import { DefaultBaseObjectFormGroupMapper } from './default-base-object-form-group.mapper';\r\nimport { BaseObject } from '../_models/base-object';\r\nimport { ArrayDiff } from '../_utils/array-diff';\r\nimport { FuelGasSourceImport } from '../_models/_unit-operations/fuel-gas/fuel-gas-source-import';\r\nimport { FuelGasSourceInformationStream } from '../_models/_unit-operations/fuel-gas/fuel-gas-source-information-stream';\r\n\r\nexport class FuelGasSourceImportFormGroupMapper extends DefaultBaseObjectFormGroupMapper {\r\n override map(source: BaseObject, destination: BaseObject): void {\r\n super.map(source, destination);\r\n\r\n const sourcePlainObject = source as FuelGasSourceImport;\r\n const destinationInstance = destination as FuelGasSourceImport;\r\n\r\n const arrayDiff = new ArrayDiff(sourcePlainObject.inletSourceInformationStreams);\r\n\r\n // diff with the source information streams as its base array\r\n const diff = arrayDiff.diff(\r\n destinationInstance.inletSourceInformationStreams,\r\n (l: FuelGasSourceInformationStream, r: FuelGasSourceInformationStream) => {\r\n return l.providerUnitOperationId === r.providerUnitOperationId;\r\n }\r\n );\r\n\r\n // map matching information streams\r\n for (const sourceInformationStream of diff.intersection) {\r\n const destinationStream = destinationInstance.inletSourceInformationStreams.find(\r\n informationStream =>\r\n informationStream.providerUnitOperationId === sourceInformationStream.providerUnitOperationId\r\n );\r\n\r\n super.map(sourceInformationStream, destinationStream);\r\n }\r\n\r\n // add new information streams\r\n const informationStreamsToAdd = diff.left;\r\n for (const informationStream of informationStreamsToAdd) {\r\n const destinationInformationStream = new FuelGasSourceInformationStream(\r\n informationStream,\r\n destinationInstance.ownerCase\r\n );\r\n destinationInstance.addInformationStream(destinationInformationStream);\r\n }\r\n\r\n // delete information streams\r\n const informationStreamsToDelete = diff.right;\r\n for (const informationStream of informationStreamsToDelete) {\r\n destinationInstance.removeInformationStream(informationStream.providerUnitOperationId);\r\n }\r\n }\r\n\r\n override ignoreForAutoMapping(key: string, source: BaseObject, destination: BaseObject): boolean {\r\n const result = super.ignoreForAutoMapping(key, source, destination);\r\n return key === 'inletSourceInformationStreams' || result;\r\n }\r\n}\r\n","import { DefaultBaseObjectFormGroupMapper } from './default-base-object-form-group.mapper';\r\nimport { BaseObject } from '../_models/base-object';\r\nimport { hasNumericValue } from '../_utils/utils';\r\nimport { BaseFuelGasSplitter } from '../_models/_unit-operations/fuel-gas/base-fuel-gas-splitter';\r\n\r\nexport abstract class BaseFuelGasSplitterFormGroupMapper extends DefaultBaseObjectFormGroupMapper {\r\n override map(source: BaseObject, destination: BaseObject) {\r\n super.map(source, destination);\r\n const sourcePlainObject = source as BaseFuelGasSplitter;\r\n const destinationInstance = destination as BaseFuelGasSplitter;\r\n\r\n destinationInstance.isOptimizable = !!sourcePlainObject.isOptimizable;\r\n this.mapRatioVariables(sourcePlainObject, destinationInstance);\r\n }\r\n\r\n mapRatioVariables(source: BaseFuelGasSplitter, destination: BaseFuelGasSplitter) {\r\n for (let i = 0; i < source.distributionRatioVariables.length; i++) {\r\n const sourceValue = source.distributionRatioVariables[i].value;\r\n\r\n // eslint-disable-next-line max-len\r\n destination.distributionRatioVariables[i].value = hasNumericValue(sourceValue) ? +sourceValue : undefined; // source.distributionRatioVariables[i].value;\r\n }\r\n }\r\n\r\n override ignoreForAutoMapping(key: string, source: BaseObject, destination: BaseObject): boolean {\r\n const sourcePlainObject = source as BaseFuelGasSplitter;\r\n return (\r\n super.ignoreForAutoMapping(key, source, destination) ||\r\n source[key] === sourcePlainObject.distributionRatioVariables\r\n );\r\n }\r\n}\r\n","import { BaseObject } from '../_models/base-object';\r\nimport { BaseFuelGasSplitterFormGroupMapper } from './base-fuel-gas-splitter-form-group.mapper';\r\n\r\nexport class FuelGasSplitterFormGroupMapper extends BaseFuelGasSplitterFormGroupMapper {\r\n override map(source: BaseObject, destination: BaseObject) {\r\n super.map(source, destination);\r\n }\r\n}\r\n","import { DefaultBaseObjectFormGroupMapper } from './default-base-object-form-group.mapper';\r\nimport { BaseObject } from '../_models/base-object';\r\nimport { WaterSource } from '../_models/_unit-operations/utilties/water-source';\r\nimport { hasNumericValue } from '../_utils/utils';\r\nimport { VariableStatus } from '../_config/variable-status.enum';\r\n\r\nexport class WaterSourceFormGroupMapper extends DefaultBaseObjectFormGroupMapper {\r\n override map(source: BaseObject, destination: BaseObject) {\r\n super.map(source, destination);\r\n\r\n const waterSource = destination as WaterSource;\r\n const simVars = [waterSource.temperature, waterSource.pressure, waterSource.vaporFraction];\r\n const solverCalculatedVariables = simVars.filter(sv => !hasNumericValue(sv.value));\r\n const userSpecifiedVariables = simVars.filter(sv => hasNumericValue(sv.value));\r\n\r\n if (userSpecifiedVariables.length / userSpecifiedVariables.length === solverCalculatedVariables.length) {\r\n solverCalculatedVariables.forEach(sv => {\r\n sv.variableStatus = VariableStatus.SOLVER_CALCULATED;\r\n });\r\n\r\n userSpecifiedVariables.forEach(sv => {\r\n sv.variableStatus = VariableStatus.USER_SPECIFIED;\r\n });\r\n }\r\n }\r\n}\r\n","import { DefaultBaseObjectFormGroupMapper } from './default-base-object-form-group.mapper';\r\nimport { BaseObject } from '../_models/base-object';\r\nimport { hasNumericValue } from '../_utils/utils';\r\nimport { Splitter } from '../_models/_unit-operations/splitter';\r\n\r\nexport abstract class BaseSplitterFormGroupMapper extends DefaultBaseObjectFormGroupMapper {\r\n override map(source: BaseObject, destination: BaseObject) {\r\n super.map(source, destination);\r\n const sourcePlainObject = source as Splitter;\r\n const destinationInstance = destination as Splitter;\r\n\r\n destinationInstance.isOptimizable = !!sourcePlainObject.isOptimizable;\r\n this.mapRatioVariables(sourcePlainObject, destinationInstance);\r\n }\r\n\r\n mapRatioVariables(source: Splitter, destination: Splitter) {\r\n for (let i = 0; i < source.distributionRatioVariables.length; i++) {\r\n const sourceValue = source.distributionRatioVariables[i].value;\r\n\r\n // eslint-disable-next-line max-len\r\n destination.distributionRatioVariables[i].value = hasNumericValue(sourceValue) ? +sourceValue : undefined; // source.distributionRatioVariables[i].value;\r\n }\r\n }\r\n\r\n override ignoreForAutoMapping(key: string, source: BaseObject, destination: BaseObject): boolean {\r\n const sourcePlainObject = source as Splitter;\r\n return (\r\n super.ignoreForAutoMapping(key, source, destination) ||\r\n source[key] === sourcePlainObject.distributionRatioVariables\r\n );\r\n }\r\n}\r\n","import { BaseObject } from '../_models/base-object';\r\nimport { BaseSplitterFormGroupMapper } from './base-splitter-form-group.mapper';\r\nimport { Splitter } from '../_models/_unit-operations/splitter';\r\nimport { hasNumericValue } from '../_utils/utils';\r\n\r\nexport class SplitterFormGroupMapper extends BaseSplitterFormGroupMapper {\r\n override map(source: BaseObject, destination: BaseObject) {\r\n super.map(source, destination);\r\n\r\n const sourcePlainObject = source as Splitter;\r\n const destinationInstance = destination as Splitter;\r\n\r\n this.mapDistributionRatioVariables(sourcePlainObject, destinationInstance);\r\n this.mapConstraintValues(destinationInstance);\r\n }\r\n\r\n private mapDistributionRatioVariables(sourcePlainObject: Splitter, destinationInstance: Splitter) {\r\n if (sourcePlainObject.distributionRatioVariables) {\r\n // TODO not sure about this check\r\n if (\r\n sourcePlainObject.distributionRatioVariables.length !== destinationInstance.distributionRatioVariables.length\r\n ) {\r\n throw new Error(\r\n `Source and destination number of Mixing Ratio variables don't match` +\r\n `${sourcePlainObject.name} - ${destinationInstance.distributionRatioVariables}`\r\n );\r\n }\r\n\r\n for (let i = 0; i < sourcePlainObject.distributionRatioVariables.length; i++) {\r\n if (hasNumericValue(sourcePlainObject.distributionRatioVariables[i].value)) {\r\n destinationInstance.distributionRatioVariables[i].value =\r\n +sourcePlainObject.distributionRatioVariables[i].value;\r\n } else {\r\n destinationInstance.distributionRatioVariables[i].value = undefined;\r\n }\r\n\r\n if (hasNumericValue(sourcePlainObject.distributionRatioVariables[i].minimumValue)) {\r\n destinationInstance.distributionRatioVariables[i].minimumValue =\r\n +sourcePlainObject.distributionRatioVariables[i].minimumValue;\r\n } else {\r\n destinationInstance.distributionRatioVariables[i].minimumValue = undefined;\r\n }\r\n\r\n if (hasNumericValue(sourcePlainObject.distributionRatioVariables[i].maximumValue)) {\r\n destinationInstance.distributionRatioVariables[i].maximumValue =\r\n +sourcePlainObject.distributionRatioVariables[i].maximumValue;\r\n } else {\r\n destinationInstance.distributionRatioVariables[i].maximumValue = undefined;\r\n }\r\n }\r\n }\r\n }\r\n\r\n mapConstraintValues(destinationInstance: Splitter) {\r\n let constraintsLength = Object.keys(destinationInstance.constraints.constraints).length;\r\n if (constraintsLength > 0) {\r\n Object.values(destinationInstance.constraints.constraints).forEach(cstr => {\r\n const mixingRatioVariable = destinationInstance.findDistributionRatioVariable(cstr.sourceUnitOperationId);\r\n\r\n switch (destinationInstance.isOptimizable) {\r\n case false:\r\n if (cstr.constraintName.includes('Minimum') || cstr.constraintName.includes('Maximum')) {\r\n delete destinationInstance.constraints.constraints[cstr.id];\r\n } else {\r\n cstr.constraintValue = mixingRatioVariable.value;\r\n }\r\n break;\r\n case true:\r\n if (cstr.constraintName.includes('Minimum')) {\r\n cstr.constraintValue = mixingRatioVariable.minimumValue;\r\n } else if (cstr.constraintName.includes('Maximum')) {\r\n cstr.constraintValue = mixingRatioVariable.maximumValue;\r\n } else {\r\n delete destinationInstance.constraints.constraints[cstr.id];\r\n }\r\n break;\r\n default:\r\n throw new Error('Unknown Optimization state');\r\n }\r\n });\r\n constraintsLength = Object.values(destinationInstance.constraints.constraints).length;\r\n }\r\n\r\n if (constraintsLength === 0) {\r\n destinationInstance.distributionRatioVariables.forEach(mixRatioVar => {\r\n destinationInstance.initConstraintsBasedInDistributionRatios(mixRatioVar);\r\n });\r\n }\r\n }\r\n\r\n override ignoreForAutoMapping(key: string, source: BaseObject, destination: BaseObject): boolean {\r\n const sourcePlainObject = source as Splitter;\r\n\r\n return (\r\n super.ignoreForAutoMapping(key, source, destination) ||\r\n source[key] === sourcePlainObject.distributionRatioVariables\r\n );\r\n }\r\n}\r\n","import { DefaultBaseObjectFormGroupMapper } from './default-base-object-form-group.mapper';\r\nimport { BaseObject } from '../_models/base-object';\r\nimport { hasNumericValue } from '../_utils/utils';\r\nimport { ProductTank } from '../_models/product-tank';\r\n\r\nexport abstract class BaseProductTankFormGroupMapper extends DefaultBaseObjectFormGroupMapper {\r\n override map(source: BaseObject, destination: BaseObject) {\r\n super.map(source, destination);\r\n const sourcePlainObject = source as ProductTank;\r\n const destinationInstance = destination as ProductTank;\r\n\r\n destinationInstance.isOptimizable = !!sourcePlainObject.isOptimizable;\r\n this.mapRatioVariables(sourcePlainObject, destinationInstance);\r\n }\r\n\r\n mapRatioVariables(source: ProductTank, destination: ProductTank) {\r\n for (let i = 0; i < source.distributionRatioVariables.length; i++) {\r\n const sourceValue = source.distributionRatioVariables[i].value;\r\n\r\n // eslint-disable-next-line max-len\r\n destination.distributionRatioVariables[i].value = hasNumericValue(sourceValue) ? +sourceValue : undefined;\r\n }\r\n }\r\n\r\n override ignoreForAutoMapping(key: string, source: BaseObject, destination: BaseObject): boolean {\r\n const sourcePlainObject = source as ProductTank;\r\n return (\r\n super.ignoreForAutoMapping(key, source, destination) ||\r\n source[key] === sourcePlainObject.distributionRatioVariables\r\n );\r\n }\r\n}\r\n","import { BaseObject } from '../_models/base-object';\r\nimport { BaseProductTankFormGroupMapper } from './base-product-tank-form-group.mapper';\r\n\r\n// TODO why is this empty\r\nexport class ProductTankFormGroupMapper extends BaseProductTankFormGroupMapper {\r\n override map(source: BaseObject, destination: BaseObject) {\r\n super.map(source, destination);\r\n }\r\n}\r\n","import { DefaultBaseObjectFormGroupMapper } from './default-base-object-form-group.mapper';\r\nimport { BaseObject } from '../_models/base-object';\r\nimport { Hydrotreater } from '../_models/_unit-operations/hydrotreater';\r\nimport { DefaultMappedType } from '../_models/default-mapped-type';\r\n\r\nexport class HydrotreaterFormGroupMapper extends DefaultBaseObjectFormGroupMapper {\r\n override map(source: BaseObject, destination: BaseObject) {\r\n super.map(source, destination);\r\n\r\n const destinationHydrotreater = destination as Hydrotreater;\r\n const sourceHydrotreater = source as any as DefaultMappedType<Hydrotreater>;\r\n\r\n if (\r\n sourceHydrotreater.hydrogenUseRateVariables.length !== destinationHydrotreater.hydrogenUseRateVariables.length\r\n ) {\r\n throw new Error('Source and destination should have the same amount of hydrogen use rate variables!');\r\n }\r\n\r\n for (let i = 0; i < sourceHydrotreater.hydrogenUseRateVariables.length; i++) {\r\n destinationHydrotreater.hydrogenUseRateVariables[i].value = sourceHydrotreater.hydrogenUseRateVariables[i].value;\r\n }\r\n }\r\n\r\n override ignoreForAutoMapping(key: string, source: BaseObject, destination: BaseObject): boolean {\r\n return (\r\n super.ignoreForAutoMapping(key, source, destination) || (key as keyof Hydrotreater) === 'hydrogenUseRateVariables'\r\n );\r\n }\r\n}\r\n","import { DefaultBaseObjectFormGroupMapper } from './default-base-object-form-group.mapper';\r\nimport { BaseObject } from '../_models/base-object';\r\nimport { Mixer } from '../_models/_unit-operations/mixer';\r\nimport { hasNumericValue } from '../_utils/utils';\r\nimport { MixerBlendRecipeOption } from '../_config/unit-operations/mixer-enums';\r\n\r\nexport class MixerFormGroupMapper extends DefaultBaseObjectFormGroupMapper {\r\n override map(source: BaseObject, destination: BaseObject) {\r\n super.map(source, destination);\r\n\r\n // not really mixer though...\r\n const sourcePlainObject = source as Mixer;\r\n const destinationInstance = destination as Mixer;\r\n\r\n this.mapMixingRatioVariables(sourcePlainObject, destinationInstance);\r\n this.mapConstraintValues(destinationInstance);\r\n }\r\n\r\n private mapMixingRatioVariables(sourcePlainObject: Mixer, destinationInstance: Mixer) {\r\n if (sourcePlainObject.mixingRatioVariables) {\r\n // TODO not sure about this check\r\n if (sourcePlainObject.mixingRatioVariables.length !== destinationInstance.mixingRatioVariables.length) {\r\n throw new Error(\r\n `Source and destination number of Mixing Ratio variables don't match` +\r\n `${sourcePlainObject.name} - ${destinationInstance.mixingRatioVariables}`\r\n );\r\n }\r\n\r\n for (let i = 0; i < sourcePlainObject.mixingRatioVariables.length; i++) {\r\n if (hasNumericValue(sourcePlainObject.mixingRatioVariables[i].value)) {\r\n destinationInstance.mixingRatioVariables[i].value = +sourcePlainObject.mixingRatioVariables[i].value;\r\n } else {\r\n destinationInstance.mixingRatioVariables[i].value = undefined;\r\n }\r\n\r\n if (hasNumericValue(sourcePlainObject.mixingRatioVariables[i].minimumValue)) {\r\n destinationInstance.mixingRatioVariables[i].minimumValue =\r\n +sourcePlainObject.mixingRatioVariables[i].minimumValue;\r\n } else {\r\n destinationInstance.mixingRatioVariables[i].minimumValue = undefined;\r\n }\r\n\r\n if (hasNumericValue(sourcePlainObject.mixingRatioVariables[i].maximumValue)) {\r\n destinationInstance.mixingRatioVariables[i].maximumValue =\r\n +sourcePlainObject.mixingRatioVariables[i].maximumValue;\r\n } else {\r\n destinationInstance.mixingRatioVariables[i].maximumValue = undefined;\r\n }\r\n }\r\n }\r\n }\r\n\r\n mapConstraintValues(destinationInstance: Mixer) {\r\n let constraintsLength = Object.keys(destinationInstance.constraints.constraints).length;\r\n if (constraintsLength > 0) {\r\n Object.values(destinationInstance.constraints.constraints).forEach(cstr => {\r\n const mixingRatioVariable = destinationInstance.findMixingRatioVariable(cstr.sourceUnitOperationId);\r\n\r\n switch (destinationInstance.blendRecipeOption) {\r\n case MixerBlendRecipeOption.EXACT:\r\n if (cstr.constraintName.includes('Minimum') || cstr.constraintName.includes('Maximum')) {\r\n delete destinationInstance.constraints.constraints[cstr.id];\r\n } else {\r\n cstr.constraintValue = mixingRatioVariable.value;\r\n }\r\n break;\r\n case MixerBlendRecipeOption.RANGE:\r\n if (cstr.constraintName.includes('Minimum')) {\r\n cstr.constraintValue = mixingRatioVariable.minimumValue;\r\n } else if (cstr.constraintName.includes('Maximum')) {\r\n cstr.constraintValue = mixingRatioVariable.maximumValue;\r\n } else {\r\n delete destinationInstance.constraints.constraints[cstr.id];\r\n }\r\n break;\r\n default:\r\n throw new Error('Unknown Blend Recipe Option');\r\n }\r\n });\r\n constraintsLength = Object.values(destinationInstance.constraints.constraints).length;\r\n }\r\n\r\n if (constraintsLength === 0) {\r\n destinationInstance.mixingRatioVariables.forEach(mixRatioVar => {\r\n destinationInstance.initConstraintsBasedInMixingRatios(mixRatioVar);\r\n });\r\n }\r\n }\r\n\r\n override ignoreForAutoMapping(key: string, source: BaseObject, destination: BaseObject): boolean {\r\n const sourcePlainObject = source as Mixer;\r\n return (\r\n super.ignoreForAutoMapping(key, source, destination) || source[key] === sourcePlainObject.mixingRatioVariables\r\n );\r\n }\r\n}\r\n","import { DefaultBaseObjectFormGroupMapper } from './default-base-object-form-group.mapper';\r\nimport { BaseObject } from '../_models/base-object';\r\nimport { BitumenConversion } from '../_models/_unit-operations/bitumen-conversion';\r\nimport { DefaultMappedType } from '../_models/default-mapped-type';\r\nimport { BitumenConversionOutlet } from '../_models/_unit-operations/bitumen-conversion-outlet';\r\n\r\nexport class BitumenConversionFormGroupMapper extends DefaultBaseObjectFormGroupMapper {\r\n override map(source: BaseObject, destination: BaseObject) {\r\n super.map(source, destination);\r\n\r\n const destinationBitumenConversion = destination as BitumenConversion;\r\n const sourcePlainObject = source as any as DefaultMappedType<BitumenConversion>;\r\n\r\n if (sourcePlainObject.outlets.length !== destinationBitumenConversion.outlets.length) {\r\n throw new Error('Source and destination should have the same amount of outlets!');\r\n }\r\n\r\n sourcePlainObject.outlets.forEach((plainOutlet: DefaultMappedType<BitumenConversionOutlet>, i: number) => {\r\n const destinationOutlet = destinationBitumenConversion.outlets[i];\r\n this.simVarMapper.map(plainOutlet.yield, destinationOutlet.yield);\r\n this.simVarMapper.map(plainOutlet.price, destinationOutlet.price);\r\n destinationOutlet.fluidAnalysisId = plainOutlet.fluidAnalysisId;\r\n });\r\n }\r\n\r\n override ignoreForAutoMapping(key: string, source: BaseObject, destination: BaseObject): boolean {\r\n return super.ignoreForAutoMapping(key, source, destination) || (key as keyof BitumenConversion) === 'outlets';\r\n }\r\n}\r\n","// To map unit operations from property windows\r\nimport { BaseObject } from '../_models/base-object';\r\nimport { SimulationVariableMapper } from './simulation-variable-mapper';\r\nimport { unitOperationsConfig } from '../_config/unit-operations.config';\r\nimport { WaterBoilerFormGroupMapper } from './water-boiler-form-group.mapper';\r\nimport { WaterSourceImportFormGroupMapper } from './water-source-import-form-group.mapper';\r\nimport { DefaultBaseObjectFormGroupMapper } from './default-base-object-form-group.mapper';\r\nimport { WaterSinkImportFormGroupMapper } from './water-sink-import-form-group.mapper';\r\nimport { WaterHeaderFormGroupMapper } from './water-header-form-group.mapper';\r\nimport { WaterSplitterFormGroupMapper } from './water-splitter-form-group.mapper';\r\nimport { FuelGasSinkImportFormGroupMapper } from './fuel-gas-sink-import-form-group.mapper';\r\nimport { FuelGasSourceImportFormGroupMapper } from './fuel-gas-source-import-form-group.mapper';\r\nimport { FuelGasSplitterFormGroupMapper } from './fuel-gas-splitter-form-group.mapper';\r\nimport { WaterSourceFormGroupMapper } from './water-source-form-group.mapper';\r\nimport { SplitterFormGroupMapper } from './splitter-form-group.mapper';\r\nimport { ProductTankFormGroupMapper } from './product-tank-form-group.mapper';\r\nimport { HydrotreaterFormGroupMapper } from './hydrotreater-form-group-mapper';\r\nimport { MixerFormGroupMapper } from './mixer-form-group.mapper';\r\nimport { BitumenConversionFormGroupMapper } from './bitumen-conversion-form-group-mapper';\r\n\r\nexport class BaseObjectFormGroupMapper {\r\n private readonly mappers: { [id: string]: DefaultBaseObjectFormGroupMapper };\r\n private readonly defaultMapper: DefaultBaseObjectFormGroupMapper;\r\n\r\n constructor(private simVarMapper: SimulationVariableMapper) {\r\n this.mappers = {};\r\n // add here the mappers that correspond to each unit operation... by category\r\n this.mappers[unitOperationsConfig.bitumenConversion.key] = new BitumenConversionFormGroupMapper(this.simVarMapper);\r\n this.mappers[unitOperationsConfig.refinery.key] = new DefaultBaseObjectFormGroupMapper(this.simVarMapper);\r\n this.mappers[unitOperationsConfig.pipe.key] = new DefaultBaseObjectFormGroupMapper(this.simVarMapper);\r\n this.mappers[unitOperationsConfig.hydrotreater.key] = new HydrotreaterFormGroupMapper(this.simVarMapper);\r\n this.mappers[unitOperationsConfig.lgoHydrotreater.key] = new DefaultBaseObjectFormGroupMapper(this.simVarMapper);\r\n this.mappers[unitOperationsConfig.splitter.key] = new SplitterFormGroupMapper(this.simVarMapper);\r\n this.mappers[unitOperationsConfig.mixer.key] = new MixerFormGroupMapper(this.simVarMapper);\r\n this.mappers[unitOperationsConfig.productTank.key] = new ProductTankFormGroupMapper(this.simVarMapper);\r\n\r\n this.mappers[unitOperationsConfig.waterSource.key] = new WaterSourceFormGroupMapper(this.simVarMapper);\r\n this.mappers[unitOperationsConfig.waterSourceImport.key] = new WaterSourceImportFormGroupMapper(this.simVarMapper);\r\n this.mappers[unitOperationsConfig.waterSinkImport.key] = new WaterSinkImportFormGroupMapper(this.simVarMapper);\r\n\r\n this.mappers[unitOperationsConfig.waterBoiler.key] = new WaterBoilerFormGroupMapper(this.simVarMapper);\r\n\r\n this.mappers[unitOperationsConfig.waterHeader.key] = new WaterHeaderFormGroupMapper(this.simVarMapper);\r\n this.mappers[unitOperationsConfig.waterSplitter.key] = new WaterSplitterFormGroupMapper(this.simVarMapper);\r\n this.mappers[unitOperationsConfig.sulfurPlant.key] = new DefaultBaseObjectFormGroupMapper(this.simVarMapper);\r\n this.mappers[unitOperationsConfig.waterTurbine.key] = new DefaultBaseObjectFormGroupMapper(this.simVarMapper);\r\n this.mappers[unitOperationsConfig.waterCogeneration.key] = new DefaultBaseObjectFormGroupMapper(this.simVarMapper);\r\n\r\n this.mappers[unitOperationsConfig.fuelGasSinkImport.key] = new FuelGasSinkImportFormGroupMapper(this.simVarMapper);\r\n this.mappers[unitOperationsConfig.fuelGasSourceImport.key] = new FuelGasSourceImportFormGroupMapper(\r\n this.simVarMapper\r\n );\r\n this.mappers[unitOperationsConfig.fuelGasSink.key] = new DefaultBaseObjectFormGroupMapper(this.simVarMapper);\r\n this.mappers[unitOperationsConfig.fuelGasFlare.key] = new DefaultBaseObjectFormGroupMapper(this.simVarMapper);\r\n\r\n this.mappers[unitOperationsConfig.fuelGasSource.key] = new DefaultBaseObjectFormGroupMapper(this.simVarMapper);\r\n this.mappers[unitOperationsConfig.fuelGasSplitter.key] = new FuelGasSplitterFormGroupMapper(this.simVarMapper);\r\n this.mappers[unitOperationsConfig.fuelGasAmineContactor.key] = new DefaultBaseObjectFormGroupMapper(\r\n this.simVarMapper\r\n );\r\n }\r\n\r\n /**\r\n *\r\n * @param source the source of the values, normally it should be a plain javascript object coming from\r\n * FormGroup.value, however it should work for base objects as well\r\n * @param destination a base object that will receive the new values\r\n */\r\n map(source: BaseObject, destination: BaseObject) {\r\n this.mappers[destination.category].map(source, destination);\r\n }\r\n\r\n updateVariableStatus(source: BaseObject, destination: BaseObject) {\r\n this.mappers[destination.category].updateVariableStatus(source, destination);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { hasNumericValue, isNullOrUndefined } from '../_utils/utils';\r\nimport { SimulationVariable } from '../_models';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SimulationVariableMapper {\r\n map(source: SimulationVariable | any, destination: SimulationVariable) {\r\n if (source.id) {\r\n destination.id = source.id;\r\n }\r\n\r\n if (source.quantity) {\r\n destination.quantity = source.quantity;\r\n }\r\n\r\n if (hasNumericValue(source.value)) {\r\n destination.value = +source.value;\r\n } else {\r\n destination.value = undefined;\r\n }\r\n\r\n if (source.unit) {\r\n destination.unit = source.unit;\r\n }\r\n\r\n if (source.status) {\r\n destination.variableStatus = source.variableStatus;\r\n }\r\n\r\n if (!isNullOrUndefined(source.isActive)) {\r\n destination.isActive = !!source.isActive;\r\n }\r\n }\r\n}\r\n","import { isTypeFunction } from '../../_utils/utils';\r\n\r\nexport interface InletDistributionRatioVariablesOwner {\r\n addInletDistributionRatioVariables(unitOperationId: string): void;\r\n removeInletDistributionRatioVariables(unitOperationId: string): void;\r\n}\r\n\r\nexport function isInletDistributionRatioVariablesOwner(val: any): val is InletDistributionRatioVariablesOwner {\r\n return (\r\n isTypeFunction(val.addInletDistributionRatioVariables) && isTypeFunction(val.removeInletDistributionRatioVariables)\r\n );\r\n}\r\n","import { isTypeFunction } from '../../_utils/utils';\r\n\r\nexport interface OutletDistributionRatioVariablesOwner {\r\n addOutletDistributionRatioVariables(unitOperationId: string): void;\r\n removeOutletDistributionRatioVariables(unitOperationId: string): void;\r\n}\r\n\r\nexport function isOutletDistributionRatioVariablesOwner(val: any): val is OutletDistributionRatioVariablesOwner {\r\n return (\r\n isTypeFunction(val.addOutletDistributionRatioVariables) &&\r\n isTypeFunction(val.removeOutletDistributionRatioVariables)\r\n );\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class SendCaseModalService {\r\n private showSubject = new Subject();\r\n showRequest = this.showSubject.asObservable();\r\n\r\n show() {\r\n this.showSubject.next();\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable, Subject } from 'rxjs';\r\n\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { Case, CaseSettings, Project, UnitOperation } from '../_models';\r\nimport { ApiService } from './api.service';\r\nimport { FlowsheetDiagramService } from './flowsheet-diagram/flowsheet-diagram.service';\r\nimport { SuncorUnitOperation } from '../_models/_unit-operations/suncor-unit-operation';\r\nimport { LogManagerService } from '../flowsheet/log-manager/log-manager.service';\r\nimport { OldCaseValidator } from '../_models/_validation/old-case-validator';\r\nimport { ProgressIndicatorService } from '../flowsheet/progress-indicator/progress-indicator.service';\r\nimport { SendCaseModalService } from '../flowsheet/send-case-modal/send-case-modal.service';\r\nimport { SolveCaseRequest } from '../_models/solve-case-request';\r\nimport { AppInfo } from '../_config/app-info';\r\nimport { environment } from '../../environments/environment';\r\nimport { CaseDeserializerService } from './case-deserializer/case-deserializer.service';\r\nimport { ProjectDeserializerService } from './project-deserializer/project-deserializer.service';\r\nimport { SankeyDiagramService } from '../flowsheet/sankey-diagram/sankey-diagram.service';\r\nimport { Flowsheet } from '../_models/flowsheet-manager/flowsheet';\r\nimport { DRU } from '../_models/_unit-operations/dru';\r\nimport { VAC } from '../_models/_unit-operations/vac';\r\nimport { CommodityTank } from '../_models/_unit-operations/commodity-tank';\r\nimport { ProductTank } from '../_models/product-tank';\r\nimport { FileService } from './file.service';\r\nimport { Hydrotreater } from '../_models/_unit-operations/hydrotreater';\r\nimport { SuncorFluidAnalysis } from '../_models/_fluid/suncor-fluid-analysis';\r\nimport { ResourceDataService } from './resource-data.service';\r\nimport { BitumenConversion } from '../_models/_unit-operations/bitumen-conversion';\r\nimport { StreamFactory } from '../_models/_streams/stream-factory';\r\nimport { BaseStream } from '../_models/_streams/base-stream';\r\nimport { WaterSplitter } from '../_models/_unit-operations/utilties/water-splitter';\r\nimport { BaseObjectFormGroupMapper } from '../_mappers/base-object-form-group.mapper';\r\nimport { SimulationVariableMapper } from '../_mappers/simulation-variable-mapper';\r\nimport { BaseObjectFormGroupWrapper } from '../_form-utils/base-object-form-group-wrapper';\r\nimport { WaterHeader } from '../_models/_unit-operations/utilties/water-header';\r\nimport { GasFluidAnalysis } from '../_models/_fluid/gas-fluid-analysis';\r\nimport { FuelGasSplitter } from '../_models/_unit-operations/fuel-gas/fuel-gas-splitter';\r\nimport { isInletDistributionRatioVariablesOwner } from '../_models/_unit-operations/inlet-distribution-ratio-variables-owner';\r\nimport { isOutletDistributionRatioVariablesOwner } from '../_models/_unit-operations/outlet-distribution-ratio-variables-owner';\r\n\r\n@Injectable()\r\nexport class CoreService {\r\n project: Project;\r\n currentCase: Case;\r\n\r\n // when base objects of a case change, this could be fired\r\n // TODO evaluate if this is still needed or if it is good enough to use\r\n // TODO the unitOperationAdded/Updated/Removed observables\r\n private caseChangedSubject = new Subject();\r\n caseChangedRequest = this.caseChangedSubject.asObservable();\r\n\r\n // when the current case is replaced (or big amount of data is updated)\r\n // fire this observable\r\n private currentCaseReplacedSubject = new Subject<{ wholeProjectReplaced: boolean }>();\r\n currentCaseReplacedRequest = this.currentCaseReplacedSubject.asObservable();\r\n\r\n private unitOperationAddedSubject = new Subject<SuncorUnitOperation | UnitOperation>();\r\n unitOperationAddedRequest = this.unitOperationAddedSubject.asObservable();\r\n\r\n private assayAddedSubject = new Subject<SuncorFluidAnalysis | GasFluidAnalysis>();\r\n assayAddedRequest = this.assayAddedSubject.asObservable();\r\n\r\n private unitOperationUpdatedSubject = new Subject<{ unitOperation: UnitOperation; changesInValues: boolean }>();\r\n unitOperationUpdatedRequest = this.unitOperationUpdatedSubject.asObservable();\r\n\r\n private assayUpdatedSubject = new Subject<{\r\n assay: SuncorFluidAnalysis | GasFluidAnalysis;\r\n changesInValues: boolean;\r\n }>();\r\n\r\n assayUpdatedRequest = this.assayUpdatedSubject.asObservable();\r\n\r\n private unitOperationRemovedSubject = new Subject<UnitOperation>();\r\n unitOperationRemovedRequest = this.unitOperationRemovedSubject.asObservable();\r\n\r\n private assayRemovedSubject = new Subject<SuncorFluidAnalysis | GasFluidAnalysis>();\r\n assayRemovedRequest = this.assayRemovedSubject.asObservable();\r\n\r\n private streamRemovedSubject = new Subject<BaseStream>();\r\n streamRemovedRequest = this.streamRemovedSubject.asObservable();\r\n\r\n private streamAddedSubject = new Subject<BaseStream>();\r\n streamAddedRequest = this.streamAddedSubject.asObservable();\r\n\r\n constructor(\r\n private apiService: ApiService,\r\n private flowsheetDiagramService: FlowsheetDiagramService,\r\n private logManager: LogManagerService,\r\n private progressIndicator: ProgressIndicatorService,\r\n private sendCaseModal: SendCaseModalService,\r\n private projectDeserializer: ProjectDeserializerService,\r\n private caseDeserializer: CaseDeserializerService,\r\n private fileService: FileService,\r\n private toastr: ToastrService,\r\n private resourceDataService: ResourceDataService,\r\n private sankeyDiagramService: SankeyDiagramService\r\n ) {\r\n this.resourceDataService.loadResourceFile();\r\n this.createEmptyProject(false);\r\n // TODO: Remove this\r\n (<any>window).service = this;\r\n\r\n this.flowsheetDiagramService.nodeCreatedRequest.subscribe(nodeData => {\r\n this.createUnitOpFromNodeData(nodeData);\r\n });\r\n\r\n // TODO remove this, subscribe to the streamAddedRequest instead\r\n this.flowsheetDiagramService.connectionFromSplitterRequest.subscribe((data: any) => {\r\n this.createSplitDistributionVariable(data.splitterId, data.unitOperationId);\r\n });\r\n\r\n // TODO remove this, subscribe to the streamAddedRequest instead\r\n this.flowsheetDiagramService.cutRatioVariableConnectionRequest.subscribe((data: any) => {\r\n this.createCutDistributionVariable(data.id, data.unitOperationId);\r\n });\r\n\r\n // TODO remove this, subscribe to the streamAddedRequest instead\r\n this.flowsheetDiagramService.connectionFromBitumenConversionRequest.subscribe((data: any) => {\r\n this.createBitumenConversionOutlet(data.id, data.unitOperationId);\r\n });\r\n\r\n this.flowsheetDiagramService.linkCreatedRequest.subscribe((data: any) => {\r\n this.addStream(data);\r\n });\r\n\r\n this.flowsheetDiagramService.linkDeletedRequest.subscribe((data: any) => {\r\n this.removeStream(data);\r\n });\r\n\r\n this.flowsheetDiagramService.clearCaseRequest.subscribe(() => {\r\n this.clearCurrentCaseResults();\r\n });\r\n\r\n this.flowsheetDiagramService.nodeDeletedRequest.subscribe((unitOperationId: string) => {\r\n this.removeUnitOperation(unitOperationId);\r\n });\r\n\r\n this.flowsheetDiagramService.nodeDraggedRequest.subscribe((unitOperationData: any) => {\r\n this.updateUnitOperationLocation(unitOperationData);\r\n });\r\n\r\n this.unitOperationUpdatedRequest.subscribe(data => {\r\n this.unitOperationUpdated(data.unitOperation, data.changesInValues);\r\n });\r\n }\r\n\r\n // TODO: Should this only create a new case?\r\n createEmptyProject(redrawDiagram: boolean): void {\r\n this.project = new Project();\r\n this.project.version = AppInfo.FILE_VERSION.toString();\r\n this.project.name = 'Project';\r\n\r\n this.currentCase = this.project.createEmptyCase();\r\n\r\n // TODO do not fire this observable here\r\n this.notifyCaseChanged();\r\n\r\n // TODO only fire this observable\r\n this.notifyCurrentCaseReplaced({ wholeProjectReplaced: true });\r\n\r\n if (redrawDiagram) {\r\n this.caseToGoJSModel(this.currentCase);\r\n }\r\n }\r\n\r\n // why this method includes so many units besides splitters.... man...\r\n createSplitDistributionVariable(splitterId: string, unitOperationId: string) {\r\n const splitter = this.currentCase.getUnitOperation(splitterId);\r\n\r\n if (splitter instanceof WaterSplitter) {\r\n splitter.addDistributionVariable(unitOperationId);\r\n } else if (splitter instanceof FuelGasSplitter) {\r\n splitter.addDistributionVariable(unitOperationId);\r\n } else if (splitter instanceof Hydrotreater) {\r\n // TODO why is the hydrotreater with the splitters?... restored as it was before\r\n // wat... Dewey get out of there, that's not your family\r\n splitter.addDistributionVariable(unitOperationId);\r\n } else if (splitter instanceof CommodityTank) {\r\n splitter.addDistributionVariable(unitOperationId);\r\n } else if (splitter instanceof ProductTank) {\r\n splitter.addDistributionVariable(unitOperationId);\r\n }\r\n }\r\n\r\n createCutDistributionVariable(nId: string, unitOperationId: string) {\r\n const uo = <DRU | VAC>this.currentCase.getUnitOperation(nId);\r\n uo.addDistributionVariable(unitOperationId);\r\n }\r\n\r\n createBitumenConversionOutlet(id: string, unitOperationId: string) {\r\n const uo = <BitumenConversion>this.currentCase.getUnitOperation(id);\r\n if (uo) {\r\n uo.addOutlet(unitOperationId);\r\n }\r\n }\r\n\r\n /**\r\n * Creates an unit operation using node data provided by gojs\r\n * @param nodeData An object containing the source data for the unit operation\r\n */\r\n createUnitOpFromNodeData(nodeData: any): void {\r\n // at this point nodeData has been modified by GoJS\r\n const uo = this.currentCase.createAndAddToUnitOperations(\r\n {\r\n category: nodeData.category,\r\n key: nodeData.key,\r\n name: nodeData.name,\r\n flowsheetId: nodeData.flowsheetId || this.currentCase.getActiveFlowsheet().unitOperationId,\r\n location: { x: nodeData.location.x, y: nodeData.location.y },\r\n },\r\n this.resourceDataService.getUOResourceData(nodeData.category)\r\n );\r\n\r\n uo.name = uo.ownerCase.calculateUnitOperationName(uo.name);\r\n this.flowsheetDiagramService.saveUnitOperationOnModel(uo, nodeData);\r\n\r\n this.unitOperationAddedSubject.next(uo);\r\n this.clearCurrentCaseResults();\r\n }\r\n\r\n /**\r\n * Copies an unit operation that exists on current case's current flowsheet and\r\n * returns it\r\n * @param id the id of the unit operation to copy\r\n * @returns {UnitOperation} A copy of an unit operation given its id\r\n */\r\n copyUnitOperationById(id: string): UnitOperation {\r\n return this.currentCase.cloneUnitOperation(this.currentCase.getUnitOperation(id));\r\n }\r\n\r\n /**\r\n * Saves an unit operation, writes the values from unitOperationCopy to a matching (by id) unit operation\r\n * stored on current case's current flowsheet\r\n * @param unitOperationCopy\r\n */\r\n saveUnitOperationFromTemplateDrivenForm(unitOperationCopy: UnitOperation): void {\r\n const originalUnitOperation = this.currentCase.getUnitOperation(unitOperationCopy.id);\r\n const originalName = originalUnitOperation.name;\r\n\r\n let changesInValues = false;\r\n if (unitOperationCopy.detectChanges(originalUnitOperation)) {\r\n changesInValues = true;\r\n }\r\n\r\n unitOperationCopy.updateStatus(originalUnitOperation);\r\n unitOperationCopy.convertToInternalUnit();\r\n\r\n this.currentCase.saveUnitOperation(<UnitOperation>unitOperationCopy);\r\n const changesInName = originalName !== unitOperationCopy.name;\r\n\r\n // results cleared in the end of the process\r\n if (changesInValues || changesInName) {\r\n this.notifyUnitOperationUpdated(originalUnitOperation, changesInValues);\r\n }\r\n }\r\n\r\n // TODO it looks like this should not exist\r\n saveUnitOperationWithReactiveFormWhenCustomCodeChange(\r\n unitOperationCopy: any,\r\n formGroupWrapper: BaseObjectFormGroupWrapper\r\n ): void {\r\n const originalUnitOperation = this.currentCase.getUnitOperation(unitOperationCopy.id);\r\n const changesInValues = formGroupWrapper.detectChangesInValues(originalUnitOperation.category);\r\n\r\n if (changesInValues) {\r\n this.notifyUnitOperationUpdated(unitOperationCopy, changesInValues);\r\n }\r\n }\r\n\r\n // TODO it looks like this should not exist\r\n saveUnitOperationWhenCustomCodeChange(unitOperationCopy: any): void {\r\n const originalUnitOperation = this.currentCase.getUnitOperation(unitOperationCopy.id);\r\n const changesInValues = unitOperationCopy.detectChanges(originalUnitOperation);\r\n\r\n if (changesInValues) {\r\n this.notifyUnitOperationUpdated(unitOperationCopy, changesInValues);\r\n }\r\n }\r\n\r\n saveUnitOperationFromReactiveForm(formGroupWrapper: BaseObjectFormGroupWrapper, unitOperationCopy: UnitOperation) {\r\n const svMapper = new SimulationVariableMapper();\r\n const mapper = new BaseObjectFormGroupMapper(svMapper);\r\n\r\n // TODO nice hack to allow change detection in name... should not be used REMOVE when not needed\r\n formGroupWrapper.updateBaseObjectNameOnFormGroup(unitOperationCopy.name);\r\n // at this point, the unit operation is a \"copy\" of the actual unit operation...\r\n const actualUnitOperation = this.currentCase.getUnitOperation(unitOperationCopy.id);\r\n\r\n const source = formGroupWrapper.getRawValue();\r\n mapper.updateVariableStatus(source, actualUnitOperation);\r\n mapper.map(source, actualUnitOperation);\r\n\r\n // changes can be detected earlier\r\n const changesInValues = formGroupWrapper.detectChangesInValues(unitOperationCopy.category);\r\n const changesInName = formGroupWrapper.detectChangesInName();\r\n if (changesInValues || changesInName) {\r\n this.notifyUnitOperationUpdated(actualUnitOperation as SuncorUnitOperation, changesInValues);\r\n }\r\n }\r\n\r\n /**\r\n *\r\n * @param unitOperation The updated unit operation\r\n * @param changesInValues False if the unit operation had changes only in its name property\r\n */\r\n unitOperationUpdated(unitOperation: UnitOperation, changesInValues: boolean) {\r\n if (changesInValues) {\r\n unitOperation.resetReadiness();\r\n }\r\n\r\n this.flowsheetDiagramService.saveUnitOperationOnModel(unitOperation);\r\n\r\n if (changesInValues) {\r\n this.clearCurrentCaseResults('Block specifications changed, your case is not updated, please re-run');\r\n }\r\n }\r\n\r\n notifyUnitOperationUpdated(unitOperation: UnitOperation, changesInValues: boolean) {\r\n this.unitOperationUpdatedSubject.next({ unitOperation, changesInValues });\r\n }\r\n\r\n notifyAssayUpdated(assay: SuncorFluidAnalysis | GasFluidAnalysis, changesInValues: boolean) {\r\n this.assayUpdatedSubject.next({ assay, changesInValues });\r\n }\r\n\r\n notifyAssayAdded(assay: SuncorFluidAnalysis | GasFluidAnalysis) {\r\n this.assayAddedSubject.next(assay);\r\n }\r\n\r\n notifyAssayDeleted(assay: SuncorFluidAnalysis | GasFluidAnalysis) {\r\n this.assayRemovedSubject.next(assay);\r\n }\r\n\r\n saveCaseSettings(cs: CaseSettings) {\r\n if (cs.detectChanges(this.currentCase.caseSettings)) {\r\n this.clearCurrentCaseResults();\r\n }\r\n\r\n this.currentCase.saveCaseSettings(cs);\r\n }\r\n\r\n saveStream(s: BaseStream) {\r\n // for now, this is only for updating the color on the gojs model\r\n this.flowsheetDiagramService.saveStreamOnModel(s);\r\n }\r\n\r\n saveCurrentFlowsheet() {\r\n if (!this.currentCase.getActiveFlowsheet()) {\r\n // eslint-disable-next-line no-console\r\n console.warn('The current case didnt have an active flowsheet... setting one');\r\n this.currentCase.setActiveFlowsheet(new Flowsheet({}, this.currentCase));\r\n this.currentCase.setMainFlowsheetId(this.currentCase.getActiveFlowsheet().id);\r\n this.currentCase.addToPools(this.currentCase.getActiveFlowsheet());\r\n this.flowsheetDiagramService.updateUnitOperationsInfoOnDiagram(this.currentCase);\r\n }\r\n\r\n // this seems kind of redundant\r\n this.currentCase.flowsheetPool[this.currentCase.getActiveFlowsheet().id].setDiagramJson(\r\n this.flowsheetDiagramService.getDiagramJson()\r\n );\r\n }\r\n\r\n /**\r\n *\r\n * @param streamData data coming from diagram service\r\n */\r\n private addStream(streamData: any) {\r\n const s = StreamFactory.create(streamData, this.currentCase);\r\n s.inletUnitOperationId = streamData.inletUnitOperationId;\r\n s.outletUnitOperationId = streamData.outletUnitOperationId;\r\n s.setName(this.currentCase.calculateMaterialStreamName('Stream'));\r\n s.setQuantities();\r\n s.setDefaultValues();\r\n s.isRecycleStream = streamData.isRecycleStream;\r\n this.currentCase.addToPools(s);\r\n s.addSimVarsToPool();\r\n this.flowsheetDiagramService.saveStreamOnModel(s);\r\n\r\n const { inletUnitOperation, outletUnitOperation } = s;\r\n if (inletUnitOperation instanceof WaterHeader) {\r\n inletUnitOperation.addDistributionVariable(s.outletUnitOperationId);\r\n }\r\n\r\n // TODO all unit operations that have distribution ratio variables should\r\n // implement this interface. Period.\r\n if (isInletDistributionRatioVariablesOwner(outletUnitOperation)) {\r\n outletUnitOperation.addInletDistributionRatioVariables(s.inletUnitOperationId);\r\n }\r\n\r\n if (isOutletDistributionRatioVariablesOwner(inletUnitOperation)) {\r\n inletUnitOperation.addOutletDistributionRatioVariables(s.outletUnitOperation.id);\r\n }\r\n\r\n this.streamAddedSubject.next(s);\r\n }\r\n\r\n private removeStream(streamData: { id: string }, unitOperationBeingDeleted?: UnitOperation) {\r\n const stream = this.currentCase.getMaterialStream(streamData.id);\r\n\r\n if (!stream) {\r\n return;\r\n }\r\n\r\n this.detachStream(stream, unitOperationBeingDeleted);\r\n\r\n this.streamRemovedSubject.next(stream);\r\n this.currentCase.deleteMaterialStreamById(stream.id);\r\n }\r\n\r\n /**\r\n * Remove all the variables that are created when a stream is connected\r\n * @param stream the stream to detach\r\n * @param unitOperationBeingDeleted the deleted unit operation causing the stream deletion\r\n */\r\n detachStream(stream: BaseStream, unitOperationBeingDeleted?: UnitOperation) {\r\n const inletUnitOp = stream.inletUnitOperation;\r\n const outletUnitOp = stream.outletUnitOperation;\r\n\r\n // TODO we can assume the detached unit operations have been modified\r\n // TODO if needed, this could be actually part of the case itself!\r\n if (unitOperationBeingDeleted !== inletUnitOp) {\r\n if (isOutletDistributionRatioVariablesOwner(inletUnitOp)) {\r\n inletUnitOp.removeOutletDistributionRatioVariables(outletUnitOp.id);\r\n this.unitOperationUpdatedSubject.next({ unitOperation: inletUnitOp, changesInValues: true });\r\n }\r\n\r\n if (inletUnitOp instanceof DRU || inletUnitOp instanceof VAC) {\r\n inletUnitOp.removeDistributionRatioVariable(stream.outletUnitOperationId);\r\n inletUnitOp.calculateDistributionVariables();\r\n } else if (inletUnitOp instanceof ProductTank) {\r\n inletUnitOp.removeDistributionRatioVariable(stream.outletUnitOperationId);\r\n } else if (inletUnitOp instanceof BitumenConversion) {\r\n inletUnitOp.removeOutlet(outletUnitOp.id);\r\n } else if (inletUnitOp instanceof WaterSplitter) {\r\n inletUnitOp.removeDistributionRatioVariable(stream.outletUnitOperationId);\r\n } else if (inletUnitOp instanceof FuelGasSplitter) {\r\n inletUnitOp.removeDistributionRatioVariable(stream.outletUnitOperationId);\r\n } else if (inletUnitOp instanceof WaterHeader) {\r\n inletUnitOp.removeDistributionRatioVariable(stream.outletUnitOperationId);\r\n }\r\n }\r\n\r\n // TODO we can assume the detached unit operations have been modified\r\n // TODO if needed, this could be actually part of the case itself!\r\n if (unitOperationBeingDeleted !== outletUnitOp) {\r\n if (outletUnitOp instanceof CommodityTank) {\r\n outletUnitOp.removeDistributionRatioVariable(stream.inletUnitOperationId);\r\n }\r\n if (outletUnitOp instanceof Hydrotreater) {\r\n outletUnitOp.removeDistributionRatioVariable(stream.inletUnitOperationId);\r\n }\r\n\r\n if (isInletDistributionRatioVariablesOwner(outletUnitOp)) {\r\n outletUnitOp.removeInletDistributionRatioVariables(inletUnitOp.id);\r\n this.unitOperationUpdatedSubject.next({ unitOperation: outletUnitOp, changesInValues: true });\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Calls to Case's deleteUnitOperation method, removes an unit\r\n * operation and all its references to case's pools\r\n *\r\n * @param id The id of the unit operation to delete\r\n */\r\n removeUnitOperation(id: string) {\r\n const uo = this.currentCase.getUnitOperation(id);\r\n\r\n // TODO delete attached streams here...\r\n const attachedStreams = this.currentCase.getAttachedStreams(id);\r\n\r\n for (const attachedStream of attachedStreams) {\r\n this.removeStream(attachedStream, uo);\r\n }\r\n\r\n this.unitOperationRemovedSubject.next(uo);\r\n\r\n if (uo.isFlowsheetOwner) {\r\n this.notifyAllChildUnitOperationsRemoved(uo);\r\n }\r\n\r\n // this is called from gojs in a diagram event.\r\n // the results are cleared in a GoJS callback\r\n this.currentCase.deleteUnitOperationById(id);\r\n\r\n // TODO streams should be deleted and proper events fired...\r\n }\r\n\r\n private notifyAllChildUnitOperationsRemoved(owner: UnitOperation) {\r\n const allChildUnitOperations = this.currentCase.findUnitOperationsByFlowsheetId(owner.id);\r\n for (const childUnitOperation of allChildUnitOperations) {\r\n if (childUnitOperation.isFlowsheetOwner) {\r\n console.log(\r\n childUnitOperation.name,\r\n 'is a flowsheet owner',\r\n 'lets notify about all the children being deleted'\r\n );\r\n this.notifyAllChildUnitOperationsRemoved(childUnitOperation);\r\n }\r\n\r\n this.unitOperationRemovedSubject.next(childUnitOperation);\r\n }\r\n }\r\n\r\n updateUnitOperationLocation(unitOperationData: any) {\r\n let uo: any = this.currentCase.getUnitOperation(unitOperationData.id);\r\n\r\n if (uo) {\r\n uo = uo as SuncorUnitOperation;\r\n uo.location.x = unitOperationData.location.x;\r\n uo.location.y = unitOperationData.location.y;\r\n }\r\n }\r\n\r\n /**\r\n * Deletes the results for the current case and notifies subscribers\r\n * @param message\r\n */\r\n clearCurrentCaseResults(message?: string) {\r\n if (this.currentCase.isSolved) {\r\n this.currentCase.clearResults();\r\n\r\n this.logManager.warning(message || 'Your case is not updated, please re-run');\r\n\r\n // TODO evaluate if this call should be kept here.\r\n this.notifyCaseChanged();\r\n\r\n // this.caseToGoJSModel(this.currentCase);\r\n this.flowsheetDiagramService.updateUnitOperationsInfoOnDiagram(this.currentCase);\r\n this.flowsheetDiagramService.updateStreamData(this.currentCase);\r\n }\r\n }\r\n\r\n /**\r\n * Serialize current project\r\n * For use before downloading a project file\r\n */\r\n projectToJson(): string {\r\n // update file version before downloading\r\n this.project.version = AppInfo.FILE_VERSION.toString();\r\n return JSON.stringify(this.project);\r\n }\r\n\r\n /**\r\n * Takes a case object that will be sent to GoJS component and there, will be translated to a model\r\n * @param c The case whose data will be used to create a new GoJS model\r\n */\r\n caseToGoJSModel(c: Case) {\r\n this.flowsheetDiagramService.drawDiagram(c);\r\n }\r\n\r\n parseSolvedResponse(solvedResponse: any): SolveCaseRequest {\r\n return {\r\n email: '',\r\n userId: '',\r\n solveOption: solvedResponse.solveOption,\r\n version: solvedResponse.version,\r\n username: solvedResponse.username,\r\n caseModel: this.caseDeserializer.plainObjectToCase(solvedResponse.caseModel),\r\n };\r\n }\r\n\r\n /**\r\n * Sends a pWater project to Web API\r\n */\r\n solveCase(): void {\r\n const validation = OldCaseValidator.validate(this.currentCase);\r\n // disabling makeReady code\r\n // const fullyConnected = this.flowsheetDiagramService.validateConnections(this.currentCase);\r\n // validation.valid = validation.valid && fullyConnected;\r\n if (!validation.valid) {\r\n for (const message of validation.messages) {\r\n this.logManager.error(message);\r\n }\r\n return;\r\n }\r\n\r\n this.logManager.info('Solving case.');\r\n this.logManager.info(`Objective function: ${this.currentCase.objectiveFunction.objectiveFunctionName}`);\r\n this.progressIndicator.show({ showStopButton: true, solveCanceller: this.apiService.solveCanceller }); // wot\r\n this.saveCurrentFlowsheet();\r\n\r\n if (this.currentCase.solveOption === 'sendResultsViaEmail') {\r\n this.sendSolveCaseAsyncRequest();\r\n } else {\r\n this.sendSolveCaseRequest();\r\n }\r\n }\r\n\r\n private sendSolveCaseAsyncRequest() {\r\n // this block to send whole file with diagrams\r\n const formData = this.getProjectFormData();\r\n this.apiService.solveCaseAsync(formData, this.currentCase.id).subscribe(\r\n response => {\r\n const result = response.solvedResponse;\r\n if (response.success) {\r\n this.toastr.success(result.message, '', { positionClass: 'toast-top-right' });\r\n } else {\r\n this.toastr.warning(result.message, '', { positionClass: 'toast-top-right' });\r\n }\r\n this.progressIndicator.hide();\r\n },\r\n () => {\r\n this.toastr.error('An internal error happened in the calculation engine', '', {\r\n positionClass: 'toast-top-right',\r\n });\r\n this.sendCaseModal.show();\r\n this.logManager.error('An internal error happened in the calculation engine.');\r\n this.progressIndicator.hide();\r\n }\r\n );\r\n }\r\n\r\n private sendSolveCaseRequest() {\r\n this.apiService.solveCase(this.project, this.currentCase.id).subscribe(response => {\r\n if (response.success) {\r\n this.caseSolveSuccess(response, response.backupFlowsheets, response.activeFlowsheet);\r\n } else {\r\n // this.sendCaseModal.setError(response.error);\r\n this.sendCaseModal.show();\r\n this.logManager.error('An internal error happened in the calculation engine.');\r\n }\r\n\r\n // TODO should this be fired here, only notifyCurrentCaseReplaced;\r\n this.notifyCaseChanged({ solveSuccess: this.currentCase.isSolved, isCaseReady: this.currentCase.isReady });\r\n this.notifyCurrentCaseReplaced();\r\n });\r\n }\r\n\r\n private caseSolveSuccess(response, backupFlowsheets?, activeFlowsheet?) {\r\n const { calculator } = this.currentCase;\r\n this.currentCase.removeFromPools(calculator);\r\n\r\n const solvedResponse = this.parseSolvedResponse(response.solvedResponse);\r\n\r\n const solvedCaseIndex = this.project.findCaseIndexById(solvedResponse.caseModel.id);\r\n this.project.cases[solvedCaseIndex] = solvedResponse.caseModel;\r\n this.currentCase = solvedResponse.caseModel;\r\n if (backupFlowsheets) {\r\n this.currentCase.flowsheetPool = backupFlowsheets;\r\n }\r\n if (activeFlowsheet) {\r\n this.currentCase.setActiveFlowsheet(this.currentCase.flowsheetPool[activeFlowsheet]);\r\n }\r\n\r\n if (this.currentCase.getActiveFlowsheet().isSubflowsheet()) {\r\n this.sankeyDiagramService.caseToSankeyDiagram(\r\n this.currentCase,\r\n this.currentCase.getActiveFlowsheet().unitOperationId,\r\n true\r\n );\r\n } else {\r\n this.sankeyDiagramService.caseToSankeyDiagram(this.currentCase);\r\n }\r\n this.flowsheetDiagramService.updateStreamData(this.currentCase);\r\n this.flowsheetDiagramService.updateRecycleStreamData(this.currentCase);\r\n this.flowsheetDiagramService.zoomToFit();\r\n this.flowsheetDiagramService.updateUnitOperationsInfoOnDiagram(this.currentCase);\r\n\r\n if (response.solvedResponse.caseModel.loggedMessages) {\r\n this.logManager.logSerializedMessages(response.solvedResponse.caseModel.loggedMessages);\r\n }\r\n\r\n if (!environment.production) {\r\n this.logManager.info(`Time to map the case ${response.solvedResponse.caseModel.timeProfile.timeToMap} ms`);\r\n this.logManager.info(`Time to solve the case ${response.solvedResponse.caseModel.timeProfile.timeToSolve} ms`);\r\n this.logManager.info(`Time to get a response from the API: ${Math.round(response.timeToGetResponse)} ms`);\r\n }\r\n\r\n // TODO dangerous assignment to the case's diagram\r\n // when a subflowsheet is active that diagram is assigned to the case..\r\n this.updateCurrentCaseDiagramString();\r\n }\r\n\r\n sendCaseToProcessEcology(): Observable<any> {\r\n const formData = this.getProjectFormData();\r\n return this.apiService.sendCaseToProcessEcology(formData);\r\n }\r\n\r\n getProjectFormData(): Promise<FormData> {\r\n const formData = new FormData();\r\n\r\n // TODO dangerous assignment\r\n this.updateCurrentCaseDiagramString();\r\n return this.fileService.generateFile(this.project.cases, this.projectToJson()).then(content => {\r\n formData.append('project', content);\r\n return formData;\r\n });\r\n }\r\n\r\n setCurrentCaseById(id: string) {\r\n const newCurrentCase = this.project.findCaseById(id);\r\n // this is horribly wrong and dangerous - assumes that the case being changed has its main flowsheet open\r\n // why was this needed?\r\n // TODO dangerous assignment - probably the most dangerous\r\n this.updateCurrentCaseDiagramString();\r\n if (newCurrentCase) {\r\n this.setCurrentCase(newCurrentCase);\r\n }\r\n }\r\n\r\n setCurrentFlowsheet(flowsheet: Flowsheet) {\r\n this.currentCase.setActiveFlowsheet(flowsheet);\r\n }\r\n\r\n createFlowsheetAndSave(unitOperationId?) {\r\n return this.currentCase.createFlowsheet(unitOperationId);\r\n }\r\n\r\n setCurrentCase(c: Case) {\r\n this.currentCase = c;\r\n\r\n if (c.getDiagramString() !== 'undefined' && !!c.getDiagramString()) {\r\n this.flowsheetDiagramService.setDiagramModel(c.getDiagramString());\r\n } else {\r\n this.caseToGoJSModel(this.currentCase);\r\n }\r\n\r\n // TODO do not fire this here, only fire currentCaseReplacedSubject\r\n this.notifyCaseChanged();\r\n this.notifyCurrentCaseReplaced();\r\n this.logManager.info(`Case ${c.name} selected`);\r\n }\r\n\r\n // this is kind of dangerous\r\n updateCurrentCaseDiagramString() {\r\n this.currentCase.setDiagramString(this.flowsheetDiagramService.getDiagramJson());\r\n }\r\n\r\n notifyCurrentCaseReplaced(options?: { wholeProjectReplaced: boolean }) {\r\n this.currentCaseReplacedSubject.next(options);\r\n }\r\n\r\n notifyCaseChanged(p: { solveSuccess: boolean; isCaseReady: boolean } = null): void {\r\n if (p) {\r\n this.caseChangedSubject.next(p);\r\n return;\r\n }\r\n\r\n this.caseChangedSubject.next();\r\n }\r\n}\r\n","import { Point } from 'gojs';\r\nimport { UnitOperation } from '../../_models';\r\nimport { FlowsheetDiagramService } from '../flowsheet-diagram/flowsheet-diagram.service';\r\nimport { CoreService } from '../core.service';\r\nimport { Flowsheet } from '../../_models/flowsheet-manager/flowsheet';\r\nimport { ArrayDiff } from '../../_utils/array-diff';\r\n\r\nenum DeletedPortType {\r\n INLET = 'inlet',\r\n OUTLET = 'outlet',\r\n}\r\n\r\nexport abstract class AbstractSubFlowsheetHandler {\r\n protected constructor(\r\n protected flowsheetDiagramService: FlowsheetDiagramService,\r\n protected coreService: CoreService\r\n ) {}\r\n\r\n /**\r\n * Gets the data of the node that should be created by default when the flowsheet is\r\n * opened\r\n */\r\n abstract getDefaultNodeData(): any;\r\n abstract getSubFlowsheetInlets(uoId: string): UnitOperation[];\r\n abstract getSubFlowsheetOutlets(uoId: string): UnitOperation[];\r\n\r\n /**\r\n * Performs operations needed for opening the flowsheet\r\n * @param uoId\r\n */\r\n abstract syncWhileFlowsheetLoading(uoId: string): void;\r\n\r\n /**\r\n * Synchronizes the inlet and outlet ports of all the blocks that own a flowsheet of this type.\r\n * The parent flowsheet of those blocks should be active for this to work.\r\n */\r\n abstract syncAllBlocksInletOutletPorts(): void;\r\n\r\n /**\r\n * Creates the flowsheet, saves it and sets it as current\r\n * @param uoId\r\n */\r\n createFlowsheet(uoId: string): Flowsheet {\r\n const flowsheet = this.coreService.createFlowsheetAndSave(uoId);\r\n this.coreService.setCurrentFlowsheet(flowsheet);\r\n this.flowsheetDiagramService.clearModel();\r\n\r\n const data = this.getDefaultNodeData();\r\n\r\n if (data) {\r\n data.flowsheetId = uoId;\r\n this.coreService.createUnitOpFromNodeData(data);\r\n }\r\n\r\n return flowsheet;\r\n }\r\n\r\n protected addNewNodeOnDiagram(data, x: number, y: number) {\r\n const pos = new Point();\r\n pos.x = x;\r\n pos.y = y;\r\n this.flowsheetDiagramService.addNodeData(data);\r\n const newNode = this.flowsheetDiagramService.gojsDiagram.findNodeForData(data);\r\n newNode.location = pos;\r\n return newNode.data;\r\n }\r\n\r\n /**\r\n * Adjusts the number of ports of the node in the first level flowsheet based on the number of inlets and outlets\r\n * added in its second level flowsheet\r\n * @param uo The unit operation whose links will be updated\r\n */\r\n protected syncBlockInletOutletPorts(uo: UnitOperation): void {\r\n const outletUnitOperations = this.getSubFlowsheetOutlets(uo.id);\r\n const inletUnitOperations = this.getSubFlowsheetInlets(uo.id);\r\n\r\n const node = this.flowsheetDiagramService.gojsDiagram.findNodesByExample({ id: uo.id }).first();\r\n if (!node.data.outletPorts) {\r\n node.data.outletPorts = [];\r\n }\r\n\r\n if (!node.data.inletPorts) {\r\n node.data.inletPorts = [];\r\n }\r\n\r\n this.handleDeletedInletPorts(uo, node, inletUnitOperations);\r\n this.handleDeletedOutletPorts(uo, node, outletUnitOperations);\r\n\r\n inletUnitOperations.forEach(inlet => {\r\n this.addOrUpdateInletPort(inlet, node);\r\n });\r\n\r\n outletUnitOperations.forEach(commodity => {\r\n this.addOrUpdateOutletPort(commodity, node);\r\n });\r\n\r\n this.flowsheetDiagramService.gojsDiagram.updateAllRelationshipsFromData();\r\n this.flowsheetDiagramService.gojsDiagram.updateAllTargetBindings();\r\n this.flowsheetDiagramService.gojsDiagram.requestUpdate();\r\n }\r\n\r\n protected handleDeletedInletPorts(\r\n ownerUnitOperation: UnitOperation,\r\n node: go.Node,\r\n inetUnitOperations: UnitOperation[]\r\n ) {\r\n const deletedInlets = new ArrayDiff(node.data.inletPorts as any[]).left(\r\n inetUnitOperations,\r\n (port, uo) => uo.id === port.portId\r\n );\r\n\r\n if (deletedInlets.length) {\r\n this.handleDeletedPorts(ownerUnitOperation, node, deletedInlets, DeletedPortType.INLET);\r\n }\r\n }\r\n\r\n protected handleDeletedOutletPorts(\r\n ownerUnitOperation: UnitOperation,\r\n node: go.Node,\r\n outletUnitOperations: UnitOperation[]\r\n ) {\r\n const deletedOutlets = new ArrayDiff(node.data.outletPorts as any[]).left(\r\n outletUnitOperations,\r\n (port, uo) => uo.id === port.portId\r\n );\r\n\r\n if (deletedOutlets.length) {\r\n this.handleDeletedPorts(ownerUnitOperation, node, deletedOutlets, DeletedPortType.OUTLET);\r\n }\r\n }\r\n\r\n protected handleDeletedPorts(\r\n uo: UnitOperation,\r\n node: go.Node,\r\n deletedPorts: any[],\r\n deletedPortType: DeletedPortType\r\n ) {\r\n deletedPorts.forEach(c => {\r\n const stream = this.coreService.currentCase.filterSuncorMaterialStreams(s => {\r\n return deletedPortType === DeletedPortType.INLET ? s.toPort === c.portId : s.fromPort === c.portId;\r\n })[0];\r\n if (stream) {\r\n this.coreService.currentCase.deleteMaterialStreamById(stream.id);\r\n }\r\n\r\n const portsArray = deletedPortType === DeletedPortType.INLET ? node.data.inletPorts : node.data.outletPorts;\r\n const index = portsArray.indexOf(c);\r\n\r\n this.flowsheetDiagramService.gojsDiagram.startTransaction('updatePort');\r\n // This deletes the attached stream automatically\r\n this.flowsheetDiagramService.gojsDiagram.model.removeArrayItem(portsArray, index);\r\n this.flowsheetDiagramService.gojsDiagram.commitTransaction('updatePort');\r\n });\r\n\r\n // horrible hack to avoid visual glitch\r\n const upNode = this.flowsheetDiagramService.gojsDiagram.findNodesByExample({ id: uo.id }).first();\r\n upNode.location.x += 1;\r\n upNode.location.x -= 1;\r\n }\r\n\r\n protected addOrUpdateOutletPort(uo: UnitOperation, portNode: go.Node) {\r\n const newPortData = {\r\n portId: uo.id,\r\n tooltip: uo.name,\r\n };\r\n const portsArray = portNode.data.outletPorts;\r\n\r\n this.addOrUpdatePort(portNode, uo, portsArray, newPortData);\r\n }\r\n\r\n protected addOrUpdateInletPort(inlet: UnitOperation, portNode: go.Node) {\r\n const newPortData = {\r\n portId: inlet.id,\r\n tooltip: inlet.name,\r\n };\r\n\r\n const portsArray = portNode.data.inletPorts;\r\n this.addOrUpdatePort(portNode, inlet, portsArray, newPortData);\r\n }\r\n\r\n protected addOrUpdatePort(\r\n portNode: go.Node,\r\n uo: UnitOperation,\r\n portsArray,\r\n newPortData: { tooltip: string; portId: string }\r\n ) {\r\n if (portNode.findPort(uo.id) === portNode) {\r\n this.flowsheetDiagramService.gojsDiagram.startTransaction('addPort');\r\n // and add it to the Array of port data\r\n this.flowsheetDiagramService.gojsDiagram.model.insertArrayItem(portsArray, -1, newPortData);\r\n this.flowsheetDiagramService.gojsDiagram.commitTransaction('addPort');\r\n } else {\r\n this.flowsheetDiagramService.gojsDiagram.startTransaction('changePort');\r\n const { data } = portNode.findPort(uo.id) as any;\r\n this.flowsheetDiagramService.gojsDiagram.model.setDataProperty(data, 'tooltip', uo.name);\r\n this.flowsheetDiagramService.gojsDiagram.commitTransaction('changePort');\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { unitOperationsConfig } from '../../_config/unit-operations.config';\r\nimport { FlowsheetDiagramService } from '../flowsheet-diagram/flowsheet-diagram.service';\r\nimport { CoreService } from '../core.service';\r\nimport { Upgrader } from '../../_models/_unit-operations/upgrader';\r\nimport { UnitOperation } from '../../_models';\r\nimport { AbstractSubFlowsheetHandler } from './abstract-sub-flowsheet-handler';\r\n\r\n@Injectable()\r\nexport class UpgraderSubFlowsheetHandler extends AbstractSubFlowsheetHandler {\r\n // eslint-disable-next-line @typescript-eslint/no-useless-constructor\r\n constructor(flowsheetDiagramService: FlowsheetDiagramService, coreService: CoreService) {\r\n super(flowsheetDiagramService, coreService);\r\n }\r\n\r\n getDefaultNodeData(): any {\r\n return this.addUpgraderInlet(-600, -150, unitOperationsConfig.upgraderInlet.displayName);\r\n }\r\n\r\n private addUpgraderInlet(x: number, y: number, name: string): any {\r\n const data = {\r\n category: unitOperationsConfig.upgraderInlet.key,\r\n loc: '',\r\n name,\r\n };\r\n\r\n return this.addNewNodeOnDiagram(data, x, y);\r\n }\r\n\r\n /**\r\n * This method is run when the flowsheet is loading\r\n * @param uoId\r\n */\r\n syncWhileFlowsheetLoading(uoId: string) {\r\n this.syncL2WithUpgraderPorts(uoId);\r\n }\r\n\r\n private syncL2WithUpgraderPorts(upgraderId: string): void {\r\n const upgrader = this.coreService.currentCase.unitOperationPool[upgraderId] as Upgrader;\r\n const upgraderInlets = this.coreService.currentCase.filterUnitOperations((uo: UnitOperation) => {\r\n return uo.category === unitOperationsConfig.upgraderInlet.key && uo.flowsheetId === upgraderId;\r\n });\r\n\r\n // TODO remove this - hasTwoInlets is no longer used - and remove the called methods\r\n if (upgrader.hasTwoInlets && upgraderInlets.length < 2) {\r\n this.addExtraUpgraderInlet(upgraderId);\r\n } else if (!upgrader.hasTwoInlets && upgraderInlets.length === 2) {\r\n this.removeExtraUpgraderInlet();\r\n }\r\n }\r\n\r\n getSubFlowsheetInlets(uoId: string): UnitOperation[] {\r\n return this.coreService.currentCase.filterUnitOperations((u: UnitOperation) => {\r\n return u.category === unitOperationsConfig.upgraderInlet.key && u.flowsheetId === uoId;\r\n });\r\n }\r\n\r\n getSubFlowsheetOutlets(uoId: string): UnitOperation[] {\r\n return this.coreService.currentCase.filterUnitOperations((u: UnitOperation) => {\r\n return u.category === unitOperationsConfig.commodityTank.key && u.flowsheetId === uoId;\r\n });\r\n }\r\n\r\n private removeExtraUpgraderInlet() {\r\n const node = this.flowsheetDiagramService.gojsDiagram.findNodesByExample({ name: 'Upgrader inlet 2' }).first();\r\n if (node) {\r\n this.flowsheetDiagramService.gojsDiagram.remove(node);\r\n this.coreService.currentCase.deleteUnitOperationById(node.data.id);\r\n }\r\n }\r\n\r\n private addExtraUpgraderInlet(upgraderId) {\r\n const data = this.addUpgraderInlet(-600, 150, 'Upgrader inlet 2');\r\n data.flowsheetId = upgraderId;\r\n this.coreService.createUnitOpFromNodeData(data);\r\n\r\n // const unitOperationCategory = this.coreService.currentCase.getUnitOperation(upgraderId).category;\r\n // this.level2OpenedSubject.next(unitOperationCategory);\r\n }\r\n\r\n syncAllBlocksInletOutletPorts(): void {\r\n const upgraders = this.coreService.currentCase.filterUnitOperations((uo: Upgrader) => {\r\n return uo.category === unitOperationsConfig.upgrader.key && uo.useSubFlowsheet;\r\n });\r\n\r\n upgraders.forEach(uo => {\r\n this.syncBlockInletOutletPorts(uo);\r\n });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { AbstractSubFlowsheetHandler } from './abstract-sub-flowsheet-handler';\r\nimport { unitOperationsConfig } from '../../_config/unit-operations.config';\r\nimport { UnitOperation } from '../../_models';\r\nimport { FlowsheetDiagramService } from '../flowsheet-diagram/flowsheet-diagram.service';\r\nimport { CoreService } from '../core.service';\r\nimport { Extraction } from '../../_models/_unit-operations/extraction';\r\n\r\n@Injectable()\r\nexport class ExtractionSubFlowsheetHandler extends AbstractSubFlowsheetHandler {\r\n // eslint-disable-next-line @typescript-eslint/no-useless-constructor\r\n constructor(flowsheetDiagramService: FlowsheetDiagramService, coreService: CoreService) {\r\n super(flowsheetDiagramService, coreService);\r\n }\r\n\r\n getDefaultNodeData(): any {\r\n return this.addInletTransferUnit(-600, -150, unitOperationsConfig.inletTransferUnit.displayName);\r\n }\r\n\r\n private addInletTransferUnit(x: number, y: number, name: string): any {\r\n const data = {\r\n category: unitOperationsConfig.inletTransferUnit.key,\r\n loc: '',\r\n name,\r\n };\r\n\r\n return this.addNewNodeOnDiagram(data, x, y);\r\n }\r\n\r\n getSubFlowsheetInlets(uoId: string): UnitOperation[] {\r\n return this.coreService.currentCase.filterUnitOperations((u: UnitOperation) => {\r\n return u.category === unitOperationsConfig.inletTransferUnit.key && u.flowsheetId === uoId;\r\n });\r\n }\r\n\r\n getSubFlowsheetOutlets(uoId: string): UnitOperation[] {\r\n return this.coreService.currentCase.filterUnitOperations((u: UnitOperation) => {\r\n return u.category === unitOperationsConfig.outletTransferUnit.key && u.flowsheetId === uoId;\r\n });\r\n }\r\n\r\n syncWhileFlowsheetLoading(): void {\r\n // yeah, nothing\r\n }\r\n\r\n syncAllBlocksInletOutletPorts(): void {\r\n const extractionBlocks = this.coreService.currentCase.filterUnitOperations((uo: Extraction) => {\r\n return uo.category === unitOperationsConfig.extraction.key && uo.useSubFlowsheet;\r\n });\r\n\r\n extractionBlocks.forEach(uo => {\r\n this.syncBlockInletOutletPorts(uo);\r\n });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { AbstractSubFlowsheetHandler } from './abstract-sub-flowsheet-handler';\r\nimport { UnitOperation } from '../../_models';\r\nimport { CoreService } from '../core.service';\r\nimport { FlowsheetDiagramService } from '../flowsheet-diagram/flowsheet-diagram.service';\r\n\r\n@Injectable()\r\nexport class UtilitiesFlowsheetHandler extends AbstractSubFlowsheetHandler {\r\n // eslint-disable-next-line @typescript-eslint/no-useless-constructor\r\n constructor(flowsheetDiagramService: FlowsheetDiagramService, coreService: CoreService) {\r\n super(flowsheetDiagramService, coreService);\r\n }\r\n\r\n getDefaultNodeData(): any {\r\n return undefined;\r\n }\r\n\r\n getSubFlowsheetInlets(): UnitOperation[] {\r\n return [];\r\n }\r\n\r\n getSubFlowsheetOutlets(): UnitOperation[] {\r\n return [];\r\n }\r\n\r\n syncWhileFlowsheetLoading(): void {}\r\n\r\n syncAllBlocksInletOutletPorts(): void {}\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { AbstractSubFlowsheetHandler } from './abstract-sub-flowsheet-handler';\r\nimport { UnitOperation } from '../../_models';\r\nimport { FlowsheetDiagramService } from '../flowsheet-diagram/flowsheet-diagram.service';\r\nimport { CoreService } from '../core.service';\r\n\r\n@Injectable()\r\nexport class FuelGasSubFlowsheetHandler extends AbstractSubFlowsheetHandler {\r\n // eslint-disable-next-line @typescript-eslint/no-useless-constructor\r\n constructor(flowsheetDiagramService: FlowsheetDiagramService, coreService: CoreService) {\r\n super(flowsheetDiagramService, coreService);\r\n }\r\n\r\n getDefaultNodeData(): any {\r\n return undefined;\r\n }\r\n\r\n getSubFlowsheetInlets(uoId: string): UnitOperation[] {\r\n return [];\r\n }\r\n\r\n getSubFlowsheetOutlets(uoId: string): UnitOperation[] {\r\n return [];\r\n }\r\n\r\n syncAllBlocksInletOutletPorts(): void {}\r\n\r\n syncWhileFlowsheetLoading(uoId: string): void {}\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { CoreService } from '../core.service';\r\nimport { FlowsheetDiagramService } from '../flowsheet-diagram/flowsheet-diagram.service';\r\nimport { AbstractSubFlowsheetHandler } from './abstract-sub-flowsheet-handler';\r\nimport { unitOperationsConfig } from '../../_config/unit-operations.config';\r\nimport { UpgraderSubFlowsheetHandler } from './upgrader-sub-flowsheet-handler.service';\r\nimport { ExtractionSubFlowsheetHandler } from './extraction-sub-flowsheet-handler.service';\r\nimport { SankeyDiagramService } from '../../flowsheet/sankey-diagram/sankey-diagram.service';\r\nimport { Flowsheet } from '../../_models/flowsheet-manager/flowsheet';\r\nimport { UtilitiesFlowsheetHandler } from './utilities-flowsheet-handler';\r\nimport { StreamCategory } from '../../_config/stream-category.enum';\r\nimport { FuelGasSubFlowsheetHandler } from './fuel-gas-sub-flowsheet-handler';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class SubFlowsheetService {\r\n private subFlowsheetHandlers: { [key: string]: AbstractSubFlowsheetHandler } = {};\r\n private activeSubFlowsheetHandler: AbstractSubFlowsheetHandler;\r\n\r\n // this is a state variable... should not be used? this should be emptied when a new project file is loaded\r\n private allSubFlowsheetStacks: { [id: string]: Flowsheet[] } = {};\r\n\r\n constructor(\r\n private coreService: CoreService,\r\n private flowsheetDiagramService: FlowsheetDiagramService,\r\n private upgraderSubFlowsheetHandler: UpgraderSubFlowsheetHandler,\r\n private utilitiesFlowsheetHandler: UtilitiesFlowsheetHandler,\r\n private fuelGasFlowsheetHandler: FuelGasSubFlowsheetHandler,\r\n private extractionSubFlowsheetHandler: ExtractionSubFlowsheetHandler,\r\n private sankeyService: SankeyDiagramService\r\n ) {\r\n this.enableMaterialStreams();\r\n this.subFlowsheetHandlers[unitOperationsConfig.upgrader.key] = this.upgraderSubFlowsheetHandler;\r\n this.subFlowsheetHandlers[unitOperationsConfig.waterUtilityUnitOperation.key] = this.utilitiesFlowsheetHandler;\r\n this.subFlowsheetHandlers[unitOperationsConfig.fuelGasUtilityUnitOperation.key] = this.fuelGasFlowsheetHandler;\r\n this.subFlowsheetHandlers[unitOperationsConfig.extraction.key] = this.extractionSubFlowsheetHandler;\r\n\r\n this.coreService.currentCaseReplacedRequest.subscribe((options: { wholeProjectReplaced: boolean }) => {\r\n this.onCurrentCaseReplaced(options);\r\n });\r\n }\r\n\r\n open(uoId): void {\r\n if (!this.currentCaseSubFlowsheetStack.length) {\r\n this.setSubFlowsheetStyle();\r\n }\r\n\r\n // this has to be called before swapping flowsheets\r\n this.coreService.saveCurrentFlowsheet();\r\n\r\n // this also swaps the flowsheet...\r\n const flowsheet = this.changeFlowsheet(uoId);\r\n\r\n this.currentCaseSubFlowsheetStack.push(flowsheet);\r\n this.prepareSubFlowsheet(uoId);\r\n }\r\n\r\n private prepareSubFlowsheet(uoId: string) {\r\n this.setActiveSubFlowsheetHandler(uoId);\r\n this.activeSubFlowsheetHandler.syncWhileFlowsheetLoading(uoId);\r\n\r\n // TODO examine carefully the necessity of the following two lines - do they impact performance?\r\n this.flowsheetDiagramService.updateUnitOperationsInfoOnDiagram(this.coreService.currentCase);\r\n this.flowsheetDiagramService.updateStreamData(this.coreService.currentCase);\r\n\r\n this.sankeyService.caseToSankeyDiagram(this.coreService.currentCase, uoId, true);\r\n\r\n if (this.isUtilitiesFlowsheetHandlerActive) {\r\n // when the water-utility-unit-operation flowsheet is active, another type of stream will be created\r\n this.enableWaterStreams();\r\n } else if (this.isFuelGasFlowsheetHandlerActive) {\r\n this.enableFuelGasStreams();\r\n }\r\n }\r\n\r\n private changeFlowsheet(uoId: string): Flowsheet {\r\n let flowsheet = this.coreService.currentCase.findFlowsheetByUnitOperationId(uoId);\r\n\r\n const unitOperationCategory = this.coreService.currentCase.getUnitOperation(uoId).category;\r\n const newSubFlowsheetHandler = this.subFlowsheetHandlers[unitOperationCategory];\r\n\r\n if (flowsheet) {\r\n this.setCurrentFlowsheet(flowsheet);\r\n } else {\r\n flowsheet = newSubFlowsheetHandler.createFlowsheet(uoId);\r\n }\r\n\r\n return flowsheet;\r\n }\r\n\r\n close(): void {\r\n // remove the flowsheet being closed\r\n this.currentCaseSubFlowsheetStack.pop();\r\n\r\n // if the flowsheet being closed is...\r\n if (this.isUtilitiesFlowsheetHandlerActive || this.isFuelGasFlowsheetHandlerActive) {\r\n this.enableMaterialStreams();\r\n }\r\n\r\n // TODO this is yet to be tested...\r\n if (this.currentCaseSubFlowsheetStack.length) {\r\n const flowsheet = this.currentCaseSubFlowsheetStack[this.currentCaseSubFlowsheetStack.length - 1];\r\n // let's just swap the flowsheets\r\n this.setCurrentFlowsheet(flowsheet);\r\n this.activeSubFlowsheetHandler.syncAllBlocksInletOutletPorts();\r\n this.prepareSubFlowsheet(flowsheet.unitOperationId);\r\n return;\r\n }\r\n\r\n this.exitToMainFlowsheet();\r\n this.activeSubFlowsheetHandler = undefined;\r\n }\r\n\r\n exitToMainFlowsheet(): void {\r\n this.setNormalFlowsheetStyle();\r\n this.sankeyService.caseToSankeyDiagram(this.coreService.currentCase, null, false);\r\n\r\n this.setCurrentFlowsheetById(this.coreService.currentCase.getMainFlowsheetId());\r\n this.activeSubFlowsheetHandler.syncAllBlocksInletOutletPorts();\r\n\r\n // TODO this should be improved... in the main flowsheet, only material streams are allowed\r\n this.enableMaterialStreams();\r\n\r\n this.clearCurrentCaseSubFlowsheetStack();\r\n }\r\n\r\n private onCurrentCaseReplaced(options) {\r\n if (options?.wholeProjectReplaced) {\r\n this.clearAllSubFlowsheetStacks();\r\n }\r\n\r\n if (this.currentCaseSubFlowsheetStack.length) {\r\n const currentSubFlowsheet = this.currentCaseSubFlowsheetStack[this.currentCaseSubFlowsheetStack.length - 1];\r\n this.setActiveSubFlowsheetHandler(currentSubFlowsheet.unitOperationId);\r\n this.setSubFlowsheetStyle();\r\n } else {\r\n this.activeSubFlowsheetHandler = undefined;\r\n this.setNormalFlowsheetStyle();\r\n }\r\n\r\n if (this.isUtilitiesFlowsheetHandlerActive) {\r\n this.enableWaterStreams();\r\n } else if (this.isFuelGasFlowsheetHandlerActive) {\r\n this.enableFuelGasStreams();\r\n } else {\r\n this.enableMaterialStreams();\r\n }\r\n }\r\n\r\n private setSubFlowsheetStyle(): void {\r\n $('#flowsheet-diagram-wrapper').css('background', '#C6CECF');\r\n }\r\n\r\n private setNormalFlowsheetStyle(): void {\r\n $('#flowsheet-diagram-wrapper').css('background', '#CCC');\r\n }\r\n\r\n private setCurrentFlowsheetById(flowsheetId) {\r\n const flowsheet = this.coreService.currentCase.getFlowsheet(flowsheetId);\r\n if (flowsheet) {\r\n this.setCurrentFlowsheet(flowsheet);\r\n }\r\n }\r\n\r\n private setCurrentFlowsheet(flowsheet: Flowsheet) {\r\n this.coreService.saveCurrentFlowsheet();\r\n this.flowsheetDiagramService.setDiagramModel(flowsheet.getDiagramJson());\r\n this.coreService.setCurrentFlowsheet(flowsheet);\r\n this.flowsheetDiagramService.updateStreamData(this.coreService.currentCase);\r\n this.flowsheetDiagramService.makeAllUnitOperationsDeletable();\r\n }\r\n\r\n updateMaxLinksForAllSubFlowsheets(): void {\r\n // eslint-disable-next-line guard-for-in\r\n for (const key in this.subFlowsheetHandlers) {\r\n this.subFlowsheetHandlers[key].syncAllBlocksInletOutletPorts();\r\n }\r\n }\r\n\r\n setActiveSubFlowsheetHandler(subFlowsheetOwnerId: string) {\r\n const unitOperationCategory = this.coreService.currentCase.getUnitOperation(subFlowsheetOwnerId).category;\r\n this.activeSubFlowsheetHandler = this.subFlowsheetHandlers[unitOperationCategory];\r\n }\r\n\r\n private get gojsDiagram(): go.Diagram {\r\n return this.flowsheetDiagramService.gojsDiagram;\r\n }\r\n\r\n getSubFlowsheetOwnerNames(): string[] {\r\n return this.currentCaseSubFlowsheetStack.map(\r\n f => this.coreService.currentCase.unitOperationPool[f.unitOperationId].name\r\n );\r\n }\r\n\r\n private clearCurrentCaseSubFlowsheetStack() {\r\n // let's empty the stack, while preserving the same reference\r\n this.currentCaseSubFlowsheetStack.length = 0;\r\n }\r\n\r\n /**\r\n * Do not use this outside this service\r\n */\r\n private get currentCaseSubFlowsheetStack(): Flowsheet[] {\r\n const currentCaseId = this.coreService.currentCase.id;\r\n if (!this.allSubFlowsheetStacks[currentCaseId]) {\r\n this.allSubFlowsheetStacks[currentCaseId] = [];\r\n }\r\n\r\n return this.allSubFlowsheetStacks[currentCaseId];\r\n }\r\n\r\n get currentSubFlowsheetCategory() {\r\n if (!this.currentCaseSubFlowsheetStack?.length) {\r\n return undefined;\r\n }\r\n\r\n const currentSubFlowsheet = this.currentCaseSubFlowsheetStack[this.currentCaseSubFlowsheetStack.length - 1];\r\n return this.coreService.currentCase.getUnitOperation(currentSubFlowsheet.unitOperationId).category;\r\n }\r\n\r\n get currentSubFlowsheetId() {\r\n if (!this.currentCaseSubFlowsheetStack?.length) {\r\n return undefined;\r\n }\r\n\r\n return this.currentCaseSubFlowsheetStack[this.currentCaseSubFlowsheetStack.length - 1].unitOperationId;\r\n }\r\n\r\n enableWaterStreams() {\r\n this.flowsheetDiagramService.setStreamCategory(StreamCategory.WATER_MATERIAL_STREAM);\r\n }\r\n\r\n enableMaterialStreams() {\r\n this.flowsheetDiagramService.setStreamCategory(StreamCategory.MATERIAL_STREAM);\r\n }\r\n\r\n enableFuelGasStreams() {\r\n this.flowsheetDiagramService.setStreamCategory(StreamCategory.FUEL_GAS_MATERIAL_STREAM);\r\n }\r\n\r\n get isUtilitiesFlowsheetHandlerActive() {\r\n return this.activeSubFlowsheetHandler === this.utilitiesFlowsheetHandler;\r\n }\r\n\r\n get isFuelGasFlowsheetHandlerActive() {\r\n return this.activeSubFlowsheetHandler === this.fuelGasFlowsheetHandler;\r\n }\r\n\r\n clearAllSubFlowsheetStacks(): void {\r\n this.allSubFlowsheetStacks = {};\r\n }\r\n}\r\n","import { BasicSimulationVariableInterface } from '../_models/simulation-variable-interfaces';\r\n\r\nexport type AlignmentString = 'center' | 'top' | 'right' | 'bottom' | 'left';\r\n\r\nexport function isPlainBasicSimulationVariable(value: any): value is BasicSimulationVariableInterface {\r\n const keys = Object.keys(value);\r\n return keys.includes('value') && keys.includes('unit');\r\n}\r\n","import { UntypedFormGroup } from '@angular/forms';\r\nimport { isPrimitiveType } from '../_utils/utils';\r\nimport { isPlainBasicSimulationVariable } from '../_utils/optea-utils';\r\n\r\nexport class DefaultBaseObjectFormChangeDetector {\r\n constructor(private formGroup: UntypedFormGroup) {}\r\n\r\n detectChangesInValues(originalFormValue: any, currentFormValue: any): boolean {\r\n const changes = false;\r\n const currentValueKeys = Object.keys(currentFormValue);\r\n\r\n for (const k of currentValueKeys) {\r\n if (!this.ignoreForDefaultChangeDetection(k)) {\r\n const originalValue = originalFormValue[k];\r\n const currentValue = currentFormValue[k];\r\n\r\n if (isPrimitiveType(originalValue)) {\r\n if (currentValue !== originalValue) {\r\n return true;\r\n }\r\n } else if (isPlainBasicSimulationVariable(originalValue) && isPlainBasicSimulationVariable(currentValue)) {\r\n if (originalValue.value !== currentValue.value) {\r\n return true;\r\n }\r\n } else {\r\n console.warn(`Unimplemented equality comparison at ${k} for ${currentValue} and ${originalValue}`);\r\n }\r\n }\r\n }\r\n\r\n return changes;\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n ignoreForDefaultChangeDetection(k: string) {\r\n return false;\r\n }\r\n}\r\n","import { DefaultBaseObjectFormChangeDetector } from './default-base-object-form-change-detector';\r\nimport { WaterSinkImport } from '../_models/_unit-operations/utilties/water-sink-import';\r\n\r\nexport class WaterSinkImportFormChangeDetector extends DefaultBaseObjectFormChangeDetector {\r\n override detectChangesInValues(originalFormValue: any, currentValue: any): boolean {\r\n let changes = super.detectChangesInValues(originalFormValue, currentValue);\r\n const sourceStreamOriginal = originalFormValue as WaterSinkImport;\r\n const sourceStreamCurrent = currentValue as WaterSinkImport;\r\n\r\n if (\r\n sourceStreamCurrent.inletSourceInformationStreams.length !=\r\n sourceStreamOriginal.inletSourceInformationStreams.length\r\n ) {\r\n changes = changes || true;\r\n }\r\n\r\n return changes;\r\n }\r\n}\r\n","import { DefaultBaseObjectFormChangeDetector } from './default-base-object-form-change-detector';\r\nimport { WaterSourceImport } from '../_models/_unit-operations/utilties/water-source-import';\r\n\r\nexport class WaterSourceImportFormChangeDetector extends DefaultBaseObjectFormChangeDetector {\r\n override detectChangesInValues(originalFormValue: any, currentValue: any): boolean {\r\n let changes = super.detectChangesInValues(originalFormValue, currentValue);\r\n const sourceStreamOriginal = originalFormValue as WaterSourceImport;\r\n const sourceStreamCurrent = currentValue as WaterSourceImport;\r\n\r\n if (\r\n sourceStreamCurrent.inletSourceInformationStreams.length !=\r\n sourceStreamOriginal.inletSourceInformationStreams.length\r\n ) {\r\n changes = changes || true;\r\n }\r\n\r\n return changes;\r\n }\r\n}\r\n","import { DefaultBaseObjectFormChangeDetector } from './default-base-object-form-change-detector';\r\nimport { DefaultMappedType } from '../_models/default-mapped-type';\r\nimport { WaterHeader } from '../_models/_unit-operations/utilties/water-header';\r\nimport { DistributionRatioVariable } from '../_models/_unit-operations/distribution-ratio-variable';\r\n\r\nexport class WaterHeaderFormChangeDetector extends DefaultBaseObjectFormChangeDetector {\r\n override detectChangesInValues(\r\n originalFormValue: DefaultMappedType<WaterHeader>,\r\n currentValue: DefaultMappedType<WaterHeader>\r\n ): boolean {\r\n let changes = super.detectChangesInValues(originalFormValue, currentValue);\r\n\r\n if (originalFormValue.distributionRatioVariables.length !== currentValue.distributionRatioVariables.length) {\r\n return true;\r\n }\r\n\r\n for (let i = 0; i < currentValue.distributionRatioVariables.length; i++) {\r\n const currentRatioVariable = currentValue.distributionRatioVariables[i] as DistributionRatioVariable;\r\n const originalRatioVariable = originalFormValue.distributionRatioVariables[i] as DistributionRatioVariable;\r\n\r\n changes = changes || currentRatioVariable.value !== originalRatioVariable.value;\r\n }\r\n\r\n return changes;\r\n }\r\n\r\n override ignoreForDefaultChangeDetection(k: string): boolean {\r\n return super.ignoreForDefaultChangeDetection(k) || (k as keyof WaterHeader) === 'distributionRatioVariables';\r\n }\r\n}\r\n","import { DefaultBaseObjectFormChangeDetector } from './default-base-object-form-change-detector';\r\nimport { DefaultMappedType } from '../_models/default-mapped-type';\r\nimport { WaterSplitter } from '../_models/_unit-operations/utilties/water-splitter';\r\nimport { DistributionRatioVariable } from '../_models/_unit-operations/distribution-ratio-variable';\r\n\r\nexport class WaterSplitterFormChangeDetector extends DefaultBaseObjectFormChangeDetector {\r\n override detectChangesInValues(\r\n originalFormValue: DefaultMappedType<WaterSplitter>,\r\n currentValue: DefaultMappedType<WaterSplitter>\r\n ): boolean {\r\n let changes = super.detectChangesInValues(originalFormValue, currentValue);\r\n\r\n if (originalFormValue.distributionRatioVariables.length !== currentValue.distributionRatioVariables.length) {\r\n return true;\r\n }\r\n\r\n for (let i = 0; i < currentValue.distributionRatioVariables.length; i++) {\r\n const currentRatioVariable = currentValue.distributionRatioVariables[i] as DistributionRatioVariable;\r\n const originalRatioVariable = originalFormValue.distributionRatioVariables[i] as DistributionRatioVariable;\r\n\r\n changes = changes || currentRatioVariable.value !== originalRatioVariable.value;\r\n }\r\n\r\n return changes;\r\n }\r\n\r\n override ignoreForDefaultChangeDetection(k: string): boolean {\r\n return super.ignoreForDefaultChangeDetection(k) || (k as keyof WaterSplitter) === 'distributionRatioVariables';\r\n }\r\n}\r\n","import { DefaultBaseObjectFormChangeDetector } from './default-base-object-form-change-detector';\r\n\r\nexport class FuelGasSplitterFormChangeDetector extends DefaultBaseObjectFormChangeDetector {\r\n override detectChangesInValues(originalFormValue: any, currentValue: any): boolean {\r\n let changes = super.detectChangesInValues(originalFormValue, currentValue);\r\n for (let i = 0; i < currentValue.distributionRatioVariables.length; i++) {\r\n if (originalFormValue.distributionRatioVariables[i] === undefined) {\r\n return changes;\r\n }\r\n if (currentValue.distributionRatioVariables[i].value !== originalFormValue.distributionRatioVariables[i].value) {\r\n changes = changes || true;\r\n }\r\n }\r\n return changes;\r\n }\r\n}\r\n","import { DefaultBaseObjectFormChangeDetector } from './default-base-object-form-change-detector';\r\nimport { FuelGasSinkImport } from '../_models/_unit-operations/fuel-gas/fuel-gas-sink-import';\r\n\r\nexport class FuelGasSinkImportFormChangeDetector extends DefaultBaseObjectFormChangeDetector {\r\n override detectChangesInValues(originalFormValue: any, currentValue: any): boolean {\r\n let changes = super.detectChangesInValues(originalFormValue, currentValue);\r\n\r\n const originalSinkValues = originalFormValue as FuelGasSinkImport;\r\n const currentSinkValues = currentValue as FuelGasSinkImport;\r\n\r\n if (originalSinkValues.energyStreams.length !== currentSinkValues.energyStreams.length) {\r\n changes = changes || true;\r\n }\r\n\r\n return changes;\r\n }\r\n}\r\n","import { DefaultBaseObjectFormChangeDetector } from './default-base-object-form-change-detector';\r\nimport { FuelGasSourceImport } from '../_models/_unit-operations/fuel-gas/fuel-gas-source-import';\r\n\r\nexport class FuelGasSourceImportFormChangeDetector extends DefaultBaseObjectFormChangeDetector {\r\n override detectChangesInValues(originalFormValue: any, currentValue: any): boolean {\r\n let changes = super.detectChangesInValues(originalFormValue, currentValue);\r\n\r\n const originalSinkValues = originalFormValue as FuelGasSourceImport;\r\n const currentSinkValues = currentValue as FuelGasSourceImport;\r\n\r\n if (\r\n originalSinkValues.inletSourceInformationStreams.length != currentSinkValues.inletSourceInformationStreams.length\r\n ) {\r\n changes = changes || true;\r\n }\r\n\r\n return changes;\r\n }\r\n}\r\n","import { UntypedFormGroup } from '@angular/forms';\r\nimport { DefaultBaseObjectFormChangeDetector } from './default-base-object-form-change-detector';\r\nimport { DefaultMappedType } from '../_models/default-mapped-type';\r\nimport { Splitter } from '../_models/_unit-operations/splitter';\r\n\r\nexport class SplitterFormChangeDetector extends DefaultBaseObjectFormChangeDetector {\r\n constructor(formGroup: UntypedFormGroup) {\r\n super(formGroup);\r\n }\r\n\r\n override detectChangesInValues(\r\n originalFormValue: DefaultMappedType<Splitter>,\r\n currentValue: DefaultMappedType<Splitter>\r\n ): boolean {\r\n let changes = super.detectChangesInValues(originalFormValue, currentValue);\r\n\r\n if (originalFormValue.distributionRatioVariables.length !== currentValue.distributionRatioVariables.length) {\r\n return true;\r\n }\r\n\r\n for (let i = 0; i < currentValue.distributionRatioVariables.length; i++) {\r\n const currentDistributionRatioVariable = currentValue.distributionRatioVariables[i];\r\n const originalDistributionRatioVariable = originalFormValue.distributionRatioVariables[i];\r\n\r\n if (originalDistributionRatioVariable === undefined) {\r\n // TODO WTF\r\n return changes;\r\n }\r\n if (\r\n currentDistributionRatioVariable.value !== originalDistributionRatioVariable.value ||\r\n currentDistributionRatioVariable.minimumValue !== originalDistributionRatioVariable.minimumValue ||\r\n currentDistributionRatioVariable.maximumValue !== originalDistributionRatioVariable.maximumValue\r\n ) {\r\n changes = changes || true;\r\n }\r\n }\r\n\r\n return changes;\r\n }\r\n\r\n override ignoreForDefaultChangeDetection(k: string): boolean {\r\n return super.ignoreForDefaultChangeDetection(k) || (k as keyof Splitter) === 'distributionRatioVariables';\r\n }\r\n}\r\n","import { DefaultBaseObjectFormChangeDetector } from './default-base-object-form-change-detector';\r\nimport { LgoHydrotreater } from '../_models/_unit-operations/lgo-hydrotreater';\r\n\r\nexport class LgoHydrotreaterFormChangeDetector extends DefaultBaseObjectFormChangeDetector {\r\n override detectChangesInValues(originalFormValue: any, currentValue: any): boolean {\r\n let changes = super.detectChangesInValues(originalFormValue, currentValue);\r\n\r\n const originalLgoValues = originalFormValue as LgoHydrotreater;\r\n const currentLgoValues = currentValue as LgoHydrotreater;\r\n\r\n if (\r\n originalLgoValues.customModelScript !== currentLgoValues.customModelScript ||\r\n originalLgoValues.steamModelScript !== currentLgoValues.steamModelScript ||\r\n originalLgoValues.gasModelScript !== currentLgoValues.gasModelScript\r\n ) {\r\n changes = changes || true;\r\n }\r\n\r\n return changes;\r\n }\r\n}\r\n","import { DefaultBaseObjectFormChangeDetector } from './default-base-object-form-change-detector';\r\nimport { ProductTank } from '../_models/product-tank';\r\nimport { DefaultMappedType } from '../_models/default-mapped-type';\r\nimport { DistributionRatioVariable } from '../_models/_unit-operations/distribution-ratio-variable';\r\n\r\nexport class ProductTankFormChangeDetector extends DefaultBaseObjectFormChangeDetector {\r\n override detectChangesInValues(\r\n originalFormValue: DefaultMappedType<ProductTank>,\r\n currentValue: DefaultMappedType<ProductTank>\r\n ): boolean {\r\n let changes = super.detectChangesInValues(originalFormValue, currentValue);\r\n\r\n if (originalFormValue.distributionRatioVariables.length !== currentValue.distributionRatioVariables.length) {\r\n return true;\r\n }\r\n\r\n for (let i = 0; i < currentValue.distributionRatioVariables.length; i++) {\r\n const currentRatioVariable = currentValue.distributionRatioVariables[i] as DistributionRatioVariable;\r\n const originalRatioVariable = originalFormValue.distributionRatioVariables[i] as DistributionRatioVariable;\r\n\r\n changes = changes || currentRatioVariable.value !== originalRatioVariable.value;\r\n }\r\n\r\n return changes;\r\n }\r\n\r\n override ignoreForDefaultChangeDetection(k: string): boolean {\r\n return super.ignoreForDefaultChangeDetection(k) || (k as keyof ProductTank) === 'distributionRatioVariables';\r\n }\r\n}\r\n","import { DefaultBaseObjectFormChangeDetector } from './default-base-object-form-change-detector';\r\nimport { DefaultMappedType } from '../_models/default-mapped-type';\r\nimport { Mixer } from '../_models/_unit-operations/mixer';\r\n\r\nexport class MixerFormChangeDetector extends DefaultBaseObjectFormChangeDetector {\r\n override detectChangesInValues(\r\n originalFormValue: DefaultMappedType<Mixer>,\r\n currentValue: DefaultMappedType<Mixer>\r\n ): boolean {\r\n let changes = super.detectChangesInValues(originalFormValue, currentValue);\r\n\r\n if (originalFormValue.mixingRatioVariables.length !== currentValue.mixingRatioVariables.length) {\r\n return true;\r\n }\r\n\r\n for (let i = 0; i < originalFormValue.mixingRatioVariables.length; i++) {\r\n const currentMixingRatioVariable = currentValue.mixingRatioVariables[i];\r\n const originalMixingRatioVariable = originalFormValue.mixingRatioVariables[i];\r\n changes =\r\n changes ||\r\n currentMixingRatioVariable.value !== originalMixingRatioVariable.value ||\r\n currentMixingRatioVariable.minimumValue !== originalMixingRatioVariable.minimumValue ||\r\n currentMixingRatioVariable.maximumValue !== originalMixingRatioVariable.maximumValue;\r\n }\r\n\r\n return changes;\r\n }\r\n\r\n override ignoreForDefaultChangeDetection(k: string): boolean {\r\n return super.ignoreForDefaultChangeDetection(k) || (k as keyof Mixer) === 'mixingRatioVariables';\r\n }\r\n}\r\n","import { DefaultBaseObjectFormChangeDetector } from './default-base-object-form-change-detector';\r\nimport { BitumenConversion } from '../_models/_unit-operations/bitumen-conversion';\r\nimport { DefaultMappedType } from '../_models/default-mapped-type';\r\nimport { BitumenConversionOutlet } from '../_models/_unit-operations/bitumen-conversion-outlet';\r\n\r\nexport class BitumenConversionFormChangeDetector extends DefaultBaseObjectFormChangeDetector {\r\n override detectChangesInValues(\r\n originalFormValue: DefaultMappedType<BitumenConversion>,\r\n currentFormValue: DefaultMappedType<BitumenConversion>\r\n ): boolean {\r\n let changes = super.detectChangesInValues(originalFormValue, currentFormValue);\r\n\r\n if (originalFormValue.outlets.length !== currentFormValue.outlets.length) {\r\n return true;\r\n }\r\n\r\n originalFormValue.outlets.forEach((originalOutlet: DefaultMappedType<BitumenConversionOutlet>, i: number) => {\r\n const currentOutlet = currentFormValue.outlets[i] as DefaultMappedType<BitumenConversionOutlet>;\r\n\r\n changes = changes || originalOutlet.fluidAnalysisId !== currentOutlet.fluidAnalysisId;\r\n changes = changes || originalOutlet.yield.value !== currentOutlet.yield.value;\r\n changes = changes || originalOutlet.price.value !== currentOutlet.price.value;\r\n });\r\n\r\n return changes;\r\n }\r\n\r\n override ignoreForDefaultChangeDetection(k: string): boolean {\r\n return super.ignoreForDefaultChangeDetection(k) || (k as keyof BitumenConversion) === 'outlets';\r\n }\r\n}\r\n","import { UntypedFormGroup } from '@angular/forms';\r\nimport { DefaultBaseObjectFormChangeDetector } from './default-base-object-form-change-detector';\r\nimport { unitOperationsConfig } from '../_config/unit-operations.config';\r\nimport { WaterSinkImportFormChangeDetector } from './water-sink-import-form-change-detector';\r\nimport { WaterSourceImportFormChangeDetector } from './water-source-import-form-change-detector';\r\nimport { WaterHeaderFormChangeDetector } from './water-header-form-change-detector';\r\nimport { WaterSplitterFormChangeDetector } from './water-splitter-form-change-detector';\r\nimport { FuelGasSplitterFormChangeDetector } from './fuel-gas-splitter-form-change-detector';\r\nimport { FuelGasSinkImportFormChangeDetector } from './fuel-gas-sink-import-form-change-detector';\r\nimport { FuelGasSourceImportFormChangeDetector } from './fuel-gas-source-import-form-change-detector';\r\nimport { SplitterFormChangeDetector } from './splitter-form-change-detector';\r\nimport { LgoHydrotreaterFormChangeDetector } from './lgo-hydrotreater-form-change-detector';\r\nimport { ProductTankFormChangeDetector } from './product-tank-form-change-detector';\r\nimport { MixerFormChangeDetector } from './mixer-form-change-detector';\r\nimport { BitumenConversionFormChangeDetector } from './bitumen-conversion-form-change-detector';\r\n\r\nexport class BaseObjectFormChangeDetector {\r\n private readonly detectors: { [id: string]: DefaultBaseObjectFormChangeDetector };\r\n private readonly defaultChangeDetector: DefaultBaseObjectFormChangeDetector;\r\n\r\n constructor(private formGroup: UntypedFormGroup) {\r\n this.detectors = {};\r\n\r\n this.defaultChangeDetector = new DefaultBaseObjectFormChangeDetector(this.formGroup);\r\n\r\n this.detectors[unitOperationsConfig.bitumenConversion.key] = new BitumenConversionFormChangeDetector(\r\n this.formGroup\r\n );\r\n this.detectors[unitOperationsConfig.refinery.key] = this.defaultChangeDetector;\r\n this.detectors[unitOperationsConfig.productTank.key] = new ProductTankFormChangeDetector(this.formGroup);\r\n this.detectors[unitOperationsConfig.mixer.key] = new MixerFormChangeDetector(this.formGroup);\r\n this.detectors[unitOperationsConfig.splitter.key] = new SplitterFormChangeDetector(this.formGroup);\r\n this.detectors[unitOperationsConfig.hydrotreater.key] = this.defaultChangeDetector;\r\n this.detectors[unitOperationsConfig.lgoHydrotreater.key] = new LgoHydrotreaterFormChangeDetector(this.formGroup);\r\n this.detectors[unitOperationsConfig.pipe.key] = this.defaultChangeDetector;\r\n this.detectors[unitOperationsConfig.waterSource.key] = this.defaultChangeDetector;\r\n this.detectors[unitOperationsConfig.waterTurbine.key] = this.defaultChangeDetector;\r\n this.detectors[unitOperationsConfig.waterCogeneration.key] = this.defaultChangeDetector;\r\n this.detectors[unitOperationsConfig.waterBoiler.key] = this.defaultChangeDetector;\r\n this.detectors[unitOperationsConfig.sulfurPlant.key] = this.defaultChangeDetector;\r\n\r\n this.detectors[unitOperationsConfig.fuelGasSink.key] = this.defaultChangeDetector;\r\n this.detectors[unitOperationsConfig.fuelGasFlare.key] = this.defaultChangeDetector;\r\n this.detectors[unitOperationsConfig.fuelGasSource.key] = this.defaultChangeDetector;\r\n this.detectors[unitOperationsConfig.fuelGasAmineContactor.key] = this.defaultChangeDetector;\r\n\r\n this.detectors[unitOperationsConfig.waterHeader.key] = new WaterHeaderFormChangeDetector(this.formGroup);\r\n this.detectors[unitOperationsConfig.waterSplitter.key] = new WaterSplitterFormChangeDetector(this.formGroup);\r\n this.detectors[unitOperationsConfig.waterSinkImport.key] = new WaterSinkImportFormChangeDetector(this.formGroup);\r\n this.detectors[unitOperationsConfig.waterSourceImport.key] = new WaterSourceImportFormChangeDetector(\r\n this.formGroup\r\n );\r\n\r\n this.detectors[unitOperationsConfig.fuelGasSplitter.key] = new FuelGasSplitterFormChangeDetector(this.formGroup);\r\n this.detectors[unitOperationsConfig.fuelGasSinkImport.key] = new FuelGasSinkImportFormChangeDetector(\r\n this.formGroup\r\n );\r\n this.detectors[unitOperationsConfig.fuelGasSourceImport.key] = new FuelGasSourceImportFormChangeDetector(\r\n this.formGroup\r\n );\r\n }\r\n\r\n detectChangesInValues(originalFormValue: any, currentValue: any, unitOperationCategory: any) {\r\n let changes = false;\r\n changes = this.detectors[unitOperationCategory].detectChangesInValues(originalFormValue, currentValue);\r\n return changes;\r\n }\r\n}\r\n","import { UntypedFormGroup } from '@angular/forms';\r\nimport { BaseObjectFormChangeDetector } from './base-object-form-change-detector';\r\n\r\nexport class BaseObjectFormGroupWrapper {\r\n private originalFormValue: any;\r\n constructor(private formGroup: UntypedFormGroup) {}\r\n\r\n // TODO nice hack to allow change detection in name... should not be used REMOVE when not needed\r\n updateBaseObjectNameOnFormGroup(name: string) {\r\n this.formGroup.controls['name'].setValue(name);\r\n }\r\n\r\n getFormGroup() {\r\n return this.formGroup;\r\n }\r\n\r\n getRawValue(): any {\r\n return this.formGroup.getRawValue();\r\n }\r\n\r\n /**\r\n * Stores the form's current raw value\r\n * Call this right after adding all the form controls when a property\r\n * window is initialized\r\n */\r\n storeOriginalValue(): void {\r\n this.originalFormValue = this.formGroup.getRawValue();\r\n }\r\n\r\n /**\r\n * Compares the current form group values against the original form group values\r\n * Returns true if changes are detected (the name property is ignored)\r\n */\r\n detectChangesInValues(unitOperationCategory: any): boolean {\r\n const originalName = this.originalFormValue.name;\r\n const currentValue = this.formGroup.getRawValue();\r\n\r\n let changes = false;\r\n\r\n // we won't want to detect changes in the name property\r\n delete currentValue.name;\r\n delete this.originalFormValue.name;\r\n\r\n const changeDetector = new BaseObjectFormChangeDetector(this.formGroup);\r\n changes = changeDetector.detectChangesInValues(this.originalFormValue, currentValue, unitOperationCategory);\r\n\r\n this.originalFormValue.name = originalName;\r\n\r\n return changes;\r\n }\r\n\r\n /**\r\n * Returns true if there are changes in the name property\r\n */\r\n detectChangesInName() {\r\n return this.formGroup.value.name !== this.originalFormValue.name;\r\n }\r\n\r\n /**\r\n * Remove all form controls and clears all status variables\r\n * WARNING - Do not call this before mapping\r\n */\r\n clear(): void {\r\n const keys = Object.keys(this.formGroup.controls);\r\n keys.forEach(k => {\r\n this.formGroup.removeControl(k);\r\n });\r\n\r\n this.originalFormValue = undefined;\r\n }\r\n\r\n /**\r\n * Returns true if the form group has any controls\r\n */\r\n hasControls(): boolean {\r\n return !!Object.keys(this.formGroup.controls).length;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { UntypedFormGroup } from '@angular/forms';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { FlowsheetDiagramService } from './flowsheet-diagram/flowsheet-diagram.service';\r\nimport { CoreService } from './core.service';\r\nimport { UnitOperation } from '../_models/unit-operation';\r\nimport { SankeyDiagramService } from '../flowsheet/sankey-diagram/sankey-diagram.service';\r\nimport { SubFlowsheetService } from './sub-flowsheet/sub-flowsheet.service';\r\nimport { BaseObjectFormGroupWrapper } from '../_form-utils/base-object-form-group-wrapper';\r\nimport { flowsheetHeight } from '../app.helpers';\r\n\r\n@Injectable()\r\nexport class FlowsheetService {\r\n private openCaseSettingsSubject = new Subject();\r\n openCaseSettingsRequest = this.openCaseSettingsSubject.asObservable();\r\n\r\n private openPropertyWindowSubject = new Subject();\r\n openPropertyWindowRequest = this.openPropertyWindowSubject.asObservable();\r\n\r\n private openStreamPropertyWindowSubject = new Subject();\r\n openStreamPropertyWindowRequest = this.openStreamPropertyWindowSubject.asObservable();\r\n\r\n private openWaterStreamPropertyWindowSubject = new Subject();\r\n openWaterStreamPropertyWindowRequest = this.openWaterStreamPropertyWindowSubject.asObservable();\r\n\r\n private openFuelGasStreamPropertyWindowSubject = new Subject();\r\n openFuelGasStreamPropertyWindowRequest = this.openFuelGasStreamPropertyWindowSubject.asObservable();\r\n\r\n private closePropertyWindowSubject = new Subject();\r\n closePropertyWindowRequest = this.closePropertyWindowSubject.asObservable();\r\n\r\n private saveCustomCodeSubject = new Subject();\r\n saveCustomCodeRequest = this.saveCustomCodeSubject.asObservable();\r\n\r\n // at the moment of writing this - it used for mapping values from a reactive form\r\n private prepareUnitOperationForSaveSubject = new Subject();\r\n prepareUnitOperationForSaveRequest = this.prepareUnitOperationForSaveSubject.asObservable();\r\n\r\n private subFlowsheetOpenedSubject = new Subject<string>();\r\n subFlowsheetOpenedRequest = this.subFlowsheetOpenedSubject.asObservable();\r\n\r\n private subFlowsheetClosedSubject = new Subject<string>();\r\n subFlowsheetClosedRequest = this.subFlowsheetClosedSubject.asObservable();\r\n\r\n // TODO this should be temporary.. .when all property windows use reactive forms, this should be moved to the\r\n // property window component\r\n propertyWindowFormGroupWrapper: BaseObjectFormGroupWrapper;\r\n\r\n // not sure if this service should go in the flowsheet folder...\r\n constructor(\r\n private coreService: CoreService,\r\n private flowsheetDiagramService: FlowsheetDiagramService,\r\n private sankeyService: SankeyDiagramService,\r\n private subFlowsheetService: SubFlowsheetService,\r\n private toastr: ToastrService\r\n ) {\r\n this.flowsheetDiagramService.doubleClickOnNodeRequest.subscribe((nodeId: string) => {\r\n this.openPropertyWindow(nodeId);\r\n });\r\n\r\n this.flowsheetDiagramService.contextClickOnNodeRequest.subscribe((nodeId: string) => {\r\n this.openPropertyWindow(nodeId);\r\n });\r\n\r\n this.flowsheetDiagramService.doubleClickOnLinkRequest.subscribe(linkId => {\r\n if (!this.coreService.currentCase.multiPeriodEnabled) {\r\n this.openStreamPropertyWindow(linkId);\r\n }\r\n if (this.coreService.currentCase.multiPeriodEnabled) {\r\n this.toastr.warning('When Multi Period is active, the property window cannot be opened', '', {\r\n positionClass: 'toast-top-right',\r\n });\r\n }\r\n });\r\n\r\n this.flowsheetDiagramService.doubleClickOnWaterLinkRequest.subscribe(linkId => {\r\n this.openWaterStreamPropertyWindow(linkId);\r\n });\r\n\r\n this.flowsheetDiagramService.doubleClickOnFuelGasLinkRequest.subscribe(linkId => {\r\n this.openFuelGasStreamPropertyWindow(linkId);\r\n });\r\n\r\n this.propertyWindowFormGroupWrapper = new BaseObjectFormGroupWrapper(new UntypedFormGroup({}));\r\n }\r\n\r\n openCaseSettings(): void {\r\n this.openCaseSettingsSubject.next();\r\n }\r\n\r\n openPropertyWindow(uoId: string): void {\r\n this.openPropertyWindowSubject.next(this.coreService.copyUnitOperationById(uoId));\r\n }\r\n\r\n openStreamPropertyWindow(streamId): void {\r\n this.openStreamPropertyWindowSubject.next(streamId);\r\n }\r\n\r\n openWaterStreamPropertyWindow(streamId): void {\r\n this.openWaterStreamPropertyWindowSubject.next(streamId);\r\n }\r\n\r\n openFuelGasStreamPropertyWindow(streamId): void {\r\n this.openFuelGasStreamPropertyWindowSubject.next(streamId);\r\n }\r\n\r\n closePropertyWindow(): void {\r\n this.closePropertyWindowSubject.next();\r\n }\r\n\r\n saveCustomCodeChanges(): void {\r\n this.saveCustomCodeSubject.next();\r\n }\r\n\r\n prepareUnitOperationForSave() {\r\n this.prepareUnitOperationForSaveSubject.next();\r\n }\r\n\r\n // Make unit operation non deletable when its property window is closed\r\n preventUnitOperationDeletion(uo: UnitOperation) {\r\n this.flowsheetDiagramService.preventUnitOperationDeletion(uo);\r\n }\r\n\r\n makeAllUnitOperationsDeletable() {\r\n this.flowsheetDiagramService.makeAllUnitOperationsDeletable();\r\n }\r\n\r\n loadUnitOperationFlowsheet(uoId: string): void {\r\n // this.subFlowsheetService.loadUnitOperationFlowsheet(uoId);\r\n this.subFlowsheetService.open(uoId);\r\n const unitOperationCategory = this.coreService.currentCase.getUnitOperation(uoId).category;\r\n this.subFlowsheetOpenedSubject.next(unitOperationCategory);\r\n flowsheetHeight();\r\n }\r\n\r\n updateMaxLinksForAllSubFlowsheets(): void {\r\n this.subFlowsheetService.updateMaxLinksForAllSubFlowsheets();\r\n }\r\n\r\n closeSubFlowsheet(): void {\r\n this.subFlowsheetService.close();\r\n this.subFlowsheetClosedSubject.next();\r\n this.closePropertyWindow();\r\n }\r\n\r\n exitToMainFlowsheet(): void {\r\n this.subFlowsheetService.exitToMainFlowsheet();\r\n this.subFlowsheetClosedSubject.next();\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class UncertaintyAnalysisComponentService {\r\n private solveErrorSubject = new Subject();\r\n solveErrorRequest = this.solveErrorSubject.asObservable();\r\n\r\n notifySolveError(error: any) {\r\n this.solveErrorSubject.next(error);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { throwError as observableThrowError, Observable, Subject } from 'rxjs';\r\nimport { SubSink } from 'subsink';\r\nimport { HttpClient, HttpErrorResponse, HttpHeaders } from '@angular/common/http';\r\nimport { UncertaintyAnalysisComponentService } from '../../flowsheet/case-study/uncertainty-analysis/uncertainty-analysis-component.service';\r\nimport { LogManagerService } from '../../flowsheet/log-manager/log-manager.service';\r\nimport { UncertaintyAnalysis } from '../../_models/_case-study/uncertainty-analysis';\r\nimport { Project } from '../../_models';\r\nimport { SolveCaseRequest } from '../../_models/solve-case-request';\r\nimport { ApiObjectsBackupManager } from '../../_models/api-objects-backup-manager';\r\nimport { environment } from '../../../environments/environment';\r\nimport { CaseResultsBackup } from '../../_models/case-results-backup';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class UncertaintyAnalysisApiService {\r\n constructor(\r\n private http: HttpClient,\r\n private uncertaintyCore: UncertaintyAnalysisComponentService,\r\n private logManager: LogManagerService\r\n ) {}\r\n\r\n private subSink = new SubSink();\r\n\r\n private static getHeaders() {\r\n const headers = new HttpHeaders();\r\n headers.append('Accept', 'application/json');\r\n return headers;\r\n }\r\n\r\n public solveUncertaintyAnalysis(analysis: UncertaintyAnalysis, project: Project): Observable<any> {\r\n const { ownerCase } = analysis;\r\n\r\n // TODO would it be good to clone the current case and then remove the other uncertainty analyses?\r\n // and the results of the case being sent...\r\n\r\n const dataToSend: SolveCaseRequest = {\r\n solveOption: 'waitForResults',\r\n caseModel: ownerCase,\r\n version: project.version,\r\n username: '',\r\n userId: '',\r\n email: '',\r\n };\r\n const removedAnalyses = ApiObjectsBackupManager.removeOtherUncertaintyAnalyses(analysis);\r\n // const backupObject = ApiObjectsBackupManager.cleanAndCreateBackupObject(analysis.ownerCase);\r\n\r\n // remove all the references to the uncertainty analysis results.\r\n // should this be backed up before cleaning?\r\n ownerCase.caseStudyManager.uncertaintyAnalyses[0].clearResults();\r\n\r\n // TODO remove this heresy\r\n const solveSubject = new Subject<any>();\r\n const solveObservable = solveSubject.asObservable();\r\n\r\n this.subSink.add(\r\n this.http\r\n .post(environment.uncertaintyUrl, dataToSend, { headers: UncertaintyAnalysisApiService.getHeaders() })\r\n .subscribe(\r\n response => {\r\n // restore the removed analyses...\r\n ApiObjectsBackupManager.restoreRemovedAnalyses(removedAnalyses);\r\n // ApiObjectsBackupManager.restoreBackupData(backupObject);\r\n solveSubject.next(response);\r\n },\r\n error => {\r\n this.uncertaintyCore.notifySolveError(error);\r\n // return this.handleUncertaintyAnalysisError(error, analysis, removedAnalyses, backupObject);\r\n }\r\n )\r\n );\r\n\r\n return solveObservable;\r\n }\r\n\r\n handleUncertaintyAnalysisError(\r\n error: any,\r\n analysis: UncertaintyAnalysis,\r\n removedAnalyses: Array<UncertaintyAnalysis>,\r\n backupObject: CaseResultsBackup\r\n ) {\r\n ApiObjectsBackupManager.restoreRemovedAnalyses(removedAnalyses);\r\n ApiObjectsBackupManager.restoreBackupData(backupObject);\r\n this.logManager.error(`An error occurred while solving analysis: ${analysis.name}`);\r\n return this.handleError(error);\r\n }\r\n\r\n handleError(error: any) {\r\n let errMsg: string;\r\n if (error instanceof HttpErrorResponse) {\r\n const err = (error.error ? JSON.stringify(error.error) : '') || JSON.stringify(error);\r\n errMsg = `${error.status} - ${error.statusText || ''} ${err}`;\r\n } else {\r\n errMsg = error.message ? error.message : error.toString();\r\n }\r\n console.error(errMsg);\r\n return observableThrowError(errMsg);\r\n }\r\n\r\n finishSubscriptions() {\r\n this.subSink.unsubscribe();\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { SubSink } from 'subsink';\r\nimport { Observable } from 'rxjs';\r\nimport { CoreService } from '../core.service';\r\nimport { LogManagerService } from '../../flowsheet/log-manager/log-manager.service';\r\nimport { UncertaintyAnalysisApiService } from './uncertainty-analysis-api.service';\r\nimport { UncertaintyAnalysis } from '../../_models/_case-study/uncertainty-analysis';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class UncertaintyAnalysisService {\r\n private subSink = new SubSink();\r\n\r\n constructor(\r\n private caseService: CoreService,\r\n private logManager: LogManagerService,\r\n private uncertaintyApi: UncertaintyAnalysisApiService\r\n ) {}\r\n\r\n solveUncertaintyAnalysis(analysis: UncertaintyAnalysis): Observable<any> {\r\n this.logManager.info(`Solving ${analysis.name}`);\r\n const f = this.uncertaintyApi.solveUncertaintyAnalysis(analysis, this.caseService.project);\r\n\r\n this.subSink.add(\r\n f.subscribe(\r\n (solvedRequest: any) => {\r\n const { currentCase } = this.caseService;\r\n const serializedCaseStudy =\r\n solvedRequest.caseModel.otherBaseObjectPool[solvedRequest.caseModel.caseStudyManager];\r\n const serializedAnalysis =\r\n solvedRequest.caseModel.otherBaseObjectPool[serializedCaseStudy.uncertaintyAnalyses[0]];\r\n const currentAnalysis = <UncertaintyAnalysis>currentCase.getOtherBaseObject(serializedAnalysis.id);\r\n currentAnalysis.dePersistResults(serializedAnalysis);\r\n\r\n this.logManager.info(`${analysis.name} solved`);\r\n // here, the uncertainty analysis component should be notified I guess...\r\n // should reload its current analysis.\r\n currentCase.caseStudyManager.addUncertaintyAnalysisResults();\r\n },\r\n () => {},\r\n () => {}\r\n )\r\n );\r\n\r\n return f;\r\n }\r\n\r\n finishSubscriptions() {\r\n this.uncertaintyApi.finishSubscriptions();\r\n this.subSink.unsubscribe();\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { CoreService } from './core.service';\r\nimport { Case } from '../_models';\r\nimport { BaseObject } from '../_models/base-object';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class CaseStatsService {\r\n constructor(private core: CoreService) {}\r\n\r\n findOtherBaseObjectsByCategory(category: string) {\r\n return this.filterOtherBaseObjects((bo: BaseObject) => bo.category === category);\r\n }\r\n\r\n filterOtherBaseObjects(callback: (bo: BaseObject) => boolean): BaseObject[] {\r\n const result: BaseObject[] = [];\r\n\r\n for (const id in this.currentCase.otherBaseObjectPool) {\r\n if (callback(this.currentCase.otherBaseObjectPool[id])) {\r\n result.push(this.currentCase.otherBaseObjectPool[id]);\r\n }\r\n }\r\n\r\n return result;\r\n }\r\n\r\n getUnitOperationCount() {\r\n return Object.keys(this.currentCase.unitOperationPool).length;\r\n }\r\n\r\n getMaterialStreamCount() {\r\n return Object.keys(this.currentCase.materialStreamPool).length;\r\n }\r\n\r\n getOtherBaseObjectCount() {\r\n return Object.keys(this.currentCase.otherBaseObjectPool).length;\r\n }\r\n\r\n getSimulationVariableCount() {\r\n return Object.keys(this.currentCase.simulationVariablePool).length;\r\n }\r\n\r\n get currentCase(): Case {\r\n return this.core.currentCase;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { environment } from '../../../environments/environment';\r\n\r\n/**\r\n * Service for getting a date based on server's date\r\n * Created for avoiding possible wrong dates if user's computer time is not correctly set\r\n */\r\n@Injectable()\r\nexport class ServerUtcDateService {\r\n // the date retrieved from the server\r\n private serverSeedDate: Date;\r\n\r\n // local user computer time\r\n private retrievedAt: Date;\r\n\r\n constructor(private http: HttpClient) {}\r\n\r\n /**\r\n * Sets the base date for calculating an accurate date according to the server (and not according to user's machine)\r\n */\r\n setServerSeedDate(serializedSeedDate: string) {\r\n this.serverSeedDate = new Date(serializedSeedDate);\r\n this.retrievedAt = new Date();\r\n }\r\n\r\n /**\r\n * Gets a date that is calculated based on the seed date from the server\r\n * Adds the elapsed time since the seed date was retrieved from the server\r\n *\r\n * May have an offset of -1 seconds due to response time of the server when the date is retrieved\r\n */\r\n getCurrentDate(): Date {\r\n const elapsedTime = new Date().getTime() - this.retrievedAt.getTime();\r\n return new Date(this.serverSeedDate.getTime() + elapsedTime);\r\n }\r\n\r\n getServerSeedDate(): Observable<string> {\r\n return this.http.get<string>(`${environment.apiBaseUrl}/getCurrentUtcDate`);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { CoreService } from '../core.service';\r\nimport { BaseObjectComment } from '../../_models/base-object-comment';\r\nimport { ServerUtcDateService } from './server-utc-date.service';\r\n\r\n@Injectable()\r\nexport class CommentsService {\r\n constructor(private core: CoreService, private utcDateService: ServerUtcDateService) {}\r\n\r\n addComment(ownerId: string, text: string) {\r\n const comment = BaseObjectComment.create(ownerId);\r\n comment.text = text; // TODO actually sanitize this... do not allow special characters...\r\n comment.commentDate = this.utcDateService.getCurrentDate();\r\n comment.username = this.getUserName();\r\n comment.userId = this.getUserId();\r\n this.core.currentCase.commentsPool.unshift(comment);\r\n\r\n return comment;\r\n }\r\n\r\n updateComment(comment: BaseObjectComment, text: string) {\r\n comment.text = text; // TODO actually sanitize this... do not allow special characters...\r\n comment.commentDate = this.utcDateService.getCurrentDate();\r\n comment.username = this.getUserName();\r\n comment.userId = this.getUserId();\r\n }\r\n\r\n removeComment(commentId: string) {\r\n const commentIndex = this.core.currentCase.commentsPool.findIndex(c => c.id === commentId);\r\n this.core.currentCase.commentsPool.splice(commentIndex, 1);\r\n }\r\n\r\n getCommentsPool() {\r\n return this.core.currentCase.commentsPool;\r\n }\r\n\r\n getCommentById(id: string) {\r\n return this.core.currentCase.commentsPool.find(com => com.id === id);\r\n }\r\n\r\n getCommentsByOwnerId(ownerId: string): BaseObjectComment[] {\r\n return this.core.currentCase.commentsPool.filter(c => c.ownerId === ownerId);\r\n }\r\n\r\n private getUserName() {\r\n const serializedUser = localStorage.getItem('user');\r\n return JSON.parse(serializedUser || '{}').userName;\r\n }\r\n\r\n private getUserId() {\r\n const serializedUser = localStorage.getItem('user');\r\n return JSON.parse(serializedUser || '{}').id;\r\n }\r\n\r\n private get currentCase() {\r\n return this.core.currentCase;\r\n }\r\n}\r\n","/**\nThe data structure for documents. @nonabstract\n*/\nclass Text {\n /**\n Get the line description around the given position.\n */\n lineAt(pos) {\n if (pos < 0 || pos > this.length)\n throw new RangeError(`Invalid position ${pos} in document of length ${this.length}`);\n return this.lineInner(pos, false, 1, 0);\n }\n /**\n Get the description for the given (1-based) line number.\n */\n line(n) {\n if (n < 1 || n > this.lines)\n throw new RangeError(`Invalid line number ${n} in ${this.lines}-line document`);\n return this.lineInner(n, true, 1, 0);\n }\n /**\n Replace a range of the text with the given content.\n */\n replace(from, to, text) {\n [from, to] = clip(this, from, to);\n let parts = [];\n this.decompose(0, from, parts, 2 /* Open.To */);\n if (text.length)\n text.decompose(0, text.length, parts, 1 /* Open.From */ | 2 /* Open.To */);\n this.decompose(to, this.length, parts, 1 /* Open.From */);\n return TextNode.from(parts, this.length - (to - from) + text.length);\n }\n /**\n Append another document to this one.\n */\n append(other) {\n return this.replace(this.length, this.length, other);\n }\n /**\n Retrieve the text between the given points.\n */\n slice(from, to = this.length) {\n [from, to] = clip(this, from, to);\n let parts = [];\n this.decompose(from, to, parts, 0);\n return TextNode.from(parts, to - from);\n }\n /**\n Test whether this text is equal to another instance.\n */\n eq(other) {\n if (other == this)\n return true;\n if (other.length != this.length || other.lines != this.lines)\n return false;\n let start = this.scanIdentical(other, 1), end = this.length - this.scanIdentical(other, -1);\n let a = new RawTextCursor(this), b = new RawTextCursor(other);\n for (let skip = start, pos = start;;) {\n a.next(skip);\n b.next(skip);\n skip = 0;\n if (a.lineBreak != b.lineBreak || a.done != b.done || a.value != b.value)\n return false;\n pos += a.value.length;\n if (a.done || pos >= end)\n return true;\n }\n }\n /**\n Iterate over the text. When `dir` is `-1`, iteration happens\n from end to start. This will return lines and the breaks between\n them as separate strings.\n */\n iter(dir = 1) { return new RawTextCursor(this, dir); }\n /**\n Iterate over a range of the text. When `from` > `to`, the\n iterator will run in reverse.\n */\n iterRange(from, to = this.length) { return new PartialTextCursor(this, from, to); }\n /**\n Return a cursor that iterates over the given range of lines,\n _without_ returning the line breaks between, and yielding empty\n strings for empty lines.\n \n When `from` and `to` are given, they should be 1-based line numbers.\n */\n iterLines(from, to) {\n let inner;\n if (from == null) {\n inner = this.iter();\n }\n else {\n if (to == null)\n to = this.lines + 1;\n let start = this.line(from).from;\n inner = this.iterRange(start, Math.max(start, to == this.lines + 1 ? this.length : to <= 1 ? 0 : this.line(to - 1).to));\n }\n return new LineCursor(inner);\n }\n /**\n Return the document as a string, using newline characters to\n separate lines.\n */\n toString() { return this.sliceString(0); }\n /**\n Convert the document to an array of lines (which can be\n deserialized again via [`Text.of`](https://codemirror.net/6/docs/ref/#state.Text^of)).\n */\n toJSON() {\n let lines = [];\n this.flatten(lines);\n return lines;\n }\n /**\n @internal\n */\n constructor() { }\n /**\n Create a `Text` instance for the given array of lines.\n */\n static of(text) {\n if (text.length == 0)\n throw new RangeError(\"A document must have at least one line\");\n if (text.length == 1 && !text[0])\n return Text.empty;\n return text.length <= 32 /* Tree.Branch */ ? new TextLeaf(text) : TextNode.from(TextLeaf.split(text, []));\n }\n}\n// Leaves store an array of line strings. There are always line breaks\n// between these strings. Leaves are limited in size and have to be\n// contained in TextNode instances for bigger documents.\nclass TextLeaf extends Text {\n constructor(text, length = textLength(text)) {\n super();\n this.text = text;\n this.length = length;\n }\n get lines() { return this.text.length; }\n get children() { return null; }\n lineInner(target, isLine, line, offset) {\n for (let i = 0;; i++) {\n let string = this.text[i], end = offset + string.length;\n if ((isLine ? line : end) >= target)\n return new Line(offset, end, line, string);\n offset = end + 1;\n line++;\n }\n }\n decompose(from, to, target, open) {\n let text = from <= 0 && to >= this.length ? this\n : new TextLeaf(sliceText(this.text, from, to), Math.min(to, this.length) - Math.max(0, from));\n if (open & 1 /* Open.From */) {\n let prev = target.pop();\n let joined = appendText(text.text, prev.text.slice(), 0, text.length);\n if (joined.length <= 32 /* Tree.Branch */) {\n target.push(new TextLeaf(joined, prev.length + text.length));\n }\n else {\n let mid = joined.length >> 1;\n target.push(new TextLeaf(joined.slice(0, mid)), new TextLeaf(joined.slice(mid)));\n }\n }\n else {\n target.push(text);\n }\n }\n replace(from, to, text) {\n if (!(text instanceof TextLeaf))\n return super.replace(from, to, text);\n [from, to] = clip(this, from, to);\n let lines = appendText(this.text, appendText(text.text, sliceText(this.text, 0, from)), to);\n let newLen = this.length + text.length - (to - from);\n if (lines.length <= 32 /* Tree.Branch */)\n return new TextLeaf(lines, newLen);\n return TextNode.from(TextLeaf.split(lines, []), newLen);\n }\n sliceString(from, to = this.length, lineSep = \"\\n\") {\n [from, to] = clip(this, from, to);\n let result = \"\";\n for (let pos = 0, i = 0; pos <= to && i < this.text.length; i++) {\n let line = this.text[i], end = pos + line.length;\n if (pos > from && i)\n result += lineSep;\n if (from < end && to > pos)\n result += line.slice(Math.max(0, from - pos), to - pos);\n pos = end + 1;\n }\n return result;\n }\n flatten(target) {\n for (let line of this.text)\n target.push(line);\n }\n scanIdentical() { return 0; }\n static split(text, target) {\n let part = [], len = -1;\n for (let line of text) {\n part.push(line);\n len += line.length + 1;\n if (part.length == 32 /* Tree.Branch */) {\n target.push(new TextLeaf(part, len));\n part = [];\n len = -1;\n }\n }\n if (len > -1)\n target.push(new TextLeaf(part, len));\n return target;\n }\n}\n// Nodes provide the tree structure of the `Text` type. They store a\n// number of other nodes or leaves, taking care to balance themselves\n// on changes. There are implied line breaks _between_ the children of\n// a node (but not before the first or after the last child).\nclass TextNode extends Text {\n constructor(children, length) {\n super();\n this.children = children;\n this.length = length;\n this.lines = 0;\n for (let child of children)\n this.lines += child.lines;\n }\n lineInner(target, isLine, line, offset) {\n for (let i = 0;; i++) {\n let child = this.children[i], end = offset + child.length, endLine = line + child.lines - 1;\n if ((isLine ? endLine : end) >= target)\n return child.lineInner(target, isLine, line, offset);\n offset = end + 1;\n line = endLine + 1;\n }\n }\n decompose(from, to, target, open) {\n for (let i = 0, pos = 0; pos <= to && i < this.children.length; i++) {\n let child = this.children[i], end = pos + child.length;\n if (from <= end && to >= pos) {\n let childOpen = open & ((pos <= from ? 1 /* Open.From */ : 0) | (end >= to ? 2 /* Open.To */ : 0));\n if (pos >= from && end <= to && !childOpen)\n target.push(child);\n else\n child.decompose(from - pos, to - pos, target, childOpen);\n }\n pos = end + 1;\n }\n }\n replace(from, to, text) {\n [from, to] = clip(this, from, to);\n if (text.lines < this.lines)\n for (let i = 0, pos = 0; i < this.children.length; i++) {\n let child = this.children[i], end = pos + child.length;\n // Fast path: if the change only affects one child and the\n // child's size remains in the acceptable range, only update\n // that child\n if (from >= pos && to <= end) {\n let updated = child.replace(from - pos, to - pos, text);\n let totalLines = this.lines - child.lines + updated.lines;\n if (updated.lines < (totalLines >> (5 /* Tree.BranchShift */ - 1)) &&\n updated.lines > (totalLines >> (5 /* Tree.BranchShift */ + 1))) {\n let copy = this.children.slice();\n copy[i] = updated;\n return new TextNode(copy, this.length - (to - from) + text.length);\n }\n return super.replace(pos, end, updated);\n }\n pos = end + 1;\n }\n return super.replace(from, to, text);\n }\n sliceString(from, to = this.length, lineSep = \"\\n\") {\n [from, to] = clip(this, from, to);\n let result = \"\";\n for (let i = 0, pos = 0; i < this.children.length && pos <= to; i++) {\n let child = this.children[i], end = pos + child.length;\n if (pos > from && i)\n result += lineSep;\n if (from < end && to > pos)\n result += child.sliceString(from - pos, to - pos, lineSep);\n pos = end + 1;\n }\n return result;\n }\n flatten(target) {\n for (let child of this.children)\n child.flatten(target);\n }\n scanIdentical(other, dir) {\n if (!(other instanceof TextNode))\n return 0;\n let length = 0;\n let [iA, iB, eA, eB] = dir > 0 ? [0, 0, this.children.length, other.children.length]\n : [this.children.length - 1, other.children.length - 1, -1, -1];\n for (;; iA += dir, iB += dir) {\n if (iA == eA || iB == eB)\n return length;\n let chA = this.children[iA], chB = other.children[iB];\n if (chA != chB)\n return length + chA.scanIdentical(chB, dir);\n length += chA.length + 1;\n }\n }\n static from(children, length = children.reduce((l, ch) => l + ch.length + 1, -1)) {\n let lines = 0;\n for (let ch of children)\n lines += ch.lines;\n if (lines < 32 /* Tree.Branch */) {\n let flat = [];\n for (let ch of children)\n ch.flatten(flat);\n return new TextLeaf(flat, length);\n }\n let chunk = Math.max(32 /* Tree.Branch */, lines >> 5 /* Tree.BranchShift */), maxChunk = chunk << 1, minChunk = chunk >> 1;\n let chunked = [], currentLines = 0, currentLen = -1, currentChunk = [];\n function add(child) {\n let last;\n if (child.lines > maxChunk && child instanceof TextNode) {\n for (let node of child.children)\n add(node);\n }\n else if (child.lines > minChunk && (currentLines > minChunk || !currentLines)) {\n flush();\n chunked.push(child);\n }\n else if (child instanceof TextLeaf && currentLines &&\n (last = currentChunk[currentChunk.length - 1]) instanceof TextLeaf &&\n child.lines + last.lines <= 32 /* Tree.Branch */) {\n currentLines += child.lines;\n currentLen += child.length + 1;\n currentChunk[currentChunk.length - 1] = new TextLeaf(last.text.concat(child.text), last.length + 1 + child.length);\n }\n else {\n if (currentLines + child.lines > chunk)\n flush();\n currentLines += child.lines;\n currentLen += child.length + 1;\n currentChunk.push(child);\n }\n }\n function flush() {\n if (currentLines == 0)\n return;\n chunked.push(currentChunk.length == 1 ? currentChunk[0] : TextNode.from(currentChunk, currentLen));\n currentLen = -1;\n currentLines = currentChunk.length = 0;\n }\n for (let child of children)\n add(child);\n flush();\n return chunked.length == 1 ? chunked[0] : new TextNode(chunked, length);\n }\n}\nText.empty = /*@__PURE__*/new TextLeaf([\"\"], 0);\nfunction textLength(text) {\n let length = -1;\n for (let line of text)\n length += line.length + 1;\n return length;\n}\nfunction appendText(text, target, from = 0, to = 1e9) {\n for (let pos = 0, i = 0, first = true; i < text.length && pos <= to; i++) {\n let line = text[i], end = pos + line.length;\n if (end >= from) {\n if (end > to)\n line = line.slice(0, to - pos);\n if (pos < from)\n line = line.slice(from - pos);\n if (first) {\n target[target.length - 1] += line;\n first = false;\n }\n else\n target.push(line);\n }\n pos = end + 1;\n }\n return target;\n}\nfunction sliceText(text, from, to) {\n return appendText(text, [\"\"], from, to);\n}\nclass RawTextCursor {\n constructor(text, dir = 1) {\n this.dir = dir;\n this.done = false;\n this.lineBreak = false;\n this.value = \"\";\n this.nodes = [text];\n this.offsets = [dir > 0 ? 1 : (text instanceof TextLeaf ? text.text.length : text.children.length) << 1];\n }\n nextInner(skip, dir) {\n this.done = this.lineBreak = false;\n for (;;) {\n let last = this.nodes.length - 1;\n let top = this.nodes[last], offsetValue = this.offsets[last], offset = offsetValue >> 1;\n let size = top instanceof TextLeaf ? top.text.length : top.children.length;\n if (offset == (dir > 0 ? size : 0)) {\n if (last == 0) {\n this.done = true;\n this.value = \"\";\n return this;\n }\n if (dir > 0)\n this.offsets[last - 1]++;\n this.nodes.pop();\n this.offsets.pop();\n }\n else if ((offsetValue & 1) == (dir > 0 ? 0 : 1)) {\n this.offsets[last] += dir;\n if (skip == 0) {\n this.lineBreak = true;\n this.value = \"\\n\";\n return this;\n }\n skip--;\n }\n else if (top instanceof TextLeaf) {\n // Move to the next string\n let next = top.text[offset + (dir < 0 ? -1 : 0)];\n this.offsets[last] += dir;\n if (next.length > Math.max(0, skip)) {\n this.value = skip == 0 ? next : dir > 0 ? next.slice(skip) : next.slice(0, next.length - skip);\n return this;\n }\n skip -= next.length;\n }\n else {\n let next = top.children[offset + (dir < 0 ? -1 : 0)];\n if (skip > next.length) {\n skip -= next.length;\n this.offsets[last] += dir;\n }\n else {\n if (dir < 0)\n this.offsets[last]--;\n this.nodes.push(next);\n this.offsets.push(dir > 0 ? 1 : (next instanceof TextLeaf ? next.text.length : next.children.length) << 1);\n }\n }\n }\n }\n next(skip = 0) {\n if (skip < 0) {\n this.nextInner(-skip, (-this.dir));\n skip = this.value.length;\n }\n return this.nextInner(skip, this.dir);\n }\n}\nclass PartialTextCursor {\n constructor(text, start, end) {\n this.value = \"\";\n this.done = false;\n this.cursor = new RawTextCursor(text, start > end ? -1 : 1);\n this.pos = start > end ? text.length : 0;\n this.from = Math.min(start, end);\n this.to = Math.max(start, end);\n }\n nextInner(skip, dir) {\n if (dir < 0 ? this.pos <= this.from : this.pos >= this.to) {\n this.value = \"\";\n this.done = true;\n return this;\n }\n skip += Math.max(0, dir < 0 ? this.pos - this.to : this.from - this.pos);\n let limit = dir < 0 ? this.pos - this.from : this.to - this.pos;\n if (skip > limit)\n skip = limit;\n limit -= skip;\n let { value } = this.cursor.next(skip);\n this.pos += (value.length + skip) * dir;\n this.value = value.length <= limit ? value : dir < 0 ? value.slice(value.length - limit) : value.slice(0, limit);\n this.done = !this.value;\n return this;\n }\n next(skip = 0) {\n if (skip < 0)\n skip = Math.max(skip, this.from - this.pos);\n else if (skip > 0)\n skip = Math.min(skip, this.to - this.pos);\n return this.nextInner(skip, this.cursor.dir);\n }\n get lineBreak() { return this.cursor.lineBreak && this.value != \"\"; }\n}\nclass LineCursor {\n constructor(inner) {\n this.inner = inner;\n this.afterBreak = true;\n this.value = \"\";\n this.done = false;\n }\n next(skip = 0) {\n let { done, lineBreak, value } = this.inner.next(skip);\n if (done && this.afterBreak) {\n this.value = \"\";\n this.afterBreak = false;\n }\n else if (done) {\n this.done = true;\n this.value = \"\";\n }\n else if (lineBreak) {\n if (this.afterBreak) {\n this.value = \"\";\n }\n else {\n this.afterBreak = true;\n this.next();\n }\n }\n else {\n this.value = value;\n this.afterBreak = false;\n }\n return this;\n }\n get lineBreak() { return false; }\n}\nif (typeof Symbol != \"undefined\") {\n Text.prototype[Symbol.iterator] = function () { return this.iter(); };\n RawTextCursor.prototype[Symbol.iterator] = PartialTextCursor.prototype[Symbol.iterator] =\n LineCursor.prototype[Symbol.iterator] = function () { return this; };\n}\n/**\nThis type describes a line in the document. It is created\non-demand when lines are [queried](https://codemirror.net/6/docs/ref/#state.Text.lineAt).\n*/\nclass Line {\n /**\n @internal\n */\n constructor(\n /**\n The position of the start of the line.\n */\n from, \n /**\n The position at the end of the line (_before_ the line break,\n or at the end of document for the last line).\n */\n to, \n /**\n This line's line number (1-based).\n */\n number, \n /**\n The line's content.\n */\n text) {\n this.from = from;\n this.to = to;\n this.number = number;\n this.text = text;\n }\n /**\n The length of the line (not including any line break after it).\n */\n get length() { return this.to - this.from; }\n}\nfunction clip(text, from, to) {\n from = Math.max(0, Math.min(text.length, from));\n return [from, Math.max(from, Math.min(text.length, to))];\n}\n\n// Compressed representation of the Grapheme_Cluster_Break=Extend\n// information from\n// http://www.unicode.org/Public/13.0.0/ucd/auxiliary/GraphemeBreakProperty.txt.\n// Each pair of elements represents a range, as an offet from the\n// previous range and a length. Numbers are in base-36, with the empty\n// string being a shorthand for 1.\nlet extend = /*@__PURE__*/\"lc,34,7n,7,7b,19,,,,2,,2,,,20,b,1c,l,g,,2t,7,2,6,2,2,,4,z,,u,r,2j,b,1m,9,9,,o,4,,9,,3,,5,17,3,3b,f,,w,1j,,,,4,8,4,,3,7,a,2,t,,1m,,,,2,4,8,,9,,a,2,q,,2,2,1l,,4,2,4,2,2,3,3,,u,2,3,,b,2,1l,,4,5,,2,4,,k,2,m,6,,,1m,,,2,,4,8,,7,3,a,2,u,,1n,,,,c,,9,,14,,3,,1l,3,5,3,,4,7,2,b,2,t,,1m,,2,,2,,3,,5,2,7,2,b,2,s,2,1l,2,,,2,4,8,,9,,a,2,t,,20,,4,,2,3,,,8,,29,,2,7,c,8,2q,,2,9,b,6,22,2,r,,,,,,1j,e,,5,,2,5,b,,10,9,,2u,4,,6,,2,2,2,p,2,4,3,g,4,d,,2,2,6,,f,,jj,3,qa,3,t,3,t,2,u,2,1s,2,,7,8,,2,b,9,,19,3,3b,2,y,,3a,3,4,2,9,,6,3,63,2,2,,1m,,,7,,,,,2,8,6,a,2,,1c,h,1r,4,1c,7,,,5,,14,9,c,2,w,4,2,2,,3,1k,,,2,3,,,3,1m,8,2,2,48,3,,d,,7,4,,6,,3,2,5i,1m,,5,ek,,5f,x,2da,3,3x,,2o,w,fe,6,2x,2,n9w,4,,a,w,2,28,2,7k,,3,,4,,p,2,5,,47,2,q,i,d,,12,8,p,b,1a,3,1c,,2,4,2,2,13,,1v,6,2,2,2,2,c,,8,,1b,,1f,,,3,2,2,5,2,,,16,2,8,,6m,,2,,4,,fn4,,kh,g,g,g,a6,2,gt,,6a,,45,5,1ae,3,,2,5,4,14,3,4,,4l,2,fx,4,ar,2,49,b,4w,,1i,f,1k,3,1d,4,2,2,1x,3,10,5,,8,1q,,c,2,1g,9,a,4,2,,2n,3,2,,,2,6,,4g,,3,8,l,2,1l,2,,,,,m,,e,7,3,5,5f,8,2,3,,,n,,29,,2,6,,,2,,,2,,2,6j,,2,4,6,2,,2,r,2,2d,8,2,,,2,2y,,,,2,6,,,2t,3,2,4,,5,77,9,,2,6t,,a,2,,,4,,40,4,2,2,4,,w,a,14,6,2,4,8,,9,6,2,3,1a,d,,2,ba,7,,6,,,2a,m,2,7,,2,,2,3e,6,3,,,2,,7,,,20,2,3,,,,9n,2,f0b,5,1n,7,t4,,1r,4,29,,f5k,2,43q,,,3,4,5,8,8,2,7,u,4,44,3,1iz,1j,4,1e,8,,e,,m,5,,f,11s,7,,h,2,7,,2,,5,79,7,c5,4,15s,7,31,7,240,5,gx7k,2o,3k,6o\".split(\",\").map(s => s ? parseInt(s, 36) : 1);\n// Convert offsets into absolute values\nfor (let i = 1; i < extend.length; i++)\n extend[i] += extend[i - 1];\nfunction isExtendingChar(code) {\n for (let i = 1; i < extend.length; i += 2)\n if (extend[i] > code)\n return extend[i - 1] <= code;\n return false;\n}\nfunction isRegionalIndicator(code) {\n return code >= 0x1F1E6 && code <= 0x1F1FF;\n}\nconst ZWJ = 0x200d;\n/**\nReturns a next grapheme cluster break _after_ (not equal to)\n`pos`, if `forward` is true, or before otherwise. Returns `pos`\nitself if no further cluster break is available in the string.\nMoves across surrogate pairs, extending characters (when\n`includeExtending` is true), characters joined with zero-width\njoiners, and flag emoji.\n*/\nfunction findClusterBreak(str, pos, forward = true, includeExtending = true) {\n return (forward ? nextClusterBreak : prevClusterBreak)(str, pos, includeExtending);\n}\nfunction nextClusterBreak(str, pos, includeExtending) {\n if (pos == str.length)\n return pos;\n // If pos is in the middle of a surrogate pair, move to its start\n if (pos && surrogateLow(str.charCodeAt(pos)) && surrogateHigh(str.charCodeAt(pos - 1)))\n pos--;\n let prev = codePointAt(str, pos);\n pos += codePointSize(prev);\n while (pos < str.length) {\n let next = codePointAt(str, pos);\n if (prev == ZWJ || next == ZWJ || includeExtending && isExtendingChar(next)) {\n pos += codePointSize(next);\n prev = next;\n }\n else if (isRegionalIndicator(next)) {\n let countBefore = 0, i = pos - 2;\n while (i >= 0 && isRegionalIndicator(codePointAt(str, i))) {\n countBefore++;\n i -= 2;\n }\n if (countBefore % 2 == 0)\n break;\n else\n pos += 2;\n }\n else {\n break;\n }\n }\n return pos;\n}\nfunction prevClusterBreak(str, pos, includeExtending) {\n while (pos > 0) {\n let found = nextClusterBreak(str, pos - 2, includeExtending);\n if (found < pos)\n return found;\n pos--;\n }\n return 0;\n}\nfunction surrogateLow(ch) { return ch >= 0xDC00 && ch < 0xE000; }\nfunction surrogateHigh(ch) { return ch >= 0xD800 && ch < 0xDC00; }\n/**\nFind the code point at the given position in a string (like the\n[`codePointAt`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/codePointAt)\nstring method).\n*/\nfunction codePointAt(str, pos) {\n let code0 = str.charCodeAt(pos);\n if (!surrogateHigh(code0) || pos + 1 == str.length)\n return code0;\n let code1 = str.charCodeAt(pos + 1);\n if (!surrogateLow(code1))\n return code0;\n return ((code0 - 0xd800) << 10) + (code1 - 0xdc00) + 0x10000;\n}\n/**\nGiven a Unicode codepoint, return the JavaScript string that\nrespresents it (like\n[`String.fromCodePoint`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/fromCodePoint)).\n*/\nfunction fromCodePoint(code) {\n if (code <= 0xffff)\n return String.fromCharCode(code);\n code -= 0x10000;\n return String.fromCharCode((code >> 10) + 0xd800, (code & 1023) + 0xdc00);\n}\n/**\nThe amount of positions a character takes up a JavaScript string.\n*/\nfunction codePointSize(code) { return code < 0x10000 ? 1 : 2; }\n\nconst DefaultSplit = /\\r\\n?|\\n/;\n/**\nDistinguishes different ways in which positions can be mapped.\n*/\nvar MapMode = /*@__PURE__*/(function (MapMode) {\n /**\n Map a position to a valid new position, even when its context\n was deleted.\n */\n MapMode[MapMode[\"Simple\"] = 0] = \"Simple\";\n /**\n Return null if deletion happens across the position.\n */\n MapMode[MapMode[\"TrackDel\"] = 1] = \"TrackDel\";\n /**\n Return null if the character _before_ the position is deleted.\n */\n MapMode[MapMode[\"TrackBefore\"] = 2] = \"TrackBefore\";\n /**\n Return null if the character _after_ the position is deleted.\n */\n MapMode[MapMode[\"TrackAfter\"] = 3] = \"TrackAfter\";\nreturn MapMode})(MapMode || (MapMode = {}));\n/**\nA change description is a variant of [change set](https://codemirror.net/6/docs/ref/#state.ChangeSet)\nthat doesn't store the inserted text. As such, it can't be\napplied, but is cheaper to store and manipulate.\n*/\nclass ChangeDesc {\n // Sections are encoded as pairs of integers. The first is the\n // length in the current document, and the second is -1 for\n // unaffected sections, and the length of the replacement content\n // otherwise. So an insertion would be (0, n>0), a deletion (n>0,\n // 0), and a replacement two positive numbers.\n /**\n @internal\n */\n constructor(\n /**\n @internal\n */\n sections) {\n this.sections = sections;\n }\n /**\n The length of the document before the change.\n */\n get length() {\n let result = 0;\n for (let i = 0; i < this.sections.length; i += 2)\n result += this.sections[i];\n return result;\n }\n /**\n The length of the document after the change.\n */\n get newLength() {\n let result = 0;\n for (let i = 0; i < this.sections.length; i += 2) {\n let ins = this.sections[i + 1];\n result += ins < 0 ? this.sections[i] : ins;\n }\n return result;\n }\n /**\n False when there are actual changes in this set.\n */\n get empty() { return this.sections.length == 0 || this.sections.length == 2 && this.sections[1] < 0; }\n /**\n Iterate over the unchanged parts left by these changes. `posA`\n provides the position of the range in the old document, `posB`\n the new position in the changed document.\n */\n iterGaps(f) {\n for (let i = 0, posA = 0, posB = 0; i < this.sections.length;) {\n let len = this.sections[i++], ins = this.sections[i++];\n if (ins < 0) {\n f(posA, posB, len);\n posB += len;\n }\n else {\n posB += ins;\n }\n posA += len;\n }\n }\n /**\n Iterate over the ranges changed by these changes. (See\n [`ChangeSet.iterChanges`](https://codemirror.net/6/docs/ref/#state.ChangeSet.iterChanges) for a\n variant that also provides you with the inserted text.)\n `fromA`/`toA` provides the extent of the change in the starting\n document, `fromB`/`toB` the extent of the replacement in the\n changed document.\n \n When `individual` is true, adjacent changes (which are kept\n separate for [position mapping](https://codemirror.net/6/docs/ref/#state.ChangeDesc.mapPos)) are\n reported separately.\n */\n iterChangedRanges(f, individual = false) {\n iterChanges(this, f, individual);\n }\n /**\n Get a description of the inverted form of these changes.\n */\n get invertedDesc() {\n let sections = [];\n for (let i = 0; i < this.sections.length;) {\n let len = this.sections[i++], ins = this.sections[i++];\n if (ins < 0)\n sections.push(len, ins);\n else\n sections.push(ins, len);\n }\n return new ChangeDesc(sections);\n }\n /**\n Compute the combined effect of applying another set of changes\n after this one. The length of the document after this set should\n match the length before `other`.\n */\n composeDesc(other) { return this.empty ? other : other.empty ? this : composeSets(this, other); }\n /**\n Map this description, which should start with the same document\n as `other`, over another set of changes, so that it can be\n applied after it. When `before` is true, map as if the changes\n in `other` happened before the ones in `this`.\n */\n mapDesc(other, before = false) { return other.empty ? this : mapSet(this, other, before); }\n mapPos(pos, assoc = -1, mode = MapMode.Simple) {\n let posA = 0, posB = 0;\n for (let i = 0; i < this.sections.length;) {\n let len = this.sections[i++], ins = this.sections[i++], endA = posA + len;\n if (ins < 0) {\n if (endA > pos)\n return posB + (pos - posA);\n posB += len;\n }\n else {\n if (mode != MapMode.Simple && endA >= pos &&\n (mode == MapMode.TrackDel && posA < pos && endA > pos ||\n mode == MapMode.TrackBefore && posA < pos ||\n mode == MapMode.TrackAfter && endA > pos))\n return null;\n if (endA > pos || endA == pos && assoc < 0 && !len)\n return pos == posA || assoc < 0 ? posB : posB + ins;\n posB += ins;\n }\n posA = endA;\n }\n if (pos > posA)\n throw new RangeError(`Position ${pos} is out of range for changeset of length ${posA}`);\n return posB;\n }\n /**\n Check whether these changes touch a given range. When one of the\n changes entirely covers the range, the string `\"cover\"` is\n returned.\n */\n touchesRange(from, to = from) {\n for (let i = 0, pos = 0; i < this.sections.length && pos <= to;) {\n let len = this.sections[i++], ins = this.sections[i++], end = pos + len;\n if (ins >= 0 && pos <= to && end >= from)\n return pos < from && end > to ? \"cover\" : true;\n pos = end;\n }\n return false;\n }\n /**\n @internal\n */\n toString() {\n let result = \"\";\n for (let i = 0; i < this.sections.length;) {\n let len = this.sections[i++], ins = this.sections[i++];\n result += (result ? \" \" : \"\") + len + (ins >= 0 ? \":\" + ins : \"\");\n }\n return result;\n }\n /**\n Serialize this change desc to a JSON-representable value.\n */\n toJSON() { return this.sections; }\n /**\n Create a change desc from its JSON representation (as produced\n by [`toJSON`](https://codemirror.net/6/docs/ref/#state.ChangeDesc.toJSON).\n */\n static fromJSON(json) {\n if (!Array.isArray(json) || json.length % 2 || json.some(a => typeof a != \"number\"))\n throw new RangeError(\"Invalid JSON representation of ChangeDesc\");\n return new ChangeDesc(json);\n }\n /**\n @internal\n */\n static create(sections) { return new ChangeDesc(sections); }\n}\n/**\nA change set represents a group of modifications to a document. It\nstores the document length, and can only be applied to documents\nwith exactly that length.\n*/\nclass ChangeSet extends ChangeDesc {\n constructor(sections, \n /**\n @internal\n */\n inserted) {\n super(sections);\n this.inserted = inserted;\n }\n /**\n Apply the changes to a document, returning the modified\n document.\n */\n apply(doc) {\n if (this.length != doc.length)\n throw new RangeError(\"Applying change set to a document with the wrong length\");\n iterChanges(this, (fromA, toA, fromB, _toB, text) => doc = doc.replace(fromB, fromB + (toA - fromA), text), false);\n return doc;\n }\n mapDesc(other, before = false) { return mapSet(this, other, before, true); }\n /**\n Given the document as it existed _before_ the changes, return a\n change set that represents the inverse of this set, which could\n be used to go from the document created by the changes back to\n the document as it existed before the changes.\n */\n invert(doc) {\n let sections = this.sections.slice(), inserted = [];\n for (let i = 0, pos = 0; i < sections.length; i += 2) {\n let len = sections[i], ins = sections[i + 1];\n if (ins >= 0) {\n sections[i] = ins;\n sections[i + 1] = len;\n let index = i >> 1;\n while (inserted.length < index)\n inserted.push(Text.empty);\n inserted.push(len ? doc.slice(pos, pos + len) : Text.empty);\n }\n pos += len;\n }\n return new ChangeSet(sections, inserted);\n }\n /**\n Combine two subsequent change sets into a single set. `other`\n must start in the document produced by `this`. If `this` goes\n `docA` → `docB` and `other` represents `docB` → `docC`, the\n returned value will represent the change `docA` → `docC`.\n */\n compose(other) { return this.empty ? other : other.empty ? this : composeSets(this, other, true); }\n /**\n Given another change set starting in the same document, maps this\n change set over the other, producing a new change set that can be\n applied to the document produced by applying `other`. When\n `before` is `true`, order changes as if `this` comes before\n `other`, otherwise (the default) treat `other` as coming first.\n \n Given two changes `A` and `B`, `A.compose(B.map(A))` and\n `B.compose(A.map(B, true))` will produce the same document. This\n provides a basic form of [operational\n transformation](https://en.wikipedia.org/wiki/Operational_transformation),\n and can be used for collaborative editing.\n */\n map(other, before = false) { return other.empty ? this : mapSet(this, other, before, true); }\n /**\n Iterate over the changed ranges in the document, calling `f` for\n each, with the range in the original document (`fromA`-`toA`)\n and the range that replaces it in the new document\n (`fromB`-`toB`).\n \n When `individual` is true, adjacent changes are reported\n separately.\n */\n iterChanges(f, individual = false) {\n iterChanges(this, f, individual);\n }\n /**\n Get a [change description](https://codemirror.net/6/docs/ref/#state.ChangeDesc) for this change\n set.\n */\n get desc() { return ChangeDesc.create(this.sections); }\n /**\n @internal\n */\n filter(ranges) {\n let resultSections = [], resultInserted = [], filteredSections = [];\n let iter = new SectionIter(this);\n done: for (let i = 0, pos = 0;;) {\n let next = i == ranges.length ? 1e9 : ranges[i++];\n while (pos < next || pos == next && iter.len == 0) {\n if (iter.done)\n break done;\n let len = Math.min(iter.len, next - pos);\n addSection(filteredSections, len, -1);\n let ins = iter.ins == -1 ? -1 : iter.off == 0 ? iter.ins : 0;\n addSection(resultSections, len, ins);\n if (ins > 0)\n addInsert(resultInserted, resultSections, iter.text);\n iter.forward(len);\n pos += len;\n }\n let end = ranges[i++];\n while (pos < end) {\n if (iter.done)\n break done;\n let len = Math.min(iter.len, end - pos);\n addSection(resultSections, len, -1);\n addSection(filteredSections, len, iter.ins == -1 ? -1 : iter.off == 0 ? iter.ins : 0);\n iter.forward(len);\n pos += len;\n }\n }\n return { changes: new ChangeSet(resultSections, resultInserted),\n filtered: ChangeDesc.create(filteredSections) };\n }\n /**\n Serialize this change set to a JSON-representable value.\n */\n toJSON() {\n let parts = [];\n for (let i = 0; i < this.sections.length; i += 2) {\n let len = this.sections[i], ins = this.sections[i + 1];\n if (ins < 0)\n parts.push(len);\n else if (ins == 0)\n parts.push([len]);\n else\n parts.push([len].concat(this.inserted[i >> 1].toJSON()));\n }\n return parts;\n }\n /**\n Create a change set for the given changes, for a document of the\n given length, using `lineSep` as line separator.\n */\n static of(changes, length, lineSep) {\n let sections = [], inserted = [], pos = 0;\n let total = null;\n function flush(force = false) {\n if (!force && !sections.length)\n return;\n if (pos < length)\n addSection(sections, length - pos, -1);\n let set = new ChangeSet(sections, inserted);\n total = total ? total.compose(set.map(total)) : set;\n sections = [];\n inserted = [];\n pos = 0;\n }\n function process(spec) {\n if (Array.isArray(spec)) {\n for (let sub of spec)\n process(sub);\n }\n else if (spec instanceof ChangeSet) {\n if (spec.length != length)\n throw new RangeError(`Mismatched change set length (got ${spec.length}, expected ${length})`);\n flush();\n total = total ? total.compose(spec.map(total)) : spec;\n }\n else {\n let { from, to = from, insert } = spec;\n if (from > to || from < 0 || to > length)\n throw new RangeError(`Invalid change range ${from} to ${to} (in doc of length ${length})`);\n let insText = !insert ? Text.empty : typeof insert == \"string\" ? Text.of(insert.split(lineSep || DefaultSplit)) : insert;\n let insLen = insText.length;\n if (from == to && insLen == 0)\n return;\n if (from < pos)\n flush();\n if (from > pos)\n addSection(sections, from - pos, -1);\n addSection(sections, to - from, insLen);\n addInsert(inserted, sections, insText);\n pos = to;\n }\n }\n process(changes);\n flush(!total);\n return total;\n }\n /**\n Create an empty changeset of the given length.\n */\n static empty(length) {\n return new ChangeSet(length ? [length, -1] : [], []);\n }\n /**\n Create a changeset from its JSON representation (as produced by\n [`toJSON`](https://codemirror.net/6/docs/ref/#state.ChangeSet.toJSON).\n */\n static fromJSON(json) {\n if (!Array.isArray(json))\n throw new RangeError(\"Invalid JSON representation of ChangeSet\");\n let sections = [], inserted = [];\n for (let i = 0; i < json.length; i++) {\n let part = json[i];\n if (typeof part == \"number\") {\n sections.push(part, -1);\n }\n else if (!Array.isArray(part) || typeof part[0] != \"number\" || part.some((e, i) => i && typeof e != \"string\")) {\n throw new RangeError(\"Invalid JSON representation of ChangeSet\");\n }\n else if (part.length == 1) {\n sections.push(part[0], 0);\n }\n else {\n while (inserted.length < i)\n inserted.push(Text.empty);\n inserted[i] = Text.of(part.slice(1));\n sections.push(part[0], inserted[i].length);\n }\n }\n return new ChangeSet(sections, inserted);\n }\n /**\n @internal\n */\n static createSet(sections, inserted) {\n return new ChangeSet(sections, inserted);\n }\n}\nfunction addSection(sections, len, ins, forceJoin = false) {\n if (len == 0 && ins <= 0)\n return;\n let last = sections.length - 2;\n if (last >= 0 && ins <= 0 && ins == sections[last + 1])\n sections[last] += len;\n else if (len == 0 && sections[last] == 0)\n sections[last + 1] += ins;\n else if (forceJoin) {\n sections[last] += len;\n sections[last + 1] += ins;\n }\n else\n sections.push(len, ins);\n}\nfunction addInsert(values, sections, value) {\n if (value.length == 0)\n return;\n let index = (sections.length - 2) >> 1;\n if (index < values.length) {\n values[values.length - 1] = values[values.length - 1].append(value);\n }\n else {\n while (values.length < index)\n values.push(Text.empty);\n values.push(value);\n }\n}\nfunction iterChanges(desc, f, individual) {\n let inserted = desc.inserted;\n for (let posA = 0, posB = 0, i = 0; i < desc.sections.length;) {\n let len = desc.sections[i++], ins = desc.sections[i++];\n if (ins < 0) {\n posA += len;\n posB += len;\n }\n else {\n let endA = posA, endB = posB, text = Text.empty;\n for (;;) {\n endA += len;\n endB += ins;\n if (ins && inserted)\n text = text.append(inserted[(i - 2) >> 1]);\n if (individual || i == desc.sections.length || desc.sections[i + 1] < 0)\n break;\n len = desc.sections[i++];\n ins = desc.sections[i++];\n }\n f(posA, endA, posB, endB, text);\n posA = endA;\n posB = endB;\n }\n }\n}\nfunction mapSet(setA, setB, before, mkSet = false) {\n // Produce a copy of setA that applies to the document after setB\n // has been applied (assuming both start at the same document).\n let sections = [], insert = mkSet ? [] : null;\n let a = new SectionIter(setA), b = new SectionIter(setB);\n // Iterate over both sets in parallel. inserted tracks, for changes\n // in A that have to be processed piece-by-piece, whether their\n // content has been inserted already, and refers to the section\n // index.\n for (let inserted = -1;;) {\n if (a.ins == -1 && b.ins == -1) {\n // Move across ranges skipped by both sets.\n let len = Math.min(a.len, b.len);\n addSection(sections, len, -1);\n a.forward(len);\n b.forward(len);\n }\n else if (b.ins >= 0 && (a.ins < 0 || inserted == a.i || a.off == 0 && (b.len < a.len || b.len == a.len && !before))) {\n // If there's a change in B that comes before the next change in\n // A (ordered by start pos, then len, then before flag), skip\n // that (and process any changes in A it covers).\n let len = b.len;\n addSection(sections, b.ins, -1);\n while (len) {\n let piece = Math.min(a.len, len);\n if (a.ins >= 0 && inserted < a.i && a.len <= piece) {\n addSection(sections, 0, a.ins);\n if (insert)\n addInsert(insert, sections, a.text);\n inserted = a.i;\n }\n a.forward(piece);\n len -= piece;\n }\n b.next();\n }\n else if (a.ins >= 0) {\n // Process the part of a change in A up to the start of the next\n // non-deletion change in B (if overlapping).\n let len = 0, left = a.len;\n while (left) {\n if (b.ins == -1) {\n let piece = Math.min(left, b.len);\n len += piece;\n left -= piece;\n b.forward(piece);\n }\n else if (b.ins == 0 && b.len < left) {\n left -= b.len;\n b.next();\n }\n else {\n break;\n }\n }\n addSection(sections, len, inserted < a.i ? a.ins : 0);\n if (insert && inserted < a.i)\n addInsert(insert, sections, a.text);\n inserted = a.i;\n a.forward(a.len - left);\n }\n else if (a.done && b.done) {\n return insert ? ChangeSet.createSet(sections, insert) : ChangeDesc.create(sections);\n }\n else {\n throw new Error(\"Mismatched change set lengths\");\n }\n }\n}\nfunction composeSets(setA, setB, mkSet = false) {\n let sections = [];\n let insert = mkSet ? [] : null;\n let a = new SectionIter(setA), b = new SectionIter(setB);\n for (let open = false;;) {\n if (a.done && b.done) {\n return insert ? ChangeSet.createSet(sections, insert) : ChangeDesc.create(sections);\n }\n else if (a.ins == 0) { // Deletion in A\n addSection(sections, a.len, 0, open);\n a.next();\n }\n else if (b.len == 0 && !b.done) { // Insertion in B\n addSection(sections, 0, b.ins, open);\n if (insert)\n addInsert(insert, sections, b.text);\n b.next();\n }\n else if (a.done || b.done) {\n throw new Error(\"Mismatched change set lengths\");\n }\n else {\n let len = Math.min(a.len2, b.len), sectionLen = sections.length;\n if (a.ins == -1) {\n let insB = b.ins == -1 ? -1 : b.off ? 0 : b.ins;\n addSection(sections, len, insB, open);\n if (insert && insB)\n addInsert(insert, sections, b.text);\n }\n else if (b.ins == -1) {\n addSection(sections, a.off ? 0 : a.len, len, open);\n if (insert)\n addInsert(insert, sections, a.textBit(len));\n }\n else {\n addSection(sections, a.off ? 0 : a.len, b.off ? 0 : b.ins, open);\n if (insert && !b.off)\n addInsert(insert, sections, b.text);\n }\n open = (a.ins > len || b.ins >= 0 && b.len > len) && (open || sections.length > sectionLen);\n a.forward2(len);\n b.forward(len);\n }\n }\n}\nclass SectionIter {\n constructor(set) {\n this.set = set;\n this.i = 0;\n this.next();\n }\n next() {\n let { sections } = this.set;\n if (this.i < sections.length) {\n this.len = sections[this.i++];\n this.ins = sections[this.i++];\n }\n else {\n this.len = 0;\n this.ins = -2;\n }\n this.off = 0;\n }\n get done() { return this.ins == -2; }\n get len2() { return this.ins < 0 ? this.len : this.ins; }\n get text() {\n let { inserted } = this.set, index = (this.i - 2) >> 1;\n return index >= inserted.length ? Text.empty : inserted[index];\n }\n textBit(len) {\n let { inserted } = this.set, index = (this.i - 2) >> 1;\n return index >= inserted.length && !len ? Text.empty\n : inserted[index].slice(this.off, len == null ? undefined : this.off + len);\n }\n forward(len) {\n if (len == this.len)\n this.next();\n else {\n this.len -= len;\n this.off += len;\n }\n }\n forward2(len) {\n if (this.ins == -1)\n this.forward(len);\n else if (len == this.ins)\n this.next();\n else {\n this.ins -= len;\n this.off += len;\n }\n }\n}\n\n/**\nA single selection range. When\n[`allowMultipleSelections`](https://codemirror.net/6/docs/ref/#state.EditorState^allowMultipleSelections)\nis enabled, a [selection](https://codemirror.net/6/docs/ref/#state.EditorSelection) may hold\nmultiple ranges. By default, selections hold exactly one range.\n*/\nclass SelectionRange {\n constructor(\n /**\n The lower boundary of the range.\n */\n from, \n /**\n The upper boundary of the range.\n */\n to, flags) {\n this.from = from;\n this.to = to;\n this.flags = flags;\n }\n /**\n The anchor of the range—the side that doesn't move when you\n extend it.\n */\n get anchor() { return this.flags & 32 /* RangeFlag.Inverted */ ? this.to : this.from; }\n /**\n The head of the range, which is moved when the range is\n [extended](https://codemirror.net/6/docs/ref/#state.SelectionRange.extend).\n */\n get head() { return this.flags & 32 /* RangeFlag.Inverted */ ? this.from : this.to; }\n /**\n True when `anchor` and `head` are at the same position.\n */\n get empty() { return this.from == this.to; }\n /**\n If this is a cursor that is explicitly associated with the\n character on one of its sides, this returns the side. -1 means\n the character before its position, 1 the character after, and 0\n means no association.\n */\n get assoc() { return this.flags & 8 /* RangeFlag.AssocBefore */ ? -1 : this.flags & 16 /* RangeFlag.AssocAfter */ ? 1 : 0; }\n /**\n The bidirectional text level associated with this cursor, if\n any.\n */\n get bidiLevel() {\n let level = this.flags & 7 /* RangeFlag.BidiLevelMask */;\n return level == 7 ? null : level;\n }\n /**\n The goal column (stored vertical offset) associated with a\n cursor. This is used to preserve the vertical position when\n [moving](https://codemirror.net/6/docs/ref/#view.EditorView.moveVertically) across\n lines of different length.\n */\n get goalColumn() {\n let value = this.flags >> 6 /* RangeFlag.GoalColumnOffset */;\n return value == 16777215 /* RangeFlag.NoGoalColumn */ ? undefined : value;\n }\n /**\n Map this range through a change, producing a valid range in the\n updated document.\n */\n map(change, assoc = -1) {\n let from, to;\n if (this.empty) {\n from = to = change.mapPos(this.from, assoc);\n }\n else {\n from = change.mapPos(this.from, 1);\n to = change.mapPos(this.to, -1);\n }\n return from == this.from && to == this.to ? this : new SelectionRange(from, to, this.flags);\n }\n /**\n Extend this range to cover at least `from` to `to`.\n */\n extend(from, to = from) {\n if (from <= this.anchor && to >= this.anchor)\n return EditorSelection.range(from, to);\n let head = Math.abs(from - this.anchor) > Math.abs(to - this.anchor) ? from : to;\n return EditorSelection.range(this.anchor, head);\n }\n /**\n Compare this range to another range.\n */\n eq(other, includeAssoc = false) {\n return this.anchor == other.anchor && this.head == other.head &&\n (!includeAssoc || !this.empty || this.assoc == other.assoc);\n }\n /**\n Return a JSON-serializable object representing the range.\n */\n toJSON() { return { anchor: this.anchor, head: this.head }; }\n /**\n Convert a JSON representation of a range to a `SelectionRange`\n instance.\n */\n static fromJSON(json) {\n if (!json || typeof json.anchor != \"number\" || typeof json.head != \"number\")\n throw new RangeError(\"Invalid JSON representation for SelectionRange\");\n return EditorSelection.range(json.anchor, json.head);\n }\n /**\n @internal\n */\n static create(from, to, flags) {\n return new SelectionRange(from, to, flags);\n }\n}\n/**\nAn editor selection holds one or more selection ranges.\n*/\nclass EditorSelection {\n constructor(\n /**\n The ranges in the selection, sorted by position. Ranges cannot\n overlap (but they may touch, if they aren't empty).\n */\n ranges, \n /**\n The index of the _main_ range in the selection (which is\n usually the range that was added last).\n */\n mainIndex) {\n this.ranges = ranges;\n this.mainIndex = mainIndex;\n }\n /**\n Map a selection through a change. Used to adjust the selection\n position for changes.\n */\n map(change, assoc = -1) {\n if (change.empty)\n return this;\n return EditorSelection.create(this.ranges.map(r => r.map(change, assoc)), this.mainIndex);\n }\n /**\n Compare this selection to another selection. By default, ranges\n are compared only by position. When `includeAssoc` is true,\n cursor ranges must also have the same\n [`assoc`](https://codemirror.net/6/docs/ref/#state.SelectionRange.assoc) value.\n */\n eq(other, includeAssoc = false) {\n if (this.ranges.length != other.ranges.length ||\n this.mainIndex != other.mainIndex)\n return false;\n for (let i = 0; i < this.ranges.length; i++)\n if (!this.ranges[i].eq(other.ranges[i], includeAssoc))\n return false;\n return true;\n }\n /**\n Get the primary selection range. Usually, you should make sure\n your code applies to _all_ ranges, by using methods like\n [`changeByRange`](https://codemirror.net/6/docs/ref/#state.EditorState.changeByRange).\n */\n get main() { return this.ranges[this.mainIndex]; }\n /**\n Make sure the selection only has one range. Returns a selection\n holding only the main range from this selection.\n */\n asSingle() {\n return this.ranges.length == 1 ? this : new EditorSelection([this.main], 0);\n }\n /**\n Extend this selection with an extra range.\n */\n addRange(range, main = true) {\n return EditorSelection.create([range].concat(this.ranges), main ? 0 : this.mainIndex + 1);\n }\n /**\n Replace a given range with another range, and then normalize the\n selection to merge and sort ranges if necessary.\n */\n replaceRange(range, which = this.mainIndex) {\n let ranges = this.ranges.slice();\n ranges[which] = range;\n return EditorSelection.create(ranges, this.mainIndex);\n }\n /**\n Convert this selection to an object that can be serialized to\n JSON.\n */\n toJSON() {\n return { ranges: this.ranges.map(r => r.toJSON()), main: this.mainIndex };\n }\n /**\n Create a selection from a JSON representation.\n */\n static fromJSON(json) {\n if (!json || !Array.isArray(json.ranges) || typeof json.main != \"number\" || json.main >= json.ranges.length)\n throw new RangeError(\"Invalid JSON representation for EditorSelection\");\n return new EditorSelection(json.ranges.map((r) => SelectionRange.fromJSON(r)), json.main);\n }\n /**\n Create a selection holding a single range.\n */\n static single(anchor, head = anchor) {\n return new EditorSelection([EditorSelection.range(anchor, head)], 0);\n }\n /**\n Sort and merge the given set of ranges, creating a valid\n selection.\n */\n static create(ranges, mainIndex = 0) {\n if (ranges.length == 0)\n throw new RangeError(\"A selection needs at least one range\");\n for (let pos = 0, i = 0; i < ranges.length; i++) {\n let range = ranges[i];\n if (range.empty ? range.from <= pos : range.from < pos)\n return EditorSelection.normalized(ranges.slice(), mainIndex);\n pos = range.to;\n }\n return new EditorSelection(ranges, mainIndex);\n }\n /**\n Create a cursor selection range at the given position. You can\n safely ignore the optional arguments in most situations.\n */\n static cursor(pos, assoc = 0, bidiLevel, goalColumn) {\n return SelectionRange.create(pos, pos, (assoc == 0 ? 0 : assoc < 0 ? 8 /* RangeFlag.AssocBefore */ : 16 /* RangeFlag.AssocAfter */) |\n (bidiLevel == null ? 7 : Math.min(6, bidiLevel)) |\n ((goalColumn !== null && goalColumn !== void 0 ? goalColumn : 16777215 /* RangeFlag.NoGoalColumn */) << 6 /* RangeFlag.GoalColumnOffset */));\n }\n /**\n Create a selection range.\n */\n static range(anchor, head, goalColumn, bidiLevel) {\n let flags = ((goalColumn !== null && goalColumn !== void 0 ? goalColumn : 16777215 /* RangeFlag.NoGoalColumn */) << 6 /* RangeFlag.GoalColumnOffset */) |\n (bidiLevel == null ? 7 : Math.min(6, bidiLevel));\n return head < anchor ? SelectionRange.create(head, anchor, 32 /* RangeFlag.Inverted */ | 16 /* RangeFlag.AssocAfter */ | flags)\n : SelectionRange.create(anchor, head, (head > anchor ? 8 /* RangeFlag.AssocBefore */ : 0) | flags);\n }\n /**\n @internal\n */\n static normalized(ranges, mainIndex = 0) {\n let main = ranges[mainIndex];\n ranges.sort((a, b) => a.from - b.from);\n mainIndex = ranges.indexOf(main);\n for (let i = 1; i < ranges.length; i++) {\n let range = ranges[i], prev = ranges[i - 1];\n if (range.empty ? range.from <= prev.to : range.from < prev.to) {\n let from = prev.from, to = Math.max(range.to, prev.to);\n if (i <= mainIndex)\n mainIndex--;\n ranges.splice(--i, 2, range.anchor > range.head ? EditorSelection.range(to, from) : EditorSelection.range(from, to));\n }\n }\n return new EditorSelection(ranges, mainIndex);\n }\n}\nfunction checkSelection(selection, docLength) {\n for (let range of selection.ranges)\n if (range.to > docLength)\n throw new RangeError(\"Selection points outside of document\");\n}\n\nlet nextID = 0;\n/**\nA facet is a labeled value that is associated with an editor\nstate. It takes inputs from any number of extensions, and combines\nthose into a single output value.\n\nExamples of uses of facets are the [tab\nsize](https://codemirror.net/6/docs/ref/#state.EditorState^tabSize), [editor\nattributes](https://codemirror.net/6/docs/ref/#view.EditorView^editorAttributes), and [update\nlisteners](https://codemirror.net/6/docs/ref/#view.EditorView^updateListener).\n\nNote that `Facet` instances can be used anywhere where\n[`FacetReader`](https://codemirror.net/6/docs/ref/#state.FacetReader) is expected.\n*/\nclass Facet {\n constructor(\n /**\n @internal\n */\n combine, \n /**\n @internal\n */\n compareInput, \n /**\n @internal\n */\n compare, isStatic, enables) {\n this.combine = combine;\n this.compareInput = compareInput;\n this.compare = compare;\n this.isStatic = isStatic;\n /**\n @internal\n */\n this.id = nextID++;\n this.default = combine([]);\n this.extensions = typeof enables == \"function\" ? enables(this) : enables;\n }\n /**\n Returns a facet reader for this facet, which can be used to\n [read](https://codemirror.net/6/docs/ref/#state.EditorState.facet) it but not to define values for it.\n */\n get reader() { return this; }\n /**\n Define a new facet.\n */\n static define(config = {}) {\n return new Facet(config.combine || ((a) => a), config.compareInput || ((a, b) => a === b), config.compare || (!config.combine ? sameArray : (a, b) => a === b), !!config.static, config.enables);\n }\n /**\n Returns an extension that adds the given value to this facet.\n */\n of(value) {\n return new FacetProvider([], this, 0 /* Provider.Static */, value);\n }\n /**\n Create an extension that computes a value for the facet from a\n state. You must take care to declare the parts of the state that\n this value depends on, since your function is only called again\n for a new state when one of those parts changed.\n \n In cases where your value depends only on a single field, you'll\n want to use the [`from`](https://codemirror.net/6/docs/ref/#state.Facet.from) method instead.\n */\n compute(deps, get) {\n if (this.isStatic)\n throw new Error(\"Can't compute a static facet\");\n return new FacetProvider(deps, this, 1 /* Provider.Single */, get);\n }\n /**\n Create an extension that computes zero or more values for this\n facet from a state.\n */\n computeN(deps, get) {\n if (this.isStatic)\n throw new Error(\"Can't compute a static facet\");\n return new FacetProvider(deps, this, 2 /* Provider.Multi */, get);\n }\n from(field, get) {\n if (!get)\n get = x => x;\n return this.compute([field], state => get(state.field(field)));\n }\n}\nfunction sameArray(a, b) {\n return a == b || a.length == b.length && a.every((e, i) => e === b[i]);\n}\nclass FacetProvider {\n constructor(dependencies, facet, type, value) {\n this.dependencies = dependencies;\n this.facet = facet;\n this.type = type;\n this.value = value;\n this.id = nextID++;\n }\n dynamicSlot(addresses) {\n var _a;\n let getter = this.value;\n let compare = this.facet.compareInput;\n let id = this.id, idx = addresses[id] >> 1, multi = this.type == 2 /* Provider.Multi */;\n let depDoc = false, depSel = false, depAddrs = [];\n for (let dep of this.dependencies) {\n if (dep == \"doc\")\n depDoc = true;\n else if (dep == \"selection\")\n depSel = true;\n else if ((((_a = addresses[dep.id]) !== null && _a !== void 0 ? _a : 1) & 1) == 0)\n depAddrs.push(addresses[dep.id]);\n }\n return {\n create(state) {\n state.values[idx] = getter(state);\n return 1 /* SlotStatus.Changed */;\n },\n update(state, tr) {\n if ((depDoc && tr.docChanged) || (depSel && (tr.docChanged || tr.selection)) || ensureAll(state, depAddrs)) {\n let newVal = getter(state);\n if (multi ? !compareArray(newVal, state.values[idx], compare) : !compare(newVal, state.values[idx])) {\n state.values[idx] = newVal;\n return 1 /* SlotStatus.Changed */;\n }\n }\n return 0;\n },\n reconfigure: (state, oldState) => {\n let newVal, oldAddr = oldState.config.address[id];\n if (oldAddr != null) {\n let oldVal = getAddr(oldState, oldAddr);\n if (this.dependencies.every(dep => {\n return dep instanceof Facet ? oldState.facet(dep) === state.facet(dep) :\n dep instanceof StateField ? oldState.field(dep, false) == state.field(dep, false) : true;\n }) || (multi ? compareArray(newVal = getter(state), oldVal, compare) : compare(newVal = getter(state), oldVal))) {\n state.values[idx] = oldVal;\n return 0;\n }\n }\n else {\n newVal = getter(state);\n }\n state.values[idx] = newVal;\n return 1 /* SlotStatus.Changed */;\n }\n };\n }\n}\nfunction compareArray(a, b, compare) {\n if (a.length != b.length)\n return false;\n for (let i = 0; i < a.length; i++)\n if (!compare(a[i], b[i]))\n return false;\n return true;\n}\nfunction ensureAll(state, addrs) {\n let changed = false;\n for (let addr of addrs)\n if (ensureAddr(state, addr) & 1 /* SlotStatus.Changed */)\n changed = true;\n return changed;\n}\nfunction dynamicFacetSlot(addresses, facet, providers) {\n let providerAddrs = providers.map(p => addresses[p.id]);\n let providerTypes = providers.map(p => p.type);\n let dynamic = providerAddrs.filter(p => !(p & 1));\n let idx = addresses[facet.id] >> 1;\n function get(state) {\n let values = [];\n for (let i = 0; i < providerAddrs.length; i++) {\n let value = getAddr(state, providerAddrs[i]);\n if (providerTypes[i] == 2 /* Provider.Multi */)\n for (let val of value)\n values.push(val);\n else\n values.push(value);\n }\n return facet.combine(values);\n }\n return {\n create(state) {\n for (let addr of providerAddrs)\n ensureAddr(state, addr);\n state.values[idx] = get(state);\n return 1 /* SlotStatus.Changed */;\n },\n update(state, tr) {\n if (!ensureAll(state, dynamic))\n return 0;\n let value = get(state);\n if (facet.compare(value, state.values[idx]))\n return 0;\n state.values[idx] = value;\n return 1 /* SlotStatus.Changed */;\n },\n reconfigure(state, oldState) {\n let depChanged = ensureAll(state, providerAddrs);\n let oldProviders = oldState.config.facets[facet.id], oldValue = oldState.facet(facet);\n if (oldProviders && !depChanged && sameArray(providers, oldProviders)) {\n state.values[idx] = oldValue;\n return 0;\n }\n let value = get(state);\n if (facet.compare(value, oldValue)) {\n state.values[idx] = oldValue;\n return 0;\n }\n state.values[idx] = value;\n return 1 /* SlotStatus.Changed */;\n }\n };\n}\nconst initField = /*@__PURE__*/Facet.define({ static: true });\n/**\nFields can store additional information in an editor state, and\nkeep it in sync with the rest of the state.\n*/\nclass StateField {\n constructor(\n /**\n @internal\n */\n id, createF, updateF, compareF, \n /**\n @internal\n */\n spec) {\n this.id = id;\n this.createF = createF;\n this.updateF = updateF;\n this.compareF = compareF;\n this.spec = spec;\n /**\n @internal\n */\n this.provides = undefined;\n }\n /**\n Define a state field.\n */\n static define(config) {\n let field = new StateField(nextID++, config.create, config.update, config.compare || ((a, b) => a === b), config);\n if (config.provide)\n field.provides = config.provide(field);\n return field;\n }\n create(state) {\n let init = state.facet(initField).find(i => i.field == this);\n return ((init === null || init === void 0 ? void 0 : init.create) || this.createF)(state);\n }\n /**\n @internal\n */\n slot(addresses) {\n let idx = addresses[this.id] >> 1;\n return {\n create: (state) => {\n state.values[idx] = this.create(state);\n return 1 /* SlotStatus.Changed */;\n },\n update: (state, tr) => {\n let oldVal = state.values[idx];\n let value = this.updateF(oldVal, tr);\n if (this.compareF(oldVal, value))\n return 0;\n state.values[idx] = value;\n return 1 /* SlotStatus.Changed */;\n },\n reconfigure: (state, oldState) => {\n if (oldState.config.address[this.id] != null) {\n state.values[idx] = oldState.field(this);\n return 0;\n }\n state.values[idx] = this.create(state);\n return 1 /* SlotStatus.Changed */;\n }\n };\n }\n /**\n Returns an extension that enables this field and overrides the\n way it is initialized. Can be useful when you need to provide a\n non-default starting value for the field.\n */\n init(create) {\n return [this, initField.of({ field: this, create })];\n }\n /**\n State field instances can be used as\n [`Extension`](https://codemirror.net/6/docs/ref/#state.Extension) values to enable the field in a\n given state.\n */\n get extension() { return this; }\n}\nconst Prec_ = { lowest: 4, low: 3, default: 2, high: 1, highest: 0 };\nfunction prec(value) {\n return (ext) => new PrecExtension(ext, value);\n}\n/**\nBy default extensions are registered in the order they are found\nin the flattened form of nested array that was provided.\nIndividual extension values can be assigned a precedence to\noverride this. Extensions that do not have a precedence set get\nthe precedence of the nearest parent with a precedence, or\n[`default`](https://codemirror.net/6/docs/ref/#state.Prec.default) if there is no such parent. The\nfinal ordering of extensions is determined by first sorting by\nprecedence and then by order within each precedence.\n*/\nconst Prec = {\n /**\n The highest precedence level, for extensions that should end up\n near the start of the precedence ordering.\n */\n highest: /*@__PURE__*/prec(Prec_.highest),\n /**\n A higher-than-default precedence, for extensions that should\n come before those with default precedence.\n */\n high: /*@__PURE__*/prec(Prec_.high),\n /**\n The default precedence, which is also used for extensions\n without an explicit precedence.\n */\n default: /*@__PURE__*/prec(Prec_.default),\n /**\n A lower-than-default precedence.\n */\n low: /*@__PURE__*/prec(Prec_.low),\n /**\n The lowest precedence level. Meant for things that should end up\n near the end of the extension order.\n */\n lowest: /*@__PURE__*/prec(Prec_.lowest)\n};\nclass PrecExtension {\n constructor(inner, prec) {\n this.inner = inner;\n this.prec = prec;\n }\n}\n/**\nExtension compartments can be used to make a configuration\ndynamic. By [wrapping](https://codemirror.net/6/docs/ref/#state.Compartment.of) part of your\nconfiguration in a compartment, you can later\n[replace](https://codemirror.net/6/docs/ref/#state.Compartment.reconfigure) that part through a\ntransaction.\n*/\nclass Compartment {\n /**\n Create an instance of this compartment to add to your [state\n configuration](https://codemirror.net/6/docs/ref/#state.EditorStateConfig.extensions).\n */\n of(ext) { return new CompartmentInstance(this, ext); }\n /**\n Create an [effect](https://codemirror.net/6/docs/ref/#state.TransactionSpec.effects) that\n reconfigures this compartment.\n */\n reconfigure(content) {\n return Compartment.reconfigure.of({ compartment: this, extension: content });\n }\n /**\n Get the current content of the compartment in the state, or\n `undefined` if it isn't present.\n */\n get(state) {\n return state.config.compartments.get(this);\n }\n}\nclass CompartmentInstance {\n constructor(compartment, inner) {\n this.compartment = compartment;\n this.inner = inner;\n }\n}\nclass Configuration {\n constructor(base, compartments, dynamicSlots, address, staticValues, facets) {\n this.base = base;\n this.compartments = compartments;\n this.dynamicSlots = dynamicSlots;\n this.address = address;\n this.staticValues = staticValues;\n this.facets = facets;\n this.statusTemplate = [];\n while (this.statusTemplate.length < dynamicSlots.length)\n this.statusTemplate.push(0 /* SlotStatus.Unresolved */);\n }\n staticFacet(facet) {\n let addr = this.address[facet.id];\n return addr == null ? facet.default : this.staticValues[addr >> 1];\n }\n static resolve(base, compartments, oldState) {\n let fields = [];\n let facets = Object.create(null);\n let newCompartments = new Map();\n for (let ext of flatten(base, compartments, newCompartments)) {\n if (ext instanceof StateField)\n fields.push(ext);\n else\n (facets[ext.facet.id] || (facets[ext.facet.id] = [])).push(ext);\n }\n let address = Object.create(null);\n let staticValues = [];\n let dynamicSlots = [];\n for (let field of fields) {\n address[field.id] = dynamicSlots.length << 1;\n dynamicSlots.push(a => field.slot(a));\n }\n let oldFacets = oldState === null || oldState === void 0 ? void 0 : oldState.config.facets;\n for (let id in facets) {\n let providers = facets[id], facet = providers[0].facet;\n let oldProviders = oldFacets && oldFacets[id] || [];\n if (providers.every(p => p.type == 0 /* Provider.Static */)) {\n address[facet.id] = (staticValues.length << 1) | 1;\n if (sameArray(oldProviders, providers)) {\n staticValues.push(oldState.facet(facet));\n }\n else {\n let value = facet.combine(providers.map(p => p.value));\n staticValues.push(oldState && facet.compare(value, oldState.facet(facet)) ? oldState.facet(facet) : value);\n }\n }\n else {\n for (let p of providers) {\n if (p.type == 0 /* Provider.Static */) {\n address[p.id] = (staticValues.length << 1) | 1;\n staticValues.push(p.value);\n }\n else {\n address[p.id] = dynamicSlots.length << 1;\n dynamicSlots.push(a => p.dynamicSlot(a));\n }\n }\n address[facet.id] = dynamicSlots.length << 1;\n dynamicSlots.push(a => dynamicFacetSlot(a, facet, providers));\n }\n }\n let dynamic = dynamicSlots.map(f => f(address));\n return new Configuration(base, newCompartments, dynamic, address, staticValues, facets);\n }\n}\nfunction flatten(extension, compartments, newCompartments) {\n let result = [[], [], [], [], []];\n let seen = new Map();\n function inner(ext, prec) {\n let known = seen.get(ext);\n if (known != null) {\n if (known <= prec)\n return;\n let found = result[known].indexOf(ext);\n if (found > -1)\n result[known].splice(found, 1);\n if (ext instanceof CompartmentInstance)\n newCompartments.delete(ext.compartment);\n }\n seen.set(ext, prec);\n if (Array.isArray(ext)) {\n for (let e of ext)\n inner(e, prec);\n }\n else if (ext instanceof CompartmentInstance) {\n if (newCompartments.has(ext.compartment))\n throw new RangeError(`Duplicate use of compartment in extensions`);\n let content = compartments.get(ext.compartment) || ext.inner;\n newCompartments.set(ext.compartment, content);\n inner(content, prec);\n }\n else if (ext instanceof PrecExtension) {\n inner(ext.inner, ext.prec);\n }\n else if (ext instanceof StateField) {\n result[prec].push(ext);\n if (ext.provides)\n inner(ext.provides, prec);\n }\n else if (ext instanceof FacetProvider) {\n result[prec].push(ext);\n if (ext.facet.extensions)\n inner(ext.facet.extensions, Prec_.default);\n }\n else {\n let content = ext.extension;\n if (!content)\n throw new Error(`Unrecognized extension value in extension set (${ext}). This sometimes happens because multiple instances of @codemirror/state are loaded, breaking instanceof checks.`);\n inner(content, prec);\n }\n }\n inner(extension, Prec_.default);\n return result.reduce((a, b) => a.concat(b));\n}\nfunction ensureAddr(state, addr) {\n if (addr & 1)\n return 2 /* SlotStatus.Computed */;\n let idx = addr >> 1;\n let status = state.status[idx];\n if (status == 4 /* SlotStatus.Computing */)\n throw new Error(\"Cyclic dependency between fields and/or facets\");\n if (status & 2 /* SlotStatus.Computed */)\n return status;\n state.status[idx] = 4 /* SlotStatus.Computing */;\n let changed = state.computeSlot(state, state.config.dynamicSlots[idx]);\n return state.status[idx] = 2 /* SlotStatus.Computed */ | changed;\n}\nfunction getAddr(state, addr) {\n return addr & 1 ? state.config.staticValues[addr >> 1] : state.values[addr >> 1];\n}\n\nconst languageData = /*@__PURE__*/Facet.define();\nconst allowMultipleSelections = /*@__PURE__*/Facet.define({\n combine: values => values.some(v => v),\n static: true\n});\nconst lineSeparator = /*@__PURE__*/Facet.define({\n combine: values => values.length ? values[0] : undefined,\n static: true\n});\nconst changeFilter = /*@__PURE__*/Facet.define();\nconst transactionFilter = /*@__PURE__*/Facet.define();\nconst transactionExtender = /*@__PURE__*/Facet.define();\nconst readOnly = /*@__PURE__*/Facet.define({\n combine: values => values.length ? values[0] : false\n});\n\n/**\nAnnotations are tagged values that are used to add metadata to\ntransactions in an extensible way. They should be used to model\nthings that effect the entire transaction (such as its [time\nstamp](https://codemirror.net/6/docs/ref/#state.Transaction^time) or information about its\n[origin](https://codemirror.net/6/docs/ref/#state.Transaction^userEvent)). For effects that happen\n_alongside_ the other changes made by the transaction, [state\neffects](https://codemirror.net/6/docs/ref/#state.StateEffect) are more appropriate.\n*/\nclass Annotation {\n /**\n @internal\n */\n constructor(\n /**\n The annotation type.\n */\n type, \n /**\n The value of this annotation.\n */\n value) {\n this.type = type;\n this.value = value;\n }\n /**\n Define a new type of annotation.\n */\n static define() { return new AnnotationType(); }\n}\n/**\nMarker that identifies a type of [annotation](https://codemirror.net/6/docs/ref/#state.Annotation).\n*/\nclass AnnotationType {\n /**\n Create an instance of this annotation.\n */\n of(value) { return new Annotation(this, value); }\n}\n/**\nRepresentation of a type of state effect. Defined with\n[`StateEffect.define`](https://codemirror.net/6/docs/ref/#state.StateEffect^define).\n*/\nclass StateEffectType {\n /**\n @internal\n */\n constructor(\n // The `any` types in these function types are there to work\n // around TypeScript issue #37631, where the type guard on\n // `StateEffect.is` mysteriously stops working when these properly\n // have type `Value`.\n /**\n @internal\n */\n map) {\n this.map = map;\n }\n /**\n Create a [state effect](https://codemirror.net/6/docs/ref/#state.StateEffect) instance of this\n type.\n */\n of(value) { return new StateEffect(this, value); }\n}\n/**\nState effects can be used to represent additional effects\nassociated with a [transaction](https://codemirror.net/6/docs/ref/#state.Transaction.effects). They\nare often useful to model changes to custom [state\nfields](https://codemirror.net/6/docs/ref/#state.StateField), when those changes aren't implicit in\ndocument or selection changes.\n*/\nclass StateEffect {\n /**\n @internal\n */\n constructor(\n /**\n @internal\n */\n type, \n /**\n The value of this effect.\n */\n value) {\n this.type = type;\n this.value = value;\n }\n /**\n Map this effect through a position mapping. Will return\n `undefined` when that ends up deleting the effect.\n */\n map(mapping) {\n let mapped = this.type.map(this.value, mapping);\n return mapped === undefined ? undefined : mapped == this.value ? this : new StateEffect(this.type, mapped);\n }\n /**\n Tells you whether this effect object is of a given\n [type](https://codemirror.net/6/docs/ref/#state.StateEffectType).\n */\n is(type) { return this.type == type; }\n /**\n Define a new effect type. The type parameter indicates the type\n of values that his effect holds. It should be a type that\n doesn't include `undefined`, since that is used in\n [mapping](https://codemirror.net/6/docs/ref/#state.StateEffect.map) to indicate that an effect is\n removed.\n */\n static define(spec = {}) {\n return new StateEffectType(spec.map || (v => v));\n }\n /**\n Map an array of effects through a change set.\n */\n static mapEffects(effects, mapping) {\n if (!effects.length)\n return effects;\n let result = [];\n for (let effect of effects) {\n let mapped = effect.map(mapping);\n if (mapped)\n result.push(mapped);\n }\n return result;\n }\n}\n/**\nThis effect can be used to reconfigure the root extensions of\nthe editor. Doing this will discard any extensions\n[appended](https://codemirror.net/6/docs/ref/#state.StateEffect^appendConfig), but does not reset\nthe content of [reconfigured](https://codemirror.net/6/docs/ref/#state.Compartment.reconfigure)\ncompartments.\n*/\nStateEffect.reconfigure = /*@__PURE__*/StateEffect.define();\n/**\nAppend extensions to the top-level configuration of the editor.\n*/\nStateEffect.appendConfig = /*@__PURE__*/StateEffect.define();\n/**\nChanges to the editor state are grouped into transactions.\nTypically, a user action creates a single transaction, which may\ncontain any number of document changes, may change the selection,\nor have other effects. Create a transaction by calling\n[`EditorState.update`](https://codemirror.net/6/docs/ref/#state.EditorState.update), or immediately\ndispatch one by calling\n[`EditorView.dispatch`](https://codemirror.net/6/docs/ref/#view.EditorView.dispatch).\n*/\nclass Transaction {\n constructor(\n /**\n The state from which the transaction starts.\n */\n startState, \n /**\n The document changes made by this transaction.\n */\n changes, \n /**\n The selection set by this transaction, or undefined if it\n doesn't explicitly set a selection.\n */\n selection, \n /**\n The effects added to the transaction.\n */\n effects, \n /**\n @internal\n */\n annotations, \n /**\n Whether the selection should be scrolled into view after this\n transaction is dispatched.\n */\n scrollIntoView) {\n this.startState = startState;\n this.changes = changes;\n this.selection = selection;\n this.effects = effects;\n this.annotations = annotations;\n this.scrollIntoView = scrollIntoView;\n /**\n @internal\n */\n this._doc = null;\n /**\n @internal\n */\n this._state = null;\n if (selection)\n checkSelection(selection, changes.newLength);\n if (!annotations.some((a) => a.type == Transaction.time))\n this.annotations = annotations.concat(Transaction.time.of(Date.now()));\n }\n /**\n @internal\n */\n static create(startState, changes, selection, effects, annotations, scrollIntoView) {\n return new Transaction(startState, changes, selection, effects, annotations, scrollIntoView);\n }\n /**\n The new document produced by the transaction. Contrary to\n [`.state`](https://codemirror.net/6/docs/ref/#state.Transaction.state)`.doc`, accessing this won't\n force the entire new state to be computed right away, so it is\n recommended that [transaction\n filters](https://codemirror.net/6/docs/ref/#state.EditorState^transactionFilter) use this getter\n when they need to look at the new document.\n */\n get newDoc() {\n return this._doc || (this._doc = this.changes.apply(this.startState.doc));\n }\n /**\n The new selection produced by the transaction. If\n [`this.selection`](https://codemirror.net/6/docs/ref/#state.Transaction.selection) is undefined,\n this will [map](https://codemirror.net/6/docs/ref/#state.EditorSelection.map) the start state's\n current selection through the changes made by the transaction.\n */\n get newSelection() {\n return this.selection || this.startState.selection.map(this.changes);\n }\n /**\n The new state created by the transaction. Computed on demand\n (but retained for subsequent access), so it is recommended not to\n access it in [transaction\n filters](https://codemirror.net/6/docs/ref/#state.EditorState^transactionFilter) when possible.\n */\n get state() {\n if (!this._state)\n this.startState.applyTransaction(this);\n return this._state;\n }\n /**\n Get the value of the given annotation type, if any.\n */\n annotation(type) {\n for (let ann of this.annotations)\n if (ann.type == type)\n return ann.value;\n return undefined;\n }\n /**\n Indicates whether the transaction changed the document.\n */\n get docChanged() { return !this.changes.empty; }\n /**\n Indicates whether this transaction reconfigures the state\n (through a [configuration compartment](https://codemirror.net/6/docs/ref/#state.Compartment) or\n with a top-level configuration\n [effect](https://codemirror.net/6/docs/ref/#state.StateEffect^reconfigure).\n */\n get reconfigured() { return this.startState.config != this.state.config; }\n /**\n Returns true if the transaction has a [user\n event](https://codemirror.net/6/docs/ref/#state.Transaction^userEvent) annotation that is equal to\n or more specific than `event`. For example, if the transaction\n has `\"select.pointer\"` as user event, `\"select\"` and\n `\"select.pointer\"` will match it.\n */\n isUserEvent(event) {\n let e = this.annotation(Transaction.userEvent);\n return !!(e && (e == event || e.length > event.length && e.slice(0, event.length) == event && e[event.length] == \".\"));\n }\n}\n/**\nAnnotation used to store transaction timestamps. Automatically\nadded to every transaction, holding `Date.now()`.\n*/\nTransaction.time = /*@__PURE__*/Annotation.define();\n/**\nAnnotation used to associate a transaction with a user interface\nevent. Holds a string identifying the event, using a\ndot-separated format to support attaching more specific\ninformation. The events used by the core libraries are:\n\n - `\"input\"` when content is entered\n - `\"input.type\"` for typed input\n - `\"input.type.compose\"` for composition\n - `\"input.paste\"` for pasted input\n - `\"input.drop\"` when adding content with drag-and-drop\n - `\"input.complete\"` when autocompleting\n - `\"delete\"` when the user deletes content\n - `\"delete.selection\"` when deleting the selection\n - `\"delete.forward\"` when deleting forward from the selection\n - `\"delete.backward\"` when deleting backward from the selection\n - `\"delete.cut\"` when cutting to the clipboard\n - `\"move\"` when content is moved\n - `\"move.drop\"` when content is moved within the editor through drag-and-drop\n - `\"select\"` when explicitly changing the selection\n - `\"select.pointer\"` when selecting with a mouse or other pointing device\n - `\"undo\"` and `\"redo\"` for history actions\n\nUse [`isUserEvent`](https://codemirror.net/6/docs/ref/#state.Transaction.isUserEvent) to check\nwhether the annotation matches a given event.\n*/\nTransaction.userEvent = /*@__PURE__*/Annotation.define();\n/**\nAnnotation indicating whether a transaction should be added to\nthe undo history or not.\n*/\nTransaction.addToHistory = /*@__PURE__*/Annotation.define();\n/**\nAnnotation indicating (when present and true) that a transaction\nrepresents a change made by some other actor, not the user. This\nis used, for example, to tag other people's changes in\ncollaborative editing.\n*/\nTransaction.remote = /*@__PURE__*/Annotation.define();\nfunction joinRanges(a, b) {\n let result = [];\n for (let iA = 0, iB = 0;;) {\n let from, to;\n if (iA < a.length && (iB == b.length || b[iB] >= a[iA])) {\n from = a[iA++];\n to = a[iA++];\n }\n else if (iB < b.length) {\n from = b[iB++];\n to = b[iB++];\n }\n else\n return result;\n if (!result.length || result[result.length - 1] < from)\n result.push(from, to);\n else if (result[result.length - 1] < to)\n result[result.length - 1] = to;\n }\n}\nfunction mergeTransaction(a, b, sequential) {\n var _a;\n let mapForA, mapForB, changes;\n if (sequential) {\n mapForA = b.changes;\n mapForB = ChangeSet.empty(b.changes.length);\n changes = a.changes.compose(b.changes);\n }\n else {\n mapForA = b.changes.map(a.changes);\n mapForB = a.changes.mapDesc(b.changes, true);\n changes = a.changes.compose(mapForA);\n }\n return {\n changes,\n selection: b.selection ? b.selection.map(mapForB) : (_a = a.selection) === null || _a === void 0 ? void 0 : _a.map(mapForA),\n effects: StateEffect.mapEffects(a.effects, mapForA).concat(StateEffect.mapEffects(b.effects, mapForB)),\n annotations: a.annotations.length ? a.annotations.concat(b.annotations) : b.annotations,\n scrollIntoView: a.scrollIntoView || b.scrollIntoView\n };\n}\nfunction resolveTransactionInner(state, spec, docSize) {\n let sel = spec.selection, annotations = asArray(spec.annotations);\n if (spec.userEvent)\n annotations = annotations.concat(Transaction.userEvent.of(spec.userEvent));\n return {\n changes: spec.changes instanceof ChangeSet ? spec.changes\n : ChangeSet.of(spec.changes || [], docSize, state.facet(lineSeparator)),\n selection: sel && (sel instanceof EditorSelection ? sel : EditorSelection.single(sel.anchor, sel.head)),\n effects: asArray(spec.effects),\n annotations,\n scrollIntoView: !!spec.scrollIntoView\n };\n}\nfunction resolveTransaction(state, specs, filter) {\n let s = resolveTransactionInner(state, specs.length ? specs[0] : {}, state.doc.length);\n if (specs.length && specs[0].filter === false)\n filter = false;\n for (let i = 1; i < specs.length; i++) {\n if (specs[i].filter === false)\n filter = false;\n let seq = !!specs[i].sequential;\n s = mergeTransaction(s, resolveTransactionInner(state, specs[i], seq ? s.changes.newLength : state.doc.length), seq);\n }\n let tr = Transaction.create(state, s.changes, s.selection, s.effects, s.annotations, s.scrollIntoView);\n return extendTransaction(filter ? filterTransaction(tr) : tr);\n}\n// Finish a transaction by applying filters if necessary.\nfunction filterTransaction(tr) {\n let state = tr.startState;\n // Change filters\n let result = true;\n for (let filter of state.facet(changeFilter)) {\n let value = filter(tr);\n if (value === false) {\n result = false;\n break;\n }\n if (Array.isArray(value))\n result = result === true ? value : joinRanges(result, value);\n }\n if (result !== true) {\n let changes, back;\n if (result === false) {\n back = tr.changes.invertedDesc;\n changes = ChangeSet.empty(state.doc.length);\n }\n else {\n let filtered = tr.changes.filter(result);\n changes = filtered.changes;\n back = filtered.filtered.mapDesc(filtered.changes).invertedDesc;\n }\n tr = Transaction.create(state, changes, tr.selection && tr.selection.map(back), StateEffect.mapEffects(tr.effects, back), tr.annotations, tr.scrollIntoView);\n }\n // Transaction filters\n let filters = state.facet(transactionFilter);\n for (let i = filters.length - 1; i >= 0; i--) {\n let filtered = filters[i](tr);\n if (filtered instanceof Transaction)\n tr = filtered;\n else if (Array.isArray(filtered) && filtered.length == 1 && filtered[0] instanceof Transaction)\n tr = filtered[0];\n else\n tr = resolveTransaction(state, asArray(filtered), false);\n }\n return tr;\n}\nfunction extendTransaction(tr) {\n let state = tr.startState, extenders = state.facet(transactionExtender), spec = tr;\n for (let i = extenders.length - 1; i >= 0; i--) {\n let extension = extenders[i](tr);\n if (extension && Object.keys(extension).length)\n spec = mergeTransaction(spec, resolveTransactionInner(state, extension, tr.changes.newLength), true);\n }\n return spec == tr ? tr : Transaction.create(state, tr.changes, tr.selection, spec.effects, spec.annotations, spec.scrollIntoView);\n}\nconst none = [];\nfunction asArray(value) {\n return value == null ? none : Array.isArray(value) ? value : [value];\n}\n\n/**\nThe categories produced by a [character\ncategorizer](https://codemirror.net/6/docs/ref/#state.EditorState.charCategorizer). These are used\ndo things like selecting by word.\n*/\nvar CharCategory = /*@__PURE__*/(function (CharCategory) {\n /**\n Word characters.\n */\n CharCategory[CharCategory[\"Word\"] = 0] = \"Word\";\n /**\n Whitespace.\n */\n CharCategory[CharCategory[\"Space\"] = 1] = \"Space\";\n /**\n Anything else.\n */\n CharCategory[CharCategory[\"Other\"] = 2] = \"Other\";\nreturn CharCategory})(CharCategory || (CharCategory = {}));\nconst nonASCIISingleCaseWordChar = /[\\u00df\\u0587\\u0590-\\u05f4\\u0600-\\u06ff\\u3040-\\u309f\\u30a0-\\u30ff\\u3400-\\u4db5\\u4e00-\\u9fcc\\uac00-\\ud7af]/;\nlet wordChar;\ntry {\n wordChar = /*@__PURE__*/new RegExp(\"[\\\\p{Alphabetic}\\\\p{Number}_]\", \"u\");\n}\ncatch (_) { }\nfunction hasWordChar(str) {\n if (wordChar)\n return wordChar.test(str);\n for (let i = 0; i < str.length; i++) {\n let ch = str[i];\n if (/\\w/.test(ch) || ch > \"\\x80\" && (ch.toUpperCase() != ch.toLowerCase() || nonASCIISingleCaseWordChar.test(ch)))\n return true;\n }\n return false;\n}\nfunction makeCategorizer(wordChars) {\n return (char) => {\n if (!/\\S/.test(char))\n return CharCategory.Space;\n if (hasWordChar(char))\n return CharCategory.Word;\n for (let i = 0; i < wordChars.length; i++)\n if (char.indexOf(wordChars[i]) > -1)\n return CharCategory.Word;\n return CharCategory.Other;\n };\n}\n\n/**\nThe editor state class is a persistent (immutable) data structure.\nTo update a state, you [create](https://codemirror.net/6/docs/ref/#state.EditorState.update) a\n[transaction](https://codemirror.net/6/docs/ref/#state.Transaction), which produces a _new_ state\ninstance, without modifying the original object.\n\nAs such, _never_ mutate properties of a state directly. That'll\njust break things.\n*/\nclass EditorState {\n constructor(\n /**\n @internal\n */\n config, \n /**\n The current document.\n */\n doc, \n /**\n The current selection.\n */\n selection, \n /**\n @internal\n */\n values, computeSlot, tr) {\n this.config = config;\n this.doc = doc;\n this.selection = selection;\n this.values = values;\n this.status = config.statusTemplate.slice();\n this.computeSlot = computeSlot;\n // Fill in the computed state immediately, so that further queries\n // for it made during the update return this state\n if (tr)\n tr._state = this;\n for (let i = 0; i < this.config.dynamicSlots.length; i++)\n ensureAddr(this, i << 1);\n this.computeSlot = null;\n }\n field(field, require = true) {\n let addr = this.config.address[field.id];\n if (addr == null) {\n if (require)\n throw new RangeError(\"Field is not present in this state\");\n return undefined;\n }\n ensureAddr(this, addr);\n return getAddr(this, addr);\n }\n /**\n Create a [transaction](https://codemirror.net/6/docs/ref/#state.Transaction) that updates this\n state. Any number of [transaction specs](https://codemirror.net/6/docs/ref/#state.TransactionSpec)\n can be passed. Unless\n [`sequential`](https://codemirror.net/6/docs/ref/#state.TransactionSpec.sequential) is set, the\n [changes](https://codemirror.net/6/docs/ref/#state.TransactionSpec.changes) (if any) of each spec\n are assumed to start in the _current_ document (not the document\n produced by previous specs), and its\n [selection](https://codemirror.net/6/docs/ref/#state.TransactionSpec.selection) and\n [effects](https://codemirror.net/6/docs/ref/#state.TransactionSpec.effects) are assumed to refer\n to the document created by its _own_ changes. The resulting\n transaction contains the combined effect of all the different\n specs. For [selection](https://codemirror.net/6/docs/ref/#state.TransactionSpec.selection), later\n specs take precedence over earlier ones.\n */\n update(...specs) {\n return resolveTransaction(this, specs, true);\n }\n /**\n @internal\n */\n applyTransaction(tr) {\n let conf = this.config, { base, compartments } = conf;\n for (let effect of tr.effects) {\n if (effect.is(Compartment.reconfigure)) {\n if (conf) {\n compartments = new Map;\n conf.compartments.forEach((val, key) => compartments.set(key, val));\n conf = null;\n }\n compartments.set(effect.value.compartment, effect.value.extension);\n }\n else if (effect.is(StateEffect.reconfigure)) {\n conf = null;\n base = effect.value;\n }\n else if (effect.is(StateEffect.appendConfig)) {\n conf = null;\n base = asArray(base).concat(effect.value);\n }\n }\n let startValues;\n if (!conf) {\n conf = Configuration.resolve(base, compartments, this);\n let intermediateState = new EditorState(conf, this.doc, this.selection, conf.dynamicSlots.map(() => null), (state, slot) => slot.reconfigure(state, this), null);\n startValues = intermediateState.values;\n }\n else {\n startValues = tr.startState.values.slice();\n }\n let selection = tr.startState.facet(allowMultipleSelections) ? tr.newSelection : tr.newSelection.asSingle();\n new EditorState(conf, tr.newDoc, selection, startValues, (state, slot) => slot.update(state, tr), tr);\n }\n /**\n Create a [transaction spec](https://codemirror.net/6/docs/ref/#state.TransactionSpec) that\n replaces every selection range with the given content.\n */\n replaceSelection(text) {\n if (typeof text == \"string\")\n text = this.toText(text);\n return this.changeByRange(range => ({ changes: { from: range.from, to: range.to, insert: text },\n range: EditorSelection.cursor(range.from + text.length) }));\n }\n /**\n Create a set of changes and a new selection by running the given\n function for each range in the active selection. The function\n can return an optional set of changes (in the coordinate space\n of the start document), plus an updated range (in the coordinate\n space of the document produced by the call's own changes). This\n method will merge all the changes and ranges into a single\n changeset and selection, and return it as a [transaction\n spec](https://codemirror.net/6/docs/ref/#state.TransactionSpec), which can be passed to\n [`update`](https://codemirror.net/6/docs/ref/#state.EditorState.update).\n */\n changeByRange(f) {\n let sel = this.selection;\n let result1 = f(sel.ranges[0]);\n let changes = this.changes(result1.changes), ranges = [result1.range];\n let effects = asArray(result1.effects);\n for (let i = 1; i < sel.ranges.length; i++) {\n let result = f(sel.ranges[i]);\n let newChanges = this.changes(result.changes), newMapped = newChanges.map(changes);\n for (let j = 0; j < i; j++)\n ranges[j] = ranges[j].map(newMapped);\n let mapBy = changes.mapDesc(newChanges, true);\n ranges.push(result.range.map(mapBy));\n changes = changes.compose(newMapped);\n effects = StateEffect.mapEffects(effects, newMapped).concat(StateEffect.mapEffects(asArray(result.effects), mapBy));\n }\n return {\n changes,\n selection: EditorSelection.create(ranges, sel.mainIndex),\n effects\n };\n }\n /**\n Create a [change set](https://codemirror.net/6/docs/ref/#state.ChangeSet) from the given change\n description, taking the state's document length and line\n separator into account.\n */\n changes(spec = []) {\n if (spec instanceof ChangeSet)\n return spec;\n return ChangeSet.of(spec, this.doc.length, this.facet(EditorState.lineSeparator));\n }\n /**\n Using the state's [line\n separator](https://codemirror.net/6/docs/ref/#state.EditorState^lineSeparator), create a\n [`Text`](https://codemirror.net/6/docs/ref/#state.Text) instance from the given string.\n */\n toText(string) {\n return Text.of(string.split(this.facet(EditorState.lineSeparator) || DefaultSplit));\n }\n /**\n Return the given range of the document as a string.\n */\n sliceDoc(from = 0, to = this.doc.length) {\n return this.doc.sliceString(from, to, this.lineBreak);\n }\n /**\n Get the value of a state [facet](https://codemirror.net/6/docs/ref/#state.Facet).\n */\n facet(facet) {\n let addr = this.config.address[facet.id];\n if (addr == null)\n return facet.default;\n ensureAddr(this, addr);\n return getAddr(this, addr);\n }\n /**\n Convert this state to a JSON-serializable object. When custom\n fields should be serialized, you can pass them in as an object\n mapping property names (in the resulting object, which should\n not use `doc` or `selection`) to fields.\n */\n toJSON(fields) {\n let result = {\n doc: this.sliceDoc(),\n selection: this.selection.toJSON()\n };\n if (fields)\n for (let prop in fields) {\n let value = fields[prop];\n if (value instanceof StateField && this.config.address[value.id] != null)\n result[prop] = value.spec.toJSON(this.field(fields[prop]), this);\n }\n return result;\n }\n /**\n Deserialize a state from its JSON representation. When custom\n fields should be deserialized, pass the same object you passed\n to [`toJSON`](https://codemirror.net/6/docs/ref/#state.EditorState.toJSON) when serializing as\n third argument.\n */\n static fromJSON(json, config = {}, fields) {\n if (!json || typeof json.doc != \"string\")\n throw new RangeError(\"Invalid JSON representation for EditorState\");\n let fieldInit = [];\n if (fields)\n for (let prop in fields) {\n if (Object.prototype.hasOwnProperty.call(json, prop)) {\n let field = fields[prop], value = json[prop];\n fieldInit.push(field.init(state => field.spec.fromJSON(value, state)));\n }\n }\n return EditorState.create({\n doc: json.doc,\n selection: EditorSelection.fromJSON(json.selection),\n extensions: config.extensions ? fieldInit.concat([config.extensions]) : fieldInit\n });\n }\n /**\n Create a new state. You'll usually only need this when\n initializing an editor—updated states are created by applying\n transactions.\n */\n static create(config = {}) {\n let configuration = Configuration.resolve(config.extensions || [], new Map);\n let doc = config.doc instanceof Text ? config.doc\n : Text.of((config.doc || \"\").split(configuration.staticFacet(EditorState.lineSeparator) || DefaultSplit));\n let selection = !config.selection ? EditorSelection.single(0)\n : config.selection instanceof EditorSelection ? config.selection\n : EditorSelection.single(config.selection.anchor, config.selection.head);\n checkSelection(selection, doc.length);\n if (!configuration.staticFacet(allowMultipleSelections))\n selection = selection.asSingle();\n return new EditorState(configuration, doc, selection, configuration.dynamicSlots.map(() => null), (state, slot) => slot.create(state), null);\n }\n /**\n The size (in columns) of a tab in the document, determined by\n the [`tabSize`](https://codemirror.net/6/docs/ref/#state.EditorState^tabSize) facet.\n */\n get tabSize() { return this.facet(EditorState.tabSize); }\n /**\n Get the proper [line-break](https://codemirror.net/6/docs/ref/#state.EditorState^lineSeparator)\n string for this state.\n */\n get lineBreak() { return this.facet(EditorState.lineSeparator) || \"\\n\"; }\n /**\n Returns true when the editor is\n [configured](https://codemirror.net/6/docs/ref/#state.EditorState^readOnly) to be read-only.\n */\n get readOnly() { return this.facet(readOnly); }\n /**\n Look up a translation for the given phrase (via the\n [`phrases`](https://codemirror.net/6/docs/ref/#state.EditorState^phrases) facet), or return the\n original string if no translation is found.\n \n If additional arguments are passed, they will be inserted in\n place of markers like `$1` (for the first value) and `$2`, etc.\n A single `$` is equivalent to `$1`, and `$$` will produce a\n literal dollar sign.\n */\n phrase(phrase, ...insert) {\n for (let map of this.facet(EditorState.phrases))\n if (Object.prototype.hasOwnProperty.call(map, phrase)) {\n phrase = map[phrase];\n break;\n }\n if (insert.length)\n phrase = phrase.replace(/\\$(\\$|\\d*)/g, (m, i) => {\n if (i == \"$\")\n return \"$\";\n let n = +(i || 1);\n return !n || n > insert.length ? m : insert[n - 1];\n });\n return phrase;\n }\n /**\n Find the values for a given language data field, provided by the\n the [`languageData`](https://codemirror.net/6/docs/ref/#state.EditorState^languageData) facet.\n \n Examples of language data fields are...\n \n - [`\"commentTokens\"`](https://codemirror.net/6/docs/ref/#commands.CommentTokens) for specifying\n comment syntax.\n - [`\"autocomplete\"`](https://codemirror.net/6/docs/ref/#autocomplete.autocompletion^config.override)\n for providing language-specific completion sources.\n - [`\"wordChars\"`](https://codemirror.net/6/docs/ref/#state.EditorState.charCategorizer) for adding\n characters that should be considered part of words in this\n language.\n - [`\"closeBrackets\"`](https://codemirror.net/6/docs/ref/#autocomplete.CloseBracketConfig) controls\n bracket closing behavior.\n */\n languageDataAt(name, pos, side = -1) {\n let values = [];\n for (let provider of this.facet(languageData)) {\n for (let result of provider(this, pos, side)) {\n if (Object.prototype.hasOwnProperty.call(result, name))\n values.push(result[name]);\n }\n }\n return values;\n }\n /**\n Return a function that can categorize strings (expected to\n represent a single [grapheme cluster](https://codemirror.net/6/docs/ref/#state.findClusterBreak))\n into one of:\n \n - Word (contains an alphanumeric character or a character\n explicitly listed in the local language's `\"wordChars\"`\n language data, which should be a string)\n - Space (contains only whitespace)\n - Other (anything else)\n */\n charCategorizer(at) {\n return makeCategorizer(this.languageDataAt(\"wordChars\", at).join(\"\"));\n }\n /**\n Find the word at the given position, meaning the range\n containing all [word](https://codemirror.net/6/docs/ref/#state.CharCategory.Word) characters\n around it. If no word characters are adjacent to the position,\n this returns null.\n */\n wordAt(pos) {\n let { text, from, length } = this.doc.lineAt(pos);\n let cat = this.charCategorizer(pos);\n let start = pos - from, end = pos - from;\n while (start > 0) {\n let prev = findClusterBreak(text, start, false);\n if (cat(text.slice(prev, start)) != CharCategory.Word)\n break;\n start = prev;\n }\n while (end < length) {\n let next = findClusterBreak(text, end);\n if (cat(text.slice(end, next)) != CharCategory.Word)\n break;\n end = next;\n }\n return start == end ? null : EditorSelection.range(start + from, end + from);\n }\n}\n/**\nA facet that, when enabled, causes the editor to allow multiple\nranges to be selected. Be careful though, because by default the\neditor relies on the native DOM selection, which cannot handle\nmultiple selections. An extension like\n[`drawSelection`](https://codemirror.net/6/docs/ref/#view.drawSelection) can be used to make\nsecondary selections visible to the user.\n*/\nEditorState.allowMultipleSelections = allowMultipleSelections;\n/**\nConfigures the tab size to use in this state. The first\n(highest-precedence) value of the facet is used. If no value is\ngiven, this defaults to 4.\n*/\nEditorState.tabSize = /*@__PURE__*/Facet.define({\n combine: values => values.length ? values[0] : 4\n});\n/**\nThe line separator to use. By default, any of `\"\\n\"`, `\"\\r\\n\"`\nand `\"\\r\"` is treated as a separator when splitting lines, and\nlines are joined with `\"\\n\"`.\n\nWhen you configure a value here, only that precise separator\nwill be used, allowing you to round-trip documents through the\neditor without normalizing line separators.\n*/\nEditorState.lineSeparator = lineSeparator;\n/**\nThis facet controls the value of the\n[`readOnly`](https://codemirror.net/6/docs/ref/#state.EditorState.readOnly) getter, which is\nconsulted by commands and extensions that implement editing\nfunctionality to determine whether they should apply. It\ndefaults to false, but when its highest-precedence value is\n`true`, such functionality disables itself.\n\nNot to be confused with\n[`EditorView.editable`](https://codemirror.net/6/docs/ref/#view.EditorView^editable), which\ncontrols whether the editor's DOM is set to be editable (and\nthus focusable).\n*/\nEditorState.readOnly = readOnly;\n/**\nRegisters translation phrases. The\n[`phrase`](https://codemirror.net/6/docs/ref/#state.EditorState.phrase) method will look through\nall objects registered with this facet to find translations for\nits argument.\n*/\nEditorState.phrases = /*@__PURE__*/Facet.define({\n compare(a, b) {\n let kA = Object.keys(a), kB = Object.keys(b);\n return kA.length == kB.length && kA.every(k => a[k] == b[k]);\n }\n});\n/**\nA facet used to register [language\ndata](https://codemirror.net/6/docs/ref/#state.EditorState.languageDataAt) providers.\n*/\nEditorState.languageData = languageData;\n/**\nFacet used to register change filters, which are called for each\ntransaction (unless explicitly\n[disabled](https://codemirror.net/6/docs/ref/#state.TransactionSpec.filter)), and can suppress\npart of the transaction's changes.\n\nSuch a function can return `true` to indicate that it doesn't\nwant to do anything, `false` to completely stop the changes in\nthe transaction, or a set of ranges in which changes should be\nsuppressed. Such ranges are represented as an array of numbers,\nwith each pair of two numbers indicating the start and end of a\nrange. So for example `[10, 20, 100, 110]` suppresses changes\nbetween 10 and 20, and between 100 and 110.\n*/\nEditorState.changeFilter = changeFilter;\n/**\nFacet used to register a hook that gets a chance to update or\nreplace transaction specs before they are applied. This will\nonly be applied for transactions that don't have\n[`filter`](https://codemirror.net/6/docs/ref/#state.TransactionSpec.filter) set to `false`. You\ncan either return a single transaction spec (possibly the input\ntransaction), or an array of specs (which will be combined in\nthe same way as the arguments to\n[`EditorState.update`](https://codemirror.net/6/docs/ref/#state.EditorState.update)).\n\nWhen possible, it is recommended to avoid accessing\n[`Transaction.state`](https://codemirror.net/6/docs/ref/#state.Transaction.state) in a filter,\nsince it will force creation of a state that will then be\ndiscarded again, if the transaction is actually filtered.\n\n(This functionality should be used with care. Indiscriminately\nmodifying transaction is likely to break something or degrade\nthe user experience.)\n*/\nEditorState.transactionFilter = transactionFilter;\n/**\nThis is a more limited form of\n[`transactionFilter`](https://codemirror.net/6/docs/ref/#state.EditorState^transactionFilter),\nwhich can only add\n[annotations](https://codemirror.net/6/docs/ref/#state.TransactionSpec.annotations) and\n[effects](https://codemirror.net/6/docs/ref/#state.TransactionSpec.effects). _But_, this type\nof filter runs even if the transaction has disabled regular\n[filtering](https://codemirror.net/6/docs/ref/#state.TransactionSpec.filter), making it suitable\nfor effects that don't need to touch the changes or selection,\nbut do want to process every transaction.\n\nExtenders run _after_ filters, when both are present.\n*/\nEditorState.transactionExtender = transactionExtender;\nCompartment.reconfigure = /*@__PURE__*/StateEffect.define();\n\n/**\nUtility function for combining behaviors to fill in a config\nobject from an array of provided configs. `defaults` should hold\ndefault values for all optional fields in `Config`.\n\nThe function will, by default, error\nwhen a field gets two values that aren't `===`-equal, but you can\nprovide combine functions per field to do something else.\n*/\nfunction combineConfig(configs, defaults, // Should hold only the optional properties of Config, but I haven't managed to express that\ncombine = {}) {\n let result = {};\n for (let config of configs)\n for (let key of Object.keys(config)) {\n let value = config[key], current = result[key];\n if (current === undefined)\n result[key] = value;\n else if (current === value || value === undefined) ; // No conflict\n else if (Object.hasOwnProperty.call(combine, key))\n result[key] = combine[key](current, value);\n else\n throw new Error(\"Config merge conflict for field \" + key);\n }\n for (let key in defaults)\n if (result[key] === undefined)\n result[key] = defaults[key];\n return result;\n}\n\n/**\nEach range is associated with a value, which must inherit from\nthis class.\n*/\nclass RangeValue {\n /**\n Compare this value with another value. Used when comparing\n rangesets. The default implementation compares by identity.\n Unless you are only creating a fixed number of unique instances\n of your value type, it is a good idea to implement this\n properly.\n */\n eq(other) { return this == other; }\n /**\n Create a [range](https://codemirror.net/6/docs/ref/#state.Range) with this value.\n */\n range(from, to = from) { return Range.create(from, to, this); }\n}\nRangeValue.prototype.startSide = RangeValue.prototype.endSide = 0;\nRangeValue.prototype.point = false;\nRangeValue.prototype.mapMode = MapMode.TrackDel;\n/**\nA range associates a value with a range of positions.\n*/\nclass Range {\n constructor(\n /**\n The range's start position.\n */\n from, \n /**\n Its end position.\n */\n to, \n /**\n The value associated with this range.\n */\n value) {\n this.from = from;\n this.to = to;\n this.value = value;\n }\n /**\n @internal\n */\n static create(from, to, value) {\n return new Range(from, to, value);\n }\n}\nfunction cmpRange(a, b) {\n return a.from - b.from || a.value.startSide - b.value.startSide;\n}\nclass Chunk {\n constructor(from, to, value, \n // Chunks are marked with the largest point that occurs\n // in them (or -1 for no points), so that scans that are\n // only interested in points (such as the\n // heightmap-related logic) can skip range-only chunks.\n maxPoint) {\n this.from = from;\n this.to = to;\n this.value = value;\n this.maxPoint = maxPoint;\n }\n get length() { return this.to[this.to.length - 1]; }\n // Find the index of the given position and side. Use the ranges'\n // `from` pos when `end == false`, `to` when `end == true`.\n findIndex(pos, side, end, startAt = 0) {\n let arr = end ? this.to : this.from;\n for (let lo = startAt, hi = arr.length;;) {\n if (lo == hi)\n return lo;\n let mid = (lo + hi) >> 1;\n let diff = arr[mid] - pos || (end ? this.value[mid].endSide : this.value[mid].startSide) - side;\n if (mid == lo)\n return diff >= 0 ? lo : hi;\n if (diff >= 0)\n hi = mid;\n else\n lo = mid + 1;\n }\n }\n between(offset, from, to, f) {\n for (let i = this.findIndex(from, -1000000000 /* C.Far */, true), e = this.findIndex(to, 1000000000 /* C.Far */, false, i); i < e; i++)\n if (f(this.from[i] + offset, this.to[i] + offset, this.value[i]) === false)\n return false;\n }\n map(offset, changes) {\n let value = [], from = [], to = [], newPos = -1, maxPoint = -1;\n for (let i = 0; i < this.value.length; i++) {\n let val = this.value[i], curFrom = this.from[i] + offset, curTo = this.to[i] + offset, newFrom, newTo;\n if (curFrom == curTo) {\n let mapped = changes.mapPos(curFrom, val.startSide, val.mapMode);\n if (mapped == null)\n continue;\n newFrom = newTo = mapped;\n if (val.startSide != val.endSide) {\n newTo = changes.mapPos(curFrom, val.endSide);\n if (newTo < newFrom)\n continue;\n }\n }\n else {\n newFrom = changes.mapPos(curFrom, val.startSide);\n newTo = changes.mapPos(curTo, val.endSide);\n if (newFrom > newTo || newFrom == newTo && val.startSide > 0 && val.endSide <= 0)\n continue;\n }\n if ((newTo - newFrom || val.endSide - val.startSide) < 0)\n continue;\n if (newPos < 0)\n newPos = newFrom;\n if (val.point)\n maxPoint = Math.max(maxPoint, newTo - newFrom);\n value.push(val);\n from.push(newFrom - newPos);\n to.push(newTo - newPos);\n }\n return { mapped: value.length ? new Chunk(from, to, value, maxPoint) : null, pos: newPos };\n }\n}\n/**\nA range set stores a collection of [ranges](https://codemirror.net/6/docs/ref/#state.Range) in a\nway that makes them efficient to [map](https://codemirror.net/6/docs/ref/#state.RangeSet.map) and\n[update](https://codemirror.net/6/docs/ref/#state.RangeSet.update). This is an immutable data\nstructure.\n*/\nclass RangeSet {\n constructor(\n /**\n @internal\n */\n chunkPos, \n /**\n @internal\n */\n chunk, \n /**\n @internal\n */\n nextLayer, \n /**\n @internal\n */\n maxPoint) {\n this.chunkPos = chunkPos;\n this.chunk = chunk;\n this.nextLayer = nextLayer;\n this.maxPoint = maxPoint;\n }\n /**\n @internal\n */\n static create(chunkPos, chunk, nextLayer, maxPoint) {\n return new RangeSet(chunkPos, chunk, nextLayer, maxPoint);\n }\n /**\n @internal\n */\n get length() {\n let last = this.chunk.length - 1;\n return last < 0 ? 0 : Math.max(this.chunkEnd(last), this.nextLayer.length);\n }\n /**\n The number of ranges in the set.\n */\n get size() {\n if (this.isEmpty)\n return 0;\n let size = this.nextLayer.size;\n for (let chunk of this.chunk)\n size += chunk.value.length;\n return size;\n }\n /**\n @internal\n */\n chunkEnd(index) {\n return this.chunkPos[index] + this.chunk[index].length;\n }\n /**\n Update the range set, optionally adding new ranges or filtering\n out existing ones.\n \n (Note: The type parameter is just there as a kludge to work\n around TypeScript variance issues that prevented `RangeSet<X>`\n from being a subtype of `RangeSet<Y>` when `X` is a subtype of\n `Y`.)\n */\n update(updateSpec) {\n let { add = [], sort = false, filterFrom = 0, filterTo = this.length } = updateSpec;\n let filter = updateSpec.filter;\n if (add.length == 0 && !filter)\n return this;\n if (sort)\n add = add.slice().sort(cmpRange);\n if (this.isEmpty)\n return add.length ? RangeSet.of(add) : this;\n let cur = new LayerCursor(this, null, -1).goto(0), i = 0, spill = [];\n let builder = new RangeSetBuilder();\n while (cur.value || i < add.length) {\n if (i < add.length && (cur.from - add[i].from || cur.startSide - add[i].value.startSide) >= 0) {\n let range = add[i++];\n if (!builder.addInner(range.from, range.to, range.value))\n spill.push(range);\n }\n else if (cur.rangeIndex == 1 && cur.chunkIndex < this.chunk.length &&\n (i == add.length || this.chunkEnd(cur.chunkIndex) < add[i].from) &&\n (!filter || filterFrom > this.chunkEnd(cur.chunkIndex) || filterTo < this.chunkPos[cur.chunkIndex]) &&\n builder.addChunk(this.chunkPos[cur.chunkIndex], this.chunk[cur.chunkIndex])) {\n cur.nextChunk();\n }\n else {\n if (!filter || filterFrom > cur.to || filterTo < cur.from || filter(cur.from, cur.to, cur.value)) {\n if (!builder.addInner(cur.from, cur.to, cur.value))\n spill.push(Range.create(cur.from, cur.to, cur.value));\n }\n cur.next();\n }\n }\n return builder.finishInner(this.nextLayer.isEmpty && !spill.length ? RangeSet.empty\n : this.nextLayer.update({ add: spill, filter, filterFrom, filterTo }));\n }\n /**\n Map this range set through a set of changes, return the new set.\n */\n map(changes) {\n if (changes.empty || this.isEmpty)\n return this;\n let chunks = [], chunkPos = [], maxPoint = -1;\n for (let i = 0; i < this.chunk.length; i++) {\n let start = this.chunkPos[i], chunk = this.chunk[i];\n let touch = changes.touchesRange(start, start + chunk.length);\n if (touch === false) {\n maxPoint = Math.max(maxPoint, chunk.maxPoint);\n chunks.push(chunk);\n chunkPos.push(changes.mapPos(start));\n }\n else if (touch === true) {\n let { mapped, pos } = chunk.map(start, changes);\n if (mapped) {\n maxPoint = Math.max(maxPoint, mapped.maxPoint);\n chunks.push(mapped);\n chunkPos.push(pos);\n }\n }\n }\n let next = this.nextLayer.map(changes);\n return chunks.length == 0 ? next : new RangeSet(chunkPos, chunks, next || RangeSet.empty, maxPoint);\n }\n /**\n Iterate over the ranges that touch the region `from` to `to`,\n calling `f` for each. There is no guarantee that the ranges will\n be reported in any specific order. When the callback returns\n `false`, iteration stops.\n */\n between(from, to, f) {\n if (this.isEmpty)\n return;\n for (let i = 0; i < this.chunk.length; i++) {\n let start = this.chunkPos[i], chunk = this.chunk[i];\n if (to >= start && from <= start + chunk.length &&\n chunk.between(start, from - start, to - start, f) === false)\n return;\n }\n this.nextLayer.between(from, to, f);\n }\n /**\n Iterate over the ranges in this set, in order, including all\n ranges that end at or after `from`.\n */\n iter(from = 0) {\n return HeapCursor.from([this]).goto(from);\n }\n /**\n @internal\n */\n get isEmpty() { return this.nextLayer == this; }\n /**\n Iterate over the ranges in a collection of sets, in order,\n starting from `from`.\n */\n static iter(sets, from = 0) {\n return HeapCursor.from(sets).goto(from);\n }\n /**\n Iterate over two groups of sets, calling methods on `comparator`\n to notify it of possible differences.\n */\n static compare(oldSets, newSets, \n /**\n This indicates how the underlying data changed between these\n ranges, and is needed to synchronize the iteration.\n */\n textDiff, comparator, \n /**\n Can be used to ignore all non-point ranges, and points below\n the given size. When -1, all ranges are compared.\n */\n minPointSize = -1) {\n let a = oldSets.filter(set => set.maxPoint > 0 || !set.isEmpty && set.maxPoint >= minPointSize);\n let b = newSets.filter(set => set.maxPoint > 0 || !set.isEmpty && set.maxPoint >= minPointSize);\n let sharedChunks = findSharedChunks(a, b, textDiff);\n let sideA = new SpanCursor(a, sharedChunks, minPointSize);\n let sideB = new SpanCursor(b, sharedChunks, minPointSize);\n textDiff.iterGaps((fromA, fromB, length) => compare(sideA, fromA, sideB, fromB, length, comparator));\n if (textDiff.empty && textDiff.length == 0)\n compare(sideA, 0, sideB, 0, 0, comparator);\n }\n /**\n Compare the contents of two groups of range sets, returning true\n if they are equivalent in the given range.\n */\n static eq(oldSets, newSets, from = 0, to) {\n if (to == null)\n to = 1000000000 /* C.Far */ - 1;\n let a = oldSets.filter(set => !set.isEmpty && newSets.indexOf(set) < 0);\n let b = newSets.filter(set => !set.isEmpty && oldSets.indexOf(set) < 0);\n if (a.length != b.length)\n return false;\n if (!a.length)\n return true;\n let sharedChunks = findSharedChunks(a, b);\n let sideA = new SpanCursor(a, sharedChunks, 0).goto(from), sideB = new SpanCursor(b, sharedChunks, 0).goto(from);\n for (;;) {\n if (sideA.to != sideB.to ||\n !sameValues(sideA.active, sideB.active) ||\n sideA.point && (!sideB.point || !sideA.point.eq(sideB.point)))\n return false;\n if (sideA.to > to)\n return true;\n sideA.next();\n sideB.next();\n }\n }\n /**\n Iterate over a group of range sets at the same time, notifying\n the iterator about the ranges covering every given piece of\n content. Returns the open count (see\n [`SpanIterator.span`](https://codemirror.net/6/docs/ref/#state.SpanIterator.span)) at the end\n of the iteration.\n */\n static spans(sets, from, to, iterator, \n /**\n When given and greater than -1, only points of at least this\n size are taken into account.\n */\n minPointSize = -1) {\n let cursor = new SpanCursor(sets, null, minPointSize).goto(from), pos = from;\n let openRanges = cursor.openStart;\n for (;;) {\n let curTo = Math.min(cursor.to, to);\n if (cursor.point) {\n let active = cursor.activeForPoint(cursor.to);\n let openCount = cursor.pointFrom < from ? active.length + 1\n : cursor.point.startSide < 0 ? active.length\n : Math.min(active.length, openRanges);\n iterator.point(pos, curTo, cursor.point, active, openCount, cursor.pointRank);\n openRanges = Math.min(cursor.openEnd(curTo), active.length);\n }\n else if (curTo > pos) {\n iterator.span(pos, curTo, cursor.active, openRanges);\n openRanges = cursor.openEnd(curTo);\n }\n if (cursor.to > to)\n return openRanges + (cursor.point && cursor.to > to ? 1 : 0);\n pos = cursor.to;\n cursor.next();\n }\n }\n /**\n Create a range set for the given range or array of ranges. By\n default, this expects the ranges to be _sorted_ (by start\n position and, if two start at the same position,\n `value.startSide`). You can pass `true` as second argument to\n cause the method to sort them.\n */\n static of(ranges, sort = false) {\n let build = new RangeSetBuilder();\n for (let range of ranges instanceof Range ? [ranges] : sort ? lazySort(ranges) : ranges)\n build.add(range.from, range.to, range.value);\n return build.finish();\n }\n /**\n Join an array of range sets into a single set.\n */\n static join(sets) {\n if (!sets.length)\n return RangeSet.empty;\n let result = sets[sets.length - 1];\n for (let i = sets.length - 2; i >= 0; i--) {\n for (let layer = sets[i]; layer != RangeSet.empty; layer = layer.nextLayer)\n result = new RangeSet(layer.chunkPos, layer.chunk, result, Math.max(layer.maxPoint, result.maxPoint));\n }\n return result;\n }\n}\n/**\nThe empty set of ranges.\n*/\nRangeSet.empty = /*@__PURE__*/new RangeSet([], [], null, -1);\nfunction lazySort(ranges) {\n if (ranges.length > 1)\n for (let prev = ranges[0], i = 1; i < ranges.length; i++) {\n let cur = ranges[i];\n if (cmpRange(prev, cur) > 0)\n return ranges.slice().sort(cmpRange);\n prev = cur;\n }\n return ranges;\n}\nRangeSet.empty.nextLayer = RangeSet.empty;\n/**\nA range set builder is a data structure that helps build up a\n[range set](https://codemirror.net/6/docs/ref/#state.RangeSet) directly, without first allocating\nan array of [`Range`](https://codemirror.net/6/docs/ref/#state.Range) objects.\n*/\nclass RangeSetBuilder {\n finishChunk(newArrays) {\n this.chunks.push(new Chunk(this.from, this.to, this.value, this.maxPoint));\n this.chunkPos.push(this.chunkStart);\n this.chunkStart = -1;\n this.setMaxPoint = Math.max(this.setMaxPoint, this.maxPoint);\n this.maxPoint = -1;\n if (newArrays) {\n this.from = [];\n this.to = [];\n this.value = [];\n }\n }\n /**\n Create an empty builder.\n */\n constructor() {\n this.chunks = [];\n this.chunkPos = [];\n this.chunkStart = -1;\n this.last = null;\n this.lastFrom = -1000000000 /* C.Far */;\n this.lastTo = -1000000000 /* C.Far */;\n this.from = [];\n this.to = [];\n this.value = [];\n this.maxPoint = -1;\n this.setMaxPoint = -1;\n this.nextLayer = null;\n }\n /**\n Add a range. Ranges should be added in sorted (by `from` and\n `value.startSide`) order.\n */\n add(from, to, value) {\n if (!this.addInner(from, to, value))\n (this.nextLayer || (this.nextLayer = new RangeSetBuilder)).add(from, to, value);\n }\n /**\n @internal\n */\n addInner(from, to, value) {\n let diff = from - this.lastTo || value.startSide - this.last.endSide;\n if (diff <= 0 && (from - this.lastFrom || value.startSide - this.last.startSide) < 0)\n throw new Error(\"Ranges must be added sorted by `from` position and `startSide`\");\n if (diff < 0)\n return false;\n if (this.from.length == 250 /* C.ChunkSize */)\n this.finishChunk(true);\n if (this.chunkStart < 0)\n this.chunkStart = from;\n this.from.push(from - this.chunkStart);\n this.to.push(to - this.chunkStart);\n this.last = value;\n this.lastFrom = from;\n this.lastTo = to;\n this.value.push(value);\n if (value.point)\n this.maxPoint = Math.max(this.maxPoint, to - from);\n return true;\n }\n /**\n @internal\n */\n addChunk(from, chunk) {\n if ((from - this.lastTo || chunk.value[0].startSide - this.last.endSide) < 0)\n return false;\n if (this.from.length)\n this.finishChunk(true);\n this.setMaxPoint = Math.max(this.setMaxPoint, chunk.maxPoint);\n this.chunks.push(chunk);\n this.chunkPos.push(from);\n let last = chunk.value.length - 1;\n this.last = chunk.value[last];\n this.lastFrom = chunk.from[last] + from;\n this.lastTo = chunk.to[last] + from;\n return true;\n }\n /**\n Finish the range set. Returns the new set. The builder can't be\n used anymore after this has been called.\n */\n finish() { return this.finishInner(RangeSet.empty); }\n /**\n @internal\n */\n finishInner(next) {\n if (this.from.length)\n this.finishChunk(false);\n if (this.chunks.length == 0)\n return next;\n let result = RangeSet.create(this.chunkPos, this.chunks, this.nextLayer ? this.nextLayer.finishInner(next) : next, this.setMaxPoint);\n this.from = null; // Make sure further `add` calls produce errors\n return result;\n }\n}\nfunction findSharedChunks(a, b, textDiff) {\n let inA = new Map();\n for (let set of a)\n for (let i = 0; i < set.chunk.length; i++)\n if (set.chunk[i].maxPoint <= 0)\n inA.set(set.chunk[i], set.chunkPos[i]);\n let shared = new Set();\n for (let set of b)\n for (let i = 0; i < set.chunk.length; i++) {\n let known = inA.get(set.chunk[i]);\n if (known != null && (textDiff ? textDiff.mapPos(known) : known) == set.chunkPos[i] &&\n !(textDiff === null || textDiff === void 0 ? void 0 : textDiff.touchesRange(known, known + set.chunk[i].length)))\n shared.add(set.chunk[i]);\n }\n return shared;\n}\nclass LayerCursor {\n constructor(layer, skip, minPoint, rank = 0) {\n this.layer = layer;\n this.skip = skip;\n this.minPoint = minPoint;\n this.rank = rank;\n }\n get startSide() { return this.value ? this.value.startSide : 0; }\n get endSide() { return this.value ? this.value.endSide : 0; }\n goto(pos, side = -1000000000 /* C.Far */) {\n this.chunkIndex = this.rangeIndex = 0;\n this.gotoInner(pos, side, false);\n return this;\n }\n gotoInner(pos, side, forward) {\n while (this.chunkIndex < this.layer.chunk.length) {\n let next = this.layer.chunk[this.chunkIndex];\n if (!(this.skip && this.skip.has(next) ||\n this.layer.chunkEnd(this.chunkIndex) < pos ||\n next.maxPoint < this.minPoint))\n break;\n this.chunkIndex++;\n forward = false;\n }\n if (this.chunkIndex < this.layer.chunk.length) {\n let rangeIndex = this.layer.chunk[this.chunkIndex].findIndex(pos - this.layer.chunkPos[this.chunkIndex], side, true);\n if (!forward || this.rangeIndex < rangeIndex)\n this.setRangeIndex(rangeIndex);\n }\n this.next();\n }\n forward(pos, side) {\n if ((this.to - pos || this.endSide - side) < 0)\n this.gotoInner(pos, side, true);\n }\n next() {\n for (;;) {\n if (this.chunkIndex == this.layer.chunk.length) {\n this.from = this.to = 1000000000 /* C.Far */;\n this.value = null;\n break;\n }\n else {\n let chunkPos = this.layer.chunkPos[this.chunkIndex], chunk = this.layer.chunk[this.chunkIndex];\n let from = chunkPos + chunk.from[this.rangeIndex];\n this.from = from;\n this.to = chunkPos + chunk.to[this.rangeIndex];\n this.value = chunk.value[this.rangeIndex];\n this.setRangeIndex(this.rangeIndex + 1);\n if (this.minPoint < 0 || this.value.point && this.to - this.from >= this.minPoint)\n break;\n }\n }\n }\n setRangeIndex(index) {\n if (index == this.layer.chunk[this.chunkIndex].value.length) {\n this.chunkIndex++;\n if (this.skip) {\n while (this.chunkIndex < this.layer.chunk.length && this.skip.has(this.layer.chunk[this.chunkIndex]))\n this.chunkIndex++;\n }\n this.rangeIndex = 0;\n }\n else {\n this.rangeIndex = index;\n }\n }\n nextChunk() {\n this.chunkIndex++;\n this.rangeIndex = 0;\n this.next();\n }\n compare(other) {\n return this.from - other.from || this.startSide - other.startSide || this.rank - other.rank ||\n this.to - other.to || this.endSide - other.endSide;\n }\n}\nclass HeapCursor {\n constructor(heap) {\n this.heap = heap;\n }\n static from(sets, skip = null, minPoint = -1) {\n let heap = [];\n for (let i = 0; i < sets.length; i++) {\n for (let cur = sets[i]; !cur.isEmpty; cur = cur.nextLayer) {\n if (cur.maxPoint >= minPoint)\n heap.push(new LayerCursor(cur, skip, minPoint, i));\n }\n }\n return heap.length == 1 ? heap[0] : new HeapCursor(heap);\n }\n get startSide() { return this.value ? this.value.startSide : 0; }\n goto(pos, side = -1000000000 /* C.Far */) {\n for (let cur of this.heap)\n cur.goto(pos, side);\n for (let i = this.heap.length >> 1; i >= 0; i--)\n heapBubble(this.heap, i);\n this.next();\n return this;\n }\n forward(pos, side) {\n for (let cur of this.heap)\n cur.forward(pos, side);\n for (let i = this.heap.length >> 1; i >= 0; i--)\n heapBubble(this.heap, i);\n if ((this.to - pos || this.value.endSide - side) < 0)\n this.next();\n }\n next() {\n if (this.heap.length == 0) {\n this.from = this.to = 1000000000 /* C.Far */;\n this.value = null;\n this.rank = -1;\n }\n else {\n let top = this.heap[0];\n this.from = top.from;\n this.to = top.to;\n this.value = top.value;\n this.rank = top.rank;\n if (top.value)\n top.next();\n heapBubble(this.heap, 0);\n }\n }\n}\nfunction heapBubble(heap, index) {\n for (let cur = heap[index];;) {\n let childIndex = (index << 1) + 1;\n if (childIndex >= heap.length)\n break;\n let child = heap[childIndex];\n if (childIndex + 1 < heap.length && child.compare(heap[childIndex + 1]) >= 0) {\n child = heap[childIndex + 1];\n childIndex++;\n }\n if (cur.compare(child) < 0)\n break;\n heap[childIndex] = cur;\n heap[index] = child;\n index = childIndex;\n }\n}\nclass SpanCursor {\n constructor(sets, skip, minPoint) {\n this.minPoint = minPoint;\n this.active = [];\n this.activeTo = [];\n this.activeRank = [];\n this.minActive = -1;\n // A currently active point range, if any\n this.point = null;\n this.pointFrom = 0;\n this.pointRank = 0;\n this.to = -1000000000 /* C.Far */;\n this.endSide = 0;\n // The amount of open active ranges at the start of the iterator.\n // Not including points.\n this.openStart = -1;\n this.cursor = HeapCursor.from(sets, skip, minPoint);\n }\n goto(pos, side = -1000000000 /* C.Far */) {\n this.cursor.goto(pos, side);\n this.active.length = this.activeTo.length = this.activeRank.length = 0;\n this.minActive = -1;\n this.to = pos;\n this.endSide = side;\n this.openStart = -1;\n this.next();\n return this;\n }\n forward(pos, side) {\n while (this.minActive > -1 && (this.activeTo[this.minActive] - pos || this.active[this.minActive].endSide - side) < 0)\n this.removeActive(this.minActive);\n this.cursor.forward(pos, side);\n }\n removeActive(index) {\n remove(this.active, index);\n remove(this.activeTo, index);\n remove(this.activeRank, index);\n this.minActive = findMinIndex(this.active, this.activeTo);\n }\n addActive(trackOpen) {\n let i = 0, { value, to, rank } = this.cursor;\n // Organize active marks by rank first, then by size\n while (i < this.activeRank.length && (rank - this.activeRank[i] || to - this.activeTo[i]) > 0)\n i++;\n insert(this.active, i, value);\n insert(this.activeTo, i, to);\n insert(this.activeRank, i, rank);\n if (trackOpen)\n insert(trackOpen, i, this.cursor.from);\n this.minActive = findMinIndex(this.active, this.activeTo);\n }\n // After calling this, if `this.point` != null, the next range is a\n // point. Otherwise, it's a regular range, covered by `this.active`.\n next() {\n let from = this.to, wasPoint = this.point;\n this.point = null;\n let trackOpen = this.openStart < 0 ? [] : null;\n for (;;) {\n let a = this.minActive;\n if (a > -1 && (this.activeTo[a] - this.cursor.from || this.active[a].endSide - this.cursor.startSide) < 0) {\n if (this.activeTo[a] > from) {\n this.to = this.activeTo[a];\n this.endSide = this.active[a].endSide;\n break;\n }\n this.removeActive(a);\n if (trackOpen)\n remove(trackOpen, a);\n }\n else if (!this.cursor.value) {\n this.to = this.endSide = 1000000000 /* C.Far */;\n break;\n }\n else if (this.cursor.from > from) {\n this.to = this.cursor.from;\n this.endSide = this.cursor.startSide;\n break;\n }\n else {\n let nextVal = this.cursor.value;\n if (!nextVal.point) { // Opening a range\n this.addActive(trackOpen);\n this.cursor.next();\n }\n else if (wasPoint && this.cursor.to == this.to && this.cursor.from < this.cursor.to) {\n // Ignore any non-empty points that end precisely at the end of the prev point\n this.cursor.next();\n }\n else { // New point\n this.point = nextVal;\n this.pointFrom = this.cursor.from;\n this.pointRank = this.cursor.rank;\n this.to = this.cursor.to;\n this.endSide = nextVal.endSide;\n this.cursor.next();\n this.forward(this.to, this.endSide);\n break;\n }\n }\n }\n if (trackOpen) {\n this.openStart = 0;\n for (let i = trackOpen.length - 1; i >= 0 && trackOpen[i] < from; i--)\n this.openStart++;\n }\n }\n activeForPoint(to) {\n if (!this.active.length)\n return this.active;\n let active = [];\n for (let i = this.active.length - 1; i >= 0; i--) {\n if (this.activeRank[i] < this.pointRank)\n break;\n if (this.activeTo[i] > to || this.activeTo[i] == to && this.active[i].endSide >= this.point.endSide)\n active.push(this.active[i]);\n }\n return active.reverse();\n }\n openEnd(to) {\n let open = 0;\n for (let i = this.activeTo.length - 1; i >= 0 && this.activeTo[i] > to; i--)\n open++;\n return open;\n }\n}\nfunction compare(a, startA, b, startB, length, comparator) {\n a.goto(startA);\n b.goto(startB);\n let endB = startB + length;\n let pos = startB, dPos = startB - startA;\n for (;;) {\n let diff = (a.to + dPos) - b.to || a.endSide - b.endSide;\n let end = diff < 0 ? a.to + dPos : b.to, clipEnd = Math.min(end, endB);\n if (a.point || b.point) {\n if (!(a.point && b.point && (a.point == b.point || a.point.eq(b.point)) &&\n sameValues(a.activeForPoint(a.to), b.activeForPoint(b.to))))\n comparator.comparePoint(pos, clipEnd, a.point, b.point);\n }\n else {\n if (clipEnd > pos && !sameValues(a.active, b.active))\n comparator.compareRange(pos, clipEnd, a.active, b.active);\n }\n if (end > endB)\n break;\n pos = end;\n if (diff <= 0)\n a.next();\n if (diff >= 0)\n b.next();\n }\n}\nfunction sameValues(a, b) {\n if (a.length != b.length)\n return false;\n for (let i = 0; i < a.length; i++)\n if (a[i] != b[i] && !a[i].eq(b[i]))\n return false;\n return true;\n}\nfunction remove(array, index) {\n for (let i = index, e = array.length - 1; i < e; i++)\n array[i] = array[i + 1];\n array.pop();\n}\nfunction insert(array, index, value) {\n for (let i = array.length - 1; i >= index; i--)\n array[i + 1] = array[i];\n array[index] = value;\n}\nfunction findMinIndex(value, array) {\n let found = -1, foundPos = 1000000000 /* C.Far */;\n for (let i = 0; i < array.length; i++)\n if ((array[i] - foundPos || value[i].endSide - value[found].endSide) < 0) {\n found = i;\n foundPos = array[i];\n }\n return found;\n}\n\n/**\nCount the column position at the given offset into the string,\ntaking extending characters and tab size into account.\n*/\nfunction countColumn(string, tabSize, to = string.length) {\n let n = 0;\n for (let i = 0; i < to;) {\n if (string.charCodeAt(i) == 9) {\n n += tabSize - (n % tabSize);\n i++;\n }\n else {\n n++;\n i = findClusterBreak(string, i);\n }\n }\n return n;\n}\n/**\nFind the offset that corresponds to the given column position in a\nstring, taking extending characters and tab size into account. By\ndefault, the string length is returned when it is too short to\nreach the column. Pass `strict` true to make it return -1 in that\nsituation.\n*/\nfunction findColumn(string, col, tabSize, strict) {\n for (let i = 0, n = 0;;) {\n if (n >= col)\n return i;\n if (i == string.length)\n break;\n n += string.charCodeAt(i) == 9 ? tabSize - (n % tabSize) : 1;\n i = findClusterBreak(string, i);\n }\n return strict === true ? -1 : string.length;\n}\n\nexport { Annotation, AnnotationType, ChangeDesc, ChangeSet, CharCategory, Compartment, EditorSelection, EditorState, Facet, Line, MapMode, Prec, Range, RangeSet, RangeSetBuilder, RangeValue, SelectionRange, StateEffect, StateEffectType, StateField, Text, Transaction, codePointAt, codePointSize, combineConfig, countColumn, findClusterBreak, findColumn, fromCodePoint };\n","const C = \"\\u037c\"\nconst COUNT = typeof Symbol == \"undefined\" ? \"__\" + C : Symbol.for(C)\nconst SET = typeof Symbol == \"undefined\" ? \"__styleSet\" + Math.floor(Math.random() * 1e8) : Symbol(\"styleSet\")\nconst top = typeof globalThis != \"undefined\" ? globalThis : typeof window != \"undefined\" ? window : {}\n\n// :: - Style modules encapsulate a set of CSS rules defined from\n// JavaScript. Their definitions are only available in a given DOM\n// root after it has been _mounted_ there with `StyleModule.mount`.\n//\n// Style modules should be created once and stored somewhere, as\n// opposed to re-creating them every time you need them. The amount of\n// CSS rules generated for a given DOM root is bounded by the amount\n// of style modules that were used. So to avoid leaking rules, don't\n// create these dynamically, but treat them as one-time allocations.\nexport class StyleModule {\n // :: (Object<Style>, ?{finish: ?(string) → string})\n // Create a style module from the given spec.\n //\n // When `finish` is given, it is called on regular (non-`@`)\n // selectors (after `&` expansion) to compute the final selector.\n constructor(spec, options) {\n this.rules = []\n let {finish} = options || {}\n\n function splitSelector(selector) {\n return /^@/.test(selector) ? [selector] : selector.split(/,\\s*/)\n }\n\n function render(selectors, spec, target, isKeyframes) {\n let local = [], isAt = /^@(\\w+)\\b/.exec(selectors[0]), keyframes = isAt && isAt[1] == \"keyframes\"\n if (isAt && spec == null) return target.push(selectors[0] + \";\")\n for (let prop in spec) {\n let value = spec[prop]\n if (/&/.test(prop)) {\n render(prop.split(/,\\s*/).map(part => selectors.map(sel => part.replace(/&/, sel))).reduce((a, b) => a.concat(b)),\n value, target)\n } else if (value && typeof value == \"object\") {\n if (!isAt) throw new RangeError(\"The value of a property (\" + prop + \") should be a primitive value.\")\n render(splitSelector(prop), value, local, keyframes)\n } else if (value != null) {\n local.push(prop.replace(/_.*/, \"\").replace(/[A-Z]/g, l => \"-\" + l.toLowerCase()) + \": \" + value + \";\")\n }\n }\n if (local.length || keyframes) {\n target.push((finish && !isAt && !isKeyframes ? selectors.map(finish) : selectors).join(\", \") +\n \" {\" + local.join(\" \") + \"}\")\n }\n }\n\n for (let prop in spec) render(splitSelector(prop), spec[prop], this.rules)\n }\n\n // :: () → string\n // Returns a string containing the module's CSS rules.\n getRules() { return this.rules.join(\"\\n\") }\n\n // :: () → string\n // Generate a new unique CSS class name.\n static newName() {\n let id = top[COUNT] || 1\n top[COUNT] = id + 1\n return C + id.toString(36)\n }\n\n // :: (union<Document, ShadowRoot>, union<[StyleModule], StyleModule>, ?{nonce: ?string})\n //\n // Mount the given set of modules in the given DOM root, which ensures\n // that the CSS rules defined by the module are available in that\n // context.\n //\n // Rules are only added to the document once per root.\n //\n // Rule order will follow the order of the modules, so that rules from\n // modules later in the array take precedence of those from earlier\n // modules. If you call this function multiple times for the same root\n // in a way that changes the order of already mounted modules, the old\n // order will be changed.\n //\n // If a Content Security Policy nonce is provided, it is added to\n // the `<style>` tag generated by the library.\n static mount(root, modules, options) {\n let set = root[SET], nonce = options && options.nonce\n if (!set) set = new StyleSet(root, nonce)\n else if (nonce) set.setNonce(nonce)\n set.mount(Array.isArray(modules) ? modules : [modules], root)\n }\n}\n\nlet adoptedSet = new Map //<Document, StyleSet>\n\nclass StyleSet {\n constructor(root, nonce) {\n let doc = root.ownerDocument || root, win = doc.defaultView\n if (!root.head && root.adoptedStyleSheets && win.CSSStyleSheet) {\n let adopted = adoptedSet.get(doc)\n if (adopted) return root[SET] = adopted\n this.sheet = new win.CSSStyleSheet\n adoptedSet.set(doc, this)\n } else {\n this.styleTag = doc.createElement(\"style\")\n if (nonce) this.styleTag.setAttribute(\"nonce\", nonce)\n }\n this.modules = []\n root[SET] = this\n }\n\n mount(modules, root) {\n let sheet = this.sheet\n let pos = 0 /* Current rule offset */, j = 0 /* Index into this.modules */\n for (let i = 0; i < modules.length; i++) {\n let mod = modules[i], index = this.modules.indexOf(mod)\n if (index < j && index > -1) { // Ordering conflict\n this.modules.splice(index, 1)\n j--\n index = -1\n }\n if (index == -1) {\n this.modules.splice(j++, 0, mod)\n if (sheet) for (let k = 0; k < mod.rules.length; k++)\n sheet.insertRule(mod.rules[k], pos++)\n } else {\n while (j < index) pos += this.modules[j++].rules.length\n pos += mod.rules.length\n j++\n }\n }\n\n if (sheet) {\n if (root.adoptedStyleSheets.indexOf(this.sheet) < 0)\n root.adoptedStyleSheets = [this.sheet, ...root.adoptedStyleSheets]\n } else {\n let text = \"\"\n for (let i = 0; i < this.modules.length; i++)\n text += this.modules[i].getRules() + \"\\n\"\n this.styleTag.textContent = text\n let target = root.head || root\n if (this.styleTag.parentNode != target)\n target.insertBefore(this.styleTag, target.firstChild)\n }\n }\n\n setNonce(nonce) {\n if (this.styleTag && this.styleTag.getAttribute(\"nonce\") != nonce)\n this.styleTag.setAttribute(\"nonce\", nonce)\n }\n}\n\n// Style::Object<union<Style,string>>\n//\n// A style is an object that, in the simple case, maps CSS property\n// names to strings holding their values, as in `{color: \"red\",\n// fontWeight: \"bold\"}`. The property names can be given in\n// camel-case—the library will insert a dash before capital letters\n// when converting them to CSS.\n//\n// If you include an underscore in a property name, it and everything\n// after it will be removed from the output, which can be useful when\n// providing a property multiple times, for browser compatibility\n// reasons.\n//\n// A property in a style object can also be a sub-selector, which\n// extends the current context to add a pseudo-selector or a child\n// selector. Such a property should contain a `&` character, which\n// will be replaced by the current selector. For example `{\"&:before\":\n// {content: '\"hi\"'}}`. Sub-selectors and regular properties can\n// freely be mixed in a given object. Any property containing a `&` is\n// assumed to be a sub-selector.\n//\n// Finally, a property can specify an @-block to be wrapped around the\n// styles defined inside the object that's the property's value. For\n// example to create a media query you can do `{\"@media screen and\n// (min-width: 400px)\": {...}}`.\n","export var base = {\n 8: \"Backspace\",\n 9: \"Tab\",\n 10: \"Enter\",\n 12: \"NumLock\",\n 13: \"Enter\",\n 16: \"Shift\",\n 17: \"Control\",\n 18: \"Alt\",\n 20: \"CapsLock\",\n 27: \"Escape\",\n 32: \" \",\n 33: \"PageUp\",\n 34: \"PageDown\",\n 35: \"End\",\n 36: \"Home\",\n 37: \"ArrowLeft\",\n 38: \"ArrowUp\",\n 39: \"ArrowRight\",\n 40: \"ArrowDown\",\n 44: \"PrintScreen\",\n 45: \"Insert\",\n 46: \"Delete\",\n 59: \";\",\n 61: \"=\",\n 91: \"Meta\",\n 92: \"Meta\",\n 106: \"*\",\n 107: \"+\",\n 108: \",\",\n 109: \"-\",\n 110: \".\",\n 111: \"/\",\n 144: \"NumLock\",\n 145: \"ScrollLock\",\n 160: \"Shift\",\n 161: \"Shift\",\n 162: \"Control\",\n 163: \"Control\",\n 164: \"Alt\",\n 165: \"Alt\",\n 173: \"-\",\n 186: \";\",\n 187: \"=\",\n 188: \",\",\n 189: \"-\",\n 190: \".\",\n 191: \"/\",\n 192: \"`\",\n 219: \"[\",\n 220: \"\\\\\",\n 221: \"]\",\n 222: \"'\"\n}\n\nexport var shift = {\n 48: \")\",\n 49: \"!\",\n 50: \"@\",\n 51: \"#\",\n 52: \"$\",\n 53: \"%\",\n 54: \"^\",\n 55: \"&\",\n 56: \"*\",\n 57: \"(\",\n 59: \":\",\n 61: \"+\",\n 173: \"_\",\n 186: \":\",\n 187: \"+\",\n 188: \"<\",\n 189: \"_\",\n 190: \">\",\n 191: \"?\",\n 192: \"~\",\n 219: \"{\",\n 220: \"|\",\n 221: \"}\",\n 222: \"\\\"\"\n}\n\nvar mac = typeof navigator != \"undefined\" && /Mac/.test(navigator.platform)\nvar ie = typeof navigator != \"undefined\" && /MSIE \\d|Trident\\/(?:[7-9]|\\d{2,})\\..*rv:(\\d+)/.exec(navigator.userAgent)\n\n// Fill in the digit keys\nfor (var i = 0; i < 10; i++) base[48 + i] = base[96 + i] = String(i)\n\n// The function keys\nfor (var i = 1; i <= 24; i++) base[i + 111] = \"F\" + i\n\n// And the alphabetic keys\nfor (var i = 65; i <= 90; i++) {\n base[i] = String.fromCharCode(i + 32)\n shift[i] = String.fromCharCode(i)\n}\n\n// For each code that doesn't have a shift-equivalent, copy the base name\nfor (var code in base) if (!shift.hasOwnProperty(code)) shift[code] = base[code]\n\nexport function keyName(event) {\n // On macOS, keys held with Shift and Cmd don't reflect the effect of Shift in `.key`.\n // On IE, shift effect is never included in `.key`.\n var ignoreKey = mac && event.metaKey && event.shiftKey && !event.ctrlKey && !event.altKey ||\n ie && event.shiftKey && event.key && event.key.length == 1 ||\n event.key == \"Unidentified\"\n var name = (!ignoreKey && event.key) ||\n (event.shiftKey ? shift : base)[event.keyCode] ||\n event.key || \"Unidentified\"\n // Edge sometimes produces wrong names (Issue #3)\n if (name == \"Esc\") name = \"Escape\"\n if (name == \"Del\") name = \"Delete\"\n // https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/8860571/\n if (name == \"Left\") name = \"ArrowLeft\"\n if (name == \"Up\") name = \"ArrowUp\"\n if (name == \"Right\") name = \"ArrowRight\"\n if (name == \"Down\") name = \"ArrowDown\"\n return name\n}\n","import { Text, RangeSet, MapMode, RangeValue, findClusterBreak, EditorSelection, Facet, StateEffect, ChangeSet, findColumn, CharCategory, Annotation, EditorState, Transaction, Prec, codePointAt, codePointSize, combineConfig, StateField, RangeSetBuilder, countColumn } from '@codemirror/state';\nimport { StyleModule } from 'style-mod';\nimport { keyName, base, shift } from 'w3c-keyname';\n\nfunction getSelection(root) {\n let target;\n // Browsers differ on whether shadow roots have a getSelection\n // method. If it exists, use that, otherwise, call it on the\n // document.\n if (root.nodeType == 11) { // Shadow root\n target = root.getSelection ? root : root.ownerDocument;\n }\n else {\n target = root;\n }\n return target.getSelection();\n}\nfunction contains(dom, node) {\n return node ? dom == node || dom.contains(node.nodeType != 1 ? node.parentNode : node) : false;\n}\nfunction deepActiveElement(doc) {\n let elt = doc.activeElement;\n while (elt && elt.shadowRoot)\n elt = elt.shadowRoot.activeElement;\n return elt;\n}\nfunction hasSelection(dom, selection) {\n if (!selection.anchorNode)\n return false;\n try {\n // Firefox will raise 'permission denied' errors when accessing\n // properties of `sel.anchorNode` when it's in a generated CSS\n // element.\n return contains(dom, selection.anchorNode);\n }\n catch (_) {\n return false;\n }\n}\nfunction clientRectsFor(dom) {\n if (dom.nodeType == 3)\n return textRange(dom, 0, dom.nodeValue.length).getClientRects();\n else if (dom.nodeType == 1)\n return dom.getClientRects();\n else\n return [];\n}\n// Scans forward and backward through DOM positions equivalent to the\n// given one to see if the two are in the same place (i.e. after a\n// text node vs at the end of that text node)\nfunction isEquivalentPosition(node, off, targetNode, targetOff) {\n return targetNode ? (scanFor(node, off, targetNode, targetOff, -1) ||\n scanFor(node, off, targetNode, targetOff, 1)) : false;\n}\nfunction domIndex(node) {\n for (var index = 0;; index++) {\n node = node.previousSibling;\n if (!node)\n return index;\n }\n}\nfunction isBlockElement(node) {\n return node.nodeType == 1 && /^(DIV|P|LI|UL|OL|BLOCKQUOTE|DD|DT|H\\d|SECTION|PRE)$/.test(node.nodeName);\n}\nfunction scanFor(node, off, targetNode, targetOff, dir) {\n for (;;) {\n if (node == targetNode && off == targetOff)\n return true;\n if (off == (dir < 0 ? 0 : maxOffset(node))) {\n if (node.nodeName == \"DIV\")\n return false;\n let parent = node.parentNode;\n if (!parent || parent.nodeType != 1)\n return false;\n off = domIndex(node) + (dir < 0 ? 0 : 1);\n node = parent;\n }\n else if (node.nodeType == 1) {\n node = node.childNodes[off + (dir < 0 ? -1 : 0)];\n if (node.nodeType == 1 && node.contentEditable == \"false\")\n return false;\n off = dir < 0 ? maxOffset(node) : 0;\n }\n else {\n return false;\n }\n }\n}\nfunction maxOffset(node) {\n return node.nodeType == 3 ? node.nodeValue.length : node.childNodes.length;\n}\nfunction flattenRect(rect, left) {\n let x = left ? rect.left : rect.right;\n return { left: x, right: x, top: rect.top, bottom: rect.bottom };\n}\nfunction windowRect(win) {\n let vp = win.visualViewport;\n if (vp)\n return {\n left: 0, right: vp.width,\n top: 0, bottom: vp.height\n };\n return { left: 0, right: win.innerWidth,\n top: 0, bottom: win.innerHeight };\n}\nfunction getScale(elt, rect) {\n let scaleX = rect.width / elt.offsetWidth;\n let scaleY = rect.height / elt.offsetHeight;\n if (scaleX > 0.995 && scaleX < 1.005 || !isFinite(scaleX) || Math.abs(rect.width - elt.offsetWidth) < 1)\n scaleX = 1;\n if (scaleY > 0.995 && scaleY < 1.005 || !isFinite(scaleY) || Math.abs(rect.height - elt.offsetHeight) < 1)\n scaleY = 1;\n return { scaleX, scaleY };\n}\nfunction scrollRectIntoView(dom, rect, side, x, y, xMargin, yMargin, ltr) {\n let doc = dom.ownerDocument, win = doc.defaultView || window;\n for (let cur = dom, stop = false; cur && !stop;) {\n if (cur.nodeType == 1) { // Element\n let bounding, top = cur == doc.body;\n let scaleX = 1, scaleY = 1;\n if (top) {\n bounding = windowRect(win);\n }\n else {\n if (/^(fixed|sticky)$/.test(getComputedStyle(cur).position))\n stop = true;\n if (cur.scrollHeight <= cur.clientHeight && cur.scrollWidth <= cur.clientWidth) {\n cur = cur.assignedSlot || cur.parentNode;\n continue;\n }\n let rect = cur.getBoundingClientRect();\n ({ scaleX, scaleY } = getScale(cur, rect));\n // Make sure scrollbar width isn't included in the rectangle\n bounding = { left: rect.left, right: rect.left + cur.clientWidth * scaleX,\n top: rect.top, bottom: rect.top + cur.clientHeight * scaleY };\n }\n let moveX = 0, moveY = 0;\n if (y == \"nearest\") {\n if (rect.top < bounding.top) {\n moveY = -(bounding.top - rect.top + yMargin);\n if (side > 0 && rect.bottom > bounding.bottom + moveY)\n moveY = rect.bottom - bounding.bottom + moveY + yMargin;\n }\n else if (rect.bottom > bounding.bottom) {\n moveY = rect.bottom - bounding.bottom + yMargin;\n if (side < 0 && (rect.top - moveY) < bounding.top)\n moveY = -(bounding.top + moveY - rect.top + yMargin);\n }\n }\n else {\n let rectHeight = rect.bottom - rect.top, boundingHeight = bounding.bottom - bounding.top;\n let targetTop = y == \"center\" && rectHeight <= boundingHeight ? rect.top + rectHeight / 2 - boundingHeight / 2 :\n y == \"start\" || y == \"center\" && side < 0 ? rect.top - yMargin :\n rect.bottom - boundingHeight + yMargin;\n moveY = targetTop - bounding.top;\n }\n if (x == \"nearest\") {\n if (rect.left < bounding.left) {\n moveX = -(bounding.left - rect.left + xMargin);\n if (side > 0 && rect.right > bounding.right + moveX)\n moveX = rect.right - bounding.right + moveX + xMargin;\n }\n else if (rect.right > bounding.right) {\n moveX = rect.right - bounding.right + xMargin;\n if (side < 0 && rect.left < bounding.left + moveX)\n moveX = -(bounding.left + moveX - rect.left + xMargin);\n }\n }\n else {\n let targetLeft = x == \"center\" ? rect.left + (rect.right - rect.left) / 2 - (bounding.right - bounding.left) / 2 :\n (x == \"start\") == ltr ? rect.left - xMargin :\n rect.right - (bounding.right - bounding.left) + xMargin;\n moveX = targetLeft - bounding.left;\n }\n if (moveX || moveY) {\n if (top) {\n win.scrollBy(moveX, moveY);\n }\n else {\n let movedX = 0, movedY = 0;\n if (moveY) {\n let start = cur.scrollTop;\n cur.scrollTop += moveY / scaleY;\n movedY = (cur.scrollTop - start) * scaleY;\n }\n if (moveX) {\n let start = cur.scrollLeft;\n cur.scrollLeft += moveX / scaleX;\n movedX = (cur.scrollLeft - start) * scaleX;\n }\n rect = { left: rect.left - movedX, top: rect.top - movedY,\n right: rect.right - movedX, bottom: rect.bottom - movedY };\n if (movedX && Math.abs(movedX - moveX) < 1)\n x = \"nearest\";\n if (movedY && Math.abs(movedY - moveY) < 1)\n y = \"nearest\";\n }\n }\n if (top)\n break;\n cur = cur.assignedSlot || cur.parentNode;\n }\n else if (cur.nodeType == 11) { // A shadow root\n cur = cur.host;\n }\n else {\n break;\n }\n }\n}\nfunction scrollableParents(dom) {\n let doc = dom.ownerDocument, x, y;\n for (let cur = dom.parentNode; cur;) {\n if (cur == doc.body || (x && y)) {\n break;\n }\n else if (cur.nodeType == 1) {\n if (!y && cur.scrollHeight > cur.clientHeight)\n y = cur;\n if (!x && cur.scrollWidth > cur.clientWidth)\n x = cur;\n cur = cur.assignedSlot || cur.parentNode;\n }\n else if (cur.nodeType == 11) {\n cur = cur.host;\n }\n else {\n break;\n }\n }\n return { x, y };\n}\nclass DOMSelectionState {\n constructor() {\n this.anchorNode = null;\n this.anchorOffset = 0;\n this.focusNode = null;\n this.focusOffset = 0;\n }\n eq(domSel) {\n return this.anchorNode == domSel.anchorNode && this.anchorOffset == domSel.anchorOffset &&\n this.focusNode == domSel.focusNode && this.focusOffset == domSel.focusOffset;\n }\n setRange(range) {\n let { anchorNode, focusNode } = range;\n // Clip offsets to node size to avoid crashes when Safari reports bogus offsets (#1152)\n this.set(anchorNode, Math.min(range.anchorOffset, anchorNode ? maxOffset(anchorNode) : 0), focusNode, Math.min(range.focusOffset, focusNode ? maxOffset(focusNode) : 0));\n }\n set(anchorNode, anchorOffset, focusNode, focusOffset) {\n this.anchorNode = anchorNode;\n this.anchorOffset = anchorOffset;\n this.focusNode = focusNode;\n this.focusOffset = focusOffset;\n }\n}\nlet preventScrollSupported = null;\n// Feature-detects support for .focus({preventScroll: true}), and uses\n// a fallback kludge when not supported.\nfunction focusPreventScroll(dom) {\n if (dom.setActive)\n return dom.setActive(); // in IE\n if (preventScrollSupported)\n return dom.focus(preventScrollSupported);\n let stack = [];\n for (let cur = dom; cur; cur = cur.parentNode) {\n stack.push(cur, cur.scrollTop, cur.scrollLeft);\n if (cur == cur.ownerDocument)\n break;\n }\n dom.focus(preventScrollSupported == null ? {\n get preventScroll() {\n preventScrollSupported = { preventScroll: true };\n return true;\n }\n } : undefined);\n if (!preventScrollSupported) {\n preventScrollSupported = false;\n for (let i = 0; i < stack.length;) {\n let elt = stack[i++], top = stack[i++], left = stack[i++];\n if (elt.scrollTop != top)\n elt.scrollTop = top;\n if (elt.scrollLeft != left)\n elt.scrollLeft = left;\n }\n }\n}\nlet scratchRange;\nfunction textRange(node, from, to = from) {\n let range = scratchRange || (scratchRange = document.createRange());\n range.setEnd(node, to);\n range.setStart(node, from);\n return range;\n}\nfunction dispatchKey(elt, name, code, mods) {\n let options = { key: name, code: name, keyCode: code, which: code, cancelable: true };\n if (mods)\n ({ altKey: options.altKey, ctrlKey: options.ctrlKey, shiftKey: options.shiftKey, metaKey: options.metaKey } = mods);\n let down = new KeyboardEvent(\"keydown\", options);\n down.synthetic = true;\n elt.dispatchEvent(down);\n let up = new KeyboardEvent(\"keyup\", options);\n up.synthetic = true;\n elt.dispatchEvent(up);\n return down.defaultPrevented || up.defaultPrevented;\n}\nfunction getRoot(node) {\n while (node) {\n if (node && (node.nodeType == 9 || node.nodeType == 11 && node.host))\n return node;\n node = node.assignedSlot || node.parentNode;\n }\n return null;\n}\nfunction clearAttributes(node) {\n while (node.attributes.length)\n node.removeAttributeNode(node.attributes[0]);\n}\nfunction atElementStart(doc, selection) {\n let node = selection.focusNode, offset = selection.focusOffset;\n if (!node || selection.anchorNode != node || selection.anchorOffset != offset)\n return false;\n // Safari can report bogus offsets (#1152)\n offset = Math.min(offset, maxOffset(node));\n for (;;) {\n if (offset) {\n if (node.nodeType != 1)\n return false;\n let prev = node.childNodes[offset - 1];\n if (prev.contentEditable == \"false\")\n offset--;\n else {\n node = prev;\n offset = maxOffset(node);\n }\n }\n else if (node == doc) {\n return true;\n }\n else {\n offset = domIndex(node);\n node = node.parentNode;\n }\n }\n}\nfunction isScrolledToBottom(elt) {\n return elt.scrollTop > Math.max(1, elt.scrollHeight - elt.clientHeight - 4);\n}\nfunction textNodeBefore(startNode, startOffset) {\n for (let node = startNode, offset = startOffset;;) {\n if (node.nodeType == 3 && offset > 0) {\n return { node: node, offset: offset };\n }\n else if (node.nodeType == 1 && offset > 0) {\n if (node.contentEditable == \"false\")\n return null;\n node = node.childNodes[offset - 1];\n offset = maxOffset(node);\n }\n else if (node.parentNode && !isBlockElement(node)) {\n offset = domIndex(node);\n node = node.parentNode;\n }\n else {\n return null;\n }\n }\n}\nfunction textNodeAfter(startNode, startOffset) {\n for (let node = startNode, offset = startOffset;;) {\n if (node.nodeType == 3 && offset < node.nodeValue.length) {\n return { node: node, offset: offset };\n }\n else if (node.nodeType == 1 && offset < node.childNodes.length) {\n if (node.contentEditable == \"false\")\n return null;\n node = node.childNodes[offset];\n offset = 0;\n }\n else if (node.parentNode && !isBlockElement(node)) {\n offset = domIndex(node) + 1;\n node = node.parentNode;\n }\n else {\n return null;\n }\n }\n}\n\nclass DOMPos {\n constructor(node, offset, precise = true) {\n this.node = node;\n this.offset = offset;\n this.precise = precise;\n }\n static before(dom, precise) { return new DOMPos(dom.parentNode, domIndex(dom), precise); }\n static after(dom, precise) { return new DOMPos(dom.parentNode, domIndex(dom) + 1, precise); }\n}\nconst noChildren = [];\nclass ContentView {\n constructor() {\n this.parent = null;\n this.dom = null;\n this.flags = 2 /* ViewFlag.NodeDirty */;\n }\n get overrideDOMText() { return null; }\n get posAtStart() {\n return this.parent ? this.parent.posBefore(this) : 0;\n }\n get posAtEnd() {\n return this.posAtStart + this.length;\n }\n posBefore(view) {\n let pos = this.posAtStart;\n for (let child of this.children) {\n if (child == view)\n return pos;\n pos += child.length + child.breakAfter;\n }\n throw new RangeError(\"Invalid child in posBefore\");\n }\n posAfter(view) {\n return this.posBefore(view) + view.length;\n }\n sync(view, track) {\n if (this.flags & 2 /* ViewFlag.NodeDirty */) {\n let parent = this.dom;\n let prev = null, next;\n for (let child of this.children) {\n if (child.flags & 7 /* ViewFlag.Dirty */) {\n if (!child.dom && (next = prev ? prev.nextSibling : parent.firstChild)) {\n let contentView = ContentView.get(next);\n if (!contentView || !contentView.parent && contentView.canReuseDOM(child))\n child.reuseDOM(next);\n }\n child.sync(view, track);\n child.flags &= ~7 /* ViewFlag.Dirty */;\n }\n next = prev ? prev.nextSibling : parent.firstChild;\n if (track && !track.written && track.node == parent && next != child.dom)\n track.written = true;\n if (child.dom.parentNode == parent) {\n while (next && next != child.dom)\n next = rm$1(next);\n }\n else {\n parent.insertBefore(child.dom, next);\n }\n prev = child.dom;\n }\n next = prev ? prev.nextSibling : parent.firstChild;\n if (next && track && track.node == parent)\n track.written = true;\n while (next)\n next = rm$1(next);\n }\n else if (this.flags & 1 /* ViewFlag.ChildDirty */) {\n for (let child of this.children)\n if (child.flags & 7 /* ViewFlag.Dirty */) {\n child.sync(view, track);\n child.flags &= ~7 /* ViewFlag.Dirty */;\n }\n }\n }\n reuseDOM(_dom) { }\n localPosFromDOM(node, offset) {\n let after;\n if (node == this.dom) {\n after = this.dom.childNodes[offset];\n }\n else {\n let bias = maxOffset(node) == 0 ? 0 : offset == 0 ? -1 : 1;\n for (;;) {\n let parent = node.parentNode;\n if (parent == this.dom)\n break;\n if (bias == 0 && parent.firstChild != parent.lastChild) {\n if (node == parent.firstChild)\n bias = -1;\n else\n bias = 1;\n }\n node = parent;\n }\n if (bias < 0)\n after = node;\n else\n after = node.nextSibling;\n }\n if (after == this.dom.firstChild)\n return 0;\n while (after && !ContentView.get(after))\n after = after.nextSibling;\n if (!after)\n return this.length;\n for (let i = 0, pos = 0;; i++) {\n let child = this.children[i];\n if (child.dom == after)\n return pos;\n pos += child.length + child.breakAfter;\n }\n }\n domBoundsAround(from, to, offset = 0) {\n let fromI = -1, fromStart = -1, toI = -1, toEnd = -1;\n for (let i = 0, pos = offset, prevEnd = offset; i < this.children.length; i++) {\n let child = this.children[i], end = pos + child.length;\n if (pos < from && end > to)\n return child.domBoundsAround(from, to, pos);\n if (end >= from && fromI == -1) {\n fromI = i;\n fromStart = pos;\n }\n if (pos > to && child.dom.parentNode == this.dom) {\n toI = i;\n toEnd = prevEnd;\n break;\n }\n prevEnd = end;\n pos = end + child.breakAfter;\n }\n return { from: fromStart, to: toEnd < 0 ? offset + this.length : toEnd,\n startDOM: (fromI ? this.children[fromI - 1].dom.nextSibling : null) || this.dom.firstChild,\n endDOM: toI < this.children.length && toI >= 0 ? this.children[toI].dom : null };\n }\n markDirty(andParent = false) {\n this.flags |= 2 /* ViewFlag.NodeDirty */;\n this.markParentsDirty(andParent);\n }\n markParentsDirty(childList) {\n for (let parent = this.parent; parent; parent = parent.parent) {\n if (childList)\n parent.flags |= 2 /* ViewFlag.NodeDirty */;\n if (parent.flags & 1 /* ViewFlag.ChildDirty */)\n return;\n parent.flags |= 1 /* ViewFlag.ChildDirty */;\n childList = false;\n }\n }\n setParent(parent) {\n if (this.parent != parent) {\n this.parent = parent;\n if (this.flags & 7 /* ViewFlag.Dirty */)\n this.markParentsDirty(true);\n }\n }\n setDOM(dom) {\n if (this.dom == dom)\n return;\n if (this.dom)\n this.dom.cmView = null;\n this.dom = dom;\n dom.cmView = this;\n }\n get rootView() {\n for (let v = this;;) {\n let parent = v.parent;\n if (!parent)\n return v;\n v = parent;\n }\n }\n replaceChildren(from, to, children = noChildren) {\n this.markDirty();\n for (let i = from; i < to; i++) {\n let child = this.children[i];\n if (child.parent == this && children.indexOf(child) < 0)\n child.destroy();\n }\n this.children.splice(from, to - from, ...children);\n for (let i = 0; i < children.length; i++)\n children[i].setParent(this);\n }\n ignoreMutation(_rec) { return false; }\n ignoreEvent(_event) { return false; }\n childCursor(pos = this.length) {\n return new ChildCursor(this.children, pos, this.children.length);\n }\n childPos(pos, bias = 1) {\n return this.childCursor().findPos(pos, bias);\n }\n toString() {\n let name = this.constructor.name.replace(\"View\", \"\");\n return name + (this.children.length ? \"(\" + this.children.join() + \")\" :\n this.length ? \"[\" + (name == \"Text\" ? this.text : this.length) + \"]\" : \"\") +\n (this.breakAfter ? \"#\" : \"\");\n }\n static get(node) { return node.cmView; }\n get isEditable() { return true; }\n get isWidget() { return false; }\n get isHidden() { return false; }\n merge(from, to, source, hasStart, openStart, openEnd) {\n return false;\n }\n become(other) { return false; }\n canReuseDOM(other) {\n return other.constructor == this.constructor && !((this.flags | other.flags) & 8 /* ViewFlag.Composition */);\n }\n // When this is a zero-length view with a side, this should return a\n // number <= 0 to indicate it is before its position, or a\n // number > 0 when after its position.\n getSide() { return 0; }\n destroy() {\n for (let child of this.children)\n if (child.parent == this)\n child.destroy();\n this.parent = null;\n }\n}\nContentView.prototype.breakAfter = 0;\n// Remove a DOM node and return its next sibling.\nfunction rm$1(dom) {\n let next = dom.nextSibling;\n dom.parentNode.removeChild(dom);\n return next;\n}\nclass ChildCursor {\n constructor(children, pos, i) {\n this.children = children;\n this.pos = pos;\n this.i = i;\n this.off = 0;\n }\n findPos(pos, bias = 1) {\n for (;;) {\n if (pos > this.pos || pos == this.pos &&\n (bias > 0 || this.i == 0 || this.children[this.i - 1].breakAfter)) {\n this.off = pos - this.pos;\n return this;\n }\n let next = this.children[--this.i];\n this.pos -= next.length + next.breakAfter;\n }\n }\n}\nfunction replaceRange(parent, fromI, fromOff, toI, toOff, insert, breakAtStart, openStart, openEnd) {\n let { children } = parent;\n let before = children.length ? children[fromI] : null;\n let last = insert.length ? insert[insert.length - 1] : null;\n let breakAtEnd = last ? last.breakAfter : breakAtStart;\n // Change within a single child\n if (fromI == toI && before && !breakAtStart && !breakAtEnd && insert.length < 2 &&\n before.merge(fromOff, toOff, insert.length ? last : null, fromOff == 0, openStart, openEnd))\n return;\n if (toI < children.length) {\n let after = children[toI];\n // Make sure the end of the child after the update is preserved in `after`\n if (after && (toOff < after.length || after.breakAfter && (last === null || last === void 0 ? void 0 : last.breakAfter))) {\n // If we're splitting a child, separate part of it to avoid that\n // being mangled when updating the child before the update.\n if (fromI == toI) {\n after = after.split(toOff);\n toOff = 0;\n }\n // If the element after the replacement should be merged with\n // the last replacing element, update `content`\n if (!breakAtEnd && last && after.merge(0, toOff, last, true, 0, openEnd)) {\n insert[insert.length - 1] = after;\n }\n else {\n // Remove the start of the after element, if necessary, and\n // add it to `content`.\n if (toOff || after.children.length && !after.children[0].length)\n after.merge(0, toOff, null, false, 0, openEnd);\n insert.push(after);\n }\n }\n else if (after === null || after === void 0 ? void 0 : after.breakAfter) {\n // The element at `toI` is entirely covered by this range.\n // Preserve its line break, if any.\n if (last)\n last.breakAfter = 1;\n else\n breakAtStart = 1;\n }\n // Since we've handled the next element from the current elements\n // now, make sure `toI` points after that.\n toI++;\n }\n if (before) {\n before.breakAfter = breakAtStart;\n if (fromOff > 0) {\n if (!breakAtStart && insert.length && before.merge(fromOff, before.length, insert[0], false, openStart, 0)) {\n before.breakAfter = insert.shift().breakAfter;\n }\n else if (fromOff < before.length || before.children.length && before.children[before.children.length - 1].length == 0) {\n before.merge(fromOff, before.length, null, false, openStart, 0);\n }\n fromI++;\n }\n }\n // Try to merge widgets on the boundaries of the replacement\n while (fromI < toI && insert.length) {\n if (children[toI - 1].become(insert[insert.length - 1])) {\n toI--;\n insert.pop();\n openEnd = insert.length ? 0 : openStart;\n }\n else if (children[fromI].become(insert[0])) {\n fromI++;\n insert.shift();\n openStart = insert.length ? 0 : openEnd;\n }\n else {\n break;\n }\n }\n if (!insert.length && fromI && toI < children.length && !children[fromI - 1].breakAfter &&\n children[toI].merge(0, 0, children[fromI - 1], false, openStart, openEnd))\n fromI--;\n if (fromI < toI || insert.length)\n parent.replaceChildren(fromI, toI, insert);\n}\nfunction mergeChildrenInto(parent, from, to, insert, openStart, openEnd) {\n let cur = parent.childCursor();\n let { i: toI, off: toOff } = cur.findPos(to, 1);\n let { i: fromI, off: fromOff } = cur.findPos(from, -1);\n let dLen = from - to;\n for (let view of insert)\n dLen += view.length;\n parent.length += dLen;\n replaceRange(parent, fromI, fromOff, toI, toOff, insert, 0, openStart, openEnd);\n}\n\nlet nav = typeof navigator != \"undefined\" ? navigator : { userAgent: \"\", vendor: \"\", platform: \"\" };\nlet doc = typeof document != \"undefined\" ? document : { documentElement: { style: {} } };\nconst ie_edge = /*@__PURE__*//Edge\\/(\\d+)/.exec(nav.userAgent);\nconst ie_upto10 = /*@__PURE__*//MSIE \\d/.test(nav.userAgent);\nconst ie_11up = /*@__PURE__*//Trident\\/(?:[7-9]|\\d{2,})\\..*rv:(\\d+)/.exec(nav.userAgent);\nconst ie = !!(ie_upto10 || ie_11up || ie_edge);\nconst gecko = !ie && /*@__PURE__*//gecko\\/(\\d+)/i.test(nav.userAgent);\nconst chrome = !ie && /*@__PURE__*//Chrome\\/(\\d+)/.exec(nav.userAgent);\nconst webkit = \"webkitFontSmoothing\" in doc.documentElement.style;\nconst safari = !ie && /*@__PURE__*//Apple Computer/.test(nav.vendor);\nconst ios = safari && (/*@__PURE__*//Mobile\\/\\w+/.test(nav.userAgent) || nav.maxTouchPoints > 2);\nvar browser = {\n mac: ios || /*@__PURE__*//Mac/.test(nav.platform),\n windows: /*@__PURE__*//Win/.test(nav.platform),\n linux: /*@__PURE__*//Linux|X11/.test(nav.platform),\n ie,\n ie_version: ie_upto10 ? doc.documentMode || 6 : ie_11up ? +ie_11up[1] : ie_edge ? +ie_edge[1] : 0,\n gecko,\n gecko_version: gecko ? +(/*@__PURE__*//Firefox\\/(\\d+)/.exec(nav.userAgent) || [0, 0])[1] : 0,\n chrome: !!chrome,\n chrome_version: chrome ? +chrome[1] : 0,\n ios,\n android: /*@__PURE__*//Android\\b/.test(nav.userAgent),\n webkit,\n safari,\n webkit_version: webkit ? +(/*@__PURE__*//\\bAppleWebKit\\/(\\d+)/.exec(nav.userAgent) || [0, 0])[1] : 0,\n tabSize: doc.documentElement.style.tabSize != null ? \"tab-size\" : \"-moz-tab-size\"\n};\n\nconst MaxJoinLen = 256;\nclass TextView extends ContentView {\n constructor(text) {\n super();\n this.text = text;\n }\n get length() { return this.text.length; }\n createDOM(textDOM) {\n this.setDOM(textDOM || document.createTextNode(this.text));\n }\n sync(view, track) {\n if (!this.dom)\n this.createDOM();\n if (this.dom.nodeValue != this.text) {\n if (track && track.node == this.dom)\n track.written = true;\n this.dom.nodeValue = this.text;\n }\n }\n reuseDOM(dom) {\n if (dom.nodeType == 3)\n this.createDOM(dom);\n }\n merge(from, to, source) {\n if ((this.flags & 8 /* ViewFlag.Composition */) ||\n source && (!(source instanceof TextView) ||\n this.length - (to - from) + source.length > MaxJoinLen ||\n (source.flags & 8 /* ViewFlag.Composition */)))\n return false;\n this.text = this.text.slice(0, from) + (source ? source.text : \"\") + this.text.slice(to);\n this.markDirty();\n return true;\n }\n split(from) {\n let result = new TextView(this.text.slice(from));\n this.text = this.text.slice(0, from);\n this.markDirty();\n result.flags |= this.flags & 8 /* ViewFlag.Composition */;\n return result;\n }\n localPosFromDOM(node, offset) {\n return node == this.dom ? offset : offset ? this.text.length : 0;\n }\n domAtPos(pos) { return new DOMPos(this.dom, pos); }\n domBoundsAround(_from, _to, offset) {\n return { from: offset, to: offset + this.length, startDOM: this.dom, endDOM: this.dom.nextSibling };\n }\n coordsAt(pos, side) {\n return textCoords(this.dom, pos, side);\n }\n}\nclass MarkView extends ContentView {\n constructor(mark, children = [], length = 0) {\n super();\n this.mark = mark;\n this.children = children;\n this.length = length;\n for (let ch of children)\n ch.setParent(this);\n }\n setAttrs(dom) {\n clearAttributes(dom);\n if (this.mark.class)\n dom.className = this.mark.class;\n if (this.mark.attrs)\n for (let name in this.mark.attrs)\n dom.setAttribute(name, this.mark.attrs[name]);\n return dom;\n }\n canReuseDOM(other) {\n return super.canReuseDOM(other) && !((this.flags | other.flags) & 8 /* ViewFlag.Composition */);\n }\n reuseDOM(node) {\n if (node.nodeName == this.mark.tagName.toUpperCase()) {\n this.setDOM(node);\n this.flags |= 4 /* ViewFlag.AttrsDirty */ | 2 /* ViewFlag.NodeDirty */;\n }\n }\n sync(view, track) {\n if (!this.dom)\n this.setDOM(this.setAttrs(document.createElement(this.mark.tagName)));\n else if (this.flags & 4 /* ViewFlag.AttrsDirty */)\n this.setAttrs(this.dom);\n super.sync(view, track);\n }\n merge(from, to, source, _hasStart, openStart, openEnd) {\n if (source && (!(source instanceof MarkView && source.mark.eq(this.mark)) ||\n (from && openStart <= 0) || (to < this.length && openEnd <= 0)))\n return false;\n mergeChildrenInto(this, from, to, source ? source.children.slice() : [], openStart - 1, openEnd - 1);\n this.markDirty();\n return true;\n }\n split(from) {\n let result = [], off = 0, detachFrom = -1, i = 0;\n for (let elt of this.children) {\n let end = off + elt.length;\n if (end > from)\n result.push(off < from ? elt.split(from - off) : elt);\n if (detachFrom < 0 && off >= from)\n detachFrom = i;\n off = end;\n i++;\n }\n let length = this.length - from;\n this.length = from;\n if (detachFrom > -1) {\n this.children.length = detachFrom;\n this.markDirty();\n }\n return new MarkView(this.mark, result, length);\n }\n domAtPos(pos) {\n return inlineDOMAtPos(this, pos);\n }\n coordsAt(pos, side) {\n return coordsInChildren(this, pos, side);\n }\n}\nfunction textCoords(text, pos, side) {\n let length = text.nodeValue.length;\n if (pos > length)\n pos = length;\n let from = pos, to = pos, flatten = 0;\n if (pos == 0 && side < 0 || pos == length && side >= 0) {\n if (!(browser.chrome || browser.gecko)) { // These browsers reliably return valid rectangles for empty ranges\n if (pos) {\n from--;\n flatten = 1;\n } // FIXME this is wrong in RTL text\n else if (to < length) {\n to++;\n flatten = -1;\n }\n }\n }\n else {\n if (side < 0)\n from--;\n else if (to < length)\n to++;\n }\n let rects = textRange(text, from, to).getClientRects();\n if (!rects.length)\n return null;\n let rect = rects[(flatten ? flatten < 0 : side >= 0) ? 0 : rects.length - 1];\n if (browser.safari && !flatten && rect.width == 0)\n rect = Array.prototype.find.call(rects, r => r.width) || rect;\n return flatten ? flattenRect(rect, flatten < 0) : rect || null;\n}\n// Also used for collapsed ranges that don't have a placeholder widget!\nclass WidgetView extends ContentView {\n static create(widget, length, side) {\n return new WidgetView(widget, length, side);\n }\n constructor(widget, length, side) {\n super();\n this.widget = widget;\n this.length = length;\n this.side = side;\n this.prevWidget = null;\n }\n split(from) {\n let result = WidgetView.create(this.widget, this.length - from, this.side);\n this.length -= from;\n return result;\n }\n sync(view) {\n if (!this.dom || !this.widget.updateDOM(this.dom, view)) {\n if (this.dom && this.prevWidget)\n this.prevWidget.destroy(this.dom);\n this.prevWidget = null;\n this.setDOM(this.widget.toDOM(view));\n if (!this.widget.editable)\n this.dom.contentEditable = \"false\";\n }\n }\n getSide() { return this.side; }\n merge(from, to, source, hasStart, openStart, openEnd) {\n if (source && (!(source instanceof WidgetView) || !this.widget.compare(source.widget) ||\n from > 0 && openStart <= 0 || to < this.length && openEnd <= 0))\n return false;\n this.length = from + (source ? source.length : 0) + (this.length - to);\n return true;\n }\n become(other) {\n if (other instanceof WidgetView && other.side == this.side &&\n this.widget.constructor == other.widget.constructor) {\n if (!this.widget.compare(other.widget))\n this.markDirty(true);\n if (this.dom && !this.prevWidget)\n this.prevWidget = this.widget;\n this.widget = other.widget;\n this.length = other.length;\n return true;\n }\n return false;\n }\n ignoreMutation() { return true; }\n ignoreEvent(event) { return this.widget.ignoreEvent(event); }\n get overrideDOMText() {\n if (this.length == 0)\n return Text.empty;\n let top = this;\n while (top.parent)\n top = top.parent;\n let { view } = top, text = view && view.state.doc, start = this.posAtStart;\n return text ? text.slice(start, start + this.length) : Text.empty;\n }\n domAtPos(pos) {\n return (this.length ? pos == 0 : this.side > 0)\n ? DOMPos.before(this.dom)\n : DOMPos.after(this.dom, pos == this.length);\n }\n domBoundsAround() { return null; }\n coordsAt(pos, side) {\n let custom = this.widget.coordsAt(this.dom, pos, side);\n if (custom)\n return custom;\n let rects = this.dom.getClientRects(), rect = null;\n if (!rects.length)\n return null;\n let fromBack = this.side ? this.side < 0 : pos > 0;\n for (let i = fromBack ? rects.length - 1 : 0;; i += (fromBack ? -1 : 1)) {\n rect = rects[i];\n if (pos > 0 ? i == 0 : i == rects.length - 1 || rect.top < rect.bottom)\n break;\n }\n return flattenRect(rect, !fromBack);\n }\n get isEditable() { return false; }\n get isWidget() { return true; }\n get isHidden() { return this.widget.isHidden; }\n destroy() {\n super.destroy();\n if (this.dom)\n this.widget.destroy(this.dom);\n }\n}\n// These are drawn around uneditable widgets to avoid a number of\n// browser bugs that show up when the cursor is directly next to\n// uneditable inline content.\nclass WidgetBufferView extends ContentView {\n constructor(side) {\n super();\n this.side = side;\n }\n get length() { return 0; }\n merge() { return false; }\n become(other) {\n return other instanceof WidgetBufferView && other.side == this.side;\n }\n split() { return new WidgetBufferView(this.side); }\n sync() {\n if (!this.dom) {\n let dom = document.createElement(\"img\");\n dom.className = \"cm-widgetBuffer\";\n dom.setAttribute(\"aria-hidden\", \"true\");\n this.setDOM(dom);\n }\n }\n getSide() { return this.side; }\n domAtPos(pos) { return this.side > 0 ? DOMPos.before(this.dom) : DOMPos.after(this.dom); }\n localPosFromDOM() { return 0; }\n domBoundsAround() { return null; }\n coordsAt(pos) {\n return this.dom.getBoundingClientRect();\n }\n get overrideDOMText() {\n return Text.empty;\n }\n get isHidden() { return true; }\n}\nTextView.prototype.children = WidgetView.prototype.children = WidgetBufferView.prototype.children = noChildren;\nfunction inlineDOMAtPos(parent, pos) {\n let dom = parent.dom, { children } = parent, i = 0;\n for (let off = 0; i < children.length; i++) {\n let child = children[i], end = off + child.length;\n if (end == off && child.getSide() <= 0)\n continue;\n if (pos > off && pos < end && child.dom.parentNode == dom)\n return child.domAtPos(pos - off);\n if (pos <= off)\n break;\n off = end;\n }\n for (let j = i; j > 0; j--) {\n let prev = children[j - 1];\n if (prev.dom.parentNode == dom)\n return prev.domAtPos(prev.length);\n }\n for (let j = i; j < children.length; j++) {\n let next = children[j];\n if (next.dom.parentNode == dom)\n return next.domAtPos(0);\n }\n return new DOMPos(dom, 0);\n}\n// Assumes `view`, if a mark view, has precisely 1 child.\nfunction joinInlineInto(parent, view, open) {\n let last, { children } = parent;\n if (open > 0 && view instanceof MarkView && children.length &&\n (last = children[children.length - 1]) instanceof MarkView && last.mark.eq(view.mark)) {\n joinInlineInto(last, view.children[0], open - 1);\n }\n else {\n children.push(view);\n view.setParent(parent);\n }\n parent.length += view.length;\n}\nfunction coordsInChildren(view, pos, side) {\n let before = null, beforePos = -1, after = null, afterPos = -1;\n function scan(view, pos) {\n for (let i = 0, off = 0; i < view.children.length && off <= pos; i++) {\n let child = view.children[i], end = off + child.length;\n if (end >= pos) {\n if (child.children.length) {\n scan(child, pos - off);\n }\n else if ((!after || after.isHidden && side > 0) &&\n (end > pos || off == end && child.getSide() > 0)) {\n after = child;\n afterPos = pos - off;\n }\n else if (off < pos || (off == end && child.getSide() < 0) && !child.isHidden) {\n before = child;\n beforePos = pos - off;\n }\n }\n off = end;\n }\n }\n scan(view, pos);\n let target = (side < 0 ? before : after) || before || after;\n if (target)\n return target.coordsAt(Math.max(0, target == before ? beforePos : afterPos), side);\n return fallbackRect(view);\n}\nfunction fallbackRect(view) {\n let last = view.dom.lastChild;\n if (!last)\n return view.dom.getBoundingClientRect();\n let rects = clientRectsFor(last);\n return rects[rects.length - 1] || null;\n}\n\nfunction combineAttrs(source, target) {\n for (let name in source) {\n if (name == \"class\" && target.class)\n target.class += \" \" + source.class;\n else if (name == \"style\" && target.style)\n target.style += \";\" + source.style;\n else\n target[name] = source[name];\n }\n return target;\n}\nconst noAttrs = /*@__PURE__*/Object.create(null);\nfunction attrsEq(a, b, ignore) {\n if (a == b)\n return true;\n if (!a)\n a = noAttrs;\n if (!b)\n b = noAttrs;\n let keysA = Object.keys(a), keysB = Object.keys(b);\n if (keysA.length - (ignore && keysA.indexOf(ignore) > -1 ? 1 : 0) !=\n keysB.length - (ignore && keysB.indexOf(ignore) > -1 ? 1 : 0))\n return false;\n for (let key of keysA) {\n if (key != ignore && (keysB.indexOf(key) == -1 || a[key] !== b[key]))\n return false;\n }\n return true;\n}\nfunction updateAttrs(dom, prev, attrs) {\n let changed = false;\n if (prev)\n for (let name in prev)\n if (!(attrs && name in attrs)) {\n changed = true;\n if (name == \"style\")\n dom.style.cssText = \"\";\n else\n dom.removeAttribute(name);\n }\n if (attrs)\n for (let name in attrs)\n if (!(prev && prev[name] == attrs[name])) {\n changed = true;\n if (name == \"style\")\n dom.style.cssText = attrs[name];\n else\n dom.setAttribute(name, attrs[name]);\n }\n return changed;\n}\nfunction getAttrs(dom) {\n let attrs = Object.create(null);\n for (let i = 0; i < dom.attributes.length; i++) {\n let attr = dom.attributes[i];\n attrs[attr.name] = attr.value;\n }\n return attrs;\n}\n\nclass LineView extends ContentView {\n constructor() {\n super(...arguments);\n this.children = [];\n this.length = 0;\n this.prevAttrs = undefined;\n this.attrs = null;\n this.breakAfter = 0;\n }\n // Consumes source\n merge(from, to, source, hasStart, openStart, openEnd) {\n if (source) {\n if (!(source instanceof LineView))\n return false;\n if (!this.dom)\n source.transferDOM(this); // Reuse source.dom when appropriate\n }\n if (hasStart)\n this.setDeco(source ? source.attrs : null);\n mergeChildrenInto(this, from, to, source ? source.children.slice() : [], openStart, openEnd);\n return true;\n }\n split(at) {\n let end = new LineView;\n end.breakAfter = this.breakAfter;\n if (this.length == 0)\n return end;\n let { i, off } = this.childPos(at);\n if (off) {\n end.append(this.children[i].split(off), 0);\n this.children[i].merge(off, this.children[i].length, null, false, 0, 0);\n i++;\n }\n for (let j = i; j < this.children.length; j++)\n end.append(this.children[j], 0);\n while (i > 0 && this.children[i - 1].length == 0)\n this.children[--i].destroy();\n this.children.length = i;\n this.markDirty();\n this.length = at;\n return end;\n }\n transferDOM(other) {\n if (!this.dom)\n return;\n this.markDirty();\n other.setDOM(this.dom);\n other.prevAttrs = this.prevAttrs === undefined ? this.attrs : this.prevAttrs;\n this.prevAttrs = undefined;\n this.dom = null;\n }\n setDeco(attrs) {\n if (!attrsEq(this.attrs, attrs)) {\n if (this.dom) {\n this.prevAttrs = this.attrs;\n this.markDirty();\n }\n this.attrs = attrs;\n }\n }\n append(child, openStart) {\n joinInlineInto(this, child, openStart);\n }\n // Only called when building a line view in ContentBuilder\n addLineDeco(deco) {\n let attrs = deco.spec.attributes, cls = deco.spec.class;\n if (attrs)\n this.attrs = combineAttrs(attrs, this.attrs || {});\n if (cls)\n this.attrs = combineAttrs({ class: cls }, this.attrs || {});\n }\n domAtPos(pos) {\n return inlineDOMAtPos(this, pos);\n }\n reuseDOM(node) {\n if (node.nodeName == \"DIV\") {\n this.setDOM(node);\n this.flags |= 4 /* ViewFlag.AttrsDirty */ | 2 /* ViewFlag.NodeDirty */;\n }\n }\n sync(view, track) {\n var _a;\n if (!this.dom) {\n this.setDOM(document.createElement(\"div\"));\n this.dom.className = \"cm-line\";\n this.prevAttrs = this.attrs ? null : undefined;\n }\n else if (this.flags & 4 /* ViewFlag.AttrsDirty */) {\n clearAttributes(this.dom);\n this.dom.className = \"cm-line\";\n this.prevAttrs = this.attrs ? null : undefined;\n }\n if (this.prevAttrs !== undefined) {\n updateAttrs(this.dom, this.prevAttrs, this.attrs);\n this.dom.classList.add(\"cm-line\");\n this.prevAttrs = undefined;\n }\n super.sync(view, track);\n let last = this.dom.lastChild;\n while (last && ContentView.get(last) instanceof MarkView)\n last = last.lastChild;\n if (!last || !this.length ||\n last.nodeName != \"BR\" && ((_a = ContentView.get(last)) === null || _a === void 0 ? void 0 : _a.isEditable) == false &&\n (!browser.ios || !this.children.some(ch => ch instanceof TextView))) {\n let hack = document.createElement(\"BR\");\n hack.cmIgnore = true;\n this.dom.appendChild(hack);\n }\n }\n measureTextSize() {\n if (this.children.length == 0 || this.length > 20)\n return null;\n let totalWidth = 0, textHeight;\n for (let child of this.children) {\n if (!(child instanceof TextView) || /[^ -~]/.test(child.text))\n return null;\n let rects = clientRectsFor(child.dom);\n if (rects.length != 1)\n return null;\n totalWidth += rects[0].width;\n textHeight = rects[0].height;\n }\n return !totalWidth ? null : {\n lineHeight: this.dom.getBoundingClientRect().height,\n charWidth: totalWidth / this.length,\n textHeight\n };\n }\n coordsAt(pos, side) {\n let rect = coordsInChildren(this, pos, side);\n // Correct rectangle height for empty lines when the returned\n // height is larger than the text height.\n if (!this.children.length && rect && this.parent) {\n let { heightOracle } = this.parent.view.viewState, height = rect.bottom - rect.top;\n if (Math.abs(height - heightOracle.lineHeight) < 2 && heightOracle.textHeight < height) {\n let dist = (height - heightOracle.textHeight) / 2;\n return { top: rect.top + dist, bottom: rect.bottom - dist, left: rect.left, right: rect.left };\n }\n }\n return rect;\n }\n become(other) {\n return other instanceof LineView && this.children.length == 0 && other.children.length == 0 &&\n attrsEq(this.attrs, other.attrs) && this.breakAfter == other.breakAfter;\n }\n covers() { return true; }\n static find(docView, pos) {\n for (let i = 0, off = 0; i < docView.children.length; i++) {\n let block = docView.children[i], end = off + block.length;\n if (end >= pos) {\n if (block instanceof LineView)\n return block;\n if (end > pos)\n break;\n }\n off = end + block.breakAfter;\n }\n return null;\n }\n}\nclass BlockWidgetView extends ContentView {\n constructor(widget, length, deco) {\n super();\n this.widget = widget;\n this.length = length;\n this.deco = deco;\n this.breakAfter = 0;\n this.prevWidget = null;\n }\n merge(from, to, source, _takeDeco, openStart, openEnd) {\n if (source && (!(source instanceof BlockWidgetView) || !this.widget.compare(source.widget) ||\n from > 0 && openStart <= 0 || to < this.length && openEnd <= 0))\n return false;\n this.length = from + (source ? source.length : 0) + (this.length - to);\n return true;\n }\n domAtPos(pos) {\n return pos == 0 ? DOMPos.before(this.dom) : DOMPos.after(this.dom, pos == this.length);\n }\n split(at) {\n let len = this.length - at;\n this.length = at;\n let end = new BlockWidgetView(this.widget, len, this.deco);\n end.breakAfter = this.breakAfter;\n return end;\n }\n get children() { return noChildren; }\n sync(view) {\n if (!this.dom || !this.widget.updateDOM(this.dom, view)) {\n if (this.dom && this.prevWidget)\n this.prevWidget.destroy(this.dom);\n this.prevWidget = null;\n this.setDOM(this.widget.toDOM(view));\n if (!this.widget.editable)\n this.dom.contentEditable = \"false\";\n }\n }\n get overrideDOMText() {\n return this.parent ? this.parent.view.state.doc.slice(this.posAtStart, this.posAtEnd) : Text.empty;\n }\n domBoundsAround() { return null; }\n become(other) {\n if (other instanceof BlockWidgetView &&\n other.widget.constructor == this.widget.constructor) {\n if (!other.widget.compare(this.widget))\n this.markDirty(true);\n if (this.dom && !this.prevWidget)\n this.prevWidget = this.widget;\n this.widget = other.widget;\n this.length = other.length;\n this.deco = other.deco;\n this.breakAfter = other.breakAfter;\n return true;\n }\n return false;\n }\n ignoreMutation() { return true; }\n ignoreEvent(event) { return this.widget.ignoreEvent(event); }\n get isEditable() { return false; }\n get isWidget() { return true; }\n coordsAt(pos, side) {\n return this.widget.coordsAt(this.dom, pos, side);\n }\n destroy() {\n super.destroy();\n if (this.dom)\n this.widget.destroy(this.dom);\n }\n covers(side) {\n let { startSide, endSide } = this.deco;\n return startSide == endSide ? false : side < 0 ? startSide < 0 : endSide > 0;\n }\n}\n\n/**\nWidgets added to the content are described by subclasses of this\nclass. Using a description object like that makes it possible to\ndelay creating of the DOM structure for a widget until it is\nneeded, and to avoid redrawing widgets even if the decorations\nthat define them are recreated.\n*/\nclass WidgetType {\n /**\n Compare this instance to another instance of the same type.\n (TypeScript can't express this, but only instances of the same\n specific class will be passed to this method.) This is used to\n avoid redrawing widgets when they are replaced by a new\n decoration of the same type. The default implementation just\n returns `false`, which will cause new instances of the widget to\n always be redrawn.\n */\n eq(widget) { return false; }\n /**\n Update a DOM element created by a widget of the same type (but\n different, non-`eq` content) to reflect this widget. May return\n true to indicate that it could update, false to indicate it\n couldn't (in which case the widget will be redrawn). The default\n implementation just returns false.\n */\n updateDOM(dom, view) { return false; }\n /**\n @internal\n */\n compare(other) {\n return this == other || this.constructor == other.constructor && this.eq(other);\n }\n /**\n The estimated height this widget will have, to be used when\n estimating the height of content that hasn't been drawn. May\n return -1 to indicate you don't know. The default implementation\n returns -1.\n */\n get estimatedHeight() { return -1; }\n /**\n For inline widgets that are displayed inline (as opposed to\n `inline-block`) and introduce line breaks (through `<br>` tags\n or textual newlines), this must indicate the amount of line\n breaks they introduce. Defaults to 0.\n */\n get lineBreaks() { return 0; }\n /**\n Can be used to configure which kinds of events inside the widget\n should be ignored by the editor. The default is to ignore all\n events.\n */\n ignoreEvent(event) { return true; }\n /**\n Override the way screen coordinates for positions at/in the\n widget are found. `pos` will be the offset into the widget, and\n `side` the side of the position that is being queried—less than\n zero for before, greater than zero for after, and zero for\n directly at that position.\n */\n coordsAt(dom, pos, side) { return null; }\n /**\n @internal\n */\n get isHidden() { return false; }\n /**\n @internal\n */\n get editable() { return false; }\n /**\n This is called when the an instance of the widget is removed\n from the editor view.\n */\n destroy(dom) { }\n}\n/**\nThe different types of blocks that can occur in an editor view.\n*/\nvar BlockType = /*@__PURE__*/(function (BlockType) {\n /**\n A line of text.\n */\n BlockType[BlockType[\"Text\"] = 0] = \"Text\";\n /**\n A block widget associated with the position after it.\n */\n BlockType[BlockType[\"WidgetBefore\"] = 1] = \"WidgetBefore\";\n /**\n A block widget associated with the position before it.\n */\n BlockType[BlockType[\"WidgetAfter\"] = 2] = \"WidgetAfter\";\n /**\n A block widget [replacing](https://codemirror.net/6/docs/ref/#view.Decoration^replace) a range of content.\n */\n BlockType[BlockType[\"WidgetRange\"] = 3] = \"WidgetRange\";\nreturn BlockType})(BlockType || (BlockType = {}));\n/**\nA decoration provides information on how to draw or style a piece\nof content. You'll usually use it wrapped in a\n[`Range`](https://codemirror.net/6/docs/ref/#state.Range), which adds a start and end position.\n@nonabstract\n*/\nclass Decoration extends RangeValue {\n constructor(\n /**\n @internal\n */\n startSide, \n /**\n @internal\n */\n endSide, \n /**\n @internal\n */\n widget, \n /**\n The config object used to create this decoration. You can\n include additional properties in there to store metadata about\n your decoration.\n */\n spec) {\n super();\n this.startSide = startSide;\n this.endSide = endSide;\n this.widget = widget;\n this.spec = spec;\n }\n /**\n @internal\n */\n get heightRelevant() { return false; }\n /**\n Create a mark decoration, which influences the styling of the\n content in its range. Nested mark decorations will cause nested\n DOM elements to be created. Nesting order is determined by\n precedence of the [facet](https://codemirror.net/6/docs/ref/#view.EditorView^decorations), with\n the higher-precedence decorations creating the inner DOM nodes.\n Such elements are split on line boundaries and on the boundaries\n of lower-precedence decorations.\n */\n static mark(spec) {\n return new MarkDecoration(spec);\n }\n /**\n Create a widget decoration, which displays a DOM element at the\n given position.\n */\n static widget(spec) {\n let side = Math.max(-10000, Math.min(10000, spec.side || 0)), block = !!spec.block;\n side += (block && !spec.inlineOrder)\n ? (side > 0 ? 300000000 /* Side.BlockAfter */ : -400000000 /* Side.BlockBefore */)\n : (side > 0 ? 100000000 /* Side.InlineAfter */ : -100000000 /* Side.InlineBefore */);\n return new PointDecoration(spec, side, side, block, spec.widget || null, false);\n }\n /**\n Create a replace decoration which replaces the given range with\n a widget, or simply hides it.\n */\n static replace(spec) {\n let block = !!spec.block, startSide, endSide;\n if (spec.isBlockGap) {\n startSide = -500000000 /* Side.GapStart */;\n endSide = 400000000 /* Side.GapEnd */;\n }\n else {\n let { start, end } = getInclusive(spec, block);\n startSide = (start ? (block ? -300000000 /* Side.BlockIncStart */ : -1 /* Side.InlineIncStart */) : 500000000 /* Side.NonIncStart */) - 1;\n endSide = (end ? (block ? 200000000 /* Side.BlockIncEnd */ : 1 /* Side.InlineIncEnd */) : -600000000 /* Side.NonIncEnd */) + 1;\n }\n return new PointDecoration(spec, startSide, endSide, block, spec.widget || null, true);\n }\n /**\n Create a line decoration, which can add DOM attributes to the\n line starting at the given position.\n */\n static line(spec) {\n return new LineDecoration(spec);\n }\n /**\n Build a [`DecorationSet`](https://codemirror.net/6/docs/ref/#view.DecorationSet) from the given\n decorated range or ranges. If the ranges aren't already sorted,\n pass `true` for `sort` to make the library sort them for you.\n */\n static set(of, sort = false) {\n return RangeSet.of(of, sort);\n }\n /**\n @internal\n */\n hasHeight() { return this.widget ? this.widget.estimatedHeight > -1 : false; }\n}\n/**\nThe empty set of decorations.\n*/\nDecoration.none = RangeSet.empty;\nclass MarkDecoration extends Decoration {\n constructor(spec) {\n let { start, end } = getInclusive(spec);\n super(start ? -1 /* Side.InlineIncStart */ : 500000000 /* Side.NonIncStart */, end ? 1 /* Side.InlineIncEnd */ : -600000000 /* Side.NonIncEnd */, null, spec);\n this.tagName = spec.tagName || \"span\";\n this.class = spec.class || \"\";\n this.attrs = spec.attributes || null;\n }\n eq(other) {\n var _a, _b;\n return this == other ||\n other instanceof MarkDecoration &&\n this.tagName == other.tagName &&\n (this.class || ((_a = this.attrs) === null || _a === void 0 ? void 0 : _a.class)) == (other.class || ((_b = other.attrs) === null || _b === void 0 ? void 0 : _b.class)) &&\n attrsEq(this.attrs, other.attrs, \"class\");\n }\n range(from, to = from) {\n if (from >= to)\n throw new RangeError(\"Mark decorations may not be empty\");\n return super.range(from, to);\n }\n}\nMarkDecoration.prototype.point = false;\nclass LineDecoration extends Decoration {\n constructor(spec) {\n super(-200000000 /* Side.Line */, -200000000 /* Side.Line */, null, spec);\n }\n eq(other) {\n return other instanceof LineDecoration &&\n this.spec.class == other.spec.class &&\n attrsEq(this.spec.attributes, other.spec.attributes);\n }\n range(from, to = from) {\n if (to != from)\n throw new RangeError(\"Line decoration ranges must be zero-length\");\n return super.range(from, to);\n }\n}\nLineDecoration.prototype.mapMode = MapMode.TrackBefore;\nLineDecoration.prototype.point = true;\nclass PointDecoration extends Decoration {\n constructor(spec, startSide, endSide, block, widget, isReplace) {\n super(startSide, endSide, widget, spec);\n this.block = block;\n this.isReplace = isReplace;\n this.mapMode = !block ? MapMode.TrackDel : startSide <= 0 ? MapMode.TrackBefore : MapMode.TrackAfter;\n }\n // Only relevant when this.block == true\n get type() {\n return this.startSide != this.endSide ? BlockType.WidgetRange\n : this.startSide <= 0 ? BlockType.WidgetBefore : BlockType.WidgetAfter;\n }\n get heightRelevant() {\n return this.block || !!this.widget && (this.widget.estimatedHeight >= 5 || this.widget.lineBreaks > 0);\n }\n eq(other) {\n return other instanceof PointDecoration &&\n widgetsEq(this.widget, other.widget) &&\n this.block == other.block &&\n this.startSide == other.startSide && this.endSide == other.endSide;\n }\n range(from, to = from) {\n if (this.isReplace && (from > to || (from == to && this.startSide > 0 && this.endSide <= 0)))\n throw new RangeError(\"Invalid range for replacement decoration\");\n if (!this.isReplace && to != from)\n throw new RangeError(\"Widget decorations can only have zero-length ranges\");\n return super.range(from, to);\n }\n}\nPointDecoration.prototype.point = true;\nfunction getInclusive(spec, block = false) {\n let { inclusiveStart: start, inclusiveEnd: end } = spec;\n if (start == null)\n start = spec.inclusive;\n if (end == null)\n end = spec.inclusive;\n return { start: start !== null && start !== void 0 ? start : block, end: end !== null && end !== void 0 ? end : block };\n}\nfunction widgetsEq(a, b) {\n return a == b || !!(a && b && a.compare(b));\n}\nfunction addRange(from, to, ranges, margin = 0) {\n let last = ranges.length - 1;\n if (last >= 0 && ranges[last] + margin >= from)\n ranges[last] = Math.max(ranges[last], to);\n else\n ranges.push(from, to);\n}\n\nclass ContentBuilder {\n constructor(doc, pos, end, disallowBlockEffectsFor) {\n this.doc = doc;\n this.pos = pos;\n this.end = end;\n this.disallowBlockEffectsFor = disallowBlockEffectsFor;\n this.content = [];\n this.curLine = null;\n this.breakAtStart = 0;\n this.pendingBuffer = 0 /* Buf.No */;\n this.bufferMarks = [];\n // Set to false directly after a widget that covers the position after it\n this.atCursorPos = true;\n this.openStart = -1;\n this.openEnd = -1;\n this.text = \"\";\n this.textOff = 0;\n this.cursor = doc.iter();\n this.skip = pos;\n }\n posCovered() {\n if (this.content.length == 0)\n return !this.breakAtStart && this.doc.lineAt(this.pos).from != this.pos;\n let last = this.content[this.content.length - 1];\n return !(last.breakAfter || last instanceof BlockWidgetView && last.deco.endSide < 0);\n }\n getLine() {\n if (!this.curLine) {\n this.content.push(this.curLine = new LineView);\n this.atCursorPos = true;\n }\n return this.curLine;\n }\n flushBuffer(active = this.bufferMarks) {\n if (this.pendingBuffer) {\n this.curLine.append(wrapMarks(new WidgetBufferView(-1), active), active.length);\n this.pendingBuffer = 0 /* Buf.No */;\n }\n }\n addBlockWidget(view) {\n this.flushBuffer();\n this.curLine = null;\n this.content.push(view);\n }\n finish(openEnd) {\n if (this.pendingBuffer && openEnd <= this.bufferMarks.length)\n this.flushBuffer();\n else\n this.pendingBuffer = 0 /* Buf.No */;\n if (!this.posCovered() &&\n !(openEnd && this.content.length && this.content[this.content.length - 1] instanceof BlockWidgetView))\n this.getLine();\n }\n buildText(length, active, openStart) {\n while (length > 0) {\n if (this.textOff == this.text.length) {\n let { value, lineBreak, done } = this.cursor.next(this.skip);\n this.skip = 0;\n if (done)\n throw new Error(\"Ran out of text content when drawing inline views\");\n if (lineBreak) {\n if (!this.posCovered())\n this.getLine();\n if (this.content.length)\n this.content[this.content.length - 1].breakAfter = 1;\n else\n this.breakAtStart = 1;\n this.flushBuffer();\n this.curLine = null;\n this.atCursorPos = true;\n length--;\n continue;\n }\n else {\n this.text = value;\n this.textOff = 0;\n }\n }\n let take = Math.min(this.text.length - this.textOff, length, 512 /* T.Chunk */);\n this.flushBuffer(active.slice(active.length - openStart));\n this.getLine().append(wrapMarks(new TextView(this.text.slice(this.textOff, this.textOff + take)), active), openStart);\n this.atCursorPos = true;\n this.textOff += take;\n length -= take;\n openStart = 0;\n }\n }\n span(from, to, active, openStart) {\n this.buildText(to - from, active, openStart);\n this.pos = to;\n if (this.openStart < 0)\n this.openStart = openStart;\n }\n point(from, to, deco, active, openStart, index) {\n if (this.disallowBlockEffectsFor[index] && deco instanceof PointDecoration) {\n if (deco.block)\n throw new RangeError(\"Block decorations may not be specified via plugins\");\n if (to > this.doc.lineAt(this.pos).to)\n throw new RangeError(\"Decorations that replace line breaks may not be specified via plugins\");\n }\n let len = to - from;\n if (deco instanceof PointDecoration) {\n if (deco.block) {\n if (deco.startSide > 0 && !this.posCovered())\n this.getLine();\n this.addBlockWidget(new BlockWidgetView(deco.widget || NullWidget.block, len, deco));\n }\n else {\n let view = WidgetView.create(deco.widget || NullWidget.inline, len, len ? 0 : deco.startSide);\n let cursorBefore = this.atCursorPos && !view.isEditable && openStart <= active.length &&\n (from < to || deco.startSide > 0);\n let cursorAfter = !view.isEditable && (from < to || openStart > active.length || deco.startSide <= 0);\n let line = this.getLine();\n if (this.pendingBuffer == 2 /* Buf.IfCursor */ && !cursorBefore && !view.isEditable)\n this.pendingBuffer = 0 /* Buf.No */;\n this.flushBuffer(active);\n if (cursorBefore) {\n line.append(wrapMarks(new WidgetBufferView(1), active), openStart);\n openStart = active.length + Math.max(0, openStart - active.length);\n }\n line.append(wrapMarks(view, active), openStart);\n this.atCursorPos = cursorAfter;\n this.pendingBuffer = !cursorAfter ? 0 /* Buf.No */ : from < to || openStart > active.length ? 1 /* Buf.Yes */ : 2 /* Buf.IfCursor */;\n if (this.pendingBuffer)\n this.bufferMarks = active.slice();\n }\n }\n else if (this.doc.lineAt(this.pos).from == this.pos) { // Line decoration\n this.getLine().addLineDeco(deco);\n }\n if (len) {\n // Advance the iterator past the replaced content\n if (this.textOff + len <= this.text.length) {\n this.textOff += len;\n }\n else {\n this.skip += len - (this.text.length - this.textOff);\n this.text = \"\";\n this.textOff = 0;\n }\n this.pos = to;\n }\n if (this.openStart < 0)\n this.openStart = openStart;\n }\n static build(text, from, to, decorations, dynamicDecorationMap) {\n let builder = new ContentBuilder(text, from, to, dynamicDecorationMap);\n builder.openEnd = RangeSet.spans(decorations, from, to, builder);\n if (builder.openStart < 0)\n builder.openStart = builder.openEnd;\n builder.finish(builder.openEnd);\n return builder;\n }\n}\nfunction wrapMarks(view, active) {\n for (let mark of active)\n view = new MarkView(mark, [view], view.length);\n return view;\n}\nclass NullWidget extends WidgetType {\n constructor(tag) {\n super();\n this.tag = tag;\n }\n eq(other) { return other.tag == this.tag; }\n toDOM() { return document.createElement(this.tag); }\n updateDOM(elt) { return elt.nodeName.toLowerCase() == this.tag; }\n get isHidden() { return true; }\n}\nNullWidget.inline = /*@__PURE__*/new NullWidget(\"span\");\nNullWidget.block = /*@__PURE__*/new NullWidget(\"div\");\n\n/**\nUsed to indicate [text direction](https://codemirror.net/6/docs/ref/#view.EditorView.textDirection).\n*/\nvar Direction = /*@__PURE__*/(function (Direction) {\n // (These are chosen to match the base levels, in bidi algorithm\n // terms, of spans in that direction.)\n /**\n Left-to-right.\n */\n Direction[Direction[\"LTR\"] = 0] = \"LTR\";\n /**\n Right-to-left.\n */\n Direction[Direction[\"RTL\"] = 1] = \"RTL\";\nreturn Direction})(Direction || (Direction = {}));\nconst LTR = Direction.LTR, RTL = Direction.RTL;\n// Decode a string with each type encoded as log2(type)\nfunction dec(str) {\n let result = [];\n for (let i = 0; i < str.length; i++)\n result.push(1 << +str[i]);\n return result;\n}\n// Character types for codepoints 0 to 0xf8\nconst LowTypes = /*@__PURE__*/dec(\"88888888888888888888888888888888888666888888787833333333337888888000000000000000000000000008888880000000000000000000000000088888888888888888888888888888888888887866668888088888663380888308888800000000000000000000000800000000000000000000000000000008\");\n// Character types for codepoints 0x600 to 0x6f9\nconst ArabicTypes = /*@__PURE__*/dec(\"4444448826627288999999999992222222222222222222222222222222222222222222222229999999999999999999994444444444644222822222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222999999949999999229989999223333333333\");\nconst Brackets = /*@__PURE__*/Object.create(null), BracketStack = [];\n// There's a lot more in\n// https://www.unicode.org/Public/UCD/latest/ucd/BidiBrackets.txt,\n// which are left out to keep code size down.\nfor (let p of [\"()\", \"[]\", \"{}\"]) {\n let l = /*@__PURE__*/p.charCodeAt(0), r = /*@__PURE__*/p.charCodeAt(1);\n Brackets[l] = r;\n Brackets[r] = -l;\n}\nfunction charType(ch) {\n return ch <= 0xf7 ? LowTypes[ch] :\n 0x590 <= ch && ch <= 0x5f4 ? 2 /* T.R */ :\n 0x600 <= ch && ch <= 0x6f9 ? ArabicTypes[ch - 0x600] :\n 0x6ee <= ch && ch <= 0x8ac ? 4 /* T.AL */ :\n 0x2000 <= ch && ch <= 0x200c ? 256 /* T.NI */ :\n 0xfb50 <= ch && ch <= 0xfdff ? 4 /* T.AL */ : 1 /* T.L */;\n}\nconst BidiRE = /[\\u0590-\\u05f4\\u0600-\\u06ff\\u0700-\\u08ac\\ufb50-\\ufdff]/;\n/**\nRepresents a contiguous range of text that has a single direction\n(as in left-to-right or right-to-left).\n*/\nclass BidiSpan {\n /**\n The direction of this span.\n */\n get dir() { return this.level % 2 ? RTL : LTR; }\n /**\n @internal\n */\n constructor(\n /**\n The start of the span (relative to the start of the line).\n */\n from, \n /**\n The end of the span.\n */\n to, \n /**\n The [\"bidi\n level\"](https://unicode.org/reports/tr9/#Basic_Display_Algorithm)\n of the span (in this context, 0 means\n left-to-right, 1 means right-to-left, 2 means left-to-right\n number inside right-to-left text).\n */\n level) {\n this.from = from;\n this.to = to;\n this.level = level;\n }\n /**\n @internal\n */\n side(end, dir) { return (this.dir == dir) == end ? this.to : this.from; }\n /**\n @internal\n */\n forward(forward, dir) { return forward == (this.dir == dir); }\n /**\n @internal\n */\n static find(order, index, level, assoc) {\n let maybe = -1;\n for (let i = 0; i < order.length; i++) {\n let span = order[i];\n if (span.from <= index && span.to >= index) {\n if (span.level == level)\n return i;\n // When multiple spans match, if assoc != 0, take the one that\n // covers that side, otherwise take the one with the minimum\n // level.\n if (maybe < 0 || (assoc != 0 ? (assoc < 0 ? span.from < index : span.to > index) : order[maybe].level > span.level))\n maybe = i;\n }\n }\n if (maybe < 0)\n throw new RangeError(\"Index out of range\");\n return maybe;\n }\n}\nfunction isolatesEq(a, b) {\n if (a.length != b.length)\n return false;\n for (let i = 0; i < a.length; i++) {\n let iA = a[i], iB = b[i];\n if (iA.from != iB.from || iA.to != iB.to || iA.direction != iB.direction || !isolatesEq(iA.inner, iB.inner))\n return false;\n }\n return true;\n}\n// Reused array of character types\nconst types = [];\n// Fill in the character types (in `types`) from `from` to `to` and\n// apply W normalization rules.\nfunction computeCharTypes(line, rFrom, rTo, isolates, outerType) {\n for (let iI = 0; iI <= isolates.length; iI++) {\n let from = iI ? isolates[iI - 1].to : rFrom, to = iI < isolates.length ? isolates[iI].from : rTo;\n let prevType = iI ? 256 /* T.NI */ : outerType;\n // W1. Examine each non-spacing mark (NSM) in the level run, and\n // change the type of the NSM to the type of the previous\n // character. If the NSM is at the start of the level run, it will\n // get the type of sor.\n // W2. Search backwards from each instance of a European number\n // until the first strong type (R, L, AL, or sor) is found. If an\n // AL is found, change the type of the European number to Arabic\n // number.\n // W3. Change all ALs to R.\n // (Left after this: L, R, EN, AN, ET, CS, NI)\n for (let i = from, prev = prevType, prevStrong = prevType; i < to; i++) {\n let type = charType(line.charCodeAt(i));\n if (type == 512 /* T.NSM */)\n type = prev;\n else if (type == 8 /* T.EN */ && prevStrong == 4 /* T.AL */)\n type = 16 /* T.AN */;\n types[i] = type == 4 /* T.AL */ ? 2 /* T.R */ : type;\n if (type & 7 /* T.Strong */)\n prevStrong = type;\n prev = type;\n }\n // W5. A sequence of European terminators adjacent to European\n // numbers changes to all European numbers.\n // W6. Otherwise, separators and terminators change to Other\n // Neutral.\n // W7. Search backwards from each instance of a European number\n // until the first strong type (R, L, or sor) is found. If an L is\n // found, then change the type of the European number to L.\n // (Left after this: L, R, EN+AN, NI)\n for (let i = from, prev = prevType, prevStrong = prevType; i < to; i++) {\n let type = types[i];\n if (type == 128 /* T.CS */) {\n if (i < to - 1 && prev == types[i + 1] && (prev & 24 /* T.Num */))\n type = types[i] = prev;\n else\n types[i] = 256 /* T.NI */;\n }\n else if (type == 64 /* T.ET */) {\n let end = i + 1;\n while (end < to && types[end] == 64 /* T.ET */)\n end++;\n let replace = (i && prev == 8 /* T.EN */) || (end < rTo && types[end] == 8 /* T.EN */) ? (prevStrong == 1 /* T.L */ ? 1 /* T.L */ : 8 /* T.EN */) : 256 /* T.NI */;\n for (let j = i; j < end; j++)\n types[j] = replace;\n i = end - 1;\n }\n else if (type == 8 /* T.EN */ && prevStrong == 1 /* T.L */) {\n types[i] = 1 /* T.L */;\n }\n prev = type;\n if (type & 7 /* T.Strong */)\n prevStrong = type;\n }\n }\n}\n// Process brackets throughout a run sequence.\nfunction processBracketPairs(line, rFrom, rTo, isolates, outerType) {\n let oppositeType = outerType == 1 /* T.L */ ? 2 /* T.R */ : 1 /* T.L */;\n for (let iI = 0, sI = 0, context = 0; iI <= isolates.length; iI++) {\n let from = iI ? isolates[iI - 1].to : rFrom, to = iI < isolates.length ? isolates[iI].from : rTo;\n // N0. Process bracket pairs in an isolating run sequence\n // sequentially in the logical order of the text positions of the\n // opening paired brackets using the logic given below. Within this\n // scope, bidirectional types EN and AN are treated as R.\n for (let i = from, ch, br, type; i < to; i++) {\n // Keeps [startIndex, type, strongSeen] triples for each open\n // bracket on BracketStack.\n if (br = Brackets[ch = line.charCodeAt(i)]) {\n if (br < 0) { // Closing bracket\n for (let sJ = sI - 3; sJ >= 0; sJ -= 3) {\n if (BracketStack[sJ + 1] == -br) {\n let flags = BracketStack[sJ + 2];\n let type = (flags & 2 /* Bracketed.EmbedInside */) ? outerType :\n !(flags & 4 /* Bracketed.OppositeInside */) ? 0 :\n (flags & 1 /* Bracketed.OppositeBefore */) ? oppositeType : outerType;\n if (type)\n types[i] = types[BracketStack[sJ]] = type;\n sI = sJ;\n break;\n }\n }\n }\n else if (BracketStack.length == 189 /* Bracketed.MaxDepth */) {\n break;\n }\n else {\n BracketStack[sI++] = i;\n BracketStack[sI++] = ch;\n BracketStack[sI++] = context;\n }\n }\n else if ((type = types[i]) == 2 /* T.R */ || type == 1 /* T.L */) {\n let embed = type == outerType;\n context = embed ? 0 : 1 /* Bracketed.OppositeBefore */;\n for (let sJ = sI - 3; sJ >= 0; sJ -= 3) {\n let cur = BracketStack[sJ + 2];\n if (cur & 2 /* Bracketed.EmbedInside */)\n break;\n if (embed) {\n BracketStack[sJ + 2] |= 2 /* Bracketed.EmbedInside */;\n }\n else {\n if (cur & 4 /* Bracketed.OppositeInside */)\n break;\n BracketStack[sJ + 2] |= 4 /* Bracketed.OppositeInside */;\n }\n }\n }\n }\n }\n}\nfunction processNeutrals(rFrom, rTo, isolates, outerType) {\n for (let iI = 0, prev = outerType; iI <= isolates.length; iI++) {\n let from = iI ? isolates[iI - 1].to : rFrom, to = iI < isolates.length ? isolates[iI].from : rTo;\n // N1. A sequence of neutrals takes the direction of the\n // surrounding strong text if the text on both sides has the same\n // direction. European and Arabic numbers act as if they were R in\n // terms of their influence on neutrals. Start-of-level-run (sor)\n // and end-of-level-run (eor) are used at level run boundaries.\n // N2. Any remaining neutrals take the embedding direction.\n // (Left after this: L, R, EN+AN)\n for (let i = from; i < to;) {\n let type = types[i];\n if (type == 256 /* T.NI */) {\n let end = i + 1;\n for (;;) {\n if (end == to) {\n if (iI == isolates.length)\n break;\n end = isolates[iI++].to;\n to = iI < isolates.length ? isolates[iI].from : rTo;\n }\n else if (types[end] == 256 /* T.NI */) {\n end++;\n }\n else {\n break;\n }\n }\n let beforeL = prev == 1 /* T.L */;\n let afterL = (end < rTo ? types[end] : outerType) == 1 /* T.L */;\n let replace = beforeL == afterL ? (beforeL ? 1 /* T.L */ : 2 /* T.R */) : outerType;\n for (let j = end, jI = iI, fromJ = jI ? isolates[jI - 1].to : rFrom; j > i;) {\n if (j == fromJ) {\n j = isolates[--jI].from;\n fromJ = jI ? isolates[jI - 1].to : rFrom;\n }\n types[--j] = replace;\n }\n i = end;\n }\n else {\n prev = type;\n i++;\n }\n }\n }\n}\n// Find the contiguous ranges of character types in a given range, and\n// emit spans for them. Flip the order of the spans as appropriate\n// based on the level, and call through to compute the spans for\n// isolates at the proper point.\nfunction emitSpans(line, from, to, level, baseLevel, isolates, order) {\n let ourType = level % 2 ? 2 /* T.R */ : 1 /* T.L */;\n if ((level % 2) == (baseLevel % 2)) { // Same dir as base direction, don't flip\n for (let iCh = from, iI = 0; iCh < to;) {\n // Scan a section of characters in direction ourType, unless\n // there's another type of char right after iCh, in which case\n // we scan a section of other characters (which, if ourType ==\n // T.L, may contain both T.R and T.AN chars).\n let sameDir = true, isNum = false;\n if (iI == isolates.length || iCh < isolates[iI].from) {\n let next = types[iCh];\n if (next != ourType) {\n sameDir = false;\n isNum = next == 16 /* T.AN */;\n }\n }\n // Holds an array of isolates to pass to a recursive call if we\n // must recurse (to distinguish T.AN inside an RTL section in\n // LTR text), null if we can emit directly\n let recurse = !sameDir && ourType == 1 /* T.L */ ? [] : null;\n let localLevel = sameDir ? level : level + 1;\n let iScan = iCh;\n run: for (;;) {\n if (iI < isolates.length && iScan == isolates[iI].from) {\n if (isNum)\n break run;\n let iso = isolates[iI];\n // Scan ahead to verify that there is another char in this dir after the isolate(s)\n if (!sameDir)\n for (let upto = iso.to, jI = iI + 1;;) {\n if (upto == to)\n break run;\n if (jI < isolates.length && isolates[jI].from == upto)\n upto = isolates[jI++].to;\n else if (types[upto] == ourType)\n break run;\n else\n break;\n }\n iI++;\n if (recurse) {\n recurse.push(iso);\n }\n else {\n if (iso.from > iCh)\n order.push(new BidiSpan(iCh, iso.from, localLevel));\n let dirSwap = (iso.direction == LTR) != !(localLevel % 2);\n computeSectionOrder(line, dirSwap ? level + 1 : level, baseLevel, iso.inner, iso.from, iso.to, order);\n iCh = iso.to;\n }\n iScan = iso.to;\n }\n else if (iScan == to || (sameDir ? types[iScan] != ourType : types[iScan] == ourType)) {\n break;\n }\n else {\n iScan++;\n }\n }\n if (recurse)\n emitSpans(line, iCh, iScan, level + 1, baseLevel, recurse, order);\n else if (iCh < iScan)\n order.push(new BidiSpan(iCh, iScan, localLevel));\n iCh = iScan;\n }\n }\n else {\n // Iterate in reverse to flip the span order. Same code again, but\n // going from the back of the section to the front\n for (let iCh = to, iI = isolates.length; iCh > from;) {\n let sameDir = true, isNum = false;\n if (!iI || iCh > isolates[iI - 1].to) {\n let next = types[iCh - 1];\n if (next != ourType) {\n sameDir = false;\n isNum = next == 16 /* T.AN */;\n }\n }\n let recurse = !sameDir && ourType == 1 /* T.L */ ? [] : null;\n let localLevel = sameDir ? level : level + 1;\n let iScan = iCh;\n run: for (;;) {\n if (iI && iScan == isolates[iI - 1].to) {\n if (isNum)\n break run;\n let iso = isolates[--iI];\n // Scan ahead to verify that there is another char in this dir after the isolate(s)\n if (!sameDir)\n for (let upto = iso.from, jI = iI;;) {\n if (upto == from)\n break run;\n if (jI && isolates[jI - 1].to == upto)\n upto = isolates[--jI].from;\n else if (types[upto - 1] == ourType)\n break run;\n else\n break;\n }\n if (recurse) {\n recurse.push(iso);\n }\n else {\n if (iso.to < iCh)\n order.push(new BidiSpan(iso.to, iCh, localLevel));\n let dirSwap = (iso.direction == LTR) != !(localLevel % 2);\n computeSectionOrder(line, dirSwap ? level + 1 : level, baseLevel, iso.inner, iso.from, iso.to, order);\n iCh = iso.from;\n }\n iScan = iso.from;\n }\n else if (iScan == from || (sameDir ? types[iScan - 1] != ourType : types[iScan - 1] == ourType)) {\n break;\n }\n else {\n iScan--;\n }\n }\n if (recurse)\n emitSpans(line, iScan, iCh, level + 1, baseLevel, recurse, order);\n else if (iScan < iCh)\n order.push(new BidiSpan(iScan, iCh, localLevel));\n iCh = iScan;\n }\n }\n}\nfunction computeSectionOrder(line, level, baseLevel, isolates, from, to, order) {\n let outerType = (level % 2 ? 2 /* T.R */ : 1 /* T.L */);\n computeCharTypes(line, from, to, isolates, outerType);\n processBracketPairs(line, from, to, isolates, outerType);\n processNeutrals(from, to, isolates, outerType);\n emitSpans(line, from, to, level, baseLevel, isolates, order);\n}\nfunction computeOrder(line, direction, isolates) {\n if (!line)\n return [new BidiSpan(0, 0, direction == RTL ? 1 : 0)];\n if (direction == LTR && !isolates.length && !BidiRE.test(line))\n return trivialOrder(line.length);\n if (isolates.length)\n while (line.length > types.length)\n types[types.length] = 256 /* T.NI */; // Make sure types array has no gaps\n let order = [], level = direction == LTR ? 0 : 1;\n computeSectionOrder(line, level, level, isolates, 0, line.length, order);\n return order;\n}\nfunction trivialOrder(length) {\n return [new BidiSpan(0, length, 0)];\n}\nlet movedOver = \"\";\n// This implementation moves strictly visually, without concern for a\n// traversal visiting every logical position in the string. It will\n// still do so for simple input, but situations like multiple isolates\n// with the same level next to each other, or text going against the\n// main dir at the end of the line, will make some positions\n// unreachable with this motion. Each visible cursor position will\n// correspond to the lower-level bidi span that touches it.\n//\n// The alternative would be to solve an order globally for a given\n// line, making sure that it includes every position, but that would\n// require associating non-canonical (higher bidi span level)\n// positions with a given visual position, which is likely to confuse\n// people. (And would generally be a lot more complicated.)\nfunction moveVisually(line, order, dir, start, forward) {\n var _a;\n let startIndex = start.head - line.from;\n let spanI = BidiSpan.find(order, startIndex, (_a = start.bidiLevel) !== null && _a !== void 0 ? _a : -1, start.assoc);\n let span = order[spanI], spanEnd = span.side(forward, dir);\n // End of span\n if (startIndex == spanEnd) {\n let nextI = spanI += forward ? 1 : -1;\n if (nextI < 0 || nextI >= order.length)\n return null;\n span = order[spanI = nextI];\n startIndex = span.side(!forward, dir);\n spanEnd = span.side(forward, dir);\n }\n let nextIndex = findClusterBreak(line.text, startIndex, span.forward(forward, dir));\n if (nextIndex < span.from || nextIndex > span.to)\n nextIndex = spanEnd;\n movedOver = line.text.slice(Math.min(startIndex, nextIndex), Math.max(startIndex, nextIndex));\n let nextSpan = spanI == (forward ? order.length - 1 : 0) ? null : order[spanI + (forward ? 1 : -1)];\n if (nextSpan && nextIndex == spanEnd && nextSpan.level + (forward ? 0 : 1) < span.level)\n return EditorSelection.cursor(nextSpan.side(!forward, dir) + line.from, nextSpan.forward(forward, dir) ? 1 : -1, nextSpan.level);\n return EditorSelection.cursor(nextIndex + line.from, span.forward(forward, dir) ? -1 : 1, span.level);\n}\nfunction autoDirection(text, from, to) {\n for (let i = from; i < to; i++) {\n let type = charType(text.charCodeAt(i));\n if (type == 1 /* T.L */)\n return LTR;\n if (type == 2 /* T.R */ || type == 4 /* T.AL */)\n return RTL;\n }\n return LTR;\n}\n\nconst clickAddsSelectionRange = /*@__PURE__*/Facet.define();\nconst dragMovesSelection$1 = /*@__PURE__*/Facet.define();\nconst mouseSelectionStyle = /*@__PURE__*/Facet.define();\nconst exceptionSink = /*@__PURE__*/Facet.define();\nconst updateListener = /*@__PURE__*/Facet.define();\nconst inputHandler = /*@__PURE__*/Facet.define();\nconst focusChangeEffect = /*@__PURE__*/Facet.define();\nconst perLineTextDirection = /*@__PURE__*/Facet.define({\n combine: values => values.some(x => x)\n});\nconst nativeSelectionHidden = /*@__PURE__*/Facet.define({\n combine: values => values.some(x => x)\n});\nconst scrollHandler = /*@__PURE__*/Facet.define();\nclass ScrollTarget {\n constructor(range, y = \"nearest\", x = \"nearest\", yMargin = 5, xMargin = 5, \n // This data structure is abused to also store precise scroll\n // snapshots, instead of a `scrollIntoView` request. When this\n // flag is `true`, `range` points at a position in the reference\n // line, `yMargin` holds the difference between the top of that\n // line and the top of the editor, and `xMargin` holds the\n // editor's `scrollLeft`.\n isSnapshot = false) {\n this.range = range;\n this.y = y;\n this.x = x;\n this.yMargin = yMargin;\n this.xMargin = xMargin;\n this.isSnapshot = isSnapshot;\n }\n map(changes) {\n return changes.empty ? this :\n new ScrollTarget(this.range.map(changes), this.y, this.x, this.yMargin, this.xMargin, this.isSnapshot);\n }\n clip(state) {\n return this.range.to <= state.doc.length ? this :\n new ScrollTarget(EditorSelection.cursor(state.doc.length), this.y, this.x, this.yMargin, this.xMargin, this.isSnapshot);\n }\n}\nconst scrollIntoView = /*@__PURE__*/StateEffect.define({ map: (t, ch) => t.map(ch) });\nconst setEditContextFormatting = /*@__PURE__*/StateEffect.define();\n/**\nLog or report an unhandled exception in client code. Should\nprobably only be used by extension code that allows client code to\nprovide functions, and calls those functions in a context where an\nexception can't be propagated to calling code in a reasonable way\n(for example when in an event handler).\n\nEither calls a handler registered with\n[`EditorView.exceptionSink`](https://codemirror.net/6/docs/ref/#view.EditorView^exceptionSink),\n`window.onerror`, if defined, or `console.error` (in which case\nit'll pass `context`, when given, as first argument).\n*/\nfunction logException(state, exception, context) {\n let handler = state.facet(exceptionSink);\n if (handler.length)\n handler[0](exception);\n else if (window.onerror)\n window.onerror(String(exception), context, undefined, undefined, exception);\n else if (context)\n console.error(context + \":\", exception);\n else\n console.error(exception);\n}\nconst editable = /*@__PURE__*/Facet.define({ combine: values => values.length ? values[0] : true });\nlet nextPluginID = 0;\nconst viewPlugin = /*@__PURE__*/Facet.define();\n/**\nView plugins associate stateful values with a view. They can\ninfluence the way the content is drawn, and are notified of things\nthat happen in the view.\n*/\nclass ViewPlugin {\n constructor(\n /**\n @internal\n */\n id, \n /**\n @internal\n */\n create, \n /**\n @internal\n */\n domEventHandlers, \n /**\n @internal\n */\n domEventObservers, buildExtensions) {\n this.id = id;\n this.create = create;\n this.domEventHandlers = domEventHandlers;\n this.domEventObservers = domEventObservers;\n this.extension = buildExtensions(this);\n }\n /**\n Define a plugin from a constructor function that creates the\n plugin's value, given an editor view.\n */\n static define(create, spec) {\n const { eventHandlers, eventObservers, provide, decorations: deco } = spec || {};\n return new ViewPlugin(nextPluginID++, create, eventHandlers, eventObservers, plugin => {\n let ext = [viewPlugin.of(plugin)];\n if (deco)\n ext.push(decorations.of(view => {\n let pluginInst = view.plugin(plugin);\n return pluginInst ? deco(pluginInst) : Decoration.none;\n }));\n if (provide)\n ext.push(provide(plugin));\n return ext;\n });\n }\n /**\n Create a plugin for a class whose constructor takes a single\n editor view as argument.\n */\n static fromClass(cls, spec) {\n return ViewPlugin.define(view => new cls(view), spec);\n }\n}\nclass PluginInstance {\n constructor(spec) {\n this.spec = spec;\n // When starting an update, all plugins have this field set to the\n // update object, indicating they need to be updated. When finished\n // updating, it is set to `false`. Retrieving a plugin that needs to\n // be updated with `view.plugin` forces an eager update.\n this.mustUpdate = null;\n // This is null when the plugin is initially created, but\n // initialized on the first update.\n this.value = null;\n }\n update(view) {\n if (!this.value) {\n if (this.spec) {\n try {\n this.value = this.spec.create(view);\n }\n catch (e) {\n logException(view.state, e, \"CodeMirror plugin crashed\");\n this.deactivate();\n }\n }\n }\n else if (this.mustUpdate) {\n let update = this.mustUpdate;\n this.mustUpdate = null;\n if (this.value.update) {\n try {\n this.value.update(update);\n }\n catch (e) {\n logException(update.state, e, \"CodeMirror plugin crashed\");\n if (this.value.destroy)\n try {\n this.value.destroy();\n }\n catch (_) { }\n this.deactivate();\n }\n }\n }\n return this;\n }\n destroy(view) {\n var _a;\n if ((_a = this.value) === null || _a === void 0 ? void 0 : _a.destroy) {\n try {\n this.value.destroy();\n }\n catch (e) {\n logException(view.state, e, \"CodeMirror plugin crashed\");\n }\n }\n }\n deactivate() {\n this.spec = this.value = null;\n }\n}\nconst editorAttributes = /*@__PURE__*/Facet.define();\nconst contentAttributes = /*@__PURE__*/Facet.define();\n// Provide decorations\nconst decorations = /*@__PURE__*/Facet.define();\nconst outerDecorations = /*@__PURE__*/Facet.define();\nconst atomicRanges = /*@__PURE__*/Facet.define();\nconst bidiIsolatedRanges = /*@__PURE__*/Facet.define();\nfunction getIsolatedRanges(view, line) {\n let isolates = view.state.facet(bidiIsolatedRanges);\n if (!isolates.length)\n return isolates;\n let sets = isolates.map(i => i instanceof Function ? i(view) : i);\n let result = [];\n RangeSet.spans(sets, line.from, line.to, {\n point() { },\n span(fromDoc, toDoc, active, open) {\n let from = fromDoc - line.from, to = toDoc - line.from;\n let level = result;\n for (let i = active.length - 1; i >= 0; i--, open--) {\n let direction = active[i].spec.bidiIsolate, update;\n if (direction == null)\n direction = autoDirection(line.text, from, to);\n if (open > 0 && level.length &&\n (update = level[level.length - 1]).to == from && update.direction == direction) {\n update.to = to;\n level = update.inner;\n }\n else {\n let add = { from, to, direction, inner: [] };\n level.push(add);\n level = add.inner;\n }\n }\n }\n });\n return result;\n}\nconst scrollMargins = /*@__PURE__*/Facet.define();\nfunction getScrollMargins(view) {\n let left = 0, right = 0, top = 0, bottom = 0;\n for (let source of view.state.facet(scrollMargins)) {\n let m = source(view);\n if (m) {\n if (m.left != null)\n left = Math.max(left, m.left);\n if (m.right != null)\n right = Math.max(right, m.right);\n if (m.top != null)\n top = Math.max(top, m.top);\n if (m.bottom != null)\n bottom = Math.max(bottom, m.bottom);\n }\n }\n return { left, right, top, bottom };\n}\nconst styleModule = /*@__PURE__*/Facet.define();\nclass ChangedRange {\n constructor(fromA, toA, fromB, toB) {\n this.fromA = fromA;\n this.toA = toA;\n this.fromB = fromB;\n this.toB = toB;\n }\n join(other) {\n return new ChangedRange(Math.min(this.fromA, other.fromA), Math.max(this.toA, other.toA), Math.min(this.fromB, other.fromB), Math.max(this.toB, other.toB));\n }\n addToSet(set) {\n let i = set.length, me = this;\n for (; i > 0; i--) {\n let range = set[i - 1];\n if (range.fromA > me.toA)\n continue;\n if (range.toA < me.fromA)\n break;\n me = me.join(range);\n set.splice(i - 1, 1);\n }\n set.splice(i, 0, me);\n return set;\n }\n static extendWithRanges(diff, ranges) {\n if (ranges.length == 0)\n return diff;\n let result = [];\n for (let dI = 0, rI = 0, posA = 0, posB = 0;; dI++) {\n let next = dI == diff.length ? null : diff[dI], off = posA - posB;\n let end = next ? next.fromB : 1e9;\n while (rI < ranges.length && ranges[rI] < end) {\n let from = ranges[rI], to = ranges[rI + 1];\n let fromB = Math.max(posB, from), toB = Math.min(end, to);\n if (fromB <= toB)\n new ChangedRange(fromB + off, toB + off, fromB, toB).addToSet(result);\n if (to > end)\n break;\n else\n rI += 2;\n }\n if (!next)\n return result;\n new ChangedRange(next.fromA, next.toA, next.fromB, next.toB).addToSet(result);\n posA = next.toA;\n posB = next.toB;\n }\n }\n}\n/**\nView [plugins](https://codemirror.net/6/docs/ref/#view.ViewPlugin) are given instances of this\nclass, which describe what happened, whenever the view is updated.\n*/\nclass ViewUpdate {\n constructor(\n /**\n The editor view that the update is associated with.\n */\n view, \n /**\n The new editor state.\n */\n state, \n /**\n The transactions involved in the update. May be empty.\n */\n transactions) {\n this.view = view;\n this.state = state;\n this.transactions = transactions;\n /**\n @internal\n */\n this.flags = 0;\n this.startState = view.state;\n this.changes = ChangeSet.empty(this.startState.doc.length);\n for (let tr of transactions)\n this.changes = this.changes.compose(tr.changes);\n let changedRanges = [];\n this.changes.iterChangedRanges((fromA, toA, fromB, toB) => changedRanges.push(new ChangedRange(fromA, toA, fromB, toB)));\n this.changedRanges = changedRanges;\n }\n /**\n @internal\n */\n static create(view, state, transactions) {\n return new ViewUpdate(view, state, transactions);\n }\n /**\n Tells you whether the [viewport](https://codemirror.net/6/docs/ref/#view.EditorView.viewport) or\n [visible ranges](https://codemirror.net/6/docs/ref/#view.EditorView.visibleRanges) changed in this\n update.\n */\n get viewportChanged() {\n return (this.flags & 4 /* UpdateFlag.Viewport */) > 0;\n }\n /**\n Indicates whether the height of a block element in the editor\n changed in this update.\n */\n get heightChanged() {\n return (this.flags & 2 /* UpdateFlag.Height */) > 0;\n }\n /**\n Returns true when the document was modified or the size of the\n editor, or elements within the editor, changed.\n */\n get geometryChanged() {\n return this.docChanged || (this.flags & (8 /* UpdateFlag.Geometry */ | 2 /* UpdateFlag.Height */)) > 0;\n }\n /**\n True when this update indicates a focus change.\n */\n get focusChanged() {\n return (this.flags & 1 /* UpdateFlag.Focus */) > 0;\n }\n /**\n Whether the document changed in this update.\n */\n get docChanged() {\n return !this.changes.empty;\n }\n /**\n Whether the selection was explicitly set in this update.\n */\n get selectionSet() {\n return this.transactions.some(tr => tr.selection);\n }\n /**\n @internal\n */\n get empty() { return this.flags == 0 && this.transactions.length == 0; }\n}\n\nclass DocView extends ContentView {\n get length() { return this.view.state.doc.length; }\n constructor(view) {\n super();\n this.view = view;\n this.decorations = [];\n this.dynamicDecorationMap = [false];\n this.domChanged = null;\n this.hasComposition = null;\n this.markedForComposition = new Set;\n this.editContextFormatting = Decoration.none;\n this.lastCompositionAfterCursor = false;\n // Track a minimum width for the editor. When measuring sizes in\n // measureVisibleLineHeights, this is updated to point at the width\n // of a given element and its extent in the document. When a change\n // happens in that range, these are reset. That way, once we've seen\n // a line/element of a given length, we keep the editor wide enough\n // to fit at least that element, until it is changed, at which point\n // we forget it again.\n this.minWidth = 0;\n this.minWidthFrom = 0;\n this.minWidthTo = 0;\n // Track whether the DOM selection was set in a lossy way, so that\n // we don't mess it up when reading it back it\n this.impreciseAnchor = null;\n this.impreciseHead = null;\n this.forceSelection = false;\n // Used by the resize observer to ignore resizes that we caused\n // ourselves\n this.lastUpdate = Date.now();\n this.setDOM(view.contentDOM);\n this.children = [new LineView];\n this.children[0].setParent(this);\n this.updateDeco();\n this.updateInner([new ChangedRange(0, 0, 0, view.state.doc.length)], 0, null);\n }\n // Update the document view to a given state.\n update(update) {\n var _a;\n let changedRanges = update.changedRanges;\n if (this.minWidth > 0 && changedRanges.length) {\n if (!changedRanges.every(({ fromA, toA }) => toA < this.minWidthFrom || fromA > this.minWidthTo)) {\n this.minWidth = this.minWidthFrom = this.minWidthTo = 0;\n }\n else {\n this.minWidthFrom = update.changes.mapPos(this.minWidthFrom, 1);\n this.minWidthTo = update.changes.mapPos(this.minWidthTo, 1);\n }\n }\n this.updateEditContextFormatting(update);\n let readCompositionAt = -1;\n if (this.view.inputState.composing >= 0 && !this.view.observer.editContext) {\n if ((_a = this.domChanged) === null || _a === void 0 ? void 0 : _a.newSel)\n readCompositionAt = this.domChanged.newSel.head;\n else if (!touchesComposition(update.changes, this.hasComposition) && !update.selectionSet)\n readCompositionAt = update.state.selection.main.head;\n }\n let composition = readCompositionAt > -1 ? findCompositionRange(this.view, update.changes, readCompositionAt) : null;\n this.domChanged = null;\n if (this.hasComposition) {\n this.markedForComposition.clear();\n let { from, to } = this.hasComposition;\n changedRanges = new ChangedRange(from, to, update.changes.mapPos(from, -1), update.changes.mapPos(to, 1))\n .addToSet(changedRanges.slice());\n }\n this.hasComposition = composition ? { from: composition.range.fromB, to: composition.range.toB } : null;\n // When the DOM nodes around the selection are moved to another\n // parent, Chrome sometimes reports a different selection through\n // getSelection than the one that it actually shows to the user.\n // This forces a selection update when lines are joined to work\n // around that. Issue #54\n if ((browser.ie || browser.chrome) && !composition && update &&\n update.state.doc.lines != update.startState.doc.lines)\n this.forceSelection = true;\n let prevDeco = this.decorations, deco = this.updateDeco();\n let decoDiff = findChangedDeco(prevDeco, deco, update.changes);\n changedRanges = ChangedRange.extendWithRanges(changedRanges, decoDiff);\n if (!(this.flags & 7 /* ViewFlag.Dirty */) && changedRanges.length == 0) {\n return false;\n }\n else {\n this.updateInner(changedRanges, update.startState.doc.length, composition);\n if (update.transactions.length)\n this.lastUpdate = Date.now();\n return true;\n }\n }\n // Used by update and the constructor do perform the actual DOM\n // update\n updateInner(changes, oldLength, composition) {\n this.view.viewState.mustMeasureContent = true;\n this.updateChildren(changes, oldLength, composition);\n let { observer } = this.view;\n observer.ignore(() => {\n // Lock the height during redrawing, since Chrome sometimes\n // messes with the scroll position during DOM mutation (though\n // no relayout is triggered and I cannot imagine how it can\n // recompute the scroll position without a layout)\n this.dom.style.height = this.view.viewState.contentHeight / this.view.scaleY + \"px\";\n this.dom.style.flexBasis = this.minWidth ? this.minWidth + \"px\" : \"\";\n // Chrome will sometimes, when DOM mutations occur directly\n // around the selection, get confused and report a different\n // selection from the one it displays (issue #218). This tries\n // to detect that situation.\n let track = browser.chrome || browser.ios ? { node: observer.selectionRange.focusNode, written: false } : undefined;\n this.sync(this.view, track);\n this.flags &= ~7 /* ViewFlag.Dirty */;\n if (track && (track.written || observer.selectionRange.focusNode != track.node))\n this.forceSelection = true;\n this.dom.style.height = \"\";\n });\n this.markedForComposition.forEach(cView => cView.flags &= ~8 /* ViewFlag.Composition */);\n let gaps = [];\n if (this.view.viewport.from || this.view.viewport.to < this.view.state.doc.length)\n for (let child of this.children)\n if (child instanceof BlockWidgetView && child.widget instanceof BlockGapWidget)\n gaps.push(child.dom);\n observer.updateGaps(gaps);\n }\n updateChildren(changes, oldLength, composition) {\n let ranges = composition ? composition.range.addToSet(changes.slice()) : changes;\n let cursor = this.childCursor(oldLength);\n for (let i = ranges.length - 1;; i--) {\n let next = i >= 0 ? ranges[i] : null;\n if (!next)\n break;\n let { fromA, toA, fromB, toB } = next, content, breakAtStart, openStart, openEnd;\n if (composition && composition.range.fromB < toB && composition.range.toB > fromB) {\n let before = ContentBuilder.build(this.view.state.doc, fromB, composition.range.fromB, this.decorations, this.dynamicDecorationMap);\n let after = ContentBuilder.build(this.view.state.doc, composition.range.toB, toB, this.decorations, this.dynamicDecorationMap);\n breakAtStart = before.breakAtStart;\n openStart = before.openStart;\n openEnd = after.openEnd;\n let compLine = this.compositionView(composition);\n if (after.breakAtStart) {\n compLine.breakAfter = 1;\n }\n else if (after.content.length &&\n compLine.merge(compLine.length, compLine.length, after.content[0], false, after.openStart, 0)) {\n compLine.breakAfter = after.content[0].breakAfter;\n after.content.shift();\n }\n if (before.content.length &&\n compLine.merge(0, 0, before.content[before.content.length - 1], true, 0, before.openEnd)) {\n before.content.pop();\n }\n content = before.content.concat(compLine).concat(after.content);\n }\n else {\n ({ content, breakAtStart, openStart, openEnd } =\n ContentBuilder.build(this.view.state.doc, fromB, toB, this.decorations, this.dynamicDecorationMap));\n }\n let { i: toI, off: toOff } = cursor.findPos(toA, 1);\n let { i: fromI, off: fromOff } = cursor.findPos(fromA, -1);\n replaceRange(this, fromI, fromOff, toI, toOff, content, breakAtStart, openStart, openEnd);\n }\n if (composition)\n this.fixCompositionDOM(composition);\n }\n updateEditContextFormatting(update) {\n this.editContextFormatting = this.editContextFormatting.map(update.changes);\n for (let tr of update.transactions)\n for (let effect of tr.effects)\n if (effect.is(setEditContextFormatting)) {\n this.editContextFormatting = effect.value;\n }\n }\n compositionView(composition) {\n let cur = new TextView(composition.text.nodeValue);\n cur.flags |= 8 /* ViewFlag.Composition */;\n for (let { deco } of composition.marks)\n cur = new MarkView(deco, [cur], cur.length);\n let line = new LineView;\n line.append(cur, 0);\n return line;\n }\n fixCompositionDOM(composition) {\n let fix = (dom, cView) => {\n cView.flags |= 8 /* ViewFlag.Composition */ | (cView.children.some(c => c.flags & 7 /* ViewFlag.Dirty */) ? 1 /* ViewFlag.ChildDirty */ : 0);\n this.markedForComposition.add(cView);\n let prev = ContentView.get(dom);\n if (prev && prev != cView)\n prev.dom = null;\n cView.setDOM(dom);\n };\n let pos = this.childPos(composition.range.fromB, 1);\n let cView = this.children[pos.i];\n fix(composition.line, cView);\n for (let i = composition.marks.length - 1; i >= -1; i--) {\n pos = cView.childPos(pos.off, 1);\n cView = cView.children[pos.i];\n fix(i >= 0 ? composition.marks[i].node : composition.text, cView);\n }\n }\n // Sync the DOM selection to this.state.selection\n updateSelection(mustRead = false, fromPointer = false) {\n if (mustRead || !this.view.observer.selectionRange.focusNode)\n this.view.observer.readSelectionRange();\n let activeElt = this.view.root.activeElement, focused = activeElt == this.dom;\n let selectionNotFocus = !focused &&\n hasSelection(this.dom, this.view.observer.selectionRange) && !(activeElt && this.dom.contains(activeElt));\n if (!(focused || fromPointer || selectionNotFocus))\n return;\n let force = this.forceSelection;\n this.forceSelection = false;\n let main = this.view.state.selection.main;\n let anchor = this.moveToLine(this.domAtPos(main.anchor));\n let head = main.empty ? anchor : this.moveToLine(this.domAtPos(main.head));\n // Always reset on Firefox when next to an uneditable node to\n // avoid invisible cursor bugs (#111)\n if (browser.gecko && main.empty && !this.hasComposition && betweenUneditable(anchor)) {\n let dummy = document.createTextNode(\"\");\n this.view.observer.ignore(() => anchor.node.insertBefore(dummy, anchor.node.childNodes[anchor.offset] || null));\n anchor = head = new DOMPos(dummy, 0);\n force = true;\n }\n let domSel = this.view.observer.selectionRange;\n // If the selection is already here, or in an equivalent position, don't touch it\n if (force || !domSel.focusNode || (!isEquivalentPosition(anchor.node, anchor.offset, domSel.anchorNode, domSel.anchorOffset) ||\n !isEquivalentPosition(head.node, head.offset, domSel.focusNode, domSel.focusOffset)) && !this.suppressWidgetCursorChange(domSel, main)) {\n this.view.observer.ignore(() => {\n // Chrome Android will hide the virtual keyboard when tapping\n // inside an uneditable node, and not bring it back when we\n // move the cursor to its proper position. This tries to\n // restore the keyboard by cycling focus.\n if (browser.android && browser.chrome && this.dom.contains(domSel.focusNode) &&\n inUneditable(domSel.focusNode, this.dom)) {\n this.dom.blur();\n this.dom.focus({ preventScroll: true });\n }\n let rawSel = getSelection(this.view.root);\n if (!rawSel) ;\n else if (main.empty) {\n // Work around https://bugzilla.mozilla.org/show_bug.cgi?id=1612076\n if (browser.gecko) {\n let nextTo = nextToUneditable(anchor.node, anchor.offset);\n if (nextTo && nextTo != (1 /* NextTo.Before */ | 2 /* NextTo.After */)) {\n let text = (nextTo == 1 /* NextTo.Before */ ? textNodeBefore : textNodeAfter)(anchor.node, anchor.offset);\n if (text)\n anchor = new DOMPos(text.node, text.offset);\n }\n }\n rawSel.collapse(anchor.node, anchor.offset);\n if (main.bidiLevel != null && rawSel.caretBidiLevel !== undefined)\n rawSel.caretBidiLevel = main.bidiLevel;\n }\n else if (rawSel.extend) {\n // Selection.extend can be used to create an 'inverted' selection\n // (one where the focus is before the anchor), but not all\n // browsers support it yet.\n rawSel.collapse(anchor.node, anchor.offset);\n // Safari will ignore the call above when the editor is\n // hidden, and then raise an error on the call to extend\n // (#940).\n try {\n rawSel.extend(head.node, head.offset);\n }\n catch (_) { }\n }\n else {\n // Primitive (IE) way\n let range = document.createRange();\n if (main.anchor > main.head)\n [anchor, head] = [head, anchor];\n range.setEnd(head.node, head.offset);\n range.setStart(anchor.node, anchor.offset);\n rawSel.removeAllRanges();\n rawSel.addRange(range);\n }\n if (selectionNotFocus && this.view.root.activeElement == this.dom) {\n this.dom.blur();\n if (activeElt)\n activeElt.focus();\n }\n });\n this.view.observer.setSelectionRange(anchor, head);\n }\n this.impreciseAnchor = anchor.precise ? null : new DOMPos(domSel.anchorNode, domSel.anchorOffset);\n this.impreciseHead = head.precise ? null : new DOMPos(domSel.focusNode, domSel.focusOffset);\n }\n // If a zero-length widget is inserted next to the cursor during\n // composition, avoid moving it across it and disrupting the\n // composition.\n suppressWidgetCursorChange(sel, cursor) {\n return this.hasComposition && cursor.empty &&\n isEquivalentPosition(sel.focusNode, sel.focusOffset, sel.anchorNode, sel.anchorOffset) &&\n this.posFromDOM(sel.focusNode, sel.focusOffset) == cursor.head;\n }\n enforceCursorAssoc() {\n if (this.hasComposition)\n return;\n let { view } = this, cursor = view.state.selection.main;\n let sel = getSelection(view.root);\n let { anchorNode, anchorOffset } = view.observer.selectionRange;\n if (!sel || !cursor.empty || !cursor.assoc || !sel.modify)\n return;\n let line = LineView.find(this, cursor.head);\n if (!line)\n return;\n let lineStart = line.posAtStart;\n if (cursor.head == lineStart || cursor.head == lineStart + line.length)\n return;\n let before = this.coordsAt(cursor.head, -1), after = this.coordsAt(cursor.head, 1);\n if (!before || !after || before.bottom > after.top)\n return;\n let dom = this.domAtPos(cursor.head + cursor.assoc);\n sel.collapse(dom.node, dom.offset);\n sel.modify(\"move\", cursor.assoc < 0 ? \"forward\" : \"backward\", \"lineboundary\");\n // This can go wrong in corner cases like single-character lines,\n // so check and reset if necessary.\n view.observer.readSelectionRange();\n let newRange = view.observer.selectionRange;\n if (view.docView.posFromDOM(newRange.anchorNode, newRange.anchorOffset) != cursor.from)\n sel.collapse(anchorNode, anchorOffset);\n }\n // If a position is in/near a block widget, move it to a nearby text\n // line, since we don't want the cursor inside a block widget.\n moveToLine(pos) {\n // Block widgets will return positions before/after them, which\n // are thus directly in the document DOM element.\n let dom = this.dom, newPos;\n if (pos.node != dom)\n return pos;\n for (let i = pos.offset; !newPos && i < dom.childNodes.length; i++) {\n let view = ContentView.get(dom.childNodes[i]);\n if (view instanceof LineView)\n newPos = view.domAtPos(0);\n }\n for (let i = pos.offset - 1; !newPos && i >= 0; i--) {\n let view = ContentView.get(dom.childNodes[i]);\n if (view instanceof LineView)\n newPos = view.domAtPos(view.length);\n }\n return newPos ? new DOMPos(newPos.node, newPos.offset, true) : pos;\n }\n nearest(dom) {\n for (let cur = dom; cur;) {\n let domView = ContentView.get(cur);\n if (domView && domView.rootView == this)\n return domView;\n cur = cur.parentNode;\n }\n return null;\n }\n posFromDOM(node, offset) {\n let view = this.nearest(node);\n if (!view)\n throw new RangeError(\"Trying to find position for a DOM position outside of the document\");\n return view.localPosFromDOM(node, offset) + view.posAtStart;\n }\n domAtPos(pos) {\n let { i, off } = this.childCursor().findPos(pos, -1);\n for (; i < this.children.length - 1;) {\n let child = this.children[i];\n if (off < child.length || child instanceof LineView)\n break;\n i++;\n off = 0;\n }\n return this.children[i].domAtPos(off);\n }\n coordsAt(pos, side) {\n let best = null, bestPos = 0;\n for (let off = this.length, i = this.children.length - 1; i >= 0; i--) {\n let child = this.children[i], end = off - child.breakAfter, start = end - child.length;\n if (end < pos)\n break;\n if (start <= pos && (start < pos || child.covers(-1)) && (end > pos || child.covers(1)) &&\n (!best || child instanceof LineView && !(best instanceof LineView && side >= 0))) {\n best = child;\n bestPos = start;\n }\n else if (best && start == pos && end == pos && child instanceof BlockWidgetView && Math.abs(side) < 2) {\n if (child.deco.startSide < 0)\n break;\n else if (i)\n best = null;\n }\n off = start;\n }\n return best ? best.coordsAt(pos - bestPos, side) : null;\n }\n coordsForChar(pos) {\n let { i, off } = this.childPos(pos, 1), child = this.children[i];\n if (!(child instanceof LineView))\n return null;\n while (child.children.length) {\n let { i, off: childOff } = child.childPos(off, 1);\n for (;; i++) {\n if (i == child.children.length)\n return null;\n if ((child = child.children[i]).length)\n break;\n }\n off = childOff;\n }\n if (!(child instanceof TextView))\n return null;\n let end = findClusterBreak(child.text, off);\n if (end == off)\n return null;\n let rects = textRange(child.dom, off, end).getClientRects();\n for (let i = 0; i < rects.length; i++) {\n let rect = rects[i];\n if (i == rects.length - 1 || rect.top < rect.bottom && rect.left < rect.right)\n return rect;\n }\n return null;\n }\n measureVisibleLineHeights(viewport) {\n let result = [], { from, to } = viewport;\n let contentWidth = this.view.contentDOM.clientWidth;\n let isWider = contentWidth > Math.max(this.view.scrollDOM.clientWidth, this.minWidth) + 1;\n let widest = -1, ltr = this.view.textDirection == Direction.LTR;\n for (let pos = 0, i = 0; i < this.children.length; i++) {\n let child = this.children[i], end = pos + child.length;\n if (end > to)\n break;\n if (pos >= from) {\n let childRect = child.dom.getBoundingClientRect();\n result.push(childRect.height);\n if (isWider) {\n let last = child.dom.lastChild;\n let rects = last ? clientRectsFor(last) : [];\n if (rects.length) {\n let rect = rects[rects.length - 1];\n let width = ltr ? rect.right - childRect.left : childRect.right - rect.left;\n if (width > widest) {\n widest = width;\n this.minWidth = contentWidth;\n this.minWidthFrom = pos;\n this.minWidthTo = end;\n }\n }\n }\n }\n pos = end + child.breakAfter;\n }\n return result;\n }\n textDirectionAt(pos) {\n let { i } = this.childPos(pos, 1);\n return getComputedStyle(this.children[i].dom).direction == \"rtl\" ? Direction.RTL : Direction.LTR;\n }\n measureTextSize() {\n for (let child of this.children) {\n if (child instanceof LineView) {\n let measure = child.measureTextSize();\n if (measure)\n return measure;\n }\n }\n // If no workable line exists, force a layout of a measurable element\n let dummy = document.createElement(\"div\"), lineHeight, charWidth, textHeight;\n dummy.className = \"cm-line\";\n dummy.style.width = \"99999px\";\n dummy.style.position = \"absolute\";\n dummy.textContent = \"abc def ghi jkl mno pqr stu\";\n this.view.observer.ignore(() => {\n this.dom.appendChild(dummy);\n let rect = clientRectsFor(dummy.firstChild)[0];\n lineHeight = dummy.getBoundingClientRect().height;\n charWidth = rect ? rect.width / 27 : 7;\n textHeight = rect ? rect.height : lineHeight;\n dummy.remove();\n });\n return { lineHeight, charWidth, textHeight };\n }\n childCursor(pos = this.length) {\n // Move back to start of last element when possible, so that\n // `ChildCursor.findPos` doesn't have to deal with the edge case\n // of being after the last element.\n let i = this.children.length;\n if (i)\n pos -= this.children[--i].length;\n return new ChildCursor(this.children, pos, i);\n }\n computeBlockGapDeco() {\n let deco = [], vs = this.view.viewState;\n for (let pos = 0, i = 0;; i++) {\n let next = i == vs.viewports.length ? null : vs.viewports[i];\n let end = next ? next.from - 1 : this.length;\n if (end > pos) {\n let height = (vs.lineBlockAt(end).bottom - vs.lineBlockAt(pos).top) / this.view.scaleY;\n deco.push(Decoration.replace({\n widget: new BlockGapWidget(height),\n block: true,\n inclusive: true,\n isBlockGap: true,\n }).range(pos, end));\n }\n if (!next)\n break;\n pos = next.to + 1;\n }\n return Decoration.set(deco);\n }\n updateDeco() {\n let i = 1;\n let allDeco = this.view.state.facet(decorations).map(d => {\n let dynamic = this.dynamicDecorationMap[i++] = typeof d == \"function\";\n return dynamic ? d(this.view) : d;\n });\n let dynamicOuter = false, outerDeco = this.view.state.facet(outerDecorations).map((d, i) => {\n let dynamic = typeof d == \"function\";\n if (dynamic)\n dynamicOuter = true;\n return dynamic ? d(this.view) : d;\n });\n if (outerDeco.length) {\n this.dynamicDecorationMap[i++] = dynamicOuter;\n allDeco.push(RangeSet.join(outerDeco));\n }\n this.decorations = [\n this.editContextFormatting,\n ...allDeco,\n this.computeBlockGapDeco(),\n this.view.viewState.lineGapDeco\n ];\n while (i < this.decorations.length)\n this.dynamicDecorationMap[i++] = false;\n return this.decorations;\n }\n scrollIntoView(target) {\n if (target.isSnapshot) {\n let ref = this.view.viewState.lineBlockAt(target.range.head);\n this.view.scrollDOM.scrollTop = ref.top - target.yMargin;\n this.view.scrollDOM.scrollLeft = target.xMargin;\n return;\n }\n for (let handler of this.view.state.facet(scrollHandler)) {\n try {\n if (handler(this.view, target.range, target))\n return true;\n }\n catch (e) {\n logException(this.view.state, e, \"scroll handler\");\n }\n }\n let { range } = target;\n let rect = this.coordsAt(range.head, range.empty ? range.assoc : range.head > range.anchor ? -1 : 1), other;\n if (!rect)\n return;\n if (!range.empty && (other = this.coordsAt(range.anchor, range.anchor > range.head ? -1 : 1)))\n rect = { left: Math.min(rect.left, other.left), top: Math.min(rect.top, other.top),\n right: Math.max(rect.right, other.right), bottom: Math.max(rect.bottom, other.bottom) };\n let margins = getScrollMargins(this.view);\n let targetRect = {\n left: rect.left - margins.left, top: rect.top - margins.top,\n right: rect.right + margins.right, bottom: rect.bottom + margins.bottom\n };\n let { offsetWidth, offsetHeight } = this.view.scrollDOM;\n scrollRectIntoView(this.view.scrollDOM, targetRect, range.head < range.anchor ? -1 : 1, target.x, target.y, Math.max(Math.min(target.xMargin, offsetWidth), -offsetWidth), Math.max(Math.min(target.yMargin, offsetHeight), -offsetHeight), this.view.textDirection == Direction.LTR);\n }\n}\nfunction betweenUneditable(pos) {\n return pos.node.nodeType == 1 && pos.node.firstChild &&\n (pos.offset == 0 || pos.node.childNodes[pos.offset - 1].contentEditable == \"false\") &&\n (pos.offset == pos.node.childNodes.length || pos.node.childNodes[pos.offset].contentEditable == \"false\");\n}\nclass BlockGapWidget extends WidgetType {\n constructor(height) {\n super();\n this.height = height;\n }\n toDOM() {\n let elt = document.createElement(\"div\");\n elt.className = \"cm-gap\";\n this.updateDOM(elt);\n return elt;\n }\n eq(other) { return other.height == this.height; }\n updateDOM(elt) {\n elt.style.height = this.height + \"px\";\n return true;\n }\n get editable() { return true; }\n get estimatedHeight() { return this.height; }\n ignoreEvent() { return false; }\n}\nfunction findCompositionNode(view, headPos) {\n let sel = view.observer.selectionRange;\n if (!sel.focusNode)\n return null;\n let textBefore = textNodeBefore(sel.focusNode, sel.focusOffset);\n let textAfter = textNodeAfter(sel.focusNode, sel.focusOffset);\n let textNode = textBefore || textAfter;\n if (textAfter && textBefore && textAfter.node != textBefore.node) {\n let descAfter = ContentView.get(textAfter.node);\n if (!descAfter || descAfter instanceof TextView && descAfter.text != textAfter.node.nodeValue) {\n textNode = textAfter;\n }\n else if (view.docView.lastCompositionAfterCursor) {\n let descBefore = ContentView.get(textBefore.node);\n if (!(!descBefore || descBefore instanceof TextView && descBefore.text != textBefore.node.nodeValue))\n textNode = textAfter;\n }\n }\n view.docView.lastCompositionAfterCursor = textNode != textBefore;\n if (!textNode)\n return null;\n let from = headPos - textNode.offset;\n return { from, to: from + textNode.node.nodeValue.length, node: textNode.node };\n}\nfunction findCompositionRange(view, changes, headPos) {\n let found = findCompositionNode(view, headPos);\n if (!found)\n return null;\n let { node: textNode, from, to } = found, text = textNode.nodeValue;\n // Don't try to preserve multi-line compositions\n if (/[\\n\\r]/.test(text))\n return null;\n if (view.state.doc.sliceString(found.from, found.to) != text)\n return null;\n let inv = changes.invertedDesc;\n let range = new ChangedRange(inv.mapPos(from), inv.mapPos(to), from, to);\n let marks = [];\n for (let parent = textNode.parentNode;; parent = parent.parentNode) {\n let parentView = ContentView.get(parent);\n if (parentView instanceof MarkView)\n marks.push({ node: parent, deco: parentView.mark });\n else if (parentView instanceof LineView || parent.nodeName == \"DIV\" && parent.parentNode == view.contentDOM)\n return { range, text: textNode, marks, line: parent };\n else if (parent != view.contentDOM)\n marks.push({ node: parent, deco: new MarkDecoration({\n inclusive: true,\n attributes: getAttrs(parent),\n tagName: parent.tagName.toLowerCase()\n }) });\n else\n return null;\n }\n}\nfunction nextToUneditable(node, offset) {\n if (node.nodeType != 1)\n return 0;\n return (offset && node.childNodes[offset - 1].contentEditable == \"false\" ? 1 /* NextTo.Before */ : 0) |\n (offset < node.childNodes.length && node.childNodes[offset].contentEditable == \"false\" ? 2 /* NextTo.After */ : 0);\n}\nlet DecorationComparator$1 = class DecorationComparator {\n constructor() {\n this.changes = [];\n }\n compareRange(from, to) { addRange(from, to, this.changes); }\n comparePoint(from, to) { addRange(from, to, this.changes); }\n};\nfunction findChangedDeco(a, b, diff) {\n let comp = new DecorationComparator$1;\n RangeSet.compare(a, b, diff, comp);\n return comp.changes;\n}\nfunction inUneditable(node, inside) {\n for (let cur = node; cur && cur != inside; cur = cur.assignedSlot || cur.parentNode) {\n if (cur.nodeType == 1 && cur.contentEditable == 'false') {\n return true;\n }\n }\n return false;\n}\nfunction touchesComposition(changes, composition) {\n let touched = false;\n if (composition)\n changes.iterChangedRanges((from, to) => {\n if (from < composition.to && to > composition.from)\n touched = true;\n });\n return touched;\n}\n\nfunction groupAt(state, pos, bias = 1) {\n let categorize = state.charCategorizer(pos);\n let line = state.doc.lineAt(pos), linePos = pos - line.from;\n if (line.length == 0)\n return EditorSelection.cursor(pos);\n if (linePos == 0)\n bias = 1;\n else if (linePos == line.length)\n bias = -1;\n let from = linePos, to = linePos;\n if (bias < 0)\n from = findClusterBreak(line.text, linePos, false);\n else\n to = findClusterBreak(line.text, linePos);\n let cat = categorize(line.text.slice(from, to));\n while (from > 0) {\n let prev = findClusterBreak(line.text, from, false);\n if (categorize(line.text.slice(prev, from)) != cat)\n break;\n from = prev;\n }\n while (to < line.length) {\n let next = findClusterBreak(line.text, to);\n if (categorize(line.text.slice(to, next)) != cat)\n break;\n to = next;\n }\n return EditorSelection.range(from + line.from, to + line.from);\n}\n// Search the DOM for the {node, offset} position closest to the given\n// coordinates. Very inefficient and crude, but can usually be avoided\n// by calling caret(Position|Range)FromPoint instead.\nfunction getdx(x, rect) {\n return rect.left > x ? rect.left - x : Math.max(0, x - rect.right);\n}\nfunction getdy(y, rect) {\n return rect.top > y ? rect.top - y : Math.max(0, y - rect.bottom);\n}\nfunction yOverlap(a, b) {\n return a.top < b.bottom - 1 && a.bottom > b.top + 1;\n}\nfunction upTop(rect, top) {\n return top < rect.top ? { top, left: rect.left, right: rect.right, bottom: rect.bottom } : rect;\n}\nfunction upBot(rect, bottom) {\n return bottom > rect.bottom ? { top: rect.top, left: rect.left, right: rect.right, bottom } : rect;\n}\nfunction domPosAtCoords(parent, x, y) {\n let closest, closestRect, closestX, closestY, closestOverlap = false;\n let above, below, aboveRect, belowRect;\n for (let child = parent.firstChild; child; child = child.nextSibling) {\n let rects = clientRectsFor(child);\n for (let i = 0; i < rects.length; i++) {\n let rect = rects[i];\n if (closestRect && yOverlap(closestRect, rect))\n rect = upTop(upBot(rect, closestRect.bottom), closestRect.top);\n let dx = getdx(x, rect), dy = getdy(y, rect);\n if (dx == 0 && dy == 0)\n return child.nodeType == 3 ? domPosInText(child, x, y) : domPosAtCoords(child, x, y);\n if (!closest || closestY > dy || closestY == dy && closestX > dx) {\n closest = child;\n closestRect = rect;\n closestX = dx;\n closestY = dy;\n let side = dy ? (y < rect.top ? -1 : 1) : dx ? (x < rect.left ? -1 : 1) : 0;\n closestOverlap = !side || (side > 0 ? i < rects.length - 1 : i > 0);\n }\n if (dx == 0) {\n if (y > rect.bottom && (!aboveRect || aboveRect.bottom < rect.bottom)) {\n above = child;\n aboveRect = rect;\n }\n else if (y < rect.top && (!belowRect || belowRect.top > rect.top)) {\n below = child;\n belowRect = rect;\n }\n }\n else if (aboveRect && yOverlap(aboveRect, rect)) {\n aboveRect = upBot(aboveRect, rect.bottom);\n }\n else if (belowRect && yOverlap(belowRect, rect)) {\n belowRect = upTop(belowRect, rect.top);\n }\n }\n }\n if (aboveRect && aboveRect.bottom >= y) {\n closest = above;\n closestRect = aboveRect;\n }\n else if (belowRect && belowRect.top <= y) {\n closest = below;\n closestRect = belowRect;\n }\n if (!closest)\n return { node: parent, offset: 0 };\n let clipX = Math.max(closestRect.left, Math.min(closestRect.right, x));\n if (closest.nodeType == 3)\n return domPosInText(closest, clipX, y);\n if (closestOverlap && closest.contentEditable != \"false\")\n return domPosAtCoords(closest, clipX, y);\n let offset = Array.prototype.indexOf.call(parent.childNodes, closest) +\n (x >= (closestRect.left + closestRect.right) / 2 ? 1 : 0);\n return { node: parent, offset };\n}\nfunction domPosInText(node, x, y) {\n let len = node.nodeValue.length;\n let closestOffset = -1, closestDY = 1e9, generalSide = 0;\n for (let i = 0; i < len; i++) {\n let rects = textRange(node, i, i + 1).getClientRects();\n for (let j = 0; j < rects.length; j++) {\n let rect = rects[j];\n if (rect.top == rect.bottom)\n continue;\n if (!generalSide)\n generalSide = x - rect.left;\n let dy = (rect.top > y ? rect.top - y : y - rect.bottom) - 1;\n if (rect.left - 1 <= x && rect.right + 1 >= x && dy < closestDY) {\n let right = x >= (rect.left + rect.right) / 2, after = right;\n if (browser.chrome || browser.gecko) {\n // Check for RTL on browsers that support getting client\n // rects for empty ranges.\n let rectBefore = textRange(node, i).getBoundingClientRect();\n if (rectBefore.left == rect.right)\n after = !right;\n }\n if (dy <= 0)\n return { node, offset: i + (after ? 1 : 0) };\n closestOffset = i + (after ? 1 : 0);\n closestDY = dy;\n }\n }\n }\n return { node, offset: closestOffset > -1 ? closestOffset : generalSide > 0 ? node.nodeValue.length : 0 };\n}\nfunction posAtCoords(view, coords, precise, bias = -1) {\n var _a, _b;\n let content = view.contentDOM.getBoundingClientRect(), docTop = content.top + view.viewState.paddingTop;\n let block, { docHeight } = view.viewState;\n let { x, y } = coords, yOffset = y - docTop;\n if (yOffset < 0)\n return 0;\n if (yOffset > docHeight)\n return view.state.doc.length;\n // Scan for a text block near the queried y position\n for (let halfLine = view.viewState.heightOracle.textHeight / 2, bounced = false;;) {\n block = view.elementAtHeight(yOffset);\n if (block.type == BlockType.Text)\n break;\n for (;;) {\n // Move the y position out of this block\n yOffset = bias > 0 ? block.bottom + halfLine : block.top - halfLine;\n if (yOffset >= 0 && yOffset <= docHeight)\n break;\n // If the document consists entirely of replaced widgets, we\n // won't find a text block, so return 0\n if (bounced)\n return precise ? null : 0;\n bounced = true;\n bias = -bias;\n }\n }\n y = docTop + yOffset;\n let lineStart = block.from;\n // If this is outside of the rendered viewport, we can't determine a position\n if (lineStart < view.viewport.from)\n return view.viewport.from == 0 ? 0 : precise ? null : posAtCoordsImprecise(view, content, block, x, y);\n if (lineStart > view.viewport.to)\n return view.viewport.to == view.state.doc.length ? view.state.doc.length :\n precise ? null : posAtCoordsImprecise(view, content, block, x, y);\n // Prefer ShadowRootOrDocument.elementFromPoint if present, fall back to document if not\n let doc = view.dom.ownerDocument;\n let root = view.root.elementFromPoint ? view.root : doc;\n let element = root.elementFromPoint(x, y);\n if (element && !view.contentDOM.contains(element))\n element = null;\n // If the element is unexpected, clip x at the sides of the content area and try again\n if (!element) {\n x = Math.max(content.left + 1, Math.min(content.right - 1, x));\n element = root.elementFromPoint(x, y);\n if (element && !view.contentDOM.contains(element))\n element = null;\n }\n // There's visible editor content under the point, so we can try\n // using caret(Position|Range)FromPoint as a shortcut\n let node, offset = -1;\n if (element && ((_a = view.docView.nearest(element)) === null || _a === void 0 ? void 0 : _a.isEditable) != false) {\n if (doc.caretPositionFromPoint) {\n let pos = doc.caretPositionFromPoint(x, y);\n if (pos)\n ({ offsetNode: node, offset } = pos);\n }\n else if (doc.caretRangeFromPoint) {\n let range = doc.caretRangeFromPoint(x, y);\n if (range) {\n ({ startContainer: node, startOffset: offset } = range);\n if (!view.contentDOM.contains(node) ||\n browser.safari && isSuspiciousSafariCaretResult(node, offset, x) ||\n browser.chrome && isSuspiciousChromeCaretResult(node, offset, x))\n node = undefined;\n }\n }\n }\n // No luck, do our own (potentially expensive) search\n if (!node || !view.docView.dom.contains(node)) {\n let line = LineView.find(view.docView, lineStart);\n if (!line)\n return yOffset > block.top + block.height / 2 ? block.to : block.from;\n ({ node, offset } = domPosAtCoords(line.dom, x, y));\n }\n let nearest = view.docView.nearest(node);\n if (!nearest)\n return null;\n if (nearest.isWidget && ((_b = nearest.dom) === null || _b === void 0 ? void 0 : _b.nodeType) == 1) {\n let rect = nearest.dom.getBoundingClientRect();\n return coords.y < rect.top || coords.y <= rect.bottom && coords.x <= (rect.left + rect.right) / 2\n ? nearest.posAtStart : nearest.posAtEnd;\n }\n else {\n return nearest.localPosFromDOM(node, offset) + nearest.posAtStart;\n }\n}\nfunction posAtCoordsImprecise(view, contentRect, block, x, y) {\n let into = Math.round((x - contentRect.left) * view.defaultCharacterWidth);\n if (view.lineWrapping && block.height > view.defaultLineHeight * 1.5) {\n let textHeight = view.viewState.heightOracle.textHeight;\n let line = Math.floor((y - block.top - (view.defaultLineHeight - textHeight) * 0.5) / textHeight);\n into += line * view.viewState.heightOracle.lineLength;\n }\n let content = view.state.sliceDoc(block.from, block.to);\n return block.from + findColumn(content, into, view.state.tabSize);\n}\n// In case of a high line height, Safari's caretRangeFromPoint treats\n// the space between lines as belonging to the last character of the\n// line before. This is used to detect such a result so that it can be\n// ignored (issue #401).\nfunction isSuspiciousSafariCaretResult(node, offset, x) {\n let len;\n if (node.nodeType != 3 || offset != (len = node.nodeValue.length))\n return false;\n for (let next = node.nextSibling; next; next = next.nextSibling)\n if (next.nodeType != 1 || next.nodeName != \"BR\")\n return false;\n return textRange(node, len - 1, len).getBoundingClientRect().left > x;\n}\n// Chrome will move positions between lines to the start of the next line\nfunction isSuspiciousChromeCaretResult(node, offset, x) {\n if (offset != 0)\n return false;\n for (let cur = node;;) {\n let parent = cur.parentNode;\n if (!parent || parent.nodeType != 1 || parent.firstChild != cur)\n return false;\n if (parent.classList.contains(\"cm-line\"))\n break;\n cur = parent;\n }\n let rect = node.nodeType == 1 ? node.getBoundingClientRect()\n : textRange(node, 0, Math.max(node.nodeValue.length, 1)).getBoundingClientRect();\n return x - rect.left > 5;\n}\nfunction blockAt(view, pos) {\n let line = view.lineBlockAt(pos);\n if (Array.isArray(line.type))\n for (let l of line.type) {\n if (l.to > pos || l.to == pos && (l.to == line.to || l.type == BlockType.Text))\n return l;\n }\n return line;\n}\nfunction moveToLineBoundary(view, start, forward, includeWrap) {\n let line = blockAt(view, start.head);\n let coords = !includeWrap || line.type != BlockType.Text || !(view.lineWrapping || line.widgetLineBreaks) ? null\n : view.coordsAtPos(start.assoc < 0 && start.head > line.from ? start.head - 1 : start.head);\n if (coords) {\n let editorRect = view.dom.getBoundingClientRect();\n let direction = view.textDirectionAt(line.from);\n let pos = view.posAtCoords({ x: forward == (direction == Direction.LTR) ? editorRect.right - 1 : editorRect.left + 1,\n y: (coords.top + coords.bottom) / 2 });\n if (pos != null)\n return EditorSelection.cursor(pos, forward ? -1 : 1);\n }\n return EditorSelection.cursor(forward ? line.to : line.from, forward ? -1 : 1);\n}\nfunction moveByChar(view, start, forward, by) {\n let line = view.state.doc.lineAt(start.head), spans = view.bidiSpans(line);\n let direction = view.textDirectionAt(line.from);\n for (let cur = start, check = null;;) {\n let next = moveVisually(line, spans, direction, cur, forward), char = movedOver;\n if (!next) {\n if (line.number == (forward ? view.state.doc.lines : 1))\n return cur;\n char = \"\\n\";\n line = view.state.doc.line(line.number + (forward ? 1 : -1));\n spans = view.bidiSpans(line);\n next = view.visualLineSide(line, !forward);\n }\n if (!check) {\n if (!by)\n return next;\n check = by(char);\n }\n else if (!check(char)) {\n return cur;\n }\n cur = next;\n }\n}\nfunction byGroup(view, pos, start) {\n let categorize = view.state.charCategorizer(pos);\n let cat = categorize(start);\n return (next) => {\n let nextCat = categorize(next);\n if (cat == CharCategory.Space)\n cat = nextCat;\n return cat == nextCat;\n };\n}\nfunction moveVertically(view, start, forward, distance) {\n let startPos = start.head, dir = forward ? 1 : -1;\n if (startPos == (forward ? view.state.doc.length : 0))\n return EditorSelection.cursor(startPos, start.assoc);\n let goal = start.goalColumn, startY;\n let rect = view.contentDOM.getBoundingClientRect();\n let startCoords = view.coordsAtPos(startPos, start.assoc || -1), docTop = view.documentTop;\n if (startCoords) {\n if (goal == null)\n goal = startCoords.left - rect.left;\n startY = dir < 0 ? startCoords.top : startCoords.bottom;\n }\n else {\n let line = view.viewState.lineBlockAt(startPos);\n if (goal == null)\n goal = Math.min(rect.right - rect.left, view.defaultCharacterWidth * (startPos - line.from));\n startY = (dir < 0 ? line.top : line.bottom) + docTop;\n }\n let resolvedGoal = rect.left + goal;\n let dist = distance !== null && distance !== void 0 ? distance : (view.viewState.heightOracle.textHeight >> 1);\n for (let extra = 0;; extra += 10) {\n let curY = startY + (dist + extra) * dir;\n let pos = posAtCoords(view, { x: resolvedGoal, y: curY }, false, dir);\n if (curY < rect.top || curY > rect.bottom || (dir < 0 ? pos < startPos : pos > startPos)) {\n let charRect = view.docView.coordsForChar(pos);\n let assoc = !charRect || curY < charRect.top ? -1 : 1;\n return EditorSelection.cursor(pos, assoc, undefined, goal);\n }\n }\n}\nfunction skipAtomicRanges(atoms, pos, bias) {\n for (;;) {\n let moved = 0;\n for (let set of atoms) {\n set.between(pos - 1, pos + 1, (from, to, value) => {\n if (pos > from && pos < to) {\n let side = moved || bias || (pos - from < to - pos ? -1 : 1);\n pos = side < 0 ? from : to;\n moved = side;\n }\n });\n }\n if (!moved)\n return pos;\n }\n}\nfunction skipAtoms(view, oldPos, pos) {\n let newPos = skipAtomicRanges(view.state.facet(atomicRanges).map(f => f(view)), pos.from, oldPos.head > pos.from ? -1 : 1);\n return newPos == pos.from ? pos : EditorSelection.cursor(newPos, newPos < pos.from ? 1 : -1);\n}\n\n// This will also be where dragging info and such goes\nclass InputState {\n setSelectionOrigin(origin) {\n this.lastSelectionOrigin = origin;\n this.lastSelectionTime = Date.now();\n }\n constructor(view) {\n this.view = view;\n this.lastKeyCode = 0;\n this.lastKeyTime = 0;\n this.lastTouchTime = 0;\n this.lastFocusTime = 0;\n this.lastScrollTop = 0;\n this.lastScrollLeft = 0;\n // On iOS, some keys need to have their default behavior happen\n // (after which we retroactively handle them and reset the DOM) to\n // avoid messing up the virtual keyboard state.\n this.pendingIOSKey = undefined;\n /**\n When enabled (>-1), tab presses are not given to key handlers,\n leaving the browser's default behavior. If >0, the mode expires\n at that timestamp, and any other keypress clears it.\n Esc enables temporary tab focus mode for two seconds when not\n otherwise handled.\n */\n this.tabFocusMode = -1;\n this.lastSelectionOrigin = null;\n this.lastSelectionTime = 0;\n this.lastContextMenu = 0;\n this.scrollHandlers = [];\n this.handlers = Object.create(null);\n // -1 means not in a composition. Otherwise, this counts the number\n // of changes made during the composition. The count is used to\n // avoid treating the start state of the composition, before any\n // changes have been made, as part of the composition.\n this.composing = -1;\n // Tracks whether the next change should be marked as starting the\n // composition (null means no composition, true means next is the\n // first, false means first has already been marked for this\n // composition)\n this.compositionFirstChange = null;\n // End time of the previous composition\n this.compositionEndedAt = 0;\n // Used in a kludge to detect when an Enter keypress should be\n // considered part of the composition on Safari, which fires events\n // in the wrong order\n this.compositionPendingKey = false;\n // Used to categorize changes as part of a composition, even when\n // the mutation events fire shortly after the compositionend event\n this.compositionPendingChange = false;\n this.mouseSelection = null;\n // When a drag from the editor is active, this points at the range\n // being dragged.\n this.draggedContent = null;\n this.handleEvent = this.handleEvent.bind(this);\n this.notifiedFocused = view.hasFocus;\n // On Safari adding an input event handler somehow prevents an\n // issue where the composition vanishes when you press enter.\n if (browser.safari)\n view.contentDOM.addEventListener(\"input\", () => null);\n if (browser.gecko)\n firefoxCopyCutHack(view.contentDOM.ownerDocument);\n }\n handleEvent(event) {\n if (!eventBelongsToEditor(this.view, event) || this.ignoreDuringComposition(event))\n return;\n if (event.type == \"keydown\" && this.keydown(event))\n return;\n this.runHandlers(event.type, event);\n }\n runHandlers(type, event) {\n let handlers = this.handlers[type];\n if (handlers) {\n for (let observer of handlers.observers)\n observer(this.view, event);\n for (let handler of handlers.handlers) {\n if (event.defaultPrevented)\n break;\n if (handler(this.view, event)) {\n event.preventDefault();\n break;\n }\n }\n }\n }\n ensureHandlers(plugins) {\n let handlers = computeHandlers(plugins), prev = this.handlers, dom = this.view.contentDOM;\n for (let type in handlers)\n if (type != \"scroll\") {\n let passive = !handlers[type].handlers.length;\n let exists = prev[type];\n if (exists && passive != !exists.handlers.length) {\n dom.removeEventListener(type, this.handleEvent);\n exists = null;\n }\n if (!exists)\n dom.addEventListener(type, this.handleEvent, { passive });\n }\n for (let type in prev)\n if (type != \"scroll\" && !handlers[type])\n dom.removeEventListener(type, this.handleEvent);\n this.handlers = handlers;\n }\n keydown(event) {\n // Must always run, even if a custom handler handled the event\n this.lastKeyCode = event.keyCode;\n this.lastKeyTime = Date.now();\n if (event.keyCode == 9 && this.tabFocusMode > -1 && (!this.tabFocusMode || Date.now() <= this.tabFocusMode))\n return true;\n if (this.tabFocusMode > 0 && event.keyCode != 27 && modifierCodes.indexOf(event.keyCode) < 0)\n this.tabFocusMode = -1;\n // Chrome for Android usually doesn't fire proper key events, but\n // occasionally does, usually surrounded by a bunch of complicated\n // composition changes. When an enter or backspace key event is\n // seen, hold off on handling DOM events for a bit, and then\n // dispatch it.\n if (browser.android && browser.chrome && !event.synthetic &&\n (event.keyCode == 13 || event.keyCode == 8)) {\n this.view.observer.delayAndroidKey(event.key, event.keyCode);\n return true;\n }\n // Preventing the default behavior of Enter on iOS makes the\n // virtual keyboard get stuck in the wrong (lowercase)\n // state. So we let it go through, and then, in\n // applyDOMChange, notify key handlers of it and reset to\n // the state they produce.\n let pending;\n if (browser.ios && !event.synthetic && !event.altKey && !event.metaKey &&\n ((pending = PendingKeys.find(key => key.keyCode == event.keyCode)) && !event.ctrlKey ||\n EmacsyPendingKeys.indexOf(event.key) > -1 && event.ctrlKey && !event.shiftKey)) {\n this.pendingIOSKey = pending || event;\n setTimeout(() => this.flushIOSKey(), 250);\n return true;\n }\n if (event.keyCode != 229)\n this.view.observer.forceFlush();\n return false;\n }\n flushIOSKey(change) {\n let key = this.pendingIOSKey;\n if (!key)\n return false;\n // This looks like an autocorrection before Enter\n if (key.key == \"Enter\" && change && change.from < change.to && /^\\S+$/.test(change.insert.toString()))\n return false;\n this.pendingIOSKey = undefined;\n return dispatchKey(this.view.contentDOM, key.key, key.keyCode, key instanceof KeyboardEvent ? key : undefined);\n }\n ignoreDuringComposition(event) {\n if (!/^key/.test(event.type))\n return false;\n if (this.composing > 0)\n return true;\n // See https://www.stum.de/2016/06/24/handling-ime-events-in-javascript/.\n // On some input method editors (IMEs), the Enter key is used to\n // confirm character selection. On Safari, when Enter is pressed,\n // compositionend and keydown events are sometimes emitted in the\n // wrong order. The key event should still be ignored, even when\n // it happens after the compositionend event.\n if (browser.safari && !browser.ios && this.compositionPendingKey && Date.now() - this.compositionEndedAt < 100) {\n this.compositionPendingKey = false;\n return true;\n }\n return false;\n }\n startMouseSelection(mouseSelection) {\n if (this.mouseSelection)\n this.mouseSelection.destroy();\n this.mouseSelection = mouseSelection;\n }\n update(update) {\n this.view.observer.update(update);\n if (this.mouseSelection)\n this.mouseSelection.update(update);\n if (this.draggedContent && update.docChanged)\n this.draggedContent = this.draggedContent.map(update.changes);\n if (update.transactions.length)\n this.lastKeyCode = this.lastSelectionTime = 0;\n }\n destroy() {\n if (this.mouseSelection)\n this.mouseSelection.destroy();\n }\n}\nfunction bindHandler(plugin, handler) {\n return (view, event) => {\n try {\n return handler.call(plugin, event, view);\n }\n catch (e) {\n logException(view.state, e);\n }\n };\n}\nfunction computeHandlers(plugins) {\n let result = Object.create(null);\n function record(type) {\n return result[type] || (result[type] = { observers: [], handlers: [] });\n }\n for (let plugin of plugins) {\n let spec = plugin.spec;\n if (spec && spec.domEventHandlers)\n for (let type in spec.domEventHandlers) {\n let f = spec.domEventHandlers[type];\n if (f)\n record(type).handlers.push(bindHandler(plugin.value, f));\n }\n if (spec && spec.domEventObservers)\n for (let type in spec.domEventObservers) {\n let f = spec.domEventObservers[type];\n if (f)\n record(type).observers.push(bindHandler(plugin.value, f));\n }\n }\n for (let type in handlers)\n record(type).handlers.push(handlers[type]);\n for (let type in observers)\n record(type).observers.push(observers[type]);\n return result;\n}\nconst PendingKeys = [\n { key: \"Backspace\", keyCode: 8, inputType: \"deleteContentBackward\" },\n { key: \"Enter\", keyCode: 13, inputType: \"insertParagraph\" },\n { key: \"Enter\", keyCode: 13, inputType: \"insertLineBreak\" },\n { key: \"Delete\", keyCode: 46, inputType: \"deleteContentForward\" }\n];\nconst EmacsyPendingKeys = \"dthko\";\n// Key codes for modifier keys\nconst modifierCodes = [16, 17, 18, 20, 91, 92, 224, 225];\nconst dragScrollMargin = 6;\nfunction dragScrollSpeed(dist) {\n return Math.max(0, dist) * 0.7 + 8;\n}\nfunction dist(a, b) {\n return Math.max(Math.abs(a.clientX - b.clientX), Math.abs(a.clientY - b.clientY));\n}\nclass MouseSelection {\n constructor(view, startEvent, style, mustSelect) {\n this.view = view;\n this.startEvent = startEvent;\n this.style = style;\n this.mustSelect = mustSelect;\n this.scrollSpeed = { x: 0, y: 0 };\n this.scrolling = -1;\n this.lastEvent = startEvent;\n this.scrollParents = scrollableParents(view.contentDOM);\n this.atoms = view.state.facet(atomicRanges).map(f => f(view));\n let doc = view.contentDOM.ownerDocument;\n doc.addEventListener(\"mousemove\", this.move = this.move.bind(this));\n doc.addEventListener(\"mouseup\", this.up = this.up.bind(this));\n this.extend = startEvent.shiftKey;\n this.multiple = view.state.facet(EditorState.allowMultipleSelections) && addsSelectionRange(view, startEvent);\n this.dragging = isInPrimarySelection(view, startEvent) && getClickType(startEvent) == 1 ? null : false;\n }\n start(event) {\n // When clicking outside of the selection, immediately apply the\n // effect of starting the selection\n if (this.dragging === false)\n this.select(event);\n }\n move(event) {\n if (event.buttons == 0)\n return this.destroy();\n if (this.dragging || this.dragging == null && dist(this.startEvent, event) < 10)\n return;\n this.select(this.lastEvent = event);\n let sx = 0, sy = 0;\n let left = 0, top = 0, right = this.view.win.innerWidth, bottom = this.view.win.innerHeight;\n if (this.scrollParents.x)\n ({ left, right } = this.scrollParents.x.getBoundingClientRect());\n if (this.scrollParents.y)\n ({ top, bottom } = this.scrollParents.y.getBoundingClientRect());\n let margins = getScrollMargins(this.view);\n if (event.clientX - margins.left <= left + dragScrollMargin)\n sx = -dragScrollSpeed(left - event.clientX);\n else if (event.clientX + margins.right >= right - dragScrollMargin)\n sx = dragScrollSpeed(event.clientX - right);\n if (event.clientY - margins.top <= top + dragScrollMargin)\n sy = -dragScrollSpeed(top - event.clientY);\n else if (event.clientY + margins.bottom >= bottom - dragScrollMargin)\n sy = dragScrollSpeed(event.clientY - bottom);\n this.setScrollSpeed(sx, sy);\n }\n up(event) {\n if (this.dragging == null)\n this.select(this.lastEvent);\n if (!this.dragging)\n event.preventDefault();\n this.destroy();\n }\n destroy() {\n this.setScrollSpeed(0, 0);\n let doc = this.view.contentDOM.ownerDocument;\n doc.removeEventListener(\"mousemove\", this.move);\n doc.removeEventListener(\"mouseup\", this.up);\n this.view.inputState.mouseSelection = this.view.inputState.draggedContent = null;\n }\n setScrollSpeed(sx, sy) {\n this.scrollSpeed = { x: sx, y: sy };\n if (sx || sy) {\n if (this.scrolling < 0)\n this.scrolling = setInterval(() => this.scroll(), 50);\n }\n else if (this.scrolling > -1) {\n clearInterval(this.scrolling);\n this.scrolling = -1;\n }\n }\n scroll() {\n let { x, y } = this.scrollSpeed;\n if (x && this.scrollParents.x) {\n this.scrollParents.x.scrollLeft += x;\n x = 0;\n }\n if (y && this.scrollParents.y) {\n this.scrollParents.y.scrollTop += y;\n y = 0;\n }\n if (x || y)\n this.view.win.scrollBy(x, y);\n if (this.dragging === false)\n this.select(this.lastEvent);\n }\n skipAtoms(sel) {\n let ranges = null;\n for (let i = 0; i < sel.ranges.length; i++) {\n let range = sel.ranges[i], updated = null;\n if (range.empty) {\n let pos = skipAtomicRanges(this.atoms, range.from, 0);\n if (pos != range.from)\n updated = EditorSelection.cursor(pos, -1);\n }\n else {\n let from = skipAtomicRanges(this.atoms, range.from, -1);\n let to = skipAtomicRanges(this.atoms, range.to, 1);\n if (from != range.from || to != range.to)\n updated = EditorSelection.range(range.from == range.anchor ? from : to, range.from == range.head ? from : to);\n }\n if (updated) {\n if (!ranges)\n ranges = sel.ranges.slice();\n ranges[i] = updated;\n }\n }\n return ranges ? EditorSelection.create(ranges, sel.mainIndex) : sel;\n }\n select(event) {\n let { view } = this, selection = this.skipAtoms(this.style.get(event, this.extend, this.multiple));\n if (this.mustSelect || !selection.eq(view.state.selection, this.dragging === false))\n this.view.dispatch({\n selection,\n userEvent: \"select.pointer\"\n });\n this.mustSelect = false;\n }\n update(update) {\n if (update.transactions.some(tr => tr.isUserEvent(\"input.type\")))\n this.destroy();\n else if (this.style.update(update))\n setTimeout(() => this.select(this.lastEvent), 20);\n }\n}\nfunction addsSelectionRange(view, event) {\n let facet = view.state.facet(clickAddsSelectionRange);\n return facet.length ? facet[0](event) : browser.mac ? event.metaKey : event.ctrlKey;\n}\nfunction dragMovesSelection(view, event) {\n let facet = view.state.facet(dragMovesSelection$1);\n return facet.length ? facet[0](event) : browser.mac ? !event.altKey : !event.ctrlKey;\n}\nfunction isInPrimarySelection(view, event) {\n let { main } = view.state.selection;\n if (main.empty)\n return false;\n // On boundary clicks, check whether the coordinates are inside the\n // selection's client rectangles\n let sel = getSelection(view.root);\n if (!sel || sel.rangeCount == 0)\n return true;\n let rects = sel.getRangeAt(0).getClientRects();\n for (let i = 0; i < rects.length; i++) {\n let rect = rects[i];\n if (rect.left <= event.clientX && rect.right >= event.clientX &&\n rect.top <= event.clientY && rect.bottom >= event.clientY)\n return true;\n }\n return false;\n}\nfunction eventBelongsToEditor(view, event) {\n if (!event.bubbles)\n return true;\n if (event.defaultPrevented)\n return false;\n for (let node = event.target, cView; node != view.contentDOM; node = node.parentNode)\n if (!node || node.nodeType == 11 || ((cView = ContentView.get(node)) && cView.ignoreEvent(event)))\n return false;\n return true;\n}\nconst handlers = /*@__PURE__*/Object.create(null);\nconst observers = /*@__PURE__*/Object.create(null);\n// This is very crude, but unfortunately both these browsers _pretend_\n// that they have a clipboard API—all the objects and methods are\n// there, they just don't work, and they are hard to test.\nconst brokenClipboardAPI = (browser.ie && browser.ie_version < 15) ||\n (browser.ios && browser.webkit_version < 604);\nfunction capturePaste(view) {\n let parent = view.dom.parentNode;\n if (!parent)\n return;\n let target = parent.appendChild(document.createElement(\"textarea\"));\n target.style.cssText = \"position: fixed; left: -10000px; top: 10px\";\n target.focus();\n setTimeout(() => {\n view.focus();\n target.remove();\n doPaste(view, target.value);\n }, 50);\n}\nfunction doPaste(view, input) {\n let { state } = view, changes, i = 1, text = state.toText(input);\n let byLine = text.lines == state.selection.ranges.length;\n let linewise = lastLinewiseCopy != null && state.selection.ranges.every(r => r.empty) && lastLinewiseCopy == text.toString();\n if (linewise) {\n let lastLine = -1;\n changes = state.changeByRange(range => {\n let line = state.doc.lineAt(range.from);\n if (line.from == lastLine)\n return { range };\n lastLine = line.from;\n let insert = state.toText((byLine ? text.line(i++).text : input) + state.lineBreak);\n return { changes: { from: line.from, insert },\n range: EditorSelection.cursor(range.from + insert.length) };\n });\n }\n else if (byLine) {\n changes = state.changeByRange(range => {\n let line = text.line(i++);\n return { changes: { from: range.from, to: range.to, insert: line.text },\n range: EditorSelection.cursor(range.from + line.length) };\n });\n }\n else {\n changes = state.replaceSelection(text);\n }\n view.dispatch(changes, {\n userEvent: \"input.paste\",\n scrollIntoView: true\n });\n}\nobservers.scroll = view => {\n view.inputState.lastScrollTop = view.scrollDOM.scrollTop;\n view.inputState.lastScrollLeft = view.scrollDOM.scrollLeft;\n};\nhandlers.keydown = (view, event) => {\n view.inputState.setSelectionOrigin(\"select\");\n if (event.keyCode == 27 && view.inputState.tabFocusMode != 0)\n view.inputState.tabFocusMode = Date.now() + 2000;\n return false;\n};\nobservers.touchstart = (view, e) => {\n view.inputState.lastTouchTime = Date.now();\n view.inputState.setSelectionOrigin(\"select.pointer\");\n};\nobservers.touchmove = view => {\n view.inputState.setSelectionOrigin(\"select.pointer\");\n};\nhandlers.mousedown = (view, event) => {\n view.observer.flush();\n if (view.inputState.lastTouchTime > Date.now() - 2000)\n return false; // Ignore touch interaction\n let style = null;\n for (let makeStyle of view.state.facet(mouseSelectionStyle)) {\n style = makeStyle(view, event);\n if (style)\n break;\n }\n if (!style && event.button == 0)\n style = basicMouseSelection(view, event);\n if (style) {\n let mustFocus = !view.hasFocus;\n view.inputState.startMouseSelection(new MouseSelection(view, event, style, mustFocus));\n if (mustFocus)\n view.observer.ignore(() => {\n focusPreventScroll(view.contentDOM);\n let active = view.root.activeElement;\n if (active && !active.contains(view.contentDOM))\n active.blur();\n });\n let mouseSel = view.inputState.mouseSelection;\n if (mouseSel) {\n mouseSel.start(event);\n return mouseSel.dragging === false;\n }\n }\n return false;\n};\nfunction rangeForClick(view, pos, bias, type) {\n if (type == 1) { // Single click\n return EditorSelection.cursor(pos, bias);\n }\n else if (type == 2) { // Double click\n return groupAt(view.state, pos, bias);\n }\n else { // Triple click\n let visual = LineView.find(view.docView, pos), line = view.state.doc.lineAt(visual ? visual.posAtEnd : pos);\n let from = visual ? visual.posAtStart : line.from, to = visual ? visual.posAtEnd : line.to;\n if (to < view.state.doc.length && to == line.to)\n to++;\n return EditorSelection.range(from, to);\n }\n}\nlet insideY = (y, rect) => y >= rect.top && y <= rect.bottom;\nlet inside = (x, y, rect) => insideY(y, rect) && x >= rect.left && x <= rect.right;\n// Try to determine, for the given coordinates, associated with the\n// given position, whether they are related to the element before or\n// the element after the position.\nfunction findPositionSide(view, pos, x, y) {\n let line = LineView.find(view.docView, pos);\n if (!line)\n return 1;\n let off = pos - line.posAtStart;\n // Line boundaries point into the line\n if (off == 0)\n return 1;\n if (off == line.length)\n return -1;\n // Positions on top of an element point at that element\n let before = line.coordsAt(off, -1);\n if (before && inside(x, y, before))\n return -1;\n let after = line.coordsAt(off, 1);\n if (after && inside(x, y, after))\n return 1;\n // This is probably a line wrap point. Pick before if the point is\n // beside it.\n return before && insideY(y, before) ? -1 : 1;\n}\nfunction queryPos(view, event) {\n let pos = view.posAtCoords({ x: event.clientX, y: event.clientY }, false);\n return { pos, bias: findPositionSide(view, pos, event.clientX, event.clientY) };\n}\nconst BadMouseDetail = browser.ie && browser.ie_version <= 11;\nlet lastMouseDown = null, lastMouseDownCount = 0, lastMouseDownTime = 0;\nfunction getClickType(event) {\n if (!BadMouseDetail)\n return event.detail;\n let last = lastMouseDown, lastTime = lastMouseDownTime;\n lastMouseDown = event;\n lastMouseDownTime = Date.now();\n return lastMouseDownCount = !last || (lastTime > Date.now() - 400 && Math.abs(last.clientX - event.clientX) < 2 &&\n Math.abs(last.clientY - event.clientY) < 2) ? (lastMouseDownCount + 1) % 3 : 1;\n}\nfunction basicMouseSelection(view, event) {\n let start = queryPos(view, event), type = getClickType(event);\n let startSel = view.state.selection;\n return {\n update(update) {\n if (update.docChanged) {\n start.pos = update.changes.mapPos(start.pos);\n startSel = startSel.map(update.changes);\n }\n },\n get(event, extend, multiple) {\n let cur = queryPos(view, event), removed;\n let range = rangeForClick(view, cur.pos, cur.bias, type);\n if (start.pos != cur.pos && !extend) {\n let startRange = rangeForClick(view, start.pos, start.bias, type);\n let from = Math.min(startRange.from, range.from), to = Math.max(startRange.to, range.to);\n range = from < range.from ? EditorSelection.range(from, to) : EditorSelection.range(to, from);\n }\n if (extend)\n return startSel.replaceRange(startSel.main.extend(range.from, range.to));\n else if (multiple && type == 1 && startSel.ranges.length > 1 && (removed = removeRangeAround(startSel, cur.pos)))\n return removed;\n else if (multiple)\n return startSel.addRange(range);\n else\n return EditorSelection.create([range]);\n }\n };\n}\nfunction removeRangeAround(sel, pos) {\n for (let i = 0; i < sel.ranges.length; i++) {\n let { from, to } = sel.ranges[i];\n if (from <= pos && to >= pos)\n return EditorSelection.create(sel.ranges.slice(0, i).concat(sel.ranges.slice(i + 1)), sel.mainIndex == i ? 0 : sel.mainIndex - (sel.mainIndex > i ? 1 : 0));\n }\n return null;\n}\nhandlers.dragstart = (view, event) => {\n let { selection: { main: range } } = view.state;\n if (event.target.draggable) {\n let cView = view.docView.nearest(event.target);\n if (cView && cView.isWidget) {\n let from = cView.posAtStart, to = from + cView.length;\n if (from >= range.to || to <= range.from)\n range = EditorSelection.range(from, to);\n }\n }\n let { inputState } = view;\n if (inputState.mouseSelection)\n inputState.mouseSelection.dragging = true;\n inputState.draggedContent = range;\n if (event.dataTransfer) {\n event.dataTransfer.setData(\"Text\", view.state.sliceDoc(range.from, range.to));\n event.dataTransfer.effectAllowed = \"copyMove\";\n }\n return false;\n};\nhandlers.dragend = view => {\n view.inputState.draggedContent = null;\n return false;\n};\nfunction dropText(view, event, text, direct) {\n if (!text)\n return;\n let dropPos = view.posAtCoords({ x: event.clientX, y: event.clientY }, false);\n let { draggedContent } = view.inputState;\n let del = direct && draggedContent && dragMovesSelection(view, event)\n ? { from: draggedContent.from, to: draggedContent.to } : null;\n let ins = { from: dropPos, insert: text };\n let changes = view.state.changes(del ? [del, ins] : ins);\n view.focus();\n view.dispatch({\n changes,\n selection: { anchor: changes.mapPos(dropPos, -1), head: changes.mapPos(dropPos, 1) },\n userEvent: del ? \"move.drop\" : \"input.drop\"\n });\n view.inputState.draggedContent = null;\n}\nhandlers.drop = (view, event) => {\n if (!event.dataTransfer)\n return false;\n if (view.state.readOnly)\n return true;\n let files = event.dataTransfer.files;\n if (files && files.length) { // For a file drop, read the file's text.\n let text = Array(files.length), read = 0;\n let finishFile = () => {\n if (++read == files.length)\n dropText(view, event, text.filter(s => s != null).join(view.state.lineBreak), false);\n };\n for (let i = 0; i < files.length; i++) {\n let reader = new FileReader;\n reader.onerror = finishFile;\n reader.onload = () => {\n if (!/[\\x00-\\x08\\x0e-\\x1f]{2}/.test(reader.result))\n text[i] = reader.result;\n finishFile();\n };\n reader.readAsText(files[i]);\n }\n return true;\n }\n else {\n let text = event.dataTransfer.getData(\"Text\");\n if (text) {\n dropText(view, event, text, true);\n return true;\n }\n }\n return false;\n};\nhandlers.paste = (view, event) => {\n if (view.state.readOnly)\n return true;\n view.observer.flush();\n let data = brokenClipboardAPI ? null : event.clipboardData;\n if (data) {\n doPaste(view, data.getData(\"text/plain\") || data.getData(\"text/uri-list\"));\n return true;\n }\n else {\n capturePaste(view);\n return false;\n }\n};\nfunction captureCopy(view, text) {\n // The extra wrapper is somehow necessary on IE/Edge to prevent the\n // content from being mangled when it is put onto the clipboard\n let parent = view.dom.parentNode;\n if (!parent)\n return;\n let target = parent.appendChild(document.createElement(\"textarea\"));\n target.style.cssText = \"position: fixed; left: -10000px; top: 10px\";\n target.value = text;\n target.focus();\n target.selectionEnd = text.length;\n target.selectionStart = 0;\n setTimeout(() => {\n target.remove();\n view.focus();\n }, 50);\n}\nfunction copiedRange(state) {\n let content = [], ranges = [], linewise = false;\n for (let range of state.selection.ranges)\n if (!range.empty) {\n content.push(state.sliceDoc(range.from, range.to));\n ranges.push(range);\n }\n if (!content.length) {\n // Nothing selected, do a line-wise copy\n let upto = -1;\n for (let { from } of state.selection.ranges) {\n let line = state.doc.lineAt(from);\n if (line.number > upto) {\n content.push(line.text);\n ranges.push({ from: line.from, to: Math.min(state.doc.length, line.to + 1) });\n }\n upto = line.number;\n }\n linewise = true;\n }\n return { text: content.join(state.lineBreak), ranges, linewise };\n}\nlet lastLinewiseCopy = null;\nhandlers.copy = handlers.cut = (view, event) => {\n let { text, ranges, linewise } = copiedRange(view.state);\n if (!text && !linewise)\n return false;\n lastLinewiseCopy = linewise ? text : null;\n if (event.type == \"cut\" && !view.state.readOnly)\n view.dispatch({\n changes: ranges,\n scrollIntoView: true,\n userEvent: \"delete.cut\"\n });\n let data = brokenClipboardAPI ? null : event.clipboardData;\n if (data) {\n data.clearData();\n data.setData(\"text/plain\", text);\n return true;\n }\n else {\n captureCopy(view, text);\n return false;\n }\n};\nconst isFocusChange = /*@__PURE__*/Annotation.define();\nfunction focusChangeTransaction(state, focus) {\n let effects = [];\n for (let getEffect of state.facet(focusChangeEffect)) {\n let effect = getEffect(state, focus);\n if (effect)\n effects.push(effect);\n }\n return effects ? state.update({ effects, annotations: isFocusChange.of(true) }) : null;\n}\nfunction updateForFocusChange(view) {\n setTimeout(() => {\n let focus = view.hasFocus;\n if (focus != view.inputState.notifiedFocused) {\n let tr = focusChangeTransaction(view.state, focus);\n if (tr)\n view.dispatch(tr);\n else\n view.update([]);\n }\n }, 10);\n}\nobservers.focus = view => {\n view.inputState.lastFocusTime = Date.now();\n // When focusing reset the scroll position, move it back to where it was\n if (!view.scrollDOM.scrollTop && (view.inputState.lastScrollTop || view.inputState.lastScrollLeft)) {\n view.scrollDOM.scrollTop = view.inputState.lastScrollTop;\n view.scrollDOM.scrollLeft = view.inputState.lastScrollLeft;\n }\n updateForFocusChange(view);\n};\nobservers.blur = view => {\n view.observer.clearSelectionRange();\n updateForFocusChange(view);\n};\nobservers.compositionstart = observers.compositionupdate = view => {\n if (view.observer.editContext)\n return; // Composition handled by edit context\n if (view.inputState.compositionFirstChange == null)\n view.inputState.compositionFirstChange = true;\n if (view.inputState.composing < 0) {\n // FIXME possibly set a timeout to clear it again on Android\n view.inputState.composing = 0;\n }\n};\nobservers.compositionend = view => {\n if (view.observer.editContext)\n return; // Composition handled by edit context\n view.inputState.composing = -1;\n view.inputState.compositionEndedAt = Date.now();\n view.inputState.compositionPendingKey = true;\n view.inputState.compositionPendingChange = view.observer.pendingRecords().length > 0;\n view.inputState.compositionFirstChange = null;\n if (browser.chrome && browser.android) {\n // Delay flushing for a bit on Android because it'll often fire a\n // bunch of contradictory changes in a row at end of compositon\n view.observer.flushSoon();\n }\n else if (view.inputState.compositionPendingChange) {\n // If we found pending records, schedule a flush.\n Promise.resolve().then(() => view.observer.flush());\n }\n else {\n // Otherwise, make sure that, if no changes come in soon, the\n // composition view is cleared.\n setTimeout(() => {\n if (view.inputState.composing < 0 && view.docView.hasComposition)\n view.update([]);\n }, 50);\n }\n};\nobservers.contextmenu = view => {\n view.inputState.lastContextMenu = Date.now();\n};\nhandlers.beforeinput = (view, event) => {\n var _a;\n // Because Chrome Android doesn't fire useful key events, use\n // beforeinput to detect backspace (and possibly enter and delete,\n // but those usually don't even seem to fire beforeinput events at\n // the moment) and fake a key event for it.\n //\n // (preventDefault on beforeinput, though supported in the spec,\n // seems to do nothing at all on Chrome).\n let pending;\n if (browser.chrome && browser.android && (pending = PendingKeys.find(key => key.inputType == event.inputType))) {\n view.observer.delayAndroidKey(pending.key, pending.keyCode);\n if (pending.key == \"Backspace\" || pending.key == \"Delete\") {\n let startViewHeight = ((_a = window.visualViewport) === null || _a === void 0 ? void 0 : _a.height) || 0;\n setTimeout(() => {\n var _a;\n // Backspacing near uneditable nodes on Chrome Android sometimes\n // closes the virtual keyboard. This tries to crudely detect\n // that and refocus to get it back.\n if ((((_a = window.visualViewport) === null || _a === void 0 ? void 0 : _a.height) || 0) > startViewHeight + 10 && view.hasFocus) {\n view.contentDOM.blur();\n view.focus();\n }\n }, 100);\n }\n }\n if (browser.ios && event.inputType == \"deleteContentForward\") {\n // For some reason, DOM changes (and beforeinput) happen _before_\n // the key event for ctrl-d on iOS when using an external\n // keyboard.\n view.observer.flushSoon();\n }\n // Safari will occasionally forget to fire compositionend at the end of a dead-key composition\n if (browser.safari && event.inputType == \"insertText\" && view.inputState.composing >= 0) {\n setTimeout(() => observers.compositionend(view, event), 20);\n }\n return false;\n};\nconst appliedFirefoxHack = /*@__PURE__*/new Set;\n// In Firefox, when cut/copy handlers are added to the document, that\n// somehow avoids a bug where those events aren't fired when the\n// selection is empty. See https://github.com/codemirror/dev/issues/1082\n// and https://bugzilla.mozilla.org/show_bug.cgi?id=995961\nfunction firefoxCopyCutHack(doc) {\n if (!appliedFirefoxHack.has(doc)) {\n appliedFirefoxHack.add(doc);\n doc.addEventListener(\"copy\", () => { });\n doc.addEventListener(\"cut\", () => { });\n }\n}\n\nconst wrappingWhiteSpace = [\"pre-wrap\", \"normal\", \"pre-line\", \"break-spaces\"];\nclass HeightOracle {\n constructor(lineWrapping) {\n this.lineWrapping = lineWrapping;\n this.doc = Text.empty;\n this.heightSamples = {};\n this.lineHeight = 14; // The height of an entire line (line-height)\n this.charWidth = 7;\n this.textHeight = 14; // The height of the actual font (font-size)\n this.lineLength = 30;\n // Used to track, during updateHeight, if any actual heights changed\n this.heightChanged = false;\n }\n heightForGap(from, to) {\n let lines = this.doc.lineAt(to).number - this.doc.lineAt(from).number + 1;\n if (this.lineWrapping)\n lines += Math.max(0, Math.ceil(((to - from) - (lines * this.lineLength * 0.5)) / this.lineLength));\n return this.lineHeight * lines;\n }\n heightForLine(length) {\n if (!this.lineWrapping)\n return this.lineHeight;\n let lines = 1 + Math.max(0, Math.ceil((length - this.lineLength) / (this.lineLength - 5)));\n return lines * this.lineHeight;\n }\n setDoc(doc) { this.doc = doc; return this; }\n mustRefreshForWrapping(whiteSpace) {\n return (wrappingWhiteSpace.indexOf(whiteSpace) > -1) != this.lineWrapping;\n }\n mustRefreshForHeights(lineHeights) {\n let newHeight = false;\n for (let i = 0; i < lineHeights.length; i++) {\n let h = lineHeights[i];\n if (h < 0) {\n i++;\n }\n else if (!this.heightSamples[Math.floor(h * 10)]) { // Round to .1 pixels\n newHeight = true;\n this.heightSamples[Math.floor(h * 10)] = true;\n }\n }\n return newHeight;\n }\n refresh(whiteSpace, lineHeight, charWidth, textHeight, lineLength, knownHeights) {\n let lineWrapping = wrappingWhiteSpace.indexOf(whiteSpace) > -1;\n let changed = Math.round(lineHeight) != Math.round(this.lineHeight) || this.lineWrapping != lineWrapping;\n this.lineWrapping = lineWrapping;\n this.lineHeight = lineHeight;\n this.charWidth = charWidth;\n this.textHeight = textHeight;\n this.lineLength = lineLength;\n if (changed) {\n this.heightSamples = {};\n for (let i = 0; i < knownHeights.length; i++) {\n let h = knownHeights[i];\n if (h < 0)\n i++;\n else\n this.heightSamples[Math.floor(h * 10)] = true;\n }\n }\n return changed;\n }\n}\n// This object is used by `updateHeight` to make DOM measurements\n// arrive at the right nides. The `heights` array is a sequence of\n// block heights, starting from position `from`.\nclass MeasuredHeights {\n constructor(from, heights) {\n this.from = from;\n this.heights = heights;\n this.index = 0;\n }\n get more() { return this.index < this.heights.length; }\n}\n/**\nRecord used to represent information about a block-level element\nin the editor view.\n*/\nclass BlockInfo {\n /**\n @internal\n */\n constructor(\n /**\n The start of the element in the document.\n */\n from, \n /**\n The length of the element.\n */\n length, \n /**\n The top position of the element (relative to the top of the\n document).\n */\n top, \n /**\n Its height.\n */\n height, \n /**\n @internal Weird packed field that holds an array of children\n for composite blocks, a decoration for block widgets, and a\n number indicating the amount of widget-create line breaks for\n text blocks.\n */\n _content) {\n this.from = from;\n this.length = length;\n this.top = top;\n this.height = height;\n this._content = _content;\n }\n /**\n The type of element this is. When querying lines, this may be\n an array of all the blocks that make up the line.\n */\n get type() {\n return typeof this._content == \"number\" ? BlockType.Text :\n Array.isArray(this._content) ? this._content : this._content.type;\n }\n /**\n The end of the element as a document position.\n */\n get to() { return this.from + this.length; }\n /**\n The bottom position of the element.\n */\n get bottom() { return this.top + this.height; }\n /**\n If this is a widget block, this will return the widget\n associated with it.\n */\n get widget() {\n return this._content instanceof PointDecoration ? this._content.widget : null;\n }\n /**\n If this is a textblock, this holds the number of line breaks\n that appear in widgets inside the block.\n */\n get widgetLineBreaks() {\n return typeof this._content == \"number\" ? this._content : 0;\n }\n /**\n @internal\n */\n join(other) {\n let content = (Array.isArray(this._content) ? this._content : [this])\n .concat(Array.isArray(other._content) ? other._content : [other]);\n return new BlockInfo(this.from, this.length + other.length, this.top, this.height + other.height, content);\n }\n}\nvar QueryType = /*@__PURE__*/(function (QueryType) {\n QueryType[QueryType[\"ByPos\"] = 0] = \"ByPos\";\n QueryType[QueryType[\"ByHeight\"] = 1] = \"ByHeight\";\n QueryType[QueryType[\"ByPosNoHeight\"] = 2] = \"ByPosNoHeight\";\nreturn QueryType})(QueryType || (QueryType = {}));\nconst Epsilon = 1e-3;\nclass HeightMap {\n constructor(length, // The number of characters covered\n height, // Height of this part of the document\n flags = 2 /* Flag.Outdated */) {\n this.length = length;\n this.height = height;\n this.flags = flags;\n }\n get outdated() { return (this.flags & 2 /* Flag.Outdated */) > 0; }\n set outdated(value) { this.flags = (value ? 2 /* Flag.Outdated */ : 0) | (this.flags & ~2 /* Flag.Outdated */); }\n setHeight(oracle, height) {\n if (this.height != height) {\n if (Math.abs(this.height - height) > Epsilon)\n oracle.heightChanged = true;\n this.height = height;\n }\n }\n // Base case is to replace a leaf node, which simply builds a tree\n // from the new nodes and returns that (HeightMapBranch and\n // HeightMapGap override this to actually use from/to)\n replace(_from, _to, nodes) {\n return HeightMap.of(nodes);\n }\n // Again, these are base cases, and are overridden for branch and gap nodes.\n decomposeLeft(_to, result) { result.push(this); }\n decomposeRight(_from, result) { result.push(this); }\n applyChanges(decorations, oldDoc, oracle, changes) {\n let me = this, doc = oracle.doc;\n for (let i = changes.length - 1; i >= 0; i--) {\n let { fromA, toA, fromB, toB } = changes[i];\n let start = me.lineAt(fromA, QueryType.ByPosNoHeight, oracle.setDoc(oldDoc), 0, 0);\n let end = start.to >= toA ? start : me.lineAt(toA, QueryType.ByPosNoHeight, oracle, 0, 0);\n toB += end.to - toA;\n toA = end.to;\n while (i > 0 && start.from <= changes[i - 1].toA) {\n fromA = changes[i - 1].fromA;\n fromB = changes[i - 1].fromB;\n i--;\n if (fromA < start.from)\n start = me.lineAt(fromA, QueryType.ByPosNoHeight, oracle, 0, 0);\n }\n fromB += start.from - fromA;\n fromA = start.from;\n let nodes = NodeBuilder.build(oracle.setDoc(doc), decorations, fromB, toB);\n me = me.replace(fromA, toA, nodes);\n }\n return me.updateHeight(oracle, 0);\n }\n static empty() { return new HeightMapText(0, 0); }\n // nodes uses null values to indicate the position of line breaks.\n // There are never line breaks at the start or end of the array, or\n // two line breaks next to each other, and the array isn't allowed\n // to be empty (same restrictions as return value from the builder).\n static of(nodes) {\n if (nodes.length == 1)\n return nodes[0];\n let i = 0, j = nodes.length, before = 0, after = 0;\n for (;;) {\n if (i == j) {\n if (before > after * 2) {\n let split = nodes[i - 1];\n if (split.break)\n nodes.splice(--i, 1, split.left, null, split.right);\n else\n nodes.splice(--i, 1, split.left, split.right);\n j += 1 + split.break;\n before -= split.size;\n }\n else if (after > before * 2) {\n let split = nodes[j];\n if (split.break)\n nodes.splice(j, 1, split.left, null, split.right);\n else\n nodes.splice(j, 1, split.left, split.right);\n j += 2 + split.break;\n after -= split.size;\n }\n else {\n break;\n }\n }\n else if (before < after) {\n let next = nodes[i++];\n if (next)\n before += next.size;\n }\n else {\n let next = nodes[--j];\n if (next)\n after += next.size;\n }\n }\n let brk = 0;\n if (nodes[i - 1] == null) {\n brk = 1;\n i--;\n }\n else if (nodes[i] == null) {\n brk = 1;\n j++;\n }\n return new HeightMapBranch(HeightMap.of(nodes.slice(0, i)), brk, HeightMap.of(nodes.slice(j)));\n }\n}\nHeightMap.prototype.size = 1;\nclass HeightMapBlock extends HeightMap {\n constructor(length, height, deco) {\n super(length, height);\n this.deco = deco;\n }\n blockAt(_height, _oracle, top, offset) {\n return new BlockInfo(offset, this.length, top, this.height, this.deco || 0);\n }\n lineAt(_value, _type, oracle, top, offset) {\n return this.blockAt(0, oracle, top, offset);\n }\n forEachLine(from, to, oracle, top, offset, f) {\n if (from <= offset + this.length && to >= offset)\n f(this.blockAt(0, oracle, top, offset));\n }\n updateHeight(oracle, offset = 0, _force = false, measured) {\n if (measured && measured.from <= offset && measured.more)\n this.setHeight(oracle, measured.heights[measured.index++]);\n this.outdated = false;\n return this;\n }\n toString() { return `block(${this.length})`; }\n}\nclass HeightMapText extends HeightMapBlock {\n constructor(length, height) {\n super(length, height, null);\n this.collapsed = 0; // Amount of collapsed content in the line\n this.widgetHeight = 0; // Maximum inline widget height\n this.breaks = 0; // Number of widget-introduced line breaks on the line\n }\n blockAt(_height, _oracle, top, offset) {\n return new BlockInfo(offset, this.length, top, this.height, this.breaks);\n }\n replace(_from, _to, nodes) {\n let node = nodes[0];\n if (nodes.length == 1 && (node instanceof HeightMapText || node instanceof HeightMapGap && (node.flags & 4 /* Flag.SingleLine */)) &&\n Math.abs(this.length - node.length) < 10) {\n if (node instanceof HeightMapGap)\n node = new HeightMapText(node.length, this.height);\n else\n node.height = this.height;\n if (!this.outdated)\n node.outdated = false;\n return node;\n }\n else {\n return HeightMap.of(nodes);\n }\n }\n updateHeight(oracle, offset = 0, force = false, measured) {\n if (measured && measured.from <= offset && measured.more)\n this.setHeight(oracle, measured.heights[measured.index++]);\n else if (force || this.outdated)\n this.setHeight(oracle, Math.max(this.widgetHeight, oracle.heightForLine(this.length - this.collapsed)) +\n this.breaks * oracle.lineHeight);\n this.outdated = false;\n return this;\n }\n toString() {\n return `line(${this.length}${this.collapsed ? -this.collapsed : \"\"}${this.widgetHeight ? \":\" + this.widgetHeight : \"\"})`;\n }\n}\nclass HeightMapGap extends HeightMap {\n constructor(length) { super(length, 0); }\n heightMetrics(oracle, offset) {\n let firstLine = oracle.doc.lineAt(offset).number, lastLine = oracle.doc.lineAt(offset + this.length).number;\n let lines = lastLine - firstLine + 1;\n let perLine, perChar = 0;\n if (oracle.lineWrapping) {\n let totalPerLine = Math.min(this.height, oracle.lineHeight * lines);\n perLine = totalPerLine / lines;\n if (this.length > lines + 1)\n perChar = (this.height - totalPerLine) / (this.length - lines - 1);\n }\n else {\n perLine = this.height / lines;\n }\n return { firstLine, lastLine, perLine, perChar };\n }\n blockAt(height, oracle, top, offset) {\n let { firstLine, lastLine, perLine, perChar } = this.heightMetrics(oracle, offset);\n if (oracle.lineWrapping) {\n let guess = offset + (height < oracle.lineHeight ? 0\n : Math.round(Math.max(0, Math.min(1, (height - top) / this.height)) * this.length));\n let line = oracle.doc.lineAt(guess), lineHeight = perLine + line.length * perChar;\n let lineTop = Math.max(top, height - lineHeight / 2);\n return new BlockInfo(line.from, line.length, lineTop, lineHeight, 0);\n }\n else {\n let line = Math.max(0, Math.min(lastLine - firstLine, Math.floor((height - top) / perLine)));\n let { from, length } = oracle.doc.line(firstLine + line);\n return new BlockInfo(from, length, top + perLine * line, perLine, 0);\n }\n }\n lineAt(value, type, oracle, top, offset) {\n if (type == QueryType.ByHeight)\n return this.blockAt(value, oracle, top, offset);\n if (type == QueryType.ByPosNoHeight) {\n let { from, to } = oracle.doc.lineAt(value);\n return new BlockInfo(from, to - from, 0, 0, 0);\n }\n let { firstLine, perLine, perChar } = this.heightMetrics(oracle, offset);\n let line = oracle.doc.lineAt(value), lineHeight = perLine + line.length * perChar;\n let linesAbove = line.number - firstLine;\n let lineTop = top + perLine * linesAbove + perChar * (line.from - offset - linesAbove);\n return new BlockInfo(line.from, line.length, Math.max(top, Math.min(lineTop, top + this.height - lineHeight)), lineHeight, 0);\n }\n forEachLine(from, to, oracle, top, offset, f) {\n from = Math.max(from, offset);\n to = Math.min(to, offset + this.length);\n let { firstLine, perLine, perChar } = this.heightMetrics(oracle, offset);\n for (let pos = from, lineTop = top; pos <= to;) {\n let line = oracle.doc.lineAt(pos);\n if (pos == from) {\n let linesAbove = line.number - firstLine;\n lineTop += perLine * linesAbove + perChar * (from - offset - linesAbove);\n }\n let lineHeight = perLine + perChar * line.length;\n f(new BlockInfo(line.from, line.length, lineTop, lineHeight, 0));\n lineTop += lineHeight;\n pos = line.to + 1;\n }\n }\n replace(from, to, nodes) {\n let after = this.length - to;\n if (after > 0) {\n let last = nodes[nodes.length - 1];\n if (last instanceof HeightMapGap)\n nodes[nodes.length - 1] = new HeightMapGap(last.length + after);\n else\n nodes.push(null, new HeightMapGap(after - 1));\n }\n if (from > 0) {\n let first = nodes[0];\n if (first instanceof HeightMapGap)\n nodes[0] = new HeightMapGap(from + first.length);\n else\n nodes.unshift(new HeightMapGap(from - 1), null);\n }\n return HeightMap.of(nodes);\n }\n decomposeLeft(to, result) {\n result.push(new HeightMapGap(to - 1), null);\n }\n decomposeRight(from, result) {\n result.push(null, new HeightMapGap(this.length - from - 1));\n }\n updateHeight(oracle, offset = 0, force = false, measured) {\n let end = offset + this.length;\n if (measured && measured.from <= offset + this.length && measured.more) {\n // Fill in part of this gap with measured lines. We know there\n // can't be widgets or collapsed ranges in those lines, because\n // they would already have been added to the heightmap (gaps\n // only contain plain text).\n let nodes = [], pos = Math.max(offset, measured.from), singleHeight = -1;\n if (measured.from > offset)\n nodes.push(new HeightMapGap(measured.from - offset - 1).updateHeight(oracle, offset));\n while (pos <= end && measured.more) {\n let len = oracle.doc.lineAt(pos).length;\n if (nodes.length)\n nodes.push(null);\n let height = measured.heights[measured.index++];\n if (singleHeight == -1)\n singleHeight = height;\n else if (Math.abs(height - singleHeight) >= Epsilon)\n singleHeight = -2;\n let line = new HeightMapText(len, height);\n line.outdated = false;\n nodes.push(line);\n pos += len + 1;\n }\n if (pos <= end)\n nodes.push(null, new HeightMapGap(end - pos).updateHeight(oracle, pos));\n let result = HeightMap.of(nodes);\n if (singleHeight < 0 || Math.abs(result.height - this.height) >= Epsilon ||\n Math.abs(singleHeight - this.heightMetrics(oracle, offset).perLine) >= Epsilon)\n oracle.heightChanged = true;\n return result;\n }\n else if (force || this.outdated) {\n this.setHeight(oracle, oracle.heightForGap(offset, offset + this.length));\n this.outdated = false;\n }\n return this;\n }\n toString() { return `gap(${this.length})`; }\n}\nclass HeightMapBranch extends HeightMap {\n constructor(left, brk, right) {\n super(left.length + brk + right.length, left.height + right.height, brk | (left.outdated || right.outdated ? 2 /* Flag.Outdated */ : 0));\n this.left = left;\n this.right = right;\n this.size = left.size + right.size;\n }\n get break() { return this.flags & 1 /* Flag.Break */; }\n blockAt(height, oracle, top, offset) {\n let mid = top + this.left.height;\n return height < mid ? this.left.blockAt(height, oracle, top, offset)\n : this.right.blockAt(height, oracle, mid, offset + this.left.length + this.break);\n }\n lineAt(value, type, oracle, top, offset) {\n let rightTop = top + this.left.height, rightOffset = offset + this.left.length + this.break;\n let left = type == QueryType.ByHeight ? value < rightTop : value < rightOffset;\n let base = left ? this.left.lineAt(value, type, oracle, top, offset)\n : this.right.lineAt(value, type, oracle, rightTop, rightOffset);\n if (this.break || (left ? base.to < rightOffset : base.from > rightOffset))\n return base;\n let subQuery = type == QueryType.ByPosNoHeight ? QueryType.ByPosNoHeight : QueryType.ByPos;\n if (left)\n return base.join(this.right.lineAt(rightOffset, subQuery, oracle, rightTop, rightOffset));\n else\n return this.left.lineAt(rightOffset, subQuery, oracle, top, offset).join(base);\n }\n forEachLine(from, to, oracle, top, offset, f) {\n let rightTop = top + this.left.height, rightOffset = offset + this.left.length + this.break;\n if (this.break) {\n if (from < rightOffset)\n this.left.forEachLine(from, to, oracle, top, offset, f);\n if (to >= rightOffset)\n this.right.forEachLine(from, to, oracle, rightTop, rightOffset, f);\n }\n else {\n let mid = this.lineAt(rightOffset, QueryType.ByPos, oracle, top, offset);\n if (from < mid.from)\n this.left.forEachLine(from, mid.from - 1, oracle, top, offset, f);\n if (mid.to >= from && mid.from <= to)\n f(mid);\n if (to > mid.to)\n this.right.forEachLine(mid.to + 1, to, oracle, rightTop, rightOffset, f);\n }\n }\n replace(from, to, nodes) {\n let rightStart = this.left.length + this.break;\n if (to < rightStart)\n return this.balanced(this.left.replace(from, to, nodes), this.right);\n if (from > this.left.length)\n return this.balanced(this.left, this.right.replace(from - rightStart, to - rightStart, nodes));\n let result = [];\n if (from > 0)\n this.decomposeLeft(from, result);\n let left = result.length;\n for (let node of nodes)\n result.push(node);\n if (from > 0)\n mergeGaps(result, left - 1);\n if (to < this.length) {\n let right = result.length;\n this.decomposeRight(to, result);\n mergeGaps(result, right);\n }\n return HeightMap.of(result);\n }\n decomposeLeft(to, result) {\n let left = this.left.length;\n if (to <= left)\n return this.left.decomposeLeft(to, result);\n result.push(this.left);\n if (this.break) {\n left++;\n if (to >= left)\n result.push(null);\n }\n if (to > left)\n this.right.decomposeLeft(to - left, result);\n }\n decomposeRight(from, result) {\n let left = this.left.length, right = left + this.break;\n if (from >= right)\n return this.right.decomposeRight(from - right, result);\n if (from < left)\n this.left.decomposeRight(from, result);\n if (this.break && from < right)\n result.push(null);\n result.push(this.right);\n }\n balanced(left, right) {\n if (left.size > 2 * right.size || right.size > 2 * left.size)\n return HeightMap.of(this.break ? [left, null, right] : [left, right]);\n this.left = left;\n this.right = right;\n this.height = left.height + right.height;\n this.outdated = left.outdated || right.outdated;\n this.size = left.size + right.size;\n this.length = left.length + this.break + right.length;\n return this;\n }\n updateHeight(oracle, offset = 0, force = false, measured) {\n let { left, right } = this, rightStart = offset + left.length + this.break, rebalance = null;\n if (measured && measured.from <= offset + left.length && measured.more)\n rebalance = left = left.updateHeight(oracle, offset, force, measured);\n else\n left.updateHeight(oracle, offset, force);\n if (measured && measured.from <= rightStart + right.length && measured.more)\n rebalance = right = right.updateHeight(oracle, rightStart, force, measured);\n else\n right.updateHeight(oracle, rightStart, force);\n if (rebalance)\n return this.balanced(left, right);\n this.height = this.left.height + this.right.height;\n this.outdated = false;\n return this;\n }\n toString() { return this.left + (this.break ? \" \" : \"-\") + this.right; }\n}\nfunction mergeGaps(nodes, around) {\n let before, after;\n if (nodes[around] == null &&\n (before = nodes[around - 1]) instanceof HeightMapGap &&\n (after = nodes[around + 1]) instanceof HeightMapGap)\n nodes.splice(around - 1, 3, new HeightMapGap(before.length + 1 + after.length));\n}\nconst relevantWidgetHeight = 5;\nclass NodeBuilder {\n constructor(pos, oracle) {\n this.pos = pos;\n this.oracle = oracle;\n this.nodes = [];\n this.lineStart = -1;\n this.lineEnd = -1;\n this.covering = null;\n this.writtenTo = pos;\n }\n get isCovered() {\n return this.covering && this.nodes[this.nodes.length - 1] == this.covering;\n }\n span(_from, to) {\n if (this.lineStart > -1) {\n let end = Math.min(to, this.lineEnd), last = this.nodes[this.nodes.length - 1];\n if (last instanceof HeightMapText)\n last.length += end - this.pos;\n else if (end > this.pos || !this.isCovered)\n this.nodes.push(new HeightMapText(end - this.pos, -1));\n this.writtenTo = end;\n if (to > end) {\n this.nodes.push(null);\n this.writtenTo++;\n this.lineStart = -1;\n }\n }\n this.pos = to;\n }\n point(from, to, deco) {\n if (from < to || deco.heightRelevant) {\n let height = deco.widget ? deco.widget.estimatedHeight : 0;\n let breaks = deco.widget ? deco.widget.lineBreaks : 0;\n if (height < 0)\n height = this.oracle.lineHeight;\n let len = to - from;\n if (deco.block) {\n this.addBlock(new HeightMapBlock(len, height, deco));\n }\n else if (len || breaks || height >= relevantWidgetHeight) {\n this.addLineDeco(height, breaks, len);\n }\n }\n else if (to > from) {\n this.span(from, to);\n }\n if (this.lineEnd > -1 && this.lineEnd < this.pos)\n this.lineEnd = this.oracle.doc.lineAt(this.pos).to;\n }\n enterLine() {\n if (this.lineStart > -1)\n return;\n let { from, to } = this.oracle.doc.lineAt(this.pos);\n this.lineStart = from;\n this.lineEnd = to;\n if (this.writtenTo < from) {\n if (this.writtenTo < from - 1 || this.nodes[this.nodes.length - 1] == null)\n this.nodes.push(this.blankContent(this.writtenTo, from - 1));\n this.nodes.push(null);\n }\n if (this.pos > from)\n this.nodes.push(new HeightMapText(this.pos - from, -1));\n this.writtenTo = this.pos;\n }\n blankContent(from, to) {\n let gap = new HeightMapGap(to - from);\n if (this.oracle.doc.lineAt(from).to == to)\n gap.flags |= 4 /* Flag.SingleLine */;\n return gap;\n }\n ensureLine() {\n this.enterLine();\n let last = this.nodes.length ? this.nodes[this.nodes.length - 1] : null;\n if (last instanceof HeightMapText)\n return last;\n let line = new HeightMapText(0, -1);\n this.nodes.push(line);\n return line;\n }\n addBlock(block) {\n this.enterLine();\n let deco = block.deco;\n if (deco && deco.startSide > 0 && !this.isCovered)\n this.ensureLine();\n this.nodes.push(block);\n this.writtenTo = this.pos = this.pos + block.length;\n if (deco && deco.endSide > 0)\n this.covering = block;\n }\n addLineDeco(height, breaks, length) {\n let line = this.ensureLine();\n line.length += length;\n line.collapsed += length;\n line.widgetHeight = Math.max(line.widgetHeight, height);\n line.breaks += breaks;\n this.writtenTo = this.pos = this.pos + length;\n }\n finish(from) {\n let last = this.nodes.length == 0 ? null : this.nodes[this.nodes.length - 1];\n if (this.lineStart > -1 && !(last instanceof HeightMapText) && !this.isCovered)\n this.nodes.push(new HeightMapText(0, -1));\n else if (this.writtenTo < this.pos || last == null)\n this.nodes.push(this.blankContent(this.writtenTo, this.pos));\n let pos = from;\n for (let node of this.nodes) {\n if (node instanceof HeightMapText)\n node.updateHeight(this.oracle, pos);\n pos += node ? node.length : 1;\n }\n return this.nodes;\n }\n // Always called with a region that on both sides either stretches\n // to a line break or the end of the document.\n // The returned array uses null to indicate line breaks, but never\n // starts or ends in a line break, or has multiple line breaks next\n // to each other.\n static build(oracle, decorations, from, to) {\n let builder = new NodeBuilder(from, oracle);\n RangeSet.spans(decorations, from, to, builder, 0);\n return builder.finish(from);\n }\n}\nfunction heightRelevantDecoChanges(a, b, diff) {\n let comp = new DecorationComparator;\n RangeSet.compare(a, b, diff, comp, 0);\n return comp.changes;\n}\nclass DecorationComparator {\n constructor() {\n this.changes = [];\n }\n compareRange() { }\n comparePoint(from, to, a, b) {\n if (from < to || a && a.heightRelevant || b && b.heightRelevant)\n addRange(from, to, this.changes, 5);\n }\n}\n\nfunction visiblePixelRange(dom, paddingTop) {\n let rect = dom.getBoundingClientRect();\n let doc = dom.ownerDocument, win = doc.defaultView || window;\n let left = Math.max(0, rect.left), right = Math.min(win.innerWidth, rect.right);\n let top = Math.max(0, rect.top), bottom = Math.min(win.innerHeight, rect.bottom);\n for (let parent = dom.parentNode; parent && parent != doc.body;) {\n if (parent.nodeType == 1) {\n let elt = parent;\n let style = window.getComputedStyle(elt);\n if ((elt.scrollHeight > elt.clientHeight || elt.scrollWidth > elt.clientWidth) &&\n style.overflow != \"visible\") {\n let parentRect = elt.getBoundingClientRect();\n left = Math.max(left, parentRect.left);\n right = Math.min(right, parentRect.right);\n top = Math.max(top, parentRect.top);\n bottom = parent == dom.parentNode ? parentRect.bottom : Math.min(bottom, parentRect.bottom);\n }\n parent = style.position == \"absolute\" || style.position == \"fixed\" ? elt.offsetParent : elt.parentNode;\n }\n else if (parent.nodeType == 11) { // Shadow root\n parent = parent.host;\n }\n else {\n break;\n }\n }\n return { left: left - rect.left, right: Math.max(left, right) - rect.left,\n top: top - (rect.top + paddingTop), bottom: Math.max(top, bottom) - (rect.top + paddingTop) };\n}\nfunction fullPixelRange(dom, paddingTop) {\n let rect = dom.getBoundingClientRect();\n return { left: 0, right: rect.right - rect.left,\n top: paddingTop, bottom: rect.bottom - (rect.top + paddingTop) };\n}\n// Line gaps are placeholder widgets used to hide pieces of overlong\n// lines within the viewport, as a kludge to keep the editor\n// responsive when a ridiculously long line is loaded into it.\nclass LineGap {\n constructor(from, to, size) {\n this.from = from;\n this.to = to;\n this.size = size;\n }\n static same(a, b) {\n if (a.length != b.length)\n return false;\n for (let i = 0; i < a.length; i++) {\n let gA = a[i], gB = b[i];\n if (gA.from != gB.from || gA.to != gB.to || gA.size != gB.size)\n return false;\n }\n return true;\n }\n draw(viewState, wrapping) {\n return Decoration.replace({\n widget: new LineGapWidget(this.size * (wrapping ? viewState.scaleY : viewState.scaleX), wrapping)\n }).range(this.from, this.to);\n }\n}\nclass LineGapWidget extends WidgetType {\n constructor(size, vertical) {\n super();\n this.size = size;\n this.vertical = vertical;\n }\n eq(other) { return other.size == this.size && other.vertical == this.vertical; }\n toDOM() {\n let elt = document.createElement(\"div\");\n if (this.vertical) {\n elt.style.height = this.size + \"px\";\n }\n else {\n elt.style.width = this.size + \"px\";\n elt.style.height = \"2px\";\n elt.style.display = \"inline-block\";\n }\n return elt;\n }\n get estimatedHeight() { return this.vertical ? this.size : -1; }\n}\nclass ViewState {\n constructor(state) {\n this.state = state;\n // These are contentDOM-local coordinates\n this.pixelViewport = { left: 0, right: window.innerWidth, top: 0, bottom: 0 };\n this.inView = true;\n this.paddingTop = 0; // Padding above the document, scaled\n this.paddingBottom = 0; // Padding below the document, scaled\n this.contentDOMWidth = 0; // contentDOM.getBoundingClientRect().width\n this.contentDOMHeight = 0; // contentDOM.getBoundingClientRect().height\n this.editorHeight = 0; // scrollDOM.clientHeight, unscaled\n this.editorWidth = 0; // scrollDOM.clientWidth, unscaled\n this.scrollTop = 0; // Last seen scrollDOM.scrollTop, scaled\n this.scrolledToBottom = false;\n // The CSS-transformation scale of the editor (transformed size /\n // concrete size)\n this.scaleX = 1;\n this.scaleY = 1;\n // The vertical position (document-relative) to which to anchor the\n // scroll position. -1 means anchor to the end of the document.\n this.scrollAnchorPos = 0;\n // The height at the anchor position. Set by the DOM update phase.\n // -1 means no height available.\n this.scrollAnchorHeight = -1;\n // See VP.MaxDOMHeight\n this.scaler = IdScaler;\n this.scrollTarget = null;\n // Briefly set to true when printing, to disable viewport limiting\n this.printing = false;\n // Flag set when editor content was redrawn, so that the next\n // measure stage knows it must read DOM layout\n this.mustMeasureContent = true;\n this.defaultTextDirection = Direction.LTR;\n this.visibleRanges = [];\n // Cursor 'assoc' is only significant when the cursor is on a line\n // wrap point, where it must stick to the character that it is\n // associated with. Since browsers don't provide a reasonable\n // interface to set or query this, when a selection is set that\n // might cause this to be significant, this flag is set. The next\n // measure phase will check whether the cursor is on a line-wrapping\n // boundary and, if so, reset it to make sure it is positioned in\n // the right place.\n this.mustEnforceCursorAssoc = false;\n let guessWrapping = state.facet(contentAttributes).some(v => typeof v != \"function\" && v.class == \"cm-lineWrapping\");\n this.heightOracle = new HeightOracle(guessWrapping);\n this.stateDeco = state.facet(decorations).filter(d => typeof d != \"function\");\n this.heightMap = HeightMap.empty().applyChanges(this.stateDeco, Text.empty, this.heightOracle.setDoc(state.doc), [new ChangedRange(0, 0, 0, state.doc.length)]);\n for (let i = 0; i < 2; i++) {\n this.viewport = this.getViewport(0, null);\n if (!this.updateForViewport())\n break;\n }\n this.updateViewportLines();\n this.lineGaps = this.ensureLineGaps([]);\n this.lineGapDeco = Decoration.set(this.lineGaps.map(gap => gap.draw(this, false)));\n this.computeVisibleRanges();\n }\n updateForViewport() {\n let viewports = [this.viewport], { main } = this.state.selection;\n for (let i = 0; i <= 1; i++) {\n let pos = i ? main.head : main.anchor;\n if (!viewports.some(({ from, to }) => pos >= from && pos <= to)) {\n let { from, to } = this.lineBlockAt(pos);\n viewports.push(new Viewport(from, to));\n }\n }\n this.viewports = viewports.sort((a, b) => a.from - b.from);\n return this.updateScaler();\n }\n updateScaler() {\n let scaler = this.scaler;\n this.scaler = this.heightMap.height <= 7000000 /* VP.MaxDOMHeight */ ? IdScaler :\n new BigScaler(this.heightOracle, this.heightMap, this.viewports);\n return scaler.eq(this.scaler) ? 0 : 2 /* UpdateFlag.Height */;\n }\n updateViewportLines() {\n this.viewportLines = [];\n this.heightMap.forEachLine(this.viewport.from, this.viewport.to, this.heightOracle.setDoc(this.state.doc), 0, 0, block => {\n this.viewportLines.push(scaleBlock(block, this.scaler));\n });\n }\n update(update, scrollTarget = null) {\n this.state = update.state;\n let prevDeco = this.stateDeco;\n this.stateDeco = this.state.facet(decorations).filter(d => typeof d != \"function\");\n let contentChanges = update.changedRanges;\n let heightChanges = ChangedRange.extendWithRanges(contentChanges, heightRelevantDecoChanges(prevDeco, this.stateDeco, update ? update.changes : ChangeSet.empty(this.state.doc.length)));\n let prevHeight = this.heightMap.height;\n let scrollAnchor = this.scrolledToBottom ? null : this.scrollAnchorAt(this.scrollTop);\n this.heightMap = this.heightMap.applyChanges(this.stateDeco, update.startState.doc, this.heightOracle.setDoc(this.state.doc), heightChanges);\n if (this.heightMap.height != prevHeight)\n update.flags |= 2 /* UpdateFlag.Height */;\n if (scrollAnchor) {\n this.scrollAnchorPos = update.changes.mapPos(scrollAnchor.from, -1);\n this.scrollAnchorHeight = scrollAnchor.top;\n }\n else {\n this.scrollAnchorPos = -1;\n this.scrollAnchorHeight = this.heightMap.height;\n }\n let viewport = heightChanges.length ? this.mapViewport(this.viewport, update.changes) : this.viewport;\n if (scrollTarget && (scrollTarget.range.head < viewport.from || scrollTarget.range.head > viewport.to) ||\n !this.viewportIsAppropriate(viewport))\n viewport = this.getViewport(0, scrollTarget);\n let viewportChange = viewport.from != this.viewport.from || viewport.to != this.viewport.to;\n this.viewport = viewport;\n update.flags |= this.updateForViewport();\n if (viewportChange || !update.changes.empty || (update.flags & 2 /* UpdateFlag.Height */))\n this.updateViewportLines();\n if (this.lineGaps.length || this.viewport.to - this.viewport.from > (2000 /* LG.Margin */ << 1))\n this.updateLineGaps(this.ensureLineGaps(this.mapLineGaps(this.lineGaps, update.changes)));\n update.flags |= this.computeVisibleRanges();\n if (scrollTarget)\n this.scrollTarget = scrollTarget;\n if (!this.mustEnforceCursorAssoc && update.selectionSet && update.view.lineWrapping &&\n update.state.selection.main.empty && update.state.selection.main.assoc &&\n !update.state.facet(nativeSelectionHidden))\n this.mustEnforceCursorAssoc = true;\n }\n measure(view) {\n let dom = view.contentDOM, style = window.getComputedStyle(dom);\n let oracle = this.heightOracle;\n let whiteSpace = style.whiteSpace;\n this.defaultTextDirection = style.direction == \"rtl\" ? Direction.RTL : Direction.LTR;\n let refresh = this.heightOracle.mustRefreshForWrapping(whiteSpace);\n let domRect = dom.getBoundingClientRect();\n let measureContent = refresh || this.mustMeasureContent || this.contentDOMHeight != domRect.height;\n this.contentDOMHeight = domRect.height;\n this.mustMeasureContent = false;\n let result = 0, bias = 0;\n if (domRect.width && domRect.height) {\n let { scaleX, scaleY } = getScale(dom, domRect);\n if (scaleX > .005 && Math.abs(this.scaleX - scaleX) > .005 ||\n scaleY > .005 && Math.abs(this.scaleY - scaleY) > .005) {\n this.scaleX = scaleX;\n this.scaleY = scaleY;\n result |= 8 /* UpdateFlag.Geometry */;\n refresh = measureContent = true;\n }\n }\n // Vertical padding\n let paddingTop = (parseInt(style.paddingTop) || 0) * this.scaleY;\n let paddingBottom = (parseInt(style.paddingBottom) || 0) * this.scaleY;\n if (this.paddingTop != paddingTop || this.paddingBottom != paddingBottom) {\n this.paddingTop = paddingTop;\n this.paddingBottom = paddingBottom;\n result |= 8 /* UpdateFlag.Geometry */ | 2 /* UpdateFlag.Height */;\n }\n if (this.editorWidth != view.scrollDOM.clientWidth) {\n if (oracle.lineWrapping)\n measureContent = true;\n this.editorWidth = view.scrollDOM.clientWidth;\n result |= 8 /* UpdateFlag.Geometry */;\n }\n let scrollTop = view.scrollDOM.scrollTop * this.scaleY;\n if (this.scrollTop != scrollTop) {\n this.scrollAnchorHeight = -1;\n this.scrollTop = scrollTop;\n }\n this.scrolledToBottom = isScrolledToBottom(view.scrollDOM);\n // Pixel viewport\n let pixelViewport = (this.printing ? fullPixelRange : visiblePixelRange)(dom, this.paddingTop);\n let dTop = pixelViewport.top - this.pixelViewport.top, dBottom = pixelViewport.bottom - this.pixelViewport.bottom;\n this.pixelViewport = pixelViewport;\n let inView = this.pixelViewport.bottom > this.pixelViewport.top && this.pixelViewport.right > this.pixelViewport.left;\n if (inView != this.inView) {\n this.inView = inView;\n if (inView)\n measureContent = true;\n }\n if (!this.inView && !this.scrollTarget)\n return 0;\n let contentWidth = domRect.width;\n if (this.contentDOMWidth != contentWidth || this.editorHeight != view.scrollDOM.clientHeight) {\n this.contentDOMWidth = domRect.width;\n this.editorHeight = view.scrollDOM.clientHeight;\n result |= 8 /* UpdateFlag.Geometry */;\n }\n if (measureContent) {\n let lineHeights = view.docView.measureVisibleLineHeights(this.viewport);\n if (oracle.mustRefreshForHeights(lineHeights))\n refresh = true;\n if (refresh || oracle.lineWrapping && Math.abs(contentWidth - this.contentDOMWidth) > oracle.charWidth) {\n let { lineHeight, charWidth, textHeight } = view.docView.measureTextSize();\n refresh = lineHeight > 0 && oracle.refresh(whiteSpace, lineHeight, charWidth, textHeight, contentWidth / charWidth, lineHeights);\n if (refresh) {\n view.docView.minWidth = 0;\n result |= 8 /* UpdateFlag.Geometry */;\n }\n }\n if (dTop > 0 && dBottom > 0)\n bias = Math.max(dTop, dBottom);\n else if (dTop < 0 && dBottom < 0)\n bias = Math.min(dTop, dBottom);\n oracle.heightChanged = false;\n for (let vp of this.viewports) {\n let heights = vp.from == this.viewport.from ? lineHeights : view.docView.measureVisibleLineHeights(vp);\n this.heightMap = (refresh ? HeightMap.empty().applyChanges(this.stateDeco, Text.empty, this.heightOracle, [new ChangedRange(0, 0, 0, view.state.doc.length)]) : this.heightMap).updateHeight(oracle, 0, refresh, new MeasuredHeights(vp.from, heights));\n }\n if (oracle.heightChanged)\n result |= 2 /* UpdateFlag.Height */;\n }\n let viewportChange = !this.viewportIsAppropriate(this.viewport, bias) ||\n this.scrollTarget && (this.scrollTarget.range.head < this.viewport.from ||\n this.scrollTarget.range.head > this.viewport.to);\n if (viewportChange) {\n if (result & 2 /* UpdateFlag.Height */)\n result |= this.updateScaler();\n this.viewport = this.getViewport(bias, this.scrollTarget);\n result |= this.updateForViewport();\n }\n if ((result & 2 /* UpdateFlag.Height */) || viewportChange)\n this.updateViewportLines();\n if (this.lineGaps.length || this.viewport.to - this.viewport.from > (2000 /* LG.Margin */ << 1))\n this.updateLineGaps(this.ensureLineGaps(refresh ? [] : this.lineGaps, view));\n result |= this.computeVisibleRanges();\n if (this.mustEnforceCursorAssoc) {\n this.mustEnforceCursorAssoc = false;\n // This is done in the read stage, because moving the selection\n // to a line end is going to trigger a layout anyway, so it\n // can't be a pure write. It should be rare that it does any\n // writing.\n view.docView.enforceCursorAssoc();\n }\n return result;\n }\n get visibleTop() { return this.scaler.fromDOM(this.pixelViewport.top); }\n get visibleBottom() { return this.scaler.fromDOM(this.pixelViewport.bottom); }\n getViewport(bias, scrollTarget) {\n // This will divide VP.Margin between the top and the\n // bottom, depending on the bias (the change in viewport position\n // since the last update). It'll hold a number between 0 and 1\n let marginTop = 0.5 - Math.max(-0.5, Math.min(0.5, bias / 1000 /* VP.Margin */ / 2));\n let map = this.heightMap, oracle = this.heightOracle;\n let { visibleTop, visibleBottom } = this;\n let viewport = new Viewport(map.lineAt(visibleTop - marginTop * 1000 /* VP.Margin */, QueryType.ByHeight, oracle, 0, 0).from, map.lineAt(visibleBottom + (1 - marginTop) * 1000 /* VP.Margin */, QueryType.ByHeight, oracle, 0, 0).to);\n // If scrollTarget is given, make sure the viewport includes that position\n if (scrollTarget) {\n let { head } = scrollTarget.range;\n if (head < viewport.from || head > viewport.to) {\n let viewHeight = Math.min(this.editorHeight, this.pixelViewport.bottom - this.pixelViewport.top);\n let block = map.lineAt(head, QueryType.ByPos, oracle, 0, 0), topPos;\n if (scrollTarget.y == \"center\")\n topPos = (block.top + block.bottom) / 2 - viewHeight / 2;\n else if (scrollTarget.y == \"start\" || scrollTarget.y == \"nearest\" && head < viewport.from)\n topPos = block.top;\n else\n topPos = block.bottom - viewHeight;\n viewport = new Viewport(map.lineAt(topPos - 1000 /* VP.Margin */ / 2, QueryType.ByHeight, oracle, 0, 0).from, map.lineAt(topPos + viewHeight + 1000 /* VP.Margin */ / 2, QueryType.ByHeight, oracle, 0, 0).to);\n }\n }\n return viewport;\n }\n mapViewport(viewport, changes) {\n let from = changes.mapPos(viewport.from, -1), to = changes.mapPos(viewport.to, 1);\n return new Viewport(this.heightMap.lineAt(from, QueryType.ByPos, this.heightOracle, 0, 0).from, this.heightMap.lineAt(to, QueryType.ByPos, this.heightOracle, 0, 0).to);\n }\n // Checks if a given viewport covers the visible part of the\n // document and not too much beyond that.\n viewportIsAppropriate({ from, to }, bias = 0) {\n if (!this.inView)\n return true;\n let { top } = this.heightMap.lineAt(from, QueryType.ByPos, this.heightOracle, 0, 0);\n let { bottom } = this.heightMap.lineAt(to, QueryType.ByPos, this.heightOracle, 0, 0);\n let { visibleTop, visibleBottom } = this;\n return (from == 0 || top <= visibleTop - Math.max(10 /* VP.MinCoverMargin */, Math.min(-bias, 250 /* VP.MaxCoverMargin */))) &&\n (to == this.state.doc.length ||\n bottom >= visibleBottom + Math.max(10 /* VP.MinCoverMargin */, Math.min(bias, 250 /* VP.MaxCoverMargin */))) &&\n (top > visibleTop - 2 * 1000 /* VP.Margin */ && bottom < visibleBottom + 2 * 1000 /* VP.Margin */);\n }\n mapLineGaps(gaps, changes) {\n if (!gaps.length || changes.empty)\n return gaps;\n let mapped = [];\n for (let gap of gaps)\n if (!changes.touchesRange(gap.from, gap.to))\n mapped.push(new LineGap(changes.mapPos(gap.from), changes.mapPos(gap.to), gap.size));\n return mapped;\n }\n // Computes positions in the viewport where the start or end of a\n // line should be hidden, trying to reuse existing line gaps when\n // appropriate to avoid unneccesary redraws.\n // Uses crude character-counting for the positioning and sizing,\n // since actual DOM coordinates aren't always available and\n // predictable. Relies on generous margins (see LG.Margin) to hide\n // the artifacts this might produce from the user.\n ensureLineGaps(current, mayMeasure) {\n let wrapping = this.heightOracle.lineWrapping;\n let margin = wrapping ? 10000 /* LG.MarginWrap */ : 2000 /* LG.Margin */, halfMargin = margin >> 1, doubleMargin = margin << 1;\n // The non-wrapping logic won't work at all in predominantly right-to-left text.\n if (this.defaultTextDirection != Direction.LTR && !wrapping)\n return [];\n let gaps = [];\n let addGap = (from, to, line, structure) => {\n if (to - from < halfMargin)\n return;\n let sel = this.state.selection.main, avoid = [sel.from];\n if (!sel.empty)\n avoid.push(sel.to);\n for (let pos of avoid) {\n if (pos > from && pos < to) {\n addGap(from, pos - 10 /* LG.SelectionMargin */, line, structure);\n addGap(pos + 10 /* LG.SelectionMargin */, to, line, structure);\n return;\n }\n }\n let gap = find(current, gap => gap.from >= line.from && gap.to <= line.to &&\n Math.abs(gap.from - from) < halfMargin && Math.abs(gap.to - to) < halfMargin &&\n !avoid.some(pos => gap.from < pos && gap.to > pos));\n if (!gap) {\n // When scrolling down, snap gap ends to line starts to avoid shifts in wrapping\n if (to < line.to && mayMeasure && wrapping &&\n mayMeasure.visibleRanges.some(r => r.from <= to && r.to >= to)) {\n let lineStart = mayMeasure.moveToLineBoundary(EditorSelection.cursor(to), false, true).head;\n if (lineStart > from)\n to = lineStart;\n }\n gap = new LineGap(from, to, this.gapSize(line, from, to, structure));\n }\n gaps.push(gap);\n };\n let checkLine = (line) => {\n if (line.length < doubleMargin || line.type != BlockType.Text)\n return;\n let structure = lineStructure(line.from, line.to, this.stateDeco);\n if (structure.total < doubleMargin)\n return;\n let target = this.scrollTarget ? this.scrollTarget.range.head : null;\n let viewFrom, viewTo;\n if (wrapping) {\n let marginHeight = (margin / this.heightOracle.lineLength) * this.heightOracle.lineHeight;\n let top, bot;\n if (target != null) {\n let targetFrac = findFraction(structure, target);\n let spaceFrac = ((this.visibleBottom - this.visibleTop) / 2 + marginHeight) / line.height;\n top = targetFrac - spaceFrac;\n bot = targetFrac + spaceFrac;\n }\n else {\n top = (this.visibleTop - line.top - marginHeight) / line.height;\n bot = (this.visibleBottom - line.top + marginHeight) / line.height;\n }\n viewFrom = findPosition(structure, top);\n viewTo = findPosition(structure, bot);\n }\n else {\n let totalWidth = structure.total * this.heightOracle.charWidth;\n let marginWidth = margin * this.heightOracle.charWidth;\n let left, right;\n if (target != null) {\n let targetFrac = findFraction(structure, target);\n let spaceFrac = ((this.pixelViewport.right - this.pixelViewport.left) / 2 + marginWidth) / totalWidth;\n left = targetFrac - spaceFrac;\n right = targetFrac + spaceFrac;\n }\n else {\n left = (this.pixelViewport.left - marginWidth) / totalWidth;\n right = (this.pixelViewport.right + marginWidth) / totalWidth;\n }\n viewFrom = findPosition(structure, left);\n viewTo = findPosition(structure, right);\n }\n if (viewFrom > line.from)\n addGap(line.from, viewFrom, line, structure);\n if (viewTo < line.to)\n addGap(viewTo, line.to, line, structure);\n };\n for (let line of this.viewportLines) {\n if (Array.isArray(line.type))\n line.type.forEach(checkLine);\n else\n checkLine(line);\n }\n return gaps;\n }\n gapSize(line, from, to, structure) {\n let fraction = findFraction(structure, to) - findFraction(structure, from);\n if (this.heightOracle.lineWrapping) {\n return line.height * fraction;\n }\n else {\n return structure.total * this.heightOracle.charWidth * fraction;\n }\n }\n updateLineGaps(gaps) {\n if (!LineGap.same(gaps, this.lineGaps)) {\n this.lineGaps = gaps;\n this.lineGapDeco = Decoration.set(gaps.map(gap => gap.draw(this, this.heightOracle.lineWrapping)));\n }\n }\n computeVisibleRanges() {\n let deco = this.stateDeco;\n if (this.lineGaps.length)\n deco = deco.concat(this.lineGapDeco);\n let ranges = [];\n RangeSet.spans(deco, this.viewport.from, this.viewport.to, {\n span(from, to) { ranges.push({ from, to }); },\n point() { }\n }, 20);\n let changed = ranges.length != this.visibleRanges.length ||\n this.visibleRanges.some((r, i) => r.from != ranges[i].from || r.to != ranges[i].to);\n this.visibleRanges = ranges;\n return changed ? 4 /* UpdateFlag.Viewport */ : 0;\n }\n lineBlockAt(pos) {\n return (pos >= this.viewport.from && pos <= this.viewport.to &&\n this.viewportLines.find(b => b.from <= pos && b.to >= pos)) ||\n scaleBlock(this.heightMap.lineAt(pos, QueryType.ByPos, this.heightOracle, 0, 0), this.scaler);\n }\n lineBlockAtHeight(height) {\n return (height >= this.viewportLines[0].top && height <= this.viewportLines[this.viewportLines.length - 1].bottom &&\n this.viewportLines.find(l => l.top <= height && l.bottom >= height)) ||\n scaleBlock(this.heightMap.lineAt(this.scaler.fromDOM(height), QueryType.ByHeight, this.heightOracle, 0, 0), this.scaler);\n }\n scrollAnchorAt(scrollTop) {\n let block = this.lineBlockAtHeight(scrollTop + 8);\n return block.from >= this.viewport.from || this.viewportLines[0].top - scrollTop > 200 ? block : this.viewportLines[0];\n }\n elementAtHeight(height) {\n return scaleBlock(this.heightMap.blockAt(this.scaler.fromDOM(height), this.heightOracle, 0, 0), this.scaler);\n }\n get docHeight() {\n return this.scaler.toDOM(this.heightMap.height);\n }\n get contentHeight() {\n return this.docHeight + this.paddingTop + this.paddingBottom;\n }\n}\nclass Viewport {\n constructor(from, to) {\n this.from = from;\n this.to = to;\n }\n}\nfunction lineStructure(from, to, stateDeco) {\n let ranges = [], pos = from, total = 0;\n RangeSet.spans(stateDeco, from, to, {\n span() { },\n point(from, to) {\n if (from > pos) {\n ranges.push({ from: pos, to: from });\n total += from - pos;\n }\n pos = to;\n }\n }, 20); // We're only interested in collapsed ranges of a significant size\n if (pos < to) {\n ranges.push({ from: pos, to });\n total += to - pos;\n }\n return { total, ranges };\n}\nfunction findPosition({ total, ranges }, ratio) {\n if (ratio <= 0)\n return ranges[0].from;\n if (ratio >= 1)\n return ranges[ranges.length - 1].to;\n let dist = Math.floor(total * ratio);\n for (let i = 0;; i++) {\n let { from, to } = ranges[i], size = to - from;\n if (dist <= size)\n return from + dist;\n dist -= size;\n }\n}\nfunction findFraction(structure, pos) {\n let counted = 0;\n for (let { from, to } of structure.ranges) {\n if (pos <= to) {\n counted += pos - from;\n break;\n }\n counted += to - from;\n }\n return counted / structure.total;\n}\nfunction find(array, f) {\n for (let val of array)\n if (f(val))\n return val;\n return undefined;\n}\n// Don't scale when the document height is within the range of what\n// the DOM can handle.\nconst IdScaler = {\n toDOM(n) { return n; },\n fromDOM(n) { return n; },\n scale: 1,\n eq(other) { return other == this; }\n};\n// When the height is too big (> VP.MaxDOMHeight), scale down the\n// regions outside the viewports so that the total height is\n// VP.MaxDOMHeight.\nclass BigScaler {\n constructor(oracle, heightMap, viewports) {\n let vpHeight = 0, base = 0, domBase = 0;\n this.viewports = viewports.map(({ from, to }) => {\n let top = heightMap.lineAt(from, QueryType.ByPos, oracle, 0, 0).top;\n let bottom = heightMap.lineAt(to, QueryType.ByPos, oracle, 0, 0).bottom;\n vpHeight += bottom - top;\n return { from, to, top, bottom, domTop: 0, domBottom: 0 };\n });\n this.scale = (7000000 /* VP.MaxDOMHeight */ - vpHeight) / (heightMap.height - vpHeight);\n for (let obj of this.viewports) {\n obj.domTop = domBase + (obj.top - base) * this.scale;\n domBase = obj.domBottom = obj.domTop + (obj.bottom - obj.top);\n base = obj.bottom;\n }\n }\n toDOM(n) {\n for (let i = 0, base = 0, domBase = 0;; i++) {\n let vp = i < this.viewports.length ? this.viewports[i] : null;\n if (!vp || n < vp.top)\n return domBase + (n - base) * this.scale;\n if (n <= vp.bottom)\n return vp.domTop + (n - vp.top);\n base = vp.bottom;\n domBase = vp.domBottom;\n }\n }\n fromDOM(n) {\n for (let i = 0, base = 0, domBase = 0;; i++) {\n let vp = i < this.viewports.length ? this.viewports[i] : null;\n if (!vp || n < vp.domTop)\n return base + (n - domBase) / this.scale;\n if (n <= vp.domBottom)\n return vp.top + (n - vp.domTop);\n base = vp.bottom;\n domBase = vp.domBottom;\n }\n }\n eq(other) {\n if (!(other instanceof BigScaler))\n return false;\n return this.scale == other.scale && this.viewports.length == other.viewports.length &&\n this.viewports.every((vp, i) => vp.from == other.viewports[i].from && vp.to == other.viewports[i].to);\n }\n}\nfunction scaleBlock(block, scaler) {\n if (scaler.scale == 1)\n return block;\n let bTop = scaler.toDOM(block.top), bBottom = scaler.toDOM(block.bottom);\n return new BlockInfo(block.from, block.length, bTop, bBottom - bTop, Array.isArray(block._content) ? block._content.map(b => scaleBlock(b, scaler)) : block._content);\n}\n\nconst theme = /*@__PURE__*/Facet.define({ combine: strs => strs.join(\" \") });\nconst darkTheme = /*@__PURE__*/Facet.define({ combine: values => values.indexOf(true) > -1 });\nconst baseThemeID = /*@__PURE__*/StyleModule.newName(), baseLightID = /*@__PURE__*/StyleModule.newName(), baseDarkID = /*@__PURE__*/StyleModule.newName();\nconst lightDarkIDs = { \"&light\": \".\" + baseLightID, \"&dark\": \".\" + baseDarkID };\nfunction buildTheme(main, spec, scopes) {\n return new StyleModule(spec, {\n finish(sel) {\n return /&/.test(sel) ? sel.replace(/&\\w*/, m => {\n if (m == \"&\")\n return main;\n if (!scopes || !scopes[m])\n throw new RangeError(`Unsupported selector: ${m}`);\n return scopes[m];\n }) : main + \" \" + sel;\n }\n });\n}\nconst baseTheme$1 = /*@__PURE__*/buildTheme(\".\" + baseThemeID, {\n \"&\": {\n position: \"relative !important\",\n boxSizing: \"border-box\",\n \"&.cm-focused\": {\n // Provide a simple default outline to make sure a focused\n // editor is visually distinct. Can't leave the default behavior\n // because that will apply to the content element, which is\n // inside the scrollable container and doesn't include the\n // gutters. We also can't use an 'auto' outline, since those\n // are, for some reason, drawn behind the element content, which\n // will cause things like the active line background to cover\n // the outline (#297).\n outline: \"1px dotted #212121\"\n },\n display: \"flex !important\",\n flexDirection: \"column\"\n },\n \".cm-scroller\": {\n display: \"flex !important\",\n alignItems: \"flex-start !important\",\n fontFamily: \"monospace\",\n lineHeight: 1.4,\n height: \"100%\",\n overflowX: \"auto\",\n position: \"relative\",\n zIndex: 0\n },\n \".cm-content\": {\n margin: 0,\n flexGrow: 2,\n flexShrink: 0,\n display: \"block\",\n whiteSpace: \"pre\",\n wordWrap: \"normal\", // https://github.com/codemirror/dev/issues/456\n boxSizing: \"border-box\",\n minHeight: \"100%\",\n padding: \"4px 0\",\n outline: \"none\",\n \"&[contenteditable=true]\": {\n WebkitUserModify: \"read-write-plaintext-only\",\n }\n },\n \".cm-lineWrapping\": {\n whiteSpace_fallback: \"pre-wrap\", // For IE\n whiteSpace: \"break-spaces\",\n wordBreak: \"break-word\", // For Safari, which doesn't support overflow-wrap: anywhere\n overflowWrap: \"anywhere\",\n flexShrink: 1\n },\n \"&light .cm-content\": { caretColor: \"black\" },\n \"&dark .cm-content\": { caretColor: \"white\" },\n \".cm-line\": {\n display: \"block\",\n padding: \"0 2px 0 6px\"\n },\n \".cm-layer\": {\n position: \"absolute\",\n left: 0,\n top: 0,\n contain: \"size style\",\n \"& > *\": {\n position: \"absolute\"\n }\n },\n \"&light .cm-selectionBackground\": {\n background: \"#d9d9d9\"\n },\n \"&dark .cm-selectionBackground\": {\n background: \"#222\"\n },\n \"&light.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground\": {\n background: \"#d7d4f0\"\n },\n \"&dark.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground\": {\n background: \"#233\"\n },\n \".cm-cursorLayer\": {\n pointerEvents: \"none\"\n },\n \"&.cm-focused > .cm-scroller > .cm-cursorLayer\": {\n animation: \"steps(1) cm-blink 1.2s infinite\"\n },\n // Two animations defined so that we can switch between them to\n // restart the animation without forcing another style\n // recomputation.\n \"@keyframes cm-blink\": { \"0%\": {}, \"50%\": { opacity: 0 }, \"100%\": {} },\n \"@keyframes cm-blink2\": { \"0%\": {}, \"50%\": { opacity: 0 }, \"100%\": {} },\n \".cm-cursor, .cm-dropCursor\": {\n borderLeft: \"1.2px solid black\",\n marginLeft: \"-0.6px\",\n pointerEvents: \"none\",\n },\n \".cm-cursor\": {\n display: \"none\"\n },\n \"&dark .cm-cursor\": {\n borderLeftColor: \"#444\"\n },\n \".cm-dropCursor\": {\n position: \"absolute\"\n },\n \"&.cm-focused > .cm-scroller > .cm-cursorLayer .cm-cursor\": {\n display: \"block\"\n },\n \".cm-iso\": {\n unicodeBidi: \"isolate\"\n },\n \".cm-announced\": {\n position: \"fixed\",\n top: \"-10000px\"\n },\n \"@media print\": {\n \".cm-announced\": { display: \"none\" }\n },\n \"&light .cm-activeLine\": { backgroundColor: \"#cceeff44\" },\n \"&dark .cm-activeLine\": { backgroundColor: \"#99eeff33\" },\n \"&light .cm-specialChar\": { color: \"red\" },\n \"&dark .cm-specialChar\": { color: \"#f78\" },\n \".cm-gutters\": {\n flexShrink: 0,\n display: \"flex\",\n height: \"100%\",\n boxSizing: \"border-box\",\n insetInlineStart: 0,\n zIndex: 200\n },\n \"&light .cm-gutters\": {\n backgroundColor: \"#f5f5f5\",\n color: \"#6c6c6c\",\n borderRight: \"1px solid #ddd\"\n },\n \"&dark .cm-gutters\": {\n backgroundColor: \"#333338\",\n color: \"#ccc\"\n },\n \".cm-gutter\": {\n display: \"flex !important\", // Necessary -- prevents margin collapsing\n flexDirection: \"column\",\n flexShrink: 0,\n boxSizing: \"border-box\",\n minHeight: \"100%\",\n overflow: \"hidden\"\n },\n \".cm-gutterElement\": {\n boxSizing: \"border-box\"\n },\n \".cm-lineNumbers .cm-gutterElement\": {\n padding: \"0 3px 0 5px\",\n minWidth: \"20px\",\n textAlign: \"right\",\n whiteSpace: \"nowrap\"\n },\n \"&light .cm-activeLineGutter\": {\n backgroundColor: \"#e2f2ff\"\n },\n \"&dark .cm-activeLineGutter\": {\n backgroundColor: \"#222227\"\n },\n \".cm-panels\": {\n boxSizing: \"border-box\",\n position: \"sticky\",\n left: 0,\n right: 0\n },\n \"&light .cm-panels\": {\n backgroundColor: \"#f5f5f5\",\n color: \"black\"\n },\n \"&light .cm-panels-top\": {\n borderBottom: \"1px solid #ddd\"\n },\n \"&light .cm-panels-bottom\": {\n borderTop: \"1px solid #ddd\"\n },\n \"&dark .cm-panels\": {\n backgroundColor: \"#333338\",\n color: \"white\"\n },\n \".cm-tab\": {\n display: \"inline-block\",\n overflow: \"hidden\",\n verticalAlign: \"bottom\"\n },\n \".cm-widgetBuffer\": {\n verticalAlign: \"text-top\",\n height: \"1em\",\n width: 0,\n display: \"inline\"\n },\n \".cm-placeholder\": {\n color: \"#888\",\n display: \"inline-block\",\n verticalAlign: \"top\",\n },\n \".cm-highlightSpace:before\": {\n content: \"attr(data-display)\",\n position: \"absolute\",\n pointerEvents: \"none\",\n color: \"#888\"\n },\n \".cm-highlightTab\": {\n backgroundImage: `url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"200\" height=\"20\"><path stroke=\"%23888\" stroke-width=\"1\" fill=\"none\" d=\"M1 10H196L190 5M190 15L196 10M197 4L197 16\"/></svg>')`,\n backgroundSize: \"auto 100%\",\n backgroundPosition: \"right 90%\",\n backgroundRepeat: \"no-repeat\"\n },\n \".cm-trailingSpace\": {\n backgroundColor: \"#ff332255\"\n },\n \".cm-button\": {\n verticalAlign: \"middle\",\n color: \"inherit\",\n fontSize: \"70%\",\n padding: \".2em 1em\",\n borderRadius: \"1px\"\n },\n \"&light .cm-button\": {\n backgroundImage: \"linear-gradient(#eff1f5, #d9d9df)\",\n border: \"1px solid #888\",\n \"&:active\": {\n backgroundImage: \"linear-gradient(#b4b4b4, #d0d3d6)\"\n }\n },\n \"&dark .cm-button\": {\n backgroundImage: \"linear-gradient(#393939, #111)\",\n border: \"1px solid #888\",\n \"&:active\": {\n backgroundImage: \"linear-gradient(#111, #333)\"\n }\n },\n \".cm-textfield\": {\n verticalAlign: \"middle\",\n color: \"inherit\",\n fontSize: \"70%\",\n border: \"1px solid silver\",\n padding: \".2em .5em\"\n },\n \"&light .cm-textfield\": {\n backgroundColor: \"white\"\n },\n \"&dark .cm-textfield\": {\n border: \"1px solid #555\",\n backgroundColor: \"inherit\"\n }\n}, lightDarkIDs);\n\nconst LineBreakPlaceholder = \"\\uffff\";\nclass DOMReader {\n constructor(points, state) {\n this.points = points;\n this.text = \"\";\n this.lineSeparator = state.facet(EditorState.lineSeparator);\n }\n append(text) {\n this.text += text;\n }\n lineBreak() {\n this.text += LineBreakPlaceholder;\n }\n readRange(start, end) {\n if (!start)\n return this;\n let parent = start.parentNode;\n for (let cur = start;;) {\n this.findPointBefore(parent, cur);\n let oldLen = this.text.length;\n this.readNode(cur);\n let next = cur.nextSibling;\n if (next == end)\n break;\n let view = ContentView.get(cur), nextView = ContentView.get(next);\n if (view && nextView ? view.breakAfter :\n (view ? view.breakAfter : isBlockElement(cur)) ||\n (isBlockElement(next) && (cur.nodeName != \"BR\" || cur.cmIgnore) && this.text.length > oldLen))\n this.lineBreak();\n cur = next;\n }\n this.findPointBefore(parent, end);\n return this;\n }\n readTextNode(node) {\n let text = node.nodeValue;\n for (let point of this.points)\n if (point.node == node)\n point.pos = this.text.length + Math.min(point.offset, text.length);\n for (let off = 0, re = this.lineSeparator ? null : /\\r\\n?|\\n/g;;) {\n let nextBreak = -1, breakSize = 1, m;\n if (this.lineSeparator) {\n nextBreak = text.indexOf(this.lineSeparator, off);\n breakSize = this.lineSeparator.length;\n }\n else if (m = re.exec(text)) {\n nextBreak = m.index;\n breakSize = m[0].length;\n }\n this.append(text.slice(off, nextBreak < 0 ? text.length : nextBreak));\n if (nextBreak < 0)\n break;\n this.lineBreak();\n if (breakSize > 1)\n for (let point of this.points)\n if (point.node == node && point.pos > this.text.length)\n point.pos -= breakSize - 1;\n off = nextBreak + breakSize;\n }\n }\n readNode(node) {\n if (node.cmIgnore)\n return;\n let view = ContentView.get(node);\n let fromView = view && view.overrideDOMText;\n if (fromView != null) {\n this.findPointInside(node, fromView.length);\n for (let i = fromView.iter(); !i.next().done;) {\n if (i.lineBreak)\n this.lineBreak();\n else\n this.append(i.value);\n }\n }\n else if (node.nodeType == 3) {\n this.readTextNode(node);\n }\n else if (node.nodeName == \"BR\") {\n if (node.nextSibling)\n this.lineBreak();\n }\n else if (node.nodeType == 1) {\n this.readRange(node.firstChild, null);\n }\n }\n findPointBefore(node, next) {\n for (let point of this.points)\n if (point.node == node && node.childNodes[point.offset] == next)\n point.pos = this.text.length;\n }\n findPointInside(node, length) {\n for (let point of this.points)\n if (node.nodeType == 3 ? point.node == node : node.contains(point.node))\n point.pos = this.text.length + (isAtEnd(node, point.node, point.offset) ? length : 0);\n }\n}\nfunction isAtEnd(parent, node, offset) {\n for (;;) {\n if (!node || offset < maxOffset(node))\n return false;\n if (node == parent)\n return true;\n offset = domIndex(node) + 1;\n node = node.parentNode;\n }\n}\nclass DOMPoint {\n constructor(node, offset) {\n this.node = node;\n this.offset = offset;\n this.pos = -1;\n }\n}\n\nclass DOMChange {\n constructor(view, start, end, typeOver) {\n this.typeOver = typeOver;\n this.bounds = null;\n this.text = \"\";\n this.domChanged = start > -1;\n let { impreciseHead: iHead, impreciseAnchor: iAnchor } = view.docView;\n if (view.state.readOnly && start > -1) {\n // Ignore changes when the editor is read-only\n this.newSel = null;\n }\n else if (start > -1 && (this.bounds = view.docView.domBoundsAround(start, end, 0))) {\n let selPoints = iHead || iAnchor ? [] : selectionPoints(view);\n let reader = new DOMReader(selPoints, view.state);\n reader.readRange(this.bounds.startDOM, this.bounds.endDOM);\n this.text = reader.text;\n this.newSel = selectionFromPoints(selPoints, this.bounds.from);\n }\n else {\n let domSel = view.observer.selectionRange;\n let head = iHead && iHead.node == domSel.focusNode && iHead.offset == domSel.focusOffset ||\n !contains(view.contentDOM, domSel.focusNode)\n ? view.state.selection.main.head\n : view.docView.posFromDOM(domSel.focusNode, domSel.focusOffset);\n let anchor = iAnchor && iAnchor.node == domSel.anchorNode && iAnchor.offset == domSel.anchorOffset ||\n !contains(view.contentDOM, domSel.anchorNode)\n ? view.state.selection.main.anchor\n : view.docView.posFromDOM(domSel.anchorNode, domSel.anchorOffset);\n // iOS will refuse to select the block gaps when doing\n // select-all.\n // Chrome will put the selection *inside* them, confusing\n // posFromDOM\n let vp = view.viewport;\n if ((browser.ios || browser.chrome) && view.state.selection.main.empty && head != anchor &&\n (vp.from > 0 || vp.to < view.state.doc.length)) {\n let from = Math.min(head, anchor), to = Math.max(head, anchor);\n let offFrom = vp.from - from, offTo = vp.to - to;\n if ((offFrom == 0 || offFrom == 1 || from == 0) && (offTo == 0 || offTo == -1 || to == view.state.doc.length)) {\n head = 0;\n anchor = view.state.doc.length;\n }\n }\n this.newSel = EditorSelection.single(anchor, head);\n }\n }\n}\nfunction applyDOMChange(view, domChange) {\n let change;\n let { newSel } = domChange, sel = view.state.selection.main;\n let lastKey = view.inputState.lastKeyTime > Date.now() - 100 ? view.inputState.lastKeyCode : -1;\n if (domChange.bounds) {\n let { from, to } = domChange.bounds;\n let preferredPos = sel.from, preferredSide = null;\n // Prefer anchoring to end when Backspace is pressed (or, on\n // Android, when something was deleted)\n if (lastKey === 8 || browser.android && domChange.text.length < to - from) {\n preferredPos = sel.to;\n preferredSide = \"end\";\n }\n let diff = findDiff(view.state.doc.sliceString(from, to, LineBreakPlaceholder), domChange.text, preferredPos - from, preferredSide);\n if (diff) {\n // Chrome inserts two newlines when pressing shift-enter at the\n // end of a line. DomChange drops one of those.\n if (browser.chrome && lastKey == 13 &&\n diff.toB == diff.from + 2 && domChange.text.slice(diff.from, diff.toB) == LineBreakPlaceholder + LineBreakPlaceholder)\n diff.toB--;\n change = { from: from + diff.from, to: from + diff.toA,\n insert: Text.of(domChange.text.slice(diff.from, diff.toB).split(LineBreakPlaceholder)) };\n }\n }\n else if (newSel && (!view.hasFocus && view.state.facet(editable) || newSel.main.eq(sel))) {\n newSel = null;\n }\n if (!change && !newSel)\n return false;\n if (!change && domChange.typeOver && !sel.empty && newSel && newSel.main.empty) {\n // Heuristic to notice typing over a selected character\n change = { from: sel.from, to: sel.to, insert: view.state.doc.slice(sel.from, sel.to) };\n }\n else if (change && change.from >= sel.from && change.to <= sel.to &&\n (change.from != sel.from || change.to != sel.to) &&\n (sel.to - sel.from) - (change.to - change.from) <= 4) {\n // If the change is inside the selection and covers most of it,\n // assume it is a selection replace (with identical characters at\n // the start/end not included in the diff)\n change = {\n from: sel.from, to: sel.to,\n insert: view.state.doc.slice(sel.from, change.from).append(change.insert).append(view.state.doc.slice(change.to, sel.to))\n };\n }\n else if ((browser.mac || browser.android) && change && change.from == change.to && change.from == sel.head - 1 &&\n /^\\. ?$/.test(change.insert.toString()) && view.contentDOM.getAttribute(\"autocorrect\") == \"off\") {\n // Detect insert-period-on-double-space Mac and Android behavior,\n // and transform it into a regular space insert.\n if (newSel && change.insert.length == 2)\n newSel = EditorSelection.single(newSel.main.anchor - 1, newSel.main.head - 1);\n change = { from: sel.from, to: sel.to, insert: Text.of([\" \"]) };\n }\n else if (browser.chrome && change && change.from == change.to && change.from == sel.head &&\n change.insert.toString() == \"\\n \" && view.lineWrapping) {\n // In Chrome, if you insert a space at the start of a wrapped\n // line, it will actually insert a newline and a space, causing a\n // bogus new line to be created in CodeMirror (#968)\n if (newSel)\n newSel = EditorSelection.single(newSel.main.anchor - 1, newSel.main.head - 1);\n change = { from: sel.from, to: sel.to, insert: Text.of([\" \"]) };\n }\n if (change) {\n return applyDOMChangeInner(view, change, newSel, lastKey);\n }\n else if (newSel && !newSel.main.eq(sel)) {\n let scrollIntoView = false, userEvent = \"select\";\n if (view.inputState.lastSelectionTime > Date.now() - 50) {\n if (view.inputState.lastSelectionOrigin == \"select\")\n scrollIntoView = true;\n userEvent = view.inputState.lastSelectionOrigin;\n }\n view.dispatch({ selection: newSel, scrollIntoView, userEvent });\n return true;\n }\n else {\n return false;\n }\n}\nfunction applyDOMChangeInner(view, change, newSel, lastKey = -1) {\n if (browser.ios && view.inputState.flushIOSKey(change))\n return true;\n let sel = view.state.selection.main;\n // Android browsers don't fire reasonable key events for enter,\n // backspace, or delete. So this detects changes that look like\n // they're caused by those keys, and reinterprets them as key\n // events. (Some of these keys are also handled by beforeinput\n // events and the pendingAndroidKey mechanism, but that's not\n // reliable in all situations.)\n if (browser.android &&\n ((change.to == sel.to &&\n // GBoard will sometimes remove a space it just inserted\n // after a completion when you press enter\n (change.from == sel.from || change.from == sel.from - 1 && view.state.sliceDoc(change.from, sel.from) == \" \") &&\n change.insert.length == 1 && change.insert.lines == 2 &&\n dispatchKey(view.contentDOM, \"Enter\", 13)) ||\n ((change.from == sel.from - 1 && change.to == sel.to && change.insert.length == 0 ||\n lastKey == 8 && change.insert.length < change.to - change.from && change.to > sel.head) &&\n dispatchKey(view.contentDOM, \"Backspace\", 8)) ||\n (change.from == sel.from && change.to == sel.to + 1 && change.insert.length == 0 &&\n dispatchKey(view.contentDOM, \"Delete\", 46))))\n return true;\n let text = change.insert.toString();\n if (view.inputState.composing >= 0)\n view.inputState.composing++;\n let defaultTr;\n let defaultInsert = () => defaultTr || (defaultTr = applyDefaultInsert(view, change, newSel));\n if (!view.state.facet(inputHandler).some(h => h(view, change.from, change.to, text, defaultInsert)))\n view.dispatch(defaultInsert());\n return true;\n}\nfunction applyDefaultInsert(view, change, newSel) {\n let tr, startState = view.state, sel = startState.selection.main;\n if (change.from >= sel.from && change.to <= sel.to && change.to - change.from >= (sel.to - sel.from) / 3 &&\n (!newSel || newSel.main.empty && newSel.main.from == change.from + change.insert.length) &&\n view.inputState.composing < 0) {\n let before = sel.from < change.from ? startState.sliceDoc(sel.from, change.from) : \"\";\n let after = sel.to > change.to ? startState.sliceDoc(change.to, sel.to) : \"\";\n tr = startState.replaceSelection(view.state.toText(before + change.insert.sliceString(0, undefined, view.state.lineBreak) + after));\n }\n else {\n let changes = startState.changes(change);\n let mainSel = newSel && newSel.main.to <= changes.newLength ? newSel.main : undefined;\n // Try to apply a composition change to all cursors\n if (startState.selection.ranges.length > 1 && view.inputState.composing >= 0 &&\n change.to <= sel.to && change.to >= sel.to - 10) {\n let replaced = view.state.sliceDoc(change.from, change.to);\n let compositionRange, composition = newSel && findCompositionNode(view, newSel.main.head);\n if (composition) {\n let dLen = change.insert.length - (change.to - change.from);\n compositionRange = { from: composition.from, to: composition.to - dLen };\n }\n else {\n compositionRange = view.state.doc.lineAt(sel.head);\n }\n let offset = sel.to - change.to, size = sel.to - sel.from;\n tr = startState.changeByRange(range => {\n if (range.from == sel.from && range.to == sel.to)\n return { changes, range: mainSel || range.map(changes) };\n let to = range.to - offset, from = to - replaced.length;\n if (range.to - range.from != size || view.state.sliceDoc(from, to) != replaced ||\n // Unfortunately, there's no way to make multiple\n // changes in the same node work without aborting\n // composition, so cursors in the composition range are\n // ignored.\n range.to >= compositionRange.from && range.from <= compositionRange.to)\n return { range };\n let rangeChanges = startState.changes({ from, to, insert: change.insert }), selOff = range.to - sel.to;\n return {\n changes: rangeChanges,\n range: !mainSel ? range.map(rangeChanges) :\n EditorSelection.range(Math.max(0, mainSel.anchor + selOff), Math.max(0, mainSel.head + selOff))\n };\n });\n }\n else {\n tr = {\n changes,\n selection: mainSel && startState.selection.replaceRange(mainSel)\n };\n }\n }\n let userEvent = \"input.type\";\n if (view.composing ||\n view.inputState.compositionPendingChange && view.inputState.compositionEndedAt > Date.now() - 50) {\n view.inputState.compositionPendingChange = false;\n userEvent += \".compose\";\n if (view.inputState.compositionFirstChange) {\n userEvent += \".start\";\n view.inputState.compositionFirstChange = false;\n }\n }\n return startState.update(tr, { userEvent, scrollIntoView: true });\n}\nfunction findDiff(a, b, preferredPos, preferredSide) {\n let minLen = Math.min(a.length, b.length);\n let from = 0;\n while (from < minLen && a.charCodeAt(from) == b.charCodeAt(from))\n from++;\n if (from == minLen && a.length == b.length)\n return null;\n let toA = a.length, toB = b.length;\n while (toA > 0 && toB > 0 && a.charCodeAt(toA - 1) == b.charCodeAt(toB - 1)) {\n toA--;\n toB--;\n }\n if (preferredSide == \"end\") {\n let adjust = Math.max(0, from - Math.min(toA, toB));\n preferredPos -= toA + adjust - from;\n }\n if (toA < from && a.length < b.length) {\n let move = preferredPos <= from && preferredPos >= toA ? from - preferredPos : 0;\n from -= move;\n toB = from + (toB - toA);\n toA = from;\n }\n else if (toB < from) {\n let move = preferredPos <= from && preferredPos >= toB ? from - preferredPos : 0;\n from -= move;\n toA = from + (toA - toB);\n toB = from;\n }\n return { from, toA, toB };\n}\nfunction selectionPoints(view) {\n let result = [];\n if (view.root.activeElement != view.contentDOM)\n return result;\n let { anchorNode, anchorOffset, focusNode, focusOffset } = view.observer.selectionRange;\n if (anchorNode) {\n result.push(new DOMPoint(anchorNode, anchorOffset));\n if (focusNode != anchorNode || focusOffset != anchorOffset)\n result.push(new DOMPoint(focusNode, focusOffset));\n }\n return result;\n}\nfunction selectionFromPoints(points, base) {\n if (points.length == 0)\n return null;\n let anchor = points[0].pos, head = points.length == 2 ? points[1].pos : anchor;\n return anchor > -1 && head > -1 ? EditorSelection.single(anchor + base, head + base) : null;\n}\n\nconst observeOptions = {\n childList: true,\n characterData: true,\n subtree: true,\n attributes: true,\n characterDataOldValue: true\n};\n// IE11 has very broken mutation observers, so we also listen to\n// DOMCharacterDataModified there\nconst useCharData = browser.ie && browser.ie_version <= 11;\nclass DOMObserver {\n constructor(view) {\n this.view = view;\n this.active = false;\n this.editContext = null;\n // The known selection. Kept in our own object, as opposed to just\n // directly accessing the selection because:\n // - Safari doesn't report the right selection in shadow DOM\n // - Reading from the selection forces a DOM layout\n // - This way, we can ignore selectionchange events if we have\n // already seen the 'new' selection\n this.selectionRange = new DOMSelectionState;\n // Set when a selection change is detected, cleared on flush\n this.selectionChanged = false;\n this.delayedFlush = -1;\n this.resizeTimeout = -1;\n this.queue = [];\n this.delayedAndroidKey = null;\n this.flushingAndroidKey = -1;\n this.lastChange = 0;\n this.scrollTargets = [];\n this.intersection = null;\n this.resizeScroll = null;\n this.intersecting = false;\n this.gapIntersection = null;\n this.gaps = [];\n this.printQuery = null;\n // Timeout for scheduling check of the parents that need scroll handlers\n this.parentCheck = -1;\n this.dom = view.contentDOM;\n this.observer = new MutationObserver(mutations => {\n for (let mut of mutations)\n this.queue.push(mut);\n // IE11 will sometimes (on typing over a selection or\n // backspacing out a single character text node) call the\n // observer callback before actually updating the DOM.\n //\n // Unrelatedly, iOS Safari will, when ending a composition,\n // sometimes first clear it, deliver the mutations, and then\n // reinsert the finished text. CodeMirror's handling of the\n // deletion will prevent the reinsertion from happening,\n // breaking composition.\n if ((browser.ie && browser.ie_version <= 11 || browser.ios && view.composing) &&\n mutations.some(m => m.type == \"childList\" && m.removedNodes.length ||\n m.type == \"characterData\" && m.oldValue.length > m.target.nodeValue.length))\n this.flushSoon();\n else\n this.flush();\n });\n if (window.EditContext && view.constructor.EDIT_CONTEXT !== false &&\n // Chrome <126 doesn't support inverted selections in edit context (#1392)\n !(browser.chrome && browser.chrome_version < 126)) {\n this.editContext = new EditContextManager(view);\n if (view.state.facet(editable))\n view.contentDOM.editContext = this.editContext.editContext;\n }\n if (useCharData)\n this.onCharData = (event) => {\n this.queue.push({ target: event.target,\n type: \"characterData\",\n oldValue: event.prevValue });\n this.flushSoon();\n };\n this.onSelectionChange = this.onSelectionChange.bind(this);\n this.onResize = this.onResize.bind(this);\n this.onPrint = this.onPrint.bind(this);\n this.onScroll = this.onScroll.bind(this);\n if (window.matchMedia)\n this.printQuery = window.matchMedia(\"print\");\n if (typeof ResizeObserver == \"function\") {\n this.resizeScroll = new ResizeObserver(() => {\n var _a;\n if (((_a = this.view.docView) === null || _a === void 0 ? void 0 : _a.lastUpdate) < Date.now() - 75)\n this.onResize();\n });\n this.resizeScroll.observe(view.scrollDOM);\n }\n this.addWindowListeners(this.win = view.win);\n this.start();\n if (typeof IntersectionObserver == \"function\") {\n this.intersection = new IntersectionObserver(entries => {\n if (this.parentCheck < 0)\n this.parentCheck = setTimeout(this.listenForScroll.bind(this), 1000);\n if (entries.length > 0 && (entries[entries.length - 1].intersectionRatio > 0) != this.intersecting) {\n this.intersecting = !this.intersecting;\n if (this.intersecting != this.view.inView)\n this.onScrollChanged(document.createEvent(\"Event\"));\n }\n }, { threshold: [0, .001] });\n this.intersection.observe(this.dom);\n this.gapIntersection = new IntersectionObserver(entries => {\n if (entries.length > 0 && entries[entries.length - 1].intersectionRatio > 0)\n this.onScrollChanged(document.createEvent(\"Event\"));\n }, {});\n }\n this.listenForScroll();\n this.readSelectionRange();\n }\n onScrollChanged(e) {\n this.view.inputState.runHandlers(\"scroll\", e);\n if (this.intersecting)\n this.view.measure();\n }\n onScroll(e) {\n if (this.intersecting)\n this.flush(false);\n if (this.editContext)\n this.view.requestMeasure(this.editContext.measureReq);\n this.onScrollChanged(e);\n }\n onResize() {\n if (this.resizeTimeout < 0)\n this.resizeTimeout = setTimeout(() => {\n this.resizeTimeout = -1;\n this.view.requestMeasure();\n }, 50);\n }\n onPrint(event) {\n if (event.type == \"change\" && !event.matches)\n return;\n this.view.viewState.printing = true;\n this.view.measure();\n setTimeout(() => {\n this.view.viewState.printing = false;\n this.view.requestMeasure();\n }, 500);\n }\n updateGaps(gaps) {\n if (this.gapIntersection && (gaps.length != this.gaps.length || this.gaps.some((g, i) => g != gaps[i]))) {\n this.gapIntersection.disconnect();\n for (let gap of gaps)\n this.gapIntersection.observe(gap);\n this.gaps = gaps;\n }\n }\n onSelectionChange(event) {\n let wasChanged = this.selectionChanged;\n if (!this.readSelectionRange() || this.delayedAndroidKey)\n return;\n let { view } = this, sel = this.selectionRange;\n if (view.state.facet(editable) ? view.root.activeElement != this.dom : !hasSelection(view.dom, sel))\n return;\n let context = sel.anchorNode && view.docView.nearest(sel.anchorNode);\n if (context && context.ignoreEvent(event)) {\n if (!wasChanged)\n this.selectionChanged = false;\n return;\n }\n // Deletions on IE11 fire their events in the wrong order, giving\n // us a selection change event before the DOM changes are\n // reported.\n // Chrome Android has a similar issue when backspacing out a\n // selection (#645).\n if ((browser.ie && browser.ie_version <= 11 || browser.android && browser.chrome) && !view.state.selection.main.empty &&\n // (Selection.isCollapsed isn't reliable on IE)\n sel.focusNode && isEquivalentPosition(sel.focusNode, sel.focusOffset, sel.anchorNode, sel.anchorOffset))\n this.flushSoon();\n else\n this.flush(false);\n }\n readSelectionRange() {\n let { view } = this;\n // The Selection object is broken in shadow roots in Safari. See\n // https://github.com/codemirror/dev/issues/414\n let selection = getSelection(view.root);\n if (!selection)\n return false;\n let range = browser.safari && view.root.nodeType == 11 &&\n deepActiveElement(this.dom.ownerDocument) == this.dom &&\n safariSelectionRangeHack(this.view, selection) || selection;\n if (!range || this.selectionRange.eq(range))\n return false;\n let local = hasSelection(this.dom, range);\n // Detect the situation where the browser has, on focus, moved the\n // selection to the start of the content element. Reset it to the\n // position from the editor state.\n if (local && !this.selectionChanged &&\n view.inputState.lastFocusTime > Date.now() - 200 &&\n view.inputState.lastTouchTime < Date.now() - 300 &&\n atElementStart(this.dom, range)) {\n this.view.inputState.lastFocusTime = 0;\n view.docView.updateSelection();\n return false;\n }\n this.selectionRange.setRange(range);\n if (local)\n this.selectionChanged = true;\n return true;\n }\n setSelectionRange(anchor, head) {\n this.selectionRange.set(anchor.node, anchor.offset, head.node, head.offset);\n this.selectionChanged = false;\n }\n clearSelectionRange() {\n this.selectionRange.set(null, 0, null, 0);\n }\n listenForScroll() {\n this.parentCheck = -1;\n let i = 0, changed = null;\n for (let dom = this.dom; dom;) {\n if (dom.nodeType == 1) {\n if (!changed && i < this.scrollTargets.length && this.scrollTargets[i] == dom)\n i++;\n else if (!changed)\n changed = this.scrollTargets.slice(0, i);\n if (changed)\n changed.push(dom);\n dom = dom.assignedSlot || dom.parentNode;\n }\n else if (dom.nodeType == 11) { // Shadow root\n dom = dom.host;\n }\n else {\n break;\n }\n }\n if (i < this.scrollTargets.length && !changed)\n changed = this.scrollTargets.slice(0, i);\n if (changed) {\n for (let dom of this.scrollTargets)\n dom.removeEventListener(\"scroll\", this.onScroll);\n for (let dom of this.scrollTargets = changed)\n dom.addEventListener(\"scroll\", this.onScroll);\n }\n }\n ignore(f) {\n if (!this.active)\n return f();\n try {\n this.stop();\n return f();\n }\n finally {\n this.start();\n this.clear();\n }\n }\n start() {\n if (this.active)\n return;\n this.observer.observe(this.dom, observeOptions);\n if (useCharData)\n this.dom.addEventListener(\"DOMCharacterDataModified\", this.onCharData);\n this.active = true;\n }\n stop() {\n if (!this.active)\n return;\n this.active = false;\n this.observer.disconnect();\n if (useCharData)\n this.dom.removeEventListener(\"DOMCharacterDataModified\", this.onCharData);\n }\n // Throw away any pending changes\n clear() {\n this.processRecords();\n this.queue.length = 0;\n this.selectionChanged = false;\n }\n // Chrome Android, especially in combination with GBoard, not only\n // doesn't reliably fire regular key events, but also often\n // surrounds the effect of enter or backspace with a bunch of\n // composition events that, when interrupted, cause text duplication\n // or other kinds of corruption. This hack makes the editor back off\n // from handling DOM changes for a moment when such a key is\n // detected (via beforeinput or keydown), and then tries to flush\n // them or, if that has no effect, dispatches the given key.\n delayAndroidKey(key, keyCode) {\n var _a;\n if (!this.delayedAndroidKey) {\n let flush = () => {\n let key = this.delayedAndroidKey;\n if (key) {\n this.clearDelayedAndroidKey();\n this.view.inputState.lastKeyCode = key.keyCode;\n this.view.inputState.lastKeyTime = Date.now();\n let flushed = this.flush();\n if (!flushed && key.force)\n dispatchKey(this.dom, key.key, key.keyCode);\n }\n };\n this.flushingAndroidKey = this.view.win.requestAnimationFrame(flush);\n }\n // Since backspace beforeinput is sometimes signalled spuriously,\n // Enter always takes precedence.\n if (!this.delayedAndroidKey || key == \"Enter\")\n this.delayedAndroidKey = {\n key, keyCode,\n // Only run the key handler when no changes are detected if\n // this isn't coming right after another change, in which case\n // it is probably part of a weird chain of updates, and should\n // be ignored if it returns the DOM to its previous state.\n force: this.lastChange < Date.now() - 50 || !!((_a = this.delayedAndroidKey) === null || _a === void 0 ? void 0 : _a.force)\n };\n }\n clearDelayedAndroidKey() {\n this.win.cancelAnimationFrame(this.flushingAndroidKey);\n this.delayedAndroidKey = null;\n this.flushingAndroidKey = -1;\n }\n flushSoon() {\n if (this.delayedFlush < 0)\n this.delayedFlush = this.view.win.requestAnimationFrame(() => { this.delayedFlush = -1; this.flush(); });\n }\n forceFlush() {\n if (this.delayedFlush >= 0) {\n this.view.win.cancelAnimationFrame(this.delayedFlush);\n this.delayedFlush = -1;\n }\n this.flush();\n }\n pendingRecords() {\n for (let mut of this.observer.takeRecords())\n this.queue.push(mut);\n return this.queue;\n }\n processRecords() {\n let records = this.pendingRecords();\n if (records.length)\n this.queue = [];\n let from = -1, to = -1, typeOver = false;\n for (let record of records) {\n let range = this.readMutation(record);\n if (!range)\n continue;\n if (range.typeOver)\n typeOver = true;\n if (from == -1) {\n ({ from, to } = range);\n }\n else {\n from = Math.min(range.from, from);\n to = Math.max(range.to, to);\n }\n }\n return { from, to, typeOver };\n }\n readChange() {\n let { from, to, typeOver } = this.processRecords();\n let newSel = this.selectionChanged && hasSelection(this.dom, this.selectionRange);\n if (from < 0 && !newSel)\n return null;\n if (from > -1)\n this.lastChange = Date.now();\n this.view.inputState.lastFocusTime = 0;\n this.selectionChanged = false;\n let change = new DOMChange(this.view, from, to, typeOver);\n this.view.docView.domChanged = { newSel: change.newSel ? change.newSel.main : null };\n return change;\n }\n // Apply pending changes, if any\n flush(readSelection = true) {\n // Completely hold off flushing when pending keys are set—the code\n // managing those will make sure processRecords is called and the\n // view is resynchronized after\n if (this.delayedFlush >= 0 || this.delayedAndroidKey)\n return false;\n if (readSelection)\n this.readSelectionRange();\n let domChange = this.readChange();\n if (!domChange) {\n this.view.requestMeasure();\n return false;\n }\n let startState = this.view.state;\n let handled = applyDOMChange(this.view, domChange);\n // The view wasn't updated but DOM/selection changes were seen. Reset the view.\n if (this.view.state == startState &&\n (domChange.domChanged || domChange.newSel && !domChange.newSel.main.eq(this.view.state.selection.main)))\n this.view.update([]);\n return handled;\n }\n readMutation(rec) {\n let cView = this.view.docView.nearest(rec.target);\n if (!cView || cView.ignoreMutation(rec))\n return null;\n cView.markDirty(rec.type == \"attributes\");\n if (rec.type == \"attributes\")\n cView.flags |= 4 /* ViewFlag.AttrsDirty */;\n if (rec.type == \"childList\") {\n let childBefore = findChild(cView, rec.previousSibling || rec.target.previousSibling, -1);\n let childAfter = findChild(cView, rec.nextSibling || rec.target.nextSibling, 1);\n return { from: childBefore ? cView.posAfter(childBefore) : cView.posAtStart,\n to: childAfter ? cView.posBefore(childAfter) : cView.posAtEnd, typeOver: false };\n }\n else if (rec.type == \"characterData\") {\n return { from: cView.posAtStart, to: cView.posAtEnd, typeOver: rec.target.nodeValue == rec.oldValue };\n }\n else {\n return null;\n }\n }\n setWindow(win) {\n if (win != this.win) {\n this.removeWindowListeners(this.win);\n this.win = win;\n this.addWindowListeners(this.win);\n }\n }\n addWindowListeners(win) {\n win.addEventListener(\"resize\", this.onResize);\n if (this.printQuery)\n this.printQuery.addEventListener(\"change\", this.onPrint);\n else\n win.addEventListener(\"beforeprint\", this.onPrint);\n win.addEventListener(\"scroll\", this.onScroll);\n win.document.addEventListener(\"selectionchange\", this.onSelectionChange);\n }\n removeWindowListeners(win) {\n win.removeEventListener(\"scroll\", this.onScroll);\n win.removeEventListener(\"resize\", this.onResize);\n if (this.printQuery)\n this.printQuery.removeEventListener(\"change\", this.onPrint);\n else\n win.removeEventListener(\"beforeprint\", this.onPrint);\n win.document.removeEventListener(\"selectionchange\", this.onSelectionChange);\n }\n update(update) {\n if (this.editContext) {\n this.editContext.update(update);\n if (update.startState.facet(editable) != update.state.facet(editable))\n update.view.contentDOM.editContext = update.state.facet(editable) ? this.editContext.editContext : null;\n }\n }\n destroy() {\n var _a, _b, _c;\n this.stop();\n (_a = this.intersection) === null || _a === void 0 ? void 0 : _a.disconnect();\n (_b = this.gapIntersection) === null || _b === void 0 ? void 0 : _b.disconnect();\n (_c = this.resizeScroll) === null || _c === void 0 ? void 0 : _c.disconnect();\n for (let dom of this.scrollTargets)\n dom.removeEventListener(\"scroll\", this.onScroll);\n this.removeWindowListeners(this.win);\n clearTimeout(this.parentCheck);\n clearTimeout(this.resizeTimeout);\n this.win.cancelAnimationFrame(this.delayedFlush);\n this.win.cancelAnimationFrame(this.flushingAndroidKey);\n if (this.editContext) {\n this.view.contentDOM.editContext = null;\n this.editContext.destroy();\n }\n }\n}\nfunction findChild(cView, dom, dir) {\n while (dom) {\n let curView = ContentView.get(dom);\n if (curView && curView.parent == cView)\n return curView;\n let parent = dom.parentNode;\n dom = parent != cView.dom ? parent : dir > 0 ? dom.nextSibling : dom.previousSibling;\n }\n return null;\n}\nfunction buildSelectionRangeFromRange(view, range) {\n let anchorNode = range.startContainer, anchorOffset = range.startOffset;\n let focusNode = range.endContainer, focusOffset = range.endOffset;\n let curAnchor = view.docView.domAtPos(view.state.selection.main.anchor);\n // Since such a range doesn't distinguish between anchor and head,\n // use a heuristic that flips it around if its end matches the\n // current anchor.\n if (isEquivalentPosition(curAnchor.node, curAnchor.offset, focusNode, focusOffset))\n [anchorNode, anchorOffset, focusNode, focusOffset] = [focusNode, focusOffset, anchorNode, anchorOffset];\n return { anchorNode, anchorOffset, focusNode, focusOffset };\n}\n// Used to work around a Safari Selection/shadow DOM bug (#414)\nfunction safariSelectionRangeHack(view, selection) {\n if (selection.getComposedRanges) {\n let range = selection.getComposedRanges(view.root)[0];\n if (range)\n return buildSelectionRangeFromRange(view, range);\n }\n let found = null;\n // Because Safari (at least in 2018-2021) doesn't provide regular\n // access to the selection inside a shadowroot, we have to perform a\n // ridiculous hack to get at it—using `execCommand` to trigger a\n // `beforeInput` event so that we can read the target range from the\n // event.\n function read(event) {\n event.preventDefault();\n event.stopImmediatePropagation();\n found = event.getTargetRanges()[0];\n }\n view.contentDOM.addEventListener(\"beforeinput\", read, true);\n view.dom.ownerDocument.execCommand(\"indent\");\n view.contentDOM.removeEventListener(\"beforeinput\", read, true);\n return found ? buildSelectionRangeFromRange(view, found) : null;\n}\nclass EditContextManager {\n constructor(view) {\n // The document window for which the text in the context is\n // maintained. For large documents, this may be smaller than the\n // editor document. This window always includes the selection head.\n this.from = 0;\n this.to = 0;\n // When applying a transaction, this is used to compare the change\n // made to the context content to the change in the transaction in\n // order to make the minimal changes to the context (since touching\n // that sometimes breaks series of multiple edits made for a single\n // user action on some Android keyboards)\n this.pendingContextChange = null;\n this.handlers = Object.create(null);\n this.resetRange(view.state);\n let context = this.editContext = new window.EditContext({\n text: view.state.doc.sliceString(this.from, this.to),\n selectionStart: this.toContextPos(Math.max(this.from, Math.min(this.to, view.state.selection.main.anchor))),\n selectionEnd: this.toContextPos(view.state.selection.main.head)\n });\n this.handlers.textupdate = e => {\n let { anchor } = view.state.selection.main;\n let change = { from: this.toEditorPos(e.updateRangeStart),\n to: this.toEditorPos(e.updateRangeEnd),\n insert: Text.of(e.text.split(\"\\n\")) };\n // If the window doesn't include the anchor, assume changes\n // adjacent to a side go up to the anchor.\n if (change.from == this.from && anchor < this.from)\n change.from = anchor;\n else if (change.to == this.to && anchor > this.to)\n change.to = anchor;\n // Edit contexts sometimes fire empty changes\n if (change.from == change.to && !change.insert.length)\n return;\n this.pendingContextChange = change;\n applyDOMChangeInner(view, change, EditorSelection.single(this.toEditorPos(e.selectionStart), this.toEditorPos(e.selectionEnd)));\n // If the transaction didn't flush our change, revert it so\n // that the context is in sync with the editor state again.\n if (this.pendingContextChange) {\n this.revertPending(view.state);\n this.setSelection(view.state);\n }\n };\n this.handlers.characterboundsupdate = e => {\n let rects = [], prev = null;\n for (let i = this.toEditorPos(e.rangeStart), end = this.toEditorPos(e.rangeEnd); i < end; i++) {\n let rect = view.coordsForChar(i);\n prev = (rect && new DOMRect(rect.left, rect.top, rect.right - rect.left, rect.bottom - rect.top))\n || prev || new DOMRect;\n rects.push(prev);\n }\n context.updateCharacterBounds(e.rangeStart, rects);\n };\n this.handlers.textformatupdate = e => {\n let deco = [];\n for (let format of e.getTextFormats()) {\n let lineStyle = format.underlineStyle, thickness = format.underlineThickness;\n if (lineStyle != \"None\" && thickness != \"None\") {\n let style = `text-decoration: underline ${lineStyle == \"Dashed\" ? \"dashed \" : lineStyle == \"Squiggle\" ? \"wavy \" : \"\"}${thickness == \"Thin\" ? 1 : 2}px`;\n deco.push(Decoration.mark({ attributes: { style } })\n .range(this.toEditorPos(format.rangeStart), this.toEditorPos(format.rangeEnd)));\n }\n }\n view.dispatch({ effects: setEditContextFormatting.of(Decoration.set(deco)) });\n };\n this.handlers.compositionstart = () => {\n if (view.inputState.composing < 0) {\n view.inputState.composing = 0;\n view.inputState.compositionFirstChange = true;\n }\n };\n this.handlers.compositionend = () => {\n view.inputState.composing = -1;\n view.inputState.compositionFirstChange = null;\n };\n for (let event in this.handlers)\n context.addEventListener(event, this.handlers[event]);\n this.measureReq = { read: view => {\n this.editContext.updateControlBounds(view.contentDOM.getBoundingClientRect());\n let sel = getSelection(view.root);\n if (sel && sel.rangeCount)\n this.editContext.updateSelectionBounds(sel.getRangeAt(0).getBoundingClientRect());\n } };\n }\n applyEdits(update) {\n let off = 0, abort = false, pending = this.pendingContextChange;\n update.changes.iterChanges((fromA, toA, _fromB, _toB, insert) => {\n if (abort)\n return;\n let dLen = insert.length - (toA - fromA);\n if (pending && toA >= pending.to) {\n if (pending.from == fromA && pending.to == toA && pending.insert.eq(insert)) {\n pending = this.pendingContextChange = null; // Match\n off += dLen;\n this.to += dLen;\n return;\n }\n else { // Mismatch, revert\n pending = null;\n this.revertPending(update.state);\n }\n }\n fromA += off;\n toA += off;\n if (toA <= this.from) { // Before the window\n this.from += dLen;\n this.to += dLen;\n }\n else if (fromA < this.to) { // Overlaps with window\n if (fromA < this.from || toA > this.to || (this.to - this.from) + insert.length > 30000 /* CxVp.MaxSize */) {\n abort = true;\n return;\n }\n this.editContext.updateText(this.toContextPos(fromA), this.toContextPos(toA), insert.toString());\n this.to += dLen;\n }\n off += dLen;\n });\n if (pending && !abort)\n this.revertPending(update.state);\n return !abort;\n }\n update(update) {\n let reverted = this.pendingContextChange;\n if (!this.applyEdits(update) || !this.rangeIsValid(update.state)) {\n this.pendingContextChange = null;\n this.resetRange(update.state);\n this.editContext.updateText(0, this.editContext.text.length, update.state.doc.sliceString(this.from, this.to));\n this.setSelection(update.state);\n }\n else if (update.docChanged || update.selectionSet || reverted) {\n this.setSelection(update.state);\n }\n if (update.geometryChanged || update.docChanged || update.selectionSet)\n update.view.requestMeasure(this.measureReq);\n }\n resetRange(state) {\n let { head } = state.selection.main;\n this.from = Math.max(0, head - 10000 /* CxVp.Margin */);\n this.to = Math.min(state.doc.length, head + 10000 /* CxVp.Margin */);\n }\n revertPending(state) {\n let pending = this.pendingContextChange;\n this.pendingContextChange = null;\n this.editContext.updateText(this.toContextPos(pending.from), this.toContextPos(pending.from + pending.insert.length), state.doc.sliceString(pending.from, pending.to));\n }\n setSelection(state) {\n let { main } = state.selection;\n let start = this.toContextPos(Math.max(this.from, Math.min(this.to, main.anchor)));\n let end = this.toContextPos(main.head);\n if (this.editContext.selectionStart != start || this.editContext.selectionEnd != end)\n this.editContext.updateSelection(start, end);\n }\n rangeIsValid(state) {\n let { head } = state.selection.main;\n return !(this.from > 0 && head - this.from < 500 /* CxVp.MinMargin */ ||\n this.to < state.doc.length && this.to - head < 500 /* CxVp.MinMargin */ ||\n this.to - this.from > 10000 /* CxVp.Margin */ * 3);\n }\n toEditorPos(contextPos) { return contextPos + this.from; }\n toContextPos(editorPos) { return editorPos - this.from; }\n destroy() {\n for (let event in this.handlers)\n this.editContext.removeEventListener(event, this.handlers[event]);\n }\n}\n\n// The editor's update state machine looks something like this:\n//\n// Idle → Updating ⇆ Idle (unchecked) → Measuring → Idle\n// ↑ ↓\n// Updating (measure)\n//\n// The difference between 'Idle' and 'Idle (unchecked)' lies in\n// whether a layout check has been scheduled. A regular update through\n// the `update` method updates the DOM in a write-only fashion, and\n// relies on a check (scheduled with `requestAnimationFrame`) to make\n// sure everything is where it should be and the viewport covers the\n// visible code. That check continues to measure and then optionally\n// update until it reaches a coherent state.\n/**\nAn editor view represents the editor's user interface. It holds\nthe editable DOM surface, and possibly other elements such as the\nline number gutter. It handles events and dispatches state\ntransactions for editing actions.\n*/\nclass EditorView {\n /**\n The current editor state.\n */\n get state() { return this.viewState.state; }\n /**\n To be able to display large documents without consuming too much\n memory or overloading the browser, CodeMirror only draws the\n code that is visible (plus a margin around it) to the DOM. This\n property tells you the extent of the current drawn viewport, in\n document positions.\n */\n get viewport() { return this.viewState.viewport; }\n /**\n When there are, for example, large collapsed ranges in the\n viewport, its size can be a lot bigger than the actual visible\n content. Thus, if you are doing something like styling the\n content in the viewport, it is preferable to only do so for\n these ranges, which are the subset of the viewport that is\n actually drawn.\n */\n get visibleRanges() { return this.viewState.visibleRanges; }\n /**\n Returns false when the editor is entirely scrolled out of view\n or otherwise hidden.\n */\n get inView() { return this.viewState.inView; }\n /**\n Indicates whether the user is currently composing text via\n [IME](https://en.wikipedia.org/wiki/Input_method), and at least\n one change has been made in the current composition.\n */\n get composing() { return this.inputState.composing > 0; }\n /**\n Indicates whether the user is currently in composing state. Note\n that on some platforms, like Android, this will be the case a\n lot, since just putting the cursor on a word starts a\n composition there.\n */\n get compositionStarted() { return this.inputState.composing >= 0; }\n /**\n The document or shadow root that the view lives in.\n */\n get root() { return this._root; }\n /**\n @internal\n */\n get win() { return this.dom.ownerDocument.defaultView || window; }\n /**\n Construct a new view. You'll want to either provide a `parent`\n option, or put `view.dom` into your document after creating a\n view, so that the user can see the editor.\n */\n constructor(config = {}) {\n this.plugins = [];\n this.pluginMap = new Map;\n this.editorAttrs = {};\n this.contentAttrs = {};\n this.bidiCache = [];\n this.destroyed = false;\n /**\n @internal\n */\n this.updateState = 2 /* UpdateState.Updating */;\n /**\n @internal\n */\n this.measureScheduled = -1;\n /**\n @internal\n */\n this.measureRequests = [];\n this.contentDOM = document.createElement(\"div\");\n this.scrollDOM = document.createElement(\"div\");\n this.scrollDOM.tabIndex = -1;\n this.scrollDOM.className = \"cm-scroller\";\n this.scrollDOM.appendChild(this.contentDOM);\n this.announceDOM = document.createElement(\"div\");\n this.announceDOM.className = \"cm-announced\";\n this.announceDOM.setAttribute(\"aria-live\", \"polite\");\n this.dom = document.createElement(\"div\");\n this.dom.appendChild(this.announceDOM);\n this.dom.appendChild(this.scrollDOM);\n if (config.parent)\n config.parent.appendChild(this.dom);\n let { dispatch } = config;\n this.dispatchTransactions = config.dispatchTransactions ||\n (dispatch && ((trs) => trs.forEach(tr => dispatch(tr, this)))) ||\n ((trs) => this.update(trs));\n this.dispatch = this.dispatch.bind(this);\n this._root = (config.root || getRoot(config.parent) || document);\n this.viewState = new ViewState(config.state || EditorState.create(config));\n if (config.scrollTo && config.scrollTo.is(scrollIntoView))\n this.viewState.scrollTarget = config.scrollTo.value.clip(this.viewState.state);\n this.plugins = this.state.facet(viewPlugin).map(spec => new PluginInstance(spec));\n for (let plugin of this.plugins)\n plugin.update(this);\n this.observer = new DOMObserver(this);\n this.inputState = new InputState(this);\n this.inputState.ensureHandlers(this.plugins);\n this.docView = new DocView(this);\n this.mountStyles();\n this.updateAttrs();\n this.updateState = 0 /* UpdateState.Idle */;\n this.requestMeasure();\n }\n dispatch(...input) {\n let trs = input.length == 1 && input[0] instanceof Transaction ? input\n : input.length == 1 && Array.isArray(input[0]) ? input[0]\n : [this.state.update(...input)];\n this.dispatchTransactions(trs, this);\n }\n /**\n Update the view for the given array of transactions. This will\n update the visible document and selection to match the state\n produced by the transactions, and notify view plugins of the\n change. You should usually call\n [`dispatch`](https://codemirror.net/6/docs/ref/#view.EditorView.dispatch) instead, which uses this\n as a primitive.\n */\n update(transactions) {\n if (this.updateState != 0 /* UpdateState.Idle */)\n throw new Error(\"Calls to EditorView.update are not allowed while an update is in progress\");\n let redrawn = false, attrsChanged = false, update;\n let state = this.state;\n for (let tr of transactions) {\n if (tr.startState != state)\n throw new RangeError(\"Trying to update state with a transaction that doesn't start from the previous state.\");\n state = tr.state;\n }\n if (this.destroyed) {\n this.viewState.state = state;\n return;\n }\n let focus = this.hasFocus, focusFlag = 0, dispatchFocus = null;\n if (transactions.some(tr => tr.annotation(isFocusChange))) {\n this.inputState.notifiedFocused = focus;\n // If a focus-change transaction is being dispatched, set this update flag.\n focusFlag = 1 /* UpdateFlag.Focus */;\n }\n else if (focus != this.inputState.notifiedFocused) {\n this.inputState.notifiedFocused = focus;\n // Schedule a separate focus transaction if necessary, otherwise\n // add a flag to this update\n dispatchFocus = focusChangeTransaction(state, focus);\n if (!dispatchFocus)\n focusFlag = 1 /* UpdateFlag.Focus */;\n }\n // If there was a pending DOM change, eagerly read it and try to\n // apply it after the given transactions.\n let pendingKey = this.observer.delayedAndroidKey, domChange = null;\n if (pendingKey) {\n this.observer.clearDelayedAndroidKey();\n domChange = this.observer.readChange();\n // Only try to apply DOM changes if the transactions didn't\n // change the doc or selection.\n if (domChange && !this.state.doc.eq(state.doc) || !this.state.selection.eq(state.selection))\n domChange = null;\n }\n else {\n this.observer.clear();\n }\n // When the phrases change, redraw the editor\n if (state.facet(EditorState.phrases) != this.state.facet(EditorState.phrases))\n return this.setState(state);\n update = ViewUpdate.create(this, state, transactions);\n update.flags |= focusFlag;\n let scrollTarget = this.viewState.scrollTarget;\n try {\n this.updateState = 2 /* UpdateState.Updating */;\n for (let tr of transactions) {\n if (scrollTarget)\n scrollTarget = scrollTarget.map(tr.changes);\n if (tr.scrollIntoView) {\n let { main } = tr.state.selection;\n scrollTarget = new ScrollTarget(main.empty ? main : EditorSelection.cursor(main.head, main.head > main.anchor ? -1 : 1));\n }\n for (let e of tr.effects)\n if (e.is(scrollIntoView))\n scrollTarget = e.value.clip(this.state);\n }\n this.viewState.update(update, scrollTarget);\n this.bidiCache = CachedOrder.update(this.bidiCache, update.changes);\n if (!update.empty) {\n this.updatePlugins(update);\n this.inputState.update(update);\n }\n redrawn = this.docView.update(update);\n if (this.state.facet(styleModule) != this.styleModules)\n this.mountStyles();\n attrsChanged = this.updateAttrs();\n this.showAnnouncements(transactions);\n this.docView.updateSelection(redrawn, transactions.some(tr => tr.isUserEvent(\"select.pointer\")));\n }\n finally {\n this.updateState = 0 /* UpdateState.Idle */;\n }\n if (update.startState.facet(theme) != update.state.facet(theme))\n this.viewState.mustMeasureContent = true;\n if (redrawn || attrsChanged || scrollTarget || this.viewState.mustEnforceCursorAssoc || this.viewState.mustMeasureContent)\n this.requestMeasure();\n if (redrawn)\n this.docViewUpdate();\n if (!update.empty)\n for (let listener of this.state.facet(updateListener)) {\n try {\n listener(update);\n }\n catch (e) {\n logException(this.state, e, \"update listener\");\n }\n }\n if (dispatchFocus || domChange)\n Promise.resolve().then(() => {\n if (dispatchFocus && this.state == dispatchFocus.startState)\n this.dispatch(dispatchFocus);\n if (domChange) {\n if (!applyDOMChange(this, domChange) && pendingKey.force)\n dispatchKey(this.contentDOM, pendingKey.key, pendingKey.keyCode);\n }\n });\n }\n /**\n Reset the view to the given state. (This will cause the entire\n document to be redrawn and all view plugins to be reinitialized,\n so you should probably only use it when the new state isn't\n derived from the old state. Otherwise, use\n [`dispatch`](https://codemirror.net/6/docs/ref/#view.EditorView.dispatch) instead.)\n */\n setState(newState) {\n if (this.updateState != 0 /* UpdateState.Idle */)\n throw new Error(\"Calls to EditorView.setState are not allowed while an update is in progress\");\n if (this.destroyed) {\n this.viewState.state = newState;\n return;\n }\n this.updateState = 2 /* UpdateState.Updating */;\n let hadFocus = this.hasFocus;\n try {\n for (let plugin of this.plugins)\n plugin.destroy(this);\n this.viewState = new ViewState(newState);\n this.plugins = newState.facet(viewPlugin).map(spec => new PluginInstance(spec));\n this.pluginMap.clear();\n for (let plugin of this.plugins)\n plugin.update(this);\n this.docView.destroy();\n this.docView = new DocView(this);\n this.inputState.ensureHandlers(this.plugins);\n this.mountStyles();\n this.updateAttrs();\n this.bidiCache = [];\n }\n finally {\n this.updateState = 0 /* UpdateState.Idle */;\n }\n if (hadFocus)\n this.focus();\n this.requestMeasure();\n }\n updatePlugins(update) {\n let prevSpecs = update.startState.facet(viewPlugin), specs = update.state.facet(viewPlugin);\n if (prevSpecs != specs) {\n let newPlugins = [];\n for (let spec of specs) {\n let found = prevSpecs.indexOf(spec);\n if (found < 0) {\n newPlugins.push(new PluginInstance(spec));\n }\n else {\n let plugin = this.plugins[found];\n plugin.mustUpdate = update;\n newPlugins.push(plugin);\n }\n }\n for (let plugin of this.plugins)\n if (plugin.mustUpdate != update)\n plugin.destroy(this);\n this.plugins = newPlugins;\n this.pluginMap.clear();\n }\n else {\n for (let p of this.plugins)\n p.mustUpdate = update;\n }\n for (let i = 0; i < this.plugins.length; i++)\n this.plugins[i].update(this);\n if (prevSpecs != specs)\n this.inputState.ensureHandlers(this.plugins);\n }\n docViewUpdate() {\n for (let plugin of this.plugins) {\n let val = plugin.value;\n if (val && val.docViewUpdate) {\n try {\n val.docViewUpdate(this);\n }\n catch (e) {\n logException(this.state, e, \"doc view update listener\");\n }\n }\n }\n }\n /**\n @internal\n */\n measure(flush = true) {\n if (this.destroyed)\n return;\n if (this.measureScheduled > -1)\n this.win.cancelAnimationFrame(this.measureScheduled);\n if (this.observer.delayedAndroidKey) {\n this.measureScheduled = -1;\n this.requestMeasure();\n return;\n }\n this.measureScheduled = 0; // Prevent requestMeasure calls from scheduling another animation frame\n if (flush)\n this.observer.forceFlush();\n let updated = null;\n let sDOM = this.scrollDOM, scrollTop = sDOM.scrollTop * this.scaleY;\n let { scrollAnchorPos, scrollAnchorHeight } = this.viewState;\n if (Math.abs(scrollTop - this.viewState.scrollTop) > 1)\n scrollAnchorHeight = -1;\n this.viewState.scrollAnchorHeight = -1;\n try {\n for (let i = 0;; i++) {\n if (scrollAnchorHeight < 0) {\n if (isScrolledToBottom(sDOM)) {\n scrollAnchorPos = -1;\n scrollAnchorHeight = this.viewState.heightMap.height;\n }\n else {\n let block = this.viewState.scrollAnchorAt(scrollTop);\n scrollAnchorPos = block.from;\n scrollAnchorHeight = block.top;\n }\n }\n this.updateState = 1 /* UpdateState.Measuring */;\n let changed = this.viewState.measure(this);\n if (!changed && !this.measureRequests.length && this.viewState.scrollTarget == null)\n break;\n if (i > 5) {\n console.warn(this.measureRequests.length\n ? \"Measure loop restarted more than 5 times\"\n : \"Viewport failed to stabilize\");\n break;\n }\n let measuring = [];\n // Only run measure requests in this cycle when the viewport didn't change\n if (!(changed & 4 /* UpdateFlag.Viewport */))\n [this.measureRequests, measuring] = [measuring, this.measureRequests];\n let measured = measuring.map(m => {\n try {\n return m.read(this);\n }\n catch (e) {\n logException(this.state, e);\n return BadMeasure;\n }\n });\n let update = ViewUpdate.create(this, this.state, []), redrawn = false;\n update.flags |= changed;\n if (!updated)\n updated = update;\n else\n updated.flags |= changed;\n this.updateState = 2 /* UpdateState.Updating */;\n if (!update.empty) {\n this.updatePlugins(update);\n this.inputState.update(update);\n this.updateAttrs();\n redrawn = this.docView.update(update);\n if (redrawn)\n this.docViewUpdate();\n }\n for (let i = 0; i < measuring.length; i++)\n if (measured[i] != BadMeasure) {\n try {\n let m = measuring[i];\n if (m.write)\n m.write(measured[i], this);\n }\n catch (e) {\n logException(this.state, e);\n }\n }\n if (redrawn)\n this.docView.updateSelection(true);\n if (!update.viewportChanged && this.measureRequests.length == 0) {\n if (this.viewState.editorHeight) {\n if (this.viewState.scrollTarget) {\n this.docView.scrollIntoView(this.viewState.scrollTarget);\n this.viewState.scrollTarget = null;\n scrollAnchorHeight = -1;\n continue;\n }\n else {\n let newAnchorHeight = scrollAnchorPos < 0 ? this.viewState.heightMap.height :\n this.viewState.lineBlockAt(scrollAnchorPos).top;\n let diff = newAnchorHeight - scrollAnchorHeight;\n if (diff > 1 || diff < -1) {\n scrollTop = scrollTop + diff;\n sDOM.scrollTop = scrollTop / this.scaleY;\n scrollAnchorHeight = -1;\n continue;\n }\n }\n }\n break;\n }\n }\n }\n finally {\n this.updateState = 0 /* UpdateState.Idle */;\n this.measureScheduled = -1;\n }\n if (updated && !updated.empty)\n for (let listener of this.state.facet(updateListener))\n listener(updated);\n }\n /**\n Get the CSS classes for the currently active editor themes.\n */\n get themeClasses() {\n return baseThemeID + \" \" +\n (this.state.facet(darkTheme) ? baseDarkID : baseLightID) + \" \" +\n this.state.facet(theme);\n }\n updateAttrs() {\n let editorAttrs = attrsFromFacet(this, editorAttributes, {\n class: \"cm-editor\" + (this.hasFocus ? \" cm-focused \" : \" \") + this.themeClasses\n });\n let contentAttrs = {\n spellcheck: \"false\",\n autocorrect: \"off\",\n autocapitalize: \"off\",\n translate: \"no\",\n contenteditable: !this.state.facet(editable) ? \"false\" : \"true\",\n class: \"cm-content\",\n style: `${browser.tabSize}: ${this.state.tabSize}`,\n role: \"textbox\",\n \"aria-multiline\": \"true\"\n };\n if (this.state.readOnly)\n contentAttrs[\"aria-readonly\"] = \"true\";\n attrsFromFacet(this, contentAttributes, contentAttrs);\n let changed = this.observer.ignore(() => {\n let changedContent = updateAttrs(this.contentDOM, this.contentAttrs, contentAttrs);\n let changedEditor = updateAttrs(this.dom, this.editorAttrs, editorAttrs);\n return changedContent || changedEditor;\n });\n this.editorAttrs = editorAttrs;\n this.contentAttrs = contentAttrs;\n return changed;\n }\n showAnnouncements(trs) {\n let first = true;\n for (let tr of trs)\n for (let effect of tr.effects)\n if (effect.is(EditorView.announce)) {\n if (first)\n this.announceDOM.textContent = \"\";\n first = false;\n let div = this.announceDOM.appendChild(document.createElement(\"div\"));\n div.textContent = effect.value;\n }\n }\n mountStyles() {\n this.styleModules = this.state.facet(styleModule);\n let nonce = this.state.facet(EditorView.cspNonce);\n StyleModule.mount(this.root, this.styleModules.concat(baseTheme$1).reverse(), nonce ? { nonce } : undefined);\n }\n readMeasured() {\n if (this.updateState == 2 /* UpdateState.Updating */)\n throw new Error(\"Reading the editor layout isn't allowed during an update\");\n if (this.updateState == 0 /* UpdateState.Idle */ && this.measureScheduled > -1)\n this.measure(false);\n }\n /**\n Schedule a layout measurement, optionally providing callbacks to\n do custom DOM measuring followed by a DOM write phase. Using\n this is preferable reading DOM layout directly from, for\n example, an event handler, because it'll make sure measuring and\n drawing done by other components is synchronized, avoiding\n unnecessary DOM layout computations.\n */\n requestMeasure(request) {\n if (this.measureScheduled < 0)\n this.measureScheduled = this.win.requestAnimationFrame(() => this.measure());\n if (request) {\n if (this.measureRequests.indexOf(request) > -1)\n return;\n if (request.key != null)\n for (let i = 0; i < this.measureRequests.length; i++) {\n if (this.measureRequests[i].key === request.key) {\n this.measureRequests[i] = request;\n return;\n }\n }\n this.measureRequests.push(request);\n }\n }\n /**\n Get the value of a specific plugin, if present. Note that\n plugins that crash can be dropped from a view, so even when you\n know you registered a given plugin, it is recommended to check\n the return value of this method.\n */\n plugin(plugin) {\n let known = this.pluginMap.get(plugin);\n if (known === undefined || known && known.spec != plugin)\n this.pluginMap.set(plugin, known = this.plugins.find(p => p.spec == plugin) || null);\n return known && known.update(this).value;\n }\n /**\n The top position of the document, in screen coordinates. This\n may be negative when the editor is scrolled down. Points\n directly to the top of the first line, not above the padding.\n */\n get documentTop() {\n return this.contentDOM.getBoundingClientRect().top + this.viewState.paddingTop;\n }\n /**\n Reports the padding above and below the document.\n */\n get documentPadding() {\n return { top: this.viewState.paddingTop, bottom: this.viewState.paddingBottom };\n }\n /**\n If the editor is transformed with CSS, this provides the scale\n along the X axis. Otherwise, it will just be 1. Note that\n transforms other than translation and scaling are not supported.\n */\n get scaleX() { return this.viewState.scaleX; }\n /**\n Provide the CSS transformed scale along the Y axis.\n */\n get scaleY() { return this.viewState.scaleY; }\n /**\n Find the text line or block widget at the given vertical\n position (which is interpreted as relative to the [top of the\n document](https://codemirror.net/6/docs/ref/#view.EditorView.documentTop)).\n */\n elementAtHeight(height) {\n this.readMeasured();\n return this.viewState.elementAtHeight(height);\n }\n /**\n Find the line block (see\n [`lineBlockAt`](https://codemirror.net/6/docs/ref/#view.EditorView.lineBlockAt) at the given\n height, again interpreted relative to the [top of the\n document](https://codemirror.net/6/docs/ref/#view.EditorView.documentTop).\n */\n lineBlockAtHeight(height) {\n this.readMeasured();\n return this.viewState.lineBlockAtHeight(height);\n }\n /**\n Get the extent and vertical position of all [line\n blocks](https://codemirror.net/6/docs/ref/#view.EditorView.lineBlockAt) in the viewport. Positions\n are relative to the [top of the\n document](https://codemirror.net/6/docs/ref/#view.EditorView.documentTop);\n */\n get viewportLineBlocks() {\n return this.viewState.viewportLines;\n }\n /**\n Find the line block around the given document position. A line\n block is a range delimited on both sides by either a\n non-[hidden](https://codemirror.net/6/docs/ref/#view.Decoration^replace) line breaks, or the\n start/end of the document. It will usually just hold a line of\n text, but may be broken into multiple textblocks by block\n widgets.\n */\n lineBlockAt(pos) {\n return this.viewState.lineBlockAt(pos);\n }\n /**\n The editor's total content height.\n */\n get contentHeight() {\n return this.viewState.contentHeight;\n }\n /**\n Move a cursor position by [grapheme\n cluster](https://codemirror.net/6/docs/ref/#state.findClusterBreak). `forward` determines whether\n the motion is away from the line start, or towards it. In\n bidirectional text, the line is traversed in visual order, using\n the editor's [text direction](https://codemirror.net/6/docs/ref/#view.EditorView.textDirection).\n When the start position was the last one on the line, the\n returned position will be across the line break. If there is no\n further line, the original position is returned.\n \n By default, this method moves over a single cluster. The\n optional `by` argument can be used to move across more. It will\n be called with the first cluster as argument, and should return\n a predicate that determines, for each subsequent cluster,\n whether it should also be moved over.\n */\n moveByChar(start, forward, by) {\n return skipAtoms(this, start, moveByChar(this, start, forward, by));\n }\n /**\n Move a cursor position across the next group of either\n [letters](https://codemirror.net/6/docs/ref/#state.EditorState.charCategorizer) or non-letter\n non-whitespace characters.\n */\n moveByGroup(start, forward) {\n return skipAtoms(this, start, moveByChar(this, start, forward, initial => byGroup(this, start.head, initial)));\n }\n /**\n Get the cursor position visually at the start or end of a line.\n Note that this may differ from the _logical_ position at its\n start or end (which is simply at `line.from`/`line.to`) if text\n at the start or end goes against the line's base text direction.\n */\n visualLineSide(line, end) {\n let order = this.bidiSpans(line), dir = this.textDirectionAt(line.from);\n let span = order[end ? order.length - 1 : 0];\n return EditorSelection.cursor(span.side(end, dir) + line.from, span.forward(!end, dir) ? 1 : -1);\n }\n /**\n Move to the next line boundary in the given direction. If\n `includeWrap` is true, line wrapping is on, and there is a\n further wrap point on the current line, the wrap point will be\n returned. Otherwise this function will return the start or end\n of the line.\n */\n moveToLineBoundary(start, forward, includeWrap = true) {\n return moveToLineBoundary(this, start, forward, includeWrap);\n }\n /**\n Move a cursor position vertically. When `distance` isn't given,\n it defaults to moving to the next line (including wrapped\n lines). Otherwise, `distance` should provide a positive distance\n in pixels.\n \n When `start` has a\n [`goalColumn`](https://codemirror.net/6/docs/ref/#state.SelectionRange.goalColumn), the vertical\n motion will use that as a target horizontal position. Otherwise,\n the cursor's own horizontal position is used. The returned\n cursor will have its goal column set to whichever column was\n used.\n */\n moveVertically(start, forward, distance) {\n return skipAtoms(this, start, moveVertically(this, start, forward, distance));\n }\n /**\n Find the DOM parent node and offset (child offset if `node` is\n an element, character offset when it is a text node) at the\n given document position.\n \n Note that for positions that aren't currently in\n `visibleRanges`, the resulting DOM position isn't necessarily\n meaningful (it may just point before or after a placeholder\n element).\n */\n domAtPos(pos) {\n return this.docView.domAtPos(pos);\n }\n /**\n Find the document position at the given DOM node. Can be useful\n for associating positions with DOM events. Will raise an error\n when `node` isn't part of the editor content.\n */\n posAtDOM(node, offset = 0) {\n return this.docView.posFromDOM(node, offset);\n }\n posAtCoords(coords, precise = true) {\n this.readMeasured();\n return posAtCoords(this, coords, precise);\n }\n /**\n Get the screen coordinates at the given document position.\n `side` determines whether the coordinates are based on the\n element before (-1) or after (1) the position (if no element is\n available on the given side, the method will transparently use\n another strategy to get reasonable coordinates).\n */\n coordsAtPos(pos, side = 1) {\n this.readMeasured();\n let rect = this.docView.coordsAt(pos, side);\n if (!rect || rect.left == rect.right)\n return rect;\n let line = this.state.doc.lineAt(pos), order = this.bidiSpans(line);\n let span = order[BidiSpan.find(order, pos - line.from, -1, side)];\n return flattenRect(rect, (span.dir == Direction.LTR) == (side > 0));\n }\n /**\n Return the rectangle around a given character. If `pos` does not\n point in front of a character that is in the viewport and\n rendered (i.e. not replaced, not a line break), this will return\n null. For space characters that are a line wrap point, this will\n return the position before the line break.\n */\n coordsForChar(pos) {\n this.readMeasured();\n return this.docView.coordsForChar(pos);\n }\n /**\n The default width of a character in the editor. May not\n accurately reflect the width of all characters (given variable\n width fonts or styling of invididual ranges).\n */\n get defaultCharacterWidth() { return this.viewState.heightOracle.charWidth; }\n /**\n The default height of a line in the editor. May not be accurate\n for all lines.\n */\n get defaultLineHeight() { return this.viewState.heightOracle.lineHeight; }\n /**\n The text direction\n ([`direction`](https://developer.mozilla.org/en-US/docs/Web/CSS/direction)\n CSS property) of the editor's content element.\n */\n get textDirection() { return this.viewState.defaultTextDirection; }\n /**\n Find the text direction of the block at the given position, as\n assigned by CSS. If\n [`perLineTextDirection`](https://codemirror.net/6/docs/ref/#view.EditorView^perLineTextDirection)\n isn't enabled, or the given position is outside of the viewport,\n this will always return the same as\n [`textDirection`](https://codemirror.net/6/docs/ref/#view.EditorView.textDirection). Note that\n this may trigger a DOM layout.\n */\n textDirectionAt(pos) {\n let perLine = this.state.facet(perLineTextDirection);\n if (!perLine || pos < this.viewport.from || pos > this.viewport.to)\n return this.textDirection;\n this.readMeasured();\n return this.docView.textDirectionAt(pos);\n }\n /**\n Whether this editor [wraps lines](https://codemirror.net/6/docs/ref/#view.EditorView.lineWrapping)\n (as determined by the\n [`white-space`](https://developer.mozilla.org/en-US/docs/Web/CSS/white-space)\n CSS property of its content element).\n */\n get lineWrapping() { return this.viewState.heightOracle.lineWrapping; }\n /**\n Returns the bidirectional text structure of the given line\n (which should be in the current document) as an array of span\n objects. The order of these spans matches the [text\n direction](https://codemirror.net/6/docs/ref/#view.EditorView.textDirection)—if that is\n left-to-right, the leftmost spans come first, otherwise the\n rightmost spans come first.\n */\n bidiSpans(line) {\n if (line.length > MaxBidiLine)\n return trivialOrder(line.length);\n let dir = this.textDirectionAt(line.from), isolates;\n for (let entry of this.bidiCache) {\n if (entry.from == line.from && entry.dir == dir &&\n (entry.fresh || isolatesEq(entry.isolates, isolates = getIsolatedRanges(this, line))))\n return entry.order;\n }\n if (!isolates)\n isolates = getIsolatedRanges(this, line);\n let order = computeOrder(line.text, dir, isolates);\n this.bidiCache.push(new CachedOrder(line.from, line.to, dir, isolates, true, order));\n return order;\n }\n /**\n Check whether the editor has focus.\n */\n get hasFocus() {\n var _a;\n // Safari return false for hasFocus when the context menu is open\n // or closing, which leads us to ignore selection changes from the\n // context menu because it looks like the editor isn't focused.\n // This kludges around that.\n return (this.dom.ownerDocument.hasFocus() || browser.safari && ((_a = this.inputState) === null || _a === void 0 ? void 0 : _a.lastContextMenu) > Date.now() - 3e4) &&\n this.root.activeElement == this.contentDOM;\n }\n /**\n Put focus on the editor.\n */\n focus() {\n this.observer.ignore(() => {\n focusPreventScroll(this.contentDOM);\n this.docView.updateSelection();\n });\n }\n /**\n Update the [root](https://codemirror.net/6/docs/ref/##view.EditorViewConfig.root) in which the editor lives. This is only\n necessary when moving the editor's existing DOM to a new window or shadow root.\n */\n setRoot(root) {\n if (this._root != root) {\n this._root = root;\n this.observer.setWindow((root.nodeType == 9 ? root : root.ownerDocument).defaultView || window);\n this.mountStyles();\n }\n }\n /**\n Clean up this editor view, removing its element from the\n document, unregistering event handlers, and notifying\n plugins. The view instance can no longer be used after\n calling this.\n */\n destroy() {\n if (this.root.activeElement == this.contentDOM)\n this.contentDOM.blur();\n for (let plugin of this.plugins)\n plugin.destroy(this);\n this.plugins = [];\n this.inputState.destroy();\n this.docView.destroy();\n this.dom.remove();\n this.observer.destroy();\n if (this.measureScheduled > -1)\n this.win.cancelAnimationFrame(this.measureScheduled);\n this.destroyed = true;\n }\n /**\n Returns an effect that can be\n [added](https://codemirror.net/6/docs/ref/#state.TransactionSpec.effects) to a transaction to\n cause it to scroll the given position or range into view.\n */\n static scrollIntoView(pos, options = {}) {\n return scrollIntoView.of(new ScrollTarget(typeof pos == \"number\" ? EditorSelection.cursor(pos) : pos, options.y, options.x, options.yMargin, options.xMargin));\n }\n /**\n Return an effect that resets the editor to its current (at the\n time this method was called) scroll position. Note that this\n only affects the editor's own scrollable element, not parents.\n See also\n [`EditorViewConfig.scrollTo`](https://codemirror.net/6/docs/ref/#view.EditorViewConfig.scrollTo).\n \n The effect should be used with a document identical to the one\n it was created for. Failing to do so is not an error, but may\n not scroll to the expected position. You can\n [map](https://codemirror.net/6/docs/ref/#state.StateEffect.map) the effect to account for changes.\n */\n scrollSnapshot() {\n let { scrollTop, scrollLeft } = this.scrollDOM;\n let ref = this.viewState.scrollAnchorAt(scrollTop);\n return scrollIntoView.of(new ScrollTarget(EditorSelection.cursor(ref.from), \"start\", \"start\", ref.top - scrollTop, scrollLeft, true));\n }\n /**\n Enable or disable tab-focus mode, which disables key bindings\n for Tab and Shift-Tab, letting the browser's default\n focus-changing behavior go through instead. This is useful to\n prevent trapping keyboard users in your editor.\n \n Without argument, this toggles the mode. With a boolean, it\n enables (true) or disables it (false). Given a number, it\n temporarily enables the mode until that number of milliseconds\n have passed or another non-Tab key is pressed.\n */\n setTabFocusMode(to) {\n if (to == null)\n this.inputState.tabFocusMode = this.inputState.tabFocusMode < 0 ? 0 : -1;\n else if (typeof to == \"boolean\")\n this.inputState.tabFocusMode = to ? 0 : -1;\n else if (this.inputState.tabFocusMode != 0)\n this.inputState.tabFocusMode = Date.now() + to;\n }\n /**\n Returns an extension that can be used to add DOM event handlers.\n The value should be an object mapping event names to handler\n functions. For any given event, such functions are ordered by\n extension precedence, and the first handler to return true will\n be assumed to have handled that event, and no other handlers or\n built-in behavior will be activated for it. These are registered\n on the [content element](https://codemirror.net/6/docs/ref/#view.EditorView.contentDOM), except\n for `scroll` handlers, which will be called any time the\n editor's [scroll element](https://codemirror.net/6/docs/ref/#view.EditorView.scrollDOM) or one of\n its parent nodes is scrolled.\n */\n static domEventHandlers(handlers) {\n return ViewPlugin.define(() => ({}), { eventHandlers: handlers });\n }\n /**\n Create an extension that registers DOM event observers. Contrary\n to event [handlers](https://codemirror.net/6/docs/ref/#view.EditorView^domEventHandlers),\n observers can't be prevented from running by a higher-precedence\n handler returning true. They also don't prevent other handlers\n and observers from running when they return true, and should not\n call `preventDefault`.\n */\n static domEventObservers(observers) {\n return ViewPlugin.define(() => ({}), { eventObservers: observers });\n }\n /**\n Create a theme extension. The first argument can be a\n [`style-mod`](https://github.com/marijnh/style-mod#documentation)\n style spec providing the styles for the theme. These will be\n prefixed with a generated class for the style.\n \n Because the selectors will be prefixed with a scope class, rule\n that directly match the editor's [wrapper\n element](https://codemirror.net/6/docs/ref/#view.EditorView.dom)—to which the scope class will be\n added—need to be explicitly differentiated by adding an `&` to\n the selector for that element—for example\n `&.cm-focused`.\n \n When `dark` is set to true, the theme will be marked as dark,\n which will cause the `&dark` rules from [base\n themes](https://codemirror.net/6/docs/ref/#view.EditorView^baseTheme) to be used (as opposed to\n `&light` when a light theme is active).\n */\n static theme(spec, options) {\n let prefix = StyleModule.newName();\n let result = [theme.of(prefix), styleModule.of(buildTheme(`.${prefix}`, spec))];\n if (options && options.dark)\n result.push(darkTheme.of(true));\n return result;\n }\n /**\n Create an extension that adds styles to the base theme. Like\n with [`theme`](https://codemirror.net/6/docs/ref/#view.EditorView^theme), use `&` to indicate the\n place of the editor wrapper element when directly targeting\n that. You can also use `&dark` or `&light` instead to only\n target editors with a dark or light theme.\n */\n static baseTheme(spec) {\n return Prec.lowest(styleModule.of(buildTheme(\".\" + baseThemeID, spec, lightDarkIDs)));\n }\n /**\n Retrieve an editor view instance from the view's DOM\n representation.\n */\n static findFromDOM(dom) {\n var _a;\n let content = dom.querySelector(\".cm-content\");\n let cView = content && ContentView.get(content) || ContentView.get(dom);\n return ((_a = cView === null || cView === void 0 ? void 0 : cView.rootView) === null || _a === void 0 ? void 0 : _a.view) || null;\n }\n}\n/**\nFacet to add a [style\nmodule](https://github.com/marijnh/style-mod#documentation) to\nan editor view. The view will ensure that the module is\nmounted in its [document\nroot](https://codemirror.net/6/docs/ref/#view.EditorView.constructor^config.root).\n*/\nEditorView.styleModule = styleModule;\n/**\nAn input handler can override the way changes to the editable\nDOM content are handled. Handlers are passed the document\npositions between which the change was found, and the new\ncontent. When one returns true, no further input handlers are\ncalled and the default behavior is prevented.\n\nThe `insert` argument can be used to get the default transaction\nthat would be applied for this input. This can be useful when\ndispatching the custom behavior as a separate transaction.\n*/\nEditorView.inputHandler = inputHandler;\n/**\nScroll handlers can override how things are scrolled into view.\nIf they return `true`, no further handling happens for the\nscrolling. If they return false, the default scroll behavior is\napplied. Scroll handlers should never initiate editor updates.\n*/\nEditorView.scrollHandler = scrollHandler;\n/**\nThis facet can be used to provide functions that create effects\nto be dispatched when the editor's focus state changes.\n*/\nEditorView.focusChangeEffect = focusChangeEffect;\n/**\nBy default, the editor assumes all its content has the same\n[text direction](https://codemirror.net/6/docs/ref/#view.Direction). Configure this with a `true`\nvalue to make it read the text direction of every (rendered)\nline separately.\n*/\nEditorView.perLineTextDirection = perLineTextDirection;\n/**\nAllows you to provide a function that should be called when the\nlibrary catches an exception from an extension (mostly from view\nplugins, but may be used by other extensions to route exceptions\nfrom user-code-provided callbacks). This is mostly useful for\ndebugging and logging. See [`logException`](https://codemirror.net/6/docs/ref/#view.logException).\n*/\nEditorView.exceptionSink = exceptionSink;\n/**\nA facet that can be used to register a function to be called\nevery time the view updates.\n*/\nEditorView.updateListener = updateListener;\n/**\nFacet that controls whether the editor content DOM is editable.\nWhen its highest-precedence value is `false`, the element will\nnot have its `contenteditable` attribute set. (Note that this\ndoesn't affect API calls that change the editor content, even\nwhen those are bound to keys or buttons. See the\n[`readOnly`](https://codemirror.net/6/docs/ref/#state.EditorState.readOnly) facet for that.)\n*/\nEditorView.editable = editable;\n/**\nAllows you to influence the way mouse selection happens. The\nfunctions in this facet will be called for a `mousedown` event\non the editor, and can return an object that overrides the way a\nselection is computed from that mouse click or drag.\n*/\nEditorView.mouseSelectionStyle = mouseSelectionStyle;\n/**\nFacet used to configure whether a given selection drag event\nshould move or copy the selection. The given predicate will be\ncalled with the `mousedown` event, and can return `true` when\nthe drag should move the content.\n*/\nEditorView.dragMovesSelection = dragMovesSelection$1;\n/**\nFacet used to configure whether a given selecting click adds a\nnew range to the existing selection or replaces it entirely. The\ndefault behavior is to check `event.metaKey` on macOS, and\n`event.ctrlKey` elsewhere.\n*/\nEditorView.clickAddsSelectionRange = clickAddsSelectionRange;\n/**\nA facet that determines which [decorations](https://codemirror.net/6/docs/ref/#view.Decoration)\nare shown in the view. Decorations can be provided in two\nways—directly, or via a function that takes an editor view.\n\nOnly decoration sets provided directly are allowed to influence\nthe editor's vertical layout structure. The ones provided as\nfunctions are called _after_ the new viewport has been computed,\nand thus **must not** introduce block widgets or replacing\ndecorations that cover line breaks.\n\nIf you want decorated ranges to behave like atomic units for\ncursor motion and deletion purposes, also provide the range set\ncontaining the decorations to\n[`EditorView.atomicRanges`](https://codemirror.net/6/docs/ref/#view.EditorView^atomicRanges).\n*/\nEditorView.decorations = decorations;\n/**\nFacet that works much like\n[`decorations`](https://codemirror.net/6/docs/ref/#view.EditorView^decorations), but puts its\ninputs at the very bottom of the precedence stack, meaning mark\ndecorations provided here will only be split by other, partially\noverlapping \\`outerDecorations\\` ranges, and wrap around all\nregular decorations. Use this for mark elements that should, as\nmuch as possible, remain in one piece.\n*/\nEditorView.outerDecorations = outerDecorations;\n/**\nUsed to provide ranges that should be treated as atoms as far as\ncursor motion is concerned. This causes methods like\n[`moveByChar`](https://codemirror.net/6/docs/ref/#view.EditorView.moveByChar) and\n[`moveVertically`](https://codemirror.net/6/docs/ref/#view.EditorView.moveVertically) (and the\ncommands built on top of them) to skip across such regions when\na selection endpoint would enter them. This does _not_ prevent\ndirect programmatic [selection\nupdates](https://codemirror.net/6/docs/ref/#state.TransactionSpec.selection) from moving into such\nregions.\n*/\nEditorView.atomicRanges = atomicRanges;\n/**\nWhen range decorations add a `unicode-bidi: isolate` style, they\nshould also include a\n[`bidiIsolate`](https://codemirror.net/6/docs/ref/#view.MarkDecorationSpec.bidiIsolate) property\nin their decoration spec, and be exposed through this facet, so\nthat the editor can compute the proper text order. (Other values\nfor `unicode-bidi`, except of course `normal`, are not\nsupported.)\n*/\nEditorView.bidiIsolatedRanges = bidiIsolatedRanges;\n/**\nFacet that allows extensions to provide additional scroll\nmargins (space around the sides of the scrolling element that\nshould be considered invisible). This can be useful when the\nplugin introduces elements that cover part of that element (for\nexample a horizontally fixed gutter).\n*/\nEditorView.scrollMargins = scrollMargins;\n/**\nThis facet records whether a dark theme is active. The extension\nreturned by [`theme`](https://codemirror.net/6/docs/ref/#view.EditorView^theme) automatically\nincludes an instance of this when the `dark` option is set to\ntrue.\n*/\nEditorView.darkTheme = darkTheme;\n/**\nProvides a Content Security Policy nonce to use when creating\nthe style sheets for the editor. Holds the empty string when no\nnonce has been provided.\n*/\nEditorView.cspNonce = /*@__PURE__*/Facet.define({ combine: values => values.length ? values[0] : \"\" });\n/**\nFacet that provides additional DOM attributes for the editor's\neditable DOM element.\n*/\nEditorView.contentAttributes = contentAttributes;\n/**\nFacet that provides DOM attributes for the editor's outer\nelement.\n*/\nEditorView.editorAttributes = editorAttributes;\n/**\nAn extension that enables line wrapping in the editor (by\nsetting CSS `white-space` to `pre-wrap` in the content).\n*/\nEditorView.lineWrapping = /*@__PURE__*/EditorView.contentAttributes.of({ \"class\": \"cm-lineWrapping\" });\n/**\nState effect used to include screen reader announcements in a\ntransaction. These will be added to the DOM in a visually hidden\nelement with `aria-live=\"polite\"` set, and should be used to\ndescribe effects that are visually obvious but may not be\nnoticed by screen reader users (such as moving to the next\nsearch match).\n*/\nEditorView.announce = /*@__PURE__*/StateEffect.define();\n// Maximum line length for which we compute accurate bidi info\nconst MaxBidiLine = 4096;\nconst BadMeasure = {};\nclass CachedOrder {\n constructor(from, to, dir, isolates, fresh, order) {\n this.from = from;\n this.to = to;\n this.dir = dir;\n this.isolates = isolates;\n this.fresh = fresh;\n this.order = order;\n }\n static update(cache, changes) {\n if (changes.empty && !cache.some(c => c.fresh))\n return cache;\n let result = [], lastDir = cache.length ? cache[cache.length - 1].dir : Direction.LTR;\n for (let i = Math.max(0, cache.length - 10); i < cache.length; i++) {\n let entry = cache[i];\n if (entry.dir == lastDir && !changes.touchesRange(entry.from, entry.to))\n result.push(new CachedOrder(changes.mapPos(entry.from, 1), changes.mapPos(entry.to, -1), entry.dir, entry.isolates, false, entry.order));\n }\n return result;\n }\n}\nfunction attrsFromFacet(view, facet, base) {\n for (let sources = view.state.facet(facet), i = sources.length - 1; i >= 0; i--) {\n let source = sources[i], value = typeof source == \"function\" ? source(view) : source;\n if (value)\n combineAttrs(value, base);\n }\n return base;\n}\n\nconst currentPlatform = browser.mac ? \"mac\" : browser.windows ? \"win\" : browser.linux ? \"linux\" : \"key\";\nfunction normalizeKeyName(name, platform) {\n const parts = name.split(/-(?!$)/);\n let result = parts[parts.length - 1];\n if (result == \"Space\")\n result = \" \";\n let alt, ctrl, shift, meta;\n for (let i = 0; i < parts.length - 1; ++i) {\n const mod = parts[i];\n if (/^(cmd|meta|m)$/i.test(mod))\n meta = true;\n else if (/^a(lt)?$/i.test(mod))\n alt = true;\n else if (/^(c|ctrl|control)$/i.test(mod))\n ctrl = true;\n else if (/^s(hift)?$/i.test(mod))\n shift = true;\n else if (/^mod$/i.test(mod)) {\n if (platform == \"mac\")\n meta = true;\n else\n ctrl = true;\n }\n else\n throw new Error(\"Unrecognized modifier name: \" + mod);\n }\n if (alt)\n result = \"Alt-\" + result;\n if (ctrl)\n result = \"Ctrl-\" + result;\n if (meta)\n result = \"Meta-\" + result;\n if (shift)\n result = \"Shift-\" + result;\n return result;\n}\nfunction modifiers(name, event, shift) {\n if (event.altKey)\n name = \"Alt-\" + name;\n if (event.ctrlKey)\n name = \"Ctrl-\" + name;\n if (event.metaKey)\n name = \"Meta-\" + name;\n if (shift !== false && event.shiftKey)\n name = \"Shift-\" + name;\n return name;\n}\nconst handleKeyEvents = /*@__PURE__*/Prec.default(/*@__PURE__*/EditorView.domEventHandlers({\n keydown(event, view) {\n return runHandlers(getKeymap(view.state), event, view, \"editor\");\n }\n}));\n/**\nFacet used for registering keymaps.\n\nYou can add multiple keymaps to an editor. Their priorities\ndetermine their precedence (the ones specified early or with high\npriority get checked first). When a handler has returned `true`\nfor a given key, no further handlers are called.\n*/\nconst keymap = /*@__PURE__*/Facet.define({ enables: handleKeyEvents });\nconst Keymaps = /*@__PURE__*/new WeakMap();\n// This is hidden behind an indirection, rather than directly computed\n// by the facet, to keep internal types out of the facet's type.\nfunction getKeymap(state) {\n let bindings = state.facet(keymap);\n let map = Keymaps.get(bindings);\n if (!map)\n Keymaps.set(bindings, map = buildKeymap(bindings.reduce((a, b) => a.concat(b), [])));\n return map;\n}\n/**\nRun the key handlers registered for a given scope. The event\nobject should be a `\"keydown\"` event. Returns true if any of the\nhandlers handled it.\n*/\nfunction runScopeHandlers(view, event, scope) {\n return runHandlers(getKeymap(view.state), event, view, scope);\n}\nlet storedPrefix = null;\nconst PrefixTimeout = 4000;\nfunction buildKeymap(bindings, platform = currentPlatform) {\n let bound = Object.create(null);\n let isPrefix = Object.create(null);\n let checkPrefix = (name, is) => {\n let current = isPrefix[name];\n if (current == null)\n isPrefix[name] = is;\n else if (current != is)\n throw new Error(\"Key binding \" + name + \" is used both as a regular binding and as a multi-stroke prefix\");\n };\n let add = (scope, key, command, preventDefault, stopPropagation) => {\n var _a, _b;\n let scopeObj = bound[scope] || (bound[scope] = Object.create(null));\n let parts = key.split(/ (?!$)/).map(k => normalizeKeyName(k, platform));\n for (let i = 1; i < parts.length; i++) {\n let prefix = parts.slice(0, i).join(\" \");\n checkPrefix(prefix, true);\n if (!scopeObj[prefix])\n scopeObj[prefix] = {\n preventDefault: true,\n stopPropagation: false,\n run: [(view) => {\n let ourObj = storedPrefix = { view, prefix, scope };\n setTimeout(() => { if (storedPrefix == ourObj)\n storedPrefix = null; }, PrefixTimeout);\n return true;\n }]\n };\n }\n let full = parts.join(\" \");\n checkPrefix(full, false);\n let binding = scopeObj[full] || (scopeObj[full] = {\n preventDefault: false,\n stopPropagation: false,\n run: ((_b = (_a = scopeObj._any) === null || _a === void 0 ? void 0 : _a.run) === null || _b === void 0 ? void 0 : _b.slice()) || []\n });\n if (command)\n binding.run.push(command);\n if (preventDefault)\n binding.preventDefault = true;\n if (stopPropagation)\n binding.stopPropagation = true;\n };\n for (let b of bindings) {\n let scopes = b.scope ? b.scope.split(\" \") : [\"editor\"];\n if (b.any)\n for (let scope of scopes) {\n let scopeObj = bound[scope] || (bound[scope] = Object.create(null));\n if (!scopeObj._any)\n scopeObj._any = { preventDefault: false, stopPropagation: false, run: [] };\n let { any } = b;\n for (let key in scopeObj)\n scopeObj[key].run.push(view => any(view, currentKeyEvent));\n }\n let name = b[platform] || b.key;\n if (!name)\n continue;\n for (let scope of scopes) {\n add(scope, name, b.run, b.preventDefault, b.stopPropagation);\n if (b.shift)\n add(scope, \"Shift-\" + name, b.shift, b.preventDefault, b.stopPropagation);\n }\n }\n return bound;\n}\nlet currentKeyEvent = null;\nfunction runHandlers(map, event, view, scope) {\n currentKeyEvent = event;\n let name = keyName(event);\n let charCode = codePointAt(name, 0), isChar = codePointSize(charCode) == name.length && name != \" \";\n let prefix = \"\", handled = false, prevented = false, stopPropagation = false;\n if (storedPrefix && storedPrefix.view == view && storedPrefix.scope == scope) {\n prefix = storedPrefix.prefix + \" \";\n if (modifierCodes.indexOf(event.keyCode) < 0) {\n prevented = true;\n storedPrefix = null;\n }\n }\n let ran = new Set;\n let runFor = (binding) => {\n if (binding) {\n for (let cmd of binding.run)\n if (!ran.has(cmd)) {\n ran.add(cmd);\n if (cmd(view)) {\n if (binding.stopPropagation)\n stopPropagation = true;\n return true;\n }\n }\n if (binding.preventDefault) {\n if (binding.stopPropagation)\n stopPropagation = true;\n prevented = true;\n }\n }\n return false;\n };\n let scopeObj = map[scope], baseName, shiftName;\n if (scopeObj) {\n if (runFor(scopeObj[prefix + modifiers(name, event, !isChar)])) {\n handled = true;\n }\n else if (isChar && (event.altKey || event.metaKey || event.ctrlKey) &&\n // Ctrl-Alt may be used for AltGr on Windows\n !(browser.windows && event.ctrlKey && event.altKey) &&\n (baseName = base[event.keyCode]) && baseName != name) {\n if (runFor(scopeObj[prefix + modifiers(baseName, event, true)])) {\n handled = true;\n }\n else if (event.shiftKey && (shiftName = shift[event.keyCode]) != name && shiftName != baseName &&\n runFor(scopeObj[prefix + modifiers(shiftName, event, false)])) {\n handled = true;\n }\n }\n else if (isChar && event.shiftKey &&\n runFor(scopeObj[prefix + modifiers(name, event, true)])) {\n handled = true;\n }\n if (!handled && runFor(scopeObj._any))\n handled = true;\n }\n if (prevented)\n handled = true;\n if (handled && stopPropagation)\n event.stopPropagation();\n currentKeyEvent = null;\n return handled;\n}\n\n/**\nImplementation of [`LayerMarker`](https://codemirror.net/6/docs/ref/#view.LayerMarker) that creates\na rectangle at a given set of coordinates.\n*/\nclass RectangleMarker {\n /**\n Create a marker with the given class and dimensions. If `width`\n is null, the DOM element will get no width style.\n */\n constructor(className, \n /**\n The left position of the marker (in pixels, document-relative).\n */\n left, \n /**\n The top position of the marker.\n */\n top, \n /**\n The width of the marker, or null if it shouldn't get a width assigned.\n */\n width, \n /**\n The height of the marker.\n */\n height) {\n this.className = className;\n this.left = left;\n this.top = top;\n this.width = width;\n this.height = height;\n }\n draw() {\n let elt = document.createElement(\"div\");\n elt.className = this.className;\n this.adjust(elt);\n return elt;\n }\n update(elt, prev) {\n if (prev.className != this.className)\n return false;\n this.adjust(elt);\n return true;\n }\n adjust(elt) {\n elt.style.left = this.left + \"px\";\n elt.style.top = this.top + \"px\";\n if (this.width != null)\n elt.style.width = this.width + \"px\";\n elt.style.height = this.height + \"px\";\n }\n eq(p) {\n return this.left == p.left && this.top == p.top && this.width == p.width && this.height == p.height &&\n this.className == p.className;\n }\n /**\n Create a set of rectangles for the given selection range,\n assigning them theclass`className`. Will create a single\n rectangle for empty ranges, and a set of selection-style\n rectangles covering the range's content (in a bidi-aware\n way) for non-empty ones.\n */\n static forRange(view, className, range) {\n if (range.empty) {\n let pos = view.coordsAtPos(range.head, range.assoc || 1);\n if (!pos)\n return [];\n let base = getBase(view);\n return [new RectangleMarker(className, pos.left - base.left, pos.top - base.top, null, pos.bottom - pos.top)];\n }\n else {\n return rectanglesForRange(view, className, range);\n }\n }\n}\nfunction getBase(view) {\n let rect = view.scrollDOM.getBoundingClientRect();\n let left = view.textDirection == Direction.LTR ? rect.left : rect.right - view.scrollDOM.clientWidth * view.scaleX;\n return { left: left - view.scrollDOM.scrollLeft * view.scaleX, top: rect.top - view.scrollDOM.scrollTop * view.scaleY };\n}\nfunction wrappedLine(view, pos, side, inside) {\n let coords = view.coordsAtPos(pos, side * 2);\n if (!coords)\n return inside;\n let editorRect = view.dom.getBoundingClientRect();\n let y = (coords.top + coords.bottom) / 2;\n let left = view.posAtCoords({ x: editorRect.left + 1, y });\n let right = view.posAtCoords({ x: editorRect.right - 1, y });\n if (left == null || right == null)\n return inside;\n return { from: Math.max(inside.from, Math.min(left, right)), to: Math.min(inside.to, Math.max(left, right)) };\n}\nfunction rectanglesForRange(view, className, range) {\n if (range.to <= view.viewport.from || range.from >= view.viewport.to)\n return [];\n let from = Math.max(range.from, view.viewport.from), to = Math.min(range.to, view.viewport.to);\n let ltr = view.textDirection == Direction.LTR;\n let content = view.contentDOM, contentRect = content.getBoundingClientRect(), base = getBase(view);\n let lineElt = content.querySelector(\".cm-line\"), lineStyle = lineElt && window.getComputedStyle(lineElt);\n let leftSide = contentRect.left +\n (lineStyle ? parseInt(lineStyle.paddingLeft) + Math.min(0, parseInt(lineStyle.textIndent)) : 0);\n let rightSide = contentRect.right - (lineStyle ? parseInt(lineStyle.paddingRight) : 0);\n let startBlock = blockAt(view, from), endBlock = blockAt(view, to);\n let visualStart = startBlock.type == BlockType.Text ? startBlock : null;\n let visualEnd = endBlock.type == BlockType.Text ? endBlock : null;\n if (visualStart && (view.lineWrapping || startBlock.widgetLineBreaks))\n visualStart = wrappedLine(view, from, 1, visualStart);\n if (visualEnd && (view.lineWrapping || endBlock.widgetLineBreaks))\n visualEnd = wrappedLine(view, to, -1, visualEnd);\n if (visualStart && visualEnd && visualStart.from == visualEnd.from && visualStart.to == visualEnd.to) {\n return pieces(drawForLine(range.from, range.to, visualStart));\n }\n else {\n let top = visualStart ? drawForLine(range.from, null, visualStart) : drawForWidget(startBlock, false);\n let bottom = visualEnd ? drawForLine(null, range.to, visualEnd) : drawForWidget(endBlock, true);\n let between = [];\n if ((visualStart || startBlock).to < (visualEnd || endBlock).from - (visualStart && visualEnd ? 1 : 0) ||\n startBlock.widgetLineBreaks > 1 && top.bottom + view.defaultLineHeight / 2 < bottom.top)\n between.push(piece(leftSide, top.bottom, rightSide, bottom.top));\n else if (top.bottom < bottom.top && view.elementAtHeight((top.bottom + bottom.top) / 2).type == BlockType.Text)\n top.bottom = bottom.top = (top.bottom + bottom.top) / 2;\n return pieces(top).concat(between).concat(pieces(bottom));\n }\n function piece(left, top, right, bottom) {\n return new RectangleMarker(className, left - base.left, top - base.top - 0.01 /* C.Epsilon */, right - left, bottom - top + 0.01 /* C.Epsilon */);\n }\n function pieces({ top, bottom, horizontal }) {\n let pieces = [];\n for (let i = 0; i < horizontal.length; i += 2)\n pieces.push(piece(horizontal[i], top, horizontal[i + 1], bottom));\n return pieces;\n }\n // Gets passed from/to in line-local positions\n function drawForLine(from, to, line) {\n let top = 1e9, bottom = -1e9, horizontal = [];\n function addSpan(from, fromOpen, to, toOpen, dir) {\n // Passing 2/-2 is a kludge to force the view to return\n // coordinates on the proper side of block widgets, since\n // normalizing the side there, though appropriate for most\n // coordsAtPos queries, would break selection drawing.\n let fromCoords = view.coordsAtPos(from, (from == line.to ? -2 : 2));\n let toCoords = view.coordsAtPos(to, (to == line.from ? 2 : -2));\n if (!fromCoords || !toCoords)\n return;\n top = Math.min(fromCoords.top, toCoords.top, top);\n bottom = Math.max(fromCoords.bottom, toCoords.bottom, bottom);\n if (dir == Direction.LTR)\n horizontal.push(ltr && fromOpen ? leftSide : fromCoords.left, ltr && toOpen ? rightSide : toCoords.right);\n else\n horizontal.push(!ltr && toOpen ? leftSide : toCoords.left, !ltr && fromOpen ? rightSide : fromCoords.right);\n }\n let start = from !== null && from !== void 0 ? from : line.from, end = to !== null && to !== void 0 ? to : line.to;\n // Split the range by visible range and document line\n for (let r of view.visibleRanges)\n if (r.to > start && r.from < end) {\n for (let pos = Math.max(r.from, start), endPos = Math.min(r.to, end);;) {\n let docLine = view.state.doc.lineAt(pos);\n for (let span of view.bidiSpans(docLine)) {\n let spanFrom = span.from + docLine.from, spanTo = span.to + docLine.from;\n if (spanFrom >= endPos)\n break;\n if (spanTo > pos)\n addSpan(Math.max(spanFrom, pos), from == null && spanFrom <= start, Math.min(spanTo, endPos), to == null && spanTo >= end, span.dir);\n }\n pos = docLine.to + 1;\n if (pos >= endPos)\n break;\n }\n }\n if (horizontal.length == 0)\n addSpan(start, from == null, end, to == null, view.textDirection);\n return { top, bottom, horizontal };\n }\n function drawForWidget(block, top) {\n let y = contentRect.top + (top ? block.top : block.bottom);\n return { top: y, bottom: y, horizontal: [] };\n }\n}\nfunction sameMarker(a, b) {\n return a.constructor == b.constructor && a.eq(b);\n}\nclass LayerView {\n constructor(view, layer) {\n this.view = view;\n this.layer = layer;\n this.drawn = [];\n this.scaleX = 1;\n this.scaleY = 1;\n this.measureReq = { read: this.measure.bind(this), write: this.draw.bind(this) };\n this.dom = view.scrollDOM.appendChild(document.createElement(\"div\"));\n this.dom.classList.add(\"cm-layer\");\n if (layer.above)\n this.dom.classList.add(\"cm-layer-above\");\n if (layer.class)\n this.dom.classList.add(layer.class);\n this.scale();\n this.dom.setAttribute(\"aria-hidden\", \"true\");\n this.setOrder(view.state);\n view.requestMeasure(this.measureReq);\n if (layer.mount)\n layer.mount(this.dom, view);\n }\n update(update) {\n if (update.startState.facet(layerOrder) != update.state.facet(layerOrder))\n this.setOrder(update.state);\n if (this.layer.update(update, this.dom) || update.geometryChanged) {\n this.scale();\n update.view.requestMeasure(this.measureReq);\n }\n }\n docViewUpdate(view) {\n if (this.layer.updateOnDocViewUpdate !== false)\n view.requestMeasure(this.measureReq);\n }\n setOrder(state) {\n let pos = 0, order = state.facet(layerOrder);\n while (pos < order.length && order[pos] != this.layer)\n pos++;\n this.dom.style.zIndex = String((this.layer.above ? 150 : -1) - pos);\n }\n measure() {\n return this.layer.markers(this.view);\n }\n scale() {\n let { scaleX, scaleY } = this.view;\n if (scaleX != this.scaleX || scaleY != this.scaleY) {\n this.scaleX = scaleX;\n this.scaleY = scaleY;\n this.dom.style.transform = `scale(${1 / scaleX}, ${1 / scaleY})`;\n }\n }\n draw(markers) {\n if (markers.length != this.drawn.length || markers.some((p, i) => !sameMarker(p, this.drawn[i]))) {\n let old = this.dom.firstChild, oldI = 0;\n for (let marker of markers) {\n if (marker.update && old && marker.constructor && this.drawn[oldI].constructor &&\n marker.update(old, this.drawn[oldI])) {\n old = old.nextSibling;\n oldI++;\n }\n else {\n this.dom.insertBefore(marker.draw(), old);\n }\n }\n while (old) {\n let next = old.nextSibling;\n old.remove();\n old = next;\n }\n this.drawn = markers;\n }\n }\n destroy() {\n if (this.layer.destroy)\n this.layer.destroy(this.dom, this.view);\n this.dom.remove();\n }\n}\nconst layerOrder = /*@__PURE__*/Facet.define();\n/**\nDefine a layer.\n*/\nfunction layer(config) {\n return [\n ViewPlugin.define(v => new LayerView(v, config)),\n layerOrder.of(config)\n ];\n}\n\nconst CanHidePrimary = !browser.ios; // FIXME test IE\nconst selectionConfig = /*@__PURE__*/Facet.define({\n combine(configs) {\n return combineConfig(configs, {\n cursorBlinkRate: 1200,\n drawRangeCursor: true\n }, {\n cursorBlinkRate: (a, b) => Math.min(a, b),\n drawRangeCursor: (a, b) => a || b\n });\n }\n});\n/**\nReturns an extension that hides the browser's native selection and\ncursor, replacing the selection with a background behind the text\n(with the `cm-selectionBackground` class), and the\ncursors with elements overlaid over the code (using\n`cm-cursor-primary` and `cm-cursor-secondary`).\n\nThis allows the editor to display secondary selection ranges, and\ntends to produce a type of selection more in line with that users\nexpect in a text editor (the native selection styling will often\nleave gaps between lines and won't fill the horizontal space after\na line when the selection continues past it).\n\nIt does have a performance cost, in that it requires an extra DOM\nlayout cycle for many updates (the selection is drawn based on DOM\nlayout information that's only available after laying out the\ncontent).\n*/\nfunction drawSelection(config = {}) {\n return [\n selectionConfig.of(config),\n cursorLayer,\n selectionLayer,\n hideNativeSelection,\n nativeSelectionHidden.of(true)\n ];\n}\n/**\nRetrieve the [`drawSelection`](https://codemirror.net/6/docs/ref/#view.drawSelection) configuration\nfor this state. (Note that this will return a set of defaults even\nif `drawSelection` isn't enabled.)\n*/\nfunction getDrawSelectionConfig(state) {\n return state.facet(selectionConfig);\n}\nfunction configChanged(update) {\n return update.startState.facet(selectionConfig) != update.state.facet(selectionConfig);\n}\nconst cursorLayer = /*@__PURE__*/layer({\n above: true,\n markers(view) {\n let { state } = view, conf = state.facet(selectionConfig);\n let cursors = [];\n for (let r of state.selection.ranges) {\n let prim = r == state.selection.main;\n if (r.empty ? !prim || CanHidePrimary : conf.drawRangeCursor) {\n let className = prim ? \"cm-cursor cm-cursor-primary\" : \"cm-cursor cm-cursor-secondary\";\n let cursor = r.empty ? r : EditorSelection.cursor(r.head, r.head > r.anchor ? -1 : 1);\n for (let piece of RectangleMarker.forRange(view, className, cursor))\n cursors.push(piece);\n }\n }\n return cursors;\n },\n update(update, dom) {\n if (update.transactions.some(tr => tr.selection))\n dom.style.animationName = dom.style.animationName == \"cm-blink\" ? \"cm-blink2\" : \"cm-blink\";\n let confChange = configChanged(update);\n if (confChange)\n setBlinkRate(update.state, dom);\n return update.docChanged || update.selectionSet || confChange;\n },\n mount(dom, view) {\n setBlinkRate(view.state, dom);\n },\n class: \"cm-cursorLayer\"\n});\nfunction setBlinkRate(state, dom) {\n dom.style.animationDuration = state.facet(selectionConfig).cursorBlinkRate + \"ms\";\n}\nconst selectionLayer = /*@__PURE__*/layer({\n above: false,\n markers(view) {\n return view.state.selection.ranges.map(r => r.empty ? [] : RectangleMarker.forRange(view, \"cm-selectionBackground\", r))\n .reduce((a, b) => a.concat(b));\n },\n update(update, dom) {\n return update.docChanged || update.selectionSet || update.viewportChanged || configChanged(update);\n },\n class: \"cm-selectionLayer\"\n});\nconst themeSpec = {\n \".cm-line\": {\n \"& ::selection, &::selection\": { backgroundColor: \"transparent !important\" },\n },\n \".cm-content\": {\n \"& :focus\": {\n caretColor: \"initial !important\",\n \"&::selection, & ::selection\": {\n backgroundColor: \"Highlight !important\"\n }\n }\n }\n};\nif (CanHidePrimary)\n themeSpec[\".cm-line\"].caretColor = themeSpec[\".cm-content\"].caretColor = \"transparent !important\";\nconst hideNativeSelection = /*@__PURE__*/Prec.highest(/*@__PURE__*/EditorView.theme(themeSpec));\n\nconst setDropCursorPos = /*@__PURE__*/StateEffect.define({\n map(pos, mapping) { return pos == null ? null : mapping.mapPos(pos); }\n});\nconst dropCursorPos = /*@__PURE__*/StateField.define({\n create() { return null; },\n update(pos, tr) {\n if (pos != null)\n pos = tr.changes.mapPos(pos);\n return tr.effects.reduce((pos, e) => e.is(setDropCursorPos) ? e.value : pos, pos);\n }\n});\nconst drawDropCursor = /*@__PURE__*/ViewPlugin.fromClass(class {\n constructor(view) {\n this.view = view;\n this.cursor = null;\n this.measureReq = { read: this.readPos.bind(this), write: this.drawCursor.bind(this) };\n }\n update(update) {\n var _a;\n let cursorPos = update.state.field(dropCursorPos);\n if (cursorPos == null) {\n if (this.cursor != null) {\n (_a = this.cursor) === null || _a === void 0 ? void 0 : _a.remove();\n this.cursor = null;\n }\n }\n else {\n if (!this.cursor) {\n this.cursor = this.view.scrollDOM.appendChild(document.createElement(\"div\"));\n this.cursor.className = \"cm-dropCursor\";\n }\n if (update.startState.field(dropCursorPos) != cursorPos || update.docChanged || update.geometryChanged)\n this.view.requestMeasure(this.measureReq);\n }\n }\n readPos() {\n let { view } = this;\n let pos = view.state.field(dropCursorPos);\n let rect = pos != null && view.coordsAtPos(pos);\n if (!rect)\n return null;\n let outer = view.scrollDOM.getBoundingClientRect();\n return {\n left: rect.left - outer.left + view.scrollDOM.scrollLeft * view.scaleX,\n top: rect.top - outer.top + view.scrollDOM.scrollTop * view.scaleY,\n height: rect.bottom - rect.top\n };\n }\n drawCursor(pos) {\n if (this.cursor) {\n let { scaleX, scaleY } = this.view;\n if (pos) {\n this.cursor.style.left = pos.left / scaleX + \"px\";\n this.cursor.style.top = pos.top / scaleY + \"px\";\n this.cursor.style.height = pos.height / scaleY + \"px\";\n }\n else {\n this.cursor.style.left = \"-100000px\";\n }\n }\n }\n destroy() {\n if (this.cursor)\n this.cursor.remove();\n }\n setDropPos(pos) {\n if (this.view.state.field(dropCursorPos) != pos)\n this.view.dispatch({ effects: setDropCursorPos.of(pos) });\n }\n}, {\n eventObservers: {\n dragover(event) {\n this.setDropPos(this.view.posAtCoords({ x: event.clientX, y: event.clientY }));\n },\n dragleave(event) {\n if (event.target == this.view.contentDOM || !this.view.contentDOM.contains(event.relatedTarget))\n this.setDropPos(null);\n },\n dragend() {\n this.setDropPos(null);\n },\n drop() {\n this.setDropPos(null);\n }\n }\n});\n/**\nDraws a cursor at the current drop position when something is\ndragged over the editor.\n*/\nfunction dropCursor() {\n return [dropCursorPos, drawDropCursor];\n}\n\nfunction iterMatches(doc, re, from, to, f) {\n re.lastIndex = 0;\n for (let cursor = doc.iterRange(from, to), pos = from, m; !cursor.next().done; pos += cursor.value.length) {\n if (!cursor.lineBreak)\n while (m = re.exec(cursor.value))\n f(pos + m.index, m);\n }\n}\nfunction matchRanges(view, maxLength) {\n let visible = view.visibleRanges;\n if (visible.length == 1 && visible[0].from == view.viewport.from &&\n visible[0].to == view.viewport.to)\n return visible;\n let result = [];\n for (let { from, to } of visible) {\n from = Math.max(view.state.doc.lineAt(from).from, from - maxLength);\n to = Math.min(view.state.doc.lineAt(to).to, to + maxLength);\n if (result.length && result[result.length - 1].to >= from)\n result[result.length - 1].to = to;\n else\n result.push({ from, to });\n }\n return result;\n}\n/**\nHelper class used to make it easier to maintain decorations on\nvisible code that matches a given regular expression. To be used\nin a [view plugin](https://codemirror.net/6/docs/ref/#view.ViewPlugin). Instances of this object\nrepresent a matching configuration.\n*/\nclass MatchDecorator {\n /**\n Create a decorator.\n */\n constructor(config) {\n const { regexp, decoration, decorate, boundary, maxLength = 1000 } = config;\n if (!regexp.global)\n throw new RangeError(\"The regular expression given to MatchDecorator should have its 'g' flag set\");\n this.regexp = regexp;\n if (decorate) {\n this.addMatch = (match, view, from, add) => decorate(add, from, from + match[0].length, match, view);\n }\n else if (typeof decoration == \"function\") {\n this.addMatch = (match, view, from, add) => {\n let deco = decoration(match, view, from);\n if (deco)\n add(from, from + match[0].length, deco);\n };\n }\n else if (decoration) {\n this.addMatch = (match, _view, from, add) => add(from, from + match[0].length, decoration);\n }\n else {\n throw new RangeError(\"Either 'decorate' or 'decoration' should be provided to MatchDecorator\");\n }\n this.boundary = boundary;\n this.maxLength = maxLength;\n }\n /**\n Compute the full set of decorations for matches in the given\n view's viewport. You'll want to call this when initializing your\n plugin.\n */\n createDeco(view) {\n let build = new RangeSetBuilder(), add = build.add.bind(build);\n for (let { from, to } of matchRanges(view, this.maxLength))\n iterMatches(view.state.doc, this.regexp, from, to, (from, m) => this.addMatch(m, view, from, add));\n return build.finish();\n }\n /**\n Update a set of decorations for a view update. `deco` _must_ be\n the set of decorations produced by _this_ `MatchDecorator` for\n the view state before the update.\n */\n updateDeco(update, deco) {\n let changeFrom = 1e9, changeTo = -1;\n if (update.docChanged)\n update.changes.iterChanges((_f, _t, from, to) => {\n if (to > update.view.viewport.from && from < update.view.viewport.to) {\n changeFrom = Math.min(from, changeFrom);\n changeTo = Math.max(to, changeTo);\n }\n });\n if (update.viewportChanged || changeTo - changeFrom > 1000)\n return this.createDeco(update.view);\n if (changeTo > -1)\n return this.updateRange(update.view, deco.map(update.changes), changeFrom, changeTo);\n return deco;\n }\n updateRange(view, deco, updateFrom, updateTo) {\n for (let r of view.visibleRanges) {\n let from = Math.max(r.from, updateFrom), to = Math.min(r.to, updateTo);\n if (to > from) {\n let fromLine = view.state.doc.lineAt(from), toLine = fromLine.to < to ? view.state.doc.lineAt(to) : fromLine;\n let start = Math.max(r.from, fromLine.from), end = Math.min(r.to, toLine.to);\n if (this.boundary) {\n for (; from > fromLine.from; from--)\n if (this.boundary.test(fromLine.text[from - 1 - fromLine.from])) {\n start = from;\n break;\n }\n for (; to < toLine.to; to++)\n if (this.boundary.test(toLine.text[to - toLine.from])) {\n end = to;\n break;\n }\n }\n let ranges = [], m;\n let add = (from, to, deco) => ranges.push(deco.range(from, to));\n if (fromLine == toLine) {\n this.regexp.lastIndex = start - fromLine.from;\n while ((m = this.regexp.exec(fromLine.text)) && m.index < end - fromLine.from)\n this.addMatch(m, view, m.index + fromLine.from, add);\n }\n else {\n iterMatches(view.state.doc, this.regexp, start, end, (from, m) => this.addMatch(m, view, from, add));\n }\n deco = deco.update({ filterFrom: start, filterTo: end, filter: (from, to) => from < start || to > end, add: ranges });\n }\n }\n return deco;\n }\n}\n\nconst UnicodeRegexpSupport = /x/.unicode != null ? \"gu\" : \"g\";\nconst Specials = /*@__PURE__*/new RegExp(\"[\\u0000-\\u0008\\u000a-\\u001f\\u007f-\\u009f\\u00ad\\u061c\\u200b\\u200e\\u200f\\u2028\\u2029\\u202d\\u202e\\u2066\\u2067\\u2069\\ufeff\\ufff9-\\ufffc]\", UnicodeRegexpSupport);\nconst Names = {\n 0: \"null\",\n 7: \"bell\",\n 8: \"backspace\",\n 10: \"newline\",\n 11: \"vertical tab\",\n 13: \"carriage return\",\n 27: \"escape\",\n 8203: \"zero width space\",\n 8204: \"zero width non-joiner\",\n 8205: \"zero width joiner\",\n 8206: \"left-to-right mark\",\n 8207: \"right-to-left mark\",\n 8232: \"line separator\",\n 8237: \"left-to-right override\",\n 8238: \"right-to-left override\",\n 8294: \"left-to-right isolate\",\n 8295: \"right-to-left isolate\",\n 8297: \"pop directional isolate\",\n 8233: \"paragraph separator\",\n 65279: \"zero width no-break space\",\n 65532: \"object replacement\"\n};\nlet _supportsTabSize = null;\nfunction supportsTabSize() {\n var _a;\n if (_supportsTabSize == null && typeof document != \"undefined\" && document.body) {\n let styles = document.body.style;\n _supportsTabSize = ((_a = styles.tabSize) !== null && _a !== void 0 ? _a : styles.MozTabSize) != null;\n }\n return _supportsTabSize || false;\n}\nconst specialCharConfig = /*@__PURE__*/Facet.define({\n combine(configs) {\n let config = combineConfig(configs, {\n render: null,\n specialChars: Specials,\n addSpecialChars: null\n });\n if (config.replaceTabs = !supportsTabSize())\n config.specialChars = new RegExp(\"\\t|\" + config.specialChars.source, UnicodeRegexpSupport);\n if (config.addSpecialChars)\n config.specialChars = new RegExp(config.specialChars.source + \"|\" + config.addSpecialChars.source, UnicodeRegexpSupport);\n return config;\n }\n});\n/**\nReturns an extension that installs highlighting of special\ncharacters.\n*/\nfunction highlightSpecialChars(\n/**\nConfiguration options.\n*/\nconfig = {}) {\n return [specialCharConfig.of(config), specialCharPlugin()];\n}\nlet _plugin = null;\nfunction specialCharPlugin() {\n return _plugin || (_plugin = ViewPlugin.fromClass(class {\n constructor(view) {\n this.view = view;\n this.decorations = Decoration.none;\n this.decorationCache = Object.create(null);\n this.decorator = this.makeDecorator(view.state.facet(specialCharConfig));\n this.decorations = this.decorator.createDeco(view);\n }\n makeDecorator(conf) {\n return new MatchDecorator({\n regexp: conf.specialChars,\n decoration: (m, view, pos) => {\n let { doc } = view.state;\n let code = codePointAt(m[0], 0);\n if (code == 9) {\n let line = doc.lineAt(pos);\n let size = view.state.tabSize, col = countColumn(line.text, size, pos - line.from);\n return Decoration.replace({\n widget: new TabWidget((size - (col % size)) * this.view.defaultCharacterWidth / this.view.scaleX)\n });\n }\n return this.decorationCache[code] ||\n (this.decorationCache[code] = Decoration.replace({ widget: new SpecialCharWidget(conf, code) }));\n },\n boundary: conf.replaceTabs ? undefined : /[^]/\n });\n }\n update(update) {\n let conf = update.state.facet(specialCharConfig);\n if (update.startState.facet(specialCharConfig) != conf) {\n this.decorator = this.makeDecorator(conf);\n this.decorations = this.decorator.createDeco(update.view);\n }\n else {\n this.decorations = this.decorator.updateDeco(update, this.decorations);\n }\n }\n }, {\n decorations: v => v.decorations\n }));\n}\nconst DefaultPlaceholder = \"\\u2022\";\n// Assigns placeholder characters from the Control Pictures block to\n// ASCII control characters\nfunction placeholder$1(code) {\n if (code >= 32)\n return DefaultPlaceholder;\n if (code == 10)\n return \"\\u2424\";\n return String.fromCharCode(9216 + code);\n}\nclass SpecialCharWidget extends WidgetType {\n constructor(options, code) {\n super();\n this.options = options;\n this.code = code;\n }\n eq(other) { return other.code == this.code; }\n toDOM(view) {\n let ph = placeholder$1(this.code);\n let desc = view.state.phrase(\"Control character\") + \" \" + (Names[this.code] || \"0x\" + this.code.toString(16));\n let custom = this.options.render && this.options.render(this.code, desc, ph);\n if (custom)\n return custom;\n let span = document.createElement(\"span\");\n span.textContent = ph;\n span.title = desc;\n span.setAttribute(\"aria-label\", desc);\n span.className = \"cm-specialChar\";\n return span;\n }\n ignoreEvent() { return false; }\n}\nclass TabWidget extends WidgetType {\n constructor(width) {\n super();\n this.width = width;\n }\n eq(other) { return other.width == this.width; }\n toDOM() {\n let span = document.createElement(\"span\");\n span.textContent = \"\\t\";\n span.className = \"cm-tab\";\n span.style.width = this.width + \"px\";\n return span;\n }\n ignoreEvent() { return false; }\n}\n\nconst plugin = /*@__PURE__*/ViewPlugin.fromClass(class {\n constructor() {\n this.height = 1000;\n this.attrs = { style: \"padding-bottom: 1000px\" };\n }\n update(update) {\n let { view } = update;\n let height = view.viewState.editorHeight -\n view.defaultLineHeight - view.documentPadding.top - 0.5;\n if (height >= 0 && height != this.height) {\n this.height = height;\n this.attrs = { style: `padding-bottom: ${height}px` };\n }\n }\n});\n/**\nReturns an extension that makes sure the content has a bottom\nmargin equivalent to the height of the editor, minus one line\nheight, so that every line in the document can be scrolled to the\ntop of the editor.\n\nThis is only meaningful when the editor is scrollable, and should\nnot be enabled in editors that take the size of their content.\n*/\nfunction scrollPastEnd() {\n return [plugin, contentAttributes.of(view => { var _a; return ((_a = view.plugin(plugin)) === null || _a === void 0 ? void 0 : _a.attrs) || null; })];\n}\n\n/**\nMark lines that have a cursor on them with the `\"cm-activeLine\"`\nDOM class.\n*/\nfunction highlightActiveLine() {\n return activeLineHighlighter;\n}\nconst lineDeco = /*@__PURE__*/Decoration.line({ class: \"cm-activeLine\" });\nconst activeLineHighlighter = /*@__PURE__*/ViewPlugin.fromClass(class {\n constructor(view) {\n this.decorations = this.getDeco(view);\n }\n update(update) {\n if (update.docChanged || update.selectionSet)\n this.decorations = this.getDeco(update.view);\n }\n getDeco(view) {\n let lastLineStart = -1, deco = [];\n for (let r of view.state.selection.ranges) {\n let line = view.lineBlockAt(r.head);\n if (line.from > lastLineStart) {\n deco.push(lineDeco.range(line.from));\n lastLineStart = line.from;\n }\n }\n return Decoration.set(deco);\n }\n}, {\n decorations: v => v.decorations\n});\n\nclass Placeholder extends WidgetType {\n constructor(content) {\n super();\n this.content = content;\n }\n toDOM() {\n let wrap = document.createElement(\"span\");\n wrap.className = \"cm-placeholder\";\n wrap.style.pointerEvents = \"none\";\n wrap.appendChild(typeof this.content == \"string\" ? document.createTextNode(this.content) : this.content);\n if (typeof this.content == \"string\")\n wrap.setAttribute(\"aria-label\", \"placeholder \" + this.content);\n else\n wrap.setAttribute(\"aria-hidden\", \"true\");\n return wrap;\n }\n coordsAt(dom) {\n let rects = dom.firstChild ? clientRectsFor(dom.firstChild) : [];\n if (!rects.length)\n return null;\n let style = window.getComputedStyle(dom.parentNode);\n let rect = flattenRect(rects[0], style.direction != \"rtl\");\n let lineHeight = parseInt(style.lineHeight);\n if (rect.bottom - rect.top > lineHeight * 1.5)\n return { left: rect.left, right: rect.right, top: rect.top, bottom: rect.top + lineHeight };\n return rect;\n }\n ignoreEvent() { return false; }\n}\n/**\nExtension that enables a placeholder—a piece of example content\nto show when the editor is empty.\n*/\nfunction placeholder(content) {\n return ViewPlugin.fromClass(class {\n constructor(view) {\n this.view = view;\n this.placeholder = content\n ? Decoration.set([Decoration.widget({ widget: new Placeholder(content), side: 1 }).range(0)])\n : Decoration.none;\n }\n get decorations() { return this.view.state.doc.length ? Decoration.none : this.placeholder; }\n }, { decorations: v => v.decorations });\n}\n\n// Don't compute precise column positions for line offsets above this\n// (since it could get expensive). Assume offset==column for them.\nconst MaxOff = 2000;\nfunction rectangleFor(state, a, b) {\n let startLine = Math.min(a.line, b.line), endLine = Math.max(a.line, b.line);\n let ranges = [];\n if (a.off > MaxOff || b.off > MaxOff || a.col < 0 || b.col < 0) {\n let startOff = Math.min(a.off, b.off), endOff = Math.max(a.off, b.off);\n for (let i = startLine; i <= endLine; i++) {\n let line = state.doc.line(i);\n if (line.length <= endOff)\n ranges.push(EditorSelection.range(line.from + startOff, line.to + endOff));\n }\n }\n else {\n let startCol = Math.min(a.col, b.col), endCol = Math.max(a.col, b.col);\n for (let i = startLine; i <= endLine; i++) {\n let line = state.doc.line(i);\n let start = findColumn(line.text, startCol, state.tabSize, true);\n if (start < 0) {\n ranges.push(EditorSelection.cursor(line.to));\n }\n else {\n let end = findColumn(line.text, endCol, state.tabSize);\n ranges.push(EditorSelection.range(line.from + start, line.from + end));\n }\n }\n }\n return ranges;\n}\nfunction absoluteColumn(view, x) {\n let ref = view.coordsAtPos(view.viewport.from);\n return ref ? Math.round(Math.abs((ref.left - x) / view.defaultCharacterWidth)) : -1;\n}\nfunction getPos(view, event) {\n let offset = view.posAtCoords({ x: event.clientX, y: event.clientY }, false);\n let line = view.state.doc.lineAt(offset), off = offset - line.from;\n let col = off > MaxOff ? -1\n : off == line.length ? absoluteColumn(view, event.clientX)\n : countColumn(line.text, view.state.tabSize, offset - line.from);\n return { line: line.number, col, off };\n}\nfunction rectangleSelectionStyle(view, event) {\n let start = getPos(view, event), startSel = view.state.selection;\n if (!start)\n return null;\n return {\n update(update) {\n if (update.docChanged) {\n let newStart = update.changes.mapPos(update.startState.doc.line(start.line).from);\n let newLine = update.state.doc.lineAt(newStart);\n start = { line: newLine.number, col: start.col, off: Math.min(start.off, newLine.length) };\n startSel = startSel.map(update.changes);\n }\n },\n get(event, _extend, multiple) {\n let cur = getPos(view, event);\n if (!cur)\n return startSel;\n let ranges = rectangleFor(view.state, start, cur);\n if (!ranges.length)\n return startSel;\n if (multiple)\n return EditorSelection.create(ranges.concat(startSel.ranges));\n else\n return EditorSelection.create(ranges);\n }\n };\n}\n/**\nCreate an extension that enables rectangular selections. By\ndefault, it will react to left mouse drag with the Alt key held\ndown. When such a selection occurs, the text within the rectangle\nthat was dragged over will be selected, as one selection\n[range](https://codemirror.net/6/docs/ref/#state.SelectionRange) per line.\n*/\nfunction rectangularSelection(options) {\n let filter = (options === null || options === void 0 ? void 0 : options.eventFilter) || (e => e.altKey && e.button == 0);\n return EditorView.mouseSelectionStyle.of((view, event) => filter(event) ? rectangleSelectionStyle(view, event) : null);\n}\nconst keys = {\n Alt: [18, e => !!e.altKey],\n Control: [17, e => !!e.ctrlKey],\n Shift: [16, e => !!e.shiftKey],\n Meta: [91, e => !!e.metaKey]\n};\nconst showCrosshair = { style: \"cursor: crosshair\" };\n/**\nReturns an extension that turns the pointer cursor into a\ncrosshair when a given modifier key, defaulting to Alt, is held\ndown. Can serve as a visual hint that rectangular selection is\ngoing to happen when paired with\n[`rectangularSelection`](https://codemirror.net/6/docs/ref/#view.rectangularSelection).\n*/\nfunction crosshairCursor(options = {}) {\n let [code, getter] = keys[options.key || \"Alt\"];\n let plugin = ViewPlugin.fromClass(class {\n constructor(view) {\n this.view = view;\n this.isDown = false;\n }\n set(isDown) {\n if (this.isDown != isDown) {\n this.isDown = isDown;\n this.view.update([]);\n }\n }\n }, {\n eventObservers: {\n keydown(e) {\n this.set(e.keyCode == code || getter(e));\n },\n keyup(e) {\n if (e.keyCode == code || !getter(e))\n this.set(false);\n },\n mousemove(e) {\n this.set(getter(e));\n }\n }\n });\n return [\n plugin,\n EditorView.contentAttributes.of(view => { var _a; return ((_a = view.plugin(plugin)) === null || _a === void 0 ? void 0 : _a.isDown) ? showCrosshair : null; })\n ];\n}\n\nconst Outside = \"-10000px\";\nclass TooltipViewManager {\n constructor(view, facet, createTooltipView, removeTooltipView) {\n this.facet = facet;\n this.createTooltipView = createTooltipView;\n this.removeTooltipView = removeTooltipView;\n this.input = view.state.facet(facet);\n this.tooltips = this.input.filter(t => t);\n let prev = null;\n this.tooltipViews = this.tooltips.map(t => prev = createTooltipView(t, prev));\n }\n update(update, above) {\n var _a;\n let input = update.state.facet(this.facet);\n let tooltips = input.filter(x => x);\n if (input === this.input) {\n for (let t of this.tooltipViews)\n if (t.update)\n t.update(update);\n return false;\n }\n let tooltipViews = [], newAbove = above ? [] : null;\n for (let i = 0; i < tooltips.length; i++) {\n let tip = tooltips[i], known = -1;\n if (!tip)\n continue;\n for (let i = 0; i < this.tooltips.length; i++) {\n let other = this.tooltips[i];\n if (other && other.create == tip.create)\n known = i;\n }\n if (known < 0) {\n tooltipViews[i] = this.createTooltipView(tip, i ? tooltipViews[i - 1] : null);\n if (newAbove)\n newAbove[i] = !!tip.above;\n }\n else {\n let tooltipView = tooltipViews[i] = this.tooltipViews[known];\n if (newAbove)\n newAbove[i] = above[known];\n if (tooltipView.update)\n tooltipView.update(update);\n }\n }\n for (let t of this.tooltipViews)\n if (tooltipViews.indexOf(t) < 0) {\n this.removeTooltipView(t);\n (_a = t.destroy) === null || _a === void 0 ? void 0 : _a.call(t);\n }\n if (above) {\n newAbove.forEach((val, i) => above[i] = val);\n above.length = newAbove.length;\n }\n this.input = input;\n this.tooltips = tooltips;\n this.tooltipViews = tooltipViews;\n return true;\n }\n}\n/**\nCreates an extension that configures tooltip behavior.\n*/\nfunction tooltips(config = {}) {\n return tooltipConfig.of(config);\n}\nfunction windowSpace(view) {\n let { win } = view;\n return { top: 0, left: 0, bottom: win.innerHeight, right: win.innerWidth };\n}\nconst tooltipConfig = /*@__PURE__*/Facet.define({\n combine: values => {\n var _a, _b, _c;\n return ({\n position: browser.ios ? \"absolute\" : ((_a = values.find(conf => conf.position)) === null || _a === void 0 ? void 0 : _a.position) || \"fixed\",\n parent: ((_b = values.find(conf => conf.parent)) === null || _b === void 0 ? void 0 : _b.parent) || null,\n tooltipSpace: ((_c = values.find(conf => conf.tooltipSpace)) === null || _c === void 0 ? void 0 : _c.tooltipSpace) || windowSpace,\n });\n }\n});\nconst knownHeight = /*@__PURE__*/new WeakMap();\nconst tooltipPlugin = /*@__PURE__*/ViewPlugin.fromClass(class {\n constructor(view) {\n this.view = view;\n this.above = [];\n this.inView = true;\n this.madeAbsolute = false;\n this.lastTransaction = 0;\n this.measureTimeout = -1;\n let config = view.state.facet(tooltipConfig);\n this.position = config.position;\n this.parent = config.parent;\n this.classes = view.themeClasses;\n this.createContainer();\n this.measureReq = { read: this.readMeasure.bind(this), write: this.writeMeasure.bind(this), key: this };\n this.resizeObserver = typeof ResizeObserver == \"function\" ? new ResizeObserver(() => this.measureSoon()) : null;\n this.manager = new TooltipViewManager(view, showTooltip, (t, p) => this.createTooltip(t, p), t => {\n if (this.resizeObserver)\n this.resizeObserver.unobserve(t.dom);\n t.dom.remove();\n });\n this.above = this.manager.tooltips.map(t => !!t.above);\n this.intersectionObserver = typeof IntersectionObserver == \"function\" ? new IntersectionObserver(entries => {\n if (Date.now() > this.lastTransaction - 50 &&\n entries.length > 0 && entries[entries.length - 1].intersectionRatio < 1)\n this.measureSoon();\n }, { threshold: [1] }) : null;\n this.observeIntersection();\n view.win.addEventListener(\"resize\", this.measureSoon = this.measureSoon.bind(this));\n this.maybeMeasure();\n }\n createContainer() {\n if (this.parent) {\n this.container = document.createElement(\"div\");\n this.container.style.position = \"relative\";\n this.container.className = this.view.themeClasses;\n this.parent.appendChild(this.container);\n }\n else {\n this.container = this.view.dom;\n }\n }\n observeIntersection() {\n if (this.intersectionObserver) {\n this.intersectionObserver.disconnect();\n for (let tooltip of this.manager.tooltipViews)\n this.intersectionObserver.observe(tooltip.dom);\n }\n }\n measureSoon() {\n if (this.measureTimeout < 0)\n this.measureTimeout = setTimeout(() => {\n this.measureTimeout = -1;\n this.maybeMeasure();\n }, 50);\n }\n update(update) {\n if (update.transactions.length)\n this.lastTransaction = Date.now();\n let updated = this.manager.update(update, this.above);\n if (updated)\n this.observeIntersection();\n let shouldMeasure = updated || update.geometryChanged;\n let newConfig = update.state.facet(tooltipConfig);\n if (newConfig.position != this.position && !this.madeAbsolute) {\n this.position = newConfig.position;\n for (let t of this.manager.tooltipViews)\n t.dom.style.position = this.position;\n shouldMeasure = true;\n }\n if (newConfig.parent != this.parent) {\n if (this.parent)\n this.container.remove();\n this.parent = newConfig.parent;\n this.createContainer();\n for (let t of this.manager.tooltipViews)\n this.container.appendChild(t.dom);\n shouldMeasure = true;\n }\n else if (this.parent && this.view.themeClasses != this.classes) {\n this.classes = this.container.className = this.view.themeClasses;\n }\n if (shouldMeasure)\n this.maybeMeasure();\n }\n createTooltip(tooltip, prev) {\n let tooltipView = tooltip.create(this.view);\n let before = prev ? prev.dom : null;\n tooltipView.dom.classList.add(\"cm-tooltip\");\n if (tooltip.arrow && !tooltipView.dom.querySelector(\".cm-tooltip > .cm-tooltip-arrow\")) {\n let arrow = document.createElement(\"div\");\n arrow.className = \"cm-tooltip-arrow\";\n tooltipView.dom.appendChild(arrow);\n }\n tooltipView.dom.style.position = this.position;\n tooltipView.dom.style.top = Outside;\n tooltipView.dom.style.left = \"0px\";\n this.container.insertBefore(tooltipView.dom, before);\n if (tooltipView.mount)\n tooltipView.mount(this.view);\n if (this.resizeObserver)\n this.resizeObserver.observe(tooltipView.dom);\n return tooltipView;\n }\n destroy() {\n var _a, _b, _c;\n this.view.win.removeEventListener(\"resize\", this.measureSoon);\n for (let tooltipView of this.manager.tooltipViews) {\n tooltipView.dom.remove();\n (_a = tooltipView.destroy) === null || _a === void 0 ? void 0 : _a.call(tooltipView);\n }\n if (this.parent)\n this.container.remove();\n (_b = this.resizeObserver) === null || _b === void 0 ? void 0 : _b.disconnect();\n (_c = this.intersectionObserver) === null || _c === void 0 ? void 0 : _c.disconnect();\n clearTimeout(this.measureTimeout);\n }\n readMeasure() {\n let editor = this.view.dom.getBoundingClientRect();\n let scaleX = 1, scaleY = 1, makeAbsolute = false;\n if (this.position == \"fixed\" && this.manager.tooltipViews.length) {\n let { dom } = this.manager.tooltipViews[0];\n if (browser.gecko) {\n // Firefox sets the element's `offsetParent` to the\n // transformed element when a transform interferes with fixed\n // positioning.\n makeAbsolute = dom.offsetParent != this.container.ownerDocument.body;\n }\n else if (dom.style.top == Outside && dom.style.left == \"0px\") {\n // On other browsers, we have to awkwardly try and use other\n // information to detect a transform.\n let rect = dom.getBoundingClientRect();\n makeAbsolute = Math.abs(rect.top + 10000) > 1 || Math.abs(rect.left) > 1;\n }\n }\n if (makeAbsolute || this.position == \"absolute\") {\n if (this.parent) {\n let rect = this.parent.getBoundingClientRect();\n if (rect.width && rect.height) {\n scaleX = rect.width / this.parent.offsetWidth;\n scaleY = rect.height / this.parent.offsetHeight;\n }\n }\n else {\n ({ scaleX, scaleY } = this.view.viewState);\n }\n }\n return {\n editor,\n parent: this.parent ? this.container.getBoundingClientRect() : editor,\n pos: this.manager.tooltips.map((t, i) => {\n let tv = this.manager.tooltipViews[i];\n return tv.getCoords ? tv.getCoords(t.pos) : this.view.coordsAtPos(t.pos);\n }),\n size: this.manager.tooltipViews.map(({ dom }) => dom.getBoundingClientRect()),\n space: this.view.state.facet(tooltipConfig).tooltipSpace(this.view),\n scaleX, scaleY, makeAbsolute\n };\n }\n writeMeasure(measured) {\n var _a;\n if (measured.makeAbsolute) {\n this.madeAbsolute = true;\n this.position = \"absolute\";\n for (let t of this.manager.tooltipViews)\n t.dom.style.position = \"absolute\";\n }\n let { editor, space, scaleX, scaleY } = measured;\n let others = [];\n for (let i = 0; i < this.manager.tooltips.length; i++) {\n let tooltip = this.manager.tooltips[i], tView = this.manager.tooltipViews[i], { dom } = tView;\n let pos = measured.pos[i], size = measured.size[i];\n // Hide tooltips that are outside of the editor.\n if (!pos || pos.bottom <= Math.max(editor.top, space.top) ||\n pos.top >= Math.min(editor.bottom, space.bottom) ||\n pos.right < Math.max(editor.left, space.left) - .1 ||\n pos.left > Math.min(editor.right, space.right) + .1) {\n dom.style.top = Outside;\n continue;\n }\n let arrow = tooltip.arrow ? tView.dom.querySelector(\".cm-tooltip-arrow\") : null;\n let arrowHeight = arrow ? 7 /* Arrow.Size */ : 0;\n let width = size.right - size.left, height = (_a = knownHeight.get(tView)) !== null && _a !== void 0 ? _a : size.bottom - size.top;\n let offset = tView.offset || noOffset, ltr = this.view.textDirection == Direction.LTR;\n let left = size.width > space.right - space.left ? (ltr ? space.left : space.right - size.width)\n : ltr ? Math.min(pos.left - (arrow ? 14 /* Arrow.Offset */ : 0) + offset.x, space.right - width)\n : Math.max(space.left, pos.left - width + (arrow ? 14 /* Arrow.Offset */ : 0) - offset.x);\n let above = this.above[i];\n if (!tooltip.strictSide && (above\n ? pos.top - (size.bottom - size.top) - offset.y < space.top\n : pos.bottom + (size.bottom - size.top) + offset.y > space.bottom) &&\n above == (space.bottom - pos.bottom > pos.top - space.top))\n above = this.above[i] = !above;\n let spaceVert = (above ? pos.top - space.top : space.bottom - pos.bottom) - arrowHeight;\n if (spaceVert < height && tView.resize !== false) {\n if (spaceVert < this.view.defaultLineHeight) {\n dom.style.top = Outside;\n continue;\n }\n knownHeight.set(tView, height);\n dom.style.height = (height = spaceVert) / scaleY + \"px\";\n }\n else if (dom.style.height) {\n dom.style.height = \"\";\n }\n let top = above ? pos.top - height - arrowHeight - offset.y : pos.bottom + arrowHeight + offset.y;\n let right = left + width;\n if (tView.overlap !== true)\n for (let r of others)\n if (r.left < right && r.right > left && r.top < top + height && r.bottom > top)\n top = above ? r.top - height - 2 - arrowHeight : r.bottom + arrowHeight + 2;\n if (this.position == \"absolute\") {\n dom.style.top = (top - measured.parent.top) / scaleY + \"px\";\n dom.style.left = (left - measured.parent.left) / scaleX + \"px\";\n }\n else {\n dom.style.top = top / scaleY + \"px\";\n dom.style.left = left / scaleX + \"px\";\n }\n if (arrow) {\n let arrowLeft = pos.left + (ltr ? offset.x : -offset.x) - (left + 14 /* Arrow.Offset */ - 7 /* Arrow.Size */);\n arrow.style.left = arrowLeft / scaleX + \"px\";\n }\n if (tView.overlap !== true)\n others.push({ left, top, right, bottom: top + height });\n dom.classList.toggle(\"cm-tooltip-above\", above);\n dom.classList.toggle(\"cm-tooltip-below\", !above);\n if (tView.positioned)\n tView.positioned(measured.space);\n }\n }\n maybeMeasure() {\n if (this.manager.tooltips.length) {\n if (this.view.inView)\n this.view.requestMeasure(this.measureReq);\n if (this.inView != this.view.inView) {\n this.inView = this.view.inView;\n if (!this.inView)\n for (let tv of this.manager.tooltipViews)\n tv.dom.style.top = Outside;\n }\n }\n }\n}, {\n eventObservers: {\n scroll() { this.maybeMeasure(); }\n }\n});\nconst baseTheme = /*@__PURE__*/EditorView.baseTheme({\n \".cm-tooltip\": {\n zIndex: 100,\n boxSizing: \"border-box\"\n },\n \"&light .cm-tooltip\": {\n border: \"1px solid #bbb\",\n backgroundColor: \"#f5f5f5\"\n },\n \"&light .cm-tooltip-section:not(:first-child)\": {\n borderTop: \"1px solid #bbb\",\n },\n \"&dark .cm-tooltip\": {\n backgroundColor: \"#333338\",\n color: \"white\"\n },\n \".cm-tooltip-arrow\": {\n height: `${7 /* Arrow.Size */}px`,\n width: `${7 /* Arrow.Size */ * 2}px`,\n position: \"absolute\",\n zIndex: -1,\n overflow: \"hidden\",\n \"&:before, &:after\": {\n content: \"''\",\n position: \"absolute\",\n width: 0,\n height: 0,\n borderLeft: `${7 /* Arrow.Size */}px solid transparent`,\n borderRight: `${7 /* Arrow.Size */}px solid transparent`,\n },\n \".cm-tooltip-above &\": {\n bottom: `-${7 /* Arrow.Size */}px`,\n \"&:before\": {\n borderTop: `${7 /* Arrow.Size */}px solid #bbb`,\n },\n \"&:after\": {\n borderTop: `${7 /* Arrow.Size */}px solid #f5f5f5`,\n bottom: \"1px\"\n }\n },\n \".cm-tooltip-below &\": {\n top: `-${7 /* Arrow.Size */}px`,\n \"&:before\": {\n borderBottom: `${7 /* Arrow.Size */}px solid #bbb`,\n },\n \"&:after\": {\n borderBottom: `${7 /* Arrow.Size */}px solid #f5f5f5`,\n top: \"1px\"\n }\n },\n },\n \"&dark .cm-tooltip .cm-tooltip-arrow\": {\n \"&:before\": {\n borderTopColor: \"#333338\",\n borderBottomColor: \"#333338\"\n },\n \"&:after\": {\n borderTopColor: \"transparent\",\n borderBottomColor: \"transparent\"\n }\n }\n});\nconst noOffset = { x: 0, y: 0 };\n/**\nFacet to which an extension can add a value to show a tooltip.\n*/\nconst showTooltip = /*@__PURE__*/Facet.define({\n enables: [tooltipPlugin, baseTheme]\n});\nconst showHoverTooltip = /*@__PURE__*/Facet.define({\n combine: inputs => inputs.reduce((a, i) => a.concat(i), [])\n});\nclass HoverTooltipHost {\n // Needs to be static so that host tooltip instances always match\n static create(view) {\n return new HoverTooltipHost(view);\n }\n constructor(view) {\n this.view = view;\n this.mounted = false;\n this.dom = document.createElement(\"div\");\n this.dom.classList.add(\"cm-tooltip-hover\");\n this.manager = new TooltipViewManager(view, showHoverTooltip, (t, p) => this.createHostedView(t, p), t => t.dom.remove());\n }\n createHostedView(tooltip, prev) {\n let hostedView = tooltip.create(this.view);\n hostedView.dom.classList.add(\"cm-tooltip-section\");\n this.dom.insertBefore(hostedView.dom, prev ? prev.dom.nextSibling : this.dom.firstChild);\n if (this.mounted && hostedView.mount)\n hostedView.mount(this.view);\n return hostedView;\n }\n mount(view) {\n for (let hostedView of this.manager.tooltipViews) {\n if (hostedView.mount)\n hostedView.mount(view);\n }\n this.mounted = true;\n }\n positioned(space) {\n for (let hostedView of this.manager.tooltipViews) {\n if (hostedView.positioned)\n hostedView.positioned(space);\n }\n }\n update(update) {\n this.manager.update(update);\n }\n destroy() {\n var _a;\n for (let t of this.manager.tooltipViews)\n (_a = t.destroy) === null || _a === void 0 ? void 0 : _a.call(t);\n }\n passProp(name) {\n let value = undefined;\n for (let view of this.manager.tooltipViews) {\n let given = view[name];\n if (given !== undefined) {\n if (value === undefined)\n value = given;\n else if (value !== given)\n return undefined;\n }\n }\n return value;\n }\n get offset() { return this.passProp(\"offset\"); }\n get getCoords() { return this.passProp(\"getCoords\"); }\n get overlap() { return this.passProp(\"overlap\"); }\n get resize() { return this.passProp(\"resize\"); }\n}\nconst showHoverTooltipHost = /*@__PURE__*/showTooltip.compute([showHoverTooltip], state => {\n let tooltips = state.facet(showHoverTooltip);\n if (tooltips.length === 0)\n return null;\n return {\n pos: Math.min(...tooltips.map(t => t.pos)),\n end: Math.max(...tooltips.map(t => { var _a; return (_a = t.end) !== null && _a !== void 0 ? _a : t.pos; })),\n create: HoverTooltipHost.create,\n above: tooltips[0].above,\n arrow: tooltips.some(t => t.arrow),\n };\n});\nclass HoverPlugin {\n constructor(view, source, field, setHover, hoverTime) {\n this.view = view;\n this.source = source;\n this.field = field;\n this.setHover = setHover;\n this.hoverTime = hoverTime;\n this.hoverTimeout = -1;\n this.restartTimeout = -1;\n this.pending = null;\n this.lastMove = { x: 0, y: 0, target: view.dom, time: 0 };\n this.checkHover = this.checkHover.bind(this);\n view.dom.addEventListener(\"mouseleave\", this.mouseleave = this.mouseleave.bind(this));\n view.dom.addEventListener(\"mousemove\", this.mousemove = this.mousemove.bind(this));\n }\n update() {\n if (this.pending) {\n this.pending = null;\n clearTimeout(this.restartTimeout);\n this.restartTimeout = setTimeout(() => this.startHover(), 20);\n }\n }\n get active() {\n return this.view.state.field(this.field);\n }\n checkHover() {\n this.hoverTimeout = -1;\n if (this.active.length)\n return;\n let hovered = Date.now() - this.lastMove.time;\n if (hovered < this.hoverTime)\n this.hoverTimeout = setTimeout(this.checkHover, this.hoverTime - hovered);\n else\n this.startHover();\n }\n startHover() {\n clearTimeout(this.restartTimeout);\n let { view, lastMove } = this;\n let desc = view.docView.nearest(lastMove.target);\n if (!desc)\n return;\n let pos, side = 1;\n if (desc instanceof WidgetView) {\n pos = desc.posAtStart;\n }\n else {\n pos = view.posAtCoords(lastMove);\n if (pos == null)\n return;\n let posCoords = view.coordsAtPos(pos);\n if (!posCoords ||\n lastMove.y < posCoords.top || lastMove.y > posCoords.bottom ||\n lastMove.x < posCoords.left - view.defaultCharacterWidth ||\n lastMove.x > posCoords.right + view.defaultCharacterWidth)\n return;\n let bidi = view.bidiSpans(view.state.doc.lineAt(pos)).find(s => s.from <= pos && s.to >= pos);\n let rtl = bidi && bidi.dir == Direction.RTL ? -1 : 1;\n side = (lastMove.x < posCoords.left ? -rtl : rtl);\n }\n let open = this.source(view, pos, side);\n if (open === null || open === void 0 ? void 0 : open.then) {\n let pending = this.pending = { pos };\n open.then(result => {\n if (this.pending == pending) {\n this.pending = null;\n if (result && !(Array.isArray(result) && !result.length))\n view.dispatch({ effects: this.setHover.of(Array.isArray(result) ? result : [result]) });\n }\n }, e => logException(view.state, e, \"hover tooltip\"));\n }\n else if (open && !(Array.isArray(open) && !open.length)) {\n view.dispatch({ effects: this.setHover.of(Array.isArray(open) ? open : [open]) });\n }\n }\n get tooltip() {\n let plugin = this.view.plugin(tooltipPlugin);\n let index = plugin ? plugin.manager.tooltips.findIndex(t => t.create == HoverTooltipHost.create) : -1;\n return index > -1 ? plugin.manager.tooltipViews[index] : null;\n }\n mousemove(event) {\n var _a, _b;\n this.lastMove = { x: event.clientX, y: event.clientY, target: event.target, time: Date.now() };\n if (this.hoverTimeout < 0)\n this.hoverTimeout = setTimeout(this.checkHover, this.hoverTime);\n let { active, tooltip } = this;\n if (active.length && tooltip && !isInTooltip(tooltip.dom, event) || this.pending) {\n let { pos } = active[0] || this.pending, end = (_b = (_a = active[0]) === null || _a === void 0 ? void 0 : _a.end) !== null && _b !== void 0 ? _b : pos;\n if ((pos == end ? this.view.posAtCoords(this.lastMove) != pos\n : !isOverRange(this.view, pos, end, event.clientX, event.clientY))) {\n this.view.dispatch({ effects: this.setHover.of([]) });\n this.pending = null;\n }\n }\n }\n mouseleave(event) {\n clearTimeout(this.hoverTimeout);\n this.hoverTimeout = -1;\n let { active } = this;\n if (active.length) {\n let { tooltip } = this;\n let inTooltip = tooltip && tooltip.dom.contains(event.relatedTarget);\n if (!inTooltip)\n this.view.dispatch({ effects: this.setHover.of([]) });\n else\n this.watchTooltipLeave(tooltip.dom);\n }\n }\n watchTooltipLeave(tooltip) {\n let watch = (event) => {\n tooltip.removeEventListener(\"mouseleave\", watch);\n if (this.active.length && !this.view.dom.contains(event.relatedTarget))\n this.view.dispatch({ effects: this.setHover.of([]) });\n };\n tooltip.addEventListener(\"mouseleave\", watch);\n }\n destroy() {\n clearTimeout(this.hoverTimeout);\n this.view.dom.removeEventListener(\"mouseleave\", this.mouseleave);\n this.view.dom.removeEventListener(\"mousemove\", this.mousemove);\n }\n}\nconst tooltipMargin = 4;\nfunction isInTooltip(tooltip, event) {\n let rect = tooltip.getBoundingClientRect();\n return event.clientX >= rect.left - tooltipMargin && event.clientX <= rect.right + tooltipMargin &&\n event.clientY >= rect.top - tooltipMargin && event.clientY <= rect.bottom + tooltipMargin;\n}\nfunction isOverRange(view, from, to, x, y, margin) {\n let rect = view.scrollDOM.getBoundingClientRect();\n let docBottom = view.documentTop + view.documentPadding.top + view.contentHeight;\n if (rect.left > x || rect.right < x || rect.top > y || Math.min(rect.bottom, docBottom) < y)\n return false;\n let pos = view.posAtCoords({ x, y }, false);\n return pos >= from && pos <= to;\n}\n/**\nSet up a hover tooltip, which shows up when the pointer hovers\nover ranges of text. The callback is called when the mouse hovers\nover the document text. It should, if there is a tooltip\nassociated with position `pos`, return the tooltip description\n(either directly or in a promise). The `side` argument indicates\non which side of the position the pointer is—it will be -1 if the\npointer is before the position, 1 if after the position.\n\nNote that all hover tooltips are hosted within a single tooltip\ncontainer element. This allows multiple tooltips over the same\nrange to be \"merged\" together without overlapping.\n*/\nfunction hoverTooltip(source, options = {}) {\n let setHover = StateEffect.define();\n let hoverState = StateField.define({\n create() { return []; },\n update(value, tr) {\n if (value.length) {\n if (options.hideOnChange && (tr.docChanged || tr.selection))\n value = [];\n else if (options.hideOn)\n value = value.filter(v => !options.hideOn(tr, v));\n if (tr.docChanged) {\n let mapped = [];\n for (let tooltip of value) {\n let newPos = tr.changes.mapPos(tooltip.pos, -1, MapMode.TrackDel);\n if (newPos != null) {\n let copy = Object.assign(Object.create(null), tooltip);\n copy.pos = newPos;\n if (copy.end != null)\n copy.end = tr.changes.mapPos(copy.end);\n mapped.push(copy);\n }\n }\n value = mapped;\n }\n }\n for (let effect of tr.effects) {\n if (effect.is(setHover))\n value = effect.value;\n if (effect.is(closeHoverTooltipEffect))\n value = [];\n }\n return value;\n },\n provide: f => showHoverTooltip.from(f)\n });\n return [\n hoverState,\n ViewPlugin.define(view => new HoverPlugin(view, source, hoverState, setHover, options.hoverTime || 300 /* Hover.Time */)),\n showHoverTooltipHost\n ];\n}\n/**\nGet the active tooltip view for a given tooltip, if available.\n*/\nfunction getTooltip(view, tooltip) {\n let plugin = view.plugin(tooltipPlugin);\n if (!plugin)\n return null;\n let found = plugin.manager.tooltips.indexOf(tooltip);\n return found < 0 ? null : plugin.manager.tooltipViews[found];\n}\n/**\nReturns true if any hover tooltips are currently active.\n*/\nfunction hasHoverTooltips(state) {\n return state.facet(showHoverTooltip).some(x => x);\n}\nconst closeHoverTooltipEffect = /*@__PURE__*/StateEffect.define();\n/**\nTransaction effect that closes all hover tooltips.\n*/\nconst closeHoverTooltips = /*@__PURE__*/closeHoverTooltipEffect.of(null);\n/**\nTell the tooltip extension to recompute the position of the active\ntooltips. This can be useful when something happens (such as a\nre-positioning or CSS change affecting the editor) that could\ninvalidate the existing tooltip positions.\n*/\nfunction repositionTooltips(view) {\n let plugin = view.plugin(tooltipPlugin);\n if (plugin)\n plugin.maybeMeasure();\n}\n\nconst panelConfig = /*@__PURE__*/Facet.define({\n combine(configs) {\n let topContainer, bottomContainer;\n for (let c of configs) {\n topContainer = topContainer || c.topContainer;\n bottomContainer = bottomContainer || c.bottomContainer;\n }\n return { topContainer, bottomContainer };\n }\n});\n/**\nConfigures the panel-managing extension.\n*/\nfunction panels(config) {\n return config ? [panelConfig.of(config)] : [];\n}\n/**\nGet the active panel created by the given constructor, if any.\nThis can be useful when you need access to your panels' DOM\nstructure.\n*/\nfunction getPanel(view, panel) {\n let plugin = view.plugin(panelPlugin);\n let index = plugin ? plugin.specs.indexOf(panel) : -1;\n return index > -1 ? plugin.panels[index] : null;\n}\nconst panelPlugin = /*@__PURE__*/ViewPlugin.fromClass(class {\n constructor(view) {\n this.input = view.state.facet(showPanel);\n this.specs = this.input.filter(s => s);\n this.panels = this.specs.map(spec => spec(view));\n let conf = view.state.facet(panelConfig);\n this.top = new PanelGroup(view, true, conf.topContainer);\n this.bottom = new PanelGroup(view, false, conf.bottomContainer);\n this.top.sync(this.panels.filter(p => p.top));\n this.bottom.sync(this.panels.filter(p => !p.top));\n for (let p of this.panels) {\n p.dom.classList.add(\"cm-panel\");\n if (p.mount)\n p.mount();\n }\n }\n update(update) {\n let conf = update.state.facet(panelConfig);\n if (this.top.container != conf.topContainer) {\n this.top.sync([]);\n this.top = new PanelGroup(update.view, true, conf.topContainer);\n }\n if (this.bottom.container != conf.bottomContainer) {\n this.bottom.sync([]);\n this.bottom = new PanelGroup(update.view, false, conf.bottomContainer);\n }\n this.top.syncClasses();\n this.bottom.syncClasses();\n let input = update.state.facet(showPanel);\n if (input != this.input) {\n let specs = input.filter(x => x);\n let panels = [], top = [], bottom = [], mount = [];\n for (let spec of specs) {\n let known = this.specs.indexOf(spec), panel;\n if (known < 0) {\n panel = spec(update.view);\n mount.push(panel);\n }\n else {\n panel = this.panels[known];\n if (panel.update)\n panel.update(update);\n }\n panels.push(panel);\n (panel.top ? top : bottom).push(panel);\n }\n this.specs = specs;\n this.panels = panels;\n this.top.sync(top);\n this.bottom.sync(bottom);\n for (let p of mount) {\n p.dom.classList.add(\"cm-panel\");\n if (p.mount)\n p.mount();\n }\n }\n else {\n for (let p of this.panels)\n if (p.update)\n p.update(update);\n }\n }\n destroy() {\n this.top.sync([]);\n this.bottom.sync([]);\n }\n}, {\n provide: plugin => EditorView.scrollMargins.of(view => {\n let value = view.plugin(plugin);\n return value && { top: value.top.scrollMargin(), bottom: value.bottom.scrollMargin() };\n })\n});\nclass PanelGroup {\n constructor(view, top, container) {\n this.view = view;\n this.top = top;\n this.container = container;\n this.dom = undefined;\n this.classes = \"\";\n this.panels = [];\n this.syncClasses();\n }\n sync(panels) {\n for (let p of this.panels)\n if (p.destroy && panels.indexOf(p) < 0)\n p.destroy();\n this.panels = panels;\n this.syncDOM();\n }\n syncDOM() {\n if (this.panels.length == 0) {\n if (this.dom) {\n this.dom.remove();\n this.dom = undefined;\n }\n return;\n }\n if (!this.dom) {\n this.dom = document.createElement(\"div\");\n this.dom.className = this.top ? \"cm-panels cm-panels-top\" : \"cm-panels cm-panels-bottom\";\n this.dom.style[this.top ? \"top\" : \"bottom\"] = \"0\";\n let parent = this.container || this.view.dom;\n parent.insertBefore(this.dom, this.top ? parent.firstChild : null);\n }\n let curDOM = this.dom.firstChild;\n for (let panel of this.panels) {\n if (panel.dom.parentNode == this.dom) {\n while (curDOM != panel.dom)\n curDOM = rm(curDOM);\n curDOM = curDOM.nextSibling;\n }\n else {\n this.dom.insertBefore(panel.dom, curDOM);\n }\n }\n while (curDOM)\n curDOM = rm(curDOM);\n }\n scrollMargin() {\n return !this.dom || this.container ? 0\n : Math.max(0, this.top ?\n this.dom.getBoundingClientRect().bottom - Math.max(0, this.view.scrollDOM.getBoundingClientRect().top) :\n Math.min(innerHeight, this.view.scrollDOM.getBoundingClientRect().bottom) - this.dom.getBoundingClientRect().top);\n }\n syncClasses() {\n if (!this.container || this.classes == this.view.themeClasses)\n return;\n for (let cls of this.classes.split(\" \"))\n if (cls)\n this.container.classList.remove(cls);\n for (let cls of (this.classes = this.view.themeClasses).split(\" \"))\n if (cls)\n this.container.classList.add(cls);\n }\n}\nfunction rm(node) {\n let next = node.nextSibling;\n node.remove();\n return next;\n}\n/**\nOpening a panel is done by providing a constructor function for\nthe panel through this facet. (The panel is closed again when its\nconstructor is no longer provided.) Values of `null` are ignored.\n*/\nconst showPanel = /*@__PURE__*/Facet.define({\n enables: panelPlugin\n});\n\n/**\nA gutter marker represents a bit of information attached to a line\nin a specific gutter. Your own custom markers have to extend this\nclass.\n*/\nclass GutterMarker extends RangeValue {\n /**\n @internal\n */\n compare(other) {\n return this == other || this.constructor == other.constructor && this.eq(other);\n }\n /**\n Compare this marker to another marker of the same type.\n */\n eq(other) { return false; }\n /**\n Called if the marker has a `toDOM` method and its representation\n was removed from a gutter.\n */\n destroy(dom) { }\n}\nGutterMarker.prototype.elementClass = \"\";\nGutterMarker.prototype.toDOM = undefined;\nGutterMarker.prototype.mapMode = MapMode.TrackBefore;\nGutterMarker.prototype.startSide = GutterMarker.prototype.endSide = -1;\nGutterMarker.prototype.point = true;\n/**\nFacet used to add a class to all gutter elements for a given line.\nMarkers given to this facet should _only_ define an\n[`elementclass`](https://codemirror.net/6/docs/ref/#view.GutterMarker.elementClass), not a\n[`toDOM`](https://codemirror.net/6/docs/ref/#view.GutterMarker.toDOM) (or the marker will appear\nin all gutters for the line).\n*/\nconst gutterLineClass = /*@__PURE__*/Facet.define();\nconst defaults = {\n class: \"\",\n renderEmptyElements: false,\n elementStyle: \"\",\n markers: () => RangeSet.empty,\n lineMarker: () => null,\n widgetMarker: () => null,\n lineMarkerChange: null,\n initialSpacer: null,\n updateSpacer: null,\n domEventHandlers: {}\n};\nconst activeGutters = /*@__PURE__*/Facet.define();\n/**\nDefine an editor gutter. The order in which the gutters appear is\ndetermined by their extension priority.\n*/\nfunction gutter(config) {\n return [gutters(), activeGutters.of(Object.assign(Object.assign({}, defaults), config))];\n}\nconst unfixGutters = /*@__PURE__*/Facet.define({\n combine: values => values.some(x => x)\n});\n/**\nThe gutter-drawing plugin is automatically enabled when you add a\ngutter, but you can use this function to explicitly configure it.\n\nUnless `fixed` is explicitly set to `false`, the gutters are\nfixed, meaning they don't scroll along with the content\nhorizontally (except on Internet Explorer, which doesn't support\nCSS [`position:\nsticky`](https://developer.mozilla.org/en-US/docs/Web/CSS/position#sticky)).\n*/\nfunction gutters(config) {\n let result = [\n gutterView,\n ];\n if (config && config.fixed === false)\n result.push(unfixGutters.of(true));\n return result;\n}\nconst gutterView = /*@__PURE__*/ViewPlugin.fromClass(class {\n constructor(view) {\n this.view = view;\n this.prevViewport = view.viewport;\n this.dom = document.createElement(\"div\");\n this.dom.className = \"cm-gutters\";\n this.dom.setAttribute(\"aria-hidden\", \"true\");\n this.dom.style.minHeight = (this.view.contentHeight / this.view.scaleY) + \"px\";\n this.gutters = view.state.facet(activeGutters).map(conf => new SingleGutterView(view, conf));\n for (let gutter of this.gutters)\n this.dom.appendChild(gutter.dom);\n this.fixed = !view.state.facet(unfixGutters);\n if (this.fixed) {\n // FIXME IE11 fallback, which doesn't support position: sticky,\n // by using position: relative + event handlers that realign the\n // gutter (or just force fixed=false on IE11?)\n this.dom.style.position = \"sticky\";\n }\n this.syncGutters(false);\n view.scrollDOM.insertBefore(this.dom, view.contentDOM);\n }\n update(update) {\n if (this.updateGutters(update)) {\n // Detach during sync when the viewport changed significantly\n // (such as during scrolling), since for large updates that is\n // faster.\n let vpA = this.prevViewport, vpB = update.view.viewport;\n let vpOverlap = Math.min(vpA.to, vpB.to) - Math.max(vpA.from, vpB.from);\n this.syncGutters(vpOverlap < (vpB.to - vpB.from) * 0.8);\n }\n if (update.geometryChanged) {\n this.dom.style.minHeight = (this.view.contentHeight / this.view.scaleY) + \"px\";\n }\n if (this.view.state.facet(unfixGutters) != !this.fixed) {\n this.fixed = !this.fixed;\n this.dom.style.position = this.fixed ? \"sticky\" : \"\";\n }\n this.prevViewport = update.view.viewport;\n }\n syncGutters(detach) {\n let after = this.dom.nextSibling;\n if (detach)\n this.dom.remove();\n let lineClasses = RangeSet.iter(this.view.state.facet(gutterLineClass), this.view.viewport.from);\n let classSet = [];\n let contexts = this.gutters.map(gutter => new UpdateContext(gutter, this.view.viewport, -this.view.documentPadding.top));\n for (let line of this.view.viewportLineBlocks) {\n if (classSet.length)\n classSet = [];\n if (Array.isArray(line.type)) {\n let first = true;\n for (let b of line.type) {\n if (b.type == BlockType.Text && first) {\n advanceCursor(lineClasses, classSet, b.from);\n for (let cx of contexts)\n cx.line(this.view, b, classSet);\n first = false;\n }\n else if (b.widget) {\n for (let cx of contexts)\n cx.widget(this.view, b);\n }\n }\n }\n else if (line.type == BlockType.Text) {\n advanceCursor(lineClasses, classSet, line.from);\n for (let cx of contexts)\n cx.line(this.view, line, classSet);\n }\n else if (line.widget) {\n for (let cx of contexts)\n cx.widget(this.view, line);\n }\n }\n for (let cx of contexts)\n cx.finish();\n if (detach)\n this.view.scrollDOM.insertBefore(this.dom, after);\n }\n updateGutters(update) {\n let prev = update.startState.facet(activeGutters), cur = update.state.facet(activeGutters);\n let change = update.docChanged || update.heightChanged || update.viewportChanged ||\n !RangeSet.eq(update.startState.facet(gutterLineClass), update.state.facet(gutterLineClass), update.view.viewport.from, update.view.viewport.to);\n if (prev == cur) {\n for (let gutter of this.gutters)\n if (gutter.update(update))\n change = true;\n }\n else {\n change = true;\n let gutters = [];\n for (let conf of cur) {\n let known = prev.indexOf(conf);\n if (known < 0) {\n gutters.push(new SingleGutterView(this.view, conf));\n }\n else {\n this.gutters[known].update(update);\n gutters.push(this.gutters[known]);\n }\n }\n for (let g of this.gutters) {\n g.dom.remove();\n if (gutters.indexOf(g) < 0)\n g.destroy();\n }\n for (let g of gutters)\n this.dom.appendChild(g.dom);\n this.gutters = gutters;\n }\n return change;\n }\n destroy() {\n for (let view of this.gutters)\n view.destroy();\n this.dom.remove();\n }\n}, {\n provide: plugin => EditorView.scrollMargins.of(view => {\n let value = view.plugin(plugin);\n if (!value || value.gutters.length == 0 || !value.fixed)\n return null;\n return view.textDirection == Direction.LTR\n ? { left: value.dom.offsetWidth * view.scaleX }\n : { right: value.dom.offsetWidth * view.scaleX };\n })\n});\nfunction asArray(val) { return (Array.isArray(val) ? val : [val]); }\nfunction advanceCursor(cursor, collect, pos) {\n while (cursor.value && cursor.from <= pos) {\n if (cursor.from == pos)\n collect.push(cursor.value);\n cursor.next();\n }\n}\nclass UpdateContext {\n constructor(gutter, viewport, height) {\n this.gutter = gutter;\n this.height = height;\n this.i = 0;\n this.cursor = RangeSet.iter(gutter.markers, viewport.from);\n }\n addElement(view, block, markers) {\n let { gutter } = this, above = (block.top - this.height) / view.scaleY, height = block.height / view.scaleY;\n if (this.i == gutter.elements.length) {\n let newElt = new GutterElement(view, height, above, markers);\n gutter.elements.push(newElt);\n gutter.dom.appendChild(newElt.dom);\n }\n else {\n gutter.elements[this.i].update(view, height, above, markers);\n }\n this.height = block.bottom;\n this.i++;\n }\n line(view, line, extraMarkers) {\n let localMarkers = [];\n advanceCursor(this.cursor, localMarkers, line.from);\n if (extraMarkers.length)\n localMarkers = localMarkers.concat(extraMarkers);\n let forLine = this.gutter.config.lineMarker(view, line, localMarkers);\n if (forLine)\n localMarkers.unshift(forLine);\n let gutter = this.gutter;\n if (localMarkers.length == 0 && !gutter.config.renderEmptyElements)\n return;\n this.addElement(view, line, localMarkers);\n }\n widget(view, block) {\n let marker = this.gutter.config.widgetMarker(view, block.widget, block);\n if (marker)\n this.addElement(view, block, [marker]);\n }\n finish() {\n let gutter = this.gutter;\n while (gutter.elements.length > this.i) {\n let last = gutter.elements.pop();\n gutter.dom.removeChild(last.dom);\n last.destroy();\n }\n }\n}\nclass SingleGutterView {\n constructor(view, config) {\n this.view = view;\n this.config = config;\n this.elements = [];\n this.spacer = null;\n this.dom = document.createElement(\"div\");\n this.dom.className = \"cm-gutter\" + (this.config.class ? \" \" + this.config.class : \"\");\n for (let prop in config.domEventHandlers) {\n this.dom.addEventListener(prop, (event) => {\n let target = event.target, y;\n if (target != this.dom && this.dom.contains(target)) {\n while (target.parentNode != this.dom)\n target = target.parentNode;\n let rect = target.getBoundingClientRect();\n y = (rect.top + rect.bottom) / 2;\n }\n else {\n y = event.clientY;\n }\n let line = view.lineBlockAtHeight(y - view.documentTop);\n if (config.domEventHandlers[prop](view, line, event))\n event.preventDefault();\n });\n }\n this.markers = asArray(config.markers(view));\n if (config.initialSpacer) {\n this.spacer = new GutterElement(view, 0, 0, [config.initialSpacer(view)]);\n this.dom.appendChild(this.spacer.dom);\n this.spacer.dom.style.cssText += \"visibility: hidden; pointer-events: none\";\n }\n }\n update(update) {\n let prevMarkers = this.markers;\n this.markers = asArray(this.config.markers(update.view));\n if (this.spacer && this.config.updateSpacer) {\n let updated = this.config.updateSpacer(this.spacer.markers[0], update);\n if (updated != this.spacer.markers[0])\n this.spacer.update(update.view, 0, 0, [updated]);\n }\n let vp = update.view.viewport;\n return !RangeSet.eq(this.markers, prevMarkers, vp.from, vp.to) ||\n (this.config.lineMarkerChange ? this.config.lineMarkerChange(update) : false);\n }\n destroy() {\n for (let elt of this.elements)\n elt.destroy();\n }\n}\nclass GutterElement {\n constructor(view, height, above, markers) {\n this.height = -1;\n this.above = 0;\n this.markers = [];\n this.dom = document.createElement(\"div\");\n this.dom.className = \"cm-gutterElement\";\n this.update(view, height, above, markers);\n }\n update(view, height, above, markers) {\n if (this.height != height) {\n this.height = height;\n this.dom.style.height = height + \"px\";\n }\n if (this.above != above)\n this.dom.style.marginTop = (this.above = above) ? above + \"px\" : \"\";\n if (!sameMarkers(this.markers, markers))\n this.setMarkers(view, markers);\n }\n setMarkers(view, markers) {\n let cls = \"cm-gutterElement\", domPos = this.dom.firstChild;\n for (let iNew = 0, iOld = 0;;) {\n let skipTo = iOld, marker = iNew < markers.length ? markers[iNew++] : null, matched = false;\n if (marker) {\n let c = marker.elementClass;\n if (c)\n cls += \" \" + c;\n for (let i = iOld; i < this.markers.length; i++)\n if (this.markers[i].compare(marker)) {\n skipTo = i;\n matched = true;\n break;\n }\n }\n else {\n skipTo = this.markers.length;\n }\n while (iOld < skipTo) {\n let next = this.markers[iOld++];\n if (next.toDOM) {\n next.destroy(domPos);\n let after = domPos.nextSibling;\n domPos.remove();\n domPos = after;\n }\n }\n if (!marker)\n break;\n if (marker.toDOM) {\n if (matched)\n domPos = domPos.nextSibling;\n else\n this.dom.insertBefore(marker.toDOM(view), domPos);\n }\n if (matched)\n iOld++;\n }\n this.dom.className = cls;\n this.markers = markers;\n }\n destroy() {\n this.setMarkers(null, []); // First argument not used unless creating markers\n }\n}\nfunction sameMarkers(a, b) {\n if (a.length != b.length)\n return false;\n for (let i = 0; i < a.length; i++)\n if (!a[i].compare(b[i]))\n return false;\n return true;\n}\n/**\nFacet used to provide markers to the line number gutter.\n*/\nconst lineNumberMarkers = /*@__PURE__*/Facet.define();\nconst lineNumberConfig = /*@__PURE__*/Facet.define({\n combine(values) {\n return combineConfig(values, { formatNumber: String, domEventHandlers: {} }, {\n domEventHandlers(a, b) {\n let result = Object.assign({}, a);\n for (let event in b) {\n let exists = result[event], add = b[event];\n result[event] = exists ? (view, line, event) => exists(view, line, event) || add(view, line, event) : add;\n }\n return result;\n }\n });\n }\n});\nclass NumberMarker extends GutterMarker {\n constructor(number) {\n super();\n this.number = number;\n }\n eq(other) { return this.number == other.number; }\n toDOM() { return document.createTextNode(this.number); }\n}\nfunction formatNumber(view, number) {\n return view.state.facet(lineNumberConfig).formatNumber(number, view.state);\n}\nconst lineNumberGutter = /*@__PURE__*/activeGutters.compute([lineNumberConfig], state => ({\n class: \"cm-lineNumbers\",\n renderEmptyElements: false,\n markers(view) { return view.state.facet(lineNumberMarkers); },\n lineMarker(view, line, others) {\n if (others.some(m => m.toDOM))\n return null;\n return new NumberMarker(formatNumber(view, view.state.doc.lineAt(line.from).number));\n },\n widgetMarker: () => null,\n lineMarkerChange: update => update.startState.facet(lineNumberConfig) != update.state.facet(lineNumberConfig),\n initialSpacer(view) {\n return new NumberMarker(formatNumber(view, maxLineNumber(view.state.doc.lines)));\n },\n updateSpacer(spacer, update) {\n let max = formatNumber(update.view, maxLineNumber(update.view.state.doc.lines));\n return max == spacer.number ? spacer : new NumberMarker(max);\n },\n domEventHandlers: state.facet(lineNumberConfig).domEventHandlers\n}));\n/**\nCreate a line number gutter extension.\n*/\nfunction lineNumbers(config = {}) {\n return [\n lineNumberConfig.of(config),\n gutters(),\n lineNumberGutter\n ];\n}\nfunction maxLineNumber(lines) {\n let last = 9;\n while (last < lines)\n last = last * 10 + 9;\n return last;\n}\nconst activeLineGutterMarker = /*@__PURE__*/new class extends GutterMarker {\n constructor() {\n super(...arguments);\n this.elementClass = \"cm-activeLineGutter\";\n }\n};\nconst activeLineGutterHighlighter = /*@__PURE__*/gutterLineClass.compute([\"selection\"], state => {\n let marks = [], last = -1;\n for (let range of state.selection.ranges) {\n let linePos = state.doc.lineAt(range.head).from;\n if (linePos > last) {\n last = linePos;\n marks.push(activeLineGutterMarker.range(linePos));\n }\n }\n return RangeSet.of(marks);\n});\n/**\nReturns an extension that adds a `cm-activeLineGutter` class to\nall gutter elements on the [active\nline](https://codemirror.net/6/docs/ref/#view.highlightActiveLine).\n*/\nfunction highlightActiveLineGutter() {\n return activeLineGutterHighlighter;\n}\n\nconst WhitespaceDeco = /*@__PURE__*/new Map();\nfunction getWhitespaceDeco(space) {\n let deco = WhitespaceDeco.get(space);\n if (!deco)\n WhitespaceDeco.set(space, deco = Decoration.mark({\n attributes: space === \"\\t\" ? {\n class: \"cm-highlightTab\",\n } : {\n class: \"cm-highlightSpace\",\n \"data-display\": space.replace(/ /g, \"·\")\n }\n }));\n return deco;\n}\nfunction matcher(decorator) {\n return ViewPlugin.define(view => ({\n decorations: decorator.createDeco(view),\n update(u) {\n this.decorations = decorator.updateDeco(u, this.decorations);\n },\n }), {\n decorations: v => v.decorations\n });\n}\nconst whitespaceHighlighter = /*@__PURE__*/matcher(/*@__PURE__*/new MatchDecorator({\n regexp: /\\t| +/g,\n decoration: match => getWhitespaceDeco(match[0]),\n boundary: /\\S/,\n}));\n/**\nReturns an extension that highlights whitespace, adding a\n`cm-highlightSpace` class to stretches of spaces, and a\n`cm-highlightTab` class to individual tab characters. By default,\nthe former are shown as faint dots, and the latter as arrows.\n*/\nfunction highlightWhitespace() {\n return whitespaceHighlighter;\n}\nconst trailingHighlighter = /*@__PURE__*/matcher(/*@__PURE__*/new MatchDecorator({\n regexp: /\\s+$/g,\n decoration: /*@__PURE__*/Decoration.mark({ class: \"cm-trailingSpace\" }),\n boundary: /\\S/,\n}));\n/**\nReturns an extension that adds a `cm-trailingSpace` class to all\ntrailing whitespace.\n*/\nfunction highlightTrailingWhitespace() {\n return trailingHighlighter;\n}\n\n/**\n@internal\n*/\nconst __test = { HeightMap, HeightOracle, MeasuredHeights, QueryType, ChangedRange, computeOrder, moveVisually };\n\nexport { BidiSpan, BlockInfo, BlockType, Decoration, Direction, EditorView, GutterMarker, MatchDecorator, RectangleMarker, ViewPlugin, ViewUpdate, WidgetType, __test, closeHoverTooltips, crosshairCursor, drawSelection, dropCursor, getDrawSelectionConfig, getPanel, getTooltip, gutter, gutterLineClass, gutters, hasHoverTooltips, highlightActiveLine, highlightActiveLineGutter, highlightSpecialChars, highlightTrailingWhitespace, highlightWhitespace, hoverTooltip, keymap, layer, lineNumberMarkers, lineNumbers, logException, panels, placeholder, rectangularSelection, repositionTooltips, runScopeHandlers, scrollPastEnd, showPanel, showTooltip, tooltips };\n","/**\nThe default maximum length of a `TreeBuffer` node.\n*/\nconst DefaultBufferLength = 1024;\nlet nextPropID = 0;\nclass Range {\n constructor(from, to) {\n this.from = from;\n this.to = to;\n }\n}\n/**\nEach [node type](#common.NodeType) or [individual tree](#common.Tree)\ncan have metadata associated with it in props. Instances of this\nclass represent prop names.\n*/\nclass NodeProp {\n /**\n Create a new node prop type.\n */\n constructor(config = {}) {\n this.id = nextPropID++;\n this.perNode = !!config.perNode;\n this.deserialize = config.deserialize || (() => {\n throw new Error(\"This node type doesn't define a deserialize function\");\n });\n }\n /**\n This is meant to be used with\n [`NodeSet.extend`](#common.NodeSet.extend) or\n [`LRParser.configure`](#lr.ParserConfig.props) to compute\n prop values for each node type in the set. Takes a [match\n object](#common.NodeType^match) or function that returns undefined\n if the node type doesn't get this prop, and the prop's value if\n it does.\n */\n add(match) {\n if (this.perNode)\n throw new RangeError(\"Can't add per-node props to node types\");\n if (typeof match != \"function\")\n match = NodeType.match(match);\n return (type) => {\n let result = match(type);\n return result === undefined ? null : [this, result];\n };\n }\n}\n/**\nProp that is used to describe matching delimiters. For opening\ndelimiters, this holds an array of node names (written as a\nspace-separated string when declaring this prop in a grammar)\nfor the node types of closing delimiters that match it.\n*/\nNodeProp.closedBy = new NodeProp({ deserialize: str => str.split(\" \") });\n/**\nThe inverse of [`closedBy`](#common.NodeProp^closedBy). This is\nattached to closing delimiters, holding an array of node names\nof types of matching opening delimiters.\n*/\nNodeProp.openedBy = new NodeProp({ deserialize: str => str.split(\" \") });\n/**\nUsed to assign node types to groups (for example, all node\ntypes that represent an expression could be tagged with an\n`\"Expression\"` group).\n*/\nNodeProp.group = new NodeProp({ deserialize: str => str.split(\" \") });\n/**\nAttached to nodes to indicate these should be\n[displayed](https://codemirror.net/docs/ref/#language.syntaxTree)\nin a bidirectional text isolate, so that direction-neutral\ncharacters on their sides don't incorrectly get associated with\nsurrounding text. You'll generally want to set this for nodes\nthat contain arbitrary text, like strings and comments, and for\nnodes that appear _inside_ arbitrary text, like HTML tags. When\nnot given a value, in a grammar declaration, defaults to\n`\"auto\"`.\n*/\nNodeProp.isolate = new NodeProp({ deserialize: value => {\n if (value && value != \"rtl\" && value != \"ltr\" && value != \"auto\")\n throw new RangeError(\"Invalid value for isolate: \" + value);\n return value || \"auto\";\n } });\n/**\nThe hash of the [context](#lr.ContextTracker.constructor)\nthat the node was parsed in, if any. Used to limit reuse of\ncontextual nodes.\n*/\nNodeProp.contextHash = new NodeProp({ perNode: true });\n/**\nThe distance beyond the end of the node that the tokenizer\nlooked ahead for any of the tokens inside the node. (The LR\nparser only stores this when it is larger than 25, for\nefficiency reasons.)\n*/\nNodeProp.lookAhead = new NodeProp({ perNode: true });\n/**\nThis per-node prop is used to replace a given node, or part of a\nnode, with another tree. This is useful to include trees from\ndifferent languages in mixed-language parsers.\n*/\nNodeProp.mounted = new NodeProp({ perNode: true });\n/**\nA mounted tree, which can be [stored](#common.NodeProp^mounted) on\na tree node to indicate that parts of its content are\nrepresented by another tree.\n*/\nclass MountedTree {\n constructor(\n /**\n The inner tree.\n */\n tree, \n /**\n If this is null, this tree replaces the entire node (it will\n be included in the regular iteration instead of its host\n node). If not, only the given ranges are considered to be\n covered by this tree. This is used for trees that are mixed in\n a way that isn't strictly hierarchical. Such mounted trees are\n only entered by [`resolveInner`](#common.Tree.resolveInner)\n and [`enter`](#common.SyntaxNode.enter).\n */\n overlay, \n /**\n The parser used to create this subtree.\n */\n parser) {\n this.tree = tree;\n this.overlay = overlay;\n this.parser = parser;\n }\n /**\n @internal\n */\n static get(tree) {\n return tree && tree.props && tree.props[NodeProp.mounted.id];\n }\n}\nconst noProps = Object.create(null);\n/**\nEach node in a syntax tree has a node type associated with it.\n*/\nclass NodeType {\n /**\n @internal\n */\n constructor(\n /**\n The name of the node type. Not necessarily unique, but if the\n grammar was written properly, different node types with the\n same name within a node set should play the same semantic\n role.\n */\n name, \n /**\n @internal\n */\n props, \n /**\n The id of this node in its set. Corresponds to the term ids\n used in the parser.\n */\n id, \n /**\n @internal\n */\n flags = 0) {\n this.name = name;\n this.props = props;\n this.id = id;\n this.flags = flags;\n }\n /**\n Define a node type.\n */\n static define(spec) {\n let props = spec.props && spec.props.length ? Object.create(null) : noProps;\n let flags = (spec.top ? 1 /* NodeFlag.Top */ : 0) | (spec.skipped ? 2 /* NodeFlag.Skipped */ : 0) |\n (spec.error ? 4 /* NodeFlag.Error */ : 0) | (spec.name == null ? 8 /* NodeFlag.Anonymous */ : 0);\n let type = new NodeType(spec.name || \"\", props, spec.id, flags);\n if (spec.props)\n for (let src of spec.props) {\n if (!Array.isArray(src))\n src = src(type);\n if (src) {\n if (src[0].perNode)\n throw new RangeError(\"Can't store a per-node prop on a node type\");\n props[src[0].id] = src[1];\n }\n }\n return type;\n }\n /**\n Retrieves a node prop for this type. Will return `undefined` if\n the prop isn't present on this node.\n */\n prop(prop) { return this.props[prop.id]; }\n /**\n True when this is the top node of a grammar.\n */\n get isTop() { return (this.flags & 1 /* NodeFlag.Top */) > 0; }\n /**\n True when this node is produced by a skip rule.\n */\n get isSkipped() { return (this.flags & 2 /* NodeFlag.Skipped */) > 0; }\n /**\n Indicates whether this is an error node.\n */\n get isError() { return (this.flags & 4 /* NodeFlag.Error */) > 0; }\n /**\n When true, this node type doesn't correspond to a user-declared\n named node, for example because it is used to cache repetition.\n */\n get isAnonymous() { return (this.flags & 8 /* NodeFlag.Anonymous */) > 0; }\n /**\n Returns true when this node's name or one of its\n [groups](#common.NodeProp^group) matches the given string.\n */\n is(name) {\n if (typeof name == 'string') {\n if (this.name == name)\n return true;\n let group = this.prop(NodeProp.group);\n return group ? group.indexOf(name) > -1 : false;\n }\n return this.id == name;\n }\n /**\n Create a function from node types to arbitrary values by\n specifying an object whose property names are node or\n [group](#common.NodeProp^group) names. Often useful with\n [`NodeProp.add`](#common.NodeProp.add). You can put multiple\n names, separated by spaces, in a single property name to map\n multiple node names to a single value.\n */\n static match(map) {\n let direct = Object.create(null);\n for (let prop in map)\n for (let name of prop.split(\" \"))\n direct[name] = map[prop];\n return (node) => {\n for (let groups = node.prop(NodeProp.group), i = -1; i < (groups ? groups.length : 0); i++) {\n let found = direct[i < 0 ? node.name : groups[i]];\n if (found)\n return found;\n }\n };\n }\n}\n/**\nAn empty dummy node type to use when no actual type is available.\n*/\nNodeType.none = new NodeType(\"\", Object.create(null), 0, 8 /* NodeFlag.Anonymous */);\n/**\nA node set holds a collection of node types. It is used to\ncompactly represent trees by storing their type ids, rather than a\nfull pointer to the type object, in a numeric array. Each parser\n[has](#lr.LRParser.nodeSet) a node set, and [tree\nbuffers](#common.TreeBuffer) can only store collections of nodes\nfrom the same set. A set can have a maximum of 2**16 (65536) node\ntypes in it, so that the ids fit into 16-bit typed array slots.\n*/\nclass NodeSet {\n /**\n Create a set with the given types. The `id` property of each\n type should correspond to its position within the array.\n */\n constructor(\n /**\n The node types in this set, by id.\n */\n types) {\n this.types = types;\n for (let i = 0; i < types.length; i++)\n if (types[i].id != i)\n throw new RangeError(\"Node type ids should correspond to array positions when creating a node set\");\n }\n /**\n Create a copy of this set with some node properties added. The\n arguments to this method can be created with\n [`NodeProp.add`](#common.NodeProp.add).\n */\n extend(...props) {\n let newTypes = [];\n for (let type of this.types) {\n let newProps = null;\n for (let source of props) {\n let add = source(type);\n if (add) {\n if (!newProps)\n newProps = Object.assign({}, type.props);\n newProps[add[0].id] = add[1];\n }\n }\n newTypes.push(newProps ? new NodeType(type.name, newProps, type.id, type.flags) : type);\n }\n return new NodeSet(newTypes);\n }\n}\nconst CachedNode = new WeakMap(), CachedInnerNode = new WeakMap();\n/**\nOptions that control iteration. Can be combined with the `|`\noperator to enable multiple ones.\n*/\nvar IterMode;\n(function (IterMode) {\n /**\n When enabled, iteration will only visit [`Tree`](#common.Tree)\n objects, not nodes packed into\n [`TreeBuffer`](#common.TreeBuffer)s.\n */\n IterMode[IterMode[\"ExcludeBuffers\"] = 1] = \"ExcludeBuffers\";\n /**\n Enable this to make iteration include anonymous nodes (such as\n the nodes that wrap repeated grammar constructs into a balanced\n tree).\n */\n IterMode[IterMode[\"IncludeAnonymous\"] = 2] = \"IncludeAnonymous\";\n /**\n By default, regular [mounted](#common.NodeProp^mounted) nodes\n replace their base node in iteration. Enable this to ignore them\n instead.\n */\n IterMode[IterMode[\"IgnoreMounts\"] = 4] = \"IgnoreMounts\";\n /**\n This option only applies in\n [`enter`](#common.SyntaxNode.enter)-style methods. It tells the\n library to not enter mounted overlays if one covers the given\n position.\n */\n IterMode[IterMode[\"IgnoreOverlays\"] = 8] = \"IgnoreOverlays\";\n})(IterMode || (IterMode = {}));\n/**\nA piece of syntax tree. There are two ways to approach these\ntrees: the way they are actually stored in memory, and the\nconvenient way.\n\nSyntax trees are stored as a tree of `Tree` and `TreeBuffer`\nobjects. By packing detail information into `TreeBuffer` leaf\nnodes, the representation is made a lot more memory-efficient.\n\nHowever, when you want to actually work with tree nodes, this\nrepresentation is very awkward, so most client code will want to\nuse the [`TreeCursor`](#common.TreeCursor) or\n[`SyntaxNode`](#common.SyntaxNode) interface instead, which provides\na view on some part of this data structure, and can be used to\nmove around to adjacent nodes.\n*/\nclass Tree {\n /**\n Construct a new tree. See also [`Tree.build`](#common.Tree^build).\n */\n constructor(\n /**\n The type of the top node.\n */\n type, \n /**\n This node's child nodes.\n */\n children, \n /**\n The positions (offsets relative to the start of this tree) of\n the children.\n */\n positions, \n /**\n The total length of this tree\n */\n length, \n /**\n Per-node [node props](#common.NodeProp) to associate with this node.\n */\n props) {\n this.type = type;\n this.children = children;\n this.positions = positions;\n this.length = length;\n /**\n @internal\n */\n this.props = null;\n if (props && props.length) {\n this.props = Object.create(null);\n for (let [prop, value] of props)\n this.props[typeof prop == \"number\" ? prop : prop.id] = value;\n }\n }\n /**\n @internal\n */\n toString() {\n let mounted = MountedTree.get(this);\n if (mounted && !mounted.overlay)\n return mounted.tree.toString();\n let children = \"\";\n for (let ch of this.children) {\n let str = ch.toString();\n if (str) {\n if (children)\n children += \",\";\n children += str;\n }\n }\n return !this.type.name ? children :\n (/\\W/.test(this.type.name) && !this.type.isError ? JSON.stringify(this.type.name) : this.type.name) +\n (children.length ? \"(\" + children + \")\" : \"\");\n }\n /**\n Get a [tree cursor](#common.TreeCursor) positioned at the top of\n the tree. Mode can be used to [control](#common.IterMode) which\n nodes the cursor visits.\n */\n cursor(mode = 0) {\n return new TreeCursor(this.topNode, mode);\n }\n /**\n Get a [tree cursor](#common.TreeCursor) pointing into this tree\n at the given position and side (see\n [`moveTo`](#common.TreeCursor.moveTo).\n */\n cursorAt(pos, side = 0, mode = 0) {\n let scope = CachedNode.get(this) || this.topNode;\n let cursor = new TreeCursor(scope);\n cursor.moveTo(pos, side);\n CachedNode.set(this, cursor._tree);\n return cursor;\n }\n /**\n Get a [syntax node](#common.SyntaxNode) object for the top of the\n tree.\n */\n get topNode() {\n return new TreeNode(this, 0, 0, null);\n }\n /**\n Get the [syntax node](#common.SyntaxNode) at the given position.\n If `side` is -1, this will move into nodes that end at the\n position. If 1, it'll move into nodes that start at the\n position. With 0, it'll only enter nodes that cover the position\n from both sides.\n \n Note that this will not enter\n [overlays](#common.MountedTree.overlay), and you often want\n [`resolveInner`](#common.Tree.resolveInner) instead.\n */\n resolve(pos, side = 0) {\n let node = resolveNode(CachedNode.get(this) || this.topNode, pos, side, false);\n CachedNode.set(this, node);\n return node;\n }\n /**\n Like [`resolve`](#common.Tree.resolve), but will enter\n [overlaid](#common.MountedTree.overlay) nodes, producing a syntax node\n pointing into the innermost overlaid tree at the given position\n (with parent links going through all parent structure, including\n the host trees).\n */\n resolveInner(pos, side = 0) {\n let node = resolveNode(CachedInnerNode.get(this) || this.topNode, pos, side, true);\n CachedInnerNode.set(this, node);\n return node;\n }\n /**\n In some situations, it can be useful to iterate through all\n nodes around a position, including those in overlays that don't\n directly cover the position. This method gives you an iterator\n that will produce all nodes, from small to big, around the given\n position.\n */\n resolveStack(pos, side = 0) {\n return stackIterator(this, pos, side);\n }\n /**\n Iterate over the tree and its children, calling `enter` for any\n node that touches the `from`/`to` region (if given) before\n running over such a node's children, and `leave` (if given) when\n leaving the node. When `enter` returns `false`, that node will\n not have its children iterated over (or `leave` called).\n */\n iterate(spec) {\n let { enter, leave, from = 0, to = this.length } = spec;\n let mode = spec.mode || 0, anon = (mode & IterMode.IncludeAnonymous) > 0;\n for (let c = this.cursor(mode | IterMode.IncludeAnonymous);;) {\n let entered = false;\n if (c.from <= to && c.to >= from && (!anon && c.type.isAnonymous || enter(c) !== false)) {\n if (c.firstChild())\n continue;\n entered = true;\n }\n for (;;) {\n if (entered && leave && (anon || !c.type.isAnonymous))\n leave(c);\n if (c.nextSibling())\n break;\n if (!c.parent())\n return;\n entered = true;\n }\n }\n }\n /**\n Get the value of the given [node prop](#common.NodeProp) for this\n node. Works with both per-node and per-type props.\n */\n prop(prop) {\n return !prop.perNode ? this.type.prop(prop) : this.props ? this.props[prop.id] : undefined;\n }\n /**\n Returns the node's [per-node props](#common.NodeProp.perNode) in a\n format that can be passed to the [`Tree`](#common.Tree)\n constructor.\n */\n get propValues() {\n let result = [];\n if (this.props)\n for (let id in this.props)\n result.push([+id, this.props[id]]);\n return result;\n }\n /**\n Balance the direct children of this tree, producing a copy of\n which may have children grouped into subtrees with type\n [`NodeType.none`](#common.NodeType^none).\n */\n balance(config = {}) {\n return this.children.length <= 8 /* Balance.BranchFactor */ ? this :\n balanceRange(NodeType.none, this.children, this.positions, 0, this.children.length, 0, this.length, (children, positions, length) => new Tree(this.type, children, positions, length, this.propValues), config.makeTree || ((children, positions, length) => new Tree(NodeType.none, children, positions, length)));\n }\n /**\n Build a tree from a postfix-ordered buffer of node information,\n or a cursor over such a buffer.\n */\n static build(data) { return buildTree(data); }\n}\n/**\nThe empty tree\n*/\nTree.empty = new Tree(NodeType.none, [], [], 0);\nclass FlatBufferCursor {\n constructor(buffer, index) {\n this.buffer = buffer;\n this.index = index;\n }\n get id() { return this.buffer[this.index - 4]; }\n get start() { return this.buffer[this.index - 3]; }\n get end() { return this.buffer[this.index - 2]; }\n get size() { return this.buffer[this.index - 1]; }\n get pos() { return this.index; }\n next() { this.index -= 4; }\n fork() { return new FlatBufferCursor(this.buffer, this.index); }\n}\n/**\nTree buffers contain (type, start, end, endIndex) quads for each\nnode. In such a buffer, nodes are stored in prefix order (parents\nbefore children, with the endIndex of the parent indicating which\nchildren belong to it).\n*/\nclass TreeBuffer {\n /**\n Create a tree buffer.\n */\n constructor(\n /**\n The buffer's content.\n */\n buffer, \n /**\n The total length of the group of nodes in the buffer.\n */\n length, \n /**\n The node set used in this buffer.\n */\n set) {\n this.buffer = buffer;\n this.length = length;\n this.set = set;\n }\n /**\n @internal\n */\n get type() { return NodeType.none; }\n /**\n @internal\n */\n toString() {\n let result = [];\n for (let index = 0; index < this.buffer.length;) {\n result.push(this.childString(index));\n index = this.buffer[index + 3];\n }\n return result.join(\",\");\n }\n /**\n @internal\n */\n childString(index) {\n let id = this.buffer[index], endIndex = this.buffer[index + 3];\n let type = this.set.types[id], result = type.name;\n if (/\\W/.test(result) && !type.isError)\n result = JSON.stringify(result);\n index += 4;\n if (endIndex == index)\n return result;\n let children = [];\n while (index < endIndex) {\n children.push(this.childString(index));\n index = this.buffer[index + 3];\n }\n return result + \"(\" + children.join(\",\") + \")\";\n }\n /**\n @internal\n */\n findChild(startIndex, endIndex, dir, pos, side) {\n let { buffer } = this, pick = -1;\n for (let i = startIndex; i != endIndex; i = buffer[i + 3]) {\n if (checkSide(side, pos, buffer[i + 1], buffer[i + 2])) {\n pick = i;\n if (dir > 0)\n break;\n }\n }\n return pick;\n }\n /**\n @internal\n */\n slice(startI, endI, from) {\n let b = this.buffer;\n let copy = new Uint16Array(endI - startI), len = 0;\n for (let i = startI, j = 0; i < endI;) {\n copy[j++] = b[i++];\n copy[j++] = b[i++] - from;\n let to = copy[j++] = b[i++] - from;\n copy[j++] = b[i++] - startI;\n len = Math.max(len, to);\n }\n return new TreeBuffer(copy, len, this.set);\n }\n}\nfunction checkSide(side, pos, from, to) {\n switch (side) {\n case -2 /* Side.Before */: return from < pos;\n case -1 /* Side.AtOrBefore */: return to >= pos && from < pos;\n case 0 /* Side.Around */: return from < pos && to > pos;\n case 1 /* Side.AtOrAfter */: return from <= pos && to > pos;\n case 2 /* Side.After */: return to > pos;\n case 4 /* Side.DontCare */: return true;\n }\n}\nfunction resolveNode(node, pos, side, overlays) {\n var _a;\n // Move up to a node that actually holds the position, if possible\n while (node.from == node.to ||\n (side < 1 ? node.from >= pos : node.from > pos) ||\n (side > -1 ? node.to <= pos : node.to < pos)) {\n let parent = !overlays && node instanceof TreeNode && node.index < 0 ? null : node.parent;\n if (!parent)\n return node;\n node = parent;\n }\n let mode = overlays ? 0 : IterMode.IgnoreOverlays;\n // Must go up out of overlays when those do not overlap with pos\n if (overlays)\n for (let scan = node, parent = scan.parent; parent; scan = parent, parent = scan.parent) {\n if (scan instanceof TreeNode && scan.index < 0 && ((_a = parent.enter(pos, side, mode)) === null || _a === void 0 ? void 0 : _a.from) != scan.from)\n node = parent;\n }\n for (;;) {\n let inner = node.enter(pos, side, mode);\n if (!inner)\n return node;\n node = inner;\n }\n}\nclass BaseNode {\n cursor(mode = 0) { return new TreeCursor(this, mode); }\n getChild(type, before = null, after = null) {\n let r = getChildren(this, type, before, after);\n return r.length ? r[0] : null;\n }\n getChildren(type, before = null, after = null) {\n return getChildren(this, type, before, after);\n }\n resolve(pos, side = 0) {\n return resolveNode(this, pos, side, false);\n }\n resolveInner(pos, side = 0) {\n return resolveNode(this, pos, side, true);\n }\n matchContext(context) {\n return matchNodeContext(this, context);\n }\n enterUnfinishedNodesBefore(pos) {\n let scan = this.childBefore(pos), node = this;\n while (scan) {\n let last = scan.lastChild;\n if (!last || last.to != scan.to)\n break;\n if (last.type.isError && last.from == last.to) {\n node = scan;\n scan = last.prevSibling;\n }\n else {\n scan = last;\n }\n }\n return node;\n }\n get node() { return this; }\n get next() { return this.parent; }\n}\nclass TreeNode extends BaseNode {\n constructor(_tree, from, \n // Index in parent node, set to -1 if the node is not a direct child of _parent.node (overlay)\n index, _parent) {\n super();\n this._tree = _tree;\n this.from = from;\n this.index = index;\n this._parent = _parent;\n }\n get type() { return this._tree.type; }\n get name() { return this._tree.type.name; }\n get to() { return this.from + this._tree.length; }\n nextChild(i, dir, pos, side, mode = 0) {\n for (let parent = this;;) {\n for (let { children, positions } = parent._tree, e = dir > 0 ? children.length : -1; i != e; i += dir) {\n let next = children[i], start = positions[i] + parent.from;\n if (!checkSide(side, pos, start, start + next.length))\n continue;\n if (next instanceof TreeBuffer) {\n if (mode & IterMode.ExcludeBuffers)\n continue;\n let index = next.findChild(0, next.buffer.length, dir, pos - start, side);\n if (index > -1)\n return new BufferNode(new BufferContext(parent, next, i, start), null, index);\n }\n else if ((mode & IterMode.IncludeAnonymous) || (!next.type.isAnonymous || hasChild(next))) {\n let mounted;\n if (!(mode & IterMode.IgnoreMounts) && (mounted = MountedTree.get(next)) && !mounted.overlay)\n return new TreeNode(mounted.tree, start, i, parent);\n let inner = new TreeNode(next, start, i, parent);\n return (mode & IterMode.IncludeAnonymous) || !inner.type.isAnonymous ? inner\n : inner.nextChild(dir < 0 ? next.children.length - 1 : 0, dir, pos, side);\n }\n }\n if ((mode & IterMode.IncludeAnonymous) || !parent.type.isAnonymous)\n return null;\n if (parent.index >= 0)\n i = parent.index + dir;\n else\n i = dir < 0 ? -1 : parent._parent._tree.children.length;\n parent = parent._parent;\n if (!parent)\n return null;\n }\n }\n get firstChild() { return this.nextChild(0, 1, 0, 4 /* Side.DontCare */); }\n get lastChild() { return this.nextChild(this._tree.children.length - 1, -1, 0, 4 /* Side.DontCare */); }\n childAfter(pos) { return this.nextChild(0, 1, pos, 2 /* Side.After */); }\n childBefore(pos) { return this.nextChild(this._tree.children.length - 1, -1, pos, -2 /* Side.Before */); }\n enter(pos, side, mode = 0) {\n let mounted;\n if (!(mode & IterMode.IgnoreOverlays) && (mounted = MountedTree.get(this._tree)) && mounted.overlay) {\n let rPos = pos - this.from;\n for (let { from, to } of mounted.overlay) {\n if ((side > 0 ? from <= rPos : from < rPos) &&\n (side < 0 ? to >= rPos : to > rPos))\n return new TreeNode(mounted.tree, mounted.overlay[0].from + this.from, -1, this);\n }\n }\n return this.nextChild(0, 1, pos, side, mode);\n }\n nextSignificantParent() {\n let val = this;\n while (val.type.isAnonymous && val._parent)\n val = val._parent;\n return val;\n }\n get parent() {\n return this._parent ? this._parent.nextSignificantParent() : null;\n }\n get nextSibling() {\n return this._parent && this.index >= 0 ? this._parent.nextChild(this.index + 1, 1, 0, 4 /* Side.DontCare */) : null;\n }\n get prevSibling() {\n return this._parent && this.index >= 0 ? this._parent.nextChild(this.index - 1, -1, 0, 4 /* Side.DontCare */) : null;\n }\n get tree() { return this._tree; }\n toTree() { return this._tree; }\n /**\n @internal\n */\n toString() { return this._tree.toString(); }\n}\nfunction getChildren(node, type, before, after) {\n let cur = node.cursor(), result = [];\n if (!cur.firstChild())\n return result;\n if (before != null)\n for (let found = false; !found;) {\n found = cur.type.is(before);\n if (!cur.nextSibling())\n return result;\n }\n for (;;) {\n if (after != null && cur.type.is(after))\n return result;\n if (cur.type.is(type))\n result.push(cur.node);\n if (!cur.nextSibling())\n return after == null ? result : [];\n }\n}\nfunction matchNodeContext(node, context, i = context.length - 1) {\n for (let p = node.parent; i >= 0; p = p.parent) {\n if (!p)\n return false;\n if (!p.type.isAnonymous) {\n if (context[i] && context[i] != p.name)\n return false;\n i--;\n }\n }\n return true;\n}\nclass BufferContext {\n constructor(parent, buffer, index, start) {\n this.parent = parent;\n this.buffer = buffer;\n this.index = index;\n this.start = start;\n }\n}\nclass BufferNode extends BaseNode {\n get name() { return this.type.name; }\n get from() { return this.context.start + this.context.buffer.buffer[this.index + 1]; }\n get to() { return this.context.start + this.context.buffer.buffer[this.index + 2]; }\n constructor(context, _parent, index) {\n super();\n this.context = context;\n this._parent = _parent;\n this.index = index;\n this.type = context.buffer.set.types[context.buffer.buffer[index]];\n }\n child(dir, pos, side) {\n let { buffer } = this.context;\n let index = buffer.findChild(this.index + 4, buffer.buffer[this.index + 3], dir, pos - this.context.start, side);\n return index < 0 ? null : new BufferNode(this.context, this, index);\n }\n get firstChild() { return this.child(1, 0, 4 /* Side.DontCare */); }\n get lastChild() { return this.child(-1, 0, 4 /* Side.DontCare */); }\n childAfter(pos) { return this.child(1, pos, 2 /* Side.After */); }\n childBefore(pos) { return this.child(-1, pos, -2 /* Side.Before */); }\n enter(pos, side, mode = 0) {\n if (mode & IterMode.ExcludeBuffers)\n return null;\n let { buffer } = this.context;\n let index = buffer.findChild(this.index + 4, buffer.buffer[this.index + 3], side > 0 ? 1 : -1, pos - this.context.start, side);\n return index < 0 ? null : new BufferNode(this.context, this, index);\n }\n get parent() {\n return this._parent || this.context.parent.nextSignificantParent();\n }\n externalSibling(dir) {\n return this._parent ? null : this.context.parent.nextChild(this.context.index + dir, dir, 0, 4 /* Side.DontCare */);\n }\n get nextSibling() {\n let { buffer } = this.context;\n let after = buffer.buffer[this.index + 3];\n if (after < (this._parent ? buffer.buffer[this._parent.index + 3] : buffer.buffer.length))\n return new BufferNode(this.context, this._parent, after);\n return this.externalSibling(1);\n }\n get prevSibling() {\n let { buffer } = this.context;\n let parentStart = this._parent ? this._parent.index + 4 : 0;\n if (this.index == parentStart)\n return this.externalSibling(-1);\n return new BufferNode(this.context, this._parent, buffer.findChild(parentStart, this.index, -1, 0, 4 /* Side.DontCare */));\n }\n get tree() { return null; }\n toTree() {\n let children = [], positions = [];\n let { buffer } = this.context;\n let startI = this.index + 4, endI = buffer.buffer[this.index + 3];\n if (endI > startI) {\n let from = buffer.buffer[this.index + 1];\n children.push(buffer.slice(startI, endI, from));\n positions.push(0);\n }\n return new Tree(this.type, children, positions, this.to - this.from);\n }\n /**\n @internal\n */\n toString() { return this.context.buffer.childString(this.index); }\n}\nfunction iterStack(heads) {\n if (!heads.length)\n return null;\n let pick = 0, picked = heads[0];\n for (let i = 1; i < heads.length; i++) {\n let node = heads[i];\n if (node.from > picked.from || node.to < picked.to) {\n picked = node;\n pick = i;\n }\n }\n let next = picked instanceof TreeNode && picked.index < 0 ? null : picked.parent;\n let newHeads = heads.slice();\n if (next)\n newHeads[pick] = next;\n else\n newHeads.splice(pick, 1);\n return new StackIterator(newHeads, picked);\n}\nclass StackIterator {\n constructor(heads, node) {\n this.heads = heads;\n this.node = node;\n }\n get next() { return iterStack(this.heads); }\n}\nfunction stackIterator(tree, pos, side) {\n let inner = tree.resolveInner(pos, side), layers = null;\n for (let scan = inner instanceof TreeNode ? inner : inner.context.parent; scan; scan = scan.parent) {\n if (scan.index < 0) { // This is an overlay root\n let parent = scan.parent;\n (layers || (layers = [inner])).push(parent.resolve(pos, side));\n scan = parent;\n }\n else {\n let mount = MountedTree.get(scan.tree);\n // Relevant overlay branching off\n if (mount && mount.overlay && mount.overlay[0].from <= pos && mount.overlay[mount.overlay.length - 1].to >= pos) {\n let root = new TreeNode(mount.tree, mount.overlay[0].from + scan.from, -1, scan);\n (layers || (layers = [inner])).push(resolveNode(root, pos, side, false));\n }\n }\n }\n return layers ? iterStack(layers) : inner;\n}\n/**\nA tree cursor object focuses on a given node in a syntax tree, and\nallows you to move to adjacent nodes.\n*/\nclass TreeCursor {\n /**\n Shorthand for `.type.name`.\n */\n get name() { return this.type.name; }\n /**\n @internal\n */\n constructor(node, \n /**\n @internal\n */\n mode = 0) {\n this.mode = mode;\n /**\n @internal\n */\n this.buffer = null;\n this.stack = [];\n /**\n @internal\n */\n this.index = 0;\n this.bufferNode = null;\n if (node instanceof TreeNode) {\n this.yieldNode(node);\n }\n else {\n this._tree = node.context.parent;\n this.buffer = node.context;\n for (let n = node._parent; n; n = n._parent)\n this.stack.unshift(n.index);\n this.bufferNode = node;\n this.yieldBuf(node.index);\n }\n }\n yieldNode(node) {\n if (!node)\n return false;\n this._tree = node;\n this.type = node.type;\n this.from = node.from;\n this.to = node.to;\n return true;\n }\n yieldBuf(index, type) {\n this.index = index;\n let { start, buffer } = this.buffer;\n this.type = type || buffer.set.types[buffer.buffer[index]];\n this.from = start + buffer.buffer[index + 1];\n this.to = start + buffer.buffer[index + 2];\n return true;\n }\n /**\n @internal\n */\n yield(node) {\n if (!node)\n return false;\n if (node instanceof TreeNode) {\n this.buffer = null;\n return this.yieldNode(node);\n }\n this.buffer = node.context;\n return this.yieldBuf(node.index, node.type);\n }\n /**\n @internal\n */\n toString() {\n return this.buffer ? this.buffer.buffer.childString(this.index) : this._tree.toString();\n }\n /**\n @internal\n */\n enterChild(dir, pos, side) {\n if (!this.buffer)\n return this.yield(this._tree.nextChild(dir < 0 ? this._tree._tree.children.length - 1 : 0, dir, pos, side, this.mode));\n let { buffer } = this.buffer;\n let index = buffer.findChild(this.index + 4, buffer.buffer[this.index + 3], dir, pos - this.buffer.start, side);\n if (index < 0)\n return false;\n this.stack.push(this.index);\n return this.yieldBuf(index);\n }\n /**\n Move the cursor to this node's first child. When this returns\n false, the node has no child, and the cursor has not been moved.\n */\n firstChild() { return this.enterChild(1, 0, 4 /* Side.DontCare */); }\n /**\n Move the cursor to this node's last child.\n */\n lastChild() { return this.enterChild(-1, 0, 4 /* Side.DontCare */); }\n /**\n Move the cursor to the first child that ends after `pos`.\n */\n childAfter(pos) { return this.enterChild(1, pos, 2 /* Side.After */); }\n /**\n Move to the last child that starts before `pos`.\n */\n childBefore(pos) { return this.enterChild(-1, pos, -2 /* Side.Before */); }\n /**\n Move the cursor to the child around `pos`. If side is -1 the\n child may end at that position, when 1 it may start there. This\n will also enter [overlaid](#common.MountedTree.overlay)\n [mounted](#common.NodeProp^mounted) trees unless `overlays` is\n set to false.\n */\n enter(pos, side, mode = this.mode) {\n if (!this.buffer)\n return this.yield(this._tree.enter(pos, side, mode));\n return mode & IterMode.ExcludeBuffers ? false : this.enterChild(1, pos, side);\n }\n /**\n Move to the node's parent node, if this isn't the top node.\n */\n parent() {\n if (!this.buffer)\n return this.yieldNode((this.mode & IterMode.IncludeAnonymous) ? this._tree._parent : this._tree.parent);\n if (this.stack.length)\n return this.yieldBuf(this.stack.pop());\n let parent = (this.mode & IterMode.IncludeAnonymous) ? this.buffer.parent : this.buffer.parent.nextSignificantParent();\n this.buffer = null;\n return this.yieldNode(parent);\n }\n /**\n @internal\n */\n sibling(dir) {\n if (!this.buffer)\n return !this._tree._parent ? false\n : this.yield(this._tree.index < 0 ? null\n : this._tree._parent.nextChild(this._tree.index + dir, dir, 0, 4 /* Side.DontCare */, this.mode));\n let { buffer } = this.buffer, d = this.stack.length - 1;\n if (dir < 0) {\n let parentStart = d < 0 ? 0 : this.stack[d] + 4;\n if (this.index != parentStart)\n return this.yieldBuf(buffer.findChild(parentStart, this.index, -1, 0, 4 /* Side.DontCare */));\n }\n else {\n let after = buffer.buffer[this.index + 3];\n if (after < (d < 0 ? buffer.buffer.length : buffer.buffer[this.stack[d] + 3]))\n return this.yieldBuf(after);\n }\n return d < 0 ? this.yield(this.buffer.parent.nextChild(this.buffer.index + dir, dir, 0, 4 /* Side.DontCare */, this.mode)) : false;\n }\n /**\n Move to this node's next sibling, if any.\n */\n nextSibling() { return this.sibling(1); }\n /**\n Move to this node's previous sibling, if any.\n */\n prevSibling() { return this.sibling(-1); }\n atLastNode(dir) {\n let index, parent, { buffer } = this;\n if (buffer) {\n if (dir > 0) {\n if (this.index < buffer.buffer.buffer.length)\n return false;\n }\n else {\n for (let i = 0; i < this.index; i++)\n if (buffer.buffer.buffer[i + 3] < this.index)\n return false;\n }\n ({ index, parent } = buffer);\n }\n else {\n ({ index, _parent: parent } = this._tree);\n }\n for (; parent; { index, _parent: parent } = parent) {\n if (index > -1)\n for (let i = index + dir, e = dir < 0 ? -1 : parent._tree.children.length; i != e; i += dir) {\n let child = parent._tree.children[i];\n if ((this.mode & IterMode.IncludeAnonymous) ||\n child instanceof TreeBuffer ||\n !child.type.isAnonymous ||\n hasChild(child))\n return false;\n }\n }\n return true;\n }\n move(dir, enter) {\n if (enter && this.enterChild(dir, 0, 4 /* Side.DontCare */))\n return true;\n for (;;) {\n if (this.sibling(dir))\n return true;\n if (this.atLastNode(dir) || !this.parent())\n return false;\n }\n }\n /**\n Move to the next node in a\n [pre-order](https://en.wikipedia.org/wiki/Tree_traversal#Pre-order,_NLR)\n traversal, going from a node to its first child or, if the\n current node is empty or `enter` is false, its next sibling or\n the next sibling of the first parent node that has one.\n */\n next(enter = true) { return this.move(1, enter); }\n /**\n Move to the next node in a last-to-first pre-order traveral. A\n node is followed by its last child or, if it has none, its\n previous sibling or the previous sibling of the first parent\n node that has one.\n */\n prev(enter = true) { return this.move(-1, enter); }\n /**\n Move the cursor to the innermost node that covers `pos`. If\n `side` is -1, it will enter nodes that end at `pos`. If it is 1,\n it will enter nodes that start at `pos`.\n */\n moveTo(pos, side = 0) {\n // Move up to a node that actually holds the position, if possible\n while (this.from == this.to ||\n (side < 1 ? this.from >= pos : this.from > pos) ||\n (side > -1 ? this.to <= pos : this.to < pos))\n if (!this.parent())\n break;\n // Then scan down into child nodes as far as possible\n while (this.enterChild(1, pos, side)) { }\n return this;\n }\n /**\n Get a [syntax node](#common.SyntaxNode) at the cursor's current\n position.\n */\n get node() {\n if (!this.buffer)\n return this._tree;\n let cache = this.bufferNode, result = null, depth = 0;\n if (cache && cache.context == this.buffer) {\n scan: for (let index = this.index, d = this.stack.length; d >= 0;) {\n for (let c = cache; c; c = c._parent)\n if (c.index == index) {\n if (index == this.index)\n return c;\n result = c;\n depth = d + 1;\n break scan;\n }\n index = this.stack[--d];\n }\n }\n for (let i = depth; i < this.stack.length; i++)\n result = new BufferNode(this.buffer, result, this.stack[i]);\n return this.bufferNode = new BufferNode(this.buffer, result, this.index);\n }\n /**\n Get the [tree](#common.Tree) that represents the current node, if\n any. Will return null when the node is in a [tree\n buffer](#common.TreeBuffer).\n */\n get tree() {\n return this.buffer ? null : this._tree._tree;\n }\n /**\n Iterate over the current node and all its descendants, calling\n `enter` when entering a node and `leave`, if given, when leaving\n one. When `enter` returns `false`, any children of that node are\n skipped, and `leave` isn't called for it.\n */\n iterate(enter, leave) {\n for (let depth = 0;;) {\n let mustLeave = false;\n if (this.type.isAnonymous || enter(this) !== false) {\n if (this.firstChild()) {\n depth++;\n continue;\n }\n if (!this.type.isAnonymous)\n mustLeave = true;\n }\n for (;;) {\n if (mustLeave && leave)\n leave(this);\n mustLeave = this.type.isAnonymous;\n if (this.nextSibling())\n break;\n if (!depth)\n return;\n this.parent();\n depth--;\n mustLeave = true;\n }\n }\n }\n /**\n Test whether the current node matches a given context—a sequence\n of direct parent node names. Empty strings in the context array\n are treated as wildcards.\n */\n matchContext(context) {\n if (!this.buffer)\n return matchNodeContext(this.node, context);\n let { buffer } = this.buffer, { types } = buffer.set;\n for (let i = context.length - 1, d = this.stack.length - 1; i >= 0; d--) {\n if (d < 0)\n return matchNodeContext(this.node, context, i);\n let type = types[buffer.buffer[this.stack[d]]];\n if (!type.isAnonymous) {\n if (context[i] && context[i] != type.name)\n return false;\n i--;\n }\n }\n return true;\n }\n}\nfunction hasChild(tree) {\n return tree.children.some(ch => ch instanceof TreeBuffer || !ch.type.isAnonymous || hasChild(ch));\n}\nfunction buildTree(data) {\n var _a;\n let { buffer, nodeSet, maxBufferLength = DefaultBufferLength, reused = [], minRepeatType = nodeSet.types.length } = data;\n let cursor = Array.isArray(buffer) ? new FlatBufferCursor(buffer, buffer.length) : buffer;\n let types = nodeSet.types;\n let contextHash = 0, lookAhead = 0;\n function takeNode(parentStart, minPos, children, positions, inRepeat, depth) {\n let { id, start, end, size } = cursor;\n let lookAheadAtStart = lookAhead;\n while (size < 0) {\n cursor.next();\n if (size == -1 /* SpecialRecord.Reuse */) {\n let node = reused[id];\n children.push(node);\n positions.push(start - parentStart);\n return;\n }\n else if (size == -3 /* SpecialRecord.ContextChange */) { // Context change\n contextHash = id;\n return;\n }\n else if (size == -4 /* SpecialRecord.LookAhead */) {\n lookAhead = id;\n return;\n }\n else {\n throw new RangeError(`Unrecognized record size: ${size}`);\n }\n }\n let type = types[id], node, buffer;\n let startPos = start - parentStart;\n if (end - start <= maxBufferLength && (buffer = findBufferSize(cursor.pos - minPos, inRepeat))) {\n // Small enough for a buffer, and no reused nodes inside\n let data = new Uint16Array(buffer.size - buffer.skip);\n let endPos = cursor.pos - buffer.size, index = data.length;\n while (cursor.pos > endPos)\n index = copyToBuffer(buffer.start, data, index);\n node = new TreeBuffer(data, end - buffer.start, nodeSet);\n startPos = buffer.start - parentStart;\n }\n else { // Make it a node\n let endPos = cursor.pos - size;\n cursor.next();\n let localChildren = [], localPositions = [];\n let localInRepeat = id >= minRepeatType ? id : -1;\n let lastGroup = 0, lastEnd = end;\n while (cursor.pos > endPos) {\n if (localInRepeat >= 0 && cursor.id == localInRepeat && cursor.size >= 0) {\n if (cursor.end <= lastEnd - maxBufferLength) {\n makeRepeatLeaf(localChildren, localPositions, start, lastGroup, cursor.end, lastEnd, localInRepeat, lookAheadAtStart);\n lastGroup = localChildren.length;\n lastEnd = cursor.end;\n }\n cursor.next();\n }\n else if (depth > 2500 /* CutOff.Depth */) {\n takeFlatNode(start, endPos, localChildren, localPositions);\n }\n else {\n takeNode(start, endPos, localChildren, localPositions, localInRepeat, depth + 1);\n }\n }\n if (localInRepeat >= 0 && lastGroup > 0 && lastGroup < localChildren.length)\n makeRepeatLeaf(localChildren, localPositions, start, lastGroup, start, lastEnd, localInRepeat, lookAheadAtStart);\n localChildren.reverse();\n localPositions.reverse();\n if (localInRepeat > -1 && lastGroup > 0) {\n let make = makeBalanced(type);\n node = balanceRange(type, localChildren, localPositions, 0, localChildren.length, 0, end - start, make, make);\n }\n else {\n node = makeTree(type, localChildren, localPositions, end - start, lookAheadAtStart - end);\n }\n }\n children.push(node);\n positions.push(startPos);\n }\n function takeFlatNode(parentStart, minPos, children, positions) {\n let nodes = []; // Temporary, inverted array of leaf nodes found, with absolute positions\n let nodeCount = 0, stopAt = -1;\n while (cursor.pos > minPos) {\n let { id, start, end, size } = cursor;\n if (size > 4) { // Not a leaf\n cursor.next();\n }\n else if (stopAt > -1 && start < stopAt) {\n break;\n }\n else {\n if (stopAt < 0)\n stopAt = end - maxBufferLength;\n nodes.push(id, start, end);\n nodeCount++;\n cursor.next();\n }\n }\n if (nodeCount) {\n let buffer = new Uint16Array(nodeCount * 4);\n let start = nodes[nodes.length - 2];\n for (let i = nodes.length - 3, j = 0; i >= 0; i -= 3) {\n buffer[j++] = nodes[i];\n buffer[j++] = nodes[i + 1] - start;\n buffer[j++] = nodes[i + 2] - start;\n buffer[j++] = j;\n }\n children.push(new TreeBuffer(buffer, nodes[2] - start, nodeSet));\n positions.push(start - parentStart);\n }\n }\n function makeBalanced(type) {\n return (children, positions, length) => {\n let lookAhead = 0, lastI = children.length - 1, last, lookAheadProp;\n if (lastI >= 0 && (last = children[lastI]) instanceof Tree) {\n if (!lastI && last.type == type && last.length == length)\n return last;\n if (lookAheadProp = last.prop(NodeProp.lookAhead))\n lookAhead = positions[lastI] + last.length + lookAheadProp;\n }\n return makeTree(type, children, positions, length, lookAhead);\n };\n }\n function makeRepeatLeaf(children, positions, base, i, from, to, type, lookAhead) {\n let localChildren = [], localPositions = [];\n while (children.length > i) {\n localChildren.push(children.pop());\n localPositions.push(positions.pop() + base - from);\n }\n children.push(makeTree(nodeSet.types[type], localChildren, localPositions, to - from, lookAhead - to));\n positions.push(from - base);\n }\n function makeTree(type, children, positions, length, lookAhead = 0, props) {\n if (contextHash) {\n let pair = [NodeProp.contextHash, contextHash];\n props = props ? [pair].concat(props) : [pair];\n }\n if (lookAhead > 25) {\n let pair = [NodeProp.lookAhead, lookAhead];\n props = props ? [pair].concat(props) : [pair];\n }\n return new Tree(type, children, positions, length, props);\n }\n function findBufferSize(maxSize, inRepeat) {\n // Scan through the buffer to find previous siblings that fit\n // together in a TreeBuffer, and don't contain any reused nodes\n // (which can't be stored in a buffer).\n // If `inRepeat` is > -1, ignore node boundaries of that type for\n // nesting, but make sure the end falls either at the start\n // (`maxSize`) or before such a node.\n let fork = cursor.fork();\n let size = 0, start = 0, skip = 0, minStart = fork.end - maxBufferLength;\n let result = { size: 0, start: 0, skip: 0 };\n scan: for (let minPos = fork.pos - maxSize; fork.pos > minPos;) {\n let nodeSize = fork.size;\n // Pretend nested repeat nodes of the same type don't exist\n if (fork.id == inRepeat && nodeSize >= 0) {\n // Except that we store the current state as a valid return\n // value.\n result.size = size;\n result.start = start;\n result.skip = skip;\n skip += 4;\n size += 4;\n fork.next();\n continue;\n }\n let startPos = fork.pos - nodeSize;\n if (nodeSize < 0 || startPos < minPos || fork.start < minStart)\n break;\n let localSkipped = fork.id >= minRepeatType ? 4 : 0;\n let nodeStart = fork.start;\n fork.next();\n while (fork.pos > startPos) {\n if (fork.size < 0) {\n if (fork.size == -3 /* SpecialRecord.ContextChange */)\n localSkipped += 4;\n else\n break scan;\n }\n else if (fork.id >= minRepeatType) {\n localSkipped += 4;\n }\n fork.next();\n }\n start = nodeStart;\n size += nodeSize;\n skip += localSkipped;\n }\n if (inRepeat < 0 || size == maxSize) {\n result.size = size;\n result.start = start;\n result.skip = skip;\n }\n return result.size > 4 ? result : undefined;\n }\n function copyToBuffer(bufferStart, buffer, index) {\n let { id, start, end, size } = cursor;\n cursor.next();\n if (size >= 0 && id < minRepeatType) {\n let startIndex = index;\n if (size > 4) {\n let endPos = cursor.pos - (size - 4);\n while (cursor.pos > endPos)\n index = copyToBuffer(bufferStart, buffer, index);\n }\n buffer[--index] = startIndex;\n buffer[--index] = end - bufferStart;\n buffer[--index] = start - bufferStart;\n buffer[--index] = id;\n }\n else if (size == -3 /* SpecialRecord.ContextChange */) {\n contextHash = id;\n }\n else if (size == -4 /* SpecialRecord.LookAhead */) {\n lookAhead = id;\n }\n return index;\n }\n let children = [], positions = [];\n while (cursor.pos > 0)\n takeNode(data.start || 0, data.bufferStart || 0, children, positions, -1, 0);\n let length = (_a = data.length) !== null && _a !== void 0 ? _a : (children.length ? positions[0] + children[0].length : 0);\n return new Tree(types[data.topID], children.reverse(), positions.reverse(), length);\n}\nconst nodeSizeCache = new WeakMap;\nfunction nodeSize(balanceType, node) {\n if (!balanceType.isAnonymous || node instanceof TreeBuffer || node.type != balanceType)\n return 1;\n let size = nodeSizeCache.get(node);\n if (size == null) {\n size = 1;\n for (let child of node.children) {\n if (child.type != balanceType || !(child instanceof Tree)) {\n size = 1;\n break;\n }\n size += nodeSize(balanceType, child);\n }\n nodeSizeCache.set(node, size);\n }\n return size;\n}\nfunction balanceRange(\n// The type the balanced tree's inner nodes.\nbalanceType, \n// The direct children and their positions\nchildren, positions, \n// The index range in children/positions to use\nfrom, to, \n// The start position of the nodes, relative to their parent.\nstart, \n// Length of the outer node\nlength, \n// Function to build the top node of the balanced tree\nmkTop, \n// Function to build internal nodes for the balanced tree\nmkTree) {\n let total = 0;\n for (let i = from; i < to; i++)\n total += nodeSize(balanceType, children[i]);\n let maxChild = Math.ceil((total * 1.5) / 8 /* Balance.BranchFactor */);\n let localChildren = [], localPositions = [];\n function divide(children, positions, from, to, offset) {\n for (let i = from; i < to;) {\n let groupFrom = i, groupStart = positions[i], groupSize = nodeSize(balanceType, children[i]);\n i++;\n for (; i < to; i++) {\n let nextSize = nodeSize(balanceType, children[i]);\n if (groupSize + nextSize >= maxChild)\n break;\n groupSize += nextSize;\n }\n if (i == groupFrom + 1) {\n if (groupSize > maxChild) {\n let only = children[groupFrom]; // Only trees can have a size > 1\n divide(only.children, only.positions, 0, only.children.length, positions[groupFrom] + offset);\n continue;\n }\n localChildren.push(children[groupFrom]);\n }\n else {\n let length = positions[i - 1] + children[i - 1].length - groupStart;\n localChildren.push(balanceRange(balanceType, children, positions, groupFrom, i, groupStart, length, null, mkTree));\n }\n localPositions.push(groupStart + offset - start);\n }\n }\n divide(children, positions, from, to, 0);\n return (mkTop || mkTree)(localChildren, localPositions, length);\n}\n/**\nProvides a way to associate values with pieces of trees. As long\nas that part of the tree is reused, the associated values can be\nretrieved from an updated tree.\n*/\nclass NodeWeakMap {\n constructor() {\n this.map = new WeakMap();\n }\n setBuffer(buffer, index, value) {\n let inner = this.map.get(buffer);\n if (!inner)\n this.map.set(buffer, inner = new Map);\n inner.set(index, value);\n }\n getBuffer(buffer, index) {\n let inner = this.map.get(buffer);\n return inner && inner.get(index);\n }\n /**\n Set the value for this syntax node.\n */\n set(node, value) {\n if (node instanceof BufferNode)\n this.setBuffer(node.context.buffer, node.index, value);\n else if (node instanceof TreeNode)\n this.map.set(node.tree, value);\n }\n /**\n Retrieve value for this syntax node, if it exists in the map.\n */\n get(node) {\n return node instanceof BufferNode ? this.getBuffer(node.context.buffer, node.index)\n : node instanceof TreeNode ? this.map.get(node.tree) : undefined;\n }\n /**\n Set the value for the node that a cursor currently points to.\n */\n cursorSet(cursor, value) {\n if (cursor.buffer)\n this.setBuffer(cursor.buffer.buffer, cursor.index, value);\n else\n this.map.set(cursor.tree, value);\n }\n /**\n Retrieve the value for the node that a cursor currently points\n to.\n */\n cursorGet(cursor) {\n return cursor.buffer ? this.getBuffer(cursor.buffer.buffer, cursor.index) : this.map.get(cursor.tree);\n }\n}\n\n/**\nTree fragments are used during [incremental\nparsing](#common.Parser.startParse) to track parts of old trees\nthat can be reused in a new parse. An array of fragments is used\nto track regions of an old tree whose nodes might be reused in new\nparses. Use the static\n[`applyChanges`](#common.TreeFragment^applyChanges) method to\nupdate fragments for document changes.\n*/\nclass TreeFragment {\n /**\n Construct a tree fragment. You'll usually want to use\n [`addTree`](#common.TreeFragment^addTree) and\n [`applyChanges`](#common.TreeFragment^applyChanges) instead of\n calling this directly.\n */\n constructor(\n /**\n The start of the unchanged range pointed to by this fragment.\n This refers to an offset in the _updated_ document (as opposed\n to the original tree).\n */\n from, \n /**\n The end of the unchanged range.\n */\n to, \n /**\n The tree that this fragment is based on.\n */\n tree, \n /**\n The offset between the fragment's tree and the document that\n this fragment can be used against. Add this when going from\n document to tree positions, subtract it to go from tree to\n document positions.\n */\n offset, openStart = false, openEnd = false) {\n this.from = from;\n this.to = to;\n this.tree = tree;\n this.offset = offset;\n this.open = (openStart ? 1 /* Open.Start */ : 0) | (openEnd ? 2 /* Open.End */ : 0);\n }\n /**\n Whether the start of the fragment represents the start of a\n parse, or the end of a change. (In the second case, it may not\n be safe to reuse some nodes at the start, depending on the\n parsing algorithm.)\n */\n get openStart() { return (this.open & 1 /* Open.Start */) > 0; }\n /**\n Whether the end of the fragment represents the end of a\n full-document parse, or the start of a change.\n */\n get openEnd() { return (this.open & 2 /* Open.End */) > 0; }\n /**\n Create a set of fragments from a freshly parsed tree, or update\n an existing set of fragments by replacing the ones that overlap\n with a tree with content from the new tree. When `partial` is\n true, the parse is treated as incomplete, and the resulting\n fragment has [`openEnd`](#common.TreeFragment.openEnd) set to\n true.\n */\n static addTree(tree, fragments = [], partial = false) {\n let result = [new TreeFragment(0, tree.length, tree, 0, false, partial)];\n for (let f of fragments)\n if (f.to > tree.length)\n result.push(f);\n return result;\n }\n /**\n Apply a set of edits to an array of fragments, removing or\n splitting fragments as necessary to remove edited ranges, and\n adjusting offsets for fragments that moved.\n */\n static applyChanges(fragments, changes, minGap = 128) {\n if (!changes.length)\n return fragments;\n let result = [];\n let fI = 1, nextF = fragments.length ? fragments[0] : null;\n for (let cI = 0, pos = 0, off = 0;; cI++) {\n let nextC = cI < changes.length ? changes[cI] : null;\n let nextPos = nextC ? nextC.fromA : 1e9;\n if (nextPos - pos >= minGap)\n while (nextF && nextF.from < nextPos) {\n let cut = nextF;\n if (pos >= cut.from || nextPos <= cut.to || off) {\n let fFrom = Math.max(cut.from, pos) - off, fTo = Math.min(cut.to, nextPos) - off;\n cut = fFrom >= fTo ? null : new TreeFragment(fFrom, fTo, cut.tree, cut.offset + off, cI > 0, !!nextC);\n }\n if (cut)\n result.push(cut);\n if (nextF.to > nextPos)\n break;\n nextF = fI < fragments.length ? fragments[fI++] : null;\n }\n if (!nextC)\n break;\n pos = nextC.toA;\n off = nextC.toA - nextC.toB;\n }\n return result;\n }\n}\n/**\nA superclass that parsers should extend.\n*/\nclass Parser {\n /**\n Start a parse, returning a [partial parse](#common.PartialParse)\n object. [`fragments`](#common.TreeFragment) can be passed in to\n make the parse incremental.\n \n By default, the entire input is parsed. You can pass `ranges`,\n which should be a sorted array of non-empty, non-overlapping\n ranges, to parse only those ranges. The tree returned in that\n case will start at `ranges[0].from`.\n */\n startParse(input, fragments, ranges) {\n if (typeof input == \"string\")\n input = new StringInput(input);\n ranges = !ranges ? [new Range(0, input.length)] : ranges.length ? ranges.map(r => new Range(r.from, r.to)) : [new Range(0, 0)];\n return this.createParse(input, fragments || [], ranges);\n }\n /**\n Run a full parse, returning the resulting tree.\n */\n parse(input, fragments, ranges) {\n let parse = this.startParse(input, fragments, ranges);\n for (;;) {\n let done = parse.advance();\n if (done)\n return done;\n }\n }\n}\nclass StringInput {\n constructor(string) {\n this.string = string;\n }\n get length() { return this.string.length; }\n chunk(from) { return this.string.slice(from); }\n get lineChunks() { return false; }\n read(from, to) { return this.string.slice(from, to); }\n}\n\n/**\nCreate a parse wrapper that, after the inner parse completes,\nscans its tree for mixed language regions with the `nest`\nfunction, runs the resulting [inner parses](#common.NestedParse),\nand then [mounts](#common.NodeProp^mounted) their results onto the\ntree.\n*/\nfunction parseMixed(nest) {\n return (parse, input, fragments, ranges) => new MixedParse(parse, nest, input, fragments, ranges);\n}\nclass InnerParse {\n constructor(parser, parse, overlay, target, from) {\n this.parser = parser;\n this.parse = parse;\n this.overlay = overlay;\n this.target = target;\n this.from = from;\n }\n}\nfunction checkRanges(ranges) {\n if (!ranges.length || ranges.some(r => r.from >= r.to))\n throw new RangeError(\"Invalid inner parse ranges given: \" + JSON.stringify(ranges));\n}\nclass ActiveOverlay {\n constructor(parser, predicate, mounts, index, start, target, prev) {\n this.parser = parser;\n this.predicate = predicate;\n this.mounts = mounts;\n this.index = index;\n this.start = start;\n this.target = target;\n this.prev = prev;\n this.depth = 0;\n this.ranges = [];\n }\n}\nconst stoppedInner = new NodeProp({ perNode: true });\nclass MixedParse {\n constructor(base, nest, input, fragments, ranges) {\n this.nest = nest;\n this.input = input;\n this.fragments = fragments;\n this.ranges = ranges;\n this.inner = [];\n this.innerDone = 0;\n this.baseTree = null;\n this.stoppedAt = null;\n this.baseParse = base;\n }\n advance() {\n if (this.baseParse) {\n let done = this.baseParse.advance();\n if (!done)\n return null;\n this.baseParse = null;\n this.baseTree = done;\n this.startInner();\n if (this.stoppedAt != null)\n for (let inner of this.inner)\n inner.parse.stopAt(this.stoppedAt);\n }\n if (this.innerDone == this.inner.length) {\n let result = this.baseTree;\n if (this.stoppedAt != null)\n result = new Tree(result.type, result.children, result.positions, result.length, result.propValues.concat([[stoppedInner, this.stoppedAt]]));\n return result;\n }\n let inner = this.inner[this.innerDone], done = inner.parse.advance();\n if (done) {\n this.innerDone++;\n // This is a somewhat dodgy but super helpful hack where we\n // patch up nodes created by the inner parse (and thus\n // presumably not aliased anywhere else) to hold the information\n // about the inner parse.\n let props = Object.assign(Object.create(null), inner.target.props);\n props[NodeProp.mounted.id] = new MountedTree(done, inner.overlay, inner.parser);\n inner.target.props = props;\n }\n return null;\n }\n get parsedPos() {\n if (this.baseParse)\n return 0;\n let pos = this.input.length;\n for (let i = this.innerDone; i < this.inner.length; i++) {\n if (this.inner[i].from < pos)\n pos = Math.min(pos, this.inner[i].parse.parsedPos);\n }\n return pos;\n }\n stopAt(pos) {\n this.stoppedAt = pos;\n if (this.baseParse)\n this.baseParse.stopAt(pos);\n else\n for (let i = this.innerDone; i < this.inner.length; i++)\n this.inner[i].parse.stopAt(pos);\n }\n startInner() {\n let fragmentCursor = new FragmentCursor(this.fragments);\n let overlay = null;\n let covered = null;\n let cursor = new TreeCursor(new TreeNode(this.baseTree, this.ranges[0].from, 0, null), IterMode.IncludeAnonymous | IterMode.IgnoreMounts);\n scan: for (let nest, isCovered;;) {\n let enter = true, range;\n if (this.stoppedAt != null && cursor.from >= this.stoppedAt) {\n enter = false;\n }\n else if (fragmentCursor.hasNode(cursor)) {\n if (overlay) {\n let match = overlay.mounts.find(m => m.frag.from <= cursor.from && m.frag.to >= cursor.to && m.mount.overlay);\n if (match)\n for (let r of match.mount.overlay) {\n let from = r.from + match.pos, to = r.to + match.pos;\n if (from >= cursor.from && to <= cursor.to && !overlay.ranges.some(r => r.from < to && r.to > from))\n overlay.ranges.push({ from, to });\n }\n }\n enter = false;\n }\n else if (covered && (isCovered = checkCover(covered.ranges, cursor.from, cursor.to))) {\n enter = isCovered != 2 /* Cover.Full */;\n }\n else if (!cursor.type.isAnonymous && (nest = this.nest(cursor, this.input)) &&\n (cursor.from < cursor.to || !nest.overlay)) {\n if (!cursor.tree)\n materialize(cursor);\n let oldMounts = fragmentCursor.findMounts(cursor.from, nest.parser);\n if (typeof nest.overlay == \"function\") {\n overlay = new ActiveOverlay(nest.parser, nest.overlay, oldMounts, this.inner.length, cursor.from, cursor.tree, overlay);\n }\n else {\n let ranges = punchRanges(this.ranges, nest.overlay ||\n (cursor.from < cursor.to ? [new Range(cursor.from, cursor.to)] : []));\n if (ranges.length)\n checkRanges(ranges);\n if (ranges.length || !nest.overlay)\n this.inner.push(new InnerParse(nest.parser, ranges.length ? nest.parser.startParse(this.input, enterFragments(oldMounts, ranges), ranges)\n : nest.parser.startParse(\"\"), nest.overlay ? nest.overlay.map(r => new Range(r.from - cursor.from, r.to - cursor.from)) : null, cursor.tree, ranges.length ? ranges[0].from : cursor.from));\n if (!nest.overlay)\n enter = false;\n else if (ranges.length)\n covered = { ranges, depth: 0, prev: covered };\n }\n }\n else if (overlay && (range = overlay.predicate(cursor))) {\n if (range === true)\n range = new Range(cursor.from, cursor.to);\n if (range.from < range.to)\n overlay.ranges.push(range);\n }\n if (enter && cursor.firstChild()) {\n if (overlay)\n overlay.depth++;\n if (covered)\n covered.depth++;\n }\n else {\n for (;;) {\n if (cursor.nextSibling())\n break;\n if (!cursor.parent())\n break scan;\n if (overlay && !--overlay.depth) {\n let ranges = punchRanges(this.ranges, overlay.ranges);\n if (ranges.length) {\n checkRanges(ranges);\n this.inner.splice(overlay.index, 0, new InnerParse(overlay.parser, overlay.parser.startParse(this.input, enterFragments(overlay.mounts, ranges), ranges), overlay.ranges.map(r => new Range(r.from - overlay.start, r.to - overlay.start)), overlay.target, ranges[0].from));\n }\n overlay = overlay.prev;\n }\n if (covered && !--covered.depth)\n covered = covered.prev;\n }\n }\n }\n }\n}\nfunction checkCover(covered, from, to) {\n for (let range of covered) {\n if (range.from >= to)\n break;\n if (range.to > from)\n return range.from <= from && range.to >= to ? 2 /* Cover.Full */ : 1 /* Cover.Partial */;\n }\n return 0 /* Cover.None */;\n}\n// Take a piece of buffer and convert it into a stand-alone\n// TreeBuffer.\nfunction sliceBuf(buf, startI, endI, nodes, positions, off) {\n if (startI < endI) {\n let from = buf.buffer[startI + 1];\n nodes.push(buf.slice(startI, endI, from));\n positions.push(from - off);\n }\n}\n// This function takes a node that's in a buffer, and converts it, and\n// its parent buffer nodes, into a Tree. This is again acting on the\n// assumption that the trees and buffers have been constructed by the\n// parse that was ran via the mix parser, and thus aren't shared with\n// any other code, making violations of the immutability safe.\nfunction materialize(cursor) {\n let { node } = cursor, stack = [];\n let buffer = node.context.buffer;\n // Scan up to the nearest tree\n do {\n stack.push(cursor.index);\n cursor.parent();\n } while (!cursor.tree);\n // Find the index of the buffer in that tree\n let base = cursor.tree, i = base.children.indexOf(buffer);\n let buf = base.children[i], b = buf.buffer, newStack = [i];\n // Split a level in the buffer, putting the nodes before and after\n // the child that contains `node` into new buffers.\n function split(startI, endI, type, innerOffset, length, stackPos) {\n let targetI = stack[stackPos];\n let children = [], positions = [];\n sliceBuf(buf, startI, targetI, children, positions, innerOffset);\n let from = b[targetI + 1], to = b[targetI + 2];\n newStack.push(children.length);\n let child = stackPos\n ? split(targetI + 4, b[targetI + 3], buf.set.types[b[targetI]], from, to - from, stackPos - 1)\n : node.toTree();\n children.push(child);\n positions.push(from - innerOffset);\n sliceBuf(buf, b[targetI + 3], endI, children, positions, innerOffset);\n return new Tree(type, children, positions, length);\n }\n base.children[i] = split(0, b.length, NodeType.none, 0, buf.length, stack.length - 1);\n // Move the cursor back to the target node\n for (let index of newStack) {\n let tree = cursor.tree.children[index], pos = cursor.tree.positions[index];\n cursor.yield(new TreeNode(tree, pos + cursor.from, index, cursor._tree));\n }\n}\nclass StructureCursor {\n constructor(root, offset) {\n this.offset = offset;\n this.done = false;\n this.cursor = root.cursor(IterMode.IncludeAnonymous | IterMode.IgnoreMounts);\n }\n // Move to the first node (in pre-order) that starts at or after `pos`.\n moveTo(pos) {\n let { cursor } = this, p = pos - this.offset;\n while (!this.done && cursor.from < p) {\n if (cursor.to >= pos && cursor.enter(p, 1, IterMode.IgnoreOverlays | IterMode.ExcludeBuffers)) ;\n else if (!cursor.next(false))\n this.done = true;\n }\n }\n hasNode(cursor) {\n this.moveTo(cursor.from);\n if (!this.done && this.cursor.from + this.offset == cursor.from && this.cursor.tree) {\n for (let tree = this.cursor.tree;;) {\n if (tree == cursor.tree)\n return true;\n if (tree.children.length && tree.positions[0] == 0 && tree.children[0] instanceof Tree)\n tree = tree.children[0];\n else\n break;\n }\n }\n return false;\n }\n}\nclass FragmentCursor {\n constructor(fragments) {\n var _a;\n this.fragments = fragments;\n this.curTo = 0;\n this.fragI = 0;\n if (fragments.length) {\n let first = this.curFrag = fragments[0];\n this.curTo = (_a = first.tree.prop(stoppedInner)) !== null && _a !== void 0 ? _a : first.to;\n this.inner = new StructureCursor(first.tree, -first.offset);\n }\n else {\n this.curFrag = this.inner = null;\n }\n }\n hasNode(node) {\n while (this.curFrag && node.from >= this.curTo)\n this.nextFrag();\n return this.curFrag && this.curFrag.from <= node.from && this.curTo >= node.to && this.inner.hasNode(node);\n }\n nextFrag() {\n var _a;\n this.fragI++;\n if (this.fragI == this.fragments.length) {\n this.curFrag = this.inner = null;\n }\n else {\n let frag = this.curFrag = this.fragments[this.fragI];\n this.curTo = (_a = frag.tree.prop(stoppedInner)) !== null && _a !== void 0 ? _a : frag.to;\n this.inner = new StructureCursor(frag.tree, -frag.offset);\n }\n }\n findMounts(pos, parser) {\n var _a;\n let result = [];\n if (this.inner) {\n this.inner.cursor.moveTo(pos, 1);\n for (let pos = this.inner.cursor.node; pos; pos = pos.parent) {\n let mount = (_a = pos.tree) === null || _a === void 0 ? void 0 : _a.prop(NodeProp.mounted);\n if (mount && mount.parser == parser) {\n for (let i = this.fragI; i < this.fragments.length; i++) {\n let frag = this.fragments[i];\n if (frag.from >= pos.to)\n break;\n if (frag.tree == this.curFrag.tree)\n result.push({\n frag,\n pos: pos.from - frag.offset,\n mount\n });\n }\n }\n }\n }\n return result;\n }\n}\nfunction punchRanges(outer, ranges) {\n let copy = null, current = ranges;\n for (let i = 1, j = 0; i < outer.length; i++) {\n let gapFrom = outer[i - 1].to, gapTo = outer[i].from;\n for (; j < current.length; j++) {\n let r = current[j];\n if (r.from >= gapTo)\n break;\n if (r.to <= gapFrom)\n continue;\n if (!copy)\n current = copy = ranges.slice();\n if (r.from < gapFrom) {\n copy[j] = new Range(r.from, gapFrom);\n if (r.to > gapTo)\n copy.splice(j + 1, 0, new Range(gapTo, r.to));\n }\n else if (r.to > gapTo) {\n copy[j--] = new Range(gapTo, r.to);\n }\n else {\n copy.splice(j--, 1);\n }\n }\n }\n return current;\n}\nfunction findCoverChanges(a, b, from, to) {\n let iA = 0, iB = 0, inA = false, inB = false, pos = -1e9;\n let result = [];\n for (;;) {\n let nextA = iA == a.length ? 1e9 : inA ? a[iA].to : a[iA].from;\n let nextB = iB == b.length ? 1e9 : inB ? b[iB].to : b[iB].from;\n if (inA != inB) {\n let start = Math.max(pos, from), end = Math.min(nextA, nextB, to);\n if (start < end)\n result.push(new Range(start, end));\n }\n pos = Math.min(nextA, nextB);\n if (pos == 1e9)\n break;\n if (nextA == pos) {\n if (!inA)\n inA = true;\n else {\n inA = false;\n iA++;\n }\n }\n if (nextB == pos) {\n if (!inB)\n inB = true;\n else {\n inB = false;\n iB++;\n }\n }\n }\n return result;\n}\n// Given a number of fragments for the outer tree, and a set of ranges\n// to parse, find fragments for inner trees mounted around those\n// ranges, if any.\nfunction enterFragments(mounts, ranges) {\n let result = [];\n for (let { pos, mount, frag } of mounts) {\n let startPos = pos + (mount.overlay ? mount.overlay[0].from : 0), endPos = startPos + mount.tree.length;\n let from = Math.max(frag.from, startPos), to = Math.min(frag.to, endPos);\n if (mount.overlay) {\n let overlay = mount.overlay.map(r => new Range(r.from + pos, r.to + pos));\n let changes = findCoverChanges(ranges, overlay, from, to);\n for (let i = 0, pos = from;; i++) {\n let last = i == changes.length, end = last ? to : changes[i].from;\n if (end > pos)\n result.push(new TreeFragment(pos, end, mount.tree, -startPos, frag.from >= pos || frag.openStart, frag.to <= end || frag.openEnd));\n if (last)\n break;\n pos = changes[i].to;\n }\n }\n else {\n result.push(new TreeFragment(from, to, mount.tree, -startPos, frag.from >= startPos || frag.openStart, frag.to <= endPos || frag.openEnd));\n }\n }\n return result;\n}\n\nexport { DefaultBufferLength, IterMode, MountedTree, NodeProp, NodeSet, NodeType, NodeWeakMap, Parser, Tree, TreeBuffer, TreeCursor, TreeFragment, parseMixed };\n","import { NodeProp } from '@lezer/common';\n\nlet nextTagID = 0;\n/**\nHighlighting tags are markers that denote a highlighting category.\nThey are [associated](#highlight.styleTags) with parts of a syntax\ntree by a language mode, and then mapped to an actual CSS style by\na [highlighter](#highlight.Highlighter).\n\nBecause syntax tree node types and highlight styles have to be\nable to talk the same language, CodeMirror uses a mostly _closed_\n[vocabulary](#highlight.tags) of syntax tags (as opposed to\ntraditional open string-based systems, which make it hard for\nhighlighting themes to cover all the tokens produced by the\nvarious languages).\n\nIt _is_ possible to [define](#highlight.Tag^define) your own\nhighlighting tags for system-internal use (where you control both\nthe language package and the highlighter), but such tags will not\nbe picked up by regular highlighters (though you can derive them\nfrom standard tags to allow highlighters to fall back to those).\n*/\nclass Tag {\n /**\n @internal\n */\n constructor(\n /**\n The set of this tag and all its parent tags, starting with\n this one itself and sorted in order of decreasing specificity.\n */\n set, \n /**\n The base unmodified tag that this one is based on, if it's\n modified @internal\n */\n base, \n /**\n The modifiers applied to this.base @internal\n */\n modified) {\n this.set = set;\n this.base = base;\n this.modified = modified;\n /**\n @internal\n */\n this.id = nextTagID++;\n }\n /**\n Define a new tag. If `parent` is given, the tag is treated as a\n sub-tag of that parent, and\n [highlighters](#highlight.tagHighlighter) that don't mention\n this tag will try to fall back to the parent tag (or grandparent\n tag, etc).\n */\n static define(parent) {\n if (parent === null || parent === void 0 ? void 0 : parent.base)\n throw new Error(\"Can not derive from a modified tag\");\n let tag = new Tag([], null, []);\n tag.set.push(tag);\n if (parent)\n for (let t of parent.set)\n tag.set.push(t);\n return tag;\n }\n /**\n Define a tag _modifier_, which is a function that, given a tag,\n will return a tag that is a subtag of the original. Applying the\n same modifier to a twice tag will return the same value (`m1(t1)\n == m1(t1)`) and applying multiple modifiers will, regardless or\n order, produce the same tag (`m1(m2(t1)) == m2(m1(t1))`).\n \n When multiple modifiers are applied to a given base tag, each\n smaller set of modifiers is registered as a parent, so that for\n example `m1(m2(m3(t1)))` is a subtype of `m1(m2(t1))`,\n `m1(m3(t1)`, and so on.\n */\n static defineModifier() {\n let mod = new Modifier;\n return (tag) => {\n if (tag.modified.indexOf(mod) > -1)\n return tag;\n return Modifier.get(tag.base || tag, tag.modified.concat(mod).sort((a, b) => a.id - b.id));\n };\n }\n}\nlet nextModifierID = 0;\nclass Modifier {\n constructor() {\n this.instances = [];\n this.id = nextModifierID++;\n }\n static get(base, mods) {\n if (!mods.length)\n return base;\n let exists = mods[0].instances.find(t => t.base == base && sameArray(mods, t.modified));\n if (exists)\n return exists;\n let set = [], tag = new Tag(set, base, mods);\n for (let m of mods)\n m.instances.push(tag);\n let configs = powerSet(mods);\n for (let parent of base.set)\n if (!parent.modified.length)\n for (let config of configs)\n set.push(Modifier.get(parent, config));\n return tag;\n }\n}\nfunction sameArray(a, b) {\n return a.length == b.length && a.every((x, i) => x == b[i]);\n}\nfunction powerSet(array) {\n let sets = [[]];\n for (let i = 0; i < array.length; i++) {\n for (let j = 0, e = sets.length; j < e; j++) {\n sets.push(sets[j].concat(array[i]));\n }\n }\n return sets.sort((a, b) => b.length - a.length);\n}\n/**\nThis function is used to add a set of tags to a language syntax\nvia [`NodeSet.extend`](#common.NodeSet.extend) or\n[`LRParser.configure`](#lr.LRParser.configure).\n\nThe argument object maps node selectors to [highlighting\ntags](#highlight.Tag) or arrays of tags.\n\nNode selectors may hold one or more (space-separated) node paths.\nSuch a path can be a [node name](#common.NodeType.name), or\nmultiple node names (or `*` wildcards) separated by slash\ncharacters, as in `\"Block/Declaration/VariableName\"`. Such a path\nmatches the final node but only if its direct parent nodes are the\nother nodes mentioned. A `*` in such a path matches any parent,\nbut only a single level—wildcards that match multiple parents\naren't supported, both for efficiency reasons and because Lezer\ntrees make it rather hard to reason about what they would match.)\n\nA path can be ended with `/...` to indicate that the tag assigned\nto the node should also apply to all child nodes, even if they\nmatch their own style (by default, only the innermost style is\nused).\n\nWhen a path ends in `!`, as in `Attribute!`, no further matching\nhappens for the node's child nodes, and the entire node gets the\ngiven style.\n\nIn this notation, node names that contain `/`, `!`, `*`, or `...`\nmust be quoted as JSON strings.\n\nFor example:\n\n```javascript\nparser.withProps(\n styleTags({\n // Style Number and BigNumber nodes\n \"Number BigNumber\": tags.number,\n // Style Escape nodes whose parent is String\n \"String/Escape\": tags.escape,\n // Style anything inside Attributes nodes\n \"Attributes!\": tags.meta,\n // Add a style to all content inside Italic nodes\n \"Italic/...\": tags.emphasis,\n // Style InvalidString nodes as both `string` and `invalid`\n \"InvalidString\": [tags.string, tags.invalid],\n // Style the node named \"/\" as punctuation\n '\"/\"': tags.punctuation\n })\n)\n```\n*/\nfunction styleTags(spec) {\n let byName = Object.create(null);\n for (let prop in spec) {\n let tags = spec[prop];\n if (!Array.isArray(tags))\n tags = [tags];\n for (let part of prop.split(\" \"))\n if (part) {\n let pieces = [], mode = 2 /* Mode.Normal */, rest = part;\n for (let pos = 0;;) {\n if (rest == \"...\" && pos > 0 && pos + 3 == part.length) {\n mode = 1 /* Mode.Inherit */;\n break;\n }\n let m = /^\"(?:[^\"\\\\]|\\\\.)*?\"|[^\\/!]+/.exec(rest);\n if (!m)\n throw new RangeError(\"Invalid path: \" + part);\n pieces.push(m[0] == \"*\" ? \"\" : m[0][0] == '\"' ? JSON.parse(m[0]) : m[0]);\n pos += m[0].length;\n if (pos == part.length)\n break;\n let next = part[pos++];\n if (pos == part.length && next == \"!\") {\n mode = 0 /* Mode.Opaque */;\n break;\n }\n if (next != \"/\")\n throw new RangeError(\"Invalid path: \" + part);\n rest = part.slice(pos);\n }\n let last = pieces.length - 1, inner = pieces[last];\n if (!inner)\n throw new RangeError(\"Invalid path: \" + part);\n let rule = new Rule(tags, mode, last > 0 ? pieces.slice(0, last) : null);\n byName[inner] = rule.sort(byName[inner]);\n }\n }\n return ruleNodeProp.add(byName);\n}\nconst ruleNodeProp = new NodeProp();\nclass Rule {\n constructor(tags, mode, context, next) {\n this.tags = tags;\n this.mode = mode;\n this.context = context;\n this.next = next;\n }\n get opaque() { return this.mode == 0 /* Mode.Opaque */; }\n get inherit() { return this.mode == 1 /* Mode.Inherit */; }\n sort(other) {\n if (!other || other.depth < this.depth) {\n this.next = other;\n return this;\n }\n other.next = this.sort(other.next);\n return other;\n }\n get depth() { return this.context ? this.context.length : 0; }\n}\nRule.empty = new Rule([], 2 /* Mode.Normal */, null);\n/**\nDefine a [highlighter](#highlight.Highlighter) from an array of\ntag/class pairs. Classes associated with more specific tags will\ntake precedence.\n*/\nfunction tagHighlighter(tags, options) {\n let map = Object.create(null);\n for (let style of tags) {\n if (!Array.isArray(style.tag))\n map[style.tag.id] = style.class;\n else\n for (let tag of style.tag)\n map[tag.id] = style.class;\n }\n let { scope, all = null } = options || {};\n return {\n style: (tags) => {\n let cls = all;\n for (let tag of tags) {\n for (let sub of tag.set) {\n let tagClass = map[sub.id];\n if (tagClass) {\n cls = cls ? cls + \" \" + tagClass : tagClass;\n break;\n }\n }\n }\n return cls;\n },\n scope\n };\n}\nfunction highlightTags(highlighters, tags) {\n let result = null;\n for (let highlighter of highlighters) {\n let value = highlighter.style(tags);\n if (value)\n result = result ? result + \" \" + value : value;\n }\n return result;\n}\n/**\nHighlight the given [tree](#common.Tree) with the given\n[highlighter](#highlight.Highlighter). Often, the higher-level\n[`highlightCode`](#highlight.highlightCode) function is easier to\nuse.\n*/\nfunction highlightTree(tree, highlighter, \n/**\nAssign styling to a region of the text. Will be called, in order\nof position, for any ranges where more than zero classes apply.\n`classes` is a space separated string of CSS classes.\n*/\nputStyle, \n/**\nThe start of the range to highlight.\n*/\nfrom = 0, \n/**\nThe end of the range.\n*/\nto = tree.length) {\n let builder = new HighlightBuilder(from, Array.isArray(highlighter) ? highlighter : [highlighter], putStyle);\n builder.highlightRange(tree.cursor(), from, to, \"\", builder.highlighters);\n builder.flush(to);\n}\n/**\nHighlight the given tree with the given highlighter, calling\n`putText` for every piece of text, either with a set of classes or\nwith the empty string when unstyled, and `putBreak` for every line\nbreak.\n*/\nfunction highlightCode(code, tree, highlighter, putText, putBreak, from = 0, to = code.length) {\n let pos = from;\n function writeTo(p, classes) {\n if (p <= pos)\n return;\n for (let text = code.slice(pos, p), i = 0;;) {\n let nextBreak = text.indexOf(\"\\n\", i);\n let upto = nextBreak < 0 ? text.length : nextBreak;\n if (upto > i)\n putText(text.slice(i, upto), classes);\n if (nextBreak < 0)\n break;\n putBreak();\n i = nextBreak + 1;\n }\n pos = p;\n }\n highlightTree(tree, highlighter, (from, to, classes) => {\n writeTo(from, \"\");\n writeTo(to, classes);\n }, from, to);\n writeTo(to, \"\");\n}\nclass HighlightBuilder {\n constructor(at, highlighters, span) {\n this.at = at;\n this.highlighters = highlighters;\n this.span = span;\n this.class = \"\";\n }\n startSpan(at, cls) {\n if (cls != this.class) {\n this.flush(at);\n if (at > this.at)\n this.at = at;\n this.class = cls;\n }\n }\n flush(to) {\n if (to > this.at && this.class)\n this.span(this.at, to, this.class);\n }\n highlightRange(cursor, from, to, inheritedClass, highlighters) {\n let { type, from: start, to: end } = cursor;\n if (start >= to || end <= from)\n return;\n if (type.isTop)\n highlighters = this.highlighters.filter(h => !h.scope || h.scope(type));\n let cls = inheritedClass;\n let rule = getStyleTags(cursor) || Rule.empty;\n let tagCls = highlightTags(highlighters, rule.tags);\n if (tagCls) {\n if (cls)\n cls += \" \";\n cls += tagCls;\n if (rule.mode == 1 /* Mode.Inherit */)\n inheritedClass += (inheritedClass ? \" \" : \"\") + tagCls;\n }\n this.startSpan(Math.max(from, start), cls);\n if (rule.opaque)\n return;\n let mounted = cursor.tree && cursor.tree.prop(NodeProp.mounted);\n if (mounted && mounted.overlay) {\n let inner = cursor.node.enter(mounted.overlay[0].from + start, 1);\n let innerHighlighters = this.highlighters.filter(h => !h.scope || h.scope(mounted.tree.type));\n let hasChild = cursor.firstChild();\n for (let i = 0, pos = start;; i++) {\n let next = i < mounted.overlay.length ? mounted.overlay[i] : null;\n let nextPos = next ? next.from + start : end;\n let rangeFrom = Math.max(from, pos), rangeTo = Math.min(to, nextPos);\n if (rangeFrom < rangeTo && hasChild) {\n while (cursor.from < rangeTo) {\n this.highlightRange(cursor, rangeFrom, rangeTo, inheritedClass, highlighters);\n this.startSpan(Math.min(rangeTo, cursor.to), cls);\n if (cursor.to >= nextPos || !cursor.nextSibling())\n break;\n }\n }\n if (!next || nextPos > to)\n break;\n pos = next.to + start;\n if (pos > from) {\n this.highlightRange(inner.cursor(), Math.max(from, next.from + start), Math.min(to, pos), \"\", innerHighlighters);\n this.startSpan(Math.min(to, pos), cls);\n }\n }\n if (hasChild)\n cursor.parent();\n }\n else if (cursor.firstChild()) {\n if (mounted)\n inheritedClass = \"\";\n do {\n if (cursor.to <= from)\n continue;\n if (cursor.from >= to)\n break;\n this.highlightRange(cursor, from, to, inheritedClass, highlighters);\n this.startSpan(Math.min(to, cursor.to), cls);\n } while (cursor.nextSibling());\n cursor.parent();\n }\n }\n}\n/**\nMatch a syntax node's [highlight rules](#highlight.styleTags). If\nthere's a match, return its set of tags, and whether it is\nopaque (uses a `!`) or applies to all child nodes (`/...`).\n*/\nfunction getStyleTags(node) {\n let rule = node.type.prop(ruleNodeProp);\n while (rule && rule.context && !node.matchContext(rule.context))\n rule = rule.next;\n return rule || null;\n}\nconst t = Tag.define;\nconst comment = t(), name = t(), typeName = t(name), propertyName = t(name), literal = t(), string = t(literal), number = t(literal), content = t(), heading = t(content), keyword = t(), operator = t(), punctuation = t(), bracket = t(punctuation), meta = t();\n/**\nThe default set of highlighting [tags](#highlight.Tag).\n\nThis collection is heavily biased towards programming languages,\nand necessarily incomplete. A full ontology of syntactic\nconstructs would fill a stack of books, and be impractical to\nwrite themes for. So try to make do with this set. If all else\nfails, [open an\nissue](https://github.com/codemirror/codemirror.next) to propose a\nnew tag, or [define](#highlight.Tag^define) a local custom tag for\nyour use case.\n\nNote that it is not obligatory to always attach the most specific\ntag possible to an element—if your grammar can't easily\ndistinguish a certain type of element (such as a local variable),\nit is okay to style it as its more general variant (a variable).\n\nFor tags that extend some parent tag, the documentation links to\nthe parent.\n*/\nconst tags = {\n /**\n A comment.\n */\n comment,\n /**\n A line [comment](#highlight.tags.comment).\n */\n lineComment: t(comment),\n /**\n A block [comment](#highlight.tags.comment).\n */\n blockComment: t(comment),\n /**\n A documentation [comment](#highlight.tags.comment).\n */\n docComment: t(comment),\n /**\n Any kind of identifier.\n */\n name,\n /**\n The [name](#highlight.tags.name) of a variable.\n */\n variableName: t(name),\n /**\n A type [name](#highlight.tags.name).\n */\n typeName: typeName,\n /**\n A tag name (subtag of [`typeName`](#highlight.tags.typeName)).\n */\n tagName: t(typeName),\n /**\n A property or field [name](#highlight.tags.name).\n */\n propertyName: propertyName,\n /**\n An attribute name (subtag of [`propertyName`](#highlight.tags.propertyName)).\n */\n attributeName: t(propertyName),\n /**\n The [name](#highlight.tags.name) of a class.\n */\n className: t(name),\n /**\n A label [name](#highlight.tags.name).\n */\n labelName: t(name),\n /**\n A namespace [name](#highlight.tags.name).\n */\n namespace: t(name),\n /**\n The [name](#highlight.tags.name) of a macro.\n */\n macroName: t(name),\n /**\n A literal value.\n */\n literal,\n /**\n A string [literal](#highlight.tags.literal).\n */\n string,\n /**\n A documentation [string](#highlight.tags.string).\n */\n docString: t(string),\n /**\n A character literal (subtag of [string](#highlight.tags.string)).\n */\n character: t(string),\n /**\n An attribute value (subtag of [string](#highlight.tags.string)).\n */\n attributeValue: t(string),\n /**\n A number [literal](#highlight.tags.literal).\n */\n number,\n /**\n An integer [number](#highlight.tags.number) literal.\n */\n integer: t(number),\n /**\n A floating-point [number](#highlight.tags.number) literal.\n */\n float: t(number),\n /**\n A boolean [literal](#highlight.tags.literal).\n */\n bool: t(literal),\n /**\n Regular expression [literal](#highlight.tags.literal).\n */\n regexp: t(literal),\n /**\n An escape [literal](#highlight.tags.literal), for example a\n backslash escape in a string.\n */\n escape: t(literal),\n /**\n A color [literal](#highlight.tags.literal).\n */\n color: t(literal),\n /**\n A URL [literal](#highlight.tags.literal).\n */\n url: t(literal),\n /**\n A language keyword.\n */\n keyword,\n /**\n The [keyword](#highlight.tags.keyword) for the self or this\n object.\n */\n self: t(keyword),\n /**\n The [keyword](#highlight.tags.keyword) for null.\n */\n null: t(keyword),\n /**\n A [keyword](#highlight.tags.keyword) denoting some atomic value.\n */\n atom: t(keyword),\n /**\n A [keyword](#highlight.tags.keyword) that represents a unit.\n */\n unit: t(keyword),\n /**\n A modifier [keyword](#highlight.tags.keyword).\n */\n modifier: t(keyword),\n /**\n A [keyword](#highlight.tags.keyword) that acts as an operator.\n */\n operatorKeyword: t(keyword),\n /**\n A control-flow related [keyword](#highlight.tags.keyword).\n */\n controlKeyword: t(keyword),\n /**\n A [keyword](#highlight.tags.keyword) that defines something.\n */\n definitionKeyword: t(keyword),\n /**\n A [keyword](#highlight.tags.keyword) related to defining or\n interfacing with modules.\n */\n moduleKeyword: t(keyword),\n /**\n An operator.\n */\n operator,\n /**\n An [operator](#highlight.tags.operator) that dereferences something.\n */\n derefOperator: t(operator),\n /**\n Arithmetic-related [operator](#highlight.tags.operator).\n */\n arithmeticOperator: t(operator),\n /**\n Logical [operator](#highlight.tags.operator).\n */\n logicOperator: t(operator),\n /**\n Bit [operator](#highlight.tags.operator).\n */\n bitwiseOperator: t(operator),\n /**\n Comparison [operator](#highlight.tags.operator).\n */\n compareOperator: t(operator),\n /**\n [Operator](#highlight.tags.operator) that updates its operand.\n */\n updateOperator: t(operator),\n /**\n [Operator](#highlight.tags.operator) that defines something.\n */\n definitionOperator: t(operator),\n /**\n Type-related [operator](#highlight.tags.operator).\n */\n typeOperator: t(operator),\n /**\n Control-flow [operator](#highlight.tags.operator).\n */\n controlOperator: t(operator),\n /**\n Program or markup punctuation.\n */\n punctuation,\n /**\n [Punctuation](#highlight.tags.punctuation) that separates\n things.\n */\n separator: t(punctuation),\n /**\n Bracket-style [punctuation](#highlight.tags.punctuation).\n */\n bracket,\n /**\n Angle [brackets](#highlight.tags.bracket) (usually `<` and `>`\n tokens).\n */\n angleBracket: t(bracket),\n /**\n Square [brackets](#highlight.tags.bracket) (usually `[` and `]`\n tokens).\n */\n squareBracket: t(bracket),\n /**\n Parentheses (usually `(` and `)` tokens). Subtag of\n [bracket](#highlight.tags.bracket).\n */\n paren: t(bracket),\n /**\n Braces (usually `{` and `}` tokens). Subtag of\n [bracket](#highlight.tags.bracket).\n */\n brace: t(bracket),\n /**\n Content, for example plain text in XML or markup documents.\n */\n content,\n /**\n [Content](#highlight.tags.content) that represents a heading.\n */\n heading,\n /**\n A level 1 [heading](#highlight.tags.heading).\n */\n heading1: t(heading),\n /**\n A level 2 [heading](#highlight.tags.heading).\n */\n heading2: t(heading),\n /**\n A level 3 [heading](#highlight.tags.heading).\n */\n heading3: t(heading),\n /**\n A level 4 [heading](#highlight.tags.heading).\n */\n heading4: t(heading),\n /**\n A level 5 [heading](#highlight.tags.heading).\n */\n heading5: t(heading),\n /**\n A level 6 [heading](#highlight.tags.heading).\n */\n heading6: t(heading),\n /**\n A prose separator (such as a horizontal rule).\n */\n contentSeparator: t(content),\n /**\n [Content](#highlight.tags.content) that represents a list.\n */\n list: t(content),\n /**\n [Content](#highlight.tags.content) that represents a quote.\n */\n quote: t(content),\n /**\n [Content](#highlight.tags.content) that is emphasized.\n */\n emphasis: t(content),\n /**\n [Content](#highlight.tags.content) that is styled strong.\n */\n strong: t(content),\n /**\n [Content](#highlight.tags.content) that is part of a link.\n */\n link: t(content),\n /**\n [Content](#highlight.tags.content) that is styled as code or\n monospace.\n */\n monospace: t(content),\n /**\n [Content](#highlight.tags.content) that has a strike-through\n style.\n */\n strikethrough: t(content),\n /**\n Inserted text in a change-tracking format.\n */\n inserted: t(),\n /**\n Deleted text.\n */\n deleted: t(),\n /**\n Changed text.\n */\n changed: t(),\n /**\n An invalid or unsyntactic element.\n */\n invalid: t(),\n /**\n Metadata or meta-instruction.\n */\n meta,\n /**\n [Metadata](#highlight.tags.meta) that applies to the entire\n document.\n */\n documentMeta: t(meta),\n /**\n [Metadata](#highlight.tags.meta) that annotates or adds\n attributes to a given syntactic element.\n */\n annotation: t(meta),\n /**\n Processing instruction or preprocessor directive. Subtag of\n [meta](#highlight.tags.meta).\n */\n processingInstruction: t(meta),\n /**\n [Modifier](#highlight.Tag^defineModifier) that indicates that a\n given element is being defined. Expected to be used with the\n various [name](#highlight.tags.name) tags.\n */\n definition: Tag.defineModifier(),\n /**\n [Modifier](#highlight.Tag^defineModifier) that indicates that\n something is constant. Mostly expected to be used with\n [variable names](#highlight.tags.variableName).\n */\n constant: Tag.defineModifier(),\n /**\n [Modifier](#highlight.Tag^defineModifier) used to indicate that\n a [variable](#highlight.tags.variableName) or [property\n name](#highlight.tags.propertyName) is being called or defined\n as a function.\n */\n function: Tag.defineModifier(),\n /**\n [Modifier](#highlight.Tag^defineModifier) that can be applied to\n [names](#highlight.tags.name) to indicate that they belong to\n the language's standard environment.\n */\n standard: Tag.defineModifier(),\n /**\n [Modifier](#highlight.Tag^defineModifier) that indicates a given\n [names](#highlight.tags.name) is local to some scope.\n */\n local: Tag.defineModifier(),\n /**\n A generic variant [modifier](#highlight.Tag^defineModifier) that\n can be used to tag language-specific alternative variants of\n some common tag. It is recommended for themes to define special\n forms of at least the [string](#highlight.tags.string) and\n [variable name](#highlight.tags.variableName) tags, since those\n come up a lot.\n */\n special: Tag.defineModifier()\n};\n/**\nThis is a highlighter that adds stable, predictable classes to\ntokens, for styling with external CSS.\n\nThe following tags are mapped to their name prefixed with `\"tok-\"`\n(for example `\"tok-comment\"`):\n\n* [`link`](#highlight.tags.link)\n* [`heading`](#highlight.tags.heading)\n* [`emphasis`](#highlight.tags.emphasis)\n* [`strong`](#highlight.tags.strong)\n* [`keyword`](#highlight.tags.keyword)\n* [`atom`](#highlight.tags.atom)\n* [`bool`](#highlight.tags.bool)\n* [`url`](#highlight.tags.url)\n* [`labelName`](#highlight.tags.labelName)\n* [`inserted`](#highlight.tags.inserted)\n* [`deleted`](#highlight.tags.deleted)\n* [`literal`](#highlight.tags.literal)\n* [`string`](#highlight.tags.string)\n* [`number`](#highlight.tags.number)\n* [`variableName`](#highlight.tags.variableName)\n* [`typeName`](#highlight.tags.typeName)\n* [`namespace`](#highlight.tags.namespace)\n* [`className`](#highlight.tags.className)\n* [`macroName`](#highlight.tags.macroName)\n* [`propertyName`](#highlight.tags.propertyName)\n* [`operator`](#highlight.tags.operator)\n* [`comment`](#highlight.tags.comment)\n* [`meta`](#highlight.tags.meta)\n* [`punctuation`](#highlight.tags.punctuation)\n* [`invalid`](#highlight.tags.invalid)\n\nIn addition, these mappings are provided:\n\n* [`regexp`](#highlight.tags.regexp),\n [`escape`](#highlight.tags.escape), and\n [`special`](#highlight.tags.special)[`(string)`](#highlight.tags.string)\n are mapped to `\"tok-string2\"`\n* [`special`](#highlight.tags.special)[`(variableName)`](#highlight.tags.variableName)\n to `\"tok-variableName2\"`\n* [`local`](#highlight.tags.local)[`(variableName)`](#highlight.tags.variableName)\n to `\"tok-variableName tok-local\"`\n* [`definition`](#highlight.tags.definition)[`(variableName)`](#highlight.tags.variableName)\n to `\"tok-variableName tok-definition\"`\n* [`definition`](#highlight.tags.definition)[`(propertyName)`](#highlight.tags.propertyName)\n to `\"tok-propertyName tok-definition\"`\n*/\nconst classHighlighter = tagHighlighter([\n { tag: tags.link, class: \"tok-link\" },\n { tag: tags.heading, class: \"tok-heading\" },\n { tag: tags.emphasis, class: \"tok-emphasis\" },\n { tag: tags.strong, class: \"tok-strong\" },\n { tag: tags.keyword, class: \"tok-keyword\" },\n { tag: tags.atom, class: \"tok-atom\" },\n { tag: tags.bool, class: \"tok-bool\" },\n { tag: tags.url, class: \"tok-url\" },\n { tag: tags.labelName, class: \"tok-labelName\" },\n { tag: tags.inserted, class: \"tok-inserted\" },\n { tag: tags.deleted, class: \"tok-deleted\" },\n { tag: tags.literal, class: \"tok-literal\" },\n { tag: tags.string, class: \"tok-string\" },\n { tag: tags.number, class: \"tok-number\" },\n { tag: [tags.regexp, tags.escape, tags.special(tags.string)], class: \"tok-string2\" },\n { tag: tags.variableName, class: \"tok-variableName\" },\n { tag: tags.local(tags.variableName), class: \"tok-variableName tok-local\" },\n { tag: tags.definition(tags.variableName), class: \"tok-variableName tok-definition\" },\n { tag: tags.special(tags.variableName), class: \"tok-variableName2\" },\n { tag: tags.definition(tags.propertyName), class: \"tok-propertyName tok-definition\" },\n { tag: tags.typeName, class: \"tok-typeName\" },\n { tag: tags.namespace, class: \"tok-namespace\" },\n { tag: tags.className, class: \"tok-className\" },\n { tag: tags.macroName, class: \"tok-macroName\" },\n { tag: tags.propertyName, class: \"tok-propertyName\" },\n { tag: tags.operator, class: \"tok-operator\" },\n { tag: tags.comment, class: \"tok-comment\" },\n { tag: tags.meta, class: \"tok-meta\" },\n { tag: tags.invalid, class: \"tok-invalid\" },\n { tag: tags.punctuation, class: \"tok-punctuation\" }\n]);\n\nexport { Tag, classHighlighter, getStyleTags, highlightCode, highlightTree, styleTags, tagHighlighter, tags };\n","import { NodeProp, IterMode, Tree, TreeFragment, Parser, NodeType, NodeSet } from '@lezer/common';\nimport { StateEffect, StateField, Facet, EditorState, countColumn, combineConfig, RangeSet, RangeSetBuilder, Prec } from '@codemirror/state';\nimport { ViewPlugin, logException, EditorView, Decoration, WidgetType, gutter, GutterMarker, Direction } from '@codemirror/view';\nimport { tags, tagHighlighter, highlightTree, styleTags } from '@lezer/highlight';\nimport { StyleModule } from 'style-mod';\n\nvar _a;\n/**\nNode prop stored in a parser's top syntax node to provide the\nfacet that stores language-specific data for that language.\n*/\nconst languageDataProp = /*@__PURE__*/new NodeProp();\n/**\nHelper function to define a facet (to be added to the top syntax\nnode(s) for a language via\n[`languageDataProp`](https://codemirror.net/6/docs/ref/#language.languageDataProp)), that will be\nused to associate language data with the language. You\nprobably only need this when subclassing\n[`Language`](https://codemirror.net/6/docs/ref/#language.Language).\n*/\nfunction defineLanguageFacet(baseData) {\n return Facet.define({\n combine: baseData ? values => values.concat(baseData) : undefined\n });\n}\n/**\nSyntax node prop used to register sublanguages. Should be added to\nthe top level node type for the language.\n*/\nconst sublanguageProp = /*@__PURE__*/new NodeProp();\n/**\nA language object manages parsing and per-language\n[metadata](https://codemirror.net/6/docs/ref/#state.EditorState.languageDataAt). Parse data is\nmanaged as a [Lezer](https://lezer.codemirror.net) tree. The class\ncan be used directly, via the [`LRLanguage`](https://codemirror.net/6/docs/ref/#language.LRLanguage)\nsubclass for [Lezer](https://lezer.codemirror.net/) LR parsers, or\nvia the [`StreamLanguage`](https://codemirror.net/6/docs/ref/#language.StreamLanguage) subclass\nfor stream parsers.\n*/\nclass Language {\n /**\n Construct a language object. If you need to invoke this\n directly, first define a data facet with\n [`defineLanguageFacet`](https://codemirror.net/6/docs/ref/#language.defineLanguageFacet), and then\n configure your parser to [attach](https://codemirror.net/6/docs/ref/#language.languageDataProp) it\n to the language's outer syntax node.\n */\n constructor(\n /**\n The [language data](https://codemirror.net/6/docs/ref/#state.EditorState.languageDataAt) facet\n used for this language.\n */\n data, parser, extraExtensions = [], \n /**\n A language name.\n */\n name = \"\") {\n this.data = data;\n this.name = name;\n // Kludge to define EditorState.tree as a debugging helper,\n // without the EditorState package actually knowing about\n // languages and lezer trees.\n if (!EditorState.prototype.hasOwnProperty(\"tree\"))\n Object.defineProperty(EditorState.prototype, \"tree\", { get() { return syntaxTree(this); } });\n this.parser = parser;\n this.extension = [\n language.of(this),\n EditorState.languageData.of((state, pos, side) => {\n let top = topNodeAt(state, pos, side), data = top.type.prop(languageDataProp);\n if (!data)\n return [];\n let base = state.facet(data), sub = top.type.prop(sublanguageProp);\n if (sub) {\n let innerNode = top.resolve(pos - top.from, side);\n for (let sublang of sub)\n if (sublang.test(innerNode, state)) {\n let data = state.facet(sublang.facet);\n return sublang.type == \"replace\" ? data : data.concat(base);\n }\n }\n return base;\n })\n ].concat(extraExtensions);\n }\n /**\n Query whether this language is active at the given position.\n */\n isActiveAt(state, pos, side = -1) {\n return topNodeAt(state, pos, side).type.prop(languageDataProp) == this.data;\n }\n /**\n Find the document regions that were parsed using this language.\n The returned regions will _include_ any nested languages rooted\n in this language, when those exist.\n */\n findRegions(state) {\n let lang = state.facet(language);\n if ((lang === null || lang === void 0 ? void 0 : lang.data) == this.data)\n return [{ from: 0, to: state.doc.length }];\n if (!lang || !lang.allowsNesting)\n return [];\n let result = [];\n let explore = (tree, from) => {\n if (tree.prop(languageDataProp) == this.data) {\n result.push({ from, to: from + tree.length });\n return;\n }\n let mount = tree.prop(NodeProp.mounted);\n if (mount) {\n if (mount.tree.prop(languageDataProp) == this.data) {\n if (mount.overlay)\n for (let r of mount.overlay)\n result.push({ from: r.from + from, to: r.to + from });\n else\n result.push({ from: from, to: from + tree.length });\n return;\n }\n else if (mount.overlay) {\n let size = result.length;\n explore(mount.tree, mount.overlay[0].from + from);\n if (result.length > size)\n return;\n }\n }\n for (let i = 0; i < tree.children.length; i++) {\n let ch = tree.children[i];\n if (ch instanceof Tree)\n explore(ch, tree.positions[i] + from);\n }\n };\n explore(syntaxTree(state), 0);\n return result;\n }\n /**\n Indicates whether this language allows nested languages. The\n default implementation returns true.\n */\n get allowsNesting() { return true; }\n}\n/**\n@internal\n*/\nLanguage.setState = /*@__PURE__*/StateEffect.define();\nfunction topNodeAt(state, pos, side) {\n let topLang = state.facet(language), tree = syntaxTree(state).topNode;\n if (!topLang || topLang.allowsNesting) {\n for (let node = tree; node; node = node.enter(pos, side, IterMode.ExcludeBuffers))\n if (node.type.isTop)\n tree = node;\n }\n return tree;\n}\n/**\nA subclass of [`Language`](https://codemirror.net/6/docs/ref/#language.Language) for use with Lezer\n[LR parsers](https://lezer.codemirror.net/docs/ref#lr.LRParser)\nparsers.\n*/\nclass LRLanguage extends Language {\n constructor(data, parser, name) {\n super(data, parser, [], name);\n this.parser = parser;\n }\n /**\n Define a language from a parser.\n */\n static define(spec) {\n let data = defineLanguageFacet(spec.languageData);\n return new LRLanguage(data, spec.parser.configure({\n props: [languageDataProp.add(type => type.isTop ? data : undefined)]\n }), spec.name);\n }\n /**\n Create a new instance of this language with a reconfigured\n version of its parser and optionally a new name.\n */\n configure(options, name) {\n return new LRLanguage(this.data, this.parser.configure(options), name || this.name);\n }\n get allowsNesting() { return this.parser.hasWrappers(); }\n}\n/**\nGet the syntax tree for a state, which is the current (possibly\nincomplete) parse tree of the active\n[language](https://codemirror.net/6/docs/ref/#language.Language), or the empty tree if there is no\nlanguage available.\n*/\nfunction syntaxTree(state) {\n let field = state.field(Language.state, false);\n return field ? field.tree : Tree.empty;\n}\n/**\nTry to get a parse tree that spans at least up to `upto`. The\nmethod will do at most `timeout` milliseconds of work to parse\nup to that point if the tree isn't already available.\n*/\nfunction ensureSyntaxTree(state, upto, timeout = 50) {\n var _a;\n let parse = (_a = state.field(Language.state, false)) === null || _a === void 0 ? void 0 : _a.context;\n if (!parse)\n return null;\n let oldVieport = parse.viewport;\n parse.updateViewport({ from: 0, to: upto });\n let result = parse.isDone(upto) || parse.work(timeout, upto) ? parse.tree : null;\n parse.updateViewport(oldVieport);\n return result;\n}\n/**\nQueries whether there is a full syntax tree available up to the\ngiven document position. If there isn't, the background parse\nprocess _might_ still be working and update the tree further, but\nthere is no guarantee of that—the parser will [stop\nworking](https://codemirror.net/6/docs/ref/#language.syntaxParserRunning) when it has spent a\ncertain amount of time or has moved beyond the visible viewport.\nAlways returns false if no language has been enabled.\n*/\nfunction syntaxTreeAvailable(state, upto = state.doc.length) {\n var _a;\n return ((_a = state.field(Language.state, false)) === null || _a === void 0 ? void 0 : _a.context.isDone(upto)) || false;\n}\n/**\nMove parsing forward, and update the editor state afterwards to\nreflect the new tree. Will work for at most `timeout`\nmilliseconds. Returns true if the parser managed get to the given\nposition in that time.\n*/\nfunction forceParsing(view, upto = view.viewport.to, timeout = 100) {\n let success = ensureSyntaxTree(view.state, upto, timeout);\n if (success != syntaxTree(view.state))\n view.dispatch({});\n return !!success;\n}\n/**\nTells you whether the language parser is planning to do more\nparsing work (in a `requestIdleCallback` pseudo-thread) or has\nstopped running, either because it parsed the entire document,\nbecause it spent too much time and was cut off, or because there\nis no language parser enabled.\n*/\nfunction syntaxParserRunning(view) {\n var _a;\n return ((_a = view.plugin(parseWorker)) === null || _a === void 0 ? void 0 : _a.isWorking()) || false;\n}\n/**\nLezer-style\n[`Input`](https://lezer.codemirror.net/docs/ref#common.Input)\nobject for a [`Text`](https://codemirror.net/6/docs/ref/#state.Text) object.\n*/\nclass DocInput {\n /**\n Create an input object for the given document.\n */\n constructor(doc) {\n this.doc = doc;\n this.cursorPos = 0;\n this.string = \"\";\n this.cursor = doc.iter();\n }\n get length() { return this.doc.length; }\n syncTo(pos) {\n this.string = this.cursor.next(pos - this.cursorPos).value;\n this.cursorPos = pos + this.string.length;\n return this.cursorPos - this.string.length;\n }\n chunk(pos) {\n this.syncTo(pos);\n return this.string;\n }\n get lineChunks() { return true; }\n read(from, to) {\n let stringStart = this.cursorPos - this.string.length;\n if (from < stringStart || to >= this.cursorPos)\n return this.doc.sliceString(from, to);\n else\n return this.string.slice(from - stringStart, to - stringStart);\n }\n}\nlet currentContext = null;\n/**\nA parse context provided to parsers working on the editor content.\n*/\nclass ParseContext {\n constructor(parser, \n /**\n The current editor state.\n */\n state, \n /**\n Tree fragments that can be reused by incremental re-parses.\n */\n fragments = [], \n /**\n @internal\n */\n tree, \n /**\n @internal\n */\n treeLen, \n /**\n The current editor viewport (or some overapproximation\n thereof). Intended to be used for opportunistically avoiding\n work (in which case\n [`skipUntilInView`](https://codemirror.net/6/docs/ref/#language.ParseContext.skipUntilInView)\n should be called to make sure the parser is restarted when the\n skipped region becomes visible).\n */\n viewport, \n /**\n @internal\n */\n skipped, \n /**\n This is where skipping parsers can register a promise that,\n when resolved, will schedule a new parse. It is cleared when\n the parse worker picks up the promise. @internal\n */\n scheduleOn) {\n this.parser = parser;\n this.state = state;\n this.fragments = fragments;\n this.tree = tree;\n this.treeLen = treeLen;\n this.viewport = viewport;\n this.skipped = skipped;\n this.scheduleOn = scheduleOn;\n this.parse = null;\n /**\n @internal\n */\n this.tempSkipped = [];\n }\n /**\n @internal\n */\n static create(parser, state, viewport) {\n return new ParseContext(parser, state, [], Tree.empty, 0, viewport, [], null);\n }\n startParse() {\n return this.parser.startParse(new DocInput(this.state.doc), this.fragments);\n }\n /**\n @internal\n */\n work(until, upto) {\n if (upto != null && upto >= this.state.doc.length)\n upto = undefined;\n if (this.tree != Tree.empty && this.isDone(upto !== null && upto !== void 0 ? upto : this.state.doc.length)) {\n this.takeTree();\n return true;\n }\n return this.withContext(() => {\n var _a;\n if (typeof until == \"number\") {\n let endTime = Date.now() + until;\n until = () => Date.now() > endTime;\n }\n if (!this.parse)\n this.parse = this.startParse();\n if (upto != null && (this.parse.stoppedAt == null || this.parse.stoppedAt > upto) &&\n upto < this.state.doc.length)\n this.parse.stopAt(upto);\n for (;;) {\n let done = this.parse.advance();\n if (done) {\n this.fragments = this.withoutTempSkipped(TreeFragment.addTree(done, this.fragments, this.parse.stoppedAt != null));\n this.treeLen = (_a = this.parse.stoppedAt) !== null && _a !== void 0 ? _a : this.state.doc.length;\n this.tree = done;\n this.parse = null;\n if (this.treeLen < (upto !== null && upto !== void 0 ? upto : this.state.doc.length))\n this.parse = this.startParse();\n else\n return true;\n }\n if (until())\n return false;\n }\n });\n }\n /**\n @internal\n */\n takeTree() {\n let pos, tree;\n if (this.parse && (pos = this.parse.parsedPos) >= this.treeLen) {\n if (this.parse.stoppedAt == null || this.parse.stoppedAt > pos)\n this.parse.stopAt(pos);\n this.withContext(() => { while (!(tree = this.parse.advance())) { } });\n this.treeLen = pos;\n this.tree = tree;\n this.fragments = this.withoutTempSkipped(TreeFragment.addTree(this.tree, this.fragments, true));\n this.parse = null;\n }\n }\n withContext(f) {\n let prev = currentContext;\n currentContext = this;\n try {\n return f();\n }\n finally {\n currentContext = prev;\n }\n }\n withoutTempSkipped(fragments) {\n for (let r; r = this.tempSkipped.pop();)\n fragments = cutFragments(fragments, r.from, r.to);\n return fragments;\n }\n /**\n @internal\n */\n changes(changes, newState) {\n let { fragments, tree, treeLen, viewport, skipped } = this;\n this.takeTree();\n if (!changes.empty) {\n let ranges = [];\n changes.iterChangedRanges((fromA, toA, fromB, toB) => ranges.push({ fromA, toA, fromB, toB }));\n fragments = TreeFragment.applyChanges(fragments, ranges);\n tree = Tree.empty;\n treeLen = 0;\n viewport = { from: changes.mapPos(viewport.from, -1), to: changes.mapPos(viewport.to, 1) };\n if (this.skipped.length) {\n skipped = [];\n for (let r of this.skipped) {\n let from = changes.mapPos(r.from, 1), to = changes.mapPos(r.to, -1);\n if (from < to)\n skipped.push({ from, to });\n }\n }\n }\n return new ParseContext(this.parser, newState, fragments, tree, treeLen, viewport, skipped, this.scheduleOn);\n }\n /**\n @internal\n */\n updateViewport(viewport) {\n if (this.viewport.from == viewport.from && this.viewport.to == viewport.to)\n return false;\n this.viewport = viewport;\n let startLen = this.skipped.length;\n for (let i = 0; i < this.skipped.length; i++) {\n let { from, to } = this.skipped[i];\n if (from < viewport.to && to > viewport.from) {\n this.fragments = cutFragments(this.fragments, from, to);\n this.skipped.splice(i--, 1);\n }\n }\n if (this.skipped.length >= startLen)\n return false;\n this.reset();\n return true;\n }\n /**\n @internal\n */\n reset() {\n if (this.parse) {\n this.takeTree();\n this.parse = null;\n }\n }\n /**\n Notify the parse scheduler that the given region was skipped\n because it wasn't in view, and the parse should be restarted\n when it comes into view.\n */\n skipUntilInView(from, to) {\n this.skipped.push({ from, to });\n }\n /**\n Returns a parser intended to be used as placeholder when\n asynchronously loading a nested parser. It'll skip its input and\n mark it as not-really-parsed, so that the next update will parse\n it again.\n \n When `until` is given, a reparse will be scheduled when that\n promise resolves.\n */\n static getSkippingParser(until) {\n return new class extends Parser {\n createParse(input, fragments, ranges) {\n let from = ranges[0].from, to = ranges[ranges.length - 1].to;\n let parser = {\n parsedPos: from,\n advance() {\n let cx = currentContext;\n if (cx) {\n for (let r of ranges)\n cx.tempSkipped.push(r);\n if (until)\n cx.scheduleOn = cx.scheduleOn ? Promise.all([cx.scheduleOn, until]) : until;\n }\n this.parsedPos = to;\n return new Tree(NodeType.none, [], [], to - from);\n },\n stoppedAt: null,\n stopAt() { }\n };\n return parser;\n }\n };\n }\n /**\n @internal\n */\n isDone(upto) {\n upto = Math.min(upto, this.state.doc.length);\n let frags = this.fragments;\n return this.treeLen >= upto && frags.length && frags[0].from == 0 && frags[0].to >= upto;\n }\n /**\n Get the context for the current parse, or `null` if no editor\n parse is in progress.\n */\n static get() { return currentContext; }\n}\nfunction cutFragments(fragments, from, to) {\n return TreeFragment.applyChanges(fragments, [{ fromA: from, toA: to, fromB: from, toB: to }]);\n}\nclass LanguageState {\n constructor(\n // A mutable parse state that is used to preserve work done during\n // the lifetime of a state when moving to the next state.\n context) {\n this.context = context;\n this.tree = context.tree;\n }\n apply(tr) {\n if (!tr.docChanged && this.tree == this.context.tree)\n return this;\n let newCx = this.context.changes(tr.changes, tr.state);\n // If the previous parse wasn't done, go forward only up to its\n // end position or the end of the viewport, to avoid slowing down\n // state updates with parse work beyond the viewport.\n let upto = this.context.treeLen == tr.startState.doc.length ? undefined\n : Math.max(tr.changes.mapPos(this.context.treeLen), newCx.viewport.to);\n if (!newCx.work(20 /* Work.Apply */, upto))\n newCx.takeTree();\n return new LanguageState(newCx);\n }\n static init(state) {\n let vpTo = Math.min(3000 /* Work.InitViewport */, state.doc.length);\n let parseState = ParseContext.create(state.facet(language).parser, state, { from: 0, to: vpTo });\n if (!parseState.work(20 /* Work.Apply */, vpTo))\n parseState.takeTree();\n return new LanguageState(parseState);\n }\n}\nLanguage.state = /*@__PURE__*/StateField.define({\n create: LanguageState.init,\n update(value, tr) {\n for (let e of tr.effects)\n if (e.is(Language.setState))\n return e.value;\n if (tr.startState.facet(language) != tr.state.facet(language))\n return LanguageState.init(tr.state);\n return value.apply(tr);\n }\n});\nlet requestIdle = (callback) => {\n let timeout = setTimeout(() => callback(), 500 /* Work.MaxPause */);\n return () => clearTimeout(timeout);\n};\nif (typeof requestIdleCallback != \"undefined\")\n requestIdle = (callback) => {\n let idle = -1, timeout = setTimeout(() => {\n idle = requestIdleCallback(callback, { timeout: 500 /* Work.MaxPause */ - 100 /* Work.MinPause */ });\n }, 100 /* Work.MinPause */);\n return () => idle < 0 ? clearTimeout(timeout) : cancelIdleCallback(idle);\n };\nconst isInputPending = typeof navigator != \"undefined\" && ((_a = navigator.scheduling) === null || _a === void 0 ? void 0 : _a.isInputPending)\n ? () => navigator.scheduling.isInputPending() : null;\nconst parseWorker = /*@__PURE__*/ViewPlugin.fromClass(class ParseWorker {\n constructor(view) {\n this.view = view;\n this.working = null;\n this.workScheduled = 0;\n // End of the current time chunk\n this.chunkEnd = -1;\n // Milliseconds of budget left for this chunk\n this.chunkBudget = -1;\n this.work = this.work.bind(this);\n this.scheduleWork();\n }\n update(update) {\n let cx = this.view.state.field(Language.state).context;\n if (cx.updateViewport(update.view.viewport) || this.view.viewport.to > cx.treeLen)\n this.scheduleWork();\n if (update.docChanged || update.selectionSet) {\n if (this.view.hasFocus)\n this.chunkBudget += 50 /* Work.ChangeBonus */;\n this.scheduleWork();\n }\n this.checkAsyncSchedule(cx);\n }\n scheduleWork() {\n if (this.working)\n return;\n let { state } = this.view, field = state.field(Language.state);\n if (field.tree != field.context.tree || !field.context.isDone(state.doc.length))\n this.working = requestIdle(this.work);\n }\n work(deadline) {\n this.working = null;\n let now = Date.now();\n if (this.chunkEnd < now && (this.chunkEnd < 0 || this.view.hasFocus)) { // Start a new chunk\n this.chunkEnd = now + 30000 /* Work.ChunkTime */;\n this.chunkBudget = 3000 /* Work.ChunkBudget */;\n }\n if (this.chunkBudget <= 0)\n return; // No more budget\n let { state, viewport: { to: vpTo } } = this.view, field = state.field(Language.state);\n if (field.tree == field.context.tree && field.context.isDone(vpTo + 100000 /* Work.MaxParseAhead */))\n return;\n let endTime = Date.now() + Math.min(this.chunkBudget, 100 /* Work.Slice */, deadline && !isInputPending ? Math.max(25 /* Work.MinSlice */, deadline.timeRemaining() - 5) : 1e9);\n let viewportFirst = field.context.treeLen < vpTo && state.doc.length > vpTo + 1000;\n let done = field.context.work(() => {\n return isInputPending && isInputPending() || Date.now() > endTime;\n }, vpTo + (viewportFirst ? 0 : 100000 /* Work.MaxParseAhead */));\n this.chunkBudget -= Date.now() - now;\n if (done || this.chunkBudget <= 0) {\n field.context.takeTree();\n this.view.dispatch({ effects: Language.setState.of(new LanguageState(field.context)) });\n }\n if (this.chunkBudget > 0 && !(done && !viewportFirst))\n this.scheduleWork();\n this.checkAsyncSchedule(field.context);\n }\n checkAsyncSchedule(cx) {\n if (cx.scheduleOn) {\n this.workScheduled++;\n cx.scheduleOn\n .then(() => this.scheduleWork())\n .catch(err => logException(this.view.state, err))\n .then(() => this.workScheduled--);\n cx.scheduleOn = null;\n }\n }\n destroy() {\n if (this.working)\n this.working();\n }\n isWorking() {\n return !!(this.working || this.workScheduled > 0);\n }\n}, {\n eventHandlers: { focus() { this.scheduleWork(); } }\n});\n/**\nThe facet used to associate a language with an editor state. Used\nby `Language` object's `extension` property (so you don't need to\nmanually wrap your languages in this). Can be used to access the\ncurrent language on a state.\n*/\nconst language = /*@__PURE__*/Facet.define({\n combine(languages) { return languages.length ? languages[0] : null; },\n enables: language => [\n Language.state,\n parseWorker,\n EditorView.contentAttributes.compute([language], state => {\n let lang = state.facet(language);\n return lang && lang.name ? { \"data-language\": lang.name } : {};\n })\n ]\n});\n/**\nThis class bundles a [language](https://codemirror.net/6/docs/ref/#language.Language) with an\noptional set of supporting extensions. Language packages are\nencouraged to export a function that optionally takes a\nconfiguration object and returns a `LanguageSupport` instance, as\nthe main way for client code to use the package.\n*/\nclass LanguageSupport {\n /**\n Create a language support object.\n */\n constructor(\n /**\n The language object.\n */\n language, \n /**\n An optional set of supporting extensions. When nesting a\n language in another language, the outer language is encouraged\n to include the supporting extensions for its inner languages\n in its own set of support extensions.\n */\n support = []) {\n this.language = language;\n this.support = support;\n this.extension = [language, support];\n }\n}\n/**\nLanguage descriptions are used to store metadata about languages\nand to dynamically load them. Their main role is finding the\nappropriate language for a filename or dynamically loading nested\nparsers.\n*/\nclass LanguageDescription {\n constructor(\n /**\n The name of this language.\n */\n name, \n /**\n Alternative names for the mode (lowercased, includes `this.name`).\n */\n alias, \n /**\n File extensions associated with this language.\n */\n extensions, \n /**\n Optional filename pattern that should be associated with this\n language.\n */\n filename, loadFunc, \n /**\n If the language has been loaded, this will hold its value.\n */\n support = undefined) {\n this.name = name;\n this.alias = alias;\n this.extensions = extensions;\n this.filename = filename;\n this.loadFunc = loadFunc;\n this.support = support;\n this.loading = null;\n }\n /**\n Start loading the the language. Will return a promise that\n resolves to a [`LanguageSupport`](https://codemirror.net/6/docs/ref/#language.LanguageSupport)\n object when the language successfully loads.\n */\n load() {\n return this.loading || (this.loading = this.loadFunc().then(support => this.support = support, err => { this.loading = null; throw err; }));\n }\n /**\n Create a language description.\n */\n static of(spec) {\n let { load, support } = spec;\n if (!load) {\n if (!support)\n throw new RangeError(\"Must pass either 'load' or 'support' to LanguageDescription.of\");\n load = () => Promise.resolve(support);\n }\n return new LanguageDescription(spec.name, (spec.alias || []).concat(spec.name).map(s => s.toLowerCase()), spec.extensions || [], spec.filename, load, support);\n }\n /**\n Look for a language in the given array of descriptions that\n matches the filename. Will first match\n [`filename`](https://codemirror.net/6/docs/ref/#language.LanguageDescription.filename) patterns,\n and then [extensions](https://codemirror.net/6/docs/ref/#language.LanguageDescription.extensions),\n and return the first language that matches.\n */\n static matchFilename(descs, filename) {\n for (let d of descs)\n if (d.filename && d.filename.test(filename))\n return d;\n let ext = /\\.([^.]+)$/.exec(filename);\n if (ext)\n for (let d of descs)\n if (d.extensions.indexOf(ext[1]) > -1)\n return d;\n return null;\n }\n /**\n Look for a language whose name or alias matches the the given\n name (case-insensitively). If `fuzzy` is true, and no direct\n matchs is found, this'll also search for a language whose name\n or alias occurs in the string (for names shorter than three\n characters, only when surrounded by non-word characters).\n */\n static matchLanguageName(descs, name, fuzzy = true) {\n name = name.toLowerCase();\n for (let d of descs)\n if (d.alias.some(a => a == name))\n return d;\n if (fuzzy)\n for (let d of descs)\n for (let a of d.alias) {\n let found = name.indexOf(a);\n if (found > -1 && (a.length > 2 || !/\\w/.test(name[found - 1]) && !/\\w/.test(name[found + a.length])))\n return d;\n }\n return null;\n }\n}\n\n/**\nFacet that defines a way to provide a function that computes the\nappropriate indentation depth, as a column number (see\n[`indentString`](https://codemirror.net/6/docs/ref/#language.indentString)), at the start of a given\nline. A return value of `null` indicates no indentation can be\ndetermined, and the line should inherit the indentation of the one\nabove it. A return value of `undefined` defers to the next indent\nservice.\n*/\nconst indentService = /*@__PURE__*/Facet.define();\n/**\nFacet for overriding the unit by which indentation happens. Should\nbe a string consisting either entirely of the same whitespace\ncharacter. When not set, this defaults to 2 spaces.\n*/\nconst indentUnit = /*@__PURE__*/Facet.define({\n combine: values => {\n if (!values.length)\n return \" \";\n let unit = values[0];\n if (!unit || /\\S/.test(unit) || Array.from(unit).some(e => e != unit[0]))\n throw new Error(\"Invalid indent unit: \" + JSON.stringify(values[0]));\n return unit;\n }\n});\n/**\nReturn the _column width_ of an indent unit in the state.\nDetermined by the [`indentUnit`](https://codemirror.net/6/docs/ref/#language.indentUnit)\nfacet, and [`tabSize`](https://codemirror.net/6/docs/ref/#state.EditorState^tabSize) when that\ncontains tabs.\n*/\nfunction getIndentUnit(state) {\n let unit = state.facet(indentUnit);\n return unit.charCodeAt(0) == 9 ? state.tabSize * unit.length : unit.length;\n}\n/**\nCreate an indentation string that covers columns 0 to `cols`.\nWill use tabs for as much of the columns as possible when the\n[`indentUnit`](https://codemirror.net/6/docs/ref/#language.indentUnit) facet contains\ntabs.\n*/\nfunction indentString(state, cols) {\n let result = \"\", ts = state.tabSize, ch = state.facet(indentUnit)[0];\n if (ch == \"\\t\") {\n while (cols >= ts) {\n result += \"\\t\";\n cols -= ts;\n }\n ch = \" \";\n }\n for (let i = 0; i < cols; i++)\n result += ch;\n return result;\n}\n/**\nGet the indentation, as a column number, at the given position.\nWill first consult any [indent services](https://codemirror.net/6/docs/ref/#language.indentService)\nthat are registered, and if none of those return an indentation,\nthis will check the syntax tree for the [indent node\nprop](https://codemirror.net/6/docs/ref/#language.indentNodeProp) and use that if found. Returns a\nnumber when an indentation could be determined, and null\notherwise.\n*/\nfunction getIndentation(context, pos) {\n if (context instanceof EditorState)\n context = new IndentContext(context);\n for (let service of context.state.facet(indentService)) {\n let result = service(context, pos);\n if (result !== undefined)\n return result;\n }\n let tree = syntaxTree(context.state);\n return tree.length >= pos ? syntaxIndentation(context, tree, pos) : null;\n}\n/**\nCreate a change set that auto-indents all lines touched by the\ngiven document range.\n*/\nfunction indentRange(state, from, to) {\n let updated = Object.create(null);\n let context = new IndentContext(state, { overrideIndentation: start => { var _a; return (_a = updated[start]) !== null && _a !== void 0 ? _a : -1; } });\n let changes = [];\n for (let pos = from; pos <= to;) {\n let line = state.doc.lineAt(pos);\n pos = line.to + 1;\n let indent = getIndentation(context, line.from);\n if (indent == null)\n continue;\n if (!/\\S/.test(line.text))\n indent = 0;\n let cur = /^\\s*/.exec(line.text)[0];\n let norm = indentString(state, indent);\n if (cur != norm) {\n updated[line.from] = indent;\n changes.push({ from: line.from, to: line.from + cur.length, insert: norm });\n }\n }\n return state.changes(changes);\n}\n/**\nIndentation contexts are used when calling [indentation\nservices](https://codemirror.net/6/docs/ref/#language.indentService). They provide helper utilities\nuseful in indentation logic, and can selectively override the\nindentation reported for some lines.\n*/\nclass IndentContext {\n /**\n Create an indent context.\n */\n constructor(\n /**\n The editor state.\n */\n state, \n /**\n @internal\n */\n options = {}) {\n this.state = state;\n this.options = options;\n this.unit = getIndentUnit(state);\n }\n /**\n Get a description of the line at the given position, taking\n [simulated line\n breaks](https://codemirror.net/6/docs/ref/#language.IndentContext.constructor^options.simulateBreak)\n into account. If there is such a break at `pos`, the `bias`\n argument determines whether the part of the line line before or\n after the break is used.\n */\n lineAt(pos, bias = 1) {\n let line = this.state.doc.lineAt(pos);\n let { simulateBreak, simulateDoubleBreak } = this.options;\n if (simulateBreak != null && simulateBreak >= line.from && simulateBreak <= line.to) {\n if (simulateDoubleBreak && simulateBreak == pos)\n return { text: \"\", from: pos };\n else if (bias < 0 ? simulateBreak < pos : simulateBreak <= pos)\n return { text: line.text.slice(simulateBreak - line.from), from: simulateBreak };\n else\n return { text: line.text.slice(0, simulateBreak - line.from), from: line.from };\n }\n return line;\n }\n /**\n Get the text directly after `pos`, either the entire line\n or the next 100 characters, whichever is shorter.\n */\n textAfterPos(pos, bias = 1) {\n if (this.options.simulateDoubleBreak && pos == this.options.simulateBreak)\n return \"\";\n let { text, from } = this.lineAt(pos, bias);\n return text.slice(pos - from, Math.min(text.length, pos + 100 - from));\n }\n /**\n Find the column for the given position.\n */\n column(pos, bias = 1) {\n let { text, from } = this.lineAt(pos, bias);\n let result = this.countColumn(text, pos - from);\n let override = this.options.overrideIndentation ? this.options.overrideIndentation(from) : -1;\n if (override > -1)\n result += override - this.countColumn(text, text.search(/\\S|$/));\n return result;\n }\n /**\n Find the column position (taking tabs into account) of the given\n position in the given string.\n */\n countColumn(line, pos = line.length) {\n return countColumn(line, this.state.tabSize, pos);\n }\n /**\n Find the indentation column of the line at the given point.\n */\n lineIndent(pos, bias = 1) {\n let { text, from } = this.lineAt(pos, bias);\n let override = this.options.overrideIndentation;\n if (override) {\n let overriden = override(from);\n if (overriden > -1)\n return overriden;\n }\n return this.countColumn(text, text.search(/\\S|$/));\n }\n /**\n Returns the [simulated line\n break](https://codemirror.net/6/docs/ref/#language.IndentContext.constructor^options.simulateBreak)\n for this context, if any.\n */\n get simulatedBreak() {\n return this.options.simulateBreak || null;\n }\n}\n/**\nA syntax tree node prop used to associate indentation strategies\nwith node types. Such a strategy is a function from an indentation\ncontext to a column number (see also\n[`indentString`](https://codemirror.net/6/docs/ref/#language.indentString)) or null, where null\nindicates that no definitive indentation can be determined.\n*/\nconst indentNodeProp = /*@__PURE__*/new NodeProp();\n// Compute the indentation for a given position from the syntax tree.\nfunction syntaxIndentation(cx, ast, pos) {\n let stack = ast.resolveStack(pos);\n let inner = stack.node.enterUnfinishedNodesBefore(pos);\n if (inner != stack.node) {\n let add = [];\n for (let cur = inner; cur != stack.node; cur = cur.parent)\n add.push(cur);\n for (let i = add.length - 1; i >= 0; i--)\n stack = { node: add[i], next: stack };\n }\n return indentFor(stack, cx, pos);\n}\nfunction indentFor(stack, cx, pos) {\n for (let cur = stack; cur; cur = cur.next) {\n let strategy = indentStrategy(cur.node);\n if (strategy)\n return strategy(TreeIndentContext.create(cx, pos, cur));\n }\n return 0;\n}\nfunction ignoreClosed(cx) {\n return cx.pos == cx.options.simulateBreak && cx.options.simulateDoubleBreak;\n}\nfunction indentStrategy(tree) {\n let strategy = tree.type.prop(indentNodeProp);\n if (strategy)\n return strategy;\n let first = tree.firstChild, close;\n if (first && (close = first.type.prop(NodeProp.closedBy))) {\n let last = tree.lastChild, closed = last && close.indexOf(last.name) > -1;\n return cx => delimitedStrategy(cx, true, 1, undefined, closed && !ignoreClosed(cx) ? last.from : undefined);\n }\n return tree.parent == null ? topIndent : null;\n}\nfunction topIndent() { return 0; }\n/**\nObjects of this type provide context information and helper\nmethods to indentation functions registered on syntax nodes.\n*/\nclass TreeIndentContext extends IndentContext {\n constructor(base, \n /**\n The position at which indentation is being computed.\n */\n pos, \n /**\n @internal\n */\n context) {\n super(base.state, base.options);\n this.base = base;\n this.pos = pos;\n this.context = context;\n }\n /**\n The syntax tree node to which the indentation strategy\n applies.\n */\n get node() { return this.context.node; }\n /**\n @internal\n */\n static create(base, pos, context) {\n return new TreeIndentContext(base, pos, context);\n }\n /**\n Get the text directly after `this.pos`, either the entire line\n or the next 100 characters, whichever is shorter.\n */\n get textAfter() {\n return this.textAfterPos(this.pos);\n }\n /**\n Get the indentation at the reference line for `this.node`, which\n is the line on which it starts, unless there is a node that is\n _not_ a parent of this node covering the start of that line. If\n so, the line at the start of that node is tried, again skipping\n on if it is covered by another such node.\n */\n get baseIndent() {\n return this.baseIndentFor(this.node);\n }\n /**\n Get the indentation for the reference line of the given node\n (see [`baseIndent`](https://codemirror.net/6/docs/ref/#language.TreeIndentContext.baseIndent)).\n */\n baseIndentFor(node) {\n let line = this.state.doc.lineAt(node.from);\n // Skip line starts that are covered by a sibling (or cousin, etc)\n for (;;) {\n let atBreak = node.resolve(line.from);\n while (atBreak.parent && atBreak.parent.from == atBreak.from)\n atBreak = atBreak.parent;\n if (isParent(atBreak, node))\n break;\n line = this.state.doc.lineAt(atBreak.from);\n }\n return this.lineIndent(line.from);\n }\n /**\n Continue looking for indentations in the node's parent nodes,\n and return the result of that.\n */\n continue() {\n return indentFor(this.context.next, this.base, this.pos);\n }\n}\nfunction isParent(parent, of) {\n for (let cur = of; cur; cur = cur.parent)\n if (parent == cur)\n return true;\n return false;\n}\n// Check whether a delimited node is aligned (meaning there are\n// non-skipped nodes on the same line as the opening delimiter). And\n// if so, return the opening token.\nfunction bracketedAligned(context) {\n let tree = context.node;\n let openToken = tree.childAfter(tree.from), last = tree.lastChild;\n if (!openToken)\n return null;\n let sim = context.options.simulateBreak;\n let openLine = context.state.doc.lineAt(openToken.from);\n let lineEnd = sim == null || sim <= openLine.from ? openLine.to : Math.min(openLine.to, sim);\n for (let pos = openToken.to;;) {\n let next = tree.childAfter(pos);\n if (!next || next == last)\n return null;\n if (!next.type.isSkipped)\n return next.from < lineEnd ? openToken : null;\n pos = next.to;\n }\n}\n/**\nAn indentation strategy for delimited (usually bracketed) nodes.\nWill, by default, indent one unit more than the parent's base\nindent unless the line starts with a closing token. When `align`\nis true and there are non-skipped nodes on the node's opening\nline, the content of the node will be aligned with the end of the\nopening node, like this:\n\n foo(bar,\n baz)\n*/\nfunction delimitedIndent({ closing, align = true, units = 1 }) {\n return (context) => delimitedStrategy(context, align, units, closing);\n}\nfunction delimitedStrategy(context, align, units, closing, closedAt) {\n let after = context.textAfter, space = after.match(/^\\s*/)[0].length;\n let closed = closing && after.slice(space, space + closing.length) == closing || closedAt == context.pos + space;\n let aligned = align ? bracketedAligned(context) : null;\n if (aligned)\n return closed ? context.column(aligned.from) : context.column(aligned.to);\n return context.baseIndent + (closed ? 0 : context.unit * units);\n}\n/**\nAn indentation strategy that aligns a node's content to its base\nindentation.\n*/\nconst flatIndent = (context) => context.baseIndent;\n/**\nCreates an indentation strategy that, by default, indents\ncontinued lines one unit more than the node's base indentation.\nYou can provide `except` to prevent indentation of lines that\nmatch a pattern (for example `/^else\\b/` in `if`/`else`\nconstructs), and you can change the amount of units used with the\n`units` option.\n*/\nfunction continuedIndent({ except, units = 1 } = {}) {\n return (context) => {\n let matchExcept = except && except.test(context.textAfter);\n return context.baseIndent + (matchExcept ? 0 : units * context.unit);\n };\n}\nconst DontIndentBeyond = 200;\n/**\nEnables reindentation on input. When a language defines an\n`indentOnInput` field in its [language\ndata](https://codemirror.net/6/docs/ref/#state.EditorState.languageDataAt), which must hold a regular\nexpression, the line at the cursor will be reindented whenever new\ntext is typed and the input from the start of the line up to the\ncursor matches that regexp.\n\nTo avoid unneccesary reindents, it is recommended to start the\nregexp with `^` (usually followed by `\\s*`), and end it with `$`.\nFor example, `/^\\s*\\}$/` will reindent when a closing brace is\nadded at the start of a line.\n*/\nfunction indentOnInput() {\n return EditorState.transactionFilter.of(tr => {\n if (!tr.docChanged || !tr.isUserEvent(\"input.type\") && !tr.isUserEvent(\"input.complete\"))\n return tr;\n let rules = tr.startState.languageDataAt(\"indentOnInput\", tr.startState.selection.main.head);\n if (!rules.length)\n return tr;\n let doc = tr.newDoc, { head } = tr.newSelection.main, line = doc.lineAt(head);\n if (head > line.from + DontIndentBeyond)\n return tr;\n let lineStart = doc.sliceString(line.from, head);\n if (!rules.some(r => r.test(lineStart)))\n return tr;\n let { state } = tr, last = -1, changes = [];\n for (let { head } of state.selection.ranges) {\n let line = state.doc.lineAt(head);\n if (line.from == last)\n continue;\n last = line.from;\n let indent = getIndentation(state, line.from);\n if (indent == null)\n continue;\n let cur = /^\\s*/.exec(line.text)[0];\n let norm = indentString(state, indent);\n if (cur != norm)\n changes.push({ from: line.from, to: line.from + cur.length, insert: norm });\n }\n return changes.length ? [tr, { changes, sequential: true }] : tr;\n });\n}\n\n/**\nA facet that registers a code folding service. When called with\nthe extent of a line, such a function should return a foldable\nrange that starts on that line (but continues beyond it), if one\ncan be found.\n*/\nconst foldService = /*@__PURE__*/Facet.define();\n/**\nThis node prop is used to associate folding information with\nsyntax node types. Given a syntax node, it should check whether\nthat tree is foldable and return the range that can be collapsed\nwhen it is.\n*/\nconst foldNodeProp = /*@__PURE__*/new NodeProp();\n/**\n[Fold](https://codemirror.net/6/docs/ref/#language.foldNodeProp) function that folds everything but\nthe first and the last child of a syntax node. Useful for nodes\nthat start and end with delimiters.\n*/\nfunction foldInside(node) {\n let first = node.firstChild, last = node.lastChild;\n return first && first.to < last.from ? { from: first.to, to: last.type.isError ? node.to : last.from } : null;\n}\nfunction syntaxFolding(state, start, end) {\n let tree = syntaxTree(state);\n if (tree.length < end)\n return null;\n let stack = tree.resolveStack(end, 1);\n let found = null;\n for (let iter = stack; iter; iter = iter.next) {\n let cur = iter.node;\n if (cur.to <= end || cur.from > end)\n continue;\n if (found && cur.from < start)\n break;\n let prop = cur.type.prop(foldNodeProp);\n if (prop && (cur.to < tree.length - 50 || tree.length == state.doc.length || !isUnfinished(cur))) {\n let value = prop(cur, state);\n if (value && value.from <= end && value.from >= start && value.to > end)\n found = value;\n }\n }\n return found;\n}\nfunction isUnfinished(node) {\n let ch = node.lastChild;\n return ch && ch.to == node.to && ch.type.isError;\n}\n/**\nCheck whether the given line is foldable. First asks any fold\nservices registered through\n[`foldService`](https://codemirror.net/6/docs/ref/#language.foldService), and if none of them return\na result, tries to query the [fold node\nprop](https://codemirror.net/6/docs/ref/#language.foldNodeProp) of syntax nodes that cover the end\nof the line.\n*/\nfunction foldable(state, lineStart, lineEnd) {\n for (let service of state.facet(foldService)) {\n let result = service(state, lineStart, lineEnd);\n if (result)\n return result;\n }\n return syntaxFolding(state, lineStart, lineEnd);\n}\nfunction mapRange(range, mapping) {\n let from = mapping.mapPos(range.from, 1), to = mapping.mapPos(range.to, -1);\n return from >= to ? undefined : { from, to };\n}\n/**\nState effect that can be attached to a transaction to fold the\ngiven range. (You probably only need this in exceptional\ncircumstances—usually you'll just want to let\n[`foldCode`](https://codemirror.net/6/docs/ref/#language.foldCode) and the [fold\ngutter](https://codemirror.net/6/docs/ref/#language.foldGutter) create the transactions.)\n*/\nconst foldEffect = /*@__PURE__*/StateEffect.define({ map: mapRange });\n/**\nState effect that unfolds the given range (if it was folded).\n*/\nconst unfoldEffect = /*@__PURE__*/StateEffect.define({ map: mapRange });\nfunction selectedLines(view) {\n let lines = [];\n for (let { head } of view.state.selection.ranges) {\n if (lines.some(l => l.from <= head && l.to >= head))\n continue;\n lines.push(view.lineBlockAt(head));\n }\n return lines;\n}\n/**\nThe state field that stores the folded ranges (as a [decoration\nset](https://codemirror.net/6/docs/ref/#view.DecorationSet)). Can be passed to\n[`EditorState.toJSON`](https://codemirror.net/6/docs/ref/#state.EditorState.toJSON) and\n[`fromJSON`](https://codemirror.net/6/docs/ref/#state.EditorState^fromJSON) to serialize the fold\nstate.\n*/\nconst foldState = /*@__PURE__*/StateField.define({\n create() {\n return Decoration.none;\n },\n update(folded, tr) {\n folded = folded.map(tr.changes);\n for (let e of tr.effects) {\n if (e.is(foldEffect) && !foldExists(folded, e.value.from, e.value.to)) {\n let { preparePlaceholder } = tr.state.facet(foldConfig);\n let widget = !preparePlaceholder ? foldWidget :\n Decoration.replace({ widget: new PreparedFoldWidget(preparePlaceholder(tr.state, e.value)) });\n folded = folded.update({ add: [widget.range(e.value.from, e.value.to)] });\n }\n else if (e.is(unfoldEffect)) {\n folded = folded.update({ filter: (from, to) => e.value.from != from || e.value.to != to,\n filterFrom: e.value.from, filterTo: e.value.to });\n }\n }\n // Clear folded ranges that cover the selection head\n if (tr.selection) {\n let onSelection = false, { head } = tr.selection.main;\n folded.between(head, head, (a, b) => { if (a < head && b > head)\n onSelection = true; });\n if (onSelection)\n folded = folded.update({\n filterFrom: head,\n filterTo: head,\n filter: (a, b) => b <= head || a >= head\n });\n }\n return folded;\n },\n provide: f => EditorView.decorations.from(f),\n toJSON(folded, state) {\n let ranges = [];\n folded.between(0, state.doc.length, (from, to) => { ranges.push(from, to); });\n return ranges;\n },\n fromJSON(value) {\n if (!Array.isArray(value) || value.length % 2)\n throw new RangeError(\"Invalid JSON for fold state\");\n let ranges = [];\n for (let i = 0; i < value.length;) {\n let from = value[i++], to = value[i++];\n if (typeof from != \"number\" || typeof to != \"number\")\n throw new RangeError(\"Invalid JSON for fold state\");\n ranges.push(foldWidget.range(from, to));\n }\n return Decoration.set(ranges, true);\n }\n});\n/**\nGet a [range set](https://codemirror.net/6/docs/ref/#state.RangeSet) containing the folded ranges\nin the given state.\n*/\nfunction foldedRanges(state) {\n return state.field(foldState, false) || RangeSet.empty;\n}\nfunction findFold(state, from, to) {\n var _a;\n let found = null;\n (_a = state.field(foldState, false)) === null || _a === void 0 ? void 0 : _a.between(from, to, (from, to) => {\n if (!found || found.from > from)\n found = { from, to };\n });\n return found;\n}\nfunction foldExists(folded, from, to) {\n let found = false;\n folded.between(from, from, (a, b) => { if (a == from && b == to)\n found = true; });\n return found;\n}\nfunction maybeEnable(state, other) {\n return state.field(foldState, false) ? other : other.concat(StateEffect.appendConfig.of(codeFolding()));\n}\n/**\nFold the lines that are selected, if possible.\n*/\nconst foldCode = view => {\n for (let line of selectedLines(view)) {\n let range = foldable(view.state, line.from, line.to);\n if (range) {\n view.dispatch({ effects: maybeEnable(view.state, [foldEffect.of(range), announceFold(view, range)]) });\n return true;\n }\n }\n return false;\n};\n/**\nUnfold folded ranges on selected lines.\n*/\nconst unfoldCode = view => {\n if (!view.state.field(foldState, false))\n return false;\n let effects = [];\n for (let line of selectedLines(view)) {\n let folded = findFold(view.state, line.from, line.to);\n if (folded)\n effects.push(unfoldEffect.of(folded), announceFold(view, folded, false));\n }\n if (effects.length)\n view.dispatch({ effects });\n return effects.length > 0;\n};\nfunction announceFold(view, range, fold = true) {\n let lineFrom = view.state.doc.lineAt(range.from).number, lineTo = view.state.doc.lineAt(range.to).number;\n return EditorView.announce.of(`${view.state.phrase(fold ? \"Folded lines\" : \"Unfolded lines\")} ${lineFrom} ${view.state.phrase(\"to\")} ${lineTo}.`);\n}\n/**\nFold all top-level foldable ranges. Note that, in most cases,\nfolding information will depend on the [syntax\ntree](https://codemirror.net/6/docs/ref/#language.syntaxTree), and folding everything may not work\nreliably when the document hasn't been fully parsed (either\nbecause the editor state was only just initialized, or because the\ndocument is so big that the parser decided not to parse it\nentirely).\n*/\nconst foldAll = view => {\n let { state } = view, effects = [];\n for (let pos = 0; pos < state.doc.length;) {\n let line = view.lineBlockAt(pos), range = foldable(state, line.from, line.to);\n if (range)\n effects.push(foldEffect.of(range));\n pos = (range ? view.lineBlockAt(range.to) : line).to + 1;\n }\n if (effects.length)\n view.dispatch({ effects: maybeEnable(view.state, effects) });\n return !!effects.length;\n};\n/**\nUnfold all folded code.\n*/\nconst unfoldAll = view => {\n let field = view.state.field(foldState, false);\n if (!field || !field.size)\n return false;\n let effects = [];\n field.between(0, view.state.doc.length, (from, to) => { effects.push(unfoldEffect.of({ from, to })); });\n view.dispatch({ effects });\n return true;\n};\n// Find the foldable region containing the given line, if one exists\nfunction foldableContainer(view, lineBlock) {\n // Look backwards through line blocks until we find a foldable region that\n // intersects with the line\n for (let line = lineBlock;;) {\n let foldableRegion = foldable(view.state, line.from, line.to);\n if (foldableRegion && foldableRegion.to > lineBlock.from)\n return foldableRegion;\n if (!line.from)\n return null;\n line = view.lineBlockAt(line.from - 1);\n }\n}\n/**\nToggle folding at cursors. Unfolds if there is an existing fold\nstarting in that line, tries to find a foldable range around it\notherwise.\n*/\nconst toggleFold = (view) => {\n let effects = [];\n for (let line of selectedLines(view)) {\n let folded = findFold(view.state, line.from, line.to);\n if (folded) {\n effects.push(unfoldEffect.of(folded), announceFold(view, folded, false));\n }\n else {\n let foldRange = foldableContainer(view, line);\n if (foldRange)\n effects.push(foldEffect.of(foldRange), announceFold(view, foldRange));\n }\n }\n if (effects.length > 0)\n view.dispatch({ effects: maybeEnable(view.state, effects) });\n return !!effects.length;\n};\n/**\nDefault fold-related key bindings.\n\n - Ctrl-Shift-[ (Cmd-Alt-[ on macOS): [`foldCode`](https://codemirror.net/6/docs/ref/#language.foldCode).\n - Ctrl-Shift-] (Cmd-Alt-] on macOS): [`unfoldCode`](https://codemirror.net/6/docs/ref/#language.unfoldCode).\n - Ctrl-Alt-[: [`foldAll`](https://codemirror.net/6/docs/ref/#language.foldAll).\n - Ctrl-Alt-]: [`unfoldAll`](https://codemirror.net/6/docs/ref/#language.unfoldAll).\n*/\nconst foldKeymap = [\n { key: \"Ctrl-Shift-[\", mac: \"Cmd-Alt-[\", run: foldCode },\n { key: \"Ctrl-Shift-]\", mac: \"Cmd-Alt-]\", run: unfoldCode },\n { key: \"Ctrl-Alt-[\", run: foldAll },\n { key: \"Ctrl-Alt-]\", run: unfoldAll }\n];\nconst defaultConfig = {\n placeholderDOM: null,\n preparePlaceholder: null,\n placeholderText: \"…\"\n};\nconst foldConfig = /*@__PURE__*/Facet.define({\n combine(values) { return combineConfig(values, defaultConfig); }\n});\n/**\nCreate an extension that configures code folding.\n*/\nfunction codeFolding(config) {\n let result = [foldState, baseTheme$1];\n if (config)\n result.push(foldConfig.of(config));\n return result;\n}\nfunction widgetToDOM(view, prepared) {\n let { state } = view, conf = state.facet(foldConfig);\n let onclick = (event) => {\n let line = view.lineBlockAt(view.posAtDOM(event.target));\n let folded = findFold(view.state, line.from, line.to);\n if (folded)\n view.dispatch({ effects: unfoldEffect.of(folded) });\n event.preventDefault();\n };\n if (conf.placeholderDOM)\n return conf.placeholderDOM(view, onclick, prepared);\n let element = document.createElement(\"span\");\n element.textContent = conf.placeholderText;\n element.setAttribute(\"aria-label\", state.phrase(\"folded code\"));\n element.title = state.phrase(\"unfold\");\n element.className = \"cm-foldPlaceholder\";\n element.onclick = onclick;\n return element;\n}\nconst foldWidget = /*@__PURE__*/Decoration.replace({ widget: /*@__PURE__*/new class extends WidgetType {\n toDOM(view) { return widgetToDOM(view, null); }\n } });\nclass PreparedFoldWidget extends WidgetType {\n constructor(value) {\n super();\n this.value = value;\n }\n eq(other) { return this.value == other.value; }\n toDOM(view) { return widgetToDOM(view, this.value); }\n}\nconst foldGutterDefaults = {\n openText: \"⌄\",\n closedText: \"›\",\n markerDOM: null,\n domEventHandlers: {},\n foldingChanged: () => false\n};\nclass FoldMarker extends GutterMarker {\n constructor(config, open) {\n super();\n this.config = config;\n this.open = open;\n }\n eq(other) { return this.config == other.config && this.open == other.open; }\n toDOM(view) {\n if (this.config.markerDOM)\n return this.config.markerDOM(this.open);\n let span = document.createElement(\"span\");\n span.textContent = this.open ? this.config.openText : this.config.closedText;\n span.title = view.state.phrase(this.open ? \"Fold line\" : \"Unfold line\");\n return span;\n }\n}\n/**\nCreate an extension that registers a fold gutter, which shows a\nfold status indicator before foldable lines (which can be clicked\nto fold or unfold the line).\n*/\nfunction foldGutter(config = {}) {\n let fullConfig = Object.assign(Object.assign({}, foldGutterDefaults), config);\n let canFold = new FoldMarker(fullConfig, true), canUnfold = new FoldMarker(fullConfig, false);\n let markers = ViewPlugin.fromClass(class {\n constructor(view) {\n this.from = view.viewport.from;\n this.markers = this.buildMarkers(view);\n }\n update(update) {\n if (update.docChanged || update.viewportChanged ||\n update.startState.facet(language) != update.state.facet(language) ||\n update.startState.field(foldState, false) != update.state.field(foldState, false) ||\n syntaxTree(update.startState) != syntaxTree(update.state) ||\n fullConfig.foldingChanged(update))\n this.markers = this.buildMarkers(update.view);\n }\n buildMarkers(view) {\n let builder = new RangeSetBuilder();\n for (let line of view.viewportLineBlocks) {\n let mark = findFold(view.state, line.from, line.to) ? canUnfold\n : foldable(view.state, line.from, line.to) ? canFold : null;\n if (mark)\n builder.add(line.from, line.from, mark);\n }\n return builder.finish();\n }\n });\n let { domEventHandlers } = fullConfig;\n return [\n markers,\n gutter({\n class: \"cm-foldGutter\",\n markers(view) { var _a; return ((_a = view.plugin(markers)) === null || _a === void 0 ? void 0 : _a.markers) || RangeSet.empty; },\n initialSpacer() {\n return new FoldMarker(fullConfig, false);\n },\n domEventHandlers: Object.assign(Object.assign({}, domEventHandlers), { click: (view, line, event) => {\n if (domEventHandlers.click && domEventHandlers.click(view, line, event))\n return true;\n let folded = findFold(view.state, line.from, line.to);\n if (folded) {\n view.dispatch({ effects: unfoldEffect.of(folded) });\n return true;\n }\n let range = foldable(view.state, line.from, line.to);\n if (range) {\n view.dispatch({ effects: foldEffect.of(range) });\n return true;\n }\n return false;\n } })\n }),\n codeFolding()\n ];\n}\nconst baseTheme$1 = /*@__PURE__*/EditorView.baseTheme({\n \".cm-foldPlaceholder\": {\n backgroundColor: \"#eee\",\n border: \"1px solid #ddd\",\n color: \"#888\",\n borderRadius: \".2em\",\n margin: \"0 1px\",\n padding: \"0 1px\",\n cursor: \"pointer\"\n },\n \".cm-foldGutter span\": {\n padding: \"0 1px\",\n cursor: \"pointer\"\n }\n});\n\n/**\nA highlight style associates CSS styles with higlighting\n[tags](https://lezer.codemirror.net/docs/ref#highlight.Tag).\n*/\nclass HighlightStyle {\n constructor(\n /**\n The tag styles used to create this highlight style.\n */\n specs, options) {\n this.specs = specs;\n let modSpec;\n function def(spec) {\n let cls = StyleModule.newName();\n (modSpec || (modSpec = Object.create(null)))[\".\" + cls] = spec;\n return cls;\n }\n const all = typeof options.all == \"string\" ? options.all : options.all ? def(options.all) : undefined;\n const scopeOpt = options.scope;\n this.scope = scopeOpt instanceof Language ? (type) => type.prop(languageDataProp) == scopeOpt.data\n : scopeOpt ? (type) => type == scopeOpt : undefined;\n this.style = tagHighlighter(specs.map(style => ({\n tag: style.tag,\n class: style.class || def(Object.assign({}, style, { tag: null }))\n })), {\n all,\n }).style;\n this.module = modSpec ? new StyleModule(modSpec) : null;\n this.themeType = options.themeType;\n }\n /**\n Create a highlighter style that associates the given styles to\n the given tags. The specs must be objects that hold a style tag\n or array of tags in their `tag` property, and either a single\n `class` property providing a static CSS class (for highlighter\n that rely on external styling), or a\n [`style-mod`](https://github.com/marijnh/style-mod#documentation)-style\n set of CSS properties (which define the styling for those tags).\n \n The CSS rules created for a highlighter will be emitted in the\n order of the spec's properties. That means that for elements that\n have multiple tags associated with them, styles defined further\n down in the list will have a higher CSS precedence than styles\n defined earlier.\n */\n static define(specs, options) {\n return new HighlightStyle(specs, options || {});\n }\n}\nconst highlighterFacet = /*@__PURE__*/Facet.define();\nconst fallbackHighlighter = /*@__PURE__*/Facet.define({\n combine(values) { return values.length ? [values[0]] : null; }\n});\nfunction getHighlighters(state) {\n let main = state.facet(highlighterFacet);\n return main.length ? main : state.facet(fallbackHighlighter);\n}\n/**\nWrap a highlighter in an editor extension that uses it to apply\nsyntax highlighting to the editor content.\n\nWhen multiple (non-fallback) styles are provided, the styling\napplied is the union of the classes they emit.\n*/\nfunction syntaxHighlighting(highlighter, options) {\n let ext = [treeHighlighter], themeType;\n if (highlighter instanceof HighlightStyle) {\n if (highlighter.module)\n ext.push(EditorView.styleModule.of(highlighter.module));\n themeType = highlighter.themeType;\n }\n if (options === null || options === void 0 ? void 0 : options.fallback)\n ext.push(fallbackHighlighter.of(highlighter));\n else if (themeType)\n ext.push(highlighterFacet.computeN([EditorView.darkTheme], state => {\n return state.facet(EditorView.darkTheme) == (themeType == \"dark\") ? [highlighter] : [];\n }));\n else\n ext.push(highlighterFacet.of(highlighter));\n return ext;\n}\n/**\nReturns the CSS classes (if any) that the highlighters active in\nthe state would assign to the given style\n[tags](https://lezer.codemirror.net/docs/ref#highlight.Tag) and\n(optional) language\n[scope](https://codemirror.net/6/docs/ref/#language.HighlightStyle^define^options.scope).\n*/\nfunction highlightingFor(state, tags, scope) {\n let highlighters = getHighlighters(state);\n let result = null;\n if (highlighters)\n for (let highlighter of highlighters) {\n if (!highlighter.scope || scope && highlighter.scope(scope)) {\n let cls = highlighter.style(tags);\n if (cls)\n result = result ? result + \" \" + cls : cls;\n }\n }\n return result;\n}\nclass TreeHighlighter {\n constructor(view) {\n this.markCache = Object.create(null);\n this.tree = syntaxTree(view.state);\n this.decorations = this.buildDeco(view, getHighlighters(view.state));\n this.decoratedTo = view.viewport.to;\n }\n update(update) {\n let tree = syntaxTree(update.state), highlighters = getHighlighters(update.state);\n let styleChange = highlighters != getHighlighters(update.startState);\n let { viewport } = update.view, decoratedToMapped = update.changes.mapPos(this.decoratedTo, 1);\n if (tree.length < viewport.to && !styleChange && tree.type == this.tree.type && decoratedToMapped >= viewport.to) {\n this.decorations = this.decorations.map(update.changes);\n this.decoratedTo = decoratedToMapped;\n }\n else if (tree != this.tree || update.viewportChanged || styleChange) {\n this.tree = tree;\n this.decorations = this.buildDeco(update.view, highlighters);\n this.decoratedTo = viewport.to;\n }\n }\n buildDeco(view, highlighters) {\n if (!highlighters || !this.tree.length)\n return Decoration.none;\n let builder = new RangeSetBuilder();\n for (let { from, to } of view.visibleRanges) {\n highlightTree(this.tree, highlighters, (from, to, style) => {\n builder.add(from, to, this.markCache[style] || (this.markCache[style] = Decoration.mark({ class: style })));\n }, from, to);\n }\n return builder.finish();\n }\n}\nconst treeHighlighter = /*@__PURE__*/Prec.high(/*@__PURE__*/ViewPlugin.fromClass(TreeHighlighter, {\n decorations: v => v.decorations\n}));\n/**\nA default highlight style (works well with light themes).\n*/\nconst defaultHighlightStyle = /*@__PURE__*/HighlightStyle.define([\n { tag: tags.meta,\n color: \"#404740\" },\n { tag: tags.link,\n textDecoration: \"underline\" },\n { tag: tags.heading,\n textDecoration: \"underline\",\n fontWeight: \"bold\" },\n { tag: tags.emphasis,\n fontStyle: \"italic\" },\n { tag: tags.strong,\n fontWeight: \"bold\" },\n { tag: tags.strikethrough,\n textDecoration: \"line-through\" },\n { tag: tags.keyword,\n color: \"#708\" },\n { tag: [tags.atom, tags.bool, tags.url, tags.contentSeparator, tags.labelName],\n color: \"#219\" },\n { tag: [tags.literal, tags.inserted],\n color: \"#164\" },\n { tag: [tags.string, tags.deleted],\n color: \"#a11\" },\n { tag: [tags.regexp, tags.escape, /*@__PURE__*/tags.special(tags.string)],\n color: \"#e40\" },\n { tag: /*@__PURE__*/tags.definition(tags.variableName),\n color: \"#00f\" },\n { tag: /*@__PURE__*/tags.local(tags.variableName),\n color: \"#30a\" },\n { tag: [tags.typeName, tags.namespace],\n color: \"#085\" },\n { tag: tags.className,\n color: \"#167\" },\n { tag: [/*@__PURE__*/tags.special(tags.variableName), tags.macroName],\n color: \"#256\" },\n { tag: /*@__PURE__*/tags.definition(tags.propertyName),\n color: \"#00c\" },\n { tag: tags.comment,\n color: \"#940\" },\n { tag: tags.invalid,\n color: \"#f00\" }\n]);\n\nconst baseTheme = /*@__PURE__*/EditorView.baseTheme({\n \"&.cm-focused .cm-matchingBracket\": { backgroundColor: \"#328c8252\" },\n \"&.cm-focused .cm-nonmatchingBracket\": { backgroundColor: \"#bb555544\" }\n});\nconst DefaultScanDist = 10000, DefaultBrackets = \"()[]{}\";\nconst bracketMatchingConfig = /*@__PURE__*/Facet.define({\n combine(configs) {\n return combineConfig(configs, {\n afterCursor: true,\n brackets: DefaultBrackets,\n maxScanDistance: DefaultScanDist,\n renderMatch: defaultRenderMatch\n });\n }\n});\nconst matchingMark = /*@__PURE__*/Decoration.mark({ class: \"cm-matchingBracket\" }), nonmatchingMark = /*@__PURE__*/Decoration.mark({ class: \"cm-nonmatchingBracket\" });\nfunction defaultRenderMatch(match) {\n let decorations = [];\n let mark = match.matched ? matchingMark : nonmatchingMark;\n decorations.push(mark.range(match.start.from, match.start.to));\n if (match.end)\n decorations.push(mark.range(match.end.from, match.end.to));\n return decorations;\n}\nconst bracketMatchingState = /*@__PURE__*/StateField.define({\n create() { return Decoration.none; },\n update(deco, tr) {\n if (!tr.docChanged && !tr.selection)\n return deco;\n let decorations = [];\n let config = tr.state.facet(bracketMatchingConfig);\n for (let range of tr.state.selection.ranges) {\n if (!range.empty)\n continue;\n let match = matchBrackets(tr.state, range.head, -1, config)\n || (range.head > 0 && matchBrackets(tr.state, range.head - 1, 1, config))\n || (config.afterCursor &&\n (matchBrackets(tr.state, range.head, 1, config) ||\n (range.head < tr.state.doc.length && matchBrackets(tr.state, range.head + 1, -1, config))));\n if (match)\n decorations = decorations.concat(config.renderMatch(match, tr.state));\n }\n return Decoration.set(decorations, true);\n },\n provide: f => EditorView.decorations.from(f)\n});\nconst bracketMatchingUnique = [\n bracketMatchingState,\n baseTheme\n];\n/**\nCreate an extension that enables bracket matching. Whenever the\ncursor is next to a bracket, that bracket and the one it matches\nare highlighted. Or, when no matching bracket is found, another\nhighlighting style is used to indicate this.\n*/\nfunction bracketMatching(config = {}) {\n return [bracketMatchingConfig.of(config), bracketMatchingUnique];\n}\n/**\nWhen larger syntax nodes, such as HTML tags, are marked as\nopening/closing, it can be a bit messy to treat the whole node as\na matchable bracket. This node prop allows you to define, for such\na node, a ‘handle’—the part of the node that is highlighted, and\nthat the cursor must be on to activate highlighting in the first\nplace.\n*/\nconst bracketMatchingHandle = /*@__PURE__*/new NodeProp();\nfunction matchingNodes(node, dir, brackets) {\n let byProp = node.prop(dir < 0 ? NodeProp.openedBy : NodeProp.closedBy);\n if (byProp)\n return byProp;\n if (node.name.length == 1) {\n let index = brackets.indexOf(node.name);\n if (index > -1 && index % 2 == (dir < 0 ? 1 : 0))\n return [brackets[index + dir]];\n }\n return null;\n}\nfunction findHandle(node) {\n let hasHandle = node.type.prop(bracketMatchingHandle);\n return hasHandle ? hasHandle(node.node) : node;\n}\n/**\nFind the matching bracket for the token at `pos`, scanning\ndirection `dir`. Only the `brackets` and `maxScanDistance`\nproperties are used from `config`, if given. Returns null if no\nbracket was found at `pos`, or a match result otherwise.\n*/\nfunction matchBrackets(state, pos, dir, config = {}) {\n let maxScanDistance = config.maxScanDistance || DefaultScanDist, brackets = config.brackets || DefaultBrackets;\n let tree = syntaxTree(state), node = tree.resolveInner(pos, dir);\n for (let cur = node; cur; cur = cur.parent) {\n let matches = matchingNodes(cur.type, dir, brackets);\n if (matches && cur.from < cur.to) {\n let handle = findHandle(cur);\n if (handle && (dir > 0 ? pos >= handle.from && pos < handle.to : pos > handle.from && pos <= handle.to))\n return matchMarkedBrackets(state, pos, dir, cur, handle, matches, brackets);\n }\n }\n return matchPlainBrackets(state, pos, dir, tree, node.type, maxScanDistance, brackets);\n}\nfunction matchMarkedBrackets(_state, _pos, dir, token, handle, matching, brackets) {\n let parent = token.parent, firstToken = { from: handle.from, to: handle.to };\n let depth = 0, cursor = parent === null || parent === void 0 ? void 0 : parent.cursor();\n if (cursor && (dir < 0 ? cursor.childBefore(token.from) : cursor.childAfter(token.to)))\n do {\n if (dir < 0 ? cursor.to <= token.from : cursor.from >= token.to) {\n if (depth == 0 && matching.indexOf(cursor.type.name) > -1 && cursor.from < cursor.to) {\n let endHandle = findHandle(cursor);\n return { start: firstToken, end: endHandle ? { from: endHandle.from, to: endHandle.to } : undefined, matched: true };\n }\n else if (matchingNodes(cursor.type, dir, brackets)) {\n depth++;\n }\n else if (matchingNodes(cursor.type, -dir, brackets)) {\n if (depth == 0) {\n let endHandle = findHandle(cursor);\n return {\n start: firstToken,\n end: endHandle && endHandle.from < endHandle.to ? { from: endHandle.from, to: endHandle.to } : undefined,\n matched: false\n };\n }\n depth--;\n }\n }\n } while (dir < 0 ? cursor.prevSibling() : cursor.nextSibling());\n return { start: firstToken, matched: false };\n}\nfunction matchPlainBrackets(state, pos, dir, tree, tokenType, maxScanDistance, brackets) {\n let startCh = dir < 0 ? state.sliceDoc(pos - 1, pos) : state.sliceDoc(pos, pos + 1);\n let bracket = brackets.indexOf(startCh);\n if (bracket < 0 || (bracket % 2 == 0) != (dir > 0))\n return null;\n let startToken = { from: dir < 0 ? pos - 1 : pos, to: dir > 0 ? pos + 1 : pos };\n let iter = state.doc.iterRange(pos, dir > 0 ? state.doc.length : 0), depth = 0;\n for (let distance = 0; !(iter.next()).done && distance <= maxScanDistance;) {\n let text = iter.value;\n if (dir < 0)\n distance += text.length;\n let basePos = pos + distance * dir;\n for (let pos = dir > 0 ? 0 : text.length - 1, end = dir > 0 ? text.length : -1; pos != end; pos += dir) {\n let found = brackets.indexOf(text[pos]);\n if (found < 0 || tree.resolveInner(basePos + pos, 1).type != tokenType)\n continue;\n if ((found % 2 == 0) == (dir > 0)) {\n depth++;\n }\n else if (depth == 1) { // Closing\n return { start: startToken, end: { from: basePos + pos, to: basePos + pos + 1 }, matched: (found >> 1) == (bracket >> 1) };\n }\n else {\n depth--;\n }\n }\n if (dir > 0)\n distance += text.length;\n }\n return iter.done ? { start: startToken, matched: false } : null;\n}\n\n// Counts the column offset in a string, taking tabs into account.\n// Used mostly to find indentation.\nfunction countCol(string, end, tabSize, startIndex = 0, startValue = 0) {\n if (end == null) {\n end = string.search(/[^\\s\\u00a0]/);\n if (end == -1)\n end = string.length;\n }\n let n = startValue;\n for (let i = startIndex; i < end; i++) {\n if (string.charCodeAt(i) == 9)\n n += tabSize - (n % tabSize);\n else\n n++;\n }\n return n;\n}\n/**\nEncapsulates a single line of input. Given to stream syntax code,\nwhich uses it to tokenize the content.\n*/\nclass StringStream {\n /**\n Create a stream.\n */\n constructor(\n /**\n The line.\n */\n string, tabSize, \n /**\n The current indent unit size.\n */\n indentUnit, overrideIndent) {\n this.string = string;\n this.tabSize = tabSize;\n this.indentUnit = indentUnit;\n this.overrideIndent = overrideIndent;\n /**\n The current position on the line.\n */\n this.pos = 0;\n /**\n The start position of the current token.\n */\n this.start = 0;\n this.lastColumnPos = 0;\n this.lastColumnValue = 0;\n }\n /**\n True if we are at the end of the line.\n */\n eol() { return this.pos >= this.string.length; }\n /**\n True if we are at the start of the line.\n */\n sol() { return this.pos == 0; }\n /**\n Get the next code unit after the current position, or undefined\n if we're at the end of the line.\n */\n peek() { return this.string.charAt(this.pos) || undefined; }\n /**\n Read the next code unit and advance `this.pos`.\n */\n next() {\n if (this.pos < this.string.length)\n return this.string.charAt(this.pos++);\n }\n /**\n Match the next character against the given string, regular\n expression, or predicate. Consume and return it if it matches.\n */\n eat(match) {\n let ch = this.string.charAt(this.pos);\n let ok;\n if (typeof match == \"string\")\n ok = ch == match;\n else\n ok = ch && (match instanceof RegExp ? match.test(ch) : match(ch));\n if (ok) {\n ++this.pos;\n return ch;\n }\n }\n /**\n Continue matching characters that match the given string,\n regular expression, or predicate function. Return true if any\n characters were consumed.\n */\n eatWhile(match) {\n let start = this.pos;\n while (this.eat(match)) { }\n return this.pos > start;\n }\n /**\n Consume whitespace ahead of `this.pos`. Return true if any was\n found.\n */\n eatSpace() {\n let start = this.pos;\n while (/[\\s\\u00a0]/.test(this.string.charAt(this.pos)))\n ++this.pos;\n return this.pos > start;\n }\n /**\n Move to the end of the line.\n */\n skipToEnd() { this.pos = this.string.length; }\n /**\n Move to directly before the given character, if found on the\n current line.\n */\n skipTo(ch) {\n let found = this.string.indexOf(ch, this.pos);\n if (found > -1) {\n this.pos = found;\n return true;\n }\n }\n /**\n Move back `n` characters.\n */\n backUp(n) { this.pos -= n; }\n /**\n Get the column position at `this.pos`.\n */\n column() {\n if (this.lastColumnPos < this.start) {\n this.lastColumnValue = countCol(this.string, this.start, this.tabSize, this.lastColumnPos, this.lastColumnValue);\n this.lastColumnPos = this.start;\n }\n return this.lastColumnValue;\n }\n /**\n Get the indentation column of the current line.\n */\n indentation() {\n var _a;\n return (_a = this.overrideIndent) !== null && _a !== void 0 ? _a : countCol(this.string, null, this.tabSize);\n }\n /**\n Match the input against the given string or regular expression\n (which should start with a `^`). Return true or the regexp match\n if it matches.\n \n Unless `consume` is set to `false`, this will move `this.pos`\n past the matched text.\n \n When matching a string `caseInsensitive` can be set to true to\n make the match case-insensitive.\n */\n match(pattern, consume, caseInsensitive) {\n if (typeof pattern == \"string\") {\n let cased = (str) => caseInsensitive ? str.toLowerCase() : str;\n let substr = this.string.substr(this.pos, pattern.length);\n if (cased(substr) == cased(pattern)) {\n if (consume !== false)\n this.pos += pattern.length;\n return true;\n }\n else\n return null;\n }\n else {\n let match = this.string.slice(this.pos).match(pattern);\n if (match && match.index > 0)\n return null;\n if (match && consume !== false)\n this.pos += match[0].length;\n return match;\n }\n }\n /**\n Get the current token.\n */\n current() { return this.string.slice(this.start, this.pos); }\n}\n\nfunction fullParser(spec) {\n return {\n name: spec.name || \"\",\n token: spec.token,\n blankLine: spec.blankLine || (() => { }),\n startState: spec.startState || (() => true),\n copyState: spec.copyState || defaultCopyState,\n indent: spec.indent || (() => null),\n languageData: spec.languageData || {},\n tokenTable: spec.tokenTable || noTokens\n };\n}\nfunction defaultCopyState(state) {\n if (typeof state != \"object\")\n return state;\n let newState = {};\n for (let prop in state) {\n let val = state[prop];\n newState[prop] = (val instanceof Array ? val.slice() : val);\n }\n return newState;\n}\nconst IndentedFrom = /*@__PURE__*/new WeakMap();\n/**\nA [language](https://codemirror.net/6/docs/ref/#language.Language) class based on a CodeMirror\n5-style [streaming parser](https://codemirror.net/6/docs/ref/#language.StreamParser).\n*/\nclass StreamLanguage extends Language {\n constructor(parser) {\n let data = defineLanguageFacet(parser.languageData);\n let p = fullParser(parser), self;\n let impl = new class extends Parser {\n createParse(input, fragments, ranges) {\n return new Parse(self, input, fragments, ranges);\n }\n };\n super(data, impl, [indentService.of((cx, pos) => this.getIndent(cx, pos))], parser.name);\n this.topNode = docID(data);\n self = this;\n this.streamParser = p;\n this.stateAfter = new NodeProp({ perNode: true });\n this.tokenTable = parser.tokenTable ? new TokenTable(p.tokenTable) : defaultTokenTable;\n }\n /**\n Define a stream language.\n */\n static define(spec) { return new StreamLanguage(spec); }\n getIndent(cx, pos) {\n let tree = syntaxTree(cx.state), at = tree.resolve(pos);\n while (at && at.type != this.topNode)\n at = at.parent;\n if (!at)\n return null;\n let from = undefined;\n let { overrideIndentation } = cx.options;\n if (overrideIndentation) {\n from = IndentedFrom.get(cx.state);\n if (from != null && from < pos - 1e4)\n from = undefined;\n }\n let start = findState(this, tree, 0, at.from, from !== null && from !== void 0 ? from : pos), statePos, state;\n if (start) {\n state = start.state;\n statePos = start.pos + 1;\n }\n else {\n state = this.streamParser.startState(cx.unit);\n statePos = 0;\n }\n if (pos - statePos > 10000 /* C.MaxIndentScanDist */)\n return null;\n while (statePos < pos) {\n let line = cx.state.doc.lineAt(statePos), end = Math.min(pos, line.to);\n if (line.length) {\n let indentation = overrideIndentation ? overrideIndentation(line.from) : -1;\n let stream = new StringStream(line.text, cx.state.tabSize, cx.unit, indentation < 0 ? undefined : indentation);\n while (stream.pos < end - line.from)\n readToken(this.streamParser.token, stream, state);\n }\n else {\n this.streamParser.blankLine(state, cx.unit);\n }\n if (end == pos)\n break;\n statePos = line.to + 1;\n }\n let line = cx.lineAt(pos);\n if (overrideIndentation && from == null)\n IndentedFrom.set(cx.state, line.from);\n return this.streamParser.indent(state, /^\\s*(.*)/.exec(line.text)[1], cx);\n }\n get allowsNesting() { return false; }\n}\nfunction findState(lang, tree, off, startPos, before) {\n let state = off >= startPos && off + tree.length <= before && tree.prop(lang.stateAfter);\n if (state)\n return { state: lang.streamParser.copyState(state), pos: off + tree.length };\n for (let i = tree.children.length - 1; i >= 0; i--) {\n let child = tree.children[i], pos = off + tree.positions[i];\n let found = child instanceof Tree && pos < before && findState(lang, child, pos, startPos, before);\n if (found)\n return found;\n }\n return null;\n}\nfunction cutTree(lang, tree, from, to, inside) {\n if (inside && from <= 0 && to >= tree.length)\n return tree;\n if (!inside && tree.type == lang.topNode)\n inside = true;\n for (let i = tree.children.length - 1; i >= 0; i--) {\n let pos = tree.positions[i], child = tree.children[i], inner;\n if (pos < to && child instanceof Tree) {\n if (!(inner = cutTree(lang, child, from - pos, to - pos, inside)))\n break;\n return !inside ? inner\n : new Tree(tree.type, tree.children.slice(0, i).concat(inner), tree.positions.slice(0, i + 1), pos + inner.length);\n }\n }\n return null;\n}\nfunction findStartInFragments(lang, fragments, startPos, editorState) {\n for (let f of fragments) {\n let from = f.from + (f.openStart ? 25 : 0), to = f.to - (f.openEnd ? 25 : 0);\n let found = from <= startPos && to > startPos && findState(lang, f.tree, 0 - f.offset, startPos, to), tree;\n if (found && (tree = cutTree(lang, f.tree, startPos + f.offset, found.pos + f.offset, false)))\n return { state: found.state, tree };\n }\n return { state: lang.streamParser.startState(editorState ? getIndentUnit(editorState) : 4), tree: Tree.empty };\n}\nclass Parse {\n constructor(lang, input, fragments, ranges) {\n this.lang = lang;\n this.input = input;\n this.fragments = fragments;\n this.ranges = ranges;\n this.stoppedAt = null;\n this.chunks = [];\n this.chunkPos = [];\n this.chunk = [];\n this.chunkReused = undefined;\n this.rangeIndex = 0;\n this.to = ranges[ranges.length - 1].to;\n let context = ParseContext.get(), from = ranges[0].from;\n let { state, tree } = findStartInFragments(lang, fragments, from, context === null || context === void 0 ? void 0 : context.state);\n this.state = state;\n this.parsedPos = this.chunkStart = from + tree.length;\n for (let i = 0; i < tree.children.length; i++) {\n this.chunks.push(tree.children[i]);\n this.chunkPos.push(tree.positions[i]);\n }\n if (context && this.parsedPos < context.viewport.from - 100000 /* C.MaxDistanceBeforeViewport */) {\n this.state = this.lang.streamParser.startState(getIndentUnit(context.state));\n context.skipUntilInView(this.parsedPos, context.viewport.from);\n this.parsedPos = context.viewport.from;\n }\n this.moveRangeIndex();\n }\n advance() {\n let context = ParseContext.get();\n let parseEnd = this.stoppedAt == null ? this.to : Math.min(this.to, this.stoppedAt);\n let end = Math.min(parseEnd, this.chunkStart + 2048 /* C.ChunkSize */);\n if (context)\n end = Math.min(end, context.viewport.to);\n while (this.parsedPos < end)\n this.parseLine(context);\n if (this.chunkStart < this.parsedPos)\n this.finishChunk();\n if (this.parsedPos >= parseEnd)\n return this.finish();\n if (context && this.parsedPos >= context.viewport.to) {\n context.skipUntilInView(this.parsedPos, parseEnd);\n return this.finish();\n }\n return null;\n }\n stopAt(pos) {\n this.stoppedAt = pos;\n }\n lineAfter(pos) {\n let chunk = this.input.chunk(pos);\n if (!this.input.lineChunks) {\n let eol = chunk.indexOf(\"\\n\");\n if (eol > -1)\n chunk = chunk.slice(0, eol);\n }\n else if (chunk == \"\\n\") {\n chunk = \"\";\n }\n return pos + chunk.length <= this.to ? chunk : chunk.slice(0, this.to - pos);\n }\n nextLine() {\n let from = this.parsedPos, line = this.lineAfter(from), end = from + line.length;\n for (let index = this.rangeIndex;;) {\n let rangeEnd = this.ranges[index].to;\n if (rangeEnd >= end)\n break;\n line = line.slice(0, rangeEnd - (end - line.length));\n index++;\n if (index == this.ranges.length)\n break;\n let rangeStart = this.ranges[index].from;\n let after = this.lineAfter(rangeStart);\n line += after;\n end = rangeStart + after.length;\n }\n return { line, end };\n }\n skipGapsTo(pos, offset, side) {\n for (;;) {\n let end = this.ranges[this.rangeIndex].to, offPos = pos + offset;\n if (side > 0 ? end > offPos : end >= offPos)\n break;\n let start = this.ranges[++this.rangeIndex].from;\n offset += start - end;\n }\n return offset;\n }\n moveRangeIndex() {\n while (this.ranges[this.rangeIndex].to < this.parsedPos)\n this.rangeIndex++;\n }\n emitToken(id, from, to, size, offset) {\n if (this.ranges.length > 1) {\n offset = this.skipGapsTo(from, offset, 1);\n from += offset;\n let len0 = this.chunk.length;\n offset = this.skipGapsTo(to, offset, -1);\n to += offset;\n size += this.chunk.length - len0;\n }\n this.chunk.push(id, from, to, size);\n return offset;\n }\n parseLine(context) {\n let { line, end } = this.nextLine(), offset = 0, { streamParser } = this.lang;\n let stream = new StringStream(line, context ? context.state.tabSize : 4, context ? getIndentUnit(context.state) : 2);\n if (stream.eol()) {\n streamParser.blankLine(this.state, stream.indentUnit);\n }\n else {\n while (!stream.eol()) {\n let token = readToken(streamParser.token, stream, this.state);\n if (token)\n offset = this.emitToken(this.lang.tokenTable.resolve(token), this.parsedPos + stream.start, this.parsedPos + stream.pos, 4, offset);\n if (stream.start > 10000 /* C.MaxLineLength */)\n break;\n }\n }\n this.parsedPos = end;\n this.moveRangeIndex();\n if (this.parsedPos < this.to)\n this.parsedPos++;\n }\n finishChunk() {\n let tree = Tree.build({\n buffer: this.chunk,\n start: this.chunkStart,\n length: this.parsedPos - this.chunkStart,\n nodeSet,\n topID: 0,\n maxBufferLength: 2048 /* C.ChunkSize */,\n reused: this.chunkReused\n });\n tree = new Tree(tree.type, tree.children, tree.positions, tree.length, [[this.lang.stateAfter, this.lang.streamParser.copyState(this.state)]]);\n this.chunks.push(tree);\n this.chunkPos.push(this.chunkStart - this.ranges[0].from);\n this.chunk = [];\n this.chunkReused = undefined;\n this.chunkStart = this.parsedPos;\n }\n finish() {\n return new Tree(this.lang.topNode, this.chunks, this.chunkPos, this.parsedPos - this.ranges[0].from).balance();\n }\n}\nfunction readToken(token, stream, state) {\n stream.start = stream.pos;\n for (let i = 0; i < 10; i++) {\n let result = token(stream, state);\n if (stream.pos > stream.start)\n return result;\n }\n throw new Error(\"Stream parser failed to advance stream.\");\n}\nconst noTokens = /*@__PURE__*/Object.create(null);\nconst typeArray = [NodeType.none];\nconst nodeSet = /*@__PURE__*/new NodeSet(typeArray);\nconst warned = [];\n// Cache of node types by name and tags\nconst byTag = /*@__PURE__*/Object.create(null);\nconst defaultTable = /*@__PURE__*/Object.create(null);\nfor (let [legacyName, name] of [\n [\"variable\", \"variableName\"],\n [\"variable-2\", \"variableName.special\"],\n [\"string-2\", \"string.special\"],\n [\"def\", \"variableName.definition\"],\n [\"tag\", \"tagName\"],\n [\"attribute\", \"attributeName\"],\n [\"type\", \"typeName\"],\n [\"builtin\", \"variableName.standard\"],\n [\"qualifier\", \"modifier\"],\n [\"error\", \"invalid\"],\n [\"header\", \"heading\"],\n [\"property\", \"propertyName\"]\n])\n defaultTable[legacyName] = /*@__PURE__*/createTokenType(noTokens, name);\nclass TokenTable {\n constructor(extra) {\n this.extra = extra;\n this.table = Object.assign(Object.create(null), defaultTable);\n }\n resolve(tag) {\n return !tag ? 0 : this.table[tag] || (this.table[tag] = createTokenType(this.extra, tag));\n }\n}\nconst defaultTokenTable = /*@__PURE__*/new TokenTable(noTokens);\nfunction warnForPart(part, msg) {\n if (warned.indexOf(part) > -1)\n return;\n warned.push(part);\n console.warn(msg);\n}\nfunction createTokenType(extra, tagStr) {\n let tags$1 = [];\n for (let name of tagStr.split(\" \")) {\n let found = [];\n for (let part of name.split(\".\")) {\n let value = (extra[part] || tags[part]);\n if (!value) {\n warnForPart(part, `Unknown highlighting tag ${part}`);\n }\n else if (typeof value == \"function\") {\n if (!found.length)\n warnForPart(part, `Modifier ${part} used at start of tag`);\n else\n found = found.map(value);\n }\n else {\n if (found.length)\n warnForPart(part, `Tag ${part} used as modifier`);\n else\n found = Array.isArray(value) ? value : [value];\n }\n }\n for (let tag of found)\n tags$1.push(tag);\n }\n if (!tags$1.length)\n return 0;\n let name = tagStr.replace(/ /g, \"_\"), key = name + \" \" + tags$1.map(t => t.id);\n let known = byTag[key];\n if (known)\n return known.id;\n let type = byTag[key] = NodeType.define({\n id: typeArray.length,\n name,\n props: [styleTags({ [name]: tags$1 })]\n });\n typeArray.push(type);\n return type.id;\n}\nfunction docID(data) {\n let type = NodeType.define({ id: typeArray.length, name: \"Document\", props: [languageDataProp.add(() => data)], top: true });\n typeArray.push(type);\n return type;\n}\n\nfunction buildForLine(line) {\n return line.length <= 4096 && /[\\u0590-\\u05f4\\u0600-\\u06ff\\u0700-\\u08ac\\ufb50-\\ufdff]/.test(line);\n}\nfunction textHasRTL(text) {\n for (let i = text.iter(); !i.next().done;)\n if (buildForLine(i.value))\n return true;\n return false;\n}\nfunction changeAddsRTL(change) {\n let added = false;\n change.iterChanges((fA, tA, fB, tB, ins) => {\n if (!added && textHasRTL(ins))\n added = true;\n });\n return added;\n}\nconst alwaysIsolate = /*@__PURE__*/Facet.define({ combine: values => values.some(x => x) });\n/**\nMake sure nodes\n[marked](https://lezer.codemirror.net/docs/ref/#common.NodeProp^isolate)\nas isolating for bidirectional text are rendered in a way that\nisolates them from the surrounding text.\n*/\nfunction bidiIsolates(options = {}) {\n let extensions = [isolateMarks];\n if (options.alwaysIsolate)\n extensions.push(alwaysIsolate.of(true));\n return extensions;\n}\nconst isolateMarks = /*@__PURE__*/ViewPlugin.fromClass(class {\n constructor(view) {\n this.always = view.state.facet(alwaysIsolate) ||\n view.textDirection != Direction.LTR ||\n view.state.facet(EditorView.perLineTextDirection);\n this.hasRTL = !this.always && textHasRTL(view.state.doc);\n this.tree = syntaxTree(view.state);\n this.decorations = this.always || this.hasRTL ? buildDeco(view, this.tree, this.always) : Decoration.none;\n }\n update(update) {\n let always = update.state.facet(alwaysIsolate) ||\n update.view.textDirection != Direction.LTR ||\n update.state.facet(EditorView.perLineTextDirection);\n if (!always && !this.hasRTL && changeAddsRTL(update.changes))\n this.hasRTL = true;\n if (!always && !this.hasRTL)\n return;\n let tree = syntaxTree(update.state);\n if (always != this.always || tree != this.tree || update.docChanged || update.viewportChanged) {\n this.tree = tree;\n this.always = always;\n this.decorations = buildDeco(update.view, tree, always);\n }\n }\n}, {\n provide: plugin => {\n function access(view) {\n var _a, _b;\n return (_b = (_a = view.plugin(plugin)) === null || _a === void 0 ? void 0 : _a.decorations) !== null && _b !== void 0 ? _b : Decoration.none;\n }\n return [EditorView.outerDecorations.of(access),\n Prec.lowest(EditorView.bidiIsolatedRanges.of(access))];\n }\n});\nfunction buildDeco(view, tree, always) {\n let deco = new RangeSetBuilder();\n let ranges = view.visibleRanges;\n if (!always)\n ranges = clipRTLLines(ranges, view.state.doc);\n for (let { from, to } of ranges) {\n tree.iterate({\n enter: node => {\n let iso = node.type.prop(NodeProp.isolate);\n if (iso)\n deco.add(node.from, node.to, marks[iso]);\n },\n from, to\n });\n }\n return deco.finish();\n}\nfunction clipRTLLines(ranges, doc) {\n let cur = doc.iter(), pos = 0, result = [], last = null;\n for (let { from, to } of ranges) {\n if (last && last.to > from) {\n from = last.to;\n if (from >= to)\n continue;\n }\n if (pos + cur.value.length < from) {\n cur.next(from - (pos + cur.value.length));\n pos = from;\n }\n for (;;) {\n let start = pos, end = pos + cur.value.length;\n if (!cur.lineBreak && buildForLine(cur.value)) {\n if (last && last.to > start - 10)\n last.to = Math.min(to, end);\n else\n result.push(last = { from: start, to: Math.min(to, end) });\n }\n if (end >= to)\n break;\n pos = end;\n cur.next();\n }\n }\n return result;\n}\nconst marks = {\n rtl: /*@__PURE__*/Decoration.mark({ class: \"cm-iso\", inclusive: true, attributes: { dir: \"rtl\" }, bidiIsolate: Direction.RTL }),\n ltr: /*@__PURE__*/Decoration.mark({ class: \"cm-iso\", inclusive: true, attributes: { dir: \"ltr\" }, bidiIsolate: Direction.LTR }),\n auto: /*@__PURE__*/Decoration.mark({ class: \"cm-iso\", inclusive: true, attributes: { dir: \"auto\" }, bidiIsolate: null })\n};\n\nexport { DocInput, HighlightStyle, IndentContext, LRLanguage, Language, LanguageDescription, LanguageSupport, ParseContext, StreamLanguage, StringStream, TreeIndentContext, bidiIsolates, bracketMatching, bracketMatchingHandle, codeFolding, continuedIndent, defaultHighlightStyle, defineLanguageFacet, delimitedIndent, ensureSyntaxTree, flatIndent, foldAll, foldCode, foldEffect, foldGutter, foldInside, foldKeymap, foldNodeProp, foldService, foldState, foldable, foldedRanges, forceParsing, getIndentUnit, getIndentation, highlightingFor, indentNodeProp, indentOnInput, indentRange, indentService, indentString, indentUnit, language, languageDataProp, matchBrackets, sublanguageProp, syntaxHighlighting, syntaxParserRunning, syntaxTree, syntaxTreeAvailable, toggleFold, unfoldAll, unfoldCode, unfoldEffect };\n","import { Annotation, StateEffect, EditorSelection, codePointAt, codePointSize, fromCodePoint, Facet, combineConfig, StateField, Prec, Text, Transaction, MapMode, RangeValue, RangeSet, CharCategory } from '@codemirror/state';\nimport { Direction, logException, showTooltip, EditorView, ViewPlugin, getTooltip, Decoration, WidgetType, keymap } from '@codemirror/view';\nimport { syntaxTree, indentUnit } from '@codemirror/language';\n\n/**\nAn instance of this is passed to completion source functions.\n*/\nclass CompletionContext {\n /**\n Create a new completion context. (Mostly useful for testing\n completion sources—in the editor, the extension will create\n these for you.)\n */\n constructor(\n /**\n The editor state that the completion happens in.\n */\n state, \n /**\n The position at which the completion is happening.\n */\n pos, \n /**\n Indicates whether completion was activated explicitly, or\n implicitly by typing. The usual way to respond to this is to\n only return completions when either there is part of a\n completable entity before the cursor, or `explicit` is true.\n */\n explicit, \n /**\n The editor view. May be undefined if the context was created\n in a situation where there is no such view available, such as\n in synchronous updates via\n [`CompletionResult.update`](https://codemirror.net/6/docs/ref/#autocomplete.CompletionResult.update)\n or when called by test code.\n */\n view) {\n this.state = state;\n this.pos = pos;\n this.explicit = explicit;\n this.view = view;\n /**\n @internal\n */\n this.abortListeners = [];\n }\n /**\n Get the extent, content, and (if there is a token) type of the\n token before `this.pos`.\n */\n tokenBefore(types) {\n let token = syntaxTree(this.state).resolveInner(this.pos, -1);\n while (token && types.indexOf(token.name) < 0)\n token = token.parent;\n return token ? { from: token.from, to: this.pos,\n text: this.state.sliceDoc(token.from, this.pos),\n type: token.type } : null;\n }\n /**\n Get the match of the given expression directly before the\n cursor.\n */\n matchBefore(expr) {\n let line = this.state.doc.lineAt(this.pos);\n let start = Math.max(line.from, this.pos - 250);\n let str = line.text.slice(start - line.from, this.pos - line.from);\n let found = str.search(ensureAnchor(expr, false));\n return found < 0 ? null : { from: start + found, to: this.pos, text: str.slice(found) };\n }\n /**\n Yields true when the query has been aborted. Can be useful in\n asynchronous queries to avoid doing work that will be ignored.\n */\n get aborted() { return this.abortListeners == null; }\n /**\n Allows you to register abort handlers, which will be called when\n the query is\n [aborted](https://codemirror.net/6/docs/ref/#autocomplete.CompletionContext.aborted).\n */\n addEventListener(type, listener) {\n if (type == \"abort\" && this.abortListeners)\n this.abortListeners.push(listener);\n }\n}\nfunction toSet(chars) {\n let flat = Object.keys(chars).join(\"\");\n let words = /\\w/.test(flat);\n if (words)\n flat = flat.replace(/\\w/g, \"\");\n return `[${words ? \"\\\\w\" : \"\"}${flat.replace(/[^\\w\\s]/g, \"\\\\$&\")}]`;\n}\nfunction prefixMatch(options) {\n let first = Object.create(null), rest = Object.create(null);\n for (let { label } of options) {\n first[label[0]] = true;\n for (let i = 1; i < label.length; i++)\n rest[label[i]] = true;\n }\n let source = toSet(first) + toSet(rest) + \"*$\";\n return [new RegExp(\"^\" + source), new RegExp(source)];\n}\n/**\nGiven a a fixed array of options, return an autocompleter that\ncompletes them.\n*/\nfunction completeFromList(list) {\n let options = list.map(o => typeof o == \"string\" ? { label: o } : o);\n let [validFor, match] = options.every(o => /^\\w+$/.test(o.label)) ? [/\\w*$/, /\\w+$/] : prefixMatch(options);\n return (context) => {\n let token = context.matchBefore(match);\n return token || context.explicit ? { from: token ? token.from : context.pos, options, validFor } : null;\n };\n}\n/**\nWrap the given completion source so that it will only fire when the\ncursor is in a syntax node with one of the given names.\n*/\nfunction ifIn(nodes, source) {\n return (context) => {\n for (let pos = syntaxTree(context.state).resolveInner(context.pos, -1); pos; pos = pos.parent) {\n if (nodes.indexOf(pos.name) > -1)\n return source(context);\n if (pos.type.isTop)\n break;\n }\n return null;\n };\n}\n/**\nWrap the given completion source so that it will not fire when the\ncursor is in a syntax node with one of the given names.\n*/\nfunction ifNotIn(nodes, source) {\n return (context) => {\n for (let pos = syntaxTree(context.state).resolveInner(context.pos, -1); pos; pos = pos.parent) {\n if (nodes.indexOf(pos.name) > -1)\n return null;\n if (pos.type.isTop)\n break;\n }\n return source(context);\n };\n}\nclass Option {\n constructor(completion, source, match, score) {\n this.completion = completion;\n this.source = source;\n this.match = match;\n this.score = score;\n }\n}\nfunction cur(state) { return state.selection.main.from; }\n// Make sure the given regexp has a $ at its end and, if `start` is\n// true, a ^ at its start.\nfunction ensureAnchor(expr, start) {\n var _a;\n let { source } = expr;\n let addStart = start && source[0] != \"^\", addEnd = source[source.length - 1] != \"$\";\n if (!addStart && !addEnd)\n return expr;\n return new RegExp(`${addStart ? \"^\" : \"\"}(?:${source})${addEnd ? \"$\" : \"\"}`, (_a = expr.flags) !== null && _a !== void 0 ? _a : (expr.ignoreCase ? \"i\" : \"\"));\n}\n/**\nThis annotation is added to transactions that are produced by\npicking a completion.\n*/\nconst pickedCompletion = /*@__PURE__*/Annotation.define();\n/**\nHelper function that returns a transaction spec which inserts a\ncompletion's text in the main selection range, and any other\nselection range that has the same text in front of it.\n*/\nfunction insertCompletionText(state, text, from, to) {\n let { main } = state.selection, fromOff = from - main.from, toOff = to - main.from;\n return Object.assign(Object.assign({}, state.changeByRange(range => {\n if (range != main && from != to &&\n state.sliceDoc(range.from + fromOff, range.from + toOff) != state.sliceDoc(from, to))\n return { range };\n return {\n changes: { from: range.from + fromOff, to: to == main.from ? range.to : range.from + toOff, insert: text },\n range: EditorSelection.cursor(range.from + fromOff + text.length)\n };\n })), { scrollIntoView: true, userEvent: \"input.complete\" });\n}\nconst SourceCache = /*@__PURE__*/new WeakMap();\nfunction asSource(source) {\n if (!Array.isArray(source))\n return source;\n let known = SourceCache.get(source);\n if (!known)\n SourceCache.set(source, known = completeFromList(source));\n return known;\n}\nconst startCompletionEffect = /*@__PURE__*/StateEffect.define();\nconst closeCompletionEffect = /*@__PURE__*/StateEffect.define();\n\n// A pattern matcher for fuzzy completion matching. Create an instance\n// once for a pattern, and then use that to match any number of\n// completions.\nclass FuzzyMatcher {\n constructor(pattern) {\n this.pattern = pattern;\n this.chars = [];\n this.folded = [];\n // Buffers reused by calls to `match` to track matched character\n // positions.\n this.any = [];\n this.precise = [];\n this.byWord = [];\n this.score = 0;\n this.matched = [];\n for (let p = 0; p < pattern.length;) {\n let char = codePointAt(pattern, p), size = codePointSize(char);\n this.chars.push(char);\n let part = pattern.slice(p, p + size), upper = part.toUpperCase();\n this.folded.push(codePointAt(upper == part ? part.toLowerCase() : upper, 0));\n p += size;\n }\n this.astral = pattern.length != this.chars.length;\n }\n ret(score, matched) {\n this.score = score;\n this.matched = matched;\n return this;\n }\n // Matches a given word (completion) against the pattern (input).\n // Will return a boolean indicating whether there was a match and,\n // on success, set `this.score` to the score, `this.matched` to an\n // array of `from, to` pairs indicating the matched parts of `word`.\n //\n // The score is a number that is more negative the worse the match\n // is. See `Penalty` above.\n match(word) {\n if (this.pattern.length == 0)\n return this.ret(-100 /* Penalty.NotFull */, []);\n if (word.length < this.pattern.length)\n return null;\n let { chars, folded, any, precise, byWord } = this;\n // For single-character queries, only match when they occur right\n // at the start\n if (chars.length == 1) {\n let first = codePointAt(word, 0), firstSize = codePointSize(first);\n let score = firstSize == word.length ? 0 : -100 /* Penalty.NotFull */;\n if (first == chars[0]) ;\n else if (first == folded[0])\n score += -200 /* Penalty.CaseFold */;\n else\n return null;\n return this.ret(score, [0, firstSize]);\n }\n let direct = word.indexOf(this.pattern);\n if (direct == 0)\n return this.ret(word.length == this.pattern.length ? 0 : -100 /* Penalty.NotFull */, [0, this.pattern.length]);\n let len = chars.length, anyTo = 0;\n if (direct < 0) {\n for (let i = 0, e = Math.min(word.length, 200); i < e && anyTo < len;) {\n let next = codePointAt(word, i);\n if (next == chars[anyTo] || next == folded[anyTo])\n any[anyTo++] = i;\n i += codePointSize(next);\n }\n // No match, exit immediately\n if (anyTo < len)\n return null;\n }\n // This tracks the extent of the precise (non-folded, not\n // necessarily adjacent) match\n let preciseTo = 0;\n // Tracks whether there is a match that hits only characters that\n // appear to be starting words. `byWordFolded` is set to true when\n // a case folded character is encountered in such a match\n let byWordTo = 0, byWordFolded = false;\n // If we've found a partial adjacent match, these track its state\n let adjacentTo = 0, adjacentStart = -1, adjacentEnd = -1;\n let hasLower = /[a-z]/.test(word), wordAdjacent = true;\n // Go over the option's text, scanning for the various kinds of matches\n for (let i = 0, e = Math.min(word.length, 200), prevType = 0 /* Tp.NonWord */; i < e && byWordTo < len;) {\n let next = codePointAt(word, i);\n if (direct < 0) {\n if (preciseTo < len && next == chars[preciseTo])\n precise[preciseTo++] = i;\n if (adjacentTo < len) {\n if (next == chars[adjacentTo] || next == folded[adjacentTo]) {\n if (adjacentTo == 0)\n adjacentStart = i;\n adjacentEnd = i + 1;\n adjacentTo++;\n }\n else {\n adjacentTo = 0;\n }\n }\n }\n let ch, type = next < 0xff\n ? (next >= 48 && next <= 57 || next >= 97 && next <= 122 ? 2 /* Tp.Lower */ : next >= 65 && next <= 90 ? 1 /* Tp.Upper */ : 0 /* Tp.NonWord */)\n : ((ch = fromCodePoint(next)) != ch.toLowerCase() ? 1 /* Tp.Upper */ : ch != ch.toUpperCase() ? 2 /* Tp.Lower */ : 0 /* Tp.NonWord */);\n if (!i || type == 1 /* Tp.Upper */ && hasLower || prevType == 0 /* Tp.NonWord */ && type != 0 /* Tp.NonWord */) {\n if (chars[byWordTo] == next || (folded[byWordTo] == next && (byWordFolded = true)))\n byWord[byWordTo++] = i;\n else if (byWord.length)\n wordAdjacent = false;\n }\n prevType = type;\n i += codePointSize(next);\n }\n if (byWordTo == len && byWord[0] == 0 && wordAdjacent)\n return this.result(-100 /* Penalty.ByWord */ + (byWordFolded ? -200 /* Penalty.CaseFold */ : 0), byWord, word);\n if (adjacentTo == len && adjacentStart == 0)\n return this.ret(-200 /* Penalty.CaseFold */ - word.length + (adjacentEnd == word.length ? 0 : -100 /* Penalty.NotFull */), [0, adjacentEnd]);\n if (direct > -1)\n return this.ret(-700 /* Penalty.NotStart */ - word.length, [direct, direct + this.pattern.length]);\n if (adjacentTo == len)\n return this.ret(-200 /* Penalty.CaseFold */ + -700 /* Penalty.NotStart */ - word.length, [adjacentStart, adjacentEnd]);\n if (byWordTo == len)\n return this.result(-100 /* Penalty.ByWord */ + (byWordFolded ? -200 /* Penalty.CaseFold */ : 0) + -700 /* Penalty.NotStart */ +\n (wordAdjacent ? 0 : -1100 /* Penalty.Gap */), byWord, word);\n return chars.length == 2 ? null\n : this.result((any[0] ? -700 /* Penalty.NotStart */ : 0) + -200 /* Penalty.CaseFold */ + -1100 /* Penalty.Gap */, any, word);\n }\n result(score, positions, word) {\n let result = [], i = 0;\n for (let pos of positions) {\n let to = pos + (this.astral ? codePointSize(codePointAt(word, pos)) : 1);\n if (i && result[i - 1] == pos)\n result[i - 1] = to;\n else {\n result[i++] = pos;\n result[i++] = to;\n }\n }\n return this.ret(score - word.length, result);\n }\n}\nclass StrictMatcher {\n constructor(pattern) {\n this.pattern = pattern;\n this.matched = [];\n this.score = 0;\n this.folded = pattern.toLowerCase();\n }\n match(word) {\n if (word.length < this.pattern.length)\n return null;\n let start = word.slice(0, this.pattern.length);\n let match = start == this.pattern ? 0 : start.toLowerCase() == this.folded ? -200 /* Penalty.CaseFold */ : null;\n if (match == null)\n return null;\n this.matched = [0, start.length];\n this.score = match + (word.length == this.pattern.length ? 0 : -100 /* Penalty.NotFull */);\n return this;\n }\n}\n\nconst completionConfig = /*@__PURE__*/Facet.define({\n combine(configs) {\n return combineConfig(configs, {\n activateOnTyping: true,\n activateOnCompletion: () => false,\n activateOnTypingDelay: 100,\n selectOnOpen: true,\n override: null,\n closeOnBlur: true,\n maxRenderedOptions: 100,\n defaultKeymap: true,\n tooltipClass: () => \"\",\n optionClass: () => \"\",\n aboveCursor: false,\n icons: true,\n addToOptions: [],\n positionInfo: defaultPositionInfo,\n filterStrict: false,\n compareCompletions: (a, b) => a.label.localeCompare(b.label),\n interactionDelay: 75,\n updateSyncTime: 100\n }, {\n defaultKeymap: (a, b) => a && b,\n closeOnBlur: (a, b) => a && b,\n icons: (a, b) => a && b,\n tooltipClass: (a, b) => c => joinClass(a(c), b(c)),\n optionClass: (a, b) => c => joinClass(a(c), b(c)),\n addToOptions: (a, b) => a.concat(b),\n filterStrict: (a, b) => a || b,\n });\n }\n});\nfunction joinClass(a, b) {\n return a ? b ? a + \" \" + b : a : b;\n}\nfunction defaultPositionInfo(view, list, option, info, space, tooltip) {\n let rtl = view.textDirection == Direction.RTL, left = rtl, narrow = false;\n let side = \"top\", offset, maxWidth;\n let spaceLeft = list.left - space.left, spaceRight = space.right - list.right;\n let infoWidth = info.right - info.left, infoHeight = info.bottom - info.top;\n if (left && spaceLeft < Math.min(infoWidth, spaceRight))\n left = false;\n else if (!left && spaceRight < Math.min(infoWidth, spaceLeft))\n left = true;\n if (infoWidth <= (left ? spaceLeft : spaceRight)) {\n offset = Math.max(space.top, Math.min(option.top, space.bottom - infoHeight)) - list.top;\n maxWidth = Math.min(400 /* Info.Width */, left ? spaceLeft : spaceRight);\n }\n else {\n narrow = true;\n maxWidth = Math.min(400 /* Info.Width */, (rtl ? list.right : space.right - list.left) - 30 /* Info.Margin */);\n let spaceBelow = space.bottom - list.bottom;\n if (spaceBelow >= infoHeight || spaceBelow > list.top) { // Below the completion\n offset = option.bottom - list.top;\n }\n else { // Above it\n side = \"bottom\";\n offset = list.bottom - option.top;\n }\n }\n let scaleY = (list.bottom - list.top) / tooltip.offsetHeight;\n let scaleX = (list.right - list.left) / tooltip.offsetWidth;\n return {\n style: `${side}: ${offset / scaleY}px; max-width: ${maxWidth / scaleX}px`,\n class: \"cm-completionInfo-\" + (narrow ? (rtl ? \"left-narrow\" : \"right-narrow\") : left ? \"left\" : \"right\")\n };\n}\n\nfunction optionContent(config) {\n let content = config.addToOptions.slice();\n if (config.icons)\n content.push({\n render(completion) {\n let icon = document.createElement(\"div\");\n icon.classList.add(\"cm-completionIcon\");\n if (completion.type)\n icon.classList.add(...completion.type.split(/\\s+/g).map(cls => \"cm-completionIcon-\" + cls));\n icon.setAttribute(\"aria-hidden\", \"true\");\n return icon;\n },\n position: 20\n });\n content.push({\n render(completion, _s, _v, match) {\n let labelElt = document.createElement(\"span\");\n labelElt.className = \"cm-completionLabel\";\n let label = completion.displayLabel || completion.label, off = 0;\n for (let j = 0; j < match.length;) {\n let from = match[j++], to = match[j++];\n if (from > off)\n labelElt.appendChild(document.createTextNode(label.slice(off, from)));\n let span = labelElt.appendChild(document.createElement(\"span\"));\n span.appendChild(document.createTextNode(label.slice(from, to)));\n span.className = \"cm-completionMatchedText\";\n off = to;\n }\n if (off < label.length)\n labelElt.appendChild(document.createTextNode(label.slice(off)));\n return labelElt;\n },\n position: 50\n }, {\n render(completion) {\n if (!completion.detail)\n return null;\n let detailElt = document.createElement(\"span\");\n detailElt.className = \"cm-completionDetail\";\n detailElt.textContent = completion.detail;\n return detailElt;\n },\n position: 80\n });\n return content.sort((a, b) => a.position - b.position).map(a => a.render);\n}\nfunction rangeAroundSelected(total, selected, max) {\n if (total <= max)\n return { from: 0, to: total };\n if (selected < 0)\n selected = 0;\n if (selected <= (total >> 1)) {\n let off = Math.floor(selected / max);\n return { from: off * max, to: (off + 1) * max };\n }\n let off = Math.floor((total - selected) / max);\n return { from: total - (off + 1) * max, to: total - off * max };\n}\nclass CompletionTooltip {\n constructor(view, stateField, applyCompletion) {\n this.view = view;\n this.stateField = stateField;\n this.applyCompletion = applyCompletion;\n this.info = null;\n this.infoDestroy = null;\n this.placeInfoReq = {\n read: () => this.measureInfo(),\n write: (pos) => this.placeInfo(pos),\n key: this\n };\n this.space = null;\n this.currentClass = \"\";\n let cState = view.state.field(stateField);\n let { options, selected } = cState.open;\n let config = view.state.facet(completionConfig);\n this.optionContent = optionContent(config);\n this.optionClass = config.optionClass;\n this.tooltipClass = config.tooltipClass;\n this.range = rangeAroundSelected(options.length, selected, config.maxRenderedOptions);\n this.dom = document.createElement(\"div\");\n this.dom.className = \"cm-tooltip-autocomplete\";\n this.updateTooltipClass(view.state);\n this.dom.addEventListener(\"mousedown\", (e) => {\n let { options } = view.state.field(stateField).open;\n for (let dom = e.target, match; dom && dom != this.dom; dom = dom.parentNode) {\n if (dom.nodeName == \"LI\" && (match = /-(\\d+)$/.exec(dom.id)) && +match[1] < options.length) {\n this.applyCompletion(view, options[+match[1]]);\n e.preventDefault();\n return;\n }\n }\n });\n this.dom.addEventListener(\"focusout\", (e) => {\n let state = view.state.field(this.stateField, false);\n if (state && state.tooltip && view.state.facet(completionConfig).closeOnBlur &&\n e.relatedTarget != view.contentDOM)\n view.dispatch({ effects: closeCompletionEffect.of(null) });\n });\n this.showOptions(options, cState.id);\n }\n mount() { this.updateSel(); }\n showOptions(options, id) {\n if (this.list)\n this.list.remove();\n this.list = this.dom.appendChild(this.createListBox(options, id, this.range));\n this.list.addEventListener(\"scroll\", () => {\n if (this.info)\n this.view.requestMeasure(this.placeInfoReq);\n });\n }\n update(update) {\n var _a;\n let cState = update.state.field(this.stateField);\n let prevState = update.startState.field(this.stateField);\n this.updateTooltipClass(update.state);\n if (cState != prevState) {\n let { options, selected, disabled } = cState.open;\n if (!prevState.open || prevState.open.options != options) {\n this.range = rangeAroundSelected(options.length, selected, update.state.facet(completionConfig).maxRenderedOptions);\n this.showOptions(options, cState.id);\n }\n this.updateSel();\n if (disabled != ((_a = prevState.open) === null || _a === void 0 ? void 0 : _a.disabled))\n this.dom.classList.toggle(\"cm-tooltip-autocomplete-disabled\", !!disabled);\n }\n }\n updateTooltipClass(state) {\n let cls = this.tooltipClass(state);\n if (cls != this.currentClass) {\n for (let c of this.currentClass.split(\" \"))\n if (c)\n this.dom.classList.remove(c);\n for (let c of cls.split(\" \"))\n if (c)\n this.dom.classList.add(c);\n this.currentClass = cls;\n }\n }\n positioned(space) {\n this.space = space;\n if (this.info)\n this.view.requestMeasure(this.placeInfoReq);\n }\n updateSel() {\n let cState = this.view.state.field(this.stateField), open = cState.open;\n if (open.selected > -1 && open.selected < this.range.from || open.selected >= this.range.to) {\n this.range = rangeAroundSelected(open.options.length, open.selected, this.view.state.facet(completionConfig).maxRenderedOptions);\n this.showOptions(open.options, cState.id);\n }\n if (this.updateSelectedOption(open.selected)) {\n this.destroyInfo();\n let { completion } = open.options[open.selected];\n let { info } = completion;\n if (!info)\n return;\n let infoResult = typeof info === \"string\" ? document.createTextNode(info) : info(completion);\n if (!infoResult)\n return;\n if (\"then\" in infoResult) {\n infoResult.then(obj => {\n if (obj && this.view.state.field(this.stateField, false) == cState)\n this.addInfoPane(obj, completion);\n }).catch(e => logException(this.view.state, e, \"completion info\"));\n }\n else {\n this.addInfoPane(infoResult, completion);\n }\n }\n }\n addInfoPane(content, completion) {\n this.destroyInfo();\n let wrap = this.info = document.createElement(\"div\");\n wrap.className = \"cm-tooltip cm-completionInfo\";\n if (content.nodeType != null) {\n wrap.appendChild(content);\n this.infoDestroy = null;\n }\n else {\n let { dom, destroy } = content;\n wrap.appendChild(dom);\n this.infoDestroy = destroy || null;\n }\n this.dom.appendChild(wrap);\n this.view.requestMeasure(this.placeInfoReq);\n }\n updateSelectedOption(selected) {\n let set = null;\n for (let opt = this.list.firstChild, i = this.range.from; opt; opt = opt.nextSibling, i++) {\n if (opt.nodeName != \"LI\" || !opt.id) {\n i--; // A section header\n }\n else if (i == selected) {\n if (!opt.hasAttribute(\"aria-selected\")) {\n opt.setAttribute(\"aria-selected\", \"true\");\n set = opt;\n }\n }\n else {\n if (opt.hasAttribute(\"aria-selected\"))\n opt.removeAttribute(\"aria-selected\");\n }\n }\n if (set)\n scrollIntoView(this.list, set);\n return set;\n }\n measureInfo() {\n let sel = this.dom.querySelector(\"[aria-selected]\");\n if (!sel || !this.info)\n return null;\n let listRect = this.dom.getBoundingClientRect();\n let infoRect = this.info.getBoundingClientRect();\n let selRect = sel.getBoundingClientRect();\n let space = this.space;\n if (!space) {\n let win = this.dom.ownerDocument.defaultView || window;\n space = { left: 0, top: 0, right: win.innerWidth, bottom: win.innerHeight };\n }\n if (selRect.top > Math.min(space.bottom, listRect.bottom) - 10 ||\n selRect.bottom < Math.max(space.top, listRect.top) + 10)\n return null;\n return this.view.state.facet(completionConfig).positionInfo(this.view, listRect, selRect, infoRect, space, this.dom);\n }\n placeInfo(pos) {\n if (this.info) {\n if (pos) {\n if (pos.style)\n this.info.style.cssText = pos.style;\n this.info.className = \"cm-tooltip cm-completionInfo \" + (pos.class || \"\");\n }\n else {\n this.info.style.cssText = \"top: -1e6px\";\n }\n }\n }\n createListBox(options, id, range) {\n const ul = document.createElement(\"ul\");\n ul.id = id;\n ul.setAttribute(\"role\", \"listbox\");\n ul.setAttribute(\"aria-expanded\", \"true\");\n ul.setAttribute(\"aria-label\", this.view.state.phrase(\"Completions\"));\n let curSection = null;\n for (let i = range.from; i < range.to; i++) {\n let { completion, match } = options[i], { section } = completion;\n if (section) {\n let name = typeof section == \"string\" ? section : section.name;\n if (name != curSection && (i > range.from || range.from == 0)) {\n curSection = name;\n if (typeof section != \"string\" && section.header) {\n ul.appendChild(section.header(section));\n }\n else {\n let header = ul.appendChild(document.createElement(\"completion-section\"));\n header.textContent = name;\n }\n }\n }\n const li = ul.appendChild(document.createElement(\"li\"));\n li.id = id + \"-\" + i;\n li.setAttribute(\"role\", \"option\");\n let cls = this.optionClass(completion);\n if (cls)\n li.className = cls;\n for (let source of this.optionContent) {\n let node = source(completion, this.view.state, this.view, match);\n if (node)\n li.appendChild(node);\n }\n }\n if (range.from)\n ul.classList.add(\"cm-completionListIncompleteTop\");\n if (range.to < options.length)\n ul.classList.add(\"cm-completionListIncompleteBottom\");\n return ul;\n }\n destroyInfo() {\n if (this.info) {\n if (this.infoDestroy)\n this.infoDestroy();\n this.info.remove();\n this.info = null;\n }\n }\n destroy() {\n this.destroyInfo();\n }\n}\nfunction completionTooltip(stateField, applyCompletion) {\n return (view) => new CompletionTooltip(view, stateField, applyCompletion);\n}\nfunction scrollIntoView(container, element) {\n let parent = container.getBoundingClientRect();\n let self = element.getBoundingClientRect();\n let scaleY = parent.height / container.offsetHeight;\n if (self.top < parent.top)\n container.scrollTop -= (parent.top - self.top) / scaleY;\n else if (self.bottom > parent.bottom)\n container.scrollTop += (self.bottom - parent.bottom) / scaleY;\n}\n\n// Used to pick a preferred option when two options with the same\n// label occur in the result.\nfunction score(option) {\n return (option.boost || 0) * 100 + (option.apply ? 10 : 0) + (option.info ? 5 : 0) +\n (option.type ? 1 : 0);\n}\nfunction sortOptions(active, state) {\n let options = [];\n let sections = null;\n let addOption = (option) => {\n options.push(option);\n let { section } = option.completion;\n if (section) {\n if (!sections)\n sections = [];\n let name = typeof section == \"string\" ? section : section.name;\n if (!sections.some(s => s.name == name))\n sections.push(typeof section == \"string\" ? { name } : section);\n }\n };\n let conf = state.facet(completionConfig);\n for (let a of active)\n if (a.hasResult()) {\n let getMatch = a.result.getMatch;\n if (a.result.filter === false) {\n for (let option of a.result.options) {\n addOption(new Option(option, a.source, getMatch ? getMatch(option) : [], 1e9 - options.length));\n }\n }\n else {\n let pattern = state.sliceDoc(a.from, a.to), match;\n let matcher = conf.filterStrict ? new StrictMatcher(pattern) : new FuzzyMatcher(pattern);\n for (let option of a.result.options)\n if (match = matcher.match(option.label)) {\n let matched = !option.displayLabel ? match.matched : getMatch ? getMatch(option, match.matched) : [];\n addOption(new Option(option, a.source, matched, match.score + (option.boost || 0)));\n }\n }\n }\n if (sections) {\n let sectionOrder = Object.create(null), pos = 0;\n let cmp = (a, b) => { var _a, _b; return ((_a = a.rank) !== null && _a !== void 0 ? _a : 1e9) - ((_b = b.rank) !== null && _b !== void 0 ? _b : 1e9) || (a.name < b.name ? -1 : 1); };\n for (let s of sections.sort(cmp)) {\n pos -= 1e5;\n sectionOrder[s.name] = pos;\n }\n for (let option of options) {\n let { section } = option.completion;\n if (section)\n option.score += sectionOrder[typeof section == \"string\" ? section : section.name];\n }\n }\n let result = [], prev = null;\n let compare = conf.compareCompletions;\n for (let opt of options.sort((a, b) => (b.score - a.score) || compare(a.completion, b.completion))) {\n let cur = opt.completion;\n if (!prev || prev.label != cur.label || prev.detail != cur.detail ||\n (prev.type != null && cur.type != null && prev.type != cur.type) ||\n prev.apply != cur.apply || prev.boost != cur.boost)\n result.push(opt);\n else if (score(opt.completion) > score(prev))\n result[result.length - 1] = opt;\n prev = opt.completion;\n }\n return result;\n}\nclass CompletionDialog {\n constructor(options, attrs, tooltip, timestamp, selected, disabled) {\n this.options = options;\n this.attrs = attrs;\n this.tooltip = tooltip;\n this.timestamp = timestamp;\n this.selected = selected;\n this.disabled = disabled;\n }\n setSelected(selected, id) {\n return selected == this.selected || selected >= this.options.length ? this\n : new CompletionDialog(this.options, makeAttrs(id, selected), this.tooltip, this.timestamp, selected, this.disabled);\n }\n static build(active, state, id, prev, conf) {\n let options = sortOptions(active, state);\n if (!options.length) {\n return prev && active.some(a => a.state == 1 /* State.Pending */) ?\n new CompletionDialog(prev.options, prev.attrs, prev.tooltip, prev.timestamp, prev.selected, true) : null;\n }\n let selected = state.facet(completionConfig).selectOnOpen ? 0 : -1;\n if (prev && prev.selected != selected && prev.selected != -1) {\n let selectedValue = prev.options[prev.selected].completion;\n for (let i = 0; i < options.length; i++)\n if (options[i].completion == selectedValue) {\n selected = i;\n break;\n }\n }\n return new CompletionDialog(options, makeAttrs(id, selected), {\n pos: active.reduce((a, b) => b.hasResult() ? Math.min(a, b.from) : a, 1e8),\n create: createTooltip,\n above: conf.aboveCursor,\n }, prev ? prev.timestamp : Date.now(), selected, false);\n }\n map(changes) {\n return new CompletionDialog(this.options, this.attrs, Object.assign(Object.assign({}, this.tooltip), { pos: changes.mapPos(this.tooltip.pos) }), this.timestamp, this.selected, this.disabled);\n }\n}\nclass CompletionState {\n constructor(active, id, open) {\n this.active = active;\n this.id = id;\n this.open = open;\n }\n static start() {\n return new CompletionState(none, \"cm-ac-\" + Math.floor(Math.random() * 2e6).toString(36), null);\n }\n update(tr) {\n let { state } = tr, conf = state.facet(completionConfig);\n let sources = conf.override ||\n state.languageDataAt(\"autocomplete\", cur(state)).map(asSource);\n let active = sources.map(source => {\n let value = this.active.find(s => s.source == source) ||\n new ActiveSource(source, this.active.some(a => a.state != 0 /* State.Inactive */) ? 1 /* State.Pending */ : 0 /* State.Inactive */);\n return value.update(tr, conf);\n });\n if (active.length == this.active.length && active.every((a, i) => a == this.active[i]))\n active = this.active;\n let open = this.open;\n if (open && tr.docChanged)\n open = open.map(tr.changes);\n if (tr.selection || active.some(a => a.hasResult() && tr.changes.touchesRange(a.from, a.to)) ||\n !sameResults(active, this.active))\n open = CompletionDialog.build(active, state, this.id, open, conf);\n else if (open && open.disabled && !active.some(a => a.state == 1 /* State.Pending */))\n open = null;\n if (!open && active.every(a => a.state != 1 /* State.Pending */) && active.some(a => a.hasResult()))\n active = active.map(a => a.hasResult() ? new ActiveSource(a.source, 0 /* State.Inactive */) : a);\n for (let effect of tr.effects)\n if (effect.is(setSelectedEffect))\n open = open && open.setSelected(effect.value, this.id);\n return active == this.active && open == this.open ? this : new CompletionState(active, this.id, open);\n }\n get tooltip() { return this.open ? this.open.tooltip : null; }\n get attrs() { return this.open ? this.open.attrs : this.active.length ? baseAttrs : noAttrs; }\n}\nfunction sameResults(a, b) {\n if (a == b)\n return true;\n for (let iA = 0, iB = 0;;) {\n while (iA < a.length && !a[iA].hasResult)\n iA++;\n while (iB < b.length && !b[iB].hasResult)\n iB++;\n let endA = iA == a.length, endB = iB == b.length;\n if (endA || endB)\n return endA == endB;\n if (a[iA++].result != b[iB++].result)\n return false;\n }\n}\nconst baseAttrs = {\n \"aria-autocomplete\": \"list\"\n};\nconst noAttrs = {};\nfunction makeAttrs(id, selected) {\n let result = {\n \"aria-autocomplete\": \"list\",\n \"aria-haspopup\": \"listbox\",\n \"aria-controls\": id\n };\n if (selected > -1)\n result[\"aria-activedescendant\"] = id + \"-\" + selected;\n return result;\n}\nconst none = [];\nfunction getUpdateType(tr, conf) {\n if (tr.isUserEvent(\"input.complete\")) {\n let completion = tr.annotation(pickedCompletion);\n if (completion && conf.activateOnCompletion(completion))\n return 4 /* UpdateType.Activate */ | 8 /* UpdateType.Reset */;\n }\n let typing = tr.isUserEvent(\"input.type\");\n return typing && conf.activateOnTyping ? 4 /* UpdateType.Activate */ | 1 /* UpdateType.Typing */\n : typing ? 1 /* UpdateType.Typing */\n : tr.isUserEvent(\"delete.backward\") ? 2 /* UpdateType.Backspacing */\n : tr.selection ? 8 /* UpdateType.Reset */\n : tr.docChanged ? 16 /* UpdateType.ResetIfTouching */ : 0 /* UpdateType.None */;\n}\nclass ActiveSource {\n constructor(source, state, explicitPos = -1) {\n this.source = source;\n this.state = state;\n this.explicitPos = explicitPos;\n }\n hasResult() { return false; }\n update(tr, conf) {\n let type = getUpdateType(tr, conf), value = this;\n if ((type & 8 /* UpdateType.Reset */) || (type & 16 /* UpdateType.ResetIfTouching */) && this.touches(tr))\n value = new ActiveSource(value.source, 0 /* State.Inactive */);\n if ((type & 4 /* UpdateType.Activate */) && value.state == 0 /* State.Inactive */)\n value = new ActiveSource(this.source, 1 /* State.Pending */);\n value = value.updateFor(tr, type);\n for (let effect of tr.effects) {\n if (effect.is(startCompletionEffect))\n value = new ActiveSource(value.source, 1 /* State.Pending */, effect.value ? cur(tr.state) : -1);\n else if (effect.is(closeCompletionEffect))\n value = new ActiveSource(value.source, 0 /* State.Inactive */);\n else if (effect.is(setActiveEffect))\n for (let active of effect.value)\n if (active.source == value.source)\n value = active;\n }\n return value;\n }\n updateFor(tr, type) { return this.map(tr.changes); }\n map(changes) {\n return changes.empty || this.explicitPos < 0 ? this : new ActiveSource(this.source, this.state, changes.mapPos(this.explicitPos));\n }\n touches(tr) {\n return tr.changes.touchesRange(cur(tr.state));\n }\n}\nclass ActiveResult extends ActiveSource {\n constructor(source, explicitPos, result, from, to) {\n super(source, 2 /* State.Result */, explicitPos);\n this.result = result;\n this.from = from;\n this.to = to;\n }\n hasResult() { return true; }\n updateFor(tr, type) {\n var _a;\n if (!(type & 3 /* UpdateType.SimpleInteraction */))\n return this.map(tr.changes);\n let result = this.result;\n if (result.map && !tr.changes.empty)\n result = result.map(result, tr.changes);\n let from = tr.changes.mapPos(this.from), to = tr.changes.mapPos(this.to, 1);\n let pos = cur(tr.state);\n if ((this.explicitPos < 0 ? pos <= from : pos < this.from) ||\n pos > to || !result ||\n (type & 2 /* UpdateType.Backspacing */) && cur(tr.startState) == this.from)\n return new ActiveSource(this.source, type & 4 /* UpdateType.Activate */ ? 1 /* State.Pending */ : 0 /* State.Inactive */);\n let explicitPos = this.explicitPos < 0 ? -1 : tr.changes.mapPos(this.explicitPos);\n if (checkValid(result.validFor, tr.state, from, to))\n return new ActiveResult(this.source, explicitPos, result, from, to);\n if (result.update &&\n (result = result.update(result, from, to, new CompletionContext(tr.state, pos, explicitPos >= 0))))\n return new ActiveResult(this.source, explicitPos, result, result.from, (_a = result.to) !== null && _a !== void 0 ? _a : cur(tr.state));\n return new ActiveSource(this.source, 1 /* State.Pending */, explicitPos);\n }\n map(mapping) {\n if (mapping.empty)\n return this;\n let result = this.result.map ? this.result.map(this.result, mapping) : this.result;\n if (!result)\n return new ActiveSource(this.source, 0 /* State.Inactive */);\n return new ActiveResult(this.source, this.explicitPos < 0 ? -1 : mapping.mapPos(this.explicitPos), this.result, mapping.mapPos(this.from), mapping.mapPos(this.to, 1));\n }\n touches(tr) {\n return tr.changes.touchesRange(this.from, this.to);\n }\n}\nfunction checkValid(validFor, state, from, to) {\n if (!validFor)\n return false;\n let text = state.sliceDoc(from, to);\n return typeof validFor == \"function\" ? validFor(text, from, to, state) : ensureAnchor(validFor, true).test(text);\n}\nconst setActiveEffect = /*@__PURE__*/StateEffect.define({\n map(sources, mapping) { return sources.map(s => s.map(mapping)); }\n});\nconst setSelectedEffect = /*@__PURE__*/StateEffect.define();\nconst completionState = /*@__PURE__*/StateField.define({\n create() { return CompletionState.start(); },\n update(value, tr) { return value.update(tr); },\n provide: f => [\n showTooltip.from(f, val => val.tooltip),\n EditorView.contentAttributes.from(f, state => state.attrs)\n ]\n});\nfunction applyCompletion(view, option) {\n const apply = option.completion.apply || option.completion.label;\n let result = view.state.field(completionState).active.find(a => a.source == option.source);\n if (!(result instanceof ActiveResult))\n return false;\n if (typeof apply == \"string\")\n view.dispatch(Object.assign(Object.assign({}, insertCompletionText(view.state, apply, result.from, result.to)), { annotations: pickedCompletion.of(option.completion) }));\n else\n apply(view, option.completion, result.from, result.to);\n return true;\n}\nconst createTooltip = /*@__PURE__*/completionTooltip(completionState, applyCompletion);\n\n/**\nReturns a command that moves the completion selection forward or\nbackward by the given amount.\n*/\nfunction moveCompletionSelection(forward, by = \"option\") {\n return (view) => {\n let cState = view.state.field(completionState, false);\n if (!cState || !cState.open || cState.open.disabled ||\n Date.now() - cState.open.timestamp < view.state.facet(completionConfig).interactionDelay)\n return false;\n let step = 1, tooltip;\n if (by == \"page\" && (tooltip = getTooltip(view, cState.open.tooltip)))\n step = Math.max(2, Math.floor(tooltip.dom.offsetHeight /\n tooltip.dom.querySelector(\"li\").offsetHeight) - 1);\n let { length } = cState.open.options;\n let selected = cState.open.selected > -1 ? cState.open.selected + step * (forward ? 1 : -1) : forward ? 0 : length - 1;\n if (selected < 0)\n selected = by == \"page\" ? 0 : length - 1;\n else if (selected >= length)\n selected = by == \"page\" ? length - 1 : 0;\n view.dispatch({ effects: setSelectedEffect.of(selected) });\n return true;\n };\n}\n/**\nAccept the current completion.\n*/\nconst acceptCompletion = (view) => {\n let cState = view.state.field(completionState, false);\n if (view.state.readOnly || !cState || !cState.open || cState.open.selected < 0 || cState.open.disabled ||\n Date.now() - cState.open.timestamp < view.state.facet(completionConfig).interactionDelay)\n return false;\n return applyCompletion(view, cState.open.options[cState.open.selected]);\n};\n/**\nExplicitly start autocompletion.\n*/\nconst startCompletion = (view) => {\n let cState = view.state.field(completionState, false);\n if (!cState)\n return false;\n view.dispatch({ effects: startCompletionEffect.of(true) });\n return true;\n};\n/**\nClose the currently active completion.\n*/\nconst closeCompletion = (view) => {\n let cState = view.state.field(completionState, false);\n if (!cState || !cState.active.some(a => a.state != 0 /* State.Inactive */))\n return false;\n view.dispatch({ effects: closeCompletionEffect.of(null) });\n return true;\n};\nclass RunningQuery {\n constructor(active, context) {\n this.active = active;\n this.context = context;\n this.time = Date.now();\n this.updates = [];\n // Note that 'undefined' means 'not done yet', whereas 'null' means\n // 'query returned null'.\n this.done = undefined;\n }\n}\nconst MaxUpdateCount = 50, MinAbortTime = 1000;\nconst completionPlugin = /*@__PURE__*/ViewPlugin.fromClass(class {\n constructor(view) {\n this.view = view;\n this.debounceUpdate = -1;\n this.running = [];\n this.debounceAccept = -1;\n this.pendingStart = false;\n this.composing = 0 /* CompositionState.None */;\n for (let active of view.state.field(completionState).active)\n if (active.state == 1 /* State.Pending */)\n this.startQuery(active);\n }\n update(update) {\n let cState = update.state.field(completionState);\n let conf = update.state.facet(completionConfig);\n if (!update.selectionSet && !update.docChanged && update.startState.field(completionState) == cState)\n return;\n let doesReset = update.transactions.some(tr => {\n let type = getUpdateType(tr, conf);\n return (type & 8 /* UpdateType.Reset */) || (tr.selection || tr.docChanged) && !(type & 3 /* UpdateType.SimpleInteraction */);\n });\n for (let i = 0; i < this.running.length; i++) {\n let query = this.running[i];\n if (doesReset ||\n query.updates.length + update.transactions.length > MaxUpdateCount && Date.now() - query.time > MinAbortTime) {\n for (let handler of query.context.abortListeners) {\n try {\n handler();\n }\n catch (e) {\n logException(this.view.state, e);\n }\n }\n query.context.abortListeners = null;\n this.running.splice(i--, 1);\n }\n else {\n query.updates.push(...update.transactions);\n }\n }\n if (this.debounceUpdate > -1)\n clearTimeout(this.debounceUpdate);\n if (update.transactions.some(tr => tr.effects.some(e => e.is(startCompletionEffect))))\n this.pendingStart = true;\n let delay = this.pendingStart ? 50 : conf.activateOnTypingDelay;\n this.debounceUpdate = cState.active.some(a => a.state == 1 /* State.Pending */ && !this.running.some(q => q.active.source == a.source))\n ? setTimeout(() => this.startUpdate(), delay) : -1;\n if (this.composing != 0 /* CompositionState.None */)\n for (let tr of update.transactions) {\n if (tr.isUserEvent(\"input.type\"))\n this.composing = 2 /* CompositionState.Changed */;\n else if (this.composing == 2 /* CompositionState.Changed */ && tr.selection)\n this.composing = 3 /* CompositionState.ChangedAndMoved */;\n }\n }\n startUpdate() {\n this.debounceUpdate = -1;\n this.pendingStart = false;\n let { state } = this.view, cState = state.field(completionState);\n for (let active of cState.active) {\n if (active.state == 1 /* State.Pending */ && !this.running.some(r => r.active.source == active.source))\n this.startQuery(active);\n }\n }\n startQuery(active) {\n let { state } = this.view, pos = cur(state);\n let context = new CompletionContext(state, pos, active.explicitPos == pos, this.view);\n let pending = new RunningQuery(active, context);\n this.running.push(pending);\n Promise.resolve(active.source(context)).then(result => {\n if (!pending.context.aborted) {\n pending.done = result || null;\n this.scheduleAccept();\n }\n }, err => {\n this.view.dispatch({ effects: closeCompletionEffect.of(null) });\n logException(this.view.state, err);\n });\n }\n scheduleAccept() {\n if (this.running.every(q => q.done !== undefined))\n this.accept();\n else if (this.debounceAccept < 0)\n this.debounceAccept = setTimeout(() => this.accept(), this.view.state.facet(completionConfig).updateSyncTime);\n }\n // For each finished query in this.running, try to create a result\n // or, if appropriate, restart the query.\n accept() {\n var _a;\n if (this.debounceAccept > -1)\n clearTimeout(this.debounceAccept);\n this.debounceAccept = -1;\n let updated = [];\n let conf = this.view.state.facet(completionConfig);\n for (let i = 0; i < this.running.length; i++) {\n let query = this.running[i];\n if (query.done === undefined)\n continue;\n this.running.splice(i--, 1);\n if (query.done) {\n let active = new ActiveResult(query.active.source, query.active.explicitPos, query.done, query.done.from, (_a = query.done.to) !== null && _a !== void 0 ? _a : cur(query.updates.length ? query.updates[0].startState : this.view.state));\n // Replay the transactions that happened since the start of\n // the request and see if that preserves the result\n for (let tr of query.updates)\n active = active.update(tr, conf);\n if (active.hasResult()) {\n updated.push(active);\n continue;\n }\n }\n let current = this.view.state.field(completionState).active.find(a => a.source == query.active.source);\n if (current && current.state == 1 /* State.Pending */) {\n if (query.done == null) {\n // Explicitly failed. Should clear the pending status if it\n // hasn't been re-set in the meantime.\n let active = new ActiveSource(query.active.source, 0 /* State.Inactive */);\n for (let tr of query.updates)\n active = active.update(tr, conf);\n if (active.state != 1 /* State.Pending */)\n updated.push(active);\n }\n else {\n // Cleared by subsequent transactions. Restart.\n this.startQuery(current);\n }\n }\n }\n if (updated.length)\n this.view.dispatch({ effects: setActiveEffect.of(updated) });\n }\n}, {\n eventHandlers: {\n blur(event) {\n let state = this.view.state.field(completionState, false);\n if (state && state.tooltip && this.view.state.facet(completionConfig).closeOnBlur) {\n let dialog = state.open && getTooltip(this.view, state.open.tooltip);\n if (!dialog || !dialog.dom.contains(event.relatedTarget))\n setTimeout(() => this.view.dispatch({ effects: closeCompletionEffect.of(null) }), 10);\n }\n },\n compositionstart() {\n this.composing = 1 /* CompositionState.Started */;\n },\n compositionend() {\n if (this.composing == 3 /* CompositionState.ChangedAndMoved */) {\n // Safari fires compositionend events synchronously, possibly\n // from inside an update, so dispatch asynchronously to avoid reentrancy\n setTimeout(() => this.view.dispatch({ effects: startCompletionEffect.of(false) }), 20);\n }\n this.composing = 0 /* CompositionState.None */;\n }\n }\n});\nconst windows = typeof navigator == \"object\" && /*@__PURE__*//Win/.test(navigator.platform);\nconst commitCharacters = /*@__PURE__*/Prec.highest(/*@__PURE__*/EditorView.domEventHandlers({\n keydown(event, view) {\n let field = view.state.field(completionState, false);\n if (!field || !field.open || field.open.disabled || field.open.selected < 0 ||\n event.key.length > 1 || event.ctrlKey && !(windows && event.altKey) || event.metaKey)\n return false;\n let option = field.open.options[field.open.selected];\n let result = field.active.find(a => a.source == option.source);\n let commitChars = option.completion.commitCharacters || result.result.commitCharacters;\n if (commitChars && commitChars.indexOf(event.key) > -1)\n applyCompletion(view, option);\n return false;\n }\n}));\n\nconst baseTheme = /*@__PURE__*/EditorView.baseTheme({\n \".cm-tooltip.cm-tooltip-autocomplete\": {\n \"& > ul\": {\n fontFamily: \"monospace\",\n whiteSpace: \"nowrap\",\n overflow: \"hidden auto\",\n maxWidth_fallback: \"700px\",\n maxWidth: \"min(700px, 95vw)\",\n minWidth: \"250px\",\n maxHeight: \"10em\",\n height: \"100%\",\n listStyle: \"none\",\n margin: 0,\n padding: 0,\n \"& > li, & > completion-section\": {\n padding: \"1px 3px\",\n lineHeight: 1.2\n },\n \"& > li\": {\n overflowX: \"hidden\",\n textOverflow: \"ellipsis\",\n cursor: \"pointer\"\n },\n \"& > completion-section\": {\n display: \"list-item\",\n borderBottom: \"1px solid silver\",\n paddingLeft: \"0.5em\",\n opacity: 0.7\n }\n }\n },\n \"&light .cm-tooltip-autocomplete ul li[aria-selected]\": {\n background: \"#17c\",\n color: \"white\",\n },\n \"&light .cm-tooltip-autocomplete-disabled ul li[aria-selected]\": {\n background: \"#777\",\n },\n \"&dark .cm-tooltip-autocomplete ul li[aria-selected]\": {\n background: \"#347\",\n color: \"white\",\n },\n \"&dark .cm-tooltip-autocomplete-disabled ul li[aria-selected]\": {\n background: \"#444\",\n },\n \".cm-completionListIncompleteTop:before, .cm-completionListIncompleteBottom:after\": {\n content: '\"···\"',\n opacity: 0.5,\n display: \"block\",\n textAlign: \"center\"\n },\n \".cm-tooltip.cm-completionInfo\": {\n position: \"absolute\",\n padding: \"3px 9px\",\n width: \"max-content\",\n maxWidth: `${400 /* Info.Width */}px`,\n boxSizing: \"border-box\"\n },\n \".cm-completionInfo.cm-completionInfo-left\": { right: \"100%\" },\n \".cm-completionInfo.cm-completionInfo-right\": { left: \"100%\" },\n \".cm-completionInfo.cm-completionInfo-left-narrow\": { right: `${30 /* Info.Margin */}px` },\n \".cm-completionInfo.cm-completionInfo-right-narrow\": { left: `${30 /* Info.Margin */}px` },\n \"&light .cm-snippetField\": { backgroundColor: \"#00000022\" },\n \"&dark .cm-snippetField\": { backgroundColor: \"#ffffff22\" },\n \".cm-snippetFieldPosition\": {\n verticalAlign: \"text-top\",\n width: 0,\n height: \"1.15em\",\n display: \"inline-block\",\n margin: \"0 -0.7px -.7em\",\n borderLeft: \"1.4px dotted #888\"\n },\n \".cm-completionMatchedText\": {\n textDecoration: \"underline\"\n },\n \".cm-completionDetail\": {\n marginLeft: \"0.5em\",\n fontStyle: \"italic\"\n },\n \".cm-completionIcon\": {\n fontSize: \"90%\",\n width: \".8em\",\n display: \"inline-block\",\n textAlign: \"center\",\n paddingRight: \".6em\",\n opacity: \"0.6\",\n boxSizing: \"content-box\"\n },\n \".cm-completionIcon-function, .cm-completionIcon-method\": {\n \"&:after\": { content: \"'ƒ'\" }\n },\n \".cm-completionIcon-class\": {\n \"&:after\": { content: \"'○'\" }\n },\n \".cm-completionIcon-interface\": {\n \"&:after\": { content: \"'◌'\" }\n },\n \".cm-completionIcon-variable\": {\n \"&:after\": { content: \"'𝑥'\" }\n },\n \".cm-completionIcon-constant\": {\n \"&:after\": { content: \"'𝐶'\" }\n },\n \".cm-completionIcon-type\": {\n \"&:after\": { content: \"'𝑡'\" }\n },\n \".cm-completionIcon-enum\": {\n \"&:after\": { content: \"'∪'\" }\n },\n \".cm-completionIcon-property\": {\n \"&:after\": { content: \"'□'\" }\n },\n \".cm-completionIcon-keyword\": {\n \"&:after\": { content: \"'🔑\\uFE0E'\" } // Disable emoji rendering\n },\n \".cm-completionIcon-namespace\": {\n \"&:after\": { content: \"'▢'\" }\n },\n \".cm-completionIcon-text\": {\n \"&:after\": { content: \"'abc'\", fontSize: \"50%\", verticalAlign: \"middle\" }\n }\n});\n\nclass FieldPos {\n constructor(field, line, from, to) {\n this.field = field;\n this.line = line;\n this.from = from;\n this.to = to;\n }\n}\nclass FieldRange {\n constructor(field, from, to) {\n this.field = field;\n this.from = from;\n this.to = to;\n }\n map(changes) {\n let from = changes.mapPos(this.from, -1, MapMode.TrackDel);\n let to = changes.mapPos(this.to, 1, MapMode.TrackDel);\n return from == null || to == null ? null : new FieldRange(this.field, from, to);\n }\n}\nclass Snippet {\n constructor(lines, fieldPositions) {\n this.lines = lines;\n this.fieldPositions = fieldPositions;\n }\n instantiate(state, pos) {\n let text = [], lineStart = [pos];\n let lineObj = state.doc.lineAt(pos), baseIndent = /^\\s*/.exec(lineObj.text)[0];\n for (let line of this.lines) {\n if (text.length) {\n let indent = baseIndent, tabs = /^\\t*/.exec(line)[0].length;\n for (let i = 0; i < tabs; i++)\n indent += state.facet(indentUnit);\n lineStart.push(pos + indent.length - tabs);\n line = indent + line.slice(tabs);\n }\n text.push(line);\n pos += line.length + 1;\n }\n let ranges = this.fieldPositions.map(pos => new FieldRange(pos.field, lineStart[pos.line] + pos.from, lineStart[pos.line] + pos.to));\n return { text, ranges };\n }\n static parse(template) {\n let fields = [];\n let lines = [], positions = [], m;\n for (let line of template.split(/\\r\\n?|\\n/)) {\n while (m = /[#$]\\{(?:(\\d+)(?::([^}]*))?|((?:\\\\[{}]|[^}])*))\\}/.exec(line)) {\n let seq = m[1] ? +m[1] : null, rawName = m[2] || m[3] || \"\", found = -1;\n let name = rawName.replace(/\\\\[{}]/g, m => m[1]);\n for (let i = 0; i < fields.length; i++) {\n if (seq != null ? fields[i].seq == seq : name ? fields[i].name == name : false)\n found = i;\n }\n if (found < 0) {\n let i = 0;\n while (i < fields.length && (seq == null || (fields[i].seq != null && fields[i].seq < seq)))\n i++;\n fields.splice(i, 0, { seq, name });\n found = i;\n for (let pos of positions)\n if (pos.field >= found)\n pos.field++;\n }\n positions.push(new FieldPos(found, lines.length, m.index, m.index + name.length));\n line = line.slice(0, m.index) + rawName + line.slice(m.index + m[0].length);\n }\n line = line.replace(/\\\\([{}])/g, (_, brace, index) => {\n for (let pos of positions)\n if (pos.line == lines.length && pos.from > index) {\n pos.from--;\n pos.to--;\n }\n return brace;\n });\n lines.push(line);\n }\n return new Snippet(lines, positions);\n }\n}\nlet fieldMarker = /*@__PURE__*/Decoration.widget({ widget: /*@__PURE__*/new class extends WidgetType {\n toDOM() {\n let span = document.createElement(\"span\");\n span.className = \"cm-snippetFieldPosition\";\n return span;\n }\n ignoreEvent() { return false; }\n } });\nlet fieldRange = /*@__PURE__*/Decoration.mark({ class: \"cm-snippetField\" });\nclass ActiveSnippet {\n constructor(ranges, active) {\n this.ranges = ranges;\n this.active = active;\n this.deco = Decoration.set(ranges.map(r => (r.from == r.to ? fieldMarker : fieldRange).range(r.from, r.to)));\n }\n map(changes) {\n let ranges = [];\n for (let r of this.ranges) {\n let mapped = r.map(changes);\n if (!mapped)\n return null;\n ranges.push(mapped);\n }\n return new ActiveSnippet(ranges, this.active);\n }\n selectionInsideField(sel) {\n return sel.ranges.every(range => this.ranges.some(r => r.field == this.active && r.from <= range.from && r.to >= range.to));\n }\n}\nconst setActive = /*@__PURE__*/StateEffect.define({\n map(value, changes) { return value && value.map(changes); }\n});\nconst moveToField = /*@__PURE__*/StateEffect.define();\nconst snippetState = /*@__PURE__*/StateField.define({\n create() { return null; },\n update(value, tr) {\n for (let effect of tr.effects) {\n if (effect.is(setActive))\n return effect.value;\n if (effect.is(moveToField) && value)\n return new ActiveSnippet(value.ranges, effect.value);\n }\n if (value && tr.docChanged)\n value = value.map(tr.changes);\n if (value && tr.selection && !value.selectionInsideField(tr.selection))\n value = null;\n return value;\n },\n provide: f => EditorView.decorations.from(f, val => val ? val.deco : Decoration.none)\n});\nfunction fieldSelection(ranges, field) {\n return EditorSelection.create(ranges.filter(r => r.field == field).map(r => EditorSelection.range(r.from, r.to)));\n}\n/**\nConvert a snippet template to a function that can\n[apply](https://codemirror.net/6/docs/ref/#autocomplete.Completion.apply) it. Snippets are written\nusing syntax like this:\n\n \"for (let ${index} = 0; ${index} < ${end}; ${index}++) {\\n\\t${}\\n}\"\n\nEach `${}` placeholder (you may also use `#{}`) indicates a field\nthat the user can fill in. Its name, if any, will be the default\ncontent for the field.\n\nWhen the snippet is activated by calling the returned function,\nthe code is inserted at the given position. Newlines in the\ntemplate are indented by the indentation of the start line, plus\none [indent unit](https://codemirror.net/6/docs/ref/#language.indentUnit) per tab character after\nthe newline.\n\nOn activation, (all instances of) the first field are selected.\nThe user can move between fields with Tab and Shift-Tab as long as\nthe fields are active. Moving to the last field or moving the\ncursor out of the current field deactivates the fields.\n\nThe order of fields defaults to textual order, but you can add\nnumbers to placeholders (`${1}` or `${1:defaultText}`) to provide\na custom order.\n\nTo include a literal `{` or `}` in your template, put a backslash\nin front of it. This will be removed and the brace will not be\ninterpreted as indicating a placeholder.\n*/\nfunction snippet(template) {\n let snippet = Snippet.parse(template);\n return (editor, completion, from, to) => {\n let { text, ranges } = snippet.instantiate(editor.state, from);\n let spec = {\n changes: { from, to, insert: Text.of(text) },\n scrollIntoView: true,\n annotations: completion ? [pickedCompletion.of(completion), Transaction.userEvent.of(\"input.complete\")] : undefined\n };\n if (ranges.length)\n spec.selection = fieldSelection(ranges, 0);\n if (ranges.some(r => r.field > 0)) {\n let active = new ActiveSnippet(ranges, 0);\n let effects = spec.effects = [setActive.of(active)];\n if (editor.state.field(snippetState, false) === undefined)\n effects.push(StateEffect.appendConfig.of([snippetState, addSnippetKeymap, snippetPointerHandler, baseTheme]));\n }\n editor.dispatch(editor.state.update(spec));\n };\n}\nfunction moveField(dir) {\n return ({ state, dispatch }) => {\n let active = state.field(snippetState, false);\n if (!active || dir < 0 && active.active == 0)\n return false;\n let next = active.active + dir, last = dir > 0 && !active.ranges.some(r => r.field == next + dir);\n dispatch(state.update({\n selection: fieldSelection(active.ranges, next),\n effects: setActive.of(last ? null : new ActiveSnippet(active.ranges, next)),\n scrollIntoView: true\n }));\n return true;\n };\n}\n/**\nA command that clears the active snippet, if any.\n*/\nconst clearSnippet = ({ state, dispatch }) => {\n let active = state.field(snippetState, false);\n if (!active)\n return false;\n dispatch(state.update({ effects: setActive.of(null) }));\n return true;\n};\n/**\nMove to the next snippet field, if available.\n*/\nconst nextSnippetField = /*@__PURE__*/moveField(1);\n/**\nMove to the previous snippet field, if available.\n*/\nconst prevSnippetField = /*@__PURE__*/moveField(-1);\n/**\nCheck if there is an active snippet with a next field for\n`nextSnippetField` to move to.\n*/\nfunction hasNextSnippetField(state) {\n let active = state.field(snippetState, false);\n return !!(active && active.ranges.some(r => r.field == active.active + 1));\n}\n/**\nReturns true if there is an active snippet and a previous field\nfor `prevSnippetField` to move to.\n*/\nfunction hasPrevSnippetField(state) {\n let active = state.field(snippetState, false);\n return !!(active && active.active > 0);\n}\nconst defaultSnippetKeymap = [\n { key: \"Tab\", run: nextSnippetField, shift: prevSnippetField },\n { key: \"Escape\", run: clearSnippet }\n];\n/**\nA facet that can be used to configure the key bindings used by\nsnippets. The default binds Tab to\n[`nextSnippetField`](https://codemirror.net/6/docs/ref/#autocomplete.nextSnippetField), Shift-Tab to\n[`prevSnippetField`](https://codemirror.net/6/docs/ref/#autocomplete.prevSnippetField), and Escape\nto [`clearSnippet`](https://codemirror.net/6/docs/ref/#autocomplete.clearSnippet).\n*/\nconst snippetKeymap = /*@__PURE__*/Facet.define({\n combine(maps) { return maps.length ? maps[0] : defaultSnippetKeymap; }\n});\nconst addSnippetKeymap = /*@__PURE__*/Prec.highest(/*@__PURE__*/keymap.compute([snippetKeymap], state => state.facet(snippetKeymap)));\n/**\nCreate a completion from a snippet. Returns an object with the\nproperties from `completion`, plus an `apply` function that\napplies the snippet.\n*/\nfunction snippetCompletion(template, completion) {\n return Object.assign(Object.assign({}, completion), { apply: snippet(template) });\n}\nconst snippetPointerHandler = /*@__PURE__*/EditorView.domEventHandlers({\n mousedown(event, view) {\n let active = view.state.field(snippetState, false), pos;\n if (!active || (pos = view.posAtCoords({ x: event.clientX, y: event.clientY })) == null)\n return false;\n let match = active.ranges.find(r => r.from <= pos && r.to >= pos);\n if (!match || match.field == active.active)\n return false;\n view.dispatch({\n selection: fieldSelection(active.ranges, match.field),\n effects: setActive.of(active.ranges.some(r => r.field > match.field)\n ? new ActiveSnippet(active.ranges, match.field) : null),\n scrollIntoView: true\n });\n return true;\n }\n});\n\nfunction wordRE(wordChars) {\n let escaped = wordChars.replace(/[\\]\\-\\\\]/g, \"\\\\$&\");\n try {\n return new RegExp(`[\\\\p{Alphabetic}\\\\p{Number}_${escaped}]+`, \"ug\");\n }\n catch (_a) {\n return new RegExp(`[\\w${escaped}]`, \"g\");\n }\n}\nfunction mapRE(re, f) {\n return new RegExp(f(re.source), re.unicode ? \"u\" : \"\");\n}\nconst wordCaches = /*@__PURE__*/Object.create(null);\nfunction wordCache(wordChars) {\n return wordCaches[wordChars] || (wordCaches[wordChars] = new WeakMap);\n}\nfunction storeWords(doc, wordRE, result, seen, ignoreAt) {\n for (let lines = doc.iterLines(), pos = 0; !lines.next().done;) {\n let { value } = lines, m;\n wordRE.lastIndex = 0;\n while (m = wordRE.exec(value)) {\n if (!seen[m[0]] && pos + m.index != ignoreAt) {\n result.push({ type: \"text\", label: m[0] });\n seen[m[0]] = true;\n if (result.length >= 2000 /* C.MaxList */)\n return;\n }\n }\n pos += value.length + 1;\n }\n}\nfunction collectWords(doc, cache, wordRE, to, ignoreAt) {\n let big = doc.length >= 1000 /* C.MinCacheLen */;\n let cached = big && cache.get(doc);\n if (cached)\n return cached;\n let result = [], seen = Object.create(null);\n if (doc.children) {\n let pos = 0;\n for (let ch of doc.children) {\n if (ch.length >= 1000 /* C.MinCacheLen */) {\n for (let c of collectWords(ch, cache, wordRE, to - pos, ignoreAt - pos)) {\n if (!seen[c.label]) {\n seen[c.label] = true;\n result.push(c);\n }\n }\n }\n else {\n storeWords(ch, wordRE, result, seen, ignoreAt - pos);\n }\n pos += ch.length + 1;\n }\n }\n else {\n storeWords(doc, wordRE, result, seen, ignoreAt);\n }\n if (big && result.length < 2000 /* C.MaxList */)\n cache.set(doc, result);\n return result;\n}\n/**\nA completion source that will scan the document for words (using a\n[character categorizer](https://codemirror.net/6/docs/ref/#state.EditorState.charCategorizer)), and\nreturn those as completions.\n*/\nconst completeAnyWord = context => {\n let wordChars = context.state.languageDataAt(\"wordChars\", context.pos).join(\"\");\n let re = wordRE(wordChars);\n let token = context.matchBefore(mapRE(re, s => s + \"$\"));\n if (!token && !context.explicit)\n return null;\n let from = token ? token.from : context.pos;\n let options = collectWords(context.state.doc, wordCache(wordChars), re, 50000 /* C.Range */, from);\n return { from, options, validFor: mapRE(re, s => \"^\" + s) };\n};\n\nconst defaults = {\n brackets: [\"(\", \"[\", \"{\", \"'\", '\"'],\n before: \")]}:;>\",\n stringPrefixes: []\n};\nconst closeBracketEffect = /*@__PURE__*/StateEffect.define({\n map(value, mapping) {\n let mapped = mapping.mapPos(value, -1, MapMode.TrackAfter);\n return mapped == null ? undefined : mapped;\n }\n});\nconst closedBracket = /*@__PURE__*/new class extends RangeValue {\n};\nclosedBracket.startSide = 1;\nclosedBracket.endSide = -1;\nconst bracketState = /*@__PURE__*/StateField.define({\n create() { return RangeSet.empty; },\n update(value, tr) {\n value = value.map(tr.changes);\n if (tr.selection) {\n let line = tr.state.doc.lineAt(tr.selection.main.head);\n value = value.update({ filter: from => from >= line.from && from <= line.to });\n }\n for (let effect of tr.effects)\n if (effect.is(closeBracketEffect))\n value = value.update({ add: [closedBracket.range(effect.value, effect.value + 1)] });\n return value;\n }\n});\n/**\nExtension to enable bracket-closing behavior. When a closeable\nbracket is typed, its closing bracket is immediately inserted\nafter the cursor. When closing a bracket directly in front of a\nclosing bracket inserted by the extension, the cursor moves over\nthat bracket.\n*/\nfunction closeBrackets() {\n return [inputHandler, bracketState];\n}\nconst definedClosing = \"()[]{}<>\";\nfunction closing(ch) {\n for (let i = 0; i < definedClosing.length; i += 2)\n if (definedClosing.charCodeAt(i) == ch)\n return definedClosing.charAt(i + 1);\n return fromCodePoint(ch < 128 ? ch : ch + 1);\n}\nfunction config(state, pos) {\n return state.languageDataAt(\"closeBrackets\", pos)[0] || defaults;\n}\nconst android = typeof navigator == \"object\" && /*@__PURE__*//Android\\b/.test(navigator.userAgent);\nconst inputHandler = /*@__PURE__*/EditorView.inputHandler.of((view, from, to, insert) => {\n if ((android ? view.composing : view.compositionStarted) || view.state.readOnly)\n return false;\n let sel = view.state.selection.main;\n if (insert.length > 2 || insert.length == 2 && codePointSize(codePointAt(insert, 0)) == 1 ||\n from != sel.from || to != sel.to)\n return false;\n let tr = insertBracket(view.state, insert);\n if (!tr)\n return false;\n view.dispatch(tr);\n return true;\n});\n/**\nCommand that implements deleting a pair of matching brackets when\nthe cursor is between them.\n*/\nconst deleteBracketPair = ({ state, dispatch }) => {\n if (state.readOnly)\n return false;\n let conf = config(state, state.selection.main.head);\n let tokens = conf.brackets || defaults.brackets;\n let dont = null, changes = state.changeByRange(range => {\n if (range.empty) {\n let before = prevChar(state.doc, range.head);\n for (let token of tokens) {\n if (token == before && nextChar(state.doc, range.head) == closing(codePointAt(token, 0)))\n return { changes: { from: range.head - token.length, to: range.head + token.length },\n range: EditorSelection.cursor(range.head - token.length) };\n }\n }\n return { range: dont = range };\n });\n if (!dont)\n dispatch(state.update(changes, { scrollIntoView: true, userEvent: \"delete.backward\" }));\n return !dont;\n};\n/**\nClose-brackets related key bindings. Binds Backspace to\n[`deleteBracketPair`](https://codemirror.net/6/docs/ref/#autocomplete.deleteBracketPair).\n*/\nconst closeBracketsKeymap = [\n { key: \"Backspace\", run: deleteBracketPair }\n];\n/**\nImplements the extension's behavior on text insertion. If the\ngiven string counts as a bracket in the language around the\nselection, and replacing the selection with it requires custom\nbehavior (inserting a closing version or skipping past a\npreviously-closed bracket), this function returns a transaction\nrepresenting that custom behavior. (You only need this if you want\nto programmatically insert brackets—the\n[`closeBrackets`](https://codemirror.net/6/docs/ref/#autocomplete.closeBrackets) extension will\ntake care of running this for user input.)\n*/\nfunction insertBracket(state, bracket) {\n let conf = config(state, state.selection.main.head);\n let tokens = conf.brackets || defaults.brackets;\n for (let tok of tokens) {\n let closed = closing(codePointAt(tok, 0));\n if (bracket == tok)\n return closed == tok ? handleSame(state, tok, tokens.indexOf(tok + tok + tok) > -1, conf)\n : handleOpen(state, tok, closed, conf.before || defaults.before);\n if (bracket == closed && closedBracketAt(state, state.selection.main.from))\n return handleClose(state, tok, closed);\n }\n return null;\n}\nfunction closedBracketAt(state, pos) {\n let found = false;\n state.field(bracketState).between(0, state.doc.length, from => {\n if (from == pos)\n found = true;\n });\n return found;\n}\nfunction nextChar(doc, pos) {\n let next = doc.sliceString(pos, pos + 2);\n return next.slice(0, codePointSize(codePointAt(next, 0)));\n}\nfunction prevChar(doc, pos) {\n let prev = doc.sliceString(pos - 2, pos);\n return codePointSize(codePointAt(prev, 0)) == prev.length ? prev : prev.slice(1);\n}\nfunction handleOpen(state, open, close, closeBefore) {\n let dont = null, changes = state.changeByRange(range => {\n if (!range.empty)\n return { changes: [{ insert: open, from: range.from }, { insert: close, from: range.to }],\n effects: closeBracketEffect.of(range.to + open.length),\n range: EditorSelection.range(range.anchor + open.length, range.head + open.length) };\n let next = nextChar(state.doc, range.head);\n if (!next || /\\s/.test(next) || closeBefore.indexOf(next) > -1)\n return { changes: { insert: open + close, from: range.head },\n effects: closeBracketEffect.of(range.head + open.length),\n range: EditorSelection.cursor(range.head + open.length) };\n return { range: dont = range };\n });\n return dont ? null : state.update(changes, {\n scrollIntoView: true,\n userEvent: \"input.type\"\n });\n}\nfunction handleClose(state, _open, close) {\n let dont = null, changes = state.changeByRange(range => {\n if (range.empty && nextChar(state.doc, range.head) == close)\n return { changes: { from: range.head, to: range.head + close.length, insert: close },\n range: EditorSelection.cursor(range.head + close.length) };\n return dont = { range };\n });\n return dont ? null : state.update(changes, {\n scrollIntoView: true,\n userEvent: \"input.type\"\n });\n}\n// Handles cases where the open and close token are the same, and\n// possibly triple quotes (as in `\"\"\"abc\"\"\"`-style quoting).\nfunction handleSame(state, token, allowTriple, config) {\n let stringPrefixes = config.stringPrefixes || defaults.stringPrefixes;\n let dont = null, changes = state.changeByRange(range => {\n if (!range.empty)\n return { changes: [{ insert: token, from: range.from }, { insert: token, from: range.to }],\n effects: closeBracketEffect.of(range.to + token.length),\n range: EditorSelection.range(range.anchor + token.length, range.head + token.length) };\n let pos = range.head, next = nextChar(state.doc, pos), start;\n if (next == token) {\n if (nodeStart(state, pos)) {\n return { changes: { insert: token + token, from: pos },\n effects: closeBracketEffect.of(pos + token.length),\n range: EditorSelection.cursor(pos + token.length) };\n }\n else if (closedBracketAt(state, pos)) {\n let isTriple = allowTriple && state.sliceDoc(pos, pos + token.length * 3) == token + token + token;\n let content = isTriple ? token + token + token : token;\n return { changes: { from: pos, to: pos + content.length, insert: content },\n range: EditorSelection.cursor(pos + content.length) };\n }\n }\n else if (allowTriple && state.sliceDoc(pos - 2 * token.length, pos) == token + token &&\n (start = canStartStringAt(state, pos - 2 * token.length, stringPrefixes)) > -1 &&\n nodeStart(state, start)) {\n return { changes: { insert: token + token + token + token, from: pos },\n effects: closeBracketEffect.of(pos + token.length),\n range: EditorSelection.cursor(pos + token.length) };\n }\n else if (state.charCategorizer(pos)(next) != CharCategory.Word) {\n if (canStartStringAt(state, pos, stringPrefixes) > -1 && !probablyInString(state, pos, token, stringPrefixes))\n return { changes: { insert: token + token, from: pos },\n effects: closeBracketEffect.of(pos + token.length),\n range: EditorSelection.cursor(pos + token.length) };\n }\n return { range: dont = range };\n });\n return dont ? null : state.update(changes, {\n scrollIntoView: true,\n userEvent: \"input.type\"\n });\n}\nfunction nodeStart(state, pos) {\n let tree = syntaxTree(state).resolveInner(pos + 1);\n return tree.parent && tree.from == pos;\n}\nfunction probablyInString(state, pos, quoteToken, prefixes) {\n let node = syntaxTree(state).resolveInner(pos, -1);\n let maxPrefix = prefixes.reduce((m, p) => Math.max(m, p.length), 0);\n for (let i = 0; i < 5; i++) {\n let start = state.sliceDoc(node.from, Math.min(node.to, node.from + quoteToken.length + maxPrefix));\n let quotePos = start.indexOf(quoteToken);\n if (!quotePos || quotePos > -1 && prefixes.indexOf(start.slice(0, quotePos)) > -1) {\n let first = node.firstChild;\n while (first && first.from == node.from && first.to - first.from > quoteToken.length + quotePos) {\n if (state.sliceDoc(first.to - quoteToken.length, first.to) == quoteToken)\n return false;\n first = first.firstChild;\n }\n return true;\n }\n let parent = node.to == pos && node.parent;\n if (!parent)\n break;\n node = parent;\n }\n return false;\n}\nfunction canStartStringAt(state, pos, prefixes) {\n let charCat = state.charCategorizer(pos);\n if (charCat(state.sliceDoc(pos - 1, pos)) != CharCategory.Word)\n return pos;\n for (let prefix of prefixes) {\n let start = pos - prefix.length;\n if (state.sliceDoc(start, pos) == prefix && charCat(state.sliceDoc(start - 1, start)) != CharCategory.Word)\n return start;\n }\n return -1;\n}\n\n/**\nReturns an extension that enables autocompletion.\n*/\nfunction autocompletion(config = {}) {\n return [\n commitCharacters,\n completionState,\n completionConfig.of(config),\n completionPlugin,\n completionKeymapExt,\n baseTheme\n ];\n}\n/**\nBasic keybindings for autocompletion.\n\n - Ctrl-Space: [`startCompletion`](https://codemirror.net/6/docs/ref/#autocomplete.startCompletion)\n - Escape: [`closeCompletion`](https://codemirror.net/6/docs/ref/#autocomplete.closeCompletion)\n - ArrowDown: [`moveCompletionSelection`](https://codemirror.net/6/docs/ref/#autocomplete.moveCompletionSelection)`(true)`\n - ArrowUp: [`moveCompletionSelection`](https://codemirror.net/6/docs/ref/#autocomplete.moveCompletionSelection)`(false)`\n - PageDown: [`moveCompletionSelection`](https://codemirror.net/6/docs/ref/#autocomplete.moveCompletionSelection)`(true, \"page\")`\n - PageDown: [`moveCompletionSelection`](https://codemirror.net/6/docs/ref/#autocomplete.moveCompletionSelection)`(true, \"page\")`\n - Enter: [`acceptCompletion`](https://codemirror.net/6/docs/ref/#autocomplete.acceptCompletion)\n*/\nconst completionKeymap = [\n { key: \"Ctrl-Space\", run: startCompletion },\n { key: \"Escape\", run: closeCompletion },\n { key: \"ArrowDown\", run: /*@__PURE__*/moveCompletionSelection(true) },\n { key: \"ArrowUp\", run: /*@__PURE__*/moveCompletionSelection(false) },\n { key: \"PageDown\", run: /*@__PURE__*/moveCompletionSelection(true, \"page\") },\n { key: \"PageUp\", run: /*@__PURE__*/moveCompletionSelection(false, \"page\") },\n { key: \"Enter\", run: acceptCompletion }\n];\nconst completionKeymapExt = /*@__PURE__*/Prec.highest(/*@__PURE__*/keymap.computeN([completionConfig], state => state.facet(completionConfig).defaultKeymap ? [completionKeymap] : []));\n/**\nGet the current completion status. When completions are available,\nthis will return `\"active\"`. When completions are pending (in the\nprocess of being queried), this returns `\"pending\"`. Otherwise, it\nreturns `null`.\n*/\nfunction completionStatus(state) {\n let cState = state.field(completionState, false);\n return cState && cState.active.some(a => a.state == 1 /* State.Pending */) ? \"pending\"\n : cState && cState.active.some(a => a.state != 0 /* State.Inactive */) ? \"active\" : null;\n}\nconst completionArrayCache = /*@__PURE__*/new WeakMap;\n/**\nReturns the available completions as an array.\n*/\nfunction currentCompletions(state) {\n var _a;\n let open = (_a = state.field(completionState, false)) === null || _a === void 0 ? void 0 : _a.open;\n if (!open || open.disabled)\n return [];\n let completions = completionArrayCache.get(open.options);\n if (!completions)\n completionArrayCache.set(open.options, completions = open.options.map(o => o.completion));\n return completions;\n}\n/**\nReturn the currently selected completion, if any.\n*/\nfunction selectedCompletion(state) {\n var _a;\n let open = (_a = state.field(completionState, false)) === null || _a === void 0 ? void 0 : _a.open;\n return open && !open.disabled && open.selected >= 0 ? open.options[open.selected].completion : null;\n}\n/**\nReturns the currently selected position in the active completion\nlist, or null if no completions are active.\n*/\nfunction selectedCompletionIndex(state) {\n var _a;\n let open = (_a = state.field(completionState, false)) === null || _a === void 0 ? void 0 : _a.open;\n return open && !open.disabled && open.selected >= 0 ? open.selected : null;\n}\n/**\nCreate an effect that can be attached to a transaction to change\nthe currently selected completion.\n*/\nfunction setSelectedCompletion(index) {\n return setSelectedEffect.of(index);\n}\n\nexport { CompletionContext, acceptCompletion, autocompletion, clearSnippet, closeBrackets, closeBracketsKeymap, closeCompletion, completeAnyWord, completeFromList, completionKeymap, completionStatus, currentCompletions, deleteBracketPair, hasNextSnippetField, hasPrevSnippetField, ifIn, ifNotIn, insertBracket, insertCompletionText, moveCompletionSelection, nextSnippetField, pickedCompletion, prevSnippetField, selectedCompletion, selectedCompletionIndex, setSelectedCompletion, snippet, snippetCompletion, snippetKeymap, startCompletion };\n","function Context(indented, column, type, info, align, prev) {\n this.indented = indented;\n this.column = column;\n this.type = type;\n this.info = info;\n this.align = align;\n this.prev = prev;\n}\nfunction pushContext(state, col, type, info) {\n var indent = state.indented;\n if (state.context && state.context.type == \"statement\" && type != \"statement\")\n indent = state.context.indented;\n return state.context = new Context(indent, col, type, info, null, state.context);\n}\nfunction popContext(state) {\n var t = state.context.type;\n if (t == \")\" || t == \"]\" || t == \"}\")\n state.indented = state.context.indented;\n return state.context = state.context.prev;\n}\n\nfunction typeBefore(stream, state, pos) {\n if (state.prevToken == \"variable\" || state.prevToken == \"type\") return true;\n if (/\\S(?:[^- ]>|[*\\]])\\s*$|\\*$/.test(stream.string.slice(0, pos))) return true;\n if (state.typeAtEndOfLine && stream.column() == stream.indentation()) return true;\n}\n\nfunction isTopScope(context) {\n for (;;) {\n if (!context || context.type == \"top\") return true;\n if (context.type == \"}\" && context.prev.info != \"namespace\") return false;\n context = context.prev;\n }\n}\n\nexport function clike(parserConfig) {\n var statementIndentUnit = parserConfig.statementIndentUnit,\n dontAlignCalls = parserConfig.dontAlignCalls,\n keywords = parserConfig.keywords || {},\n types = parserConfig.types || {},\n builtin = parserConfig.builtin || {},\n blockKeywords = parserConfig.blockKeywords || {},\n defKeywords = parserConfig.defKeywords || {},\n atoms = parserConfig.atoms || {},\n hooks = parserConfig.hooks || {},\n multiLineStrings = parserConfig.multiLineStrings,\n indentStatements = parserConfig.indentStatements !== false,\n indentSwitch = parserConfig.indentSwitch !== false,\n namespaceSeparator = parserConfig.namespaceSeparator,\n isPunctuationChar = parserConfig.isPunctuationChar || /[\\[\\]{}\\(\\),;\\:\\.]/,\n numberStart = parserConfig.numberStart || /[\\d\\.]/,\n number = parserConfig.number || /^(?:0x[a-f\\d]+|0b[01]+|(?:\\d+\\.?\\d*|\\.\\d+)(?:e[-+]?\\d+)?)(u|ll?|l|f)?/i,\n isOperatorChar = parserConfig.isOperatorChar || /[+\\-*&%=<>!?|\\/]/,\n isIdentifierChar = parserConfig.isIdentifierChar || /[\\w\\$_\\xa1-\\uffff]/,\n // An optional function that takes a {string} token and returns true if it\n // should be treated as a builtin.\n isReservedIdentifier = parserConfig.isReservedIdentifier || false;\n\n var curPunc, isDefKeyword;\n\n function tokenBase(stream, state) {\n var ch = stream.next();\n if (hooks[ch]) {\n var result = hooks[ch](stream, state);\n if (result !== false) return result;\n }\n if (ch == '\"' || ch == \"'\") {\n state.tokenize = tokenString(ch);\n return state.tokenize(stream, state);\n }\n if (numberStart.test(ch)) {\n stream.backUp(1)\n if (stream.match(number)) return \"number\"\n stream.next()\n }\n if (isPunctuationChar.test(ch)) {\n curPunc = ch;\n return null;\n }\n if (ch == \"/\") {\n if (stream.eat(\"*\")) {\n state.tokenize = tokenComment;\n return tokenComment(stream, state);\n }\n if (stream.eat(\"/\")) {\n stream.skipToEnd();\n return \"comment\";\n }\n }\n if (isOperatorChar.test(ch)) {\n while (!stream.match(/^\\/[\\/*]/, false) && stream.eat(isOperatorChar)) {}\n return \"operator\";\n }\n stream.eatWhile(isIdentifierChar);\n if (namespaceSeparator) while (stream.match(namespaceSeparator))\n stream.eatWhile(isIdentifierChar);\n\n var cur = stream.current();\n if (contains(keywords, cur)) {\n if (contains(blockKeywords, cur)) curPunc = \"newstatement\";\n if (contains(defKeywords, cur)) isDefKeyword = true;\n return \"keyword\";\n }\n if (contains(types, cur)) return \"type\";\n if (contains(builtin, cur)\n || (isReservedIdentifier && isReservedIdentifier(cur))) {\n if (contains(blockKeywords, cur)) curPunc = \"newstatement\";\n return \"builtin\";\n }\n if (contains(atoms, cur)) return \"atom\";\n return \"variable\";\n }\n\n function tokenString(quote) {\n return function(stream, state) {\n var escaped = false, next, end = false;\n while ((next = stream.next()) != null) {\n if (next == quote && !escaped) {end = true; break;}\n escaped = !escaped && next == \"\\\\\";\n }\n if (end || !(escaped || multiLineStrings))\n state.tokenize = null;\n return \"string\";\n };\n }\n\n function tokenComment(stream, state) {\n var maybeEnd = false, ch;\n while (ch = stream.next()) {\n if (ch == \"/\" && maybeEnd) {\n state.tokenize = null;\n break;\n }\n maybeEnd = (ch == \"*\");\n }\n return \"comment\";\n }\n\n function maybeEOL(stream, state) {\n if (parserConfig.typeFirstDefinitions && stream.eol() && isTopScope(state.context))\n state.typeAtEndOfLine = typeBefore(stream, state, stream.pos)\n }\n\n // Interface\n\n return {\n name: parserConfig.name,\n startState: function(indentUnit) {\n return {\n tokenize: null,\n context: new Context(-indentUnit, 0, \"top\", null, false),\n indented: 0,\n startOfLine: true,\n prevToken: null\n };\n },\n\n token: function(stream, state) {\n var ctx = state.context;\n if (stream.sol()) {\n if (ctx.align == null) ctx.align = false;\n state.indented = stream.indentation();\n state.startOfLine = true;\n }\n if (stream.eatSpace()) { maybeEOL(stream, state); return null; }\n curPunc = isDefKeyword = null;\n var style = (state.tokenize || tokenBase)(stream, state);\n if (style == \"comment\" || style == \"meta\") return style;\n if (ctx.align == null) ctx.align = true;\n\n if (curPunc == \";\" || curPunc == \":\" || (curPunc == \",\" && stream.match(/^\\s*(?:\\/\\/.*)?$/, false)))\n while (state.context.type == \"statement\") popContext(state);\n else if (curPunc == \"{\") pushContext(state, stream.column(), \"}\");\n else if (curPunc == \"[\") pushContext(state, stream.column(), \"]\");\n else if (curPunc == \"(\") pushContext(state, stream.column(), \")\");\n else if (curPunc == \"}\") {\n while (ctx.type == \"statement\") ctx = popContext(state);\n if (ctx.type == \"}\") ctx = popContext(state);\n while (ctx.type == \"statement\") ctx = popContext(state);\n }\n else if (curPunc == ctx.type) popContext(state);\n else if (indentStatements &&\n (((ctx.type == \"}\" || ctx.type == \"top\") && curPunc != \";\") ||\n (ctx.type == \"statement\" && curPunc == \"newstatement\"))) {\n pushContext(state, stream.column(), \"statement\", stream.current());\n }\n\n if (style == \"variable\" &&\n ((state.prevToken == \"def\" ||\n (parserConfig.typeFirstDefinitions && typeBefore(stream, state, stream.start) &&\n isTopScope(state.context) && stream.match(/^\\s*\\(/, false)))))\n style = \"def\";\n\n if (hooks.token) {\n var result = hooks.token(stream, state, style);\n if (result !== undefined) style = result;\n }\n\n if (style == \"def\" && parserConfig.styleDefs === false) style = \"variable\";\n\n state.startOfLine = false;\n state.prevToken = isDefKeyword ? \"def\" : style || curPunc;\n maybeEOL(stream, state);\n return style;\n },\n\n indent: function(state, textAfter, context) {\n if (state.tokenize != tokenBase && state.tokenize != null || state.typeAtEndOfLine && isTopScope(state.context))\n return null;\n var ctx = state.context, firstChar = textAfter && textAfter.charAt(0);\n var closing = firstChar == ctx.type;\n if (ctx.type == \"statement\" && firstChar == \"}\") ctx = ctx.prev;\n if (parserConfig.dontIndentStatements)\n while (ctx.type == \"statement\" && parserConfig.dontIndentStatements.test(ctx.info))\n ctx = ctx.prev\n if (hooks.indent) {\n var hook = hooks.indent(state, ctx, textAfter, context.unit);\n if (typeof hook == \"number\") return hook\n }\n var switchBlock = ctx.prev && ctx.prev.info == \"switch\";\n if (parserConfig.allmanIndentation && /[{(]/.test(firstChar)) {\n while (ctx.type != \"top\" && ctx.type != \"}\") ctx = ctx.prev\n return ctx.indented\n }\n if (ctx.type == \"statement\")\n return ctx.indented + (firstChar == \"{\" ? 0 : statementIndentUnit || context.unit);\n if (ctx.align && (!dontAlignCalls || ctx.type != \")\"))\n return ctx.column + (closing ? 0 : 1);\n if (ctx.type == \")\" && !closing)\n return ctx.indented + (statementIndentUnit || context.unit);\n\n return ctx.indented + (closing ? 0 : context.unit) +\n (!closing && switchBlock && !/^(?:case|default)\\b/.test(textAfter) ? context.unit : 0);\n },\n\n languageData: {\n indentOnInput: indentSwitch ? /^\\s*(?:case .*?:|default:|\\{\\}?|\\})$/ : /^\\s*[{}]$/,\n commentTokens: {line: \"//\", block: {open: \"/*\", close: \"*/\"}},\n autocomplete: Object.keys(keywords).concat(Object.keys(types)).concat(Object.keys(builtin)).concat(Object.keys(atoms)),\n ...parserConfig.languageData\n }\n };\n};\n\nfunction words(str) {\n var obj = {}, words = str.split(\" \");\n for (var i = 0; i < words.length; ++i) obj[words[i]] = true;\n return obj;\n}\nfunction contains(words, word) {\n if (typeof words === \"function\") {\n return words(word);\n } else {\n return words.propertyIsEnumerable(word);\n }\n}\nvar cKeywords = \"auto if break case register continue return default do sizeof \" +\n \"static else struct switch extern typedef union for goto while enum const \" +\n \"volatile inline restrict asm fortran\";\n\n// Keywords from https://en.cppreference.com/w/cpp/keyword includes C++20.\nvar cppKeywords = \"alignas alignof and and_eq audit axiom bitand bitor catch \" +\n \"class compl concept constexpr const_cast decltype delete dynamic_cast \" +\n \"explicit export final friend import module mutable namespace new noexcept \" +\n \"not not_eq operator or or_eq override private protected public \" +\n \"reinterpret_cast requires static_assert static_cast template this \" +\n \"thread_local throw try typeid typename using virtual xor xor_eq\";\n\nvar objCKeywords = \"bycopy byref in inout oneway out self super atomic nonatomic retain copy \" +\n \"readwrite readonly strong weak assign typeof nullable nonnull null_resettable _cmd \" +\n \"@interface @implementation @end @protocol @encode @property @synthesize @dynamic @class \" +\n \"@public @package @private @protected @required @optional @try @catch @finally @import \" +\n \"@selector @encode @defs @synchronized @autoreleasepool @compatibility_alias @available\";\n\nvar objCBuiltins = \"FOUNDATION_EXPORT FOUNDATION_EXTERN NS_INLINE NS_FORMAT_FUNCTION \" +\n \" NS_RETURNS_RETAINEDNS_ERROR_ENUM NS_RETURNS_NOT_RETAINED NS_RETURNS_INNER_POINTER \" +\n \"NS_DESIGNATED_INITIALIZER NS_ENUM NS_OPTIONS NS_REQUIRES_NIL_TERMINATION \" +\n \"NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_END NS_SWIFT_NAME NS_REFINED_FOR_SWIFT\"\n\n// Do not use this. Use the cTypes function below. This is global just to avoid\n// excessive calls when cTypes is being called multiple times during a parse.\nvar basicCTypes = words(\"int long char short double float unsigned signed \" +\n \"void bool\");\n\n// Do not use this. Use the objCTypes function below. This is global just to avoid\n// excessive calls when objCTypes is being called multiple times during a parse.\nvar basicObjCTypes = words(\"SEL instancetype id Class Protocol BOOL\");\n\n// Returns true if identifier is a \"C\" type.\n// C type is defined as those that are reserved by the compiler (basicTypes),\n// and those that end in _t (Reserved by POSIX for types)\n// http://www.gnu.org/software/libc/manual/html_node/Reserved-Names.html\nfunction cTypes(identifier) {\n return contains(basicCTypes, identifier) || /.+_t$/.test(identifier);\n}\n\n// Returns true if identifier is a \"Objective C\" type.\nfunction objCTypes(identifier) {\n return cTypes(identifier) || contains(basicObjCTypes, identifier);\n}\n\nvar cBlockKeywords = \"case do else for if switch while struct enum union\";\nvar cDefKeywords = \"struct enum union\";\n\nfunction cppHook(stream, state) {\n if (!state.startOfLine) return false\n for (var ch, next = null; ch = stream.peek();) {\n if (ch == \"\\\\\" && stream.match(/^.$/)) {\n next = cppHook\n break\n } else if (ch == \"/\" && stream.match(/^\\/[\\/\\*]/, false)) {\n break\n }\n stream.next()\n }\n state.tokenize = next\n return \"meta\"\n}\n\nfunction pointerHook(_stream, state) {\n if (state.prevToken == \"type\") return \"type\";\n return false;\n}\n\n// For C and C++ (and ObjC): identifiers starting with __\n// or _ followed by a capital letter are reserved for the compiler.\nfunction cIsReservedIdentifier(token) {\n if (!token || token.length < 2) return false;\n if (token[0] != '_') return false;\n return (token[1] == '_') || (token[1] !== token[1].toLowerCase());\n}\n\nfunction cpp14Literal(stream) {\n stream.eatWhile(/[\\w\\.']/);\n return \"number\";\n}\n\nfunction cpp11StringHook(stream, state) {\n stream.backUp(1);\n // Raw strings.\n if (stream.match(/^(?:R|u8R|uR|UR|LR)/)) {\n var match = stream.match(/^\"([^\\s\\\\()]{0,16})\\(/);\n if (!match) {\n return false;\n }\n state.cpp11RawStringDelim = match[1];\n state.tokenize = tokenRawString;\n return tokenRawString(stream, state);\n }\n // Unicode strings/chars.\n if (stream.match(/^(?:u8|u|U|L)/)) {\n if (stream.match(/^[\"']/, /* eat */ false)) {\n return \"string\";\n }\n return false;\n }\n // Ignore this hook.\n stream.next();\n return false;\n}\n\nfunction cppLooksLikeConstructor(word) {\n var lastTwo = /(\\w+)::~?(\\w+)$/.exec(word);\n return lastTwo && lastTwo[1] == lastTwo[2];\n}\n\n// C#-style strings where \"\" escapes a quote.\nfunction tokenAtString(stream, state) {\n var next;\n while ((next = stream.next()) != null) {\n if (next == '\"' && !stream.eat('\"')) {\n state.tokenize = null;\n break;\n }\n }\n return \"string\";\n}\n\n// C++11 raw string literal is <prefix>\"<delim>( anything )<delim>\", where\n// <delim> can be a string up to 16 characters long.\nfunction tokenRawString(stream, state) {\n // Escape characters that have special regex meanings.\n var delim = state.cpp11RawStringDelim.replace(/[^\\w\\s]/g, '\\\\$&');\n var match = stream.match(new RegExp(\".*?\\\\)\" + delim + '\"'));\n if (match)\n state.tokenize = null;\n else\n stream.skipToEnd();\n return \"string\";\n}\n\nexport const c = clike({\n name: \"c\",\n keywords: words(cKeywords),\n types: cTypes,\n blockKeywords: words(cBlockKeywords),\n defKeywords: words(cDefKeywords),\n typeFirstDefinitions: true,\n atoms: words(\"NULL true false\"),\n isReservedIdentifier: cIsReservedIdentifier,\n hooks: {\n \"#\": cppHook,\n \"*\": pointerHook,\n }\n})\n\nexport const cpp = clike({\n name: \"cpp\",\n keywords: words(cKeywords + \" \" + cppKeywords),\n types: cTypes,\n blockKeywords: words(cBlockKeywords + \" class try catch\"),\n defKeywords: words(cDefKeywords + \" class namespace\"),\n typeFirstDefinitions: true,\n atoms: words(\"true false NULL nullptr\"),\n dontIndentStatements: /^template$/,\n isIdentifierChar: /[\\w\\$_~\\xa1-\\uffff]/,\n isReservedIdentifier: cIsReservedIdentifier,\n hooks: {\n \"#\": cppHook,\n \"*\": pointerHook,\n \"u\": cpp11StringHook,\n \"U\": cpp11StringHook,\n \"L\": cpp11StringHook,\n \"R\": cpp11StringHook,\n \"0\": cpp14Literal,\n \"1\": cpp14Literal,\n \"2\": cpp14Literal,\n \"3\": cpp14Literal,\n \"4\": cpp14Literal,\n \"5\": cpp14Literal,\n \"6\": cpp14Literal,\n \"7\": cpp14Literal,\n \"8\": cpp14Literal,\n \"9\": cpp14Literal,\n token: function(stream, state, style) {\n if (style == \"variable\" && stream.peek() == \"(\" &&\n (state.prevToken == \";\" || state.prevToken == null ||\n state.prevToken == \"}\") &&\n cppLooksLikeConstructor(stream.current()))\n return \"def\";\n }\n },\n namespaceSeparator: \"::\"\n});\n\nexport const java = clike({\n name: \"java\",\n keywords: words(\"abstract assert break case catch class const continue default \" +\n \"do else enum extends final finally for goto if implements import \" +\n \"instanceof interface native new package private protected public \" +\n \"return static strictfp super switch synchronized this throw throws transient \" +\n \"try volatile while @interface\"),\n types: words(\"var byte short int long float double boolean char void Boolean Byte Character Double Float \" +\n \"Integer Long Number Object Short String StringBuffer StringBuilder Void\"),\n blockKeywords: words(\"catch class do else finally for if switch try while\"),\n defKeywords: words(\"class interface enum @interface\"),\n typeFirstDefinitions: true,\n atoms: words(\"true false null\"),\n number: /^(?:0x[a-f\\d_]+|0b[01_]+|(?:[\\d_]+\\.?\\d*|\\.\\d+)(?:e[-+]?[\\d_]+)?)(u|ll?|l|f)?/i,\n hooks: {\n \"@\": function(stream) {\n // Don't match the @interface keyword.\n if (stream.match('interface', false)) return false;\n\n stream.eatWhile(/[\\w\\$_]/);\n return \"meta\";\n },\n '\"': function(stream, state) {\n if (!stream.match(/\"\"$/)) return false;\n state.tokenize = tokenTripleString;\n return state.tokenize(stream, state);\n }\n }\n})\n\nexport const csharp = clike({\n name: \"csharp\",\n keywords: words(\"abstract as async await base break case catch checked class const continue\" +\n \" default delegate do else enum event explicit extern finally fixed for\" +\n \" foreach goto if implicit in init interface internal is lock namespace new\" +\n \" operator out override params private protected public readonly record ref required return sealed\" +\n \" sizeof stackalloc static struct switch this throw try typeof unchecked\" +\n \" unsafe using virtual void volatile while add alias ascending descending dynamic from get\" +\n \" global group into join let orderby partial remove select set value var yield\"),\n types: words(\"Action Boolean Byte Char DateTime DateTimeOffset Decimal Double Func\" +\n \" Guid Int16 Int32 Int64 Object SByte Single String Task TimeSpan UInt16 UInt32\" +\n \" UInt64 bool byte char decimal double short int long object\" +\n \" sbyte float string ushort uint ulong\"),\n blockKeywords: words(\"catch class do else finally for foreach if struct switch try while\"),\n defKeywords: words(\"class interface namespace record struct var\"),\n typeFirstDefinitions: true,\n atoms: words(\"true false null\"),\n hooks: {\n \"@\": function(stream, state) {\n if (stream.eat('\"')) {\n state.tokenize = tokenAtString;\n return tokenAtString(stream, state);\n }\n stream.eatWhile(/[\\w\\$_]/);\n return \"meta\";\n }\n }\n});\n\nfunction tokenTripleString(stream, state) {\n var escaped = false;\n while (!stream.eol()) {\n if (!escaped && stream.match('\"\"\"')) {\n state.tokenize = null;\n break;\n }\n escaped = stream.next() == \"\\\\\" && !escaped;\n }\n return \"string\";\n}\n\nfunction tokenNestedComment(depth) {\n return function (stream, state) {\n var ch\n while (ch = stream.next()) {\n if (ch == \"*\" && stream.eat(\"/\")) {\n if (depth == 1) {\n state.tokenize = null\n break\n } else {\n state.tokenize = tokenNestedComment(depth - 1)\n return state.tokenize(stream, state)\n }\n } else if (ch == \"/\" && stream.eat(\"*\")) {\n state.tokenize = tokenNestedComment(depth + 1)\n return state.tokenize(stream, state)\n }\n }\n return \"comment\"\n }\n}\n\nexport const scala = clike({\n name: \"scala\",\n keywords: words(\n /* scala */\n \"abstract case catch class def do else extends final finally for forSome if \" +\n \"implicit import lazy match new null object override package private protected return \" +\n \"sealed super this throw trait try type val var while with yield _ \" +\n\n /* package scala */\n \"assert assume require print println printf readLine readBoolean readByte readShort \" +\n \"readChar readInt readLong readFloat readDouble\"\n ),\n types: words(\n \"AnyVal App Application Array BufferedIterator BigDecimal BigInt Char Console Either \" +\n \"Enumeration Equiv Error Exception Fractional Function IndexedSeq Int Integral Iterable \" +\n \"Iterator List Map Numeric Nil NotNull Option Ordered Ordering PartialFunction PartialOrdering \" +\n \"Product Proxy Range Responder Seq Serializable Set Specializable Stream StringBuilder \" +\n \"StringContext Symbol Throwable Traversable TraversableOnce Tuple Unit Vector \" +\n\n /* package java.lang */\n \"Boolean Byte Character CharSequence Class ClassLoader Cloneable Comparable \" +\n \"Compiler Double Exception Float Integer Long Math Number Object Package Pair Process \" +\n \"Runtime Runnable SecurityManager Short StackTraceElement StrictMath String \" +\n \"StringBuffer System Thread ThreadGroup ThreadLocal Throwable Triple Void\"\n ),\n multiLineStrings: true,\n blockKeywords: words(\"catch class enum do else finally for forSome if match switch try while\"),\n defKeywords: words(\"class enum def object package trait type val var\"),\n atoms: words(\"true false null\"),\n indentStatements: false,\n indentSwitch: false,\n isOperatorChar: /[+\\-*&%=<>!?|\\/#:@]/,\n hooks: {\n \"@\": function(stream) {\n stream.eatWhile(/[\\w\\$_]/);\n return \"meta\";\n },\n '\"': function(stream, state) {\n if (!stream.match('\"\"')) return false;\n state.tokenize = tokenTripleString;\n return state.tokenize(stream, state);\n },\n \"'\": function(stream) {\n if (stream.match(/^(\\\\[^'\\s]+|[^\\\\'])'/)) return \"character\"\n stream.eatWhile(/[\\w\\$_\\xa1-\\uffff]/);\n return \"atom\";\n },\n \"=\": function(stream, state) {\n var cx = state.context\n if (cx.type == \"}\" && cx.align && stream.eat(\">\")) {\n state.context = new Context(cx.indented, cx.column, cx.type, cx.info, null, cx.prev)\n return \"operator\"\n } else {\n return false\n }\n },\n\n \"/\": function(stream, state) {\n if (!stream.eat(\"*\")) return false\n state.tokenize = tokenNestedComment(1)\n return state.tokenize(stream, state)\n }\n },\n languageData: {\n closeBrackets: {brackets: [\"(\", \"[\", \"{\", \"'\", '\"', '\"\"\"']}\n }\n});\n\nfunction tokenKotlinString(tripleString){\n return function (stream, state) {\n var escaped = false, next, end = false;\n while (!stream.eol()) {\n if (!tripleString && !escaped && stream.match('\"') ) {end = true; break;}\n if (tripleString && stream.match('\"\"\"')) {end = true; break;}\n next = stream.next();\n if(!escaped && next == \"$\" && stream.match('{'))\n stream.skipTo(\"}\");\n escaped = !escaped && next == \"\\\\\" && !tripleString;\n }\n if (end || !tripleString)\n state.tokenize = null;\n return \"string\";\n }\n}\n\nexport const kotlin = clike({\n name: \"kotlin\",\n keywords: words(\n /*keywords*/\n \"package as typealias class interface this super val operator \" +\n \"var fun for is in This throw return annotation \" +\n \"break continue object if else while do try when !in !is as? \" +\n\n /*soft keywords*/\n \"file import where by get set abstract enum open inner override private public internal \" +\n \"protected catch finally out final vararg reified dynamic companion constructor init \" +\n \"sealed field property receiver param sparam lateinit data inline noinline tailrec \" +\n \"external annotation crossinline const operator infix suspend actual expect setparam\"\n ),\n types: words(\n /* package java.lang */\n \"Boolean Byte Character CharSequence Class ClassLoader Cloneable Comparable \" +\n \"Compiler Double Exception Float Integer Long Math Number Object Package Pair Process \" +\n \"Runtime Runnable SecurityManager Short StackTraceElement StrictMath String \" +\n \"StringBuffer System Thread ThreadGroup ThreadLocal Throwable Triple Void Annotation Any BooleanArray \" +\n \"ByteArray Char CharArray DeprecationLevel DoubleArray Enum FloatArray Function Int IntArray Lazy \" +\n \"LazyThreadSafetyMode LongArray Nothing ShortArray Unit\"\n ),\n intendSwitch: false,\n indentStatements: false,\n multiLineStrings: true,\n number: /^(?:0x[a-f\\d_]+|0b[01_]+|(?:[\\d_]+(\\.\\d+)?|\\.\\d+)(?:e[-+]?[\\d_]+)?)(u|ll?|l|f)?/i,\n blockKeywords: words(\"catch class do else finally for if where try while enum\"),\n defKeywords: words(\"class val var object interface fun\"),\n atoms: words(\"true false null this\"),\n hooks: {\n \"@\": function(stream) {\n stream.eatWhile(/[\\w\\$_]/);\n return \"meta\";\n },\n '*': function(_stream, state) {\n return state.prevToken == '.' ? 'variable' : 'operator';\n },\n '\"': function(stream, state) {\n state.tokenize = tokenKotlinString(stream.match('\"\"'));\n return state.tokenize(stream, state);\n },\n \"/\": function(stream, state) {\n if (!stream.eat(\"*\")) return false;\n state.tokenize = tokenNestedComment(1);\n return state.tokenize(stream, state)\n },\n indent: function(state, ctx, textAfter, indentUnit) {\n var firstChar = textAfter && textAfter.charAt(0);\n if ((state.prevToken == \"}\" || state.prevToken == \")\") && textAfter == \"\")\n return state.indented;\n if ((state.prevToken == \"operator\" && textAfter != \"}\" && state.context.type != \"}\") ||\n state.prevToken == \"variable\" && firstChar == \".\" ||\n (state.prevToken == \"}\" || state.prevToken == \")\") && firstChar == \".\")\n return indentUnit * 2 + ctx.indented;\n if (ctx.align && ctx.type == \"}\")\n return ctx.indented + (state.context.type == (textAfter || \"\").charAt(0) ? 0 : indentUnit);\n }\n },\n languageData: {\n closeBrackets: {brackets: [\"(\", \"[\", \"{\", \"'\", '\"', '\"\"\"']}\n }\n});\n\nexport const shader = clike({\n name: \"shader\",\n keywords: words(\"sampler1D sampler2D sampler3D samplerCube \" +\n \"sampler1DShadow sampler2DShadow \" +\n \"const attribute uniform varying \" +\n \"break continue discard return \" +\n \"for while do if else struct \" +\n \"in out inout\"),\n types: words(\"float int bool void \" +\n \"vec2 vec3 vec4 ivec2 ivec3 ivec4 bvec2 bvec3 bvec4 \" +\n \"mat2 mat3 mat4\"),\n blockKeywords: words(\"for while do if else struct\"),\n builtin: words(\"radians degrees sin cos tan asin acos atan \" +\n \"pow exp log exp2 sqrt inversesqrt \" +\n \"abs sign floor ceil fract mod min max clamp mix step smoothstep \" +\n \"length distance dot cross normalize ftransform faceforward \" +\n \"reflect refract matrixCompMult \" +\n \"lessThan lessThanEqual greaterThan greaterThanEqual \" +\n \"equal notEqual any all not \" +\n \"texture1D texture1DProj texture1DLod texture1DProjLod \" +\n \"texture2D texture2DProj texture2DLod texture2DProjLod \" +\n \"texture3D texture3DProj texture3DLod texture3DProjLod \" +\n \"textureCube textureCubeLod \" +\n \"shadow1D shadow2D shadow1DProj shadow2DProj \" +\n \"shadow1DLod shadow2DLod shadow1DProjLod shadow2DProjLod \" +\n \"dFdx dFdy fwidth \" +\n \"noise1 noise2 noise3 noise4\"),\n atoms: words(\"true false \" +\n \"gl_FragColor gl_SecondaryColor gl_Normal gl_Vertex \" +\n \"gl_MultiTexCoord0 gl_MultiTexCoord1 gl_MultiTexCoord2 gl_MultiTexCoord3 \" +\n \"gl_MultiTexCoord4 gl_MultiTexCoord5 gl_MultiTexCoord6 gl_MultiTexCoord7 \" +\n \"gl_FogCoord gl_PointCoord \" +\n \"gl_Position gl_PointSize gl_ClipVertex \" +\n \"gl_FrontColor gl_BackColor gl_FrontSecondaryColor gl_BackSecondaryColor \" +\n \"gl_TexCoord gl_FogFragCoord \" +\n \"gl_FragCoord gl_FrontFacing \" +\n \"gl_FragData gl_FragDepth \" +\n \"gl_ModelViewMatrix gl_ProjectionMatrix gl_ModelViewProjectionMatrix \" +\n \"gl_TextureMatrix gl_NormalMatrix gl_ModelViewMatrixInverse \" +\n \"gl_ProjectionMatrixInverse gl_ModelViewProjectionMatrixInverse \" +\n \"gl_TextureMatrixTranspose gl_ModelViewMatrixInverseTranspose \" +\n \"gl_ProjectionMatrixInverseTranspose \" +\n \"gl_ModelViewProjectionMatrixInverseTranspose \" +\n \"gl_TextureMatrixInverseTranspose \" +\n \"gl_NormalScale gl_DepthRange gl_ClipPlane \" +\n \"gl_Point gl_FrontMaterial gl_BackMaterial gl_LightSource gl_LightModel \" +\n \"gl_FrontLightModelProduct gl_BackLightModelProduct \" +\n \"gl_TextureColor gl_EyePlaneS gl_EyePlaneT gl_EyePlaneR gl_EyePlaneQ \" +\n \"gl_FogParameters \" +\n \"gl_MaxLights gl_MaxClipPlanes gl_MaxTextureUnits gl_MaxTextureCoords \" +\n \"gl_MaxVertexAttribs gl_MaxVertexUniformComponents gl_MaxVaryingFloats \" +\n \"gl_MaxVertexTextureImageUnits gl_MaxTextureImageUnits \" +\n \"gl_MaxFragmentUniformComponents gl_MaxCombineTextureImageUnits \" +\n \"gl_MaxDrawBuffers\"),\n indentSwitch: false,\n hooks: {\"#\": cppHook}\n})\n\nexport const nesC = clike({\n name: \"nesc\",\n keywords: words(cKeywords + \" as atomic async call command component components configuration event generic \" +\n \"implementation includes interface module new norace nx_struct nx_union post provides \" +\n \"signal task uses abstract extends\"),\n types: cTypes,\n blockKeywords: words(cBlockKeywords),\n atoms: words(\"null true false\"),\n hooks: {\"#\": cppHook}\n})\n\nexport const objectiveC = clike({\n name: \"objectivec\",\n keywords: words(cKeywords + \" \" + objCKeywords),\n types: objCTypes,\n builtin: words(objCBuiltins),\n blockKeywords: words(cBlockKeywords + \" @synthesize @try @catch @finally @autoreleasepool @synchronized\"),\n defKeywords: words(cDefKeywords + \" @interface @implementation @protocol @class\"),\n dontIndentStatements: /^@.*$/,\n typeFirstDefinitions: true,\n atoms: words(\"YES NO NULL Nil nil true false nullptr\"),\n isReservedIdentifier: cIsReservedIdentifier,\n hooks: {\n \"#\": cppHook,\n \"*\": pointerHook,\n }\n})\n\nexport const objectiveCpp = clike({\n name: \"objectivecpp\",\n keywords: words(cKeywords + \" \" + objCKeywords + \" \" + cppKeywords),\n types: objCTypes,\n builtin: words(objCBuiltins),\n blockKeywords: words(cBlockKeywords + \" @synthesize @try @catch @finally @autoreleasepool @synchronized class try catch\"),\n defKeywords: words(cDefKeywords + \" @interface @implementation @protocol @class class namespace\"),\n dontIndentStatements: /^@.*$|^template$/,\n typeFirstDefinitions: true,\n atoms: words(\"YES NO NULL Nil nil true false nullptr\"),\n isReservedIdentifier: cIsReservedIdentifier,\n hooks: {\n \"#\": cppHook,\n \"*\": pointerHook,\n \"u\": cpp11StringHook,\n \"U\": cpp11StringHook,\n \"L\": cpp11StringHook,\n \"R\": cpp11StringHook,\n \"0\": cpp14Literal,\n \"1\": cpp14Literal,\n \"2\": cpp14Literal,\n \"3\": cpp14Literal,\n \"4\": cpp14Literal,\n \"5\": cpp14Literal,\n \"6\": cpp14Literal,\n \"7\": cpp14Literal,\n \"8\": cpp14Literal,\n \"9\": cpp14Literal,\n token: function(stream, state, style) {\n if (style == \"variable\" && stream.peek() == \"(\" &&\n (state.prevToken == \";\" || state.prevToken == null ||\n state.prevToken == \"}\") &&\n cppLooksLikeConstructor(stream.current()))\n return \"def\";\n }\n },\n namespaceSeparator: \"::\"\n})\n\nexport const squirrel = clike({\n name: \"squirrel\",\n keywords: words(\"base break clone continue const default delete enum extends function in class\" +\n \" foreach local resume return this throw typeof yield constructor instanceof static\"),\n types: cTypes,\n blockKeywords: words(\"case catch class else for foreach if switch try while\"),\n defKeywords: words(\"function local class\"),\n typeFirstDefinitions: true,\n atoms: words(\"true false null\"),\n hooks: {\"#\": cppHook}\n})\n\n// Ceylon Strings need to deal with interpolation\nvar stringTokenizer = null;\nfunction tokenCeylonString(type) {\n return function(stream, state) {\n var escaped = false, next, end = false;\n while (!stream.eol()) {\n if (!escaped && stream.match('\"') &&\n (type == \"single\" || stream.match('\"\"'))) {\n end = true;\n break;\n }\n if (!escaped && stream.match('``')) {\n stringTokenizer = tokenCeylonString(type);\n end = true;\n break;\n }\n next = stream.next();\n escaped = type == \"single\" && !escaped && next == \"\\\\\";\n }\n if (end)\n state.tokenize = null;\n return \"string\";\n }\n}\n\nexport const ceylon = clike({\n name: \"ceylon\",\n keywords: words(\"abstracts alias assembly assert assign break case catch class continue dynamic else\" +\n \" exists extends finally for function given if import in interface is let module new\" +\n \" nonempty object of out outer package return satisfies super switch then this throw\" +\n \" try value void while\"),\n types: function(word) {\n // In Ceylon all identifiers that start with an uppercase are types\n var first = word.charAt(0);\n return (first === first.toUpperCase() && first !== first.toLowerCase());\n },\n blockKeywords: words(\"case catch class dynamic else finally for function if interface module new object switch try while\"),\n defKeywords: words(\"class dynamic function interface module object package value\"),\n builtin: words(\"abstract actual aliased annotation by default deprecated doc final formal late license\" +\n \" native optional sealed see serializable shared suppressWarnings tagged throws variable\"),\n isPunctuationChar: /[\\[\\]{}\\(\\),;\\:\\.`]/,\n isOperatorChar: /[+\\-*&%=<>!?|^~:\\/]/,\n numberStart: /[\\d#$]/,\n number: /^(?:#[\\da-fA-F_]+|\\$[01_]+|[\\d_]+[kMGTPmunpf]?|[\\d_]+\\.[\\d_]+(?:[eE][-+]?\\d+|[kMGTPmunpf]|)|)/i,\n multiLineStrings: true,\n typeFirstDefinitions: true,\n atoms: words(\"true false null larger smaller equal empty finished\"),\n indentSwitch: false,\n styleDefs: false,\n hooks: {\n \"@\": function(stream) {\n stream.eatWhile(/[\\w\\$_]/);\n return \"meta\";\n },\n '\"': function(stream, state) {\n state.tokenize = tokenCeylonString(stream.match('\"\"') ? \"triple\" : \"single\");\n return state.tokenize(stream, state);\n },\n '`': function(stream, state) {\n if (!stringTokenizer || !stream.match('`')) return false;\n state.tokenize = stringTokenizer;\n stringTokenizer = null;\n return state.tokenize(stream, state);\n },\n \"'\": function(stream) {\n if (stream.match(/^(\\\\[^'\\s]+|[^\\\\'])'/)) return \"string.special\"\n stream.eatWhile(/[\\w\\$_\\xa1-\\uffff]/);\n return \"atom\";\n },\n token: function(_stream, state, style) {\n if ((style == \"variable\" || style == \"type\") &&\n state.prevToken == \".\") {\n return \"variableName.special\";\n }\n }\n },\n languageData: {\n closeBrackets: {brackets: [\"(\", \"[\", \"{\", \"'\", '\"', '\"\"\"']}\n }\n})\n\nfunction pushInterpolationStack(state) {\n (state.interpolationStack || (state.interpolationStack = [])).push(state.tokenize);\n}\n\nfunction popInterpolationStack(state) {\n return (state.interpolationStack || (state.interpolationStack = [])).pop();\n}\n\nfunction sizeInterpolationStack(state) {\n return state.interpolationStack ? state.interpolationStack.length : 0;\n}\n\nfunction tokenDartString(quote, stream, state, raw) {\n var tripleQuoted = false;\n if (stream.eat(quote)) {\n if (stream.eat(quote)) tripleQuoted = true;\n else return \"string\"; //empty string\n }\n function tokenStringHelper(stream, state) {\n var escaped = false;\n while (!stream.eol()) {\n if (!raw && !escaped && stream.peek() == \"$\") {\n pushInterpolationStack(state);\n state.tokenize = tokenInterpolation;\n return \"string\";\n }\n var next = stream.next();\n if (next == quote && !escaped && (!tripleQuoted || stream.match(quote + quote))) {\n state.tokenize = null;\n break;\n }\n escaped = !raw && !escaped && next == \"\\\\\";\n }\n return \"string\";\n }\n state.tokenize = tokenStringHelper;\n return tokenStringHelper(stream, state);\n}\n\nfunction tokenInterpolation(stream, state) {\n stream.eat(\"$\");\n if (stream.eat(\"{\")) {\n // let clike handle the content of ${...},\n // we take over again when \"}\" appears (see hooks).\n state.tokenize = null;\n } else {\n state.tokenize = tokenInterpolationIdentifier;\n }\n return null;\n}\n\nfunction tokenInterpolationIdentifier(stream, state) {\n stream.eatWhile(/[\\w_]/);\n state.tokenize = popInterpolationStack(state);\n return \"variable\";\n}\n\nexport const dart = clike({\n name: \"dart\",\n keywords: words(\"this super static final const abstract class extends external factory \" +\n \"implements mixin get native set typedef with enum throw rethrow assert break case \" +\n \"continue default in return new deferred async await covariant try catch finally \" +\n \"do else for if switch while import library export part of show hide is as extension \" +\n \"on yield late required sealed base interface when inline\"),\n blockKeywords: words(\"try catch finally do else for if switch while\"),\n builtin: words(\"void bool num int double dynamic var String Null Never\"),\n atoms: words(\"true false null\"),\n hooks: {\n \"@\": function(stream) {\n stream.eatWhile(/[\\w\\$_\\.]/);\n return \"meta\";\n },\n\n // custom string handling to deal with triple-quoted strings and string interpolation\n \"'\": function(stream, state) {\n return tokenDartString(\"'\", stream, state, false);\n },\n \"\\\"\": function(stream, state) {\n return tokenDartString(\"\\\"\", stream, state, false);\n },\n \"r\": function(stream, state) {\n var peek = stream.peek();\n if (peek == \"'\" || peek == \"\\\"\") {\n return tokenDartString(stream.next(), stream, state, true);\n }\n return false;\n },\n\n \"}\": function(_stream, state) {\n // \"}\" is end of interpolation, if interpolation stack is non-empty\n if (sizeInterpolationStack(state) > 0) {\n state.tokenize = popInterpolationStack(state);\n return null;\n }\n return false;\n },\n\n \"/\": function(stream, state) {\n if (!stream.eat(\"*\")) return false\n state.tokenize = tokenNestedComment(1)\n return state.tokenize(stream, state)\n },\n token: function(stream, _, style) {\n if (style == \"variable\") {\n // Assume uppercase symbols are classes\n var isUpper = RegExp('^[_$]*[A-Z][a-zA-Z0-9_$]*$','g');\n if (isUpper.test(stream.current())) {\n return 'type';\n }\n }\n }\n }\n})\n","import { Annotation, Facet, combineConfig, StateField, Transaction, ChangeSet, ChangeDesc, EditorSelection, StateEffect, Text, findClusterBreak, countColumn, CharCategory } from '@codemirror/state';\nimport { EditorView, Direction } from '@codemirror/view';\nimport { IndentContext, getIndentation, indentString, matchBrackets, syntaxTree, getIndentUnit, indentUnit } from '@codemirror/language';\nimport { NodeProp } from '@lezer/common';\n\n/**\nComment or uncomment the current selection. Will use line comments\nif available, otherwise falling back to block comments.\n*/\nconst toggleComment = target => {\n let { state } = target, line = state.doc.lineAt(state.selection.main.from), config = getConfig(target.state, line.from);\n return config.line ? toggleLineComment(target) : config.block ? toggleBlockCommentByLine(target) : false;\n};\nfunction command(f, option) {\n return ({ state, dispatch }) => {\n if (state.readOnly)\n return false;\n let tr = f(option, state);\n if (!tr)\n return false;\n dispatch(state.update(tr));\n return true;\n };\n}\n/**\nComment or uncomment the current selection using line comments.\nThe line comment syntax is taken from the\n[`commentTokens`](https://codemirror.net/6/docs/ref/#commands.CommentTokens) [language\ndata](https://codemirror.net/6/docs/ref/#state.EditorState.languageDataAt).\n*/\nconst toggleLineComment = /*@__PURE__*/command(changeLineComment, 0 /* CommentOption.Toggle */);\n/**\nComment the current selection using line comments.\n*/\nconst lineComment = /*@__PURE__*/command(changeLineComment, 1 /* CommentOption.Comment */);\n/**\nUncomment the current selection using line comments.\n*/\nconst lineUncomment = /*@__PURE__*/command(changeLineComment, 2 /* CommentOption.Uncomment */);\n/**\nComment or uncomment the current selection using block comments.\nThe block comment syntax is taken from the\n[`commentTokens`](https://codemirror.net/6/docs/ref/#commands.CommentTokens) [language\ndata](https://codemirror.net/6/docs/ref/#state.EditorState.languageDataAt).\n*/\nconst toggleBlockComment = /*@__PURE__*/command(changeBlockComment, 0 /* CommentOption.Toggle */);\n/**\nComment the current selection using block comments.\n*/\nconst blockComment = /*@__PURE__*/command(changeBlockComment, 1 /* CommentOption.Comment */);\n/**\nUncomment the current selection using block comments.\n*/\nconst blockUncomment = /*@__PURE__*/command(changeBlockComment, 2 /* CommentOption.Uncomment */);\n/**\nComment or uncomment the lines around the current selection using\nblock comments.\n*/\nconst toggleBlockCommentByLine = /*@__PURE__*/command((o, s) => changeBlockComment(o, s, selectedLineRanges(s)), 0 /* CommentOption.Toggle */);\nfunction getConfig(state, pos) {\n let data = state.languageDataAt(\"commentTokens\", pos);\n return data.length ? data[0] : {};\n}\nconst SearchMargin = 50;\n/**\nDetermines if the given range is block-commented in the given\nstate.\n*/\nfunction findBlockComment(state, { open, close }, from, to) {\n let textBefore = state.sliceDoc(from - SearchMargin, from);\n let textAfter = state.sliceDoc(to, to + SearchMargin);\n let spaceBefore = /\\s*$/.exec(textBefore)[0].length, spaceAfter = /^\\s*/.exec(textAfter)[0].length;\n let beforeOff = textBefore.length - spaceBefore;\n if (textBefore.slice(beforeOff - open.length, beforeOff) == open &&\n textAfter.slice(spaceAfter, spaceAfter + close.length) == close) {\n return { open: { pos: from - spaceBefore, margin: spaceBefore && 1 },\n close: { pos: to + spaceAfter, margin: spaceAfter && 1 } };\n }\n let startText, endText;\n if (to - from <= 2 * SearchMargin) {\n startText = endText = state.sliceDoc(from, to);\n }\n else {\n startText = state.sliceDoc(from, from + SearchMargin);\n endText = state.sliceDoc(to - SearchMargin, to);\n }\n let startSpace = /^\\s*/.exec(startText)[0].length, endSpace = /\\s*$/.exec(endText)[0].length;\n let endOff = endText.length - endSpace - close.length;\n if (startText.slice(startSpace, startSpace + open.length) == open &&\n endText.slice(endOff, endOff + close.length) == close) {\n return { open: { pos: from + startSpace + open.length,\n margin: /\\s/.test(startText.charAt(startSpace + open.length)) ? 1 : 0 },\n close: { pos: to - endSpace - close.length,\n margin: /\\s/.test(endText.charAt(endOff - 1)) ? 1 : 0 } };\n }\n return null;\n}\nfunction selectedLineRanges(state) {\n let ranges = [];\n for (let r of state.selection.ranges) {\n let fromLine = state.doc.lineAt(r.from);\n let toLine = r.to <= fromLine.to ? fromLine : state.doc.lineAt(r.to);\n let last = ranges.length - 1;\n if (last >= 0 && ranges[last].to > fromLine.from)\n ranges[last].to = toLine.to;\n else\n ranges.push({ from: fromLine.from + /^\\s*/.exec(fromLine.text)[0].length, to: toLine.to });\n }\n return ranges;\n}\n// Performs toggle, comment and uncomment of block comments in\n// languages that support them.\nfunction changeBlockComment(option, state, ranges = state.selection.ranges) {\n let tokens = ranges.map(r => getConfig(state, r.from).block);\n if (!tokens.every(c => c))\n return null;\n let comments = ranges.map((r, i) => findBlockComment(state, tokens[i], r.from, r.to));\n if (option != 2 /* CommentOption.Uncomment */ && !comments.every(c => c)) {\n return { changes: state.changes(ranges.map((range, i) => {\n if (comments[i])\n return [];\n return [{ from: range.from, insert: tokens[i].open + \" \" }, { from: range.to, insert: \" \" + tokens[i].close }];\n })) };\n }\n else if (option != 1 /* CommentOption.Comment */ && comments.some(c => c)) {\n let changes = [];\n for (let i = 0, comment; i < comments.length; i++)\n if (comment = comments[i]) {\n let token = tokens[i], { open, close } = comment;\n changes.push({ from: open.pos - token.open.length, to: open.pos + open.margin }, { from: close.pos - close.margin, to: close.pos + token.close.length });\n }\n return { changes };\n }\n return null;\n}\n// Performs toggle, comment and uncomment of line comments.\nfunction changeLineComment(option, state, ranges = state.selection.ranges) {\n let lines = [];\n let prevLine = -1;\n for (let { from, to } of ranges) {\n let startI = lines.length, minIndent = 1e9;\n let token = getConfig(state, from).line;\n if (!token)\n continue;\n for (let pos = from; pos <= to;) {\n let line = state.doc.lineAt(pos);\n if (line.from > prevLine && (from == to || to > line.from)) {\n prevLine = line.from;\n let indent = /^\\s*/.exec(line.text)[0].length;\n let empty = indent == line.length;\n let comment = line.text.slice(indent, indent + token.length) == token ? indent : -1;\n if (indent < line.text.length && indent < minIndent)\n minIndent = indent;\n lines.push({ line, comment, token, indent, empty, single: false });\n }\n pos = line.to + 1;\n }\n if (minIndent < 1e9)\n for (let i = startI; i < lines.length; i++)\n if (lines[i].indent < lines[i].line.text.length)\n lines[i].indent = minIndent;\n if (lines.length == startI + 1)\n lines[startI].single = true;\n }\n if (option != 2 /* CommentOption.Uncomment */ && lines.some(l => l.comment < 0 && (!l.empty || l.single))) {\n let changes = [];\n for (let { line, token, indent, empty, single } of lines)\n if (single || !empty)\n changes.push({ from: line.from + indent, insert: token + \" \" });\n let changeSet = state.changes(changes);\n return { changes: changeSet, selection: state.selection.map(changeSet, 1) };\n }\n else if (option != 1 /* CommentOption.Comment */ && lines.some(l => l.comment >= 0)) {\n let changes = [];\n for (let { line, comment, token } of lines)\n if (comment >= 0) {\n let from = line.from + comment, to = from + token.length;\n if (line.text[to - line.from] == \" \")\n to++;\n changes.push({ from, to });\n }\n return { changes };\n }\n return null;\n}\n\nconst fromHistory = /*@__PURE__*/Annotation.define();\n/**\nTransaction annotation that will prevent that transaction from\nbeing combined with other transactions in the undo history. Given\n`\"before\"`, it'll prevent merging with previous transactions. With\n`\"after\"`, subsequent transactions won't be combined with this\none. With `\"full\"`, the transaction is isolated on both sides.\n*/\nconst isolateHistory = /*@__PURE__*/Annotation.define();\n/**\nThis facet provides a way to register functions that, given a\ntransaction, provide a set of effects that the history should\nstore when inverting the transaction. This can be used to\nintegrate some kinds of effects in the history, so that they can\nbe undone (and redone again).\n*/\nconst invertedEffects = /*@__PURE__*/Facet.define();\nconst historyConfig = /*@__PURE__*/Facet.define({\n combine(configs) {\n return combineConfig(configs, {\n minDepth: 100,\n newGroupDelay: 500,\n joinToEvent: (_t, isAdjacent) => isAdjacent,\n }, {\n minDepth: Math.max,\n newGroupDelay: Math.min,\n joinToEvent: (a, b) => (tr, adj) => a(tr, adj) || b(tr, adj)\n });\n }\n});\nconst historyField_ = /*@__PURE__*/StateField.define({\n create() {\n return HistoryState.empty;\n },\n update(state, tr) {\n let config = tr.state.facet(historyConfig);\n let fromHist = tr.annotation(fromHistory);\n if (fromHist) {\n let item = HistEvent.fromTransaction(tr, fromHist.selection), from = fromHist.side;\n let other = from == 0 /* BranchName.Done */ ? state.undone : state.done;\n if (item)\n other = updateBranch(other, other.length, config.minDepth, item);\n else\n other = addSelection(other, tr.startState.selection);\n return new HistoryState(from == 0 /* BranchName.Done */ ? fromHist.rest : other, from == 0 /* BranchName.Done */ ? other : fromHist.rest);\n }\n let isolate = tr.annotation(isolateHistory);\n if (isolate == \"full\" || isolate == \"before\")\n state = state.isolate();\n if (tr.annotation(Transaction.addToHistory) === false)\n return !tr.changes.empty ? state.addMapping(tr.changes.desc) : state;\n let event = HistEvent.fromTransaction(tr);\n let time = tr.annotation(Transaction.time), userEvent = tr.annotation(Transaction.userEvent);\n if (event)\n state = state.addChanges(event, time, userEvent, config, tr);\n else if (tr.selection)\n state = state.addSelection(tr.startState.selection, time, userEvent, config.newGroupDelay);\n if (isolate == \"full\" || isolate == \"after\")\n state = state.isolate();\n return state;\n },\n toJSON(value) {\n return { done: value.done.map(e => e.toJSON()), undone: value.undone.map(e => e.toJSON()) };\n },\n fromJSON(json) {\n return new HistoryState(json.done.map(HistEvent.fromJSON), json.undone.map(HistEvent.fromJSON));\n }\n});\n/**\nCreate a history extension with the given configuration.\n*/\nfunction history(config = {}) {\n return [\n historyField_,\n historyConfig.of(config),\n EditorView.domEventHandlers({\n beforeinput(e, view) {\n let command = e.inputType == \"historyUndo\" ? undo : e.inputType == \"historyRedo\" ? redo : null;\n if (!command)\n return false;\n e.preventDefault();\n return command(view);\n }\n })\n ];\n}\n/**\nThe state field used to store the history data. Should probably\nonly be used when you want to\n[serialize](https://codemirror.net/6/docs/ref/#state.EditorState.toJSON) or\n[deserialize](https://codemirror.net/6/docs/ref/#state.EditorState^fromJSON) state objects in a way\nthat preserves history.\n*/\nconst historyField = historyField_;\nfunction cmd(side, selection) {\n return function ({ state, dispatch }) {\n if (!selection && state.readOnly)\n return false;\n let historyState = state.field(historyField_, false);\n if (!historyState)\n return false;\n let tr = historyState.pop(side, state, selection);\n if (!tr)\n return false;\n dispatch(tr);\n return true;\n };\n}\n/**\nUndo a single group of history events. Returns false if no group\nwas available.\n*/\nconst undo = /*@__PURE__*/cmd(0 /* BranchName.Done */, false);\n/**\nRedo a group of history events. Returns false if no group was\navailable.\n*/\nconst redo = /*@__PURE__*/cmd(1 /* BranchName.Undone */, false);\n/**\nUndo a change or selection change.\n*/\nconst undoSelection = /*@__PURE__*/cmd(0 /* BranchName.Done */, true);\n/**\nRedo a change or selection change.\n*/\nconst redoSelection = /*@__PURE__*/cmd(1 /* BranchName.Undone */, true);\nfunction depth(side) {\n return function (state) {\n let histState = state.field(historyField_, false);\n if (!histState)\n return 0;\n let branch = side == 0 /* BranchName.Done */ ? histState.done : histState.undone;\n return branch.length - (branch.length && !branch[0].changes ? 1 : 0);\n };\n}\n/**\nThe amount of undoable change events available in a given state.\n*/\nconst undoDepth = /*@__PURE__*/depth(0 /* BranchName.Done */);\n/**\nThe amount of redoable change events available in a given state.\n*/\nconst redoDepth = /*@__PURE__*/depth(1 /* BranchName.Undone */);\n// History events store groups of changes or effects that need to be\n// undone/redone together.\nclass HistEvent {\n constructor(\n // The changes in this event. Normal events hold at least one\n // change or effect. But it may be necessary to store selection\n // events before the first change, in which case a special type of\n // instance is created which doesn't hold any changes, with\n // changes == startSelection == undefined\n changes, \n // The effects associated with this event\n effects, \n // Accumulated mapping (from addToHistory==false) that should be\n // applied to events below this one.\n mapped, \n // The selection before this event\n startSelection, \n // Stores selection changes after this event, to be used for\n // selection undo/redo.\n selectionsAfter) {\n this.changes = changes;\n this.effects = effects;\n this.mapped = mapped;\n this.startSelection = startSelection;\n this.selectionsAfter = selectionsAfter;\n }\n setSelAfter(after) {\n return new HistEvent(this.changes, this.effects, this.mapped, this.startSelection, after);\n }\n toJSON() {\n var _a, _b, _c;\n return {\n changes: (_a = this.changes) === null || _a === void 0 ? void 0 : _a.toJSON(),\n mapped: (_b = this.mapped) === null || _b === void 0 ? void 0 : _b.toJSON(),\n startSelection: (_c = this.startSelection) === null || _c === void 0 ? void 0 : _c.toJSON(),\n selectionsAfter: this.selectionsAfter.map(s => s.toJSON())\n };\n }\n static fromJSON(json) {\n return new HistEvent(json.changes && ChangeSet.fromJSON(json.changes), [], json.mapped && ChangeDesc.fromJSON(json.mapped), json.startSelection && EditorSelection.fromJSON(json.startSelection), json.selectionsAfter.map(EditorSelection.fromJSON));\n }\n // This does not check `addToHistory` and such, it assumes the\n // transaction needs to be converted to an item. Returns null when\n // there are no changes or effects in the transaction.\n static fromTransaction(tr, selection) {\n let effects = none;\n for (let invert of tr.startState.facet(invertedEffects)) {\n let result = invert(tr);\n if (result.length)\n effects = effects.concat(result);\n }\n if (!effects.length && tr.changes.empty)\n return null;\n return new HistEvent(tr.changes.invert(tr.startState.doc), effects, undefined, selection || tr.startState.selection, none);\n }\n static selection(selections) {\n return new HistEvent(undefined, none, undefined, undefined, selections);\n }\n}\nfunction updateBranch(branch, to, maxLen, newEvent) {\n let start = to + 1 > maxLen + 20 ? to - maxLen - 1 : 0;\n let newBranch = branch.slice(start, to);\n newBranch.push(newEvent);\n return newBranch;\n}\nfunction isAdjacent(a, b) {\n let ranges = [], isAdjacent = false;\n a.iterChangedRanges((f, t) => ranges.push(f, t));\n b.iterChangedRanges((_f, _t, f, t) => {\n for (let i = 0; i < ranges.length;) {\n let from = ranges[i++], to = ranges[i++];\n if (t >= from && f <= to)\n isAdjacent = true;\n }\n });\n return isAdjacent;\n}\nfunction eqSelectionShape(a, b) {\n return a.ranges.length == b.ranges.length &&\n a.ranges.filter((r, i) => r.empty != b.ranges[i].empty).length === 0;\n}\nfunction conc(a, b) {\n return !a.length ? b : !b.length ? a : a.concat(b);\n}\nconst none = [];\nconst MaxSelectionsPerEvent = 200;\nfunction addSelection(branch, selection) {\n if (!branch.length) {\n return [HistEvent.selection([selection])];\n }\n else {\n let lastEvent = branch[branch.length - 1];\n let sels = lastEvent.selectionsAfter.slice(Math.max(0, lastEvent.selectionsAfter.length - MaxSelectionsPerEvent));\n if (sels.length && sels[sels.length - 1].eq(selection))\n return branch;\n sels.push(selection);\n return updateBranch(branch, branch.length - 1, 1e9, lastEvent.setSelAfter(sels));\n }\n}\n// Assumes the top item has one or more selectionAfter values\nfunction popSelection(branch) {\n let last = branch[branch.length - 1];\n let newBranch = branch.slice();\n newBranch[branch.length - 1] = last.setSelAfter(last.selectionsAfter.slice(0, last.selectionsAfter.length - 1));\n return newBranch;\n}\n// Add a mapping to the top event in the given branch. If this maps\n// away all the changes and effects in that item, drop it and\n// propagate the mapping to the next item.\nfunction addMappingToBranch(branch, mapping) {\n if (!branch.length)\n return branch;\n let length = branch.length, selections = none;\n while (length) {\n let event = mapEvent(branch[length - 1], mapping, selections);\n if (event.changes && !event.changes.empty || event.effects.length) { // Event survived mapping\n let result = branch.slice(0, length);\n result[length - 1] = event;\n return result;\n }\n else { // Drop this event, since there's no changes or effects left\n mapping = event.mapped;\n length--;\n selections = event.selectionsAfter;\n }\n }\n return selections.length ? [HistEvent.selection(selections)] : none;\n}\nfunction mapEvent(event, mapping, extraSelections) {\n let selections = conc(event.selectionsAfter.length ? event.selectionsAfter.map(s => s.map(mapping)) : none, extraSelections);\n // Change-less events don't store mappings (they are always the last event in a branch)\n if (!event.changes)\n return HistEvent.selection(selections);\n let mappedChanges = event.changes.map(mapping), before = mapping.mapDesc(event.changes, true);\n let fullMapping = event.mapped ? event.mapped.composeDesc(before) : before;\n return new HistEvent(mappedChanges, StateEffect.mapEffects(event.effects, mapping), fullMapping, event.startSelection.map(before), selections);\n}\nconst joinableUserEvent = /^(input\\.type|delete)($|\\.)/;\nclass HistoryState {\n constructor(done, undone, prevTime = 0, prevUserEvent = undefined) {\n this.done = done;\n this.undone = undone;\n this.prevTime = prevTime;\n this.prevUserEvent = prevUserEvent;\n }\n isolate() {\n return this.prevTime ? new HistoryState(this.done, this.undone) : this;\n }\n addChanges(event, time, userEvent, config, tr) {\n let done = this.done, lastEvent = done[done.length - 1];\n if (lastEvent && lastEvent.changes && !lastEvent.changes.empty && event.changes &&\n (!userEvent || joinableUserEvent.test(userEvent)) &&\n ((!lastEvent.selectionsAfter.length &&\n time - this.prevTime < config.newGroupDelay &&\n config.joinToEvent(tr, isAdjacent(lastEvent.changes, event.changes))) ||\n // For compose (but not compose.start) events, always join with previous event\n userEvent == \"input.type.compose\")) {\n done = updateBranch(done, done.length - 1, config.minDepth, new HistEvent(event.changes.compose(lastEvent.changes), conc(event.effects, lastEvent.effects), lastEvent.mapped, lastEvent.startSelection, none));\n }\n else {\n done = updateBranch(done, done.length, config.minDepth, event);\n }\n return new HistoryState(done, none, time, userEvent);\n }\n addSelection(selection, time, userEvent, newGroupDelay) {\n let last = this.done.length ? this.done[this.done.length - 1].selectionsAfter : none;\n if (last.length > 0 &&\n time - this.prevTime < newGroupDelay &&\n userEvent == this.prevUserEvent && userEvent && /^select($|\\.)/.test(userEvent) &&\n eqSelectionShape(last[last.length - 1], selection))\n return this;\n return new HistoryState(addSelection(this.done, selection), this.undone, time, userEvent);\n }\n addMapping(mapping) {\n return new HistoryState(addMappingToBranch(this.done, mapping), addMappingToBranch(this.undone, mapping), this.prevTime, this.prevUserEvent);\n }\n pop(side, state, onlySelection) {\n let branch = side == 0 /* BranchName.Done */ ? this.done : this.undone;\n if (branch.length == 0)\n return null;\n let event = branch[branch.length - 1], selection = event.selectionsAfter[0] || state.selection;\n if (onlySelection && event.selectionsAfter.length) {\n return state.update({\n selection: event.selectionsAfter[event.selectionsAfter.length - 1],\n annotations: fromHistory.of({ side, rest: popSelection(branch), selection }),\n userEvent: side == 0 /* BranchName.Done */ ? \"select.undo\" : \"select.redo\",\n scrollIntoView: true\n });\n }\n else if (!event.changes) {\n return null;\n }\n else {\n let rest = branch.length == 1 ? none : branch.slice(0, branch.length - 1);\n if (event.mapped)\n rest = addMappingToBranch(rest, event.mapped);\n return state.update({\n changes: event.changes,\n selection: event.startSelection,\n effects: event.effects,\n annotations: fromHistory.of({ side, rest, selection }),\n filter: false,\n userEvent: side == 0 /* BranchName.Done */ ? \"undo\" : \"redo\",\n scrollIntoView: true\n });\n }\n }\n}\nHistoryState.empty = /*@__PURE__*/new HistoryState(none, none);\n/**\nDefault key bindings for the undo history.\n\n- Mod-z: [`undo`](https://codemirror.net/6/docs/ref/#commands.undo).\n- Mod-y (Mod-Shift-z on macOS) + Ctrl-Shift-z on Linux: [`redo`](https://codemirror.net/6/docs/ref/#commands.redo).\n- Mod-u: [`undoSelection`](https://codemirror.net/6/docs/ref/#commands.undoSelection).\n- Alt-u (Mod-Shift-u on macOS): [`redoSelection`](https://codemirror.net/6/docs/ref/#commands.redoSelection).\n*/\nconst historyKeymap = [\n { key: \"Mod-z\", run: undo, preventDefault: true },\n { key: \"Mod-y\", mac: \"Mod-Shift-z\", run: redo, preventDefault: true },\n { linux: \"Ctrl-Shift-z\", run: redo, preventDefault: true },\n { key: \"Mod-u\", run: undoSelection, preventDefault: true },\n { key: \"Alt-u\", mac: \"Mod-Shift-u\", run: redoSelection, preventDefault: true }\n];\n\nfunction updateSel(sel, by) {\n return EditorSelection.create(sel.ranges.map(by), sel.mainIndex);\n}\nfunction setSel(state, selection) {\n return state.update({ selection, scrollIntoView: true, userEvent: \"select\" });\n}\nfunction moveSel({ state, dispatch }, how) {\n let selection = updateSel(state.selection, how);\n if (selection.eq(state.selection, true))\n return false;\n dispatch(setSel(state, selection));\n return true;\n}\nfunction rangeEnd(range, forward) {\n return EditorSelection.cursor(forward ? range.to : range.from);\n}\nfunction cursorByChar(view, forward) {\n return moveSel(view, range => range.empty ? view.moveByChar(range, forward) : rangeEnd(range, forward));\n}\nfunction ltrAtCursor(view) {\n return view.textDirectionAt(view.state.selection.main.head) == Direction.LTR;\n}\n/**\nMove the selection one character to the left (which is backward in\nleft-to-right text, forward in right-to-left text).\n*/\nconst cursorCharLeft = view => cursorByChar(view, !ltrAtCursor(view));\n/**\nMove the selection one character to the right.\n*/\nconst cursorCharRight = view => cursorByChar(view, ltrAtCursor(view));\n/**\nMove the selection one character forward.\n*/\nconst cursorCharForward = view => cursorByChar(view, true);\n/**\nMove the selection one character backward.\n*/\nconst cursorCharBackward = view => cursorByChar(view, false);\nfunction cursorByGroup(view, forward) {\n return moveSel(view, range => range.empty ? view.moveByGroup(range, forward) : rangeEnd(range, forward));\n}\n/**\nMove the selection to the left across one group of word or\nnon-word (but also non-space) characters.\n*/\nconst cursorGroupLeft = view => cursorByGroup(view, !ltrAtCursor(view));\n/**\nMove the selection one group to the right.\n*/\nconst cursorGroupRight = view => cursorByGroup(view, ltrAtCursor(view));\n/**\nMove the selection one group forward.\n*/\nconst cursorGroupForward = view => cursorByGroup(view, true);\n/**\nMove the selection one group backward.\n*/\nconst cursorGroupBackward = view => cursorByGroup(view, false);\nconst segmenter = typeof Intl != \"undefined\" && Intl.Segmenter ?\n /*@__PURE__*/new (Intl.Segmenter)(undefined, { granularity: \"word\" }) : null;\nfunction moveBySubword(view, range, forward) {\n let categorize = view.state.charCategorizer(range.from);\n let cat = CharCategory.Space, pos = range.from, steps = 0;\n let done = false, sawUpper = false, sawLower = false;\n let step = (next) => {\n if (done)\n return false;\n pos += forward ? next.length : -next.length;\n let nextCat = categorize(next), ahead;\n if (nextCat == CharCategory.Word && next.charCodeAt(0) < 128 && /[\\W_]/.test(next))\n nextCat = -1; // Treat word punctuation specially\n if (cat == CharCategory.Space)\n cat = nextCat;\n if (cat != nextCat)\n return false;\n if (cat == CharCategory.Word) {\n if (next.toLowerCase() == next) {\n if (!forward && sawUpper)\n return false;\n sawLower = true;\n }\n else if (sawLower) {\n if (forward)\n return false;\n done = true;\n }\n else {\n if (sawUpper && forward && categorize(ahead = view.state.sliceDoc(pos, pos + 1)) == CharCategory.Word &&\n ahead.toLowerCase() == ahead)\n return false;\n sawUpper = true;\n }\n }\n steps++;\n return true;\n };\n let end = view.moveByChar(range, forward, start => {\n step(start);\n return step;\n });\n if (segmenter && cat == CharCategory.Word && end.from == range.from + steps * (forward ? 1 : -1)) {\n let from = Math.min(range.head, end.head), to = Math.max(range.head, end.head);\n let skipped = view.state.sliceDoc(from, to);\n if (skipped.length > 1 && /[\\u4E00-\\uffff]/.test(skipped)) {\n let segments = Array.from(segmenter.segment(skipped));\n if (segments.length > 1) {\n if (forward)\n return EditorSelection.cursor(range.head + segments[1].index, -1);\n return EditorSelection.cursor(end.head + segments[segments.length - 1].index, 1);\n }\n }\n }\n return end;\n}\nfunction cursorBySubword(view, forward) {\n return moveSel(view, range => range.empty ? moveBySubword(view, range, forward) : rangeEnd(range, forward));\n}\n/**\nMove the selection one group or camel-case subword forward.\n*/\nconst cursorSubwordForward = view => cursorBySubword(view, true);\n/**\nMove the selection one group or camel-case subword backward.\n*/\nconst cursorSubwordBackward = view => cursorBySubword(view, false);\nfunction interestingNode(state, node, bracketProp) {\n if (node.type.prop(bracketProp))\n return true;\n let len = node.to - node.from;\n return len && (len > 2 || /[^\\s,.;:]/.test(state.sliceDoc(node.from, node.to))) || node.firstChild;\n}\nfunction moveBySyntax(state, start, forward) {\n let pos = syntaxTree(state).resolveInner(start.head);\n let bracketProp = forward ? NodeProp.closedBy : NodeProp.openedBy;\n // Scan forward through child nodes to see if there's an interesting\n // node ahead.\n for (let at = start.head;;) {\n let next = forward ? pos.childAfter(at) : pos.childBefore(at);\n if (!next)\n break;\n if (interestingNode(state, next, bracketProp))\n pos = next;\n else\n at = forward ? next.to : next.from;\n }\n let bracket = pos.type.prop(bracketProp), match, newPos;\n if (bracket && (match = forward ? matchBrackets(state, pos.from, 1) : matchBrackets(state, pos.to, -1)) && match.matched)\n newPos = forward ? match.end.to : match.end.from;\n else\n newPos = forward ? pos.to : pos.from;\n return EditorSelection.cursor(newPos, forward ? -1 : 1);\n}\n/**\nMove the cursor over the next syntactic element to the left.\n*/\nconst cursorSyntaxLeft = view => moveSel(view, range => moveBySyntax(view.state, range, !ltrAtCursor(view)));\n/**\nMove the cursor over the next syntactic element to the right.\n*/\nconst cursorSyntaxRight = view => moveSel(view, range => moveBySyntax(view.state, range, ltrAtCursor(view)));\nfunction cursorByLine(view, forward) {\n return moveSel(view, range => {\n if (!range.empty)\n return rangeEnd(range, forward);\n let moved = view.moveVertically(range, forward);\n return moved.head != range.head ? moved : view.moveToLineBoundary(range, forward);\n });\n}\n/**\nMove the selection one line up.\n*/\nconst cursorLineUp = view => cursorByLine(view, false);\n/**\nMove the selection one line down.\n*/\nconst cursorLineDown = view => cursorByLine(view, true);\nfunction pageInfo(view) {\n let selfScroll = view.scrollDOM.clientHeight < view.scrollDOM.scrollHeight - 2;\n let marginTop = 0, marginBottom = 0, height;\n if (selfScroll) {\n for (let source of view.state.facet(EditorView.scrollMargins)) {\n let margins = source(view);\n if (margins === null || margins === void 0 ? void 0 : margins.top)\n marginTop = Math.max(margins === null || margins === void 0 ? void 0 : margins.top, marginTop);\n if (margins === null || margins === void 0 ? void 0 : margins.bottom)\n marginBottom = Math.max(margins === null || margins === void 0 ? void 0 : margins.bottom, marginBottom);\n }\n height = view.scrollDOM.clientHeight - marginTop - marginBottom;\n }\n else {\n height = (view.dom.ownerDocument.defaultView || window).innerHeight;\n }\n return { marginTop, marginBottom, selfScroll,\n height: Math.max(view.defaultLineHeight, height - 5) };\n}\nfunction cursorByPage(view, forward) {\n let page = pageInfo(view);\n let { state } = view, selection = updateSel(state.selection, range => {\n return range.empty ? view.moveVertically(range, forward, page.height)\n : rangeEnd(range, forward);\n });\n if (selection.eq(state.selection))\n return false;\n let effect;\n if (page.selfScroll) {\n let startPos = view.coordsAtPos(state.selection.main.head);\n let scrollRect = view.scrollDOM.getBoundingClientRect();\n let scrollTop = scrollRect.top + page.marginTop, scrollBottom = scrollRect.bottom - page.marginBottom;\n if (startPos && startPos.top > scrollTop && startPos.bottom < scrollBottom)\n effect = EditorView.scrollIntoView(selection.main.head, { y: \"start\", yMargin: startPos.top - scrollTop });\n }\n view.dispatch(setSel(state, selection), { effects: effect });\n return true;\n}\n/**\nMove the selection one page up.\n*/\nconst cursorPageUp = view => cursorByPage(view, false);\n/**\nMove the selection one page down.\n*/\nconst cursorPageDown = view => cursorByPage(view, true);\nfunction moveByLineBoundary(view, start, forward) {\n let line = view.lineBlockAt(start.head), moved = view.moveToLineBoundary(start, forward);\n if (moved.head == start.head && moved.head != (forward ? line.to : line.from))\n moved = view.moveToLineBoundary(start, forward, false);\n if (!forward && moved.head == line.from && line.length) {\n let space = /^\\s*/.exec(view.state.sliceDoc(line.from, Math.min(line.from + 100, line.to)))[0].length;\n if (space && start.head != line.from + space)\n moved = EditorSelection.cursor(line.from + space);\n }\n return moved;\n}\n/**\nMove the selection to the next line wrap point, or to the end of\nthe line if there isn't one left on this line.\n*/\nconst cursorLineBoundaryForward = view => moveSel(view, range => moveByLineBoundary(view, range, true));\n/**\nMove the selection to previous line wrap point, or failing that to\nthe start of the line. If the line is indented, and the cursor\nisn't already at the end of the indentation, this will move to the\nend of the indentation instead of the start of the line.\n*/\nconst cursorLineBoundaryBackward = view => moveSel(view, range => moveByLineBoundary(view, range, false));\n/**\nMove the selection one line wrap point to the left.\n*/\nconst cursorLineBoundaryLeft = view => moveSel(view, range => moveByLineBoundary(view, range, !ltrAtCursor(view)));\n/**\nMove the selection one line wrap point to the right.\n*/\nconst cursorLineBoundaryRight = view => moveSel(view, range => moveByLineBoundary(view, range, ltrAtCursor(view)));\n/**\nMove the selection to the start of the line.\n*/\nconst cursorLineStart = view => moveSel(view, range => EditorSelection.cursor(view.lineBlockAt(range.head).from, 1));\n/**\nMove the selection to the end of the line.\n*/\nconst cursorLineEnd = view => moveSel(view, range => EditorSelection.cursor(view.lineBlockAt(range.head).to, -1));\nfunction toMatchingBracket(state, dispatch, extend) {\n let found = false, selection = updateSel(state.selection, range => {\n let matching = matchBrackets(state, range.head, -1)\n || matchBrackets(state, range.head, 1)\n || (range.head > 0 && matchBrackets(state, range.head - 1, 1))\n || (range.head < state.doc.length && matchBrackets(state, range.head + 1, -1));\n if (!matching || !matching.end)\n return range;\n found = true;\n let head = matching.start.from == range.head ? matching.end.to : matching.end.from;\n return extend ? EditorSelection.range(range.anchor, head) : EditorSelection.cursor(head);\n });\n if (!found)\n return false;\n dispatch(setSel(state, selection));\n return true;\n}\n/**\nMove the selection to the bracket matching the one it is currently\non, if any.\n*/\nconst cursorMatchingBracket = ({ state, dispatch }) => toMatchingBracket(state, dispatch, false);\n/**\nExtend the selection to the bracket matching the one the selection\nhead is currently on, if any.\n*/\nconst selectMatchingBracket = ({ state, dispatch }) => toMatchingBracket(state, dispatch, true);\nfunction extendSel(view, how) {\n let selection = updateSel(view.state.selection, range => {\n let head = how(range);\n return EditorSelection.range(range.anchor, head.head, head.goalColumn, head.bidiLevel || undefined);\n });\n if (selection.eq(view.state.selection))\n return false;\n view.dispatch(setSel(view.state, selection));\n return true;\n}\nfunction selectByChar(view, forward) {\n return extendSel(view, range => view.moveByChar(range, forward));\n}\n/**\nMove the selection head one character to the left, while leaving\nthe anchor in place.\n*/\nconst selectCharLeft = view => selectByChar(view, !ltrAtCursor(view));\n/**\nMove the selection head one character to the right.\n*/\nconst selectCharRight = view => selectByChar(view, ltrAtCursor(view));\n/**\nMove the selection head one character forward.\n*/\nconst selectCharForward = view => selectByChar(view, true);\n/**\nMove the selection head one character backward.\n*/\nconst selectCharBackward = view => selectByChar(view, false);\nfunction selectByGroup(view, forward) {\n return extendSel(view, range => view.moveByGroup(range, forward));\n}\n/**\nMove the selection head one [group](https://codemirror.net/6/docs/ref/#commands.cursorGroupLeft) to\nthe left.\n*/\nconst selectGroupLeft = view => selectByGroup(view, !ltrAtCursor(view));\n/**\nMove the selection head one group to the right.\n*/\nconst selectGroupRight = view => selectByGroup(view, ltrAtCursor(view));\n/**\nMove the selection head one group forward.\n*/\nconst selectGroupForward = view => selectByGroup(view, true);\n/**\nMove the selection head one group backward.\n*/\nconst selectGroupBackward = view => selectByGroup(view, false);\nfunction selectBySubword(view, forward) {\n return extendSel(view, range => moveBySubword(view, range, forward));\n}\n/**\nMove the selection head one group or camel-case subword forward.\n*/\nconst selectSubwordForward = view => selectBySubword(view, true);\n/**\nMove the selection head one group or subword backward.\n*/\nconst selectSubwordBackward = view => selectBySubword(view, false);\n/**\nMove the selection head over the next syntactic element to the left.\n*/\nconst selectSyntaxLeft = view => extendSel(view, range => moveBySyntax(view.state, range, !ltrAtCursor(view)));\n/**\nMove the selection head over the next syntactic element to the right.\n*/\nconst selectSyntaxRight = view => extendSel(view, range => moveBySyntax(view.state, range, ltrAtCursor(view)));\nfunction selectByLine(view, forward) {\n return extendSel(view, range => view.moveVertically(range, forward));\n}\n/**\nMove the selection head one line up.\n*/\nconst selectLineUp = view => selectByLine(view, false);\n/**\nMove the selection head one line down.\n*/\nconst selectLineDown = view => selectByLine(view, true);\nfunction selectByPage(view, forward) {\n return extendSel(view, range => view.moveVertically(range, forward, pageInfo(view).height));\n}\n/**\nMove the selection head one page up.\n*/\nconst selectPageUp = view => selectByPage(view, false);\n/**\nMove the selection head one page down.\n*/\nconst selectPageDown = view => selectByPage(view, true);\n/**\nMove the selection head to the next line boundary.\n*/\nconst selectLineBoundaryForward = view => extendSel(view, range => moveByLineBoundary(view, range, true));\n/**\nMove the selection head to the previous line boundary.\n*/\nconst selectLineBoundaryBackward = view => extendSel(view, range => moveByLineBoundary(view, range, false));\n/**\nMove the selection head one line boundary to the left.\n*/\nconst selectLineBoundaryLeft = view => extendSel(view, range => moveByLineBoundary(view, range, !ltrAtCursor(view)));\n/**\nMove the selection head one line boundary to the right.\n*/\nconst selectLineBoundaryRight = view => extendSel(view, range => moveByLineBoundary(view, range, ltrAtCursor(view)));\n/**\nMove the selection head to the start of the line.\n*/\nconst selectLineStart = view => extendSel(view, range => EditorSelection.cursor(view.lineBlockAt(range.head).from));\n/**\nMove the selection head to the end of the line.\n*/\nconst selectLineEnd = view => extendSel(view, range => EditorSelection.cursor(view.lineBlockAt(range.head).to));\n/**\nMove the selection to the start of the document.\n*/\nconst cursorDocStart = ({ state, dispatch }) => {\n dispatch(setSel(state, { anchor: 0 }));\n return true;\n};\n/**\nMove the selection to the end of the document.\n*/\nconst cursorDocEnd = ({ state, dispatch }) => {\n dispatch(setSel(state, { anchor: state.doc.length }));\n return true;\n};\n/**\nMove the selection head to the start of the document.\n*/\nconst selectDocStart = ({ state, dispatch }) => {\n dispatch(setSel(state, { anchor: state.selection.main.anchor, head: 0 }));\n return true;\n};\n/**\nMove the selection head to the end of the document.\n*/\nconst selectDocEnd = ({ state, dispatch }) => {\n dispatch(setSel(state, { anchor: state.selection.main.anchor, head: state.doc.length }));\n return true;\n};\n/**\nSelect the entire document.\n*/\nconst selectAll = ({ state, dispatch }) => {\n dispatch(state.update({ selection: { anchor: 0, head: state.doc.length }, userEvent: \"select\" }));\n return true;\n};\n/**\nExpand the selection to cover entire lines.\n*/\nconst selectLine = ({ state, dispatch }) => {\n let ranges = selectedLineBlocks(state).map(({ from, to }) => EditorSelection.range(from, Math.min(to + 1, state.doc.length)));\n dispatch(state.update({ selection: EditorSelection.create(ranges), userEvent: \"select\" }));\n return true;\n};\n/**\nSelect the next syntactic construct that is larger than the\nselection. Note that this will only work insofar as the language\n[provider](https://codemirror.net/6/docs/ref/#language.language) you use builds up a full\nsyntax tree.\n*/\nconst selectParentSyntax = ({ state, dispatch }) => {\n let selection = updateSel(state.selection, range => {\n var _a;\n let stack = syntaxTree(state).resolveStack(range.from, 1);\n for (let cur = stack; cur; cur = cur.next) {\n let { node } = cur;\n if (((node.from < range.from && node.to >= range.to) ||\n (node.to > range.to && node.from <= range.from)) &&\n ((_a = node.parent) === null || _a === void 0 ? void 0 : _a.parent))\n return EditorSelection.range(node.to, node.from);\n }\n return range;\n });\n dispatch(setSel(state, selection));\n return true;\n};\n/**\nSimplify the current selection. When multiple ranges are selected,\nreduce it to its main range. Otherwise, if the selection is\nnon-empty, convert it to a cursor selection.\n*/\nconst simplifySelection = ({ state, dispatch }) => {\n let cur = state.selection, selection = null;\n if (cur.ranges.length > 1)\n selection = EditorSelection.create([cur.main]);\n else if (!cur.main.empty)\n selection = EditorSelection.create([EditorSelection.cursor(cur.main.head)]);\n if (!selection)\n return false;\n dispatch(setSel(state, selection));\n return true;\n};\nfunction deleteBy(target, by) {\n if (target.state.readOnly)\n return false;\n let event = \"delete.selection\", { state } = target;\n let changes = state.changeByRange(range => {\n let { from, to } = range;\n if (from == to) {\n let towards = by(range);\n if (towards < from) {\n event = \"delete.backward\";\n towards = skipAtomic(target, towards, false);\n }\n else if (towards > from) {\n event = \"delete.forward\";\n towards = skipAtomic(target, towards, true);\n }\n from = Math.min(from, towards);\n to = Math.max(to, towards);\n }\n else {\n from = skipAtomic(target, from, false);\n to = skipAtomic(target, to, true);\n }\n return from == to ? { range } : { changes: { from, to }, range: EditorSelection.cursor(from, from < range.head ? -1 : 1) };\n });\n if (changes.changes.empty)\n return false;\n target.dispatch(state.update(changes, {\n scrollIntoView: true,\n userEvent: event,\n effects: event == \"delete.selection\" ? EditorView.announce.of(state.phrase(\"Selection deleted\")) : undefined\n }));\n return true;\n}\nfunction skipAtomic(target, pos, forward) {\n if (target instanceof EditorView)\n for (let ranges of target.state.facet(EditorView.atomicRanges).map(f => f(target)))\n ranges.between(pos, pos, (from, to) => {\n if (from < pos && to > pos)\n pos = forward ? to : from;\n });\n return pos;\n}\nconst deleteByChar = (target, forward, byIndentUnit) => deleteBy(target, range => {\n let pos = range.from, { state } = target, line = state.doc.lineAt(pos), before, targetPos;\n if (byIndentUnit && !forward && pos > line.from && pos < line.from + 200 &&\n !/[^ \\t]/.test(before = line.text.slice(0, pos - line.from))) {\n if (before[before.length - 1] == \"\\t\")\n return pos - 1;\n let col = countColumn(before, state.tabSize), drop = col % getIndentUnit(state) || getIndentUnit(state);\n for (let i = 0; i < drop && before[before.length - 1 - i] == \" \"; i++)\n pos--;\n targetPos = pos;\n }\n else {\n targetPos = findClusterBreak(line.text, pos - line.from, forward, forward) + line.from;\n if (targetPos == pos && line.number != (forward ? state.doc.lines : 1))\n targetPos += forward ? 1 : -1;\n else if (!forward && /[\\ufe00-\\ufe0f]/.test(line.text.slice(targetPos - line.from, pos - line.from)))\n targetPos = findClusterBreak(line.text, targetPos - line.from, false, false) + line.from;\n }\n return targetPos;\n});\n/**\nDelete the selection, or, for cursor selections, the character or\nindentation unit before the cursor.\n*/\nconst deleteCharBackward = view => deleteByChar(view, false, true);\n/**\nDelete the selection or the character before the cursor. Does not\nimplement any extended behavior like deleting whole indentation\nunits in one go.\n*/\nconst deleteCharBackwardStrict = view => deleteByChar(view, false, false);\n/**\nDelete the selection or the character after the cursor.\n*/\nconst deleteCharForward = view => deleteByChar(view, true, false);\nconst deleteByGroup = (target, forward) => deleteBy(target, range => {\n let pos = range.head, { state } = target, line = state.doc.lineAt(pos);\n let categorize = state.charCategorizer(pos);\n for (let cat = null;;) {\n if (pos == (forward ? line.to : line.from)) {\n if (pos == range.head && line.number != (forward ? state.doc.lines : 1))\n pos += forward ? 1 : -1;\n break;\n }\n let next = findClusterBreak(line.text, pos - line.from, forward) + line.from;\n let nextChar = line.text.slice(Math.min(pos, next) - line.from, Math.max(pos, next) - line.from);\n let nextCat = categorize(nextChar);\n if (cat != null && nextCat != cat)\n break;\n if (nextChar != \" \" || pos != range.head)\n cat = nextCat;\n pos = next;\n }\n return pos;\n});\n/**\nDelete the selection or backward until the end of the next\n[group](https://codemirror.net/6/docs/ref/#view.EditorView.moveByGroup), only skipping groups of\nwhitespace when they consist of a single space.\n*/\nconst deleteGroupBackward = target => deleteByGroup(target, false);\n/**\nDelete the selection or forward until the end of the next group.\n*/\nconst deleteGroupForward = target => deleteByGroup(target, true);\n/**\nDelete the selection, or, if it is a cursor selection, delete to\nthe end of the line. If the cursor is directly at the end of the\nline, delete the line break after it.\n*/\nconst deleteToLineEnd = view => deleteBy(view, range => {\n let lineEnd = view.lineBlockAt(range.head).to;\n return range.head < lineEnd ? lineEnd : Math.min(view.state.doc.length, range.head + 1);\n});\n/**\nDelete the selection, or, if it is a cursor selection, delete to\nthe start of the line. If the cursor is directly at the start of the\nline, delete the line break before it.\n*/\nconst deleteToLineStart = view => deleteBy(view, range => {\n let lineStart = view.lineBlockAt(range.head).from;\n return range.head > lineStart ? lineStart : Math.max(0, range.head - 1);\n});\n/**\nDelete the selection, or, if it is a cursor selection, delete to\nthe start of the line or the next line wrap before the cursor.\n*/\nconst deleteLineBoundaryBackward = view => deleteBy(view, range => {\n let lineStart = view.moveToLineBoundary(range, false).head;\n return range.head > lineStart ? lineStart : Math.max(0, range.head - 1);\n});\n/**\nDelete the selection, or, if it is a cursor selection, delete to\nthe end of the line or the next line wrap after the cursor.\n*/\nconst deleteLineBoundaryForward = view => deleteBy(view, range => {\n let lineStart = view.moveToLineBoundary(range, true).head;\n return range.head < lineStart ? lineStart : Math.min(view.state.doc.length, range.head + 1);\n});\n/**\nDelete all whitespace directly before a line end from the\ndocument.\n*/\nconst deleteTrailingWhitespace = ({ state, dispatch }) => {\n if (state.readOnly)\n return false;\n let changes = [];\n for (let pos = 0, prev = \"\", iter = state.doc.iter();;) {\n iter.next();\n if (iter.lineBreak || iter.done) {\n let trailing = prev.search(/\\s+$/);\n if (trailing > -1)\n changes.push({ from: pos - (prev.length - trailing), to: pos });\n if (iter.done)\n break;\n prev = \"\";\n }\n else {\n prev = iter.value;\n }\n pos += iter.value.length;\n }\n if (!changes.length)\n return false;\n dispatch(state.update({ changes, userEvent: \"delete\" }));\n return true;\n};\n/**\nReplace each selection range with a line break, leaving the cursor\non the line before the break.\n*/\nconst splitLine = ({ state, dispatch }) => {\n if (state.readOnly)\n return false;\n let changes = state.changeByRange(range => {\n return { changes: { from: range.from, to: range.to, insert: Text.of([\"\", \"\"]) },\n range: EditorSelection.cursor(range.from) };\n });\n dispatch(state.update(changes, { scrollIntoView: true, userEvent: \"input\" }));\n return true;\n};\n/**\nFlip the characters before and after the cursor(s).\n*/\nconst transposeChars = ({ state, dispatch }) => {\n if (state.readOnly)\n return false;\n let changes = state.changeByRange(range => {\n if (!range.empty || range.from == 0 || range.from == state.doc.length)\n return { range };\n let pos = range.from, line = state.doc.lineAt(pos);\n let from = pos == line.from ? pos - 1 : findClusterBreak(line.text, pos - line.from, false) + line.from;\n let to = pos == line.to ? pos + 1 : findClusterBreak(line.text, pos - line.from, true) + line.from;\n return { changes: { from, to, insert: state.doc.slice(pos, to).append(state.doc.slice(from, pos)) },\n range: EditorSelection.cursor(to) };\n });\n if (changes.changes.empty)\n return false;\n dispatch(state.update(changes, { scrollIntoView: true, userEvent: \"move.character\" }));\n return true;\n};\nfunction selectedLineBlocks(state) {\n let blocks = [], upto = -1;\n for (let range of state.selection.ranges) {\n let startLine = state.doc.lineAt(range.from), endLine = state.doc.lineAt(range.to);\n if (!range.empty && range.to == endLine.from)\n endLine = state.doc.lineAt(range.to - 1);\n if (upto >= startLine.number) {\n let prev = blocks[blocks.length - 1];\n prev.to = endLine.to;\n prev.ranges.push(range);\n }\n else {\n blocks.push({ from: startLine.from, to: endLine.to, ranges: [range] });\n }\n upto = endLine.number + 1;\n }\n return blocks;\n}\nfunction moveLine(state, dispatch, forward) {\n if (state.readOnly)\n return false;\n let changes = [], ranges = [];\n for (let block of selectedLineBlocks(state)) {\n if (forward ? block.to == state.doc.length : block.from == 0)\n continue;\n let nextLine = state.doc.lineAt(forward ? block.to + 1 : block.from - 1);\n let size = nextLine.length + 1;\n if (forward) {\n changes.push({ from: block.to, to: nextLine.to }, { from: block.from, insert: nextLine.text + state.lineBreak });\n for (let r of block.ranges)\n ranges.push(EditorSelection.range(Math.min(state.doc.length, r.anchor + size), Math.min(state.doc.length, r.head + size)));\n }\n else {\n changes.push({ from: nextLine.from, to: block.from }, { from: block.to, insert: state.lineBreak + nextLine.text });\n for (let r of block.ranges)\n ranges.push(EditorSelection.range(r.anchor - size, r.head - size));\n }\n }\n if (!changes.length)\n return false;\n dispatch(state.update({\n changes,\n scrollIntoView: true,\n selection: EditorSelection.create(ranges, state.selection.mainIndex),\n userEvent: \"move.line\"\n }));\n return true;\n}\n/**\nMove the selected lines up one line.\n*/\nconst moveLineUp = ({ state, dispatch }) => moveLine(state, dispatch, false);\n/**\nMove the selected lines down one line.\n*/\nconst moveLineDown = ({ state, dispatch }) => moveLine(state, dispatch, true);\nfunction copyLine(state, dispatch, forward) {\n if (state.readOnly)\n return false;\n let changes = [];\n for (let block of selectedLineBlocks(state)) {\n if (forward)\n changes.push({ from: block.from, insert: state.doc.slice(block.from, block.to) + state.lineBreak });\n else\n changes.push({ from: block.to, insert: state.lineBreak + state.doc.slice(block.from, block.to) });\n }\n dispatch(state.update({ changes, scrollIntoView: true, userEvent: \"input.copyline\" }));\n return true;\n}\n/**\nCreate a copy of the selected lines. Keep the selection in the top copy.\n*/\nconst copyLineUp = ({ state, dispatch }) => copyLine(state, dispatch, false);\n/**\nCreate a copy of the selected lines. Keep the selection in the bottom copy.\n*/\nconst copyLineDown = ({ state, dispatch }) => copyLine(state, dispatch, true);\n/**\nDelete selected lines.\n*/\nconst deleteLine = view => {\n if (view.state.readOnly)\n return false;\n let { state } = view, changes = state.changes(selectedLineBlocks(state).map(({ from, to }) => {\n if (from > 0)\n from--;\n else if (to < state.doc.length)\n to++;\n return { from, to };\n }));\n let selection = updateSel(state.selection, range => {\n let dist = undefined;\n if (view.lineWrapping) {\n let block = view.lineBlockAt(range.head), pos = view.coordsAtPos(range.head, range.assoc || 1);\n if (pos)\n dist = (block.bottom + view.documentTop) - pos.bottom + view.defaultLineHeight / 2;\n }\n return view.moveVertically(range, true, dist);\n }).map(changes);\n view.dispatch({ changes, selection, scrollIntoView: true, userEvent: \"delete.line\" });\n return true;\n};\n/**\nReplace the selection with a newline.\n*/\nconst insertNewline = ({ state, dispatch }) => {\n dispatch(state.update(state.replaceSelection(state.lineBreak), { scrollIntoView: true, userEvent: \"input\" }));\n return true;\n};\n/**\nReplace the selection with a newline and the same amount of\nindentation as the line above.\n*/\nconst insertNewlineKeepIndent = ({ state, dispatch }) => {\n dispatch(state.update(state.changeByRange(range => {\n let indent = /^\\s*/.exec(state.doc.lineAt(range.from).text)[0];\n return {\n changes: { from: range.from, to: range.to, insert: state.lineBreak + indent },\n range: EditorSelection.cursor(range.from + indent.length + 1)\n };\n }), { scrollIntoView: true, userEvent: \"input\" }));\n return true;\n};\nfunction isBetweenBrackets(state, pos) {\n if (/\\(\\)|\\[\\]|\\{\\}/.test(state.sliceDoc(pos - 1, pos + 1)))\n return { from: pos, to: pos };\n let context = syntaxTree(state).resolveInner(pos);\n let before = context.childBefore(pos), after = context.childAfter(pos), closedBy;\n if (before && after && before.to <= pos && after.from >= pos &&\n (closedBy = before.type.prop(NodeProp.closedBy)) && closedBy.indexOf(after.name) > -1 &&\n state.doc.lineAt(before.to).from == state.doc.lineAt(after.from).from &&\n !/\\S/.test(state.sliceDoc(before.to, after.from)))\n return { from: before.to, to: after.from };\n return null;\n}\n/**\nReplace the selection with a newline and indent the newly created\nline(s). If the current line consists only of whitespace, this\nwill also delete that whitespace. When the cursor is between\nmatching brackets, an additional newline will be inserted after\nthe cursor.\n*/\nconst insertNewlineAndIndent = /*@__PURE__*/newlineAndIndent(false);\n/**\nCreate a blank, indented line below the current line.\n*/\nconst insertBlankLine = /*@__PURE__*/newlineAndIndent(true);\nfunction newlineAndIndent(atEof) {\n return ({ state, dispatch }) => {\n if (state.readOnly)\n return false;\n let changes = state.changeByRange(range => {\n let { from, to } = range, line = state.doc.lineAt(from);\n let explode = !atEof && from == to && isBetweenBrackets(state, from);\n if (atEof)\n from = to = (to <= line.to ? line : state.doc.lineAt(to)).to;\n let cx = new IndentContext(state, { simulateBreak: from, simulateDoubleBreak: !!explode });\n let indent = getIndentation(cx, from);\n if (indent == null)\n indent = countColumn(/^\\s*/.exec(state.doc.lineAt(from).text)[0], state.tabSize);\n while (to < line.to && /\\s/.test(line.text[to - line.from]))\n to++;\n if (explode)\n ({ from, to } = explode);\n else if (from > line.from && from < line.from + 100 && !/\\S/.test(line.text.slice(0, from)))\n from = line.from;\n let insert = [\"\", indentString(state, indent)];\n if (explode)\n insert.push(indentString(state, cx.lineIndent(line.from, -1)));\n return { changes: { from, to, insert: Text.of(insert) },\n range: EditorSelection.cursor(from + 1 + insert[1].length) };\n });\n dispatch(state.update(changes, { scrollIntoView: true, userEvent: \"input\" }));\n return true;\n };\n}\nfunction changeBySelectedLine(state, f) {\n let atLine = -1;\n return state.changeByRange(range => {\n let changes = [];\n for (let pos = range.from; pos <= range.to;) {\n let line = state.doc.lineAt(pos);\n if (line.number > atLine && (range.empty || range.to > line.from)) {\n f(line, changes, range);\n atLine = line.number;\n }\n pos = line.to + 1;\n }\n let changeSet = state.changes(changes);\n return { changes,\n range: EditorSelection.range(changeSet.mapPos(range.anchor, 1), changeSet.mapPos(range.head, 1)) };\n });\n}\n/**\nAuto-indent the selected lines. This uses the [indentation service\nfacet](https://codemirror.net/6/docs/ref/#language.indentService) as source for auto-indent\ninformation.\n*/\nconst indentSelection = ({ state, dispatch }) => {\n if (state.readOnly)\n return false;\n let updated = Object.create(null);\n let context = new IndentContext(state, { overrideIndentation: start => {\n let found = updated[start];\n return found == null ? -1 : found;\n } });\n let changes = changeBySelectedLine(state, (line, changes, range) => {\n let indent = getIndentation(context, line.from);\n if (indent == null)\n return;\n if (!/\\S/.test(line.text))\n indent = 0;\n let cur = /^\\s*/.exec(line.text)[0];\n let norm = indentString(state, indent);\n if (cur != norm || range.from < line.from + cur.length) {\n updated[line.from] = indent;\n changes.push({ from: line.from, to: line.from + cur.length, insert: norm });\n }\n });\n if (!changes.changes.empty)\n dispatch(state.update(changes, { userEvent: \"indent\" }));\n return true;\n};\n/**\nAdd a [unit](https://codemirror.net/6/docs/ref/#language.indentUnit) of indentation to all selected\nlines.\n*/\nconst indentMore = ({ state, dispatch }) => {\n if (state.readOnly)\n return false;\n dispatch(state.update(changeBySelectedLine(state, (line, changes) => {\n changes.push({ from: line.from, insert: state.facet(indentUnit) });\n }), { userEvent: \"input.indent\" }));\n return true;\n};\n/**\nRemove a [unit](https://codemirror.net/6/docs/ref/#language.indentUnit) of indentation from all\nselected lines.\n*/\nconst indentLess = ({ state, dispatch }) => {\n if (state.readOnly)\n return false;\n dispatch(state.update(changeBySelectedLine(state, (line, changes) => {\n let space = /^\\s*/.exec(line.text)[0];\n if (!space)\n return;\n let col = countColumn(space, state.tabSize), keep = 0;\n let insert = indentString(state, Math.max(0, col - getIndentUnit(state)));\n while (keep < space.length && keep < insert.length && space.charCodeAt(keep) == insert.charCodeAt(keep))\n keep++;\n changes.push({ from: line.from + keep, to: line.from + space.length, insert: insert.slice(keep) });\n }), { userEvent: \"delete.dedent\" }));\n return true;\n};\n/**\nEnables or disables\n[tab-focus mode](https://codemirror.net/6/docs/ref/#view.EditorView.setTabFocusMode). While on, this\nprevents the editor's key bindings from capturing Tab or\nShift-Tab, making it possible for the user to move focus out of\nthe editor with the keyboard.\n*/\nconst toggleTabFocusMode = view => {\n view.setTabFocusMode();\n return true;\n};\n/**\nTemporarily enables [tab-focus\nmode](https://codemirror.net/6/docs/ref/#view.EditorView.setTabFocusMode) for two seconds or until\nanother key is pressed.\n*/\nconst temporarilySetTabFocusMode = view => {\n view.setTabFocusMode(2000);\n return true;\n};\n/**\nInsert a tab character at the cursor or, if something is selected,\nuse [`indentMore`](https://codemirror.net/6/docs/ref/#commands.indentMore) to indent the entire\nselection.\n*/\nconst insertTab = ({ state, dispatch }) => {\n if (state.selection.ranges.some(r => !r.empty))\n return indentMore({ state, dispatch });\n dispatch(state.update(state.replaceSelection(\"\\t\"), { scrollIntoView: true, userEvent: \"input\" }));\n return true;\n};\n/**\nArray of key bindings containing the Emacs-style bindings that are\navailable on macOS by default.\n\n - Ctrl-b: [`cursorCharLeft`](https://codemirror.net/6/docs/ref/#commands.cursorCharLeft) ([`selectCharLeft`](https://codemirror.net/6/docs/ref/#commands.selectCharLeft) with Shift)\n - Ctrl-f: [`cursorCharRight`](https://codemirror.net/6/docs/ref/#commands.cursorCharRight) ([`selectCharRight`](https://codemirror.net/6/docs/ref/#commands.selectCharRight) with Shift)\n - Ctrl-p: [`cursorLineUp`](https://codemirror.net/6/docs/ref/#commands.cursorLineUp) ([`selectLineUp`](https://codemirror.net/6/docs/ref/#commands.selectLineUp) with Shift)\n - Ctrl-n: [`cursorLineDown`](https://codemirror.net/6/docs/ref/#commands.cursorLineDown) ([`selectLineDown`](https://codemirror.net/6/docs/ref/#commands.selectLineDown) with Shift)\n - Ctrl-a: [`cursorLineStart`](https://codemirror.net/6/docs/ref/#commands.cursorLineStart) ([`selectLineStart`](https://codemirror.net/6/docs/ref/#commands.selectLineStart) with Shift)\n - Ctrl-e: [`cursorLineEnd`](https://codemirror.net/6/docs/ref/#commands.cursorLineEnd) ([`selectLineEnd`](https://codemirror.net/6/docs/ref/#commands.selectLineEnd) with Shift)\n - Ctrl-d: [`deleteCharForward`](https://codemirror.net/6/docs/ref/#commands.deleteCharForward)\n - Ctrl-h: [`deleteCharBackward`](https://codemirror.net/6/docs/ref/#commands.deleteCharBackward)\n - Ctrl-k: [`deleteToLineEnd`](https://codemirror.net/6/docs/ref/#commands.deleteToLineEnd)\n - Ctrl-Alt-h: [`deleteGroupBackward`](https://codemirror.net/6/docs/ref/#commands.deleteGroupBackward)\n - Ctrl-o: [`splitLine`](https://codemirror.net/6/docs/ref/#commands.splitLine)\n - Ctrl-t: [`transposeChars`](https://codemirror.net/6/docs/ref/#commands.transposeChars)\n - Ctrl-v: [`cursorPageDown`](https://codemirror.net/6/docs/ref/#commands.cursorPageDown)\n - Alt-v: [`cursorPageUp`](https://codemirror.net/6/docs/ref/#commands.cursorPageUp)\n*/\nconst emacsStyleKeymap = [\n { key: \"Ctrl-b\", run: cursorCharLeft, shift: selectCharLeft, preventDefault: true },\n { key: \"Ctrl-f\", run: cursorCharRight, shift: selectCharRight },\n { key: \"Ctrl-p\", run: cursorLineUp, shift: selectLineUp },\n { key: \"Ctrl-n\", run: cursorLineDown, shift: selectLineDown },\n { key: \"Ctrl-a\", run: cursorLineStart, shift: selectLineStart },\n { key: \"Ctrl-e\", run: cursorLineEnd, shift: selectLineEnd },\n { key: \"Ctrl-d\", run: deleteCharForward },\n { key: \"Ctrl-h\", run: deleteCharBackward },\n { key: \"Ctrl-k\", run: deleteToLineEnd },\n { key: \"Ctrl-Alt-h\", run: deleteGroupBackward },\n { key: \"Ctrl-o\", run: splitLine },\n { key: \"Ctrl-t\", run: transposeChars },\n { key: \"Ctrl-v\", run: cursorPageDown },\n];\n/**\nAn array of key bindings closely sticking to platform-standard or\nwidely used bindings. (This includes the bindings from\n[`emacsStyleKeymap`](https://codemirror.net/6/docs/ref/#commands.emacsStyleKeymap), with their `key`\nproperty changed to `mac`.)\n\n - ArrowLeft: [`cursorCharLeft`](https://codemirror.net/6/docs/ref/#commands.cursorCharLeft) ([`selectCharLeft`](https://codemirror.net/6/docs/ref/#commands.selectCharLeft) with Shift)\n - ArrowRight: [`cursorCharRight`](https://codemirror.net/6/docs/ref/#commands.cursorCharRight) ([`selectCharRight`](https://codemirror.net/6/docs/ref/#commands.selectCharRight) with Shift)\n - Ctrl-ArrowLeft (Alt-ArrowLeft on macOS): [`cursorGroupLeft`](https://codemirror.net/6/docs/ref/#commands.cursorGroupLeft) ([`selectGroupLeft`](https://codemirror.net/6/docs/ref/#commands.selectGroupLeft) with Shift)\n - Ctrl-ArrowRight (Alt-ArrowRight on macOS): [`cursorGroupRight`](https://codemirror.net/6/docs/ref/#commands.cursorGroupRight) ([`selectGroupRight`](https://codemirror.net/6/docs/ref/#commands.selectGroupRight) with Shift)\n - Cmd-ArrowLeft (on macOS): [`cursorLineStart`](https://codemirror.net/6/docs/ref/#commands.cursorLineStart) ([`selectLineStart`](https://codemirror.net/6/docs/ref/#commands.selectLineStart) with Shift)\n - Cmd-ArrowRight (on macOS): [`cursorLineEnd`](https://codemirror.net/6/docs/ref/#commands.cursorLineEnd) ([`selectLineEnd`](https://codemirror.net/6/docs/ref/#commands.selectLineEnd) with Shift)\n - ArrowUp: [`cursorLineUp`](https://codemirror.net/6/docs/ref/#commands.cursorLineUp) ([`selectLineUp`](https://codemirror.net/6/docs/ref/#commands.selectLineUp) with Shift)\n - ArrowDown: [`cursorLineDown`](https://codemirror.net/6/docs/ref/#commands.cursorLineDown) ([`selectLineDown`](https://codemirror.net/6/docs/ref/#commands.selectLineDown) with Shift)\n - Cmd-ArrowUp (on macOS): [`cursorDocStart`](https://codemirror.net/6/docs/ref/#commands.cursorDocStart) ([`selectDocStart`](https://codemirror.net/6/docs/ref/#commands.selectDocStart) with Shift)\n - Cmd-ArrowDown (on macOS): [`cursorDocEnd`](https://codemirror.net/6/docs/ref/#commands.cursorDocEnd) ([`selectDocEnd`](https://codemirror.net/6/docs/ref/#commands.selectDocEnd) with Shift)\n - Ctrl-ArrowUp (on macOS): [`cursorPageUp`](https://codemirror.net/6/docs/ref/#commands.cursorPageUp) ([`selectPageUp`](https://codemirror.net/6/docs/ref/#commands.selectPageUp) with Shift)\n - Ctrl-ArrowDown (on macOS): [`cursorPageDown`](https://codemirror.net/6/docs/ref/#commands.cursorPageDown) ([`selectPageDown`](https://codemirror.net/6/docs/ref/#commands.selectPageDown) with Shift)\n - PageUp: [`cursorPageUp`](https://codemirror.net/6/docs/ref/#commands.cursorPageUp) ([`selectPageUp`](https://codemirror.net/6/docs/ref/#commands.selectPageUp) with Shift)\n - PageDown: [`cursorPageDown`](https://codemirror.net/6/docs/ref/#commands.cursorPageDown) ([`selectPageDown`](https://codemirror.net/6/docs/ref/#commands.selectPageDown) with Shift)\n - Home: [`cursorLineBoundaryBackward`](https://codemirror.net/6/docs/ref/#commands.cursorLineBoundaryBackward) ([`selectLineBoundaryBackward`](https://codemirror.net/6/docs/ref/#commands.selectLineBoundaryBackward) with Shift)\n - End: [`cursorLineBoundaryForward`](https://codemirror.net/6/docs/ref/#commands.cursorLineBoundaryForward) ([`selectLineBoundaryForward`](https://codemirror.net/6/docs/ref/#commands.selectLineBoundaryForward) with Shift)\n - Ctrl-Home (Cmd-Home on macOS): [`cursorDocStart`](https://codemirror.net/6/docs/ref/#commands.cursorDocStart) ([`selectDocStart`](https://codemirror.net/6/docs/ref/#commands.selectDocStart) with Shift)\n - Ctrl-End (Cmd-Home on macOS): [`cursorDocEnd`](https://codemirror.net/6/docs/ref/#commands.cursorDocEnd) ([`selectDocEnd`](https://codemirror.net/6/docs/ref/#commands.selectDocEnd) with Shift)\n - Enter: [`insertNewlineAndIndent`](https://codemirror.net/6/docs/ref/#commands.insertNewlineAndIndent)\n - Ctrl-a (Cmd-a on macOS): [`selectAll`](https://codemirror.net/6/docs/ref/#commands.selectAll)\n - Backspace: [`deleteCharBackward`](https://codemirror.net/6/docs/ref/#commands.deleteCharBackward)\n - Delete: [`deleteCharForward`](https://codemirror.net/6/docs/ref/#commands.deleteCharForward)\n - Ctrl-Backspace (Alt-Backspace on macOS): [`deleteGroupBackward`](https://codemirror.net/6/docs/ref/#commands.deleteGroupBackward)\n - Ctrl-Delete (Alt-Delete on macOS): [`deleteGroupForward`](https://codemirror.net/6/docs/ref/#commands.deleteGroupForward)\n - Cmd-Backspace (macOS): [`deleteLineBoundaryBackward`](https://codemirror.net/6/docs/ref/#commands.deleteLineBoundaryBackward).\n - Cmd-Delete (macOS): [`deleteLineBoundaryForward`](https://codemirror.net/6/docs/ref/#commands.deleteLineBoundaryForward).\n*/\nconst standardKeymap = /*@__PURE__*/[\n { key: \"ArrowLeft\", run: cursorCharLeft, shift: selectCharLeft, preventDefault: true },\n { key: \"Mod-ArrowLeft\", mac: \"Alt-ArrowLeft\", run: cursorGroupLeft, shift: selectGroupLeft, preventDefault: true },\n { mac: \"Cmd-ArrowLeft\", run: cursorLineBoundaryLeft, shift: selectLineBoundaryLeft, preventDefault: true },\n { key: \"ArrowRight\", run: cursorCharRight, shift: selectCharRight, preventDefault: true },\n { key: \"Mod-ArrowRight\", mac: \"Alt-ArrowRight\", run: cursorGroupRight, shift: selectGroupRight, preventDefault: true },\n { mac: \"Cmd-ArrowRight\", run: cursorLineBoundaryRight, shift: selectLineBoundaryRight, preventDefault: true },\n { key: \"ArrowUp\", run: cursorLineUp, shift: selectLineUp, preventDefault: true },\n { mac: \"Cmd-ArrowUp\", run: cursorDocStart, shift: selectDocStart },\n { mac: \"Ctrl-ArrowUp\", run: cursorPageUp, shift: selectPageUp },\n { key: \"ArrowDown\", run: cursorLineDown, shift: selectLineDown, preventDefault: true },\n { mac: \"Cmd-ArrowDown\", run: cursorDocEnd, shift: selectDocEnd },\n { mac: \"Ctrl-ArrowDown\", run: cursorPageDown, shift: selectPageDown },\n { key: \"PageUp\", run: cursorPageUp, shift: selectPageUp },\n { key: \"PageDown\", run: cursorPageDown, shift: selectPageDown },\n { key: \"Home\", run: cursorLineBoundaryBackward, shift: selectLineBoundaryBackward, preventDefault: true },\n { key: \"Mod-Home\", run: cursorDocStart, shift: selectDocStart },\n { key: \"End\", run: cursorLineBoundaryForward, shift: selectLineBoundaryForward, preventDefault: true },\n { key: \"Mod-End\", run: cursorDocEnd, shift: selectDocEnd },\n { key: \"Enter\", run: insertNewlineAndIndent },\n { key: \"Mod-a\", run: selectAll },\n { key: \"Backspace\", run: deleteCharBackward, shift: deleteCharBackward },\n { key: \"Delete\", run: deleteCharForward },\n { key: \"Mod-Backspace\", mac: \"Alt-Backspace\", run: deleteGroupBackward },\n { key: \"Mod-Delete\", mac: \"Alt-Delete\", run: deleteGroupForward },\n { mac: \"Mod-Backspace\", run: deleteLineBoundaryBackward },\n { mac: \"Mod-Delete\", run: deleteLineBoundaryForward }\n].concat(/*@__PURE__*/emacsStyleKeymap.map(b => ({ mac: b.key, run: b.run, shift: b.shift })));\n/**\nThe default keymap. Includes all bindings from\n[`standardKeymap`](https://codemirror.net/6/docs/ref/#commands.standardKeymap) plus the following:\n\n- Alt-ArrowLeft (Ctrl-ArrowLeft on macOS): [`cursorSyntaxLeft`](https://codemirror.net/6/docs/ref/#commands.cursorSyntaxLeft) ([`selectSyntaxLeft`](https://codemirror.net/6/docs/ref/#commands.selectSyntaxLeft) with Shift)\n- Alt-ArrowRight (Ctrl-ArrowRight on macOS): [`cursorSyntaxRight`](https://codemirror.net/6/docs/ref/#commands.cursorSyntaxRight) ([`selectSyntaxRight`](https://codemirror.net/6/docs/ref/#commands.selectSyntaxRight) with Shift)\n- Alt-ArrowUp: [`moveLineUp`](https://codemirror.net/6/docs/ref/#commands.moveLineUp)\n- Alt-ArrowDown: [`moveLineDown`](https://codemirror.net/6/docs/ref/#commands.moveLineDown)\n- Shift-Alt-ArrowUp: [`copyLineUp`](https://codemirror.net/6/docs/ref/#commands.copyLineUp)\n- Shift-Alt-ArrowDown: [`copyLineDown`](https://codemirror.net/6/docs/ref/#commands.copyLineDown)\n- Escape: [`simplifySelection`](https://codemirror.net/6/docs/ref/#commands.simplifySelection)\n- Ctrl-Enter (Cmd-Enter on macOS): [`insertBlankLine`](https://codemirror.net/6/docs/ref/#commands.insertBlankLine)\n- Alt-l (Ctrl-l on macOS): [`selectLine`](https://codemirror.net/6/docs/ref/#commands.selectLine)\n- Ctrl-i (Cmd-i on macOS): [`selectParentSyntax`](https://codemirror.net/6/docs/ref/#commands.selectParentSyntax)\n- Ctrl-[ (Cmd-[ on macOS): [`indentLess`](https://codemirror.net/6/docs/ref/#commands.indentLess)\n- Ctrl-] (Cmd-] on macOS): [`indentMore`](https://codemirror.net/6/docs/ref/#commands.indentMore)\n- Ctrl-Alt-\\\\ (Cmd-Alt-\\\\ on macOS): [`indentSelection`](https://codemirror.net/6/docs/ref/#commands.indentSelection)\n- Shift-Ctrl-k (Shift-Cmd-k on macOS): [`deleteLine`](https://codemirror.net/6/docs/ref/#commands.deleteLine)\n- Shift-Ctrl-\\\\ (Shift-Cmd-\\\\ on macOS): [`cursorMatchingBracket`](https://codemirror.net/6/docs/ref/#commands.cursorMatchingBracket)\n- Ctrl-/ (Cmd-/ on macOS): [`toggleComment`](https://codemirror.net/6/docs/ref/#commands.toggleComment).\n- Shift-Alt-a: [`toggleBlockComment`](https://codemirror.net/6/docs/ref/#commands.toggleBlockComment).\n- Ctrl-m (Alt-Shift-m on macOS): [`toggleTabFocusMode`](https://codemirror.net/6/docs/ref/#commands.toggleTabFocusMode).\n*/\nconst defaultKeymap = /*@__PURE__*/[\n { key: \"Alt-ArrowLeft\", mac: \"Ctrl-ArrowLeft\", run: cursorSyntaxLeft, shift: selectSyntaxLeft },\n { key: \"Alt-ArrowRight\", mac: \"Ctrl-ArrowRight\", run: cursorSyntaxRight, shift: selectSyntaxRight },\n { key: \"Alt-ArrowUp\", run: moveLineUp },\n { key: \"Shift-Alt-ArrowUp\", run: copyLineUp },\n { key: \"Alt-ArrowDown\", run: moveLineDown },\n { key: \"Shift-Alt-ArrowDown\", run: copyLineDown },\n { key: \"Escape\", run: simplifySelection },\n { key: \"Mod-Enter\", run: insertBlankLine },\n { key: \"Alt-l\", mac: \"Ctrl-l\", run: selectLine },\n { key: \"Mod-i\", run: selectParentSyntax, preventDefault: true },\n { key: \"Mod-[\", run: indentLess },\n { key: \"Mod-]\", run: indentMore },\n { key: \"Mod-Alt-\\\\\", run: indentSelection },\n { key: \"Shift-Mod-k\", run: deleteLine },\n { key: \"Shift-Mod-\\\\\", run: cursorMatchingBracket },\n { key: \"Mod-/\", run: toggleComment },\n { key: \"Alt-A\", run: toggleBlockComment },\n { key: \"Ctrl-m\", mac: \"Shift-Alt-m\", run: toggleTabFocusMode },\n].concat(standardKeymap);\n/**\nA binding that binds Tab to [`indentMore`](https://codemirror.net/6/docs/ref/#commands.indentMore) and\nShift-Tab to [`indentLess`](https://codemirror.net/6/docs/ref/#commands.indentLess).\nPlease see the [Tab example](../../examples/tab/) before using\nthis.\n*/\nconst indentWithTab = { key: \"Tab\", run: indentMore, shift: indentLess };\n\nexport { blockComment, blockUncomment, copyLineDown, copyLineUp, cursorCharBackward, cursorCharForward, cursorCharLeft, cursorCharRight, cursorDocEnd, cursorDocStart, cursorGroupBackward, cursorGroupForward, cursorGroupLeft, cursorGroupRight, cursorLineBoundaryBackward, cursorLineBoundaryForward, cursorLineBoundaryLeft, cursorLineBoundaryRight, cursorLineDown, cursorLineEnd, cursorLineStart, cursorLineUp, cursorMatchingBracket, cursorPageDown, cursorPageUp, cursorSubwordBackward, cursorSubwordForward, cursorSyntaxLeft, cursorSyntaxRight, defaultKeymap, deleteCharBackward, deleteCharBackwardStrict, deleteCharForward, deleteGroupBackward, deleteGroupForward, deleteLine, deleteLineBoundaryBackward, deleteLineBoundaryForward, deleteToLineEnd, deleteToLineStart, deleteTrailingWhitespace, emacsStyleKeymap, history, historyField, historyKeymap, indentLess, indentMore, indentSelection, indentWithTab, insertBlankLine, insertNewline, insertNewlineAndIndent, insertNewlineKeepIndent, insertTab, invertedEffects, isolateHistory, lineComment, lineUncomment, moveLineDown, moveLineUp, redo, redoDepth, redoSelection, selectAll, selectCharBackward, selectCharForward, selectCharLeft, selectCharRight, selectDocEnd, selectDocStart, selectGroupBackward, selectGroupForward, selectGroupLeft, selectGroupRight, selectLine, selectLineBoundaryBackward, selectLineBoundaryForward, selectLineBoundaryLeft, selectLineBoundaryRight, selectLineDown, selectLineEnd, selectLineStart, selectLineUp, selectMatchingBracket, selectPageDown, selectPageUp, selectParentSyntax, selectSubwordBackward, selectSubwordForward, selectSyntaxLeft, selectSyntaxRight, simplifySelection, splitLine, standardKeymap, temporarilySetTabFocusMode, toggleBlockComment, toggleBlockCommentByLine, toggleComment, toggleLineComment, toggleTabFocusMode, transposeChars, undo, undoDepth, undoSelection };\n","export default function crelt() {\n var elt = arguments[0]\n if (typeof elt == \"string\") elt = document.createElement(elt)\n var i = 1, next = arguments[1]\n if (next && typeof next == \"object\" && next.nodeType == null && !Array.isArray(next)) {\n for (var name in next) if (Object.prototype.hasOwnProperty.call(next, name)) {\n var value = next[name]\n if (typeof value == \"string\") elt.setAttribute(name, value)\n else if (value != null) elt[name] = value\n }\n i++\n }\n for (; i < arguments.length; i++) add(elt, arguments[i])\n return elt\n}\n\nfunction add(elt, child) {\n if (typeof child == \"string\") {\n elt.appendChild(document.createTextNode(child))\n } else if (child == null) {\n } else if (child.nodeType != null) {\n elt.appendChild(child)\n } else if (Array.isArray(child)) {\n for (var i = 0; i < child.length; i++) add(elt, child[i])\n } else {\n throw new RangeError(\"Unsupported child node: \" + child)\n }\n}\n","import { showPanel, EditorView, getPanel, Decoration, ViewPlugin, runScopeHandlers } from '@codemirror/view';\nimport { codePointAt, fromCodePoint, codePointSize, StateEffect, StateField, EditorSelection, Facet, combineConfig, CharCategory, RangeSetBuilder, Prec, EditorState, findClusterBreak } from '@codemirror/state';\nimport elt from 'crelt';\n\nconst basicNormalize = typeof String.prototype.normalize == \"function\"\n ? x => x.normalize(\"NFKD\") : x => x;\n/**\nA search cursor provides an iterator over text matches in a\ndocument.\n*/\nclass SearchCursor {\n /**\n Create a text cursor. The query is the search string, `from` to\n `to` provides the region to search.\n \n When `normalize` is given, it will be called, on both the query\n string and the content it is matched against, before comparing.\n You can, for example, create a case-insensitive search by\n passing `s => s.toLowerCase()`.\n \n Text is always normalized with\n [`.normalize(\"NFKD\")`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/normalize)\n (when supported).\n */\n constructor(text, query, from = 0, to = text.length, normalize, test) {\n this.test = test;\n /**\n The current match (only holds a meaningful value after\n [`next`](https://codemirror.net/6/docs/ref/#search.SearchCursor.next) has been called and when\n `done` is false).\n */\n this.value = { from: 0, to: 0 };\n /**\n Whether the end of the iterated region has been reached.\n */\n this.done = false;\n this.matches = [];\n this.buffer = \"\";\n this.bufferPos = 0;\n this.iter = text.iterRange(from, to);\n this.bufferStart = from;\n this.normalize = normalize ? x => normalize(basicNormalize(x)) : basicNormalize;\n this.query = this.normalize(query);\n }\n peek() {\n if (this.bufferPos == this.buffer.length) {\n this.bufferStart += this.buffer.length;\n this.iter.next();\n if (this.iter.done)\n return -1;\n this.bufferPos = 0;\n this.buffer = this.iter.value;\n }\n return codePointAt(this.buffer, this.bufferPos);\n }\n /**\n Look for the next match. Updates the iterator's\n [`value`](https://codemirror.net/6/docs/ref/#search.SearchCursor.value) and\n [`done`](https://codemirror.net/6/docs/ref/#search.SearchCursor.done) properties. Should be called\n at least once before using the cursor.\n */\n next() {\n while (this.matches.length)\n this.matches.pop();\n return this.nextOverlapping();\n }\n /**\n The `next` method will ignore matches that partially overlap a\n previous match. This method behaves like `next`, but includes\n such matches.\n */\n nextOverlapping() {\n for (;;) {\n let next = this.peek();\n if (next < 0) {\n this.done = true;\n return this;\n }\n let str = fromCodePoint(next), start = this.bufferStart + this.bufferPos;\n this.bufferPos += codePointSize(next);\n let norm = this.normalize(str);\n for (let i = 0, pos = start;; i++) {\n let code = norm.charCodeAt(i);\n let match = this.match(code, pos, this.bufferPos + this.bufferStart);\n if (i == norm.length - 1) {\n if (match) {\n this.value = match;\n return this;\n }\n break;\n }\n if (pos == start && i < str.length && str.charCodeAt(i) == code)\n pos++;\n }\n }\n }\n match(code, pos, end) {\n let match = null;\n for (let i = 0; i < this.matches.length; i += 2) {\n let index = this.matches[i], keep = false;\n if (this.query.charCodeAt(index) == code) {\n if (index == this.query.length - 1) {\n match = { from: this.matches[i + 1], to: end };\n }\n else {\n this.matches[i]++;\n keep = true;\n }\n }\n if (!keep) {\n this.matches.splice(i, 2);\n i -= 2;\n }\n }\n if (this.query.charCodeAt(0) == code) {\n if (this.query.length == 1)\n match = { from: pos, to: end };\n else\n this.matches.push(1, pos);\n }\n if (match && this.test && !this.test(match.from, match.to, this.buffer, this.bufferStart))\n match = null;\n return match;\n }\n}\nif (typeof Symbol != \"undefined\")\n SearchCursor.prototype[Symbol.iterator] = function () { return this; };\n\nconst empty = { from: -1, to: -1, match: /*@__PURE__*//.*/.exec(\"\") };\nconst baseFlags = \"gm\" + (/x/.unicode == null ? \"\" : \"u\");\n/**\nThis class is similar to [`SearchCursor`](https://codemirror.net/6/docs/ref/#search.SearchCursor)\nbut searches for a regular expression pattern instead of a plain\nstring.\n*/\nclass RegExpCursor {\n /**\n Create a cursor that will search the given range in the given\n document. `query` should be the raw pattern (as you'd pass it to\n `new RegExp`).\n */\n constructor(text, query, options, from = 0, to = text.length) {\n this.text = text;\n this.to = to;\n this.curLine = \"\";\n /**\n Set to `true` when the cursor has reached the end of the search\n range.\n */\n this.done = false;\n /**\n Will contain an object with the extent of the match and the\n match object when [`next`](https://codemirror.net/6/docs/ref/#search.RegExpCursor.next)\n sucessfully finds a match.\n */\n this.value = empty;\n if (/\\\\[sWDnr]|\\n|\\r|\\[\\^/.test(query))\n return new MultilineRegExpCursor(text, query, options, from, to);\n this.re = new RegExp(query, baseFlags + ((options === null || options === void 0 ? void 0 : options.ignoreCase) ? \"i\" : \"\"));\n this.test = options === null || options === void 0 ? void 0 : options.test;\n this.iter = text.iter();\n let startLine = text.lineAt(from);\n this.curLineStart = startLine.from;\n this.matchPos = toCharEnd(text, from);\n this.getLine(this.curLineStart);\n }\n getLine(skip) {\n this.iter.next(skip);\n if (this.iter.lineBreak) {\n this.curLine = \"\";\n }\n else {\n this.curLine = this.iter.value;\n if (this.curLineStart + this.curLine.length > this.to)\n this.curLine = this.curLine.slice(0, this.to - this.curLineStart);\n this.iter.next();\n }\n }\n nextLine() {\n this.curLineStart = this.curLineStart + this.curLine.length + 1;\n if (this.curLineStart > this.to)\n this.curLine = \"\";\n else\n this.getLine(0);\n }\n /**\n Move to the next match, if there is one.\n */\n next() {\n for (let off = this.matchPos - this.curLineStart;;) {\n this.re.lastIndex = off;\n let match = this.matchPos <= this.to && this.re.exec(this.curLine);\n if (match) {\n let from = this.curLineStart + match.index, to = from + match[0].length;\n this.matchPos = toCharEnd(this.text, to + (from == to ? 1 : 0));\n if (from == this.curLineStart + this.curLine.length)\n this.nextLine();\n if ((from < to || from > this.value.to) && (!this.test || this.test(from, to, match))) {\n this.value = { from, to, match };\n return this;\n }\n off = this.matchPos - this.curLineStart;\n }\n else if (this.curLineStart + this.curLine.length < this.to) {\n this.nextLine();\n off = 0;\n }\n else {\n this.done = true;\n return this;\n }\n }\n }\n}\nconst flattened = /*@__PURE__*/new WeakMap();\n// Reusable (partially) flattened document strings\nclass FlattenedDoc {\n constructor(from, text) {\n this.from = from;\n this.text = text;\n }\n get to() { return this.from + this.text.length; }\n static get(doc, from, to) {\n let cached = flattened.get(doc);\n if (!cached || cached.from >= to || cached.to <= from) {\n let flat = new FlattenedDoc(from, doc.sliceString(from, to));\n flattened.set(doc, flat);\n return flat;\n }\n if (cached.from == from && cached.to == to)\n return cached;\n let { text, from: cachedFrom } = cached;\n if (cachedFrom > from) {\n text = doc.sliceString(from, cachedFrom) + text;\n cachedFrom = from;\n }\n if (cached.to < to)\n text += doc.sliceString(cached.to, to);\n flattened.set(doc, new FlattenedDoc(cachedFrom, text));\n return new FlattenedDoc(from, text.slice(from - cachedFrom, to - cachedFrom));\n }\n}\nclass MultilineRegExpCursor {\n constructor(text, query, options, from, to) {\n this.text = text;\n this.to = to;\n this.done = false;\n this.value = empty;\n this.matchPos = toCharEnd(text, from);\n this.re = new RegExp(query, baseFlags + ((options === null || options === void 0 ? void 0 : options.ignoreCase) ? \"i\" : \"\"));\n this.test = options === null || options === void 0 ? void 0 : options.test;\n this.flat = FlattenedDoc.get(text, from, this.chunkEnd(from + 5000 /* Chunk.Base */));\n }\n chunkEnd(pos) {\n return pos >= this.to ? this.to : this.text.lineAt(pos).to;\n }\n next() {\n for (;;) {\n let off = this.re.lastIndex = this.matchPos - this.flat.from;\n let match = this.re.exec(this.flat.text);\n // Skip empty matches directly after the last match\n if (match && !match[0] && match.index == off) {\n this.re.lastIndex = off + 1;\n match = this.re.exec(this.flat.text);\n }\n if (match) {\n let from = this.flat.from + match.index, to = from + match[0].length;\n // If a match goes almost to the end of a noncomplete chunk, try\n // again, since it'll likely be able to match more\n if ((this.flat.to >= this.to || match.index + match[0].length <= this.flat.text.length - 10) &&\n (!this.test || this.test(from, to, match))) {\n this.value = { from, to, match };\n this.matchPos = toCharEnd(this.text, to + (from == to ? 1 : 0));\n return this;\n }\n }\n if (this.flat.to == this.to) {\n this.done = true;\n return this;\n }\n // Grow the flattened doc\n this.flat = FlattenedDoc.get(this.text, this.flat.from, this.chunkEnd(this.flat.from + this.flat.text.length * 2));\n }\n }\n}\nif (typeof Symbol != \"undefined\") {\n RegExpCursor.prototype[Symbol.iterator] = MultilineRegExpCursor.prototype[Symbol.iterator] =\n function () { return this; };\n}\nfunction validRegExp(source) {\n try {\n new RegExp(source, baseFlags);\n return true;\n }\n catch (_a) {\n return false;\n }\n}\nfunction toCharEnd(text, pos) {\n if (pos >= text.length)\n return pos;\n let line = text.lineAt(pos), next;\n while (pos < line.to && (next = line.text.charCodeAt(pos - line.from)) >= 0xDC00 && next < 0xE000)\n pos++;\n return pos;\n}\n\nfunction createLineDialog(view) {\n let line = String(view.state.doc.lineAt(view.state.selection.main.head).number);\n let input = elt(\"input\", { class: \"cm-textfield\", name: \"line\", value: line });\n let dom = elt(\"form\", {\n class: \"cm-gotoLine\",\n onkeydown: (event) => {\n if (event.keyCode == 27) { // Escape\n event.preventDefault();\n view.dispatch({ effects: dialogEffect.of(false) });\n view.focus();\n }\n else if (event.keyCode == 13) { // Enter\n event.preventDefault();\n go();\n }\n },\n onsubmit: (event) => {\n event.preventDefault();\n go();\n }\n }, elt(\"label\", view.state.phrase(\"Go to line\"), \": \", input), \" \", elt(\"button\", { class: \"cm-button\", type: \"submit\" }, view.state.phrase(\"go\")));\n function go() {\n let match = /^([+-])?(\\d+)?(:\\d+)?(%)?$/.exec(input.value);\n if (!match)\n return;\n let { state } = view, startLine = state.doc.lineAt(state.selection.main.head);\n let [, sign, ln, cl, percent] = match;\n let col = cl ? +cl.slice(1) : 0;\n let line = ln ? +ln : startLine.number;\n if (ln && percent) {\n let pc = line / 100;\n if (sign)\n pc = pc * (sign == \"-\" ? -1 : 1) + (startLine.number / state.doc.lines);\n line = Math.round(state.doc.lines * pc);\n }\n else if (ln && sign) {\n line = line * (sign == \"-\" ? -1 : 1) + startLine.number;\n }\n let docLine = state.doc.line(Math.max(1, Math.min(state.doc.lines, line)));\n let selection = EditorSelection.cursor(docLine.from + Math.max(0, Math.min(col, docLine.length)));\n view.dispatch({\n effects: [dialogEffect.of(false), EditorView.scrollIntoView(selection.from, { y: 'center' })],\n selection,\n });\n view.focus();\n }\n return { dom };\n}\nconst dialogEffect = /*@__PURE__*/StateEffect.define();\nconst dialogField = /*@__PURE__*/StateField.define({\n create() { return true; },\n update(value, tr) {\n for (let e of tr.effects)\n if (e.is(dialogEffect))\n value = e.value;\n return value;\n },\n provide: f => showPanel.from(f, val => val ? createLineDialog : null)\n});\n/**\nCommand that shows a dialog asking the user for a line number, and\nwhen a valid position is provided, moves the cursor to that line.\n\nSupports line numbers, relative line offsets prefixed with `+` or\n`-`, document percentages suffixed with `%`, and an optional\ncolumn position by adding `:` and a second number after the line\nnumber.\n*/\nconst gotoLine = view => {\n let panel = getPanel(view, createLineDialog);\n if (!panel) {\n let effects = [dialogEffect.of(true)];\n if (view.state.field(dialogField, false) == null)\n effects.push(StateEffect.appendConfig.of([dialogField, baseTheme$1]));\n view.dispatch({ effects });\n panel = getPanel(view, createLineDialog);\n }\n if (panel)\n panel.dom.querySelector(\"input\").select();\n return true;\n};\nconst baseTheme$1 = /*@__PURE__*/EditorView.baseTheme({\n \".cm-panel.cm-gotoLine\": {\n padding: \"2px 6px 4px\",\n \"& label\": { fontSize: \"80%\" }\n }\n});\n\nconst defaultHighlightOptions = {\n highlightWordAroundCursor: false,\n minSelectionLength: 1,\n maxMatches: 100,\n wholeWords: false\n};\nconst highlightConfig = /*@__PURE__*/Facet.define({\n combine(options) {\n return combineConfig(options, defaultHighlightOptions, {\n highlightWordAroundCursor: (a, b) => a || b,\n minSelectionLength: Math.min,\n maxMatches: Math.min\n });\n }\n});\n/**\nThis extension highlights text that matches the selection. It uses\nthe `\"cm-selectionMatch\"` class for the highlighting. When\n`highlightWordAroundCursor` is enabled, the word at the cursor\nitself will be highlighted with `\"cm-selectionMatch-main\"`.\n*/\nfunction highlightSelectionMatches(options) {\n let ext = [defaultTheme, matchHighlighter];\n if (options)\n ext.push(highlightConfig.of(options));\n return ext;\n}\nconst matchDeco = /*@__PURE__*/Decoration.mark({ class: \"cm-selectionMatch\" });\nconst mainMatchDeco = /*@__PURE__*/Decoration.mark({ class: \"cm-selectionMatch cm-selectionMatch-main\" });\n// Whether the characters directly outside the given positions are non-word characters\nfunction insideWordBoundaries(check, state, from, to) {\n return (from == 0 || check(state.sliceDoc(from - 1, from)) != CharCategory.Word) &&\n (to == state.doc.length || check(state.sliceDoc(to, to + 1)) != CharCategory.Word);\n}\n// Whether the characters directly at the given positions are word characters\nfunction insideWord(check, state, from, to) {\n return check(state.sliceDoc(from, from + 1)) == CharCategory.Word\n && check(state.sliceDoc(to - 1, to)) == CharCategory.Word;\n}\nconst matchHighlighter = /*@__PURE__*/ViewPlugin.fromClass(class {\n constructor(view) {\n this.decorations = this.getDeco(view);\n }\n update(update) {\n if (update.selectionSet || update.docChanged || update.viewportChanged)\n this.decorations = this.getDeco(update.view);\n }\n getDeco(view) {\n let conf = view.state.facet(highlightConfig);\n let { state } = view, sel = state.selection;\n if (sel.ranges.length > 1)\n return Decoration.none;\n let range = sel.main, query, check = null;\n if (range.empty) {\n if (!conf.highlightWordAroundCursor)\n return Decoration.none;\n let word = state.wordAt(range.head);\n if (!word)\n return Decoration.none;\n check = state.charCategorizer(range.head);\n query = state.sliceDoc(word.from, word.to);\n }\n else {\n let len = range.to - range.from;\n if (len < conf.minSelectionLength || len > 200)\n return Decoration.none;\n if (conf.wholeWords) {\n query = state.sliceDoc(range.from, range.to); // TODO: allow and include leading/trailing space?\n check = state.charCategorizer(range.head);\n if (!(insideWordBoundaries(check, state, range.from, range.to) &&\n insideWord(check, state, range.from, range.to)))\n return Decoration.none;\n }\n else {\n query = state.sliceDoc(range.from, range.to);\n if (!query)\n return Decoration.none;\n }\n }\n let deco = [];\n for (let part of view.visibleRanges) {\n let cursor = new SearchCursor(state.doc, query, part.from, part.to);\n while (!cursor.next().done) {\n let { from, to } = cursor.value;\n if (!check || insideWordBoundaries(check, state, from, to)) {\n if (range.empty && from <= range.from && to >= range.to)\n deco.push(mainMatchDeco.range(from, to));\n else if (from >= range.to || to <= range.from)\n deco.push(matchDeco.range(from, to));\n if (deco.length > conf.maxMatches)\n return Decoration.none;\n }\n }\n }\n return Decoration.set(deco);\n }\n}, {\n decorations: v => v.decorations\n});\nconst defaultTheme = /*@__PURE__*/EditorView.baseTheme({\n \".cm-selectionMatch\": { backgroundColor: \"#99ff7780\" },\n \".cm-searchMatch .cm-selectionMatch\": { backgroundColor: \"transparent\" }\n});\n// Select the words around the cursors.\nconst selectWord = ({ state, dispatch }) => {\n let { selection } = state;\n let newSel = EditorSelection.create(selection.ranges.map(range => state.wordAt(range.head) || EditorSelection.cursor(range.head)), selection.mainIndex);\n if (newSel.eq(selection))\n return false;\n dispatch(state.update({ selection: newSel }));\n return true;\n};\n// Find next occurrence of query relative to last cursor. Wrap around\n// the document if there are no more matches.\nfunction findNextOccurrence(state, query) {\n let { main, ranges } = state.selection;\n let word = state.wordAt(main.head), fullWord = word && word.from == main.from && word.to == main.to;\n for (let cycled = false, cursor = new SearchCursor(state.doc, query, ranges[ranges.length - 1].to);;) {\n cursor.next();\n if (cursor.done) {\n if (cycled)\n return null;\n cursor = new SearchCursor(state.doc, query, 0, Math.max(0, ranges[ranges.length - 1].from - 1));\n cycled = true;\n }\n else {\n if (cycled && ranges.some(r => r.from == cursor.value.from))\n continue;\n if (fullWord) {\n let word = state.wordAt(cursor.value.from);\n if (!word || word.from != cursor.value.from || word.to != cursor.value.to)\n continue;\n }\n return cursor.value;\n }\n }\n}\n/**\nSelect next occurrence of the current selection. Expand selection\nto the surrounding word when the selection is empty.\n*/\nconst selectNextOccurrence = ({ state, dispatch }) => {\n let { ranges } = state.selection;\n if (ranges.some(sel => sel.from === sel.to))\n return selectWord({ state, dispatch });\n let searchedText = state.sliceDoc(ranges[0].from, ranges[0].to);\n if (state.selection.ranges.some(r => state.sliceDoc(r.from, r.to) != searchedText))\n return false;\n let range = findNextOccurrence(state, searchedText);\n if (!range)\n return false;\n dispatch(state.update({\n selection: state.selection.addRange(EditorSelection.range(range.from, range.to), false),\n effects: EditorView.scrollIntoView(range.to)\n }));\n return true;\n};\n\nconst searchConfigFacet = /*@__PURE__*/Facet.define({\n combine(configs) {\n return combineConfig(configs, {\n top: false,\n caseSensitive: false,\n literal: false,\n regexp: false,\n wholeWord: false,\n createPanel: view => new SearchPanel(view),\n scrollToMatch: range => EditorView.scrollIntoView(range)\n });\n }\n});\n/**\nAdd search state to the editor configuration, and optionally\nconfigure the search extension.\n([`openSearchPanel`](https://codemirror.net/6/docs/ref/#search.openSearchPanel) will automatically\nenable this if it isn't already on).\n*/\nfunction search(config) {\n return config ? [searchConfigFacet.of(config), searchExtensions] : searchExtensions;\n}\n/**\nA search query. Part of the editor's search state.\n*/\nclass SearchQuery {\n /**\n Create a query object.\n */\n constructor(config) {\n this.search = config.search;\n this.caseSensitive = !!config.caseSensitive;\n this.literal = !!config.literal;\n this.regexp = !!config.regexp;\n this.replace = config.replace || \"\";\n this.valid = !!this.search && (!this.regexp || validRegExp(this.search));\n this.unquoted = this.unquote(this.search);\n this.wholeWord = !!config.wholeWord;\n }\n /**\n @internal\n */\n unquote(text) {\n return this.literal ? text :\n text.replace(/\\\\([nrt\\\\])/g, (_, ch) => ch == \"n\" ? \"\\n\" : ch == \"r\" ? \"\\r\" : ch == \"t\" ? \"\\t\" : \"\\\\\");\n }\n /**\n Compare this query to another query.\n */\n eq(other) {\n return this.search == other.search && this.replace == other.replace &&\n this.caseSensitive == other.caseSensitive && this.regexp == other.regexp &&\n this.wholeWord == other.wholeWord;\n }\n /**\n @internal\n */\n create() {\n return this.regexp ? new RegExpQuery(this) : new StringQuery(this);\n }\n /**\n Get a search cursor for this query, searching through the given\n range in the given state.\n */\n getCursor(state, from = 0, to) {\n let st = state.doc ? state : EditorState.create({ doc: state });\n if (to == null)\n to = st.doc.length;\n return this.regexp ? regexpCursor(this, st, from, to) : stringCursor(this, st, from, to);\n }\n}\nclass QueryType {\n constructor(spec) {\n this.spec = spec;\n }\n}\nfunction stringCursor(spec, state, from, to) {\n return new SearchCursor(state.doc, spec.unquoted, from, to, spec.caseSensitive ? undefined : x => x.toLowerCase(), spec.wholeWord ? stringWordTest(state.doc, state.charCategorizer(state.selection.main.head)) : undefined);\n}\nfunction stringWordTest(doc, categorizer) {\n return (from, to, buf, bufPos) => {\n if (bufPos > from || bufPos + buf.length < to) {\n bufPos = Math.max(0, from - 2);\n buf = doc.sliceString(bufPos, Math.min(doc.length, to + 2));\n }\n return (categorizer(charBefore(buf, from - bufPos)) != CharCategory.Word ||\n categorizer(charAfter(buf, from - bufPos)) != CharCategory.Word) &&\n (categorizer(charAfter(buf, to - bufPos)) != CharCategory.Word ||\n categorizer(charBefore(buf, to - bufPos)) != CharCategory.Word);\n };\n}\nclass StringQuery extends QueryType {\n constructor(spec) {\n super(spec);\n }\n nextMatch(state, curFrom, curTo) {\n let cursor = stringCursor(this.spec, state, curTo, state.doc.length).nextOverlapping();\n if (cursor.done)\n cursor = stringCursor(this.spec, state, 0, curFrom).nextOverlapping();\n return cursor.done ? null : cursor.value;\n }\n // Searching in reverse is, rather than implementing an inverted search\n // cursor, done by scanning chunk after chunk forward.\n prevMatchInRange(state, from, to) {\n for (let pos = to;;) {\n let start = Math.max(from, pos - 10000 /* FindPrev.ChunkSize */ - this.spec.unquoted.length);\n let cursor = stringCursor(this.spec, state, start, pos), range = null;\n while (!cursor.nextOverlapping().done)\n range = cursor.value;\n if (range)\n return range;\n if (start == from)\n return null;\n pos -= 10000 /* FindPrev.ChunkSize */;\n }\n }\n prevMatch(state, curFrom, curTo) {\n return this.prevMatchInRange(state, 0, curFrom) ||\n this.prevMatchInRange(state, curTo, state.doc.length);\n }\n getReplacement(_result) { return this.spec.unquote(this.spec.replace); }\n matchAll(state, limit) {\n let cursor = stringCursor(this.spec, state, 0, state.doc.length), ranges = [];\n while (!cursor.next().done) {\n if (ranges.length >= limit)\n return null;\n ranges.push(cursor.value);\n }\n return ranges;\n }\n highlight(state, from, to, add) {\n let cursor = stringCursor(this.spec, state, Math.max(0, from - this.spec.unquoted.length), Math.min(to + this.spec.unquoted.length, state.doc.length));\n while (!cursor.next().done)\n add(cursor.value.from, cursor.value.to);\n }\n}\nfunction regexpCursor(spec, state, from, to) {\n return new RegExpCursor(state.doc, spec.search, {\n ignoreCase: !spec.caseSensitive,\n test: spec.wholeWord ? regexpWordTest(state.charCategorizer(state.selection.main.head)) : undefined\n }, from, to);\n}\nfunction charBefore(str, index) {\n return str.slice(findClusterBreak(str, index, false), index);\n}\nfunction charAfter(str, index) {\n return str.slice(index, findClusterBreak(str, index));\n}\nfunction regexpWordTest(categorizer) {\n return (_from, _to, match) => !match[0].length ||\n (categorizer(charBefore(match.input, match.index)) != CharCategory.Word ||\n categorizer(charAfter(match.input, match.index)) != CharCategory.Word) &&\n (categorizer(charAfter(match.input, match.index + match[0].length)) != CharCategory.Word ||\n categorizer(charBefore(match.input, match.index + match[0].length)) != CharCategory.Word);\n}\nclass RegExpQuery extends QueryType {\n nextMatch(state, curFrom, curTo) {\n let cursor = regexpCursor(this.spec, state, curTo, state.doc.length).next();\n if (cursor.done)\n cursor = regexpCursor(this.spec, state, 0, curFrom).next();\n return cursor.done ? null : cursor.value;\n }\n prevMatchInRange(state, from, to) {\n for (let size = 1;; size++) {\n let start = Math.max(from, to - size * 10000 /* FindPrev.ChunkSize */);\n let cursor = regexpCursor(this.spec, state, start, to), range = null;\n while (!cursor.next().done)\n range = cursor.value;\n if (range && (start == from || range.from > start + 10))\n return range;\n if (start == from)\n return null;\n }\n }\n prevMatch(state, curFrom, curTo) {\n return this.prevMatchInRange(state, 0, curFrom) ||\n this.prevMatchInRange(state, curTo, state.doc.length);\n }\n getReplacement(result) {\n return this.spec.unquote(this.spec.replace).replace(/\\$([$&\\d+])/g, (m, i) => i == \"$\" ? \"$\"\n : i == \"&\" ? result.match[0]\n : i != \"0\" && +i < result.match.length ? result.match[i]\n : m);\n }\n matchAll(state, limit) {\n let cursor = regexpCursor(this.spec, state, 0, state.doc.length), ranges = [];\n while (!cursor.next().done) {\n if (ranges.length >= limit)\n return null;\n ranges.push(cursor.value);\n }\n return ranges;\n }\n highlight(state, from, to, add) {\n let cursor = regexpCursor(this.spec, state, Math.max(0, from - 250 /* RegExp.HighlightMargin */), Math.min(to + 250 /* RegExp.HighlightMargin */, state.doc.length));\n while (!cursor.next().done)\n add(cursor.value.from, cursor.value.to);\n }\n}\n/**\nA state effect that updates the current search query. Note that\nthis only has an effect if the search state has been initialized\n(by including [`search`](https://codemirror.net/6/docs/ref/#search.search) in your configuration or\nby running [`openSearchPanel`](https://codemirror.net/6/docs/ref/#search.openSearchPanel) at least\nonce).\n*/\nconst setSearchQuery = /*@__PURE__*/StateEffect.define();\nconst togglePanel = /*@__PURE__*/StateEffect.define();\nconst searchState = /*@__PURE__*/StateField.define({\n create(state) {\n return new SearchState(defaultQuery(state).create(), null);\n },\n update(value, tr) {\n for (let effect of tr.effects) {\n if (effect.is(setSearchQuery))\n value = new SearchState(effect.value.create(), value.panel);\n else if (effect.is(togglePanel))\n value = new SearchState(value.query, effect.value ? createSearchPanel : null);\n }\n return value;\n },\n provide: f => showPanel.from(f, val => val.panel)\n});\n/**\nGet the current search query from an editor state.\n*/\nfunction getSearchQuery(state) {\n let curState = state.field(searchState, false);\n return curState ? curState.query.spec : defaultQuery(state);\n}\n/**\nQuery whether the search panel is open in the given editor state.\n*/\nfunction searchPanelOpen(state) {\n var _a;\n return ((_a = state.field(searchState, false)) === null || _a === void 0 ? void 0 : _a.panel) != null;\n}\nclass SearchState {\n constructor(query, panel) {\n this.query = query;\n this.panel = panel;\n }\n}\nconst matchMark = /*@__PURE__*/Decoration.mark({ class: \"cm-searchMatch\" }), selectedMatchMark = /*@__PURE__*/Decoration.mark({ class: \"cm-searchMatch cm-searchMatch-selected\" });\nconst searchHighlighter = /*@__PURE__*/ViewPlugin.fromClass(class {\n constructor(view) {\n this.view = view;\n this.decorations = this.highlight(view.state.field(searchState));\n }\n update(update) {\n let state = update.state.field(searchState);\n if (state != update.startState.field(searchState) || update.docChanged || update.selectionSet || update.viewportChanged)\n this.decorations = this.highlight(state);\n }\n highlight({ query, panel }) {\n if (!panel || !query.spec.valid)\n return Decoration.none;\n let { view } = this;\n let builder = new RangeSetBuilder();\n for (let i = 0, ranges = view.visibleRanges, l = ranges.length; i < l; i++) {\n let { from, to } = ranges[i];\n while (i < l - 1 && to > ranges[i + 1].from - 2 * 250 /* RegExp.HighlightMargin */)\n to = ranges[++i].to;\n query.highlight(view.state, from, to, (from, to) => {\n let selected = view.state.selection.ranges.some(r => r.from == from && r.to == to);\n builder.add(from, to, selected ? selectedMatchMark : matchMark);\n });\n }\n return builder.finish();\n }\n}, {\n decorations: v => v.decorations\n});\nfunction searchCommand(f) {\n return view => {\n let state = view.state.field(searchState, false);\n return state && state.query.spec.valid ? f(view, state) : openSearchPanel(view);\n };\n}\n/**\nOpen the search panel if it isn't already open, and move the\nselection to the first match after the current main selection.\nWill wrap around to the start of the document when it reaches the\nend.\n*/\nconst findNext = /*@__PURE__*/searchCommand((view, { query }) => {\n let { to } = view.state.selection.main;\n let next = query.nextMatch(view.state, to, to);\n if (!next)\n return false;\n let selection = EditorSelection.single(next.from, next.to);\n let config = view.state.facet(searchConfigFacet);\n view.dispatch({\n selection,\n effects: [announceMatch(view, next), config.scrollToMatch(selection.main, view)],\n userEvent: \"select.search\"\n });\n selectSearchInput(view);\n return true;\n});\n/**\nMove the selection to the previous instance of the search query,\nbefore the current main selection. Will wrap past the start\nof the document to start searching at the end again.\n*/\nconst findPrevious = /*@__PURE__*/searchCommand((view, { query }) => {\n let { state } = view, { from } = state.selection.main;\n let prev = query.prevMatch(state, from, from);\n if (!prev)\n return false;\n let selection = EditorSelection.single(prev.from, prev.to);\n let config = view.state.facet(searchConfigFacet);\n view.dispatch({\n selection,\n effects: [announceMatch(view, prev), config.scrollToMatch(selection.main, view)],\n userEvent: \"select.search\"\n });\n selectSearchInput(view);\n return true;\n});\n/**\nSelect all instances of the search query.\n*/\nconst selectMatches = /*@__PURE__*/searchCommand((view, { query }) => {\n let ranges = query.matchAll(view.state, 1000);\n if (!ranges || !ranges.length)\n return false;\n view.dispatch({\n selection: EditorSelection.create(ranges.map(r => EditorSelection.range(r.from, r.to))),\n userEvent: \"select.search.matches\"\n });\n return true;\n});\n/**\nSelect all instances of the currently selected text.\n*/\nconst selectSelectionMatches = ({ state, dispatch }) => {\n let sel = state.selection;\n if (sel.ranges.length > 1 || sel.main.empty)\n return false;\n let { from, to } = sel.main;\n let ranges = [], main = 0;\n for (let cur = new SearchCursor(state.doc, state.sliceDoc(from, to)); !cur.next().done;) {\n if (ranges.length > 1000)\n return false;\n if (cur.value.from == from)\n main = ranges.length;\n ranges.push(EditorSelection.range(cur.value.from, cur.value.to));\n }\n dispatch(state.update({\n selection: EditorSelection.create(ranges, main),\n userEvent: \"select.search.matches\"\n }));\n return true;\n};\n/**\nReplace the current match of the search query.\n*/\nconst replaceNext = /*@__PURE__*/searchCommand((view, { query }) => {\n let { state } = view, { from, to } = state.selection.main;\n if (state.readOnly)\n return false;\n let next = query.nextMatch(state, from, from);\n if (!next)\n return false;\n let changes = [], selection, replacement;\n let effects = [];\n if (next.from == from && next.to == to) {\n replacement = state.toText(query.getReplacement(next));\n changes.push({ from: next.from, to: next.to, insert: replacement });\n next = query.nextMatch(state, next.from, next.to);\n effects.push(EditorView.announce.of(state.phrase(\"replaced match on line $\", state.doc.lineAt(from).number) + \".\"));\n }\n if (next) {\n let off = changes.length == 0 || changes[0].from >= next.to ? 0 : next.to - next.from - replacement.length;\n selection = EditorSelection.single(next.from - off, next.to - off);\n effects.push(announceMatch(view, next));\n effects.push(state.facet(searchConfigFacet).scrollToMatch(selection.main, view));\n }\n view.dispatch({\n changes, selection, effects,\n userEvent: \"input.replace\"\n });\n return true;\n});\n/**\nReplace all instances of the search query with the given\nreplacement.\n*/\nconst replaceAll = /*@__PURE__*/searchCommand((view, { query }) => {\n if (view.state.readOnly)\n return false;\n let changes = query.matchAll(view.state, 1e9).map(match => {\n let { from, to } = match;\n return { from, to, insert: query.getReplacement(match) };\n });\n if (!changes.length)\n return false;\n let announceText = view.state.phrase(\"replaced $ matches\", changes.length) + \".\";\n view.dispatch({\n changes,\n effects: EditorView.announce.of(announceText),\n userEvent: \"input.replace.all\"\n });\n return true;\n});\nfunction createSearchPanel(view) {\n return view.state.facet(searchConfigFacet).createPanel(view);\n}\nfunction defaultQuery(state, fallback) {\n var _a, _b, _c, _d, _e;\n let sel = state.selection.main;\n let selText = sel.empty || sel.to > sel.from + 100 ? \"\" : state.sliceDoc(sel.from, sel.to);\n if (fallback && !selText)\n return fallback;\n let config = state.facet(searchConfigFacet);\n return new SearchQuery({\n search: ((_a = fallback === null || fallback === void 0 ? void 0 : fallback.literal) !== null && _a !== void 0 ? _a : config.literal) ? selText : selText.replace(/\\n/g, \"\\\\n\"),\n caseSensitive: (_b = fallback === null || fallback === void 0 ? void 0 : fallback.caseSensitive) !== null && _b !== void 0 ? _b : config.caseSensitive,\n literal: (_c = fallback === null || fallback === void 0 ? void 0 : fallback.literal) !== null && _c !== void 0 ? _c : config.literal,\n regexp: (_d = fallback === null || fallback === void 0 ? void 0 : fallback.regexp) !== null && _d !== void 0 ? _d : config.regexp,\n wholeWord: (_e = fallback === null || fallback === void 0 ? void 0 : fallback.wholeWord) !== null && _e !== void 0 ? _e : config.wholeWord\n });\n}\nfunction getSearchInput(view) {\n let panel = getPanel(view, createSearchPanel);\n return panel && panel.dom.querySelector(\"[main-field]\");\n}\nfunction selectSearchInput(view) {\n let input = getSearchInput(view);\n if (input && input == view.root.activeElement)\n input.select();\n}\n/**\nMake sure the search panel is open and focused.\n*/\nconst openSearchPanel = view => {\n let state = view.state.field(searchState, false);\n if (state && state.panel) {\n let searchInput = getSearchInput(view);\n if (searchInput && searchInput != view.root.activeElement) {\n let query = defaultQuery(view.state, state.query.spec);\n if (query.valid)\n view.dispatch({ effects: setSearchQuery.of(query) });\n searchInput.focus();\n searchInput.select();\n }\n }\n else {\n view.dispatch({ effects: [\n togglePanel.of(true),\n state ? setSearchQuery.of(defaultQuery(view.state, state.query.spec)) : StateEffect.appendConfig.of(searchExtensions)\n ] });\n }\n return true;\n};\n/**\nClose the search panel.\n*/\nconst closeSearchPanel = view => {\n let state = view.state.field(searchState, false);\n if (!state || !state.panel)\n return false;\n let panel = getPanel(view, createSearchPanel);\n if (panel && panel.dom.contains(view.root.activeElement))\n view.focus();\n view.dispatch({ effects: togglePanel.of(false) });\n return true;\n};\n/**\nDefault search-related key bindings.\n\n - Mod-f: [`openSearchPanel`](https://codemirror.net/6/docs/ref/#search.openSearchPanel)\n - F3, Mod-g: [`findNext`](https://codemirror.net/6/docs/ref/#search.findNext)\n - Shift-F3, Shift-Mod-g: [`findPrevious`](https://codemirror.net/6/docs/ref/#search.findPrevious)\n - Mod-Alt-g: [`gotoLine`](https://codemirror.net/6/docs/ref/#search.gotoLine)\n - Mod-d: [`selectNextOccurrence`](https://codemirror.net/6/docs/ref/#search.selectNextOccurrence)\n*/\nconst searchKeymap = [\n { key: \"Mod-f\", run: openSearchPanel, scope: \"editor search-panel\" },\n { key: \"F3\", run: findNext, shift: findPrevious, scope: \"editor search-panel\", preventDefault: true },\n { key: \"Mod-g\", run: findNext, shift: findPrevious, scope: \"editor search-panel\", preventDefault: true },\n { key: \"Escape\", run: closeSearchPanel, scope: \"editor search-panel\" },\n { key: \"Mod-Shift-l\", run: selectSelectionMatches },\n { key: \"Mod-Alt-g\", run: gotoLine },\n { key: \"Mod-d\", run: selectNextOccurrence, preventDefault: true },\n];\nclass SearchPanel {\n constructor(view) {\n this.view = view;\n let query = this.query = view.state.field(searchState).query.spec;\n this.commit = this.commit.bind(this);\n this.searchField = elt(\"input\", {\n value: query.search,\n placeholder: phrase(view, \"Find\"),\n \"aria-label\": phrase(view, \"Find\"),\n class: \"cm-textfield\",\n name: \"search\",\n form: \"\",\n \"main-field\": \"true\",\n onchange: this.commit,\n onkeyup: this.commit\n });\n this.replaceField = elt(\"input\", {\n value: query.replace,\n placeholder: phrase(view, \"Replace\"),\n \"aria-label\": phrase(view, \"Replace\"),\n class: \"cm-textfield\",\n name: \"replace\",\n form: \"\",\n onchange: this.commit,\n onkeyup: this.commit\n });\n this.caseField = elt(\"input\", {\n type: \"checkbox\",\n name: \"case\",\n form: \"\",\n checked: query.caseSensitive,\n onchange: this.commit\n });\n this.reField = elt(\"input\", {\n type: \"checkbox\",\n name: \"re\",\n form: \"\",\n checked: query.regexp,\n onchange: this.commit\n });\n this.wordField = elt(\"input\", {\n type: \"checkbox\",\n name: \"word\",\n form: \"\",\n checked: query.wholeWord,\n onchange: this.commit\n });\n function button(name, onclick, content) {\n return elt(\"button\", { class: \"cm-button\", name, onclick, type: \"button\" }, content);\n }\n this.dom = elt(\"div\", { onkeydown: (e) => this.keydown(e), class: \"cm-search\" }, [\n this.searchField,\n button(\"next\", () => findNext(view), [phrase(view, \"next\")]),\n button(\"prev\", () => findPrevious(view), [phrase(view, \"previous\")]),\n button(\"select\", () => selectMatches(view), [phrase(view, \"all\")]),\n elt(\"label\", null, [this.caseField, phrase(view, \"match case\")]),\n elt(\"label\", null, [this.reField, phrase(view, \"regexp\")]),\n elt(\"label\", null, [this.wordField, phrase(view, \"by word\")]),\n ...view.state.readOnly ? [] : [\n elt(\"br\"),\n this.replaceField,\n button(\"replace\", () => replaceNext(view), [phrase(view, \"replace\")]),\n button(\"replaceAll\", () => replaceAll(view), [phrase(view, \"replace all\")])\n ],\n elt(\"button\", {\n name: \"close\",\n onclick: () => closeSearchPanel(view),\n \"aria-label\": phrase(view, \"close\"),\n type: \"button\"\n }, [\"×\"])\n ]);\n }\n commit() {\n let query = new SearchQuery({\n search: this.searchField.value,\n caseSensitive: this.caseField.checked,\n regexp: this.reField.checked,\n wholeWord: this.wordField.checked,\n replace: this.replaceField.value,\n });\n if (!query.eq(this.query)) {\n this.query = query;\n this.view.dispatch({ effects: setSearchQuery.of(query) });\n }\n }\n keydown(e) {\n if (runScopeHandlers(this.view, e, \"search-panel\")) {\n e.preventDefault();\n }\n else if (e.keyCode == 13 && e.target == this.searchField) {\n e.preventDefault();\n (e.shiftKey ? findPrevious : findNext)(this.view);\n }\n else if (e.keyCode == 13 && e.target == this.replaceField) {\n e.preventDefault();\n replaceNext(this.view);\n }\n }\n update(update) {\n for (let tr of update.transactions)\n for (let effect of tr.effects) {\n if (effect.is(setSearchQuery) && !effect.value.eq(this.query))\n this.setQuery(effect.value);\n }\n }\n setQuery(query) {\n this.query = query;\n this.searchField.value = query.search;\n this.replaceField.value = query.replace;\n this.caseField.checked = query.caseSensitive;\n this.reField.checked = query.regexp;\n this.wordField.checked = query.wholeWord;\n }\n mount() {\n this.searchField.select();\n }\n get pos() { return 80; }\n get top() { return this.view.state.facet(searchConfigFacet).top; }\n}\nfunction phrase(view, phrase) { return view.state.phrase(phrase); }\nconst AnnounceMargin = 30;\nconst Break = /[\\s\\.,:;?!]/;\nfunction announceMatch(view, { from, to }) {\n let line = view.state.doc.lineAt(from), lineEnd = view.state.doc.lineAt(to).to;\n let start = Math.max(line.from, from - AnnounceMargin), end = Math.min(lineEnd, to + AnnounceMargin);\n let text = view.state.sliceDoc(start, end);\n if (start != line.from) {\n for (let i = 0; i < AnnounceMargin; i++)\n if (!Break.test(text[i + 1]) && Break.test(text[i])) {\n text = text.slice(i);\n break;\n }\n }\n if (end != lineEnd) {\n for (let i = text.length - 1; i > text.length - AnnounceMargin; i--)\n if (!Break.test(text[i - 1]) && Break.test(text[i])) {\n text = text.slice(0, i);\n break;\n }\n }\n return EditorView.announce.of(`${view.state.phrase(\"current match\")}. ${text} ${view.state.phrase(\"on line\")} ${line.number}.`);\n}\nconst baseTheme = /*@__PURE__*/EditorView.baseTheme({\n \".cm-panel.cm-search\": {\n padding: \"2px 6px 4px\",\n position: \"relative\",\n \"& [name=close]\": {\n position: \"absolute\",\n top: \"0\",\n right: \"4px\",\n backgroundColor: \"inherit\",\n border: \"none\",\n font: \"inherit\",\n padding: 0,\n margin: 0\n },\n \"& input, & button, & label\": {\n margin: \".2em .6em .2em 0\"\n },\n \"& input[type=checkbox]\": {\n marginRight: \".2em\"\n },\n \"& label\": {\n fontSize: \"80%\",\n whiteSpace: \"pre\"\n }\n },\n \"&light .cm-searchMatch\": { backgroundColor: \"#ffff0054\" },\n \"&dark .cm-searchMatch\": { backgroundColor: \"#00ffff8a\" },\n \"&light .cm-searchMatch-selected\": { backgroundColor: \"#ff6a0054\" },\n \"&dark .cm-searchMatch-selected\": { backgroundColor: \"#ff00ff8a\" }\n});\nconst searchExtensions = [\n searchState,\n /*@__PURE__*/Prec.low(searchHighlighter),\n baseTheme\n];\n\nexport { RegExpCursor, SearchCursor, SearchQuery, closeSearchPanel, findNext, findPrevious, getSearchQuery, gotoLine, highlightSelectionMatches, openSearchPanel, replaceAll, replaceNext, search, searchKeymap, searchPanelOpen, selectMatches, selectNextOccurrence, selectSelectionMatches, setSearchQuery };\n","import { Decoration, showPanel, EditorView, ViewPlugin, logException, gutter, showTooltip, hoverTooltip, getPanel, WidgetType, GutterMarker } from '@codemirror/view';\nimport { StateEffect, StateField, Facet, combineConfig, RangeSet } from '@codemirror/state';\nimport elt from 'crelt';\n\nclass SelectedDiagnostic {\n constructor(from, to, diagnostic) {\n this.from = from;\n this.to = to;\n this.diagnostic = diagnostic;\n }\n}\nclass LintState {\n constructor(diagnostics, panel, selected) {\n this.diagnostics = diagnostics;\n this.panel = panel;\n this.selected = selected;\n }\n static init(diagnostics, panel, state) {\n // Filter the list of diagnostics for which to create markers\n let markedDiagnostics = diagnostics;\n let diagnosticFilter = state.facet(lintConfig).markerFilter;\n if (diagnosticFilter)\n markedDiagnostics = diagnosticFilter(markedDiagnostics, state);\n let ranges = Decoration.set(markedDiagnostics.map((d) => {\n // For zero-length ranges or ranges covering only a line break, create a widget\n return d.from == d.to || (d.from == d.to - 1 && state.doc.lineAt(d.from).to == d.from)\n ? Decoration.widget({\n widget: new DiagnosticWidget(d),\n diagnostic: d\n }).range(d.from)\n : Decoration.mark({\n attributes: { class: \"cm-lintRange cm-lintRange-\" + d.severity + (d.markClass ? \" \" + d.markClass : \"\") },\n diagnostic: d\n }).range(d.from, d.to);\n }), true);\n return new LintState(ranges, panel, findDiagnostic(ranges));\n }\n}\nfunction findDiagnostic(diagnostics, diagnostic = null, after = 0) {\n let found = null;\n diagnostics.between(after, 1e9, (from, to, { spec }) => {\n if (diagnostic && spec.diagnostic != diagnostic)\n return;\n found = new SelectedDiagnostic(from, to, spec.diagnostic);\n return false;\n });\n return found;\n}\nfunction hideTooltip(tr, tooltip) {\n let from = tooltip.pos, to = tooltip.end || from;\n let result = tr.state.facet(lintConfig).hideOn(tr, from, to);\n if (result != null)\n return result;\n let line = tr.startState.doc.lineAt(tooltip.pos);\n return !!(tr.effects.some(e => e.is(setDiagnosticsEffect)) || tr.changes.touchesRange(line.from, Math.max(line.to, to)));\n}\nfunction maybeEnableLint(state, effects) {\n return state.field(lintState, false) ? effects : effects.concat(StateEffect.appendConfig.of(lintExtensions));\n}\n/**\nReturns a transaction spec which updates the current set of\ndiagnostics, and enables the lint extension if if wasn't already\nactive.\n*/\nfunction setDiagnostics(state, diagnostics) {\n return {\n effects: maybeEnableLint(state, [setDiagnosticsEffect.of(diagnostics)])\n };\n}\n/**\nThe state effect that updates the set of active diagnostics. Can\nbe useful when writing an extension that needs to track these.\n*/\nconst setDiagnosticsEffect = /*@__PURE__*/StateEffect.define();\nconst togglePanel = /*@__PURE__*/StateEffect.define();\nconst movePanelSelection = /*@__PURE__*/StateEffect.define();\nconst lintState = /*@__PURE__*/StateField.define({\n create() {\n return new LintState(Decoration.none, null, null);\n },\n update(value, tr) {\n if (tr.docChanged && value.diagnostics.size) {\n let mapped = value.diagnostics.map(tr.changes), selected = null, panel = value.panel;\n if (value.selected) {\n let selPos = tr.changes.mapPos(value.selected.from, 1);\n selected = findDiagnostic(mapped, value.selected.diagnostic, selPos) || findDiagnostic(mapped, null, selPos);\n }\n if (!mapped.size && panel && tr.state.facet(lintConfig).autoPanel)\n panel = null;\n value = new LintState(mapped, panel, selected);\n }\n for (let effect of tr.effects) {\n if (effect.is(setDiagnosticsEffect)) {\n let panel = !tr.state.facet(lintConfig).autoPanel ? value.panel : effect.value.length ? LintPanel.open : null;\n value = LintState.init(effect.value, panel, tr.state);\n }\n else if (effect.is(togglePanel)) {\n value = new LintState(value.diagnostics, effect.value ? LintPanel.open : null, value.selected);\n }\n else if (effect.is(movePanelSelection)) {\n value = new LintState(value.diagnostics, value.panel, effect.value);\n }\n }\n return value;\n },\n provide: f => [showPanel.from(f, val => val.panel),\n EditorView.decorations.from(f, s => s.diagnostics)]\n});\n/**\nReturns the number of active lint diagnostics in the given state.\n*/\nfunction diagnosticCount(state) {\n let lint = state.field(lintState, false);\n return lint ? lint.diagnostics.size : 0;\n}\nconst activeMark = /*@__PURE__*/Decoration.mark({ class: \"cm-lintRange cm-lintRange-active\" });\nfunction lintTooltip(view, pos, side) {\n let { diagnostics } = view.state.field(lintState);\n let found = [], stackStart = 2e8, stackEnd = 0;\n diagnostics.between(pos - (side < 0 ? 1 : 0), pos + (side > 0 ? 1 : 0), (from, to, { spec }) => {\n if (pos >= from && pos <= to &&\n (from == to || ((pos > from || side > 0) && (pos < to || side < 0)))) {\n found.push(spec.diagnostic);\n stackStart = Math.min(from, stackStart);\n stackEnd = Math.max(to, stackEnd);\n }\n });\n let diagnosticFilter = view.state.facet(lintConfig).tooltipFilter;\n if (diagnosticFilter)\n found = diagnosticFilter(found, view.state);\n if (!found.length)\n return null;\n return {\n pos: stackStart,\n end: stackEnd,\n above: view.state.doc.lineAt(stackStart).to < stackEnd,\n create() {\n return { dom: diagnosticsTooltip(view, found) };\n }\n };\n}\nfunction diagnosticsTooltip(view, diagnostics) {\n return elt(\"ul\", { class: \"cm-tooltip-lint\" }, diagnostics.map(d => renderDiagnostic(view, d, false)));\n}\n/**\nCommand to open and focus the lint panel.\n*/\nconst openLintPanel = (view) => {\n let field = view.state.field(lintState, false);\n if (!field || !field.panel)\n view.dispatch({ effects: maybeEnableLint(view.state, [togglePanel.of(true)]) });\n let panel = getPanel(view, LintPanel.open);\n if (panel)\n panel.dom.querySelector(\".cm-panel-lint ul\").focus();\n return true;\n};\n/**\nCommand to close the lint panel, when open.\n*/\nconst closeLintPanel = (view) => {\n let field = view.state.field(lintState, false);\n if (!field || !field.panel)\n return false;\n view.dispatch({ effects: togglePanel.of(false) });\n return true;\n};\n/**\nMove the selection to the next diagnostic.\n*/\nconst nextDiagnostic = (view) => {\n let field = view.state.field(lintState, false);\n if (!field)\n return false;\n let sel = view.state.selection.main, next = field.diagnostics.iter(sel.to + 1);\n if (!next.value) {\n next = field.diagnostics.iter(0);\n if (!next.value || next.from == sel.from && next.to == sel.to)\n return false;\n }\n view.dispatch({ selection: { anchor: next.from, head: next.to }, scrollIntoView: true });\n return true;\n};\n/**\nMove the selection to the previous diagnostic.\n*/\nconst previousDiagnostic = (view) => {\n let { state } = view, field = state.field(lintState, false);\n if (!field)\n return false;\n let sel = state.selection.main;\n let prevFrom, prevTo, lastFrom, lastTo;\n field.diagnostics.between(0, state.doc.length, (from, to) => {\n if (to < sel.to && (prevFrom == null || prevFrom < from)) {\n prevFrom = from;\n prevTo = to;\n }\n if (lastFrom == null || from > lastFrom) {\n lastFrom = from;\n lastTo = to;\n }\n });\n if (lastFrom == null || prevFrom == null && lastFrom == sel.from)\n return false;\n view.dispatch({ selection: { anchor: prevFrom !== null && prevFrom !== void 0 ? prevFrom : lastFrom, head: prevTo !== null && prevTo !== void 0 ? prevTo : lastTo }, scrollIntoView: true });\n return true;\n};\n/**\nA set of default key bindings for the lint functionality.\n\n- Ctrl-Shift-m (Cmd-Shift-m on macOS): [`openLintPanel`](https://codemirror.net/6/docs/ref/#lint.openLintPanel)\n- F8: [`nextDiagnostic`](https://codemirror.net/6/docs/ref/#lint.nextDiagnostic)\n*/\nconst lintKeymap = [\n { key: \"Mod-Shift-m\", run: openLintPanel, preventDefault: true },\n { key: \"F8\", run: nextDiagnostic }\n];\nconst lintPlugin = /*@__PURE__*/ViewPlugin.fromClass(class {\n constructor(view) {\n this.view = view;\n this.timeout = -1;\n this.set = true;\n let { delay } = view.state.facet(lintConfig);\n this.lintTime = Date.now() + delay;\n this.run = this.run.bind(this);\n this.timeout = setTimeout(this.run, delay);\n }\n run() {\n clearTimeout(this.timeout);\n let now = Date.now();\n if (now < this.lintTime - 10) {\n this.timeout = setTimeout(this.run, this.lintTime - now);\n }\n else {\n this.set = false;\n let { state } = this.view, { sources } = state.facet(lintConfig);\n if (sources.length)\n Promise.all(sources.map(source => Promise.resolve(source(this.view)))).then(annotations => {\n let all = annotations.reduce((a, b) => a.concat(b));\n if (this.view.state.doc == state.doc)\n this.view.dispatch(setDiagnostics(this.view.state, all));\n }, error => { logException(this.view.state, error); });\n }\n }\n update(update) {\n let config = update.state.facet(lintConfig);\n if (update.docChanged || config != update.startState.facet(lintConfig) ||\n config.needsRefresh && config.needsRefresh(update)) {\n this.lintTime = Date.now() + config.delay;\n if (!this.set) {\n this.set = true;\n this.timeout = setTimeout(this.run, config.delay);\n }\n }\n }\n force() {\n if (this.set) {\n this.lintTime = Date.now();\n this.run();\n }\n }\n destroy() {\n clearTimeout(this.timeout);\n }\n});\nconst lintConfig = /*@__PURE__*/Facet.define({\n combine(input) {\n return Object.assign({ sources: input.map(i => i.source).filter(x => x != null) }, combineConfig(input.map(i => i.config), {\n delay: 750,\n markerFilter: null,\n tooltipFilter: null,\n needsRefresh: null,\n hideOn: () => null,\n }, {\n needsRefresh: (a, b) => !a ? b : !b ? a : u => a(u) || b(u)\n }));\n }\n});\n/**\nGiven a diagnostic source, this function returns an extension that\nenables linting with that source. It will be called whenever the\neditor is idle (after its content changed). If `null` is given as\nsource, this only configures the lint extension.\n*/\nfunction linter(source, config = {}) {\n return [\n lintConfig.of({ source, config }),\n lintPlugin,\n lintExtensions\n ];\n}\n/**\nForces any linters [configured](https://codemirror.net/6/docs/ref/#lint.linter) to run when the\neditor is idle to run right away.\n*/\nfunction forceLinting(view) {\n let plugin = view.plugin(lintPlugin);\n if (plugin)\n plugin.force();\n}\nfunction assignKeys(actions) {\n let assigned = [];\n if (actions)\n actions: for (let { name } of actions) {\n for (let i = 0; i < name.length; i++) {\n let ch = name[i];\n if (/[a-zA-Z]/.test(ch) && !assigned.some(c => c.toLowerCase() == ch.toLowerCase())) {\n assigned.push(ch);\n continue actions;\n }\n }\n assigned.push(\"\");\n }\n return assigned;\n}\nfunction renderDiagnostic(view, diagnostic, inPanel) {\n var _a;\n let keys = inPanel ? assignKeys(diagnostic.actions) : [];\n return elt(\"li\", { class: \"cm-diagnostic cm-diagnostic-\" + diagnostic.severity }, elt(\"span\", { class: \"cm-diagnosticText\" }, diagnostic.renderMessage ? diagnostic.renderMessage(view) : diagnostic.message), (_a = diagnostic.actions) === null || _a === void 0 ? void 0 : _a.map((action, i) => {\n let fired = false, click = (e) => {\n e.preventDefault();\n if (fired)\n return;\n fired = true;\n let found = findDiagnostic(view.state.field(lintState).diagnostics, diagnostic);\n if (found)\n action.apply(view, found.from, found.to);\n };\n let { name } = action, keyIndex = keys[i] ? name.indexOf(keys[i]) : -1;\n let nameElt = keyIndex < 0 ? name : [name.slice(0, keyIndex),\n elt(\"u\", name.slice(keyIndex, keyIndex + 1)),\n name.slice(keyIndex + 1)];\n return elt(\"button\", {\n type: \"button\",\n class: \"cm-diagnosticAction\",\n onclick: click,\n onmousedown: click,\n \"aria-label\": ` Action: ${name}${keyIndex < 0 ? \"\" : ` (access key \"${keys[i]})\"`}.`\n }, nameElt);\n }), diagnostic.source && elt(\"div\", { class: \"cm-diagnosticSource\" }, diagnostic.source));\n}\nclass DiagnosticWidget extends WidgetType {\n constructor(diagnostic) {\n super();\n this.diagnostic = diagnostic;\n }\n eq(other) { return other.diagnostic == this.diagnostic; }\n toDOM() {\n return elt(\"span\", { class: \"cm-lintPoint cm-lintPoint-\" + this.diagnostic.severity });\n }\n}\nclass PanelItem {\n constructor(view, diagnostic) {\n this.diagnostic = diagnostic;\n this.id = \"item_\" + Math.floor(Math.random() * 0xffffffff).toString(16);\n this.dom = renderDiagnostic(view, diagnostic, true);\n this.dom.id = this.id;\n this.dom.setAttribute(\"role\", \"option\");\n }\n}\nclass LintPanel {\n constructor(view) {\n this.view = view;\n this.items = [];\n let onkeydown = (event) => {\n if (event.keyCode == 27) { // Escape\n closeLintPanel(this.view);\n this.view.focus();\n }\n else if (event.keyCode == 38 || event.keyCode == 33) { // ArrowUp, PageUp\n this.moveSelection((this.selectedIndex - 1 + this.items.length) % this.items.length);\n }\n else if (event.keyCode == 40 || event.keyCode == 34) { // ArrowDown, PageDown\n this.moveSelection((this.selectedIndex + 1) % this.items.length);\n }\n else if (event.keyCode == 36) { // Home\n this.moveSelection(0);\n }\n else if (event.keyCode == 35) { // End\n this.moveSelection(this.items.length - 1);\n }\n else if (event.keyCode == 13) { // Enter\n this.view.focus();\n }\n else if (event.keyCode >= 65 && event.keyCode <= 90 && this.selectedIndex >= 0) { // A-Z\n let { diagnostic } = this.items[this.selectedIndex], keys = assignKeys(diagnostic.actions);\n for (let i = 0; i < keys.length; i++)\n if (keys[i].toUpperCase().charCodeAt(0) == event.keyCode) {\n let found = findDiagnostic(this.view.state.field(lintState).diagnostics, diagnostic);\n if (found)\n diagnostic.actions[i].apply(view, found.from, found.to);\n }\n }\n else {\n return;\n }\n event.preventDefault();\n };\n let onclick = (event) => {\n for (let i = 0; i < this.items.length; i++) {\n if (this.items[i].dom.contains(event.target))\n this.moveSelection(i);\n }\n };\n this.list = elt(\"ul\", {\n tabIndex: 0,\n role: \"listbox\",\n \"aria-label\": this.view.state.phrase(\"Diagnostics\"),\n onkeydown,\n onclick\n });\n this.dom = elt(\"div\", { class: \"cm-panel-lint\" }, this.list, elt(\"button\", {\n type: \"button\",\n name: \"close\",\n \"aria-label\": this.view.state.phrase(\"close\"),\n onclick: () => closeLintPanel(this.view)\n }, \"×\"));\n this.update();\n }\n get selectedIndex() {\n let selected = this.view.state.field(lintState).selected;\n if (!selected)\n return -1;\n for (let i = 0; i < this.items.length; i++)\n if (this.items[i].diagnostic == selected.diagnostic)\n return i;\n return -1;\n }\n update() {\n let { diagnostics, selected } = this.view.state.field(lintState);\n let i = 0, needsSync = false, newSelectedItem = null;\n diagnostics.between(0, this.view.state.doc.length, (_start, _end, { spec }) => {\n let found = -1, item;\n for (let j = i; j < this.items.length; j++)\n if (this.items[j].diagnostic == spec.diagnostic) {\n found = j;\n break;\n }\n if (found < 0) {\n item = new PanelItem(this.view, spec.diagnostic);\n this.items.splice(i, 0, item);\n needsSync = true;\n }\n else {\n item = this.items[found];\n if (found > i) {\n this.items.splice(i, found - i);\n needsSync = true;\n }\n }\n if (selected && item.diagnostic == selected.diagnostic) {\n if (!item.dom.hasAttribute(\"aria-selected\")) {\n item.dom.setAttribute(\"aria-selected\", \"true\");\n newSelectedItem = item;\n }\n }\n else if (item.dom.hasAttribute(\"aria-selected\")) {\n item.dom.removeAttribute(\"aria-selected\");\n }\n i++;\n });\n while (i < this.items.length && !(this.items.length == 1 && this.items[0].diagnostic.from < 0)) {\n needsSync = true;\n this.items.pop();\n }\n if (this.items.length == 0) {\n this.items.push(new PanelItem(this.view, {\n from: -1, to: -1,\n severity: \"info\",\n message: this.view.state.phrase(\"No diagnostics\")\n }));\n needsSync = true;\n }\n if (newSelectedItem) {\n this.list.setAttribute(\"aria-activedescendant\", newSelectedItem.id);\n this.view.requestMeasure({\n key: this,\n read: () => ({ sel: newSelectedItem.dom.getBoundingClientRect(), panel: this.list.getBoundingClientRect() }),\n write: ({ sel, panel }) => {\n let scaleY = panel.height / this.list.offsetHeight;\n if (sel.top < panel.top)\n this.list.scrollTop -= (panel.top - sel.top) / scaleY;\n else if (sel.bottom > panel.bottom)\n this.list.scrollTop += (sel.bottom - panel.bottom) / scaleY;\n }\n });\n }\n else if (this.selectedIndex < 0) {\n this.list.removeAttribute(\"aria-activedescendant\");\n }\n if (needsSync)\n this.sync();\n }\n sync() {\n let domPos = this.list.firstChild;\n function rm() {\n let prev = domPos;\n domPos = prev.nextSibling;\n prev.remove();\n }\n for (let item of this.items) {\n if (item.dom.parentNode == this.list) {\n while (domPos != item.dom)\n rm();\n domPos = item.dom.nextSibling;\n }\n else {\n this.list.insertBefore(item.dom, domPos);\n }\n }\n while (domPos)\n rm();\n }\n moveSelection(selectedIndex) {\n if (this.selectedIndex < 0)\n return;\n let field = this.view.state.field(lintState);\n let selection = findDiagnostic(field.diagnostics, this.items[selectedIndex].diagnostic);\n if (!selection)\n return;\n this.view.dispatch({\n selection: { anchor: selection.from, head: selection.to },\n scrollIntoView: true,\n effects: movePanelSelection.of(selection)\n });\n }\n static open(view) { return new LintPanel(view); }\n}\nfunction svg(content, attrs = `viewBox=\"0 0 40 40\"`) {\n return `url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" ${attrs}>${encodeURIComponent(content)}</svg>')`;\n}\nfunction underline(color) {\n return svg(`<path d=\"m0 2.5 l2 -1.5 l1 0 l2 1.5 l1 0\" stroke=\"${color}\" fill=\"none\" stroke-width=\".7\"/>`, `width=\"6\" height=\"3\"`);\n}\nconst baseTheme = /*@__PURE__*/EditorView.baseTheme({\n \".cm-diagnostic\": {\n padding: \"3px 6px 3px 8px\",\n marginLeft: \"-1px\",\n display: \"block\",\n whiteSpace: \"pre-wrap\"\n },\n \".cm-diagnostic-error\": { borderLeft: \"5px solid #d11\" },\n \".cm-diagnostic-warning\": { borderLeft: \"5px solid orange\" },\n \".cm-diagnostic-info\": { borderLeft: \"5px solid #999\" },\n \".cm-diagnostic-hint\": { borderLeft: \"5px solid #66d\" },\n \".cm-diagnosticAction\": {\n font: \"inherit\",\n border: \"none\",\n padding: \"2px 4px\",\n backgroundColor: \"#444\",\n color: \"white\",\n borderRadius: \"3px\",\n marginLeft: \"8px\",\n cursor: \"pointer\"\n },\n \".cm-diagnosticSource\": {\n fontSize: \"70%\",\n opacity: .7\n },\n \".cm-lintRange\": {\n backgroundPosition: \"left bottom\",\n backgroundRepeat: \"repeat-x\",\n paddingBottom: \"0.7px\",\n },\n \".cm-lintRange-error\": { backgroundImage: /*@__PURE__*/underline(\"#d11\") },\n \".cm-lintRange-warning\": { backgroundImage: /*@__PURE__*/underline(\"orange\") },\n \".cm-lintRange-info\": { backgroundImage: /*@__PURE__*/underline(\"#999\") },\n \".cm-lintRange-hint\": { backgroundImage: /*@__PURE__*/underline(\"#66d\") },\n \".cm-lintRange-active\": { backgroundColor: \"#ffdd9980\" },\n \".cm-tooltip-lint\": {\n padding: 0,\n margin: 0\n },\n \".cm-lintPoint\": {\n position: \"relative\",\n \"&:after\": {\n content: '\"\"',\n position: \"absolute\",\n bottom: 0,\n left: \"-2px\",\n borderLeft: \"3px solid transparent\",\n borderRight: \"3px solid transparent\",\n borderBottom: \"4px solid #d11\"\n }\n },\n \".cm-lintPoint-warning\": {\n \"&:after\": { borderBottomColor: \"orange\" }\n },\n \".cm-lintPoint-info\": {\n \"&:after\": { borderBottomColor: \"#999\" }\n },\n \".cm-lintPoint-hint\": {\n \"&:after\": { borderBottomColor: \"#66d\" }\n },\n \".cm-panel.cm-panel-lint\": {\n position: \"relative\",\n \"& ul\": {\n maxHeight: \"100px\",\n overflowY: \"auto\",\n \"& [aria-selected]\": {\n backgroundColor: \"#ddd\",\n \"& u\": { textDecoration: \"underline\" }\n },\n \"&:focus [aria-selected]\": {\n background_fallback: \"#bdf\",\n backgroundColor: \"Highlight\",\n color_fallback: \"white\",\n color: \"HighlightText\"\n },\n \"& u\": { textDecoration: \"none\" },\n padding: 0,\n margin: 0\n },\n \"& [name=close]\": {\n position: \"absolute\",\n top: \"0\",\n right: \"2px\",\n background: \"inherit\",\n border: \"none\",\n font: \"inherit\",\n padding: 0,\n margin: 0\n }\n }\n});\nfunction severityWeight(sev) {\n return sev == \"error\" ? 4 : sev == \"warning\" ? 3 : sev == \"info\" ? 2 : 1;\n}\nclass LintGutterMarker extends GutterMarker {\n constructor(diagnostics) {\n super();\n this.diagnostics = diagnostics;\n this.severity = diagnostics.reduce((max, d) => severityWeight(max) < severityWeight(d.severity) ? d.severity : max, \"hint\");\n }\n toDOM(view) {\n let elt = document.createElement(\"div\");\n elt.className = \"cm-lint-marker cm-lint-marker-\" + this.severity;\n let diagnostics = this.diagnostics;\n let diagnosticsFilter = view.state.facet(lintGutterConfig).tooltipFilter;\n if (diagnosticsFilter)\n diagnostics = diagnosticsFilter(diagnostics, view.state);\n if (diagnostics.length)\n elt.onmouseover = () => gutterMarkerMouseOver(view, elt, diagnostics);\n return elt;\n }\n}\nfunction trackHoverOn(view, marker) {\n let mousemove = (event) => {\n let rect = marker.getBoundingClientRect();\n if (event.clientX > rect.left - 10 /* Hover.Margin */ && event.clientX < rect.right + 10 /* Hover.Margin */ &&\n event.clientY > rect.top - 10 /* Hover.Margin */ && event.clientY < rect.bottom + 10 /* Hover.Margin */)\n return;\n for (let target = event.target; target; target = target.parentNode) {\n if (target.nodeType == 1 && target.classList.contains(\"cm-tooltip-lint\"))\n return;\n }\n window.removeEventListener(\"mousemove\", mousemove);\n if (view.state.field(lintGutterTooltip))\n view.dispatch({ effects: setLintGutterTooltip.of(null) });\n };\n window.addEventListener(\"mousemove\", mousemove);\n}\nfunction gutterMarkerMouseOver(view, marker, diagnostics) {\n function hovered() {\n let line = view.elementAtHeight(marker.getBoundingClientRect().top + 5 - view.documentTop);\n const linePos = view.coordsAtPos(line.from);\n if (linePos) {\n view.dispatch({ effects: setLintGutterTooltip.of({\n pos: line.from,\n above: false,\n create() {\n return {\n dom: diagnosticsTooltip(view, diagnostics),\n getCoords: () => marker.getBoundingClientRect()\n };\n }\n }) });\n }\n marker.onmouseout = marker.onmousemove = null;\n trackHoverOn(view, marker);\n }\n let { hoverTime } = view.state.facet(lintGutterConfig);\n let hoverTimeout = setTimeout(hovered, hoverTime);\n marker.onmouseout = () => {\n clearTimeout(hoverTimeout);\n marker.onmouseout = marker.onmousemove = null;\n };\n marker.onmousemove = () => {\n clearTimeout(hoverTimeout);\n hoverTimeout = setTimeout(hovered, hoverTime);\n };\n}\nfunction markersForDiagnostics(doc, diagnostics) {\n let byLine = Object.create(null);\n for (let diagnostic of diagnostics) {\n let line = doc.lineAt(diagnostic.from);\n (byLine[line.from] || (byLine[line.from] = [])).push(diagnostic);\n }\n let markers = [];\n for (let line in byLine) {\n markers.push(new LintGutterMarker(byLine[line]).range(+line));\n }\n return RangeSet.of(markers, true);\n}\nconst lintGutterExtension = /*@__PURE__*/gutter({\n class: \"cm-gutter-lint\",\n markers: view => view.state.field(lintGutterMarkers),\n});\nconst lintGutterMarkers = /*@__PURE__*/StateField.define({\n create() {\n return RangeSet.empty;\n },\n update(markers, tr) {\n markers = markers.map(tr.changes);\n let diagnosticFilter = tr.state.facet(lintGutterConfig).markerFilter;\n for (let effect of tr.effects) {\n if (effect.is(setDiagnosticsEffect)) {\n let diagnostics = effect.value;\n if (diagnosticFilter)\n diagnostics = diagnosticFilter(diagnostics || [], tr.state);\n markers = markersForDiagnostics(tr.state.doc, diagnostics.slice(0));\n }\n }\n return markers;\n }\n});\nconst setLintGutterTooltip = /*@__PURE__*/StateEffect.define();\nconst lintGutterTooltip = /*@__PURE__*/StateField.define({\n create() { return null; },\n update(tooltip, tr) {\n if (tooltip && tr.docChanged)\n tooltip = hideTooltip(tr, tooltip) ? null : Object.assign(Object.assign({}, tooltip), { pos: tr.changes.mapPos(tooltip.pos) });\n return tr.effects.reduce((t, e) => e.is(setLintGutterTooltip) ? e.value : t, tooltip);\n },\n provide: field => showTooltip.from(field)\n});\nconst lintGutterTheme = /*@__PURE__*/EditorView.baseTheme({\n \".cm-gutter-lint\": {\n width: \"1.4em\",\n \"& .cm-gutterElement\": {\n padding: \".2em\"\n }\n },\n \".cm-lint-marker\": {\n width: \"1em\",\n height: \"1em\"\n },\n \".cm-lint-marker-info\": {\n content: /*@__PURE__*/svg(`<path fill=\"#aaf\" stroke=\"#77e\" stroke-width=\"6\" stroke-linejoin=\"round\" d=\"M5 5L35 5L35 35L5 35Z\"/>`)\n },\n \".cm-lint-marker-warning\": {\n content: /*@__PURE__*/svg(`<path fill=\"#fe8\" stroke=\"#fd7\" stroke-width=\"6\" stroke-linejoin=\"round\" d=\"M20 6L37 35L3 35Z\"/>`),\n },\n \".cm-lint-marker-error\": {\n content: /*@__PURE__*/svg(`<circle cx=\"20\" cy=\"20\" r=\"15\" fill=\"#f87\" stroke=\"#f43\" stroke-width=\"6\"/>`)\n },\n});\nconst lintExtensions = [\n lintState,\n /*@__PURE__*/EditorView.decorations.compute([lintState], state => {\n let { selected, panel } = state.field(lintState);\n return !selected || !panel || selected.from == selected.to ? Decoration.none : Decoration.set([\n activeMark.range(selected.from, selected.to)\n ]);\n }),\n /*@__PURE__*/hoverTooltip(lintTooltip, { hideOn: hideTooltip }),\n baseTheme\n];\nconst lintGutterConfig = /*@__PURE__*/Facet.define({\n combine(configs) {\n return combineConfig(configs, {\n hoverTime: 300 /* Hover.Time */,\n markerFilter: null,\n tooltipFilter: null\n });\n }\n});\n/**\nReturns an extension that installs a gutter showing markers for\neach line that has diagnostics, which can be hovered over to see\nthe diagnostics.\n*/\nfunction lintGutter(config = {}) {\n return [lintGutterConfig.of(config), lintGutterMarkers, lintGutterExtension, lintGutterTheme, lintGutterTooltip];\n}\n/**\nIterate over the marked diagnostics for the given editor state,\ncalling `f` for each of them. Note that, if the document changed\nsince the diagnostics were created, the `Diagnostic` object will\nhold the original outdated position, whereas the `to` and `from`\narguments hold the diagnostic's current position.\n*/\nfunction forEachDiagnostic(state, f) {\n let lState = state.field(lintState, false);\n if (lState && lState.diagnostics.size)\n for (let iter = RangeSet.iter([lState.diagnostics]); iter.value; iter.next())\n f(iter.value.spec.diagnostic, iter.from, iter.to);\n}\n\nexport { closeLintPanel, diagnosticCount, forEachDiagnostic, forceLinting, lintGutter, lintKeymap, linter, nextDiagnostic, openLintPanel, previousDiagnostic, setDiagnostics, setDiagnosticsEffect };\n","import {\r\n keymap,\r\n highlightSpecialChars,\r\n drawSelection,\r\n highlightActiveLine,\r\n dropCursor,\r\n rectangularSelection,\r\n crosshairCursor,\r\n lineNumbers,\r\n highlightActiveLineGutter,\r\n} from '@codemirror/view';\r\nimport { Extension, EditorState } from '@codemirror/state';\r\nimport {\r\n defaultHighlightStyle,\r\n syntaxHighlighting,\r\n indentOnInput,\r\n bracketMatching,\r\n foldGutter,\r\n foldKeymap,\r\n} from '@codemirror/language';\r\nimport { defaultKeymap, history, historyKeymap } from '@codemirror/commands';\r\nimport { searchKeymap, highlightSelectionMatches } from '@codemirror/search';\r\nimport { autocompletion, completionKeymap, closeBrackets, closeBracketsKeymap } from '@codemirror/autocomplete';\r\nimport { lintKeymap } from '@codemirror/lint';\r\n\r\n// basically it's the same as codemirror's basicSetup, consider to remove this\r\nexport const codemirrorBasicSetup: Extension = (() => [\r\n lineNumbers(),\r\n highlightActiveLineGutter(),\r\n highlightSpecialChars(),\r\n history(),\r\n foldGutter(),\r\n drawSelection(),\r\n dropCursor(),\r\n EditorState.allowMultipleSelections.of(true),\r\n indentOnInput(),\r\n syntaxHighlighting(defaultHighlightStyle, { fallback: true }),\r\n bracketMatching(),\r\n closeBrackets(),\r\n autocompletion(),\r\n rectangularSelection(),\r\n crosshairCursor(),\r\n highlightActiveLine(),\r\n highlightSelectionMatches(),\r\n keymap.of([\r\n ...closeBracketsKeymap,\r\n ...defaultKeymap,\r\n ...searchKeymap,\r\n ...historyKeymap,\r\n ...foldKeymap,\r\n ...completionKeymap,\r\n ...lintKeymap,\r\n ]),\r\n])();\r\n","import { Injectable } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { CodeEditorData } from '../../_services/custom-code-providers/default-code-provider';\r\n\r\n@Injectable()\r\nexport class CodeEditorService {\r\n code: string;\r\n\r\n private setCodeSubject: Subject<CodeEditorData> = new Subject();\r\n setCodeRequest = this.setCodeSubject.asObservable();\r\n\r\n closeAndSaveCodeSubject: Subject<string> = new Subject();\r\n closeAndSaveCodeRequest = this.closeAndSaveCodeSubject.asObservable();\r\n\r\n setEditorCode(codeData: CodeEditorData) {\r\n this.setCodeSubject.next(codeData);\r\n }\r\n\r\n closeAndSaveCode(res) {\r\n this.closeAndSaveCodeSubject.next(res);\r\n }\r\n}\r\n","<div\r\n class=\"modal fade\"\r\n id=\"codeEditorModal\"\r\n tabindex=\"-1\"\r\n role=\"dialog\"\r\n aria-labelledby=\"codeEditorModal\"\r\n data-keyboard=\"false\"\r\n data-backdrop=\"static\">\r\n <input id=\"codeEditorInstanceId\" type=\"hidden\" value=\"\" />\r\n >\r\n <div class=\"modal-lg modal-dialog\" role=\"document\">\r\n <div class=\"modal-content\">\r\n <div class=\"modal-header\">\r\n <h4 class=\"modal-title\">Code Editor</h4>\r\n </div>\r\n <div class=\"modal-body\">\r\n <div id=\"code-editor\"></div>\r\n </div>\r\n\r\n <div class=\"modal-footer\">\r\n <button class=\"btn btn-primary\" (click)=\"saveAndClose()\">Save</button>\r\n <button class=\"btn btn-success\" (click)=\"openRestoreDefaultCodeModal()\" *ngIf=\"defaultCodeProvider\">\r\n Restore default code\r\n </button>\r\n <button class=\"btn btn-default\" data-dismiss=\"modal\" aria-label=\"Cancel\">Cancel</button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div\r\n class=\"modal fade\"\r\n id=\"restoreDefaultCodeModal\"\r\n tabindex=\"-1\"\r\n role=\"dialog\"\r\n aria-labelledby=\"restoreDefaultCodeModal\"\r\n data-keyboard=\"false\"\r\n data-backdrop=\"static\">\r\n <div class=\"modal-lg modal-dialog\" role=\"document\">\r\n <div class=\"modal-content\">\r\n <div class=\"modal-header\">\r\n <button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"Close\">\r\n <span aria-hidden=\"true\">×</span>\r\n </button>\r\n <h4 class=\"modal-title\">Warning</h4>\r\n </div>\r\n <div class=\"modal-body\">Restore default model?</div>\r\n\r\n <div class=\"modal-footer\">\r\n <button class=\"btn btn-primary\" (click)=\"restoreDefaultCode()\">Accept</button>\r\n <button class=\"btn btn-default\" data-dismiss=\"modal\" aria-label=\"Cancel\">Cancel</button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n","import { AfterViewInit, Component, ViewEncapsulation } from '@angular/core';\r\nimport { EditorState } from '@codemirror/state';\r\nimport { CompletionContext, CompletionResult, autocompletion, Completion } from '@codemirror/autocomplete';\r\nimport { EditorView } from '@codemirror/view';\r\nimport { csharp } from '@codemirror/legacy-modes/mode/clike';\r\nimport { StreamLanguage, syntaxTree } from '@codemirror/language';\r\nimport { DefaultCodeProvider } from '../../_services/custom-code-providers/default-code-provider';\r\nimport { CodeEditorService } from './code-editor.service';\r\nimport { codemirrorBasicSetup } from './codemirror-custom-basic-setup';\r\n\r\n@Component({\r\n selector: 'sob-code-editor',\r\n templateUrl: './code-editor.component.html',\r\n styleUrls: ['./code-editor.component.css'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class CodeEditorComponent implements AfterViewInit {\r\n defaultCodeProvider?: DefaultCodeProvider;\r\n private editorView?: EditorView;\r\n\r\n constructor(private codeEditorService: CodeEditorService) {\r\n this.codeEditorService.setCodeRequest.subscribe(codeData => {\r\n this.defaultCodeProvider = codeData.defaultCodeProvider;\r\n this.setCode(codeData.code);\r\n });\r\n }\r\n\r\n ngAfterViewInit() {\r\n const editorElement = document.getElementById('code-editor');\r\n\r\n if (!editorElement) {\r\n throw new Error(`Code editor div was not found!`);\r\n }\r\n\r\n const autoComplete = autocompletion({\r\n override: [this.customCompletionFunction()],\r\n });\r\n\r\n const state = EditorState.create({\r\n doc: '',\r\n extensions: [codemirrorBasicSetup, StreamLanguage.define(csharp), autoComplete],\r\n });\r\n\r\n this.editorView = new EditorView({ state, parent: editorElement });\r\n }\r\n\r\n saveAndClose() {\r\n const instanceId = $('#codeEditorInstanceId').val();\r\n this.codeEditorService.closeAndSaveCode({ code: this.getCode(), instanceId });\r\n $('#codeEditorModal').modal('hide');\r\n }\r\n\r\n openRestoreDefaultCodeModal() {\r\n $('#restoreDefaultCodeModal').modal('show');\r\n }\r\n\r\n restoreDefaultCode() {\r\n const code = this.defaultCodeProvider.getDefaultCode();\r\n this.setCode(code);\r\n $('#restoreDefaultCodeModal').modal('hide');\r\n }\r\n\r\n private setCode(code: string) {\r\n this.editorView?.dispatch({\r\n changes: { from: 0, to: this.getCode().length, insert: code },\r\n });\r\n }\r\n\r\n private getCode() {\r\n return this.editorView?.state.doc.toString() || '';\r\n }\r\n\r\n private get activeAutoCompletions(): Completion[] {\r\n return this.defaultCodeProvider?.getCodeCompletions() || [];\r\n }\r\n\r\n customCompletionFunction() {\r\n return (context: CompletionContext): CompletionResult | null => {\r\n const word = context.matchBefore(/\\w*/);\r\n\r\n if (!word || (word.from === word.to && !context.explicit)) {\r\n return null;\r\n }\r\n\r\n // include the declared variables in the document for autocompletion\r\n const declaredVariables: Completion[] = [];\r\n syntaxTree(context.state).iterate({\r\n enter(node): boolean | void {\r\n if (node.type.is('variableName')) {\r\n const label = context.state.doc.slice(node.from, node.to).toString();\r\n declaredVariables.push({ type: 'variable', label });\r\n }\r\n },\r\n });\r\n\r\n return {\r\n from: word.from,\r\n options: declaredVariables.concat(...this.activeAutoCompletions),\r\n };\r\n };\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport * as FileSaver from 'file-saver';\r\nimport { environment } from '../../environments/environment';\r\n\r\n@Injectable()\r\nexport class DownloadManualService {\r\n constructor(private http: HttpClient) {}\r\n\r\n download() {\r\n this.http.get(environment.manualUrl, { responseType: 'blob', observe: 'response' }).subscribe(\r\n data => {\r\n const fileName = /filename=\"(.*?)\"/g.exec(data.headers.get('content-disposition'))[1];\r\n\r\n FileSaver.saveAs(new Blob([data.body], { type: 'application/pdf' }), fileName);\r\n },\r\n () => {}\r\n );\r\n }\r\n}\r\n","<nav class=\"navbar-default navbar-static-side\" role=\"navigation\">\r\n <div class=\"toggle-navigation\">\r\n <a class=\"btn btn-primary\" (click)=\"toggleNavigation()\"><i class=\"fa fa-bars\"></i> </a>\r\n </div>\r\n <div class=\"sidebar-collapse\">\r\n <ul class=\"nav metismenu\" id=\"side-menu\">\r\n <li class=\"nav-header\">\r\n <div class=\"dropdown profile-element\">\r\n <a data-toggle=\"dropdown\" class=\"dropdown-toggle\" href=\"#\">\r\n <span class=\"block m-t-xs\"> <strong class=\"font-bold\"></strong> </span>\r\n <span class=\"text-muted text-xs block\"> <b class=\"caret\"></b> </span>\r\n </a>\r\n <ul class=\"dropdown-menu animated fadeInRight m-t-xs\">\r\n <li><a [routerLink]=\"['/login']\">Log out</a></li>\r\n </ul>\r\n </div>\r\n <div class=\"logo-element\"></div>\r\n </li>\r\n\r\n <li class=\"active\">\r\n <a href=\"#\">\r\n <i class=\"menu-icon fa fa-file\"></i>\r\n <span class=\"nav-label\">File</span>\r\n <span class=\"fa arrow\"></span>\r\n <ul class=\"nav nav-second-level\"></ul>\r\n </a>\r\n\r\n <ul class=\"nav nav-second-level\">\r\n <li>\r\n <a href=\"#\" data-toggle=\"modal\" data-target=\"#newCaseWarningModal\">\r\n <i class=\"fa fa-files-o\"></i>\r\n New Project\r\n </a>\r\n </li>\r\n <li>\r\n <a href=\"#\" (click)=\"openSaveFileDialog()\">\r\n <i class=\"fa fa-save\"></i>\r\n Download Project\r\n </a>\r\n </li>\r\n\r\n <li>\r\n <a href=\"#\" (click)=\"openLoadFileDialog()\">\r\n <i class=\"fa fa-folder-open-o\"></i>\r\n Open Project\r\n </a>\r\n </li>\r\n </ul>\r\n </li>\r\n\r\n <li>\r\n <a href=\"#\" title=\"Run case\" (click)=\"solveCase()\">\r\n <i class=\"fa fa-play\"></i> <span class=\"nav-label\">Run Case</span>\r\n </a>\r\n </li>\r\n\r\n <li>\r\n <a href=\"javascript:void(0)\">\r\n <i class=\"main-icon fa fa-wrench\"></i>\r\n <span class=\"nav-label\">Settings</span>\r\n <span class=\"fa arrow\"></span>\r\n </a>\r\n\r\n <ul class=\"nav nav-second-level submenu-lg\">\r\n <li>\r\n <a href=\"javascript:void(0)\" (click)=\"openOptimizationSettingsTable()\" title=\"Optimization settings table\">\r\n <i class=\"fa fa-table\"></i>\r\n Optimization Settings Table\r\n </a>\r\n </li>\r\n\r\n <li>\r\n <a (click)=\"openCaseSettings()\" href=\"javascript:void(0)\" title=\"Case Settings\">\r\n <i class=\"fa fa-wrench\"></i>\r\n Case Settings\r\n </a>\r\n </li>\r\n\r\n <li *ngIf=\"this.currentCase.constraintViolationEntries.length > 0\">\r\n <a (click)=\"openConstraintViolationReport()\" href=\"javascript:void(0)\" title=\"Case Settings\">\r\n <i class=\"fa fa-table\"></i>\r\n Constraint Violation Report\r\n </a>\r\n </li>\r\n </ul>\r\n </li>\r\n\r\n <li>\r\n <a href=\"javascript:void(0)\" title=\"KPI manager\" (click)=\"openKpiManagerModal()\">\r\n <i class=\"fa fa-tachometer\"></i>\r\n <span class=\"nav-label\">KPI Manager</span>\r\n </a>\r\n </li>\r\n <li li *ngIf=\"!isMultiPeriodEnabled\">\r\n <a href=\"#\" (click)=\"openCaseStudyModal()\" title=\"Case study manager\">\r\n <i class=\"fa fa-area-chart\"></i>\r\n <span class=\"nav-label\">Case study manager</span>\r\n </a>\r\n </li>\r\n <li>\r\n <a href=\"javascript:void(0);\" title=\"Open Cases List\" (click)=\"openCaseList()\">\r\n <i class=\"main-icon fa fa-list-alt\"></i>\r\n <span class=\"nav-label\"> Open Cases List </span>\r\n </a>\r\n </li>\r\n\r\n <li *ngIf=\"!isMultiPeriodEnabled\">\r\n <a href=\"javascript:void(0);\" title=\"Global KPI\" (click)=\"openGlobalKpiModal()\">\r\n <i class=\"main-icon fa fa-globe\"></i>\r\n <span class=\"nav-label\"> Global KPI </span>\r\n </a>\r\n </li>\r\n <li>\r\n <a href=\"javascript:void(0);\" title=\"Assay manager\" (click)=\"openAssayManagerModal()\">\r\n <i class=\"main-icon fa fa-flask\"></i>\r\n <span class=\"nav-label\"> Assay Manager </span>\r\n </a>\r\n </li>\r\n\r\n <li *ngIf=\"this.currentCase.isSolved\">\r\n <a href=\"javascript:void(0)\" (click)=\"openSummaryReport()\" title=\"Summary report\">\r\n <i class=\"fa fa-bar-chart\"></i>\r\n <span class=\"nav-label\">Summary Report</span>\r\n </a>\r\n </li>\r\n\r\n <li\r\n *ngIf=\"\r\n this.currentCase.multiPeriodEnabled &&\r\n this.currentCase.isSolved &&\r\n this.currentCase.multiPeriodSettings.multiPeriodResults\r\n \">\r\n <a href=\"javascript:void(0)\" (click)=\"openMultiPeriodResults()\" title=\"Multi Period Results\">\r\n <i class=\"fa fa-calendar\"></i>\r\n <span class=\"nav-label\">Multi Period Results</span>\r\n </a>\r\n </li>\r\n\r\n <li *ngIf=\"this.currentCase.isSolved\">\r\n <a href=\"javascript:void(0)\" (click)=\"openUpgraderReport()\" title=\"Upgrader report\">\r\n <i class=\"fa fa-arrow-circle-o-up fa-lg\"></i>\r\n <span class=\"nav-label\">Upgrader Report</span>\r\n </a>\r\n </li>\r\n\r\n <li *ngIf=\"this.currentCase.isSolved && !isMultiPeriodEnabled\">\r\n <a href=\"javascript:void(0)\" title=\"Excel Report\" (click)=\"excelReport()\">\r\n <i class=\"main-icon fa fa-download\"></i>\r\n <span class=\"nav-label\">Excel Report</span>\r\n </a>\r\n </li>\r\n\r\n <li>\r\n <a href=\"javascript:void(0)\">\r\n <i class=\"main-icon fa fa-info-circle\"></i>\r\n <span class=\"nav-label\">Info</span>\r\n <span class=\"fa arrow\"></span>\r\n </a>\r\n\r\n <ul class=\"nav nav-second-level submenu-lg\">\r\n <li>\r\n <a href=\"javascript:void(0)\" title=\"Case comments\" (click)=\"openCaseCommentsModal()\">\r\n <i class=\"main-icon fa fa-file-text\"></i>\r\n Case Comments\r\n </a>\r\n </li>\r\n\r\n <li>\r\n <a title=\"About\" (click)=\"openAboutWindow()\">\r\n <i class=\"main-icon fa fa-info-circle\"></i>\r\n About\r\n </a>\r\n </li>\r\n\r\n <li>\r\n <a title=\"Download product documentation\" (click)=\"downloadManual()\">\r\n <i class=\"main-icon fa fa-question-circle\" style=\"display: inline-block\"></i>\r\n Download Product Documentation\r\n </a>\r\n </li>\r\n </ul>\r\n </li>\r\n </ul>\r\n </div>\r\n</nav>\r\n\r\n<div id=\"newCaseWarningModal\" class=\"modal fade\">\r\n <div class=\"modal-dialog\">\r\n <div class=\"modal-content\">\r\n <div class=\"modal-header\">\r\n <button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"Close\">\r\n <span aria-hidden=\"true\">×</span>\r\n </button>\r\n <h4 class=\"modal-title\">Warning</h4>\r\n </div>\r\n\r\n <div class=\"modal-body\">\r\n A new case\r\n <!--project?-->\r\n will be created, all unsaved changes will be lost.\r\n </div>\r\n\r\n <div class=\"modal-footer\">\r\n <button type=\"button\" class=\"btn btn-primary\" data-dismiss=\"modal\" (click)=\"createNewProject()\">Accept</button>\r\n <button type=\"button\" class=\"btn btn-default\" data-dismiss=\"modal\">Cancel</button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n","import { AfterViewInit, Component } from '@angular/core';\r\nimport { FlowsheetService } from '../../_services/flowsheet.service';\r\nimport { CoreService } from '../../_services/core.service';\r\nimport { LogManagerService } from '../log-manager/log-manager.service';\r\nimport { ProgressIndicatorService } from '../progress-indicator/progress-indicator.service';\r\nimport { smoothlyMenu } from '../../app.helpers';\r\nimport { DownloadManualService } from '../../_services/download-manual.service';\r\n\r\n@Component({\r\n selector: 'sob-flowsheet-side-menu',\r\n templateUrl: './flowsheet-side-menu.component.html',\r\n styleUrls: ['./flowsheet-side-menu.component.css'],\r\n})\r\nexport class FlowsheetSideMenuComponent implements AfterViewInit {\r\n constructor(\r\n private flowsheetService: FlowsheetService,\r\n private coreService: CoreService,\r\n private logManager: LogManagerService,\r\n private progressIndicator: ProgressIndicatorService,\r\n private downloadManualService: DownloadManualService\r\n ) {}\r\n\r\n ngAfterViewInit() {\r\n (<any>$)('#side-menu').metisMenu();\r\n }\r\n\r\n createNewProject() {\r\n this.coreService.createEmptyProject(true);\r\n this.logManager.clearLogManager();\r\n this.logManager.info('New case created successfully');\r\n }\r\n\r\n openAboutWindow() {\r\n this.flowsheetService.closePropertyWindow();\r\n $('#aboutModal').modal('show');\r\n }\r\n\r\n openCaseSettings(): void {\r\n this.flowsheetService.closePropertyWindow();\r\n this.flowsheetService.openCaseSettings();\r\n }\r\n\r\n openConstraintViolationReport(): void {\r\n $('#constraintViolationReportModal').modal('show');\r\n }\r\n\r\n openKpiManagerModal(): void {\r\n this.flowsheetService.closePropertyWindow();\r\n $('#kpiManagerModal').modal('show');\r\n }\r\n\r\n openUncertaintyAnalysisModal(): void {\r\n this.flowsheetService.closePropertyWindow();\r\n $('#uncertaintyAnalysisModal').modal('show');\r\n }\r\n\r\n openCaseStudyModal() {\r\n this.flowsheetService.closePropertyWindow();\r\n $('#caseStudyModal').modal('show');\r\n }\r\n\r\n openSaveFileDialog(): void {\r\n this.flowsheetService.closePropertyWindow();\r\n $('#saveCaseModal').modal('show');\r\n }\r\n\r\n openLoadFileDialog(): void {\r\n this.flowsheetService.closePropertyWindow();\r\n $('#openCaseModal').modal('show');\r\n }\r\n\r\n openSummaryReport() {\r\n this.flowsheetService.closePropertyWindow();\r\n $('#summaryReportModal').modal('show');\r\n }\r\n\r\n openMultiPeriodResults() {\r\n this.flowsheetService.closePropertyWindow();\r\n $('#multiPeriodResultsModal').modal('show');\r\n }\r\n\r\n openUpgraderReport() {\r\n this.flowsheetService.closePropertyWindow();\r\n $('#upgraderReportModal').modal('show');\r\n }\r\n\r\n openAssayManagerModal() {\r\n this.flowsheetService.closePropertyWindow();\r\n $('#assayManagerModal').modal('show');\r\n }\r\n\r\n openOptimizationSettingsTable() {\r\n this.flowsheetService.closePropertyWindow();\r\n $('#optimizationSettingsTableModal').modal('show');\r\n }\r\n\r\n openFlowsheetComments() {\r\n this.flowsheetService.closePropertyWindow();\r\n $('#flowsheetCommentsModal').modal('show');\r\n }\r\n\r\n openCaseCommentsModal() {\r\n this.flowsheetService.closePropertyWindow();\r\n $('#caseCommentsModal').modal('show');\r\n }\r\n\r\n excelReport() {\r\n this.flowsheetService.closePropertyWindow();\r\n $('#excelReportModal').modal('show');\r\n }\r\n\r\n downloadManual() {\r\n this.downloadManualService.download();\r\n }\r\n\r\n solveCase(): void {\r\n this.flowsheetService.closePropertyWindow();\r\n if (this.currentCase.getActiveFlowsheet().isSubflowsheet()) {\r\n this.flowsheetService.exitToMainFlowsheet();\r\n }\r\n this.coreService.solveCase();\r\n }\r\n\r\n openCaseList() {\r\n this.flowsheetService.closePropertyWindow();\r\n $('#caseListModal').modal('show');\r\n }\r\n\r\n openGlobalKpiModal() {\r\n this.flowsheetService.closePropertyWindow();\r\n $('#globalKpiModal').modal('show');\r\n }\r\n\r\n toggleNavigation(): void {\r\n $('body').toggleClass('mini-navbar');\r\n smoothlyMenu();\r\n }\r\n\r\n get currentCase() {\r\n return this.coreService.currentCase;\r\n }\r\n\r\n get isMultiPeriodEnabled(): boolean {\r\n return !!this.currentCase.multiPeriodEnabled;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { CoreService } from '../core.service';\r\nimport { FlowsheetDiagramService } from '../flowsheet-diagram/flowsheet-diagram.service';\r\nimport { LogManagerService } from '../../flowsheet/log-manager/log-manager.service';\r\nimport { MultiPeriodEnabledOptions } from '../../_models/_multi-period/multi-period-enabled-options';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class MultiPeriodService {\r\n private multiPeriodModeEnabledSubject = new Subject<MultiPeriodEnabledOptions>();\r\n multiPeriodModeEnabledRequest = this.multiPeriodModeEnabledSubject.asObservable();\r\n\r\n private multiPeriodSettingsCompletedSubject = new Subject();\r\n multiPeriodSettingsCompletedRequest = this.multiPeriodSettingsCompletedSubject.asObservable();\r\n\r\n constructor(\r\n private core: CoreService,\r\n private flowsheetDiagramService: FlowsheetDiagramService,\r\n private toastr: ToastrService,\r\n private logManager: LogManagerService\r\n ) {}\r\n\r\n enableMultiPeriod(options: MultiPeriodEnabledOptions) {\r\n if (options.showNotification) {\r\n this.toastr.success('Multi Period mode enabled!', '', { timeOut: 1500 });\r\n this.logManager.info('Multi Period mode enabled!');\r\n }\r\n\r\n options.multiPeriodEnabled = true;\r\n this.currentCase.multiPeriodEnabled = true;\r\n this.flowsheetDiagramService.setMultiPeriodStyle();\r\n this.flowsheetDiagramService.setDiagramAsReadOnly();\r\n this.notifyMultiPeriodEnabled(options);\r\n }\r\n\r\n disableMultiPeriod(options: MultiPeriodEnabledOptions) {\r\n if (options.showNotification) {\r\n this.toastr.warning('Multi Period mode disabled!');\r\n this.logManager.info('Multi Period mode disabled!');\r\n }\r\n\r\n this.currentCase.multiPeriodEnabled = false;\r\n options.multiPeriodEnabled = false;\r\n this.flowsheetDiagramService.setNormalStyle();\r\n this.notifyMultiPeriodEnabled(options);\r\n this.flowsheetDiagramService.setDiagramAsEditable();\r\n }\r\n\r\n private notifyMultiPeriodEnabled(options: MultiPeriodEnabledOptions) {\r\n this.multiPeriodModeEnabledSubject.next(options);\r\n }\r\n\r\n notifyMultiPeriodSettingsCompleted() {\r\n this.multiPeriodSettingsCompletedSubject.next();\r\n }\r\n\r\n private get currentCase() {\r\n return this.core.currentCase;\r\n }\r\n}\r\n","<ul class=\"nav nav-pills\" role=\"tablist\" id=\"pillContainer\">\r\n <li role=\"presentation\" class=\"active\">\r\n <a\r\n href=\"#flowsheet-diagram-container\"\r\n aria-controls=\"flowsheet-diagram-container\"\r\n role=\"tab\"\r\n data-toggle=\"tab\"\r\n (click)=\"showControls()\">\r\n Flowsheet\r\n </a>\r\n </li>\r\n\r\n <li role=\"presentation\">\r\n <a\r\n href=\"#flowsheet-spreadsheet\"\r\n aria-controls=\"flowsheet-spreadsheet\"\r\n role=\"tab\"\r\n data-toggle=\"tab\"\r\n (click)=\"hideControls()\">\r\n Spreadsheet\r\n </a>\r\n </li>\r\n\r\n <li *ngIf=\"isSolved\" (click)=\"refreshSankey()\" role=\"presentation\">\r\n <a href=\"#sankey-container\" aria-controls=\"sankey-container\" role=\"tab\" data-toggle=\"tab\">Sankey diagram</a>\r\n </li>\r\n\r\n <li *ngIf=\"multiPeriodEnabled\" role=\"presentation\">\r\n <a\r\n href=\"#multi-period-settings-container\"\r\n aria-controls=\"multi-period-settings-container\"\r\n role=\"tab\"\r\n data-toggle=\"tab\"\r\n (click)=\"hideControls()\"\r\n >Multiperiod Settings</a\r\n >\r\n </li>\r\n</ul>\r\n","import { AfterViewInit, ChangeDetectorRef, Component, OnInit } from '@angular/core';\r\nimport { SankeyDiagramService } from '../sankey-diagram/sankey-diagram.service';\r\nimport { CoreService } from '../../_services/core.service';\r\nimport { MultiPeriodService } from '../../_services/multi-period/multi-period.service';\r\n\r\n@Component({\r\n selector: 'sob-flowsheet-view-selector',\r\n templateUrl: './flowsheet-view-selector.component.html',\r\n styleUrls: ['./flowsheet-view-selector.component.css'],\r\n})\r\nexport class FlowsheetViewSelectorComponent implements AfterViewInit, OnInit {\r\n firstTime = true;\r\n\r\n constructor(\r\n private sankeyDiagramService: SankeyDiagramService,\r\n private coreService: CoreService,\r\n private ref: ChangeDetectorRef,\r\n private multiPeriodService: MultiPeriodService\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.multiPeriodService.multiPeriodModeEnabledRequest.subscribe(options => {\r\n if (options.multiPeriodEnabled && options.showSettingsModal) {\r\n this.openMultiPeriodSettingsTab();\r\n } else {\r\n this.closeMultiPeriodSettingsTab();\r\n }\r\n });\r\n\r\n this.multiPeriodService.multiPeriodSettingsCompletedRequest.subscribe(() => {\r\n this.openDiagramTab();\r\n });\r\n }\r\n\r\n ngAfterViewInit() {\r\n $('#pillContainer').on('shown.bs.tab', () => {\r\n // TODO remove setTimeOut implementation, without it the diagram won't refresh correctly\r\n // TODO may be worth to call this once after sankey chart chart is loaded\r\n if ($('#sankey-container').hasClass('active')) {\r\n setTimeout(() => {\r\n this.sankeyDiagramService.zoomToFit();\r\n }, 5);\r\n }\r\n });\r\n }\r\n\r\n refreshSankey() {\r\n if (this.firstTime) {\r\n this.sankeyDiagramService.sankeyDiagram.delayInitialization(() => {\r\n this.sankeyDiagramService.sankeyDiagram.requestUpdate();\r\n });\r\n this.firstTime = false;\r\n }\r\n this.sankeyDiagramService.sankeyDiagram.requestUpdate();\r\n\r\n this.showSankeyControls();\r\n this.hidePalette();\r\n }\r\n\r\n private openMultiPeriodSettingsTab() {\r\n this.ref.detectChanges();\r\n this.hideControls();\r\n $('.nav-pills a[href=\"#multi-period-settings-container\"]').tab('show');\r\n }\r\n\r\n private closeMultiPeriodSettingsTab() {\r\n if ($('#multi-period-settings-container').hasClass('active')) {\r\n $('.nav-pills a[href=\"#flowsheet-diagram-container\"]').tab('show');\r\n }\r\n }\r\n\r\n private openDiagramTab() {\r\n this.ref.detectChanges();\r\n this.showControls();\r\n $('.nav-pills a[href=\"#flowsheet-diagram-container\"]').tab('show');\r\n }\r\n\r\n get isSolved() {\r\n return this.coreService.currentCase.isSolved;\r\n }\r\n\r\n get multiPeriodEnabled() {\r\n return this.coreService.currentCase.multiPeriodEnabled;\r\n }\r\n\r\n hideControls() {\r\n $('.control-wrapper').hide();\r\n $('.sankey-control-wrapper').hide();\r\n this.hidePalette();\r\n }\r\n\r\n showControls() {\r\n $('.control-wrapper').show();\r\n this.hideSankeyControls();\r\n\r\n // palette hidden in multiPeriod mode\r\n if (!this.multiPeriodEnabled) {\r\n this.showPalette();\r\n }\r\n }\r\n\r\n showSankeyControls() {\r\n $('.control-wrapper').hide();\r\n $('.sankey-control-wrapper').show();\r\n }\r\n\r\n hideSankeyControls() {\r\n $('.sankey-control-wrapper').hide();\r\n }\r\n\r\n hidePalette() {\r\n $('#paletteWrapper').hide();\r\n $('#paletteButton').hide();\r\n }\r\n\r\n showPalette() {\r\n $('#paletteWrapper').show();\r\n $('#paletteButton').show();\r\n }\r\n}\r\n","<div class=\"row border-bottom\" id=\"navbar-wrapper\">\r\n <nav class=\"navbar navbar-static-top\" id=\"flowsheet-navbar\" role=\"navigation\" style=\"margin-bottom: 0\">\r\n <div class=\"inline logo\">\r\n <img src=\"/assets/img/suncor-optea-logo.png\" alt=\"suncor logo\" />\r\n </div>\r\n\r\n <div class=\"inline\">\r\n <span class=\"page-title\">\r\n <i class=\"fa fa-chevron-right\"></i>\r\n </span>\r\n <!-- <span class=\"dropdown-container\">-->\r\n <!-- <select #caseSelector class=\"form-control control-xs\" (change)=\"setCurrentCase(caseSelector.value)\">-->\r\n <!-- <option [value]=\"c.id\" *ngFor=\"let c of currentProject.cases\"-->\r\n <!-- selected=\"{{c.id === currentCase.id ? 'selected' : ''}}\"> {{c.name ? c.name : 'Unnamed'}}-->\r\n <!-- </option>-->\r\n <!-- </select>-->\r\n <!-- </span>-->\r\n <div class=\"dropdown inline dropdown-container\" style=\"\">\r\n <h2 class=\"dropdown-toggle\" data-toggle=\"dropdown\">\r\n {{ currentCase.name }}\r\n <span class=\"caret\"></span>\r\n </h2>\r\n\r\n <ul class=\"dropdown-menu\" style=\"\">\r\n <ng-container *ngFor=\"let c of currentProject.cases\">\r\n <li class=\"{{ c.id === currentCase.id ? 'active' : '' }}\" (click)=\"setCurrentCase(c.id)\">\r\n <a href=\"javascript:void(0);\">\r\n {{ c.name }}\r\n </a>\r\n </li>\r\n </ng-container>\r\n </ul>\r\n </div>\r\n <a\r\n title=\"Change case name\"\r\n href=\"javascript:void(0);\"\r\n (click)=\"openCaseList()\"\r\n class=\"btn btn-sm btn-white\"\r\n style=\"margin-left: 20px\"\r\n ><i class=\"fa fa-pencil\"></i\r\n ></a>\r\n </div>\r\n <div class=\"pull-right\">\r\n <a id=\"search-btn\" (click)=\"openSearchModal()\" class=\"btn btn-white btn-rounded btn-sm\"\r\n ><i class=\"fa fa-search\"></i\r\n ></a>\r\n <sob-flowsheet-view-selector></sob-flowsheet-view-selector>\r\n <ul class=\"nav navbar-top-links\" style=\"display: inline-block\">\r\n <li class=\"dropdown\">\r\n <a class=\"dropdown-toggle count-info\" data-toggle=\"dropdown\" href=\"#\" aria-expanded=\"false\">\r\n <i class=\"fa fa-user\"></i> {{ user }} <i class=\"fa fa-angle-down\"></i>\r\n </a>\r\n <ul class=\"dropdown-menu dropdown-alerts\">\r\n <li>\r\n <a (click)=\"logout()\"> <i class=\"fa fa-sign-out\"></i> Log out </a>\r\n </li>\r\n </ul>\r\n </li>\r\n </ul>\r\n </div>\r\n </nav>\r\n</div>\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\nimport { AuthService } from '../../_services/auth.service';\r\nimport { UserService } from '../../_services/user.service';\r\nimport { CoreService } from '../../_services/core.service';\r\nimport { FlowsheetService } from '../../_services/flowsheet.service';\r\nimport { SankeyDiagramService } from '../sankey-diagram/sankey-diagram.service';\r\n\r\n@Component({\r\n selector: 'sob-flowsheet-navbar',\r\n templateUrl: './flowsheet-navbar.component.html',\r\n styleUrls: ['./flowsheet-navbar.component.css'],\r\n})\r\nexport class FlowsheetNavbarComponent implements OnInit {\r\n identity: any;\r\n token: any;\r\n user: string;\r\n role: string;\r\n subscription: Subscription;\r\n\r\n constructor(\r\n private _accessService: AuthService,\r\n private _userService: UserService,\r\n private coreService: CoreService,\r\n private sankeyService: SankeyDiagramService,\r\n private flowsheetService: FlowsheetService\r\n ) {}\r\n\r\n ngOnInit() {\r\n // identity has the token, userId and the expiration\r\n this.identity = this._accessService.getIdentity();\r\n this.token = this._accessService.getToken();\r\n this.role = this._accessService.getRole();\r\n if (this.identity != null && this.identity !== undefined && this.token !== undefined && this.token !== null) {\r\n // TODO bruh\r\n } else {\r\n this.user = null;\r\n this.logout();\r\n }\r\n\r\n this.subscription = this._accessService.userNameRequest.subscribe((response: string) => {\r\n this.user = response;\r\n });\r\n\r\n const user = this._userService.getCurrentUser();\r\n if (!this.user && user) {\r\n this.user = `${user.firstName} ${user.lastName}`;\r\n }\r\n }\r\n\r\n logout() {\r\n this._accessService.logout();\r\n }\r\n\r\n setCurrentCase(id: string) {\r\n if (id !== this.currentCase.id) {\r\n if (this.currentCase.getActiveFlowsheet().isSubflowsheet()) {\r\n this.flowsheetService.exitToMainFlowsheet();\r\n }\r\n this.coreService.setCurrentCaseById(id);\r\n this.sankeyService.caseToSankeyDiagram(this.coreService.currentCase);\r\n }\r\n }\r\n\r\n openCaseList() {\r\n this.flowsheetService.closePropertyWindow();\r\n $('#caseListModal').modal('show');\r\n }\r\n\r\n openSearchModal() {\r\n this.flowsheetService.closePropertyWindow();\r\n $('#searchModal').modal('show');\r\n $('#searchModal').data('bs.modal').$backdrop.css('background-color', 'transparent');\r\n $('#searchModal').on('shown.bs.modal', function () {\r\n $('#search-bar').focus();\r\n });\r\n }\r\n\r\n get currentCase() {\r\n return this.coreService.currentCase;\r\n }\r\n\r\n get currentProject() {\r\n return this.coreService.project;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport * as go from 'gojs';\r\nimport { FlowsheetDiagramService } from './flowsheet-diagram.service';\r\nimport { GojsInletPortOptions, GojsOutletPortOptions } from '../../_models/_gojs/gojs-port-options';\r\nimport { isTypeNumber } from '../../_utils/utils';\r\nimport { UnitOperationReadiness } from '../../_config/unit-operations/unit-operation-readiness';\r\nimport { AlignmentString } from '../../_utils/optea-utils';\r\n\r\n@Injectable()\r\nexport class GoJsDiagramUtils {\r\n $: any = go.GraphObject.make;\r\n\r\n constructor(private flowsheetDiagramService: FlowsheetDiagramService) {}\r\n\r\n public createNodeSelectionTemplate() {\r\n return this.$(\r\n go.Adornment,\r\n 'Auto',\r\n this.$(go.Shape, 'Rectangle', { fill: null, stroke: 'dodgerblue', strokeWidth: 2 }),\r\n this.$(go.Placeholder)\r\n );\r\n }\r\n\r\n /**\r\n * A background for the nodes that will prevent mistakenly dragging the diagram\r\n * when trying to drag a node and clicking on an empty space\r\n */\r\n public getNodeTransparentBackground() {\r\n return this.$(go.Shape, { margin: 0, figure: 'Rectangle', fill: 'Transparent', stroke: null });\r\n }\r\n\r\n getNameTextBlockTemplate(options: {\r\n textAlign: AlignmentString;\r\n marginTop?: number;\r\n marginRight?: number;\r\n marginLeft?: number;\r\n }) {\r\n return this.$(\r\n go.TextBlock,\r\n {\r\n textAlign: options.textAlign,\r\n margin: new go.Margin(options.marginTop || 0, options.marginRight || 0, 0, options.marginLeft || 0),\r\n maxSize: new go.Size(150, 400),\r\n wrap: go.TextBlock.WrapDesiredSize,\r\n stroke: '#0b84b6',\r\n font: '15px sans-serif',\r\n },\r\n new go.Binding('text', 'name'),\r\n new go.Binding('opacity', '', n => {\r\n return n.data.hiddenLabel ? 0 : 1;\r\n }).ofObject()\r\n );\r\n }\r\n\r\n getAllSidesBusyReadinessIndicator() {\r\n return this.getReadinessIndicatorTemplate({ x: 0.95, y: 0, offsetY: -3 });\r\n }\r\n\r\n getTopRightReadinessIndicator() {\r\n return this.getReadinessIndicatorTemplate({ x: 1, y: 0, offsetX: 2 });\r\n }\r\n\r\n getTopLeftReadinessIndicator() {\r\n return this.getReadinessIndicatorTemplate({ x: 0, y: 0, offsetX: -2 });\r\n }\r\n\r\n getTopCenterReadinessIndicator() {\r\n return this.getReadinessIndicatorTemplate({ x: 0.5, y: 0, offsetY: -10 });\r\n }\r\n\r\n getCenterRightReadinessIndicator() {\r\n return this.getReadinessIndicatorTemplate({ x: 1, y: 0.5, offsetX: 10 });\r\n }\r\n\r\n getBottomCenterReadinessIndicator(offsetY?: number) {\r\n return this.getReadinessIndicatorTemplate({ x: 0.5, y: 1, offsetY: isTypeNumber(offsetY) ? offsetY : 11 });\r\n }\r\n\r\n getReadinessIndicatorTemplate(options: { x: number; y: number; offsetX?: number; offsetY?: number }) {\r\n return this.$(\r\n go.Panel,\r\n 'Auto',\r\n {\r\n alignment: new go.Spot(options.x, options.y, options.offsetX || 0, options.offsetY || 0),\r\n },\r\n this.$(\r\n go.TextBlock,\r\n {\r\n name: 'ICON',\r\n margin: 5,\r\n font: 'bold 14pt FontAwesome',\r\n },\r\n {\r\n toolTip: this.$(\r\n go.Adornment,\r\n 'Auto',\r\n this.$(go.Shape, {\r\n stroke: 'transparent',\r\n fill: '#CEF6F5',\r\n }),\r\n\r\n this.$(\r\n go.TextBlock,\r\n { margin: 4 },\r\n new go.Binding('text', '', n => {\r\n return this.getReadinessTooltipText(n.data.readiness);\r\n }).ofObject()\r\n )\r\n ),\r\n },\r\n new go.Binding('stroke', '', n => {\r\n return this.getReadinessColor(n.data.readiness);\r\n }).ofObject(),\r\n new go.Binding('text', '', n => {\r\n return this.getReadinessIcon(n.data.readiness);\r\n }).ofObject()\r\n ),\r\n new go.Binding('visible', '', n => {\r\n const { readiness } = n.data;\r\n return readiness !== UnitOperationReadiness.READY;\r\n }).ofObject()\r\n );\r\n }\r\n\r\n private getReadinessColor(readiness: UnitOperationReadiness) {\r\n if (readiness === UnitOperationReadiness.NOT_FULLY_SPECIFIED) {\r\n return 'red';\r\n }\r\n\r\n if (readiness === UnitOperationReadiness.NOT_FULLY_CONNECTED) {\r\n return 'red';\r\n }\r\n\r\n return 'gray';\r\n }\r\n\r\n private getReadinessIcon(readiness: UnitOperationReadiness) {\r\n if (readiness === UnitOperationReadiness.NOT_FULLY_SPECIFIED) {\r\n return '\\uf06a';\r\n }\r\n\r\n if (readiness === UnitOperationReadiness.NOT_FULLY_CONNECTED) {\r\n return '\\uf06a';\r\n }\r\n\r\n return '\\uf059';\r\n }\r\n\r\n private getReadinessTooltipText(readiness: UnitOperationReadiness) {\r\n if (readiness === UnitOperationReadiness.NOT_FULLY_SPECIFIED) {\r\n return 'Not fully specified';\r\n }\r\n\r\n if (readiness === UnitOperationReadiness.NOT_FULLY_CONNECTED) {\r\n return 'Not fully connected';\r\n }\r\n\r\n return 'Unknown status';\r\n }\r\n\r\n createOutletPort(initializers: GojsOutletPortOptions) {\r\n return this.$(\r\n go.Panel,\r\n { alignment: initializers.alignment, cursor: 'pointer' },\r\n this.$(\r\n go.Shape,\r\n {\r\n width: initializers.width || 6,\r\n height: initializers.height || 6,\r\n portId: initializers.portId,\r\n name: initializers.name || '',\r\n fill: '#4972b0',\r\n stroke: 'Transparent',\r\n fromMaxLinks: isTypeNumber(initializers.fromMaxLinks) ? initializers.fromMaxLinks : Infinity,\r\n fromLinkable: true,\r\n fromSpot: initializers.fromSpot || go.Spot.RightSide,\r\n },\r\n new go.Binding('fromMaxLinks', 'fromMaxLinks'),\r\n {\r\n toolTip: this.createPortTooltip(initializers.toolTip),\r\n }\r\n )\r\n );\r\n }\r\n\r\n createInletPort(initializers: GojsInletPortOptions) {\r\n return this.$(\r\n go.Panel,\r\n 'Auto',\r\n { alignment: initializers.alignment, cursor: 'pointer' },\r\n this.$(\r\n go.Shape,\r\n {\r\n width: initializers.width || 6,\r\n height: initializers.height || 6,\r\n margin: initializers.margin || 0,\r\n portId: initializers.portId,\r\n name: initializers.name,\r\n fill: '#4972b0',\r\n stroke: 'Transparent',\r\n toLinkable: true,\r\n toMaxLinks: isTypeNumber(initializers.toMaxLinks) ? initializers.toMaxLinks : Infinity,\r\n toSpot: initializers.toSpot || go.Spot.LeftSide,\r\n },\r\n {\r\n toolTip: this.createPortTooltip(initializers.toolTip),\r\n },\r\n new go.Binding('height', 'height')\r\n )\r\n );\r\n }\r\n\r\n createNodeTooltip() {\r\n return this.$(\r\n go.Adornment,\r\n 'Auto',\r\n this.$(\r\n go.Shape,\r\n {\r\n stroke: 'transparent',\r\n },\r\n new go.Binding('fill', '', n => {\r\n return n.hiddenLabel ? '#CEF6F5' : 'transparent';\r\n })\r\n ),\r\n this.$(\r\n go.TextBlock,\r\n {\r\n margin: 4,\r\n },\r\n new go.Binding('text', '', n => {\r\n return n.hiddenLabel ? n.name : '';\r\n })\r\n )\r\n );\r\n }\r\n\r\n createPortTooltip(text: string) {\r\n return this.$(\r\n go.Adornment,\r\n 'Auto',\r\n this.$(go.Shape, {\r\n fill: '#CEF6F5',\r\n stroke: 'transparent',\r\n }),\r\n this.$(go.TextBlock, {\r\n margin: 4,\r\n text,\r\n })\r\n );\r\n }\r\n\r\n getClickEventHandlers() {\r\n return {\r\n doubleClick: (e, node) => {\r\n this.flowsheetDiagramService.doubleClickOnNode(node.data.id);\r\n },\r\n contextClick: (e, node) => {\r\n this.flowsheetDiagramService.contextClickOnNode(node.data.id);\r\n },\r\n };\r\n }\r\n\r\n toLocation(data: { x: number; y: number }) {\r\n return new go.Point(data.x, data.y);\r\n }\r\n\r\n getDeletableBinding() {\r\n return new go.Binding('deletable', 'deletable', deletable => (typeof deletable === 'undefined' ? true : deletable));\r\n }\r\n\r\n // region links\r\n createLinkToolTip() {\r\n return this.$(\r\n go.Adornment,\r\n 'Auto',\r\n this.$(go.Shape, {\r\n fill: '#CEF6F5',\r\n stroke: 'DarkGray',\r\n }),\r\n this.$(\r\n go.Panel,\r\n 'Vertical',\r\n { padding: new go.Margin(3, 5, 1, 5) },\r\n this.$(go.TextBlock, { alignment: go.Spot.Left }, new go.Binding('text', 'name')),\r\n this.$(go.TextBlock, { alignment: go.Spot.Left }, new go.Binding('text', 'connectionName')),\r\n this.$(\r\n go.Panel,\r\n 'Table',\r\n { defaultStretch: go.GraphObject.Horizontal, alignment: go.Spot.Left, margin: new go.Margin(3, 0, 0, 0) },\r\n this.$(go.TextBlock, { row: 0, column: 0, margin: new go.Margin(3, 7, 0, 0), text: 'Volumetric flowrate' }),\r\n this.$(\r\n go.TextBlock,\r\n { row: 0, column: 1, margin: new go.Margin(3, 7, 0, 0) },\r\n new go.Binding('text', 'volumetricFlowrate')\r\n ),\r\n this.$(\r\n go.TextBlock,\r\n { row: 0, column: 2, margin: new go.Margin(3, 7, 0, 0) },\r\n new go.Binding('text', 'volumetricFlowrateUnit')\r\n ),\r\n\r\n this.$(go.TextBlock, { row: 1, column: 0, margin: new go.Margin(3, 7, 0, 0), text: 'GHG intensity' }),\r\n this.$(\r\n go.TextBlock,\r\n { row: 1, column: 1, margin: new go.Margin(3, 7, 0, 0) },\r\n new go.Binding('text', 'ghgIntensity')\r\n ),\r\n this.$(\r\n go.TextBlock,\r\n { row: 1, column: 2, margin: new go.Margin(3, 7, 0, 0) },\r\n new go.Binding('text', 'ghgIntensityUnit')\r\n )\r\n )\r\n )\r\n );\r\n }\r\n\r\n createWaterLinkToolTip() {\r\n return this.$(\r\n go.Adornment,\r\n 'Auto',\r\n this.$(go.Shape, {\r\n fill: '#CEF6F5',\r\n stroke: 'DarkGray',\r\n }),\r\n this.$(\r\n go.Panel,\r\n 'Vertical',\r\n { padding: new go.Margin(3, 5, 1, 5) },\r\n this.$(go.TextBlock, { alignment: go.Spot.Left }, new go.Binding('text', 'name')),\r\n this.$(go.TextBlock, { alignment: go.Spot.Left }, new go.Binding('text', 'connectionName')),\r\n this.$(\r\n go.Panel,\r\n 'Table',\r\n { defaultStretch: go.GraphObject.Horizontal, alignment: go.Spot.Left, margin: new go.Margin(3, 0, 0, 0) },\r\n this.$(go.TextBlock, { row: 0, column: 0, margin: new go.Margin(3, 7, 0, 0), text: 'Mass Flowrate' }),\r\n this.$(\r\n go.TextBlock,\r\n { row: 0, column: 1, margin: new go.Margin(3, 7, 0, 0) },\r\n new go.Binding('text', 'massFlowrate')\r\n ),\r\n this.$(\r\n go.TextBlock,\r\n { row: 0, column: 2, margin: new go.Margin(3, 7, 0, 0) },\r\n new go.Binding('text', 'massFlowrateUnit')\r\n ),\r\n\r\n this.$(go.TextBlock, { row: 1, column: 0, margin: new go.Margin(3, 7, 0, 0), text: 'Temperature' }),\r\n this.$(\r\n go.TextBlock,\r\n { row: 1, column: 1, margin: new go.Margin(3, 7, 0, 0) },\r\n new go.Binding('text', 'temperature')\r\n ),\r\n this.$(\r\n go.TextBlock,\r\n { row: 1, column: 2, margin: new go.Margin(3, 7, 0, 0) },\r\n new go.Binding('text', 'temperatureUnit')\r\n ),\r\n\r\n this.$(go.TextBlock, { row: 2, column: 0, margin: new go.Margin(3, 7, 0, 0), text: 'Pressure' }),\r\n this.$(\r\n go.TextBlock,\r\n { row: 2, column: 1, margin: new go.Margin(3, 7, 0, 0) },\r\n new go.Binding('text', 'pressure')\r\n ),\r\n this.$(\r\n go.TextBlock,\r\n { row: 2, column: 2, margin: new go.Margin(3, 7, 0, 0) },\r\n new go.Binding('text', 'pressureUnit')\r\n )\r\n )\r\n )\r\n );\r\n }\r\n\r\n createFuelGasLinkToolTip() {\r\n return this.$(\r\n go.Adornment,\r\n 'Auto',\r\n this.$(go.Shape, {\r\n fill: '#CEF6F5',\r\n stroke: 'DarkGray',\r\n }),\r\n this.$(\r\n go.Panel,\r\n 'Vertical',\r\n { padding: new go.Margin(3, 5, 1, 5) },\r\n this.$(go.TextBlock, { alignment: go.Spot.Left }, new go.Binding('text', 'name')),\r\n this.$(go.TextBlock, { alignment: go.Spot.Left }, new go.Binding('text', 'connectionName')),\r\n this.$(\r\n go.Panel,\r\n 'Table',\r\n { defaultStretch: go.GraphObject.Horizontal, alignment: go.Spot.Left, margin: new go.Margin(3, 0, 0, 0) },\r\n this.$(go.TextBlock, { row: 0, column: 0, margin: new go.Margin(3, 7, 0, 0), text: 'Flowrate' }),\r\n this.$(\r\n go.TextBlock,\r\n { row: 0, column: 1, margin: new go.Margin(3, 7, 0, 0) },\r\n new go.Binding('text', 'flowrate')\r\n ),\r\n this.$(\r\n go.TextBlock,\r\n { row: 0, column: 2, margin: new go.Margin(3, 7, 0, 0) },\r\n new go.Binding('text', 'flowrateUnit')\r\n ),\r\n\r\n this.$(go.TextBlock, {\r\n row: 1,\r\n column: 0,\r\n margin: new go.Margin(3, 7, 0, 0),\r\n text: 'Heat Flow (LHV * Flow)',\r\n }),\r\n this.$(\r\n go.TextBlock,\r\n { row: 1, column: 1, margin: new go.Margin(3, 7, 0, 0) },\r\n new go.Binding('text', 'heatFlow')\r\n ),\r\n this.$(\r\n go.TextBlock,\r\n { row: 1, column: 2, margin: new go.Margin(3, 7, 0, 0) },\r\n new go.Binding('text', 'heatFlowUnit')\r\n ),\r\n\r\n this.$(go.TextBlock, { row: 1, column: 0, margin: new go.Margin(35, 7, 0, 0), text: 'LHV' }),\r\n this.$(\r\n go.TextBlock,\r\n { row: 1, column: 1, margin: new go.Margin(35, 7, 0, 0) },\r\n new go.Binding('text', 'lhv')\r\n ),\r\n this.$(\r\n go.TextBlock,\r\n { row: 1, column: 2, margin: new go.Margin(35, 7, 0, 0) },\r\n new go.Binding('text', 'lhvUnit')\r\n )\r\n )\r\n )\r\n );\r\n }\r\n // endregion\r\n}\r\n","export enum OtherDiagramObject {\r\n DIAGRAM_COMMENT = 'diagram-comment',\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport * as go from 'gojs';\r\nimport { FlowsheetDiagramService } from './flowsheet-diagram.service';\r\nimport { unitOperationsConfig } from '../../_config/unit-operations.config';\r\nimport { GoJsDiagramUtils } from './go-js-diagram-utils';\r\nimport { OtherDiagramObject } from '../../_config/other-diagram.object';\r\n\r\n@Injectable()\r\nexport class FlowsheetDiagramTemplateProvider {\r\n $: any = go.GraphObject.make;\r\n\r\n constructor(private flowsheetDiagramService: FlowsheetDiagramService, private gojsDiagramUtils: GoJsDiagramUtils) {}\r\n\r\n // region diagram templates\r\n getOverviewTemplate() {\r\n return this.$(go.Overview, 'overview');\r\n }\r\n\r\n getDiagramTemplate() {\r\n return this.$(go.Diagram, 'flowsheet-diagram', {\r\n allowCopy: false,\r\n initialContentAlignment: go.Spot.Center,\r\n LinkDrawn: e => {\r\n this.flowsheetDiagramService.linkDrawn(e);\r\n },\r\n // 'undoManager.isEnabled': true,\r\n // 'partRotated': nodeRotated,\r\n 'toolManager.hoverDelay': 60,\r\n 'toolManager.mouseWheelBehavior': go.ToolManager.WheelScroll,\r\n ExternalObjectsDropped: e => {\r\n const it = e.subject.iterator;\r\n\r\n while (it.next()) {\r\n if (it.value.data.category === OtherDiagramObject.DIAGRAM_COMMENT) {\r\n const diagram = it.value.diagram as go.Diagram;\r\n const textBlock = it.value.findObject('TEXT') as go.TextBlock;\r\n diagram.commandHandler.editTextBlock(textBlock);\r\n continue;\r\n }\r\n\r\n // should we calculate the name for the node here??\r\n this.flowsheetDiagramService.nodeCreated(it.value.data);\r\n }\r\n },\r\n SelectionDeleting: e => {\r\n const it = e.subject.iterator;\r\n\r\n // when only comments are deleted, do not clear results\r\n let clearResults = false;\r\n\r\n while (it.next()) {\r\n const part = it.value;\r\n\r\n if (!part.deletable || part.data.category === OtherDiagramObject.DIAGRAM_COMMENT) {\r\n continue;\r\n }\r\n\r\n // if this part is executed, it means that results should be cleared\r\n clearResults = true;\r\n if (part instanceof go.Node) {\r\n this.flowsheetDiagramService.nodeDeleted(part.data.id);\r\n } else if (part instanceof go.Link) {\r\n this.flowsheetDiagramService.linkDeleted(part.data);\r\n }\r\n }\r\n\r\n if (clearResults) {\r\n this.flowsheetDiagramService.clearCaseResults();\r\n }\r\n },\r\n SelectionMoved: e => {\r\n const it = e.subject.iterator;\r\n\r\n while (it.next()) {\r\n const part = it.value;\r\n\r\n if (part instanceof go.Node) {\r\n this.flowsheetDiagramService.nodeDragged(part.data);\r\n }\r\n }\r\n },\r\n });\r\n }\r\n\r\n createConstraintTooltip() {\r\n return this.$(\r\n go.Adornment,\r\n 'Auto',\r\n this.$(go.Shape, {\r\n fill: '#CEF6F5',\r\n stroke: 'transparent',\r\n }),\r\n this.$(\r\n go.Panel,\r\n 'Vertical',\r\n this.$(\r\n go.TextBlock,\r\n { margin: new go.Margin(5, 0, 0, 0), alignment: go.Spot.Center, font: 'bold 12px sans-serif' },\r\n new go.Binding('text', '', d => d.name)\r\n ),\r\n this.$(\r\n go.TextBlock,\r\n { margin: new go.Margin(5, 0, 0, 5), alignment: go.Spot.Left },\r\n new go.Binding('text', '', d => (d.constraintInfo.constraintValueDefined ? d.constraintInfo.statusText : '')),\r\n new go.Binding('visible', '', d => d.constraintInfo.constraintValueDefined)\r\n ),\r\n\r\n this.$(\r\n go.Panel,\r\n 'Vertical',\r\n { margin: new go.Margin(3) },\r\n new go.Binding('itemArray', '', d => d.constraintInfo.valuesTextInfo),\r\n {\r\n itemTemplate: this.$(\r\n go.Panel,\r\n 'Table',\r\n {\r\n defaultStretch: go.GraphObject.Horizontal,\r\n margin: new go.Margin(3, 0, 0, 5),\r\n alignment: go.Spot.Left,\r\n },\r\n this.$(\r\n go.Panel,\r\n 'TableRow',\r\n { row: 0, alignment: go.Spot.Left },\r\n this.$(\r\n go.TextBlock,\r\n { column: 0, margin: new go.Margin(3, 7, 0, 0), alignment: go.Spot.Left },\r\n new go.Binding('text', 'variableName')\r\n ),\r\n this.$(\r\n go.TextBlock,\r\n { column: 1, margin: new go.Margin(3, 7, 0, 0), alignment: go.Spot.Left },\r\n new go.Binding('text', 'variableValue')\r\n ),\r\n this.$(go.TextBlock, { column: 2, margin: new go.Margin(3, 7, 0, 0) }, new go.Binding('text', 'unit')),\r\n new go.Binding('visible', '', d => !!d.variableValue)\r\n ),\r\n\r\n this.$(\r\n go.Panel,\r\n 'TableRow',\r\n { row: 1, alignment: go.Spot.Left },\r\n this.$(\r\n go.TextBlock,\r\n { column: 0, margin: new go.Margin(3, 7, 0, 0), alignment: go.Spot.Left },\r\n new go.Binding('text', 'constraintName')\r\n ),\r\n this.$(\r\n go.TextBlock,\r\n { column: 1, margin: new go.Margin(3, 7, 0, 0), alignment: go.Spot.Left },\r\n new go.Binding('text', 'constraintValue')\r\n ),\r\n this.$(go.TextBlock, { column: 2, margin: new go.Margin(3, 7, 0, 0) }, new go.Binding('text', 'unit')),\r\n new go.Binding('visible', '', d => !!d.constraintValue && !!d.variableValue)\r\n )\r\n ),\r\n }\r\n )\r\n )\r\n );\r\n }\r\n\r\n // region linkTemplates\r\n getLinkTemplate() {\r\n return this.$(\r\n go.Link,\r\n {\r\n routing: go.Link.Orthogonal,\r\n corner: 2,\r\n reshapable: true,\r\n adjusting: go.Link.End,\r\n layerName: 'Background',\r\n },\r\n new go.Binding('points').makeTwoWay(),\r\n this.$(\r\n go.Shape,\r\n new go.Binding('stroke', '', d => {\r\n return d.dashedLine ? '#777' : d.streamColor;\r\n }),\r\n\r\n new go.Binding('strokeWidth', '', d => {\r\n return d.dashedLine ? 1 : 2;\r\n }),\r\n\r\n new go.Binding('strokeDashArray', '', d => {\r\n return d.dashedLine ? [6, 3] : null;\r\n })\r\n ),\r\n this.$(\r\n go.Shape,\r\n { toArrow: 'OpenTriangle' },\r\n new go.Binding('stroke', '', d => {\r\n return d.dashedLine ? '#777' : d.streamColor;\r\n }).makeTwoWay(),\r\n\r\n new go.Binding('strokeWidth', '', d => {\r\n return d.dashedLine ? 1 : 2;\r\n })\r\n ),\r\n this.$(\r\n go.Picture,\r\n { width: 25, height: 25, source: unitOperationsConfig.recycleStream.diagramIcon },\r\n new go.Binding('visible', '', link => {\r\n return !!link.isRecycleStream;\r\n })\r\n ),\r\n {\r\n doubleClick: (e, link) => {\r\n this.flowsheetDiagramService.doubleClickOnLink(link.data.id);\r\n },\r\n\r\n toolTip: this.gojsDiagramUtils.createLinkToolTip(),\r\n\r\n selectionAdornmentTemplate: this.$(\r\n go.Adornment,\r\n this.$(go.Shape, { isPanelMain: true, stroke: 'dodgerblue', strokeWidth: 2 }),\r\n this.$(go.Shape, { toArrow: 'OpenTriangle', strokeWidth: 2, stroke: 'dodgerblue' })\r\n ),\r\n }\r\n );\r\n }\r\n\r\n getWaterLinkTemplate() {\r\n return this.$(\r\n go.Link,\r\n {\r\n routing: go.Link.Orthogonal,\r\n corner: 2,\r\n reshapable: true,\r\n adjusting: go.Link.End,\r\n layerName: 'Background',\r\n },\r\n new go.Binding('points').makeTwoWay(),\r\n\r\n this.$(\r\n go.Shape,\r\n new go.Binding('stroke', '', d => {\r\n return d.dashedLine ? '#777' : d.streamColor;\r\n }),\r\n\r\n new go.Binding('strokeWidth', '', d => {\r\n return d.dashedLine ? 1 : 2;\r\n }),\r\n\r\n new go.Binding('strokeDashArray', '', d => {\r\n return d.dashedLine ? [6, 3] : null;\r\n })\r\n ),\r\n this.$(\r\n go.Shape,\r\n { toArrow: 'OpenTriangle' },\r\n\r\n new go.Binding('stroke', '', d => {\r\n return d.dashedLine ? '#777' : d.streamColor;\r\n }).makeTwoWay(),\r\n\r\n new go.Binding('strokeWidth', '', d => {\r\n return d.dashedLine ? 1 : 2;\r\n })\r\n ),\r\n this.$(\r\n go.Picture,\r\n { width: 25, height: 25, source: unitOperationsConfig.recycleStream.diagramIcon },\r\n new go.Binding('visible', '', link => {\r\n return !!link.isRecycleStream;\r\n })\r\n ),\r\n {\r\n doubleClick: (e, link) => {\r\n this.flowsheetDiagramService.doubleClickOnWaterLink(link.data.id);\r\n },\r\n\r\n toolTip: this.gojsDiagramUtils.createWaterLinkToolTip(),\r\n\r\n selectionAdornmentTemplate: this.$(\r\n go.Adornment,\r\n this.$(go.Shape, { isPanelMain: true, stroke: 'dodgerblue', strokeWidth: 2 }),\r\n this.$(go.Shape, { toArrow: 'OpenTriangle', strokeWidth: 2, stroke: 'dodgerblue' })\r\n ),\r\n }\r\n );\r\n }\r\n\r\n getFuelGasLinkTemplate() {\r\n return this.$(\r\n go.Link,\r\n {\r\n routing: go.Link.Orthogonal,\r\n corner: 2,\r\n reshapable: true,\r\n adjusting: go.Link.End,\r\n layerName: 'Background',\r\n },\r\n new go.Binding('points').makeTwoWay(),\r\n\r\n this.$(\r\n go.Shape,\r\n new go.Binding('stroke', '', d => {\r\n return d.dashedLine ? '#777' : d.streamColor;\r\n }),\r\n\r\n new go.Binding('strokeWidth', '', d => {\r\n return d.dashedLine ? 1 : 2;\r\n }),\r\n\r\n new go.Binding('strokeDashArray', '', d => {\r\n return d.dashedLine ? [6, 3] : null;\r\n })\r\n ),\r\n this.$(\r\n go.Shape,\r\n { toArrow: 'OpenTriangle' },\r\n\r\n new go.Binding('stroke', '', d => {\r\n return d.dashedLine ? '#777' : d.streamColor;\r\n }).makeTwoWay(),\r\n\r\n new go.Binding('strokeWidth', '', d => {\r\n return d.dashedLine ? 1 : 2;\r\n })\r\n ),\r\n this.$(\r\n go.Picture,\r\n { width: 25, height: 25, source: unitOperationsConfig.recycleStream.diagramIcon },\r\n new go.Binding('visible', '', link => {\r\n return !!link.isRecycleStream;\r\n })\r\n ),\r\n {\r\n doubleClick: (e, link) => {\r\n this.flowsheetDiagramService.doubleClickOnFuelGasLink(link.data.id);\r\n },\r\n\r\n toolTip: this.gojsDiagramUtils.createFuelGasLinkToolTip(),\r\n\r\n selectionAdornmentTemplate: this.$(\r\n go.Adornment,\r\n this.$(go.Shape, { isPanelMain: true, stroke: 'dodgerblue', strokeWidth: 2 }),\r\n this.$(go.Shape, { toArrow: 'OpenTriangle', strokeWidth: 2, stroke: 'dodgerblue' })\r\n ),\r\n }\r\n );\r\n }\r\n // endregion\r\n\r\n getContextMenuTemplate(): any {\r\n return this.$(\r\n go.Adornment,\r\n 'Vertical',\r\n this.$(\r\n 'ContextMenuButton',\r\n this.$(go.TextBlock, 'Undo'),\r\n {\r\n click: e => {\r\n e.diagram.commandHandler.undo();\r\n },\r\n },\r\n new go.Binding('visible', '', o => {\r\n return o.diagram.commandHandler.canUndo();\r\n }).ofObject()\r\n ),\r\n this.$(\r\n 'ContextMenuButton',\r\n this.$(go.TextBlock, 'Redo'),\r\n {\r\n click: e => {\r\n e.diagram.commandHandler.redo();\r\n },\r\n },\r\n new go.Binding('visible', '', o => {\r\n return o.diagram.commandHandler.canRedo();\r\n }).ofObject()\r\n )\r\n );\r\n }\r\n\r\n getModelTemplate(): any {\r\n return this.$(go.GraphLinksModel, {\r\n linkFromPortIdProperty: 'fromPort', // required information:\r\n linkToPortIdProperty: 'toPort', // identifies data property names\r\n nodeDataArray: [],\r\n linkDataArray: [],\r\n linkKeyProperty: 'linkKey',\r\n });\r\n }\r\n\r\n // endregion\r\n\r\n // region unit operation templates\r\n getDiluentSourceTemplate() {\r\n return this.$(\r\n go.Node,\r\n 'Spot',\r\n {\r\n selectionAdornmentTemplate: this.gojsDiagramUtils.createNodeSelectionTemplate(),\r\n locationObjectName: 'ICON',\r\n },\r\n this.$(\r\n go.Panel,\r\n 'Auto',\r\n this.gojsDiagramUtils.getNodeTransparentBackground(),\r\n\r\n this.$(\r\n go.Panel,\r\n 'Horizontal',\r\n this.gojsDiagramUtils.getNameTextBlockTemplate({ textAlign: 'right', marginTop: 6 }),\r\n this.$(\r\n go.Panel,\r\n 'Spot',\r\n this.$(go.Picture, {\r\n name: 'ICON',\r\n desiredSize: new go.Size(40, 40),\r\n margin: 5,\r\n source: unitOperationsConfig.diluentSource.diagramIcon,\r\n }),\r\n this.$(go.Shape, 'Rectangle', { width: 40, height: 40, fill: 'Transparent', stroke: null }),\r\n this.gojsDiagramUtils.createOutletPort({\r\n alignment: new go.Spot(1, 0.5),\r\n fromMaxLinks: 1,\r\n portId: 'out',\r\n toolTip: 'Out',\r\n }),\r\n this.gojsDiagramUtils.getTopRightReadinessIndicator()\r\n )\r\n )\r\n ),\r\n\r\n new go.Binding('location', 'location', this.gojsDiagramUtils.toLocation).makeTwoWay(),\r\n this.gojsDiagramUtils.getDeletableBinding(),\r\n this.gojsDiagramUtils.getClickEventHandlers(),\r\n { toolTip: this.gojsDiagramUtils.createNodeTooltip() }\r\n );\r\n }\r\n\r\n getMineTemplate() {\r\n return this.$(\r\n go.Node,\r\n 'Spot',\r\n {\r\n selectionAdornmentTemplate: this.gojsDiagramUtils.createNodeSelectionTemplate(),\r\n locationObjectName: 'ICON',\r\n },\r\n this.$(\r\n go.Panel,\r\n 'Auto',\r\n this.gojsDiagramUtils.getNodeTransparentBackground(),\r\n this.$(\r\n go.Panel,\r\n 'Horizontal',\r\n this.gojsDiagramUtils.getNameTextBlockTemplate({ textAlign: 'right', marginTop: 6 }),\r\n\r\n this.$(\r\n go.Panel,\r\n 'Spot',\r\n this.$(go.Picture, {\r\n name: 'ICON',\r\n desiredSize: new go.Size(40, 40),\r\n margin: 5,\r\n source: unitOperationsConfig.mine.diagramIcon,\r\n }),\r\n this.gojsDiagramUtils.createOutletPort({\r\n alignment: new go.Spot(1, 0.5),\r\n fromMaxLinks: 1,\r\n portId: 'out',\r\n toolTip: 'Out',\r\n }),\r\n this.gojsDiagramUtils.getTopRightReadinessIndicator()\r\n )\r\n )\r\n ),\r\n new go.Binding('location', 'location', this.gojsDiagramUtils.toLocation).makeTwoWay(),\r\n this.gojsDiagramUtils.getDeletableBinding(),\r\n this.gojsDiagramUtils.getClickEventHandlers(),\r\n { toolTip: this.gojsDiagramUtils.createNodeTooltip() }\r\n );\r\n }\r\n\r\n getMixerTemplate() {\r\n return this.$(\r\n go.Node,\r\n 'Spot',\r\n {\r\n selectionAdornmentTemplate: this.gojsDiagramUtils.createNodeSelectionTemplate(),\r\n locationObjectName: 'ICON',\r\n // dragComputation: AvoidOverlapHelper.avoidNodeOverlap,\r\n linkConnected: (node, link, port) => {\r\n if (port.portId === 'in' && node.findLinksInto().count > 2) {\r\n const icon = node.findObject('ICON');\r\n const inlet = node.findObject('IN');\r\n const outlet = node.findObject('OUT');\r\n\r\n const proportion = (icon.height + 5) / icon.height;\r\n icon.width *= proportion;\r\n icon.height *= proportion;\r\n\r\n inlet.width *= proportion;\r\n inlet.height *= proportion;\r\n\r\n outlet.width *= proportion;\r\n outlet.height *= proportion;\r\n }\r\n },\r\n\r\n linkDisconnected: (node, link, port) => {\r\n if (port.portId === 'in' && node.findLinksInto().count >= 2) {\r\n const icon = node.findObject('ICON');\r\n const inlet = node.findObject('IN');\r\n const outlet = node.findObject('OUT');\r\n\r\n const proportion = (icon.height - 5) / icon.height;\r\n icon.width *= proportion;\r\n icon.height *= proportion;\r\n\r\n inlet.width *= proportion;\r\n inlet.height *= proportion;\r\n\r\n outlet.width *= proportion;\r\n outlet.height *= proportion;\r\n }\r\n },\r\n },\r\n this.$(\r\n go.Panel,\r\n 'Auto',\r\n this.gojsDiagramUtils.getNodeTransparentBackground(),\r\n\r\n this.$(\r\n go.Panel,\r\n 'Vertical',\r\n this.gojsDiagramUtils.getNameTextBlockTemplate({ textAlign: 'right' }),\r\n this.$(\r\n go.Panel,\r\n 'Spot',\r\n this.$(go.Picture, {\r\n name: 'ICON',\r\n desiredSize: new go.Size(22, 28),\r\n source: unitOperationsConfig.mixer.diagramIcon,\r\n }),\r\n this.gojsDiagramUtils.createInletPort({\r\n alignment: new go.Spot(0, 0.5),\r\n portId: 'in',\r\n name: 'IN',\r\n width: 4,\r\n height: 39,\r\n toolTip: 'In',\r\n }),\r\n this.gojsDiagramUtils.createOutletPort({\r\n alignment: new go.Spot(0.88, 0.5),\r\n portId: 'out',\r\n name: 'OUT',\r\n fromMaxLinks: 1,\r\n width: 6,\r\n height: 4,\r\n toolTip: 'Out',\r\n }),\r\n this.gojsDiagramUtils.getTopRightReadinessIndicator()\r\n )\r\n )\r\n ),\r\n new go.Binding('location', 'location', this.gojsDiagramUtils.toLocation).makeTwoWay(),\r\n this.gojsDiagramUtils.getDeletableBinding(),\r\n this.gojsDiagramUtils.getClickEventHandlers(),\r\n { toolTip: this.gojsDiagramUtils.createNodeTooltip() }\r\n );\r\n }\r\n\r\n getCommodityTankTemplate() {\r\n return this.$(\r\n go.Node,\r\n 'Spot',\r\n {\r\n selectionAdornmentTemplate: this.gojsDiagramUtils.createNodeSelectionTemplate(),\r\n locationObjectName: 'ICON',\r\n // dragComputation: AvoidOverlapHelper.avoidNodeOverlap,\r\n linkConnected: (node, link, port) => {\r\n if (port.portId === 'in' && node.findLinksInto().count > 2) {\r\n const icon = node.findObject('ICON');\r\n const inlet = node.findObject('IN');\r\n\r\n const proportion = (icon.height + 5) / icon.height;\r\n icon.width *= proportion;\r\n icon.height *= proportion;\r\n\r\n inlet.width *= proportion;\r\n inlet.height *= proportion;\r\n }\r\n },\r\n\r\n linkDisconnected: (node, link, port) => {\r\n if (port.portId === 'in' && node.findLinksInto().count >= 2) {\r\n const icon = node.findObject('ICON');\r\n const inlet = node.findObject('IN');\r\n\r\n const proportion = (icon.height - 5) / icon.height;\r\n icon.width *= proportion;\r\n icon.height *= proportion;\r\n\r\n inlet.width *= proportion;\r\n inlet.height *= proportion;\r\n }\r\n },\r\n },\r\n this.$(\r\n go.Panel,\r\n 'Auto',\r\n this.gojsDiagramUtils.getNodeTransparentBackground(),\r\n this.$(\r\n go.Panel,\r\n 'Vertical',\r\n this.gojsDiagramUtils.getNameTextBlockTemplate({ textAlign: 'center' }),\r\n this.$(\r\n go.Panel,\r\n 'Spot',\r\n this.$(go.Picture, {\r\n name: 'ICON',\r\n desiredSize: new go.Size(40, 40),\r\n source: unitOperationsConfig.commodityTank.diagramIcon,\r\n }),\r\n this.gojsDiagramUtils.createInletPort({\r\n alignment: new go.Spot(0, 0.5),\r\n portId: 'in',\r\n name: 'IN',\r\n width: 4,\r\n height: 39,\r\n toolTip: 'In',\r\n }),\r\n this.gojsDiagramUtils.getCenterRightReadinessIndicator()\r\n )\r\n )\r\n ),\r\n new go.Binding('location', 'location', this.gojsDiagramUtils.toLocation).makeTwoWay(),\r\n this.gojsDiagramUtils.getDeletableBinding(),\r\n this.gojsDiagramUtils.getClickEventHandlers(),\r\n { toolTip: this.gojsDiagramUtils.createNodeTooltip() }\r\n );\r\n }\r\n\r\n getOffshoreTemplate() {\r\n return this.$(\r\n go.Node,\r\n 'Spot',\r\n {\r\n selectionAdornmentTemplate: this.gojsDiagramUtils.createNodeSelectionTemplate(),\r\n locationObjectName: 'ICON',\r\n },\r\n this.$(\r\n go.Panel,\r\n 'Auto',\r\n this.gojsDiagramUtils.getNodeTransparentBackground(),\r\n this.$(\r\n go.Panel,\r\n 'Horizontal',\r\n this.gojsDiagramUtils.getNameTextBlockTemplate({ textAlign: 'right', marginTop: 6 }),\r\n this.$(\r\n go.Panel,\r\n 'Spot',\r\n this.$(go.Picture, {\r\n name: 'ICON',\r\n desiredSize: new go.Size(40, 40),\r\n margin: 5,\r\n source: unitOperationsConfig.offshore.diagramIcon,\r\n }),\r\n this.$(go.Shape, 'Circle', { width: 40, height: 40, fill: 'Transparent', stroke: null }),\r\n this.gojsDiagramUtils.createOutletPort({\r\n alignment: new go.Spot(1, 0.5),\r\n fromMaxLinks: 1,\r\n portId: 'out',\r\n toolTip: 'Out',\r\n }),\r\n this.gojsDiagramUtils.getTopRightReadinessIndicator()\r\n )\r\n )\r\n ),\r\n new go.Binding('location', 'location', this.gojsDiagramUtils.toLocation).makeTwoWay(),\r\n this.gojsDiagramUtils.getDeletableBinding(),\r\n this.gojsDiagramUtils.getClickEventHandlers(),\r\n { toolTip: this.gojsDiagramUtils.createNodeTooltip() }\r\n );\r\n }\r\n\r\n getPipeTemplate() {\r\n return this.$(\r\n go.Node,\r\n 'Spot',\r\n {\r\n selectionAdornmentTemplate: this.gojsDiagramUtils.createNodeSelectionTemplate(),\r\n locationObjectName: 'ICON',\r\n // dragComputation: AvoidOverlapHelper.avoidNodeOverlap\r\n },\r\n this.$(\r\n go.Panel,\r\n 'Auto',\r\n this.gojsDiagramUtils.getNodeTransparentBackground(),\r\n this.$(\r\n go.Panel,\r\n 'Vertical',\r\n this.gojsDiagramUtils.getNameTextBlockTemplate({ textAlign: 'center', marginRight: 6 }),\r\n this.$(\r\n go.Panel,\r\n 'Spot',\r\n this.$(go.Picture, {\r\n name: 'ICON',\r\n desiredSize: new go.Size(40, 40),\r\n margin: 0,\r\n source: unitOperationsConfig.pipe.diagramIcon,\r\n }),\r\n this.gojsDiagramUtils.createInletPort({\r\n alignment: new go.Spot(0, 0.5),\r\n toMaxLinks: 1,\r\n portId: 'in',\r\n toolTip: 'In',\r\n }),\r\n this.gojsDiagramUtils.createOutletPort({\r\n alignment: new go.Spot(1, 0.5),\r\n fromMaxLinks: 1,\r\n portId: 'out',\r\n toolTip: 'Out',\r\n }),\r\n this.gojsDiagramUtils.getBottomCenterReadinessIndicator()\r\n )\r\n )\r\n ),\r\n new go.Binding('location', 'location', this.gojsDiagramUtils.toLocation).makeTwoWay(),\r\n this.gojsDiagramUtils.getDeletableBinding(),\r\n this.gojsDiagramUtils.getClickEventHandlers(),\r\n {\r\n toolTip: this.createConstraintTooltip(),\r\n }\r\n );\r\n }\r\n\r\n getBitumenConversionTemplate() {\r\n return this.$(\r\n go.Node,\r\n 'Spot',\r\n {\r\n selectionAdornmentTemplate: this.gojsDiagramUtils.createNodeSelectionTemplate(),\r\n locationObjectName: 'ICON',\r\n // dragComputation: AvoidOverlapHelper.avoidNodeOverlap\r\n },\r\n this.$(\r\n go.Panel,\r\n 'Auto',\r\n this.gojsDiagramUtils.getNodeTransparentBackground(),\r\n this.$(\r\n go.Panel,\r\n 'Vertical',\r\n this.gojsDiagramUtils.getNameTextBlockTemplate({ textAlign: 'center' }),\r\n this.$(\r\n go.Panel,\r\n 'Spot',\r\n this.$(go.Picture, {\r\n name: 'ICON',\r\n desiredSize: new go.Size(40, 40),\r\n source: unitOperationsConfig.bitumenConversion.diagramIcon,\r\n }),\r\n this.$(go.Shape, 'Circle', { width: 40, height: 40, fill: 'Transparent', stroke: null }),\r\n this.gojsDiagramUtils.createInletPort({\r\n alignment: new go.Spot(0, 0.5),\r\n toMaxLinks: 1,\r\n portId: 'in',\r\n toolTip: 'In',\r\n }),\r\n this.gojsDiagramUtils.createOutletPort({\r\n alignment: new go.Spot(1, 0.5),\r\n portId: 'out',\r\n width: 4,\r\n height: 39,\r\n toolTip: 'Out',\r\n }),\r\n this.gojsDiagramUtils.getTopCenterReadinessIndicator()\r\n )\r\n )\r\n ),\r\n new go.Binding('location', 'location', this.gojsDiagramUtils.toLocation).makeTwoWay(),\r\n this.gojsDiagramUtils.getDeletableBinding(),\r\n this.gojsDiagramUtils.getClickEventHandlers(),\r\n { toolTip: this.gojsDiagramUtils.createNodeTooltip() }\r\n );\r\n }\r\n\r\n getRefineryTemplate() {\r\n return this.$(\r\n go.Node,\r\n 'Spot',\r\n {\r\n selectionAdornmentTemplate: this.gojsDiagramUtils.createNodeSelectionTemplate(),\r\n locationObjectName: 'ICON',\r\n // dragComputation: AvoidOverlapHelper.avoidNodeOverlap\r\n },\r\n this.$(\r\n go.Panel,\r\n 'Auto',\r\n this.gojsDiagramUtils.getNodeTransparentBackground(),\r\n\r\n this.$(\r\n go.Panel,\r\n 'Horizontal',\r\n this.$(\r\n go.Panel,\r\n 'Spot',\r\n\r\n this.$(go.Picture, {\r\n name: 'ICON',\r\n desiredSize: new go.Size(40, 40),\r\n margin: 5,\r\n source: unitOperationsConfig.refinery.diagramIcon,\r\n }),\r\n\r\n this.$(go.Shape, 'Circle', { width: 40, height: 40, fill: 'Transparent', stroke: null }),\r\n this.gojsDiagramUtils.createInletPort({\r\n alignment: new go.Spot(0, 0.5),\r\n toMaxLinks: 1,\r\n portId: 'in',\r\n toolTip: 'Train 1',\r\n }),\r\n this.gojsDiagramUtils.getTopLeftReadinessIndicator()\r\n ),\r\n\r\n this.gojsDiagramUtils.getNameTextBlockTemplate({ textAlign: 'left', marginTop: 6 })\r\n )\r\n ),\r\n new go.Binding('location', 'location', this.gojsDiagramUtils.toLocation).makeTwoWay(),\r\n this.gojsDiagramUtils.getDeletableBinding(),\r\n this.gojsDiagramUtils.getClickEventHandlers(),\r\n {\r\n toolTip: this.createConstraintTooltip(),\r\n }\r\n );\r\n }\r\n\r\n getMultipleInletRefineryTemplate() {\r\n return this.$(\r\n go.Node,\r\n 'Spot',\r\n {\r\n selectionAdornmentTemplate: this.gojsDiagramUtils.createNodeSelectionTemplate(),\r\n locationObjectName: 'ICON',\r\n // dragComputation: AvoidOverlapHelper.avoidNodeOverlap\r\n },\r\n this.$(\r\n go.Panel,\r\n 'Auto',\r\n this.gojsDiagramUtils.getNodeTransparentBackground(),\r\n this.$(\r\n go.Panel,\r\n 'Horizontal',\r\n this.$(\r\n go.Panel,\r\n 'Spot',\r\n this.$(go.Picture, {\r\n name: 'ICON',\r\n desiredSize: new go.Size(40, 40),\r\n margin: 5,\r\n source: unitOperationsConfig.refinery.diagramIcon,\r\n }),\r\n this.gojsDiagramUtils.createInletPort({\r\n alignment: new go.Spot(0, 0.25),\r\n toMaxLinks: 1,\r\n portId: 'in',\r\n toolTip: 'Train 1',\r\n }),\r\n this.gojsDiagramUtils.createInletPort({\r\n alignment: new go.Spot(0, 0.75),\r\n toMaxLinks: 1,\r\n portId: 'train2',\r\n toolTip: 'Train 2',\r\n }),\r\n this.gojsDiagramUtils.getTopRightReadinessIndicator()\r\n ),\r\n this.gojsDiagramUtils.getNameTextBlockTemplate({ textAlign: 'left', marginTop: 6 })\r\n )\r\n ),\r\n new go.Binding('location', 'location', this.gojsDiagramUtils.toLocation).makeTwoWay(),\r\n this.gojsDiagramUtils.getDeletableBinding(),\r\n this.gojsDiagramUtils.getClickEventHandlers(),\r\n {\r\n toolTip: this.createConstraintTooltip(),\r\n }\r\n );\r\n }\r\n\r\n getRenewableTemplate() {\r\n return this.$(\r\n go.Node,\r\n 'Spot',\r\n {\r\n selectionAdornmentTemplate: this.gojsDiagramUtils.createNodeSelectionTemplate(),\r\n locationObjectName: 'ICON',\r\n // dragComputation: AvoidOverlapHelper.avoidNodeOverlap\r\n },\r\n this.$(\r\n go.Panel,\r\n 'Auto',\r\n this.gojsDiagramUtils.getNodeTransparentBackground(),\r\n this.$(\r\n go.Panel,\r\n 'Vertical',\r\n this.$(go.Panel, 'Horizontal', this.gojsDiagramUtils.getNameTextBlockTemplate({ textAlign: 'center' })),\r\n this.$(\r\n go.Panel,\r\n 'Spot',\r\n this.$(go.Picture, {\r\n name: 'ICON',\r\n desiredSize: new go.Size(40, 40),\r\n source: unitOperationsConfig.suncorRenewableBlock.diagramIcon,\r\n }),\r\n this.gojsDiagramUtils.getCenterRightReadinessIndicator()\r\n )\r\n )\r\n ),\r\n\r\n new go.Binding('location', 'location', this.gojsDiagramUtils.toLocation).makeTwoWay(),\r\n this.gojsDiagramUtils.getDeletableBinding(),\r\n this.gojsDiagramUtils.getClickEventHandlers(),\r\n { toolTip: this.gojsDiagramUtils.createNodeTooltip() }\r\n );\r\n }\r\n\r\n getSagdTemplate() {\r\n return this.$(\r\n go.Node,\r\n 'Spot',\r\n {\r\n selectionAdornmentTemplate: this.gojsDiagramUtils.createNodeSelectionTemplate(),\r\n locationObjectName: 'ICON',\r\n // dragComputation: AvoidOverlapHelper.avoidNodeOverlap\r\n },\r\n this.$(\r\n go.Panel,\r\n 'Auto',\r\n this.gojsDiagramUtils.getNodeTransparentBackground(),\r\n this.$(\r\n go.Panel,\r\n 'Horizontal',\r\n this.gojsDiagramUtils.getNameTextBlockTemplate({ textAlign: 'right', marginTop: 6 }),\r\n this.$(\r\n go.Panel,\r\n 'Spot',\r\n this.$(go.Picture, {\r\n name: 'ICON',\r\n desiredSize: new go.Size(40, 40),\r\n margin: 5,\r\n source: unitOperationsConfig.sagd.diagramIcon,\r\n }),\r\n // this.gojsDiagramUtils.getConnectionIndicatorTemplate(),\r\n this.gojsDiagramUtils.createOutletPort({\r\n alignment: new go.Spot(1, 0.5),\r\n fromMaxLinks: 1,\r\n portId: 'out',\r\n toolTip: 'Out',\r\n }),\r\n this.gojsDiagramUtils.getTopRightReadinessIndicator()\r\n )\r\n )\r\n ),\r\n new go.Binding('location', 'location', this.gojsDiagramUtils.toLocation).makeTwoWay(),\r\n this.gojsDiagramUtils.getDeletableBinding(),\r\n this.gojsDiagramUtils.getClickEventHandlers(),\r\n { toolTip: this.gojsDiagramUtils.createNodeTooltip() }\r\n );\r\n }\r\n\r\n getUpgraderInletTemplate() {\r\n return this.$(\r\n go.Node,\r\n 'Spot',\r\n {\r\n selectionAdornmentTemplate: this.gojsDiagramUtils.createNodeSelectionTemplate(),\r\n locationObjectName: 'ICON',\r\n deletable: true,\r\n // dragComputation: AvoidOverlapHelper.avoidNodeOverlap\r\n },\r\n this.$(\r\n go.Panel,\r\n 'Auto',\r\n this.gojsDiagramUtils.getNodeTransparentBackground(),\r\n this.$(\r\n go.Panel,\r\n 'Horizontal',\r\n this.gojsDiagramUtils.getNameTextBlockTemplate({ textAlign: 'right', marginTop: 6 }),\r\n this.$(\r\n go.Panel,\r\n 'Spot',\r\n this.$(go.Picture, {\r\n name: 'ICON',\r\n desiredSize: new go.Size(40, 40),\r\n margin: 5,\r\n source: unitOperationsConfig.upgraderInlet.diagramIcon,\r\n }),\r\n this.gojsDiagramUtils.createOutletPort({\r\n alignment: new go.Spot(1, 0.5),\r\n fromMaxLinks: 1,\r\n portId: 'out',\r\n toolTip: 'Out',\r\n }),\r\n this.$(\r\n go.Panel,\r\n 'Vertical',\r\n { alignment: new go.Spot(0, 0.7), width: 20, height: 20 },\r\n this.$(go.Shape, { figure: 'Rectangle', width: 12, height: 2, stroke: '#666', fill: '#666' })\r\n ),\r\n this.gojsDiagramUtils.getTopRightReadinessIndicator()\r\n )\r\n )\r\n ),\r\n new go.Binding('location', 'location', this.gojsDiagramUtils.toLocation).makeTwoWay(),\r\n this.gojsDiagramUtils.getClickEventHandlers(),\r\n { toolTip: this.gojsDiagramUtils.createNodeTooltip() }\r\n );\r\n }\r\n\r\n getSplitterTemplate() {\r\n return this.$(\r\n go.Node,\r\n 'Spot',\r\n {\r\n selectionAdornmentTemplate: this.gojsDiagramUtils.createNodeSelectionTemplate(),\r\n locationObjectName: 'ICON',\r\n // dragComputation: AvoidOverlapHelper.avoidNodeOverlap,\r\n linkConnected: (node, link, port) => {\r\n if (port.portId === 'out' && node.findLinksOutOf().count > 2) {\r\n const icon = node.findObject('ICON');\r\n const inlet = node.findObject('IN');\r\n const outlet = node.findObject('OUT');\r\n\r\n const proportion = (icon.height + 5) / icon.height;\r\n icon.width *= proportion;\r\n icon.height *= proportion;\r\n\r\n inlet.width *= proportion;\r\n inlet.height *= proportion;\r\n\r\n outlet.width *= proportion;\r\n outlet.height *= proportion;\r\n }\r\n },\r\n\r\n linkDisconnected: (node, link, port) => {\r\n if (port.portId === 'out' && node.findLinksOutOf().count >= 2) {\r\n const icon = node.findObject('ICON');\r\n const inlet = node.findObject('IN');\r\n const outlet = node.findObject('OUT');\r\n\r\n const proportion = (icon.height - 5) / icon.height;\r\n icon.width *= proportion;\r\n icon.height *= proportion;\r\n\r\n inlet.width *= proportion;\r\n inlet.height *= proportion;\r\n\r\n outlet.width *= proportion;\r\n outlet.height *= proportion;\r\n }\r\n },\r\n },\r\n this.$(\r\n go.Panel,\r\n 'Auto',\r\n this.gojsDiagramUtils.getNodeTransparentBackground(),\r\n this.$(\r\n go.Panel,\r\n 'Vertical',\r\n this.$(go.Panel, 'Horizontal', this.gojsDiagramUtils.getNameTextBlockTemplate({ textAlign: 'center' })),\r\n this.$(\r\n go.Panel,\r\n 'Spot',\r\n this.$(go.Picture, {\r\n name: 'ICON',\r\n desiredSize: new go.Size(22, 28),\r\n source: unitOperationsConfig.splitter.diagramIcon,\r\n }),\r\n this.gojsDiagramUtils.createInletPort({\r\n alignment: new go.Spot(0.1, 0.5),\r\n portId: 'in',\r\n name: 'IN',\r\n height: 4,\r\n width: 4,\r\n toolTip: 'In',\r\n toMaxLinks: 1,\r\n }),\r\n this.gojsDiagramUtils.createOutletPort({\r\n alignment: new go.Spot(1, 0.5),\r\n portId: 'out',\r\n name: 'OUT',\r\n width: 4,\r\n height: 39,\r\n toolTip: 'Out',\r\n }),\r\n this.gojsDiagramUtils.getTopLeftReadinessIndicator()\r\n )\r\n )\r\n ),\r\n\r\n new go.Binding('location', 'location', this.gojsDiagramUtils.toLocation).makeTwoWay(),\r\n this.gojsDiagramUtils.getDeletableBinding(),\r\n this.gojsDiagramUtils.getClickEventHandlers(),\r\n { toolTip: this.gojsDiagramUtils.createNodeTooltip() }\r\n );\r\n }\r\n\r\n getProductTankTemplate() {\r\n return this.$(\r\n go.Node,\r\n 'Spot',\r\n {\r\n selectionAdornmentTemplate: this.gojsDiagramUtils.createNodeSelectionTemplate(),\r\n locationObjectName: 'ICON',\r\n // dragComputation: AvoidOverlapHelper.avoidNodeOverlap,\r\n linkConnected: (node, link, port) => {\r\n if (port.portId === 'out' && node.findLinksOutOf().count > 2) {\r\n const icon = node.findObject('ICON');\r\n const inlet = node.findObject('IN');\r\n const outlet = node.findObject('OUT');\r\n\r\n const proportion = (icon.height + 5) / icon.height;\r\n icon.width *= proportion;\r\n icon.height *= proportion;\r\n\r\n inlet.width *= proportion;\r\n inlet.height *= proportion;\r\n\r\n outlet.width *= proportion;\r\n outlet.height *= proportion;\r\n }\r\n },\r\n\r\n linkDisconnected: (node, link, port) => {\r\n if (port.portId === 'out' && node.findLinksOutOf().count >= 2) {\r\n const icon = node.findObject('ICON');\r\n const inlet = node.findObject('IN');\r\n const outlet = node.findObject('OUT');\r\n\r\n const proportion = (icon.height - 5) / icon.height;\r\n icon.width *= proportion;\r\n icon.height *= proportion;\r\n\r\n inlet.width *= proportion;\r\n inlet.height *= proportion;\r\n\r\n outlet.width *= proportion;\r\n outlet.height *= proportion;\r\n }\r\n },\r\n },\r\n this.$(\r\n go.Panel,\r\n 'Auto',\r\n this.gojsDiagramUtils.getNodeTransparentBackground(),\r\n this.$(\r\n go.Panel,\r\n 'Vertical',\r\n this.gojsDiagramUtils.getNameTextBlockTemplate({ textAlign: 'center' }),\r\n this.$(\r\n go.Panel,\r\n 'Spot',\r\n this.$(go.Picture, {\r\n name: 'ICON',\r\n desiredSize: new go.Size(40, 40),\r\n source: unitOperationsConfig.productTank.diagramIcon,\r\n }),\r\n this.gojsDiagramUtils.createInletPort({\r\n alignment: new go.Spot(0, 0.5),\r\n portId: 'in',\r\n name: 'IN',\r\n width: 4,\r\n height: 39,\r\n toolTip: 'In',\r\n }),\r\n this.gojsDiagramUtils.createOutletPort({\r\n alignment: new go.Spot(1, 0.5),\r\n portId: 'out',\r\n name: 'OUT',\r\n width: 4,\r\n height: 39,\r\n toolTip: 'Out',\r\n }),\r\n this.gojsDiagramUtils.getBottomCenterReadinessIndicator()\r\n )\r\n )\r\n ),\r\n\r\n new go.Binding('location', 'location', this.gojsDiagramUtils.toLocation).makeTwoWay(),\r\n this.gojsDiagramUtils.getDeletableBinding(),\r\n this.gojsDiagramUtils.getClickEventHandlers(),\r\n { toolTip: this.gojsDiagramUtils.createNodeTooltip() }\r\n );\r\n }\r\n\r\n getDRUTemplate() {\r\n return this.$(\r\n go.Node,\r\n 'Spot',\r\n {\r\n selectionAdornmentTemplate: this.gojsDiagramUtils.createNodeSelectionTemplate(),\r\n locationObjectName: 'ICON',\r\n // dragComputation: AvoidOverlapHelper.avoidNodeOverlap,\r\n },\r\n this.$(\r\n go.Panel,\r\n 'Auto',\r\n this.gojsDiagramUtils.getNodeTransparentBackground(),\r\n this.$(\r\n go.Panel,\r\n 'Vertical',\r\n this.gojsDiagramUtils.getNameTextBlockTemplate({ textAlign: 'center' }),\r\n this.$(\r\n go.Panel,\r\n 'Spot',\r\n this.$(go.Picture, {\r\n name: 'ICON',\r\n desiredSize: new go.Size(40, 40),\r\n margin: 5,\r\n source: unitOperationsConfig.dru.diagramIcon,\r\n }),\r\n this.gojsDiagramUtils.createInletPort({\r\n alignment: new go.Spot(0, 0.5),\r\n portId: 'in',\r\n name: 'IN',\r\n toolTip: 'In',\r\n toMaxLinks: 1,\r\n }),\r\n this.gojsDiagramUtils.createOutletPort({\r\n alignment: new go.Spot(1, 0.5),\r\n portId: 'out',\r\n name: 'OUT',\r\n width: 4,\r\n height: 39,\r\n toolTip: 'Out',\r\n }),\r\n this.gojsDiagramUtils.getBottomCenterReadinessIndicator()\r\n )\r\n )\r\n ),\r\n new go.Binding('location', 'location', this.gojsDiagramUtils.toLocation).makeTwoWay(),\r\n this.gojsDiagramUtils.getDeletableBinding(),\r\n this.gojsDiagramUtils.getClickEventHandlers(),\r\n { toolTip: this.gojsDiagramUtils.createNodeTooltip() }\r\n );\r\n }\r\n\r\n getVACTemplate() {\r\n return this.$(\r\n go.Node,\r\n 'Spot',\r\n {\r\n selectionAdornmentTemplate: this.gojsDiagramUtils.createNodeSelectionTemplate(),\r\n locationObjectName: 'ICON',\r\n // dragComputation: AvoidOverlapHelper.avoidNodeOverlap,\r\n },\r\n this.$(\r\n go.Panel,\r\n 'Auto',\r\n this.gojsDiagramUtils.getNodeTransparentBackground(),\r\n this.$(\r\n go.Panel,\r\n 'Vertical',\r\n this.gojsDiagramUtils.getNameTextBlockTemplate({ textAlign: 'center' }),\r\n this.$(\r\n go.Panel,\r\n 'Spot',\r\n this.$(go.Picture, {\r\n name: 'ICON',\r\n desiredSize: new go.Size(40, 40),\r\n margin: 5,\r\n source: unitOperationsConfig.vac.diagramIcon,\r\n }),\r\n this.gojsDiagramUtils.createInletPort({\r\n alignment: new go.Spot(0, 0.5),\r\n portId: 'in',\r\n name: 'IN',\r\n toolTip: 'In',\r\n toMaxLinks: 1,\r\n }),\r\n this.gojsDiagramUtils.createOutletPort({\r\n alignment: new go.Spot(1, 0.5),\r\n portId: 'out',\r\n name: 'OUT',\r\n width: 4,\r\n height: 39,\r\n toolTip: 'Out',\r\n }),\r\n this.gojsDiagramUtils.getBottomCenterReadinessIndicator()\r\n )\r\n )\r\n ),\r\n\r\n new go.Binding('location', 'location', this.gojsDiagramUtils.toLocation).makeTwoWay(),\r\n this.gojsDiagramUtils.getDeletableBinding(),\r\n this.gojsDiagramUtils.getClickEventHandlers(),\r\n { toolTip: this.gojsDiagramUtils.createNodeTooltip() }\r\n );\r\n }\r\n\r\n getThirdPartyRefineryTemplate() {\r\n return this.$(\r\n go.Node,\r\n 'Spot',\r\n {\r\n selectionAdornmentTemplate: this.gojsDiagramUtils.createNodeSelectionTemplate(),\r\n locationObjectName: 'ICON',\r\n },\r\n this.$(\r\n go.Panel,\r\n 'Auto',\r\n this.gojsDiagramUtils.getNodeTransparentBackground(),\r\n this.$(\r\n go.Panel,\r\n 'Horizontal',\r\n this.$(\r\n go.Panel,\r\n 'Spot',\r\n this.$(go.Picture, {\r\n name: 'ICON',\r\n desiredSize: new go.Size(40, 40),\r\n source: unitOperationsConfig.thirdPartyRefinery.diagramIcon,\r\n margin: 5,\r\n }),\r\n this.gojsDiagramUtils.createInletPort({\r\n alignment: new go.Spot(0, 0.5),\r\n toMaxLinks: 1,\r\n portId: 'in',\r\n toolTip: 'In',\r\n }),\r\n this.gojsDiagramUtils.getTopLeftReadinessIndicator()\r\n ),\r\n this.gojsDiagramUtils.getNameTextBlockTemplate({ textAlign: 'left', marginTop: 6 })\r\n )\r\n ),\r\n new go.Binding('location', 'location', this.gojsDiagramUtils.toLocation).makeTwoWay(),\r\n this.gojsDiagramUtils.getDeletableBinding(),\r\n this.gojsDiagramUtils.getClickEventHandlers(),\r\n { toolTip: this.gojsDiagramUtils.createNodeTooltip() }\r\n );\r\n }\r\n\r\n getGenericSinkTemplate() {\r\n return this.$(\r\n go.Node,\r\n 'Spot',\r\n {\r\n selectionAdornmentTemplate: this.gojsDiagramUtils.createNodeSelectionTemplate(),\r\n locationObjectName: 'ICON',\r\n },\r\n this.$(\r\n go.Panel,\r\n 'Auto',\r\n this.gojsDiagramUtils.getNodeTransparentBackground(),\r\n this.$(\r\n go.Panel,\r\n 'Horizontal',\r\n this.$(\r\n go.Panel,\r\n 'Spot',\r\n this.$(go.Picture, {\r\n name: 'ICON',\r\n desiredSize: new go.Size(40, 40),\r\n source: unitOperationsConfig.genericSink.diagramIcon,\r\n }),\r\n this.$(go.Shape, 'Circle', { width: 40, height: 40, fill: 'Transparent', stroke: null }),\r\n this.gojsDiagramUtils.createInletPort({\r\n alignment: new go.Spot(0, 0.5),\r\n toMaxLinks: 1,\r\n portId: 'in',\r\n toolTip: 'In',\r\n }),\r\n this.gojsDiagramUtils.getTopLeftReadinessIndicator()\r\n ),\r\n this.gojsDiagramUtils.getNameTextBlockTemplate({ textAlign: 'left', marginTop: 6 })\r\n )\r\n ),\r\n new go.Binding('location', 'location', this.gojsDiagramUtils.toLocation).makeTwoWay(),\r\n this.gojsDiagramUtils.getClickEventHandlers(),\r\n { toolTip: this.gojsDiagramUtils.createNodeTooltip() }\r\n );\r\n }\r\n\r\n getThirdPartySourceTemplate() {\r\n return this.$(\r\n go.Node,\r\n 'Spot',\r\n {\r\n selectionAdornmentTemplate: this.gojsDiagramUtils.createNodeSelectionTemplate(),\r\n locationObjectName: 'ICON',\r\n // dragComputation: AvoidOverlapHelper.avoidNodeOverlap\r\n },\r\n this.$(\r\n go.Panel,\r\n 'Auto',\r\n this.gojsDiagramUtils.getNodeTransparentBackground(),\r\n this.$(\r\n go.Panel,\r\n 'Horizontal',\r\n this.gojsDiagramUtils.getNameTextBlockTemplate({ textAlign: 'right', marginTop: 6 }),\r\n this.$(\r\n go.Panel,\r\n 'Spot',\r\n this.$(go.Picture, {\r\n name: 'ICON',\r\n desiredSize: new go.Size(40, 40),\r\n margin: 5,\r\n source: unitOperationsConfig.diluentSource.diagramIcon,\r\n }),\r\n this.gojsDiagramUtils.createOutletPort({\r\n alignment: new go.Spot(1, 0.5),\r\n fromMaxLinks: 1,\r\n portId: 'out',\r\n toolTip: 'Out',\r\n }),\r\n this.gojsDiagramUtils.getTopRightReadinessIndicator()\r\n )\r\n )\r\n ),\r\n new go.Binding('location', 'location', this.gojsDiagramUtils.toLocation).makeTwoWay(),\r\n\r\n this.gojsDiagramUtils.getDeletableBinding(),\r\n this.gojsDiagramUtils.getClickEventHandlers(),\r\n { toolTip: this.gojsDiagramUtils.createNodeTooltip() }\r\n );\r\n }\r\n\r\n getUpgraderTemplate() {\r\n return this.$(\r\n go.Node,\r\n 'Spot',\r\n {\r\n selectionAdornmentTemplate: this.gojsDiagramUtils.createNodeSelectionTemplate(),\r\n locationObjectName: 'ICON',\r\n },\r\n this.$(\r\n go.Panel,\r\n 'Auto',\r\n this.gojsDiagramUtils.getNodeTransparentBackground(),\r\n this.$(\r\n go.Panel,\r\n 'Vertical',\r\n this.$(go.Panel, 'Horizontal', this.gojsDiagramUtils.getNameTextBlockTemplate({ textAlign: 'center' })),\r\n this.$(\r\n go.Panel,\r\n 'Spot',\r\n this.$(go.Picture, {\r\n name: 'ICON',\r\n desiredSize: new go.Size(40, 40),\r\n source: unitOperationsConfig.upgrader.diagramIcon,\r\n }),\r\n this.gojsDiagramUtils.createInletPort({\r\n alignment: new go.Spot(0, 0.5),\r\n toMaxLinks: 1,\r\n portId: 'inlet1',\r\n toolTip: 'In',\r\n }),\r\n this.gojsDiagramUtils.createOutletPort({\r\n alignment: new go.Spot(0.95, 0.25),\r\n fromMaxLinks: 1,\r\n portId: 'coker',\r\n toolTip: 'Coker',\r\n }),\r\n this.gojsDiagramUtils.createOutletPort({\r\n alignment: new go.Spot(0.95, 0.75),\r\n fromMaxLinks: 1,\r\n portId: 'hydroTreated',\r\n toolTip: 'Hydrotreated',\r\n }),\r\n this.gojsDiagramUtils.getBottomCenterReadinessIndicator()\r\n )\r\n )\r\n ),\r\n new go.Binding('location', 'location', this.gojsDiagramUtils.toLocation).makeTwoWay(),\r\n this.gojsDiagramUtils.getDeletableBinding(),\r\n this.gojsDiagramUtils.getClickEventHandlers(),\r\n {\r\n toolTip: this.createConstraintTooltip(),\r\n }\r\n );\r\n }\r\n\r\n // TODO delete this? is this even used?\r\n getMultipleInletUpgraderTemplate() {\r\n return this.$(\r\n go.Node,\r\n 'Vertical',\r\n {\r\n locationObjectName: 'BODY',\r\n locationSpot: go.Spot.Center,\r\n selectionObjectName: 'BODY',\r\n },\r\n // the body\r\n this.$(\r\n go.Panel,\r\n 'Horizontal',\r\n {\r\n name: 'name',\r\n },\r\n this.gojsDiagramUtils.getNameTextBlockTemplate({ textAlign: 'center' })\r\n ),\r\n this.$(\r\n go.Panel,\r\n 'Table',\r\n this.$(\r\n go.Panel,\r\n 'Auto',\r\n {\r\n row: 1,\r\n column: 2,\r\n name: 'BODY',\r\n stretch: go.GraphObject.Fill,\r\n },\r\n this.$(go.Shape, 'Rectangle', {\r\n fill: '#fff',\r\n stroke: null,\r\n strokeWidth: 0,\r\n minSize: new go.Size(40, 40),\r\n }),\r\n this.$(go.Picture, {\r\n name: 'ICON',\r\n desiredSize: new go.Size(40, 40),\r\n source: unitOperationsConfig.upgrader.diagramIcon,\r\n })\r\n ), // end Auto Panel body\r\n this.$(\r\n go.Panel,\r\n 'Vertical',\r\n {\r\n row: 1,\r\n column: 1,\r\n },\r\n this.gojsDiagramUtils.createInletPort({\r\n alignment: new go.Spot(0, 0.25),\r\n toMaxLinks: 1,\r\n portId: 'inlet1',\r\n margin: new go.Margin(3, 0),\r\n toolTip: 'Inlet 1',\r\n }),\r\n this.gojsDiagramUtils.createInletPort({\r\n alignment: new go.Spot(0, 0.75),\r\n toMaxLinks: 1,\r\n portId: 'inlet2',\r\n margin: new go.Margin(3, 0),\r\n toolTip: 'Inlet 2',\r\n })\r\n ),\r\n this.$(go.Panel, 'Vertical', new go.Binding('itemArray', 'outletPorts'), {\r\n row: 1,\r\n column: 3,\r\n itemTemplate: this.$(\r\n go.Panel,\r\n {\r\n _side: 'right',\r\n fromSpot: go.Spot.Right,\r\n toSpot: go.Spot.Right,\r\n fromLinkable: true,\r\n toLinkable: true,\r\n cursor: 'pointer',\r\n },\r\n new go.Binding('portId', 'portId'),\r\n this.$(\r\n go.Shape,\r\n 'Rectangle',\r\n {\r\n fill: '#4972b0',\r\n stroke: 'Transparent',\r\n desiredSize: new go.Size(6, 6),\r\n margin: new go.Margin(3, 0),\r\n },\r\n {\r\n toolTip: this.$(\r\n go.Adornment,\r\n 'Auto',\r\n this.$(go.Shape, {\r\n fill: '#CEF6F5',\r\n stroke: 'transparent',\r\n }),\r\n this.$(\r\n go.TextBlock,\r\n {\r\n margin: 4,\r\n },\r\n new go.Binding('text', 'tooltip')\r\n )\r\n ),\r\n }\r\n )\r\n ), // end itemTemplate\r\n }) // end Vertical Panel\r\n ),\r\n new go.Binding('location', 'location', this.gojsDiagramUtils.toLocation).makeTwoWay(),\r\n this.gojsDiagramUtils.getDeletableBinding(),\r\n this.gojsDiagramUtils.getClickEventHandlers(),\r\n {\r\n toolTip: this.createConstraintTooltip(),\r\n }\r\n ); // end Node\r\n }\r\n\r\n getFlexibleUpgraderTemplate() {\r\n return this.$(\r\n go.Node,\r\n 'Vertical',\r\n {\r\n locationObjectName: 'BODY',\r\n locationSpot: go.Spot.Center,\r\n // selectionObjectName: 'BODY',\r\n },\r\n // the body\r\n this.$(\r\n go.Panel,\r\n 'Horizontal',\r\n {\r\n name: 'name',\r\n },\r\n this.gojsDiagramUtils.getNameTextBlockTemplate({ textAlign: 'center' })\r\n ),\r\n this.$(\r\n go.Panel,\r\n 'Table',\r\n this.$(\r\n go.Panel,\r\n 'Auto',\r\n {\r\n row: 1,\r\n column: 2,\r\n name: 'BODY',\r\n stretch: go.GraphObject.Fill,\r\n },\r\n this.$(go.Shape, 'Rectangle', {\r\n fill: '#fff',\r\n stroke: null,\r\n strokeWidth: 0,\r\n minSize: new go.Size(40, 40),\r\n }),\r\n this.$(go.Picture, {\r\n name: 'ICON',\r\n desiredSize: new go.Size(40, 40),\r\n source: unitOperationsConfig.upgrader.diagramIcon,\r\n })\r\n ), // end Auto Panel body\r\n this.$(go.Panel, 'Vertical', new go.Binding('itemArray', 'inletPorts'), {\r\n row: 1,\r\n column: 0,\r\n itemTemplate: this.$(\r\n go.Panel,\r\n {\r\n _side: 'left',\r\n toSpot: go.Spot.Left,\r\n toLinkable: true,\r\n toMaxLinks: 1,\r\n cursor: 'pointer',\r\n },\r\n new go.Binding('portId', 'portId'),\r\n this.$(\r\n go.Shape,\r\n 'Rectangle',\r\n {\r\n fill: '#4972b0',\r\n stroke: 'Transparent',\r\n desiredSize: new go.Size(6, 6),\r\n margin: new go.Margin(3, 0),\r\n },\r\n {\r\n toolTip: this.$(\r\n go.Adornment,\r\n 'Auto',\r\n this.$(go.Shape, {\r\n fill: '#CEF6F5',\r\n stroke: 'transparent',\r\n }),\r\n this.$(\r\n go.TextBlock,\r\n {\r\n margin: 4,\r\n },\r\n new go.Binding('text', 'tooltip')\r\n )\r\n ),\r\n }\r\n )\r\n ), // end itemTemplate\r\n }), // end Vertical Panel\r\n this.$(go.Panel, 'Vertical', new go.Binding('itemArray', 'outletPorts'), {\r\n row: 1,\r\n column: 3,\r\n itemTemplate: this.$(\r\n go.Panel,\r\n {\r\n _side: 'right',\r\n fromSpot: go.Spot.Right,\r\n fromLinkable: true,\r\n fromMaxLinks: 1,\r\n cursor: 'pointer',\r\n },\r\n new go.Binding('portId', 'portId'),\r\n this.$(\r\n go.Shape,\r\n 'Rectangle',\r\n {\r\n fill: '#4972b0',\r\n stroke: 'Transparent',\r\n desiredSize: new go.Size(6, 6),\r\n margin: new go.Margin(3, 0),\r\n },\r\n {\r\n toolTip: this.$(\r\n go.Adornment,\r\n 'Auto',\r\n this.$(go.Shape, {\r\n fill: '#CEF6F5',\r\n stroke: 'transparent',\r\n }),\r\n this.$(\r\n go.TextBlock,\r\n {\r\n margin: 4,\r\n },\r\n new go.Binding('text', 'tooltip')\r\n )\r\n ),\r\n }\r\n )\r\n ), // end itemTemplate\r\n }) // end Vertical Panel\r\n ),\r\n this.$(go.Panel, 'Spot', this.gojsDiagramUtils.getBottomCenterReadinessIndicator(0)),\r\n new go.Binding('location', 'location', this.gojsDiagramUtils.toLocation).makeTwoWay(),\r\n this.gojsDiagramUtils.getDeletableBinding(),\r\n this.gojsDiagramUtils.getClickEventHandlers(),\r\n {\r\n toolTip: this.createConstraintTooltip(),\r\n }\r\n ); // end Node\r\n }\r\n\r\n getFuelGasUtilityTemplate() {\r\n return this.$(\r\n go.Node,\r\n 'Spot',\r\n {\r\n selectionAdornmentTemplate: this.gojsDiagramUtils.createNodeSelectionTemplate(),\r\n locationObjectName: 'ICON',\r\n },\r\n this.$(\r\n go.Panel,\r\n 'Auto',\r\n this.gojsDiagramUtils.getNodeTransparentBackground(),\r\n this.$(\r\n go.Panel,\r\n 'Vertical',\r\n this.$(go.Panel, 'Horizontal', this.gojsDiagramUtils.getNameTextBlockTemplate({ textAlign: 'center' })),\r\n this.$(\r\n go.Panel,\r\n 'Spot',\r\n this.$(go.Picture, {\r\n name: 'ICON',\r\n desiredSize: new go.Size(40, 40),\r\n source: unitOperationsConfig.fuelGasUtilityUnitOperation.diagramIcon,\r\n })\r\n )\r\n )\r\n ),\r\n\r\n this.$(\r\n go.Panel,\r\n go.Panel.Position,\r\n this.$(\r\n go.TextBlock,\r\n {\r\n text: '\\uf058 ',\r\n font: '16pt FontAwesome',\r\n stroke: '#2196F3',\r\n position: new go.Point(-100, 25),\r\n },\r\n new go.Binding('visible', '', fg => {\r\n return !!fg.isSolved;\r\n })\r\n ),\r\n {\r\n toolTip: this.$(\r\n go.Adornment,\r\n 'Auto',\r\n this.$(go.Shape, {\r\n stroke: 'transparent',\r\n fill: '#CEF6F5',\r\n }),\r\n this.$(go.TextBlock, { margin: 4, text: 'Solved successfully' })\r\n ),\r\n }\r\n ),\r\n this.$(\r\n go.Panel,\r\n go.Panel.Position,\r\n this.$(\r\n go.TextBlock,\r\n {\r\n text: '\\uf06a ',\r\n font: '16pt FontAwesome',\r\n stroke: 'red',\r\n position: new go.Point(-100, 25),\r\n },\r\n new go.Binding('visible', '', fg => {\r\n return !fg.isSolved;\r\n })\r\n ),\r\n {\r\n toolTip: this.$(\r\n go.Adornment,\r\n 'Auto',\r\n this.$(go.Shape, {\r\n stroke: 'transparent',\r\n fill: '#CEF6F5',\r\n }),\r\n this.$(go.TextBlock, { margin: 4, text: 'Not solved' })\r\n ),\r\n }\r\n ),\r\n\r\n new go.Binding('location', 'location', this.gojsDiagramUtils.toLocation).makeTwoWay(),\r\n this.gojsDiagramUtils.getDeletableBinding(),\r\n this.gojsDiagramUtils.getClickEventHandlers()\r\n );\r\n }\r\n\r\n getWaterUtilityTemplate() {\r\n return this.$(\r\n go.Node,\r\n 'Spot',\r\n {\r\n selectionAdornmentTemplate: this.gojsDiagramUtils.createNodeSelectionTemplate(),\r\n locationObjectName: 'ICON',\r\n },\r\n this.$(\r\n go.Panel,\r\n 'Auto',\r\n this.gojsDiagramUtils.getNodeTransparentBackground(),\r\n this.$(\r\n go.Panel,\r\n 'Vertical',\r\n this.$(go.Panel, 'Horizontal', this.gojsDiagramUtils.getNameTextBlockTemplate({ textAlign: 'center' })),\r\n this.$(\r\n go.Panel,\r\n 'Spot',\r\n this.$(go.Picture, {\r\n name: 'ICON',\r\n desiredSize: new go.Size(40, 40),\r\n source: unitOperationsConfig.waterUtilityUnitOperation.diagramIcon,\r\n })\r\n )\r\n )\r\n ),\r\n\r\n this.$(\r\n go.Panel,\r\n go.Panel.Position,\r\n this.$(\r\n go.TextBlock,\r\n {\r\n text: '\\uf058 ',\r\n font: '16pt FontAwesome',\r\n stroke: '#2196F3',\r\n position: new go.Point(-100, 25),\r\n },\r\n new go.Binding('visible', '', wu => {\r\n return !!wu.isSolved;\r\n })\r\n ),\r\n {\r\n toolTip: this.$(\r\n go.Adornment,\r\n 'Auto',\r\n this.$(go.Shape, {\r\n stroke: 'transparent',\r\n fill: '#CEF6F5',\r\n }),\r\n this.$(go.TextBlock, { margin: 4, text: 'Solved successfully' })\r\n ),\r\n }\r\n ),\r\n\r\n this.$(\r\n go.Panel,\r\n go.Panel.Position,\r\n this.$(\r\n go.TextBlock,\r\n {\r\n text: '\\uf06a ',\r\n font: '16pt FontAwesome',\r\n stroke: 'red',\r\n position: new go.Point(-100, 25),\r\n },\r\n new go.Binding('visible', '', wu => {\r\n return !wu.isSolved;\r\n })\r\n ),\r\n {\r\n toolTip: this.$(\r\n go.Adornment,\r\n 'Auto',\r\n this.$(go.Shape, {\r\n stroke: 'transparent',\r\n fill: '#CEF6F5',\r\n }),\r\n this.$(go.TextBlock, { margin: 4, text: 'Not solved' })\r\n ),\r\n }\r\n ),\r\n\r\n new go.Binding('location', 'location', this.gojsDiagramUtils.toLocation).makeTwoWay(),\r\n this.gojsDiagramUtils.getDeletableBinding(),\r\n this.gojsDiagramUtils.getClickEventHandlers()\r\n );\r\n }\r\n\r\n getExtractionTemplate() {\r\n return this.$(\r\n go.Node,\r\n 'Spot',\r\n {\r\n selectionAdornmentTemplate: this.gojsDiagramUtils.createNodeSelectionTemplate(),\r\n locationObjectName: 'ICON',\r\n },\r\n this.$(\r\n go.Panel,\r\n 'Auto',\r\n this.gojsDiagramUtils.getNodeTransparentBackground(),\r\n this.$(\r\n go.Panel,\r\n 'Vertical',\r\n this.gojsDiagramUtils.getNameTextBlockTemplate({ textAlign: 'center' }),\r\n this.$(\r\n go.Panel,\r\n 'Spot',\r\n this.$(go.Picture, {\r\n name: 'ICON',\r\n desiredSize: new go.Size(40, 40),\r\n margin: 0,\r\n source: unitOperationsConfig.extraction.diagramIcon,\r\n }),\r\n this.gojsDiagramUtils.createInletPort({\r\n alignment: new go.Spot(0, 0.5),\r\n toMaxLinks: 1,\r\n portId: 'in',\r\n toolTip: 'In',\r\n }),\r\n this.gojsDiagramUtils.createOutletPort({\r\n alignment: new go.Spot(1, 0.5),\r\n fromMaxLinks: 1,\r\n portId: 'out',\r\n toolTip: 'Out',\r\n }),\r\n this.gojsDiagramUtils.getBottomCenterReadinessIndicator()\r\n )\r\n )\r\n ),\r\n new go.Binding('location', 'location', this.gojsDiagramUtils.toLocation).makeTwoWay(),\r\n this.gojsDiagramUtils.getDeletableBinding(),\r\n this.gojsDiagramUtils.getClickEventHandlers(),\r\n {\r\n toolTip: this.createConstraintTooltip(),\r\n }\r\n );\r\n }\r\n\r\n getFlexibleExtractionTemplate() {\r\n return this.$(\r\n go.Node,\r\n 'Vertical',\r\n {\r\n locationObjectName: 'BODY',\r\n locationSpot: go.Spot.Center,\r\n selectionObjectName: 'BODY',\r\n },\r\n // the body\r\n this.$(\r\n go.Panel,\r\n 'Horizontal',\r\n {\r\n name: 'name',\r\n },\r\n this.gojsDiagramUtils.getNameTextBlockTemplate({ textAlign: 'center' })\r\n ),\r\n this.$(\r\n go.Panel,\r\n 'Table',\r\n this.$(\r\n go.Panel,\r\n 'Auto',\r\n {\r\n row: 1,\r\n column: 2,\r\n name: 'BODY',\r\n stretch: go.GraphObject.Fill,\r\n },\r\n this.$(go.Shape, 'Rectangle', {\r\n fill: '#fff',\r\n stroke: null,\r\n strokeWidth: 0,\r\n minSize: new go.Size(40, 40),\r\n }),\r\n this.$(go.Picture, {\r\n name: 'ICON',\r\n desiredSize: new go.Size(40, 40),\r\n source: unitOperationsConfig.extraction.diagramIcon,\r\n })\r\n ), // end Auto Panel body\r\n this.$(go.Panel, 'Vertical', new go.Binding('itemArray', 'inletPorts'), {\r\n row: 1,\r\n column: 0,\r\n itemTemplate: this.$(\r\n go.Panel,\r\n {\r\n _side: 'left',\r\n fromSpot: go.Spot.Left,\r\n toSpot: go.Spot.Left,\r\n toLinkable: true,\r\n toMaxLinks: 1,\r\n cursor: 'pointer',\r\n },\r\n new go.Binding('portId', 'portId'),\r\n this.$(\r\n go.Shape,\r\n 'Rectangle',\r\n {\r\n fill: '#4972b0',\r\n stroke: 'Transparent',\r\n desiredSize: new go.Size(6, 6),\r\n margin: new go.Margin(3, 0),\r\n },\r\n {\r\n toolTip: this.$(\r\n go.Adornment,\r\n 'Auto',\r\n this.$(go.Shape, {\r\n fill: '#CEF6F5',\r\n stroke: 'transparent',\r\n }),\r\n this.$(\r\n go.TextBlock,\r\n {\r\n margin: 4,\r\n },\r\n new go.Binding('text', 'tooltip')\r\n )\r\n ),\r\n }\r\n )\r\n ), // end itemTemplate\r\n }), // end Vertical Panel\r\n this.$(go.Panel, 'Vertical', new go.Binding('itemArray', 'outletPorts'), {\r\n row: 1,\r\n column: 3,\r\n itemTemplate: this.$(\r\n go.Panel,\r\n {\r\n _side: 'right',\r\n fromSpot: go.Spot.Right,\r\n toSpot: go.Spot.Right,\r\n fromLinkable: true,\r\n toLinkable: true,\r\n cursor: 'pointer',\r\n },\r\n new go.Binding('portId', 'portId'),\r\n this.$(\r\n go.Shape,\r\n 'Rectangle',\r\n {\r\n fill: '#4972b0',\r\n stroke: 'Transparent',\r\n desiredSize: new go.Size(6, 6),\r\n margin: new go.Margin(3, 0),\r\n },\r\n {\r\n toolTip: this.$(\r\n go.Adornment,\r\n 'Auto',\r\n this.$(go.Shape, {\r\n fill: '#CEF6F5',\r\n stroke: 'transparent',\r\n }),\r\n this.$(\r\n go.TextBlock,\r\n {\r\n margin: 4,\r\n },\r\n new go.Binding('text', 'tooltip')\r\n )\r\n ),\r\n }\r\n )\r\n ), // end itemTemplate\r\n }) // end Vertical Panel\r\n ),\r\n this.gojsDiagramUtils.getBottomCenterReadinessIndicator(),\r\n new go.Binding('location', 'location', this.gojsDiagramUtils.toLocation).makeTwoWay(),\r\n this.gojsDiagramUtils.getDeletableBinding(),\r\n this.gojsDiagramUtils.getClickEventHandlers(),\r\n {\r\n toolTip: this.createConstraintTooltip(),\r\n }\r\n ); // end Node\r\n }\r\n\r\n // TODO this seems to be obsolete --- remove\r\n getLevel2UpgraderTemplate() {\r\n return this.$(\r\n go.Node,\r\n 'Vertical',\r\n {\r\n locationObjectName: 'BODY',\r\n locationSpot: go.Spot.Center,\r\n selectionObjectName: 'BODY',\r\n },\r\n // the body\r\n this.$(\r\n go.Panel,\r\n 'Horizontal',\r\n {\r\n name: 'name',\r\n },\r\n this.gojsDiagramUtils.getNameTextBlockTemplate({ textAlign: 'center' })\r\n ),\r\n this.$(\r\n go.Panel,\r\n 'Table',\r\n this.$(\r\n go.Panel,\r\n 'Auto',\r\n {\r\n row: 1,\r\n column: 2,\r\n name: 'BODY',\r\n stretch: go.GraphObject.Fill,\r\n },\r\n this.$(go.Shape, 'Rectangle', {\r\n fill: '#fff',\r\n stroke: null,\r\n strokeWidth: 0,\r\n minSize: new go.Size(40, 40),\r\n }),\r\n this.$(go.Picture, {\r\n name: 'ICON',\r\n desiredSize: new go.Size(40, 40),\r\n source: unitOperationsConfig.upgrader.diagramIcon,\r\n })\r\n ), // end Auto Panel body\r\n this.$(\r\n go.Panel,\r\n 'Vertical',\r\n {\r\n row: 1,\r\n column: 1,\r\n },\r\n this.gojsDiagramUtils.createInletPort({\r\n alignment: new go.Spot(0, 0.5),\r\n toMaxLinks: 1,\r\n portId: 'inlet1',\r\n toolTip: 'In',\r\n })\r\n ),\r\n this.$(go.Panel, 'Vertical', new go.Binding('itemArray', 'outletPorts'), {\r\n row: 1,\r\n column: 3,\r\n itemTemplate: this.$(\r\n go.Panel,\r\n {\r\n _side: 'right',\r\n fromSpot: go.Spot.Right,\r\n toSpot: go.Spot.Right,\r\n fromLinkable: true,\r\n toLinkable: true,\r\n cursor: 'pointer',\r\n },\r\n new go.Binding('portId', 'portId'),\r\n this.$(\r\n go.Shape,\r\n 'Rectangle',\r\n {\r\n fill: '#4972b0',\r\n stroke: 'Transparent',\r\n desiredSize: new go.Size(6, 6),\r\n margin: new go.Margin(3, 0),\r\n },\r\n {\r\n toolTip: this.$(\r\n go.Adornment,\r\n 'Auto',\r\n this.$(go.Shape, {\r\n fill: '#CEF6F5',\r\n stroke: 'transparent',\r\n }),\r\n this.$(\r\n go.TextBlock,\r\n {\r\n margin: 4,\r\n },\r\n new go.Binding('text', 'tooltip')\r\n )\r\n ),\r\n }\r\n )\r\n ), // end itemTemplate\r\n }) // end Vertical Panel\r\n ),\r\n new go.Binding('location', 'location', this.gojsDiagramUtils.toLocation).makeTwoWay(),\r\n this.gojsDiagramUtils.getDeletableBinding(),\r\n this.gojsDiagramUtils.getClickEventHandlers(),\r\n {\r\n toolTip: this.createConstraintTooltip(),\r\n }\r\n ); // end Node\r\n }\r\n\r\n getHydrotreaterTemplate() {\r\n return this.$(\r\n go.Node,\r\n 'Spot',\r\n {\r\n selectionAdornmentTemplate: this.gojsDiagramUtils.createNodeSelectionTemplate(),\r\n locationObjectName: 'ICON',\r\n // dragComputation: AvoidOverlapHelper.avoidNodeOverlap,\r\n linkConnected: (node, link, port) => {\r\n if (port.portId === 'in' && node.findLinksInto().count > 2) {\r\n const icon = node.findObject('ICON');\r\n const inlet = node.findObject('IN');\r\n\r\n const proportion = (icon.height + 5) / icon.height;\r\n icon.width *= proportion;\r\n icon.height *= proportion;\r\n\r\n inlet.width *= proportion;\r\n inlet.height *= proportion;\r\n }\r\n },\r\n\r\n linkDisconnected: (node, link, port) => {\r\n if (port.portId === 'in' && node.findLinksInto().count >= 2) {\r\n const icon = node.findObject('ICON');\r\n const inlet = node.findObject('IN');\r\n\r\n const proportion = (icon.height - 5) / icon.height;\r\n icon.width *= proportion;\r\n icon.height *= proportion;\r\n\r\n inlet.width *= proportion;\r\n inlet.height *= proportion;\r\n }\r\n },\r\n },\r\n this.$(\r\n go.Panel,\r\n 'Auto',\r\n this.gojsDiagramUtils.getNodeTransparentBackground(),\r\n this.$(\r\n go.Panel,\r\n 'Vertical',\r\n this.gojsDiagramUtils.getNameTextBlockTemplate({ textAlign: 'center' }),\r\n this.$(\r\n go.Panel,\r\n 'Spot',\r\n this.$(go.Picture, {\r\n name: 'ICON',\r\n desiredSize: new go.Size(40, 40),\r\n source: unitOperationsConfig.hydrotreater.diagramIcon,\r\n }),\r\n this.gojsDiagramUtils.createInletPort({\r\n alignment: new go.Spot(0, 0.5),\r\n portId: 'in',\r\n name: 'IN',\r\n width: 4,\r\n height: 39,\r\n toolTip: 'In',\r\n }),\r\n this.gojsDiagramUtils.createOutletPort({\r\n alignment: new go.Spot(1, 0.5),\r\n fromMaxLinks: 1,\r\n portId: 'out',\r\n toolTip: 'Out',\r\n }),\r\n this.gojsDiagramUtils.getBottomCenterReadinessIndicator()\r\n )\r\n )\r\n ),\r\n new go.Binding('location', 'location', this.gojsDiagramUtils.toLocation).makeTwoWay(),\r\n this.gojsDiagramUtils.getDeletableBinding(),\r\n this.gojsDiagramUtils.getClickEventHandlers(),\r\n { toolTip: this.gojsDiagramUtils.createNodeTooltip() }\r\n );\r\n }\r\n\r\n getHgoHydrotreaterTemplate() {\r\n return this.$(\r\n go.Node,\r\n 'Spot',\r\n {\r\n selectionAdornmentTemplate: this.gojsDiagramUtils.createNodeSelectionTemplate(),\r\n locationObjectName: 'ICON',\r\n },\r\n this.$(\r\n go.Panel,\r\n 'Auto',\r\n this.gojsDiagramUtils.getNodeTransparentBackground(),\r\n this.$(\r\n go.Panel,\r\n 'Vertical',\r\n this.gojsDiagramUtils.getNameTextBlockTemplate({ textAlign: 'center' }),\r\n this.$(\r\n go.Panel,\r\n 'Spot',\r\n this.$(go.Picture, {\r\n name: 'ICON',\r\n desiredSize: new go.Size(40, 40),\r\n margin: 5,\r\n source: unitOperationsConfig.hgoHydrotreater.diagramIcon,\r\n }),\r\n this.gojsDiagramUtils.createInletPort({\r\n alignment: new go.Spot(0, 0.5),\r\n toMaxLinks: 1,\r\n portId: 'in',\r\n toolTip: 'In',\r\n }),\r\n this.gojsDiagramUtils.createOutletPort({\r\n alignment: new go.Spot(1, 0.25),\r\n fromMaxLinks: 1,\r\n portId: 'naphtha',\r\n toolTip: 'Naphtha',\r\n }),\r\n this.gojsDiagramUtils.createOutletPort({\r\n alignment: new go.Spot(1, 0.5),\r\n fromMaxLinks: 1,\r\n portId: 'lgoOut',\r\n toolTip: 'LGO',\r\n }),\r\n this.gojsDiagramUtils.createOutletPort({\r\n alignment: new go.Spot(1, 0.75),\r\n fromMaxLinks: 1,\r\n portId: 'hgoOut',\r\n toolTip: 'HGO',\r\n }),\r\n this.gojsDiagramUtils.getBottomCenterReadinessIndicator()\r\n )\r\n )\r\n ),\r\n new go.Binding('location', 'location', this.gojsDiagramUtils.toLocation).makeTwoWay(),\r\n this.gojsDiagramUtils.getDeletableBinding(),\r\n this.gojsDiagramUtils.getClickEventHandlers(),\r\n { toolTip: this.gojsDiagramUtils.createNodeTooltip() }\r\n );\r\n }\r\n\r\n getLgoHydrotreaterTemplate() {\r\n return this.$(\r\n go.Node,\r\n 'Spot',\r\n {\r\n selectionAdornmentTemplate: this.gojsDiagramUtils.createNodeSelectionTemplate(),\r\n locationObjectName: 'ICON',\r\n },\r\n this.$(\r\n go.Panel,\r\n 'Auto',\r\n this.gojsDiagramUtils.getNodeTransparentBackground(),\r\n this.$(\r\n go.Panel,\r\n 'Vertical',\r\n this.gojsDiagramUtils.getNameTextBlockTemplate({ textAlign: 'center' }),\r\n this.$(\r\n go.Panel,\r\n 'Spot',\r\n this.$(go.Picture, {\r\n name: 'ICON',\r\n desiredSize: new go.Size(40, 40),\r\n margin: 5,\r\n source: unitOperationsConfig.lgoHydrotreater.diagramIcon,\r\n }),\r\n this.gojsDiagramUtils.createInletPort({\r\n alignment: new go.Spot(0, 0.5),\r\n toMaxLinks: 1,\r\n portId: 'in',\r\n toolTip: 'In',\r\n }),\r\n this.gojsDiagramUtils.createOutletPort({\r\n alignment: new go.Spot(1, 0.25),\r\n fromMaxLinks: 1,\r\n portId: 'naphtha',\r\n toolTip: 'Naphtha',\r\n }),\r\n this.gojsDiagramUtils.createOutletPort({\r\n alignment: new go.Spot(1, 0.75),\r\n fromMaxLinks: 1,\r\n portId: 'lgoOut',\r\n toolTip: 'LGO',\r\n }),\r\n this.gojsDiagramUtils.getBottomCenterReadinessIndicator()\r\n )\r\n )\r\n ),\r\n new go.Binding('location', 'location', this.gojsDiagramUtils.toLocation).makeTwoWay(),\r\n this.gojsDiagramUtils.getDeletableBinding(),\r\n this.gojsDiagramUtils.getClickEventHandlers(),\r\n { toolTip: this.gojsDiagramUtils.createNodeTooltip() }\r\n );\r\n }\r\n\r\n getSeparatedHydrotreaterTemplate() {\r\n return this.$(\r\n go.Node,\r\n 'Spot',\r\n {\r\n selectionAdornmentTemplate: this.gojsDiagramUtils.createNodeSelectionTemplate(),\r\n locationObjectName: 'ICON',\r\n linkConnected: (node, link, port) => {\r\n if (port.portId === 'in' && node.findLinksInto().count > 2) {\r\n const icon = node.findObject('ICON');\r\n const inlet = node.findObject('IN');\r\n\r\n const proportion = (icon.height + 5) / icon.height;\r\n icon.width *= proportion;\r\n icon.height *= proportion;\r\n\r\n inlet.width *= proportion;\r\n inlet.height *= proportion;\r\n }\r\n },\r\n\r\n linkDisconnected: (node, link, port) => {\r\n if (port.portId === 'in' && node.findLinksInto().count >= 2) {\r\n const icon = node.findObject('ICON');\r\n const inlet = node.findObject('IN');\r\n\r\n const proportion = (icon.height - 5) / icon.height;\r\n icon.width *= proportion;\r\n icon.height *= proportion;\r\n\r\n inlet.width *= proportion;\r\n inlet.height *= proportion;\r\n }\r\n },\r\n },\r\n this.$(\r\n go.Panel,\r\n 'Auto',\r\n this.gojsDiagramUtils.getNodeTransparentBackground(),\r\n this.$(\r\n go.Panel,\r\n 'Vertical',\r\n this.gojsDiagramUtils.getNameTextBlockTemplate({ textAlign: 'center' }),\r\n this.$(\r\n go.Panel,\r\n 'Spot',\r\n this.$(go.Picture, {\r\n name: 'ICON',\r\n desiredSize: new go.Size(40, 40),\r\n source: unitOperationsConfig.hydrotreater.diagramIcon,\r\n }),\r\n this.gojsDiagramUtils.createInletPort({\r\n alignment: new go.Spot(0, 0.5),\r\n portId: 'in',\r\n name: 'IN',\r\n width: 4,\r\n height: 39,\r\n toolTip: 'In',\r\n }),\r\n this.gojsDiagramUtils.createOutletPort({\r\n alignment: new go.Spot(1, 0.25),\r\n fromMaxLinks: 1,\r\n portId: 'lightEnds',\r\n toolTip: 'Light Ends',\r\n }),\r\n this.gojsDiagramUtils.createOutletPort({\r\n alignment: new go.Spot(1, 0.75),\r\n fromMaxLinks: 1,\r\n portId: 'hydrotreatedProduct',\r\n toolTip: 'Hydrotreated Product',\r\n }),\r\n this.gojsDiagramUtils.getBottomCenterReadinessIndicator()\r\n )\r\n )\r\n ),\r\n new go.Binding('location', 'location', this.gojsDiagramUtils.toLocation).makeTwoWay(),\r\n this.gojsDiagramUtils.getDeletableBinding(),\r\n this.gojsDiagramUtils.getClickEventHandlers(),\r\n { toolTip: this.gojsDiagramUtils.createNodeTooltip() }\r\n );\r\n }\r\n\r\n getDCUTemplate() {\r\n return this.$(\r\n go.Node,\r\n 'Spot',\r\n {\r\n selectionAdornmentTemplate: this.gojsDiagramUtils.createNodeSelectionTemplate(),\r\n locationObjectName: 'ICON',\r\n },\r\n this.$(\r\n go.Panel,\r\n 'Auto',\r\n this.gojsDiagramUtils.getNodeTransparentBackground(),\r\n this.$(\r\n go.Panel,\r\n 'Vertical',\r\n this.gojsDiagramUtils.getNameTextBlockTemplate({ textAlign: 'center' }),\r\n this.$(\r\n go.Panel,\r\n 'Spot',\r\n this.$(go.Picture, {\r\n name: 'ICON',\r\n desiredSize: new go.Size(40, 40),\r\n margin: 5,\r\n source: unitOperationsConfig.dcu.diagramIcon,\r\n }),\r\n this.gojsDiagramUtils.createInletPort({\r\n alignment: new go.Spot(0, 0.5),\r\n toMaxLinks: 1,\r\n portId: 'in',\r\n toolTip: 'in',\r\n }),\r\n this.gojsDiagramUtils.createOutletPort({\r\n alignment: new go.Spot(0.5, 0),\r\n fromMaxLinks: 1,\r\n portId: 'lightEnds',\r\n toolTip: 'Light Ends',\r\n }),\r\n this.gojsDiagramUtils.createOutletPort({\r\n alignment: new go.Spot(1, 0.25),\r\n fromMaxLinks: 1,\r\n portId: 'lightNaphtha',\r\n toolTip: 'Light Naphtha',\r\n }),\r\n this.gojsDiagramUtils.createOutletPort({\r\n alignment: new go.Spot(1, 0.5),\r\n fromMaxLinks: 1,\r\n portId: 'heavyNaphtha',\r\n toolTip: 'Heavy Naphtha',\r\n }),\r\n this.gojsDiagramUtils.createOutletPort({\r\n alignment: new go.Spot(1, 0.75),\r\n fromMaxLinks: 1,\r\n portId: 'kero',\r\n toolTip: 'Kero',\r\n }),\r\n this.gojsDiagramUtils.createOutletPort({\r\n alignment: new go.Spot(0.5, 1),\r\n fromMaxLinks: 1,\r\n portId: 'gasOil',\r\n toolTip: 'Gas Oil',\r\n }),\r\n this.gojsDiagramUtils.getAllSidesBusyReadinessIndicator()\r\n )\r\n )\r\n ),\r\n new go.Binding('location', 'location', this.gojsDiagramUtils.toLocation).makeTwoWay(),\r\n this.gojsDiagramUtils.getDeletableBinding(),\r\n this.gojsDiagramUtils.getClickEventHandlers(),\r\n { toolTip: this.gojsDiagramUtils.createNodeTooltip() }\r\n );\r\n }\r\n\r\n getFluidCokerTemplate() {\r\n return this.$(\r\n go.Node,\r\n 'Spot',\r\n {\r\n selectionAdornmentTemplate: this.gojsDiagramUtils.createNodeSelectionTemplate(),\r\n locationObjectName: 'ICON',\r\n },\r\n this.$(\r\n go.Panel,\r\n 'Auto',\r\n this.gojsDiagramUtils.getNodeTransparentBackground(),\r\n this.$(\r\n go.Panel,\r\n 'Vertical',\r\n this.gojsDiagramUtils.getNameTextBlockTemplate({ textAlign: 'center' }),\r\n this.$(\r\n go.Panel,\r\n 'Spot',\r\n this.$(go.Picture, {\r\n name: 'ICON',\r\n desiredSize: new go.Size(40, 40),\r\n margin: 5,\r\n source: unitOperationsConfig.fluidCoker.diagramIcon,\r\n }),\r\n this.gojsDiagramUtils.createInletPort({\r\n alignment: new go.Spot(0, 0.25),\r\n toMaxLinks: 1,\r\n portId: 'atb',\r\n toolTip: 'ATB',\r\n }),\r\n this.gojsDiagramUtils.createInletPort({\r\n alignment: new go.Spot(0, 0.5),\r\n toMaxLinks: 1,\r\n portId: 'vtb',\r\n toolTip: 'VTB',\r\n }),\r\n this.gojsDiagramUtils.createInletPort({\r\n alignment: new go.Spot(0, 0.75),\r\n toMaxLinks: 1,\r\n portId: 'residue',\r\n toolTip: 'Residue',\r\n }),\r\n this.gojsDiagramUtils.createOutletPort({\r\n alignment: new go.Spot(0.5, 0),\r\n fromMaxLinks: 1,\r\n portId: 'butane',\r\n toolTip: 'Butane',\r\n }),\r\n this.gojsDiagramUtils.createOutletPort({\r\n alignment: new go.Spot(1, 0.33),\r\n fromMaxLinks: 1,\r\n portId: 'naphtha',\r\n toolTip: 'Naphtha',\r\n }),\r\n this.gojsDiagramUtils.createOutletPort({\r\n alignment: new go.Spot(1, 0.66),\r\n fromMaxLinks: 1,\r\n portId: 'lgo',\r\n toolTip: 'LGO',\r\n }),\r\n this.gojsDiagramUtils.createOutletPort({\r\n alignment: new go.Spot(0.5, 1),\r\n fromMaxLinks: 1,\r\n portId: 'hgo',\r\n toolTip: 'HGO',\r\n }),\r\n this.gojsDiagramUtils.getAllSidesBusyReadinessIndicator()\r\n )\r\n )\r\n ),\r\n new go.Binding('location', 'location', this.gojsDiagramUtils.toLocation).makeTwoWay(),\r\n this.gojsDiagramUtils.getDeletableBinding(),\r\n this.gojsDiagramUtils.getClickEventHandlers(),\r\n { toolTip: this.gojsDiagramUtils.createNodeTooltip() }\r\n );\r\n }\r\n\r\n getHydrogenPlantTemplate() {\r\n return this.$(\r\n go.Node,\r\n 'Spot',\r\n {\r\n selectionAdornmentTemplate: this.gojsDiagramUtils.createNodeSelectionTemplate(),\r\n locationObjectName: 'ICON',\r\n },\r\n this.$(\r\n go.Panel,\r\n 'Auto',\r\n this.gojsDiagramUtils.getNodeTransparentBackground(),\r\n this.$(\r\n go.Panel,\r\n 'Vertical',\r\n this.gojsDiagramUtils.getNameTextBlockTemplate({ textAlign: 'center' }),\r\n this.$(\r\n go.Panel,\r\n 'Spot',\r\n this.$(go.Picture, {\r\n name: 'ICON',\r\n desiredSize: new go.Size(40, 40),\r\n margin: 5,\r\n source: unitOperationsConfig.hydrogenPlant.diagramIcon,\r\n }),\r\n this.gojsDiagramUtils.getCenterRightReadinessIndicator()\r\n )\r\n )\r\n ),\r\n new go.Binding('location', 'location', this.gojsDiagramUtils.toLocation).makeTwoWay(),\r\n this.gojsDiagramUtils.getDeletableBinding(),\r\n this.gojsDiagramUtils.getClickEventHandlers(),\r\n { toolTip: this.gojsDiagramUtils.createNodeTooltip() }\r\n );\r\n }\r\n\r\n getSulfurPlantTemplate() {\r\n return this.$(\r\n go.Node,\r\n 'Spot',\r\n {\r\n selectionAdornmentTemplate: this.gojsDiagramUtils.createNodeSelectionTemplate(),\r\n locationObjectName: 'ICON',\r\n },\r\n this.$(\r\n go.Panel,\r\n 'Auto',\r\n this.gojsDiagramUtils.getNodeTransparentBackground(),\r\n this.$(\r\n go.Panel,\r\n 'Vertical',\r\n this.gojsDiagramUtils.getNameTextBlockTemplate({ textAlign: 'center' }),\r\n this.$(\r\n go.Panel,\r\n 'Spot',\r\n this.$(go.Picture, {\r\n name: 'ICON',\r\n desiredSize: new go.Size(40, 40),\r\n margin: 5,\r\n source: unitOperationsConfig.sulfurPlant.diagramIcon,\r\n }),\r\n this.gojsDiagramUtils.getCenterRightReadinessIndicator()\r\n )\r\n )\r\n ),\r\n new go.Binding('location', 'location', this.gojsDiagramUtils.toLocation).makeTwoWay(),\r\n this.gojsDiagramUtils.getDeletableBinding(),\r\n this.gojsDiagramUtils.getClickEventHandlers(),\r\n { toolTip: this.gojsDiagramUtils.createNodeTooltip() }\r\n );\r\n }\r\n\r\n getHydrocrackerTemplate() {\r\n return this.$(\r\n go.Node,\r\n 'Spot',\r\n {\r\n selectionAdornmentTemplate: this.gojsDiagramUtils.createNodeSelectionTemplate(),\r\n locationObjectName: 'ICON',\r\n },\r\n this.$(\r\n go.Panel,\r\n 'Auto',\r\n this.gojsDiagramUtils.getNodeTransparentBackground(),\r\n this.$(\r\n go.Panel,\r\n 'Vertical',\r\n this.gojsDiagramUtils.getNameTextBlockTemplate({ textAlign: 'center' }),\r\n this.$(\r\n go.Panel,\r\n 'Spot',\r\n this.$(go.Picture, {\r\n name: 'ICON',\r\n desiredSize: new go.Size(40, 40),\r\n margin: 5,\r\n source: unitOperationsConfig.hydrocracker.diagramIcon,\r\n }),\r\n this.gojsDiagramUtils.createInletPort({\r\n alignment: new go.Spot(0, 0.5),\r\n toMaxLinks: 1,\r\n portId: 'in',\r\n toolTip: 'in',\r\n }),\r\n this.gojsDiagramUtils.createOutletPort({\r\n alignment: new go.Spot(0.5, 0),\r\n fromMaxLinks: 1,\r\n portId: 'diluent',\r\n fromSpot: go.Spot.Top,\r\n toolTip: 'Diluent',\r\n }),\r\n this.gojsDiagramUtils.createOutletPort({\r\n alignment: new go.Spot(1, 0.25),\r\n fromMaxLinks: 1,\r\n portId: 'naphtha',\r\n toolTip: 'Naphtha',\r\n }),\r\n this.gojsDiagramUtils.createOutletPort({\r\n alignment: new go.Spot(1, 0.5),\r\n fromMaxLinks: 1,\r\n portId: 'lgo',\r\n toolTip: 'LGO',\r\n }),\r\n this.gojsDiagramUtils.createOutletPort({\r\n alignment: new go.Spot(0.5, 1),\r\n fromMaxLinks: 1,\r\n portId: 'residue',\r\n toolTip: 'Residue',\r\n }),\r\n this.gojsDiagramUtils.createOutletPort({\r\n alignment: new go.Spot(1, 0.75),\r\n fromMaxLinks: 1,\r\n fromSpot: go.Spot.Bottom,\r\n portId: 'hgo',\r\n toolTip: 'HGO',\r\n }),\r\n this.gojsDiagramUtils.getAllSidesBusyReadinessIndicator()\r\n )\r\n )\r\n ),\r\n new go.Binding('location', 'location', this.gojsDiagramUtils.toLocation).makeTwoWay(),\r\n this.gojsDiagramUtils.getDeletableBinding(),\r\n this.gojsDiagramUtils.getClickEventHandlers(),\r\n { toolTip: this.gojsDiagramUtils.createNodeTooltip() }\r\n );\r\n }\r\n\r\n getInletTransferUnitTemplate() {\r\n return this.$(\r\n go.Node,\r\n 'Spot',\r\n {\r\n selectionAdornmentTemplate: this.gojsDiagramUtils.createNodeSelectionTemplate(),\r\n locationObjectName: 'ICON',\r\n deletable: true,\r\n },\r\n this.$(\r\n go.Panel,\r\n 'Auto',\r\n this.gojsDiagramUtils.getNodeTransparentBackground(),\r\n this.$(\r\n go.Panel,\r\n 'Horizontal',\r\n this.gojsDiagramUtils.getNameTextBlockTemplate({ textAlign: 'right', marginTop: 6 }),\r\n this.$(\r\n go.Panel,\r\n 'Spot',\r\n this.$(go.Picture, {\r\n name: 'ICON',\r\n desiredSize: new go.Size(40, 40),\r\n margin: 5,\r\n source: unitOperationsConfig.inletTransferUnit.diagramIcon,\r\n }),\r\n this.gojsDiagramUtils.createOutletPort({\r\n alignment: new go.Spot(1, 0.5),\r\n fromMaxLinks: 1,\r\n portId: 'out',\r\n toolTip: 'Out',\r\n }),\r\n this.$(\r\n go.Panel,\r\n 'Vertical',\r\n { alignment: new go.Spot(0, 0.7), width: 20, height: 20 },\r\n this.$(go.Shape, { figure: 'Rectangle', width: 12, height: 2, stroke: '#666', fill: '#666' })\r\n ),\r\n this.gojsDiagramUtils.getTopRightReadinessIndicator()\r\n )\r\n )\r\n ),\r\n new go.Binding('location', 'location', this.gojsDiagramUtils.toLocation).makeTwoWay(),\r\n this.gojsDiagramUtils.getClickEventHandlers(),\r\n { toolTip: this.gojsDiagramUtils.createNodeTooltip() }\r\n );\r\n }\r\n\r\n getOutletTransferUnitTemplate() {\r\n return this.$(\r\n go.Node,\r\n 'Spot',\r\n {\r\n selectionAdornmentTemplate: this.gojsDiagramUtils.createNodeSelectionTemplate(),\r\n locationObjectName: 'ICON',\r\n deletable: true,\r\n },\r\n this.$(\r\n go.Panel,\r\n 'Auto',\r\n this.gojsDiagramUtils.getNodeTransparentBackground(),\r\n this.$(\r\n go.Panel,\r\n 'Horizontal',\r\n this.$(\r\n go.Panel,\r\n 'Spot',\r\n this.$(go.Picture, {\r\n name: 'ICON',\r\n desiredSize: new go.Size(40, 40),\r\n margin: 5,\r\n source: unitOperationsConfig.outletTransferUnit.diagramIcon,\r\n }),\r\n this.gojsDiagramUtils.createInletPort({\r\n alignment: new go.Spot(0, 0.5),\r\n toMaxLinks: 1,\r\n portId: 'in',\r\n toolTip: 'In',\r\n }),\r\n this.$(\r\n go.Panel,\r\n 'Vertical',\r\n { alignment: new go.Spot(1, 0.7), width: 20, height: 20 },\r\n this.$(go.Shape, { figure: 'Rectangle', width: 12, height: 2, stroke: '#666', fill: '#666' })\r\n ),\r\n this.gojsDiagramUtils.getTopLeftReadinessIndicator()\r\n ),\r\n this.gojsDiagramUtils.getNameTextBlockTemplate({ textAlign: 'left', marginTop: 6 })\r\n )\r\n ),\r\n new go.Binding('location', 'location', this.gojsDiagramUtils.toLocation).makeTwoWay(),\r\n this.gojsDiagramUtils.getClickEventHandlers(),\r\n { toolTip: this.gojsDiagramUtils.createNodeTooltip() }\r\n );\r\n }\r\n // endregion\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport * as go from 'gojs';\r\nimport { unitOperationsConfig } from '../../_config/unit-operations.config';\r\nimport { GoJsDiagramUtils } from './go-js-diagram-utils';\r\n\r\n@Injectable()\r\nexport class UtilitiesFlowsheetTemplateProvider {\r\n $: any = go.GraphObject.make;\r\n\r\n constructor(private gojsDiagramUtils: GoJsDiagramUtils) {}\r\n\r\n getWaterSourceTemplate() {\r\n return this.$(\r\n go.Node,\r\n 'Spot',\r\n {\r\n selectionAdornmentTemplate: this.gojsDiagramUtils.createNodeSelectionTemplate(),\r\n locationObjectName: 'ICON',\r\n },\r\n this.$(\r\n go.Panel,\r\n 'Auto',\r\n this.gojsDiagramUtils.getNodeTransparentBackground(),\r\n this.$(\r\n go.Panel,\r\n 'Horizontal',\r\n this.gojsDiagramUtils.getNameTextBlockTemplate({ textAlign: 'left', marginTop: 6 }),\r\n this.$(\r\n go.Panel,\r\n 'Spot',\r\n this.$(go.Picture, {\r\n name: 'ICON',\r\n desiredSize: new go.Size(40, 40),\r\n margin: 5,\r\n source: unitOperationsConfig.waterSource.diagramIcon,\r\n }),\r\n this.gojsDiagramUtils.$(go.Shape, 'Circle', { width: 40, height: 40, fill: 'Transparent', stroke: null }),\r\n this.gojsDiagramUtils.createOutletPort({\r\n alignment: new go.Spot(1, 0.5),\r\n fromMaxLinks: 1,\r\n portId: 'out',\r\n toolTip: 'Out',\r\n }),\r\n this.gojsDiagramUtils.getTopRightReadinessIndicator()\r\n )\r\n )\r\n ),\r\n new go.Binding('location', 'location', this.gojsDiagramUtils.toLocation).makeTwoWay(),\r\n this.gojsDiagramUtils.getDeletableBinding(),\r\n this.gojsDiagramUtils.getClickEventHandlers(),\r\n { toolTip: this.gojsDiagramUtils.createNodeTooltip() }\r\n );\r\n }\r\n\r\n getWaterBoilerTemplate() {\r\n return this.$(\r\n go.Node,\r\n 'Spot',\r\n {\r\n selectionAdornmentTemplate: this.gojsDiagramUtils.createNodeSelectionTemplate(),\r\n locationObjectName: 'ICON',\r\n },\r\n this.$(\r\n go.Panel,\r\n 'Auto',\r\n this.gojsDiagramUtils.getNodeTransparentBackground(),\r\n this.$(\r\n go.Panel,\r\n 'Vertical',\r\n this.gojsDiagramUtils.getNameTextBlockTemplate({ textAlign: 'center' }),\r\n this.$(\r\n go.Panel,\r\n 'Spot',\r\n this.$(go.Picture, {\r\n name: 'ICON',\r\n desiredSize: new go.Size(50, 40),\r\n margin: 5,\r\n source: unitOperationsConfig.waterBoiler.diagramIcon,\r\n }),\r\n this.gojsDiagramUtils.$(go.Shape, 'Circle', { width: 40, height: 40, fill: 'Transparent', stroke: null }),\r\n this.gojsDiagramUtils.createInletPort({\r\n alignment: new go.Spot(0, 0.5),\r\n portId: 'in',\r\n toMaxLinks: 1,\r\n name: 'IN',\r\n width: 6.2,\r\n height: 6.2,\r\n toolTip: 'In',\r\n }),\r\n this.gojsDiagramUtils.createOutletPort({\r\n alignment: new go.Spot(1, 0.5),\r\n fromMaxLinks: 1,\r\n portId: 'out',\r\n toolTip: 'Out',\r\n }),\r\n this.gojsDiagramUtils.getBottomCenterReadinessIndicator()\r\n )\r\n )\r\n ),\r\n new go.Binding('location', 'location', this.gojsDiagramUtils.toLocation).makeTwoWay(),\r\n this.gojsDiagramUtils.getDeletableBinding(),\r\n this.gojsDiagramUtils.getClickEventHandlers(),\r\n { toolTip: this.gojsDiagramUtils.createNodeTooltip() }\r\n );\r\n }\r\n\r\n getWaterCogenerationTemplate() {\r\n return this.$(\r\n go.Node,\r\n 'Spot',\r\n {\r\n selectionAdornmentTemplate: this.gojsDiagramUtils.createNodeSelectionTemplate(),\r\n locationObjectName: 'ICON',\r\n },\r\n this.$(\r\n go.Panel,\r\n 'Auto',\r\n this.gojsDiagramUtils.getNodeTransparentBackground(),\r\n this.$(\r\n go.Panel,\r\n 'Vertical',\r\n this.gojsDiagramUtils.getNameTextBlockTemplate({ textAlign: 'center' }),\r\n this.$(\r\n go.Panel,\r\n 'Spot',\r\n this.$(go.Picture, {\r\n name: 'ICON',\r\n desiredSize: new go.Size(43, 43),\r\n margin: 5,\r\n source: unitOperationsConfig.waterCogeneration.diagramIcon,\r\n }),\r\n this.gojsDiagramUtils.$(go.Shape, 'Circle', { width: 40, height: 40, fill: 'Transparent', stroke: null }),\r\n this.gojsDiagramUtils.createInletPort({\r\n alignment: new go.Spot(0, 0.5),\r\n portId: 'in',\r\n toMaxLinks: 1,\r\n name: 'IN',\r\n width: 6.2,\r\n height: 6.2,\r\n toolTip: 'In',\r\n }),\r\n this.gojsDiagramUtils.createOutletPort({\r\n alignment: new go.Spot(1, 0.3),\r\n fromMaxLinks: 1,\r\n portId: 'steam',\r\n toolTip: 'Steam',\r\n }),\r\n this.gojsDiagramUtils.createOutletPort({\r\n alignment: new go.Spot(1, 0.7),\r\n fromMaxLinks: 1,\r\n portId: 'water',\r\n toolTip: 'Water',\r\n }),\r\n this.gojsDiagramUtils.getBottomCenterReadinessIndicator()\r\n )\r\n )\r\n ),\r\n new go.Binding('location', 'location', this.gojsDiagramUtils.toLocation).makeTwoWay(),\r\n this.gojsDiagramUtils.getDeletableBinding(),\r\n this.gojsDiagramUtils.getClickEventHandlers(),\r\n { toolTip: this.gojsDiagramUtils.createNodeTooltip() }\r\n );\r\n }\r\n\r\n getWaterSourceImportTemplate() {\r\n return this.$(\r\n go.Node,\r\n 'Spot',\r\n {\r\n selectionAdornmentTemplate: this.gojsDiagramUtils.createNodeSelectionTemplate(),\r\n locationObjectName: 'ICON',\r\n },\r\n this.$(\r\n go.Panel,\r\n 'Auto',\r\n this.gojsDiagramUtils.getNodeTransparentBackground(),\r\n this.$(\r\n go.Panel,\r\n 'Horizontal',\r\n this.gojsDiagramUtils.getNameTextBlockTemplate({ textAlign: 'left', marginTop: 6 }),\r\n this.$(\r\n go.Panel,\r\n 'Spot',\r\n this.$(go.Picture, {\r\n name: 'ICON',\r\n desiredSize: new go.Size(50, 40),\r\n margin: 5,\r\n source: unitOperationsConfig.waterSourceImport.diagramIcon,\r\n }),\r\n this.gojsDiagramUtils.$(go.Shape, 'Circle', { width: 40, height: 40, fill: 'Transparent', stroke: null }),\r\n this.gojsDiagramUtils.createOutletPort({\r\n alignment: new go.Spot(1, 0.5),\r\n fromMaxLinks: 1,\r\n portId: 'out',\r\n toolTip: 'Out',\r\n }),\r\n this.gojsDiagramUtils.getTopRightReadinessIndicator()\r\n )\r\n )\r\n ),\r\n new go.Binding('location', 'location', this.gojsDiagramUtils.toLocation).makeTwoWay(),\r\n this.gojsDiagramUtils.getDeletableBinding(),\r\n this.gojsDiagramUtils.getClickEventHandlers(),\r\n { toolTip: this.gojsDiagramUtils.createNodeTooltip() }\r\n );\r\n }\r\n\r\n getWaterSinkImportTemplate() {\r\n return this.$(\r\n go.Node,\r\n 'Spot',\r\n {\r\n selectionAdornmentTemplate: this.gojsDiagramUtils.createNodeSelectionTemplate(),\r\n locationObjectName: 'ICON',\r\n },\r\n this.$(\r\n go.Panel,\r\n 'Auto',\r\n this.gojsDiagramUtils.getNodeTransparentBackground(),\r\n this.$(\r\n go.Panel,\r\n 'Vertical',\r\n this.gojsDiagramUtils.getNameTextBlockTemplate({ textAlign: 'center' }),\r\n { width: 100 },\r\n this.$(\r\n go.Panel,\r\n 'Spot',\r\n this.$(go.Picture, {\r\n width: 50,\r\n name: 'ICON',\r\n desiredSize: new go.Size(55, 48),\r\n margin: 5,\r\n source: unitOperationsConfig.waterSinkImport.diagramIcon,\r\n }),\r\n this.gojsDiagramUtils.$(go.Shape, 'Circle', { width: 40, height: 40, fill: 'Transparent', stroke: null }),\r\n this.gojsDiagramUtils.createInletPort({\r\n alignment: new go.Spot(0.5, 1),\r\n toSpot: go.Spot.BottomSide,\r\n toMaxLinks: 1,\r\n portId: 'in',\r\n toolTip: 'In',\r\n }),\r\n this.gojsDiagramUtils.getCenterRightReadinessIndicator()\r\n )\r\n )\r\n ),\r\n new go.Binding('location', 'location', this.gojsDiagramUtils.toLocation).makeTwoWay(),\r\n this.gojsDiagramUtils.getDeletableBinding(),\r\n this.gojsDiagramUtils.getClickEventHandlers(),\r\n { toolTip: this.gojsDiagramUtils.createNodeTooltip() }\r\n );\r\n }\r\n\r\n getHeatExchangerTemplate() {\r\n return this.$(\r\n go.Node,\r\n 'Spot',\r\n {\r\n selectionAdornmentTemplate: this.gojsDiagramUtils.createNodeSelectionTemplate(),\r\n locationObjectName: 'ICON',\r\n },\r\n this.$(\r\n go.Panel,\r\n 'Auto',\r\n this.gojsDiagramUtils.getNodeTransparentBackground(),\r\n this.$(\r\n go.Panel,\r\n 'Vertical',\r\n this.gojsDiagramUtils.getNameTextBlockTemplate({ textAlign: 'center' }),\r\n this.$(\r\n go.Panel,\r\n 'Spot',\r\n this.$(go.Picture, {\r\n name: 'ICON',\r\n desiredSize: new go.Size(40, 40),\r\n margin: 5,\r\n source: unitOperationsConfig.waterHeatExchanger.diagramIcon,\r\n }),\r\n this.gojsDiagramUtils.createInletPort({\r\n alignment: new go.Spot(0, 0.5),\r\n toMaxLinks: 1,\r\n portId: 'tubeIn',\r\n toolTip: 'Tube In',\r\n }),\r\n this.gojsDiagramUtils.createInletPort({\r\n alignment: new go.Spot(0.5, 0),\r\n toMaxLinks: 1,\r\n portId: 'shellIn',\r\n toolTip: 'Shell In',\r\n toSpot: go.Spot.TopSide,\r\n }),\r\n this.gojsDiagramUtils.createOutletPort({\r\n alignment: new go.Spot(1, 0.5),\r\n fromMaxLinks: 1,\r\n portId: 'tubeOut',\r\n toolTip: 'Tube Out',\r\n }),\r\n this.gojsDiagramUtils.createOutletPort({\r\n alignment: new go.Spot(0.5, 1),\r\n fromMaxLinks: 1,\r\n portId: 'shellOut',\r\n toolTip: 'Shell Out',\r\n fromSpot: go.Spot.BottomSide,\r\n }),\r\n this.gojsDiagramUtils.getAllSidesBusyReadinessIndicator()\r\n )\r\n )\r\n ),\r\n new go.Binding('location', 'location', this.gojsDiagramUtils.toLocation).makeTwoWay(),\r\n this.gojsDiagramUtils.getDeletableBinding(),\r\n this.gojsDiagramUtils.getClickEventHandlers(),\r\n { toolTip: this.gojsDiagramUtils.createNodeTooltip() }\r\n );\r\n }\r\n\r\n getTurbineTemplate() {\r\n return this.$(\r\n go.Node,\r\n 'Spot',\r\n {\r\n selectionAdornmentTemplate: this.gojsDiagramUtils.createNodeSelectionTemplate(),\r\n locationObjectName: 'ICON',\r\n },\r\n this.$(\r\n go.Panel,\r\n 'Auto',\r\n this.gojsDiagramUtils.getNodeTransparentBackground(),\r\n this.$(\r\n go.Panel,\r\n 'Vertical',\r\n this.gojsDiagramUtils.getNameTextBlockTemplate({ textAlign: 'center' }),\r\n this.$(\r\n go.Panel,\r\n 'Spot',\r\n this.$(go.Picture, {\r\n name: 'ICON',\r\n desiredSize: new go.Size(50, 40),\r\n margin: 5,\r\n source: unitOperationsConfig.waterTurbine.diagramIcon,\r\n }),\r\n this.gojsDiagramUtils.createInletPort({\r\n alignment: new go.Spot(0, 0.5),\r\n toMaxLinks: 1,\r\n portId: 'in',\r\n toolTip: 'In',\r\n }),\r\n this.gojsDiagramUtils.createOutletPort({\r\n alignment: new go.Spot(1, 0.5),\r\n fromMaxLinks: 1,\r\n portId: 'out',\r\n toolTip: 'Out 1',\r\n }),\r\n this.gojsDiagramUtils.getBottomCenterReadinessIndicator()\r\n )\r\n )\r\n ),\r\n new go.Binding('location', 'location', this.gojsDiagramUtils.toLocation).makeTwoWay(),\r\n this.gojsDiagramUtils.getDeletableBinding(),\r\n this.gojsDiagramUtils.getClickEventHandlers(),\r\n { toolTip: this.gojsDiagramUtils.createNodeTooltip() }\r\n );\r\n }\r\n\r\n getHeaterTemplate() {\r\n return this.$(\r\n go.Node,\r\n 'Spot',\r\n {\r\n selectionAdornmentTemplate: this.gojsDiagramUtils.createNodeSelectionTemplate(),\r\n locationObjectName: 'ICON',\r\n },\r\n this.$(\r\n go.Panel,\r\n 'Auto',\r\n this.gojsDiagramUtils.getNodeTransparentBackground(),\r\n this.$(\r\n go.Panel,\r\n 'Vertical',\r\n this.gojsDiagramUtils.getNameTextBlockTemplate({ textAlign: 'center' }),\r\n this.$(\r\n go.Panel,\r\n 'Spot',\r\n this.$(go.Picture, {\r\n name: 'ICON',\r\n desiredSize: new go.Size(40, 40),\r\n margin: 5,\r\n source: unitOperationsConfig.waterHeater.diagramIcon,\r\n }),\r\n this.gojsDiagramUtils.createInletPort({\r\n alignment: new go.Spot(0, 0.5),\r\n toMaxLinks: 1,\r\n portId: 'in',\r\n toolTip: 'In',\r\n }),\r\n this.gojsDiagramUtils.createOutletPort({\r\n alignment: new go.Spot(1, 0.5),\r\n fromMaxLinks: 1,\r\n portId: 'out',\r\n toolTip: 'Out',\r\n }),\r\n this.gojsDiagramUtils.getBottomCenterReadinessIndicator()\r\n )\r\n )\r\n ),\r\n new go.Binding('location', 'location', this.gojsDiagramUtils.toLocation).makeTwoWay(),\r\n this.gojsDiagramUtils.getDeletableBinding(),\r\n this.gojsDiagramUtils.getClickEventHandlers(),\r\n { toolTip: this.gojsDiagramUtils.createNodeTooltip() }\r\n );\r\n }\r\n\r\n getCoolerTemplate() {\r\n return this.$(\r\n go.Node,\r\n 'Spot',\r\n {\r\n selectionAdornmentTemplate: this.gojsDiagramUtils.createNodeSelectionTemplate(),\r\n locationObjectName: 'ICON',\r\n },\r\n this.$(\r\n go.Panel,\r\n 'Auto',\r\n this.gojsDiagramUtils.getNodeTransparentBackground(),\r\n this.$(\r\n go.Panel,\r\n 'Vertical',\r\n this.gojsDiagramUtils.getNameTextBlockTemplate({ textAlign: 'center' }),\r\n this.$(\r\n go.Panel,\r\n 'Spot',\r\n this.$(go.Picture, {\r\n name: 'ICON',\r\n desiredSize: new go.Size(40, 40),\r\n margin: 5,\r\n source: unitOperationsConfig.waterCooler.diagramIcon,\r\n }),\r\n this.gojsDiagramUtils.createInletPort({\r\n alignment: new go.Spot(0, 0.5),\r\n toMaxLinks: 1,\r\n portId: 'in',\r\n toolTip: 'In',\r\n }),\r\n this.gojsDiagramUtils.createOutletPort({\r\n alignment: new go.Spot(1, 0.5),\r\n fromMaxLinks: 1,\r\n portId: 'out',\r\n toolTip: 'Out',\r\n }),\r\n this.gojsDiagramUtils.getBottomCenterReadinessIndicator()\r\n )\r\n )\r\n ),\r\n new go.Binding('location', 'location', this.gojsDiagramUtils.toLocation).makeTwoWay(),\r\n this.gojsDiagramUtils.getDeletableBinding(),\r\n this.gojsDiagramUtils.getClickEventHandlers(),\r\n { toolTip: this.gojsDiagramUtils.createNodeTooltip() }\r\n );\r\n }\r\n\r\n getTwoPhaseSeparatorTemplate() {\r\n return this.$(\r\n go.Node,\r\n 'Spot',\r\n {\r\n selectionAdornmentTemplate: this.gojsDiagramUtils.createNodeSelectionTemplate(),\r\n locationObjectName: 'ICON',\r\n },\r\n this.$(\r\n go.Panel,\r\n 'Auto',\r\n this.gojsDiagramUtils.getNodeTransparentBackground(),\r\n this.$(\r\n go.Panel,\r\n 'Vertical',\r\n this.gojsDiagramUtils.getNameTextBlockTemplate({ textAlign: 'center' }),\r\n this.$(\r\n go.Panel,\r\n 'Spot',\r\n this.$(go.Picture, {\r\n name: 'ICON',\r\n desiredSize: new go.Size(40, 40),\r\n margin: 5,\r\n source: unitOperationsConfig.waterTwoPhaseSeparator.diagramIcon,\r\n }),\r\n this.$(go.Shape, 'Circle', { width: 40, height: 40, fill: 'Transparent', stroke: null }),\r\n this.gojsDiagramUtils.createInletPort({\r\n alignment: new go.Spot(0.25, 0.3),\r\n toMaxLinks: 1,\r\n portId: 'in',\r\n toolTip: 'In',\r\n }),\r\n this.gojsDiagramUtils.createOutletPort({\r\n alignment: new go.Spot(0.54, 0),\r\n fromMaxLinks: 1,\r\n portId: 'vapor',\r\n toolTip: 'Vapor',\r\n fromSpot: go.Spot.TopSide,\r\n }),\r\n this.gojsDiagramUtils.createOutletPort({\r\n alignment: new go.Spot(0.54, 1),\r\n fromMaxLinks: 1,\r\n portId: 'liquid',\r\n toolTip: 'Liquid',\r\n fromSpot: go.Spot.BottomSide,\r\n }),\r\n this.gojsDiagramUtils.getCenterRightReadinessIndicator()\r\n )\r\n )\r\n ),\r\n new go.Binding('location', 'location', this.gojsDiagramUtils.toLocation).makeTwoWay(),\r\n this.gojsDiagramUtils.getDeletableBinding(),\r\n this.gojsDiagramUtils.getClickEventHandlers(),\r\n { toolTip: this.gojsDiagramUtils.createNodeTooltip() }\r\n );\r\n }\r\n\r\n getPumpTemplate() {\r\n return this.$(\r\n go.Node,\r\n 'Spot',\r\n {\r\n selectionAdornmentTemplate: this.gojsDiagramUtils.createNodeSelectionTemplate(),\r\n locationObjectName: 'ICON',\r\n },\r\n this.$(\r\n go.Panel,\r\n 'Auto',\r\n this.gojsDiagramUtils.getNodeTransparentBackground(),\r\n this.$(\r\n go.Panel,\r\n 'Vertical',\r\n this.gojsDiagramUtils.getNameTextBlockTemplate({ textAlign: 'center' }),\r\n this.$(\r\n go.Panel,\r\n 'Spot',\r\n this.$(go.Picture, {\r\n name: 'ICON',\r\n desiredSize: new go.Size(40, 40),\r\n margin: 5,\r\n source: unitOperationsConfig.waterPump.diagramIcon,\r\n }),\r\n this.gojsDiagramUtils.createInletPort({\r\n alignment: new go.Spot(0, 0.5),\r\n toMaxLinks: 1,\r\n portId: 'in',\r\n toolTip: 'In',\r\n }),\r\n this.gojsDiagramUtils.createOutletPort({\r\n alignment: new go.Spot(1, 0.5),\r\n fromMaxLinks: 1,\r\n portId: 'out',\r\n toolTip: 'Out',\r\n }),\r\n this.gojsDiagramUtils.getBottomCenterReadinessIndicator()\r\n )\r\n )\r\n ),\r\n new go.Binding('location', 'location', this.gojsDiagramUtils.toLocation).makeTwoWay(),\r\n this.gojsDiagramUtils.getDeletableBinding(),\r\n this.gojsDiagramUtils.getClickEventHandlers(),\r\n { toolTip: this.gojsDiagramUtils.createNodeTooltip() }\r\n );\r\n }\r\n\r\n getValveTemplate() {\r\n return this.$(\r\n go.Node,\r\n 'Spot',\r\n {\r\n selectionAdornmentTemplate: this.gojsDiagramUtils.createNodeSelectionTemplate(),\r\n locationObjectName: 'ICON',\r\n },\r\n this.$(\r\n go.Panel,\r\n 'Auto',\r\n this.gojsDiagramUtils.getNodeTransparentBackground(),\r\n this.$(\r\n go.Panel,\r\n 'Vertical',\r\n this.gojsDiagramUtils.getNameTextBlockTemplate({ textAlign: 'center' }),\r\n this.$(\r\n go.Panel,\r\n 'Spot',\r\n this.$(go.Picture, {\r\n name: 'ICON',\r\n desiredSize: new go.Size(40, 40),\r\n margin: 5,\r\n source: unitOperationsConfig.waterValve.diagramIcon,\r\n }),\r\n this.gojsDiagramUtils.createInletPort({\r\n alignment: new go.Spot(0, 0.5),\r\n toMaxLinks: 1,\r\n portId: 'in',\r\n toolTip: 'In',\r\n }),\r\n this.gojsDiagramUtils.createOutletPort({\r\n alignment: new go.Spot(1, 0.5),\r\n fromMaxLinks: 1,\r\n portId: 'out',\r\n toolTip: 'Out',\r\n }),\r\n this.gojsDiagramUtils.getBottomCenterReadinessIndicator()\r\n )\r\n )\r\n ),\r\n new go.Binding('location', 'location', this.gojsDiagramUtils.toLocation).makeTwoWay(),\r\n this.gojsDiagramUtils.getDeletableBinding(),\r\n this.gojsDiagramUtils.getClickEventHandlers(),\r\n { toolTip: this.gojsDiagramUtils.createNodeTooltip() }\r\n );\r\n }\r\n\r\n getSinkTemplate() {\r\n return this.$(\r\n go.Node,\r\n 'Spot',\r\n {\r\n selectionAdornmentTemplate: this.gojsDiagramUtils.createNodeSelectionTemplate(),\r\n locationObjectName: 'ICON',\r\n },\r\n this.$(\r\n go.Panel,\r\n 'Auto',\r\n this.gojsDiagramUtils.getNodeTransparentBackground(),\r\n this.$(\r\n go.Panel,\r\n 'Horizontal',\r\n this.$(\r\n go.Panel,\r\n 'Spot',\r\n this.$(go.Picture, {\r\n name: 'ICON',\r\n desiredSize: new go.Size(40, 40),\r\n margin: 5,\r\n source: unitOperationsConfig.waterSink.diagramIcon,\r\n }),\r\n this.gojsDiagramUtils.createInletPort({\r\n alignment: new go.Spot(0, 0.5),\r\n toMaxLinks: 1,\r\n portId: 'in',\r\n toolTip: 'In',\r\n }),\r\n this.gojsDiagramUtils.getTopLeftReadinessIndicator()\r\n ),\r\n this.gojsDiagramUtils.getNameTextBlockTemplate({ textAlign: 'center', marginTop: 6 })\r\n )\r\n ),\r\n new go.Binding('location', 'location', this.gojsDiagramUtils.toLocation).makeTwoWay(),\r\n this.gojsDiagramUtils.getDeletableBinding(),\r\n this.gojsDiagramUtils.getClickEventHandlers(),\r\n { toolTip: this.gojsDiagramUtils.createNodeTooltip() }\r\n );\r\n }\r\n\r\n getWaterMixerTemplate() {\r\n return this.$(\r\n go.Node,\r\n 'Spot',\r\n {\r\n selectionAdornmentTemplate: this.gojsDiagramUtils.createNodeSelectionTemplate(),\r\n locationObjectName: 'ICON',\r\n // dragComputation: AvoidOverlapHelper.avoidNodeOverlap,\r\n linkConnected: (node, link, port) => {\r\n if (port.portId === 'in' && node.findLinksInto().count > 2) {\r\n const icon = node.findObject('ICON');\r\n const inlet = node.findObject('IN');\r\n const outlet = node.findObject('OUT');\r\n\r\n const proportion = (icon.height + 5) / icon.height;\r\n icon.width *= proportion;\r\n icon.height *= proportion;\r\n\r\n inlet.width *= proportion;\r\n inlet.height *= proportion;\r\n\r\n outlet.width *= proportion;\r\n outlet.height *= proportion;\r\n }\r\n },\r\n\r\n linkDisconnected: (node, link, port) => {\r\n if (port.portId === 'in' && node.findLinksInto().count >= 2) {\r\n const icon = node.findObject('ICON');\r\n const inlet = node.findObject('IN');\r\n const outlet = node.findObject('OUT');\r\n\r\n const proportion = (icon.height - 5) / icon.height;\r\n icon.width *= proportion;\r\n icon.height *= proportion;\r\n\r\n inlet.width *= proportion;\r\n inlet.height *= proportion;\r\n\r\n outlet.width *= proportion;\r\n outlet.height *= proportion;\r\n }\r\n },\r\n },\r\n this.$(\r\n go.Panel,\r\n 'Auto',\r\n this.gojsDiagramUtils.getNodeTransparentBackground(),\r\n this.$(\r\n go.Panel,\r\n 'Vertical',\r\n this.gojsDiagramUtils.getNameTextBlockTemplate({ textAlign: 'center' }),\r\n this.$(\r\n go.Panel,\r\n 'Spot',\r\n this.$(go.Picture, {\r\n name: 'ICON',\r\n desiredSize: new go.Size(22, 28),\r\n source: unitOperationsConfig.waterMixer.diagramIcon,\r\n }),\r\n this.gojsDiagramUtils.createInletPort({\r\n alignment: new go.Spot(0, 0.5),\r\n portId: 'in',\r\n name: 'IN',\r\n width: 4,\r\n height: 39,\r\n toolTip: 'In',\r\n }),\r\n this.gojsDiagramUtils.createOutletPort({\r\n alignment: new go.Spot(0.88, 0.5),\r\n portId: 'out',\r\n name: 'OUT',\r\n fromMaxLinks: 1,\r\n width: 6,\r\n height: 4,\r\n toolTip: 'Out',\r\n }),\r\n this.gojsDiagramUtils.getTopRightReadinessIndicator()\r\n )\r\n )\r\n ),\r\n new go.Binding('location', 'location', this.gojsDiagramUtils.toLocation).makeTwoWay(),\r\n this.gojsDiagramUtils.getDeletableBinding(),\r\n this.gojsDiagramUtils.getClickEventHandlers(),\r\n { toolTip: this.gojsDiagramUtils.createNodeTooltip() }\r\n );\r\n }\r\n\r\n getWaterSplitterTemplate() {\r\n return this.$(\r\n go.Node,\r\n 'Spot',\r\n {\r\n selectionAdornmentTemplate: this.gojsDiagramUtils.createNodeSelectionTemplate(),\r\n locationObjectName: 'ICON',\r\n linkConnected: (node, link, port) => {\r\n if (port.portId === 'out' && node.findLinksOutOf().count > 2) {\r\n const icon = node.findObject('ICON');\r\n const inlet = node.findObject('IN');\r\n const outlet = node.findObject('OUT');\r\n\r\n const proportion = (icon.height + 5) / icon.height;\r\n icon.width *= proportion;\r\n icon.height *= proportion;\r\n\r\n inlet.width *= proportion;\r\n inlet.height *= proportion;\r\n\r\n outlet.width *= proportion;\r\n outlet.height *= proportion;\r\n }\r\n },\r\n\r\n linkDisconnected: (node, link, port) => {\r\n if (port.portId === 'out' && node.findLinksOutOf().count >= 2) {\r\n const icon = node.findObject('ICON');\r\n const inlet = node.findObject('IN');\r\n const outlet = node.findObject('OUT');\r\n\r\n const proportion = (icon.height - 5) / icon.height;\r\n icon.width *= proportion;\r\n icon.height *= proportion;\r\n\r\n inlet.width *= proportion;\r\n inlet.height *= proportion;\r\n\r\n outlet.width *= proportion;\r\n outlet.height *= proportion;\r\n }\r\n },\r\n },\r\n this.$(\r\n go.Panel,\r\n 'Auto',\r\n this.gojsDiagramUtils.getNodeTransparentBackground(),\r\n this.$(\r\n go.Panel,\r\n 'Vertical',\r\n this.$(go.Panel, 'Horizontal', this.gojsDiagramUtils.getNameTextBlockTemplate({ textAlign: 'center' })),\r\n this.$(\r\n go.Panel,\r\n 'Spot',\r\n this.$(go.Picture, {\r\n name: 'ICON',\r\n desiredSize: new go.Size(22, 28),\r\n source: unitOperationsConfig.waterSplitter.diagramIcon,\r\n }),\r\n this.gojsDiagramUtils.createInletPort({\r\n alignment: new go.Spot(0.1, 0.5),\r\n portId: 'in',\r\n name: 'IN',\r\n height: 4,\r\n width: 4,\r\n toolTip: 'In',\r\n toMaxLinks: 1,\r\n }),\r\n this.gojsDiagramUtils.createOutletPort({\r\n alignment: new go.Spot(1, 0.5),\r\n portId: 'out',\r\n name: 'OUT',\r\n width: 4,\r\n height: 39,\r\n toolTip: 'Out',\r\n }),\r\n this.gojsDiagramUtils.getTopLeftReadinessIndicator()\r\n )\r\n )\r\n ),\r\n new go.Binding('location', 'location', this.gojsDiagramUtils.toLocation).makeTwoWay(),\r\n this.gojsDiagramUtils.getDeletableBinding(),\r\n this.gojsDiagramUtils.getClickEventHandlers(),\r\n { toolTip: this.gojsDiagramUtils.createNodeTooltip() }\r\n );\r\n }\r\n\r\n getWaterHeaderTemplate() {\r\n return this.$(\r\n go.Node,\r\n 'Spot',\r\n {\r\n selectionAdornmentTemplate: this.gojsDiagramUtils.createNodeSelectionTemplate(),\r\n locationObjectName: 'ICON',\r\n linkConnected: (node, link, port) => {\r\n this.onWaterHeaderLinkConnected(node, port);\r\n },\r\n\r\n linkDisconnected: (node, link, port) => {\r\n this.onWaterHeaderLinkDisconnected(node, port);\r\n },\r\n },\r\n this.$(\r\n go.Panel,\r\n 'Auto',\r\n this.gojsDiagramUtils.getNodeTransparentBackground(),\r\n this.$(\r\n go.Panel,\r\n 'Horizontal',\r\n {\r\n name: 'ICON',\r\n },\r\n this.gojsDiagramUtils.getNameTextBlockTemplate({ textAlign: 'center' }),\r\n this.$(\r\n go.Panel,\r\n 'Horizontal',\r\n {\r\n margin: 10,\r\n },\r\n this.$(go.Picture, {\r\n name: 'HEAD',\r\n desiredSize: new go.Size(6, 33),\r\n source: '/assets/img/blocks/icons/waterHeaderEnds.svg',\r\n }),\r\n this.getWaterHeaderBody(),\r\n this.$(go.Picture, {\r\n name: 'TAIL',\r\n desiredSize: new go.Size(6, 33),\r\n source: '/assets/img/blocks/icons/waterHeaderEnds.svg',\r\n }),\r\n this.$(\r\n go.Panel,\r\n 'Spot',\r\n this.$(go.Shape, 'Rectangle', { height: 33, width: 2, fill: 'Transparent', stroke: null }),\r\n this.gojsDiagramUtils.getTopRightReadinessIndicator()\r\n )\r\n )\r\n )\r\n ),\r\n new go.Binding('location', 'location', this.gojsDiagramUtils.toLocation).makeTwoWay(),\r\n this.gojsDiagramUtils.getDeletableBinding(),\r\n this.gojsDiagramUtils.getClickEventHandlers(),\r\n { toolTip: this.gojsDiagramUtils.createNodeTooltip() }\r\n );\r\n }\r\n\r\n private getWaterHeaderBody() {\r\n return this.$(\r\n go.Panel,\r\n 'Spot',\r\n {\r\n margin: new go.Margin(-0.8, 0, 0, 0),\r\n },\r\n this.$(\r\n go.Panel,\r\n 'Horizontal',\r\n {\r\n name: 'BODY',\r\n },\r\n this.getWaterHeaderBodySegmentPicture(),\r\n this.getWaterHeaderBodySegmentPicture(),\r\n this.getWaterHeaderBodySegmentPicture(),\r\n this.getWaterHeaderBodySegmentPicture()\r\n ),\r\n // the inlet port\r\n this.$(\r\n go.Panel,\r\n 'Auto',\r\n { alignment: new go.Spot(0.5, -0.018) },\r\n this.$(\r\n go.Shape,\r\n {\r\n width: 40,\r\n height: 4,\r\n margin: 0,\r\n portId: 'in',\r\n name: 'IN',\r\n fill: '#4972b0',\r\n stroke: 'Transparent',\r\n toLinkable: true,\r\n toSpot: go.Spot.TopSide,\r\n },\r\n {\r\n toolTip: this.gojsDiagramUtils.createPortTooltip('In'),\r\n },\r\n new go.Binding('height', 'height')\r\n )\r\n ),\r\n\r\n // the outlet port\r\n this.$(\r\n go.Panel,\r\n 'Auto',\r\n { alignment: new go.Spot(0.5, 0.95) },\r\n this.$(\r\n go.Shape,\r\n {\r\n width: 40,\r\n height: 4,\r\n margin: 0,\r\n portId: 'out',\r\n name: 'OUT',\r\n fill: '#4972b0',\r\n stroke: 'Transparent',\r\n fromLinkable: true,\r\n fromSpot: go.Spot.BottomSide,\r\n },\r\n {\r\n toolTip: this.gojsDiagramUtils.createPortTooltip('Out'),\r\n },\r\n new go.Binding('height', 'height')\r\n )\r\n )\r\n );\r\n }\r\n\r\n private getWaterHeaderBodySegmentPicture() {\r\n return this.$(go.Picture, {\r\n desiredSize: new go.Size(20, 22),\r\n margin: new go.Margin(0, -1, 0, 0),\r\n source: '/assets/img/blocks/icons/waterHeaderBodySegment.svg',\r\n });\r\n }\r\n\r\n private onWaterHeaderLinkConnected(node: go.Node, port: go.Part) {\r\n let increaseSize =\r\n port.portId === 'in'\r\n ? node.findLinksInto().count > node.findLinksOutOf().count\r\n : node.findLinksOutOf().count > node.findLinksInto().count;\r\n\r\n increaseSize = increaseSize && (node.findLinksInto().count > 1 || node.findLinksOutOf().count > 1);\r\n\r\n if (!increaseSize) {\r\n return;\r\n }\r\n\r\n const inlet = node.findObject('IN');\r\n const outlet = node.findObject('OUT');\r\n\r\n inlet.width += 19;\r\n outlet.width += 19;\r\n\r\n const body = node.findObject('BODY') as go.Part;\r\n body.add(this.getWaterHeaderBodySegmentPicture());\r\n }\r\n\r\n private onWaterHeaderLinkDisconnected(node, port) {\r\n let shouldDecreaseSize =\r\n port.portId === 'in'\r\n ? node.findLinksInto().count >= node.findLinksOutOf().count\r\n : node.findLinksOutOf().count >= node.findLinksInto().count;\r\n\r\n shouldDecreaseSize = shouldDecreaseSize && node.findLinksInto().count >= 1 && node.findLinksOutOf().count >= 1;\r\n\r\n if (!shouldDecreaseSize) {\r\n return;\r\n }\r\n\r\n const inlet = node.findObject('IN');\r\n const outlet = node.findObject('OUT');\r\n\r\n inlet.width -= 19;\r\n outlet.width -= 19;\r\n\r\n const body = node.findObject('BODY');\r\n body.removeAt(0);\r\n }\r\n\r\n getWaterPipeTemplate() {\r\n return this.$(\r\n go.Node,\r\n 'Spot',\r\n {\r\n selectionAdornmentTemplate: this.gojsDiagramUtils.createNodeSelectionTemplate(),\r\n locationObjectName: 'ICON',\r\n },\r\n this.$(\r\n go.Panel,\r\n 'Auto',\r\n this.gojsDiagramUtils.getNodeTransparentBackground(),\r\n this.$(\r\n go.Panel,\r\n 'Vertical',\r\n this.$(go.Panel, 'Horizontal', this.gojsDiagramUtils.getNameTextBlockTemplate({ textAlign: 'center' })),\r\n this.$(\r\n go.Panel,\r\n 'Spot',\r\n this.$(go.Picture, {\r\n name: 'ICON',\r\n desiredSize: new go.Size(40, 40),\r\n margin: 0,\r\n source: unitOperationsConfig.waterPipe.diagramIcon,\r\n }),\r\n this.gojsDiagramUtils.createInletPort({\r\n alignment: new go.Spot(0, 0.5),\r\n toMaxLinks: 1,\r\n portId: 'in',\r\n toolTip: 'In',\r\n }),\r\n this.gojsDiagramUtils.createOutletPort({\r\n alignment: new go.Spot(1, 0.5),\r\n fromMaxLinks: 1,\r\n portId: 'out',\r\n toolTip: 'Out',\r\n }),\r\n this.gojsDiagramUtils.getBottomCenterReadinessIndicator()\r\n )\r\n )\r\n ),\r\n new go.Binding('location', 'location', this.gojsDiagramUtils.toLocation).makeTwoWay(),\r\n this.gojsDiagramUtils.getDeletableBinding(),\r\n this.gojsDiagramUtils.getClickEventHandlers(),\r\n { toolTip: this.gojsDiagramUtils.createNodeTooltip() }\r\n );\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport * as go from 'gojs';\r\n\r\nexport interface DiagramItemColorPickerInput {\r\n diagramItemKey: string | number;\r\n documentX: number;\r\n documentY: number;\r\n diagram: go.Diagram;\r\n fill: string;\r\n}\r\n\r\n@Injectable()\r\nexport class DiagramItemColorPickerService {\r\n private openSubject = new Subject<DiagramItemColorPickerInput>();\r\n open$ = this.openSubject.asObservable();\r\n\r\n open(params: DiagramItemColorPickerInput) {\r\n this.openSubject.next(params);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport * as go from 'gojs';\r\nimport { DiagramItemColorPickerService } from '../../flowsheet/diagram-item-color-picker/diagram-item-color-picker.service';\r\nimport { isNullOrUndefined, isTypeString } from '../../_utils/utils';\r\n\r\n@Injectable()\r\nexport class OtherDiagramObjectsTemplateProvider {\r\n constructor(private diagramItemColorPickerService: DiagramItemColorPickerService) {}\r\n\r\n $: any = go.GraphObject.make;\r\n\r\n // region other diagram objects\r\n // TODO this could be in a separate file\r\n getDiagramCommentsTemplate() {\r\n // the shape of the comments block\r\n go.Shape.defineFigureGenerator('File', (shape, w, h) => {\r\n const geo = new go.Geometry();\r\n const fig = new go.PathFigure(0, 0, true); // starting point\r\n geo.add(fig);\r\n fig.add(new go.PathSegment(go.PathSegment.Line, w - 10, 0));\r\n fig.add(new go.PathSegment(go.PathSegment.Line, w, 10));\r\n fig.add(new go.PathSegment(go.PathSegment.Line, w, h));\r\n fig.add(new go.PathSegment(go.PathSegment.Line, 0, h).close());\r\n const fig2 = new go.PathFigure(w - 10, 0, false);\r\n geo.add(fig2);\r\n // The Fold\r\n fig2.add(new go.PathSegment(go.PathSegment.Line, w - 10, 10));\r\n fig2.add(new go.PathSegment(go.PathSegment.Line, w, 10));\r\n geo.spot1 = new go.Spot(0, 0.25);\r\n geo.spot2 = go.Spot.BottomRight;\r\n return geo;\r\n });\r\n\r\n return this.$(\r\n go.Node,\r\n 'Auto',\r\n {\r\n resizable: true,\r\n minSize: new go.Size(150, 80),\r\n selectionAdornmentTemplate: this.getCommentsSelectionAdornmentTemplate(),\r\n },\r\n this.$(\r\n go.Shape,\r\n 'File',\r\n {\r\n name: 'SHAPE',\r\n strokeWidth: 1,\r\n spot1: new go.Spot(0, 0),\r\n spot2: new go.Spot(1, 1),\r\n },\r\n new go.Binding('fill', '', data => {\r\n if (!data.fill) {\r\n return 'rgb(254, 254, 184)';\r\n }\r\n\r\n return data.fill;\r\n }).makeTwoWay(),\r\n new go.Binding('opacity', '', data => {\r\n if (isNullOrUndefined(data.opacity)) {\r\n return 1;\r\n }\r\n\r\n return data.opacity;\r\n }).makeTwoWay()\r\n ),\r\n this.$(\r\n go.TextBlock,\r\n {\r\n margin: 10,\r\n maxSize: new go.Size(NaN, NaN),\r\n wrap: go.TextBlock.WrapFit,\r\n editable: true,\r\n stretch: go.GraphObject.Fill,\r\n minSize: new go.Size(130, 60),\r\n textEditor: this.getCommentsTextEditor(),\r\n textEdited: (textBlock: go.TextBlock) => {\r\n const { part } = textBlock;\r\n\r\n const actualBounds = { width: part.actualBounds.width, height: part.actualBounds.height };\r\n\r\n textBlock.part.height = NaN;\r\n textBlock.part.width = NaN;\r\n textBlock.part.ensureBounds();\r\n const autoCalculatedTextBounds = { width: part.actualBounds.width, height: part.actualBounds.height };\r\n\r\n part.width =\r\n actualBounds.width > autoCalculatedTextBounds.width ? actualBounds.width : autoCalculatedTextBounds.width;\r\n\r\n part.height =\r\n actualBounds.height > autoCalculatedTextBounds.height\r\n ? actualBounds.height\r\n : autoCalculatedTextBounds.height;\r\n },\r\n name: 'TEXT',\r\n },\r\n new go.Binding('text').makeTwoWay()\r\n ),\r\n new go.Binding('location', 'location', go.Point.parse).makeTwoWay(go.Point.stringify),\r\n new go.Binding('height', 'height').makeTwoWay(),\r\n new go.Binding('width', 'width').makeTwoWay()\r\n );\r\n }\r\n\r\n private getCommentsTextEditor() {\r\n const customEditor = new go.HTMLInfo();\r\n const customTextArea = document.createElement('textarea');\r\n\r\n customEditor.show = (textBlock, diagram, tool) => {\r\n if (!(textBlock instanceof go.TextBlock)) {\r\n return;\r\n }\r\n\r\n const textEditingTool = tool as go.TextEditingTool;\r\n\r\n customTextArea.addEventListener('keydown', e => {\r\n const { key } = e;\r\n if (key === 'Tab') {\r\n e.preventDefault();\r\n return false;\r\n }\r\n if (key === 'Escape') {\r\n // Cancel on Esc\r\n tool.doCancel();\r\n if (tool.diagram) {\r\n tool.diagram.focus();\r\n }\r\n }\r\n\r\n return true;\r\n });\r\n\r\n // taken from https://gojs.net/latest/extensions/TextEditor.js - very important fix!\r\n // without this, if user clicks outside the diagram, the current textBlock being edited\r\n // will remain in edit mode\r\n // Disallow blur.\r\n // If the textEditingTool blurs and the text is not valid,\r\n // we do not want focus taken off the element just because a user clicked elsewhere.\r\n customTextArea.addEventListener(\r\n 'blur',\r\n () => {\r\n if (\r\n !textEditingTool ||\r\n textEditingTool.currentTextEditor === null ||\r\n textEditingTool.state === go.TextEditingTool.StateNone\r\n ) {\r\n return;\r\n }\r\n\r\n customTextArea.focus();\r\n\r\n if (textEditingTool.selectsTextOnActivate) {\r\n customTextArea.select();\r\n customTextArea.setSelectionRange(0, 9999);\r\n }\r\n },\r\n false\r\n );\r\n\r\n customTextArea.value = textBlock.text;\r\n customTextArea.style.resize = 'none';\r\n\r\n const { scale } = textBlock.diagram;\r\n const scaledWidth = Math.floor(scale * textBlock.measuredBounds.width);\r\n const scaledHeight = Math.floor(scale * textBlock.measuredBounds.height);\r\n customTextArea.style.width = `${scaledWidth + 1}px`;\r\n customTextArea.style.height = `${scaledHeight + 1}px`;\r\n\r\n const scaledFontSize = Math.floor(scale * 12);\r\n customTextArea.style.fontSize = `${scaledFontSize}px`;\r\n\r\n customTextArea.style.backgroundColor = 'white';\r\n\r\n const loc = textBlock.getDocumentPoint(go.Spot.TopLeft);\r\n const pos = diagram.transformDocToView(loc);\r\n customTextArea.style.left = `${pos.x - 1}px`;\r\n customTextArea.style.top = `${pos.y - 1}px`;\r\n customTextArea.style.position = 'absolute';\r\n customTextArea.style.zIndex = '100'; // place it in front of the Diagram\r\n\r\n if (diagram.div !== null) {\r\n diagram.div.appendChild(customTextArea);\r\n }\r\n\r\n customTextArea.focus();\r\n };\r\n\r\n customEditor.hide = diagram => {\r\n if (diagram.div.contains(customTextArea)) {\r\n diagram.div.removeChild(customTextArea);\r\n }\r\n };\r\n\r\n customEditor.valueFunction = () => {\r\n return customTextArea.value;\r\n };\r\n\r\n return customEditor;\r\n }\r\n\r\n private getCommentsSelectionAdornmentTemplate() {\r\n return this.$(\r\n go.Adornment,\r\n 'Spot',\r\n this.$(\r\n go.Panel,\r\n 'Auto',\r\n this.$(go.Shape, { stroke: 'dodgerblue', strokeWidth: 2, fill: null }),\r\n this.$(go.Placeholder)\r\n ),\r\n this.$(\r\n go.Panel,\r\n 'Horizontal',\r\n { alignment: go.Spot.Top, alignmentFocus: go.Spot.Bottom },\r\n this.$(\r\n 'Button',\r\n this.$(go.TextBlock, {\r\n text: '\\uf1fb', // eye dropper\r\n font: '11pt FontAwesome',\r\n }),\r\n {\r\n click: (e: go.InputEvent, button: any) => {\r\n const clickedNode = button.part.adornedPart as go.Node;\r\n\r\n const shape = clickedNode.findObject('SHAPE') as go.Shape;\r\n\r\n if (!shape || !isTypeString(shape.fill)) {\r\n return;\r\n }\r\n\r\n this.diagramItemColorPickerService.open({\r\n diagram: clickedNode.diagram as go.Diagram,\r\n diagramItemKey: clickedNode.key,\r\n documentX: e.viewPoint.x,\r\n documentY: e.viewPoint.y,\r\n fill: shape.fill,\r\n });\r\n },\r\n _buttonFillOver: 'transparent',\r\n },\r\n this.$(go.Shape, { fill: null, stroke: null, desiredSize: new go.Size(14, 14), margin: 5 })\r\n )\r\n )\r\n );\r\n }\r\n // endregion\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport * as go from 'gojs';\r\nimport { unitOperationsConfig } from '../../_config/unit-operations.config';\r\nimport { GoJsDiagramUtils } from './go-js-diagram-utils';\r\n\r\n@Injectable()\r\nexport class FuelGasFlowsheetTemplateProvider {\r\n $: any = go.GraphObject.make;\r\n\r\n constructor(private gojsDiagramUtils: GoJsDiagramUtils) {}\r\n\r\n getFuelGasFlareTemplate() {\r\n return this.$(\r\n go.Node,\r\n 'Spot',\r\n {\r\n selectionAdornmentTemplate: this.gojsDiagramUtils.createNodeSelectionTemplate(),\r\n locationObjectName: 'ICON',\r\n },\r\n this.$(\r\n go.Panel,\r\n 'Auto',\r\n this.gojsDiagramUtils.getNodeTransparentBackground(),\r\n this.$(\r\n go.Panel,\r\n 'Horizontal',\r\n this.$(\r\n go.Panel,\r\n 'Spot',\r\n this.$(go.Picture, {\r\n name: 'ICON',\r\n desiredSize: new go.Size(40, 40),\r\n margin: 5,\r\n source: unitOperationsConfig.fuelGasFlare.diagramIcon,\r\n }),\r\n this.gojsDiagramUtils.$(go.Shape, 'Circle', { width: 40, height: 40, fill: 'Transparent', stroke: null }),\r\n this.gojsDiagramUtils.createInletPort({\r\n alignment: new go.Spot(0, 0.5),\r\n portId: 'in',\r\n toMaxLinks: 1,\r\n name: 'IN',\r\n width: 5,\r\n height: 5,\r\n toolTip: 'In',\r\n }),\r\n this.gojsDiagramUtils.getTopLeftReadinessIndicator()\r\n ),\r\n this.gojsDiagramUtils.getNameTextBlockTemplate({ textAlign: 'left', marginTop: 6 })\r\n )\r\n ),\r\n new go.Binding('location', 'location', this.gojsDiagramUtils.toLocation).makeTwoWay(),\r\n this.gojsDiagramUtils.getDeletableBinding(),\r\n this.gojsDiagramUtils.getClickEventHandlers(),\r\n { toolTip: this.gojsDiagramUtils.createNodeTooltip() }\r\n );\r\n }\r\n\r\n getFuelGasSinkImportTemplate() {\r\n return this.$(\r\n go.Node,\r\n 'Spot',\r\n {\r\n selectionAdornmentTemplate: this.gojsDiagramUtils.createNodeSelectionTemplate(),\r\n locationObjectName: 'ICON',\r\n },\r\n this.$(\r\n go.Panel,\r\n 'Auto',\r\n this.gojsDiagramUtils.getNodeTransparentBackground(),\r\n this.$(\r\n go.Panel,\r\n 'Vertical',\r\n this.gojsDiagramUtils.getNameTextBlockTemplate({ textAlign: 'center' }),\r\n { width: 100 },\r\n this.$(\r\n go.Panel,\r\n 'Spot',\r\n this.$(\r\n go.Picture,\r\n // eslint-disable-next-line max-len\r\n {\r\n width: 50,\r\n name: 'ICON',\r\n desiredSize: new go.Size(40, 40),\r\n margin: 5,\r\n source: unitOperationsConfig.fuelGasSinkImport.diagramIcon,\r\n }\r\n ),\r\n this.gojsDiagramUtils.$(go.Shape, 'Circle', { width: 40, height: 40, fill: 'Transparent', stroke: null }),\r\n this.gojsDiagramUtils.createInletPort({\r\n alignment: new go.Spot(0.5, 1),\r\n toSpot: go.Spot.BottomSide,\r\n toMaxLinks: 1,\r\n portId: 'in',\r\n toolTip: 'In',\r\n }),\r\n this.gojsDiagramUtils.getCenterRightReadinessIndicator()\r\n )\r\n )\r\n ),\r\n new go.Binding('location', 'location', this.gojsDiagramUtils.toLocation).makeTwoWay(),\r\n this.gojsDiagramUtils.getDeletableBinding(),\r\n this.gojsDiagramUtils.getClickEventHandlers(),\r\n { toolTip: this.gojsDiagramUtils.createNodeTooltip() }\r\n );\r\n }\r\n\r\n getFuelGasSourceImportTemplate() {\r\n return this.$(\r\n go.Node,\r\n 'Spot',\r\n {\r\n selectionAdornmentTemplate: this.gojsDiagramUtils.createNodeSelectionTemplate(),\r\n locationObjectName: 'ICON',\r\n },\r\n this.$(\r\n go.Panel,\r\n 'Auto',\r\n this.gojsDiagramUtils.getNodeTransparentBackground(),\r\n this.$(\r\n go.Panel,\r\n 'Horizontal',\r\n this.gojsDiagramUtils.getNameTextBlockTemplate({ textAlign: 'right', marginTop: 6 }),\r\n this.$(\r\n go.Panel,\r\n 'Spot',\r\n this.$(go.Picture, {\r\n name: 'ICON',\r\n desiredSize: new go.Size(40, 40),\r\n margin: 5,\r\n source: unitOperationsConfig.fuelGasSourceImport.diagramIcon,\r\n }),\r\n this.gojsDiagramUtils.$(go.Shape, 'Circle', { width: 40, height: 40, fill: 'Transparent', stroke: null }),\r\n this.gojsDiagramUtils.createOutletPort({\r\n alignment: new go.Spot(1, 0.5),\r\n fromMaxLinks: 1,\r\n portId: 'out',\r\n toolTip: 'Out',\r\n }),\r\n this.gojsDiagramUtils.getTopRightReadinessIndicator()\r\n )\r\n )\r\n ),\r\n new go.Binding('location', 'location', this.gojsDiagramUtils.toLocation).makeTwoWay(),\r\n this.gojsDiagramUtils.getDeletableBinding(),\r\n this.gojsDiagramUtils.getClickEventHandlers(),\r\n { toolTip: this.gojsDiagramUtils.createNodeTooltip() }\r\n );\r\n }\r\n\r\n getFuelGasSinkTemplate() {\r\n return this.$(\r\n go.Node,\r\n 'Spot',\r\n {\r\n selectionAdornmentTemplate: this.gojsDiagramUtils.createNodeSelectionTemplate(),\r\n locationObjectName: 'ICON',\r\n },\r\n this.$(\r\n go.Panel,\r\n 'Auto',\r\n this.gojsDiagramUtils.getNodeTransparentBackground(),\r\n this.$(\r\n go.Panel,\r\n 'Horizontal',\r\n this.$(\r\n go.Panel,\r\n 'Spot',\r\n this.$(go.Picture, {\r\n name: 'ICON',\r\n desiredSize: new go.Size(40, 40),\r\n margin: 5,\r\n source: unitOperationsConfig.fuelGasSink.diagramIcon,\r\n }),\r\n this.gojsDiagramUtils.$(go.Shape, 'Circle', { width: 40, height: 40, fill: 'Transparent', stroke: null }),\r\n this.gojsDiagramUtils.createInletPort({\r\n alignment: new go.Spot(0, 0.5),\r\n portId: 'in',\r\n toMaxLinks: 1,\r\n name: 'IN',\r\n width: 5,\r\n height: 5,\r\n toolTip: 'In',\r\n }),\r\n this.gojsDiagramUtils.getTopLeftReadinessIndicator()\r\n ),\r\n this.gojsDiagramUtils.getNameTextBlockTemplate({ textAlign: 'left', marginTop: 6 })\r\n )\r\n ),\r\n new go.Binding('location', 'location', this.gojsDiagramUtils.toLocation).makeTwoWay(),\r\n this.gojsDiagramUtils.getDeletableBinding(),\r\n this.gojsDiagramUtils.getClickEventHandlers(),\r\n { toolTip: this.gojsDiagramUtils.createNodeTooltip() }\r\n );\r\n }\r\n\r\n getFuelGasMixerTemplate() {\r\n return this.$(\r\n go.Node,\r\n 'Spot',\r\n {\r\n selectionAdornmentTemplate: this.gojsDiagramUtils.createNodeSelectionTemplate(),\r\n locationObjectName: 'ICON',\r\n // dragComputation: AvoidOverlapHelper.avoidNodeOverlap,\r\n linkConnected: (node, link, port) => {\r\n if (port.portId === 'in' && node.findLinksInto().count > 2) {\r\n const icon = node.findObject('ICON');\r\n const inlet = node.findObject('IN');\r\n const outlet = node.findObject('OUT');\r\n\r\n const proportion = (icon.height + 5) / icon.height;\r\n icon.width *= proportion;\r\n icon.height *= proportion;\r\n\r\n inlet.width *= proportion;\r\n inlet.height *= proportion;\r\n\r\n outlet.width *= proportion;\r\n outlet.height *= proportion;\r\n }\r\n },\r\n\r\n linkDisconnected: (node, link, port) => {\r\n if (port.portId === 'in' && node.findLinksInto().count >= 2) {\r\n const icon = node.findObject('ICON');\r\n const inlet = node.findObject('IN');\r\n const outlet = node.findObject('OUT');\r\n\r\n const proportion = (icon.height - 5) / icon.height;\r\n icon.width *= proportion;\r\n icon.height *= proportion;\r\n\r\n inlet.width *= proportion;\r\n inlet.height *= proportion;\r\n\r\n outlet.width *= proportion;\r\n outlet.height *= proportion;\r\n }\r\n },\r\n },\r\n this.$(\r\n go.Panel,\r\n 'Auto',\r\n this.gojsDiagramUtils.getNodeTransparentBackground(),\r\n this.$(\r\n go.Panel,\r\n 'Vertical',\r\n this.gojsDiagramUtils.getNameTextBlockTemplate({ textAlign: 'center' }),\r\n this.$(\r\n go.Panel,\r\n 'Spot',\r\n this.$(go.Picture, {\r\n name: 'ICON',\r\n desiredSize: new go.Size(22, 28),\r\n source: unitOperationsConfig.mixer.diagramIcon,\r\n }),\r\n this.gojsDiagramUtils.createInletPort({\r\n alignment: new go.Spot(0, 0.5),\r\n portId: 'in',\r\n name: 'IN',\r\n width: 4,\r\n height: 39,\r\n toolTip: 'In',\r\n }),\r\n this.gojsDiagramUtils.createOutletPort({\r\n alignment: new go.Spot(0.88, 0.5),\r\n portId: 'out',\r\n name: 'OUT',\r\n fromMaxLinks: 1,\r\n width: 6,\r\n height: 4,\r\n toolTip: 'Out',\r\n }),\r\n this.gojsDiagramUtils.getTopRightReadinessIndicator()\r\n )\r\n )\r\n ),\r\n new go.Binding('location', 'location', this.gojsDiagramUtils.toLocation).makeTwoWay(),\r\n this.gojsDiagramUtils.getDeletableBinding(),\r\n this.gojsDiagramUtils.getClickEventHandlers(),\r\n { toolTip: this.gojsDiagramUtils.createNodeTooltip() }\r\n );\r\n }\r\n\r\n getFuelGasSplitterTemplate() {\r\n return this.$(\r\n go.Node,\r\n 'Spot',\r\n {\r\n selectionAdornmentTemplate: this.gojsDiagramUtils.createNodeSelectionTemplate(),\r\n locationObjectName: 'ICON',\r\n linkConnected: (node, link, port) => {\r\n if (port.portId === 'out' && node.findLinksOutOf().count > 2) {\r\n const icon = node.findObject('ICON');\r\n const inlet = node.findObject('IN');\r\n const outlet = node.findObject('OUT');\r\n\r\n const proportion = (icon.height + 5) / icon.height;\r\n icon.width *= proportion;\r\n icon.height *= proportion;\r\n\r\n inlet.width *= proportion;\r\n inlet.height *= proportion;\r\n\r\n outlet.width *= proportion;\r\n outlet.height *= proportion;\r\n }\r\n },\r\n\r\n linkDisconnected: (node, link, port) => {\r\n if (port.portId === 'out' && node.findLinksOutOf().count >= 2) {\r\n const icon = node.findObject('ICON');\r\n const inlet = node.findObject('IN');\r\n const outlet = node.findObject('OUT');\r\n\r\n const proportion = (icon.height - 5) / icon.height;\r\n icon.width *= proportion;\r\n icon.height *= proportion;\r\n\r\n inlet.width *= proportion;\r\n inlet.height *= proportion;\r\n\r\n outlet.width *= proportion;\r\n outlet.height *= proportion;\r\n }\r\n },\r\n },\r\n this.$(\r\n go.Panel,\r\n 'Auto',\r\n this.gojsDiagramUtils.getNodeTransparentBackground(),\r\n this.$(\r\n go.Panel,\r\n 'Vertical',\r\n this.$(go.Panel, 'Horizontal', this.gojsDiagramUtils.getNameTextBlockTemplate({ textAlign: 'center' })),\r\n this.$(\r\n go.Panel,\r\n 'Spot',\r\n this.$(go.Picture, {\r\n name: 'ICON',\r\n desiredSize: new go.Size(22, 28),\r\n source: unitOperationsConfig.fuelGasSplitter.diagramIcon,\r\n }),\r\n this.gojsDiagramUtils.createInletPort({\r\n alignment: new go.Spot(0.1, 0.5),\r\n portId: 'in',\r\n name: 'IN',\r\n height: 4,\r\n width: 4,\r\n toolTip: 'In',\r\n toMaxLinks: 1,\r\n }),\r\n this.gojsDiagramUtils.createOutletPort({\r\n alignment: new go.Spot(1, 0.5),\r\n portId: 'out',\r\n name: 'OUT',\r\n width: 4,\r\n height: 39,\r\n toolTip: 'Out',\r\n }),\r\n this.gojsDiagramUtils.getTopLeftReadinessIndicator()\r\n )\r\n )\r\n ),\r\n new go.Binding('location', 'location', this.gojsDiagramUtils.toLocation).makeTwoWay(),\r\n this.gojsDiagramUtils.getDeletableBinding(),\r\n this.gojsDiagramUtils.getClickEventHandlers(),\r\n { toolTip: this.gojsDiagramUtils.createNodeTooltip() }\r\n );\r\n }\r\n\r\n getFuelGasSourceTemplate() {\r\n return this.$(\r\n go.Node,\r\n 'Spot',\r\n {\r\n selectionAdornmentTemplate: this.gojsDiagramUtils.createNodeSelectionTemplate(),\r\n locationObjectName: 'ICON',\r\n },\r\n this.$(\r\n go.Panel,\r\n 'Auto',\r\n this.gojsDiagramUtils.getNodeTransparentBackground(),\r\n this.$(\r\n go.Panel,\r\n 'Horizontal',\r\n this.gojsDiagramUtils.getNameTextBlockTemplate({ textAlign: 'right', marginTop: 6 }),\r\n this.$(\r\n go.Panel,\r\n 'Spot',\r\n this.$(go.Picture, {\r\n name: 'ICON',\r\n desiredSize: new go.Size(40, 40),\r\n margin: 5,\r\n source: unitOperationsConfig.fuelGasSource.diagramIcon,\r\n }),\r\n this.gojsDiagramUtils.$(go.Shape, 'Circle', { width: 40, height: 40, fill: 'Transparent', stroke: null }),\r\n this.gojsDiagramUtils.createOutletPort({\r\n alignment: new go.Spot(1, 0.5),\r\n fromMaxLinks: 1,\r\n portId: 'out',\r\n toolTip: 'Out',\r\n }),\r\n this.gojsDiagramUtils.getTopRightReadinessIndicator()\r\n )\r\n )\r\n ),\r\n new go.Binding('location', 'location', this.gojsDiagramUtils.toLocation).makeTwoWay(),\r\n this.gojsDiagramUtils.getDeletableBinding(),\r\n this.gojsDiagramUtils.getClickEventHandlers(),\r\n { toolTip: this.gojsDiagramUtils.createNodeTooltip() }\r\n );\r\n }\r\n\r\n getFuelGasAmineContactorTemplate() {\r\n return this.$(\r\n go.Node,\r\n 'Spot',\r\n {\r\n selectionAdornmentTemplate: this.gojsDiagramUtils.createNodeSelectionTemplate(),\r\n locationObjectName: 'ICON',\r\n },\r\n this.$(\r\n go.Panel,\r\n 'Auto',\r\n this.gojsDiagramUtils.getNodeTransparentBackground(),\r\n this.$(\r\n go.Panel,\r\n 'Vertical',\r\n this.gojsDiagramUtils.getNameTextBlockTemplate({ textAlign: 'center' }),\r\n this.$(\r\n go.Panel,\r\n 'Spot',\r\n this.$(go.Picture, {\r\n name: 'ICON',\r\n desiredSize: new go.Size(40, 40),\r\n margin: 5,\r\n source: unitOperationsConfig.fuelGasAmineContactor.diagramIcon,\r\n }),\r\n this.gojsDiagramUtils.$(go.Shape, 'Circle', { width: 40, height: 40, fill: 'Transparent', stroke: null }),\r\n this.gojsDiagramUtils.createInletPort({\r\n alignment: new go.Spot(0, 0.5),\r\n toMaxLinks: 1,\r\n portId: 'in',\r\n toolTip: 'In',\r\n }),\r\n this.gojsDiagramUtils.createOutletPort({\r\n alignment: new go.Spot(1, 0.5),\r\n fromMaxLinks: 1,\r\n portId: 'out',\r\n toolTip: 'Out',\r\n }),\r\n this.gojsDiagramUtils.getBottomCenterReadinessIndicator()\r\n )\r\n )\r\n ),\r\n new go.Binding('location', 'location', this.gojsDiagramUtils.toLocation).makeTwoWay(),\r\n this.gojsDiagramUtils.getDeletableBinding(),\r\n this.gojsDiagramUtils.getClickEventHandlers(),\r\n { toolTip: this.gojsDiagramUtils.createNodeTooltip() }\r\n );\r\n }\r\n}\r\n","import { AfterViewInit, Component, ElementRef } from '@angular/core';\r\nimport * as go from 'gojs';\r\nimport { Map } from 'gojs';\r\nimport { Case } from '../../_models/case';\r\nimport { FlowsheetDiagramTemplateProvider } from '../../_services/flowsheet-diagram/flowsheet-diagram-template-provider.service';\r\nimport { FlowsheetDiagramService } from '../../_services/flowsheet-diagram/flowsheet-diagram.service';\r\nimport { unitOperationsConfig } from '../../_config/unit-operations.config';\r\nimport { UtilitiesFlowsheetTemplateProvider } from '../../_services/flowsheet-diagram/utilities-flowsheet-template-provider';\r\nimport { StreamCategory } from '../../_config/stream-category.enum';\r\nimport { OtherDiagramObject } from '../../_config/other-diagram.object';\r\nimport { OtherDiagramObjectsTemplateProvider } from '../../_services/flowsheet-diagram/other-diagram-objects-template-provider';\r\nimport { FuelGasFlowsheetTemplateProvider } from '../../_services/flowsheet-diagram/fuel-gas-flowsheet-template-provider';\r\n\r\n@Component({\r\n selector: 'sob-flowsheet-diagram',\r\n templateUrl: './flowsheet-diagram.component.html',\r\n styleUrls: ['./flowsheet-diagram.component.css'],\r\n})\r\nexport class FlowsheetDiagramComponent implements AfterViewInit {\r\n // $: any = go.GraphObject.make;\r\n\r\n // private disabledColor = '#999';\r\n\r\n constructor(\r\n el: ElementRef,\r\n private flowsheetDiagramService: FlowsheetDiagramService,\r\n private templateProvider: FlowsheetDiagramTemplateProvider,\r\n private utilitiesFlowsheetProvider: UtilitiesFlowsheetTemplateProvider,\r\n private otherObjectsTemplateProvider: OtherDiagramObjectsTemplateProvider,\r\n private fuelGasFlowsheetProvider: FuelGasFlowsheetTemplateProvider\r\n ) {\r\n this.flowsheetDiagramService.updateModelRequest.subscribe(() => {\r\n this.flowsheetDiagramService.clearModel();\r\n });\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.initFlowsheetDiagram();\r\n }\r\n\r\n initFlowsheetDiagram(): void {\r\n this.flowsheetDiagramService.gojsDiagram = this.templateProvider.getDiagramTemplate();\r\n this.flowsheetDiagramService.gojsDiagram.nodeTemplateMap = this.getNodeTemplateMap();\r\n this.flowsheetDiagramService.gojsDiagram.linkTemplateMap = this.getLinkTemplateMap();\r\n this.flowsheetDiagramService.gojsDiagram.model = this.templateProvider.getModelTemplate();\r\n this.flowsheetDiagramService.gojsDiagram.contextMenu = this.templateProvider.getContextMenuTemplate();\r\n\r\n this.flowsheetDiagramService.gojsDiagram.allowDrop = true;\r\n (this.flowsheetDiagramService.gojsDiagram.toolManager.rotatingTool as go.RotatingTool).snapAngleMultiple = 90;\r\n (this.flowsheetDiagramService.gojsDiagram.toolManager.rotatingTool as go.RotatingTool).snapAngleEpsilon = 45;\r\n this.flowsheetDiagramService.gojsDiagram.toolManager.dragSelectingTool.delay = 200;\r\n this.flowsheetDiagramService.gojsDiagram.animationManager.isEnabled = true;\r\n\r\n this.flowsheetDiagramService.gojsDiagram.grid.gridCellSize = new go.Size(20, 20);\r\n this.flowsheetDiagramService.gojsDiagram.toolManager.draggingTool.isGridSnapEnabled = true;\r\n this.flowsheetDiagramService.gojsDiagram.toolManager.resizingTool.isGridSnapEnabled = true;\r\n // this.flowsheetDiagramService.gojsDiagram.toolManager.draggingTool.gridSnapCellSpot = go.Spot.Center;\r\n\r\n this.flowsheetDiagramService.overview = this.templateProvider.getOverviewTemplate();\r\n this.flowsheetDiagramService.overview.observed = this.flowsheetDiagramService.gojsDiagram;\r\n\r\n $('#page-wrapper').bind('transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd', () => {\r\n this.flowsheetDiagramService.gojsDiagram.requestUpdate();\r\n });\r\n\r\n $('#flowsheet-diagram-wrapper').on('resize', () => {\r\n this.flowsheetDiagramService.gojsDiagram.requestUpdate();\r\n });\r\n }\r\n\r\n private getLinkTemplateMap() {\r\n const linkTemplateMap = new Map<string, go.Link>();\r\n linkTemplateMap.add('', this.templateProvider.getLinkTemplate());\r\n linkTemplateMap.add(StreamCategory.MATERIAL_STREAM, this.templateProvider.getLinkTemplate());\r\n linkTemplateMap.add(StreamCategory.WATER_MATERIAL_STREAM, this.templateProvider.getWaterLinkTemplate());\r\n linkTemplateMap.add(StreamCategory.FUEL_GAS_MATERIAL_STREAM, this.templateProvider.getFuelGasLinkTemplate());\r\n return linkTemplateMap;\r\n }\r\n\r\n private getNodeTemplateMap() {\r\n const templateMap = new Map<string, go.Node>();\r\n templateMap.add(unitOperationsConfig.diluentSource.key, this.templateProvider.getDiluentSourceTemplate());\r\n templateMap.add(unitOperationsConfig.mine.key, this.templateProvider.getMineTemplate());\r\n templateMap.add(unitOperationsConfig.mixer.key, this.templateProvider.getMixerTemplate());\r\n templateMap.add(unitOperationsConfig.offshore.key, this.templateProvider.getOffshoreTemplate());\r\n templateMap.add(unitOperationsConfig.pipe.key, this.templateProvider.getPipeTemplate());\r\n templateMap.add(unitOperationsConfig.bitumenConversion.key, this.templateProvider.getBitumenConversionTemplate());\r\n templateMap.add(unitOperationsConfig.refinery.key, this.templateProvider.getRefineryTemplate());\r\n templateMap.add(\r\n unitOperationsConfig.multipleInletRefinery.key,\r\n this.templateProvider.getMultipleInletRefineryTemplate()\r\n );\r\n templateMap.add(unitOperationsConfig.suncorRenewableBlock.key, this.templateProvider.getRenewableTemplate());\r\n templateMap.add(unitOperationsConfig.sagd.key, this.templateProvider.getSagdTemplate());\r\n templateMap.add(unitOperationsConfig.splitter.key, this.templateProvider.getSplitterTemplate());\r\n templateMap.add(unitOperationsConfig.upgrader.key, this.templateProvider.getUpgraderTemplate());\r\n templateMap.add(unitOperationsConfig.upgraderInlet.key, this.templateProvider.getUpgraderInletTemplate());\r\n templateMap.add(\r\n unitOperationsConfig.multipleInletUpgrader.key,\r\n this.templateProvider.getMultipleInletUpgraderTemplate()\r\n );\r\n templateMap.add(unitOperationsConfig.flexibleUpgrader.key, this.templateProvider.getFlexibleUpgraderTemplate());\r\n templateMap.add(unitOperationsConfig.level2Upgrader.key, this.templateProvider.getLevel2UpgraderTemplate());\r\n templateMap.add(unitOperationsConfig.thirdPartyRefinery.key, this.templateProvider.getThirdPartyRefineryTemplate());\r\n templateMap.add(unitOperationsConfig.thirdPartySource.key, this.templateProvider.getThirdPartySourceTemplate());\r\n templateMap.add(unitOperationsConfig.dru.key, this.templateProvider.getDRUTemplate());\r\n templateMap.add(unitOperationsConfig.vac.key, this.templateProvider.getVACTemplate());\r\n templateMap.add(unitOperationsConfig.hydrotreater.key, this.templateProvider.getHydrotreaterTemplate());\r\n templateMap.add(unitOperationsConfig.hgoHydrotreater.key, this.templateProvider.getHgoHydrotreaterTemplate());\r\n templateMap.add(unitOperationsConfig.lgoHydrotreater.key, this.templateProvider.getLgoHydrotreaterTemplate());\r\n templateMap.add(unitOperationsConfig.dcu.key, this.templateProvider.getDCUTemplate());\r\n templateMap.add(unitOperationsConfig.hydrogenPlant.key, this.templateProvider.getHydrogenPlantTemplate());\r\n templateMap.add(unitOperationsConfig.sulfurPlant.key, this.templateProvider.getSulfurPlantTemplate());\r\n templateMap.add(unitOperationsConfig.fluidCoker.key, this.templateProvider.getFluidCokerTemplate());\r\n templateMap.add(unitOperationsConfig.genericSink.key, this.templateProvider.getGenericSinkTemplate());\r\n templateMap.add(\r\n unitOperationsConfig.separatedHydrotreater.key,\r\n this.templateProvider.getSeparatedHydrotreaterTemplate()\r\n );\r\n templateMap.add(unitOperationsConfig.productTank.key, this.templateProvider.getProductTankTemplate());\r\n templateMap.add(unitOperationsConfig.commodityTank.key, this.templateProvider.getCommodityTankTemplate());\r\n templateMap.add(unitOperationsConfig.hydrocracker.key, this.templateProvider.getHydrocrackerTemplate());\r\n templateMap.add(unitOperationsConfig.extraction.key, this.templateProvider.getExtractionTemplate());\r\n templateMap.add(unitOperationsConfig.flexibleExtraction.key, this.templateProvider.getFlexibleExtractionTemplate());\r\n templateMap.add(unitOperationsConfig.inletTransferUnit.key, this.templateProvider.getInletTransferUnitTemplate());\r\n templateMap.add(unitOperationsConfig.outletTransferUnit.key, this.templateProvider.getOutletTransferUnitTemplate());\r\n\r\n templateMap.add(unitOperationsConfig.waterBoiler.key, this.utilitiesFlowsheetProvider.getWaterBoilerTemplate());\r\n templateMap.add(\r\n unitOperationsConfig.waterUtilityUnitOperation.key,\r\n this.templateProvider.getWaterUtilityTemplate()\r\n );\r\n\r\n templateMap.add(unitOperationsConfig.waterSource.key, this.utilitiesFlowsheetProvider.getWaterSourceTemplate());\r\n templateMap.add(\r\n unitOperationsConfig.waterSourceImport.key,\r\n this.utilitiesFlowsheetProvider.getWaterSourceImportTemplate()\r\n );\r\n templateMap.add(\r\n unitOperationsConfig.waterSinkImport.key,\r\n this.utilitiesFlowsheetProvider.getWaterSinkImportTemplate()\r\n );\r\n templateMap.add(\r\n unitOperationsConfig.waterHeatExchanger.key,\r\n this.utilitiesFlowsheetProvider.getHeatExchangerTemplate()\r\n );\r\n templateMap.add(unitOperationsConfig.waterTurbine.key, this.utilitiesFlowsheetProvider.getTurbineTemplate());\r\n templateMap.add(unitOperationsConfig.waterHeater.key, this.utilitiesFlowsheetProvider.getHeaterTemplate());\r\n templateMap.add(unitOperationsConfig.waterCooler.key, this.utilitiesFlowsheetProvider.getCoolerTemplate());\r\n templateMap.add(\r\n unitOperationsConfig.waterTwoPhaseSeparator.key,\r\n this.utilitiesFlowsheetProvider.getTwoPhaseSeparatorTemplate()\r\n );\r\n templateMap.add(unitOperationsConfig.waterPump.key, this.utilitiesFlowsheetProvider.getPumpTemplate());\r\n templateMap.add(unitOperationsConfig.waterValve.key, this.utilitiesFlowsheetProvider.getValveTemplate());\r\n templateMap.add(unitOperationsConfig.waterSink.key, this.utilitiesFlowsheetProvider.getSinkTemplate());\r\n templateMap.add(unitOperationsConfig.waterMixer.key, this.utilitiesFlowsheetProvider.getWaterMixerTemplate());\r\n templateMap.add(unitOperationsConfig.waterSplitter.key, this.utilitiesFlowsheetProvider.getWaterSplitterTemplate());\r\n templateMap.add(unitOperationsConfig.waterHeader.key, this.utilitiesFlowsheetProvider.getWaterHeaderTemplate());\r\n templateMap.add(unitOperationsConfig.waterPipe.key, this.utilitiesFlowsheetProvider.getWaterPipeTemplate());\r\n templateMap.add(\r\n unitOperationsConfig.waterCogeneration.key,\r\n this.utilitiesFlowsheetProvider.getWaterCogenerationTemplate()\r\n );\r\n\r\n templateMap.add(unitOperationsConfig.fuelGasMixer.key, this.fuelGasFlowsheetProvider.getFuelGasMixerTemplate());\r\n templateMap.add(\r\n unitOperationsConfig.fuelGasUtilityUnitOperation.key,\r\n this.templateProvider.getFuelGasUtilityTemplate()\r\n );\r\n templateMap.add(unitOperationsConfig.fuelGasFlare.key, this.fuelGasFlowsheetProvider.getFuelGasFlareTemplate());\r\n templateMap.add(\r\n unitOperationsConfig.fuelGasSinkImport.key,\r\n this.fuelGasFlowsheetProvider.getFuelGasSinkImportTemplate()\r\n );\r\n templateMap.add(\r\n unitOperationsConfig.fuelGasSourceImport.key,\r\n this.fuelGasFlowsheetProvider.getFuelGasSourceImportTemplate()\r\n );\r\n templateMap.add(unitOperationsConfig.fuelGasSink.key, this.fuelGasFlowsheetProvider.getFuelGasSinkTemplate());\r\n templateMap.add(unitOperationsConfig.fuelGasSource.key, this.fuelGasFlowsheetProvider.getFuelGasSourceTemplate());\r\n templateMap.add(\r\n unitOperationsConfig.fuelGasSplitter.key,\r\n this.fuelGasFlowsheetProvider.getFuelGasSplitterTemplate()\r\n );\r\n templateMap.add(\r\n unitOperationsConfig.fuelGasAmineContactor.key,\r\n this.fuelGasFlowsheetProvider.getFuelGasAmineContactorTemplate()\r\n );\r\n\r\n templateMap.add(OtherDiagramObject.DIAGRAM_COMMENT, this.otherObjectsTemplateProvider.getDiagramCommentsTemplate());\r\n return templateMap;\r\n }\r\n}\r\n","<div id=\"flowsheet-diagram-wrapper\">\r\n <div id=\"flowsheet-diagram\"></div>\r\n</div>\r\n","import { Injectable } from '@angular/core';\r\nimport * as go from 'gojs';\r\n\r\n@Injectable()\r\nexport class GoJsPaletteUtils {\r\n $ = go.GraphObject.make;\r\n\r\n // TODO this should be reused\r\n initPaletteElement(paletteDivId: string): go.Palette {\r\n return this.$(go.Palette, paletteDivId, {\r\n autoScale: go.Diagram.None,\r\n contentAlignment: go.Spot.TopCenter,\r\n 'toolManager.hoverDelay': 60,\r\n layout: this.$(go.GridLayout, { sorting: go.GridLayout.Forward }),\r\n });\r\n }\r\n\r\n // TODO this should be reused\r\n getPaletteNodeTemplate(): any {\r\n return this.$(\r\n go.Node,\r\n 'Auto',\r\n {\r\n width: 80,\r\n height: 60,\r\n // desiredSize: new go.Size(70, NaN),\r\n mouseEnter: (e, obj: go.Node) => {\r\n const icon = obj.findObject('ICON') as go.Picture;\r\n icon.source = icon.source.replace('.svg', '_w.svg');\r\n (obj.findObject('BACKGROUND') as any).fill = '#96c1d6';\r\n },\r\n mouseLeave: (e, obj: go.Node) => {\r\n const icon = obj.findObject('ICON') as go.Picture;\r\n !obj.part.selectable\r\n ? ((obj.findObject('BACKGROUND') as any).fill = '#96c1d6')\r\n : ((obj.findObject('BACKGROUND') as any).fill = 'Transparent');\r\n icon.source = icon.source.replace('_w.svg', '.svg');\r\n },\r\n },\r\n this.$(\r\n go.Shape,\r\n {\r\n margin: 0,\r\n figure: 'Rectangle',\r\n fill: 'Transparent',\r\n stroke: '#5f5f5f',\r\n strokeWidth: 0,\r\n name: 'BACKGROUND',\r\n },\r\n new go.Binding('fill', 'backgroundColor')\r\n ),\r\n this.$(\r\n go.Panel,\r\n 'Vertical',\r\n this.$(\r\n go.Picture,\r\n { desiredSize: new go.Size(25, 25), margin: 5, name: 'ICON' },\r\n // Picture.source is data bound to the \"source\" attribute of the model data\r\n new go.Binding('source', 'icon')\r\n ),\r\n this.$(\r\n go.TextBlock,\r\n {\r\n margin: 0,\r\n font: '11px sans-serif',\r\n textAlign: 'center',\r\n desiredSize: new go.Size(80, NaN),\r\n name: 'TEXT',\r\n },\r\n new go.Binding('text', 'name'),\r\n new go.Binding('stroke', 'textColor')\r\n ),\r\n {}\r\n ),\r\n new go.Binding('selectable', 'selectable')\r\n );\r\n }\r\n}\r\n","import * as go from 'gojs';\r\nimport { GoJsPaletteUtils } from './gojs-palette-utils';\r\n\r\nexport abstract class AbstractSubFlowsheetPaletteHandler {\r\n $ = go.GraphObject.make;\r\n\r\n constructor(protected paletteUtils: GoJsPaletteUtils) {}\r\n\r\n protected iconHeight: 55;\r\n protected iconWidth: 92;\r\n paletteContainerDivId: string;\r\n paletteDivId: string;\r\n\r\n subFlowsheetPalette: go.Palette;\r\n\r\n abstract getPaletteModel(): any[];\r\n\r\n init(paletteContainerDivId: string, paletteDivId: string): void {\r\n this.paletteContainerDivId = paletteContainerDivId;\r\n this.paletteDivId = paletteDivId;\r\n\r\n this.subFlowsheetPalette = this.paletteUtils.initPaletteElement(this.paletteDivId);\r\n this.subFlowsheetPalette.nodeTemplate = this.paletteUtils.getPaletteNodeTemplate();\r\n this.subFlowsheetPalette.model.nodeDataArray = this.getPaletteModel();\r\n }\r\n\r\n showPalette(): void {\r\n $(`#${this.paletteContainerDivId}`).show();\r\n $('#normalPalettes').hide();\r\n this.updatePalette();\r\n }\r\n\r\n updatePalette(): void {\r\n this.subFlowsheetPalette.model.nodeDataArray = this.getPaletteModel();\r\n this.subFlowsheetPalette.requestUpdate();\r\n }\r\n\r\n hidePalette(): void {\r\n $(`#${this.paletteContainerDivId}`).hide();\r\n $('#normalPalettes').show();\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Model, Node } from 'gojs';\r\nimport * as go from 'gojs';\r\nimport { unitOperationsConfig } from '../../_config/unit-operations.config';\r\nimport { AbstractSubFlowsheetPaletteHandler } from './abstract-sub-flowsheet-palette-handler';\r\nimport { GoJsPaletteUtils } from './gojs-palette-utils';\r\n\r\nexport enum UpgraderPaletteSections {\r\n 'GENERAL' = 'generalUpgraderPalette',\r\n 'PROCESSING' = 'processingUpgraderPalette',\r\n 'REACTORS' = 'reactorsUpgraderPalette',\r\n 'UTILITIES_AND_ENVIRONMENTAL' = 'utilitiesAndEnvironmentalUpgraderPalette',\r\n}\r\n\r\n@Injectable()\r\nexport class UpgraderPaletteHandler extends AbstractSubFlowsheetPaletteHandler {\r\n general: go.Palette;\r\n processing: go.Palette;\r\n reactors: go.Palette;\r\n utilitiesAndEnvironmental: go.Palette;\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-useless-constructor\r\n constructor(paletteUtils: GoJsPaletteUtils) {\r\n super(paletteUtils);\r\n }\r\n\r\n override init(paletteContainerDivId: string, paletteDivId: string) {\r\n this.paletteContainerDivId = paletteContainerDivId;\r\n this.paletteDivId = paletteDivId;\r\n\r\n switch (paletteDivId) {\r\n case UpgraderPaletteSections.GENERAL:\r\n this.general = this.paletteUtils.initPaletteElement(paletteDivId);\r\n this.general.nodeTemplate = this.paletteUtils.getPaletteNodeTemplate();\r\n this.general.model.nodeDataArray = this.getGeneralModel();\r\n break;\r\n\r\n case UpgraderPaletteSections.PROCESSING:\r\n this.processing = this.paletteUtils.initPaletteElement(paletteDivId);\r\n this.processing.nodeTemplate = this.paletteUtils.getPaletteNodeTemplate();\r\n this.processing.model.nodeDataArray = this.getProcessingModel();\r\n break;\r\n\r\n case UpgraderPaletteSections.REACTORS:\r\n this.reactors = this.paletteUtils.initPaletteElement(paletteDivId);\r\n this.reactors.nodeTemplate = this.paletteUtils.getPaletteNodeTemplate();\r\n this.reactors.model.nodeDataArray = this.getReactorsModel();\r\n break;\r\n\r\n case UpgraderPaletteSections.UTILITIES_AND_ENVIRONMENTAL:\r\n this.utilitiesAndEnvironmental = this.paletteUtils.initPaletteElement(paletteDivId);\r\n this.utilitiesAndEnvironmental.nodeTemplate = this.paletteUtils.getPaletteNodeTemplate();\r\n this.utilitiesAndEnvironmental.model.nodeDataArray = this.getUtilitiesAndEnvironmentalModel();\r\n break;\r\n }\r\n }\r\n\r\n override updatePalette() {\r\n this.general.model.nodeDataArray = this.getGeneralModel();\r\n this.general.requestUpdate();\r\n\r\n this.processing.model.nodeDataArray = this.getProcessingModel();\r\n this.processing.requestUpdate();\r\n\r\n this.reactors.model.nodeDataArray = this.getReactorsModel();\r\n this.reactors.requestUpdate();\r\n\r\n this.utilitiesAndEnvironmental.model.nodeDataArray = this.getUtilitiesAndEnvironmentalModel();\r\n this.utilitiesAndEnvironmental.requestUpdate();\r\n }\r\n\r\n updatePaletteNodeByAction(category: string, action: string) {\r\n const node = this.utilitiesAndEnvironmental\r\n .findNodesByExample({\r\n category,\r\n })\r\n .first();\r\n\r\n const { model } = this.utilitiesAndEnvironmental;\r\n action === 'enable' ? this.enableNode(model, node) : this.disableNode(model, node);\r\n }\r\n\r\n enableNode(model: Model, node: Node) {\r\n model.startTransaction('updateNode');\r\n model.setDataProperty(node.data, 'textColor', '#000000');\r\n model.setDataProperty(node.data, 'backgroundColor', 'Transparent');\r\n model.setDataProperty(node.data, 'selectable', true);\r\n model.commitTransaction('updateNode');\r\n }\r\n\r\n disableNode(model: Model, node: Node) {\r\n model.startTransaction('updateNode');\r\n model.setDataProperty(node.data, 'textColor', '#698795');\r\n model.setDataProperty(node.data, 'backgroundColor', '#96c1d6');\r\n model.setDataProperty(node.data, 'selectable', false);\r\n model.commitTransaction('updateNode');\r\n }\r\n\r\n getGeneralModel(): any[] {\r\n return [\r\n {\r\n name: unitOperationsConfig.upgraderInlet.displayName,\r\n icon: unitOperationsConfig.upgraderInlet.paletteIcon,\r\n diagramIcon: unitOperationsConfig.upgraderInlet.diagramIcon,\r\n category: unitOperationsConfig.upgraderInlet.key,\r\n height: this.iconHeight,\r\n width: this.iconWidth,\r\n },\r\n {\r\n name: unitOperationsConfig.commodityTank.displayName,\r\n icon: unitOperationsConfig.commodityTank.paletteIcon,\r\n diagramIcon: unitOperationsConfig.commodityTank.diagramIcon,\r\n category: unitOperationsConfig.commodityTank.key,\r\n height: this.iconHeight,\r\n width: this.iconWidth,\r\n },\r\n {\r\n name: unitOperationsConfig.productTank.displayName,\r\n icon: unitOperationsConfig.productTank.paletteIcon,\r\n diagramIcon: unitOperationsConfig.productTank.diagramIcon,\r\n category: unitOperationsConfig.productTank.key,\r\n height: this.iconHeight,\r\n width: this.iconWidth,\r\n },\r\n {\r\n name: unitOperationsConfig.pipe.displayName,\r\n icon: unitOperationsConfig.pipe.paletteIcon,\r\n diagramIcon: unitOperationsConfig.pipe.diagramIcon,\r\n category: unitOperationsConfig.pipe.key,\r\n height: this.iconHeight,\r\n width: this.iconWidth,\r\n },\r\n {\r\n name: unitOperationsConfig.mixer.displayName,\r\n icon: unitOperationsConfig.mixer.paletteIcon,\r\n diagramIcon: unitOperationsConfig.mixer.diagramIcon,\r\n category: unitOperationsConfig.mixer.key,\r\n height: this.iconHeight,\r\n width: this.iconWidth,\r\n },\r\n {\r\n name: unitOperationsConfig.splitter.displayName,\r\n icon: unitOperationsConfig.splitter.paletteIcon,\r\n diagramIcon: unitOperationsConfig.splitter.diagramIcon,\r\n category: unitOperationsConfig.splitter.key,\r\n height: this.iconHeight,\r\n width: this.iconWidth,\r\n },\r\n {\r\n name: unitOperationsConfig.genericSink.displayName,\r\n icon: unitOperationsConfig.genericSink.paletteIcon,\r\n diagramIcon: unitOperationsConfig.genericSink.diagramIcon,\r\n category: unitOperationsConfig.genericSink.key,\r\n height: this.iconHeight,\r\n width: this.iconWidth,\r\n },\r\n ];\r\n }\r\n\r\n getProcessingModel(): any[] {\r\n return [\r\n {\r\n name: unitOperationsConfig.dru.displayName,\r\n icon: unitOperationsConfig.dru.paletteIcon,\r\n diagramIcon: unitOperationsConfig.dru.diagramIcon,\r\n category: unitOperationsConfig.dru.key,\r\n height: this.iconHeight,\r\n width: this.iconWidth,\r\n },\r\n {\r\n name: unitOperationsConfig.vac.displayName,\r\n icon: unitOperationsConfig.vac.paletteIcon,\r\n diagramIcon: unitOperationsConfig.vac.diagramIcon,\r\n category: unitOperationsConfig.vac.key,\r\n height: this.iconHeight,\r\n width: this.iconWidth,\r\n },\r\n {\r\n name: unitOperationsConfig.bitumenConversion.displayName,\r\n icon: unitOperationsConfig.bitumenConversion.paletteIcon,\r\n diagramIcon: unitOperationsConfig.bitumenConversion.diagramIcon,\r\n category: unitOperationsConfig.bitumenConversion.key,\r\n height: this.iconHeight,\r\n width: this.iconWidth,\r\n },\r\n ];\r\n }\r\n\r\n getReactorsModel(): any[] {\r\n return [\r\n {\r\n name: unitOperationsConfig.hydrotreater.displayName,\r\n icon: unitOperationsConfig.hydrotreater.paletteIcon,\r\n diagramIcon: unitOperationsConfig.hydrotreater.diagramIcon,\r\n category: unitOperationsConfig.hydrotreater.key,\r\n height: this.iconHeight,\r\n width: this.iconWidth,\r\n },\r\n {\r\n name: unitOperationsConfig.lgoHydrotreater.displayName,\r\n icon: unitOperationsConfig.lgoHydrotreater.paletteIcon,\r\n diagramIcon: unitOperationsConfig.lgoHydrotreater.diagramIcon,\r\n category: unitOperationsConfig.lgoHydrotreater.key,\r\n height: this.iconHeight,\r\n width: this.iconWidth,\r\n },\r\n {\r\n name: unitOperationsConfig.hgoHydrotreater.displayName,\r\n icon: unitOperationsConfig.hgoHydrotreater.paletteIcon,\r\n diagramIcon: unitOperationsConfig.hgoHydrotreater.diagramIcon,\r\n category: unitOperationsConfig.hgoHydrotreater.key,\r\n height: this.iconHeight,\r\n width: this.iconWidth,\r\n },\r\n {\r\n name: unitOperationsConfig.dcu.displayName,\r\n icon: unitOperationsConfig.dcu.paletteIcon,\r\n diagramIcon: unitOperationsConfig.dcu.diagramIcon,\r\n category: unitOperationsConfig.dcu.key,\r\n height: this.iconHeight,\r\n width: this.iconWidth,\r\n },\r\n {\r\n name: unitOperationsConfig.fluidCoker.displayName,\r\n icon: unitOperationsConfig.fluidCoker.paletteIcon,\r\n diagramIcon: unitOperationsConfig.fluidCoker.diagramIcon,\r\n category: unitOperationsConfig.fluidCoker.key,\r\n height: this.iconHeight,\r\n width: this.iconWidth,\r\n },\r\n {\r\n name: unitOperationsConfig.hydrocracker.displayName,\r\n icon: unitOperationsConfig.hydrocracker.paletteIcon,\r\n diagramIcon: unitOperationsConfig.hydrocracker.diagramIcon,\r\n category: unitOperationsConfig.hydrocracker.key,\r\n height: this.iconHeight,\r\n width: this.iconWidth,\r\n },\r\n ];\r\n }\r\n\r\n getUtilitiesAndEnvironmentalModel(): any[] {\r\n return [\r\n {\r\n name: unitOperationsConfig.waterUtilityUnitOperation.displayName,\r\n icon: unitOperationsConfig.waterUtilityUnitOperation.paletteIcon,\r\n diagramIcon: unitOperationsConfig.waterUtilityUnitOperation.diagramIcon,\r\n category: unitOperationsConfig.waterUtilityUnitOperation.key,\r\n height: this.iconHeight,\r\n width: this.iconWidth,\r\n },\r\n {\r\n name: unitOperationsConfig.sulfurPlant.displayName,\r\n icon: unitOperationsConfig.sulfurPlant.paletteIcon,\r\n diagramIcon: unitOperationsConfig.sulfurPlant.diagramIcon,\r\n category: unitOperationsConfig.sulfurPlant.key,\r\n height: this.iconHeight,\r\n width: this.iconWidth,\r\n },\r\n {\r\n name: unitOperationsConfig.hydrogenPlant.displayName,\r\n icon: unitOperationsConfig.hydrogenPlant.paletteIcon,\r\n diagramIcon: unitOperationsConfig.hydrogenPlant.diagramIcon,\r\n category: unitOperationsConfig.hydrogenPlant.key,\r\n height: this.iconHeight,\r\n width: this.iconWidth,\r\n },\r\n {\r\n name: unitOperationsConfig.fuelGasUtilityUnitOperation.displayName,\r\n icon: unitOperationsConfig.fuelGasUtilityUnitOperation.paletteIcon,\r\n diagramIcon: unitOperationsConfig.fuelGasUtilityUnitOperation.diagramIcon,\r\n category: unitOperationsConfig.fuelGasUtilityUnitOperation.key,\r\n height: this.iconHeight,\r\n width: this.iconWidth,\r\n },\r\n ];\r\n }\r\n\r\n getProcessModel(): any[] {\r\n return [\r\n {\r\n name: unitOperationsConfig.upgraderInlet.displayName,\r\n icon: unitOperationsConfig.upgraderInlet.paletteIcon,\r\n diagramIcon: unitOperationsConfig.upgraderInlet.diagramIcon,\r\n category: unitOperationsConfig.upgraderInlet.key,\r\n height: this.iconHeight,\r\n width: this.iconWidth,\r\n },\r\n {\r\n name: unitOperationsConfig.dru.displayName,\r\n icon: unitOperationsConfig.dru.paletteIcon,\r\n diagramIcon: unitOperationsConfig.dru.diagramIcon,\r\n category: unitOperationsConfig.dru.key,\r\n height: this.iconHeight,\r\n width: this.iconWidth,\r\n },\r\n {\r\n name: unitOperationsConfig.vac.displayName,\r\n icon: unitOperationsConfig.vac.paletteIcon,\r\n diagramIcon: unitOperationsConfig.vac.diagramIcon,\r\n category: unitOperationsConfig.vac.key,\r\n height: this.iconHeight,\r\n width: this.iconWidth,\r\n },\r\n {\r\n name: unitOperationsConfig.mixer.displayName,\r\n icon: unitOperationsConfig.mixer.paletteIcon,\r\n diagramIcon: unitOperationsConfig.mixer.diagramIcon,\r\n category: unitOperationsConfig.mixer.key,\r\n height: this.iconHeight,\r\n width: this.iconWidth,\r\n },\r\n {\r\n name: unitOperationsConfig.splitter.displayName,\r\n icon: unitOperationsConfig.splitter.paletteIcon,\r\n diagramIcon: unitOperationsConfig.splitter.diagramIcon,\r\n category: unitOperationsConfig.splitter.key,\r\n height: this.iconHeight,\r\n width: this.iconWidth,\r\n },\r\n {\r\n name: unitOperationsConfig.hydrotreater.displayName,\r\n icon: unitOperationsConfig.hydrotreater.paletteIcon,\r\n diagramIcon: unitOperationsConfig.hydrotreater.diagramIcon,\r\n category: unitOperationsConfig.hydrotreater.key,\r\n height: this.iconHeight,\r\n width: this.iconWidth,\r\n },\r\n {\r\n name: unitOperationsConfig.hgoHydrotreater.displayName,\r\n icon: unitOperationsConfig.hgoHydrotreater.paletteIcon,\r\n diagramIcon: unitOperationsConfig.hgoHydrotreater.diagramIcon,\r\n category: unitOperationsConfig.hgoHydrotreater.key,\r\n height: this.iconHeight,\r\n width: this.iconWidth,\r\n },\r\n {\r\n name: unitOperationsConfig.lgoHydrotreater.displayName,\r\n icon: unitOperationsConfig.lgoHydrotreater.paletteIcon,\r\n diagramIcon: unitOperationsConfig.lgoHydrotreater.diagramIcon,\r\n category: unitOperationsConfig.lgoHydrotreater.key,\r\n height: this.iconHeight,\r\n width: this.iconWidth,\r\n },\r\n\r\n {\r\n name: unitOperationsConfig.dcu.displayName,\r\n icon: unitOperationsConfig.dcu.paletteIcon,\r\n diagramIcon: unitOperationsConfig.dcu.diagramIcon,\r\n category: unitOperationsConfig.dcu.key,\r\n height: this.iconHeight,\r\n width: this.iconWidth,\r\n },\r\n {\r\n name: unitOperationsConfig.fluidCoker.displayName,\r\n icon: unitOperationsConfig.fluidCoker.paletteIcon,\r\n diagramIcon: unitOperationsConfig.fluidCoker.diagramIcon,\r\n category: unitOperationsConfig.fluidCoker.key,\r\n height: this.iconHeight,\r\n width: this.iconWidth,\r\n },\r\n {\r\n name: unitOperationsConfig.bitumenConversion.displayName,\r\n icon: unitOperationsConfig.bitumenConversion.paletteIcon,\r\n diagramIcon: unitOperationsConfig.bitumenConversion.diagramIcon,\r\n category: unitOperationsConfig.bitumenConversion.key,\r\n height: this.iconHeight,\r\n width: this.iconWidth,\r\n },\r\n {\r\n name: unitOperationsConfig.genericSink.displayName,\r\n icon: unitOperationsConfig.genericSink.paletteIcon,\r\n diagramIcon: unitOperationsConfig.genericSink.diagramIcon,\r\n category: unitOperationsConfig.genericSink.key,\r\n height: this.iconHeight,\r\n width: this.iconWidth,\r\n },\r\n {\r\n name: unitOperationsConfig.commodityTank.displayName,\r\n icon: unitOperationsConfig.commodityTank.paletteIcon,\r\n diagramIcon: unitOperationsConfig.commodityTank.diagramIcon,\r\n category: unitOperationsConfig.commodityTank.key,\r\n height: this.iconHeight,\r\n width: this.iconWidth,\r\n },\r\n {\r\n name: unitOperationsConfig.productTank.displayName,\r\n icon: unitOperationsConfig.productTank.paletteIcon,\r\n diagramIcon: unitOperationsConfig.productTank.diagramIcon,\r\n category: unitOperationsConfig.productTank.key,\r\n height: this.iconHeight,\r\n width: this.iconWidth,\r\n },\r\n {\r\n name: unitOperationsConfig.hydrocracker.displayName,\r\n icon: unitOperationsConfig.hydrocracker.paletteIcon,\r\n diagramIcon: unitOperationsConfig.hydrocracker.diagramIcon,\r\n category: unitOperationsConfig.hydrocracker.key,\r\n height: this.iconHeight,\r\n width: this.iconWidth,\r\n },\r\n {\r\n name: unitOperationsConfig.pipe.displayName,\r\n icon: unitOperationsConfig.pipe.paletteIcon,\r\n diagramIcon: unitOperationsConfig.pipe.diagramIcon,\r\n category: unitOperationsConfig.pipe.key,\r\n height: this.iconHeight,\r\n width: this.iconWidth,\r\n },\r\n ];\r\n }\r\n\r\n getPaletteModel(): any[] {\r\n return [];\r\n }\r\n}\r\n","import * as go from 'gojs';\r\nimport { Injectable } from '@angular/core';\r\nimport { unitOperationsConfig } from '../../_config/unit-operations.config';\r\n\r\n@Injectable()\r\nexport class FirstLevelPaletteModelProvider {\r\n $ = go.GraphObject.make;\r\n iconHeight: 55;\r\n iconWidth: 92;\r\n\r\n getSourcesModel() {\r\n return [\r\n {\r\n name: unitOperationsConfig.sagd.displayName,\r\n icon: unitOperationsConfig.sagd.paletteIcon,\r\n diagramIcon: unitOperationsConfig.sagd.diagramIcon,\r\n category: unitOperationsConfig.sagd.key,\r\n height: this.iconHeight,\r\n width: this.iconWidth,\r\n },\r\n {\r\n name: unitOperationsConfig.mine.displayName,\r\n icon: unitOperationsConfig.mine.paletteIcon,\r\n diagramIcon: unitOperationsConfig.mine.diagramIcon,\r\n category: unitOperationsConfig.mine.key,\r\n height: this.iconHeight,\r\n width: this.iconWidth,\r\n },\r\n {\r\n name: unitOperationsConfig.diluentSource.displayName,\r\n icon: unitOperationsConfig.diluentSource.paletteIcon,\r\n diagramIcon: unitOperationsConfig.diluentSource.diagramIcon,\r\n category: unitOperationsConfig.diluentSource.key,\r\n height: this.iconHeight,\r\n width: this.iconWidth,\r\n },\r\n {\r\n name: unitOperationsConfig.thirdPartySource.displayName,\r\n icon: unitOperationsConfig.thirdPartySource.paletteIcon,\r\n diagramIcon: unitOperationsConfig.thirdPartySource.diagramIcon,\r\n category: unitOperationsConfig.thirdPartySource.key,\r\n height: this.iconHeight,\r\n width: this.iconWidth,\r\n },\r\n {\r\n name: unitOperationsConfig.offshore.displayName,\r\n icon: unitOperationsConfig.offshore.paletteIcon,\r\n diagramIcon: unitOperationsConfig.offshore.diagramIcon,\r\n category: unitOperationsConfig.offshore.key,\r\n height: this.iconHeight,\r\n width: this.iconWidth,\r\n },\r\n {\r\n name: unitOperationsConfig.suncorRenewableBlock.displayName,\r\n icon: unitOperationsConfig.suncorRenewableBlock.paletteIcon,\r\n diagramIcon: unitOperationsConfig.suncorRenewableBlock.diagramIcon,\r\n category: unitOperationsConfig.suncorRenewableBlock.key,\r\n height: this.iconHeight,\r\n width: this.iconWidth,\r\n },\r\n ];\r\n }\r\n\r\n getProcessingModel() {\r\n return [\r\n {\r\n name: unitOperationsConfig.upgrader.displayName,\r\n icon: unitOperationsConfig.upgrader.paletteIcon,\r\n diagramIcon: unitOperationsConfig.upgrader.diagramIcon,\r\n category: unitOperationsConfig.upgrader.key,\r\n height: this.iconHeight,\r\n width: this.iconWidth,\r\n },\r\n {\r\n name: unitOperationsConfig.bitumenConversion.displayName,\r\n icon: unitOperationsConfig.bitumenConversion.paletteIcon,\r\n diagramIcon: unitOperationsConfig.bitumenConversion.diagramIcon,\r\n category: unitOperationsConfig.bitumenConversion.key,\r\n height: this.iconHeight,\r\n width: this.iconWidth,\r\n },\r\n {\r\n name: unitOperationsConfig.refinery.displayName,\r\n icon: unitOperationsConfig.refinery.paletteIcon,\r\n diagramIcon: unitOperationsConfig.refinery.diagramIcon,\r\n category: unitOperationsConfig.refinery.key,\r\n height: this.iconHeight,\r\n width: this.iconWidth,\r\n },\r\n {\r\n name: unitOperationsConfig.thirdPartyRefinery.displayName,\r\n icon: unitOperationsConfig.thirdPartyRefinery.paletteIcon,\r\n diagramIcon: unitOperationsConfig.thirdPartyRefinery.diagramIcon,\r\n category: unitOperationsConfig.thirdPartyRefinery.key,\r\n height: this.iconHeight,\r\n width: this.iconWidth,\r\n },\r\n {\r\n name: unitOperationsConfig.extraction.displayName,\r\n icon: unitOperationsConfig.extraction.paletteIcon,\r\n diagramIcon: unitOperationsConfig.extraction.diagramIcon,\r\n category: unitOperationsConfig.extraction.key,\r\n height: this.iconHeight,\r\n width: this.iconWidth,\r\n },\r\n ];\r\n }\r\n\r\n getTransportModel() {\r\n return [\r\n {\r\n name: unitOperationsConfig.pipe.displayName,\r\n icon: unitOperationsConfig.pipe.paletteIcon,\r\n diagramIcon: unitOperationsConfig.pipe.diagramIcon,\r\n category: unitOperationsConfig.pipe.key,\r\n height: this.iconHeight,\r\n width: this.iconWidth,\r\n },\r\n ];\r\n }\r\n\r\n getConnectorsModel() {\r\n return [\r\n {\r\n name: unitOperationsConfig.mixer.displayName,\r\n icon: unitOperationsConfig.mixer.paletteIcon,\r\n diagramIcon: unitOperationsConfig.mixer.diagramIcon,\r\n category: unitOperationsConfig.mixer.key,\r\n height: this.iconHeight,\r\n width: this.iconWidth,\r\n },\r\n {\r\n name: unitOperationsConfig.splitter.displayName,\r\n icon: unitOperationsConfig.splitter.paletteIcon,\r\n diagramIcon: unitOperationsConfig.splitter.diagramIcon,\r\n category: unitOperationsConfig.splitter.key,\r\n height: this.iconHeight,\r\n width: this.iconWidth,\r\n },\r\n ];\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { AbstractSubFlowsheetPaletteHandler } from './abstract-sub-flowsheet-palette-handler';\r\nimport { unitOperationsConfig } from '../../_config/unit-operations.config';\r\nimport { GoJsPaletteUtils } from './gojs-palette-utils';\r\n\r\n@Injectable()\r\nexport class ExtractionPaletteHandler extends AbstractSubFlowsheetPaletteHandler {\r\n // eslint-disable-next-line @typescript-eslint/no-useless-constructor\r\n constructor(gojsPaletteUtils: GoJsPaletteUtils) {\r\n super(gojsPaletteUtils);\r\n }\r\n\r\n getPaletteModel(): any[] {\r\n return [\r\n {\r\n name: unitOperationsConfig.inletTransferUnit.displayName,\r\n icon: unitOperationsConfig.inletTransferUnit.paletteIcon,\r\n diagramIcon: unitOperationsConfig.inletTransferUnit.diagramIcon,\r\n category: unitOperationsConfig.inletTransferUnit.key,\r\n height: this.iconHeight,\r\n width: this.iconWidth,\r\n },\r\n {\r\n name: unitOperationsConfig.mixer.displayName,\r\n icon: unitOperationsConfig.mixer.paletteIcon,\r\n diagramIcon: unitOperationsConfig.mixer.diagramIcon,\r\n category: unitOperationsConfig.mixer.key,\r\n height: this.iconHeight,\r\n width: this.iconWidth,\r\n },\r\n {\r\n name: unitOperationsConfig.splitter.displayName,\r\n icon: unitOperationsConfig.splitter.paletteIcon,\r\n diagramIcon: unitOperationsConfig.splitter.diagramIcon,\r\n category: unitOperationsConfig.splitter.key,\r\n height: this.iconHeight,\r\n width: this.iconWidth,\r\n },\r\n {\r\n name: unitOperationsConfig.genericSink.displayName,\r\n icon: unitOperationsConfig.genericSink.paletteIcon,\r\n diagramIcon: unitOperationsConfig.genericSink.diagramIcon,\r\n category: unitOperationsConfig.genericSink.key,\r\n height: this.iconHeight,\r\n width: this.iconWidth,\r\n },\r\n {\r\n name: unitOperationsConfig.bitumenConversion.displayName,\r\n icon: unitOperationsConfig.bitumenConversion.paletteIcon,\r\n diagramIcon: unitOperationsConfig.bitumenConversion.diagramIcon,\r\n category: unitOperationsConfig.bitumenConversion.key,\r\n height: this.iconHeight,\r\n width: this.iconWidth,\r\n },\r\n {\r\n name: unitOperationsConfig.outletTransferUnit.displayName,\r\n icon: unitOperationsConfig.outletTransferUnit.paletteIcon,\r\n diagramIcon: unitOperationsConfig.outletTransferUnit.diagramIcon,\r\n category: unitOperationsConfig.outletTransferUnit.key,\r\n height: this.iconHeight,\r\n width: this.iconWidth,\r\n },\r\n ];\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { GoJsPaletteUtils } from './gojs-palette-utils';\r\nimport { unitOperationsConfig } from '../../_config/unit-operations.config';\r\nimport { AbstractSubFlowsheetPaletteHandler } from './abstract-sub-flowsheet-palette-handler';\r\n\r\n@Injectable()\r\nexport class UtilitiesPaletteHandler extends AbstractSubFlowsheetPaletteHandler {\r\n // eslint-disable-next-line @typescript-eslint/no-useless-constructor\r\n constructor(paletteUtils: GoJsPaletteUtils) {\r\n super(paletteUtils);\r\n }\r\n\r\n getPaletteModel(): any[] {\r\n return [\r\n {\r\n name: unitOperationsConfig.waterBoiler.displayName,\r\n icon: unitOperationsConfig.waterBoiler.paletteIcon,\r\n diagramIcon: unitOperationsConfig.waterBoiler.diagramIcon,\r\n category: unitOperationsConfig.waterBoiler.key,\r\n height: this.iconHeight,\r\n width: this.iconWidth,\r\n },\r\n {\r\n name: unitOperationsConfig.waterSource.displayName,\r\n icon: unitOperationsConfig.waterSource.paletteIcon,\r\n diagramIcon: unitOperationsConfig.waterSource.diagramIcon,\r\n category: unitOperationsConfig.waterSource.key,\r\n height: this.iconHeight,\r\n width: this.iconWidth,\r\n },\r\n {\r\n name: unitOperationsConfig.waterSourceImport.displayName,\r\n icon: unitOperationsConfig.waterSourceImport.paletteIcon,\r\n diagramIcon: unitOperationsConfig.waterSourceImport.diagramIcon,\r\n category: unitOperationsConfig.waterSourceImport.key,\r\n height: this.iconHeight,\r\n width: this.iconWidth,\r\n },\r\n {\r\n name: unitOperationsConfig.waterSinkImport.displayName,\r\n icon: unitOperationsConfig.waterSinkImport.paletteIcon,\r\n diagramIcon: unitOperationsConfig.waterSinkImport.diagramIcon,\r\n category: unitOperationsConfig.waterSinkImport.key,\r\n height: this.iconHeight,\r\n width: this.iconWidth,\r\n },\r\n {\r\n name: unitOperationsConfig.waterHeatExchanger.displayName,\r\n icon: unitOperationsConfig.waterHeatExchanger.paletteIcon,\r\n diagramIcon: unitOperationsConfig.waterHeatExchanger.diagramIcon,\r\n category: unitOperationsConfig.waterHeatExchanger.key,\r\n height: this.iconHeight,\r\n width: this.iconWidth,\r\n },\r\n {\r\n name: unitOperationsConfig.waterTurbine.displayName,\r\n icon: unitOperationsConfig.waterTurbine.paletteIcon,\r\n diagramIcon: unitOperationsConfig.waterTurbine.diagramIcon,\r\n category: unitOperationsConfig.waterTurbine.key,\r\n height: this.iconHeight,\r\n width: this.iconWidth,\r\n },\r\n {\r\n name: unitOperationsConfig.waterHeater.displayName,\r\n icon: unitOperationsConfig.waterHeater.paletteIcon,\r\n diagramIcon: unitOperationsConfig.waterHeater.diagramIcon,\r\n category: unitOperationsConfig.waterHeater.key,\r\n height: this.iconHeight,\r\n width: this.iconWidth,\r\n },\r\n {\r\n name: unitOperationsConfig.waterCooler.displayName,\r\n icon: unitOperationsConfig.waterCooler.paletteIcon,\r\n diagramIcon: unitOperationsConfig.waterCooler.diagramIcon,\r\n category: unitOperationsConfig.waterCooler.key,\r\n height: this.iconHeight,\r\n width: this.iconWidth,\r\n },\r\n {\r\n name: unitOperationsConfig.waterTwoPhaseSeparator.displayName,\r\n icon: unitOperationsConfig.waterTwoPhaseSeparator.paletteIcon,\r\n diagramIcon: unitOperationsConfig.waterTwoPhaseSeparator.diagramIcon,\r\n category: unitOperationsConfig.waterTwoPhaseSeparator.key,\r\n height: this.iconHeight,\r\n width: this.iconWidth,\r\n },\r\n {\r\n name: unitOperationsConfig.waterPump.displayName,\r\n icon: unitOperationsConfig.waterPump.paletteIcon,\r\n diagramIcon: unitOperationsConfig.waterPump.diagramIcon,\r\n category: unitOperationsConfig.waterPump.key,\r\n height: this.iconHeight,\r\n width: this.iconWidth,\r\n },\r\n {\r\n name: unitOperationsConfig.waterValve.displayName,\r\n icon: unitOperationsConfig.waterValve.paletteIcon,\r\n diagramIcon: unitOperationsConfig.waterValve.diagramIcon,\r\n category: unitOperationsConfig.waterValve.key,\r\n height: this.iconHeight,\r\n width: this.iconWidth,\r\n },\r\n {\r\n name: unitOperationsConfig.waterSink.displayName,\r\n icon: unitOperationsConfig.waterSink.paletteIcon,\r\n diagramIcon: unitOperationsConfig.waterSink.diagramIcon,\r\n category: unitOperationsConfig.waterSink.key,\r\n height: this.iconHeight,\r\n width: this.iconWidth,\r\n },\r\n {\r\n name: unitOperationsConfig.waterMixer.displayName,\r\n icon: unitOperationsConfig.waterMixer.paletteIcon,\r\n diagramIcon: unitOperationsConfig.waterMixer.diagramIcon,\r\n category: unitOperationsConfig.waterMixer.key,\r\n height: this.iconHeight,\r\n width: this.iconWidth,\r\n },\r\n {\r\n name: unitOperationsConfig.waterSplitter.displayName,\r\n icon: unitOperationsConfig.waterSplitter.paletteIcon,\r\n diagramIcon: unitOperationsConfig.waterSplitter.diagramIcon,\r\n category: unitOperationsConfig.waterSplitter.key,\r\n height: this.iconHeight,\r\n width: this.iconWidth,\r\n },\r\n {\r\n name: unitOperationsConfig.waterHeader.displayName,\r\n icon: unitOperationsConfig.waterHeader.paletteIcon,\r\n diagramIcon: unitOperationsConfig.waterHeader.diagramIcon,\r\n category: unitOperationsConfig.waterHeader.key,\r\n height: this.iconHeight,\r\n width: this.iconWidth,\r\n },\r\n {\r\n name: unitOperationsConfig.waterPipe.displayName,\r\n icon: unitOperationsConfig.waterPipe.paletteIcon,\r\n diagramIcon: unitOperationsConfig.waterPipe.diagramIcon,\r\n category: unitOperationsConfig.waterPipe.key,\r\n height: this.iconHeight,\r\n width: this.iconWidth,\r\n },\r\n {\r\n name: unitOperationsConfig.waterCogeneration.displayName,\r\n icon: unitOperationsConfig.waterCogeneration.paletteIcon,\r\n diagramIcon: unitOperationsConfig.waterCogeneration.diagramIcon,\r\n category: unitOperationsConfig.waterCogeneration.key,\r\n height: this.iconHeight,\r\n width: this.iconWidth,\r\n },\r\n ];\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { AbstractSubFlowsheetPaletteHandler } from './abstract-sub-flowsheet-palette-handler';\r\nimport { GoJsPaletteUtils } from './gojs-palette-utils';\r\nimport { unitOperationsConfig } from '../../_config/unit-operations.config';\r\n\r\n@Injectable()\r\nexport class FuelGasPaletteHandler extends AbstractSubFlowsheetPaletteHandler {\r\n // eslint-disable-next-line @typescript-eslint/no-useless-constructor\r\n constructor(paletteUtils: GoJsPaletteUtils) {\r\n super(paletteUtils);\r\n }\r\n\r\n getPaletteModel(): any[] {\r\n return [\r\n {\r\n name: unitOperationsConfig.fuelGasSource.displayName,\r\n icon: unitOperationsConfig.fuelGasSource.paletteIcon,\r\n diagramIcon: unitOperationsConfig.fuelGasSource.diagramIcon,\r\n category: unitOperationsConfig.fuelGasSource.key,\r\n height: this.iconHeight,\r\n width: this.iconWidth,\r\n },\r\n {\r\n name: unitOperationsConfig.fuelGasFlare.displayName,\r\n icon: unitOperationsConfig.fuelGasFlare.paletteIcon,\r\n diagramIcon: unitOperationsConfig.fuelGasFlare.diagramIcon,\r\n category: unitOperationsConfig.fuelGasFlare.key,\r\n height: this.iconHeight,\r\n width: this.iconWidth,\r\n },\r\n {\r\n name: unitOperationsConfig.fuelGasSink.displayName,\r\n icon: unitOperationsConfig.genericSink.paletteIcon,\r\n diagramIcon: unitOperationsConfig.genericSink.diagramIcon,\r\n category: unitOperationsConfig.fuelGasSink.key,\r\n height: this.iconHeight,\r\n width: this.iconWidth,\r\n },\r\n {\r\n name: unitOperationsConfig.fuelGasSinkImport.displayName,\r\n icon: unitOperationsConfig.fuelGasSinkImport.paletteIcon,\r\n diagramIcon: unitOperationsConfig.fuelGasSinkImport.diagramIcon,\r\n category: unitOperationsConfig.fuelGasSinkImport.key,\r\n height: this.iconHeight,\r\n width: this.iconWidth,\r\n },\r\n {\r\n name: unitOperationsConfig.fuelGasSourceImport.displayName,\r\n icon: unitOperationsConfig.fuelGasSourceImport.paletteIcon,\r\n diagramIcon: unitOperationsConfig.fuelGasSourceImport.diagramIcon,\r\n category: unitOperationsConfig.fuelGasSourceImport.key,\r\n height: this.iconHeight,\r\n width: this.iconWidth,\r\n },\r\n {\r\n name: unitOperationsConfig.fuelGasMixer.displayName,\r\n icon: unitOperationsConfig.mixer.paletteIcon,\r\n diagramIcon: unitOperationsConfig.mixer.diagramIcon,\r\n category: unitOperationsConfig.fuelGasMixer.key,\r\n height: this.iconHeight,\r\n width: this.iconWidth,\r\n },\r\n {\r\n name: unitOperationsConfig.fuelGasSplitter.displayName,\r\n icon: unitOperationsConfig.fuelGasSplitter.paletteIcon,\r\n diagramIcon: unitOperationsConfig.fuelGasSplitter.diagramIcon,\r\n category: unitOperationsConfig.fuelGasSplitter.key,\r\n height: this.iconHeight,\r\n width: this.iconWidth,\r\n },\r\n {\r\n name: unitOperationsConfig.fuelGasAmineContactor.displayName,\r\n icon: unitOperationsConfig.fuelGasAmineContactor.paletteIcon,\r\n diagramIcon: unitOperationsConfig.fuelGasAmineContactor.diagramIcon,\r\n category: unitOperationsConfig.fuelGasAmineContactor.key,\r\n height: this.iconHeight,\r\n width: this.iconWidth,\r\n },\r\n ];\r\n }\r\n}\r\n","import { UnitOperation } from '../unit-operation';\r\n\r\nexport class FlowsheetTreeNode {\r\n unitOperation: UnitOperation;\r\n children: FlowsheetTreeNode[];\r\n\r\n constructor(uo: UnitOperation) {\r\n this.unitOperation = uo;\r\n this.children = [];\r\n }\r\n\r\n addChild(child: FlowsheetTreeNode) {\r\n this.children.push(child);\r\n }\r\n\r\n get id() {\r\n return this.unitOperation.id;\r\n }\r\n\r\n get name() {\r\n return this.unitOperation.name;\r\n }\r\n\r\n findChildById(id: string): FlowsheetTreeNode {\r\n return this.children.find(node => node.id === id);\r\n }\r\n\r\n public toJSON() {\r\n return {\r\n name: this.name,\r\n children: this.children,\r\n };\r\n }\r\n}\r\n","import { FlowsheetTreeNode } from './flowsheet-tree-node';\r\n\r\nexport class FlowsheetTreeRoot extends FlowsheetTreeNode {\r\n constructor() {\r\n super(undefined);\r\n }\r\n\r\n override get id() {\r\n return '';\r\n }\r\n\r\n override get name() {\r\n return 'Main';\r\n }\r\n}\r\n","// tree structure to represent the flowsheet owners in a case\r\nimport { FlowsheetTreeNode } from './flowsheet-tree-node';\r\nimport { FlowsheetTreeRoot } from './flowsheet-tree-root';\r\n\r\nexport class FlowsheetTree {\r\n root: FlowsheetTreeNode;\r\n\r\n constructor() {\r\n this.root = new FlowsheetTreeRoot();\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Case } from '../../../_models/case';\r\nimport { UnitOperation } from '../../../_models/unit-operation';\r\nimport { FlowsheetTreeNode } from '../../../_models/flowsheet-manager/flowsheet-tree-node';\r\nimport { FlowsheetTree } from '../../../_models/flowsheet-manager/flowsheet-tree';\r\n\r\n// WHY having this import causes errors when running a single unit test...\r\nimport { Upgrader } from '../../../_models/_unit-operations/upgrader';\r\nimport { unitOperationsConfig } from '../../../_config/unit-operations.config';\r\n\r\n@Injectable()\r\nexport class FlowsheetTreeService {\r\n getFlowsheetTree(c: Case) {\r\n const tree = new FlowsheetTree();\r\n const allFlowsheetOwners = this.getAllFlowsheetOwners(c);\r\n this.addChildren(tree.root, allFlowsheetOwners);\r\n\r\n return tree;\r\n }\r\n\r\n getFlowsheetTreeIncludeNormalUpgraders(c: Case) {\r\n const tree = new FlowsheetTree();\r\n const allFlowsheetOwners = this.getAllFlowsheetOwnersIncludeNormalUpgraders(c);\r\n this.addChildren(tree.root, allFlowsheetOwners);\r\n\r\n return tree;\r\n }\r\n\r\n private addChildren(node: FlowsheetTreeNode, allFlowsheetOwners: UnitOperation[]) {\r\n const children = allFlowsheetOwners.filter(uo => uo.flowsheetId === node.id);\r\n\r\n for (const child of children) {\r\n const childNode = new FlowsheetTreeNode(child);\r\n node.addChild(childNode);\r\n\r\n this.addChildren(childNode, allFlowsheetOwners);\r\n }\r\n }\r\n\r\n getAllFlowsheetOwners(c: Case) {\r\n return c.filterUnitOperations(uo => uo.isFlowsheetOwner);\r\n }\r\n\r\n private getAllFlowsheetOwnersIncludeNormalUpgraders(c: Case) {\r\n return c.filterUnitOperations(uo => uo.isFlowsheetOwner || uo instanceof Upgrader);\r\n }\r\n\r\n getFlowsheetOwnerIdByName(flowsheetName: string, c: Case) {\r\n let flowsheetOwnerId;\r\n const flowsheetTree = this.getFlowsheetTree(c).root;\r\n\r\n flowsheetTree.children.forEach(parentNode => {\r\n if (parentNode.name === flowsheetName) {\r\n flowsheetOwnerId = parentNode.id;\r\n } else {\r\n parentNode.children.forEach(childNode => {\r\n if (childNode.name === flowsheetName) {\r\n flowsheetOwnerId = childNode.id;\r\n }\r\n });\r\n }\r\n });\r\n\r\n return flowsheetOwnerId;\r\n }\r\n\r\n getFlowsheetOwnersCount(c: Case): number {\r\n let flowsheetOwnersCount = 0;\r\n const flowsheetTree = this.getFlowsheetTree(c).root;\r\n flowsheetTree.children.forEach(pNode => {\r\n if (\r\n pNode.unitOperation.category === unitOperationsConfig.upgrader.key ||\r\n pNode.unitOperation.category === unitOperationsConfig.extraction.key\r\n ) {\r\n flowsheetOwnersCount++;\r\n }\r\n });\r\n return flowsheetOwnersCount;\r\n }\r\n\r\n /**\r\n * Gets all the upgraders with sub flowsheet\r\n * @param c The owner case\r\n * @param flowsheetId A unit operation flowhseetId to find the upgrader parent\r\n */\r\n getUpgradersWithSubFlowsheet(c: Case, flowsheetId?: string): Upgrader[] {\r\n const upgraders = this.getAllFlowsheetOwners(c).filter(uo => {\r\n return uo instanceof Upgrader;\r\n }) as Upgrader[];\r\n\r\n if (flowsheetId) {\r\n return upgraders.filter(upg => {\r\n return upg.id === flowsheetId;\r\n });\r\n }\r\n return upgraders;\r\n }\r\n}\r\n","import { AfterViewInit, Component, ViewEncapsulation } from '@angular/core';\r\nimport * as go from 'gojs';\r\nimport { unitOperationsConfig } from '../../_config/unit-operations.config';\r\nimport { FlowsheetService } from '../../_services/flowsheet.service';\r\nimport { MultiPeriodService } from '../../_services/multi-period/multi-period.service';\r\nimport { GoJsPaletteUtils } from '../../_services/flowsheet-palette/gojs-palette-utils';\r\nimport { UpgraderPaletteHandler } from '../../_services/flowsheet-palette/upgrader-palette-handler';\r\nimport { AbstractSubFlowsheetPaletteHandler } from '../../_services/flowsheet-palette/abstract-sub-flowsheet-palette-handler';\r\nimport { FirstLevelPaletteModelProvider } from '../../_services/flowsheet-palette/first-level-palette-model-provider';\r\nimport { ExtractionPaletteHandler } from '../../_services/flowsheet-palette/extraction-palette-handler.service';\r\nimport { UtilitiesPaletteHandler } from '../../_services/flowsheet-palette/utilities-palette-handler';\r\nimport { CoreService } from '../../_services/core.service';\r\nimport { SubFlowsheetService } from '../../_services/sub-flowsheet/sub-flowsheet.service';\r\nimport { FuelGasPaletteHandler } from '../../_services/flowsheet-palette/fuel-gas-palette-handler';\r\nimport { FlowsheetTreeService } from '../../_services/sub-flowsheet/flowsheet-tree/flowsheet-tree.service';\r\n\r\n@Component({\r\n selector: 'sob-flowsheet-diagram-palette',\r\n templateUrl: './flowsheet-diagram-palette.component.html',\r\n styleUrls: ['./flowsheet-diagram-palette.component.css'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class FlowsheetDiagramPaletteComponent implements AfterViewInit {\r\n sources: go.Palette;\r\n processing: go.Palette;\r\n transport: go.Palette;\r\n connectors: go.Palette;\r\n\r\n subFlowsheetPaletteHandlers: { [key: string]: AbstractSubFlowsheetPaletteHandler } = {};\r\n activeSubFlowsheetPaletteHandler: AbstractSubFlowsheetPaletteHandler;\r\n\r\n constructor(\r\n private multiPeriodService: MultiPeriodService,\r\n private coreService: CoreService,\r\n private flowsheetService: FlowsheetService,\r\n private subFlowsheetService: SubFlowsheetService,\r\n private flowsheetTree: FlowsheetTreeService,\r\n private modelProvider: FirstLevelPaletteModelProvider,\r\n private paletteUtils: GoJsPaletteUtils,\r\n private upgraderPaletteHandler: UpgraderPaletteHandler,\r\n private utilitiesPaletteHandler: UtilitiesPaletteHandler,\r\n private fuelGasPaletteHandler: FuelGasPaletteHandler,\r\n private extractionPaletteHandler: ExtractionPaletteHandler\r\n ) {\r\n this.subFlowsheetPaletteHandlers[unitOperationsConfig.upgrader.key] = upgraderPaletteHandler;\r\n this.subFlowsheetPaletteHandlers[unitOperationsConfig.waterUtilityUnitOperation.key] = utilitiesPaletteHandler;\r\n this.subFlowsheetPaletteHandlers[unitOperationsConfig.fuelGasUtilityUnitOperation.key] = fuelGasPaletteHandler;\r\n this.subFlowsheetPaletteHandlers[unitOperationsConfig.extraction.key] = extractionPaletteHandler;\r\n\r\n this.coreService.currentCaseReplacedRequest.subscribe(() => {\r\n this.onCurrentCaseReplaced();\r\n });\r\n\r\n this.flowsheetService.subFlowsheetOpenedRequest.subscribe((unitOperationCategory: string) => {\r\n this.changePaletteHandler(unitOperationCategory);\r\n });\r\n\r\n this.flowsheetService.subFlowsheetClosedRequest.subscribe(() => {\r\n this.changePaletteHandler(this.subFlowsheetService.currentSubFlowsheetCategory);\r\n });\r\n\r\n this.multiPeriodService.multiPeriodModeEnabledRequest.subscribe(options => {\r\n if (options.multiPeriodEnabled) {\r\n this.hidePalette();\r\n this.hidePaletteButton();\r\n } else {\r\n this.showPalette();\r\n this.showPaletteButton();\r\n }\r\n });\r\n\r\n this.coreService.unitOperationAddedRequest.subscribe(uo => {\r\n if (\r\n uo.category === unitOperationsConfig.waterUtilityUnitOperation.key ||\r\n uo.category === unitOperationsConfig.fuelGasUtilityUnitOperation.key\r\n ) {\r\n this.upgraderPaletteHandler.updatePaletteNodeByAction(uo.category, 'disable');\r\n }\r\n });\r\n\r\n this.coreService.unitOperationRemovedRequest.subscribe(uo => {\r\n if (\r\n uo.category === unitOperationsConfig.waterUtilityUnitOperation.key ||\r\n uo.category === unitOperationsConfig.fuelGasUtilityUnitOperation.key\r\n ) {\r\n this.upgraderPaletteHandler.updatePaletteNodeByAction(uo.category, 'enable');\r\n }\r\n });\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.initPalettes();\r\n }\r\n\r\n private initPalettes() {\r\n this.sources = this.paletteUtils.initPaletteElement('sources');\r\n this.sources.nodeTemplate = this.paletteUtils.getPaletteNodeTemplate();\r\n this.sources.model.nodeDataArray = this.modelProvider.getSourcesModel();\r\n\r\n this.processing = this.paletteUtils.initPaletteElement('processing');\r\n this.processing.nodeTemplate = this.paletteUtils.getPaletteNodeTemplate();\r\n this.processing.model.nodeDataArray = this.modelProvider.getProcessingModel();\r\n\r\n this.transport = this.paletteUtils.initPaletteElement('transport');\r\n this.transport.nodeTemplate = this.paletteUtils.getPaletteNodeTemplate();\r\n this.transport.model.nodeDataArray = this.modelProvider.getTransportModel();\r\n\r\n this.connectors = this.paletteUtils.initPaletteElement('connectors');\r\n this.connectors.nodeTemplate = this.paletteUtils.getPaletteNodeTemplate();\r\n this.connectors.model.nodeDataArray = this.modelProvider.getConnectorsModel();\r\n\r\n this.upgraderPaletteHandler.init('upgraderPaletteContainer', 'generalUpgraderPalette');\r\n this.upgraderPaletteHandler.init('upgraderPaletteContainer', 'processingUpgraderPalette');\r\n this.upgraderPaletteHandler.init('upgraderPaletteContainer', 'reactorsUpgraderPalette');\r\n this.upgraderPaletteHandler.init('upgraderPaletteContainer', 'utilitiesAndEnvironmentalUpgraderPalette');\r\n\r\n this.utilitiesPaletteHandler.init('utilitiesPaletteContainer', 'utilitiesPalette');\r\n this.fuelGasPaletteHandler.init('fuelGasPaletteContainer', 'fuelGasPalette');\r\n this.extractionPaletteHandler.init('extractionPaletteContainer', 'extractionPalette');\r\n }\r\n\r\n private changePaletteHandler(unitOperationCategory: string) {\r\n if (this.activeSubFlowsheetPaletteHandler) {\r\n this.activeSubFlowsheetPaletteHandler.hidePalette();\r\n }\r\n\r\n if (unitOperationCategory) {\r\n this.activeSubFlowsheetPaletteHandler = this.subFlowsheetPaletteHandlers[unitOperationCategory];\r\n this.activeSubFlowsheetPaletteHandler.showPalette();\r\n if (unitOperationCategory === unitOperationsConfig.upgrader.key) {\r\n this.disableWaterOrGasPaletteNodesInExistingCase();\r\n }\r\n } else {\r\n this.activeSubFlowsheetPaletteHandler = undefined;\r\n }\r\n }\r\n\r\n private onCurrentCaseReplaced(): void {\r\n const subFlowsheetCategory = this.subFlowsheetService.currentSubFlowsheetCategory;\r\n this.changePaletteHandler(subFlowsheetCategory);\r\n /* if (subFlowsheetCategory) {\r\n if (this.activeSubFlowsheetPaletteHandler) {\r\n this.activeSubFlowsheetPaletteHandler.hidePalette();\r\n }\r\n\r\n this.enablePaletteHandler(subFlowsheetCategory);\r\n } else {\r\n if (!this.activeSubFlowsheetPaletteHandler) {\r\n return;\r\n }\r\n\r\n this.disablePaletteHandler();\r\n } */\r\n }\r\n\r\n private enablePaletteHandler(unitOperationCategory) {\r\n this.activeSubFlowsheetPaletteHandler = this.subFlowsheetPaletteHandlers[unitOperationCategory];\r\n this.activeSubFlowsheetPaletteHandler.showPalette();\r\n }\r\n\r\n private disablePaletteHandler(): void {\r\n this.activeSubFlowsheetPaletteHandler.hidePalette();\r\n this.activeSubFlowsheetPaletteHandler = undefined;\r\n }\r\n\r\n togglePalette() {\r\n $('#paletteWrapper').toggle('slide', { direction: 'right' }, 500, () => {});\r\n }\r\n\r\n hidePalette(): void {\r\n if ($('#paletteWrapper').is(':visible')) {\r\n this.togglePalette();\r\n }\r\n }\r\n\r\n hidePaletteButton(): void {\r\n $('#paletteButton').hide();\r\n }\r\n\r\n showPalette(): void {\r\n if ($('#paletteWrapper').is(':hidden')) {\r\n this.togglePalette();\r\n }\r\n }\r\n\r\n showPaletteButton(): void {\r\n $('#paletteButton').show();\r\n }\r\n\r\n disableWaterOrGasPaletteNodesInExistingCase() {\r\n const flowsheetTree = this.flowsheetTree.getFlowsheetTree(this.coreService.currentCase).root.children;\r\n flowsheetTree.forEach(parentNode => {\r\n if (parentNode.id === this.subFlowsheetService.currentSubFlowsheetId) {\r\n let waterUtilityCount = 0;\r\n let fuelGasUtilityCount = 0;\r\n parentNode.children.forEach(childNode => {\r\n if (childNode.unitOperation.category === unitOperationsConfig.waterUtilityUnitOperation.key) {\r\n waterUtilityCount++;\r\n } else if (childNode.unitOperation.category === unitOperationsConfig.fuelGasUtilityUnitOperation.key) {\r\n fuelGasUtilityCount++;\r\n }\r\n });\r\n if (waterUtilityCount > 0) {\r\n this.upgraderPaletteHandler.updatePaletteNodeByAction(\r\n unitOperationsConfig.waterUtilityUnitOperation.key,\r\n 'disable'\r\n );\r\n }\r\n if (fuelGasUtilityCount > 0) {\r\n this.upgraderPaletteHandler.updatePaletteNodeByAction(\r\n unitOperationsConfig.fuelGasUtilityUnitOperation.key,\r\n 'disable'\r\n );\r\n }\r\n }\r\n });\r\n }\r\n}\r\n","<div id=\"paletteButton\" (click)=\"togglePalette()\">\r\n <i class=\"fa fa-forward\"></i>\r\n</div>\r\n<div id=\"paletteWrapper\">\r\n <div id=\"normalPalettes\">\r\n <button id=\"sourcesBtn\" data-toggle=\"collapse\" data-target=\"#sources\" class=\"palette-category btn btn-link\">\r\n Sources\r\n </button>\r\n <div id=\"sources\" class=\"palette-container palette collapse in sources\"></div>\r\n <hr />\r\n\r\n <button id=\"processingBtn\" data-toggle=\"collapse\" data-target=\"#processing\" class=\"palette-category btn btn-link\">\r\n Processing\r\n </button>\r\n <div id=\"processing\" class=\"palette-container palette collapse in processing\"></div>\r\n <hr />\r\n\r\n <button id=\"transportBtn\" data-toggle=\"collapse\" data-target=\"#transport\" class=\"palette-category btn btn-link\">\r\n Infrastructure\r\n </button>\r\n <div id=\"transport\" class=\"palette-container palette collapse in transport\"></div>\r\n <hr />\r\n <button id=\"connectorsBtn\" data-toggle=\"collapse\" data-target=\"#connectors\" class=\"palette-category btn btn-link\">\r\n Connectors\r\n </button>\r\n <div id=\"connectors\" class=\"palette-container palette collapse in connectors\"></div>\r\n </div>\r\n <div id=\"upgraderPaletteContainer\" style=\"display: none\">\r\n <button\r\n id=\"generalBtn\"\r\n data-toggle=\"collapse\"\r\n data-target=\"#generalUpgraderPalette\"\r\n class=\"palette-category btn btn-link\">\r\n General\r\n </button>\r\n <div id=\"generalUpgraderPalette\" class=\"palette-container palette collapse in general\"></div>\r\n <hr />\r\n\r\n <button\r\n id=\"upgrderProcessingBtn\"\r\n data-toggle=\"collapse\"\r\n data-target=\"#processingUpgraderPalette\"\r\n class=\"palette-category btn btn-link\">\r\n Processing\r\n </button>\r\n <div id=\"processingUpgraderPalette\" class=\"palette-container palette collapse in upgraderProcessing\"></div>\r\n <hr />\r\n\r\n <button\r\n id=\"reactorsBtn\"\r\n data-toggle=\"collapse\"\r\n data-target=\"#reactorsUpgraderPalette\"\r\n class=\"palette-category btn btn-link\">\r\n Reactors\r\n </button>\r\n <div id=\"reactorsUpgraderPalette\" class=\"palette-container palette collapse in reactors\"></div>\r\n <hr />\r\n\r\n <button\r\n id=\"utilitiesAndEnvironmentalBtn\"\r\n data-toggle=\"collapse\"\r\n data-target=\"#utilitiesAndEnvironmentalUpgraderPalette\"\r\n class=\"palette-category btn btn-link\">\r\n Utilities & Environment\r\n </button>\r\n <div\r\n id=\"utilitiesAndEnvironmentalUpgraderPalette\"\r\n class=\"palette-container palette collapse in utilitiesAndEnvironmental\"></div>\r\n </div>\r\n\r\n <div id=\"utilitiesPaletteContainer\" style=\"display: none\">\r\n <button\r\n id=\"utilitiesPaletteBtn\"\r\n data-toggle=\"collapse\"\r\n data-target=\"#utilitiesPalette\"\r\n class=\"palette-category btn btn-link\">\r\n Unit Operations\r\n </button>\r\n <div id=\"utilitiesPalette\" class=\"palette-container palette collapse in level2UtilitiesPalette\"></div>\r\n </div>\r\n\r\n <div id=\"fuelGasPaletteContainer\" style=\"display: none\">\r\n <button\r\n id=\"fuelGasPaletteBtn\"\r\n data-toggle=\"collapse\"\r\n data-target=\"#utilitiesPalette\"\r\n class=\"palette-category btn btn-link\">\r\n Unit Operations\r\n </button>\r\n <div id=\"fuelGasPalette\" class=\"palette-container palette collapse in level2\"></div>\r\n </div>\r\n\r\n <div id=\"extractionPaletteContainer\" style=\"display: none\">\r\n <button data-toggle=\"collapse\" data-target=\"#extractionPalette\" class=\"palette-category btn btn-link\">\r\n Unit Operations\r\n </button>\r\n <div id=\"extractionPalette\" class=\"palette-container palette collapse in level2\"></div>\r\n </div>\r\n</div>\r\n","import { QueryList } from '@angular/core';\r\nimport { ValueInputComponent } from './value-input/value-input.component';\r\nimport { UnitSelectComponent } from './unit-select/unit-select.component';\r\nimport { SimulationVariableArrayComponent } from './simulation-variable-array/simulation-variable-array.component';\r\n\r\ndeclare let unitConverter: any;\r\n\r\nexport function attachSimVarEvent(valueField, unitField, quantity, _self): void {\r\n // at this point, it is assumed that valueField has the 'internal' value of the sim var\r\n unitField.data('fromUnit', unitConverter(quantity).getInternalUnit());\r\n valueField.data('value', _self.originalValue);\r\n\r\n // eslint-disable-next-line func-names\r\n valueField.on('change', function () {\r\n const $valueField = $(this);\r\n _self.setValue($valueField.val(), $valueField.val());\r\n $(this).data('value', $(this).val());\r\n unitField.data('fromUnit', unitField.val());\r\n });\r\n\r\n // eslint-disable-next-line func-names\r\n unitField.change(function () {\r\n const fromUnit = $(this).data('fromUnit');\r\n const toUnit = $(this).val();\r\n\r\n if (toUnit) {\r\n const valToConvert = valueField.data('value');\r\n if (fromUnit && valToConvert) {\r\n const conversion = unitConverter(quantity).convert(valToConvert, fromUnit, toUnit);\r\n _self.setValue(conversion.getValue(), conversion.round().format());\r\n _self.ref.detectChanges();\r\n }\r\n }\r\n });\r\n}\r\n\r\nexport function attachMultipleSimVarEvent(\r\n valueInputs: QueryList<ValueInputComponent>,\r\n unitSelect: UnitSelectComponent\r\n) {\r\n const internalUnit = unitConverter(unitSelect.simVar.quantity).getInternalUnit();\r\n\r\n // eslint-disable-next-line func-names\r\n valueInputs.forEach(function (item) {\r\n const $valueInput = $(`#${item.inputId}`);\r\n\r\n $valueInput.data('value', item.originalValue).data('fromUnit', internalUnit);\r\n\r\n // eslint-disable-next-line func-names\r\n $valueInput.on('change', function () {\r\n $(this).data('value', $(this).val());\r\n $(this).data('fromUnit', $(`#${unitSelect.selectId}`).val());\r\n item.setValue($valueInput.val(), $valueInput.val());\r\n });\r\n });\r\n\r\n // eslint-disable-next-line func-names\r\n $(`#${unitSelect.selectId}`).change(function () {\r\n const toUnit = $(this).val(); // maybe accessing sim var's unit?\r\n\r\n if (toUnit) {\r\n // eslint-disable-next-line func-names\r\n valueInputs.forEach(function (item) {\r\n const $valueInput = $(`#${item.inputId}`);\r\n const valToConvert = $valueInput.data('value');\r\n const fromUnit = $valueInput.data('fromUnit');\r\n\r\n item.setUnit(toUnit); // update the unit for the current simVar\r\n\r\n if (fromUnit && valToConvert) {\r\n const conversion = unitConverter(unitSelect.simVar.quantity).convert(valToConvert, fromUnit, toUnit);\r\n item.setValue(conversion.getValue(), conversion.round().format());\r\n item.ref.detectChanges();\r\n } // end fromUnit && valToConvert\r\n }); // end forEach\r\n } // end if toUnit\r\n });\r\n}\r\n\r\nexport function attachSimulationVariableArrayEvent(component: SimulationVariableArrayComponent) {\r\n const sva = component.simVarArray;\r\n const us = component.unitSelect;\r\n const prefix = component.idPrefix;\r\n const internalUnit = unitConverter(sva.quantity).getInternalUnit();\r\n\r\n // eslint-disable-next-line guard-for-in\r\n for (const i in sva.values) {\r\n $(`#${prefix}Value${i}`).data('value', sva.values[i]).data('fromUnit', internalUnit);\r\n }\r\n\r\n // eslint-disable-next-line func-names\r\n $(`#${us.selectId}`).change(function () {\r\n const toUnit = $(this).val();\r\n if (toUnit) {\r\n // eslint-disable-next-line guard-for-in\r\n for (const i in sva.values) {\r\n const $field = $(`#${prefix}Value${i}`);\r\n const valToConvert = $field.data('value');\r\n const fromUnit = $field.data('fromUnit');\r\n\r\n if (fromUnit && valToConvert) {\r\n const conversion = unitConverter(sva.quantity).convert(valToConvert, fromUnit, toUnit);\r\n component.setValue(i, conversion.getValue(), conversion.round().format());\r\n component.ref.detectChanges();\r\n }\r\n }\r\n }\r\n });\r\n\r\n for (const i of sva.values) {\r\n const $input = $(`#${prefix}Value${i}`);\r\n $input.on('change', function () {\r\n $input.data('value', jQuery(this).val());\r\n $input.data('fromUnit', $(us.selectId).val());\r\n component.setValue(i, $input.val(), $input.val());\r\n });\r\n }\r\n}\r\n","import { AfterContentInit, AfterViewInit, ChangeDetectorRef, Component, Input, OnInit } from '@angular/core';\r\n\r\nimport { attachSimVarEvent } from '../unit-converter.helper';\r\nimport { SimulationVariable } from '../../../_models';\r\nimport { ReadyStatus } from '../../../_config/ready-status.enum';\r\n\r\ndeclare let unitConverter: any;\r\n\r\n@Component({\r\n // eslint-disable-next-line @angular-eslint/component-selector\r\n selector: 'sfe-value-input',\r\n template: `<input\r\n type=\"text\"\r\n name=\"{{ inputId }}\"\r\n id=\"{{ inputId }}\"\r\n [(ngModel)]=\"displayValue\"\r\n (change)=\"valueChanged($event.target.value)\"\r\n class=\"{{ elClass }} {{ simVar.variableStatus }} {{ simVar.readyStatus }}\"\r\n [disabled]=\"disabled\" />`,\r\n})\r\nexport class ValueInputComponent implements AfterContentInit, AfterViewInit, OnInit {\r\n @Input() inputId: string;\r\n @Input() convertedBy: string;\r\n @Input() simVar: SimulationVariable;\r\n @Input() elClass: string;\r\n @Input() multiple: boolean;\r\n @Input() readOnlyValue: boolean;\r\n @Input() readOnlyUnit: boolean;\r\n\r\n // when this is true the input element will be disabled\r\n @Input() disabled: boolean;\r\n\r\n originalValue: number;\r\n displayValue: string;\r\n\r\n ref: ChangeDetectorRef;\r\n\r\n constructor(ref: ChangeDetectorRef) {\r\n this.ref = ref;\r\n }\r\n\r\n ngOnInit() {\r\n this.originalValue = this.simVar.value;\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n if (!this.multiple && this.convertedBy) {\r\n attachSimVarEvent($(`#${this.inputId}`), $(`#${this.convertedBy}`), this.simVar.quantity, this);\r\n }\r\n }\r\n\r\n ngAfterContentInit(): void {\r\n if (!this.simVar.quantity) {\r\n this.setValue(this.simVar.value, unitConverter.formatNumber(this.simVar.value));\r\n return;\r\n }\r\n\r\n const conversion = unitConverter(this.simVar.quantity).convert(\r\n this.simVar.value,\r\n unitConverter(this.simVar.quantity).getInternalUnit(),\r\n this.simVar.unit\r\n );\r\n\r\n this.setValue(conversion.getValue(), conversion.round().format());\r\n }\r\n\r\n setValue(rawValue, displayValue) {\r\n if (!this.readOnlyValue) {\r\n this.simVar.value = rawValue;\r\n }\r\n\r\n this.displayValue = displayValue;\r\n }\r\n\r\n setUnit(unit): void {\r\n if (!this.readOnlyUnit) {\r\n this.simVar.unit = unit;\r\n }\r\n }\r\n\r\n getConversionToInternalUnit(value) {\r\n return unitConverter(this.simVar.quantity).convert(\r\n value,\r\n this.simVar.unit,\r\n unitConverter(this.simVar.quantity).getInternalUnit()\r\n );\r\n }\r\n\r\n valueChanged(value) {\r\n const valueInternal = this.getConversionToInternalUnit(value).getValue();\r\n\r\n if (valueInternal < this.simVar.lowerBound || valueInternal > this.simVar.upperBound) {\r\n this.simVar.readyStatus = ReadyStatus.NOT_VALID;\r\n this.displayValue = '';\r\n } else {\r\n this.simVar.readyStatus = ReadyStatus.READY;\r\n }\r\n }\r\n}\r\n","import { Component, Input, OnInit, AfterViewInit } from '@angular/core';\r\n\r\ndeclare let unitConverter: any;\r\n\r\n@Component({\r\n // eslint-disable-next-line @angular-eslint/component-selector\r\n selector: 'sfe-unit-select',\r\n template:\r\n '<select id=\"{{selectId}}\" [(ngModel)]=\"dynamicModel.unit\" class=\"{{elClass}}\" [disabled]=\"disabled\"></select>',\r\n})\r\nexport class UnitSelectComponent implements AfterViewInit, OnInit {\r\n @Input() selectId: string;\r\n @Input() simVar: any;\r\n @Input() unitSubset: string;\r\n @Input() elClass: string;\r\n @Input() transientModel: boolean;\r\n @Input() disabled: boolean;\r\n\r\n dynamicModel: any;\r\n\r\n ngOnInit() {\r\n if (this.transientModel) {\r\n this.dynamicModel = { unit: this.simVar.unit };\r\n } else {\r\n this.dynamicModel = this.simVar;\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n unitConverter(this.simVar.quantity).createUnitSelect(`#${this.selectId}`, this.simVar.unit, this.unitSubset);\r\n }\r\n}\r\n","import { AfterViewInit, ContentChild, ContentChildren, Directive, Input, OnInit, QueryList } from '@angular/core';\r\nimport { ValueInputComponent } from '../value-input/value-input.component';\r\nimport { UnitSelectComponent } from '../unit-select/unit-select.component';\r\nimport { attachMultipleSimVarEvent } from '../unit-converter.helper';\r\nimport { BoundedObject } from '../../../_models/bounded-object';\r\nimport { ReadyStatus } from '../../../_config/ready-status.enum';\r\n\r\ndeclare let unitConverter: any;\r\n\r\n@Directive({\r\n // eslint-disable-next-line @angular-eslint/directive-selector\r\n selector: '[sfeMultipleSimVarInput]',\r\n})\r\nexport class MultipleSimVarInputDirective implements OnInit, AfterViewInit {\r\n @Input() totalOutputId: string; // id of the element where the total value will be shown\r\n @Input() objectToValidate: BoundedObject;\r\n @ContentChildren(ValueInputComponent, { descendants: true }) valueInputs: QueryList<ValueInputComponent>;\r\n @ContentChild(UnitSelectComponent, { static: true }) unitSelect: UnitSelectComponent;\r\n\r\n private internalUnit: string;\r\n\r\n constructor() {}\r\n\r\n ngOnInit() {\r\n if (this.objectToValidate) {\r\n this.internalUnit = unitConverter(this.objectToValidate.quantity).getInternalUnit();\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n attachMultipleSimVarEvent(this.valueInputs, this.unitSelect);\r\n const $unitSelect = $(`#${this.unitSelect.selectId}`);\r\n\r\n if (this.totalOutputId) {\r\n this.calculateTotal();\r\n $unitSelect.on('change', () => {\r\n this.calculateTotal();\r\n });\r\n\r\n this.valueInputs.forEach(vi => {\r\n $(`#${vi.inputId}`).on('change', () => {\r\n this.calculateTotal();\r\n });\r\n });\r\n }\r\n }\r\n\r\n calculateTotal() {\r\n let total = 0;\r\n\r\n this.valueInputs.forEach(vi => {\r\n const val = unitConverter.parseFloatString(vi.displayValue);\r\n\r\n if (!isNaN(val)) {\r\n total += val;\r\n }\r\n });\r\n\r\n total = parseFloat(total.toFixed(5));\r\n\r\n const $totalOutput = $(`#${this.totalOutputId}`);\r\n $totalOutput.val(total);\r\n\r\n if (this.objectToValidate) {\r\n const totalInternal = unitConverter(this.objectToValidate.quantity)\r\n .convert(total, this.getSelectedUnit(), this.internalUnit)\r\n .getValue();\r\n\r\n if (totalInternal < this.objectToValidate.lowerBound || totalInternal > this.objectToValidate.upperBound) {\r\n this.objectToValidate.readyStatus = ReadyStatus.NOT_READY;\r\n $totalOutput.addClass(ReadyStatus.NOT_VALID);\r\n } else {\r\n this.objectToValidate.readyStatus = ReadyStatus.READY;\r\n $totalOutput.removeClass(ReadyStatus.NOT_VALID);\r\n }\r\n }\r\n }\r\n\r\n getSelectedUnit(): string {\r\n return $(`#${this.unitSelect.selectId}`).val() as string;\r\n }\r\n}\r\n","import { AfterContentInit, AfterViewInit, ChangeDetectorRef, Component, Input, OnChanges, OnInit } from '@angular/core';\r\nimport { attachSimVarEvent } from '../unit-converter.helper';\r\nimport { ReadyStatus } from '../../../_config/ready-status.enum';\r\nimport { CoreService } from '../../../_services/core.service';\r\n\r\ndeclare let unitConverter: any;\r\n\r\n@Component({\r\n // eslint-disable-next-line @angular-eslint/component-selector\r\n selector: 'sim-var-input',\r\n template: `<div class=\"sim-var-input\">\r\n <div class=\"{{ controlWidthClass }}\" *ngIf=\"!hiddenUnit\">\r\n <sfe-unit-select\r\n [selectId]=\"inputId + 'Unit'\"\r\n [simVar]=\"simVar\"\r\n [elClass]=\"'form-control'\"\r\n [disabled]=\"disabled\"\r\n [unitSubset]=\"unitSubset\">\r\n </sfe-unit-select>\r\n </div>\r\n <div class=\"{{ isConstraint ? 'col-xs-3' : controlWidthClass }}\" [style.padding]=\"isConstraint ? 0 : ''\">\r\n <input\r\n type=\"text\"\r\n id=\"{{ inputId }}\"\r\n [(ngModel)]=\"displayValue\"\r\n (change)=\"valueChanged($event.target.value)\"\r\n class=\"form-control {{ simVar.variableStatus }} {{ simVar.readyStatus }}\"\r\n [disabled]=\"readOnly || disabled || multiPeriodEnabled\" />\r\n </div>\r\n <div *ngIf=\"isConstraint\">\r\n <label for=\"isActive\" class=\"control-label col-sm-4\"> </label>\r\n <div style=\"position: relative\">\r\n <label class=\"control-label\">\r\n <input\r\n type=\"checkbox\"\r\n id=\"isActive\"\r\n [disabled]=\"disabledConstraint\"\r\n style=\"position: absolute; top: 6px; right: 0\"\r\n [(ngModel)]=\"simVar.isActive\" />\r\n </label>\r\n </div>\r\n </div>\r\n </div>`,\r\n})\r\nexport class SimVarInputComponent implements AfterViewInit, OnInit, AfterContentInit, OnChanges {\r\n @Input() simVar: any;\r\n @Input() inputId: any;\r\n @Input() readOnly: boolean;\r\n @Input() hiddenUnit: boolean;\r\n @Input() disabled: boolean;\r\n @Input() min: number;\r\n @Input() max: number;\r\n @Input() isConstraint: boolean;\r\n @Input() disabledConstraint: boolean;\r\n @Input() widerControls: boolean;\r\n @Input() unitSubset: string;\r\n\r\n // use this for owner base objects that don't apply for conventional\r\n // save/convert to internal unit/update status process\r\n @Input() transientValue: boolean;\r\n\r\n displayValue: string;\r\n originalValue: number;\r\n\r\n ref: ChangeDetectorRef;\r\n controlWidthClass = 'col-xs-4';\r\n\r\n get multiPeriodEnabled(): boolean {\r\n return this.coreService.currentCase.multiPeriodEnabled;\r\n }\r\n\r\n constructor(ref: ChangeDetectorRef, private coreService: CoreService) {\r\n this.ref = ref;\r\n }\r\n\r\n ngOnInit() {\r\n this.originalValue = this.simVar.value;\r\n if (this.widerControls) {\r\n this.controlWidthClass = 'col-xs-6';\r\n }\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n attachSimVarEvent($(`#${this.inputId}`), $(`#${this.inputId}Unit`), this.simVar.quantity, this);\r\n }\r\n\r\n ngAfterContentInit(): void {\r\n const conversion = unitConverter(this.simVar.quantity).convert(\r\n this.simVar.value,\r\n unitConverter(this.simVar.quantity).getInternalUnit(),\r\n this.simVar.unit\r\n );\r\n\r\n this.setValue(conversion.getValue(), conversion.round().format());\r\n }\r\n\r\n getConversionToInternalUnit(value) {\r\n return unitConverter(this.simVar.quantity).convert(\r\n value,\r\n this.simVar.unit,\r\n unitConverter(this.simVar.quantity).getInternalUnit()\r\n );\r\n }\r\n\r\n getConversionToUnit(value, unit) {\r\n return unitConverter(this.simVar.quantity).convert(\r\n value,\r\n unitConverter(this.simVar.quantity).getInternalUnit(),\r\n unit\r\n );\r\n }\r\n\r\n ngOnChanges(changes) {\r\n if (this.simVar.value === null || typeof this.simVar.value === 'undefined') {\r\n this.setValue(null, null);\r\n }\r\n }\r\n\r\n valueChanged(value) {\r\n const valueInternal = this.getConversionToInternalUnit(value).getValue();\r\n\r\n if (valueInternal < this.simVar.lowerBound || valueInternal > this.simVar.upperBound) {\r\n this.simVar.readyStatus = ReadyStatus.NOT_VALID;\r\n this.displayValue = '';\r\n } else {\r\n this.simVar.readyStatus = ReadyStatus.READY;\r\n }\r\n }\r\n\r\n setValue(rawValue, roundedValue) {\r\n if (!this.transientValue) {\r\n this.simVar.value = rawValue;\r\n }\r\n\r\n this.displayValue = roundedValue;\r\n }\r\n}\r\n","import { Directive, ElementRef, AfterViewInit } from '@angular/core';\r\n\r\n@Directive({\r\n // eslint-disable-next-line @angular-eslint/directive-selector\r\n selector: '[sfeCollapsePanelIcon]',\r\n})\r\nexport class CollapsePanelIconDirective implements AfterViewInit {\r\n constructor(private el: ElementRef) {}\r\n\r\n ngAfterViewInit() {\r\n const $panel = jQuery(this.el.nativeElement.getAttribute('href'));\r\n const $link = jQuery(this.el.nativeElement);\r\n\r\n // eslint-disable-next-line func-names\r\n $panel.on('hidden.bs.collapse', function () {\r\n $link.find('i').removeClass('fa-minus').addClass('fa-plus');\r\n });\r\n\r\n // eslint-disable-next-line func-names\r\n $panel.on('shown.bs.collapse', function () {\r\n $link.find('i').removeClass('fa-plus').addClass('fa-minus');\r\n });\r\n }\r\n}\r\n","<div class=\"form-group\">\r\n <label [attr.for]=\"idPrefix + 'sulfur'\" class=\"pw-label control-label col-sm-4\"> Sulfur </label>\r\n\r\n <sim-var-input\r\n [simVar]=\"cut.sulfur\"\r\n [inputId]=\"idPrefix + 'sulfur'\"\r\n [readOnly]=\"readOnly\"\r\n [transientValue]=\"readOnly\"></sim-var-input>\r\n</div>\r\n\r\n<div class=\"form-group\">\r\n <label [attr.for]=\"idPrefix + 'anilinePoint'\" class=\"pw-label control-label col-sm-4\"> Aniline Point </label>\r\n\r\n <sim-var-input\r\n [simVar]=\"cut.anilinePoint\"\r\n [inputId]=\"idPrefix + 'anilinePoint'\"\r\n [readOnly]=\"readOnly\"\r\n [transientValue]=\"readOnly\"></sim-var-input>\r\n</div>\r\n\r\n<div class=\"form-group\" *ngIf=\"isStream\">\r\n <label [attr.for]=\"idPrefix + 'aromaticityFactor'\" class=\"pw-label control-label col-sm-4\">\r\n Aromaticity Factor\r\n </label>\r\n\r\n <sim-var-input\r\n [simVar]=\"cut.aromaticityFactor\"\r\n [inputId]=\"idPrefix + 'aromaticityFactor'\"\r\n [readOnly]=\"readOnly\"\r\n [transientValue]=\"readOnly\"></sim-var-input>\r\n</div>\r\n\r\n<div class=\"form-group\">\r\n <label [attr.for]=\"idPrefix + 'massDensity'\" class=\"pw-label control-label col-sm-4\"> Mass Density </label>\r\n\r\n <sim-var-input\r\n [simVar]=\"cut.massDensity\"\r\n [inputId]=\"idPrefix + 'massDensity'\"\r\n [readOnly]=\"readOnly\"\r\n [transientValue]=\"readOnly\"></sim-var-input>\r\n</div>\r\n\r\n<div class=\"form-group\">\r\n <label [attr.for]=\"idPrefix + 'nitrogen'\" class=\"pw-label control-label col-sm-4\"> Nitrogen </label>\r\n\r\n <sim-var-input\r\n [simVar]=\"cut.nitrogen\"\r\n [inputId]=\"idPrefix + 'nitrogen'\"\r\n [readOnly]=\"readOnly\"\r\n [transientValue]=\"readOnly\"></sim-var-input>\r\n</div>\r\n\r\n<div class=\"form-group\">\r\n <label [attr.for]=\"idPrefix + 'ccr'\" class=\"pw-label control-label col-sm-4\"> CCR </label>\r\n\r\n <sim-var-input\r\n [simVar]=\"cut.ccr\"\r\n [inputId]=\"idPrefix + 'ccr'\"\r\n [readOnly]=\"readOnly\"\r\n [transientValue]=\"readOnly\"></sim-var-input>\r\n</div>\r\n\r\n<div class=\"form-group\" *ngIf=\"isStream\">\r\n <label [attr.for]=\"idPrefix + 'Afc'\" class=\"pw-label control-label col-sm-4\"> AFC </label>\r\n\r\n <sim-var-input\r\n [simVar]=\"cut.afc\"\r\n [inputId]=\"idPrefix + 'Afc'\"\r\n [readOnly]=\"readOnly\"\r\n [transientValue]=\"readOnly\"></sim-var-input>\r\n</div>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { Cut } from '../../../_models/_fluid/cut';\r\n\r\n@Component({\r\n selector: 'sob-cut',\r\n templateUrl: './cut.component.html',\r\n styleUrls: ['./cut.component.css'],\r\n})\r\nexport class CutComponent implements OnInit {\r\n @Input()\r\n cut: Cut; // isn't this a keyword or sth\r\n\r\n @Input()\r\n idPrefix: string;\r\n\r\n @Input()\r\n isStream: boolean;\r\n\r\n @Input()\r\n readOnly: boolean;\r\n\r\n constructor() {}\r\n\r\n ngOnInit() {\r\n this.readOnly = this.readOnly ? this.readOnly : false;\r\n }\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { SuncorFluidAnalysis } from '../../../_models/_fluid/suncor-fluid-analysis';\r\n\r\n@Component({\r\n selector: 'sob-cut-properties',\r\n templateUrl: './cut-properties.component.html',\r\n styleUrls: ['./cut-properties.component.css'],\r\n})\r\nexport class CutPropertiesComponent implements OnInit {\r\n @Input()\r\n fluidAnalysis: SuncorFluidAnalysis;\r\n\r\n @Input()\r\n readonly: boolean;\r\n\r\n @Input()\r\n idPrefix: string;\r\n\r\n ngOnInit() {\r\n this.readonly = this.readonly ? this.readonly : false;\r\n this.idPrefix = this.idPrefix ? this.idPrefix : '';\r\n }\r\n}\r\n","<h4>\r\n <a\r\n data-toggle=\"collapse\"\r\n sfeCollapsePanelIcon\r\n href=\"#{{ idPrefix }}uo-lightEnds\"\r\n aria-expanded=\"false\"\r\n [attr.aria-controls]=\"'#uo-lightEnds'\">\r\n <i class=\"fa fa-plus\" aria-hidden=\"true\"></i>\r\n Light Ends\r\n </a>\r\n</h4>\r\n<div id=\"{{ idPrefix }}uo-lightEnds\" class=\"collapse\">\r\n <div class=\"form-horizontal\">\r\n <sob-cut [readOnly]=\"readonly\" [cut]=\"fluidAnalysis.lightEndsCut\" [idPrefix]=\"idPrefix + 'lightEndsCut'\"></sob-cut>\r\n </div>\r\n</div>\r\n<hr />\r\n<h4>\r\n <a\r\n data-toggle=\"collapse\"\r\n sfeCollapsePanelIcon\r\n href=\"#{{ idPrefix }}uo-lightNaphtha\"\r\n aria-expanded=\"false\"\r\n [attr.aria-controls]=\"'#uo-lightNaphtha'\">\r\n <i class=\"fa fa-plus\" aria-hidden=\"true\"></i>\r\n Light Naphtha\r\n </a>\r\n</h4>\r\n<div id=\"{{ idPrefix }}uo-lightNaphtha\" class=\"collapse\">\r\n <div class=\"form-horizontal\">\r\n <sob-cut\r\n [readOnly]=\"readonly\"\r\n [cut]=\"fluidAnalysis.lightNaphthaCut\"\r\n [idPrefix]=\"idPrefix + 'lightNaphthaCut'\"></sob-cut>\r\n </div>\r\n</div>\r\n<hr />\r\n<h4>\r\n <a\r\n data-toggle=\"collapse\"\r\n sfeCollapsePanelIcon\r\n href=\"#{{ idPrefix }}uo-heavyNaphtha\"\r\n aria-expanded=\"false\"\r\n [attr.aria-controls]=\"'#uo-heavyNaphtha'\">\r\n <i class=\"fa fa-plus\" aria-hidden=\"true\"></i>\r\n Heavy Naphtha\r\n </a>\r\n</h4>\r\n<div id=\"{{ idPrefix }}uo-heavyNaphtha\" class=\"collapse\">\r\n <div class=\"form-horizontal\">\r\n <sob-cut\r\n [readOnly]=\"readonly\"\r\n [cut]=\"fluidAnalysis.heavyNaphthaCut\"\r\n [idPrefix]=\"idPrefix + 'heavyNaphthaCut'\"></sob-cut>\r\n </div>\r\n</div>\r\n<hr />\r\n<h4>\r\n <a\r\n data-toggle=\"collapse\"\r\n sfeCollapsePanelIcon\r\n href=\"#{{ idPrefix }}uo-distillate\"\r\n aria-expanded=\"false\"\r\n [attr.aria-controls]=\"'#uo-distillate'\">\r\n <i class=\"fa fa-plus\" aria-hidden=\"true\"></i>\r\n Distillate\r\n </a>\r\n</h4>\r\n<div id=\"{{ idPrefix }}uo-distillate\" class=\"collapse\">\r\n <div class=\"form-horizontal\">\r\n <sob-cut\r\n [readOnly]=\"readonly\"\r\n [cut]=\"fluidAnalysis.distillateCut\"\r\n [idPrefix]=\"idPrefix + 'distillateCut'\"></sob-cut>\r\n </div>\r\n</div>\r\n<hr />\r\n<h4>\r\n <a\r\n data-toggle=\"collapse\"\r\n sfeCollapsePanelIcon\r\n href=\"#{{ idPrefix }}uo-lgo\"\r\n aria-expanded=\"false\"\r\n [attr.aria-controls]=\"'#uo-lgo'\">\r\n <i class=\"fa fa-plus\" aria-hidden=\"true\"></i>\r\n LGO\r\n </a>\r\n</h4>\r\n<div id=\"{{ idPrefix }}uo-lgo\" class=\"collapse\">\r\n <div class=\"form-horizontal\">\r\n <sob-cut [readOnly]=\"readonly\" [cut]=\"fluidAnalysis.LGOCut\" [idPrefix]=\"idPrefix + 'LGOCut'\"></sob-cut>\r\n </div>\r\n</div>\r\n<hr />\r\n<h4>\r\n <a\r\n data-toggle=\"collapse\"\r\n sfeCollapsePanelIcon\r\n href=\"#{{ idPrefix }}uo-hgo\"\r\n aria-expanded=\"false\"\r\n [attr.aria-controls]=\"'#uo-hgo'\">\r\n <i class=\"fa fa-plus\" aria-hidden=\"true\"></i>\r\n HGO\r\n </a>\r\n</h4>\r\n<div id=\"{{ idPrefix }}uo-hgo\" class=\"collapse\">\r\n <div class=\"form-horizontal\">\r\n <sob-cut [readOnly]=\"readonly\" [cut]=\"fluidAnalysis.HGOCut\" [idPrefix]=\"idPrefix + 'HGOCut'\"></sob-cut>\r\n </div>\r\n</div>\r\n<hr />\r\n<h4>\r\n <a\r\n data-toggle=\"collapse\"\r\n sfeCollapsePanelIcon\r\n href=\"#{{ idPrefix }}uo-vgo\"\r\n aria-expanded=\"false\"\r\n [attr.aria-controls]=\"'#uo-vgo'\">\r\n <i class=\"fa fa-plus\" aria-hidden=\"true\"></i>\r\n VGO\r\n </a>\r\n</h4>\r\n<div id=\"{{ idPrefix }}uo-vgo\" class=\"collapse\">\r\n <div class=\"form-horizontal\">\r\n <sob-cut [readOnly]=\"readonly\" [cut]=\"fluidAnalysis.VGOCut\" [idPrefix]=\"idPrefix + 'VGOCut'\"></sob-cut>\r\n </div>\r\n</div>\r\n<hr />\r\n<h4>\r\n <a\r\n data-toggle=\"collapse\"\r\n sfeCollapsePanelIcon\r\n href=\"#{{ idPrefix }}uo-hvgo\"\r\n aria-expanded=\"false\"\r\n [attr.aria-controls]=\"'#uo-hvgo'\">\r\n <i class=\"fa fa-plus\" aria-hidden=\"true\"></i>\r\n HVGO\r\n </a>\r\n</h4>\r\n<div id=\"{{ idPrefix }}uo-hvgo\" class=\"collapse\">\r\n <div class=\"form-horizontal\">\r\n <sob-cut [readOnly]=\"readonly\" [cut]=\"fluidAnalysis.HVGOCut\" [idPrefix]=\"idPrefix + 'HVGOCut'\"></sob-cut>\r\n </div>\r\n</div>\r\n<hr />\r\n<h4>\r\n <a\r\n data-toggle=\"collapse\"\r\n sfeCollapsePanelIcon\r\n href=\"#{{ idPrefix }}uo-resid\"\r\n aria-expanded=\"false\"\r\n [attr.aria-controls]=\"'#uo-resid'\">\r\n <i class=\"fa fa-plus\" aria-hidden=\"true\"></i>\r\n Resid\r\n </a>\r\n</h4>\r\n<div id=\"{{ idPrefix }}uo-resid\" class=\"collapse\">\r\n <div class=\"form-horizontal\">\r\n <sob-cut [readOnly]=\"readonly\" [cut]=\"fluidAnalysis.residCut\" [idPrefix]=\"idPrefix + 'residCut'\"></sob-cut>\r\n </div>\r\n</div>\r\n<hr />\r\n","<div class=\"dropdown\">\r\n <button\r\n class=\"btn btn-default dropdown-toggle form-control\"\r\n style=\"text-align: left; padding-left: 15px\"\r\n type=\"button\"\r\n id=\"dropdownMenu1\"\r\n data-toggle=\"dropdown\"\r\n aria-haspopup=\"true\"\r\n aria-expanded=\"true\">\r\n {{ currentAnalysis ? currentAnalysis.assayName : ('Select' | titlecase) }}\r\n <span class=\"caret\" style=\"float: right; margin-top: 8px\"></span>\r\n </button>\r\n <ul class=\"dropdown-menu full-width\" aria-labelledby=\"dropdownMenu1\">\r\n <!-- <li class=\"disabled\"><a>Select</a></li>-->\r\n <ng-container *ngFor=\"let fa of fluidAnalyses\">\r\n <li>\r\n <a (click)=\"updateCurrentAnalysis(fa.id)\">{{ fa.assayName | titlecase }}</a>\r\n </li>\r\n </ng-container>\r\n <li role=\"separator\" class=\"divider\"></li>\r\n <li>\r\n <a (click)=\"openAssayManager()\">Create new analysis <i class=\"fa fa-plus-circle\" style=\"color: #337ab7\"></i></a>\r\n </li>\r\n </ul>\r\n</div>\r\n","import { Component, EventEmitter, forwardRef, Input, Output } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { SuncorFluidAnalysis } from '../../../_models/_fluid/suncor-fluid-analysis';\r\nimport { GasFluidAnalysis } from '../../../_models/_fluid/gas-fluid-analysis';\r\n\r\n@Component({\r\n selector: 'sob-assay-selector',\r\n templateUrl: './assay-selector.component.html',\r\n styleUrls: ['./assay-selector.component.css'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => AssaySelectorComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class AssaySelectorComponent implements ControlValueAccessor {\r\n @Input()\r\n currentAnalysis?: SuncorFluidAnalysis | GasFluidAnalysis;\r\n\r\n @Input()\r\n fluidAnalyses: (SuncorFluidAnalysis | GasFluidAnalysis)[];\r\n\r\n @Output()\r\n updateCurrentAssay = new EventEmitter<string>();\r\n\r\n updateCurrentAnalysis(id) {\r\n this.updateCurrentAssay.emit(id);\r\n }\r\n\r\n openAssayManager() {\r\n $('#assayManagerModal').modal('show');\r\n }\r\n\r\n registerOnChange(): void {}\r\n\r\n registerOnTouched(): void {}\r\n\r\n writeValue(): void {}\r\n}\r\n","<div>\r\n <div class=\"form-horizontal\" [formGroup]=\"commentsGroup\">\r\n <div class=\"form-group\">\r\n <div class=\"col-sm-8\">\r\n <textarea rows=\"5\" class=\"area\" placeholder=\"Type here\" cols=\"60\" formControlName=\"commentArea\"></textarea>\r\n </div>\r\n </div>\r\n <div class=\"text-right\" style=\"margin-top: 20px; margin-bottom: 20px; margin-left: 70%\">\r\n <a class=\"btn btn-success add\" (click)=\"addComment()\"><i class=\"fa fa-plus\"></i> Add comment</a>\r\n </div>\r\n <ng-container formArrayName=\"commentsArray\">\r\n <div *ngFor=\"let comment of commentsFormGroupArray; let i = index\">\r\n <div formGroupName=\"{{ i }}\">\r\n <div class=\"row\">\r\n <div class=\"col-lg head\">\r\n <label id=\"comment{{ i }}\" class=\"inline left p-t-5-x\" style=\"margin-left: 20px\">\r\n {{ unitOpComments[i].username }}\r\n </label>\r\n\r\n <small class=\"text-muted\">  On {{ formatDate(unitOpComments[i].commentDate) }}</small>\r\n\r\n <div *ngIf=\"isControlDisabled(i, 'confirm') && isSameUser(unitOpComments[i].username)\" class=\"buttons\">\r\n <span class=\"inline pull-right p-t-5-x\">\r\n <button class=\"btnR btn btn-xs buttonC\" (click)=\"confirmDelete(i)\" title=\"Delete comment\">\r\n <i class=\"fa fa-trash fa-lg\" aria-hidden=\"true\"></i>\r\n </button>\r\n </span>\r\n <span *ngIf=\"isControlDisabled(i, 'text')\" class=\"inline pull-right p-t-5-x\" style=\"margin-right: 10px\">\r\n <button\r\n class=\"btnR btn btn-xs buttonC\"\r\n (click)=\"enableTextArea(i)\"\r\n data-toggle=\"tooltip\"\r\n title=\"Edit comment\">\r\n <i class=\"fa fa-pencil fa-lg\" aria-hidden=\"true\"></i>\r\n </button>\r\n </span>\r\n <span\r\n *ngIf=\"!isControlDisabled(i, 'text')\"\r\n class=\"inline pull-right p-t-5-x\"\r\n style=\"margin-right: 10px\">\r\n <button\r\n class=\"btnR btn btn-xs buttonC\"\r\n (click)=\"updateComment(i)\"\r\n data-toggle=\"tooltip\"\r\n title=\"Save comment\">\r\n <i\r\n class=\"fa fa-floppy-o fa-lg\"\r\n [ngClass]=\"{ 'text-success': !isControlDisabled(i, 'text') }\"\r\n aria-hidden=\"true\"></i>\r\n </button>\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"alert alert-danger row\" role=\"alert\" *ngIf=\"!isControlDisabled(i, 'confirm')\">\r\n This comment will be permanently deleted  \r\n <a href=\"#\" (click)=\"deleteComment(i)\" class=\"alert-link\">Accept </a>or<a\r\n href=\"#\"\r\n (click)=\"cancelDelete(i)\"\r\n class=\"alert-link\"\r\n > Cancel</a\r\n >\r\n </div>\r\n <div class=\"row divText\">\r\n <textarea\r\n *ngIf=\"!isControlDisabled(i, 'text')\"\r\n [ngClass]=\"{ edit: !isControlDisabled(i, 'text') }\"\r\n rows=\"5\"\r\n placeholder=\"Type here\"\r\n cols=\"60\"\r\n formControlName=\"text\"\r\n >{{ unitOpComments[i].text }}</textarea\r\n >\r\n <p class=\"comment\" *ngIf=\"isControlDisabled(i, 'text')\">\r\n {{ unitOpComments[i].text }}\r\n </p>\r\n </div>\r\n </div>\r\n <br />\r\n </div>\r\n </ng-container>\r\n </div>\r\n</div>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { UntypedFormArray, UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms';\r\nimport { CommentsService } from '../../_services/helpers/comments.service';\r\nimport { BaseObjectComment } from '../../_models/base-object-comment';\r\n\r\n@Component({\r\n selector: 'sob-unit-operation-comments',\r\n templateUrl: './unit-operation-comments.component.html',\r\n styleUrls: ['./unit-operation-comments.component.css'],\r\n})\r\nexport class UnitOperationCommentsComponent implements OnInit {\r\n @Input() unitOpId: string;\r\n commentsGroup: UntypedFormGroup;\r\n unitOpComments: BaseObjectComment[];\r\n\r\n constructor(private fb: UntypedFormBuilder, private commentsService: CommentsService) {}\r\n\r\n ngOnInit(): void {\r\n this.unitOpComments = this.commentsService.getCommentsByOwnerId(this.unitOpId);\r\n this.addControl();\r\n }\r\n\r\n addControl() {\r\n this.commentsGroup = this.fb.group({\r\n commentArea: this.fb.control('' || '', [Validators.required]),\r\n commentsArray: this.fb.array(this.fillArrayComments()),\r\n });\r\n }\r\n\r\n fillArrayComments() {\r\n return this.unitOpComments.map(dv => {\r\n return this.addCommentControl(dv);\r\n });\r\n }\r\n\r\n addCommentControl(comment: BaseObjectComment) {\r\n const control = this.fb.group({\r\n text: this.fb.control(comment.text),\r\n confirm: this.fb.control(''),\r\n });\r\n control.get('text').disable();\r\n control.get('confirm').disable();\r\n return control;\r\n }\r\n\r\n addComment() {\r\n const text = this.commentsGroup.get('commentArea').value;\r\n if (text) {\r\n const comment = this.commentsService.addComment(this.unitOpId, text); // inserting in pool\r\n const control = this.addCommentControl(comment);\r\n this.unitOpComments.unshift(comment); // inserting in array coments\r\n (this.commentsGroup.get('commentsArray') as UntypedFormArray).insert(0, control); // inserting in arrayControls\r\n this.commentsGroup.get('commentArea').reset();\r\n }\r\n }\r\n\r\n get commentsFormGroupArray() {\r\n const array = this.commentsGroup.get('commentsArray') as UntypedFormArray;\r\n return array.controls;\r\n }\r\n\r\n isControlDisabled(i: number, control: string) {\r\n return (this.commentsGroup.get('commentsArray') as UntypedFormArray).at(i).get(control).disabled;\r\n }\r\n\r\n isSameUser(userControl: string) {\r\n const serializedUser = localStorage.getItem('user');\r\n const currentUser = JSON.parse(serializedUser || '{}').userName;\r\n return currentUser === userControl;\r\n }\r\n\r\n enableTextArea(i: number) {\r\n const area = (this.commentsGroup.get('commentsArray') as UntypedFormArray).at(i).get('text');\r\n area.enable();\r\n }\r\n\r\n updateComment(i: number) {\r\n const newText = (this.commentsGroup.get('commentsArray') as UntypedFormArray).at(i).get('text').value;\r\n const comment = this.unitOpComments[i];\r\n this.commentsService.updateComment(comment, newText);\r\n (this.commentsGroup.get('commentsArray') as UntypedFormArray).at(i).get('text').disable();\r\n }\r\n\r\n confirmDelete(i: number) {\r\n this.updateComment(i);\r\n (this.commentsGroup.get('commentsArray') as UntypedFormArray).at(i).get('confirm').enable();\r\n }\r\n\r\n cancelDelete(i) {\r\n (this.commentsGroup.get('commentsArray') as UntypedFormArray).at(i).get('confirm').disable();\r\n }\r\n\r\n deleteComment(i: number) {\r\n const { id } = this.unitOpComments[i];\r\n this.commentsService.removeComment(id); // removing from pool\r\n this.unitOpComments.splice(i, 1); // removing from arraycoments\r\n (this.commentsGroup.get('commentsArray') as UntypedFormArray).removeAt(i); // removing from arrayControls\r\n }\r\n\r\n formatDate(date) {\r\n const padTo2Digits = num => num.toString().padStart(2, '0');\r\n return [padTo2Digits(date.getDate()), padTo2Digits(date.getMonth() + 1), date.getFullYear()].join('/');\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'keys',\r\n})\r\nexport class KeysPipe implements PipeTransform {\r\n transform(value: any, args?: any): any {\r\n return Object.keys(value);\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\nexport const $ = 23;\r\n\r\n@Pipe({\r\n name: 'titleCaseComposition',\r\n})\r\nexport class TitleCaseCompositionNamePipe implements PipeTransform {\r\n transform(compositionName: string): string {\r\n if (\r\n compositionName !== 'LGO' &&\r\n compositionName !== 'HGO' &&\r\n compositionName !== 'VGO' &&\r\n compositionName !== 'HVGO'\r\n ) {\r\n const compositionNameArray: string[] = compositionName.split(' ');\r\n const compositionNameTitleCase: string[] = [];\r\n for (let i = 0; i < compositionNameArray.length; i++) {\r\n const letterTitleCase = compositionNameArray[i].substr(0, 1).toUpperCase();\r\n compositionNameTitleCase[i] = letterTitleCase + compositionNameArray[i].substr(1);\r\n }\r\n\r\n return compositionNameTitleCase.join(' ');\r\n }\r\n\r\n return compositionName;\r\n }\r\n}\r\n","<div class=\"form-horizontal\">\r\n <div class=\"form-group\">\r\n <label for=\"typeDD\" class=\"pw-label control-label col-sm-4\"> Assay Name </label>\r\n <div class=\"col-sm-6\" id=\"typeDD\">\r\n <sob-assay-selector\r\n [fluidAnalyses]=\"fluidAnalyses\"\r\n [currentAnalysis]=\"currentAnalysis\"\r\n (updateCurrentAssay)=\"updateCurrentAnalysis($event)\"></sob-assay-selector>\r\n </div>\r\n </div>\r\n</div>\r\n<hr />\r\n<ul class=\"nav nav-tabs\" role=\"tablist\" style=\"margin-right: 15px; margin-top: 20px\">\r\n <li role=\"presentation\" class=\"active\">\r\n <a href=\"#blockSpecifications\" aria-controls=\"blockSpecifications\" role=\"tab\" data-toggle=\"tab\">General</a>\r\n </li>\r\n\r\n <li *ngIf=\"currentAnalysis\" role=\"presentation\">\r\n <a href=\"#fluidCharacterization\" aria-controls=\"fluidCharacterization\" role=\"tab\" data-toggle=\"tab\">Fluid</a>\r\n </li>\r\n <li role=\"presentation\">\r\n <a href=\"#economics\" aria-controls=\"economics\" role=\"tab\" data-toggle=\"tab\">Economics</a>\r\n </li>\r\n <li role=\"presentation\">\r\n <a href=\"#constraints\" aria-controls=\"constraints\" role=\"tab\" data-toggle=\"tab\">Constraints</a>\r\n </li>\r\n\r\n <li role=\"presentation\">\r\n <a href=\"#diluentSourceComments\" aria-controls=\"diluentSourceComments\" role=\"tab\" data-toggle=\"tab\">\r\n <i class=\"fa fa-comments fa-lg\" aria-hidden=\"true\"> </i>\r\n Comments\r\n </a>\r\n </li>\r\n</ul>\r\n\r\n<div class=\"tab-content pw-margin tab-content-padding\">\r\n <div role=\"tabpanel\" class=\"tab-pane fade in active\" id=\"blockSpecifications\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <div class=\"form-horizontal\">\r\n <div class=\"form-group\">\r\n <label for=\"isOptimizable\" class=\"control-label col-sm-4\"> Optimize </label>\r\n <div class=\"col-sm-4\">\r\n <label class=\"control-label\">\r\n <input\r\n type=\"checkbox\"\r\n id=\"isOptimizable\"\r\n [(ngModel)]=\"unitOperation.isOptimizable\"\r\n (change)=\"isOptimizableChanged($event.target.checked)\" />\r\n </label>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'volumetricFlowrate'\" class=\"pw-label control-label col-sm-4\"> Volumetric Flowrate </label>\r\n <sim-var-input\r\n [inputId]=\"'volumetricFlowrate'\"\r\n [simVar]=\"unitOperation.volumetricFlowrate\"\r\n [disabled]=\"unitOperation.isOptimizable\"></sim-var-input>\r\n </div>\r\n\r\n <hr />\r\n <h4 class=\"subtitle\">GHG</h4>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'ghgIntensity'\" class=\"pw-label control-label col-sm-4\"> GHG Intensity </label>\r\n <sim-var-input [inputId]=\"'ghgIntensity'\" [simVar]=\"unitOperation.ghgIntensity\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'ghgEmissions'\" class=\"pw-label control-label col-sm-4\"> GHG Emissions </label>\r\n <sim-var-input\r\n [inputId]=\"'ghgEmissions'\"\r\n [readOnly]=\"true\"\r\n [simVar]=\"unitOperation.ghgEmissions\"></sim-var-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"currentAnalysis\" role=\"tabpanel\" class=\"tab-pane fade in\" id=\"fluidCharacterization\">\r\n <ul class=\"nav nav-pills\" role=\"tablist\" style=\"margin-right: 15px\">\r\n <li role=\"presentation\" class=\"active\">\r\n <a href=\"#bulkProperties\" aria-controls=\"bulkProperties\" role=\"tab\" data-toggle=\"tab\">Bulk Properties</a>\r\n </li>\r\n\r\n <li role=\"presentation\">\r\n <a href=\"#cutProperties\" aria-controls=\"cutProperties\" role=\"tab\" data-toggle=\"tab\">Cut Properties</a>\r\n </li>\r\n <li role=\"presentation\">\r\n <a href=\"#compositionUO\" aria-controls=\"compositionUO\" role=\"tab\" data-toggle=\"tab\">Composition</a>\r\n </li>\r\n </ul>\r\n <div class=\"tab-content pw-margin tab-content-padding\">\r\n <div role=\"tabpanel\" class=\"tab-pane fade in active\" id=\"bulkProperties\">\r\n <div class=\"form-horizontal\">\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'fluidAnalysisMassDensity'\" class=\"pw-label control-label col-sm-4\">\r\n Mass Density\r\n </label>\r\n <sim-var-input\r\n [inputId]=\"'fluidAnalysisMassDensity'\"\r\n [readOnly]=\"true\"\r\n [simVar]=\"currentAnalysis.massDensity\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'fluidAnalysisCcr'\" class=\"pw-label control-label col-sm-4\"> CCR </label>\r\n <sim-var-input\r\n [inputId]=\"'fluidAnalysisCcr'\"\r\n [readOnly]=\"true\"\r\n [simVar]=\"currentAnalysis.ccr\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'fluidAnalysisSulfur'\" class=\"pw-label control-label col-sm-4\"> Sulfur </label>\r\n <sim-var-input\r\n [inputId]=\"'fluidAnalysisSulfur'\"\r\n [readOnly]=\"true\"\r\n [simVar]=\"currentAnalysis.sulfur\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'fluidAnalysisNitrogen'\" class=\"pw-label control-label col-sm-4\"> Nitrogen </label>\r\n <sim-var-input\r\n [inputId]=\"'fluidAnalysisNitrogen'\"\r\n [readOnly]=\"true\"\r\n [simVar]=\"currentAnalysis.nitrogen\"></sim-var-input>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"cutProperties\">\r\n <sob-cut-properties [readonly]=\"true\" [fluidAnalysis]=\"currentAnalysis\"></sob-cut-properties>\r\n </div>\r\n <div *ngIf=\"currentAnalysis\" role=\"tabpanel\" class=\"tab-pane fade in\" id=\"compositionUO\">\r\n <div class=\"form-horizontal\" sfeMultipleSimVarInput totalOutputId=\"compositionTotalUO\">\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'compositionUnit'\" class=\"pw-label control-label col-sm-4\"> Unit </label>\r\n\r\n <div class=\"col-sm-4\">\r\n <sfe-unit-select\r\n [selectId]=\"'compositionUnit' + unitOperation.id\"\r\n [simVar]=\"currentAnalysis.composition[0]\"\r\n [disabled]=\"true\"\r\n [elClass]=\"'form-control'\"></sfe-unit-select>\r\n </div>\r\n </div>\r\n\r\n <ng-container *ngFor=\"let idx of currentAnalysis.composition | keys\">\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'composition' + idx\" class=\"pw-label control-label col-sm-4\">\r\n {{ currentAnalysis.composition[idx].name | titleCaseComposition }}\r\n </label>\r\n <div class=\"col-sm-4\">\r\n <sfe-value-input\r\n [simVar]=\"currentAnalysis.composition[idx]\"\r\n [elClass]=\"'form-control'\"\r\n [inputId]=\"'composition' + idx\"\r\n [multiple]=\"true\"\r\n [readOnlyValue]=\"true\"\r\n [disabled]=\"true\"\r\n [convertedBy]=\"'compositionUnit'\">\r\n </sfe-value-input>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <div class=\"form-group\">\r\n <label class=\"pw-label control-label col-sm-4\">Total</label>\r\n <div class=\"col-sm-4\">\r\n <input type=\"text\" class=\"form-control\" id=\"compositionTotalUO\" readonly />\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"economics\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <div class=\"form-horizontal\">\r\n <h4 class=\"subtitle\">OPEX</h4>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'price'\" class=\"pw-label control-label col-sm-4\"> Premium/Discount to WTI </label>\r\n <sim-var-input\r\n [inputId]=\"'premiumDiscountToWTI'\"\r\n [simVar]=\"unitOperation.premiumDiscountToWTI\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'opexCarbonDioxide'\" class=\"pw-label control-label col-sm-4\"> CO2 </label>\r\n <sim-var-input\r\n [inputId]=\"'opexCarbonDioxide'\"\r\n [simVar]=\"unitOperation.opexCarbonDioxide\"\r\n [readOnly]=\"true\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'price'\" class=\"pw-label control-label col-sm-4\"> Diluent Price </label>\r\n <sim-var-input [inputId]=\"'price'\" [simVar]=\"unitOperation.price\" [readOnly]=\"true\"></sim-var-input>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'opexTotal'\" class=\"pw-label control-label col-sm-4\"> Total </label>\r\n <sim-var-input [inputId]=\"'opexTotal'\" [simVar]=\"unitOperation.opexTotal\" [readOnly]=\"true\"></sim-var-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"constraints\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <p style=\"text-align: right; position: relative\">\r\n <span style=\"position: absolute; right: -25px; top: -20px; font-weight: bold\">Active</span>\r\n </p>\r\n <div class=\"form-horizontal\">\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'capacity'\" class=\"pw-label control-label col-sm-4\"> Maximum Flow Rate </label>\r\n <sim-var-input [inputId]=\"'capacity'\" [isConstraint]=\"true\" [simVar]=\"unitOperation.capacity\"></sim-var-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"diluentSourceComments\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <sob-unit-operation-comments [unitOpId]=\"this.unitOperation.id\"></sob-unit-operation-comments>\r\n </div>\r\n </div>\r\n</div>\r\n","import { ChangeDetectorRef, Component, Input, OnInit } from '@angular/core';\r\nimport { DiluentSource } from '../../../_models/_unit-operations/diluent-source';\r\nimport { CoreService } from '../../../_services/core.service';\r\nimport { SuncorFluidAnalysis } from '../../../_models/_fluid/suncor-fluid-analysis';\r\n\r\n@Component({\r\n selector: 'sob-diluent-source',\r\n templateUrl: './diluent-source.component.html',\r\n styleUrls: ['./diluent-source.component.css'],\r\n})\r\nexport class DiluentSourceComponent implements OnInit {\r\n @Input()\r\n unitOperation: DiluentSource;\r\n\r\n currentAnalysis: SuncorFluidAnalysis;\r\n\r\n constructor(private coreService: CoreService, private ref: ChangeDetectorRef) {}\r\n\r\n ngOnInit() {\r\n this.updateCurrentAnalysis();\r\n }\r\n\r\n isOptimizableChanged(checked: boolean) {\r\n if (checked) {\r\n this.unitOperation.volumetricFlowrate.value = null;\r\n }\r\n }\r\n\r\n get fluidAnalyses() {\r\n return this.coreService.currentCase.assayManager.getAssaysByCategory('Diluent');\r\n }\r\n\r\n updateCurrentAnalysis(id?) {\r\n if (id) {\r\n this.unitOperation.fluidAnalysisId = id;\r\n }\r\n if (this.unitOperation.fluidAnalysisId) {\r\n this.currentAnalysis = this.coreService.currentCase.assayManager.findFluidAnalysisById(\r\n this.unitOperation.fluidAnalysisId\r\n );\r\n this.assayChanged();\r\n }\r\n }\r\n\r\n assayChanged() {\r\n const cuts = [\r\n 'lightEndsCut',\r\n 'lightNaphthaCut',\r\n 'heavyNaphthaCut',\r\n 'distillateCut',\r\n 'LGOCut',\r\n 'HGOCut',\r\n 'VGOCut',\r\n 'HVGOCut',\r\n 'residCut',\r\n ];\r\n const simvarNames = ['sulfur', 'anilinePoint', 'massDensity', 'nitrogen', 'ccr'];\r\n for (const cutId of cuts) {\r\n for (const simvarName of simvarNames) {\r\n const simVar = this.currentAnalysis[cutId][simvarName];\r\n const $field = `#${cutId}${simvarName}`;\r\n $($field).val(simVar.convertToCaptureUnit(true));\r\n $(`${$field}Unit`).val(simVar.unit);\r\n $($field).change();\r\n }\r\n }\r\n $(`#compositionUnit${this.unitOperation.id}`).val(this.currentAnalysis.composition[0].unit);\r\n let total = 0;\r\n for (let i = 0; i < this.currentAnalysis.composition.length; i++) {\r\n const simVar = this.currentAnalysis.composition[i];\r\n total += simVar.convertToCaptureUnit(true);\r\n $(`#composition${i}`).val(simVar.convertToCaptureUnit(true));\r\n }\r\n $('#compositionTotalUO').val(total);\r\n\r\n $('#fluidAnalysisMassDensity').val(this.currentAnalysis.massDensity.convertToCaptureUnit(true));\r\n $('#fluidAnalysisMassDensityUnit').val(this.currentAnalysis.massDensity.unit);\r\n $('#fluidAnalysisMassDensity').change();\r\n\r\n $('#fluidAnalysisCcr').val(this.currentAnalysis.ccr.convertToCaptureUnit(true));\r\n $('#fluidAnalysisCcrUnit').val(this.currentAnalysis.ccr.unit);\r\n $('#fluidAnalysisCcr').change();\r\n\r\n $('#fluidAnalysisSulfur').val(this.currentAnalysis.sulfur.convertToCaptureUnit(true));\r\n $('#fluidAnalysisSulfurUnit').val(this.currentAnalysis.sulfur.unit);\r\n $('#fluidAnalysisSulfur').change();\r\n\r\n $('#fluidAnalysisNitrogen').val(this.currentAnalysis.nitrogen.convertToCaptureUnit(true));\r\n $('#fluidAnalysisNitrogenUnit').val(this.currentAnalysis.nitrogen.unit);\r\n $('#fluidAnalysisNitrogen').change();\r\n }\r\n}\r\n","<div class=\"form-horizontal\">\r\n <div class=\"form-group\">\r\n <label for=\"typeDD\" class=\"pw-label control-label col-sm-4\"> Assay Name </label>\r\n <div class=\"col-sm-6\" id=\"typeDD\">\r\n <sob-assay-selector\r\n [fluidAnalyses]=\"fluidAnalyses\"\r\n [currentAnalysis]=\"currentAnalysis\"\r\n (updateCurrentAssay)=\"updateCurrentAnalysis($event)\"></sob-assay-selector>\r\n </div>\r\n </div>\r\n</div>\r\n<hr />\r\n<ul class=\"nav nav-tabs\" role=\"tablist\" style=\"margin-right: 15px; margin-top: 20px\">\r\n <li role=\"presentation\" class=\"active\">\r\n <a href=\"#blockSpecifications\" aria-controls=\"blockSpecifications\" role=\"tab\" data-toggle=\"tab\">General</a>\r\n </li>\r\n <li *ngIf=\"currentAnalysis\" role=\"presentation\">\r\n <a href=\"#fluidCharacterization\" aria-controls=\"fluidCharacterization\" role=\"tab\" data-toggle=\"tab\">Fluid</a>\r\n </li>\r\n <li role=\"presentation\">\r\n <a href=\"#economics\" aria-controls=\"economics\" role=\"tab\" data-toggle=\"tab\">Economics</a>\r\n </li>\r\n <li role=\"presentation\">\r\n <a href=\"#constraints\" aria-controls=\"constraints\" role=\"tab\" data-toggle=\"tab\">Constraints</a>\r\n </li>\r\n\r\n <li role=\"presentation\">\r\n <a href=\"#mineSourceComments\" aria-controls=\"mineSourceComments\" role=\"tab\" data-toggle=\"tab\">\r\n <i class=\"fa fa-comments fa-lg\" aria-hidden=\"true\"> </i>\r\n Comments\r\n </a>\r\n </li>\r\n</ul>\r\n\r\n<div class=\"tab-content pw-margin tab-content-padding\">\r\n <div role=\"tabpanel\" class=\"tab-pane fade in active\" id=\"blockSpecifications\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <div class=\"form-horizontal\">\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'volumetricFlowrate'\" class=\"pw-label control-label col-sm-4\"> Volumetric Flowrate </label>\r\n <sim-var-input [inputId]=\"'volumetricFlowrate'\" [simVar]=\"unitOperation.volumetricFlowrate\"></sim-var-input>\r\n </div>\r\n\r\n <hr />\r\n <h4 class=\"subtitle\">GHG</h4>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'ghgIntensity'\" class=\"pw-label control-label col-sm-4\"> GHG Intensity </label>\r\n <sim-var-input [inputId]=\"'ghgIntensity'\" [simVar]=\"unitOperation.ghgIntensity\"></sim-var-input>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'absoluteGhgEmissions'\" class=\"pw-label control-label col-sm-4\">\r\n Absolute GHG Emissions\r\n </label>\r\n <sim-var-input\r\n [inputId]=\"'absoluteGhgEmissions'\"\r\n [readOnly]=\"true\"\r\n [simVar]=\"unitOperation.absoluteGhgEmissions\"></sim-var-input>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'ghgEmissions'\" class=\"pw-label control-label col-sm-4\"> GHG Emissions </label>\r\n <sim-var-input\r\n [inputId]=\"'ghgEmissions'\"\r\n [readOnly]=\"true\"\r\n [simVar]=\"unitOperation.ghgEmissions\"></sim-var-input>\r\n </div>\r\n\r\n <hr />\r\n <h4 class=\"subtitle\">Cogen</h4>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'cogenElectricityGeneration'\" class=\"pw-label control-label col-sm-4\">\r\n Total Cogen Electricity\r\n </label>\r\n <sim-var-input\r\n [inputId]=\"'cogenElectricityGeneration'\"\r\n [simVar]=\"unitOperation.cogenElectricityGeneration\"></sim-var-input>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'netElectricityExport'\" class=\"pw-label control-label col-sm-4\">\r\n Net Electricity Export\r\n </label>\r\n <sim-var-input\r\n [inputId]=\"'netElectricityExport'\"\r\n [simVar]=\"unitOperation.netElectricityExport\"></sim-var-input>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'cogenIntensity'\" class=\"pw-label control-label col-sm-4\"> Cogen Intensity </label>\r\n <sim-var-input [inputId]=\"'cogenIntensity'\" [simVar]=\"unitOperation.cogenIntensity\"></sim-var-input>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'gridIntensity'\" class=\"pw-label control-label col-sm-4\"> Grid Intensity </label>\r\n <sim-var-input [inputId]=\"'gridIntensity'\" [simVar]=\"unitOperation.gridIntensity\"></sim-var-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"economics\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <div class=\"form-horizontal\">\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'price'\" class=\"pw-label control-label col-sm-4\"> Price </label>\r\n <sim-var-input [inputId]=\"'price'\" [simVar]=\"unitOperation.price\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'electricityPrice'\" class=\"pw-label control-label col-sm-4\"> Electricity Price </label>\r\n <sim-var-input [inputId]=\"'electricityPrice'\" [simVar]=\"unitOperation.electricityPrice\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'revenue'\" class=\"pw-label control-label col-sm-4\"> Revenue </label>\r\n <sim-var-input [inputId]=\"'revenue'\" [simVar]=\"unitOperation.revenue\" [readOnly]=\"true\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'unitValue'\" class=\"pw-label control-label col-sm-4\"> Before Tax Cash Flow </label>\r\n <sim-var-input [inputId]=\"'unitValue'\" [simVar]=\"unitOperation.unitValue\" [readOnly]=\"true\"></sim-var-input>\r\n </div>\r\n <hr />\r\n <h4 class=\"subtitle\">OPEX</h4>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'opexVar'\" class=\"pw-label control-label col-sm-4\"> Variable </label>\r\n <sim-var-input [inputId]=\"'opexVar'\" [simVar]=\"unitOperation.opexVar\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'opexGasDiesel'\" class=\"pw-label control-label col-sm-4\"> Gas Diesel </label>\r\n <sim-var-input [inputId]=\"'opexGasDiesel'\" [simVar]=\"unitOperation.opexGasDiesel\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'opexPower'\" class=\"pw-label control-label col-sm-4\"> Power </label>\r\n <sim-var-input [inputId]=\"'opexPower'\" [simVar]=\"unitOperation.opexPower\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'opexCarbonDioxide'\" class=\"pw-label control-label col-sm-4\"> CO2 </label>\r\n <sim-var-input\r\n [inputId]=\"'opexCarbonDioxide'\"\r\n [simVar]=\"unitOperation.opexCarbonDioxide\"\r\n [readOnly]=\"true\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'opexFixed'\" class=\"pw-label control-label col-sm-4\"> Fixed </label>\r\n <sim-var-input [inputId]=\"'opexFixed'\" [simVar]=\"unitOperation.opexFixed\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'opexTotal'\" class=\"pw-label control-label col-sm-4\"> Total </label>\r\n <sim-var-input [inputId]=\"'opexTotal'\" [simVar]=\"unitOperation.opexTotal\" [readOnly]=\"true\"></sim-var-input>\r\n </div>\r\n\r\n <hr />\r\n <h4 class=\"subtitle\">CAPEX</h4>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'capexAmortized'\" class=\"pw-label control-label col-sm-4\"> Amortized CAPEX </label>\r\n <sim-var-input [inputId]=\"'capexAmortized'\" [simVar]=\"unitOperation.capexAmortized\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'capexTotal'\" class=\"pw-label control-label col-sm-4\"> Total </label>\r\n <sim-var-input [inputId]=\"'capexTotal'\" [simVar]=\"unitOperation.capexTotal\" [readOnly]=\"true\"></sim-var-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"currentAnalysis\" role=\"tabpanel\" class=\"tab-pane fade in\" id=\"fluidCharacterization\">\r\n <ul class=\"nav nav-pills\" role=\"tablist\" style=\"margin-right: 15px\">\r\n <li role=\"presentation\" class=\"active\">\r\n <a href=\"#bulkProperties\" aria-controls=\"bulkProperties\" role=\"tab\" data-toggle=\"tab\">Bulk Properties</a>\r\n </li>\r\n\r\n <li role=\"presentation\">\r\n <a href=\"#cutProperties\" aria-controls=\"cutProperties\" role=\"tab\" data-toggle=\"tab\">Cut Properties</a>\r\n </li>\r\n <li role=\"presentation\">\r\n <a href=\"#compositionUO\" aria-controls=\"composition\" role=\"tab\" data-toggle=\"tab\">Composition</a>\r\n </li>\r\n </ul>\r\n\r\n <div class=\"tab-content pw-margin tab-content-padding\">\r\n <div role=\"tabpanel\" class=\"tab-pane fade in active\" id=\"bulkProperties\">\r\n <div class=\"form-horizontal\">\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'fluidAnalysisMassDensity'\" class=\"pw-label control-label col-sm-4\">\r\n Mass Density\r\n </label>\r\n <sim-var-input\r\n [inputId]=\"'fluidAnalysisMassDensity'\"\r\n [readOnly]=\"true\"\r\n [simVar]=\"currentAnalysis.massDensity\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'fluidAnalysisCcr'\" class=\"pw-label control-label col-sm-4\"> CCR </label>\r\n <sim-var-input\r\n [inputId]=\"'fluidAnalysisCcr'\"\r\n [readOnly]=\"true\"\r\n [simVar]=\"currentAnalysis.ccr\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'fluidAnalysisSulfur'\" class=\"pw-label control-label col-sm-4\"> Sulfur </label>\r\n <sim-var-input\r\n [inputId]=\"'fluidAnalysisSulfur'\"\r\n [readOnly]=\"true\"\r\n [simVar]=\"currentAnalysis.sulfur\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'fluidAnalysisNitrogen'\" class=\"pw-label control-label col-sm-4\"> Nitrogen </label>\r\n <sim-var-input\r\n [inputId]=\"'fluidAnalysisNitrogen'\"\r\n [readOnly]=\"true\"\r\n [simVar]=\"currentAnalysis.nitrogen\"></sim-var-input>\r\n </div>\r\n </div>\r\n </div>\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"cutProperties\">\r\n <sob-cut-properties [readonly]=\"true\" [fluidAnalysis]=\"currentAnalysis\"></sob-cut-properties>\r\n </div>\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"compositionUO\">\r\n <div class=\"form-horizontal\" sfeMultipleSimVarInput totalOutputId=\"compositionTotalUO\">\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'compositionUnit'\" class=\"pw-label control-label col-sm-4\"> Unit </label>\r\n\r\n <div class=\"col-sm-4\">\r\n <sfe-unit-select\r\n [selectId]=\"'compositionUnit' + unitOperation.id\"\r\n [simVar]=\"currentAnalysis.composition[0]\"\r\n [disabled]=\"true\"\r\n [elClass]=\"'form-control'\"></sfe-unit-select>\r\n </div>\r\n </div>\r\n\r\n <ng-container *ngFor=\"let idx of currentAnalysis.composition | keys\">\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'composition' + idx\" class=\"pw-label control-label col-sm-4\">\r\n {{ currentAnalysis.composition[idx].name | titleCaseComposition }}\r\n </label>\r\n <div class=\"col-sm-4\">\r\n <sfe-value-input\r\n [simVar]=\"currentAnalysis.composition[idx]\"\r\n [elClass]=\"'form-control'\"\r\n [inputId]=\"'composition' + idx\"\r\n [multiple]=\"true\"\r\n [readOnlyValue]=\"true\"\r\n [disabled]=\"true\"\r\n [convertedBy]=\"'compositionUnit'\">\r\n </sfe-value-input>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <div class=\"form-group\">\r\n <label class=\"pw-label control-label col-sm-4\">Total</label>\r\n <div class=\"col-sm-4\">\r\n <input type=\"text\" class=\"form-control\" id=\"compositionTotalUO\" readonly />\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"constraints\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <p style=\"text-align: right; position: relative\">\r\n <span style=\"position: absolute; right: -25px; top: -20px; font-weight: bold\">Active</span>\r\n </p>\r\n <div class=\"form-horizontal\">\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'capacity'\" class=\"pw-label control-label col-sm-4\"> Maximum Flow Rate </label>\r\n <sim-var-input [inputId]=\"'capacity'\" [isConstraint]=\"true\" [simVar]=\"unitOperation.capacity\"></sim-var-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"mineSourceComments\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <sob-unit-operation-comments [unitOpId]=\"this.unitOperation.id\"></sob-unit-operation-comments>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { MineSource } from '../../../_models/_unit-operations/mine-source';\r\nimport { CoreService } from '../../../_services/core.service';\r\nimport { SuncorFluidAnalysis } from '../../../_models/_fluid/suncor-fluid-analysis';\r\n\r\n@Component({\r\n selector: 'sob-mine-source',\r\n templateUrl: './mine-source.component.html',\r\n styleUrls: ['./mine-source.component.css'],\r\n})\r\nexport class MineSourceComponent implements OnInit {\r\n @Input() unitOperation: MineSource;\r\n currentAnalysis: SuncorFluidAnalysis;\r\n\r\n constructor(private coreService: CoreService) {}\r\n\r\n ngOnInit() {\r\n this.updateCurrentAnalysis();\r\n }\r\n\r\n get fluidAnalyses() {\r\n return this.coreService.currentCase.assayManager.getAssaysByCategory('Crude oil - Bitumen');\r\n }\r\n\r\n updateCurrentAnalysis(id?): void {\r\n if (id) {\r\n this.unitOperation.fluidAnalysisId = id;\r\n }\r\n\r\n if (this.unitOperation.fluidAnalysisId) {\r\n this.currentAnalysis = this.coreService.currentCase.assayManager.findFluidAnalysisById(\r\n this.unitOperation.fluidAnalysisId\r\n );\r\n this.assayChanged();\r\n }\r\n }\r\n\r\n assayChanged(): void {\r\n const cuts = [\r\n 'lightEndsCut',\r\n 'lightNaphthaCut',\r\n 'heavyNaphthaCut',\r\n 'distillateCut',\r\n 'LGOCut',\r\n 'HGOCut',\r\n 'VGOCut',\r\n 'HVGOCut',\r\n 'residCut',\r\n ];\r\n\r\n const simVarNames = ['sulfur', 'anilinePoint', 'massDensity', 'nitrogen', 'ccr'];\r\n\r\n for (const cutId of cuts) {\r\n for (const simVarName of simVarNames) {\r\n const simVar = this.currentAnalysis[cutId][simVarName];\r\n const $field = `#${cutId}${simVarName}`;\r\n $($field).val(simVar.convertToCaptureUnit(true));\r\n $(`${$field}Unit`).val(simVar.unit);\r\n $($field).change();\r\n }\r\n }\r\n\r\n $(`#compositionUnit${this.unitOperation.id}`).val(this.currentAnalysis.composition[0].unit);\r\n let total = 0;\r\n for (let i = 0; i < this.currentAnalysis.composition.length; i++) {\r\n const simVar = this.currentAnalysis.composition[i];\r\n total += simVar.convertToCaptureUnit(true);\r\n $(`#composition${i}`).val(simVar.convertToCaptureUnit(true));\r\n }\r\n\r\n $('#compositionTotalUO').val(total);\r\n\r\n $('#fluidAnalysisMassDensity').val(this.currentAnalysis.massDensity.convertToCaptureUnit(true));\r\n $('#fluidAnalysisMassDensityUnit').val(this.currentAnalysis.massDensity.unit);\r\n $('#fluidAnalysisMassDensity').change();\r\n\r\n $('#fluidAnalysisCcr').val(this.currentAnalysis.ccr.convertToCaptureUnit(true));\r\n $('#fluidAnalysisCcrUnit').val(this.currentAnalysis.ccr.unit);\r\n $('#fluidAnalysisCcr').change();\r\n\r\n $('#fluidAnalysisSulfur').val(this.currentAnalysis.sulfur.convertToCaptureUnit(true));\r\n $('#fluidAnalysisSulfurUnit').val(this.currentAnalysis.sulfur.unit);\r\n $('#fluidAnalysisSulfur').change();\r\n\r\n $('#fluidAnalysisNitrogen').val(this.currentAnalysis.nitrogen.convertToCaptureUnit(true));\r\n $('#fluidAnalysisNitrogenUnit').val(this.currentAnalysis.nitrogen.unit);\r\n $('#fluidAnalysisNitrogen').change();\r\n }\r\n}\r\n","<div class=\"form-horizontal\">\r\n <div class=\"form-group\">\r\n <label for=\"typeDD\" class=\"pw-label control-label col-sm-4\"> Assay Name </label>\r\n <div class=\"col-sm-6\" id=\"typeDD\">\r\n <sob-assay-selector\r\n [fluidAnalyses]=\"fluidAnalyses\"\r\n [currentAnalysis]=\"currentAnalysis\"\r\n (updateCurrentAssay)=\"updateCurrentAnalysis($event)\"></sob-assay-selector>\r\n </div>\r\n </div>\r\n</div>\r\n<hr />\r\n<ul class=\"nav nav-tabs\" role=\"tablist\" style=\"margin-right: 15px; margin-top: 20px\">\r\n <li role=\"presentation\" class=\"active\">\r\n <a href=\"#blockSpecifications\" aria-controls=\"blockSpecifications\" role=\"tab\" data-toggle=\"tab\">General</a>\r\n </li>\r\n\r\n <li *ngIf=\"currentAnalysis\" role=\"presentation\">\r\n <a href=\"#fluidCharacterization\" aria-controls=\"fluidCharacterization\" role=\"tab\" data-toggle=\"tab\">Fluid</a>\r\n </li>\r\n\r\n <li role=\"presentation\">\r\n <a href=\"#economics\" aria-controls=\"economics\" role=\"tab\" data-toggle=\"tab\">Economics</a>\r\n </li>\r\n\r\n <li role=\"presentation\">\r\n <a href=\"#constraints\" aria-controls=\"constraints\" role=\"tab\" data-toggle=\"tab\">Constraints</a>\r\n </li>\r\n\r\n <li role=\"presentation\">\r\n <a href=\"#sagdSourceComments\" aria-controls=\"sagdSourceComments\" role=\"tab\" data-toggle=\"tab\">\r\n <i class=\"fa fa-comments fa-lg\" aria-hidden=\"true\"></i>\r\n Comments\r\n </a>\r\n </li>\r\n</ul>\r\n\r\n<div class=\"tab-content pw-margin tab-content-padding\">\r\n <div role=\"tabpanel\" class=\"tab-pane fade in active\" id=\"blockSpecifications\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <div class=\"form-horizontal\">\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'volumetricFlowrate'\" class=\"pw-label control-label col-sm-4\"> Volumetric Flowrate </label>\r\n <sim-var-input [inputId]=\"'volumetricFlowrate'\" [simVar]=\"unitOperation.volumetricFlowrate\"></sim-var-input>\r\n </div>\r\n\r\n <hr />\r\n\r\n <h4 class=\"subtitle\">GHG</h4>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'ghgIntensity'\" class=\"pw-label control-label col-sm-4\"> GHG Intensity </label>\r\n <sim-var-input [inputId]=\"'ghgIntensity'\" [simVar]=\"unitOperation.ghgIntensity\"></sim-var-input>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'absoluteGhgEmissions'\" class=\"pw-label control-label col-sm-4\">\r\n Absolute GHG Emissions\r\n </label>\r\n <sim-var-input\r\n [inputId]=\"'absoluteGhgEmissions'\"\r\n [readOnly]=\"true\"\r\n [simVar]=\"unitOperation.absoluteGhgEmissions\"></sim-var-input>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'ghgEmissions'\" class=\"pw-label control-label col-sm-4\"> GHG Emissions </label>\r\n <sim-var-input\r\n [inputId]=\"'ghgEmissions'\"\r\n [simVar]=\"unitOperation.ghgEmissions\"\r\n [readOnly]=\"true\"></sim-var-input>\r\n </div>\r\n\r\n <hr />\r\n\r\n <h4 class=\"subtitle\">Cogen</h4>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'cogenElectricityGeneration'\" class=\"pw-label control-label col-sm-4\">\r\n Total Cogen Electricity\r\n </label>\r\n <sim-var-input\r\n [inputId]=\"'cogenElectricityGeneration'\"\r\n [simVar]=\"unitOperation.cogenElectricityGeneration\"></sim-var-input>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'netElectricityExport'\" class=\"pw-label control-label col-sm-4\">\r\n Net Electricity Export\r\n </label>\r\n <sim-var-input\r\n [inputId]=\"'netElectricityExport'\"\r\n [simVar]=\"unitOperation.netElectricityExport\"></sim-var-input>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'cogenIntensity'\" class=\"pw-label control-label col-sm-4\"> Cogen Intensity </label>\r\n <sim-var-input [inputId]=\"'cogenIntensity'\" [simVar]=\"unitOperation.cogenIntensity\"></sim-var-input>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'gridIntensity'\" class=\"pw-label control-label col-sm-4\"> Grid Intensity </label>\r\n <sim-var-input [inputId]=\"'gridIntensity'\" [simVar]=\"unitOperation.gridIntensity\"></sim-var-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"currentAnalysis\" role=\"tabpanel\" class=\"tab-pane fade in\" id=\"fluidCharacterization\">\r\n <ul class=\"nav nav-pills\" role=\"tablist\" style=\"margin-right: 15px\">\r\n <li role=\"presentation\" class=\"active\">\r\n <a href=\"#bulkProperties\" aria-controls=\"bulkProperties\" role=\"tab\" data-toggle=\"tab\">Bulk Properties</a>\r\n </li>\r\n\r\n <li role=\"presentation\">\r\n <a href=\"#cutProperties\" aria-controls=\"cutProperties\" role=\"tab\" data-toggle=\"tab\">Cut Properties</a>\r\n </li>\r\n <li role=\"presentation\">\r\n <a href=\"#compositionUO\" aria-controls=\"composition\" role=\"tab\" data-toggle=\"tab\">Composition</a>\r\n </li>\r\n </ul>\r\n <div class=\"tab-content pw-margin tab-content-padding\">\r\n <div role=\"tabpanel\" class=\"tab-pane fade in active\" id=\"bulkProperties\">\r\n <div class=\"form-horizontal\">\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'fluidAnalysisMassDensity'\" class=\"pw-label control-label col-sm-4\">\r\n Mass Density\r\n </label>\r\n <sim-var-input\r\n [inputId]=\"'fluidAnalysisMassDensity'\"\r\n [readOnly]=\"true\"\r\n [simVar]=\"currentAnalysis.massDensity\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'fluidAnalysisCcr'\" class=\"pw-label control-label col-sm-4\"> CCR </label>\r\n <sim-var-input\r\n [inputId]=\"'fluidAnalysisCcr'\"\r\n [readOnly]=\"true\"\r\n [simVar]=\"currentAnalysis.ccr\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'fluidAnalysisSulfur'\" class=\"pw-label control-label col-sm-4\"> Sulfur </label>\r\n <sim-var-input\r\n [inputId]=\"'fluidAnalysisSulfur'\"\r\n [readOnly]=\"true\"\r\n [simVar]=\"currentAnalysis.sulfur\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'fluidAnalysisNitrogen'\" class=\"pw-label control-label col-sm-4\"> Nitrogen </label>\r\n <sim-var-input\r\n [inputId]=\"'fluidAnalysisNitrogen'\"\r\n [readOnly]=\"true\"\r\n [simVar]=\"currentAnalysis.nitrogen\"></sim-var-input>\r\n </div>\r\n </div>\r\n </div>\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"cutProperties\">\r\n <sob-cut-properties [readonly]=\"true\" [fluidAnalysis]=\"currentAnalysis\"></sob-cut-properties>\r\n </div>\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"compositionUO\">\r\n <div class=\"form-horizontal\" sfeMultipleSimVarInput totalOutputId=\"compositionTotalUO\">\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'compositionUnit'\" class=\"pw-label control-label col-sm-4\"> Unit </label>\r\n\r\n <div class=\"col-sm-4\">\r\n <sfe-unit-select\r\n [selectId]=\"'compositionUnit' + unitOperation.id\"\r\n [simVar]=\"currentAnalysis.composition[0]\"\r\n [disabled]=\"true\"\r\n [elClass]=\"'form-control'\"></sfe-unit-select>\r\n </div>\r\n </div>\r\n\r\n <ng-container *ngFor=\"let idx of currentAnalysis.composition | keys\">\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'composition' + idx\" class=\"pw-label control-label col-sm-4\">\r\n {{ currentAnalysis.composition[idx].name | titleCaseComposition }}\r\n </label>\r\n <div class=\"col-sm-4\">\r\n <sfe-value-input\r\n [simVar]=\"currentAnalysis.composition[idx]\"\r\n [elClass]=\"'form-control'\"\r\n [inputId]=\"'composition' + idx\"\r\n [multiple]=\"true\"\r\n [readOnlyValue]=\"true\"\r\n [disabled]=\"true\"\r\n [convertedBy]=\"'compositionUnit'\">\r\n </sfe-value-input>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <div class=\"form-group\">\r\n <label class=\"pw-label control-label col-sm-4\">Total</label>\r\n <div class=\"col-sm-4\">\r\n <input type=\"text\" class=\"form-control\" id=\"compositionTotalUO\" readonly />\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"economics\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <div class=\"form-horizontal\">\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'price'\" class=\"pw-label control-label col-sm-4\"> Product Price </label>\r\n <sim-var-input [inputId]=\"'price'\" [simVar]=\"unitOperation.price\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'electricityPrice'\" class=\"pw-label control-label col-sm-4\"> Electricity Price </label>\r\n <sim-var-input [inputId]=\"'electricityPrice'\" [simVar]=\"unitOperation.electricityPrice\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'revenue'\" class=\"pw-label control-label col-sm-4\"> Revenue </label>\r\n <sim-var-input [inputId]=\"'revenue'\" [simVar]=\"unitOperation.revenue\" [readOnly]=\"true\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'unitValue'\" class=\"pw-label control-label col-sm-4\"> Before Tax Cash Flow </label>\r\n <sim-var-input [inputId]=\"'unitValue'\" [simVar]=\"unitOperation.unitValue\" [readOnly]=\"true\"></sim-var-input>\r\n </div>\r\n <hr />\r\n <h4 class=\"subtitle\">OPEX</h4>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'opexVar'\" class=\"pw-label control-label col-sm-4\"> Variable </label>\r\n <sim-var-input [inputId]=\"'opexVar'\" [simVar]=\"unitOperation.opexVar\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'opexGasDiesel'\" class=\"pw-label control-label col-sm-4\"> Gas Diesel </label>\r\n <sim-var-input [inputId]=\"'opexGasDiesel'\" [simVar]=\"unitOperation.opexGasDiesel\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'opexPower'\" class=\"pw-label control-label col-sm-4\"> Power </label>\r\n <sim-var-input [inputId]=\"'opexPower'\" [simVar]=\"unitOperation.opexPower\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'opexCarbonDioxide'\" class=\"pw-label control-label col-sm-4\"> CO2 </label>\r\n <sim-var-input\r\n [inputId]=\"'opexCarbonDioxide'\"\r\n [simVar]=\"unitOperation.opexCarbonDioxide\"\r\n [readOnly]=\"true\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'opexFixed'\" class=\"pw-label control-label col-sm-4\"> Fixed </label>\r\n <sim-var-input [inputId]=\"'opexFixed'\" [simVar]=\"unitOperation.opexFixed\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'opexTotal'\" class=\"pw-label control-label col-sm-4\"> Total </label>\r\n <sim-var-input [inputId]=\"'opexTotal'\" [simVar]=\"unitOperation.opexTotal\" [readOnly]=\"true\"></sim-var-input>\r\n </div>\r\n\r\n <hr />\r\n <h4 class=\"subtitle\">CAPEX</h4>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'capexAmortized'\" class=\"pw-label control-label col-sm-4\"> Amortized CAPEX </label>\r\n <sim-var-input [inputId]=\"'capexAmortized'\" [simVar]=\"unitOperation.capexAmortized\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'capexTotal'\" class=\"pw-label control-label col-sm-4\"> Total </label>\r\n <sim-var-input [inputId]=\"'capexTotal'\" [simVar]=\"unitOperation.capexTotal\" [readOnly]=\"true\"></sim-var-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"constraints\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <p style=\"text-align: right; position: relative\">\r\n <span style=\"position: absolute; right: -25px; top: -20px; font-weight: bold\">Active</span>\r\n </p>\r\n <div class=\"form-horizontal\">\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'capacity'\" class=\"pw-label control-label col-sm-4\"> Maximum Flow Rate </label>\r\n <sim-var-input [inputId]=\"'capacity'\" [isConstraint]=\"true\" [simVar]=\"unitOperation.capacity\"></sim-var-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"sagdSourceComments\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <sob-unit-operation-comments [unitOpId]=\"this.unitOperation.id\"></sob-unit-operation-comments>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { SagdSource } from '../../../_models/_unit-operations/sagd-source';\r\nimport { SuncorFluidAnalysis } from '../../../_models/_fluid/suncor-fluid-analysis';\r\nimport { CoreService } from '../../../_services/core.service';\r\n\r\n@Component({\r\n selector: 'sob-sagd-source',\r\n templateUrl: './sagd-source.component.html',\r\n styleUrls: ['./sagd-source.component.css'],\r\n})\r\nexport class SagdSourceComponent implements OnInit {\r\n @Input()\r\n unitOperation: SagdSource;\r\n\r\n currentAnalysis: SuncorFluidAnalysis;\r\n\r\n constructor(private coreService: CoreService) {}\r\n\r\n ngOnInit() {\r\n this.updateCurrentAnalysis();\r\n }\r\n\r\n get fluidAnalyses() {\r\n return this.coreService.currentCase.assayManager.getAssaysByCategory('Crude oil - Bitumen');\r\n }\r\n\r\n updateCurrentAnalysis(id?) {\r\n if (id) {\r\n this.unitOperation.fluidAnalysisId = id;\r\n }\r\n if (this.unitOperation.fluidAnalysisId) {\r\n this.currentAnalysis = this.coreService.currentCase.assayManager.findFluidAnalysisById(\r\n this.unitOperation.fluidAnalysisId\r\n );\r\n this.assayChanged();\r\n }\r\n }\r\n\r\n assayChanged() {\r\n const cuts = [\r\n 'lightEndsCut',\r\n 'lightNaphthaCut',\r\n 'heavyNaphthaCut',\r\n 'distillateCut',\r\n 'LGOCut',\r\n 'HGOCut',\r\n 'VGOCut',\r\n 'HVGOCut',\r\n 'residCut',\r\n ];\r\n const simvarNames = ['sulfur', 'anilinePoint', 'massDensity', 'nitrogen', 'ccr'];\r\n for (const cutId of cuts) {\r\n for (const simvarName of simvarNames) {\r\n const simVar = this.currentAnalysis[cutId][simvarName];\r\n const $field = `#${cutId}${simvarName}`;\r\n $($field).val(simVar.convertToCaptureUnit(true));\r\n $(`${$field}Unit`).val(simVar.unit);\r\n $($field).change();\r\n }\r\n }\r\n $(`#compositionUnit${this.unitOperation.id}`).val(this.currentAnalysis.composition[0].unit);\r\n let total = 0;\r\n for (let i = 0; i < this.currentAnalysis.composition.length; i++) {\r\n const simVar = this.currentAnalysis.composition[i];\r\n total += simVar.convertToCaptureUnit(true);\r\n $(`#composition${i}`).val(simVar.convertToCaptureUnit(true));\r\n }\r\n $('#compositionTotalUO').val(total);\r\n\r\n $('#fluidAnalysisMassDensity').val(this.currentAnalysis.massDensity.convertToCaptureUnit(true));\r\n $('#fluidAnalysisMassDensityUnit').val(this.currentAnalysis.massDensity.unit);\r\n $('#fluidAnalysisMassDensity').change();\r\n\r\n $('#fluidAnalysisCcr').val(this.currentAnalysis.ccr.convertToCaptureUnit(true));\r\n $('#fluidAnalysisCcrUnit').val(this.currentAnalysis.ccr.unit);\r\n $('#fluidAnalysisCcr').change();\r\n\r\n $('#fluidAnalysisSulfur').val(this.currentAnalysis.sulfur.convertToCaptureUnit(true));\r\n $('#fluidAnalysisSulfurUnit').val(this.currentAnalysis.sulfur.unit);\r\n $('#fluidAnalysisSulfur').change();\r\n\r\n $('#fluidAnalysisNitrogen').val(this.currentAnalysis.nitrogen.convertToCaptureUnit(true));\r\n $('#fluidAnalysisNitrogenUnit').val(this.currentAnalysis.nitrogen.unit);\r\n $('#fluidAnalysisNitrogen').change();\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport {\r\n AbstractControlOptions,\r\n FormControl,\r\n FormGroup,\r\n UntypedFormControl,\r\n UntypedFormGroup,\r\n ValidatorFn,\r\n} from '@angular/forms';\r\nimport { SimulationVariable } from '../_models';\r\n\r\nexport type SimulationVariableForm = FormGroup<{ value: FormControl<number | undefined>; unit: FormControl<string> }>;\r\n\r\nexport type SimulationVariableConstraintForm = FormGroup<{\r\n value: FormControl<number | undefined>;\r\n unit: FormControl<string>;\r\n isActive: FormControl<boolean>;\r\n}>;\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class SimVarFormBuilder {\r\n control(\r\n simVar: SimulationVariable,\r\n valueInputDisabled: boolean = false,\r\n unitSelectDisabled: boolean = false,\r\n isConstraint?: boolean,\r\n valueValidatorOpts?: ValidatorFn | ValidatorFn[] | AbstractControlOptions | null,\r\n unitValidatorOpts?: ValidatorFn | ValidatorFn[] | AbstractControlOptions | null\r\n ): UntypedFormGroup {\r\n const formGroup = new UntypedFormGroup({\r\n value: new UntypedFormControl({ value: simVar.value, disabled: valueInputDisabled }, valueValidatorOpts),\r\n\r\n unit: new UntypedFormControl({ value: simVar.unit, disabled: unitSelectDisabled }, unitValidatorOpts),\r\n });\r\n\r\n if (isConstraint) {\r\n formGroup.addControl('isActive', new UntypedFormControl(simVar.isActive));\r\n }\r\n\r\n return formGroup;\r\n }\r\n\r\n populatedControl(\r\n sv: SimulationVariable,\r\n valueInputDisabled: boolean = false,\r\n unitSelectDisabled: boolean = false,\r\n valueValidatorOpts?: ValidatorFn | ValidatorFn[] | AbstractControlOptions | null,\r\n unitValidatorOpts?: ValidatorFn | ValidatorFn[] | AbstractControlOptions | null\r\n ): SimulationVariableForm {\r\n return new FormGroup({\r\n value: new FormControl<number | undefined>({ value: sv.value, disabled: valueInputDisabled }, valueValidatorOpts),\r\n unit: new FormControl<string>({ value: sv.unit, disabled: unitSelectDisabled }, unitValidatorOpts),\r\n });\r\n }\r\n\r\n emptyControl(\r\n valueInputDisabled: boolean = false,\r\n unitSelectDisabled: boolean = false,\r\n valueValidatorOpts?: ValidatorFn | ValidatorFn[] | AbstractControlOptions | null,\r\n unitValidatorOpts?: ValidatorFn | ValidatorFn[] | AbstractControlOptions | null\r\n ): SimulationVariableForm {\r\n return new FormGroup({\r\n value: new FormControl<number | undefined>(\r\n { value: undefined, disabled: valueInputDisabled },\r\n valueValidatorOpts\r\n ),\r\n unit: new FormControl<string>({ value: '', disabled: unitSelectDisabled }, unitValidatorOpts),\r\n });\r\n }\r\n\r\n emptyConstraintControl(\r\n valueInputDisabled: boolean = false,\r\n unitSelectDisabled: boolean = false,\r\n valueValidatorOpts?: ValidatorFn | ValidatorFn[] | AbstractControlOptions | null,\r\n unitValidatorOpts?: ValidatorFn | ValidatorFn[] | AbstractControlOptions | null\r\n ): SimulationVariableConstraintForm {\r\n return new FormGroup({\r\n value: new FormControl<number | undefined>(\r\n { value: undefined, disabled: valueInputDisabled },\r\n valueValidatorOpts\r\n ),\r\n unit: new FormControl<string>({ value: '', disabled: unitSelectDisabled }, unitValidatorOpts),\r\n isActive: new FormControl<boolean>(false),\r\n });\r\n }\r\n\r\n patchValue(sv: SimulationVariable, svFormGroup: SimulationVariableForm) {\r\n svFormGroup.patchValue({ value: sv.value, unit: sv.unit });\r\n }\r\n\r\n patchConstraintValue(sv: SimulationVariable, svFormGroup: SimulationVariableConstraintForm) {\r\n svFormGroup.patchValue({ value: sv.value, unit: sv.unit, isActive: sv.isActive });\r\n }\r\n}\r\n","import { AfterViewInit, Component, ElementRef, forwardRef, Input, OnInit, Renderer2 } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { commaNumberFormat, hasNumericValue, roundNumber } from '../../_utils/utils';\r\nimport { VariableStatus } from '../../_config/variable-status.enum';\r\n\r\ndeclare let unitConverter: any;\r\n\r\n@Component({\r\n selector: 'sob-reactive-variable-value-input',\r\n template: `<input\r\n type=\"text\"\r\n class=\"form-control {{ isInvalid ? 'is-invalid' : '' }} {{ this.statusClass }}\"\r\n [disabled]=\"isDisabled || isSolverCalculated\"\r\n (input)=\"onInput($event.target['value'])\" />`,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => ReactiveVariableValueInputComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class ReactiveVariableValueInputComponent implements OnInit, ControlValueAccessor {\r\n @Input() isInvalid = false;\r\n @Input() format = true;\r\n @Input() round = true;\r\n @Input() fractionDigits = -1;\r\n\r\n // Just a data structure so it still can be used with plain numbers...\r\n // or in array-like forms\r\n // perfectly fits the data structure of an emat variable\r\n // property not named ematVariable because it can be used with plain doubles as well\r\n // e.g. the components of fluid analysis\r\n @Input() valueMetaData: { unit?: string; quantity?: string; variableStatus?: string } = {};\r\n\r\n @Input() unit: string;\r\n @Input() quantity: string;\r\n @Input() status: string | VariableStatus;\r\n @Input() alwaysDefault: boolean;\r\n @Input() scientificNotationValue = true;\r\n\r\n value: number;\r\n displayValue: string;\r\n internalUnit: string;\r\n isDisabled: boolean;\r\n\r\n onChange = (_: any) => {};\r\n onTouch = () => {};\r\n\r\n constructor(private el: ElementRef, private renderer: Renderer2) {}\r\n\r\n ngOnInit() {\r\n if (this.valueMetaData) {\r\n this.quantity = this.valueMetaData.quantity ? this.valueMetaData.quantity : this.quantity;\r\n this.unit = this.valueMetaData.unit ? this.valueMetaData.unit : this.unit;\r\n this.internalUnit = unitConverter(this.quantity).getInternalUnit();\r\n }\r\n }\r\n\r\n onInput(value: any) {\r\n this.displayValue = value;\r\n this.value = this.convertToInternalUnit(value);\r\n\r\n this.onTouch();\r\n this.onChange(this.value);\r\n\r\n // when user enters a value, the status should be updated to userSpecified\r\n if (!this.alwaysDefault) {\r\n this.setUserSpecifiedStatus();\r\n }\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.isDisabled = isDisabled;\r\n }\r\n\r\n // this method is executed when value is changed externally\r\n writeValue(value: any): void {\r\n // assume the value should be written in internal unit\r\n // and is a number\r\n this.value = value;\r\n\r\n this.displayValueOnInput();\r\n }\r\n\r\n updateUnit(unit: string) {\r\n this.unit = unit;\r\n this.displayValueOnInput();\r\n }\r\n\r\n // region display value handling\r\n private displayValueOnInput() {\r\n this.setDisplayValue();\r\n this.renderer.setProperty(this.el.nativeElement.firstChild, 'value', this.displayValue);\r\n }\r\n\r\n private setDisplayValue() {\r\n this.displayValue = unitConverter(this.quantity).convert(this.value, this.internalUnit, this.unit).getValue();\r\n\r\n if (this.round && hasNumericValue(this.displayValue as any)) {\r\n let conversionFractionDigits =\r\n this.fractionDigits > -1 ? this.fractionDigits : unitConverter.conversions[this.quantity][this.unit].precision;\r\n\r\n // set default if no unitConverter precision or no provided fraction digits\r\n conversionFractionDigits = hasNumericValue(conversionFractionDigits)\r\n ? conversionFractionDigits\r\n : unitConverter.DEFAULT_PRECISION;\r\n\r\n this.displayValue = roundNumber(+this.displayValue, conversionFractionDigits).toString();\r\n }\r\n\r\n const displayValueAsNumber = unitConverter.parseFloatString(this.displayValue);\r\n if (\r\n this.scientificNotationValue &&\r\n (displayValueAsNumber > 9999.9 ||\r\n displayValueAsNumber < -999999 ||\r\n (displayValueAsNumber < 0.00001 && displayValueAsNumber > -0.00001))\r\n ) {\r\n this.displayValue =\r\n displayValueAsNumber !== 0 ? this.scientificNotation(displayValueAsNumber) : this.displayValue;\r\n }\r\n\r\n if (this.format) {\r\n this.displayValue = commaNumberFormat(this.displayValue);\r\n }\r\n }\r\n\r\n private convertToInternalUnit(value) {\r\n const valueInInternalUnit = unitConverter(this.quantity).convert(value, this.unit, this.internalUnit).getValue();\r\n return hasNumericValue(valueInInternalUnit) ? valueInInternalUnit : undefined;\r\n }\r\n\r\n // endregion\r\n\r\n // region variable status handling\r\n private setUserSpecifiedStatus() {\r\n this.status = VariableStatus.USER_SPECIFIED;\r\n this.valueMetaData.variableStatus = VariableStatus.USER_SPECIFIED;\r\n }\r\n\r\n get isSolverCalculated() {\r\n // TODO fix this crp\r\n return (\r\n this.status === VariableStatus.SOLVER_CALCULATED ||\r\n this.valueMetaData.variableStatus === VariableStatus.SOLVER_CALCULATED\r\n );\r\n }\r\n\r\n // TODO make this better... why having two input parameters?\r\n get statusClass() {\r\n if (this.alwaysDefault) {\r\n return VariableStatus.DEFAULT;\r\n }\r\n\r\n return this.valueMetaData.variableStatus ? this.valueMetaData.variableStatus : this.status;\r\n }\r\n\r\n // endregion\r\n\r\n // TODO scientific notation precision\r\n private scientificNotation(value: number) {\r\n return value.toExponential(3);\r\n }\r\n\r\n // endregion\r\n}\r\n","import { AfterViewInit, Component, ElementRef, EventEmitter, forwardRef, Input, OnInit, Output } from '@angular/core';\r\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\r\n\r\ndeclare let unitConverter: any;\r\n\r\n@Component({\r\n selector: 'sob-reactive-unit-select',\r\n template: `<select\r\n class=\"form-control\"\r\n style=\"{{ style }}\"\r\n id=\"{{ selectId }}\"\r\n [value]=\"value\"\r\n [disabled]=\"isDisabled\"\r\n (change)=\"unitChanged($event.target.value)\"></select>`,\r\n styleUrls: ['./reactive-unit-select.component.css'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => ReactiveUnitSelectComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class ReactiveUnitSelectComponent implements AfterViewInit {\r\n @Input() quantity: string;\r\n\r\n // TODO can we avoid passing an id? :v\r\n @Input() selectId: string;\r\n\r\n @Input() class: string;\r\n @Input() style: string;\r\n\r\n value: string;\r\n isDisabled: boolean;\r\n\r\n @Output() unitChange = new EventEmitter<string>();\r\n\r\n onChange = (_: any) => {};\r\n onTouch = () => {};\r\n\r\n constructor(private el: ElementRef) {}\r\n\r\n ngAfterViewInit() {\r\n if (this.selectId) {\r\n unitConverter(this.quantity).createUnitSelect(`#${this.selectId}`, this.value);\r\n } else {\r\n unitConverter(this.quantity).createUnitSelect(this.el.nativeElement.firstChild, this.value);\r\n }\r\n }\r\n\r\n unitChanged(value) {\r\n this.value = value;\r\n this.onTouch();\r\n this.onChange(this.value);\r\n\r\n this.unitChange.emit(this.value);\r\n }\r\n\r\n writeValue(value: any): void {\r\n this.value = value || '';\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n\r\n setDisabledState?(isDisabled: boolean): void {\r\n this.isDisabled = isDisabled;\r\n }\r\n}\r\n","import {\r\n AfterViewInit,\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n forwardRef,\r\n Input,\r\n OnInit,\r\n Output,\r\n Renderer2,\r\n} from '@angular/core';\r\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'sob-reactive-constraint-check-box',\r\n template: ` <div *ngIf=\"isConstraint\">\r\n <div style=\"position: relative\">\r\n <label class=\"control-label\">\r\n <input\r\n type=\"checkbox\"\r\n id=\"constraint\"\r\n [disabled]=\"disabledConstraint\"\r\n style=\"position: absolute; top: 6px; right: 0\"\r\n [checked]=\"isActive\"\r\n (change)=\"isConstraintChanged($event.target.checked)\" />\r\n </label>\r\n </div>\r\n </div>`,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => ReactiveConstraintCheckBoxComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class ReactiveConstraintCheckBoxComponent implements ControlValueAccessor {\r\n @Input() valueMetaData: any;\r\n\r\n @Input() isConstraint: boolean;\r\n @Input() disabledConstraint: boolean;\r\n\r\n isActive?: boolean;\r\n\r\n onChange = (_: any) => {};\r\n onTouch = () => {};\r\n\r\n constructor(private el: ElementRef, private renderer: Renderer2) {}\r\n\r\n isConstraintChanged(checked: boolean) {\r\n this.isActive = checked;\r\n this.onChange(this.isActive);\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n\r\n writeValue(value: any): void {\r\n this.isActive = value;\r\n }\r\n}\r\n","import { AfterViewInit, ContentChild, Directive } from '@angular/core';\r\nimport { ReactiveVariableValueInputComponent } from './reactive-variable-value-input/reactive-variable-value-input.component';\r\nimport { ReactiveUnitSelectComponent } from './reactive-unit-select/reactive-unit-select.component';\r\nimport { ReactiveConstraintCheckBoxComponent } from './reactive-constraint-check-box/reactive-constraint-check-box.component';\r\n\r\n@Directive({\r\n selector: '[sobReactiveSimVarInput]',\r\n})\r\nexport class ReactiveSimVarInputDirective implements AfterViewInit {\r\n // query available on ngAfterViewInit\r\n @ContentChild(ReactiveVariableValueInputComponent, { static: false }) valueInput: ReactiveVariableValueInputComponent;\r\n @ContentChild(ReactiveUnitSelectComponent, { static: false }) unitSelect: ReactiveUnitSelectComponent;\r\n @ContentChild(ReactiveConstraintCheckBoxComponent, { static: false })\r\n isConstraint: ReactiveConstraintCheckBoxComponent;\r\n\r\n constructor() {}\r\n\r\n ngAfterViewInit() {\r\n this.unitSelect.unitChange.subscribe(newUnit => {\r\n this.valueInput.updateUnit(newUnit);\r\n });\r\n }\r\n}\r\n","<ul class=\"nav nav-tabs\" role=\"tablist\" style=\"margin-right: 15px\">\r\n <li role=\"presentation\" class=\"active\">\r\n <a href=\"#blockSpecifications\" aria-controls=\"blockSpecifications\" role=\"tab\" data-toggle=\"tab\">General</a>\r\n </li>\r\n <li role=\"presentation\">\r\n <a href=\"#economics\" aria-controls=\"economics\" role=\"tab\" data-toggle=\"tab\">Economics</a>\r\n </li>\r\n\r\n <li role=\"presentation\">\r\n <a href=\"#constraints\" aria-controls=\"constraints\" role=\"tab\" data-toggle=\"tab\"> Constraints </a>\r\n </li>\r\n\r\n <li role=\"presentation\">\r\n <a href=\"#refineryComments\" aria-controls=\"refineryComments\" role=\"tab\" data-toggle=\"tab\">\r\n <i class=\"fa fa-comments fa-lg\" aria-hidden=\"true\"> </i>\r\n Comments\r\n </a>\r\n </li>\r\n</ul>\r\n\r\n<div class=\"tab-content pw-margin tab-content-padding\" [formGroup]=\"propertyWindowFormGroup\">\r\n <div role=\"tabpanel\" class=\"tab-pane fade in active\" id=\"blockSpecifications\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <div class=\"form-horizontal\">\r\n <div class=\"form-group\">\r\n <label for=\"has2inlets\" class=\"control-label col-sm-4\"> Has Two Inlets </label>\r\n <div class=\"col-sm-4\">\r\n <label class=\"control-label\">\r\n <input formControlName=\"hasTwoInlets\" type=\"checkbox\" id=\"has2inlets\" (change)=\"changeInletPorts()\" />\r\n </label>\r\n </div>\r\n </div>\r\n\r\n <hr />\r\n <h4 class=\"subtitle\">Cut Margin</h4>\r\n <ng-container>\r\n <div class=\"form-group\" formGroupName=\"lightEndsMargin\">\r\n <label class=\"control-label col-sm-4\"> Lights Ends Margin </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.lightEndsMargin.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.lightEndsMargin\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"naphthaMargin\">\r\n <label class=\"control-label col-sm-4\"> Naphtha Margin </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.naphthaMargin.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.naphthaMargin\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"distillateMargin\">\r\n <label class=\"control-label col-sm-4\"> Distillate Margin </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.distillateMargin.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.distillateMargin\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"gasOilMargin\">\r\n <label class=\"control-label col-sm-4\"> Gas Oil Margin </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.gasOilMargin.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.gasOilMargin\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"vacuumResidueMargin\">\r\n <label class=\"control-label col-sm-4\"> Vacuum Residue Margin </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select\r\n formControlName=\"unit\"\r\n [quantity]=\"unitOperation.vacuumResidueMargin.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.vacuumResidueMargin\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <hr />\r\n <br />\r\n\r\n <div class=\"form-group\" formGroupName=\"volumetricFlowrate\">\r\n <label class=\"control-label col-sm-4\"> Volumetric Flowrate </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select\r\n formControlName=\"unit\"\r\n [quantity]=\"unitOperation.volumetricFlowrate.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.volumetricFlowrate\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"feedstockValue\">\r\n <label class=\"control-label col-sm-4\"> Train 1 Feedstock Value </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.feedstockValue.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.feedstockValue\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" *ngIf=\"twoInletsControl\" formGroupName=\"train2FeedstockValue\">\r\n <label class=\"control-label col-sm-4\"> Train 2 Feedstock Value </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select\r\n formControlName=\"unit\"\r\n [quantity]=\"unitOperation.train2FeedstockValue.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.train2FeedstockValue\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <hr />\r\n <h4 class=\"subtitle\">GHG</h4>\r\n\r\n <div class=\"form-group\" formGroupName=\"ghgIntensity\">\r\n <label class=\"control-label col-sm-4\"> GHG Intensity </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.ghgIntensity.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.ghgIntensity\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"ghgEmissions\">\r\n <label class=\"control-label col-sm-4\"> Refinery GHG Emissions </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.ghgEmissions.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.ghgEmissions\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"cumulativeGhgEmissions\">\r\n <label class=\"control-label col-sm-4\"> Cumulative GHG Emissions </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select\r\n formControlName=\"unit\"\r\n [quantity]=\"unitOperation.cumulativeGhgEmissions.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.cumulativeGhgEmissions\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"economics\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <div class=\"form-horizontal\">\r\n <ng-container>\r\n <div class=\"form-group\" formGroupName=\"electricityPrice\">\r\n <label class=\"control-label col-sm-4\"> Electricity Price </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.electricityPrice.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.electricityPrice\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"revenue\">\r\n <label class=\"control-label col-sm-4\"> Revenue </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.revenue.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input formControlName=\"value\" [valueMetaData]=\"unitOperation.revenue\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"unitValue\">\r\n <label class=\"control-label col-sm-4\"> Before Tax Cash Flow </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.unitValue.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input formControlName=\"value\" [valueMetaData]=\"unitOperation.unitValue\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <hr />\r\n <h4 class=\"subtitle\">OPEX</h4>\r\n\r\n <div class=\"form-group\" formGroupName=\"opexVar\">\r\n <label class=\"control-label col-sm-4\"> Variable </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.opexVar.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input formControlName=\"value\" [valueMetaData]=\"unitOperation.opexVar\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"opexGasDiesel\">\r\n <label class=\"control-label col-sm-4\"> Gas Diesel </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.opexGasDiesel.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.opexGasDiesel\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"opexPower\">\r\n <label class=\"control-label col-sm-4\"> Power </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.opexPower.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input formControlName=\"value\" [valueMetaData]=\"unitOperation.opexPower\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"opexCarbonDioxide\">\r\n <label class=\"control-label col-sm-4\"> CO2 </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select\r\n formControlName=\"unit\"\r\n [quantity]=\"unitOperation.opexCarbonDioxide.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.opexCarbonDioxide\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"opexFixed\">\r\n <label class=\"control-label col-sm-4\"> Fixed </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.opexFixed.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input formControlName=\"value\" [valueMetaData]=\"unitOperation.opexFixed\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"opexTotal\">\r\n <label class=\"control-label col-sm-4\"> Total </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.opexTotal.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input formControlName=\"value\" [valueMetaData]=\"unitOperation.opexTotal\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <hr />\r\n <h4 class=\"subtitle\">CAPEX</h4>\r\n\r\n <div class=\"form-group\" formGroupName=\"capexAmortized\">\r\n <label class=\"control-label col-sm-4\"> Amortized </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.capexAmortized.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.capexAmortized\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"capexTotal\">\r\n <label class=\"control-label col-sm-4\"> Total </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.capexTotal.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input formControlName=\"value\" [valueMetaData]=\"unitOperation.capexTotal\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"constraints\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <div class=\"form-horizontal\">\r\n <h4 class=\"subtitle\">Train 1</h4>\r\n <p style=\"text-align: right; position: relative\">\r\n <span style=\"position: absolute; right: -15px; top: -20px; font-weight: bold\">Active</span>\r\n </p>\r\n <ng-container>\r\n <div class=\"form-group\" formGroupName=\"capacity\">\r\n <label class=\"control-label col-sm-4\"> Maximum Feed Capacity </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-5\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.capacity.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-5\">\r\n <sob-reactive-variable-value-input formControlName=\"value\" [valueMetaData]=\"unitOperation.capacity\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n <div class=\"col-xs-2\">\r\n <sob-reactive-constraint-check-box\r\n formControlName=\"isActive\"\r\n [isConstraint]=\"true\"\r\n [valueMetaData]=\"unitOperation.capacity\"></sob-reactive-constraint-check-box>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"minimumFlow\">\r\n <label class=\"control-label col-sm-4\"> Minimum Flow </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-5\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.minimumFlow.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-5\">\r\n <sob-reactive-variable-value-input\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.minimumFlow\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n <div class=\"col-xs-2\">\r\n <sob-reactive-constraint-check-box\r\n formControlName=\"isActive\"\r\n [isConstraint]=\"true\"\r\n [valueMetaData]=\"unitOperation.minimumFlow\"></sob-reactive-constraint-check-box>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"maximumSulfurContent\">\r\n <label class=\"control-label col-sm-4\"> Maximum Sulfur Content</label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-5\">\r\n <sob-reactive-unit-select\r\n formControlName=\"unit\"\r\n [quantity]=\"unitOperation.maximumSulfurContent.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-5\">\r\n <sob-reactive-variable-value-input\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.maximumSulfurContent\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n <div class=\"col-xs-2\">\r\n <sob-reactive-constraint-check-box\r\n formControlName=\"isActive\"\r\n [isConstraint]=\"true\"\r\n [valueMetaData]=\"unitOperation.maximumSulfurContent\"></sob-reactive-constraint-check-box>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"maximumMassDensity\">\r\n <label class=\"control-label col-sm-4\"> Maximum Mass Density</label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-5\">\r\n <sob-reactive-unit-select\r\n formControlName=\"unit\"\r\n [quantity]=\"unitOperation.maximumMassDensity.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-5\">\r\n <sob-reactive-variable-value-input\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.maximumMassDensity\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n <div class=\"col-xs-2\">\r\n <sob-reactive-constraint-check-box\r\n formControlName=\"isActive\"\r\n [isConstraint]=\"true\"\r\n [valueMetaData]=\"unitOperation.maximumMassDensity\"></sob-reactive-constraint-check-box>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n\r\n <div class=\"form-horizontal\" *ngIf=\"twoInletsControl\">\r\n <hr />\r\n <h4 class=\"subtitle\">Train 2</h4>\r\n <p style=\"text-align: right; position: relative\">\r\n <span style=\"position: absolute; right: -15px; top: -20px; font-weight: bold\">Active</span>\r\n </p>\r\n <ng-container>\r\n <div class=\"form-group\" formGroupName=\"train2Capacity\">\r\n <label class=\"control-label col-sm-4\"> Maximum Feed Capacity </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-5\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.train2Capacity.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-5\">\r\n <sob-reactive-variable-value-input\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.train2Capacity\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n <div class=\"col-xs-2\">\r\n <sob-reactive-constraint-check-box\r\n formControlName=\"isActive\"\r\n [isConstraint]=\"true\"\r\n [valueMetaData]=\"unitOperation.train2Capacity\"></sob-reactive-constraint-check-box>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"train2MinimumFlow\">\r\n <label class=\"control-label col-sm-4\"> Minimum Flow </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-5\">\r\n <sob-reactive-unit-select\r\n formControlName=\"unit\"\r\n [quantity]=\"unitOperation.train2MinimumFlow.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-5\">\r\n <sob-reactive-variable-value-input\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.train2MinimumFlow\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n <div class=\"col-xs-2\">\r\n <sob-reactive-constraint-check-box\r\n formControlName=\"isActive\"\r\n [isConstraint]=\"true\"\r\n [valueMetaData]=\"unitOperation.train2MinimumFlow\"></sob-reactive-constraint-check-box>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"train2MaximumSulfurContent\">\r\n <label class=\"control-label col-sm-4\"> Maximum Sulfur Content</label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-5\">\r\n <sob-reactive-unit-select\r\n formControlName=\"unit\"\r\n [quantity]=\"unitOperation.train2MaximumSulfurContent.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-5\">\r\n <sob-reactive-variable-value-input\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.train2MaximumSulfurContent\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n <div class=\"col-xs-2\">\r\n <sob-reactive-constraint-check-box\r\n formControlName=\"isActive\"\r\n [isConstraint]=\"true\"\r\n [valueMetaData]=\"unitOperation.train2MaximumSulfurContent\"></sob-reactive-constraint-check-box>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"train2MaximumMassDensity\">\r\n <label class=\"control-label col-sm-4\"> Maximum Mass Density</label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-5\">\r\n <sob-reactive-unit-select\r\n formControlName=\"unit\"\r\n [quantity]=\"unitOperation.train2MaximumMassDensity.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-5\">\r\n <sob-reactive-variable-value-input\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.train2MaximumMassDensity\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n <div class=\"col-xs-2\">\r\n <sob-reactive-constraint-check-box\r\n formControlName=\"isActive\"\r\n [isConstraint]=\"true\"\r\n [valueMetaData]=\"unitOperation.train2MaximumMassDensity\"></sob-reactive-constraint-check-box>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"refineryComments\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <sob-unit-operation-comments [unitOpId]=\"this.unitOperation.id\"></sob-unit-operation-comments>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { UntypedFormBuilder } from '@angular/forms';\r\nimport { BaseObjectFormGroupWrapper } from '../../../_form-utils/base-object-form-group-wrapper';\r\nimport { Refinery } from '../../../_models/_unit-operations/refinery';\r\nimport { SimVarFormBuilder } from '../../../_form-utils/sim-var-form-builder';\r\nimport { FlowsheetDiagramService } from '../../../_services/flowsheet-diagram/flowsheet-diagram.service';\r\nimport { unitOperationsConfig } from '../../../_config/unit-operations.config';\r\n\r\n@Component({\r\n selector: 'sob-refinery',\r\n templateUrl: './refinery.component.html',\r\n styleUrls: ['./refinery.component.css'],\r\n})\r\nexport class RefineryComponent implements OnInit {\r\n @Input() unitOperation: Refinery;\r\n @Input() formGroupWrapper: BaseObjectFormGroupWrapper;\r\n\r\n constructor(\r\n private fb: UntypedFormBuilder,\r\n private svfb: SimVarFormBuilder,\r\n private flowsheetDiagramService: FlowsheetDiagramService\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.addControls();\r\n this.formGroupWrapper.storeOriginalValue();\r\n }\r\n\r\n addControls() {\r\n this.propertyWindowFormGroup.addControl('name', this.fb.control(this.unitOperation.name));\r\n this.propertyWindowFormGroup.addControl('hasTwoInlets', this.fb.control(this.unitOperation.hasTwoInlets));\r\n this.propertyWindowFormGroup.addControl('lightEndsMargin', this.svfb.control(this.unitOperation.lightEndsMargin));\r\n this.propertyWindowFormGroup.addControl('naphthaMargin', this.svfb.control(this.unitOperation.naphthaMargin));\r\n this.propertyWindowFormGroup.addControl('distillateMargin', this.svfb.control(this.unitOperation.distillateMargin));\r\n this.propertyWindowFormGroup.addControl('gasOilMargin', this.svfb.control(this.unitOperation.gasOilMargin));\r\n this.propertyWindowFormGroup.addControl('vacuumResidueMargin', this.svfb.control(this.unitOperation.naphthaMargin));\r\n this.propertyWindowFormGroup.addControl(\r\n 'volumetricFlowrate',\r\n this.svfb.control(this.unitOperation.volumetricFlowrate, true)\r\n );\r\n this.propertyWindowFormGroup.addControl(\r\n 'feedstockValue',\r\n this.svfb.control(this.unitOperation.feedstockValue, true)\r\n );\r\n this.propertyWindowFormGroup.addControl(\r\n 'train2FeedstockValue',\r\n this.svfb.control(this.unitOperation.train2FeedstockValue, true)\r\n );\r\n\r\n this.propertyWindowFormGroup.addControl('ghgIntensity', this.svfb.control(this.unitOperation.ghgIntensity, true));\r\n this.propertyWindowFormGroup.addControl('ghgEmissions', this.svfb.control(this.unitOperation.ghgEmissions, true));\r\n this.propertyWindowFormGroup.addControl(\r\n 'cumulativeGhgEmissions',\r\n this.svfb.control(this.unitOperation.cumulativeGhgEmissions, true)\r\n );\r\n\r\n this.propertyWindowFormGroup.addControl('electricityPrice', this.svfb.control(this.unitOperation.electricityPrice));\r\n this.propertyWindowFormGroup.addControl('revenue', this.svfb.control(this.unitOperation.revenue, true));\r\n this.propertyWindowFormGroup.addControl('unitValue', this.svfb.control(this.unitOperation.unitValue, true));\r\n this.propertyWindowFormGroup.addControl('opexVar', this.svfb.control(this.unitOperation.opexVar));\r\n this.propertyWindowFormGroup.addControl('opexGasDiesel', this.svfb.control(this.unitOperation.opexGasDiesel));\r\n this.propertyWindowFormGroup.addControl('opexPower', this.svfb.control(this.unitOperation.opexPower));\r\n this.propertyWindowFormGroup.addControl(\r\n 'opexCarbonDioxide',\r\n this.svfb.control(this.unitOperation.opexCarbonDioxide, true)\r\n );\r\n this.propertyWindowFormGroup.addControl('opexFixed', this.svfb.control(this.unitOperation.opexFixed));\r\n this.propertyWindowFormGroup.addControl('opexTotal', this.svfb.control(this.unitOperation.opexTotal, true));\r\n this.propertyWindowFormGroup.addControl('capexAmortized', this.svfb.control(this.unitOperation.capexAmortized));\r\n this.propertyWindowFormGroup.addControl('capexTotal', this.svfb.control(this.unitOperation.capexTotal, true));\r\n\r\n this.propertyWindowFormGroup.addControl(\r\n 'capacity',\r\n this.svfb.control(this.unitOperation.capacity, false, false, true)\r\n );\r\n this.propertyWindowFormGroup.addControl(\r\n 'minimumFlow',\r\n this.svfb.control(this.unitOperation.minimumFlow, false, false, true)\r\n );\r\n this.propertyWindowFormGroup.addControl(\r\n 'maximumSulfurContent',\r\n this.svfb.control(this.unitOperation.maximumSulfurContent, false, false, true)\r\n );\r\n this.propertyWindowFormGroup.addControl(\r\n 'maximumMassDensity',\r\n this.svfb.control(this.unitOperation.maximumMassDensity, false, false, true)\r\n );\r\n\r\n this.propertyWindowFormGroup.addControl(\r\n 'train2Capacity',\r\n this.svfb.control(this.unitOperation.train2Capacity, false, false, true)\r\n );\r\n this.propertyWindowFormGroup.addControl(\r\n 'train2MinimumFlow',\r\n this.svfb.control(this.unitOperation.train2MinimumFlow, false, false, true)\r\n );\r\n this.propertyWindowFormGroup.addControl(\r\n 'train2MaximumSulfurContent',\r\n this.svfb.control(this.unitOperation.train2MaximumSulfurContent, false, false, true)\r\n );\r\n this.propertyWindowFormGroup.addControl(\r\n 'train2MaximumMassDensity',\r\n this.svfb.control(this.unitOperation.train2MaximumMassDensity, false, false, true)\r\n );\r\n }\r\n\r\n changeInletPorts() {\r\n if (this.twoInletsControl) {\r\n this.flowsheetDiagramService.changeTemplate(\r\n this.unitOperation.id,\r\n unitOperationsConfig.multipleInletRefinery.key\r\n );\r\n } else {\r\n this.flowsheetDiagramService.changeTemplate(this.unitOperation.id, unitOperationsConfig.refinery.key);\r\n }\r\n this.flowsheetDiagramService.deleteInletStreams(this.unitOperation.id);\r\n }\r\n\r\n get twoInletsControl() {\r\n return this.formGroupWrapper.getFormGroup().get('hasTwoInlets').value;\r\n }\r\n\r\n get propertyWindowFormGroup() {\r\n return this.formGroupWrapper.getFormGroup();\r\n }\r\n}\r\n","import { Component, Input } from '@angular/core';\r\nimport { ThirdPartyRefinery } from '../../../_models/_unit-operations/third-party-refinery';\r\n\r\n@Component({\r\n selector: 'sob-third-party-refinery',\r\n templateUrl: './third-party-refinery.component.html',\r\n styleUrls: ['./third-party-refinery.component.css'],\r\n})\r\nexport class ThirdPartyRefineryComponent {\r\n @Input()\r\n unitOperation: ThirdPartyRefinery;\r\n}\r\n","<ul class=\"nav nav-tabs\" role=\"tablist\" style=\"margin-right: 15px\">\r\n <li role=\"presentation\" class=\"active\">\r\n <a href=\"#blockSpecifications\" aria-controls=\"blockSpecifications\" role=\"tab\" data-toggle=\"tab\">General</a>\r\n </li>\r\n\r\n <li role=\"presentation\">\r\n <a href=\"#constraints\" aria-controls=\"constraints\" role=\"tab\" data-toggle=\"tab\"> Constraints </a>\r\n </li>\r\n\r\n <li role=\"presentation\">\r\n <a href=\"#thirdPartyRefineryComments\" aria-controls=\"thirdPartyRefineryComments\" role=\"tab\" data-toggle=\"tab\">\r\n <i class=\"fa fa-comments fa-lg\" aria-hidden=\"true\"> </i>\r\n Comments\r\n </a>\r\n </li>\r\n</ul>\r\n\r\n<div class=\"tab-content pw-margin tab-content-padding\">\r\n <div role=\"tabpanel\" class=\"tab-pane fade in active\" id=\"blockSpecifications\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <div class=\"form-horizontal\">\r\n <h4 class=\"subtitle\">Cut Margin</h4>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'lightEndsMargin'\" class=\"pw-label control-label col-sm-4\"> Light Ends Margin </label>\r\n <sim-var-input [inputId]=\"'lightEndsMargin'\" [simVar]=\"unitOperation.lightEndsMargin\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'naphthaMargin'\" class=\"pw-label control-label col-sm-4\"> Naphtha Margin </label>\r\n <sim-var-input [inputId]=\"'naphthaMargin'\" [simVar]=\"unitOperation.naphthaMargin\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'distillateMargin'\" class=\"pw-label control-label col-sm-4\"> Distillate Margin </label>\r\n <sim-var-input [inputId]=\"'distillateMargin'\" [simVar]=\"unitOperation.distillateMargin\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'gasOilMargin'\" class=\"pw-label control-label col-sm-4\"> Gas Oil Margin </label>\r\n <sim-var-input [inputId]=\"'gasOilMargin'\" [simVar]=\"unitOperation.gasOilMargin\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'vacuumResidueMargin'\" class=\"pw-label control-label col-sm-4\">\r\n Vacuum Residue Margin\r\n </label>\r\n <sim-var-input [inputId]=\"'vacuumResidueMargin'\" [simVar]=\"unitOperation.vacuumResidueMargin\"></sim-var-input>\r\n </div>\r\n\r\n <hr />\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'suncorProfitPercentage'\" class=\"pw-label control-label col-sm-4\">\r\n Suncor Profit Percentage\r\n </label>\r\n <sim-var-input\r\n [inputId]=\"'suncorProfitPercentage'\"\r\n [simVar]=\"unitOperation.suncorProfitPercentage\"></sim-var-input>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'volumetricFlowrate'\" class=\"pw-label control-label col-sm-4\"> Volumetric Flowrate </label>\r\n <sim-var-input\r\n [inputId]=\"'volumetricFlowrate'\"\r\n [simVar]=\"unitOperation.volumetricFlowrate\"\r\n [readOnly]=\"true\"></sim-var-input>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'feedstockValue'\" class=\"pw-label control-label col-sm-4\"> Feedstock Value </label>\r\n <sim-var-input\r\n [inputId]=\"'feedstockValue'\"\r\n [readOnly]=\"true\"\r\n [simVar]=\"unitOperation.feedstockValue\"></sim-var-input>\r\n </div>\r\n\r\n <hr />\r\n\r\n <h4 class=\"subtitle\">GHG</h4>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'ghgIntensity'\" class=\"pw-label control-label col-sm-4\"> GHG Intensity </label>\r\n <sim-var-input\r\n [inputId]=\"'ghgIntensity'\"\r\n [simVar]=\"unitOperation.ghgIntensity\"\r\n [readOnly]=\"true\"></sim-var-input>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'ghgEmissions'\" class=\"pw-label control-label col-sm-4\"> GHG Emissions </label>\r\n <sim-var-input\r\n [inputId]=\"'ghgEmissions'\"\r\n [simVar]=\"unitOperation.ghgEmissions\"\r\n [readOnly]=\"true\"></sim-var-input>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'cumulativeGhgEmissions'\" class=\"pw-label control-label col-sm-4\">\r\n Cumulative GHG Emissions\r\n </label>\r\n <sim-var-input\r\n [inputId]=\"'cumulativeGhgEmissions'\"\r\n [simVar]=\"unitOperation.cumulativeGhgEmissions\"\r\n [readOnly]=\"true\"></sim-var-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"constraints\">\r\n <p style=\"text-align: right; position: relative\">\r\n <span style=\"position: absolute; right: -25px; top: -20px; font-weight: bold\">Active</span>\r\n </p>\r\n <div class=\"form-horizontal\">\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'capacity'\" class=\"pw-label control-label col-sm-4\"> Maximum Feed Capacity </label>\r\n <sim-var-input [inputId]=\"'capacity'\" [isConstraint]=\"true\" [simVar]=\"unitOperation.capacity\"> </sim-var-input>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'maximumSulfurContent'\" class=\"pw-label control-label col-sm-4\">\r\n Maximum Sulfur Content\r\n </label>\r\n <sim-var-input\r\n [inputId]=\"'maximumSulfurContent'\"\r\n [isConstraint]=\"true\"\r\n [simVar]=\"unitOperation.maximumSulfurContent\">\r\n </sim-var-input>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'maximumMassDensity'\" class=\"pw-label control-label col-sm-4\"> Maximum Mass Density </label>\r\n <sim-var-input\r\n [inputId]=\"'maximumMassDensity'\"\r\n [isConstraint]=\"true\"\r\n [simVar]=\"unitOperation.maximumMassDensity\">\r\n </sim-var-input>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"thirdPartyRefineryComments\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <sob-unit-operation-comments [unitOpId]=\"this.unitOperation.id\"></sob-unit-operation-comments>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Completion } from '@codemirror/autocomplete';\r\n\r\nconst keywords = 'as break case catch continue default do else finally for foreach if in is new switch try while'\r\n .split(' ')\r\n .map(value => {\r\n return { label: value, type: 'keyword' } as Completion;\r\n });\r\n\r\nconst types = ' bool byte char decimal double short int long string var'.split(' ').map(value => {\r\n return { label: value, type: 'type' } as Completion;\r\n});\r\n\r\nexport const baseCodeEditorAutoCompletions: Completion[] = keywords.concat(...types);\r\n","export enum CodemirrorCompletionType {\r\n ENUM = 'enum',\r\n VARIABLE = 'variable',\r\n METHOD = 'method',\r\n}\r\n","import { Completion } from '@codemirror/autocomplete';\r\nimport { CodemirrorCompletionType } from '../../codemirror-completion.type';\r\n\r\nconst xtremaSuncorBaseApiVariables: Completion[] = [\r\n {\r\n type: CodemirrorCompletionType.VARIABLE,\r\n label: 'Inletccrpercent',\r\n },\r\n];\r\n\r\nconst xtremaSuncorBaseApiMethods: Completion[] = [\r\n {\r\n type: CodemirrorCompletionType.METHOD,\r\n label: 'GetUnitOpInletVolumetricFlowRate(string UnitOperationName)',\r\n info: 'Gets the UnitOperationName and returns the Inlet Volumetric Flowrate',\r\n apply: 'GetUnitOpInletVolumetricFlowRate()',\r\n },\r\n\r\n {\r\n type: CodemirrorCompletionType.METHOD,\r\n label: 'GetStreamVolumetricFlowRate(string MaterialStreamName)',\r\n info: 'Gets the MaterialStreamName as string and returns the volumetric Flowrate of any stream in the flowsheet',\r\n apply: 'GetStreamVolumetricFlowRate()',\r\n },\r\n\r\n {\r\n type: CodemirrorCompletionType.METHOD,\r\n label: 'GetStreamFlowRate(string MaterialStreamName, FlowrateBasis basis)',\r\n info:\r\n 'Gets the MaterialStreamName and \"FlowrateBasis\" and return the flowrate\\n' +\r\n 'Valid Options for FlowrateBasis:\\n' +\r\n 'FlowrateBasis.Mass (returns in TPD)| FlowrateBasis.Volume (returns in kbpcd)',\r\n apply: 'GetStreamFlowRate (,)',\r\n },\r\n\r\n {\r\n type: CodemirrorCompletionType.METHOD,\r\n label: 'GetStreamVolumetricFlowRate(string MaterialStreamName)',\r\n info: 'Gets the MaterialStreamName as string and returns the volumetric Flowrate of any stream in the flowsheet',\r\n apply: 'GetStreamVolumetricFlowRate()',\r\n },\r\n\r\n {\r\n type: CodemirrorCompletionType.METHOD,\r\n label: 'GetStreamCutFlowRate(string streamName, SuncorCuts suncorCut, FlowrateBasis basis)',\r\n info: 'Gets streamName, SuncorCut and Flowrate basis and returns the cut flowrate for the given stream',\r\n apply: 'GetStreamCutFlowRate(, ,)',\r\n },\r\n];\r\n\r\nconst xtremaSuncorBaseApiEnums: Completion[] = [\r\n {\r\n type: CodemirrorCompletionType.ENUM,\r\n label: 'SuncorCuts',\r\n info:\r\n 'Valid options for SuncorCuts \\n ' +\r\n 'SuncorCuts.LightEnd, SuncorCuts.LightNaphta, SuncorCuts.HeavyNaphta, \\n' +\r\n 'SuncorCuts.Distillate, SuncorCuts.LightGasOil, SuncorCuts.HeavyGasOil, \\n' +\r\n 'SuncorCuts.VacGasOil, SuncorCuts.HeavyVacGasOil, SuncorCuts.VacuumResidue',\r\n },\r\n\r\n {\r\n type: CodemirrorCompletionType.ENUM,\r\n label: 'FlowrateBasis',\r\n info: 'Valid options: FlowrateBasis.Mass, FlowrateBasis.Volume',\r\n },\r\n];\r\n\r\nexport const xtremaSuncorBaseApiCompletions = xtremaSuncorBaseApiVariables\r\n .concat(xtremaSuncorBaseApiMethods)\r\n .concat(xtremaSuncorBaseApiEnums);\r\n","import { Completion } from '@codemirror/autocomplete';\r\nimport { baseCodeEditorAutoCompletions } from './base-code-editor-autocompletions';\r\nimport { xtremaSuncorBaseApiCompletions } from '../../_config/unit-operations/custom-code-completions/xtrema-suncor-base-api-completions';\r\n\r\nexport class DefaultCodeProvider {\r\n defaultCode: string;\r\n\r\n constructor(defaultCode: string) {\r\n this.defaultCode = defaultCode;\r\n }\r\n\r\n getDefaultCode() {\r\n return this.defaultCode;\r\n }\r\n\r\n getCodeCompletions(): Completion[] {\r\n return baseCodeEditorAutoCompletions.concat(xtremaSuncorBaseApiCompletions);\r\n }\r\n}\r\n\r\n// linter suggest to use an interface instead of a type literal O.o\r\nexport interface CodeEditorData {\r\n code: string;\r\n defaultCodeProvider: DefaultCodeProvider;\r\n}\r\n","import { Completion } from '@codemirror/autocomplete';\r\nimport { DefaultCodeProvider } from './default-code-provider';\r\nimport { defaultUpgraderModel } from '../../_config/unit-operations/default-models/default-upgrader-model';\r\n\r\nexport class UpgraderCodeProvider extends DefaultCodeProvider {\r\n constructor() {\r\n super(defaultUpgraderModel);\r\n }\r\n\r\n override getCodeCompletions(): Completion[] {\r\n const upgraderCompletions: Completion[] = [\r\n { label: 'GasYield', type: 'variable', info: '' },\r\n { label: 'NaphtaYield', type: 'variable', info: '' },\r\n { label: 'DistillateYield', type: 'variable', info: '' },\r\n { label: 'GasOilYield', type: 'variable', info: '' },\r\n { label: 'CokeYield', type: 'variable', info: '' },\r\n { label: 'NaphtaAPI', type: 'variable', info: '' },\r\n { label: 'DistillateAPI', type: 'variable', info: '' },\r\n { label: 'GasOilAPI', type: 'variable', info: '' },\r\n { label: 'NaphtaSulfur', type: 'variable', info: '' },\r\n { label: 'GasOilSulfur', type: 'variable', info: '' },\r\n { label: 'NaphtaNitrogen', type: 'variable', info: '' },\r\n { label: 'DistillateNitrogen', type: 'variable', info: '' },\r\n { label: 'GasOilNitrogen', type: 'variable', info: '' },\r\n ];\r\n\r\n return super.getCodeCompletions().concat(...upgraderCompletions);\r\n }\r\n}\r\n","import { innerSubscribe, SimpleInnerSubscriber, SimpleOuterSubscriber } from '../innerSubscribe';\nexport function takeUntil(notifier) {\n return (source) => source.lift(new TakeUntilOperator(notifier));\n}\nclass TakeUntilOperator {\n constructor(notifier) {\n this.notifier = notifier;\n }\n call(subscriber, source) {\n const takeUntilSubscriber = new TakeUntilSubscriber(subscriber);\n const notifierSubscription = innerSubscribe(this.notifier, new SimpleInnerSubscriber(takeUntilSubscriber));\n if (notifierSubscription && !takeUntilSubscriber.seenValue) {\n takeUntilSubscriber.add(notifierSubscription);\n return source.subscribe(takeUntilSubscriber);\n }\n return takeUntilSubscriber;\n }\n}\nclass TakeUntilSubscriber extends SimpleOuterSubscriber {\n constructor(destination) {\n super(destination);\n this.seenValue = false;\n }\n notifyNext() {\n this.seenValue = true;\n this.complete();\n }\n notifyComplete() {\n }\n}\n","import { Component, EventEmitter, Input, OnDestroy, Output } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { CodeEditorService } from '../code-editor.service';\r\nimport { DefaultCodeProvider } from '../../../_services/custom-code-providers/default-code-provider';\r\n\r\n@Component({\r\n selector: 'sob-open-code-editor-button',\r\n templateUrl: './open-code-editor-button.component.html',\r\n styleUrls: ['./open-code-editor-button.component.css'],\r\n})\r\nexport class OpenCodeEditorButtonComponent implements OnDestroy {\r\n private ngUnsubscribe = new Subject();\r\n\r\n @Input() code: string;\r\n @Input() disabled: boolean;\r\n @Input() defaultCodeProvider: DefaultCodeProvider;\r\n @Input() instanceId: string;\r\n @Output() codeSaved = new EventEmitter();\r\n\r\n constructor(private codeEditorService: CodeEditorService) {\r\n this.codeEditorService.closeAndSaveCodeRequest.pipe(takeUntil(this.ngUnsubscribe)).subscribe((res: any) => {\r\n this.codeSaved.emit({ code: res.code, instanceId: res.instanceId });\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.ngUnsubscribe.next();\r\n this.ngUnsubscribe.complete();\r\n }\r\n\r\n openCodeEditor() {\r\n $('#codeEditorModal').modal('show');\r\n $('#codeEditorInstanceId').val(this.instanceId);\r\n this.codeEditorService.setEditorCode({ code: this.code, defaultCodeProvider: this.defaultCodeProvider });\r\n }\r\n}\r\n","<button [id]=\"instanceId\" class=\"btn btn-primary\" (click)=\"openCodeEditor()\" [disabled]=\"disabled\">\r\n <i class=\"fa fa-code\"></i> Open Code Editor\r\n</button>\r\n","<div class=\"text-center\" style=\"margin-top: 20px; margin-bottom: 20px\" *ngIf=\"unitOperation.useSubFlowsheet\">\r\n <a (click)=\"openSubFlowsheet()\" class=\"btn btn-primary\" style=\"margin-bottom: 15px\"\r\n ><i class=\"fa fa-window-maximize\"></i> Use Subflowsheet</a\r\n >\r\n <hr />\r\n</div>\r\n<ul class=\"nav nav-tabs\" role=\"tablist\" style=\"margin-right: 15px; margin-top: 15px\">\r\n <li role=\"presentation\" class=\"active\">\r\n <a href=\"#blockSpecifications\" aria-controls=\"blockSpecifications\" role=\"tab\" data-toggle=\"tab\">General</a>\r\n </li>\r\n\r\n <li role=\"presentation\">\r\n <a href=\"#amine\" aria-controls=\"amine\" role=\"tab\" data-toggle=\"tab\">Utilities</a>\r\n </li>\r\n\r\n <li role=\"presentation\">\r\n <a href=\"#economics\" aria-controls=\"economics\" role=\"tab\" data-toggle=\"tab\">Economics</a>\r\n </li>\r\n\r\n <li role=\"presentation\">\r\n <a href=\"#constraints\" aria-controls=\"constraints\" role=\"tab\" data-toggle=\"tab\"> Constraints </a>\r\n </li>\r\n\r\n <li role=\"presentation\" *ngIf=\"!unitOperation.useSubFlowsheet\">\r\n <a href=\"#upgCustomModels\" aria-controls=\"upgCustomModels\" role=\"tab\" data-toggle=\"tab\"> Custom Models </a>\r\n </li>\r\n\r\n <li role=\"presentation\">\r\n <a href=\"#upgraderComments\" aria-controls=\"upgraderComments\" role=\"tab\" data-toggle=\"tab\">\r\n <i class=\"fa fa-comments fa-lg\" aria-hidden=\"true\"> </i>\r\n Comments\r\n </a>\r\n </li>\r\n</ul>\r\n\r\n<div class=\"tab-content pw-margin tab-content-padding\">\r\n <div role=\"tabpanel\" class=\"tab-pane fade in active\" id=\"blockSpecifications\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <div class=\"form-horizontal\">\r\n <div class=\"form-group\">\r\n <label for=\"level2Enabled\" class=\"control-label col-sm-4\"> Enable Level 2 Model </label>\r\n <div class=\"col-sm-4\">\r\n <label class=\"control-label\">\r\n <input\r\n type=\"checkbox\"\r\n id=\"level2Enabled\"\r\n (ngModelChange)=\"changeNodeTemplate($event)\"\r\n (click)=\"clearOpex()\"\r\n [(ngModel)]=\"unitOperation.useSubFlowsheet\" />\r\n </label>\r\n </div>\r\n\r\n <div class=\"clearfix\"></div>\r\n </div>\r\n <ng-container *ngIf=\"!unitOperation.useSubFlowsheet\">\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'ccrRemoval'\" class=\"pw-label control-label col-sm-4\"> CCR Removal </label>\r\n <sim-var-input [inputId]=\"'ccrRemoval'\" [simVar]=\"unitOperation.ccrRemoval\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'nitrogenRemoval'\" class=\"pw-label control-label col-sm-4\"> Nitrogen Removal </label>\r\n <sim-var-input [inputId]=\"'nitrogenRemoval'\" [simVar]=\"unitOperation.nitrogenRemoval\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'sulfurRemoval'\" class=\"pw-label control-label col-sm-4\"> Sulfur Removal </label>\r\n <sim-var-input [inputId]=\"'sulfurRemoval'\" [simVar]=\"unitOperation.sulfurRemoval\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'sweetProductRatio'\" class=\"pw-label control-label col-sm-4\">\r\n Sweet Product Ratio\r\n </label>\r\n <sim-var-input [inputId]=\"'sweetProductRatio'\" [simVar]=\"unitOperation.sweetProductRatio\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'swellFactor'\" class=\"pw-label control-label col-sm-4\"> Swell Factor </label>\r\n <div class=\"col-sm-4\">\r\n <select class=\"form-control\" disabled=\"disabled\">\r\n <option value=\"\">N/A</option>\r\n </select>\r\n </div>\r\n <sim-var-input\r\n [inputId]=\"'swellFactor'\"\r\n [hiddenUnit]=\"true\"\r\n [simVar]=\"unitOperation.swellFactor\"></sim-var-input>\r\n </div>\r\n </ng-container>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'sweetProductRatio'\" class=\"pw-label control-label col-sm-4\"> Volumetric Yield </label>\r\n <sim-var-input\r\n [inputId]=\"'volumetricYield'\"\r\n [simVar]=\"unitOperation.volumetricYield\"\r\n [readOnly]=\"true\"></sim-var-input>\r\n </div>\r\n\r\n <hr />\r\n <h4 class=\"subtitle\">GHG</h4>\r\n <ng-container *ngIf=\"!unitOperation.useSubFlowsheet\">\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'sweetGhgIntensity'\" class=\"pw-label control-label col-sm-4\">\r\n Sweet Product GHG Intensity\r\n </label>\r\n <sim-var-input [inputId]=\"'sweetGhgIntensity'\" [simVar]=\"unitOperation.sweetGhgIntensity\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'sourGhgIntensity'\" class=\"pw-label control-label col-sm-4\">\r\n Sour Product GHG Intensity\r\n </label>\r\n <sim-var-input [inputId]=\"'sourGhgIntensity'\" [simVar]=\"unitOperation.sourGhgIntensity\"></sim-var-input>\r\n </div>\r\n </ng-container>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'absoluteGhgEmissions'\" class=\"pw-label control-label col-sm-4\">\r\n Absolute GHG Emissions\r\n </label>\r\n <sim-var-input\r\n [inputId]=\"'absoluteGhgEmissions'\"\r\n [readOnly]=\"true\"\r\n [simVar]=\"unitOperation.absoluteGhgEmissions\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'ghgEmissions'\" class=\"pw-label control-label col-sm-4\"> GHG Emissions </label>\r\n <sim-var-input\r\n [inputId]=\"'ghgEmissions'\"\r\n [readOnly]=\"true\"\r\n [simVar]=\"unitOperation.ghgEmissions\"></sim-var-input>\r\n </div>\r\n\r\n <hr />\r\n <h4 class=\"subtitle\">Cogen</h4>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'cogenElectricityGeneration'\" class=\"pw-label control-label col-sm-4\">\r\n Cogen Electricity Generation\r\n </label>\r\n <sim-var-input\r\n [inputId]=\"'cogenElectricityGeneration'\"\r\n [simVar]=\"unitOperation.cogenElectricityGeneration\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'netElectricityExport'\" class=\"pw-label control-label col-sm-4\">\r\n Net Electricity Export\r\n </label>\r\n <sim-var-input\r\n [inputId]=\"'netElectricityExport'\"\r\n [simVar]=\"unitOperation.netElectricityExport\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'gridIntensity'\" class=\"pw-label control-label col-sm-4\"> Grid Intensity </label>\r\n <sim-var-input [inputId]=\"'gridIntensity'\" [simVar]=\"unitOperation.gridIntensity\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'cogenIntensity'\" class=\"pw-label control-label col-sm-4\"> Cogen Intensity </label>\r\n <sim-var-input [inputId]=\"'cogenIntensity'\" [simVar]=\"unitOperation.cogenIntensity\"></sim-var-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"amine\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <div class=\"form-horizontal\">\r\n <div class=\"form-group\" *ngIf=\"unitOperation.useSubFlowsheet\">\r\n <h4 class=\"subtitle\">Hydrogen</h4>\r\n <label [attr.for]=\"'hydrogenUse'\" class=\"pw-label control-label col-sm-4\"> Hydrogen Use </label>\r\n <sim-var-input [inputId]=\"'hydrogenUse'\" [readOnly]=\"true\" [simVar]=\"unitOperation.hydrogenUse\">\r\n </sim-var-input>\r\n </div>\r\n <h4 class=\"subtitle\">Amine</h4>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'totalH2SProduction'\" class=\"pw-label control-label col-sm-4\">\r\n Total H2S Production\r\n </label>\r\n <sim-var-input\r\n [inputId]=\"'totalH2SProduction'\"\r\n [readOnly]=\"true\"\r\n [simVar]=\"unitOperation.totalH2SProduction\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'deaUseRate'\" class=\"pw-label control-label col-sm-4\"> DEA Use Rate </label>\r\n <sim-var-input [inputId]=\"'deaUseRate'\" [simVar]=\"unitOperation.deaUseRate\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'amineCirculationRate'\" class=\"pw-label control-label col-sm-4\">\r\n Amine Circulation Rate\r\n </label>\r\n <sim-var-input\r\n [inputId]=\"'amineCirculationRate'\"\r\n [readOnly]=\"true\"\r\n [simVar]=\"unitOperation.amineCirculationRate\"></sim-var-input>\r\n </div>\r\n <label class=\"subtitle\">Steam</label>\r\n <a\r\n class=\"btn btn-outline btn-success btn-xs m-l-sm\"\r\n href=\"#steamDiv\"\r\n (click)=\"switchOpened()\"\r\n aria-expanded=\"false\">\r\n <i *ngIf=\"!isOpened\" class=\"fa fa-plus\"></i>\r\n <i *ngIf=\"isOpened\" class=\"fa fa-minus\"></i>\r\n </a>\r\n <div class=\"collapse\" id=\"steamDiv\" aria-expanded=\"false\" style=\"\">\r\n <div class=\"form-group\">\r\n <label for=\"useCustomModelForHydrogenPlants\" class=\"control-label col-sm-4\">\r\n Custom Steam Model for Hydrogen Plants\r\n </label>\r\n <div class=\"col-sm-4\">\r\n <label class=\"control-label\">\r\n <input\r\n type=\"checkbox\"\r\n id=\"useCustomModelForHydrogenPlants\"\r\n [(ngModel)]=\"unitOperation.useCustomModelForHydrogenPlants\" />\r\n </label>\r\n </div>\r\n\r\n <div class=\"clearfix\"></div>\r\n </div>\r\n\r\n <div style=\"margin-bottom: 20px\">\r\n <sob-open-code-editor-button\r\n [code]=\"unitOperation.hydrogenPlantsCustomModel\"\r\n [defaultCodeProvider]=\"steamDefaultCodeProvider\"\r\n [disabled]=\"!unitOperation.useCustomModelForHydrogenPlants\"\r\n [instanceId]=\"'upgraderSteamCodeEditor'\"\r\n (codeSaved)=\"saveSteamCustomModel($event)\"></sob-open-code-editor-button>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'steamMake900'\" class=\"pw-label control-label col-sm-4\"> 900# Steam Make </label>\r\n <sim-var-input\r\n [inputId]=\"'steamMake900'\"\r\n [readOnly]=\"true\"\r\n [simVar]=\"unitOperation.steamMake900\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'steamUse900'\" class=\"pw-label control-label col-sm-4\"> 900# Steam Use </label>\r\n <sim-var-input\r\n [inputId]=\"'steamUse900'\"\r\n [readOnly]=\"true\"\r\n [simVar]=\"unitOperation.steamUse900\"></sim-var-input>\r\n </div>\r\n <hr style=\"padding-bottom: 10px\" />\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'steamMake600'\" class=\"pw-label control-label col-sm-4\"> 600# Steam Make </label>\r\n <sim-var-input\r\n [inputId]=\"'steamMake600'\"\r\n [readOnly]=\"true\"\r\n [simVar]=\"unitOperation.steamMake600\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'steamUse600'\" class=\"pw-label control-label col-sm-4\"> 600# Steam Use </label>\r\n <sim-var-input\r\n [inputId]=\"'steamUse600'\"\r\n [readOnly]=\"true\"\r\n [simVar]=\"unitOperation.steamUse600\"></sim-var-input>\r\n </div>\r\n <hr style=\"padding-bottom: 10px\" />\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'steamMake150'\" class=\"pw-label control-label col-sm-4\"> 150# Steam Make </label>\r\n <sim-var-input\r\n [inputId]=\"'steamMake150'\"\r\n [readOnly]=\"true\"\r\n [simVar]=\"unitOperation.steamMake150\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'steamUse150'\" class=\"pw-label control-label col-sm-4\"> 150# Steam Use </label>\r\n <sim-var-input\r\n [inputId]=\"'steamUse150'\"\r\n [readOnly]=\"true\"\r\n [simVar]=\"unitOperation.steamUse150\"></sim-var-input>\r\n </div>\r\n <hr style=\"padding-bottom: 10px\" />\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'steamMake50'\" class=\"pw-label control-label col-sm-4\"> 50# Steam Make </label>\r\n <sim-var-input\r\n [inputId]=\"'steamMake50'\"\r\n [readOnly]=\"true\"\r\n [simVar]=\"unitOperation.steamMake50\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'steamUse50'\" class=\"pw-label control-label col-sm-4\"> 50# Steam Use </label>\r\n <sim-var-input\r\n [inputId]=\"'steamUse50'\"\r\n [readOnly]=\"true\"\r\n [simVar]=\"unitOperation.steamUse50\"></sim-var-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"economics\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <div class=\"form-horizontal\">\r\n <ng-container *ngIf=\"!unitOperation.useSubFlowsheet\">\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'sweetProductPrice'\" class=\"pw-label control-label col-sm-4\">\r\n Sweet Product Price\r\n </label>\r\n <sim-var-input [inputId]=\"'sweetProductPrice'\" [simVar]=\"unitOperation.sweetProductPrice\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'sourProductPrice'\" class=\"pw-label control-label col-sm-4\"> Sour Product Price </label>\r\n <sim-var-input [inputId]=\"'sourProductPrice'\" [simVar]=\"unitOperation.sourProductPrice\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'electricityPrice'\" class=\"pw-label control-label col-sm-4\"> Electricity Price </label>\r\n <sim-var-input [inputId]=\"'electricityPrice'\" [simVar]=\"unitOperation.electricityPrice\"></sim-var-input>\r\n </div>\r\n </ng-container>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'revenue'\" class=\"pw-label control-label col-sm-4\"> Revenue </label>\r\n <sim-var-input [inputId]=\"'revenue'\" [simVar]=\"unitOperation.revenue\" [readOnly]=\"true\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'unitValue'\" class=\"pw-label control-label col-sm-4\"> Before Tax Cash Flow </label>\r\n <sim-var-input [inputId]=\"'unitValue'\" [simVar]=\"unitOperation.unitValue\" [readOnly]=\"true\"></sim-var-input>\r\n </div>\r\n <hr />\r\n\r\n <h4 class=\"subtitle\">OPEX</h4>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'opexVar'\" class=\"pw-label control-label col-sm-4\"> Variable </label>\r\n <sim-var-input [inputId]=\"'opexVar'\" [simVar]=\"unitOperation.opexVar\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'opexGasDiesel'\" class=\"pw-label control-label col-sm-4\"> Gas Diesel </label>\r\n <sim-var-input [inputId]=\"'opexGasDiesel'\" [simVar]=\"unitOperation.opexGasDiesel\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'opexPower'\" class=\"pw-label control-label col-sm-4\"> Power </label>\r\n <sim-var-input [inputId]=\"'opexPower'\" [simVar]=\"unitOperation.opexPower\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'opexCarbonDioxide'\" class=\"pw-label control-label col-sm-4\"> CO2 </label>\r\n <sim-var-input\r\n [inputId]=\"'opexCarbonDioxide'\"\r\n [simVar]=\"unitOperation.opexCarbonDioxide\"\r\n [readOnly]=\"true\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'opexFixed'\" class=\"pw-label control-label col-sm-4\"> Fixed </label>\r\n <sim-var-input [inputId]=\"'opexFixed'\" [simVar]=\"unitOperation.opexFixed\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'opexTotal'\" class=\"pw-label control-label col-sm-4\"> Total </label>\r\n <sim-var-input [inputId]=\"'opexTotal'\" [simVar]=\"unitOperation.opexTotal\" [readOnly]=\"true\"></sim-var-input>\r\n </div>\r\n\r\n <hr />\r\n <h4 class=\"subtitle\">CAPEX</h4>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'capexAmortized'\" class=\"pw-label control-label col-sm-4\"> Amortized CAPEX </label>\r\n <sim-var-input [inputId]=\"'capexAmortized'\" [simVar]=\"unitOperation.capexAmortized\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'capexTotal'\" class=\"pw-label control-label col-sm-4\"> Total </label>\r\n <sim-var-input [inputId]=\"'capexTotal'\" [simVar]=\"unitOperation.capexTotal\" [readOnly]=\"true\"></sim-var-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"constraints\">\r\n <p style=\"text-align: right; position: relative\">\r\n <span style=\"position: absolute; right: -25px; top: -20px; font-weight: bold\">Active</span>\r\n </p>\r\n <div class=\"form-horizontal\">\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'capacity'\" class=\"pw-label control-label col-sm-4\"> Maximum Feed Capacity </label>\r\n <sim-var-input [inputId]=\"'capacity'\" [isConstraint]=\"true\" [simVar]=\"unitOperation.capacity\"> </sim-var-input>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'maximumSulfurContent'\" class=\"pw-label control-label col-sm-4\">\r\n Maximum Sulfur Content\r\n </label>\r\n <sim-var-input\r\n [inputId]=\"'maximumSulfurContent'\"\r\n [isConstraint]=\"true\"\r\n [simVar]=\"unitOperation.maximumSulfurContent\">\r\n </sim-var-input>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'maximumMassDensity'\" class=\"pw-label control-label col-sm-4\"> Maximum Mass Density </label>\r\n <sim-var-input\r\n [inputId]=\"'maximumMassDensity'\"\r\n [isConstraint]=\"true\"\r\n [simVar]=\"unitOperation.maximumMassDensity\">\r\n </sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'maximumHydrogenProduction'\" class=\"pw-label control-label col-sm-4\">\r\n Maximum Hydrogen Production\r\n </label>\r\n <sim-var-input\r\n [inputId]=\"'maximumHydrogenProduction'\"\r\n [isConstraint]=\"true\"\r\n [simVar]=\"unitOperation.maximumHydrogenProduction\">\r\n </sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'amineRateCapacity'\" class=\"pw-label control-label col-sm-4\"> Amine Rate Capacity </label>\r\n <sim-var-input [inputId]=\"'amineRateCapacity'\" [isConstraint]=\"true\" [simVar]=\"unitOperation.amineRateCapacity\">\r\n </sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'sulfurCapacity'\" class=\"pw-label control-label col-sm-4\"> Sulfur Capacity </label>\r\n <sim-var-input [inputId]=\"'sulfurCapacity'\" [isConstraint]=\"true\" [simVar]=\"unitOperation.sulfurCapacity\">\r\n </sim-var-input>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"upgCustomModels\">\r\n <div class=\"form-group\">\r\n <label for=\"customModelEnabled\" class=\"control-label col-sm-4\"> Enable Custom Models </label>\r\n <div class=\"col-sm-4\">\r\n <label class=\"control-label\">\r\n <input type=\"checkbox\" id=\"customModelEnabled\" [(ngModel)]=\"unitOperation.useCustomModel\" />\r\n </label>\r\n </div>\r\n\r\n <div class=\"clearfix\"></div>\r\n </div>\r\n\r\n <div>\r\n <sob-open-code-editor-button\r\n [code]=\"unitOperation.upgraderModelScript\"\r\n [defaultCodeProvider]=\"defaultCodeProvider\"\r\n [disabled]=\"!unitOperation.useCustomModel\"\r\n [instanceId]=\"'upgraderCodeEditor'\"\r\n (codeSaved)=\"saveCustomModel($event)\"></sob-open-code-editor-button>\r\n </div>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"upgraderComments\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <sob-unit-operation-comments [unitOpId]=\"this.unitOperation.id\"></sob-unit-operation-comments>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, Input } from '@angular/core';\r\nimport { Upgrader } from '../../../_models/_unit-operations/upgrader';\r\nimport { DefaultCodeProvider } from '../../../_services/custom-code-providers/default-code-provider';\r\nimport { defaultUpgraderModel } from '../../../_config/unit-operations/default-models/default-upgrader-model';\r\nimport { FlowsheetService } from '../../../_services/flowsheet.service';\r\nimport { unitOperationsConfig } from '../../../_config/unit-operations.config';\r\nimport { FlowsheetDiagramService } from '../../../_services/flowsheet-diagram/flowsheet-diagram.service';\r\nimport { defaultSteamModelForHydrogenPlants } from '../../../_config/unit-operations/default-models/default-steam-model-for-hydrogen-plants';\r\nimport { UpgraderCodeProvider } from '../../../_services/custom-code-providers/upgrader-code-provider';\r\n\r\n@Component({\r\n selector: 'sob-upgrader',\r\n templateUrl: './upgrader.component.html',\r\n styleUrls: ['./upgrader.component.css'],\r\n})\r\nexport class UpgraderComponent {\r\n @Input()\r\n unitOperation: Upgrader;\r\n\r\n isOpened = false;\r\n defaultCodeProvider: UpgraderCodeProvider;\r\n steamDefaultCodeProvider: DefaultCodeProvider;\r\n\r\n constructor(private flowsheetService: FlowsheetService, private flowsheetDiagramService: FlowsheetDiagramService) {\r\n this.defaultCodeProvider = new UpgraderCodeProvider();\r\n this.steamDefaultCodeProvider = new DefaultCodeProvider(defaultSteamModelForHydrogenPlants);\r\n }\r\n\r\n saveCustomModel(res: any) {\r\n if (res.instanceId === 'upgraderCodeEditor') {\r\n this.unitOperation.upgraderModelScript = res.code;\r\n }\r\n }\r\n\r\n saveSteamCustomModel(res: any) {\r\n if (res.instanceId === 'upgraderSteamCodeEditor') {\r\n this.unitOperation.hydrogenPlantsCustomModel = res.code;\r\n }\r\n }\r\n\r\n openSubFlowsheet() {\r\n if ($('#closePropertyWindow').attr('disabled')) {\r\n return;\r\n }\r\n this.flowsheetService.prepareUnitOperationForSave();\r\n this.flowsheetService.closePropertyWindow();\r\n\r\n // TODO what is this?\r\n setTimeout(() => {}, 500);\r\n this.flowsheetService.loadUnitOperationFlowsheet(this.unitOperation.id);\r\n }\r\n\r\n clearOpex() {\r\n if (!this.unitOperation.useSubFlowsheet) {\r\n this.unitOperation.opexTotal.value = null;\r\n $('#opexTotal').val('');\r\n\r\n this.unitOperation.opexVar.value = null;\r\n $('#opexVar').val('');\r\n\r\n this.unitOperation.opexGasDiesel.value = null;\r\n $('#opexGasDiesel').val('');\r\n\r\n this.unitOperation.opexPower.value = null;\r\n $('#opexPower').val('');\r\n\r\n this.unitOperation.opexCarbonDioxide.value = null;\r\n $('#opexCarbonDioxide').val('');\r\n\r\n this.unitOperation.opexFixed.value = null;\r\n $('#opexFixed').val('');\r\n }\r\n }\r\n\r\n changeNodeTemplate(subFlowsheetEnabled) {\r\n if (subFlowsheetEnabled) {\r\n this.flowsheetDiagramService.changeTemplate(this.unitOperation.id, unitOperationsConfig.flexibleUpgrader.key);\r\n } else {\r\n this.flowsheetDiagramService.changeTemplate(this.unitOperation.id, unitOperationsConfig.upgrader.key);\r\n }\r\n this.flowsheetDiagramService.deleteInletStreams(this.unitOperation.id);\r\n this.flowsheetDiagramService.deleteOutletStreams(this.unitOperation.id);\r\n }\r\n\r\n // TODO unused - remove\r\n changeInletPorts(has2Inlets) {\r\n if (has2Inlets) {\r\n this.flowsheetDiagramService.changeTemplate(\r\n this.unitOperation.id,\r\n unitOperationsConfig.multipleInletUpgrader.key\r\n );\r\n } else {\r\n this.flowsheetDiagramService.changeTemplate(this.unitOperation.id, unitOperationsConfig.level2Upgrader.key);\r\n }\r\n this.flowsheetDiagramService.deleteInletStreams(this.unitOperation.id);\r\n }\r\n\r\n switchOpened() {\r\n $('#steamDiv').collapse('toggle');\r\n this.isOpened = !this.isOpened;\r\n }\r\n}\r\n","export const defaultSteamModelForHydrogenPlants = '';\r\n","import { AbstractControl, UntypedFormArray } from '@angular/forms';\r\nimport { BaseObjectFormGroupWrapper } from '../../_form-utils/base-object-form-group-wrapper';\r\n\r\nexport abstract class AbstractFormGroupPropertyWindow {\r\n abstract formGroupWrapper: BaseObjectFormGroupWrapper;\r\n\r\n abstract addControls();\r\n\r\n get propertyWindowFormGroup() {\r\n return this.formGroupWrapper.getFormGroup();\r\n }\r\n\r\n init() {\r\n this.addControls();\r\n this.formGroupWrapper.storeOriginalValue();\r\n }\r\n\r\n isTouchedOrDirty(control: AbstractControl) {\r\n return control.touched || control.dirty;\r\n }\r\n\r\n shouldShowValidationError(formControl: AbstractControl) {\r\n return formControl.invalid && (formControl.dirty || formControl.touched);\r\n }\r\n\r\n shouldShowFormArrayValidationError(formArray: UntypedFormArray, controlIndex: number) {\r\n return formArray.invalid && (formArray.controls[controlIndex].dirty || formArray.controls[controlIndex].touched);\r\n }\r\n}\r\n","import { AbstractControl, FormGroup } from '@angular/forms';\r\n\r\nexport class IdentifiableFormGroup<\r\n TControl extends { [K in keyof TControl]: AbstractControl<any, any> }\r\n> extends FormGroup<TControl> {\r\n private readonly formGroupId: string;\r\n\r\n constructor(formGroupId: string, controls: TControl) {\r\n super(controls);\r\n this.formGroupId = formGroupId;\r\n }\r\n\r\n getFormGroupId() {\r\n return this.formGroupId;\r\n }\r\n}\r\n","import { FormArray, FormControl, Validators } from '@angular/forms';\r\nimport { Injectable } from '@angular/core';\r\nimport { RangeDistributionRatioVariable } from '../_models/_unit-operations/range-distribution-ratio-variable';\r\nimport { IdentifiableFormGroup } from '../shared/identifiable-form-group';\r\nimport { isNullOrUndefined, roundNumber } from '../_utils/utils';\r\nimport { CustomValidators } from '../shared/custom-validators';\r\n\r\nexport type RangeDistributionRatioVariableForm = IdentifiableFormGroup<{\r\n minimumValue: FormControl<number>;\r\n maximumValue: FormControl<number>;\r\n value: FormControl<number>;\r\n}>;\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class RangeDistributionRatioVariableFormBuilder {\r\n formArray(variablesArray: RangeDistributionRatioVariable[]): FormArray<RangeDistributionRatioVariableForm> {\r\n return new FormArray(variablesArray.map(this.control));\r\n }\r\n\r\n control(dv: RangeDistributionRatioVariable): RangeDistributionRatioVariableForm {\r\n const dvRoundedValue = isNullOrUndefined(dv.value) ? dv.value : roundNumber(dv.value, 4);\r\n\r\n return new IdentifiableFormGroup(dv.unitOperationId, {\r\n minimumValue: new FormControl(dv.minimumValue, [Validators.min(0), Validators.max(1)]),\r\n maximumValue: new FormControl(dv.maximumValue, [Validators.min(0), Validators.max(1)]),\r\n value: new FormControl(dvRoundedValue, [Validators.min(0), Validators.max(1)]),\r\n });\r\n }\r\n}\r\n","<table class=\"table\" [formGroup]=\"ratioVariablesFormGroup\">\r\n <thead>\r\n <tr>\r\n <th class=\"ratio-variables-first-column\">Name</th>\r\n <th>Min</th>\r\n <th>Max</th>\r\n <th>Value</th>\r\n </tr>\r\n </thead>\r\n\r\n <tbody formArrayName=\"ratioVariables\">\r\n <ng-container *ngFor=\"let group of ratioVariablesFormArray.controls; let i = index\">\r\n <tr [formGroupName]=\"i\">\r\n <td>{{ findDistributionRatioName(i) }}</td>\r\n <td>\r\n <input\r\n [readOnly]=\"isRangeControlReadonly()\"\r\n (change)=\"sanitizeRangeValues(i, 'minimumValue')\"\r\n type=\"text\"\r\n class=\"form-control\"\r\n formControlName=\"minimumValue\" />\r\n </td>\r\n <td>\r\n <input\r\n [readOnly]=\"isRangeControlReadonly()\"\r\n (change)=\"sanitizeRangeValues(i, 'maximumValue')\"\r\n type=\"text\"\r\n class=\"form-control\"\r\n formControlName=\"maximumValue\" />\r\n </td>\r\n\r\n <td>\r\n <input\r\n (change)=\"roundValues(i)\"\r\n type=\"text\"\r\n class=\"form-control\"\r\n formControlName=\"value\"\r\n [readOnly]=\"isValueControlReadonly(i)\" />\r\n </td>\r\n </tr>\r\n\r\n <tr *ngIf=\"areFormControlsValid(i)\">\r\n <td colspan=\"3\">\r\n <span class=\"text-danger\">\r\n <span *ngIf=\"formControlsHasErrors(i, 'required')\">Please enter a value</span>\r\n <span *ngIf=\"formControlsHasErrors(i, 'max')\">Distribution ratio cannot be greater than 1</span>\r\n <span *ngIf=\"formControlsHasErrors(i, 'min')\">Distribution ratio cannot be negative</span>\r\n </span>\r\n </td>\r\n </tr>\r\n </ng-container>\r\n </tbody>\r\n</table>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { FormArray, FormControl, FormGroup } from '@angular/forms';\r\nimport { RangeDistributionRatioVariable } from '../../../_models/_unit-operations/range-distribution-ratio-variable';\r\nimport { RangeDistributionRatioVariableForm } from '../../../_form-utils/range-distribution-ratio-variable-form-builder';\r\nimport { CoreService } from '../../../_services/core.service';\r\nimport { roundNumber } from '../../../_utils/utils';\r\n\r\ndeclare let unitConverter: any;\r\n\r\n@Component({\r\n selector: 'sob-reactive-range-distribution-ratio-variables',\r\n templateUrl: './reactive-range-distribution-ratio-variables.component.html',\r\n styleUrls: ['./reactive-range-distribution-ratio-variables.component.css'],\r\n})\r\nexport class ReactiveRangeDistributionRatioVariablesComponent implements OnInit {\r\n @Input() ratioVariables!: RangeDistributionRatioVariable[];\r\n @Input() valueControlsReadonly!: boolean;\r\n @Input() readonly = false;\r\n @Input() ratioVariablesFormGroup!: FormGroup<{ ratioVariables: FormArray<RangeDistributionRatioVariableForm> }>;\r\n\r\n constructor(private core: CoreService) {}\r\n\r\n ngOnInit() {\r\n this.ratioVariablesFormArray.valueChanges.forEach(() => {\r\n this.calculateLastDistributionVariable();\r\n });\r\n }\r\n\r\n findDistributionRatioName(i: number) {\r\n const id = this.ratioVariables[i].unitOperationId;\r\n return this.core.currentCase.getUnitOperationName(id);\r\n }\r\n\r\n sanitizeRangeValues(i: number, target: 'minimumValue' | 'maximumValue') {\r\n const ratioVariableFormGroup = this.ratioVariablesFormArray.controls[i];\r\n const parsedMin = unitConverter.parseFloatString(ratioVariableFormGroup.controls.minimumValue.value);\r\n const parsedMax = unitConverter.parseFloatString(ratioVariableFormGroup.controls.maximumValue.value);\r\n\r\n if (parsedMin > parsedMax) {\r\n ratioVariableFormGroup.get(target).setValue(undefined);\r\n }\r\n\r\n this.roundValues(i);\r\n }\r\n\r\n roundValues(i: number) {\r\n const ratioVariableFormGroup = this.ratioVariablesFormArray.controls[i];\r\n\r\n const parsedValue = unitConverter.parseFloatString(ratioVariableFormGroup.controls.value.value);\r\n const parsedMin = unitConverter.parseFloatString(ratioVariableFormGroup.controls.minimumValue.value);\r\n const parsedMax = unitConverter.parseFloatString(ratioVariableFormGroup.controls.maximumValue.value);\r\n\r\n if (!Number.isNaN(parsedValue)) {\r\n ratioVariableFormGroup.controls.value.setValue(roundNumber(parsedValue, 3));\r\n }\r\n\r\n if (!Number.isNaN(parsedMin)) {\r\n ratioVariableFormGroup.controls.minimumValue.setValue(roundNumber(parsedMin, 3));\r\n }\r\n\r\n if (!Number.isNaN(parsedMax)) {\r\n ratioVariableFormGroup.controls.maximumValue.setValue(roundNumber(parsedMax, 3));\r\n }\r\n }\r\n\r\n calculateLastDistributionVariable() {\r\n const { controls } = this.ratioVariablesFormArray;\r\n\r\n if (controls.length <= 1) {\r\n return;\r\n }\r\n\r\n let total = 0;\r\n\r\n for (let i = 0; i < controls.length - 1; i++) {\r\n const ratioVariableFormGroup = controls[i];\r\n const valueParsed = unitConverter.parseFloatString(ratioVariableFormGroup.controls.value.value);\r\n\r\n if (!Number.isNaN(valueParsed)) {\r\n total += valueParsed;\r\n } else {\r\n return;\r\n }\r\n }\r\n\r\n const lastDistributionRatio = parseFloat((1 - total).toFixed(5));\r\n\r\n controls[controls.length - 1].controls.value.setValue(lastDistributionRatio, {\r\n emitEvent: false,\r\n emitModelToViewChange: true,\r\n emitViewToModelChange: true,\r\n });\r\n controls[controls.length - 1].controls.value.markAsDirty();\r\n }\r\n\r\n isRangeControlReadonly() {\r\n return !this.valueControlsReadonly || this.readonly;\r\n }\r\n\r\n isValueControlReadonly(i: number) {\r\n return i === this.ratioVariablesFormArray.controls.length - 1 || this.valueControlsReadonly || this.readonly;\r\n }\r\n\r\n get ratioVariablesFormArray() {\r\n return this.ratioVariablesFormGroup.controls.ratioVariables;\r\n }\r\n\r\n getValueControlAt(i: number) {\r\n return this.ratioVariablesFormArray.controls[i].controls.value;\r\n }\r\n\r\n getMinimumValueControlAt(i: number) {\r\n return this.ratioVariablesFormArray.controls[i].controls.minimumValue;\r\n }\r\n\r\n getMaximumValueControlAt(i: number) {\r\n return this.ratioVariablesFormArray.controls[i].controls.maximumValue;\r\n }\r\n\r\n areFormControlsValid(i: number) {\r\n return (\r\n this.isSingleFormControlValid(this.getValueControlAt(i)) ||\r\n this.isSingleFormControlValid(this.getMinimumValueControlAt(i)) ||\r\n this.isSingleFormControlValid(this.getMaximumValueControlAt(i))\r\n );\r\n }\r\n\r\n isSingleFormControlValid(control: FormControl) {\r\n return control.invalid && (control.dirty || control.touched);\r\n }\r\n\r\n formControlsHasErrors(i: number, type: string) {\r\n return !!(\r\n this.getValueControlAt(i).errors?.[type] ||\r\n this.getMinimumValueControlAt(i).errors?.[type] ||\r\n this.getMaximumValueControlAt(i).errors?.[type]\r\n );\r\n }\r\n}\r\n","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\r\nimport { FormArray, FormControl, FormGroup } from '@angular/forms';\r\nimport { SubSink } from 'subsink';\r\nimport { AbstractFormGroupPropertyWindow } from '../abstract-form-group-property-window';\r\nimport { CoreService } from '../../../_services/core.service';\r\nimport { BaseObjectFormGroupWrapper } from '../../../_form-utils/base-object-form-group-wrapper';\r\nimport { Splitter } from '../../../_models/_unit-operations/splitter';\r\nimport {\r\n RangeDistributionRatioVariableForm,\r\n RangeDistributionRatioVariableFormBuilder,\r\n} from '../../../_form-utils/range-distribution-ratio-variable-form-builder';\r\n\r\n@Component({\r\n selector: 'sob-splitter',\r\n templateUrl: './splitter.component.html',\r\n styleUrls: ['./splitter.component.css'],\r\n})\r\nexport class SplitterComponent extends AbstractFormGroupPropertyWindow implements OnInit, OnDestroy {\r\n @Input() formGroupWrapper: BaseObjectFormGroupWrapper;\r\n @Input() unitOperation: Splitter;\r\n\r\n protected formGroup = new FormGroup({\r\n name: new FormControl(''),\r\n isOptimizable: new FormControl(true),\r\n distributionRatioVariables: new FormArray<RangeDistributionRatioVariableForm>([]),\r\n });\r\n\r\n protected rangeDistributionVariablesFormGroup = new FormGroup({\r\n ratioVariables: new FormArray<RangeDistributionRatioVariableForm>([]),\r\n });\r\n\r\n private subSink = new SubSink();\r\n\r\n constructor(\r\n private coreService: CoreService,\r\n private rangeRatioVariablesFormBuilder: RangeDistributionRatioVariableFormBuilder\r\n ) {\r\n super();\r\n\r\n this.subSink.add(\r\n this.coreService.unitOperationRemovedRequest.subscribe(uo => {\r\n this.removeDistributionRatioVariable(uo.id);\r\n })\r\n );\r\n\r\n this.subSink.add(\r\n this.coreService.streamRemovedRequest.subscribe(s => {\r\n if (s.inletUnitOperationId === this.unitOperation.id) {\r\n this.removeDistributionRatioVariable(s.outletUnitOperationId);\r\n }\r\n })\r\n );\r\n\r\n this.subSink.add(\r\n this.coreService.streamAddedRequest.subscribe(s => {\r\n if (s.inletUnitOperationId === this.unitOperation.id) {\r\n this.addDistributionRatioVariable(s.outletUnitOperationId);\r\n }\r\n })\r\n );\r\n }\r\n\r\n ngOnInit(): void {\r\n this.init();\r\n }\r\n\r\n addControls() {\r\n this.formGroup.controls.name.patchValue(this.unitOperation.name);\r\n this.formGroup.controls.isOptimizable.patchValue(this.unitOperation.isOptimizable);\r\n\r\n const rangeDistributionVariablesFormArray = this.rangeRatioVariablesFormBuilder.formArray(\r\n this.unitOperation.distributionRatioVariables\r\n );\r\n\r\n this.formGroup.controls.distributionRatioVariables = rangeDistributionVariablesFormArray;\r\n this.rangeDistributionVariablesFormGroup.controls.ratioVariables = rangeDistributionVariablesFormArray;\r\n\r\n // copy everything to the main form... how good is this?\r\n for (const key of Object.keys(this.formGroup.controls)) {\r\n this.propertyWindowFormGroup.addControl(key, this.formGroup.controls[key]);\r\n }\r\n }\r\n\r\n // region adding/removing distribution ratio variables when property window is open\r\n private addDistributionRatioVariable(outletUnitOperationId: string) {\r\n this.unitOperation.addOutletDistributionRatioVariables(outletUnitOperationId);\r\n\r\n const ratioVariable = this.unitOperation.findDistributionRatioVariable(outletUnitOperationId);\r\n\r\n const ratioVariableControl = this.rangeRatioVariablesFormBuilder.control(ratioVariable);\r\n this.rangeDistributionVariablesFormGroup.controls.ratioVariables.push(ratioVariableControl);\r\n }\r\n\r\n /**\r\n * Removes a distribution ratio variable\r\n * Makes sense when a stream is deleted\r\n * @param unitOperationId\r\n * @private\r\n */\r\n private removeDistributionRatioVariable(unitOperationId: string) {\r\n const formGroupToRemove = this.rangeDistributionVariablesFormGroup.controls.ratioVariables.controls.find(value => {\r\n return value.getFormGroupId() === unitOperationId;\r\n });\r\n\r\n if (!formGroupToRemove) {\r\n return;\r\n }\r\n\r\n const formGroupIndex =\r\n this.rangeDistributionVariablesFormGroup.controls.ratioVariables.controls.indexOf(formGroupToRemove);\r\n this.rangeDistributionVariablesFormGroup.controls.ratioVariables.removeAt(formGroupIndex);\r\n\r\n // TODO remove this when unit operation copies are no longer needed\r\n this.unitOperation.removeOutletDistributionRatioVariables(unitOperationId);\r\n }\r\n // endregion\r\n\r\n ratioVariableValueControlsReadonly() {\r\n return this.formGroup.controls.isOptimizable.value;\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subSink.unsubscribe();\r\n }\r\n}\r\n","<ul class=\"nav nav-tabs\" role=\"tablist\" style=\"margin-right: 15px\">\r\n <li role=\"presentation\" class=\"active\">\r\n <a href=\"#blockSpecifications\" aria-controls=\"blockSpecifications\" role=\"tab\" data-toggle=\"tab\">Model</a>\r\n </li>\r\n\r\n <li role=\"presentation\">\r\n <a href=\"#waterSplitterComments\" aria-controls=\"waterSplitterComments\" role=\"tab\" data-toggle=\"tab\">\r\n <i class=\"fa fa-comments fa-lg {{ this.unitOperation.comments ? 'gentle-hover-shake' : '' }}\" aria-hidden=\"true\">\r\n </i>\r\n Comments\r\n </a>\r\n </li>\r\n</ul>\r\n\r\n<div class=\"tab-content pw-margin tab-content-padding\" [formGroup]=\"propertyWindowFormGroup\">\r\n <div role=\"tabpanel\" class=\"tab-pane fade in active\" id=\"blockSpecifications\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <div class=\"form-horizontal\">\r\n <div class=\"form-group m-b-md\">\r\n <label for=\"isOptimizable\" class=\"control-label col-sm-4\"> Optimize </label>\r\n\r\n <div class=\"col-sm-4\">\r\n <label for=\"isOptimizable\" class=\"control-label\">\r\n <input type=\"checkbox\" id=\"isOptimizable\" formControlName=\"isOptimizable\" />\r\n </label>\r\n </div>\r\n </div>\r\n\r\n <label class=\"control-label col-sm-4\"> Stream Name </label>\r\n\r\n <label class=\"control-label col-sm-6\"> Distribution Ratio </label>\r\n\r\n <br />\r\n <br />\r\n <br />\r\n <sob-reactive-range-distribution-ratio-variables\r\n [valueControlsReadonly]=\"ratioVariableValueControlsReadonly()\"\r\n [ratioVariables]=\"unitOperation.distributionRatioVariables\"\r\n [ratioVariablesFormGroup]=\"\r\n rangeDistributionVariablesFormGroup\r\n \"></sob-reactive-range-distribution-ratio-variables>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"waterSplitterComments\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <sob-unit-operation-comments [unitOpId]=\"this.unitOperation.id\"></sob-unit-operation-comments>\r\n </div>\r\n </div>\r\n</div>\r\n","<ul class=\"nav nav-tabs\" role=\"tablist\">\r\n <li role=\"presentation\" class=\"active\">\r\n <a href=\"#mixerGeneral\" aria-controls=\"mixerGeneral\" role=\"tab\" data-toggle=\"tab\">General</a>\r\n </li>\r\n\r\n <li role=\"presentation\">\r\n <a href=\"#mixerConstraints\" aria-controls=\"mixerConstraints\" role=\"tab\" data-toggle=\"tab\">Constraints</a>\r\n </li>\r\n</ul>\r\n\r\n<div class=\"tab-content pw-margin tab-content-padding\">\r\n <div role=\"tabpanel\" class=\"tab-pane fade in active\" id=\"mixerGeneral\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <div class=\"form-horizontal\">\r\n <h4 class=\"subtitle\">Inlet Streams</h4>\r\n\r\n <ul *ngFor=\"let inletStream of inletStreams\" class=\"inletStreamsList\">\r\n <li>From {{ inletStream.inletUnitOperation.name }}</li>\r\n </ul>\r\n\r\n <div *ngIf=\"!inletStreams.length\" class=\"outletStreamName\">No streams available</div>\r\n\r\n <h4 class=\"subtitle\" style=\"margin-top: 20px\">Outlet Stream</h4>\r\n <div *ngIf=\"outletStream\" class=\"outletStreamName\">To {{ outletStream.outletUnitOperation.name }}</div>\r\n <div *ngIf=\"!outletStream\" class=\"outletStreamName\">No stream available</div>\r\n </div>\r\n\r\n <ul class=\"nav nav-tabs\" role=\"tablist\" style=\"margin-right: 15px; margin-top: 20px\">\r\n <li role=\"presentation\" class=\"active\">\r\n <a href=\"#upgMixerComments\" aria-controls=\"upgMixerComments\" role=\"tab\" data-toggle=\"tab\">\r\n <i class=\"fa fa-comments fa-lg\" aria-hidden=\"true\"> </i>\r\n Comments\r\n </a>\r\n </li>\r\n </ul>\r\n <div class=\"tab-content pw-margin tab-content-padding\">\r\n <div role=\"tabpanel\" class=\"tab-pane fade in active\" id=\"upgMixerComments\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <sob-unit-operation-comments [unitOpId]=\"this.unitOperation.id\"></sob-unit-operation-comments>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"mixerConstraints\" [formGroup]=\"formGroup\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <div class=\"form-horizontal\">\r\n <div class=\"form-group\">\r\n <label for=\"mixerConstraintOption\" class=\"pw-label control-label col-sm-4\">Constraint Option</label>\r\n <div class=\"col-sm-6\">\r\n <select class=\"form-control\" id=\"mixerConstraintOption\" formControlName=\"constraintOption\">\r\n <option value=\"{{ MixerConstraintOption.NONE }}\">None</option>\r\n <option value=\"{{ MixerConstraintOption.BLEND_RATIO }}\">Blend Ratio</option>\r\n </select>\r\n </div>\r\n </div>\r\n\r\n <ng-container *ngIf=\"isBlendRatioConstraintSelected()\">\r\n <div class=\"form-group\">\r\n <label for=\"mixerBlendRecipeOption\" class=\"pw-label control-label col-sm-4\">Blend Recipe Option</label>\r\n <div class=\"col-sm-6\">\r\n <select class=\"form-control\" id=\"mixerBlendRecipeOption\" formControlName=\"blendRecipeOption\">\r\n <option value=\"{{ MixerBlendRecipeOption.EXACT }}\">Exact</option>\r\n <option value=\"{{ MixerBlendRecipeOption.RANGE }}\">Range</option>\r\n </select>\r\n </div>\r\n </div>\r\n\r\n <sob-reactive-range-distribution-ratio-variables\r\n [valueControlsReadonly]=\"mixingRatioValueControlsReadonly()\"\r\n [ratioVariables]=\"unitOperation.mixingRatioVariables\"\r\n [ratioVariablesFormGroup]=\"\r\n rangeDistributionVariablesFormGroup\r\n \"></sob-reactive-range-distribution-ratio-variables>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\r\nimport { SubSink } from 'subsink';\r\nimport { FormArray, FormControl, FormGroup } from '@angular/forms';\r\nimport { Mixer } from '../../../_models/_unit-operations/mixer';\r\nimport { SuncorMaterialStream } from '../../../_models';\r\nimport { CoreService } from '../../../_services/core.service';\r\nimport { AbstractFormGroupPropertyWindow } from '../abstract-form-group-property-window';\r\nimport { BaseObjectFormGroupWrapper } from '../../../_form-utils/base-object-form-group-wrapper';\r\nimport {\r\n RangeDistributionRatioVariableForm,\r\n RangeDistributionRatioVariableFormBuilder,\r\n} from '../../../_form-utils/range-distribution-ratio-variable-form-builder';\r\nimport { MixerBlendRecipeOption, MixerConstraintOption } from '../../../_config/unit-operations/mixer-enums';\r\nimport { BaseStream } from '../../../_models/_streams/base-stream';\r\n\r\n@Component({\r\n selector: 'sob-mixer',\r\n templateUrl: './mixer.component.html',\r\n styleUrls: ['./mixer.component.css'],\r\n})\r\nexport class MixerComponent extends AbstractFormGroupPropertyWindow implements OnInit, OnDestroy {\r\n protected readonly MixerBlendRecipeOption = MixerBlendRecipeOption;\r\n protected readonly MixerConstraintOption = MixerConstraintOption;\r\n\r\n @Input() override formGroupWrapper: BaseObjectFormGroupWrapper;\r\n\r\n protected inletStreams: SuncorMaterialStream[] = [];\r\n protected outletStream: SuncorMaterialStream;\r\n\r\n @Input() unitOperation!: Mixer;\r\n\r\n private subSink = new SubSink();\r\n\r\n protected formGroup = new FormGroup({\r\n name: new FormControl(''),\r\n constraintOption: new FormControl(''),\r\n blendRecipeOption: new FormControl(''),\r\n mixingRatioVariables: new FormArray<RangeDistributionRatioVariableForm>([]),\r\n });\r\n\r\n protected rangeDistributionVariablesFormGroup = new FormGroup({\r\n ratioVariables: new FormArray<RangeDistributionRatioVariableForm>([]),\r\n });\r\n\r\n constructor(\r\n private coreService: CoreService,\r\n private rangeRatioVariablesFormBuilder: RangeDistributionRatioVariableFormBuilder\r\n ) {\r\n super();\r\n this.subSink.add(\r\n this.coreService.streamAddedRequest.subscribe(s => {\r\n if (s.inletUnitOperationId === this.unitOperation.id) {\r\n this.initOutletStream();\r\n }\r\n if (s.outletUnitOperationId === this.unitOperation.id) {\r\n this.initInletStreams();\r\n this.addMixingRatioVariable(s.inletUnitOperationId);\r\n }\r\n })\r\n );\r\n\r\n this.subSink.add(\r\n this.coreService.streamRemovedRequest.subscribe(s => {\r\n if (s.inletUnitOperationId === this.unitOperation.id) {\r\n this.removeOutletStream();\r\n }\r\n if (s.outletUnitOperationId === this.unitOperation.id) {\r\n this.removeInletStream(s);\r\n this.removeMixingRatioVariable(s.inletUnitOperationId);\r\n }\r\n })\r\n );\r\n }\r\n\r\n ngOnInit() {\r\n this.initInletStreams();\r\n this.initOutletStream();\r\n this.init();\r\n }\r\n\r\n addControls() {\r\n this.formGroup.controls.constraintOption.patchValue(this.unitOperation.constraintOption);\r\n this.formGroup.controls.blendRecipeOption.patchValue(this.unitOperation.blendRecipeOption);\r\n this.formGroup.controls.name.patchValue(this.unitOperation.name);\r\n\r\n const rangeDistributionVariablesFormArray = this.rangeRatioVariablesFormBuilder.formArray(\r\n this.unitOperation.mixingRatioVariables\r\n );\r\n\r\n this.formGroup.controls.mixingRatioVariables = rangeDistributionVariablesFormArray;\r\n this.rangeDistributionVariablesFormGroup.controls.ratioVariables = rangeDistributionVariablesFormArray;\r\n\r\n // copy everything to the main form... how good is this?\r\n for (const key of Object.keys(this.formGroup.controls)) {\r\n this.propertyWindowFormGroup.addControl(key, this.formGroup.controls[key]);\r\n }\r\n }\r\n\r\n get selectedBlendRecipeOption() {\r\n return this.formGroup.controls.blendRecipeOption.value || '';\r\n }\r\n\r\n isBlendRatioConstraintSelected() {\r\n return this.formGroup.controls.constraintOption.value === MixerConstraintOption.BLEND_RATIO;\r\n }\r\n\r\n private initOutletStream() {\r\n const { ownerCase } = this.unitOperation;\r\n const outletStreams = ownerCase.filterSuncorMaterialStreams((s: SuncorMaterialStream) => {\r\n return s.inletUnitOperationId === this.unitOperation.id;\r\n });\r\n\r\n if (outletStreams.length) {\r\n [this.outletStream] = outletStreams;\r\n }\r\n }\r\n\r\n private initInletStreams() {\r\n const { ownerCase } = this.unitOperation;\r\n this.inletStreams = ownerCase.filterSuncorMaterialStreams((s: SuncorMaterialStream) => {\r\n return s.outletUnitOperationId === this.unitOperation.id;\r\n });\r\n }\r\n\r\n private removeOutletStream() {\r\n this.outletStream = undefined;\r\n }\r\n\r\n private removeInletStream(removedStream: BaseStream) {\r\n const matchingStream = this.inletStreams.find(s => s.id === removedStream.id);\r\n\r\n if (!matchingStream) {\r\n return;\r\n }\r\n\r\n this.inletStreams.splice(this.inletStreams.indexOf(matchingStream), 1);\r\n }\r\n\r\n private addMixingRatioVariable(inletUnitOperationId: string) {\r\n // TODO remove this when unit operation copies are no longer needed\r\n this.unitOperation.addInletDistributionRatioVariables(inletUnitOperationId);\r\n const ratioVariable = this.unitOperation.findMixingRatioVariable(inletUnitOperationId);\r\n\r\n const ratioVariableControl = this.rangeRatioVariablesFormBuilder.control(ratioVariable);\r\n this.rangeDistributionVariablesFormGroup.controls.ratioVariables.push(ratioVariableControl);\r\n }\r\n\r\n private removeMixingRatioVariable(unitOperationId: string) {\r\n const formGroupToRemove = this.rangeDistributionVariablesFormGroup.controls.ratioVariables.controls.find(fg => {\r\n return fg.getFormGroupId() === unitOperationId;\r\n });\r\n\r\n if (!formGroupToRemove) {\r\n return;\r\n }\r\n\r\n const formGroupIndex =\r\n this.rangeDistributionVariablesFormGroup.controls.ratioVariables.controls.indexOf(formGroupToRemove);\r\n this.rangeDistributionVariablesFormGroup.controls.ratioVariables.removeAt(formGroupIndex);\r\n\r\n // TODO remove this when unit operation copies are no longer needed\r\n this.unitOperation.removeInletDistributionRatioVariables(unitOperationId);\r\n }\r\n\r\n mixingRatioValueControlsReadonly() {\r\n return this.selectedBlendRecipeOption === MixerBlendRecipeOption.RANGE;\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subSink.unsubscribe();\r\n }\r\n}\r\n","<div class=\"form-horizontal\">\r\n <div class=\"form-group\">\r\n <label for=\"typeDD\" class=\"pw-label control-label col-sm-4\"> Assay Name </label>\r\n <div class=\"col-sm-6\" id=\"typeDD\">\r\n <sob-assay-selector\r\n [fluidAnalyses]=\"fluidAnalyses\"\r\n [currentAnalysis]=\"currentAnalysis\"\r\n (updateCurrentAssay)=\"updateCurrentAnalysis($event)\"></sob-assay-selector>\r\n </div>\r\n </div>\r\n</div>\r\n<hr />\r\n<ul class=\"nav nav-tabs\" role=\"tablist\" style=\"margin-right: 15px; margin-top: 20px\">\r\n <li role=\"presentation\" class=\"active\">\r\n <a href=\"#blockSpecifications\" aria-controls=\"blockSpecifications\" role=\"tab\" data-toggle=\"tab\">General</a>\r\n </li>\r\n\r\n <li *ngIf=\"currentAnalysis\" role=\"presentation\">\r\n <a href=\"#fluidCharacterization\" aria-controls=\"fluidCharacterization\" role=\"tab\" data-toggle=\"tab\">Fluid</a>\r\n </li>\r\n <li role=\"presentation\">\r\n <a href=\"#economics\" aria-controls=\"economics\" role=\"tab\" data-toggle=\"tab\">Economics</a>\r\n </li>\r\n <li role=\"presentation\">\r\n <a href=\"#constraints\" aria-controls=\"constraints\" role=\"tab\" data-toggle=\"tab\">Constraints</a>\r\n </li>\r\n\r\n <li role=\"presentation\">\r\n <a href=\"#thirdPartySourceComments\" aria-controls=\"thirdPartySourceComments\" role=\"tab\" data-toggle=\"tab\">\r\n <i class=\"fa fa-comments fa-lg\" aria-hidden=\"true\"> </i>\r\n Comments\r\n </a>\r\n </li>\r\n</ul>\r\n\r\n<div class=\"tab-content pw-margin tab-content-padding\">\r\n <div role=\"tabpanel\" class=\"tab-pane fade in active\" id=\"blockSpecifications\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <div class=\"form-horizontal\">\r\n <div class=\"form-group\">\r\n <label for=\"isOptimizable\" class=\"control-label col-sm-4\"> Optimize </label>\r\n <div class=\"col-sm-4\">\r\n <label class=\"control-label\">\r\n <input\r\n type=\"checkbox\"\r\n id=\"isOptimizable\"\r\n [(ngModel)]=\"unitOperation.isOptimizable\"\r\n (change)=\"isOptimizableChanged($event.target.checked)\" />\r\n </label>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'volumetricFlowrate'\" class=\"pw-label control-label col-sm-4\"> Volumetric Flowrate </label>\r\n <sim-var-input\r\n [inputId]=\"'volumetricFlowrate'\"\r\n [simVar]=\"unitOperation.volumetricFlowrate\"\r\n [disabled]=\"unitOperation.isOptimizable\"></sim-var-input>\r\n </div>\r\n\r\n <hr />\r\n\r\n <h4 class=\"subtitle\">GHG</h4>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'ghgIntensity'\" class=\"pw-label control-label col-sm-4\"> GHG Intensity </label>\r\n <sim-var-input [inputId]=\"'ghgIntensity'\" [simVar]=\"unitOperation.ghgIntensity\"></sim-var-input>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'ghgEmissions'\" class=\"pw-label control-label col-sm-4\"> GHG Emissions </label>\r\n <sim-var-input\r\n [inputId]=\"'ghgEmissions'\"\r\n [simVar]=\"unitOperation.ghgEmissions\"\r\n [readOnly]=\"true\"></sim-var-input>\r\n </div>\r\n\r\n <hr />\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"currentAnalysis\" role=\"tabpanel\" class=\"tab-pane fade in\" id=\"fluidCharacterization\">\r\n <ul class=\"nav nav-pills\" role=\"tablist\" style=\"margin-right: 15px\">\r\n <li role=\"presentation\" class=\"active\">\r\n <a href=\"#bulkProperties\" aria-controls=\"bulkProperties\" role=\"tab\" data-toggle=\"tab\">Bulk Properties</a>\r\n </li>\r\n\r\n <li role=\"presentation\">\r\n <a href=\"#cutProperties\" aria-controls=\"cutProperties\" role=\"tab\" data-toggle=\"tab\">Cut Properties</a>\r\n </li>\r\n <li role=\"presentation\">\r\n <a href=\"#compositionUO\" aria-controls=\"composition\" role=\"tab\" data-toggle=\"tab\">Composition</a>\r\n </li>\r\n </ul>\r\n\r\n <div class=\"tab-content pw-margin tab-content-padding\">\r\n <div role=\"tabpanel\" class=\"tab-pane fade in active\" id=\"bulkProperties\">\r\n <div class=\"form-horizontal\">\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'fluidAnalysisMassDensity'\" class=\"pw-label control-label col-sm-4\">\r\n Mass Density\r\n </label>\r\n <sim-var-input\r\n [inputId]=\"'fluidAnalysisMassDensity'\"\r\n [readOnly]=\"true\"\r\n [simVar]=\"currentAnalysis.massDensity\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'fluidAnalysisCcr'\" class=\"pw-label control-label col-sm-4\"> CCR </label>\r\n <sim-var-input\r\n [inputId]=\"'fluidAnalysisCcr'\"\r\n [readOnly]=\"true\"\r\n [simVar]=\"currentAnalysis.ccr\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'fluidAnalysisSulfur'\" class=\"pw-label control-label col-sm-4\"> Sulfur </label>\r\n <sim-var-input\r\n [inputId]=\"'fluidAnalysisSulfur'\"\r\n [readOnly]=\"true\"\r\n [simVar]=\"currentAnalysis.sulfur\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'fluidAnalysisNitrogen'\" class=\"pw-label control-label col-sm-4\"> Nitrogen </label>\r\n <sim-var-input\r\n [inputId]=\"'fluidAnalysisNitrogen'\"\r\n [readOnly]=\"true\"\r\n [simVar]=\"currentAnalysis.nitrogen\"></sim-var-input>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"cutProperties\">\r\n <sob-cut-properties [readonly]=\"true\" [fluidAnalysis]=\"currentAnalysis\"></sob-cut-properties>\r\n </div>\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"compositionUO\">\r\n <div class=\"form-horizontal\" sfeMultipleSimVarInput totalOutputId=\"compositionTotalUO\">\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'compositionUnit'\" class=\"pw-label control-label col-sm-4\"> Unit </label>\r\n\r\n <div class=\"col-sm-4\">\r\n <sfe-unit-select\r\n [selectId]=\"'compositionUnit' + unitOperation.id\"\r\n [simVar]=\"currentAnalysis.composition[0]\"\r\n [disabled]=\"true\"\r\n [elClass]=\"'form-control'\"></sfe-unit-select>\r\n </div>\r\n </div>\r\n\r\n <ng-container *ngFor=\"let idx of currentAnalysis.composition | keys\">\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'composition' + idx\" class=\"pw-label control-label col-sm-4\">\r\n {{ currentAnalysis.composition[idx].name | titleCaseComposition }}\r\n </label>\r\n <div class=\"col-sm-4\">\r\n <sfe-value-input\r\n [simVar]=\"currentAnalysis.composition[idx]\"\r\n [elClass]=\"'form-control'\"\r\n [inputId]=\"'composition' + idx\"\r\n [multiple]=\"true\"\r\n [readOnlyValue]=\"true\"\r\n [disabled]=\"true\"\r\n [convertedBy]=\"'compositionUnit'\">\r\n </sfe-value-input>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <div class=\"form-group\">\r\n <label class=\"pw-label control-label col-sm-4\">Total</label>\r\n <div class=\"col-sm-4\">\r\n <input type=\"text\" class=\"form-control\" id=\"compositionTotalUO\" readonly />\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"economics\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <div class=\"form-horizontal\">\r\n <hr />\r\n <h4 class=\"subtitle\">OPEX</h4>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'opexVar'\" class=\"pw-label control-label col-sm-4\"> Price </label>\r\n <sim-var-input [inputId]=\"'price'\" [simVar]=\"unitOperation.price\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'opexCarbonDioxide'\" class=\"pw-label control-label col-sm-4\"> CO2 </label>\r\n <sim-var-input\r\n [inputId]=\"'opexCarbonDioxide'\"\r\n [simVar]=\"unitOperation.opexCarbonDioxide\"\r\n [readOnly]=\"true\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'opexTotal'\" class=\"pw-label control-label col-sm-4\"> Total </label>\r\n <sim-var-input [inputId]=\"'opexTotal'\" [simVar]=\"unitOperation.opexTotal\" [readOnly]=\"true\"></sim-var-input>\r\n </div>\r\n\r\n <hr />\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"constraints\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <p style=\"text-align: right; position: relative\">\r\n <span style=\"position: absolute; right: -25px; top: -20px; font-weight: bold\">Active</span>\r\n </p>\r\n <div class=\"form-horizontal\">\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'capacity'\" class=\"pw-label control-label col-sm-4\"> Maximum Flow Rate </label>\r\n <sim-var-input [inputId]=\"'capacity'\" [isConstraint]=\"true\" [simVar]=\"unitOperation.capacity\"></sim-var-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"thirdPartySourceComments\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <sob-unit-operation-comments [unitOpId]=\"this.unitOperation.id\"></sob-unit-operation-comments>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { ThirdPartySource } from '../../../_models/_unit-operations/third-party-source';\r\nimport { CoreService } from '../../../_services/core.service';\r\nimport { SuncorFluidAnalysis } from '../../../_models/_fluid/suncor-fluid-analysis';\r\n\r\n@Component({\r\n selector: 'sob-third-party-source',\r\n templateUrl: './third-party-source.component.html',\r\n styleUrls: ['./third-party-source.component.css'],\r\n})\r\nexport class ThirdPartySourceComponent implements OnInit {\r\n @Input()\r\n unitOperation: ThirdPartySource;\r\n\r\n currentAnalysis: SuncorFluidAnalysis;\r\n\r\n constructor(private coreService: CoreService) {}\r\n\r\n ngOnInit() {\r\n this.updateCurrentAnalysis();\r\n }\r\n\r\n isOptimizableChanged(checked: boolean) {\r\n if (checked) {\r\n this.unitOperation.volumetricFlowrate.value = null;\r\n }\r\n }\r\n\r\n get fluidAnalyses() {\r\n return this.coreService.currentCase.assayManager.getAllAssays();\r\n }\r\n\r\n updateCurrentAnalysis(id?) {\r\n if (id) {\r\n this.unitOperation.fluidAnalysisId = id;\r\n }\r\n if (this.unitOperation.fluidAnalysisId) {\r\n this.currentAnalysis = this.coreService.currentCase.assayManager.findFluidAnalysisById(\r\n this.unitOperation.fluidAnalysisId\r\n );\r\n this.assayChanged();\r\n }\r\n }\r\n\r\n assayChanged() {\r\n const cuts = [\r\n 'lightEndsCut',\r\n 'lightNaphthaCut',\r\n 'heavyNaphthaCut',\r\n 'distillateCut',\r\n 'LGOCut',\r\n 'HGOCut',\r\n 'VGOCut',\r\n 'HVGOCut',\r\n 'residCut',\r\n ];\r\n const simvarNames = ['sulfur', 'anilinePoint', 'massDensity', 'nitrogen', 'ccr'];\r\n for (const cutId of cuts) {\r\n for (const simvarName of simvarNames) {\r\n const simVar = this.currentAnalysis[cutId][simvarName];\r\n const $field = `#${cutId}${simvarName}`;\r\n $($field).val(simVar.convertToCaptureUnit(true));\r\n $(`${$field}Unit`).val(simVar.unit);\r\n $($field).change();\r\n }\r\n }\r\n $(`#compositionUnit${this.unitOperation.id}`).val(this.currentAnalysis.composition[0].unit);\r\n let total = 0;\r\n for (let i = 0; i < this.currentAnalysis.composition.length; i++) {\r\n const simVar = this.currentAnalysis.composition[i];\r\n total += simVar.convertToCaptureUnit(true);\r\n $(`#composition${i}`).val(simVar.convertToCaptureUnit(true));\r\n }\r\n $('#compositionTotalUO').val(total);\r\n\r\n $('#fluidAnalysisMassDensity').val(this.currentAnalysis.massDensity.convertToCaptureUnit(true));\r\n $('#fluidAnalysisMassDensityUnit').val(this.currentAnalysis.massDensity.unit);\r\n $('#fluidAnalysisMassDensity').change();\r\n\r\n $('#fluidAnalysisCcr').val(this.currentAnalysis.ccr.convertToCaptureUnit(true));\r\n $('#fluidAnalysisCcrUnit').val(this.currentAnalysis.ccr.unit);\r\n $('#fluidAnalysisCcr').change();\r\n\r\n $('#fluidAnalysisSulfur').val(this.currentAnalysis.sulfur.convertToCaptureUnit(true));\r\n $('#fluidAnalysisSulfurUnit').val(this.currentAnalysis.sulfur.unit);\r\n $('#fluidAnalysisSulfur').change();\r\n\r\n $('#fluidAnalysisNitrogen').val(this.currentAnalysis.nitrogen.convertToCaptureUnit(true));\r\n $('#fluidAnalysisNitrogenUnit').val(this.currentAnalysis.nitrogen.unit);\r\n $('#fluidAnalysisNitrogen').change();\r\n }\r\n}\r\n","<div class=\"form-horizontal\">\r\n <div class=\"form-group\">\r\n <label for=\"typeDD\" class=\"pw-label control-label col-sm-4\"> Assay Name </label>\r\n <div class=\"col-sm-6\" id=\"typeDD\">\r\n <sob-assay-selector\r\n [fluidAnalyses]=\"fluidAnalyses\"\r\n [currentAnalysis]=\"currentAnalysis\"\r\n (updateCurrentAssay)=\"updateCurrentAnalysis($event)\"></sob-assay-selector>\r\n </div>\r\n </div>\r\n</div>\r\n<hr />\r\n<ul class=\"nav nav-tabs\" role=\"tablist\" style=\"margin-right: 15px; margin-top: 20px\">\r\n <li role=\"presentation\" class=\"active\">\r\n <a href=\"#blockSpecifications\" aria-controls=\"blockSpecifications\" role=\"tab\" data-toggle=\"tab\">General</a>\r\n </li>\r\n <li *ngIf=\"currentAnalysis\" role=\"presentation\">\r\n <a href=\"#fluidCharacterization\" aria-controls=\"fluidCharacterization\" role=\"tab\" data-toggle=\"tab\">Fluid</a>\r\n </li>\r\n <li role=\"presentation\">\r\n <a href=\"#economics\" aria-controls=\"economics\" role=\"tab\" data-toggle=\"tab\">Economics</a>\r\n </li>\r\n\r\n <li role=\"presentation\">\r\n <a href=\"#offshoreSourceComments\" aria-controls=\"offshoreSourceComments\" role=\"tab\" data-toggle=\"tab\">\r\n <i class=\"fa fa-comments fa-lg\" aria-hidden=\"true\"> </i>\r\n Comments\r\n </a>\r\n </li>\r\n</ul>\r\n\r\n<div class=\"tab-content pw-margin tab-content-padding\">\r\n <div role=\"tabpanel\" class=\"tab-pane fade in active\" id=\"blockSpecifications\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <div class=\"form-horizontal\">\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'volumetricFlowrate'\" class=\"pw-label control-label col-sm-4\"> Volumetric Flowrate </label>\r\n <sim-var-input [inputId]=\"'volumetricFlowrate'\" [simVar]=\"unitOperation.volumetricFlowrate\"></sim-var-input>\r\n </div>\r\n\r\n <hr />\r\n <h4 class=\"subtitle\">GHG</h4>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'ghgIntensity'\" class=\"pw-label control-label col-sm-4\"> GHG Intensity </label>\r\n <sim-var-input [inputId]=\"'ghgIntensity'\" [simVar]=\"unitOperation.ghgIntensity\"></sim-var-input>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'absoluteGhgEmissions'\" class=\"pw-label control-label col-sm-4\">\r\n Absolute GHG Emissions\r\n </label>\r\n <sim-var-input\r\n [inputId]=\"'absoluteGhgEmissions'\"\r\n [readOnly]=\"true\"\r\n [simVar]=\"unitOperation.absoluteGhgEmissions\"></sim-var-input>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'ghgEmissions'\" class=\"pw-label control-label col-sm-4\"> GHG Emissions </label>\r\n <sim-var-input\r\n [inputId]=\"'ghgEmissions'\"\r\n [readOnly]=\"true\"\r\n [simVar]=\"unitOperation.ghgEmissions\"></sim-var-input>\r\n </div>\r\n\r\n <hr />\r\n <h4 class=\"subtitle\">Cogen</h4>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'cogenElectricityGeneration'\" class=\"pw-label control-label col-sm-4\">\r\n Total Cogen Electricity\r\n </label>\r\n <sim-var-input\r\n [inputId]=\"'cogenElectricityGeneration'\"\r\n [simVar]=\"unitOperation.cogenElectricityGeneration\"></sim-var-input>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'netElectricityExport'\" class=\"pw-label control-label col-sm-4\">\r\n Net Electricity Export\r\n </label>\r\n <sim-var-input\r\n [inputId]=\"'netElectricityExport'\"\r\n [simVar]=\"unitOperation.netElectricityExport\"></sim-var-input>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'cogenIntensity'\" class=\"pw-label control-label col-sm-4\"> Cogen Intensity </label>\r\n <sim-var-input [inputId]=\"'cogenIntensity'\" [simVar]=\"unitOperation.cogenIntensity\"></sim-var-input>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'gridIntensity'\" class=\"pw-label control-label col-sm-4\"> Grid Intensity </label>\r\n <sim-var-input [inputId]=\"'gridIntensity'\" [simVar]=\"unitOperation.gridIntensity\"></sim-var-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"economics\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <div class=\"form-horizontal\">\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'price'\" class=\"pw-label control-label col-sm-4\"> Price </label>\r\n <sim-var-input [inputId]=\"'price'\" [simVar]=\"unitOperation.price\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'electricityPrice'\" class=\"pw-label control-label col-sm-4\"> Electricity Price </label>\r\n <sim-var-input [inputId]=\"'electricityPrice'\" [simVar]=\"unitOperation.electricityPrice\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'revenue'\" class=\"pw-label control-label col-sm-4\"> Revenue </label>\r\n <sim-var-input [inputId]=\"'revenue'\" [simVar]=\"unitOperation.revenue\" [readOnly]=\"true\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'unitValue'\" class=\"pw-label control-label col-sm-4\"> Before Tax Cash Flow </label>\r\n <sim-var-input [inputId]=\"'unitValue'\" [simVar]=\"unitOperation.unitValue\" [readOnly]=\"true\"></sim-var-input>\r\n </div>\r\n <hr />\r\n <h4 class=\"subtitle\">OPEX</h4>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'opexVar'\" class=\"pw-label control-label col-sm-4\"> Variable </label>\r\n <sim-var-input [inputId]=\"'opexVar'\" [simVar]=\"unitOperation.opexVar\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'opexGasDiesel'\" class=\"pw-label control-label col-sm-4\"> Gas Diesel </label>\r\n <sim-var-input [inputId]=\"'opexGasDiesel'\" [simVar]=\"unitOperation.opexGasDiesel\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'opexPower'\" class=\"pw-label control-label col-sm-4\"> Power </label>\r\n <sim-var-input [inputId]=\"'opexPower'\" [simVar]=\"unitOperation.opexPower\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'opexCarbonDioxide'\" class=\"pw-label control-label col-sm-4\"> CO2 </label>\r\n <sim-var-input\r\n [inputId]=\"'opexCarbonDioxide'\"\r\n [simVar]=\"unitOperation.opexCarbonDioxide\"\r\n [readOnly]=\"true\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'opexFixed'\" class=\"pw-label control-label col-sm-4\"> Fixed </label>\r\n <sim-var-input [inputId]=\"'opexFixed'\" [simVar]=\"unitOperation.opexFixed\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'opexTotal'\" class=\"pw-label control-label col-sm-4\"> Total </label>\r\n <sim-var-input [inputId]=\"'opexTotal'\" [simVar]=\"unitOperation.opexTotal\" [readOnly]=\"true\"></sim-var-input>\r\n </div>\r\n\r\n <hr />\r\n <h4 class=\"subtitle\">CAPEX</h4>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'capexAmortized'\" class=\"pw-label control-label col-sm-4\"> Amortized CAPEX </label>\r\n <sim-var-input [inputId]=\"'capexAmortized'\" [simVar]=\"unitOperation.capexAmortized\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'capexTotal'\" class=\"pw-label control-label col-sm-4\"> Total </label>\r\n <sim-var-input [inputId]=\"'capexTotal'\" [simVar]=\"unitOperation.capexTotal\" [readOnly]=\"true\"></sim-var-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"currentAnalysis\" role=\"tabpanel\" class=\"tab-pane fade in\" id=\"fluidCharacterization\">\r\n <ul class=\"nav nav-pills\" role=\"tablist\" style=\"margin-right: 15px\">\r\n <li role=\"presentation\" class=\"active\">\r\n <a href=\"#bulkProperties\" aria-controls=\"bulkProperties\" role=\"tab\" data-toggle=\"tab\">Bulk Properties</a>\r\n </li>\r\n\r\n <li role=\"presentation\">\r\n <a href=\"#cutProperties\" aria-controls=\"cutProperties\" role=\"tab\" data-toggle=\"tab\">Cut Properties</a>\r\n </li>\r\n <li role=\"presentation\">\r\n <a href=\"#compositionUO\" aria-controls=\"composition\" role=\"tab\" data-toggle=\"tab\">Composition</a>\r\n </li>\r\n </ul>\r\n <div class=\"tab-content pw-margin tab-content-padding\">\r\n <div role=\"tabpanel\" class=\"tab-pane fade in active\" id=\"bulkProperties\">\r\n <div class=\"form-horizontal\">\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'fluidAnalysisMassDensity'\" class=\"pw-label control-label col-sm-4\">\r\n Mass Density\r\n </label>\r\n <sim-var-input\r\n [inputId]=\"'fluidAnalysisMassDensity'\"\r\n [readOnly]=\"true\"\r\n [simVar]=\"currentAnalysis.massDensity\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'fluidAnalysisCcr'\" class=\"pw-label control-label col-sm-4\"> CCR </label>\r\n <sim-var-input\r\n [inputId]=\"'fluidAnalysisCcr'\"\r\n [readOnly]=\"true\"\r\n [simVar]=\"currentAnalysis.ccr\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'fluidAnalysisSulfur'\" class=\"pw-label control-label col-sm-4\"> Sulfur </label>\r\n <sim-var-input\r\n [inputId]=\"'fluidAnalysisSulfur'\"\r\n [readOnly]=\"true\"\r\n [simVar]=\"currentAnalysis.sulfur\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'fluidAnalysisNitrogen'\" class=\"pw-label control-label col-sm-4\"> Nitrogen </label>\r\n <sim-var-input\r\n [inputId]=\"'fluidAnalysisNitrogen'\"\r\n [readOnly]=\"true\"\r\n [simVar]=\"currentAnalysis.nitrogen\"></sim-var-input>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"cutProperties\">\r\n <sob-cut-properties [readonly]=\"true\" [fluidAnalysis]=\"currentAnalysis\"></sob-cut-properties>\r\n </div>\r\n <div *ngIf=\"currentAnalysis\" role=\"tabpanel\" class=\"tab-pane fade in\" id=\"compositionUO\">\r\n <div class=\"form-horizontal\" sfeMultipleSimVarInput totalOutputId=\"compositionTotalUO\">\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'compositionUnit'\" class=\"pw-label control-label col-sm-4\"> Unit </label>\r\n\r\n <div class=\"col-sm-4\">\r\n <sfe-unit-select\r\n [selectId]=\"'compositionUnit' + unitOperation.id\"\r\n [simVar]=\"currentAnalysis.composition[0]\"\r\n [disabled]=\"true\"\r\n [elClass]=\"'form-control'\"></sfe-unit-select>\r\n </div>\r\n </div>\r\n\r\n <ng-container *ngFor=\"let idx of currentAnalysis.composition | keys\">\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'composition' + idx\" class=\"pw-label control-label col-sm-4\">\r\n {{ currentAnalysis.composition[idx].name | titleCaseComposition }}\r\n </label>\r\n <div class=\"col-sm-4\">\r\n <sfe-value-input\r\n [simVar]=\"currentAnalysis.composition[idx]\"\r\n [elClass]=\"'form-control'\"\r\n [inputId]=\"'composition' + idx\"\r\n [multiple]=\"true\"\r\n [readOnlyValue]=\"true\"\r\n [disabled]=\"true\"\r\n [convertedBy]=\"'compositionUnit'\">\r\n </sfe-value-input>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <div class=\"form-group\">\r\n <label class=\"pw-label control-label col-sm-4\">Total</label>\r\n <div class=\"col-sm-4\">\r\n <input type=\"text\" class=\"form-control\" id=\"compositionTotalUO\" readonly />\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"offshoreSourceComments\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <sob-unit-operation-comments [unitOpId]=\"this.unitOperation.id\"></sob-unit-operation-comments>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { OffshoreSource } from '../../../_models/_unit-operations/offshore-source';\r\nimport { CoreService } from '../../../_services/core.service';\r\nimport { SuncorFluidAnalysis } from '../../../_models/_fluid/suncor-fluid-analysis';\r\n\r\n@Component({\r\n selector: 'sob-offshore-source',\r\n templateUrl: './offshore-source.component.html',\r\n styleUrls: ['./offshore-source.component.css'],\r\n})\r\nexport class OffshoreSourceComponent implements OnInit {\r\n @Input()\r\n unitOperation: OffshoreSource;\r\n\r\n currentAnalysis: SuncorFluidAnalysis;\r\n\r\n constructor(private coreService: CoreService) {}\r\n\r\n ngOnInit() {\r\n this.updateCurrentAnalysis();\r\n }\r\n\r\n get fluidAnalyses() {\r\n return this.coreService.currentCase.assayManager.getAssaysByCategory('Crude oil - Bitumen');\r\n }\r\n\r\n updateCurrentAnalysis(id?) {\r\n if (id) {\r\n this.unitOperation.fluidAnalysisId = id;\r\n }\r\n if (this.unitOperation.fluidAnalysisId) {\r\n this.currentAnalysis = this.coreService.currentCase.assayManager.findFluidAnalysisById(\r\n this.unitOperation.fluidAnalysisId\r\n );\r\n this.assayChanged();\r\n }\r\n }\r\n\r\n assayChanged() {\r\n const cuts = [\r\n 'lightEndsCut',\r\n 'lightNaphthaCut',\r\n 'heavyNaphthaCut',\r\n 'distillateCut',\r\n 'LGOCut',\r\n 'HGOCut',\r\n 'VGOCut',\r\n 'HVGOCut',\r\n 'residCut',\r\n ];\r\n const simvarNames = ['sulfur', 'anilinePoint', 'massDensity', 'nitrogen', 'ccr'];\r\n for (const cutId of cuts) {\r\n for (const simvarName of simvarNames) {\r\n const simVar = this.currentAnalysis[cutId][simvarName];\r\n const $field = `#${cutId}${simvarName}`;\r\n $($field).val(simVar.convertToCaptureUnit(true));\r\n $(`${$field}Unit`).val(simVar.unit);\r\n $($field).change();\r\n }\r\n }\r\n $(`#compositionUnit${this.unitOperation.id}`).val(this.currentAnalysis.composition[0].unit);\r\n let total = 0;\r\n for (let i = 0; i < this.currentAnalysis.composition.length; i++) {\r\n const simVar = this.currentAnalysis.composition[i];\r\n total += simVar.convertToCaptureUnit(true);\r\n $(`#composition${i}`).val(simVar.convertToCaptureUnit(true));\r\n }\r\n $('#compositionTotalUO').val(total);\r\n\r\n $('#fluidAnalysisMassDensity').val(this.currentAnalysis.massDensity.convertToCaptureUnit(true));\r\n $('#fluidAnalysisMassDensityUnit').val(this.currentAnalysis.massDensity.unit);\r\n $('#fluidAnalysisMassDensity').change();\r\n\r\n $('#fluidAnalysisCcr').val(this.currentAnalysis.ccr.convertToCaptureUnit(true));\r\n $('#fluidAnalysisCcrUnit').val(this.currentAnalysis.ccr.unit);\r\n $('#fluidAnalysisCcr').change();\r\n\r\n $('#fluidAnalysisSulfur').val(this.currentAnalysis.sulfur.convertToCaptureUnit(true));\r\n $('#fluidAnalysisSulfurUnit').val(this.currentAnalysis.sulfur.unit);\r\n $('#fluidAnalysisSulfur').change();\r\n\r\n $('#fluidAnalysisNitrogen').val(this.currentAnalysis.nitrogen.convertToCaptureUnit(true));\r\n $('#fluidAnalysisNitrogenUnit').val(this.currentAnalysis.nitrogen.unit);\r\n $('#fluidAnalysisNitrogen').change();\r\n }\r\n}\r\n","import { Component, Input } from '@angular/core';\r\nimport { SuncorRenewable } from '../../../../_models/_unit-operations/suncor-renewable';\r\n\r\n@Component({\r\n selector: 'sob-suncor-renewable',\r\n templateUrl: './suncor-renewable.component.html',\r\n styleUrls: ['./suncor-renewable.component.css'],\r\n})\r\nexport class SuncorRenewableComponent {\r\n @Input()\r\n suncorRenewable: SuncorRenewable;\r\n}\r\n","<div class=\"form-group\">\r\n <label [attr.for]=\"'capacity' + suncorRenewable.id\" class=\"pw-label control-label col-sm-4\"> Capacity </label>\r\n <sim-var-input [inputId]=\"'capacity' + suncorRenewable.id\" [simVar]=\"suncorRenewable.capacity\"> </sim-var-input>\r\n</div>\r\n\r\n<div class=\"form-group\">\r\n <label [attr.for]=\"'capacityFactor' + suncorRenewable.id\" class=\"pw-label control-label col-sm-4\">\r\n Capacity Factor\r\n </label>\r\n <sim-var-input [inputId]=\"'capacityFactor' + suncorRenewable.id\" [simVar]=\"suncorRenewable.capacityFactor\">\r\n </sim-var-input>\r\n</div>\r\n\r\n<div class=\"form-group\">\r\n <label [attr.for]=\"'ghgCredit' + suncorRenewable.id\" class=\"pw-label control-label col-sm-4\"> GHG Credit </label>\r\n <sim-var-input [inputId]=\"'ghgCredit' + suncorRenewable.id\" [simVar]=\"suncorRenewable.ghgCredit\"> </sim-var-input>\r\n</div>\r\n\r\n<div class=\"form-group\">\r\n <label [attr.for]=\"'opex' + suncorRenewable.id\" class=\"pw-label control-label col-sm-4\"> OPEX </label>\r\n <sim-var-input [inputId]=\"'opex' + suncorRenewable.id\" [simVar]=\"suncorRenewable.opex\"> </sim-var-input>\r\n</div>\r\n\r\n<div class=\"form-group\">\r\n <label [attr.for]=\"'amortizedCapex' + suncorRenewable.id\" class=\"pw-label control-label col-sm-4\">\r\n Amortized CAPEX\r\n </label>\r\n <sim-var-input [inputId]=\"'amortizedCapex' + suncorRenewable.id\" [simVar]=\"suncorRenewable.amortizedCapex\">\r\n </sim-var-input>\r\n</div>\r\n\r\n<div class=\"form-group\">\r\n <label [attr.for]=\"'electricityPrice' + suncorRenewable.id\" class=\"pw-label control-label col-sm-4\">\r\n Electricity Price\r\n </label>\r\n <sim-var-input [inputId]=\"'electricityPrice' + suncorRenewable.id\" [simVar]=\"suncorRenewable.electricityPrice\">\r\n </sim-var-input>\r\n</div>\r\n","<ul class=\"nav nav-tabs\" role=\"tablist\" style=\"margin-right: 15px\">\r\n <li role=\"presentation\" class=\"active\">\r\n <a href=\"#blockSpecifications\" aria-controls=\"blockSpecifications\" role=\"tab\" data-toggle=\"tab\">General</a>\r\n </li>\r\n\r\n <li role=\"presentation\">\r\n <a href=\"#renewableComments\" aria-controls=\"renewableComments\" role=\"tab\" data-toggle=\"tab\">\r\n <i class=\"fa fa-comments fa-lg\" aria-hidden=\"true\"> </i>\r\n Comments\r\n </a>\r\n </li>\r\n</ul>\r\n\r\n<div class=\"tab-content pw-margin tab-content-padding\">\r\n <div role=\"tabpanel\" class=\"tab-pane fade in active\" id=\"blockSpecifications\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <div class=\"form-horizontal\">\r\n <div class=\"form-group\">\r\n <label for=\"renewableType\" class=\"pw-label control-label col-sm-4\">Type</label>\r\n <div class=\"col-sm-4\">\r\n <select name=\"renewableType\" id=\"renewableType\" #renewableType class=\"form-control\">\r\n <option value=\"Wind\">Wind</option>\r\n <option value=\"Solar\">Solar</option>\r\n <option value=\"Offset\">Offset</option>\r\n </select>\r\n </div>\r\n <div class=\"col-sm-4 add-renewable\">\r\n <button class=\"btn btn-sm btn-primary\" (click)=\"addRenewable(renewableType.value)\">Add Renewable</button>\r\n </div>\r\n </div>\r\n <ng-container *ngFor=\"let sr of unitOperation.renewablesList; let i = index\">\r\n <hr />\r\n\r\n <div>\r\n <h4 class=\"subtitle\" style=\"display: inline-block\">{{ sr.name }}</h4>\r\n <button class=\"btn btn-danger btn-xs remove-renewable\" (click)=\"removeRenewable(sr.id)\">Remove</button>\r\n </div>\r\n <sob-suncor-renewable [suncorRenewable]=\"sr\"></sob-suncor-renewable>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"renewableComments\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <sob-unit-operation-comments [unitOpId]=\"this.unitOperation.id\"></sob-unit-operation-comments>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, Input } from '@angular/core';\r\nimport { SuncorRenewableBlock } from '../../../_models/_unit-operations/suncor-renewable-block';\r\nimport { SuncorRenewable } from '../../../_models/_unit-operations/suncor-renewable';\r\n\r\n@Component({\r\n selector: 'sob-suncor-renewable-block',\r\n templateUrl: './suncor-renewable-block.component.html',\r\n styleUrls: ['./suncor-renewable-block.component.css'],\r\n})\r\nexport class SuncorRenewableBlockComponent {\r\n @Input()\r\n unitOperation: SuncorRenewableBlock;\r\n\r\n addRenewable(renewableType) {\r\n this.unitOperation.renewablesList.push(\r\n new SuncorRenewable(\r\n {\r\n name: this.findRenewableNameByType(renewableType),\r\n renewableType,\r\n },\r\n this.unitOperation,\r\n this.unitOperation.ownerCase\r\n )\r\n );\r\n }\r\n\r\n removeRenewable(id) {\r\n const idx = this.unitOperation.renewablesList.findIndex(sr => sr.id === id);\r\n this.unitOperation.renewablesList.splice(idx, 1);\r\n }\r\n\r\n private findRenewableNameByType(type) {\r\n const howMany = this.unitOperation.renewablesList.filter(sr => sr.renewableType === type).length;\r\n return `${type} ${howMany + 1}`;\r\n }\r\n}\r\n","/* eslint-disable max-len */\r\nexport const DEFAULT_STEAM_MODEL =\r\n '// Variables available to user: \\n' +\r\n '// \"InletVolumetricFlowRate_KBPCD\" : InletVolumetricFlowRate in kbpcd\\n' +\r\n '//Methods Available to use\\n' +\r\n '// GetUnitOpInletVolumetricFlowRate(string UnitOperationName) \\n' +\r\n '// Gets the UnitOperationName as string and returns the Inlet Volumetric Flowrate to any operation in the flowsheet\\n' +\r\n '// GetStreamVolumetricFlowRate(string MaterialStreamName) \\n' +\r\n '// Gets the MaterialStreamName as string and returns the volumetric Flowrate of any stream in the flowsheet\\n' +\r\n '// Calculated Variables:\\n' +\r\n '// Steam Use parameters (all calculated in kpph)\\n' +\r\n '// \"SteamUse900\" , \"SteamUse600\" , \"SteamUse150\", \"SteamUse50\"\\n' +\r\n '// Steam Make parameters (all calculated in kpph)\\n' +\r\n '// \"SteamMake900\" , \"SteamMake600\" , \"SteamMake150\", \"SteamMake50\"\\n' +\r\n 'SteamUse900 = 0.0;\\n' +\r\n 'SteamUse600 = 0.0;\\n' +\r\n 'SteamUse150 = 0.0;\\n' +\r\n 'SteamUse50 = 0.0;\\n' +\r\n 'SteamMake900 = 0.0;\\n' +\r\n 'SteamMake600 = 0.0;\\n' +\r\n 'SteamMake150 = 0.0;\\n' +\r\n 'SteamMake50 = 0.0;';\r\n","import { Completion } from '@codemirror/autocomplete';\r\n\r\nexport const steamContributorCodeCompletions: Completion[] = [\r\n { label: 'HydrogenUse_MMSCFD', type: 'variable', info: '' },\r\n { label: 'HydrogenProduction_MMSCFD', type: 'variable', info: '' },\r\n { label: 'H2SProduction_MMSCFD', type: 'variable', info: '' },\r\n { label: 'AmineCirculationRate_kbpcd', type: 'variable', info: '' },\r\n { label: 'SulfurFlowrate_MMSCFD', type: 'variable', info: '' },\r\n { label: 'SteamMake900', type: 'variable', info: '' },\r\n { label: 'SteamUse900', type: 'variable', info: '' },\r\n { label: 'SteamMake600', type: 'variable', info: '' },\r\n { label: 'SteamUse600', type: 'variable', info: '' },\r\n { label: 'SteamMake150', type: 'variable', info: '' },\r\n { label: 'SteamUse150', type: 'variable', info: '' },\r\n { label: 'SteamMake50', type: 'variable', info: '' },\r\n { label: 'SteamUse50', type: 'variable', info: '' },\r\n];\r\n","import { Completion } from '@codemirror/autocomplete';\r\nimport { DefaultCodeProvider } from './default-code-provider';\r\nimport { DEFAULT_STEAM_MODEL } from '../../_config/unit-operations/default-models/default-steam-model';\r\nimport { steamContributorCodeCompletions } from '../../_config/unit-operations/custom-code-completions/steam-contributor-code-completions';\r\n\r\nexport class SteamContributorCodeProvider extends DefaultCodeProvider {\r\n constructor() {\r\n super(DEFAULT_STEAM_MODEL);\r\n }\r\n\r\n override getCodeCompletions(): Completion[] {\r\n return super.getCodeCompletions().concat(...steamContributorCodeCompletions);\r\n }\r\n}\r\n","<label class=\"subtitle\">Steam</label>\r\n<a class=\"btn btn-outline btn-success btn-xs m-l-sm\" href=\"#steamDiv\" (click)=\"switchOpened()\" aria-expanded=\"false\">\r\n <i *ngIf=\"!isOpened\" class=\"fa fa-plus\"></i>\r\n <i *ngIf=\"isOpened\" class=\"fa fa-minus\"></i>\r\n</a>\r\n<div class=\"collapse\" id=\"steamDiv\" aria-expanded=\"false\" style=\"\">\r\n <div class=\"form-group\">\r\n <label for=\"customModelEnabled\" class=\"control-label col-sm-4\"> Use Custom Model for Steam </label>\r\n <div class=\"col-sm-4\">\r\n <label class=\"control-label\">\r\n <input type=\"checkbox\" id=\"customModelEnabled\" [(ngModel)]=\"unitOperation.useSteamCustomModel\" />\r\n </label>\r\n </div>\r\n\r\n <div class=\"clearfix\"></div>\r\n </div>\r\n <div *ngIf=\"unitOperation.useSteamCustomModel\">\r\n <sob-open-code-editor-button\r\n [code]=\"unitOperation.steamModelScript\"\r\n [defaultCodeProvider]=\"defaultCodeProvider\"\r\n [instanceId]=\"'steamCodeEditor'\"\r\n [disabled]=\"!unitOperation.useSteamCustomModel\"\r\n (codeSaved)=\"saveSteamCustomModel($event)\"></sob-open-code-editor-button>\r\n </div>\r\n <hr class=\"m-t-md m-b-md\" />\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'steamMake900'\" class=\"pw-label control-label col-sm-4\"> 900# Steam Make </label>\r\n <sim-var-input [inputId]=\"'steamMake900'\" [readOnly]=\"true\" [simVar]=\"unitOperation.steamMake900\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'steamUse900'\" class=\"pw-label control-label col-sm-4\"> 900# Steam Use </label>\r\n <sim-var-input [inputId]=\"'steamUse900'\" [readOnly]=\"true\" [simVar]=\"unitOperation.steamUse900\"></sim-var-input>\r\n </div>\r\n <hr style=\"padding-bottom: 10px\" />\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'steamMake600'\" class=\"pw-label control-label col-sm-4\"> 600# Steam Make </label>\r\n <sim-var-input [inputId]=\"'steamMake600'\" [readOnly]=\"true\" [simVar]=\"unitOperation.steamMake600\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'steamUse600'\" class=\"pw-label control-label col-sm-4\"> 600# Steam Use </label>\r\n <sim-var-input [inputId]=\"'steamUse600'\" [readOnly]=\"true\" [simVar]=\"unitOperation.steamUse600\"></sim-var-input>\r\n </div>\r\n <hr style=\"padding-bottom: 10px\" />\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'steamMake150'\" class=\"pw-label control-label col-sm-4\"> 150# Steam Make </label>\r\n <sim-var-input [inputId]=\"'steamMake150'\" [readOnly]=\"true\" [simVar]=\"unitOperation.steamMake150\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'steamUse150'\" class=\"pw-label control-label col-sm-4\"> 150# Steam Use </label>\r\n <sim-var-input [inputId]=\"'steamUse150'\" [readOnly]=\"true\" [simVar]=\"unitOperation.steamUse150\"></sim-var-input>\r\n </div>\r\n <hr style=\"padding-bottom: 10px\" />\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'steamMake50'\" class=\"pw-label control-label col-sm-4\"> 50# Steam Make </label>\r\n <sim-var-input [inputId]=\"'steamMake50'\" [readOnly]=\"true\" [simVar]=\"unitOperation.steamMake50\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'steamUse50'\" class=\"pw-label control-label col-sm-4\"> 50# Steam Use </label>\r\n <sim-var-input [inputId]=\"'steamUse50'\" [readOnly]=\"true\" [simVar]=\"unitOperation.steamUse50\"></sim-var-input>\r\n </div>\r\n</div>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { SteamUseUnitOperation } from '../../../_models/_unit-operations/steam-use-unit-operation';\r\nimport { FlowsheetService } from '../../../_services/flowsheet.service';\r\nimport { SteamContributorCodeProvider } from '../../../_services/custom-code-providers/steam-contributor-code-provider';\r\n\r\n@Component({\r\n selector: 'sob-steam-use-utility',\r\n templateUrl: './steam-use-utility.component.html',\r\n styleUrls: ['./steam-use-utility.component.css'],\r\n})\r\nexport class SteamUseUtilityComponent implements OnInit {\r\n @Input()\r\n unitOperation: SteamUseUnitOperation;\r\n\r\n defaultCodeProvider: SteamContributorCodeProvider;\r\n isOpened = false;\r\n constructor(private flowsheetService: FlowsheetService) {\r\n this.defaultCodeProvider = new SteamContributorCodeProvider();\r\n }\r\n\r\n ngOnInit() {}\r\n\r\n saveSteamCustomModel(res: any) {\r\n if (res.instanceId === 'steamCodeEditor') {\r\n this.unitOperation.steamModelScript = res.code;\r\n this.flowsheetService.saveCustomCodeChanges();\r\n }\r\n }\r\n\r\n switchOpened() {\r\n $('#steamDiv').collapse('toggle');\r\n this.isOpened = !this.isOpened;\r\n }\r\n}\r\n","export const DEFAULT_GAS_CONTRIBUTOR_MODEL =\r\n '// Variables available to user: \\n' +\r\n '// \"InletVolumetricFlowRate_KBPCD\" : InletVolumetricFlowRate in kbpcd\\n' +\r\n '//Methods Available to use\\n' +\r\n '// GetUnitOpInletVolumetricFlowRate(string UnitOperationName) \\n' +\r\n // eslint-disable-next-line max-len\r\n '// Gets the UnitOperationName as string and returns the Inlet Volumetric Flowrate to any operation in the flowsheet\\n' +\r\n '// GetStreamVolumetricFlowRate(string MaterialStreamName) \\n' +\r\n '// Gets the MaterialStreamName as string and returns the volumetric Flowrate of any stream in the flowsheet\\n' +\r\n '// Calculated Variables:\\n' +\r\n '// Fuel gas use (\"GasUse_Energy\") in BBtu/d \\n' +\r\n '// Gas make (\"GasMake_Flow\") in MSCFD\\n' +\r\n 'GasUse_Energy = 0.0;\\n' +\r\n 'GasMake_Flow = 0.0;';\r\n","export const gasContributorCodeCompletions = [\r\n { label: 'HydrogenUse_MMSCFD', type: 'variable', info: '' },\r\n { label: 'HydrogenProduction_MMSCFD', type: 'variable', info: '' },\r\n { label: 'H2SProduction_MMSCFD', type: 'variable', info: '' },\r\n { label: 'AmineCirculationRate_kbpcd', type: 'variable', info: '' },\r\n { label: 'SulfurFlowrate_MMSCFD', type: 'variable', info: '' },\r\n { label: 'SteamMake900_kbpcd', type: 'variable', info: '' },\r\n { label: 'SteamMake600_kbpcd', type: 'variable', info: '' },\r\n { label: 'SteamMake150_kbpcd', type: 'variable', info: '' },\r\n { label: 'SteamMake50_kbpcd', type: 'variable', info: '' },\r\n { label: 'GasUse_Energy', type: 'variable', info: '' },\r\n { label: 'GasMake_Flow', type: 'variable', info: '' },\r\n];\r\n","import { Completion } from '@codemirror/autocomplete';\r\nimport { DefaultCodeProvider } from './default-code-provider';\r\nimport { DEFAULT_GAS_CONTRIBUTOR_MODEL } from '../../_config/unit-operations/default-models/default-gas-contributor-model';\r\nimport { gasContributorCodeCompletions } from '../../_config/unit-operations/custom-code-completions/gas-contributor-code-completions';\r\n\r\nexport class GasContributorCodeProvider extends DefaultCodeProvider {\r\n constructor() {\r\n super(DEFAULT_GAS_CONTRIBUTOR_MODEL);\r\n }\r\n\r\n override getCodeCompletions(): Completion[] {\r\n return super.getCodeCompletions().concat(gasContributorCodeCompletions);\r\n }\r\n}\r\n","<div>\r\n <label class=\"subtitle-v2 gas-label\">Gas</label>\r\n\r\n <a class=\"btn btn-outline btn-success btn-xs m-l-sm\" href=\"#gasDiv\" (click)=\"switchOpened()\" aria-expanded=\"false\">\r\n <i *ngIf=\"!isOpened\" class=\"fa fa-plus\"></i>\r\n <i *ngIf=\"isOpened\" class=\"fa fa-minus\"></i>\r\n </a>\r\n</div>\r\n\r\n<div class=\"collapse\" id=\"gasDiv\" aria-expanded=\"false\">\r\n <div class=\"form-group\">\r\n <label for=\"customGasModelEnabled\" class=\"control-label col-sm-4\"> Use Custom Model for Gas </label>\r\n <div class=\"col-sm-4\">\r\n <label class=\"control-label\">\r\n <input type=\"checkbox\" id=\"customGasModelEnabled\" [(ngModel)]=\"unitOperation.useCustomGasModel\" />\r\n </label>\r\n </div>\r\n\r\n <div class=\"clearfix\"></div>\r\n </div>\r\n <div *ngIf=\"unitOperation.useCustomGasModel\">\r\n <sob-open-code-editor-button\r\n [code]=\"unitOperation.gasModelScript\"\r\n [defaultCodeProvider]=\"defaultCodeProvider\"\r\n [instanceId]=\"'gasCodeEditor'\"\r\n [disabled]=\"!unitOperation.useCustomGasModel\"\r\n (codeSaved)=\"saveGasCustomModel($event)\"></sob-open-code-editor-button>\r\n </div>\r\n <hr class=\"m-t-md m-b-md\" />\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'fuelGasHeatingValue'\" class=\"pw-label control-label col-sm-4\">\r\n Fuel Gas Heating Value (LHV)\r\n </label>\r\n <sim-var-input [inputId]=\"'fuelGasHeatingValue'\" [simVar]=\"unitOperation.fuelGasHeatingValue\"> </sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'fuelGasEmissionFactor'\" class=\"pw-label control-label col-sm-4\">\r\n Fuel Gas Emission Factor\r\n </label>\r\n <sim-var-input [inputId]=\"'fuelGasEmissionFactor'\" [simVar]=\"unitOperation.fuelGasEmissionFactor\"> </sim-var-input>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'energyFlow'\" class=\"pw-label control-label col-sm-4\"> Energy Flow </label>\r\n <sim-var-input [inputId]=\"'energyFlow'\" [readOnly]=\"true\" [simVar]=\"unitOperation.energyFlow\"> </sim-var-input>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'flowrate'\" class=\"pw-label control-label col-sm-4\"> Fuel Gas Flowrate </label>\r\n <sim-var-input [inputId]=\"'flowrate'\" [readOnly]=\"true\" [simVar]=\"unitOperation.flowrate\"></sim-var-input>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label class=\"pw-label control-label col-sm-4\"> Gas Analysis </label>\r\n <div class=\"col-sm-8\">\r\n <sob-assay-selector\r\n [fluidAnalyses]=\"fluidAnalyses\"\r\n [currentAnalysis]=\"currentAnalysis\"\r\n (updateCurrentAssay)=\"updateCurrentAnalysis($event)\">\r\n </sob-assay-selector>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { GasContributorUnitOperation } from '../../../_models/_unit-operations/gas-contributor-unit-operation';\r\nimport { CoreService } from '../../../_services/core.service';\r\nimport { GasFluidAnalysis } from '../../../_models/_fluid/gas-fluid-analysis';\r\nimport { FlowsheetService } from '../../../_services/flowsheet.service';\r\nimport { GasContributorCodeProvider } from '../../../_services/custom-code-providers/gas-contributor-code-provider';\r\n\r\n@Component({\r\n selector: 'sob-gas-contributor',\r\n templateUrl: './gas-contributor.component.html',\r\n styleUrls: ['./gas-contributor.component.css'],\r\n})\r\nexport class GasContributorComponent implements OnInit {\r\n @Input() unitOperation: GasContributorUnitOperation;\r\n defaultCodeProvider: GasContributorCodeProvider;\r\n isOpened = false;\r\n currentAnalysis: GasFluidAnalysis;\r\n\r\n constructor(private coreService: CoreService, private flowsheetService: FlowsheetService) {\r\n this.defaultCodeProvider = new GasContributorCodeProvider();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.updateCurrentAnalysis();\r\n }\r\n\r\n saveGasCustomModel(res: any) {\r\n if (res.instanceId === 'gasCodeEditor') {\r\n this.unitOperation.gasModelScript = res.code;\r\n this.flowsheetService.saveCustomCodeChanges();\r\n }\r\n }\r\n\r\n switchOpened() {\r\n $('#gasDiv').collapse('toggle');\r\n this.isOpened = !this.isOpened;\r\n }\r\n\r\n get fluidAnalyses() {\r\n return this.coreService.currentCase.assayManager.getAssaysByCategory('Gas');\r\n }\r\n\r\n updateCurrentAnalysis(id?) {\r\n if (id) {\r\n this.unitOperation.gasAnalysisId = id;\r\n }\r\n if (this.unitOperation.gasAnalysisId) {\r\n this.currentAnalysis = this.coreService.currentCase.assayManager.findFluidAnalysisById(\r\n this.unitOperation.gasAnalysisId\r\n );\r\n }\r\n }\r\n}\r\n","<ul class=\"nav nav-tabs\" role=\"tablist\" style=\"margin-right: 15px\">\r\n <li role=\"presentation\" class=\"active\">\r\n <a href=\"#blockSpecifications\" aria-controls=\"blockSpecifications\" role=\"tab\" data-toggle=\"tab\"\r\n >Distribution Ratio</a\r\n >\r\n </li>\r\n <li role=\"presentation\">\r\n <a href=\"#general\" aria-controls=\"general\" role=\"tab\" data-toggle=\"tab\">General</a>\r\n </li>\r\n <li role=\"presentation\">\r\n <a href=\"#utilities\" aria-controls=\"utilities\" role=\"tab\" data-toggle=\"tab\">Utilities</a>\r\n </li>\r\n <li role=\"presentation\">\r\n <a href=\"#economics\" aria-controls=\"economics\" role=\"tab\" data-toggle=\"tab\">Economics</a>\r\n </li>\r\n <li role=\"presentation\">\r\n <a href=\"#constraints\" aria-controls=\"constraints\" role=\"tab\" data-toggle=\"tab\"> Constraints </a>\r\n </li>\r\n\r\n <li role=\"presentation\">\r\n <a href=\"#druComments\" aria-controls=\"druComments\" role=\"tab\" data-toggle=\"tab\">\r\n <i class=\"fa fa-comments fa-lg\" aria-hidden=\"true\"> </i>\r\n Comments\r\n </a>\r\n </li>\r\n</ul>\r\n\r\n<div class=\"tab-content pw-margin tab-content-padding\">\r\n <div role=\"tabpanel\" class=\"tab-pane fade in active\" id=\"blockSpecifications\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <div class=\"form-horizontal\">\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'sweetProductRatio'\" class=\"pw-label control-label col-sm-4\"> Solve Option </label>\r\n <div class=\"col-sm-6\">\r\n <select class=\"form-control\" [(ngModel)]=\"unitOperation.solveOption\">\r\n <option value=\"Component split\">Component Split</option>\r\n <option value=\"OutletTBP\">OutletTBP</option>\r\n </select>\r\n </div>\r\n </div>\r\n <div class=\"form-group\" *ngIf=\"unitOperation.solveOption === 'OutletTBP'\">\r\n <label [attr.for]=\"'yieldBasis'\" class=\"pw-label control-label col-sm-4\"> Yield Basis </label>\r\n <div class=\"col-sm-6\">\r\n <select class=\"form-control\" [(ngModel)]=\"unitOperation.yieldBasis\">\r\n <option value=\"Weight basis\">Weight Basis</option>\r\n </select>\r\n </div>\r\n </div>\r\n </div>\r\n <div\r\n sfeMultipleSimVarInput\r\n *ngIf=\"unitOperation.boilingPointCuts.length > 0\"\r\n [hidden]=\"unitOperation.solveOption !== 'OutletTBP'\"\r\n style=\"max-width: 100%\">\r\n <div class=\"form-horizontal\">\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'bpcUnit'\" class=\"pw-label control-label col-sm-4\"> Unit </label>\r\n\r\n <div class=\"col-sm-4\">\r\n <sfe-unit-select\r\n [selectId]=\"'bpcUnit'\"\r\n [simVar]=\"unitOperation.boilingPointCuts[0].values[0]\"\r\n [elClass]=\"'form-control'\"></sfe-unit-select>\r\n </div>\r\n </div>\r\n </div>\r\n <table>\r\n <thead>\r\n <tr>\r\n <th>Yield</th>\r\n <ng-container *ngFor=\"let ratioVariable of unitOperation.boilingPointCuts; let i = index\">\r\n <th>{{ findDistributionRatioName(i) }}</th>\r\n </ng-container>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let percent of unitOperation.percentCuts; let i = index\">\r\n <td class=\"text-capitalize\">{{ percent * 100 }}%</td>\r\n <td *ngFor=\"let bpc of unitOperation.boilingPointCuts; let j = index\">\r\n <sfe-value-input\r\n [simVar]=\"unitOperation.boilingPointCuts[j].values[i]\"\r\n [elClass]=\"'form-control'\"\r\n [inputId]=\"unitOperation.boilingPointCuts[j].values[i].id + 'bpc'\"\r\n [multiple]=\"true\"\r\n [convertedBy]=\"'bpcUnit'\">\r\n </sfe-value-input>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n <div *ngIf=\"unitOperation.solveOption === 'Component split'\" style=\"max-width: 100%\">\r\n <table *ngIf=\"unitOperation.distributionRatioVariables\">\r\n <thead>\r\n <tr>\r\n <th>Component Name</th>\r\n <ng-container *ngFor=\"let ratioVariable of unitOperation.distributionRatioVariables; let i = index\">\r\n <th>{{ findDistributionRatioName(i) }}</th>\r\n </ng-container>\r\n </tr>\r\n </thead>\r\n <tr *ngFor=\"let component of components; let componentIndex = index\">\r\n <td class=\"text-capitalize\">{{ component }}</td>\r\n <td *ngFor=\"let ratioVariable of unitOperation.distributionRatioVariables; let ratioVariableIndex = index\">\r\n <input\r\n id=\"{{ component.replace(' ', '') + ratioVariableIndex }}\"\r\n type=\"text\"\r\n (change)=\"\r\n onDistributionRatioVariableValueChange({ratioVariableIndex,componentIndex, componentName: component.replace(' ', '')})\r\n \"\r\n class=\"form-control\"\r\n [(ngModel)]=\"ratioVariable[component.replace(' ', '')]\"\r\n [readonly]=\"ratioVariableIndex === unitOperation.distributionRatioVariables.length - 1\" />\r\n </td>\r\n </tr>\r\n </table>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"economics\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <div class=\"form-horizontal\">\r\n <h4 class=\"subtitle\">OPEX</h4>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'opexVar'\" class=\"pw-label control-label col-sm-4\"> Variable </label>\r\n <sim-var-input [inputId]=\"'opexVar'\" [simVar]=\"unitOperation.opexVar\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'opexGasDiesel'\" class=\"pw-label control-label col-sm-4\"> Gas Diesel </label>\r\n <sim-var-input [inputId]=\"'opexGasDiesel'\" [simVar]=\"unitOperation.opexGasDiesel\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'opexPower'\" class=\"pw-label control-label col-sm-4\"> Power </label>\r\n <sim-var-input [inputId]=\"'opexPower'\" [simVar]=\"unitOperation.opexPower\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'opexCarbonDioxide'\" class=\"pw-label control-label col-sm-4\"> CO2 </label>\r\n <sim-var-input\r\n [inputId]=\"'opexCarbonDioxide'\"\r\n [simVar]=\"unitOperation.opexCarbonDioxide\"\r\n [readOnly]=\"true\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'opexFixed'\" class=\"pw-label control-label col-sm-4\"> Fixed </label>\r\n <sim-var-input [inputId]=\"'opexFixed'\" [simVar]=\"unitOperation.opexFixed\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'opexTotal'\" class=\"pw-label control-label col-sm-4\"> Total </label>\r\n <sim-var-input [inputId]=\"'opexTotal'\" [simVar]=\"unitOperation.opexTotal\" [readOnly]=\"true\"></sim-var-input>\r\n </div>\r\n\r\n <hr />\r\n <h4 class=\"subtitle\">CAPEX</h4>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'capexAmortized'\" class=\"pw-label control-label col-sm-4\"> Amortized CAPEX </label>\r\n <sim-var-input [inputId]=\"'capexAmortized'\" [simVar]=\"unitOperation.capexAmortized\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'capexTotal'\" class=\"pw-label control-label col-sm-4\"> Total </label>\r\n <sim-var-input [inputId]=\"'capexTotal'\" [simVar]=\"unitOperation.capexTotal\" [readOnly]=\"true\"></sim-var-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"general\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <h4 class=\"subtitle\">GHG</h4>\r\n <div class=\"form-horizontal\">\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'ghgIntensity'\" class=\"pw-label control-label col-sm-4\"> GHG Intensity </label>\r\n <sim-var-input [inputId]=\"'ghgIntensity'\" [simVar]=\"unitOperation.ghgIntensity\"></sim-var-input>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'ghgEmissions'\" class=\"pw-label control-label col-sm-4\"> GHG Emissions </label>\r\n <sim-var-input\r\n [inputId]=\"'ghgEmissions'\"\r\n [readOnly]=\"true\"\r\n [simVar]=\"unitOperation.ghgEmissions\"></sim-var-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"utilities\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <div class=\"form-horizontal\">\r\n <sob-steam-use-utility [unitOperation]=\"unitOperation\"></sob-steam-use-utility>\r\n <sob-gas-contributor [unitOperation]=\"unitOperation\"></sob-gas-contributor>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"constraints\">\r\n <p style=\"text-align: right; position: relative\">\r\n <span style=\"position: absolute; right: -25px; top: -20px; font-weight: bold\">Active</span>\r\n </p>\r\n <div class=\"form-horizontal\">\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'capacity'\" class=\"pw-label control-label col-sm-4\"> Maximum Feed Capacity </label>\r\n <sim-var-input [inputId]=\"'capacity'\" [isConstraint]=\"true\" [simVar]=\"unitOperation.capacity\"> </sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'minimumFlow'\" class=\"pw-label control-label col-sm-4\"> Minimum Flow </label>\r\n <sim-var-input [inputId]=\"'minimumFlow'\" [isConstraint]=\"true\" [simVar]=\"unitOperation.minimumFlow\">\r\n </sim-var-input>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"druComments\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <sob-unit-operation-comments [unitOpId]=\"this.unitOperation.id\"></sob-unit-operation-comments>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, Input, OnDestroy } from '@angular/core';\r\nimport { SubSink } from 'subsink';\r\nimport { DRU } from '../../../_models/_unit-operations/dru';\r\nimport { CoreService } from '../../../_services/core.service';\r\nimport { VAC } from '../../../_models/_unit-operations/vac';\r\nimport { roundNumber } from '../../../_utils/utils';\r\n\r\ndeclare let unitConverter: any;\r\n\r\n@Component({\r\n selector: 'sob-dru',\r\n templateUrl: './dru.component.html',\r\n styleUrls: ['./dru.component.css'],\r\n})\r\nexport class DRUComponent implements OnDestroy {\r\n @Input() unitOperation: DRU;\r\n private subSink = new SubSink();\r\n\r\n // TODO this might be duplicated\r\n components = ['light Ends', 'light Naphtha', 'heavy Naphtha', 'distillate', 'LGO', 'HGO', 'VGO', 'HVGO', 'resid'];\r\n\r\n constructor(private coreService: CoreService) {\r\n this.subSink.add(\r\n this.coreService.streamAddedRequest.subscribe(s => {\r\n if (s.inletUnitOperationId === this.unitOperation.id) {\r\n this.updateDistributionRatioVariables();\r\n }\r\n })\r\n );\r\n\r\n this.subSink.add(\r\n this.coreService.streamRemovedRequest.subscribe(s => {\r\n if (s.inletUnitOperationId === this.unitOperation.id) {\r\n this.updateDistributionRatioVariables();\r\n }\r\n })\r\n );\r\n }\r\n\r\n findDistributionRatioName(index: number): string {\r\n if (this.unitOperation) {\r\n return this.unitOperation.findDistributionRatioVariableName(index);\r\n }\r\n\r\n return '';\r\n }\r\n\r\n onDistributionRatioVariableValueChange(params: {\r\n ratioVariableIndex: number;\r\n componentName: string;\r\n componentIndex: number;\r\n }) {\r\n const dvParsed = unitConverter.parseFloatString(\r\n this.unitOperation.distributionRatioVariables[params.ratioVariableIndex][params.componentName]\r\n );\r\n\r\n if (Number.isNaN(dvParsed)) {\r\n this.unitOperation.distributionRatioVariables[params.ratioVariableIndex][params.componentName] = null;\r\n } else {\r\n this.unitOperation.distributionRatioVariables[params.ratioVariableIndex][params.componentName] = roundNumber(\r\n dvParsed,\r\n 5\r\n );\r\n }\r\n\r\n this.calculateLastDistributionVariable(params.componentIndex);\r\n }\r\n\r\n calculateLastDistributionVariable(componentIndex: number) {\r\n const component = this.components[componentIndex].replace(' ', '');\r\n let total = 0;\r\n for (let i = 0; i < this.unitOperation.distributionRatioVariables.length - 1; i++) {\r\n const dv = this.unitOperation.distributionRatioVariables[i];\r\n const dvParsed = unitConverter.parseFloatString(dv[component]);\r\n if (!Number.isNaN(dvParsed)) {\r\n total += dvParsed;\r\n } else if (dvParsed > 1) {\r\n this.unitOperation.clearComponent(component);\r\n return;\r\n } else {\r\n return;\r\n }\r\n }\r\n if (1 - total < 0) {\r\n this.unitOperation.clearComponent(component);\r\n return;\r\n }\r\n this.unitOperation.distributionRatioVariables[this.unitOperation.distributionRatioVariables.length - 1][component] =\r\n parseFloat((1 - total).toFixed(5));\r\n }\r\n\r\n private updateDistributionRatioVariables() {\r\n const { ownerCase } = this.unitOperation;\r\n const unit = ownerCase.getUnitOperation(this.unitOperation.id) as VAC;\r\n this.unitOperation.distributionRatioVariables = unit.distributionRatioVariables;\r\n this.unitOperation.boilingPointCuts = unit.boilingPointCuts;\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subSink.unsubscribe();\r\n }\r\n}\r\n","<ul class=\"nav nav-tabs\" role=\"tablist\" style=\"margin-right: 15px\">\r\n <li role=\"presentation\" class=\"active\">\r\n <a href=\"#blockSpecifications\" aria-controls=\"blockSpecifications\" role=\"tab\" data-toggle=\"tab\"\r\n >Distribution Ratio</a\r\n >\r\n </li>\r\n <li role=\"presentation\">\r\n <a href=\"#general\" aria-controls=\"general\" role=\"tab\" data-toggle=\"tab\">General</a>\r\n </li>\r\n <li role=\"presentation\">\r\n <a href=\"#utilities\" aria-controls=\"utilities\" role=\"tab\" data-toggle=\"tab\">Utilities</a>\r\n </li>\r\n <li role=\"presentation\">\r\n <a href=\"#economics\" aria-controls=\"economics\" role=\"tab\" data-toggle=\"tab\">Economics</a>\r\n </li>\r\n <li role=\"presentation\">\r\n <a href=\"#constraints\" aria-controls=\"constraints\" role=\"tab\" data-toggle=\"tab\"> Constraints </a>\r\n </li>\r\n\r\n <li role=\"presentation\">\r\n <a href=\"#vacComments\" aria-controls=\"vacComments\" role=\"tab\" data-toggle=\"tab\">\r\n <i class=\"fa fa-comments fa-lg\" aria-hidden=\"true\"> </i>\r\n Comments\r\n </a>\r\n </li>\r\n</ul>\r\n\r\n<div class=\"tab-content pw-margin tab-content-padding\">\r\n <div role=\"tabpanel\" class=\"tab-pane fade in active\" id=\"blockSpecifications\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <div class=\"form-horizontal\">\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'sweetProductRatio'\" class=\"pw-label control-label col-sm-4\"> Solve Option </label>\r\n <div class=\"col-sm-6\">\r\n <select class=\"form-control\" [(ngModel)]=\"unitOperation.solveOption\">\r\n <option value=\"Component split\">Component Split</option>\r\n <option value=\"OutletTBP\">OutletTBP</option>\r\n </select>\r\n </div>\r\n </div>\r\n <div class=\"form-group\" *ngIf=\"unitOperation.solveOption === 'OutletTBP'\">\r\n <label [attr.for]=\"'yieldBasis'\" class=\"pw-label control-label col-sm-4\"> Yield Basis </label>\r\n <div class=\"col-sm-6\">\r\n <select class=\"form-control\" [(ngModel)]=\"unitOperation.yieldBasis\">\r\n <option value=\"Weight basis\">Weight Basis</option>\r\n </select>\r\n </div>\r\n </div>\r\n </div>\r\n <div\r\n sfeMultipleSimVarInput\r\n *ngIf=\"unitOperation.boilingPointCuts.length > 0\"\r\n [hidden]=\"unitOperation.solveOption !== 'OutletTBP'\"\r\n style=\"max-width: 100%\">\r\n <div class=\"form-horizontal\">\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'bpcUnit'\" class=\"pw-label control-label col-sm-4\"> Unit </label>\r\n\r\n <div class=\"col-sm-4\">\r\n <sfe-unit-select\r\n [selectId]=\"'bpcUnit'\"\r\n [simVar]=\"unitOperation.boilingPointCuts[0].values[0]\"\r\n [elClass]=\"'form-control'\"></sfe-unit-select>\r\n </div>\r\n </div>\r\n </div>\r\n <table>\r\n <thead>\r\n <tr>\r\n <th>Yield</th>\r\n <ng-container *ngFor=\"let ratioVariable of unitOperation.boilingPointCuts; let i = index\">\r\n <th>{{ findDistributionRatioName(i) }}</th>\r\n </ng-container>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let percent of unitOperation.percentCuts; let i = index\">\r\n <td class=\"text-capitalize\">{{ percent * 100 }}%</td>\r\n <td *ngFor=\"let bpc of unitOperation.boilingPointCuts; let j = index\">\r\n <sfe-value-input\r\n [simVar]=\"unitOperation.boilingPointCuts[j].values[i]\"\r\n [elClass]=\"'form-control'\"\r\n [inputId]=\"unitOperation.boilingPointCuts[j].values[i].id + 'bpc'\"\r\n [multiple]=\"true\"\r\n [convertedBy]=\"'bpcUnit'\">\r\n </sfe-value-input>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n\r\n <div *ngIf=\"unitOperation.solveOption === 'Component split'\" style=\"max-width: 100%\">\r\n <table *ngIf=\"unitOperation.distributionRatioVariables\">\r\n <thead>\r\n <tr>\r\n <th>Component Name</th>\r\n <ng-container *ngFor=\"let ratioVariable of unitOperation.distributionRatioVariables; let i = index\">\r\n <th>{{ findDistributionRatioName(i) }}</th>\r\n </ng-container>\r\n </tr>\r\n </thead>\r\n <tr *ngFor=\"let component of components; let componentIndex = index\">\r\n <td class=\"text-capitalize\">{{ component }}</td>\r\n <td *ngFor=\"let ratioVariable of unitOperation.distributionRatioVariables; let ratioVariableIndex = index\">\r\n <input\r\n id=\"{{ component.replace(' ', '') + ratioVariableIndex }}\"\r\n type=\"text\"\r\n (change)=\"\r\n onDistributionRatioVariableValueChange({ratioVariableIndex,componentIndex, componentName: component.replace(' ', '')})\r\n \"\r\n class=\"form-control\"\r\n [(ngModel)]=\"ratioVariable[component.replace(' ', '')]\"\r\n [readonly]=\"ratioVariableIndex === unitOperation.distributionRatioVariables.length - 1\" />\r\n </td>\r\n </tr>\r\n </table>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"economics\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <div class=\"form-horizontal\">\r\n <h4 class=\"subtitle\">OPEX</h4>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'opexVar'\" class=\"pw-label control-label col-sm-4\"> Variable </label>\r\n <sim-var-input [inputId]=\"'opexVar'\" [simVar]=\"unitOperation.opexVar\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'opexGasDiesel'\" class=\"pw-label control-label col-sm-4\"> Gas Diesel </label>\r\n <sim-var-input [inputId]=\"'opexGasDiesel'\" [simVar]=\"unitOperation.opexGasDiesel\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'opexPower'\" class=\"pw-label control-label col-sm-4\"> Power </label>\r\n <sim-var-input [inputId]=\"'opexPower'\" [simVar]=\"unitOperation.opexPower\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'opexCarbonDioxide'\" class=\"pw-label control-label col-sm-4\"> CO2 </label>\r\n <sim-var-input\r\n [inputId]=\"'opexCarbonDioxide'\"\r\n [simVar]=\"unitOperation.opexCarbonDioxide\"\r\n [readOnly]=\"true\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'opexFixed'\" class=\"pw-label control-label col-sm-4\"> Fixed </label>\r\n <sim-var-input [inputId]=\"'opexFixed'\" [simVar]=\"unitOperation.opexFixed\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'opexTotal'\" class=\"pw-label control-label col-sm-4\"> Total </label>\r\n <sim-var-input [inputId]=\"'opexTotal'\" [simVar]=\"unitOperation.opexTotal\" [readOnly]=\"true\"></sim-var-input>\r\n </div>\r\n\r\n <hr />\r\n <h4 class=\"subtitle\">CAPEX</h4>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'capexAmortized'\" class=\"pw-label control-label col-sm-4\"> Amortized CAPEX </label>\r\n <sim-var-input [inputId]=\"'capexAmortized'\" [simVar]=\"unitOperation.capexAmortized\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'capexTotal'\" class=\"pw-label control-label col-sm-4\"> Total </label>\r\n <sim-var-input [inputId]=\"'capexTotal'\" [simVar]=\"unitOperation.capexTotal\" [readOnly]=\"true\"></sim-var-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"general\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <h4 class=\"subtitle\">GHG</h4>\r\n <div class=\"form-horizontal\">\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'ghgIntensity'\" class=\"pw-label control-label col-sm-4\"> GHG Intensity </label>\r\n <sim-var-input [inputId]=\"'ghgIntensity'\" [simVar]=\"unitOperation.ghgIntensity\"></sim-var-input>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'ghgEmissions'\" class=\"pw-label control-label col-sm-4\"> GHG Emissions </label>\r\n <sim-var-input\r\n [inputId]=\"'ghgEmissions'\"\r\n [readOnly]=\"true\"\r\n [simVar]=\"unitOperation.ghgEmissions\"></sim-var-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"utilities\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <h4 class=\"subtitle\">Amine</h4>\r\n <div class=\"form-horizontal\">\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'h2sProductionRate'\" class=\"pw-label control-label col-sm-4\"> H2S Production Rate </label>\r\n <sim-var-input [inputId]=\"'h2sProductionRate'\" [simVar]=\"unitOperation.h2sProductionRate\"></sim-var-input>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'h2sProduction'\" class=\"pw-label control-label col-sm-4\"> H2S Production </label>\r\n <sim-var-input\r\n [inputId]=\"'h2sProduction'\"\r\n [readOnly]=\"true\"\r\n [simVar]=\"unitOperation.h2sProduction\"></sim-var-input>\r\n </div>\r\n\r\n <sob-steam-use-utility [unitOperation]=\"unitOperation\"></sob-steam-use-utility>\r\n <sob-gas-contributor [unitOperation]=\"unitOperation\"></sob-gas-contributor>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"constraints\">\r\n <p style=\"text-align: right; position: relative\">\r\n <span style=\"position: absolute; right: -25px; top: -20px; font-weight: bold\">Active</span>\r\n </p>\r\n <div class=\"form-horizontal\">\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'capacity'\" class=\"pw-label control-label col-sm-4\"> Maximum Feed Capacity </label>\r\n <sim-var-input [inputId]=\"'capacity'\" [isConstraint]=\"true\" [simVar]=\"unitOperation.capacity\"> </sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'minimumFlow'\" class=\"pw-label control-label col-sm-4\"> Minimum Flow </label>\r\n <sim-var-input [inputId]=\"'minimumFlow'\" [isConstraint]=\"true\" [simVar]=\"unitOperation.minimumFlow\">\r\n </sim-var-input>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"vacComments\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <sob-unit-operation-comments [unitOpId]=\"this.unitOperation.id\"></sob-unit-operation-comments>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, Input, OnDestroy } from '@angular/core';\r\nimport { SubSink } from 'subsink';\r\nimport { VAC } from '../../../_models/_unit-operations/vac';\r\nimport { CoreService } from '../../../_services/core.service';\r\nimport { roundNumber } from '../../../_utils/utils';\r\n\r\ndeclare let unitConverter: any;\r\n@Component({\r\n selector: 'sob-vac',\r\n templateUrl: './vac.component.html',\r\n styleUrls: ['./vac.component.css'],\r\n})\r\nexport class VACComponent implements OnDestroy {\r\n @Input()\r\n unitOperation: VAC;\r\n\r\n private subSink = new SubSink();\r\n\r\n // TODO this might be duplicated\r\n components = ['light Ends', 'light Naphtha', 'heavy Naphtha', 'distillate', 'LGO', 'HGO', 'VGO', 'HVGO', 'resid'];\r\n\r\n constructor(private coreService: CoreService) {\r\n this.subSink.add(\r\n this.coreService.streamAddedRequest.subscribe(s => {\r\n if (s.inletUnitOperationId === this.unitOperation.id) {\r\n this.updateDistributionRatioVariables();\r\n }\r\n })\r\n );\r\n\r\n this.subSink.add(\r\n this.coreService.streamRemovedRequest.subscribe(s => {\r\n if (s.inletUnitOperationId === this.unitOperation.id) {\r\n this.updateDistributionRatioVariables();\r\n }\r\n })\r\n );\r\n }\r\n\r\n findDistributionRatioName(index: number): string {\r\n if (this.unitOperation) {\r\n return this.unitOperation.findDistributionRatioVariableName(index);\r\n }\r\n\r\n return '';\r\n }\r\n\r\n onDistributionRatioVariableValueChange(params: {\r\n ratioVariableIndex: number;\r\n componentName: string;\r\n componentIndex: number;\r\n }) {\r\n const dvParsed = unitConverter.parseFloatString(\r\n this.unitOperation.distributionRatioVariables[params.ratioVariableIndex][params.componentName]\r\n );\r\n\r\n if (Number.isNaN(dvParsed)) {\r\n this.unitOperation.distributionRatioVariables[params.ratioVariableIndex][params.componentName] = null;\r\n } else {\r\n this.unitOperation.distributionRatioVariables[params.ratioVariableIndex][params.componentName] = roundNumber(\r\n dvParsed,\r\n 5\r\n );\r\n }\r\n\r\n this.calculateLastDistributionVariable(params.componentIndex);\r\n }\r\n\r\n calculateLastDistributionVariable(componentIndex: number) {\r\n const component = this.components[componentIndex].replace(' ', '');\r\n let total = 0;\r\n for (let i = 0; i < this.unitOperation.distributionRatioVariables.length - 1; i++) {\r\n const dv = this.unitOperation.distributionRatioVariables[i];\r\n const dvParsed = unitConverter.parseFloatString(dv[component]);\r\n if (!Number.isNaN(dvParsed)) {\r\n total += dvParsed;\r\n } else if (dvParsed > 1) {\r\n this.unitOperation.clearComponent(component);\r\n return;\r\n } else {\r\n return;\r\n }\r\n }\r\n if (1 - total < 0) {\r\n this.unitOperation.clearComponent(component);\r\n return;\r\n }\r\n this.unitOperation.distributionRatioVariables[this.unitOperation.distributionRatioVariables.length - 1][component] =\r\n parseFloat((1 - total).toFixed(5));\r\n }\r\n\r\n private updateDistributionRatioVariables() {\r\n const { ownerCase } = this.unitOperation;\r\n const unit = ownerCase.getUnitOperation(this.unitOperation.id) as VAC;\r\n this.unitOperation.distributionRatioVariables = unit.distributionRatioVariables;\r\n this.unitOperation.boilingPointCuts = unit.boilingPointCuts;\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subSink.unsubscribe();\r\n }\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';\r\nimport { SuncorFluidAnalysis } from '../../../_models/_fluid/suncor-fluid-analysis';\r\nimport { SimVarFormBuilder } from '../../../_form-utils/sim-var-form-builder';\r\n\r\n@Component({\r\n selector: 'sob-bulk-properties',\r\n templateUrl: './bulk-properties.component.html',\r\n styleUrls: ['./bulk-properties.component.css'],\r\n})\r\nexport class BulkPropertiesComponent implements OnInit {\r\n @Input() currentAnalysis: SuncorFluidAnalysis;\r\n bulkPropsFormGroup: UntypedFormGroup;\r\n\r\n constructor(private svfb: SimVarFormBuilder, private fb: UntypedFormBuilder) {}\r\n\r\n ngOnInit(): void {\r\n this.bulkPropsFormGroup = this.fb.group({});\r\n this.addControls();\r\n }\r\n\r\n addControls() {\r\n this.bulkPropsFormGroup.addControl('massDensity', this.svfb.control(this.currentAnalysis.massDensity, true));\r\n this.bulkPropsFormGroup.addControl('ccr', this.svfb.control(this.currentAnalysis.ccr, true));\r\n this.bulkPropsFormGroup.addControl('sulfur', this.svfb.control(this.currentAnalysis.sulfur, true));\r\n this.bulkPropsFormGroup.addControl('nitrogen', this.svfb.control(this.currentAnalysis.nitrogen, true));\r\n }\r\n\r\n updateControls() {\r\n this.bulkPropsFormGroup.get('massDensity').get('unit').setValue(this.currentAnalysis.massDensity.unit);\r\n this.bulkPropsFormGroup.get('massDensity').get('value').setValue(this.currentAnalysis.massDensity.value);\r\n\r\n this.bulkPropsFormGroup.get('ccr').get('unit').setValue(this.currentAnalysis.ccr.unit);\r\n this.bulkPropsFormGroup.get('ccr').get('value').setValue(this.currentAnalysis.ccr.value);\r\n\r\n this.bulkPropsFormGroup.get('sulfur').get('unit').setValue(this.currentAnalysis.sulfur.unit);\r\n this.bulkPropsFormGroup.get('sulfur').get('value').setValue(this.currentAnalysis.sulfur.value);\r\n\r\n this.bulkPropsFormGroup.get('nitrogen').get('unit').setValue(this.currentAnalysis.nitrogen.unit);\r\n this.bulkPropsFormGroup.get('nitrogen').get('value').setValue(this.currentAnalysis.nitrogen.value);\r\n }\r\n}\r\n","<div class=\"form-horizontal\" [formGroup]=\"bulkPropsFormGroup\">\r\n <div class=\"form-group\" formGroupName=\"massDensity\">\r\n <label class=\"control-label col-sm-4\"> Mass Density </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"currentAnalysis.massDensity.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input formControlName=\"value\" [valueMetaData]=\"currentAnalysis.massDensity\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"ccr\">\r\n <label class=\"control-label col-sm-4\"> CCR </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"currentAnalysis.ccr.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input formControlName=\"value\" [valueMetaData]=\"currentAnalysis.ccr\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"sulfur\">\r\n <label class=\"control-label col-sm-4\"> Sulfur </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"currentAnalysis.sulfur.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input formControlName=\"value\" [valueMetaData]=\"currentAnalysis.sulfur\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"nitrogen\">\r\n <label class=\"control-label col-sm-4\"> Nitrogen </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"currentAnalysis.nitrogen.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input formControlName=\"value\" [valueMetaData]=\"currentAnalysis.nitrogen\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n","import { AfterViewInit, ContentChild, ContentChildren, Directive, Input, QueryList } from '@angular/core';\r\nimport { ReactiveUnitSelectComponent } from './reactive-unit-select/reactive-unit-select.component';\r\nimport { ReactiveVariableValueInputComponent } from './reactive-variable-value-input/reactive-variable-value-input.component';\r\n\r\ndeclare let unitConverter: any;\r\n@Directive({\r\n selector: '[sobReactiveMultipleVariableInput]',\r\n})\r\nexport class ReactiveMultipleVariableInputDirective implements AfterViewInit {\r\n @Input() totalOutputId: string;\r\n @ContentChild(ReactiveUnitSelectComponent) unitSelect!: ReactiveUnitSelectComponent;\r\n @ContentChildren(ReactiveVariableValueInputComponent, { descendants: true })\r\n valueInputs!: QueryList<ReactiveVariableValueInputComponent>;\r\n\r\n ngAfterViewInit(): void {\r\n this.unitSelect.unitChange.subscribe(newUnit => {\r\n this.valueInputs.forEach(valueInput => {\r\n valueInput.updateUnit(newUnit);\r\n });\r\n this.calculateTotal();\r\n });\r\n }\r\n\r\n calculateTotal() {\r\n let total = 0;\r\n\r\n this.valueInputs.forEach(vi => {\r\n const val = unitConverter.parseFloatString(vi.displayValue);\r\n\r\n if (!isNaN(val)) {\r\n total += val;\r\n }\r\n });\r\n\r\n total = parseFloat(total.toFixed(5));\r\n\r\n const $totalOutput = $(`#${this.totalOutputId}`);\r\n $totalOutput.val(total);\r\n }\r\n}\r\n","<div class=\"form-horizontal\" [formGroup]=\"compositionFormGroup\">\r\n <ng-container sobReactiveMultipleVariableInput totalOutputId=\"compositionTotalUO\">\r\n <div class=\"form-group\">\r\n <div class=\"row\">\r\n <label class=\"control-label col-sm-4\">Unit</label>\r\n <div class=\"col-sm-4\">\r\n <sob-reactive-unit-select\r\n formControlName=\"compositionUnit\"\r\n [quantity]=\"currentAnalysis.composition[0].quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <ng-container formArrayName=\"composition\">\r\n <div class=\"form-group\" *ngFor=\"let sv of currentAnalysis.composition; let i = index\">\r\n <div class=\"row\">\r\n <label class=\"control-label col-sm-4\">\r\n {{ currentAnalysis.composition[i].name | titleCaseComposition }}\r\n </label>\r\n <div class=\"col-sm-4\">\r\n <sob-reactive-variable-value-input [formControlName]=\"i\" [valueMetaData]=\"sv\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <div class=\"form-group\">\r\n <label class=\"pw-label control-label col-sm-4\">Total</label>\r\n <div class=\"col-sm-4\">\r\n <input type=\"text\" class=\"form-control\" formControlName=\"compositionTotal\" id=\"compositionTotalUO\" />\r\n </div>\r\n </div>\r\n </ng-container>\r\n</div>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { UntypedFormArray, UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';\r\nimport { SuncorFluidAnalysis } from '../../../_models/_fluid/suncor-fluid-analysis';\r\n\r\n@Component({\r\n selector: 'sob-composition',\r\n templateUrl: './composition.component.html',\r\n styleUrls: ['./composition.component.css'],\r\n})\r\nexport class CompositionComponent implements OnInit {\r\n @Input() currentAnalysis: SuncorFluidAnalysis;\r\n compositionFormGroup: UntypedFormGroup;\r\n total: number;\r\n\r\n constructor(private fb: UntypedFormBuilder) {}\r\n\r\n ngOnInit(): void {\r\n this.compositionFormGroup = this.fb.group({});\r\n this.addControls();\r\n }\r\n\r\n addControls() {\r\n this.compositionFormGroup.addControl('compositionUnit', this.fb.control(this.currentAnalysis.composition[0].unit));\r\n\r\n const compositionArray = this.fb.array([]);\r\n this.total = 0;\r\n for (const sv of this.currentAnalysis.composition) {\r\n this.total += sv.convertToCaptureUnit(true);\r\n compositionArray.push(this.fb.control({ value: sv.value, disabled: true }));\r\n }\r\n\r\n this.compositionFormGroup.addControl('composition', compositionArray);\r\n this.compositionFormGroup.addControl('compositionTotal', this.fb.control(this.total));\r\n this.compositionFormGroup.controls['compositionTotal'].disable();\r\n this.compositionFormGroup.controls['compositionUnit'].disable();\r\n }\r\n\r\n updateControls() {\r\n this.compositionFormGroup.get('compositionUnit').setValue(this.currentAnalysis.composition[0].unit);\r\n this.compositionFormGroup.get('compositionTotal').setValue(this.total);\r\n const compArray = this.compositionFormGroup.get('composition') as UntypedFormArray;\r\n compArray.controls.forEach((sv, index) => {\r\n sv.setValue(this.currentAnalysis.composition[index].value);\r\n });\r\n }\r\n}\r\n","<div [formGroup]=\"cutFormGroup\">\r\n <div class=\"form-group\" formGroupName=\"sulfur\">\r\n <label class=\"control-label col-sm-4\"> Sulfur </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"cut.sulfur.quantity\"></sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input formControlName=\"value\" [valueMetaData]=\"cut.sulfur\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"anilinePoint\">\r\n <label class=\"control-label col-sm-4\"> Aniline Point </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"cut.anilinePoint.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input formControlName=\"value\" [valueMetaData]=\"cut.anilinePoint\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"aromaticityFactor\" *ngIf=\"isStream\">\r\n <label class=\"control-label col-sm-4\"> Aromaticity Factor </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"cut.aromaticityFactor.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input formControlName=\"value\" [valueMetaData]=\"cut.aromaticityFactor\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"massDensity\">\r\n <label class=\"control-label col-sm-4\"> Mass Density </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"cut.massDensity.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input formControlName=\"value\" [valueMetaData]=\"cut.massDensity\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"nitrogen\">\r\n <label class=\"control-label col-sm-4\"> Nitrogen </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"cut.nitrogen.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input formControlName=\"value\" [valueMetaData]=\"cut.nitrogen\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"ccr\">\r\n <label class=\"control-label col-sm-4\"> CCR </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"cut.ccr.quantity\"></sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input formControlName=\"value\" [valueMetaData]=\"cut.ccr\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"afc\" *ngIf=\"isStream\">\r\n <label class=\"control-label col-sm-4\"> AFC </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"cut.afc.quantity\"></sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input formControlName=\"value\" [valueMetaData]=\"cut.afc\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';\r\nimport { Cut } from '../../../_models/_fluid/cut';\r\nimport { SimVarFormBuilder } from '../../../_form-utils/sim-var-form-builder';\r\n\r\n@Component({\r\n selector: 'sob-reactive-cut',\r\n templateUrl: './reactive-cut.component.html',\r\n styleUrls: ['./reactive-cut.component.css'],\r\n})\r\nexport class ReactiveCutComponent implements OnInit {\r\n @Input()\r\n cut: Cut;\r\n\r\n @Input() idPrefix: string;\r\n @Input() isStream: boolean;\r\n @Input() readOnly: boolean;\r\n @Input() formGroup: UntypedFormGroup;\r\n\r\n constructor(private fb: UntypedFormBuilder, private svfb: SimVarFormBuilder) {}\r\n\r\n ngOnInit(): void {\r\n this.readOnly = this.readOnly ? this.readOnly : false;\r\n this.addControls();\r\n }\r\n\r\n addControls() {\r\n this.cutFormGroup.addControl('sulfur', this.svfb.control(this.cut.sulfur, this.readOnly));\r\n this.cutFormGroup.addControl('anilinePoint', this.svfb.control(this.cut.anilinePoint, this.readOnly));\r\n this.cutFormGroup.addControl('aromaticityFactor', this.svfb.control(this.cut.aromaticityFactor, this.readOnly));\r\n this.cutFormGroup.addControl('massDensity', this.svfb.control(this.cut.massDensity, this.readOnly));\r\n this.cutFormGroup.addControl('nitrogen', this.svfb.control(this.cut.nitrogen, this.readOnly));\r\n this.cutFormGroup.addControl('ccr', this.svfb.control(this.cut.ccr, this.readOnly));\r\n this.cutFormGroup.addControl('afc', this.svfb.control(this.cut.afc, this.readOnly));\r\n }\r\n\r\n get cutFormGroup() {\r\n return this.formGroup.get(this.idPrefix) as UntypedFormGroup;\r\n }\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';\r\nimport { SuncorFluidAnalysis } from '../../../_models/_fluid/suncor-fluid-analysis';\r\n\r\n@Component({\r\n selector: 'sob-reactive-cut-properties',\r\n templateUrl: './reactive-cut-properties.component.html',\r\n styleUrls: ['./reactive-cut-properties.component.css'],\r\n})\r\nexport class ReactiveCutPropertiesComponent implements OnInit {\r\n @Input() fluidAnalysis: SuncorFluidAnalysis;\r\n @Input() readonly: boolean;\r\n @Input() idPrefix: string;\r\n formGroup: UntypedFormGroup;\r\n\r\n constructor(private fb: UntypedFormBuilder) {}\r\n\r\n ngOnInit(): void {\r\n this.readonly = this.readonly ? this.readonly : false;\r\n this.idPrefix = this.idPrefix ? this.idPrefix : '';\r\n this.formGroup = this.fb.group({});\r\n this.addControls();\r\n }\r\n\r\n addControls() {\r\n this.formGroup.addControl('lightEndsCut', this.fb.group({}));\r\n this.formGroup.addControl('lightNaphthaCut', this.fb.group({}));\r\n this.formGroup.addControl('heavyNaphthaCut', this.fb.group({}));\r\n this.formGroup.addControl('distillateCut', this.fb.group({}));\r\n this.formGroup.addControl('LGOCut', this.fb.group({}));\r\n this.formGroup.addControl('HGOCut', this.fb.group({}));\r\n this.formGroup.addControl('VGOCut', this.fb.group({}));\r\n this.formGroup.addControl('HVGOCut', this.fb.group({}));\r\n this.formGroup.addControl('residCut', this.fb.group({}));\r\n }\r\n\r\n updateControlsValues(groupName: string) {\r\n const cutControlsGroup = this.formGroup.get(groupName) as UntypedFormGroup;\r\n for (const controlsKey in cutControlsGroup.controls) {\r\n cutControlsGroup.controls[controlsKey].get('unit').setValue(this.fluidAnalysis[groupName][controlsKey].unit);\r\n cutControlsGroup.controls[controlsKey].get('value').setValue(this.fluidAnalysis[groupName][controlsKey].value);\r\n }\r\n }\r\n\r\n updateControls() {\r\n this.updateControlsValues('lightEndsCut');\r\n this.updateControlsValues('lightNaphthaCut');\r\n this.updateControlsValues('heavyNaphthaCut');\r\n this.updateControlsValues('distillateCut');\r\n this.updateControlsValues('LGOCut');\r\n this.updateControlsValues('HGOCut');\r\n this.updateControlsValues('VGOCut');\r\n this.updateControlsValues('HVGOCut');\r\n this.updateControlsValues('residCut');\r\n }\r\n}\r\n","<h4>\r\n <a\r\n data-toggle=\"collapse\"\r\n sfeCollapsePanelIcon\r\n href=\"#{{ idPrefix }}uo-lightEnds\"\r\n aria-expanded=\"false\"\r\n [attr.aria-controls]=\"'#uo-lightEnds'\">\r\n <i class=\"fa fa-plus\" aria-hidden=\"true\"></i>\r\n Light Ends\r\n </a>\r\n</h4>\r\n\r\n<div id=\"{{ idPrefix }}uo-lightEnds\" class=\"collapse\">\r\n <div class=\"form-horizontal\">\r\n <sob-reactive-cut\r\n [readOnly]=\"readonly\"\r\n [cut]=\"fluidAnalysis.lightEndsCut\"\r\n [idPrefix]=\"idPrefix + 'lightEndsCut'\"\r\n [formGroup]=\"formGroup\">\r\n </sob-reactive-cut>\r\n </div>\r\n</div>\r\n\r\n<hr />\r\n\r\n<h4>\r\n <a\r\n data-toggle=\"collapse\"\r\n sfeCollapsePanelIcon\r\n href=\"#{{ idPrefix }}uo-lightNaphtha\"\r\n aria-expanded=\"false\"\r\n [attr.aria-controls]=\"'#uo-lightNaphtha'\">\r\n <i class=\"fa fa-plus\" aria-hidden=\"true\"></i>\r\n Light Naphtha\r\n </a>\r\n</h4>\r\n<div id=\"{{ idPrefix }}uo-lightNaphtha\" class=\"collapse\">\r\n <div class=\"form-horizontal\">\r\n <sob-reactive-cut\r\n [readOnly]=\"readonly\"\r\n [cut]=\"fluidAnalysis.lightNaphthaCut\"\r\n [idPrefix]=\"idPrefix + 'lightNaphthaCut'\"\r\n [formGroup]=\"formGroup\">\r\n </sob-reactive-cut>\r\n </div>\r\n</div>\r\n\r\n<hr />\r\n\r\n<h4>\r\n <a\r\n data-toggle=\"collapse\"\r\n sfeCollapsePanelIcon\r\n href=\"#{{ idPrefix }}uo-heavyNaphtha\"\r\n aria-expanded=\"false\"\r\n [attr.aria-controls]=\"'#uo-heavyNaphtha'\">\r\n <i class=\"fa fa-plus\" aria-hidden=\"true\"></i>\r\n Heavy Naphtha\r\n </a>\r\n</h4>\r\n<div id=\"{{ idPrefix }}uo-heavyNaphtha\" class=\"collapse\">\r\n <div class=\"form-horizontal\">\r\n <sob-reactive-cut\r\n [readOnly]=\"readonly\"\r\n [cut]=\"fluidAnalysis.heavyNaphthaCut\"\r\n [idPrefix]=\"idPrefix + 'heavyNaphthaCut'\"\r\n [formGroup]=\"formGroup\">\r\n </sob-reactive-cut>\r\n </div>\r\n</div>\r\n\r\n<hr />\r\n\r\n<h4>\r\n <a\r\n data-toggle=\"collapse\"\r\n sfeCollapsePanelIcon\r\n href=\"#{{ idPrefix }}uo-distillate\"\r\n aria-expanded=\"false\"\r\n [attr.aria-controls]=\"'#uo-distillate'\">\r\n <i class=\"fa fa-plus\" aria-hidden=\"true\"></i>\r\n Distillate\r\n </a>\r\n</h4>\r\n<div id=\"{{ idPrefix }}uo-distillate\" class=\"collapse\">\r\n <div class=\"form-horizontal\">\r\n <sob-reactive-cut\r\n [readOnly]=\"readonly\"\r\n [cut]=\"fluidAnalysis.distillateCut\"\r\n [idPrefix]=\"idPrefix + 'distillateCut'\"\r\n [formGroup]=\"formGroup\">\r\n </sob-reactive-cut>\r\n </div>\r\n</div>\r\n\r\n<hr />\r\n\r\n<h4>\r\n <a\r\n data-toggle=\"collapse\"\r\n sfeCollapsePanelIcon\r\n href=\"#{{ idPrefix }}uo-lgo\"\r\n aria-expanded=\"false\"\r\n [attr.aria-controls]=\"'#uo-lgo'\">\r\n <i class=\"fa fa-plus\" aria-hidden=\"true\"></i>\r\n LGO\r\n </a>\r\n</h4>\r\n<div id=\"{{ idPrefix }}uo-lgo\" class=\"collapse\">\r\n <div class=\"form-horizontal\">\r\n <sob-reactive-cut\r\n [readOnly]=\"readonly\"\r\n [cut]=\"fluidAnalysis.LGOCut\"\r\n [idPrefix]=\"idPrefix + 'LGOCut'\"\r\n [formGroup]=\"formGroup\">\r\n </sob-reactive-cut>\r\n </div>\r\n</div>\r\n\r\n<hr />\r\n\r\n<h4>\r\n <a\r\n data-toggle=\"collapse\"\r\n sfeCollapsePanelIcon\r\n href=\"#{{ idPrefix }}uo-hgo\"\r\n aria-expanded=\"false\"\r\n [attr.aria-controls]=\"'#uo-hgo'\">\r\n <i class=\"fa fa-plus\" aria-hidden=\"true\"></i>\r\n HGO\r\n </a>\r\n</h4>\r\n<div id=\"{{ idPrefix }}uo-hgo\" class=\"collapse\">\r\n <div class=\"form-horizontal\">\r\n <sob-reactive-cut\r\n [readOnly]=\"readonly\"\r\n [cut]=\"fluidAnalysis.HGOCut\"\r\n [idPrefix]=\"idPrefix + 'HGOCut'\"\r\n [formGroup]=\"formGroup\">\r\n </sob-reactive-cut>\r\n </div>\r\n</div>\r\n\r\n<hr />\r\n\r\n<h4>\r\n <a\r\n data-toggle=\"collapse\"\r\n sfeCollapsePanelIcon\r\n href=\"#{{ idPrefix }}uo-vgo\"\r\n aria-expanded=\"false\"\r\n [attr.aria-controls]=\"'#uo-vgo'\">\r\n <i class=\"fa fa-plus\" aria-hidden=\"true\"></i>\r\n VGO\r\n </a>\r\n</h4>\r\n<div id=\"{{ idPrefix }}uo-vgo\" class=\"collapse\">\r\n <div class=\"form-horizontal\">\r\n <sob-reactive-cut\r\n [readOnly]=\"readonly\"\r\n [cut]=\"fluidAnalysis.VGOCut\"\r\n [idPrefix]=\"idPrefix + 'VGOCut'\"\r\n [formGroup]=\"formGroup\">\r\n </sob-reactive-cut>\r\n </div>\r\n</div>\r\n\r\n<hr />\r\n\r\n<h4>\r\n <a\r\n data-toggle=\"collapse\"\r\n sfeCollapsePanelIcon\r\n href=\"#{{ idPrefix }}uo-hvgo\"\r\n aria-expanded=\"false\"\r\n [attr.aria-controls]=\"'#uo-hvgo'\">\r\n <i class=\"fa fa-plus\" aria-hidden=\"true\"></i>\r\n HVGO\r\n </a>\r\n</h4>\r\n<div id=\"{{ idPrefix }}uo-hvgo\" class=\"collapse\">\r\n <div class=\"form-horizontal\">\r\n <sob-reactive-cut\r\n [readOnly]=\"readonly\"\r\n [cut]=\"fluidAnalysis.HVGOCut\"\r\n [idPrefix]=\"idPrefix + 'HVGOCut'\"\r\n [formGroup]=\"formGroup\">\r\n </sob-reactive-cut>\r\n </div>\r\n</div>\r\n\r\n<hr />\r\n\r\n<h4>\r\n <a\r\n data-toggle=\"collapse\"\r\n sfeCollapsePanelIcon\r\n href=\"#{{ idPrefix }}uo-resid\"\r\n aria-expanded=\"false\"\r\n [attr.aria-controls]=\"'#uo-resid'\">\r\n <i class=\"fa fa-plus\" aria-hidden=\"true\"></i>\r\n Resid\r\n </a>\r\n</h4>\r\n<div id=\"{{ idPrefix }}uo-resid\" class=\"collapse\">\r\n <div class=\"form-horizontal\">\r\n <sob-reactive-cut\r\n [readOnly]=\"readonly\"\r\n [cut]=\"fluidAnalysis.residCut\"\r\n [idPrefix]=\"idPrefix + 'residCut'\"\r\n [formGroup]=\"formGroup\">\r\n </sob-reactive-cut>\r\n </div>\r\n</div>\r\n\r\n<hr />\r\n","<form [formGroup]=\"table\" style=\"padding-right: 15px\">\r\n <table class=\"table\">\r\n <thead>\r\n <tr>\r\n <th>Name</th>\r\n <th>Min</th>\r\n <th>Max</th>\r\n <th>Value</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <ng-container formArrayName=\"tableRows\" *ngFor=\"let group of rows.controls; let i = index\">\r\n <tr [formGroupName]=\"i\">\r\n <td>{{ findDistributionRatioName(i) }}</td>\r\n <td>\r\n <input\r\n [readOnly]=\"blendRecipeOption === 'exact' || readonly\"\r\n (change)=\"validateRange(i, 'minimumValue')\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n formControlName=\"minimumValue\" />\r\n </td>\r\n <td>\r\n <input\r\n [readOnly]=\"blendRecipeOption === 'exact' || readonly\"\r\n (change)=\"validateRange(i, 'maximumValue')\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n formControlName=\"maximumValue\" />\r\n </td>\r\n <td>\r\n <input\r\n (change)=\"roundValues(i)\"\r\n type=\"number\"\r\n class=\"form-control\"\r\n formControlName=\"value\"\r\n [readOnly]=\"i === rows.controls.length - 1 || blendRecipeOption === 'range' || readonly\" />\r\n </td>\r\n </tr>\r\n <tr\r\n *ngIf=\"\r\n rows.controls[i].get('value').invalid &&\r\n (rows.controls[i].get('value').dirty || rows.controls[i].get('value').touched)\r\n \">\r\n <td colspan=\"3\">\r\n <span class=\"text-danger\">\r\n <span *ngIf=\"rows.controls[i].get('value').errors?.required\">Please enter a value</span>\r\n <span *ngIf=\"rows.controls[i].get('value').errors?.max\">Distribution ratio cannot be greater than 1</span>\r\n <span *ngIf=\"rows.controls[i].get('value').errors?.min\">Distribution ratio cannot be negative</span>\r\n </span>\r\n </td>\r\n </tr>\r\n </ng-container>\r\n </tbody>\r\n </table>\r\n</form>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { UntypedFormArray, UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms';\r\nimport { RangeDistributionRatioVariable } from '../../../_models/_unit-operations/range-distribution-ratio-variable';\r\nimport { CoreService } from '../../../_services/core.service';\r\n\r\ndeclare let unitConverter: any;\r\n@Component({\r\n selector: 'sob-range-distribution-ratio-variable',\r\n templateUrl: './range-distribution-ratio-variable.component.html',\r\n styleUrls: ['./range-distribution-ratio-variable.component.css'],\r\n})\r\nexport class RangeDistributionRatioVariableComponent implements OnInit {\r\n @Input()\r\n ratioVariables: Array<RangeDistributionRatioVariable>;\r\n\r\n @Input()\r\n blendRecipeOption: string;\r\n\r\n @Input()\r\n readonly = false;\r\n\r\n table: UntypedFormGroup;\r\n\r\n constructor(private fb: UntypedFormBuilder, private coreService: CoreService) {}\r\n\r\n ngOnInit() {\r\n this.table = this.fb.group({\r\n tableRows: this.fb.array(this.initRows()),\r\n });\r\n this.rows.valueChanges.forEach(() => {\r\n this.calculateLastDistributionVariable();\r\n });\r\n\r\n // eslint-disable-next-line guard-for-in\r\n for (const i in this.rows.controls) {\r\n this.roundValues(+i);\r\n }\r\n }\r\n\r\n validateRange(i: number, target) {\r\n const row = this.rows.controls[i];\r\n const parsedMin = unitConverter.parseFloatString(row.get('minimumValue').value);\r\n const parsedMax = unitConverter.parseFloatString(row.get('maximumValue').value);\r\n if (parsedMin && parsedMax) {\r\n if (parsedMin >= parsedMax) {\r\n row.get(target).setValue('');\r\n }\r\n }\r\n this.roundValues(i);\r\n }\r\n\r\n roundValues(i: number) {\r\n const row = this.rows.controls[i];\r\n const parsedValue = unitConverter.parseFloatString(row.get('value').value);\r\n const parsedMin = unitConverter.parseFloatString(row.get('minimumValue').value);\r\n const parsedMax = unitConverter.parseFloatString(row.get('maximumValue').value);\r\n\r\n if (!isNaN(parsedValue)) {\r\n row.get('value').setValue(parseFloat(parsedValue.toFixed(3)));\r\n }\r\n if (!isNaN(parsedMax)) {\r\n row.get('maximumValue').setValue(parseFloat(parsedMax.toFixed(3)));\r\n }\r\n if (!isNaN(parsedMin)) {\r\n row.get('minimumValue').setValue(parseFloat(parsedMin.toFixed(3)));\r\n }\r\n }\r\n\r\n private initRows() {\r\n return this.ratioVariables.map((dv, i) => {\r\n return this.fb.group({\r\n minimumValue: [dv.minimumValue],\r\n maximumValue: [dv.maximumValue],\r\n value: [dv.value, [Validators.min(0), Validators.max(1)]],\r\n });\r\n });\r\n }\r\n\r\n findDistributionRatioName(i): string {\r\n const id = this.ratioVariables[i].unitOperationId;\r\n return this.coreService.currentCase.getUnitOperation(id).name;\r\n }\r\n\r\n get rows() {\r\n const rows = this.table.get('tableRows') as UntypedFormArray;\r\n return rows;\r\n }\r\n\r\n calculateLastDistributionVariable() {\r\n const { controls } = this.rows;\r\n if (controls.length <= 1) {\r\n return;\r\n }\r\n let total = 0;\r\n\r\n for (let i = 0; i < controls.length - 1; i++) {\r\n const dv = controls[i];\r\n const valueParsed = unitConverter.parseFloatString(dv.get('value').value);\r\n\r\n if (!isNaN(valueParsed)) {\r\n total += valueParsed;\r\n } else {\r\n return;\r\n }\r\n }\r\n controls[controls.length - 1].get('value').setValue(parseFloat((1 - total).toFixed(5)), {\r\n emitEvent: false,\r\n emitModelToViewChange: true,\r\n emitViewToModelChange: true,\r\n });\r\n controls[controls.length - 1].get('value').markAsDirty();\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, OnDestroy, Output } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { CodeEditorService } from '../../code-editor/code-editor.service';\r\nimport { DefaultCodeProvider } from '../../../_services/custom-code-providers/default-code-provider';\r\n\r\n@Component({\r\n selector: 'sob-open-reactive-code-editor-button',\r\n templateUrl: './open-reactive-code-editor-button.component.html',\r\n styleUrls: ['./open-reactive-code-editor-button.component.css'],\r\n})\r\nexport class OpenReactiveCodeEditorButtonComponent implements OnDestroy {\r\n private ngUnsubscribe = new Subject();\r\n\r\n @Input() code: string;\r\n @Input() defaultCodeProvider: DefaultCodeProvider;\r\n @Input() disabled: boolean;\r\n @Input() instanceId: string;\r\n @Output() codeSaved = new EventEmitter<{ code: string; instanceId: string }>();\r\n\r\n constructor(private codeEditorService: CodeEditorService) {\r\n this.codeEditorService.closeAndSaveCodeRequest.pipe(takeUntil(this.ngUnsubscribe)).subscribe((res: any) => {\r\n this.codeSaved.emit({ code: res.code, instanceId: res.instanceId });\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.ngUnsubscribe.next();\r\n this.ngUnsubscribe.complete();\r\n }\r\n\r\n openReactiveCodeEditor() {\r\n $('#codeEditorModal').modal('show');\r\n $('#codeEditorInstanceId').val(this.instanceId);\r\n this.codeEditorService.setEditorCode({ code: this.code, defaultCodeProvider: this.defaultCodeProvider });\r\n }\r\n}\r\n","<div>\r\n <button [id]=\"instanceId\" class=\"btn btn-primary\" (click)=\"openReactiveCodeEditor()\" [disabled]=\"disabled\">\r\n <i class=\"fa fa-code\"></i> Open Code Editor\r\n </button>\r\n</div>\r\n","<label class=\"subtitle\">Steam</label>\r\n<a class=\"btn btn-outline btn-success btn-xs m-l-sm\" href=\"#steamDiv\" (click)=\"switchOpened()\" aria-expanded=\"false\">\r\n <i *ngIf=\"!isOpened\" class=\"fa fa-plus\"></i>\r\n <i *ngIf=\"isOpened\" class=\"fa fa-minus\"></i>\r\n</a>\r\n\r\n<div class=\"collapse\" id=\"steamDiv\" aria-expanded=\"false\" [formGroup]=\"propertyWindowFormGroup\">\r\n <div class=\"form-group\">\r\n <label for=\"customModelEnabled\" class=\"control-label col-sm-4\"> Use Custom Model for Steam </label>\r\n <div class=\"col-sm-4\">\r\n <label class=\"control-label\">\r\n <input type=\"checkbox\" formControlName=\"useSteamCustomModel\" />\r\n </label>\r\n </div>\r\n\r\n <div class=\"clearfix\"></div>\r\n </div>\r\n\r\n <div *ngIf=\"useSteam\">\r\n <sob-open-reactive-code-editor-button\r\n [code]=\"unitOperation.steamModelScript\"\r\n [defaultCodeProvider]=\"defaultCodeProvider\"\r\n [instanceId]=\"'reactiveSteamCodeEditor'\"\r\n [disabled]=\"!unitOperation.useSteamCustomModel\"\r\n (codeSaved)=\"saveSteamCustomModel($event)\">\r\n </sob-open-reactive-code-editor-button>\r\n </div>\r\n\r\n <hr class=\"m-t-md m-b-md\" />\r\n\r\n <div class=\"form-group\" formGroupName=\"steamMake900\">\r\n <label class=\"control-label col-sm-4\"> 900# Steam Make </label>\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.steamMake900.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input formControlName=\"value\" [valueMetaData]=\"unitOperation.steamMake900\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"steamUse900\">\r\n <label class=\"control-label col-sm-4\"> 900# Steam Use </label>\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.steamUse900.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input formControlName=\"value\" [valueMetaData]=\"unitOperation.steamUse900\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <hr style=\"padding-bottom: 10px\" />\r\n\r\n <div class=\"form-group\" formGroupName=\"steamMake600\">\r\n <label class=\"control-label col-sm-4\"> 600# Steam Make </label>\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.steamMake600.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input formControlName=\"value\" [valueMetaData]=\"unitOperation.steamMake600\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"steamUse600\">\r\n <label class=\"control-label col-sm-4\"> 600# Steam Use </label>\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.steamUse600.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input formControlName=\"value\" [valueMetaData]=\"unitOperation.steamUse600\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <hr style=\"padding-bottom: 10px\" />\r\n\r\n <div class=\"form-group\" formGroupName=\"steamMake150\">\r\n <label class=\"control-label col-sm-4\"> 150# Steam Make </label>\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.steamMake150.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input formControlName=\"value\" [valueMetaData]=\"unitOperation.steamMake150\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"steamUse150\">\r\n <label class=\"control-label col-sm-4\"> 150# Steam Use </label>\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.steamUse150.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input formControlName=\"value\" [valueMetaData]=\"unitOperation.steamUse150\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <hr style=\"padding-bottom: 10px\" />\r\n\r\n <div class=\"form-group\" formGroupName=\"steamMake50\">\r\n <label class=\"control-label col-sm-4\"> 50# Steam Make </label>\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.steamMake50.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input formControlName=\"value\" [valueMetaData]=\"unitOperation.steamMake50\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"steamUse50\">\r\n <label class=\"control-label col-sm-4\"> 50# Steam Use </label>\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.steamUse50.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input formControlName=\"value\" [valueMetaData]=\"unitOperation.steamUse50\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { UntypedFormBuilder } from '@angular/forms';\r\nimport { SimVarFormBuilder } from '../../../_form-utils/sim-var-form-builder';\r\nimport { BaseObjectFormGroupWrapper } from '../../../_form-utils/base-object-form-group-wrapper';\r\nimport { SteamUseUnitOperation } from '../../../_models/_unit-operations/steam-use-unit-operation';\r\nimport { FlowsheetService } from '../../../_services/flowsheet.service';\r\nimport { SteamContributorCodeProvider } from '../../../_services/custom-code-providers/steam-contributor-code-provider';\r\n\r\n@Component({\r\n selector: 'sob-reactive-steam-use-utility',\r\n templateUrl: './reactive-steam-use-utility.component.html',\r\n styleUrls: ['./reactive-steam-use-utility.component.css'],\r\n})\r\nexport class ReactiveSteamUseUtilityComponent implements OnInit {\r\n @Input() unitOperation: SteamUseUnitOperation;\r\n @Input() formGroupWrapper: BaseObjectFormGroupWrapper;\r\n defaultCodeProvider: SteamContributorCodeProvider;\r\n isOpened = false;\r\n\r\n constructor(\r\n private fb: UntypedFormBuilder,\r\n private svfb: SimVarFormBuilder,\r\n private flowsheetService: FlowsheetService\r\n ) {\r\n this.defaultCodeProvider = new SteamContributorCodeProvider();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.addControls();\r\n this.formGroupWrapper.storeOriginalValue();\r\n }\r\n\r\n addControls() {\r\n this.propertyWindowFormGroup.addControl('name', this.fb.control(this.unitOperation.name));\r\n this.propertyWindowFormGroup.addControl(\r\n 'useSteamCustomModel',\r\n this.fb.control(!!this.unitOperation.useSteamCustomModel)\r\n );\r\n this.propertyWindowFormGroup.addControl('steamModelScript', this.fb.control(this.unitOperation.steamModelScript));\r\n this.propertyWindowFormGroup.addControl('steamMake900', this.svfb.control(this.unitOperation.steamMake900, true));\r\n this.propertyWindowFormGroup.addControl('steamUse900', this.svfb.control(this.unitOperation.steamUse900, true));\r\n this.propertyWindowFormGroup.addControl('steamMake600', this.svfb.control(this.unitOperation.steamMake600, true));\r\n this.propertyWindowFormGroup.addControl('steamUse600', this.svfb.control(this.unitOperation.steamUse600, true));\r\n this.propertyWindowFormGroup.addControl('steamMake150', this.svfb.control(this.unitOperation.steamMake150, true));\r\n this.propertyWindowFormGroup.addControl('steamUse150', this.svfb.control(this.unitOperation.steamUse150, true));\r\n this.propertyWindowFormGroup.addControl('steamMake50', this.svfb.control(this.unitOperation.steamMake50, true));\r\n this.propertyWindowFormGroup.addControl('steamUse50', this.svfb.control(this.unitOperation.steamUse50, true));\r\n }\r\n\r\n get useSteam() {\r\n this.unitOperation.useSteamCustomModel = this.propertyWindowFormGroup.get('useSteamCustomModel').value;\r\n return this.unitOperation.useSteamCustomModel;\r\n }\r\n\r\n get propertyWindowFormGroup() {\r\n return this.formGroupWrapper.getFormGroup();\r\n }\r\n\r\n switchOpened() {\r\n $('#steamDiv').collapse('toggle');\r\n this.isOpened = !this.isOpened;\r\n }\r\n\r\n saveSteamCustomModel(res: any) {\r\n if (res.instanceId === 'reactiveSteamCodeEditor') {\r\n this.propertyWindowFormGroup.get('steamModelScript').setValue(res.code);\r\n this.unitOperation.steamModelScript = this.propertyWindowFormGroup.get('steamModelScript').value;\r\n this.flowsheetService.saveCustomCodeChanges();\r\n }\r\n }\r\n}\r\n","<div>\r\n <label class=\"subtitle-v2 gas-label\">Gas</label>\r\n\r\n <a class=\"btn btn-outline btn-success btn-xs m-l-sm\" href=\"#gasDiv\" (click)=\"switchOpened()\" aria-expanded=\"false\">\r\n <i *ngIf=\"!isOpened\" class=\"fa fa-plus\"></i>\r\n <i *ngIf=\"isOpened\" class=\"fa fa-minus\"></i>\r\n </a>\r\n</div>\r\n\r\n<div [formGroup]=\"formGroup\" class=\"collapse\" id=\"gasDiv\" aria-expanded=\"false\">\r\n <div class=\"form-group\">\r\n <label for=\"customGasModelEnabled\" class=\"control-label col-sm-4\"> Use Custom Model for Gas </label>\r\n <div class=\"col-sm-4\">\r\n <label class=\"control-label\">\r\n <input type=\"checkbox\" id=\"customGasModelEnabled\" formControlName=\"useCustomGasModel\" />\r\n </label>\r\n </div>\r\n\r\n <div class=\"clearfix\"></div>\r\n </div>\r\n <div *ngIf=\"useCustomGasModel\">\r\n <sob-open-code-editor-button\r\n [code]=\"unitOperation.gasModelScript\"\r\n [defaultCodeProvider]=\"defaultCodeProvider\"\r\n [instanceId]=\"'gasCodeEditor'\"\r\n [disabled]=\"!useCustomGasModel\"\r\n (codeSaved)=\"saveGasCustomModel($event)\">\r\n </sob-open-code-editor-button>\r\n </div>\r\n <hr class=\"m-t-md m-b-md\" />\r\n\r\n <div class=\"form-group\" formGroupName=\"fuelGasEmissionFactor\">\r\n <label class=\"control-label col-sm-4\"> Fuel Gas Emission Factor </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.fuelGasEmissionFactor.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.fuelGasEmissionFactor\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"fuelGasHeatingValue\">\r\n <label class=\"control-label col-sm-4\"> Fuel Gas Heating Value (LHV) </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.fuelGasHeatingValue.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.fuelGasHeatingValue\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"energyFlow\">\r\n <label class=\"control-label col-sm-4\"> Energy Flow </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.energyFlow.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input formControlName=\"value\" [valueMetaData]=\"unitOperation.energyFlow\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"flowrate\">\r\n <label class=\"control-label col-sm-4\"> Flowrate </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.flowrate.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input formControlName=\"value\" [valueMetaData]=\"unitOperation.flowrate\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label class=\"control-label col-sm-4\"> Gas Analysis </label>\r\n\r\n <div class=\"col-sm-8\">\r\n <div class=\"row\">\r\n <div class=\"col-xs-12\">\r\n <sob-assay-selector\r\n formControlName=\"gasAnalysisId\"\r\n [fluidAnalyses]=\"fluidAnalyses\"\r\n [currentAnalysis]=\"currentAnalysis\"\r\n (updateCurrentAssay)=\"updateCurrentAnalysis($event)\">\r\n </sob-assay-selector>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';\r\nimport { GasContributorUnitOperation } from '../../../_models/_unit-operations/gas-contributor-unit-operation';\r\nimport { BaseObjectFormGroupWrapper } from '../../../_form-utils/base-object-form-group-wrapper';\r\nimport { SimVarFormBuilder } from '../../../_form-utils/sim-var-form-builder';\r\nimport { GasFluidAnalysis } from '../../../_models/_fluid/gas-fluid-analysis';\r\nimport { CoreService } from '../../../_services/core.service';\r\nimport { FlowsheetService } from '../../../_services/flowsheet.service';\r\nimport { GasContributorCodeProvider } from '../../../_services/custom-code-providers/gas-contributor-code-provider';\r\n\r\n@Component({\r\n selector: 'sob-reactive-gas-contributor',\r\n templateUrl: './reactive-gas-contributor.component.html',\r\n styleUrls: ['./reactive-gas-contributor.component.css'],\r\n})\r\nexport class ReactiveGasContributorComponent implements OnInit {\r\n @Input() unitOperation: GasContributorUnitOperation;\r\n @Input() formGroupWrapper: BaseObjectFormGroupWrapper;\r\n\r\n defaultCodeProvider: GasContributorCodeProvider;\r\n isOpened = false;\r\n currentAnalysis: GasFluidAnalysis;\r\n\r\n constructor(\r\n private fb: UntypedFormBuilder,\r\n private svfb: SimVarFormBuilder,\r\n private coreService: CoreService,\r\n private flowsheetService: FlowsheetService\r\n ) {\r\n this.defaultCodeProvider = new GasContributorCodeProvider();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.addControls();\r\n this.updateCurrentAnalysis();\r\n this.formGroupWrapper.storeOriginalValue();\r\n }\r\n\r\n private addControls() {\r\n this.formGroup.addControl(\r\n 'fuelGasEmissionFactor',\r\n this.svfb.control(this.unitOperation.fuelGasEmissionFactor, false)\r\n );\r\n this.formGroup.addControl('fuelGasHeatingValue', this.svfb.control(this.unitOperation.fuelGasHeatingValue, false));\r\n this.formGroup.addControl('energyFlow', this.svfb.control(this.unitOperation.energyFlow, true));\r\n this.formGroup.addControl('flowrate', this.svfb.control(this.unitOperation.flowrate, true));\r\n this.formGroup.addControl('useCustomGasModel', this.fb.control(this.unitOperation.useCustomGasModel));\r\n this.formGroup.addControl('gasModelScript', this.fb.control(this.unitOperation.gasModelScript));\r\n this.formGroup.addControl('gasAnalysisId', this.fb.control(this.unitOperation.gasAnalysisId));\r\n }\r\n\r\n saveGasCustomModel(res: any) {\r\n if (res.instanceId === 'gasCodeEditor') {\r\n this.formGroup.get('gasModelScript').setValue(res.code);\r\n this.unitOperation.gasModelScript = res.code;\r\n this.flowsheetService.saveCustomCodeChanges();\r\n }\r\n }\r\n\r\n switchOpened() {\r\n $('#gasDiv').collapse('toggle');\r\n this.isOpened = !this.isOpened;\r\n }\r\n\r\n get formGroup(): UntypedFormGroup {\r\n return this.formGroupWrapper.getFormGroup();\r\n }\r\n\r\n get useCustomGasModel(): boolean {\r\n return !!this.formGroup.get('useCustomGasModel').value;\r\n }\r\n\r\n get fluidAnalyses() {\r\n return this.coreService.currentCase.assayManager.getAssaysByCategory('Gas');\r\n }\r\n\r\n updateCurrentAnalysis(id?) {\r\n if (id) {\r\n this.unitOperation.gasAnalysisId = id;\r\n }\r\n if (this.unitOperation.gasAnalysisId) {\r\n this.currentAnalysis = this.coreService.currentCase.assayManager.findFluidAnalysisById(\r\n this.unitOperation.gasAnalysisId\r\n );\r\n this.formGroup.get('gasAnalysisId').setValue(this.unitOperation.gasAnalysisId);\r\n }\r\n }\r\n}\r\n","<div [formGroup]=\"propertyWindowFormGroup\">\r\n <div class=\"form-horizontal\">\r\n <div class=\"form-group\">\r\n <label class=\"pw-label control-label col-sm-4\"> Assay Name </label>\r\n <div class=\"col-sm-6\">\r\n <sob-assay-selector\r\n [fluidAnalyses]=\"fluidAnalyses\"\r\n [currentAnalysis]=\"currentAnalysis\"\r\n (updateCurrentAssay)=\"updateCurrentAnalysis($event)\"\r\n formControlName=\"fluidAnalysisId\">\r\n </sob-assay-selector>\r\n </div>\r\n </div>\r\n </div>\r\n <hr />\r\n <ul class=\"nav nav-tabs\" role=\"tablist\" style=\"margin-top: 20px\">\r\n <li role=\"presentation\" class=\"active\">\r\n <a href=\"#blockSpecifications\" aria-controls=\"blockSpecifications\" role=\"tab\" data-toggle=\"tab\">General</a>\r\n </li>\r\n <li role=\"presentation\">\r\n <a href=\"#economics\" aria-controls=\"economics\" role=\"tab\" data-toggle=\"tab\">Economics</a>\r\n </li>\r\n <li *ngIf=\"currentAnalysis\" role=\"presentation\">\r\n <a href=\"#productspecs\" aria-controls=\"productspecs\" role=\"tab\" data-toggle=\"tab\">Product Specifications</a>\r\n </li>\r\n\r\n <li role=\"presentation\">\r\n <a href=\"#constraints\" aria-controls=\"constraints\" role=\"tab\" data-toggle=\"tab\"> Constraints </a>\r\n </li>\r\n\r\n <li role=\"presentation\">\r\n <a href=\"#utility\" aria-controls=\"utility\" role=\"tab\" data-toggle=\"tab\">Utilities</a>\r\n </li>\r\n\r\n <li role=\"presentation\">\r\n <a href=\"#comments\" aria-controls=\"comments\" role=\"tab\" data-toggle=\"tab\">\r\n <i class=\"fa fa-comments fa-lg\" aria-hidden=\"true\"> </i>\r\n Comments\r\n </a>\r\n </li>\r\n </ul>\r\n\r\n <div class=\"tab-content pw-margin tab-content-padding\">\r\n <div role=\"tabpanel\" class=\"tab-pane fade in active\" id=\"blockSpecifications\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <div class=\"form-horizontal\">\r\n <div class=\"form-group\">\r\n <label for=\"separateLightEndsProduct\" class=\"control-label col-sm-4\"> Separate Light Ends Product </label>\r\n <div class=\"col-sm-4\">\r\n <label class=\"control-label\">\r\n <input\r\n formControlName=\"separateLightEndsProduct\"\r\n type=\"checkbox\"\r\n id=\"separateLightEndsProduct\"\r\n (change)=\"changeLightEndsProduct()\" />\r\n </label>\r\n </div>\r\n </div>\r\n <ng-container>\r\n <div class=\"form-group\" formGroupName=\"totalYield\">\r\n <label class=\"control-label col-sm-4\"> Volumetric Yield </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.totalYield.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.totalYield\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"totalInletVolume\">\r\n <label class=\"control-label col-sm-4\"> Total Inlet Volume </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select\r\n formControlName=\"unit\"\r\n [quantity]=\"unitOperation.totalInletVolume.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.totalInletVolume\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" *ngIf=\"lightEndsProduct\" formGroupName=\"butaneRecovery\">\r\n <label class=\"control-label col-sm-4\"> Butane Recovery </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.butaneRecovery.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.butaneRecovery\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <hr />\r\n <h4 class=\"subtitle\">GHG</h4>\r\n\r\n <div class=\"form-group\" formGroupName=\"ghgIntensity\">\r\n <label class=\"control-label col-sm-4\"> GHG Intensity </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.ghgIntensity.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.ghgIntensity\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group\" formGroupName=\"ghgEmissions\">\r\n <label class=\"control-label col-sm-4\"> GHG Emissions </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.ghgEmissions.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.ghgEmissions\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"economics\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <div class=\"form-horizontal\">\r\n <h4 class=\"subtitle\">OPEX</h4>\r\n <ng-container>\r\n <div class=\"form-group\" formGroupName=\"opexFixed\">\r\n <label class=\"control-label col-sm-4\"> Fixed </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.opexFixed.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.opexFixed\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"opexVar\">\r\n <label class=\"control-label col-sm-4\"> Variable </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.opexVar.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input formControlName=\"value\" [valueMetaData]=\"unitOperation.opexVar\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"opexCarbonDioxide\">\r\n <label class=\"control-label col-sm-4\"> CO2 </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select\r\n formControlName=\"unit\"\r\n [quantity]=\"unitOperation.opexCarbonDioxide.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.opexCarbonDioxide\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"opexTotal\">\r\n <label class=\"control-label col-sm-4\"> Total </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.opexTotal.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.opexTotal\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <hr />\r\n <h4 class=\"subtitle\">CAPEX</h4>\r\n\r\n <div class=\"form-group\" formGroupName=\"capexAmortized\">\r\n <label class=\"control-label col-sm-4\"> Amortized CAPEX </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.capexAmortized.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.capexAmortized\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"capexTotal\">\r\n <label class=\"control-label col-sm-4\"> Total </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.capexTotal.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.capexTotal\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"currentAnalysis\" role=\"tabpanel\" class=\"tab-pane fade in\" id=\"productspecs\">\r\n <ul class=\"nav nav-pills\" role=\"tablist\" style=\"margin-right: 15px\">\r\n <li role=\"presentation\" class=\"active\">\r\n <a href=\"#bulkProperties\" aria-controls=\"bulkProperties\" role=\"tab\" data-toggle=\"tab\">Bulk Properties</a>\r\n </li>\r\n\r\n <li role=\"presentation\">\r\n <a href=\"#cutProperties\" aria-controls=\"cutProperties\" role=\"tab\" data-toggle=\"tab\">Cut Properties</a>\r\n </li>\r\n\r\n <li role=\"presentation\">\r\n <a href=\"#compositionUO\" aria-controls=\"composition\" role=\"tab\" data-toggle=\"tab\">Composition</a>\r\n </li>\r\n </ul>\r\n\r\n <div class=\"tab-content pw-margin tab-content-padding\">\r\n <div role=\"tabpanel\" class=\"tab-pane fade in active\" id=\"bulkProperties\">\r\n <sob-bulk-properties [currentAnalysis]=\"currentAnalysis\"></sob-bulk-properties>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"cutProperties\">\r\n <sob-reactive-cut-properties\r\n [readonly]=\"true\"\r\n [fluidAnalysis]=\"currentAnalysis\"></sob-reactive-cut-properties>\r\n </div>\r\n\r\n <div *ngIf=\"currentAnalysis\" role=\"tabpanel\" class=\"tab-pane fade in\" id=\"compositionUO\">\r\n <sob-composition [currentAnalysis]=\"currentAnalysis\"></sob-composition>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"constraints\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <div class=\"form-horizontal\">\r\n <div class=\"form-group\">\r\n <label for=\"constraintOption\" class=\"pw-label control-label col-sm-4\"> Constraint Option </label>\r\n <div class=\"col-sm-6\">\r\n <select\r\n id=\"constraintOption\"\r\n (change)=\"disableFeedSlateCheckBox()\"\r\n class=\"form-control\"\r\n formControlName=\"constraintOption\">\r\n <option value=\"blendRatio\">Blend Ratio</option>\r\n <option value=\"properties\">Properties</option>\r\n </select>\r\n </div>\r\n </div>\r\n <div class=\"form-group\">\r\n <label class=\"pw-label control-label col-sm-4 subtitle-v2\"> Feedslate </label>\r\n </div>\r\n <div class=\"form-group\">\r\n <label for=\"feedSlateDisabled\" class=\"control-label col-sm-4\"> Disable FeedSlate </label>\r\n\r\n <div class=\"col-sm-4\">\r\n <label class=\"control-label\">\r\n <input\r\n type=\"checkbox\"\r\n id=\"feedSlateDisabled\"\r\n formControlName=\"feedSlateDisabled\"\r\n (change)=\"feedSlateCheckBoxChange()\" />\r\n </label>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label for=\"typeDD\" class=\"pw-label control-label col-sm-4\"> Blend Recipe Option </label>\r\n <div class=\"col-sm-6\">\r\n <select\r\n id=\"typeDD\"\r\n class=\"form-control\"\r\n (change)=\"updateRecipeOption()\"\r\n formControlName=\"blendRecipeOption\">\r\n <option value=\"exact\">Exact</option>\r\n <option value=\"range\">Range</option>\r\n </select>\r\n </div>\r\n </div>\r\n\r\n <sob-range-distribution-ratio-variable\r\n [blendRecipeOption]=\"unitOperation.blendRecipeOption\"\r\n [readonly]=\"feedSlateDisabled.value || constraintOption === 'properties'\"\r\n [ratioVariables]=\"unitOperation.distributionRatioVariables\">\r\n </sob-range-distribution-ratio-variable>\r\n\r\n <div class=\"form-group\">\r\n <hr style=\"padding-top: 20px\" />\r\n <label class=\"pw-label control-label col-sm-4 subtitle-v2\"> Constraints </label>\r\n </div>\r\n <ng-container>\r\n <div class=\"form-group\" formGroupName=\"capacity\">\r\n <label class=\"control-label col-sm-4\"> Maximum Feed Capacity </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-5\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.capacity.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-5\">\r\n <sob-reactive-variable-value-input formControlName=\"value\" [valueMetaData]=\"unitOperation.capacity\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n <div class=\"col-xs-2\">\r\n <sob-reactive-constraint-check-box\r\n formControlName=\"isActive\"\r\n [isConstraint]=\"true\"\r\n [valueMetaData]=\"unitOperation.capacity\"></sob-reactive-constraint-check-box>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"minimumFlow\">\r\n <label class=\"control-label col-sm-4\"> Minimum Flow </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-5\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.minimumFlow.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-5\">\r\n <sob-reactive-variable-value-input\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.minimumFlow\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n <div class=\"col-xs-2\">\r\n <sob-reactive-constraint-check-box\r\n formControlName=\"isActive\"\r\n [isConstraint]=\"true\"\r\n [valueMetaData]=\"unitOperation.minimumFlow\"></sob-reactive-constraint-check-box>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"maximumSulfurContent\">\r\n <label class=\"control-label col-sm-4\"> Maximum Sulfur Content</label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-5\">\r\n <sob-reactive-unit-select\r\n formControlName=\"unit\"\r\n [quantity]=\"unitOperation.maximumSulfurContent.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-5\">\r\n <sob-reactive-variable-value-input\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.maximumSulfurContent\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n <div class=\"col-xs-2\">\r\n <sob-reactive-constraint-check-box\r\n formControlName=\"isActive\"\r\n [disabledConstraint]=\"constraintOption === 'blendRatio'\"\r\n [isConstraint]=\"true\"\r\n [valueMetaData]=\"unitOperation.maximumSulfurContent\"></sob-reactive-constraint-check-box>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"maximumNitrogen\">\r\n <label class=\"control-label col-sm-4\"> Maximum Nitrogen</label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-5\">\r\n <sob-reactive-unit-select\r\n formControlName=\"unit\"\r\n [quantity]=\"unitOperation.maximumNitrogen.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-5\">\r\n <sob-reactive-variable-value-input\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.maximumNitrogen\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n <div class=\"col-xs-2\">\r\n <sob-reactive-constraint-check-box\r\n formControlName=\"isActive\"\r\n [disabledConstraint]=\"constraintOption === 'blendRatio'\"\r\n [isConstraint]=\"true\"\r\n [valueMetaData]=\"unitOperation.maximumNitrogen\"></sob-reactive-constraint-check-box>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"utility\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <div class=\"form-horizontal\">\r\n <h4 class=\"subtitle\">Hydrogen</h4>\r\n <ng-container>\r\n <div class=\"form-group\" formGroupName=\"hydrogenUse\">\r\n <label class=\"control-label col-sm-4\"> Hydrogen Use </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.hydrogenUse.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.hydrogenUse\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-horizontal\" [formGroup]=\"propertyWindowFormGroup\">\r\n <div class=\"form-group\" *ngIf=\"hydrogenUseRateVariablesFormArray.length > 0\">\r\n <div class=\"col-md-12\">\r\n <h4 class=\"subtitle-sm col-md-4\" style=\"text-align: right\">Hydrogen Use Rate Variables</h4>\r\n <br />\r\n </div>\r\n <label [attr.for]=\"'hydrogenUseRate'\" class=\"pw-label control-label col-sm-4\"> Unit </label>\r\n\r\n <div class=\"col-sm-4\">\r\n <select id=\"hydrogenUseRate\" class=\"form-control\">\r\n <option>scf/bbl</option>\r\n </select>\r\n </div>\r\n </div>\r\n <div\r\n class=\"form-group\"\r\n formArrayName=\"hydrogenUseRateVariables\"\r\n *ngFor=\"let dv of hydrogenUseRateVariablesFormArray.controls; let i = index\">\r\n <label [attr.for]=\"'hydrogenUseRate' + i\" class=\"pw-label control-label col-sm-4\">\r\n {{ findDistributionRatioName(i) }}\r\n </label>\r\n\r\n <div class=\"col-sm-8\" formGroupName=\"{{ i }}\">\r\n <sob-reactive-variable-value-input\r\n formControlName=\"value\"\r\n [valueMetaData]=\"{\r\n quantity: hydrogenUseRateVariablesQuantity,\r\n unit: hydrogenUseRateVariablesUnit\r\n }\"></sob-reactive-variable-value-input>\r\n <!-- <input-->\r\n <!-- type=\"text\"-->\r\n <!-- class=\"form-control\"-->\r\n <!-- formControlName=\"value\"-->\r\n <!-- (change)=\"roundHydrogenUseRateVariable(i)\" />-->\r\n\r\n <span\r\n class=\"text-danger\"\r\n *ngIf=\"\r\n hydrogenUseRateVariablesFormArray.invalid &&\r\n (hydrogenUseRateVariablesFormArray.controls[i].dirty ||\r\n hydrogenUseRateVariablesFormArray.controls[i].touched)\r\n \">\r\n <span *ngIf=\"hydrogenUseRateVariablesFormArray.controls[i].errors?.required\"\r\n >Please enter a value</span\r\n >\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <h4 class=\"subtitle\">Amine</h4>\r\n\r\n <div class=\"form-group\" formGroupName=\"h2sProductionRate\">\r\n <label class=\"control-label col-sm-4\"> H2S Production Rate </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select\r\n formControlName=\"unit\"\r\n [quantity]=\"unitOperation.h2sProductionRate.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.h2sProductionRate\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"h2sProduction\">\r\n <label class=\"control-label col-sm-4\"> H2S Production</label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.h2sProduction.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.h2sProduction\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <h4 class=\"subtitle\">Power</h4>\r\n\r\n <div class=\"form-group\" formGroupName=\"powerUseRate\">\r\n <label class=\"control-label col-sm-4\"> Power Use Rate</label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.powerUseRate.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.powerUseRate\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <h4 class=\"subtitle\">Natural Gas</h4>\r\n\r\n <div class=\"form-group\" formGroupName=\"naturalGasUseRate\">\r\n <label class=\"control-label col-sm-4\"> Natural Gas Use Rate</label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select\r\n formControlName=\"unit\"\r\n [quantity]=\"unitOperation.naturalGasUseRate.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.naturalGasUseRate\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <div class=\"form-horizontal\">\r\n <sob-reactive-steam-use-utility [formGroupWrapper]=\"formGroupWrapper\" [unitOperation]=\"unitOperation\">\r\n </sob-reactive-steam-use-utility>\r\n <sob-reactive-gas-contributor [formGroupWrapper]=\"formGroupWrapper\" [unitOperation]=\"unitOperation\">\r\n </sob-reactive-gas-contributor>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"comments\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <sob-unit-operation-comments [unitOpId]=\"this.unitOperation.id\"></sob-unit-operation-comments>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n","import { AfterViewInit, Component, Input, OnInit, ViewChild } from '@angular/core';\r\nimport { FormControl, FormGroup, UntypedFormArray, UntypedFormBuilder, Validators } from '@angular/forms';\r\nimport { Hydrotreater } from '../../../_models/_unit-operations/hydrotreater';\r\nimport { CoreService } from '../../../_services/core.service';\r\nimport { SuncorFluidAnalysis } from '../../../_models/_fluid/suncor-fluid-analysis';\r\nimport { SimVarFormBuilder } from '../../../_form-utils/sim-var-form-builder';\r\nimport { BaseObjectFormGroupWrapper } from '../../../_form-utils/base-object-form-group-wrapper';\r\nimport { unitOperationsConfig } from '../../../_config/unit-operations.config';\r\nimport { FlowsheetDiagramService } from '../../../_services/flowsheet-diagram/flowsheet-diagram.service';\r\nimport { BulkPropertiesComponent } from '../../shared/bulk-properties/bulk-properties.component';\r\nimport { CompositionComponent } from '../../shared/composition/composition.component';\r\nimport { ReactiveCutPropertiesComponent } from '../../shared/reactive-cut-properties/reactive-cut-properties.component';\r\nimport { Quantity } from '../../../_config/quantity.enum';\r\nimport { BitumenModelTypes } from '../../../_config/unit-operations/bitumen-conversion-enums';\r\n\r\ndeclare let unitConverter: any;\r\n\r\n@Component({\r\n selector: 'sob-hydrotreater',\r\n templateUrl: './hydrotreater.component.html',\r\n styleUrls: ['./hydrotreater.component.css'],\r\n})\r\nexport class HydrotreaterComponent implements OnInit, AfterViewInit {\r\n @Input() unitOperation: Hydrotreater;\r\n @Input() formGroupWrapper: BaseObjectFormGroupWrapper;\r\n\r\n @ViewChild(BulkPropertiesComponent) bulkProperties: BulkPropertiesComponent;\r\n @ViewChild(CompositionComponent) composition: CompositionComponent;\r\n @ViewChild(ReactiveCutPropertiesComponent) cutProperties: ReactiveCutPropertiesComponent;\r\n currentAnalysis: SuncorFluidAnalysis;\r\n\r\n protected readonly hydrogenUseRateVariablesUnit = unitConverter.units.GasStdVolumePerVolume.SCF_BBL; // 'scf/bbl';\r\n protected hydrogenUseRateVariablesQuantity = Quantity.GAS_STD_VOLUME_PER_VOLUME;\r\n\r\n constructor(\r\n private coreService: CoreService,\r\n private fb: UntypedFormBuilder,\r\n private svfb: SimVarFormBuilder,\r\n private flowsheetDiagramService: FlowsheetDiagramService\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.addControls();\r\n this.addRatioVariableControls();\r\n this.updateCurrentAnalysis();\r\n this.formGroupWrapper.storeOriginalValue();\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.propertyWindowFormGroup.get('fluidAnalysisId').valueChanges.subscribe(next => {\r\n if (this.composition) {\r\n this.bulkProperties.currentAnalysis = this.currentAnalysis;\r\n this.composition.currentAnalysis = this.currentAnalysis;\r\n this.cutProperties.fluidAnalysis = this.currentAnalysis;\r\n if (this.composition.compositionFormGroup) {\r\n this.bulkProperties.updateControls();\r\n this.composition.updateControls();\r\n this.cutProperties.updateControls();\r\n }\r\n }\r\n });\r\n }\r\n\r\n updateCurrentAnalysis(id?) {\r\n if (id) {\r\n this.unitOperation.fluidAnalysisId = id;\r\n }\r\n if (this.unitOperation.fluidAnalysisId) {\r\n this.currentAnalysis = this.coreService.currentCase.assayManager.findFluidAnalysisById(\r\n this.unitOperation.fluidAnalysisId\r\n );\r\n this.propertyWindowFormGroup.get('fluidAnalysisId').setValue(this.unitOperation.fluidAnalysisId);\r\n this.formGroupWrapper.storeOriginalValue();\r\n }\r\n }\r\n\r\n addControls() {\r\n this.propertyWindowFormGroup.addControl('fluidAnalysisId', this.fb.control(this.unitOperation.fluidAnalysisId));\r\n\r\n // General Tab\r\n this.propertyWindowFormGroup.addControl('name', this.fb.control(this.unitOperation.name));\r\n this.propertyWindowFormGroup.addControl(\r\n 'separateLightEndsProduct',\r\n this.fb.control(this.unitOperation.separateLightEndsProduct)\r\n );\r\n this.propertyWindowFormGroup.addControl('totalYield', this.svfb.control(this.unitOperation.totalYield));\r\n this.propertyWindowFormGroup.addControl(\r\n 'totalInletVolume',\r\n this.svfb.control(this.unitOperation.totalInletVolume, true)\r\n );\r\n this.propertyWindowFormGroup.addControl('butaneRecovery', this.svfb.control(this.unitOperation.butaneRecovery));\r\n this.propertyWindowFormGroup.addControl('ghgIntensity', this.svfb.control(this.unitOperation.ghgIntensity));\r\n this.propertyWindowFormGroup.addControl('ghgEmissions', this.svfb.control(this.unitOperation.ghgEmissions, true));\r\n\r\n // economics Tab\r\n\r\n this.propertyWindowFormGroup.addControl('opexFixed', this.svfb.control(this.unitOperation.opexFixed));\r\n this.propertyWindowFormGroup.addControl('opexVar', this.svfb.control(this.unitOperation.opexVar));\r\n this.propertyWindowFormGroup.addControl(\r\n 'opexCarbonDioxide',\r\n this.svfb.control(this.unitOperation.opexCarbonDioxide, true)\r\n );\r\n this.propertyWindowFormGroup.addControl('opexTotal', this.svfb.control(this.unitOperation.opexTotal, true));\r\n this.propertyWindowFormGroup.addControl('capexAmortized', this.svfb.control(this.unitOperation.capexAmortized));\r\n this.propertyWindowFormGroup.addControl('capexTotal', this.svfb.control(this.unitOperation.capexTotal, true));\r\n\r\n // constraints Tab\r\n this.propertyWindowFormGroup.addControl('constraintOption', this.fb.control(this.unitOperation.constraintOption));\r\n this.propertyWindowFormGroup.addControl('feedSlateDisabled', this.fb.control(this.unitOperation.feedSlateDisabled));\r\n this.propertyWindowFormGroup.addControl('blendRecipeOption', this.fb.control(this.unitOperation.blendRecipeOption));\r\n this.propertyWindowFormGroup.addControl(\r\n 'capacity',\r\n this.svfb.control(this.unitOperation.capacity, false, false, true)\r\n );\r\n this.propertyWindowFormGroup.addControl(\r\n 'minimumFlow',\r\n this.svfb.control(this.unitOperation.minimumFlow, false, false, true)\r\n );\r\n this.propertyWindowFormGroup.addControl(\r\n 'maximumSulfurContent',\r\n this.svfb.control(this.unitOperation.maximumSulfurContent, false, false, true)\r\n );\r\n this.propertyWindowFormGroup.addControl(\r\n 'maximumNitrogen',\r\n this.svfb.control(this.unitOperation.maximumNitrogen, false, false, true)\r\n );\r\n this.disableFeedSlateCheckBox();\r\n\r\n // utility Tab\r\n this.propertyWindowFormGroup.addControl('hydrogenUse', this.svfb.control(this.unitOperation.hydrogenUse, true));\r\n this.propertyWindowFormGroup.addControl(\r\n 'h2sProductionRate',\r\n this.svfb.control(this.unitOperation.h2sProductionRate)\r\n );\r\n this.propertyWindowFormGroup.addControl('h2sProduction', this.svfb.control(this.unitOperation.h2sProduction, true));\r\n this.propertyWindowFormGroup.addControl('powerUseRate', this.svfb.control(this.unitOperation.powerUseRate));\r\n this.isSimpleUtility\r\n ? this.formGroupWrapper.getFormGroup().get('powerUseRate').disable()\r\n : this.formGroupWrapper.getFormGroup().get('powerUseRate').enable();\r\n this.propertyWindowFormGroup.addControl(\r\n 'naturalGasUseRate',\r\n this.svfb.control(this.unitOperation.naturalGasUseRate)\r\n );\r\n }\r\n\r\n addRatioVariableControls() {\r\n this.propertyWindowFormGroup.addControl(\r\n 'hydrogenUseRateVariables',\r\n this.fb.array(this.getHydrogenUseRateControls())\r\n );\r\n }\r\n\r\n changeLightEndsProduct() {\r\n if (this.lightEndsProduct) {\r\n this.flowsheetDiagramService.changeTemplate(\r\n this.unitOperation.id,\r\n unitOperationsConfig.separatedHydrotreater.key\r\n );\r\n } else {\r\n this.flowsheetDiagramService.changeTemplate(this.unitOperation.id, unitOperationsConfig.hydrotreater.key);\r\n }\r\n this.flowsheetDiagramService.deleteOutletStreams(this.unitOperation.id);\r\n }\r\n\r\n disableFeedSlateCheckBox() {\r\n if (this.constraintOption === 'properties' || this.feedSlateDisabled.value) {\r\n this.feedSlateDisabled.disable();\r\n this.blendRecipeOption.disable();\r\n } else if (this.constraintOption === 'blendRatio') {\r\n this.feedSlateDisabled.enable();\r\n this.blendRecipeOption.enable();\r\n }\r\n }\r\n\r\n feedSlateCheckBoxChange() {\r\n this.feedSlateDisabled.value || this.constraintOption === 'properties'\r\n ? this.blendRecipeOption.disable()\r\n : this.blendRecipeOption.enable();\r\n }\r\n\r\n updateRecipeOption() {\r\n this.unitOperation.blendRecipeOption = this.blendRecipeOption.value;\r\n }\r\n\r\n findDistributionRatioName(index: number): string {\r\n if (this.unitOperation) {\r\n return this.unitOperation.findDistributionRatioVariableName(index);\r\n }\r\n\r\n return '';\r\n }\r\n\r\n private getHydrogenUseRateControls() {\r\n return this.unitOperation.hydrogenUseRateVariables.map(dv => {\r\n return new FormGroup({\r\n value: new FormControl<number | undefined>(dv.value, [Validators.required]),\r\n });\r\n });\r\n }\r\n\r\n disableBlendProperties() {}\r\n\r\n get fluidAnalyses() {\r\n return this.coreService.currentCase.assayManager.getAssaysByCategory('Product');\r\n }\r\n\r\n get propertyWindowFormGroup() {\r\n return this.formGroupWrapper.getFormGroup();\r\n }\r\n\r\n get constraintOption() {\r\n return this.formGroupWrapper.getFormGroup().get('constraintOption').value;\r\n }\r\n\r\n get feedSlateDisabled() {\r\n return this.formGroupWrapper.getFormGroup().get('feedSlateDisabled');\r\n }\r\n\r\n get blendRecipeOption() {\r\n return this.formGroupWrapper.getFormGroup().get('blendRecipeOption');\r\n }\r\n\r\n get lightEndsProduct() {\r\n return this.formGroupWrapper.getFormGroup().get('separateLightEndsProduct').value;\r\n }\r\n\r\n get hydrogenUseRateVariablesFormArray() {\r\n return this.propertyWindowFormGroup.get('hydrogenUseRateVariables') as UntypedFormArray;\r\n }\r\n\r\n get isSimpleUtility() {\r\n return this.unitOperation.modelType === BitumenModelTypes.SIMPLE;\r\n }\r\n}\r\n","import { Completion } from '@codemirror/autocomplete';\r\n\r\nexport const dcuCodeCompletions: Completion[] = [\r\n { label: 'GasYield', type: 'variable', info: '' },\r\n { label: 'LightNaphtaYield', type: 'variable', info: '' },\r\n { label: 'HeavyNaphtaYield', type: 'variable', info: '' },\r\n { label: 'DistillateYield', type: 'variable', info: '' },\r\n { label: 'GasOilYield', type: 'variable', info: '' },\r\n { label: 'CokeYield', type: 'variable', info: '' },\r\n { label: 'LightNaphtaAPI', type: 'variable', info: '' },\r\n { label: 'HeavyNaphtaAPI', type: 'variable', info: '' },\r\n { label: 'DistillateAPI', type: 'variable', info: '' },\r\n { label: 'GasOilAPI', type: 'variable', info: '' },\r\n { label: 'LightNaphtaSulfur', type: 'variable', info: '' },\r\n { label: 'HeavyNaphtaSulfur', type: 'variable', info: '' },\r\n { label: 'DistillateSulfur', type: 'variable', info: '' },\r\n { label: 'GasOilSulfur', type: 'variable', info: '' },\r\n { label: 'LightNaphtaNitrogen', type: 'variable', info: '' },\r\n { label: 'HeavyNaphtaNitrogen', type: 'variable', info: '' },\r\n { label: 'DistillateNitrogen', type: 'variable', info: '' },\r\n { label: 'GasOilNitrogen', type: 'variable', info: '' },\r\n];\r\n","import { Completion } from '@codemirror/autocomplete';\r\nimport { DefaultCodeProvider } from './default-code-provider';\r\nimport { defaultDCUModel } from '../../_config/unit-operations/default-models/default-dcu-model';\r\nimport { dcuCodeCompletions } from '../../_config/unit-operations/custom-code-completions/dcu-code-completions';\r\n\r\nexport class DcuCodeProvider extends DefaultCodeProvider {\r\n constructor() {\r\n super(defaultDCUModel);\r\n }\r\n\r\n override getCodeCompletions(): Completion[] {\r\n return super.getCodeCompletions().concat(dcuCodeCompletions);\r\n }\r\n}\r\n","import { Component, Input } from '@angular/core';\r\nimport { DCU } from '../../../_models/_unit-operations/dcu';\r\nimport { DefaultCodeProvider } from '../../../_services/custom-code-providers/default-code-provider';\r\n// @ts-ignore\r\nimport { defaultDCUModel } from '../../../_config/unit-operations/default-models/default-dcu-model';\r\nimport { FlowsheetService } from '../../../_services/flowsheet.service';\r\nimport { DcuCodeProvider } from '../../../_services/custom-code-providers/dcu-code-provider';\r\n\r\n@Component({\r\n selector: 'sob-dcu',\r\n templateUrl: './dcu.component.html',\r\n styleUrls: ['./dcu.component.css'],\r\n})\r\nexport class DCUComponent {\r\n @Input()\r\n unitOperation: DCU;\r\n\r\n defaultCodeProvider: DcuCodeProvider;\r\n constructor(private flowsheetService: FlowsheetService) {\r\n this.defaultCodeProvider = new DcuCodeProvider();\r\n }\r\n\r\n saveCustomModel(res) {\r\n if (res.instanceId === 'dcuCodeEditor') {\r\n this.unitOperation.modelScript = res.code;\r\n this.flowsheetService.saveCustomCodeChanges();\r\n }\r\n }\r\n}\r\n","<ul class=\"nav nav-tabs\" role=\"tablist\" style=\"margin-right: 15px\">\r\n <li role=\"presentation\" class=\"active\">\r\n <a href=\"#blockSpecifications\" aria-controls=\"blockSpecifications\" role=\"tab\" data-toggle=\"tab\">General</a>\r\n </li>\r\n <li role=\"presentation\">\r\n <a href=\"#utilities\" aria-controls=\"utilities\" role=\"tab\" data-toggle=\"tab\">Utilities</a>\r\n </li>\r\n <li role=\"presentation\">\r\n <a href=\"#economics\" aria-controls=\"economics\" role=\"tab\" data-toggle=\"tab\">Economics</a>\r\n </li>\r\n <li role=\"presentation\">\r\n <a href=\"#constraints\" aria-controls=\"constraints\" role=\"tab\" data-toggle=\"tab\"> Constraints </a>\r\n </li>\r\n <li role=\"presentation\">\r\n <a href=\"#upgCustomModels\" aria-controls=\"upgCustomModels\" role=\"tab\" data-toggle=\"tab\"> Custom Models </a>\r\n </li>\r\n\r\n <li role=\"presentation\">\r\n <a href=\"#dcuComments\" aria-controls=\"dcuComments\" role=\"tab\" data-toggle=\"tab\">\r\n <i class=\"fa fa-comments fa-lg\" aria-hidden=\"true\"> </i>\r\n Comments\r\n </a>\r\n </li>\r\n</ul>\r\n\r\n<div class=\"tab-content pw-margin tab-content-padding\">\r\n <div role=\"tabpanel\" class=\"tab-pane fade in active\" id=\"blockSpecifications\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <div class=\"form-horizontal\">\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'sweetProductRatio'\" class=\"pw-label control-label col-sm-4\"> Volumetric Yield </label>\r\n <sim-var-input [inputId]=\"'volumetricYield'\" [simVar]=\"unitOperation.volumetricYield\" [readOnly]=\"true\">\r\n </sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'producedCoke'\" class=\"pw-label control-label col-sm-4\"> Produced Coke </label>\r\n <sim-var-input [inputId]=\"'producedCoke'\" [simVar]=\"unitOperation.producedCoke\" [readOnly]=\"true\">\r\n </sim-var-input>\r\n </div>\r\n\r\n <hr />\r\n <h4 class=\"subtitle\">GHG</h4>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'ghgIntensity'\" class=\"pw-label control-label col-sm-4\"> GHG Intensity </label>\r\n <sim-var-input [inputId]=\"'ghgIntensity'\" [simVar]=\"unitOperation.ghgIntensity\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'percentCokeToCombustion'\" class=\"pw-label control-label col-sm-4\">\r\n Coke to Combustion\r\n </label>\r\n <sim-var-input [inputId]=\"'percentCokeToCombustion'\" [simVar]=\"unitOperation.percentCokeToCombustion\">\r\n </sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'cokeEmissionFactor'\" class=\"pw-label control-label col-sm-4\">\r\n Coke Emission Factor\r\n </label>\r\n <sim-var-input [inputId]=\"'cokeEmissionFactor'\" [simVar]=\"unitOperation.cokeEmissionFactor\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'ghgEmissions'\" class=\"pw-label control-label col-sm-4\"> GHG Emissions </label>\r\n <sim-var-input [inputId]=\"'ghgEmissions'\" [simVar]=\"unitOperation.ghgEmissions\" [readOnly]=\"true\">\r\n </sim-var-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"utilities\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <div class=\"form-horizontal\">\r\n <h4 class=\"subtitle\">Amine</h4>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'h2sProductionRate'\" class=\"pw-label control-label col-sm-4\"> H2S Production Rate </label>\r\n <sim-var-input [inputId]=\"'h2sProductionRate'\" [simVar]=\"unitOperation.h2sProductionRate\"></sim-var-input>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'h2sProduction'\" class=\"pw-label control-label col-sm-4\"> H2S Production </label>\r\n <sim-var-input [inputId]=\"'h2sProduction'\" [readOnly]=\"true\" [simVar]=\"unitOperation.h2sProduction\">\r\n </sim-var-input>\r\n </div>\r\n <sob-steam-use-utility [unitOperation]=\"unitOperation\"></sob-steam-use-utility>\r\n <sob-gas-contributor [unitOperation]=\"unitOperation\"></sob-gas-contributor>\r\n </div>\r\n </div>\r\n </div>\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"economics\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <div class=\"form-horizontal\">\r\n <h4 class=\"subtitle\">OPEX</h4>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'opexVar'\" class=\"pw-label control-label col-sm-4\"> Variable </label>\r\n <sim-var-input [inputId]=\"'opexVar'\" [simVar]=\"unitOperation.opexVar\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'opexGasDiesel'\" class=\"pw-label control-label col-sm-4\"> Gas Diesel </label>\r\n <sim-var-input [inputId]=\"'opexGasDiesel'\" [simVar]=\"unitOperation.opexGasDiesel\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'opexPower'\" class=\"pw-label control-label col-sm-4\"> Power </label>\r\n <sim-var-input [inputId]=\"'opexPower'\" [simVar]=\"unitOperation.opexPower\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'opexCarbonDioxide'\" class=\"pw-label control-label col-sm-4\"> CO2 </label>\r\n <sim-var-input [inputId]=\"'opexCarbonDioxide'\" [simVar]=\"unitOperation.opexCarbonDioxide\" [readOnly]=\"true\">\r\n </sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'opexFixed'\" class=\"pw-label control-label col-sm-4\"> Fixed </label>\r\n <sim-var-input [inputId]=\"'opexFixed'\" [simVar]=\"unitOperation.opexFixed\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'opexTotal'\" class=\"pw-label control-label col-sm-4\"> Total </label>\r\n <sim-var-input [inputId]=\"'opexTotal'\" [simVar]=\"unitOperation.opexTotal\" [readOnly]=\"true\"></sim-var-input>\r\n </div>\r\n\r\n <hr />\r\n <h4 class=\"subtitle\">CAPEX</h4>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'capexAmortized'\" class=\"pw-label control-label col-sm-4\"> Amortized CAPEX </label>\r\n <sim-var-input [inputId]=\"'capexAmortized'\" [simVar]=\"unitOperation.capexAmortized\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'capexTotal'\" class=\"pw-label control-label col-sm-4\"> Total </label>\r\n <sim-var-input [inputId]=\"'capexTotal'\" [simVar]=\"unitOperation.capexTotal\" [readOnly]=\"true\"></sim-var-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"constraints\">\r\n <p style=\"text-align: right; position: relative\">\r\n <span style=\"position: absolute; right: -25px; top: -20px; font-weight: bold\">Active</span>\r\n </p>\r\n <div class=\"form-horizontal\">\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'capacity'\" class=\"pw-label control-label col-sm-4\"> Maximum Feed Capacity </label>\r\n <sim-var-input [inputId]=\"'capacity'\" [isConstraint]=\"true\" [simVar]=\"unitOperation.capacity\"> </sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'minimumFlow'\" class=\"pw-label control-label col-sm-4\"> Minimum Flow </label>\r\n <sim-var-input [inputId]=\"'minimumFlow'\" [isConstraint]=\"true\" [simVar]=\"unitOperation.minimumFlow\">\r\n </sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'minimumAPI'\" class=\"pw-label control-label col-sm-4\"> Minimum API </label>\r\n <sim-var-input [inputId]=\"'minimumAPI'\" [isConstraint]=\"true\" [simVar]=\"unitOperation.minimumAPI\">\r\n </sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'maximumCCR'\" class=\"pw-label control-label col-sm-4\"> Maximum CCR </label>\r\n <sim-var-input [inputId]=\"'maximumCCR'\" [isConstraint]=\"true\" [simVar]=\"unitOperation.maximumCCR\">\r\n </sim-var-input>\r\n </div>\r\n </div>\r\n </div>\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"upgCustomModels\">\r\n <div class=\"form-group\">\r\n <label for=\"customModelEnabled\" class=\"control-label col-sm-4\"> Enable Custom Models </label>\r\n <div class=\"col-sm-4\">\r\n <label class=\"control-label\">\r\n <input type=\"checkbox\" id=\"customModelEnabled\" [(ngModel)]=\"unitOperation.useCustomModel\" />\r\n </label>\r\n </div>\r\n\r\n <div class=\"clearfix\"></div>\r\n </div>\r\n\r\n <div>\r\n <sob-open-code-editor-button\r\n [code]=\"unitOperation.modelScript\"\r\n [defaultCodeProvider]=\"defaultCodeProvider\"\r\n [instanceId]=\"'dcuCodeEditor'\"\r\n [disabled]=\"!unitOperation.useCustomModel\"\r\n (codeSaved)=\"saveCustomModel($event)\">\r\n </sob-open-code-editor-button>\r\n </div>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"dcuComments\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <sob-unit-operation-comments [unitOpId]=\"this.unitOperation.id\"></sob-unit-operation-comments>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, Input, ViewChild } from '@angular/core';\r\nimport { UntypedFormBuilder } from '@angular/forms';\r\nimport { Subscription } from 'rxjs';\r\nimport { CommodityTank } from '../../../_models/_unit-operations/commodity-tank';\r\nimport { FlowsheetService } from '../../../_services/flowsheet.service';\r\nimport { RangeDistributionRatioVariableComponent } from '../../shared/range-distriburion-ratio-variable/range-distribution-ratio-variable.component';\r\nimport { CommodityTankConstraintOption } from '../../../_config/unit-operations/commodity-tank-enums';\r\n\r\n@Component({\r\n selector: 'sob-commodity-tank',\r\n templateUrl: './commodity-tank.component.html',\r\n styleUrls: ['./commodity-tank.component.css'],\r\n})\r\nexport class CommodityTankComponent {\r\n protected CommodityTankConstraintOption = CommodityTankConstraintOption;\r\n\r\n @Input() unitOperation: CommodityTank;\r\n\r\n @ViewChild(RangeDistributionRatioVariableComponent) distribution: RangeDistributionRatioVariableComponent;\r\n saveSubscription: Subscription;\r\n\r\n constructor(private fb: UntypedFormBuilder, private flowsheetService: FlowsheetService) {\r\n this.saveSubscription = this.flowsheetService.prepareUnitOperationForSaveRequest.subscribe(() => {\r\n this.save();\r\n this.saveSubscription.unsubscribe();\r\n });\r\n }\r\n\r\n save() {\r\n this.distribution.rows.controls.forEach((control, i) => {\r\n this.unitOperation.distributionRatioVariables[i].value = control.get('value').value;\r\n this.unitOperation.distributionRatioVariables[i].minimumValue = control.get('minimumValue').value;\r\n this.unitOperation.distributionRatioVariables[i].maximumValue = control.get('maximumValue').value;\r\n });\r\n }\r\n\r\n disableBlendProperties() {\r\n if (this.unitOperation.isBlendRatioConstraintSelected()) {\r\n this.unitOperation.maxSulfur.isActive = false;\r\n this.unitOperation.maxNitrogen.isActive = false;\r\n this.unitOperation.maxDensity.isActive = false;\r\n }\r\n }\r\n}\r\n","<ul class=\"nav nav-tabs\" role=\"tablist\" style=\"margin-right: 15px\">\r\n <li role=\"presentation\" class=\"active\">\r\n <a href=\"#blockSpecifications\" aria-controls=\"blockSpecifications\" role=\"tab\" data-toggle=\"tab\">General</a>\r\n </li>\r\n <li role=\"presentation\">\r\n <a href=\"#constraints\" aria-controls=\"constraints\" role=\"tab\" data-toggle=\"tab\"> Constraints </a>\r\n </li>\r\n\r\n <li role=\"presentation\">\r\n <a href=\"#commodityTankComments\" aria-controls=\"commodityTankComments\" role=\"tab\" data-toggle=\"tab\">\r\n <i class=\"fa fa-comments fa-lg\" aria-hidden=\"true\"> </i>\r\n Comments\r\n </a>\r\n </li>\r\n</ul>\r\n\r\n<div class=\"tab-content pw-margin tab-content-padding\">\r\n <div role=\"tabpanel\" class=\"tab-pane fade in active\" id=\"blockSpecifications\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <div class=\"form-horizontal\">\r\n <div class=\"form-group\">\r\n <label for=\"estimateProductValue\" class=\"control-label col-sm-4\"> Estimate Product Value </label>\r\n\r\n <div class=\"col-sm-4\">\r\n <label for=\"\" class=\"control-label\">\r\n <input type=\"checkbox\" id=\"estimateProductValue\" [(ngModel)]=\"unitOperation.estimateProductValue\" />\r\n </label>\r\n </div>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'productPrice'\" class=\"pw-label control-label col-sm-4\"> Product Price </label>\r\n <sim-var-input\r\n [inputId]=\"'productPrice'\"\r\n [readOnly]=\"unitOperation.estimateProductValue\"\r\n [simVar]=\"unitOperation.productPrice\">\r\n </sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'commodityVolume'\" class=\"pw-label control-label col-sm-4\"> Commodity Volume </label>\r\n <sim-var-input [inputId]=\"'commodityVolume'\" [readOnly]=\"true\" [simVar]=\"unitOperation.commodityVolume\">\r\n </sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'commoditySulfur'\" class=\"pw-label control-label col-sm-4\"> Commodity Sulfur </label>\r\n <sim-var-input [inputId]=\"'commoditySulfur'\" [readOnly]=\"true\" [simVar]=\"unitOperation.commoditySulfur\">\r\n </sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'commodityNitrogen'\" class=\"pw-label control-label col-sm-4\"> Commodity Nitrogen </label>\r\n <sim-var-input [inputId]=\"'commodityNitrogen'\" [readOnly]=\"true\" [simVar]=\"unitOperation.commodityNitrogen\">\r\n </sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'commodityDensity'\" class=\"pw-label control-label col-sm-4\"> Commodity Density </label>\r\n <sim-var-input [inputId]=\"'commodityDensity'\" [readOnly]=\"true\" [simVar]=\"unitOperation.commodityDensity\">\r\n </sim-var-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"constraints\">\r\n <div class=\"form-horizontal\">\r\n <div class=\"form-group\">\r\n <label for=\"constraintOption\" class=\"pw-label control-label col-sm-4\"> Constraint Option </label>\r\n <div class=\"col-sm-6\">\r\n <select\r\n id=\"constraintOption\"\r\n (change)=\"disableBlendProperties()\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"unitOperation.constraintOption\">\r\n <option value=\"{{ CommodityTankConstraintOption.BLEND_RATIO }}\">Blend Ratio</option>\r\n <option value=\"{{ CommodityTankConstraintOption.PROPERTIES }}\">Properties</option>\r\n </select>\r\n </div>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'Feedslate'\" class=\"pw-label control-label col-sm-4 subtitle-v2\"> Feedslate </label>\r\n </div>\r\n <div class=\"form-group\">\r\n <label for=\"isOptimizable\" class=\"control-label col-sm-4\"> Float Tank </label>\r\n\r\n <div class=\"col-sm-4\">\r\n <label for=\"\" class=\"control-label\">\r\n <input\r\n type=\"checkbox\"\r\n id=\"isOptimizable\"\r\n [disabled]=\"unitOperation.constraintOption === CommodityTankConstraintOption.PROPERTIES\"\r\n [(ngModel)]=\"unitOperation.floatTank\" />\r\n </label>\r\n </div>\r\n </div>\r\n <div class=\"form-group\">\r\n <label for=\"typeDD\" class=\"pw-label control-label col-sm-4\"> Blend Recipe Option </label>\r\n <div class=\"col-sm-6\">\r\n <select\r\n [disabled]=\"\r\n unitOperation.floatTank || unitOperation.constraintOption === CommodityTankConstraintOption.PROPERTIES\r\n \"\r\n id=\"typeDD\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"unitOperation.blendRecipeOption\">\r\n <option value=\"exact\">Exact</option>\r\n <option value=\"range\">Range</option>\r\n </select>\r\n </div>\r\n </div>\r\n <sob-range-distribution-ratio-variable\r\n [blendRecipeOption]=\"unitOperation.blendRecipeOption\"\r\n [readonly]=\"\r\n unitOperation.floatTank || unitOperation.constraintOption === CommodityTankConstraintOption.PROPERTIES\r\n \"\r\n [ratioVariables]=\"unitOperation.distributionRatioVariables\">\r\n </sob-range-distribution-ratio-variable>\r\n <div class=\"form-group\">\r\n <hr style=\"padding-top: 20px\" />\r\n <label class=\"pw-label control-label col-sm-4 subtitle-v2\"> Constraints </label>\r\n </div>\r\n </div>\r\n <p style=\"text-align: right; position: relative\">\r\n <span style=\"position: absolute; right: -25px; top: -20px; font-weight: bold\">Active</span>\r\n </p>\r\n <div class=\"form-horizontal\">\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'minimumFlow'\" class=\"pw-label control-label col-sm-4\"> Minimum Demand </label>\r\n <sim-var-input [inputId]=\"'minimumFlow'\" [isConstraint]=\"true\" [simVar]=\"unitOperation.minimumFlow\">\r\n </sim-var-input>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'capacity'\" class=\"pw-label control-label col-sm-4\"> Maximum Demand </label>\r\n <sim-var-input [inputId]=\"'capacity'\" [isConstraint]=\"true\" [simVar]=\"unitOperation.capacity\"> </sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'maxSulfur'\" class=\"pw-label control-label col-sm-4\"> Minimum API </label>\r\n <sim-var-input\r\n [inputId]=\"'maxDensity'\"\r\n [isConstraint]=\"true\"\r\n [disabledConstraint]=\"unitOperation.constraintOption === CommodityTankConstraintOption.BLEND_RATIO\"\r\n [simVar]=\"unitOperation.maxDensity\">\r\n </sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'maxSulfur'\" class=\"pw-label control-label col-sm-4\"> Maximum Sulfur </label>\r\n <sim-var-input\r\n [inputId]=\"'maxSulfur'\"\r\n [isConstraint]=\"true\"\r\n [disabledConstraint]=\"unitOperation.constraintOption === CommodityTankConstraintOption.BLEND_RATIO\"\r\n [simVar]=\"unitOperation.maxSulfur\">\r\n </sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'maxNitrogen'\" class=\"pw-label control-label col-sm-4\"> Maximum Nitrogen </label>\r\n <sim-var-input\r\n [inputId]=\"'maxNitrogen'\"\r\n [isConstraint]=\"true\"\r\n [disabledConstraint]=\"unitOperation.constraintOption === CommodityTankConstraintOption.BLEND_RATIO\"\r\n [simVar]=\"unitOperation.maxNitrogen\">\r\n </sim-var-input>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"commodityTankComments\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <sob-unit-operation-comments [unitOpId]=\"this.unitOperation.id\"></sob-unit-operation-comments>\r\n </div>\r\n </div>\r\n</div>\r\n","<ul class=\"nav nav-tabs\" role=\"tablist\" style=\"margin-right: 15px\">\r\n <li role=\"presentation\" class=\"active\">\r\n <a href=\"#blockSpecifications\" aria-controls=\"blockSpecifications\" role=\"tab\" data-toggle=\"tab\">\r\n Distribution Ratio\r\n </a>\r\n </li>\r\n\r\n <li role=\"presentation\">\r\n <a href=\"#productTankComments\" aria-controls=\"productTankComments\" role=\"tab\" data-toggle=\"tab\">\r\n <i class=\"fa fa-comments fa-lg\" aria-hidden=\"true\"> </i>\r\n Comments\r\n </a>\r\n </li>\r\n</ul>\r\n\r\n<div class=\"tab-content pw-margin tab-content-padding\" [formGroup]=\"propertyWindowFormGroup\">\r\n <div role=\"tabpanel\" class=\"tab-pane fade in active\" id=\"blockSpecifications\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <div class=\"form-horizontal\">\r\n <div class=\"form-group\">\r\n <label for=\"productType\" class=\"pw-label control-label col-sm-4\"> Product Type </label>\r\n <div class=\"col-sm-4\" id=\"productType\">\r\n <select class=\"form-control\" formControlName=\"productType\">\r\n <option value=\"\" disabled>Select</option>\r\n <option value=\"productButane\">Product Butane</option>\r\n <option value=\"productNaphtha\">Product Naphtha</option>\r\n <option value=\"productKero\">Product Kero</option>\r\n <option value=\"productGasOil\">Product Gas Oil</option>\r\n <option value=\"virginKero\">Virgin Kero</option>\r\n <option value=\"virginGasOil\">Virgin Gas Oil</option>\r\n <option value=\"cokerNaphtha\">Coker Naphtha</option>\r\n <option value=\"cokerKero\">Coker Kero</option>\r\n <option value=\"cokerGasOil\">Coker Gas Oil</option>\r\n </select>\r\n </div>\r\n </div>\r\n\r\n <ng-container>\r\n <div class=\"form-group\" formGroupName=\"productVolume\">\r\n <label class=\"control-label col-sm-4\"> Producte Volume </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.productVolume.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.productVolume\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"inventory\">\r\n <label class=\"control-label col-sm-4\"> Inventory </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.inventory.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input formControlName=\"value\" [valueMetaData]=\"unitOperation.inventory\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <div class=\"form-group\">\r\n <label for=\"isOptimizable\" class=\"control-label col-sm-4\"> Optimize </label>\r\n\r\n <div class=\"col-sm-4\">\r\n <label for=\"\" class=\"control-label\">\r\n <input\r\n type=\"checkbox\"\r\n id=\"isOptimizable\"\r\n formControlName=\"isOptimizable\"\r\n (change)=\"isOptimizableChanged($event.target.checked)\" />\r\n </label>\r\n </div>\r\n </div>\r\n\r\n <div\r\n class=\"form-group\"\r\n formArrayName=\"distributionRatioVariables\"\r\n *ngFor=\"let dv of distributionRatioVariablesFormArray.controls; let i = index\">\r\n <label [attr.for]=\"'distributionRatio' + i\" class=\"pw-label control-label col-sm-4\">\r\n {{ findDistributionRatioName(i) }}\r\n </label>\r\n\r\n <div class=\"col-sm-8\" formGroupName=\"{{ i }}\">\r\n <input\r\n type=\"text\"\r\n class=\"form-control\"\r\n formControlName=\"value\"\r\n (change)=\"roundDistributionVariable(i)\"\r\n [readonly]=\"i === distributionRatioVariablesFormArray.controls.length - 1\" />\r\n <span\r\n class=\"text-danger\"\r\n *ngIf=\"\r\n distributionRatioVariablesFormArray.invalid &&\r\n (distributionRatioVariablesFormArray.controls[i].dirty ||\r\n distributionRatioVariablesFormArray.controls[i].touched)\r\n \">\r\n <span *ngIf=\"distributionRatioVariablesFormArray.controls[i].errors?.required\">Please enter a value</span>\r\n <span *ngIf=\"distributionRatioVariablesFormArray.controls[i].errors?.max\"\r\n >Distribution ratio cannot be greater than 1</span\r\n >\r\n <span *ngIf=\"distributionRatioVariablesFormArray.controls[i].errors?.min\"\r\n >Distribution ratio cannot be negative</span\r\n >\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"productTankComments\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <sob-unit-operation-comments [unitOpId]=\"this.unitOperation.id\"></sob-unit-operation-comments>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\r\nimport { UntypedFormArray, UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms';\r\nimport { SubSink } from 'subsink';\r\nimport { BaseObjectFormGroupWrapper } from '../../../_form-utils/base-object-form-group-wrapper';\r\nimport { ProductTank } from '../../../_models/product-tank';\r\nimport { CoreService } from '../../../_services/core.service';\r\nimport { DistributionRatioVariable } from '../../../_models/_unit-operations/distribution-ratio-variable';\r\nimport { hasNumericValue, roundNumber } from '../../../_utils/utils';\r\nimport { SimVarFormBuilder } from '../../../_form-utils/sim-var-form-builder';\r\n\r\ndeclare let unitConverter: any;\r\n\r\n@Component({\r\n selector: 'sob-product-tank',\r\n templateUrl: './product-tank.component.html',\r\n styleUrls: ['./product-tank.component.css'],\r\n})\r\nexport class ProductTankComponent implements OnInit, OnDestroy {\r\n @Input() formGroupWrapper: BaseObjectFormGroupWrapper;\r\n @Input() unitOperation: ProductTank;\r\n multiperiodEnabled: boolean;\r\n\r\n private subSink = new SubSink();\r\n\r\n constructor(private fb: UntypedFormBuilder, private coreService: CoreService, private svfb: SimVarFormBuilder) {\r\n this.subSink.add(\r\n this.coreService.streamRemovedRequest.subscribe(s => {\r\n if (s.inletUnitOperationId === this.unitOperation.id) {\r\n this.removeDistributionRatioVariable(s.outletUnitOperationId);\r\n }\r\n })\r\n );\r\n\r\n this.subSink.add(\r\n this.coreService.streamAddedRequest.subscribe(s => {\r\n if (s.inletUnitOperationId === this.unitOperation.id) {\r\n this.addDistributionRatioVariable(s.outletUnitOperationId);\r\n }\r\n })\r\n );\r\n }\r\n\r\n // eslint-disable-next-line @angular-eslint/no-empty-lifecycle-method\r\n ngOnInit(): void {\r\n this.multiperiodEnabled = this.coreService.currentCase.multiPeriodEnabled;\r\n this.addControls();\r\n this.formGroupWrapper.storeOriginalValue();\r\n this.calculateDistributionRatioVaririables();\r\n }\r\n\r\n addControls() {\r\n this.propertyWindowFormGroup.addControl('name', this.fb.control(this.unitOperation.name));\r\n this.propertyWindowFormGroup.addControl('isOptimizable', this.fb.control(this.unitOperation.isOptimizable));\r\n this.propertyWindowFormGroup.addControl('productVolume', this.svfb.control(this.unitOperation.productVolume, true));\r\n this.propertyWindowFormGroup.addControl(\r\n 'inventory',\r\n this.svfb.control(this.unitOperation.inventory, !this.multiperiodEnabled)\r\n );\r\n this.propertyWindowFormGroup.addControl('productType', this.fb.control(this.unitOperation.productType));\r\n this.propertyWindowFormGroup.addControl(\r\n 'distributionRatioVariables',\r\n this.fb.array(this.createDistributionRatioVariablesControls())\r\n );\r\n\r\n if (this.isOptimizable) {\r\n this.distributionRatioVariablesFormArray.disable();\r\n } else {\r\n this.distributionRatioVariablesFormArray.enable();\r\n }\r\n }\r\n\r\n private createDistributionRatioVariablesControls(): UntypedFormGroup[] {\r\n return this.unitOperation.distributionRatioVariables.map(dv => {\r\n return this.createSingleDistributionRatioVariableControl(dv);\r\n });\r\n }\r\n\r\n protected createSingleDistributionRatioVariableControl(dv: DistributionRatioVariable) {\r\n const roundedValue = hasNumericValue(dv.value) ? roundNumber(+dv.value, 3) : undefined;\r\n\r\n const valueControl = this.fb.control(roundedValue, [Validators.required, Validators.max(1), Validators.min(0)]);\r\n\r\n return this.fb.group({\r\n value: valueControl,\r\n });\r\n }\r\n\r\n calculateDistributionRatioVaririables() {\r\n this.distributionRatioVariablesFormArray.valueChanges.forEach(() => {\r\n this.calculateLastDistributionVariable();\r\n });\r\n\r\n // eslint-disable-next-line guard-for-in\r\n for (const i in this.distributionRatioVariablesFormArray.controls) {\r\n this.roundDistributionVariable(+i);\r\n }\r\n }\r\n\r\n get propertyWindowFormGroup() {\r\n return this.formGroupWrapper.getFormGroup();\r\n }\r\n\r\n isOptimizableChanged(checked: boolean) {\r\n if (checked) {\r\n this.distributionRatioVariablesFormArray.disable();\r\n } else {\r\n this.distributionRatioVariablesFormArray.enable();\r\n }\r\n }\r\n\r\n get distributionRatioVariablesFormArray() {\r\n return this.propertyWindowFormGroup.get('distributionRatioVariables') as UntypedFormArray;\r\n }\r\n\r\n get isOptimizable() {\r\n return this.propertyWindowFormGroup.get('isOptimizable').value;\r\n }\r\n\r\n findDistributionRatioName(index: number): string {\r\n if (this.unitOperation) {\r\n return this.unitOperation.findDistributionRatioVariableName(index);\r\n }\r\n return '';\r\n }\r\n\r\n calculateLastDistributionVariable() {\r\n const { controls } = this.distributionRatioVariablesFormArray;\r\n if (controls.length <= 1) {\r\n return;\r\n }\r\n\r\n let total = 0;\r\n\r\n for (let i = 0; i < controls.length - 1; i++) {\r\n const dv = controls[i];\r\n const dvParsed = unitConverter.parseFloatString(dv.get('value').value);\r\n\r\n if (!Number.isNaN(dvParsed)) {\r\n total += dvParsed;\r\n } else {\r\n return;\r\n }\r\n }\r\n\r\n controls[controls.length - 1].get('value').setValue(parseFloat((1 - total).toFixed(5)), {\r\n emitEvent: false,\r\n emitModelToViewChange: true,\r\n emitViewToModelChange: true,\r\n });\r\n controls[controls.length - 1].get('value').markAsDirty();\r\n }\r\n\r\n roundDistributionVariable(i: number) {\r\n const dv = this.distributionRatioVariablesFormArray.controls[i];\r\n const dvParsed = unitConverter.parseFloatString(dv.value);\r\n\r\n if (!Number.isNaN(dvParsed)) {\r\n dv.setValue(parseFloat(dvParsed.toFixed(3)));\r\n }\r\n }\r\n\r\n private removeDistributionRatioVariable(unitOperationId: string) {\r\n const variable = this.unitOperation.findDistributionRatioVariable(unitOperationId);\r\n const index = this.unitOperation.distributionRatioVariables.indexOf(variable);\r\n if (index === -1) {\r\n return;\r\n }\r\n\r\n this.distributionRatioVariablesFormArray.removeAt(index);\r\n this.unitOperation.removeDistributionRatioVariable(unitOperationId);\r\n }\r\n\r\n private addDistributionRatioVariable(unitOperationId: string) {\r\n this.unitOperation.addDistributionVariable(unitOperationId);\r\n const dv = this.unitOperation.distributionRatioVariables[this.unitOperation.distributionRatioVariables.length - 1];\r\n const dvControl = this.createSingleDistributionRatioVariableControl(dv);\r\n if (this.propertyWindowFormGroup.get('isOptimizable').value) {\r\n dvControl.disable();\r\n }\r\n this.distributionRatioVariablesFormArray.push(dvControl);\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subSink.unsubscribe();\r\n }\r\n}\r\n","import { Completion } from '@codemirror/autocomplete';\r\n\r\nexport const hydrocrackerCodeCompletions: Completion[] = [\r\n { label: 'DiluentYield', type: 'variable', info: '' },\r\n { label: 'NaphtaYield', type: 'variable', info: '' },\r\n { label: 'LGOYield', type: 'variable', info: '' },\r\n { label: 'HGOYield', type: 'variable', info: '' },\r\n { label: 'ResidueYield', type: 'variable', info: '' },\r\n { label: 'NaphtaAPI', type: 'variable', info: '' },\r\n { label: 'LGOAPI', type: 'variable', info: '' },\r\n { label: 'HGOAPI', type: 'variable', info: '' },\r\n { label: 'ResidueAPI', type: 'variable', info: '' },\r\n { label: 'NaphtaSulfur', type: 'variable', info: '' },\r\n { label: 'LGOSulfur', type: 'variable', info: '' },\r\n { label: 'HGOSulfur', type: 'variable', info: '' },\r\n { label: 'ResidueSulfur', type: 'variable', info: '' },\r\n { label: 'NaphtaNitrogen', type: 'variable', info: '' },\r\n { label: 'LGONitrogen', type: 'variable', info: '' },\r\n { label: 'HGONitrogen', type: 'variable', info: '' },\r\n { label: 'ResidueNitrogen', type: 'variable', info: '' },\r\n];\r\n","import { Completion } from '@codemirror/autocomplete';\r\nimport { DefaultCodeProvider } from './default-code-provider';\r\nimport { DEFAULT_HYDROCRACKER_MODEL } from '../../_config/unit-operations/default-models/default-hydrocracker-model';\r\nimport { hydrocrackerCodeCompletions } from '../../_config/unit-operations/custom-code-completions/hydrocracker-code-completions';\r\n\r\nexport class HydrocrackerCodeProvider extends DefaultCodeProvider {\r\n constructor() {\r\n super(DEFAULT_HYDROCRACKER_MODEL);\r\n }\r\n\r\n override getCodeCompletions(): Completion[] {\r\n return super.getCodeCompletions().concat(hydrocrackerCodeCompletions);\r\n }\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { Hydrocracker } from '../../../_models/_unit-operations/hydrocracker';\r\nimport { FlowsheetService } from '../../../_services/flowsheet.service';\r\nimport { HydrocrackerCodeProvider } from '../../../_services/custom-code-providers/hydrocracker-code-provider';\r\n\r\n@Component({\r\n selector: 'sob-hydrocracker',\r\n templateUrl: './hydrocracker.component.html',\r\n styleUrls: ['./hydrocracker.component.css'],\r\n})\r\nexport class HydrocrackerComponent implements OnInit {\r\n @Input()\r\n unitOperation: Hydrocracker;\r\n\r\n defaultCodeProvider: HydrocrackerCodeProvider;\r\n\r\n constructor(private flowsheetService: FlowsheetService) {}\r\n\r\n ngOnInit() {\r\n this.defaultCodeProvider = new HydrocrackerCodeProvider();\r\n }\r\n\r\n saveCustomModel(res: any) {\r\n if (res.instanceId === 'hcCodeEditor') {\r\n this.unitOperation.modelScript = res.code;\r\n this.flowsheetService.saveCustomCodeChanges();\r\n }\r\n }\r\n}\r\n","<ul class=\"nav nav-tabs\" role=\"tablist\" style=\"margin-right: 15px\">\r\n <li role=\"presentation\" class=\"active\">\r\n <a href=\"#blockSpecifications\" aria-controls=\"blockSpecifications\" role=\"tab\" data-toggle=\"tab\">General</a>\r\n </li>\r\n <li role=\"presentation\">\r\n <a href=\"#utilities\" aria-controls=\"utilities\" role=\"tab\" data-toggle=\"tab\">Utilities</a>\r\n </li>\r\n <li role=\"presentation\">\r\n <a href=\"#economics\" aria-controls=\"economics\" role=\"tab\" data-toggle=\"tab\">Economics</a>\r\n </li>\r\n <li role=\"presentation\">\r\n <a href=\"#constraints\" aria-controls=\"constraints\" role=\"tab\" data-toggle=\"tab\"> Constraints </a>\r\n </li>\r\n <li role=\"presentation\">\r\n <a href=\"#upgCustomModels\" aria-controls=\"upgCustomModels\" role=\"tab\" data-toggle=\"tab\"> Custom Models </a>\r\n </li>\r\n\r\n <li role=\"presentation\">\r\n <a href=\"#hydrocrackerComments\" aria-controls=\"hydrocrackerComments\" role=\"tab\" data-toggle=\"tab\">\r\n <i class=\"fa fa-comments fa-lg\" aria-hidden=\"true\"> </i>\r\n Comments\r\n </a>\r\n </li>\r\n</ul>\r\n\r\n<div class=\"tab-content pw-margin tab-content-padding\">\r\n <div role=\"tabpanel\" class=\"tab-pane fade in active\" id=\"blockSpecifications\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <div class=\"form-horizontal\">\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'sweetProductRatio'\" class=\"pw-label control-label col-sm-4\"> Volumetric Yield </label>\r\n <sim-var-input\r\n [inputId]=\"'volumetricYield'\"\r\n [simVar]=\"unitOperation.volumetricYield\"\r\n [readOnly]=\"true\"></sim-var-input>\r\n </div>\r\n <hr />\r\n <h4 class=\"subtitle\">GHG</h4>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'ghgIntensity'\" class=\"pw-label control-label col-sm-4\"> GHG Intensity </label>\r\n <sim-var-input [inputId]=\"'ghgIntensity'\" [simVar]=\"unitOperation.ghgIntensity\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'ghgEmissions'\" class=\"pw-label control-label col-sm-4\"> GHG Emissions </label>\r\n <sim-var-input\r\n [inputId]=\"'ghgEmissions'\"\r\n [simVar]=\"unitOperation.ghgEmissions\"\r\n [readOnly]=\"true\"></sim-var-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"utilities\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <div class=\"form-horizontal\">\r\n <h4 class=\"subtitle\">Hydrogen</h4>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'hydrogenUseRate'\" class=\"pw-label control-label col-sm-4\"> Hydrogen Use Rate </label>\r\n <sim-var-input [inputId]=\"'hydrogenUseRate'\" [simVar]=\"unitOperation.hydrogenUseRate\"> </sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'hydrogenUse'\" class=\"pw-label control-label col-sm-4\"> Hydrogen Use </label>\r\n <sim-var-input [inputId]=\"'hydrogenUse'\" [readOnly]=\"true\" [simVar]=\"unitOperation.hydrogenUse\">\r\n </sim-var-input>\r\n </div>\r\n <hr />\r\n <h4 class=\"subtitle\">Amine</h4>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'h2sProductionRate'\" class=\"pw-label control-label col-sm-4\"> H2S Production Rate </label>\r\n <sim-var-input [inputId]=\"'h2sProductionRate'\" [simVar]=\"unitOperation.h2sProductionRate\"></sim-var-input>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'h2sProduction'\" class=\"pw-label control-label col-sm-4\"> H2S Production </label>\r\n <sim-var-input\r\n [inputId]=\"'h2sProduction'\"\r\n [readOnly]=\"true\"\r\n [simVar]=\"unitOperation.h2sProduction\"></sim-var-input>\r\n </div>\r\n\r\n <sob-steam-use-utility [unitOperation]=\"unitOperation\"></sob-steam-use-utility>\r\n <sob-gas-contributor [unitOperation]=\"unitOperation\"></sob-gas-contributor>\r\n </div>\r\n </div>\r\n </div>\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"economics\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <div class=\"form-horizontal\">\r\n <h4 class=\"subtitle\">OPEX</h4>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'opexVar'\" class=\"pw-label control-label col-sm-4\"> Variable </label>\r\n <sim-var-input [inputId]=\"'opexVar'\" [simVar]=\"unitOperation.opexVar\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'opexGasDiesel'\" class=\"pw-label control-label col-sm-4\"> Gas Diesel </label>\r\n <sim-var-input [inputId]=\"'opexGasDiesel'\" [simVar]=\"unitOperation.opexGasDiesel\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'opexPower'\" class=\"pw-label control-label col-sm-4\"> Power </label>\r\n <sim-var-input [inputId]=\"'opexPower'\" [simVar]=\"unitOperation.opexPower\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'opexCarbonDioxide'\" class=\"pw-label control-label col-sm-4\"> CO2 </label>\r\n <sim-var-input\r\n [inputId]=\"'opexCarbonDioxide'\"\r\n [simVar]=\"unitOperation.opexCarbonDioxide\"\r\n [readOnly]=\"true\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'opexFixed'\" class=\"pw-label control-label col-sm-4\"> Fixed </label>\r\n <sim-var-input [inputId]=\"'opexFixed'\" [simVar]=\"unitOperation.opexFixed\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'opexTotal'\" class=\"pw-label control-label col-sm-4\"> Total </label>\r\n <sim-var-input [inputId]=\"'opexTotal'\" [simVar]=\"unitOperation.opexTotal\" [readOnly]=\"true\"></sim-var-input>\r\n </div>\r\n\r\n <hr />\r\n <h4 class=\"subtitle\">CAPEX</h4>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'capexAmortized'\" class=\"pw-label control-label col-sm-4\"> Amortized CAPEX </label>\r\n <sim-var-input [inputId]=\"'capexAmortized'\" [simVar]=\"unitOperation.capexAmortized\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'capexTotal'\" class=\"pw-label control-label col-sm-4\"> Total </label>\r\n <sim-var-input [inputId]=\"'capexTotal'\" [simVar]=\"unitOperation.capexTotal\" [readOnly]=\"true\"></sim-var-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"constraints\">\r\n <p style=\"text-align: right; position: relative\">\r\n <span style=\"position: absolute; right: -25px; top: -20px; font-weight: bold\">Active</span>\r\n </p>\r\n <div class=\"form-horizontal\">\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'capacity'\" class=\"pw-label control-label col-sm-4\"> Maximum Feed Capacity </label>\r\n <sim-var-input [inputId]=\"'capacity'\" [isConstraint]=\"true\" [simVar]=\"unitOperation.capacity\"> </sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'minimumFlow'\" class=\"pw-label control-label col-sm-4\"> Minimum Flow </label>\r\n <sim-var-input [inputId]=\"'minimumFlow'\" [isConstraint]=\"true\" [simVar]=\"unitOperation.minimumFlow\">\r\n </sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'minimumAPI'\" class=\"pw-label control-label col-sm-4\"> Minimum API </label>\r\n <sim-var-input [inputId]=\"'minimumAPI'\" [isConstraint]=\"true\" [simVar]=\"unitOperation.minimumAPI\">\r\n </sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'maximumCCR'\" class=\"pw-label control-label col-sm-4\"> Maximum CCR </label>\r\n <sim-var-input [inputId]=\"'maximumCCR'\" [isConstraint]=\"true\" [simVar]=\"unitOperation.maximumCCR\">\r\n </sim-var-input>\r\n </div>\r\n </div>\r\n </div>\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"upgCustomModels\">\r\n <div class=\"form-group\">\r\n <label for=\"customModelEnabled\" class=\"control-label col-sm-4\"> Enable Custom Models </label>\r\n <div class=\"col-sm-4\">\r\n <label class=\"control-label\">\r\n <input type=\"checkbox\" id=\"customModelEnabled\" [(ngModel)]=\"unitOperation.useCustomModel\" />\r\n </label>\r\n </div>\r\n\r\n <div class=\"clearfix\"></div>\r\n </div>\r\n\r\n <div>\r\n <sob-open-code-editor-button\r\n [code]=\"unitOperation.modelScript\"\r\n [instanceId]=\"'hcCodeEditor'\"\r\n [defaultCodeProvider]=\"defaultCodeProvider\"\r\n [disabled]=\"!unitOperation.useCustomModel\"\r\n (codeSaved)=\"saveCustomModel($event)\"></sob-open-code-editor-button>\r\n </div>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"hydrocrackerComments\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <sob-unit-operation-comments [unitOpId]=\"this.unitOperation.id\"></sob-unit-operation-comments>\r\n </div>\r\n </div>\r\n</div>\r\n","<div class=\"text-center\" style=\"margin-top: 20px; margin-bottom: 20px\" *ngIf=\"unitOperation.useSubFlowsheet\">\r\n <a (click)=\"openSubFlowsheet()\" class=\"btn btn-primary\" style=\"margin-bottom: 15px\">\r\n <i class=\"fa fa-window-maximize\"></i> Use Subflowsheet\r\n </a>\r\n <hr />\r\n</div>\r\n\r\n<div class=\"form-horizontal\">\r\n <div class=\"form-group\">\r\n <label for=\"typeDD\" class=\"pw-label control-label col-sm-4\"> Assay Name </label>\r\n <div class=\"col-sm-6\" id=\"typeDD\">\r\n <sob-assay-selector\r\n [fluidAnalyses]=\"fluidAnalyses\"\r\n [currentAnalysis]=\"currentAnalysis\"\r\n (updateCurrentAssay)=\"updateCurrentAnalysis($event)\"></sob-assay-selector>\r\n </div>\r\n </div>\r\n</div>\r\n<hr />\r\n\r\n<ul class=\"nav nav-tabs\" role=\"tablist\" style=\"margin-right: 15px; margin-top: 20px\">\r\n <li role=\"presentation\" class=\"active\">\r\n <a href=\"#blockSpecifications\" aria-controls=\"blockSpecifications\" role=\"tab\" data-toggle=\"tab\">General</a>\r\n </li>\r\n <li *ngIf=\"currentAnalysis\" role=\"presentation\">\r\n <a href=\"#fluidCharacterization\" aria-controls=\"fluidCharacterization\" role=\"tab\" data-toggle=\"tab\">Fluid</a>\r\n </li>\r\n <li role=\"presentation\">\r\n <a href=\"#economics\" aria-controls=\"economics\" role=\"tab\" data-toggle=\"tab\">Economics</a>\r\n </li>\r\n\r\n <li role=\"presentation\">\r\n <a href=\"#extractionComments\" aria-controls=\"extractionComments\" role=\"tab\" data-toggle=\"tab\">\r\n <i class=\"fa fa-comments fa-lg\" aria-hidden=\"true\"> </i>\r\n Comments\r\n </a>\r\n </li>\r\n</ul>\r\n\r\n<div class=\"tab-content pw-margin tab-content-padding\">\r\n <div role=\"tabpanel\" class=\"tab-pane fade in active\" id=\"blockSpecifications\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <div class=\"form-horizontal\">\r\n <div class=\"form-group\">\r\n <label for=\"level2Enabled\" class=\"control-label col-sm-4\"> Enable Level 2 Model </label>\r\n <div class=\"col-sm-4\">\r\n <label class=\"control-label\">\r\n <input\r\n type=\"checkbox\"\r\n id=\"level2Enabled\"\r\n (ngModelChange)=\"changeNodeTemplate($event)\"\r\n (click)=\"clearOpex()\"\r\n [(ngModel)]=\"unitOperation.useSubFlowsheet\" />\r\n </label>\r\n </div>\r\n\r\n <div class=\"clearfix\"></div>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'yield'\" class=\"pw-label control-label col-sm-4\"> Yield </label>\r\n <sim-var-input [inputId]=\"'yield'\" [simVar]=\"unitOperation.yield\"> </sim-var-input>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'bitumenLossToTailing'\" class=\"pw-label control-label col-sm-4\">\r\n Bitumen Loss to Tailing\r\n </label>\r\n <sim-var-input\r\n [inputId]=\"'bitumenLossToTailing'\"\r\n [readOnly]=\"true\"\r\n [simVar]=\"unitOperation.bitumenLossToTailing\">\r\n </sim-var-input>\r\n </div>\r\n\r\n <hr />\r\n <h4 class=\"subtitle\">GHG</h4>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'ghgIntensity'\" class=\"pw-label control-label col-sm-4\"> GHG Intensity </label>\r\n <sim-var-input [inputId]=\"'ghgIntensity'\" [simVar]=\"unitOperation.ghgIntensity\"></sim-var-input>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'ghgEmissions'\" class=\"pw-label control-label col-sm-4\"> GHG Emissions </label>\r\n <sim-var-input\r\n [inputId]=\"'absoluteGhgEmissions'\"\r\n [simVar]=\"unitOperation.ghgEmissions\"\r\n [readOnly]=\"true\"></sim-var-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"economics\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <div class=\"form-horizontal\">\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'price'\" class=\"pw-label control-label col-sm-4\"> Price </label>\r\n <sim-var-input [inputId]=\"'price'\" [simVar]=\"unitOperation.price\"></sim-var-input>\r\n </div>\r\n <hr />\r\n <h4 class=\"subtitle\">OPEX</h4>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'opexFixed'\" class=\"pw-label control-label col-sm-4\"> Fixed </label>\r\n <sim-var-input [inputId]=\"'opexFixed'\" [simVar]=\"unitOperation.opexFixed\"></sim-var-input>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'opexVar'\" class=\"pw-label control-label col-sm-4\"> Variable </label>\r\n <sim-var-input [inputId]=\"'opexVar'\" [simVar]=\"unitOperation.opexVar\"></sim-var-input>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'opexCarbonDioxide'\" class=\"pw-label control-label col-sm-4\"> CO2 </label>\r\n <sim-var-input\r\n [inputId]=\"'opexCarbonDioxide'\"\r\n [simVar]=\"unitOperation.opexCarbonDioxide\"\r\n [readOnly]=\"true\"></sim-var-input>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'opexTotal'\" class=\"pw-label control-label col-sm-4\"> Total </label>\r\n <sim-var-input [inputId]=\"'opexTotal'\" [simVar]=\"unitOperation.opexTotal\" [readOnly]=\"true\"></sim-var-input>\r\n </div>\r\n\r\n <hr />\r\n <h4 class=\"subtitle\">CAPEX</h4>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'capexAmortized'\" class=\"pw-label control-label col-sm-4\"> Amortized CAPEX </label>\r\n <sim-var-input [inputId]=\"'capexAmortized'\" [simVar]=\"unitOperation.capexAmortized\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'capexTotal'\" class=\"pw-label control-label col-sm-4\"> Total </label>\r\n <sim-var-input [inputId]=\"'capexTotal'\" [simVar]=\"unitOperation.capexTotal\" [readOnly]=\"true\"></sim-var-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"currentAnalysis\" role=\"tabpanel\" class=\"tab-pane fade in\" id=\"fluidCharacterization\">\r\n <ul class=\"nav nav-pills\" role=\"tablist\" style=\"margin-right: 15px\">\r\n <li role=\"presentation\" class=\"active\">\r\n <a href=\"#bulkProperties\" aria-controls=\"bulkProperties\" role=\"tab\" data-toggle=\"tab\">Bulk Properties</a>\r\n </li>\r\n\r\n <li role=\"presentation\">\r\n <a href=\"#cutProperties\" aria-controls=\"cutProperties\" role=\"tab\" data-toggle=\"tab\">Cut Properties</a>\r\n </li>\r\n <li role=\"presentation\">\r\n <a href=\"#compositionUO\" aria-controls=\"composition\" role=\"tab\" data-toggle=\"tab\">Composition</a>\r\n </li>\r\n </ul>\r\n <div class=\"tab-content pw-margin tab-content-padding\">\r\n <div role=\"tabpanel\" class=\"tab-pane fade in active\" id=\"bulkProperties\">\r\n <div class=\"form-horizontal\">\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'fluidAnalysisMassDensity'\" class=\"pw-label control-label col-sm-4\">\r\n Mass Density\r\n </label>\r\n <sim-var-input\r\n [inputId]=\"'fluidAnalysisMassDensity'\"\r\n [readOnly]=\"true\"\r\n [simVar]=\"currentAnalysis.massDensity\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'fluidAnalysisCcr'\" class=\"pw-label control-label col-sm-4\"> CCR </label>\r\n <sim-var-input\r\n [inputId]=\"'fluidAnalysisCcr'\"\r\n [readOnly]=\"true\"\r\n [simVar]=\"currentAnalysis.ccr\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'fluidAnalysisSulfur'\" class=\"pw-label control-label col-sm-4\"> Sulfur </label>\r\n <sim-var-input\r\n [inputId]=\"'fluidAnalysisSulfur'\"\r\n [readOnly]=\"true\"\r\n [simVar]=\"currentAnalysis.sulfur\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'fluidAnalysisNitrogen'\" class=\"pw-label control-label col-sm-4\"> Nitrogen </label>\r\n <sim-var-input\r\n [inputId]=\"'fluidAnalysisNitrogen'\"\r\n [readOnly]=\"true\"\r\n [simVar]=\"currentAnalysis.nitrogen\"></sim-var-input>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"cutProperties\">\r\n <sob-cut-properties [readonly]=\"true\" [fluidAnalysis]=\"currentAnalysis\"></sob-cut-properties>\r\n </div>\r\n <div *ngIf=\"currentAnalysis\" role=\"tabpanel\" class=\"tab-pane fade in\" id=\"compositionUO\">\r\n <div class=\"form-horizontal\" sfeMultipleSimVarInput totalOutputId=\"compositionTotalUO\">\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'compositionUnit'\" class=\"pw-label control-label col-sm-4\"> Unit </label>\r\n\r\n <div class=\"col-sm-4\">\r\n <sfe-unit-select\r\n [selectId]=\"'compositionUnit' + unitOperation.id\"\r\n [simVar]=\"currentAnalysis.composition[0]\"\r\n [disabled]=\"true\"\r\n [elClass]=\"'form-control'\"></sfe-unit-select>\r\n </div>\r\n </div>\r\n\r\n <ng-container *ngFor=\"let idx of currentAnalysis.composition | keys\">\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'composition' + idx\" class=\"pw-label control-label col-sm-4\">\r\n {{ currentAnalysis.composition[idx].name | titleCaseComposition }}\r\n </label>\r\n <div class=\"col-sm-4\">\r\n <sfe-value-input\r\n [simVar]=\"currentAnalysis.composition[idx]\"\r\n [elClass]=\"'form-control'\"\r\n [inputId]=\"'composition' + idx\"\r\n [multiple]=\"true\"\r\n [readOnlyValue]=\"true\"\r\n [disabled]=\"true\"\r\n [convertedBy]=\"'compositionUnit'\">\r\n </sfe-value-input>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <div class=\"form-group\">\r\n <label class=\"pw-label control-label col-sm-4\">Total</label>\r\n <div class=\"col-sm-4\">\r\n <input type=\"text\" class=\"form-control\" id=\"compositionTotalUO\" readonly />\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"extractionComments\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <sob-unit-operation-comments [unitOpId]=\"this.unitOperation.id\"></sob-unit-operation-comments>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { Extraction } from '../../../_models/_unit-operations/extraction';\r\nimport { CoreService } from '../../../_services/core.service';\r\nimport { SuncorFluidAnalysis } from '../../../_models/_fluid/suncor-fluid-analysis';\r\nimport { unitOperationsConfig } from '../../../_config/unit-operations.config';\r\nimport { FlowsheetDiagramService } from '../../../_services/flowsheet-diagram/flowsheet-diagram.service';\r\nimport { FlowsheetService } from '../../../_services/flowsheet.service';\r\n\r\n@Component({\r\n selector: 'sob-extraction',\r\n templateUrl: './extraction.component.html',\r\n styleUrls: ['./extraction.component.css'],\r\n})\r\nexport class ExtractionComponent implements OnInit {\r\n @Input() unitOperation: Extraction;\r\n currentAnalysis: SuncorFluidAnalysis;\r\n\r\n constructor(\r\n private coreService: CoreService,\r\n private flowsheetDiagramService: FlowsheetDiagramService,\r\n private flowsheetService: FlowsheetService\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.updateCurrentAnalysis();\r\n }\r\n\r\n get fluidAnalyses() {\r\n return this.coreService.currentCase.assayManager.getAssaysByCategory('Crude oil - Bitumen');\r\n }\r\n\r\n updateCurrentAnalysis(id?) {\r\n if (id) {\r\n this.unitOperation.fluidAnalysisId = id;\r\n }\r\n if (this.unitOperation.fluidAnalysisId) {\r\n this.currentAnalysis = this.coreService.currentCase.assayManager.findFluidAnalysisById(\r\n this.unitOperation.fluidAnalysisId\r\n );\r\n this.assayChanged();\r\n }\r\n }\r\n\r\n assayChanged() {\r\n const cuts = [\r\n 'lightEndsCut',\r\n 'lightNaphthaCut',\r\n 'heavyNaphthaCut',\r\n 'distillateCut',\r\n 'LGOCut',\r\n 'HGOCut',\r\n 'VGOCut',\r\n 'HVGOCut',\r\n 'residCut',\r\n ];\r\n const simvarNames = ['sulfur', 'anilinePoint', 'massDensity', 'nitrogen', 'ccr'];\r\n for (const cutId of cuts) {\r\n for (const simvarName of simvarNames) {\r\n const simVar = this.currentAnalysis[cutId][simvarName];\r\n const $field = `#${cutId}${simvarName}`;\r\n $($field).val(simVar.convertToCaptureUnit(true));\r\n $(`${$field}Unit`).val(simVar.unit);\r\n $($field).change();\r\n }\r\n }\r\n $(`#compositionUnit${this.unitOperation.id}`).val(this.currentAnalysis.composition[0].unit);\r\n let total = 0;\r\n for (let i = 0; i < this.currentAnalysis.composition.length; i++) {\r\n const simVar = this.currentAnalysis.composition[i];\r\n total += simVar.convertToCaptureUnit(true);\r\n $(`#composition${i}`).val(simVar.convertToCaptureUnit(true));\r\n }\r\n $('#compositionTotalUO').val(total);\r\n\r\n $('#fluidAnalysisMassDensity').val(this.currentAnalysis.massDensity.convertToCaptureUnit(true));\r\n $('#fluidAnalysisMassDensityUnit').val(this.currentAnalysis.massDensity.unit);\r\n $('#fluidAnalysisMassDensity').change();\r\n\r\n $('#fluidAnalysisCcr').val(this.currentAnalysis.ccr.convertToCaptureUnit(true));\r\n $('#fluidAnalysisCcrUnit').val(this.currentAnalysis.ccr.unit);\r\n $('#fluidAnalysisCcr').change();\r\n\r\n $('#fluidAnalysisSulfur').val(this.currentAnalysis.sulfur.convertToCaptureUnit(true));\r\n $('#fluidAnalysisSulfurUnit').val(this.currentAnalysis.sulfur.unit);\r\n $('#fluidAnalysisSulfur').change();\r\n\r\n $('#fluidAnalysisNitrogen').val(this.currentAnalysis.nitrogen.convertToCaptureUnit(true));\r\n $('#fluidAnalysisNitrogenUnit').val(this.currentAnalysis.nitrogen.unit);\r\n $('#fluidAnalysisNitrogen').change();\r\n }\r\n\r\n // region level 2 handling\r\n clearOpex(): void {\r\n if (!this.unitOperation.useSubFlowsheet) {\r\n this.unitOperation.opexTotal.value = undefined;\r\n this.unitOperation.opexVar.value = undefined;\r\n this.unitOperation.opexGasDiesel.value = undefined;\r\n this.unitOperation.opexPower.value = undefined;\r\n this.unitOperation.opexCarbonDioxide.value = undefined;\r\n this.unitOperation.opexFixed.value = 0.0;\r\n }\r\n }\r\n\r\n changeNodeTemplate(level2Enabled: boolean) {\r\n if (level2Enabled) {\r\n this.flowsheetDiagramService.changeTemplate(this.unitOperation.id, unitOperationsConfig.flexibleExtraction.key);\r\n } else {\r\n this.flowsheetDiagramService.changeTemplate(this.unitOperation.id, unitOperationsConfig.extraction.key);\r\n }\r\n this.flowsheetDiagramService.deleteInletStreams(this.unitOperation.id);\r\n this.flowsheetDiagramService.deleteOutletStreams(this.unitOperation.id);\r\n }\r\n\r\n openSubFlowsheet(): void {\r\n if ($('#closePropertyWindow').attr('disabled')) {\r\n return;\r\n }\r\n this.flowsheetService.prepareUnitOperationForSave();\r\n this.flowsheetService.closePropertyWindow();\r\n\r\n this.flowsheetService.loadUnitOperationFlowsheet(this.unitOperation.id);\r\n }\r\n // endregion\r\n}\r\n","<ul class=\"nav nav-tabs\" role=\"tablist\" style=\"margin-right: 15px\">\r\n <li role=\"presentation\" class=\"active\">\r\n <a href=\"#blockSpecifications\" aria-controls=\"blockSpecifications\" role=\"tab\" data-toggle=\"tab\">Model</a>\r\n </li>\r\n\r\n <li role=\"presentation\">\r\n <a href=\"#constraints\" aria-controls=\"constraints\" role=\"tab\" data-toggle=\"tab\"> Constraints </a>\r\n </li>\r\n\r\n <li role=\"presentation\">\r\n <a href=\"#waterTurbineComments\" aria-controls=\"waterTurbineComments\" role=\"tab\" data-toggle=\"tab\">\r\n <i class=\"fa fa-comments fa-lg {{ this.unitOperation.comments ? 'gentle-hover-shake' : '' }}\" aria-hidden=\"true\">\r\n </i>\r\n Comments\r\n </a>\r\n </li>\r\n</ul>\r\n\r\n<div class=\"tab-content pw-margin tab-content-padding\" [formGroup]=\"propertyWindowFormGroup\">\r\n <div role=\"tabpanel\" class=\"tab-pane fade in active\" id=\"blockSpecifications\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <div class=\"form-horizontal\">\r\n <h4 class=\"subtitle\">Inputs</h4>\r\n <hr />\r\n <br />\r\n <div class=\"form-group\">\r\n <label for=\"pressureCalculationMode\" class=\"pw-label control-label col-sm-4\">\r\n Pressure Calculation Mode\r\n </label>\r\n\r\n <div class=\"col-sm-8\">\r\n <select\r\n class=\"form-control\"\r\n (change)=\"pressureMode($event.target.value)\"\r\n formControlName=\"pressureCalculationMode\"\r\n id=\"pressureCalculationMode\">\r\n <option value=\"{{ PressureCalculationMode.OUTLET_PRESSURE }}\">Outlet Pressure</option>\r\n <option value=\"{{ PressureCalculationMode.PRESSURE_DROP }}\">Pressure Drop</option>\r\n <option value=\"{{ PressureCalculationMode.DUTY }}\">Duty</option>\r\n </select>\r\n </div>\r\n </div>\r\n <ng-container *ngIf=\"this.unitOperation.pressureCalculationMode === 'Pressure Drop'\">\r\n <div class=\"form-group\" formGroupName=\"pressureDrop\">\r\n <label class=\"control-label col-sm-4\"> Pressure Drop </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.pressureDrop.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.pressureDrop\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"this.unitOperation.pressureCalculationMode === 'Outlet Pressure'\">\r\n <div class=\"form-group\" formGroupName=\"outletPressure\">\r\n <label class=\"control-label col-sm-4\"> Outlet Pressure </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.outletPressure.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.outletPressure\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"this.unitOperation.pressureCalculationMode === 'Duty'\">\r\n <div class=\"form-group\" formGroupName=\"duty\">\r\n <label class=\"control-label col-sm-4\"> Duty </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.duty.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input formControlName=\"value\" [valueMetaData]=\"unitOperation.duty\">\r\n >\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <div class=\"form-group\" formGroupName=\"isentropicEfficiency\">\r\n <label class=\"control-label col-sm-4\"> Isentropic Efficiency </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select\r\n formControlName=\"unit\"\r\n [quantity]=\"unitOperation.isentropicEfficiency.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.isentropicEfficiency\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <br /><br /><br /><br />\r\n <div class=\"form-horizontal\">\r\n <h4 class=\"subtitle\">Results</h4>\r\n <hr />\r\n <br />\r\n\r\n <div class=\"form-group\" formGroupName=\"dutyResult\">\r\n <label class=\"control-label col-sm-4\"> Duty </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.dutyResult.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.dutyResult\"\r\n [disabled]=\"true\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"pressureRatio\">\r\n <label class=\"control-label col-sm-4\"> Pressure Ratio </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.pressureRatio.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.pressureRatio\"\r\n [disabled]=\"true\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"polytropicEfficiency\">\r\n <label class=\"control-label col-sm-4\"> Polytropic Efficiency </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select\r\n formControlName=\"unit\"\r\n [quantity]=\"unitOperation.polytropicEfficiency.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.polytropicEfficiency\"\r\n [disabled]=\"true\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"constraints\" (keyup)=\"grayOutFields()\">\r\n <p style=\"text-align: right; position: relative\">\r\n <span style=\"position: absolute; right: -25px; top: -20px; font-weight: bold\">Active</span>\r\n </p>\r\n\r\n <div class=\"form-horizontal\">\r\n <div class=\"form-group\" formGroupName=\"minimumMassFlowrate\">\r\n <label class=\"control-label col-sm-4\"> Minimum Mass Flowrate </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-5\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.minimumMassFlowrate.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-5\">\r\n <sob-reactive-variable-value-input\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.minimumMassFlowrate\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n <div class=\"col-xs-2\">\r\n <sob-reactive-constraint-check-box\r\n formControlName=\"isActive\"\r\n [isConstraint]=\"true\"\r\n [disabledConstraint]=\"flowrateStatus\"\r\n [valueMetaData]=\"unitOperation.minimumMassFlowrate\">\r\n </sob-reactive-constraint-check-box>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"massCapacity\">\r\n <label class=\"control-label col-sm-4\"> Maximum Feed Capacity </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-5\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.massCapacity.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-5\">\r\n <sob-reactive-variable-value-input formControlName=\"value\" [valueMetaData]=\"unitOperation.massCapacity\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n <div class=\"col-xs-2\">\r\n <sob-reactive-constraint-check-box\r\n formControlName=\"isActive\"\r\n [isConstraint]=\"true\"\r\n [disabledConstraint]=\"capacityStatus\"\r\n [valueMetaData]=\"unitOperation.massCapacity\">\r\n </sob-reactive-constraint-check-box>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group duty\" formGroupName=\"minimumDuty\">\r\n <label class=\"control-label col-sm-4\"> Minimum Duty </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-5\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.minimumDuty.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-5\">\r\n <sob-reactive-variable-value-input formControlName=\"value\" [valueMetaData]=\"unitOperation.minimumDuty\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n <div class=\"col-xs-2\">\r\n <sob-reactive-constraint-check-box\r\n formControlName=\"isActive\"\r\n [isConstraint]=\"true\"\r\n [disabledConstraint]=\"minDutyStatus\"\r\n [valueMetaData]=\"unitOperation.minimumDuty\">\r\n </sob-reactive-constraint-check-box>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group duty\" formGroupName=\"maximumDuty\">\r\n <label class=\"control-label col-sm-4\"> Maximum Duty </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-5\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.maximumDuty.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-5\">\r\n <sob-reactive-variable-value-input formControlName=\"value\" [valueMetaData]=\"unitOperation.maximumDuty\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n <div class=\"col-xs-2\">\r\n <sob-reactive-constraint-check-box\r\n formControlName=\"isActive\"\r\n [isConstraint]=\"true\"\r\n [disabledConstraint]=\"maxDutyStatus\"\r\n [valueMetaData]=\"unitOperation.maximumDuty\">\r\n </sob-reactive-constraint-check-box>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"waterTurbineComments\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <sob-unit-operation-comments [unitOpId]=\"this.unitOperation.id\"></sob-unit-operation-comments>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { AbstractControl, UntypedFormBuilder } from '@angular/forms';\r\nimport { BaseObjectFormGroupWrapper } from '../../../_form-utils/base-object-form-group-wrapper';\r\nimport { PressureCalculationMode } from '../../../_config/pressure-calculation-mode.enum';\r\nimport { SimVarFormBuilder } from '../../../_form-utils/sim-var-form-builder';\r\nimport { WaterTurbine } from '../../../_models/_unit-operations/utilties/water-turbine';\r\nimport { SimulationVariable } from '../../../_models/simulation-variable';\r\nimport { isEmptyValue } from '../../../_utils/utils';\r\nimport { SimulationVariableName } from '../../../_config/simulation-variable-name.enum';\r\n\r\n@Component({\r\n selector: 'sob-water-turbine',\r\n templateUrl: './water-turbine.component.html',\r\n styleUrls: ['./water-turbine.component.css'],\r\n})\r\nexport class WaterTurbineComponent implements OnInit {\r\n @Input() unitOperation: WaterTurbine;\r\n @Input() formGroupWrapper: BaseObjectFormGroupWrapper;\r\n\r\n PressureCalculationMode = PressureCalculationMode;\r\n capacityStatus = false;\r\n flowrateStatus = false;\r\n minDutyStatus = false;\r\n maxDutyStatus = false;\r\n\r\n constructor(private fb: UntypedFormBuilder, private svfb: SimVarFormBuilder) {}\r\n\r\n ngOnInit(): void {\r\n this.addControls();\r\n this.formGroupWrapper.storeOriginalValue();\r\n $(document).ready(() => {\r\n this.grayOutFields();\r\n });\r\n }\r\n\r\n // eslint-disable-next-line @angular-eslint/use-lifecycle-interface\r\n ngAfterViewInit(): void {\r\n $(document).ready(() => {\r\n this.grayOutFields();\r\n });\r\n }\r\n\r\n addControls() {\r\n this.propertyWindowFormGroup.addControl('name', this.fb.control(this.unitOperation.name));\r\n this.propertyWindowFormGroup.addControl(\r\n 'pressureCalculationMode',\r\n this.fb.control(this.unitOperation.pressureCalculationMode)\r\n );\r\n\r\n this.propertyWindowFormGroup.addControl('pressureDrop', this.svfb.control(this.unitOperation.pressureDrop));\r\n this.propertyWindowFormGroup.addControl('outletPressure', this.svfb.control(this.unitOperation.outletPressure));\r\n this.propertyWindowFormGroup.addControl('duty', this.svfb.control(this.unitOperation.duty));\r\n this.propertyWindowFormGroup.addControl(\r\n 'isentropicEfficiency',\r\n this.svfb.control(this.unitOperation.isentropicEfficiency)\r\n );\r\n\r\n this.propertyWindowFormGroup.addControl('dutyResult', this.svfb.control(this.unitOperation.dutyResult));\r\n this.propertyWindowFormGroup.addControl('pressureRatio', this.svfb.control(this.unitOperation.pressureRatio));\r\n this.propertyWindowFormGroup.addControl(\r\n 'polytropicEfficiency',\r\n this.svfb.control(this.unitOperation.polytropicEfficiency)\r\n );\r\n\r\n this.propertyWindowFormGroup.addControl(\r\n 'massCapacity',\r\n this.svfb.control(this.unitOperation.massCapacity, false, false, true)\r\n );\r\n this.propertyWindowFormGroup.addControl(\r\n 'minimumMassFlowrate',\r\n this.svfb.control(this.unitOperation.minimumMassFlowrate, false, false, true)\r\n );\r\n this.propertyWindowFormGroup.addControl(\r\n 'minimumDuty',\r\n this.svfb.control(this.unitOperation.minimumDuty, false, false, true)\r\n );\r\n this.propertyWindowFormGroup.addControl(\r\n 'maximumDuty',\r\n this.svfb.control(this.unitOperation.maximumDuty, false, false, true)\r\n );\r\n }\r\n\r\n pressureMode(value) {\r\n if (value === PressureCalculationMode.PRESSURE_DROP) {\r\n this.unitOperation.pressureCalculationMode = PressureCalculationMode.PRESSURE_DROP;\r\n this.propertyWindowFormGroup.get('pressureCalculationMode').setValue(this.unitOperation.pressureCalculationMode);\r\n }\r\n if (value === PressureCalculationMode.OUTLET_PRESSURE) {\r\n this.unitOperation.pressureCalculationMode = PressureCalculationMode.OUTLET_PRESSURE;\r\n this.propertyWindowFormGroup.get('pressureCalculationMode').setValue(this.unitOperation.pressureCalculationMode);\r\n }\r\n if (value === PressureCalculationMode.DUTY) {\r\n this.unitOperation.pressureCalculationMode = PressureCalculationMode.DUTY;\r\n this.propertyWindowFormGroup.get('pressureCalculationMode').setValue(this.unitOperation.pressureCalculationMode);\r\n }\r\n }\r\n\r\n grayOutFields() {\r\n const massCapacity = this.propertyWindowFormGroup.get('massCapacity').get('value');\r\n const maximumDuty = this.propertyWindowFormGroup.get('maximumDuty').get('value');\r\n const minimumDuty = this.propertyWindowFormGroup.get('minimumDuty').get('value');\r\n const minimumMassFlowrate = this.propertyWindowFormGroup.get('minimumMassFlowrate').get('value');\r\n\r\n const controlsWithSimVar: [SimulationVariable, AbstractControl][] = [\r\n [this.unitOperation.massCapacity, massCapacity],\r\n [this.unitOperation.maximumDuty, maximumDuty],\r\n [this.unitOperation.minimumDuty, minimumDuty],\r\n [this.unitOperation.minimumMassFlowrate, minimumMassFlowrate],\r\n ];\r\n const controlsWithValue = controlsWithSimVar.filter(item => {\r\n return !isEmptyValue(item[1].value);\r\n });\r\n\r\n const controlsDuty = controlsWithValue.filter(item => {\r\n return (\r\n item[0].name === SimulationVariableName.MAXIMUM_DUTY || item[0].name === SimulationVariableName.MINIMUM_DUTY\r\n );\r\n });\r\n const controlsFlowrate = controlsWithValue.filter(item => {\r\n return (\r\n item[0].name === SimulationVariableName.MAXIMUM_FEED_CAPACITY ||\r\n item[0].name === SimulationVariableName.MINIMUM_MASS_FLOWRATE\r\n );\r\n });\r\n\r\n if (controlsDuty.length > controlsFlowrate.length) {\r\n massCapacity.disable();\r\n minimumMassFlowrate.disable();\r\n this.capacityStatus = true;\r\n this.flowrateStatus = true;\r\n } else if (controlsDuty.length < controlsFlowrate.length) {\r\n maximumDuty.disable();\r\n minimumDuty.disable();\r\n this.minDutyStatus = true;\r\n this.maxDutyStatus = true;\r\n } else if (controlsDuty.length === controlsFlowrate.length) {\r\n this.propertyWindowFormGroup.enable();\r\n this.capacityStatus = false;\r\n this.flowrateStatus = false;\r\n this.minDutyStatus = false;\r\n this.maxDutyStatus = false;\r\n }\r\n }\r\n\r\n get propertyWindowFormGroup() {\r\n return this.formGroupWrapper.getFormGroup();\r\n }\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { WaterHeatExchanger } from '../../../_models/_unit-operations/utilties/water-heat-exchanger';\r\nimport { WaterHeatExchangerConfiguration } from '../../../_config/water-heat-exchanger-configuration.enum';\r\nimport { WaterHeatExchangerTemperatureCalculationMode } from '../../../_config/water-heat-exchanger-temperature-calculation-mode.enum';\r\n\r\n@Component({\r\n selector: 'sob-water-heat-exchanger',\r\n templateUrl: './water-heat-exchanger.component.html',\r\n styleUrls: ['./water-heat-exchanger.component.css'],\r\n})\r\nexport class WaterHeatExchangerComponent implements OnInit {\r\n @Input() unitOperation: WaterHeatExchanger;\r\n configuration = WaterHeatExchangerConfiguration;\r\n temperatureCalculationMode = WaterHeatExchangerTemperatureCalculationMode;\r\n\r\n ngOnInit() {\r\n if (this.unitOperation.temperatureCalculationMode === WaterHeatExchangerTemperatureCalculationMode.UA) {\r\n $('#selectMode').val(WaterHeatExchangerTemperatureCalculationMode.UA);\r\n $('#outlet-temperature').hide();\r\n $('#ua-temperature').show();\r\n } else if (\r\n this.unitOperation.temperatureCalculationMode ===\r\n WaterHeatExchangerTemperatureCalculationMode.OUTLET_TEMPERATURE_SHELL\r\n ) {\r\n $('#selectMode').val(WaterHeatExchangerTemperatureCalculationMode.OUTLET_TEMPERATURE_SHELL);\r\n $('#outlet-temperature').show();\r\n $('#ua-temperature').hide();\r\n } else if (\r\n this.unitOperation.temperatureCalculationMode ===\r\n WaterHeatExchangerTemperatureCalculationMode.OUTLET_TEMPERATURE_TUBE\r\n ) {\r\n $('#selectMode').val(WaterHeatExchangerTemperatureCalculationMode.OUTLET_TEMPERATURE_TUBE);\r\n $('#outlet-temperature').show();\r\n $('#ua-temperature').hide();\r\n }\r\n\r\n if (this.unitOperation.configuration === WaterHeatExchangerConfiguration.COUNTER_CURRENT) {\r\n $('#configurationMode').val(WaterHeatExchangerConfiguration.COUNTER_CURRENT);\r\n } else if (this.unitOperation.configuration === WaterHeatExchangerConfiguration.CO_CURRENT) {\r\n $('#configurationMode').val(WaterHeatExchangerConfiguration.CO_CURRENT);\r\n }\r\n }\r\n\r\n temperatureCalculationModeChanged(calculationValue) {\r\n if (calculationValue === WaterHeatExchangerTemperatureCalculationMode.UA) {\r\n this.unitOperation.temperatureCalculationMode = WaterHeatExchangerTemperatureCalculationMode.UA;\r\n $('#outlet-temperature').hide();\r\n $('#ua-temperature').show();\r\n } else if (calculationValue === WaterHeatExchangerTemperatureCalculationMode.OUTLET_TEMPERATURE_SHELL) {\r\n this.unitOperation.temperatureCalculationMode =\r\n WaterHeatExchangerTemperatureCalculationMode.OUTLET_TEMPERATURE_SHELL;\r\n $('#outlet-temperature').show();\r\n $('#ua-temperature').hide();\r\n } else if (calculationValue === WaterHeatExchangerTemperatureCalculationMode.OUTLET_TEMPERATURE_TUBE) {\r\n this.unitOperation.temperatureCalculationMode =\r\n WaterHeatExchangerTemperatureCalculationMode.OUTLET_TEMPERATURE_TUBE;\r\n $('#outlet-temperature').show();\r\n $('#ua-temperature').hide();\r\n }\r\n }\r\n\r\n configurationModeChanged(value) {\r\n if (value === WaterHeatExchangerConfiguration.COUNTER_CURRENT) {\r\n this.unitOperation.configuration = WaterHeatExchangerConfiguration.COUNTER_CURRENT;\r\n } else if (value === WaterHeatExchangerConfiguration.CO_CURRENT) {\r\n this.unitOperation.configuration = WaterHeatExchangerConfiguration.CO_CURRENT;\r\n }\r\n }\r\n}\r\n","<ul class=\"nav nav-tabs\" role=\"tablist\" style=\"margin-right: 15px\">\r\n <li role=\"presentation\" class=\"active\">\r\n <a href=\"#blockSpecifications\" aria-controls=\"blockSpecifications\" role=\"tab\" data-toggle=\"tab\">Model</a>\r\n </li>\r\n\r\n <li role=\"presentation\">\r\n <a href=\"#waterHeatExchangerComments\" aria-controls=\"waterHeatExchangerComments\" role=\"tab\" data-toggle=\"tab\">\r\n <i class=\"fa fa-comments fa-lg\" aria-hidden=\"true\"> </i>\r\n Comments\r\n </a>\r\n </li>\r\n</ul>\r\n\r\n<div class=\"tab-content pw-margin tab-content-padding\">\r\n <div role=\"tabpanel\" class=\"tab-pane fade in active\" id=\"blockSpecifications\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <div class=\"form-horizontal\">\r\n <h4 class=\"subtitle\">Inputs</h4>\r\n <hr />\r\n <br />\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'configuration'\" class=\"pw-label control-label col-sm-4\"> Configuration </label>\r\n\r\n <div class=\"col-md-8\">\r\n <select\r\n id=\"configurationMode\"\r\n class=\"form-control\"\r\n (change)=\"configurationModeChanged($event.target.value)\">\r\n <option value=\"{{ configuration.COUNTER_CURRENT }}\">Counter-current</option>\r\n <option value=\"{{ configuration.CO_CURRENT }}\">Co-current</option>\r\n </select>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'temperatureCalculationMode'\" class=\"pw-label control-label col-sm-4\">\r\n Temperature Calculation Mode\r\n </label>\r\n\r\n <div class=\"col-md-8\" id=\"temperatureCalculationMode\">\r\n <select\r\n id=\"selectMode\"\r\n (change)=\"temperatureCalculationModeChanged($event.target.value)\"\r\n class=\"form-control\">\r\n <option value=\"{{ temperatureCalculationMode.OUTLET_TEMPERATURE_TUBE }}\">\r\n Outlet Temperature - Tube\r\n </option>\r\n <option value=\"{{ temperatureCalculationMode.OUTLET_TEMPERATURE_SHELL }}\">\r\n Outlet Temperature - Shell\r\n </option>\r\n <option value=\"{{ temperatureCalculationMode.UA }}\">UA</option>\r\n </select>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" id=\"outlet-temperature\">\r\n <label [attr.for]=\"'outletTemperature'\" class=\"pw-label control-label col-sm-4\"> Outlet Temperature </label>\r\n <sim-var-input [inputId]=\"'outletTemperature'\" [simVar]=\"unitOperation.outletTemperature\"></sim-var-input>\r\n </div>\r\n\r\n <div class=\"form-group\" id=\"ua-temperature\">\r\n <label [attr.for]=\"'Ua'\" class=\"pw-label control-label col-sm-4\"> UA </label>\r\n <sim-var-input [inputId]=\"'Ua'\" [simVar]=\"unitOperation.ua\"></sim-var-input>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'pressureDropTube'\" class=\"pw-label control-label col-sm-4\"> Pressure Drop - Tube </label>\r\n <sim-var-input [inputId]=\"'pressureDropTube'\" [simVar]=\"unitOperation.pressureDropTube\"></sim-var-input>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'pressureDropShell'\" class=\"pw-label control-label col-sm-4\">\r\n Pressure Drop - Shell\r\n </label>\r\n <sim-var-input [inputId]=\"'pressureDropShell'\" [simVar]=\"unitOperation.pressureDropShell\"></sim-var-input>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'geometryFactor'\" class=\"pw-label control-label col-sm-4\"> Geometry Factor </label>\r\n <sim-var-input [inputId]=\"'geometryFactor'\" [simVar]=\"unitOperation.geometryFactor\"></sim-var-input>\r\n </div>\r\n\r\n <br /><br /><br /><br />\r\n <div class=\"form-horizontal\">\r\n <h4 class=\"subtitle\">Results</h4>\r\n <hr />\r\n <br />\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'duty'\" class=\"pw-label control-label col-sm-4\"> Duty </label>\r\n <sim-var-input [inputId]=\"'duty'\" [readOnly]=\"true\" [simVar]=\"unitOperation.duty\"></sim-var-input>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'uaResult'\" class=\"pw-label control-label col-sm-4\"> UA </label>\r\n <sim-var-input [inputId]=\"'uaResult'\" [readOnly]=\"true\" [simVar]=\"unitOperation.uaResult\"></sim-var-input>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'lmtd'\" class=\"pw-label control-label col-sm-4\"> LMTD </label>\r\n <sim-var-input [inputId]=\"'lmtd'\" [readOnly]=\"true\" [simVar]=\"unitOperation.lmtd\"></sim-var-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"waterHeatExchangerComments\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <sob-unit-operation-comments [unitOpId]=\"this.unitOperation.id\"></sob-unit-operation-comments>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { WaterHeater } from '../../../_models/_unit-operations/utilties/water-heater';\r\nimport { TemperatureCalculationMode } from '../../../_config/temperature-calculation-mode.enum';\r\n\r\n@Component({\r\n selector: 'sob-water-heater',\r\n templateUrl: './water-heater.component.html',\r\n styleUrls: ['./water-heater.component.css'],\r\n})\r\nexport class WaterHeaterComponent implements OnInit {\r\n @Input() unitOperation: WaterHeater;\r\n\r\n ngOnInit() {\r\n if (this.unitOperation.temperatureCalculationMode === TemperatureCalculationMode.OUTLET_TEMPERATURE) {\r\n $('#selectMode').val(TemperatureCalculationMode.OUTLET_TEMPERATURE);\r\n $('#temperature-gain').hide();\r\n $('#outlet-temperature').show();\r\n } else if (this.unitOperation.temperatureCalculationMode === TemperatureCalculationMode.TEMPERATURE_GAIN) {\r\n $('#temperature-gain').show();\r\n $('#outlet-temperature').hide();\r\n }\r\n }\r\n\r\n temperatureCalculationModeChanged(calculationValue) {\r\n if (calculationValue === TemperatureCalculationMode.OUTLET_TEMPERATURE) {\r\n this.unitOperation.temperatureCalculationMode = TemperatureCalculationMode.OUTLET_TEMPERATURE;\r\n $('#temperature-gain').hide();\r\n $('#outlet-temperature').show();\r\n } else if (calculationValue === TemperatureCalculationMode.TEMPERATURE_GAIN) {\r\n this.unitOperation.temperatureCalculationMode = TemperatureCalculationMode.TEMPERATURE_GAIN;\r\n $('#temperature-gain').show();\r\n $('#outlet-temperature').hide();\r\n }\r\n }\r\n}\r\n","<ul class=\"nav nav-tabs\" role=\"tablist\" style=\"margin-right: 15px; margin-top: 20px\">\r\n <li role=\"presentation\" class=\"active\">\r\n <a href=\"#blockSpecifications\" aria-controls=\"blockSpecifications\" role=\"tab\" data-toggle=\"tab\">Model</a>\r\n </li>\r\n\r\n <li role=\"presentation\">\r\n <a href=\"#waterHeaterComments\" aria-controls=\"waterHeaterComments\" role=\"tab\" data-toggle=\"tab\">\r\n <i class=\"fa fa-comments fa-lg\" aria-hidden=\"true\"> </i>\r\n Comments\r\n </a>\r\n </li>\r\n</ul>\r\n\r\n<div class=\"tab-content pw-margin tab-content-padding\">\r\n <div role=\"tabpanel\" class=\"tab-pane fade in active\" id=\"blockSpecifications\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <div class=\"form-horizontal\">\r\n <h4 class=\"subtitle\">Inputs</h4>\r\n <hr />\r\n <br />\r\n\r\n <div class=\"form-group\">\r\n <label for=\"temperatureCalculationMode\" class=\"pw-label control-label col-sm-4\">\r\n Temperature Calculation Mode\r\n </label>\r\n <div class=\"col-sm-8\" id=\"temperatureCalculationMode\">\r\n <select\r\n id=\"selectMode\"\r\n (change)=\"temperatureCalculationModeChanged($event.target.value)\"\r\n class=\"form-control\">\r\n <option value=\"Temperature Gain\">Temperature Gain</option>\r\n <option value=\"Outlet Temperature\">Outlet Temperature</option>\r\n </select>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" id=\"temperature-gain\">\r\n <label [attr.for]=\"'temperatureGain'\" class=\"pw-label control-label col-sm-4\"> Temperature Gain </label>\r\n <sim-var-input [inputId]=\"'temperatureGain'\" [simVar]=\"unitOperation.temperatureGain\"> </sim-var-input>\r\n </div>\r\n\r\n <div class=\"form-group\" id=\"outlet-temperature\">\r\n <label [attr.for]=\"'outletTemperature'\" class=\"pw-label control-label col-sm-4\"> Outlet Temperature </label>\r\n <sim-var-input [inputId]=\"'outletTemperature'\" [simVar]=\"unitOperation.outletTemperature\"></sim-var-input>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'pressureDrop'\" class=\"pw-label control-label col-sm-4\"> Pressure Drop </label>\r\n <sim-var-input [inputId]=\"'pressureDrop'\" [simVar]=\"unitOperation.pressureDrop\"></sim-var-input>\r\n </div>\r\n <br />\r\n\r\n <h4 class=\"subtitle\">Results</h4>\r\n <hr />\r\n <br />\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'duty'\" class=\"pw-label control-label col-sm-4\"> Duty </label>\r\n <sim-var-input [inputId]=\"'duty'\" [simVar]=\"unitOperation.duty\" [readOnly]=\"true\"></sim-var-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"waterHeaterComments\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <sob-unit-operation-comments [unitOpId]=\"this.unitOperation.id\"></sob-unit-operation-comments>\r\n </div>\r\n </div>\r\n</div>\r\n","<ul class=\"nav nav-tabs\" role=\"tablist\" style=\"margin-right: 15px; margin-top: 20px\">\r\n <li role=\"presentation\" class=\"active\">\r\n <a href=\"#blockSpecifications\" aria-controls=\"blockSpecifications\" role=\"tab\" data-toggle=\"tab\">Model</a>\r\n </li>\r\n\r\n <li role=\"presentation\">\r\n <a href=\"#waterCoolerComments\" aria-controls=\"waterCoolerComments\" role=\"tab\" data-toggle=\"tab\">\r\n <i class=\"fa fa-comments fa-lg\" aria-hidden=\"true\"> </i>\r\n Comments\r\n </a>\r\n </li>\r\n</ul>\r\n\r\n<div class=\"tab-content pw-margin tab-content-padding\">\r\n <div role=\"tabpanel\" class=\"tab-pane fade in active\" id=\"blockSpecifications\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <div class=\"form-horizontal\">\r\n <h4 class=\"subtitle\">Inputs</h4>\r\n <hr />\r\n <br />\r\n\r\n <div class=\"form-group\">\r\n <label for=\"temperatureCalculationMode\" class=\"pw-label control-label col-sm-4\">\r\n Temperature Calculation Mode\r\n </label>\r\n <div class=\"col-sm-8\" id=\"temperatureCalculationMode\">\r\n <select\r\n id=\"selectMode\"\r\n (change)=\"temperatureCalculationModeChanged($event.target.value)\"\r\n class=\"form-control\">\r\n <option value=\"{{ TemperatureCalculationMode.TEMPERATURE_DROP }}\">Temperature Drop</option>\r\n <option value=\"{{ TemperatureCalculationMode.OUTLET_TEMPERATURE }}\">Outlet Temperature</option>\r\n </select>\r\n </div>\r\n </div>\r\n\r\n <ng-container *ngIf=\"unitOperation.temperatureCalculationMode === 'Temperature Drop'\">\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'temperatureDrop'\" class=\"pw-label control-label col-sm-4\"> Temperature Drop </label>\r\n <sim-var-input [inputId]=\"'temperatureDrop'\" [simVar]=\"unitOperation.temperatureDrop\"> </sim-var-input>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container>\r\n <div class=\"form-group\" id=\"outlet-temperature\">\r\n <label [attr.for]=\"'outletTemperature'\" class=\"pw-label control-label col-sm-4\"> Outlet Temperature </label>\r\n <sim-var-input [inputId]=\"'outletTemperature'\" [simVar]=\"unitOperation.outletTemperature\"> </sim-var-input>\r\n </div>\r\n </ng-container>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'pressureDrop'\" class=\"pw-label control-label col-sm-4\"> Pressure Drop </label>\r\n <sim-var-input [inputId]=\"'pressureDrop'\" [simVar]=\"unitOperation.pressureDrop\"></sim-var-input>\r\n </div>\r\n <br />\r\n\r\n <h4 class=\"subtitle\">Results</h4>\r\n <hr />\r\n <br />\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'duty'\" class=\"pw-label control-label col-sm-4\"> Duty </label>\r\n <sim-var-input [inputId]=\"'duty'\" [simVar]=\"unitOperation.duty\" [readOnly]=\"true\"></sim-var-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"waterCoolerComments\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <sob-unit-operation-comments [unitOpId]=\"this.unitOperation.id\"></sob-unit-operation-comments>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { WaterCooler } from '../../../_models/_unit-operations/utilties/water-cooler';\r\nimport { TemperatureCalculationMode } from '../../../_config/temperature-calculation-mode.enum';\r\n\r\n@Component({\r\n selector: 'sob-water-cooler',\r\n templateUrl: './water-cooler.component.html',\r\n styleUrls: ['./water-cooler.component.css'],\r\n})\r\nexport class WaterCoolerComponent implements OnInit {\r\n @Input() unitOperation: WaterCooler;\r\n TemperatureCalculationMode = TemperatureCalculationMode;\r\n\r\n ngOnInit() {\r\n if (this.unitOperation.temperatureCalculationMode === TemperatureCalculationMode.OUTLET_TEMPERATURE) {\r\n $('#selectMode').val(TemperatureCalculationMode.OUTLET_TEMPERATURE);\r\n $('#outlet-temperature').show();\r\n } else if (this.unitOperation.temperatureCalculationMode === TemperatureCalculationMode.TEMPERATURE_DROP) {\r\n $('#selectMode').val(TemperatureCalculationMode.TEMPERATURE_DROP);\r\n $('#outlet-temperature').hide();\r\n }\r\n }\r\n\r\n temperatureCalculationModeChanged(calculationValue) {\r\n if (calculationValue === TemperatureCalculationMode.TEMPERATURE_DROP) {\r\n this.unitOperation.temperatureCalculationMode = TemperatureCalculationMode.TEMPERATURE_DROP;\r\n $('#outlet-temperature').hide();\r\n } else if (calculationValue === TemperatureCalculationMode.OUTLET_TEMPERATURE) {\r\n this.unitOperation.temperatureCalculationMode = TemperatureCalculationMode.OUTLET_TEMPERATURE;\r\n $('#outlet-temperature').show();\r\n }\r\n }\r\n}\r\n","export enum UnitSubset {\r\n MOLE_FRACTION_NO_PPM = 'MoleFractionNoPpm',\r\n VOLUME_FRACTION_NO_PPM = 'VolumeFractionNoPpm',\r\n}\r\n","import { Component, Input } from '@angular/core';\r\nimport { WaterTwoPhaseSeparator } from '../../../_models/_unit-operations/utilties/water-two-phase-separator';\r\nimport { UnitSubset } from '../../../_config/unitSubset.enum';\r\n\r\n@Component({\r\n selector: 'sob-water-two-phase-separator',\r\n templateUrl: './water-two-phase-separator.component.html',\r\n styleUrls: ['./water-two-phase-separator.component.css'],\r\n})\r\nexport class WaterTwoPhaseSeparatorComponent {\r\n @Input()\r\n unitOperation: WaterTwoPhaseSeparator;\r\n\r\n UnitSubset = UnitSubset;\r\n}\r\n","<ul class=\"nav nav-tabs\" role=\"tablist\" style=\"margin-right: 15px; margin-top: 20px\">\r\n <li role=\"presentation\" class=\"active\">\r\n <a href=\"#blockSpecifications\" aria-controls=\"blockSpecifications\" role=\"tab\" data-toggle=\"tab\">Model</a>\r\n </li>\r\n\r\n <li role=\"presentation\">\r\n <a\r\n href=\"#waterTwoPhaseSeparatorComments\"\r\n aria-controls=\"waterTwoPhaseSeparatorComments\"\r\n role=\"tab\"\r\n data-toggle=\"tab\">\r\n <i class=\"fa fa-comments fa-lg\" aria-hidden=\"true\"> </i>\r\n Comments\r\n </a>\r\n </li>\r\n</ul>\r\n\r\n<div class=\"tab-content pw-margin tab-content-padding\">\r\n <div role=\"tabpanel\" class=\"tab-pane fade in active\" id=\"blockSpecifications\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <div class=\"form-horizontal\">\r\n <h4 class=\"subtitle\">Inputs</h4>\r\n <hr />\r\n <br />\r\n\r\n <h4 class=\"text-center font-bold\">Carryover</h4>\r\n <br />\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'gasLiquidCarryover'\" class=\"pw-label control-label col-sm-4\"> Gas in Liquid </label>\r\n\r\n <sim-var-input\r\n [inputId]=\"'gasLiquidCarryover'\"\r\n [simVar]=\"unitOperation.gasLiquidCarryover\"\r\n [unitSubset]=\"UnitSubset.MOLE_FRACTION_NO_PPM\"></sim-var-input>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'liquidGasCarryover'\" class=\"pw-label control-label col-sm-4\"> Liquid in Gas </label>\r\n\r\n <sim-var-input\r\n [inputId]=\"'liquidGasCarryover'\"\r\n [simVar]=\"unitOperation.liquidGasCarryover\"\r\n [unitSubset]=\"UnitSubset.MOLE_FRACTION_NO_PPM\"></sim-var-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"waterTwoPhaseSeparatorComments\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <sob-unit-operation-comments [unitOpId]=\"this.unitOperation.id\"></sob-unit-operation-comments>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { PressureCalculationMode } from '../../../_config/pressure-calculation-mode.enum';\r\nimport { WaterPump } from '../../../_models/_unit-operations/utilties/water-pump';\r\n\r\n@Component({\r\n selector: 'sob-water-pump',\r\n templateUrl: './water-pump.component.html',\r\n styleUrls: ['./water-pump.component.css'],\r\n})\r\nexport class WaterPumpComponent implements OnInit {\r\n @Input() unitOperation: WaterPump;\r\n\r\n ngOnInit() {\r\n if (this.unitOperation.pressureCalculationMode === PressureCalculationMode.OUTLET_PRESSURE) {\r\n $('#selectMode').val(PressureCalculationMode.OUTLET_PRESSURE);\r\n $('#pressure-gain').hide();\r\n $('#outlet-pressure').show();\r\n $('#Duty').hide();\r\n } else if (this.unitOperation.pressureCalculationMode === PressureCalculationMode.DUTY) {\r\n $('#selectMode').val(PressureCalculationMode.DUTY);\r\n $('#Duty').show();\r\n $('#pressure-gain').hide();\r\n $('#outlet-pressure').hide();\r\n } else if (this.unitOperation.pressureCalculationMode === PressureCalculationMode.PRESSURE_GAIN) {\r\n $('#outlet-pressure').hide();\r\n $('#Duty').hide();\r\n }\r\n }\r\n\r\n pressureCalculationModeChanged(calculationValue) {\r\n if (calculationValue === PressureCalculationMode.OUTLET_PRESSURE) {\r\n this.unitOperation.pressureCalculationMode = PressureCalculationMode.OUTLET_PRESSURE;\r\n $('#pressure-gain').hide();\r\n $('#outlet-pressure').show();\r\n $('#Duty').hide();\r\n } else if (calculationValue === PressureCalculationMode.DUTY) {\r\n this.unitOperation.pressureCalculationMode = PressureCalculationMode.DUTY;\r\n $('#Duty').show();\r\n $('#pressure-gain').hide();\r\n $('#outlet-pressure').hide();\r\n } else if (calculationValue === PressureCalculationMode.PRESSURE_GAIN) {\r\n this.unitOperation.pressureCalculationMode = PressureCalculationMode.PRESSURE_GAIN;\r\n $('#pressure-gain').show();\r\n $('#outlet-pressure').hide();\r\n $('#Duty').hide();\r\n }\r\n }\r\n}\r\n","<ul class=\"nav nav-tabs\" role=\"tablist\" style=\"margin-right: 15px; margin-top: 20px\">\r\n <li role=\"presentation\" class=\"active\">\r\n <a href=\"#blockSpecifications\" aria-controls=\"blockSpecifications\" role=\"tab\" data-toggle=\"tab\">Model</a>\r\n </li>\r\n\r\n <li role=\"presentation\">\r\n <a href=\"#waterPumpComments\" aria-controls=\"waterPumpComments\" role=\"tab\" data-toggle=\"tab\">\r\n <i class=\"fa fa-comments fa-lg\" aria-hidden=\"true\"> </i>\r\n Comments\r\n </a>\r\n </li>\r\n</ul>\r\n\r\n<div class=\"tab-content pw-margin tab-content-padding\">\r\n <div role=\"tabpanel\" class=\"tab-pane fade in active\" id=\"blockSpecifications\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <div class=\"form-horizontal\">\r\n <h4 class=\"subtitle\">Inputs</h4>\r\n <hr />\r\n <br />\r\n\r\n <div class=\"form-group\">\r\n <label for=\"pressureCalculationMode\" class=\"pw-label control-label col-sm-4\">\r\n Pressure Calculation Mode\r\n </label>\r\n <div class=\"col-sm-8\" id=\"pressureCalculationMode\">\r\n <select id=\"selectMode\" (change)=\"pressureCalculationModeChanged($event.target.value)\" class=\"form-control\">\r\n <option value=\"Pressure Gain\">Pressure Gain</option>\r\n <option value=\"Outlet Pressure\">Outlet Pressure</option>\r\n <option value=\"Duty\">Duty</option>\r\n </select>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" id=\"pressure-gain\">\r\n <label [attr.for]=\"'pressureGain'\" class=\"pw-label control-label col-sm-4\"> Pressure Gain </label>\r\n <sim-var-input [inputId]=\"'pressureGain'\" [simVar]=\"unitOperation.pressureGain\"> </sim-var-input>\r\n </div>\r\n\r\n <div class=\"form-group\" id=\"outlet-pressure\">\r\n <label [attr.for]=\"'outletPressure'\" class=\"pw-label control-label col-sm-4\"> Outlet Pressure </label>\r\n <sim-var-input [inputId]=\"'outletPressure'\" [simVar]=\"unitOperation.outletPressure\"></sim-var-input>\r\n </div>\r\n\r\n <div class=\"form-group\" id=\"Duty\">\r\n <label [attr.for]=\"'duty'\" class=\"pw-label control-label col-sm-4\"> Duty </label>\r\n <sim-var-input [inputId]=\"'duty'\" [simVar]=\"unitOperation.duty\"></sim-var-input>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'efficiency'\" class=\"pw-label control-label col-sm-4\"> Efficiency </label>\r\n <sim-var-input [inputId]=\"'efficiency'\" [simVar]=\"unitOperation.efficiency\"></sim-var-input>\r\n </div>\r\n <br />\r\n\r\n <h4 class=\"subtitle\">Results</h4>\r\n <hr />\r\n <br />\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'dutyResult'\" class=\"pw-label control-label col-sm-4\"> Duty </label>\r\n <sim-var-input [inputId]=\"'dutyResult'\" [simVar]=\"unitOperation.dutyResult\" [readOnly]=\"true\"></sim-var-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"waterPumpComments\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <sob-unit-operation-comments [unitOpId]=\"this.unitOperation.id\"></sob-unit-operation-comments>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, Input } from '@angular/core';\r\nimport { WaterUtilityUnitOperation } from '../../../_models/_unit-operations/utilties/water-utility-unit-operation';\r\nimport { FlowsheetService } from '../../../_services/flowsheet.service';\r\n\r\n@Component({\r\n selector: 'sob-water-utility-unit-operation',\r\n templateUrl: './water-utility-unit-operation.component.html',\r\n styleUrls: ['./water-utility-unit-operation.component.css'],\r\n})\r\nexport class WaterUtilityUnitOperationComponent {\r\n @Input() unitOperation: WaterUtilityUnitOperation;\r\n\r\n constructor(private flowsheetService: FlowsheetService) {}\r\n\r\n openSubFlowsheet(): void {\r\n if ($('#closePropertyWindow').attr('disabled')) {\r\n return;\r\n }\r\n this.flowsheetService.prepareUnitOperationForSave();\r\n this.flowsheetService.closePropertyWindow();\r\n\r\n this.flowsheetService.loadUnitOperationFlowsheet(this.unitOperation.id);\r\n }\r\n}\r\n","<div class=\"text-center\" style=\"margin-top: 20px; margin-bottom: 20px\">\r\n <a (click)=\"openSubFlowsheet()\" class=\"btn btn-primary\" style=\"margin-bottom: 15px\">\r\n <i class=\"fa fa-window-maximize\"></i> Use Subflowsheet\r\n </a>\r\n <hr />\r\n</div>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { PressureCalculationMode } from '../../../_config/pressure-calculation-mode.enum';\r\nimport { WaterValve } from '../../../_models/_unit-operations/utilties/water-valve';\r\n\r\n@Component({\r\n selector: 'sob-water-valve',\r\n templateUrl: './water-valve.component.html',\r\n styleUrls: ['./water-valve.component.css'],\r\n})\r\nexport class WaterValveComponent implements OnInit {\r\n @Input() unitOperation: WaterValve;\r\n\r\n ngOnInit() {\r\n if (this.unitOperation.pressureCalculationMode === PressureCalculationMode.OUTLET_PRESSURE) {\r\n $('#selectMode').val(PressureCalculationMode.OUTLET_PRESSURE);\r\n $('#pressure-drop').hide();\r\n $('#outlet-pressure').show();\r\n } else if (this.unitOperation.pressureCalculationMode === PressureCalculationMode.PRESSURE_DROP) {\r\n $('#pressure-drop').show();\r\n $('#outlet-pressure').hide();\r\n }\r\n }\r\n\r\n pressureCalculationModeChanged(calculationValue) {\r\n if (calculationValue === PressureCalculationMode.OUTLET_PRESSURE) {\r\n this.unitOperation.pressureCalculationMode = PressureCalculationMode.OUTLET_PRESSURE;\r\n $('#pressure-drop').hide();\r\n $('#outlet-pressure').show();\r\n } else if (calculationValue === PressureCalculationMode.PRESSURE_DROP) {\r\n this.unitOperation.pressureCalculationMode = PressureCalculationMode.PRESSURE_DROP;\r\n $('#pressure-drop').show();\r\n $('#outlet-pressure').hide();\r\n }\r\n }\r\n}\r\n","<ul class=\"nav nav-tabs\" role=\"tablist\" style=\"margin-right: 15px; margin-top: 20px\">\r\n <li role=\"presentation\" class=\"active\">\r\n <a href=\"#blockSpecifications\" aria-controls=\"blockSpecifications\" role=\"tab\" data-toggle=\"tab\">Model</a>\r\n </li>\r\n\r\n <li role=\"presentation\">\r\n <a href=\"#constraints\" aria-controls=\"constraints\" role=\"tab\" data-toggle=\"tab\"> Constraints </a>\r\n </li>\r\n\r\n <li role=\"presentation\">\r\n <a href=\"#waterValveComments\" aria-controls=\"waterValveComments\" role=\"tab\" data-toggle=\"tab\">\r\n <i class=\"fa fa-comments fa-lg\" aria-hidden=\"true\"> </i>\r\n Comments\r\n </a>\r\n </li>\r\n</ul>\r\n\r\n<div class=\"tab-content pw-margin tab-content-padding\">\r\n <div role=\"tabpanel\" class=\"tab-pane fade in active\" id=\"blockSpecifications\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <div class=\"form-horizontal\">\r\n <h4 class=\"subtitle\">Inputs</h4>\r\n <hr />\r\n <br />\r\n\r\n <div class=\"form-group\">\r\n <label for=\"pressureCalculationMode\" class=\"pw-label control-label col-sm-4\">\r\n Pressure Calculation Mode\r\n </label>\r\n <div class=\"col-sm-8\" id=\"pressureCalculationMode\">\r\n <select id=\"selectMode\" (change)=\"pressureCalculationModeChanged($event.target.value)\" class=\"form-control\">\r\n <option value=\"Pressure Drop\">Pressure Drop</option>\r\n <option value=\"Outlet Pressure\">Outlet Pressure</option>\r\n </select>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" id=\"pressure-drop\">\r\n <label [attr.for]=\"'pressureDrop'\" class=\"pw-label control-label col-sm-4\"> Pressure Drop </label>\r\n <sim-var-input [inputId]=\"'pressureDrop'\" [simVar]=\"unitOperation.pressureDrop\"> </sim-var-input>\r\n </div>\r\n\r\n <div class=\"form-group\" id=\"outlet-pressure\">\r\n <label [attr.for]=\"'outletPressure'\" class=\"pw-label control-label col-sm-4\"> Outlet Pressure </label>\r\n <sim-var-input [inputId]=\"'outletPressure'\" [simVar]=\"unitOperation.outletPressure\"></sim-var-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"constraints\">\r\n <p style=\"text-align: right; position: relative\">\r\n <span style=\"position: absolute; right: -25px; top: -20px; font-weight: bold\">Active</span>\r\n </p>\r\n <div class=\"form-horizontal\">\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'capacity'\" class=\"pw-label control-label col-sm-4\"> Maximum Feed Capacity </label>\r\n <sim-var-input [inputId]=\"'capacity'\" [isConstraint]=\"true\" [simVar]=\"unitOperation.massCapacity\">\r\n </sim-var-input>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"waterValveComments\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <sob-unit-operation-comments [unitOpId]=\"this.unitOperation.id\"></sob-unit-operation-comments>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { WaterMixer } from '../../../_models/_unit-operations/utilties/water-mixer';\r\nimport { PressureCalculationMode } from '../../../_config/pressure-calculation-mode.enum';\r\n\r\n@Component({\r\n selector: 'sob-water-mixer',\r\n templateUrl: './water-mixer.component.html',\r\n styleUrls: ['./water-mixer.component.css'],\r\n})\r\nexport class WaterMixerComponent implements OnInit {\r\n @Input()\r\n unitOperation: WaterMixer;\r\n\r\n ngOnInit() {\r\n if ($('#selectMode').val() === PressureCalculationMode.LOWEST) {\r\n $('#outlet-pressure').hide();\r\n }\r\n if (this.unitOperation.pressureCalculationMode === PressureCalculationMode.OUTLET_PRESSURE) {\r\n $('#selectMode').val('Outlet Pressure');\r\n $('#outlet-pressure').show();\r\n } else if (this.unitOperation.pressureCalculationMode === PressureCalculationMode.LOWEST) {\r\n $('#selectMode').val('Lowest');\r\n $('#outlet-pressure').hide();\r\n }\r\n }\r\n\r\n pressureCalculationModeChanged(calculationValue) {\r\n if (calculationValue === PressureCalculationMode.OUTLET_PRESSURE) {\r\n this.unitOperation.pressureCalculationMode = PressureCalculationMode.OUTLET_PRESSURE;\r\n $('#outlet-pressure').show();\r\n } else if (calculationValue === PressureCalculationMode.LOWEST) {\r\n this.unitOperation.pressureCalculationMode = PressureCalculationMode.LOWEST;\r\n $('#outlet-pressure').hide();\r\n }\r\n }\r\n}\r\n","<ul class=\"nav nav-tabs\" role=\"tablist\" style=\"margin-right: 15px; margin-top: 20px\">\r\n <li role=\"presentation\" class=\"active\">\r\n <a href=\"#blockSpecifications\" aria-controls=\"blockSpecifications\" role=\"tab\" data-toggle=\"tab\">Model</a>\r\n </li>\r\n\r\n <li role=\"presentation\">\r\n <a href=\"#waterMixerComments\" aria-controls=\"waterMixerComments\" role=\"tab\" data-toggle=\"tab\">\r\n <i class=\"fa fa-comments fa-lg\" aria-hidden=\"true\"> </i>\r\n Comments\r\n </a>\r\n </li>\r\n</ul>\r\n\r\n<div class=\"tab-content pw-margin tab-content-padding\">\r\n <div role=\"tabpanel\" class=\"tab-pane fade in active\" id=\"blockSpecifications\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <div class=\"form-horizontal\">\r\n <h4 class=\"subtitle\">Inputs</h4>\r\n <hr />\r\n <br />\r\n\r\n <div class=\"form-group\">\r\n <label for=\"pressureCalculationMode\" class=\"pw-label control-label col-sm-4\">\r\n Pressure Calculation Mode\r\n </label>\r\n <div class=\"col-sm-8\" id=\"pressureCalculationMode\">\r\n <select id=\"selectMode\" (change)=\"pressureCalculationModeChanged($event.target.value)\" class=\"form-control\">\r\n <option value=\"Lowest\">Lowest</option>\r\n <option value=\"Outlet Pressure\">Outlet Pressure</option>\r\n </select>\r\n </div>\r\n </div>\r\n\r\n <ng-container>\r\n <div class=\"form-group\" id=\"outlet-pressure\">\r\n <label [attr.for]=\"'outletPressure'\" class=\"pw-label control-label col-sm-4\"> Outlet Pressure </label>\r\n <sim-var-input [inputId]=\"'outletPressure'\" [simVar]=\"unitOperation.outletPressure\"></sim-var-input>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"waterMixerComments\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <sob-unit-operation-comments [unitOpId]=\"this.unitOperation.id\"></sob-unit-operation-comments>\r\n </div>\r\n </div>\r\n</div>\r\n","<ul class=\"nav nav-tabs\" role=\"tablist\" style=\"margin-right: 15px\">\r\n <li role=\"presentation\" class=\"active\">\r\n <a href=\"#blockSpecifications\" aria-controls=\"blockSpecifications\" role=\"tab\" data-toggle=\"tab\">Model</a>\r\n </li>\r\n\r\n <li role=\"presentation\">\r\n <a href=\"#waterSplitterComments\" aria-controls=\"waterSplitterComments\" role=\"tab\" data-toggle=\"tab\">\r\n <i class=\"fa fa-comments fa-lg {{ this.unitOperation.comments ? 'gentle-hover-shake' : '' }}\" aria-hidden=\"true\">\r\n </i>\r\n Comments\r\n </a>\r\n </li>\r\n</ul>\r\n\r\n<div class=\"tab-content pw-margin tab-content-padding\" [formGroup]=\"propertyWindowFormGroup\">\r\n <div role=\"tabpanel\" class=\"tab-pane fade in active\" id=\"blockSpecifications\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <div class=\"form-horizontal\">\r\n <div class=\"form-group m-b-md\">\r\n <label for=\"isOptimizable\" class=\"control-label col-sm-4\"> Optimize </label>\r\n\r\n <div class=\"col-sm-4\">\r\n <label for=\"isOptimizable\" class=\"control-label\">\r\n <input\r\n type=\"checkbox\"\r\n id=\"isOptimizable\"\r\n formControlName=\"isOptimizable\"\r\n (change)=\"isOptimizableChanged($event.target.checked)\" />\r\n </label>\r\n </div>\r\n </div>\r\n\r\n <label class=\"control-label col-sm-4\"> Stream Name </label>\r\n\r\n <label class=\"control-label col-sm-6\"> Distribution Ratio </label>\r\n\r\n <br />\r\n <br />\r\n <br />\r\n\r\n <div\r\n class=\"form-group\"\r\n formArrayName=\"distributionRatioVariables\"\r\n *ngFor=\"let dv of distributionRatioVariablesFormArray.controls; let i = index\">\r\n <label for=\"distributionRatio{{ i }}\" class=\"pw-label control-label col-sm-4\">\r\n {{ findDistributionRatioName(i) }}\r\n </label>\r\n\r\n <div class=\"col-sm-8\" formGroupName=\"{{ i }}\">\r\n <input\r\n type=\"text\"\r\n class=\"form-control\"\r\n id=\"distributionRatio{{ i }}\"\r\n formControlName=\"value\"\r\n (change)=\"roundDistributionVariable(i)\"\r\n [readonly]=\"i === distributionRatioVariablesFormArray.controls.length - 1\" />\r\n <span class=\"text-danger\" *ngIf=\"shouldShowValidationError(getDistributionRatioVariableValueControl(i))\">\r\n <span *ngIf=\"getDistributionRatioVariableValueControl(i).errors?.required\">Please enter a value</span>\r\n <span *ngIf=\"getDistributionRatioVariableValueControl(i).errors?.max\"\r\n >Distribution ratio cannot be greater than 1</span\r\n >\r\n <span *ngIf=\"getDistributionRatioVariableValueControl(i).errors?.min\"\r\n >Distribution ratio cannot be negative</span\r\n >\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"waterSplitterComments\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <sob-unit-operation-comments [unitOpId]=\"this.unitOperation.id\"></sob-unit-operation-comments>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\r\nimport { AbstractControl, UntypedFormArray, UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms';\r\nimport { SubSink } from 'subsink';\r\nimport { WaterSplitter } from '../../../_models/_unit-operations/utilties/water-splitter';\r\nimport { AbstractFormGroupPropertyWindow } from '../abstract-form-group-property-window';\r\nimport { hasNumericValue, roundNumber } from '../../../_utils/utils';\r\nimport { DistributionRatioVariable } from '../../../_models/_unit-operations/distribution-ratio-variable';\r\nimport { CoreService } from '../../../_services/core.service';\r\nimport { BaseObjectFormGroupWrapper } from '../../../_form-utils/base-object-form-group-wrapper';\r\n\r\ndeclare let unitConverter: any;\r\n\r\n@Component({\r\n selector: 'sob-water-splitter',\r\n templateUrl: './water-splitter.component.html',\r\n styleUrls: ['./water-splitter.component.css'],\r\n})\r\nexport class WaterSplitterComponent extends AbstractFormGroupPropertyWindow implements OnInit, OnDestroy {\r\n @Input() override formGroupWrapper: BaseObjectFormGroupWrapper;\r\n @Input() unitOperation: WaterSplitter;\r\n\r\n private subSink = new SubSink();\r\n\r\n constructor(private fb: UntypedFormBuilder, private coreService: CoreService) {\r\n super();\r\n\r\n this.subSink.add(\r\n this.coreService.unitOperationRemovedRequest.subscribe(uo => {\r\n this.removeDistributionRatioVariable(uo.id);\r\n })\r\n );\r\n\r\n this.subSink.add(\r\n this.coreService.streamRemovedRequest.subscribe(s => {\r\n if (s.inletUnitOperationId === this.unitOperation.id) {\r\n this.removeDistributionRatioVariable(s.outletUnitOperationId);\r\n }\r\n })\r\n );\r\n\r\n this.subSink.add(\r\n this.coreService.streamAddedRequest.subscribe(s => {\r\n if (s.inletUnitOperationId === this.unitOperation.id) {\r\n this.addDistributionRatioVariable(s.outletUnitOperationId);\r\n }\r\n })\r\n );\r\n }\r\n\r\n ngOnInit(): void {\r\n this.init();\r\n\r\n this.distributionRatioVariablesFormArray.valueChanges.forEach(() => {\r\n this.calculateLastDistributionVariable();\r\n });\r\n\r\n // eslint-disable-next-line guard-for-in\r\n for (const i in this.distributionRatioVariablesFormArray.controls) {\r\n this.roundDistributionVariable(+i);\r\n }\r\n }\r\n\r\n // region form building\r\n addControls() {\r\n this.propertyWindowFormGroup.addControl('name', this.fb.control(this.unitOperation.name));\r\n this.propertyWindowFormGroup.addControl('isOptimizable', this.fb.control(this.unitOperation.isOptimizable));\r\n this.propertyWindowFormGroup.addControl(\r\n 'distributionRatioVariables',\r\n this.fb.array(this.createDistributionRatioVariablesControls())\r\n );\r\n this.isOptimizableChanged(this.unitOperation.isOptimizable);\r\n }\r\n\r\n private createDistributionRatioVariablesControls(): UntypedFormGroup[] {\r\n return this.unitOperation.distributionRatioVariables.map(dv => {\r\n return this.createSingleDistributionRatioVariableControl(dv);\r\n });\r\n }\r\n\r\n protected createSingleDistributionRatioVariableControl(dv: DistributionRatioVariable) {\r\n const roundedValue = hasNumericValue(dv.value) ? roundNumber(+dv.value, 3) : undefined;\r\n\r\n const valueControl = this.fb.control(roundedValue, [Validators.required, Validators.max(1), Validators.min(0)]);\r\n\r\n return this.fb.group({\r\n value: valueControl,\r\n });\r\n }\r\n // endregion\r\n\r\n // region adding/removing distribution ratio variables when property window is open\r\n private addDistributionRatioVariable(unitOperationId: string) {\r\n this.unitOperation.addDistributionVariable(unitOperationId);\r\n\r\n const dv = this.unitOperation.distributionRatioVariables[this.unitOperation.distributionRatioVariables.length - 1];\r\n const dvControl = this.createSingleDistributionRatioVariableControl(dv);\r\n this.distributionRatioVariablesFormArray.push(dvControl);\r\n }\r\n\r\n /**\r\n * Removes a distribution ratio variable\r\n * Makes sense when a stream is deleted\r\n * @param unitOperationId\r\n * @private\r\n */\r\n private removeDistributionRatioVariable(unitOperationId: string) {\r\n const index = this.unitOperation.findDistributionRatioVariableIndex(unitOperationId);\r\n if (index === -1) {\r\n return;\r\n }\r\n\r\n this.distributionRatioVariablesFormArray.removeAt(index);\r\n this.unitOperation.removeDistributionRatioVariable(unitOperationId);\r\n }\r\n // endregion\r\n\r\n // region form getters\r\n get distributionRatioVariablesFormArray() {\r\n return this.propertyWindowFormGroup.get('distributionRatioVariables') as UntypedFormArray;\r\n }\r\n\r\n getDistributionRatioVariableValueControl(i: number): AbstractControl {\r\n return this.distributionRatioVariablesFormArray.get(`${i}`).get('value');\r\n }\r\n\r\n // endregion\r\n\r\n // region event listeners\r\n isOptimizableChanged(checked: boolean) {\r\n if (checked) {\r\n this.distributionRatioVariablesFormArray.disable();\r\n } else {\r\n this.distributionRatioVariablesFormArray.enable();\r\n }\r\n }\r\n // endregion\r\n\r\n findDistributionRatioName(index: number): string {\r\n if (this.unitOperation) {\r\n return this.unitOperation.findDistributionRatioVariableName(index);\r\n }\r\n return '';\r\n }\r\n\r\n calculateLastDistributionVariable() {\r\n const { controls } = this.distributionRatioVariablesFormArray;\r\n if (controls.length <= 1) {\r\n return;\r\n }\r\n\r\n let total = 0;\r\n\r\n for (let i = 0; i < controls.length - 1; i++) {\r\n const dv = controls[i];\r\n const dvParsed = unitConverter.parseFloatString(dv.get('value').value);\r\n\r\n if (!Number.isNaN(dvParsed)) {\r\n total += dvParsed;\r\n } else {\r\n return;\r\n }\r\n }\r\n\r\n controls[controls.length - 1].get('value').setValue(parseFloat((1 - total).toFixed(5)), {\r\n emitEvent: false,\r\n emitModelToViewChange: true,\r\n emitViewToModelChange: true,\r\n });\r\n controls[controls.length - 1].get('value').markAsDirty();\r\n }\r\n\r\n roundDistributionVariable(i: number) {\r\n const dv = this.distributionRatioVariablesFormArray.controls[i];\r\n const dvParsed = unitConverter.parseFloatString(dv.get('value').value);\r\n\r\n if (!Number.isNaN(dvParsed)) {\r\n dv.get('value').setValue(parseFloat(dvParsed.toFixed(3)));\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subSink.unsubscribe();\r\n }\r\n}\r\n","import { Component, Input } from '@angular/core';\r\nimport { WaterSink } from '../../../_models/_unit-operations/utilties/water-sink';\r\n\r\n@Component({\r\n selector: 'sob-water-sink',\r\n templateUrl: './water-sink.component.html',\r\n styleUrls: ['./water-sink.component.css'],\r\n})\r\nexport class WaterSinkComponent {\r\n @Input()\r\n unitOperation: WaterSink;\r\n}\r\n","<ul class=\"nav nav-tabs\" role=\"tablist\" style=\"margin-right: 15px; margin-top: 20px\">\r\n <li role=\"presentation\" class=\"active\">\r\n <a href=\"#blockSpecifications\" aria-controls=\"blockSpecifications\" role=\"tab\" data-toggle=\"tab\">Model</a>\r\n </li>\r\n\r\n <li role=\"presentation\">\r\n <a href=\"#constraints\" aria-controls=\"constraints\" role=\"tab\" data-toggle=\"tab\"> Constraints </a>\r\n </li>\r\n\r\n <li role=\"presentation\">\r\n <a href=\"#waterSinkComments\" aria-controls=\"waterSinkComments\" role=\"tab\" data-toggle=\"tab\">\r\n <i class=\"fa fa-comments fa-lg\" aria-hidden=\"true\"> </i>\r\n Comments\r\n </a>\r\n </li>\r\n</ul>\r\n\r\n<div class=\"tab-content pw-margin tab-content-padding\">\r\n <div role=\"tabpanel\" class=\"tab-pane fade in active\" id=\"blockSpecifications\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <div class=\"form-horizontal\">\r\n <h4 class=\"subtitle\">Conditions</h4>\r\n <hr />\r\n <br />\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'massFlowrate'\" class=\"pw-label control-label col-sm-4\"> Mass Flowrate </label>\r\n <sim-var-input [inputId]=\"'massFlowrate'\" [readOnly]=\"true\" [simVar]=\"unitOperation.massFlowrate\">\r\n </sim-var-input>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'temperature'\" class=\"pw-label control-label col-sm-4\"> Temperature </label>\r\n <sim-var-input [inputId]=\"'temperature'\" [readOnly]=\"true\" [simVar]=\"unitOperation.temperature\">\r\n </sim-var-input>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'pressure'\" class=\"pw-label control-label col-sm-4\"> Pressure </label>\r\n <sim-var-input [inputId]=\"'pressure'\" [readOnly]=\"true\" [simVar]=\"unitOperation.pressure\"></sim-var-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"constraints\">\r\n <p style=\"text-align: right; position: relative\">\r\n <span style=\"position: absolute; right: -25px; top: -20px; font-weight: bold\">Active</span>\r\n </p>\r\n <div class=\"form-horizontal\">\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'minimumMassFlowrate'\" class=\"pw-label control-label col-sm-4\">\r\n Minimum Mass Flowrate\r\n </label>\r\n <sim-var-input\r\n [inputId]=\"'minimumMassFlowrate'\"\r\n [isConstraint]=\"true\"\r\n [simVar]=\"unitOperation.minimumMassFlowrate\">\r\n </sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'capacity'\" class=\"pw-label control-label col-sm-4\"> Maximum Mass Flowrate </label>\r\n <sim-var-input [inputId]=\"'capacity'\" [isConstraint]=\"true\" [simVar]=\"unitOperation.maximumMassFlowrate\">\r\n </sim-var-input>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"waterSinkComments\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <sob-unit-operation-comments [unitOpId]=\"this.unitOperation.id\"></sob-unit-operation-comments>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, Input } from '@angular/core';\r\nimport { FluidCoker } from '../../../_models/_unit-operations/fluid-coker';\r\nimport { DefaultCodeProvider } from '../../../_services/custom-code-providers/default-code-provider';\r\nimport { FlowsheetService } from '../../../_services/flowsheet.service';\r\n\r\n@Component({\r\n selector: 'sob-fluid-coker',\r\n templateUrl: './fluid-coker.component.html',\r\n styleUrls: ['./fluid-coker.component.css'],\r\n})\r\nexport class FluidCokerComponent {\r\n @Input() unitOperation: FluidCoker;\r\n defaultCodeProvider: DefaultCodeProvider;\r\n readonly codeEditorInstanceId = 'fluidCokerCodeEditor';\r\n\r\n constructor(private flowsheetService: FlowsheetService) {\r\n this.defaultCodeProvider = new DefaultCodeProvider('');\r\n }\r\n\r\n useDataDrivenYieldModelChanged(target: EventTarget) {\r\n if ((target as HTMLInputElement).checked) {\r\n this.unitOperation.naphthaYield.value = undefined;\r\n this.unitOperation.gasOilYield.value = undefined;\r\n }\r\n }\r\n\r\n saveCustomModel(res) {\r\n if (res.instanceId === this.codeEditorInstanceId) {\r\n this.unitOperation.modelScript = res.code;\r\n this.flowsheetService.saveCustomCodeChanges();\r\n }\r\n }\r\n}\r\n","<ul class=\"nav nav-tabs\" role=\"tablist\" style=\"margin-right: 15px\">\r\n <li role=\"presentation\" class=\"active\">\r\n <a href=\"#blockSpecifications\" aria-controls=\"blockSpecifications\" role=\"tab\" data-toggle=\"tab\">General</a>\r\n </li>\r\n <li role=\"presentation\">\r\n <a href=\"#utilities\" aria-controls=\"utilities\" role=\"tab\" data-toggle=\"tab\">Utilities</a>\r\n </li>\r\n <li role=\"presentation\">\r\n <a href=\"#economics\" aria-controls=\"economics\" role=\"tab\" data-toggle=\"tab\">Economics</a>\r\n </li>\r\n <li role=\"presentation\">\r\n <a href=\"#constraints\" aria-controls=\"constraints\" role=\"tab\" data-toggle=\"tab\"> Constraints </a>\r\n </li>\r\n <li role=\"presentation\">\r\n <a href=\"#upgCustomModels\" aria-controls=\"upgCustomModels\" role=\"tab\" data-toggle=\"tab\"> Custom Models </a>\r\n </li>\r\n\r\n <li role=\"presentation\">\r\n <a href=\"#fluidCokerComments\" aria-controls=\"fluidCokerComments\" role=\"tab\" data-toggle=\"tab\">\r\n <i class=\"fa fa-comments fa-lg\" aria-hidden=\"true\"> </i>\r\n Comments\r\n </a>\r\n </li>\r\n</ul>\r\n\r\n<div class=\"tab-content pw-margin tab-content-padding\">\r\n <div role=\"tabpanel\" class=\"tab-pane fade in active\" id=\"blockSpecifications\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <div class=\"form-horizontal\">\r\n <div class=\"form-group\">\r\n <label for=\"useDataDrivenYieldModel\" class=\"control-label col-sm-4\"> Use Data Driven Yield Model </label>\r\n <div class=\"col-sm-4\">\r\n <label class=\"control-label\">\r\n <input\r\n type=\"checkbox\"\r\n id=\"useDataDrivenYieldModel\"\r\n [(ngModel)]=\"unitOperation.useDataDrivenYieldModel\"\r\n (change)=\"useDataDrivenYieldModelChanged($event.target)\" />\r\n </label>\r\n </div>\r\n\r\n <div class=\"clearfix\"></div>\r\n </div>\r\n\r\n <!-- <div class=\"form-group\">\r\n <label [attr.for]=\"'butaneRecovery'\" class=\"pw-label control-label col-sm-4\">\r\n Butane Recovery\r\n </label>\r\n <sim-var-input [inputId]=\"'butaneRecovery'\" [simVar]=\"unitOperation.butaneRecovery\"></sim-var-input>\r\n </div> -->\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'totalInletVolume'\" class=\"pw-label control-label col-sm-4\"> Total Inlet Volume </label>\r\n <sim-var-input [inputId]=\"'totalInletVolume'\" [simVar]=\"unitOperation.totalInletVolume\" [readOnly]=\"true\">\r\n </sim-var-input>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'feedDensity'\" class=\"pw-label control-label col-sm-4\"> Feed Density </label>\r\n <sim-var-input [inputId]=\"'feedDensity'\" [simVar]=\"unitOperation.feedDensity\" [readOnly]=\"true\">\r\n </sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'naphthaYield'\" class=\"pw-label control-label col-sm-4\"> Naphtha Yield </label>\r\n <sim-var-input\r\n [inputId]=\"'naphthaYield'\"\r\n [simVar]=\"unitOperation.naphthaYield\"\r\n [readOnly]=\"unitOperation.useDataDrivenYieldModel\"></sim-var-input>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'gasOilYield'\" class=\"pw-label control-label col-sm-4\"> Gas Oil Yield </label>\r\n <sim-var-input\r\n [inputId]=\"'gasOilYield'\"\r\n [simVar]=\"unitOperation.gasOilYield\"\r\n [readOnly]=\"unitOperation.useDataDrivenYieldModel\"></sim-var-input>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'producedCoke'\" class=\"pw-label control-label col-sm-4\"> Produced Coke </label>\r\n <sim-var-input [inputId]=\"'producedCoke'\" [simVar]=\"unitOperation.producedCoke\" [readOnly]=\"true\">\r\n </sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'producedFuelGas'\" class=\"pw-label control-label col-sm-4\"> Produced Fuel Gas </label>\r\n <sim-var-input [inputId]=\"'producedFuelGas'\" [simVar]=\"unitOperation.producedFuelGas\" [readOnly]=\"true\">\r\n </sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'producedFuelGasRate'\" class=\"pw-label control-label col-sm-4\">\r\n Produced Fuel Gas Rate\r\n </label>\r\n <sim-var-input\r\n [inputId]=\"'producedFuelGasRate'\"\r\n [simVar]=\"unitOperation.producedFuelGasRate\"\r\n [readOnly]=\"true\">\r\n </sim-var-input>\r\n </div>\r\n <hr />\r\n <h4 class=\"subtitle\">GHG</h4>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'ghgIntensity'\" class=\"pw-label control-label col-sm-4\"> GHG Intensity </label>\r\n <sim-var-input [inputId]=\"'ghgIntensity'\" [simVar]=\"unitOperation.ghgIntensity\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'percentCokeToCombustion'\" class=\"pw-label control-label col-sm-4\">\r\n Coke to Combustion\r\n </label>\r\n <sim-var-input [inputId]=\"'percentCokeToCombustion'\" [simVar]=\"unitOperation.percentCokeToCombustion\">\r\n </sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'cokeEmissionFactor'\" class=\"pw-label control-label col-sm-4\">\r\n Coke Emission Factor\r\n </label>\r\n <sim-var-input [inputId]=\"'cokeEmissionFactor'\" [simVar]=\"unitOperation.cokeEmissionFactor\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'ghgEmissions'\" class=\"pw-label control-label col-sm-4\"> GHG Emissions </label>\r\n <sim-var-input [inputId]=\"'ghgEmissions'\" [simVar]=\"unitOperation.ghgEmissions\" [readOnly]=\"true\">\r\n </sim-var-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"utilities\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <div class=\"form-horizontal\">\r\n <h4 class=\"subtitle\">Amine</h4>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'h2sProductionRate'\" class=\"pw-label control-label col-sm-4\"> H2S Production Rate </label>\r\n <sim-var-input [inputId]=\"'h2sProductionRate'\" [simVar]=\"unitOperation.h2sProductionRate\"></sim-var-input>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'h2sProduction'\" class=\"pw-label control-label col-sm-4\"> H2S Production </label>\r\n <sim-var-input [inputId]=\"'h2sProduction'\" [readOnly]=\"true\" [simVar]=\"unitOperation.h2sProduction\">\r\n </sim-var-input>\r\n </div>\r\n\r\n <sob-steam-use-utility [unitOperation]=\"unitOperation\"></sob-steam-use-utility>\r\n <sob-gas-contributor [unitOperation]=\"unitOperation\"></sob-gas-contributor>\r\n </div>\r\n </div>\r\n </div>\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"economics\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <div class=\"form-horizontal\">\r\n <h4 class=\"subtitle\">OPEX</h4>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'opexVar'\" class=\"pw-label control-label col-sm-4\"> Variable </label>\r\n <sim-var-input [inputId]=\"'opexVar'\" [simVar]=\"unitOperation.opexVar\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'opexGasDiesel'\" class=\"pw-label control-label col-sm-4\"> Gas Diesel </label>\r\n <sim-var-input [inputId]=\"'opexGasDiesel'\" [simVar]=\"unitOperation.opexGasDiesel\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'opexPower'\" class=\"pw-label control-label col-sm-4\"> Power </label>\r\n <sim-var-input [inputId]=\"'opexPower'\" [simVar]=\"unitOperation.opexPower\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'opexCarbonDioxide'\" class=\"pw-label control-label col-sm-4\"> CO2 </label>\r\n <sim-var-input [inputId]=\"'opexCarbonDioxide'\" [simVar]=\"unitOperation.opexCarbonDioxide\" [readOnly]=\"true\">\r\n </sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'opexFixed'\" class=\"pw-label control-label col-sm-4\"> Fixed </label>\r\n <sim-var-input [inputId]=\"'opexFixed'\" [simVar]=\"unitOperation.opexFixed\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'opexTotal'\" class=\"pw-label control-label col-sm-4\"> Total </label>\r\n <sim-var-input [inputId]=\"'opexTotal'\" [simVar]=\"unitOperation.opexTotal\" [readOnly]=\"true\"></sim-var-input>\r\n </div>\r\n\r\n <hr />\r\n <h4 class=\"subtitle\">CAPEX</h4>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'capexAmortized'\" class=\"pw-label control-label col-sm-4\"> Amortized CAPEX </label>\r\n <sim-var-input [inputId]=\"'capexAmortized'\" [simVar]=\"unitOperation.capexAmortized\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'capexTotal'\" class=\"pw-label control-label col-sm-4\"> Total </label>\r\n <sim-var-input [inputId]=\"'capexTotal'\" [simVar]=\"unitOperation.capexTotal\" [readOnly]=\"true\"></sim-var-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"constraints\">\r\n <p style=\"text-align: right; position: relative\">\r\n <span style=\"position: absolute; right: -25px; top: -20px; font-weight: bold\">Active</span>\r\n </p>\r\n <div class=\"form-horizontal\">\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'capacity'\" class=\"pw-label control-label col-sm-4\"> Maximum Feed Capacity </label>\r\n <sim-var-input [inputId]=\"'capacity'\" [isConstraint]=\"true\" [simVar]=\"unitOperation.capacity\"> </sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'minimumFlow'\" class=\"pw-label control-label col-sm-4\"> Minimum Flow </label>\r\n <sim-var-input [inputId]=\"'minimumFlow'\" [isConstraint]=\"true\" [simVar]=\"unitOperation.minimumFlow\">\r\n </sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'minimumApi'\" class=\"pw-label control-label col-sm-4\"> Minimum API </label>\r\n <sim-var-input [inputId]=\"'minimumApi'\" [isConstraint]=\"true\" [simVar]=\"unitOperation.minimumApi\">\r\n </sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'maximumCcr'\" class=\"pw-label control-label col-sm-4\"> Maximum CCR </label>\r\n <sim-var-input [inputId]=\"'maximumCcr'\" [isConstraint]=\"true\" [simVar]=\"unitOperation.maximumCcr\">\r\n </sim-var-input>\r\n </div>\r\n </div>\r\n </div>\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"upgCustomModels\">\r\n <div class=\"form-group\">\r\n <label for=\"customModelEnabled\" class=\"control-label col-sm-4\"> Enable Custom Models </label>\r\n <div class=\"col-sm-4\">\r\n <label class=\"control-label\">\r\n <input type=\"checkbox\" id=\"customModelEnabled\" [(ngModel)]=\"unitOperation.useCustomModel\" />\r\n </label>\r\n </div>\r\n\r\n <div class=\"clearfix\"></div>\r\n </div>\r\n\r\n <div>\r\n <sob-open-code-editor-button\r\n [code]=\"unitOperation.modelScript\"\r\n [defaultCodeProvider]=\"defaultCodeProvider\"\r\n [instanceId]=\"codeEditorInstanceId\"\r\n [disabled]=\"!unitOperation.useCustomModel\"\r\n (codeSaved)=\"saveCustomModel($event)\"></sob-open-code-editor-button>\r\n </div>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"fluidCokerComments\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <sob-unit-operation-comments [unitOpId]=\"this.unitOperation.id\"></sob-unit-operation-comments>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, Input } from '@angular/core';\r\nimport { HydrogenPlant } from '../../../_models/_unit-operations/hydrogen-plant';\r\n\r\n@Component({\r\n selector: 'sob-hydrogen-plant',\r\n templateUrl: './hydrogen-plant.component.html',\r\n styleUrls: ['./hydrogen-plant.component.css'],\r\n})\r\nexport class HydrogenPlantComponent {\r\n @Input() unitOperation: HydrogenPlant;\r\n}\r\n","<ul class=\"nav nav-tabs\" role=\"tablist\" style=\"margin-right: 15px\">\r\n <li role=\"presentation\" class=\"active\">\r\n <a href=\"#blockSpecifications\" aria-controls=\"blockSpecifications\" role=\"tab\" data-toggle=\"tab\">General</a>\r\n </li>\r\n <li role=\"presentation\">\r\n <a href=\"#economics\" aria-controls=\"economics\" role=\"tab\" data-toggle=\"tab\">Economics</a>\r\n </li>\r\n\r\n <li role=\"presentation\">\r\n <a href=\"#hydrogenPlantComments\" aria-controls=\"hydrogenPlantComments\" role=\"tab\" data-toggle=\"tab\">\r\n <i class=\"fa fa-comments fa-lg\" aria-hidden=\"true\"> </i>\r\n Comments\r\n </a>\r\n </li>\r\n</ul>\r\n\r\n<div class=\"tab-content pw-margin tab-content-padding\">\r\n <div role=\"tabpanel\" class=\"tab-pane fade in active\" id=\"blockSpecifications\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <div class=\"form-horizontal\">\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'hydrogenProduction'\" class=\"pw-label control-label col-sm-4\"> Hydrogen Production </label>\r\n <sim-var-input [inputId]=\"'hydrogenProduction'\" [simVar]=\"unitOperation.hydrogenProduction\" [readOnly]=\"true\">\r\n </sim-var-input>\r\n </div>\r\n <hr />\r\n <h4 class=\"subtitle\">Constraints</h4>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'maximumHydrogenProduction'\" class=\"pw-label control-label col-sm-4\">\r\n Maximum Hydrogen Production\r\n </label>\r\n <sim-var-input [inputId]=\"'maximumHydrogenProduction'\" [simVar]=\"unitOperation.maximumHydrogenProduction\">\r\n </sim-var-input>\r\n </div>\r\n <hr />\r\n <h4 class=\"subtitle\">GHG</h4>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'hydrogenGHGIntensity'\" class=\"pw-label control-label col-sm-4\">\r\n Process GHG Intensity (Reaction)\r\n </label>\r\n <sim-var-input [inputId]=\"'hydrogenGHGIntensity'\" [simVar]=\"unitOperation.hydrogenGHGIntensity\">\r\n </sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'ghgEmissions'\" class=\"pw-label control-label col-sm-4\"> GHG Emissions </label>\r\n <sim-var-input [inputId]=\"'ghgEmissions'\" [simVar]=\"unitOperation.ghgEmissions\" [readOnly]=\"true\">\r\n </sim-var-input>\r\n </div>\r\n </div>\r\n <hr />\r\n <h4 class=\"subtitle\">Utilities</h4>\r\n <div class=\"form-horizontal\">\r\n <sob-steam-use-utility [unitOperation]=\"unitOperation\"></sob-steam-use-utility>\r\n <sob-gas-contributor [unitOperation]=\"unitOperation\"></sob-gas-contributor>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"economics\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <div class=\"form-horizontal\">\r\n <h4 class=\"subtitle\">OPEX</h4>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'opexVar'\" class=\"pw-label control-label col-sm-4\"> Variable </label>\r\n <sim-var-input [inputId]=\"'opexVar'\" [simVar]=\"unitOperation.opexVar\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'opexGasDiesel'\" class=\"pw-label control-label col-sm-4\"> Gas Diesel </label>\r\n <sim-var-input [inputId]=\"'opexGasDiesel'\" [simVar]=\"unitOperation.opexGasDiesel\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'opexPower'\" class=\"pw-label control-label col-sm-4\"> Power </label>\r\n <sim-var-input [inputId]=\"'opexPower'\" [simVar]=\"unitOperation.opexPower\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'opexCarbonDioxide'\" class=\"pw-label control-label col-sm-4\"> CO2 </label>\r\n <sim-var-input [inputId]=\"'opexCarbonDioxide'\" [simVar]=\"unitOperation.opexCarbonDioxide\" [readOnly]=\"true\">\r\n </sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'opexFixed'\" class=\"pw-label control-label col-sm-4\"> Fixed </label>\r\n <sim-var-input [inputId]=\"'opexFixed'\" [simVar]=\"unitOperation.opexFixed\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'opexTotal'\" class=\"pw-label control-label col-sm-4\"> Total </label>\r\n <sim-var-input [inputId]=\"'opexTotal'\" [simVar]=\"unitOperation.opexTotal\" [readOnly]=\"true\"></sim-var-input>\r\n </div>\r\n\r\n <hr />\r\n <h4 class=\"subtitle\">CAPEX</h4>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'capexAmortized'\" class=\"pw-label control-label col-sm-4\"> Amortized CAPEX </label>\r\n <sim-var-input [inputId]=\"'capexAmortized'\" [simVar]=\"unitOperation.capexAmortized\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'capexTotal'\" class=\"pw-label control-label col-sm-4\"> Total </label>\r\n <sim-var-input [inputId]=\"'capexTotal'\" [simVar]=\"unitOperation.capexTotal\" [readOnly]=\"true\"></sim-var-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"hydrogenPlantComments\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <sob-unit-operation-comments [unitOpId]=\"this.unitOperation.id\"></sob-unit-operation-comments>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Injectable } from '@angular/core';\r\nimport { SuncorFluidAnalysis } from '../../_models/_fluid/suncor-fluid-analysis';\r\nimport { UnitOperation } from '../../_models';\r\n\r\n@Injectable()\r\nexport class AssaySelectorHelper {\r\n private currentAnalysis: SuncorFluidAnalysis;\r\n private unitOperation: UnitOperation;\r\n\r\n setUnitOperation(unitOperation: UnitOperation) {\r\n this.unitOperation = unitOperation;\r\n }\r\n\r\n setCurrentAnalysis(currentAnalysis: SuncorFluidAnalysis) {\r\n this.currentAnalysis = currentAnalysis;\r\n }\r\n\r\n assayChanged() {\r\n const cuts = [\r\n 'lightEndsCut',\r\n 'lightNaphthaCut',\r\n 'heavyNaphthaCut',\r\n 'distillateCut',\r\n 'LGOCut',\r\n 'HGOCut',\r\n 'VGOCut',\r\n 'HVGOCut',\r\n 'residCut',\r\n ];\r\n const simVarNames = ['sulfur', 'anilinePoint', 'massDensity', 'nitrogen', 'ccr'];\r\n for (const cutId of cuts) {\r\n for (const simvarName of simVarNames) {\r\n const simVar = this.currentAnalysis[cutId][simvarName];\r\n const $field = `#${cutId}${simvarName}`;\r\n $($field).val(simVar.convertToCaptureUnit(true));\r\n $(`${$field}Unit`).val(simVar.unit);\r\n $($field).change();\r\n }\r\n }\r\n\r\n $(`#compositionUnit${this.unitOperation.id}`).val(this.currentAnalysis.composition[0].unit);\r\n let total = 0;\r\n for (let i = 0; i < this.currentAnalysis.composition.length; i++) {\r\n const simVar = this.currentAnalysis.composition[i];\r\n total += simVar.convertToCaptureUnit(true);\r\n $(`#composition${i}`).val(simVar.convertToCaptureUnit(true));\r\n }\r\n\r\n $('#compositionTotalUO').val(total);\r\n\r\n $('#fluidAnalysisMassDensity').val(this.currentAnalysis.massDensity.convertToCaptureUnit(true));\r\n $('#fluidAnalysisMassDensityUnit').val(this.currentAnalysis.massDensity.unit);\r\n $('#fluidAnalysisMassDensity').change();\r\n\r\n $('#fluidAnalysisCcr').val(this.currentAnalysis.ccr.convertToCaptureUnit(true));\r\n $('#fluidAnalysisCcrUnit').val(this.currentAnalysis.ccr.unit);\r\n $('#fluidAnalysisCcr').change();\r\n\r\n $('#fluidAnalysisSulfur').val(this.currentAnalysis.sulfur.convertToCaptureUnit(true));\r\n $('#fluidAnalysisSulfurUnit').val(this.currentAnalysis.sulfur.unit);\r\n $('#fluidAnalysisSulfur').change();\r\n\r\n $('#fluidAnalysisNitrogen').val(this.currentAnalysis.nitrogen.convertToCaptureUnit(true));\r\n $('#fluidAnalysisNitrogenUnit').val(this.currentAnalysis.nitrogen.unit);\r\n $('#fluidAnalysisNitrogen').change();\r\n }\r\n}\r\n","export const hgoHydrotreaterCodeCompletions = [\r\n { label: 'HGOYield', type: 'variable', info: '' },\r\n { label: 'LGOYield', type: 'variable', info: '' },\r\n { label: 'NaphthaYield', type: 'variable', info: '' },\r\n { label: 'H2SProductionRate', type: 'variable', info: '' },\r\n { label: 'HydrogenUseRate', type: 'variable', info: '' },\r\n];\r\n","import { Completion } from '@codemirror/autocomplete';\r\nimport { DefaultCodeProvider } from './default-code-provider';\r\nimport { defaultHgoHydrotreaterModel } from '../../_config/unit-operations/default-models/default-hgo-hydrotreater-model';\r\nimport { hgoHydrotreaterCodeCompletions } from '../../_config/unit-operations/custom-code-completions/hgo-hydrotreater-code-completions';\r\n\r\nexport class HgoHydrotreaterCodeProvider extends DefaultCodeProvider {\r\n constructor() {\r\n super(defaultHgoHydrotreaterModel);\r\n }\r\n\r\n override getCodeCompletions(): Completion[] {\r\n return super.getCodeCompletions().concat(hgoHydrotreaterCodeCompletions);\r\n }\r\n}\r\n","<div class=\"form-horizontal\">\r\n <div class=\"form-group\">\r\n <label for=\"typeDD\" class=\"pw-label control-label col-sm-4\"> Assay Name </label>\r\n <div class=\"col-sm-6\">\r\n <sob-assay-selector\r\n [fluidAnalyses]=\"fluidAnalyses\"\r\n [currentAnalysis]=\"currentAnalysis\"\r\n (updateCurrentAssay)=\"updateCurrentAnalysis($event)\">\r\n </sob-assay-selector>\r\n </div>\r\n </div>\r\n</div>\r\n<hr />\r\n\r\n<ul class=\"nav nav-tabs m-r m-t-md\" role=\"tablist\">\r\n <li role=\"presentation\" class=\"active\">\r\n <a href=\"#blockSpecifications\" aria-controls=\"blockSpecifications\" role=\"tab\" data-toggle=\"tab\">General</a>\r\n </li>\r\n <li role=\"presentation\">\r\n <a href=\"#utilities\" aria-controls=\"utilities\" role=\"tab\" data-toggle=\"tab\">Utilities</a>\r\n </li>\r\n\r\n <li *ngIf=\"currentAnalysis\" role=\"presentation\">\r\n <a href=\"#productspecs\" aria-controls=\"productspecs\" role=\"tab\" data-toggle=\"tab\">Product Specifications</a>\r\n </li>\r\n\r\n <li role=\"presentation\">\r\n <a href=\"#constraints\" aria-controls=\"constraints\" role=\"tab\" data-toggle=\"tab\"> Constraints </a>\r\n </li>\r\n\r\n <li role=\"presentation\">\r\n <a href=\"#hgoHydrotreaterComments\" aria-controls=\"hgoHydrotreaterComments\" role=\"tab\" data-toggle=\"tab\">\r\n <i class=\"fa fa-comments fa-lg\" aria-hidden=\"true\"> </i>\r\n Comments\r\n </a>\r\n </li>\r\n</ul>\r\n\r\n<div class=\"tab-content pw-margin tab-content-padding\">\r\n <div role=\"tabpanel\" class=\"tab-pane fade in active\" id=\"blockSpecifications\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <div class=\"form-horizontal\">\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'catalystRun'\" class=\"pw-label control-label col-sm-4\"> Yield Basis </label>\r\n <div class=\"col-sm-6\">\r\n <select class=\"form-control\" [(ngModel)]=\"unitOperation.catalystRun\">\r\n <option value=\"{{ HgoHydroTreaterCatalystRun.EOR }}\">EOR</option>\r\n <option value=\"{{ HgoHydroTreaterCatalystRun.SOR }}\">SOR</option>\r\n </select>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'totalInletVolume'\" class=\"pw-label control-label col-sm-4\"> Total Inlet Volume </label>\r\n <sim-var-input [inputId]=\"'totalInletVolume'\" [simVar]=\"unitOperation.totalInletVolume\" [readOnly]=\"true\">\r\n </sim-var-input>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'naphthaYield'\" class=\"pw-label control-label col-sm-4\"> Naphtha Yield </label>\r\n <sim-var-input\r\n [inputId]=\"'naphthaYield'\"\r\n [simVar]=\"unitOperation.naphthaYield\"\r\n [readOnly]=\"unitOperation.useCustomModel\"></sim-var-input>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'lgoYield'\" class=\"pw-label control-label col-sm-4\"> LGO Yield </label>\r\n <sim-var-input\r\n [inputId]=\"'lgoYield'\"\r\n [simVar]=\"unitOperation.lgoYield\"\r\n [readOnly]=\"unitOperation.useCustomModel\"></sim-var-input>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'hgoYield'\" class=\"pw-label control-label col-sm-4\"> HGO Yield </label>\r\n <sim-var-input\r\n [inputId]=\"'hgoYield'\"\r\n [simVar]=\"unitOperation.hgoYield\"\r\n [readOnly]=\"unitOperation.useCustomModel\"></sim-var-input>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'totalYield'\" class=\"pw-label control-label col-sm-4\"> Total Yield </label>\r\n <sim-var-input [inputId]=\"'totalYield'\" [simVar]=\"unitOperation.totalYield\" [readOnly]=\"true\"></sim-var-input>\r\n </div>\r\n\r\n <hr />\r\n <h4 class=\"subtitle\">GHG</h4>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'ghgIntensity'\" class=\"pw-label control-label col-sm-4\"> GHG Intensity </label>\r\n <sim-var-input [inputId]=\"'ghgIntensity'\" [simVar]=\"unitOperation.ghgIntensity\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'ghgEmissions'\" class=\"pw-label control-label col-sm-4\"> GHG Emissions </label>\r\n <sim-var-input [inputId]=\"'ghgEmissions'\" [simVar]=\"unitOperation.ghgEmissions\" [readOnly]=\"true\">\r\n </sim-var-input>\r\n </div>\r\n\r\n <hr />\r\n\r\n <div class=\"form-group\">\r\n <label for=\"customModelEnabled\" class=\"control-label col-sm-4\"> Custom Model</label>\r\n <div class=\"col-sm-4\">\r\n <label class=\"control-label\">\r\n <input type=\"checkbox\" id=\"customModelEnabled\" [(ngModel)]=\"unitOperation.useCustomModel\" />\r\n </label>\r\n </div>\r\n\r\n <div class=\"clearfix\"></div>\r\n </div>\r\n\r\n <div>\r\n <sob-open-code-editor-button\r\n [code]=\"unitOperation.customModelScript\"\r\n [defaultCodeProvider]=\"defaultCodeProvider\"\r\n [disabled]=\"!unitOperation.useCustomModel\"\r\n [instanceId]=\"'hgoHydrotreaterCodeEditor'\"\r\n (codeSaved)=\"saveCustomModel($event)\">\r\n </sob-open-code-editor-button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"utilities\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <div class=\"form-horizontal\">\r\n <h4 class=\"subtitle\">Hydrogen</h4>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'hydrogenUseRate'\" class=\"pw-label control-label col-sm-4\"> Hydrogen Use Rate </label>\r\n <sim-var-input [inputId]=\"'hydrogenUseRate'\" [simVar]=\"unitOperation.hydrogenUseRate\"> </sim-var-input>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'hydrogenUse'\" class=\"pw-label control-label col-sm-4\"> Hydrogen Use </label>\r\n <sim-var-input [inputId]=\"'hydrogenUse'\" [simVar]=\"unitOperation.hydrogenUse\" [readOnly]=\"true\">\r\n </sim-var-input>\r\n </div>\r\n\r\n <hr />\r\n\r\n <h4 class=\"subtitle\">Amine</h4>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'h2sProductionRate'\" class=\"pw-label control-label col-sm-4\"> H2S Production Rate </label>\r\n <sim-var-input\r\n [inputId]=\"'h2sProductionRate'\"\r\n [simVar]=\"unitOperation.h2sProductionRate\"\r\n [readOnly]=\"true\"></sim-var-input>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'h2sProduction'\" class=\"pw-label control-label col-sm-4\"> H2S Production </label>\r\n <sim-var-input [inputId]=\"'h2sProduction'\" [simVar]=\"unitOperation.h2sProduction\" [readOnly]=\"true\">\r\n </sim-var-input>\r\n </div>\r\n\r\n <sob-steam-use-utility [unitOperation]=\"unitOperation\"></sob-steam-use-utility>\r\n <sob-gas-contributor [unitOperation]=\"unitOperation\"></sob-gas-contributor>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"currentAnalysis\" role=\"tabpanel\" class=\"tab-pane fade in\" id=\"productspecs\">\r\n <ul class=\"nav nav-pills\" role=\"tablist\" style=\"margin-right: 15px\">\r\n <li role=\"presentation\" class=\"active\">\r\n <a href=\"#bulkProperties\" aria-controls=\"bulkProperties\" role=\"tab\" data-toggle=\"tab\">Bulk Properties</a>\r\n </li>\r\n\r\n <li role=\"presentation\">\r\n <a href=\"#cutProperties\" aria-controls=\"cutProperties\" role=\"tab\" data-toggle=\"tab\">Cut Properties</a>\r\n </li>\r\n\r\n <li role=\"presentation\">\r\n <a href=\"#compositionUO\" aria-controls=\"composition\" role=\"tab\" data-toggle=\"tab\">Composition</a>\r\n </li>\r\n </ul>\r\n\r\n <div class=\"tab-content pw-margin tab-content-padding\">\r\n <div role=\"tabpanel\" class=\"tab-pane fade in active\" id=\"bulkProperties\">\r\n <div class=\"form-horizontal\">\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'fluidAnalysisMassDensity'\" class=\"pw-label control-label col-sm-4\">\r\n Mass Density\r\n </label>\r\n <sim-var-input\r\n [inputId]=\"'fluidAnalysisMassDensity'\"\r\n [simVar]=\"currentAnalysis.massDensity\"\r\n [readOnly]=\"true\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'fluidAnalysisCcr'\" class=\"pw-label control-label col-sm-4\"> CCR </label>\r\n <sim-var-input [inputId]=\"'fluidAnalysisCcr'\" [simVar]=\"currentAnalysis.ccr\" [readOnly]=\"true\">\r\n </sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'fluidAnalysisSulfur'\" class=\"pw-label control-label col-sm-4\"> Sulfur </label>\r\n <sim-var-input [inputId]=\"'fluidAnalysisSulfur'\" [simVar]=\"currentAnalysis.sulfur\" [readOnly]=\"true\">\r\n </sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'fluidAnalysisNitrogen'\" class=\"pw-label control-label col-sm-4\"> Nitrogen </label>\r\n <sim-var-input [inputId]=\"'fluidAnalysisNitrogen'\" [simVar]=\"currentAnalysis.nitrogen\" [readOnly]=\"true\">\r\n </sim-var-input>\r\n </div>\r\n </div>\r\n </div>\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"cutProperties\">\r\n <sob-cut-properties [readonly]=\"true\" [fluidAnalysis]=\"currentAnalysis\"></sob-cut-properties>\r\n </div>\r\n <div *ngIf=\"currentAnalysis\" role=\"tabpanel\" class=\"tab-pane fade in\" id=\"compositionUO\">\r\n <div class=\"form-horizontal\" sfeMultipleSimVarInput totalOutputId=\"compositionTotalUO\">\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'compositionUnit'\" class=\"pw-label control-label col-sm-4\"> Unit </label>\r\n\r\n <div class=\"col-sm-4\">\r\n <sfe-unit-select\r\n [selectId]=\"'compositionUnit' + unitOperation.id\"\r\n [simVar]=\"currentAnalysis.composition[0]\"\r\n [disabled]=\"true\"\r\n [elClass]=\"'form-control'\"></sfe-unit-select>\r\n </div>\r\n </div>\r\n\r\n <ng-container *ngFor=\"let idx of currentAnalysis.composition | keys\">\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'composition' + idx\" class=\"pw-label control-label col-sm-4\">\r\n {{ currentAnalysis.composition[idx].name | titleCaseComposition }}\r\n </label>\r\n <div class=\"col-sm-4\">\r\n <sfe-value-input\r\n [simVar]=\"currentAnalysis.composition[idx]\"\r\n [elClass]=\"'form-control'\"\r\n [inputId]=\"'composition' + idx\"\r\n [multiple]=\"true\"\r\n [readOnlyValue]=\"true\"\r\n [disabled]=\"true\"\r\n [convertedBy]=\"'compositionUnit'\">\r\n </sfe-value-input>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <div class=\"form-group\">\r\n <label class=\"pw-label control-label col-sm-4\">Total</label>\r\n <div class=\"col-sm-4\">\r\n <input type=\"text\" class=\"form-control\" id=\"compositionTotalUO\" readonly />\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"constraints\">\r\n <p style=\"text-align: right; position: relative\">\r\n <span style=\"position: absolute; right: -25px; top: -20px; font-weight: bold\">Active</span>\r\n </p>\r\n <div class=\"form-horizontal\">\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'capacity'\" class=\"pw-label control-label col-sm-4\"> Maximum Feed Capacity </label>\r\n <sim-var-input [inputId]=\"'capacity'\" [isConstraint]=\"true\" [simVar]=\"unitOperation.capacity\"> </sim-var-input>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'minimumFlow'\" class=\"pw-label control-label col-sm-4\"> Minimum Flow </label>\r\n <sim-var-input [inputId]=\"'minimumFlow'\" [isConstraint]=\"true\" [simVar]=\"unitOperation.minimumFlow\">\r\n </sim-var-input>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'maximumSulfurContent'\" class=\"pw-label control-label col-sm-4\">\r\n Maximum Sulfur Content\r\n </label>\r\n <sim-var-input\r\n [inputId]=\"'maximumSulfurContent'\"\r\n [isConstraint]=\"true\"\r\n [simVar]=\"unitOperation.maximumSulfurContent\">\r\n </sim-var-input>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'maximumNitrogen'\" class=\"pw-label control-label col-sm-4\"> Maximum Nitrogen </label>\r\n <sim-var-input [inputId]=\"'maximumNitrogen'\" [isConstraint]=\"true\" [simVar]=\"unitOperation.maximumNitrogen\">\r\n </sim-var-input>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"hgoHydrotreaterComments\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <sob-unit-operation-comments [unitOpId]=\"this.unitOperation.id\"></sob-unit-operation-comments>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { HgoHydrotreater } from '../../../_models/_unit-operations/hgo-hydrotreater';\r\nimport { SuncorFluidAnalysis } from '../../../_models/_fluid/suncor-fluid-analysis';\r\nimport { FluidAnalysis } from '../../../_models/_fluid/fluid-analysis';\r\nimport { CoreService } from '../../../_services/core.service';\r\nimport { AssaySelectorHelper } from '../../../_services/property-window/assay-selector.helper';\r\nimport { HgoHydroteaterCatalystRun } from '../../../_config/unit-operations/hgo-hydroteater-catalyst-run.enum';\r\nimport { FlowsheetService } from '../../../_services/flowsheet.service';\r\nimport { HgoHydrotreaterCodeProvider } from '../../../_services/custom-code-providers/hgo-hydrotreater-code-provider';\r\n\r\n@Component({\r\n selector: 'sob-hgo-hydrotreater',\r\n templateUrl: './hgo-hydrotreater.component.html',\r\n styleUrls: ['./hgo-hydrotreater.component.css'],\r\n providers: [AssaySelectorHelper],\r\n})\r\nexport class HgoHydrotreaterComponent implements OnInit {\r\n @Input() unitOperation: HgoHydrotreater;\r\n currentAnalysis: SuncorFluidAnalysis;\r\n HgoHydroTreaterCatalystRun = HgoHydroteaterCatalystRun;\r\n defaultCodeProvider: HgoHydrotreaterCodeProvider;\r\n\r\n constructor(\r\n private coreService: CoreService,\r\n private assaySelectorHelper: AssaySelectorHelper,\r\n private flowsheetService: FlowsheetService\r\n ) {\r\n this.defaultCodeProvider = new HgoHydrotreaterCodeProvider();\r\n }\r\n\r\n ngOnInit() {\r\n this.assaySelectorHelper.setUnitOperation(this.unitOperation);\r\n this.updateCurrentAnalysis();\r\n }\r\n\r\n useDataDrivenYieldModelChanged(target: EventTarget): void {\r\n if ((target as HTMLInputElement).checked) {\r\n this.unitOperation.naphthaYield.value = undefined;\r\n this.unitOperation.lgoYield.value = undefined;\r\n this.unitOperation.hgoYield.value = undefined;\r\n }\r\n }\r\n\r\n updateCurrentAnalysis(id?) {\r\n if (id) {\r\n this.unitOperation.fluidAnalysisId = id;\r\n }\r\n if (this.unitOperation.fluidAnalysisId) {\r\n this.currentAnalysis = this.coreService.currentCase.assayManager.findFluidAnalysisById(\r\n this.unitOperation.fluidAnalysisId\r\n );\r\n this.assaySelectorHelper.setCurrentAnalysis(this.currentAnalysis);\r\n this.assayChanged();\r\n }\r\n }\r\n\r\n assayChanged(): void {\r\n this.assaySelectorHelper.assayChanged();\r\n }\r\n\r\n get fluidAnalyses(): FluidAnalysis[] {\r\n return this.coreService.currentCase.assayManager.getAssaysByCategory('Product');\r\n }\r\n\r\n saveCustomModel(res: any) {\r\n if (res.instanceId === 'hgoHydrotreaterCodeEditor') {\r\n this.unitOperation.customModelScript = res.code;\r\n this.flowsheetService.saveCustomCodeChanges();\r\n }\r\n }\r\n}\r\n","import { Completion } from '@codemirror/autocomplete';\r\n\r\nexport const lgoHydrotreaterCodeCompletions: Completion[] = [\r\n { label: 'HGOYield', type: 'variable', info: '' },\r\n { label: 'LGOYield', type: 'variable', info: '' },\r\n { label: 'NaphthaYield', type: 'variable', info: '' },\r\n { label: 'H2SProductionRate', type: 'variable', info: '' },\r\n { label: 'HydrogenUseRate', type: 'variable', info: '' },\r\n];\r\n","import { Completion } from '@codemirror/autocomplete';\r\nimport { DefaultCodeProvider } from './default-code-provider';\r\nimport { defaultLgoHydrotreaterModel } from '../../_config/unit-operations/default-models/default-lgo-hydrotreater-model';\r\nimport { lgoHydrotreaterCodeCompletions } from '../../_config/unit-operations/custom-code-completions/lgo-hydrotreater-code-completions';\r\n\r\nexport class LgoHydrotreaterCodeProvider extends DefaultCodeProvider {\r\n constructor() {\r\n super(defaultLgoHydrotreaterModel);\r\n }\r\n\r\n override getCodeCompletions(): Completion[] {\r\n return super.getCodeCompletions().concat(lgoHydrotreaterCodeCompletions);\r\n }\r\n}\r\n","<div [formGroup]=\"propertyWindowFormGroup\">\r\n <div class=\"form-horizontal\">\r\n <div class=\"form-group\">\r\n <label class=\"pw-label control-label col-sm-4\"> Assay Name </label>\r\n <div class=\"col-sm-6\">\r\n <sob-assay-selector\r\n [fluidAnalyses]=\"fluidAnalyses\"\r\n [currentAnalysis]=\"currentAnalysis\"\r\n (updateCurrentAssay)=\"updateCurrentAnalysis($event)\">\r\n </sob-assay-selector>\r\n </div>\r\n </div>\r\n </div>\r\n <hr />\r\n\r\n <ul class=\"nav nav-tabs m-r m-t-md\" role=\"tablist\" style=\"margin-top: 20px\">\r\n <li role=\"presentation\" class=\"active\">\r\n <a href=\"#blockSpecifications\" aria-controls=\"blockSpecifications\" role=\"tab\" data-toggle=\"tab\">General</a>\r\n </li>\r\n <li role=\"presentation\">\r\n <a href=\"#utilities\" aria-controls=\"utilities\" role=\"tab\" data-toggle=\"tab\">Utilities</a>\r\n </li>\r\n\r\n <li *ngIf=\"currentAnalysis\" role=\"presentation\">\r\n <a href=\"#productspecs\" aria-controls=\"productspecs\" role=\"tab\" data-toggle=\"tab\">Product Specifications</a>\r\n </li>\r\n\r\n <li role=\"presentation\">\r\n <a href=\"#constraints\" aria-controls=\"constraints\" role=\"tab\" data-toggle=\"tab\"> Constraints </a>\r\n </li>\r\n\r\n <li role=\"presentation\">\r\n <a href=\"#comments\" aria-controls=\"comments\" role=\"tab\" data-toggle=\"tab\">\r\n <i class=\"fa fa-comments fa-lg\" aria-hidden=\"true\"> </i>\r\n Comments\r\n </a>\r\n </li>\r\n </ul>\r\n\r\n <div class=\"tab-content pw-margin tab-content-padding\">\r\n <div role=\"tabpanel\" class=\"tab-pane fade in active\" id=\"blockSpecifications\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <div class=\"form-horizontal\">\r\n <div class=\"form-group\">\r\n <label for=\"catalystRun\" class=\"pw-label control-label col-sm-4\"> Catalyst Run </label>\r\n <div class=\"col-sm-6\">\r\n <select formControlName=\"catalystRun\" id=\"catalystRun\" class=\"form-control\">\r\n <option value=\"{{ LgoHydroTreaterCatalystRun.EOR }}\">EOR</option>\r\n <option value=\"{{ LgoHydroTreaterCatalystRun.SOR }}\">SOR</option>\r\n </select>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label for=\"yieldProfile\" class=\"pw-label control-label col-sm-4\"> Yield Profile </label>\r\n <div class=\"col-sm-6\">\r\n <select formControlName=\"yieldProfile\" id=\"yieldProfile\" class=\"form-control\">\r\n <option value=\"{{ LgoYieldProfile.HIGH }}\">High</option>\r\n <option value=\"{{ LgoYieldProfile.LOW }}\">Low</option>\r\n </select>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"naphthaYield\">\r\n <label class=\"pw-label control-label col-sm-4\"> Naphtha Yield </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.naphthaYield.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.naphthaYield\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"lgoYield\">\r\n <label class=\"pw-label control-label col-sm-4\"> LGO Yield </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.lgoYield.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input formControlName=\"value\" [valueMetaData]=\"unitOperation.lgoYield\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"hgoYield\">\r\n <label class=\"pw-label control-label col-sm-4\"> HGO Yield </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.hgoYield.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input formControlName=\"value\" [valueMetaData]=\"unitOperation.hgoYield\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"totalYield\">\r\n <label class=\"pw-label control-label col-sm-4\"> Total Yield </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.totalYield.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input formControlName=\"value\" [valueMetaData]=\"unitOperation.totalYield\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"totalInletVolume\">\r\n <label class=\"pw-label control-label col-sm-4\"> Total Inlet Volume </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.totalInletVolume.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.totalInletVolume\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <hr />\r\n\r\n <h4 class=\"subtitle\">GHG</h4>\r\n\r\n <div class=\"form-group\" formGroupName=\"ghgIntensity\">\r\n <label class=\"pw-label control-label col-sm-4\"> GHG Intensity </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.ghgIntensity.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.ghgIntensity\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"ghgEmissions\">\r\n <label class=\"pw-label control-label col-sm-4\"> GHG Emissions </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.ghgEmissions.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.ghgEmissions\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <hr />\r\n\r\n <div class=\"form-group\">\r\n <label for=\"customModelEnabled\" class=\"control-label col-sm-4\"> Custom Model </label>\r\n <div class=\"col-sm-4\">\r\n <label class=\"control-label\">\r\n <input\r\n formControlName=\"useCustomModel\"\r\n type=\"checkbox\"\r\n id=\"customModelEnabled\"\r\n (change)=\"useCustomModelChanged($event.target.checked)\" />\r\n </label>\r\n </div>\r\n </div>\r\n\r\n <div>\r\n <sob-open-reactive-code-editor-button\r\n [code]=\"unitOperation.customModelScript\"\r\n [defaultCodeProvider]=\"defaultCodeProvider\"\r\n [disabled]=\"!useCustomModel\"\r\n [instanceId]=\"'lgoHydrotreaterCodeEditor'\"\r\n (codeSaved)=\"saveCustomModel($event)\">\r\n </sob-open-reactive-code-editor-button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"utilities\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <div class=\"form-horizontal\">\r\n <h4 class=\"subtitle\">Hydrogen</h4>\r\n\r\n <div class=\"form-group\" formGroupName=\"hydrogenUseRate\">\r\n <label class=\"pw-label control-label col-sm-4\"> Hydrogen Use Rate </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.hydrogenUseRate.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.hydrogenUseRate\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"hydrogenUse\">\r\n <label class=\"pw-label control-label col-sm-4\"> Hydrogen Use </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.hydrogenUse.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.hydrogenUse\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <hr />\r\n\r\n <h4 class=\"subtitle\">Amine</h4>\r\n\r\n <div class=\"form-group\" formGroupName=\"h2sProductionRate\">\r\n <label class=\"pw-label control-label col-sm-4\"> H2S Production Rate </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select\r\n formControlName=\"unit\"\r\n [quantity]=\"unitOperation.h2sProductionRate.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.h2sProductionRate\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"h2sProduction\">\r\n <label class=\"pw-label control-label col-sm-4\"> H2S Production </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.h2sProduction.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.h2sProduction\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-horizontal\">\r\n <sob-reactive-steam-use-utility [formGroupWrapper]=\"formGroupWrapper\" [unitOperation]=\"unitOperation\">\r\n </sob-reactive-steam-use-utility>\r\n\r\n <sob-reactive-gas-contributor [formGroupWrapper]=\"formGroupWrapper\" [unitOperation]=\"unitOperation\">\r\n </sob-reactive-gas-contributor>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"currentAnalysis\" role=\"tabpanel\" class=\"tab-pane fade in\" id=\"productspecs\">\r\n <ul class=\"nav nav-pills\" role=\"tablist\" style=\"margin-right: 15px\">\r\n <li role=\"presentation\" class=\"active\">\r\n <a href=\"#bulkProperties\" aria-controls=\"bulkProperties\" role=\"tab\" data-toggle=\"tab\">Bulk Properties</a>\r\n </li>\r\n\r\n <li role=\"presentation\">\r\n <a href=\"#cutProperties\" aria-controls=\"cutProperties\" role=\"tab\" data-toggle=\"tab\">Cut Properties</a>\r\n </li>\r\n\r\n <li role=\"presentation\">\r\n <a href=\"#compositionUO\" aria-controls=\"composition\" role=\"tab\" data-toggle=\"tab\">Composition</a>\r\n </li>\r\n </ul>\r\n\r\n <div class=\"tab-content pw-margin tab-content-padding\">\r\n <div role=\"tabpanel\" class=\"tab-pane fade in active\" id=\"bulkProperties\">\r\n <sob-bulk-properties [currentAnalysis]=\"currentAnalysis\"></sob-bulk-properties>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"cutProperties\">\r\n <sob-reactive-cut-properties\r\n [readonly]=\"true\"\r\n [fluidAnalysis]=\"currentAnalysis\"></sob-reactive-cut-properties>\r\n </div>\r\n\r\n <div *ngIf=\"currentAnalysis\" role=\"tabpanel\" class=\"tab-pane fade in\" id=\"compositionUO\">\r\n <sob-composition [currentAnalysis]=\"currentAnalysis\"></sob-composition>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"constraints\">\r\n <p style=\"text-align: right; position: relative\">\r\n <span style=\"position: absolute; right: -25px; top: -20px; font-weight: bold\">Active</span>\r\n </p>\r\n\r\n <div class=\"form-horizontal\">\r\n <div class=\"form-group\" formGroupName=\"capacity\">\r\n <label class=\"pw-label control-label col-sm-4\"> Maximum Feed Capacity </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-5\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.capacity.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-5\">\r\n <sob-reactive-variable-value-input formControlName=\"value\" [valueMetaData]=\"unitOperation.capacity\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n <div class=\"col-xs-2\">\r\n <sob-reactive-constraint-check-box\r\n formControlName=\"isActive\"\r\n [isConstraint]=\"true\"\r\n [valueMetaData]=\"unitOperation.capacity\"></sob-reactive-constraint-check-box>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"minimumFlow\">\r\n <label class=\"pw-label control-label col-sm-4\"> Minimum Flow </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-5\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.minimumFlow.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-5\">\r\n <sob-reactive-variable-value-input formControlName=\"value\" [valueMetaData]=\"unitOperation.minimumFlow\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n <div class=\"col-xs-2\">\r\n <sob-reactive-constraint-check-box\r\n formControlName=\"isActive\"\r\n [isConstraint]=\"true\"\r\n [valueMetaData]=\"unitOperation.minimumFlow\"></sob-reactive-constraint-check-box>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"maximumSulfurContent\">\r\n <label class=\"pw-label control-label col-sm-4\"> Maximum Sulfur Content</label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-5\">\r\n <sob-reactive-unit-select\r\n formControlName=\"unit\"\r\n [quantity]=\"unitOperation.maximumSulfurContent.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-5\">\r\n <sob-reactive-variable-value-input\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.maximumSulfurContent\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n <div class=\"col-xs-2\">\r\n <sob-reactive-constraint-check-box\r\n formControlName=\"isActive\"\r\n [isConstraint]=\"true\"\r\n [valueMetaData]=\"unitOperation.maximumSulfurContent\"></sob-reactive-constraint-check-box>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"maximumNitrogen\">\r\n <label class=\"pw-label control-label col-sm-4\"> Maximum Nitrogen</label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-5\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.maximumNitrogen.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-5\">\r\n <sob-reactive-variable-value-input\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.maximumNitrogen\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n <div class=\"col-xs-2\">\r\n <sob-reactive-constraint-check-box\r\n formControlName=\"isActive\"\r\n [isConstraint]=\"true\"\r\n [valueMetaData]=\"unitOperation.maximumNitrogen\"></sob-reactive-constraint-check-box>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"comments\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <sob-unit-operation-comments [unitOpId]=\"this.unitOperation.id\"></sob-unit-operation-comments>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { UntypedFormBuilder } from '@angular/forms';\r\nimport { LgoHydrotreater } from '../../../_models/_unit-operations/lgo-hydrotreater';\r\nimport { SuncorFluidAnalysis } from '../../../_models/_fluid/suncor-fluid-analysis';\r\nimport { LgoHydroteaterCatalystRun, LgoYieldProfile } from '../../../_config/unit-operations/lgo-hydroteater.enum';\r\nimport { CoreService } from '../../../_services/core.service';\r\nimport { SimVarFormBuilder } from '../../../_form-utils/sim-var-form-builder';\r\nimport { FlowsheetService } from '../../../_services/flowsheet.service';\r\nimport { BaseObjectFormGroupWrapper } from '../../../_form-utils/base-object-form-group-wrapper';\r\nimport { FluidAnalysis } from '../../../_models/_fluid/fluid-analysis';\r\nimport { SimulationVariable } from '../../../_models';\r\nimport { VariableStatus } from '../../../_config/variable-status.enum';\r\nimport { LgoHydrotreaterCodeProvider } from '../../../_services/custom-code-providers/lgo-hydrotreater-code-provider';\r\n\r\n@Component({\r\n selector: 'sob-lgo-hydrotreater',\r\n templateUrl: './lgo-hydrotreater.component.html',\r\n styleUrls: ['./lgo-hydrotreater.component.css'],\r\n})\r\nexport class LgoHydrotreaterComponent implements OnInit {\r\n @Input() unitOperation: LgoHydrotreater;\r\n @Input() formGroupWrapper: BaseObjectFormGroupWrapper;\r\n\r\n currentAnalysis: SuncorFluidAnalysis;\r\n LgoHydroTreaterCatalystRun = LgoHydroteaterCatalystRun;\r\n LgoYieldProfile = LgoYieldProfile;\r\n defaultCodeProvider: LgoHydrotreaterCodeProvider;\r\n\r\n constructor(\r\n private coreService: CoreService,\r\n private fb: UntypedFormBuilder,\r\n private svfb: SimVarFormBuilder,\r\n private flowsheetService: FlowsheetService\r\n ) {\r\n this.defaultCodeProvider = new LgoHydrotreaterCodeProvider();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.addControls();\r\n this.updateCurrentAnalysis();\r\n this.formGroupWrapper.storeOriginalValue();\r\n }\r\n\r\n addControls() {\r\n this.propertyWindowFormGroup.addControl('fluidAnalysisId', this.fb.control(this.unitOperation.fluidAnalysisId));\r\n\r\n // General\r\n this.propertyWindowFormGroup.addControl('catalystRun', this.fb.control(this.unitOperation.catalystRun));\r\n this.propertyWindowFormGroup.addControl('yieldProfile', this.fb.control(this.unitOperation.yieldProfile));\r\n this.propertyWindowFormGroup.addControl('naphthaYield', this.svfb.control(this.unitOperation.naphthaYield));\r\n this.propertyWindowFormGroup.addControl('lgoYield', this.svfb.control(this.unitOperation.lgoYield));\r\n this.propertyWindowFormGroup.addControl('hgoYield', this.svfb.control(this.unitOperation.hgoYield));\r\n this.propertyWindowFormGroup.addControl('totalYield', this.svfb.control(this.unitOperation.totalYield, true));\r\n this.propertyWindowFormGroup.addControl(\r\n 'totalInletVolume',\r\n this.svfb.control(this.unitOperation.totalInletVolume, true)\r\n );\r\n this.propertyWindowFormGroup.addControl('ghgIntensity', this.svfb.control(this.unitOperation.ghgIntensity));\r\n this.propertyWindowFormGroup.addControl('ghgEmissions', this.svfb.control(this.unitOperation.ghgEmissions, true));\r\n this.propertyWindowFormGroup.addControl('useCustomModel', this.fb.control(this.unitOperation.useCustomModel));\r\n this.propertyWindowFormGroup.addControl('customModelScript', this.fb.control(this.unitOperation.customModelScript));\r\n\r\n // Utilities\r\n this.propertyWindowFormGroup.addControl('hydrogenUseRate', this.svfb.control(this.unitOperation.hydrogenUseRate));\r\n this.propertyWindowFormGroup.addControl('hydrogenUse', this.svfb.control(this.unitOperation.hydrogenUse, true));\r\n this.propertyWindowFormGroup.addControl(\r\n 'h2sProductionRate',\r\n this.svfb.control(this.unitOperation.h2sProductionRate)\r\n );\r\n this.propertyWindowFormGroup.addControl('h2sProduction', this.svfb.control(this.unitOperation.h2sProduction, true));\r\n\r\n // Constraints\r\n this.propertyWindowFormGroup.addControl(\r\n 'capacity',\r\n this.svfb.control(this.unitOperation.capacity, false, false, true)\r\n );\r\n this.propertyWindowFormGroup.addControl(\r\n 'minimumFlow',\r\n this.svfb.control(this.unitOperation.minimumFlow, false, false, true)\r\n );\r\n this.propertyWindowFormGroup.addControl(\r\n 'maximumSulfurContent',\r\n this.svfb.control(this.unitOperation.maximumSulfurContent, false, false, true)\r\n );\r\n this.propertyWindowFormGroup.addControl(\r\n 'maximumNitrogen',\r\n this.svfb.control(this.unitOperation.maximumNitrogen, false, false, true)\r\n );\r\n\r\n this.useCustomModelChanged(this.unitOperation.useCustomModel);\r\n this.changeVariableStatusToEnableField(this.unitOperation.ghgIntensity);\r\n }\r\n\r\n get propertyWindowFormGroup() {\r\n return this.formGroupWrapper.getFormGroup();\r\n }\r\n\r\n get fluidAnalyses(): FluidAnalysis[] {\r\n return this.coreService.currentCase.assayManager.getAssaysByCategory('Product');\r\n }\r\n\r\n updateCurrentAnalysis(id?) {\r\n if (id) {\r\n this.unitOperation.fluidAnalysisId = id;\r\n }\r\n if (this.unitOperation.fluidAnalysisId) {\r\n this.currentAnalysis = this.coreService.currentCase.assayManager.findFluidAnalysisById(\r\n this.unitOperation.fluidAnalysisId\r\n );\r\n this.propertyWindowFormGroup.get('fluidAnalysisId').setValue(this.unitOperation.fluidAnalysisId);\r\n this.formGroupWrapper.storeOriginalValue();\r\n }\r\n }\r\n\r\n saveCustomModel(res: any) {\r\n if (res.instanceId === 'lgoHydrotreaterCodeEditor') {\r\n this.propertyWindowFormGroup.get('customModelScript').setValue(res.code);\r\n this.unitOperation.customModelScript = this.propertyWindowFormGroup.get('customModelScript').value;\r\n this.flowsheetService.saveCustomCodeChanges();\r\n }\r\n }\r\n\r\n useCustomModelChanged(checked: boolean) {\r\n if (checked) {\r\n this.propertyWindowFormGroup.get('naphthaYield').get('value').disable();\r\n this.propertyWindowFormGroup.get('lgoYield').get('value').disable();\r\n this.propertyWindowFormGroup.get('hgoYield').get('value').disable();\r\n this.propertyWindowFormGroup.get('hydrogenUseRate').get('value').disable();\r\n this.propertyWindowFormGroup.get('h2sProductionRate').get('value').disable();\r\n } else {\r\n this.changeVariableStatusToEnableField(this.unitOperation.naphthaYield);\r\n this.changeVariableStatusToEnableField(this.unitOperation.lgoYield);\r\n this.changeVariableStatusToEnableField(this.unitOperation.hgoYield);\r\n this.changeVariableStatusToEnableField(this.unitOperation.hydrogenUseRate);\r\n this.changeVariableStatusToEnableField(this.unitOperation.h2sProductionRate);\r\n\r\n this.propertyWindowFormGroup.get('naphthaYield').get('value').enable();\r\n this.propertyWindowFormGroup.get('lgoYield').get('value').enable();\r\n this.propertyWindowFormGroup.get('hgoYield').get('value').enable();\r\n this.propertyWindowFormGroup.get('hydrogenUseRate').get('value').enable();\r\n this.propertyWindowFormGroup.get('h2sProductionRate').get('value').enable();\r\n }\r\n }\r\n\r\n changeVariableStatusToEnableField(simVar: SimulationVariable) {\r\n if (simVar.variableStatus === VariableStatus.SOLVER_CALCULATED) {\r\n simVar.variableStatus = VariableStatus.USER_SPECIFIED;\r\n }\r\n }\r\n\r\n get useCustomModel() {\r\n return this.propertyWindowFormGroup.get('useCustomModel').value;\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { UntypedFormGroup } from '@angular/forms';\r\nimport { WaterSourceInformationStream } from '../../../_models/_unit-operations/utilties/water-source-information-stream';\r\n\r\n@Component({\r\n selector: 'sob-water-source-information-stream-form',\r\n templateUrl: './water-source-information-stream-form.component.html',\r\n styleUrls: ['./water-source-information-stream-form.component.css'],\r\n})\r\nexport class WaterSourceInformationStreamFormComponent {\r\n @Input() informationStream: WaterSourceInformationStream;\r\n @Input() informationStreamFormGroup: UntypedFormGroup;\r\n @Output() removeClicked = new EventEmitter<any>();\r\n}\r\n","<ng-container [formGroup]=\"informationStreamFormGroup\">\r\n <div class=\"form-group\" formGroupName=\"massFlowrate\">\r\n <label class=\"control-label col-sm-4\"> Mass Flowrate </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"informationStream.massFlowrate.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input formControlName=\"value\" [valueMetaData]=\"informationStream.massFlowrate\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"temperature\">\r\n <label class=\"control-label col-sm-4\"> Temperature </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"informationStream.temperature.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input formControlName=\"value\" [valueMetaData]=\"informationStream.temperature\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"pressure\">\r\n <label class=\"control-label col-sm-4\"> Pressure </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"informationStream.pressure.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input formControlName=\"value\" [valueMetaData]=\"informationStream.pressure\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"vaporFraction\">\r\n <label class=\"control-label col-sm-4\"> Vapor Fraction </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"informationStream.vaporFraction.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input formControlName=\"value\" [valueMetaData]=\"informationStream.vaporFraction\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</ng-container>\r\n","import { UntypedFormArray, UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';\r\nimport { BaseObjectFormGroupWrapper } from '../../_form-utils/base-object-form-group-wrapper';\r\nimport { WaterSourceInformationStream } from '../../_models/_unit-operations/utilties/water-source-information-stream';\r\nimport { SimVarFormBuilder } from '../../_form-utils/sim-var-form-builder';\r\nimport { SteamUseUnitOperation } from '../../_models/_unit-operations/steam-use-unit-operation';\r\nimport { Case, SimulationVariable, UnitOperation } from '../../_models';\r\nimport { CoreService } from '../../_services/core.service';\r\nimport { PressureCalculationMode } from '../../_config/pressure-calculation-mode.enum';\r\nimport { SteamType } from '../../_config/steam-type.enum';\r\nimport { BaseWaterImportUnitOperation } from '../../_models/_unit-operations/utilties/base-water-import-unit-operation';\r\n\r\n/**\r\n * Base class for property windows that work with information streams\r\n */\r\nexport abstract class AbstractWaterInformationStreamPropertyWindow {\r\n formGroupWrapper: BaseObjectFormGroupWrapper;\r\n unitOperation: BaseWaterImportUnitOperation;\r\n availableInformationStreamVariables: SimulationVariable[];\r\n abstract informationStreamsFormArray: UntypedFormArray;\r\n\r\n // the information streams active in the current property window\r\n activeInformationStreams: WaterSourceInformationStream[] = [];\r\n\r\n protected constructor(\r\n protected coreService: CoreService,\r\n protected fb: UntypedFormBuilder,\r\n protected svfb: SimVarFormBuilder\r\n ) {}\r\n\r\n /**\r\n * Get unit operations that may use an information stream from this property window\r\n * @protected\r\n */\r\n protected abstract getOtherInformationStreamUsers(): UnitOperation[];\r\n\r\n protected abstract usesInformationStream(informationStreamUser: UnitOperation, simulationVariableId: string): boolean;\r\n\r\n /**\r\n * Get a steam SimulationVariable that will be used for creating the list of available stream variables for\r\n * this property window\r\n * @param uo\r\n * @param steamType\r\n */\r\n protected abstract getAllowedAvailableSteamVariableByType(\r\n uo: SteamUseUnitOperation,\r\n steamType: SteamType\r\n ): SimulationVariable;\r\n\r\n addControls() {\r\n // TODO nice hack to allow change detection in name... should not be used REMOVE when not needed\r\n this.propertyWindowFormGroup.addControl('name', this.fb.control(this.unitOperation.name));\r\n this.propertyWindowFormGroup.addControl(\r\n 'pressureCalculationMode',\r\n this.fb.control(this.unitOperation.pressureCalculationMode)\r\n );\r\n this.propertyWindowFormGroup.addControl('outletPressure', this.svfb.control(this.unitOperation.outletPressure));\r\n this.propertyWindowFormGroup.addControl('steamType', this.fb.control(this.unitOperation.steamType));\r\n this.propertyWindowFormGroup.addControl('selectedInformationStreamVariableId', this.fb.control(''));\r\n this.propertyWindowFormGroup.addControl('inletSourceInformationStreams', this.fb.array([]));\r\n\r\n for (const informationStream of this.activeInformationStreams) {\r\n this.addInformationStreamControls(informationStream);\r\n }\r\n }\r\n\r\n getAvailableInformationStreamVariables(): SimulationVariable[] {\r\n const steamUnitOperations = this.getParentFlowsheetSteamUnitOperations();\r\n const simulationVariables: SimulationVariable[] = [];\r\n\r\n for (const steamUnitOperation of steamUnitOperations) {\r\n const sv = this.getAllowedAvailableSteamVariableByType(steamUnitOperation, this.selectedSteamType as SteamType);\r\n\r\n // don't even show it if it is already in use\r\n if (this.isInformationStreamInUseByOtherUnitOperation(sv.id)) {\r\n continue;\r\n }\r\n simulationVariables.push(\r\n this.getAllowedAvailableSteamVariableByType(steamUnitOperation, this.selectedSteamType as SteamType)\r\n );\r\n }\r\n return simulationVariables;\r\n }\r\n\r\n protected getParentFlowsheetSteamUnitOperations() {\r\n const parentUnit = this.currentCase.getUnitOperation(this.unitOperation.flowsheetId);\r\n const parentFlowsheetId = parentUnit.flowsheetId;\r\n\r\n return this.coreService.currentCase.filterUnitOperations(uo => {\r\n return uo.flowsheetId === parentFlowsheetId && uo instanceof SteamUseUnitOperation;\r\n }) as SteamUseUnitOperation[];\r\n }\r\n\r\n // region adding/removing information streams\r\n onSteamTypeChanged() {\r\n this.availableInformationStreamVariables = this.getAvailableInformationStreamVariables();\r\n }\r\n\r\n addInformationStreamControls(informationStream: WaterSourceInformationStream) {\r\n const informationStreamGroup = this.fb.group({\r\n id: this.fb.control(informationStream.id), // not visible at all\r\n simulationVariableId: this.fb.control(informationStream.simulationVariableId), // not visible\r\n temperature: this.svfb.control(informationStream.temperature, true),\r\n pressure: this.svfb.control(informationStream.pressure, true),\r\n massFlowrate: this.svfb.control(informationStream.massFlowrate, true),\r\n vaporFraction: this.svfb.control(informationStream.vaporFraction, true),\r\n });\r\n\r\n this.informationStreamsFormArray.push(informationStreamGroup);\r\n }\r\n\r\n protected isInformationStreamInUseByOtherUnitOperation(simulationVariableId: string) {\r\n const otherInformationStreamUsers = this.getOtherInformationStreamUsers();\r\n\r\n for (const informationStreamUser of otherInformationStreamUsers) {\r\n if (this.usesInformationStream(informationStreamUser, simulationVariableId)) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n addInformationStream() {\r\n if (this.isSelectedInformationStreamActive()) {\r\n return;\r\n }\r\n\r\n const simVar = this.availableInformationStreamVariables.find(\r\n sv => sv.id === this.selectedInformationStreamVariableId\r\n );\r\n const simVarIndex = this.availableInformationStreamVariables.findIndex(\r\n sv => sv.id === this.selectedInformationStreamVariableId\r\n );\r\n const informationStream = new WaterSourceInformationStream({}, this.unitOperation.ownerCase);\r\n informationStream.simulationVariableId = simVar.id;\r\n this.addInformationStreamControls(informationStream);\r\n this.activeInformationStreams.push(informationStream);\r\n this.availableInformationStreamVariables.splice(simVarIndex, 1);\r\n }\r\n\r\n protected isSelectedInformationStreamActive(): boolean {\r\n // instead of just a boolean this method could return a more elaborated object, maybe it could include the names\r\n // of the owner unit operation\r\n return !!this.activeInformationStreams.find(\r\n is => is.simulationVariableId === this.selectedInformationStreamVariableId\r\n );\r\n }\r\n\r\n filterStreams() {\r\n if (this.activeInformationStreams.length === 0) {\r\n this.availableInformationStreamVariables = this.getAvailableInformationStreamVariables();\r\n } else {\r\n this.availableInformationStreamVariables = this.getAvailableInformationStreamVariables();\r\n for (let i = 0; i < this.activeInformationStreams.length; i++) {\r\n for (let j = 0; j < this.availableInformationStreamVariables.length; j++) {\r\n if (\r\n this.availableInformationStreamVariables[j].id === this.activeInformationStreams[i].simulationVariableId\r\n ) {\r\n this.availableInformationStreamVariables.splice(j, 1);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n removeInformationStream(i: number) {\r\n this.activeInformationStreams.splice(i, 1);\r\n this.informationStreamsFormArray.removeAt(i);\r\n this.filterStreams();\r\n }\r\n // endregion\r\n\r\n // region form group getters\r\n getInformationStreamsFormGroupsArray(): UntypedFormGroup[] {\r\n return this.informationStreamsFormArray.controls as UntypedFormGroup[];\r\n }\r\n\r\n get selectedInformationStreamVariableId(): string {\r\n return this.propertyWindowFormGroup.get('selectedInformationStreamVariableId').value;\r\n }\r\n\r\n get isOutletPressureCalculationMode(): boolean {\r\n return (\r\n this.propertyWindowFormGroup.controls['pressureCalculationMode'].value === PressureCalculationMode.OUTLET_PRESSURE\r\n );\r\n }\r\n\r\n get selectedSteamType(): string {\r\n return this.propertyWindowFormGroup.get('steamType').value;\r\n }\r\n\r\n get propertyWindowFormGroup() {\r\n return this.formGroupWrapper.getFormGroup();\r\n }\r\n\r\n // endregion\r\n\r\n get currentCase(): Case {\r\n return this.coreService.currentCase;\r\n }\r\n}\r\n","<ul class=\"nav nav-tabs\" role=\"tablist\" style=\"margin-right: 15px; margin-top: 20px\">\r\n <li role=\"presentation\" class=\"active\">\r\n <a href=\"#blockSpecifications\" aria-controls=\"blockSpecifications\" role=\"tab\" data-toggle=\"tab\">Model</a>\r\n </li>\r\n\r\n <li role=\"presentation\">\r\n <a href=\"#waterSourceImportComments\" aria-controls=\"waterSourceImportComments\" role=\"tab\" data-toggle=\"tab\">\r\n <i class=\"fa fa-comments fa-lg {{ this.unitOperation.comments ? 'gentle-hover-shake' : '' }}\" aria-hidden=\"true\">\r\n </i>\r\n Comments\r\n </a>\r\n </li>\r\n</ul>\r\n\r\n<div class=\"tab-content pw-margin tab-content-padding\" [formGroup]=\"propertyWindowFormGroup\">\r\n <div role=\"tabpanel\" class=\"tab-pane fade in active\" id=\"blockSpecifications\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <div class=\"form-horizontal\">\r\n <div class=\"form-group\">\r\n <label for=\"pressureCalculationMode\" class=\"pw-label control-label col-sm-4\">\r\n Pressure Calculation Mode\r\n </label>\r\n <div class=\"col-sm-6\">\r\n <select class=\"form-control\" formControlName=\"pressureCalculationMode\" id=\"pressureCalculationMode\">\r\n <option value=\"{{ PressureCalculationMode.LOWEST }}\">Lowest</option>\r\n <option value=\"{{ PressureCalculationMode.OUTLET_PRESSURE }}\">Outlet Pressure</option>\r\n </select>\r\n </div>\r\n </div>\r\n\r\n <ng-container *ngIf=\"isOutletPressureCalculationMode\">\r\n <div class=\"form-group\" formGroupName=\"outletPressure\">\r\n <label class=\"control-label col-sm-4\"> Outlet Pressure </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.outletPressure.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.outletPressure\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <hr />\r\n\r\n <h4>Information Streams</h4>\r\n\r\n <div class=\"form-group\">\r\n <label for=\"steamType\" class=\"control-label col-sm-4\"> Steam Type </label>\r\n\r\n <div class=\"col-sm-8\">\r\n <div class=\"row\">\r\n <div class=\"col-xs-12\">\r\n <select\r\n formControlName=\"steamType\"\r\n name=\"steamType\"\r\n id=\"steamType\"\r\n class=\"form-control\"\r\n (change)=\"onSteamTypeChanged()\">\r\n <option value=\"{{ SteamType.Steam900 }}\">{{ SteamType.Steam900 }}</option>\r\n <option value=\"{{ SteamType.Steam600 }}\">{{ SteamType.Steam600 }}</option>\r\n <option value=\"{{ SteamType.Steam150 }}\">{{ SteamType.Steam150 }}</option>\r\n <option value=\"{{ SteamType.Steam50 }}\">{{ SteamType.Steam50 }}</option>\r\n </select>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <div class=\"col-xs-12\">\r\n <select\r\n name=\"selectedInformationStreamVariableId\"\r\n id=\"selectedInformationStreamVariableId\"\r\n formControlName=\"selectedInformationStreamVariableId\"\r\n size=\"2\"\r\n style=\"height: 200px\"\r\n class=\"form-control\">\r\n <option\r\n (click)=\"filterStreams()\"\r\n *ngFor=\"let sv of availableInformationStreamVariables\"\r\n value=\"{{ sv.id }}\"\r\n (dblclick)=\"addInformationStream()\">\r\n {{ sv.getFullName() }}\r\n </option>\r\n </select>\r\n\r\n <button class=\"btn btn-xs btn-success m-t-xs\" (click)=\"addInformationStream()\">\r\n <i class=\"fa fa-plus-circle\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <ng-container formArrayName=\"inletSourceInformationStreams\">\r\n <ng-container *ngFor=\"let informationStreamGroup of getInformationStreamsFormGroupsArray(); let i = index\">\r\n <div class=\"row\">\r\n <h4>\r\n <a\r\n data-toggle=\"collapse\"\r\n href=\"#informationStreamCollapse{{ i }}\"\r\n aria-expanded=\"false\"\r\n sfeCollapsePanelIcon>\r\n <i class=\"fa fa-plus\" aria-hidden=\"true\"> </i>\r\n {{ activeInformationStreams[i].getFullName() }}\r\n </a>\r\n </h4>\r\n <div>\r\n <span class=\"inline pull-right p-t-5-x\" style=\"margin-top: -30px\">\r\n <button\r\n class=\"btnR btn btn-xs btn-danger\"\r\n (click)=\"removeInformationStream(i)\"\r\n data-toggle=\"tooltip\"\r\n title=\"Remove Information Stream\">\r\n <i class=\"fa fa-minus-circle\"></i>\r\n </button>\r\n </span>\r\n </div>\r\n <div id=\"informationStreamCollapse{{ i }}\" class=\"collapse\">\r\n <sob-water-source-information-stream-form\r\n [informationStream]=\"activeInformationStreams[i]\"\r\n [informationStreamFormGroup]=\"informationStreamGroup\"\r\n (removeClicked)=\"removeInformationStream(i)\">\r\n </sob-water-source-information-stream-form>\r\n </div>\r\n </div>\r\n <hr />\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"waterSourceImportComments\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <sob-unit-operation-comments [unitOpId]=\"this.unitOperation.id\"></sob-unit-operation-comments>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { UntypedFormArray, UntypedFormBuilder } from '@angular/forms';\r\nimport { WaterSourceImport } from '../../../_models/_unit-operations/utilties/water-source-import';\r\nimport { CoreService } from '../../../_services/core.service';\r\nimport { SteamUseUnitOperation } from '../../../_models/_unit-operations/steam-use-unit-operation';\r\nimport { SimVarFormBuilder } from '../../../_form-utils/sim-var-form-builder';\r\nimport { BaseObjectFormGroupWrapper } from '../../../_form-utils/base-object-form-group-wrapper';\r\nimport { SimulationVariable } from '../../../_models/simulation-variable';\r\nimport { WaterSourceInformationStreamFormComponent } from '../water-source-information-stream-form/water-source-information-stream-form.component';\r\nimport { SteamType } from '../../../_config/steam-type.enum';\r\nimport { PressureCalculationMode } from '../../../_config/pressure-calculation-mode.enum';\r\nimport { AbstractWaterInformationStreamPropertyWindow } from '../abstract-water-information-stream-property-window';\r\nimport { UnitOperation } from '../../../_models';\r\nimport { unitOperationsConfig } from '../../../_config/unit-operations.config';\r\n\r\n@Component({\r\n selector: 'sob-water-source-import',\r\n templateUrl: './water-source-import.component.html',\r\n styleUrls: ['./water-source-import.component.css'],\r\n})\r\nexport class WaterSourceImportComponent extends AbstractWaterInformationStreamPropertyWindow implements OnInit {\r\n @Input() override unitOperation: WaterSourceImport;\r\n @Input() override formGroupWrapper: BaseObjectFormGroupWrapper;\r\n @Input() waterSourceIn: WaterSourceInformationStreamFormComponent;\r\n PressureCalculationMode = PressureCalculationMode;\r\n SteamType = SteamType;\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-useless-constructor\r\n constructor(coreService: CoreService, fb: UntypedFormBuilder, svfb: SimVarFormBuilder) {\r\n super(coreService, fb, svfb);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.activeInformationStreams.push(...this.unitOperation.inletSourceInformationStreams);\r\n this.addControls();\r\n this.formGroupWrapper.storeOriginalValue();\r\n this.filterStreams();\r\n }\r\n\r\n protected getOtherInformationStreamUsers(): UnitOperation[] {\r\n return this.currentCase.filterUnitOperations(\r\n uo => uo.category === unitOperationsConfig.waterSourceImport.key && uo.id !== this.unitOperation.id\r\n );\r\n }\r\n\r\n protected usesInformationStream(informationStreamUser: UnitOperation, simulationVariableId: string): boolean {\r\n return !!(informationStreamUser as WaterSourceImport).inletSourceInformationStreams.find(\r\n i => i.simulationVariableId === simulationVariableId\r\n );\r\n }\r\n\r\n protected getAllowedAvailableSteamVariableByType(\r\n uo: SteamUseUnitOperation,\r\n steamType: SteamType\r\n ): SimulationVariable {\r\n return uo.getSteamMakeVariableByType(steamType);\r\n }\r\n\r\n // region form group getters\r\n get informationStreamsFormArray() {\r\n return this.propertyWindowFormGroup.get('inletSourceInformationStreams') as UntypedFormArray;\r\n }\r\n // endregion\r\n}\r\n","<ul class=\"nav nav-tabs\" role=\"tablist\" style=\"margin-right: 15px\">\r\n <li role=\"presentation\" class=\"active\">\r\n <a href=\"#blockSpecifications\" aria-controls=\"blockSpecifications\" role=\"tab\" data-toggle=\"tab\">Model</a>\r\n </li>\r\n\r\n <li role=\"presentation\">\r\n <a href=\"#waterPipeComments\" aria-controls=\"waterPipeComments\" role=\"tab\" data-toggle=\"tab\">\r\n <i class=\"fa fa-comments fa-lg\" aria-hidden=\"true\"> </i>\r\n Comments\r\n </a>\r\n </li>\r\n</ul>\r\n\r\n<div class=\"tab-content pw-margin tab-content-padding\">\r\n <div role=\"tabpanel\" class=\"tab-pane fade in active\" id=\"blockSpecifications\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <div class=\"form-horizontal\">\r\n <h4 class=\"subtitle\">Inputs</h4>\r\n <hr />\r\n <br />\r\n\r\n <div class=\"form-group\">\r\n <label for=\"pipePressureModel\" class=\"pw-label control-label col-sm-4\"> Pipe Pressure Model </label>\r\n\r\n <div class=\"col-sm-8\" id=\"pipePressureModel\">\r\n <select\r\n id=\"selectPressureModel\"\r\n (change)=\"pipePressureModelChanged($event.target.value)\"\r\n class=\"form-control\">\r\n <option value=\"Homogeneous\">Homogeneous</option>\r\n </select>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label for=\"thermalCalculationMode\" class=\"pw-label control-label col-sm-4\"> Thermal Calculation Mode </label>\r\n <div class=\"col-sm-8\" id=\"thermalCalculationMode\">\r\n <select\r\n id=\"selectThermalMode\"\r\n (change)=\"thermalCalculationModeChanged($event.target.value)\"\r\n class=\"form-control\">\r\n <option value=\"Adiabatic\">Adiabatic</option>\r\n <option value=\"Isothermal\">Isothermal</option>\r\n <option value=\"Thermal\">Thermal</option>\r\n </select>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'stepLength'\" class=\"pw-label control-label col-sm-4\"> Step Length </label>\r\n <sim-var-input [inputId]=\"'stepLength'\" [simVar]=\"unitOperation.stepLength\"></sim-var-input>\r\n </div>\r\n <br />\r\n\r\n <h4 class=\"subtitle\">Segments</h4>\r\n <hr />\r\n <br />\r\n <div class=\"col-md-12\">\r\n <div class=\"row\">\r\n <div class=\"col-md-1 col-md-offset-11\">\r\n <button\r\n (click)=\"addWaterPipeSegmentFormGroup()\"\r\n class=\"btn btn-primary btn-xs addButton\"\r\n data-toggle=\"tooltip\"\r\n title=\"Add new water pipe segment\">\r\n <i class=\"fa fa-plus\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div [formGroup]=\"waterPipeSegmentForm\">\r\n <div *ngFor=\"let segment of this.unitOperation.segments; let i = index\" [formGroupName]=\"segment.id\">\r\n <div class=\"col-md-12\">\r\n <div class=\"row\">\r\n <div class=\"col-xs-10\">\r\n <h4>\r\n <a\r\n data-toggle=\"collapse\"\r\n sfeCollapsePanelIcon\r\n href=\"#segmentProperties{{ i }}\"\r\n aria-expanded=\"false\"\r\n [attr.aria-controls]=\"'#segmentProperties' + i\"\r\n [attr.for]=\"'segmentName' + i\">\r\n <i class=\"fa fa-plus\" aria-hidden=\"true\"></i>\r\n {{ segment.name }}\r\n </a>\r\n </h4>\r\n </div>\r\n <div class=\"col-xs-2\">\r\n <button\r\n class=\"btn btn-xs btn-danger removeButton\"\r\n (click)=\"removeWaterPipeSegment(segment)\"\r\n data-toggle=\"tooltip\"\r\n title=\"Remove water pipe segment\">\r\n <i class=\"fa fa-minus-circle\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <br />\r\n\r\n <div id=\"segmentProperties{{ i }}\" class=\"collapse\">\r\n <div class=\"form-group\" formGroupName=\"segmentLength\">\r\n <label [attr.for]=\"'segmentLength' + i\" class=\"pw-label control-label col-sm-4\"> Length </label>\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"segment.segmentLength.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n formControlName=\"value\"\r\n [valueMetaData]=\"segment.segmentLength\">\r\n </sob-reactive-variable-value-input>\r\n <span class=\"text-danger\" *ngIf=\"getValueFieldsErrorValidations(segment.id, 'segmentLength')\">\r\n Please enter a value\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"insideDiameter\">\r\n <label [attr.for]=\"'insideDiameter' + i\" class=\"pw-label control-label col-sm-4\">\r\n Inside Diameter\r\n </label>\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"segment.insideDiameter.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n formControlName=\"value\"\r\n [valueMetaData]=\"segment.insideDiameter\">\r\n </sob-reactive-variable-value-input>\r\n <span class=\"text-danger\" *ngIf=\"getValueFieldsErrorValidations(segment.id, 'insideDiameter')\">\r\n Please enter a value\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"outsideDiameter\">\r\n <label [attr.for]=\"'outsideDiameter' + i\" class=\"pw-label control-label col-sm-4\">\r\n Outside Diameter\r\n </label>\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"segment.outsideDiameter.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n formControlName=\"value\"\r\n [valueMetaData]=\"segment.outsideDiameter\">\r\n </sob-reactive-variable-value-input>\r\n <span class=\"text-danger\" *ngIf=\"getValueFieldsErrorValidations(segment.id, 'outsideDiameter')\">\r\n Please enter a value\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"segmentAngle\">\r\n <label [attr.for]=\"'segmentAngle' + i\" class=\"pw-label control-label col-sm-4\"> Angle </label>\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"segment.segmentAngle.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input formControlName=\"value\" [valueMetaData]=\"segment.segmentAngle\">\r\n </sob-reactive-variable-value-input>\r\n <span class=\"text-danger\" *ngIf=\"getValueFieldsErrorValidations(segment.id, 'segmentAngle')\">\r\n Please enter a value\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"relativeRoughness\">\r\n <label [attr.for]=\"'relativeRoughness' + i\" class=\"pw-label control-label col-sm-4\">\r\n Relative Roughness\r\n </label>\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"segment.relativeRoughness.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n formControlName=\"value\"\r\n [valueMetaData]=\"segment.relativeRoughness\">\r\n </sob-reactive-variable-value-input>\r\n <span class=\"text-danger\" *ngIf=\"getValueFieldsErrorValidations(segment.id, 'relativeRoughness')\">\r\n Please enter a value\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"unitOperation.thermalCalculationMode === 'Thermal'\">\r\n <div class=\"form-group\" formGroupName=\"overallU\">\r\n <label [attr.for]=\"'overallU' + i\" class=\"pw-label control-label col-sm-4\"> Overall U </label>\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"segment.overallU.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input formControlName=\"value\" [valueMetaData]=\"segment.overallU\">\r\n </sob-reactive-variable-value-input>\r\n <span class=\"text-danger\" *ngIf=\"getValueFieldsErrorValidations(segment.id, 'overallU')\">\r\n Please enter a value\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"inletAmbientTemperature\">\r\n <label [attr.for]=\"'inletAmbientTemperature' + i\" class=\"pw-label control-label col-sm-4\">\r\n Inlet Ambient Temperature\r\n </label>\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select\r\n formControlName=\"unit\"\r\n [quantity]=\"segment.inletAmbientTemperature.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n formControlName=\"value\"\r\n [valueMetaData]=\"segment.inletAmbientTemperature\">\r\n </sob-reactive-variable-value-input>\r\n <span\r\n class=\"text-danger\"\r\n *ngIf=\"getValueFieldsErrorValidations(segment.id, 'inletAmbientTemperature')\">\r\n Please enter a value\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"outletAmbientTemperature\">\r\n <label [attr.for]=\"'outletAmbientTemperature' + i\" class=\"pw-label control-label col-sm-4\">\r\n Outlet Ambient Temperature\r\n </label>\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select\r\n formControlName=\"unit\"\r\n [quantity]=\"segment.outletAmbientTemperature.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n formControlName=\"value\"\r\n [valueMetaData]=\"segment.outletAmbientTemperature\">\r\n </sob-reactive-variable-value-input>\r\n <span\r\n class=\"text-danger\"\r\n *ngIf=\"getValueFieldsErrorValidations(segment.id, 'outletAmbientTemperature')\">\r\n Please enter a value\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"waterPipeComments\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <sob-unit-operation-comments [unitOpId]=\"this.unitOperation.id\"></sob-unit-operation-comments>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms';\r\nimport { Subscription } from 'rxjs';\r\nimport { WaterPipe } from '../../../_models/_unit-operations/utilties/water-pipe';\r\nimport { WaterPipePressureModel } from '../../../_config/water-pipe-pressure-model.enum';\r\nimport { ThermalCalculationMode } from '../../../_config/thermal-calculation-mode.enum';\r\nimport { FlowsheetService } from '../../../_services/flowsheet.service';\r\nimport { WaterPipeSegment } from '../../../_models/_unit-operations/utilties/water-pipe-segment';\r\nimport { SimVarFormBuilder } from '../../../_form-utils/sim-var-form-builder';\r\nimport { SimulationVariableMapper } from '../../../_mappers/simulation-variable-mapper';\r\nimport { CoreService } from '../../../_services/core.service';\r\n\r\n@Component({\r\n selector: 'sob-water-pipe',\r\n templateUrl: './water-pipe.component.html',\r\n styleUrls: ['./water-pipe.component.css'],\r\n})\r\nexport class WaterPipeComponent implements OnInit {\r\n @Input()\r\n unitOperation: WaterPipe;\r\n\r\n waterPipeSegmentForm: UntypedFormGroup;\r\n saveSubscription: Subscription;\r\n pipeSegment: WaterPipeSegment;\r\n\r\n constructor(\r\n private coreService: CoreService,\r\n private fb: UntypedFormBuilder,\r\n private svfb: SimVarFormBuilder,\r\n private flowsheetService: FlowsheetService,\r\n private simVarMapper: SimulationVariableMapper\r\n ) {\r\n this.saveSubscription = this.flowsheetService.prepareUnitOperationForSaveRequest.subscribe(() => {\r\n this.save();\r\n this.saveSubscription.unsubscribe();\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n if (this.unitOperation.thermalCalculationMode === ThermalCalculationMode.ISOTHERMAL) {\r\n $('#selectThermalMode').val(ThermalCalculationMode.ISOTHERMAL);\r\n } else if (this.unitOperation.thermalCalculationMode === ThermalCalculationMode.THERMAL) {\r\n $('#selectThermalMode').val(ThermalCalculationMode.THERMAL);\r\n }\r\n\r\n this.waterPipeSegmentForm = this.fb.group({});\r\n this.initWaterPipeSegments(this.unitOperation.thermalCalculationMode);\r\n }\r\n\r\n addSegmentControlWhenOtherMode() {\r\n for (const pipeSegment of this.unitOperation.segments) {\r\n this.waterPipeSegmentForm.addControl(\r\n pipeSegment.id,\r\n this.fb.group({\r\n segmentLength: this.svfb.control(pipeSegment.segmentLength, false, false, false, [Validators.required]),\r\n insideDiameter: this.svfb.control(pipeSegment.insideDiameter, false, false, false, [Validators.required]),\r\n outsideDiameter: this.svfb.control(pipeSegment.outsideDiameter, false, false, false, [Validators.required]),\r\n segmentAngle: this.svfb.control(pipeSegment.segmentAngle, false, false, false, [Validators.required]),\r\n relativeRoughness: this.svfb.control(pipeSegment.relativeRoughness, false, false, false, [\r\n Validators.required,\r\n ]),\r\n })\r\n );\r\n }\r\n }\r\n\r\n private initWaterPipeSegments(calculationModeSelected: ThermalCalculationMode) {\r\n if (calculationModeSelected === ThermalCalculationMode.THERMAL) {\r\n for (const pipeSegment of this.unitOperation.segments) {\r\n this.waterPipeSegmentForm.addControl(\r\n pipeSegment.id,\r\n this.fb.group({\r\n segmentLength: this.svfb.control(pipeSegment.segmentLength, false, false, false, [Validators.required]),\r\n insideDiameter: this.svfb.control(pipeSegment.insideDiameter, false, false, false, [Validators.required]),\r\n outsideDiameter: this.svfb.control(pipeSegment.outsideDiameter, false, false, false, [Validators.required]),\r\n segmentAngle: this.svfb.control(pipeSegment.segmentAngle, false, false, false, [Validators.required]),\r\n relativeRoughness: this.svfb.control(pipeSegment.relativeRoughness, false, false, false, [\r\n Validators.required,\r\n ]),\r\n overallU: this.svfb.control(pipeSegment.overallU, false, false, false, [Validators.required]),\r\n inletAmbientTemperature: this.svfb.control(pipeSegment.inletAmbientTemperature, false, false, false, [\r\n Validators.required,\r\n ]),\r\n outletAmbientTemperature: this.svfb.control(pipeSegment.outletAmbientTemperature, false, false, false, [\r\n Validators.required,\r\n ]),\r\n })\r\n );\r\n }\r\n } else {\r\n this.addSegmentControlWhenOtherMode();\r\n }\r\n }\r\n\r\n public addWaterPipeSegmentFormGroup() {\r\n this.pipeSegment = new WaterPipeSegment({}, this.unitOperation.ownerCase);\r\n this.unitOperation.addWaterPipeSegments(this.pipeSegment);\r\n this.initWaterPipeSegments(this.unitOperation.thermalCalculationMode);\r\n }\r\n\r\n public removeWaterPipeSegment(segment: WaterPipeSegment) {\r\n this.unitOperation.removeWaterPipeSegment(segment);\r\n this.waterPipeSegmentForm.removeControl(segment.id);\r\n this.initWaterPipeSegments(this.unitOperation.thermalCalculationMode);\r\n }\r\n\r\n pipePressureModelChanged(pressureValue) {\r\n if (pressureValue === WaterPipePressureModel.HOMOGENEOUS) {\r\n this.unitOperation.pipePressureModel = WaterPipePressureModel.HOMOGENEOUS;\r\n }\r\n }\r\n\r\n thermalCalculationModeChanged(calculationValue) {\r\n if (calculationValue === ThermalCalculationMode.ISOTHERMAL) {\r\n this.unitOperation.thermalCalculationMode = ThermalCalculationMode.ISOTHERMAL;\r\n this.changeWaterPipeFormGroup(this.unitOperation.thermalCalculationMode);\r\n } else if (calculationValue === ThermalCalculationMode.THERMAL) {\r\n this.unitOperation.thermalCalculationMode = ThermalCalculationMode.THERMAL;\r\n this.changeWaterPipeFormGroup(this.unitOperation.thermalCalculationMode);\r\n } else {\r\n this.unitOperation.thermalCalculationMode = ThermalCalculationMode.ADIABATIC;\r\n this.changeWaterPipeFormGroup(this.unitOperation.thermalCalculationMode);\r\n }\r\n }\r\n\r\n changeWaterPipeFormGroup(thermalMode: ThermalCalculationMode) {\r\n for (const wps of this.unitOperation.segments) {\r\n this.waterPipeSegmentForm.removeControl(wps.id);\r\n if (thermalMode !== ThermalCalculationMode.THERMAL) {\r\n wps.inletAmbientTemperature.value = undefined;\r\n wps.outletAmbientTemperature.value = undefined;\r\n wps.overallU.value = undefined;\r\n }\r\n this.initWaterPipeSegments(thermalMode);\r\n }\r\n }\r\n\r\n getValueFieldsErrorValidations(id: string, formGroupName: string) {\r\n return (\r\n this.waterPipeSegmentForm.get(id).get(formGroupName).get('value').errors &&\r\n this.waterPipeSegmentForm.get(id).get(formGroupName).get('value').touched\r\n );\r\n }\r\n\r\n mapSegmentValuesWhenOtherMode() {\r\n for (const segment of this.unitOperation.segments) {\r\n let sv = this.waterPipeSegmentForm.get(segment.id).get('segmentLength').value;\r\n this.simVarMapper.map(sv, segment.segmentLength);\r\n\r\n sv = this.waterPipeSegmentForm.get(segment.id).get('insideDiameter').value;\r\n this.simVarMapper.map(sv, segment.insideDiameter);\r\n\r\n sv = this.waterPipeSegmentForm.get(segment.id).get('outsideDiameter').value;\r\n this.simVarMapper.map(sv, segment.outsideDiameter);\r\n\r\n sv = this.waterPipeSegmentForm.get(segment.id).get('segmentAngle').value;\r\n this.simVarMapper.map(sv, segment.segmentAngle);\r\n\r\n sv = this.waterPipeSegmentForm.get(segment.id).get('relativeRoughness').value;\r\n this.simVarMapper.map(sv, segment.relativeRoughness);\r\n }\r\n }\r\n\r\n mapSegmentValuesWhenThermalMode() {\r\n this.mapSegmentValuesWhenOtherMode();\r\n for (const segment of this.unitOperation.segments) {\r\n let sv = this.waterPipeSegmentForm.get(segment.id).get('overallU').value;\r\n this.simVarMapper.map(sv, segment.overallU);\r\n\r\n sv = this.waterPipeSegmentForm.get(segment.id).get('inletAmbientTemperature').value;\r\n this.simVarMapper.map(sv, segment.inletAmbientTemperature);\r\n\r\n sv = this.waterPipeSegmentForm.get(segment.id).get('outletAmbientTemperature').value;\r\n this.simVarMapper.map(sv, segment.outletAmbientTemperature);\r\n }\r\n }\r\n\r\n save() {\r\n if (this.unitOperation.thermalCalculationMode === ThermalCalculationMode.THERMAL) {\r\n this.mapSegmentValuesWhenThermalMode();\r\n } else {\r\n this.mapSegmentValuesWhenOtherMode();\r\n }\r\n }\r\n}\r\n","<ul class=\"nav nav-tabs\" role=\"tablist\" style=\"margin-right: 15px; margin-top: 20px\">\r\n <li role=\"presentation\" class=\"active\">\r\n <a href=\"#blockSpecifications\" aria-controls=\"blockSpecifications\" role=\"tab\" data-toggle=\"tab\">Model</a>\r\n </li>\r\n\r\n <li role=\"presentation\">\r\n <a href=\"#constraints\" aria-controls=\"constraints\" role=\"tab\" data-toggle=\"tab\"> Constraints </a>\r\n </li>\r\n\r\n <li role=\"presentation\">\r\n <a href=\"#waterSinkImportComments\" aria-controls=\"waterSinkImportComments\" role=\"tab\" data-toggle=\"tab\">\r\n <i class=\"fa fa-comments fa-lg {{ this.unitOperation.comments ? 'gentle-hover-shake' : '' }}\" aria-hidden=\"true\">\r\n </i>\r\n Comments\r\n </a>\r\n </li>\r\n</ul>\r\n\r\n<div class=\"tab-content pw-margin tab-content-padding\" [formGroup]=\"propertyWindowFormGroup\">\r\n <div role=\"tabpanel\" class=\"tab-pane fade in active\" id=\"blockSpecifications\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <div class=\"form-horizontal\">\r\n <div class=\"form-group\">\r\n <label for=\"pressureCalculationMode\" class=\"pw-label control-label col-sm-4\">\r\n Pressure Calculation Mode\r\n </label>\r\n <div class=\"col-sm-6\">\r\n <select class=\"form-control\" formControlName=\"pressureCalculationMode\" id=\"pressureCalculationMode\">\r\n <option value=\"{{ PressureCalculationMode.LOWEST }}\">Lowest</option>\r\n <option value=\"{{ PressureCalculationMode.OUTLET_PRESSURE }}\">Outlet Pressure</option>\r\n </select>\r\n </div>\r\n </div>\r\n\r\n <ng-container *ngIf=\"isOutletPressureCalculationMode\">\r\n <div class=\"form-group\" formGroupName=\"outletPressure\">\r\n <label class=\"control-label col-sm-4\"> Outlet Pressure </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.outletPressure.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.outletPressure\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <hr />\r\n\r\n <h4>Information Streams</h4>\r\n\r\n <div class=\"form-group\">\r\n <label for=\"steamType\" class=\"control-label col-sm-4\"> Steam Type </label>\r\n\r\n <div class=\"col-sm-8\">\r\n <div class=\"row\">\r\n <div class=\"col-xs-12\">\r\n <select\r\n formControlName=\"steamType\"\r\n name=\"steamType\"\r\n id=\"steamType\"\r\n class=\"form-control\"\r\n (change)=\"onSteamTypeChanged()\">\r\n <option value=\"{{ SteamType.Steam900 }}\">{{ SteamType.Steam900 }}</option>\r\n <option value=\"{{ SteamType.Steam600 }}\">{{ SteamType.Steam600 }}</option>\r\n <option value=\"{{ SteamType.Steam150 }}\">{{ SteamType.Steam150 }}</option>\r\n <option value=\"{{ SteamType.Steam50 }}\">{{ SteamType.Steam50 }}</option>\r\n </select>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <div class=\"col-xs-12\">\r\n <select\r\n name=\"selectedInformationStreamVariableId\"\r\n id=\"selectedInformationStreamVariableId\"\r\n formControlName=\"selectedInformationStreamVariableId\"\r\n size=\"2\"\r\n style=\"height: 200px\"\r\n class=\"form-control\">\r\n <option\r\n (click)=\"filterStreams()\"\r\n *ngFor=\"let sv of availableInformationStreamVariables\"\r\n value=\"{{ sv.id }}\"\r\n (dblclick)=\"addInformationStream()\">\r\n {{ sv.getFullName() }}\r\n </option>\r\n </select>\r\n\r\n <button class=\"btn btn-xs btn-success m-t-xs\" (click)=\"addInformationStream()\">\r\n <i class=\"fa fa-plus-circle\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <ng-container formArrayName=\"inletSourceInformationStreams\">\r\n <ng-container *ngFor=\"let informationStreamGroup of getInformationStreamsFormGroupsArray(); let i = index\">\r\n <div class=\"row\">\r\n <h4>\r\n <a\r\n data-toggle=\"collapse\"\r\n href=\"#informationStreamCollapse{{ i }}\"\r\n aria-expanded=\"false\"\r\n sfeCollapsePanelIcon>\r\n <i class=\"fa fa-plus\" aria-hidden=\"true\"> </i>\r\n {{ activeInformationStreams[i].getFullName() }}\r\n </a>\r\n </h4>\r\n <div>\r\n <span class=\"inline pull-right p-t-5-x\" style=\"margin-top: -30px\">\r\n <button\r\n class=\"btnR btn btn-xs btn-danger\"\r\n (click)=\"removeInformationStream(i)\"\r\n data-toggle=\"tooltip\"\r\n title=\"Remove Information Stream\">\r\n <i class=\"fa fa-minus-circle\"></i>\r\n </button>\r\n </span>\r\n </div>\r\n <div id=\"informationStreamCollapse{{ i }}\" class=\"collapse\">\r\n <sob-water-source-information-stream-form\r\n [informationStream]=\"activeInformationStreams[i]\"\r\n [informationStreamFormGroup]=\"informationStreamGroup\"\r\n (removeClicked)=\"removeInformationStream(i)\">\r\n </sob-water-source-information-stream-form>\r\n </div>\r\n </div>\r\n <hr />\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"constraints\">\r\n <p style=\"text-align: right; position: relative\">\r\n <span style=\"position: absolute; right: -20px; top: -20px; font-weight: bold\">Active</span>\r\n </p>\r\n <div class=\"form-horizontal\">\r\n <ng-container>\r\n <div class=\"form-group\" formGroupName=\"massFlowrate\">\r\n <label class=\"control-label col-sm-3\"> Flowrate </label>\r\n\r\n <div class=\"col-sm-9\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-sm-5\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.massFlowrate.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-sm-5\">\r\n <sob-reactive-variable-value-input formControlName=\"value\" [valueMetaData]=\"unitOperation.massFlowrate\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n <div class=\"col-sm-2\">\r\n <sob-reactive-constraint-check-box\r\n formControlName=\"isActive\"\r\n [isConstraint]=\"true\"></sob-reactive-constraint-check-box>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"pressure\">\r\n <label class=\"control-label col-sm-3\"> Pressure </label>\r\n\r\n <div class=\"col-sm-9\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-5\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.pressure.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-5\">\r\n <sob-reactive-variable-value-input formControlName=\"value\" [valueMetaData]=\"unitOperation.pressure\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n <div class=\"col-xs-2\">\r\n <sob-reactive-constraint-check-box\r\n formControlName=\"isActive\"\r\n [isConstraint]=\"true\"></sob-reactive-constraint-check-box>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"temperature\">\r\n <label class=\"control-label col-sm-3\"> Temperature </label>\r\n\r\n <div class=\"col-sm-9\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-5\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.temperature.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-5\">\r\n <sob-reactive-variable-value-input formControlName=\"value\" [valueMetaData]=\"unitOperation.temperature\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n <div class=\"col-xs-2\">\r\n <sob-reactive-constraint-check-box\r\n formControlName=\"isActive\"\r\n [isConstraint]=\"true\"></sob-reactive-constraint-check-box>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"waterSinkImportComments\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <sob-unit-operation-comments [unitOpId]=\"this.unitOperation.id\"></sob-unit-operation-comments>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { UntypedFormArray, UntypedFormBuilder } from '@angular/forms';\r\nimport { BaseObjectFormGroupWrapper } from '../../../_form-utils/base-object-form-group-wrapper';\r\nimport { SimulationVariable, UnitOperation } from '../../../_models';\r\nimport { SteamType } from '../../../_config/steam-type.enum';\r\nimport { CoreService } from '../../../_services/core.service';\r\nimport { SimVarFormBuilder } from '../../../_form-utils/sim-var-form-builder';\r\nimport { AbstractWaterInformationStreamPropertyWindow } from '../abstract-water-information-stream-property-window';\r\nimport { WaterSinkImport } from '../../../_models/_unit-operations/utilties/water-sink-import';\r\nimport { SteamUseUnitOperation } from '../../../_models/_unit-operations/steam-use-unit-operation';\r\nimport { PressureCalculationMode } from '../../../_config/pressure-calculation-mode.enum';\r\nimport { unitOperationsConfig } from '../../../_config/unit-operations.config';\r\n\r\n@Component({\r\n selector: 'sob-water-sink-import',\r\n templateUrl: './water-sink-import.component.html',\r\n styleUrls: ['./water-sink-import.component.css'],\r\n})\r\nexport class WaterSinkImportComponent extends AbstractWaterInformationStreamPropertyWindow implements OnInit {\r\n @Input() override unitOperation: WaterSinkImport;\r\n @Input() override formGroupWrapper: BaseObjectFormGroupWrapper;\r\n PressureCalculationMode = PressureCalculationMode;\r\n SteamType = SteamType;\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-useless-constructor\r\n constructor(coreService: CoreService, fb: UntypedFormBuilder, svfb: SimVarFormBuilder) {\r\n super(coreService, fb, svfb);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.activeInformationStreams.push(...this.unitOperation.inletSourceInformationStreams);\r\n this.addControls();\r\n this.formGroupWrapper.storeOriginalValue();\r\n this.filterStreams();\r\n }\r\n\r\n override addControls() {\r\n super.addControls();\r\n\r\n this.propertyWindowFormGroup.addControl(\r\n 'massFlowrate',\r\n this.svfb.control(this.unitOperation.massFlowrate, true, false, true)\r\n );\r\n\r\n this.propertyWindowFormGroup.addControl(\r\n 'pressure',\r\n this.svfb.control(this.unitOperation.pressure, true, false, true)\r\n );\r\n\r\n this.propertyWindowFormGroup.addControl(\r\n 'temperature',\r\n this.svfb.control(this.unitOperation.temperature, true, false, true)\r\n );\r\n }\r\n\r\n protected getOtherInformationStreamUsers(): UnitOperation[] {\r\n return this.currentCase.filterUnitOperations(\r\n uo => uo.category === unitOperationsConfig.waterSinkImport.key && uo.id !== this.unitOperation.id\r\n );\r\n }\r\n\r\n protected usesInformationStream(informationStreamUser: UnitOperation, simulationVariableId: string): boolean {\r\n return !!(informationStreamUser as WaterSinkImport).inletSourceInformationStreams.find(\r\n i => i.simulationVariableId === simulationVariableId\r\n );\r\n }\r\n\r\n protected getAllowedAvailableSteamVariableByType(\r\n uo: SteamUseUnitOperation,\r\n steamType: SteamType\r\n ): SimulationVariable {\r\n return uo.getSteamUseVariableByType(steamType);\r\n }\r\n\r\n get informationStreamsFormArray() {\r\n return this.propertyWindowFormGroup.get('inletSourceInformationStreams') as UntypedFormArray;\r\n }\r\n\r\n override get propertyWindowFormGroup() {\r\n return this.formGroupWrapper.getFormGroup();\r\n }\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { AbstractControl, UntypedFormBuilder } from '@angular/forms';\r\nimport { BaseObjectFormGroupWrapper } from '../../../_form-utils/base-object-form-group-wrapper';\r\nimport { SimVarFormBuilder } from '../../../_form-utils/sim-var-form-builder';\r\nimport { WaterBoiler } from '../../../_models/_unit-operations/utilties/water-boiler';\r\nimport { SimulationVariable } from '../../../_models/simulation-variable';\r\nimport { isEmptyValue } from '../../../_utils/utils';\r\nimport { VariableStatus } from '../../../_config/variable-status.enum';\r\n\r\n@Component({\r\n selector: 'sob-water-boiler',\r\n templateUrl: './water-boiler.component.html',\r\n styleUrls: ['./water-boiler.component.css'],\r\n})\r\nexport class WaterBoilerComponent implements OnInit {\r\n @Input() unitOperation: WaterBoiler;\r\n @Input() formGroupWrapper: BaseObjectFormGroupWrapper;\r\n\r\n constructor(private fb: UntypedFormBuilder, private svfb: SimVarFormBuilder) {}\r\n\r\n ngOnInit() {\r\n this.addControls();\r\n this.formGroupWrapper.storeOriginalValue();\r\n this.grayOutFields();\r\n }\r\n\r\n addControls() {\r\n this.propertyWindowFormGroup.addControl('name', this.fb.control(this.unitOperation.name));\r\n this.propertyWindowFormGroup.addControl('outletPressure', this.svfb.control(this.unitOperation.outletPressure));\r\n this.propertyWindowFormGroup.addControl(\r\n 'outletVaporFraction',\r\n this.svfb.control(this.unitOperation.outletVaporFraction)\r\n );\r\n this.propertyWindowFormGroup.addControl(\r\n 'outletTemperature',\r\n this.svfb.control(this.unitOperation.outletTemperature)\r\n );\r\n this.propertyWindowFormGroup.addControl('power', this.svfb.control(this.unitOperation.power));\r\n this.propertyWindowFormGroup.addControl(\r\n 'fuelGasEmissionFactor',\r\n this.svfb.control(this.unitOperation.fuelGasEmissionFactor)\r\n );\r\n this.propertyWindowFormGroup.addControl(\r\n 'fuelGasHeatingValue',\r\n this.svfb.control(this.unitOperation.fuelGasHeatingValue)\r\n );\r\n this.propertyWindowFormGroup.addControl('ghgEmissions', this.svfb.control(this.unitOperation.ghgEmissions, true));\r\n\r\n this.propertyWindowFormGroup.addControl(\r\n 'massCapacity',\r\n this.svfb.control(this.unitOperation.massCapacity, false, false, true)\r\n );\r\n this.propertyWindowFormGroup.addControl(\r\n 'minimumMassFlowrate',\r\n this.svfb.control(this.unitOperation.minimumMassFlowrate, false, false, true)\r\n );\r\n }\r\n\r\n grayOutFields(): void {\r\n const temperature = this.propertyWindowFormGroup.get('outletTemperature').get('value');\r\n const pressure = this.propertyWindowFormGroup.get('outletPressure').get('value');\r\n const vaporFraction = this.propertyWindowFormGroup.get('outletVaporFraction').get('value');\r\n const power = this.propertyWindowFormGroup.get('power').get('value');\r\n\r\n // an array of tuples\r\n const controlsWithSimVar: [SimulationVariable, AbstractControl][] = [\r\n [this.unitOperation.outletTemperature, temperature],\r\n [this.unitOperation.outletPressure, pressure],\r\n [this.unitOperation.outletVaporFraction, vaporFraction],\r\n [this.unitOperation.power, power],\r\n ];\r\n\r\n const controlsWithUndefinedValue = controlsWithSimVar.filter(item => {\r\n // the solver calculated status must be considered as well\r\n return isEmptyValue(item[1].value) || item[0].variableStatus === VariableStatus.SOLVER_CALCULATED;\r\n });\r\n\r\n const controlsWithValue = controlsWithSimVar.filter(item => {\r\n return !isEmptyValue(item[1].value) && item[0].variableStatus !== VariableStatus.SOLVER_CALCULATED;\r\n });\r\n\r\n if (controlsWithValue.length >= controlsWithUndefinedValue.length) {\r\n for (let i = 0; i < controlsWithUndefinedValue.length; i++) {\r\n controlsWithUndefinedValue[i][0].variableStatus = VariableStatus.SOLVER_CALCULATED;\r\n controlsWithUndefinedValue[i][1].disable();\r\n }\r\n } else {\r\n controlsWithSimVar.forEach(item => {\r\n item[0].variableStatus = VariableStatus.USER_SPECIFIED;\r\n item[1].enable();\r\n });\r\n }\r\n }\r\n\r\n get propertyWindowFormGroup() {\r\n return this.formGroupWrapper.getFormGroup();\r\n }\r\n\r\n // endregion\r\n}\r\n","<ul class=\"nav nav-tabs\" role=\"tablist\" style=\"margin-right: 15px; margin-top: 20px\">\r\n <li role=\"presentation\" class=\"active\">\r\n <a href=\"#blockSpecifications\" aria-controls=\"blockSpecifications\" role=\"tab\" data-toggle=\"tab\">Model</a>\r\n </li>\r\n\r\n <li role=\"presentation\">\r\n <a href=\"#constraints\" aria-controls=\"constraints\" role=\"tab\" data-toggle=\"tab\">Constraints</a>\r\n </li>\r\n\r\n <li role=\"presentation\">\r\n <a href=\"#waterBoilerComments\" aria-controls=\"waterBoilerComments\" role=\"tab\" data-toggle=\"tab\">\r\n <i class=\"fa fa-comments fa-lg {{ this.unitOperation.comments ? 'gentle-hover-shake' : '' }}\" aria-hidden=\"true\">\r\n </i>\r\n Comments\r\n </a>\r\n </li>\r\n</ul>\r\n\r\n<div class=\"tab-content pw-margin tab-content-padding\" [formGroup]=\"propertyWindowFormGroup\">\r\n <div role=\"tabpanel\" class=\"tab-pane fade in active\" id=\"blockSpecifications\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <div class=\"form-horizontal\">\r\n <div class=\"form-horizontal\" (keyup)=\"grayOutFields()\">\r\n <h4 class=\"subtitle\">Conditions</h4>\r\n <hr />\r\n <br />\r\n\r\n <ng-container>\r\n <div class=\"form-group\" formGroupName=\"outletVaporFraction\">\r\n <label class=\"control-label col-sm-4\"> Quality </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select\r\n formControlName=\"unit\"\r\n [quantity]=\"unitOperation.outletVaporFraction.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.outletVaporFraction\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"outletTemperature\">\r\n <label class=\"control-label col-sm-4\"> Temperature </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select\r\n formControlName=\"unit\"\r\n [quantity]=\"unitOperation.outletTemperature.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.outletTemperature\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"outletPressure\">\r\n <label class=\"control-label col-sm-4\"> Pressure </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.outletPressure.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.outletPressure\">\r\n >\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"power\">\r\n <label class=\"control-label col-sm-4\"> Duty </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.power.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input formControlName=\"value\" [valueMetaData]=\"unitOperation.power\">\r\n >\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <h4 class=\"subtitle\">GHG</h4>\r\n <hr />\r\n <br />\r\n\r\n <div class=\"form-group\" formGroupName=\"fuelGasEmissionFactor\">\r\n <label class=\"control-label col-sm-4\"> Fuel Gas Emission Factor </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select\r\n formControlName=\"unit\"\r\n [quantity]=\"unitOperation.fuelGasEmissionFactor.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.fuelGasEmissionFactor\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"fuelGasHeatingValue\">\r\n <label class=\"control-label col-sm-4\"> Fuel Gas Heating Value (LHV) </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select\r\n formControlName=\"unit\"\r\n [quantity]=\"unitOperation.fuelGasHeatingValue.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.fuelGasHeatingValue\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group\" formGroupName=\"ghgEmissions\">\r\n <label class=\"control-label col-sm-4\"> GHG Emissions </label>\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.ghgEmissions.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.ghgEmissions\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"constraints\">\r\n <p style=\"text-align: right; position: relative\">\r\n <span style=\"position: absolute; right: -20px; top: -20px; font-weight: bold\">Active</span>\r\n </p>\r\n <div class=\"form-horizontal\">\r\n <ng-container>\r\n <div class=\"form-group\" formGroupName=\"massCapacity\">\r\n <label class=\"control-label col-sm-4\"> Maximum Feed Capacity </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-5\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.massCapacity.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-5\">\r\n <sob-reactive-variable-value-input formControlName=\"value\" [valueMetaData]=\"unitOperation.massCapacity\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n <div class=\"col-xs-2\">\r\n <sob-reactive-constraint-check-box\r\n formControlName=\"isActive\"\r\n [isConstraint]=\"true\"\r\n [valueMetaData]=\"unitOperation.massCapacity\"></sob-reactive-constraint-check-box>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"minimumMassFlowrate\">\r\n <label class=\"control-label col-sm-4\"> Minimum Mass Flowrate </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-5\">\r\n <sob-reactive-unit-select\r\n formControlName=\"unit\"\r\n [quantity]=\"unitOperation.minimumMassFlowrate.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-5\">\r\n <sob-reactive-variable-value-input\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.minimumMassFlowrate\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n <div class=\"col-xs-2\">\r\n <sob-reactive-constraint-check-box\r\n formControlName=\"isActive\"\r\n [isConstraint]=\"true\"\r\n [valueMetaData]=\"unitOperation.minimumMassFlowrate\"></sob-reactive-constraint-check-box>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"waterBoilerComments\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <sob-unit-operation-comments [unitOpId]=\"this.unitOperation.id\"></sob-unit-operation-comments>\r\n </div>\r\n </div>\r\n</div>\r\n","import { AfterViewInit, Component, Input, OnInit } from '@angular/core';\r\nimport { UntypedFormBuilder } from '@angular/forms';\r\nimport { SimVarFormBuilder } from '../../../_form-utils/sim-var-form-builder';\r\nimport { BaseObjectFormGroupWrapper } from '../../../_form-utils/base-object-form-group-wrapper';\r\nimport { SulfurPlant } from '../../../_models/_unit-operations/sulfur-plant';\r\n\r\n@Component({\r\n selector: 'sob-sulfur-plant',\r\n templateUrl: './sulfur-plant.component.html',\r\n styleUrls: ['./sulfur-plant.component.css'],\r\n})\r\nexport class SulfurPlantComponent implements OnInit, AfterViewInit {\r\n @Input() formGroupWrapper: BaseObjectFormGroupWrapper;\r\n @Input() unitOperation: SulfurPlant;\r\n\r\n constructor(private fb: UntypedFormBuilder, private svfb: SimVarFormBuilder) {}\r\n\r\n ngOnInit(): void {\r\n this.addControls();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.formGroupWrapper.storeOriginalValue();\r\n }\r\n\r\n addControls() {\r\n this.propertyWindowFormGroup.addControl('name', this.fb.control(this.unitOperation.name));\r\n this.propertyWindowFormGroup.addControl(\r\n 'sulfurFlowrate',\r\n this.svfb.control(this.unitOperation.sulfurFlowrate, true)\r\n );\r\n this.propertyWindowFormGroup.addControl('sulfurCapacity', this.svfb.control(this.unitOperation.sulfurCapacity));\r\n this.propertyWindowFormGroup.addControl(\r\n 'sulfurGHGIntensity',\r\n this.svfb.control(this.unitOperation.sulfurGHGIntensity)\r\n );\r\n this.propertyWindowFormGroup.addControl('ghgEmissions', this.svfb.control(this.unitOperation.ghgEmissions, true));\r\n\r\n this.propertyWindowFormGroup.addControl('opexVar', this.svfb.control(this.unitOperation.opexVar));\r\n this.propertyWindowFormGroup.addControl('opexGasDiesel', this.svfb.control(this.unitOperation.opexGasDiesel));\r\n this.propertyWindowFormGroup.addControl('opexPower', this.svfb.control(this.unitOperation.opexPower));\r\n this.propertyWindowFormGroup.addControl(\r\n 'opexCarbonDioxide',\r\n this.svfb.control(this.unitOperation.opexCarbonDioxide, true)\r\n );\r\n this.propertyWindowFormGroup.addControl('opexFixed', this.svfb.control(this.unitOperation.opexFixed));\r\n this.propertyWindowFormGroup.addControl('opexTotal', this.svfb.control(this.unitOperation.opexTotal, true));\r\n\r\n this.propertyWindowFormGroup.addControl('capexAmortized', this.svfb.control(this.unitOperation.capexAmortized));\r\n this.propertyWindowFormGroup.addControl('capexTotal', this.svfb.control(this.unitOperation.capexTotal, true));\r\n }\r\n\r\n get propertyWindowFormGroup() {\r\n return this.formGroupWrapper.getFormGroup();\r\n }\r\n}\r\n","<ul class=\"nav nav-tabs\" role=\"tablist\" style=\"margin-right: 15px\">\r\n <li role=\"presentation\" class=\"active\">\r\n <a href=\"#blockSpecifications\" aria-controls=\"blockSpecifications\" role=\"tab\" data-toggle=\"tab\">General</a>\r\n </li>\r\n <li role=\"presentation\">\r\n <a href=\"#economics\" aria-controls=\"economics\" role=\"tab\" data-toggle=\"tab\">Economics</a>\r\n </li>\r\n\r\n <li role=\"presentation\">\r\n <a href=\"#sulfurPlantComments\" aria-controls=\"sulfurPlantComments\" role=\"tab\" data-toggle=\"tab\">\r\n <i class=\"fa fa-comments fa-lg {{ this.unitOperation.comments ? 'gentle-hover-shake' : '' }}\" aria-hidden=\"true\">\r\n </i>\r\n Comments\r\n </a>\r\n </li>\r\n</ul>\r\n\r\n<div class=\"tab-content pw-margin tab-content-padding\" [formGroup]=\"propertyWindowFormGroup\">\r\n <ng-container>\r\n <div role=\"tabpanel\" class=\"tab-pane fade in active\" id=\"blockSpecifications\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <div class=\"form-horizontal\">\r\n <div class=\"form-group\" formGroupName=\"sulfurFlowrate\">\r\n <label class=\"control-label col-sm-4\"> H2S Flowrate </label>\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.sulfurFlowrate.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.sulfurFlowrate\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <hr />\r\n <h4 class=\"subtitle\">Constraints</h4>\r\n\r\n <div class=\"form-group\" formGroupName=\"sulfurCapacity\">\r\n <label class=\"control-label col-sm-4\"> Sulfur Capacity </label>\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.sulfurCapacity.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.sulfurCapacity\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <hr />\r\n <h4 class=\"subtitle\">GHG</h4>\r\n\r\n <div class=\"form-group\" formGroupName=\"sulfurGHGIntensity\">\r\n <label class=\"control-label col-sm-4\"> Process GHG Intensity (Excluding Fuel Gas) </label>\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select\r\n formControlName=\"unit\"\r\n [quantity]=\"unitOperation.sulfurGHGIntensity.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.sulfurGHGIntensity\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"ghgEmissions\">\r\n <label class=\"control-label col-sm-4\"> GHG Emissions </label>\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.ghgEmissions.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.ghgEmissions\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <hr />\r\n <h4 class=\"subtitle\">Utilities</h4>\r\n </div>\r\n <div class=\"form-horizontal\">\r\n <sob-reactive-steam-use-utility [formGroupWrapper]=\"formGroupWrapper\" [unitOperation]=\"unitOperation\">\r\n </sob-reactive-steam-use-utility>\r\n <sob-reactive-gas-contributor [formGroupWrapper]=\"formGroupWrapper\" [unitOperation]=\"unitOperation\">\r\n </sob-reactive-gas-contributor>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"economics\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <div class=\"form-horizontal\">\r\n <h4 class=\"subtitle\">OPEX</h4>\r\n\r\n <div class=\"form-group\" formGroupName=\"opexVar\">\r\n <label class=\"control-label col-sm-4\"> Variable </label>\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.opexVar.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input formControlName=\"value\" [valueMetaData]=\"unitOperation.opexVar\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"opexGasDiesel\">\r\n <label class=\"control-label col-sm-4\"> Gas Diesel </label>\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.opexGasDiesel.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.opexGasDiesel\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"opexPower\">\r\n <label class=\"control-label col-sm-4\"> Power </label>\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.opexPower.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input formControlName=\"value\" [valueMetaData]=\"unitOperation.opexPower\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"opexCarbonDioxide\">\r\n <label class=\"control-label col-sm-4\"> CO2 </label>\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select\r\n formControlName=\"unit\"\r\n [quantity]=\"unitOperation.opexCarbonDioxide.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.opexCarbonDioxide\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"opexFixed\">\r\n <label class=\"control-label col-sm-4\"> Fixed </label>\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.opexFixed.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input formControlName=\"value\" [valueMetaData]=\"unitOperation.opexFixed\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"opexTotal\">\r\n <label class=\"control-label col-sm-4\"> Total </label>\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.opexTotal.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input formControlName=\"value\" [valueMetaData]=\"unitOperation.opexTotal\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <hr />\r\n <h4 class=\"subtitle\">CAPEX</h4>\r\n\r\n <div class=\"form-group\" formGroupName=\"capexAmortized\">\r\n <label class=\"control-label col-sm-4\"> Amortized CAPEX </label>\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.capexAmortized.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.capexAmortized\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"capexTotal\">\r\n <label class=\"control-label col-sm-4\"> Total </label>\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.capexTotal.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input formControlName=\"value\" [valueMetaData]=\"unitOperation.capexTotal\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"sulfurPlantComments\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <sob-unit-operation-comments [unitOpId]=\"this.unitOperation.id\"></sob-unit-operation-comments>\r\n </div>\r\n </div>\r\n</div>\r\n","<ul class=\"nav nav-tabs\" role=\"tablist\" style=\"margin-right: 15px\">\r\n <li role=\"presentation\" class=\"active\">\r\n <a href=\"#blockSpecifications\" aria-controls=\"blockSpecifications\" role=\"tab\" data-toggle=\"tab\">Model</a>\r\n </li>\r\n\r\n <li role=\"presentation\">\r\n <a href=\"#waterHeaderComments\" aria-controls=\"waterHeaderComments\" role=\"tab\" data-toggle=\"tab\">\r\n <i class=\"fa fa-comments fa-lg {{ this.unitOperation.comments ? 'gentle-hover-shake' : '' }}\" aria-hidden=\"true\">\r\n </i>\r\n Comments\r\n </a>\r\n </li>\r\n</ul>\r\n\r\n<div class=\"tab-content pw-margin tab-content-padding\" [formGroup]=\"propertyWindowFormGroup\">\r\n <div role=\"tabpanel\" class=\"tab-pane fade in active\" id=\"blockSpecifications\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <div class=\"form-horizontal\">\r\n <div class=\"form-group\">\r\n <label for=\"pressureCalculationMode\" class=\"pw-label control-label col-sm-4\">\r\n Pressure Calculation Mode\r\n </label>\r\n <div class=\"col-sm-6\">\r\n <select class=\"form-control\" formControlName=\"pressureCalculationMode\" id=\"pressureCalculationMode\">\r\n <option value=\"{{ PressureCalculationMode.LOWEST }}\">Lowest</option>\r\n <option value=\"{{ PressureCalculationMode.OUTLET_PRESSURE }}\">Outlet Pressure</option>\r\n </select>\r\n </div>\r\n </div>\r\n\r\n <ng-container *ngIf=\"isOutletPressureCalculationMode\">\r\n <div class=\"form-group\" formGroupName=\"outletPressure\">\r\n <label class=\"control-label col-sm-4\"> Outlet Pressure </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.outletPressure.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.outletPressure\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <div class=\"form-group m-b-md\">\r\n <label for=\"isOptimizable\" class=\"control-label col-sm-4\"> Optimize </label>\r\n\r\n <div class=\"col-sm-4\">\r\n <label for=\"isOptimizable\" class=\"control-label\">\r\n <input\r\n type=\"checkbox\"\r\n id=\"isOptimizable\"\r\n formControlName=\"isOptimizable\"\r\n (change)=\"isOptimizableChanged($event.target.checked)\" />\r\n </label>\r\n </div>\r\n </div>\r\n\r\n <label class=\"control-label col-sm-4\"> Stream Name </label>\r\n\r\n <label class=\"control-label col-sm-6\"> Distribution Ratio </label>\r\n\r\n <br />\r\n <br />\r\n <br />\r\n\r\n <div\r\n class=\"form-group\"\r\n formArrayName=\"distributionRatioVariables\"\r\n *ngFor=\"let dv of distributionRatioVariablesFormArray.controls; let i = index\">\r\n <label for=\"distributionRatio{{ i }}\" class=\"pw-label control-label col-sm-4\">\r\n {{ findDistributionRatioName(i) }}\r\n </label>\r\n\r\n <div class=\"col-sm-8\" formGroupName=\"{{ i }}\">\r\n <input\r\n type=\"text\"\r\n class=\"form-control\"\r\n id=\"distributionRatio{{ i }}\"\r\n formControlName=\"value\"\r\n (change)=\"roundDistributionVariable(i)\"\r\n [readonly]=\"i === distributionRatioVariablesFormArray.controls.length - 1\" />\r\n <span class=\"text-danger\" *ngIf=\"shouldShowValidationError(getDistributionRatioVariableValueControl(i))\">\r\n <span *ngIf=\"getDistributionRatioVariableValueControl(i).errors?.required\">Please enter a value</span>\r\n <span *ngIf=\"getDistributionRatioVariableValueControl(i).errors?.max\"\r\n >Distribution ratio cannot be greater than 1</span\r\n >\r\n <span *ngIf=\"getDistributionRatioVariableValueControl(i).errors?.min\"\r\n >Distribution ratio cannot be negative</span\r\n >\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"waterHeaderComments\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <sob-unit-operation-comments [unitOpId]=\"this.unitOperation.id\"></sob-unit-operation-comments>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\r\nimport { AbstractControl, UntypedFormArray, UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms';\r\nimport { SubSink } from 'subsink';\r\nimport { BaseObjectFormGroupWrapper } from '../../../_form-utils/base-object-form-group-wrapper';\r\nimport { WaterHeader } from '../../../_models/_unit-operations/utilties/water-header';\r\nimport { AbstractFormGroupPropertyWindow } from '../abstract-form-group-property-window';\r\nimport { SimVarFormBuilder } from '../../../_form-utils/sim-var-form-builder';\r\nimport { hasNumericValue, roundNumber } from '../../../_utils/utils';\r\nimport { PressureCalculationMode } from '../../../_config/pressure-calculation-mode.enum';\r\nimport { CoreService } from '../../../_services/core.service';\r\nimport { DistributionRatioVariable } from '../../../_models/_unit-operations/distribution-ratio-variable';\r\n\r\ndeclare let unitConverter: any;\r\n\r\n@Component({\r\n selector: 'sob-water-header',\r\n templateUrl: './water-header.component.html',\r\n styleUrls: ['./water-header.component.css'],\r\n})\r\nexport class WaterHeaderComponent extends AbstractFormGroupPropertyWindow implements OnInit, OnDestroy {\r\n @Input() formGroupWrapper: BaseObjectFormGroupWrapper;\r\n @Input() unitOperation: WaterHeader;\r\n PressureCalculationMode = PressureCalculationMode;\r\n\r\n private subSink = new SubSink();\r\n\r\n constructor(private fb: UntypedFormBuilder, private svfb: SimVarFormBuilder, private coreService: CoreService) {\r\n super();\r\n\r\n this.subSink.add(\r\n this.coreService.unitOperationRemovedRequest.subscribe(uo => {\r\n this.removeDistributionRatioVariable(uo.id);\r\n })\r\n );\r\n\r\n this.subSink.add(\r\n this.coreService.streamRemovedRequest.subscribe(s => {\r\n if (s.inletUnitOperationId === this.unitOperation.id) {\r\n this.removeDistributionRatioVariable(s.outletUnitOperationId);\r\n }\r\n })\r\n );\r\n\r\n this.subSink.add(\r\n this.coreService.streamAddedRequest.subscribe(s => {\r\n if (s.inletUnitOperationId === this.unitOperation.id) {\r\n this.addDistributionRatioVariable(s.outletUnitOperationId);\r\n }\r\n })\r\n );\r\n }\r\n\r\n ngOnInit(): void {\r\n this.init();\r\n\r\n this.distributionRatioVariablesFormArray.valueChanges.forEach(() => {\r\n this.calculateLastDistributionVariable();\r\n });\r\n\r\n // eslint-disable-next-line guard-for-in\r\n for (const i in this.distributionRatioVariablesFormArray.controls) {\r\n this.roundDistributionVariable(+i);\r\n }\r\n }\r\n\r\n // region form building\r\n addControls() {\r\n this.propertyWindowFormGroup.addControl('name', this.fb.control(this.unitOperation.name));\r\n this.propertyWindowFormGroup.addControl(\r\n 'pressureCalculationMode',\r\n this.fb.control(this.unitOperation.pressureCalculationMode)\r\n );\r\n this.propertyWindowFormGroup.addControl('outletPressure', this.svfb.control(this.unitOperation.outletPressure));\r\n this.propertyWindowFormGroup.addControl('isOptimizable', this.fb.control(this.unitOperation.isOptimizable));\r\n this.propertyWindowFormGroup.addControl(\r\n 'distributionRatioVariables',\r\n this.fb.array(this.createDistributionRatioVariablesControls())\r\n );\r\n this.isOptimizableChanged(this.unitOperation.isOptimizable);\r\n }\r\n\r\n private createDistributionRatioVariablesControls(): UntypedFormGroup[] {\r\n return this.unitOperation.distributionRatioVariables.map(dv => {\r\n return this.createSingleDistributionRatioVariableControl(dv);\r\n });\r\n }\r\n\r\n protected createSingleDistributionRatioVariableControl(dv: DistributionRatioVariable) {\r\n const roundedValue = hasNumericValue(dv.value) ? roundNumber(+dv.value, 3) : undefined;\r\n\r\n const valueControl = this.fb.control(roundedValue, [Validators.required, Validators.min(0)]);\r\n\r\n return this.fb.group({\r\n value: valueControl,\r\n });\r\n }\r\n // endregion\r\n\r\n // region adding/removing distribution ratio variables when property window is open\r\n private addDistributionRatioVariable(unitOperationId: string) {\r\n this.unitOperation.addDistributionVariable(unitOperationId);\r\n\r\n const dv = this.unitOperation.distributionRatioVariables[this.unitOperation.distributionRatioVariables.length - 1];\r\n const dvControl = this.createSingleDistributionRatioVariableControl(dv);\r\n this.distributionRatioVariablesFormArray.push(dvControl);\r\n }\r\n\r\n /**\r\n * Removes a distribution ratio variable\r\n * Makes sense when a stream is deleted\r\n * @param unitOperationId\r\n * @private\r\n */\r\n private removeDistributionRatioVariable(unitOperationId: string) {\r\n const index = this.unitOperation.findDistributionRatioVariableIndex(unitOperationId);\r\n if (index === -1) {\r\n return;\r\n }\r\n\r\n this.distributionRatioVariablesFormArray.removeAt(index);\r\n this.unitOperation.removeDistributionRatioVariable(unitOperationId);\r\n }\r\n // endregion\r\n\r\n // region form getters\r\n get distributionRatioVariablesFormArray() {\r\n return this.propertyWindowFormGroup.get('distributionRatioVariables') as UntypedFormArray;\r\n }\r\n\r\n getDistributionRatioVariableValueControl(i): AbstractControl {\r\n return this.distributionRatioVariablesFormArray.get(`${i}`).get('value');\r\n }\r\n\r\n get isOutletPressureCalculationMode(): boolean {\r\n return (\r\n this.propertyWindowFormGroup.controls['pressureCalculationMode'].value === PressureCalculationMode.OUTLET_PRESSURE\r\n );\r\n }\r\n\r\n // endregion\r\n\r\n // region event listeners\r\n isOptimizableChanged(checked: boolean) {\r\n if (checked) {\r\n this.distributionRatioVariablesFormArray.disable();\r\n } else {\r\n this.distributionRatioVariablesFormArray.enable();\r\n }\r\n }\r\n // endregion\r\n\r\n findDistributionRatioName(index: number): string {\r\n if (this.unitOperation) {\r\n return this.unitOperation.findDistributionRatioVariableName(index);\r\n }\r\n\r\n return '';\r\n }\r\n\r\n roundDistributionVariable(i: number) {\r\n const dv = this.distributionRatioVariablesFormArray.controls[i];\r\n const dvParsed = unitConverter.parseFloatString(dv.get('value').value);\r\n\r\n if (!Number.isNaN(dvParsed)) {\r\n dv.get('value').setValue(parseFloat(dvParsed.toFixed(3)));\r\n }\r\n }\r\n\r\n calculateLastDistributionVariable() {\r\n const { controls } = this.distributionRatioVariablesFormArray;\r\n if (controls.length <= 1) {\r\n return;\r\n }\r\n\r\n let total = 0;\r\n\r\n for (let i = 0; i < controls.length - 1; i++) {\r\n const dv = controls[i];\r\n const dvParsed = unitConverter.parseFloatString(dv.get('value').value);\r\n\r\n if (!Number.isNaN(dvParsed)) {\r\n total += dvParsed;\r\n } else {\r\n return;\r\n }\r\n }\r\n\r\n controls[controls.length - 1].get('value').setValue(parseFloat((1 - total).toFixed(5)), {\r\n emitEvent: false,\r\n emitModelToViewChange: true,\r\n emitViewToModelChange: true,\r\n });\r\n controls[controls.length - 1].get('value').markAsDirty();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subSink.unsubscribe();\r\n }\r\n}\r\n","import { Component, Input } from '@angular/core';\r\nimport { FuelGasUtilityUnitOperation } from '../../../_models/_unit-operations/fuel-gas/fuel-gas-utility-unit-operation';\r\nimport { FlowsheetService } from '../../../_services/flowsheet.service';\r\n\r\n@Component({\r\n selector: 'sob-fuel-gas-utility-unit-operation',\r\n templateUrl: './fuel-gas-utility-unit-operation.component.html',\r\n styleUrls: ['./fuel-gas-utility-unit-operation.component.css'],\r\n})\r\nexport class FuelGasUtilityUnitOperationComponent {\r\n @Input() unitOperation: FuelGasUtilityUnitOperation;\r\n\r\n constructor(private flowsheetService: FlowsheetService) {}\r\n\r\n openSubFlowsheet(): void {\r\n if ($('#closePropertyWindow').attr('disabled')) {\r\n return;\r\n }\r\n this.flowsheetService.prepareUnitOperationForSave();\r\n this.flowsheetService.closePropertyWindow();\r\n\r\n this.flowsheetService.loadUnitOperationFlowsheet(this.unitOperation.id);\r\n }\r\n}\r\n","<div class=\"text-center\" style=\"margin-top: 20px; margin-bottom: 20px\">\r\n <a (click)=\"openSubFlowsheet()\" class=\"btn btn-primary\" style=\"margin-bottom: 15px\">\r\n <i class=\"fa fa-window-maximize\"></i> Use Subflowsheet\r\n </a>\r\n <hr />\r\n</div>\r\n","<ul class=\"nav nav-tabs\" role=\"tablist\" style=\"margin-right: 15px; margin-top: 20px\">\r\n <li role=\"presentation\" class=\"active\">\r\n <a href=\"#blockSpecifications\" aria-controls=\"blockSpecifications\" role=\"tab\" data-toggle=\"tab\">Model</a>\r\n </li>\r\n\r\n <li role=\"presentation\">\r\n <a href=\"#constraints\" aria-controls=\"constraints\" role=\"tab\" data-toggle=\"tab\"> Constraints </a>\r\n </li>\r\n\r\n <li role=\"presentation\">\r\n <a href=\"#waterCogenerationComments\" aria-controls=\"waterCogenerationComments\" role=\"tab\" data-toggle=\"tab\">\r\n <i class=\"fa fa-comments fa-lg {{ this.unitOperation.comments ? 'gentle-hover-shake' : '' }}\" aria-hidden=\"true\">\r\n </i>\r\n Comments\r\n </a>\r\n </li>\r\n</ul>\r\n<div class=\"tab-content pw-margin tab-content-padding\" [formGroup]=\"propertyWindowFormGroup\">\r\n <div role=\"tabpanel\" class=\"tab-pane fade in active\" id=\"blockSpecifications\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <div class=\"form-horizontal\">\r\n <h4 class=\"subtitle\">Gas Turbine</h4>\r\n <hr />\r\n <br />\r\n\r\n <div class=\"form-group\" formGroupName=\"heatRate\">\r\n <label class=\"control-label col-sm-4\"> Heat Rate </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.heatRate.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input formControlName=\"value\" [valueMetaData]=\"unitOperation.heatRate\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"power\">\r\n <label class=\"control-label col-sm-4\"> Electricity Generation </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.power.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input formControlName=\"value\" [valueMetaData]=\"unitOperation.power\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"quality\">\r\n <label class=\"control-label col-sm-4\"> Quality </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.quality.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input formControlName=\"value\" [valueMetaData]=\"unitOperation.quality\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label for=\"customModelEnabled\" class=\"control-label col-sm-4\">\r\n Use Custom Model for OTSG Energy Demand\r\n </label>\r\n <div class=\"col-sm-4\">\r\n <label class=\"control-label\">\r\n <input type=\"checkbox\" id=\"customGasModelEnabled\" formControlName=\"useCustomModel\" />\r\n </label>\r\n </div>\r\n\r\n <div class=\"clearfix\"></div>\r\n </div>\r\n\r\n <div *ngIf=\"useCustomModel\">\r\n <sob-open-code-editor-button\r\n [code]=\"unitOperation.hrsgScript\"\r\n [defaultCodeProvider]=\"defaultCodeProvider\"\r\n [instanceId]=\"'cogenerationCodeEditor'\"\r\n [disabled]=\"!useCustomModel\"\r\n (codeSaved)=\"saveCustomModel($event)\">\r\n </sob-open-code-editor-button>\r\n <br />\r\n <br />\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"otsgEnergyDemand\">\r\n <label class=\"control-label col-sm-4\"> OTSG Energy Demand </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.otsgEnergyDemand.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.otsgEnergyDemand\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"turbineEnergyDemand\">\r\n <label class=\"control-label col-sm-4\"> Turbine Energy Demand </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select\r\n formControlName=\"unit\"\r\n [quantity]=\"unitOperation.turbineEnergyDemand.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.turbineEnergyDemand\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"totalEnergyDemand\">\r\n <label class=\"control-label col-sm-4\"> Total Energy Demand </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.totalEnergyDemand.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.totalEnergyDemand\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <h4 class=\"subtitle\">GHG</h4>\r\n <hr />\r\n <br />\r\n\r\n <div class=\"form-group\" formGroupName=\"fuelGasEmissionFactor\">\r\n <label class=\"control-label col-sm-4\"> Fuel Gas Emission Factor </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select\r\n formControlName=\"unit\"\r\n [quantity]=\"unitOperation.fuelGasEmissionFactor.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.fuelGasEmissionFactor\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"fuelGasHeatingValue\">\r\n <label class=\"control-label col-sm-4\"> Fuel Gas Heating Value (LHV) </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select\r\n formControlName=\"unit\"\r\n [quantity]=\"unitOperation.fuelGasHeatingValue.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.fuelGasHeatingValue\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"ghgEmissions\">\r\n <label class=\"control-label col-sm-4\"> GHG Emissions </label>\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.ghgEmissions.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input formControlName=\"value\" [valueMetaData]=\"unitOperation.ghgEmissions\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"constraints\">\r\n <p style=\"text-align: right; position: relative\">\r\n <span style=\"position: absolute; right: -20px; top: -20px; font-weight: bold\">Active</span>\r\n </p>\r\n\r\n <div class=\"form-horizontal\">\r\n <ng-container>\r\n <div class=\"form-group\" formGroupName=\"massCapacity\">\r\n <label class=\"control-label col-sm-4\"> Maximum Feed Capacity </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-5\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.massCapacity.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-5\">\r\n <sob-reactive-variable-value-input formControlName=\"value\" [valueMetaData]=\"unitOperation.massCapacity\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n <div class=\"col-xs-2\">\r\n <sob-reactive-constraint-check-box\r\n formControlName=\"isActive\"\r\n [isConstraint]=\"true\"\r\n [valueMetaData]=\"unitOperation.massCapacity\"></sob-reactive-constraint-check-box>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"minimumMassFlowrate\">\r\n <label class=\"control-label col-sm-4\"> Minimum Mass Flowrate </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-5\">\r\n <sob-reactive-unit-select\r\n formControlName=\"unit\"\r\n [quantity]=\"unitOperation.minimumMassFlowrate.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-5\">\r\n <sob-reactive-variable-value-input\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.minimumMassFlowrate\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n <div class=\"col-xs-2\">\r\n <sob-reactive-constraint-check-box\r\n formControlName=\"isActive\"\r\n [isConstraint]=\"true\"\r\n [valueMetaData]=\"unitOperation.minimumMassFlowrate\"></sob-reactive-constraint-check-box>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"waterCogenerationComments\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <sob-unit-operation-comments [unitOpId]=\"this.unitOperation.id\"></sob-unit-operation-comments>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { UntypedFormBuilder } from '@angular/forms';\r\nimport { SimVarFormBuilder } from '../../../_form-utils/sim-var-form-builder';\r\nimport { BaseObjectFormGroupWrapper } from '../../../_form-utils/base-object-form-group-wrapper';\r\nimport { WaterCogeneration } from '../../../_models/_unit-operations/utilties/water-cogeneration';\r\nimport { DefaultCodeProvider } from '../../../_services/custom-code-providers/default-code-provider';\r\nimport { DEFAULT_WATER_COGENERATION_MODEL } from '../../../_config/unit-operations/default-models/default-water-cogeneration-model';\r\n\r\n@Component({\r\n selector: 'sob-water-cogeneration',\r\n templateUrl: './water-cogeneration.component.html',\r\n styleUrls: ['./water-cogeneration.component.css'],\r\n})\r\nexport class WaterCogenerationComponent implements OnInit {\r\n @Input() unitOperation: WaterCogeneration;\r\n @Input() formGroupWrapper: BaseObjectFormGroupWrapper;\r\n defaultCodeProvider: DefaultCodeProvider;\r\n\r\n constructor(private fb: UntypedFormBuilder, private svfb: SimVarFormBuilder) {\r\n this.defaultCodeProvider = new DefaultCodeProvider(DEFAULT_WATER_COGENERATION_MODEL);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.addControls();\r\n this.formGroupWrapper.storeOriginalValue();\r\n }\r\n\r\n addControls() {\r\n this.propertyWindowFormGroup.addControl('name', this.fb.control(this.unitOperation.name));\r\n this.propertyWindowFormGroup.addControl('heatRate', this.svfb.control(this.unitOperation.heatRate));\r\n this.propertyWindowFormGroup.addControl('power', this.svfb.control(this.unitOperation.power));\r\n this.propertyWindowFormGroup.addControl('quality', this.svfb.control(this.unitOperation.quality));\r\n\r\n this.propertyWindowFormGroup.addControl(\r\n 'fuelGasEmissionFactor',\r\n this.svfb.control(this.unitOperation.fuelGasEmissionFactor)\r\n );\r\n this.propertyWindowFormGroup.addControl(\r\n 'fuelGasHeatingValue',\r\n this.svfb.control(this.unitOperation.fuelGasHeatingValue)\r\n );\r\n this.propertyWindowFormGroup.addControl('ghgEmissions', this.svfb.control(this.unitOperation.ghgEmissions, true));\r\n\r\n this.propertyWindowFormGroup.addControl(\r\n 'otsgEnergyDemand',\r\n this.svfb.control(this.unitOperation.otsgEnergyDemand, true)\r\n );\r\n this.propertyWindowFormGroup.addControl(\r\n 'turbineEnergyDemand',\r\n this.svfb.control(this.unitOperation.turbineEnergyDemand, true)\r\n );\r\n this.propertyWindowFormGroup.addControl(\r\n 'totalEnergyDemand',\r\n this.svfb.control(this.unitOperation.totalEnergyDemand, true)\r\n );\r\n\r\n this.propertyWindowFormGroup.addControl('useCustomModel', this.fb.control(this.unitOperation.useCustomModel));\r\n this.propertyWindowFormGroup.addControl('hrsgScript', this.fb.control(this.unitOperation.hrsgScript));\r\n\r\n this.propertyWindowFormGroup.addControl(\r\n 'massCapacity',\r\n this.svfb.control(this.unitOperation.massCapacity, false, false, true)\r\n );\r\n this.propertyWindowFormGroup.addControl(\r\n 'minimumMassFlowrate',\r\n this.svfb.control(this.unitOperation.minimumMassFlowrate, false, false, true)\r\n );\r\n }\r\n\r\n saveCustomModel(res: any) {\r\n if (res.instanceId === 'cogenerationCodeEditor') {\r\n this.propertyWindowFormGroup.get('hrsgScript').setValue(res.code);\r\n this.unitOperation.hrsgScript = res.code;\r\n }\r\n }\r\n\r\n get propertyWindowFormGroup() {\r\n return this.formGroupWrapper.getFormGroup();\r\n }\r\n\r\n get useCustomModel(): boolean {\r\n return !!this.propertyWindowFormGroup.get('useCustomModel').value;\r\n }\r\n}\r\n","export const DEFAULT_WATER_COGENERATION_MODEL = `// Variables available to user:\r\n // \"SteamRate_KPPH\" : The rate of steam generation in kpph\r\n // \"ElectricPower_MW\" : The electricity generation in MW\r\n // Calculated Variables:\r\n // AuxiliaryHeatRequirement: The thermal requirement for generation of steam in BBtu(LHV)/d\r\n // Gas make (\"GasMake_Flow\") in MSCFD\r\n `;\r\n","<ul class=\"nav nav-tabs\" role=\"tablist\" style=\"margin-right: 15px; margin-top: 20px\">\r\n <li role=\"presentation\" class=\"active\">\r\n <a href=\"#blockSpecifications\" aria-controls=\"blockSpecifications\" role=\"tab\" data-toggle=\"tab\">Model</a>\r\n </li>\r\n\r\n <li *ngIf=\"inletStream\" role=\"presentation\">\r\n <a href=\"#compositionTab\" aria-controls=\"compositionTab\" role=\"tab\" data-toggle=\"tab\">Composition</a>\r\n </li>\r\n\r\n <li role=\"presentation\">\r\n <a href=\"#fuelGasFlareComments\" aria-controls=\"fuelGasFlareComments\" role=\"tab\" data-toggle=\"tab\">\r\n <i class=\"fa fa-comments fa-lg {{ this.unitOperation.comments ? 'gentle-hover-shake' : '' }}\" aria-hidden=\"true\">\r\n </i>\r\n Comments\r\n </a>\r\n </li>\r\n</ul>\r\n\r\n<div class=\"tab-content pw-margin tab-content-padding\" [formGroup]=\"propertyWindowFormGroup\">\r\n <div role=\"tabpanel\" class=\"tab-pane fade in active\" id=\"blockSpecifications\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <div class=\"form-horizontal\">\r\n <h4 class=\"subtitle\">Conditions</h4>\r\n <hr />\r\n <br />\r\n\r\n <ng-container>\r\n <div class=\"form-group\" formGroupName=\"flowrate\">\r\n <label class=\"control-label col-sm-4\"> Flowrate </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.flowrate.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input formControlName=\"value\" [valueMetaData]=\"unitOperation.flowrate\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <h4 class=\"subtitle\">GHG</h4>\r\n <hr />\r\n <br />\r\n\r\n <div class=\"form-group\" formGroupName=\"fuelGasEmissionFactor\">\r\n <label class=\"control-label col-sm-4\"> Emission Factor </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select\r\n formControlName=\"unit\"\r\n [quantity]=\"unitOperation.fuelGasEmissionFactor.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.fuelGasEmissionFactor\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"ghgEmissions\">\r\n <label class=\"control-label col-sm-4\"> GHG Emissions </label>\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.ghgEmissions.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.ghgEmissions\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"inletStream\" role=\"tabpanel\" class=\"tab-pane fade in\" id=\"compositionTab\">\r\n <div class=\"tab-content pw-margin tab-content-padding\">\r\n <div *ngIf=\"inletStream\" role=\"tabpanel\" class=\"tab-pane fade in active\" id=\"compositionUO\">\r\n <div class=\"form-horizontal\">\r\n <ng-container sobReactiveMultipleVariableInput totalOutputId=\"compositionTotalUO\">\r\n <div class=\"form-group\">\r\n <div class=\"row\">\r\n <label class=\"control-label col-sm-4\"> Unit </label>\r\n <div class=\"col-sm-4\" (change)=\"getComposition()\">\r\n <sob-reactive-unit-select\r\n formControlName=\"compositionUnit\"\r\n [quantity]=\"inletStream.composition[0].quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <ng-container formArrayName=\"composition\">\r\n <div class=\"form-group\" *ngFor=\"let sv of inletStream.composition; let i = index\">\r\n <div class=\"row\">\r\n <label class=\"control-label col-sm-4\">\r\n {{ inletStream.composition[i].name }}\r\n </label>\r\n <div class=\"col-sm-4\">\r\n <sob-reactive-variable-value-input [formControlName]=\"i\" [valueMetaData]=\"sv\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <div class=\"form-group\">\r\n <label class=\"pw-label control-label col-sm-4\">Total</label>\r\n <div class=\"col-sm-4\">\r\n <input type=\"text\" class=\"form-control\" formControlName=\"total\" id=\"compositionTotalUO\" />\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"fuelGasFlareComments\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <sob-unit-operation-comments [unitOpId]=\"this.unitOperation.id\"></sob-unit-operation-comments>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { UntypedFormBuilder } from '@angular/forms';\r\nimport { SimVarFormBuilder } from '../../../_form-utils/sim-var-form-builder';\r\nimport { BaseObjectFormGroupWrapper } from '../../../_form-utils/base-object-form-group-wrapper';\r\nimport { FuelGasFlare } from '../../../_models/_unit-operations/fuel-gas/fuel-gas-flare';\r\nimport { FuelGasMaterialStream } from '../../../_models/_streams/fuel-gas-material-stream';\r\n\r\n@Component({\r\n selector: 'sob-fuel-gas-flare',\r\n templateUrl: './fuel-gas-flare.component.html',\r\n styleUrls: ['./fuel-gas-flare.component.css'],\r\n})\r\nexport class FuelGasFlareComponent implements OnInit {\r\n @Input() unitOperation: FuelGasFlare;\r\n @Input() formGroupWrapper: BaseObjectFormGroupWrapper;\r\n inletStream: FuelGasMaterialStream;\r\n compositionArray = this.fb.array([]);\r\n\r\n constructor(private fb: UntypedFormBuilder, private svfb: SimVarFormBuilder) {}\r\n\r\n ngOnInit(): void {\r\n const { ownerCase } = this.unitOperation;\r\n const inletStreams = ownerCase.filterFuelGasMaterialStreams((s: FuelGasMaterialStream) => {\r\n return s.outletUnitOperationId === this.unitOperation.id;\r\n });\r\n\r\n if (inletStreams.length) {\r\n this.inletStream = inletStreams[0];\r\n }\r\n this.addControls();\r\n this.formGroupWrapper.storeOriginalValue();\r\n }\r\n\r\n addControls() {\r\n this.propertyWindowFormGroup.addControl('name', this.fb.control(this.unitOperation.name));\r\n this.propertyWindowFormGroup.addControl('flowrate', this.svfb.control(this.unitOperation.flowrate, true));\r\n this.propertyWindowFormGroup.addControl(\r\n 'fuelGasEmissionFactor',\r\n this.svfb.control(this.unitOperation.fuelGasEmissionFactor, true)\r\n );\r\n this.propertyWindowFormGroup.addControl('ghgEmissions', this.svfb.control(this.unitOperation.ghgEmissions, true));\r\n\r\n this.getComposition();\r\n }\r\n\r\n getComposition() {\r\n if (this.inletStream) {\r\n this.propertyWindowFormGroup.addControl('compositionUnit', this.fb.control(this.inletStream.composition[0].unit));\r\n let total = 0;\r\n for (let i = 0; i < this.inletStream.composition.length; i++) {\r\n const element = this.inletStream.composition[i];\r\n total += element.convertToCaptureUnit(true);\r\n this.compositionArray.push(this.fb.control({ value: element.value, disabled: true }));\r\n }\r\n this.propertyWindowFormGroup.addControl('composition', this.compositionArray);\r\n this.propertyWindowFormGroup.addControl('total', this.fb.control(total));\r\n this.propertyWindowFormGroup.controls['total'].disable();\r\n }\r\n }\r\n\r\n get propertyWindowFormGroup() {\r\n return this.formGroupWrapper.getFormGroup();\r\n }\r\n}\r\n","<ul class=\"nav nav-tabs\" role=\"tablist\" style=\"margin-right: 15px; margin-top: 20px\">\r\n <li role=\"presentation\" class=\"active\">\r\n <a href=\"#blockSpecifications\" aria-controls=\"blockSpecifications\" role=\"tab\" data-toggle=\"tab\">Model</a>\r\n </li>\r\n\r\n <li *ngIf=\"inletStream\" role=\"presentation\">\r\n <a href=\"#compositionTab\" aria-controls=\"compositionTab\" role=\"tab\" data-toggle=\"tab\">Composition</a>\r\n </li>\r\n\r\n <li role=\"presentation\">\r\n <a href=\"#fuelGasSinkComments\" aria-controls=\"fuelGasSinkComments\" role=\"tab\" data-toggle=\"tab\">\r\n <i class=\"fa fa-comments fa-lg {{ this.unitOperation.comments ? 'gentle-hover-shake' : '' }}\" aria-hidden=\"true\">\r\n </i>\r\n Comments\r\n </a>\r\n </li>\r\n</ul>\r\n\r\n<div class=\"tab-content pw-margin tab-content-padding\" [formGroup]=\"propertyWindowFormGroup\">\r\n <div role=\"tabpanel\" class=\"tab-pane fade in active\" id=\"blockSpecifications\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <div class=\"form-horizontal\">\r\n <h4 class=\"subtitle\">Conditions</h4>\r\n <hr />\r\n <br />\r\n\r\n <ng-container>\r\n <div class=\"form-group\" formGroupName=\"flowrate\">\r\n <label class=\"control-label col-sm-4\"> Flowrate </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.flowrate.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input formControlName=\"value\" [valueMetaData]=\"unitOperation.flowrate\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"inletStream\" role=\"tabpanel\" class=\"tab-pane fade in\" id=\"compositionTab\">\r\n <div class=\"tab-content pw-margin tab-content-padding\">\r\n <div *ngIf=\"inletStream\" role=\"tabpanel\" class=\"tab-pane fade in active\" id=\"compositionUO\">\r\n <div class=\"form-horizontal\">\r\n <ng-container sobReactiveMultipleVariableInput totalOutputId=\"compositionTotalUO\">\r\n <div class=\"form-group\">\r\n <div class=\"row\">\r\n <label class=\"control-label col-sm-4\"> Unit </label>\r\n <div class=\"col-sm-4\" (change)=\"getComposition()\">\r\n <sob-reactive-unit-select\r\n formControlName=\"compositionUnit\"\r\n [quantity]=\"inletStream.composition[0].quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <ng-container formArrayName=\"composition\">\r\n <div class=\"form-group\" *ngFor=\"let sv of inletStream.composition; let i = index\">\r\n <div class=\"row\">\r\n <label class=\"control-label col-sm-4\">\r\n {{ inletStream.composition[i].name }}\r\n </label>\r\n <div class=\"col-sm-4\">\r\n <sob-reactive-variable-value-input [formControlName]=\"i\" [valueMetaData]=\"sv\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <div class=\"form-group\">\r\n <label class=\"pw-label control-label col-sm-4\">Total</label>\r\n <div class=\"col-sm-4\">\r\n <input type=\"text\" class=\"form-control\" formControlName=\"total\" id=\"compositionTotalUO\" />\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"fuelGasSinkComments\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <sob-unit-operation-comments [unitOpId]=\"this.unitOperation.id\"></sob-unit-operation-comments>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { UntypedFormBuilder } from '@angular/forms';\r\nimport { SimVarFormBuilder } from '../../../_form-utils/sim-var-form-builder';\r\nimport { BaseObjectFormGroupWrapper } from '../../../_form-utils/base-object-form-group-wrapper';\r\nimport { FuelGasSink } from '../../../_models/_unit-operations/fuel-gas/fuel-gas-sink';\r\nimport { FuelGasMaterialStream } from '../../../_models/_streams/fuel-gas-material-stream';\r\n\r\n@Component({\r\n selector: 'sob-fuel-gas-sink',\r\n templateUrl: './fuel-gas-sink.component.html',\r\n styleUrls: ['./fuel-gas-sink.component.css'],\r\n})\r\nexport class FuelGasSinkComponent implements OnInit {\r\n @Input() unitOperation: FuelGasSink;\r\n @Input() formGroupWrapper: BaseObjectFormGroupWrapper;\r\n inletStream: FuelGasMaterialStream;\r\n compositionArray = this.fb.array([]);\r\n\r\n constructor(private fb: UntypedFormBuilder, private svfb: SimVarFormBuilder) {}\r\n\r\n ngOnInit(): void {\r\n const { ownerCase } = this.unitOperation;\r\n const inletStreams = ownerCase.filterFuelGasMaterialStreams((s: FuelGasMaterialStream) => {\r\n return s.outletUnitOperationId === this.unitOperation.id;\r\n });\r\n\r\n if (inletStreams.length) {\r\n this.inletStream = inletStreams[0];\r\n }\r\n this.addControls();\r\n this.formGroupWrapper.storeOriginalValue();\r\n }\r\n\r\n addControls() {\r\n this.propertyWindowFormGroup.addControl('name', this.fb.control(this.unitOperation.name));\r\n this.propertyWindowFormGroup.addControl('flowrate', this.svfb.control(this.unitOperation.flowrate, true));\r\n this.getComposition();\r\n }\r\n\r\n getComposition() {\r\n if (this.inletStream) {\r\n this.propertyWindowFormGroup.addControl('compositionUnit', this.fb.control(this.inletStream.composition[0].unit));\r\n let total = 0;\r\n for (let i = 0; i < this.inletStream.composition.length; i++) {\r\n const element = this.inletStream.composition[i];\r\n total += element.convertToCaptureUnit(true);\r\n this.compositionArray.push(this.fb.control({ value: element.value, disabled: true }));\r\n }\r\n this.propertyWindowFormGroup.addControl('composition', this.compositionArray);\r\n this.propertyWindowFormGroup.addControl('total', this.fb.control(total));\r\n this.propertyWindowFormGroup.controls['total'].disable();\r\n }\r\n }\r\n\r\n get propertyWindowFormGroup() {\r\n return this.formGroupWrapper.getFormGroup();\r\n }\r\n}\r\n","import { Component, Input } from '@angular/core';\r\nimport { UntypedFormGroup } from '@angular/forms';\r\nimport { EnergyStream } from '../../../_models/_unit-operations/fuel-gas/energy-stream';\r\n\r\n@Component({\r\n selector: 'sob-energy-stream-form',\r\n templateUrl: './energy-stream-form.component.html',\r\n styleUrls: ['./energy-stream-form.component.css'],\r\n})\r\nexport class EnergyStreamFormComponent {\r\n @Input() energyStream: EnergyStream;\r\n @Input() energyStreamFormGroup: UntypedFormGroup;\r\n}\r\n","<ng-container [formGroup]=\"energyStreamFormGroup\">\r\n <div class=\"form-group\" formGroupName=\"energyFlow\">\r\n <label class=\"control-label col-sm-4\"> Energy Demand </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"energyStream.energyFlow.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input formControlName=\"value\" [valueMetaData]=\"energyStream.energyFlow\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</ng-container>\r\n","<ul class=\"nav nav-tabs\" role=\"tablist\" style=\"margin-right: 15px; margin-top: 20px\">\r\n <li role=\"presentation\" class=\"active\">\r\n <a href=\"#blockSpecifications\" aria-controls=\"blockSpecifications\" role=\"tab\" data-toggle=\"tab\">Model</a>\r\n </li>\r\n\r\n <li role=\"presentation\">\r\n <a href=\"#constraints\" aria-controls=\"constraints\" role=\"tab\" data-toggle=\"tab\"> Constraints </a>\r\n </li>\r\n\r\n <li role=\"presentation\">\r\n <a href=\"#fuelGasSinkImportComments\" aria-controls=\"fuelGasSinkImportComments\" role=\"tab\" data-toggle=\"tab\">\r\n <i class=\"fa fa-comments fa-lg {{ this.unitOperation.comments ? 'gentle-hover-shake' : '' }}\" aria-hidden=\"true\">\r\n </i>\r\n Comments\r\n </a>\r\n </li>\r\n</ul>\r\n\r\n<div class=\"tab-content pw-margin tab-content-padding\" [formGroup]=\"propertyWindowFormGroup\">\r\n <div role=\"tabpanel\" class=\"tab-pane fade in active\" id=\"blockSpecifications\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <div class=\"form-horizontal\">\r\n <h4>Energy Streams</h4>\r\n\r\n <div class=\"form-group\">\r\n <div class=\"col-xs-12\">\r\n <select\r\n name=\"selectedProviderUnitOperationId\"\r\n id=\"selectedProviderUnitOperationId\"\r\n formControlName=\"selectedProviderUnitOperationId\"\r\n size=\"2\"\r\n style=\"height: 200px\"\r\n class=\"form-control\">\r\n <option\r\n (click)=\"filterStreams()\"\r\n *ngFor=\"let uo of availableProviderUnitOperations\"\r\n value=\"{{ uo.id }}\"\r\n (dblclick)=\"addEnergyStream()\">\r\n {{ uo.name }} - Energy Flow\r\n </option>\r\n </select>\r\n\r\n <button class=\"btn btn-xs btn-success m-t-xs\" (click)=\"addEnergyStream()\">\r\n <i class=\"fa fa-plus-circle\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <ng-container formArrayName=\"energyStreams\">\r\n <ng-container *ngFor=\"let energyStreamGroup of getEnergyStreamsFormGroupsArray(); let i = index\">\r\n <div class=\"row energy-stream-row\">\r\n <h4>\r\n <a\r\n data-toggle=\"collapse\"\r\n href=\"#energyStreamCollapse{{ i }}\"\r\n aria-expanded=\"false\"\r\n sfeCollapsePanelIcon>\r\n <i class=\"fa fa-plus\" aria-hidden=\"true\"> </i>\r\n {{ activeEnergyStreams[i].getFullName() }}\r\n </a>\r\n </h4>\r\n <div>\r\n <span class=\"inline pull-right p-t-5-x\" style=\"margin-top: -30px\">\r\n <button\r\n class=\"btn-remove btn btn-xs btn-danger\"\r\n (click)=\"removeEnergyStream(i)\"\r\n data-toggle=\"tooltip\"\r\n title=\"Remove Energy Stream\">\r\n <i class=\"fa fa-minus-circle\"></i>\r\n </button>\r\n </span>\r\n </div>\r\n <div id=\"energyStreamCollapse{{ i }}\" class=\"collapse\">\r\n <sob-energy-stream-form\r\n [energyStream]=\"activeEnergyStreams[i]\"\r\n [energyStreamFormGroup]=\"energyStreamGroup\">\r\n </sob-energy-stream-form>\r\n </div>\r\n </div>\r\n <hr />\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"constraints\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <div class=\"form-horizontal\">\r\n <div class=\"form-group\" formGroupName=\"heatFlow\">\r\n <label class=\"control-label col-sm-4\"> Energy Demand </label>\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.heatFlow.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input formControlName=\"value\" [valueMetaData]=\"unitOperation.heatFlow\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"fuelGasSinkImportComments\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <sob-unit-operation-comments [unitOpId]=\"this.unitOperation.id\"></sob-unit-operation-comments>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { UntypedFormArray, UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';\r\nimport { CoreService } from '../../../_services/core.service';\r\nimport { SimVarFormBuilder } from '../../../_form-utils/sim-var-form-builder';\r\nimport { unitOperationsConfig } from '../../../_config/unit-operations.config';\r\nimport { FuelGasSinkImport } from '../../../_models/_unit-operations/fuel-gas/fuel-gas-sink-import';\r\nimport { BaseObjectFormGroupWrapper } from '../../../_form-utils/base-object-form-group-wrapper';\r\nimport { GasContributorUnitOperation } from '../../../_models/_unit-operations/gas-contributor-unit-operation';\r\nimport { EnergyStream } from '../../../_models/_unit-operations/fuel-gas/energy-stream';\r\nimport { Case, UnitOperation } from '../../../_models';\r\nimport { WaterBoiler } from '../../../_models/_unit-operations/utilties/water-boiler';\r\nimport { WaterUtilityUnitOperation } from '../../../_models/_unit-operations/utilties/water-utility-unit-operation';\r\nimport { WaterCogeneration } from '../../../_models/_unit-operations/utilties/water-cogeneration';\r\n\r\n@Component({\r\n selector: 'sob-fuel-gas-sink-import',\r\n templateUrl: './fuel-gas-sink-import.component.html',\r\n styleUrls: ['./fuel-gas-sink-import.component.css'],\r\n})\r\nexport class FuelGasSinkImportComponent implements OnInit {\r\n @Input() unitOperation: FuelGasSinkImport;\r\n @Input() formGroupWrapper: BaseObjectFormGroupWrapper;\r\n availableProviderUnitOperations: UnitOperation[];\r\n\r\n // the energy streams active in the current property window\r\n activeEnergyStreams: EnergyStream[] = [];\r\n\r\n constructor(private coreService: CoreService, private fb: UntypedFormBuilder, private svfb: SimVarFormBuilder) {}\r\n\r\n ngOnInit(): void {\r\n this.activeEnergyStreams.push(...this.unitOperation.energyStreams);\r\n this.addControls();\r\n this.formGroupWrapper.storeOriginalValue();\r\n\r\n // hmm\r\n this.filterStreams();\r\n }\r\n\r\n addControls() {\r\n this.propertyWindowFormGroup.addControl('heatFlow', this.svfb.control(this.unitOperation.heatFlow, true));\r\n\r\n // TODO nice hack to allow change detection in name... should not be used REMOVE when not needed\r\n this.propertyWindowFormGroup.addControl('name', this.fb.control(this.unitOperation.name));\r\n this.propertyWindowFormGroup.addControl('selectedProviderUnitOperationId', this.fb.control(''));\r\n this.propertyWindowFormGroup.addControl('energyStreams', this.fb.array([]));\r\n\r\n for (const energyStream of this.activeEnergyStreams) {\r\n this.addEnergyStreamControls(energyStream);\r\n }\r\n }\r\n\r\n private getOtherEnergyStreamUsers(): FuelGasSinkImport[] {\r\n return this.currentCase.filterUnitOperations(\r\n uo => uo.category === unitOperationsConfig.fuelGasSinkImport.key && uo.id !== this.unitOperation.id\r\n ) as FuelGasSinkImport[];\r\n }\r\n\r\n private usesEnergyStream(energyStreamUser: FuelGasSinkImport, providerUnitOperationId: string): boolean {\r\n return !!energyStreamUser.energyStreams.find(es => es.providerUnitOperationId === providerUnitOperationId);\r\n }\r\n\r\n getAvailableEnergyStreamProviders(): UnitOperation[] {\r\n const allowedUnitOperations = this.getParentFlowsheetAllowedUnitOperations();\r\n const result = [];\r\n for (const gasContributor of allowedUnitOperations) {\r\n // don't even show it if it is already in use\r\n if (this.isEnergyStreamInUseByOtherUnitOperation(gasContributor.id)) {\r\n continue;\r\n }\r\n\r\n result.push(gasContributor);\r\n }\r\n\r\n return result;\r\n }\r\n\r\n private getParentFlowsheetAllowedUnitOperations(): UnitOperation[] {\r\n const parentUnit = this.currentCase.getUnitOperation(this.unitOperation.flowsheetId);\r\n const parentFlowsheetId = parentUnit.flowsheetId;\r\n\r\n const waterUtilityUnitOperationList = this.coreService.currentCase.filterUnitOperations(\r\n uo => uo.flowsheetId === parentFlowsheetId && uo instanceof WaterUtilityUnitOperation\r\n );\r\n\r\n const waterUtilityUnitOperation = waterUtilityUnitOperationList[0];\r\n\r\n return this.coreService.currentCase.filterUnitOperations(uo => {\r\n return (\r\n (uo.flowsheetId === parentFlowsheetId && uo instanceof GasContributorUnitOperation) ||\r\n (waterUtilityUnitOperation &&\r\n uo.flowsheetId === waterUtilityUnitOperation.id &&\r\n (uo instanceof WaterBoiler || uo instanceof WaterCogeneration))\r\n );\r\n });\r\n }\r\n\r\n addEnergyStreamControls(energyStream: EnergyStream) {\r\n const energyStreamStreamGroup = this.fb.group({\r\n id: this.fb.control(energyStream.id), // not visible at all\r\n providerUnitOperationId: this.fb.control(energyStream.providerUnitOperationId), // not visible\r\n energyFlow: this.svfb.control(energyStream.energyFlow, true),\r\n });\r\n\r\n this.energyStreamsFormArray.push(energyStreamStreamGroup);\r\n }\r\n\r\n private isEnergyStreamInUseByOtherUnitOperation(providerUnitOperationId: string) {\r\n const otherEnergyStreamUsers = this.getOtherEnergyStreamUsers();\r\n\r\n for (const energyStreamUser of otherEnergyStreamUsers) {\r\n if (this.usesEnergyStream(energyStreamUser, providerUnitOperationId)) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n addEnergyStream(): void {\r\n if (this.isSelectedEnergyStreamActive()) {\r\n return;\r\n }\r\n\r\n const unitOp = this.availableProviderUnitOperations.find(uo => uo.id === this.selectedProviderUnitOperationId);\r\n const unitOpIndex = this.availableProviderUnitOperations.indexOf(unitOp);\r\n const energyStream = new EnergyStream({}, this.unitOperation.ownerCase);\r\n energyStream.providerUnitOperationId = unitOp.id;\r\n this.addEnergyStreamControls(energyStream);\r\n this.activeEnergyStreams.push(energyStream);\r\n this.availableProviderUnitOperations.splice(unitOpIndex, 1);\r\n }\r\n\r\n private isSelectedEnergyStreamActive(): boolean {\r\n // instead of just a boolean this method could return a more elaborated object, maybe it could include the names\r\n // of the owner unit operation\r\n return !!this.activeEnergyStreams.find(is => is.providerUnitOperationId === this.selectedProviderUnitOperationId);\r\n }\r\n\r\n // removes the information streams from the available list if they are already in use\r\n // TODO check if this works ... and if it can be improved\r\n filterStreams() {\r\n if (this.activeEnergyStreams.length === 0) {\r\n this.availableProviderUnitOperations = this.getAvailableEnergyStreamProviders();\r\n } else {\r\n this.availableProviderUnitOperations = this.getAvailableEnergyStreamProviders();\r\n for (let i = 0; i < this.activeEnergyStreams.length; i++) {\r\n for (let j = 0; j < this.availableProviderUnitOperations.length; j++) {\r\n if (this.availableProviderUnitOperations[j].id === this.activeEnergyStreams[i].providerUnitOperationId) {\r\n this.availableProviderUnitOperations.splice(j, 1);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n removeEnergyStream(i: number) {\r\n this.activeEnergyStreams.splice(i, 1);\r\n this.energyStreamsFormArray.removeAt(i);\r\n this.filterStreams();\r\n }\r\n\r\n // region form group getters\r\n getEnergyStreamsFormGroupsArray(): UntypedFormGroup[] {\r\n return this.energyStreamsFormArray.controls as UntypedFormGroup[];\r\n }\r\n\r\n get selectedProviderUnitOperationId(): string {\r\n return this.propertyWindowFormGroup.get('selectedProviderUnitOperationId').value;\r\n }\r\n\r\n get propertyWindowFormGroup() {\r\n return this.formGroupWrapper.getFormGroup();\r\n }\r\n\r\n get energyStreamsFormArray(): UntypedFormArray {\r\n return this.propertyWindowFormGroup.get('energyStreams') as UntypedFormArray;\r\n }\r\n\r\n // endregion\r\n\r\n get currentCase(): Case {\r\n return this.coreService.currentCase;\r\n }\r\n}\r\n","import { Component, Input } from '@angular/core';\r\nimport { UntypedFormGroup } from '@angular/forms';\r\nimport { CoreService } from '../../../_services/core.service';\r\nimport { GasFluidAnalysis } from '../../../_models/_fluid/gas-fluid-analysis';\r\nimport { FuelGasSourceInformationStream } from '../../../_models/_unit-operations/fuel-gas/fuel-gas-source-information-stream';\r\n\r\n@Component({\r\n selector: 'sob-fuel-gas-source-information-stream-form',\r\n templateUrl: './fuel-gas-source-information-stream-form.component.html',\r\n styleUrls: ['./fuel-gas-source-information-stream-form.component.css'],\r\n})\r\nexport class FuelGasSourceInformationStreamFormComponent {\r\n @Input() informationStream: FuelGasSourceInformationStream;\r\n @Input() informationStreamFormGroup: UntypedFormGroup;\r\n currentAnalysis: GasFluidAnalysis;\r\n currentUnitOp: any;\r\n\r\n constructor(private coreService: CoreService) {}\r\n\r\n get fluidAnalyses() {\r\n return this.coreService.currentCase.assayManager.getAssaysByCategory('Gas');\r\n }\r\n\r\n getGasAnalysis() {\r\n this.informationStreamFormGroup.get('gasAnalysis').disable();\r\n this.currentUnitOp = this.coreService.currentCase.getUnitOperation(this.informationStream.providerUnitOperationId);\r\n const gasAnalysis = this.coreService.currentCase.assayManager.findFluidAnalysisById(\r\n this.currentUnitOp.gasAnalysisId\r\n );\r\n return gasAnalysis ? gasAnalysis.assayName : '';\r\n }\r\n}\r\n","<ng-container [formGroup]=\"informationStreamFormGroup\">\r\n <div class=\"form-group\" formGroupName=\"flowrate\">\r\n <label class=\"control-label col-sm-4\"> Flowrate </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"informationStream.flowrate.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input formControlName=\"value\" [valueMetaData]=\"informationStream.flowrate\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label class=\"control-label col-sm-4\"> Gas Analysis </label>\r\n\r\n <div class=\"col-sm-8\">\r\n <div class=\"row\">\r\n <div class=\"col-xs-12\">\r\n <input type=\"text\" class=\"form-control\" formControlName=\"gasAnalysis\" [ngModel]=\"getGasAnalysis()\" />\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</ng-container>\r\n","<ul class=\"nav nav-tabs\" role=\"tablist\" style=\"margin-right: 15px; margin-top: 20px\">\r\n <li role=\"presentation\" class=\"active\">\r\n <a href=\"#blockSpecifications\" aria-controls=\"blockSpecifications\" role=\"tab\" data-toggle=\"tab\">Model</a>\r\n </li>\r\n\r\n <li role=\"presentation\">\r\n <a href=\"#fuelGasSourceImportComments\" aria-controls=\"fuelGasSourceImportComments\" role=\"tab\" data-toggle=\"tab\">\r\n <i class=\"fa fa-comments fa-lg {{ this.unitOperation.comments ? 'gentle-hover-shake' : '' }}\" aria-hidden=\"true\">\r\n </i>\r\n Comments\r\n </a>\r\n </li>\r\n</ul>\r\n\r\n<div class=\"tab-content pw-margin tab-content-padding\" [formGroup]=\"propertyWindowFormGroup\">\r\n <div role=\"tabpanel\" class=\"tab-pane fade in active\" id=\"blockSpecifications\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <div class=\"form-horizontal\">\r\n <h4>Information Streams</h4>\r\n\r\n <div class=\"form-group\">\r\n <div class=\"col-xs-12\">\r\n <select\r\n name=\"selectedProviderUnitOperationId\"\r\n id=\"selectedProviderUnitOperationId\"\r\n formControlName=\"selectedProviderUnitOperationId\"\r\n size=\"2\"\r\n style=\"height: 200px\"\r\n class=\"form-control\">\r\n <option\r\n (click)=\"filterStreams()\"\r\n *ngFor=\"let uo of availableProviderUnitOperations\"\r\n value=\"{{ uo.id }}\"\r\n (dblclick)=\"addInformationStream()\">\r\n {{ uo.name }}\r\n </option>\r\n </select>\r\n\r\n <button class=\"btn btn-xs btn-success m-t-xs\" (click)=\"addInformationStream()\">\r\n <i class=\"fa fa-plus-circle\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <ng-container formArrayName=\"inletSourceInformationStreams\">\r\n <ng-container *ngFor=\"let informationStreamGroup of getInformationStreamsFormGroupsArray(); let i = index\">\r\n <div class=\"row information-stream-row\">\r\n <h4>\r\n <a\r\n data-toggle=\"collapse\"\r\n href=\"#informationStreamCollapse{{ i }}\"\r\n aria-expanded=\"false\"\r\n sfeCollapsePanelIcon>\r\n <i class=\"fa fa-plus\" aria-hidden=\"true\"> </i>\r\n {{ activeInformationStreams[i].getFullName() }}\r\n </a>\r\n </h4>\r\n <div>\r\n <span class=\"inline pull-right p-t-5-x\" style=\"margin-top: -30px\">\r\n <button\r\n class=\"btn-remove btn btn-xs btn-danger\"\r\n (click)=\"removeInformationStream(i)\"\r\n data-toggle=\"tooltip\"\r\n title=\"Remove Information Stream\">\r\n <i class=\"fa fa-minus-circle\"></i>\r\n </button>\r\n </span>\r\n </div>\r\n <div id=\"informationStreamCollapse{{ i }}\" class=\"collapse\">\r\n <sob-fuel-gas-source-information-stream-form\r\n [informationStream]=\"activeInformationStreams[i]\"\r\n [informationStreamFormGroup]=\"informationStreamGroup\">\r\n </sob-fuel-gas-source-information-stream-form>\r\n </div>\r\n </div>\r\n <hr />\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"fuelGasSourceImportComments\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <sob-unit-operation-comments [unitOpId]=\"this.unitOperation.id\"></sob-unit-operation-comments>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { UntypedFormArray, UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';\r\nimport { BaseObjectFormGroupWrapper } from '../../../_form-utils/base-object-form-group-wrapper';\r\nimport { FuelGasSourceImport } from '../../../_models/_unit-operations/fuel-gas/fuel-gas-source-import';\r\nimport { GasContributorUnitOperation } from '../../../_models/_unit-operations/gas-contributor-unit-operation';\r\nimport { Case } from '../../../_models';\r\nimport { CoreService } from '../../../_services/core.service';\r\nimport { SimVarFormBuilder } from '../../../_form-utils/sim-var-form-builder';\r\nimport { FuelGasSourceInformationStream } from '../../../_models/_unit-operations/fuel-gas/fuel-gas-source-information-stream';\r\n\r\n@Component({\r\n selector: 'sob-fuel-gas-source-import',\r\n templateUrl: './fuel-gas-source-import.component.html',\r\n styleUrls: ['./fuel-gas-source-import.component.css'],\r\n})\r\nexport class FuelGasSourceImportComponent implements OnInit {\r\n @Input() unitOperation: FuelGasSourceImport;\r\n @Input() formGroupWrapper: BaseObjectFormGroupWrapper;\r\n\r\n activeInformationStreams: FuelGasSourceInformationStream[] = [];\r\n availableProviderUnitOperations: GasContributorUnitOperation[];\r\n\r\n constructor(private coreService: CoreService, private fb: UntypedFormBuilder, private svfb: SimVarFormBuilder) {}\r\n\r\n ngOnInit(): void {\r\n this.activeInformationStreams.push(...this.unitOperation.inletSourceInformationStreams);\r\n this.addControls();\r\n this.formGroupWrapper.storeOriginalValue();\r\n\r\n // hmm\r\n this.filterStreams();\r\n }\r\n\r\n addControls(): void {\r\n // TODO nice hack to allow change detection in name... should not be used REMOVE when not needed\r\n this.propertyWindowFormGroup.addControl('name', this.fb.control(this.unitOperation.name));\r\n this.propertyWindowFormGroup.addControl('selectedProviderUnitOperationId', this.fb.control(''));\r\n this.propertyWindowFormGroup.addControl('inletSourceInformationStreams', this.fb.array([]));\r\n\r\n for (const informationStream of this.activeInformationStreams) {\r\n this.addInformationStreamControls(informationStream);\r\n }\r\n }\r\n\r\n getAvailableInformationStreamProviders(): GasContributorUnitOperation[] {\r\n const gasContributorUnitOperations = this.getParentFlowsheetAllowedUnitOperations();\r\n const result = [];\r\n for (const gasContributor of gasContributorUnitOperations) {\r\n // don't even show it if it is already in use\r\n if (this.isInformationStreamInUseByOtherUnitOperation(gasContributor.id)) {\r\n continue;\r\n }\r\n\r\n result.push(gasContributor);\r\n }\r\n\r\n return result;\r\n }\r\n\r\n protected getParentFlowsheetAllowedUnitOperations(): GasContributorUnitOperation[] {\r\n const parentUnit = this.currentCase.getUnitOperation(this.unitOperation.flowsheetId);\r\n const parentFlowsheetId = parentUnit.flowsheetId;\r\n\r\n return this.coreService.currentCase.filterUnitOperations(uo => {\r\n return uo.flowsheetId === parentFlowsheetId && uo instanceof GasContributorUnitOperation;\r\n }) as GasContributorUnitOperation[];\r\n }\r\n\r\n addInformationStreamControls(informationStream: FuelGasSourceInformationStream) {\r\n const informationStreamStreamGroup = this.fb.group({\r\n id: this.fb.control(informationStream.id), // not visible at all\r\n providerUnitOperationId: this.fb.control(informationStream.providerUnitOperationId), // not visible\r\n flowrate: this.svfb.control(informationStream.flowrate, true),\r\n gasAnalysis: this.fb.control(''),\r\n });\r\n this.informationStreamsFormArray.push(informationStreamStreamGroup);\r\n }\r\n\r\n protected isInformationStreamInUseByOtherUnitOperation(providerUnitOperationId: string) {\r\n const otherInformationStreamUsers = this.getOtherInformationStreamUsers();\r\n\r\n for (const informationStreamUser of otherInformationStreamUsers) {\r\n if (this.usesInformationStream(informationStreamUser, providerUnitOperationId)) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n private getOtherInformationStreamUsers(): FuelGasSourceImport[] {\r\n return this.currentCase.filterUnitOperations(\r\n uo => uo instanceof FuelGasSourceImport && uo.id !== this.unitOperation.id\r\n ) as FuelGasSourceImport[];\r\n }\r\n\r\n protected usesInformationStream(informationStreamUser: FuelGasSourceImport, gasContributorId: string): boolean {\r\n return !!informationStreamUser.inletSourceInformationStreams.find(\r\n es => es.providerUnitOperationId === gasContributorId\r\n );\r\n }\r\n\r\n addInformationStream() {\r\n if (this.isSelectedInformationStreamActive()) {\r\n return;\r\n }\r\n\r\n const unitOp = this.availableProviderUnitOperations.find(uo => uo.id === this.selectedProviderUnitOperationId);\r\n const unitOpIndex = this.availableProviderUnitOperations.indexOf(unitOp);\r\n const informationStream = new FuelGasSourceInformationStream({}, this.unitOperation.ownerCase);\r\n informationStream.providerUnitOperationId = unitOp.id;\r\n this.addInformationStreamControls(informationStream);\r\n this.activeInformationStreams.push(informationStream);\r\n this.availableProviderUnitOperations.splice(unitOpIndex, 1);\r\n }\r\n\r\n protected isSelectedInformationStreamActive(): boolean {\r\n // instead of just a boolean this method could return a more elaborated object, maybe it could include the names\r\n // of the owner unit operation\r\n return !!this.activeInformationStreams.find(\r\n is => is.providerUnitOperationId === this.selectedProviderUnitOperationId\r\n );\r\n }\r\n\r\n // removes the information streams from the available list if they are already in use\r\n // TODO check if this works ... and if it can be improved\r\n filterStreams() {\r\n if (this.activeInformationStreams.length === 0) {\r\n this.availableProviderUnitOperations = this.getAvailableInformationStreamProviders();\r\n } else {\r\n this.availableProviderUnitOperations = this.getAvailableInformationStreamProviders();\r\n for (let i = 0; i < this.activeInformationStreams.length; i++) {\r\n for (let j = 0; j < this.availableProviderUnitOperations.length; j++) {\r\n if (this.availableProviderUnitOperations[j].id === this.activeInformationStreams[i].providerUnitOperationId) {\r\n this.availableProviderUnitOperations.splice(j, 1);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n removeInformationStream(i: number) {\r\n this.activeInformationStreams.splice(i, 1);\r\n this.informationStreamsFormArray.removeAt(i);\r\n this.filterStreams();\r\n }\r\n\r\n // region form group getters\r\n getInformationStreamsFormGroupsArray(): UntypedFormGroup[] {\r\n return this.informationStreamsFormArray.controls as UntypedFormGroup[];\r\n }\r\n\r\n get selectedProviderUnitOperationId(): string {\r\n return this.propertyWindowFormGroup.get('selectedProviderUnitOperationId').value;\r\n }\r\n\r\n get propertyWindowFormGroup() {\r\n return this.formGroupWrapper.getFormGroup();\r\n }\r\n\r\n get informationStreamsFormArray(): UntypedFormArray {\r\n return this.propertyWindowFormGroup.get('inletSourceInformationStreams') as UntypedFormArray;\r\n }\r\n // endregion\r\n\r\n get currentCase(): Case {\r\n return this.coreService.currentCase;\r\n }\r\n}\r\n","<div class=\"form-horizontal\">\r\n <h4 class=\"subtitle\">Inlet</h4>\r\n\r\n <ul *ngFor=\"let inletStream of inletStreams\" class=\"inletStreamsList\">\r\n <li>{{ inletStream.inletUnitOperation.name }}</li>\r\n </ul>\r\n\r\n <div *ngIf=\"!inletStreams.length\" class=\"outletStreamName\">No connections available</div>\r\n\r\n <h4 class=\"subtitle\" style=\"margin-top: 20px\">Outlet</h4>\r\n <div *ngIf=\"outletStream\" class=\"outletStreamName\">{{ outletStream.outletUnitOperation.name }}</div>\r\n <div *ngIf=\"!outletStream\" class=\"outletStreamName\">No connection available</div>\r\n</div>\r\n\r\n<ul class=\"nav nav-tabs\" role=\"tablist\" style=\"margin-right: 15px; margin-top: 20px\">\r\n <li role=\"presentation\" class=\"active\">\r\n <a href=\"#fuelGasMixerComments\" aria-controls=\"fuelGasMixerComments\" role=\"tab\" data-toggle=\"tab\">\r\n <i class=\"fa fa-comments fa-lg\" aria-hidden=\"true\"> </i>\r\n Comments\r\n </a>\r\n </li>\r\n</ul>\r\n\r\n<div class=\"tab-content pw-margin tab-content-padding\">\r\n <div role=\"tabpanel\" class=\"tab-pane fade in active\" id=\"fuelGasMixerComments\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <sob-unit-operation-comments [unitOpId]=\"this.unitOperation.id\"></sob-unit-operation-comments>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\r\nimport { SubSink } from 'subsink';\r\nimport { FuelGasMaterialStream } from '../../../_models/_streams/fuel-gas-material-stream';\r\nimport { FuelGasMixer } from '../../../_models/_unit-operations/fuel-gas/fuel-gas-mixer';\r\nimport { CoreService } from '../../../_services/core.service';\r\nimport { BaseStream } from '../../../_models/_streams/base-stream';\r\n\r\n@Component({\r\n selector: 'sob-fuel-gas-mixer',\r\n templateUrl: './fuel-gas-mixer.component.html',\r\n styleUrls: ['./fuel-gas-mixer.component.css'],\r\n})\r\nexport class FuelGasMixerComponent implements OnInit, OnDestroy {\r\n inletStreams: FuelGasMaterialStream[] = [];\r\n outletStream: FuelGasMaterialStream;\r\n\r\n @Input()\r\n unitOperation: FuelGasMixer;\r\n\r\n private subSink = new SubSink();\r\n\r\n constructor(private coreService: CoreService) {\r\n this.subSink.add(\r\n this.coreService.streamAddedRequest.subscribe(s => {\r\n if (s.inletUnitOperationId === this.unitOperation.id) {\r\n this.initOutletStream();\r\n }\r\n if (s.outletUnitOperationId === this.unitOperation.id) {\r\n this.initInletStreams();\r\n }\r\n })\r\n );\r\n\r\n this.subSink.add(\r\n this.coreService.streamRemovedRequest.subscribe(s => {\r\n if (s.inletUnitOperationId === this.unitOperation.id) {\r\n this.removeOutletStream();\r\n }\r\n if (s.outletUnitOperationId === this.unitOperation.id) {\r\n this.removeInletStream(s);\r\n }\r\n })\r\n );\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.unitOperation) {\r\n this.initInletStreams();\r\n this.initOutletStream();\r\n }\r\n }\r\n\r\n private initOutletStream() {\r\n const { ownerCase } = this.unitOperation;\r\n const outletStreams = ownerCase.filterFuelGasMaterialStreams((s: FuelGasMaterialStream) => {\r\n return s.inletUnitOperationId === this.unitOperation.id;\r\n });\r\n\r\n if (outletStreams.length) {\r\n [this.outletStream] = outletStreams;\r\n }\r\n }\r\n\r\n private initInletStreams() {\r\n const { ownerCase } = this.unitOperation;\r\n this.inletStreams = ownerCase.filterFuelGasMaterialStreams((s: FuelGasMaterialStream) => {\r\n return s.outletUnitOperationId === this.unitOperation.id;\r\n });\r\n }\r\n\r\n private removeOutletStream() {\r\n this.outletStream = undefined;\r\n }\r\n\r\n private removeInletStream(removedStream: BaseStream) {\r\n const matchingStream = this.inletStreams.find(s => s.id === removedStream.id);\r\n\r\n if (!matchingStream) {\r\n return;\r\n }\r\n\r\n this.inletStreams.splice(this.inletStreams.indexOf(matchingStream), 1);\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subSink.unsubscribe();\r\n }\r\n}\r\n","<div [formGroup]=\"propertyWindowFormGroup\">\r\n <div class=\"form-horizontal\">\r\n <div class=\"form-group\">\r\n <label class=\"pw-label control-label col-sm-4\"> Assay Name </label>\r\n <div class=\"col-sm-6\">\r\n <sob-assay-selector\r\n [fluidAnalyses]=\"fluidAnalyses\"\r\n [currentAnalysis]=\"currentAnalysis\"\r\n (updateCurrentAssay)=\"updateCurrentAnalysis($event)\"\r\n formControlName=\"fluidAnalysisId\">\r\n </sob-assay-selector>\r\n </div>\r\n </div>\r\n </div>\r\n <hr />\r\n <br />\r\n\r\n <ul class=\"nav nav-tabs\" role=\"tablist\" style=\"margin-right: 15px\">\r\n <li role=\"presentation\" class=\"active\">\r\n <a href=\"#blockSpecifications\" aria-controls=\"blockSpecifications\" role=\"tab\" data-toggle=\"tab\">Model</a>\r\n </li>\r\n\r\n <li *ngIf=\"currentAnalysis\" role=\"presentation\">\r\n <a href=\"#compositionTab\" aria-controls=\"compositionTab\" role=\"tab\" data-toggle=\"tab\">Composition</a>\r\n </li>\r\n\r\n <li role=\"presentation\">\r\n <a href=\"#fuelGasSourceComments\" aria-controls=\"fuelGasSourceComments\" role=\"tab\" data-toggle=\"tab\">\r\n <i\r\n class=\"fa fa-comments fa-lg {{ this.unitOperation.comments ? 'gentle-hover-shake' : '' }}\"\r\n aria-hidden=\"true\">\r\n </i>\r\n Comments\r\n </a>\r\n </li>\r\n </ul>\r\n\r\n <div class=\"tab-content pw-margin tab-content-padding\">\r\n <div role=\"tabpanel\" class=\"tab-pane fade in active\" id=\"blockSpecifications\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <div class=\"form-horizontal\">\r\n <h4 class=\"subtitle\">Conditions</h4>\r\n <hr />\r\n <br />\r\n\r\n <div class=\"form-group m-b-md\">\r\n <label for=\"isOptimizable\" class=\"control-label col-sm-4\"> Optimize </label>\r\n\r\n <div class=\"col-sm-4\">\r\n <label for=\"isOptimizable\" class=\"control-label\">\r\n <input\r\n type=\"checkbox\"\r\n id=\"isOptimizable\"\r\n formControlName=\"isOptimizable\"\r\n (change)=\"isOptimizableChanged($event.target.checked)\" />\r\n </label>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"flowrate\">\r\n <label class=\"control-label col-sm-4\"> Flowrate </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.flowrate.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input formControlName=\"value\" [valueMetaData]=\"unitOperation.flowrate\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"currentAnalysis\" role=\"tabpanel\" class=\"tab-pane fade in\" id=\"compositionTab\">\r\n <ul class=\"nav nav-pills\" role=\"tablist\" style=\"margin-right: 15px\">\r\n <li role=\"presentation\" class=\"active\">\r\n <a (click)=\"openAssayManager(currentAnalysis.id)\">Edit</a>\r\n </li>\r\n </ul>\r\n\r\n <div class=\"tab-content pw-margin tab-content-padding\">\r\n <div *ngIf=\"currentAnalysis\" role=\"tabpanel\" class=\"tab-pane fade in active\" id=\"compositionUO\">\r\n <div class=\"form-horizontal\" sfeMultipleSimVarInput totalOutputId=\"compositionTotalUO\">\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'compositionUnit'\" class=\"pw-label control-label col-sm-4\"> Unit </label>\r\n\r\n <div class=\"col-sm-4\">\r\n <sfe-unit-select\r\n [selectId]=\"'compositionUnit' + unitOperation.id\"\r\n [simVar]=\"currentAnalysis.composition[0]\"\r\n [disabled]=\"false\"\r\n [elClass]=\"'form-control'\"></sfe-unit-select>\r\n </div>\r\n </div>\r\n\r\n <ng-container *ngFor=\"let idx of currentAnalysis.composition | keys\">\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'composition' + idx\" class=\"pw-label control-label col-sm-4\">\r\n {{ currentAnalysis.composition[idx].name | titleCaseComposition }}\r\n </label>\r\n <div class=\"col-sm-4\">\r\n <sfe-value-input\r\n [simVar]=\"currentAnalysis.composition[idx]\"\r\n [elClass]=\"'form-control'\"\r\n [inputId]=\"'composition' + idx\"\r\n [multiple]=\"true\"\r\n [readOnlyValue]=\"true\"\r\n [disabled]=\"true\"\r\n [convertedBy]=\"'compositionUnit'\">\r\n </sfe-value-input>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <div class=\"form-group\">\r\n <label class=\"pw-label control-label col-sm-4\">Total</label>\r\n <div class=\"col-sm-4\">\r\n <input type=\"text\" class=\"form-control\" id=\"compositionTotalUO\" readonly />\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"fuelGasSourceComments\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <sob-unit-operation-comments [unitOpId]=\"this.unitOperation.id\"></sob-unit-operation-comments>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { UntypedFormBuilder } from '@angular/forms';\r\nimport { FuelGasSource } from '../../../_models/_unit-operations/fuel-gas/fuel-gas-source';\r\nimport { BaseObjectFormGroupWrapper } from '../../../_form-utils/base-object-form-group-wrapper';\r\nimport { SimVarFormBuilder } from '../../../_form-utils/sim-var-form-builder';\r\nimport { CoreService } from '../../../_services/core.service';\r\nimport { GasFluidAnalysis } from '../../../_models/_fluid/gas-fluid-analysis';\r\nimport { FlowsheetService } from '../../../_services/flowsheet.service';\r\nimport { VariableStatus } from '../../../_config/variable-status.enum';\r\n\r\n@Component({\r\n selector: 'sob-fuel-gas-source',\r\n templateUrl: './fuel-gas-source.component.html',\r\n styleUrls: ['./fuel-gas-source.component.css'],\r\n})\r\nexport class FuelGasSourceComponent implements OnInit {\r\n @Input() unitOperation: FuelGasSource;\r\n @Input() formGroupWrapper: BaseObjectFormGroupWrapper;\r\n currentAnalysis: GasFluidAnalysis;\r\n\r\n constructor(\r\n private fb: UntypedFormBuilder,\r\n private svfb: SimVarFormBuilder,\r\n public coreService: CoreService,\r\n private flowsheetService: FlowsheetService\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.addControls();\r\n this.updateCurrentAnalysis();\r\n this.formGroupWrapper.storeOriginalValue();\r\n }\r\n\r\n addControls() {\r\n this.propertyWindowFormGroup.addControl('name', this.fb.control(this.unitOperation.name));\r\n this.propertyWindowFormGroup.addControl('flowrate', this.svfb.control(this.unitOperation.flowrate));\r\n this.propertyWindowFormGroup.addControl('isOptimizable', this.fb.control(this.unitOperation.isOptimizable));\r\n this.propertyWindowFormGroup.addControl('fluidAnalysisId', this.fb.control(this.unitOperation.fluidAnalysisId));\r\n this.isOptimizableChanged(this.unitOperation.isOptimizable);\r\n }\r\n\r\n get propertyWindowFormGroup() {\r\n return this.formGroupWrapper.getFormGroup();\r\n }\r\n\r\n get fluidAnalyses() {\r\n return this.coreService.currentCase.assayManager.getAssaysByCategory('Gas');\r\n }\r\n\r\n updateCurrentAnalysis(id?) {\r\n if (id) {\r\n this.unitOperation.fluidAnalysisId = id;\r\n }\r\n if (this.unitOperation.fluidAnalysisId) {\r\n this.currentAnalysis = this.coreService.currentCase.assayManager.findFluidAnalysisById(\r\n this.unitOperation.fluidAnalysisId\r\n );\r\n this.propertyWindowFormGroup.get('fluidAnalysisId').setValue(this.unitOperation.fluidAnalysisId);\r\n this.assayChanged();\r\n this.formGroupWrapper.storeOriginalValue();\r\n }\r\n }\r\n\r\n assayChanged(): void {\r\n $(`#compositionUnit${this.unitOperation.id}`).val(this.currentAnalysis.composition[0].unit);\r\n let total = 0;\r\n for (let i = 0; i < this.currentAnalysis.composition.length; i++) {\r\n const simVar = this.currentAnalysis.composition[i];\r\n total += simVar.convertToCaptureUnit(true);\r\n $(`#composition${i}`).val(simVar.convertToCaptureUnit(true));\r\n }\r\n $('#compositionTotalUO').val(total);\r\n }\r\n\r\n openAssayManager(id): void {\r\n this.flowsheetService.closePropertyWindow();\r\n $('#assayManagerModal').modal('show');\r\n const editButton: HTMLElement = document.getElementById(`editButton${id}`) as HTMLElement;\r\n editButton.click();\r\n }\r\n\r\n isOptimizableChanged(checked: boolean) {\r\n if (checked) {\r\n this.propertyWindowFormGroup.get('flowrate').get('value').disable();\r\n } else {\r\n if (this.unitOperation.flowrate.variableStatus === VariableStatus.SOLVER_CALCULATED) {\r\n this.unitOperation.flowrate.variableStatus = VariableStatus.USER_SPECIFIED;\r\n }\r\n this.propertyWindowFormGroup.get('flowrate').get('value').enable();\r\n }\r\n }\r\n}\r\n","<ul class=\"nav nav-tabs\" role=\"tablist\" style=\"margin-right: 15px\">\r\n <li role=\"presentation\" class=\"active\">\r\n <a href=\"#blockSpecifications\" aria-controls=\"blockSpecifications\" role=\"tab\" data-toggle=\"tab\">Model</a>\r\n </li>\r\n\r\n <li role=\"presentation\">\r\n <a href=\"#fuelGasSplitterComments\" aria-controls=\"fuelGasSplitterComments\" role=\"tab\" data-toggle=\"tab\">\r\n <i class=\"fa fa-comments fa-lg {{ this.unitOperation.comments ? 'gentle-hover-shake' : '' }}\" aria-hidden=\"true\">\r\n </i>\r\n Comments\r\n </a>\r\n </li>\r\n</ul>\r\n\r\n<div class=\"tab-content pw-margin tab-content-padding\" [formGroup]=\"propertyWindowFormGroup\">\r\n <div role=\"tabpanel\" class=\"tab-pane fade in active\" id=\"blockSpecifications\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <div class=\"form-horizontal\">\r\n <div class=\"form-group m-b-md\">\r\n <label for=\"isOptimizable\" class=\"control-label col-sm-4\"> Optimize </label>\r\n\r\n <div class=\"col-sm-4\">\r\n <label for=\"isOptimizable\" class=\"control-label\">\r\n <input\r\n type=\"checkbox\"\r\n id=\"isOptimizable\"\r\n formControlName=\"isOptimizable\"\r\n (change)=\"isOptimizableChanged($event.target.checked)\" />\r\n </label>\r\n </div>\r\n </div>\r\n\r\n <label class=\"control-label col-sm-4\"> Stream Name </label>\r\n\r\n <label class=\"control-label col-sm-6\"> Distribution Ratio </label>\r\n\r\n <br />\r\n <br />\r\n <br />\r\n\r\n <div\r\n class=\"form-group\"\r\n formArrayName=\"distributionRatioVariables\"\r\n *ngFor=\"let dv of distributionRatioVariablesFormArray.controls; let i = index\">\r\n <label for=\"distributionRatio{{ i }}\" class=\"pw-label control-label col-sm-4\">\r\n {{ findDistributionRatioName(i) }}\r\n </label>\r\n\r\n <div class=\"col-sm-8\" formGroupName=\"{{ i }}\">\r\n <input\r\n type=\"text\"\r\n class=\"form-control\"\r\n id=\"distributionRatio{{ i }}\"\r\n formControlName=\"value\"\r\n (change)=\"roundDistributionVariable(i)\"\r\n [readonly]=\"i === distributionRatioVariablesFormArray.controls.length - 1\" />\r\n <span class=\"text-danger\" *ngIf=\"shouldShowValidationError(getDistributionRatioVariableValueControl(i))\">\r\n <span *ngIf=\"getDistributionRatioVariableValueControl(i).errors?.required\">Please enter a value</span>\r\n <span *ngIf=\"getDistributionRatioVariableValueControl(i).errors?.max\"\r\n >Distribution ratio cannot be greater than 1</span\r\n >\r\n <span *ngIf=\"getDistributionRatioVariableValueControl(i).errors?.min\"\r\n >Distribution ratio cannot be negative</span\r\n >\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"fuelGasSplitterComments\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <sob-unit-operation-comments [unitOpId]=\"this.unitOperation.id\"></sob-unit-operation-comments>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\r\nimport { SubSink } from 'subsink';\r\nimport { AbstractControl, UntypedFormArray, UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms';\r\nimport { AbstractFormGroupPropertyWindow } from '../abstract-form-group-property-window';\r\nimport { BaseObjectFormGroupWrapper } from '../../../_form-utils/base-object-form-group-wrapper';\r\nimport { FuelGasSplitter } from '../../../_models/_unit-operations/fuel-gas/fuel-gas-splitter';\r\nimport { CoreService } from '../../../_services/core.service';\r\nimport { DistributionRatioVariable } from '../../../_models/_unit-operations/distribution-ratio-variable';\r\nimport { hasNumericValue, roundNumber } from '../../../_utils/utils';\r\n\r\ndeclare let unitConverter: any;\r\n\r\n@Component({\r\n selector: 'sob-fuel-gas-splitter',\r\n templateUrl: './fuel-gas-splitter.component.html',\r\n styleUrls: ['./fuel-gas-splitter.component.css'],\r\n})\r\nexport class FuelGasSplitterComponent extends AbstractFormGroupPropertyWindow implements OnInit, OnDestroy {\r\n @Input() override formGroupWrapper: BaseObjectFormGroupWrapper;\r\n @Input() unitOperation: FuelGasSplitter;\r\n\r\n private subSink = new SubSink();\r\n\r\n constructor(private fb: UntypedFormBuilder, private coreService: CoreService) {\r\n super();\r\n\r\n this.subSink.add(\r\n this.coreService.streamRemovedRequest.subscribe(s => {\r\n if (s.inletUnitOperationId === this.unitOperation.id) {\r\n this.removeDistributionRatioVariable(s.outletUnitOperationId);\r\n }\r\n })\r\n );\r\n\r\n this.subSink.add(\r\n this.coreService.streamAddedRequest.subscribe(s => {\r\n if (s.inletUnitOperationId === this.unitOperation.id) {\r\n this.addDistributionRatioVariable(s.outletUnitOperationId);\r\n }\r\n })\r\n );\r\n }\r\n\r\n ngOnInit(): void {\r\n this.init();\r\n\r\n this.distributionRatioVariablesFormArray.valueChanges.forEach(() => {\r\n this.calculateLastDistributionVariable();\r\n });\r\n\r\n // eslint-disable-next-line guard-for-in\r\n for (const i in this.distributionRatioVariablesFormArray.controls) {\r\n this.roundDistributionVariable(+i);\r\n }\r\n }\r\n\r\n addControls() {\r\n this.propertyWindowFormGroup.addControl('name', this.fb.control(this.unitOperation.name));\r\n this.propertyWindowFormGroup.addControl('isOptimizable', this.fb.control(this.unitOperation.isOptimizable));\r\n this.propertyWindowFormGroup.addControl(\r\n 'distributionRatioVariables',\r\n this.fb.array(this.createDistributionRatioVariablesControls())\r\n );\r\n this.isOptimizableChanged(this.unitOperation.isOptimizable);\r\n }\r\n\r\n private createDistributionRatioVariablesControls(): UntypedFormGroup[] {\r\n return this.unitOperation.distributionRatioVariables.map(dv => {\r\n return this.createSingleDistributionRatioVariableControl(dv);\r\n });\r\n }\r\n\r\n protected createSingleDistributionRatioVariableControl(dv: DistributionRatioVariable) {\r\n const roundedValue = hasNumericValue(dv.value) ? roundNumber(+dv.value, 3) : undefined;\r\n\r\n const valueControl = this.fb.control(roundedValue, [Validators.required, Validators.max(1), Validators.min(0)]);\r\n\r\n return this.fb.group({\r\n value: valueControl,\r\n });\r\n }\r\n\r\n private addDistributionRatioVariable(unitOperationId: string) {\r\n this.unitOperation.addDistributionVariable(unitOperationId);\r\n\r\n const dv = this.unitOperation.distributionRatioVariables[this.unitOperation.distributionRatioVariables.length - 1];\r\n const dvControl = this.createSingleDistributionRatioVariableControl(dv);\r\n this.distributionRatioVariablesFormArray.push(dvControl);\r\n }\r\n\r\n private removeDistributionRatioVariable(unitOperationId: string) {\r\n const index = this.unitOperation.findDistributionRatioVariableIndex(unitOperationId);\r\n if (index === -1) {\r\n return;\r\n }\r\n\r\n this.distributionRatioVariablesFormArray.removeAt(index);\r\n this.unitOperation.removeDistributionRatioVariable(unitOperationId);\r\n }\r\n\r\n get distributionRatioVariablesFormArray() {\r\n return this.propertyWindowFormGroup.get('distributionRatioVariables') as UntypedFormArray;\r\n }\r\n\r\n getDistributionRatioVariableValueControl(i): AbstractControl {\r\n return this.distributionRatioVariablesFormArray.get(`${i}`).get('value');\r\n }\r\n\r\n isOptimizableChanged(checked: boolean) {\r\n if (checked) {\r\n this.distributionRatioVariablesFormArray.disable();\r\n } else {\r\n this.distributionRatioVariablesFormArray.enable();\r\n }\r\n }\r\n\r\n findDistributionRatioName(index: number): string {\r\n if (this.unitOperation) {\r\n return this.unitOperation.findDistributionRatioVariableName(index);\r\n }\r\n return '';\r\n }\r\n\r\n calculateLastDistributionVariable() {\r\n const { controls } = this.distributionRatioVariablesFormArray;\r\n if (controls.length <= 1) {\r\n return;\r\n }\r\n\r\n let total = 0;\r\n\r\n for (let i = 0; i < controls.length - 1; i++) {\r\n const dv = controls[i];\r\n const dvParsed = unitConverter.parseFloatString(dv.get('value').value);\r\n\r\n if (!Number.isNaN(dvParsed)) {\r\n total += dvParsed;\r\n } else {\r\n return;\r\n }\r\n }\r\n\r\n controls[controls.length - 1].get('value').setValue(parseFloat((1 - total).toFixed(5)), {\r\n emitEvent: false,\r\n emitModelToViewChange: true,\r\n emitViewToModelChange: true,\r\n });\r\n controls[controls.length - 1].get('value').markAsDirty();\r\n }\r\n\r\n roundDistributionVariable(i: number) {\r\n const dv = this.distributionRatioVariablesFormArray.controls[i];\r\n const dvParsed = unitConverter.parseFloatString(dv.get('value').value);\r\n\r\n if (!Number.isNaN(dvParsed)) {\r\n dv.get('value').setValue(parseFloat(dvParsed.toFixed(3)));\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subSink.unsubscribe();\r\n }\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { UntypedFormBuilder } from '@angular/forms';\r\nimport { SimVarFormBuilder } from '../../../_form-utils/sim-var-form-builder';\r\nimport { BaseObjectFormGroupWrapper } from '../../../_form-utils/base-object-form-group-wrapper';\r\nimport { FuelGasAmineContactor } from '../../../_models/_unit-operations/fuel-gas/fuel-gas-amine-contactor';\r\n\r\n@Component({\r\n selector: 'sob-fuel-gas-amine-contactor',\r\n templateUrl: './fuel-gas-amine-contactor.component.html',\r\n styleUrls: ['./fuel-gas-amine-contactor.component.css'],\r\n})\r\nexport class FuelGasAmineContactorComponent implements OnInit {\r\n @Input() unitOperation: FuelGasAmineContactor;\r\n @Input() formGroupWrapper: BaseObjectFormGroupWrapper;\r\n\r\n constructor(private fb: UntypedFormBuilder, private svfb: SimVarFormBuilder) {}\r\n\r\n ngOnInit(): void {\r\n this.addControls();\r\n this.formGroupWrapper.storeOriginalValue();\r\n }\r\n\r\n addControls() {\r\n this.propertyWindowFormGroup.addControl('name', this.fb.control(this.unitOperation.name));\r\n this.propertyWindowFormGroup.addControl(\r\n 'h2SRemovalFraction',\r\n this.svfb.control(this.unitOperation.h2SRemovalFraction)\r\n );\r\n }\r\n\r\n get propertyWindowFormGroup() {\r\n return this.formGroupWrapper.getFormGroup();\r\n }\r\n}\r\n","<ul class=\"nav nav-tabs\" role=\"tablist\" style=\"margin-right: 15px\">\r\n <li role=\"presentation\" class=\"active\">\r\n <a href=\"#blockSpecifications\" aria-controls=\"blockSpecifications\" role=\"tab\" data-toggle=\"tab\">Model</a>\r\n </li>\r\n\r\n <li role=\"presentation\">\r\n <a href=\"#fuelGasAmineContactorComments\" aria-controls=\"fuelGasAmineContactorComments\" role=\"tab\" data-toggle=\"tab\">\r\n <i class=\"fa fa-comments fa-lg {{ this.unitOperation.comments ? 'gentle-hover-shake' : '' }}\" aria-hidden=\"true\">\r\n </i>\r\n Comments\r\n </a>\r\n </li>\r\n</ul>\r\n\r\n<div class=\"tab-content pw-margin tab-content-padding\" [formGroup]=\"propertyWindowFormGroup\">\r\n <div role=\"tabpanel\" class=\"tab-pane fade in active\" id=\"blockSpecifications\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <div class=\"form-horizontal\">\r\n <h4 class=\"subtitle\">Inputs</h4>\r\n <hr />\r\n <br />\r\n <div class=\"form-group\" formGroupName=\"h2SRemovalFraction\">\r\n <label class=\"control-label col-sm-4\"> H2S Removal </label>\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.h2SRemovalFraction.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.h2SRemovalFraction\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"fuelGasAmineContactorComments\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <sob-unit-operation-comments [unitOpId]=\"this.unitOperation.id\"></sob-unit-operation-comments>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { AbstractControl, UntypedFormBuilder } from '@angular/forms';\r\nimport { WaterSource } from '../../../_models/_unit-operations/utilties/water-source';\r\nimport { BaseObjectFormGroupWrapper } from '../../../_form-utils/base-object-form-group-wrapper';\r\nimport { SimVarFormBuilder } from '../../../_form-utils/sim-var-form-builder';\r\nimport { VariableStatus } from '../../../_config/variable-status.enum';\r\nimport { SimulationVariable } from '../../../_models';\r\nimport { hasNumericValue, isEmptyValue } from '../../../_utils/utils';\r\n\r\n@Component({\r\n selector: 'sob-water-source',\r\n templateUrl: './water-source.component.html',\r\n styleUrls: ['./water-source.component.css'],\r\n})\r\nexport class WaterSourceComponent implements OnInit {\r\n @Input() unitOperation: WaterSource;\r\n @Input() formGroupWrapper: BaseObjectFormGroupWrapper;\r\n\r\n constructor(private fb: UntypedFormBuilder, private svfb: SimVarFormBuilder) {}\r\n\r\n ngOnInit(): void {\r\n this.addControls();\r\n this.formGroupWrapper.storeOriginalValue();\r\n this.grayOutFields();\r\n }\r\n\r\n addControls() {\r\n this.propertyWindowFormGroup.addControl('name', this.fb.control(this.unitOperation.name));\r\n this.propertyWindowFormGroup.addControl('massFlowrate', this.svfb.control(this.unitOperation.massFlowrate));\r\n this.propertyWindowFormGroup.addControl('temperature', this.svfb.control(this.unitOperation.temperature));\r\n this.propertyWindowFormGroup.addControl('pressure', this.svfb.control(this.unitOperation.pressure));\r\n this.propertyWindowFormGroup.addControl('vaporFraction', this.svfb.control(this.unitOperation.vaporFraction));\r\n this.propertyWindowFormGroup.addControl('isOptimizable', this.fb.control(this.unitOperation.isOptimizable));\r\n this.isOptimizableChanged(this.unitOperation.isOptimizable);\r\n }\r\n\r\n get propertyWindowFormGroup() {\r\n return this.formGroupWrapper.getFormGroup();\r\n }\r\n\r\n isOptimizableChanged(checked: boolean) {\r\n if (checked) {\r\n this.propertyWindowFormGroup.get('massFlowrate').get('value').disable();\r\n } else {\r\n if (this.unitOperation.massFlowrate.variableStatus === VariableStatus.SOLVER_CALCULATED) {\r\n this.unitOperation.massFlowrate.variableStatus = VariableStatus.USER_SPECIFIED;\r\n }\r\n this.propertyWindowFormGroup.get('massFlowrate').get('value').enable();\r\n }\r\n }\r\n\r\n grayOutFields(): void {\r\n const temperature = this.propertyWindowFormGroup.get('temperature').get('value');\r\n const pressure = this.propertyWindowFormGroup.get('pressure').get('value');\r\n const vaporFraction = this.propertyWindowFormGroup.get('vaporFraction').get('value');\r\n\r\n const controlsWithSimVar: [SimulationVariable, AbstractControl][] = [\r\n [this.unitOperation.temperature, temperature],\r\n [this.unitOperation.pressure, pressure],\r\n [this.unitOperation.vaporFraction, vaporFraction],\r\n ];\r\n\r\n const controlsWithValue = controlsWithSimVar.filter(item => {\r\n return hasNumericValue(item[1].value);\r\n });\r\n\r\n const controlsWithoutValue = controlsWithSimVar.filter(item => {\r\n return isEmptyValue(item[1].value) || !hasNumericValue(item[1].value);\r\n });\r\n\r\n const controlsSolverCalculatedWithValue = controlsWithSimVar.filter(item => {\r\n return !isEmptyValue(item[1].value) && item[0].variableStatus === VariableStatus.SOLVER_CALCULATED;\r\n });\r\n\r\n if (controlsWithValue.length / controlsWithValue.length === controlsWithoutValue.length) {\r\n this.disabledControls(controlsWithoutValue);\r\n this.enabledControls(controlsSolverCalculatedWithValue);\r\n } else if (controlsWithoutValue.length === 0) {\r\n this.disabledControls(controlsSolverCalculatedWithValue);\r\n } else {\r\n this.enabledControls(controlsWithSimVar);\r\n }\r\n }\r\n\r\n disabledControls(controlsArray: [SimulationVariable, AbstractControl][]) {\r\n controlsArray.forEach(item => {\r\n item[0].variableStatus = VariableStatus.SOLVER_CALCULATED;\r\n item[1].disable();\r\n });\r\n }\r\n\r\n enabledControls(controlsArray: [SimulationVariable, AbstractControl][]) {\r\n controlsArray.forEach(item => {\r\n item[0].variableStatus = VariableStatus.USER_SPECIFIED;\r\n item[1].enable();\r\n });\r\n }\r\n}\r\n","<div [formGroup]=\"propertyWindowFormGroup\">\r\n <ul class=\"nav nav-tabs\" role=\"tablist\" style=\"margin-right: 15px; margin-top: 20px\">\r\n <li role=\"presentation\" class=\"active\">\r\n <a href=\"#blockSpecifications\" aria-controls=\"blockSpecifications\" role=\"tab\" data-toggle=\"tab\">Model</a>\r\n </li>\r\n\r\n <li role=\"presentation\">\r\n <a href=\"#waterSourceComments\" aria-controls=\"waterSourceComments\" role=\"tab\" data-toggle=\"tab\">\r\n <i class=\"fa fa-comments fa-lg\" aria-hidden=\"true\"> </i>\r\n Comments\r\n </a>\r\n </li>\r\n </ul>\r\n\r\n <div class=\"tab-content pw-margin tab-content-padding\">\r\n <div role=\"tabpanel\" class=\"tab-pane fade in active\" id=\"blockSpecifications\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <div class=\"form-horizontal\">\r\n <h4 class=\"subtitle\">Conditions</h4>\r\n <hr />\r\n <br />\r\n\r\n <div class=\"form-group\">\r\n <label for=\"isOptimizable\" class=\"control-label col-sm-4\"> Optimize </label>\r\n\r\n <div class=\"col-sm-4\">\r\n <label for=\"isOptimizable\" class=\"control-label\">\r\n <input\r\n type=\"checkbox\"\r\n id=\"isOptimizable\"\r\n formControlName=\"isOptimizable\"\r\n (change)=\"isOptimizableChanged($event.target.checked)\" />\r\n </label>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"massFlowrate\">\r\n <label class=\"control-label col-sm-4\"> Mass Flowrate </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.massFlowrate.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.massFlowrate\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-horizontal\" (keyup)=\"grayOutFields()\">\r\n <div class=\"form-group\" formGroupName=\"temperature\">\r\n <label class=\"control-label col-sm-4\"> Temperature </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.temperature.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.temperature\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"pressure\">\r\n <label class=\"control-label col-sm-4\"> Pressure </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.pressure.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input formControlName=\"value\" [valueMetaData]=\"unitOperation.pressure\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"vaporFraction\">\r\n <label class=\"control-label col-sm-4\"> Vapor Fraction </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.vaporFraction.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.vaporFraction\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"waterSourceComments\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <sob-unit-operation-comments [unitOpId]=\"this.unitOperation.id\"></sob-unit-operation-comments>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { UntypedFormBuilder } from '@angular/forms';\r\nimport { Pipe } from '../../../_models/_unit-operations/pipe';\r\nimport { BaseObjectFormGroupWrapper } from '../../../_form-utils/base-object-form-group-wrapper';\r\nimport { SimVarFormBuilder } from '../../../_form-utils/sim-var-form-builder';\r\n\r\n@Component({\r\n selector: 'sob-pipe',\r\n templateUrl: './pipe.component.html',\r\n styleUrls: ['./pipe.component.css'],\r\n})\r\nexport class PipeComponent implements OnInit {\r\n @Input() unitOperation: Pipe;\r\n @Input() formGroupWrapper: BaseObjectFormGroupWrapper;\r\n\r\n constructor(private fb: UntypedFormBuilder, private svfb: SimVarFormBuilder) {}\r\n\r\n ngOnInit(): void {\r\n this.addControls();\r\n this.formGroupWrapper.storeOriginalValue();\r\n }\r\n\r\n addControls() {\r\n this.propertyWindowFormGroup.addControl('name', this.fb.control(this.unitOperation.name));\r\n this.propertyWindowFormGroup.addControl('pipeLength', this.svfb.control(this.unitOperation.pipeLength));\r\n this.propertyWindowFormGroup.addControl('pressureDrop', this.svfb.control(this.unitOperation.pressureDrop));\r\n this.propertyWindowFormGroup.addControl('ghgIntensity', this.svfb.control(this.unitOperation.ghgIntensity));\r\n this.propertyWindowFormGroup.addControl('ghgEmissions', this.svfb.control(this.unitOperation.ghgEmissions, true));\r\n\r\n this.propertyWindowFormGroup.addControl('opexFixed', this.svfb.control(this.unitOperation.opexFixed));\r\n this.propertyWindowFormGroup.addControl('opexVar', this.svfb.control(this.unitOperation.opexVar));\r\n this.propertyWindowFormGroup.addControl(\r\n 'opexCarbonDioxide',\r\n this.svfb.control(this.unitOperation.opexCarbonDioxide, true)\r\n );\r\n this.propertyWindowFormGroup.addControl('opexTotal', this.svfb.control(this.unitOperation.opexTotal, true));\r\n\r\n this.propertyWindowFormGroup.addControl(\r\n 'capacity',\r\n this.svfb.control(this.unitOperation.capacity, false, false, true)\r\n );\r\n this.propertyWindowFormGroup.addControl(\r\n 'minimumFlow',\r\n this.svfb.control(this.unitOperation.minimumFlow, false, false, true)\r\n );\r\n this.propertyWindowFormGroup.addControl(\r\n 'pipeDensitySpec',\r\n this.svfb.control(this.unitOperation.pipeDensitySpec, false, false, true)\r\n );\r\n }\r\n\r\n get propertyWindowFormGroup() {\r\n return this.formGroupWrapper.getFormGroup();\r\n }\r\n}\r\n","<ul class=\"nav nav-tabs\" role=\"tablist\" style=\"margin-right: 15px\">\r\n <li role=\"presentation\" class=\"active\">\r\n <a href=\"#blockSpecifications\" aria-controls=\"blockSpecifications\" role=\"tab\" data-toggle=\"tab\">General</a>\r\n </li>\r\n\r\n <li role=\"presentation\">\r\n <a href=\"#economics\" aria-controls=\"economics\" role=\"tab\" data-toggle=\"tab\">Economics</a>\r\n </li>\r\n <li role=\"presentation\">\r\n <a href=\"#constraints\" aria-controls=\"constraints\" role=\"tab\" data-toggle=\"tab\"> Constraints </a>\r\n </li>\r\n\r\n <li role=\"presentation\">\r\n <a href=\"#pipeComments\" aria-controls=\"pipeComments\" role=\"tab\" data-toggle=\"tab\">\r\n <i class=\"fa fa-comments fa-lg\" aria-hidden=\"true\"> </i>\r\n Comments\r\n </a>\r\n </li>\r\n</ul>\r\n\r\n<div class=\"tab-content pw-margin tab-content-padding\" [formGroup]=\"propertyWindowFormGroup\">\r\n <div role=\"tabpanel\" class=\"tab-pane fade in active\" id=\"blockSpecifications\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <div class=\"form-horizontal\">\r\n <ng-container>\r\n <div class=\"form-group\" formGroupName=\"pipeLength\">\r\n <label class=\"control-label col-sm-4\"> Length </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.pipeLength.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input formControlName=\"value\" [valueMetaData]=\"unitOperation.pipeLength\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"pressureDrop\">\r\n <label class=\"control-label col-sm-4\"> Pressure Drop </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.pressureDrop.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.pressureDrop\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <br />\r\n <hr />\r\n <h4 class=\"subtitle\">GHG</h4>\r\n\r\n <div class=\"form-group\" formGroupName=\"ghgIntensity\">\r\n <label class=\"control-label col-sm-4\"> GHG Intensity </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.ghgIntensity.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.ghgIntensity\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"ghgEmissions\">\r\n <label class=\"control-label col-sm-4\"> GHG Emissions </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.ghgEmissions.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.ghgEmissions\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"economics\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <div class=\"form-horizontal\">\r\n <h4 class=\"subtitle\">OPEX</h4>\r\n\r\n <ng-container>\r\n <div class=\"form-group\" formGroupName=\"opexFixed\">\r\n <label class=\"control-label col-sm-4\"> Fixed </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.opexFixed.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input formControlName=\"value\" [valueMetaData]=\"unitOperation.opexFixed\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"opexVar\">\r\n <label class=\"control-label col-sm-4\"> Variable </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.opexVar.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input formControlName=\"value\" [valueMetaData]=\"unitOperation.opexVar\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"opexCarbonDioxide\">\r\n <label class=\"control-label col-sm-4\"> CO2 </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select\r\n formControlName=\"unit\"\r\n [quantity]=\"unitOperation.opexCarbonDioxide.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.opexCarbonDioxide\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"opexTotal\">\r\n <label class=\"control-label col-sm-4\"> Total </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.opexTotal.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input formControlName=\"value\" [valueMetaData]=\"unitOperation.opexTotal\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"constraints\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <div class=\"form-horizontal\">\r\n <ng-container>\r\n <div class=\"form-group\" formGroupName=\"capacity\">\r\n <label class=\"control-label col-sm-4\"> Maximum Feed Capacity </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-5\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.capacity.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-5\">\r\n <sob-reactive-variable-value-input formControlName=\"value\" [valueMetaData]=\"unitOperation.capacity\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n <div class=\"col-xs-2\">\r\n <sob-reactive-constraint-check-box\r\n formControlName=\"isActive\"\r\n [isConstraint]=\"true\"\r\n [valueMetaData]=\"unitOperation.capacity\"></sob-reactive-constraint-check-box>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"minimumFlow\">\r\n <label class=\"control-label col-sm-4\"> Minimum Flow </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-5\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.minimumFlow.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-5\">\r\n <sob-reactive-variable-value-input\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.minimumFlow\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n <div class=\"col-xs-2\">\r\n <sob-reactive-constraint-check-box\r\n formControlName=\"isActive\"\r\n [isConstraint]=\"true\"\r\n [valueMetaData]=\"unitOperation.minimumFlow\"></sob-reactive-constraint-check-box>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"pipeDensitySpec\">\r\n <label class=\"control-label col-sm-4\"> Pipe Density Spec </label>\r\n\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-5\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.pipeDensitySpec.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-5\">\r\n <sob-reactive-variable-value-input\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.pipeDensitySpec\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n <div class=\"col-xs-2\">\r\n <sob-reactive-constraint-check-box\r\n formControlName=\"isActive\"\r\n [isConstraint]=\"true\"\r\n [valueMetaData]=\"unitOperation.pipeDensitySpec\"></sob-reactive-constraint-check-box>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"pipeComments\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <sob-unit-operation-comments [unitOpId]=\"this.unitOperation.id\"></sob-unit-operation-comments>\r\n </div>\r\n </div>\r\n</div>\r\n","export enum AssayType {\r\n PRODUCT = 'Product',\r\n}\r\n","import { Completion } from '@codemirror/autocomplete';\r\nimport { CodemirrorCompletionType } from '../../codemirror-completion.type';\r\n\r\nconst bitumenConversionVariables: Completion[] = [\r\n {\r\n type: CodemirrorCompletionType.VARIABLE,\r\n label: 'ProductYields',\r\n info:\r\n 'Dictionary of stream Name and Corresponding Yield Percent for the stream \\n' +\r\n ' Example: ProductYields[\"Outlet1\"] = 80.0 ',\r\n },\r\n];\r\n\r\nconst bitumenConversionEnums: Completion[] = [\r\n {\r\n type: CodemirrorCompletionType.METHOD,\r\n label: 'YieldBasis',\r\n info: 'Valid options: YieldBasis.Mass, YieldBasis.Volume',\r\n },\r\n];\r\n\r\nexport const bitumenConversionCompletions = bitumenConversionVariables.concat(bitumenConversionEnums);\r\n","import { Completion } from '@codemirror/autocomplete';\r\nimport { DefaultCodeProvider } from './default-code-provider';\r\nimport { bitumenConversionCompletions } from '../../_config/unit-operations/custom-code-completions/bitumen-conversion-completions';\r\nimport { defaultBitumenConversionModel } from '../../_config/unit-operations/default-models/default-bitumen-conversion-model';\r\n\r\nexport class BitumenConversionCodeProvider extends DefaultCodeProvider {\r\n constructor() {\r\n super(defaultBitumenConversionModel);\r\n }\r\n\r\n override getCodeCompletions(): Completion[] {\r\n return super.getCodeCompletions().concat(bitumenConversionCompletions);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { FormArray, FormControl, Validators } from '@angular/forms';\r\nimport { BitumenConversionOutlet } from '../_models/_unit-operations/bitumen-conversion-outlet';\r\nimport { IdentifiableFormGroup } from '../shared/identifiable-form-group';\r\nimport { SimulationVariableForm, SimVarFormBuilder } from './sim-var-form-builder';\r\n\r\nexport type BitumenConversionOutletForm = IdentifiableFormGroup<{\r\n fluidAnalysisId: FormControl<string>;\r\n yield: SimulationVariableForm;\r\n price: SimulationVariableForm;\r\n}>;\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class BitumenConversionOutletFormBuilder {\r\n constructor(private svfb: SimVarFormBuilder) {}\r\n\r\n formArray(outletsArray: BitumenConversionOutlet[]): FormArray<BitumenConversionOutletForm> {\r\n return new FormArray<BitumenConversionOutletForm>(\r\n outletsArray.map(outlet => {\r\n return this.control(outlet);\r\n })\r\n );\r\n }\r\n\r\n control(outlet: BitumenConversionOutlet): BitumenConversionOutletForm {\r\n return new IdentifiableFormGroup(outlet.unitOperationId, {\r\n fluidAnalysisId: new FormControl(outlet.fluidAnalysisId, [Validators.required]),\r\n yield: this.svfb.populatedControl(outlet.yield, false, false, [Validators.required]),\r\n price: this.svfb.populatedControl(outlet.price, false, false, [Validators.required]),\r\n });\r\n }\r\n}\r\n","<ng-container [formGroup]=\"formGroup\">\r\n <ul class=\"nav nav-tabs\" role=\"tablist\" style=\"margin-right: 15px; margin-top: 20px\">\r\n <li role=\"presentation\" class=\"active\">\r\n <a href=\"#outlets\" aria-controls=\"outlets\" role=\"tab\" data-toggle=\"tab\">Outlets</a>\r\n </li>\r\n <li role=\"presentation\">\r\n <a href=\"#blockSpecifications\" aria-controls=\"blockSpecifications\" role=\"tab\" data-toggle=\"tab\">General</a>\r\n </li>\r\n\r\n <li role=\"presentation\">\r\n <a href=\"#economics\" aria-controls=\"economics\" role=\"tab\" data-toggle=\"tab\">Economics</a>\r\n </li>\r\n\r\n <li role=\"presentation\">\r\n <a href=\"#constraints\" aria-controls=\"constraints\" role=\"tab\" data-toggle=\"tab\"> Constraints </a>\r\n </li>\r\n\r\n <li role=\"presentation\">\r\n <a href=\"#utility\" aria-controls=\"economics\" role=\"tab\" data-toggle=\"tab\">Utility</a>\r\n </li>\r\n\r\n <li role=\"presentation\">\r\n <a href=\"#bitumenConversionComments\" aria-controls=\"bitumenConversionComments\" role=\"tab\" data-toggle=\"tab\">\r\n <i class=\"fa fa-comments fa-lg\" aria-hidden=\"true\"> </i>\r\n Comments\r\n </a>\r\n </li>\r\n </ul>\r\n\r\n <div class=\"tab-content pw-margin tab-content-padding\">\r\n <div role=\"tabpanel\" class=\"tab-pane fade in active\" id=\"outlets\">\r\n <div class=\"form-horizontal\">\r\n <div class=\"form-group\">\r\n <label for=\"customModelEnabled\" class=\"control-label col-sm-4\"> Custom Model </label>\r\n <div class=\"col-sm-4\">\r\n <label class=\"control-label\">\r\n <input\r\n formControlName=\"useCustomModel\"\r\n type=\"checkbox\"\r\n id=\"customModelEnabled\"\r\n (change)=\"onCustomModelChanged()\" />\r\n </label>\r\n </div>\r\n </div>\r\n\r\n <div class=\"mb-4\">\r\n <sob-open-reactive-code-editor-button\r\n [code]=\"unitOperation.customModelScript\"\r\n [defaultCodeProvider]=\"defaultCodeProvider\"\r\n [disabled]=\"!isCustomModelEnabled\"\r\n [instanceId]=\"'bitumenConversionCodeEditor'\"\r\n (codeSaved)=\"saveCustomModel($event)\">\r\n </sob-open-reactive-code-editor-button>\r\n </div>\r\n\r\n <div class=\"form-group\" *ngIf=\"!isCustomModelEnabled\">\r\n <label for=\"bcYieldBasis\" class=\"pw-label control-label col-sm-4\">Yield Basis</label>\r\n <div class=\"col-sm-6\">\r\n <select id=\"bcYieldBasis\" class=\"form-control\" formControlName=\"yieldBasis\">\r\n <option value=\"\">Select one...</option>\r\n <option value=\"{{ BitumenConversionYieldBasis.VOLUME }}\">Volume</option>\r\n <option value=\"{{ BitumenConversionYieldBasis.MASS }}\">Mass</option>\r\n </select>\r\n </div>\r\n </div>\r\n <ng-container formArrayName=\"outlets\">\r\n <ng-container *ngFor=\"let outletFormGroup of outletsFormArray.controls; let i = index\">\r\n <ng-container [formGroupName]=\"i\">\r\n <h4 class=\"subtitle\" style=\"padding-top: 20px\">{{ findOutletName(i) }}</h4>\r\n <div class=\"form-group\">\r\n <label class=\"pw-label control-label col-sm-4\"> Assay Name </label>\r\n <div class=\"col-sm-8\" [id]=\"'assaySelector' + i\">\r\n <sob-assay-selector\r\n [fluidAnalyses]=\"fluidAnalyses\"\r\n [currentAnalysis]=\"getCurrentAnalysisByOutletIndex(i)\"\r\n (updateCurrentAssay)=\"updateCurrentAnalysis(i, $event)\"></sob-assay-selector>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"yield\">\r\n <label for=\"\" class=\"pw-label control-label col-sm-4\">Yield</label>\r\n <div class=\"col-sm-8\">\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.totalYield.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n id=\"\"\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.totalYield\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"price\">\r\n <label for=\"\" class=\"pw-label control-label col-sm-4\">Product Price</label>\r\n <div class=\"col-sm-8\">\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select\r\n formControlName=\"unit\"\r\n [quantity]=\"unitOperation.outlets[i].price.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.outlets[i].price\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <hr />\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"blockSpecifications\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <div class=\"form-horizontal\">\r\n <div class=\"form-group\" formGroupName=\"hydrogenUseRate\">\r\n <label for=\"bcHydrogenUseRate\" class=\"pw-label control-label col-sm-4\"> Hydrogen Use Rate </label>\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.hydrogenUseRate.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n id=\"bcHydrogenUseRate\"\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.hydrogenUseRate\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"hydrogenUse\">\r\n <label for=\"bcHydrogenUse\" class=\"pw-label control-label col-sm-4\"> Hydrogen Use </label>\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.hydrogenUse.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n id=\"bcHydrogenUse\"\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.hydrogenUse\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group\" formGroupName=\"hydrogenImbalance\">\r\n <label for=\"bcHydrogenImbalance\" class=\"pw-label control-label col-sm-4\"> Hydrogen Excess</label>\r\n <div class=\"col-sm-8\" sobReactiveSimVarInput>\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select\r\n formControlName=\"unit\"\r\n [quantity]=\"unitOperation.hydrogenImbalance.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n id=\"bcHydrogenImbalance\"\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.hydrogenImbalance\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <hr />\r\n\r\n <h4 class=\"subtitle\">GHG</h4>\r\n <div class=\"form-group\" formGroupName=\"ghgIntensity\">\r\n <label for=\"bcGhgIntensity\" class=\"pw-label control-label col-sm-4\"> GHG Intensity </label>\r\n <div class=\"col-sm-8\">\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.ghgIntensity.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n id=\"bcGhgIntensity\"\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.ghgIntensity\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"absoluteGhgEmissions\">\r\n <label for=\"bcAbsoluteGhgEmissions\" class=\"pw-label control-label col-sm-4\"> Absolute GHG Emissions </label>\r\n <div class=\"col-sm-8\">\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select\r\n formControlName=\"unit\"\r\n [quantity]=\"unitOperation.absoluteGhgEmissions.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n id=\"bcAbsoluteGhgEmissions\"\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.absoluteGhgEmissions\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"economics\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <div class=\"form-horizontal\">\r\n <div class=\"form-group\" formGroupName=\"revenue\">\r\n <label for=\"bcRevenue\" class=\"pw-label control-label col-sm-4\">Revenue</label>\r\n <div class=\"col-sm-8\">\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.revenue.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n id=\"bcRevenue\"\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.revenue\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"unitValue\">\r\n <label for=\"bcUnitValue\" class=\"pw-label control-label col-sm-4\">Before Tax Cash Flow</label>\r\n <div class=\"col-sm-8\">\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.unitValue.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n id=\"bcUnitValue\"\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.unitValue\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <h4 class=\"subtitle\">OPEX</h4>\r\n\r\n <div class=\"form-group\" formGroupName=\"opexFixed\">\r\n <label for=\"bcOpexFixed\" class=\"pw-label control-label col-sm-4\">Fixed</label>\r\n <div class=\"col-sm-8\">\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.opexFixed.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n id=\"bcOpexFixed\"\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.opexFixed\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"opexVar\">\r\n <label for=\"\" class=\"pw-label control-label col-sm-4\">Variable</label>\r\n <div class=\"col-sm-8\">\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.opexVar.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n id=\"bcOpexVar\"\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.opexVar\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"opexCarbonDioxide\">\r\n <label for=\"bcOpexCarbonDioxide\" class=\"pw-label control-label col-sm-4\">CO<sub>2</sub></label>\r\n <div class=\"col-sm-8\">\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select\r\n formControlName=\"unit\"\r\n [quantity]=\"unitOperation.opexCarbonDioxide.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n id=\"bcOpexCarbonDioxide\"\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.opexCarbonDioxide\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"opexTotal\">\r\n <label for=\"\" class=\"pw-label control-label col-sm-4\">Total</label>\r\n <div class=\"col-sm-8\">\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.opexTotal.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n id=\"bcOpexTotal\"\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.opexTotal\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <hr />\r\n <h4 class=\"subtitle\">CAPEX</h4>\r\n\r\n <div class=\"form-group\" formGroupName=\"capexAmortized\">\r\n <label for=\"\" class=\"pw-label control-label col-sm-4\">Amortized CAPEX</label>\r\n <div class=\"col-sm-8\">\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.capexAmortized.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n id=\"capexAmortized\"\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.capexAmortized\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"capexTotal\">\r\n <label for=\"bcCapexTotal\" class=\"pw-label control-label col-sm-4\">Total</label>\r\n <div class=\"col-sm-8\">\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.capexTotal.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n id=\"bcCapexTotal\"\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.capexTotal\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"constraints\">\r\n <p class=\"constraints-active-label\">\r\n <span style=\"\">Active</span>\r\n </p>\r\n <div class=\"form-horizontal\">\r\n <div class=\"form-group\" formGroupName=\"capacity\">\r\n <label for=\"\" class=\"pw-label control-label col-sm-4\">Maximum Feed Capacity</label>\r\n <div class=\"col-sm-8\">\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.capacity.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-5 pl-1 pr-3\">\r\n <sob-reactive-variable-value-input\r\n id=\"bcCapacity\"\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.capacity\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n <div class=\"col-xs-1 text-center pl-2_5 pr-1\">\r\n <label class=\"control-label\">\r\n <input type=\"checkbox\" formControlName=\"isActive\" />\r\n </label>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"bitumenConversionComments\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <sob-unit-operation-comments [unitOpId]=\"this.unitOperation.id\"></sob-unit-operation-comments>\r\n </div>\r\n </div>\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"utility\">\r\n <div class=\"tab-content no-padding no-border\">\r\n <div class=\"form-horizontal\">\r\n <div class=\"form-group\">\r\n <div class=\"btn-group\" data-toggle=\"buttons\">\r\n <label\r\n for=\"bcModelTypeSimple\"\r\n class=\"btn utility-toggle btn-primary btn-sm {{\r\n formGroup.controls.modelType.value === BitumenModelTypes.SIMPLE ? 'active' : ''\r\n }}\"\r\n (click)=\"updateModelType(BitumenModelTypes.SIMPLE)\">\r\n <input type=\"radio\" id=\"bcModelTypeSimple\" name=\"modelType\" />\r\n Simple\r\n </label>\r\n <label\r\n for=\"bcModelTypeUtility\"\r\n class=\"btn utility-toggle btn-primary btn-sm {{\r\n formGroup.controls.modelType.value === BitumenModelTypes.UTILITY ? 'active' : ''\r\n }}\"\r\n (click)=\"updateModelType(BitumenModelTypes.UTILITY)\">\r\n <input type=\"radio\" id=\"bcModelTypeUtility\" name=\"modelType\" autocomplete=\"off\" />\r\n Detailed\r\n </label>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"powerUseRate\">\r\n <label for=\"bcPowerUseRate\" class=\"pw-label control-label col-sm-4\"> Power Use Rate </label>\r\n <div class=\"col-sm-8\">\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.powerUseRate.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n id=\"bcPowerUseRate\"\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.powerUseRate\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"powerPrice\">\r\n <label for=\"\" class=\"pw-label control-label col-sm-4\">Power Price</label>\r\n <div class=\"col-sm-8\">\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.powerPrice.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n id=\"bcPowerPrice\"\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.powerPrice\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"powerEmissionFactor\">\r\n <label for=\"bcPowerEmissionFactor\" class=\"pw-label control-label col-sm-4\">Power Emission Factor</label>\r\n <div class=\"col-sm-8\">\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select\r\n formControlName=\"unit\"\r\n [quantity]=\"unitOperation.powerEmissionFactor.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n id=\"bcPowerEmissionFactor\"\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.powerEmissionFactor\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"hydrogenPrice\">\r\n <label for=\"bcHydrogenPrice\" class=\"pw-label control-label col-sm-4\">Hydrogen Price</label>\r\n <div class=\"col-sm-8\">\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.hydrogenPrice.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n id=\"bcHydrogenPrice\"\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.hydrogenPrice\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"hydrogenEmissionFactor\">\r\n <label for=\"bcHydrogenEmissionFactor\" class=\"pw-label control-label col-sm-4\"\r\n >Hydrogen Emission Factor</label\r\n >\r\n <div class=\"col-sm-8\">\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select\r\n formControlName=\"unit\"\r\n [quantity]=\"unitOperation.hydrogenEmissionFactor.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n id=\"bcHydrogenEmissionFactor\"\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.hydrogenEmissionFactor\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"naturalGasUseRate\">\r\n <label for=\"bcNaturalGasUseRate\" class=\"pw-label control-label col-sm-4\">Natural Gas Use Rate</label>\r\n <div class=\"col-sm-8\">\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select\r\n formControlName=\"unit\"\r\n [quantity]=\"unitOperation.naturalGasUseRate.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n id=\"bcNaturalGasUseRate\"\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.naturalGasUseRate\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"naturalGasPrice\">\r\n <label for=\"bcNaturalGasPrice\" class=\"pw-label control-label col-sm-4\">Natural Gas Price</label>\r\n <div class=\"col-sm-8\">\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select formControlName=\"unit\" [quantity]=\"unitOperation.naturalGasPrice.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n id=\"bcNaturalGasPrice\"\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.naturalGasPrice\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\" formGroupName=\"naturalGasEmissionFactor\">\r\n <label for=\"bcNaturalGasEmissionFactor\" class=\"pw-label control-label col-sm-4\"\r\n >Natural Gas Emission Factor</label\r\n >\r\n <div class=\"col-sm-8\">\r\n <div class=\"row\">\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-unit-select\r\n formControlName=\"unit\"\r\n [quantity]=\"unitOperation.naturalGasEmissionFactor.quantity\">\r\n </sob-reactive-unit-select>\r\n </div>\r\n <div class=\"col-xs-6\">\r\n <sob-reactive-variable-value-input\r\n id=\"bcNaturalGasEmissionFactor\"\r\n formControlName=\"value\"\r\n [valueMetaData]=\"unitOperation.naturalGasEmissionFactor\">\r\n </sob-reactive-variable-value-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <sob-reactive-steam-use-utility [formGroupWrapper]=\"formGroupWrapper\" [unitOperation]=\"unitOperation\">\r\n </sob-reactive-steam-use-utility>\r\n <sob-reactive-gas-contributor [formGroupWrapper]=\"formGroupWrapper\" [unitOperation]=\"unitOperation\">\r\n </sob-reactive-gas-contributor>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</ng-container>\r\n","import { Component, inject, Input, OnDestroy, OnInit } from '@angular/core';\r\nimport { FormArray, FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { SubSink } from 'subsink';\r\nimport { BitumenConversion } from '../../../_models/_unit-operations/bitumen-conversion';\r\nimport { AbstractFormGroupPropertyWindow } from '../abstract-form-group-property-window';\r\nimport { SimVarFormBuilder } from '../../../_form-utils/sim-var-form-builder';\r\nimport {\r\n BitumenConversionYieldBasis,\r\n BitumenModelTypes,\r\n} from '../../../_config/unit-operations/bitumen-conversion-enums';\r\nimport { BaseObjectFormGroupWrapper } from '../../../_form-utils/base-object-form-group-wrapper';\r\nimport {\r\n BitumenConversionOutletForm,\r\n BitumenConversionOutletFormBuilder,\r\n} from '../../../_form-utils/bitumen-conversion-outlet-form-builder';\r\nimport { CoreService } from '../../../_services/core.service';\r\nimport { AssayType } from '../../../_config/assay-type.enum';\r\nimport { BitumenConversionCodeProvider } from '../../../_services/custom-code-providers/bitumen-conversion-code-provider';\r\nimport { FlowsheetService } from '../../../_services/flowsheet.service';\r\n\r\n@Component({\r\n selector: 'sob-bitumen-conversion',\r\n templateUrl: './bitumen-conversion.component.html',\r\n styleUrls: ['./bitumen-conversion.component.css'],\r\n})\r\nexport class BitumenConversionComponent extends AbstractFormGroupPropertyWindow implements OnInit, OnDestroy {\r\n @Input() unitOperation: BitumenConversion;\r\n\r\n @Input() formGroupWrapper!: BaseObjectFormGroupWrapper;\r\n\r\n defaultCodeProvider: BitumenConversionCodeProvider;\r\n private readonly flowsheetService = inject(FlowsheetService);\r\n\r\n formGroup = new FormGroup({\r\n name: new FormControl('', [Validators.required]),\r\n yieldBasis: new FormControl('', [Validators.required]),\r\n hydrogenUseRate: this.svfb.emptyControl(),\r\n hydrogenUse: this.svfb.emptyControl(true),\r\n hydrogenImbalance: this.svfb.emptyControl(true),\r\n ghgIntensity: this.svfb.emptyControl(),\r\n absoluteGhgEmissions: this.svfb.emptyControl(true),\r\n outlets: new FormArray<BitumenConversionOutletForm>([]),\r\n\r\n revenue: this.svfb.emptyControl(true),\r\n unitValue: this.svfb.emptyControl(true),\r\n opexFixed: this.svfb.emptyControl(),\r\n opexVar: this.svfb.emptyControl(),\r\n opexCarbonDioxide: this.svfb.emptyControl(true),\r\n opexTotal: this.svfb.emptyControl(true),\r\n capexAmortized: this.svfb.emptyControl(),\r\n capexTotal: this.svfb.emptyControl(true),\r\n capacity: this.svfb.emptyConstraintControl(),\r\n\r\n modelType: new FormControl('', [Validators.required]),\r\n powerUseRate: this.svfb.emptyControl(),\r\n powerPrice: this.svfb.emptyControl(),\r\n powerEmissionFactor: this.svfb.emptyControl(),\r\n hydrogenPrice: this.svfb.emptyControl(),\r\n hydrogenEmissionFactor: this.svfb.emptyControl(),\r\n naturalGasUseRate: this.svfb.emptyControl(),\r\n naturalGasPrice: this.svfb.emptyControl(),\r\n naturalGasEmissionFactor: this.svfb.emptyControl(),\r\n\r\n useCustomModel: new FormControl<boolean>(false),\r\n customModelScript: new FormControl<string>(''),\r\n });\r\n\r\n private subSink = new SubSink();\r\n\r\n protected readonly BitumenConversionYieldBasis = BitumenConversionYieldBasis;\r\n protected readonly BitumenModelTypes = BitumenModelTypes;\r\n\r\n constructor(\r\n private svfb: SimVarFormBuilder,\r\n private bofb: BitumenConversionOutletFormBuilder,\r\n private core: CoreService\r\n ) {\r\n super();\r\n\r\n this.subSink.add(\r\n this.core.streamAddedRequest.subscribe(s => {\r\n if (s.inletUnitOperationId === this.unitOperation.id) {\r\n this.addBitumenConversionOutlet(s.outletUnitOperationId);\r\n }\r\n })\r\n );\r\n\r\n this.subSink.add(\r\n this.core.streamRemovedRequest.subscribe(s => {\r\n if (s.inletUnitOperationId === this.unitOperation.id) {\r\n this.removeBitumenConversionOutlet(s.outletUnitOperationId);\r\n }\r\n })\r\n );\r\n\r\n this.defaultCodeProvider = new BitumenConversionCodeProvider();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.init();\r\n }\r\n\r\n addControls() {\r\n this.formGroup.controls.name.patchValue(this.unitOperation.name);\r\n this.formGroup.controls.yieldBasis.patchValue(this.unitOperation.yieldBasis);\r\n this.svfb.patchValue(this.unitOperation.hydrogenUseRate, this.formGroup.controls.hydrogenUseRate);\r\n this.svfb.patchValue(this.unitOperation.hydrogenUse, this.formGroup.controls.hydrogenUse);\r\n this.svfb.patchValue(this.unitOperation.hydrogenImbalance, this.formGroup.controls.hydrogenImbalance);\r\n this.svfb.patchValue(this.unitOperation.ghgIntensity, this.formGroup.controls.ghgIntensity);\r\n this.svfb.patchValue(this.unitOperation.absoluteGhgEmissions, this.formGroup.controls.absoluteGhgEmissions);\r\n\r\n this.svfb.patchValue(this.unitOperation.revenue, this.formGroup.controls.revenue);\r\n this.svfb.patchValue(this.unitOperation.unitValue, this.formGroup.controls.unitValue);\r\n this.svfb.patchValue(this.unitOperation.opexFixed, this.formGroup.controls.opexFixed);\r\n this.svfb.patchValue(this.unitOperation.opexVar, this.formGroup.controls.opexVar);\r\n this.svfb.patchValue(this.unitOperation.opexCarbonDioxide, this.formGroup.controls.opexCarbonDioxide);\r\n this.svfb.patchValue(this.unitOperation.opexTotal, this.formGroup.controls.opexTotal);\r\n this.svfb.patchValue(this.unitOperation.capexAmortized, this.formGroup.controls.capexAmortized);\r\n this.svfb.patchValue(this.unitOperation.capexTotal, this.formGroup.controls.capexTotal);\r\n this.svfb.patchConstraintValue(this.unitOperation.capacity, this.formGroup.controls.capacity);\r\n\r\n this.formGroup.controls.outlets = this.bofb.formArray(this.unitOperation.outlets);\r\n\r\n this.formGroup.controls.modelType.patchValue(this.unitOperation.modelType);\r\n\r\n this.svfb.patchValue(this.unitOperation.powerUseRate, this.formGroup.controls.powerUseRate);\r\n this.svfb.patchValue(this.unitOperation.powerPrice, this.formGroup.controls.powerPrice);\r\n this.svfb.patchValue(this.unitOperation.powerEmissionFactor, this.formGroup.controls.powerEmissionFactor);\r\n this.svfb.patchValue(this.unitOperation.hydrogenPrice, this.formGroup.controls.hydrogenPrice);\r\n this.svfb.patchValue(this.unitOperation.hydrogenEmissionFactor, this.formGroup.controls.hydrogenEmissionFactor);\r\n this.svfb.patchValue(this.unitOperation.naturalGasUseRate, this.formGroup.controls.naturalGasUseRate);\r\n this.svfb.patchValue(this.unitOperation.naturalGasPrice, this.formGroup.controls.naturalGasPrice);\r\n this.svfb.patchValue(this.unitOperation.naturalGasEmissionFactor, this.formGroup.controls.naturalGasEmissionFactor);\r\n\r\n for (const key of Object.keys(this.formGroup.controls)) {\r\n this.propertyWindowFormGroup.addControl(key, this.formGroup.controls[key]);\r\n }\r\n\r\n this.formGroup.controls.useCustomModel.patchValue(this.unitOperation.useCustomModel);\r\n this.formGroup.controls.customModelScript.patchValue(this.unitOperation.customModelScript);\r\n\r\n this.onModelTypeChanged();\r\n this.onCustomModelChanged();\r\n }\r\n\r\n // region outlets\r\n addBitumenConversionOutlet(outletUnitOperationId: string) {\r\n this.unitOperation.addOutlet(outletUnitOperationId);\r\n const outlet = this.unitOperation.findOutlet(outletUnitOperationId);\r\n const outletControl = this.bofb.control(outlet);\r\n\r\n if (this.isCustomModelEnabled) {\r\n outletControl.controls.yield.controls.value.disable();\r\n }\r\n\r\n this.outletsFormArray.controls.push(outletControl);\r\n }\r\n\r\n removeBitumenConversionOutlet(outletUnitOperationId: string) {\r\n const formGroupToRemove = this.outletsFormArray.controls.find(fg => {\r\n return fg.getFormGroupId() === outletUnitOperationId;\r\n });\r\n\r\n // This is important... if we remove a negative index an item will be removed...\r\n if (!formGroupToRemove) {\r\n return;\r\n }\r\n\r\n // TODO remove this when unit operation copies are no longer needed\r\n this.unitOperation.removeOutlet(outletUnitOperationId);\r\n const formGroupIndex = this.outletsFormArray.controls.indexOf(formGroupToRemove);\r\n\r\n this.outletsFormArray.removeAt(formGroupIndex);\r\n }\r\n\r\n findOutletName(i: number) {\r\n const id = this.unitOperation.outlets[i].unitOperationId;\r\n return this.core.currentCase.getUnitOperationName(id);\r\n }\r\n\r\n get outletsFormArray() {\r\n return this.formGroup.controls.outlets;\r\n }\r\n // endregion\r\n\r\n // region assay\r\n get fluidAnalyses() {\r\n return this.core.currentCase.assayManager.getAssaysByCategory(AssayType.PRODUCT);\r\n }\r\n\r\n getCurrentAnalysisByOutletIndex(index: number) {\r\n const fluidAnalysisId = this.outletsFormArray.controls[index].controls.fluidAnalysisId.value;\r\n return this.core.currentCase.assayManager.findFluidAnalysisById(fluidAnalysisId);\r\n }\r\n\r\n updateCurrentAnalysis(index: number, selectedAssayId: string) {\r\n this.outletsFormArray.controls[index].controls.fluidAnalysisId.patchValue(selectedAssayId);\r\n }\r\n // endregion\r\n\r\n // region modelType\r\n protected updateModelType(modelType: string) {\r\n this.formGroup.controls.modelType.patchValue(modelType);\r\n\r\n this.onModelTypeChanged();\r\n }\r\n\r\n private onModelTypeChanged() {\r\n if (this.isSimpleModelType()) {\r\n this.disableAndClearUtilityFields();\r\n } else {\r\n this.enableUtilityFields();\r\n }\r\n }\r\n\r\n private disableAndClearUtilityFields() {\r\n this.formGroup.controls.powerUseRate.controls.value.patchValue(undefined);\r\n this.formGroup.controls.powerUseRate.controls.value.disable();\r\n\r\n this.formGroup.controls.powerPrice.controls.value.patchValue(undefined);\r\n this.formGroup.controls.powerPrice.controls.value.disable();\r\n\r\n this.formGroup.controls.naturalGasUseRate.controls.value.patchValue(undefined);\r\n this.formGroup.controls.naturalGasUseRate.controls.value.disable();\r\n\r\n this.formGroup.controls.hydrogenUseRate.controls.value.patchValue(undefined);\r\n this.formGroup.controls.hydrogenUseRate.controls.value.disable();\r\n\r\n this.formGroup.controls.powerEmissionFactor.controls.value.patchValue(undefined);\r\n this.formGroup.controls.powerEmissionFactor.controls.value.disable();\r\n\r\n this.formGroup.controls.hydrogenPrice.controls.value.patchValue(undefined);\r\n this.formGroup.controls.hydrogenPrice.controls.value.disable();\r\n\r\n this.formGroup.controls.hydrogenEmissionFactor.controls.value.patchValue(undefined);\r\n this.formGroup.controls.hydrogenEmissionFactor.controls.value.disable();\r\n\r\n this.formGroup.controls.naturalGasPrice.controls.value.patchValue(undefined);\r\n this.formGroup.controls.naturalGasPrice.controls.value.disable();\r\n\r\n this.formGroup.controls.naturalGasEmissionFactor.controls.value.patchValue(undefined);\r\n this.formGroup.controls.naturalGasEmissionFactor.controls.value.disable();\r\n }\r\n\r\n private enableUtilityFields() {\r\n this.formGroup.controls.powerUseRate.controls.value.enable();\r\n this.formGroup.controls.powerPrice.controls.value.enable();\r\n this.formGroup.controls.naturalGasUseRate.controls.value.enable();\r\n this.formGroup.controls.hydrogenUseRate.controls.value.enable();\r\n this.formGroup.controls.powerEmissionFactor.controls.value.enable();\r\n this.formGroup.controls.hydrogenPrice.controls.value.enable();\r\n this.formGroup.controls.hydrogenEmissionFactor.controls.value.enable();\r\n this.formGroup.controls.naturalGasPrice.controls.value.enable();\r\n this.formGroup.controls.naturalGasEmissionFactor.controls.value.enable();\r\n }\r\n\r\n private isSimpleModelType() {\r\n return this.formGroup.controls.modelType.value === BitumenModelTypes.SIMPLE;\r\n }\r\n // endregion modelType\r\n\r\n // region customModelScript\r\n protected get isCustomModelEnabled() {\r\n return this.formGroup.controls.useCustomModel.value;\r\n }\r\n\r\n protected onCustomModelChanged() {\r\n if (this.isCustomModelEnabled) {\r\n this.disableAllOutletsYields();\r\n } else {\r\n this.enableAllOutletsYields();\r\n }\r\n }\r\n\r\n private disableAllOutletsYields() {\r\n for (const outletControl of this.outletsFormArray.controls) {\r\n outletControl.controls.yield.controls.value.disable();\r\n }\r\n }\r\n\r\n private enableAllOutletsYields() {\r\n for (const outletControl of this.outletsFormArray.controls) {\r\n outletControl.controls.yield.controls.value.enable();\r\n }\r\n }\r\n // endregion\r\n\r\n saveCustomModel(target: { code: string; instanceId: string }) {\r\n if (target.instanceId === 'bitumenConversionCodeEditor') {\r\n this.formGroup.controls.customModelScript.patchValue(target.code);\r\n this.unitOperation.customModelScript = this.propertyWindowFormGroup.get('customModelScript').value;\r\n this.flowsheetService.saveCustomCodeChanges();\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subSink.unsubscribe();\r\n }\r\n}\r\n","<div id=\"propertyWindow\">\r\n <div class=\"col-xs-10\">\r\n <div id=\"pwNameWrapper\">\r\n <input type=\"text\" class=\"form-control\" id=\"pwBlockName\" name=\"pwBlockName\" [(ngModel)]=\"unitOperation.name\" />\r\n </div>\r\n </div>\r\n <div class=\"col-xs-2\">\r\n <a id=\"closePropertyWindow\" class=\"btn btn-danger\" (click)=\"onClosePropertyWindowClicked()\"> X </a>\r\n </div>\r\n\r\n <div class=\"col-xs-12\" id=\"propertyWindowContent\" [ngSwitch]=\"unitOperation.category\">\r\n <sob-diluent-source [unitOperation]=\"unitOperation\" *ngSwitchCase=\"'diluent-source'\"></sob-diluent-source>\r\n <sob-extraction [unitOperation]=\"unitOperation\" *ngSwitchCase=\"'extraction'\"></sob-extraction>\r\n <!-- <sob-bitumen-conversion [unitOperation]=\"unitOperation\" *ngSwitchCase=\"'bitumen-conversion'\">-->\r\n <!-- </sob-bitumen-conversion>-->\r\n <sob-bitumen-conversion\r\n [unitOperation]=\"unitOperation\"\r\n [formGroupWrapper]=\"formGroupWrapper\"\r\n *ngSwitchCase=\"unitOperationsConfig.bitumenConversion.key\">\r\n </sob-bitumen-conversion>\r\n <sob-mine-source [unitOperation]=\"unitOperation\" *ngSwitchCase=\"'mine-source'\"></sob-mine-source>\r\n <sob-mixer\r\n [unitOperation]=\"unitOperation\"\r\n [formGroupWrapper]=\"formGroupWrapper\"\r\n *ngSwitchCase=\"'mixer'\"></sob-mixer>\r\n <sob-offshore-source [unitOperation]=\"unitOperation\" *ngSwitchCase=\"'offshore-source'\"></sob-offshore-source>\r\n <sob-pipe\r\n [formGroupWrapper]=\"formGroupWrapper\"\r\n [unitOperation]=\"unitOperation\"\r\n *ngSwitchCase=\"unitOperationsConfig.pipe.key\"></sob-pipe>\r\n <sob-refinery\r\n [formGroupWrapper]=\"formGroupWrapper\"\r\n [unitOperation]=\"unitOperation\"\r\n *ngSwitchCase=\"unitOperationsConfig.refinery.key\"></sob-refinery>\r\n <sob-suncor-renewable-block [unitOperation]=\"unitOperation\" *ngSwitchCase=\"'suncor-renewable-block'\">\r\n </sob-suncor-renewable-block>\r\n <sob-sagd-source [unitOperation]=\"unitOperation\" *ngSwitchCase=\"'sagd-source'\"></sob-sagd-source>\r\n <sob-splitter\r\n *ngSwitchCase=\"unitOperationsConfig.splitter.key\"\r\n [unitOperation]=\"unitOperation\"\r\n [formGroupWrapper]=\"formGroupWrapper\"></sob-splitter>\r\n <sob-third-party-refinery [unitOperation]=\"unitOperation\" *ngSwitchCase=\"'third-party-refinery'\">\r\n </sob-third-party-refinery>\r\n <sob-third-party-source [unitOperation]=\"unitOperation\" *ngSwitchCase=\"'third-party-source'\">\r\n </sob-third-party-source>\r\n <sob-upgrader [unitOperation]=\"unitOperation\" *ngSwitchCase=\"'upgrader'\"></sob-upgrader>\r\n <sob-dru [unitOperation]=\"unitOperation\" *ngSwitchCase=\"'dru'\"></sob-dru>\r\n <sob-vac [unitOperation]=\"unitOperation\" *ngSwitchCase=\"'vac'\"></sob-vac>\r\n <sob-hydrotreater\r\n [formGroupWrapper]=\"formGroupWrapper\"\r\n [unitOperation]=\"unitOperation\"\r\n *ngSwitchCase=\"unitOperationsConfig.hydrotreater.key\"></sob-hydrotreater>\r\n <sob-hydrogen-plant [unitOperation]=\"unitOperation\" *ngSwitchCase=\"'hydrogen-plant'\"> </sob-hydrogen-plant>\r\n <sob-sulfur-plant\r\n [formGroupWrapper]=\"formGroupWrapper\"\r\n [unitOperation]=\"unitOperation\"\r\n *ngSwitchCase=\"unitOperationsConfig.sulfurPlant.key\"></sob-sulfur-plant>\r\n\r\n <sob-hgo-hydrotreater [unitOperation]=\"unitOperation\" *ngSwitchCase=\"unitOperationsConfig.hgoHydrotreater.key\">\r\n </sob-hgo-hydrotreater>\r\n <sob-lgo-hydrotreater\r\n [formGroupWrapper]=\"formGroupWrapper\"\r\n [unitOperation]=\"unitOperation\"\r\n *ngSwitchCase=\"unitOperationsConfig.lgoHydrotreater.key\"></sob-lgo-hydrotreater>\r\n <sob-dcu [unitOperation]=\"unitOperation\" *ngSwitchCase=\"'dcu'\"></sob-dcu>\r\n <sob-fluid-coker [unitOperation]=\"unitOperation\" *ngSwitchCase=\"unitOperationsConfig.fluidCoker.key\">\r\n </sob-fluid-coker>\r\n <sob-commodity-tank [unitOperation]=\"unitOperation\" *ngSwitchCase=\"'commodity-tank'\"></sob-commodity-tank>\r\n\r\n <sob-product-tank\r\n [formGroupWrapper]=\"formGroupWrapper\"\r\n [unitOperation]=\"unitOperation\"\r\n *ngSwitchCase=\"unitOperationsConfig.productTank.key\">\r\n </sob-product-tank>\r\n\r\n <sob-hydrocracker [unitOperation]=\"unitOperation\" *ngSwitchCase=\"'hydrocracker'\"></sob-hydrocracker>\r\n\r\n <!-- Utilities -->\r\n <sob-water-utility-unit-operation [unitOperation]=\"unitOperation\" *ngSwitchCase=\"'water-utility-unit-operation'\">\r\n </sob-water-utility-unit-operation>\r\n <sob-water-source\r\n [unitOperation]=\"unitOperation\"\r\n [formGroupWrapper]=\"formGroupWrapper\"\r\n *ngSwitchCase=\"unitOperationsConfig.waterSource.key\">\r\n </sob-water-source>\r\n <sob-water-source-import\r\n [formGroupWrapper]=\"formGroupWrapper\"\r\n [unitOperation]=\"unitOperation\"\r\n *ngSwitchCase=\"unitOperationsConfig.waterSourceImport.key\">\r\n </sob-water-source-import>\r\n <sob-water-sink-import\r\n [formGroupWrapper]=\"formGroupWrapper\"\r\n [unitOperation]=\"unitOperation\"\r\n *ngSwitchCase=\"unitOperationsConfig.waterSinkImport.key\">\r\n </sob-water-sink-import>\r\n <sob-water-turbine\r\n [unitOperation]=\"unitOperation\"\r\n [formGroupWrapper]=\"formGroupWrapper\"\r\n *ngSwitchCase=\"unitOperationsConfig.waterTurbine.key\"></sob-water-turbine>\r\n <sob-water-heat-exchanger [unitOperation]=\"unitOperation\" *ngSwitchCase=\"'water-heat-exchanger'\">\r\n </sob-water-heat-exchanger>\r\n <sob-water-heater [unitOperation]=\"unitOperation\" *ngSwitchCase=\"'water-heater'\"></sob-water-heater>\r\n <sob-water-cooler [unitOperation]=\"unitOperation\" *ngSwitchCase=\"'water-cooler'\"></sob-water-cooler>\r\n <sob-water-two-phase-separator [unitOperation]=\"unitOperation\" *ngSwitchCase=\"'water-two-phase-separator'\">\r\n </sob-water-two-phase-separator>\r\n <sob-water-pump [unitOperation]=\"unitOperation\" *ngSwitchCase=\"'water-pump'\"></sob-water-pump>\r\n <sob-water-valve [unitOperation]=\"unitOperation\" *ngSwitchCase=\"'water-valve'\"></sob-water-valve>\r\n <sob-water-mixer [unitOperation]=\"unitOperation\" *ngSwitchCase=\"'water-mixer'\"></sob-water-mixer>\r\n <sob-water-splitter\r\n [formGroupWrapper]=\"formGroupWrapper\"\r\n [unitOperation]=\"unitOperation\"\r\n *ngSwitchCase=\"unitOperationsConfig.waterSplitter.key\"></sob-water-splitter>\r\n <sob-water-sink [unitOperation]=\"unitOperation\" *ngSwitchCase=\"'water-sink'\"></sob-water-sink>\r\n <sob-water-header\r\n [formGroupWrapper]=\"formGroupWrapper\"\r\n [unitOperation]=\"unitOperation\"\r\n *ngSwitchCase=\"unitOperationsConfig.waterHeader.key\"></sob-water-header>\r\n <sob-water-pipe [unitOperation]=\"unitOperation\" *ngSwitchCase=\"'water-pipe'\"></sob-water-pipe>\r\n <sob-water-boiler\r\n [formGroupWrapper]=\"formGroupWrapper\"\r\n [unitOperation]=\"unitOperation\"\r\n *ngSwitchCase=\"unitOperationsConfig.waterBoiler.key\"></sob-water-boiler>\r\n <sob-water-cogeneration\r\n [formGroupWrapper]=\"formGroupWrapper\"\r\n [unitOperation]=\"unitOperation\"\r\n *ngSwitchCase=\"unitOperationsConfig.waterCogeneration.key\"></sob-water-cogeneration>\r\n\r\n <sob-fuel-gas-utility-unit-operation\r\n *ngSwitchCase=\"unitOperationsConfig.fuelGasUtilityUnitOperation.key\"\r\n [unitOperation]=\"unitOperation\"></sob-fuel-gas-utility-unit-operation>\r\n <sob-fuel-gas-flare\r\n *ngSwitchCase=\"unitOperationsConfig.fuelGasFlare.key\"\r\n [unitOperation]=\"unitOperation\"\r\n [formGroupWrapper]=\"formGroupWrapper\">\r\n </sob-fuel-gas-flare>\r\n <sob-fuel-gas-sink\r\n [formGroupWrapper]=\"formGroupWrapper\"\r\n *ngSwitchCase=\"unitOperationsConfig.fuelGasSink.key\"\r\n [unitOperation]=\"unitOperation\">\r\n </sob-fuel-gas-sink>\r\n <sob-fuel-gas-sink-import\r\n *ngSwitchCase=\"unitOperationsConfig.fuelGasSinkImport.key\"\r\n [unitOperation]=\"unitOperation\"\r\n [formGroupWrapper]=\"formGroupWrapper\"></sob-fuel-gas-sink-import>\r\n <sob-fuel-gas-source-import\r\n *ngSwitchCase=\"unitOperationsConfig.fuelGasSourceImport.key\"\r\n [unitOperation]=\"unitOperation\"\r\n [formGroupWrapper]=\"formGroupWrapper\">\r\n </sob-fuel-gas-source-import>\r\n <sob-fuel-gas-mixer\r\n *ngSwitchCase=\"unitOperationsConfig.fuelGasMixer.key\"\r\n [unitOperation]=\"unitOperation\"></sob-fuel-gas-mixer>\r\n <sob-fuel-gas-source\r\n [formGroupWrapper]=\"formGroupWrapper\"\r\n [unitOperation]=\"unitOperation\"\r\n *ngSwitchCase=\"unitOperationsConfig.fuelGasSource.key\"></sob-fuel-gas-source>\r\n <sob-fuel-gas-splitter\r\n [formGroupWrapper]=\"formGroupWrapper\"\r\n [unitOperation]=\"unitOperation\"\r\n *ngSwitchCase=\"unitOperationsConfig.fuelGasSplitter.key\"></sob-fuel-gas-splitter>\r\n <sob-fuel-gas-amine-contactor\r\n *ngSwitchCase=\"unitOperationsConfig.fuelGasAmineContactor.key\"\r\n [unitOperation]=\"unitOperation\"\r\n [formGroupWrapper]=\"formGroupWrapper\">\r\n </sob-fuel-gas-amine-contactor>\r\n </div>\r\n</div>\r\n","import { Component, Input, ViewEncapsulation } from '@angular/core';\r\nimport { FlowsheetService } from '../../_services/flowsheet.service';\r\nimport { unitOperationsConfig } from '../../_config/unit-operations.config';\r\nimport { BaseObjectFormGroupWrapper } from '../../_form-utils/base-object-form-group-wrapper';\r\n\r\n@Component({\r\n selector: 'sob-property-window',\r\n templateUrl: './property-window.component.html',\r\n styleUrls: ['./property-window.component.css'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class PropertyWindowComponent {\r\n @Input() unitOperation: any;\r\n @Input() formGroupWrapper: BaseObjectFormGroupWrapper;\r\n\r\n unitOperationsConfig = unitOperationsConfig;\r\n\r\n constructor(private flowsheetService: FlowsheetService) {}\r\n\r\n onClosePropertyWindowClicked(): void {\r\n if ($('#closePropertyWindow').attr('disabled')) {\r\n return;\r\n }\r\n\r\n // would need feedback, if unit op is valid then save, if not... well do not save :v\r\n this.flowsheetService.prepareUnitOperationForSave();\r\n\r\n // the property window hiding/showing will be handled by the parent flowsheet component\r\n this.flowsheetService.closePropertyWindow();\r\n }\r\n}\r\n","import { ChangeDetectorRef, Component } from '@angular/core';\r\nimport { ObjectiveFunction } from '../../_models/_optimization/objective-function';\r\nimport { CoreService } from '../../_services/core.service';\r\nimport { LogManagerService } from '../log-manager/log-manager.service';\r\n\r\n@Component({\r\n selector: 'sob-objective-function-selector',\r\n templateUrl: './objective-function-selector.component.html',\r\n styleUrls: ['./objective-function-selector.component.css'],\r\n})\r\nexport class ObjectiveFunctionSelectorComponent {\r\n objectiveFunction: ObjectiveFunction;\r\n\r\n constructor(private coreService: CoreService, private logManager: LogManagerService, private ref: ChangeDetectorRef) {\r\n this.objectiveFunction = this.coreService.currentCase.objectiveFunction;\r\n\r\n // TODO this is relevant only when the current case is replaced\r\n this.coreService.caseChangedRequest.subscribe(() => {\r\n this.objectiveFunction = this.coreService.currentCase.objectiveFunction;\r\n this.ref.detectChanges();\r\n });\r\n }\r\n\r\n objectiveFunctionChanged(functionType) {\r\n this.objectiveFunction.objectiveFunctionType = functionType;\r\n this.logManager.info(`Objective function set to ${this.objectiveFunction.objectiveFunctionName}`);\r\n this.coreService.clearCurrentCaseResults();\r\n }\r\n}\r\n","<div class=\"form-group\">\r\n <label for=\"objectiveFunctionType\" class=\"pw-label control-label col-sm-4\"> Objective Function </label>\r\n\r\n <div class=\"col-sm-6\">\r\n <div class=\"dropdown-wrapper\">\r\n <select\r\n id=\"objectiveFunctionType\"\r\n [(ngModel)]=\"objectiveFunction.objectiveFunctionType\"\r\n (change)=\"objectiveFunctionChanged($event.target.value)\"\r\n class=\"form-control\">\r\n <option value=\"Cost\">Maximize Value</option>\r\n <option value=\"GHG\">Minimize GHG</option>\r\n </select>\r\n </div>\r\n </div>\r\n</div>\r\n","<div class=\"modal fade\" id=\"caseSettingsModal\" tabindex=\"-1\" role=\"dialog\" aria-labelledby=\"caseSettingsModalLabel\">\r\n <div class=\"modal-dialog\" role=\"document\">\r\n <div class=\"modal-content\">\r\n <div class=\"modal-header\">\r\n <button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"Close\">\r\n <span aria-hidden=\"true\">×</span>\r\n </button>\r\n <h4 class=\"modal-title\" id=\"\">Case Settings</h4>\r\n </div>\r\n <div class=\"modal-body\">\r\n <div class=\"form-horizontal\" *ngIf=\"caseSettings\">\r\n <ul class=\"nav nav-tabs\" role=\"tablist\">\r\n <li role=\"presentation\" class=\"active\">\r\n <a href=\"#general\" aria-controls=\"general\" role=\"tab\" data-toggle=\"tab\"> General </a>\r\n </li>\r\n </ul>\r\n\r\n <div class=\"tab-content report-tab-content\">\r\n <br />\r\n <div role=\"tabpanel\" class=\"tab-pane fade in active\" id=\"general\">\r\n <div class=\"form-group\">\r\n <sob-objective-function-selector></sob-objective-function-selector>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label for=\"cs.cogenMethodology\" class=\"pw-label control-label col-sm-4\"> Cogen Methodology </label>\r\n <div class=\"col-sm-6\">\r\n <select\r\n name=\"cs.cogenMethodology\"\r\n id=\"cs.cogenMethodology\"\r\n [(ngModel)]=\"caseSettings.cogenMethodology\"\r\n class=\"form-control\">\r\n <option value=\"NoCogenCredit\">No Cogen Credit</option>\r\n <option value=\"OBA\">OBA</option>\r\n <option value=\"SGER\">SGER</option>\r\n <option value=\"CurrentSUGoal\">Current Suncor Goal</option>\r\n </select>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label class=\"control-label col-sm-4\" for=\"cs.operatingDaysPerYear\"> Operating Days Per Year </label>\r\n\r\n <div class=\"col-sm-6\">\r\n <input\r\n class=\"form-control\"\r\n type=\"text\"\r\n id=\"cs.operatingDaysPerYear\"\r\n disabled=\"disabled\"\r\n [(ngModel)]=\"caseSettings.operatingDaysPerYear\" />\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'cs-carbonPrice'\" class=\"pw-label control-label col-sm-4\"> Carbon Price </label>\r\n <sim-var-input [inputId]=\"'cs-carbonPrice'\" [simVar]=\"caseSettings.carbonPrice\"></sim-var-input>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'cs-wtiPrice'\" class=\"pw-label control-label col-sm-4\"> WTI Price </label>\r\n <sim-var-input [inputId]=\"'cs-wtiPrice'\" [simVar]=\"caseSettings.wtiPrice\"></sim-var-input>\r\n </div>\r\n <div class=\"form-group\">\r\n <label for=\"cs-refineryEmissions\" class=\"control-label col-sm-4\"> Refinery Emissions Option </label>\r\n\r\n <div class=\"col-sm-4\">\r\n <select\r\n name=\"cs-refineryEmissions\"\r\n id=\"cs-refineryEmissions\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"caseSettings.refineryEmissions\">\r\n <option value=\"SUonly\">Suncor Only</option>\r\n <option value=\"All\">All</option>\r\n </select>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n","import { ChangeDetectorRef, Component, OnInit } from '@angular/core';\r\nimport { CaseSettings } from '../../_models';\r\nimport { CoreService } from '../../_services/core.service';\r\nimport { FlowsheetService } from '../../_services/flowsheet.service';\r\n\r\n@Component({\r\n selector: 'sob-case-settings',\r\n templateUrl: './case-settings.component.html',\r\n styleUrls: ['./case-settings.component.css'],\r\n})\r\nexport class CaseSettingsComponent implements OnInit {\r\n caseSettings: CaseSettings;\r\n\r\n constructor(\r\n private coreService: CoreService,\r\n private flowsheetService: FlowsheetService,\r\n private ref: ChangeDetectorRef\r\n ) {\r\n this.flowsheetService.openCaseSettingsRequest.subscribe(() => {\r\n this.openCaseSettings();\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n $('#caseSettingsModal').on('hide.bs.modal', () => {\r\n this.coreService.saveCaseSettings(this.caseSettings);\r\n });\r\n }\r\n\r\n openCaseSettings(): void {\r\n this.caseSettings = null;\r\n this.ref.detectChanges();\r\n this.caseSettings = new CaseSettings(this.coreService.currentCase.caseSettings, this.coreService.currentCase);\r\n $('#caseSettingsModal').modal('show');\r\n }\r\n}\r\n","export enum StreamCompositionType {\r\n MASS = 'Mass',\r\n VOLUME = 'Volume',\r\n DISTILLATION = 'Distillation',\r\n}\r\n","import { EventEmitter, Directive, Input, Output, HostListener, ElementRef, Injectable, Component, ViewEncapsulation, ChangeDetectorRef, ViewChild, Injector, ReflectiveInjector, ComponentFactoryResolver, ApplicationRef, ViewContainerRef, NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport * as ɵngcc0 from '@angular/core';\nimport * as ɵngcc1 from '@angular/common';\n\nconst _c0 = [\"dialogPopup\"];\nconst _c1 = [\"hueSlider\"];\nconst _c2 = [\"alphaSlider\"];\nfunction ColorPickerComponent_div_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"div\");\n} if (rf & 2) {\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵclassMapInterpolate1(\"arrow arrow-\", ctx_r1.cpUsePosition, \"\");\n ɵngcc0.ɵɵstyleProp(\"top\", ctx_r1.arrowTop, \"px\");\n} }\nfunction ColorPickerComponent_div_3_Template(rf, ctx) { if (rf & 1) {\n const _r17 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"div\", 26);\n ɵngcc0.ɵɵlistener(\"newValue\", function ColorPickerComponent_div_3_Template_div_newValue_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r17); const ctx_r16 = ɵngcc0.ɵɵnextContext(); return ɵngcc0.ɵɵresetView(ctx_r16.onColorChange($event)); })(\"dragStart\", function ColorPickerComponent_div_3_Template_div_dragStart_0_listener() { ɵngcc0.ɵɵrestoreView(_r17); const ctx_r18 = ɵngcc0.ɵɵnextContext(); return ɵngcc0.ɵɵresetView(ctx_r18.onDragStart(\"saturation-lightness\")); })(\"dragEnd\", function ColorPickerComponent_div_3_Template_div_dragEnd_0_listener() { ɵngcc0.ɵɵrestoreView(_r17); const ctx_r19 = ɵngcc0.ɵɵnextContext(); return ɵngcc0.ɵɵresetView(ctx_r19.onDragEnd(\"saturation-lightness\")); });\n ɵngcc0.ɵɵelement(1, \"div\", 13);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r2 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵstyleProp(\"background-color\", ctx_r2.hueSliderColor);\n ɵngcc0.ɵɵproperty(\"rgX\", 1)(\"rgY\", 1);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵstyleProp(\"top\", ctx_r2.slider == null ? null : ctx_r2.slider.v, \"px\")(\"left\", ctx_r2.slider == null ? null : ctx_r2.slider.s, \"px\");\n} }\nfunction ColorPickerComponent_button_8_Template(rf, ctx) { if (rf & 1) {\n const _r21 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"button\", 27);\n ɵngcc0.ɵɵlistener(\"click\", function ColorPickerComponent_button_8_Template_button_click_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r21); const ctx_r20 = ɵngcc0.ɵɵnextContext(); return ɵngcc0.ɵɵresetView(ctx_r20.onAddPresetColor($event, ctx_r20.selectedColor)); });\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r3 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵclassMap(ctx_r3.cpAddColorButtonClass);\n ɵngcc0.ɵɵproperty(\"disabled\", ctx_r3.cpPresetColors && ctx_r3.cpPresetColors.length >= ctx_r3.cpMaxPresetColorsLength);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate1(\" \", ctx_r3.cpAddColorButtonText, \" \");\n} }\nfunction ColorPickerComponent_div_10_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"div\", 28);\n} }\nfunction ColorPickerComponent_div_20_input_6_Template(rf, ctx) { if (rf & 1) {\n const _r25 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"input\", 34);\n ɵngcc0.ɵɵlistener(\"keyup.enter\", function ColorPickerComponent_div_20_input_6_Template_input_keyup_enter_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r25); const ctx_r24 = ɵngcc0.ɵɵnextContext(2); return ɵngcc0.ɵɵresetView(ctx_r24.onAcceptColor($event)); })(\"newValue\", function ColorPickerComponent_div_20_input_6_Template_input_newValue_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r25); const ctx_r26 = ɵngcc0.ɵɵnextContext(2); return ɵngcc0.ɵɵresetView(ctx_r26.onAlphaInput($event)); });\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r22 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"rg\", 1)(\"value\", ctx_r22.cmykText == null ? null : ctx_r22.cmykText.a);\n} }\nfunction ColorPickerComponent_div_20_div_16_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\");\n ɵngcc0.ɵɵtext(1, \"A\");\n ɵngcc0.ɵɵelementEnd();\n} }\nfunction ColorPickerComponent_div_20_Template(rf, ctx) { if (rf & 1) {\n const _r28 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"div\", 29)(1, \"div\", 30)(2, \"input\", 31);\n ɵngcc0.ɵɵlistener(\"keyup.enter\", function ColorPickerComponent_div_20_Template_input_keyup_enter_2_listener($event) { ɵngcc0.ɵɵrestoreView(_r28); const ctx_r27 = ɵngcc0.ɵɵnextContext(); return ɵngcc0.ɵɵresetView(ctx_r27.onAcceptColor($event)); })(\"newValue\", function ColorPickerComponent_div_20_Template_input_newValue_2_listener($event) { ɵngcc0.ɵɵrestoreView(_r28); const ctx_r29 = ɵngcc0.ɵɵnextContext(); return ɵngcc0.ɵɵresetView(ctx_r29.onCyanInput($event)); });\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(3, \"input\", 31);\n ɵngcc0.ɵɵlistener(\"keyup.enter\", function ColorPickerComponent_div_20_Template_input_keyup_enter_3_listener($event) { ɵngcc0.ɵɵrestoreView(_r28); const ctx_r30 = ɵngcc0.ɵɵnextContext(); return ɵngcc0.ɵɵresetView(ctx_r30.onAcceptColor($event)); })(\"newValue\", function ColorPickerComponent_div_20_Template_input_newValue_3_listener($event) { ɵngcc0.ɵɵrestoreView(_r28); const ctx_r31 = ɵngcc0.ɵɵnextContext(); return ɵngcc0.ɵɵresetView(ctx_r31.onMagentaInput($event)); });\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(4, \"input\", 31);\n ɵngcc0.ɵɵlistener(\"keyup.enter\", function ColorPickerComponent_div_20_Template_input_keyup_enter_4_listener($event) { ɵngcc0.ɵɵrestoreView(_r28); const ctx_r32 = ɵngcc0.ɵɵnextContext(); return ɵngcc0.ɵɵresetView(ctx_r32.onAcceptColor($event)); })(\"newValue\", function ColorPickerComponent_div_20_Template_input_newValue_4_listener($event) { ɵngcc0.ɵɵrestoreView(_r28); const ctx_r33 = ɵngcc0.ɵɵnextContext(); return ɵngcc0.ɵɵresetView(ctx_r33.onYellowInput($event)); });\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(5, \"input\", 31);\n ɵngcc0.ɵɵlistener(\"keyup.enter\", function ColorPickerComponent_div_20_Template_input_keyup_enter_5_listener($event) { ɵngcc0.ɵɵrestoreView(_r28); const ctx_r34 = ɵngcc0.ɵɵnextContext(); return ɵngcc0.ɵɵresetView(ctx_r34.onAcceptColor($event)); })(\"newValue\", function ColorPickerComponent_div_20_Template_input_newValue_5_listener($event) { ɵngcc0.ɵɵrestoreView(_r28); const ctx_r35 = ɵngcc0.ɵɵnextContext(); return ɵngcc0.ɵɵresetView(ctx_r35.onBlackInput($event)); });\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(6, ColorPickerComponent_div_20_input_6_Template, 1, 2, \"input\", 32);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(7, \"div\", 30)(8, \"div\");\n ɵngcc0.ɵɵtext(9, \"C\");\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(10, \"div\");\n ɵngcc0.ɵɵtext(11, \"M\");\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(12, \"div\");\n ɵngcc0.ɵɵtext(13, \"Y\");\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(14, \"div\");\n ɵngcc0.ɵɵtext(15, \"K\");\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(16, ColorPickerComponent_div_20_div_16_Template, 2, 0, \"div\", 33);\n ɵngcc0.ɵɵelementEnd()();\n} if (rf & 2) {\n const ctx_r8 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵstyleProp(\"display\", ctx_r8.format !== 3 ? \"none\" : \"block\");\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"rg\", 100)(\"value\", ctx_r8.cmykText == null ? null : ctx_r8.cmykText.c);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"rg\", 100)(\"value\", ctx_r8.cmykText == null ? null : ctx_r8.cmykText.m);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"rg\", 100)(\"value\", ctx_r8.cmykText == null ? null : ctx_r8.cmykText.y);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"rg\", 100)(\"value\", ctx_r8.cmykText == null ? null : ctx_r8.cmykText.k);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r8.cpAlphaChannel !== \"disabled\");\n ɵngcc0.ɵɵadvance(10);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r8.cpAlphaChannel !== \"disabled\");\n} }\nfunction ColorPickerComponent_div_21_input_5_Template(rf, ctx) { if (rf & 1) {\n const _r39 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"input\", 34);\n ɵngcc0.ɵɵlistener(\"keyup.enter\", function ColorPickerComponent_div_21_input_5_Template_input_keyup_enter_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r39); const ctx_r38 = ɵngcc0.ɵɵnextContext(2); return ɵngcc0.ɵɵresetView(ctx_r38.onAcceptColor($event)); })(\"newValue\", function ColorPickerComponent_div_21_input_5_Template_input_newValue_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r39); const ctx_r40 = ɵngcc0.ɵɵnextContext(2); return ɵngcc0.ɵɵresetView(ctx_r40.onAlphaInput($event)); });\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r36 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"rg\", 1)(\"value\", ctx_r36.hslaText == null ? null : ctx_r36.hslaText.a);\n} }\nfunction ColorPickerComponent_div_21_div_13_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\");\n ɵngcc0.ɵɵtext(1, \"A\");\n ɵngcc0.ɵɵelementEnd();\n} }\nfunction ColorPickerComponent_div_21_Template(rf, ctx) { if (rf & 1) {\n const _r42 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"div\", 35)(1, \"div\", 30)(2, \"input\", 36);\n ɵngcc0.ɵɵlistener(\"keyup.enter\", function ColorPickerComponent_div_21_Template_input_keyup_enter_2_listener($event) { ɵngcc0.ɵɵrestoreView(_r42); const ctx_r41 = ɵngcc0.ɵɵnextContext(); return ɵngcc0.ɵɵresetView(ctx_r41.onAcceptColor($event)); })(\"newValue\", function ColorPickerComponent_div_21_Template_input_newValue_2_listener($event) { ɵngcc0.ɵɵrestoreView(_r42); const ctx_r43 = ɵngcc0.ɵɵnextContext(); return ɵngcc0.ɵɵresetView(ctx_r43.onHueInput($event)); });\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(3, \"input\", 31);\n ɵngcc0.ɵɵlistener(\"keyup.enter\", function ColorPickerComponent_div_21_Template_input_keyup_enter_3_listener($event) { ɵngcc0.ɵɵrestoreView(_r42); const ctx_r44 = ɵngcc0.ɵɵnextContext(); return ɵngcc0.ɵɵresetView(ctx_r44.onAcceptColor($event)); })(\"newValue\", function ColorPickerComponent_div_21_Template_input_newValue_3_listener($event) { ɵngcc0.ɵɵrestoreView(_r42); const ctx_r45 = ɵngcc0.ɵɵnextContext(); return ɵngcc0.ɵɵresetView(ctx_r45.onSaturationInput($event)); });\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(4, \"input\", 31);\n ɵngcc0.ɵɵlistener(\"keyup.enter\", function ColorPickerComponent_div_21_Template_input_keyup_enter_4_listener($event) { ɵngcc0.ɵɵrestoreView(_r42); const ctx_r46 = ɵngcc0.ɵɵnextContext(); return ɵngcc0.ɵɵresetView(ctx_r46.onAcceptColor($event)); })(\"newValue\", function ColorPickerComponent_div_21_Template_input_newValue_4_listener($event) { ɵngcc0.ɵɵrestoreView(_r42); const ctx_r47 = ɵngcc0.ɵɵnextContext(); return ɵngcc0.ɵɵresetView(ctx_r47.onLightnessInput($event)); });\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(5, ColorPickerComponent_div_21_input_5_Template, 1, 2, \"input\", 32);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(6, \"div\", 30)(7, \"div\");\n ɵngcc0.ɵɵtext(8, \"H\");\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(9, \"div\");\n ɵngcc0.ɵɵtext(10, \"S\");\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(11, \"div\");\n ɵngcc0.ɵɵtext(12, \"L\");\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(13, ColorPickerComponent_div_21_div_13_Template, 2, 0, \"div\", 33);\n ɵngcc0.ɵɵelementEnd()();\n} if (rf & 2) {\n const ctx_r9 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵstyleProp(\"display\", ctx_r9.format !== 2 ? \"none\" : \"block\");\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"rg\", 360)(\"value\", ctx_r9.hslaText == null ? null : ctx_r9.hslaText.h);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"rg\", 100)(\"value\", ctx_r9.hslaText == null ? null : ctx_r9.hslaText.s);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"rg\", 100)(\"value\", ctx_r9.hslaText == null ? null : ctx_r9.hslaText.l);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r9.cpAlphaChannel !== \"disabled\");\n ɵngcc0.ɵɵadvance(8);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r9.cpAlphaChannel !== \"disabled\");\n} }\nfunction ColorPickerComponent_div_22_input_5_Template(rf, ctx) { if (rf & 1) {\n const _r51 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"input\", 34);\n ɵngcc0.ɵɵlistener(\"keyup.enter\", function ColorPickerComponent_div_22_input_5_Template_input_keyup_enter_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r51); const ctx_r50 = ɵngcc0.ɵɵnextContext(2); return ɵngcc0.ɵɵresetView(ctx_r50.onAcceptColor($event)); })(\"newValue\", function ColorPickerComponent_div_22_input_5_Template_input_newValue_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r51); const ctx_r52 = ɵngcc0.ɵɵnextContext(2); return ɵngcc0.ɵɵresetView(ctx_r52.onAlphaInput($event)); });\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r48 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"rg\", 1)(\"value\", ctx_r48.rgbaText == null ? null : ctx_r48.rgbaText.a);\n} }\nfunction ColorPickerComponent_div_22_div_13_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\");\n ɵngcc0.ɵɵtext(1, \"A\");\n ɵngcc0.ɵɵelementEnd();\n} }\nfunction ColorPickerComponent_div_22_Template(rf, ctx) { if (rf & 1) {\n const _r54 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"div\", 37)(1, \"div\", 30)(2, \"input\", 38);\n ɵngcc0.ɵɵlistener(\"keyup.enter\", function ColorPickerComponent_div_22_Template_input_keyup_enter_2_listener($event) { ɵngcc0.ɵɵrestoreView(_r54); const ctx_r53 = ɵngcc0.ɵɵnextContext(); return ɵngcc0.ɵɵresetView(ctx_r53.onAcceptColor($event)); })(\"newValue\", function ColorPickerComponent_div_22_Template_input_newValue_2_listener($event) { ɵngcc0.ɵɵrestoreView(_r54); const ctx_r55 = ɵngcc0.ɵɵnextContext(); return ɵngcc0.ɵɵresetView(ctx_r55.onRedInput($event)); });\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(3, \"input\", 38);\n ɵngcc0.ɵɵlistener(\"keyup.enter\", function ColorPickerComponent_div_22_Template_input_keyup_enter_3_listener($event) { ɵngcc0.ɵɵrestoreView(_r54); const ctx_r56 = ɵngcc0.ɵɵnextContext(); return ɵngcc0.ɵɵresetView(ctx_r56.onAcceptColor($event)); })(\"newValue\", function ColorPickerComponent_div_22_Template_input_newValue_3_listener($event) { ɵngcc0.ɵɵrestoreView(_r54); const ctx_r57 = ɵngcc0.ɵɵnextContext(); return ɵngcc0.ɵɵresetView(ctx_r57.onGreenInput($event)); });\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(4, \"input\", 38);\n ɵngcc0.ɵɵlistener(\"keyup.enter\", function ColorPickerComponent_div_22_Template_input_keyup_enter_4_listener($event) { ɵngcc0.ɵɵrestoreView(_r54); const ctx_r58 = ɵngcc0.ɵɵnextContext(); return ɵngcc0.ɵɵresetView(ctx_r58.onAcceptColor($event)); })(\"newValue\", function ColorPickerComponent_div_22_Template_input_newValue_4_listener($event) { ɵngcc0.ɵɵrestoreView(_r54); const ctx_r59 = ɵngcc0.ɵɵnextContext(); return ɵngcc0.ɵɵresetView(ctx_r59.onBlueInput($event)); });\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(5, ColorPickerComponent_div_22_input_5_Template, 1, 2, \"input\", 32);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(6, \"div\", 30)(7, \"div\");\n ɵngcc0.ɵɵtext(8, \"R\");\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(9, \"div\");\n ɵngcc0.ɵɵtext(10, \"G\");\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(11, \"div\");\n ɵngcc0.ɵɵtext(12, \"B\");\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(13, ColorPickerComponent_div_22_div_13_Template, 2, 0, \"div\", 33);\n ɵngcc0.ɵɵelementEnd()();\n} if (rf & 2) {\n const ctx_r10 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵstyleProp(\"display\", ctx_r10.format !== 1 ? \"none\" : \"block\");\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"rg\", 255)(\"value\", ctx_r10.rgbaText == null ? null : ctx_r10.rgbaText.r);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"rg\", 255)(\"value\", ctx_r10.rgbaText == null ? null : ctx_r10.rgbaText.g);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"rg\", 255)(\"value\", ctx_r10.rgbaText == null ? null : ctx_r10.rgbaText.b);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r10.cpAlphaChannel !== \"disabled\");\n ɵngcc0.ɵɵadvance(8);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r10.cpAlphaChannel !== \"disabled\");\n} }\nfunction ColorPickerComponent_div_23_input_3_Template(rf, ctx) { if (rf & 1) {\n const _r63 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"input\", 34);\n ɵngcc0.ɵɵlistener(\"keyup.enter\", function ColorPickerComponent_div_23_input_3_Template_input_keyup_enter_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r63); const ctx_r62 = ɵngcc0.ɵɵnextContext(2); return ɵngcc0.ɵɵresetView(ctx_r62.onAcceptColor($event)); })(\"newValue\", function ColorPickerComponent_div_23_input_3_Template_input_newValue_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r63); const ctx_r64 = ɵngcc0.ɵɵnextContext(2); return ɵngcc0.ɵɵresetView(ctx_r64.onAlphaInput($event)); });\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r60 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"rg\", 1)(\"value\", ctx_r60.hexAlpha);\n} }\nfunction ColorPickerComponent_div_23_div_7_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\");\n ɵngcc0.ɵɵtext(1, \"A\");\n ɵngcc0.ɵɵelementEnd();\n} }\nfunction ColorPickerComponent_div_23_Template(rf, ctx) { if (rf & 1) {\n const _r66 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"div\", 39)(1, \"div\", 30)(2, \"input\", 40);\n ɵngcc0.ɵɵlistener(\"blur\", function ColorPickerComponent_div_23_Template_input_blur_2_listener() { ɵngcc0.ɵɵrestoreView(_r66); const ctx_r65 = ɵngcc0.ɵɵnextContext(); return ɵngcc0.ɵɵresetView(ctx_r65.onHexInput(null)); })(\"keyup.enter\", function ColorPickerComponent_div_23_Template_input_keyup_enter_2_listener($event) { ɵngcc0.ɵɵrestoreView(_r66); const ctx_r67 = ɵngcc0.ɵɵnextContext(); return ɵngcc0.ɵɵresetView(ctx_r67.onAcceptColor($event)); })(\"newValue\", function ColorPickerComponent_div_23_Template_input_newValue_2_listener($event) { ɵngcc0.ɵɵrestoreView(_r66); const ctx_r68 = ɵngcc0.ɵɵnextContext(); return ɵngcc0.ɵɵresetView(ctx_r68.onHexInput($event)); });\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(3, ColorPickerComponent_div_23_input_3_Template, 1, 2, \"input\", 32);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(4, \"div\", 30)(5, \"div\");\n ɵngcc0.ɵɵtext(6, \"Hex\");\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(7, ColorPickerComponent_div_23_div_7_Template, 2, 0, \"div\", 33);\n ɵngcc0.ɵɵelementEnd()();\n} if (rf & 2) {\n const ctx_r11 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵstyleProp(\"display\", ctx_r11.format !== 0 ? \"none\" : \"block\");\n ɵngcc0.ɵɵclassProp(\"hex-alpha\", ctx_r11.cpAlphaChannel === \"forced\");\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"value\", ctx_r11.hexText);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r11.cpAlphaChannel === \"forced\");\n ɵngcc0.ɵɵadvance(4);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r11.cpAlphaChannel === \"forced\");\n} }\nfunction ColorPickerComponent_div_24_input_3_Template(rf, ctx) { if (rf & 1) {\n const _r71 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"input\", 34);\n ɵngcc0.ɵɵlistener(\"keyup.enter\", function ColorPickerComponent_div_24_input_3_Template_input_keyup_enter_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r71); const ctx_r70 = ɵngcc0.ɵɵnextContext(2); return ɵngcc0.ɵɵresetView(ctx_r70.onAcceptColor($event)); })(\"newValue\", function ColorPickerComponent_div_24_input_3_Template_input_newValue_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r71); const ctx_r72 = ɵngcc0.ɵɵnextContext(2); return ɵngcc0.ɵɵresetView(ctx_r72.onAlphaInput($event)); });\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r69 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"rg\", 1)(\"value\", ctx_r69.hslaText == null ? null : ctx_r69.hslaText.a);\n} }\nfunction ColorPickerComponent_div_24_Template(rf, ctx) { if (rf & 1) {\n const _r74 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"div\", 41)(1, \"div\", 30)(2, \"input\", 31);\n ɵngcc0.ɵɵlistener(\"keyup.enter\", function ColorPickerComponent_div_24_Template_input_keyup_enter_2_listener($event) { ɵngcc0.ɵɵrestoreView(_r74); const ctx_r73 = ɵngcc0.ɵɵnextContext(); return ɵngcc0.ɵɵresetView(ctx_r73.onAcceptColor($event)); })(\"newValue\", function ColorPickerComponent_div_24_Template_input_newValue_2_listener($event) { ɵngcc0.ɵɵrestoreView(_r74); const ctx_r75 = ɵngcc0.ɵɵnextContext(); return ɵngcc0.ɵɵresetView(ctx_r75.onValueInput($event)); });\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(3, ColorPickerComponent_div_24_input_3_Template, 1, 2, \"input\", 32);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(4, \"div\", 30)(5, \"div\");\n ɵngcc0.ɵɵtext(6, \"V\");\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(7, \"div\");\n ɵngcc0.ɵɵtext(8, \"A\");\n ɵngcc0.ɵɵelementEnd()()();\n} if (rf & 2) {\n const ctx_r12 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"rg\", 100)(\"value\", ctx_r12.hslaText == null ? null : ctx_r12.hslaText.l);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r12.cpAlphaChannel !== \"disabled\");\n} }\nfunction ColorPickerComponent_div_25_Template(rf, ctx) { if (rf & 1) {\n const _r77 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"div\", 42)(1, \"span\", 43);\n ɵngcc0.ɵɵlistener(\"click\", function ColorPickerComponent_div_25_Template_span_click_1_listener() { ɵngcc0.ɵɵrestoreView(_r77); const ctx_r76 = ɵngcc0.ɵɵnextContext(); return ɵngcc0.ɵɵresetView(ctx_r76.onFormatToggle(-1)); });\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(2, \"span\", 43);\n ɵngcc0.ɵɵlistener(\"click\", function ColorPickerComponent_div_25_Template_span_click_2_listener() { ɵngcc0.ɵɵrestoreView(_r77); const ctx_r78 = ɵngcc0.ɵɵnextContext(); return ɵngcc0.ɵɵresetView(ctx_r78.onFormatToggle(1)); });\n ɵngcc0.ɵɵelementEnd()();\n} }\nfunction ColorPickerComponent_div_26_div_4_div_1_span_1_Template(rf, ctx) { if (rf & 1) {\n const _r86 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"span\", 50);\n ɵngcc0.ɵɵlistener(\"click\", function ColorPickerComponent_div_26_div_4_div_1_span_1_Template_span_click_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r86); const color_r82 = ɵngcc0.ɵɵnextContext().$implicit; const ctx_r84 = ɵngcc0.ɵɵnextContext(3); return ɵngcc0.ɵɵresetView(ctx_r84.onRemovePresetColor($event, color_r82)); });\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r83 = ɵngcc0.ɵɵnextContext(4);\n ɵngcc0.ɵɵclassMap(ctx_r83.cpRemoveColorButtonClass);\n} }\nfunction ColorPickerComponent_div_26_div_4_div_1_Template(rf, ctx) { if (rf & 1) {\n const _r88 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"div\", 48);\n ɵngcc0.ɵɵlistener(\"click\", function ColorPickerComponent_div_26_div_4_div_1_Template_div_click_0_listener() { const restoredCtx = ɵngcc0.ɵɵrestoreView(_r88); const color_r82 = restoredCtx.$implicit; const ctx_r87 = ɵngcc0.ɵɵnextContext(3); return ɵngcc0.ɵɵresetView(ctx_r87.setColorFromString(color_r82)); });\n ɵngcc0.ɵɵtemplate(1, ColorPickerComponent_div_26_div_4_div_1_span_1_Template, 1, 3, \"span\", 49);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const color_r82 = ctx.$implicit;\n const ctx_r81 = ɵngcc0.ɵɵnextContext(3);\n ɵngcc0.ɵɵstyleProp(\"background-color\", color_r82);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r81.cpAddColorButton);\n} }\nfunction ColorPickerComponent_div_26_div_4_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\");\n ɵngcc0.ɵɵtemplate(1, ColorPickerComponent_div_26_div_4_div_1_Template, 2, 3, \"div\", 47);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r79 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵclassMap(ctx_r79.cpPresetColorsClass);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx_r79.cpPresetColors);\n} }\nfunction ColorPickerComponent_div_26_div_5_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\");\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r80 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵclassMap(ctx_r80.cpPresetEmptyMessageClass);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate(ctx_r80.cpPresetEmptyMessage);\n} }\nfunction ColorPickerComponent_div_26_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 44);\n ɵngcc0.ɵɵelement(1, \"hr\");\n ɵngcc0.ɵɵelementStart(2, \"div\", 45);\n ɵngcc0.ɵɵtext(3);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(4, ColorPickerComponent_div_26_div_4_Template, 2, 4, \"div\", 46);\n ɵngcc0.ɵɵtemplate(5, ColorPickerComponent_div_26_div_5_Template, 2, 4, \"div\", 46);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r14 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(3);\n ɵngcc0.ɵɵtextInterpolate(ctx_r14.cpPresetLabel);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r14.cpPresetColors == null ? null : ctx_r14.cpPresetColors.length);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !(ctx_r14.cpPresetColors == null ? null : ctx_r14.cpPresetColors.length) && ctx_r14.cpAddColorButton);\n} }\nfunction ColorPickerComponent_div_27_button_1_Template(rf, ctx) { if (rf & 1) {\n const _r92 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"button\", 53);\n ɵngcc0.ɵɵlistener(\"click\", function ColorPickerComponent_div_27_button_1_Template_button_click_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r92); const ctx_r91 = ɵngcc0.ɵɵnextContext(2); return ɵngcc0.ɵɵresetView(ctx_r91.onCancelColor($event)); });\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r89 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵclassMap(ctx_r89.cpCancelButtonClass);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate(ctx_r89.cpCancelButtonText);\n} }\nfunction ColorPickerComponent_div_27_button_2_Template(rf, ctx) { if (rf & 1) {\n const _r94 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"button\", 53);\n ɵngcc0.ɵɵlistener(\"click\", function ColorPickerComponent_div_27_button_2_Template_button_click_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r94); const ctx_r93 = ɵngcc0.ɵɵnextContext(2); return ɵngcc0.ɵɵresetView(ctx_r93.onAcceptColor($event)); });\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r90 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵclassMap(ctx_r90.cpOKButtonClass);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate(ctx_r90.cpOKButtonText);\n} }\nfunction ColorPickerComponent_div_27_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 51);\n ɵngcc0.ɵɵtemplate(1, ColorPickerComponent_div_27_button_1_Template, 2, 4, \"button\", 52);\n ɵngcc0.ɵɵtemplate(2, ColorPickerComponent_div_27_button_2_Template, 2, 4, \"button\", 52);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r15 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r15.cpCancelButton);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r15.cpOKButton);\n} }\nvar ColorFormats;\n(function (ColorFormats) {\n ColorFormats[ColorFormats[\"HEX\"] = 0] = \"HEX\";\n ColorFormats[ColorFormats[\"RGBA\"] = 1] = \"RGBA\";\n ColorFormats[ColorFormats[\"HSLA\"] = 2] = \"HSLA\";\n ColorFormats[ColorFormats[\"CMYK\"] = 3] = \"CMYK\";\n})(ColorFormats || (ColorFormats = {}));\nclass Rgba {\n constructor(r, g, b, a) {\n this.r = r;\n this.g = g;\n this.b = b;\n this.a = a;\n }\n}\nclass Hsva {\n constructor(h, s, v, a) {\n this.h = h;\n this.s = s;\n this.v = v;\n this.a = a;\n }\n}\nclass Hsla {\n constructor(h, s, l, a) {\n this.h = h;\n this.s = s;\n this.l = l;\n this.a = a;\n }\n}\nclass Cmyk {\n constructor(c, m, y, k, a = 1) {\n this.c = c;\n this.m = m;\n this.y = y;\n this.k = k;\n this.a = a;\n }\n}\n\nfunction calculateAutoPositioning(elBounds, triggerElBounds) {\n // Defaults\n let usePositionX = 'right';\n let usePositionY = 'bottom';\n // Calculate collisions\n const { height, width } = elBounds;\n const { top, left } = triggerElBounds;\n const bottom = top + triggerElBounds.height;\n const right = left + triggerElBounds.width;\n const collisionTop = top - height < 0;\n const collisionBottom = bottom + height > (window.innerHeight || document.documentElement.clientHeight);\n const collisionLeft = left - width < 0;\n const collisionRight = right + width > (window.innerWidth || document.documentElement.clientWidth);\n const collisionAll = collisionTop && collisionBottom && collisionLeft && collisionRight;\n // Generate X & Y position values\n if (collisionBottom) {\n usePositionY = 'top';\n }\n if (collisionTop) {\n usePositionY = 'bottom';\n }\n if (collisionLeft) {\n usePositionX = 'right';\n }\n if (collisionRight) {\n usePositionX = 'left';\n }\n // Choose the largest gap available\n if (collisionAll) {\n const postions = ['left', 'right', 'top', 'bottom'];\n return postions.reduce((prev, next) => elBounds[prev] > elBounds[next] ? prev : next);\n }\n if ((collisionLeft && collisionRight)) {\n if (collisionTop) {\n return 'bottom';\n }\n if (collisionBottom) {\n return 'top';\n }\n return top > bottom ? 'top' : 'bottom';\n }\n if ((collisionTop && collisionBottom)) {\n if (collisionLeft) {\n return 'right';\n }\n if (collisionRight) {\n return 'left';\n }\n return left > right ? 'left' : 'right';\n }\n return `${usePositionY}-${usePositionX}`;\n}\nfunction detectIE() {\n let ua = '';\n if (typeof navigator !== 'undefined') {\n ua = navigator.userAgent.toLowerCase();\n }\n const msie = ua.indexOf('msie ');\n if (msie > 0) {\n // IE 10 or older => return version number\n return parseInt(ua.substring(msie + 5, ua.indexOf('.', msie)), 10);\n }\n // Other browser\n return false;\n}\nclass TextDirective {\n constructor() {\n this.newValue = new EventEmitter();\n }\n inputChange(event) {\n const value = event.target.value;\n if (this.rg === undefined) {\n this.newValue.emit(value);\n }\n else {\n const numeric = parseFloat(value);\n this.newValue.emit({ v: numeric, rg: this.rg });\n }\n }\n}\nTextDirective.ɵfac = function TextDirective_Factory(t) { return new (t || TextDirective)(); };\nTextDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: TextDirective, selectors: [[\"\", \"text\", \"\"]], hostBindings: function TextDirective_HostBindings(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"input\", function TextDirective_input_HostBindingHandler($event) { return ctx.inputChange($event); });\n } }, inputs: { rg: \"rg\", text: \"text\" }, outputs: { newValue: \"newValue\" } });\nTextDirective.propDecorators = {\n rg: [{ type: Input }],\n text: [{ type: Input }],\n newValue: [{ type: Output }],\n inputChange: [{ type: HostListener, args: ['input', ['$event'],] }]\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(TextDirective, [{\n type: Directive,\n args: [{\n selector: '[text]'\n }]\n }], function () { return []; }, { newValue: [{\n type: Output\n }], inputChange: [{\n type: HostListener,\n args: ['input', ['$event']]\n }], rg: [{\n type: Input\n }], text: [{\n type: Input\n }] }); })();\nclass SliderDirective {\n constructor(elRef) {\n this.elRef = elRef;\n this.dragEnd = new EventEmitter();\n this.dragStart = new EventEmitter();\n this.newValue = new EventEmitter();\n this.listenerMove = (event) => this.move(event);\n this.listenerStop = () => this.stop();\n }\n mouseDown(event) {\n this.start(event);\n }\n touchStart(event) {\n this.start(event);\n }\n move(event) {\n event.preventDefault();\n this.setCursor(event);\n }\n start(event) {\n this.setCursor(event);\n event.stopPropagation();\n document.addEventListener('mouseup', this.listenerStop);\n document.addEventListener('touchend', this.listenerStop);\n document.addEventListener('mousemove', this.listenerMove);\n document.addEventListener('touchmove', this.listenerMove);\n this.dragStart.emit();\n }\n stop() {\n document.removeEventListener('mouseup', this.listenerStop);\n document.removeEventListener('touchend', this.listenerStop);\n document.removeEventListener('mousemove', this.listenerMove);\n document.removeEventListener('touchmove', this.listenerMove);\n this.dragEnd.emit();\n }\n getX(event) {\n const position = this.elRef.nativeElement.getBoundingClientRect();\n const pageX = (event.pageX !== undefined) ? event.pageX : event.touches[0].pageX;\n return pageX - position.left - window.pageXOffset;\n }\n getY(event) {\n const position = this.elRef.nativeElement.getBoundingClientRect();\n const pageY = (event.pageY !== undefined) ? event.pageY : event.touches[0].pageY;\n return pageY - position.top - window.pageYOffset;\n }\n setCursor(event) {\n const width = this.elRef.nativeElement.offsetWidth;\n const height = this.elRef.nativeElement.offsetHeight;\n const x = Math.max(0, Math.min(this.getX(event), width));\n const y = Math.max(0, Math.min(this.getY(event), height));\n if (this.rgX !== undefined && this.rgY !== undefined) {\n this.newValue.emit({ s: x / width, v: (1 - y / height), rgX: this.rgX, rgY: this.rgY });\n }\n else if (this.rgX === undefined && this.rgY !== undefined) {\n this.newValue.emit({ v: y / height, rgY: this.rgY });\n }\n else if (this.rgX !== undefined && this.rgY === undefined) {\n this.newValue.emit({ v: x / width, rgX: this.rgX });\n }\n }\n}\nSliderDirective.ɵfac = function SliderDirective_Factory(t) { return new (t || SliderDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef)); };\nSliderDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: SliderDirective, selectors: [[\"\", \"slider\", \"\"]], hostBindings: function SliderDirective_HostBindings(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"mousedown\", function SliderDirective_mousedown_HostBindingHandler($event) { return ctx.mouseDown($event); })(\"touchstart\", function SliderDirective_touchstart_HostBindingHandler($event) { return ctx.touchStart($event); });\n } }, inputs: { rgX: \"rgX\", rgY: \"rgY\", slider: \"slider\" }, outputs: { dragEnd: \"dragEnd\", dragStart: \"dragStart\", newValue: \"newValue\" } });\nSliderDirective.ctorParameters = () => [\n { type: ElementRef }\n];\nSliderDirective.propDecorators = {\n rgX: [{ type: Input }],\n rgY: [{ type: Input }],\n slider: [{ type: Input }],\n dragEnd: [{ type: Output }],\n dragStart: [{ type: Output }],\n newValue: [{ type: Output }],\n mouseDown: [{ type: HostListener, args: ['mousedown', ['$event'],] }],\n touchStart: [{ type: HostListener, args: ['touchstart', ['$event'],] }]\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(SliderDirective, [{\n type: Directive,\n args: [{\n selector: '[slider]'\n }]\n }], function () { return [{ type: ɵngcc0.ElementRef }]; }, { dragEnd: [{\n type: Output\n }], dragStart: [{\n type: Output\n }], newValue: [{\n type: Output\n }], mouseDown: [{\n type: HostListener,\n args: ['mousedown', ['$event']]\n }], touchStart: [{\n type: HostListener,\n args: ['touchstart', ['$event']]\n }], rgX: [{\n type: Input\n }], rgY: [{\n type: Input\n }], slider: [{\n type: Input\n }] }); })();\nclass SliderPosition {\n constructor(h, s, v, a) {\n this.h = h;\n this.s = s;\n this.v = v;\n this.a = a;\n }\n}\nclass SliderDimension {\n constructor(h, s, v, a) {\n this.h = h;\n this.s = s;\n this.v = v;\n this.a = a;\n }\n}\n\nclass ColorPickerService {\n constructor() {\n this.active = null;\n }\n setActive(active) {\n if (this.active && this.active !== active && this.active.cpDialogDisplay !== 'inline') {\n this.active.closeDialog();\n }\n this.active = active;\n }\n hsva2hsla(hsva) {\n const h = hsva.h, s = hsva.s, v = hsva.v, a = hsva.a;\n if (v === 0) {\n return new Hsla(h, 0, 0, a);\n }\n else if (s === 0 && v === 1) {\n return new Hsla(h, 1, 1, a);\n }\n else {\n const l = v * (2 - s) / 2;\n return new Hsla(h, v * s / (1 - Math.abs(2 * l - 1)), l, a);\n }\n }\n hsla2hsva(hsla) {\n const h = Math.min(hsla.h, 1), s = Math.min(hsla.s, 1);\n const l = Math.min(hsla.l, 1), a = Math.min(hsla.a, 1);\n if (l === 0) {\n return new Hsva(h, 0, 0, a);\n }\n else {\n const v = l + s * (1 - Math.abs(2 * l - 1)) / 2;\n return new Hsva(h, 2 * (v - l) / v, v, a);\n }\n }\n hsvaToRgba(hsva) {\n let r, g, b;\n const h = hsva.h, s = hsva.s, v = hsva.v, a = hsva.a;\n const i = Math.floor(h * 6);\n const f = h * 6 - i;\n const p = v * (1 - s);\n const q = v * (1 - f * s);\n const t = v * (1 - (1 - f) * s);\n switch (i % 6) {\n case 0:\n r = v, g = t, b = p;\n break;\n case 1:\n r = q, g = v, b = p;\n break;\n case 2:\n r = p, g = v, b = t;\n break;\n case 3:\n r = p, g = q, b = v;\n break;\n case 4:\n r = t, g = p, b = v;\n break;\n case 5:\n r = v, g = p, b = q;\n break;\n default:\n r = 0, g = 0, b = 0;\n }\n return new Rgba(r, g, b, a);\n }\n cmykToRgb(cmyk) {\n const r = (1 - cmyk.c) * (1 - cmyk.k);\n const g = (1 - cmyk.m) * (1 - cmyk.k);\n const b = (1 - cmyk.y) * (1 - cmyk.k);\n return new Rgba(r, g, b, cmyk.a);\n }\n rgbaToCmyk(rgba) {\n const k = 1 - Math.max(rgba.r, rgba.g, rgba.b);\n if (k === 1) {\n return new Cmyk(0, 0, 0, 1, rgba.a);\n }\n else {\n const c = (1 - rgba.r - k) / (1 - k);\n const m = (1 - rgba.g - k) / (1 - k);\n const y = (1 - rgba.b - k) / (1 - k);\n return new Cmyk(c, m, y, k, rgba.a);\n }\n }\n rgbaToHsva(rgba) {\n let h, s;\n const r = Math.min(rgba.r, 1), g = Math.min(rgba.g, 1);\n const b = Math.min(rgba.b, 1), a = Math.min(rgba.a, 1);\n const max = Math.max(r, g, b), min = Math.min(r, g, b);\n const v = max, d = max - min;\n s = (max === 0) ? 0 : d / max;\n if (max === min) {\n h = 0;\n }\n else {\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n default:\n h = 0;\n }\n h /= 6;\n }\n return new Hsva(h, s, v, a);\n }\n rgbaToHex(rgba, allowHex8) {\n /* tslint:disable:no-bitwise */\n let hex = '#' + ((1 << 24) | (rgba.r << 16) | (rgba.g << 8) | rgba.b).toString(16).substr(1);\n if (allowHex8) {\n hex += ((1 << 8) | Math.round(rgba.a * 255)).toString(16).substr(1);\n }\n /* tslint:enable:no-bitwise */\n return hex;\n }\n normalizeCMYK(cmyk) {\n return new Cmyk(cmyk.c / 100, cmyk.m / 100, cmyk.y / 100, cmyk.k / 100, cmyk.a);\n }\n denormalizeCMYK(cmyk) {\n return new Cmyk(Math.floor(cmyk.c * 100), Math.floor(cmyk.m * 100), Math.floor(cmyk.y * 100), Math.floor(cmyk.k * 100), cmyk.a);\n }\n denormalizeRGBA(rgba) {\n return new Rgba(Math.round(rgba.r * 255), Math.round(rgba.g * 255), Math.round(rgba.b * 255), rgba.a);\n }\n stringToHsva(colorString = '', allowHex8 = false) {\n let hsva = null;\n colorString = (colorString || '').toLowerCase();\n const stringParsers = [\n {\n re: /(rgb)a?\\(\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*%?,\\s*(\\d{1,3})\\s*%?(?:,\\s*(\\d+(?:\\.\\d+)?)\\s*)?\\)/,\n parse: function (execResult) {\n return new Rgba(parseInt(execResult[2], 10) / 255, parseInt(execResult[3], 10) / 255, parseInt(execResult[4], 10) / 255, isNaN(parseFloat(execResult[5])) ? 1 : parseFloat(execResult[5]));\n }\n }, {\n re: /(hsl)a?\\(\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})%\\s*,\\s*(\\d{1,3})%\\s*(?:,\\s*(\\d+(?:\\.\\d+)?)\\s*)?\\)/,\n parse: function (execResult) {\n return new Hsla(parseInt(execResult[2], 10) / 360, parseInt(execResult[3], 10) / 100, parseInt(execResult[4], 10) / 100, isNaN(parseFloat(execResult[5])) ? 1 : parseFloat(execResult[5]));\n }\n }\n ];\n if (allowHex8) {\n stringParsers.push({\n re: /#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})?$/,\n parse: function (execResult) {\n return new Rgba(parseInt(execResult[1], 16) / 255, parseInt(execResult[2], 16) / 255, parseInt(execResult[3], 16) / 255, parseInt(execResult[4] || 'FF', 16) / 255);\n }\n });\n }\n else {\n stringParsers.push({\n re: /#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})$/,\n parse: function (execResult) {\n return new Rgba(parseInt(execResult[1], 16) / 255, parseInt(execResult[2], 16) / 255, parseInt(execResult[3], 16) / 255, 1);\n }\n });\n }\n stringParsers.push({\n re: /#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])$/,\n parse: function (execResult) {\n return new Rgba(parseInt(execResult[1] + execResult[1], 16) / 255, parseInt(execResult[2] + execResult[2], 16) / 255, parseInt(execResult[3] + execResult[3], 16) / 255, 1);\n }\n });\n for (const key in stringParsers) {\n if (stringParsers.hasOwnProperty(key)) {\n const parser = stringParsers[key];\n const match = parser.re.exec(colorString), color = match && parser.parse(match);\n if (color) {\n if (color instanceof Rgba) {\n hsva = this.rgbaToHsva(color);\n }\n else if (color instanceof Hsla) {\n hsva = this.hsla2hsva(color);\n }\n return hsva;\n }\n }\n }\n return hsva;\n }\n outputFormat(hsva, outputFormat, alphaChannel) {\n if (outputFormat === 'auto') {\n outputFormat = hsva.a < 1 ? 'rgba' : 'hex';\n }\n switch (outputFormat) {\n case 'hsla':\n const hsla = this.hsva2hsla(hsva);\n const hslaText = new Hsla(Math.round((hsla.h) * 360), Math.round(hsla.s * 100), Math.round(hsla.l * 100), Math.round(hsla.a * 100) / 100);\n if (hsva.a < 1 || alphaChannel === 'always') {\n return 'hsla(' + hslaText.h + ',' + hslaText.s + '%,' + hslaText.l + '%,' +\n hslaText.a + ')';\n }\n else {\n return 'hsl(' + hslaText.h + ',' + hslaText.s + '%,' + hslaText.l + '%)';\n }\n case 'rgba':\n const rgba = this.denormalizeRGBA(this.hsvaToRgba(hsva));\n if (hsva.a < 1 || alphaChannel === 'always') {\n return 'rgba(' + rgba.r + ',' + rgba.g + ',' + rgba.b + ',' +\n Math.round(rgba.a * 100) / 100 + ')';\n }\n else {\n return 'rgb(' + rgba.r + ',' + rgba.g + ',' + rgba.b + ')';\n }\n default:\n const allowHex8 = (alphaChannel === 'always' || alphaChannel === 'forced');\n return this.rgbaToHex(this.denormalizeRGBA(this.hsvaToRgba(hsva)), allowHex8);\n }\n }\n}\nColorPickerService.ɵfac = function ColorPickerService_Factory(t) { return new (t || ColorPickerService)(); };\nColorPickerService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: ColorPickerService, factory: ColorPickerService.ɵfac });\nColorPickerService.ctorParameters = () => [];\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ColorPickerService, [{\n type: Injectable\n }], function () { return []; }, null); })();\n\nclass ColorPickerComponent {\n constructor(elRef, cdRef, service) {\n this.elRef = elRef;\n this.cdRef = cdRef;\n this.service = service;\n this.isIE10 = false;\n this.dialogArrowSize = 10;\n this.dialogArrowOffset = 15;\n this.dialogInputFields = [\n ColorFormats.HEX,\n ColorFormats.RGBA,\n ColorFormats.HSLA,\n ColorFormats.CMYK\n ];\n this.useRootViewContainer = false;\n }\n handleEsc(event) {\n if (this.show && this.cpDialogDisplay === 'popup') {\n this.onCancelColor(event);\n }\n }\n handleEnter(event) {\n if (this.show && this.cpDialogDisplay === 'popup') {\n this.onAcceptColor(event);\n }\n }\n ngOnInit() {\n this.slider = new SliderPosition(0, 0, 0, 0);\n const hueWidth = this.hueSlider.nativeElement.offsetWidth || 140;\n const alphaWidth = this.alphaSlider.nativeElement.offsetWidth || 140;\n this.sliderDimMax = new SliderDimension(hueWidth, this.cpWidth, 130, alphaWidth);\n if (this.cpCmykEnabled) {\n this.format = ColorFormats.CMYK;\n }\n else if (this.cpOutputFormat === 'rgba') {\n this.format = ColorFormats.RGBA;\n }\n else if (this.cpOutputFormat === 'hsla') {\n this.format = ColorFormats.HSLA;\n }\n else {\n this.format = ColorFormats.HEX;\n }\n this.listenerMouseDown = (event) => { this.onMouseDown(event); };\n this.listenerResize = () => { this.onResize(); };\n this.openDialog(this.initialColor, false);\n }\n ngOnDestroy() {\n this.closeDialog();\n }\n ngAfterViewInit() {\n if (this.cpWidth !== 230 || this.cpDialogDisplay === 'inline') {\n const hueWidth = this.hueSlider.nativeElement.offsetWidth || 140;\n const alphaWidth = this.alphaSlider.nativeElement.offsetWidth || 140;\n this.sliderDimMax = new SliderDimension(hueWidth, this.cpWidth, 130, alphaWidth);\n this.updateColorPicker(false);\n this.cdRef.detectChanges();\n }\n }\n openDialog(color, emit = true) {\n this.service.setActive(this);\n if (!this.width) {\n this.cpWidth = this.directiveElementRef.nativeElement.offsetWidth;\n }\n if (!this.height) {\n this.height = 320;\n }\n this.setInitialColor(color);\n this.setColorFromString(color, emit);\n this.openColorPicker();\n }\n closeDialog() {\n this.closeColorPicker();\n }\n setupDialog(instance, elementRef, color, cpWidth, cpHeight, cpDialogDisplay, cpFallbackColor, cpColorMode, cpCmykEnabled, cpAlphaChannel, cpOutputFormat, cpDisableInput, cpIgnoredElements, cpSaveClickOutside, cpCloseClickOutside, cpUseRootViewContainer, cpPosition, cpPositionOffset, cpPositionRelativeToArrow, cpPresetLabel, cpPresetColors, cpPresetColorsClass, cpMaxPresetColorsLength, cpPresetEmptyMessage, cpPresetEmptyMessageClass, cpOKButton, cpOKButtonClass, cpOKButtonText, cpCancelButton, cpCancelButtonClass, cpCancelButtonText, cpAddColorButton, cpAddColorButtonClass, cpAddColorButtonText, cpRemoveColorButtonClass, cpTriggerElement) {\n this.setInitialColor(color);\n this.setColorMode(cpColorMode);\n this.isIE10 = (detectIE() === 10);\n this.directiveInstance = instance;\n this.directiveElementRef = elementRef;\n this.cpDisableInput = cpDisableInput;\n this.cpCmykEnabled = cpCmykEnabled;\n this.cpAlphaChannel = cpAlphaChannel;\n this.cpOutputFormat = cpOutputFormat;\n this.cpDialogDisplay = cpDialogDisplay;\n this.cpIgnoredElements = cpIgnoredElements;\n this.cpSaveClickOutside = cpSaveClickOutside;\n this.cpCloseClickOutside = cpCloseClickOutside;\n this.useRootViewContainer = cpUseRootViewContainer;\n this.width = this.cpWidth = parseInt(cpWidth, 10);\n this.height = this.cpHeight = parseInt(cpHeight, 10);\n this.cpPosition = cpPosition;\n this.cpPositionOffset = parseInt(cpPositionOffset, 10);\n this.cpOKButton = cpOKButton;\n this.cpOKButtonText = cpOKButtonText;\n this.cpOKButtonClass = cpOKButtonClass;\n this.cpCancelButton = cpCancelButton;\n this.cpCancelButtonText = cpCancelButtonText;\n this.cpCancelButtonClass = cpCancelButtonClass;\n this.fallbackColor = cpFallbackColor || '#fff';\n this.setPresetConfig(cpPresetLabel, cpPresetColors);\n this.cpPresetColorsClass = cpPresetColorsClass;\n this.cpMaxPresetColorsLength = cpMaxPresetColorsLength;\n this.cpPresetEmptyMessage = cpPresetEmptyMessage;\n this.cpPresetEmptyMessageClass = cpPresetEmptyMessageClass;\n this.cpAddColorButton = cpAddColorButton;\n this.cpAddColorButtonText = cpAddColorButtonText;\n this.cpAddColorButtonClass = cpAddColorButtonClass;\n this.cpRemoveColorButtonClass = cpRemoveColorButtonClass;\n this.cpTriggerElement = cpTriggerElement;\n if (!cpPositionRelativeToArrow) {\n this.dialogArrowOffset = 0;\n }\n if (cpDialogDisplay === 'inline') {\n this.dialogArrowSize = 0;\n this.dialogArrowOffset = 0;\n }\n if (cpOutputFormat === 'hex' &&\n cpAlphaChannel !== 'always' && cpAlphaChannel !== 'forced') {\n this.cpAlphaChannel = 'disabled';\n }\n }\n setColorMode(mode) {\n switch (mode.toString().toUpperCase()) {\n case '1':\n case 'C':\n case 'COLOR':\n this.cpColorMode = 1;\n break;\n case '2':\n case 'G':\n case 'GRAYSCALE':\n this.cpColorMode = 2;\n break;\n case '3':\n case 'P':\n case 'PRESETS':\n this.cpColorMode = 3;\n break;\n default:\n this.cpColorMode = 1;\n }\n }\n setInitialColor(color) {\n this.initialColor = color;\n }\n setPresetConfig(cpPresetLabel, cpPresetColors) {\n this.cpPresetLabel = cpPresetLabel;\n this.cpPresetColors = cpPresetColors;\n }\n setColorFromString(value, emit = true, update = true) {\n let hsva;\n if (this.cpAlphaChannel === 'always' || this.cpAlphaChannel === 'forced') {\n hsva = this.service.stringToHsva(value, true);\n if (!hsva && !this.hsva) {\n hsva = this.service.stringToHsva(value, false);\n }\n }\n else {\n hsva = this.service.stringToHsva(value, false);\n }\n if (!hsva && !this.hsva) {\n hsva = this.service.stringToHsva(this.fallbackColor, false);\n }\n if (hsva) {\n this.hsva = hsva;\n this.sliderH = this.hsva.h;\n if (this.cpOutputFormat === 'hex' && this.cpAlphaChannel === 'disabled') {\n this.hsva.a = 1;\n }\n this.updateColorPicker(emit, update);\n }\n }\n onResize() {\n if (this.position === 'fixed') {\n this.setDialogPosition();\n }\n else if (this.cpDialogDisplay !== 'inline') {\n this.closeColorPicker();\n }\n }\n onDragEnd(slider) {\n this.directiveInstance.sliderDragEnd({ slider: slider, color: this.outputColor });\n }\n onDragStart(slider) {\n this.directiveInstance.sliderDragStart({ slider: slider, color: this.outputColor });\n }\n onMouseDown(event) {\n if (this.show &&\n !this.isIE10 && this.cpDialogDisplay === 'popup' &&\n event.target !== this.directiveElementRef.nativeElement &&\n !this.isDescendant(this.elRef.nativeElement, event.target) &&\n !this.isDescendant(this.directiveElementRef.nativeElement, event.target) &&\n this.cpIgnoredElements.filter((item) => item === event.target).length === 0) {\n if (this.cpSaveClickOutside) {\n this.directiveInstance.colorSelected(this.outputColor);\n }\n else {\n this.hsva = null;\n this.setColorFromString(this.initialColor, false);\n if (this.cpCmykEnabled) {\n this.directiveInstance.cmykChanged(this.cmykColor);\n }\n this.directiveInstance.colorChanged(this.initialColor);\n this.directiveInstance.colorCanceled();\n }\n if (this.cpCloseClickOutside) {\n this.closeColorPicker();\n }\n }\n }\n onAcceptColor(event) {\n event.stopPropagation();\n if (this.outputColor) {\n this.directiveInstance.colorSelected(this.outputColor);\n }\n if (this.cpDialogDisplay === 'popup') {\n this.closeColorPicker();\n }\n }\n onCancelColor(event) {\n this.hsva = null;\n event.stopPropagation();\n this.directiveInstance.colorCanceled();\n this.setColorFromString(this.initialColor, true);\n if (this.cpDialogDisplay === 'popup') {\n if (this.cpCmykEnabled) {\n this.directiveInstance.cmykChanged(this.cmykColor);\n }\n this.directiveInstance.colorChanged(this.initialColor, true);\n this.closeColorPicker();\n }\n }\n onFormatToggle(change) {\n const availableFormats = this.dialogInputFields.length -\n (this.cpCmykEnabled ? 0 : 1);\n const nextFormat = (((this.dialogInputFields.indexOf(this.format) + change) %\n availableFormats) + availableFormats) % availableFormats;\n this.format = this.dialogInputFields[nextFormat];\n }\n onColorChange(value) {\n this.hsva.s = value.s / value.rgX;\n this.hsva.v = value.v / value.rgY;\n this.updateColorPicker();\n this.directiveInstance.sliderChanged({\n slider: 'lightness',\n value: this.hsva.v,\n color: this.outputColor\n });\n this.directiveInstance.sliderChanged({\n slider: 'saturation',\n value: this.hsva.s,\n color: this.outputColor\n });\n }\n onHueChange(value) {\n this.hsva.h = value.v / value.rgX;\n this.sliderH = this.hsva.h;\n this.updateColorPicker();\n this.directiveInstance.sliderChanged({\n slider: 'hue',\n value: this.hsva.h,\n color: this.outputColor\n });\n }\n onValueChange(value) {\n this.hsva.v = value.v / value.rgX;\n this.updateColorPicker();\n this.directiveInstance.sliderChanged({\n slider: 'value',\n value: this.hsva.v,\n color: this.outputColor\n });\n }\n onAlphaChange(value) {\n this.hsva.a = value.v / value.rgX;\n this.updateColorPicker();\n this.directiveInstance.sliderChanged({\n slider: 'alpha',\n value: this.hsva.a,\n color: this.outputColor\n });\n }\n onHexInput(value) {\n if (value === null) {\n this.updateColorPicker();\n }\n else {\n if (value && value[0] !== '#') {\n value = '#' + value;\n }\n let validHex = /^#([a-f0-9]{3}|[a-f0-9]{6})$/gi;\n if (this.cpAlphaChannel === 'always') {\n validHex = /^#([a-f0-9]{3}|[a-f0-9]{6}|[a-f0-9]{8})$/gi;\n }\n const valid = validHex.test(value);\n if (valid) {\n if (value.length < 5) {\n value = '#' + value.substring(1)\n .split('')\n .map(c => c + c)\n .join('');\n }\n if (this.cpAlphaChannel === 'forced') {\n value += Math.round(this.hsva.a * 255).toString(16);\n }\n this.setColorFromString(value, true, false);\n }\n this.directiveInstance.inputChanged({\n input: 'hex',\n valid: valid,\n value: value,\n color: this.outputColor\n });\n }\n }\n onRedInput(value) {\n const rgba = this.service.hsvaToRgba(this.hsva);\n const valid = !isNaN(value.v) && value.v >= 0 && value.v <= value.rg;\n if (valid) {\n rgba.r = value.v / value.rg;\n this.hsva = this.service.rgbaToHsva(rgba);\n this.sliderH = this.hsva.h;\n this.updateColorPicker();\n }\n this.directiveInstance.inputChanged({\n input: 'red',\n valid: valid,\n value: rgba.r,\n color: this.outputColor\n });\n }\n onBlueInput(value) {\n const rgba = this.service.hsvaToRgba(this.hsva);\n const valid = !isNaN(value.v) && value.v >= 0 && value.v <= value.rg;\n if (valid) {\n rgba.b = value.v / value.rg;\n this.hsva = this.service.rgbaToHsva(rgba);\n this.sliderH = this.hsva.h;\n this.updateColorPicker();\n }\n this.directiveInstance.inputChanged({\n input: 'blue',\n valid: valid,\n value: rgba.b,\n color: this.outputColor\n });\n }\n onGreenInput(value) {\n const rgba = this.service.hsvaToRgba(this.hsva);\n const valid = !isNaN(value.v) && value.v >= 0 && value.v <= value.rg;\n if (valid) {\n rgba.g = value.v / value.rg;\n this.hsva = this.service.rgbaToHsva(rgba);\n this.sliderH = this.hsva.h;\n this.updateColorPicker();\n }\n this.directiveInstance.inputChanged({\n input: 'green',\n valid: valid,\n value: rgba.g,\n color: this.outputColor\n });\n }\n onHueInput(value) {\n const valid = !isNaN(value.v) && value.v >= 0 && value.v <= value.rg;\n if (valid) {\n this.hsva.h = value.v / value.rg;\n this.sliderH = this.hsva.h;\n this.updateColorPicker();\n }\n this.directiveInstance.inputChanged({\n input: 'hue',\n valid: valid,\n value: this.hsva.h,\n color: this.outputColor\n });\n }\n onValueInput(value) {\n const valid = !isNaN(value.v) && value.v >= 0 && value.v <= value.rg;\n if (valid) {\n this.hsva.v = value.v / value.rg;\n this.updateColorPicker();\n }\n this.directiveInstance.inputChanged({\n input: 'value',\n valid: valid,\n value: this.hsva.v,\n color: this.outputColor\n });\n }\n onAlphaInput(value) {\n const valid = !isNaN(value.v) && value.v >= 0 && value.v <= value.rg;\n if (valid) {\n this.hsva.a = value.v / value.rg;\n this.updateColorPicker();\n }\n this.directiveInstance.inputChanged({\n input: 'alpha',\n valid: valid,\n value: this.hsva.a,\n color: this.outputColor\n });\n }\n onLightnessInput(value) {\n const hsla = this.service.hsva2hsla(this.hsva);\n const valid = !isNaN(value.v) && value.v >= 0 && value.v <= value.rg;\n if (valid) {\n hsla.l = value.v / value.rg;\n this.hsva = this.service.hsla2hsva(hsla);\n this.sliderH = this.hsva.h;\n this.updateColorPicker();\n }\n this.directiveInstance.inputChanged({\n input: 'lightness',\n valid: valid,\n value: hsla.l,\n color: this.outputColor\n });\n }\n onSaturationInput(value) {\n const hsla = this.service.hsva2hsla(this.hsva);\n const valid = !isNaN(value.v) && value.v >= 0 && value.v <= value.rg;\n if (valid) {\n hsla.s = value.v / value.rg;\n this.hsva = this.service.hsla2hsva(hsla);\n this.sliderH = this.hsva.h;\n this.updateColorPicker();\n }\n this.directiveInstance.inputChanged({\n input: 'saturation',\n valid: valid,\n value: hsla.s,\n color: this.outputColor\n });\n }\n onCyanInput(value) {\n const valid = !isNaN(value.v) && value.v >= 0 && value.v <= value.rg;\n if (valid) {\n this.cmyk.c = value.v;\n this.updateColorPicker(false, true, true);\n }\n this.directiveInstance.inputChanged({\n input: 'cyan',\n valid: true,\n value: this.cmyk.c,\n color: this.outputColor\n });\n }\n onMagentaInput(value) {\n const valid = !isNaN(value.v) && value.v >= 0 && value.v <= value.rg;\n if (valid) {\n this.cmyk.m = value.v;\n this.updateColorPicker(false, true, true);\n }\n this.directiveInstance.inputChanged({\n input: 'magenta',\n valid: true,\n value: this.cmyk.m,\n color: this.outputColor\n });\n }\n onYellowInput(value) {\n const valid = !isNaN(value.v) && value.v >= 0 && value.v <= value.rg;\n if (valid) {\n this.cmyk.y = value.v;\n this.updateColorPicker(false, true, true);\n }\n this.directiveInstance.inputChanged({\n input: 'yellow',\n valid: true,\n value: this.cmyk.y,\n color: this.outputColor\n });\n }\n onBlackInput(value) {\n const valid = !isNaN(value.v) && value.v >= 0 && value.v <= value.rg;\n if (valid) {\n this.cmyk.k = value.v;\n this.updateColorPicker(false, true, true);\n }\n this.directiveInstance.inputChanged({\n input: 'black',\n valid: true,\n value: this.cmyk.k,\n color: this.outputColor\n });\n }\n onAddPresetColor(event, value) {\n event.stopPropagation();\n if (!this.cpPresetColors.filter((color) => (color === value)).length) {\n this.cpPresetColors = this.cpPresetColors.concat(value);\n this.directiveInstance.presetColorsChanged(this.cpPresetColors);\n }\n }\n onRemovePresetColor(event, value) {\n event.stopPropagation();\n this.cpPresetColors = this.cpPresetColors.filter((color) => (color !== value));\n this.directiveInstance.presetColorsChanged(this.cpPresetColors);\n }\n // Private helper functions for the color picker dialog status\n openColorPicker() {\n if (!this.show) {\n this.show = true;\n this.hidden = true;\n setTimeout(() => {\n this.hidden = false;\n this.setDialogPosition();\n this.cdRef.detectChanges();\n }, 0);\n this.directiveInstance.stateChanged(true);\n if (!this.isIE10) {\n document.addEventListener('mousedown', this.listenerMouseDown);\n document.addEventListener('touchstart', this.listenerMouseDown);\n }\n window.addEventListener('resize', this.listenerResize);\n }\n }\n closeColorPicker() {\n if (this.show) {\n this.show = false;\n this.directiveInstance.stateChanged(false);\n if (!this.isIE10) {\n document.removeEventListener('mousedown', this.listenerMouseDown);\n document.removeEventListener('touchstart', this.listenerMouseDown);\n }\n window.removeEventListener('resize', this.listenerResize);\n if (!this.cdRef['destroyed']) {\n this.cdRef.detectChanges();\n }\n }\n }\n updateColorPicker(emit = true, update = true, cmykInput = false) {\n if (this.sliderDimMax) {\n if (this.cpColorMode === 2) {\n this.hsva.s = 0;\n }\n let hue, hsla, rgba;\n const lastOutput = this.outputColor;\n hsla = this.service.hsva2hsla(this.hsva);\n if (!this.cpCmykEnabled) {\n rgba = this.service.denormalizeRGBA(this.service.hsvaToRgba(this.hsva));\n }\n else {\n if (!cmykInput) {\n rgba = this.service.hsvaToRgba(this.hsva);\n this.cmyk = this.service.denormalizeCMYK(this.service.rgbaToCmyk(rgba));\n }\n else {\n rgba = this.service.cmykToRgb(this.service.normalizeCMYK(this.cmyk));\n this.hsva = this.service.rgbaToHsva(rgba);\n }\n rgba = this.service.denormalizeRGBA(rgba);\n this.sliderH = this.hsva.h;\n }\n hue = this.service.denormalizeRGBA(this.service.hsvaToRgba(new Hsva(this.sliderH || this.hsva.h, 1, 1, 1)));\n if (update) {\n this.hslaText = new Hsla(Math.round((hsla.h) * 360), Math.round(hsla.s * 100), Math.round(hsla.l * 100), Math.round(hsla.a * 100) / 100);\n this.rgbaText = new Rgba(rgba.r, rgba.g, rgba.b, Math.round(rgba.a * 100) / 100);\n if (this.cpCmykEnabled) {\n this.cmykText = new Cmyk(this.cmyk.c, this.cmyk.m, this.cmyk.y, this.cmyk.k, Math.round(this.cmyk.a * 100) / 100);\n }\n const allowHex8 = this.cpAlphaChannel === 'always';\n this.hexText = this.service.rgbaToHex(rgba, allowHex8);\n this.hexAlpha = this.rgbaText.a;\n }\n if (this.cpOutputFormat === 'auto') {\n if (this.format !== ColorFormats.RGBA && this.format !== ColorFormats.CMYK) {\n if (this.hsva.a < 1) {\n this.format = this.hsva.a < 1 ? ColorFormats.RGBA : ColorFormats.HEX;\n }\n }\n }\n this.hueSliderColor = 'rgb(' + hue.r + ',' + hue.g + ',' + hue.b + ')';\n this.alphaSliderColor = 'rgb(' + rgba.r + ',' + rgba.g + ',' + rgba.b + ')';\n this.outputColor = this.service.outputFormat(this.hsva, this.cpOutputFormat, this.cpAlphaChannel);\n this.selectedColor = this.service.outputFormat(this.hsva, 'rgba', null);\n if (this.format !== ColorFormats.CMYK) {\n this.cmykColor = '';\n }\n else {\n if (this.cpAlphaChannel === 'always' || this.cpAlphaChannel === 'enabled' ||\n this.cpAlphaChannel === 'forced') {\n const alpha = Math.round(this.cmyk.a * 100) / 100;\n this.cmykColor = `cmyka(${this.cmyk.c},${this.cmyk.m},${this.cmyk.y},${this.cmyk.k},${alpha})`;\n }\n else {\n this.cmykColor = `cmyk(${this.cmyk.c},${this.cmyk.m},${this.cmyk.y},${this.cmyk.k})`;\n }\n }\n this.slider = new SliderPosition((this.sliderH || this.hsva.h) * this.sliderDimMax.h - 8, this.hsva.s * this.sliderDimMax.s - 8, (1 - this.hsva.v) * this.sliderDimMax.v - 8, this.hsva.a * this.sliderDimMax.a - 8);\n if (emit && lastOutput !== this.outputColor) {\n if (this.cpCmykEnabled) {\n this.directiveInstance.cmykChanged(this.cmykColor);\n }\n this.directiveInstance.colorChanged(this.outputColor);\n }\n }\n }\n // Private helper functions for the color picker dialog positioning\n setDialogPosition() {\n if (this.cpDialogDisplay === 'inline') {\n this.position = 'relative';\n }\n else {\n let position = 'static', transform = '', style;\n let parentNode = null, transformNode = null;\n let node = this.directiveElementRef.nativeElement.parentNode;\n const dialogHeight = this.dialogElement.nativeElement.offsetHeight;\n while (node !== null && node.tagName !== 'HTML') {\n style = window.getComputedStyle(node);\n position = style.getPropertyValue('position');\n transform = style.getPropertyValue('transform');\n if (position !== 'static' && parentNode === null) {\n parentNode = node;\n }\n if (transform && transform !== 'none' && transformNode === null) {\n transformNode = node;\n }\n if (position === 'fixed') {\n parentNode = transformNode;\n break;\n }\n node = node.parentNode;\n }\n const boxDirective = this.createDialogBox(this.directiveElementRef.nativeElement, (position !== 'fixed'));\n if (this.useRootViewContainer || (position === 'fixed' &&\n (!parentNode || parentNode instanceof HTMLUnknownElement))) {\n this.top = boxDirective.top;\n this.left = boxDirective.left;\n }\n else {\n if (parentNode === null) {\n parentNode = node;\n }\n const boxParent = this.createDialogBox(parentNode, (position !== 'fixed'));\n this.top = boxDirective.top - boxParent.top;\n this.left = boxDirective.left - boxParent.left;\n }\n if (position === 'fixed') {\n this.position = 'fixed';\n }\n let usePosition = this.cpPosition;\n if (this.cpPosition === 'auto') {\n const dialogBounds = this.dialogElement.nativeElement.getBoundingClientRect();\n const triggerBounds = this.cpTriggerElement.nativeElement.getBoundingClientRect();\n usePosition = calculateAutoPositioning(dialogBounds, triggerBounds);\n }\n if (usePosition === 'top') {\n this.arrowTop = dialogHeight - 1;\n this.top -= dialogHeight + this.dialogArrowSize;\n this.left += this.cpPositionOffset / 100 * boxDirective.width - this.dialogArrowOffset;\n }\n else if (usePosition === 'bottom') {\n this.top += boxDirective.height + this.dialogArrowSize;\n this.left += this.cpPositionOffset / 100 * boxDirective.width - this.dialogArrowOffset;\n }\n else if (usePosition === 'top-left' || usePosition === 'left-top') {\n this.top -= dialogHeight - boxDirective.height + boxDirective.height * this.cpPositionOffset / 100;\n this.left -= this.cpWidth + this.dialogArrowSize - 2 - this.dialogArrowOffset;\n }\n else if (usePosition === 'top-right' || usePosition === 'right-top') {\n this.top -= dialogHeight - boxDirective.height + boxDirective.height * this.cpPositionOffset / 100;\n this.left += boxDirective.width + this.dialogArrowSize - 2 - this.dialogArrowOffset;\n }\n else if (usePosition === 'left' || usePosition === 'bottom-left' || usePosition === 'left-bottom') {\n this.top += boxDirective.height * this.cpPositionOffset / 100 - this.dialogArrowOffset;\n this.left -= this.cpWidth + this.dialogArrowSize - 2;\n }\n else { // usePosition === 'right' || usePosition === 'bottom-right' || usePosition === 'right-bottom'\n this.top += boxDirective.height * this.cpPositionOffset / 100 - this.dialogArrowOffset;\n this.left += boxDirective.width + this.dialogArrowSize - 2;\n }\n this.cpUsePosition = usePosition;\n }\n }\n // Private helper functions for the color picker dialog positioning and opening\n isDescendant(parent, child) {\n let node = child.parentNode;\n while (node !== null) {\n if (node === parent) {\n return true;\n }\n node = node.parentNode;\n }\n return false;\n }\n createDialogBox(element, offset) {\n return {\n top: element.getBoundingClientRect().top + (offset ? window.pageYOffset : 0),\n left: element.getBoundingClientRect().left + (offset ? window.pageXOffset : 0),\n width: element.offsetWidth,\n height: element.offsetHeight\n };\n }\n}\nColorPickerComponent.ɵfac = function ColorPickerComponent_Factory(t) { return new (t || ColorPickerComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(ColorPickerService)); };\nColorPickerComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: ColorPickerComponent, selectors: [[\"color-picker\"]], viewQuery: function ColorPickerComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(_c0, 7);\n ɵngcc0.ɵɵviewQuery(_c1, 7);\n ɵngcc0.ɵɵviewQuery(_c2, 7);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.dialogElement = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.hueSlider = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.alphaSlider = _t.first);\n } }, hostBindings: function ColorPickerComponent_HostBindings(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"keyup.esc\", function ColorPickerComponent_keyup_esc_HostBindingHandler($event) { return ctx.handleEsc($event); }, false, ɵngcc0.ɵɵresolveDocument)(\"keyup.enter\", function ColorPickerComponent_keyup_enter_HostBindingHandler($event) { return ctx.handleEnter($event); }, false, ɵngcc0.ɵɵresolveDocument);\n } }, decls: 28, vars: 47, consts: [[1, \"color-picker\", 3, \"click\"], [\"dialogPopup\", \"\"], [3, \"class\", \"top\", 4, \"ngIf\"], [\"class\", \"saturation-lightness\", 3, \"slider\", \"rgX\", \"rgY\", \"background-color\", \"newValue\", \"dragStart\", \"dragEnd\", 4, \"ngIf\"], [1, \"hue-alpha\", \"box\"], [1, \"left\"], [1, \"selected-color-background\"], [1, \"selected-color\"], [\"type\", \"button\", 3, \"class\", \"disabled\", \"click\", 4, \"ngIf\"], [1, \"right\"], [\"style\", \"height: 16px;\", 4, \"ngIf\"], [1, \"hue\", 3, \"slider\", \"rgX\", \"newValue\", \"dragStart\", \"dragEnd\"], [\"hueSlider\", \"\"], [1, \"cursor\"], [1, \"value\", 3, \"slider\", \"rgX\", \"newValue\", \"dragStart\", \"dragEnd\"], [\"valueSlider\", \"\"], [1, \"alpha\", 3, \"slider\", \"rgX\", \"newValue\", \"dragStart\", \"dragEnd\"], [\"alphaSlider\", \"\"], [\"class\", \"cmyk-text\", 3, \"display\", 4, \"ngIf\"], [\"class\", \"hsla-text\", 3, \"display\", 4, \"ngIf\"], [\"class\", \"rgba-text\", 3, \"display\", 4, \"ngIf\"], [\"class\", \"hex-text\", 3, \"hex-alpha\", \"display\", 4, \"ngIf\"], [\"class\", \"value-text\", 4, \"ngIf\"], [\"class\", \"type-policy\", 4, \"ngIf\"], [\"class\", \"preset-area\", 4, \"ngIf\"], [\"class\", \"button-area\", 4, \"ngIf\"], [1, \"saturation-lightness\", 3, \"slider\", \"rgX\", \"rgY\", \"newValue\", \"dragStart\", \"dragEnd\"], [\"type\", \"button\", 3, \"disabled\", \"click\"], [2, \"height\", \"16px\"], [1, \"cmyk-text\"], [1, \"box\"], [\"type\", \"number\", \"pattern\", \"[0-9]*\", \"min\", \"0\", \"max\", \"100\", 3, \"text\", \"rg\", \"value\", \"keyup.enter\", \"newValue\"], [\"type\", \"number\", \"pattern\", \"[0-9]+([\\\\.,][0-9]{1,2})?\", \"min\", \"0\", \"max\", \"1\", \"step\", \"0.1\", 3, \"text\", \"rg\", \"value\", \"keyup.enter\", \"newValue\", 4, \"ngIf\"], [4, \"ngIf\"], [\"type\", \"number\", \"pattern\", \"[0-9]+([\\\\.,][0-9]{1,2})?\", \"min\", \"0\", \"max\", \"1\", \"step\", \"0.1\", 3, \"text\", \"rg\", \"value\", \"keyup.enter\", \"newValue\"], [1, \"hsla-text\"], [\"type\", \"number\", \"pattern\", \"[0-9]*\", \"min\", \"0\", \"max\", \"360\", 3, \"text\", \"rg\", \"value\", \"keyup.enter\", \"newValue\"], [1, \"rgba-text\"], [\"type\", \"number\", \"pattern\", \"[0-9]*\", \"min\", \"0\", \"max\", \"255\", 3, \"text\", \"rg\", \"value\", \"keyup.enter\", \"newValue\"], [1, \"hex-text\"], [3, \"text\", \"value\", \"blur\", \"keyup.enter\", \"newValue\"], [1, \"value-text\"], [1, \"type-policy\"], [1, \"type-policy-arrow\", 3, \"click\"], [1, \"preset-area\"], [1, \"preset-label\"], [3, \"class\", 4, \"ngIf\"], [\"class\", \"preset-color\", 3, \"backgroundColor\", \"click\", 4, \"ngFor\", \"ngForOf\"], [1, \"preset-color\", 3, \"click\"], [3, \"class\", \"click\", 4, \"ngIf\"], [3, \"click\"], [1, \"button-area\"], [\"type\", \"button\", 3, \"class\", \"click\", 4, \"ngIf\"], [\"type\", \"button\", 3, \"click\"]], template: function ColorPickerComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 0, 1);\n ɵngcc0.ɵɵlistener(\"click\", function ColorPickerComponent_Template_div_click_0_listener($event) { return $event.stopPropagation(); });\n ɵngcc0.ɵɵtemplate(2, ColorPickerComponent_div_2_Template, 1, 5, \"div\", 2);\n ɵngcc0.ɵɵtemplate(3, ColorPickerComponent_div_3_Template, 2, 8, \"div\", 3);\n ɵngcc0.ɵɵelementStart(4, \"div\", 4)(5, \"div\", 5);\n ɵngcc0.ɵɵelement(6, \"div\", 6)(7, \"div\", 7);\n ɵngcc0.ɵɵtemplate(8, ColorPickerComponent_button_8_Template, 2, 5, \"button\", 8);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(9, \"div\", 9);\n ɵngcc0.ɵɵtemplate(10, ColorPickerComponent_div_10_Template, 1, 0, \"div\", 10);\n ɵngcc0.ɵɵelementStart(11, \"div\", 11, 12);\n ɵngcc0.ɵɵlistener(\"newValue\", function ColorPickerComponent_Template_div_newValue_11_listener($event) { return ctx.onHueChange($event); })(\"dragStart\", function ColorPickerComponent_Template_div_dragStart_11_listener() { return ctx.onDragStart(\"hue\"); })(\"dragEnd\", function ColorPickerComponent_Template_div_dragEnd_11_listener() { return ctx.onDragEnd(\"hue\"); });\n ɵngcc0.ɵɵelement(13, \"div\", 13);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(14, \"div\", 14, 15);\n ɵngcc0.ɵɵlistener(\"newValue\", function ColorPickerComponent_Template_div_newValue_14_listener($event) { return ctx.onValueChange($event); })(\"dragStart\", function ColorPickerComponent_Template_div_dragStart_14_listener() { return ctx.onDragStart(\"value\"); })(\"dragEnd\", function ColorPickerComponent_Template_div_dragEnd_14_listener() { return ctx.onDragEnd(\"value\"); });\n ɵngcc0.ɵɵelement(16, \"div\", 13);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(17, \"div\", 16, 17);\n ɵngcc0.ɵɵlistener(\"newValue\", function ColorPickerComponent_Template_div_newValue_17_listener($event) { return ctx.onAlphaChange($event); })(\"dragStart\", function ColorPickerComponent_Template_div_dragStart_17_listener() { return ctx.onDragStart(\"alpha\"); })(\"dragEnd\", function ColorPickerComponent_Template_div_dragEnd_17_listener() { return ctx.onDragEnd(\"alpha\"); });\n ɵngcc0.ɵɵelement(19, \"div\", 13);\n ɵngcc0.ɵɵelementEnd()()();\n ɵngcc0.ɵɵtemplate(20, ColorPickerComponent_div_20_Template, 17, 12, \"div\", 18);\n ɵngcc0.ɵɵtemplate(21, ColorPickerComponent_div_21_Template, 14, 10, \"div\", 19);\n ɵngcc0.ɵɵtemplate(22, ColorPickerComponent_div_22_Template, 14, 10, \"div\", 20);\n ɵngcc0.ɵɵtemplate(23, ColorPickerComponent_div_23_Template, 8, 7, \"div\", 21);\n ɵngcc0.ɵɵtemplate(24, ColorPickerComponent_div_24_Template, 9, 3, \"div\", 22);\n ɵngcc0.ɵɵtemplate(25, ColorPickerComponent_div_25_Template, 3, 0, \"div\", 23);\n ɵngcc0.ɵɵtemplate(26, ColorPickerComponent_div_26_Template, 6, 3, \"div\", 24);\n ɵngcc0.ɵɵtemplate(27, ColorPickerComponent_div_27_Template, 3, 2, \"div\", 25);\n ɵngcc0.ɵɵelementEnd();\n } if (rf & 2) {\n ɵngcc0.ɵɵstyleProp(\"display\", !ctx.show ? \"none\" : \"block\")(\"visibility\", ctx.hidden ? \"hidden\" : \"visible\")(\"top\", ctx.top, \"px\")(\"left\", ctx.left, \"px\")(\"position\", ctx.position)(\"height\", ctx.cpHeight, \"px\")(\"width\", ctx.cpWidth, \"px\");\n ɵngcc0.ɵɵclassProp(\"open\", ctx.show);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.cpDialogDisplay == \"popup\");\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", (ctx.cpColorMode || 1) === 1);\n ɵngcc0.ɵɵadvance(4);\n ɵngcc0.ɵɵstyleProp(\"background-color\", ctx.selectedColor);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.cpAddColorButton);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.cpAlphaChannel === \"disabled\");\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵstyleProp(\"display\", (ctx.cpColorMode || 1) === 1 ? \"block\" : \"none\");\n ɵngcc0.ɵɵproperty(\"rgX\", 1);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵstyleProp(\"left\", ctx.slider == null ? null : ctx.slider.h, \"px\");\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵstyleProp(\"display\", (ctx.cpColorMode || 1) === 2 ? \"block\" : \"none\");\n ɵngcc0.ɵɵproperty(\"rgX\", 1);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵstyleProp(\"right\", ctx.slider == null ? null : ctx.slider.v, \"px\");\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵstyleProp(\"display\", ctx.cpAlphaChannel === \"disabled\" ? \"none\" : \"block\")(\"background-color\", ctx.alphaSliderColor);\n ɵngcc0.ɵɵproperty(\"rgX\", 1);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵstyleProp(\"left\", ctx.slider == null ? null : ctx.slider.a, \"px\");\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx.cpDisableInput && (ctx.cpColorMode || 1) === 1);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx.cpDisableInput && (ctx.cpColorMode || 1) === 1);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx.cpDisableInput && (ctx.cpColorMode || 1) === 1);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx.cpDisableInput && (ctx.cpColorMode || 1) === 1);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx.cpDisableInput && (ctx.cpColorMode || 1) === 2);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx.cpDisableInput && (ctx.cpColorMode || 1) === 1);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", (ctx.cpPresetColors == null ? null : ctx.cpPresetColors.length) || ctx.cpAddColorButton);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.cpOKButton || ctx.cpCancelButton);\n } }, dependencies: [ɵngcc1.NgForOf, ɵngcc1.NgIf, TextDirective, SliderDirective], styles: [\".color-picker{-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;background-color:#fff;border:1px solid #777;cursor:default;height:auto;position:absolute;user-select:none;width:230px;z-index:1000}.color-picker *{box-sizing:border-box;font-size:11px;margin:0}.color-picker input{color:#000;font-size:13px;height:26px;min-width:0;text-align:center;width:0}.color-picker input:-moz-submit-invalid,.color-picker input:-moz-ui-invalid,.color-picker input:invalid{box-shadow:none}.color-picker input::-webkit-inner-spin-button,.color-picker input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.color-picker .arrow{border-style:solid;height:0;position:absolute;width:0;z-index:999999}.color-picker .arrow.arrow-top{border-color:#777 transparent transparent;border-width:10px 5px;left:8px}.color-picker .arrow.arrow-bottom{border-color:transparent transparent #777;border-width:10px 5px;left:8px;top:-20px}.color-picker .arrow.arrow-left-top,.color-picker .arrow.arrow-top-left{border-color:transparent transparent transparent #777;border-width:5px 10px;bottom:8px;right:-21px}.color-picker .arrow.arrow-right-top,.color-picker .arrow.arrow-top-right{border-color:transparent #777 transparent transparent;border-width:5px 10px;bottom:8px;left:-20px}.color-picker .arrow.arrow-bottom-left,.color-picker .arrow.arrow-left,.color-picker .arrow.arrow-left-bottom{border-color:transparent transparent transparent #777;border-width:5px 10px;right:-21px;top:8px}.color-picker .arrow.arrow-bottom-right,.color-picker .arrow.arrow-right,.color-picker .arrow.arrow-right-bottom{border-color:transparent #777 transparent transparent;border-width:5px 10px;left:-20px;top:8px}.color-picker .cursor{border:2px solid #222;border-radius:50%;cursor:default;height:16px;position:relative;width:16px}.color-picker .box{display:flex;padding:4px 8px}.color-picker .left{padding:16px 8px;position:relative}.color-picker .right{flex:1 1 auto;padding:12px 8px}.color-picker .button-area{padding:0 16px 16px;text-align:right}.color-picker .button-area button{margin-left:8px}.color-picker .preset-area{padding:4px 15px}.color-picker .preset-area .preset-label{color:#555;font-size:11px;overflow:hidden;padding:4px;text-align:left;text-overflow:ellipsis;white-space:nowrap;width:100%}.color-picker .preset-area .preset-color{border:1px solid #a9a9a9;border-radius:25%;cursor:pointer;display:inline-block;height:18px;margin:4px 6px 8px;position:relative;width:18px}.color-picker .preset-area .preset-empty-message{font-style:italic;margin-bottom:8px;margin-top:4px;min-height:18px;text-align:center}.color-picker .hex-text{font-size:11px;padding:4px 8px;width:100%}.color-picker .hex-text .box{padding:0 24px 8px 8px}.color-picker .hex-text .box div{clear:left;color:#555;flex:1 1 auto;float:left;text-align:center}.color-picker .hex-text .box input{border:1px solid #a9a9a9;flex:1 1 auto;padding:1px}.color-picker .hex-alpha .box div:first-child,.color-picker .hex-alpha .box input:first-child{flex-grow:3;margin-right:8px}.color-picker .cmyk-text,.color-picker .hsla-text,.color-picker .rgba-text,.color-picker .value-text{font-size:11px;padding:4px 8px;width:100%}.color-picker .cmyk-text .box,.color-picker .hsla-text .box,.color-picker .rgba-text .box{padding:0 24px 8px 8px}.color-picker .value-text .box{padding:0 8px 8px}.color-picker .cmyk-text .box div,.color-picker .hsla-text .box div,.color-picker .rgba-text .box div,.color-picker .value-text .box div{color:#555;flex:1 1 auto;margin-right:8px;text-align:center}.color-picker .cmyk-text .box div:last-child,.color-picker .hsla-text .box div:last-child,.color-picker .rgba-text .box div:last-child,.color-picker .value-text .box div:last-child{margin-right:0}.color-picker .cmyk-text .box input,.color-picker .hsla-text .box input,.color-picker .rgba-text .box input,.color-picker .value-text .box input{border:1px solid #a9a9a9;flex:1;float:left;margin:0 8px 0 0;padding:1px}.color-picker .cmyk-text .box input:last-child,.color-picker .hsla-text .box input:last-child,.color-picker .rgba-text .box input:last-child,.color-picker .value-text .box input:last-child{margin-right:0}.color-picker .hue-alpha{align-items:center;margin-bottom:3px}.color-picker .hue{background-image:url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJYAAAAQCAYAAAD06IYnAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4AIWDwkUFWbCCAAAAFxJREFUaN7t0kEKg0AQAME2x83/n2qu5qCgD1iDhCoYdpnbQC9bbY1qVO/jvc6k3ad91s7/7F1/csgPrujuQ17BDYSFsBAWwgJhISyEBcJCWAgLhIWwEBYIi2f7Ar/1TCgFH2X9AAAAAElFTkSuQmCC\\\");direction:ltr}.color-picker .hue,.color-picker .value{background-size:100% 100%;border:none;cursor:pointer;height:16px;margin-bottom:16px;width:100%}.color-picker .value{background-image:url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJYAAAAQCAYAAAD06IYnAAACTklEQVR42u3SYUcrABhA4U2SkmRJMmWSJklKJiWZZpKUJJskKUmaTFImKZOUzMySpGRmliRNJilJSpKSJEtmSpIpmWmSdO736/6D+x7OP3gUCoWCv1cqlSQlJZGcnExKSgqpqamkpaWRnp5ORkYGmZmZqFQqsrKyyM7OJicnh9zcXNRqNXl5eeTn56PRaCgoKKCwsJCioiK0Wi3FxcWUlJRQWlpKWVkZ5eXlVFRUUFlZiU6no6qqiurqampqaqitraWurg69Xk99fT0GgwGj0UhDQwONjY00NTXR3NxMS0sLra2ttLW10d7ejslkwmw209HRQWdnJ11dXXR3d9PT00Nvby99fX309/czMDDA4OAgFouFoaEhrFYrw8PDjIyMMDo6ytjYGDabjfHxcSYmJpicnGRqagq73c709DQzMzPMzs4yNzfH/Pw8DocDp9OJy+XC7XazsLDA4uIiS0tLLC8vs7KywurqKmtra3g8HrxeLz6fD7/fz/r6OhsbG2xubrK1tcX29jaBQICdnR2CwSC7u7vs7e2xv7/PwcEBh4eHHB0dcXx8zMnJCaenp5ydnXF+fs7FxQWXl5dcXV1xfX3Nzc0Nt7e33N3dEQqFuL+/5+HhgXA4TCQS4fHxkaenJ56fn3l5eeH19ZVoNMrb2xvv7+98fHwQi8WIx+N8fn6SSCT4+vri+/ubn58ffn9/+VcKgSWwBJbAElgCS2AJLIElsASWwBJYAktgCSyBJbAElsASWAJLYAksgSWwBJbAElgCS2AJLIElsP4/WH8AmJ5Z6jHS4h8AAAAASUVORK5CYII=\\\");direction:rtl}.color-picker .alpha{background-image:url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJYAAAAQCAYAAAD06IYnAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4AIWDwYQlZMa3gAAAWVJREFUaN7tmEGO6jAQRCsOArHgBpyAJYGjcGocxAm4A2IHpmoWE0eBH+ezmFlNvU06shJ3W6VEelWMUQAIIF9f6qZpimsA1LYtS2uF51/u27YVAFZVRUkEoGHdPV/sIcbIEIIkUdI/9Xa7neyv61+SWFUVAVCSct00TWn2fv6u3+Ecfd3tXzy/0+nEUu+SPjo/kqzrmiQpScN6v98XewfA8/lMkiLJ2WxGSUopcT6fM6U0NX9/frfbjev1WtfrlZfLhYfDQQHG/AIOlnGwjINlHCxjHCzjYJm/TJWdCwquJXseFFzGwDNNeiKMOJTO8xQdDQaeB29+K9efeLaBo9J7vdvtJj1RjFFjfiv7qv95tjx/7leSQgh93e1ffMeIp6O+YQjho/N791t1XVOSSI7N//K+4/GoxWLBx+PB5/Op5XLJ+/3OlJJWqxU3m83ovv5iGf8KjYNlHCxjHCzjYBkHy5gf5gusvQU7U37jTAAAAABJRU5ErkJggg==\\\");background-size:100% 100%;border:none;cursor:pointer;direction:ltr;height:16px;width:100%}.color-picker .type-policy{background-image:url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAAgCAYAAAAffCjxAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAACewAAAnsB01CO3AAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAIASURBVEiJ7ZY9axRRFIafsxMStrLQJpAgpBFhi+C9w1YSo00I6RZ/g9vZpBf/QOr4GyRgkSKNSrAadsZqQGwCkuAWyRZJsySwvhZ7N/vhzrgbLH3Ld8597jlzz50zJokyxXH8DqDVar0qi6v8BbItqSGpEcfxdlmsFWXkvX8AfAVWg3UKPEnT9GKujMzsAFgZsVaCN1VTQd77XUnrgE1kv+6935268WRpzrnHZvYRWC7YvC3pRZZl3wozqtVqiyH9IgjAspkd1Gq1xUJQtVrdB9ZKIAOthdg/Qc65LUk7wNIMoCVJO865rYFhkqjX6/d7vV4GPJwBMqofURS5JEk6FYBer/eeYb/Mo9WwFnPOvQbeAvfuAAK4BN4sAJtAG/gJIElmNuiJyba3EGNmZiPeZuEVmVell/Y/6N+CzDn3AXhEOOo7Hv/3BeAz8IzQkMPnJbuPx1wC+yYJ7/0nYIP5S/0FHKdp+rwCEEXRS/rf5Hl1Gtb2M0iSpCOpCZzPATmX1EySpHMLAsiy7MjMDoHrGSDXZnaYZdnRwBh7J91utwmczAA6CbG3GgPleX4jqUH/a1CktqRGnuc3hSCAMB32gKspkCtgb3KCQMmkjeP4WNJThrNNZval1WptTIsv7JtQ4tmIdRa8qSoEpWl6YWZNoAN0zKxZNPehpLSBZv2t+Q0CJ9lLnARQLAAAAABJRU5ErkJggg==\\\");background-position:50%;background-repeat:no-repeat;background-size:8px 16px;height:24px;position:absolute;right:12px;top:218px;width:16px}.color-picker .type-policy .type-policy-arrow{display:block;height:50%;width:100%}.color-picker .selected-color{border:1px solid #a9a9a9;border-radius:50%;height:40px;left:8px;position:absolute;top:16px;width:40px}.color-picker .selected-color-background{background-image:url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAAh0lEQVRYR+2W0QlAMQgD60zdfwOdqa8TmI/wQMr5K0I5bZLIzLOa2nt37VVVbd+dDx5obgCC3KBLwJ2ff4PnVidkf+ucIhw80HQaCLo3DMH3CRK3iFsmAWVl6hPNDwt8EvNE5q+YuEXcMgkonVM6SdyCoEvAnZ8v1Hjx817MilmxSUB5rdLJDycZgUAZUch/AAAAAElFTkSuQmCC\\\");border-radius:50%;height:40px;width:40px}.color-picker .saturation-lightness{background-image:url(\\\"data:image/png;base64,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\\\");background-size:100% 100%;border:none;cursor:pointer;direction:ltr;height:130px;touch-action:manipulation;width:100%}.color-picker .cp-add-color-button-class{background:transparent;border:0;cursor:pointer;display:inline;margin:3px -3px;padding:0;position:absolute}.color-picker .cp-add-color-button-class:hover{text-decoration:underline}.color-picker .cp-add-color-button-class:disabled{color:#999;cursor:not-allowed}.color-picker .cp-add-color-button-class:disabled:hover{text-decoration:none}.color-picker .cp-remove-color-button-class{background:#fff;border-radius:50%;box-shadow:1px 1px 5px #333;cursor:pointer;display:block;height:10px;position:absolute;right:-5px;text-align:center;top:-5px;width:10px}.color-picker .cp-remove-color-button-class:before{bottom:3.5px;content:\\\"x\\\";display:inline-block;font-size:10px;position:relative}\"], encapsulation: 2 });\nColorPickerComponent.ctorParameters = () => [\n { type: ElementRef },\n { type: ChangeDetectorRef },\n { type: ColorPickerService }\n];\nColorPickerComponent.propDecorators = {\n dialogElement: [{ type: ViewChild, args: ['dialogPopup', { static: true },] }],\n hueSlider: [{ type: ViewChild, args: ['hueSlider', { static: true },] }],\n alphaSlider: [{ type: ViewChild, args: ['alphaSlider', { static: true },] }],\n handleEsc: [{ type: HostListener, args: ['document:keyup.esc', ['$event'],] }],\n handleEnter: [{ type: HostListener, args: ['document:keyup.enter', ['$event'],] }]\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ColorPickerComponent, [{\n type: Component,\n args: [{ selector: 'color-picker', template: \"<div #dialogPopup class=\\\"color-picker\\\" [class.open]=\\\"show\\\" [style.display]=\\\"!show ? 'none' : 'block'\\\" [style.visibility]=\\\"hidden ? 'hidden' : 'visible'\\\" [style.top.px]=\\\"top\\\" [style.left.px]=\\\"left\\\" [style.position]=\\\"position\\\" [style.height.px]=\\\"cpHeight\\\" [style.width.px]=\\\"cpWidth\\\" (click)=\\\"$event.stopPropagation()\\\">\\n <div *ngIf=\\\"cpDialogDisplay=='popup'\\\" class=\\\"arrow arrow-{{cpUsePosition}}\\\" [style.top.px]=\\\"arrowTop\\\"></div>\\n\\n <div *ngIf=\\\"(cpColorMode ||\\u00A01) === 1\\\" class=\\\"saturation-lightness\\\" [slider] [rgX]=\\\"1\\\" [rgY]=\\\"1\\\" [style.background-color]=\\\"hueSliderColor\\\" (newValue)=\\\"onColorChange($event)\\\" (dragStart)=\\\"onDragStart('saturation-lightness')\\\" (dragEnd)=\\\"onDragEnd('saturation-lightness')\\\">\\n <div class=\\\"cursor\\\" [style.top.px]=\\\"slider?.v\\\" [style.left.px]=\\\"slider?.s\\\"></div>\\n </div>\\n\\n <div class=\\\"hue-alpha box\\\">\\n <div class=\\\"left\\\">\\n <div class=\\\"selected-color-background\\\"></div>\\n\\n <div class=\\\"selected-color\\\" [style.background-color]=\\\"selectedColor\\\"></div>\\n\\n <button *ngIf=\\\"cpAddColorButton\\\" type=\\\"button\\\" class=\\\"{{cpAddColorButtonClass}}\\\" [disabled]=\\\"cpPresetColors && cpPresetColors.length >= cpMaxPresetColorsLength\\\" (click)=\\\"onAddPresetColor($event, selectedColor)\\\">\\n {{cpAddColorButtonText}}\\n </button>\\n </div>\\n\\n <div class=\\\"right\\\">\\n <div *ngIf=\\\"cpAlphaChannel==='disabled'\\\" style=\\\"height: 16px;\\\"></div>\\n\\n <div #hueSlider class=\\\"hue\\\" [slider] [rgX]=\\\"1\\\" [style.display]=\\\"(cpColorMode ||\\u00A01) === 1 ? 'block' : 'none'\\\" (newValue)=\\\"onHueChange($event)\\\" (dragStart)=\\\"onDragStart('hue')\\\" (dragEnd)=\\\"onDragEnd('hue')\\\">\\n <div class=\\\"cursor\\\" [style.left.px]=\\\"slider?.h\\\"></div>\\n </div>\\n\\n <div #valueSlider class=\\\"value\\\" [slider] [rgX]=\\\"1\\\" [style.display]=\\\"(cpColorMode ||\\u00A01) === 2 ? 'block': 'none'\\\" (newValue)=\\\"onValueChange($event)\\\" (dragStart)=\\\"onDragStart('value')\\\" (dragEnd)=\\\"onDragEnd('value')\\\">\\n <div class=\\\"cursor\\\" [style.right.px]=\\\"slider?.v\\\"></div>\\n </div>\\n\\n <div #alphaSlider class=\\\"alpha\\\" [slider] [rgX]=\\\"1\\\" [style.display]=\\\"cpAlphaChannel === 'disabled' ? 'none' : 'block'\\\" [style.background-color]=\\\"alphaSliderColor\\\" (newValue)=\\\"onAlphaChange($event)\\\" (dragStart)=\\\"onDragStart('alpha')\\\" (dragEnd)=\\\"onDragEnd('alpha')\\\">\\n <div class=\\\"cursor\\\" [style.left.px]=\\\"slider?.a\\\"></div>\\n </div>\\n </div>\\n </div>\\n\\n <div *ngIf=\\\"!cpDisableInput && (cpColorMode ||\\u00A01) === 1\\\" class=\\\"cmyk-text\\\" [style.display]=\\\"format !== 3 ? 'none' : 'block'\\\">\\n <div class=\\\"box\\\">\\n <input type=\\\"number\\\" pattern=\\\"[0-9]*\\\" min=\\\"0\\\" max=\\\"100\\\" [text] [rg]=\\\"100\\\" [value]=\\\"cmykText?.c\\\" (keyup.enter)=\\\"onAcceptColor($event)\\\" (newValue)=\\\"onCyanInput($event)\\\" />\\n <input type=\\\"number\\\" pattern=\\\"[0-9]*\\\" min=\\\"0\\\" max=\\\"100\\\" [text] [rg]=\\\"100\\\" [value]=\\\"cmykText?.m\\\" (keyup.enter)=\\\"onAcceptColor($event)\\\" (newValue)=\\\"onMagentaInput($event)\\\" />\\n <input type=\\\"number\\\" pattern=\\\"[0-9]*\\\" min=\\\"0\\\" max=\\\"100\\\" [text] [rg]=\\\"100\\\" [value]=\\\"cmykText?.y\\\" (keyup.enter)=\\\"onAcceptColor($event)\\\" (newValue)=\\\"onYellowInput($event)\\\" />\\n <input type=\\\"number\\\" pattern=\\\"[0-9]*\\\" min=\\\"0\\\" max=\\\"100\\\" [text] [rg]=\\\"100\\\" [value]=\\\"cmykText?.k\\\" (keyup.enter)=\\\"onAcceptColor($event)\\\" (newValue)=\\\"onBlackInput($event)\\\" />\\n <input *ngIf=\\\"cpAlphaChannel!=='disabled'\\\" type=\\\"number\\\" pattern=\\\"[0-9]+([\\\\.,][0-9]{1,2})?\\\" min=\\\"0\\\" max=\\\"1\\\" step=\\\"0.1\\\" [text] [rg]=\\\"1\\\" [value]=\\\"cmykText?.a\\\" (keyup.enter)=\\\"onAcceptColor($event)\\\" (newValue)=\\\"onAlphaInput($event)\\\" />\\n </div>\\n\\n <div class=\\\"box\\\">\\n <div>C</div><div>M</div><div>Y</div><div>K</div><div *ngIf=\\\"cpAlphaChannel!=='disabled'\\\" >A</div>\\n </div>\\n </div>\\n\\n <div *ngIf=\\\"!cpDisableInput && (cpColorMode ||\\u00A01) === 1 \\\" class=\\\"hsla-text\\\" [style.display]=\\\"format !== 2 ? 'none' : 'block'\\\">\\n <div class=\\\"box\\\">\\n <input type=\\\"number\\\" pattern=\\\"[0-9]*\\\" min=\\\"0\\\" max=\\\"360\\\" [text] [rg]=\\\"360\\\" [value]=\\\"hslaText?.h\\\" (keyup.enter)=\\\"onAcceptColor($event)\\\" (newValue)=\\\"onHueInput($event)\\\" />\\n <input type=\\\"number\\\" pattern=\\\"[0-9]*\\\" min=\\\"0\\\" max=\\\"100\\\" [text] [rg]=\\\"100\\\" [value]=\\\"hslaText?.s\\\" (keyup.enter)=\\\"onAcceptColor($event)\\\" (newValue)=\\\"onSaturationInput($event)\\\" />\\n <input type=\\\"number\\\" pattern=\\\"[0-9]*\\\" min=\\\"0\\\" max=\\\"100\\\" [text] [rg]=\\\"100\\\" [value]=\\\"hslaText?.l\\\" (keyup.enter)=\\\"onAcceptColor($event)\\\" (newValue)=\\\"onLightnessInput($event)\\\" />\\n <input *ngIf=\\\"cpAlphaChannel!=='disabled'\\\" type=\\\"number\\\" pattern=\\\"[0-9]+([\\\\.,][0-9]{1,2})?\\\" min=\\\"0\\\" max=\\\"1\\\" step=\\\"0.1\\\" [text] [rg]=\\\"1\\\" [value]=\\\"hslaText?.a\\\" (keyup.enter)=\\\"onAcceptColor($event)\\\" (newValue)=\\\"onAlphaInput($event)\\\" />\\n </div>\\n\\n <div class=\\\"box\\\">\\n <div>H</div><div>S</div><div>L</div><div *ngIf=\\\"cpAlphaChannel!=='disabled'\\\">A</div>\\n </div>\\n </div>\\n\\n <div *ngIf=\\\"!cpDisableInput && (cpColorMode ||\\u00A01) === 1 \\\" [style.display]=\\\"format !== 1 ? 'none' : 'block'\\\" class=\\\"rgba-text\\\">\\n <div class=\\\"box\\\">\\n <input type=\\\"number\\\" pattern=\\\"[0-9]*\\\" min=\\\"0\\\" max=\\\"255\\\" [text] [rg]=\\\"255\\\" [value]=\\\"rgbaText?.r\\\" (keyup.enter)=\\\"onAcceptColor($event)\\\" (newValue)=\\\"onRedInput($event)\\\" />\\n <input type=\\\"number\\\" pattern=\\\"[0-9]*\\\" min=\\\"0\\\" max=\\\"255\\\" [text] [rg]=\\\"255\\\" [value]=\\\"rgbaText?.g\\\" (keyup.enter)=\\\"onAcceptColor($event)\\\" (newValue)=\\\"onGreenInput($event)\\\" />\\n <input type=\\\"number\\\" pattern=\\\"[0-9]*\\\" min=\\\"0\\\" max=\\\"255\\\" [text] [rg]=\\\"255\\\" [value]=\\\"rgbaText?.b\\\" (keyup.enter)=\\\"onAcceptColor($event)\\\" (newValue)=\\\"onBlueInput($event)\\\" />\\n <input *ngIf=\\\"cpAlphaChannel!=='disabled'\\\" type=\\\"number\\\" pattern=\\\"[0-9]+([\\\\.,][0-9]{1,2})?\\\" min=\\\"0\\\" max=\\\"1\\\" step=\\\"0.1\\\" [text] [rg]=\\\"1\\\" [value]=\\\"rgbaText?.a\\\" (keyup.enter)=\\\"onAcceptColor($event)\\\" (newValue)=\\\"onAlphaInput($event)\\\" />\\n </div>\\n\\n <div class=\\\"box\\\">\\n <div>R</div><div>G</div><div>B</div><div *ngIf=\\\"cpAlphaChannel!=='disabled'\\\" >A</div>\\n </div>\\n </div>\\n\\n <div *ngIf=\\\"!cpDisableInput && (cpColorMode ||\\u00A01) === 1\\\" class=\\\"hex-text\\\" [class.hex-alpha]=\\\"cpAlphaChannel==='forced'\\\"\\n [style.display]=\\\"format !== 0 ? 'none' : 'block'\\\">\\n <div class=\\\"box\\\">\\n <input [text] [value]=\\\"hexText\\\" (blur)=\\\"onHexInput(null)\\\" (keyup.enter)=\\\"onAcceptColor($event)\\\" (newValue)=\\\"onHexInput($event)\\\"/>\\n <input *ngIf=\\\"cpAlphaChannel==='forced'\\\" type=\\\"number\\\" pattern=\\\"[0-9]+([\\\\.,][0-9]{1,2})?\\\" min=\\\"0\\\" max=\\\"1\\\" step=\\\"0.1\\\" [text] [rg]=\\\"1\\\" [value]=\\\"hexAlpha\\\" (keyup.enter)=\\\"onAcceptColor($event)\\\" (newValue)=\\\"onAlphaInput($event)\\\"/>\\n </div>\\n\\n <div class=\\\"box\\\">\\n <div>Hex</div>\\n <div *ngIf=\\\"cpAlphaChannel==='forced'\\\">A</div>\\n </div>\\n </div>\\n\\n <div *ngIf=\\\"!cpDisableInput && (cpColorMode ||\\u00A01) === 2\\\" class=\\\"value-text\\\">\\n <div class=\\\"box\\\">\\n <input type=\\\"number\\\" pattern=\\\"[0-9]*\\\" min=\\\"0\\\" max=\\\"100\\\" [text] [rg]=\\\"100\\\" [value]=\\\"hslaText?.l\\\" (keyup.enter)=\\\"onAcceptColor($event)\\\" (newValue)=\\\"onValueInput($event)\\\" />\\n <input *ngIf=\\\"cpAlphaChannel!=='disabled'\\\" type=\\\"number\\\" pattern=\\\"[0-9]+([\\\\.,][0-9]{1,2})?\\\" min=\\\"0\\\" max=\\\"1\\\" step=\\\"0.1\\\" [text] [rg]=\\\"1\\\" [value]=\\\"hslaText?.a\\\" (keyup.enter)=\\\"onAcceptColor($event)\\\" (newValue)=\\\"onAlphaInput($event)\\\" />\\n </div>\\n\\n <div class=\\\"box\\\">\\n <div>V</div><div>A</div>\\n </div>\\n </div>\\n\\n <div *ngIf=\\\"!cpDisableInput && (cpColorMode ||\\u00A01) === 1\\\" class=\\\"type-policy\\\">\\n <span class=\\\"type-policy-arrow\\\" (click)=\\\"onFormatToggle(-1)\\\"></span>\\n <span class=\\\"type-policy-arrow\\\" (click)=\\\"onFormatToggle(1)\\\"></span>\\n </div>\\n\\n <div *ngIf=\\\"cpPresetColors?.length || cpAddColorButton\\\" class=\\\"preset-area\\\">\\n <hr>\\n\\n <div class=\\\"preset-label\\\">{{cpPresetLabel}}</div>\\n\\n <div *ngIf=\\\"cpPresetColors?.length\\\" class=\\\"{{cpPresetColorsClass}}\\\">\\n <div *ngFor=\\\"let color of cpPresetColors\\\" class=\\\"preset-color\\\" [style.backgroundColor]=\\\"color\\\" (click)=\\\"setColorFromString(color)\\\">\\n <span *ngIf=\\\"cpAddColorButton\\\" class=\\\"{{cpRemoveColorButtonClass}}\\\" (click)=\\\"onRemovePresetColor($event, color)\\\"></span>\\n </div>\\n </div>\\n\\n <div *ngIf=\\\"!cpPresetColors?.length && cpAddColorButton\\\" class=\\\"{{cpPresetEmptyMessageClass}}\\\">{{cpPresetEmptyMessage}}</div>\\n </div>\\n\\n <div *ngIf=\\\"cpOKButton || cpCancelButton\\\" class=\\\"button-area\\\">\\n <button *ngIf=\\\"cpCancelButton\\\" type=\\\"button\\\" class=\\\"{{cpCancelButtonClass}}\\\" (click)=\\\"onCancelColor($event)\\\">{{cpCancelButtonText}}</button>\\n\\n <button *ngIf=\\\"cpOKButton\\\" type=\\\"button\\\" class=\\\"{{cpOKButtonClass}}\\\" (click)=\\\"onAcceptColor($event)\\\">{{cpOKButtonText}}</button>\\n </div>\\n</div>\\n\", encapsulation: ViewEncapsulation.None, styles: [\".color-picker{-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;background-color:#fff;border:1px solid #777;cursor:default;height:auto;position:absolute;user-select:none;width:230px;z-index:1000}.color-picker *{box-sizing:border-box;font-size:11px;margin:0}.color-picker input{color:#000;font-size:13px;height:26px;min-width:0;text-align:center;width:0}.color-picker input:-moz-submit-invalid,.color-picker input:-moz-ui-invalid,.color-picker input:invalid{box-shadow:none}.color-picker input::-webkit-inner-spin-button,.color-picker input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.color-picker .arrow{border-style:solid;height:0;position:absolute;width:0;z-index:999999}.color-picker .arrow.arrow-top{border-color:#777 transparent transparent;border-width:10px 5px;left:8px}.color-picker .arrow.arrow-bottom{border-color:transparent transparent #777;border-width:10px 5px;left:8px;top:-20px}.color-picker .arrow.arrow-left-top,.color-picker .arrow.arrow-top-left{border-color:transparent transparent transparent #777;border-width:5px 10px;bottom:8px;right:-21px}.color-picker .arrow.arrow-right-top,.color-picker .arrow.arrow-top-right{border-color:transparent #777 transparent transparent;border-width:5px 10px;bottom:8px;left:-20px}.color-picker .arrow.arrow-bottom-left,.color-picker .arrow.arrow-left,.color-picker .arrow.arrow-left-bottom{border-color:transparent transparent transparent #777;border-width:5px 10px;right:-21px;top:8px}.color-picker .arrow.arrow-bottom-right,.color-picker .arrow.arrow-right,.color-picker .arrow.arrow-right-bottom{border-color:transparent #777 transparent transparent;border-width:5px 10px;left:-20px;top:8px}.color-picker .cursor{border:2px solid #222;border-radius:50%;cursor:default;height:16px;position:relative;width:16px}.color-picker .box{display:flex;padding:4px 8px}.color-picker .left{padding:16px 8px;position:relative}.color-picker .right{flex:1 1 auto;padding:12px 8px}.color-picker .button-area{padding:0 16px 16px;text-align:right}.color-picker .button-area button{margin-left:8px}.color-picker .preset-area{padding:4px 15px}.color-picker .preset-area .preset-label{color:#555;font-size:11px;overflow:hidden;padding:4px;text-align:left;text-overflow:ellipsis;white-space:nowrap;width:100%}.color-picker .preset-area .preset-color{border:1px solid #a9a9a9;border-radius:25%;cursor:pointer;display:inline-block;height:18px;margin:4px 6px 8px;position:relative;width:18px}.color-picker .preset-area .preset-empty-message{font-style:italic;margin-bottom:8px;margin-top:4px;min-height:18px;text-align:center}.color-picker .hex-text{font-size:11px;padding:4px 8px;width:100%}.color-picker .hex-text .box{padding:0 24px 8px 8px}.color-picker .hex-text .box div{clear:left;color:#555;flex:1 1 auto;float:left;text-align:center}.color-picker .hex-text .box input{border:1px solid #a9a9a9;flex:1 1 auto;padding:1px}.color-picker .hex-alpha .box div:first-child,.color-picker .hex-alpha .box input:first-child{flex-grow:3;margin-right:8px}.color-picker .cmyk-text,.color-picker .hsla-text,.color-picker .rgba-text,.color-picker .value-text{font-size:11px;padding:4px 8px;width:100%}.color-picker .cmyk-text .box,.color-picker .hsla-text .box,.color-picker .rgba-text .box{padding:0 24px 8px 8px}.color-picker .value-text .box{padding:0 8px 8px}.color-picker .cmyk-text .box div,.color-picker .hsla-text .box div,.color-picker .rgba-text .box div,.color-picker .value-text .box div{color:#555;flex:1 1 auto;margin-right:8px;text-align:center}.color-picker .cmyk-text .box div:last-child,.color-picker .hsla-text .box div:last-child,.color-picker .rgba-text .box div:last-child,.color-picker .value-text .box div:last-child{margin-right:0}.color-picker .cmyk-text .box input,.color-picker .hsla-text .box input,.color-picker .rgba-text .box input,.color-picker .value-text .box input{border:1px solid #a9a9a9;flex:1;float:left;margin:0 8px 0 0;padding:1px}.color-picker .cmyk-text .box input:last-child,.color-picker .hsla-text .box input:last-child,.color-picker .rgba-text .box input:last-child,.color-picker .value-text .box input:last-child{margin-right:0}.color-picker .hue-alpha{align-items:center;margin-bottom:3px}.color-picker .hue{background-image:url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJYAAAAQCAYAAAD06IYnAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4AIWDwkUFWbCCAAAAFxJREFUaN7t0kEKg0AQAME2x83/n2qu5qCgD1iDhCoYdpnbQC9bbY1qVO/jvc6k3ad91s7/7F1/csgPrujuQ17BDYSFsBAWwgJhISyEBcJCWAgLhIWwEBYIi2f7Ar/1TCgFH2X9AAAAAElFTkSuQmCC\\\");direction:ltr}.color-picker .hue,.color-picker .value{background-size:100% 100%;border:none;cursor:pointer;height:16px;margin-bottom:16px;width:100%}.color-picker .value{background-image:url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJYAAAAQCAYAAAD06IYnAAACTklEQVR42u3SYUcrABhA4U2SkmRJMmWSJklKJiWZZpKUJJskKUmaTFImKZOUzMySpGRmliRNJilJSpKSJEtmSpIpmWmSdO736/6D+x7OP3gUCoWCv1cqlSQlJZGcnExKSgqpqamkpaWRnp5ORkYGmZmZqFQqsrKyyM7OJicnh9zcXNRqNXl5eeTn56PRaCgoKKCwsJCioiK0Wi3FxcWUlJRQWlpKWVkZ5eXlVFRUUFlZiU6no6qqiurqampqaqitraWurg69Xk99fT0GgwGj0UhDQwONjY00NTXR3NxMS0sLra2ttLW10d7ejslkwmw209HRQWdnJ11dXXR3d9PT00Nvby99fX309/czMDDA4OAgFouFoaEhrFYrw8PDjIyMMDo6ytjYGDabjfHxcSYmJpicnGRqagq73c709DQzMzPMzs4yNzfH/Pw8DocDp9OJy+XC7XazsLDA4uIiS0tLLC8vs7KywurqKmtra3g8HrxeLz6fD7/fz/r6OhsbG2xubrK1tcX29jaBQICdnR2CwSC7u7vs7e2xv7/PwcEBh4eHHB0dcXx8zMnJCaenp5ydnXF+fs7FxQWXl5dcXV1xfX3Nzc0Nt7e33N3dEQqFuL+/5+HhgXA4TCQS4fHxkaenJ56fn3l5eeH19ZVoNMrb2xvv7+98fHwQi8WIx+N8fn6SSCT4+vri+/ubn58ffn9/+VcKgSWwBJbAElgCS2AJLIElsASWwBJYAktgCSyBJbAElsASWAJLYAksgSWwBJbAElgCS2AJLIElsP4/WH8AmJ5Z6jHS4h8AAAAASUVORK5CYII=\\\");direction:rtl}.color-picker .alpha{background-image:url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJYAAAAQCAYAAAD06IYnAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4AIWDwYQlZMa3gAAAWVJREFUaN7tmEGO6jAQRCsOArHgBpyAJYGjcGocxAm4A2IHpmoWE0eBH+ezmFlNvU06shJ3W6VEelWMUQAIIF9f6qZpimsA1LYtS2uF51/u27YVAFZVRUkEoGHdPV/sIcbIEIIkUdI/9Xa7neyv61+SWFUVAVCSct00TWn2fv6u3+Ecfd3tXzy/0+nEUu+SPjo/kqzrmiQpScN6v98XewfA8/lMkiLJ2WxGSUopcT6fM6U0NX9/frfbjev1WtfrlZfLhYfDQQHG/AIOlnGwjINlHCxjHCzjYJm/TJWdCwquJXseFFzGwDNNeiKMOJTO8xQdDQaeB29+K9efeLaBo9J7vdvtJj1RjFFjfiv7qv95tjx/7leSQgh93e1ffMeIp6O+YQjho/N791t1XVOSSI7N//K+4/GoxWLBx+PB5/Op5XLJ+/3OlJJWqxU3m83ovv5iGf8KjYNlHCxjHCzjYBkHy5gf5gusvQU7U37jTAAAAABJRU5ErkJggg==\\\");background-size:100% 100%;border:none;cursor:pointer;direction:ltr;height:16px;width:100%}.color-picker .type-policy{background-image:url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAAgCAYAAAAffCjxAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAACewAAAnsB01CO3AAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAIASURBVEiJ7ZY9axRRFIafsxMStrLQJpAgpBFhi+C9w1YSo00I6RZ/g9vZpBf/QOr4GyRgkSKNSrAadsZqQGwCkuAWyRZJsySwvhZ7N/vhzrgbLH3Ld8597jlzz50zJokyxXH8DqDVar0qi6v8BbItqSGpEcfxdlmsFWXkvX8AfAVWg3UKPEnT9GKujMzsAFgZsVaCN1VTQd77XUnrgE1kv+6935268WRpzrnHZvYRWC7YvC3pRZZl3wozqtVqiyH9IgjAspkd1Gq1xUJQtVrdB9ZKIAOthdg/Qc65LUk7wNIMoCVJO865rYFhkqjX6/d7vV4GPJwBMqofURS5JEk6FYBer/eeYb/Mo9WwFnPOvQbeAvfuAAK4BN4sAJtAG/gJIElmNuiJyba3EGNmZiPeZuEVmVell/Y/6N+CzDn3AXhEOOo7Hv/3BeAz8IzQkMPnJbuPx1wC+yYJ7/0nYIP5S/0FHKdp+rwCEEXRS/rf5Hl1Gtb2M0iSpCOpCZzPATmX1EySpHMLAsiy7MjMDoHrGSDXZnaYZdnRwBh7J91utwmczAA6CbG3GgPleX4jqUH/a1CktqRGnuc3hSCAMB32gKspkCtgb3KCQMmkjeP4WNJThrNNZval1WptTIsv7JtQ4tmIdRa8qSoEpWl6YWZNoAN0zKxZNPehpLSBZv2t+Q0CJ9lLnARQLAAAAABJRU5ErkJggg==\\\");background-position:50%;background-repeat:no-repeat;background-size:8px 16px;height:24px;position:absolute;right:12px;top:218px;width:16px}.color-picker .type-policy .type-policy-arrow{display:block;height:50%;width:100%}.color-picker .selected-color{border:1px solid #a9a9a9;border-radius:50%;height:40px;left:8px;position:absolute;top:16px;width:40px}.color-picker .selected-color-background{background-image:url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAAh0lEQVRYR+2W0QlAMQgD60zdfwOdqa8TmI/wQMr5K0I5bZLIzLOa2nt37VVVbd+dDx5obgCC3KBLwJ2ff4PnVidkf+ucIhw80HQaCLo3DMH3CRK3iFsmAWVl6hPNDwt8EvNE5q+YuEXcMgkonVM6SdyCoEvAnZ8v1Hjx817MilmxSUB5rdLJDycZgUAZUch/AAAAAElFTkSuQmCC\\\");border-radius:50%;height:40px;width:40px}.color-picker .saturation-lightness{background-image:url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAOYAAACCCAYAAABSD7T3AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4AIWDwksPWR6lgAAIABJREFUeNrtnVuT47gRrAHN+P//Or/61Y5wONZ7mZ1u3XAeLMjJZGZVgdKsfc5xR3S0RIIUW+CHzCpc2McYo7XGv3ex7UiZd57rjyzzv+v+33X/R/+3r/f7vR386Y+TvKNcf/wdhTLPcv9qU2wZd74uth0t1821jkIZLPcsI/6nWa4XvutquU0Z85mnx80S/ZzgpnLnOtHNt7/ofx1TKXcSNzN/7qbMQ3ju7rNQmMYYd/4s2j9aa+P+gGaMcZrb1M/tdrvf7/d2v99P9/t93O/3cbvdxu12G9frdVwul3E+n8c///nP+2+//Xb66aefxl//+tfx5z//2YK5Al2rgvf4UsbpdGrB52bAvArXpuzjmiqAVSGz5eDmGYXzhbAZmCrnmzddpUU+8Y1dAOYeXCtDUwVwV7YCGH6uAmyMcZ9l5vkUaBPGMUZ7/J5w/792/fvv9Xq93263dr/fTxPECeME8nK5jM/Pz/HTTz/dv337dvrll1/GP/7xj/G3v/1t/OUvfwkVswongjdOp9PzH3U3D3zmWGnZVXn4jCqs7wC2BKP4/8tAzkZsoWx6XrqeHZymvp4ABCBJhTQwKfDT8gzrZCIqi5AhiACjBfEB2rP8/X63MM7f6/V6v9/v7Xa7bYC83W7jcrlsVHIq5ffv30+//fbb+OWXX8ZPP/00/v73v4+ff/75JSvbeu+bL2WMMaFbAlpBNM85QX+ct6qoSqkPAwuQlBVKqGNFSUOAA3Bmu7gC5hNOd15nSwvAOUW7C4giUCV8Sgn5L9hNFIqTsp0GxI0ysioyjAjkY/tGJVEpz+fz+OWXX+7fv38//f777+Pbt2/j119/HT///PP49ddfx8fHRwrmTjV779EXu2px2xhjwtdJZQcAWQIPLPISsMJaSwiD8gzIKrwSyATE5j5nAbR5c1dBUwBlsEWW0h6LqiYsqFPAQxCyRZ3wOSARxmlXMX5k64pQfvv27f75+dk+Pj5OHx8f4/v37+Pbt2/jt99+G9++fRsfHx/jcrmUFLO31gYDWblxRIs/TqfT7ousxJsAxXA2Gc7TA9XdgfdoHbFsj76X2+1WArgI1ageGwA3qupqoHsmcbI6Fu93quggFa9d7LeDtgKfAFHBJ+NEByIkcJ5KervdTmhhGcgJJSZ5vn//fj+fz+18Pp8+Pz/H5+fnmGD+/vvv4/v37+Pj42N8fn6O2+1Ws7JjjP6wraMI5E4RZ8x2vV5TSwkquotV7/d7Tz6HFWsD/qNcdw0CQ3q/321c686TwDVIdbuy73zNldhSHb8I2klZznm+InBS4U6n0302aBFsLhHDAKJVJVglfI9jhvu53W53sLANYNxAiDA6MCeUHx8f9+v12i6XS7tcLqcZW57P5yeY8/fz83Ocz+fnsSmYUyknWEG85WBst9stzSLyMdfr9Qi08iY15UZ0LlDGLhR3o5zK2j7OPUTD0E+nU3tk7Xb/16NFbhloAMuY1zjLUOO3BKeIDe+Z8s3/J4gFo4TM5jPmuRg28foUKKVSwo16TgA5npywcWLHgYl/Pz8/73/605/ab7/91m63W7tcLie0sZj4mao5gTyfz88E0f1+j8EcYzwTPEG2cqjyfHNF0M8fuqEiaOVnRzZZQNh5fwQyHg/HDGfJo89Q1zb/quu5XC6773I2XKfTqd/v9+d3wuqWva/YTdUdEV3fhIv/Viyps6YE3x3r43K5bJQS66zaxVGFsvd+//j4aF+/fm3fv39vt9utff36tf3+++/tdrudvn37ZuNLBaaCMgUzC+rZRiFowxUuJI8YMqcCp9Opq5vagaYU6lGJA1XQqejchw6Cj0Gw5nYBrGw01A2O206n04BGouNNyTfp/FwElhUey6nXrIKw7QQWddxuN2ldL5fL839gSPF8ahu/JvBO48CPSuqMf8Vp9/P53L58+dLu93s7n8/tfr8/39/v9/b5+TkhPJ3P56mQ436/j+/fv+/iSgbzer0+AZx/5+88bv6OMda6S5z6kd21fYC9dxv7cIJJ2d9AOS30fPMzyHiTM8B4DF6XUlYHp4KQW3W+1t77MNB1vGHxWq7Xa7vf78+y5/N5A+H1et29xuP5dbYtyaRu4AksbPq6936fjRzXRxBbPr/b+b18+fKljTHaBBBfn8/n0/1+H1++fBnn8zm0sB8fH5u4cr5GuBhMVk0EEn9RsctgVhM+ixlJtMA23R8B6yysAstBOgFXIKKCMIgToMqNEu2fYMH7ztc732dQKkCj1ytAZtY0Kx8pIr8GGJ+AT3V+2Hirhl++fBmXy2Wz73w+b17P8p+fn8/tUwGVleVkTyUb68DkfayWY4zxNRihU4EpLJPZVrK+u7J4/mgfKqeLW9X2REWlItL1diynbDDb3+jXgYjQqn0rrxWc+NkILP7F7xIbMvx7vV53x40xnlbWJF12ZSag/N0pW6t+ZzmOMzHjajKwDfond78zYTdfq18up97zr2q8v3IioBprRtBl0EZ9og5WBRGOdOHjIjXF7UotFbgOWnXzIJyzYvjG5IYgsmMOxHkz8OsMSrVNWeq5T8DaOcbEv1Od5rbs9aO7YvMet63EkF++fMExq+MRl4/L5bLZN/+ez+fnZ6KazuMqXSQVO5spJXflHAIzes/xJseckRJiDMog9d6VfRrqXMr6KpVV27jRwJacGovOAM1zMdQMnwK1AubK63kdCChvI1C7g0z9nf/D+Xze2Vj8H7Gx4P9duQlsYCrqyN8XqG3Hm/10Oj3jw/n+crlstuM+jPmmxT2dTuPz83Pzt2pn1XsEHX/bnPaVqVmh0xwOt0o6XLLAHePUU203wHfcrspCwmV3TryB5s0Mseeg97x/BwzCjBlbB+pRAPla0BVQuT6V6QHdBlj3d0KG147b+DqxQeUymDO43W4dQar+TIjwmAd0z8/h65vf0/yLv3Pb5XLpru/ydDo9s7ET0I+Pj6dKK9VUEIeKWQWPAOrJ8LKd4vE+t91Y3e7UFlWatg2VwJnb+HPmtvm/sfK59/OaWF3x/eP1UPHvA5DDYDpYXfb0drv1V2DkBkxtw/tEWVVlXWdC9pFYs5/jfh9dS/16vW7s6lTG+TfqsxSJHxkXXq/Xdr1eu4LsfD6P3vsT3N77DkL+zPm5jSdKL4zR3AxQd6rHkLkYlSowsrq7znzu6wSwdsMJOXmA5fBcjxtgMGBYHlr5zokhtsMCTgXLQOW4XC6dEyEMprL8mAQzXRgduix2yZzorxkYsDn3hB1VeMLGsXsVtgl2pW8S3svk0vw7R4hNaHvv4cACl5HFzwIH0Kc6zu4XjDPR/jpAVxWzO1Xk2DDb3vTcxeGU1iWZHkmIDWziWKvirCJ4Dravs6IJ/GG6cTqWdXDy+fArQDVVkLqkVjAoZIITdmmIqXwqa95N3+MGYoZQdRVNO53Y1xRkhO16vY7eu507Ca9lJnbGpxOemQhSw/AQsmmp5zU9BiU8G6wvX76M6/U6Pj4+do0Bz4CpgiknTUeDqwlKBmg3u4OVjrZ1A+rAcgaejWq6eJCvCYFDONSwOgHX4EQRw8lxbzDOdEK6gZ3Hk1b+8g2o1JFtKXyv/fEdTXuWjWXdAZiBp6ADeDrCFiim7B6ZFneeI7Gvm/PMkUDX67W7xI8b0D7/v8dA9qfN5oaCf74WZjH0mf1cmfY1Y0JUFmVrTWu8uzkNcLtEj7u5FXBTkfC6GOA5q8YMxO8KVvF6sAVGdcrUbsKODcQKkLMOMdmlxum642YrPm26AlhZW1YB1R+rrGswE8TaYAWeUMxdf+WjwSvZ2Ef3ytOyfn5+PpVPAaqOn43MtNBqvmjjxbjM4lZjZY4gqNMI5ktaW/sYKNwS+9lFQzGihmMCKPa7+Z0V6Eb0GRmobtpX8JljWu5FMLN5ja6hG9kwQgZqf5+1NH5UxzkFReCdWhJ8XdlGUkxO7HRlYRm4mVO43W7ter12TPJEw/rmEN3L5SKHIWZg9mz+pUoKOYq5bJTJdX2gme1UcxMZQFaEQIlHct32M+Y1BzGkGuzfiyAN9z+ugplZ1symCrDCYYkGxDTpI9RzBy0rHyeDUC1nWaeUaD9n4xkNyYMBDZtzZ3B++fJlY21XFDOcARJlabOyiS3uCpLI9jrZjCDkaVvcCCjwognKShWdzXZWlZMvVTgD8LpqlCLrqgbcB+qYwrgKYpT0ccCqbKyCValkEabn/FynogCrPKfqf51xJ7sGB2ZXcZmxoSOztjx300DZi7a0/2AIR0UlBag9SuDw6KcAzlaB7vHZvWpjK90dyrq6bKyDUZQbR0B05biLQkHIcSUmgIK+SwuqgHCnoio2RQU1yj+BnBy9pphVKLGyC7ZzFK1pxWK+E8IhVCWLN/uLtnUU4ayoYLoaANz8FdtaSvY4pV0BEW2ls61czqllBKpTyKgMAhrZ1cdc1RROtPmvWNkdcKZ7ZKxaWjiPLJMpp7OZKxA+rqG/oJLjxf0pnJlqLoDZo3gyU0mKGys2taKecj/d1C+rJSplBqlTyAqgR+D8KjKlmRL2gtUcAdCtsL+ijCNT1oqqqkH2OHEbG5sDFnUg5Aa+yLou2VU1ptj1S2ZQqv1ORZN9IWzRfgaRBxKoBE8UWyqlJFtrIc0AxNjSjed99CTY/XDfSzCz5M0IZoVEsWnPFNTsl8ooVC1TzbGgqFZNDSgVwKK+1sGDMKqxZCWGVMDysiEr1jVSQJUYwj5iHOlThdHt44SQg9CN+nl8D90NMIgAdgr46JqRiR9I8vRdFvbr17m/yxUMKjNLMiVUADwu2CWGhhi+F55TWM9M9cogzms1dnM4uOF/LAEYWdcqnM7yFmyq3IfwmOROd7Y1iFWtOjoY8To41mTV5IysgFFuRzsbWFGbNIIJCDv1dOo4lZG7jWBwRFtVTKuWyeCByJKOan8oZ3ep9XddNl0tDuaywLz9cXPYeDAA0SpkBO9sbVcTOVWldPv4uyzEkzxHtjvonHoSkFEWNoo1d8DhcQputd2ppNon4BzoAiJ1hBFQg0dVtdbGHHDQWushmNEQukLM2QO1G2Y8bgTXqFhcBJj7EjPgcPts8US8qPpPB/dXznOh5Z438tzH5ec6QgrOKrRRfKmysBmUDB+PhYabMlVPER+GCSITTzr7am2tArH3bgcEzPJm+cr5jJ4NnHNFDVrFXcI5Le9k5Jnw+bedbV+FfRzZIHaOOaOsLY0/7UGs58DjrGwKMIMFIGzOEW1/jGsdAtCN6hEAI4hBe9YXeRROBSVPAVPAqvIM5bx5hVKWAMP6zBRy3iescridVdFBinBxXDnG2GRY2XbCvp1lhvGtO9Bxu5h908XQu42lnSArMFdizMim8uwRCxPGnnOS8lwpnbOiDqTAjsrRN/PcoAScCbaACqVM40ylnjjTBs+bwWlAG23/UKbdkiwKWIQPGzWaczpoSlxPEj822cNWkpS7FyzsDrqpfgpG3jahw2vgbaSQAxuLWZYt7JzyNe8JoZpNAcvDFOdw0wqYT9AK1rZz/DdbSlLPp0ryIxgQJlK9AZlEq7IOXpohg9PIhrCng88JsOxiV4ZWAYfg4sikx/8ky2Z9l862uqwrfscIH8+ugTmVGyiddeVYUgEMn4GZzg14EwIsh9sx2cKKiWXReuOE5gzGOQgdlRKVVdlevqb279Xq0Qnsts2VDaBO0coezsruWtHApu6sKG4IBhN0aGU2kLrMKGRTN3HmbCDwKV14zvkMEDG4QfZVspVlaNU2mhc5TEZ3N1h/zqTheuLpW05ZWTGVjb3dbnNmxKZBnN8JqidaVLKAOyARNLS+MB54Z2+VaqoMLKroVBlngefnTPAcoHNWCSvlfA8CI0HEmBNBnBlXyMrzU7A7WVm94PPqQ2gmqKx+WDGsnvilmcSOBJqOK1nYyAIzuAyesq3UdSK3KfWcYKD95HmfYOU3qser2CtYEUA+FpfqdNvgPBZUBhDrGONRVlQsh8rLcaUCykHG0OOUwTlLBrsh5soEMGezi1E4HRVt1icp5wZEFXdibCkG8Y8vX75sbO4E0iom9z+hjSiOfy3DhpXItpVhE+UGQdvoWjtChmrGHf4YAzKgBNnGtuJxFCeGdhUAfQLLK8kBYAP6gvFJZajMG3Xkycy8KuC0q4Eyymwtwdxdv2M0mIBtK0LKnf640j00Auq4gUkdWGlhs22qJc6dZCsL19oxnlTJG4SYVRIGpD8TPFBuM6OElbS1pldid4mGAyN6ZIupbC5bXJN9fdpbThSxLUaI8IG1XIYBxW3Tjs6KQosKcxfxcQmdnwRGM10GnFcCy2XYunLMyAkdgk4mePiczsLygthcBut6goOqS7YVFXADLjaosB6s6ofcZWAZSIRYqSUkizYwttYab3vUOQ9w2HRxIIg8WwRVeE68xi4UtL3zRphxplzwuZrcqYCq1I3jPI5dnJIygEohMbPqVJSzrwzxBJTs5zN+ReUSgxikPQVF3JVBeNQxbHENrEMNvEdFZVV9lH9+ORGEsNZQpyTNc4C3AG7XF4ngzq+DrO2zbuaaOXgdaFcdkEotoSFBVX2qJ0C8OWZeG4KGlpghA0XfTOPCqV2qqwQ26QWfF2PMLhI2w1lVAa2aPsYd0za25MQRwgcZN6uQDCi+ZxiD4XEM2kZxOT41FnZnaRlcpZouzlRqqdbQVWopQoSB58RV50lBNrHi/AwXS5LrwDVlpY3Fc3ByiYGc52Trist6kOXdwInAQtJpp5QchyaquYOV7Su+fxVMaV3dc0RE2S6mUY0gLt2pMcYqrKIQ9w2l1gpQUMtQYcmmbt5DTNxdhnUCjQqtbK9SUSzvrC0mmhhE1e2FS2+oxypy/ZASutkmtjx3vcBC24PX65nbqkBCRhfjS9kIYPnee8cMagVOhI/3T1fAmdtAWZsCswTJCkQVNa0qWKSKPOpHAUhD9DrbVcyoYkwqhvh17vYAayXLQyKGYdxlUDFp494rBXRjYgO17DDYetNIUj/ezp6S0lnlpEwsWmJMkOwsKXeZKEAjIHn0EQJISaRBcO6UMINz7p/bEjjnw4ft+xmDvksxX4G2rIris7qaeKwAFMP2Oi7n4criuZwtpSUwpfLxSnORSrIqusc5ZFaXysqRWjiZ2DyAWEIL35tVSoQElFACjOeGGSE7AHEQgdo/LSvCOgGBvkxsmDbvlS3Fp5vhaB2TAGqRKrKKMrhLVpaGzEVjZ0OQxDhaCTA+QyRR1d15aQzrJntL3RibsipjG6jlgL4yqbS0sNYg1e84vhbBVrElK64CUcWYXDfKxhpIuxiVJZUxsbMy/uRBKTNRQ4kQ3LdRYLS0rJjRPlTPqY6gdJsEDc+aQXAn+HgsNUCbRuF0Oj0zwnA7bWDkbhO5Ens00qeQhS1laBMl5M/cAaxsLF8rKyql+Tf7ELLEGu/ixiimdCvo0TjfpjKwaggen4eh5v7LokLKbLuyvHhcZG8dhGrEDx7Hg93ZppJF7qBqO3iVveXEDQNInzeoe8Yq6ePaZBZ2JviM3W2UAGotekRCAGq4EkF1X3DOnR11yRsBL1tRa0PVcZiNFXZ2c34FskvomInQQ6lzpJoZbJxk43NwKJFBquJSsrByHydxKOnTxQASBmS3j+JMnsHSla3Ec6K9VWoJVn9zfjwOM7hqYAAqJQwE2a3nA48J2QGegRkpZNivSY+ys3EkKd4oJIwsvIHl3cWgLt5k4NH6OmtLWdpurOkwEMupYc7eMtDRhOcI2ui5JhVIzXzLyto/GAPuZoyo8wkoduVgJglCt7OhGbgID4Mq4si+63zUS1FuFFXFlqyaj2emHlLMcBqYu0FMuR28BbB7lOxRMSiCQXFhCKuwkhZ+pYDiGSgbsKKV8MiSRsuHSIWM9rklRiIlZZuqXjsQK8ooYJMgq3JKWVkhHbhsVxFUzthOWPkYijcbx54IKsSdT+uLr3crGKyoYgFiGR9iBk4kfloUX+JIlQRQqabmpgnhqtpQpb6RVQ1WH5DnrS4hEoGZqaerQ2dhFbz8XePxShmDbo70eISjoorO2vK8SJXI4SUmEU4zWKDzUDtWTYw7xXlbSTEj4FRg7zKnKoGRALv0Gs9Tgc1BpCywGZRQAtqVz2xrBcAMzEpfZwFSa2G5W0QBFjSMapWAEFa3HcGN7CxDzECyIkJ97qwrqWNTWVo876PPsjPkj2wvgroM5lLZKMETKVql/CvnWVFiFa/SzJUQwkoZsr67Y6vlSRV3/2tmNTOY3vnaxYwMuoPKqdzR1w7IqHymlPxaAThfU7Ko2ZXYj4AYJHL+kNdKwRQYESTRa5fsUZ/rVC1TMTyWVyYoqNtuzaHsMyv2tvoarxdfqwYgU1axFo/cnql1FGsqK+uAROV8BX4GU8WcZTATi2q7Qcyi0O0V+GhWBMNRUkn8H1SsWVE5By3Gi0ECqUeJoBfAtDa4amkdXG37AGP5Ggeb84p7UazpoKRzdFzeQ8HkoHGxprKy/Hpm5t12p47J6xTYDEz7uINEXSuxYXvFskYAc+ySxH9sf5ftKzU6IbwVBcUGg5e5FMCEXSErZR0wGayV19woM9guPjTqJdVTqR4uE4nJnLldWVkECCZLd2VLF+xtamex7IpiriSDUpvrpn9lrwGMCHyppMH+ps6LILsuFGUj1XEOXiqbqSHPUKnClpWV68kqtURVNDY4TNaocykoYeTU5ngGEQa/S1DnnE4AeXMcKjHPAmFVjCBENaeyLVNHfr3px8xUstJ94hIpfH4HKE/eDaArK6lSyVVFbdt1gxTIVk3pppVlFXi4pEhVBTObquohU85MLXn1iahvUkHJjSCMc01tLFveVVBx0DodM6jftCu7DOtIzYxrc0qp1JGP2ayYFz2Gb6HvMrO8cnGtV6Gjm3uImSfD2GpWK6uowbZGMxFKQCo1pOMtcMXFpRst+hXGoAomF3sSTBGgTglbBKWwsQ3tZqaYSp0Z1CimRDWFcCJUPYJ00BI5FkKYNoifuQxmN88SWVXWLMaUqqqgC0BmQJR6sk3u9NCf6jYLXxAfqsYEgVLAhRY2AtgtflZNFmFyhxdrLkAdWlk4D88M2ixHyepIdhMHrG/iR1ZGtq0MGpbDbRPYOXeSY1M6Ny4ZstvGSktK+XbFPATj2D371saPEsAMXhXrsZ0km/XStkhhMyBfsa6uXFZe2VCe+YMr1+GKgwrQyNYq1VRrB+EizAow6NsdNKcyVEkYeM73ys6q4kAHp6BiFklTkIrVC5oYV7uzwOGCz4UJ0Stq2lWMJy4wtb+RetL6tZFicnJmBw5UjCvXXMZVJX2MQkbf+XN5EWd78Vz8/JEsMZTBiKNzsm1inLRUQ74H4NidaqI68j5sAFgxcRveC7ieLJXfQYxjZZ2CsiWFewZXJmBIlZ1tdtrX4hSuateKso/RZOtOKW2nmq1oTzeK6dRWAWu2NRVb4hq0SXm1GvtugHrbr5IXqmSktg5CuDE2MSlPwsY5kNE2Wp3AqiZbWVLAxiBF+2iBZbuNj6MB6rsMLC7FyasaYDyo7KkoPyEtw3pEMXfPvxAJi2jAQQgjrz0rLIZSWZlIoNhwd5xK4AR9mYNjWAaLrnuImJeBVN9zBORObVvbr+mTTfFSEJLSRnHo7hEJoIi8MFqjxmvgmF5URZz4zLFgZZ8Ctu2X7ggVccKm9gVxIsOHqxXgNMKnFWZYnf1dBnOhayXq17QwFlWW09eNKyVJFmXqaONGA5aCegMbJ3UUkGY1ic3nKWgjq8qfVYGQG1gRt6rs62a6HiqqUOqdesK5NmX4nGofJoiE1d0dF9lVVkvT1/kEEaaCoYOwFpcVcoLM+7669PxC9rWqktH0sWUYld0VCpuBZ/stVRcGgy9WX2+U1Qthi9SzAqSxzZsy+OiFzBYnySGV6Gku44rD8BCOZBV3BvD5+AKRHNwMEsB6EzHnJpkTAeiUlEGkcECeB6GDZTp5YEJTlvdrknxYjTllMkfNtXwDjM7uVjK5JXUUn43rrqpK2jytaxHW0M5G8DC8rtHMYs7KSgduVQMGTYFqFvVS6rkD3sDJ46afdYFwoq11AOKCBLhvwoUgc8IGANycR6knZrdJPdsuxnyjfd3FovTlRMdEdtOl5CMV5EHsXQBis7TOwvIDZaGj2Vnpbh7cpK63VwYEMLwqbjzyl699sawFFkF1yqjUU31HfC6sW1ZFVFuXVXVgz9keEaw0ys1lWfm+azQAQSWA+hKYVfsZjPncAcUB9oIayy/UZXRNckDGji77GsWbvBo6tPrWPqOyVkBUq+INeqpzNdYs/u0ifh5qmpqIW+33JVSUcwY70KL4U9lYdU6ljtSls7lmfi9g3YzeQfVkaGFaV3ODCnaD2N8wsEDFklE3RzM3ZghdYkWHsszq70FIecnKkVkt8ezMzRq9bkGuKojRLBVSod3Y1yPqKgYW7JRQTPVyy5xIYLjOgxgT52RKJUY1dOrIiRd4futQx/A5AcSmEjz0vFWrkLzvbWAu9HOWbGgxFk1VNTpnBKk6TgwisI/HcxYXP1uAWO72ULFlBTq+aSu2VTUs6hrxM2CF+hEor1VIA9ZmFUaab1lSSgZsVs4sxzHlVLoJHr9H4DhONTkI1XC0/wiY2NoWAG5RlnHFnq6oLccpQddMuJ/O17JVA5OHLi0BqCztq7Y1++ucCd98qLI8MIHBV/cKjxQTme3hFBS3MyCqnDsuym2o80HjvFFTtrURmNaGJsmVahImjTsUXKtQZTAVs7Mvv8/+fzUrZAXcLJ6M4koe6XP0b6SmWWNDzyUpQ8bl+LtWx4tuqZ36cRYV3yuVxPNwvIiqiQCSmu7srgTzR6nkyhpCarXwFy1vGd5iP2cY06lFr5Njhhg1Y6+NB28ftbK83s8rf7kLJbKwDFPbLg25a0AdZJEiqr5phixKMDlRUtcssq1hriLqGoH+zeNgVm9OemjsETV8JdF0NHnkIFxWY1OB4Yrp7rtWJ7NgAAAPXklEQVQ3oNs5nplyVf8u2FoLu1JrHveaZWQjqAkshtFa2gzsSG3Zpkbvg3HafF9slPPlldjFlK80Gysm8Mr4MPhneNWENPGjAIpmilTPATdTRTXlCBYHYAQuPwA36xIpWtGN4q3Y2MhiGsUpuSSnlEJRD8PorC7CFYVw+F51qThgabxsTxWzCGY0ZSsb3lfqAy0OPNjNy8xiQQKsHYFQ2HBZVvVbBuq3m1oWKajqaonsM6uZUr6CjXWNZ0l5E3h3jURma6kP3MJIiy1Lm+kahQq41N2iZja5sjtlLYNZHZrH6qUGm4vMbDp6Rw2CFmvuyFkrBcCyMtFqBaECmsHoK9BZ2LA/lJcRqSaDqnaWbrZdGaz3DLgIvBln4woGztbyJGqslwxkhhHrTjTYFXCtOoKS8uLdofVdAbOylGU6nlYpXWZts4nXBq6WxJitMNokHUJnbnJplQm+aGpY2a5GMV2QD1hRubBPFKdumf5OHkLHz0F9luE5kjBjRa0nFE5CUGqHw32MmjZ6xkgINVnSnZ1VZStK2qKlRaLlQgK7uTq7JFXJwM+3SOEKyhZNI+tJ0I5qMYy9k2qJD7dVWdqKXa0CKNR0Ccjg+B2IYu2fcBZJZkMFgM11r0X92wilghFGgzVnexlqB7xL9mS29SiYUVY2nXOZjNBRsyDsQPRWW5hrZ4XcdC4HVWRbjgJr4sFofK5SzjQ7rhI1UebdPdEbj6sqIvTZQZ5va08rABsAW0UxeWytAk7A2KJ9ZpxzCioB24XFtYAeXYxr6anSqhLgppEqWbGwLunTgrV+IjWlL29ljaAl4EQMGsErp4apeZiquwRXLXAqOCeru32mmydc6oWTSWpFAGdzeTB8RTHVMEtlM90CbbQCYhPjq3egYr1FGdYIQjiuDGZ5zZ/AzobKGOyLxti6c4Rwtv2anyWlLICnlLhxJRXt6A5ebDBWFNONbxWZ2d02mnu4S9YECpeppV1zSWRBWxHYzVIv1CXSouwqqX3jBBBDZdYQbpTQW4ZQlS8r5kH4suSRmg2++3JN10x1PaAmEkmtYlEdeGpJEM6kOuCqCR22oSujj5IV2HdT0zj5prLKTjXFAPjdQlyq7xIBxAQP5yMczG4VxAKw0n6ilZ2QBce2pLulkuxxqnoIzFfgqyqjil9S1VNwBrFmeyeops8yOjZUybZdfS8CuaTIJumzs5tODaNtLpFDQ/PcJGweLhmeL1nB0KqiUDScsiUVD89Di3HtrKtSULw3RLiygZD+7sF8JTObgYsrGvDNUFRGl1iy0Ll1YkUc2aJYMog920I8qW6YDCg1Mqk0JHJFKXkbgbRreI+qpYNOZHrVcDUba7pjsphSJNtK6upgRNAVoOS0mugBeN4bIZgHhuPZ/s1ENaX6KsVr+YNrh1Nb7ipR0PE5zbNRegCbrHRUw6Yf07dLBJl1f8KB9as2V1nNqAsl62LBBhehwalerkHmB1JFIEZKSEusdl5JQj1nJlHXSCF342gJ9CYGrXelknJIXqVP8sD+qtplCR3XH2qfKq0ygMp+KnVkKxNlZ8m2YkIlVMiCnXUwl7qznBKSvQz3m3Pt6oQbXO5b5FixCh/fHxUQW/AEcK6zCNqKQnL9sywqmKuwvqSYzT/aPVNNpVyhvRW21aqciCsjdWvBwILUvh5VyCzbWoC1pJjJ680CWsl+udKB6T5RwG1mlohnlpbg47iz5U9ha0FGtmRLFYBtO99y97Ap0z+ZDTAog6kSLZsMHg/IFkkgp6CpvU2U0cYVSdnmkjwBdOmXbxTWNWzuIbipMioVxEckZEoahSOiy2M3K0jcC1LhVDwaqG0ZvkcWqCnrG4GIxykrqlbWdw6LQyBaZR8HmLRIhQWsHswD42ZXVLNkf9l+FlW0HVQ2lwFsC/Z1FdzlQR0KaPfo+Fdfu+/dwVRICu1CGR7AEIiAhc+AZUF0kOBaPxmUqg4i64vQnU4nFDYJ9Nz+1fVXveH9qmr+kPILx8oKcRV/BFbxbE0JMT0kSD4w6L/lNY8ocsqagVdU3A3MjxhxcGuqzsPH4irpaow1q6OyrVjvp9Npc59E91LldboYVzJWdimWfAW2SNEKcDaX2FmBLLA/uKxlmhh613Is1URQApbKfttwxL02q6Onx5pQxSbPojAg+v5hAnN6LHVRDXIsvKtRjiS0qJUyZTAXVbAK82ElFJWaQdVoqUC1Unt7BVaTQudM6SuqexjQJN4+0icaxv/utbKv83ETbT8H8gjcOKxOJmbUa6OOVXht3dFY6rHv9XoNzFLceEA1o8+pKm0LAHPHZ2rYKjFq0hfZFixsqHJgD3eD5n+U0kb1mFjXkn2lvMSSOsNE/CdIAKF0Sytq6urOHUN5gwg4GZosgbmggM5ucra2qrS2Ig1cbiBBcxYzgzUDNLCvL8GbZXNp6ORy3LmS+Kk83zRIAK6A1ioKa2I9NapIuiUFdfC9766PFZUtqUr6KbWk+zZU1a/ZrIXEztrjTOfz7hwKziCeXIaraHtbZIMz+2pGgazCmw4qWAFvEdhodYp0Xq0pV7G1YWYWbO4qhGq42+Z8BYtrLWvluNPpZAeaFFS1vubPgbgxsqcpnAaszBovKaFoDQ8BGtjfUOl4NAG2nmQV04feJgumvX2fsrQEWZghL0JnVdYkn3DOZIeRN86RqPWCmsvGVqEMRnwxQAxwS8EMYo3IzmY2+BCcLp4MKiuyuhImamlbZFcNoNl7tp+RHd18ZjQIRKyXdFRhN98/hyKqwXWNo7O1wiaXoHN108REZZWEq6grnIfjzeg8jdRf1XEL4kkXa5bBjKxoKaljBjeHlVxQ4GaycpW4lDOAKtnTxHAtOfzOtZwHAM7sqVXkV6yu6kap1nHkXKqWF/4XHqjenNKqBjpR3l1ch3Ejg1+EsgdQhsdG0B4FM9sWAVWpuAyiwTPleZxt9VyZVS2qXfReWqTAilpr9ApoWTjxymit7NwV4JTriZyOA9B0k7HFfULourmKYHVnRQvqGL5HMHdqFcR2qWpmcK6eTwx2dipWrviDilr+fKWq3OWRWdHKwA4eu8wjchbeRzFilqjjZN3ufCpfkJ0/scVpnYk6L0PI77lxdWCZ87WiWm7B/AGquQSnujGKsB8CJmiJq8q1pKIVWyqOiTK66r18BN8r74/AE71fdC3yPS2MxdOpnE1tlVxD9JmVOoggN+r4PjAXVFPa3Eg5jVJGFVUGNolH20GVrUB7BOySWq6WqYQdWR92pcFMYMwckbSgCKCqD67DiiWu1g8MQC9ByfcFqW1L+jL714qNCuznoSxt0da2gtWN1G8F0BK0NN0nuimelUF9dIdAfjO44UT3CjQLoUeLHJFTO3gmpRuIIOvwBQCbqNeo3qtZ9iF6xVK13GRlo4zqimq+CGdTiR1uRY8oqgE02hZBa79kZXPMquxRHKla2saZWN4mRqZUj0vLCKhkjKnqOQHNuSZVJoKvAqS1wpEquvWDC1B2ypwrCPsRMEPVTODMLJMDv6qeKXwi2JYV5Sq4qKyvgGsHCLiuj2jR59V8gMqSJ2FJZRXEHVRHj3sFPrct6OpqlW1GpatQdt0GvwfM6n63InsGVFhJGaBqgqqIV6IsXllZgySPq4R3bnt3wi5cv+cN2yqQLW1T95KYVsWWtKk4cB9W53WQQflQYR6Wl4HaJZjvVE0D5yvq+RKgZCs5qdBEP5sD94cAvQLlSgNaSMAtHx88BuNQ41zdFsX30zKbcs0MLD/ihkpQzl0wiTqKLTfbKmCmyYICnK0IbaieC4CG9iSyLQ7cIMGQwau6TKoq60Apl3WN40LZpca1CKKK9VQyyIEn8w0F8F6CL2h8o3ixGwC7s7EWzCOqmcApYxYD4jsAzVS0sl2t98pA7vrKophCVSonbYpgH6mvSn24pTBV4sdtV3BtMq5k82y+IADvUJ0uAlkCVTxIaPm+UNu/qkV4F1TzHXCGrXIAqItBKypqK99VtAOVs64O4ObX7pHLVCpYHcRmwvLR7TvYAKBBN58LGVzDuFz+hQbWgncQyCZAk+VbsPSouf93261iZgmfCpwRbAvqmSqriU2PwhjaoOyYqtIegVXViTsmyta6bGySpY3gyRrpIyAeaWDDxtpsXwKyalMDKNP7YBXMqEskUsi2uC8FNAPxAKTVfT1o6VzM0E0jF+1rWcUuHvdyg7vgoFplX8HpvHpMCOMRUPHzZkInsqlFKNX/EIO52E0SxSzOwob2VmRLW5D1XIU0rbgM1AzWgyC7fe8G7xUAK/taEBat7luqtyP7EmsaJQOj5F+mrnZfCuYCfBUAWwShyd6pMY/vAHG1UqOYpbI/gy5T0CMKm+UO3gFuC85dgfDVeguPDfITrIBLsLrcgdh3CFgFZjaKJ4Iv3F8ANEqvuxR1tVKOgLoCa1jxboBAkj6v7j/icFbA7f4rfRnQDLRViG13i0vqBQrYVqBbADZT0ZpiHoSzvQpopKIFS3sE1HfBWlHXd0H7LnArqvougMtljHBgZnh3Eoz/BKjLML4Z2Aq0+hEJr9jaVUBbvNzCIUiroC7AWmmFw4o5AK3MtB5VypZMSFgs05JyGVwlwBqsEGAAa2ZU1CjUexXGsE4rKriilBvFzOKKo3AuAroE6QFQU3u8YpNXwS5k+1TZt5UrwouN4KiUEw+k3ZWDp1RXHNRqXb21Ts39945yZSg3VnZFNQ9CF3XeZyr5DgBXKiwCMa2MxeTDYXgP1Fsf9QNKZc0k81RJk3r6EQ3rCmBVyLL75EjZ1pIVDHoFtiOAHoB0BdTVylqBsKKKS+AeBXJVLY+CXASuGvO/Auq7GuEjDfGKg1oKa1z/dmmi9I9SUGNhl0AtfulHAawoYrnSkmNXAVuGEhrEVXvUF+A5Ct2PqNOjDetyna4CmeUolmeXLN4Aq7C5Sj10Q7yjgl+t6CNxSRHmI5X+CpwreYB3Qfdqna4q21KdBuc4GoZsn49ZOOiVinwHqK9WzjvgeweEh2AU5+vtxZ9Cd9Wqkh49V18E5oj6vVyn0RStAyGIO5edXRKd5B0VGVXq2yr3xYp+5Ut+C4QJ4P1N339pQMjRejj4vb/Dcr6rQc3O/0rjmtZpeYCBiCHfCemRbNhbK/pNUPc3wfKy5f2D7OlL3/uPhve/oU4T0F8f+VNM2vyoiv0jK+KHQfdHq+0bncz4oz73/+Y6LbKw1o/5B7eOf1Rl/0du9B9tn/9bvrf/j+v0h6ttn2tp/r/4819y4/zv5391uvzzfwDifz6phT1MPgAAAABJRU5ErkJggg==\\\");background-size:100% 100%;border:none;cursor:pointer;direction:ltr;height:130px;touch-action:manipulation;width:100%}.color-picker .cp-add-color-button-class{background:transparent;border:0;cursor:pointer;display:inline;margin:3px -3px;padding:0;position:absolute}.color-picker .cp-add-color-button-class:hover{text-decoration:underline}.color-picker .cp-add-color-button-class:disabled{color:#999;cursor:not-allowed}.color-picker .cp-add-color-button-class:disabled:hover{text-decoration:none}.color-picker .cp-remove-color-button-class{background:#fff;border-radius:50%;box-shadow:1px 1px 5px #333;cursor:pointer;display:block;height:10px;position:absolute;right:-5px;text-align:center;top:-5px;width:10px}.color-picker .cp-remove-color-button-class:before{bottom:3.5px;content:\\\"x\\\";display:inline-block;font-size:10px;position:relative}\"] }]\n }], function () { return [{ type: ɵngcc0.ElementRef }, { type: ɵngcc0.ChangeDetectorRef }, { type: ColorPickerService }]; }, { handleEsc: [{\n type: HostListener,\n args: ['document:keyup.esc', ['$event']]\n }], handleEnter: [{\n type: HostListener,\n args: ['document:keyup.enter', ['$event']]\n }], dialogElement: [{\n type: ViewChild,\n args: ['dialogPopup', { static: true }]\n }], hueSlider: [{\n type: ViewChild,\n args: ['hueSlider', { static: true }]\n }], alphaSlider: [{\n type: ViewChild,\n args: ['alphaSlider', { static: true }]\n }] }); })();\n\nclass ColorPickerDirective {\n constructor(injector, cfr, appRef, vcRef, elRef, _service) {\n this.injector = injector;\n this.cfr = cfr;\n this.appRef = appRef;\n this.vcRef = vcRef;\n this.elRef = elRef;\n this._service = _service;\n this.dialogCreated = false;\n this.ignoreChanges = false;\n this.viewAttachedToAppRef = false;\n this.cpWidth = '230px';\n this.cpHeight = 'auto';\n this.cpToggle = false;\n this.cpDisabled = false;\n this.cpIgnoredElements = [];\n this.cpFallbackColor = '';\n this.cpColorMode = 'color';\n this.cpCmykEnabled = false;\n this.cpOutputFormat = 'auto';\n this.cpAlphaChannel = 'enabled';\n this.cpDisableInput = false;\n this.cpDialogDisplay = 'popup';\n this.cpSaveClickOutside = true;\n this.cpCloseClickOutside = true;\n this.cpUseRootViewContainer = false;\n this.cpPosition = 'auto';\n this.cpPositionOffset = '0%';\n this.cpPositionRelativeToArrow = false;\n this.cpOKButton = false;\n this.cpOKButtonText = 'OK';\n this.cpOKButtonClass = 'cp-ok-button-class';\n this.cpCancelButton = false;\n this.cpCancelButtonText = 'Cancel';\n this.cpCancelButtonClass = 'cp-cancel-button-class';\n this.cpPresetLabel = 'Preset colors';\n this.cpPresetColorsClass = 'cp-preset-colors-class';\n this.cpMaxPresetColorsLength = 6;\n this.cpPresetEmptyMessage = 'No colors added';\n this.cpPresetEmptyMessageClass = 'preset-empty-message';\n this.cpAddColorButton = false;\n this.cpAddColorButtonText = 'Add color';\n this.cpAddColorButtonClass = 'cp-add-color-button-class';\n this.cpRemoveColorButtonClass = 'cp-remove-color-button-class';\n this.cpInputChange = new EventEmitter(true);\n this.cpToggleChange = new EventEmitter(true);\n this.cpSliderChange = new EventEmitter(true);\n this.cpSliderDragEnd = new EventEmitter(true);\n this.cpSliderDragStart = new EventEmitter(true);\n this.colorPickerOpen = new EventEmitter(true);\n this.colorPickerClose = new EventEmitter(true);\n this.colorPickerCancel = new EventEmitter(true);\n this.colorPickerSelect = new EventEmitter(true);\n this.colorPickerChange = new EventEmitter(false);\n this.cpCmykColorChange = new EventEmitter(true);\n this.cpPresetColorsChange = new EventEmitter(true);\n }\n handleClick() {\n this.inputFocus();\n }\n handleFocus() {\n this.inputFocus();\n }\n handleInput(event) {\n this.inputChange(event);\n }\n ngOnDestroy() {\n if (this.cmpRef != null) {\n if (this.viewAttachedToAppRef) {\n this.appRef.detachView(this.cmpRef.hostView);\n }\n this.cmpRef.destroy();\n this.cmpRef = null;\n this.dialog = null;\n }\n }\n ngOnChanges(changes) {\n if (changes.cpToggle && !this.cpDisabled) {\n if (changes.cpToggle.currentValue) {\n this.openDialog();\n }\n else if (!changes.cpToggle.currentValue) {\n this.closeDialog();\n }\n }\n if (changes.colorPicker) {\n if (this.dialog && !this.ignoreChanges) {\n if (this.cpDialogDisplay === 'inline') {\n this.dialog.setInitialColor(changes.colorPicker.currentValue);\n }\n this.dialog.setColorFromString(changes.colorPicker.currentValue, false);\n if (this.cpUseRootViewContainer && this.cpDialogDisplay !== 'inline') {\n this.cmpRef.changeDetectorRef.detectChanges();\n }\n }\n this.ignoreChanges = false;\n }\n if (changes.cpPresetLabel || changes.cpPresetColors) {\n if (this.dialog) {\n this.dialog.setPresetConfig(this.cpPresetLabel, this.cpPresetColors);\n }\n }\n }\n openDialog() {\n if (!this.dialogCreated) {\n let vcRef = this.vcRef;\n this.dialogCreated = true;\n this.viewAttachedToAppRef = false;\n if (this.cpUseRootViewContainer && this.cpDialogDisplay !== 'inline') {\n const classOfRootComponent = this.appRef.componentTypes[0];\n const appInstance = this.injector.get(classOfRootComponent, Injector.NULL);\n if (appInstance !== Injector.NULL) {\n vcRef = appInstance.vcRef || appInstance.viewContainerRef || this.vcRef;\n if (vcRef === this.vcRef) {\n console.warn('You are using cpUseRootViewContainer, ' +\n 'but the root component is not exposing viewContainerRef!' +\n 'Please expose it by adding \\'public vcRef: ViewContainerRef\\' to the constructor.');\n }\n }\n else {\n this.viewAttachedToAppRef = true;\n }\n }\n const compFactory = this.cfr.resolveComponentFactory(ColorPickerComponent);\n if (this.viewAttachedToAppRef) {\n this.cmpRef = compFactory.create(this.injector);\n this.appRef.attachView(this.cmpRef.hostView);\n document.body.appendChild(this.cmpRef.hostView.rootNodes[0]);\n }\n else {\n const injector = ReflectiveInjector.fromResolvedProviders([], vcRef.parentInjector);\n this.cmpRef = vcRef.createComponent(compFactory, 0, injector, []);\n }\n this.cmpRef.instance.setupDialog(this, this.elRef, this.colorPicker, this.cpWidth, this.cpHeight, this.cpDialogDisplay, this.cpFallbackColor, this.cpColorMode, this.cpCmykEnabled, this.cpAlphaChannel, this.cpOutputFormat, this.cpDisableInput, this.cpIgnoredElements, this.cpSaveClickOutside, this.cpCloseClickOutside, this.cpUseRootViewContainer, this.cpPosition, this.cpPositionOffset, this.cpPositionRelativeToArrow, this.cpPresetLabel, this.cpPresetColors, this.cpPresetColorsClass, this.cpMaxPresetColorsLength, this.cpPresetEmptyMessage, this.cpPresetEmptyMessageClass, this.cpOKButton, this.cpOKButtonClass, this.cpOKButtonText, this.cpCancelButton, this.cpCancelButtonClass, this.cpCancelButtonText, this.cpAddColorButton, this.cpAddColorButtonClass, this.cpAddColorButtonText, this.cpRemoveColorButtonClass, this.elRef);\n this.dialog = this.cmpRef.instance;\n if (this.vcRef !== vcRef) {\n this.cmpRef.changeDetectorRef.detectChanges();\n }\n }\n else if (this.dialog) {\n this.dialog.openDialog(this.colorPicker);\n }\n }\n closeDialog() {\n if (this.dialog && this.cpDialogDisplay === 'popup') {\n this.dialog.closeDialog();\n }\n }\n cmykChanged(value) {\n this.cpCmykColorChange.emit(value);\n }\n stateChanged(state) {\n this.cpToggleChange.emit(state);\n if (state) {\n this.colorPickerOpen.emit(this.colorPicker);\n }\n else {\n this.colorPickerClose.emit(this.colorPicker);\n }\n }\n colorChanged(value, ignore = true) {\n this.ignoreChanges = ignore;\n this.colorPickerChange.emit(value);\n }\n colorSelected(value) {\n this.colorPickerSelect.emit(value);\n }\n colorCanceled() {\n this.colorPickerCancel.emit();\n }\n inputFocus() {\n const element = this.elRef.nativeElement;\n const ignored = this.cpIgnoredElements.filter((item) => item === element);\n if (!this.cpDisabled && !ignored.length) {\n if (typeof document !== 'undefined' && element === document.activeElement) {\n this.openDialog();\n }\n else if (!this.dialog || !this.dialog.show) {\n this.openDialog();\n }\n else {\n this.closeDialog();\n }\n }\n }\n inputChange(event) {\n if (this.dialog) {\n this.dialog.setColorFromString(event.target.value, true);\n }\n else {\n this.colorPicker = event.target.value;\n this.colorPickerChange.emit(this.colorPicker);\n }\n }\n inputChanged(event) {\n this.cpInputChange.emit(event);\n }\n sliderChanged(event) {\n this.cpSliderChange.emit(event);\n }\n sliderDragEnd(event) {\n this.cpSliderDragEnd.emit(event);\n }\n sliderDragStart(event) {\n this.cpSliderDragStart.emit(event);\n }\n presetColorsChanged(value) {\n this.cpPresetColorsChange.emit(value);\n }\n}\nColorPickerDirective.ɵfac = function ColorPickerDirective_Factory(t) { return new (t || ColorPickerDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Injector), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ComponentFactoryResolver), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ApplicationRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ViewContainerRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ColorPickerService)); };\nColorPickerDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: ColorPickerDirective, selectors: [[\"\", \"colorPicker\", \"\"]], hostBindings: function ColorPickerDirective_HostBindings(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"click\", function ColorPickerDirective_click_HostBindingHandler() { return ctx.handleClick(); })(\"focus\", function ColorPickerDirective_focus_HostBindingHandler() { return ctx.handleFocus(); })(\"input\", function ColorPickerDirective_input_HostBindingHandler($event) { return ctx.handleInput($event); });\n } }, inputs: { cpWidth: \"cpWidth\", cpHeight: \"cpHeight\", cpToggle: \"cpToggle\", cpDisabled: \"cpDisabled\", cpIgnoredElements: \"cpIgnoredElements\", cpFallbackColor: \"cpFallbackColor\", cpColorMode: \"cpColorMode\", cpCmykEnabled: \"cpCmykEnabled\", cpOutputFormat: \"cpOutputFormat\", cpAlphaChannel: \"cpAlphaChannel\", cpDisableInput: \"cpDisableInput\", cpDialogDisplay: \"cpDialogDisplay\", cpSaveClickOutside: \"cpSaveClickOutside\", cpCloseClickOutside: \"cpCloseClickOutside\", cpUseRootViewContainer: \"cpUseRootViewContainer\", cpPosition: \"cpPosition\", cpPositionOffset: \"cpPositionOffset\", cpPositionRelativeToArrow: \"cpPositionRelativeToArrow\", cpOKButton: \"cpOKButton\", cpOKButtonText: \"cpOKButtonText\", cpOKButtonClass: \"cpOKButtonClass\", cpCancelButton: \"cpCancelButton\", cpCancelButtonText: \"cpCancelButtonText\", cpCancelButtonClass: \"cpCancelButtonClass\", cpPresetLabel: \"cpPresetLabel\", cpPresetColorsClass: \"cpPresetColorsClass\", cpMaxPresetColorsLength: \"cpMaxPresetColorsLength\", cpPresetEmptyMessage: \"cpPresetEmptyMessage\", cpPresetEmptyMessageClass: \"cpPresetEmptyMessageClass\", cpAddColorButton: \"cpAddColorButton\", cpAddColorButtonText: \"cpAddColorButtonText\", cpAddColorButtonClass: \"cpAddColorButtonClass\", cpRemoveColorButtonClass: \"cpRemoveColorButtonClass\", colorPicker: \"colorPicker\", cpPresetColors: \"cpPresetColors\" }, outputs: { cpInputChange: \"cpInputChange\", cpToggleChange: \"cpToggleChange\", cpSliderChange: \"cpSliderChange\", cpSliderDragEnd: \"cpSliderDragEnd\", cpSliderDragStart: \"cpSliderDragStart\", colorPickerOpen: \"colorPickerOpen\", colorPickerClose: \"colorPickerClose\", colorPickerCancel: \"colorPickerCancel\", colorPickerSelect: \"colorPickerSelect\", colorPickerChange: \"colorPickerChange\", cpCmykColorChange: \"cpCmykColorChange\", cpPresetColorsChange: \"cpPresetColorsChange\" }, exportAs: [\"ngxColorPicker\"], features: [ɵngcc0.ɵɵNgOnChangesFeature] });\nColorPickerDirective.ctorParameters = () => [\n { type: Injector },\n { type: ComponentFactoryResolver },\n { type: ApplicationRef },\n { type: ViewContainerRef },\n { type: ElementRef },\n { type: ColorPickerService }\n];\nColorPickerDirective.propDecorators = {\n colorPicker: [{ type: Input }],\n cpWidth: [{ type: Input }],\n cpHeight: [{ type: Input }],\n cpToggle: [{ type: Input }],\n cpDisabled: [{ type: Input }],\n cpIgnoredElements: [{ type: Input }],\n cpFallbackColor: [{ type: Input }],\n cpColorMode: [{ type: Input }],\n cpCmykEnabled: [{ type: Input }],\n cpOutputFormat: [{ type: Input }],\n cpAlphaChannel: [{ type: Input }],\n cpDisableInput: [{ type: Input }],\n cpDialogDisplay: [{ type: Input }],\n cpSaveClickOutside: [{ type: Input }],\n cpCloseClickOutside: [{ type: Input }],\n cpUseRootViewContainer: [{ type: Input }],\n cpPosition: [{ type: Input }],\n cpPositionOffset: [{ type: Input }],\n cpPositionRelativeToArrow: [{ type: Input }],\n cpOKButton: [{ type: Input }],\n cpOKButtonText: [{ type: Input }],\n cpOKButtonClass: [{ type: Input }],\n cpCancelButton: [{ type: Input }],\n cpCancelButtonText: [{ type: Input }],\n cpCancelButtonClass: [{ type: Input }],\n cpPresetLabel: [{ type: Input }],\n cpPresetColors: [{ type: Input }],\n cpPresetColorsClass: [{ type: Input }],\n cpMaxPresetColorsLength: [{ type: Input }],\n cpPresetEmptyMessage: [{ type: Input }],\n cpPresetEmptyMessageClass: [{ type: Input }],\n cpAddColorButton: [{ type: Input }],\n cpAddColorButtonText: [{ type: Input }],\n cpAddColorButtonClass: [{ type: Input }],\n cpRemoveColorButtonClass: [{ type: Input }],\n cpInputChange: [{ type: Output }],\n cpToggleChange: [{ type: Output }],\n cpSliderChange: [{ type: Output }],\n cpSliderDragEnd: [{ type: Output }],\n cpSliderDragStart: [{ type: Output }],\n colorPickerOpen: [{ type: Output }],\n colorPickerClose: [{ type: Output }],\n colorPickerCancel: [{ type: Output }],\n colorPickerSelect: [{ type: Output }],\n colorPickerChange: [{ type: Output }],\n cpCmykColorChange: [{ type: Output }],\n cpPresetColorsChange: [{ type: Output }],\n handleClick: [{ type: HostListener, args: ['click',] }],\n handleFocus: [{ type: HostListener, args: ['focus',] }],\n handleInput: [{ type: HostListener, args: ['input', ['$event'],] }]\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ColorPickerDirective, [{\n type: Directive,\n args: [{\n selector: '[colorPicker]',\n exportAs: 'ngxColorPicker'\n }]\n }], function () { return [{ type: ɵngcc0.Injector }, { type: ɵngcc0.ComponentFactoryResolver }, { type: ɵngcc0.ApplicationRef }, { type: ɵngcc0.ViewContainerRef }, { type: ɵngcc0.ElementRef }, { type: ColorPickerService }]; }, { cpWidth: [{\n type: Input\n }], cpHeight: [{\n type: Input\n }], cpToggle: [{\n type: Input\n }], cpDisabled: [{\n type: Input\n }], cpIgnoredElements: [{\n type: Input\n }], cpFallbackColor: [{\n type: Input\n }], cpColorMode: [{\n type: Input\n }], cpCmykEnabled: [{\n type: Input\n }], cpOutputFormat: [{\n type: Input\n }], cpAlphaChannel: [{\n type: Input\n }], cpDisableInput: [{\n type: Input\n }], cpDialogDisplay: [{\n type: Input\n }], cpSaveClickOutside: [{\n type: Input\n }], cpCloseClickOutside: [{\n type: Input\n }], cpUseRootViewContainer: [{\n type: Input\n }], cpPosition: [{\n type: Input\n }], cpPositionOffset: [{\n type: Input\n }], cpPositionRelativeToArrow: [{\n type: Input\n }], cpOKButton: [{\n type: Input\n }], cpOKButtonText: [{\n type: Input\n }], cpOKButtonClass: [{\n type: Input\n }], cpCancelButton: [{\n type: Input\n }], cpCancelButtonText: [{\n type: Input\n }], cpCancelButtonClass: [{\n type: Input\n }], cpPresetLabel: [{\n type: Input\n }], cpPresetColorsClass: [{\n type: Input\n }], cpMaxPresetColorsLength: [{\n type: Input\n }], cpPresetEmptyMessage: [{\n type: Input\n }], cpPresetEmptyMessageClass: [{\n type: Input\n }], cpAddColorButton: [{\n type: Input\n }], cpAddColorButtonText: [{\n type: Input\n }], cpAddColorButtonClass: [{\n type: Input\n }], cpRemoveColorButtonClass: [{\n type: Input\n }], cpInputChange: [{\n type: Output\n }], cpToggleChange: [{\n type: Output\n }], cpSliderChange: [{\n type: Output\n }], cpSliderDragEnd: [{\n type: Output\n }], cpSliderDragStart: [{\n type: Output\n }], colorPickerOpen: [{\n type: Output\n }], colorPickerClose: [{\n type: Output\n }], colorPickerCancel: [{\n type: Output\n }], colorPickerSelect: [{\n type: Output\n }], colorPickerChange: [{\n type: Output\n }], cpCmykColorChange: [{\n type: Output\n }], cpPresetColorsChange: [{\n type: Output\n }], handleClick: [{\n type: HostListener,\n args: ['click']\n }], handleFocus: [{\n type: HostListener,\n args: ['focus']\n }], handleInput: [{\n type: HostListener,\n args: ['input', ['$event']]\n }], colorPicker: [{\n type: Input\n }], cpPresetColors: [{\n type: Input\n }] }); })();\n\nclass ColorPickerModule {\n}\nColorPickerModule.ɵfac = function ColorPickerModule_Factory(t) { return new (t || ColorPickerModule)(); };\nColorPickerModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: ColorPickerModule });\nColorPickerModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ providers: [ColorPickerService], imports: [CommonModule] });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ColorPickerModule, [{\n type: NgModule,\n args: [{\n imports: [CommonModule],\n exports: [ColorPickerDirective],\n providers: [ColorPickerService],\n declarations: [ColorPickerComponent, ColorPickerDirective, TextDirective, SliderDirective],\n entryComponents: [ColorPickerComponent]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(ColorPickerModule, { declarations: function () { return [ColorPickerComponent, ColorPickerDirective, TextDirective, SliderDirective]; }, imports: function () { return [CommonModule]; }, exports: function () { return [ColorPickerDirective]; } }); })();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { Cmyk, ColorPickerComponent, ColorPickerDirective, ColorPickerModule, ColorPickerService, Hsla, Hsva, Rgba, SliderDirective, TextDirective };\n\n","<div class=\"modal fade\" id=\"streamModal\" tabindex=\"-1\" role=\"dialog\" aria-labelledby=\"streamModalLabel\">\r\n <div class=\"modal-dialog\" role=\"document\">\r\n <div class=\"modal-content\">\r\n <div class=\"modal-header\">\r\n <button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"Close\">\r\n <span aria-hidden=\"true\">×</span>\r\n </button>\r\n <h4 class=\"modal-title\" id=\"\">Stream Information</h4>\r\n </div>\r\n <div class=\"modal-body\" *ngIf=\"stream\">\r\n <ul class=\"nav nav-tabs\" role=\"tablist\">\r\n <li role=\"presentation\" class=\"active\">\r\n <a href=\"#streamGeneralTab\" role=\"tab\" data-toggle=\"tab\" aria-controls=\"streamGeneralTab\"> General </a>\r\n </li>\r\n\r\n <li role=\"presentation\">\r\n <a href=\"#streamPropertiesTab\" role=\"tab\" data-toggle=\"tab\" aria-controls=\"streamPropertiesTab\">\r\n Properties\r\n </a>\r\n </li>\r\n <li role=\"presentation\">\r\n <a href=\"#streamCompositionTab\" role=\"tab\" data-toggle=\"tab\" aria-controls=\"streamCompositionTab\">\r\n Composition\r\n </a>\r\n </li>\r\n <li role=\"presentation\">\r\n <a href=\"#streamColorTab\" role=\"tab\" data-toggle=\"tab\" aria-controls=\"streamColorTab\"> Color </a>\r\n </li>\r\n </ul>\r\n\r\n <div class=\"tab-content pw-margin tab-content-padding\">\r\n <div role=\"tabpanel\" class=\"tab-pane fade in active\" id=\"streamGeneralTab\">\r\n <div class=\"form-horizontal\">\r\n <div class=\"form-group\" [formGroup]=\"streamGroup\">\r\n <label for=\"streamName\" class=\"control-label col-sm-4\"> Name </label>\r\n\r\n <div class=\"col-sm-8\">\r\n <div class=\"row\">\r\n <div class=\"col-sm-6\">\r\n <input type=\"text\" class=\"form-control\" id=\"streamName\" formControlName=\"name\" />\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-sm-12\">\r\n <span\r\n class=\"text-danger\"\r\n *ngIf=\"nameControl.invalid && (nameControl.dirty || nameControl.touched)\">\r\n <span *ngIf=\"nameControl.errors.required\">Please enter a name for the stream</span>\r\n <span *ngIf=\"nameControl.errors.unique\">Entered name is already in use</span>\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group\">\r\n <label for=\"\" class=\"pw-label control-label col-sm-4\">From</label>\r\n <span style=\"padding-top: 7px; display: inline-block\" class=\"col-sm-4\">\r\n {{ stream.inletUnitOperation.name }}\r\n </span>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label for=\"\" class=\"pw-label control-label col-sm-4\">To</label>\r\n <span style=\"padding-top: 7px; display: inline-block\" class=\"col-sm-4\">\r\n {{ stream.outletUnitOperation.name }}\r\n </span>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'stream-volumetricFlowrate'\" class=\"pw-label control-label col-sm-4\">\r\n Volumetric Flowrate\r\n </label>\r\n <sim-var-input\r\n [inputId]=\"'stream-volumetricFlowrate'\"\r\n [simVar]=\"stream.volumetricFlowrate\"\r\n [readOnly]=\"true\"\r\n [transientValue]=\"true\"></sim-var-input>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'stream-massFlowrate'\" class=\"pw-label control-label col-sm-4\">\r\n Mass Flowrate\r\n </label>\r\n <sim-var-input\r\n [inputId]=\"'stream-massFlowrate'\"\r\n [simVar]=\"stream.massFlowrate\"\r\n [readOnly]=\"true\"\r\n [transientValue]=\"true\"></sim-var-input>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'stream-ghgEmissions'\" class=\"pw-label control-label col-sm-4\">\r\n GHG Emissions\r\n </label>\r\n <sim-var-input\r\n [inputId]=\"'stream-ghgEmissions'\"\r\n [simVar]=\"stream.ghgEmissions\"\r\n [readOnly]=\"true\"\r\n [transientValue]=\"true\"></sim-var-input>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'stream-ghgIntensity'\" class=\"pw-label control-label col-sm-4\">\r\n GHG Intensity\r\n </label>\r\n <sim-var-input\r\n [inputId]=\"'stream-ghgIntensity'\"\r\n [simVar]=\"stream.ghgIntensity\"\r\n [readOnly]=\"true\"\r\n [transientValue]=\"true\"></sim-var-input>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'stream-price'\" class=\"pw-label control-label col-sm-4\"> Price </label>\r\n <sim-var-input\r\n [inputId]=\"'stream-price'\"\r\n [simVar]=\"stream.price\"\r\n [readOnly]=\"true\"\r\n [transientValue]=\"true\"></sim-var-input>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"streamPropertiesTab\">\r\n <ul class=\"nav nav-pills\" role=\"tablist\">\r\n <li role=\"presentation\" class=\"active\">\r\n <a href=\"#streamBulkPropertiesTab\" role=\"tab\" data-toggle=\"tab\" aria-controls=\"streamBulkPropertiesTab\">\r\n Bulk Properties\r\n </a>\r\n </li>\r\n </ul>\r\n\r\n <div class=\"tab-content pw-margin tab-content-padding\">\r\n <div role=\"tabpanel\" class=\"tab-pane fade in active\" id=\"streamBulkPropertiesTab\">\r\n <div class=\"form-horizontal\">\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'stream-massDensity'\" class=\"pw-label control-label col-sm-4\">\r\n Mass Density\r\n </label>\r\n <sim-var-input\r\n [inputId]=\"'stream-massDensity'\"\r\n [simVar]=\"stream.massDensity\"\r\n [readOnly]=\"true\"\r\n [transientValue]=\"true\"></sim-var-input>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'stream-ccr'\" class=\"pw-label control-label col-sm-4\"> CCR </label>\r\n <sim-var-input\r\n [inputId]=\"'stream-ccr'\"\r\n [simVar]=\"stream.ccr\"\r\n [readOnly]=\"true\"\r\n [transientValue]=\"true\"></sim-var-input>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'stream-sulfur'\" class=\"pw-label control-label col-sm-4\"> Sulfur </label>\r\n <sim-var-input\r\n [inputId]=\"'stream-sulfur'\"\r\n [simVar]=\"stream.sulfur\"\r\n [readOnly]=\"true\"\r\n [transientValue]=\"true\"></sim-var-input>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'stream-nitrogen'\" class=\"pw-label control-label col-sm-4\"> Nitrogen </label>\r\n <sim-var-input\r\n [inputId]=\"'stream-nitrogen'\"\r\n [simVar]=\"stream.nitrogen\"\r\n [readOnly]=\"true\"\r\n [transientValue]=\"true\"></sim-var-input>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"streamCompositionTab\">\r\n <div class=\"form-horizontal\">\r\n <div class=\"form-group\">\r\n <div class=\"btn-group\" data-toggle=\"buttons\">\r\n <button\r\n class=\"btn btn-primary {{ compositionTypeSelected === StreamCompositionType.MASS ? 'active' : '' }}\"\r\n (click)=\"compositionTypeChanged($event.target)\"\r\n name=\"{{ StreamCompositionType.MASS }}\">\r\n {{ StreamCompositionType.MASS }}\r\n </button>\r\n <button\r\n class=\"btn btn-primary {{\r\n compositionTypeSelected === StreamCompositionType.VOLUME ? 'active' : ''\r\n }}\"\r\n (click)=\"compositionTypeChanged($event.target)\"\r\n name=\"{{ StreamCompositionType.VOLUME }}\">\r\n {{ StreamCompositionType.VOLUME }}\r\n </button>\r\n <button\r\n class=\"btn btn-primary {{\r\n compositionTypeSelected === StreamCompositionType.DISTILLATION ? 'active' : ''\r\n }}\"\r\n (click)=\"compositionTypeChanged($event.target)\"\r\n name=\"{{ StreamCompositionType.DISTILLATION }}\">\r\n {{ StreamCompositionType.DISTILLATION }}\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <ng-container *ngIf=\"compositionTypeSelected === StreamCompositionType.MASS\">\r\n <div class=\"form-horizontal\" sfeMultipleSimVarInput totalOutputId=\"streamWeightCompositionTotal\">\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'stream-compositionUnit'\" class=\"pw-label control-label col-sm-4\"> Unit </label>\r\n\r\n <div class=\"col-sm-4\">\r\n <sfe-unit-select\r\n [selectId]=\"'stream-compositionUnit'\"\r\n [simVar]=\"stream.composition[0]\"\r\n [elClass]=\"'form-control'\"></sfe-unit-select>\r\n </div>\r\n </div>\r\n\r\n <ng-container *ngFor=\"let idx of stream.composition | keys\">\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'stream-composition' + idx\" class=\"pw-label control-label col-sm-4\">\r\n {{ stream.composition[idx].name | titleCaseComposition }}\r\n </label>\r\n <div class=\"col-sm-4\">\r\n <sfe-value-input\r\n [simVar]=\"stream.composition[idx]\"\r\n [elClass]=\"'form-control'\"\r\n [inputId]=\"'stream-composition' + idx\"\r\n [multiple]=\"true\"\r\n [convertedBy]=\"'stream-compositionUnit'\"\r\n [readOnlyValue]=\"true\"\r\n [disabled]=\"true\">\r\n </sfe-value-input>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <div class=\"form-group\">\r\n <label class=\"pw-label control-label col-sm-4\">Total</label>\r\n <div class=\"col-sm-4\">\r\n <input type=\"text\" class=\"form-control\" id=\"streamWeightCompositionTotal\" readonly />\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"compositionTypeSelected === StreamCompositionType.VOLUME\">\r\n <div class=\"form-horizontal\" sfeMultipleSimVarInput totalOutputId=\"streamVolumeCompositionTotal\">\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'stream-volumeCompositionUnit'\" class=\"pw-label control-label col-sm-4\">\r\n Unit\r\n </label>\r\n\r\n <div class=\"col-sm-4\">\r\n <sfe-unit-select\r\n [selectId]=\"'stream-volumeCompositionUnit'\"\r\n [simVar]=\"stream.volumeComposition[0]\"\r\n [elClass]=\"'form-control'\"></sfe-unit-select>\r\n </div>\r\n </div>\r\n\r\n <ng-container *ngFor=\"let idx of stream.volumeComposition | keys\">\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'stream-volumeComposition' + idx\" class=\"pw-label control-label col-sm-4\">\r\n {{ stream.volumeComposition[idx].name | titleCaseComposition }}\r\n </label>\r\n <div class=\"col-sm-4\">\r\n <sfe-value-input\r\n [simVar]=\"stream.volumeComposition[idx]\"\r\n [elClass]=\"'form-control'\"\r\n [inputId]=\"'stream-volumeComposition' + idx\"\r\n [multiple]=\"true\"\r\n [convertedBy]=\"'stream-volumeCompositionUnit'\"\r\n [readOnlyValue]=\"true\"\r\n [disabled]=\"true\">\r\n </sfe-value-input>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <div class=\"form-group\">\r\n <label class=\"pw-label control-label col-sm-4\">Total</label>\r\n <div class=\"col-sm-4\">\r\n <input type=\"text\" class=\"form-control\" id=\"streamVolumeCompositionTotal\" readonly />\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"compositionTypeSelected === StreamCompositionType.DISTILLATION\">\r\n <div class=\"form-horizontal\" sfeMultipleSimVarInput>\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'stream-distillationCompositionUnit'\" class=\"pw-label control-label col-sm-4\">\r\n Unit\r\n </label>\r\n\r\n <div class=\"col-sm-4\">\r\n <sfe-unit-select\r\n [selectId]=\"'stream-distillationCompositionUnit'\"\r\n [simVar]=\"stream.distillationComposition[0]\"\r\n [elClass]=\"'form-control'\"\r\n [unitSubset]=\"UnitSubset.VOLUME_FRACTION_NO_PPM\"></sfe-unit-select>\r\n </div>\r\n </div>\r\n\r\n <ng-container *ngFor=\"let idx of stream.distillationComposition | keys\">\r\n <div class=\"form-group\">\r\n <label\r\n [attr.for]=\"'stream-distillationComposition' + idx\"\r\n class=\"pw-label control-label col-sm-4\">\r\n {{ stream.distillationComposition[idx].name }}\r\n </label>\r\n <div class=\"col-sm-4\">\r\n <sfe-value-input\r\n [simVar]=\"stream.distillationComposition[idx]\"\r\n [elClass]=\"'form-control'\"\r\n [inputId]=\"'stream-distillationComposition' + idx\"\r\n [multiple]=\"true\"\r\n [convertedBy]=\"'stream-distillationCompositionUnit'\"\r\n [readOnlyValue]=\"true\"\r\n [disabled]=\"true\">\r\n </sfe-value-input>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade\" id=\"streamColorTab\">\r\n <div class=\"form-horizontal\">\r\n <div class=\"form-group\">\r\n <label for=\"streamColor\" class=\"pw-label control-label col-sm-4\"> Color </label>\r\n <div class=\"col-sm-4\">\r\n <input\r\n [(colorPicker)]=\"stream.streamColor\"\r\n [(ngModel)]=\"stream.streamColor\"\r\n class=\"form-control\"\r\n id=\"streamColor\"\r\n readonly=\"readonly\" />\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label class=\"control-label pw-label col-sm-4\"> Preview </label>\r\n <div class=\"col-sm-4\">\r\n <span class=\"form-control\" [style.backgroundColor]=\"stream.streamColor\"></span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n","import { ChangeDetectorRef, Component, OnInit } from '@angular/core';\r\nimport { AbstractControl, UntypedFormBuilder, UntypedFormControl, UntypedFormGroup, Validators } from '@angular/forms';\r\nimport { CoreService } from '../../../_services/core.service';\r\nimport { FlowsheetService } from '../../../_services/flowsheet.service';\r\nimport { SuncorMaterialStream } from '../../../_models';\r\nimport { StreamCompositionType } from '../../../_config/stream-composition-type.enum';\r\nimport { UnitSubset } from '../../../_config/unitSubset.enum';\r\n\r\n@Component({\r\n selector: 'sob-material-stream',\r\n templateUrl: './material-stream.component.html',\r\n styleUrls: ['./material-stream.component.css'],\r\n})\r\nexport class MaterialStreamComponent implements OnInit {\r\n stream: SuncorMaterialStream;\r\n streamGroup: UntypedFormGroup;\r\n compositionTypeSelected: string = StreamCompositionType.MASS;\r\n protected readonly StreamCompositionType = StreamCompositionType;\r\n protected readonly UnitSubset = UnitSubset;\r\n\r\n constructor(\r\n private coreService: CoreService,\r\n private flowsheetService: FlowsheetService,\r\n private ref: ChangeDetectorRef,\r\n private fb: UntypedFormBuilder\r\n ) {\r\n this.flowsheetService.openStreamPropertyWindowRequest.subscribe(streamId => {\r\n this.openStream(streamId);\r\n });\r\n }\r\n\r\n initForm() {\r\n this.streamGroup = this.fb.group({\r\n name: this.fb.control(this.stream.name || '', [Validators.required, this.uniqueNameValidator()]),\r\n });\r\n }\r\n\r\n get nameControl() {\r\n return this.streamGroup ? (this.streamGroup.get('name') as UntypedFormControl) : null;\r\n }\r\n\r\n ngOnInit() {\r\n // should this init empty?\r\n this.streamGroup = this.fb.group({ name: this.fb.control('') });\r\n\r\n $('#streamModal').on('hide.bs.modal', e => {\r\n if (this.streamGroup.invalid) {\r\n e.preventDefault();\r\n e.stopImmediatePropagation();\r\n this.nameControl.markAsDirty();\r\n return false;\r\n }\r\n\r\n this.save();\r\n return true;\r\n });\r\n }\r\n\r\n openStream(streamId) {\r\n this.stream = null;\r\n this.ref.detectChanges();\r\n this.stream = this.coreService.currentCase.filterSuncorMaterialStreams(stream => {\r\n return stream.id === streamId;\r\n })[0];\r\n\r\n this.initForm();\r\n this.ref.detectChanges();\r\n\r\n $('#streamModal').modal('show');\r\n }\r\n\r\n save() {\r\n this.stream.name = this.nameControl.value.trim();\r\n this.coreService.saveStream(this.stream);\r\n }\r\n\r\n uniqueNameValidator() {\r\n return (control: AbstractControl): { [key: string]: any } => {\r\n if (\r\n this.stream.ownerCase.filterSuncorMaterialStreams(\r\n s => s.name === control.value.trim() && s.id !== this.stream.id\r\n ).length\r\n ) {\r\n return { unique: true };\r\n }\r\n return null;\r\n };\r\n }\r\n\r\n compositionTypeChanged(target: EventTarget | null) {\r\n this.compositionTypeSelected = (target as HTMLButtonElement).name;\r\n }\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { CoreService } from '../../_services/core.service';\r\nimport { FlowsheetDiagramService } from '../../_services/flowsheet-diagram/flowsheet-diagram.service';\r\nimport { FileService } from '../../_services/file.service';\r\nimport { FlowsheetService } from '../../_services/flowsheet.service';\r\n\r\n@Component({\r\n selector: 'sob-save-case-file',\r\n templateUrl: './save-case-file.component.html',\r\n styleUrls: ['./save-case-file.component.css'],\r\n})\r\nexport class SaveCaseFileComponent {\r\n filename: string;\r\n\r\n constructor(\r\n private coreService: CoreService,\r\n private flowsheetDiagramService: FlowsheetDiagramService,\r\n private flowsheetService: FlowsheetService,\r\n private fileService: FileService\r\n ) {}\r\n\r\n downloadCase(): void {\r\n if (this.coreService.currentCase.getActiveFlowsheet().isSubflowsheet()) {\r\n this.flowsheetService.exitToMainFlowsheet();\r\n }\r\n\r\n // wait until l1 diagram is loaded\r\n setTimeout(() => {\r\n // TODO dangerous assignment - what if a second level flowsheet is active?\r\n this.coreService.currentCase.setDiagramString(this.flowsheetDiagramService.gojsDiagram.model.toJson());\r\n this.fileService.downloadFile(\r\n this.coreService.project.cases,\r\n this.coreService.projectToJson(),\r\n `${this.filename || 'unnamed'}.opt`\r\n );\r\n $('#saveCaseModal').modal('hide');\r\n }, 1000);\r\n }\r\n}\r\n","<div class=\"modal fade\" id=\"saveCaseModal\" tabindex=\"-1\" role=\"dialog\" aria-labelledby=\"saveCaseLabel\">\r\n <div class=\"modal-dialog\" role=\"document\">\r\n <div class=\"modal-content\">\r\n <div class=\"modal-header\">\r\n <button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"Close\">\r\n <span aria-hidden=\"true\">×</span>\r\n </button>\r\n <h4 class=\"modal-title\">Saving Project</h4>\r\n </div>\r\n <div class=\"modal-body\">\r\n <div class=\"form form-horizontal\">\r\n <div class=\"form-group\">\r\n <label for=\"name\">Name:</label>\r\n <input [(ngModel)]=\"filename\" class=\"form-control\" name=\"name\" id=\"name\" type=\"text\" />\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"modal-footer\">\r\n <button type=\"button\" class=\"btn btn-default\" data-dismiss=\"modal\">Close</button>\r\n <button id=\"download\" type=\"button\" class=\"btn btn-primary\" (click)=\"downloadCase()\">Save</button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n","import { Injectable } from '@angular/core';\r\nimport { Flowsheet } from '../../_models/flowsheet-manager/flowsheet';\r\nimport { SimulationVariable } from '../../_models';\r\nimport { CoreService } from '../core.service';\r\nimport { ProjectDeserializerService } from './project-deserializer.service';\r\nimport { FlowsheetDiagramService } from '../flowsheet-diagram/flowsheet-diagram.service';\r\nimport { SankeyDiagramService } from '../../flowsheet/sankey-diagram/sankey-diagram.service';\r\nimport { MultiPeriodService } from '../multi-period/multi-period.service';\r\n\r\n@Injectable()\r\nexport class ProjectFileLoaderService {\r\n constructor(\r\n private core: CoreService,\r\n private projectDeserializer: ProjectDeserializerService,\r\n private flowsheetDiagramService: FlowsheetDiagramService,\r\n private sankeyDiagramService: SankeyDiagramService,\r\n private multiPeriodService: MultiPeriodService\r\n ) {}\r\n\r\n load(serializedProject: string, fileName?: string, skipDiagramReload?) {\r\n this.core.project = this.projectDeserializer.deserialize(serializedProject);\r\n const currentCase = this.core.project.cases[0];\r\n this.core.currentCase = currentCase;\r\n\r\n if (!currentCase.getActiveFlowsheet()) {\r\n // this should happen only for cases that were created before multi flowsheet support\r\n currentCase.setActiveFlowsheet(new Flowsheet({}, currentCase));\r\n currentCase.setMainFlowsheetId(currentCase.getActiveFlowsheet().id);\r\n currentCase.addToPools(currentCase.getActiveFlowsheet());\r\n }\r\n\r\n if (fileName && !currentCase.name) {\r\n currentCase.name = fileName.replace(/\\.[^/.]+$/, '').trim();\r\n }\r\n\r\n // TODO should this be fired or only notifyCurrentCaseReplaced\r\n this.core.notifyCaseChanged();\r\n this.core.notifyCurrentCaseReplaced({ wholeProjectReplaced: true });\r\n this.sankeyDiagramService.caseToSankeyDiagram(currentCase);\r\n\r\n currentCase.caseStudyManager.kpiManager.addDefaultKpis(currentCase.calculator);\r\n\r\n if (!skipDiagramReload) {\r\n this.core.caseToGoJSModel(currentCase);\r\n }\r\n\r\n this.flowsheetDiagramService.zoomToFit();\r\n\r\n this.cleanAllCases();\r\n this.core.project.fileName = fileName;\r\n }\r\n\r\n private cleanAllCases() {\r\n for (const currentCase of this.core.project.cases) {\r\n const simVarsWithoutOwner = currentCase.filterSimvars(s => {\r\n return !s.ownerBaseObject;\r\n });\r\n\r\n // eslint-disable-next-line no-console\r\n console.info(\r\n simVarsWithoutOwner.length,\r\n 'simulation Variables without owner Will be removed from',\r\n currentCase.name\r\n );\r\n\r\n // eslint-disable-next-line guard-for-in\r\n for (let i = 0; i < simVarsWithoutOwner.length; i++) {\r\n currentCase.removeFromPools(simVarsWithoutOwner[i]);\r\n }\r\n\r\n const flowsheetsWithoutOwner = currentCase.filterFlowsheets(f => {\r\n return f.unitOperationId === undefined && f.id !== currentCase.getMainFlowsheetId();\r\n });\r\n\r\n // eslint-disable-next-line no-console\r\n console.info(flowsheetsWithoutOwner.length, 'Flowsheets without owner will be removed from', currentCase.name);\r\n\r\n for (let i = 0; i < flowsheetsWithoutOwner.length; i++) {\r\n currentCase.removeFromPools(flowsheetsWithoutOwner[i]);\r\n }\r\n }\r\n }\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { CoreService } from '../../_services/core.service';\r\nimport { LogManagerService } from '../log-manager/log-manager.service';\r\nimport { FileService } from '../../_services/file.service';\r\nimport { FlowsheetDiagramService } from '../../_services/flowsheet-diagram/flowsheet-diagram.service';\r\nimport { ProgressIndicatorService } from '../progress-indicator/progress-indicator.service';\r\nimport { Upgrader } from '../../_models/_unit-operations/upgrader';\r\nimport { unitOperationsConfig } from '../../_config/unit-operations.config';\r\nimport { FlowsheetService } from '../../_services/flowsheet.service';\r\nimport { Flowsheet } from '../../_models/flowsheet-manager/flowsheet';\r\nimport { Case } from '../../_models';\r\nimport { ProjectFileLoaderService } from '../../_services/project-deserializer/project-file-loader.service';\r\n\r\n@Component({\r\n selector: 'sob-open-case-file',\r\n templateUrl: './open-case-file.component.html',\r\n styleUrls: ['./open-case-file.component.css'],\r\n})\r\nexport class OpenCaseFileComponent {\r\n constructor(\r\n private coreService: CoreService,\r\n private logManager: LogManagerService,\r\n private fileService: FileService,\r\n private flowsheetService: FlowsheetService,\r\n private flowsheetDiagramService: FlowsheetDiagramService,\r\n private progressIndicator: ProgressIndicatorService,\r\n private projectFileLoader: ProjectFileLoaderService\r\n ) {}\r\n\r\n uploadCase(): void {\r\n // fetch data from uploaded file\r\n if (!File || !FileReader || !FileList || !Blob) {\r\n alert('The file APIs are not fully supported in this browser');\r\n }\r\n\r\n const input = <HTMLInputElement>document.getElementById('caseFileInput');\r\n\r\n if (!input) {\r\n alert('Could not find the file input element');\r\n } else if (!input.files[0]) {\r\n alert('Please select a file before clicking \"Load\"');\r\n } else {\r\n const file = input.files[0];\r\n const fr = new FileReader();\r\n\r\n fr.onload = e => {\r\n this.loadLegacyCase((<any>e).target.result, file.name);\r\n };\r\n this.fileService\r\n .getPools(file)\r\n .then(pools => {\r\n this.loadPools(pools, file.name);\r\n this.loadDiagrams(file);\r\n this.logManager.info('File uploaded successfully.');\r\n })\r\n .catch(e => {\r\n // eslint-disable-next-line no-console\r\n console.warn(e);\r\n fr.readAsText(file);\r\n });\r\n $('#openCaseModal').modal('hide');\r\n this.progressIndicator.show({ message: 'Loading file' });\r\n }\r\n }\r\n\r\n loadLegacyCase(pools, filename) {\r\n this.projectFileLoader.load(pools, filename, false);\r\n this.logManager.clearLogManager();\r\n this.logManager.info('File uploaded successfully.');\r\n }\r\n\r\n loadPools(pools, filename) {\r\n this.projectFileLoader.load(pools, filename, true);\r\n }\r\n\r\n loadDiagrams(file: File) {\r\n this.coreService.project.cases.forEach((c, index) => {\r\n this.fileService.getFile(file, c.name || 'unnamed').then(diagram => {\r\n // not a dangerous assignment\r\n c.setDiagramString(diagram);\r\n\r\n // this is not set when saving a case, apparently\r\n // this is needed for correct cloning\r\n c.getFirstLevelFlowsheet().setDiagramJson(diagram);\r\n\r\n if (index === 0) {\r\n this.flowsheetDiagramService.setDiagramModel(diagram);\r\n this.flowsheetDiagramService.updateStreamData(c, true);\r\n const upgraders = c.filterUnitOperations((uo: Upgrader) => {\r\n return uo.category === unitOperationsConfig.upgrader.key && uo.useSubFlowsheet;\r\n }) as Upgrader[];\r\n\r\n // TODO is this just for compatibility purposes? or is it useful for something else?\r\n this.flowsheetDiagramService.updateUpgraders(upgraders);\r\n this.flowsheetService.updateMaxLinksForAllSubFlowsheets();\r\n }\r\n });\r\n\r\n // eslint-disable-next-line guard-for-in\r\n for (const fId in c.flowsheetPool) {\r\n const flowsheet = c.flowsheetPool[fId];\r\n if (flowsheet.unitOperationId) {\r\n this.loadFlowsheetFile(flowsheet, c, file);\r\n } else {\r\n flowsheet.setDiagramJson(c.getDiagramString());\r\n }\r\n }\r\n });\r\n }\r\n\r\n loadFlowsheetFile(flowsheet: Flowsheet, c: Case, file: File) {\r\n this.fileService\r\n .getFile(file, `${flowsheet.unitOperationId}@${c.id}`)\r\n .then(diagram => flowsheet.setDiagramJson(diagram))\r\n .catch(() => {\r\n // to keep compatibility with cases that only use owner unit operation id to store flowsheet diagram\r\n this.fileService.getFile(file, flowsheet.unitOperationId).then(diagram => flowsheet.setDiagramJson(diagram));\r\n });\r\n }\r\n}\r\n","<div class=\"modal fade\" id=\"openCaseModal\" tabindex=\"-1\" role=\"dialog\" aria-labelledby=\"openCaseLabel\">\r\n <div class=\"modal-dialog\" role=\"document\">\r\n <div class=\"modal-content\">\r\n <div class=\"modal-header\">\r\n <button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"Close\">\r\n <span aria-hidden=\"true\">×</span>\r\n </button>\r\n <h4 class=\"modal-title\">Opening Project</h4>\r\n </div>\r\n <div class=\"modal-body\">\r\n <input id=\"caseFileInput\" name=\"caseFileInput\" type=\"file\" accept=\".json,.opt\" />\r\n </div>\r\n <div class=\"modal-footer\">\r\n <button id=\"download\" type=\"button\" class=\"btn btn-primary\" (click)=\"uploadCase()\">Load</button>\r\n <button type=\"button\" class=\"btn btn-default\" data-dismiss=\"modal\">Close</button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n","import { AfterViewInit, Component, ViewEncapsulation } from '@angular/core';\r\nimport * as moment from 'moment';\r\nimport { LogManagerService } from './log-manager.service';\r\n\r\n@Component({\r\n selector: 'sob-log-manager',\r\n templateUrl: './log-manager.component.html',\r\n styleUrls: ['./log-manager.component.css'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class LogManagerComponent implements AfterViewInit {\r\n private logManagerDiv;\r\n private messagesCount = 0;\r\n\r\n constructor(private logManager: LogManagerService) {\r\n this.logManager.logMessageRequest.subscribe((message: any) => {\r\n this.appendMessage(message.message, message.severity, message.timestamp);\r\n this.messagesCount++;\r\n this.displayMessagesCountIfNeeded();\r\n });\r\n\r\n this.logManager.logSerializedMessagesRequest.subscribe((serializedMessages: Array<any>) => {\r\n for (const message of serializedMessages) {\r\n this.appendMessage(message.message, message.severity, message.timestamp);\r\n this.messagesCount++;\r\n }\r\n\r\n this.displayMessagesCountIfNeeded();\r\n });\r\n\r\n this.logManager.clearLogCounterRequest.subscribe(() => {\r\n this.clearLogCounter();\r\n });\r\n\r\n this.logManager.clearLogManagerRequest.subscribe(() => {\r\n this.clearLogManager();\r\n this.clearLogCounter();\r\n });\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.logManagerDiv = $('#logManager');\r\n }\r\n\r\n private appendMessage(message: string, severity: string, timestamp: Date) {\r\n // TODO: If log manager is hidden, add elements to counter\r\n if (!timestamp) {\r\n timestamp = new Date();\r\n }\r\n\r\n this.logManagerDiv.append(\r\n `<div class=\"${severity}\"> [${severity}] | ${moment(timestamp).format('YYYY/MM/DD HH:mm:ss')} | ${message}</div>`\r\n );\r\n\r\n this.logManagerDiv.scrollTop(this.logManagerDiv[0].scrollHeight);\r\n }\r\n\r\n displayMessagesCountIfNeeded() {\r\n if (!this.logManagerDiv.is(':visible')) {\r\n this.displayMessagesCount();\r\n }\r\n }\r\n\r\n displayMessagesCount() {\r\n const $logCounter = $('#logCounter');\r\n\r\n if (!$logCounter.is(':visible')) {\r\n $logCounter.show();\r\n }\r\n\r\n $logCounter\r\n .html(`${this.messagesCount}`)\r\n .effect('bounce')\r\n .parents('.inverted-tab')\r\n .css({ paddingRight: `${$logCounter.width() + 10}px` });\r\n }\r\n\r\n private clearLogCounter() {\r\n this.messagesCount = 0;\r\n $('#logCounter').html('').hide().parents('.inverted-tab').css({ paddingRight: 0 });\r\n\r\n this.logManagerDiv.scrollTop(this.logManagerDiv[0].scrollHeight);\r\n }\r\n\r\n private clearLogManager() {\r\n this.logManagerDiv.html('');\r\n }\r\n}\r\n","<div id=\"logManager\"></div>\r\n","<div class=\"inline\">\r\n <span *ngIf=\"currentCase.isSolved\" class=\"label label-success\">\r\n <i class=\"fa fa-check-circle\"></i>\r\n Solved\r\n </span>\r\n <span *ngIf=\"!currentCase.isSolved\" class=\"label label-not-solved\">\r\n <i class=\"fa fa-exclamation-circle\"></i>\r\n Not Solved\r\n </span>\r\n</div>\r\n\r\n<div class=\"inline m-l-xs\">\r\n <span *ngIf=\"isMultiPeriodEnabled\" class=\"label label-success\"\r\n ><i class=\"fa fa-clock-o\"></i> Multi Period mode enabled</span\r\n >\r\n</div>\r\n","import { Component } from '@angular/core';\r\nimport { CoreService } from '../../_services/core.service';\r\n\r\n@Component({\r\n selector: 'sob-case-status-indicator',\r\n templateUrl: './case-status-indicator.component.html',\r\n styleUrls: ['./case-status-indicator.component.css'],\r\n})\r\nexport class CaseStatusIndicatorComponent {\r\n constructor(private coreService: CoreService) {}\r\n\r\n get currentCase() {\r\n return this.coreService.currentCase;\r\n }\r\n\r\n get isMultiPeriodEnabled() {\r\n return this.currentCase.multiPeriodEnabled;\r\n }\r\n}\r\n","import { Component, AfterViewInit } from '@angular/core';\r\nimport { LogManagerService } from '../log-manager/log-manager.service';\r\nimport { FlowsheetDiagramService } from '../../_services/flowsheet-diagram/flowsheet-diagram.service';\r\nimport { CoreService } from '../../_services/core.service';\r\n\r\ndeclare let jQuery: any;\r\n@Component({\r\n selector: 'sob-bottom-bar',\r\n templateUrl: './bottom-bar.component.html',\r\n styleUrls: ['./bottom-bar.component.css'],\r\n})\r\nexport class BottomBarComponent implements AfterViewInit {\r\n constructor(\r\n private logManager: LogManagerService,\r\n private flowsheetDiagramService: FlowsheetDiagramService,\r\n private coreService: CoreService\r\n ) {}\r\n\r\n ngAfterViewInit() {\r\n jQuery('#zoomSlider').ionRangeSlider({\r\n min: 0.5,\r\n max: 2.5,\r\n from: 1,\r\n hide_min_max: true,\r\n step: 0.1,\r\n force_edges: true,\r\n onChange: data => {\r\n this.flowsheetDiagramService.gojsDiagram.scale = data.from;\r\n },\r\n });\r\n const $invertedTabs = $('.inverted-tab');\r\n\r\n $invertedTabs.on('click', e => {\r\n const $clickedTab = $(e.delegateTarget);\r\n const $targetPanel = $($clickedTab.data('controls'));\r\n const targetPanelVisible = $targetPanel.is(':visible');\r\n $targetPanel.hide();\r\n\r\n if (!targetPanelVisible) {\r\n $targetPanel.show();\r\n this.flowsheetDiagramService.overview.requestUpdate();\r\n }\r\n $invertedTabs.removeClass('active');\r\n $clickedTab.addClass('active');\r\n });\r\n\r\n $('.close-bottom-tabpanel').on('click', () => {\r\n $('.bottom-tabpanel').hide();\r\n $invertedTabs.removeClass('active');\r\n });\r\n }\r\n\r\n clearLogCounter() {\r\n this.logManager.clearLogCounter();\r\n }\r\n\r\n clearLogManager() {\r\n this.logManager.clearLogManager();\r\n }\r\n\r\n get currentProject() {\r\n return this.coreService.project;\r\n }\r\n}\r\n","<div class=\"container-fluid\">\r\n <div class=\"row\" style=\"background-color: #ccc\">\r\n <div class=\"col-md-3\" style=\"padding-left: 0\">\r\n <div class=\"bottom-tabpanel\" style=\"display: none\" id=\"overviewPanel\">\r\n <div id=\"overview-container\" style=\"padding-left: 15px\">\r\n <div class=\"ibox float-e-margins\">\r\n <div class=\"ibox-title\">\r\n <div class=\"ibox-tools\">\r\n <a class=\"close-link close-bottom-tabpanel\">\r\n <i class=\"fa fa-chevron-down\"></i>\r\n </a>\r\n </div>\r\n <h5>Overview</h5>\r\n </div>\r\n <div class=\"ibox-content\">\r\n <input type=\"text\" id=\"zoomSlider\" name=\"zoomSlider\" value=\"\" />\r\n <div id=\"overview\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-9\" style=\"padding-left: 0\">\r\n <div class=\"bottom-tabpanel\" style=\"display: none\" id=\"logManagerPanel\">\r\n <div class=\"log-container\">\r\n <div class=\"ibox float-e-margins\">\r\n <div class=\"ibox-title\">\r\n <div class=\"ibox-tools\">\r\n <a class=\"close-link close-bottom-tabpanel\">\r\n <i class=\"fa fa-chevron-down\"></i>\r\n </a>\r\n <a title=\"Clear\" (click)=\"clearLogManager()\">\r\n <i class=\"fa fa-trash-o\"></i>\r\n </a>\r\n </div>\r\n <h5>Output</h5>\r\n </div>\r\n <div class=\"ibox-content\">\r\n <sob-log-manager></sob-log-manager>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div id=\"lower-toolbar\">\r\n <div class=\"container-fluid\">\r\n <div class=\"row\">\r\n <div class=\"col-md-3\" style=\"padding-left: 15px; padding-right: 29px\">\r\n <div class=\"overview-tc\" style=\"background-color: #fff; padding: 5px; box-shadow: #959595 4px 0px 5px 0px\">\r\n <span\r\n class=\"inverted-tab\"\r\n style=\"font-weight: 600; color: #676a6c; font-size: 13px\"\r\n data-controls=\"#overviewPanel\"\r\n (click)=\"clearLogCounter()\">\r\n Overview <span class=\"label label-primary\"><i class=\"fa fa-binoculars\"></i></span>\r\n <div class=\"inline\" style=\"display: inline-block\"></div>\r\n </span>\r\n </div>\r\n </div>\r\n <div class=\"col-md-9\" style=\"padding: 5px; background-color: #fff\">\r\n <span class=\"inverted-tab\" data-controls=\"#logManagerPanel\" (click)=\"clearLogCounter()\">\r\n Output\r\n <div class=\"inline\" style=\"display: inline-block\">\r\n <span id=\"logCounter\" class=\"badge badge-warning\"></span>\r\n </div>\r\n </span>\r\n <span class=\"separator\"></span>\r\n\r\n <sob-case-status-indicator></sob-case-status-indicator>\r\n\r\n <div class=\"inline\" style=\"display: inline-block; margin-left: 5px\">\r\n <span class=\"label label-info\" style=\"font-size: 11px\">{{ currentProject.fileName }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n","import { SimulationVariable } from '../simulation-variable';\r\n\r\nexport class ReportValue {\r\n value: number;\r\n name: string;\r\n childDataId: string;\r\n isFlowsheetOwner: boolean;\r\n\r\n constructor(value: number, name: string, childDataId?: string) {\r\n this.value = value;\r\n this.name = name;\r\n this.childDataId = childDataId;\r\n }\r\n\r\n setIsFlowsheetOwner(isFlowsheetOwner: boolean) {\r\n this.isFlowsheetOwner = isFlowsheetOwner;\r\n }\r\n}\r\n\r\nexport class GhgReportValue extends ReportValue {\r\n alternativeGhgIntensity: SimulationVariable;\r\n\r\n constructor(value: number, alternativeGhgIntensity: SimulationVariable, name: string, childDataId?: string) {\r\n super(value, name, childDataId);\r\n this.alternativeGhgIntensity = alternativeGhgIntensity;\r\n }\r\n}\r\n\r\n// to be used when different types of unit operation are in the same DataSet\r\nexport class MixedGhgReportValue extends GhgReportValue {\r\n unitOperationCategory: string;\r\n\r\n constructor(value: number, name: string, unitOperationType: string, childDataId?: string) {\r\n super(value, undefined, name, childDataId);\r\n this.unitOperationCategory = unitOperationType;\r\n }\r\n}\r\n","import { ReportValue } from './report-value';\r\n\r\nexport class ReportDataSet {\r\n id: string;\r\n name: string;\r\n data: ReportValue[] = [];\r\n total: number;\r\n\r\n constructor(name: string, id: string) {\r\n this.id = id;\r\n this.name = name;\r\n this.total = 0;\r\n }\r\n\r\n addToData(rv: ReportValue) {\r\n this.data.push(rv);\r\n this.total += rv.value;\r\n }\r\n}\r\n","import { Case } from '../case';\r\nimport { UnitOperation } from '../unit-operation';\r\nimport { unitOperationsConfig } from '../../_config/unit-operations.config';\r\nimport { SuncorUnitOperation } from '../_unit-operations/suncor-unit-operation';\r\nimport { GhgReportValue, MixedGhgReportValue, ReportValue } from './report-value';\r\nimport { ReportDataSet } from './report-data-set';\r\nimport { FuelGasFlare } from '../_unit-operations/fuel-gas/fuel-gas-flare';\r\nimport { WaterBoiler } from '../_unit-operations/utilties/water-boiler';\r\nimport { WaterCogeneration } from '../_unit-operations/utilties/water-cogeneration';\r\nimport { Upgrader } from '../_unit-operations/upgrader';\r\nimport { Splitter } from '../_unit-operations/splitter';\r\nimport { Mixer } from '../_unit-operations/mixer';\r\n\r\ndeclare let unitConverter: any;\r\n\r\nexport class GhgEmissionsReport {\r\n totalGhg: number;\r\n totalSuncorGhg: number;\r\n contributionByCategory: ReportValue[] = [];\r\n contributionByUnit: ReportDataSet[] = [];\r\n contributionByUpgraderSubFlowsheet: ReportDataSet[] = [];\r\n\r\n unit: string;\r\n quantity: string;\r\n\r\n constructor(c: Case) {\r\n this.initReport(c);\r\n }\r\n\r\n initReport(c: Case) {\r\n this.totalGhg = 0;\r\n\r\n const diluentGhg = new ReportValue(\r\n 0,\r\n unitOperationsConfig.diluentSource.displayName,\r\n unitOperationsConfig.diluentSource.key\r\n );\r\n const diluentSet = new ReportDataSet(\r\n unitOperationsConfig.diluentSource.displayName,\r\n unitOperationsConfig.diluentSource.key\r\n );\r\n\r\n const mineGhg = new ReportValue(0, unitOperationsConfig.mine.displayName, unitOperationsConfig.mine.key);\r\n const mineSet = new ReportDataSet(unitOperationsConfig.mine.displayName, unitOperationsConfig.mine.key);\r\n\r\n const pipeGhg = new ReportValue(0, unitOperationsConfig.pipe.displayName, unitOperationsConfig.pipe.key);\r\n const pipeSet = new ReportDataSet(unitOperationsConfig.pipe.displayName, unitOperationsConfig.pipe.key);\r\n\r\n const refineryGhg = new ReportValue(\r\n 0,\r\n unitOperationsConfig.refinery.displayName,\r\n unitOperationsConfig.refinery.key\r\n );\r\n const refinerySet = new ReportDataSet(unitOperationsConfig.refinery.displayName, unitOperationsConfig.refinery.key);\r\n\r\n const sagdGhg = new ReportValue(0, unitOperationsConfig.sagd.displayName, unitOperationsConfig.sagd.key);\r\n const sagdSet = new ReportDataSet(unitOperationsConfig.sagd.displayName, unitOperationsConfig.sagd.key);\r\n\r\n const upgraderGhg = new ReportValue(\r\n 0,\r\n unitOperationsConfig.upgrader.displayName,\r\n unitOperationsConfig.upgrader.key\r\n );\r\n const upgraderSet = new ReportDataSet(unitOperationsConfig.upgrader.displayName, unitOperationsConfig.upgrader.key);\r\n\r\n const thirdPartyRefineryGhg = new ReportValue(\r\n 0,\r\n unitOperationsConfig.thirdPartyRefinery.displayName,\r\n unitOperationsConfig.thirdPartyRefinery.key\r\n );\r\n\r\n const thirdPartyRefinerySet = new ReportDataSet(\r\n unitOperationsConfig.thirdPartyRefinery.displayName,\r\n unitOperationsConfig.thirdPartyRefinery.key\r\n );\r\n\r\n const thirdPartySourceGhg = new ReportValue(\r\n 0,\r\n unitOperationsConfig.thirdPartySource.displayName,\r\n unitOperationsConfig.thirdPartySource.key\r\n );\r\n\r\n const thirdPartySourceSet = new ReportDataSet(\r\n unitOperationsConfig.thirdPartySource.displayName,\r\n unitOperationsConfig.thirdPartySource.key\r\n );\r\n\r\n const bitumenConversionGhg = new ReportValue(\r\n 0,\r\n unitOperationsConfig.bitumenConversion.displayName,\r\n unitOperationsConfig.bitumenConversion.key\r\n );\r\n\r\n const bitumenConversionSet = new ReportDataSet(\r\n unitOperationsConfig.bitumenConversion.displayName,\r\n unitOperationsConfig.bitumenConversion.key\r\n );\r\n\r\n const units = c.filterUnitOperations((uo: UnitOperation) => {\r\n return uo.category !== unitOperationsConfig.mixer.key && uo.category !== unitOperationsConfig.splitter.key;\r\n }) as Array<SuncorUnitOperation>;\r\n\r\n for (const uo of units) {\r\n switch (uo.category) {\r\n case unitOperationsConfig.diluentSource.key:\r\n diluentGhg.value += uo.ghgEmissions.value;\r\n diluentSet.addToData(new GhgReportValue(uo.ghgEmissions.value, uo.getAlternativeGhgIntensity(), uo.name));\r\n break;\r\n\r\n case unitOperationsConfig.mine.key:\r\n mineGhg.value += uo.ghgEmissions.value;\r\n mineSet.addToData(new GhgReportValue(uo.ghgEmissions.value, uo.getAlternativeGhgIntensity(), uo.name));\r\n break;\r\n\r\n case unitOperationsConfig.pipe.key:\r\n pipeGhg.value += uo.ghgEmissions.value;\r\n pipeSet.addToData(new GhgReportValue(uo.ghgEmissions.value, uo.getAlternativeGhgIntensity(), uo.name));\r\n break;\r\n\r\n case unitOperationsConfig.refinery.key:\r\n refineryGhg.value += uo.ghgEmissions.value;\r\n refinerySet.addToData(new GhgReportValue(uo.ghgEmissions.value, uo.getAlternativeGhgIntensity(), uo.name));\r\n break;\r\n\r\n case unitOperationsConfig.sagd.key:\r\n sagdGhg.value += uo.ghgEmissions.value;\r\n sagdSet.addToData(new GhgReportValue(uo.ghgEmissions.value, uo.getAlternativeGhgIntensity(), uo.name));\r\n break;\r\n\r\n case unitOperationsConfig.upgrader.key:\r\n const upg = uo as Upgrader;\r\n upgraderGhg.value += uo.ghgEmissions.value;\r\n const reportValue = new GhgReportValue(\r\n uo.ghgEmissions.value,\r\n uo.getAlternativeGhgIntensity(),\r\n uo.name,\r\n upg.isFlowsheetOwner ? uo.id : undefined\r\n );\r\n\r\n reportValue.setIsFlowsheetOwner(upg.isFlowsheetOwner);\r\n\r\n upgraderSet.addToData(reportValue);\r\n break;\r\n\r\n case unitOperationsConfig.thirdPartyRefinery.key:\r\n thirdPartyRefineryGhg.value += uo.ghgEmissions.value;\r\n thirdPartyRefinerySet.addToData(\r\n new GhgReportValue(uo.ghgEmissions.value, uo.getAlternativeGhgIntensity(), uo.name)\r\n );\r\n break;\r\n\r\n case unitOperationsConfig.thirdPartySource.key:\r\n thirdPartySourceGhg.value += uo.ghgEmissions.value;\r\n thirdPartySourceSet.addToData(\r\n new GhgReportValue(uo.ghgEmissions.value, uo.getAlternativeGhgIntensity(), uo.name)\r\n );\r\n break;\r\n\r\n case unitOperationsConfig.bitumenConversion.key:\r\n bitumenConversionGhg.value += uo.ghgEmissions.value;\r\n bitumenConversionSet.addToData(\r\n new GhgReportValue(uo.ghgEmissions.value, uo.getAlternativeGhgIntensity(), uo.name)\r\n );\r\n break;\r\n }\r\n if (uo.ghgEmissions) {\r\n this.totalGhg += uo.ghgEmissions.value;\r\n }\r\n }\r\n\r\n this.totalSuncorGhg = this.totalGhg - thirdPartyRefineryGhg.value;\r\n this.contributionByCategory.push(diluentGhg);\r\n this.contributionByCategory.push(mineGhg);\r\n this.contributionByCategory.push(pipeGhg);\r\n this.contributionByCategory.push(refineryGhg);\r\n this.contributionByCategory.push(sagdGhg);\r\n this.contributionByCategory.push(upgraderGhg);\r\n this.contributionByCategory.push(bitumenConversionGhg);\r\n this.contributionByCategory.push(thirdPartyRefineryGhg);\r\n this.contributionByCategory.push(thirdPartySourceGhg);\r\n\r\n this.contributionByUnit.push(diluentSet);\r\n this.contributionByUnit.push(mineSet);\r\n this.contributionByUnit.push(pipeSet);\r\n this.contributionByUnit.push(refinerySet);\r\n this.contributionByUnit.push(sagdSet);\r\n this.contributionByUnit.push(upgraderSet);\r\n this.contributionByUnit.push(bitumenConversionSet);\r\n this.contributionByUnit.push(thirdPartyRefinerySet);\r\n this.contributionByUnit.push(thirdPartySourceSet);\r\n\r\n const sv = units.length > 0 ? units[0].ghgEmissions : null;\r\n\r\n for (const u of upgraderSet.data) {\r\n this.contributionByUpgraderSubFlowsheet.push(this.getUpgraderDataSet(u.name, u.childDataId, c));\r\n }\r\n\r\n if (sv) {\r\n this.unit = unitConverter.units.Massflowrate.MMTPA;\r\n this.quantity = sv.quantity;\r\n this.convertReportValues(sv.getInternalUnit());\r\n }\r\n }\r\n\r\n convertReportValues(internalUnit: string) {\r\n for (const contribution of this.contributionByCategory) {\r\n // alright, .parseFloatString should not be needed :/ but by default, the .convert function returns\r\n // an empty string when a NaN value is converted... maybe it should return the NaN value as it is\r\n // and the empty string should be returned by the format() function (?)\r\n contribution.value = unitConverter.parseFloatString(\r\n unitConverter(this.quantity).convert(contribution.value, internalUnit, this.unit).round().getValue()\r\n );\r\n }\r\n\r\n for (const cbu of this.contributionByUnit) {\r\n for (const contrib of cbu.data) {\r\n contrib.value = unitConverter.parseFloatString(\r\n unitConverter(this.quantity).convert(contrib.value, internalUnit, this.unit).round().getValue()\r\n );\r\n }\r\n }\r\n\r\n for (const cbu of this.contributionByUpgraderSubFlowsheet) {\r\n for (const contrib of cbu.data) {\r\n contrib.value = unitConverter.parseFloatString(\r\n unitConverter(this.quantity).convert(contrib.value, internalUnit, this.unit).round().getValue()\r\n );\r\n }\r\n\r\n cbu.total = unitConverter.parseFloatString(\r\n unitConverter(this.quantity).convert(cbu.total, internalUnit, this.unit).round().getValue()\r\n );\r\n }\r\n\r\n this.totalGhg = unitConverter.parseFloatString(\r\n unitConverter(this.quantity).convert(this.totalGhg, internalUnit, this.unit).round().getValue()\r\n );\r\n\r\n this.totalSuncorGhg = unitConverter.parseFloatString(\r\n unitConverter(this.quantity).convert(this.totalSuncorGhg, internalUnit, this.unit).round().getValue()\r\n );\r\n }\r\n\r\n getUpgraderDataSet(upgraderName: string, upgraderId: string, c: Case) {\r\n if (!upgraderName) {\r\n upgraderName = c.getUnitOperation(upgraderId).name;\r\n }\r\n\r\n const dataSet = new ReportDataSet(upgraderName, upgraderId);\r\n\r\n const upgraderUnitOperationsEvenNestedOnes = c.filterUnitOperations(uo => {\r\n return uo.flowsheetId === upgraderId && !(uo instanceof Splitter || uo instanceof Mixer);\r\n });\r\n\r\n const subFlowsheetOwners = upgraderUnitOperationsEvenNestedOnes.filter(uo => uo.isFlowsheetOwner);\r\n\r\n for (const sfo of subFlowsheetOwners) {\r\n const subFlowsheetUnitOperations = c.filterUnitOperations(uo => uo.flowsheetId === sfo.id);\r\n upgraderUnitOperationsEvenNestedOnes.push(...subFlowsheetUnitOperations);\r\n }\r\n\r\n for (const uo of upgraderUnitOperationsEvenNestedOnes) {\r\n // ignore flowsheet owners\r\n if (uo.isFlowsheetOwner) {\r\n continue;\r\n }\r\n\r\n if (uo instanceof SuncorUnitOperation) {\r\n dataSet.addToData(new MixedGhgReportValue(uo.ghgEmissions.value, uo.name, uo.getCategoryDisplayName()));\r\n } else if (uo instanceof FuelGasFlare) {\r\n // and what about ghg intensity?\r\n dataSet.addToData(new MixedGhgReportValue(uo.ghgEmissions.value, uo.name, uo.getCategoryDisplayName()));\r\n } else if (uo instanceof WaterBoiler) {\r\n dataSet.addToData(new MixedGhgReportValue(uo.ghgEmissions.value, uo.name, uo.getCategoryDisplayName()));\r\n } else if (uo instanceof WaterCogeneration) {\r\n dataSet.addToData(new MixedGhgReportValue(uo.ghgEmissions.value, uo.name, uo.getCategoryDisplayName()));\r\n }\r\n }\r\n\r\n return dataSet;\r\n }\r\n}\r\n","import { ReportValue } from './report-value';\r\nimport { Case } from '../case';\r\nimport { UnitOperation } from '../unit-operation';\r\nimport { ThirdPartyRefinery } from '../_unit-operations/third-party-refinery';\r\nimport { Refinery } from '../_unit-operations/refinery';\r\nimport { unitOperationsConfig } from '../../_config/unit-operations.config';\r\nimport { SimulationVariable } from '../simulation-variable';\r\n\r\ndeclare let unitConverter: any;\r\n\r\nexport class RefineryFlowRatesReport {\r\n total: number;\r\n unit: string;\r\n data: Array<ReportValue> = [];\r\n\r\n constructor(c: Case) {\r\n this.initReport(c);\r\n }\r\n\r\n initReport(c: Case) {\r\n this.total = 0;\r\n\r\n const refineries = c.filterUnitOperations((uo: UnitOperation) => {\r\n return uo.category === unitOperationsConfig.refinery.key;\r\n }) as Array<Refinery>;\r\n\r\n const thirpartyrefineries = c.filterUnitOperations((uo: UnitOperation) => {\r\n return uo.category === unitOperationsConfig.thirdPartyRefinery.key;\r\n }) as Array<ThirdPartyRefinery>;\r\n\r\n for (const uo of refineries) {\r\n const s = uo.volumetricFlowrate;\r\n this.total += s.value;\r\n this.data.push(new ReportValue(unitConverter.parseFloatString(s.convertToDefaultUnit(true, false)), uo.name));\r\n }\r\n for (const uo of thirpartyrefineries) {\r\n const s = uo.volumetricFlowrate;\r\n this.total += s.value;\r\n this.data.push(new ReportValue(unitConverter.parseFloatString(s.convertToDefaultUnit(true, false)), uo.name));\r\n }\r\n\r\n const sv = refineries.length\r\n ? refineries[0].volumetricFlowrate\r\n : thirpartyrefineries.length\r\n ? thirpartyrefineries[0].volumetricFlowrate\r\n : null;\r\n\r\n if (sv) {\r\n this.unit = sv.unit;\r\n const totalSv = new SimulationVariable(sv, sv.ownerCase, sv.ownerBaseObject);\r\n totalSv.value = this.total;\r\n\r\n this.total = unitConverter.parseFloatString(totalSv.convertToDefaultUnit(true, false));\r\n }\r\n }\r\n}\r\n","import { ReportValue } from './report-value';\r\nimport { Case } from '../case';\r\nimport { UnitOperation } from '../unit-operation';\r\nimport { ThirdPartyRefinery } from '../_unit-operations/third-party-refinery';\r\nimport { Refinery } from '../_unit-operations/refinery';\r\nimport { unitOperationsConfig } from '../../_config/unit-operations.config';\r\nimport { SimulationVariable } from '../simulation-variable';\r\nimport { SuncorUnitOperation } from '../_unit-operations/suncor-unit-operation';\r\nimport { isNullOrUndefined } from '../../_utils/utils';\r\n\r\ndeclare let unitConverter: any;\r\n\r\nexport class RevenueReport {\r\n total: number;\r\n totalValue: number;\r\n unit: string;\r\n data: Array<ReportValue> = [];\r\n\r\n constructor(c: Case) {\r\n this.initReport(c);\r\n }\r\n\r\n initReport(c: Case) {\r\n this.total = 0;\r\n this.totalValue = 0;\r\n const refineries = c.filterUnitOperations((uo: UnitOperation) => {\r\n return uo.category === unitOperationsConfig.refinery.key;\r\n }) as Array<Refinery>;\r\n\r\n const thirpartyrefineries = c.filterUnitOperations((uo: UnitOperation) => {\r\n return uo.category === unitOperationsConfig.thirdPartyRefinery.key;\r\n }) as Array<ThirdPartyRefinery>;\r\n\r\n for (const uo of refineries) {\r\n const s = uo.revenue;\r\n this.total += s.value;\r\n this.data.push(new ReportValue(unitConverter.parseFloatString(s.convertToDefaultUnit(true, false)), uo.name));\r\n }\r\n for (const uo of thirpartyrefineries) {\r\n const s = uo.revenue;\r\n // s.value = uo.feedstockValue.value * uo.volumetricFlowrate.value;\r\n this.total += s.value;\r\n this.data.push(new ReportValue(unitConverter.parseFloatString(s.convertToDefaultUnit(true, false)), uo.name));\r\n }\r\n\r\n const units = c.filterUnitOperations((uo: UnitOperation) => {\r\n return uo.category !== unitOperationsConfig.splitter.key && uo.category !== unitOperationsConfig.mixer.key;\r\n }) as Array<SuncorUnitOperation>;\r\n\r\n this.totalValue = this.total;\r\n for (const uo of units) {\r\n let s;\r\n if (uo.capexTotal) {\r\n s = uo.capexTotal.value + uo.opexTotal.value;\r\n }\r\n const isInvalid = isNaN(s) || isNullOrUndefined(s);\r\n\r\n this.totalValue -= isInvalid ? 0 : s;\r\n }\r\n\r\n const sv = refineries.length\r\n ? refineries[0].revenue\r\n : thirpartyrefineries.length\r\n ? thirpartyrefineries[0].revenue\r\n : null;\r\n\r\n if (sv) {\r\n this.unit = sv.unit;\r\n const totalSv = new SimulationVariable(sv, sv.ownerCase, sv.ownerBaseObject);\r\n totalSv.value = this.total;\r\n\r\n this.total = unitConverter.parseFloatString(totalSv.convertToDefaultUnit(true, false));\r\n this.totalValue = unitConverter.parseFloatString(\r\n unitConverter(sv.quantity).convert(this.totalValue, sv.getInternalUnit(), this.unit).round().getValue()\r\n );\r\n }\r\n }\r\n}\r\n","import { Case } from '../case';\r\nimport { ReportValue } from './report-value';\r\nimport { UnitOperation } from '../unit-operation';\r\nimport { unitOperationsConfig } from '../../_config/unit-operations.config';\r\nimport { DiluentSource } from '../_unit-operations/diluent-source';\r\nimport { SimulationVariable } from '../simulation-variable';\r\n\r\ndeclare let unitConverter: any;\r\n\r\nexport class DiluentFlowRatesReport {\r\n total: number;\r\n unit: string;\r\n data: Array<ReportValue> = [];\r\n\r\n constructor(c: Case) {\r\n this.initReport(c);\r\n }\r\n\r\n initReport(c: Case) {\r\n this.total = 0;\r\n\r\n const diluentSources = c.filterUnitOperations((uo: UnitOperation) => {\r\n return uo.category === unitOperationsConfig.diluentSource.key;\r\n }) as Array<DiluentSource>;\r\n\r\n for (const uo of diluentSources) {\r\n const s = uo.volumetricFlowrate;\r\n\r\n this.total += s.value;\r\n this.data.push(new ReportValue(unitConverter.parseFloatString(s.convertToDefaultUnit(true, false)), uo.name));\r\n }\r\n\r\n const sv = diluentSources.length ? diluentSources[0].volumetricFlowrate : null;\r\n\r\n if (sv) {\r\n this.unit = sv.getDefaultUnit();\r\n const totalSv = new SimulationVariable(sv, sv.ownerCase, sv.ownerBaseObject);\r\n totalSv.value = this.total;\r\n this.total = unitConverter.parseFloatString(totalSv.convertToDefaultUnit(true, false));\r\n }\r\n }\r\n}\r\n","import { SimulationVariable } from '../../simulation-variable';\r\nimport { Splitter } from '../../_unit-operations/splitter';\r\nimport { ProductTank } from '../../product-tank';\r\nimport { FuelGasSplitter } from '../../_unit-operations/fuel-gas/fuel-gas-splitter';\r\nimport { WaterHeader } from '../../_unit-operations/utilties/water-header';\r\n\r\nexport class OptimizationReportVariable {\r\n name: string;\r\n ownerName: string;\r\n ownerId: string;\r\n isOptimizable: boolean;\r\n value: number;\r\n unit: string;\r\n\r\n constructor(name, ownerName, ownerId, isOptimizable, value, unit) {\r\n this.name = name;\r\n this.ownerName = ownerName;\r\n this.ownerId = ownerId;\r\n this.isOptimizable = isOptimizable;\r\n this.value = value;\r\n this.unit = unit;\r\n }\r\n\r\n static create(sv: SimulationVariable) {\r\n return new OptimizationReportVariable(\r\n sv.name,\r\n sv.ownerBaseObject.name,\r\n sv.ownerBaseObject.id,\r\n (<any>sv.ownerBaseObject).isOptimizable, // hmmmmmmmmm\r\n sv.convertToDefaultUnit(true, false),\r\n sv.getDefaultUnit()\r\n );\r\n }\r\n\r\n static createFromSplitter(\r\n splitter: Splitter | FuelGasSplitter | ProductTank | WaterHeader\r\n ): Array<OptimizationReportVariable> {\r\n const variables = [];\r\n\r\n let i;\r\n for (i = 0; i < splitter.distributionRatioVariables.length; i++) {\r\n const dv = splitter.distributionRatioVariables[i];\r\n\r\n variables.push(\r\n new OptimizationReportVariable(\r\n `${splitter.findDistributionRatioVariableName(i)} - Distribution Ratio`,\r\n splitter.name,\r\n splitter.id,\r\n splitter.isOptimizable,\r\n dv.value ? `${parseFloat(dv.value.toFixed(3))}` : null,\r\n 'N/D'\r\n )\r\n );\r\n }\r\n\r\n return variables;\r\n }\r\n}\r\n","import { Case } from '../../case';\r\nimport { OptimizationReportVariable } from './optimization-report-variable';\r\nimport { unitOperationsConfig } from '../../../_config/unit-operations.config';\r\nimport { Splitter } from '../../_unit-operations/splitter';\r\nimport { ProductTank } from '../../product-tank';\r\nimport { WaterHeader } from '../../_unit-operations/utilties/water-header';\r\nimport { FlowsheetTreeService } from '../../../_services/sub-flowsheet/flowsheet-tree/flowsheet-tree.service';\r\nimport { UnitOperation } from '../../unit-operation';\r\n\r\nexport class OptimizationVariablesReport {\r\n optimizationTableVariables: OptimizationReportVariable[] = [];\r\n\r\n constructor(c: Case, activeFlowsheetId: string, flowsheetTree: FlowsheetTreeService) {\r\n this.initReport(c, activeFlowsheetId, flowsheetTree.getAllFlowsheetOwners(c));\r\n }\r\n\r\n initReport(c: Case, activeFlowsheetId: string, flowsheetOwners: UnitOperation[]) {\r\n const splitters = c.filterUnitOperations(uo => {\r\n return (\r\n uo.category === unitOperationsConfig.splitter.key ||\r\n uo.category === unitOperationsConfig.fuelGasSplitter.key ||\r\n uo.category === unitOperationsConfig.waterSplitter.key\r\n );\r\n });\r\n\r\n const productTanks = c.filterUnitOperations(uo => {\r\n return uo.category === unitOperationsConfig.productTank.key;\r\n });\r\n\r\n const headers = c.filterUnitOperations(uo => {\r\n return uo.category === unitOperationsConfig.waterHeader.key;\r\n });\r\n\r\n const optimizableUnits = c.filterUnitOperations(uo => {\r\n return (\r\n uo.category === unitOperationsConfig.diluentSource.key ||\r\n uo.category === unitOperationsConfig.thirdPartySource.key ||\r\n uo.category === unitOperationsConfig.fuelGasSource.key ||\r\n uo.category === unitOperationsConfig.waterSource.key\r\n );\r\n });\r\n\r\n for (const s of splitters) {\r\n this.detectActiveFlowsheetUnitsOperation(s, activeFlowsheetId);\r\n }\r\n\r\n for (const pT of productTanks) {\r\n this.detectActiveFlowsheetUnitsOperation(pT, activeFlowsheetId);\r\n }\r\n\r\n for (const h of headers) {\r\n this.detectActiveFlowsheetUnitsOperation(h, activeFlowsheetId);\r\n }\r\n\r\n for (const u of optimizableUnits) {\r\n if (activeFlowsheetId !== undefined) {\r\n if (u.flowsheetId === activeFlowsheetId) {\r\n switch (this.findActiveFlowsheetCategory(activeFlowsheetId, flowsheetOwners)) {\r\n default:\r\n this.optimizationTableVariables.push(OptimizationReportVariable.create((<any>u).volumetricFlowrate));\r\n break;\r\n case unitOperationsConfig.waterUtilityUnitOperation.key:\r\n this.optimizationTableVariables.push(OptimizationReportVariable.create((<any>u).massFlowrate));\r\n break;\r\n case unitOperationsConfig.fuelGasUtilityUnitOperation.key:\r\n this.optimizationTableVariables.push(OptimizationReportVariable.create((<any>u).flowrate));\r\n break;\r\n }\r\n }\r\n } else if (u.flowsheetId === '') {\r\n this.optimizationTableVariables.push(OptimizationReportVariable.create((<any>u).volumetricFlowrate));\r\n }\r\n }\r\n }\r\n\r\n detectActiveFlowsheetUnitsOperation(unitOperation: any, activeFlowsheetId: string) {\r\n if (activeFlowsheetId !== undefined) {\r\n if (unitOperation.flowsheetId === activeFlowsheetId) {\r\n this.createOptimizationReportVariableByUnitOpCategory(unitOperation);\r\n }\r\n } else if (unitOperation.flowsheetId === '') {\r\n this.createOptimizationReportVariableByUnitOpCategory(unitOperation);\r\n }\r\n }\r\n\r\n createOptimizationReportVariableByUnitOpCategory(unitOperation: any) {\r\n switch (unitOperation.category) {\r\n case unitOperationsConfig.splitter.key:\r\n case unitOperationsConfig.waterSplitter.key:\r\n case unitOperationsConfig.fuelGasSplitter.key:\r\n this.optimizationTableVariables = this.optimizationTableVariables.concat(\r\n OptimizationReportVariable.createFromSplitter(unitOperation as Splitter)\r\n );\r\n break;\r\n\r\n case unitOperationsConfig.productTank.key:\r\n this.optimizationTableVariables = this.optimizationTableVariables.concat(\r\n OptimizationReportVariable.createFromSplitter(unitOperation as ProductTank)\r\n );\r\n break;\r\n\r\n case unitOperationsConfig.waterHeader.key:\r\n this.optimizationTableVariables = this.optimizationTableVariables.concat(\r\n OptimizationReportVariable.createFromSplitter(unitOperation as WaterHeader)\r\n );\r\n break;\r\n }\r\n }\r\n\r\n findActiveFlowsheetCategory(activeFlowsheetId: string, flowsheetOwners: UnitOperation[]) {\r\n let flowsheetOwnerCategory;\r\n\r\n flowsheetOwners.forEach(uO => {\r\n if (uO.id === activeFlowsheetId) {\r\n flowsheetOwnerCategory = uO.category;\r\n }\r\n });\r\n\r\n return flowsheetOwnerCategory;\r\n }\r\n}\r\n","export class BaseConstraintReportVariable {\r\n name: string;\r\n isActive: boolean;\r\n unitOperationName: string;\r\n unitOperationId: string;\r\n constraintValue: number;\r\n currentValue: number;\r\n constraintUnit: string;\r\n isConstraintViolated: boolean;\r\n\r\n constructor(name: string, constraintValue: number) {\r\n this.name = name;\r\n this.constraintValue = constraintValue;\r\n this.isConstraintViolated = false;\r\n }\r\n\r\n static verifyIfConstraintIsViolated(constraintReportVariable: BaseConstraintReportVariable) {\r\n if (constraintReportVariable.name.includes('Minimum')) {\r\n if (constraintReportVariable.currentValue < constraintReportVariable.constraintValue) {\r\n return true;\r\n }\r\n } else if (constraintReportVariable.name === 'Flowrate') {\r\n if (constraintReportVariable.currentValue !== constraintReportVariable.constraintValue) {\r\n return true;\r\n }\r\n } else if (constraintReportVariable.currentValue > constraintReportVariable.constraintValue) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n}\r\n","import { WaterBoiler } from '../../../_unit-operations/utilties/water-boiler';\r\nimport { SimulationVariable } from '../../../simulation-variable';\r\nimport { SimulationVariableName } from '../../../../_config/simulation-variable-name.enum';\r\nimport { ConstraintReportVariable } from '../constraint-report-variable';\r\n\r\nexport class WaterBoilerConstraintReportVariableResolver {\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n private constructor() {}\r\n\r\n static create() {\r\n return new WaterBoilerConstraintReportVariableResolver();\r\n }\r\n\r\n addCurrentValueAndUnitToConstraintReportVariable(\r\n crv: ConstraintReportVariable,\r\n params: { uo: WaterBoiler; simVar: SimulationVariable }\r\n ): void {\r\n const { uo, simVar } = params;\r\n\r\n const inletStreams = uo.ownerCase.filterWaterMaterialStreams(s => {\r\n return s.outletUnitOperationId === uo.id;\r\n });\r\n\r\n if (!inletStreams.length) {\r\n return;\r\n }\r\n\r\n if (simVar.name === SimulationVariableName.MAXIMUM_FEED_CAPACITY) {\r\n crv.currentValue = inletStreams[0].massFlowrate.convertToDefaultUnit(true, false);\r\n crv.currentUnit = inletStreams[0].massFlowrate.getDefaultUnit();\r\n return;\r\n }\r\n if (simVar.name === SimulationVariableName.MINIMUM_MASS_FLOWRATE) {\r\n crv.currentValue = inletStreams[0].massFlowrate.convertToDefaultUnit(true, false);\r\n crv.currentUnit = inletStreams[0].massFlowrate.getDefaultUnit();\r\n return;\r\n }\r\n\r\n throw new Error(`Unknown constraint: ${simVar.name}`);\r\n }\r\n}\r\n","import { WaterTurbine } from '../../../_unit-operations/utilties/water-turbine';\r\nimport { SimulationVariable } from '../../../simulation-variable';\r\nimport { SimulationVariableName } from '../../../../_config/simulation-variable-name.enum';\r\nimport { ConstraintReportVariable } from '../constraint-report-variable';\r\n\r\nexport class WaterTurbineConstraintReportVariableResolver {\r\n static create() {\r\n return new WaterTurbineConstraintReportVariableResolver();\r\n }\r\n\r\n addCurrentValueAndUnitToConstraintReportVariable(\r\n crv: ConstraintReportVariable,\r\n params: { uo: WaterTurbine; simVar: SimulationVariable }\r\n ): void {\r\n const { uo, simVar } = params;\r\n\r\n if (simVar.name === SimulationVariableName.MINIMUM_DUTY) {\r\n crv.currentValue = uo.dutyResult.convertToDefaultUnit(true, false);\r\n crv.currentUnit = uo.dutyResult.getDefaultUnit();\r\n return;\r\n }\r\n\r\n if (simVar.name === SimulationVariableName.MAXIMUM_DUTY) {\r\n crv.currentValue = uo.dutyResult.convertToDefaultUnit(true, false);\r\n crv.currentUnit = uo.dutyResult.getDefaultUnit();\r\n return;\r\n }\r\n\r\n const inletStreamList = uo.ownerCase.filterWaterMaterialStreams(s => {\r\n return s.outletUnitOperationId === uo.id;\r\n });\r\n\r\n if (!inletStreamList.length) {\r\n return;\r\n }\r\n\r\n if (simVar.name === SimulationVariableName.MAXIMUM_FEED_CAPACITY) {\r\n crv.currentValue = inletStreamList[0].massFlowrate.convertToDefaultUnit(true, false);\r\n crv.currentUnit = inletStreamList[0].massFlowrate.getDefaultUnit();\r\n return;\r\n }\r\n if (simVar.name === SimulationVariableName.MINIMUM_MASS_FLOWRATE) {\r\n crv.currentValue = inletStreamList[0].massFlowrate.convertToDefaultUnit(true, false);\r\n crv.currentUnit = inletStreamList[0].massFlowrate.getDefaultUnit();\r\n return;\r\n }\r\n\r\n throw new Error(`Unknown constraint: ${simVar.name}`);\r\n }\r\n}\r\n","import { WaterCogeneration } from '../../../_unit-operations/utilties/water-cogeneration';\r\nimport { SimulationVariable } from '../../../simulation-variable';\r\nimport { SimulationVariableName } from '../../../../_config/simulation-variable-name.enum';\r\nimport { ConstraintReportVariable } from '../constraint-report-variable';\r\n\r\nexport class WaterCogenerationConstraintReportVariableResolver {\r\n static create() {\r\n return new WaterCogenerationConstraintReportVariableResolver();\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n private constructor() {}\r\n\r\n addCurrentValueAndUnitToConstraintReportVariable(\r\n crv: ConstraintReportVariable,\r\n params: { uo: WaterCogeneration; simVar: SimulationVariable }\r\n ): void {\r\n const { uo, simVar } = params;\r\n\r\n const inletStreamsList = uo.ownerCase.filterWaterMaterialStreams(s => {\r\n return s.outletUnitOperationId === uo.id;\r\n });\r\n\r\n if (!inletStreamsList.length) {\r\n return;\r\n }\r\n\r\n if (simVar.name === SimulationVariableName.MAXIMUM_FEED_CAPACITY) {\r\n crv.currentValue = inletStreamsList[0].massFlowrate.convertToDefaultUnit(true, false);\r\n crv.currentUnit = inletStreamsList[0].massFlowrate.getDefaultUnit();\r\n return;\r\n }\r\n\r\n if (simVar.name === SimulationVariableName.MINIMUM_MASS_FLOWRATE) {\r\n crv.currentValue = inletStreamsList[0].massFlowrate.convertToDefaultUnit(true, false);\r\n crv.currentUnit = inletStreamsList[0].massFlowrate.getDefaultUnit();\r\n return;\r\n }\r\n\r\n throw new Error(`Unknown constraint: ${simVar.name}`);\r\n }\r\n}\r\n","import { WaterValve } from '../../../_unit-operations/utilties/water-valve';\r\nimport { SimulationVariable } from '../../../simulation-variable';\r\nimport { SimulationVariableName } from '../../../../_config/simulation-variable-name.enum';\r\nimport { ConstraintReportVariable } from '../constraint-report-variable';\r\n\r\nexport class WaterValveConstraintReportVariableResolver {\r\n static create() {\r\n return new WaterValveConstraintReportVariableResolver();\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n private constructor() {}\r\n\r\n addCurrentValueAndUnitToConstraintReportVariable(\r\n crv: ConstraintReportVariable,\r\n params: { uo: WaterValve; simVar: SimulationVariable }\r\n ): void {\r\n const { uo, simVar } = params;\r\n\r\n const inletStreamList = uo.ownerCase.filterWaterMaterialStreams(s => {\r\n return s.outletUnitOperationId === uo.id;\r\n });\r\n\r\n if (!inletStreamList.length) {\r\n return;\r\n }\r\n\r\n if (simVar.name === SimulationVariableName.MAXIMUM_FEED_CAPACITY) {\r\n crv.currentValue = inletStreamList[0].massFlowrate.convertToDefaultUnit(true, false);\r\n crv.currentUnit = inletStreamList[0].massFlowrate.getDefaultUnit();\r\n return;\r\n }\r\n\r\n throw new Error(`Unknown constraint: ${simVar.name}`);\r\n }\r\n}\r\n","import { WaterSinkImport } from '../../../_unit-operations/utilties/water-sink-import';\r\nimport { SimulationVariable } from '../../../simulation-variable';\r\nimport { ConstraintReportVariable } from '../constraint-report-variable';\r\nimport { SimulationVariableName } from '../../../../_config/simulation-variable-name.enum';\r\n\r\nexport class WaterSinkImportConstraintReportVariableResolver {\r\n static create() {\r\n return new WaterSinkImportConstraintReportVariableResolver();\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n private constructor() {}\r\n\r\n addCurrentValueAndUnitToConstraintReportVariable(\r\n crv: ConstraintReportVariable,\r\n params: { uo: WaterSinkImport; simVar: SimulationVariable }\r\n ): void {\r\n const { uo, simVar } = params;\r\n\r\n const inletStreamsList = uo.ownerCase.filterWaterMaterialStreams(s => {\r\n return s.outletUnitOperationId === uo.id;\r\n });\r\n\r\n if (!inletStreamsList.length) {\r\n return;\r\n }\r\n\r\n if (simVar.name === SimulationVariableName.TEMPERATURE) {\r\n crv.currentValue = inletStreamsList[0].temperature.convertToDefaultUnit(true, false);\r\n crv.currentUnit = inletStreamsList[0].temperature.getDefaultUnit();\r\n return;\r\n }\r\n if (simVar.name === SimulationVariableName.PRESSURE) {\r\n crv.currentValue = inletStreamsList[0].pressure.convertToDefaultUnit(true, false);\r\n crv.currentUnit = inletStreamsList[0].pressure.getDefaultUnit();\r\n return;\r\n }\r\n if (simVar.name === SimulationVariableName.FLOWRATE) {\r\n crv.currentValue = inletStreamsList[0].massFlowrate.convertToDefaultUnit(true, false);\r\n crv.currentUnit = inletStreamsList[0].massFlowrate.getDefaultUnit();\r\n return;\r\n }\r\n\r\n throw new Error(`Unknown constraint: ${simVar.name}`);\r\n }\r\n}\r\n","import { FuelGasSinkImport } from '../../../_unit-operations/fuel-gas/fuel-gas-sink-import';\r\nimport { SimulationVariable } from '../../../simulation-variable';\r\nimport { SimulationVariableName } from '../../../../_config/simulation-variable-name.enum';\r\nimport { ConstraintReportVariable } from '../constraint-report-variable';\r\n\r\nexport class FuelGasSinkImportConstraintReportVariableResolver {\r\n static create() {\r\n return new FuelGasSinkImportConstraintReportVariableResolver();\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n private constructor() {}\r\n\r\n addCurrentValueAndUnitToConstraintReportVariable(\r\n crv: ConstraintReportVariable,\r\n params: { uo: FuelGasSinkImport; simVar: SimulationVariable }\r\n ): void {\r\n const { uo, simVar } = params;\r\n\r\n const inletStreamList = uo.ownerCase.filterFuelGasMaterialStreams(s => {\r\n return s.outletUnitOperationId === uo.id;\r\n });\r\n\r\n if (!inletStreamList.length) {\r\n return;\r\n }\r\n\r\n if (simVar.name === SimulationVariableName.ENERGY_DEMAND) {\r\n crv.currentValue = inletStreamList[0].heatFlow.convertToDefaultUnit(true, false);\r\n crv.currentUnit = inletStreamList[0].heatFlow.getDefaultUnit();\r\n return;\r\n }\r\n\r\n throw new Error(`Unknown constraint: ${simVar.name}`);\r\n }\r\n}\r\n","import { HgoHydrotreater } from '../../../_unit-operations/hgo-hydrotreater';\r\nimport { SimulationVariable } from '../../../simulation-variable';\r\nimport { SimulationVariableName } from '../../../../_config/simulation-variable-name.enum';\r\nimport { ConstraintReportVariable } from '../constraint-report-variable';\r\n\r\ndeclare const unitConverter: any;\r\n\r\nexport class HgoHydrotreaterConstraintReportVariableResolver {\r\n static create() {\r\n return new HgoHydrotreaterConstraintReportVariableResolver();\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n private constructor() {}\r\n\r\n addCurrentValueAndUnitToConstraintReportVariable(\r\n crv: ConstraintReportVariable,\r\n params: { uo: HgoHydrotreater; simVar: SimulationVariable }\r\n ): void {\r\n const { uo, simVar } = params;\r\n\r\n if (simVar.name === SimulationVariableName.MAXIMUM_FEED_CAPACITY) {\r\n crv.currentValue = uo.totalInletVolume.convertToDefaultUnit(true, false);\r\n crv.currentUnit = uo.totalInletVolume.getDefaultUnit();\r\n return;\r\n }\r\n\r\n if (simVar.name === SimulationVariableName.MINIMUM_FLOW) {\r\n crv.currentValue = uo.totalInletVolume.convertToDefaultUnit(true, false);\r\n crv.currentUnit = uo.totalInletVolume.getDefaultUnit();\r\n return;\r\n }\r\n\r\n // variables depending on inletStream\r\n const inletStreamList = uo.ownerCase.filterSuncorMaterialStreams(s => {\r\n return s.outletUnitOperationId === uo.id;\r\n });\r\n\r\n if (!inletStreamList.length) {\r\n return;\r\n }\r\n\r\n if (simVar.name === SimulationVariableName.MAXIMUM_NITROGEN) {\r\n crv.currentValue = inletStreamList[0].nitrogen.convertToAnotherUnit(unitConverter.units.MassFraction.PPMW, false);\r\n crv.currentUnit = unitConverter.units.MassFraction.PPMW;\r\n return;\r\n }\r\n\r\n if (simVar.name === SimulationVariableName.MAXIMUM_SULFUR_CONTENT) {\r\n crv.currentValue = inletStreamList[0].sulfur.convertToAnotherUnit(\r\n unitConverter.units.MassFraction.WATER_PERCENT,\r\n false\r\n );\r\n crv.currentUnit = unitConverter.units.MassFraction.WATER_PERCENT;\r\n return;\r\n }\r\n\r\n throw new Error(`Unknown constraint: ${simVar.name}`);\r\n }\r\n}\r\n","import { LgoHydrotreater } from '../../../_unit-operations/lgo-hydrotreater';\r\nimport { SimulationVariable } from '../../../simulation-variable';\r\nimport { SimulationVariableName } from '../../../../_config/simulation-variable-name.enum';\r\nimport { ConstraintReportVariable } from '../constraint-report-variable';\r\n\r\ndeclare const unitConverter: any;\r\n\r\nexport class LgoHydrotreaterConstraintReportVariableResolver {\r\n static create() {\r\n return new LgoHydrotreaterConstraintReportVariableResolver();\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n private constructor() {}\r\n\r\n addCurrentValueAndUnitToConstraintReportVariable(\r\n crv: ConstraintReportVariable,\r\n params: { uo: LgoHydrotreater; simVar: SimulationVariable }\r\n ): void {\r\n const { uo, simVar } = params;\r\n\r\n if (simVar.name === SimulationVariableName.MAXIMUM_FEED_CAPACITY) {\r\n crv.currentValue = uo.totalInletVolume.convertToDefaultUnit(true, false);\r\n crv.currentUnit = uo.totalInletVolume.getDefaultUnit();\r\n return;\r\n }\r\n if (simVar.name === SimulationVariableName.MINIMUM_FLOW) {\r\n crv.currentValue = uo.totalInletVolume.convertToDefaultUnit(true, false);\r\n crv.currentUnit = uo.totalInletVolume.getDefaultUnit();\r\n return;\r\n }\r\n\r\n // variables depending on inletStream\r\n const inletStreamList = uo.ownerCase.filterSuncorMaterialStreams(s => {\r\n return s.outletUnitOperationId === uo.id;\r\n });\r\n\r\n if (!inletStreamList.length) {\r\n return;\r\n }\r\n\r\n if (simVar.name === SimulationVariableName.MAXIMUM_SULFUR_CONTENT) {\r\n crv.currentValue = inletStreamList[0].sulfur.convertToAnotherUnit(\r\n unitConverter.units.MassFraction.WATER_PERCENT,\r\n false\r\n );\r\n crv.currentUnit = unitConverter.units.MassFraction.WATER_PERCENT;\r\n return;\r\n }\r\n\r\n if (simVar.name === SimulationVariableName.MAXIMUM_NITROGEN) {\r\n crv.currentValue = inletStreamList[0].nitrogen.convertToAnotherUnit(unitConverter.units.MassFraction.PPMW, false);\r\n crv.currentUnit = unitConverter.units.MassFraction.PPMW;\r\n return;\r\n }\r\n\r\n throw new Error(`Unknown constraint: ${simVar.name}`);\r\n }\r\n}\r\n","import { WaterSink } from '../../../_unit-operations/utilties/water-sink';\r\nimport { SimulationVariable } from '../../../simulation-variable';\r\nimport { SimulationVariableName } from '../../../../_config/simulation-variable-name.enum';\r\nimport { ConstraintReportVariable } from '../constraint-report-variable';\r\n\r\nexport class WaterSinkConstraintReportVariableResolver {\r\n static create() {\r\n return new WaterSinkConstraintReportVariableResolver();\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n private constructor() {}\r\n\r\n addCurrentValueAndUnitToConstraintReportVariable(\r\n crv: ConstraintReportVariable,\r\n params: { uo: WaterSink; simVar: SimulationVariable }\r\n ): void {\r\n const { uo, simVar } = params;\r\n\r\n if (simVar.name === SimulationVariableName.MAXIMUM_MASS_FLOWRATE) {\r\n crv.currentValue = uo.maximumMassFlowrate.convertToDefaultUnit(true, false);\r\n crv.currentUnit = uo.maximumMassFlowrate.getDefaultUnit();\r\n return;\r\n }\r\n\r\n if (simVar.name === SimulationVariableName.MINIMUM_MASS_FLOWRATE) {\r\n crv.currentValue = uo.minimumMassFlowrate.convertToDefaultUnit(true, false);\r\n crv.currentUnit = uo.minimumMassFlowrate.getDefaultUnit();\r\n return;\r\n }\r\n\r\n throw new Error(`Unknown constraint: ${simVar.name}`);\r\n }\r\n}\r\n","import { FluidCoker } from '../../../_unit-operations/fluid-coker';\r\nimport { SimulationVariable } from '../../../simulation-variable';\r\nimport { SimulationVariableName } from '../../../../_config/simulation-variable-name.enum';\r\nimport { ConstraintReportVariable } from '../constraint-report-variable';\r\n\r\nexport class FluidCokerConstraintReportVariableResolver {\r\n static create() {\r\n return new FluidCokerConstraintReportVariableResolver();\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n private constructor() {}\r\n\r\n addCurrentValueAndUnitToConstraintReportVariable(\r\n crv: ConstraintReportVariable,\r\n params: { uo: FluidCoker; simVar: SimulationVariable }\r\n ): void {\r\n const { uo, simVar } = params;\r\n\r\n if (simVar.name === SimulationVariableName.MINIMUM_API) {\r\n crv.currentValue = uo.feedDensity.convertToDefaultUnit(true, false);\r\n crv.currentUnit = uo.feedDensity.getDefaultUnit();\r\n return;\r\n }\r\n\r\n if (simVar.name === SimulationVariableName.MAXIMUM_FEED_CAPACITY) {\r\n crv.currentValue = uo.totalInletVolume.convertToDefaultUnit(true, false);\r\n crv.currentUnit = uo.totalInletVolume.getDefaultUnit();\r\n return;\r\n }\r\n\r\n if (simVar.name === SimulationVariableName.MINIMUM_FLOW) {\r\n crv.currentValue = uo.totalInletVolume.convertToDefaultUnit(true, false);\r\n crv.currentUnit = uo.totalInletVolume.getDefaultUnit();\r\n return;\r\n }\r\n\r\n // variables depending on InletStream\r\n const inletStreamList = uo.ownerCase.filterSuncorMaterialStreams(s => {\r\n return s.outletUnitOperationId === uo.id;\r\n });\r\n\r\n if (!inletStreamList.length) {\r\n return;\r\n }\r\n\r\n if (simVar.name === SimulationVariableName.MAXIMUM_CCR) {\r\n crv.currentValue = inletStreamList[0].ccr.convertToDefaultUnit(true, false);\r\n crv.currentUnit = inletStreamList[0].ccr.getDefaultUnit();\r\n return;\r\n }\r\n\r\n throw new Error(`Unknown constraint: ${simVar.name}`);\r\n }\r\n}\r\n","import { Upgrader } from '../../../_unit-operations/upgrader';\r\nimport { SimulationVariable } from '../../../simulation-variable';\r\nimport { SimulationVariableName } from '../../../../_config/simulation-variable-name.enum';\r\nimport { ConstraintReportVariable } from '../constraint-report-variable';\r\n\r\nexport class UpgraderConstraintReportVariableResolver {\r\n static create() {\r\n return new UpgraderConstraintReportVariableResolver();\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n private constructor() {}\r\n\r\n addCurrentValueAndUnitToConstraintReportVariable(\r\n crv: ConstraintReportVariable,\r\n params: { uo: Upgrader; simVar: SimulationVariable }\r\n ): void {\r\n const { uo, simVar } = params;\r\n if (simVar.name === SimulationVariableName.AMINE_RATE_CAPACITY) {\r\n crv.currentValue = uo.amineCirculationRate.convertToDefaultUnit(true, false);\r\n crv.currentUnit = uo.amineCirculationRate.getDefaultUnit();\r\n return;\r\n }\r\n\r\n if (simVar.name === SimulationVariableName.SULFUR_CAPACITY) {\r\n crv.currentValue = uo.totalH2SProduction.convertToDefaultUnit(true, false);\r\n crv.currentUnit = uo.totalH2SProduction.getDefaultUnit();\r\n return;\r\n }\r\n\r\n // TODO check if this is correct... getting the value from HYDROGEN USE??\r\n if (simVar.name === SimulationVariableName.MAXIMUM_HYDROGEN_PRODUCTION) {\r\n crv.currentValue = uo.hydrogenUse.convertToDefaultUnit(true, false);\r\n crv.currentUnit = uo.hydrogenUse.getDefaultUnit();\r\n return;\r\n }\r\n\r\n // TODO check if this is correct... getting the value from HYDROGEN USE??\r\n if (simVar.name === SimulationVariableName.MAXIMUM_FEED_CAPACITY) {\r\n crv.currentValue = uo.hydrogenUse.convertToDefaultUnit(true, false);\r\n crv.currentUnit = uo.hydrogenUse.getDefaultUnit();\r\n return;\r\n }\r\n // TODO check if this is correct...\r\n if (simVar.name === SimulationVariableName.CAPACITY) {\r\n crv.currentValue = uo.capacity.convertToDefaultUnit(true, false);\r\n crv.currentUnit = uo.capacity.getDefaultUnit();\r\n return;\r\n }\r\n\r\n // TODO check if this is correct... getting the value from HYDROGEN USE??\r\n if (simVar.name === SimulationVariableName.MAXIMUM_SULFUR_CONTENT) {\r\n crv.currentValue = uo.hydrogenUse.convertToDefaultUnit(true, false);\r\n crv.currentUnit = uo.hydrogenUse.getDefaultUnit();\r\n return;\r\n }\r\n\r\n // TODO check if this is correct... getting the value from HYDROGEN USE??\r\n if (simVar.name === SimulationVariableName.MAXIMUM_MASS_DENSITY) {\r\n crv.currentValue = uo.hydrogenUse.convertToDefaultUnit(true, false);\r\n crv.currentUnit = uo.hydrogenUse.getDefaultUnit();\r\n return;\r\n }\r\n\r\n throw new Error(`Unknown constraint: ${simVar.name}`);\r\n }\r\n}\r\n","import { ConstraintReportVariable } from '../constraint-report-variable';\r\nimport { SimulationVariable } from '../../../simulation-variable';\r\nimport { CommodityTank } from '../../../_unit-operations/commodity-tank';\r\nimport { SimulationVariableName } from '../../../../_config/simulation-variable-name.enum';\r\n\r\nexport class CommodityTankReportVariableResolver {\r\n static create() {\r\n return new CommodityTankReportVariableResolver();\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n private constructor() {}\r\n\r\n addCurrentValueAndUnitToConstraintReportVariable(\r\n crv: ConstraintReportVariable,\r\n params: { uo: CommodityTank; simVar: SimulationVariable }\r\n ): void {\r\n const { uo, simVar } = params;\r\n\r\n // TODO only three constraints??? the other two are actually added in PROD - do they get value from commodityVOlume?\r\n if (simVar.name === SimulationVariableName.MAXIMUM_SULFUR) {\r\n crv.currentValue = uo.commoditySulfur.convertToDefaultUnit(true, false);\r\n crv.currentUnit = uo.commoditySulfur.getDefaultUnit();\r\n crv.constraintDisabled = uo.isBlendRatioConstraintSelected(); // TODO ask if this is correct\r\n return;\r\n }\r\n\r\n if (simVar.name === SimulationVariableName.MAXIMUM_NITROGEN) {\r\n crv.currentValue = uo.commodityNitrogen.convertToDefaultUnit(true, false);\r\n crv.currentUnit = uo.commodityNitrogen.getDefaultUnit();\r\n crv.constraintDisabled = uo.isBlendRatioConstraintSelected(); // TODO ask if this is correct\r\n return;\r\n }\r\n\r\n if (simVar.name === SimulationVariableName.MINIMUM_API) {\r\n crv.currentValue = uo.commodityDensity.convertToDefaultUnit(true, false);\r\n crv.currentUnit = uo.commodityDensity.getDefaultUnit();\r\n crv.constraintDisabled = uo.isBlendRatioConstraintSelected(); // TODO ask if this is correct\r\n return;\r\n }\r\n\r\n if (\r\n simVar.name === SimulationVariableName.MINIMUM_DEMAND ||\r\n simVar.name === SimulationVariableName.MAXIMUM_DEMAND\r\n ) {\r\n crv.currentValue = uo.commodityVolume.convertToDefaultUnit(true, false);\r\n crv.currentUnit = uo.commodityVolume.getDefaultUnit();\r\n return;\r\n }\r\n\r\n throw new Error(`Unknown constraint ${simVar.name}`);\r\n }\r\n}\r\n","import { SimulationVariable } from '../../simulation-variable';\r\nimport { CommodityTank } from '../../_unit-operations/commodity-tank';\r\nimport { unitOperationsConfig } from '../../../_config/unit-operations.config';\r\nimport { Refinery } from '../../_unit-operations/refinery';\r\nimport { Hydrotreater } from '../../_unit-operations/hydrotreater';\r\nimport { Upgrader } from '../../_unit-operations/upgrader';\r\nimport { Hydrocracker } from '../../_unit-operations/hydrocracker';\r\nimport { DCU } from '../../_unit-operations/dcu';\r\nimport { DiluentSource } from '../../_unit-operations/diluent-source';\r\nimport { SagdSource } from '../../_unit-operations/sagd-source';\r\nimport { MineSource } from '../../_unit-operations/mine-source';\r\nimport { FluidCoker } from '../../_unit-operations/fluid-coker';\r\nimport { HgoHydrotreater } from '../../_unit-operations/hgo-hydrotreater';\r\nimport { LgoHydrotreater } from '../../_unit-operations/lgo-hydrotreater';\r\nimport { SimulationVariableName } from '../../../_config/simulation-variable-name.enum';\r\nimport { WaterTurbine } from '../../_unit-operations/utilties/water-turbine';\r\nimport { UnitOperation } from '../../unit-operation';\r\nimport { WaterSink } from '../../_unit-operations/utilties/water-sink';\r\nimport { WaterBoiler } from '../../_unit-operations/utilties/water-boiler';\r\nimport { WaterValve } from '../../_unit-operations/utilties/water-valve';\r\nimport { WaterSinkImport } from '../../_unit-operations/utilties/water-sink-import';\r\nimport { FuelGasSinkImport } from '../../_unit-operations/fuel-gas/fuel-gas-sink-import';\r\nimport { WaterCogeneration } from '../../_unit-operations/utilties/water-cogeneration';\r\nimport { BaseConstraintReportVariable } from './base-constraint-report-variable';\r\nimport { WaterBoilerConstraintReportVariableResolver } from './variable-resolvers/water-boiler-constraint-report-variable-resolver';\r\nimport { WaterTurbineConstraintReportVariableResolver } from './variable-resolvers/water-turbine-constraint-report-variable-resolver';\r\nimport { WaterCogenerationConstraintReportVariableResolver } from './variable-resolvers/water-cogeneration-constraint-report-variable-resolver';\r\nimport { WaterValveConstraintReportVariableResolver } from './variable-resolvers/water-valve-constraint-report-variable-resolver';\r\nimport { WaterSinkImportConstraintReportVariableResolver } from './variable-resolvers/water-sink-import-constraint-report-variable-resolver';\r\nimport { FuelGasSinkImportConstraintReportVariableResolver } from './variable-resolvers/fuel-gas-sink-import-constraint-report-variable-resolver';\r\nimport { HgoHydrotreaterConstraintReportVariableResolver } from './variable-resolvers/hgo-hydrotreater-constraint-report-variable-resolver';\r\nimport { LgoHydrotreaterConstraintReportVariableResolver } from './variable-resolvers/lgo-hydrotreater-constraint-report-variable-resolver';\r\nimport { WaterSinkConstraintReportVariableResolver } from './variable-resolvers/water-sink-constraint-report-variable-resolver';\r\nimport { FluidCokerConstraintReportVariableResolver } from './variable-resolvers/fluid-coker-constraint-report-variable-resolver';\r\nimport { UpgraderConstraintReportVariableResolver } from './variable-resolvers/upgrader-constraint-report-variable-resolver';\r\nimport { CommodityTankReportVariableResolver } from './variable-resolvers/commodity-tank-report-variable-resolver';\r\n\r\ndeclare let unitConverter: any;\r\n\r\nexport class ConstraintReportVariable extends BaseConstraintReportVariable {\r\n currentUnit: string;\r\n constraintDisabled: boolean;\r\n simVarId: string;\r\n\r\n constructor(name, constraintValue, constraintUnit, currentValue, currentUnit) {\r\n super(name, constraintValue);\r\n this.constraintUnit = constraintUnit;\r\n this.currentValue = currentValue;\r\n this.currentUnit = currentUnit;\r\n }\r\n\r\n static create(uo: UnitOperation, simVar: SimulationVariable): ConstraintReportVariable | undefined {\r\n // TODO: STOP HERE!!!! yes, you Programmer\r\n // before adding a lot of if's here, please follow the pattern used to get the values\r\n // for upgrader's constraint report variable - move the code to a separate class and just call it\r\n const inletStreamList = uo.ownerCase.filterSuncorMaterialStreams(s => {\r\n return s.outletUnitOperationId === uo.id;\r\n });\r\n\r\n const crv = new ConstraintReportVariable(\r\n simVar.name,\r\n simVar.convertToDefaultUnit(true, false),\r\n simVar.getDefaultUnit(),\r\n null,\r\n null\r\n );\r\n\r\n const simVarLowerCaseName = simVar.name.toLowerCase();\r\n\r\n crv.isActive = simVar.isActive;\r\n crv.unitOperationName = uo.name;\r\n crv.unitOperationId = uo.id;\r\n crv.simVarId = simVar.id;\r\n\r\n if (uo instanceof Upgrader) {\r\n UpgraderConstraintReportVariableResolver.create().addCurrentValueAndUnitToConstraintReportVariable(crv, {\r\n uo,\r\n simVar,\r\n });\r\n crv.isConstraintViolated = this.verifyIfConstraintIsViolated(crv);\r\n return crv;\r\n }\r\n\r\n if (uo instanceof WaterTurbine) {\r\n WaterTurbineConstraintReportVariableResolver.create().addCurrentValueAndUnitToConstraintReportVariable(crv, {\r\n uo,\r\n simVar,\r\n });\r\n crv.isConstraintViolated = this.verifyIfConstraintIsViolated(crv);\r\n return crv;\r\n }\r\n\r\n if (uo instanceof WaterSink) {\r\n WaterSinkConstraintReportVariableResolver.create().addCurrentValueAndUnitToConstraintReportVariable(crv, {\r\n uo,\r\n simVar,\r\n });\r\n crv.isConstraintViolated = this.verifyIfConstraintIsViolated(crv);\r\n return crv;\r\n }\r\n\r\n if (uo instanceof WaterBoiler) {\r\n WaterBoilerConstraintReportVariableResolver.create().addCurrentValueAndUnitToConstraintReportVariable(crv, {\r\n uo,\r\n simVar,\r\n });\r\n crv.isConstraintViolated = this.verifyIfConstraintIsViolated(crv);\r\n return crv;\r\n }\r\n\r\n if (uo instanceof WaterCogeneration) {\r\n WaterCogenerationConstraintReportVariableResolver.create().addCurrentValueAndUnitToConstraintReportVariable(crv, {\r\n uo,\r\n simVar,\r\n });\r\n crv.isConstraintViolated = this.verifyIfConstraintIsViolated(crv);\r\n\r\n return crv;\r\n }\r\n\r\n if (uo instanceof WaterValve) {\r\n WaterValveConstraintReportVariableResolver.create().addCurrentValueAndUnitToConstraintReportVariable(crv, {\r\n uo,\r\n simVar,\r\n });\r\n\r\n crv.isConstraintViolated = this.verifyIfConstraintIsViolated(crv);\r\n return crv;\r\n }\r\n\r\n if (uo instanceof WaterSinkImport) {\r\n WaterSinkImportConstraintReportVariableResolver.create().addCurrentValueAndUnitToConstraintReportVariable(crv, {\r\n uo,\r\n simVar,\r\n });\r\n\r\n crv.isConstraintViolated = this.verifyIfConstraintIsViolated(crv);\r\n return crv;\r\n }\r\n\r\n if (uo instanceof FluidCoker) {\r\n FluidCokerConstraintReportVariableResolver.create().addCurrentValueAndUnitToConstraintReportVariable(crv, {\r\n uo,\r\n simVar,\r\n });\r\n crv.isConstraintViolated = this.verifyIfConstraintIsViolated(crv);\r\n return crv;\r\n }\r\n\r\n if (uo instanceof FuelGasSinkImport) {\r\n FuelGasSinkImportConstraintReportVariableResolver.create().addCurrentValueAndUnitToConstraintReportVariable(crv, {\r\n uo,\r\n simVar,\r\n });\r\n crv.isConstraintViolated = this.verifyIfConstraintIsViolated(crv);\r\n return crv;\r\n }\r\n\r\n if (uo instanceof CommodityTank) {\r\n CommodityTankReportVariableResolver.create().addCurrentValueAndUnitToConstraintReportVariable(crv, {\r\n uo,\r\n simVar,\r\n });\r\n\r\n crv.isConstraintViolated = this.verifyIfConstraintIsViolated(crv);\r\n return crv;\r\n }\r\n if (uo instanceof HgoHydrotreater) {\r\n HgoHydrotreaterConstraintReportVariableResolver.create().addCurrentValueAndUnitToConstraintReportVariable(crv, {\r\n uo,\r\n simVar,\r\n });\r\n crv.isConstraintViolated = this.verifyIfConstraintIsViolated(crv);\r\n return crv;\r\n }\r\n if (uo instanceof LgoHydrotreater) {\r\n LgoHydrotreaterConstraintReportVariableResolver.create().addCurrentValueAndUnitToConstraintReportVariable(crv, {\r\n uo,\r\n simVar,\r\n });\r\n crv.isConstraintViolated = this.verifyIfConstraintIsViolated(crv);\r\n return crv;\r\n }\r\n if (uo instanceof Hydrotreater) {\r\n if (simVar.name === SimulationVariableName.MAXIMUM_NITROGEN) {\r\n crv.currentValue = uo.totalInletNitrogen.convertToDefaultUnit(true, false);\r\n crv.currentUnit = uo.totalInletNitrogen.getDefaultUnit();\r\n crv.isConstraintViolated = this.verifyIfConstraintIsViolated(crv);\r\n return crv;\r\n }\r\n } else if (uo instanceof Hydrocracker || uo instanceof DCU) {\r\n if (inletStreamList.length) {\r\n if (simVar.name === 'Minimum API') {\r\n crv.currentValue = inletStreamList[0].massDensity.convertToDefaultUnit(true, false);\r\n crv.currentUnit = inletStreamList[0].massDensity.getDefaultUnit();\r\n crv.isConstraintViolated = this.verifyIfConstraintIsViolated(crv);\r\n return crv;\r\n }\r\n if (simVar.name === SimulationVariableName.MAXIMUM_CCR) {\r\n crv.currentValue = inletStreamList[0].ccr.convertToDefaultUnit(true, false);\r\n crv.currentUnit = inletStreamList[0].ccr.getDefaultUnit();\r\n crv.isConstraintViolated = this.verifyIfConstraintIsViolated(crv);\r\n return crv;\r\n }\r\n }\r\n } else if (uo instanceof DiluentSource || uo instanceof SagdSource || uo instanceof MineSource) {\r\n const outletStream = uo.ownerCase.filterSuncorMaterialStreams(s => {\r\n return s.inletUnitOperationId === uo.id;\r\n });\r\n if (outletStream.length) {\r\n // These unit operations only have 1 constraint\r\n crv.currentValue = outletStream[0].volumetricFlowrate.convertToDefaultUnit(true, false);\r\n crv.currentUnit = outletStream[0].volumetricFlowrate.getDefaultUnit();\r\n crv.isConstraintViolated = this.verifyIfConstraintIsViolated(crv);\r\n return crv;\r\n }\r\n }\r\n if (simVarLowerCaseName.includes('mass density') || simVarLowerCaseName.includes('density spec')) {\r\n crv.constraintValue = simVar.roundCurrentValue();\r\n crv.constraintUnit = simVar.getInternalUnit();\r\n }\r\n\r\n if (inletStreamList.length) {\r\n if (simVarLowerCaseName.includes('nitrogen')) {\r\n crv.currentValue = inletStreamList[0].nitrogen.convertToAnotherUnit(\r\n unitConverter.units.MassFraction.PPMW,\r\n false\r\n );\r\n crv.currentUnit = unitConverter.units.MassFraction.PPMW;\r\n crv.constraintValue = simVar.convertToAnotherUnit(unitConverter.units.MassFraction.PPMW, false);\r\n crv.constraintUnit = unitConverter.units.MassFraction.PPMW;\r\n } else if (simVarLowerCaseName.includes('sulfur')) {\r\n if (uo instanceof Refinery) {\r\n const ref = uo as Refinery;\r\n if (ref.hasTwoInlets) {\r\n if (simVarLowerCaseName.includes('train 2')) {\r\n const stream = inletStreamList.filter(s => {\r\n return s.toPort === 'train2';\r\n })[0];\r\n crv.currentValue = stream.sulfur.convertToDefaultUnit(true, false);\r\n crv.currentUnit = stream.sulfur.getDefaultUnit();\r\n } else {\r\n const stream = inletStreamList.filter(s => {\r\n return s.toPort !== 'train2';\r\n })[0];\r\n crv.currentValue = stream.sulfur.convertToDefaultUnit(true, false);\r\n crv.currentUnit = stream.sulfur.getDefaultUnit();\r\n }\r\n } else {\r\n crv.currentValue = inletStreamList[0].sulfur.convertToDefaultUnit(true, false);\r\n crv.currentUnit = inletStreamList[0].sulfur.getDefaultUnit();\r\n }\r\n } else if (uo instanceof Hydrotreater) {\r\n crv.currentValue = uo.totalInletSulfur.convertToDefaultUnit(true, false);\r\n crv.currentUnit = uo.totalInletSulfur.getDefaultUnit();\r\n } else {\r\n crv.currentValue = inletStreamList[0].sulfur.convertToDefaultUnit(true, false);\r\n crv.currentUnit = inletStreamList[0].sulfur.getDefaultUnit();\r\n }\r\n } else if (simVarLowerCaseName.includes('mass density') || simVarLowerCaseName.includes('density spec')) {\r\n if (uo instanceof Refinery) {\r\n const ref = uo as Refinery;\r\n if (ref.hasTwoInlets) {\r\n if (simVarLowerCaseName.includes('train 2')) {\r\n const stream = inletStreamList.filter(s => {\r\n return s.toPort === 'train2';\r\n })[0];\r\n crv.currentValue = stream.massDensity.roundCurrentValue();\r\n crv.currentUnit = stream.massDensity.getInternalUnit();\r\n } else {\r\n const stream = inletStreamList.filter(s => {\r\n return s.toPort !== 'train2';\r\n })[0];\r\n crv.currentValue = stream.massDensity.roundCurrentValue();\r\n crv.currentUnit = stream.massDensity.getInternalUnit();\r\n }\r\n } else {\r\n crv.currentValue = inletStreamList[0].massDensity.roundCurrentValue();\r\n crv.currentUnit = inletStreamList[0].massDensity.getInternalUnit();\r\n }\r\n } else {\r\n crv.currentValue = inletStreamList[0].massDensity.roundCurrentValue();\r\n crv.currentUnit = inletStreamList[0].massDensity.getInternalUnit();\r\n }\r\n } else if (simVarLowerCaseName.includes('hydrogen')) {\r\n crv.currentValue = null;\r\n crv.currentUnit = null;\r\n } else if (uo instanceof Refinery) {\r\n const ref = uo as Refinery;\r\n if (ref.hasTwoInlets) {\r\n if (simVarLowerCaseName.includes('train 2')) {\r\n const stream = inletStreamList.filter(s => {\r\n return s.toPort === 'train2';\r\n })[0];\r\n crv.currentValue = stream.volumetricFlowrate.convertToDefaultUnit(true, false);\r\n crv.currentUnit = stream.volumetricFlowrate.getDefaultUnit();\r\n } else {\r\n const stream = inletStreamList.filter(s => {\r\n return s.toPort !== 'train2';\r\n })[0];\r\n crv.currentValue = stream.volumetricFlowrate.convertToDefaultUnit(true, false);\r\n crv.currentUnit = stream.volumetricFlowrate.getDefaultUnit();\r\n }\r\n } else {\r\n crv.currentValue = inletStreamList[0].volumetricFlowrate.convertToDefaultUnit(true, false);\r\n crv.currentUnit = inletStreamList[0].volumetricFlowrate.getDefaultUnit();\r\n }\r\n } else if (uo instanceof Hydrotreater) {\r\n crv.currentValue = uo.totalInletVolume.convertToDefaultUnit(true, false);\r\n crv.currentUnit = uo.totalInletVolume.getDefaultUnit();\r\n } else {\r\n crv.currentValue = inletStreamList[0].volumetricFlowrate.convertToDefaultUnit(true, false);\r\n crv.currentUnit = inletStreamList[0].volumetricFlowrate.getDefaultUnit();\r\n }\r\n }\r\n\r\n if (uo instanceof Hydrotreater) {\r\n const disabledNames = [\r\n SimulationVariableName.MAXIMUM_SULFUR_CONTENT,\r\n SimulationVariableName.MAXIMUM_NITROGEN,\r\n ] as string[];\r\n if (disabledNames.indexOf(simVar.name) >= 0) {\r\n crv.constraintDisabled = uo.constraintOption === 'blendRatio';\r\n }\r\n }\r\n\r\n crv.isConstraintViolated = this.verifyIfConstraintIsViolated(crv);\r\n return crv;\r\n }\r\n}\r\n","import { UnitOperation } from '../../unit-operation';\r\nimport { Mixer } from '../../_unit-operations/mixer';\r\nimport { isNullOrUndefined, roundNumber } from '../../../_utils/utils';\r\nimport { RangeDistributionConstraint } from '../../_unit-operations/range-distribution-constraint';\r\nimport { Splitter } from '../../_unit-operations/splitter';\r\nimport { RangeDistributionRatioVariable } from '../../_unit-operations/range-distribution-ratio-variable';\r\nimport { BaseConstraintReportVariable } from './base-constraint-report-variable';\r\n\r\ndeclare let unitConverter: any;\r\n\r\nexport class MixingConstraintReportVariable extends BaseConstraintReportVariable {\r\n id: string;\r\n\r\n constructor(name: string, constraintValue: number, currentValue?: number) {\r\n super(name, constraintValue);\r\n this.currentValue = currentValue;\r\n this.constraintUnit = unitConverter.units.Dimensionless.FRACTION;\r\n }\r\n\r\n static create(uo: UnitOperation, constraint: RangeDistributionConstraint): MixingConstraintReportVariable {\r\n const reportVariable = new MixingConstraintReportVariable(constraint.constraintName, constraint.constraintValue);\r\n\r\n reportVariable.id = constraint.id;\r\n reportVariable.isActive = constraint.isActive;\r\n reportVariable.unitOperationName = uo.name;\r\n reportVariable.unitOperationId = uo.id;\r\n\r\n let mixingRatioVariable: RangeDistributionRatioVariable;\r\n if (uo instanceof Mixer) {\r\n mixingRatioVariable = uo.findMixingRatioVariable(constraint.sourceUnitOperationId);\r\n } else if (uo instanceof Splitter) {\r\n mixingRatioVariable = uo.findDistributionRatioVariable(constraint.sourceUnitOperationId);\r\n }\r\n\r\n reportVariable.currentValue = isNullOrUndefined(mixingRatioVariable.value)\r\n ? null\r\n : roundNumber(mixingRatioVariable.value, 4);\r\n\r\n reportVariable.isConstraintViolated = this.verifyIfConstraintIsViolated(reportVariable);\r\n\r\n return reportVariable;\r\n }\r\n}\r\n","import { Case } from '../../case';\r\nimport { ConstraintReportVariable } from './constraint-report-variable';\r\nimport { unitOperationsConfig } from '../../../_config/unit-operations.config';\r\nimport { UnitOperationConstraints } from '../../_unit-operations/unit-operation-constraints';\r\nimport { UnitOperation } from '../../unit-operation';\r\nimport { Upgrader } from '../../_unit-operations/upgrader';\r\nimport { isEmptyValue } from '../../../_utils/utils';\r\nimport { SimulationVariableName } from '../../../_config/simulation-variable-name.enum';\r\nimport { SuncorConstraint } from '../../_unit-operations/suncor-constraint';\r\nimport { SulfurPlant } from '../../_unit-operations/sulfur-plant';\r\nimport { HydrogenPlant } from '../../_unit-operations/hydrogen-plant';\r\nimport { Mixer } from '../../_unit-operations/mixer';\r\nimport { MixingConstraintReportVariable } from './mixing-constraint-report-variable';\r\nimport { RangeDistributionConstraint } from '../../_unit-operations/range-distribution-constraint';\r\nimport { MixingConstraints } from '../../_unit-operations/mixing-constraints';\r\nimport { Splitter } from '../../_unit-operations/splitter';\r\nimport { BaseConstraintReportVariable } from './base-constraint-report-variable';\r\n\r\nexport class ConstraintsReport {\r\n constraints: Array<BaseConstraintReportVariable> = [];\r\n\r\n constructor(c: Case, activeFlowhseetId: string) {\r\n this.initReport(c, activeFlowhseetId);\r\n }\r\n\r\n initReport(c: Case, activeFlowsheetId: string) {\r\n const unitOperations = c.filterUnitOperations(uo => {\r\n return (\r\n uo.category === unitOperationsConfig.upgrader.key ||\r\n uo.category === unitOperationsConfig.thirdPartyRefinery.key ||\r\n uo.category === unitOperationsConfig.dcu.key ||\r\n uo.category === unitOperationsConfig.dru.key ||\r\n uo.category === unitOperationsConfig.vac.key ||\r\n uo.category === unitOperationsConfig.hydrotreater.key ||\r\n uo.category === unitOperationsConfig.commodityTank.key ||\r\n uo.category === unitOperationsConfig.pipe.key ||\r\n uo.category === unitOperationsConfig.bitumenConversion.key ||\r\n uo.category === unitOperationsConfig.refinery.key ||\r\n uo.category === unitOperationsConfig.hydrocracker.key ||\r\n uo.category === unitOperationsConfig.diluentSource.key ||\r\n uo.category === unitOperationsConfig.mine.key ||\r\n uo.category === unitOperationsConfig.sagd.key ||\r\n uo.category === unitOperationsConfig.fluidCoker.key ||\r\n uo.category === unitOperationsConfig.hgoHydrotreater.key ||\r\n uo.category === unitOperationsConfig.lgoHydrotreater.key ||\r\n uo.category === unitOperationsConfig.waterTurbine.key ||\r\n uo.category === unitOperationsConfig.waterSink.key ||\r\n uo.category === unitOperationsConfig.waterBoiler.key ||\r\n uo.category === unitOperationsConfig.waterCogeneration.key ||\r\n uo.category === unitOperationsConfig.waterValve.key ||\r\n uo.category === unitOperationsConfig.waterSinkImport.key ||\r\n uo.category === unitOperationsConfig.fuelGasSinkImport.key ||\r\n uo.category === unitOperationsConfig.mixer.key ||\r\n uo.category === unitOperationsConfig.splitter.key\r\n );\r\n });\r\n\r\n for (const uo of unitOperations) {\r\n if ((uo as any).constraints) {\r\n const { constraints } = (uo as any).constraints as UnitOperationConstraints | MixingConstraints;\r\n // eslint-disable-next-line guard-for-in\r\n for (const id in constraints) {\r\n const constraint = constraints[id];\r\n if (constraint.constraintValueDefined()) {\r\n const suncorConstraint = constraint as SuncorConstraint;\r\n const mixingConstraint = constraint as RangeDistributionConstraint;\r\n\r\n if (!isEmptyValue(activeFlowsheetId)) {\r\n if (uo.flowsheetId === activeFlowsheetId || uo.id === activeFlowsheetId) {\r\n if (uo instanceof Upgrader) {\r\n this.filterConstraintsForUpgradersOnSecondLevel(c, uo, suncorConstraint);\r\n } else if (this.isRangeConstraintsUser(uo)) {\r\n this.createMixingConstraintReportVariable(uo, mixingConstraint);\r\n } else {\r\n this.createConstraintReportVariable(uo, suncorConstraint);\r\n }\r\n }\r\n } else if (uo.flowsheetId === '') {\r\n if (uo instanceof Upgrader) {\r\n this.filterConstraintsForUpgradersOnFirstLevel(c, uo, suncorConstraint);\r\n } else if (this.isRangeConstraintsUser(uo)) {\r\n this.createMixingConstraintReportVariable(uo, mixingConstraint);\r\n } else {\r\n this.createConstraintReportVariable(uo, suncorConstraint);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n filterConstraintsForUpgradersOnSecondLevel(c: Case, uo: UnitOperation, constraint: SuncorConstraint) {\r\n if (\r\n this.detectHydrogenPlants(c, uo.id).length > 0 &&\r\n constraint.constraint.name === SimulationVariableName.MAXIMUM_HYDROGEN_PRODUCTION\r\n ) {\r\n this.createConstraintReportVariable(uo, constraint);\r\n }\r\n\r\n if (\r\n this.detectSulfurPlants(c, uo.id).length > 0 &&\r\n constraint.constraint.name === SimulationVariableName.SULFUR_CAPACITY\r\n ) {\r\n this.createConstraintReportVariable(uo, constraint);\r\n }\r\n }\r\n\r\n filterConstraintsForUpgradersOnFirstLevel(c: Case, uo: UnitOperation, constraint: SuncorConstraint) {\r\n if (this.detectSulfurAndHydrogenPlants(c, uo.id).length === 0) {\r\n this.createConstraintReportVariable(uo, constraint);\r\n } else if (\r\n this.detectHydrogenPlants(c, uo.id).length > 0 &&\r\n this.detectSulfurPlants(c, uo.id).length === 0 &&\r\n constraint.constraint.name !== SimulationVariableName.MAXIMUM_HYDROGEN_PRODUCTION\r\n ) {\r\n this.createConstraintReportVariable(uo, constraint);\r\n } else if (\r\n this.detectHydrogenPlants(c, uo.id).length === 0 &&\r\n this.detectSulfurPlants(c, uo.id).length > 0 &&\r\n constraint.constraint.name !== SimulationVariableName.SULFUR_CAPACITY\r\n ) {\r\n this.createConstraintReportVariable(uo, constraint);\r\n } else if (\r\n constraint.constraint.name !== SimulationVariableName.MAXIMUM_HYDROGEN_PRODUCTION &&\r\n constraint.constraint.name !== SimulationVariableName.SULFUR_CAPACITY\r\n ) {\r\n this.createConstraintReportVariable(uo, constraint);\r\n }\r\n }\r\n\r\n createConstraintReportVariable(uo: UnitOperation, constraint: SuncorConstraint) {\r\n this.constraints.push(ConstraintReportVariable.create(uo as UnitOperation, constraint.constraint));\r\n }\r\n\r\n createMixingConstraintReportVariable(uo: UnitOperation, constraint: RangeDistributionConstraint) {\r\n this.constraints.push(MixingConstraintReportVariable.create(uo as UnitOperation, constraint));\r\n }\r\n\r\n detectSulfurAndHydrogenPlants(c: Case, upgId: string) {\r\n return c.filterUnitOperations(uo => {\r\n return (uo instanceof SulfurPlant || uo instanceof HydrogenPlant) && uo.flowsheetId === upgId;\r\n });\r\n }\r\n\r\n detectSulfurPlants(c: Case, upgId: string) {\r\n return c.filterUnitOperations(uo => {\r\n return uo instanceof SulfurPlant && uo.flowsheetId === upgId;\r\n });\r\n }\r\n\r\n detectHydrogenPlants(c: Case, upgId: string) {\r\n return c.filterUnitOperations(uo => {\r\n return uo instanceof HydrogenPlant && uo.flowsheetId === upgId;\r\n });\r\n }\r\n\r\n isRangeConstraintsUser(unitOperation: UnitOperation): unitOperation is Mixer | Splitter {\r\n return unitOperation instanceof Mixer || unitOperation instanceof Splitter;\r\n }\r\n}\r\n","import { ReportValue } from './report-value';\r\nimport { Case } from '../case';\r\nimport { SuncorUnitOperation } from '../_unit-operations/suncor-unit-operation';\r\nimport { unitOperationsConfig } from '../../_config/unit-operations.config';\r\nimport { UnitOperation } from '../unit-operation';\r\nimport { SimulationVariable } from '../simulation-variable';\r\nimport { ReportDataSet } from './report-data-set';\r\nimport { isNullOrUndefined } from '../../_utils/utils';\r\n\r\ndeclare let unitConverter: any;\r\n\r\nexport class CapexReport {\r\n total: number;\r\n unit: string;\r\n contributionByCategory: Array<ReportValue> = [];\r\n contributionByUnit: Array<ReportDataSet> = [];\r\n\r\n constructor(c: Case) {\r\n this.initReport(c);\r\n }\r\n\r\n initReport(c: Case) {\r\n this.total = 0;\r\n\r\n const units = c.filterUnitOperations((uo: UnitOperation) => {\r\n return uo.category !== unitOperationsConfig.splitter.key && uo.category !== unitOperationsConfig.mixer.key;\r\n }) as Array<SuncorUnitOperation>;\r\n\r\n const valuesHolder = {};\r\n\r\n // with this, all unit operation types should be added automatically... except splitter and mixer\r\n // eslint-disable-next-line guard-for-in\r\n for (const cat in unitOperationsConfig) {\r\n const currentKey = unitOperationsConfig[cat].key;\r\n if (currentKey === unitOperationsConfig.splitter.key || currentKey === unitOperationsConfig.mixer.key) {\r\n continue;\r\n }\r\n\r\n valuesHolder[currentKey] = {};\r\n valuesHolder[currentKey].categoryValue = new ReportValue(0, unitOperationsConfig[cat].displayName, currentKey);\r\n valuesHolder[currentKey].categorySet = new ReportDataSet(unitOperationsConfig[cat].displayName, currentKey);\r\n }\r\n\r\n for (const uo of units) {\r\n const s = uo.capexTotal;\r\n const unitType = uo.category;\r\n let isInvalid;\r\n if (s) {\r\n isInvalid = isNaN(s.value) || isNullOrUndefined(s.value);\r\n } else {\r\n isInvalid = true;\r\n }\r\n valuesHolder[unitType].categoryValue.value += isInvalid ? 0 : s.value;\r\n valuesHolder[unitType].categorySet.addToData(\r\n new ReportValue(unitConverter.parseFloatString(isInvalid ? 0 : s.convertToDefaultUnit(true, false)), uo.name)\r\n );\r\n this.total += isInvalid ? 0 : s.value;\r\n }\r\n\r\n const sv = units.length ? units[0].capexTotal : null;\r\n\r\n // eslint-disable-next-line guard-for-in\r\n for (const cat in valuesHolder) {\r\n this.contributionByCategory.push(valuesHolder[cat].categoryValue);\r\n this.contributionByUnit.push(valuesHolder[cat].categorySet);\r\n }\r\n\r\n if (sv) {\r\n const internalUnit = sv.getInternalUnit();\r\n this.unit = sv.getDefaultUnit();\r\n\r\n for (const contrib of this.contributionByCategory) {\r\n contrib.value = unitConverter.parseFloatString(\r\n unitConverter(sv.quantity).convert(contrib.value, internalUnit, this.unit).round().getValue()\r\n );\r\n }\r\n\r\n const totalSv = new SimulationVariable(sv, sv.ownerCase, sv.ownerBaseObject);\r\n totalSv.value = this.total;\r\n this.total = unitConverter.parseFloatString(totalSv.convertToDefaultUnit(true, false));\r\n }\r\n }\r\n}\r\n","import { ReportValue } from './report-value';\r\nimport { Case } from '../case';\r\nimport { SuncorUnitOperation } from '../_unit-operations/suncor-unit-operation';\r\nimport { unitOperationsConfig } from '../../_config/unit-operations.config';\r\nimport { UnitOperation } from '../unit-operation';\r\nimport { SimulationVariable } from '../simulation-variable';\r\nimport { ReportDataSet } from './report-data-set';\r\nimport { isNullOrUndefined } from '../../_utils/utils';\r\n\r\ndeclare let unitConverter: any;\r\n\r\nexport class OpexReport {\r\n total: number;\r\n unit: string;\r\n contributionByCategory: Array<ReportValue> = [];\r\n contributionByUnit: Array<ReportDataSet> = [];\r\n\r\n constructor(c: Case) {\r\n this.initReport(c);\r\n }\r\n\r\n initReport(c: Case) {\r\n this.total = 0;\r\n\r\n const units = c.filterUnitOperations((uo: UnitOperation) => {\r\n return uo.category !== unitOperationsConfig.splitter.key && uo.category !== unitOperationsConfig.mixer.key;\r\n }) as Array<SuncorUnitOperation>;\r\n\r\n const valuesHolder = {};\r\n\r\n // with this, all unit operation types should be added automatically... except splitter and mixer\r\n // eslint-disable-next-line guard-for-in\r\n for (const cat in unitOperationsConfig) {\r\n const currentKey = unitOperationsConfig[cat].key;\r\n if (currentKey === unitOperationsConfig.splitter.key || currentKey === unitOperationsConfig.mixer.key) {\r\n continue;\r\n }\r\n\r\n valuesHolder[currentKey] = {};\r\n valuesHolder[currentKey].categoryValue = new ReportValue(0, unitOperationsConfig[cat].displayName, currentKey);\r\n valuesHolder[currentKey].categorySet = new ReportDataSet(unitOperationsConfig[cat].displayName, currentKey);\r\n }\r\n\r\n for (const uo of units) {\r\n const s = uo.opexTotal;\r\n const unitType = uo.category;\r\n let isInvalid;\r\n if (s) {\r\n isInvalid = isNaN(s.value) || isNullOrUndefined(s.value);\r\n } else {\r\n isInvalid = true;\r\n }\r\n valuesHolder[unitType].categoryValue.value += isInvalid ? 0 : s.value;\r\n valuesHolder[unitType].categorySet.addToData(\r\n new ReportValue(unitConverter.parseFloatString(isInvalid ? 0 : s.convertToDefaultUnit(true, false)), uo.name)\r\n );\r\n this.total += isInvalid ? 0 : s.value;\r\n }\r\n\r\n const sv = units.length ? units[0].opexTotal : null;\r\n\r\n // eslint-disable-next-line guard-for-in\r\n for (const cat in valuesHolder) {\r\n this.contributionByCategory.push(valuesHolder[cat].categoryValue);\r\n this.contributionByUnit.push(valuesHolder[cat].categorySet);\r\n }\r\n\r\n if (sv) {\r\n const internalUnit = sv.getInternalUnit();\r\n this.unit = sv.getDefaultUnit();\r\n\r\n for (const contrib of this.contributionByCategory) {\r\n contrib.value = unitConverter.parseFloatString(\r\n unitConverter(sv.quantity).convert(contrib.value, internalUnit, this.unit).round().getValue()\r\n );\r\n }\r\n\r\n const totalSv = new SimulationVariable(sv, sv.ownerCase, sv.ownerBaseObject);\r\n totalSv.value = this.total;\r\n this.total = unitConverter.parseFloatString(totalSv.convertToDefaultUnit(true, false));\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { CoreService } from './core.service';\r\nimport { GhgEmissionsReport } from '../_models/_reports/ghg-emissions-report';\r\nimport { RefineryFlowRatesReport } from '../_models/_reports/refinery-flow-rates-report';\r\nimport { RevenueReport } from '../_models/_reports/revenue-report';\r\nimport { DiluentFlowRatesReport } from '../_models/_reports/diluent-flow-rates-report';\r\nimport { OptimizationVariablesReport } from '../_models/_reports/_optimization-settings-table/optimization-variables-report';\r\nimport { ConstraintsReport } from '../_models/_reports/_optimization-settings-table/constraints-report';\r\nimport { CapexReport } from '../_models/_reports/capex-report';\r\nimport { OpexReport } from '../_models/_reports/opex-report';\r\nimport { SubFlowsheetService } from './sub-flowsheet/sub-flowsheet.service';\r\nimport { ReportDataSet } from '../_models/_reports/report-data-set';\r\nimport { FlowsheetTreeService } from './sub-flowsheet/flowsheet-tree/flowsheet-tree.service';\r\n\r\n@Injectable()\r\nexport class ReportService {\r\n constructor(private coreService: CoreService, private flowsheetTree: FlowsheetTreeService) {}\r\n\r\n buildGhgEmissionsReport(): GhgEmissionsReport {\r\n return new GhgEmissionsReport(this.coreService.currentCase);\r\n }\r\n\r\n buildUpgraderDataSet(upgraderId: string): ReportDataSet {\r\n return new GhgEmissionsReport(this.coreService.currentCase).getUpgraderDataSet(\r\n '',\r\n upgraderId,\r\n this.coreService.currentCase\r\n );\r\n }\r\n\r\n buildRefineryFlowRatesReport() {\r\n return new RefineryFlowRatesReport(this.coreService.currentCase);\r\n }\r\n\r\n buildRevenueReport() {\r\n return new RevenueReport(this.coreService.currentCase);\r\n }\r\n\r\n buildDiluentFlowRatesReport() {\r\n return new DiluentFlowRatesReport(this.coreService.currentCase);\r\n }\r\n\r\n buildCapexReport() {\r\n return new CapexReport(this.coreService.currentCase);\r\n }\r\n\r\n buildOpexReport() {\r\n return new OpexReport(this.coreService.currentCase);\r\n }\r\n\r\n buildOptimizationVariablesReport(activeFlowsheetId: string) {\r\n return new OptimizationVariablesReport(this.coreService.currentCase, activeFlowsheetId, this.flowsheetTree);\r\n }\r\n\r\n buildConstraintsReport(activeFlowsheetId: string) {\r\n return new ConstraintsReport(this.coreService.currentCase, activeFlowsheetId);\r\n }\r\n}\r\n","<div class=\"row\">\r\n <div class=\"col-xs-12 col-sm-4 col-md-4 col-lg-3 form-horizontal insights-info\" *ngIf=\"calculator\">\r\n <div class=\"insights-info-title\">Totals</div>\r\n\r\n <hr class=\"insights-info-title-separator\" />\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'insightsIntegration'\" class=\"pw-label control-label col-sm-4\"> Integration </label>\r\n <sim-var-input\r\n [inputId]=\"'insightsIntegration'\"\r\n [simVar]=\"calculator.integration\"\r\n [readOnly]=\"true\"\r\n [transientValue]=\"true\"></sim-var-input>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'insightsTotalGhg'\" class=\"pw-label control-label col-sm-4\"> Total GHG </label>\r\n <sim-var-input\r\n [inputId]=\"'insightsTotalGhg'\"\r\n [simVar]=\"calculator.totalGhg\"\r\n [readOnly]=\"true\"\r\n [transientValue]=\"true\"></sim-var-input>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'insightsTotalSuncorGhg'\" class=\"pw-label control-label col-sm-4\"> Total Suncor GHG </label>\r\n <sim-var-input\r\n [inputId]=\"'insightsTotalSuncorGhg'\"\r\n [simVar]=\"calculator.totalSuncorGhg\"\r\n [readOnly]=\"true\"\r\n [transientValue]=\"true\"></sim-var-input>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'insightsTotalRevenue'\" class=\"pw-label control-label col-sm-4\"> Total Revenue </label>\r\n <sim-var-input\r\n [inputId]=\"'insightsTotalRevenue'\"\r\n [simVar]=\"calculator.totalRevenue\"\r\n [readOnly]=\"true\"\r\n [transientValue]=\"true\"></sim-var-input>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'insightsTotalOpex'\" class=\"pw-label control-label col-sm-4\"> Total OPEX </label>\r\n <sim-var-input\r\n [inputId]=\"'insightsTotalOpex'\"\r\n [simVar]=\"calculator.totalOpex\"\r\n [readOnly]=\"true\"\r\n [transientValue]=\"true\"></sim-var-input>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'insightsTotalCapex'\" class=\"pw-label control-label col-sm-4\"> Total CAPEX </label>\r\n <sim-var-input\r\n [inputId]=\"'insightsTotalCapex'\"\r\n [simVar]=\"calculator.totalCapex\"\r\n [readOnly]=\"true\"\r\n [transientValue]=\"true\"></sim-var-input>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'insightsTotalValue'\" class=\"pw-label control-label col-sm-4\"> Total Value </label>\r\n <sim-var-input\r\n [inputId]=\"'insightsTotalValue'\"\r\n [simVar]=\"calculator.totalValue\"\r\n [readOnly]=\"true\"\r\n [transientValue]=\"true\"></sim-var-input>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'insightsTotalGhgIntensity'\" class=\"pw-label control-label col-sm-4\">\r\n Total GHG Intensity\r\n </label>\r\n <sim-var-input\r\n [inputId]=\"'insightsTotalGhgIntensity'\"\r\n [simVar]=\"calculator.totalGhgIntensity\"\r\n [readOnly]=\"true\"\r\n [transientValue]=\"true\"></sim-var-input>\r\n </div>\r\n\r\n <div class=\"form-group\">\r\n <label [attr.for]=\"'insightsTotalSuncorGhgIntensity'\" class=\"pw-label control-label col-sm-4\">\r\n Total Suncor GHG Intensity\r\n </label>\r\n <sim-var-input\r\n [inputId]=\"'insights'\"\r\n [simVar]=\"calculator.totalSuncorGhgIntensity\"\r\n [readOnly]=\"true\"\r\n [transientValue]=\"true\"></sim-var-input>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-xs-12 col-sm-8 col-md-8 col-lg-9 insights-charts-container\">\r\n <div class=\"row\">\r\n <div class=\"col-md-4 col-sm-6 col-xs-12 insights-chart-outer\">\r\n <div class=\"insights-chart-wrapper\">\r\n <div class=\"insights-chart-info\">\r\n <span class=\"insights-chart-title\">GHG Emissions</span>\r\n <a (click)=\"switchTab('#srGhgEmissionsReport')\" class=\"pull-right\">More </a>\r\n </div>\r\n <div id=\"insightsGhgChart\" class=\"insights-chart\"></div>\r\n\r\n <div class=\"text-center insights-chart-subtitle\">\r\n Suncor <span class=\"chart-subtitle-value\" id=\"insightsTotalSuncorGhgValue\"></span>\r\n {{ calculator ? calculator.totalSuncorGhg.unit : '' }}\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-md-4 col-sm-6 col-xs-12 insights-chart-outer\">\r\n <div class=\"insights-chart-wrapper\">\r\n <div class=\"insights-chart-info\">\r\n <span class=\"insights-chart-title\">Revenue</span>\r\n <a (click)=\"switchTab('#srRevenueReport')\" class=\"pull-right\">More</a>\r\n </div>\r\n <div id=\"insightsRevenueChart\" class=\"insights-chart\"></div>\r\n\r\n <div class=\"text-center insights-chart-subtitle\">\r\n Total value <span class=\"chart-subtitle-value\" id=\"insightsTotalValueValue\"></span>\r\n {{ calculator ? calculator.totalValue.getDefaultUnit() : '' }}\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-md-4 col-sm-6 col-xs-12 insights-chart-outer\">\r\n <div class=\"insights-chart-wrapper\">\r\n <div class=\"insights-chart-info\">\r\n <span class=\"insights-chart-title\">CAPEX</span>\r\n <a (click)=\"switchTab('#srCapexReport')\" class=\"pull-right\">More</a>\r\n </div>\r\n <div id=\"insightsCapexChart\" class=\"insights-chart\"></div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-md-4 col-sm-6 col-xs-12 insights-chart-outer\">\r\n <div class=\"insights-chart-wrapper\">\r\n <div class=\"insights-chart-info\">\r\n <span class=\"insights-chart-title\">OPEX</span>\r\n <a (click)=\"switchTab('#srOpexReport')\" class=\"pull-right\">More</a>\r\n </div>\r\n <div id=\"insightsOpexChart\" class=\"insights-chart\"></div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-md-4 col-sm-6 col-xs-12 insights-chart-outer\">\r\n <div class=\"insights-chart-wrapper\">\r\n <div class=\"insights-chart-info\">\r\n <span class=\"insights-chart-title\">Refinery Flowrates</span>\r\n <a (click)=\"switchTab('#srRefineryFlowRates')\" class=\"pull-right\">More</a>\r\n </div>\r\n <div id=\"insightsRefineryChart\" class=\"insights-chart\"></div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-md-4 col-sm-6 col-xs-12 insights-chart-outer\">\r\n <div class=\"insights-chart-wrapper\">\r\n <div class=\"insights-chart-info\">\r\n <span class=\"insights-chart-title\">Diluent Flowrates</span>\r\n <a (click)=\"switchTab('#srDiluentFlowrates')\" class=\"pull-right\">More</a>\r\n </div>\r\n\r\n <div id=\"insightsDiluentChart\" class=\"insights-chart\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n","import { ChangeDetectorRef, Component, ViewEncapsulation } from '@angular/core';\r\nimport * as Highcharts from 'highcharts';\r\n\r\nimport { CoreService } from '../../../_services/core.service';\r\nimport { SuncorCalculator } from '../../../_models/suncor-calculator';\r\nimport { GhgEmissionsReport } from '../../../_models/_reports/ghg-emissions-report';\r\nimport { RevenueReport } from '../../../_models/_reports/revenue-report';\r\nimport { CapexReport } from '../../../_models/_reports/capex-report';\r\nimport { OpexReport } from '../../../_models/_reports/opex-report';\r\nimport { RefineryFlowRatesReport } from '../../../_models/_reports/refinery-flow-rates-report';\r\nimport { DiluentFlowRatesReport } from '../../../_models/_reports/diluent-flow-rates-report';\r\n\r\ndeclare let unitConverter: any;\r\n\r\n@Component({\r\n selector: 'sob-insights',\r\n templateUrl: './insights.component.html',\r\n styleUrls: ['./insights.component.css'],\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class InsightsComponent {\r\n calculator: SuncorCalculator;\r\n\r\n constructor(private coreService: CoreService, private ref: ChangeDetectorRef) {\r\n // TODO it _seems_ this should be important only when the current case is replaced\r\n // TODO consider subscribing to currentCaseReplacedRequest\r\n this.coreService.caseChangedRequest.subscribe(() => {\r\n this.calculator = undefined;\r\n this.ref.detectChanges();\r\n this.calculator = this.coreService.currentCase.calculator;\r\n this.ref.detectChanges();\r\n this.setChartSubtitleValues();\r\n });\r\n }\r\n\r\n initGhgChart(ghgReport: GhgEmissionsReport) {\r\n const series = {\r\n name: 'GHG emissions',\r\n colorByPoint: true,\r\n data: ghgReport.contributionByCategory.map(cv => {\r\n return { y: cv.value, name: cv.name };\r\n }),\r\n innerSize: '60%',\r\n };\r\n\r\n const chartOptions = this.getCommonChartOptions(\r\n ghgReport.unit,\r\n series,\r\n unitConverter.formatNumber(ghgReport.totalGhg)\r\n );\r\n Highcharts.chart('insightsGhgChart', <any>chartOptions);\r\n }\r\n\r\n initRevenueChart(revenueReport: RevenueReport) {\r\n const series = {\r\n name: 'Revenue',\r\n colorByPoint: true,\r\n data: revenueReport.data.map(cv => {\r\n return { y: cv.value, name: cv.name };\r\n }),\r\n innerSize: '60%',\r\n };\r\n\r\n const chartOptions = this.getCommonChartOptions(\r\n revenueReport.unit,\r\n series,\r\n unitConverter.formatNumber(revenueReport.total)\r\n );\r\n\r\n Highcharts.chart('insightsRevenueChart', <any>chartOptions);\r\n }\r\n\r\n initCapexChart(capexReport: CapexReport) {\r\n const series = {\r\n name: 'CAPEX',\r\n colorByPoint: true,\r\n data: capexReport.contributionByCategory.map(cv => {\r\n return { y: cv.value, name: cv.name };\r\n }),\r\n innerSize: '60%',\r\n };\r\n\r\n const chartOptions = this.getCommonChartOptions(\r\n capexReport.unit,\r\n series,\r\n unitConverter.formatNumber(capexReport.total)\r\n );\r\n\r\n Highcharts.chart('insightsCapexChart', <any>chartOptions);\r\n }\r\n\r\n initOpexChart(opexReport: OpexReport) {\r\n const series = {\r\n name: 'OPEX',\r\n colorByPoint: true,\r\n data: opexReport.contributionByCategory.map(cv => {\r\n return { y: cv.value, name: cv.name };\r\n }),\r\n innerSize: '60%',\r\n };\r\n\r\n const chartOptions = this.getCommonChartOptions(\r\n opexReport.unit,\r\n series,\r\n unitConverter.formatNumber(opexReport.total)\r\n );\r\n\r\n Highcharts.chart('insightsOpexChart', <any>chartOptions);\r\n }\r\n\r\n initRefineryChart(refineryReport: RefineryFlowRatesReport) {\r\n const series = {\r\n name: 'Refinery flowrates',\r\n colorByPoint: true,\r\n data: refineryReport.data.map(cv => {\r\n return { y: cv.value, name: cv.name };\r\n }),\r\n innerSize: '60%',\r\n };\r\n\r\n const chartOptions = this.getCommonChartOptions(\r\n refineryReport.unit,\r\n series,\r\n unitConverter.formatNumber(refineryReport.total)\r\n );\r\n\r\n Highcharts.chart('insightsRefineryChart', <any>chartOptions);\r\n }\r\n\r\n initDiluentChart(diluentReport: DiluentFlowRatesReport) {\r\n const series = {\r\n name: 'Diluent flowrates',\r\n colorByPoint: true,\r\n data: diluentReport.data.map(cv => {\r\n return { y: cv.value, name: cv.name };\r\n }),\r\n innerSize: '60%',\r\n };\r\n\r\n const chartOptions = this.getCommonChartOptions(\r\n diluentReport.unit,\r\n series,\r\n unitConverter.formatNumber(diluentReport.total)\r\n );\r\n\r\n Highcharts.chart('insightsDiluentChart', <any>chartOptions);\r\n }\r\n\r\n getCommonChartOptions(unit, series, totalValue) {\r\n return {\r\n chart: {\r\n plotBackgroundColor: null,\r\n plotBorderWidth: null,\r\n plotShadow: false,\r\n type: 'pie',\r\n useHTML: true,\r\n },\r\n\r\n credits: {\r\n enabled: false,\r\n },\r\n\r\n title: {\r\n text:\r\n `<span style=\"font-size: 12px;\">Total</span><br>` +\r\n `<strong style=\"font-size: 15px; font-weight: 700;\">${totalValue}</strong><br>` +\r\n `<span style=\"font-size: 12px;\">${unit}</span>`,\r\n verticalAlign: 'middle',\r\n y: -12,\r\n },\r\n\r\n responsive: {\r\n rules: [\r\n {\r\n condition: {\r\n maxWidth: 225,\r\n },\r\n chartOptions: {\r\n title: {\r\n text:\r\n `<span style=\"font-size: 11px;\">Total</span><br>` +\r\n `<strong style=\"font-size: 13px; font-weight: 700\">${totalValue}</strong><br>` +\r\n `<span style=\"font-size: 11px;\">${unit}</span>`,\r\n verticalAlign: 'middle',\r\n y: -15,\r\n },\r\n },\r\n },\r\n {\r\n condition: {\r\n maxWidth: 155,\r\n },\r\n chartOptions: {\r\n title: {\r\n text:\r\n `<span style=\"font-size: 10px;\">Total</span><br>` +\r\n `<strong style=\"font-size: 13px; font-weight: 700\">${totalValue}</strong><br>` +\r\n `<span style=\"font-size: 10px;\">${unit}</span>`,\r\n verticalAlign: 'middle',\r\n y: -15,\r\n },\r\n },\r\n },\r\n ],\r\n },\r\n\r\n plotOptions: {\r\n series: {\r\n dataLabels: {\r\n enabled: false,\r\n },\r\n },\r\n },\r\n tooltip: {\r\n headerFormat: '<span style=\"font-size:11px\">{series.name}</span><br>',\r\n pointFormat: `<span style=\"color:{point.color}\">{point.name}</span>: <b>{point.y:,.2f} ${unit}</b><br/>`,\r\n },\r\n series: [series],\r\n };\r\n }\r\n\r\n setChartSubtitleValues() {\r\n $('#insightsTotalSuncorGhgValue').html(\r\n this.calculator.totalSuncorGhg.convertToAnotherUnit(this.calculator.totalSuncorGhg.unit, true)\r\n );\r\n\r\n $('#insightsTotalValueValue').html(\r\n this.calculator.totalValue.convertToAnotherUnit(this.calculator.totalValue.unit, true)\r\n );\r\n }\r\n\r\n switchTab(tabId: string) {\r\n $(`a[href=\"${tabId}\"]`).tab('show');\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\ndeclare let unitConverter: any;\r\n@Pipe({\r\n name: 'thousandSeparator',\r\n})\r\nexport class ThousandSeparatorPipe implements PipeTransform {\r\n transform(value: any, args?: any): any {\r\n return unitConverter.formatNumber(value);\r\n }\r\n}\r\n","<ul class=\"nav nav-pills\" role=\"tablist\">\r\n <li role=\"presentation\" class=\"active\">\r\n <a href=\"#srGhgEmissionsReportChartTab\" role=\"tab\" data-toggle=\"tab\" aria-controls=\"srGhgEmissionsReportChartTab\">\r\n Pie Chart\r\n </a>\r\n </li>\r\n\r\n <li role=\"presentation\">\r\n <a href=\"#srGhgEmissionsReportTableTab\" role=\"tab\" data-toggle=\"tab\" aria-controls=\"srGhgEmissionsReportTableTab\">\r\n Table\r\n </a>\r\n </li>\r\n\r\n <li role=\"presentation\" *ngIf=\"subFlowsheetDataActive\">\r\n <a href=\"#srGhgEmissionsWaterfallTab\" role=\"tab\" data-toggle=\"tab\" aria-controls=\"srGhgEmissionsReportTable\">\r\n Waterfall\r\n </a>\r\n </li>\r\n</ul>\r\n\r\n<div class=\"tab-content tab-content-padding\">\r\n <div role=\"tabpanel\" class=\"tab-pane fade in active\" id=\"srGhgEmissionsReportChartTab\">\r\n <div id=\"srGhgEmissionsChart\"></div>\r\n\r\n <div class=\"row\" style=\"margin-top: 20px\">\r\n <div class=\"col-xs-12 text-center\">\r\n <ng-container *ngIf=\"!subFlowsheetDataActive\">\r\n <strong>Total GHG Emissions</strong>\r\n {{ ghgEmissions?.totalGhg | thousandSeparator }} {{ ghgEmissions?.unit }}\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"subFlowsheetDataActive\">\r\n <strong>Total GHG Emissions</strong>\r\n {{ currentSubFlowsheetDataset?.total | thousandSeparator }} {{ ghgEmissions?.unit }}\r\n </ng-container>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row\" style=\"margin-top: 20px\" *ngIf=\"!subFlowsheetDataActive\">\r\n <div class=\"col-xs-12 text-center\">\r\n <strong>Suncor GHG Emissions</strong> {{ ghgEmissions?.totalSuncorGhg | thousandSeparator }}\r\n {{ ghgEmissions?.unit }}\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"srGhgEmissionsReportTableTab\">\r\n <div class=\"row\">\r\n <div class=\"col-xs-12\">\r\n <table class=\"table\" id=\"srGhgEmissionsTable\" style=\"width: 100%\">\r\n <thead>\r\n <tr>\r\n <th>Unit Operation</th>\r\n <th>Type</th>\r\n <th>GHG Emissions</th>\r\n </tr>\r\n </thead>\r\n\r\n <tfoot>\r\n <tr>\r\n <th colspan=\"2\" class=\"text-right\">Total</th>\r\n <th>\r\n <span *ngIf=\"!subFlowsheetDataActive\"\r\n >{{ ghgEmissions?.totalGhg | thousandSeparator }} {{ ghgEmissions?.unit }}</span\r\n >\r\n <span *ngIf=\"subFlowsheetDataActive\"\r\n >{{ this.currentSubFlowsheetDataset?.total | thousandSeparator }} {{ ghgEmissions?.unit }}</span\r\n >\r\n </th>\r\n </tr>\r\n <tr *ngIf=\"!subFlowsheetDataActive\">\r\n <th colspan=\"2\" class=\"text-right\">Total Suncor</th>\r\n <th>{{ ghgEmissions?.totalSuncorGhg | thousandSeparator }} {{ ghgEmissions?.unit }}</th>\r\n </tr>\r\n </tfoot>\r\n </table>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"srGhgEmissionsWaterfallTab\">\r\n <div id=\"srGhgEmissionsWaterfallChart\"></div>\r\n </div>\r\n</div>\r\n","import { Component } from '@angular/core';\r\nimport * as Highcharts from 'highcharts';\r\nimport { GhgEmissionsReport } from '../../../_models/_reports/ghg-emissions-report';\r\nimport { GhgReportValue, MixedGhgReportValue } from '../../../_models/_reports/report-value';\r\nimport { ReportDataSet } from '../../../_models/_reports/report-data-set';\r\n\r\ndeclare let unitConverter: any;\r\n\r\n@Component({\r\n selector: 'sob-ghg-summary-report',\r\n templateUrl: './ghg-summary-report.component.html',\r\n styleUrls: ['./ghg-summary-report.component.css'],\r\n})\r\nexport class GhgSummaryReportComponent {\r\n ghgEmissions: GhgEmissionsReport;\r\n subFlowsheetDataActive: boolean;\r\n currentSubFlowsheetDataset: ReportDataSet;\r\n\r\n buildReport(ghgEmissions: GhgEmissionsReport): void {\r\n this.ghgEmissions = ghgEmissions;\r\n this.subFlowsheetDataActive = false;\r\n this.currentSubFlowsheetDataset = undefined;\r\n\r\n this.buildTopLevelTable();\r\n this.buildPieChart();\r\n\r\n $('a[href=\"#srGhgEmissionsReportChartTab\"]').tab('show');\r\n }\r\n\r\n buildTopLevelTable(): void {\r\n const tableData = [];\r\n\r\n for (const cu of this.ghgEmissions.contributionByUnit) {\r\n for (const cv of cu.data) {\r\n tableData.push({ name: cv.name, category: cu.name, value: cv.value });\r\n }\r\n }\r\n\r\n this.buildTable(tableData);\r\n }\r\n\r\n buildSubFlowsheetTable() {\r\n const tableData = [];\r\n for (const cv of this.currentSubFlowsheetDataset.data) {\r\n const reportValue = cv as MixedGhgReportValue;\r\n tableData.push({ name: reportValue.name, category: reportValue.unitOperationCategory, value: reportValue.value });\r\n }\r\n\r\n this.buildTable(tableData);\r\n }\r\n\r\n buildTable(tableData): void {\r\n const $table = $('#srGhgEmissionsTable');\r\n\r\n this.destroyDataTable();\r\n\r\n const opts = {\r\n data: tableData,\r\n paging: false,\r\n searching: false,\r\n info: false,\r\n order: [[2, 'desc']],\r\n columns: [\r\n {\r\n data: 'name',\r\n },\r\n {\r\n data: 'category',\r\n },\r\n {\r\n data: (data, type) => {\r\n if (type === 'display') {\r\n return `${unitConverter.formatNumber(data.value)} ${this.ghgEmissions.unit}`;\r\n }\r\n return data.value;\r\n },\r\n },\r\n ],\r\n };\r\n\r\n (<any>$table).DataTable(<any>opts);\r\n }\r\n\r\n destroyDataTable(): void {\r\n const $table = $('#srGhgEmissionsTable');\r\n\r\n if ((<any>$.fn).dataTable.isDataTable('#srGhgEmissionsTable')) {\r\n (<any>$table).DataTable().destroy();\r\n }\r\n }\r\n\r\n buildPieChart(): void {\r\n const series = {\r\n name: 'GHG emissions',\r\n colorByPoint: true,\r\n data: this.ghgEmissions.contributionByCategory.map(cv => {\r\n return { y: cv.value, name: cv.name, drilldown: cv.childDataId };\r\n }),\r\n };\r\n\r\n const drilldownSeries = this.ghgEmissions.contributionByUnit.map(cu => {\r\n return {\r\n name: cu.name,\r\n id: cu.id,\r\n data: cu.data.map(cv => {\r\n const ghgReportValue = cv as GhgReportValue;\r\n const aGhgUnit = ghgReportValue.alternativeGhgIntensity.getDefaultUnit();\r\n return {\r\n name: ghgReportValue.name,\r\n y: ghgReportValue.value,\r\n alternativeGhgIntensity: ghgReportValue.alternativeGhgIntensity.convertToDefaultUnit(false, false),\r\n alternativeGhgIntensityUnit: aGhgUnit === 'kg/bbl' ? 'kgCO2e/bbl' : aGhgUnit,\r\n drilldown: ghgReportValue.childDataId ? ghgReportValue.childDataId : undefined,\r\n isFlowsheetOwner: ghgReportValue.isFlowsheetOwner,\r\n };\r\n }),\r\n };\r\n });\r\n\r\n drilldownSeries.push(\r\n ...this.ghgEmissions.contributionByUpgraderSubFlowsheet.map(cu => {\r\n return {\r\n name: cu.name,\r\n id: cu.id,\r\n data: cu.data.map(cv => {\r\n return {\r\n name: cv.name,\r\n y: cv.value,\r\n alternativeGhgIntensity: undefined,\r\n alternativeGhgIntensityUnit: undefined,\r\n drilldown: cv.childDataId ? cv.childDataId : undefined,\r\n isFlowsheetOwner: false,\r\n };\r\n }),\r\n };\r\n })\r\n );\r\n\r\n const chartOptions = this.getGhgDrilldownChartOptions(\r\n 'GHG Emissions',\r\n this.ghgEmissions.unit,\r\n series,\r\n drilldownSeries\r\n );\r\n\r\n Highcharts.chart('srGhgEmissionsChart', <any>chartOptions);\r\n }\r\n\r\n getGhgDrilldownChartOptions(title: string, unit: string, series, drilldownSeries) {\r\n const that = this;\r\n return {\r\n chart: {\r\n plotBackgroundColor: null,\r\n plotBorderWidth: null,\r\n plotShadow: false,\r\n type: 'pie',\r\n events: {\r\n drillup() {\r\n that.hideSubFlowsheetData();\r\n },\r\n },\r\n },\r\n\r\n credits: {\r\n enabled: false,\r\n },\r\n\r\n title: {\r\n text: title,\r\n },\r\n\r\n plotOptions: {\r\n series: {\r\n dataLabels: {\r\n enabled: true,\r\n format: `{point.name}: {point.y:.2f} ${unit}`,\r\n },\r\n },\r\n pie: {\r\n events: {\r\n click(e) {\r\n const { point } = e;\r\n if (point.isFlowsheetOwner) {\r\n that.showSubFlowsheetData(point.drilldown);\r\n }\r\n },\r\n },\r\n },\r\n },\r\n tooltip: {\r\n formatter() {\r\n let formattedTooltip;\r\n if (this.point.alternativeGhgIntensityUnit) {\r\n formattedTooltip =\r\n `<span style=\"font-size:11px\">${this.point.name}</span><br>` +\r\n `<span style=\"color:${this.color}\">GHG Emissions</span>: <b>${this.y} ${unit}</b><br/>` +\r\n `<span style=\"color:${this.color}\">GHG Intensity</span>: <b>${Highcharts.numberFormat(\r\n this.point.alternativeGhgIntensity,\r\n 2,\r\n '.',\r\n ','\r\n )} ${this.point.alternativeGhgIntensityUnit}</b><br/>`;\r\n } else {\r\n formattedTooltip =\r\n `<span style=\"font-size:11px\">${this.series.name}</span><br>` +\r\n `<span style=\"color:${this.color}\">${this.point.name}</span>: <b>${this.y} ${unit}</b><br/>`;\r\n }\r\n return formattedTooltip;\r\n },\r\n },\r\n series: [series],\r\n\r\n drilldown: {\r\n series: drilldownSeries,\r\n },\r\n };\r\n }\r\n\r\n showSubFlowsheetData(subFlowsheetId: string) {\r\n this.currentSubFlowsheetDataset = this.ghgEmissions.contributionByUpgraderSubFlowsheet.find(\r\n d => d.id === subFlowsheetId\r\n );\r\n this.subFlowsheetDataActive = true;\r\n\r\n this.buildSubFlowsheetTable();\r\n this.buildWaterfallChart(this.ghgEmissions.unit);\r\n }\r\n\r\n hideSubFlowsheetData() {\r\n this.subFlowsheetDataActive = false;\r\n this.currentSubFlowsheetDataset = undefined;\r\n this.buildTopLevelTable();\r\n }\r\n\r\n buildWaterfallChart(unit: string) {\r\n const series = [\r\n {\r\n color: Highcharts.getOptions().colors[8],\r\n name: 'GHG Emissions',\r\n data: this.currentSubFlowsheetDataset.data\r\n .filter(cv => cv.value !== 0)\r\n .sort((a, b) => (a.value > b.value ? -1 : 1))\r\n .map(cv => {\r\n return {\r\n name: cv.name,\r\n y: cv.value,\r\n };\r\n }),\r\n },\r\n ];\r\n\r\n series.push(this.getTotalEmissionsBar());\r\n\r\n Highcharts.chart('srGhgEmissionsWaterfallChart', this.getWaterfallChartOptions(series, unit));\r\n }\r\n\r\n getTotalEmissionsBar() {\r\n return {\r\n color: Highcharts.getOptions().colors[0],\r\n name: 'GHG Emissions',\r\n data: [\r\n {\r\n name: 'Total Emissions',\r\n y: this.currentSubFlowsheetDataset.total,\r\n color: Highcharts.getOptions().colors[0],\r\n },\r\n ],\r\n };\r\n }\r\n\r\n getWaterfallChartOptions(series: any, unit: string) {\r\n return {\r\n chart: {\r\n type: 'waterfall',\r\n },\r\n title: {\r\n text: 'GHG Emissions',\r\n },\r\n xAxis: {\r\n type: 'category',\r\n },\r\n yAxis: {\r\n title: {\r\n text: unit,\r\n },\r\n },\r\n legend: {\r\n enabled: false,\r\n },\r\n credits: {\r\n enabled: false,\r\n },\r\n plotOptions: {\r\n waterfall: {\r\n dataLabels: {\r\n enabled: true,\r\n inside: false,\r\n color: '#000',\r\n },\r\n pointPadding: 0,\r\n borderWidth: 0,\r\n },\r\n },\r\n tooltip: {\r\n formatter() {\r\n return `<span style=\"font-size:11px\">${this.series.name}</span><br>\r\n <span style=\"color: ${this.color}\">${this.point.name}</span>: <b>${this.y} ${unit}</b><br/>`;\r\n },\r\n },\r\n\r\n series,\r\n };\r\n }\r\n}\r\n","<div class=\"modal fade\" id=\"summaryReportModal\" tabindex=\"-1\" role=\"dialog\" aria-labelledby=\"summaryReportModalLabel\">\r\n <div class=\"modal-dialog modal-xl\" role=\"document\">\r\n <div class=\"modal-content\">\r\n <div class=\"modal-header\">\r\n <button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"Close\">\r\n <span aria-hidden=\"true\">×</span>\r\n </button>\r\n <h4 class=\"modal-title\" id=\"\">Summary Report</h4>\r\n </div>\r\n\r\n <div class=\"modal-body\">\r\n <ul class=\"nav nav-tabs\" role=\"tablist\">\r\n <li role=\"presentation\" class=\"active\">\r\n <a href=\"#srInsights\" role=\"tab\" data-toggle=\"tab\" aria-controls=\"srInsights\"> Insights </a>\r\n </li>\r\n\r\n <li role=\"presentation\">\r\n <a href=\"#srGhgEmissionsReport\" role=\"tab\" data-toggle=\"tab\" aria-controls=\"srGhgEmissionsReport\">\r\n GHG Emissions\r\n </a>\r\n </li>\r\n\r\n <li role=\"presentation\">\r\n <a href=\"#srRevenueReport\" role=\"tab\" data-toggle=\"tab\" aria-controls=\"srRevenueReport\"> Revenue </a>\r\n </li>\r\n <li role=\"presentation\">\r\n <a href=\"#srCapexReport\" role=\"tab\" data-toggle=\"tab\" aria-controls=\"srCapexReport\"> CAPEX </a>\r\n </li>\r\n\r\n <li role=\"presentation\">\r\n <a href=\"#srOpexReport\" role=\"tab\" data-toggle=\"tab\" aria-controls=\"srOpexReport\"> OPEX </a>\r\n </li>\r\n\r\n <li role=\"presentation\">\r\n <a href=\"#srRefineryFlowRates\" role=\"tab\" data-toggle=\"tab\" aria-controls=\"srRefineryFlowRates\">\r\n Suncor Hydrocarbon Production\r\n </a>\r\n </li>\r\n\r\n <li role=\"presentation\">\r\n <a href=\"#srDiluentFlowrates\" role=\"tab\" data-toggle=\"tab\" aria-controls=\"srDiluentFlowrates\">\r\n Diluent Flowrates\r\n </a>\r\n </li>\r\n <li role=\"presentation\" *ngIf=\"constraintRanking.length > 0\">\r\n <a\r\n href=\"#srConstraintRanking\"\r\n role=\"tab\"\r\n data-toggle=\"tab\"\r\n aria-controls=\"srConstraintRanking\"\r\n (click)=\"showConstraintRank()\">\r\n Constraint Ranking\r\n </a>\r\n </li>\r\n </ul>\r\n\r\n <div class=\"tab-content tab-content-padding\">\r\n <div role=\"tabpanel\" class=\"tab-pane fade in active\" id=\"srInsights\">\r\n <sob-insights></sob-insights>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"srGhgEmissionsReport\" *ngIf=\"ghgEmissions\">\r\n <sob-ghg-summary-report></sob-ghg-summary-report>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"srRevenueReport\" *ngIf=\"revenueReport\">\r\n <ul class=\"nav nav-pills\" role=\"tablist\">\r\n <li role=\"presentation\" class=\"active\">\r\n <a href=\"#srRevenueReportChart\" role=\"tab\" data-toggle=\"tab\" aria-controls=\"srRevenueReportChart\">\r\n Pie Chart\r\n </a>\r\n </li>\r\n\r\n <li role=\"presentation\">\r\n <a href=\"#srRevenueReportTable\" role=\"tab\" data-toggle=\"tab\" aria-controls=\"srRevenueReportTable\">\r\n Table\r\n </a>\r\n </li>\r\n </ul>\r\n\r\n <div class=\"tab-content tab-content-padding\">\r\n <div role=\"tabpanel\" class=\"tab-pane fade in active\" id=\"srRevenueReportChart\">\r\n <div id=\"srRevenueChart\"></div>\r\n\r\n <div class=\"row\" style=\"margin-top: 20px\">\r\n <div class=\"col-xs-12 text-center\">\r\n <strong>Total Revenue</strong> {{ revenueReport.total | thousandSeparator }}\r\n {{ revenueReport.unit }}\r\n </div>\r\n <div class=\"col-xs-12 text-center\">\r\n <strong>Total Value</strong> {{ revenueReport.totalValue | thousandSeparator }}\r\n {{ revenueReport.unit }}\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"srRevenueReportTable\">\r\n <div class=\"row\">\r\n <div class=\"col-xs-12\">\r\n <table class=\"table\" id=\"srRevenueTable\" style=\"width: 100%\">\r\n <thead>\r\n <tr>\r\n <th>Refinery Name</th>\r\n <th>Revenue</th>\r\n </tr>\r\n </thead>\r\n\r\n <tfoot>\r\n <tr>\r\n <th class=\"text-right\">Total</th>\r\n <th>{{ revenueReport.total | thousandSeparator }} {{ revenueReport.unit }}</th>\r\n </tr>\r\n <tr>\r\n <th class=\"text-right\">Total Value</th>\r\n <th>{{ revenueReport.totalValue | thousandSeparator }} {{ revenueReport.unit }}</th>\r\n </tr>\r\n </tfoot>\r\n </table>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"srRefineryFlowRates\" *ngIf=\"refineryFlowRates\">\r\n <ul class=\"nav nav-pills\" role=\"tablist\">\r\n <li role=\"presentation\" class=\"active\">\r\n <a\r\n href=\"#srRefineryFlowRatesReportChart\"\r\n role=\"tab\"\r\n data-toggle=\"tab\"\r\n aria-controls=\"srRefineryFlowRatesReportChart\">\r\n Pie Chart\r\n </a>\r\n </li>\r\n\r\n <li role=\"presentation\">\r\n <a\r\n href=\"#srRefineryFlowRatesReportTable\"\r\n role=\"tab\"\r\n data-toggle=\"tab\"\r\n aria-controls=\"srRefineryFlowRatesReportTable\">\r\n Table\r\n </a>\r\n </li>\r\n </ul>\r\n\r\n <div class=\"tab-content tab-content-padding\">\r\n <div role=\"tabpanel\" class=\"tab-pane fade in active\" id=\"srRefineryFlowRatesReportChart\">\r\n <div id=\"srRefineryFlowRatesChart\"></div>\r\n\r\n <div class=\"row\" style=\"margin-top: 20px\">\r\n <div class=\"col-xs-12 text-center\">\r\n <strong>Total flowrate</strong> {{ refineryFlowRates.total | thousandSeparator }}\r\n {{ refineryFlowRates.unit }}\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"srRefineryFlowRatesReportTable\">\r\n <div class=\"row\">\r\n <div class=\"col-xs-12\">\r\n <table class=\"table\" id=\"srRefineryFlowRatesTable\" style=\"width: 100%\">\r\n <thead>\r\n <tr>\r\n <th>Unit Operation</th>\r\n <th>Volumetric Flowrate</th>\r\n </tr>\r\n </thead>\r\n\r\n <tfoot>\r\n <tr>\r\n <th class=\"text-right\">Total</th>\r\n <th>{{ refineryFlowRates.total | thousandSeparator }} {{ refineryFlowRates.unit }}</th>\r\n </tr>\r\n </tfoot>\r\n </table>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"srDiluentFlowrates\" *ngIf=\"diluentFlowRates\">\r\n <ul class=\"nav nav-pills\" role=\"tablist\">\r\n <li role=\"presentation\" class=\"active\">\r\n <a\r\n href=\"#srDiluentFlowRatesReportChart\"\r\n role=\"tab\"\r\n data-toggle=\"tab\"\r\n aria-controls=\"srDiluentFlowRatesReportChart\">\r\n Pie Chart\r\n </a>\r\n </li>\r\n\r\n <li role=\"presentation\">\r\n <a\r\n href=\"#srDiluentFlowRatesReportTable\"\r\n role=\"tab\"\r\n data-toggle=\"tab\"\r\n aria-controls=\"srDiluentFlowRatesReportTable\">\r\n Table\r\n </a>\r\n </li>\r\n </ul>\r\n\r\n <div class=\"tab-content tab-content-padding\">\r\n <div role=\"tabpanel\" class=\"tab-pane fade in active\" id=\"srDiluentFlowRatesReportChart\">\r\n <div id=\"srDiluentFlowRatesChart\"></div>\r\n\r\n <div class=\"row\" style=\"margin-top: 20px\">\r\n <div class=\"col-xs-12 text-center\">\r\n <strong>Total Flowrate</strong> {{ diluentFlowRates.total | thousandSeparator }}\r\n {{ diluentFlowRates.unit }}\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"srDiluentFlowRatesReportTable\">\r\n <div class=\"row\">\r\n <div class=\"col-xs-12\">\r\n <table class=\"table\" id=\"srDiluentFlowRatesTable\" style=\"width: 100%\">\r\n <thead>\r\n <tr>\r\n <th>Unit Operation</th>\r\n <th>Volumetric Flowrate</th>\r\n </tr>\r\n </thead>\r\n\r\n <tfoot>\r\n <tr>\r\n <th class=\"text-right\">Total</th>\r\n <th>{{ diluentFlowRates.total | thousandSeparator }} {{ diluentFlowRates.unit }}</th>\r\n </tr>\r\n </tfoot>\r\n </table>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"srCapexReport\" *ngIf=\"capexReport\">\r\n <ul class=\"nav nav-pills\" role=\"tablist\">\r\n <li role=\"presentation\" class=\"active\">\r\n <a href=\"#srCapexReportChart\" role=\"tab\" data-toggle=\"tab\" aria-controls=\"srCapeReportChart\">\r\n Pie Chart\r\n </a>\r\n </li>\r\n\r\n <li role=\"presentation\">\r\n <a href=\"#srCapexReportTable\" role=\"tab\" data-toggle=\"tab\" aria-controls=\"srCapexReportTable\">\r\n Table\r\n </a>\r\n </li>\r\n </ul>\r\n\r\n <div class=\"tab-content tab-content-padding\">\r\n <div role=\"tabpanel\" class=\"tab-pane fade in active\" id=\"srCapexReportChart\">\r\n <div id=\"srCapexChart\"></div>\r\n\r\n <div class=\"row\" style=\"margin-top: 20px\">\r\n <div class=\"col-xs-12 text-center\">\r\n <strong>Total Capex</strong> {{ capexReport.total | thousandSeparator }}\r\n {{ capexReport.unit }}\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"srCapexReportTable\">\r\n <div class=\"row\">\r\n <div class=\"col-xs-12\">\r\n <table class=\"table\" id=\"srCapexTable\" style=\"width: 100%\">\r\n <thead>\r\n <tr>\r\n <th>Unit Operation</th>\r\n <th>CAPEX</th>\r\n </tr>\r\n </thead>\r\n\r\n <tfoot>\r\n <tr>\r\n <th class=\"text-right\">Total</th>\r\n <th>{{ capexReport.total | thousandSeparator }} {{ capexReport.unit }}</th>\r\n </tr>\r\n </tfoot>\r\n </table>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"srOpexReport\" *ngIf=\"opexReport\">\r\n <ul class=\"nav nav-pills\" role=\"tablist\">\r\n <li role=\"presentation\" class=\"active\">\r\n <a href=\"#srOpexReportChart\" role=\"tab\" data-toggle=\"tab\" aria-controls=\"srCapeReportChart\">\r\n Pie Chart\r\n </a>\r\n </li>\r\n\r\n <li role=\"presentation\">\r\n <a href=\"#srOpexReportTable\" role=\"tab\" data-toggle=\"tab\" aria-controls=\"srOpexReportTable\"> Table </a>\r\n </li>\r\n </ul>\r\n\r\n <div class=\"tab-content tab-content-padding\">\r\n <div role=\"tabpanel\" class=\"tab-pane fade in active\" id=\"srOpexReportChart\">\r\n <div id=\"srOpexChart\"></div>\r\n\r\n <div class=\"row\" style=\"margin-top: 20px\">\r\n <div class=\"col-xs-12 text-center\">\r\n <strong>Total OPEX</strong> {{ opexReport.total | thousandSeparator }}\r\n {{ opexReport.unit }}\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"srOpexReportTable\">\r\n <div class=\"row\">\r\n <div class=\"col-xs-12\">\r\n <table class=\"table\" id=\"srOpexTable\" style=\"width: 100%\">\r\n <thead>\r\n <tr>\r\n <th>Unit Operation</th>\r\n <th>OPEX</th>\r\n </tr>\r\n </thead>\r\n\r\n <tfoot>\r\n <tr>\r\n <th class=\"text-right\">Total</th>\r\n <th>{{ opexReport.total | thousandSeparator }} {{ opexReport.unit }}</th>\r\n </tr>\r\n </tfoot>\r\n </table>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"srConstraintRanking\" *ngIf=\"constraintRanking.length > 0\">\r\n <ul class=\"nav nav-pills\" role=\"tablist\">\r\n <li role=\"presentation\">\r\n <a href=\"#srConstraintRankingChart\" role=\"tab\" data-toggle=\"tab\" aria-controls=\"srCapeReportChart\">\r\n Bar Chart\r\n </a>\r\n </li>\r\n\r\n <li role=\"presentation\" class=\"active\">\r\n <a href=\"#srConstraintRankingTable\" role=\"tab\" data-toggle=\"tab\" aria-controls=\"srOpexReportTable\">\r\n Table\r\n </a>\r\n </li>\r\n </ul>\r\n\r\n <div class=\"tab-content tab-content-padding\">\r\n <div role=\"tabpanel\" class=\"tab-pane fade in\" id=\"srConstraintRankingChart\">\r\n <div class=\"col-xs-12 text-right\">\r\n <a\r\n title=\"Switch chart type\"\r\n class=\"btn btn-info\"\r\n style=\"margin-bottom: 20px\"\r\n (click)=\"switchConstraintChartType()\">\r\n <i *ngIf=\"objFunctionUnit === 'MMCAD$/kbpcd'\">%</i>\r\n <i *ngIf=\"objFunctionUnit === '%'\">MMCAD$/kbpcd</i>\r\n </a>\r\n </div>\r\n <div id=\"srConstraintChart\"></div>\r\n </div>\r\n\r\n <div role=\"tabpanel\" class=\"tab-pane fade in active\" id=\"srConstraintRankingTable\">\r\n <div class=\"row\">\r\n <div class=\"col-xs-12\">\r\n <table class=\"table table-bordered\" id=\"srConstraintTable\">\r\n <thead>\r\n <tr>\r\n <th>Block Name</th>\r\n <th>Constraint</th>\r\n <th>Current Value</th>\r\n <th>Unit</th>\r\n <th>\r\n Obj. function change rate\r\n <button\r\n class=\"btn btn-link\"\r\n data-toggle=\"tooltip\"\r\n data-placement=\"top\"\r\n title=\"Improvement in the objective function that can be achieved by relaxing the constraint by one unit. The change rate is only valid in a certain range as other constraints may become bottlenecks\">\r\n <i class=\"fa fa-info-circle\"></i>\r\n </button>\r\n </th>\r\n <th>Unit</th>\r\n\r\n <th>Owner Flowsheet</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <ng-container *ngFor=\"let mve of constraintRanking\">\r\n <tr>\r\n <td>{{ mve.unitOperationName }}</td>\r\n <td>{{ mve.variableName }}</td>\r\n <td>{{ mve.value | number }}</td>\r\n <td>{{ mve.unit }}</td>\r\n <td>{{ mve.objFunctionChangeRate | number }}</td>\r\n <td>{{ mve.objFunctionChangeRateUnit }}</td>\r\n <td>{{ getOwnerFlowsheetName(mve) }}</td>\r\n </tr>\r\n </ng-container>\r\n </tbody>\r\n </table>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n","import { ChangeDetectorRef, Component, OnDestroy, OnInit, ViewChild } from '@angular/core';\r\nimport * as Highcharts from 'highcharts';\r\nimport { SubSink } from 'subsink';\r\nimport { ReportService } from '../../_services/report.service';\r\nimport { GhgEmissionsReport } from '../../_models/_reports/ghg-emissions-report';\r\nimport { CoreService } from '../../_services/core.service';\r\nimport { RefineryFlowRatesReport } from '../../_models/_reports/refinery-flow-rates-report';\r\nimport { DiluentFlowRatesReport } from '../../_models/_reports/diluent-flow-rates-report';\r\nimport { CapexReport } from '../../_models/_reports/capex-report';\r\nimport { OpexReport } from '../../_models/_reports/opex-report';\r\nimport { RevenueReport } from '../../_models/_reports/revenue-report';\r\nimport { InsightsComponent } from './insights/insights.component';\r\nimport { MarginalValueEntry } from '../../_models/marginal-value-entry';\r\nimport { GhgSummaryReportComponent } from './ghg-summary-report/ghg-summary-report.component';\r\nimport { isTypeUndefined } from '../../_utils/utils';\r\n\r\ndeclare let unitConverter: any;\r\n\r\n@Component({\r\n selector: 'sob-summary-report',\r\n templateUrl: './summary-report.component.html',\r\n styleUrls: ['./summary-report.component.css'],\r\n})\r\nexport class SummaryReportComponent implements OnInit, OnDestroy {\r\n ghgEmissions: GhgEmissionsReport;\r\n refineryFlowRates: RefineryFlowRatesReport;\r\n diluentFlowRates: DiluentFlowRatesReport;\r\n capexReport: CapexReport;\r\n opexReport: OpexReport;\r\n revenueReport: RevenueReport;\r\n constraintRanking: MarginalValueEntry[] = [];\r\n objFunctionUnit = 'MMCAD$/kbpcd';\r\n\r\n @ViewChild(InsightsComponent, { static: true }) insights: InsightsComponent;\r\n @ViewChild(GhgSummaryReportComponent) ghgSummaryReport: GhgSummaryReportComponent;\r\n private subSink = new SubSink();\r\n\r\n constructor(private coreService: CoreService, private reportService: ReportService, private ref: ChangeDetectorRef) {\r\n // TODO Analyze if this should only be fired when case is solved\r\n // TODO consider subscribing to currentCaseReplacedRequest\r\n\r\n this.subSink.add(\r\n this.coreService.caseChangedRequest.subscribe((data: any) => {\r\n if (data && data.solveSuccess) {\r\n this.buildReports();\r\n if (!this.coreService.currentCase.multiPeriodEnabled) {\r\n this.showInsightsPage();\r\n }\r\n }\r\n this.constraintRanking = this.coreService.currentCase.marginalValueEntries;\r\n })\r\n );\r\n\r\n this.subSink.add(\r\n this.coreService.currentCaseReplacedRequest.subscribe(() => {\r\n if (this.coreService.currentCase.isSolved) {\r\n this.buildReports();\r\n this.constraintRanking = this.coreService.currentCase.marginalValueEntries;\r\n }\r\n })\r\n );\r\n }\r\n\r\n ngOnInit() {\r\n this.constraintRanking = this.coreService.currentCase.marginalValueEntries;\r\n }\r\n\r\n showInsightsPage() {\r\n $('#summaryReportModal').modal('show');\r\n $('#srInsights').tab('show');\r\n }\r\n\r\n showConstraintRank() {\r\n $('[data-toggle=\"tooltip\"]').tooltip();\r\n }\r\n\r\n buildReports() {\r\n this.ghgEmissions = this.reportService.buildGhgEmissionsReport();\r\n this.refineryFlowRates = this.reportService.buildRefineryFlowRatesReport();\r\n this.diluentFlowRates = this.reportService.buildDiluentFlowRatesReport();\r\n this.capexReport = this.reportService.buildCapexReport();\r\n this.opexReport = this.reportService.buildOpexReport();\r\n this.revenueReport = this.reportService.buildRevenueReport();\r\n\r\n this.ref.detectChanges();\r\n\r\n this.buildInsightsCharts();\r\n this.ghgSummaryReport.buildReport(this.ghgEmissions);\r\n\r\n this.buildDiluentFlowratesChart();\r\n this.buildDiluentFlowratesTable();\r\n\r\n this.buildRefineryFlowratesChart();\r\n this.buildRefineryFlowratesTable();\r\n\r\n this.buildCapexChart();\r\n this.buildCapexTable();\r\n\r\n this.buildOpexChart();\r\n this.buildOpexTable();\r\n\r\n this.buildRevenueChart();\r\n this.buildRevenueTable();\r\n if (this.constraintRanking.length !== 0) {\r\n if (this.objFunctionUnit === 'MMCAD$/kbpcd') {\r\n this.buildConstraintRankingChart();\r\n } else {\r\n this.buildConstraintRankingByPercentChart();\r\n }\r\n }\r\n }\r\n\r\n buildInsightsCharts() {\r\n this.insights.initGhgChart(this.ghgEmissions);\r\n this.insights.initRevenueChart(this.revenueReport);\r\n this.insights.initCapexChart(this.capexReport);\r\n this.insights.initOpexChart(this.opexReport);\r\n this.insights.initRefineryChart(this.refineryFlowRates);\r\n this.insights.initDiluentChart(this.diluentFlowRates);\r\n }\r\n\r\n getOwnerFlowsheetName(mve: MarginalValueEntry) {\r\n const ownerFlowsheet = this.coreService.currentCase.getUnitOperation(mve.ownerOperationId);\r\n if (isTypeUndefined(ownerFlowsheet)) {\r\n return 'Main Flowsheet';\r\n }\r\n return ownerFlowsheet.name;\r\n }\r\n\r\n // region diluent flowrates report\r\n buildDiluentFlowratesChart() {\r\n const series = [\r\n {\r\n name: 'Volumetric flowrate',\r\n colorByPoint: true,\r\n data: this.diluentFlowRates.data.map(cv => {\r\n return { y: cv.value, name: cv.name };\r\n }),\r\n },\r\n ];\r\n\r\n const chartOptions = this.getCommonChartOptions('Diluent flowrates', this.diluentFlowRates.unit, series);\r\n\r\n Highcharts.chart('srDiluentFlowRatesChart', <any>chartOptions);\r\n }\r\n\r\n buildDiluentFlowratesTable() {\r\n const tableData = [];\r\n\r\n for (const cu of this.diluentFlowRates.data) {\r\n tableData.push({ name: cu.name, value: cu.value });\r\n }\r\n\r\n const $table = $('#srDiluentFlowRatesTable');\r\n\r\n if ((<any>$.fn).dataTable.isDataTable('#srDiluentFlowRatesTable')) {\r\n (<any>$table).DataTable().destroy();\r\n }\r\n\r\n const opts = {\r\n data: tableData,\r\n paging: false,\r\n searching: false,\r\n info: false,\r\n order: [[1, 'desc']],\r\n columns: [\r\n {\r\n data: 'name',\r\n },\r\n {\r\n data: (data, type) => {\r\n if (type === 'display') {\r\n return `${unitConverter.formatNumber(data.value)} ${this.diluentFlowRates.unit}`;\r\n }\r\n return data.value;\r\n },\r\n },\r\n ],\r\n };\r\n\r\n (<any>$table).DataTable(<any>opts);\r\n }\r\n // endregion\r\n\r\n // region refinery flowrates report\r\n buildRefineryFlowratesChart() {\r\n const series = [\r\n {\r\n name: 'Volumetric flowrate',\r\n colorByPoint: true,\r\n data: this.refineryFlowRates.data.map(cv => {\r\n return { y: cv.value, name: cv.name };\r\n }),\r\n },\r\n ];\r\n\r\n const chartOptions = this.getCommonChartOptions('Refinery flowrates', this.refineryFlowRates.unit, series);\r\n\r\n Highcharts.chart('srRefineryFlowRatesChart', <any>chartOptions);\r\n }\r\n\r\n buildRefineryFlowratesTable() {\r\n const tableData = [];\r\n\r\n for (const cu of this.refineryFlowRates.data) {\r\n tableData.push({ name: cu.name, value: cu.value });\r\n }\r\n\r\n const $table = $('#srRefineryFlowRatesTable');\r\n\r\n if ((<any>$.fn).dataTable.isDataTable('#srRefineryFlowRatesTable')) {\r\n (<any>$table).DataTable().destroy();\r\n }\r\n\r\n const opts = {\r\n data: tableData,\r\n paging: false,\r\n searching: false,\r\n info: false,\r\n order: [[1, 'desc']],\r\n columns: [\r\n {\r\n data: 'name',\r\n },\r\n {\r\n data: (data, type) => {\r\n if (type === 'display') {\r\n return `${unitConverter.formatNumber(data.value)} ${this.refineryFlowRates.unit}`;\r\n }\r\n return data.value;\r\n },\r\n },\r\n ],\r\n };\r\n\r\n (<any>$table).DataTable(<any>opts);\r\n }\r\n // endregion\r\n\r\n // region revenue report\r\n buildRevenueChart() {\r\n const series = [\r\n {\r\n name: 'Total Revenue',\r\n colorByPoint: true,\r\n data: this.revenueReport.data.map(cv => {\r\n return { y: cv.value, name: cv.name };\r\n }),\r\n },\r\n ];\r\n\r\n const chartOptions = this.getCommonChartOptions('Revenue', this.revenueReport.unit, series);\r\n\r\n Highcharts.chart('srRevenueChart', <any>chartOptions);\r\n }\r\n\r\n buildRevenueTable() {\r\n const tableData = [];\r\n\r\n for (const cu of this.revenueReport.data) {\r\n tableData.push({ name: cu.name, value: cu.value });\r\n }\r\n\r\n const $table = $('#srRevenueTable');\r\n\r\n if ((<any>$.fn).dataTable.isDataTable('#srRevenueTable')) {\r\n (<any>$table).DataTable().destroy();\r\n }\r\n\r\n const opts = {\r\n data: tableData,\r\n paging: false,\r\n searching: false,\r\n info: false,\r\n order: [[1, 'desc']],\r\n columns: [\r\n {\r\n data: 'name',\r\n },\r\n {\r\n data: (data, type) => {\r\n if (type === 'display') {\r\n return `${unitConverter.formatNumber(data.value)} ${this.revenueReport.unit}`;\r\n }\r\n return data.value;\r\n },\r\n },\r\n ],\r\n };\r\n\r\n (<any>$table).DataTable(<any>opts);\r\n }\r\n // endregion\r\n\r\n // region capex report\r\n buildCapexChart() {\r\n const series = {\r\n name: 'CAPEX',\r\n colorByPoint: true,\r\n data: this.capexReport.contributionByCategory.map(cv => {\r\n return { y: cv.value, name: cv.name, drilldown: cv.childDataId };\r\n }),\r\n };\r\n\r\n const drilldownSeries = this.capexReport.contributionByUnit.map(cu => {\r\n return {\r\n name: `${cu.name} CAPEX`,\r\n id: cu.id,\r\n data: cu.data.map(cv => {\r\n return {\r\n name: cv.name,\r\n y: cv.value,\r\n };\r\n }),\r\n };\r\n });\r\n\r\n const chartOptions = this.getCommonDrilldownChartOptions('CAPEX', this.capexReport.unit, series, drilldownSeries);\r\n Highcharts.chart('srCapexChart', <any>chartOptions);\r\n }\r\n\r\n buildCapexTable() {\r\n const tableData = [];\r\n\r\n for (const cu of this.capexReport.contributionByUnit) {\r\n for (const cv of cu.data) {\r\n tableData.push(cv);\r\n }\r\n }\r\n\r\n const $table = $('#srCapexTable');\r\n\r\n if ((<any>$.fn).dataTable.isDataTable('#srCapexTable')) {\r\n (<any>$table).DataTable().destroy();\r\n }\r\n\r\n const opts = {\r\n data: tableData,\r\n paging: false,\r\n searching: false,\r\n info: false,\r\n order: [[1, 'desc']],\r\n columns: [\r\n {\r\n data: 'name',\r\n },\r\n {\r\n data: (data, type) => {\r\n if (type === 'display') {\r\n return `${unitConverter.formatNumber(data.value)} ${this.capexReport.unit}`;\r\n }\r\n return data.value;\r\n },\r\n },\r\n ],\r\n };\r\n\r\n (<any>$table).DataTable(<any>opts);\r\n }\r\n // endregion\r\n\r\n // region opex report\r\n buildOpexChart() {\r\n const series = {\r\n name: 'OPEX',\r\n colorByPoint: true,\r\n data: this.opexReport.contributionByCategory.map(cv => {\r\n return { y: cv.value, name: cv.name, drilldown: cv.childDataId };\r\n }),\r\n };\r\n\r\n const drilldownSeries = this.opexReport.contributionByUnit.map(cu => {\r\n return {\r\n name: `${cu.name} OPEX`,\r\n id: cu.id,\r\n data: cu.data.map(cv => {\r\n return {\r\n name: cv.name,\r\n y: cv.value,\r\n };\r\n }),\r\n };\r\n });\r\n\r\n const chartOptions = this.getCommonDrilldownChartOptions('OPEX', this.opexReport.unit, series, drilldownSeries);\r\n Highcharts.chart('srOpexChart', <any>chartOptions);\r\n }\r\n\r\n buildOpexTable() {\r\n const tableData = [];\r\n\r\n for (const cu of this.opexReport.contributionByUnit) {\r\n for (const cv of cu.data) {\r\n tableData.push(cv);\r\n }\r\n }\r\n\r\n const $table = $('#srOpexTable');\r\n\r\n if ((<any>$.fn).dataTable.isDataTable('#srOpexTable')) {\r\n (<any>$table).DataTable().destroy();\r\n }\r\n\r\n const opts = {\r\n data: tableData,\r\n paging: false,\r\n searching: false,\r\n info: false,\r\n order: [[1, 'desc']],\r\n columns: [\r\n {\r\n data: 'name',\r\n },\r\n {\r\n data: (data, type) => {\r\n if (type === 'display') {\r\n return `${unitConverter.formatNumber(data.value)} ${this.opexReport.unit}`;\r\n }\r\n return data.value;\r\n },\r\n },\r\n ],\r\n };\r\n\r\n (<any>$table).DataTable(<any>opts);\r\n }\r\n // endregion\r\n\r\n switchConstraintChartType() {\r\n this.objFunctionUnit = this.objFunctionUnit === '%' ? 'MMCAD$/kbpcd' : '%';\r\n this.objFunctionUnit === 'MMCAD$/kbpcd'\r\n ? this.buildConstraintRankingChart()\r\n : this.buildConstraintRankingByPercentChart();\r\n }\r\n\r\n buildConstraintRankingChart() {\r\n this.ref.detectChanges();\r\n const series = this.constraintRanking\r\n .map(mve => {\r\n return { name: `${mve.variableName} - ${mve.unitOperationName}`, y: mve.objFunctionChangeRate };\r\n })\r\n .filter(mve => !mve.name.startsWith('Minimum Flow'));\r\n\r\n const chartOptions = this.getBarChartOptions(series);\r\n Highcharts.chart('srConstraintChart', <any>chartOptions);\r\n }\r\n\r\n buildConstraintRankingByPercentChart() {\r\n const totalObjFunctionChangeRateValue = this.getTotalObjFunctionChangeRate();\r\n\r\n const series = this.constraintRanking\r\n .filter(mve => !mve.variableName.startsWith('Minimum Flow'))\r\n .map(mve => {\r\n const percent = (mve.objFunctionChangeRate * 100) / totalObjFunctionChangeRateValue;\r\n return { name: `${mve.variableName} - ${mve.unitOperationName}`, y: percent };\r\n });\r\n\r\n const chartOptions = this.getBarChartOptions(series);\r\n Highcharts.chart('srConstraintChart', <any>chartOptions);\r\n }\r\n\r\n getTotalObjFunctionChangeRate() {\r\n let total = 0;\r\n this.constraintRanking\r\n .filter(mve => !mve.variableName.startsWith('Minimum Flow'))\r\n .forEach(mve => {\r\n total += mve.objFunctionChangeRate;\r\n });\r\n\r\n return total;\r\n }\r\n\r\n getBarChartOptions(series) {\r\n return {\r\n chart: {\r\n type: 'column',\r\n },\r\n credits: {\r\n enabled: false,\r\n },\r\n legend: {\r\n enabled: false,\r\n },\r\n title: {\r\n text: undefined,\r\n },\r\n xAxis: {\r\n type: 'category',\r\n },\r\n yAxis: {\r\n title: {\r\n text: `Obj. function change rate value (${this.objFunctionUnit})`,\r\n },\r\n },\r\n plotOptions: {\r\n series: {\r\n dataLabels: {\r\n enabled: false,\r\n },\r\n },\r\n },\r\n tooltip: {\r\n headerFormat: '<span style=\"font-size:11px\">{series.name}</span><br>',\r\n pointFormat: `<span style=\"color:{point.color}\">{point.name}</span>: <b>{point.y:,.3f}${this.objFunctionUnit}</b><br/>`,\r\n followPointer: true,\r\n },\r\n series: [\r\n {\r\n name: 'Constraint',\r\n data: series,\r\n colorByPoint: true,\r\n },\r\n ],\r\n };\r\n }\r\n\r\n getCommonChartOptions(title, unit, series) {\r\n return {\r\n chart: {\r\n plotBackgroundColor: null,\r\n plotBorderWidth: null,\r\n plotShadow: false,\r\n type: 'pie',\r\n },\r\n\r\n credits: {\r\n enabled: false,\r\n },\r\n\r\n title: {\r\n text: title,\r\n },\r\n\r\n plotOptions: {\r\n series: {\r\n dataLabels: {\r\n enabled: true,\r\n format: `{point.name}: {point.y:,.2f} ${unit}`,\r\n },\r\n },\r\n },\r\n tooltip: {\r\n headerFormat: '<span style=\"font-size:11px\">{series.name}</span><br>',\r\n pointFormat: `<span style=\"color:{point.color}\">{point.name}</span>: <b>{point.y:,.2f} ${unit}</b><br/>`,\r\n },\r\n series,\r\n };\r\n }\r\n\r\n getCommonDrilldownChartOptions(title, unit, series, drilldownSeries) {\r\n return {\r\n chart: {\r\n plotBackgroundColor: null,\r\n plotBorderWidth: null,\r\n plotShadow: false,\r\n type: 'pie',\r\n },\r\n\r\n credits: {\r\n enabled: false,\r\n },\r\n\r\n title: {\r\n text: title,\r\n },\r\n\r\n plotOptions: {\r\n series: {\r\n dataLabels: {\r\n enabled: true,\r\n format: `{point.name}: {point.y:.2f} ${unit}`,\r\n },\r\n },\r\n },\r\n tooltip: {\r\n headerFormat: '<span style=\"font-size:11px\">{series.name}</span><br>',\r\n pointFormat: `<span style=\"color:{point.color}\">{point.name}</span>: <b>{point.y:.2f} ${unit}</b><br/>`,\r\n },\r\n series: [series],\r\n\r\n drilldown: {\r\n series: drilldownSeries,\r\n },\r\n };\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subSink.unsubscribe();\r\n }\r\n}\r\n","<div class=\"dark-overlay\" style=\"display: none\">\r\n <div class=\"progress-wrapper\">\r\n <div class=\"lds-ellipsis\">\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n </div>\r\n <div class=\"text-center progress-message\">\r\n {{ message ? message : 'Solving...' }}\r\n </div>\r\n <button *ngIf=\"showStopButton\" (click)=\"stop()\" class=\"btn btn-sm btn-white btn-block\" id=\"cancelSolve\">\r\n Cancel\r\n </button>\r\n </div>\r\n</div>\r\n","import { Component, ElementRef } from '@angular/core';\r\nimport { ProgressIndicatorService } from './progress-indicator.service';\r\n\r\n@Component({\r\n selector: 'sob-progress-indicator',\r\n templateUrl: './progress-indicator.component.html',\r\n styleUrls: ['./progress-indicator.component.css'],\r\n})\r\nexport class ProgressIndicatorComponent {\r\n message: string;\r\n showStopButton: boolean;\r\n\r\n constructor(private elementRef: ElementRef, private progressIndicator: ProgressIndicatorService) {\r\n this.progressIndicator.showRequest.subscribe((data: { message: string; showStopButton: boolean }) => {\r\n this.message = data.message;\r\n this.showStopButton = data.showStopButton;\r\n this.show();\r\n });\r\n\r\n this.progressIndicator.hideRequest.subscribe(() => {\r\n this.hide();\r\n });\r\n\r\n // weirdly backwards\r\n this.progressIndicator.cancelRequest.subscribe(() => {\r\n this.stop();\r\n });\r\n }\r\n\r\n show() {\r\n this.elementRef.nativeElement.firstChild.style.display = 'block';\r\n }\r\n\r\n hide() {\r\n this.elementRef.nativeElement.firstChild.style.display = 'none';\r\n }\r\n\r\n stop() {\r\n this.progressIndicator.cancel();\r\n }\r\n}\r\n","/*! xlsx.js (C) 2013-present SheetJS -- http://sheetjs.com */\n/* vim: set ts=2: */\n/*exported XLSX */\n/*global process:false, Buffer:false, ArrayBuffer:false, DataView:false, Deno:false */\nvar XLSX = {};\nXLSX.version = '0.19.3';\nvar current_codepage = 1200, current_ansi = 1252;\n/*:: declare var cptable:any; */\n/*global cptable:true, window */\nvar $cptable;\n\nvar VALID_ANSI = [ 874, 932, 936, 949, 950, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 10000 ];\n/* ECMA-376 Part I 18.4.1 charset to codepage mapping */\nvar CS2CP = ({\n\t/*::[*/0/*::]*/: 1252, /* ANSI */\n\t/*::[*/1/*::]*/: 65001, /* DEFAULT */\n\t/*::[*/2/*::]*/: 65001, /* SYMBOL */\n\t/*::[*/77/*::]*/: 10000, /* MAC */\n\t/*::[*/128/*::]*/: 932, /* SHIFTJIS */\n\t/*::[*/129/*::]*/: 949, /* HANGUL */\n\t/*::[*/130/*::]*/: 1361, /* JOHAB */\n\t/*::[*/134/*::]*/: 936, /* GB2312 */\n\t/*::[*/136/*::]*/: 950, /* CHINESEBIG5 */\n\t/*::[*/161/*::]*/: 1253, /* GREEK */\n\t/*::[*/162/*::]*/: 1254, /* TURKISH */\n\t/*::[*/163/*::]*/: 1258, /* VIETNAMESE */\n\t/*::[*/177/*::]*/: 1255, /* HEBREW */\n\t/*::[*/178/*::]*/: 1256, /* ARABIC */\n\t/*::[*/186/*::]*/: 1257, /* BALTIC */\n\t/*::[*/204/*::]*/: 1251, /* RUSSIAN */\n\t/*::[*/222/*::]*/: 874, /* THAI */\n\t/*::[*/238/*::]*/: 1250, /* EASTEUROPE */\n\t/*::[*/255/*::]*/: 1252, /* OEM */\n\t/*::[*/69/*::]*/: 6969 /* MISC */\n}/*:any*/);\n\nvar set_ansi = function(cp/*:number*/) { if(VALID_ANSI.indexOf(cp) == -1) return; current_ansi = CS2CP[0] = cp; };\nfunction reset_ansi() { set_ansi(1252); }\n\nvar set_cp = function(cp/*:number*/) { current_codepage = cp; set_ansi(cp); };\nfunction reset_cp() { set_cp(1200); reset_ansi(); }\n\nfunction char_codes(data/*:string*/)/*:Array<number>*/ { var o/*:Array<number>*/ = []; for(var i = 0, len = data.length; i < len; ++i) o[i] = data.charCodeAt(i); return o; }\n\nfunction utf16leread(data/*:string*/)/*:string*/ {\n\tvar o/*:Array<string>*/ = [];\n\tfor(var i = 0; i < (data.length>>1); ++i) o[i] = String.fromCharCode(data.charCodeAt(2*i) + (data.charCodeAt(2*i+1)<<8));\n\treturn o.join(\"\");\n}\nfunction utf16lereadu(data/*:Uint8Array*/)/*:string*/ {\n\tvar o/*:Array<string>*/ = [];\n\tfor(var i = 0; i < (data.length>>1); ++i) o[i] = String.fromCharCode(data[2*i] + (data[2*i+1]<<8));\n\treturn o.join(\"\");\n}\nfunction utf16beread(data/*:string*/)/*:string*/ {\n\tvar o/*:Array<string>*/ = [];\n\tfor(var i = 0; i < (data.length>>1); ++i) o[i] = String.fromCharCode(data.charCodeAt(2*i+1) + (data.charCodeAt(2*i)<<8));\n\treturn o.join(\"\");\n}\n\nvar debom = function(data/*:string*/)/*:string*/ {\n\tvar c1 = data.charCodeAt(0), c2 = data.charCodeAt(1);\n\tif(c1 == 0xFF && c2 == 0xFE) return utf16leread(data.slice(2));\n\tif(c1 == 0xFE && c2 == 0xFF) return utf16beread(data.slice(2));\n\tif(c1 == 0xFEFF) return data.slice(1);\n\treturn data;\n};\n\nvar _getchar = function _gc1(x/*:number*/)/*:string*/ { return String.fromCharCode(x); };\nvar _getansi = function _ga1(x/*:number*/)/*:string*/ { return String.fromCharCode(x); };\n\nfunction set_cptable(cptable) {\n\t$cptable = cptable;\n\tset_cp = function(cp/*:number*/) { current_codepage = cp; set_ansi(cp); };\n\tdebom = function(data/*:string*/) {\n\t\tif(data.charCodeAt(0) === 0xFF && data.charCodeAt(1) === 0xFE) { return $cptable.utils.decode(1200, char_codes(data.slice(2))); }\n\t\treturn data;\n\t};\n\t_getchar = function _gc2(x/*:number*/)/*:string*/ {\n\t\tif(current_codepage === 1200) return String.fromCharCode(x);\n\t\treturn $cptable.utils.decode(current_codepage, [x&255,x>>8])[0];\n\t};\n\t_getansi = function _ga2(x/*:number*/)/*:string*/ {\n\t\treturn $cptable.utils.decode(current_ansi, [x])[0];\n\t};\n\tcpdoit();\n}\nvar DENSE = null;\nvar DIF_XL = true;\nvar Base64_map = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\nfunction Base64_encode(input) {\n var o = \"\";\n var c1 = 0, c2 = 0, c3 = 0, e1 = 0, e2 = 0, e3 = 0, e4 = 0;\n for (var i = 0; i < input.length; ) {\n c1 = input.charCodeAt(i++);\n e1 = c1 >> 2;\n c2 = input.charCodeAt(i++);\n e2 = (c1 & 3) << 4 | c2 >> 4;\n c3 = input.charCodeAt(i++);\n e3 = (c2 & 15) << 2 | c3 >> 6;\n e4 = c3 & 63;\n if (isNaN(c2)) {\n e3 = e4 = 64;\n } else if (isNaN(c3)) {\n e4 = 64;\n }\n o += Base64_map.charAt(e1) + Base64_map.charAt(e2) + Base64_map.charAt(e3) + Base64_map.charAt(e4);\n }\n return o;\n}\nfunction Base64_encode_pass(input) {\n var o = \"\";\n var c1 = 0, c2 = 0, c3 = 0, e1 = 0, e2 = 0, e3 = 0, e4 = 0;\n for (var i = 0; i < input.length; ) {\n c1 = input.charCodeAt(i++);\n if (c1 > 255)\n c1 = 95;\n e1 = c1 >> 2;\n c2 = input.charCodeAt(i++);\n if (c2 > 255)\n c2 = 95;\n e2 = (c1 & 3) << 4 | c2 >> 4;\n c3 = input.charCodeAt(i++);\n if (c3 > 255)\n c3 = 95;\n e3 = (c2 & 15) << 2 | c3 >> 6;\n e4 = c3 & 63;\n if (isNaN(c2)) {\n e3 = e4 = 64;\n } else if (isNaN(c3)) {\n e4 = 64;\n }\n o += Base64_map.charAt(e1) + Base64_map.charAt(e2) + Base64_map.charAt(e3) + Base64_map.charAt(e4);\n }\n return o;\n}\nfunction Base64_decode(input) {\n var o = \"\";\n var c1 = 0, c2 = 0, c3 = 0, e1 = 0, e2 = 0, e3 = 0, e4 = 0;\n input = input.replace(/^data:([^\\/]+\\/[^\\/]+)?;base64\\,/, \"\").replace(/[^\\w\\+\\/\\=]/g, \"\");\n for (var i = 0; i < input.length; ) {\n e1 = Base64_map.indexOf(input.charAt(i++));\n e2 = Base64_map.indexOf(input.charAt(i++));\n c1 = e1 << 2 | e2 >> 4;\n o += String.fromCharCode(c1);\n e3 = Base64_map.indexOf(input.charAt(i++));\n c2 = (e2 & 15) << 4 | e3 >> 2;\n if (e3 !== 64) {\n o += String.fromCharCode(c2);\n }\n e4 = Base64_map.indexOf(input.charAt(i++));\n c3 = (e3 & 3) << 6 | e4;\n if (e4 !== 64) {\n o += String.fromCharCode(c3);\n }\n }\n return o;\n}\nvar has_buf = /*#__PURE__*/(function() { return typeof Buffer !== 'undefined' && typeof process !== 'undefined' && typeof process.versions !== 'undefined' && !!process.versions.node; })();\n\nvar Buffer_from = /*#__PURE__*/(function() {\n\tif(typeof Buffer !== 'undefined') {\n\t\tvar nbfs = !Buffer.from;\n\t\tif(!nbfs) try { Buffer.from(\"foo\", \"utf8\"); } catch(e) { nbfs = true; }\n\t\treturn nbfs ? function(buf, enc) { return (enc) ? new Buffer(buf, enc) : new Buffer(buf); } : Buffer.from.bind(Buffer);\n\t}\n\treturn function() {};\n})();\nvar buf_utf16le = /*#__PURE__*/(function() {\n\tif(typeof Buffer === 'undefined') return false;\n\tvar x = Buffer_from([65,0]);\n\tif(!x) return false;\n\tvar o = x.toString(\"utf16le\");\n\treturn o.length == 1;\n})();\n\n\nfunction new_raw_buf(len/*:number*/) {\n\t/* jshint -W056 */\n\tif(has_buf) return Buffer.alloc ? Buffer.alloc(len) : new Buffer(len);\n\treturn typeof Uint8Array != \"undefined\" ? new Uint8Array(len) : new Array(len);\n\t/* jshint +W056 */\n}\n\nfunction new_unsafe_buf(len/*:number*/) {\n\t/* jshint -W056 */\n\tif(has_buf) return Buffer.allocUnsafe ? Buffer.allocUnsafe(len) : new Buffer(len);\n\treturn typeof Uint8Array != \"undefined\" ? new Uint8Array(len) : new Array(len);\n\t/* jshint +W056 */\n}\n\nvar s2a = function s2a(s/*:string*/)/*:any*/ {\n\tif(has_buf) return Buffer_from(s, \"binary\");\n\treturn s.split(\"\").map(function(x/*:string*/)/*:number*/{ return x.charCodeAt(0) & 0xff; });\n};\n\nfunction s2ab(s/*:string*/)/*:any*/ {\n\tif(typeof ArrayBuffer === 'undefined') return s2a(s);\n\tvar buf = new ArrayBuffer(s.length), view = new Uint8Array(buf);\n\tfor (var i=0; i!=s.length; ++i) view[i] = s.charCodeAt(i) & 0xFF;\n\treturn buf;\n}\n\nfunction a2s(data/*:any*/)/*:string*/ {\n\tif(Array.isArray(data)) return data.map(function(c) { return String.fromCharCode(c); }).join(\"\");\n\tvar o/*:Array<string>*/ = []; for(var i = 0; i < data.length; ++i) o[i] = String.fromCharCode(data[i]); return o.join(\"\");\n}\n\nfunction a2u(data/*:Array<number>*/)/*:Uint8Array*/ {\n\tif(typeof Uint8Array === 'undefined') throw new Error(\"Unsupported\");\n\treturn new Uint8Array(data);\n}\n\nfunction ab2a(data/*:ArrayBuffer|Uint8Array*/)/*:Array<number>*/ {\n\tif(typeof ArrayBuffer == 'undefined') throw new Error(\"Unsupported\");\n\tif(data instanceof ArrayBuffer) return ab2a(new Uint8Array(data));\n\t/*:: if(data instanceof ArrayBuffer) throw new Error(\"unreachable\"); */\n\tvar o = new Array(data.length);\n\tfor(var i = 0; i < data.length; ++i) o[i] = data[i];\n\treturn o;\n}\n\nvar bconcat = has_buf ? function(bufs) { return Buffer.concat(bufs.map(function(buf) { return Buffer.isBuffer(buf) ? buf : Buffer_from(buf); })); } : function(bufs) {\n\tif(typeof Uint8Array !== \"undefined\") {\n\t\tvar i = 0, maxlen = 0;\n\t\tfor(i = 0; i < bufs.length; ++i) maxlen += bufs[i].length;\n\t\tvar o = new Uint8Array(maxlen);\n\t\tvar len = 0;\n\t\tfor(i = 0, maxlen = 0; i < bufs.length; maxlen += len, ++i) {\n\t\t\tlen = bufs[i].length;\n\t\t\tif(bufs[i] instanceof Uint8Array) o.set(bufs[i], maxlen);\n\t\t\telse if(typeof bufs[i] == \"string\") o.set(new Uint8Array(s2a(bufs[i])), maxlen);\n\t\t\telse o.set(new Uint8Array(bufs[i]), maxlen);\n\t\t}\n\t\treturn o;\n\t}\n\treturn [].concat.apply([], bufs.map(function(buf) { return Array.isArray(buf) ? buf : [].slice.call(buf); }));\n};\n\nfunction utf8decode(content/*:string*/) {\n\tvar out = [], widx = 0, L = content.length + 250;\n\tvar o = new_raw_buf(content.length + 255);\n\tfor(var ridx = 0; ridx < content.length; ++ridx) {\n\t\tvar c = content.charCodeAt(ridx);\n\t\tif(c < 0x80) o[widx++] = c;\n\t\telse if(c < 0x800) {\n\t\t\to[widx++] = (192|((c>>6)&31));\n\t\t\to[widx++] = (128|(c&63));\n\t\t} else if(c >= 0xD800 && c < 0xE000) {\n\t\t\tc = (c&1023)+64;\n\t\t\tvar d = content.charCodeAt(++ridx)&1023;\n\t\t\to[widx++] = (240|((c>>8)&7));\n\t\t\to[widx++] = (128|((c>>2)&63));\n\t\t\to[widx++] = (128|((d>>6)&15)|((c&3)<<4));\n\t\t\to[widx++] = (128|(d&63));\n\t\t} else {\n\t\t\to[widx++] = (224|((c>>12)&15));\n\t\t\to[widx++] = (128|((c>>6)&63));\n\t\t\to[widx++] = (128|(c&63));\n\t\t}\n\t\tif(widx > L) {\n\t\t\tout.push(o.slice(0, widx));\n\t\t\twidx = 0;\n\t\t\to = new_raw_buf(65535);\n\t\t\tL = 65530;\n\t\t}\n\t}\n\tout.push(o.slice(0, widx));\n\treturn bconcat(out);\n}\n\nvar chr0 = /\\u0000/g, chr1 = /[\\u0001-\\u0006]/g;\n/*::\ndeclare type Block = any;\ndeclare type BufArray = {\n\tnewblk(sz:number):Block;\n\tnext(sz:number):Block;\n\tend():any;\n\tpush(buf:Block):void;\n};\n\ntype RecordHopperCB = {(d:any, Rn:string, RT:number):?boolean;};\n\ntype EvertType = {[string]:string};\ntype EvertNumType = {[string]:number};\ntype EvertArrType = {[string]:Array<string>};\n\ntype StringConv = {(string):string};\n\n*/\n/* ssf.js (C) 2013-present SheetJS -- http://sheetjs.com */\n/*jshint -W041 */\nfunction _strrev(x/*:string*/)/*:string*/ { var o = \"\", i = x.length-1; while(i>=0) o += x.charAt(i--); return o; }\nfunction pad0(v/*:any*/,d/*:number*/)/*:string*/{var t=\"\"+v; return t.length>=d?t:fill('0',d-t.length)+t;}\nfunction pad_(v/*:any*/,d/*:number*/)/*:string*/{var t=\"\"+v;return t.length>=d?t:fill(' ',d-t.length)+t;}\nfunction rpad_(v/*:any*/,d/*:number*/)/*:string*/{var t=\"\"+v; return t.length>=d?t:t+fill(' ',d-t.length);}\nfunction pad0r1(v/*:any*/,d/*:number*/)/*:string*/{var t=\"\"+Math.round(v); return t.length>=d?t:fill('0',d-t.length)+t;}\nfunction pad0r2(v/*:any*/,d/*:number*/)/*:string*/{var t=\"\"+v; return t.length>=d?t:fill('0',d-t.length)+t;}\nvar p2_32 = /*#__PURE__*/Math.pow(2,32);\nfunction pad0r(v/*:any*/,d/*:number*/)/*:string*/{if(v>p2_32||v<-p2_32) return pad0r1(v,d); var i = Math.round(v); return pad0r2(i,d); }\n/* yes, in 2022 this is still faster than string compare */\nfunction SSF_isgeneral(s/*:string*/, i/*:?number*/)/*:boolean*/ { i = i || 0; return s.length >= 7 + i && (s.charCodeAt(i)|32) === 103 && (s.charCodeAt(i+1)|32) === 101 && (s.charCodeAt(i+2)|32) === 110 && (s.charCodeAt(i+3)|32) === 101 && (s.charCodeAt(i+4)|32) === 114 && (s.charCodeAt(i+5)|32) === 97 && (s.charCodeAt(i+6)|32) === 108; }\nvar days/*:Array<Array<string> >*/ = [\n\t['Sun', 'Sunday'],\n\t['Mon', 'Monday'],\n\t['Tue', 'Tuesday'],\n\t['Wed', 'Wednesday'],\n\t['Thu', 'Thursday'],\n\t['Fri', 'Friday'],\n\t['Sat', 'Saturday']\n];\nvar months/*:Array<Array<string> >*/ = [\n\t['J', 'Jan', 'January'],\n\t['F', 'Feb', 'February'],\n\t['M', 'Mar', 'March'],\n\t['A', 'Apr', 'April'],\n\t['M', 'May', 'May'],\n\t['J', 'Jun', 'June'],\n\t['J', 'Jul', 'July'],\n\t['A', 'Aug', 'August'],\n\t['S', 'Sep', 'September'],\n\t['O', 'Oct', 'October'],\n\t['N', 'Nov', 'November'],\n\t['D', 'Dec', 'December']\n];\nfunction SSF_init_table(t/*:any*/) {\n\tif(!t) t = {};\n\tt[0]= 'General';\n\tt[1]= '0';\n\tt[2]= '0.00';\n\tt[3]= '#,##0';\n\tt[4]= '#,##0.00';\n\tt[9]= '0%';\n\tt[10]= '0.00%';\n\tt[11]= '0.00E+00';\n\tt[12]= '# ?/?';\n\tt[13]= '# ??/??';\n\tt[14]= 'm/d/yy';\n\tt[15]= 'd-mmm-yy';\n\tt[16]= 'd-mmm';\n\tt[17]= 'mmm-yy';\n\tt[18]= 'h:mm AM/PM';\n\tt[19]= 'h:mm:ss AM/PM';\n\tt[20]= 'h:mm';\n\tt[21]= 'h:mm:ss';\n\tt[22]= 'm/d/yy h:mm';\n\tt[37]= '#,##0 ;(#,##0)';\n\tt[38]= '#,##0 ;[Red](#,##0)';\n\tt[39]= '#,##0.00;(#,##0.00)';\n\tt[40]= '#,##0.00;[Red](#,##0.00)';\n\tt[45]= 'mm:ss';\n\tt[46]= '[h]:mm:ss';\n\tt[47]= 'mmss.0';\n\tt[48]= '##0.0E+0';\n\tt[49]= '@';\n\tt[56]= '\"上午/下午 \"hh\"時\"mm\"分\"ss\"秒 \"';\n\treturn t;\n}\n/* repeated to satiate webpack */\nvar table_fmt = {\n\t0: 'General',\n\t1: '0',\n\t2: '0.00',\n\t3: '#,##0',\n\t4: '#,##0.00',\n\t9: '0%',\n\t10: '0.00%',\n\t11: '0.00E+00',\n\t12: '# ?/?',\n\t13: '# ??/??',\n\t14: 'm/d/yy',\n\t15: 'd-mmm-yy',\n\t16: 'd-mmm',\n\t17: 'mmm-yy',\n\t18: 'h:mm AM/PM',\n\t19: 'h:mm:ss AM/PM',\n\t20: 'h:mm',\n\t21: 'h:mm:ss',\n\t22: 'm/d/yy h:mm',\n\t37: '#,##0 ;(#,##0)',\n\t38: '#,##0 ;[Red](#,##0)',\n\t39: '#,##0.00;(#,##0.00)',\n\t40: '#,##0.00;[Red](#,##0.00)',\n\t45: 'mm:ss',\n\t46: '[h]:mm:ss',\n\t47: 'mmss.0',\n\t48: '##0.0E+0',\n\t49: '@',\n\t56: '\"上午/下午 \"hh\"時\"mm\"分\"ss\"秒 \"'\n};\n\n/* Defaults determined by systematically testing in Excel 2019 */\n\n/* These formats appear to default to other formats in the table */\nvar SSF_default_map = {\n\t5: 37, 6: 38, 7: 39, 8: 40, // 5 -> 37 ... 8 -> 40\n\n\t23: 0, 24: 0, 25: 0, 26: 0, // 23 -> 0 ... 26 -> 0\n\n\t27: 14, 28: 14, 29: 14, 30: 14, 31: 14, // 27 -> 14 ... 31 -> 14\n\n\t50: 14, 51: 14, 52: 14, 53: 14, 54: 14, // 50 -> 14 ... 58 -> 14\n\t55: 14, 56: 14, 57: 14, 58: 14,\n\t59: 1, 60: 2, 61: 3, 62: 4, // 59 -> 1 ... 62 -> 4\n\n\t67: 9, 68: 10, // 67 -> 9 ... 68 -> 10\n\t69: 12, 70: 13, 71: 14, // 69 -> 12 ... 71 -> 14\n\t72: 14, 73: 15, 74: 16, 75: 17, // 72 -> 14 ... 75 -> 17\n\t76: 20, 77: 21, 78: 22, // 76 -> 20 ... 78 -> 22\n\t79: 45, 80: 46, 81: 47, // 79 -> 45 ... 81 -> 47\n\t82: 0 // 82 -> 0 ... 65536 -> 0 (omitted)\n};\n\n\n/* These formats technically refer to Accounting formats with no equivalent */\nvar SSF_default_str = {\n\t// 5 -- Currency, 0 decimal, black negative\n\t5: '\"$\"#,##0_);\\\\(\"$\"#,##0\\\\)',\n\t63: '\"$\"#,##0_);\\\\(\"$\"#,##0\\\\)',\n\n\t// 6 -- Currency, 0 decimal, red negative\n\t6: '\"$\"#,##0_);[Red]\\\\(\"$\"#,##0\\\\)',\n\t64: '\"$\"#,##0_);[Red]\\\\(\"$\"#,##0\\\\)',\n\n\t// 7 -- Currency, 2 decimal, black negative\n\t7: '\"$\"#,##0.00_);\\\\(\"$\"#,##0.00\\\\)',\n\t65: '\"$\"#,##0.00_);\\\\(\"$\"#,##0.00\\\\)',\n\n\t// 8 -- Currency, 2 decimal, red negative\n\t8: '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)',\n\t66: '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)',\n\n\t// 41 -- Accounting, 0 decimal, No Symbol\n\t41: '_(* #,##0_);_(* \\\\(#,##0\\\\);_(* \"-\"_);_(@_)',\n\n\t// 42 -- Accounting, 0 decimal, $ Symbol\n\t42: '_(\"$\"* #,##0_);_(\"$\"* \\\\(#,##0\\\\);_(\"$\"* \"-\"_);_(@_)',\n\n\t// 43 -- Accounting, 2 decimal, No Symbol\n\t43: '_(* #,##0.00_);_(* \\\\(#,##0.00\\\\);_(* \"-\"??_);_(@_)',\n\n\t// 44 -- Accounting, 2 decimal, $ Symbol\n\t44: '_(\"$\"* #,##0.00_);_(\"$\"* \\\\(#,##0.00\\\\);_(\"$\"* \"-\"??_);_(@_)'\n};\n\nfunction SSF_frac(x/*:number*/, D/*:number*/, mixed/*:?boolean*/)/*:Array<number>*/ {\n\tvar sgn = x < 0 ? -1 : 1;\n\tvar B = x * sgn;\n\tvar P_2 = 0, P_1 = 1, P = 0;\n\tvar Q_2 = 1, Q_1 = 0, Q = 0;\n\tvar A = Math.floor(B);\n\twhile(Q_1 < D) {\n\t\tA = Math.floor(B);\n\t\tP = A * P_1 + P_2;\n\t\tQ = A * Q_1 + Q_2;\n\t\tif((B - A) < 0.00000005) break;\n\t\tB = 1 / (B - A);\n\t\tP_2 = P_1; P_1 = P;\n\t\tQ_2 = Q_1; Q_1 = Q;\n\t}\n\tif(Q > D) { if(Q_1 > D) { Q = Q_2; P = P_2; } else { Q = Q_1; P = P_1; } }\n\tif(!mixed) return [0, sgn * P, Q];\n\tvar q = Math.floor(sgn * P/Q);\n\treturn [q, sgn*P - q*Q, Q];\n}\nfunction SSF_parse_date_code(v/*:number*/,opts/*:?any*/,b2/*:?boolean*/) {\n\tif(v > 2958465 || v < 0) return null;\n\tvar date = (v|0), time = Math.floor(86400 * (v - date)), dow=0;\n\tvar dout=[];\n\tvar out={D:date, T:time, u:86400*(v-date)-time,y:0,m:0,d:0,H:0,M:0,S:0,q:0};\n\tif(Math.abs(out.u) < 1e-6) out.u = 0;\n\tif(opts && opts.date1904) date += 1462;\n\tif(out.u > 0.9999) {\n\t\tout.u = 0;\n\t\tif(++time == 86400) { out.T = time = 0; ++date; ++out.D; }\n\t}\n\tif(date === 60) {dout = b2 ? [1317,10,29] : [1900,2,29]; dow=3;}\n\telse if(date === 0) {dout = b2 ? [1317,8,29] : [1900,1,0]; dow=6;}\n\telse {\n\t\tif(date > 60) --date;\n\t\t/* 1 = Jan 1 1900 in Gregorian */\n\t\tvar d = new Date(1900, 0, 1);\n\t\td.setDate(d.getDate() + date - 1);\n\t\tdout = [d.getFullYear(), d.getMonth()+1,d.getDate()];\n\t\tdow = d.getDay();\n\t\tif(date < 60) dow = (dow + 6) % 7;\n\t\tif(b2) dow = SSF_fix_hijri(d, dout);\n\t}\n\tout.y = dout[0]; out.m = dout[1]; out.d = dout[2];\n\tout.S = time % 60; time = Math.floor(time / 60);\n\tout.M = time % 60; time = Math.floor(time / 60);\n\tout.H = time;\n\tout.q = dow;\n\treturn out;\n}\nvar SSFbasedate = /*#__PURE__*/new Date(1899, 11, 31, 0, 0, 0);\nvar SSFdnthresh = /*#__PURE__*/SSFbasedate.getTime();\nvar SSFbase1904 = /*#__PURE__*/new Date(1900, 2, 1, 0, 0, 0);\nfunction datenum_local(v/*:Date*/, date1904/*:?boolean*/)/*:number*/ {\n\tvar epoch = /*#__PURE__*/v.getTime();\n\tif(date1904) epoch -= 1461*24*60*60*1000;\n\telse if(v >= SSFbase1904) epoch += 24*60*60*1000;\n\treturn (epoch - (SSFdnthresh + (/*#__PURE__*/v.getTimezoneOffset() - /*#__PURE__*/SSFbasedate.getTimezoneOffset()) * 60000)) / (24 * 60 * 60 * 1000);\n}\n/* ECMA-376 18.8.30 numFmt*/\n/* Note: `toPrecision` uses standard form when prec > E and E >= -6 */\n/* exponent >= -9 and <= 9 */\nfunction SSF_strip_decimal(o/*:string*/)/*:string*/ {\n\treturn (o.indexOf(\".\") == -1) ? o : o.replace(/(?:\\.0*|(\\.\\d*[1-9])0+)$/, \"$1\");\n}\n\n/* General Exponential always shows 2 digits exp and trims the mantissa */\nfunction SSF_normalize_exp(o/*:string*/)/*:string*/ {\n\tif(o.indexOf(\"E\") == -1) return o;\n\treturn o.replace(/(?:\\.0*|(\\.\\d*[1-9])0+)[Ee]/,\"$1E\").replace(/(E[+-])(\\d)$/,\"$10$2\");\n}\n\n/* exponent >= -9 and <= 9 */\nfunction SSF_small_exp(v/*:number*/)/*:string*/ {\n\tvar w = (v<0?12:11);\n\tvar o = SSF_strip_decimal(v.toFixed(12)); if(o.length <= w) return o;\n\to = v.toPrecision(10); if(o.length <= w) return o;\n\treturn v.toExponential(5);\n}\n\n/* exponent >= 11 or <= -10 likely exponential */\nfunction SSF_large_exp(v/*:number*/)/*:string*/ {\n\tvar o = SSF_strip_decimal(v.toFixed(11));\n\treturn (o.length > (v<0?12:11) || o === \"0\" || o === \"-0\") ? v.toPrecision(6) : o;\n}\n\nfunction SSF_general_num(v/*:number*/)/*:string*/ {\n\tvar V = Math.floor(Math.log(Math.abs(v))*Math.LOG10E), o;\n\n\tif(V >= -4 && V <= -1) o = v.toPrecision(10+V);\n\telse if(Math.abs(V) <= 9) o = SSF_small_exp(v);\n\telse if(V === 10) o = v.toFixed(10).substr(0,12);\n\telse o = SSF_large_exp(v);\n\n\treturn SSF_strip_decimal(SSF_normalize_exp(o.toUpperCase()));\n}\n\n\n/*\n\t\"General\" rules:\n\t- text is passed through (\"@\")\n\t- booleans are rendered as TRUE/FALSE\n\t- \"up to 11 characters\" displayed for numbers\n\t- Default date format (code 14) used for Dates\n\n\tThe longest 32-bit integer text is \"-2147483648\", exactly 11 chars\n\tTODO: technically the display depends on the width of the cell\n*/\nfunction SSF_general(v/*:any*/, opts/*:any*/) {\n\tswitch(typeof v) {\n\t\tcase 'string': return v;\n\t\tcase 'boolean': return v ? \"TRUE\" : \"FALSE\";\n\t\tcase 'number': return (v|0) === v ? v.toString(10) : SSF_general_num(v);\n\t\tcase 'undefined': return \"\";\n\t\tcase 'object':\n\t\t\tif(v == null) return \"\";\n\t\t\tif(v instanceof Date) return SSF_format(14, datenum_local(v, opts && opts.date1904), opts);\n\t}\n\tthrow new Error(\"unsupported value in General format: \" + v);\n}\n\nfunction SSF_fix_hijri(date/*:Date*/, o/*:[number, number, number]*/) {\n /* TODO: properly adjust y/m/d and */\n o[0] -= 581;\n var dow = date.getDay();\n if(date < 60) dow = (dow + 6) % 7;\n return dow;\n}\n//var THAI_DIGITS = \"\\u0E50\\u0E51\\u0E52\\u0E53\\u0E54\\u0E55\\u0E56\\u0E57\\u0E58\\u0E59\".split(\"\");\nfunction SSF_write_date(type/*:number*/, fmt/*:string*/, val, ss0/*:?number*/)/*:string*/ {\n\tvar o=\"\", ss=0, tt=0, y = val.y, out, outl = 0;\n\tswitch(type) {\n\t\tcase 98: /* 'b' buddhist year */\n\t\t\ty = val.y + 543;\n\t\t\t/* falls through */\n\t\tcase 121: /* 'y' year */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = y % 100; outl = 2; break;\n\t\t\tdefault: out = y % 10000; outl = 4; break;\n\t\t} break;\n\t\tcase 109: /* 'm' month */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = val.m; outl = fmt.length; break;\n\t\t\tcase 3: return months[val.m-1][1];\n\t\t\tcase 5: return months[val.m-1][0];\n\t\t\tdefault: return months[val.m-1][2];\n\t\t} break;\n\t\tcase 100: /* 'd' day */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = val.d; outl = fmt.length; break;\n\t\t\tcase 3: return days[val.q][0];\n\t\t\tdefault: return days[val.q][1];\n\t\t} break;\n\t\tcase 104: /* 'h' 12-hour */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = 1+(val.H+11)%12; outl = fmt.length; break;\n\t\t\tdefault: throw 'bad hour format: ' + fmt;\n\t\t} break;\n\t\tcase 72: /* 'H' 24-hour */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = val.H; outl = fmt.length; break;\n\t\t\tdefault: throw 'bad hour format: ' + fmt;\n\t\t} break;\n\t\tcase 77: /* 'M' minutes */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = val.M; outl = fmt.length; break;\n\t\t\tdefault: throw 'bad minute format: ' + fmt;\n\t\t} break;\n\t\tcase 115: /* 's' seconds */\n\t\t\tif(fmt != 's' && fmt != 'ss' && fmt != '.0' && fmt != '.00' && fmt != '.000') throw 'bad second format: ' + fmt;\n\t\t\tif(val.u === 0 && (fmt == \"s\" || fmt == \"ss\")) return pad0(val.S, fmt.length);\n\t\t\t/*::if(!ss0) ss0 = 0; */\n\t\t\tif(ss0 >= 2) tt = ss0 === 3 ? 1000 : 100;\n\t\t\telse tt = ss0 === 1 ? 10 : 1;\n\t\t\tss = Math.round((tt)*(val.S + val.u));\n\t\t\tif(ss >= 60*tt) ss = 0;\n\t\t\tif(fmt === 's') return ss === 0 ? \"0\" : \"\"+ss/tt;\n\t\t\to = pad0(ss,2 + ss0);\n\t\t\tif(fmt === 'ss') return o.substr(0,2);\n\t\t\treturn \".\" + o.substr(2,fmt.length-1);\n\t\tcase 90: /* 'Z' absolute time */\n\t\tswitch(fmt) {\n\t\t\tcase '[h]': case '[hh]': out = val.D*24+val.H; break;\n\t\t\tcase '[m]': case '[mm]': out = (val.D*24+val.H)*60+val.M; break;\n\t\t\tcase '[s]': case '[ss]': out = ((val.D*24+val.H)*60+val.M)*60+Math.round(val.S+val.u); break;\n\t\t\tdefault: throw 'bad abstime format: ' + fmt;\n\t\t} outl = fmt.length === 3 ? 1 : 2; break;\n\t\tcase 101: /* 'e' era */\n\t\t\tout = y; outl = 1; break;\n\t}\n\tvar outstr = outl > 0 ? pad0(out, outl) : \"\";\n\treturn outstr;\n}\n\n\n/*jshint -W086 */\n/*jshint +W086 */\nfunction commaify(s/*:string*/)/*:string*/ {\n\tvar w = 3;\n\tif(s.length <= w) return s;\n\tvar j = (s.length % w), o = s.substr(0,j);\n\tfor(; j!=s.length; j+=w) o+=(o.length > 0 ? \",\" : \"\") + s.substr(j,w);\n\treturn o;\n}\nvar pct1 = /%/g;\nfunction write_num_pct(type/*:string*/, fmt/*:string*/, val/*:number*/)/*:string*/{\n\tvar sfmt = fmt.replace(pct1,\"\"), mul = fmt.length - sfmt.length;\n\treturn write_num(type, sfmt, val * Math.pow(10,2*mul)) + fill(\"%\",mul);\n}\n\nfunction write_num_cm(type/*:string*/, fmt/*:string*/, val/*:number*/)/*:string*/{\n\tvar idx = fmt.length - 1;\n\twhile(fmt.charCodeAt(idx-1) === 44) --idx;\n\treturn write_num(type, fmt.substr(0,idx), val / Math.pow(10,3*(fmt.length-idx)));\n}\n\nfunction write_num_exp(fmt/*:string*/, val/*:number*/)/*:string*/{\n\tvar o/*:string*/;\n\tvar idx = fmt.indexOf(\"E\") - fmt.indexOf(\".\") - 1;\n\tif(fmt.match(/^#+0.0E\\+0$/)) {\n\t\tif(val == 0) return \"0.0E+0\";\n\t\telse if(val < 0) return \"-\" + write_num_exp(fmt, -val);\n\t\tvar period = fmt.indexOf(\".\"); if(period === -1) period=fmt.indexOf('E');\n\t\tvar ee = Math.floor(Math.log(val)*Math.LOG10E)%period;\n\t\tif(ee < 0) ee += period;\n\t\to = (val/Math.pow(10,ee)).toPrecision(idx+1+(period+ee)%period);\n\t\tif(o.indexOf(\"e\") === -1) {\n\t\t\tvar fakee = Math.floor(Math.log(val)*Math.LOG10E);\n\t\t\tif(o.indexOf(\".\") === -1) o = o.charAt(0) + \".\" + o.substr(1) + \"E+\" + (fakee - o.length+ee);\n\t\t\telse o += \"E+\" + (fakee - ee);\n\t\t\twhile(o.substr(0,2) === \"0.\") {\n\t\t\t\to = o.charAt(0) + o.substr(2,period) + \".\" + o.substr(2+period);\n\t\t\t\to = o.replace(/^0+([1-9])/,\"$1\").replace(/^0+\\./,\"0.\");\n\t\t\t}\n\t\t\to = o.replace(/\\+-/,\"-\");\n\t\t}\n\t\to = o.replace(/^([+-]?)(\\d*)\\.(\\d*)[Ee]/,function($$,$1,$2,$3) { return $1 + $2 + $3.substr(0,(period+ee)%period) + \".\" + $3.substr(ee) + \"E\"; });\n\t} else o = val.toExponential(idx);\n\tif(fmt.match(/E\\+00$/) && o.match(/e[+-]\\d$/)) o = o.substr(0,o.length-1) + \"0\" + o.charAt(o.length-1);\n\tif(fmt.match(/E\\-/) && o.match(/e\\+/)) o = o.replace(/e\\+/,\"e\");\n\treturn o.replace(\"e\",\"E\");\n}\nvar frac1 = /# (\\?+)( ?)\\/( ?)(\\d+)/;\nfunction write_num_f1(r/*:Array<string>*/, aval/*:number*/, sign/*:string*/)/*:string*/ {\n\tvar den = parseInt(r[4],10), rr = Math.round(aval * den), base = Math.floor(rr/den);\n\tvar myn = (rr - base*den), myd = den;\n\treturn sign + (base === 0 ? \"\" : \"\"+base) + \" \" + (myn === 0 ? fill(\" \", r[1].length + 1 + r[4].length) : pad_(myn,r[1].length) + r[2] + \"/\" + r[3] + pad0(myd,r[4].length));\n}\nfunction write_num_f2(r/*:Array<string>*/, aval/*:number*/, sign/*:string*/)/*:string*/ {\n\treturn sign + (aval === 0 ? \"\" : \"\"+aval) + fill(\" \", r[1].length + 2 + r[4].length);\n}\nvar dec1 = /^#*0*\\.([0#]+)/;\nvar closeparen = /\\).*[0#]/;\nvar phone = /\\(###\\) ###\\\\?-####/;\nfunction hashq(str/*:string*/)/*:string*/ {\n\tvar o = \"\", cc;\n\tfor(var i = 0; i != str.length; ++i) switch((cc=str.charCodeAt(i))) {\n\t\tcase 35: break;\n\t\tcase 63: o+= \" \"; break;\n\t\tcase 48: o+= \"0\"; break;\n\t\tdefault: o+= String.fromCharCode(cc);\n\t}\n\treturn o;\n}\nfunction rnd(val/*:number*/, d/*:number*/)/*:string*/ { var dd = Math.pow(10,d); return \"\"+(Math.round(val * dd)/dd); }\nfunction dec(val/*:number*/, d/*:number*/)/*:number*/ {\n\tvar _frac = val - Math.floor(val), dd = Math.pow(10,d);\n\tif (d < ('' + Math.round(_frac * dd)).length) return 0;\n\treturn Math.round(_frac * dd);\n}\nfunction carry(val/*:number*/, d/*:number*/)/*:number*/ {\n\tif (d < ('' + Math.round((val-Math.floor(val))*Math.pow(10,d))).length) {\n\t\treturn 1;\n\t}\n\treturn 0;\n}\nfunction flr(val/*:number*/)/*:string*/ {\n\tif(val < 2147483647 && val > -2147483648) return \"\"+(val >= 0 ? (val|0) : (val-1|0));\n\treturn \"\"+Math.floor(val);\n}\nfunction write_num_flt(type/*:string*/, fmt/*:string*/, val/*:number*/)/*:string*/ {\n\tif(type.charCodeAt(0) === 40 && !fmt.match(closeparen)) {\n\t\tvar ffmt = fmt.replace(/\\( */,\"\").replace(/ \\)/,\"\").replace(/\\)/,\"\");\n\t\tif(val >= 0) return write_num_flt('n', ffmt, val);\n\t\treturn '(' + write_num_flt('n', ffmt, -val) + ')';\n\t}\n\tif(fmt.charCodeAt(fmt.length - 1) === 44) return write_num_cm(type, fmt, val);\n\tif(fmt.indexOf('%') !== -1) return write_num_pct(type, fmt, val);\n\tif(fmt.indexOf('E') !== -1) return write_num_exp(fmt, val);\n\tif(fmt.charCodeAt(0) === 36) return \"$\"+write_num_flt(type,fmt.substr(fmt.charAt(1)==' '?2:1),val);\n\tvar o;\n\tvar r/*:?Array<string>*/, ri, ff, aval = Math.abs(val), sign = val < 0 ? \"-\" : \"\";\n\tif(fmt.match(/^00+$/)) return sign + pad0r(aval,fmt.length);\n\tif(fmt.match(/^[#?]+$/)) {\n\t\to = pad0r(val,0); if(o === \"0\") o = \"\";\n\t\treturn o.length > fmt.length ? o : hashq(fmt.substr(0,fmt.length-o.length)) + o;\n\t}\n\tif((r = fmt.match(frac1))) return write_num_f1(r, aval, sign);\n\tif(fmt.match(/^#+0+$/)) return sign + pad0r(aval,fmt.length - fmt.indexOf(\"0\"));\n\tif((r = fmt.match(dec1))) {\n\t\to = rnd(val, r[1].length).replace(/^([^\\.]+)$/,\"$1.\"+hashq(r[1])).replace(/\\.$/,\".\"+hashq(r[1])).replace(/\\.(\\d*)$/,function($$, $1) { return \".\" + $1 + fill(\"0\", hashq(/*::(*/r/*::||[\"\"])*/[1]).length-$1.length); });\n\t\treturn fmt.indexOf(\"0.\") !== -1 ? o : o.replace(/^0\\./,\".\");\n\t}\n\tfmt = fmt.replace(/^#+([0.])/, \"$1\");\n\tif((r = fmt.match(/^(0*)\\.(#*)$/))) {\n\t\treturn sign + rnd(aval, r[2].length).replace(/\\.(\\d*[1-9])0*$/,\".$1\").replace(/^(-?\\d*)$/,\"$1.\").replace(/^0\\./,r[1].length?\"0.\":\".\");\n\t}\n\tif((r = fmt.match(/^#{1,3},##0(\\.?)$/))) return sign + commaify(pad0r(aval,0));\n\tif((r = fmt.match(/^#,##0\\.([#0]*0)$/))) {\n\t\treturn val < 0 ? \"-\" + write_num_flt(type, fmt, -val) : commaify(\"\"+(Math.floor(val) + carry(val, r[1].length))) + \".\" + pad0(dec(val, r[1].length),r[1].length);\n\t}\n\tif((r = fmt.match(/^#,#*,#0/))) return write_num_flt(type,fmt.replace(/^#,#*,/,\"\"),val);\n\tif((r = fmt.match(/^([0#]+)(\\\\?-([0#]+))+$/))) {\n\t\to = _strrev(write_num_flt(type, fmt.replace(/[\\\\-]/g,\"\"), val));\n\t\tri = 0;\n\t\treturn _strrev(_strrev(fmt.replace(/\\\\/g,\"\")).replace(/[0#]/g,function(x){return ri<o.length?o.charAt(ri++):x==='0'?'0':\"\";}));\n\t}\n\tif(fmt.match(phone)) {\n\t\to = write_num_flt(type, \"##########\", val);\n\t\treturn \"(\" + o.substr(0,3) + \") \" + o.substr(3, 3) + \"-\" + o.substr(6);\n\t}\n\tvar oa = \"\";\n\tif((r = fmt.match(/^([#0?]+)( ?)\\/( ?)([#0?]+)/))) {\n\t\tri = Math.min(/*::String(*/r[4]/*::)*/.length,7);\n\t\tff = SSF_frac(aval, Math.pow(10,ri)-1, false);\n\t\to = \"\" + sign;\n\t\toa = write_num(\"n\", /*::String(*/r[1]/*::)*/, ff[1]);\n\t\tif(oa.charAt(oa.length-1) == \" \") oa = oa.substr(0,oa.length-1) + \"0\";\n\t\to += oa + /*::String(*/r[2]/*::)*/ + \"/\" + /*::String(*/r[3]/*::)*/;\n\t\toa = rpad_(ff[2],ri);\n\t\tif(oa.length < r[4].length) oa = hashq(r[4].substr(r[4].length-oa.length)) + oa;\n\t\to += oa;\n\t\treturn o;\n\t}\n\tif((r = fmt.match(/^# ([#0?]+)( ?)\\/( ?)([#0?]+)/))) {\n\t\tri = Math.min(Math.max(r[1].length, r[4].length),7);\n\t\tff = SSF_frac(aval, Math.pow(10,ri)-1, true);\n\t\treturn sign + (ff[0]||(ff[1] ? \"\" : \"0\")) + \" \" + (ff[1] ? pad_(ff[1],ri) + r[2] + \"/\" + r[3] + rpad_(ff[2],ri): fill(\" \", 2*ri+1 + r[2].length + r[3].length));\n\t}\n\tif((r = fmt.match(/^[#0?]+$/))) {\n\t\to = pad0r(val, 0);\n\t\tif(fmt.length <= o.length) return o;\n\t\treturn hashq(fmt.substr(0,fmt.length-o.length)) + o;\n\t}\n\tif((r = fmt.match(/^([#0?]+)\\.([#0]+)$/))) {\n\t\to = \"\" + val.toFixed(Math.min(r[2].length,10)).replace(/([^0])0+$/,\"$1\");\n\t\tri = o.indexOf(\".\");\n\t\tvar lres = fmt.indexOf(\".\") - ri, rres = fmt.length - o.length - lres;\n\t\treturn hashq(fmt.substr(0,lres) + o + fmt.substr(fmt.length-rres));\n\t}\n\tif((r = fmt.match(/^00,000\\.([#0]*0)$/))) {\n\t\tri = dec(val, r[1].length);\n\t\treturn val < 0 ? \"-\" + write_num_flt(type, fmt, -val) : commaify(flr(val)).replace(/^\\d,\\d{3}$/,\"0$&\").replace(/^\\d*$/,function($$) { return \"00,\" + ($$.length < 3 ? pad0(0,3-$$.length) : \"\") + $$; }) + \".\" + pad0(ri,r[1].length);\n\t}\n\tswitch(fmt) {\n\t\tcase \"###,##0.00\": return write_num_flt(type, \"#,##0.00\", val);\n\t\tcase \"###,###\":\n\t\tcase \"##,###\":\n\t\tcase \"#,###\": var x = commaify(pad0r(aval,0)); return x !== \"0\" ? sign + x : \"\";\n\t\tcase \"###,###.00\": return write_num_flt(type, \"###,##0.00\",val).replace(/^0\\./,\".\");\n\t\tcase \"#,###.00\": return write_num_flt(type, \"#,##0.00\",val).replace(/^0\\./,\".\");\n\t\tdefault:\n\t}\n\tthrow new Error(\"unsupported format |\" + fmt + \"|\");\n}\nfunction write_num_cm2(type/*:string*/, fmt/*:string*/, val/*:number*/)/*:string*/{\n\tvar idx = fmt.length - 1;\n\twhile(fmt.charCodeAt(idx-1) === 44) --idx;\n\treturn write_num(type, fmt.substr(0,idx), val / Math.pow(10,3*(fmt.length-idx)));\n}\nfunction write_num_pct2(type/*:string*/, fmt/*:string*/, val/*:number*/)/*:string*/{\n\tvar sfmt = fmt.replace(pct1,\"\"), mul = fmt.length - sfmt.length;\n\treturn write_num(type, sfmt, val * Math.pow(10,2*mul)) + fill(\"%\",mul);\n}\nfunction write_num_exp2(fmt/*:string*/, val/*:number*/)/*:string*/{\n\tvar o/*:string*/;\n\tvar idx = fmt.indexOf(\"E\") - fmt.indexOf(\".\") - 1;\n\tif(fmt.match(/^#+0.0E\\+0$/)) {\n\t\tif(val == 0) return \"0.0E+0\";\n\t\telse if(val < 0) return \"-\" + write_num_exp2(fmt, -val);\n\t\tvar period = fmt.indexOf(\".\"); if(period === -1) period=fmt.indexOf('E');\n\t\tvar ee = Math.floor(Math.log(val)*Math.LOG10E)%period;\n\t\tif(ee < 0) ee += period;\n\t\to = (val/Math.pow(10,ee)).toPrecision(idx+1+(period+ee)%period);\n\t\tif(!o.match(/[Ee]/)) {\n\t\t\tvar fakee = Math.floor(Math.log(val)*Math.LOG10E);\n\t\t\tif(o.indexOf(\".\") === -1) o = o.charAt(0) + \".\" + o.substr(1) + \"E+\" + (fakee - o.length+ee);\n\t\t\telse o += \"E+\" + (fakee - ee);\n\t\t\to = o.replace(/\\+-/,\"-\");\n\t\t}\n\t\to = o.replace(/^([+-]?)(\\d*)\\.(\\d*)[Ee]/,function($$,$1,$2,$3) { return $1 + $2 + $3.substr(0,(period+ee)%period) + \".\" + $3.substr(ee) + \"E\"; });\n\t} else o = val.toExponential(idx);\n\tif(fmt.match(/E\\+00$/) && o.match(/e[+-]\\d$/)) o = o.substr(0,o.length-1) + \"0\" + o.charAt(o.length-1);\n\tif(fmt.match(/E\\-/) && o.match(/e\\+/)) o = o.replace(/e\\+/,\"e\");\n\treturn o.replace(\"e\",\"E\");\n}\nfunction write_num_int(type/*:string*/, fmt/*:string*/, val/*:number*/)/*:string*/ {\n\tif(type.charCodeAt(0) === 40 && !fmt.match(closeparen)) {\n\t\tvar ffmt = fmt.replace(/\\( */,\"\").replace(/ \\)/,\"\").replace(/\\)/,\"\");\n\t\tif(val >= 0) return write_num_int('n', ffmt, val);\n\t\treturn '(' + write_num_int('n', ffmt, -val) + ')';\n\t}\n\tif(fmt.charCodeAt(fmt.length - 1) === 44) return write_num_cm2(type, fmt, val);\n\tif(fmt.indexOf('%') !== -1) return write_num_pct2(type, fmt, val);\n\tif(fmt.indexOf('E') !== -1) return write_num_exp2(fmt, val);\n\tif(fmt.charCodeAt(0) === 36) return \"$\"+write_num_int(type,fmt.substr(fmt.charAt(1)==' '?2:1),val);\n\tvar o;\n\tvar r/*:?Array<string>*/, ri, ff, aval = Math.abs(val), sign = val < 0 ? \"-\" : \"\";\n\tif(fmt.match(/^00+$/)) return sign + pad0(aval,fmt.length);\n\tif(fmt.match(/^[#?]+$/)) {\n\t\to = (\"\"+val); if(val === 0) o = \"\";\n\t\treturn o.length > fmt.length ? o : hashq(fmt.substr(0,fmt.length-o.length)) + o;\n\t}\n\tif((r = fmt.match(frac1))) return write_num_f2(r, aval, sign);\n\tif(fmt.match(/^#+0+$/)) return sign + pad0(aval,fmt.length - fmt.indexOf(\"0\"));\n\tif((r = fmt.match(dec1))) {\n\t\t/*:: if(!Array.isArray(r)) throw new Error(\"unreachable\"); */\n\t\to = (\"\"+val).replace(/^([^\\.]+)$/,\"$1.\"+hashq(r[1])).replace(/\\.$/,\".\"+hashq(r[1]));\n\t\to = o.replace(/\\.(\\d*)$/,function($$, $1) {\n\t\t/*:: if(!Array.isArray(r)) throw new Error(\"unreachable\"); */\n\t\t\treturn \".\" + $1 + fill(\"0\", hashq(r[1]).length-$1.length); });\n\t\treturn fmt.indexOf(\"0.\") !== -1 ? o : o.replace(/^0\\./,\".\");\n\t}\n\tfmt = fmt.replace(/^#+([0.])/, \"$1\");\n\tif((r = fmt.match(/^(0*)\\.(#*)$/))) {\n\t\treturn sign + (\"\"+aval).replace(/\\.(\\d*[1-9])0*$/,\".$1\").replace(/^(-?\\d*)$/,\"$1.\").replace(/^0\\./,r[1].length?\"0.\":\".\");\n\t}\n\tif((r = fmt.match(/^#{1,3},##0(\\.?)$/))) return sign + commaify((\"\"+aval));\n\tif((r = fmt.match(/^#,##0\\.([#0]*0)$/))) {\n\t\treturn val < 0 ? \"-\" + write_num_int(type, fmt, -val) : commaify((\"\"+val)) + \".\" + fill('0',r[1].length);\n\t}\n\tif((r = fmt.match(/^#,#*,#0/))) return write_num_int(type,fmt.replace(/^#,#*,/,\"\"),val);\n\tif((r = fmt.match(/^([0#]+)(\\\\?-([0#]+))+$/))) {\n\t\to = _strrev(write_num_int(type, fmt.replace(/[\\\\-]/g,\"\"), val));\n\t\tri = 0;\n\t\treturn _strrev(_strrev(fmt.replace(/\\\\/g,\"\")).replace(/[0#]/g,function(x){return ri<o.length?o.charAt(ri++):x==='0'?'0':\"\";}));\n\t}\n\tif(fmt.match(phone)) {\n\t\to = write_num_int(type, \"##########\", val);\n\t\treturn \"(\" + o.substr(0,3) + \") \" + o.substr(3, 3) + \"-\" + o.substr(6);\n\t}\n\tvar oa = \"\";\n\tif((r = fmt.match(/^([#0?]+)( ?)\\/( ?)([#0?]+)/))) {\n\t\tri = Math.min(/*::String(*/r[4]/*::)*/.length,7);\n\t\tff = SSF_frac(aval, Math.pow(10,ri)-1, false);\n\t\to = \"\" + sign;\n\t\toa = write_num(\"n\", /*::String(*/r[1]/*::)*/, ff[1]);\n\t\tif(oa.charAt(oa.length-1) == \" \") oa = oa.substr(0,oa.length-1) + \"0\";\n\t\to += oa + /*::String(*/r[2]/*::)*/ + \"/\" + /*::String(*/r[3]/*::)*/;\n\t\toa = rpad_(ff[2],ri);\n\t\tif(oa.length < r[4].length) oa = hashq(r[4].substr(r[4].length-oa.length)) + oa;\n\t\to += oa;\n\t\treturn o;\n\t}\n\tif((r = fmt.match(/^# ([#0?]+)( ?)\\/( ?)([#0?]+)/))) {\n\t\tri = Math.min(Math.max(r[1].length, r[4].length),7);\n\t\tff = SSF_frac(aval, Math.pow(10,ri)-1, true);\n\t\treturn sign + (ff[0]||(ff[1] ? \"\" : \"0\")) + \" \" + (ff[1] ? pad_(ff[1],ri) + r[2] + \"/\" + r[3] + rpad_(ff[2],ri): fill(\" \", 2*ri+1 + r[2].length + r[3].length));\n\t}\n\tif((r = fmt.match(/^[#0?]+$/))) {\n\t\to = \"\" + val;\n\t\tif(fmt.length <= o.length) return o;\n\t\treturn hashq(fmt.substr(0,fmt.length-o.length)) + o;\n\t}\n\tif((r = fmt.match(/^([#0]+)\\.([#0]+)$/))) {\n\t\to = \"\" + val.toFixed(Math.min(r[2].length,10)).replace(/([^0])0+$/,\"$1\");\n\t\tri = o.indexOf(\".\");\n\t\tvar lres = fmt.indexOf(\".\") - ri, rres = fmt.length - o.length - lres;\n\t\treturn hashq(fmt.substr(0,lres) + o + fmt.substr(fmt.length-rres));\n\t}\n\tif((r = fmt.match(/^00,000\\.([#0]*0)$/))) {\n\t\treturn val < 0 ? \"-\" + write_num_int(type, fmt, -val) : commaify(\"\"+val).replace(/^\\d,\\d{3}$/,\"0$&\").replace(/^\\d*$/,function($$) { return \"00,\" + ($$.length < 3 ? pad0(0,3-$$.length) : \"\") + $$; }) + \".\" + pad0(0,r[1].length);\n\t}\n\tswitch(fmt) {\n\t\tcase \"###,###\":\n\t\tcase \"##,###\":\n\t\tcase \"#,###\": var x = commaify(\"\"+aval); return x !== \"0\" ? sign + x : \"\";\n\t\tdefault:\n\t\t\tif(fmt.match(/\\.[0#?]*$/)) return write_num_int(type, fmt.slice(0,fmt.lastIndexOf(\".\")), val) + hashq(fmt.slice(fmt.lastIndexOf(\".\")));\n\t}\n\tthrow new Error(\"unsupported format |\" + fmt + \"|\");\n}\nfunction write_num(type/*:string*/, fmt/*:string*/, val/*:number*/)/*:string*/ {\n\treturn (val|0) === val ? write_num_int(type, fmt, val) : write_num_flt(type, fmt, val);\n}\nfunction SSF_split_fmt(fmt/*:string*/)/*:Array<string>*/ {\n\tvar out/*:Array<string>*/ = [];\n\tvar in_str = false/*, cc*/;\n\tfor(var i = 0, j = 0; i < fmt.length; ++i) switch((/*cc=*/fmt.charCodeAt(i))) {\n\t\tcase 34: /* '\"' */\n\t\t\tin_str = !in_str; break;\n\t\tcase 95: case 42: case 92: /* '_' '*' '\\\\' */\n\t\t\t++i; break;\n\t\tcase 59: /* ';' */\n\t\t\tout[out.length] = fmt.substr(j,i-j);\n\t\t\tj = i+1;\n\t}\n\tout[out.length] = fmt.substr(j);\n\tif(in_str === true) throw new Error(\"Format |\" + fmt + \"| unterminated string \");\n\treturn out;\n}\n\nvar SSF_abstime = /\\[[HhMmSs\\u0E0A\\u0E19\\u0E17]*\\]/;\nfunction fmt_is_date(fmt/*:string*/)/*:boolean*/ {\n\tvar i = 0, /*cc = 0,*/ c = \"\", o = \"\";\n\twhile(i < fmt.length) {\n\t\tswitch((c = fmt.charAt(i))) {\n\t\t\tcase 'G': if(SSF_isgeneral(fmt, i)) i+= 6; i++; break;\n\t\t\tcase '\"': for(;(/*cc=*/fmt.charCodeAt(++i)) !== 34 && i < fmt.length;){/*empty*/} ++i; break;\n\t\t\tcase '\\\\': i+=2; break;\n\t\t\tcase '_': i+=2; break;\n\t\t\tcase '@': ++i; break;\n\t\t\tcase 'B': case 'b':\n\t\t\t\tif(fmt.charAt(i+1) === \"1\" || fmt.charAt(i+1) === \"2\") return true;\n\t\t\t\t/* falls through */\n\t\t\tcase 'M': case 'D': case 'Y': case 'H': case 'S': case 'E':\n\t\t\t\t/* falls through */\n\t\t\tcase 'm': case 'd': case 'y': case 'h': case 's': case 'e': case 'g': return true;\n\t\t\tcase 'A': case 'a': case '上':\n\t\t\t\tif(fmt.substr(i, 3).toUpperCase() === \"A/P\") return true;\n\t\t\t\tif(fmt.substr(i, 5).toUpperCase() === \"AM/PM\") return true;\n\t\t\t\tif(fmt.substr(i, 5).toUpperCase() === \"上午/下午\") return true;\n\t\t\t\t++i; break;\n\t\t\tcase '[':\n\t\t\t\to = c;\n\t\t\t\twhile(fmt.charAt(i++) !== ']' && i < fmt.length) o += fmt.charAt(i);\n\t\t\t\tif(o.match(SSF_abstime)) return true;\n\t\t\t\tbreak;\n\t\t\tcase '.':\n\t\t\t\t/* falls through */\n\t\t\tcase '0': case '#':\n\t\t\t\twhile(i < fmt.length && (\"0#?.,E+-%\".indexOf(c=fmt.charAt(++i)) > -1 || (c=='\\\\' && fmt.charAt(i+1) == \"-\" && \"0#\".indexOf(fmt.charAt(i+2))>-1))){/* empty */}\n\t\t\t\tbreak;\n\t\t\tcase '?': while(fmt.charAt(++i) === c){/* empty */} break;\n\t\t\tcase '*': ++i; if(fmt.charAt(i) == ' ' || fmt.charAt(i) == '*') ++i; break;\n\t\t\tcase '(': case ')': ++i; break;\n\t\t\tcase '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9':\n\t\t\t\twhile(i < fmt.length && \"0123456789\".indexOf(fmt.charAt(++i)) > -1){/* empty */} break;\n\t\t\tcase ' ': ++i; break;\n\t\t\tdefault: ++i; break;\n\t\t}\n\t}\n\treturn false;\n}\n\nfunction eval_fmt(fmt/*:string*/, v/*:any*/, opts/*:any*/, flen/*:number*/) {\n\tvar out = [], o = \"\", i = 0, c = \"\", lst='t', dt, j, cc;\n\tvar hr='H';\n\t/* Tokenize */\n\twhile(i < fmt.length) {\n\t\tswitch((c = fmt.charAt(i))) {\n\t\t\tcase 'G': /* General */\n\t\t\t\tif(!SSF_isgeneral(fmt, i)) throw new Error('unrecognized character ' + c + ' in ' +fmt);\n\t\t\t\tout[out.length] = {t:'G', v:'General'}; i+=7; break;\n\t\t\tcase '\"': /* Literal text */\n\t\t\t\tfor(o=\"\";(cc=fmt.charCodeAt(++i)) !== 34 && i < fmt.length;) o += String.fromCharCode(cc);\n\t\t\t\tout[out.length] = {t:'t', v:o}; ++i; break;\n\t\t\tcase '\\\\': var w = fmt.charAt(++i), t = (w === \"(\" || w === \")\") ? w : 't';\n\t\t\t\tout[out.length] = {t:t, v:w}; ++i; break;\n\t\t\tcase '_': out[out.length] = {t:'t', v:\" \"}; i+=2; break;\n\t\t\tcase '@': /* Text Placeholder */\n\t\t\t\tout[out.length] = {t:'T', v:v}; ++i; break;\n\t\t\tcase 'B': case 'b':\n\t\t\t\tif(fmt.charAt(i+1) === \"1\" || fmt.charAt(i+1) === \"2\") {\n\t\t\t\t\tif(dt==null) { dt=SSF_parse_date_code(v, opts, fmt.charAt(i+1) === \"2\"); if(dt==null) return \"\"; }\n\t\t\t\t\tout[out.length] = {t:'X', v:fmt.substr(i,2)}; lst = c; i+=2; break;\n\t\t\t\t}\n\t\t\t\t/* falls through */\n\t\t\tcase 'M': case 'D': case 'Y': case 'H': case 'S': case 'E':\n\t\t\t\tc = c.toLowerCase();\n\t\t\t\t/* falls through */\n\t\t\tcase 'm': case 'd': case 'y': case 'h': case 's': case 'e': case 'g':\n\t\t\t\tif(v < 0) return \"\";\n\t\t\t\tif(dt==null) { dt=SSF_parse_date_code(v, opts); if(dt==null) return \"\"; }\n\t\t\t\to = c; while(++i < fmt.length && fmt.charAt(i).toLowerCase() === c) o+=c;\n\t\t\t\tif(c === 'm' && lst.toLowerCase() === 'h') c = 'M';\n\t\t\t\tif(c === 'h') c = hr;\n\t\t\t\tout[out.length] = {t:c, v:o}; lst = c; break;\n\t\t\tcase 'A': case 'a': case '上':\n\t\t\t\tvar q={t:c, v:c};\n\t\t\t\tif(dt==null) dt=SSF_parse_date_code(v, opts);\n\t\t\t\tif(fmt.substr(i, 3).toUpperCase() === \"A/P\") { if(dt!=null) q.v = dt.H >= 12 ? fmt.charAt(i+2) : c; q.t = 'T'; hr='h';i+=3;}\n\t\t\t\telse if(fmt.substr(i,5).toUpperCase() === \"AM/PM\") { if(dt!=null) q.v = dt.H >= 12 ? \"PM\" : \"AM\"; q.t = 'T'; i+=5; hr='h'; }\n\t\t\t\telse if(fmt.substr(i,5).toUpperCase() === \"上午/下午\") { if(dt!=null) q.v = dt.H >= 12 ? \"下午\" : \"上午\"; q.t = 'T'; i+=5; hr='h'; }\n\t\t\t\telse { q.t = \"t\"; ++i; }\n\t\t\t\tif(dt==null && q.t === 'T') return \"\";\n\t\t\t\tout[out.length] = q; lst = c; break;\n\t\t\tcase '[':\n\t\t\t\to = c;\n\t\t\t\twhile(fmt.charAt(i++) !== ']' && i < fmt.length) o += fmt.charAt(i);\n\t\t\t\tif(o.slice(-1) !== ']') throw 'unterminated \"[\" block: |' + o + '|';\n\t\t\t\tif(o.match(SSF_abstime)) {\n\t\t\t\t\tif(dt==null) { dt=SSF_parse_date_code(v, opts); if(dt==null) return \"\"; }\n\t\t\t\t\tout[out.length] = {t:'Z', v:o.toLowerCase()};\n\t\t\t\t\tlst = o.charAt(1);\n\t\t\t\t} else if(o.indexOf(\"$\") > -1) {\n\t\t\t\t\to = (o.match(/\\$([^-\\[\\]]*)/)||[])[1]||\"$\";\n\t\t\t\t\tif(!fmt_is_date(fmt)) out[out.length] = {t:'t',v:o};\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t/* Numbers */\n\t\t\tcase '.':\n\t\t\t\tif(dt != null) {\n\t\t\t\t\to = c; while(++i < fmt.length && (c=fmt.charAt(i)) === \"0\") o += c;\n\t\t\t\t\tout[out.length] = {t:'s', v:o}; break;\n\t\t\t\t}\n\t\t\t\t/* falls through */\n\t\t\tcase '0': case '#':\n\t\t\t\to = c; while(++i < fmt.length && \"0#?.,E+-%\".indexOf(c=fmt.charAt(i)) > -1) o += c;\n\t\t\t\tout[out.length] = {t:'n', v:o}; break;\n\t\t\tcase '?':\n\t\t\t\to = c; while(fmt.charAt(++i) === c) o+=c;\n\t\t\t\tout[out.length] = {t:c, v:o}; lst = c; break;\n\t\t\tcase '*': ++i; if(fmt.charAt(i) == ' ' || fmt.charAt(i) == '*') ++i; break; // **\n\t\t\tcase '(': case ')': out[out.length] = {t:(flen===1?'t':c), v:c}; ++i; break;\n\t\t\tcase '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9':\n\t\t\t\to = c; while(i < fmt.length && \"0123456789\".indexOf(fmt.charAt(++i)) > -1) o+=fmt.charAt(i);\n\t\t\t\tout[out.length] = {t:'D', v:o}; break;\n\t\t\tcase ' ': out[out.length] = {t:c, v:c}; ++i; break;\n\t\t\tcase '$': out[out.length] = {t:'t', v:'$'}; ++i; break;\n\t\t\tdefault:\n\t\t\t\tif(\",$-+/():!^&'~{}<>=€acfijklopqrtuvwxzP\".indexOf(c) === -1) throw new Error('unrecognized character ' + c + ' in ' + fmt);\n\t\t\t\tout[out.length] = {t:'t', v:c}; ++i; break;\n\t\t}\n\t}\n\n\t/* Scan for date/time parts */\n\tvar bt = 0, ss0 = 0, ssm;\n\tfor(i=out.length-1, lst='t'; i >= 0; --i) {\n\t\tswitch(out[i].t) {\n\t\t\tcase 'h': case 'H': out[i].t = hr; lst='h'; if(bt < 1) bt = 1; break;\n\t\t\tcase 's':\n\t\t\t\tif((ssm=out[i].v.match(/\\.0+$/))) ss0=Math.max(ss0,ssm[0].length-1);\n\t\t\t\tif(bt < 3) bt = 3;\n\t\t\t/* falls through */\n\t\t\tcase 'd': case 'y': case 'M': case 'e': lst=out[i].t; break;\n\t\t\tcase 'm': if(lst === 's') { out[i].t = 'M'; if(bt < 2) bt = 2; } break;\n\t\t\tcase 'X': /*if(out[i].v === \"B2\");*/\n\t\t\t\tbreak;\n\t\t\tcase 'Z':\n\t\t\t\tif(bt < 1 && out[i].v.match(/[Hh]/)) bt = 1;\n\t\t\t\tif(bt < 2 && out[i].v.match(/[Mm]/)) bt = 2;\n\t\t\t\tif(bt < 3 && out[i].v.match(/[Ss]/)) bt = 3;\n\t\t}\n\t}\n\t/* time rounding depends on presence of minute / second / usec fields */\n\tswitch(bt) {\n\t\tcase 0: break;\n\t\tcase 1:\n\t\t\t/*::if(!dt) break;*/\n\t\t\tif(dt.u >= 0.5) { dt.u = 0; ++dt.S; }\n\t\t\tif(dt.S >= 60) { dt.S = 0; ++dt.M; }\n\t\t\tif(dt.M >= 60) { dt.M = 0; ++dt.H; }\n\t\t\tbreak;\n\t\tcase 2:\n\t\t\t/*::if(!dt) break;*/\n\t\t\tif(dt.u >= 0.5) { dt.u = 0; ++dt.S; }\n\t\t\tif(dt.S >= 60) { dt.S = 0; ++dt.M; }\n\t\t\tbreak;\n\t}\n\n\t/* replace fields */\n\tvar nstr = \"\", jj;\n\tfor(i=0; i < out.length; ++i) {\n\t\tswitch(out[i].t) {\n\t\t\tcase 't': case 'T': case ' ': case 'D': break;\n\t\t\tcase 'X': out[i].v = \"\"; out[i].t = \";\"; break;\n\t\t\tcase 'd': case 'm': case 'y': case 'h': case 'H': case 'M': case 's': case 'e': case 'b': case 'Z':\n\t\t\t\t/*::if(!dt) throw \"unreachable\"; */\n\t\t\t\tout[i].v = SSF_write_date(out[i].t.charCodeAt(0), out[i].v, dt, ss0);\n\t\t\t\tout[i].t = 't'; break;\n\t\t\tcase 'n': case '?':\n\t\t\t\tjj = i+1;\n\t\t\t\twhile(out[jj] != null && (\n\t\t\t\t\t(c=out[jj].t) === \"?\" || c === \"D\" ||\n\t\t\t\t\t((c === \" \" || c === \"t\") && out[jj+1] != null && (out[jj+1].t === '?' || out[jj+1].t === \"t\" && out[jj+1].v === '/')) ||\n\t\t\t\t\t(out[i].t === '(' && (c === ' ' || c === 'n' || c === ')')) ||\n\t\t\t\t\t(c === 't' && (out[jj].v === '/' || out[jj].v === ' ' && out[jj+1] != null && out[jj+1].t == '?'))\n\t\t\t\t)) {\n\t\t\t\t\tout[i].v += out[jj].v;\n\t\t\t\t\tout[jj] = {v:\"\", t:\";\"}; ++jj;\n\t\t\t\t}\n\t\t\t\tnstr += out[i].v;\n\t\t\t\ti = jj-1; break;\n\t\t\tcase 'G': out[i].t = 't'; out[i].v = SSF_general(v,opts); break;\n\t\t}\n\t}\n\tvar vv = \"\", myv, ostr;\n\tif(nstr.length > 0) {\n\t\tif(nstr.charCodeAt(0) == 40) /* '(' */ {\n\t\t\tmyv = (v<0&&nstr.charCodeAt(0) === 45 ? -v : v);\n\t\t\tostr = write_num('n', nstr, myv);\n\t\t} else {\n\t\t\tmyv = (v<0 && flen > 1 ? -v : v);\n\t\t\tostr = write_num('n', nstr, myv);\n\t\t\tif(myv < 0 && out[0] && out[0].t == 't') {\n\t\t\t\tostr = ostr.substr(1);\n\t\t\t\tout[0].v = \"-\" + out[0].v;\n\t\t\t}\n\t\t}\n\t\tjj=ostr.length-1;\n\t\tvar decpt = out.length;\n\t\tfor(i=0; i < out.length; ++i) if(out[i] != null && out[i].t != 't' && out[i].v.indexOf(\".\") > -1) { decpt = i; break; }\n\t\tvar lasti=out.length;\n\t\tif(decpt === out.length && ostr.indexOf(\"E\") === -1) {\n\t\t\tfor(i=out.length-1; i>= 0;--i) {\n\t\t\t\tif(out[i] == null || 'n?'.indexOf(out[i].t) === -1) continue;\n\t\t\t\tif(jj>=out[i].v.length-1) { jj -= out[i].v.length; out[i].v = ostr.substr(jj+1, out[i].v.length); }\n\t\t\t\telse if(jj < 0) out[i].v = \"\";\n\t\t\t\telse { out[i].v = ostr.substr(0, jj+1); jj = -1; }\n\t\t\t\tout[i].t = 't';\n\t\t\t\tlasti = i;\n\t\t\t}\n\t\t\tif(jj>=0 && lasti<out.length) out[lasti].v = ostr.substr(0,jj+1) + out[lasti].v;\n\t\t}\n\t\telse if(decpt !== out.length && ostr.indexOf(\"E\") === -1) {\n\t\t\tjj = ostr.indexOf(\".\")-1;\n\t\t\tfor(i=decpt; i>= 0; --i) {\n\t\t\t\tif(out[i] == null || 'n?'.indexOf(out[i].t) === -1) continue;\n\t\t\t\tj=out[i].v.indexOf(\".\")>-1&&i===decpt?out[i].v.indexOf(\".\")-1:out[i].v.length-1;\n\t\t\t\tvv = out[i].v.substr(j+1);\n\t\t\t\tfor(; j>=0; --j) {\n\t\t\t\t\tif(jj>=0 && (out[i].v.charAt(j) === \"0\" || out[i].v.charAt(j) === \"#\")) vv = ostr.charAt(jj--) + vv;\n\t\t\t\t}\n\t\t\t\tout[i].v = vv;\n\t\t\t\tout[i].t = 't';\n\t\t\t\tlasti = i;\n\t\t\t}\n\t\t\tif(jj>=0 && lasti<out.length) out[lasti].v = ostr.substr(0,jj+1) + out[lasti].v;\n\t\t\tjj = ostr.indexOf(\".\")+1;\n\t\t\tfor(i=decpt; i<out.length; ++i) {\n\t\t\t\tif(out[i] == null || ('n?('.indexOf(out[i].t) === -1 && i !== decpt)) continue;\n\t\t\t\tj=out[i].v.indexOf(\".\")>-1&&i===decpt?out[i].v.indexOf(\".\")+1:0;\n\t\t\t\tvv = out[i].v.substr(0,j);\n\t\t\t\tfor(; j<out[i].v.length; ++j) {\n\t\t\t\t\tif(jj<ostr.length) vv += ostr.charAt(jj++);\n\t\t\t\t}\n\t\t\t\tout[i].v = vv;\n\t\t\t\tout[i].t = 't';\n\t\t\t\tlasti = i;\n\t\t\t}\n\t\t}\n\t}\n\tfor(i=0; i<out.length; ++i) if(out[i] != null && 'n?'.indexOf(out[i].t)>-1) {\n\t\tmyv = (flen >1 && v < 0 && i>0 && out[i-1].v === \"-\" ? -v:v);\n\t\tout[i].v = write_num(out[i].t, out[i].v, myv);\n\t\tout[i].t = 't';\n\t}\n\tvar retval = \"\";\n\tfor(i=0; i !== out.length; ++i) if(out[i] != null) retval += out[i].v;\n\treturn retval;\n}\n\nvar cfregex2 = /\\[(=|>[=]?|<[>=]?)(-?\\d+(?:\\.\\d*)?)\\]/;\nfunction chkcond(v, rr) {\n\tif(rr == null) return false;\n\tvar thresh = parseFloat(rr[2]);\n\tswitch(rr[1]) {\n\t\tcase \"=\": if(v == thresh) return true; break;\n\t\tcase \">\": if(v > thresh) return true; break;\n\t\tcase \"<\": if(v < thresh) return true; break;\n\t\tcase \"<>\": if(v != thresh) return true; break;\n\t\tcase \">=\": if(v >= thresh) return true; break;\n\t\tcase \"<=\": if(v <= thresh) return true; break;\n\t}\n\treturn false;\n}\nfunction choose_fmt(f/*:string*/, v/*:any*/) {\n\tvar fmt = SSF_split_fmt(f);\n\tvar l = fmt.length, lat = fmt[l-1].indexOf(\"@\");\n\tif(l<4 && lat>-1) --l;\n\tif(fmt.length > 4) throw new Error(\"cannot find right format for |\" + fmt.join(\"|\") + \"|\");\n\tif(typeof v !== \"number\") return [4, fmt.length === 4 || lat>-1?fmt[fmt.length-1]:\"@\"];\n\tswitch(fmt.length) {\n\t\tcase 1: fmt = lat>-1 ? [\"General\", \"General\", \"General\", fmt[0]] : [fmt[0], fmt[0], fmt[0], \"@\"]; break;\n\t\tcase 2: fmt = lat>-1 ? [fmt[0], fmt[0], fmt[0], fmt[1]] : [fmt[0], fmt[1], fmt[0], \"@\"]; break;\n\t\tcase 3: fmt = lat>-1 ? [fmt[0], fmt[1], fmt[0], fmt[2]] : [fmt[0], fmt[1], fmt[2], \"@\"]; break;\n\t\tcase 4: break;\n\t}\n\tvar ff = v > 0 ? fmt[0] : v < 0 ? fmt[1] : fmt[2];\n\tif(fmt[0].indexOf(\"[\") === -1 && fmt[1].indexOf(\"[\") === -1) return [l, ff];\n\tif(fmt[0].match(/\\[[=<>]/) != null || fmt[1].match(/\\[[=<>]/) != null) {\n\t\tvar m1 = fmt[0].match(cfregex2);\n\t\tvar m2 = fmt[1].match(cfregex2);\n\t\treturn chkcond(v, m1) ? [l, fmt[0]] : chkcond(v, m2) ? [l, fmt[1]] : [l, fmt[m1 != null && m2 != null ? 2 : 1]];\n\t}\n\treturn [l, ff];\n}\nfunction SSF_format(fmt/*:string|number*/,v/*:any*/,o/*:?any*/) {\n\tif(o == null) o = {};\n\tvar sfmt = \"\";\n\tswitch(typeof fmt) {\n\t\tcase \"string\":\n\t\t\tif(fmt == \"m/d/yy\" && o.dateNF) sfmt = o.dateNF;\n\t\t\telse sfmt = fmt;\n\t\t\tbreak;\n\t\tcase \"number\":\n\t\t\tif(fmt == 14 && o.dateNF) sfmt = o.dateNF;\n\t\t\telse sfmt = (o.table != null ? (o.table/*:any*/) : table_fmt)[fmt];\n\t\t\tif(sfmt == null) sfmt = (o.table && o.table[SSF_default_map[fmt]]) || table_fmt[SSF_default_map[fmt]];\n\t\t\tif(sfmt == null) sfmt = SSF_default_str[fmt] || \"General\";\n\t\t\tbreak;\n\t}\n\tif(SSF_isgeneral(sfmt,0)) return SSF_general(v, o);\n\tif(v instanceof Date) v = datenum_local(v, o.date1904);\n\tvar f = choose_fmt(sfmt, v);\n\tif(SSF_isgeneral(f[1])) return SSF_general(v, o);\n\tif(v === true) v = \"TRUE\"; else if(v === false) v = \"FALSE\";\n\telse if(v === \"\" || v == null) return \"\";\n\treturn eval_fmt(f[1], v, o, f[0]);\n}\nfunction SSF_load(fmt/*:string*/, idx/*:?number*/)/*:number*/ {\n\tif(typeof idx != 'number') {\n\t\tidx = +idx || -1;\n/*::if(typeof idx != 'number') return 0x188; */\n\t\tfor(var i = 0; i < 0x0188; ++i) {\n/*::if(typeof idx != 'number') return 0x188; */\n\t\t\tif(table_fmt[i] == undefined) { if(idx < 0) idx = i; continue; }\n\t\t\tif(table_fmt[i] == fmt) { idx = i; break; }\n\t\t}\n/*::if(typeof idx != 'number') return 0x188; */\n\t\tif(idx < 0) idx = 0x187;\n\t}\n/*::if(typeof idx != 'number') return 0x188; */\n\ttable_fmt[idx] = fmt;\n\treturn idx;\n}\nfunction SSF_load_table(tbl/*:SSFTable*/)/*:void*/ {\n\tfor(var i=0; i!=0x0188; ++i)\n\t\tif(tbl[i] !== undefined) SSF_load(tbl[i], i);\n}\n\nfunction make_ssf() {\n\ttable_fmt = SSF_init_table();\n}\n\nvar SSF = {\n\tformat: SSF_format,\n\tload: SSF_load,\n\t_table: table_fmt,\n\tload_table: SSF_load_table,\n\tparse_date_code: SSF_parse_date_code,\n\tis_date: fmt_is_date,\n\tget_table: function get_table() { return SSF._table = table_fmt; }\n};\n\nvar SSFImplicit/*{[number]:string}*/ = ({\n\t\"5\": '\"$\"#,##0_);\\\\(\"$\"#,##0\\\\)',\n\t\"6\": '\"$\"#,##0_);[Red]\\\\(\"$\"#,##0\\\\)',\n\t\"7\": '\"$\"#,##0.00_);\\\\(\"$\"#,##0.00\\\\)',\n\t\"8\": '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)',\n\t\"23\": 'General', \"24\": 'General', \"25\": 'General', \"26\": 'General',\n\t\"27\": 'm/d/yy', \"28\": 'm/d/yy', \"29\": 'm/d/yy', \"30\": 'm/d/yy', \"31\": 'm/d/yy',\n\t\"32\": 'h:mm:ss', \"33\": 'h:mm:ss', \"34\": 'h:mm:ss', \"35\": 'h:mm:ss',\n\t\"36\": 'm/d/yy',\n\t\"41\": '_(* #,##0_);_(* \\(#,##0\\);_(* \"-\"_);_(@_)',\n\t\"42\": '_(\"$\"* #,##0_);_(\"$\"* \\(#,##0\\);_(\"$\"* \"-\"_);_(@_)',\n\t\"43\": '_(* #,##0.00_);_(* \\(#,##0.00\\);_(* \"-\"??_);_(@_)',\n\t\"44\": '_(\"$\"* #,##0.00_);_(\"$\"* \\(#,##0.00\\);_(\"$\"* \"-\"??_);_(@_)',\n\t\"50\": 'm/d/yy', \"51\": 'm/d/yy', \"52\": 'm/d/yy', \"53\": 'm/d/yy', \"54\": 'm/d/yy',\n\t\"55\": 'm/d/yy', \"56\": 'm/d/yy', \"57\": 'm/d/yy', \"58\": 'm/d/yy',\n\t\"59\": '0',\n\t\"60\": '0.00',\n\t\"61\": '#,##0',\n\t\"62\": '#,##0.00',\n\t\"63\": '\"$\"#,##0_);\\\\(\"$\"#,##0\\\\)',\n\t\"64\": '\"$\"#,##0_);[Red]\\\\(\"$\"#,##0\\\\)',\n\t\"65\": '\"$\"#,##0.00_);\\\\(\"$\"#,##0.00\\\\)',\n\t\"66\": '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)',\n\t\"67\": '0%',\n\t\"68\": '0.00%',\n\t\"69\": '# ?/?',\n\t\"70\": '# ??/??',\n\t\"71\": 'm/d/yy',\n\t\"72\": 'm/d/yy',\n\t\"73\": 'd-mmm-yy',\n\t\"74\": 'd-mmm',\n\t\"75\": 'mmm-yy',\n\t\"76\": 'h:mm',\n\t\"77\": 'h:mm:ss',\n\t\"78\": 'm/d/yy h:mm',\n\t\"79\": 'mm:ss',\n\t\"80\": '[h]:mm:ss',\n\t\"81\": 'mmss.0'\n}/*:any*/);\n\n/* dateNF parse TODO: move to SSF */\nvar dateNFregex = /[dD]+|[mM]+|[yYeE]+|[Hh]+|[Ss]+/g;\nfunction dateNF_regex(dateNF/*:string|number*/)/*:RegExp*/ {\n\tvar fmt = typeof dateNF == \"number\" ? table_fmt[dateNF] : dateNF;\n\tfmt = fmt.replace(dateNFregex, \"(\\\\d+)\");\n\treturn new RegExp(\"^\" + fmt + \"$\");\n}\nfunction dateNF_fix(str/*:string*/, dateNF/*:string*/, match/*:Array<string>*/)/*:string*/ {\n\tvar Y = -1, m = -1, d = -1, H = -1, M = -1, S = -1;\n\t(dateNF.match(dateNFregex)||[]).forEach(function(n, i) {\n\t\tvar v = parseInt(match[i+1], 10);\n\t\tswitch(n.toLowerCase().charAt(0)) {\n\t\t\tcase 'y': Y = v; break; case 'd': d = v; break;\n\t\t\tcase 'h': H = v; break; case 's': S = v; break;\n\t\t\tcase 'm': if(H >= 0) M = v; else m = v; break;\n\t\t}\n\t});\n\tif(S >= 0 && M == -1 && m >= 0) { M = m; m = -1; }\n\tvar datestr = ((\"\" + (Y>=0?Y: new Date().getFullYear())).slice(-4) + \"-\" + (\"00\" + (m>=1?m:1)).slice(-2) + \"-\" + (\"00\" + (d>=1?d:1)).slice(-2));\n\tif(datestr.length == 7) datestr = \"0\" + datestr;\n\tif(datestr.length == 8) datestr = \"20\" + datestr;\n\tvar timestr = ((\"00\" + (H>=0?H:0)).slice(-2) + \":\" + (\"00\" + (M>=0?M:0)).slice(-2) + \":\" + (\"00\" + (S>=0?S:0)).slice(-2));\n\tif(H == -1 && M == -1 && S == -1) return datestr;\n\tif(Y == -1 && m == -1 && d == -1) return timestr;\n\treturn datestr + \"T\" + timestr;\n}\n\n/* table of bad formats written by third-party tools */\nvar bad_formats = {\n\t\"d.m\": \"d\\\\.m\" // Issue #2571 Google Sheets writes invalid format 'd.m', correct format is 'd\".\"m' or 'd\\\\.m'\n};\n\nfunction SSF__load(fmt, idx) {\n\treturn SSF_load(bad_formats[fmt] || fmt, idx);\n}\n\n/*::\ndeclare var ReadShift:any;\ndeclare var CheckField:any;\ndeclare var prep_blob:any;\ndeclare var __readUInt32LE:any;\ndeclare var __readInt32LE:any;\ndeclare var __toBuffer:any;\ndeclare var __utf16le:any;\ndeclare var bconcat:any;\ndeclare var s2a:any;\ndeclare var chr0:any;\ndeclare var chr1:any;\ndeclare var has_buf:boolean;\ndeclare var new_buf:any;\ndeclare var new_raw_buf:any;\ndeclare var new_unsafe_buf:any;\ndeclare var Buffer_from:any;\n*/\n/* cfb.js (C) 2013-present SheetJS -- http://sheetjs.com */\n/* vim: set ts=2: */\n/*jshint eqnull:true */\n/*exported CFB */\n/*global Uint8Array:false, Uint16Array:false */\n\n/*::\ntype SectorEntry = {\n\tname?:string;\n\tnodes?:Array<number>;\n\tdata:RawBytes;\n};\ntype SectorList = {\n\t[k:string|number]:SectorEntry;\n\tname:?string;\n\tfat_addrs:Array<number>;\n\tssz:number;\n}\ntype CFBFiles = {[n:string]:CFBEntry};\n*/\n/* crc32.js (C) 2014-present SheetJS -- http://sheetjs.com */\n/* vim: set ts=2: */\n/*exported CRC32 */\nvar CRC32 = /*#__PURE__*/(function() {\nvar CRC32 = {};\nCRC32.version = '1.2.0';\n/* see perf/crc32table.js */\n/*global Int32Array */\nfunction signed_crc_table()/*:any*/ {\n\tvar c = 0, table/*:Array<number>*/ = new Array(256);\n\n\tfor(var n =0; n != 256; ++n){\n\t\tc = n;\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\tc = ((c&1) ? (-306674912 ^ (c >>> 1)) : (c >>> 1));\n\t\ttable[n] = c;\n\t}\n\n\treturn typeof Int32Array !== 'undefined' ? new Int32Array(table) : table;\n}\n\nvar T0 = signed_crc_table();\nfunction slice_by_16_tables(T) {\n\tvar c = 0, v = 0, n = 0, table/*:Array<number>*/ = typeof Int32Array !== 'undefined' ? new Int32Array(4096) : new Array(4096) ;\n\n\tfor(n = 0; n != 256; ++n) table[n] = T[n];\n\tfor(n = 0; n != 256; ++n) {\n\t\tv = T[n];\n\t\tfor(c = 256 + n; c < 4096; c += 256) v = table[c] = (v >>> 8) ^ T[v & 0xFF];\n\t}\n\tvar out = [];\n\tfor(n = 1; n != 16; ++n) out[n - 1] = typeof Int32Array !== 'undefined' && typeof table.subarray == \"function\" ? table.subarray(n * 256, n * 256 + 256) : table.slice(n * 256, n * 256 + 256);\n\treturn out;\n}\nvar TT = slice_by_16_tables(T0);\nvar T1 = TT[0], T2 = TT[1], T3 = TT[2], T4 = TT[3], T5 = TT[4];\nvar T6 = TT[5], T7 = TT[6], T8 = TT[7], T9 = TT[8], Ta = TT[9];\nvar Tb = TT[10], Tc = TT[11], Td = TT[12], Te = TT[13], Tf = TT[14];\nfunction crc32_bstr(bstr/*:string*/, seed/*:number*/)/*:number*/ {\n\tvar C = seed/*:: ? 0 : 0 */ ^ -1;\n\tfor(var i = 0, L = bstr.length; i < L;) C = (C>>>8) ^ T0[(C^bstr.charCodeAt(i++))&0xFF];\n\treturn ~C;\n}\n\nfunction crc32_buf(B/*:Uint8Array|Array<number>*/, seed/*:number*/)/*:number*/ {\n\tvar C = seed/*:: ? 0 : 0 */ ^ -1, L = B.length - 15, i = 0;\n\tfor(; i < L;) C =\n\t\tTf[B[i++] ^ (C & 255)] ^\n\t\tTe[B[i++] ^ ((C >> 8) & 255)] ^\n\t\tTd[B[i++] ^ ((C >> 16) & 255)] ^\n\t\tTc[B[i++] ^ (C >>> 24)] ^\n\t\tTb[B[i++]] ^ Ta[B[i++]] ^ T9[B[i++]] ^ T8[B[i++]] ^\n\t\tT7[B[i++]] ^ T6[B[i++]] ^ T5[B[i++]] ^ T4[B[i++]] ^\n\t\tT3[B[i++]] ^ T2[B[i++]] ^ T1[B[i++]] ^ T0[B[i++]];\n\tL += 15;\n\twhile(i < L) C = (C>>>8) ^ T0[(C^B[i++])&0xFF];\n\treturn ~C;\n}\n\nfunction crc32_str(str/*:string*/, seed/*:number*/)/*:number*/ {\n\tvar C = seed ^ -1;\n\tfor(var i = 0, L = str.length, c = 0, d = 0; i < L;) {\n\t\tc = str.charCodeAt(i++);\n\t\tif(c < 0x80) {\n\t\t\tC = (C>>>8) ^ T0[(C^c)&0xFF];\n\t\t} else if(c < 0x800) {\n\t\t\tC = (C>>>8) ^ T0[(C ^ (192|((c>>6)&31)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|(c&63)))&0xFF];\n\t\t} else if(c >= 0xD800 && c < 0xE000) {\n\t\t\tc = (c&1023)+64; d = str.charCodeAt(i++)&1023;\n\t\t\tC = (C>>>8) ^ T0[(C ^ (240|((c>>8)&7)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|((c>>2)&63)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|((d>>6)&15)|((c&3)<<4)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|(d&63)))&0xFF];\n\t\t} else {\n\t\t\tC = (C>>>8) ^ T0[(C ^ (224|((c>>12)&15)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|((c>>6)&63)))&0xFF];\n\t\t\tC = (C>>>8) ^ T0[(C ^ (128|(c&63)))&0xFF];\n\t\t}\n\t}\n\treturn ~C;\n}\nCRC32.table = T0;\nCRC32.bstr = crc32_bstr;\nCRC32.buf = crc32_buf;\nCRC32.str = crc32_str;\nreturn CRC32;\n})();\n/* [MS-CFB] v20171201 */\nvar CFB = /*#__PURE__*/(function _CFB(){\nvar exports/*:CFBModule*/ = /*::(*/{}/*:: :any)*/;\nexports.version = '1.2.2';\n/* [MS-CFB] 2.6.4 */\nfunction namecmp(l/*:string*/, r/*:string*/)/*:number*/ {\n\tvar L = l.split(\"/\"), R = r.split(\"/\");\n\tfor(var i = 0, c = 0, Z = Math.min(L.length, R.length); i < Z; ++i) {\n\t\tif((c = L[i].length - R[i].length)) return c;\n\t\tif(L[i] != R[i]) return L[i] < R[i] ? -1 : 1;\n\t}\n\treturn L.length - R.length;\n}\nfunction dirname(p/*:string*/)/*:string*/ {\n\tif(p.charAt(p.length - 1) == \"/\") return (p.slice(0,-1).indexOf(\"/\") === -1) ? p : dirname(p.slice(0, -1));\n\tvar c = p.lastIndexOf(\"/\");\n\treturn (c === -1) ? p : p.slice(0, c+1);\n}\n\nfunction filename(p/*:string*/)/*:string*/ {\n\tif(p.charAt(p.length - 1) == \"/\") return filename(p.slice(0, -1));\n\tvar c = p.lastIndexOf(\"/\");\n\treturn (c === -1) ? p : p.slice(c+1);\n}\n/* -------------------------------------------------------------------------- */\n/* DOS Date format:\n high|YYYYYYYm.mmmddddd.HHHHHMMM.MMMSSSSS|low\n add 1980 to stored year\n stored second should be doubled\n*/\n\n/* write JS date to buf as a DOS date */\nfunction write_dos_date(buf/*:CFBlob*/, date/*:Date|string*/) {\n\tif(typeof date === \"string\") date = new Date(date);\n\tvar hms/*:number*/ = date.getHours();\n\thms = hms << 6 | date.getMinutes();\n\thms = hms << 5 | (date.getSeconds()>>>1);\n\tbuf.write_shift(2, hms);\n\tvar ymd/*:number*/ = (date.getFullYear() - 1980);\n\tymd = ymd << 4 | (date.getMonth()+1);\n\tymd = ymd << 5 | date.getDate();\n\tbuf.write_shift(2, ymd);\n}\n\n/* read four bytes from buf and interpret as a DOS date */\nfunction parse_dos_date(buf/*:CFBlob*/)/*:Date*/ {\n\tvar hms = buf.read_shift(2) & 0xFFFF;\n\tvar ymd = buf.read_shift(2) & 0xFFFF;\n\tvar val = new Date();\n\tvar d = ymd & 0x1F; ymd >>>= 5;\n\tvar m = ymd & 0x0F; ymd >>>= 4;\n\tval.setMilliseconds(0);\n\tval.setFullYear(ymd + 1980);\n\tval.setMonth(m-1);\n\tval.setDate(d);\n\tvar S = hms & 0x1F; hms >>>= 5;\n\tvar M = hms & 0x3F; hms >>>= 6;\n\tval.setHours(hms);\n\tval.setMinutes(M);\n\tval.setSeconds(S<<1);\n\treturn val;\n}\nfunction parse_extra_field(blob/*:CFBlob*/)/*:any*/ {\n\tprep_blob(blob, 0);\n\tvar o = /*::(*/{}/*:: :any)*/;\n\tvar flags = 0;\n\twhile(blob.l <= blob.length - 4) {\n\t\tvar type = blob.read_shift(2);\n\t\tvar sz = blob.read_shift(2), tgt = blob.l + sz;\n\t\tvar p = {};\n\t\tswitch(type) {\n\t\t\t/* UNIX-style Timestamps */\n\t\t\tcase 0x5455: {\n\t\t\t\tflags = blob.read_shift(1);\n\t\t\t\tif(flags & 1) p.mtime = blob.read_shift(4);\n\t\t\t\t/* for some reason, CD flag corresponds to LFH */\n\t\t\t\tif(sz > 5) {\n\t\t\t\t\tif(flags & 2) p.atime = blob.read_shift(4);\n\t\t\t\t\tif(flags & 4) p.ctime = blob.read_shift(4);\n\t\t\t\t}\n\t\t\t\tif(p.mtime) p.mt = new Date(p.mtime*1000);\n\t\t\t} break;\n\t\t\t/* ZIP64 Extended Information Field */\n\t\t\tcase 0x0001: {\n\t\t\t\tvar sz1 = blob.read_shift(4), sz2 = blob.read_shift(4);\n\t\t\t\tp.usz = (sz2 * Math.pow(2,32) + sz1);\n\t\t\t\tsz1 = blob.read_shift(4); sz2 = blob.read_shift(4);\n\t\t\t\tp.csz = (sz2 * Math.pow(2,32) + sz1);\n\t\t\t\t// NOTE: volume fields are skipped\n\t\t\t} break;\n\t\t}\n\t\tblob.l = tgt;\n\t\to[type] = p;\n\t}\n\treturn o;\n}\nvar fs/*:: = require('fs'); */;\nfunction get_fs() { return fs || (fs = _fs); }\nfunction parse(file/*:RawBytes*/, options/*:CFBReadOpts*/)/*:CFBContainer*/ {\nif(file[0] == 0x50 && file[1] == 0x4b) return parse_zip(file, options);\nif((file[0] | 0x20) == 0x6d && (file[1]|0x20) == 0x69) return parse_mad(file, options);\nif(file.length < 512) throw new Error(\"CFB file size \" + file.length + \" < 512\");\nvar mver = 3;\nvar ssz = 512;\nvar nmfs = 0; // number of mini FAT sectors\nvar difat_sec_cnt = 0;\nvar dir_start = 0;\nvar minifat_start = 0;\nvar difat_start = 0;\n\nvar fat_addrs/*:Array<number>*/ = []; // locations of FAT sectors\n\n/* [MS-CFB] 2.2 Compound File Header */\nvar blob/*:CFBlob*/ = /*::(*/file.slice(0,512)/*:: :any)*/;\nprep_blob(blob, 0);\n\n/* major version */\nvar mv = check_get_mver(blob);\nmver = mv[0];\nswitch(mver) {\n\tcase 3: ssz = 512; break; case 4: ssz = 4096; break;\n\tcase 0: if(mv[1] == 0) return parse_zip(file, options);\n\t/* falls through */\n\tdefault: throw new Error(\"Major Version: Expected 3 or 4 saw \" + mver);\n}\n\n/* reprocess header */\nif(ssz !== 512) { blob = /*::(*/file.slice(0,ssz)/*:: :any)*/; prep_blob(blob, 28 /* blob.l */); }\n/* Save header for final object */\nvar header/*:RawBytes*/ = file.slice(0,ssz);\n\ncheck_shifts(blob, mver);\n\n// Number of Directory Sectors\nvar dir_cnt/*:number*/ = blob.read_shift(4, 'i');\nif(mver === 3 && dir_cnt !== 0) throw new Error('# Directory Sectors: Expected 0 saw ' + dir_cnt);\n\n// Number of FAT Sectors\nblob.l += 4;\n\n// First Directory Sector Location\ndir_start = blob.read_shift(4, 'i');\n\n// Transaction Signature\nblob.l += 4;\n\n// Mini Stream Cutoff Size\nblob.chk('00100000', 'Mini Stream Cutoff Size: ');\n\n// First Mini FAT Sector Location\nminifat_start = blob.read_shift(4, 'i');\n\n// Number of Mini FAT Sectors\nnmfs = blob.read_shift(4, 'i');\n\n// First DIFAT sector location\ndifat_start = blob.read_shift(4, 'i');\n\n// Number of DIFAT Sectors\ndifat_sec_cnt = blob.read_shift(4, 'i');\n\n// Grab FAT Sector Locations\nfor(var q = -1, j = 0; j < 109; ++j) { /* 109 = (512 - blob.l)>>>2; */\n\tq = blob.read_shift(4, 'i');\n\tif(q<0) break;\n\tfat_addrs[j] = q;\n}\n\n/** Break the file up into sectors */\nvar sectors/*:Array<RawBytes>*/ = sectorify(file, ssz);\n\nsleuth_fat(difat_start, difat_sec_cnt, sectors, ssz, fat_addrs);\n\n/** Chains */\nvar sector_list/*:SectorList*/ = make_sector_list(sectors, dir_start, fat_addrs, ssz);\n\nif(dir_start < sector_list.length) sector_list[dir_start].name = \"!Directory\";\nif(nmfs > 0 && minifat_start !== ENDOFCHAIN) sector_list[minifat_start].name = \"!MiniFAT\";\nsector_list[fat_addrs[0]].name = \"!FAT\";\nsector_list.fat_addrs = fat_addrs;\nsector_list.ssz = ssz;\n\n/* [MS-CFB] 2.6.1 Compound File Directory Entry */\nvar files/*:CFBFiles*/ = {}, Paths/*:Array<string>*/ = [], FileIndex/*:CFBFileIndex*/ = [], FullPaths/*:Array<string>*/ = [];\nread_directory(dir_start, sector_list, sectors, Paths, nmfs, files, FileIndex, minifat_start);\n\nbuild_full_paths(FileIndex, FullPaths, Paths);\nPaths.shift();\n\nvar o = {\n\tFileIndex: FileIndex,\n\tFullPaths: FullPaths\n};\n\n// $FlowIgnore\nif(options && options.raw) o.raw = {header: header, sectors: sectors};\nreturn o;\n} // parse\n\n/* [MS-CFB] 2.2 Compound File Header -- read up to major version */\nfunction check_get_mver(blob/*:CFBlob*/)/*:[number, number]*/ {\n\tif(blob[blob.l] == 0x50 && blob[blob.l + 1] == 0x4b) return [0, 0];\n\t// header signature 8\n\tblob.chk(HEADER_SIGNATURE, 'Header Signature: ');\n\n\t// clsid 16\n\t//blob.chk(HEADER_CLSID, 'CLSID: ');\n\tblob.l += 16;\n\n\t// minor version 2\n\tvar mver/*:number*/ = blob.read_shift(2, 'u');\n\n\treturn [blob.read_shift(2,'u'), mver];\n}\nfunction check_shifts(blob/*:CFBlob*/, mver/*:number*/)/*:void*/ {\n\tvar shift = 0x09;\n\n\t// Byte Order\n\t//blob.chk('feff', 'Byte Order: '); // note: some writers put 0xffff\n\tblob.l += 2;\n\n\t// Sector Shift\n\tswitch((shift = blob.read_shift(2))) {\n\t\tcase 0x09: if(mver != 3) throw new Error('Sector Shift: Expected 9 saw ' + shift); break;\n\t\tcase 0x0c: if(mver != 4) throw new Error('Sector Shift: Expected 12 saw ' + shift); break;\n\t\tdefault: throw new Error('Sector Shift: Expected 9 or 12 saw ' + shift);\n\t}\n\n\t// Mini Sector Shift\n\tblob.chk('0600', 'Mini Sector Shift: ');\n\n\t// Reserved\n\tblob.chk('000000000000', 'Reserved: ');\n}\n\n/** Break the file up into sectors */\nfunction sectorify(file/*:RawBytes*/, ssz/*:number*/)/*:Array<RawBytes>*/ {\n\tvar nsectors = Math.ceil(file.length/ssz)-1;\n\tvar sectors/*:Array<RawBytes>*/ = [];\n\tfor(var i=1; i < nsectors; ++i) sectors[i-1] = file.slice(i*ssz,(i+1)*ssz);\n\tsectors[nsectors-1] = file.slice(nsectors*ssz);\n\treturn sectors;\n}\n\n/* [MS-CFB] 2.6.4 Red-Black Tree */\nfunction build_full_paths(FI/*:CFBFileIndex*/, FP/*:Array<string>*/, Paths/*:Array<string>*/)/*:void*/ {\n\tvar i = 0, L = 0, R = 0, C = 0, j = 0, pl = Paths.length;\n\tvar dad/*:Array<number>*/ = [], q/*:Array<number>*/ = [];\n\n\tfor(; i < pl; ++i) { dad[i]=q[i]=i; FP[i]=Paths[i]; }\n\n\tfor(; j < q.length; ++j) {\n\t\ti = q[j];\n\t\tL = FI[i].L; R = FI[i].R; C = FI[i].C;\n\t\tif(dad[i] === i) {\n\t\t\tif(L !== -1 /*NOSTREAM*/ && dad[L] !== L) dad[i] = dad[L];\n\t\t\tif(R !== -1 && dad[R] !== R) dad[i] = dad[R];\n\t\t}\n\t\tif(C !== -1 /*NOSTREAM*/) dad[C] = i;\n\t\tif(L !== -1 && i != dad[i]) { dad[L] = dad[i]; if(q.lastIndexOf(L) < j) q.push(L); }\n\t\tif(R !== -1 && i != dad[i]) { dad[R] = dad[i]; if(q.lastIndexOf(R) < j) q.push(R); }\n\t}\n\tfor(i=1; i < pl; ++i) if(dad[i] === i) {\n\t\tif(R !== -1 /*NOSTREAM*/ && dad[R] !== R) dad[i] = dad[R];\n\t\telse if(L !== -1 && dad[L] !== L) dad[i] = dad[L];\n\t}\n\n\tfor(i=1; i < pl; ++i) {\n\t\tif(FI[i].type === 0 /* unknown */) continue;\n\t\tj = i;\n\t\tif(j != dad[j]) do {\n\t\t\tj = dad[j];\n\t\t\tFP[i] = FP[j] + \"/\" + FP[i];\n\t\t} while (j !== 0 && -1 !== dad[j] && j != dad[j]);\n\t\tdad[i] = -1;\n\t}\n\n\tFP[0] += \"/\";\n\tfor(i=1; i < pl; ++i) {\n\t\tif(FI[i].type !== 2 /* stream */) FP[i] += \"/\";\n\t}\n}\n\nfunction get_mfat_entry(entry/*:CFBEntry*/, payload/*:RawBytes*/, mini/*:?RawBytes*/)/*:CFBlob*/ {\n\tvar start = entry.start, size = entry.size;\n\t//return (payload.slice(start*MSSZ, start*MSSZ + size)/*:any*/);\n\tvar o = [];\n\tvar idx = start;\n\twhile(mini && size > 0 && idx >= 0) {\n\t\to.push(payload.slice(idx * MSSZ, idx * MSSZ + MSSZ));\n\t\tsize -= MSSZ;\n\t\tidx = __readInt32LE(mini, idx * 4);\n\t}\n\tif(o.length === 0) return (new_buf(0)/*:any*/);\n\treturn (bconcat(o).slice(0, entry.size)/*:any*/);\n}\n\n/** Chase down the rest of the DIFAT chain to build a comprehensive list\n DIFAT chains by storing the next sector number as the last 32 bits */\nfunction sleuth_fat(idx/*:number*/, cnt/*:number*/, sectors/*:Array<RawBytes>*/, ssz/*:number*/, fat_addrs)/*:void*/ {\n\tvar q/*:number*/ = ENDOFCHAIN;\n\tif(idx === ENDOFCHAIN) {\n\t\tif(cnt !== 0) throw new Error(\"DIFAT chain shorter than expected\");\n\t} else if(idx !== -1 /*FREESECT*/) {\n\t\tvar sector = sectors[idx], m = (ssz>>>2)-1;\n\t\tif(!sector) return;\n\t\tfor(var i = 0; i < m; ++i) {\n\t\t\tif((q = __readInt32LE(sector,i*4)) === ENDOFCHAIN) break;\n\t\t\tfat_addrs.push(q);\n\t\t}\n\t\tif(cnt >= 1) sleuth_fat(__readInt32LE(sector,ssz-4),cnt - 1, sectors, ssz, fat_addrs);\n\t}\n}\n\n/** Follow the linked list of sectors for a given starting point */\nfunction get_sector_list(sectors/*:Array<RawBytes>*/, start/*:number*/, fat_addrs/*:Array<number>*/, ssz/*:number*/, chkd/*:?Array<boolean>*/)/*:SectorEntry*/ {\n\tvar buf/*:Array<number>*/ = [], buf_chain/*:Array<any>*/ = [];\n\tif(!chkd) chkd = [];\n\tvar modulus = ssz - 1, j = 0, jj = 0;\n\tfor(j=start; j>=0;) {\n\t\tchkd[j] = true;\n\t\tbuf[buf.length] = j;\n\t\tbuf_chain.push(sectors[j]);\n\t\tvar addr = fat_addrs[Math.floor(j*4/ssz)];\n\t\tjj = ((j*4) & modulus);\n\t\tif(ssz < 4 + jj) throw new Error(\"FAT boundary crossed: \" + j + \" 4 \"+ssz);\n\t\tif(!sectors[addr]) break;\n\t\tj = __readInt32LE(sectors[addr], jj);\n\t}\n\treturn {nodes: buf, data:__toBuffer([buf_chain])};\n}\n\n/** Chase down the sector linked lists */\nfunction make_sector_list(sectors/*:Array<RawBytes>*/, dir_start/*:number*/, fat_addrs/*:Array<number>*/, ssz/*:number*/)/*:SectorList*/ {\n\tvar sl = sectors.length, sector_list/*:SectorList*/ = ([]/*:any*/);\n\tvar chkd/*:Array<boolean>*/ = [], buf/*:Array<number>*/ = [], buf_chain/*:Array<RawBytes>*/ = [];\n\tvar modulus = ssz - 1, i=0, j=0, k=0, jj=0;\n\tfor(i=0; i < sl; ++i) {\n\t\tbuf = ([]/*:Array<number>*/);\n\t\tk = (i + dir_start); if(k >= sl) k-=sl;\n\t\tif(chkd[k]) continue;\n\t\tbuf_chain = [];\n\t\tvar seen = [];\n\t\tfor(j=k; j>=0;) {\n\t\t\tseen[j] = true;\n\t\t\tchkd[j] = true;\n\t\t\tbuf[buf.length] = j;\n\t\t\tbuf_chain.push(sectors[j]);\n\t\t\tvar addr/*:number*/ = fat_addrs[Math.floor(j*4/ssz)];\n\t\t\tjj = ((j*4) & modulus);\n\t\t\tif(ssz < 4 + jj) throw new Error(\"FAT boundary crossed: \" + j + \" 4 \"+ssz);\n\t\t\tif(!sectors[addr]) break;\n\t\t\tj = __readInt32LE(sectors[addr], jj);\n\t\t\tif(seen[j]) break;\n\t\t}\n\t\tsector_list[k] = ({nodes: buf, data:__toBuffer([buf_chain])}/*:SectorEntry*/);\n\t}\n\treturn sector_list;\n}\n\n/* [MS-CFB] 2.6.1 Compound File Directory Entry */\nfunction read_directory(dir_start/*:number*/, sector_list/*:SectorList*/, sectors/*:Array<RawBytes>*/, Paths/*:Array<string>*/, nmfs, files, FileIndex, mini) {\n\tvar minifat_store = 0, pl = (Paths.length?2:0);\n\tvar sector = sector_list[dir_start].data;\n\tvar i = 0, namelen = 0, name;\n\tfor(; i < sector.length; i+= 128) {\n\t\tvar blob/*:CFBlob*/ = /*::(*/sector.slice(i, i+128)/*:: :any)*/;\n\t\tprep_blob(blob, 64);\n\t\tnamelen = blob.read_shift(2);\n\t\tname = __utf16le(blob,0,namelen-pl);\n\t\tPaths.push(name);\n\t\tvar o/*:CFBEntry*/ = ({\n\t\t\tname: name,\n\t\t\ttype: blob.read_shift(1),\n\t\t\tcolor: blob.read_shift(1),\n\t\t\tL: blob.read_shift(4, 'i'),\n\t\t\tR: blob.read_shift(4, 'i'),\n\t\t\tC: blob.read_shift(4, 'i'),\n\t\t\tclsid: blob.read_shift(16),\n\t\t\tstate: blob.read_shift(4, 'i'),\n\t\t\tstart: 0,\n\t\t\tsize: 0\n\t\t});\n\t\tvar ctime/*:number*/ = blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2);\n\t\tif(ctime !== 0) o.ct = read_date(blob, blob.l-8);\n\t\tvar mtime/*:number*/ = blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2);\n\t\tif(mtime !== 0) o.mt = read_date(blob, blob.l-8);\n\t\to.start = blob.read_shift(4, 'i');\n\t\to.size = blob.read_shift(4, 'i');\n\t\tif(o.size < 0 && o.start < 0) { o.size = o.type = 0; o.start = ENDOFCHAIN; o.name = \"\"; }\n\t\tif(o.type === 5) { /* root */\n\t\t\tminifat_store = o.start;\n\t\t\tif(nmfs > 0 && minifat_store !== ENDOFCHAIN) sector_list[minifat_store].name = \"!StreamData\";\n\t\t\t/*minifat_size = o.size;*/\n\t\t} else if(o.size >= 4096 /* MSCSZ */) {\n\t\t\to.storage = 'fat';\n\t\t\tif(sector_list[o.start] === undefined) sector_list[o.start] = get_sector_list(sectors, o.start, sector_list.fat_addrs, sector_list.ssz);\n\t\t\tsector_list[o.start].name = o.name;\n\t\t\to.content = (sector_list[o.start].data.slice(0,o.size)/*:any*/);\n\t\t} else {\n\t\t\to.storage = 'minifat';\n\t\t\tif(o.size < 0) o.size = 0;\n\t\t\telse if(minifat_store !== ENDOFCHAIN && o.start !== ENDOFCHAIN && sector_list[minifat_store]) {\n\t\t\t\to.content = get_mfat_entry(o, sector_list[minifat_store].data, (sector_list[mini]||{}).data);\n\t\t\t}\n\t\t}\n\t\tif(o.content) prep_blob(o.content, 0);\n\t\tfiles[name] = o;\n\t\tFileIndex.push(o);\n\t}\n}\n\nfunction read_date(blob/*:RawBytes|CFBlob*/, offset/*:number*/)/*:Date*/ {\n\treturn new Date(( ( (__readUInt32LE(blob,offset+4)/1e7)*Math.pow(2,32)+__readUInt32LE(blob,offset)/1e7 ) - 11644473600)*1000);\n}\n\nfunction read_file(filename/*:string*/, options/*:CFBReadOpts*/) {\n\tget_fs();\n\treturn parse(fs.readFileSync(filename), options);\n}\n\nfunction read(blob/*:RawBytes|string*/, options/*:CFBReadOpts*/) {\n\tvar type = options && options.type;\n\tif(!type) {\n\t\tif(has_buf && Buffer.isBuffer(blob)) type = \"buffer\";\n\t}\n\tswitch(type || \"base64\") {\n\t\tcase \"file\": /*:: if(typeof blob !== 'string') throw \"Must pass a filename when type='file'\"; */return read_file(blob, options);\n\t\tcase \"base64\": /*:: if(typeof blob !== 'string') throw \"Must pass a base64-encoded binary string when type='file'\"; */return parse(s2a(Base64_decode(blob)), options);\n\t\tcase \"binary\": /*:: if(typeof blob !== 'string') throw \"Must pass a binary string when type='file'\"; */return parse(s2a(blob), options);\n\t}\n\treturn parse(/*::typeof blob == 'string' ? new Buffer(blob, 'utf-8') : */blob, options);\n}\n\nfunction init_cfb(cfb/*:CFBContainer*/, opts/*:?any*/)/*:void*/ {\n\tvar o = opts || {}, root = o.root || \"Root Entry\";\n\tif(!cfb.FullPaths) cfb.FullPaths = [];\n\tif(!cfb.FileIndex) cfb.FileIndex = [];\n\tif(cfb.FullPaths.length !== cfb.FileIndex.length) throw new Error(\"inconsistent CFB structure\");\n\tif(cfb.FullPaths.length === 0) {\n\t\tcfb.FullPaths[0] = root + \"/\";\n\t\tcfb.FileIndex[0] = ({ name: root, type: 5 }/*:any*/);\n\t}\n\tif(o.CLSID) cfb.FileIndex[0].clsid = o.CLSID;\n\tseed_cfb(cfb);\n}\nfunction seed_cfb(cfb/*:CFBContainer*/)/*:void*/ {\n\tvar nm = \"\\u0001Sh33tJ5\";\n\tif(CFB.find(cfb, \"/\" + nm)) return;\n\tvar p = new_buf(4); p[0] = 55; p[1] = p[3] = 50; p[2] = 54;\n\tcfb.FileIndex.push(({ name: nm, type: 2, content:p, size:4, L:69, R:69, C:69 }/*:any*/));\n\tcfb.FullPaths.push(cfb.FullPaths[0] + nm);\n\trebuild_cfb(cfb);\n}\nfunction rebuild_cfb(cfb/*:CFBContainer*/, f/*:?boolean*/)/*:void*/ {\n\tinit_cfb(cfb);\n\tvar gc = false, s = false;\n\tfor(var i = cfb.FullPaths.length - 1; i >= 0; --i) {\n\t\tvar _file = cfb.FileIndex[i];\n\t\tswitch(_file.type) {\n\t\t\tcase 0:\n\t\t\t\tif(s) gc = true;\n\t\t\t\telse { cfb.FileIndex.pop(); cfb.FullPaths.pop(); }\n\t\t\t\tbreak;\n\t\t\tcase 1: case 2: case 5:\n\t\t\t\ts = true;\n\t\t\t\tif(isNaN(_file.R * _file.L * _file.C)) gc = true;\n\t\t\t\tif(_file.R > -1 && _file.L > -1 && _file.R == _file.L) gc = true;\n\t\t\t\tbreak;\n\t\t\tdefault: gc = true; break;\n\t\t}\n\t}\n\tif(!gc && !f) return;\n\n\tvar now = new Date(1987, 1, 19), j = 0;\n\t// Track which names exist\n\tvar fullPaths = Object.create ? Object.create(null) : {};\n\tvar data/*:Array<[string, CFBEntry]>*/ = [];\n\tfor(i = 0; i < cfb.FullPaths.length; ++i) {\n\t\tfullPaths[cfb.FullPaths[i]] = true;\n\t\tif(cfb.FileIndex[i].type === 0) continue;\n\t\tdata.push([cfb.FullPaths[i], cfb.FileIndex[i]]);\n\t}\n\tfor(i = 0; i < data.length; ++i) {\n\t\tvar dad = dirname(data[i][0]);\n\t\ts = fullPaths[dad];\n\t\twhile(!s) {\n\t\t\twhile(dirname(dad) && !fullPaths[dirname(dad)]) dad = dirname(dad);\n\n\t\t\tdata.push([dad, ({\n\t\t\t\tname: filename(dad).replace(\"/\",\"\"),\n\t\t\t\ttype: 1,\n\t\t\t\tclsid: HEADER_CLSID,\n\t\t\t\tct: now, mt: now,\n\t\t\t\tcontent: null\n\t\t\t}/*:any*/)]);\n\n\t\t\t// Add name to set\n\t\t\tfullPaths[dad] = true;\n\n\t\t\tdad = dirname(data[i][0]);\n\t\t\ts = fullPaths[dad];\n\t\t}\n\t}\n\n\tdata.sort(function(x,y) { return namecmp(x[0], y[0]); });\n\tcfb.FullPaths = []; cfb.FileIndex = [];\n\tfor(i = 0; i < data.length; ++i) { cfb.FullPaths[i] = data[i][0]; cfb.FileIndex[i] = data[i][1]; }\n\tfor(i = 0; i < data.length; ++i) {\n\t\tvar elt = cfb.FileIndex[i];\n\t\tvar nm = cfb.FullPaths[i];\n\n\t\telt.name = filename(nm).replace(\"/\",\"\");\n\t\telt.L = elt.R = elt.C = -(elt.color = 1);\n\t\telt.size = elt.content ? elt.content.length : 0;\n\t\telt.start = 0;\n\t\telt.clsid = (elt.clsid || HEADER_CLSID);\n\t\tif(i === 0) {\n\t\t\telt.C = data.length > 1 ? 1 : -1;\n\t\t\telt.size = 0;\n\t\t\telt.type = 5;\n\t\t} else if(nm.slice(-1) == \"/\") {\n\t\t\tfor(j=i+1;j < data.length; ++j) if(dirname(cfb.FullPaths[j])==nm) break;\n\t\t\telt.C = j >= data.length ? -1 : j;\n\t\t\tfor(j=i+1;j < data.length; ++j) if(dirname(cfb.FullPaths[j])==dirname(nm)) break;\n\t\t\telt.R = j >= data.length ? -1 : j;\n\t\t\telt.type = 1;\n\t\t} else {\n\t\t\tif(dirname(cfb.FullPaths[i+1]||\"\") == dirname(nm)) elt.R = i + 1;\n\t\t\telt.type = 2;\n\t\t}\n\t}\n\n}\n\nfunction _write(cfb/*:CFBContainer*/, options/*:CFBWriteOpts*/)/*:RawBytes|string*/ {\n\tvar _opts = options || {};\n\t/* MAD is order-sensitive, skip rebuild and sort */\n\tif(_opts.fileType == 'mad') return write_mad(cfb, _opts);\n\trebuild_cfb(cfb);\n\tswitch(_opts.fileType) {\n\t\tcase 'zip': return write_zip(cfb, _opts);\n\t\t//case 'mad': return write_mad(cfb, _opts);\n\t}\n\tvar L = (function(cfb/*:CFBContainer*/)/*:Array<number>*/{\n\t\tvar mini_size = 0, fat_size = 0;\n\t\tfor(var i = 0; i < cfb.FileIndex.length; ++i) {\n\t\t\tvar file = cfb.FileIndex[i];\n\t\t\tif(!file.content) continue;\n\t\t\tvar flen = file.content.length;\n\t\t\tif(flen > 0){\n\t\t\t\tif(flen < 0x1000) mini_size += (flen + 0x3F) >> 6;\n\t\t\t\telse fat_size += (flen + 0x01FF) >> 9;\n\t\t\t}\n\t\t}\n\t\tvar dir_cnt = (cfb.FullPaths.length +3) >> 2;\n\t\tvar mini_cnt = (mini_size + 7) >> 3;\n\t\tvar mfat_cnt = (mini_size + 0x7F) >> 7;\n\t\tvar fat_base = mini_cnt + fat_size + dir_cnt + mfat_cnt;\n\t\tvar fat_cnt = (fat_base + 0x7F) >> 7;\n\t\tvar difat_cnt = fat_cnt <= 109 ? 0 : Math.ceil((fat_cnt-109)/0x7F);\n\t\twhile(((fat_base + fat_cnt + difat_cnt + 0x7F) >> 7) > fat_cnt) difat_cnt = ++fat_cnt <= 109 ? 0 : Math.ceil((fat_cnt-109)/0x7F);\n\t\tvar L = [1, difat_cnt, fat_cnt, mfat_cnt, dir_cnt, fat_size, mini_size, 0];\n\t\tcfb.FileIndex[0].size = mini_size << 6;\n\t\tL[7] = (cfb.FileIndex[0].start=L[0]+L[1]+L[2]+L[3]+L[4]+L[5])+((L[6]+7) >> 3);\n\t\treturn L;\n\t})(cfb);\n\tvar o = new_buf(L[7] << 9);\n\tvar i = 0, T = 0;\n\t{\n\t\tfor(i = 0; i < 8; ++i) o.write_shift(1, HEADER_SIG[i]);\n\t\tfor(i = 0; i < 8; ++i) o.write_shift(2, 0);\n\t\to.write_shift(2, 0x003E);\n\t\to.write_shift(2, 0x0003);\n\t\to.write_shift(2, 0xFFFE);\n\t\to.write_shift(2, 0x0009);\n\t\to.write_shift(2, 0x0006);\n\t\tfor(i = 0; i < 3; ++i) o.write_shift(2, 0);\n\t\to.write_shift(4, 0);\n\t\to.write_shift(4, L[2]);\n\t\to.write_shift(4, L[0] + L[1] + L[2] + L[3] - 1);\n\t\to.write_shift(4, 0);\n\t\to.write_shift(4, 1<<12);\n\t\to.write_shift(4, L[3] ? L[0] + L[1] + L[2] - 1: ENDOFCHAIN);\n\t\to.write_shift(4, L[3]);\n\t\to.write_shift(-4, L[1] ? L[0] - 1: ENDOFCHAIN);\n\t\to.write_shift(4, L[1]);\n\t\tfor(i = 0; i < 109; ++i) o.write_shift(-4, i < L[2] ? L[1] + i : -1);\n\t}\n\tif(L[1]) {\n\t\tfor(T = 0; T < L[1]; ++T) {\n\t\t\tfor(; i < 236 + T * 127; ++i) o.write_shift(-4, i < L[2] ? L[1] + i : -1);\n\t\t\to.write_shift(-4, T === L[1] - 1 ? ENDOFCHAIN : T + 1);\n\t\t}\n\t}\n\tvar chainit = function(w/*:number*/)/*:void*/ {\n\t\tfor(T += w; i<T-1; ++i) o.write_shift(-4, i+1);\n\t\tif(w) { ++i; o.write_shift(-4, ENDOFCHAIN); }\n\t};\n\tT = i = 0;\n\tfor(T+=L[1]; i<T; ++i) o.write_shift(-4, consts.DIFSECT);\n\tfor(T+=L[2]; i<T; ++i) o.write_shift(-4, consts.FATSECT);\n\tchainit(L[3]);\n\tchainit(L[4]);\n\tvar j/*:number*/ = 0, flen/*:number*/ = 0;\n\tvar file/*:CFBEntry*/ = cfb.FileIndex[0];\n\tfor(; j < cfb.FileIndex.length; ++j) {\n\t\tfile = cfb.FileIndex[j];\n\t\tif(!file.content) continue;\n\t\t/*:: if(file.content == null) throw new Error(\"unreachable\"); */\n\t\tflen = file.content.length;\n\t\tif(flen < 0x1000) continue;\n\t\tfile.start = T;\n\t\tchainit((flen + 0x01FF) >> 9);\n\t}\n\tchainit((L[6] + 7) >> 3);\n\twhile(o.l & 0x1FF) o.write_shift(-4, consts.ENDOFCHAIN);\n\tT = i = 0;\n\tfor(j = 0; j < cfb.FileIndex.length; ++j) {\n\t\tfile = cfb.FileIndex[j];\n\t\tif(!file.content) continue;\n\t\t/*:: if(file.content == null) throw new Error(\"unreachable\"); */\n\t\tflen = file.content.length;\n\t\tif(!flen || flen >= 0x1000) continue;\n\t\tfile.start = T;\n\t\tchainit((flen + 0x3F) >> 6);\n\t}\n\twhile(o.l & 0x1FF) o.write_shift(-4, consts.ENDOFCHAIN);\n\tfor(i = 0; i < L[4]<<2; ++i) {\n\t\tvar nm = cfb.FullPaths[i];\n\t\tif(!nm || nm.length === 0) {\n\t\t\tfor(j = 0; j < 17; ++j) o.write_shift(4, 0);\n\t\t\tfor(j = 0; j < 3; ++j) o.write_shift(4, -1);\n\t\t\tfor(j = 0; j < 12; ++j) o.write_shift(4, 0);\n\t\t\tcontinue;\n\t\t}\n\t\tfile = cfb.FileIndex[i];\n\t\tif(i === 0) file.start = file.size ? file.start - 1 : ENDOFCHAIN;\n\t\tvar _nm/*:string*/ = (i === 0 && _opts.root) || file.name;\n\t\tif(_nm.length > 32) {\n\t\t\tconsole.error(\"Name \" + _nm + \" will be truncated to \" + _nm.slice(0,32));\n\t\t\t_nm = _nm.slice(0, 32);\n\t\t}\n\t\tflen = 2*(_nm.length+1);\n\t\to.write_shift(64, _nm, \"utf16le\");\n\t\to.write_shift(2, flen);\n\t\to.write_shift(1, file.type);\n\t\to.write_shift(1, file.color);\n\t\to.write_shift(-4, file.L);\n\t\to.write_shift(-4, file.R);\n\t\to.write_shift(-4, file.C);\n\t\tif(!file.clsid) for(j = 0; j < 4; ++j) o.write_shift(4, 0);\n\t\telse o.write_shift(16, file.clsid, \"hex\");\n\t\to.write_shift(4, file.state || 0);\n\t\to.write_shift(4, 0); o.write_shift(4, 0);\n\t\to.write_shift(4, 0); o.write_shift(4, 0);\n\t\to.write_shift(4, file.start);\n\t\to.write_shift(4, file.size); o.write_shift(4, 0);\n\t}\n\tfor(i = 1; i < cfb.FileIndex.length; ++i) {\n\t\tfile = cfb.FileIndex[i];\n\t\t/*:: if(!file.content) throw new Error(\"unreachable\"); */\n\t\tif(file.size >= 0x1000) {\n\t\t\to.l = (file.start+1) << 9;\n\t\t\tif (has_buf && Buffer.isBuffer(file.content)) {\n\t\t\t\tfile.content.copy(o, o.l, 0, file.size);\n\t\t\t\t// o is a 0-filled Buffer so just set next offset\n\t\t\t\to.l += (file.size + 511) & -512;\n\t\t\t} else {\n\t\t\t\tfor(j = 0; j < file.size; ++j) o.write_shift(1, file.content[j]);\n\t\t\t\tfor(; j & 0x1FF; ++j) o.write_shift(1, 0);\n\t\t\t}\n\t\t}\n\t}\n\tfor(i = 1; i < cfb.FileIndex.length; ++i) {\n\t\tfile = cfb.FileIndex[i];\n\t\t/*:: if(!file.content) throw new Error(\"unreachable\"); */\n\t\tif(file.size > 0 && file.size < 0x1000) {\n\t\t\tif (has_buf && Buffer.isBuffer(file.content)) {\n\t\t\t\tfile.content.copy(o, o.l, 0, file.size);\n\t\t\t\t// o is a 0-filled Buffer so just set next offset\n\t\t\t\to.l += (file.size + 63) & -64;\n\t\t\t} else {\n\t\t\t\tfor(j = 0; j < file.size; ++j) o.write_shift(1, file.content[j]);\n\t\t\t\tfor(; j & 0x3F; ++j) o.write_shift(1, 0);\n\t\t\t}\n\t\t}\n\t}\n\tif (has_buf) {\n\t\to.l = o.length;\n\t} else {\n\t\t// When using Buffer, already 0-filled\n\t\twhile(o.l < o.length) o.write_shift(1, 0);\n\t}\n\treturn o;\n}\n/* [MS-CFB] 2.6.4 (Unicode 3.0.1 case conversion) */\nfunction find(cfb/*:CFBContainer*/, path/*:string*/)/*:?CFBEntry*/ {\n\tvar UCFullPaths/*:Array<string>*/ = cfb.FullPaths.map(function(x) { return x.toUpperCase(); });\n\tvar UCPaths/*:Array<string>*/ = UCFullPaths.map(function(x) { var y = x.split(\"/\"); return y[y.length - (x.slice(-1) == \"/\" ? 2 : 1)]; });\n\tvar k/*:boolean*/ = false;\n\tif(path.charCodeAt(0) === 47 /* \"/\" */) { k = true; path = UCFullPaths[0].slice(0, -1) + path; }\n\telse k = path.indexOf(\"/\") !== -1;\n\tvar UCPath/*:string*/ = path.toUpperCase();\n\tvar w/*:number*/ = k === true ? UCFullPaths.indexOf(UCPath) : UCPaths.indexOf(UCPath);\n\tif(w !== -1) return cfb.FileIndex[w];\n\n\tvar m = !UCPath.match(chr1);\n\tUCPath = UCPath.replace(chr0,'');\n\tif(m) UCPath = UCPath.replace(chr1,'!');\n\tfor(w = 0; w < UCFullPaths.length; ++w) {\n\t\tif((m ? UCFullPaths[w].replace(chr1,'!') : UCFullPaths[w]).replace(chr0,'') == UCPath) return cfb.FileIndex[w];\n\t\tif((m ? UCPaths[w].replace(chr1,'!') : UCPaths[w]).replace(chr0,'') == UCPath) return cfb.FileIndex[w];\n\t}\n\treturn null;\n}\n/** CFB Constants */\nvar MSSZ = 64; /* Mini Sector Size = 1<<6 */\n//var MSCSZ = 4096; /* Mini Stream Cutoff Size */\n/* 2.1 Compound File Sector Numbers and Types */\nvar ENDOFCHAIN = -2;\n/* 2.2 Compound File Header */\nvar HEADER_SIGNATURE = 'd0cf11e0a1b11ae1';\nvar HEADER_SIG = [0xD0, 0xCF, 0x11, 0xE0, 0xA1, 0xB1, 0x1A, 0xE1];\nvar HEADER_CLSID = '00000000000000000000000000000000';\nvar consts = {\n\t/* 2.1 Compund File Sector Numbers and Types */\n\tMAXREGSECT: -6,\n\tDIFSECT: -4,\n\tFATSECT: -3,\n\tENDOFCHAIN: ENDOFCHAIN,\n\tFREESECT: -1,\n\t/* 2.2 Compound File Header */\n\tHEADER_SIGNATURE: HEADER_SIGNATURE,\n\tHEADER_MINOR_VERSION: '3e00',\n\tMAXREGSID: -6,\n\tNOSTREAM: -1,\n\tHEADER_CLSID: HEADER_CLSID,\n\t/* 2.6.1 Compound File Directory Entry */\n\tEntryTypes: ['unknown','storage','stream','lockbytes','property','root']\n};\n\nfunction write_file(cfb/*:CFBContainer*/, filename/*:string*/, options/*:CFBWriteOpts*/)/*:void*/ {\n\tget_fs();\n\tvar o = _write(cfb, options);\n\t/*:: if(typeof Buffer == 'undefined' || !Buffer.isBuffer(o) || !(o instanceof Buffer)) throw new Error(\"unreachable\"); */\n\tfs.writeFileSync(filename, o);\n}\n\nfunction a2s(o/*:RawBytes*/)/*:string*/ {\n\tvar out = new Array(o.length);\n\tfor(var i = 0; i < o.length; ++i) out[i] = String.fromCharCode(o[i]);\n\treturn out.join(\"\");\n}\n\nfunction write(cfb/*:CFBContainer*/, options/*:CFBWriteOpts*/)/*:RawBytes|string*/ {\n\tvar o = _write(cfb, options);\n\tswitch(options && options.type || \"buffer\") {\n\t\tcase \"file\": get_fs(); fs.writeFileSync(options.filename, (o/*:any*/)); return o;\n\t\tcase \"binary\": return typeof o == \"string\" ? o : a2s(o);\n\t\tcase \"base64\": return Base64_encode(typeof o == \"string\" ? o : a2s(o));\n\t\tcase \"buffer\": if(has_buf) return Buffer.isBuffer(o) ? o : Buffer_from(o);\n\t\t\t/* falls through */\n\t\tcase \"array\": return typeof o == \"string\" ? s2a(o) : o;\n\t}\n\treturn o;\n}\n/* node < 8.1 zlib does not expose bytesRead, so default to pure JS */\nvar _zlib;\nfunction use_zlib(zlib) { try {\n\tvar InflateRaw = zlib.InflateRaw;\n\tvar InflRaw = new InflateRaw();\n\tInflRaw._processChunk(new Uint8Array([3, 0]), InflRaw._finishFlushFlag);\n\tif(InflRaw.bytesRead) _zlib = zlib;\n\telse throw new Error(\"zlib does not expose bytesRead\");\n} catch(e) {console.error(\"cannot use native zlib: \" + (e.message || e)); } }\n\nfunction _inflateRawSync(payload, usz) {\n\tif(!_zlib) return _inflate(payload, usz);\n\tvar InflateRaw = _zlib.InflateRaw;\n\tvar InflRaw = new InflateRaw();\n\tvar out = InflRaw._processChunk(payload.slice(payload.l), InflRaw._finishFlushFlag);\n\tpayload.l += InflRaw.bytesRead;\n\treturn out;\n}\n\nfunction _deflateRawSync(payload) {\n\treturn _zlib ? _zlib.deflateRawSync(payload) : _deflate(payload);\n}\nvar CLEN_ORDER = [ 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 ];\n\n/* LEN_ID = [ 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285 ]; */\nvar LEN_LN = [ 3, 4, 5, 6, 7, 8, 9, 10, 11, 13 , 15, 17, 19, 23, 27, 31, 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258 ];\n\n/* DST_ID = [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 ]; */\nvar DST_LN = [ 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577 ];\n\nfunction bit_swap_8(n) { var t = (((((n<<1)|(n<<11)) & 0x22110) | (((n<<5)|(n<<15)) & 0x88440))); return ((t>>16) | (t>>8) |t)&0xFF; }\n\nvar use_typed_arrays = typeof Uint8Array !== 'undefined';\n\nvar bitswap8 = use_typed_arrays ? new Uint8Array(1<<8) : [];\nfor(var q = 0; q < (1<<8); ++q) bitswap8[q] = bit_swap_8(q);\n\nfunction bit_swap_n(n, b) {\n\tvar rev = bitswap8[n & 0xFF];\n\tif(b <= 8) return rev >>> (8-b);\n\trev = (rev << 8) | bitswap8[(n>>8)&0xFF];\n\tif(b <= 16) return rev >>> (16-b);\n\trev = (rev << 8) | bitswap8[(n>>16)&0xFF];\n\treturn rev >>> (24-b);\n}\n\n/* helpers for unaligned bit reads */\nfunction read_bits_2(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 6 ? 0 : buf[h+1]<<8))>>>w)& 0x03; }\nfunction read_bits_3(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 5 ? 0 : buf[h+1]<<8))>>>w)& 0x07; }\nfunction read_bits_4(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 4 ? 0 : buf[h+1]<<8))>>>w)& 0x0F; }\nfunction read_bits_5(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 3 ? 0 : buf[h+1]<<8))>>>w)& 0x1F; }\nfunction read_bits_7(buf, bl) { var w = (bl&7), h = (bl>>>3); return ((buf[h]|(w <= 1 ? 0 : buf[h+1]<<8))>>>w)& 0x7F; }\n\n/* works up to n = 3 * 8 + 1 = 25 */\nfunction read_bits_n(buf, bl, n) {\n\tvar w = (bl&7), h = (bl>>>3), f = ((1<<n)-1);\n\tvar v = buf[h] >>> w;\n\tif(n < 8 - w) return v & f;\n\tv |= buf[h+1]<<(8-w);\n\tif(n < 16 - w) return v & f;\n\tv |= buf[h+2]<<(16-w);\n\tif(n < 24 - w) return v & f;\n\tv |= buf[h+3]<<(24-w);\n\treturn v & f;\n}\n\n/* helpers for unaligned bit writes */\nfunction write_bits_3(buf, bl, v) { var w = bl & 7, h = bl >>> 3;\n\tif(w <= 5) buf[h] |= (v & 7) << w;\n\telse {\n\t\tbuf[h] |= (v << w) & 0xFF;\n\t\tbuf[h+1] = (v&7) >> (8-w);\n\t}\n\treturn bl + 3;\n}\n\nfunction write_bits_1(buf, bl, v) {\n\tvar w = bl & 7, h = bl >>> 3;\n\tv = (v&1) << w;\n\tbuf[h] |= v;\n\treturn bl + 1;\n}\nfunction write_bits_8(buf, bl, v) {\n\tvar w = bl & 7, h = bl >>> 3;\n\tv <<= w;\n\tbuf[h] |= v & 0xFF; v >>>= 8;\n\tbuf[h+1] = v;\n\treturn bl + 8;\n}\nfunction write_bits_16(buf, bl, v) {\n\tvar w = bl & 7, h = bl >>> 3;\n\tv <<= w;\n\tbuf[h] |= v & 0xFF; v >>>= 8;\n\tbuf[h+1] = v & 0xFF;\n\tbuf[h+2] = v >>> 8;\n\treturn bl + 16;\n}\n\n/* until ArrayBuffer#realloc is a thing, fake a realloc */\nfunction realloc(b, sz/*:number*/) {\n\tvar L = b.length, M = 2*L > sz ? 2*L : sz + 5, i = 0;\n\tif(L >= sz) return b;\n\tif(has_buf) {\n\t\tvar o = new_unsafe_buf(M);\n\t\t// $FlowIgnore\n\t\tif(b.copy) b.copy(o);\n\t\telse for(; i < b.length; ++i) o[i] = b[i];\n\t\treturn o;\n\t} else if(use_typed_arrays) {\n\t\tvar a = new Uint8Array(M);\n\t\tif(a.set) a.set(b);\n\t\telse for(; i < L; ++i) a[i] = b[i];\n\t\treturn a;\n\t}\n\tb.length = M;\n\treturn b;\n}\n\n/* zero-filled arrays for older browsers */\nfunction zero_fill_array(n) {\n\tvar o = new Array(n);\n\tfor(var i = 0; i < n; ++i) o[i] = 0;\n\treturn o;\n}\n\n/* build tree (used for literals and lengths) */\nfunction build_tree(clens, cmap, MAX/*:number*/)/*:number*/ {\n\tvar maxlen = 1, w = 0, i = 0, j = 0, ccode = 0, L = clens.length;\n\n\tvar bl_count = use_typed_arrays ? new Uint16Array(32) : zero_fill_array(32);\n\tfor(i = 0; i < 32; ++i) bl_count[i] = 0;\n\n\tfor(i = L; i < MAX; ++i) clens[i] = 0;\n\tL = clens.length;\n\n\tvar ctree = use_typed_arrays ? new Uint16Array(L) : zero_fill_array(L); // []\n\n\t/* build code tree */\n\tfor(i = 0; i < L; ++i) {\n\t\tbl_count[(w = clens[i])]++;\n\t\tif(maxlen < w) maxlen = w;\n\t\tctree[i] = 0;\n\t}\n\tbl_count[0] = 0;\n\tfor(i = 1; i <= maxlen; ++i) bl_count[i+16] = (ccode = (ccode + bl_count[i-1])<<1);\n\tfor(i = 0; i < L; ++i) {\n\t\tccode = clens[i];\n\t\tif(ccode != 0) ctree[i] = bl_count[ccode+16]++;\n\t}\n\n\t/* cmap[maxlen + 4 bits] = (off&15) + (lit<<4) reverse mapping */\n\tvar cleni = 0;\n\tfor(i = 0; i < L; ++i) {\n\t\tcleni = clens[i];\n\t\tif(cleni != 0) {\n\t\t\tccode = bit_swap_n(ctree[i], maxlen)>>(maxlen-cleni);\n\t\t\tfor(j = (1<<(maxlen + 4 - cleni)) - 1; j>=0; --j)\n\t\t\t\tcmap[ccode|(j<<cleni)] = (cleni&15) | (i<<4);\n\t\t}\n\t}\n\treturn maxlen;\n}\n\n/* Fixed Huffman */\nvar fix_lmap = use_typed_arrays ? new Uint16Array(512) : zero_fill_array(512);\nvar fix_dmap = use_typed_arrays ? new Uint16Array(32) : zero_fill_array(32);\nif(!use_typed_arrays) {\n\tfor(var i = 0; i < 512; ++i) fix_lmap[i] = 0;\n\tfor(i = 0; i < 32; ++i) fix_dmap[i] = 0;\n}\n(function() {\n\tvar dlens/*:Array<number>*/ = [];\n\tvar i = 0;\n\tfor(;i<32; i++) dlens.push(5);\n\tbuild_tree(dlens, fix_dmap, 32);\n\n\tvar clens/*:Array<number>*/ = [];\n\ti = 0;\n\tfor(; i<=143; i++) clens.push(8);\n\tfor(; i<=255; i++) clens.push(9);\n\tfor(; i<=279; i++) clens.push(7);\n\tfor(; i<=287; i++) clens.push(8);\n\tbuild_tree(clens, fix_lmap, 288);\n})();var _deflateRaw = /*#__PURE__*/(function _deflateRawIIFE() {\n\tvar DST_LN_RE = use_typed_arrays ? new Uint8Array(0x8000) : [];\n\tvar j = 0, k = 0;\n\tfor(; j < DST_LN.length - 1; ++j) {\n\t\tfor(; k < DST_LN[j+1]; ++k) DST_LN_RE[k] = j;\n\t}\n\tfor(;k < 32768; ++k) DST_LN_RE[k] = 29;\n\n\tvar LEN_LN_RE = use_typed_arrays ? new Uint8Array(0x103) : [];\n\tfor(j = 0, k = 0; j < LEN_LN.length - 1; ++j) {\n\t\tfor(; k < LEN_LN[j+1]; ++k) LEN_LN_RE[k] = j;\n\t}\n\n\tfunction write_stored(data, out) {\n\t\tvar boff = 0;\n\t\twhile(boff < data.length) {\n\t\t\tvar L = Math.min(0xFFFF, data.length - boff);\n\t\t\tvar h = boff + L == data.length;\n\t\t\tout.write_shift(1, +h);\n\t\t\tout.write_shift(2, L);\n\t\t\tout.write_shift(2, (~L) & 0xFFFF);\n\t\t\twhile(L-- > 0) out[out.l++] = data[boff++];\n\t\t}\n\t\treturn out.l;\n\t}\n\n\t/* Fixed Huffman */\n\tfunction write_huff_fixed(data, out) {\n\t\tvar bl = 0;\n\t\tvar boff = 0;\n\t\tvar addrs = use_typed_arrays ? new Uint16Array(0x8000) : [];\n\t\twhile(boff < data.length) {\n\t\t\tvar L = /* data.length - boff; */ Math.min(0xFFFF, data.length - boff);\n\n\t\t\t/* write a stored block for short data */\n\t\t\tif(L < 10) {\n\t\t\t\tbl = write_bits_3(out, bl, +!!(boff + L == data.length)); // jshint ignore:line\n\t\t\t\tif(bl & 7) bl += 8 - (bl & 7);\n\t\t\t\tout.l = (bl / 8) | 0;\n\t\t\t\tout.write_shift(2, L);\n\t\t\t\tout.write_shift(2, (~L) & 0xFFFF);\n\t\t\t\twhile(L-- > 0) out[out.l++] = data[boff++];\n\t\t\t\tbl = out.l * 8;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tbl = write_bits_3(out, bl, +!!(boff + L == data.length) + 2); // jshint ignore:line\n\t\t\tvar hash = 0;\n\t\t\twhile(L-- > 0) {\n\t\t\t\tvar d = data[boff];\n\t\t\t\thash = ((hash << 5) ^ d) & 0x7FFF;\n\n\t\t\t\tvar match = -1, mlen = 0;\n\n\t\t\t\tif((match = addrs[hash])) {\n\t\t\t\t\tmatch |= boff & ~0x7FFF;\n\t\t\t\t\tif(match > boff) match -= 0x8000;\n\t\t\t\t\tif(match < boff) while(data[match + mlen] == data[boff + mlen] && mlen < 250) ++mlen;\n\t\t\t\t}\n\n\t\t\t\tif(mlen > 2) {\n\t\t\t\t\t/* Copy Token */\n\t\t\t\t\td = LEN_LN_RE[mlen];\n\t\t\t\t\tif(d <= 22) bl = write_bits_8(out, bl, bitswap8[d+1]>>1) - 1;\n\t\t\t\t\telse {\n\t\t\t\t\t\twrite_bits_8(out, bl, 3);\n\t\t\t\t\t\tbl += 5;\n\t\t\t\t\t\twrite_bits_8(out, bl, bitswap8[d-23]>>5);\n\t\t\t\t\t\tbl += 3;\n\t\t\t\t\t}\n\t\t\t\t\tvar len_eb = (d < 8) ? 0 : ((d - 4)>>2);\n\t\t\t\t\tif(len_eb > 0) {\n\t\t\t\t\t\twrite_bits_16(out, bl, mlen - LEN_LN[d]);\n\t\t\t\t\t\tbl += len_eb;\n\t\t\t\t\t}\n\n\t\t\t\t\td = DST_LN_RE[boff - match];\n\t\t\t\t\tbl = write_bits_8(out, bl, bitswap8[d]>>3);\n\t\t\t\t\tbl -= 3;\n\n\t\t\t\t\tvar dst_eb = d < 4 ? 0 : (d-2)>>1;\n\t\t\t\t\tif(dst_eb > 0) {\n\t\t\t\t\t\twrite_bits_16(out, bl, boff - match - DST_LN[d]);\n\t\t\t\t\t\tbl += dst_eb;\n\t\t\t\t\t}\n\t\t\t\t\tfor(var q = 0; q < mlen; ++q) {\n\t\t\t\t\t\taddrs[hash] = boff & 0x7FFF;\n\t\t\t\t\t\thash = ((hash << 5) ^ data[boff]) & 0x7FFF;\n\t\t\t\t\t\t++boff;\n\t\t\t\t\t}\n\t\t\t\t\tL-= mlen - 1;\n\t\t\t\t} else {\n\t\t\t\t\t/* Literal Token */\n\t\t\t\t\tif(d <= 143) d = d + 48;\n\t\t\t\t\telse bl = write_bits_1(out, bl, 1);\n\t\t\t\t\tbl = write_bits_8(out, bl, bitswap8[d]);\n\t\t\t\t\taddrs[hash] = boff & 0x7FFF;\n\t\t\t\t\t++boff;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tbl = write_bits_8(out, bl, 0) - 1;\n\t\t}\n\t\tout.l = ((bl + 7)/8)|0;\n\t\treturn out.l;\n\t}\n\treturn function _deflateRaw(data, out) {\n\t\tif(data.length < 8) return write_stored(data, out);\n\t\treturn write_huff_fixed(data, out);\n\t};\n})();\n\nfunction _deflate(data) {\n\tvar buf = new_buf(50+Math.floor(data.length*1.1));\n\tvar off = _deflateRaw(data, buf);\n\treturn buf.slice(0, off);\n}\n/* modified inflate function also moves original read head */\n\nvar dyn_lmap = use_typed_arrays ? new Uint16Array(32768) : zero_fill_array(32768);\nvar dyn_dmap = use_typed_arrays ? new Uint16Array(32768) : zero_fill_array(32768);\nvar dyn_cmap = use_typed_arrays ? new Uint16Array(128) : zero_fill_array(128);\nvar dyn_len_1 = 1, dyn_len_2 = 1;\n\n/* 5.5.3 Expanding Huffman Codes */\nfunction dyn(data, boff/*:number*/) {\n\t/* nomenclature from RFC1951 refers to bit values; these are offset by the implicit constant */\n\tvar _HLIT = read_bits_5(data, boff) + 257; boff += 5;\n\tvar _HDIST = read_bits_5(data, boff) + 1; boff += 5;\n\tvar _HCLEN = read_bits_4(data, boff) + 4; boff += 4;\n\tvar w = 0;\n\n\t/* grab and store code lengths */\n\tvar clens = use_typed_arrays ? new Uint8Array(19) : zero_fill_array(19);\n\tvar ctree = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ];\n\tvar maxlen = 1;\n\tvar bl_count = use_typed_arrays ? new Uint8Array(8) : zero_fill_array(8);\n\tvar next_code = use_typed_arrays ? new Uint8Array(8) : zero_fill_array(8);\n\tvar L = clens.length; /* 19 */\n\tfor(var i = 0; i < _HCLEN; ++i) {\n\t\tclens[CLEN_ORDER[i]] = w = read_bits_3(data, boff);\n\t\tif(maxlen < w) maxlen = w;\n\t\tbl_count[w]++;\n\t\tboff += 3;\n\t}\n\n\t/* build code tree */\n\tvar ccode = 0;\n\tbl_count[0] = 0;\n\tfor(i = 1; i <= maxlen; ++i) next_code[i] = ccode = (ccode + bl_count[i-1])<<1;\n\tfor(i = 0; i < L; ++i) if((ccode = clens[i]) != 0) ctree[i] = next_code[ccode]++;\n\t/* cmap[7 bits from stream] = (off&7) + (lit<<3) */\n\tvar cleni = 0;\n\tfor(i = 0; i < L; ++i) {\n\t\tcleni = clens[i];\n\t\tif(cleni != 0) {\n\t\t\tccode = bitswap8[ctree[i]]>>(8-cleni);\n\t\t\tfor(var j = (1<<(7-cleni))-1; j>=0; --j) dyn_cmap[ccode|(j<<cleni)] = (cleni&7) | (i<<3);\n\t\t}\n\t}\n\n\t/* read literal and dist codes at once */\n\tvar hcodes/*:Array<number>*/ = [];\n\tmaxlen = 1;\n\tfor(; hcodes.length < _HLIT + _HDIST;) {\n\t\tccode = dyn_cmap[read_bits_7(data, boff)];\n\t\tboff += ccode & 7;\n\t\tswitch((ccode >>>= 3)) {\n\t\t\tcase 16:\n\t\t\t\tw = 3 + read_bits_2(data, boff); boff += 2;\n\t\t\t\tccode = hcodes[hcodes.length - 1];\n\t\t\t\twhile(w-- > 0) hcodes.push(ccode);\n\t\t\t\tbreak;\n\t\t\tcase 17:\n\t\t\t\tw = 3 + read_bits_3(data, boff); boff += 3;\n\t\t\t\twhile(w-- > 0) hcodes.push(0);\n\t\t\t\tbreak;\n\t\t\tcase 18:\n\t\t\t\tw = 11 + read_bits_7(data, boff); boff += 7;\n\t\t\t\twhile(w -- > 0) hcodes.push(0);\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\thcodes.push(ccode);\n\t\t\t\tif(maxlen < ccode) maxlen = ccode;\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\t/* build literal / length trees */\n\tvar h1 = hcodes.slice(0, _HLIT), h2 = hcodes.slice(_HLIT);\n\tfor(i = _HLIT; i < 286; ++i) h1[i] = 0;\n\tfor(i = _HDIST; i < 30; ++i) h2[i] = 0;\n\tdyn_len_1 = build_tree(h1, dyn_lmap, 286);\n\tdyn_len_2 = build_tree(h2, dyn_dmap, 30);\n\treturn boff;\n}\n\n/* return [ data, bytesRead ] */\nfunction inflate(data, usz/*:number*/) {\n\t/* shortcircuit for empty buffer [0x03, 0x00] */\n\tif(data[0] == 3 && !(data[1] & 0x3)) { return [new_raw_buf(usz), 2]; }\n\n\t/* bit offset */\n\tvar boff = 0;\n\n\t/* header includes final bit and type bits */\n\tvar header = 0;\n\n\tvar outbuf = new_unsafe_buf(usz ? usz : (1<<18));\n\tvar woff = 0;\n\tvar OL = outbuf.length>>>0;\n\tvar max_len_1 = 0, max_len_2 = 0;\n\n\twhile((header&1) == 0) {\n\t\theader = read_bits_3(data, boff); boff += 3;\n\t\tif((header >>> 1) == 0) {\n\t\t\t/* Stored block */\n\t\t\tif(boff & 7) boff += 8 - (boff&7);\n\t\t\t/* 2 bytes sz, 2 bytes bit inverse */\n\t\t\tvar sz = data[boff>>>3] | data[(boff>>>3)+1]<<8;\n\t\t\tboff += 32;\n\t\t\t/* push sz bytes */\n\t\t\tif(sz > 0) {\n\t\t\t\tif(!usz && OL < woff + sz) { outbuf = realloc(outbuf, woff + sz); OL = outbuf.length; }\n\t\t\t\twhile(sz-- > 0) { outbuf[woff++] = data[boff>>>3]; boff += 8; }\n\t\t\t}\n\t\t\tcontinue;\n\t\t} else if((header >> 1) == 1) {\n\t\t\t/* Fixed Huffman */\n\t\t\tmax_len_1 = 9; max_len_2 = 5;\n\t\t} else {\n\t\t\t/* Dynamic Huffman */\n\t\t\tboff = dyn(data, boff);\n\t\t\tmax_len_1 = dyn_len_1; max_len_2 = dyn_len_2;\n\t\t}\n\t\tfor(;;) { // while(true) is apparently out of vogue in modern JS circles\n\t\t\tif(!usz && (OL < woff + 32767)) { outbuf = realloc(outbuf, woff + 32767); OL = outbuf.length; }\n\t\t\t/* ingest code and move read head */\n\t\t\tvar bits = read_bits_n(data, boff, max_len_1);\n\t\t\tvar code = (header>>>1) == 1 ? fix_lmap[bits] : dyn_lmap[bits];\n\t\t\tboff += code & 15; code >>>= 4;\n\t\t\t/* 0-255 are literals, 256 is end of block token, 257+ are copy tokens */\n\t\t\tif(((code>>>8)&0xFF) === 0) outbuf[woff++] = code;\n\t\t\telse if(code == 256) break;\n\t\t\telse {\n\t\t\t\tcode -= 257;\n\t\t\t\tvar len_eb = (code < 8) ? 0 : ((code-4)>>2); if(len_eb > 5) len_eb = 0;\n\t\t\t\tvar tgt = woff + LEN_LN[code];\n\t\t\t\t/* length extra bits */\n\t\t\t\tif(len_eb > 0) {\n\t\t\t\t\ttgt += read_bits_n(data, boff, len_eb);\n\t\t\t\t\tboff += len_eb;\n\t\t\t\t}\n\n\t\t\t\t/* dist code */\n\t\t\t\tbits = read_bits_n(data, boff, max_len_2);\n\t\t\t\tcode = (header>>>1) == 1 ? fix_dmap[bits] : dyn_dmap[bits];\n\t\t\t\tboff += code & 15; code >>>= 4;\n\t\t\t\tvar dst_eb = (code < 4 ? 0 : (code-2)>>1);\n\t\t\t\tvar dst = DST_LN[code];\n\t\t\t\t/* dist extra bits */\n\t\t\t\tif(dst_eb > 0) {\n\t\t\t\t\tdst += read_bits_n(data, boff, dst_eb);\n\t\t\t\t\tboff += dst_eb;\n\t\t\t\t}\n\n\t\t\t\t/* in the common case, manual byte copy is faster than TA set / Buffer copy */\n\t\t\t\tif(!usz && OL < tgt) { outbuf = realloc(outbuf, tgt + 100); OL = outbuf.length; }\n\t\t\t\twhile(woff < tgt) { outbuf[woff] = outbuf[woff - dst]; ++woff; }\n\t\t\t}\n\t\t}\n\t}\n\tif(usz) return [outbuf, (boff+7)>>>3];\n\treturn [outbuf.slice(0, woff), (boff+7)>>>3];\n}\n\nfunction _inflate(payload, usz) {\n\tvar data = payload.slice(payload.l||0);\n\tvar out = inflate(data, usz);\n\tpayload.l += out[1];\n\treturn out[0];\n}\n\nfunction warn_or_throw(wrn, msg) {\n\tif(wrn) { if(typeof console !== 'undefined') console.error(msg); }\n\telse throw new Error(msg);\n}\n\nfunction parse_zip(file/*:RawBytes*/, options/*:CFBReadOpts*/)/*:CFBContainer*/ {\n\tvar blob/*:CFBlob*/ = /*::(*/file/*:: :any)*/;\n\tprep_blob(blob, 0);\n\n\tvar FileIndex/*:CFBFileIndex*/ = [], FullPaths/*:Array<string>*/ = [];\n\tvar o = {\n\t\tFileIndex: FileIndex,\n\t\tFullPaths: FullPaths\n\t};\n\tinit_cfb(o, { root: options.root });\n\n\t/* find end of central directory, start just after signature */\n\tvar i = blob.length - 4;\n\twhile((blob[i] != 0x50 || blob[i+1] != 0x4b || blob[i+2] != 0x05 || blob[i+3] != 0x06) && i >= 0) --i;\n\tblob.l = i + 4;\n\n\t/* parse end of central directory */\n\tblob.l += 4;\n\tvar fcnt = blob.read_shift(2);\n\tblob.l += 6;\n\tvar start_cd = blob.read_shift(4);\n\n\t/* parse central directory */\n\tblob.l = start_cd;\n\n\tfor(i = 0; i < fcnt; ++i) {\n\t\t/* trust local file header instead of CD entry */\n\t\tblob.l += 20;\n\t\tvar csz = blob.read_shift(4);\n\t\tvar usz = blob.read_shift(4);\n\t\tvar namelen = blob.read_shift(2);\n\t\tvar efsz = blob.read_shift(2);\n\t\tvar fcsz = blob.read_shift(2);\n\t\tblob.l += 8;\n\t\tvar offset = blob.read_shift(4);\n\t\tvar EF = parse_extra_field(/*::(*/blob.slice(blob.l+namelen, blob.l+namelen+efsz)/*:: :any)*/);\n\t\tblob.l += namelen + efsz + fcsz;\n\n\t\tvar L = blob.l;\n\t\tblob.l = offset + 4;\n\t\t/* ZIP64 lengths */\n\t\tif(EF && EF[0x0001]) {\n\t\t\tif((EF[0x0001]||{}).usz) usz = EF[0x0001].usz;\n\t\t\tif((EF[0x0001]||{}).csz) csz = EF[0x0001].csz;\n\t\t}\n\t\tparse_local_file(blob, csz, usz, o, EF);\n\t\tblob.l = L;\n\t}\n\n\treturn o;\n}\n\n\n/* head starts just after local file header signature */\nfunction parse_local_file(blob/*:CFBlob*/, csz/*:number*/, usz/*:number*/, o/*:CFBContainer*/, EF) {\n\t/* [local file header] */\n\tblob.l += 2;\n\tvar flags = blob.read_shift(2);\n\tvar meth = blob.read_shift(2);\n\tvar date = parse_dos_date(blob);\n\n\tif(flags & 0x2041) throw new Error(\"Unsupported ZIP encryption\");\n\tvar crc32 = blob.read_shift(4);\n\tvar _csz = blob.read_shift(4);\n\tvar _usz = blob.read_shift(4);\n\n\tvar namelen = blob.read_shift(2);\n\tvar efsz = blob.read_shift(2);\n\n\t// TODO: flags & (1<<11) // UTF8\n\tvar name = \"\"; for(var i = 0; i < namelen; ++i) name += String.fromCharCode(blob[blob.l++]);\n\tif(efsz) {\n\t\tvar ef = parse_extra_field(/*::(*/blob.slice(blob.l, blob.l + efsz)/*:: :any)*/);\n\t\tif((ef[0x5455]||{}).mt) date = ef[0x5455].mt;\n\t\tif((ef[0x0001]||{}).usz) _usz = ef[0x0001].usz;\n\t\tif((ef[0x0001]||{}).csz) _csz = ef[0x0001].csz;\n\t\tif(EF) {\n\t\t\tif((EF[0x5455]||{}).mt) date = EF[0x5455].mt;\n\t\t\tif((EF[0x0001]||{}).usz) _usz = ef[0x0001].usz;\n\t\t\tif((EF[0x0001]||{}).csz) _csz = ef[0x0001].csz;\n\t\t}\n\t}\n\tblob.l += efsz;\n\n\t/* [encryption header] */\n\n\t/* [file data] */\n\tvar data = blob.slice(blob.l, blob.l + _csz);\n\tswitch(meth) {\n\t\tcase 8: data = _inflateRawSync(blob, _usz); break;\n\t\tcase 0: break; // TODO: scan for magic number\n\t\tdefault: throw new Error(\"Unsupported ZIP Compression method \" + meth);\n\t}\n\n\t/* [data descriptor] */\n\tvar wrn = false;\n\tif(flags & 8) {\n\t\tcrc32 = blob.read_shift(4);\n\t\tif(crc32 == 0x08074b50) { crc32 = blob.read_shift(4); wrn = true; }\n\t\t_csz = blob.read_shift(4);\n\t\t_usz = blob.read_shift(4);\n\t}\n\n\tif(_csz != csz) warn_or_throw(wrn, \"Bad compressed size: \" + csz + \" != \" + _csz);\n\tif(_usz != usz) warn_or_throw(wrn, \"Bad uncompressed size: \" + usz + \" != \" + _usz);\n\t//var _crc32 = CRC32.buf(data, 0);\n\t//if((crc32>>0) != (_crc32>>0)) warn_or_throw(wrn, \"Bad CRC32 checksum: \" + crc32 + \" != \" + _crc32);\n\tcfb_add(o, name, data, {unsafe: true, mt: date});\n}\nfunction write_zip(cfb/*:CFBContainer*/, options/*:CFBWriteOpts*/)/*:RawBytes*/ {\n\tvar _opts = options || {};\n\tvar out = [], cdirs = [];\n\tvar o/*:CFBlob*/ = new_buf(1);\n\tvar method = (_opts.compression ? 8 : 0), flags = 0;\n\tvar desc = false;\n\tif(desc) flags |= 8;\n\tvar i = 0, j = 0;\n\n\tvar start_cd = 0, fcnt = 0;\n\tvar root = cfb.FullPaths[0], fp = root, fi = cfb.FileIndex[0];\n\tvar crcs = [];\n\tvar sz_cd = 0;\n\n\tfor(i = 1; i < cfb.FullPaths.length; ++i) {\n\t\tfp = cfb.FullPaths[i].slice(root.length); fi = cfb.FileIndex[i];\n\t\tif(!fi.size || !fi.content || fp == \"\\u0001Sh33tJ5\") continue;\n\t\tvar start = start_cd;\n\n\t\t/* TODO: CP437 filename */\n\t\tvar namebuf = new_buf(fp.length);\n\t\tfor(j = 0; j < fp.length; ++j) namebuf.write_shift(1, fp.charCodeAt(j) & 0x7F);\n\t\tnamebuf = namebuf.slice(0, namebuf.l);\n\t\tcrcs[fcnt] = typeof fi.content == \"string\" ? CRC32.bstr(fi.content, 0) : CRC32.buf(/*::((*/fi.content/*::||[]):any)*/, 0);\n\n\t\tvar outbuf = typeof fi.content == \"string\" ? s2a(fi.content) : fi.content/*::||[]*/;\n\t\tif(method == 8) outbuf = _deflateRawSync(outbuf);\n\n\t\t/* local file header */\n\t\to = new_buf(30);\n\t\to.write_shift(4, 0x04034b50);\n\t\to.write_shift(2, 20);\n\t\to.write_shift(2, flags);\n\t\to.write_shift(2, method);\n\t\t/* TODO: last mod file time/date */\n\t\tif(fi.mt) write_dos_date(o, fi.mt);\n\t\telse o.write_shift(4, 0);\n\t\to.write_shift(-4, (flags & 8) ? 0 : crcs[fcnt]);\n\t\to.write_shift(4, (flags & 8) ? 0 : outbuf.length);\n\t\to.write_shift(4, (flags & 8) ? 0 : /*::(*/fi.content/*::||[])*/.length);\n\t\to.write_shift(2, namebuf.length);\n\t\to.write_shift(2, 0);\n\n\t\tstart_cd += o.length;\n\t\tout.push(o);\n\t\tstart_cd += namebuf.length;\n\t\tout.push(namebuf);\n\n\t\t/* TODO: extra fields? */\n\n\t\t/* TODO: encryption header ? */\n\n\t\tstart_cd += outbuf.length;\n\t\tout.push(outbuf);\n\n\t\t/* data descriptor */\n\t\tif(flags & 8) {\n\t\t\to = new_buf(12);\n\t\t\to.write_shift(-4, crcs[fcnt]);\n\t\t\to.write_shift(4, outbuf.length);\n\t\t\to.write_shift(4, /*::(*/fi.content/*::||[])*/.length);\n\t\t\tstart_cd += o.l;\n\t\t\tout.push(o);\n\t\t}\n\n\t\t/* central directory */\n\t\to = new_buf(46);\n\t\to.write_shift(4, 0x02014b50);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 20);\n\t\to.write_shift(2, flags);\n\t\to.write_shift(2, method);\n\t\to.write_shift(4, 0); /* TODO: last mod file time/date */\n\t\to.write_shift(-4, crcs[fcnt]);\n\n\t\to.write_shift(4, outbuf.length);\n\t\to.write_shift(4, /*::(*/fi.content/*::||[])*/.length);\n\t\to.write_shift(2, namebuf.length);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(4, 0);\n\t\to.write_shift(4, start);\n\n\t\tsz_cd += o.l;\n\t\tcdirs.push(o);\n\t\tsz_cd += namebuf.length;\n\t\tcdirs.push(namebuf);\n\t\t++fcnt;\n\t}\n\n\t/* end of central directory */\n\to = new_buf(22);\n\to.write_shift(4, 0x06054b50);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, fcnt);\n\to.write_shift(2, fcnt);\n\to.write_shift(4, sz_cd);\n\to.write_shift(4, start_cd);\n\to.write_shift(2, 0);\n\n\treturn bconcat(([bconcat((out/*:any*/)), bconcat(cdirs), o]/*:any*/));\n}\nvar ContentTypeMap = ({\n\t\"htm\": \"text/html\",\n\t\"xml\": \"text/xml\",\n\n\t\"gif\": \"image/gif\",\n\t\"jpg\": \"image/jpeg\",\n\t\"png\": \"image/png\",\n\n\t\"mso\": \"application/x-mso\",\n\t\"thmx\": \"application/vnd.ms-officetheme\",\n\t\"sh33tj5\": \"application/octet-stream\"\n}/*:any*/);\n\nfunction get_content_type(fi/*:CFBEntry*/, fp/*:string*/)/*:string*/ {\n\tif(fi.ctype) return fi.ctype;\n\n\tvar ext = fi.name || \"\", m = ext.match(/\\.([^\\.]+)$/);\n\tif(m && ContentTypeMap[m[1]]) return ContentTypeMap[m[1]];\n\n\tif(fp) {\n\t\tm = (ext = fp).match(/[\\.\\\\]([^\\.\\\\])+$/);\n\t\tif(m && ContentTypeMap[m[1]]) return ContentTypeMap[m[1]];\n\t}\n\n\treturn \"application/octet-stream\";\n}\n\n/* 76 character chunks TODO: intertwine encoding */\nfunction write_base64_76(bstr/*:string*/)/*:string*/ {\n\tvar data = Base64_encode(bstr);\n\tvar o = [];\n\tfor(var i = 0; i < data.length; i+= 76) o.push(data.slice(i, i+76));\n\treturn o.join(\"\\r\\n\") + \"\\r\\n\";\n}\n\n/*\nRules for QP:\n\t- escape =## applies for all non-display characters and literal \"=\"\n\t- space or tab at end of line must be encoded\n\t- \\r\\n newlines can be preserved, but bare \\r and \\n must be escaped\n\t- lines must not exceed 76 characters, use soft breaks =\\r\\n\n\nTODO: Some files from word appear to write line extensions with bare equals:\n\n```\n<table class=3DMsoTableGrid border=3D1 cellspacing=3D0 cellpadding=3D0 width=\n=\"70%\"\n```\n*/\nfunction write_quoted_printable(text/*:string*/)/*:string*/ {\n\tvar encoded = text.replace(/[\\x00-\\x08\\x0B\\x0C\\x0E-\\x1F\\x7E-\\xFF=]/g, function(c) {\n\t\tvar w = c.charCodeAt(0).toString(16).toUpperCase();\n\t\treturn \"=\" + (w.length == 1 ? \"0\" + w : w);\n\t});\n\n\tencoded = encoded.replace(/ $/mg, \"=20\").replace(/\\t$/mg, \"=09\");\n\n\tif(encoded.charAt(0) == \"\\n\") encoded = \"=0D\" + encoded.slice(1);\n\tencoded = encoded.replace(/\\r(?!\\n)/mg, \"=0D\").replace(/\\n\\n/mg, \"\\n=0A\").replace(/([^\\r\\n])\\n/mg, \"$1=0A\");\n\n\tvar o/*:Array<string>*/ = [], split = encoded.split(\"\\r\\n\");\n\tfor(var si = 0; si < split.length; ++si) {\n\t\tvar str = split[si];\n\t\tif(str.length == 0) { o.push(\"\"); continue; }\n\t\tfor(var i = 0; i < str.length;) {\n\t\t\tvar end = 76;\n\t\t\tvar tmp = str.slice(i, i + end);\n\t\t\tif(tmp.charAt(end - 1) == \"=\") end --;\n\t\t\telse if(tmp.charAt(end - 2) == \"=\") end -= 2;\n\t\t\telse if(tmp.charAt(end - 3) == \"=\") end -= 3;\n\t\t\ttmp = str.slice(i, i + end);\n\t\t\ti += end;\n\t\t\tif(i < str.length) tmp += \"=\";\n\t\t\to.push(tmp);\n\t\t}\n\t}\n\n\treturn o.join(\"\\r\\n\");\n}\nfunction parse_quoted_printable(data/*:Array<string>*/)/*:RawBytes*/ {\n\tvar o = [];\n\n\t/* unify long lines */\n\tfor(var di = 0; di < data.length; ++di) {\n\t\tvar line = data[di];\n\t\twhile(di <= data.length && line.charAt(line.length - 1) == \"=\") line = line.slice(0, line.length - 1) + data[++di];\n\t\to.push(line);\n\t}\n\n\t/* decode */\n\tfor(var oi = 0; oi < o.length; ++oi) o[oi] = o[oi].replace(/[=][0-9A-Fa-f]{2}/g, function($$) { return String.fromCharCode(parseInt($$.slice(1), 16)); });\n\treturn s2a(o.join(\"\\r\\n\"));\n}\n\n\nfunction parse_mime(cfb/*:CFBContainer*/, data/*:Array<string>*/, root/*:string*/)/*:void*/ {\n\tvar fname = \"\", cte = \"\", ctype = \"\", fdata;\n\tvar di = 0;\n\tfor(;di < 10; ++di) {\n\t\tvar line = data[di];\n\t\tif(!line || line.match(/^\\s*$/)) break;\n\t\tvar m = line.match(/^(.*?):\\s*([^\\s].*)$/);\n\t\tif(m) switch(m[1].toLowerCase()) {\n\t\t\tcase \"content-location\": fname = m[2].trim(); break;\n\t\t\tcase \"content-type\": ctype = m[2].trim(); break;\n\t\t\tcase \"content-transfer-encoding\": cte = m[2].trim(); break;\n\t\t}\n\t}\n\t++di;\n\tswitch(cte.toLowerCase()) {\n\t\tcase 'base64': fdata = s2a(Base64_decode(data.slice(di).join(\"\"))); break;\n\t\tcase 'quoted-printable': fdata = parse_quoted_printable(data.slice(di)); break;\n\t\tdefault: throw new Error(\"Unsupported Content-Transfer-Encoding \" + cte);\n\t}\n\tvar file = cfb_add(cfb, fname.slice(root.length), fdata, {unsafe: true});\n\tif(ctype) file.ctype = ctype;\n}\n\nfunction parse_mad(file/*:RawBytes*/, options/*:CFBReadOpts*/)/*:CFBContainer*/ {\n\tif(a2s(file.slice(0,13)).toLowerCase() != \"mime-version:\") throw new Error(\"Unsupported MAD header\");\n\tvar root = (options && options.root || \"\");\n\t// $FlowIgnore\n\tvar data = (has_buf && Buffer.isBuffer(file) ? file.toString(\"binary\") : a2s(file)).split(\"\\r\\n\");\n\tvar di = 0, row = \"\";\n\n\t/* if root is not specified, scan for the common prefix */\n\tfor(di = 0; di < data.length; ++di) {\n\t\trow = data[di];\n\t\tif(!/^Content-Location:/i.test(row)) continue;\n\t\trow = row.slice(row.indexOf(\"file\"));\n\t\tif(!root) root = row.slice(0, row.lastIndexOf(\"/\") + 1);\n\t\tif(row.slice(0, root.length) == root) continue;\n\t\twhile(root.length > 0) {\n\t\t\troot = root.slice(0, root.length - 1);\n\t\t\troot = root.slice(0, root.lastIndexOf(\"/\") + 1);\n\t\t\tif(row.slice(0,root.length) == root) break;\n\t\t}\n\t}\n\n\tvar mboundary = (data[1] || \"\").match(/boundary=\"(.*?)\"/);\n\tif(!mboundary) throw new Error(\"MAD cannot find boundary\");\n\tvar boundary = \"--\" + (mboundary[1] || \"\");\n\n\tvar FileIndex/*:CFBFileIndex*/ = [], FullPaths/*:Array<string>*/ = [];\n\tvar o = {\n\t\tFileIndex: FileIndex,\n\t\tFullPaths: FullPaths\n\t};\n\tinit_cfb(o);\n\tvar start_di, fcnt = 0;\n\tfor(di = 0; di < data.length; ++di) {\n\t\tvar line = data[di];\n\t\tif(line !== boundary && line !== boundary + \"--\") continue;\n\t\tif(fcnt++) parse_mime(o, data.slice(start_di, di), root);\n\t\tstart_di = di;\n\t}\n\treturn o;\n}\n\nfunction write_mad(cfb/*:CFBContainer*/, options/*:CFBWriteOpts*/)/*:string*/ {\n\tvar opts = options || {};\n\tvar boundary = opts.boundary || \"SheetJS\";\n\tboundary = '------=' + boundary;\n\n\tvar out = [\n\t\t'MIME-Version: 1.0',\n\t\t'Content-Type: multipart/related; boundary=\"' + boundary.slice(2) + '\"',\n\t\t'',\n\t\t'',\n\t\t''\n\t];\n\n\tvar root = cfb.FullPaths[0], fp = root, fi = cfb.FileIndex[0];\n\tfor(var i = 1; i < cfb.FullPaths.length; ++i) {\n\t\tfp = cfb.FullPaths[i].slice(root.length);\n\t\tfi = cfb.FileIndex[i];\n\t\tif(!fi.size || !fi.content || fp == \"\\u0001Sh33tJ5\") continue;\n\n\t\t/* Normalize filename */\n\t\tfp = fp.replace(/[\\x00-\\x08\\x0B\\x0C\\x0E-\\x1F\\x7E-\\xFF]/g, function(c) {\n\t\t\treturn \"_x\" + c.charCodeAt(0).toString(16) + \"_\";\n\t\t}).replace(/[\\u0080-\\uFFFF]/g, function(u) {\n\t\t\treturn \"_u\" + u.charCodeAt(0).toString(16) + \"_\";\n\t\t});\n\n\t\t/* Extract content as binary string */\n\t\tvar ca = fi.content;\n\t\t// $FlowIgnore\n\t\tvar cstr = has_buf && Buffer.isBuffer(ca) ? ca.toString(\"binary\") : a2s(ca);\n\n\t\t/* 4/5 of first 1024 chars ascii -> quoted printable, else base64 */\n\t\tvar dispcnt = 0, L = Math.min(1024, cstr.length), cc = 0;\n\t\tfor(var csl = 0; csl <= L; ++csl) if((cc=cstr.charCodeAt(csl)) >= 0x20 && cc < 0x80) ++dispcnt;\n\t\tvar qp = dispcnt >= L * 4 / 5;\n\n\t\tout.push(boundary);\n\t\tout.push('Content-Location: ' + (opts.root || 'file:///C:/SheetJS/') + fp);\n\t\tout.push('Content-Transfer-Encoding: ' + (qp ? 'quoted-printable' : 'base64'));\n\t\tout.push('Content-Type: ' + get_content_type(fi, fp));\n\t\tout.push('');\n\n\t\tout.push(qp ? write_quoted_printable(cstr) : write_base64_76(cstr));\n\t}\n\tout.push(boundary + '--\\r\\n');\n\treturn out.join(\"\\r\\n\");\n}\nfunction cfb_new(opts/*:?any*/)/*:CFBContainer*/ {\n\tvar o/*:CFBContainer*/ = ({}/*:any*/);\n\tinit_cfb(o, opts);\n\treturn o;\n}\n\nfunction cfb_add(cfb/*:CFBContainer*/, name/*:string*/, content/*:?RawBytes*/, opts/*:?any*/)/*:CFBEntry*/ {\n\tvar unsafe = opts && opts.unsafe;\n\tif(!unsafe) init_cfb(cfb);\n\tvar file = !unsafe && CFB.find(cfb, name);\n\tif(!file) {\n\t\tvar fpath/*:string*/ = cfb.FullPaths[0];\n\t\tif(name.slice(0, fpath.length) == fpath) fpath = name;\n\t\telse {\n\t\t\tif(fpath.slice(-1) != \"/\") fpath += \"/\";\n\t\t\tfpath = (fpath + name).replace(\"//\",\"/\");\n\t\t}\n\t\tfile = ({name: filename(name), type: 2}/*:any*/);\n\t\tcfb.FileIndex.push(file);\n\t\tcfb.FullPaths.push(fpath);\n\t\tif(!unsafe) CFB.utils.cfb_gc(cfb);\n\t}\n\t/*:: if(!file) throw new Error(\"unreachable\"); */\n\tfile.content = (content/*:any*/);\n\tfile.size = content ? content.length : 0;\n\tif(opts) {\n\t\tif(opts.CLSID) file.clsid = opts.CLSID;\n\t\tif(opts.mt) file.mt = opts.mt;\n\t\tif(opts.ct) file.ct = opts.ct;\n\t}\n\treturn file;\n}\n\nfunction cfb_del(cfb/*:CFBContainer*/, name/*:string*/)/*:boolean*/ {\n\tinit_cfb(cfb);\n\tvar file = CFB.find(cfb, name);\n\tif(file) for(var j = 0; j < cfb.FileIndex.length; ++j) if(cfb.FileIndex[j] == file) {\n\t\tcfb.FileIndex.splice(j, 1);\n\t\tcfb.FullPaths.splice(j, 1);\n\t\treturn true;\n\t}\n\treturn false;\n}\n\nfunction cfb_mov(cfb/*:CFBContainer*/, old_name/*:string*/, new_name/*:string*/)/*:boolean*/ {\n\tinit_cfb(cfb);\n\tvar file = CFB.find(cfb, old_name);\n\tif(file) for(var j = 0; j < cfb.FileIndex.length; ++j) if(cfb.FileIndex[j] == file) {\n\t\tcfb.FileIndex[j].name = filename(new_name);\n\t\tcfb.FullPaths[j] = new_name;\n\t\treturn true;\n\t}\n\treturn false;\n}\n\nfunction cfb_gc(cfb/*:CFBContainer*/)/*:void*/ { rebuild_cfb(cfb, true); }\n\nexports.find = find;\nexports.read = read;\nexports.parse = parse;\nexports.write = write;\nexports.writeFile = write_file;\nexports.utils = {\n\tcfb_new: cfb_new,\n\tcfb_add: cfb_add,\n\tcfb_del: cfb_del,\n\tcfb_mov: cfb_mov,\n\tcfb_gc: cfb_gc,\n\tReadShift: ReadShift,\n\tCheckField: CheckField,\n\tprep_blob: prep_blob,\n\tbconcat: bconcat,\n\tuse_zlib: use_zlib,\n\t_deflateRaw: _deflate,\n\t_inflateRaw: _inflate,\n\tconsts: consts\n};\n\nreturn exports;\n})();\n\nvar _fs;\nfunction set_fs(fs) { _fs = fs; }\n\n/* normalize data for blob ctor */\nfunction blobify(data) {\n\tif(typeof data === \"string\") return s2ab(data);\n\tif(Array.isArray(data)) return a2u(data);\n\treturn data;\n}\n/* write or download file */\nfunction write_dl(fname/*:string*/, payload/*:any*/, enc/*:?string*/) {\n\t/*global IE_SaveFile, Blob, navigator, saveAs, document, File, chrome */\n\tif(typeof _fs !== 'undefined' && _fs.writeFileSync) return enc ? _fs.writeFileSync(fname, payload, enc) : _fs.writeFileSync(fname, payload);\n\tif(typeof Deno !== 'undefined') {\n\t\t/* in this spot, it's safe to assume typed arrays and TextEncoder/TextDecoder exist */\n\t\tif(enc && typeof payload == \"string\") switch(enc) {\n\t\t\tcase \"utf8\": payload = new TextEncoder(enc).encode(payload); break;\n\t\t\tcase \"binary\": payload = s2ab(payload); break;\n\t\t\t/* TODO: binary equivalent */\n\t\t\tdefault: throw new Error(\"Unsupported encoding \" + enc);\n\t\t}\n\t\treturn Deno.writeFileSync(fname, payload);\n\t}\n\tvar data = (enc == \"utf8\") ? utf8write(payload) : payload;\n\t/*:: declare var IE_SaveFile: any; */\n\tif(typeof IE_SaveFile !== 'undefined') return IE_SaveFile(data, fname);\n\tif(typeof Blob !== 'undefined') {\n\t\tvar blob = new Blob([blobify(data)], {type:\"application/octet-stream\"});\n\t\t/*:: declare var navigator: any; */\n\t\tif(typeof navigator !== 'undefined' && navigator.msSaveBlob) return navigator.msSaveBlob(blob, fname);\n\t\t/*:: declare var saveAs: any; */\n\t\tif(typeof saveAs !== 'undefined') return saveAs(blob, fname);\n\t\tif(typeof URL !== 'undefined' && typeof document !== 'undefined' && document.createElement && URL.createObjectURL) {\n\t\t\tvar url = URL.createObjectURL(blob);\n\t\t\t/*:: declare var chrome: any; */\n\t\t\tif(typeof chrome === 'object' && typeof (chrome.downloads||{}).download == \"function\") {\n\t\t\t\tif(URL.revokeObjectURL && typeof setTimeout !== 'undefined') setTimeout(function() { URL.revokeObjectURL(url); }, 60000);\n\t\t\t\treturn chrome.downloads.download({ url: url, filename: fname, saveAs: true});\n\t\t\t}\n\t\t\tvar a = document.createElement(\"a\");\n\t\t\tif(a.download != null) {\n\t\t\t\t/*:: if(document.body == null) throw new Error(\"unreachable\"); */\n\t\t\t\ta.download = fname; a.href = url; document.body.appendChild(a); a.click();\n\t\t\t\t/*:: if(document.body == null) throw new Error(\"unreachable\"); */ document.body.removeChild(a);\n\t\t\t\tif(URL.revokeObjectURL && typeof setTimeout !== 'undefined') setTimeout(function() { URL.revokeObjectURL(url); }, 60000);\n\t\t\t\treturn url;\n\t\t\t}\n\t\t}\n\t}\n\t// $FlowIgnore\n\tif(typeof $ !== 'undefined' && typeof File !== 'undefined' && typeof Folder !== 'undefined') try { // extendscript\n\t\t// $FlowIgnore\n\t\tvar out = File(fname); out.open(\"w\"); out.encoding = \"binary\";\n\t\tif(Array.isArray(payload)) payload = a2s(payload);\n\t\tout.write(payload); out.close(); return payload;\n\t} catch(e) { if(!e.message || !e.message.match(/onstruct/)) throw e; }\n\tthrow new Error(\"cannot save file \" + fname);\n}\n\n/* read binary data from file */\nfunction read_binary(path/*:string*/) {\n\tif(typeof _fs !== 'undefined') return _fs.readFileSync(path);\n\tif(typeof Deno !== 'undefined') return Deno.readFileSync(path);\n\t// $FlowIgnore\n\tif(typeof $ !== 'undefined' && typeof File !== 'undefined' && typeof Folder !== 'undefined') try { // extendscript\n\t\t// $FlowIgnore\n\t\tvar infile = File(path); infile.open(\"r\"); infile.encoding = \"binary\";\n\t\tvar data = infile.read(); infile.close();\n\t\treturn data;\n\t} catch(e) { if(!e.message || !e.message.match(/onstruct/)) throw e; }\n\tthrow new Error(\"Cannot access file \" + path);\n}\nfunction keys(o/*:any*/)/*:Array<any>*/ {\n\tvar ks = Object.keys(o), o2 = [];\n\tfor(var i = 0; i < ks.length; ++i) if(Object.prototype.hasOwnProperty.call(o, ks[i])) o2.push(ks[i]);\n\treturn o2;\n}\n\nfunction evert_key(obj/*:any*/, key/*:string*/)/*:EvertType*/ {\n\tvar o = ([]/*:any*/), K = keys(obj);\n\tfor(var i = 0; i !== K.length; ++i) if(o[obj[K[i]][key]] == null) o[obj[K[i]][key]] = K[i];\n\treturn o;\n}\n\nfunction evert(obj/*:any*/)/*:EvertType*/ {\n\tvar o = ([]/*:any*/), K = keys(obj);\n\tfor(var i = 0; i !== K.length; ++i) o[obj[K[i]]] = K[i];\n\treturn o;\n}\n\nfunction evert_num(obj/*:any*/)/*:EvertNumType*/ {\n\tvar o = ([]/*:any*/), K = keys(obj);\n\tfor(var i = 0; i !== K.length; ++i) o[obj[K[i]]] = parseInt(K[i],10);\n\treturn o;\n}\n\nfunction evert_arr(obj/*:any*/)/*:EvertArrType*/ {\n\tvar o/*:EvertArrType*/ = ([]/*:any*/), K = keys(obj);\n\tfor(var i = 0; i !== K.length; ++i) {\n\t\tif(o[obj[K[i]]] == null) o[obj[K[i]]] = [];\n\t\to[obj[K[i]]].push(K[i]);\n\t}\n\treturn o;\n}\n\nvar basedate = /*#__PURE__*/new Date(1899, 11, 30, 0, 0, 0); // 2209161600000\nfunction datenum(v/*:Date*/, date1904/*:?boolean*/)/*:number*/ {\n\tvar epoch = /*#__PURE__*/v.getTime();\n\tif(date1904) epoch -= 1462*24*60*60*1000;\n\tvar dnthresh = /*#__PURE__*/basedate.getTime() + (/*#__PURE__*/v.getTimezoneOffset() - /*#__PURE__*/basedate.getTimezoneOffset()) * 60000;\n\treturn (epoch - dnthresh) / (24 * 60 * 60 * 1000);\n}\nvar refdate = /*#__PURE__*/new Date();\nvar dnthresh = /*#__PURE__*/basedate.getTime() + (/*#__PURE__*/refdate.getTimezoneOffset() - /*#__PURE__*/basedate.getTimezoneOffset()) * 60000;\nvar refoffset = /*#__PURE__*/refdate.getTimezoneOffset();\nfunction numdate(v/*:number*/)/*:Date*/ {\n\tvar out = new Date();\n\tout.setTime(v * 24 * 60 * 60 * 1000 + dnthresh);\n\tif (out.getTimezoneOffset() !== refoffset) {\n\t\tout.setTime(out.getTime() + (out.getTimezoneOffset() - refoffset) * 60000);\n\t}\n\treturn out;\n}\n\n/* ISO 8601 Duration */\nfunction parse_isodur(s) {\n\tvar sec = 0, mt = 0, time = false;\n\tvar m = s.match(/P([0-9\\.]+Y)?([0-9\\.]+M)?([0-9\\.]+D)?T([0-9\\.]+H)?([0-9\\.]+M)?([0-9\\.]+S)?/);\n\tif(!m) throw new Error(\"|\" + s + \"| is not an ISO8601 Duration\");\n\tfor(var i = 1; i != m.length; ++i) {\n\t\tif(!m[i]) continue;\n\t\tmt = 1;\n\t\tif(i > 3) time = true;\n\t\tswitch(m[i].slice(m[i].length-1)) {\n\t\t\tcase 'Y':\n\t\t\t\tthrow new Error(\"Unsupported ISO Duration Field: \" + m[i].slice(m[i].length-1));\n\t\t\tcase 'D': mt *= 24;\n\t\t\t\t/* falls through */\n\t\t\tcase 'H': mt *= 60;\n\t\t\t\t/* falls through */\n\t\t\tcase 'M':\n\t\t\t\tif(!time) throw new Error(\"Unsupported ISO Duration Field: M\");\n\t\t\t\telse mt *= 60;\n\t\t\t\t/* falls through */\n\t\t\tcase 'S': break;\n\t\t}\n\t\tsec += mt * parseInt(m[i], 10);\n\t}\n\treturn sec;\n}\n\nvar good_pd_date_1 = /*#__PURE__*/new Date('2017-02-19T19:06:09.000Z');\nvar good_pd_date = /*#__PURE__*/isNaN(/*#__PURE__*/good_pd_date_1.getFullYear()) ? /*#__PURE__*/new Date('2/19/17') : good_pd_date_1;\nvar good_pd = /*#__PURE__*/good_pd_date.getFullYear() == 2017;\n/* parses a date as a local date */\nfunction parseDate(str/*:string|Date*/, fixdate/*:?number*/)/*:Date*/ {\n\tvar d = new Date(str);\n\tif(good_pd) {\n\t\t/*:: if(fixdate == null) fixdate = 0; */\n\t\tif(fixdate > 0) d.setTime(d.getTime() + d.getTimezoneOffset() * 60 * 1000);\n\t\telse if(fixdate < 0) d.setTime(d.getTime() - d.getTimezoneOffset() * 60 * 1000);\n\t\treturn d;\n\t}\n\tif(str instanceof Date) return str;\n\tif(good_pd_date.getFullYear() == 1917 && !isNaN(d.getFullYear())) {\n\t\tvar s = d.getFullYear();\n\t\tif(str.indexOf(\"\" + s) > -1) return d;\n\t\td.setFullYear(d.getFullYear() + 100); return d;\n\t}\n\tvar n = str.match(/\\d+/g)||[\"2017\",\"2\",\"19\",\"0\",\"0\",\"0\"];\n\tvar out = new Date(+n[0], +n[1] - 1, +n[2], (+n[3]||0), (+n[4]||0), (+n[5]||0));\n\tif(str.indexOf(\"Z\") > -1) out = new Date(out.getTime() - out.getTimezoneOffset() * 60 * 1000);\n\treturn out;\n}\n\nfunction cc2str(arr/*:Array<number>*/, debomit)/*:string*/ {\n\tif(has_buf && Buffer.isBuffer(arr)) {\n\t\tif(debomit && buf_utf16le) {\n\t\t\t// TODO: temporary patch\n\t\t\tif(arr[0] == 0xFF && arr[1] == 0xFE) return utf8write(arr.slice(2).toString(\"utf16le\"));\n\t\t\tif(arr[1] == 0xFE && arr[2] == 0xFF) return utf8write(utf16beread(arr.slice(2).toString(\"binary\")));\n\t\t}\n\t\treturn arr.toString(\"binary\");\n\t}\n\n\tif(typeof TextDecoder !== \"undefined\") try {\n\t\tif(debomit) {\n\t\t\tif(arr[0] == 0xFF && arr[1] == 0xFE) return utf8write(new TextDecoder(\"utf-16le\").decode(arr.slice(2)));\n\t\t\tif(arr[0] == 0xFE && arr[1] == 0xFF) return utf8write(new TextDecoder(\"utf-16be\").decode(arr.slice(2)));\n\t\t}\n\t\tvar rev = {\n\t\t\t\"\\u20ac\": \"\\x80\", \"\\u201a\": \"\\x82\", \"\\u0192\": \"\\x83\", \"\\u201e\": \"\\x84\",\n\t\t\t\"\\u2026\": \"\\x85\", \"\\u2020\": \"\\x86\", \"\\u2021\": \"\\x87\", \"\\u02c6\": \"\\x88\",\n\t\t\t\"\\u2030\": \"\\x89\", \"\\u0160\": \"\\x8a\", \"\\u2039\": \"\\x8b\", \"\\u0152\": \"\\x8c\",\n\t\t\t\"\\u017d\": \"\\x8e\", \"\\u2018\": \"\\x91\", \"\\u2019\": \"\\x92\", \"\\u201c\": \"\\x93\",\n\t\t\t\"\\u201d\": \"\\x94\", \"\\u2022\": \"\\x95\", \"\\u2013\": \"\\x96\", \"\\u2014\": \"\\x97\",\n\t\t\t\"\\u02dc\": \"\\x98\", \"\\u2122\": \"\\x99\", \"\\u0161\": \"\\x9a\", \"\\u203a\": \"\\x9b\",\n\t\t\t\"\\u0153\": \"\\x9c\", \"\\u017e\": \"\\x9e\", \"\\u0178\": \"\\x9f\"\n\t\t};\n\t\tif(Array.isArray(arr)) arr = new Uint8Array(arr);\n\t\treturn new TextDecoder(\"latin1\").decode(arr).replace(/[€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ]/g, function(c) { return rev[c] || c; });\n\t} catch(e) {}\n\n\tvar o = [];\n\tfor(var i = 0; i != arr.length; ++i) o.push(String.fromCharCode(arr[i]));\n\treturn o.join(\"\");\n}\n\nfunction dup(o/*:any*/)/*:any*/ {\n\tif(typeof JSON != 'undefined' && !Array.isArray(o)) return JSON.parse(JSON.stringify(o));\n\tif(typeof o != 'object' || o == null) return o;\n\tif(o instanceof Date) return new Date(o.getTime());\n\tvar out = {};\n\tfor(var k in o) if(Object.prototype.hasOwnProperty.call(o, k)) out[k] = dup(o[k]);\n\treturn out;\n}\n\nfunction fill(c/*:string*/,l/*:number*/)/*:string*/ { var o = \"\"; while(o.length < l) o+=c; return o; }\n\n/* TODO: stress test */\nfunction fuzzynum(s/*:string*/)/*:number*/ {\n\tvar v/*:number*/ = Number(s);\n\tif(!isNaN(v)) return isFinite(v) ? v : NaN;\n\tif(!/\\d/.test(s)) return v;\n\tvar wt = 1;\n\tvar ss = s.replace(/([\\d]),([\\d])/g,\"$1$2\").replace(/[$]/g,\"\").replace(/[%]/g, function() { wt *= 100; return \"\";});\n\tif(!isNaN(v = Number(ss))) return v / wt;\n\tss = ss.replace(/[(](.*)[)]/,function($$, $1) { wt = -wt; return $1;});\n\tif(!isNaN(v = Number(ss))) return v / wt;\n\treturn v;\n}\n\n/* NOTE: Chrome rejects bare times like 1:23 PM */\nvar FDRE1 = /^(0?\\d|1[0-2])(?:|:([0-5]?\\d)(?:|(\\.\\d+)(?:|:([0-5]?\\d))|:([0-5]?\\d)(|\\.\\d+)))\\s+([ap])m?$/;\n\nfunction fuzzytime1(M) /*:Date*/ {\n /* TODO: 1904 adjustment, keep in sync with base date */\n if(!M[2]) return new Date(1899,11,30,(+M[1]%12) + (M[7] == \"p\" ? 12 : 0), 0, 0, 0);\n if(M[3]) {\n if(M[4]) return new Date(1899,11,30,(+M[1]%12) + (M[7] == \"p\" ? 12 : 0), +M[2], +M[4], parseFloat(M[3])*1000);\n else return new Date(1899,11,30,(M[7] == \"p\" ? 12 : 0), +M[1], +M[2], parseFloat(M[3])*1000);\n }\n else if(M[5]) return new Date(1899,11,30, (+M[1]%12) + (M[7] == \"p\" ? 12 : 0), +M[2], +M[5], M[6] ? parseFloat(M[6]) * 1000 : 0);\n else return new Date(1899,11,30,(+M[1]%12) + (M[7] == \"p\" ? 12 : 0), +M[2], 0, 0);\n}\nvar lower_months = ['january', 'february', 'march', 'april', 'may', 'june', 'july', 'august', 'september', 'october', 'november', 'december'];\nfunction fuzzydate(s/*:string*/)/*:Date*/ {\n\tvar lower = s.toLowerCase();\n\tvar lnos = lower.replace(/\\s+/g, \" \").trim();\n\tvar M = lnos.match(FDRE1);\n\tif(M) return fuzzytime1(M);\n\n\tvar o = new Date(s), n = new Date(NaN);\n\tvar y = o.getYear(), m = o.getMonth(), d = o.getDate();\n\tif(isNaN(d)) return n;\n\tif(lower.match(/jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec/)) {\n\t\tlower = lower.replace(/[^a-z]/g,\"\").replace(/([^a-z]|^)[ap]m?([^a-z]|$)/,\"\");\n\t\tif(lower.length > 3 && lower_months.indexOf(lower) == -1) return n;\n\t} else if(lower.replace(/[ap]m?/, \"\").match(/[a-z]/)) return n;\n\tif(y < 0 || y > 8099 || s.match(/[^-0-9:,\\/\\\\]/)) return n;\n\treturn o;\n}\n\nvar split_regex = /*#__PURE__*/(function() {\n\tvar safe_split_regex = \"abacaba\".split(/(:?b)/i).length == 5;\n\treturn function split_regex(str/*:string*/, re, def/*:string*/)/*:Array<string>*/ {\n\t\tif(safe_split_regex || typeof re == \"string\") return str.split(re);\n\t\tvar p = str.split(re), o = [p[0]];\n\t\tfor(var i = 1; i < p.length; ++i) { o.push(def); o.push(p[i]); }\n\t\treturn o;\n\t};\n})();\nfunction getdatastr(data)/*:?string*/ {\n\tif(!data) return null;\n\tif(data.content && data.type) return cc2str(data.content, true);\n\tif(data.data) return debom(data.data);\n\tif(data.asNodeBuffer && has_buf) return debom(data.asNodeBuffer().toString('binary'));\n\tif(data.asBinary) return debom(data.asBinary());\n\tif(data._data && data._data.getContent) return debom(cc2str(Array.prototype.slice.call(data._data.getContent(),0)));\n\treturn null;\n}\n\nfunction getdatabin(data) {\n\tif(!data) return null;\n\tif(data.data) return char_codes(data.data);\n\tif(data.asNodeBuffer && has_buf) return data.asNodeBuffer();\n\tif(data._data && data._data.getContent) {\n\t\tvar o = data._data.getContent();\n\t\tif(typeof o == \"string\") return char_codes(o);\n\t\treturn Array.prototype.slice.call(o);\n\t}\n\tif(data.content && data.type) return data.content;\n\treturn null;\n}\n\nfunction getdata(data) { return (data && data.name.slice(-4) === \".bin\") ? getdatabin(data) : getdatastr(data); }\n\n/* Part 2 Section 10.1.2 \"Mapping Content Types\" Names are case-insensitive */\n/* OASIS does not comment on filename case sensitivity */\nfunction safegetzipfile(zip, file/*:string*/) {\n\tvar k = zip.FullPaths || keys(zip.files);\n\tvar f = file.toLowerCase().replace(/[\\/]/g, '\\\\'), g = f.replace(/\\\\/g,'\\/');\n\tfor(var i=0; i<k.length; ++i) {\n\t\tvar n = k[i].replace(/^Root Entry[\\/]/,\"\").toLowerCase();\n\t\tif(f == n || g == n) return zip.files ? zip.files[k[i]] : zip.FileIndex[i];\n\t}\n\treturn null;\n}\n\nfunction getzipfile(zip, file/*:string*/) {\n\tvar o = safegetzipfile(zip, file);\n\tif(o == null) throw new Error(\"Cannot find file \" + file + \" in zip\");\n\treturn o;\n}\n\nfunction getzipdata(zip, file/*:string*/, safe/*:?boolean*/)/*:any*/ {\n\tif(!safe) return getdata(getzipfile(zip, file));\n\tif(!file) return null;\n\ttry { return getzipdata(zip, file); } catch(e) { return null; }\n}\n\nfunction getzipstr(zip, file/*:string*/, safe/*:?boolean*/)/*:?string*/ {\n\tif(!safe) return getdatastr(getzipfile(zip, file));\n\tif(!file) return null;\n\ttry { return getzipstr(zip, file); } catch(e) { return null; }\n}\n\nfunction getzipbin(zip, file/*:string*/, safe/*:?boolean*/)/*:any*/ {\n\tif(!safe) return getdatabin(getzipfile(zip, file));\n\tif(!file) return null;\n\ttry { return getzipbin(zip, file); } catch(e) { return null; }\n}\n\nfunction zipentries(zip) {\n\tvar k = zip.FullPaths || keys(zip.files), o = [];\n\tfor(var i = 0; i < k.length; ++i) if(k[i].slice(-1) != '/') o.push(k[i].replace(/^Root Entry[\\/]/, \"\"));\n\treturn o.sort();\n}\n\nfunction zip_add_file(zip, path, content) {\n\tif(zip.FullPaths) {\n\t\tif(typeof content == \"string\") {\n\t\t\tvar res;\n\t\t\tif(has_buf) res = Buffer_from(content);\n\t\t\t/* TODO: investigate performance in Edge 13 */\n\t\t\t//else if(typeof TextEncoder !== \"undefined\") res = new TextEncoder().encode(content);\n\t\t\telse res = utf8decode(content);\n\t\t\treturn CFB.utils.cfb_add(zip, path, res);\n\t\t}\n\t\tCFB.utils.cfb_add(zip, path, content);\n\t}\n\telse zip.file(path, content);\n}\n\nfunction zip_new() { return CFB.utils.cfb_new(); }\n\nfunction zip_read(d, o) {\n\tswitch(o.type) {\n\t\tcase \"base64\": return CFB.read(d, { type: \"base64\" });\n\t\tcase \"binary\": return CFB.read(d, { type: \"binary\" });\n\t\tcase \"buffer\": case \"array\": return CFB.read(d, { type: \"buffer\" });\n\t}\n\tthrow new Error(\"Unrecognized type \" + o.type);\n}\n\nfunction resolve_path(path/*:string*/, base/*:string*/)/*:string*/ {\n\tif(path.charAt(0) == \"/\") return path.slice(1);\n\tvar result = base.split('/');\n\tif(base.slice(-1) != \"/\") result.pop(); // folder path\n\tvar target = path.split('/');\n\twhile (target.length !== 0) {\n\t\tvar step = target.shift();\n\t\tif (step === '..') result.pop();\n\t\telse if (step !== '.') result.push(step);\n\t}\n\treturn result.join('/');\n}\nvar XML_HEADER = '<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\\r\\n';\nvar attregexg=/([^\"\\s?>\\/]+)\\s*=\\s*((?:\")([^\"]*)(?:\")|(?:')([^']*)(?:')|([^'\">\\s]+))/g;\nvar tagregex1=/<[\\/\\?]?[a-zA-Z0-9:_-]+(?:\\s+[^\"\\s?>\\/]+\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^'\">\\s=]+))*\\s*[\\/\\?]?>/mg, tagregex2 = /<[^>]*>/g;\nvar tagregex = /*#__PURE__*/XML_HEADER.match(tagregex1) ? tagregex1 : tagregex2;\nvar nsregex=/<\\w*:/, nsregex2 = /<(\\/?)\\w+:/;\nfunction parsexmltag(tag/*:string*/, skip_root/*:?boolean*/, skip_LC/*:?boolean*/)/*:any*/ {\n\tvar z = ({}/*:any*/);\n\tvar eq = 0, c = 0;\n\tfor(; eq !== tag.length; ++eq) if((c = tag.charCodeAt(eq)) === 32 || c === 10 || c === 13) break;\n\tif(!skip_root) z[0] = tag.slice(0, eq);\n\tif(eq === tag.length) return z;\n\tvar m = tag.match(attregexg), j=0, v=\"\", i=0, q=\"\", cc=\"\", quot = 1;\n\tif(m) for(i = 0; i != m.length; ++i) {\n\t\tcc = m[i];\n\t\tfor(c=0; c != cc.length; ++c) if(cc.charCodeAt(c) === 61) break;\n\t\tq = cc.slice(0,c).trim();\n\t\twhile(cc.charCodeAt(c+1) == 32) ++c;\n\t\tquot = ((eq=cc.charCodeAt(c+1)) == 34 || eq == 39) ? 1 : 0;\n\t\tv = cc.slice(c+1+quot, cc.length-quot);\n\t\tfor(j=0;j!=q.length;++j) if(q.charCodeAt(j) === 58) break;\n\t\tif(j===q.length) {\n\t\t\tif(q.indexOf(\"_\") > 0) q = q.slice(0, q.indexOf(\"_\")); // from ods\n\t\t\tz[q] = v;\n\t\t\tif(!skip_LC) z[q.toLowerCase()] = v;\n\t\t}\n\t\telse {\n\t\t\tvar k = (j===5 && q.slice(0,5)===\"xmlns\"?\"xmlns\":\"\")+q.slice(j+1);\n\t\t\tif(z[k] && q.slice(j-3,j) == \"ext\") continue; // from ods\n\t\t\tz[k] = v;\n\t\t\tif(!skip_LC) z[k.toLowerCase()] = v;\n\t\t}\n\t}\n\treturn z;\n}\nfunction strip_ns(x/*:string*/)/*:string*/ { return x.replace(nsregex2, \"<$1\"); }\n\nvar encodings = {\n\t'"': '\"',\n\t''': \"'\",\n\t'>': '>',\n\t'<': '<',\n\t'&': '&'\n};\nvar rencoding = /*#__PURE__*/evert(encodings);\n//var rencstr = \"&<>'\\\"\".split(\"\");\n\n// TODO: CP remap (need to read file version to determine OS)\nvar unescapexml/*:StringConv*/ = /*#__PURE__*/(function() {\n\t/* 22.4.2.4 bstr (Basic String) */\n\tvar encregex = /&(?:quot|apos|gt|lt|amp|#x?([\\da-fA-F]+));/ig, coderegex = /_x([\\da-fA-F]{4})_/ig;\n\tfunction raw_unescapexml(text/*:string*/)/*:string*/ {\n\t\tvar s = text + '', i = s.indexOf(\"<![CDATA[\");\n\t\tif(i == -1) return s.replace(encregex, function($$, $1) { return encodings[$$]||String.fromCharCode(parseInt($1,$$.indexOf(\"x\")>-1?16:10))||$$; }).replace(coderegex,function(m,c) {return String.fromCharCode(parseInt(c,16));});\n\t\tvar j = s.indexOf(\"]]>\");\n\t\treturn raw_unescapexml(s.slice(0, i)) + s.slice(i+9,j) + raw_unescapexml(s.slice(j+3));\n\t}\n\treturn function unescapexml(text/*:string*/, xlsx/*:boolean*/) {\n\t\tvar out = raw_unescapexml(text);\n\t\treturn xlsx ? out.replace(/\\r\\n/g, \"\\n\") : out;\n\t};\n})();\n\nvar decregex=/[&<>'\"]/g, charegex = /[\\u0000-\\u0008\\u000b-\\u001f\\uFFFE-\\uFFFF]/g;\nfunction escapexml(text/*:string*/)/*:string*/{\n\tvar s = text + '';\n\treturn s.replace(decregex, function(y) { return rencoding[y]; }).replace(charegex,function(s) { return \"_x\" + (\"000\"+s.charCodeAt(0).toString(16)).slice(-4) + \"_\";});\n}\nfunction escapexmltag(text/*:string*/)/*:string*/{ return escapexml(text).replace(/ /g,\"_x0020_\"); }\n\nvar htmlcharegex = /[\\u0000-\\u001f]/g;\nfunction escapehtml(text/*:string*/)/*:string*/{\n\tvar s = text + '';\n\treturn s.replace(decregex, function(y) { return rencoding[y]; }).replace(/\\n/g, \"<br/>\").replace(htmlcharegex,function(s) { return \"&#x\" + (\"000\"+s.charCodeAt(0).toString(16)).slice(-4) + \";\"; });\n}\n\nfunction escapexlml(text/*:string*/)/*:string*/{\n\tvar s = text + '';\n\treturn s.replace(decregex, function(y) { return rencoding[y]; }).replace(htmlcharegex,function(s) { return \"&#x\" + (s.charCodeAt(0).toString(16)).toUpperCase() + \";\"; });\n}\n\n/* TODO: handle codepages */\nvar xlml_fixstr/*:StringConv*/ = /*#__PURE__*/(function() {\n\tvar entregex = /&#(\\d+);/g;\n\tfunction entrepl($$/*:string*/,$1/*:string*/)/*:string*/ { return String.fromCharCode(parseInt($1,10)); }\n\treturn function xlml_fixstr(str/*:string*/)/*:string*/ { return str.replace(entregex,entrepl); };\n})();\nfunction xlml_unfixstr(str/*:string*/)/*:string*/ { return str.replace(/(\\r\\n|[\\r\\n])/g,\"\\ \"); }\n\n/* note: xsd:boolean valid values: true / 1 / false / 0 */\nfunction parsexmlbool(value/*:any*/)/*:boolean*/ {\n\tswitch(value) {\n\t\tcase 1: case true: case '1': case 'true': return true;\n\t\tcase 0: case false: case '0': case 'false': return false;\n\t\t//default: throw new Error(\"Invalid xsd:boolean \" + value);\n\t}\n\treturn false;\n}\n\nfunction utf8reada(orig/*:string*/)/*:string*/ {\n\tvar out = \"\", i = 0, c = 0, d = 0, e = 0, f = 0, w = 0;\n\twhile (i < orig.length) {\n\t\tc = orig.charCodeAt(i++);\n\t\tif (c < 128) { out += String.fromCharCode(c); continue; }\n\t\td = orig.charCodeAt(i++);\n\t\tif (c>191 && c<224) { f = ((c & 31) << 6); f |= (d & 63); out += String.fromCharCode(f); continue; }\n\t\te = orig.charCodeAt(i++);\n\t\tif (c < 240) { out += String.fromCharCode(((c & 15) << 12) | ((d & 63) << 6) | (e & 63)); continue; }\n\t\tf = orig.charCodeAt(i++);\n\t\tw = (((c & 7) << 18) | ((d & 63) << 12) | ((e & 63) << 6) | (f & 63))-65536;\n\t\tout += String.fromCharCode(0xD800 + ((w>>>10)&1023));\n\t\tout += String.fromCharCode(0xDC00 + (w&1023));\n\t}\n\treturn out;\n}\n\nfunction utf8readb(data) {\n\tvar out = new_raw_buf(2*data.length), w, i, j = 1, k = 0, ww=0, c;\n\tfor(i = 0; i < data.length; i+=j) {\n\t\tj = 1;\n\t\tif((c=data.charCodeAt(i)) < 128) w = c;\n\t\telse if(c < 224) { w = (c&31)*64+(data.charCodeAt(i+1)&63); j=2; }\n\t\telse if(c < 240) { w=(c&15)*4096+(data.charCodeAt(i+1)&63)*64+(data.charCodeAt(i+2)&63); j=3; }\n\t\telse { j = 4;\n\t\t\tw = (c & 7)*262144+(data.charCodeAt(i+1)&63)*4096+(data.charCodeAt(i+2)&63)*64+(data.charCodeAt(i+3)&63);\n\t\t\tw -= 65536; ww = 0xD800 + ((w>>>10)&1023); w = 0xDC00 + (w&1023);\n\t\t}\n\t\tif(ww !== 0) { out[k++] = ww&255; out[k++] = ww>>>8; ww = 0; }\n\t\tout[k++] = w%256; out[k++] = w>>>8;\n\t}\n\treturn out.slice(0,k).toString('ucs2');\n}\n\nfunction utf8readc(data) { return Buffer_from(data, 'binary').toString('utf8'); }\n\nvar utf8corpus = \"foo bar baz\\u00e2\\u0098\\u0083\\u00f0\\u009f\\u008d\\u00a3\";\nvar utf8read = has_buf && (/*#__PURE__*/utf8readc(utf8corpus) == /*#__PURE__*/utf8reada(utf8corpus) && utf8readc || /*#__PURE__*/utf8readb(utf8corpus) == /*#__PURE__*/utf8reada(utf8corpus) && utf8readb) || utf8reada;\n\nvar utf8write/*:StringConv*/ = has_buf ? function(data) { return Buffer_from(data, 'utf8').toString(\"binary\"); } : function(orig/*:string*/)/*:string*/ {\n\tvar out/*:Array<string>*/ = [], i = 0, c = 0, d = 0;\n\twhile(i < orig.length) {\n\t\tc = orig.charCodeAt(i++);\n\t\tswitch(true) {\n\t\t\tcase c < 128: out.push(String.fromCharCode(c)); break;\n\t\t\tcase c < 2048:\n\t\t\t\tout.push(String.fromCharCode(192 + (c >> 6)));\n\t\t\t\tout.push(String.fromCharCode(128 + (c & 63)));\n\t\t\t\tbreak;\n\t\t\tcase c >= 55296 && c < 57344:\n\t\t\t\tc -= 55296; d = orig.charCodeAt(i++) - 56320 + (c<<10);\n\t\t\t\tout.push(String.fromCharCode(240 + ((d >>18) & 7)));\n\t\t\t\tout.push(String.fromCharCode(144 + ((d >>12) & 63)));\n\t\t\t\tout.push(String.fromCharCode(128 + ((d >> 6) & 63)));\n\t\t\t\tout.push(String.fromCharCode(128 + (d & 63)));\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tout.push(String.fromCharCode(224 + (c >> 12)));\n\t\t\t\tout.push(String.fromCharCode(128 + ((c >> 6) & 63)));\n\t\t\t\tout.push(String.fromCharCode(128 + (c & 63)));\n\t\t}\n\t}\n\treturn out.join(\"\");\n};\n\n// matches <foo>...</foo> extracts content\nvar matchtag = /*#__PURE__*/(function() {\n\tvar mtcache/*:{[k:string]:RegExp}*/ = ({}/*:any*/);\n\treturn function matchtag(f/*:string*/,g/*:?string*/)/*:RegExp*/ {\n\t\tvar t = f+\"|\"+(g||\"\");\n\t\tif(mtcache[t]) return mtcache[t];\n\t\treturn (mtcache[t] = new RegExp('<(?:\\\\w+:)?'+f+'(?: xml:space=\"preserve\")?(?:[^>]*)>([\\\\s\\\\S]*?)</(?:\\\\w+:)?'+f+'>',((g||\"\")/*:any*/)));\n\t};\n})();\n\nvar htmldecode/*:{(s:string):string}*/ = /*#__PURE__*/(function() {\n\tvar entities/*:Array<[RegExp, string]>*/ = [\n\t\t['nbsp', ' '], ['middot', '·'],\n\t\t['quot', '\"'], ['apos', \"'\"], ['gt', '>'], ['lt', '<'], ['amp', '&']\n\t].map(function(x/*:[string, string]*/) { return [new RegExp('&' + x[0] + ';', \"ig\"), x[1]]; });\n\treturn function htmldecode(str/*:string*/)/*:string*/ {\n\t\tvar o = str\n\t\t\t\t// Remove new lines and spaces from start of content\n\t\t\t\t.replace(/^[\\t\\n\\r ]+/, \"\")\n\t\t\t\t// Remove new lines and spaces from end of content\n\t\t\t\t.replace(/[\\t\\n\\r ]+$/,\"\")\n\t\t\t\t// Added line which removes any white space characters after and before html tags\n\t\t\t\t.replace(/>\\s+/g,\">\").replace(/\\s+</g,\"<\")\n\t\t\t\t// Replace remaining new lines and spaces with space\n\t\t\t\t.replace(/[\\t\\n\\r ]+/g, \" \")\n\t\t\t\t// Replace <br> tags with new lines\n\t\t\t\t.replace(/<\\s*[bB][rR]\\s*\\/?>/g,\"\\n\")\n\t\t\t\t// Strip HTML elements\n\t\t\t\t.replace(/<[^>]*>/g,\"\");\n\t\tfor(var i = 0; i < entities.length; ++i) o = o.replace(entities[i][0], entities[i][1]);\n\t\treturn o;\n\t};\n})();\n\nvar vtregex = /*#__PURE__*/(function(){ var vt_cache = {};\n\treturn function vt_regex(bt) {\n\t\tif(vt_cache[bt] !== undefined) return vt_cache[bt];\n\t\treturn (vt_cache[bt] = new RegExp(\"<(?:vt:)?\" + bt + \">([\\\\s\\\\S]*?)</(?:vt:)?\" + bt + \">\", 'g') );\n};})();\nvar vtvregex = /<\\/?(?:vt:)?variant>/g, vtmregex = /<(?:vt:)([^>]*)>([\\s\\S]*)</;\nfunction parseVector(data/*:string*/, opts)/*:Array<{v:string,t:string}>*/ {\n\tvar h = parsexmltag(data);\n\n\tvar matches/*:Array<string>*/ = data.match(vtregex(h.baseType))||[];\n\tvar res/*:Array<any>*/ = [];\n\tif(matches.length != h.size) {\n\t\tif(opts.WTF) throw new Error(\"unexpected vector length \" + matches.length + \" != \" + h.size);\n\t\treturn res;\n\t}\n\tmatches.forEach(function(x/*:string*/) {\n\t\tvar v = x.replace(vtvregex,\"\").match(vtmregex);\n\t\tif(v) res.push({v:utf8read(v[2]), t:v[1]});\n\t});\n\treturn res;\n}\n\nvar wtregex = /(^\\s|\\s$|\\n)/;\nfunction writetag(f/*:string*/,g/*:string*/)/*:string*/ { return '<' + f + (g.match(wtregex)?' xml:space=\"preserve\"' : \"\") + '>' + g + '</' + f + '>'; }\n\nfunction wxt_helper(h)/*:string*/ { return keys(h).map(function(k) { return \" \" + k + '=\"' + h[k] + '\"';}).join(\"\"); }\nfunction writextag(f/*:string*/,g/*:?string*/,h) { return '<' + f + ((h != null) ? wxt_helper(h) : \"\") + ((g != null) ? (g.match(wtregex)?' xml:space=\"preserve\"' : \"\") + '>' + g + '</' + f : \"/\") + '>';}\n\nfunction write_w3cdtf(d/*:Date*/, t/*:?boolean*/)/*:string*/ { try { return d.toISOString().replace(/\\.\\d*/,\"\"); } catch(e) { if(t) throw e; } return \"\"; }\n\nfunction write_vt(s, xlsx/*:?boolean*/)/*:string*/ {\n\tswitch(typeof s) {\n\t\tcase 'string':\n\t\t\tvar o = writextag('vt:lpwstr', escapexml(s));\n\t\t\tif(xlsx) o = o.replace(/"/g, \"_x0022_\");\n\t\t\treturn o;\n\t\tcase 'number': return writextag((s|0)==s?'vt:i4':'vt:r8', escapexml(String(s)));\n\t\tcase 'boolean': return writextag('vt:bool',s?'true':'false');\n\t}\n\tif(s instanceof Date) return writextag('vt:filetime', write_w3cdtf(s));\n\tthrow new Error(\"Unable to serialize \" + s);\n}\n\nfunction xlml_normalize(d)/*:string*/ {\n\tif(has_buf &&/*::typeof Buffer !== \"undefined\" && d != null && d instanceof Buffer &&*/ Buffer.isBuffer(d)) return d.toString('utf8');\n\tif(typeof d === 'string') return d;\n\t/* duktape */\n\tif(typeof Uint8Array !== 'undefined' && d instanceof Uint8Array) return utf8read(a2s(ab2a(d)));\n\tthrow new Error(\"Bad input format: expected Buffer or string\");\n}\n/* UOS uses CJK in tags */\nvar xlmlregex = /<(\\/?)([^\\s?><!\\/:]*:|)([^\\s?<>:\\/]+)(?:[\\s?:\\/](?:[^>=]|=\"[^\"]*?\")*)?>/mg;\n//var xlmlregex = /<(\\/?)([a-z0-9]*:|)(\\w+)[^>]*>/mg;\n\nvar XMLNS = ({\n\tCORE_PROPS: 'http://schemas.openxmlformats.org/package/2006/metadata/core-properties',\n\tCUST_PROPS: \"http://schemas.openxmlformats.org/officeDocument/2006/custom-properties\",\n\tEXT_PROPS: \"http://schemas.openxmlformats.org/officeDocument/2006/extended-properties\",\n\tCT: 'http://schemas.openxmlformats.org/package/2006/content-types',\n\tRELS: 'http://schemas.openxmlformats.org/package/2006/relationships',\n\tTCMNT: 'http://schemas.microsoft.com/office/spreadsheetml/2018/threadedcomments',\n\t'dc': 'http://purl.org/dc/elements/1.1/',\n\t'dcterms': 'http://purl.org/dc/terms/',\n\t'dcmitype': 'http://purl.org/dc/dcmitype/',\n\t'mx': 'http://schemas.microsoft.com/office/mac/excel/2008/main',\n\t'r': 'http://schemas.openxmlformats.org/officeDocument/2006/relationships',\n\t'sjs': 'http://schemas.openxmlformats.org/package/2006/sheetjs/core-properties',\n\t'vt': 'http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes',\n\t'xsi': 'http://www.w3.org/2001/XMLSchema-instance',\n\t'xsd': 'http://www.w3.org/2001/XMLSchema'\n}/*:any*/);\n\nvar XMLNS_main = [\n\t'http://schemas.openxmlformats.org/spreadsheetml/2006/main',\n\t'http://purl.oclc.org/ooxml/spreadsheetml/main',\n\t'http://schemas.microsoft.com/office/excel/2006/main',\n\t'http://schemas.microsoft.com/office/excel/2006/2'\n];\n\nvar XLMLNS = ({\n\t'o': 'urn:schemas-microsoft-com:office:office',\n\t'x': 'urn:schemas-microsoft-com:office:excel',\n\t'ss': 'urn:schemas-microsoft-com:office:spreadsheet',\n\t'dt': 'uuid:C2F41010-65B3-11d1-A29F-00AA00C14882',\n\t'mv': 'http://macVmlSchemaUri',\n\t'v': 'urn:schemas-microsoft-com:vml',\n\t'html': 'http://www.w3.org/TR/REC-html40'\n}/*:any*/);\nfunction read_double_le(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ {\n\tvar s = 1 - 2 * (b[idx + 7] >>> 7);\n\tvar e = ((b[idx + 7] & 0x7f) << 4) + ((b[idx + 6] >>> 4) & 0x0f);\n\tvar m = (b[idx+6]&0x0f);\n\tfor(var i = 5; i >= 0; --i) m = m * 256 + b[idx + i];\n\tif(e == 0x7ff) return m == 0 ? (s * Infinity) : NaN;\n\tif(e == 0) e = -1022;\n\telse { e -= 1023; m += Math.pow(2,52); }\n\treturn s * Math.pow(2, e - 52) * m;\n}\n\nfunction write_double_le(b/*:RawBytes|CFBlob*/, v/*:number*/, idx/*:number*/) {\n\tvar bs = ((((v < 0) || (1/v == -Infinity)) ? 1 : 0) << 7), e = 0, m = 0;\n\tvar av = bs ? (-v) : v;\n\tif(!isFinite(av)) { e = 0x7ff; m = isNaN(v) ? 0x6969 : 0; }\n\telse if(av == 0) e = m = 0;\n\telse {\n\t\te = Math.floor(Math.log(av) / Math.LN2);\n\t\tm = av * Math.pow(2, 52 - e);\n\t\tif((e <= -1023) && (!isFinite(m) || (m < Math.pow(2,52)))) { e = -1022; }\n\t\telse { m -= Math.pow(2,52); e+=1023; }\n\t}\n\tfor(var i = 0; i <= 5; ++i, m/=256) b[idx + i] = m & 0xff;\n\tb[idx + 6] = ((e & 0x0f) << 4) | (m & 0xf);\n\tb[idx + 7] = (e >> 4) | bs;\n}\n\nvar ___toBuffer = function(bufs/*:Array<Array<RawBytes> >*/)/*:RawBytes*/ { var x=[],w=10240; for(var i=0;i<bufs[0].length;++i) if(bufs[0][i]) for(var j=0,L=bufs[0][i].length;j<L;j+=w) x.push.apply(x, bufs[0][i].slice(j,j+w)); return x; };\nvar __toBuffer = has_buf ? function(bufs) { return (bufs[0].length > 0 && Buffer.isBuffer(bufs[0][0])) ? Buffer.concat(bufs[0].map(function(x) { return Buffer.isBuffer(x) ? x : Buffer_from(x); })) : ___toBuffer(bufs);} : ___toBuffer;\n\nvar ___utf16le = function(b/*:RawBytes|CFBlob*/,s/*:number*/,e/*:number*/)/*:string*/ { var ss/*:Array<string>*/=[]; for(var i=s; i<e; i+=2) ss.push(String.fromCharCode(__readUInt16LE(b,i))); return ss.join(\"\").replace(chr0,''); };\nvar __utf16le = has_buf ? function(b/*:RawBytes|CFBlob*/,s/*:number*/,e/*:number*/)/*:string*/ { if(!Buffer.isBuffer(b)/*:: || !(b instanceof Buffer)*/ || !buf_utf16le) return ___utf16le(b,s,e); return b.toString('utf16le',s,e).replace(chr0,'')/*.replace(chr1,'!')*/; } : ___utf16le;\n\nvar ___hexlify = function(b/*:RawBytes|CFBlob*/,s/*:number*/,l/*:number*/)/*:string*/ { var ss/*:Array<string>*/=[]; for(var i=s; i<s+l; ++i) ss.push((\"0\" + b[i].toString(16)).slice(-2)); return ss.join(\"\"); };\nvar __hexlify = has_buf ? function(b/*:RawBytes|CFBlob*/,s/*:number*/,l/*:number*/)/*:string*/ { return Buffer.isBuffer(b)/*:: && b instanceof Buffer*/ ? b.toString('hex',s,s+l) : ___hexlify(b,s,l); } : ___hexlify;\n\nvar ___utf8 = function(b/*:RawBytes|CFBlob*/,s/*:number*/,e/*:number*/) { var ss=[]; for(var i=s; i<e; i++) ss.push(String.fromCharCode(__readUInt8(b,i))); return ss.join(\"\"); };\nvar __utf8 = has_buf ? function utf8_b(b/*:RawBytes|CFBlob*/, s/*:number*/, e/*:number*/) { return (Buffer.isBuffer(b)/*:: && (b instanceof Buffer)*/) ? b.toString('utf8',s,e) : ___utf8(b,s,e); } : ___utf8;\n\nvar ___lpstr = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? __utf8(b, i+4,i+4+len-1) : \"\";};\nvar __lpstr = ___lpstr;\n\nvar ___cpstr = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? __utf8(b, i+4,i+4+len-1) : \"\";};\nvar __cpstr = ___cpstr;\n\nvar ___lpwstr = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = 2*__readUInt32LE(b,i); return len > 0 ? __utf8(b, i+4,i+4+len-1) : \"\";};\nvar __lpwstr = ___lpwstr;\n\nvar ___lpp4 = function lpp4_(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? __utf16le(b, i+4,i+4+len) : \"\";};\nvar __lpp4 = ___lpp4;\n\nvar ___8lpp4 = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? __utf8(b, i+4,i+4+len) : \"\";};\nvar __8lpp4 = ___8lpp4;\n\nvar ___double = function(b/*:RawBytes|CFBlob*/, idx/*:number*/) { return read_double_le(b, idx);};\nvar __double = ___double;\n\nvar is_buf = function is_buf_a(a) { return Array.isArray(a) || (typeof Uint8Array !== \"undefined\" && a instanceof Uint8Array); };\n\nif(has_buf/*:: && typeof Buffer !== 'undefined'*/) {\n\t__lpstr = function lpstr_b(b/*:RawBytes|CFBlob*/, i/*:number*/) { if(!Buffer.isBuffer(b)/*:: || !(b instanceof Buffer)*/) return ___lpstr(b, i); var len = b.readUInt32LE(i); return len > 0 ? b.toString('utf8',i+4,i+4+len-1) : \"\";};\n\t__cpstr = function cpstr_b(b/*:RawBytes|CFBlob*/, i/*:number*/) { if(!Buffer.isBuffer(b)/*:: || !(b instanceof Buffer)*/) return ___cpstr(b, i); var len = b.readUInt32LE(i); return len > 0 ? b.toString('utf8',i+4,i+4+len-1) : \"\";};\n\t__lpwstr = function lpwstr_b(b/*:RawBytes|CFBlob*/, i/*:number*/) { if(!Buffer.isBuffer(b)/*:: || !(b instanceof Buffer)*/ || !buf_utf16le) return ___lpwstr(b, i); var len = 2*b.readUInt32LE(i); return b.toString('utf16le',i+4,i+4+len-1);};\n\t__lpp4 = function lpp4_b(b/*:RawBytes|CFBlob*/, i/*:number*/) { if(!Buffer.isBuffer(b)/*:: || !(b instanceof Buffer)*/ || !buf_utf16le) return ___lpp4(b, i); var len = b.readUInt32LE(i); return b.toString('utf16le',i+4,i+4+len);};\n\t__8lpp4 = function lpp4_8b(b/*:RawBytes|CFBlob*/, i/*:number*/) { if(!Buffer.isBuffer(b)/*:: || !(b instanceof Buffer)*/) return ___8lpp4(b, i); var len = b.readUInt32LE(i); return b.toString('utf8',i+4,i+4+len);};\n\t__double = function double_(b/*:RawBytes|CFBlob*/, i/*:number*/) { if(Buffer.isBuffer(b)/*::&& b instanceof Buffer*/) return b.readDoubleLE(i); return ___double(b,i); };\n\tis_buf = function is_buf_b(a) { return Buffer.isBuffer(a) || Array.isArray(a) || (typeof Uint8Array !== \"undefined\" && a instanceof Uint8Array); };\n}\n\n/* from js-xls */\nfunction cpdoit() {\n\t__utf16le = function(b/*:RawBytes|CFBlob*/,s/*:number*/,e/*:number*/) { return $cptable.utils.decode(1200, b.slice(s,e)).replace(chr0, ''); };\n\t__utf8 = function(b/*:RawBytes|CFBlob*/,s/*:number*/,e/*:number*/) { return $cptable.utils.decode(65001, b.slice(s,e)); };\n\t__lpstr = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? $cptable.utils.decode(current_ansi, b.slice(i+4, i+4+len-1)) : \"\";};\n\t__cpstr = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? $cptable.utils.decode(current_codepage, b.slice(i+4, i+4+len-1)) : \"\";};\n\t__lpwstr = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = 2*__readUInt32LE(b,i); return len > 0 ? $cptable.utils.decode(1200, b.slice(i+4,i+4+len-1)) : \"\";};\n\t__lpp4 = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? $cptable.utils.decode(1200, b.slice(i+4,i+4+len)) : \"\";};\n\t__8lpp4 = function(b/*:RawBytes|CFBlob*/,i/*:number*/) { var len = __readUInt32LE(b,i); return len > 0 ? $cptable.utils.decode(65001, b.slice(i+4,i+4+len)) : \"\";};\n}\nif(typeof $cptable !== 'undefined') cpdoit();\n\nvar __readUInt8 = function(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ { return b[idx]; };\nvar __readUInt16LE = function(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ { return (b[idx+1]*(1<<8))+b[idx]; };\nvar __readInt16LE = function(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ { var u = (b[idx+1]*(1<<8))+b[idx]; return (u < 0x8000) ? u : ((0xffff - u + 1) * -1); };\nvar __readUInt32LE = function(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ { return b[idx+3]*(1<<24)+(b[idx+2]<<16)+(b[idx+1]<<8)+b[idx]; };\nvar __readInt32LE = function(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ { return (b[idx+3]<<24)|(b[idx+2]<<16)|(b[idx+1]<<8)|b[idx]; };\nvar __readInt32BE = function(b/*:RawBytes|CFBlob*/, idx/*:number*/)/*:number*/ { return (b[idx]<<24)|(b[idx+1]<<16)|(b[idx+2]<<8)|b[idx+3]; };\n\nfunction ReadShift(size/*:number*/, t/*:?string*/)/*:number|string*/ {\n\tvar o=\"\", oI/*:: :number = 0*/, oR, oo=[], w, vv, i, loc;\n\tswitch(t) {\n\t\tcase 'dbcs':\n\t\t\tloc = this.l;\n\t\t\tif(has_buf && Buffer.isBuffer(this) && buf_utf16le) o = this.slice(this.l, this.l+2*size).toString(\"utf16le\");\n\t\t\telse for(i = 0; i < size; ++i) { o+=String.fromCharCode(__readUInt16LE(this, loc)); loc+=2; }\n\t\t\tsize *= 2;\n\t\t\tbreak;\n\n\t\tcase 'utf8': o = __utf8(this, this.l, this.l + size); break;\n\t\tcase 'utf16le': size *= 2; o = __utf16le(this, this.l, this.l + size); break;\n\n\t\tcase 'wstr':\n\t\t\tif(typeof $cptable !== 'undefined') o = $cptable.utils.decode(current_codepage, this.slice(this.l, this.l+2*size));\n\t\t\telse return ReadShift.call(this, size, 'dbcs');\n\t\t\tsize = 2 * size; break;\n\n\t\t/* [MS-OLEDS] 2.1.4 LengthPrefixedAnsiString */\n\t\tcase 'lpstr-ansi': o = __lpstr(this, this.l); size = 4 + __readUInt32LE(this, this.l); break;\n\t\tcase 'lpstr-cp': o = __cpstr(this, this.l); size = 4 + __readUInt32LE(this, this.l); break;\n\t\t/* [MS-OLEDS] 2.1.5 LengthPrefixedUnicodeString */\n\t\tcase 'lpwstr': o = __lpwstr(this, this.l); size = 4 + 2 * __readUInt32LE(this, this.l); break;\n\t\t/* [MS-OFFCRYPTO] 2.1.2 Length-Prefixed Padded Unicode String (UNICODE-LP-P4) */\n\t\tcase 'lpp4': size = 4 + __readUInt32LE(this, this.l); o = __lpp4(this, this.l); if(size & 0x02) size += 2; break;\n\t\t/* [MS-OFFCRYPTO] 2.1.3 Length-Prefixed UTF-8 String (UTF-8-LP-P4) */\n\t\tcase '8lpp4': size = 4 + __readUInt32LE(this, this.l); o = __8lpp4(this, this.l); if(size & 0x03) size += 4 - (size & 0x03); break;\n\n\t\tcase 'cstr': size = 0; o = \"\";\n\t\t\twhile((w=__readUInt8(this, this.l + size++))!==0) oo.push(_getchar(w));\n\t\t\to = oo.join(\"\"); break;\n\t\tcase '_wstr': size = 0; o = \"\";\n\t\t\twhile((w=__readUInt16LE(this,this.l +size))!==0){oo.push(_getchar(w));size+=2;}\n\t\t\tsize+=2; o = oo.join(\"\"); break;\n\n\t\t/* sbcs and dbcs support continue records in the SST way TODO codepages */\n\t\tcase 'dbcs-cont': o = \"\"; loc = this.l;\n\t\t\tfor(i = 0; i < size; ++i) {\n\t\t\t\tif(this.lens && this.lens.indexOf(loc) !== -1) {\n\t\t\t\t\tw = __readUInt8(this, loc);\n\t\t\t\t\tthis.l = loc + 1;\n\t\t\t\t\tvv = ReadShift.call(this, size-i, w ? 'dbcs-cont' : 'sbcs-cont');\n\t\t\t\t\treturn oo.join(\"\") + vv;\n\t\t\t\t}\n\t\t\t\too.push(_getchar(__readUInt16LE(this, loc)));\n\t\t\t\tloc+=2;\n\t\t\t} o = oo.join(\"\"); size *= 2; break;\n\n\t\tcase 'cpstr':\n\t\t\tif(typeof $cptable !== 'undefined') {\n\t\t\t\to = $cptable.utils.decode(current_codepage, this.slice(this.l, this.l + size));\n\t\t\t\tbreak;\n\t\t\t}\n\t\t/* falls through */\n\t\tcase 'sbcs-cont': o = \"\"; loc = this.l;\n\t\t\tfor(i = 0; i != size; ++i) {\n\t\t\t\tif(this.lens && this.lens.indexOf(loc) !== -1) {\n\t\t\t\t\tw = __readUInt8(this, loc);\n\t\t\t\t\tthis.l = loc + 1;\n\t\t\t\t\tvv = ReadShift.call(this, size-i, w ? 'dbcs-cont' : 'sbcs-cont');\n\t\t\t\t\treturn oo.join(\"\") + vv;\n\t\t\t\t}\n\t\t\t\too.push(_getchar(__readUInt8(this, loc)));\n\t\t\t\tloc+=1;\n\t\t\t} o = oo.join(\"\"); break;\n\n\t\tdefault:\n\tswitch(size) {\n\t\tcase 1: oI = __readUInt8(this, this.l); this.l++; return oI;\n\t\tcase 2: oI = (t === 'i' ? __readInt16LE : __readUInt16LE)(this, this.l); this.l += 2; return oI;\n\t\tcase 4: case -4:\n\t\t\tif(t === 'i' || ((this[this.l+3] & 0x80)===0)) { oI = ((size > 0) ? __readInt32LE : __readInt32BE)(this, this.l); this.l += 4; return oI; }\n\t\t\telse { oR = __readUInt32LE(this, this.l); this.l += 4; } return oR;\n\t\tcase 8: case -8:\n\t\t\tif(t === 'f') {\n\t\t\t\tif(size == 8) oR = __double(this, this.l);\n\t\t\t\telse oR = __double([this[this.l+7],this[this.l+6],this[this.l+5],this[this.l+4],this[this.l+3],this[this.l+2],this[this.l+1],this[this.l+0]], 0);\n\t\t\t\tthis.l += 8; return oR;\n\t\t\t} else size = 8;\n\t\t/* falls through */\n\t\tcase 16: o = __hexlify(this, this.l, size); break;\n\t}}\n\tthis.l+=size; return o;\n}\n\nvar __writeUInt32LE = function(b/*:RawBytes|CFBlob*/, val/*:number*/, idx/*:number*/)/*:void*/ { b[idx] = (val & 0xFF); b[idx+1] = ((val >>> 8) & 0xFF); b[idx+2] = ((val >>> 16) & 0xFF); b[idx+3] = ((val >>> 24) & 0xFF); };\nvar __writeInt32LE = function(b/*:RawBytes|CFBlob*/, val/*:number*/, idx/*:number*/)/*:void*/ { b[idx] = (val & 0xFF); b[idx+1] = ((val >> 8) & 0xFF); b[idx+2] = ((val >> 16) & 0xFF); b[idx+3] = ((val >> 24) & 0xFF); };\nvar __writeUInt16LE = function(b/*:RawBytes|CFBlob*/, val/*:number*/, idx/*:number*/)/*:void*/ { b[idx] = (val & 0xFF); b[idx+1] = ((val >>> 8) & 0xFF); };\n\nfunction WriteShift(t/*:number*/, val/*:string|number*/, f/*:?string*/)/*:any*/ {\n\tvar size = 0, i = 0;\n\tif(f === 'dbcs') {\n\t\t/*:: if(typeof val !== 'string') throw new Error(\"unreachable\"); */\n\t\tfor(i = 0; i != val.length; ++i) __writeUInt16LE(this, val.charCodeAt(i), this.l + 2 * i);\n\t\tsize = 2 * val.length;\n\t} else if(f === 'sbcs' || f == 'cpstr') {\n\t\tif(typeof $cptable !== 'undefined' && current_ansi == 874) {\n\t\t\t/* TODO: use tables directly, don't encode */\n\t\t\t/*:: if(typeof val !== \"string\") throw new Error(\"unreachable\"); */\n\t\t\tfor(i = 0; i != val.length; ++i) {\n\t\t\t\tvar cpp = $cptable.utils.encode(current_ansi, val.charAt(i));\n\t\t\t\tthis[this.l + i] = cpp[0];\n\t\t\t}\n\t\t\tsize = val.length;\n\t\t} else if(typeof $cptable !== 'undefined' && f == 'cpstr') {\n\t\t\tcpp = $cptable.utils.encode(current_codepage, val);\n\t\t\t/* replace null bytes with _ when relevant */\n if(cpp.length == val.length) for(i = 0; i < val.length; ++i) if(cpp[i] == 0 && val.charCodeAt(i) != 0) cpp[i] = 0x5F;\n if(cpp.length == 2 * val.length) for(i = 0; i < val.length; ++i) if(cpp[2*i] == 0 && cpp[2*i+1] == 0 && val.charCodeAt(i) != 0) cpp[2*i] = 0x5F;\n\t\t\tfor(i = 0; i < cpp.length; ++i) this[this.l + i] = cpp[i];\n\t\t\tsize = cpp.length;\n\t\t} else {\n\t\t\t/*:: if(typeof val !== 'string') throw new Error(\"unreachable\"); */\n\t\t\tval = val.replace(/[^\\x00-\\x7F]/g, \"_\");\n\t\t\t/*:: if(typeof val !== 'string') throw new Error(\"unreachable\"); */\n\t\t\tfor(i = 0; i != val.length; ++i) this[this.l + i] = (val.charCodeAt(i) & 0xFF);\n\t\t\tsize = val.length;\n\t\t}\n\t} else if(f === 'hex') {\n\t\tfor(; i < t; ++i) {\n\t\t\t/*:: if(typeof val !== \"string\") throw new Error(\"unreachable\"); */\n\t\t\tthis[this.l++] = (parseInt(val.slice(2*i, 2*i+2), 16)||0);\n\t\t} return this;\n\t} else if(f === 'utf16le') {\n\t\t\t/*:: if(typeof val !== \"string\") throw new Error(\"unreachable\"); */\n\t\t\tvar end/*:number*/ = Math.min(this.l + t, this.length);\n\t\t\tfor(i = 0; i < Math.min(val.length, t); ++i) {\n\t\t\t\tvar cc = val.charCodeAt(i);\n\t\t\t\tthis[this.l++] = (cc & 0xff);\n\t\t\t\tthis[this.l++] = (cc >> 8);\n\t\t\t}\n\t\t\twhile(this.l < end) this[this.l++] = 0;\n\t\t\treturn this;\n\t} else /*:: if(typeof val === 'number') */ switch(t) {\n\t\tcase 1: size = 1; this[this.l] = val&0xFF; break;\n\t\tcase 2: size = 2; this[this.l] = val&0xFF; val >>>= 8; this[this.l+1] = val&0xFF; break;\n\t\tcase 3: size = 3; this[this.l] = val&0xFF; val >>>= 8; this[this.l+1] = val&0xFF; val >>>= 8; this[this.l+2] = val&0xFF; break;\n\t\tcase 4: size = 4; __writeUInt32LE(this, val, this.l); break;\n\t\tcase 8: size = 8; if(f === 'f') { write_double_le(this, val, this.l); break; }\n\t\t/* falls through */\n\t\tcase 16: break;\n\t\tcase -4: size = 4; __writeInt32LE(this, val, this.l); break;\n\t}\n\tthis.l += size; return this;\n}\n\nfunction CheckField(hexstr/*:string*/, fld/*:string*/)/*:void*/ {\n\tvar m = __hexlify(this,this.l,hexstr.length>>1);\n\tif(m !== hexstr) throw new Error(fld + 'Expected ' + hexstr + ' saw ' + m);\n\tthis.l += hexstr.length>>1;\n}\n\nfunction prep_blob(blob, pos/*:number*/)/*:void*/ {\n\tblob.l = pos;\n\tblob.read_shift = /*::(*/ReadShift/*:: :any)*/;\n\tblob.chk = CheckField;\n\tblob.write_shift = WriteShift;\n}\n\nfunction parsenoop(blob, length/*:: :number, opts?:any */) { blob.l += length; }\n\nfunction new_buf(sz/*:number*/)/*:Block*/ {\n\tvar o = new_raw_buf(sz);\n\tprep_blob(o, 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.1.4 Record */\nfunction recordhopper(data, cb/*:RecordHopperCB*/, opts/*:?any*/) {\n\tif(!data) return;\n\tvar tmpbyte, cntbyte, length;\n\tprep_blob(data, data.l || 0);\n\tvar L = data.length, RT = 0, tgt = 0;\n\twhile(data.l < L) {\n\t\tRT = data.read_shift(1);\n\t\tif(RT & 0x80) RT = (RT & 0x7F) + ((data.read_shift(1) & 0x7F)<<7);\n\t\tvar R = XLSBRecordEnum[RT] || XLSBRecordEnum[0xFFFF];\n\t\ttmpbyte = data.read_shift(1);\n\t\tlength = tmpbyte & 0x7F;\n\t\tfor(cntbyte = 1; cntbyte <4 && (tmpbyte & 0x80); ++cntbyte) length += ((tmpbyte = data.read_shift(1)) & 0x7F)<<(7*cntbyte);\n\t\ttgt = data.l + length;\n\t\tvar d = R.f && R.f(data, length, opts);\n\t\tdata.l = tgt;\n\t\tif(cb(d, R, RT)) return;\n\t}\n}\n\n/* control buffer usage for fixed-length buffers */\nfunction buf_array()/*:BufArray*/ {\n\tvar bufs/*:Array<Block>*/ = [], blksz = has_buf ? 256 : 2048;\n\tvar newblk = function ba_newblk(sz/*:number*/)/*:Block*/ {\n\t\tvar o/*:Block*/ = (new_buf(sz)/*:any*/);\n\t\tprep_blob(o, 0);\n\t\treturn o;\n\t};\n\n\tvar curbuf/*:Block*/ = newblk(blksz);\n\n\tvar endbuf = function ba_endbuf() {\n\t\tif(!curbuf) return;\n\t\t// workaround for new Buffer(3).slice(0,0) bug in bun 0.1.3\n\t\tif(curbuf.l) {\n\t\t\tif(curbuf.length > curbuf.l) { curbuf = curbuf.slice(0, curbuf.l); curbuf.l = curbuf.length; }\n\t\t\tif(curbuf.length > 0) bufs.push(curbuf);\n\t\t}\n\t\tcurbuf = null;\n\t};\n\n\tvar next = function ba_next(sz/*:number*/)/*:Block*/ {\n\t\tif(curbuf && (sz < (curbuf.length - curbuf.l))) return curbuf;\n\t\tendbuf();\n\t\treturn (curbuf = newblk(Math.max(sz+1, blksz)));\n\t};\n\n\tvar end = function ba_end() {\n\t\tendbuf();\n\t\treturn bconcat(bufs);\n\t};\n\n\tvar push = function ba_push(buf) { endbuf(); curbuf = buf; if(curbuf.l == null) curbuf.l = curbuf.length; next(blksz); };\n\n\treturn ({ next:next, push:push, end:end, _bufs:bufs }/*:any*/);\n}\n\nfunction write_record(ba/*:BufArray*/, type/*:number*/, payload, length/*:?number*/) {\n\tvar t/*:number*/ = +type, l;\n\tif(isNaN(t)) return; // TODO: throw something here?\n\tif(!length) length = XLSBRecordEnum[t].p || (payload||[]).length || 0;\n\tl = 1 + (t >= 0x80 ? 1 : 0) + 1/* + length*/;\n\tif(length >= 0x80) ++l; if(length >= 0x4000) ++l; if(length >= 0x200000) ++l;\n\tvar o = ba.next(l);\n\tif(t <= 0x7F) o.write_shift(1, t);\n\telse {\n\t\to.write_shift(1, (t & 0x7F) + 0x80);\n\t\to.write_shift(1, (t >> 7));\n\t}\n\tfor(var i = 0; i != 4; ++i) {\n\t\tif(length >= 0x80) { o.write_shift(1, (length & 0x7F)+0x80); length >>= 7; }\n\t\telse { o.write_shift(1, length); break; }\n\t}\n\tif(/*:: length != null &&*/length > 0 && is_buf(payload)) ba.push(payload);\n}\n/* XLS ranges enforced */\nfunction shift_cell_xls(cell/*:CellAddress*/, tgt/*:any*/, opts/*:?any*/)/*:CellAddress*/ {\n\tvar out = dup(cell);\n\tif(tgt.s) {\n\t\tif(out.cRel) out.c += tgt.s.c;\n\t\tif(out.rRel) out.r += tgt.s.r;\n\t} else {\n\t\tif(out.cRel) out.c += tgt.c;\n\t\tif(out.rRel) out.r += tgt.r;\n\t}\n\tif(!opts || opts.biff < 12) {\n\t\twhile(out.c >= 0x100) out.c -= 0x100;\n\t\twhile(out.r >= 0x10000) out.r -= 0x10000;\n\t}\n\treturn out;\n}\n\nfunction shift_range_xls(cell, range, opts) {\n\tvar out = dup(cell);\n\tout.s = shift_cell_xls(out.s, range.s, opts);\n\tout.e = shift_cell_xls(out.e, range.s, opts);\n\treturn out;\n}\n\nfunction encode_cell_xls(c/*:CellAddress*/, biff/*:number*/)/*:string*/ {\n\tif(c.cRel && c.c < 0) { c = dup(c); while(c.c < 0) c.c += (biff > 8) ? 0x4000 : 0x100; }\n\tif(c.rRel && c.r < 0) { c = dup(c); while(c.r < 0) c.r += (biff > 8) ? 0x100000 : ((biff > 5) ? 0x10000 : 0x4000); }\n\tvar s = encode_cell(c);\n\tif(!c.cRel && c.cRel != null) s = fix_col(s);\n\tif(!c.rRel && c.rRel != null) s = fix_row(s);\n\treturn s;\n}\n\nfunction encode_range_xls(r, opts)/*:string*/ {\n\tif(r.s.r == 0 && !r.s.rRel) {\n\t\tif(r.e.r == (opts.biff >= 12 ? 0xFFFFF : (opts.biff >= 8 ? 0x10000 : 0x4000)) && !r.e.rRel) {\n\t\t\treturn (r.s.cRel ? \"\" : \"$\") + encode_col(r.s.c) + \":\" + (r.e.cRel ? \"\" : \"$\") + encode_col(r.e.c);\n\t\t}\n\t}\n\tif(r.s.c == 0 && !r.s.cRel) {\n\t\tif(r.e.c == (opts.biff >= 12 ? 0x3FFF : 0xFF) && !r.e.cRel) {\n\t\t\treturn (r.s.rRel ? \"\" : \"$\") + encode_row(r.s.r) + \":\" + (r.e.rRel ? \"\" : \"$\") + encode_row(r.e.r);\n\t\t}\n\t}\n\treturn encode_cell_xls(r.s, opts.biff) + \":\" + encode_cell_xls(r.e, opts.biff);\n}\nfunction decode_row(rowstr/*:string*/)/*:number*/ { return parseInt(unfix_row(rowstr),10) - 1; }\nfunction encode_row(row/*:number*/)/*:string*/ { return \"\" + (row + 1); }\nfunction fix_row(cstr/*:string*/)/*:string*/ { return cstr.replace(/([A-Z]|^)(\\d+)$/,\"$1$$$2\"); }\nfunction unfix_row(cstr/*:string*/)/*:string*/ { return cstr.replace(/\\$(\\d+)$/,\"$1\"); }\n\nfunction decode_col(colstr/*:string*/)/*:number*/ { var c = unfix_col(colstr), d = 0, i = 0; for(; i !== c.length; ++i) d = 26*d + c.charCodeAt(i) - 64; return d - 1; }\nfunction encode_col(col/*:number*/)/*:string*/ { if(col < 0) throw new Error(\"invalid column \" + col); var s=\"\"; for(++col; col; col=Math.floor((col-1)/26)) s = String.fromCharCode(((col-1)%26) + 65) + s; return s; }\nfunction fix_col(cstr/*:string*/)/*:string*/ { return cstr.replace(/^([A-Z])/,\"$$$1\"); }\nfunction unfix_col(cstr/*:string*/)/*:string*/ { return cstr.replace(/^\\$([A-Z])/,\"$1\"); }\n\nfunction split_cell(cstr/*:string*/)/*:Array<string>*/ { return cstr.replace(/(\\$?[A-Z]*)(\\$?\\d*)/,\"$1,$2\").split(\",\"); }\nfunction decode_cell(cstr/*:string*/)/*:CellAddress*/ {\n\tvar R = 0, C = 0;\n\tfor(var i = 0; i < cstr.length; ++i) {\n\t\tvar cc = cstr.charCodeAt(i);\n\t\tif(cc >= 48 && cc <= 57) R = 10 * R + (cc - 48);\n\t\telse if(cc >= 65 && cc <= 90) C = 26 * C + (cc - 64);\n\t}\n\treturn { c: C - 1, r:R - 1 };\n}\nfunction encode_cell(cell/*:CellAddress*/)/*:string*/ {\n\tvar col = cell.c + 1;\n\tvar s=\"\";\n\tfor(; col; col=((col-1)/26)|0) s = String.fromCharCode(((col-1)%26) + 65) + s;\n\treturn s + (cell.r + 1);\n}\nfunction decode_range(range/*:string*/)/*:Range*/ {\n\tvar idx = range.indexOf(\":\");\n\tif(idx == -1) return { s: decode_cell(range), e: decode_cell(range) };\n\treturn { s: decode_cell(range.slice(0, idx)), e: decode_cell(range.slice(idx + 1)) };\n}\n/*# if only one arg, it is assumed to be a Range. If 2 args, both are cell addresses */\nfunction encode_range(cs/*:CellAddrSpec|Range*/,ce/*:?CellAddrSpec*/)/*:string*/ {\n\tif(typeof ce === 'undefined' || typeof ce === 'number') {\n/*:: if(!(cs instanceof Range)) throw \"unreachable\"; */\n\t\treturn encode_range(cs.s, cs.e);\n\t}\n/*:: if((cs instanceof Range)) throw \"unreachable\"; */\n\tif(typeof cs !== 'string') cs = encode_cell((cs/*:any*/));\n\tif(typeof ce !== 'string') ce = encode_cell((ce/*:any*/));\n/*:: if(typeof cs !== 'string') throw \"unreachable\"; */\n/*:: if(typeof ce !== 'string') throw \"unreachable\"; */\n\treturn cs == ce ? cs : cs + \":\" + ce;\n}\nfunction fix_range(a1/*:string*/)/*:string*/ {\n\tvar s = decode_range(a1);\n\treturn \"$\" + encode_col(s.s.c) + \"$\" + encode_row(s.s.r) + \":$\" + encode_col(s.e.c) + \"$\" + encode_row(s.e.r);\n}\n\n// List of invalid characters needs to be tested further\nfunction formula_quote_sheet_name(sname/*:string*/, opts)/*:string*/ {\n\tif(!sname && !(opts && opts.biff <= 5 && opts.biff >= 2)) throw new Error(\"empty sheet name\");\n\tif (/[^\\w\\u4E00-\\u9FFF\\u3040-\\u30FF]/.test(sname)) return \"'\" + sname.replace(/'/g, \"''\") + \"'\";\n\treturn sname;\n}\n\nfunction safe_decode_range(range/*:string*/)/*:Range*/ {\n\tvar o = {s:{c:0,r:0},e:{c:0,r:0}};\n\tvar idx = 0, i = 0, cc = 0;\n\tvar len = range.length;\n\tfor(idx = 0; i < len; ++i) {\n\t\tif((cc=range.charCodeAt(i)-64) < 1 || cc > 26) break;\n\t\tidx = 26*idx + cc;\n\t}\n\to.s.c = --idx;\n\n\tfor(idx = 0; i < len; ++i) {\n\t\tif((cc=range.charCodeAt(i)-48) < 0 || cc > 9) break;\n\t\tidx = 10*idx + cc;\n\t}\n\to.s.r = --idx;\n\n\tif(i === len || cc != 10) { o.e.c=o.s.c; o.e.r=o.s.r; return o; }\n\t++i;\n\n\tfor(idx = 0; i != len; ++i) {\n\t\tif((cc=range.charCodeAt(i)-64) < 1 || cc > 26) break;\n\t\tidx = 26*idx + cc;\n\t}\n\to.e.c = --idx;\n\n\tfor(idx = 0; i != len; ++i) {\n\t\tif((cc=range.charCodeAt(i)-48) < 0 || cc > 9) break;\n\t\tidx = 10*idx + cc;\n\t}\n\to.e.r = --idx;\n\treturn o;\n}\n\nfunction safe_format_cell(cell/*:Cell*/, v/*:any*/) {\n\tvar q = (cell.t == 'd' && v instanceof Date);\n\tif(cell.z != null) try { return (cell.w = SSF_format(cell.z, q ? datenum(v) : v)); } catch(e) { }\n\ttry { return (cell.w = SSF_format((cell.XF||{}).numFmtId||(q ? 14 : 0), q ? datenum(v) : v)); } catch(e) { return ''+v; }\n}\n\nfunction format_cell(cell/*:Cell*/, v/*:any*/, o/*:any*/) {\n\tif(cell == null || cell.t == null || cell.t == 'z') return \"\";\n\tif(cell.w !== undefined) return cell.w;\n\tif(cell.t == 'd' && !cell.z && o && o.dateNF) cell.z = o.dateNF;\n\tif(cell.t == \"e\") return BErr[cell.v] || cell.v;\n\tif(v == undefined) return safe_format_cell(cell, cell.v);\n\treturn safe_format_cell(cell, v);\n}\n\nfunction sheet_to_workbook(sheet/*:Worksheet*/, opts)/*:Workbook*/ {\n\tvar n = opts && opts.sheet ? opts.sheet : \"Sheet1\";\n\tvar sheets = {}; sheets[n] = sheet;\n\treturn { SheetNames: [n], Sheets: sheets };\n}\n\nfunction sheet_add_aoa(_ws/*:?Worksheet*/, data/*:AOA*/, opts/*:?any*/)/*:Worksheet*/ {\n\tvar o = opts || {};\n\tvar dense = _ws ? (_ws[\"!data\"] != null) : o.dense;\n\tif(DENSE != null && dense == null) dense = DENSE;\n\tvar ws/*:Worksheet*/ = _ws || ({}/*:any*/);\n\tif(dense && !ws[\"!data\"]) ws[\"!data\"] = [];\n\tvar _R = 0, _C = 0;\n\tif(ws && o.origin != null) {\n\t\tif(typeof o.origin == 'number') _R = o.origin;\n\t\telse {\n\t\t\tvar _origin/*:CellAddress*/ = typeof o.origin == \"string\" ? decode_cell(o.origin) : o.origin;\n\t\t\t_R = _origin.r; _C = _origin.c;\n\t\t}\n\t\tif(!ws[\"!ref\"]) ws[\"!ref\"] = \"A1:A1\";\n\t}\n\tvar range/*:Range*/ = ({s: {c:10000000, r:10000000}, e: {c:0, r:0}}/*:any*/);\n\tif(ws['!ref']) {\n\t\tvar _range = safe_decode_range(ws['!ref']);\n\t\trange.s.c = _range.s.c;\n\t\trange.s.r = _range.s.r;\n\t\trange.e.c = Math.max(range.e.c, _range.e.c);\n\t\trange.e.r = Math.max(range.e.r, _range.e.r);\n\t\tif(_R == -1) range.e.r = _R = _range.e.r + 1;\n\t}\n\tvar row = [];\n\tfor(var R = 0; R != data.length; ++R) {\n\t\tif(!data[R]) continue;\n\t\tif(!Array.isArray(data[R])) throw new Error(\"aoa_to_sheet expects an array of arrays\");\n\t\tvar __R = _R + R, __Rstr = \"\" + (__R + 1);\n\t\tif(dense) {\n\t\t\tif(!ws[\"!data\"][__R]) ws[\"!data\"][__R] = [];\n\t\t\trow = ws[\"!data\"][__R];\n\t\t}\n\t\tfor(var C = 0; C != data[R].length; ++C) {\n\t\t\tif(typeof data[R][C] === 'undefined') continue;\n\t\t\tvar cell/*:Cell*/ = ({v: data[R][C] }/*:any*/);\n\t\t\tvar __C = _C + C;\n\t\t\tif(range.s.r > __R) range.s.r = __R;\n\t\t\tif(range.s.c > __C) range.s.c = __C;\n\t\t\tif(range.e.r < __R) range.e.r = __R;\n\t\t\tif(range.e.c < __C) range.e.c = __C;\n\t\t\tif(data[R][C] && typeof data[R][C] === 'object' && !Array.isArray(data[R][C]) && !(data[R][C] instanceof Date)) cell = data[R][C];\n\t\t\telse {\n\t\t\t\tif(Array.isArray(cell.v)) { cell.f = data[R][C][1]; cell.v = cell.v[0]; }\n\t\t\t\tif(cell.v === null) {\n\t\t\t\t\tif(cell.f) cell.t = 'n';\n\t\t\t\t\telse if(o.nullError) { cell.t = 'e'; cell.v = 0; }\n\t\t\t\t\telse if(!o.sheetStubs) continue;\n\t\t\t\t\telse cell.t = 'z';\n\t\t\t\t}\n\t\t\t\telse if(typeof cell.v === 'number') cell.t = 'n';\n\t\t\t\telse if(typeof cell.v === 'boolean') cell.t = 'b';\n\t\t\t\telse if(cell.v instanceof Date) {\n\t\t\t\t\tcell.z = o.dateNF || table_fmt[14];\n\t\t\t\t\tif(o.cellDates) { cell.t = 'd'; cell.w = SSF_format(cell.z, datenum(cell.v, o.date1904)); }\n\t\t\t\t\telse { cell.t = 'n'; cell.v = datenum(cell.v, o.date1904); cell.w = SSF_format(cell.z, cell.v); }\n\t\t\t\t}\n\t\t\t\telse cell.t = 's';\n\t\t\t}\n\t\t\tif(dense) {\n\t\t\t\tif(row[__C] && row[__C].z) cell.z = row[__C].z;\n\t\t\t\trow[__C] = cell;\n\t\t\t} else {\n\t\t\t\tvar cell_ref = encode_col(__C) + __Rstr/*:any*/;\n\t\t\t\tif(ws[cell_ref] && ws[cell_ref].z) cell.z = ws[cell_ref].z;\n\t\t\t\tws[cell_ref] = cell;\n\t\t\t}\n\t\t}\n\t}\n\tif(range.s.c < 10000000) ws['!ref'] = encode_range(range);\n\treturn ws;\n}\nfunction aoa_to_sheet(data/*:AOA*/, opts/*:?any*/)/*:Worksheet*/ { return sheet_add_aoa(null, data, opts); }\n\nfunction parse_Int32LE(data) {\n\treturn data.read_shift(4, 'i');\n}\nfunction write_UInt32LE(x/*:number*/, o) {\n\tif (!o) o = new_buf(4);\n\to.write_shift(4, x);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.168 */\nfunction parse_XLWideString(data/*::, length*/)/*:string*/ {\n\tvar cchCharacters = data.read_shift(4);\n\treturn cchCharacters === 0 ? \"\" : data.read_shift(cchCharacters, 'dbcs');\n}\nfunction write_XLWideString(data/*:string*/, o) {\n\tvar _null = false; if (o == null) { _null = true; o = new_buf(4 + 2 * data.length); }\n\to.write_shift(4, data.length);\n\tif (data.length > 0) o.write_shift(0, data, 'dbcs');\n\treturn _null ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.5.91 */\n//function parse_LPWideString(data/*::, length*/)/*:string*/ {\n//\tvar cchCharacters = data.read_shift(2);\n//\treturn cchCharacters === 0 ? \"\" : data.read_shift(cchCharacters, \"utf16le\");\n//}\n\n/* [MS-XLSB] 2.5.143 */\nfunction parse_StrRun(data) {\n\treturn { ich: data.read_shift(2), ifnt: data.read_shift(2) };\n}\nfunction write_StrRun(run, o) {\n\tif (!o) o = new_buf(4);\n\to.write_shift(2, run.ich || 0);\n\to.write_shift(2, run.ifnt || 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.121 */\nfunction parse_RichStr(data, length/*:number*/)/*:XLString*/ {\n\tvar start = data.l;\n\tvar flags = data.read_shift(1);\n\tvar str = parse_XLWideString(data);\n\tvar rgsStrRun = [];\n\tvar z = ({ t: str, h: str }/*:any*/);\n\tif ((flags & 1) !== 0) { /* fRichStr */\n\t\t/* TODO: formatted string */\n\t\tvar dwSizeStrRun = data.read_shift(4);\n\t\tfor (var i = 0; i != dwSizeStrRun; ++i) rgsStrRun.push(parse_StrRun(data));\n\t\tz.r = rgsStrRun;\n\t}\n\telse z.r = [{ ich: 0, ifnt: 0 }];\n\t//if((flags & 2) !== 0) { /* fExtStr */\n\t//\t/* TODO: phonetic string */\n\t//}\n\tdata.l = start + length;\n\treturn z;\n}\nfunction write_RichStr(str/*:XLString*/, o/*:?Block*/)/*:Block*/ {\n\t/* TODO: formatted string */\n\tvar _null = false; if (o == null) { _null = true; o = new_buf(15 + 4 * str.t.length); }\n\to.write_shift(1, 0);\n\twrite_XLWideString(str.t, o);\n\treturn _null ? o.slice(0, o.l) : o;\n}\n/* [MS-XLSB] 2.4.328 BrtCommentText (RichStr w/1 run) */\nvar parse_BrtCommentText = parse_RichStr;\nfunction write_BrtCommentText(str/*:XLString*/, o/*:?Block*/)/*:Block*/ {\n\t/* TODO: formatted string */\n\tvar _null = false; if (o == null) { _null = true; o = new_buf(23 + 4 * str.t.length); }\n\to.write_shift(1, 1);\n\twrite_XLWideString(str.t, o);\n\to.write_shift(4, 1);\n\twrite_StrRun({ ich: 0, ifnt: 0 }, o);\n\treturn _null ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.5.9 */\nfunction parse_XLSBCell(data)/*:any*/ {\n\tvar col = data.read_shift(4);\n\tvar iStyleRef = data.read_shift(2);\n\tiStyleRef += data.read_shift(1) << 16;\n\tdata.l++; //var fPhShow = data.read_shift(1);\n\treturn { c: col, iStyleRef: iStyleRef };\n}\nfunction write_XLSBCell(cell/*:any*/, o/*:?Block*/) {\n\tif (o == null) o = new_buf(8);\n\to.write_shift(-4, cell.c);\n\to.write_shift(3, cell.iStyleRef || cell.s);\n\to.write_shift(1, 0); /* fPhShow */\n\treturn o;\n}\n\n/* Short XLSB Cell does not include column */\nfunction parse_XLSBShortCell(data)/*:any*/ {\n\tvar iStyleRef = data.read_shift(2);\n\tiStyleRef += data.read_shift(1) <<16;\n\tdata.l++; //var fPhShow = data.read_shift(1);\n\treturn { c:-1, iStyleRef: iStyleRef };\n}\nfunction write_XLSBShortCell(cell/*:any*/, o/*:?Block*/) {\n\tif(o == null) o = new_buf(4);\n\to.write_shift(3, cell.iStyleRef || cell.s);\n\to.write_shift(1, 0); /* fPhShow */\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.21 */\nvar parse_XLSBCodeName = parse_XLWideString;\nvar write_XLSBCodeName = write_XLWideString;\n\n/* [MS-XLSB] 2.5.166 */\nfunction parse_XLNullableWideString(data/*::, length*/)/*:string*/ {\n\tvar cchCharacters = data.read_shift(4);\n\treturn cchCharacters === 0 || cchCharacters === 0xFFFFFFFF ? \"\" : data.read_shift(cchCharacters, 'dbcs');\n}\nfunction write_XLNullableWideString(data/*:string*/, o) {\n\tvar _null = false; if (o == null) { _null = true; o = new_buf(127); }\n\to.write_shift(4, data.length > 0 ? data.length : 0xFFFFFFFF);\n\tif (data.length > 0) o.write_shift(0, data, 'dbcs');\n\treturn _null ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.5.165 */\nvar parse_XLNameWideString = parse_XLWideString;\n//var write_XLNameWideString = write_XLWideString;\n\n/* [MS-XLSB] 2.5.114 */\nvar parse_RelID = parse_XLNullableWideString;\nvar write_RelID = write_XLNullableWideString;\n\n\n/* [MS-XLS] 2.5.217 ; [MS-XLSB] 2.5.122 */\nfunction parse_RkNumber(data)/*:number*/ {\n\tvar b = data.slice(data.l, data.l + 4);\n\tvar fX100 = (b[0] & 1), fInt = (b[0] & 2);\n\tdata.l += 4;\n\tvar RK = fInt === 0 ? __double([0, 0, 0, 0, (b[0] & 0xFC), b[1], b[2], b[3]], 0) : __readInt32LE(b, 0) >> 2;\n\treturn fX100 ? (RK / 100) : RK;\n}\nfunction write_RkNumber(data/*:number*/, o) {\n\tif (o == null) o = new_buf(4);\n\tvar fX100 = 0, fInt = 0, d100 = data * 100;\n\tif ((data == (data | 0)) && (data >= -(1 << 29)) && (data < (1 << 29))) { fInt = 1; }\n\telse if ((d100 == (d100 | 0)) && (d100 >= -(1 << 29)) && (d100 < (1 << 29))) { fInt = 1; fX100 = 1; }\n\tif (fInt) o.write_shift(-4, ((fX100 ? d100 : data) << 2) + (fX100 + 2));\n\telse throw new Error(\"unsupported RkNumber \" + data); // TODO\n}\n\n\n/* [MS-XLSB] 2.5.117 RfX */\nfunction parse_RfX(data /*::, length*/)/*:Range*/ {\n\tvar cell/*:Range*/ = ({ s: {}, e: {} }/*:any*/);\n\tcell.s.r = data.read_shift(4);\n\tcell.e.r = data.read_shift(4);\n\tcell.s.c = data.read_shift(4);\n\tcell.e.c = data.read_shift(4);\n\treturn cell;\n}\nfunction write_RfX(r/*:Range*/, o) {\n\tif (!o) o = new_buf(16);\n\to.write_shift(4, r.s.r);\n\to.write_shift(4, r.e.r);\n\to.write_shift(4, r.s.c);\n\to.write_shift(4, r.e.c);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.153 UncheckedRfX */\nvar parse_UncheckedRfX = parse_RfX;\nvar write_UncheckedRfX = write_RfX;\n\n/* [MS-XLSB] 2.5.155 UncheckedSqRfX */\n//function parse_UncheckedSqRfX(data) {\n//\tvar cnt = data.read_shift(4);\n//\tvar out = [];\n//\tfor(var i = 0; i < cnt; ++i) {\n//\t\tvar rng = parse_UncheckedRfX(data);\n//\t\tout.push(encode_range(rng));\n//\t}\n//\treturn out.join(\",\");\n//}\n//function write_UncheckedSqRfX(sqrfx/*:string*/) {\n//\tvar parts = sqrfx.split(/\\s*,\\s*/);\n//\tvar o = new_buf(4); o.write_shift(4, parts.length);\n//\tvar out = [o];\n//\tparts.forEach(function(rng) {\n//\t\tout.push(write_UncheckedRfX(safe_decode_range(rng)));\n//\t});\n//\treturn bconcat(out);\n//}\n\n/* [MS-XLS] 2.5.342 ; [MS-XLSB] 2.5.171 */\n/* TODO: error checking, NaN and Infinity values are not valid Xnum */\nfunction parse_Xnum(data/*::, length*/) {\n\tif(data.length - data.l < 8) throw \"XLS Xnum Buffer underflow\";\n\treturn data.read_shift(8, 'f');\n}\nfunction write_Xnum(data, o) { return (o || new_buf(8)).write_shift(8, data, 'f'); }\n\n/* [MS-XLSB] 2.4.324 BrtColor */\nfunction parse_BrtColor(data/*::, length*/) {\n\tvar out = {};\n\tvar d = data.read_shift(1);\n\n\t//var fValidRGB = d & 1;\n\tvar xColorType = d >>> 1;\n\n\tvar index = data.read_shift(1);\n\tvar nTS = data.read_shift(2, 'i');\n\tvar bR = data.read_shift(1);\n\tvar bG = data.read_shift(1);\n\tvar bB = data.read_shift(1);\n\tdata.l++; //var bAlpha = data.read_shift(1);\n\n\tswitch (xColorType) {\n\t\tcase 0: out.auto = 1; break;\n\t\tcase 1:\n\t\t\tout.index = index;\n\t\t\tvar icv = XLSIcv[index];\n\t\t\t/* automatic pseudo index 81 */\n\t\t\tif (icv) out.rgb = rgb2Hex(icv);\n\t\t\tbreak;\n\t\tcase 2:\n\t\t\t/* if(!fValidRGB) throw new Error(\"invalid\"); */\n\t\t\tout.rgb = rgb2Hex([bR, bG, bB]);\n\t\t\tbreak;\n\t\tcase 3: out.theme = index; break;\n\t}\n\tif (nTS != 0) out.tint = nTS > 0 ? nTS / 32767 : nTS / 32768;\n\n\treturn out;\n}\nfunction write_BrtColor(color, o) {\n\tif (!o) o = new_buf(8);\n\tif (!color || color.auto) { o.write_shift(4, 0); o.write_shift(4, 0); return o; }\n\tif (color.index != null) {\n\t\to.write_shift(1, 0x02);\n\t\to.write_shift(1, color.index);\n\t} else if (color.theme != null) {\n\t\to.write_shift(1, 0x06);\n\t\to.write_shift(1, color.theme);\n\t} else {\n\t\to.write_shift(1, 0x05);\n\t\to.write_shift(1, 0);\n\t}\n\tvar nTS = color.tint || 0;\n\tif (nTS > 0) nTS *= 32767;\n\telse if (nTS < 0) nTS *= 32768;\n\to.write_shift(2, nTS);\n\tif (!color.rgb || color.theme != null) {\n\t\to.write_shift(2, 0);\n\t\to.write_shift(1, 0);\n\t\to.write_shift(1, 0);\n\t} else {\n\t\tvar rgb = (color.rgb || 'FFFFFF');\n\t\tif (typeof rgb == 'number') rgb = (\"000000\" + rgb.toString(16)).slice(-6);\n\t\to.write_shift(1, parseInt(rgb.slice(0, 2), 16));\n\t\to.write_shift(1, parseInt(rgb.slice(2, 4), 16));\n\t\to.write_shift(1, parseInt(rgb.slice(4, 6), 16));\n\t\to.write_shift(1, 0xFF);\n\t}\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.52 */\nfunction parse_FontFlags(data/*::, length, opts*/) {\n\tvar d = data.read_shift(1);\n\tdata.l++;\n\tvar out = {\n\t\tfBold: d & 0x01,\n\t\tfItalic: d & 0x02,\n\t\tfUnderline: d & 0x04,\n\t\tfStrikeout: d & 0x08,\n\t\tfOutline: d & 0x10,\n\t\tfShadow: d & 0x20,\n\t\tfCondense: d & 0x40,\n\t\tfExtend: d & 0x80\n\t};\n\treturn out;\n}\nfunction write_FontFlags(font, o) {\n\tif (!o) o = new_buf(2);\n\tvar grbit =\n\t\t(font.italic ? 0x02 : 0) |\n\t\t(font.strike ? 0x08 : 0) |\n\t\t(font.outline ? 0x10 : 0) |\n\t\t(font.shadow ? 0x20 : 0) |\n\t\t(font.condense ? 0x40 : 0) |\n\t\t(font.extend ? 0x80 : 0);\n\to.write_shift(1, grbit);\n\to.write_shift(1, 0);\n\treturn o;\n}\n\n/* [MS-OLEDS] 2.3.1 and 2.3.2 */\nfunction parse_ClipboardFormatOrString(o, w/*:number*/)/*:string*/ {\n\t// $FlowIgnore\n\tvar ClipFmt = { 2: \"BITMAP\", 3: \"METAFILEPICT\", 8: \"DIB\", 14: \"ENHMETAFILE\" };\n\tvar m/*:number*/ = o.read_shift(4);\n\tswitch (m) {\n\t\tcase 0x00000000: return \"\";\n\t\tcase 0xffffffff: case 0xfffffffe: return ClipFmt[o.read_shift(4)] || \"\";\n\t}\n\tif (m > 0x190) throw new Error(\"Unsupported Clipboard: \" + m.toString(16));\n\to.l -= 4;\n\treturn o.read_shift(0, w == 1 ? \"lpstr\" : \"lpwstr\");\n}\nfunction parse_ClipboardFormatOrAnsiString(o) { return parse_ClipboardFormatOrString(o, 1); }\nfunction parse_ClipboardFormatOrUnicodeString(o) { return parse_ClipboardFormatOrString(o, 2); }\n\n/* [MS-OLEPS] 2.2 PropertyType */\n// Note: some tree shakers cannot handle VT_VECTOR | $CONST, hence extra vars\n//var VT_EMPTY = 0x0000;\n//var VT_NULL = 0x0001;\nvar VT_I2 = 0x0002;\nvar VT_I4 = 0x0003;\n//var VT_R4 = 0x0004;\n//var VT_R8 = 0x0005;\n//var VT_CY = 0x0006;\n//var VT_DATE = 0x0007;\n//var VT_BSTR = 0x0008;\n//var VT_ERROR = 0x000A;\nvar VT_BOOL = 0x000B;\nvar VT_VARIANT = 0x000C;\n//var VT_DECIMAL = 0x000E;\n//var VT_I1 = 0x0010;\n//var VT_UI1 = 0x0011;\n//var VT_UI2 = 0x0012;\nvar VT_UI4 = 0x0013;\n//var VT_I8 = 0x0014;\n//var VT_UI8 = 0x0015;\n//var VT_INT = 0x0016;\n//var VT_UINT = 0x0017;\n//var VT_LPSTR = 0x001E;\n//var VT_LPWSTR = 0x001F;\nvar VT_FILETIME = 0x0040;\nvar VT_BLOB = 0x0041;\n//var VT_STREAM = 0x0042;\n//var VT_STORAGE = 0x0043;\n//var VT_STREAMED_Object = 0x0044;\n//var VT_STORED_Object = 0x0045;\n//var VT_BLOB_Object = 0x0046;\nvar VT_CF = 0x0047;\n//var VT_CLSID = 0x0048;\n//var VT_VERSIONED_STREAM = 0x0049;\n//var VT_VECTOR = 0x1000;\nvar VT_VECTOR_VARIANT = 0x100C;\nvar VT_VECTOR_LPSTR = 0x101E;\n//var VT_ARRAY = 0x2000;\n\nvar VT_STRING = 0x0050; // 2.3.3.1.11 VtString\nvar VT_USTR = 0x0051; // 2.3.3.1.12 VtUnalignedString\nvar VT_CUSTOM = [VT_STRING, VT_USTR];\n\n/* [MS-OSHARED] 2.3.3.2.2.1 Document Summary Information PIDDSI */\nvar DocSummaryPIDDSI = {\n\t/*::[*/0x01/*::]*/: { n: 'CodePage', t: VT_I2 },\n\t/*::[*/0x02/*::]*/: { n: 'Category', t: VT_STRING },\n\t/*::[*/0x03/*::]*/: { n: 'PresentationFormat', t: VT_STRING },\n\t/*::[*/0x04/*::]*/: { n: 'ByteCount', t: VT_I4 },\n\t/*::[*/0x05/*::]*/: { n: 'LineCount', t: VT_I4 },\n\t/*::[*/0x06/*::]*/: { n: 'ParagraphCount', t: VT_I4 },\n\t/*::[*/0x07/*::]*/: { n: 'SlideCount', t: VT_I4 },\n\t/*::[*/0x08/*::]*/: { n: 'NoteCount', t: VT_I4 },\n\t/*::[*/0x09/*::]*/: { n: 'HiddenCount', t: VT_I4 },\n\t/*::[*/0x0a/*::]*/: { n: 'MultimediaClipCount', t: VT_I4 },\n\t/*::[*/0x0b/*::]*/: { n: 'ScaleCrop', t: VT_BOOL },\n\t/*::[*/0x0c/*::]*/: { n: 'HeadingPairs', t: VT_VECTOR_VARIANT /* VT_VECTOR | VT_VARIANT */ },\n\t/*::[*/0x0d/*::]*/: { n: 'TitlesOfParts', t: VT_VECTOR_LPSTR /* VT_VECTOR | VT_LPSTR */ },\n\t/*::[*/0x0e/*::]*/: { n: 'Manager', t: VT_STRING },\n\t/*::[*/0x0f/*::]*/: { n: 'Company', t: VT_STRING },\n\t/*::[*/0x10/*::]*/: { n: 'LinksUpToDate', t: VT_BOOL },\n\t/*::[*/0x11/*::]*/: { n: 'CharacterCount', t: VT_I4 },\n\t/*::[*/0x13/*::]*/: { n: 'SharedDoc', t: VT_BOOL },\n\t/*::[*/0x16/*::]*/: { n: 'HyperlinksChanged', t: VT_BOOL },\n\t/*::[*/0x17/*::]*/: { n: 'AppVersion', t: VT_I4, p: 'version' },\n\t/*::[*/0x18/*::]*/: { n: 'DigSig', t: VT_BLOB },\n\t/*::[*/0x1A/*::]*/: { n: 'ContentType', t: VT_STRING },\n\t/*::[*/0x1B/*::]*/: { n: 'ContentStatus', t: VT_STRING },\n\t/*::[*/0x1C/*::]*/: { n: 'Language', t: VT_STRING },\n\t/*::[*/0x1D/*::]*/: { n: 'Version', t: VT_STRING },\n\t/*::[*/0xFF/*::]*/: {},\n\t/* [MS-OLEPS] 2.18 */\n\t/*::[*/0x80000000/*::]*/: { n: 'Locale', t: VT_UI4 },\n\t/*::[*/0x80000003/*::]*/: { n: 'Behavior', t: VT_UI4 },\n\t/*::[*/0x72627262/*::]*/: {}\n};\n\n/* [MS-OSHARED] 2.3.3.2.1.1 Summary Information Property Set PIDSI */\nvar SummaryPIDSI = {\n\t/*::[*/0x01/*::]*/: { n: 'CodePage', t: VT_I2 },\n\t/*::[*/0x02/*::]*/: { n: 'Title', t: VT_STRING },\n\t/*::[*/0x03/*::]*/: { n: 'Subject', t: VT_STRING },\n\t/*::[*/0x04/*::]*/: { n: 'Author', t: VT_STRING },\n\t/*::[*/0x05/*::]*/: { n: 'Keywords', t: VT_STRING },\n\t/*::[*/0x06/*::]*/: { n: 'Comments', t: VT_STRING },\n\t/*::[*/0x07/*::]*/: { n: 'Template', t: VT_STRING },\n\t/*::[*/0x08/*::]*/: { n: 'LastAuthor', t: VT_STRING },\n\t/*::[*/0x09/*::]*/: { n: 'RevNumber', t: VT_STRING },\n\t/*::[*/0x0A/*::]*/: { n: 'EditTime', t: VT_FILETIME },\n\t/*::[*/0x0B/*::]*/: { n: 'LastPrinted', t: VT_FILETIME },\n\t/*::[*/0x0C/*::]*/: { n: 'CreatedDate', t: VT_FILETIME },\n\t/*::[*/0x0D/*::]*/: { n: 'ModifiedDate', t: VT_FILETIME },\n\t/*::[*/0x0E/*::]*/: { n: 'PageCount', t: VT_I4 },\n\t/*::[*/0x0F/*::]*/: { n: 'WordCount', t: VT_I4 },\n\t/*::[*/0x10/*::]*/: { n: 'CharCount', t: VT_I4 },\n\t/*::[*/0x11/*::]*/: { n: 'Thumbnail', t: VT_CF },\n\t/*::[*/0x12/*::]*/: { n: 'Application', t: VT_STRING },\n\t/*::[*/0x13/*::]*/: { n: 'DocSecurity', t: VT_I4 },\n\t/*::[*/0xFF/*::]*/: {},\n\t/* [MS-OLEPS] 2.18 */\n\t/*::[*/0x80000000/*::]*/: { n: 'Locale', t: VT_UI4 },\n\t/*::[*/0x80000003/*::]*/: { n: 'Behavior', t: VT_UI4 },\n\t/*::[*/0x72627262/*::]*/: {}\n};\n\n/* [MS-XLS] 2.4.63 Country/Region codes */\nvar CountryEnum = {\n\t/*::[*/0x0001/*::]*/: \"US\", // United States\n\t/*::[*/0x0002/*::]*/: \"CA\", // Canada\n\t/*::[*/0x0003/*::]*/: \"\", // Latin America (except Brazil)\n\t/*::[*/0x0007/*::]*/: \"RU\", // Russia\n\t/*::[*/0x0014/*::]*/: \"EG\", // Egypt\n\t/*::[*/0x001E/*::]*/: \"GR\", // Greece\n\t/*::[*/0x001F/*::]*/: \"NL\", // Netherlands\n\t/*::[*/0x0020/*::]*/: \"BE\", // Belgium\n\t/*::[*/0x0021/*::]*/: \"FR\", // France\n\t/*::[*/0x0022/*::]*/: \"ES\", // Spain\n\t/*::[*/0x0024/*::]*/: \"HU\", // Hungary\n\t/*::[*/0x0027/*::]*/: \"IT\", // Italy\n\t/*::[*/0x0029/*::]*/: \"CH\", // Switzerland\n\t/*::[*/0x002B/*::]*/: \"AT\", // Austria\n\t/*::[*/0x002C/*::]*/: \"GB\", // United Kingdom\n\t/*::[*/0x002D/*::]*/: \"DK\", // Denmark\n\t/*::[*/0x002E/*::]*/: \"SE\", // Sweden\n\t/*::[*/0x002F/*::]*/: \"NO\", // Norway\n\t/*::[*/0x0030/*::]*/: \"PL\", // Poland\n\t/*::[*/0x0031/*::]*/: \"DE\", // Germany\n\t/*::[*/0x0034/*::]*/: \"MX\", // Mexico\n\t/*::[*/0x0037/*::]*/: \"BR\", // Brazil\n\t/*::[*/0x003d/*::]*/: \"AU\", // Australia\n\t/*::[*/0x0040/*::]*/: \"NZ\", // New Zealand\n\t/*::[*/0x0042/*::]*/: \"TH\", // Thailand\n\t/*::[*/0x0051/*::]*/: \"JP\", // Japan\n\t/*::[*/0x0052/*::]*/: \"KR\", // Korea\n\t/*::[*/0x0054/*::]*/: \"VN\", // Viet Nam\n\t/*::[*/0x0056/*::]*/: \"CN\", // China\n\t/*::[*/0x005A/*::]*/: \"TR\", // Turkey\n\t/*::[*/0x0069/*::]*/: \"JS\", // Ramastan\n\t/*::[*/0x00D5/*::]*/: \"DZ\", // Algeria\n\t/*::[*/0x00D8/*::]*/: \"MA\", // Morocco\n\t/*::[*/0x00DA/*::]*/: \"LY\", // Libya\n\t/*::[*/0x015F/*::]*/: \"PT\", // Portugal\n\t/*::[*/0x0162/*::]*/: \"IS\", // Iceland\n\t/*::[*/0x0166/*::]*/: \"FI\", // Finland\n\t/*::[*/0x01A4/*::]*/: \"CZ\", // Czech Republic\n\t/*::[*/0x0376/*::]*/: \"TW\", // Taiwan\n\t/*::[*/0x03C1/*::]*/: \"LB\", // Lebanon\n\t/*::[*/0x03C2/*::]*/: \"JO\", // Jordan\n\t/*::[*/0x03C3/*::]*/: \"SY\", // Syria\n\t/*::[*/0x03C4/*::]*/: \"IQ\", // Iraq\n\t/*::[*/0x03C5/*::]*/: \"KW\", // Kuwait\n\t/*::[*/0x03C6/*::]*/: \"SA\", // Saudi Arabia\n\t/*::[*/0x03CB/*::]*/: \"AE\", // United Arab Emirates\n\t/*::[*/0x03CC/*::]*/: \"IL\", // Israel\n\t/*::[*/0x03CE/*::]*/: \"QA\", // Qatar\n\t/*::[*/0x03D5/*::]*/: \"IR\", // Iran\n\t/*::[*/0xFFFF/*::]*/: \"US\" // United States\n};\n\n/* [MS-XLS] 2.5.127 */\nvar XLSFillPattern = [\n\tnull,\n\t'solid',\n\t'mediumGray',\n\t'darkGray',\n\t'lightGray',\n\t'darkHorizontal',\n\t'darkVertical',\n\t'darkDown',\n\t'darkUp',\n\t'darkGrid',\n\t'darkTrellis',\n\t'lightHorizontal',\n\t'lightVertical',\n\t'lightDown',\n\t'lightUp',\n\t'lightGrid',\n\t'lightTrellis',\n\t'gray125',\n\t'gray0625'\n];\n\nfunction rgbify(arr/*:Array<number>*/)/*:Array<[number, number, number]>*/ { return arr.map(function(x) { return [(x>>16)&255,(x>>8)&255,x&255]; }); }\n\n/* [MS-XLS] 2.5.161 */\n/* [MS-XLSB] 2.5.75 Icv */\nvar _XLSIcv = /*#__PURE__*/ rgbify([\n\t/* Color Constants */\n\t0x000000,\n\t0xFFFFFF,\n\t0xFF0000,\n\t0x00FF00,\n\t0x0000FF,\n\t0xFFFF00,\n\t0xFF00FF,\n\t0x00FFFF,\n\n\t/* Overridable Defaults */\n\t0x000000,\n\t0xFFFFFF,\n\t0xFF0000,\n\t0x00FF00,\n\t0x0000FF,\n\t0xFFFF00,\n\t0xFF00FF,\n\t0x00FFFF,\n\n\t0x800000,\n\t0x008000,\n\t0x000080,\n\t0x808000,\n\t0x800080,\n\t0x008080,\n\t0xC0C0C0,\n\t0x808080,\n\t0x9999FF,\n\t0x993366,\n\t0xFFFFCC,\n\t0xCCFFFF,\n\t0x660066,\n\t0xFF8080,\n\t0x0066CC,\n\t0xCCCCFF,\n\n\t0x000080,\n\t0xFF00FF,\n\t0xFFFF00,\n\t0x00FFFF,\n\t0x800080,\n\t0x800000,\n\t0x008080,\n\t0x0000FF,\n\t0x00CCFF,\n\t0xCCFFFF,\n\t0xCCFFCC,\n\t0xFFFF99,\n\t0x99CCFF,\n\t0xFF99CC,\n\t0xCC99FF,\n\t0xFFCC99,\n\n\t0x3366FF,\n\t0x33CCCC,\n\t0x99CC00,\n\t0xFFCC00,\n\t0xFF9900,\n\t0xFF6600,\n\t0x666699,\n\t0x969696,\n\t0x003366,\n\t0x339966,\n\t0x003300,\n\t0x333300,\n\t0x993300,\n\t0x993366,\n\t0x333399,\n\t0x333333,\n\n\t/* Other entries to appease BIFF8/12 */\n\t0x000000, /* 0x40 icvForeground ?? */\n\t0xFFFFFF, /* 0x41 icvBackground ?? */\n\t0x000000, /* 0x42 icvFrame ?? */\n\t0x000000, /* 0x43 icv3D ?? */\n\t0x000000, /* 0x44 icv3DText ?? */\n\t0x000000, /* 0x45 icv3DHilite ?? */\n\t0x000000, /* 0x46 icv3DShadow ?? */\n\t0x000000, /* 0x47 icvHilite ?? */\n\t0x000000, /* 0x48 icvCtlText ?? */\n\t0x000000, /* 0x49 icvCtlScrl ?? */\n\t0x000000, /* 0x4A icvCtlInv ?? */\n\t0x000000, /* 0x4B icvCtlBody ?? */\n\t0x000000, /* 0x4C icvCtlFrame ?? */\n\t0x000000, /* 0x4D icvCtlFore ?? */\n\t0x000000, /* 0x4E icvCtlBack ?? */\n\t0x000000, /* 0x4F icvCtlNeutral */\n\t0x000000, /* 0x50 icvInfoBk ?? */\n\t0x000000 /* 0x51 icvInfoText ?? */\n]);\nvar XLSIcv = /*#__PURE__*/dup(_XLSIcv);\n\n/* [MS-XLSB] 2.5.97.2 */\nvar BErr = {\n\t/*::[*/0x00/*::]*/: \"#NULL!\",\n\t/*::[*/0x07/*::]*/: \"#DIV/0!\",\n\t/*::[*/0x0F/*::]*/: \"#VALUE!\",\n\t/*::[*/0x17/*::]*/: \"#REF!\",\n\t/*::[*/0x1D/*::]*/: \"#NAME?\",\n\t/*::[*/0x24/*::]*/: \"#NUM!\",\n\t/*::[*/0x2A/*::]*/: \"#N/A\",\n\t/*::[*/0x2B/*::]*/: \"#GETTING_DATA\",\n\t/*::[*/0xFF/*::]*/: \"#WTF?\"\n};\n//var RBErr = evert_num(BErr);\nvar RBErr = {\n\t\"#NULL!\": 0x00,\n\t\"#DIV/0!\": 0x07,\n\t\"#VALUE!\": 0x0F,\n\t\"#REF!\": 0x17,\n\t\"#NAME?\": 0x1D,\n\t\"#NUM!\": 0x24,\n\t\"#N/A\": 0x2A,\n\t\"#GETTING_DATA\": 0x2B,\n\t\"#WTF?\": 0xFF\n};\n\nvar XLSLblBuiltIn = [\n\t\"_xlnm.Consolidate_Area\",\n\t\"_xlnm.Auto_Open\",\n\t\"_xlnm.Auto_Close\",\n\t\"_xlnm.Extract\",\n\t\"_xlnm.Database\",\n\t\"_xlnm.Criteria\",\n\t\"_xlnm.Print_Area\",\n\t\"_xlnm.Print_Titles\",\n\t\"_xlnm.Recorder\",\n\t\"_xlnm.Data_Form\",\n\t\"_xlnm.Auto_Activate\",\n\t\"_xlnm.Auto_Deactivate\",\n\t\"_xlnm.Sheet_Title\",\n\t\"_xlnm._FilterDatabase\"\n];\n\n/* Parts enumerated in OPC spec, MS-XLSB and MS-XLSX */\n/* 12.3 Part Summary <SpreadsheetML> */\n/* 14.2 Part Summary <DrawingML> */\n/* [MS-XLSX] 2.1 Part Enumerations ; [MS-XLSB] 2.1.7 Part Enumeration */\nvar ct2type/*{[string]:string}*/ = ({\n\t/* Workbook */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml\": \"workbooks\",\n\t\"application/vnd.ms-excel.sheet.macroEnabled.main+xml\": \"workbooks\",\n\t\"application/vnd.ms-excel.sheet.binary.macroEnabled.main\": \"workbooks\",\n\t\"application/vnd.ms-excel.addin.macroEnabled.main+xml\": \"workbooks\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml\": \"workbooks\",\n\n\t/* Worksheet */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml\": \"sheets\",\n\t\"application/vnd.ms-excel.worksheet\": \"sheets\",\n\t\"application/vnd.ms-excel.binIndexWs\": \"TODO\", /* Binary Index */\n\n\t/* Chartsheet */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml\": \"charts\",\n\t\"application/vnd.ms-excel.chartsheet\": \"charts\",\n\n\t/* Macrosheet */\n\t\"application/vnd.ms-excel.macrosheet+xml\": \"macros\",\n\t\"application/vnd.ms-excel.macrosheet\": \"macros\",\n\t\"application/vnd.ms-excel.intlmacrosheet\": \"TODO\",\n\t\"application/vnd.ms-excel.binIndexMs\": \"TODO\", /* Binary Index */\n\n\t/* Dialogsheet */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml\": \"dialogs\",\n\t\"application/vnd.ms-excel.dialogsheet\": \"dialogs\",\n\n\t/* Shared Strings */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml\": \"strs\",\n\t\"application/vnd.ms-excel.sharedStrings\": \"strs\",\n\n\t/* Styles */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml\": \"styles\",\n\t\"application/vnd.ms-excel.styles\": \"styles\",\n\n\t/* File Properties */\n\t\"application/vnd.openxmlformats-package.core-properties+xml\": \"coreprops\",\n\t\"application/vnd.openxmlformats-officedocument.custom-properties+xml\": \"custprops\",\n\t\"application/vnd.openxmlformats-officedocument.extended-properties+xml\": \"extprops\",\n\n\t/* Custom Data Properties */\n\t\"application/vnd.openxmlformats-officedocument.customXmlProperties+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.customProperty\": \"TODO\",\n\n\t/* Comments */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml\": \"comments\",\n\t\"application/vnd.ms-excel.comments\": \"comments\",\n\t\"application/vnd.ms-excel.threadedcomments+xml\": \"threadedcomments\",\n\t\"application/vnd.ms-excel.person+xml\": \"people\",\n\n\t/* Metadata (Stock/Geography and Dynamic Array) */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml\": \"metadata\",\n\t\"application/vnd.ms-excel.sheetMetadata\": \"metadata\",\n\n\t/* PivotTable */\n\t\"application/vnd.ms-excel.pivotTable\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml\": \"TODO\",\n\n\t/* Chart Objects */\n\t\"application/vnd.openxmlformats-officedocument.drawingml.chart+xml\": \"TODO\",\n\n\t/* Chart Colors */\n\t\"application/vnd.ms-office.chartcolorstyle+xml\": \"TODO\",\n\n\t/* Chart Style */\n\t\"application/vnd.ms-office.chartstyle+xml\": \"TODO\",\n\n\t/* Chart Advanced */\n\t\"application/vnd.ms-office.chartex+xml\": \"TODO\",\n\n\t/* Calculation Chain */\n\t\"application/vnd.ms-excel.calcChain\": \"calcchains\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.calcChain+xml\": \"calcchains\",\n\n\t/* Printer Settings */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.printerSettings\": \"TODO\",\n\n\t/* ActiveX */\n\t\"application/vnd.ms-office.activeX\": \"TODO\",\n\t\"application/vnd.ms-office.activeX+xml\": \"TODO\",\n\n\t/* Custom Toolbars */\n\t\"application/vnd.ms-excel.attachedToolbars\": \"TODO\",\n\n\t/* External Data Connections */\n\t\"application/vnd.ms-excel.connections\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml\": \"TODO\",\n\n\t/* External Links */\n\t\"application/vnd.ms-excel.externalLink\": \"links\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.externalLink+xml\": \"links\",\n\n\t/* PivotCache */\n\t\"application/vnd.ms-excel.pivotCacheDefinition\": \"TODO\",\n\t\"application/vnd.ms-excel.pivotCacheRecords\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheRecords+xml\": \"TODO\",\n\n\t/* Query Table */\n\t\"application/vnd.ms-excel.queryTable\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.queryTable+xml\": \"TODO\",\n\n\t/* Shared Workbook */\n\t\"application/vnd.ms-excel.userNames\": \"TODO\",\n\t\"application/vnd.ms-excel.revisionHeaders\": \"TODO\",\n\t\"application/vnd.ms-excel.revisionLog\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionHeaders+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionLog+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.userNames+xml\": \"TODO\",\n\n\t/* Single Cell Table */\n\t\"application/vnd.ms-excel.tableSingleCells\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.tableSingleCells+xml\": \"TODO\",\n\n\t/* Slicer */\n\t\"application/vnd.ms-excel.slicer\": \"TODO\",\n\t\"application/vnd.ms-excel.slicerCache\": \"TODO\",\n\t\"application/vnd.ms-excel.slicer+xml\": \"TODO\",\n\t\"application/vnd.ms-excel.slicerCache+xml\": \"TODO\",\n\n\t/* Sort Map */\n\t\"application/vnd.ms-excel.wsSortMap\": \"TODO\",\n\n\t/* Table */\n\t\"application/vnd.ms-excel.table\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml\": \"TODO\",\n\n\t/* Themes */\n\t\"application/vnd.openxmlformats-officedocument.theme+xml\": \"themes\",\n\n\t/* Theme Override */\n\t\"application/vnd.openxmlformats-officedocument.themeOverride+xml\": \"TODO\",\n\n\t/* Timeline */\n\t\"application/vnd.ms-excel.Timeline+xml\": \"TODO\", /* verify */\n\t\"application/vnd.ms-excel.TimelineCache+xml\": \"TODO\", /* verify */\n\n\t/* VBA */\n\t\"application/vnd.ms-office.vbaProject\": \"vba\",\n\t\"application/vnd.ms-office.vbaProjectSignature\": \"TODO\",\n\n\t/* Volatile Dependencies */\n\t\"application/vnd.ms-office.volatileDependencies\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.volatileDependencies+xml\": \"TODO\",\n\n\t/* Control Properties */\n\t\"application/vnd.ms-excel.controlproperties+xml\": \"TODO\",\n\n\t/* Data Model */\n\t\"application/vnd.openxmlformats-officedocument.model+data\": \"TODO\",\n\n\t/* Survey */\n\t\"application/vnd.ms-excel.Survey+xml\": \"TODO\",\n\n\t/* Drawing */\n\t\"application/vnd.openxmlformats-officedocument.drawing+xml\": \"drawings\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.diagramColors+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.diagramData+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.diagramLayout+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.diagramStyle+xml\": \"TODO\",\n\n\t/* VML */\n\t\"application/vnd.openxmlformats-officedocument.vmlDrawing\": \"TODO\",\n\n\t\"application/vnd.openxmlformats-package.relationships+xml\": \"rels\",\n\t\"application/vnd.openxmlformats-officedocument.oleObject\": \"TODO\",\n\n\t/* Image */\n\t\"image/png\": \"TODO\",\n\n\t\"sheet\": \"js\"\n}/*:any*/);\n\nvar CT_LIST = {\n\tworkbooks: {\n\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml\",\n\t\txlsm: \"application/vnd.ms-excel.sheet.macroEnabled.main+xml\",\n\t\txlsb: \"application/vnd.ms-excel.sheet.binary.macroEnabled.main\",\n\t\txlam: \"application/vnd.ms-excel.addin.macroEnabled.main+xml\",\n\t\txltx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml\"\n\t},\n\tstrs: { /* Shared Strings */\n\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml\",\n\t\txlsb: \"application/vnd.ms-excel.sharedStrings\"\n\t},\n\tcomments: { /* Comments */\n\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml\",\n\t\txlsb: \"application/vnd.ms-excel.comments\"\n\t},\n\tsheets: { /* Worksheet */\n\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml\",\n\t\txlsb: \"application/vnd.ms-excel.worksheet\"\n\t},\n\tcharts: { /* Chartsheet */\n\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml\",\n\t\txlsb: \"application/vnd.ms-excel.chartsheet\"\n\t},\n\tdialogs: { /* Dialogsheet */\n\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml\",\n\t\txlsb: \"application/vnd.ms-excel.dialogsheet\"\n\t},\n\tmacros: { /* Macrosheet (Excel 4.0 Macros) */\n\t\txlsx: \"application/vnd.ms-excel.macrosheet+xml\",\n\t\txlsb: \"application/vnd.ms-excel.macrosheet\"\n\t},\n\tmetadata: { /* Metadata (Stock/Geography and Dynamic Array) */\n\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml\",\n\t\txlsb: \"application/vnd.ms-excel.sheetMetadata\"\n\t},\n\tstyles: { /* Styles */\n\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml\",\n\t\txlsb: \"application/vnd.ms-excel.styles\"\n\t}\n};\n\nfunction new_ct()/*:any*/ {\n\treturn ({\n\t\tworkbooks:[], sheets:[], charts:[], dialogs:[], macros:[],\n\t\trels:[], strs:[], comments:[], threadedcomments:[], links:[],\n\t\tcoreprops:[], extprops:[], custprops:[], themes:[], styles:[],\n\t\tcalcchains:[], vba: [], drawings: [], metadata: [], people:[],\n\t\tTODO:[], xmlns: \"\" }/*:any*/);\n}\n\nfunction parse_ct(data/*:?string*/) {\n\tvar ct = new_ct();\n\tif(!data || !data.match) return ct;\n\tvar ctext = {};\n\t(data.match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(y[0].replace(nsregex,\"<\")) {\n\t\t\tcase '<?xml': break;\n\t\t\tcase '<Types': ct.xmlns = y['xmlns' + (y[0].match(/<(\\w+):/)||[\"\",\"\"])[1] ]; break;\n\t\t\tcase '<Default': ctext[y.Extension.toLowerCase()] = y.ContentType; break;\n\t\t\tcase '<Override':\n\t\t\t\tif(ct[ct2type[y.ContentType]] !== undefined) ct[ct2type[y.ContentType]].push(y.PartName);\n\t\t\t\tbreak;\n\t\t}\n\t});\n\tif(ct.xmlns !== XMLNS.CT) throw new Error(\"Unknown Namespace: \" + ct.xmlns);\n\tct.calcchain = ct.calcchains.length > 0 ? ct.calcchains[0] : \"\";\n\tct.sst = ct.strs.length > 0 ? ct.strs[0] : \"\";\n\tct.style = ct.styles.length > 0 ? ct.styles[0] : \"\";\n\tct.defaults = ctext;\n\tdelete ct.calcchains;\n\treturn ct;\n}\n\nfunction write_ct(ct, opts, raw)/*:string*/ {\n\tvar type2ct/*{[string]:Array<string>}*/ = evert_arr(ct2type);\n\n\tvar o/*:Array<string>*/ = [], v;\n\n\tif(!raw) {\n\t\to[o.length] = (XML_HEADER);\n\t\to[o.length] = writextag('Types', null, {\n\t\t\t'xmlns': XMLNS.CT,\n\t\t\t'xmlns:xsd': XMLNS.xsd,\n\t\t\t'xmlns:xsi': XMLNS.xsi\n\t\t});\n\t\to = o.concat([\n\t\t\t['xml', 'application/xml'],\n\t\t\t['bin', 'application/vnd.ms-excel.sheet.binary.macroEnabled.main'],\n\t\t\t['vml', 'application/vnd.openxmlformats-officedocument.vmlDrawing'],\n\t\t\t['data', 'application/vnd.openxmlformats-officedocument.model+data'],\n\t\t\t/* from test files */\n\t\t\t['bmp', 'image/bmp'],\n\t\t\t['png', 'image/png'],\n\t\t\t['gif', 'image/gif'],\n\t\t\t['emf', 'image/x-emf'],\n\t\t\t['wmf', 'image/x-wmf'],\n\t\t\t['jpg', 'image/jpeg'], ['jpeg', 'image/jpeg'],\n\t\t\t['tif', 'image/tiff'], ['tiff', 'image/tiff'],\n\t\t\t['pdf', 'application/pdf'],\n\t\t\t['rels', 'application/vnd.openxmlformats-package.relationships+xml']\n\t\t].map(function(x) {\n\t\t\treturn writextag('Default', null, {'Extension':x[0], 'ContentType': x[1]});\n\t\t}));\n\t}\n\n\t/* only write first instance */\n\tvar f1 = function(w) {\n\t\tif(ct[w] && ct[w].length > 0) {\n\t\t\tv = ct[w][0];\n\t\t\to[o.length] = (writextag('Override', null, {\n\t\t\t\t'PartName': (v[0] == '/' ? \"\":\"/\") + v,\n\t\t\t\t'ContentType': CT_LIST[w][opts.bookType] || CT_LIST[w]['xlsx']\n\t\t\t}));\n\t\t}\n\t};\n\n\t/* book type-specific */\n\tvar f2 = function(w) {\n\t\t(ct[w]||[]).forEach(function(v) {\n\t\t\to[o.length] = (writextag('Override', null, {\n\t\t\t\t'PartName': (v[0] == '/' ? \"\":\"/\") + v,\n\t\t\t\t'ContentType': CT_LIST[w][opts.bookType] || CT_LIST[w]['xlsx']\n\t\t\t}));\n\t\t});\n\t};\n\n\t/* standard type */\n\tvar f3 = function(t) {\n\t\t(ct[t]||[]).forEach(function(v) {\n\t\t\to[o.length] = (writextag('Override', null, {\n\t\t\t\t'PartName': (v[0] == '/' ? \"\":\"/\") + v,\n\t\t\t\t'ContentType': type2ct[t][0]\n\t\t\t}));\n\t\t});\n\t};\n\n\tf1('workbooks');\n\tf2('sheets');\n\tf2('charts');\n\tf3('themes');\n\t['strs', 'styles'].forEach(f1);\n\t['coreprops', 'extprops', 'custprops'].forEach(f3);\n\tf3('vba');\n\tf3('comments');\n\tf3('threadedcomments');\n\tf3('drawings');\n\tf2('metadata');\n\tf3('people');\n\tif(!raw && o.length>2){ o[o.length] = ('</Types>'); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* 9.3 Relationships */\nvar RELS = ({\n\tWB: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument\",\n\tSHEET: \"http://sheetjs.openxmlformats.org/officeDocument/2006/relationships/officeDocument\",\n\tHLINK: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink\",\n\tVML: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/vmlDrawing\",\n\tXPATH: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/externalLinkPath\",\n\tXMISS: \"http://schemas.microsoft.com/office/2006/relationships/xlExternalLinkPath/xlPathMissing\",\n\tXLINK: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/externalLink\",\n\tCXML: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXml\",\n\tCXMLP: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXmlProps\",\n\tCMNT: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments\",\n\tCORE_PROPS: \"http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties\",\n\tEXT_PROPS: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties',\n\tCUST_PROPS: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/custom-properties',\n\tSST: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings\",\n\tSTY: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles\",\n\tTHEME: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme\",\n\tCHART: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart\",\n\tCHARTEX: \"http://schemas.microsoft.com/office/2014/relationships/chartEx\",\n\tCS: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/chartsheet\",\n\tWS: [\n\t\t\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet\",\n\t\t\"http://purl.oclc.org/ooxml/officeDocument/relationships/worksheet\"\n\t],\n\tDS: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/dialogsheet\",\n\tMS: \"http://schemas.microsoft.com/office/2006/relationships/xlMacrosheet\",\n\tIMG: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/image\",\n\tDRAW: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing\",\n\tXLMETA: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/sheetMetadata\",\n\tTCMNT: \"http://schemas.microsoft.com/office/2017/10/relationships/threadedComment\",\n\tPEOPLE: \"http://schemas.microsoft.com/office/2017/10/relationships/person\",\n\tCONN: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/connections\",\n\tVBA: \"http://schemas.microsoft.com/office/2006/relationships/vbaProject\"\n}/*:any*/);\n\n/* 9.3.3 Representing Relationships */\nfunction get_rels_path(file/*:string*/)/*:string*/ {\n\tvar n = file.lastIndexOf(\"/\");\n\treturn file.slice(0,n+1) + '_rels/' + file.slice(n+1) + \".rels\";\n}\n\nfunction parse_rels(data/*:?string*/, currentFilePath/*:string*/) {\n\tvar rels = {\"!id\":{}};\n\tif (!data) return rels;\n\tif (currentFilePath.charAt(0) !== '/') {\n\t\tcurrentFilePath = '/'+currentFilePath;\n\t}\n\tvar hash = {};\n\n\t(data.match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\t/* 9.3.2.2 OPC_Relationships */\n\t\tif (y[0] === '<Relationship') {\n\t\t\tvar rel = {}; rel.Type = y.Type; rel.Target = unescapexml(y.Target); rel.Id = y.Id; if(y.TargetMode) rel.TargetMode = y.TargetMode;\n\t\t\tvar canonictarget = y.TargetMode === 'External' ? y.Target : resolve_path(y.Target, currentFilePath);\n\t\t\trels[canonictarget] = rel;\n\t\t\thash[y.Id] = rel;\n\t\t}\n\t});\n\trels[\"!id\"] = hash;\n\treturn rels;\n}\n\n\n/* TODO */\nfunction write_rels(rels)/*:string*/ {\n\tvar o = [XML_HEADER, writextag('Relationships', null, {\n\t\t//'xmlns:ns0': XMLNS.RELS,\n\t\t'xmlns': XMLNS.RELS\n\t})];\n\tkeys(rels['!id']).forEach(function(rid) {\n\t\to[o.length] = (writextag('Relationship', null, rels['!id'][rid]));\n\t});\n\tif(o.length>2){ o[o.length] = ('</Relationships>'); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n\nfunction add_rels(rels, rId/*:number*/, f, type, relobj, targetmode/*:?string*/)/*:number*/ {\n\tif(!relobj) relobj = {};\n\tif(!rels['!id']) rels['!id'] = {};\n\tif(!rels['!idx']) rels['!idx'] = 1;\n\tif(rId < 0) for(rId = rels['!idx']; rels['!id']['rId' + rId]; ++rId){/* empty */}\n\trels['!idx'] = rId + 1;\n\trelobj.Id = 'rId' + rId;\n\trelobj.Type = type;\n\trelobj.Target = f;\n\tif(targetmode) relobj.TargetMode = targetmode;\n\telse if([RELS.HLINK, RELS.XPATH, RELS.XMISS].indexOf(relobj.Type) > -1) relobj.TargetMode = \"External\";\n\tif(rels['!id'][relobj.Id]) throw new Error(\"Cannot rewrite rId \" + rId);\n\trels['!id'][relobj.Id] = relobj;\n\trels[('/' + relobj.Target).replace(\"//\",\"/\")] = relobj;\n\treturn rId;\n}\nvar CT_ODS = \"application/vnd.oasis.opendocument.spreadsheet\";\nfunction parse_manifest(d, opts) {\n var str = xlml_normalize(d);\n var Rn;\n var FEtag;\n while (Rn = xlmlregex.exec(str))\n switch (Rn[3]) {\n case \"manifest\":\n break;\n case \"file-entry\":\n FEtag = parsexmltag(Rn[0], false);\n if (FEtag.path == \"/\" && FEtag.type !== CT_ODS)\n throw new Error(\"This OpenDocument is not a spreadsheet\");\n break;\n case \"encryption-data\":\n case \"algorithm\":\n case \"start-key-generation\":\n case \"key-derivation\":\n throw new Error(\"Unsupported ODS Encryption\");\n default:\n if (opts && opts.WTF)\n throw Rn;\n }\n}\nfunction write_manifest(manifest) {\n var o = [XML_HEADER];\n o.push('<manifest:manifest xmlns:manifest=\"urn:oasis:names:tc:opendocument:xmlns:manifest:1.0\" manifest:version=\"1.2\">\\n');\n o.push(' <manifest:file-entry manifest:full-path=\"/\" manifest:version=\"1.2\" manifest:media-type=\"application/vnd.oasis.opendocument.spreadsheet\"/>\\n');\n for (var i = 0; i < manifest.length; ++i)\n o.push(' <manifest:file-entry manifest:full-path=\"' + manifest[i][0] + '\" manifest:media-type=\"' + manifest[i][1] + '\"/>\\n');\n o.push(\"</manifest:manifest>\");\n return o.join(\"\");\n}\nfunction write_rdf_type(file, res, tag) {\n return [\n ' <rdf:Description rdf:about=\"' + file + '\">\\n',\n ' <rdf:type rdf:resource=\"http://docs.oasis-open.org/ns/office/1.2/meta/' + (tag || \"odf\") + \"#\" + res + '\"/>\\n',\n \" </rdf:Description>\\n\"\n ].join(\"\");\n}\nfunction write_rdf_has(base, file) {\n return [\n ' <rdf:Description rdf:about=\"' + base + '\">\\n',\n ' <ns0:hasPart xmlns:ns0=\"http://docs.oasis-open.org/ns/office/1.2/meta/pkg#\" rdf:resource=\"' + file + '\"/>\\n',\n \" </rdf:Description>\\n\"\n ].join(\"\");\n}\nfunction write_rdf(rdf) {\n var o = [XML_HEADER];\n o.push('<rdf:RDF xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\\n');\n for (var i = 0; i != rdf.length; ++i) {\n o.push(write_rdf_type(rdf[i][0], rdf[i][1]));\n o.push(write_rdf_has(\"\", rdf[i][0]));\n }\n o.push(write_rdf_type(\"\", \"Document\", \"pkg\"));\n o.push(\"</rdf:RDF>\");\n return o.join(\"\");\n}\nfunction write_meta_ods(wb, opts) {\n return '<office:document-meta xmlns:office=\"urn:oasis:names:tc:opendocument:xmlns:office:1.0\" xmlns:meta=\"urn:oasis:names:tc:opendocument:xmlns:meta:1.0\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" office:version=\"1.2\"><office:meta><meta:generator>SheetJS ' + XLSX.version + \"</meta:generator></office:meta></office:document-meta>\";\n}\n/* ECMA-376 Part II 11.1 Core Properties Part */\n/* [MS-OSHARED] 2.3.3.2.[1-2].1 (PIDSI/PIDDSI) */\nvar CORE_PROPS/*:Array<Array<string> >*/ = [\n\t[\"cp:category\", \"Category\"],\n\t[\"cp:contentStatus\", \"ContentStatus\"],\n\t[\"cp:keywords\", \"Keywords\"],\n\t[\"cp:lastModifiedBy\", \"LastAuthor\"],\n\t[\"cp:lastPrinted\", \"LastPrinted\"],\n\t[\"cp:revision\", \"RevNumber\"],\n\t[\"cp:version\", \"Version\"],\n\t[\"dc:creator\", \"Author\"],\n\t[\"dc:description\", \"Comments\"],\n\t[\"dc:identifier\", \"Identifier\"],\n\t[\"dc:language\", \"Language\"],\n\t[\"dc:subject\", \"Subject\"],\n\t[\"dc:title\", \"Title\"],\n\t[\"dcterms:created\", \"CreatedDate\", 'date'],\n\t[\"dcterms:modified\", \"ModifiedDate\", 'date']\n];\n\nvar CORE_PROPS_REGEX/*:Array<RegExp>*/ = /*#__PURE__*/(function() {\n\tvar r = new Array(CORE_PROPS.length);\n\tfor(var i = 0; i < CORE_PROPS.length; ++i) {\n\t\tvar f = CORE_PROPS[i];\n\t\tvar g = \"(?:\"+ f[0].slice(0,f[0].indexOf(\":\")) +\":)\"+ f[0].slice(f[0].indexOf(\":\")+1);\n\t\tr[i] = new RegExp(\"<\" + g + \"[^>]*>([\\\\s\\\\S]*?)<\\/\" + g + \">\");\n\t}\n\treturn r;\n})();\n\nfunction parse_core_props(data) {\n\tvar p = {};\n\tdata = utf8read(data);\n\n\tfor(var i = 0; i < CORE_PROPS.length; ++i) {\n\t\tvar f = CORE_PROPS[i], cur = data.match(CORE_PROPS_REGEX[i]);\n\t\tif(cur != null && cur.length > 0) p[f[1]] = unescapexml(cur[1]);\n\t\tif(f[2] === 'date' && p[f[1]]) p[f[1]] = parseDate(p[f[1]]);\n\t}\n\n\treturn p;\n}\n\nfunction cp_doit(f, g, h, o, p) {\n\tif(p[f] != null || g == null || g === \"\") return;\n\tp[f] = g;\n\tg = escapexml(g);\n\to[o.length] = (h ? writextag(f,g,h) : writetag(f,g));\n}\n\nfunction write_core_props(cp, _opts) {\n\tvar opts = _opts || {};\n\tvar o = [XML_HEADER, writextag('cp:coreProperties', null, {\n\t\t//'xmlns': XMLNS.CORE_PROPS,\n\t\t'xmlns:cp': XMLNS.CORE_PROPS,\n\t\t'xmlns:dc': XMLNS.dc,\n\t\t'xmlns:dcterms': XMLNS.dcterms,\n\t\t'xmlns:dcmitype': XMLNS.dcmitype,\n\t\t'xmlns:xsi': XMLNS.xsi\n\t})], p = {};\n\tif(!cp && !opts.Props) return o.join(\"\");\n\n\tif(cp) {\n\t\tif(cp.CreatedDate != null) cp_doit(\"dcterms:created\", typeof cp.CreatedDate === \"string\" ? cp.CreatedDate : write_w3cdtf(cp.CreatedDate, opts.WTF), {\"xsi:type\":\"dcterms:W3CDTF\"}, o, p);\n\t\tif(cp.ModifiedDate != null) cp_doit(\"dcterms:modified\", typeof cp.ModifiedDate === \"string\" ? cp.ModifiedDate : write_w3cdtf(cp.ModifiedDate, opts.WTF), {\"xsi:type\":\"dcterms:W3CDTF\"}, o, p);\n\t}\n\n\tfor(var i = 0; i != CORE_PROPS.length; ++i) {\n\t\tvar f = CORE_PROPS[i];\n\t\tvar v = opts.Props && opts.Props[f[1]] != null ? opts.Props[f[1]] : cp ? cp[f[1]] : null;\n\t\tif(v === true) v = \"1\";\n\t\telse if(v === false) v = \"0\";\n\t\telse if(typeof v == \"number\") v = String(v);\n\t\tif(v != null) cp_doit(f[0], v, null, o, p);\n\t}\n\tif(o.length>2){ o[o.length] = ('</cp:coreProperties>'); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* 15.2.12.3 Extended File Properties Part */\n/* [MS-OSHARED] 2.3.3.2.[1-2].1 (PIDSI/PIDDSI) */\nvar EXT_PROPS/*:Array<Array<string> >*/ = [\n\t[\"Application\", \"Application\", \"string\"],\n\t[\"AppVersion\", \"AppVersion\", \"string\"],\n\t[\"Company\", \"Company\", \"string\"],\n\t[\"DocSecurity\", \"DocSecurity\", \"string\"],\n\t[\"Manager\", \"Manager\", \"string\"],\n\t[\"HyperlinksChanged\", \"HyperlinksChanged\", \"bool\"],\n\t[\"SharedDoc\", \"SharedDoc\", \"bool\"],\n\t[\"LinksUpToDate\", \"LinksUpToDate\", \"bool\"],\n\t[\"ScaleCrop\", \"ScaleCrop\", \"bool\"],\n\t[\"HeadingPairs\", \"HeadingPairs\", \"raw\"],\n\t[\"TitlesOfParts\", \"TitlesOfParts\", \"raw\"]\n];\n\nvar PseudoPropsPairs = [\n\t\"Worksheets\", \"SheetNames\",\n\t\"NamedRanges\", \"DefinedNames\",\n\t\"Chartsheets\", \"ChartNames\"\n];\nfunction load_props_pairs(HP/*:string|Array<Array<any>>*/, TOP, props, opts) {\n\tvar v = [];\n\tif(typeof HP == \"string\") v = parseVector(HP, opts);\n\telse for(var j = 0; j < HP.length; ++j) v = v.concat(HP[j].map(function(hp) { return {v:hp}; }));\n\tvar parts = (typeof TOP == \"string\") ? parseVector(TOP, opts).map(function (x) { return x.v; }) : TOP;\n\tvar idx = 0, len = 0;\n\tif(parts.length > 0) for(var i = 0; i !== v.length; i += 2) {\n\t\tlen = +(v[i+1].v);\n\t\tswitch(v[i].v) {\n\t\t\tcase \"Worksheets\":\n\t\t\tcase \"工作表\":\n\t\t\tcase \"Листы\":\n\t\t\tcase \"أوراق العمل\":\n\t\t\tcase \"ワークシート\":\n\t\t\tcase \"גליונות עבודה\":\n\t\t\tcase \"Arbeitsblätter\":\n\t\t\tcase \"Çalışma Sayfaları\":\n\t\t\tcase \"Feuilles de calcul\":\n\t\t\tcase \"Fogli di lavoro\":\n\t\t\tcase \"Folhas de cálculo\":\n\t\t\tcase \"Planilhas\":\n\t\t\tcase \"Regneark\":\n\t\t\tcase \"Hojas de cálculo\":\n\t\t\tcase \"Werkbladen\":\n\t\t\t\tprops.Worksheets = len;\n\t\t\t\tprops.SheetNames = parts.slice(idx, idx + len);\n\t\t\t\tbreak;\n\n\t\t\tcase \"Named Ranges\":\n\t\t\tcase \"Rangos con nombre\":\n\t\t\tcase \"名前付き一覧\":\n\t\t\tcase \"Benannte Bereiche\":\n\t\t\tcase \"Navngivne områder\":\n\t\t\t\tprops.NamedRanges = len;\n\t\t\t\tprops.DefinedNames = parts.slice(idx, idx + len);\n\t\t\t\tbreak;\n\n\t\t\tcase \"Charts\":\n\t\t\tcase \"Diagramme\":\n\t\t\t\tprops.Chartsheets = len;\n\t\t\t\tprops.ChartNames = parts.slice(idx, idx + len);\n\t\t\t\tbreak;\n\t\t}\n\t\tidx += len;\n\t}\n}\n\nfunction parse_ext_props(data, p, opts) {\n\tvar q = {}; if(!p) p = {};\n\tdata = utf8read(data);\n\n\tEXT_PROPS.forEach(function(f) {\n\t\tvar xml = (data.match(matchtag(f[0]))||[])[1];\n\t\tswitch(f[2]) {\n\t\t\tcase \"string\": if(xml) p[f[1]] = unescapexml(xml); break;\n\t\t\tcase \"bool\": p[f[1]] = xml === \"true\"; break;\n\t\t\tcase \"raw\":\n\t\t\t\tvar cur = data.match(new RegExp(\"<\" + f[0] + \"[^>]*>([\\\\s\\\\S]*?)<\\/\" + f[0] + \">\"));\n\t\t\t\tif(cur && cur.length > 0) q[f[1]] = cur[1];\n\t\t\t\tbreak;\n\t\t}\n\t});\n\n\tif(q.HeadingPairs && q.TitlesOfParts) load_props_pairs(q.HeadingPairs, q.TitlesOfParts, p, opts);\n\n\treturn p;\n}\n\nfunction write_ext_props(cp/*::, opts*/)/*:string*/ {\n\tvar o/*:Array<string>*/ = [], W = writextag;\n\tif(!cp) cp = {};\n\tcp.Application = \"SheetJS\";\n\to[o.length] = (XML_HEADER);\n\to[o.length] = (writextag('Properties', null, {\n\t\t'xmlns': XMLNS.EXT_PROPS,\n\t\t'xmlns:vt': XMLNS.vt\n\t}));\n\n\tEXT_PROPS.forEach(function(f) {\n\t\tif(cp[f[1]] === undefined) return;\n\t\tvar v;\n\t\tswitch(f[2]) {\n\t\t\tcase 'string': v = escapexml(String(cp[f[1]])); break;\n\t\t\tcase 'bool': v = cp[f[1]] ? 'true' : 'false'; break;\n\t\t}\n\t\tif(v !== undefined) o[o.length] = (W(f[0], v));\n\t});\n\n\t/* TODO: HeadingPairs, TitlesOfParts */\n\to[o.length] = (W('HeadingPairs', W('vt:vector', W('vt:variant', '<vt:lpstr>Worksheets</vt:lpstr>')+W('vt:variant', W('vt:i4', String(cp.Worksheets))), {size:2, baseType:\"variant\"})));\n\to[o.length] = (W('TitlesOfParts', W('vt:vector', cp.SheetNames.map(function(s) { return \"<vt:lpstr>\" + escapexml(s) + \"</vt:lpstr>\"; }).join(\"\"), {size: cp.Worksheets, baseType:\"lpstr\"})));\n\tif(o.length>2){ o[o.length] = ('</Properties>'); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* 15.2.12.2 Custom File Properties Part */\nvar custregex = /<[^>]+>[^<]*/g;\nfunction parse_cust_props(data/*:string*/, opts) {\n\tvar p = {}, name = \"\";\n\tvar m = data.match(custregex);\n\tif(m) for(var i = 0; i != m.length; ++i) {\n\t\tvar x = m[i], y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '<?xml': break;\n\t\t\tcase '<Properties': break;\n\t\t\tcase '<property': name = unescapexml(y.name); break;\n\t\t\tcase '</property>': name = null; break;\n\t\t\tdefault: if (x.indexOf('<vt:') === 0) {\n\t\t\t\tvar toks = x.split('>');\n\t\t\t\tvar type = toks[0].slice(4), text = toks[1];\n\t\t\t\t/* 22.4.2.32 (CT_Variant). Omit the binary types from 22.4 (Variant Types) */\n\t\t\t\tswitch(type) {\n\t\t\t\t\tcase 'lpstr': case 'bstr': case 'lpwstr':\n\t\t\t\t\t\tp[name] = unescapexml(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'bool':\n\t\t\t\t\t\tp[name] = parsexmlbool(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'i1': case 'i2': case 'i4': case 'i8': case 'int': case 'uint':\n\t\t\t\t\t\tp[name] = parseInt(text, 10);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'r4': case 'r8': case 'decimal':\n\t\t\t\t\t\tp[name] = parseFloat(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'filetime': case 'date':\n\t\t\t\t\t\tp[name] = parseDate(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'cy': case 'error':\n\t\t\t\t\t\tp[name] = unescapexml(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tif(type.slice(-1) == '/') break;\n\t\t\t\t\t\tif(opts.WTF && typeof console !== 'undefined') console.warn('Unexpected', x, type, toks);\n\t\t\t\t}\n\t\t\t} else if(x.slice(0,2) === \"</\") {/* empty */\n\t\t\t} else if(opts.WTF) throw new Error(x);\n\t\t}\n\t}\n\treturn p;\n}\n\nfunction write_cust_props(cp/*::, opts*/)/*:string*/ {\n\tvar o = [XML_HEADER, writextag('Properties', null, {\n\t\t'xmlns': XMLNS.CUST_PROPS,\n\t\t'xmlns:vt': XMLNS.vt\n\t})];\n\tif(!cp) return o.join(\"\");\n\tvar pid = 1;\n\tkeys(cp).forEach(function custprop(k) { ++pid;\n\t\to[o.length] = (writextag('property', write_vt(cp[k], true), {\n\t\t\t'fmtid': '{D5CDD505-2E9C-101B-9397-08002B2CF9AE}',\n\t\t\t'pid': pid,\n\t\t\t'name': escapexml(k)\n\t\t}));\n\t});\n\tif(o.length>2){ o[o.length] = '</Properties>'; o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* Common Name -> XLML Name */\nvar XLMLDocPropsMap = {\n\tTitle: 'Title',\n\tSubject: 'Subject',\n\tAuthor: 'Author',\n\tKeywords: 'Keywords',\n\tComments: 'Description',\n\tLastAuthor: 'LastAuthor',\n\tRevNumber: 'Revision',\n\tApplication: 'AppName',\n\t/* TotalTime: 'TotalTime', */\n\tLastPrinted: 'LastPrinted',\n\tCreatedDate: 'Created',\n\tModifiedDate: 'LastSaved',\n\t/* Pages */\n\t/* Words */\n\t/* Characters */\n\tCategory: 'Category',\n\t/* PresentationFormat */\n\tManager: 'Manager',\n\tCompany: 'Company',\n\t/* Guid */\n\t/* HyperlinkBase */\n\t/* Bytes */\n\t/* Lines */\n\t/* Paragraphs */\n\t/* CharactersWithSpaces */\n\tAppVersion: 'Version',\n\n\tContentStatus: 'ContentStatus', /* NOTE: missing from schema */\n\tIdentifier: 'Identifier', /* NOTE: missing from schema */\n\tLanguage: 'Language' /* NOTE: missing from schema */\n};\nvar evert_XLMLDPM;\n\nfunction xlml_set_prop(Props, tag/*:string*/, val) {\n\tif(!evert_XLMLDPM) evert_XLMLDPM = evert(XLMLDocPropsMap);\n\ttag = evert_XLMLDPM[tag] || tag;\n\tProps[tag] = val;\n}\n\nfunction xlml_write_docprops(Props, opts) {\n\tvar o/*:Array<string>*/ = [];\n\tkeys(XLMLDocPropsMap).map(function(m) {\n\t\tfor(var i = 0; i < CORE_PROPS.length; ++i) if(CORE_PROPS[i][1] == m) return CORE_PROPS[i];\n\t\tfor(i = 0; i < EXT_PROPS.length; ++i) if(EXT_PROPS[i][1] == m) return EXT_PROPS[i];\n\t\tthrow m;\n\t}).forEach(function(p) {\n\t\tif(Props[p[1]] == null) return;\n\t\tvar m = opts && opts.Props && opts.Props[p[1]] != null ? opts.Props[p[1]] : Props[p[1]];\n\t\tswitch(p[2]) {\n\t\t\tcase 'date': m = new Date(m).toISOString().replace(/\\.\\d*Z/,\"Z\"); break;\n\t\t}\n\t\tif(typeof m == 'number') m = String(m);\n\t\telse if(m === true || m === false) { m = m ? \"1\" : \"0\"; }\n\t\telse if(m instanceof Date) m = new Date(m).toISOString().replace(/\\.\\d*Z/,\"\");\n\t\to.push(writetag(XLMLDocPropsMap[p[1]] || p[1], m));\n\t});\n\treturn writextag('DocumentProperties', o.join(\"\"), {xmlns:XLMLNS.o });\n}\nfunction xlml_write_custprops(Props, Custprops/*::, opts*/) {\n\tvar BLACKLIST = [\"Worksheets\",\"SheetNames\"];\n\tvar T = 'CustomDocumentProperties';\n\tvar o/*:Array<string>*/ = [];\n\tif(Props) keys(Props).forEach(function(k) {\n\t\t/*:: if(!Props) return; */\n\t\tif(!Object.prototype.hasOwnProperty.call(Props, k)) return;\n\t\tfor(var i = 0; i < CORE_PROPS.length; ++i) if(k == CORE_PROPS[i][1]) return;\n\t\tfor(i = 0; i < EXT_PROPS.length; ++i) if(k == EXT_PROPS[i][1]) return;\n\t\tfor(i = 0; i < BLACKLIST.length; ++i) if(k == BLACKLIST[i]) return;\n\n\t\tvar m = Props[k];\n\t\tvar t = \"string\";\n\t\tif(typeof m == 'number') { t = \"float\"; m = String(m); }\n\t\telse if(m === true || m === false) { t = \"boolean\"; m = m ? \"1\" : \"0\"; }\n\t\telse m = String(m);\n\t\to.push(writextag(escapexmltag(k), m, {\"dt:dt\":t}));\n\t});\n\tif(Custprops) keys(Custprops).forEach(function(k) {\n\t\t/*:: if(!Custprops) return; */\n\t\tif(!Object.prototype.hasOwnProperty.call(Custprops, k)) return;\n\t\tif(Props && Object.prototype.hasOwnProperty.call(Props, k)) return;\n\t\tvar m = Custprops[k];\n\t\tvar t = \"string\";\n\t\tif(typeof m == 'number') { t = \"float\"; m = String(m); }\n\t\telse if(m === true || m === false) { t = \"boolean\"; m = m ? \"1\" : \"0\"; }\n\t\telse if(m instanceof Date) { t = \"dateTime.tz\"; m = m.toISOString(); }\n\t\telse m = String(m);\n\t\to.push(writextag(escapexmltag(k), m, {\"dt:dt\":t}));\n\t});\n\treturn '<' + T + ' xmlns=\"' + XLMLNS.o + '\">' + o.join(\"\") + '</' + T + '>';\n}\n/* [MS-DTYP] 2.3.3 FILETIME */\n/* [MS-OLEDS] 2.1.3 FILETIME (Packet Version) */\n/* [MS-OLEPS] 2.8 FILETIME (Packet Version) */\nfunction parse_FILETIME(blob) {\n\tvar dwLowDateTime = blob.read_shift(4), dwHighDateTime = blob.read_shift(4);\n\treturn new Date(((dwHighDateTime/1e7*Math.pow(2,32) + dwLowDateTime/1e7) - 11644473600)*1000).toISOString().replace(/\\.000/,\"\");\n}\nfunction write_FILETIME(time/*:string|Date*/) {\n\tvar date = (typeof time == \"string\") ? new Date(Date.parse(time)) : time;\n\tvar t = date.getTime() / 1000 + 11644473600;\n\tvar l = t % Math.pow(2,32), h = (t - l) / Math.pow(2,32);\n\tl *= 1e7; h *= 1e7;\n\tvar w = (l / Math.pow(2,32)) | 0;\n\tif(w > 0) { l = l % Math.pow(2,32); h += w; }\n\tvar o = new_buf(8); o.write_shift(4, l); o.write_shift(4, h); return o;\n}\n\n/* [MS-OSHARED] 2.3.3.1.4 Lpstr */\nfunction parse_lpstr(blob, type, pad/*:?number*/) {\n\tvar start = blob.l;\n\tvar str = blob.read_shift(0, 'lpstr-cp');\n\tif(pad) while((blob.l - start) & 3) ++blob.l;\n\treturn str;\n}\n\n/* [MS-OSHARED] 2.3.3.1.6 Lpwstr */\nfunction parse_lpwstr(blob, type, pad) {\n\tvar str = blob.read_shift(0, 'lpwstr');\n\tif(pad) blob.l += (4 - ((str.length+1) & 3)) & 3;\n\treturn str;\n}\n\n\n/* [MS-OSHARED] 2.3.3.1.11 VtString */\n/* [MS-OSHARED] 2.3.3.1.12 VtUnalignedString */\nfunction parse_VtStringBase(blob, stringType, pad) {\n\tif(stringType === 0x1F /*VT_LPWSTR*/) return parse_lpwstr(blob);\n\treturn parse_lpstr(blob, stringType, pad);\n}\n\nfunction parse_VtString(blob, t/*:number*/, pad/*:?boolean*/) { return parse_VtStringBase(blob, t, pad === false ? 0: 4); }\nfunction parse_VtUnalignedString(blob, t/*:number*/) { if(!t) throw new Error(\"VtUnalignedString must have positive length\"); return parse_VtStringBase(blob, t, 0); }\n\n/* [MS-OSHARED] 2.3.3.1.7 VtVecLpwstrValue */\nfunction parse_VtVecLpwstrValue(blob)/*:Array<string>*/ {\n\tvar length = blob.read_shift(4);\n\tvar ret/*:Array<string>*/ = [];\n\tfor(var i = 0; i != length; ++i) {\n\t\tvar start = blob.l;\n\t\tret[i] = blob.read_shift(0, 'lpwstr').replace(chr0,'');\n\t\tif((blob.l - start) & 0x02) blob.l += 2;\n\t}\n\treturn ret;\n}\n\n/* [MS-OSHARED] 2.3.3.1.9 VtVecUnalignedLpstrValue */\nfunction parse_VtVecUnalignedLpstrValue(blob)/*:Array<string>*/ {\n\tvar length = blob.read_shift(4);\n\tvar ret/*:Array<string>*/ = [];\n\tfor(var i = 0; i != length; ++i) ret[i] = blob.read_shift(0, 'lpstr-cp').replace(chr0,'');\n\treturn ret;\n}\n\n\n/* [MS-OSHARED] 2.3.3.1.13 VtHeadingPair */\nfunction parse_VtHeadingPair(blob) {\n\tvar start = blob.l;\n\tvar headingString = parse_TypedPropertyValue(blob, VT_USTR);\n\tif(blob[blob.l] == 0x00 && blob[blob.l+1] == 0x00 && ((blob.l - start) & 0x02)) blob.l += 2;\n\tvar headerParts = parse_TypedPropertyValue(blob, VT_I4);\n\treturn [headingString, headerParts];\n}\n\n/* [MS-OSHARED] 2.3.3.1.14 VtVecHeadingPairValue */\nfunction parse_VtVecHeadingPairValue(blob) {\n\tvar cElements = blob.read_shift(4);\n\tvar out = [];\n\tfor(var i = 0; i < cElements / 2; ++i) out.push(parse_VtHeadingPair(blob));\n\treturn out;\n}\n\n/* [MS-OLEPS] 2.18.1 Dictionary (uses 2.17, 2.16) */\nfunction parse_dictionary(blob,CodePage) {\n\tvar cnt = blob.read_shift(4);\n\tvar dict/*:{[number]:string}*/ = ({}/*:any*/);\n\tfor(var j = 0; j != cnt; ++j) {\n\t\tvar pid = blob.read_shift(4);\n\t\tvar len = blob.read_shift(4);\n\t\tdict[pid] = blob.read_shift(len, (CodePage === 0x4B0 ?'utf16le':'utf8')).replace(chr0,'').replace(chr1,'!');\n\t\tif(CodePage === 0x4B0 && (len % 2)) blob.l += 2;\n\t}\n\tif(blob.l & 3) blob.l = (blob.l>>2+1)<<2;\n\treturn dict;\n}\n\n/* [MS-OLEPS] 2.9 BLOB */\nfunction parse_BLOB(blob) {\n\tvar size = blob.read_shift(4);\n\tvar bytes = blob.slice(blob.l,blob.l+size);\n\tblob.l += size;\n\tif((size & 3) > 0) blob.l += (4 - (size & 3)) & 3;\n\treturn bytes;\n}\n\n/* [MS-OLEPS] 2.11 ClipboardData */\nfunction parse_ClipboardData(blob) {\n\t// TODO\n\tvar o = {};\n\to.Size = blob.read_shift(4);\n\t//o.Format = blob.read_shift(4);\n\tblob.l += o.Size + 3 - (o.Size - 1) % 4;\n\treturn o;\n}\n\n/* [MS-OLEPS] 2.15 TypedPropertyValue */\nfunction parse_TypedPropertyValue(blob, type/*:number*/, _opts)/*:any*/ {\n\tvar t = blob.read_shift(2), ret, opts = _opts||{};\n\tblob.l += 2;\n\tif(type !== VT_VARIANT)\n\tif(t !== type && VT_CUSTOM.indexOf(type)===-1 && !((type & 0xFFFE) == 0x101E && (t & 0xFFFE) == 0x101E)) throw new Error('Expected type ' + type + ' saw ' + t);\n\tswitch(type === VT_VARIANT ? t : type) {\n\t\tcase 0x02 /*VT_I2*/: ret = blob.read_shift(2, 'i'); if(!opts.raw) blob.l += 2; return ret;\n\t\tcase 0x03 /*VT_I4*/: ret = blob.read_shift(4, 'i'); return ret;\n\t\tcase 0x0B /*VT_BOOL*/: return blob.read_shift(4) !== 0x0;\n\t\tcase 0x13 /*VT_UI4*/: ret = blob.read_shift(4); return ret;\n\t\tcase 0x1E /*VT_LPSTR*/: return parse_lpstr(blob, t, 4).replace(chr0,'');\n\t\tcase 0x1F /*VT_LPWSTR*/: return parse_lpwstr(blob);\n\t\tcase 0x40 /*VT_FILETIME*/: return parse_FILETIME(blob);\n\t\tcase 0x41 /*VT_BLOB*/: return parse_BLOB(blob);\n\t\tcase 0x47 /*VT_CF*/: return parse_ClipboardData(blob);\n\t\tcase 0x50 /*VT_STRING*/: return parse_VtString(blob, t, !opts.raw).replace(chr0,'');\n\t\tcase 0x51 /*VT_USTR*/: return parse_VtUnalignedString(blob, t/*, 4*/).replace(chr0,'');\n\t\tcase 0x100C /*VT_VECTOR|VT_VARIANT*/: return parse_VtVecHeadingPairValue(blob);\n\t\tcase 0x101E /*VT_VECTOR|VT_LPSTR*/:\n\t\tcase 0x101F /*VT_VECTOR|VT_LPWSTR*/:\n\t\t\treturn t == 0x101F ? parse_VtVecLpwstrValue(blob) : parse_VtVecUnalignedLpstrValue(blob);\n\t\tdefault: throw new Error(\"TypedPropertyValue unrecognized type \" + type + \" \" + t);\n\t}\n}\nfunction write_TypedPropertyValue(type/*:number*/, value) {\n\tvar o = new_buf(4), p = new_buf(4);\n\to.write_shift(4, type == 0x50 ? 0x1F : type);\n\tswitch(type) {\n\t\tcase 0x03 /*VT_I4*/: p.write_shift(-4, value); break;\n\t\tcase 0x05 /*VT_I4*/: p = new_buf(8); p.write_shift(8, value, 'f'); break;\n\t\tcase 0x0B /*VT_BOOL*/: p.write_shift(4, value ? 0x01 : 0x00); break;\n\t\tcase 0x40 /*VT_FILETIME*/: /*:: if(typeof value !== \"string\" && !(value instanceof Date)) throw \"unreachable\"; */ p = write_FILETIME(value); break;\n\t\tcase 0x1F /*VT_LPWSTR*/:\n\t\tcase 0x50 /*VT_STRING*/:\n\t\t\t/*:: if(typeof value !== \"string\") throw \"unreachable\"; */\n\t\t\tp = new_buf(4 + 2 * (value.length + 1) + (value.length % 2 ? 0 : 2));\n\t\t\tp.write_shift(4, value.length + 1);\n\t\t\tp.write_shift(0, value, \"dbcs\");\n\t\t\twhile(p.l != p.length) p.write_shift(1, 0);\n\t\t\tbreak;\n\t\tdefault: throw new Error(\"TypedPropertyValue unrecognized type \" + type + \" \" + value);\n\t}\n\treturn bconcat([o, p]);\n}\n\n/* [MS-OLEPS] 2.20 PropertySet */\nfunction parse_PropertySet(blob, PIDSI) {\n\tvar start_addr = blob.l;\n\tvar size = blob.read_shift(4);\n\tvar NumProps = blob.read_shift(4);\n\tvar Props = [], i = 0;\n\tvar CodePage = 0;\n\tvar Dictionary = -1, DictObj/*:{[number]:string}*/ = ({}/*:any*/);\n\tfor(i = 0; i != NumProps; ++i) {\n\t\tvar PropID = blob.read_shift(4);\n\t\tvar Offset = blob.read_shift(4);\n\t\tProps[i] = [PropID, Offset + start_addr];\n\t}\n\tProps.sort(function(x,y) { return x[1] - y[1]; });\n\tvar PropH = {};\n\tfor(i = 0; i != NumProps; ++i) {\n\t\tif(blob.l !== Props[i][1]) {\n\t\t\tvar fail = true;\n\t\t\tif(i>0 && PIDSI) switch(PIDSI[Props[i-1][0]].t) {\n\t\t\t\tcase 0x02 /*VT_I2*/: if(blob.l+2 === Props[i][1]) { blob.l+=2; fail = false; } break;\n\t\t\t\tcase 0x50 /*VT_STRING*/: if(blob.l <= Props[i][1]) { blob.l=Props[i][1]; fail = false; } break;\n\t\t\t\tcase 0x100C /*VT_VECTOR|VT_VARIANT*/: if(blob.l <= Props[i][1]) { blob.l=Props[i][1]; fail = false; } break;\n\t\t\t}\n\t\t\tif((!PIDSI||i==0) && blob.l <= Props[i][1]) { fail=false; blob.l = Props[i][1]; }\n\t\t\tif(fail) throw new Error(\"Read Error: Expected address \" + Props[i][1] + ' at ' + blob.l + ' :' + i);\n\t\t}\n\t\tif(PIDSI) {\n\t\t\tif(Props[i][0] == 0 && Props.length > i+1 && Props[i][1] == Props[i+1][1]) continue; // R9\n\t\t\tvar piddsi = PIDSI[Props[i][0]];\n\t\t\tPropH[piddsi.n] = parse_TypedPropertyValue(blob, piddsi.t, {raw:true});\n\t\t\tif(piddsi.p === 'version') PropH[piddsi.n] = String(PropH[piddsi.n] >> 16) + \".\" + (\"0000\" + String(PropH[piddsi.n] & 0xFFFF)).slice(-4);\n\t\t\tif(piddsi.n == \"CodePage\") switch(PropH[piddsi.n]) {\n\t\t\t\tcase 0: PropH[piddsi.n] = 1252;\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 874:\n\t\t\t\tcase 932:\n\t\t\t\tcase 936:\n\t\t\t\tcase 949:\n\t\t\t\tcase 950:\n\t\t\t\tcase 1250:\n\t\t\t\tcase 1251:\n\t\t\t\tcase 1253:\n\t\t\t\tcase 1254:\n\t\t\t\tcase 1255:\n\t\t\t\tcase 1256:\n\t\t\t\tcase 1257:\n\t\t\t\tcase 1258:\n\t\t\t\tcase 10000:\n\t\t\t\tcase 1200:\n\t\t\t\tcase 1201:\n\t\t\t\tcase 1252:\n\t\t\t\tcase 65000: case -536:\n\t\t\t\tcase 65001: case -535:\n\t\t\t\t\tset_cp(CodePage = (PropH[piddsi.n]>>>0) & 0xFFFF); break;\n\t\t\t\tdefault: throw new Error(\"Unsupported CodePage: \" + PropH[piddsi.n]);\n\t\t\t}\n\t\t} else {\n\t\t\tif(Props[i][0] === 0x1) {\n\t\t\t\tCodePage = PropH.CodePage = (parse_TypedPropertyValue(blob, VT_I2)/*:number*/);\n\t\t\t\tset_cp(CodePage);\n\t\t\t\tif(Dictionary !== -1) {\n\t\t\t\t\tvar oldpos = blob.l;\n\t\t\t\t\tblob.l = Props[Dictionary][1];\n\t\t\t\t\tDictObj = parse_dictionary(blob,CodePage);\n\t\t\t\t\tblob.l = oldpos;\n\t\t\t\t}\n\t\t\t} else if(Props[i][0] === 0) {\n\t\t\t\tif(CodePage === 0) { Dictionary = i; blob.l = Props[i+1][1]; continue; }\n\t\t\t\tDictObj = parse_dictionary(blob,CodePage);\n\t\t\t} else {\n\t\t\t\tvar name = DictObj[Props[i][0]];\n\t\t\t\tvar val;\n\t\t\t\t/* [MS-OSHARED] 2.3.3.2.3.1.2 + PROPVARIANT */\n\t\t\t\tswitch(blob[blob.l]) {\n\t\t\t\t\tcase 0x41 /*VT_BLOB*/: blob.l += 4; val = parse_BLOB(blob); break;\n\t\t\t\t\tcase 0x1E /*VT_LPSTR*/: blob.l += 4; val = parse_VtString(blob, blob[blob.l-4]).replace(/\\u0000+$/,\"\"); break;\n\t\t\t\t\tcase 0x1F /*VT_LPWSTR*/: blob.l += 4; val = parse_VtString(blob, blob[blob.l-4]).replace(/\\u0000+$/,\"\"); break;\n\t\t\t\t\tcase 0x03 /*VT_I4*/: blob.l += 4; val = blob.read_shift(4, 'i'); break;\n\t\t\t\t\tcase 0x13 /*VT_UI4*/: blob.l += 4; val = blob.read_shift(4); break;\n\t\t\t\t\tcase 0x05 /*VT_R8*/: blob.l += 4; val = blob.read_shift(8, 'f'); break;\n\t\t\t\t\tcase 0x0B /*VT_BOOL*/: blob.l += 4; val = parsebool(blob, 4); break;\n\t\t\t\t\tcase 0x40 /*VT_FILETIME*/: blob.l += 4; val = parseDate(parse_FILETIME(blob)); break;\n\t\t\t\t\tdefault: throw new Error(\"unparsed value: \" + blob[blob.l]);\n\t\t\t\t}\n\t\t\t\tPropH[name] = val;\n\t\t\t}\n\t\t}\n\t}\n\tblob.l = start_addr + size; /* step ahead to skip padding */\n\treturn PropH;\n}\nvar XLSPSSkip = [ \"CodePage\", \"Thumbnail\", \"_PID_LINKBASE\", \"_PID_HLINKS\", \"SystemIdentifier\", \"FMTID\" ];\nfunction guess_property_type(val/*:any*/)/*:number*/ {\n\tswitch(typeof val) {\n\t\tcase \"boolean\": return 0x0B;\n\t\tcase \"number\": return ((val|0)==val) ? 0x03 : 0x05;\n\t\tcase \"string\": return 0x1F;\n\t\tcase \"object\": if(val instanceof Date) return 0x40; break;\n\t}\n\treturn -1;\n}\nfunction write_PropertySet(entries, RE, PIDSI) {\n\tvar hdr = new_buf(8), piao = [], prop = [];\n\tvar sz = 8, i = 0;\n\n\tvar pr = new_buf(8), pio = new_buf(8);\n\tpr.write_shift(4, 0x0002);\n\tpr.write_shift(4, 0x04B0);\n\tpio.write_shift(4, 0x0001);\n\tprop.push(pr); piao.push(pio);\n\tsz += 8 + pr.length;\n\n\tif(!RE) {\n\t\tpio = new_buf(8);\n\t\tpio.write_shift(4, 0);\n\t\tpiao.unshift(pio);\n\n\t\tvar bufs = [new_buf(4)];\n\t\tbufs[0].write_shift(4, entries.length);\n\t\tfor(i = 0; i < entries.length; ++i) {\n\t\t\tvar value = entries[i][0];\n\t\t\tpr = new_buf(4 + 4 + 2 * (value.length + 1) + (value.length % 2 ? 0 : 2));\n\t\t\tpr.write_shift(4, i+2);\n\t\t\tpr.write_shift(4, value.length + 1);\n\t\t\tpr.write_shift(0, value, \"dbcs\");\n\t\t\twhile(pr.l != pr.length) pr.write_shift(1, 0);\n\t\t\tbufs.push(pr);\n\t\t}\n\t\tpr = bconcat(bufs);\n\t\tprop.unshift(pr);\n\t\tsz += 8 + pr.length;\n\t}\n\n\tfor(i = 0; i < entries.length; ++i) {\n\t\tif(RE && !RE[entries[i][0]]) continue;\n\t\tif(XLSPSSkip.indexOf(entries[i][0]) > -1 || PseudoPropsPairs.indexOf(entries[i][0]) > -1) continue;\n\t\tif(entries[i][1] == null) continue;\n\n\t\tvar val = entries[i][1], idx = 0;\n\t\tif(RE) {\n\t\t\tidx = +RE[entries[i][0]];\n\t\t\tvar pinfo = (PIDSI/*:: || {}*/)[idx]/*:: || {} */;\n\t\t\tif(pinfo.p == \"version\" && typeof val == \"string\") {\n\t\t\t\t/*:: if(typeof val !== \"string\") throw \"unreachable\"; */\n\t\t\t\tvar arr = val.split(\".\");\n\t\t\t\tval = ((+arr[0])<<16) + ((+arr[1])||0);\n\t\t\t}\n\t\t\tpr = write_TypedPropertyValue(pinfo.t, val);\n\t\t} else {\n\t\t\tvar T = guess_property_type(val);\n\t\t\tif(T == -1) { T = 0x1F; val = String(val); }\n\t\t\tpr = write_TypedPropertyValue(T, val);\n\t\t}\n\t\tprop.push(pr);\n\n\t\tpio = new_buf(8);\n\t\tpio.write_shift(4, !RE ? 2+i : idx);\n\t\tpiao.push(pio);\n\n\t\tsz += 8 + pr.length;\n\t}\n\n\tvar w = 8 * (prop.length + 1);\n\tfor(i = 0; i < prop.length; ++i) { piao[i].write_shift(4, w); w += prop[i].length; }\n\thdr.write_shift(4, sz);\n\thdr.write_shift(4, prop.length);\n\treturn bconcat([hdr].concat(piao).concat(prop));\n}\n\n/* [MS-OLEPS] 2.21 PropertySetStream */\nfunction parse_PropertySetStream(file, PIDSI, clsid) {\n\tvar blob = file.content;\n\tif(!blob) return ({}/*:any*/);\n\tprep_blob(blob, 0);\n\n\tvar NumSets, FMTID0, FMTID1, Offset0, Offset1 = 0;\n\tblob.chk('feff', 'Byte Order: ');\n\n\t/*var vers = */blob.read_shift(2); // TODO: check version\n\tvar SystemIdentifier = blob.read_shift(4);\n\tvar CLSID = blob.read_shift(16);\n\tif(CLSID !== CFB.utils.consts.HEADER_CLSID && CLSID !== clsid) throw new Error(\"Bad PropertySet CLSID \" + CLSID);\n\tNumSets = blob.read_shift(4);\n\tif(NumSets !== 1 && NumSets !== 2) throw new Error(\"Unrecognized #Sets: \" + NumSets);\n\tFMTID0 = blob.read_shift(16); Offset0 = blob.read_shift(4);\n\n\tif(NumSets === 1 && Offset0 !== blob.l) throw new Error(\"Length mismatch: \" + Offset0 + \" !== \" + blob.l);\n\telse if(NumSets === 2) { FMTID1 = blob.read_shift(16); Offset1 = blob.read_shift(4); }\n\tvar PSet0 = parse_PropertySet(blob, PIDSI);\n\n\tvar rval = ({ SystemIdentifier: SystemIdentifier }/*:any*/);\n\tfor(var y in PSet0) rval[y] = PSet0[y];\n\t//rval.blob = blob;\n\trval.FMTID = FMTID0;\n\t//rval.PSet0 = PSet0;\n\tif(NumSets === 1) return rval;\n\tif(Offset1 - blob.l == 2) blob.l += 2;\n\tif(blob.l !== Offset1) throw new Error(\"Length mismatch 2: \" + blob.l + \" !== \" + Offset1);\n\tvar PSet1;\n\ttry { PSet1 = parse_PropertySet(blob, null); } catch(e) {/* empty */}\n\tfor(y in PSet1) rval[y] = PSet1[y];\n\trval.FMTID = [FMTID0, FMTID1]; // TODO: verify FMTID0/1\n\treturn rval;\n}\nfunction write_PropertySetStream(entries, clsid, RE, PIDSI/*:{[key:string|number]:any}*/, entries2/*:?any*/, clsid2/*:?any*/) {\n\tvar hdr = new_buf(entries2 ? 68 : 48);\n\tvar bufs = [hdr];\n\thdr.write_shift(2, 0xFFFE);\n\thdr.write_shift(2, 0x0000); /* TODO: type 1 props */\n\thdr.write_shift(4, 0x32363237);\n\thdr.write_shift(16, CFB.utils.consts.HEADER_CLSID, \"hex\");\n\thdr.write_shift(4, (entries2 ? 2 : 1));\n\thdr.write_shift(16, clsid, \"hex\");\n\thdr.write_shift(4, (entries2 ? 68 : 48));\n\tvar ps0 = write_PropertySet(entries, RE, PIDSI);\n\tbufs.push(ps0);\n\n\tif(entries2) {\n\t\tvar ps1 = write_PropertySet(entries2, null, null);\n\t\thdr.write_shift(16, clsid2, \"hex\");\n\t\thdr.write_shift(4, 68 + ps0.length);\n\t\tbufs.push(ps1);\n\t}\n\treturn bconcat(bufs);\n}\n\nfunction parsenoop2(blob, length) { blob.read_shift(length); return null; }\nfunction writezeroes(n, o) { if(!o) o=new_buf(n); for(var j=0; j<n; ++j) o.write_shift(1, 0); return o; }\n\nfunction parslurp(blob, length, cb) {\n\tvar arr = [], target = blob.l + length;\n\twhile(blob.l < target) arr.push(cb(blob, target - blob.l));\n\tif(target !== blob.l) throw new Error(\"Slurp error\");\n\treturn arr;\n}\n\nfunction parsebool(blob, length/*:number*/) { return blob.read_shift(length) === 0x1; }\nfunction writebool(v/*:any*/, o) { if(!o) o=new_buf(2); o.write_shift(2, +!!v); return o; }\n\nfunction parseuint16(blob/*::, length:?number, opts:?any*/) { return blob.read_shift(2, 'u'); }\nfunction writeuint16(v/*:number*/, o) { if(!o) o=new_buf(2); o.write_shift(2, v); return o; }\nfunction parseuint16a(blob, length/*:: :?number, opts:?any*/) { return parslurp(blob,length,parseuint16);}\n\n/* --- 2.5 Structures --- */\n\n/* [MS-XLS] 2.5.10 Bes (boolean or error) */\nfunction parse_Bes(blob/*::, length*/) {\n\tvar v = blob.read_shift(1), t = blob.read_shift(1);\n\treturn t === 0x01 ? v : v === 0x01;\n}\nfunction write_Bes(v, t/*:string*/, o) {\n\tif(!o) o = new_buf(2);\n\to.write_shift(1, ((t == 'e') ? +v : +!!v));\n\to.write_shift(1, ((t == 'e') ? 1 : 0));\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.240 ShortXLUnicodeString */\nfunction parse_ShortXLUnicodeString(blob, length, opts) {\n\tvar cch = blob.read_shift(opts && opts.biff >= 12 ? 2 : 1);\n\tvar encoding = 'sbcs-cont';\n\tvar cp = current_codepage;\n\tif(opts && opts.biff >= 8) current_codepage = 1200;\n\tif(!opts || opts.biff == 8 ) {\n\t\tvar fHighByte = blob.read_shift(1);\n\t\tif(fHighByte) { encoding = 'dbcs-cont'; }\n\t} else if(opts.biff == 12) {\n\t\tencoding = 'wstr';\n\t}\n\tif(opts.biff >= 2 && opts.biff <= 5) encoding = 'cpstr';\n\tvar o = cch ? blob.read_shift(cch, encoding) : \"\";\n\tcurrent_codepage = cp;\n\treturn o;\n}\n\n/* 2.5.293 XLUnicodeRichExtendedString */\nfunction parse_XLUnicodeRichExtendedString(blob) {\n\tvar cp = current_codepage;\n\tcurrent_codepage = 1200;\n\tvar cch = blob.read_shift(2), flags = blob.read_shift(1);\n\tvar /*fHighByte = flags & 0x1,*/ fExtSt = flags & 0x4, fRichSt = flags & 0x8;\n\tvar width = 1 + (flags & 0x1); // 0x0 -> utf8, 0x1 -> dbcs\n\tvar cRun = 0, cbExtRst;\n\tvar z = {};\n\tif(fRichSt) cRun = blob.read_shift(2);\n\tif(fExtSt) cbExtRst = blob.read_shift(4);\n\tvar encoding = width == 2 ? 'dbcs-cont' : 'sbcs-cont';\n\tvar msg = cch === 0 ? \"\" : blob.read_shift(cch, encoding);\n\tif(fRichSt) blob.l += 4 * cRun; //TODO: parse this\n\tif(fExtSt) blob.l += cbExtRst; //TODO: parse this\n\tz.t = msg;\n\tif(!fRichSt) { z.raw = \"<t>\" + z.t + \"</t>\"; z.r = z.t; }\n\tcurrent_codepage = cp;\n\treturn z;\n}\nfunction write_XLUnicodeRichExtendedString(xlstr/*:: :XLString, opts*/) {\n\tvar str = (xlstr.t||\"\"), nfmts = 1;\n\n\tvar hdr = new_buf(3 + (nfmts > 1 ? 2 : 0));\n\thdr.write_shift(2, str.length);\n\thdr.write_shift(1, (nfmts > 1 ? 0x08 : 0x00) | 0x01);\n\tif(nfmts > 1) hdr.write_shift(2, nfmts);\n\n\tvar otext = new_buf(2 * str.length);\n\totext.write_shift(2 * str.length, str, 'utf16le');\n\n\tvar out = [hdr, otext];\n\n\treturn bconcat(out);\n}\n\n/* 2.5.296 XLUnicodeStringNoCch */\nfunction parse_XLUnicodeStringNoCch(blob, cch, opts) {\n\tvar retval;\n\tif(opts) {\n\t\tif(opts.biff >= 2 && opts.biff <= 5) return blob.read_shift(cch, 'cpstr');\n\t\tif(opts.biff >= 12) return blob.read_shift(cch, 'dbcs-cont');\n\t}\n\tvar fHighByte = blob.read_shift(1);\n\tif(fHighByte===0) { retval = blob.read_shift(cch, 'sbcs-cont'); }\n\telse { retval = blob.read_shift(cch, 'dbcs-cont'); }\n\treturn retval;\n}\n\n/* 2.5.294 XLUnicodeString */\nfunction parse_XLUnicodeString(blob, length, opts) {\n\tvar cch = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\tif(cch === 0) { blob.l++; return \"\"; }\n\treturn parse_XLUnicodeStringNoCch(blob, cch, opts);\n}\n/* BIFF5 override */\nfunction parse_XLUnicodeString2(blob, length, opts) {\n\tif(opts.biff > 5) return parse_XLUnicodeString(blob, length, opts);\n\tvar cch = blob.read_shift(1);\n\tif(cch === 0) { blob.l++; return \"\"; }\n\treturn blob.read_shift(cch, (opts.biff <= 4 || !blob.lens ) ? 'cpstr' : 'sbcs-cont');\n}\n/* TODO: BIFF5 and lower, codepage awareness */\nfunction write_XLUnicodeString(str, opts, o) {\n\tif(!o) o = new_buf(3 + 2 * str.length);\n\to.write_shift(2, str.length);\n\to.write_shift(1, 1);\n\to.write_shift(31, str, 'utf16le');\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.61 ControlInfo */\nfunction parse_ControlInfo(blob/*::, length, opts*/) {\n\tvar flags = blob.read_shift(1);\n\tblob.l++;\n\tvar accel = blob.read_shift(2);\n\tblob.l += 2;\n\treturn [flags, accel];\n}\n\n/* [MS-OSHARED] 2.3.7.6 URLMoniker TODO: flags */\nfunction parse_URLMoniker(blob/*::, length, opts*/) {\n\tvar len = blob.read_shift(4), start = blob.l;\n\tvar extra = false;\n\tif(len > 24) {\n\t\t/* look ahead */\n\t\tblob.l += len - 24;\n\t\tif(blob.read_shift(16) === \"795881f43b1d7f48af2c825dc4852763\") extra = true;\n\t\tblob.l = start;\n\t}\n\tvar url = blob.read_shift((extra?len-24:len)>>1, 'utf16le').replace(chr0,\"\");\n\tif(extra) blob.l += 24;\n\treturn url;\n}\n\n/* [MS-OSHARED] 2.3.7.8 FileMoniker TODO: all fields */\nfunction parse_FileMoniker(blob/*::, length*/) {\n\tvar cAnti = blob.read_shift(2);\n\tvar preamble = \"\"; while(cAnti-- > 0) preamble += \"../\";\n\tvar ansiPath = blob.read_shift(0, 'lpstr-ansi');\n\tblob.l += 2; //var endServer = blob.read_shift(2);\n\tif(blob.read_shift(2) != 0xDEAD) throw new Error(\"Bad FileMoniker\");\n\tvar sz = blob.read_shift(4);\n\tif(sz === 0) return preamble + ansiPath.replace(/\\\\/g,\"/\");\n\tvar bytes = blob.read_shift(4);\n\tif(blob.read_shift(2) != 3) throw new Error(\"Bad FileMoniker\");\n\tvar unicodePath = blob.read_shift(bytes>>1, 'utf16le').replace(chr0,\"\");\n\treturn preamble + unicodePath;\n}\n\n/* [MS-OSHARED] 2.3.7.2 HyperlinkMoniker TODO: all the monikers */\nfunction parse_HyperlinkMoniker(blob, length) {\n\tvar clsid = blob.read_shift(16); length -= 16;\n\tswitch(clsid) {\n\t\tcase \"e0c9ea79f9bace118c8200aa004ba90b\": return parse_URLMoniker(blob, length);\n\t\tcase \"0303000000000000c000000000000046\": return parse_FileMoniker(blob, length);\n\t\tdefault: throw new Error(\"Unsupported Moniker \" + clsid);\n\t}\n}\n\n/* [MS-OSHARED] 2.3.7.9 HyperlinkString */\nfunction parse_HyperlinkString(blob/*::, length*/) {\n\tvar len = blob.read_shift(4);\n\tvar o = len > 0 ? blob.read_shift(len, 'utf16le').replace(chr0, \"\") : \"\";\n\treturn o;\n}\nfunction write_HyperlinkString(str/*:string*/, o) {\n\tif(!o) o = new_buf(6 + str.length * 2);\n\to.write_shift(4, 1 + str.length);\n\tfor(var i = 0; i < str.length; ++i) o.write_shift(2, str.charCodeAt(i));\n\to.write_shift(2, 0);\n\treturn o;\n}\n\n/* [MS-OSHARED] 2.3.7.1 Hyperlink Object */\nfunction parse_Hyperlink(blob, length)/*:Hyperlink*/ {\n\tvar end = blob.l + length;\n\tvar sVer = blob.read_shift(4);\n\tif(sVer !== 2) throw new Error(\"Unrecognized streamVersion: \" + sVer);\n\tvar flags = blob.read_shift(2);\n\tblob.l += 2;\n\tvar displayName, targetFrameName, moniker, oleMoniker, Loc=\"\", guid, fileTime;\n\tif(flags & 0x0010) displayName = parse_HyperlinkString(blob, end - blob.l);\n\tif(flags & 0x0080) targetFrameName = parse_HyperlinkString(blob, end - blob.l);\n\tif((flags & 0x0101) === 0x0101) moniker = parse_HyperlinkString(blob, end - blob.l);\n\tif((flags & 0x0101) === 0x0001) oleMoniker = parse_HyperlinkMoniker(blob, end - blob.l);\n\tif(flags & 0x0008) Loc = parse_HyperlinkString(blob, end - blob.l);\n\tif(flags & 0x0020) guid = blob.read_shift(16);\n\tif(flags & 0x0040) fileTime = parse_FILETIME(blob/*, 8*/);\n\tblob.l = end;\n\tvar target = targetFrameName||moniker||oleMoniker||\"\";\n\tif(target && Loc) target+=\"#\"+Loc;\n\tif(!target) target = \"#\" + Loc;\n\tif((flags & 0x0002) && target.charAt(0) == \"/\" && target.charAt(1) != \"/\") target = \"file://\" + target;\n\tvar out = ({Target:target}/*:any*/);\n\tif(guid) out.guid = guid;\n\tif(fileTime) out.time = fileTime;\n\tif(displayName) out.Tooltip = displayName;\n\treturn out;\n}\nfunction write_Hyperlink(hl) {\n\tvar out = new_buf(512), i = 0;\n\tvar Target = hl.Target;\n\tif(Target.slice(0,7) == \"file://\") Target = Target.slice(7);\n\tvar hashidx = Target.indexOf(\"#\");\n\tvar F = hashidx > -1 ? 0x1f : 0x17;\n\tswitch(Target.charAt(0)) { case \"#\": F=0x1c; break; case \".\": F&=~2; break; }\n\tout.write_shift(4,2); out.write_shift(4, F);\n\tvar data = [8,6815827,6619237,4849780,83]; for(i = 0; i < data.length; ++i) out.write_shift(4, data[i]);\n\tif(F == 0x1C) {\n\t\tTarget = Target.slice(1);\n\t\twrite_HyperlinkString(Target, out);\n\t} else if(F & 0x02) {\n\t\tdata = \"e0 c9 ea 79 f9 ba ce 11 8c 82 00 aa 00 4b a9 0b\".split(\" \");\n\t\tfor(i = 0; i < data.length; ++i) out.write_shift(1, parseInt(data[i], 16));\n\t\tvar Pretarget = hashidx > -1 ? Target.slice(0, hashidx) : Target;\n\t\tout.write_shift(4, 2*(Pretarget.length + 1));\n\t\tfor(i = 0; i < Pretarget.length; ++i) out.write_shift(2, Pretarget.charCodeAt(i));\n\t\tout.write_shift(2, 0);\n\t\tif(F & 0x08) write_HyperlinkString(hashidx > -1 ? Target.slice(hashidx+1): \"\", out);\n\t} else {\n\t\tdata = \"03 03 00 00 00 00 00 00 c0 00 00 00 00 00 00 46\".split(\" \");\n\t\tfor(i = 0; i < data.length; ++i) out.write_shift(1, parseInt(data[i], 16));\n\t\tvar P = 0;\n\t\twhile(Target.slice(P*3,P*3+3)==\"../\"||Target.slice(P*3,P*3+3)==\"..\\\\\") ++P;\n\t\tout.write_shift(2, P);\n\t\tout.write_shift(4, Target.length - 3 * P + 1);\n\t\tfor(i = 0; i < Target.length - 3 * P; ++i) out.write_shift(1, Target.charCodeAt(i + 3 * P) & 0xFF);\n\t\tout.write_shift(1, 0);\n\t\tout.write_shift(2, 0xFFFF);\n\t\tout.write_shift(2, 0xDEAD);\n\t\tfor(i = 0; i < 6; ++i) out.write_shift(4, 0);\n\t}\n\treturn out.slice(0, out.l);\n}\n\n/* 2.5.178 LongRGBA */\nfunction parse_LongRGBA(blob/*::, length*/) { var r = blob.read_shift(1), g = blob.read_shift(1), b = blob.read_shift(1), a = blob.read_shift(1); return [r,g,b,a]; }\n\n/* 2.5.177 LongRGB */\nfunction parse_LongRGB(blob, length) { var x = parse_LongRGBA(blob, length); x[3] = 0; return x; }\n\n\n/* [MS-XLS] 2.5.19 */\nfunction parse_XLSCell(blob/*::, length*/)/*:Cell*/ {\n\tvar rw = blob.read_shift(2); // 0-indexed\n\tvar col = blob.read_shift(2);\n\tvar ixfe = blob.read_shift(2);\n\treturn ({r:rw, c:col, ixfe:ixfe}/*:any*/);\n}\nfunction write_XLSCell(R/*:number*/, C/*:number*/, ixfe/*:?number*/, o) {\n\tif(!o) o = new_buf(6);\n\to.write_shift(2, R);\n\to.write_shift(2, C);\n\to.write_shift(2, ixfe||0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.134 */\nfunction parse_frtHeader(blob) {\n\tvar rt = blob.read_shift(2);\n\tvar flags = blob.read_shift(2); // TODO: parse these flags\n\tblob.l += 8;\n\treturn {type: rt, flags: flags};\n}\n\n\n\nfunction parse_OptXLUnicodeString(blob, length, opts) { return length === 0 ? \"\" : parse_XLUnicodeString2(blob, length, opts); }\n\n/* [MS-XLS] 2.5.344 */\nfunction parse_XTI(blob, length, opts) {\n\tvar w = opts.biff > 8 ? 4 : 2;\n\tvar iSupBook = blob.read_shift(w), itabFirst = blob.read_shift(w,'i'), itabLast = blob.read_shift(w,'i');\n\treturn [iSupBook, itabFirst, itabLast];\n}\n\n/* [MS-XLS] 2.5.218 */\nfunction parse_RkRec(blob) {\n\tvar ixfe = blob.read_shift(2);\n\tvar RK = parse_RkNumber(blob);\n\treturn [ixfe, RK];\n}\n\n/* [MS-XLS] 2.5.1 */\nfunction parse_AddinUdf(blob, length, opts) {\n\tblob.l += 4; length -= 4;\n\tvar l = blob.l + length;\n\tvar udfName = parse_ShortXLUnicodeString(blob, length, opts);\n\tvar cb = blob.read_shift(2);\n\tl -= blob.l;\n\tif(cb !== l) throw new Error(\"Malformed AddinUdf: padding = \" + l + \" != \" + cb);\n\tblob.l += cb;\n\treturn udfName;\n}\n\n/* [MS-XLS] 2.5.209 TODO: Check sizes */\nfunction parse_Ref8U(blob/*::, length*/) {\n\tvar rwFirst = blob.read_shift(2);\n\tvar rwLast = blob.read_shift(2);\n\tvar colFirst = blob.read_shift(2);\n\tvar colLast = blob.read_shift(2);\n\treturn {s:{c:colFirst, r:rwFirst}, e:{c:colLast,r:rwLast}};\n}\nfunction write_Ref8U(r/*:Range*/, o) {\n\tif(!o) o = new_buf(8);\n\to.write_shift(2, r.s.r);\n\to.write_shift(2, r.e.r);\n\to.write_shift(2, r.s.c);\n\to.write_shift(2, r.e.c);\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.211 */\nfunction parse_RefU(blob/*::, length*/) {\n\tvar rwFirst = blob.read_shift(2);\n\tvar rwLast = blob.read_shift(2);\n\tvar colFirst = blob.read_shift(1);\n\tvar colLast = blob.read_shift(1);\n\treturn {s:{c:colFirst, r:rwFirst}, e:{c:colLast,r:rwLast}};\n}\n\n/* [MS-XLS] 2.5.207 */\nvar parse_Ref = parse_RefU;\n\n/* [MS-XLS] 2.5.143 */\nfunction parse_FtCmo(blob/*::, length*/) {\n\tblob.l += 4;\n\tvar ot = blob.read_shift(2);\n\tvar id = blob.read_shift(2);\n\tvar flags = blob.read_shift(2);\n\tblob.l+=12;\n\treturn [id, ot, flags];\n}\n\n/* [MS-XLS] 2.5.149 */\nfunction parse_FtNts(blob) {\n\tvar out = {};\n\tblob.l += 4;\n\tblob.l += 16; // GUID TODO\n\tout.fSharedNote = blob.read_shift(2);\n\tblob.l += 4;\n\treturn out;\n}\n\n/* [MS-XLS] 2.5.142 */\nfunction parse_FtCf(blob) {\n\tvar out = {};\n\tblob.l += 4;\n\tblob.cf = blob.read_shift(2);\n\treturn out;\n}\n\n/* [MS-XLS] 2.5.140 - 2.5.154 and friends */\nfunction parse_FtSkip(blob) { blob.l += 2; blob.l += blob.read_shift(2); }\nvar FtTab = {\n\t/*::[*/0x00/*::]*/: parse_FtSkip, /* FtEnd */\n\t/*::[*/0x04/*::]*/: parse_FtSkip, /* FtMacro */\n\t/*::[*/0x05/*::]*/: parse_FtSkip, /* FtButton */\n\t/*::[*/0x06/*::]*/: parse_FtSkip, /* FtGmo */\n\t/*::[*/0x07/*::]*/: parse_FtCf, /* FtCf */\n\t/*::[*/0x08/*::]*/: parse_FtSkip, /* FtPioGrbit */\n\t/*::[*/0x09/*::]*/: parse_FtSkip, /* FtPictFmla */\n\t/*::[*/0x0A/*::]*/: parse_FtSkip, /* FtCbls */\n\t/*::[*/0x0B/*::]*/: parse_FtSkip, /* FtRbo */\n\t/*::[*/0x0C/*::]*/: parse_FtSkip, /* FtSbs */\n\t/*::[*/0x0D/*::]*/: parse_FtNts, /* FtNts */\n\t/*::[*/0x0E/*::]*/: parse_FtSkip, /* FtSbsFmla */\n\t/*::[*/0x0F/*::]*/: parse_FtSkip, /* FtGboData */\n\t/*::[*/0x10/*::]*/: parse_FtSkip, /* FtEdoData */\n\t/*::[*/0x11/*::]*/: parse_FtSkip, /* FtRboData */\n\t/*::[*/0x12/*::]*/: parse_FtSkip, /* FtCblsData */\n\t/*::[*/0x13/*::]*/: parse_FtSkip, /* FtLbsData */\n\t/*::[*/0x14/*::]*/: parse_FtSkip, /* FtCblsFmla */\n\t/*::[*/0x15/*::]*/: parse_FtCmo\n};\nfunction parse_FtArray(blob, length/*::, ot*/) {\n\tvar tgt = blob.l + length;\n\tvar fts = [];\n\twhile(blob.l < tgt) {\n\t\tvar ft = blob.read_shift(2);\n\t\tblob.l-=2;\n\t\ttry {\n\t\t\tfts[ft] = FtTab[ft](blob, tgt - blob.l);\n\t\t} catch(e) { blob.l = tgt; return fts; }\n\t}\n\tif(blob.l != tgt) blob.l = tgt; //throw new Error(\"bad Object Ft-sequence\");\n\treturn fts;\n}\n\n/* --- 2.4 Records --- */\n\n/* [MS-XLS] 2.4.21 */\nfunction parse_BOF(blob, length) {\n\tvar o = {BIFFVer:0, dt:0};\n\to.BIFFVer = blob.read_shift(2); length -= 2;\n\tif(length >= 2) { o.dt = blob.read_shift(2); blob.l -= 2; }\n\tswitch(o.BIFFVer) {\n\t\tcase 0x0600: /* BIFF8 */\n\t\tcase 0x0500: /* BIFF5 */\n\t\tcase 0x0400: /* BIFF4 */\n\t\tcase 0x0300: /* BIFF3 */\n\t\tcase 0x0200: /* BIFF2 */\n\t\tcase 0x0002: case 0x0007: /* BIFF2 */\n\t\t\tbreak;\n\t\tdefault: if(length > 6) throw new Error(\"Unexpected BIFF Ver \" + o.BIFFVer);\n\t}\n\n\tblob.read_shift(length);\n\treturn o;\n}\nfunction write_BOF(wb/*:Workbook*/, t/*:number*/, o) {\n\tvar h = 0x0600, w = 16;\n\tswitch(o.bookType) {\n\t\tcase 'biff8': break;\n\t\tcase 'biff5': h = 0x0500; w = 8; break;\n\t\tcase 'biff4': h = 0x0004; w = 6; break;\n\t\tcase 'biff3': h = 0x0003; w = 6; break;\n\t\tcase 'biff2': h = 0x0002; w = 4; break;\n\t\tcase 'xla': break;\n\t\tdefault: throw new Error(\"unsupported BIFF version\");\n\t}\n\tvar out = new_buf(w);\n\tout.write_shift(2, h);\n\tout.write_shift(2, t);\n\tif(w > 4) out.write_shift(2, 0x7262);\n\tif(w > 6) out.write_shift(2, 0x07CD);\n\tif(w > 8) {\n\t\tout.write_shift(2, 0xC009);\n\t\tout.write_shift(2, 0x0001);\n\t\tout.write_shift(2, 0x0706);\n\t\tout.write_shift(2, 0x0000);\n\t}\n\treturn out;\n}\n\n\n/* [MS-XLS] 2.4.146 */\nfunction parse_InterfaceHdr(blob, length) {\n\tif(length === 0) return 0x04b0;\n\tif((blob.read_shift(2))!==0x04b0){/* empty */}\n\treturn 0x04b0;\n}\n\n\n/* [MS-XLS] 2.4.349 */\nfunction parse_WriteAccess(blob, length, opts) {\n\tif(opts.enc) { blob.l += length; return \"\"; }\n\tvar l = blob.l;\n\t// TODO: make sure XLUnicodeString doesnt overrun\n\tvar UserName = parse_XLUnicodeString2(blob, 0, opts);\n\tblob.read_shift(length + l - blob.l);\n\treturn UserName;\n}\nfunction write_WriteAccess(s/*:string*/, opts) {\n\tvar b8 = !opts || opts.biff == 8;\n\tvar o = new_buf(b8 ? 112 : 54);\n\to.write_shift(opts.biff == 8 ? 2 : 1, 7);\n\tif(b8) o.write_shift(1, 0);\n\to.write_shift(4, 0x33336853);\n\to.write_shift(4, (0x00534A74 | (b8 ? 0 : 0x20000000)));\n\twhile(o.l < o.length) o.write_shift(1, (b8 ? 0 : 32));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.351 */\nfunction parse_WsBool(blob, length, opts) {\n\tvar flags = opts && opts.biff == 8 || length == 2 ? blob.read_shift(2) : (blob.l += length, 0);\n\treturn { fDialog: flags & 0x10, fBelow: flags & 0x40, fRight: flags & 0x80 };\n}\n\n/* [MS-XLS] 2.4.28 */\nfunction parse_BoundSheet8(blob, length, opts) {\n\tvar pos = blob.read_shift(4);\n\tvar hidden = blob.read_shift(1) & 0x03;\n\tvar dt = blob.read_shift(1);\n\tswitch(dt) {\n\t\tcase 0: dt = 'Worksheet'; break;\n\t\tcase 1: dt = 'Macrosheet'; break;\n\t\tcase 2: dt = 'Chartsheet'; break;\n\t\tcase 6: dt = 'VBAModule'; break;\n\t}\n\tvar name = parse_ShortXLUnicodeString(blob, 0, opts);\n\tif(name.length === 0) name = \"Sheet1\";\n\treturn { pos:pos, hs:hidden, dt:dt, name:name };\n}\nfunction write_BoundSheet8(data, opts) {\n\tvar w = (!opts || opts.biff >= 8 ? 2 : 1);\n\tvar o = new_buf(8 + w * data.name.length);\n\to.write_shift(4, data.pos);\n\to.write_shift(1, data.hs || 0);\n\to.write_shift(1, data.dt);\n\to.write_shift(1, data.name.length);\n\tif(opts.biff >= 8) o.write_shift(1, 1);\n\to.write_shift(w * data.name.length, data.name, opts.biff < 8 ? 'sbcs' : 'utf16le');\n\tvar out = o.slice(0, o.l);\n\tout.l = o.l; return out;\n}\n\n/* [MS-XLS] 2.4.265 TODO */\nfunction parse_SST(blob, length)/*:SST*/ {\n\tvar end = blob.l + length;\n\tvar cnt = blob.read_shift(4);\n\tvar ucnt = blob.read_shift(4);\n\tvar strs/*:SST*/ = ([]/*:any*/);\n\tfor(var i = 0; i != ucnt && blob.l < end; ++i) {\n\t\tstrs.push(parse_XLUnicodeRichExtendedString(blob));\n\t}\n\tstrs.Count = cnt; strs.Unique = ucnt;\n\treturn strs;\n}\nfunction write_SST(sst, opts) {\n\tvar header = new_buf(8);\n\theader.write_shift(4, sst.Count);\n\theader.write_shift(4, sst.Unique);\n\tvar strs = [];\n\tfor(var j = 0; j < sst.length; ++j) strs[j] = write_XLUnicodeRichExtendedString(sst[j], opts);\n\tvar o = bconcat([header].concat(strs));\n\t/*::(*/o/*:: :any)*/.parts = [header.length].concat(strs.map(function(str) { return str.length; }));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.107 */\nfunction parse_ExtSST(blob, length) {\n\tvar extsst = {};\n\textsst.dsst = blob.read_shift(2);\n\tblob.l += length-2;\n\treturn extsst;\n}\n\n\n/* [MS-XLS] 2.4.221 TODO: check BIFF2-4 */\nfunction parse_Row(blob) {\n\tvar z = ({}/*:any*/);\n\tz.r = blob.read_shift(2);\n\tz.c = blob.read_shift(2);\n\tz.cnt = blob.read_shift(2) - z.c;\n\tvar miyRw = blob.read_shift(2);\n\tblob.l += 4; // reserved(2), unused(2)\n\tvar flags = blob.read_shift(1); // various flags\n\tblob.l += 3; // reserved(8), ixfe(12), flags(4)\n\tif(flags & 0x07) z.level = flags & 0x07;\n\t// collapsed: flags & 0x10\n\tif(flags & 0x20) z.hidden = true;\n\tif(flags & 0x40) z.hpt = miyRw / 20;\n\treturn z;\n}\n\n\n/* [MS-XLS] 2.4.125 */\nfunction parse_ForceFullCalculation(blob) {\n\tvar header = parse_frtHeader(blob);\n\tif(header.type != 0x08A3) throw new Error(\"Invalid Future Record \" + header.type);\n\tvar fullcalc = blob.read_shift(4);\n\treturn fullcalc !== 0x0;\n}\n\n\n\n\n\n/* [MS-XLS] 2.4.215 rt */\nfunction parse_RecalcId(blob) {\n\tblob.read_shift(2);\n\treturn blob.read_shift(4);\n}\n\n/* [MS-XLS] 2.4.87 */\nfunction parse_DefaultRowHeight(blob, length, opts) {\n\tvar f = 0;\n\tif(!(opts && opts.biff == 2)) {\n\t\tf = blob.read_shift(2);\n\t}\n\tvar miyRw = blob.read_shift(2);\n\tif((opts && opts.biff == 2)) {\n\t\tf = 1 - (miyRw >> 15); miyRw &= 0x7fff;\n\t}\n\tvar fl = {Unsynced:f&1,DyZero:(f&2)>>1,ExAsc:(f&4)>>2,ExDsc:(f&8)>>3};\n\treturn [fl, miyRw];\n}\n\n/* [MS-XLS] 2.4.345 TODO */\nfunction parse_Window1(blob) {\n\tvar xWn = blob.read_shift(2), yWn = blob.read_shift(2), dxWn = blob.read_shift(2), dyWn = blob.read_shift(2);\n\tvar flags = blob.read_shift(2), iTabCur = blob.read_shift(2), iTabFirst = blob.read_shift(2);\n\tvar ctabSel = blob.read_shift(2), wTabRatio = blob.read_shift(2);\n\treturn { Pos: [xWn, yWn], Dim: [dxWn, dyWn], Flags: flags, CurTab: iTabCur,\n\t\tFirstTab: iTabFirst, Selected: ctabSel, TabRatio: wTabRatio };\n}\nfunction write_Window1(/*::opts*/) {\n\tvar o = new_buf(18);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0x7260);\n\to.write_shift(2, 0x44c0);\n\to.write_shift(2, 0x38);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, 1);\n\to.write_shift(2, 0x01f4);\n\treturn o;\n}\n/* [MS-XLS] 2.4.346 TODO */\nfunction parse_Window2(blob, length, opts) {\n\tif(opts && opts.biff >= 2 && opts.biff < 5) return {};\n\tvar f = blob.read_shift(2);\n\treturn { RTL: f & 0x40 };\n}\nfunction write_Window2(view) {\n\tvar o = new_buf(18), f = 0x6b6;\n\tif(view && view.RTL) f |= 0x40;\n\to.write_shift(2, f);\n\to.write_shift(4, 0);\n\to.write_shift(4, 64);\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.189 TODO */\nfunction parse_Pane(/*blob, length, opts*/) {\n}\n\n/* [MS-XLS] 2.4.122 TODO */\nfunction parse_Font(blob, length, opts) {\n\tvar o/*:any*/ = {\n\t\tdyHeight: blob.read_shift(2),\n\t\tfl: blob.read_shift(2)\n\t};\n\tswitch((opts && opts.biff) || 8) {\n\t\tcase 2: break;\n\t\tcase 3: case 4: blob.l += 2; break;\n\t\tdefault: blob.l += 10; break;\n\t}\n\to.name = parse_ShortXLUnicodeString(blob, 0, opts);\n\treturn o;\n}\nfunction write_Font(data, opts) {\n\tvar name = data.name || \"Arial\";\n\tvar b5 = (opts && (opts.biff == 5)), w = (b5 ? (15 + name.length) : (16 + 2 * name.length));\n\tvar o = new_buf(w);\n\to.write_shift(2, (data.sz || 12) * 20);\n\to.write_shift(4, 0);\n\to.write_shift(2, 400);\n\to.write_shift(4, 0);\n\to.write_shift(2, 0);\n\to.write_shift(1, name.length);\n\tif(!b5) o.write_shift(1, 1);\n\to.write_shift((b5 ? 1 : 2) * name.length, name, (b5 ? \"sbcs\" : \"utf16le\"));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.149 */\nfunction parse_LabelSst(blob) {\n\tvar cell = parse_XLSCell(blob);\n\tcell.isst = blob.read_shift(4);\n\treturn cell;\n}\nfunction write_LabelSst(R/*:number*/, C/*:number*/, v/*:number*/, os/*:number*/ /*::, opts*/) {\n\tvar o = new_buf(10);\n\twrite_XLSCell(R, C, os, o);\n\to.write_shift(4, v);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.148 */\nfunction parse_Label(blob, length, opts) {\n\tif(opts.biffguess && opts.biff == 2) opts.biff = 5;\n\tvar target = blob.l + length;\n\tvar cell = parse_XLSCell(blob, 6);\n\tif(opts.biff == 2) blob.l++;\n\tvar str = parse_XLUnicodeString(blob, target - blob.l, opts);\n\tcell.val = str;\n\treturn cell;\n}\nfunction write_Label(R/*:number*/, C/*:number*/, v/*:string*/, os/*:number*/, opts) {\n\tvar b8 = !opts || opts.biff == 8;\n\tvar o = new_buf(6 + 2 + (+b8) + (1 + b8) * v.length);\n\twrite_XLSCell(R, C, os, o);\n\to.write_shift(2, v.length);\n\tif(b8) o.write_shift(1, 1);\n\to.write_shift((1 + b8) * v.length, v, b8 ? 'utf16le' : 'sbcs');\n\treturn o;\n}\n\n\n/* [MS-XLS] 2.4.126 Number Formats */\nfunction parse_Format(blob, length, opts) {\n\tvar numFmtId = blob.read_shift(2);\n\tvar fmtstr = parse_XLUnicodeString2(blob, 0, opts);\n\treturn [numFmtId, fmtstr];\n}\nfunction write_Format(i/*:number*/, f/*:string*/, opts, o) {\n\tvar b5 = (opts && (opts.biff == 5));\n\tif(!o) o = new_buf(b5 ? (3 + f.length) : (5 + 2 * f.length));\n\to.write_shift(2, i);\n\to.write_shift((b5 ? 1 : 2), f.length);\n\tif(!b5) o.write_shift(1, 1);\n\to.write_shift((b5 ? 1 : 2) * f.length, f, (b5 ? 'sbcs' : 'utf16le'));\n\tvar out = (o.length > o.l) ? o.slice(0, o.l) : o;\n\tif(out.l == null) out.l = out.length;\n\treturn out;\n}\nvar parse_BIFF2Format = parse_XLUnicodeString2;\n\n/* [MS-XLS] 2.4.90 */\nfunction parse_Dimensions(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar w = opts.biff == 8 || !opts.biff ? 4 : 2;\n\tvar r = blob.read_shift(w), R = blob.read_shift(w);\n\tvar c = blob.read_shift(2), C = blob.read_shift(2);\n\tblob.l = end;\n\treturn {s: {r:r, c:c}, e: {r:R, c:C}};\n}\nfunction write_Dimensions(range, opts) {\n\tvar w = opts.biff == 8 || !opts.biff ? 4 : 2;\n\tvar o = new_buf(2*w + 6);\n\to.write_shift(w, range.s.r);\n\to.write_shift(w, range.e.r + 1);\n\to.write_shift(2, range.s.c);\n\to.write_shift(2, range.e.c + 1);\n\to.write_shift(2, 0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.220 */\nfunction parse_RK(blob) {\n\tvar rw = blob.read_shift(2), col = blob.read_shift(2);\n\tvar rkrec = parse_RkRec(blob);\n\treturn {r:rw, c:col, ixfe:rkrec[0], rknum:rkrec[1]};\n}\n\n/* [MS-XLS] 2.4.175 */\nfunction parse_MulRk(blob, length) {\n\tvar target = blob.l + length - 2;\n\tvar rw = blob.read_shift(2), col = blob.read_shift(2);\n\tvar rkrecs = [];\n\twhile(blob.l < target) rkrecs.push(parse_RkRec(blob));\n\tif(blob.l !== target) throw new Error(\"MulRK read error\");\n\tvar lastcol = blob.read_shift(2);\n\tif(rkrecs.length != lastcol - col + 1) throw new Error(\"MulRK length mismatch\");\n\treturn {r:rw, c:col, C:lastcol, rkrec:rkrecs};\n}\n/* [MS-XLS] 2.4.174 */\nfunction parse_MulBlank(blob, length) {\n\tvar target = blob.l + length - 2;\n\tvar rw = blob.read_shift(2), col = blob.read_shift(2);\n\tvar ixfes = [];\n\twhile(blob.l < target) ixfes.push(blob.read_shift(2));\n\tif(blob.l !== target) throw new Error(\"MulBlank read error\");\n\tvar lastcol = blob.read_shift(2);\n\tif(ixfes.length != lastcol - col + 1) throw new Error(\"MulBlank length mismatch\");\n\treturn {r:rw, c:col, C:lastcol, ixfe:ixfes};\n}\n\n/* [MS-XLS] 2.5.20 2.5.249 TODO: interpret values here */\nfunction parse_CellStyleXF(blob, length, style, opts) {\n\tvar o = {};\n\tvar a = blob.read_shift(4), b = blob.read_shift(4);\n\tvar c = blob.read_shift(4), d = blob.read_shift(2);\n\to.patternType = XLSFillPattern[c >> 26];\n\n\tif(!opts.cellStyles) return o;\n\to.alc = a & 0x07;\n\to.fWrap = (a >> 3) & 0x01;\n\to.alcV = (a >> 4) & 0x07;\n\to.fJustLast = (a >> 7) & 0x01;\n\to.trot = (a >> 8) & 0xFF;\n\to.cIndent = (a >> 16) & 0x0F;\n\to.fShrinkToFit = (a >> 20) & 0x01;\n\to.iReadOrder = (a >> 22) & 0x02;\n\to.fAtrNum = (a >> 26) & 0x01;\n\to.fAtrFnt = (a >> 27) & 0x01;\n\to.fAtrAlc = (a >> 28) & 0x01;\n\to.fAtrBdr = (a >> 29) & 0x01;\n\to.fAtrPat = (a >> 30) & 0x01;\n\to.fAtrProt = (a >> 31) & 0x01;\n\n\to.dgLeft = b & 0x0F;\n\to.dgRight = (b >> 4) & 0x0F;\n\to.dgTop = (b >> 8) & 0x0F;\n\to.dgBottom = (b >> 12) & 0x0F;\n\to.icvLeft = (b >> 16) & 0x7F;\n\to.icvRight = (b >> 23) & 0x7F;\n\to.grbitDiag = (b >> 30) & 0x03;\n\n\to.icvTop = c & 0x7F;\n\to.icvBottom = (c >> 7) & 0x7F;\n\to.icvDiag = (c >> 14) & 0x7F;\n\to.dgDiag = (c >> 21) & 0x0F;\n\n\to.icvFore = d & 0x7F;\n\to.icvBack = (d >> 7) & 0x7F;\n\to.fsxButton = (d >> 14) & 0x01;\n\treturn o;\n}\n//function parse_CellXF(blob, length, opts) {return parse_CellStyleXF(blob,length,0, opts);}\n//function parse_StyleXF(blob, length, opts) {return parse_CellStyleXF(blob,length,1, opts);}\n\n/* [MS-XLS] 2.4.353 TODO: actually do this right */\nfunction parse_XF(blob, length, opts) {\n\tvar o = {};\n\to.ifnt = blob.read_shift(2); o.numFmtId = blob.read_shift(2); o.flags = blob.read_shift(2);\n\to.fStyle = (o.flags >> 2) & 0x01;\n\tlength -= 6;\n\to.data = parse_CellStyleXF(blob, length, o.fStyle, opts);\n\treturn o;\n}\nfunction write_XF(data, ixfeP, opts, o) {\n\tvar b5 = (opts && (opts.biff == 5));\n\tif(!o) o = new_buf(b5 ? 16 : 20);\n\to.write_shift(2, 0);\n\tif(data.style) {\n\t\to.write_shift(2, (data.numFmtId||0));\n\t\to.write_shift(2, 0xFFF4);\n\t} else {\n\t\to.write_shift(2, (data.numFmtId||0));\n\t\to.write_shift(2, (ixfeP<<4));\n\t}\n\tvar f = 0;\n\tif(data.numFmtId > 0 && b5) f |= 0x0400;\n\to.write_shift(4, f);\n\to.write_shift(4, 0);\n\tif(!b5) o.write_shift(4, 0);\n\to.write_shift(2, 0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.134 */\nfunction parse_Guts(blob) {\n\tblob.l += 4;\n\tvar out = [blob.read_shift(2), blob.read_shift(2)];\n\tif(out[0] !== 0) out[0]--;\n\tif(out[1] !== 0) out[1]--;\n\tif(out[0] > 7 || out[1] > 7) throw new Error(\"Bad Gutters: \" + out.join(\"|\"));\n\treturn out;\n}\nfunction write_Guts(guts/*:Array<number>*/) {\n\tvar o = new_buf(8);\n\to.write_shift(4, 0);\n\to.write_shift(2, guts[0] ? guts[0] + 1 : 0);\n\to.write_shift(2, guts[1] ? guts[1] + 1 : 0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.24 */\nfunction parse_BoolErr(blob, length, opts) {\n\tvar cell = parse_XLSCell(blob, 6);\n\tif(opts.biff == 2 || length == 9) ++blob.l;\n\tvar val = parse_Bes(blob, 2);\n\tcell.val = val;\n\tcell.t = (val === true || val === false) ? 'b' : 'e';\n\treturn cell;\n}\nfunction write_BoolErr(R/*:number*/, C/*:number*/, v, os/*:number*/, opts, t/*:string*/) {\n\tvar o = new_buf(8);\n\twrite_XLSCell(R, C, os, o);\n\twrite_Bes(v, t, o);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.180 Number */\nfunction parse_Number(blob, length, opts) {\n\tif(opts.biffguess && opts.biff == 2) opts.biff = 5;\n\tvar cell = parse_XLSCell(blob, 6);\n\tvar xnum = parse_Xnum(blob, 8);\n\tcell.val = xnum;\n\treturn cell;\n}\nfunction write_Number(R/*:number*/, C/*:number*/, v, os/*:: :number, opts*/) {\n\tvar o = new_buf(14);\n\twrite_XLSCell(R, C, os, o);\n\twrite_Xnum(v, o);\n\treturn o;\n}\n\nvar parse_XLHeaderFooter = parse_OptXLUnicodeString; // TODO: parse 2.4.136\n\n/* [MS-XLS] 2.4.271 */\nfunction parse_SupBook(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar ctab = blob.read_shift(2);\n\tvar cch = blob.read_shift(2);\n\topts.sbcch = cch;\n\tif(cch == 0x0401 || cch == 0x3A01) return [cch, ctab];\n\tif(cch < 0x01 || cch >0xff) throw new Error(\"Unexpected SupBook type: \"+cch);\n\tvar virtPath = parse_XLUnicodeStringNoCch(blob, cch);\n\t/* TODO: 2.5.277 Virtual Path */\n\tvar rgst = [];\n\twhile(end > blob.l) rgst.push(parse_XLUnicodeString(blob));\n\treturn [cch, ctab, virtPath, rgst];\n}\n\n/* [MS-XLS] 2.4.105 TODO */\nfunction parse_ExternName(blob, length, opts) {\n\tvar flags = blob.read_shift(2);\n\tvar body;\n\tvar o = ({\n\t\tfBuiltIn: flags & 0x01,\n\t\tfWantAdvise: (flags >>> 1) & 0x01,\n\t\tfWantPict: (flags >>> 2) & 0x01,\n\t\tfOle: (flags >>> 3) & 0x01,\n\t\tfOleLink: (flags >>> 4) & 0x01,\n\t\tcf: (flags >>> 5) & 0x3FF,\n\t\tfIcon: flags >>> 15 & 0x01\n\t}/*:any*/);\n\tif(opts.sbcch === 0x3A01) body = parse_AddinUdf(blob, length-2, opts);\n\t//else throw new Error(\"unsupported SupBook cch: \" + opts.sbcch);\n\to.body = body || blob.read_shift(length-2);\n\tif(typeof body === \"string\") o.Name = body;\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.150 TODO */\nfunction parse_Lbl(blob, length, opts) {\n\tvar target = blob.l + length;\n\tvar flags = blob.read_shift(2);\n\tvar chKey = blob.read_shift(1);\n\tvar cch = blob.read_shift(1);\n\tvar cce = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\tvar itab = 0;\n\tif(!opts || opts.biff >= 5) {\n\t\tif(opts.biff != 5) blob.l += 2;\n\t\titab = blob.read_shift(2);\n\t\tif(opts.biff == 5) blob.l += 2;\n\t\tblob.l += 4;\n\t}\n\tvar name = parse_XLUnicodeStringNoCch(blob, cch, opts);\n\tif(flags & 0x20) name = XLSLblBuiltIn[name.charCodeAt(0)];\n\tvar npflen = target - blob.l; if(opts && opts.biff == 2) --npflen;\n\t/*jshint -W018 */\n\tvar rgce = (target == blob.l || cce === 0 || !(npflen > 0)) ? [] : parse_NameParsedFormula(blob, npflen, opts, cce);\n\t/*jshint +W018 */\n\treturn {\n\t\tchKey: chKey,\n\t\tName: name,\n\t\titab: itab,\n\t\trgce: rgce\n\t};\n}\n\n/* [MS-XLS] 2.4.106 TODO: legacy record filename encoding */\nfunction parse_ExternSheet(blob, length, opts) {\n\tif(opts.biff < 8) return parse_BIFF5ExternSheet(blob, length, opts);\n\t/* see issue 2907 */\n\tif(!(opts.biff > 8) && (length == blob[blob.l] + (blob[blob.l+1] == 0x03 ? 1 : 0) + 1)) return parse_BIFF5ExternSheet(blob, length, opts);\n\tvar o = [], target = blob.l + length, len = blob.read_shift(opts.biff > 8 ? 4 : 2);\n\twhile(len-- !== 0) o.push(parse_XTI(blob, opts.biff > 8 ? 12 : 6, opts));\n\t\t// [iSupBook, itabFirst, itabLast];\n\tif(blob.l != target) throw new Error(\"Bad ExternSheet: \" + blob.l + \" != \" + target);\n\treturn o;\n}\nfunction parse_BIFF5ExternSheet(blob, length, opts) {\n\tif(blob[blob.l + 1] == 0x03) blob[blob.l]++;\n\tvar o = parse_ShortXLUnicodeString(blob, length, opts);\n\treturn o.charCodeAt(0) == 0x03 ? o.slice(1) : o;\n}\n\n/* [MS-XLS] 2.4.176 TODO: check older biff */\nfunction parse_NameCmt(blob, length, opts) {\n\tif(opts.biff < 8) { blob.l += length; return; }\n\tvar cchName = blob.read_shift(2);\n\tvar cchComment = blob.read_shift(2);\n\tvar name = parse_XLUnicodeStringNoCch(blob, cchName, opts);\n\tvar comment = parse_XLUnicodeStringNoCch(blob, cchComment, opts);\n\treturn [name, comment];\n}\n\n/* [MS-XLS] 2.4.260 */\nfunction parse_ShrFmla(blob, length, opts) {\n\tvar ref = parse_RefU(blob, 6);\n\tblob.l++;\n\tvar cUse = blob.read_shift(1);\n\tlength -= 8;\n\treturn [parse_SharedParsedFormula(blob, length, opts), cUse, ref];\n}\n\n/* [MS-XLS] 2.4.4 TODO */\nfunction parse_Array(blob, length, opts) {\n\tvar ref = parse_Ref(blob, 6);\n\t/* TODO: fAlwaysCalc */\n\tswitch(opts.biff) {\n\t\tcase 2: blob.l ++; length -= 7; break;\n\t\tcase 3: case 4: blob.l += 2; length -= 8; break;\n\t\tdefault: blob.l += 6; length -= 12;\n\t}\n\treturn [ref, parse_ArrayParsedFormula(blob, length, opts, ref)];\n}\n\n/* [MS-XLS] 2.4.173 */\nfunction parse_MTRSettings(blob) {\n\tvar fMTREnabled = blob.read_shift(4) !== 0x00;\n\tvar fUserSetThreadCount = blob.read_shift(4) !== 0x00;\n\tvar cUserThreadCount = blob.read_shift(4);\n\treturn [fMTREnabled, fUserSetThreadCount, cUserThreadCount];\n}\n\n/* [MS-XLS] 2.5.186 TODO: BIFF5 */\nfunction parse_NoteSh(blob, length, opts) {\n\tif(opts.biff < 8) return;\n\tvar row = blob.read_shift(2), col = blob.read_shift(2);\n\tvar flags = blob.read_shift(2), idObj = blob.read_shift(2);\n\tvar stAuthor = parse_XLUnicodeString2(blob, 0, opts);\n\tif(opts.biff < 8) blob.read_shift(1);\n\treturn [{r:row,c:col}, stAuthor, idObj, flags];\n}\n\n/* [MS-XLS] 2.4.179 */\nfunction parse_Note(blob, length, opts) {\n\t/* TODO: Support revisions */\n\treturn parse_NoteSh(blob, length, opts);\n}\n\n/* [MS-XLS] 2.4.168 */\nfunction parse_MergeCells(blob, length)/*:Array<Range>*/ {\n\tvar merges/*:Array<Range>*/ = [];\n\tvar cmcs = blob.read_shift(2);\n\twhile (cmcs--) merges.push(parse_Ref8U(blob,length));\n\treturn merges;\n}\nfunction write_MergeCells(merges/*:Array<Range>*/) {\n\tvar o = new_buf(2 + merges.length * 8);\n\to.write_shift(2, merges.length);\n\tfor(var i = 0; i < merges.length; ++i) write_Ref8U(merges[i], o);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.181 TODO: parse all the things! */\nfunction parse_Obj(blob, length, opts) {\n\tif(opts && opts.biff < 8) return parse_BIFF5Obj(blob, length, opts);\n\tvar cmo = parse_FtCmo(blob, 22); // id, ot, flags\n\tvar fts = parse_FtArray(blob, length-22, cmo[1]);\n\treturn { cmo: cmo, ft:fts };\n}\n/* from older spec */\nvar parse_BIFF5OT = {\n0x08: function(blob, length) {\n\tvar tgt = blob.l + length;\n\tblob.l += 10; // todo\n\tvar cf = blob.read_shift(2);\n\tblob.l += 4;\n\tblob.l += 2; //var cbPictFmla = blob.read_shift(2);\n\tblob.l += 2;\n\tblob.l += 2; //var grbit = blob.read_shift(2);\n\tblob.l += 4;\n\tvar cchName = blob.read_shift(1);\n\tblob.l += cchName; // TODO: stName\n\tblob.l = tgt; // TODO: fmla\n\treturn { fmt:cf };\n}\n};\n\nfunction parse_BIFF5Obj(blob, length, opts) {\n\tblob.l += 4; //var cnt = blob.read_shift(4);\n\tvar ot = blob.read_shift(2);\n\tvar id = blob.read_shift(2);\n\tvar grbit = blob.read_shift(2);\n\tblob.l += 2; //var colL = blob.read_shift(2);\n\tblob.l += 2; //var dxL = blob.read_shift(2);\n\tblob.l += 2; //var rwT = blob.read_shift(2);\n\tblob.l += 2; //var dyT = blob.read_shift(2);\n\tblob.l += 2; //var colR = blob.read_shift(2);\n\tblob.l += 2; //var dxR = blob.read_shift(2);\n\tblob.l += 2; //var rwB = blob.read_shift(2);\n\tblob.l += 2; //var dyB = blob.read_shift(2);\n\tblob.l += 2; //var cbMacro = blob.read_shift(2);\n\tblob.l += 6;\n\tlength -= 36;\n\tvar fts = [];\n\tfts.push((parse_BIFF5OT[ot]||parsenoop)(blob, length, opts));\n\treturn { cmo: [id, ot, grbit], ft:fts };\n}\n\n/* [MS-XLS] 2.4.329 TODO: parse properly */\nfunction parse_TxO(blob, length, opts) {\n\tvar s = blob.l;\n\tvar texts = \"\";\ntry {\n\tblob.l += 4;\n\tvar ot = (opts.lastobj||{cmo:[0,0]}).cmo[1];\n\tvar controlInfo; // eslint-disable-line no-unused-vars\n\tif([0,5,7,11,12,14].indexOf(ot) == -1) blob.l += 6;\n\telse controlInfo = parse_ControlInfo(blob, 6, opts); // eslint-disable-line no-unused-vars\n\tvar cchText = blob.read_shift(2);\n\t/*var cbRuns = */blob.read_shift(2);\n\t/*var ifntEmpty = */parseuint16(blob, 2);\n\tvar len = blob.read_shift(2);\n\tblob.l += len;\n\t//var fmla = parse_ObjFmla(blob, s + length - blob.l);\n\n\tfor(var i = 1; i < blob.lens.length-1; ++i) {\n\t\tif(blob.l-s != blob.lens[i]) throw new Error(\"TxO: bad continue record\");\n\t\tvar hdr = blob[blob.l];\n\t\tvar t = parse_XLUnicodeStringNoCch(blob, blob.lens[i+1]-blob.lens[i]-1);\n\t\ttexts += t;\n\t\tif(texts.length >= (hdr ? cchText : 2*cchText)) break;\n\t}\n\tif(texts.length !== cchText && texts.length !== cchText*2) {\n\t\tthrow new Error(\"cchText: \" + cchText + \" != \" + texts.length);\n\t}\n\n\tblob.l = s + length;\n\t/* [MS-XLS] 2.5.272 TxORuns */\n//\tvar rgTxoRuns = [];\n//\tfor(var j = 0; j != cbRuns/8-1; ++j) blob.l += 8;\n//\tvar cchText2 = blob.read_shift(2);\n//\tif(cchText2 !== cchText) throw new Error(\"TxOLastRun mismatch: \" + cchText2 + \" \" + cchText);\n//\tblob.l += 6;\n//\tif(s + length != blob.l) throw new Error(\"TxO \" + (s + length) + \", at \" + blob.l);\n\treturn { t: texts };\n} catch(e) { blob.l = s + length; return { t: texts }; }\n}\n\n/* [MS-XLS] 2.4.140 */\nfunction parse_HLink(blob, length) {\n\tvar ref = parse_Ref8U(blob, 8);\n\tblob.l += 16; /* CLSID */\n\tvar hlink = parse_Hyperlink(blob, length-24);\n\treturn [ref, hlink];\n}\nfunction write_HLink(hl) {\n\tvar O = new_buf(24);\n\tvar ref = decode_cell(hl[0]);\n\tO.write_shift(2, ref.r); O.write_shift(2, ref.r);\n\tO.write_shift(2, ref.c); O.write_shift(2, ref.c);\n\tvar clsid = \"d0 c9 ea 79 f9 ba ce 11 8c 82 00 aa 00 4b a9 0b\".split(\" \");\n\tfor(var i = 0; i < 16; ++i) O.write_shift(1, parseInt(clsid[i], 16));\n\treturn bconcat([O, write_Hyperlink(hl[1])]);\n}\n\n\n/* [MS-XLS] 2.4.141 */\nfunction parse_HLinkTooltip(blob, length) {\n\tblob.read_shift(2);\n\tvar ref = parse_Ref8U(blob, 8);\n\tvar wzTooltip = blob.read_shift((length-10)/2, 'dbcs-cont');\n\twzTooltip = wzTooltip.replace(chr0,\"\");\n\treturn [ref, wzTooltip];\n}\nfunction write_HLinkTooltip(hl) {\n\tvar TT = hl[1].Tooltip;\n\tvar O = new_buf(10 + 2 * (TT.length + 1));\n\tO.write_shift(2, 0x0800);\n\tvar ref = decode_cell(hl[0]);\n\tO.write_shift(2, ref.r); O.write_shift(2, ref.r);\n\tO.write_shift(2, ref.c); O.write_shift(2, ref.c);\n\tfor(var i = 0; i < TT.length; ++i) O.write_shift(2, TT.charCodeAt(i));\n\tO.write_shift(2, 0);\n\treturn O;\n}\n\n/* [MS-XLS] 2.4.63 */\nfunction parse_Country(blob)/*:[string|number, string|number]*/ {\n\tvar o = [0,0], d;\n\td = blob.read_shift(2); o[0] = CountryEnum[d] || d;\n\td = blob.read_shift(2); o[1] = CountryEnum[d] || d;\n\treturn o;\n}\nfunction write_Country(o) {\n\tif(!o) o = new_buf(4);\n\to.write_shift(2, 0x01);\n\to.write_shift(2, 0x01);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.50 ClrtClient */\nfunction parse_ClrtClient(blob) {\n\tvar ccv = blob.read_shift(2);\n\tvar o = [];\n\twhile(ccv-->0) o.push(parse_LongRGB(blob, 8));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.188 */\nfunction parse_Palette(blob) {\n\tvar ccv = blob.read_shift(2);\n\tvar o = [];\n\twhile(ccv-->0) o.push(parse_LongRGB(blob, 8));\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.354 */\nfunction parse_XFCRC(blob) {\n\tblob.l += 2;\n\tvar o = {cxfs:0, crc:0};\n\to.cxfs = blob.read_shift(2);\n\to.crc = blob.read_shift(4);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.53 TODO: parse flags */\n/* [MS-XLSB] 2.4.323 TODO: parse flags */\nfunction parse_ColInfo(blob, length, opts) {\n\tif(!opts.cellStyles) return parsenoop(blob, length);\n\tvar w = opts && opts.biff >= 12 ? 4 : 2;\n\tvar colFirst = blob.read_shift(w);\n\tvar colLast = blob.read_shift(w);\n\tvar coldx = blob.read_shift(w);\n\tvar ixfe = blob.read_shift(w);\n\tvar flags = blob.read_shift(2);\n\tif(w == 2) blob.l += 2;\n\tvar o = ({s:colFirst, e:colLast, w:coldx, ixfe:ixfe, flags:flags}/*:any*/);\n\tif(opts.biff >= 5 || !opts.biff) o.level = (flags >> 8) & 0x7;\n\treturn o;\n}\nfunction write_ColInfo(col, idx) {\n\tvar o = new_buf(12);\n\to.write_shift(2, idx);\n\to.write_shift(2, idx);\n\to.write_shift(2, col.width * 256);\n\to.write_shift(2, 0);\n\tvar f = 0;\n\tif(col.hidden) f |= 1;\n\to.write_shift(1, f);\n\tf = col.level || 0;\n\to.write_shift(1, f);\n\to.write_shift(2, 0);\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.257 */\nfunction parse_Setup(blob, length) {\n\tvar o = {};\n\tif(length < 32) return o;\n\tblob.l += 16;\n\to.header = parse_Xnum(blob, 8);\n\to.footer = parse_Xnum(blob, 8);\n\tblob.l += 2;\n\treturn o;\n}\n\n/* [MS-XLS] 2.4.261 */\nfunction parse_ShtProps(blob, length, opts) {\n\tvar def = {area:false};\n\tif(opts.biff != 5) { blob.l += length; return def; }\n\tvar d = blob.read_shift(1); blob.l += 3;\n\tif((d & 0x10)) def.area = true;\n\treturn def;\n}\n\n/* [MS-XLS] 2.4.241 */\nfunction write_RRTabId(n/*:number*/) {\n\tvar out = new_buf(2 * n);\n\tfor(var i = 0; i < n; ++i) out.write_shift(2, i+1);\n\treturn out;\n}\n\nvar parse_Blank = parse_XLSCell; /* [MS-XLS] 2.4.20 Just the cell */\nvar parse_Scl = parseuint16a; /* [MS-XLS] 2.4.247 num, den */\nvar parse_String = parse_XLUnicodeString; /* [MS-XLS] 2.4.268 */\n\n/* --- Specific to versions before BIFF8 --- */\nfunction parse_ImData(blob) {\n\tvar cf = blob.read_shift(2);\n\tvar env = blob.read_shift(2);\n\tvar lcb = blob.read_shift(4);\n\tvar o = {fmt:cf, env:env, len:lcb, data:blob.slice(blob.l,blob.l+lcb)};\n\tblob.l += lcb;\n\treturn o;\n}\n\n/* BIFF2_??? where ??? is the name from [XLS] */\nfunction parse_BIFF2STR(blob, length, opts) {\n\tif(opts.biffguess && opts.biff == 5) opts.biff = 2;\n\tvar cell = parse_XLSCell(blob, 6);\n\t++blob.l;\n\tvar str = parse_XLUnicodeString2(blob, length-7, opts);\n\tcell.t = 'str';\n\tcell.val = str;\n\treturn cell;\n}\n\nfunction parse_BIFF2NUM(blob/*::, length*/) {\n\tvar cell = parse_XLSCell(blob, 6);\n\t++blob.l;\n\tvar num = parse_Xnum(blob, 8);\n\tcell.t = 'n';\n\tcell.val = num;\n\treturn cell;\n}\nfunction write_BIFF2NUM(r/*:number*/, c/*:number*/, val/*:number*/) {\n\tvar out = new_buf(15);\n\twrite_BIFF2Cell(out, r, c);\n\tout.write_shift(8, val, 'f');\n\treturn out;\n}\n\nfunction parse_BIFF2INT(blob) {\n\tvar cell = parse_XLSCell(blob, 6);\n\t++blob.l;\n\tvar num = blob.read_shift(2);\n\tcell.t = 'n';\n\tcell.val = num;\n\treturn cell;\n}\nfunction write_BIFF2INT(r/*:number*/, c/*:number*/, val/*:number*/) {\n\tvar out = new_buf(9);\n\twrite_BIFF2Cell(out, r, c);\n\tout.write_shift(2, val);\n\treturn out;\n}\n\nfunction parse_BIFF2STRING(blob) {\n\tvar cch = blob.read_shift(1);\n\tif(cch === 0) { blob.l++; return \"\"; }\n\treturn blob.read_shift(cch, 'sbcs-cont');\n}\n\n/* TODO: convert to BIFF8 font struct */\nfunction parse_BIFF2FONTXTRA(blob, length) {\n\tblob.l += 6; // unknown\n\tblob.l += 2; // font weight \"bls\"\n\tblob.l += 1; // charset\n\tblob.l += 3; // unknown\n\tblob.l += 1; // font family\n\tblob.l += length - 13;\n}\n\n/* TODO: parse rich text runs */\nfunction parse_RString(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar cell = parse_XLSCell(blob, 6);\n\tvar cch = blob.read_shift(2);\n\tvar str = parse_XLUnicodeStringNoCch(blob, cch, opts);\n\tblob.l = end;\n\tcell.t = 'str';\n\tcell.val = str;\n\treturn cell;\n}\nvar DBF_SUPPORTED_VERSIONS = [0x02, 0x03, 0x30, 0x31, 0x83, 0x8B, 0x8C, 0xF5];\nvar DBF = /*#__PURE__*/(function() {\nvar dbf_codepage_map = {\n\t/* Code Pages Supported by Visual FoxPro */\n\t/*::[*/0x01/*::]*/: 437, /*::[*/0x02/*::]*/: 850,\n\t/*::[*/0x03/*::]*/: 1252, /*::[*/0x04/*::]*/: 10000,\n\t/*::[*/0x64/*::]*/: 852, /*::[*/0x65/*::]*/: 866,\n\t/*::[*/0x66/*::]*/: 865, /*::[*/0x67/*::]*/: 861,\n\t/*::[*/0x68/*::]*/: 895, /*::[*/0x69/*::]*/: 620,\n\t/*::[*/0x6A/*::]*/: 737, /*::[*/0x6B/*::]*/: 857,\n\t/*::[*/0x78/*::]*/: 950, /*::[*/0x79/*::]*/: 949,\n\t/*::[*/0x7A/*::]*/: 936, /*::[*/0x7B/*::]*/: 932,\n\t/*::[*/0x7C/*::]*/: 874, /*::[*/0x7D/*::]*/: 1255,\n\t/*::[*/0x7E/*::]*/: 1256, /*::[*/0x96/*::]*/: 10007,\n\t/*::[*/0x97/*::]*/: 10029, /*::[*/0x98/*::]*/: 10006,\n\t/*::[*/0xC8/*::]*/: 1250, /*::[*/0xC9/*::]*/: 1251,\n\t/*::[*/0xCA/*::]*/: 1254, /*::[*/0xCB/*::]*/: 1253,\n\n\t/* shapefile DBF extension */\n\t/*::[*/0x00/*::]*/: 20127, /*::[*/0x08/*::]*/: 865,\n\t/*::[*/0x09/*::]*/: 437, /*::[*/0x0A/*::]*/: 850,\n\t/*::[*/0x0B/*::]*/: 437, /*::[*/0x0D/*::]*/: 437,\n\t/*::[*/0x0E/*::]*/: 850, /*::[*/0x0F/*::]*/: 437,\n\t/*::[*/0x10/*::]*/: 850, /*::[*/0x11/*::]*/: 437,\n\t/*::[*/0x12/*::]*/: 850, /*::[*/0x13/*::]*/: 932,\n\t/*::[*/0x14/*::]*/: 850, /*::[*/0x15/*::]*/: 437,\n\t/*::[*/0x16/*::]*/: 850, /*::[*/0x17/*::]*/: 865,\n\t/*::[*/0x18/*::]*/: 437, /*::[*/0x19/*::]*/: 437,\n\t/*::[*/0x1A/*::]*/: 850, /*::[*/0x1B/*::]*/: 437,\n\t/*::[*/0x1C/*::]*/: 863, /*::[*/0x1D/*::]*/: 850,\n\t/*::[*/0x1F/*::]*/: 852, /*::[*/0x22/*::]*/: 852,\n\t/*::[*/0x23/*::]*/: 852, /*::[*/0x24/*::]*/: 860,\n\t/*::[*/0x25/*::]*/: 850, /*::[*/0x26/*::]*/: 866,\n\t/*::[*/0x37/*::]*/: 850, /*::[*/0x40/*::]*/: 852,\n\t/*::[*/0x4D/*::]*/: 936, /*::[*/0x4E/*::]*/: 949,\n\t/*::[*/0x4F/*::]*/: 950, /*::[*/0x50/*::]*/: 874,\n\t/*::[*/0x57/*::]*/: 1252, /*::[*/0x58/*::]*/: 1252,\n\t/*::[*/0x59/*::]*/: 1252, /*::[*/0x6C/*::]*/: 863,\n\t/*::[*/0x86/*::]*/: 737, /*::[*/0x87/*::]*/: 852,\n\t/*::[*/0x88/*::]*/: 857, /*::[*/0xCC/*::]*/: 1257,\n\n\t/*::[*/0xFF/*::]*/: 16969\n};\nvar dbf_reverse_map = evert({\n\t/*::[*/0x01/*::]*/: 437, /*::[*/0x02/*::]*/: 850,\n\t/*::[*/0x03/*::]*/: 1252, /*::[*/0x04/*::]*/: 10000,\n\t/*::[*/0x64/*::]*/: 852, /*::[*/0x65/*::]*/: 866,\n\t/*::[*/0x66/*::]*/: 865, /*::[*/0x67/*::]*/: 861,\n\t/*::[*/0x68/*::]*/: 895, /*::[*/0x69/*::]*/: 620,\n\t/*::[*/0x6A/*::]*/: 737, /*::[*/0x6B/*::]*/: 857,\n\t/*::[*/0x78/*::]*/: 950, /*::[*/0x79/*::]*/: 949,\n\t/*::[*/0x7A/*::]*/: 936, /*::[*/0x7B/*::]*/: 932,\n\t/*::[*/0x7C/*::]*/: 874, /*::[*/0x7D/*::]*/: 1255,\n\t/*::[*/0x7E/*::]*/: 1256, /*::[*/0x96/*::]*/: 10007,\n\t/*::[*/0x97/*::]*/: 10029, /*::[*/0x98/*::]*/: 10006,\n\t/*::[*/0xC8/*::]*/: 1250, /*::[*/0xC9/*::]*/: 1251,\n\t/*::[*/0xCA/*::]*/: 1254, /*::[*/0xCB/*::]*/: 1253,\n\t/*::[*/0x00/*::]*/: 20127\n});\n/* TODO: find an actual specification */\nfunction dbf_to_aoa(buf, opts)/*:AOA*/ {\n\tvar out/*:AOA*/ = [];\n\tvar d/*:Block*/ = (new_raw_buf(1)/*:any*/);\n\tswitch(opts.type) {\n\t\tcase 'base64': d = s2a(Base64_decode(buf)); break;\n\t\tcase 'binary': d = s2a(buf); break;\n\t\tcase 'buffer':\n\t\tcase 'array': d = buf; break;\n\t}\n\tprep_blob(d, 0);\n\n\t/* header */\n\tvar ft = d.read_shift(1);\n\tvar memo = !!(ft & 0x88);\n\tvar vfp = false, l7 = false;\n\tswitch(ft) {\n\t\tcase 0x02: break; // dBASE II\n\t\tcase 0x03: break; // dBASE III\n\t\tcase 0x30: vfp = true; memo = true; break; // VFP\n\t\tcase 0x31: vfp = true; memo = true; break; // VFP with autoincrement\n\t\t// 0x43 dBASE IV SQL table files\n\t\t// 0x63 dBASE IV SQL system files\n\t\tcase 0x83: break; // dBASE III with memo\n\t\tcase 0x8B: break; // dBASE IV with memo\n\t\tcase 0x8C: l7 = true; break; // dBASE Level 7 with memo\n\t\t// case 0xCB dBASE IV SQL table files with memo\n\t\tcase 0xF5: break; // FoxPro 2.x with memo\n\t\t// case 0xFB FoxBASE\n\t\tdefault: throw new Error(\"DBF Unsupported Version: \" + ft.toString(16));\n\t}\n\n\tvar nrow = 0, fpos = 0x0209;\n\tif(ft == 0x02) nrow = d.read_shift(2);\n\td.l += 3; // dBASE II stores DDMMYY date, others use YYMMDD\n\tif(ft != 0x02) nrow = d.read_shift(4);\n\tif(nrow > 1048576) nrow = 1e6;\n\n\tif(ft != 0x02) fpos = d.read_shift(2); // header length\n\tvar rlen = d.read_shift(2); // record length\n\n\tvar /*flags = 0,*/ current_cp = opts.codepage || 1252;\n\tif(ft != 0x02) { // 20 reserved bytes\n\t\td.l+=16;\n\t\t/*flags = */d.read_shift(1);\n\t\t//if(memo && ((flags & 0x02) === 0)) throw new Error(\"DBF Flags \" + flags.toString(16) + \" ft \" + ft.toString(16));\n\n\t\t/* codepage present in FoxPro and dBASE Level 7 */\n\t\tif(d[d.l] !== 0) current_cp = dbf_codepage_map[d[d.l]];\n\t\td.l+=1;\n\n\t\td.l+=2;\n\t}\n\tif(l7) d.l += 36; // Level 7: 32 byte \"Language driver name\", 4 byte reserved\n\n/*:: type DBFField = { name:string; len:number; type:string; } */\n\tvar fields/*:Array<DBFField>*/ = [], field/*:DBFField*/ = ({}/*:any*/);\n\tvar hend = Math.min(d.length, (ft == 0x02 ? 0x209 : (fpos - 10 - (vfp ? 264 : 0))));\n\tvar ww = l7 ? 32 : 11;\n\twhile(d.l < hend && d[d.l] != 0x0d) {\n\t\tfield = ({}/*:any*/);\n\t\tfield.name = (typeof $cptable !== \"undefined\" ? $cptable.utils.decode(current_cp, d.slice(d.l, d.l+ww)) : a2s(d.slice(d.l, d.l + ww))).replace(/[\\u0000\\r\\n].*$/g,\"\");\n\t\td.l += ww;\n\t\tfield.type = String.fromCharCode(d.read_shift(1));\n\t\tif(ft != 0x02 && !l7) field.offset = d.read_shift(4);\n\t\tfield.len = d.read_shift(1);\n\t\tif(ft == 0x02) field.offset = d.read_shift(2);\n\t\tfield.dec = d.read_shift(1);\n\t\tif(field.name.length) fields.push(field);\n\t\tif(ft != 0x02) d.l += l7 ? 13 : 14;\n\t\tswitch(field.type) {\n\t\t\tcase 'B': // Double (VFP) / Binary (dBASE L7)\n\t\t\t\tif((!vfp || field.len != 8) && opts.WTF) console.log('Skipping ' + field.name + ':' + field.type);\n\t\t\t\tbreak;\n\t\t\tcase 'G': // General (FoxPro and dBASE L7)\n\t\t\tcase 'P': // Picture (FoxPro and dBASE L7)\n\t\t\t\tif(opts.WTF) console.log('Skipping ' + field.name + ':' + field.type);\n\t\t\t\tbreak;\n\t\t\tcase '+': // Autoincrement (dBASE L7 only)\n\t\t\tcase '0': // _NullFlags (VFP only)\n\t\t\tcase '@': // Timestamp (dBASE L7 only)\n\t\t\tcase 'C': // Character (dBASE II)\n\t\t\tcase 'D': // Date (dBASE III)\n\t\t\tcase 'F': // Float (dBASE IV)\n\t\t\tcase 'I': // Long (VFP and dBASE L7)\n\t\t\tcase 'L': // Logical (dBASE II)\n\t\t\tcase 'M': // Memo (dBASE III)\n\t\t\tcase 'N': // Number (dBASE II)\n\t\t\tcase 'O': // Double (dBASE L7 only)\n\t\t\tcase 'T': // Datetime (VFP only)\n\t\t\tcase 'Y': // Currency (VFP only)\n\t\t\t\tbreak;\n\t\t\tdefault: throw new Error('Unknown Field Type: ' + field.type);\n\t\t}\n\t}\n\n\tif(d[d.l] !== 0x0D) d.l = fpos-1;\n\tif(d.read_shift(1) !== 0x0D) throw new Error(\"DBF Terminator not found \" + d.l + \" \" + d[d.l]);\n\td.l = fpos;\n\n\t/* data */\n\tvar R = 0, C = 0;\n\tout[0] = [];\n\tfor(C = 0; C != fields.length; ++C) out[0][C] = fields[C].name;\n\twhile(nrow-- > 0) {\n\t\tif(d[d.l] === 0x2A) {\n\t\t\t// TODO: record marked as deleted -- create a hidden row?\n\t\t\td.l+=rlen;\n\t\t\tcontinue;\n\t\t}\n\t\t++d.l;\n\t\tout[++R] = []; C = 0;\n\t\tfor(C = 0; C != fields.length; ++C) {\n\t\t\tvar dd = d.slice(d.l, d.l+fields[C].len); d.l+=fields[C].len;\n\t\t\tprep_blob(dd, 0);\n\t\t\tvar s = typeof $cptable !== \"undefined\" ? $cptable.utils.decode(current_cp, dd) : a2s(dd);\n\t\t\tswitch(fields[C].type) {\n\t\t\t\tcase 'C':\n\t\t\t\t\t// NOTE: it is conventional to write ' / / ' for empty dates\n\t\t\t\t\tif(s.trim().length) out[R][C] = s.replace(/\\s+$/,\"\");\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'D':\n\t\t\t\t\tif(s.length === 8) out[R][C] = new Date(+s.slice(0,4), +s.slice(4,6)-1, +s.slice(6,8));\n\t\t\t\t\telse out[R][C] = s;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'F': out[R][C] = parseFloat(s.trim()); break;\n\t\t\t\tcase '+': case 'I': out[R][C] = l7 ? dd.read_shift(-4, 'i') ^ 0x80000000 : dd.read_shift(4, 'i'); break;\n\t\t\t\tcase 'L': switch(s.trim().toUpperCase()) {\n\t\t\t\t\tcase 'Y': case 'T': out[R][C] = true; break;\n\t\t\t\t\tcase 'N': case 'F': out[R][C] = false; break;\n\t\t\t\t\tcase '': case '?': break;\n\t\t\t\t\tdefault: throw new Error(\"DBF Unrecognized L:|\" + s + \"|\");\n\t\t\t\t\t} break;\n\t\t\t\tcase 'M': /* TODO: handle memo files */\n\t\t\t\t\tif(!memo) throw new Error(\"DBF Unexpected MEMO for type \" + ft.toString(16));\n\t\t\t\t\tout[R][C] = \"##MEMO##\" + (l7 ? parseInt(s.trim(), 10): dd.read_shift(4));\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'N':\n\t\t\t\t\ts = s.replace(/\\u0000/g,\"\").trim();\n\t\t\t\t\t// NOTE: dBASE II interprets \" . \" as 0\n\t\t\t\t\tif(s && s != \".\") out[R][C] = +s || 0; break;\n\t\t\t\tcase '@':\n\t\t\t\t\t// NOTE: dBASE specs appear to be incorrect\n\t\t\t\t\tout[R][C] = new Date(dd.read_shift(-8, 'f') - 0x388317533400);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'T': out[R][C] = new Date((dd.read_shift(4) - 0x253D8C) * 0x5265C00 + dd.read_shift(4)); break;\n\t\t\t\tcase 'Y': out[R][C] = dd.read_shift(4,'i')/1e4 + (dd.read_shift(4, 'i')/1e4)*Math.pow(2,32); break;\n\t\t\t\tcase 'O': out[R][C] = -dd.read_shift(-8, 'f'); break;\n\t\t\t\tcase 'B': if(vfp && fields[C].len == 8) { out[R][C] = dd.read_shift(8,'f'); break; }\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 'G': case 'P': dd.l += fields[C].len; break;\n\t\t\t\tcase '0':\n\t\t\t\t\tif(fields[C].name === '_NullFlags') break;\n\t\t\t\t\t/* falls through */\n\t\t\t\tdefault: throw new Error(\"DBF Unsupported data type \" + fields[C].type);\n\t\t\t}\n\t\t}\n\t}\n\tif(ft != 0x02) if(d.l < d.length && d[d.l++] != 0x1A) throw new Error(\"DBF EOF Marker missing \" + (d.l-1) + \" of \" + d.length + \" \" + d[d.l-1].toString(16));\n\tif(opts && opts.sheetRows) out = out.slice(0, opts.sheetRows);\n\topts.DBF = fields;\n\treturn out;\n}\n\nfunction dbf_to_sheet(buf, opts)/*:Worksheet*/ {\n\tvar o = opts || {};\n\tif(!o.dateNF) o.dateNF = \"yyyymmdd\";\n\tvar ws = aoa_to_sheet(dbf_to_aoa(buf, o), o);\n\tws[\"!cols\"] = o.DBF.map(function(field) { return {\n\t\twch: field.len,\n\t\tDBF: field\n\t};});\n\tdelete o.DBF;\n\treturn ws;\n}\n\nfunction dbf_to_workbook(buf, opts)/*:Workbook*/ {\n\ttry {\n\t\tvar o = sheet_to_workbook(dbf_to_sheet(buf, opts), opts);\n\t\to.bookType = \"dbf\";\n\t\treturn o;\n\t} catch(e) { if(opts && opts.WTF) throw e; }\n\treturn ({SheetNames:[],Sheets:{}});\n}\n\nvar _RLEN = { 'B': 8, 'C': 250, 'L': 1, 'D': 8, '?': 0, '': 0 };\nfunction sheet_to_dbf(ws/*:Worksheet*/, opts/*:WriteOpts*/) {\n\tvar o = opts || {};\n\tvar old_cp = current_codepage;\n\tif(+o.codepage >= 0) set_cp(+o.codepage);\n\tif(o.type == \"string\") throw new Error(\"Cannot write DBF to JS string\");\n\tvar ba = buf_array();\n\tvar aoa/*:AOA*/ = sheet_to_json(ws, {header:1, raw:true, cellDates:true});\n\tvar headers = aoa[0], data = aoa.slice(1), cols = ws[\"!cols\"] || [];\n\tvar i = 0, j = 0, hcnt = 0, rlen = 1;\n\tfor(i = 0; i < headers.length; ++i) {\n\t\tif(((cols[i]||{}).DBF||{}).name) { headers[i] = cols[i].DBF.name; ++hcnt; continue; }\n\t\tif(headers[i] == null) continue;\n\t\t++hcnt;\n\t\tif(typeof headers[i] === 'number') headers[i] = headers[i].toString(10);\n\t\tif(typeof headers[i] !== 'string') throw new Error(\"DBF Invalid column name \" + headers[i] + \" |\" + (typeof headers[i]) + \"|\");\n\t\tif(headers.indexOf(headers[i]) !== i) for(j=0; j<1024;++j)\n\t\t\tif(headers.indexOf(headers[i] + \"_\" + j) == -1) { headers[i] += \"_\" + j; break; }\n\t}\n\tvar range = safe_decode_range(ws['!ref']);\n\tvar coltypes/*:Array<string>*/ = [];\n\tvar colwidths/*:Array<number>*/ = [];\n\tvar coldecimals/*:Array<number>*/ = [];\n\tfor(i = 0; i <= range.e.c - range.s.c; ++i) {\n\t\tvar guess = '', _guess = '', maxlen = 0;\n\t\tvar col/*:Array<any>*/ = [];\n\t\tfor(j=0; j < data.length; ++j) {\n\t\t\tif(data[j][i] != null) col.push(data[j][i]);\n\t\t}\n\t\tif(col.length == 0 || headers[i] == null) { coltypes[i] = '?'; continue; }\n\t\tfor(j = 0; j < col.length; ++j) {\n\t\t\tswitch(typeof col[j]) {\n\t\t\t\t/* TODO: check if L2 compat is desired */\n\t\t\t\tcase 'number': _guess = 'B'; break;\n\t\t\t\tcase 'string': _guess = 'C'; break;\n\t\t\t\tcase 'boolean': _guess = 'L'; break;\n\t\t\t\tcase 'object': _guess = col[j] instanceof Date ? 'D' : 'C'; break;\n\t\t\t\tdefault: _guess = 'C';\n\t\t\t}\n\t\t\t/* TODO: cache the values instead of encoding twice */\n\t\t\tmaxlen = Math.max(maxlen, (typeof $cptable !== \"undefined\" && typeof col[j] == \"string\" ? $cptable.utils.encode(current_ansi, col[j]): String(col[j])).length);\n\t\t\tguess = guess && guess != _guess ? 'C' : _guess;\n\t\t\t//if(guess == 'C') break;\n\t\t}\n\t\tif(maxlen > 250) maxlen = 250;\n\t\t_guess = ((cols[i]||{}).DBF||{}).type;\n\t\t/* TODO: more fine grained control over DBF type resolution */\n\t\tif(_guess == 'C') {\n\t\t\tif(cols[i].DBF.len > maxlen) maxlen = cols[i].DBF.len;\n\t\t}\n\t\tif(guess == 'B' && _guess == 'N') {\n\t\t\tguess = 'N';\n\t\t\tcoldecimals[i] = cols[i].DBF.dec;\n\t\t\tmaxlen = cols[i].DBF.len;\n\t\t}\n\t\tcolwidths[i] = guess == 'C' || _guess == 'N' ? maxlen : (_RLEN[guess] || 0);\n\t\trlen += colwidths[i];\n\t\tcoltypes[i] = guess;\n\t}\n\n\tvar h = ba.next(32);\n\th.write_shift(4, 0x13021130);\n\th.write_shift(4, data.length);\n\th.write_shift(2, 296 + 32 * hcnt);\n\th.write_shift(2, rlen);\n\tfor(i=0; i < 4; ++i) h.write_shift(4, 0);\n\tvar cp = +dbf_reverse_map[/*::String(*/current_codepage/*::)*/] || 0x03;\n\th.write_shift(4, 0x00000000 | (cp<<8));\n\tif(dbf_codepage_map[cp] != +o.codepage) {\n\t\tif(o.codepage) console.error(\"DBF Unsupported codepage \" + current_codepage + \", using 1252\");\n\t\tcurrent_codepage = 1252;\n\t}\n\n\tfor(i = 0, j = 0; i < headers.length; ++i) {\n\t\tif(headers[i] == null) continue;\n\t\tvar hf = ba.next(32);\n\t\t/* TODO: test how applications handle non-ASCII field names */\n\t\tvar _f = (headers[i].slice(-10) + \"\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\").slice(0, 11);\n\t\thf.write_shift(1, _f, \"sbcs\");\n\t\thf.write_shift(1, coltypes[i] == '?' ? 'C' : coltypes[i], \"sbcs\");\n\t\thf.write_shift(4, j);\n\t\thf.write_shift(1, colwidths[i] || _RLEN[coltypes[i]] || 0);\n\t\thf.write_shift(1, coldecimals[i] || 0);\n\t\thf.write_shift(1, 0x02);\n\t\thf.write_shift(4, 0);\n\t\thf.write_shift(1, 0);\n\t\thf.write_shift(4, 0);\n\t\thf.write_shift(4, 0);\n\t\tj += (colwidths[i] || _RLEN[coltypes[i]] || 0);\n\t}\n\n\tvar hb = ba.next(264);\n\thb.write_shift(4, 0x0000000D);\n\tfor(i=0; i < 65;++i) hb.write_shift(4, 0x00000000);\n\tfor(i=0; i < data.length; ++i) {\n\t\tvar rout = ba.next(rlen);\n\t\trout.write_shift(1, 0);\n\t\tfor(j=0; j<headers.length; ++j) {\n\t\t\tif(headers[j] == null) continue;\n\t\t\tswitch(coltypes[j]) {\n\t\t\t\tcase 'L': rout.write_shift(1, data[i][j] == null ? 0x3F : data[i][j] ? 0x54 : 0x46); break;\n\t\t\t\tcase 'B': rout.write_shift(8, data[i][j]||0, 'f'); break;\n\t\t\t\tcase 'N':\n\t\t\t\t\tvar _n = \"0\";\n\t\t\t\t\tif(typeof data[i][j] == \"number\") _n = data[i][j].toFixed(coldecimals[j]||0);\n\t\t\t\t\tif(_n.length > colwidths[j]) _n = _n.slice(0, colwidths[j]); // addresses decimal > width\n\t\t\t\t\tfor(hcnt=0; hcnt < colwidths[j]-_n.length; ++hcnt) rout.write_shift(1, 0x20);\n\t\t\t\t\trout.write_shift(1, _n, \"sbcs\");\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'D':\n\t\t\t\t\tif(!data[i][j]) rout.write_shift(8, \"00000000\", \"sbcs\");\n\t\t\t\t\telse {\n\t\t\t\t\t\trout.write_shift(4, (\"0000\"+data[i][j].getFullYear()).slice(-4), \"sbcs\");\n\t\t\t\t\t\trout.write_shift(2, (\"00\"+(data[i][j].getMonth()+1)).slice(-2), \"sbcs\");\n\t\t\t\t\t\trout.write_shift(2, (\"00\"+data[i][j].getDate()).slice(-2), \"sbcs\");\n\t\t\t\t\t} break;\n\t\t\t\tcase 'C':\n\t\t\t\t\tvar _l = rout.l;\n\t\t\t\t\tvar _s = String(data[i][j] != null ? data[i][j] : \"\").slice(0, colwidths[j]);\n\t\t\t\t\trout.write_shift(1, _s, \"cpstr\");\n\t\t\t\t\t_l += colwidths[j] - rout.l;\n\t\t\t\t\tfor(hcnt=0; hcnt < _l; ++hcnt) rout.write_shift(1, 0x20); break;\n\t\t\t}\n\t\t}\n\t\t// data\n\t}\n\tcurrent_codepage = old_cp;\n\tba.next(1).write_shift(1, 0x1A);\n\treturn ba.end();\n}\n\treturn {\n\t\tto_workbook: dbf_to_workbook,\n\t\tto_sheet: dbf_to_sheet,\n\t\tfrom_sheet: sheet_to_dbf\n\t};\n})();\n\nvar SYLK = /*#__PURE__*/(function() {\n\t/* TODO: stress test sequences */\n\tvar sylk_escapes = ({\n\t\tAA:'À', BA:'Á', CA:'Â', DA:195, HA:'Ä', JA:197,\n\t\tAE:'È', BE:'É', CE:'Ê', HE:'Ë',\n\t\tAI:'Ì', BI:'Í', CI:'Î', HI:'Ï',\n\t\tAO:'Ò', BO:'Ó', CO:'Ô', DO:213, HO:'Ö',\n\t\tAU:'Ù', BU:'Ú', CU:'Û', HU:'Ü',\n\t\tAa:'à', Ba:'á', Ca:'â', Da:227, Ha:'ä', Ja:229,\n\t\tAe:'è', Be:'é', Ce:'ê', He:'ë',\n\t\tAi:'ì', Bi:'í', Ci:'î', Hi:'ï',\n\t\tAo:'ò', Bo:'ó', Co:'ô', Do:245, Ho:'ö',\n\t\tAu:'ù', Bu:'ú', Cu:'û', Hu:'ü',\n\t\tKC:'Ç', Kc:'ç', q:'æ', z:'œ', a:'Æ', j:'Œ',\n\t\tDN:209, Dn:241, Hy:255,\n\t\tS:169, c:170, R:174, \"B \":180,\n\t\t/*::[*/0/*::]*/:176, /*::[*/1/*::]*/:177, /*::[*/2/*::]*/:178,\n\t\t/*::[*/3/*::]*/:179, /*::[*/5/*::]*/:181, /*::[*/6/*::]*/:182,\n\t\t/*::[*/7/*::]*/:183, Q:185, k:186, b:208, i:216, l:222, s:240, y:248,\n\t\t\"!\":161, '\"':162, \"#\":163, \"(\":164, \"%\":165, \"'\":167, \"H \":168,\n\t\t\"+\":171, \";\":187, \"<\":188, \"=\":189, \">\":190, \"?\":191, \"{\":223\n\t}/*:any*/);\n\tvar sylk_char_regex = new RegExp(\"\\u001BN(\" + keys(sylk_escapes).join(\"|\").replace(/\\|\\|\\|/, \"|\\\\||\").replace(/([?()+])/g,\"\\\\$1\") + \"|\\\\|)\", \"gm\");\n\tvar sylk_char_fn = function(_, $1){ var o = sylk_escapes[$1]; return typeof o == \"number\" ? _getansi(o) : o; };\n\tvar decode_sylk_char = function($$, $1, $2) { var newcc = (($1.charCodeAt(0) - 0x20)<<4) | ($2.charCodeAt(0) - 0x30); return newcc == 59 ? $$ : _getansi(newcc); };\n\tsylk_escapes[\"|\"] = 254;\n\t/* https://oss.sheetjs.com/notes/sylk/ for more details */\n\tfunction sylk_to_aoa(d/*:RawData*/, opts)/*:[AOA, Worksheet]*/ {\n\t\tswitch(opts.type) {\n\t\t\tcase 'base64': return sylk_to_aoa_str(Base64_decode(d), opts);\n\t\t\tcase 'binary': return sylk_to_aoa_str(d, opts);\n\t\t\tcase 'buffer': return sylk_to_aoa_str(has_buf && Buffer.isBuffer(d) ? d.toString('binary') : a2s(d), opts);\n\t\t\tcase 'array': return sylk_to_aoa_str(cc2str(d), opts);\n\t\t}\n\t\tthrow new Error(\"Unrecognized type \" + opts.type);\n\t}\n\tfunction sylk_to_aoa_str(str/*:string*/, opts)/*:[AOA, Worksheet]*/ {\n\t\tvar records = str.split(/[\\n\\r]+/), R = -1, C = -1, ri = 0, rj = 0, arr/*:AOA*/ = [];\n\t\tvar formats/*:Array<string>*/ = [];\n\t\tvar next_cell_format/*:string|null*/ = null;\n\t\tvar sht = {}, rowinfo/*:Array<RowInfo>*/ = [], colinfo/*:Array<ColInfo>*/ = [], cw/*:Array<string>*/ = [];\n\t\tvar Mval = 0, j;\n\t\tvar wb = { Workbook: { WBProps: {}, Names: [] } };\n\t\tif(+opts.codepage >= 0) set_cp(+opts.codepage);\n\t\tfor (; ri !== records.length; ++ri) {\n\t\t\tMval = 0;\n\t\t\tvar rstr=records[ri].trim().replace(/\\x1B([\\x20-\\x2F])([\\x30-\\x3F])/g, decode_sylk_char).replace(sylk_char_regex, sylk_char_fn);\n\t\t\tvar record=rstr.replace(/;;/g, \"\\u0000\").split(\";\").map(function(x) { return x.replace(/\\u0000/g, \";\"); });\n\t\t\tvar RT=record[0], val;\n\t\t\tif(rstr.length > 0) switch(RT) {\n\t\t\tcase 'ID': break; /* header */\n\t\t\tcase 'E': break; /* EOF */\n\t\t\tcase 'B': break; /* dimensions */\n\t\t\tcase 'O': /* workbook options */\n\t\t\tfor(rj=1; rj<record.length; ++rj) switch(record[rj].charAt(0)) {\n\t\t\t\tcase 'V': {\n\t\t\t\t\tvar d1904 = parseInt(record[rj].slice(1), 10);\n\t\t\t\t\t// NOTE: it is technically an error if d1904 >= 5 or < 0\n\t\t\t\t\tif(d1904 >= 1 && d1904 <= 4) wb.Workbook.WBProps.date1904 = true;\n\t\t\t\t} break;\n\t\t\t} break;\n\t\t\tcase 'W': break; /* window */\n\t\t\tcase 'P':\n\t\t\t\tswitch(record[1].charAt(0)){\n\t\t\t\t\tcase 'P': formats.push(rstr.slice(3).replace(/;;/g, \";\")); break;\n\t\t\t\t} break;\n\t\t\tcase 'NN': { /* defined name */\n\t\t\t\tvar nn = {Sheet: 0};\n\t\t\t\tfor(rj=1; rj<record.length; ++rj) switch(record[rj].charAt(0)) {\n\t\t\t\t\tcase 'N': nn.Name = record[rj].slice(1); break;\n\t\t\t\t\tcase 'E': nn.Ref = (opts && opts.sheet || \"Sheet1\") + \"!\" + rc_to_a1(record[rj].slice(1)); break;\n\t\t\t\t}\n\t\t\t\twb.Workbook.Names.push(nn);\n\t\t\t} break;\n\t\t\t// case 'NE': // ??\n\t\t\t// case 'NU': // ??\n\t\t\tcase 'C': /* cell */\n\t\t\tvar C_seen_K = false, C_seen_X = false, C_seen_S = false, C_seen_E = false, _R = -1, _C = -1, formula = \"\", cell_t = \"z\";\n\t\t\tfor(rj=1; rj<record.length; ++rj) switch(record[rj].charAt(0)) {\n\t\t\t\tcase 'A': break; // TODO: comment\n\t\t\t\tcase 'X': C = parseInt(record[rj].slice(1), 10)-1; C_seen_X = true; break;\n\t\t\t\tcase 'Y':\n\t\t\t\t\tR = parseInt(record[rj].slice(1), 10)-1; if(!C_seen_X) C = 0;\n\t\t\t\t\tfor(j = arr.length; j <= R; ++j) arr[j] = [];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'K':\n\t\t\t\t\tval = record[rj].slice(1);\n\t\t\t\t\tif(val.charAt(0) === '\"') { val = val.slice(1,val.length - 1); cell_t = \"s\"; }\n\t\t\t\t\telse if(val === 'TRUE' || val === 'FALSE') { val = val === 'TRUE'; cell_t = \"b\"; }\n\t\t\t\t\telse if(!isNaN(fuzzynum(val))) {\n\t\t\t\t\t\tval = fuzzynum(val); cell_t = \"n\";\n\t\t\t\t\t\tif(next_cell_format !== null && fmt_is_date(next_cell_format) && opts.cellDates) { val = numdate(wb.Workbook.WBProps.date1904 ? val + 1462 : val); cell_t = \"d\"; }\n\t\t\t\t\t} else if(!isNaN(fuzzydate(val).getDate())) {\n\t\t\t\t\t\tval = parseDate(val); cell_t = \"d\";\n\t\t\t\t\t\tif(!opts.cellDates) { cell_t = \"n\"; val = datenum(val, wb.Workbook.WBProps.date1904); }\n\t\t\t\t\t}\n\t\t\t\t\tif(typeof $cptable !== 'undefined' && typeof val == \"string\" && ((opts||{}).type != \"string\") && (opts||{}).codepage) val = $cptable.utils.decode(opts.codepage, val);\n\t\t\t\t\tC_seen_K = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'E':\n\t\t\t\t\tC_seen_E = true;\n\t\t\t\t\tformula = rc_to_a1(record[rj].slice(1), {r:R,c:C});\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'S':\n\t\t\t\t\tC_seen_S = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'G': break; // unknown\n\t\t\t\tcase 'R': _R = parseInt(record[rj].slice(1), 10)-1; break;\n\t\t\t\tcase 'C': _C = parseInt(record[rj].slice(1), 10)-1; break;\n\t\t\t\t// case 'P': // ??\n\t\t\t\t// case 'D': // ??\n\t\t\t\tdefault: if(opts && opts.WTF) throw new Error(\"SYLK bad record \" + rstr);\n\t\t\t}\n\t\t\tif(C_seen_K) {\n\t\t\t\tif(!arr[R][C]) arr[R][C] = { t: cell_t, v: val };\n\t\t\t\telse { arr[R][C].t = cell_t; arr[R][C].v = val; }\n\t\t\t\tif(next_cell_format) arr[R][C].z = next_cell_format;\n\t\t\t\tif(opts.cellText !== false && next_cell_format) arr[R][C].w = SSF_format(arr[R][C].z, arr[R][C].v, { date1904: wb.Workbook.WBProps.date1904 });\n\t\t\t\tnext_cell_format = null;\n\t\t\t}\n\t\t\tif(C_seen_S) {\n\t\t\t\tif(C_seen_E) throw new Error(\"SYLK shared formula cannot have own formula\");\n\t\t\t\tvar shrbase = _R > -1 && arr[_R][_C];\n\t\t\t\tif(!shrbase || !shrbase[1]) throw new Error(\"SYLK shared formula cannot find base\");\n\t\t\t\tformula = shift_formula_str(shrbase[1], {r: R - _R, c: C - _C});\n\t\t\t}\n\t\t\tif(formula) {\n\t\t\t\tif(!arr[R][C]) arr[R][C] = { t: 'n', f: formula };\n\t\t\t\telse arr[R][C].f = formula;\n\t\t\t}\n\t\t\tbreak;\n\t\t\tcase 'F': /* Format */\n\t\t\tvar F_seen = 0;\n\t\t\tfor(rj=1; rj<record.length; ++rj) switch(record[rj].charAt(0)) {\n\t\t\t\tcase 'X': C = parseInt(record[rj].slice(1), 10)-1; ++F_seen; break;\n\t\t\t\tcase 'Y':\n\t\t\t\t\tR = parseInt(record[rj].slice(1), 10)-1; /*C = 0;*/\n\t\t\t\t\tfor(j = arr.length; j <= R; ++j) arr[j] = [];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'M': Mval = parseInt(record[rj].slice(1), 10) / 20; break;\n\t\t\t\tcase 'F': break; /* ??? */\n\t\t\t\tcase 'G': break; /* hide grid */\n\t\t\t\tcase 'P':\n\t\t\t\t\tnext_cell_format = formats[parseInt(record[rj].slice(1), 10)];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'S': break; /* cell style */\n\t\t\t\tcase 'D': break; /* column */\n\t\t\t\tcase 'N': break; /* font */\n\t\t\t\tcase 'W':\n\t\t\t\t\tcw = record[rj].slice(1).split(\" \");\n\t\t\t\t\tfor(j = parseInt(cw[0], 10); j <= parseInt(cw[1], 10); ++j) {\n\t\t\t\t\t\tMval = parseInt(cw[2], 10);\n\t\t\t\t\t\tcolinfo[j-1] = Mval === 0 ? {hidden:true}: {wch:Mval};\n\t\t\t\t\t} break;\n\t\t\t\tcase 'C': /* default column format */\n\t\t\t\t\tC = parseInt(record[rj].slice(1), 10)-1;\n\t\t\t\t\tif(!colinfo[C]) colinfo[C] = {};\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'R': /* row properties */\n\t\t\t\t\tR = parseInt(record[rj].slice(1), 10)-1;\n\t\t\t\t\tif(!rowinfo[R]) rowinfo[R] = {};\n\t\t\t\t\tif(Mval > 0) { rowinfo[R].hpt = Mval; rowinfo[R].hpx = pt2px(Mval); }\n\t\t\t\t\telse if(Mval === 0) rowinfo[R].hidden = true;\n\t\t\t\t\tbreak;\n\t\t\t\t// case 'K': // ??\n\t\t\t\t// case 'E': // ??\n\t\t\t\tdefault: if(opts && opts.WTF) throw new Error(\"SYLK bad record \" + rstr);\n\t\t\t}\n\t\t\tif(F_seen < 1) next_cell_format = null; break;\n\t\t\tdefault: if(opts && opts.WTF) throw new Error(\"SYLK bad record \" + rstr);\n\t\t\t}\n\t\t}\n\t\tif(rowinfo.length > 0) sht['!rows'] = rowinfo;\n\t\tif(colinfo.length > 0) sht['!cols'] = colinfo;\n\t\tcolinfo.forEach(function(col) { process_col(col); });\n\t\tif(opts && opts.sheetRows) arr = arr.slice(0, opts.sheetRows);\n\t\treturn [arr, sht, wb];\n\t}\n\n\tfunction sylk_to_workbook(d/*:RawData*/, opts)/*:Workbook*/ {\n\t\tvar aoasht = sylk_to_aoa(d, opts);\n\t\tvar aoa = aoasht[0], ws = aoasht[1], wb = aoasht[2];\n\t\tvar _opts = dup(opts); _opts.date1904 = (((wb||{}).Workbook || {}).WBProps || {}).date1904;\n\t\tvar o = aoa_to_sheet(aoa, _opts);\n\t\tkeys(ws).forEach(function(k) { o[k] = ws[k]; });\n\t\tvar outwb = sheet_to_workbook(o, opts);\n\t\tkeys(wb).forEach(function(k) { outwb[k] = wb[k]; });\n\t\toutwb.bookType = \"sylk\";\n\t\treturn outwb;\n\t}\n\n\tfunction write_ws_cell_sylk(cell/*:Cell*/, ws/*:Worksheet*/, R/*:number*/, C/*:number*//*::, opts*/)/*:string*/ {\n\t\tvar o = \"C;Y\" + (R+1) + \";X\" + (C+1) + \";K\";\n\t\tswitch(cell.t) {\n\t\t\tcase 'n':\n\t\t\t\to += (cell.v||0);\n\t\t\t\tif(cell.f && !cell.F) o += \";E\" + a1_to_rc(cell.f, {r:R, c:C}); break;\n\t\t\tcase 'b': o += cell.v ? \"TRUE\" : \"FALSE\"; break;\n\t\t\tcase 'e': o += cell.w || cell.v; break;\n\t\t\tcase 'd': o += '\"' + (cell.w || cell.v) + '\"'; break;\n\t\t\tcase 's': o += '\"' + (cell.v == null ? \"\" : String(cell.v)).replace(/\"/g,\"\").replace(/;/g, \";;\") + '\"'; break;\n\t\t}\n\t\treturn o;\n\t}\n\n\tfunction write_ws_cols_sylk(out, cols) {\n\t\tcols.forEach(function(col, i) {\n\t\t\tvar rec = \"F;W\" + (i+1) + \" \" + (i+1) + \" \";\n\t\t\tif(col.hidden) rec += \"0\";\n\t\t\telse {\n\t\t\t\tif(typeof col.width == 'number' && !col.wpx) col.wpx = width2px(col.width);\n\t\t\t\tif(typeof col.wpx == 'number' && !col.wch) col.wch = px2char(col.wpx);\n\t\t\t\tif(typeof col.wch == 'number') rec += Math.round(col.wch);\n\t\t\t}\n\t\t\tif(rec.charAt(rec.length - 1) != \" \") out.push(rec);\n\t\t});\n\t}\n\n\tfunction write_ws_rows_sylk(out/*:Array<string>*/, rows/*:Array<RowInfo>*/) {\n\t\trows.forEach(function(row, i) {\n\t\t\tvar rec = \"F;\";\n\t\t\tif(row.hidden) rec += \"M0;\";\n\t\t\telse if(row.hpt) rec += \"M\" + 20 * row.hpt + \";\";\n\t\t\telse if(row.hpx) rec += \"M\" + 20 * px2pt(row.hpx) + \";\";\n\t\t\tif(rec.length > 2) out.push(rec + \"R\" + (i+1));\n\t\t});\n\t}\n\n\tfunction sheet_to_sylk(ws/*:Worksheet*/, opts/*:?any*/, wb/*:?WorkBook*/)/*:string*/ {\n\t\t/* TODO: codepage */\n\t\tvar preamble/*:Array<string>*/ = [\"ID;PSheetJS;N;E\"], o/*:Array<string>*/ = [];\n\t\tvar r = safe_decode_range(ws['!ref']), cell/*:Cell*/;\n\t\tvar dense = ws[\"!data\"] != null;\n\t\tvar RS = \"\\r\\n\";\n\t\tvar d1904 = (((wb||{}).Workbook||{}).WBProps||{}).date1904;\n\n\t\tpreamble.push(\"P;PGeneral\");\n\t\tpreamble.push(\"F;P0;DG0G8;M255\");\n\t\tif(ws['!cols']) write_ws_cols_sylk(preamble, ws['!cols']);\n\t\tif(ws['!rows']) write_ws_rows_sylk(preamble, ws['!rows']);\n\n\t\tpreamble.push(\"B;Y\" + (r.e.r - r.s.r + 1) + \";X\" + (r.e.c - r.s.c + 1) + \";D\" + [r.s.c,r.s.r,r.e.c,r.e.r].join(\" \"));\n\t\tpreamble.push(\"O;L;D;B\" + (d1904 ? \";V4\" : \"\") + \";K47;G100 0.001\");\n\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\t\tif(dense && !ws[\"!data\"][R]) continue;\n\t\t\tvar p = [];\n\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\tcell = dense ? ws[\"!data\"][R][C] : ws[encode_col(C) + encode_row(R)];\n\t\t\t\tif(!cell || (cell.v == null && (!cell.f || cell.F))) continue;\n\t\t\t\tp.push(write_ws_cell_sylk(cell, ws, R, C, opts)); // TODO: pass date1904 info\n\t\t\t}\n\t\t\to.push(p.join(RS));\n\t\t}\n\t\treturn preamble.join(RS) + RS + o.join(RS) + RS + \"E\" + RS;\n\t}\n\n\treturn {\n\t\tto_workbook: sylk_to_workbook,\n\t\tfrom_sheet: sheet_to_sylk\n\t};\n})();\n\nvar DIF = /*#__PURE__*/(function() {\n\tfunction dif_to_aoa(d/*:RawData*/, opts)/*:AOA*/ {\n\t\tswitch(opts.type) {\n\t\t\tcase 'base64': return dif_to_aoa_str(Base64_decode(d), opts);\n\t\t\tcase 'binary': return dif_to_aoa_str(d, opts);\n\t\t\tcase 'buffer': return dif_to_aoa_str(has_buf && Buffer.isBuffer(d) ? d.toString('binary') : a2s(d), opts);\n\t\t\tcase 'array': return dif_to_aoa_str(cc2str(d), opts);\n\t\t}\n\t\tthrow new Error(\"Unrecognized type \" + opts.type);\n\t}\n\tfunction dif_to_aoa_str(str/*:string*/, opts)/*:AOA*/ {\n\t\tvar records = str.split('\\n'), R = -1, C = -1, ri = 0, arr/*:AOA*/ = [];\n\t\tfor (; ri !== records.length; ++ri) {\n\t\t\tif (records[ri].trim() === 'BOT') { arr[++R] = []; C = 0; continue; }\n\t\t\tif (R < 0) continue;\n\t\t\tvar metadata = records[ri].trim().split(\",\");\n\t\t\tvar type = metadata[0], value = metadata[1];\n\t\t\t++ri;\n\t\t\tvar data = records[ri] || \"\";\n\t\t\twhile(((data.match(/[\"]/g)||[]).length & 1) && ri < records.length - 1) data += \"\\n\" + records[++ri];\n\t\t\tdata = data.trim();\n\t\t\tswitch (+type) {\n\t\t\t\tcase -1:\n\t\t\t\t\tif (data === 'BOT') { arr[++R] = []; C = 0; continue; }\n\t\t\t\t\telse if (data !== 'EOD') throw new Error(\"Unrecognized DIF special command \" + data);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0:\n\t\t\t\t\tif(data === 'TRUE') arr[R][C] = true;\n\t\t\t\t\telse if(data === 'FALSE') arr[R][C] = false;\n\t\t\t\t\telse if(!isNaN(fuzzynum(value))) arr[R][C] = fuzzynum(value);\n\t\t\t\t\telse if(!isNaN(fuzzydate(value).getDate())) arr[R][C] = parseDate(value);\n\t\t\t\t\telse arr[R][C] = value;\n\t\t\t\t\t++C; break;\n\t\t\t\tcase 1:\n\t\t\t\t\tdata = data.slice(1,data.length-1);\n\t\t\t\t\tdata = data.replace(/\"\"/g, '\"');\n\t\t\t\t\tif(DIF_XL && data && data.match(/^=\".*\"$/)) data = data.slice(2, -1);\n\t\t\t\t\tarr[R][C++] = data !== '' ? data : null;\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (data === 'EOD') break;\n\t\t}\n\t\tif(opts && opts.sheetRows) arr = arr.slice(0, opts.sheetRows);\n\t\treturn arr;\n\t}\n\n\tfunction dif_to_sheet(str/*:string*/, opts)/*:Worksheet*/ { return aoa_to_sheet(dif_to_aoa(str, opts), opts); }\n\tfunction dif_to_workbook(str/*:string*/, opts)/*:Workbook*/ {\n\t\tvar o = sheet_to_workbook(dif_to_sheet(str, opts), opts);\n\t\to.bookType = \"dif\";\n\t\treturn o;\n\t}\n\n\tfunction make_value(v/*:number*/, s/*:string*/)/*:string*/ { return \"0,\" + String(v) + \"\\r\\n\" + s; }\n\tfunction make_value_str(s/*:string*/)/*:string*/ { return \"1,0\\r\\n\\\"\" + s.replace(/\"/g,'\"\"') + '\"'; }\n\tfunction sheet_to_dif(ws/*:Worksheet*//*::, opts:?any*/)/*:string*/ {\n\t\tvar _DIF_XL = DIF_XL;\n\t\tvar r = safe_decode_range(ws['!ref']);\n\t\tvar dense = ws[\"!data\"] != null;\n\t\tvar o/*:Array<string>*/ = [\n\t\t\t\"TABLE\\r\\n0,1\\r\\n\\\"sheetjs\\\"\\r\\n\",\n\t\t\t\"VECTORS\\r\\n0,\" + (r.e.r - r.s.r + 1) + \"\\r\\n\\\"\\\"\\r\\n\",\n\t\t\t\"TUPLES\\r\\n0,\" + (r.e.c - r.s.c + 1) + \"\\r\\n\\\"\\\"\\r\\n\",\n\t\t\t\"DATA\\r\\n0,0\\r\\n\\\"\\\"\\r\\n\"\n\t\t];\n\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\t\tvar row = dense ? ws[\"!data\"][R] : [];\n\t\t\tvar p = \"-1,0\\r\\nBOT\\r\\n\";\n\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\tvar cell/*:Cell*/ = dense ? (row && row[C]) : ws[encode_cell({r:R,c:C})];\n\t\t\t\tif(cell == null) { p +=(\"1,0\\r\\n\\\"\\\"\\r\\n\"); continue;}\n\t\t\t\tswitch(cell.t) {\n\t\t\t\t\tcase 'n':\n\t\t\t\t\t\tif(_DIF_XL) {\n\t\t\t\t\t\t\tif(cell.w != null) p +=(\"0,\" + cell.w + \"\\r\\nV\");\n\t\t\t\t\t\t\telse if(cell.v != null) p +=(make_value(cell.v, \"V\")); // TODO: should this call SSF_format?\n\t\t\t\t\t\t\telse if(cell.f != null && !cell.F) p +=(make_value_str(\"=\" + cell.f));\n\t\t\t\t\t\t\telse p +=(\"1,0\\r\\n\\\"\\\"\");\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif(cell.v == null) p +=(\"1,0\\r\\n\\\"\\\"\");\n\t\t\t\t\t\t\telse p +=(make_value(cell.v, \"V\"));\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'b':\n\t\t\t\t\t\tp +=(cell.v ? make_value(1, \"TRUE\") : make_value(0, \"FALSE\"));\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 's':\n\t\t\t\t\t\tp +=(make_value_str((!_DIF_XL || isNaN(+cell.v)) ? cell.v : '=\"' + cell.v + '\"'));\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'd':\n\t\t\t\t\t\tif(!cell.w) cell.w = SSF_format(cell.z || table_fmt[14], datenum(parseDate(cell.v)));\n\t\t\t\t\t\tif(_DIF_XL) p +=(make_value(cell.w, \"V\"));\n\t\t\t\t\t\telse p +=(make_value_str(cell.w));\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault: p +=(\"1,0\\r\\n\\\"\\\"\");\n\t\t\t\t}\n\t\t\t\tp += \"\\r\\n\";\n\t\t\t}\n\t\t\to.push(p);\n\t\t}\n\t\treturn o.join(\"\") + \"-1,0\\r\\nEOD\";\n\t}\n\treturn {\n\t\tto_workbook: dif_to_workbook,\n\t\tto_sheet: dif_to_sheet,\n\t\tfrom_sheet: sheet_to_dif\n\t};\n})();\n\nvar ETH = /*#__PURE__*/(function() {\n\tfunction decode(s/*:string*/)/*:string*/ { return s.replace(/\\\\b/g,\"\\\\\").replace(/\\\\c/g,\":\").replace(/\\\\n/g,\"\\n\"); }\n\tfunction encode(s/*:string*/)/*:string*/ { return s.replace(/\\\\/g, \"\\\\b\").replace(/:/g, \"\\\\c\").replace(/\\n/g,\"\\\\n\"); }\n\n\tfunction eth_to_aoa(str/*:string*/, opts)/*:AOA*/ {\n\t\tvar records = str.split('\\n'), R = -1, C = -1, ri = 0, arr/*:AOA*/ = [];\n\t\tfor (; ri !== records.length; ++ri) {\n\t\t\tvar record = records[ri].trim().split(\":\");\n\t\t\tif(record[0] !== 'cell') continue;\n\t\t\tvar addr = decode_cell(record[1]);\n\t\t\tif(arr.length <= addr.r) for(R = arr.length; R <= addr.r; ++R) if(!arr[R]) arr[R] = [];\n\t\t\tR = addr.r; C = addr.c;\n\t\t\tswitch(record[2]) {\n\t\t\t\tcase 't': arr[R][C] = decode(record[3]); break;\n\t\t\t\tcase 'v': arr[R][C] = +record[3]; break;\n\t\t\t\tcase 'vtf': var _f = record[record.length - 1];\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 'vtc':\n\t\t\t\t\tswitch(record[3]) {\n\t\t\t\t\t\tcase 'nl': arr[R][C] = +record[4] ? true : false; break;\n\t\t\t\t\t\tdefault: arr[R][C] = +record[4]; break;\n\t\t\t\t\t}\n\t\t\t\t\tif(record[2] == 'vtf') arr[R][C] = [arr[R][C], _f];\n\t\t\t}\n\t\t}\n\t\tif(opts && opts.sheetRows) arr = arr.slice(0, opts.sheetRows);\n\t\treturn arr;\n\t}\n\n\tfunction eth_to_sheet(d/*:string*/, opts)/*:Worksheet*/ { return aoa_to_sheet(eth_to_aoa(d, opts), opts); }\n\tfunction eth_to_workbook(d/*:string*/, opts)/*:Workbook*/ { return sheet_to_workbook(eth_to_sheet(d, opts), opts); }\n\n\tvar header = [\n\t\t\"socialcalc:version:1.5\",\n\t\t\"MIME-Version: 1.0\",\n\t\t\"Content-Type: multipart/mixed; boundary=SocialCalcSpreadsheetControlSave\"\n\t].join(\"\\n\");\n\n\tvar sep = [\n\t\t\"--SocialCalcSpreadsheetControlSave\",\n\t\t\"Content-type: text/plain; charset=UTF-8\"\n\t].join(\"\\n\") + \"\\n\";\n\n\t/* TODO: the other parts */\n\tvar meta = [\n\t\t\"# SocialCalc Spreadsheet Control Save\",\n\t\t\"part:sheet\"\n\t].join(\"\\n\");\n\n\tvar end = \"--SocialCalcSpreadsheetControlSave--\";\n\n\tfunction sheet_to_eth_data(ws/*:Worksheet*/)/*:string*/ {\n\t\tif(!ws || !ws['!ref']) return \"\";\n\t\tvar o/*:Array<string>*/ = [], oo/*:Array<string>*/ = [], cell, coord = \"\";\n\t\tvar r = decode_range(ws['!ref']);\n\t\tvar dense = ws[\"!data\"] != null;\n\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\tcoord = encode_cell({r:R,c:C});\n\t\t\t\tcell = dense ? (ws[\"!data\"][R]||[])[C] : ws[coord];\n\t\t\t\tif(!cell || cell.v == null || cell.t === 'z') continue;\n\t\t\t\too = [\"cell\", coord, 't'];\n\t\t\t\tswitch(cell.t) {\n\t\t\t\t\tcase 's': case 'str': oo.push(encode(cell.v)); break;\n\t\t\t\t\tcase 'n':\n\t\t\t\t\t\tif(!cell.f) { oo[2]='v'; oo[3]=cell.v; }\n\t\t\t\t\t\telse { oo[2]='vtf'; oo[3]='n'; oo[4]=cell.v; oo[5]=encode(cell.f); }\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'b':\n\t\t\t\t\t\too[2] = 'vt'+(cell.f?'f':'c'); oo[3]='nl'; oo[4]=cell.v?\"1\":\"0\";\n\t\t\t\t\t\too[5] = encode(cell.f||(cell.v?'TRUE':'FALSE'));\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'd':\n\t\t\t\t\t\tvar t = datenum(parseDate(cell.v));\n\t\t\t\t\t\too[2] = 'vtc'; oo[3] = 'nd'; oo[4] = \"\"+t;\n\t\t\t\t\t\too[5] = cell.w || SSF_format(cell.z || table_fmt[14], t);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'e': continue;\n\t\t\t\t}\n\t\t\t\to.push(oo.join(\":\"));\n\t\t\t}\n\t\t}\n\t\to.push(\"sheet:c:\" + (r.e.c-r.s.c+1) + \":r:\" + (r.e.r-r.s.r+1) + \":tvf:1\");\n\t\to.push(\"valueformat:1:text-wiki\");\n\t\t//o.push(\"copiedfrom:\" + ws['!ref']); // clipboard only\n\t\treturn o.join(\"\\n\");\n\t}\n\n\tfunction sheet_to_eth(ws/*:Worksheet*//*::, opts:?any*/)/*:string*/ {\n\t\treturn [header, sep, meta, sep, sheet_to_eth_data(ws), end].join(\"\\n\");\n\t\t// return [\"version:1.5\", sheet_to_eth_data(ws)].join(\"\\n\"); // clipboard form\n\t}\n\n\treturn {\n\t\tto_workbook: eth_to_workbook,\n\t\tto_sheet: eth_to_sheet,\n\t\tfrom_sheet: sheet_to_eth\n\t};\n})();\n\nvar PRN = /*#__PURE__*/(function() {\n\tfunction set_text_arr(data/*:string*/, arr/*:AOA*/, R/*:number*/, C/*:number*/, o/*:any*/) {\n\t\tif(o.raw) arr[R][C] = data;\n\t\telse if(data === \"\"){/* empty */}\n\t\telse if(data === 'TRUE') arr[R][C] = true;\n\t\telse if(data === 'FALSE') arr[R][C] = false;\n\t\telse if(!isNaN(fuzzynum(data))) arr[R][C] = fuzzynum(data);\n\t\telse if(!isNaN(fuzzydate(data).getDate())) arr[R][C] = parseDate(data);\n\t\telse arr[R][C] = data;\n\t}\n\n\tfunction prn_to_aoa_str(f/*:string*/, opts)/*:AOA*/ {\n\t\tvar o = opts || {};\n\t\tvar arr/*:AOA*/ = ([]/*:any*/);\n\t\tif(!f || f.length === 0) return arr;\n\t\tvar lines = f.split(/[\\r\\n]/);\n\t\tvar L = lines.length - 1;\n\t\twhile(L >= 0 && lines[L].length === 0) --L;\n\t\tvar start = 10, idx = 0;\n\t\tvar R = 0;\n\t\tfor(; R <= L; ++R) {\n\t\t\tidx = lines[R].indexOf(\" \");\n\t\t\tif(idx == -1) idx = lines[R].length; else idx++;\n\t\t\tstart = Math.max(start, idx);\n\t\t}\n\t\tfor(R = 0; R <= L; ++R) {\n\t\t\tarr[R] = [];\n\t\t\t/* TODO: confirm that widths are always 10 */\n\t\t\tvar C = 0;\n\t\t\tset_text_arr(lines[R].slice(0, start).trim(), arr, R, C, o);\n\t\t\tfor(C = 1; C <= (lines[R].length - start)/10 + 1; ++C)\n\t\t\t\tset_text_arr(lines[R].slice(start+(C-1)*10,start+C*10).trim(),arr,R,C,o);\n\t\t}\n\t\tif(o.sheetRows) arr = arr.slice(0, o.sheetRows);\n\t\treturn arr;\n\t}\n\n\t// List of accepted CSV separators\n\tvar guess_seps = {\n\t\t/*::[*/0x2C/*::]*/: ',',\n\t\t/*::[*/0x09/*::]*/: \"\\t\",\n\t\t/*::[*/0x3B/*::]*/: ';',\n\t\t/*::[*/0x7C/*::]*/: '|'\n\t};\n\n\t// CSV separator weights to be used in case of equal numbers\n\tvar guess_sep_weights = {\n\t\t/*::[*/0x2C/*::]*/: 3,\n\t\t/*::[*/0x09/*::]*/: 2,\n\t\t/*::[*/0x3B/*::]*/: 1,\n\t\t/*::[*/0x7C/*::]*/: 0\n\t};\n\n\tfunction guess_sep(str) {\n\t\tvar cnt = {}, instr = false, end = 0, cc = 0;\n\t\tfor(;end < str.length;++end) {\n\t\t\tif((cc=str.charCodeAt(end)) == 0x22) instr = !instr;\n\t\t\telse if(!instr && cc in guess_seps) cnt[cc] = (cnt[cc]||0)+1;\n\t\t}\n\n\t\tcc = [];\n\t\tfor(end in cnt) if ( Object.prototype.hasOwnProperty.call(cnt, end) ) {\n\t\t\tcc.push([ cnt[end], end ]);\n\t\t}\n\n\t\tif ( !cc.length ) {\n\t\t\tcnt = guess_sep_weights;\n\t\t\tfor(end in cnt) if ( Object.prototype.hasOwnProperty.call(cnt, end) ) {\n\t\t\t\tcc.push([ cnt[end], end ]);\n\t\t\t}\n\t\t}\n\n\t\tcc.sort(function(a, b) { return a[0] - b[0] || guess_sep_weights[a[1]] - guess_sep_weights[b[1]]; });\n\n\t\treturn guess_seps[cc.pop()[1]] || 0x2C;\n\t}\n\n\tfunction dsv_to_sheet_str(str/*:string*/, opts)/*:Worksheet*/ {\n\t\tvar o = opts || {};\n\t\tvar sep = \"\";\n\t\tif(DENSE != null && o.dense == null) o.dense = DENSE;\n\t\tvar ws/*:Worksheet*/ = ({}/*:any*/);\n\t\tif(o.dense) ws[\"!data\"] = [];\n\t\tvar range/*:Range*/ = ({s: {c:0, r:0}, e: {c:0, r:0}}/*:any*/);\n\n\t\tif(str.slice(0,4) == \"sep=\") {\n\t\t\t// If the line ends in \\r\\n\n\t\t\tif(str.charCodeAt(5) == 13 && str.charCodeAt(6) == 10 ) {\n\t\t\t\tsep = str.charAt(4); str = str.slice(7);\n\t\t\t}\n\t\t\t// If line ends in \\r OR \\n\n\t\t\telse if(str.charCodeAt(5) == 13 || str.charCodeAt(5) == 10 ) {\n\t\t\t\tsep = str.charAt(4); str = str.slice(6);\n\t\t\t}\n\t\t\telse sep = guess_sep(str.slice(0,1024));\n\t\t}\n\t\telse if(o && o.FS) sep = o.FS;\n\t\telse sep = guess_sep(str.slice(0,1024));\n\t\tvar R = 0, C = 0, v = 0;\n\t\tvar start = 0, end = 0, sepcc = sep.charCodeAt(0), instr = false, cc=0, startcc=str.charCodeAt(0);\n\t\tvar _re/*:?RegExp*/ = o.dateNF != null ? dateNF_regex(o.dateNF) : null;\n\t\tfunction finish_cell() {\n\t\t\tvar s = str.slice(start, end); if(s.slice(-1) == \"\\r\") s = s.slice(0, -1);\n\t\t\tvar cell = ({}/*:any*/);\n\t\t\tif(s.charAt(0) == '\"' && s.charAt(s.length - 1) == '\"') s = s.slice(1,-1).replace(/\"\"/g,'\"');\n\t\t\tif(s.length === 0) cell.t = 'z';\n\t\t\telse if(o.raw) { cell.t = 's'; cell.v = s; }\n\t\t\telse if(s.trim().length === 0) { cell.t = 's'; cell.v = s; }\n\t\t\telse if(s.charCodeAt(0) == 0x3D) {\n\t\t\t\tif(s.charCodeAt(1) == 0x22 && s.charCodeAt(s.length - 1) == 0x22) { cell.t = 's'; cell.v = s.slice(2,-1).replace(/\"\"/g,'\"'); }\n\t\t\t\telse if(fuzzyfmla(s)) { cell.t = 'n'; cell.f = s.slice(1); }\n\t\t\t\telse { cell.t = 's'; cell.v = s; } }\n\t\t\telse if(s == \"TRUE\") { cell.t = 'b'; cell.v = true; }\n\t\t\telse if(s == \"FALSE\") { cell.t = 'b'; cell.v = false; }\n\t\t\telse if(!isNaN(v = fuzzynum(s))) { cell.t = 'n'; if(o.cellText !== false) cell.w = s; cell.v = v; }\n\t\t\telse if(!isNaN((v = fuzzydate(s)).getDate()) || _re && s.match(_re)) {\n\t\t\t\tcell.z = o.dateNF || table_fmt[14];\n\t\t\t\tvar k = 0;\n\t\t\t\tif(_re && s.match(_re)){ s=dateNF_fix(s, o.dateNF, (s.match(_re)||[])); k=1; v = parseDate(s, k); }\n\t\t\t\tif(o.cellDates) { cell.t = 'd'; cell.v = v; }\n\t\t\t\telse { cell.t = 'n'; cell.v = datenum(v); }\n\t\t\t\tif(o.cellText !== false) cell.w = SSF_format(cell.z, cell.v instanceof Date ? datenum(cell.v):cell.v);\n\t\t\t\tif(!o.cellNF) delete cell.z;\n\t\t\t} else {\n\t\t\t\tcell.t = 's';\n\t\t\t\tcell.v = s;\n\t\t\t}\n\t\t\tif(cell.t == 'z'){}\n\t\t\telse if(o.dense) { if(!ws[\"!data\"][R]) ws[\"!data\"][R] = []; ws[\"!data\"][R][C] = cell; }\n\t\t\telse ws[encode_cell({c:C,r:R})] = cell;\n\t\t\tstart = end+1; startcc = str.charCodeAt(start);\n\t\t\tif(range.e.c < C) range.e.c = C;\n\t\t\tif(range.e.r < R) range.e.r = R;\n\t\t\tif(cc == sepcc) ++C; else { C = 0; ++R; if(o.sheetRows && o.sheetRows <= R) return true; }\n\t\t}\n\t\touter: for(;end < str.length;++end) switch((cc=str.charCodeAt(end))) {\n\t\t\tcase 0x22: if(startcc === 0x22) instr = !instr; break;\n\t\t\tcase 0x0d:\n\t\t\t\tif(instr) break;\n\t\t\t\tif(str.charCodeAt(end+1) == 0x0a) ++end;\n\t\t\t\t/* falls through */\n\t\t\tcase sepcc: case 0x0a: if(!instr && finish_cell()) break outer; break;\n\t\t\tdefault: break;\n\t\t}\n\t\tif(end - start > 0) finish_cell();\n\n\t\tws['!ref'] = encode_range(range);\n\t\treturn ws;\n\t}\n\n\tfunction prn_to_sheet_str(str/*:string*/, opts)/*:Worksheet*/ {\n\t\tif(!(opts && opts.PRN)) return dsv_to_sheet_str(str, opts);\n\t\tif(opts.FS) return dsv_to_sheet_str(str, opts);\n\t\tif(str.slice(0,4) == \"sep=\") return dsv_to_sheet_str(str, opts);\n\t\tif(str.indexOf(\"\\t\") >= 0 || str.indexOf(\",\") >= 0 || str.indexOf(\";\") >= 0) return dsv_to_sheet_str(str, opts);\n\t\treturn aoa_to_sheet(prn_to_aoa_str(str, opts), opts);\n\t}\n\n\tfunction prn_to_sheet(d/*:RawData*/, opts)/*:Worksheet*/ {\n\t\tvar str = \"\", bytes = opts.type == 'string' ? [0,0,0,0] : firstbyte(d, opts);\n\t\tswitch(opts.type) {\n\t\t\tcase 'base64': str = Base64_decode(d); break;\n\t\t\tcase 'binary': str = d; break;\n\t\t\tcase 'buffer':\n\t\t\t\tif(opts.codepage == 65001) str = d.toString('utf8'); // TODO: test if buf\n\t\t\t\telse if(opts.codepage && typeof $cptable !== 'undefined') str = $cptable.utils.decode(opts.codepage, d);\n\t\t\t\telse str = has_buf && Buffer.isBuffer(d) ? d.toString('binary') : a2s(d);\n\t\t\t\tbreak;\n\t\t\tcase 'array': str = cc2str(d); break;\n\t\t\tcase 'string': str = d; break;\n\t\t\tdefault: throw new Error(\"Unrecognized type \" + opts.type);\n\t\t}\n\t\tif(bytes[0] == 0xEF && bytes[1] == 0xBB && bytes[2] == 0xBF) str = utf8read(str.slice(3));\n\t\telse if(opts.type != 'string' && opts.type != 'buffer' && opts.codepage == 65001) str = utf8read(str);\n\t\telse if((opts.type == 'binary') && typeof $cptable !== 'undefined' && opts.codepage) str = $cptable.utils.decode(opts.codepage, $cptable.utils.encode(28591,str));\n\t\tif(str.slice(0,19) == \"socialcalc:version:\") return ETH.to_sheet(opts.type == 'string' ? str : utf8read(str), opts);\n\t\treturn prn_to_sheet_str(str, opts);\n\t}\n\n\tfunction prn_to_workbook(d/*:RawData*/, opts)/*:Workbook*/ { return sheet_to_workbook(prn_to_sheet(d, opts), opts); }\n\n\tfunction sheet_to_prn(ws/*:Worksheet*//*::, opts:?any*/)/*:string*/ {\n\t\tvar o/*:Array<string>*/ = [];\n\t\tvar r = safe_decode_range(ws['!ref']), cell/*:Cell*/;\n\t\tvar dense = ws[\"!data\"] != null;\n\t\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\t\tvar oo/*:Array<string>*/ = [];\n\t\t\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\t\t\tvar coord = encode_cell({r:R,c:C});\n\t\t\t\tcell = dense ? (ws[\"!data\"][R]||[])[C] : ws[coord];\n\t\t\t\tif(!cell || cell.v == null) { oo.push(\" \"); continue; }\n\t\t\t\tvar w = (cell.w || (format_cell(cell), cell.w) || \"\").slice(0,10);\n\t\t\t\twhile(w.length < 10) w += \" \";\n\t\t\t\too.push(w + (C === 0 ? \" \" : \"\"));\n\t\t\t}\n\t\t\to.push(oo.join(\"\"));\n\t\t}\n\t\treturn o.join(\"\\n\");\n\t}\n\n\treturn {\n\t\tto_workbook: prn_to_workbook,\n\t\tto_sheet: prn_to_sheet,\n\t\tfrom_sheet: sheet_to_prn\n\t};\n})();\n\n/* Excel defaults to SYLK but warns if data is not valid */\nfunction read_wb_ID(d, opts) {\n\tvar o = opts || {}, OLD_WTF = !!o.WTF; o.WTF = true;\n\ttry {\n\t\tvar out = SYLK.to_workbook(d, o);\n\t\to.WTF = OLD_WTF;\n\t\treturn out;\n\t} catch(e) {\n\t\to.WTF = OLD_WTF;\n\t\tif(!e.message.match(/SYLK bad record ID/) && OLD_WTF) throw e;\n\t\treturn PRN.to_workbook(d, opts);\n\t}\n}\n\nvar WK_ = /*#__PURE__*/(function() {\n\tfunction lotushopper(data, cb/*:RecordHopperCB*/, opts/*:any*/) {\n\t\tif(!data) return;\n\t\tprep_blob(data, data.l || 0);\n\t\tvar Enum = opts.Enum || WK1Enum;\n\t\twhile(data.l < data.length) {\n\t\t\tvar RT = data.read_shift(2);\n\t\t\tvar R = Enum[RT] || Enum[0xFFFF];\n\t\t\tvar length = data.read_shift(2);\n\t\t\tvar tgt = data.l + length;\n\t\t\tvar d = R.f && R.f(data, length, opts);\n\t\t\tdata.l = tgt;\n\t\t\tif(cb(d, R, RT)) return;\n\t\t}\n\t}\n\n\tfunction lotus_to_workbook(d/*:RawData*/, opts) {\n\t\tswitch(opts.type) {\n\t\t\tcase 'base64': return lotus_to_workbook_buf(s2a(Base64_decode(d)), opts);\n\t\t\tcase 'binary': return lotus_to_workbook_buf(s2a(d), opts);\n\t\t\tcase 'buffer':\n\t\t\tcase 'array': return lotus_to_workbook_buf(d, opts);\n\t\t}\n\t\tthrow \"Unsupported type \" + opts.type;\n\t}\n\n\tfunction lotus_to_workbook_buf(d, opts)/*:Workbook*/ {\n\t\tif(!d) return d;\n\t\tvar o = opts || {};\n\t\tif(DENSE != null && o.dense == null) o.dense = DENSE;\n\t\tvar s/*:Worksheet*/ = ({}/*:any*/), n = \"Sheet1\", next_n = \"\", sidx = 0;\n\t\tvar sheets = {}, snames = [], realnames = [], sdata = [];\n\t\tif(o.dense) sdata = s[\"!data\"] = [];\n\n\t\tvar refguess = {s: {r:0, c:0}, e: {r:0, c:0} };\n\t\tvar sheetRows = o.sheetRows || 0;\n\n\t\tif(d[4] == 0x51 && d[5] == 0x50 && d[6] == 0x57) return qpw_to_workbook_buf(d, opts);\n\t\tif(d[2] == 0x00) {\n\t\t\tif(d[3] == 0x08 || d[3] == 0x09) {\n\t\t\t\tif(d.length >= 16 && d[14] == 0x05 && d[15] === 0x6c) throw new Error(\"Unsupported Works 3 for Mac file\");\n\t\t\t}\n\t\t}\n\n\t\tif(d[2] == 0x02) {\n\t\t\to.Enum = WK1Enum;\n\t\t\tlotushopper(d, function(val, R, RT) { switch(RT) {\n\t\t\t\tcase 0x00: /* BOF */\n\t\t\t\t\to.vers = val;\n\t\t\t\t\tif(val >= 0x1000) o.qpro = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0xFF: /* BOF (works 3+) */\n\t\t\t\t\to.vers = val;\n\t\t\t\t\to.works = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x06: refguess = val; break; /* RANGE */\n\t\t\t\tcase 0xCC: if(val) next_n = val; break; /* SHEETNAMECS */\n\t\t\t\tcase 0xDE: next_n = val; break; /* SHEETNAMELP */\n\t\t\t\tcase 0x0F: /* LABEL */\n\t\t\t\tcase 0x33: /* STRING */\n\t\t\t\t\tif((!o.qpro && !o.works || RT == 0x33) && val[1].v.charCodeAt(0) < 0x30) val[1].v = val[1].v.slice(1);\n\t\t\t\t\tif(o.works || o.works2) val[1].v = val[1].v.replace(/\\r\\n/g, \"\\n\");\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 0x0D: /* INTEGER */\n\t\t\t\tcase 0x0E: /* NUMBER */\n\t\t\t\tcase 0x10: /* FORMULA */\n\t\t\t\t\t/* TODO: actual translation of the format code */\n\t\t\t\t\tif(RT == 0x0E && (val[2] & 0x70) == 0x70 && (val[2] & 0x0F) > 1 && (val[2] & 0x0F) < 15) {\n\t\t\t\t\t\tval[1].z = o.dateNF || table_fmt[14];\n\t\t\t\t\t\tif(o.cellDates) { val[1].t = 'd'; val[1].v = numdate(val[1].v); }\n\t\t\t\t\t}\n\n\t\t\t\t\tif(o.qpro) {\n\t\t\t\t\t\tif(val[3] > sidx) {\n\t\t\t\t\t\t\ts[\"!ref\"] = encode_range(refguess);\n\t\t\t\t\t\t\tsheets[n] = s;\n\t\t\t\t\t\t\tsnames.push(n);\n\t\t\t\t\t\t\ts = ({}/*:any*/); if(o.dense) sdata = s[\"!data\"] = [];\n\t\t\t\t\t\t\trefguess = {s: {r:0, c:0}, e: {r:0, c:0} };\n\t\t\t\t\t\t\tsidx = val[3]; n = next_n || \"Sheet\" + (sidx + 1); next_n = \"\";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tvar tmpcell = o.dense ? (sdata[val[0].r]||[])[val[0].c] : s[encode_cell(val[0])];\n\t\t\t\t\tif(tmpcell) {\n\t\t\t\t\t\ttmpcell.t = val[1].t; tmpcell.v = val[1].v;\n\t\t\t\t\t\tif(val[1].z != null) tmpcell.z = val[1].z;\n\t\t\t\t\t\tif(val[1].f != null) tmpcell.f = val[1].f;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tif(o.dense) {\n\t\t\t\t\t\tif(!sdata[val[0].r]) sdata[val[0].r] = [];\n\t\t\t\t\t\tsdata[val[0].r][val[0].c] = val[1];\n\t\t\t\t\t} else s[encode_cell(val[0])] = val[1];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x5405: o.works2 = true; break;\n\t\t\t\tdefault:\n\t\t\t}}, o);\n\t\t} else if(d[2] == 0x1A || d[2] == 0x0E) {\n\t\t\to.Enum = WK3Enum;\n\t\t\tif(d[2] == 0x0E) { o.qpro = true; d.l = 0; }\n\t\t\tlotushopper(d, function(val, R, RT) { switch(RT) {\n\t\t\t\tcase 0xCC: n = val; break; /* SHEETNAMECS */\n\t\t\t\tcase 0x16: /* LABEL16 */\n\t\t\t\t\tif(val[1].v.charCodeAt(0) < 0x30) val[1].v = val[1].v.slice(1);\n\t\t\t\t\t// TODO: R9 appears to encode control codes this way -- verify against other versions\n\t\t\t\t\tval[1].v = val[1].v.replace(/\\x0F./g, function($$) { return String.fromCharCode($$.charCodeAt(1) - 0x20); }).replace(/\\r\\n/g, \"\\n\");\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 0x17: /* NUMBER17 */\n\t\t\t\tcase 0x18: /* NUMBER18 */\n\t\t\t\tcase 0x19: /* FORMULA19 */\n\t\t\t\tcase 0x25: /* NUMBER25 */\n\t\t\t\tcase 0x27: /* NUMBER27 */\n\t\t\t\tcase 0x28: /* FORMULA28 */\n\t\t\t\t\tif(val[3] > sidx) {\n\t\t\t\t\t\ts[\"!ref\"] = encode_range(refguess);\n\t\t\t\t\t\tsheets[n] = s;\n\t\t\t\t\t\tsnames.push(n);\n\t\t\t\t\t\ts = ({}/*:any*/); if(o.dense) sdata = s[\"!data\"] = [];\n\t\t\t\t\t\trefguess = {s: {r:0, c:0}, e: {r:0, c:0} };\n\t\t\t\t\t\tsidx = val[3]; n = \"Sheet\" + (sidx + 1);\n\t\t\t\t\t}\n\t\t\t\t\tif(sheetRows > 0 && val[0].r >= sheetRows) break;\n\t\t\t\t\tif(o.dense) {\n\t\t\t\t\t\tif(!sdata[val[0].r]) sdata[val[0].r] = [];\n\t\t\t\t\t\tsdata[val[0].r][val[0].c] = val[1];\n\t\t\t\t\t} else s[encode_cell(val[0])] = val[1];\n\t\t\t\t\tif(refguess.e.c < val[0].c) refguess.e.c = val[0].c;\n\t\t\t\t\tif(refguess.e.r < val[0].r) refguess.e.r = val[0].r;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x1B: /* XFORMAT */\n\t\t\t\t\tif(val[0x36b0]) realnames[val[0x36b0][0]] = val[0x36b0][1];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x0601: /* SHEETINFOQP */\n\t\t\t\t\trealnames[val[0]] = val[1]; if(val[0] == sidx) n = val[1]; break;\n\t\t\t\tdefault: break;\n\t\t\t}}, o);\n\t\t} else throw new Error(\"Unrecognized LOTUS BOF \" + d[2]);\n\t\ts[\"!ref\"] = encode_range(refguess);\n\t\tsheets[next_n || n] = s;\n\t\tsnames.push(next_n || n);\n\t\tif(!realnames.length) return { SheetNames: snames, Sheets: sheets };\n\t\tvar osheets = {}, rnames = [];\n\t\t/* TODO: verify no collisions */\n\t\tfor(var i = 0; i < realnames.length; ++i) if(sheets[snames[i]]) {\n\t\t\trnames.push(realnames[i] || snames[i]);\n\t\t\tosheets[realnames[i]] = sheets[realnames[i]] || sheets[snames[i]];\n\t\t} else {\n\t\t\trnames.push(realnames[i]);\n\t\t\tosheets[realnames[i]] = ({ \"!ref\": \"A1\" });\n\t\t}\n\t\treturn { SheetNames: rnames, Sheets: osheets };\n\t}\n\n\tfunction sheet_to_wk1(ws/*:Worksheet*/, opts/*:WriteOpts*/) {\n\t\tvar o = opts || {};\n\t\tif(+o.codepage >= 0) set_cp(+o.codepage);\n\t\tif(o.type == \"string\") throw new Error(\"Cannot write WK1 to JS string\");\n\t\tvar ba = buf_array();\n\t\tvar range = safe_decode_range(ws[\"!ref\"]);\n\t\tvar dense = ws[\"!data\"] != null;\n\t\tvar cols = [];\n\n\t\twrite_biff_rec(ba, 0x00, write_BOF_WK1(0x0406));\n\t\twrite_biff_rec(ba, 0x06, write_RANGE(range));\n\t\tvar max_R = Math.min(range.e.r, 8191);\n\t\tfor(var C = range.s.c; C <= range.e.c; ++C) cols[C] = encode_col(C);\n\t\tfor(var R = range.s.r; R <= max_R; ++R) {\n\t\t\tvar rr = encode_row(R);\n\t\t\tfor(C = range.s.c; C <= range.e.c; ++C) {\n\t\t\t\tvar cell = dense ? (ws[\"!data\"][R]||[])[C] : ws[cols[C] + rr];\n\t\t\t\tif(!cell || cell.t == \"z\") continue;\n\t\t\t\t/* TODO: formula records */\n\t\t\t\tif(cell.t == \"n\") {\n\t\t\t\t\tif((cell.v|0)==cell.v && cell.v >= -32768 && cell.v <= 32767) write_biff_rec(ba, 0x0d, write_INTEGER(R, C, cell.v));\n\t\t\t\t\telse write_biff_rec(ba, 0x0e, write_NUMBER(R, C, cell.v));\n\t\t\t\t} else {\n\t\t\t\t\tvar str = format_cell(cell);\n\t\t\t\t\twrite_biff_rec(ba, 0x0F, write_LABEL(R, C, str.slice(0, 239)));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\twrite_biff_rec(ba, 0x01);\n\t\treturn ba.end();\n\t}\n\n\tfunction book_to_wk3(wb/*:Workbook*/, opts/*:WriteOpts*/) {\n\t\tvar o = opts || {};\n\t\tif(+o.codepage >= 0) set_cp(+o.codepage);\n\t\tif(o.type == \"string\") throw new Error(\"Cannot write WK3 to JS string\");\n\t\tvar ba = buf_array();\n\n\t\twrite_biff_rec(ba, 0x00, write_BOF_WK3(wb));\n\n\t\tfor(var i = 0, cnt = 0; i < wb.SheetNames.length; ++i) if((wb.Sheets[wb.SheetNames[i]] || {})[\"!ref\"]) write_biff_rec(ba, 0x1b, write_XFORMAT_SHEETNAME(wb.SheetNames[i], cnt++));\n\n\t\tvar wsidx = 0;\n\t\tfor(i = 0; i < wb.SheetNames.length; ++i) {\n\t\t\tvar ws = wb.Sheets[wb.SheetNames[i]];\n\t\t\tif(!ws || !ws[\"!ref\"]) continue;\n\t\t\tvar range = safe_decode_range(ws[\"!ref\"]);\n\t\t\tvar dense = ws[\"!data\"] != null;\n\t\t\tvar cols = [];\n\t\t\tvar max_R = Math.min(range.e.r, 8191);\n\t\t\tfor(var R = range.s.r; R <= max_R; ++R) {\n\t\t\t\tvar rr = encode_row(R);\n\t\t\t\tfor(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\t\t\tif(R === range.s.r) cols[C] = encode_col(C);\n\t\t\t\t\tvar ref = cols[C] + rr;\n\t\t\t\t\tvar cell = dense ? (ws[\"!data\"][R]||[])[C] : ws[ref];\n\t\t\t\t\tif(!cell || cell.t == \"z\") continue;\n\t\t\t\t\t/* TODO: FORMULA19 NUMBER18 records */\n\t\t\t\t\tif(cell.t == \"n\") {\n\t\t\t\t\t\twrite_biff_rec(ba, 0x17, write_NUMBER_17(R, C, wsidx, cell.v));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar str = format_cell(cell);\n\t\t\t\t\t\t/* TODO: max len? */\n\t\t\t\t\t\twrite_biff_rec(ba, 0x16, write_LABEL_16(R, C, wsidx, str.slice(0, 239)));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t++wsidx;\n\t\t}\n\n\t\twrite_biff_rec(ba, 0x01);\n\t\treturn ba.end();\n\t}\n\n\n\tfunction write_BOF_WK1(v/*:number*/) {\n\t\tvar out = new_buf(2);\n\t\tout.write_shift(2, v);\n\t\treturn out;\n\t}\n\n\tfunction write_BOF_WK3(wb/*:Workbook*/) {\n\t\tvar out = new_buf(26);\n\t\tout.write_shift(2, 0x1000);\n\t\tout.write_shift(2, 0x0004);\n\t\tout.write_shift(4, 0x0000);\n\t\tvar rows = 0, cols = 0, wscnt = 0;\n\t\tfor(var i = 0; i < wb.SheetNames.length; ++i) {\n\t\t\tvar name = wb.SheetNames[i];\n\t\t\tvar ws = wb.Sheets[name];\n\t\t\tif(!ws || !ws[\"!ref\"]) continue;\n\t\t\t++wscnt;\n\t\t\tvar range = decode_range(ws[\"!ref\"]);\n\t\t\tif(rows < range.e.r) rows = range.e.r;\n\t\t\tif(cols < range.e.c) cols = range.e.c;\n\t\t}\n\t\tif(rows > 8191) rows = 8191;\n\t\tout.write_shift(2, rows);\n\t\tout.write_shift(1, wscnt);\n\t\tout.write_shift(1, cols);\n\t\tout.write_shift(2, 0x00);\n\t\tout.write_shift(2, 0x00);\n\t\tout.write_shift(1, 0x01);\n\t\tout.write_shift(1, 0x02);\n\t\tout.write_shift(4, 0);\n\t\tout.write_shift(4, 0);\n\t\treturn out;\n\t}\n\n\tfunction parse_RANGE(blob, length, opts) {\n\t\tvar o = {s:{c:0,r:0},e:{c:0,r:0}};\n\t\tif(length == 8 && opts.qpro) {\n\t\t\to.s.c = blob.read_shift(1);\n\t\t\tblob.l++;\n\t\t\to.s.r = blob.read_shift(2);\n\t\t\to.e.c = blob.read_shift(1);\n\t\t\tblob.l++;\n\t\t\to.e.r = blob.read_shift(2);\n\t\t\treturn o;\n\t\t}\n\t\to.s.c = blob.read_shift(2);\n\t\to.s.r = blob.read_shift(2);\n\t\tif(length == 12 && opts.qpro) blob.l += 2;\n\t\to.e.c = blob.read_shift(2);\n\t\to.e.r = blob.read_shift(2);\n\t\tif(length == 12 && opts.qpro) blob.l += 2;\n\t\tif(o.s.c == 0xFFFF) o.s.c = o.e.c = o.s.r = o.e.r = 0;\n\t\treturn o;\n\t}\n\tfunction write_RANGE(range) {\n\t\tvar out = new_buf(8);\n\t\tout.write_shift(2, range.s.c);\n\t\tout.write_shift(2, range.s.r);\n\t\tout.write_shift(2, range.e.c);\n\t\tout.write_shift(2, range.e.r);\n\t\treturn out;\n\t}\n\n\tfunction parse_cell(blob, length, opts) {\n\t\tvar o = [{c:0,r:0}, {t:'n',v:0}, 0, 0];\n\t\tif(opts.qpro && opts.vers != 0x5120) {\n\t\t\to[0].c = blob.read_shift(1);\n\t\t\to[3] = blob.read_shift(1);\n\t\t\to[0].r = blob.read_shift(2);\n\t\t\tblob.l+=2;\n\t\t} else if(opts.works) { // TODO: verify with more complex works3-4 examples\n\t\t\to[0].c = blob.read_shift(2); o[0].r = blob.read_shift(2);\n\t\t\to[2] = blob.read_shift(2);\n\t\t} else {\n\t\t\to[2] = blob.read_shift(1);\n\t\t\to[0].c = blob.read_shift(2); o[0].r = blob.read_shift(2);\n\t\t}\n\t\treturn o;\n\t}\n\n\tfunction parse_LABEL(blob, length, opts) {\n\t\tvar tgt = blob.l + length;\n\t\tvar o = parse_cell(blob, length, opts);\n\t\to[1].t = 's';\n\t\tif(opts.vers == 0x5120) {\n\t\t\tblob.l++;\n\t\t\tvar len = blob.read_shift(1);\n\t\t\to[1].v = blob.read_shift(len, 'utf8');\n\t\t\treturn o;\n\t\t}\n\t\tif(opts.qpro) blob.l++;\n\t\to[1].v = blob.read_shift(tgt - blob.l, 'cstr');\n\t\treturn o;\n\t}\n\tfunction write_LABEL(R, C, s) {\n\t\t/* TODO: encoding */\n\t\tvar o = new_buf(7 + s.length);\n\t\to.write_shift(1, 0xFF);\n\t\to.write_shift(2, C);\n\t\to.write_shift(2, R);\n\t\to.write_shift(1, 0x27); // ??\n\t\tfor(var i = 0; i < o.length; ++i) {\n\t\t\tvar cc = s.charCodeAt(i);\n\t\t\to.write_shift(1, cc >= 0x80 ? 0x5F : cc);\n\t\t}\n\t\to.write_shift(1, 0);\n\t\treturn o;\n\t}\n\tfunction parse_STRING(blob, length, opts) {\n\t\tvar tgt = blob.l + length;\n\t\tvar o = parse_cell(blob, length, opts);\n\t\to[1].t = 's';\n\t\tif(opts.vers == 0x5120) {\n\t\t\tvar len = blob.read_shift(1);\n\t\t\to[1].v = blob.read_shift(len, 'utf8');\n\t\t\treturn o;\n\t\t}\n\t\to[1].v = blob.read_shift(tgt - blob.l, 'cstr');\n\t\treturn o;\n\t}\n\n\tfunction parse_INTEGER(blob, length, opts) {\n\t\tvar o = parse_cell(blob, length, opts);\n\t\to[1].v = blob.read_shift(2, 'i');\n\t\treturn o;\n\t}\n\tfunction write_INTEGER(R, C, v) {\n\t\tvar o = new_buf(7);\n\t\to.write_shift(1, 0xFF);\n\t\to.write_shift(2, C);\n\t\to.write_shift(2, R);\n\t\to.write_shift(2, v, 'i');\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER(blob, length, opts) {\n\t\tvar o = parse_cell(blob, length, opts);\n\t\to[1].v = blob.read_shift(8, 'f');\n\t\treturn o;\n\t}\n\tfunction write_NUMBER(R, C, v) {\n\t\tvar o = new_buf(13);\n\t\to.write_shift(1, 0xFF);\n\t\to.write_shift(2, C);\n\t\to.write_shift(2, R);\n\t\to.write_shift(8, v, 'f');\n\t\treturn o;\n\t}\n\n\tfunction parse_FORMULA(blob, length, opts) {\n\t\tvar tgt = blob.l + length;\n\t\tvar o = parse_cell(blob, length, opts);\n\t\t/* TODO: formula */\n\t\to[1].v = blob.read_shift(8, 'f');\n\t\tif(opts.qpro) blob.l = tgt;\n\t\telse {\n\t\t\tvar flen = blob.read_shift(2);\n\t\t\twk1_fmla_to_csf(blob.slice(blob.l, blob.l + flen), o);\n\t\t\tblob.l += flen;\n\t\t}\n\t\treturn o;\n\t}\n\n\tfunction wk1_parse_rc(B, V, col) {\n\t\tvar rel = V & 0x8000;\n\t\tV &= ~0x8000;\n\t\tV = (rel ? B : 0) + ((V >= 0x2000) ? V - 0x4000 : V);\n\t\treturn (rel ? \"\" : \"$\") + (col ? encode_col(V) : encode_row(V));\n\t}\n\t/* var oprec = [\n\t\t8, 8, 8, 8, 8, 8, 8, 8, 6, 4, 4, 5, 5, 7, 3, 3,\n\t\t3, 3, 3, 3, 1, 1, 2, 6, 8, 8, 8, 8, 8, 8, 8, 8\n\t]; */\n\t/* TODO: flesh out */\n\tvar FuncTab = {\n\t\t0x1F: [\"NA\", 0],\n\t\t// 0x20: [\"ERR\", 0],\n\t\t0x21: [\"ABS\", 1],\n\t\t0x22: [\"TRUNC\", 1],\n\t\t0x23: [\"SQRT\", 1],\n\t\t0x24: [\"LOG\", 1],\n\t\t0x25: [\"LN\", 1],\n\t\t0x26: [\"PI\", 0],\n\t\t0x27: [\"SIN\", 1],\n\t\t0x28: [\"COS\", 1],\n\t\t0x29: [\"TAN\", 1],\n\t\t0x2A: [\"ATAN2\", 2],\n\t\t0x2B: [\"ATAN\", 1],\n\t\t0x2C: [\"ASIN\", 1],\n\t\t0x2D: [\"ACOS\", 1],\n\t\t0x2E: [\"EXP\", 1],\n\t\t0x2F: [\"MOD\", 2],\n\t\t// 0x30\n\t\t0x31: [\"ISNA\", 1],\n\t\t0x32: [\"ISERR\", 1],\n\t\t0x33: [\"FALSE\", 0],\n\t\t0x34: [\"TRUE\", 0],\n\t\t0x35: [\"RAND\", 0],\n\t\t// 0x36 DATE\n\t\t// 0x37 NOW\n\t\t// 0x38 PMT\n\t\t// 0x39 PV\n\t\t// 0x3A FV\n\t\t// 0x3B IF\n\t\t// 0x3C DAY\n\t\t// 0x3D MONTH\n\t\t// 0x3E YEAR\n\t\t0x3F: [\"ROUND\", 2],\n\t\t// 0x40 TIME\n\t\t// 0x41 HOUR\n\t\t// 0x42 MINUTE\n\t\t// 0x43 SECOND\n\t\t0x44: [\"ISNUMBER\", 1],\n\t\t0x45: [\"ISTEXT\", 1],\n\t\t0x46: [\"LEN\", 1],\n\t\t0x47: [\"VALUE\", 1],\n\t\t// 0x48: [\"FIXED\", ?? 1],\n\t\t0x49: [\"MID\", 3],\n\t\t0x4A: [\"CHAR\", 1],\n\t\t// 0x4B\n\t\t// 0x4C FIND\n\t\t// 0x4D DATEVALUE\n\t\t// 0x4E TIMEVALUE\n\t\t// 0x4F CELL\n\t\t0x50: [\"SUM\", 69],\n\t\t0x51: [\"AVERAGEA\", 69],\n\t\t0x52: [\"COUNTA\", 69],\n\t\t0x53: [\"MINA\", 69],\n\t\t0x54: [\"MAXA\", 69],\n\t\t// 0x55 VLOOKUP\n\t\t// 0x56 NPV\n\t\t// 0x57 VAR\n\t\t// 0x58 STD\n\t\t// 0x59 IRR\n\t\t// 0x5A HLOOKUP\n\t\t// 0x5B DSUM\n\t\t// 0x5C DAVERAGE\n\t\t// 0x5D DCOUNTA\n\t\t// 0x5E DMIN\n\t\t// 0x5F DMAX\n\t\t// 0x60 DVARP\n\t\t// 0x61 DSTDEVP\n\t\t// 0x62 INDEX\n\t\t// 0x63 COLS\n\t\t// 0x64 ROWS\n\t\t// 0x65 REPEAT\n\t\t0x66: [\"UPPER\", 1],\n\t\t0x67: [\"LOWER\", 1],\n\t\t// 0x68 LEFT\n\t\t// 0x69 RIGHT\n\t\t// 0x6A REPLACE\n\t\t0x6B: [\"PROPER\", 1],\n\t\t// 0x6C CELL\n\t\t0x6D: [\"TRIM\", 1],\n\t\t// 0x6E CLEAN\n\t\t0x6F: [\"T\", 1]\n\t\t// 0x70 V\n\t};\n\tvar BinOpTab = [\n\t\t \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", // eslint-disable-line no-mixed-spaces-and-tabs\n\t\t \"\", \"+\", \"-\", \"*\", \"/\", \"^\", \"=\", \"<>\", // eslint-disable-line no-mixed-spaces-and-tabs\n\t\t\"<=\", \">=\", \"<\", \">\", \"\", \"\", \"\", \"\", // eslint-disable-line no-mixed-spaces-and-tabs\n\t\t \"&\", \"\", \"\", \"\", \"\", \"\", \"\", \"\" // eslint-disable-line no-mixed-spaces-and-tabs\n\t];\n\n\tfunction wk1_fmla_to_csf(blob, o) {\n\t\tprep_blob(blob, 0);\n\t\tvar out = [], argc = 0, R = \"\", C = \"\", argL = \"\", argR = \"\";\n\t\twhile(blob.l < blob.length) {\n\t\t\tvar cc = blob[blob.l++];\n\t\t\tswitch(cc) {\n\t\t\t\tcase 0x00: out.push(blob.read_shift(8, 'f')); break;\n\t\t\t\tcase 0x01: {\n\t\t\t\t\tC = wk1_parse_rc(o[0].c, blob.read_shift(2), true);\n\t\t\t\t\tR = wk1_parse_rc(o[0].r, blob.read_shift(2), false);\n\t\t\t\t\tout.push(C + R);\n\t\t\t\t} break;\n\t\t\t\tcase 0x02: {\n\t\t\t\t\tvar c = wk1_parse_rc(o[0].c, blob.read_shift(2), true);\n\t\t\t\t\tvar r = wk1_parse_rc(o[0].r, blob.read_shift(2), false);\n\t\t\t\t\tC = wk1_parse_rc(o[0].c, blob.read_shift(2), true);\n\t\t\t\t\tR = wk1_parse_rc(o[0].r, blob.read_shift(2), false);\n\t\t\t\t\tout.push(c + r + \":\" + C + R);\n\t\t\t\t} break;\n\t\t\t\tcase 0x03:\n\t\t\t\t\tif(blob.l < blob.length) { console.error(\"WK1 premature formula end\"); return; }\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x04: out.push(\"(\" + out.pop() + \")\"); break;\n\t\t\t\tcase 0x05: out.push(blob.read_shift(2)); break;\n\t\t\t\tcase 0x06: {\n\t\t\t\t\t/* TODO: text encoding */\n\t\t\t\t\tvar Z = \"\"; while((cc = blob[blob.l++])) Z += String.fromCharCode(cc);\n\t\t\t\t\tout.push('\"' + Z.replace(/\"/g, '\"\"') + '\"');\n\t\t\t\t} break;\n\n\t\t\t\tcase 0x08: out.push(\"-\" + out.pop()); break;\n\t\t\t\tcase 0x17: out.push(\"+\" + out.pop()); break;\n\t\t\t\tcase 0x16: out.push(\"NOT(\" + out.pop() + \")\"); break;\n\n\t\t\t\tcase 0x14: case 0x15: {\n\t\t\t\t\targR = out.pop(); argL = out.pop();\n\t\t\t\t\tout.push([\"AND\", \"OR\"][cc - 0x14] + \"(\" + argL + \",\" + argR + \")\");\n\t\t\t\t} break;\n\n\t\t\t\tdefault:\n\t\t\t\t\tif(cc < 0x20 && BinOpTab[cc]) {\n\t\t\t\t\t\targR = out.pop(); argL = out.pop();\n\t\t\t\t\t\tout.push(argL + BinOpTab[cc] + argR);\n\t\t\t\t\t} else if(FuncTab[cc]) {\n\t\t\t\t\t\targc = FuncTab[cc][1];\n\t\t\t\t\t\tif(argc == 69) argc = blob[blob.l++];\n\t\t\t\t\t\tif(argc > out.length) { console.error(\"WK1 bad formula parse 0x\" + cc.toString(16) + \":|\" + out.join(\"|\") + \"|\"); return; }\n\t\t\t\t\t\tvar args = out.slice(-argc);\n\t\t\t\t\t\tout.length -= argc;\n\t\t\t\t\t\tout.push(FuncTab[cc][0] + \"(\" + args.join(\",\") + \")\");\n\t\t\t\t\t}\n\t\t\t\t\telse if(cc <= 0x07) return console.error(\"WK1 invalid opcode \" + cc.toString(16));\n\t\t\t\t\telse if(cc <= 0x18) return console.error(\"WK1 unsupported op \" + cc.toString(16));\n\t\t\t\t\telse if(cc <= 0x1E) return console.error(\"WK1 invalid opcode \" + cc.toString(16));\n\t\t\t\t\telse if(cc <= 0x73) return console.error(\"WK1 unsupported function opcode \" + cc.toString(16));\n\t\t\t\t\t// possible future functions ??\n\t\t\t\t\telse return console.error(\"WK1 unrecognized opcode \" + cc.toString(16));\n\t\t\t}\n\t\t}\n\t\tif(out.length == 1) o[1].f = \"\" + out[0];\n\t\telse console.error(\"WK1 bad formula parse |\" + out.join(\"|\") + \"|\");\n\t}\n\n\n\tfunction parse_cell_3(blob/*::, length*/) {\n\t\tvar o = [{c:0,r:0}, {t:'n',v:0}, 0];\n\t\to[0].r = blob.read_shift(2); o[3] = blob[blob.l++]; o[0].c = blob[blob.l++];\n\t\treturn o;\n\t}\n\n\tfunction parse_LABEL_16(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\to[1].t = 's';\n\t\to[1].v = blob.read_shift(length - 4, 'cstr');\n\t\treturn o;\n\t}\n\tfunction write_LABEL_16(R, C, wsidx, s) {\n\t\t/* TODO: encoding */\n\t\tvar o = new_buf(6 + s.length);\n\t\to.write_shift(2, R);\n\t\to.write_shift(1, wsidx);\n\t\to.write_shift(1, C);\n\t\to.write_shift(1, 0x27);\n\t\tfor(var i = 0; i < s.length; ++i) {\n\t\t\tvar cc = s.charCodeAt(i);\n\t\t\to.write_shift(1, cc >= 0x80 ? 0x5F : cc);\n\t\t}\n\t\to.write_shift(1, 0);\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER_18(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\to[1].v = blob.read_shift(2);\n\t\tvar v = o[1].v >> 1;\n\t\tif(o[1].v & 0x1) {\n\t\t\tswitch(v & 0x07) {\n\t\t\t\tcase 0: v = (v >> 3) * 5000; break;\n\t\t\t\tcase 1: v = (v >> 3) * 500; break;\n\t\t\t\tcase 2: v = (v >> 3) / 20; break;\n\t\t\t\tcase 3: v = (v >> 3) / 200; break;\n\t\t\t\tcase 4: v = (v >> 3) / 2000; break;\n\t\t\t\tcase 5: v = (v >> 3) / 20000; break;\n\t\t\t\tcase 6: v = (v >> 3) / 16; break;\n\t\t\t\tcase 7: v = (v >> 3) / 64; break;\n\t\t\t}\n\t\t}\n\t\to[1].v = v;\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER_17(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\tvar v1 = blob.read_shift(4);\n\t\tvar v2 = blob.read_shift(4);\n\t\tvar e = blob.read_shift(2);\n\t\tif(e == 0xFFFF) {\n\t\t\tif(v1 === 0 && v2 === 0xC0000000) { o[1].t = \"e\"; o[1].v = 0x0F; } // ERR -> #VALUE!\n\t\t\telse if(v1 === 0 && v2 === 0xD0000000) { o[1].t = \"e\"; o[1].v = 0x2A; } // NA -> #N/A\n\t\t\telse o[1].v = 0;\n\t\t\treturn o;\n\t\t}\n\t\tvar s = e & 0x8000; e = (e&0x7FFF) - 16446;\n\t\to[1].v = (1 - s*2) * (v2 * Math.pow(2, e+32) + v1 * Math.pow(2, e));\n\t\treturn o;\n\t}\n\tfunction write_NUMBER_17(R, C, wsidx, v) {\n\t\tvar o = new_buf(14);\n\t\to.write_shift(2, R);\n\t\to.write_shift(1, wsidx);\n\t\to.write_shift(1, C);\n\t\tif(v == 0) {\n\t\t\to.write_shift(4, 0);\n\t\t\to.write_shift(4, 0);\n\t\t\to.write_shift(2, 0xFFFF);\n\t\t\treturn o;\n\t\t}\n\t\tvar s = 0, e = 0, v1 = 0, v2 = 0;\n\t\tif(v < 0) { s = 1; v = -v; }\n\t\te = Math.log2(v) | 0;\n\t\tv /= Math.pow(2, e-31);\n\t\tv2 = (v)>>>0;\n\t\tif((v2&0x80000000) == 0) { v/=2; ++e; v2 = v >>> 0; }\n\t\tv -= v2;\n\t\tv2 |= 0x80000000;\n\t\tv2 >>>= 0;\n\t\tv *= Math.pow(2, 32);\n\t\tv1 = v>>>0;\n\t\to.write_shift(4, v1);\n\t\to.write_shift(4, v2);\n\t\te += 0x3FFF + (s ? 0x8000 : 0);\n\t\to.write_shift(2, e);\n\t\treturn o;\n\t}\n\n\tfunction parse_FORMULA_19(blob, length) {\n\t\tvar o = parse_NUMBER_17(blob, 14);\n\t\tblob.l += length - 14; /* TODO: WK3 formula */\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER_25(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\tvar v1 = blob.read_shift(4);\n\t\to[1].v = v1 >> 6;\n\t\treturn o;\n\t}\n\n\tfunction parse_NUMBER_27(blob, length) {\n\t\tvar o = parse_cell_3(blob, length);\n\t\tvar v1 = blob.read_shift(8,'f');\n\t\to[1].v = v1;\n\t\treturn o;\n\t}\n\n\tfunction parse_FORMULA_28(blob, length) {\n\t\tvar o = parse_NUMBER_27(blob, 12);\n\t\tblob.l += length - 12; /* TODO: formula */\n\t\treturn o;\n\t}\n\n\tfunction parse_SHEETNAMECS(blob, length) {\n\t\treturn blob[blob.l + length - 1] == 0 ? blob.read_shift(length, 'cstr') : \"\";\n\t}\n\n\tfunction parse_SHEETNAMELP(blob, length) {\n\t\tvar len = blob[blob.l++];\n\t\tif(len > length - 1) len = length - 1;\n\t\tvar o = \"\"; while(o.length < len) o += String.fromCharCode(blob[blob.l++]);\n\t\treturn o;\n\t}\n\n\tfunction parse_SHEETINFOQP(blob, length, opts) {\n\t\tif(!opts.qpro || length < 21) return;\n\t\tvar id = blob.read_shift(1);\n\t\tblob.l += 17;\n\t\tblob.l += 1; //var len = blob.read_shift(1);\n\t\tblob.l += 2;\n\t\tvar nm = blob.read_shift(length - 21, 'cstr');\n\t\treturn [id, nm];\n\t}\n\n\tfunction parse_XFORMAT(blob, length) {\n\t\tvar o = {}, tgt = blob.l + length;\n\t\twhile(blob.l < tgt) {\n\t\t\tvar dt = blob.read_shift(2);\n\t\t\tif(dt == 0x36b0) {\n\t\t\t\to[dt] = [0, \"\"];\n\t\t\t\to[dt][0] = blob.read_shift(2);\n\t\t\t\twhile(blob[blob.l]) { o[dt][1] += String.fromCharCode(blob[blob.l]); blob.l++; } blob.l++;\n\t\t\t}\n\t\t\t// TODO: 0x3a99 ??\n\t\t}\n\t\treturn o;\n\t}\n\tfunction write_XFORMAT_SHEETNAME(name, wsidx) {\n\t\tvar out = new_buf(5 + name.length);\n\t\tout.write_shift(2, 0x36b0);\n\t\tout.write_shift(2, wsidx);\n\t\tfor(var i = 0; i < name.length; ++i) {\n\t\t\tvar cc = name.charCodeAt(i);\n\t\t\tout[out.l++] = cc > 0x7F ? 0x5F : cc;\n\t\t}\n\t\tout[out.l++] = 0;\n\t\treturn out;\n\t}\n\n\tvar WK1Enum = {\n\t\t/*::[*/0x0000/*::]*/: { n:\"BOF\", f:parseuint16 },\n\t\t/*::[*/0x0001/*::]*/: { n:\"EOF\" },\n\t\t/*::[*/0x0002/*::]*/: { n:\"CALCMODE\" },\n\t\t/*::[*/0x0003/*::]*/: { n:\"CALCORDER\" },\n\t\t/*::[*/0x0004/*::]*/: { n:\"SPLIT\" },\n\t\t/*::[*/0x0005/*::]*/: { n:\"SYNC\" },\n\t\t/*::[*/0x0006/*::]*/: { n:\"RANGE\", f:parse_RANGE },\n\t\t/*::[*/0x0007/*::]*/: { n:\"WINDOW1\" },\n\t\t/*::[*/0x0008/*::]*/: { n:\"COLW1\" },\n\t\t/*::[*/0x0009/*::]*/: { n:\"WINTWO\" },\n\t\t/*::[*/0x000A/*::]*/: { n:\"COLW2\" },\n\t\t/*::[*/0x000B/*::]*/: { n:\"NAME\" },\n\t\t/*::[*/0x000C/*::]*/: { n:\"BLANK\" },\n\t\t/*::[*/0x000D/*::]*/: { n:\"INTEGER\", f:parse_INTEGER },\n\t\t/*::[*/0x000E/*::]*/: { n:\"NUMBER\", f:parse_NUMBER },\n\t\t/*::[*/0x000F/*::]*/: { n:\"LABEL\", f:parse_LABEL },\n\t\t/*::[*/0x0010/*::]*/: { n:\"FORMULA\", f:parse_FORMULA },\n\t\t/*::[*/0x0018/*::]*/: { n:\"TABLE\" },\n\t\t/*::[*/0x0019/*::]*/: { n:\"ORANGE\" },\n\t\t/*::[*/0x001A/*::]*/: { n:\"PRANGE\" },\n\t\t/*::[*/0x001B/*::]*/: { n:\"SRANGE\" },\n\t\t/*::[*/0x001C/*::]*/: { n:\"FRANGE\" },\n\t\t/*::[*/0x001D/*::]*/: { n:\"KRANGE1\" },\n\t\t/*::[*/0x0020/*::]*/: { n:\"HRANGE\" },\n\t\t/*::[*/0x0023/*::]*/: { n:\"KRANGE2\" },\n\t\t/*::[*/0x0024/*::]*/: { n:\"PROTEC\" },\n\t\t/*::[*/0x0025/*::]*/: { n:\"FOOTER\" },\n\t\t/*::[*/0x0026/*::]*/: { n:\"HEADER\" },\n\t\t/*::[*/0x0027/*::]*/: { n:\"SETUP\" },\n\t\t/*::[*/0x0028/*::]*/: { n:\"MARGINS\" },\n\t\t/*::[*/0x0029/*::]*/: { n:\"LABELFMT\" },\n\t\t/*::[*/0x002A/*::]*/: { n:\"TITLES\" },\n\t\t/*::[*/0x002B/*::]*/: { n:\"SHEETJS\" },\n\t\t/*::[*/0x002D/*::]*/: { n:\"GRAPH\" },\n\t\t/*::[*/0x002E/*::]*/: { n:\"NGRAPH\" },\n\t\t/*::[*/0x002F/*::]*/: { n:\"CALCCOUNT\" },\n\t\t/*::[*/0x0030/*::]*/: { n:\"UNFORMATTED\" },\n\t\t/*::[*/0x0031/*::]*/: { n:\"CURSORW12\" },\n\t\t/*::[*/0x0032/*::]*/: { n:\"WINDOW\" },\n\t\t/*::[*/0x0033/*::]*/: { n:\"STRING\", f:parse_STRING },\n\t\t/*::[*/0x0037/*::]*/: { n:\"PASSWORD\" },\n\t\t/*::[*/0x0038/*::]*/: { n:\"LOCKED\" },\n\t\t/*::[*/0x003C/*::]*/: { n:\"QUERY\" },\n\t\t/*::[*/0x003D/*::]*/: { n:\"QUERYNAME\" },\n\t\t/*::[*/0x003E/*::]*/: { n:\"PRINT\" },\n\t\t/*::[*/0x003F/*::]*/: { n:\"PRINTNAME\" },\n\t\t/*::[*/0x0040/*::]*/: { n:\"GRAPH2\" },\n\t\t/*::[*/0x0041/*::]*/: { n:\"GRAPHNAME\" },\n\t\t/*::[*/0x0042/*::]*/: { n:\"ZOOM\" },\n\t\t/*::[*/0x0043/*::]*/: { n:\"SYMSPLIT\" },\n\t\t/*::[*/0x0044/*::]*/: { n:\"NSROWS\" },\n\t\t/*::[*/0x0045/*::]*/: { n:\"NSCOLS\" },\n\t\t/*::[*/0x0046/*::]*/: { n:\"RULER\" },\n\t\t/*::[*/0x0047/*::]*/: { n:\"NNAME\" },\n\t\t/*::[*/0x0048/*::]*/: { n:\"ACOMM\" },\n\t\t/*::[*/0x0049/*::]*/: { n:\"AMACRO\" },\n\t\t/*::[*/0x004A/*::]*/: { n:\"PARSE\" },\n\t\t/*::[*/0x0066/*::]*/: { n:\"PRANGES??\" },\n\t\t/*::[*/0x0067/*::]*/: { n:\"RRANGES??\" },\n\t\t/*::[*/0x0068/*::]*/: { n:\"FNAME??\" },\n\t\t/*::[*/0x0069/*::]*/: { n:\"MRANGES??\" },\n\t\t/*::[*/0x00CC/*::]*/: { n:\"SHEETNAMECS\", f:parse_SHEETNAMECS },\n\t\t/*::[*/0x00DE/*::]*/: { n:\"SHEETNAMELP\", f:parse_SHEETNAMELP },\n\t\t/*::[*/0x00FF/*::]*/: { n:\"BOF\", f:parseuint16 },\n\t\t/*::[*/0xFFFF/*::]*/: { n:\"\" }\n\t};\n\n\tvar WK3Enum = {\n\t\t/*::[*/0x0000/*::]*/: { n:\"BOF\" },\n\t\t/*::[*/0x0001/*::]*/: { n:\"EOF\" },\n\t\t/*::[*/0x0002/*::]*/: { n:\"PASSWORD\" },\n\t\t/*::[*/0x0003/*::]*/: { n:\"CALCSET\" },\n\t\t/*::[*/0x0004/*::]*/: { n:\"WINDOWSET\" },\n\t\t/*::[*/0x0005/*::]*/: { n:\"SHEETCELLPTR\" },\n\t\t/*::[*/0x0006/*::]*/: { n:\"SHEETLAYOUT\" },\n\t\t/*::[*/0x0007/*::]*/: { n:\"COLUMNWIDTH\" },\n\t\t/*::[*/0x0008/*::]*/: { n:\"HIDDENCOLUMN\" },\n\t\t/*::[*/0x0009/*::]*/: { n:\"USERRANGE\" },\n\t\t/*::[*/0x000A/*::]*/: { n:\"SYSTEMRANGE\" },\n\t\t/*::[*/0x000B/*::]*/: { n:\"ZEROFORCE\" },\n\t\t/*::[*/0x000C/*::]*/: { n:\"SORTKEYDIR\" },\n\t\t/*::[*/0x000D/*::]*/: { n:\"FILESEAL\" },\n\t\t/*::[*/0x000E/*::]*/: { n:\"DATAFILLNUMS\" },\n\t\t/*::[*/0x000F/*::]*/: { n:\"PRINTMAIN\" },\n\t\t/*::[*/0x0010/*::]*/: { n:\"PRINTSTRING\" },\n\t\t/*::[*/0x0011/*::]*/: { n:\"GRAPHMAIN\" },\n\t\t/*::[*/0x0012/*::]*/: { n:\"GRAPHSTRING\" },\n\t\t/*::[*/0x0013/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0014/*::]*/: { n:\"ERRCELL\" },\n\t\t/*::[*/0x0015/*::]*/: { n:\"NACELL\" },\n\t\t/*::[*/0x0016/*::]*/: { n:\"LABEL16\", f:parse_LABEL_16},\n\t\t/*::[*/0x0017/*::]*/: { n:\"NUMBER17\", f:parse_NUMBER_17 },\n\t\t/*::[*/0x0018/*::]*/: { n:\"NUMBER18\", f:parse_NUMBER_18 },\n\t\t/*::[*/0x0019/*::]*/: { n:\"FORMULA19\", f:parse_FORMULA_19},\n\t\t/*::[*/0x001A/*::]*/: { n:\"FORMULA1A\" },\n\t\t/*::[*/0x001B/*::]*/: { n:\"XFORMAT\", f:parse_XFORMAT },\n\t\t/*::[*/0x001C/*::]*/: { n:\"DTLABELMISC\" },\n\t\t/*::[*/0x001D/*::]*/: { n:\"DTLABELCELL\" },\n\t\t/*::[*/0x001E/*::]*/: { n:\"GRAPHWINDOW\" },\n\t\t/*::[*/0x001F/*::]*/: { n:\"CPA\" },\n\t\t/*::[*/0x0020/*::]*/: { n:\"LPLAUTO\" },\n\t\t/*::[*/0x0021/*::]*/: { n:\"QUERY\" },\n\t\t/*::[*/0x0022/*::]*/: { n:\"HIDDENSHEET\" },\n\t\t/*::[*/0x0023/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0025/*::]*/: { n:\"NUMBER25\", f:parse_NUMBER_25 },\n\t\t/*::[*/0x0026/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0027/*::]*/: { n:\"NUMBER27\", f:parse_NUMBER_27 },\n\t\t/*::[*/0x0028/*::]*/: { n:\"FORMULA28\", f:parse_FORMULA_28 },\n\t\t/*::[*/0x008E/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0093/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0096/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0097/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0098/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0099/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x009A/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x009B/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x009C/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00A3/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00AE/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00AF/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00B0/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00B1/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00B8/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00B9/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00BA/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00BB/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00BC/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00C3/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00C9/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00CC/*::]*/: { n:\"SHEETNAMECS\", f:parse_SHEETNAMECS },\n\t\t/*::[*/0x00CD/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00CE/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00CF/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x00D0/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0100/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0103/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0104/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0105/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0106/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0107/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0109/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x010A/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x010B/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x010C/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x010E/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x010F/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0180/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0185/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0186/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0189/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x018C/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0200/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0202/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0201/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0204/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0205/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0280/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0281/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0282/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0283/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0284/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0285/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0286/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0287/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0288/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0292/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0293/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0294/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0295/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0296/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0299/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x029A/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0300/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0304/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0601/*::]*/: { n:\"SHEETINFOQP\", f:parse_SHEETINFOQP },\n\t\t/*::[*/0x0640/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0642/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0701/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0702/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0703/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0704/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0780/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0800/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0801/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0804/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x0A80/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x2AF6/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x3231/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x6E49/*::]*/: { n:\"??\" },\n\t\t/*::[*/0x6F44/*::]*/: { n:\"??\" },\n\t\t/*::[*/0xFFFF/*::]*/: { n:\"\" }\n\t};\n\n\t/* QPW uses a different set of record types */\n\tfunction qpw_to_workbook_buf(d, opts)/*:Workbook*/ {\n\t\tprep_blob(d, 0);\n\t\tvar o = opts || {};\n\t\tif(DENSE != null && o.dense == null) o.dense = DENSE;\n\t\tvar s/*:Worksheet*/ = ({}/*:any*/); if(o.dense) s[\"!data\"] = [];\n\t\tvar SST = [], sname = \"\", formulae = [];\n\t\tvar range = {s:{r:-1,c:-1}, e:{r:-1,c:-1}};\n\t\tvar cnt = 0, type = 0, C = 0, R = 0;\n\t\tvar wb = { SheetNames: [], Sheets: {} };\n\t\touter: while(d.l < d.length) {\n\t\t\tvar RT = d.read_shift(2), length = d.read_shift(2);\n\t\t\tvar p = d.slice(d.l, d.l + length);\n\t\t\tprep_blob(p, 0);\n\t\t\tswitch(RT) {\n\t\t\t\tcase 0x01: /* BOF */\n\t\t\t\t\tif(p.read_shift(4) != 0x39575051) throw \"Bad QPW9 BOF!\";\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x02: /* EOF */ break outer;\n\n\t\t\t\t/* TODO: The behavior here should be consistent with Numbers: QP Notebook ~ .TN.SheetArchive, QP Sheet ~ .TST.TableModelArchive */\n\t\t\t\tcase 0x0401: /* BON */ break;\n\t\t\t\tcase 0x0402: /* EON */ /* TODO: backfill missing sheets based on BON cnt */ break;\n\n\t\t\t\tcase 0x0407: { /* SST */\n\t\t\t\t\tp.l += 12;\n\t\t\t\t\twhile(p.l < p.length) {\n\t\t\t\t\t\tcnt = p.read_shift(2);\n\t\t\t\t\t\ttype = p.read_shift(1);\n\t\t\t\t\t\tSST.push(p.read_shift(cnt, 'cstr'));\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x0408: { /* FORMULAE */\n\t\t\t\t\t//p.l += 12;\n\t\t\t\t\t//while(p.l < p.length) {\n\t\t\t\t\t//\tcnt = p.read_shift(2);\n\t\t\t\t\t//\tformulae.push(p.slice(p.l, p.l + cnt + 1)); p.l += cnt + 1;\n\t\t\t\t\t//}\n\t\t\t\t} break;\n\n\t\t\t\tcase 0x0601: { /* BOS */\n\t\t\t\t\tvar sidx = p.read_shift(2);\n\t\t\t\t\ts = ({}/*:any*/); if(o.dense) s[\"!data\"] = [];\n\t\t\t\t\trange.s.c = p.read_shift(2);\n\t\t\t\t\trange.e.c = p.read_shift(2);\n\t\t\t\t\trange.s.r = p.read_shift(4);\n\t\t\t\t\trange.e.r = p.read_shift(4);\n\t\t\t\t\tp.l += 4;\n\t\t\t\t\tif(p.l + 2 < p.length) {\n\t\t\t\t\t\tcnt = p.read_shift(2);\n\t\t\t\t\t\ttype = p.read_shift(1);\n\t\t\t\t\t\tsname = cnt == 0 ? \"\" : p.read_shift(cnt, 'cstr');\n\t\t\t\t\t}\n\t\t\t\t\tif(!sname) sname = encode_col(sidx);\n\t\t\t\t\t/* TODO: backfill empty sheets */\n\t\t\t\t} break;\n\t\t\t\tcase 0x0602: { /* EOS */\n\t\t\t\t\t/* NOTE: QP valid range A1:IV1000000 */\n\t\t\t\t\tif(range.s.c > 0xFF || range.s.r > 999999) break;\n\t\t\t\t\tif(range.e.c < range.s.c) range.e.c = range.s.c;\n\t\t\t\t\tif(range.e.r < range.s.r) range.e.r = range.s.r;\n\t\t\t\t\ts[\"!ref\"] = encode_range(range);\n\t\t\t\t\tbook_append_sheet(wb, s, sname); // TODO: a barrel roll\n\t\t\t\t} break;\n\n\t\t\t\tcase 0x0A01: { /* COL (like XLS Row, modulo the layout transposition) */\n\t\t\t\t\tC = p.read_shift(2);\n\t\t\t\t\tif(range.e.c < C) range.e.c = C;\n\t\t\t\t\tif(range.s.c > C) range.s.c = C;\n\t\t\t\t\tR = p.read_shift(4);\n\t\t\t\t\tif(range.s.r > R) range.s.r = R;\n\t\t\t\t\tR = p.read_shift(4);\n\t\t\t\t\tif(range.e.r < R) range.e.r = R;\n\t\t\t\t} break;\n\n\t\t\t\tcase 0x0C01: { /* MulCells (like XLS MulRK, but takes advantage of common column data patterns) */\n\t\t\t\t\tR = p.read_shift(4), cnt = p.read_shift(4);\n\t\t\t\t\tif(range.s.r > R) range.s.r = R;\n\t\t\t\t\tif(range.e.r < R + cnt - 1) range.e.r = R + cnt - 1;\n\t\t\t\t\tvar CC = encode_col(C);\n\t\t\t\t\twhile(p.l < p.length) {\n\t\t\t\t\t\tvar cell = { t: \"z\" };\n\t\t\t\t\t\tvar flags = p.read_shift(1);\n\t\t\t\t\t\tif(flags & 0x80) p.l += 2;\n\t\t\t\t\t\tvar mul = (flags & 0x40) ? p.read_shift(2) - 1: 0;\n\t\t\t\t\t\tswitch(flags & 0x1F) {\n\t\t\t\t\t\t\tcase 1: break;\n\t\t\t\t\t\t\tcase 2: cell = { t: \"n\", v: p.read_shift(2) }; break;\n\t\t\t\t\t\t\tcase 3: cell = { t: \"n\", v: p.read_shift(2, 'i') }; break;\n\t\t\t\t\t\t\tcase 5: cell = { t: \"n\", v: p.read_shift(8, 'f') }; break;\n\t\t\t\t\t\t\tcase 7: cell = { t: \"s\", v: SST[type = p.read_shift(4) - 1] }; break;\n\t\t\t\t\t\t\tcase 8: cell = { t: \"n\", v: p.read_shift(8, 'f') }; p.l += 2; /* cell.f = formulae[p.read_shift(4)]; */ p.l += 4; break;\n\t\t\t\t\t\t\tdefault: throw \"Unrecognized QPW cell type \" + (flags & 0x1F);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvar delta = 0;\n\t\t\t\t\t\tif(flags & 0x20) switch(flags & 0x1F) {\n\t\t\t\t\t\t\tcase 2: delta = p.read_shift(2); break;\n\t\t\t\t\t\t\tcase 3: delta = p.read_shift(2, 'i'); break;\n\t\t\t\t\t\t\tcase 7: delta = p.read_shift(2); break;\n\t\t\t\t\t\t\tdefault: throw \"Unsupported delta for QPW cell type \" + (flags & 0x1F);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(!(!o.sheetStubs && cell.t == \"z\")) {\n\t\t\t\t\t\t\tif(s[\"!data\"] != null) {\n\t\t\t\t\t\t\t\tif(!s[\"!data\"][R]) s[\"!data\"][R] = [];\n\t\t\t\t\t\t\t\ts[\"!data\"][R][C] = cell;\n\t\t\t\t\t\t\t} else s[CC + encode_row(R)] = cell;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t++R; --cnt;\n\t\t\t\t\t\twhile(mul-- > 0 && cnt >= 0) {\n\t\t\t\t\t\t\tif(flags & 0x20) switch(flags & 0x1F) {\n\t\t\t\t\t\t\t\tcase 2: cell = { t: \"n\", v: (cell.v + delta) & 0xFFFF }; break;\n\t\t\t\t\t\t\t\tcase 3: cell = { t: \"n\", v: (cell.v + delta) & 0xFFFF }; if(cell.v > 0x7FFF) cell.v -= 0x10000; break;\n\t\t\t\t\t\t\t\tcase 7: cell = { t: \"s\", v: SST[type = (type + delta) >>> 0] }; break;\n\t\t\t\t\t\t\t\tdefault: throw \"Cannot apply delta for QPW cell type \" + (flags & 0x1F);\n\t\t\t\t\t\t\t} else switch(flags & 0x1F) {\n\t\t\t\t\t\t\t\tcase 1: cell = { t: \"z\" }; break;\n\t\t\t\t\t\t\t\tcase 2: cell = { t: \"n\", v: p.read_shift(2) }; break;\n\t\t\t\t\t\t\t\tcase 7: cell = { t: \"s\", v: SST[type = p.read_shift(4) - 1] }; break;\n\t\t\t\t\t\t\t\tdefault: throw \"Cannot apply repeat for QPW cell type \" + (flags & 0x1F);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(!(!o.sheetStubs && cell.t == \"z\")) {\n\t\t\t\t\t\t\t\tif(s[\"!data\"] != null) {\n\t\t\t\t\t\t\t\t\tif(!s[\"!data\"][R]) s[\"!data\"][R] = [];\n\t\t\t\t\t\t\t\t\ts[\"!data\"][R][C] = cell;\n\t\t\t\t\t\t\t\t} else s[CC + encode_row(R)] = cell;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t++R; --cnt;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} break;\n\n\t\t\t\tdefault: break;\n\t\t\t}\n\t\t\td.l += length;\n\t\t}\n\t\treturn wb;\n\t}\n\n\treturn {\n\t\tsheet_to_wk1: sheet_to_wk1,\n\t\tbook_to_wk3: book_to_wk3,\n\t\tto_workbook: lotus_to_workbook\n\t};\n})();\n/* 18.4.7 rPr CT_RPrElt */\nfunction parse_rpr(rpr) {\n\tvar font = {}, m = rpr.match(tagregex), i = 0;\n\tvar pass = false;\n\tif(m) for(;i!=m.length; ++i) {\n\t\tvar y = parsexmltag(m[i]);\n\t\tswitch(y[0].replace(/\\w*:/g,\"\")) {\n\t\t\t/* 18.8.12 condense CT_BooleanProperty */\n\t\t\t/* ** not required . */\n\t\t\tcase '<condense': break;\n\t\t\t/* 18.8.17 extend CT_BooleanProperty */\n\t\t\t/* ** not required . */\n\t\t\tcase '<extend': break;\n\t\t\t/* 18.8.36 shadow CT_BooleanProperty */\n\t\t\t/* ** not required . */\n\t\t\tcase '<shadow':\n\t\t\t\tif(!y.val) break;\n\t\t\t\t/* falls through */\n\t\t\tcase '<shadow>':\n\t\t\tcase '<shadow/>': font.shadow = 1; break;\n\t\t\tcase '</shadow>': break;\n\n\t\t\t/* 18.4.1 charset CT_IntProperty TODO */\n\t\t\tcase '<charset':\n\t\t\t\tif(y.val == '1') break;\n\t\t\t\tfont.cp = CS2CP[parseInt(y.val, 10)];\n\t\t\t\tbreak;\n\n\t\t\t/* 18.4.2 outline CT_BooleanProperty TODO */\n\t\t\tcase '<outline':\n\t\t\t\tif(!y.val) break;\n\t\t\t\t/* falls through */\n\t\t\tcase '<outline>':\n\t\t\tcase '<outline/>': font.outline = 1; break;\n\t\t\tcase '</outline>': break;\n\n\t\t\t/* 18.4.5 rFont CT_FontName */\n\t\t\tcase '<rFont': font.name = y.val; break;\n\n\t\t\t/* 18.4.11 sz CT_FontSize */\n\t\t\tcase '<sz': font.sz = y.val; break;\n\n\t\t\t/* 18.4.10 strike CT_BooleanProperty */\n\t\t\tcase '<strike':\n\t\t\t\tif(!y.val) break;\n\t\t\t\t/* falls through */\n\t\t\tcase '<strike>':\n\t\t\tcase '<strike/>': font.strike = 1; break;\n\t\t\tcase '</strike>': break;\n\n\t\t\t/* 18.4.13 u CT_UnderlineProperty */\n\t\t\tcase '<u':\n\t\t\t\tif(!y.val) break;\n\t\t\t\tswitch(y.val) {\n\t\t\t\t\tcase 'double': font.uval = \"double\"; break;\n\t\t\t\t\tcase 'singleAccounting': font.uval = \"single-accounting\"; break;\n\t\t\t\t\tcase 'doubleAccounting': font.uval = \"double-accounting\"; break;\n\t\t\t\t}\n\t\t\t\t/* falls through */\n\t\t\tcase '<u>':\n\t\t\tcase '<u/>': font.u = 1; break;\n\t\t\tcase '</u>': break;\n\n\t\t\t/* 18.8.2 b */\n\t\t\tcase '<b':\n\t\t\t\tif(y.val == '0') break;\n\t\t\t\t/* falls through */\n\t\t\tcase '<b>':\n\t\t\tcase '<b/>': font.b = 1; break;\n\t\t\tcase '</b>': break;\n\n\t\t\t/* 18.8.26 i */\n\t\t\tcase '<i':\n\t\t\t\tif(y.val == '0') break;\n\t\t\t\t/* falls through */\n\t\t\tcase '<i>':\n\t\t\tcase '<i/>': font.i = 1; break;\n\t\t\tcase '</i>': break;\n\n\t\t\t/* 18.3.1.15 color CT_Color TODO: tint, theme, auto, indexed */\n\t\t\tcase '<color':\n\t\t\t\tif(y.rgb) font.color = y.rgb.slice(2,8);\n\t\t\t\tbreak;\n\t\t\tcase '<color>': case '<color/>': case '</color>': break;\n\n\t\t\t/* 18.8.18 family ST_FontFamily */\n\t\t\tcase '<family': font.family = y.val; break;\n\t\t\tcase '<family>': case '<family/>': case '</family>': break;\n\n\t\t\t/* 18.4.14 vertAlign CT_VerticalAlignFontProperty TODO */\n\t\t\tcase '<vertAlign': font.valign = y.val; break;\n\t\t\tcase '<vertAlign>': case '<vertAlign/>': case '</vertAlign>': break;\n\n\t\t\t/* 18.8.35 scheme CT_FontScheme TODO */\n\t\t\tcase '<scheme': break;\n\t\t\tcase '<scheme>': case '<scheme/>': case '</scheme>': break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '<extLst': case '<extLst>': case '</extLst>': break;\n\t\t\tcase '<ext': pass = true; break;\n\t\t\tcase '</ext>': pass = false; break;\n\t\t\tdefault:\n\t\t\t\tif(y[0].charCodeAt(1) !== 47 && !pass) throw new Error('Unrecognized rich format ' + y[0]);\n\t\t}\n\t}\n\treturn font;\n}\n\nvar parse_rs = /*#__PURE__*/(function() {\n\tvar tregex = matchtag(\"t\"), rpregex = matchtag(\"rPr\");\n\t/* 18.4.4 r CT_RElt */\n\tfunction parse_r(r) {\n\t\t/* 18.4.12 t ST_Xstring */\n\t\tvar t = r.match(tregex)/*, cp = 65001*/;\n\t\tif(!t) return {t:\"s\", v:\"\"};\n\n\t\tvar o/*:Cell*/ = ({t:'s', v:unescapexml(t[1])}/*:any*/);\n\t\tvar rpr = r.match(rpregex);\n\t\tif(rpr) o.s = parse_rpr(rpr[1]);\n\t\treturn o;\n\t}\n\tvar rregex = /<(?:\\w+:)?r>/g, rend = /<\\/(?:\\w+:)?r>/;\n\treturn function parse_rs(rs) {\n\t\treturn rs.replace(rregex,\"\").split(rend).map(parse_r).filter(function(r) { return r.v; });\n\t};\n})();\n\n\n/* Parse a list of <r> tags */\nvar rs_to_html = /*#__PURE__*/(function parse_rs_factory() {\n\tvar nlregex = /(\\r\\n|\\n)/g;\n\tfunction parse_rpr2(font, intro, outro) {\n\t\tvar style/*:Array<string>*/ = [];\n\n\t\tif(font.u) style.push(\"text-decoration: underline;\");\n\t\tif(font.uval) style.push(\"text-underline-style:\" + font.uval + \";\");\n\t\tif(font.sz) style.push(\"font-size:\" + font.sz + \"pt;\");\n\t\tif(font.outline) style.push(\"text-effect: outline;\");\n\t\tif(font.shadow) style.push(\"text-shadow: auto;\");\n\t\tintro.push('<span style=\"' + style.join(\"\") + '\">');\n\n\t\tif(font.b) { intro.push(\"<b>\"); outro.push(\"</b>\"); }\n\t\tif(font.i) { intro.push(\"<i>\"); outro.push(\"</i>\"); }\n\t\tif(font.strike) { intro.push(\"<s>\"); outro.push(\"</s>\"); }\n\n\t\tvar align = font.valign || \"\";\n\t\tif(align == \"superscript\" || align == \"super\") align = \"sup\";\n\t\telse if(align == \"subscript\") align = \"sub\";\n\t\tif(align != \"\") { intro.push(\"<\" + align + \">\"); outro.push(\"</\" + align + \">\"); }\n\n\t\toutro.push(\"</span>\");\n\t\treturn font;\n\t}\n\n\t/* 18.4.4 r CT_RElt */\n\tfunction r_to_html(r) {\n\t\tvar terms/*:[Array<string>, string, Array<string>]*/ = [[],r.v,[]];\n\t\tif(!r.v) return \"\";\n\n\t\tif(r.s) parse_rpr2(r.s, terms[0], terms[2]);\n\n\t\treturn terms[0].join(\"\") + terms[1].replace(nlregex,'<br/>') + terms[2].join(\"\");\n\t}\n\n\treturn function parse_rs(rs) {\n\t\treturn rs.map(r_to_html).join(\"\");\n\t};\n})();\n\n/* 18.4.8 si CT_Rst */\nvar sitregex = /<(?:\\w+:)?t[^>]*>([^<]*)<\\/(?:\\w+:)?t>/g, sirregex = /<(?:\\w+:)?r\\b[^>]*>/;\nvar sirphregex = /<(?:\\w+:)?rPh.*?>([\\s\\S]*?)<\\/(?:\\w+:)?rPh>/g;\nfunction parse_si(x, opts) {\n\tvar html = opts ? opts.cellHTML : true;\n\tvar z = {};\n\tif(!x) return { t: \"\" };\n\t//var y;\n\t/* 18.4.12 t ST_Xstring (Plaintext String) */\n\t// TODO: is whitespace actually valid here?\n\tif(x.match(/^\\s*<(?:\\w+:)?t[^>]*>/)) {\n\t\tz.t = unescapexml(utf8read(x.slice(x.indexOf(\">\")+1).split(/<\\/(?:\\w+:)?t>/)[0]||\"\"), true);\n\t\tz.r = utf8read(x);\n\t\tif(html) z.h = escapehtml(z.t);\n\t}\n\t/* 18.4.4 r CT_RElt (Rich Text Run) */\n\telse if((/*y = */x.match(sirregex))) {\n\t\tz.r = utf8read(x);\n\t\tz.t = unescapexml(utf8read((x.replace(sirphregex, '').match(sitregex)||[]).join(\"\").replace(tagregex,\"\")), true);\n\t\tif(html) z.h = rs_to_html(parse_rs(z.r));\n\t}\n\t/* 18.4.3 phoneticPr CT_PhoneticPr (TODO: needed for Asian support) */\n\t/* 18.4.6 rPh CT_PhoneticRun (TODO: needed for Asian support) */\n\treturn z;\n}\n\n/* 18.4 Shared String Table */\nvar sstr0 = /<(?:\\w+:)?sst([^>]*)>([\\s\\S]*)<\\/(?:\\w+:)?sst>/;\nvar sstr1 = /<(?:\\w+:)?(?:si|sstItem)>/g;\nvar sstr2 = /<\\/(?:\\w+:)?(?:si|sstItem)>/;\nfunction parse_sst_xml(data/*:string*/, opts)/*:SST*/ {\n\tvar s/*:SST*/ = ([]/*:any*/), ss = \"\";\n\tif(!data) return s;\n\t/* 18.4.9 sst CT_Sst */\n\tvar sst = data.match(sstr0);\n\tif(sst) {\n\t\tss = sst[2].replace(sstr1,\"\").split(sstr2);\n\t\tfor(var i = 0; i != ss.length; ++i) {\n\t\t\tvar o = parse_si(ss[i].trim(), opts);\n\t\t\tif(o != null) s[s.length] = o;\n\t\t}\n\t\tsst = parsexmltag(sst[1]); s.Count = sst.count; s.Unique = sst.uniqueCount;\n\t}\n\treturn s;\n}\n\nvar straywsregex = /^\\s|\\s$|[\\t\\n\\r]/;\nfunction write_sst_xml(sst/*:SST*/, opts)/*:string*/ {\n\tif(!opts.bookSST) return \"\";\n\tvar o = [XML_HEADER];\n\to[o.length] = (writextag('sst', null, {\n\t\txmlns: XMLNS_main[0],\n\t\tcount: sst.Count,\n\t\tuniqueCount: sst.Unique\n\t}));\n\tfor(var i = 0; i != sst.length; ++i) { if(sst[i] == null) continue;\n\t\tvar s/*:XLString*/ = sst[i];\n\t\tvar sitag = \"<si>\";\n\t\tif(s.r) sitag += s.r;\n\t\telse {\n\t\t\tsitag += \"<t\";\n\t\t\tif(!s.t) s.t = \"\";\n\t\t\tif(typeof s.t !== \"string\") s.t = String(s.t);\n\t\t\tif(s.t.match(straywsregex)) sitag += ' xml:space=\"preserve\"';\n\t\t\tsitag += \">\" + escapexml(s.t) + \"</t>\";\n\t\t}\n\t\tsitag += \"</si>\";\n\t\to[o.length] = (sitag);\n\t}\n\tif(o.length>2){ o[o.length] = ('</sst>'); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.221 BrtBeginSst */\nfunction parse_BrtBeginSst(data) {\n\treturn [data.read_shift(4), data.read_shift(4)];\n}\n\n/* [MS-XLSB] 2.1.7.45 Shared Strings */\nfunction parse_sst_bin(data, opts)/*:SST*/ {\n\tvar s/*:SST*/ = ([]/*:any*/);\n\tvar pass = false;\n\trecordhopper(data, function hopper_sst(val, R, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x009F: /* BrtBeginSst */\n\t\t\t\ts.Count = val[0]; s.Unique = val[1]; break;\n\t\t\tcase 0x0013: /* BrtSSTItem */\n\t\t\t\ts.push(val); break;\n\t\t\tcase 0x00A0: /* BrtEndSst */\n\t\t\t\treturn true;\n\n\t\t\tcase 0x0023: /* BrtFRTBegin */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* BrtFRTEnd */\n\t\t\t\tpass = false; break;\n\n\t\t\tdefault:\n\t\t\t\tif(R.T){}\n\t\t\t\tif(!pass || opts.WTF) throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n\t\t}\n\t});\n\treturn s;\n}\n\nfunction write_BrtBeginSst(sst, o) {\n\tif(!o) o = new_buf(8);\n\to.write_shift(4, sst.Count);\n\to.write_shift(4, sst.Unique);\n\treturn o;\n}\n\nvar write_BrtSSTItem = write_RichStr;\n\nfunction write_sst_bin(sst/*::, opts*/) {\n\tvar ba = buf_array();\n\twrite_record(ba, 0x009F /* BrtBeginSst */, write_BrtBeginSst(sst));\n\tfor(var i = 0; i < sst.length; ++i) write_record(ba, 0x0013 /* BrtSSTItem */, write_BrtSSTItem(sst[i]));\n\t/* FRTSST */\n\twrite_record(ba, 0x00A0 /* BrtEndSst */);\n\treturn ba.end();\n}\nfunction _JS2ANSI(str/*:string*/)/*:Array<number>*/ {\n\tif(typeof $cptable !== 'undefined') return $cptable.utils.encode(current_ansi, str);\n\tvar o/*:Array<number>*/ = [], oo = str.split(\"\");\n\tfor(var i = 0; i < oo.length; ++i) o[i] = oo[i].charCodeAt(0);\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.4 Version */\nfunction parse_CRYPTOVersion(blob, length/*:?number*/) {\n\tvar o/*:any*/ = {};\n\to.Major = blob.read_shift(2);\n\to.Minor = blob.read_shift(2);\n\t/*:: if(length == null) return o; */\n\tif(length >= 4) blob.l += length - 4;\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.5 DataSpaceVersionInfo */\nfunction parse_DataSpaceVersionInfo(blob) {\n\tvar o = {};\n\to.id = blob.read_shift(0, 'lpp4');\n\to.R = parse_CRYPTOVersion(blob, 4);\n\to.U = parse_CRYPTOVersion(blob, 4);\n\to.W = parse_CRYPTOVersion(blob, 4);\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.6.1 DataSpaceMapEntry Structure */\nfunction parse_DataSpaceMapEntry(blob) {\n\tvar len = blob.read_shift(4);\n\tvar end = blob.l + len - 4;\n\tvar o = {};\n\tvar cnt = blob.read_shift(4);\n\tvar comps/*:Array<{t:number, v:string}>*/ = [];\n\t/* [MS-OFFCRYPTO] 2.1.6.2 DataSpaceReferenceComponent Structure */\n\twhile(cnt-- > 0) comps.push({ t: blob.read_shift(4), v: blob.read_shift(0, 'lpp4') });\n\to.name = blob.read_shift(0, 'lpp4');\n\to.comps = comps;\n\tif(blob.l != end) throw new Error(\"Bad DataSpaceMapEntry: \" + blob.l + \" != \" + end);\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.6 DataSpaceMap */\nfunction parse_DataSpaceMap(blob) {\n\tvar o = [];\n\tblob.l += 4; // must be 0x8\n\tvar cnt = blob.read_shift(4);\n\twhile(cnt-- > 0) o.push(parse_DataSpaceMapEntry(blob));\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.7 DataSpaceDefinition */\nfunction parse_DataSpaceDefinition(blob)/*:Array<string>*/ {\n\tvar o/*:Array<string>*/ = [];\n\tblob.l += 4; // must be 0x8\n\tvar cnt = blob.read_shift(4);\n\twhile(cnt-- > 0) o.push(blob.read_shift(0, 'lpp4'));\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.1.8 DataSpaceDefinition */\nfunction parse_TransformInfoHeader(blob) {\n\tvar o = {};\n\t/*var len = */blob.read_shift(4);\n\tblob.l += 4; // must be 0x1\n\to.id = blob.read_shift(0, 'lpp4');\n\to.name = blob.read_shift(0, 'lpp4');\n\to.R = parse_CRYPTOVersion(blob, 4);\n\to.U = parse_CRYPTOVersion(blob, 4);\n\to.W = parse_CRYPTOVersion(blob, 4);\n\treturn o;\n}\n\nfunction parse_Primary(blob) {\n\t/* [MS-OFFCRYPTO] 2.2.6 IRMDSTransformInfo */\n\tvar hdr = parse_TransformInfoHeader(blob);\n\t/* [MS-OFFCRYPTO] 2.1.9 EncryptionTransformInfo */\n\thdr.ename = blob.read_shift(0, '8lpp4');\n\thdr.blksz = blob.read_shift(4);\n\thdr.cmode = blob.read_shift(4);\n\tif(blob.read_shift(4) != 0x04) throw new Error(\"Bad !Primary record\");\n\treturn hdr;\n}\n\n/* [MS-OFFCRYPTO] 2.3.2 Encryption Header */\nfunction parse_EncryptionHeader(blob, length/*:number*/) {\n\tvar tgt = blob.l + length;\n\tvar o = {};\n\to.Flags = (blob.read_shift(4) & 0x3F);\n\tblob.l += 4;\n\to.AlgID = blob.read_shift(4);\n\tvar valid = false;\n\tswitch(o.AlgID) {\n\t\tcase 0x660E: case 0x660F: case 0x6610: valid = (o.Flags == 0x24); break;\n\t\tcase 0x6801: valid = (o.Flags == 0x04); break;\n\t\tcase 0: valid = (o.Flags == 0x10 || o.Flags == 0x04 || o.Flags == 0x24); break;\n\t\tdefault: throw 'Unrecognized encryption algorithm: ' + o.AlgID;\n\t}\n\tif(!valid) throw new Error(\"Encryption Flags/AlgID mismatch\");\n\to.AlgIDHash = blob.read_shift(4);\n\to.KeySize = blob.read_shift(4);\n\to.ProviderType = blob.read_shift(4);\n\tblob.l += 8;\n\to.CSPName = blob.read_shift((tgt-blob.l)>>1, 'utf16le');\n\tblob.l = tgt;\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.3.3 Encryption Verifier */\nfunction parse_EncryptionVerifier(blob, length/*:number*/) {\n\tvar o = {}, tgt = blob.l + length;\n\tblob.l += 4; // SaltSize must be 0x10\n\to.Salt = blob.slice(blob.l, blob.l+16); blob.l += 16;\n\to.Verifier = blob.slice(blob.l, blob.l+16); blob.l += 16;\n\t/*var sz = */blob.read_shift(4);\n\to.VerifierHash = blob.slice(blob.l, tgt); blob.l = tgt;\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.3.4.* EncryptionInfo Stream */\nfunction parse_EncryptionInfo(blob) {\n\tvar vers = parse_CRYPTOVersion(blob);\n\tswitch(vers.Minor) {\n\t\tcase 0x02: return [vers.Minor, parse_EncInfoStd(blob, vers)];\n\t\tcase 0x03: return [vers.Minor, parse_EncInfoExt(blob, vers)];\n\t\tcase 0x04: return [vers.Minor, parse_EncInfoAgl(blob, vers)];\n\t}\n\tthrow new Error(\"ECMA-376 Encrypted file unrecognized Version: \" + vers.Minor);\n}\n\n/* [MS-OFFCRYPTO] 2.3.4.5 EncryptionInfo Stream (Standard Encryption) */\nfunction parse_EncInfoStd(blob/*::, vers*/) {\n\tvar flags = blob.read_shift(4);\n\tif((flags & 0x3F) != 0x24) throw new Error(\"EncryptionInfo mismatch\");\n\tvar sz = blob.read_shift(4);\n\t//var tgt = blob.l + sz;\n\tvar hdr = parse_EncryptionHeader(blob, sz);\n\tvar verifier = parse_EncryptionVerifier(blob, blob.length - blob.l);\n\treturn { t:\"Std\", h:hdr, v:verifier };\n}\n/* [MS-OFFCRYPTO] 2.3.4.6 EncryptionInfo Stream (Extensible Encryption) */\nfunction parse_EncInfoExt(/*::blob, vers*/) { throw new Error(\"File is password-protected: ECMA-376 Extensible\"); }\n/* [MS-OFFCRYPTO] 2.3.4.10 EncryptionInfo Stream (Agile Encryption) */\nfunction parse_EncInfoAgl(blob/*::, vers*/) {\n\tvar KeyData = [\"saltSize\",\"blockSize\",\"keyBits\",\"hashSize\",\"cipherAlgorithm\",\"cipherChaining\",\"hashAlgorithm\",\"saltValue\"];\n\tblob.l+=4;\n\tvar xml = blob.read_shift(blob.length - blob.l, 'utf8');\n\tvar o = {};\n\txml.replace(tagregex, function xml_agile(x) {\n\t\tvar y/*:any*/ = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '<?xml': break;\n\t\t\tcase '<encryption': case '</encryption>': break;\n\t\t\tcase '<keyData': KeyData.forEach(function(k) { o[k] = y[k]; }); break;\n\t\t\tcase '<dataIntegrity': o.encryptedHmacKey = y.encryptedHmacKey; o.encryptedHmacValue = y.encryptedHmacValue; break;\n\t\t\tcase '<keyEncryptors>': case '<keyEncryptors': o.encs = []; break;\n\t\t\tcase '</keyEncryptors>': break;\n\n\t\t\tcase '<keyEncryptor': o.uri = y.uri; break;\n\t\t\tcase '</keyEncryptor>': break;\n\t\t\tcase '<encryptedKey': o.encs.push(y); break;\n\t\t\tdefault: throw y[0];\n\t\t}\n\t});\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.3.5.1 RC4 CryptoAPI Encryption Header */\nfunction parse_RC4CryptoHeader(blob, length/*:number*/) {\n\tvar o = {};\n\tvar vers = o.EncryptionVersionInfo = parse_CRYPTOVersion(blob, 4); length -= 4;\n\tif(vers.Minor != 2) throw new Error('unrecognized minor version code: ' + vers.Minor);\n\tif(vers.Major > 4 || vers.Major < 2) throw new Error('unrecognized major version code: ' + vers.Major);\n\to.Flags = blob.read_shift(4); length -= 4;\n\tvar sz = blob.read_shift(4); length -= 4;\n\to.EncryptionHeader = parse_EncryptionHeader(blob, sz); length -= sz;\n\to.EncryptionVerifier = parse_EncryptionVerifier(blob, length);\n\treturn o;\n}\n/* [MS-OFFCRYPTO] 2.3.6.1 RC4 Encryption Header */\nfunction parse_RC4Header(blob/*::, length*/) {\n\tvar o = {};\n\tvar vers = o.EncryptionVersionInfo = parse_CRYPTOVersion(blob, 4);\n\tif(vers.Major != 1 || vers.Minor != 1) throw 'unrecognized version code ' + vers.Major + ' : ' + vers.Minor;\n\to.Salt = blob.read_shift(16);\n\to.EncryptedVerifier = blob.read_shift(16);\n\to.EncryptedVerifierHash = blob.read_shift(16);\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.3.7.1 Binary Document Password Verifier Derivation */\nfunction crypto_CreatePasswordVerifier_Method1(Password/*:string*/) {\n\tvar Verifier = 0x0000, PasswordArray;\n\tvar PasswordDecoded = _JS2ANSI(Password);\n\tvar len = PasswordDecoded.length + 1, i, PasswordByte;\n\tvar Intermediate1, Intermediate2, Intermediate3;\n\tPasswordArray = new_raw_buf(len);\n\tPasswordArray[0] = PasswordDecoded.length;\n\tfor(i = 1; i != len; ++i) PasswordArray[i] = PasswordDecoded[i-1];\n\tfor(i = len-1; i >= 0; --i) {\n\t\tPasswordByte = PasswordArray[i];\n\t\tIntermediate1 = ((Verifier & 0x4000) === 0x0000) ? 0 : 1;\n\t\tIntermediate2 = (Verifier << 1) & 0x7FFF;\n\t\tIntermediate3 = Intermediate1 | Intermediate2;\n\t\tVerifier = Intermediate3 ^ PasswordByte;\n\t}\n\treturn Verifier ^ 0xCE4B;\n}\n\n/* [MS-OFFCRYPTO] 2.3.7.2 Binary Document XOR Array Initialization */\nvar crypto_CreateXorArray_Method1 = /*#__PURE__*/(function() {\n\tvar PadArray = [0xBB, 0xFF, 0xFF, 0xBA, 0xFF, 0xFF, 0xB9, 0x80, 0x00, 0xBE, 0x0F, 0x00, 0xBF, 0x0F, 0x00];\n\tvar InitialCode = [0xE1F0, 0x1D0F, 0xCC9C, 0x84C0, 0x110C, 0x0E10, 0xF1CE, 0x313E, 0x1872, 0xE139, 0xD40F, 0x84F9, 0x280C, 0xA96A, 0x4EC3];\n\tvar XorMatrix = [0xAEFC, 0x4DD9, 0x9BB2, 0x2745, 0x4E8A, 0x9D14, 0x2A09, 0x7B61, 0xF6C2, 0xFDA5, 0xEB6B, 0xC6F7, 0x9DCF, 0x2BBF, 0x4563, 0x8AC6, 0x05AD, 0x0B5A, 0x16B4, 0x2D68, 0x5AD0, 0x0375, 0x06EA, 0x0DD4, 0x1BA8, 0x3750, 0x6EA0, 0xDD40, 0xD849, 0xA0B3, 0x5147, 0xA28E, 0x553D, 0xAA7A, 0x44D5, 0x6F45, 0xDE8A, 0xAD35, 0x4A4B, 0x9496, 0x390D, 0x721A, 0xEB23, 0xC667, 0x9CEF, 0x29FF, 0x53FE, 0xA7FC, 0x5FD9, 0x47D3, 0x8FA6, 0x0F6D, 0x1EDA, 0x3DB4, 0x7B68, 0xF6D0, 0xB861, 0x60E3, 0xC1C6, 0x93AD, 0x377B, 0x6EF6, 0xDDEC, 0x45A0, 0x8B40, 0x06A1, 0x0D42, 0x1A84, 0x3508, 0x6A10, 0xAA51, 0x4483, 0x8906, 0x022D, 0x045A, 0x08B4, 0x1168, 0x76B4, 0xED68, 0xCAF1, 0x85C3, 0x1BA7, 0x374E, 0x6E9C, 0x3730, 0x6E60, 0xDCC0, 0xA9A1, 0x4363, 0x86C6, 0x1DAD, 0x3331, 0x6662, 0xCCC4, 0x89A9, 0x0373, 0x06E6, 0x0DCC, 0x1021, 0x2042, 0x4084, 0x8108, 0x1231, 0x2462, 0x48C4];\n\tvar Ror = function(Byte) { return ((Byte/2) | (Byte*128)) & 0xFF; };\n\tvar XorRor = function(byte1, byte2) { return Ror(byte1 ^ byte2); };\n\tvar CreateXorKey_Method1 = function(Password) {\n\t\tvar XorKey = InitialCode[Password.length - 1];\n\t\tvar CurrentElement = 0x68;\n\t\tfor(var i = Password.length-1; i >= 0; --i) {\n\t\t\tvar Char = Password[i];\n\t\t\tfor(var j = 0; j != 7; ++j) {\n\t\t\t\tif(Char & 0x40) XorKey ^= XorMatrix[CurrentElement];\n\t\t\t\tChar *= 2; --CurrentElement;\n\t\t\t}\n\t\t}\n\t\treturn XorKey;\n\t};\n\treturn function(password/*:string*/) {\n\t\tvar Password = _JS2ANSI(password);\n\t\tvar XorKey = CreateXorKey_Method1(Password);\n\t\tvar Index = Password.length;\n\t\tvar ObfuscationArray = new_raw_buf(16);\n\t\tfor(var i = 0; i != 16; ++i) ObfuscationArray[i] = 0x00;\n\t\tvar Temp, PasswordLastChar, PadIndex;\n\t\tif((Index & 1) === 1) {\n\t\t\tTemp = XorKey >> 8;\n\t\t\tObfuscationArray[Index] = XorRor(PadArray[0], Temp);\n\t\t\t--Index;\n\t\t\tTemp = XorKey & 0xFF;\n\t\t\tPasswordLastChar = Password[Password.length - 1];\n\t\t\tObfuscationArray[Index] = XorRor(PasswordLastChar, Temp);\n\t\t}\n\t\twhile(Index > 0) {\n\t\t\t--Index;\n\t\t\tTemp = XorKey >> 8;\n\t\t\tObfuscationArray[Index] = XorRor(Password[Index], Temp);\n\t\t\t--Index;\n\t\t\tTemp = XorKey & 0xFF;\n\t\t\tObfuscationArray[Index] = XorRor(Password[Index], Temp);\n\t\t}\n\t\tIndex = 15;\n\t\tPadIndex = 15 - Password.length;\n\t\twhile(PadIndex > 0) {\n\t\t\tTemp = XorKey >> 8;\n\t\t\tObfuscationArray[Index] = XorRor(PadArray[PadIndex], Temp);\n\t\t\t--Index;\n\t\t\t--PadIndex;\n\t\t\tTemp = XorKey & 0xFF;\n\t\t\tObfuscationArray[Index] = XorRor(Password[Index], Temp);\n\t\t\t--Index;\n\t\t\t--PadIndex;\n\t\t}\n\t\treturn ObfuscationArray;\n\t};\n})();\n\n/* [MS-OFFCRYPTO] 2.3.7.3 Binary Document XOR Data Transformation Method 1 */\nvar crypto_DecryptData_Method1 = function(password/*:string*/, Data, XorArrayIndex, XorArray, O) {\n\t/* If XorArray is set, use it; if O is not set, make changes in-place */\n\tif(!O) O = Data;\n\tif(!XorArray) XorArray = crypto_CreateXorArray_Method1(password);\n\tvar Index, Value;\n\tfor(Index = 0; Index != Data.length; ++Index) {\n\t\tValue = Data[Index];\n\t\tValue ^= XorArray[XorArrayIndex];\n\t\tValue = ((Value>>5) | (Value<<3)) & 0xFF;\n\t\tO[Index] = Value;\n\t\t++XorArrayIndex;\n\t}\n\treturn [O, XorArrayIndex, XorArray];\n};\n\nvar crypto_MakeXorDecryptor = function(password/*:string*/) {\n\tvar XorArrayIndex = 0, XorArray = crypto_CreateXorArray_Method1(password);\n\treturn function(Data) {\n\t\tvar O = crypto_DecryptData_Method1(\"\", Data, XorArrayIndex, XorArray);\n\t\tXorArrayIndex = O[1];\n\t\treturn O[0];\n\t};\n};\n\n/* 2.5.343 */\nfunction parse_XORObfuscation(blob, length, opts, out) {\n\tvar o = ({ key: parseuint16(blob), verificationBytes: parseuint16(blob) }/*:any*/);\n\tif(opts.password) o.verifier = crypto_CreatePasswordVerifier_Method1(opts.password);\n\tout.valid = o.verificationBytes === o.verifier;\n\tif(out.valid) out.insitu = crypto_MakeXorDecryptor(opts.password);\n\treturn o;\n}\n\n/* 2.4.117 */\nfunction parse_FilePassHeader(blob, length/*:number*/, oo) {\n\tvar o = oo || {}; o.Info = blob.read_shift(2); blob.l -= 2;\n\tif(o.Info === 1) o.Data = parse_RC4Header(blob, length);\n\telse o.Data = parse_RC4CryptoHeader(blob, length);\n\treturn o;\n}\nfunction parse_FilePass(blob, length/*:number*/, opts) {\n\tvar o = ({ Type: opts.biff >= 8 ? blob.read_shift(2) : 0 }/*:any*/); /* wEncryptionType */\n\tif(o.Type) parse_FilePassHeader(blob, length-2, o);\n\telse parse_XORObfuscation(blob, opts.biff >= 8 ? length : length - 2, opts, o);\n\treturn o;\n}\n\n\nfunction rtf_to_sheet(d, opts) {\n switch (opts.type) {\n case \"base64\":\n return rtf_to_sheet_str(Base64_decode(d), opts);\n case \"binary\":\n return rtf_to_sheet_str(d, opts);\n case \"buffer\":\n return rtf_to_sheet_str(has_buf && Buffer.isBuffer(d) ? d.toString(\"binary\") : a2s(d), opts);\n case \"array\":\n return rtf_to_sheet_str(cc2str(d), opts);\n }\n throw new Error(\"Unrecognized type \" + opts.type);\n}\nfunction rtf_to_sheet_str(str, opts) {\n var o = opts || {};\n var ws = {};\n var dense = o.dense;\n if (dense)\n ws[\"!data\"] = [];\n var rows = str.match(/\\\\trowd[\\s\\S]*?\\\\row\\b/g);\n if (!rows)\n throw new Error(\"RTF missing table\");\n var range = { s: { c: 0, r: 0 }, e: { c: 0, r: rows.length - 1 } };\n var row = [];\n rows.forEach(function(rowtf, R) {\n if (dense)\n row = ws[\"!data\"][R] = [];\n var rtfre = /\\\\[\\w\\-]+\\b/g;\n var last_index = 0;\n var res;\n var C = -1;\n var payload = [];\n while ((res = rtfre.exec(rowtf)) != null) {\n var data = rowtf.slice(last_index, rtfre.lastIndex - res[0].length);\n if (data.charCodeAt(0) == 32)\n data = data.slice(1);\n if (data.length)\n payload.push(data);\n switch (res[0]) {\n case \"\\\\cell\":\n ++C;\n if (payload.length) {\n var cell = { v: payload.join(\"\"), t: \"s\" };\n if (cell.v == \"TRUE\" || cell.v == \"FALSE\") {\n cell.v = cell.v == \"TRUE\";\n cell.t = \"b\";\n } else if (!isNaN(fuzzynum(cell.v))) {\n cell.t = \"n\";\n if (o.cellText !== false)\n cell.w = cell.v;\n cell.v = fuzzynum(cell.v);\n }\n if (dense)\n row[C] = cell;\n else\n ws[encode_cell({ r: R, c: C })] = cell;\n }\n payload = [];\n break;\n case \"\\\\par\":\n payload.push(\"\\n\");\n break;\n }\n last_index = rtfre.lastIndex;\n }\n if (C > range.e.c)\n range.e.c = C;\n });\n ws[\"!ref\"] = encode_range(range);\n return ws;\n}\nfunction rtf_to_workbook(d, opts) {\n var wb = sheet_to_workbook(rtf_to_sheet(d, opts), opts);\n wb.bookType = \"rtf\";\n return wb;\n}\nfunction sheet_to_rtf(ws, opts) {\n var o = [\"{\\\\rtf1\\\\ansi\"];\n if (!ws[\"!ref\"])\n return o[0] + \"}\";\n var r = safe_decode_range(ws[\"!ref\"]), cell;\n var dense = ws[\"!data\"] != null, row = [];\n for (var R = r.s.r; R <= r.e.r; ++R) {\n o.push(\"\\\\trowd\\\\trautofit1\");\n for (var C = r.s.c; C <= r.e.c; ++C)\n o.push(\"\\\\cellx\" + (C + 1));\n o.push(\"\\\\pard\\\\intbl\");\n if (dense)\n row = ws[\"!data\"][R] || [];\n for (C = r.s.c; C <= r.e.c; ++C) {\n var coord = encode_cell({ r: R, c: C });\n cell = dense ? row[C] : ws[coord];\n if (!cell || cell.v == null && (!cell.f || cell.F)) {\n o.push(\" \\\\cell\");\n continue;\n }\n o.push(\" \" + (cell.w || (format_cell(cell), cell.w) || \"\").replace(/[\\r\\n]/g, \"\\\\par \"));\n o.push(\"\\\\cell\");\n }\n o.push(\"\\\\pard\\\\intbl\\\\row\");\n }\n return o.join(\"\") + \"}\";\n}\nfunction hex2RGB(h) {\n\tvar o = h.slice(h[0]===\"#\"?1:0).slice(0,6);\n\treturn [parseInt(o.slice(0,2),16),parseInt(o.slice(2,4),16),parseInt(o.slice(4,6),16)];\n}\nfunction rgb2Hex(rgb) {\n\tfor(var i=0,o=1; i!=3; ++i) o = o*256 + (rgb[i]>255?255:rgb[i]<0?0:rgb[i]);\n\treturn o.toString(16).toUpperCase().slice(1);\n}\n\nfunction rgb2HSL(rgb) {\n\tvar R = rgb[0]/255, G = rgb[1]/255, B=rgb[2]/255;\n\tvar M = Math.max(R, G, B), m = Math.min(R, G, B), C = M - m;\n\tif(C === 0) return [0, 0, R];\n\n\tvar H6 = 0, S = 0, L2 = (M + m);\n\tS = C / (L2 > 1 ? 2 - L2 : L2);\n\tswitch(M){\n\t\tcase R: H6 = ((G - B) / C + 6)%6; break;\n\t\tcase G: H6 = ((B - R) / C + 2); break;\n\t\tcase B: H6 = ((R - G) / C + 4); break;\n\t}\n\treturn [H6 / 6, S, L2 / 2];\n}\n\nfunction hsl2RGB(hsl){\n\tvar H = hsl[0], S = hsl[1], L = hsl[2];\n\tvar C = S * 2 * (L < 0.5 ? L : 1 - L), m = L - C/2;\n\tvar rgb = [m,m,m], h6 = 6*H;\n\n\tvar X;\n\tif(S !== 0) switch(h6|0) {\n\t\tcase 0: case 6: X = C * h6; rgb[0] += C; rgb[1] += X; break;\n\t\tcase 1: X = C * (2 - h6); rgb[0] += X; rgb[1] += C; break;\n\t\tcase 2: X = C * (h6 - 2); rgb[1] += C; rgb[2] += X; break;\n\t\tcase 3: X = C * (4 - h6); rgb[1] += X; rgb[2] += C; break;\n\t\tcase 4: X = C * (h6 - 4); rgb[2] += C; rgb[0] += X; break;\n\t\tcase 5: X = C * (6 - h6); rgb[2] += X; rgb[0] += C; break;\n\t}\n\tfor(var i = 0; i != 3; ++i) rgb[i] = Math.round(rgb[i]*255);\n\treturn rgb;\n}\n\n/* 18.8.3 bgColor tint algorithm */\nfunction rgb_tint(hex, tint) {\n\tif(tint === 0) return hex;\n\tvar hsl = rgb2HSL(hex2RGB(hex));\n\tif (tint < 0) hsl[2] = hsl[2] * (1 + tint);\n\telse hsl[2] = 1 - (1 - hsl[2]) * (1 - tint);\n\treturn rgb2Hex(hsl2RGB(hsl));\n}\n\n/* 18.3.1.13 width calculations */\n/* [MS-OI29500] 2.1.595 Column Width & Formatting */\nvar DEF_MDW = 6, MAX_MDW = 15, MIN_MDW = 1, MDW = DEF_MDW;\nfunction width2px(width) { return Math.floor(( width + (Math.round(128/MDW))/256 )* MDW ); }\nfunction px2char(px) { return (Math.floor((px - 5)/MDW * 100 + 0.5))/100; }\nfunction char2width(chr) { return (Math.round((chr * MDW + 5)/MDW*256))/256; }\n//function px2char_(px) { return (((px - 5)/MDW * 100 + 0.5))/100; }\n//function char2width_(chr) { return (((chr * MDW + 5)/MDW*256))/256; }\nfunction cycle_width(collw) { return char2width(px2char(width2px(collw))); }\n/* XLSX/XLSB/XLS specify width in units of MDW */\nfunction find_mdw_colw(collw) {\n\tvar delta = Math.abs(collw - cycle_width(collw)), _MDW = MDW;\n\tif(delta > 0.005) for(MDW=MIN_MDW; MDW<MAX_MDW; ++MDW) if(Math.abs(collw - cycle_width(collw)) <= delta) { delta = Math.abs(collw - cycle_width(collw)); _MDW = MDW; }\n\tMDW = _MDW;\n}\n/* XLML specifies width in terms of pixels */\n/*function find_mdw_wpx(wpx) {\n\tvar delta = Infinity, guess = 0, _MDW = MIN_MDW;\n\tfor(MDW=MIN_MDW; MDW<MAX_MDW; ++MDW) {\n\t\tguess = char2width_(px2char_(wpx))*256;\n\t\tguess = (guess) % 1;\n\t\tif(guess > 0.5) guess--;\n\t\tif(Math.abs(guess) < delta) { delta = Math.abs(guess); _MDW = MDW; }\n\t}\n\tMDW = _MDW;\n}*/\n\nfunction process_col(coll/*:ColInfo*/) {\n\tif(coll.width) {\n\t\tcoll.wpx = width2px(coll.width);\n\t\tcoll.wch = px2char(coll.wpx);\n\t\tcoll.MDW = MDW;\n\t} else if(coll.wpx) {\n\t\tcoll.wch = px2char(coll.wpx);\n\t\tcoll.width = char2width(coll.wch);\n\t\tcoll.MDW = MDW;\n\t} else if(typeof coll.wch == 'number') {\n\t\tcoll.width = char2width(coll.wch);\n\t\tcoll.wpx = width2px(coll.width);\n\t\tcoll.MDW = MDW;\n\t}\n\tif(coll.customWidth) delete coll.customWidth;\n}\n\nvar DEF_PPI = 96, PPI = DEF_PPI;\nfunction px2pt(px) { return px * 96 / PPI; }\nfunction pt2px(pt) { return pt * PPI / 96; }\n\n/* [MS-EXSPXML3] 2.4.54 ST_enmPattern */\nvar XLMLPatternTypeMap = {\n\t\"None\": \"none\",\n\t\"Solid\": \"solid\",\n\t\"Gray50\": \"mediumGray\",\n\t\"Gray75\": \"darkGray\",\n\t\"Gray25\": \"lightGray\",\n\t\"HorzStripe\": \"darkHorizontal\",\n\t\"VertStripe\": \"darkVertical\",\n\t\"ReverseDiagStripe\": \"darkDown\",\n\t\"DiagStripe\": \"darkUp\",\n\t\"DiagCross\": \"darkGrid\",\n\t\"ThickDiagCross\": \"darkTrellis\",\n\t\"ThinHorzStripe\": \"lightHorizontal\",\n\t\"ThinVertStripe\": \"lightVertical\",\n\t\"ThinReverseDiagStripe\": \"lightDown\",\n\t\"ThinHorzCross\": \"lightGrid\"\n};\n\n/* 18.8.5 borders CT_Borders */\nfunction parse_borders(t, styles, themes, opts) {\n\tstyles.Borders = [];\n\tvar border = {};\n\tvar pass = false;\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '<borders': case '<borders>': case '</borders>': break;\n\n\t\t\t/* 18.8.4 border CT_Border */\n\t\t\tcase '<border': case '<border>': case '<border/>':\n\t\t\t\tborder = /*::(*/{}/*:: :any)*/;\n\t\t\t\tif(y.diagonalUp) border.diagonalUp = parsexmlbool(y.diagonalUp);\n\t\t\t\tif(y.diagonalDown) border.diagonalDown = parsexmlbool(y.diagonalDown);\n\t\t\t\tstyles.Borders.push(border);\n\t\t\t\tbreak;\n\t\t\tcase '</border>': break;\n\n\t\t\t/* note: not in spec, appears to be CT_BorderPr */\n\t\t\tcase '<left/>': break;\n\t\t\tcase '<left': case '<left>': break;\n\t\t\tcase '</left>': break;\n\n\t\t\t/* note: not in spec, appears to be CT_BorderPr */\n\t\t\tcase '<right/>': break;\n\t\t\tcase '<right': case '<right>': break;\n\t\t\tcase '</right>': break;\n\n\t\t\t/* 18.8.43 top CT_BorderPr */\n\t\t\tcase '<top/>': break;\n\t\t\tcase '<top': case '<top>': break;\n\t\t\tcase '</top>': break;\n\n\t\t\t/* 18.8.6 bottom CT_BorderPr */\n\t\t\tcase '<bottom/>': break;\n\t\t\tcase '<bottom': case '<bottom>': break;\n\t\t\tcase '</bottom>': break;\n\n\t\t\t/* 18.8.13 diagonal CT_BorderPr */\n\t\t\tcase '<diagonal': case '<diagonal>': case '<diagonal/>': break;\n\t\t\tcase '</diagonal>': break;\n\n\t\t\t/* 18.8.25 horizontal CT_BorderPr */\n\t\t\tcase '<horizontal': case '<horizontal>': case '<horizontal/>': break;\n\t\t\tcase '</horizontal>': break;\n\n\t\t\t/* 18.8.44 vertical CT_BorderPr */\n\t\t\tcase '<vertical': case '<vertical>': case '<vertical/>': break;\n\t\t\tcase '</vertical>': break;\n\n\t\t\t/* 18.8.37 start CT_BorderPr */\n\t\t\tcase '<start': case '<start>': case '<start/>': break;\n\t\t\tcase '</start>': break;\n\n\t\t\t/* 18.8.16 end CT_BorderPr */\n\t\t\tcase '<end': case '<end>': case '<end/>': break;\n\t\t\tcase '</end>': break;\n\n\t\t\t/* 18.8.? color CT_Color */\n\t\t\tcase '<color': case '<color>':\n\t\t\t\tbreak;\n\t\t\tcase '<color/>': case '</color>': break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '<extLst': case '<extLst>': case '</extLst>': break;\n\t\t\tcase '<ext': pass = true; break;\n\t\t\tcase '</ext>': pass = false; break;\n\t\t\tdefault: if(opts && opts.WTF) {\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in borders');\n\t\t\t}\n\t\t}\n\t});\n}\n\n/* 18.8.21 fills CT_Fills */\nfunction parse_fills(t, styles, themes, opts) {\n\tstyles.Fills = [];\n\tvar fill = {};\n\tvar pass = false;\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '<fills': case '<fills>': case '</fills>': break;\n\n\t\t\t/* 18.8.20 fill CT_Fill */\n\t\t\tcase '<fill>': case '<fill': case '<fill/>':\n\t\t\t\tfill = {}; styles.Fills.push(fill); break;\n\t\t\tcase '</fill>': break;\n\n\t\t\t/* 18.8.24 gradientFill CT_GradientFill */\n\t\t\tcase '<gradientFill>': break;\n\t\t\tcase '<gradientFill':\n\t\t\tcase '</gradientFill>': styles.Fills.push(fill); fill = {}; break;\n\n\t\t\t/* 18.8.32 patternFill CT_PatternFill */\n\t\t\tcase '<patternFill': case '<patternFill>':\n\t\t\t\tif(y.patternType) fill.patternType = y.patternType;\n\t\t\t\tbreak;\n\t\t\tcase '<patternFill/>': case '</patternFill>': break;\n\n\t\t\t/* 18.8.3 bgColor CT_Color */\n\t\t\tcase '<bgColor':\n\t\t\t\tif(!fill.bgColor) fill.bgColor = {};\n\t\t\t\tif(y.indexed) fill.bgColor.indexed = parseInt(y.indexed, 10);\n\t\t\t\tif(y.theme) fill.bgColor.theme = parseInt(y.theme, 10);\n\t\t\t\tif(y.tint) fill.bgColor.tint = parseFloat(y.tint);\n\t\t\t\t/* Excel uses ARGB strings */\n\t\t\t\tif(y.rgb) fill.bgColor.rgb = y.rgb.slice(-6);\n\t\t\t\tbreak;\n\t\t\tcase '<bgColor/>': case '</bgColor>': break;\n\n\t\t\t/* 18.8.19 fgColor CT_Color */\n\t\t\tcase '<fgColor':\n\t\t\t\tif(!fill.fgColor) fill.fgColor = {};\n\t\t\t\tif(y.theme) fill.fgColor.theme = parseInt(y.theme, 10);\n\t\t\t\tif(y.tint) fill.fgColor.tint = parseFloat(y.tint);\n\t\t\t\t/* Excel uses ARGB strings */\n\t\t\t\tif(y.rgb != null) fill.fgColor.rgb = y.rgb.slice(-6);\n\t\t\t\tbreak;\n\t\t\tcase '<fgColor/>': case '</fgColor>': break;\n\n\t\t\t/* 18.8.38 stop CT_GradientStop */\n\t\t\tcase '<stop': case '<stop/>': break;\n\t\t\tcase '</stop>': break;\n\n\t\t\t/* 18.8.? color CT_Color */\n\t\t\tcase '<color': case '<color/>': break;\n\t\t\tcase '</color>': break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '<extLst': case '<extLst>': case '</extLst>': break;\n\t\t\tcase '<ext': pass = true; break;\n\t\t\tcase '</ext>': pass = false; break;\n\t\t\tdefault: if(opts && opts.WTF) {\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in fills');\n\t\t\t}\n\t\t}\n\t});\n}\n\n/* 18.8.23 fonts CT_Fonts */\nfunction parse_fonts(t, styles, themes, opts) {\n\tstyles.Fonts = [];\n\tvar font = {};\n\tvar pass = false;\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '<fonts': case '<fonts>': case '</fonts>': break;\n\n\t\t\t/* 18.8.22 font CT_Font */\n\t\t\tcase '<font': case '<font>': break;\n\t\t\tcase '</font>': case '<font/>':\n\t\t\t\tstyles.Fonts.push(font);\n\t\t\t\tfont = {};\n\t\t\t\tbreak;\n\n\t\t\t/* 18.8.29 name CT_FontName */\n\t\t\tcase '<name': if(y.val) font.name = utf8read(y.val); break;\n\t\t\tcase '<name/>': case '</name>': break;\n\n\t\t\t/* 18.8.2 b CT_BooleanProperty */\n\t\t\tcase '<b': font.bold = y.val ? parsexmlbool(y.val) : 1; break;\n\t\t\tcase '<b/>': font.bold = 1; break;\n\n\t\t\t/* 18.8.26 i CT_BooleanProperty */\n\t\t\tcase '<i': font.italic = y.val ? parsexmlbool(y.val) : 1; break;\n\t\t\tcase '<i/>': font.italic = 1; break;\n\n\t\t\t/* 18.4.13 u CT_UnderlineProperty */\n\t\t\tcase '<u':\n\t\t\t\tswitch(y.val) {\n\t\t\t\t\tcase \"none\": font.underline = 0x00; break;\n\t\t\t\t\tcase \"single\": font.underline = 0x01; break;\n\t\t\t\t\tcase \"double\": font.underline = 0x02; break;\n\t\t\t\t\tcase \"singleAccounting\": font.underline = 0x21; break;\n\t\t\t\t\tcase \"doubleAccounting\": font.underline = 0x22; break;\n\t\t\t\t} break;\n\t\t\tcase '<u/>': font.underline = 1; break;\n\n\t\t\t/* 18.4.10 strike CT_BooleanProperty */\n\t\t\tcase '<strike': font.strike = y.val ? parsexmlbool(y.val) : 1; break;\n\t\t\tcase '<strike/>': font.strike = 1; break;\n\n\t\t\t/* 18.4.2 outline CT_BooleanProperty */\n\t\t\tcase '<outline': font.outline = y.val ? parsexmlbool(y.val) : 1; break;\n\t\t\tcase '<outline/>': font.outline = 1; break;\n\n\t\t\t/* 18.8.36 shadow CT_BooleanProperty */\n\t\t\tcase '<shadow': font.shadow = y.val ? parsexmlbool(y.val) : 1; break;\n\t\t\tcase '<shadow/>': font.shadow = 1; break;\n\n\t\t\t/* 18.8.12 condense CT_BooleanProperty */\n\t\t\tcase '<condense': font.condense = y.val ? parsexmlbool(y.val) : 1; break;\n\t\t\tcase '<condense/>': font.condense = 1; break;\n\n\t\t\t/* 18.8.17 extend CT_BooleanProperty */\n\t\t\tcase '<extend': font.extend = y.val ? parsexmlbool(y.val) : 1; break;\n\t\t\tcase '<extend/>': font.extend = 1; break;\n\n\t\t\t/* 18.4.11 sz CT_FontSize */\n\t\t\tcase '<sz': if(y.val) font.sz = +y.val; break;\n\t\t\tcase '<sz/>': case '</sz>': break;\n\n\t\t\t/* 18.4.14 vertAlign CT_VerticalAlignFontProperty */\n\t\t\tcase '<vertAlign': if(y.val) font.vertAlign = y.val; break;\n\t\t\tcase '<vertAlign/>': case '</vertAlign>': break;\n\n\t\t\t/* 18.8.18 family CT_FontFamily */\n\t\t\tcase '<family': if(y.val) font.family = parseInt(y.val,10); break;\n\t\t\tcase '<family/>': case '</family>': break;\n\n\t\t\t/* 18.8.35 scheme CT_FontScheme */\n\t\t\tcase '<scheme': if(y.val) font.scheme = y.val; break;\n\t\t\tcase '<scheme/>': case '</scheme>': break;\n\n\t\t\t/* 18.4.1 charset CT_IntProperty */\n\t\t\tcase '<charset':\n\t\t\t\tif(y.val == '1') break;\n\t\t\t\ty.codepage = CS2CP[parseInt(y.val, 10)];\n\t\t\t\tbreak;\n\n\t\t\t/* 18.?.? color CT_Color */\n\t\t\tcase '<color':\n\t\t\t\tif(!font.color) font.color = {};\n\t\t\t\tif(y.auto) font.color.auto = parsexmlbool(y.auto);\n\n\t\t\t\tif(y.rgb) font.color.rgb = y.rgb.slice(-6);\n\t\t\t\telse if(y.indexed) {\n\t\t\t\t\tfont.color.index = parseInt(y.indexed, 10);\n\t\t\t\t\tvar icv = XLSIcv[font.color.index];\n\t\t\t\t\tif(font.color.index == 81) icv = XLSIcv[1];\n\t\t\t\t\tif(!icv) icv = XLSIcv[1]; //throw new Error(x); // note: 206 is valid\n\t\t\t\t\tfont.color.rgb = icv[0].toString(16) + icv[1].toString(16) + icv[2].toString(16);\n\t\t\t\t} else if(y.theme) {\n\t\t\t\t\tfont.color.theme = parseInt(y.theme, 10);\n\t\t\t\t\tif(y.tint) font.color.tint = parseFloat(y.tint);\n\t\t\t\t\tif(y.theme && themes.themeElements && themes.themeElements.clrScheme) {\n\t\t\t\t\t\tfont.color.rgb = rgb_tint(themes.themeElements.clrScheme[font.color.theme].rgb, font.color.tint || 0);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\t\t\tcase '<color/>': case '</color>': break;\n\n\t\t\t/* note: sometimes mc:AlternateContent appears bare */\n\t\t\tcase '<AlternateContent': pass = true; break;\n\t\t\tcase '</AlternateContent>': pass = false; break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '<extLst': case '<extLst>': case '</extLst>': break;\n\t\t\tcase '<ext': pass = true; break;\n\t\t\tcase '</ext>': pass = false; break;\n\t\t\tdefault: if(opts && opts.WTF) {\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in fonts');\n\t\t\t}\n\t\t}\n\t});\n}\n\n/* 18.8.31 numFmts CT_NumFmts */\nfunction parse_numFmts(t, styles, opts) {\n\tstyles.NumberFmt = [];\n\tvar k/*Array<number>*/ = (keys(table_fmt)/*:any*/);\n\tfor(var i=0; i < k.length; ++i) styles.NumberFmt[k[i]] = table_fmt[k[i]];\n\tvar m = t[0].match(tagregex);\n\tif(!m) return;\n\tfor(i=0; i < m.length; ++i) {\n\t\tvar y = parsexmltag(m[i]);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '<numFmts': case '</numFmts>': case '<numFmts/>': case '<numFmts>': break;\n\t\t\tcase '<numFmt': {\n\t\t\t\tvar f=unescapexml(utf8read(y.formatCode)), j=parseInt(y.numFmtId,10);\n\t\t\t\tstyles.NumberFmt[j] = f;\n\t\t\t\tif(j>0) {\n\t\t\t\t\tif(j > 0x188) {\n\t\t\t\t\t\tfor(j = 0x188; j > 0x3c; --j) if(styles.NumberFmt[j] == null) break;\n\t\t\t\t\t\tstyles.NumberFmt[j] = f;\n\t\t\t\t\t}\n\t\t\t\t\tSSF__load(f,j);\n\t\t\t\t}\n\t\t\t} break;\n\t\t\tcase '</numFmt>': break;\n\t\t\tdefault: if(opts.WTF) throw new Error('unrecognized ' + y[0] + ' in numFmts');\n\t\t}\n\t}\n}\n\nfunction write_numFmts(NF/*:{[n:number|string]:string}*//*::, opts*/) {\n\tvar o = [\"<numFmts>\"];\n\t[[5,8],[23,26],[41,44],[/*63*/50,/*66],[164,*/392]].forEach(function(r) {\n\t\tfor(var i = r[0]; i <= r[1]; ++i) if(NF[i] != null) o[o.length] = (writextag('numFmt',null,{numFmtId:i,formatCode:escapexml(NF[i])}));\n\t});\n\tif(o.length === 1) return \"\";\n\to[o.length] = (\"</numFmts>\");\n\to[0] = writextag('numFmts', null, { count:o.length-2 }).replace(\"/>\", \">\");\n\treturn o.join(\"\");\n}\n\n/* 18.8.10 cellXfs CT_CellXfs */\nvar cellXF_uint = [ \"numFmtId\", \"fillId\", \"fontId\", \"borderId\", \"xfId\" ];\nvar cellXF_bool = [ \"applyAlignment\", \"applyBorder\", \"applyFill\", \"applyFont\", \"applyNumberFormat\", \"applyProtection\", \"pivotButton\", \"quotePrefix\" ];\nfunction parse_cellXfs(t, styles, opts) {\n\tstyles.CellXf = [];\n\tvar xf;\n\tvar pass = false;\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x), i = 0;\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '<cellXfs': case '<cellXfs>': case '<cellXfs/>': case '</cellXfs>': break;\n\n\t\t\t/* 18.8.45 xf CT_Xf */\n\t\t\tcase '<xf': case '<xf/>':\n\t\t\t\txf = y;\n\t\t\t\tdelete xf[0];\n\t\t\t\tfor(i = 0; i < cellXF_uint.length; ++i) if(xf[cellXF_uint[i]])\n\t\t\t\t\txf[cellXF_uint[i]] = parseInt(xf[cellXF_uint[i]], 10);\n\t\t\t\tfor(i = 0; i < cellXF_bool.length; ++i) if(xf[cellXF_bool[i]])\n\t\t\t\t\txf[cellXF_bool[i]] = parsexmlbool(xf[cellXF_bool[i]]);\n\t\t\t\tif(styles.NumberFmt && xf.numFmtId > 0x188) {\n\t\t\t\t\tfor(i = 0x188; i > 0x3c; --i) if(styles.NumberFmt[xf.numFmtId] == styles.NumberFmt[i]) { xf.numFmtId = i; break; }\n\t\t\t\t}\n\t\t\t\tstyles.CellXf.push(xf); break;\n\t\t\tcase '</xf>': break;\n\n\t\t\t/* 18.8.1 alignment CT_CellAlignment */\n\t\t\tcase '<alignment': case '<alignment/>':\n\t\t\t\tvar alignment = {};\n\t\t\t\tif(y.vertical) alignment.vertical = y.vertical;\n\t\t\t\tif(y.horizontal) alignment.horizontal = y.horizontal;\n\t\t\t\tif(y.textRotation != null) alignment.textRotation = y.textRotation;\n\t\t\t\tif(y.indent) alignment.indent = y.indent;\n\t\t\t\tif(y.wrapText) alignment.wrapText = parsexmlbool(y.wrapText);\n\t\t\t\txf.alignment = alignment;\n\t\t\t\tbreak;\n\t\t\tcase '</alignment>': break;\n\n\t\t\t/* 18.8.33 protection CT_CellProtection */\n\t\t\tcase '<protection':\n\t\t\t\tbreak;\n\t\t\tcase '</protection>': case '<protection/>': break;\n\n\t\t\t/* note: sometimes mc:AlternateContent appears bare */\n\t\t\tcase '<AlternateContent': pass = true; break;\n\t\t\tcase '</AlternateContent>': pass = false; break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '<extLst': case '<extLst>': case '</extLst>': break;\n\t\t\tcase '<ext': pass = true; break;\n\t\t\tcase '</ext>': pass = false; break;\n\t\t\tdefault: if(opts && opts.WTF) {\n\t\t\t\tif(!pass) throw new Error('unrecognized ' + y[0] + ' in cellXfs');\n\t\t\t}\n\t\t}\n\t});\n}\n\nfunction write_cellXfs(cellXfs)/*:string*/ {\n\tvar o/*:Array<string>*/ = [];\n\to[o.length] = (writextag('cellXfs',null));\n\tcellXfs.forEach(function(c) {\n\t\to[o.length] = (writextag('xf', null, c));\n\t});\n\to[o.length] = (\"</cellXfs>\");\n\tif(o.length === 2) return \"\";\n\to[0] = writextag('cellXfs',null, {count:o.length-2}).replace(\"/>\",\">\");\n\treturn o.join(\"\");\n}\n\n/* 18.8 Styles CT_Stylesheet*/\nvar parse_sty_xml= /*#__PURE__*/(function make_pstyx() {\nvar numFmtRegex = /<(?:\\w+:)?numFmts([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?numFmts>/;\nvar cellXfRegex = /<(?:\\w+:)?cellXfs([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?cellXfs>/;\nvar fillsRegex = /<(?:\\w+:)?fills([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?fills>/;\nvar fontsRegex = /<(?:\\w+:)?fonts([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?fonts>/;\nvar bordersRegex = /<(?:\\w+:)?borders([^>]*)>[\\S\\s]*?<\\/(?:\\w+:)?borders>/;\n\nreturn function parse_sty_xml(data, themes, opts) {\n\tvar styles = {};\n\tif(!data) return styles;\n\tdata = data.replace(/<!--([\\s\\S]*?)-->/mg,\"\").replace(/<!DOCTYPE[^\\[]*\\[[^\\]]*\\]>/gm,\"\");\n\t/* 18.8.39 styleSheet CT_Stylesheet */\n\tvar t;\n\n\t/* 18.8.31 numFmts CT_NumFmts ? */\n\tif((t=data.match(numFmtRegex))) parse_numFmts(t, styles, opts);\n\n\t/* 18.8.23 fonts CT_Fonts ? */\n\tif((t=data.match(fontsRegex))) parse_fonts(t, styles, themes, opts);\n\n\t/* 18.8.21 fills CT_Fills ? */\n\tif((t=data.match(fillsRegex))) parse_fills(t, styles, themes, opts);\n\n\t/* 18.8.5 borders CT_Borders ? */\n\tif((t=data.match(bordersRegex))) parse_borders(t, styles, themes, opts);\n\n\t/* 18.8.9 cellStyleXfs CT_CellStyleXfs ? */\n\t/* 18.8.8 cellStyles CT_CellStyles ? */\n\n\t/* 18.8.10 cellXfs CT_CellXfs ? */\n\tif((t=data.match(cellXfRegex))) parse_cellXfs(t, styles, opts);\n\n\t/* 18.8.15 dxfs CT_Dxfs ? */\n\t/* 18.8.42 tableStyles CT_TableStyles ? */\n\t/* 18.8.11 colors CT_Colors ? */\n\t/* 18.2.10 extLst CT_ExtensionList ? */\n\n\treturn styles;\n};\n})();\n\nfunction write_sty_xml(wb/*:Workbook*/, opts)/*:string*/ {\n\tvar o = [XML_HEADER, writextag('styleSheet', null, {\n\t\t'xmlns': XMLNS_main[0],\n\t\t'xmlns:vt': XMLNS.vt\n\t})], w;\n\tif(wb.SSF && (w = write_numFmts(wb.SSF)) != null) o[o.length] = w;\n\to[o.length] = ('<fonts count=\"1\"><font><sz val=\"12\"/><color theme=\"1\"/><name val=\"Calibri\"/><family val=\"2\"/><scheme val=\"minor\"/></font></fonts>');\n\to[o.length] = ('<fills count=\"2\"><fill><patternFill patternType=\"none\"/></fill><fill><patternFill patternType=\"gray125\"/></fill></fills>');\n\to[o.length] = ('<borders count=\"1\"><border><left/><right/><top/><bottom/><diagonal/></border></borders>');\n\to[o.length] = ('<cellStyleXfs count=\"1\"><xf numFmtId=\"0\" fontId=\"0\" fillId=\"0\" borderId=\"0\"/></cellStyleXfs>');\n\tif((w = write_cellXfs(opts.cellXfs))) o[o.length] = (w);\n\to[o.length] = ('<cellStyles count=\"1\"><cellStyle name=\"Normal\" xfId=\"0\" builtinId=\"0\"/></cellStyles>');\n\to[o.length] = ('<dxfs count=\"0\"/>');\n\to[o.length] = ('<tableStyles count=\"0\" defaultTableStyle=\"TableStyleMedium9\" defaultPivotStyle=\"PivotStyleMedium4\"/>');\n\n\tif(o.length>2){ o[o.length] = ('</styleSheet>'); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.657 BrtFmt */\nfunction parse_BrtFmt(data, length/*:number*/) {\n\tvar numFmtId = data.read_shift(2);\n\tvar stFmtCode = parse_XLWideString(data,length-2);\n\treturn [numFmtId, stFmtCode];\n}\nfunction write_BrtFmt(i/*:number*/, f/*:string*/, o) {\n\tif(!o) o = new_buf(6 + 4 * f.length);\n\to.write_shift(2, i);\n\twrite_XLWideString(f, o);\n\tvar out = (o.length > o.l) ? o.slice(0, o.l) : o;\n\tif(o.l == null) o.l = o.length;\n\treturn out;\n}\n\n/* [MS-XLSB] 2.4.659 BrtFont TODO */\nfunction parse_BrtFont(data, length/*:number*/, opts) {\n\tvar out = ({}/*:any*/);\n\n\tout.sz = data.read_shift(2) / 20;\n\n\tvar grbit = parse_FontFlags(data, 2, opts);\n\tif(grbit.fItalic) out.italic = 1;\n\tif(grbit.fCondense) out.condense = 1;\n\tif(grbit.fExtend) out.extend = 1;\n\tif(grbit.fShadow) out.shadow = 1;\n\tif(grbit.fOutline) out.outline = 1;\n\tif(grbit.fStrikeout) out.strike = 1;\n\n\tvar bls = data.read_shift(2);\n\tif(bls === 0x02BC) out.bold = 1;\n\n\tswitch(data.read_shift(2)) {\n\t\t/* case 0: out.vertAlign = \"baseline\"; break; */\n\t\tcase 1: out.vertAlign = \"superscript\"; break;\n\t\tcase 2: out.vertAlign = \"subscript\"; break;\n\t}\n\n\tvar underline = data.read_shift(1);\n\tif(underline != 0) out.underline = underline;\n\n\tvar family = data.read_shift(1);\n\tif(family > 0) out.family = family;\n\n\tvar bCharSet = data.read_shift(1);\n\tif(bCharSet > 0) out.charset = bCharSet;\n\n\tdata.l++;\n\tout.color = parse_BrtColor(data, 8);\n\n\tswitch(data.read_shift(1)) {\n\t\t/* case 0: out.scheme = \"none\": break; */\n\t\tcase 1: out.scheme = \"major\"; break;\n\t\tcase 2: out.scheme = \"minor\"; break;\n\t}\n\n\tout.name = parse_XLWideString(data, length - 21);\n\n\treturn out;\n}\nfunction write_BrtFont(font/*:any*/, o) {\n\tif(!o) o = new_buf(25+4*32);\n\to.write_shift(2, font.sz * 20);\n\twrite_FontFlags(font, o);\n\to.write_shift(2, font.bold ? 0x02BC : 0x0190);\n\tvar sss = 0;\n\tif(font.vertAlign == \"superscript\") sss = 1;\n\telse if(font.vertAlign == \"subscript\") sss = 2;\n\to.write_shift(2, sss);\n\to.write_shift(1, font.underline || 0);\n\to.write_shift(1, font.family || 0);\n\to.write_shift(1, font.charset || 0);\n\to.write_shift(1, 0);\n\twrite_BrtColor(font.color, o);\n\tvar scheme = 0;\n\tif(font.scheme == \"major\") scheme = 1;\n\tif(font.scheme == \"minor\") scheme = 2;\n\to.write_shift(1, scheme);\n\twrite_XLWideString(font.name, o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.650 BrtFill */\nvar XLSBFillPTNames = [\n\t\"none\",\n\t\"solid\",\n\t\"mediumGray\",\n\t\"darkGray\",\n\t\"lightGray\",\n\t\"darkHorizontal\",\n\t\"darkVertical\",\n\t\"darkDown\",\n\t\"darkUp\",\n\t\"darkGrid\",\n\t\"darkTrellis\",\n\t\"lightHorizontal\",\n\t\"lightVertical\",\n\t\"lightDown\",\n\t\"lightUp\",\n\t\"lightGrid\",\n\t\"lightTrellis\",\n\t\"gray125\",\n\t\"gray0625\"\n];\nvar rev_XLSBFillPTNames/*:EvertNumType*/;\n/* TODO: gradient fill representation */\nvar parse_BrtFill = parsenoop;\nfunction write_BrtFill(fill, o) {\n\tif(!o) o = new_buf(4*3 + 8*7 + 16*1);\n\tif(!rev_XLSBFillPTNames) rev_XLSBFillPTNames = (evert(XLSBFillPTNames)/*:any*/);\n\tvar fls/*:number*/ = rev_XLSBFillPTNames[fill.patternType];\n\tif(fls == null) fls = 0x28;\n\to.write_shift(4, fls);\n\tvar j = 0;\n\tif(fls != 0x28) {\n\t\t/* TODO: custom FG Color */\n\t\twrite_BrtColor({auto:1}, o);\n\t\t/* TODO: custom BG Color */\n\t\twrite_BrtColor({auto:1}, o);\n\n\t\tfor(; j < 12; ++j) o.write_shift(4, 0);\n\t} else {\n\t\tfor(; j < 4; ++j) o.write_shift(4, 0);\n\n\t\tfor(; j < 12; ++j) o.write_shift(4, 0); /* TODO */\n\t\t/* iGradientType */\n\t\t/* xnumDegree */\n\t\t/* xnumFillToLeft */\n\t\t/* xnumFillToRight */\n\t\t/* xnumFillToTop */\n\t\t/* xnumFillToBottom */\n\t\t/* cNumStop */\n\t\t/* xfillGradientStop */\n\t}\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.824 BrtXF */\nfunction parse_BrtXF(data, length/*:number*/) {\n\tvar tgt = data.l + length;\n\tvar ixfeParent = data.read_shift(2);\n\tvar ifmt = data.read_shift(2);\n\tdata.l = tgt;\n\treturn {ixfe:ixfeParent, numFmtId:ifmt };\n}\nfunction write_BrtXF(data, ixfeP, o) {\n\tif(!o) o = new_buf(16);\n\to.write_shift(2, ixfeP||0);\n\to.write_shift(2, data.numFmtId||0);\n\to.write_shift(2, 0); /* iFont */\n\to.write_shift(2, 0); /* iFill */\n\to.write_shift(2, 0); /* ixBorder */\n\to.write_shift(1, 0); /* trot */\n\to.write_shift(1, 0); /* indent */\n\tvar flow = 0;\n\to.write_shift(1, flow); /* flags */\n\to.write_shift(1, 0); /* flags */\n\to.write_shift(1, 0); /* xfGrbitAtr */\n\to.write_shift(1, 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.4 Blxf TODO */\nfunction write_Blxf(data, o) {\n\tif(!o) o = new_buf(10);\n\to.write_shift(1, 0); /* dg */\n\to.write_shift(1, 0);\n\to.write_shift(4, 0); /* color */\n\to.write_shift(4, 0); /* color */\n\treturn o;\n}\n/* [MS-XLSB] 2.4.302 BrtBorder TODO */\nvar parse_BrtBorder = parsenoop;\nfunction write_BrtBorder(border, o) {\n\tif(!o) o = new_buf(51);\n\to.write_shift(1, 0); /* diagonal */\n\twrite_Blxf(null, o); /* top */\n\twrite_Blxf(null, o); /* bottom */\n\twrite_Blxf(null, o); /* left */\n\twrite_Blxf(null, o); /* right */\n\twrite_Blxf(null, o); /* diag */\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.763 BrtStyle TODO */\nfunction write_BrtStyle(style, o) {\n\tif(!o) o = new_buf(12+4*10);\n\to.write_shift(4, style.xfId);\n\to.write_shift(2, 1);\n\to.write_shift(1, +style.builtinId);\n\to.write_shift(1, 0); /* iLevel */\n\twrite_XLNullableWideString(style.name || \"\", o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.272 BrtBeginTableStyles */\nfunction write_BrtBeginTableStyles(cnt, defTableStyle, defPivotStyle) {\n\tvar o = new_buf(4+256*2*4);\n\to.write_shift(4, cnt);\n\twrite_XLNullableWideString(defTableStyle, o);\n\twrite_XLNullableWideString(defPivotStyle, o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.1.7.50 Styles */\nfunction parse_sty_bin(data, themes, opts) {\n\tvar styles = {};\n\tstyles.NumberFmt = ([]/*:any*/);\n\tfor(var y in table_fmt) styles.NumberFmt[y] = table_fmt[y];\n\n\tstyles.CellXf = [];\n\tstyles.Fonts = [];\n\tvar state/*:Array<string>*/ = [];\n\tvar pass = false;\n\trecordhopper(data, function hopper_sty(val, R, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x002C: /* BrtFmt */\n\t\t\t\tstyles.NumberFmt[val[0]] = val[1]; SSF__load(val[1], val[0]);\n\t\t\t\tbreak;\n\t\t\tcase 0x002B: /* BrtFont */\n\t\t\t\tstyles.Fonts.push(val);\n\t\t\t\tif(val.color.theme != null && themes && themes.themeElements && themes.themeElements.clrScheme) {\n\t\t\t\t\tval.color.rgb = rgb_tint(themes.themeElements.clrScheme[val.color.theme].rgb, val.color.tint || 0);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 0x0401: /* BrtKnownFonts */ break;\n\t\t\tcase 0x002D: /* BrtFill */\n\t\t\t\tbreak;\n\t\t\tcase 0x002E: /* BrtBorder */\n\t\t\t\tbreak;\n\t\t\tcase 0x002F: /* BrtXF */\n\t\t\t\tif(state[state.length - 1] == 0x0269 /* BrtBeginCellXFs */) {\n\t\t\t\t\tstyles.CellXf.push(val);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 0x0030: /* BrtStyle */\n\t\t\tcase 0x01FB: /* BrtDXF */\n\t\t\tcase 0x023C: /* BrtMRUColor */\n\t\t\tcase 0x01DB: /* BrtIndexedColor */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0493: /* BrtDXF14 */\n\t\t\tcase 0x0836: /* BrtDXF15 */\n\t\t\tcase 0x046A: /* BrtSlicerStyleElement */\n\t\t\tcase 0x0200: /* BrtTableStyleElement */\n\t\t\tcase 0x082F: /* BrtTimelineStyleElement */\n\t\t\tcase 0x0C00: /* BrtUid */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* BrtFRTBegin */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* BrtFRTEnd */\n\t\t\t\tpass = false; break;\n\t\t\tcase 0x0025: /* BrtACBegin */\n\t\t\t\tstate.push(RT); pass = true; break;\n\t\t\tcase 0x0026: /* BrtACEnd */\n\t\t\t\tstate.pop(); pass = false; break;\n\n\t\t\tdefault:\n\t\t\t\tif(R.T > 0) state.push(RT);\n\t\t\t\telse if(R.T < 0) state.pop();\n\t\t\t\telse if(!pass || (opts.WTF && state[state.length-1] != 0x0025 /* BrtACBegin */)) throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n\t\t}\n\t});\n\treturn styles;\n}\n\nfunction write_FMTS_bin(ba, NF/*:?SSFTable*/) {\n\tif(!NF) return;\n\tvar cnt = 0;\n\t[[5,8],[23,26],[41,44],[/*63*/50,/*66],[164,*/392]].forEach(function(r) {\n\t\t/*:: if(!NF) return; */\n\t\tfor(var i = r[0]; i <= r[1]; ++i) if(NF[i] != null) ++cnt;\n\t});\n\n\tif(cnt == 0) return;\n\twrite_record(ba, 0x0267 /* BrtBeginFmts */, write_UInt32LE(cnt));\n\t[[5,8],[23,26],[41,44],[/*63*/50,/*66],[164,*/392]].forEach(function(r) {\n\t\t/*:: if(!NF) return; */\n\t\tfor(var i = r[0]; i <= r[1]; ++i) if(NF[i] != null) write_record(ba, 0x002C /* BrtFmt */, write_BrtFmt(i, NF[i]));\n\t});\n\twrite_record(ba, 0x0268 /* BrtEndFmts */);\n}\n\nfunction write_FONTS_bin(ba/*::, data*/) {\n\tvar cnt = 1;\n\n\tif(cnt == 0) return;\n\twrite_record(ba, 0x0263 /* BrtBeginFonts */, write_UInt32LE(cnt));\n\twrite_record(ba, 0x002B /* BrtFont */, write_BrtFont({\n\t\tsz:12,\n\t\tcolor: {theme:1},\n\t\tname: \"Calibri\",\n\t\tfamily: 2,\n\t\tscheme: \"minor\"\n\t}));\n\t/* 1*65491BrtFont [ACFONTS] */\n\twrite_record(ba, 0x0264 /* BrtEndFonts */);\n}\n\nfunction write_FILLS_bin(ba/*::, data*/) {\n\tvar cnt = 2;\n\n\tif(cnt == 0) return;\n\twrite_record(ba, 0x025B /* BrtBeginFills */, write_UInt32LE(cnt));\n\twrite_record(ba, 0x002D /* BrtFill */, write_BrtFill({patternType:\"none\"}));\n\twrite_record(ba, 0x002D /* BrtFill */, write_BrtFill({patternType:\"gray125\"}));\n\t/* 1*65431BrtFill */\n\twrite_record(ba, 0x025C /* BrtEndFills */);\n}\n\nfunction write_BORDERS_bin(ba/*::, data*/) {\n\tvar cnt = 1;\n\n\tif(cnt == 0) return;\n\twrite_record(ba, 0x0265 /* BrtBeginBorders */, write_UInt32LE(cnt));\n\twrite_record(ba, 0x002E /* BrtBorder */, write_BrtBorder({}));\n\t/* 1*65430BrtBorder */\n\twrite_record(ba, 0x0266 /* BrtEndBorders */);\n}\n\nfunction write_CELLSTYLEXFS_bin(ba/*::, data*/) {\n\tvar cnt = 1;\n\twrite_record(ba, 0x0272 /* BrtBeginCellStyleXFs */, write_UInt32LE(cnt));\n\twrite_record(ba, 0x002F /* BrtXF */, write_BrtXF({\n\t\tnumFmtId: 0,\n\t\tfontId: 0,\n\t\tfillId: 0,\n\t\tborderId: 0\n\t}, 0xFFFF));\n\t/* 1*65430(BrtXF *FRT) */\n\twrite_record(ba, 0x0273 /* BrtEndCellStyleXFs */);\n}\n\nfunction write_CELLXFS_bin(ba, data) {\n\twrite_record(ba, 0x0269 /* BrtBeginCellXFs */, write_UInt32LE(data.length));\n\tdata.forEach(function(c) { write_record(ba, 0x002F /* BrtXF */, write_BrtXF(c,0)); });\n\t/* 1*65430(BrtXF *FRT) */\n\twrite_record(ba, 0x026A /* BrtEndCellXFs */);\n}\n\nfunction write_STYLES_bin(ba/*::, data*/) {\n\tvar cnt = 1;\n\n\twrite_record(ba, 0x026B /* BrtBeginStyles */, write_UInt32LE(cnt));\n\twrite_record(ba, 0x0030 /* BrtStyle */, write_BrtStyle({\n\t\txfId:0,\n\t\tbuiltinId:0,\n\t\tname:\"Normal\"\n\t}));\n\t/* 1*65430(BrtStyle *FRT) */\n\twrite_record(ba, 0x026C /* BrtEndStyles */);\n}\n\nfunction write_DXFS_bin(ba/*::, data*/) {\n\tvar cnt = 0;\n\n\twrite_record(ba, 0x01F9 /* BrtBeginDXFs */, write_UInt32LE(cnt));\n\t/* *2147483647(BrtDXF *FRT) */\n\twrite_record(ba, 0x01FA /* BrtEndDXFs */);\n}\n\nfunction write_TABLESTYLES_bin(ba/*::, data*/) {\n\tvar cnt = 0;\n\n\twrite_record(ba, 0x01FC /* BrtBeginTableStyles */, write_BrtBeginTableStyles(cnt, \"TableStyleMedium9\", \"PivotStyleMedium4\"));\n\t/* *TABLESTYLE */\n\twrite_record(ba, 0x01FD /* BrtEndTableStyles */);\n}\n\nfunction write_COLORPALETTE_bin(/*::ba, data*/) {\n\treturn;\n\t/* BrtBeginColorPalette [INDEXEDCOLORS] [MRUCOLORS] BrtEndColorPalette */\n}\n\n/* [MS-XLSB] 2.1.7.50 Styles */\nfunction write_sty_bin(wb, opts) {\n\tvar ba = buf_array();\n\twrite_record(ba, 0x0116 /* BrtBeginStyleSheet */);\n\twrite_FMTS_bin(ba, wb.SSF);\n\twrite_FONTS_bin(ba, wb);\n\twrite_FILLS_bin(ba, wb);\n\twrite_BORDERS_bin(ba, wb);\n\twrite_CELLSTYLEXFS_bin(ba, wb);\n\twrite_CELLXFS_bin(ba, opts.cellXfs);\n\twrite_STYLES_bin(ba, wb);\n\twrite_DXFS_bin(ba, wb);\n\twrite_TABLESTYLES_bin(ba, wb);\n\twrite_COLORPALETTE_bin(ba, wb);\n\t/* FRTSTYLESHEET*/\n\twrite_record(ba, 0x0117 /* BrtEndStyleSheet */);\n\treturn ba.end();\n}\n/* Even though theme layout is dk1 lt1 dk2 lt2, true order is lt1 dk1 lt2 dk2 */\nvar XLSXThemeClrScheme = [\n\t'</a:lt1>', '</a:dk1>', '</a:lt2>', '</a:dk2>',\n\t'</a:accent1>', '</a:accent2>', '</a:accent3>',\n\t'</a:accent4>', '</a:accent5>', '</a:accent6>',\n\t'</a:hlink>', '</a:folHlink>'\n];\n/* 20.1.6.2 clrScheme CT_ColorScheme */\nfunction parse_clrScheme(t, themes, opts) {\n\tthemes.themeElements.clrScheme = [];\n\tvar color = {};\n\t(t[0].match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(y[0]) {\n\t\t\t/* 20.1.6.2 clrScheme (Color Scheme) CT_ColorScheme */\n\t\t\tcase '<a:clrScheme': case '</a:clrScheme>': break;\n\n\t\t\t/* 20.1.2.3.32 srgbClr CT_SRgbColor */\n\t\t\tcase '<a:srgbClr':\n\t\t\t\tcolor.rgb = y.val; break;\n\n\t\t\t/* 20.1.2.3.33 sysClr CT_SystemColor */\n\t\t\tcase '<a:sysClr':\n\t\t\t\tcolor.rgb = y.lastClr; break;\n\n\t\t\t/* 20.1.4.1.1 accent1 (Accent 1) */\n\t\t\t/* 20.1.4.1.2 accent2 (Accent 2) */\n\t\t\t/* 20.1.4.1.3 accent3 (Accent 3) */\n\t\t\t/* 20.1.4.1.4 accent4 (Accent 4) */\n\t\t\t/* 20.1.4.1.5 accent5 (Accent 5) */\n\t\t\t/* 20.1.4.1.6 accent6 (Accent 6) */\n\t\t\t/* 20.1.4.1.9 dk1 (Dark 1) */\n\t\t\t/* 20.1.4.1.10 dk2 (Dark 2) */\n\t\t\t/* 20.1.4.1.15 folHlink (Followed Hyperlink) */\n\t\t\t/* 20.1.4.1.19 hlink (Hyperlink) */\n\t\t\t/* 20.1.4.1.22 lt1 (Light 1) */\n\t\t\t/* 20.1.4.1.23 lt2 (Light 2) */\n\t\t\tcase '<a:dk1>': case '</a:dk1>':\n\t\t\tcase '<a:lt1>': case '</a:lt1>':\n\t\t\tcase '<a:dk2>': case '</a:dk2>':\n\t\t\tcase '<a:lt2>': case '</a:lt2>':\n\t\t\tcase '<a:accent1>': case '</a:accent1>':\n\t\t\tcase '<a:accent2>': case '</a:accent2>':\n\t\t\tcase '<a:accent3>': case '</a:accent3>':\n\t\t\tcase '<a:accent4>': case '</a:accent4>':\n\t\t\tcase '<a:accent5>': case '</a:accent5>':\n\t\t\tcase '<a:accent6>': case '</a:accent6>':\n\t\t\tcase '<a:hlink>': case '</a:hlink>':\n\t\t\tcase '<a:folHlink>': case '</a:folHlink>':\n\t\t\t\tif (y[0].charAt(1) === '/') {\n\t\t\t\t\tthemes.themeElements.clrScheme[XLSXThemeClrScheme.indexOf(y[0])] = color;\n\t\t\t\t\tcolor = {};\n\t\t\t\t} else {\n\t\t\t\t\tcolor.name = y[0].slice(3, y[0].length - 1);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tdefault: if(opts && opts.WTF) throw new Error('Unrecognized ' + y[0] + ' in clrScheme');\n\t\t}\n\t});\n}\n\n/* 20.1.4.1.18 fontScheme CT_FontScheme */\nfunction parse_fontScheme(/*::t, themes, opts*/) { }\n\n/* 20.1.4.1.15 fmtScheme CT_StyleMatrix */\nfunction parse_fmtScheme(/*::t, themes, opts*/) { }\n\nvar clrsregex = /<a:clrScheme([^>]*)>[\\s\\S]*<\\/a:clrScheme>/;\nvar fntsregex = /<a:fontScheme([^>]*)>[\\s\\S]*<\\/a:fontScheme>/;\nvar fmtsregex = /<a:fmtScheme([^>]*)>[\\s\\S]*<\\/a:fmtScheme>/;\n\n/* 20.1.6.10 themeElements CT_BaseStyles */\nfunction parse_themeElements(data, themes, opts) {\n\tthemes.themeElements = {};\n\n\tvar t;\n\n\t[\n\t\t/* clrScheme CT_ColorScheme */\n\t\t['clrScheme', clrsregex, parse_clrScheme],\n\t\t/* fontScheme CT_FontScheme */\n\t\t['fontScheme', fntsregex, parse_fontScheme],\n\t\t/* fmtScheme CT_StyleMatrix */\n\t\t['fmtScheme', fmtsregex, parse_fmtScheme]\n\t].forEach(function(m) {\n\t\tif(!(t=data.match(m[1]))) throw new Error(m[0] + ' not found in themeElements');\n\t\tm[2](t, themes, opts);\n\t});\n}\n\nvar themeltregex = /<a:themeElements([^>]*)>[\\s\\S]*<\\/a:themeElements>/;\n\n/* 14.2.7 Theme Part */\nfunction parse_theme_xml(data/*:string*/, opts) {\n\t/* 20.1.6.9 theme CT_OfficeStyleSheet */\n\tif(!data || data.length === 0) data = write_theme();\n\n\tvar t;\n\tvar themes = {};\n\n\t/* themeElements CT_BaseStyles */\n\tif(!(t=data.match(themeltregex))) throw new Error('themeElements not found in theme');\n\tparse_themeElements(t[0], themes, opts);\n\tthemes.raw = data;\n\treturn themes;\n}\n\nfunction write_theme(Themes, opts)/*:string*/ {\n\tif(opts && opts.themeXLSX) return opts.themeXLSX;\n\tif(Themes && typeof Themes.raw == \"string\") return Themes.raw;\n\tvar o = [XML_HEADER];\n\to[o.length] = '<a:theme xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\" name=\"Office Theme\">';\n\to[o.length] = '<a:themeElements>';\n\n\to[o.length] = '<a:clrScheme name=\"Office\">';\n\to[o.length] = '<a:dk1><a:sysClr val=\"windowText\" lastClr=\"000000\"/></a:dk1>';\n\to[o.length] = '<a:lt1><a:sysClr val=\"window\" lastClr=\"FFFFFF\"/></a:lt1>';\n\to[o.length] = '<a:dk2><a:srgbClr val=\"1F497D\"/></a:dk2>';\n\to[o.length] = '<a:lt2><a:srgbClr val=\"EEECE1\"/></a:lt2>';\n\to[o.length] = '<a:accent1><a:srgbClr val=\"4F81BD\"/></a:accent1>';\n\to[o.length] = '<a:accent2><a:srgbClr val=\"C0504D\"/></a:accent2>';\n\to[o.length] = '<a:accent3><a:srgbClr val=\"9BBB59\"/></a:accent3>';\n\to[o.length] = '<a:accent4><a:srgbClr val=\"8064A2\"/></a:accent4>';\n\to[o.length] = '<a:accent5><a:srgbClr val=\"4BACC6\"/></a:accent5>';\n\to[o.length] = '<a:accent6><a:srgbClr val=\"F79646\"/></a:accent6>';\n\to[o.length] = '<a:hlink><a:srgbClr val=\"0000FF\"/></a:hlink>';\n\to[o.length] = '<a:folHlink><a:srgbClr val=\"800080\"/></a:folHlink>';\n\to[o.length] = '</a:clrScheme>';\n\n\to[o.length] = '<a:fontScheme name=\"Office\">';\n\to[o.length] = '<a:majorFont>';\n\to[o.length] = '<a:latin typeface=\"Cambria\"/>';\n\to[o.length] = '<a:ea typeface=\"\"/>';\n\to[o.length] = '<a:cs typeface=\"\"/>';\n\to[o.length] = '<a:font script=\"Jpan\" typeface=\"MS Pゴシック\"/>';\n\to[o.length] = '<a:font script=\"Hang\" typeface=\"맑은 고딕\"/>';\n\to[o.length] = '<a:font script=\"Hans\" typeface=\"宋体\"/>';\n\to[o.length] = '<a:font script=\"Hant\" typeface=\"新細明體\"/>';\n\to[o.length] = '<a:font script=\"Arab\" typeface=\"Times New Roman\"/>';\n\to[o.length] = '<a:font script=\"Hebr\" typeface=\"Times New Roman\"/>';\n\to[o.length] = '<a:font script=\"Thai\" typeface=\"Tahoma\"/>';\n\to[o.length] = '<a:font script=\"Ethi\" typeface=\"Nyala\"/>';\n\to[o.length] = '<a:font script=\"Beng\" typeface=\"Vrinda\"/>';\n\to[o.length] = '<a:font script=\"Gujr\" typeface=\"Shruti\"/>';\n\to[o.length] = '<a:font script=\"Khmr\" typeface=\"MoolBoran\"/>';\n\to[o.length] = '<a:font script=\"Knda\" typeface=\"Tunga\"/>';\n\to[o.length] = '<a:font script=\"Guru\" typeface=\"Raavi\"/>';\n\to[o.length] = '<a:font script=\"Cans\" typeface=\"Euphemia\"/>';\n\to[o.length] = '<a:font script=\"Cher\" typeface=\"Plantagenet Cherokee\"/>';\n\to[o.length] = '<a:font script=\"Yiii\" typeface=\"Microsoft Yi Baiti\"/>';\n\to[o.length] = '<a:font script=\"Tibt\" typeface=\"Microsoft Himalaya\"/>';\n\to[o.length] = '<a:font script=\"Thaa\" typeface=\"MV Boli\"/>';\n\to[o.length] = '<a:font script=\"Deva\" typeface=\"Mangal\"/>';\n\to[o.length] = '<a:font script=\"Telu\" typeface=\"Gautami\"/>';\n\to[o.length] = '<a:font script=\"Taml\" typeface=\"Latha\"/>';\n\to[o.length] = '<a:font script=\"Syrc\" typeface=\"Estrangelo Edessa\"/>';\n\to[o.length] = '<a:font script=\"Orya\" typeface=\"Kalinga\"/>';\n\to[o.length] = '<a:font script=\"Mlym\" typeface=\"Kartika\"/>';\n\to[o.length] = '<a:font script=\"Laoo\" typeface=\"DokChampa\"/>';\n\to[o.length] = '<a:font script=\"Sinh\" typeface=\"Iskoola Pota\"/>';\n\to[o.length] = '<a:font script=\"Mong\" typeface=\"Mongolian Baiti\"/>';\n\to[o.length] = '<a:font script=\"Viet\" typeface=\"Times New Roman\"/>';\n\to[o.length] = '<a:font script=\"Uigh\" typeface=\"Microsoft Uighur\"/>';\n\to[o.length] = '<a:font script=\"Geor\" typeface=\"Sylfaen\"/>';\n\to[o.length] = '</a:majorFont>';\n\to[o.length] = '<a:minorFont>';\n\to[o.length] = '<a:latin typeface=\"Calibri\"/>';\n\to[o.length] = '<a:ea typeface=\"\"/>';\n\to[o.length] = '<a:cs typeface=\"\"/>';\n\to[o.length] = '<a:font script=\"Jpan\" typeface=\"MS Pゴシック\"/>';\n\to[o.length] = '<a:font script=\"Hang\" typeface=\"맑은 고딕\"/>';\n\to[o.length] = '<a:font script=\"Hans\" typeface=\"宋体\"/>';\n\to[o.length] = '<a:font script=\"Hant\" typeface=\"新細明體\"/>';\n\to[o.length] = '<a:font script=\"Arab\" typeface=\"Arial\"/>';\n\to[o.length] = '<a:font script=\"Hebr\" typeface=\"Arial\"/>';\n\to[o.length] = '<a:font script=\"Thai\" typeface=\"Tahoma\"/>';\n\to[o.length] = '<a:font script=\"Ethi\" typeface=\"Nyala\"/>';\n\to[o.length] = '<a:font script=\"Beng\" typeface=\"Vrinda\"/>';\n\to[o.length] = '<a:font script=\"Gujr\" typeface=\"Shruti\"/>';\n\to[o.length] = '<a:font script=\"Khmr\" typeface=\"DaunPenh\"/>';\n\to[o.length] = '<a:font script=\"Knda\" typeface=\"Tunga\"/>';\n\to[o.length] = '<a:font script=\"Guru\" typeface=\"Raavi\"/>';\n\to[o.length] = '<a:font script=\"Cans\" typeface=\"Euphemia\"/>';\n\to[o.length] = '<a:font script=\"Cher\" typeface=\"Plantagenet Cherokee\"/>';\n\to[o.length] = '<a:font script=\"Yiii\" typeface=\"Microsoft Yi Baiti\"/>';\n\to[o.length] = '<a:font script=\"Tibt\" typeface=\"Microsoft Himalaya\"/>';\n\to[o.length] = '<a:font script=\"Thaa\" typeface=\"MV Boli\"/>';\n\to[o.length] = '<a:font script=\"Deva\" typeface=\"Mangal\"/>';\n\to[o.length] = '<a:font script=\"Telu\" typeface=\"Gautami\"/>';\n\to[o.length] = '<a:font script=\"Taml\" typeface=\"Latha\"/>';\n\to[o.length] = '<a:font script=\"Syrc\" typeface=\"Estrangelo Edessa\"/>';\n\to[o.length] = '<a:font script=\"Orya\" typeface=\"Kalinga\"/>';\n\to[o.length] = '<a:font script=\"Mlym\" typeface=\"Kartika\"/>';\n\to[o.length] = '<a:font script=\"Laoo\" typeface=\"DokChampa\"/>';\n\to[o.length] = '<a:font script=\"Sinh\" typeface=\"Iskoola Pota\"/>';\n\to[o.length] = '<a:font script=\"Mong\" typeface=\"Mongolian Baiti\"/>';\n\to[o.length] = '<a:font script=\"Viet\" typeface=\"Arial\"/>';\n\to[o.length] = '<a:font script=\"Uigh\" typeface=\"Microsoft Uighur\"/>';\n\to[o.length] = '<a:font script=\"Geor\" typeface=\"Sylfaen\"/>';\n\to[o.length] = '</a:minorFont>';\n\to[o.length] = '</a:fontScheme>';\n\n\to[o.length] = '<a:fmtScheme name=\"Office\">';\n\to[o.length] = '<a:fillStyleLst>';\n\to[o.length] = '<a:solidFill><a:schemeClr val=\"phClr\"/></a:solidFill>';\n\to[o.length] = '<a:gradFill rotWithShape=\"1\">';\n\to[o.length] = '<a:gsLst>';\n\to[o.length] = '<a:gs pos=\"0\"><a:schemeClr val=\"phClr\"><a:tint val=\"50000\"/><a:satMod val=\"300000\"/></a:schemeClr></a:gs>';\n\to[o.length] = '<a:gs pos=\"35000\"><a:schemeClr val=\"phClr\"><a:tint val=\"37000\"/><a:satMod val=\"300000\"/></a:schemeClr></a:gs>';\n\to[o.length] = '<a:gs pos=\"100000\"><a:schemeClr val=\"phClr\"><a:tint val=\"15000\"/><a:satMod val=\"350000\"/></a:schemeClr></a:gs>';\n\to[o.length] = '</a:gsLst>';\n\to[o.length] = '<a:lin ang=\"16200000\" scaled=\"1\"/>';\n\to[o.length] = '</a:gradFill>';\n\to[o.length] = '<a:gradFill rotWithShape=\"1\">';\n\to[o.length] = '<a:gsLst>';\n\to[o.length] = '<a:gs pos=\"0\"><a:schemeClr val=\"phClr\"><a:tint val=\"100000\"/><a:shade val=\"100000\"/><a:satMod val=\"130000\"/></a:schemeClr></a:gs>';\n\to[o.length] = '<a:gs pos=\"100000\"><a:schemeClr val=\"phClr\"><a:tint val=\"50000\"/><a:shade val=\"100000\"/><a:satMod val=\"350000\"/></a:schemeClr></a:gs>';\n\to[o.length] = '</a:gsLst>';\n\to[o.length] = '<a:lin ang=\"16200000\" scaled=\"0\"/>';\n\to[o.length] = '</a:gradFill>';\n\to[o.length] = '</a:fillStyleLst>';\n\to[o.length] = '<a:lnStyleLst>';\n\to[o.length] = '<a:ln w=\"9525\" cap=\"flat\" cmpd=\"sng\" algn=\"ctr\"><a:solidFill><a:schemeClr val=\"phClr\"><a:shade val=\"95000\"/><a:satMod val=\"105000\"/></a:schemeClr></a:solidFill><a:prstDash val=\"solid\"/></a:ln>';\n\to[o.length] = '<a:ln w=\"25400\" cap=\"flat\" cmpd=\"sng\" algn=\"ctr\"><a:solidFill><a:schemeClr val=\"phClr\"/></a:solidFill><a:prstDash val=\"solid\"/></a:ln>';\n\to[o.length] = '<a:ln w=\"38100\" cap=\"flat\" cmpd=\"sng\" algn=\"ctr\"><a:solidFill><a:schemeClr val=\"phClr\"/></a:solidFill><a:prstDash val=\"solid\"/></a:ln>';\n\to[o.length] = '</a:lnStyleLst>';\n\to[o.length] = '<a:effectStyleLst>';\n\to[o.length] = '<a:effectStyle>';\n\to[o.length] = '<a:effectLst>';\n\to[o.length] = '<a:outerShdw blurRad=\"40000\" dist=\"20000\" dir=\"5400000\" rotWithShape=\"0\"><a:srgbClr val=\"000000\"><a:alpha val=\"38000\"/></a:srgbClr></a:outerShdw>';\n\to[o.length] = '</a:effectLst>';\n\to[o.length] = '</a:effectStyle>';\n\to[o.length] = '<a:effectStyle>';\n\to[o.length] = '<a:effectLst>';\n\to[o.length] = '<a:outerShdw blurRad=\"40000\" dist=\"23000\" dir=\"5400000\" rotWithShape=\"0\"><a:srgbClr val=\"000000\"><a:alpha val=\"35000\"/></a:srgbClr></a:outerShdw>';\n\to[o.length] = '</a:effectLst>';\n\to[o.length] = '</a:effectStyle>';\n\to[o.length] = '<a:effectStyle>';\n\to[o.length] = '<a:effectLst>';\n\to[o.length] = '<a:outerShdw blurRad=\"40000\" dist=\"23000\" dir=\"5400000\" rotWithShape=\"0\"><a:srgbClr val=\"000000\"><a:alpha val=\"35000\"/></a:srgbClr></a:outerShdw>';\n\to[o.length] = '</a:effectLst>';\n\to[o.length] = '<a:scene3d><a:camera prst=\"orthographicFront\"><a:rot lat=\"0\" lon=\"0\" rev=\"0\"/></a:camera><a:lightRig rig=\"threePt\" dir=\"t\"><a:rot lat=\"0\" lon=\"0\" rev=\"1200000\"/></a:lightRig></a:scene3d>';\n\to[o.length] = '<a:sp3d><a:bevelT w=\"63500\" h=\"25400\"/></a:sp3d>';\n\to[o.length] = '</a:effectStyle>';\n\to[o.length] = '</a:effectStyleLst>';\n\to[o.length] = '<a:bgFillStyleLst>';\n\to[o.length] = '<a:solidFill><a:schemeClr val=\"phClr\"/></a:solidFill>';\n\to[o.length] = '<a:gradFill rotWithShape=\"1\">';\n\to[o.length] = '<a:gsLst>';\n\to[o.length] = '<a:gs pos=\"0\"><a:schemeClr val=\"phClr\"><a:tint val=\"40000\"/><a:satMod val=\"350000\"/></a:schemeClr></a:gs>';\n\to[o.length] = '<a:gs pos=\"40000\"><a:schemeClr val=\"phClr\"><a:tint val=\"45000\"/><a:shade val=\"99000\"/><a:satMod val=\"350000\"/></a:schemeClr></a:gs>';\n\to[o.length] = '<a:gs pos=\"100000\"><a:schemeClr val=\"phClr\"><a:shade val=\"20000\"/><a:satMod val=\"255000\"/></a:schemeClr></a:gs>';\n\to[o.length] = '</a:gsLst>';\n\to[o.length] = '<a:path path=\"circle\"><a:fillToRect l=\"50000\" t=\"-80000\" r=\"50000\" b=\"180000\"/></a:path>';\n\to[o.length] = '</a:gradFill>';\n\to[o.length] = '<a:gradFill rotWithShape=\"1\">';\n\to[o.length] = '<a:gsLst>';\n\to[o.length] = '<a:gs pos=\"0\"><a:schemeClr val=\"phClr\"><a:tint val=\"80000\"/><a:satMod val=\"300000\"/></a:schemeClr></a:gs>';\n\to[o.length] = '<a:gs pos=\"100000\"><a:schemeClr val=\"phClr\"><a:shade val=\"30000\"/><a:satMod val=\"200000\"/></a:schemeClr></a:gs>';\n\to[o.length] = '</a:gsLst>';\n\to[o.length] = '<a:path path=\"circle\"><a:fillToRect l=\"50000\" t=\"50000\" r=\"50000\" b=\"50000\"/></a:path>';\n\to[o.length] = '</a:gradFill>';\n\to[o.length] = '</a:bgFillStyleLst>';\n\to[o.length] = '</a:fmtScheme>';\n\to[o.length] = '</a:themeElements>';\n\n\to[o.length] = '<a:objectDefaults>';\n\to[o.length] = '<a:spDef>';\n\to[o.length] = '<a:spPr/><a:bodyPr/><a:lstStyle/><a:style><a:lnRef idx=\"1\"><a:schemeClr val=\"accent1\"/></a:lnRef><a:fillRef idx=\"3\"><a:schemeClr val=\"accent1\"/></a:fillRef><a:effectRef idx=\"2\"><a:schemeClr val=\"accent1\"/></a:effectRef><a:fontRef idx=\"minor\"><a:schemeClr val=\"lt1\"/></a:fontRef></a:style>';\n\to[o.length] = '</a:spDef>';\n\to[o.length] = '<a:lnDef>';\n\to[o.length] = '<a:spPr/><a:bodyPr/><a:lstStyle/><a:style><a:lnRef idx=\"2\"><a:schemeClr val=\"accent1\"/></a:lnRef><a:fillRef idx=\"0\"><a:schemeClr val=\"accent1\"/></a:fillRef><a:effectRef idx=\"1\"><a:schemeClr val=\"accent1\"/></a:effectRef><a:fontRef idx=\"minor\"><a:schemeClr val=\"tx1\"/></a:fontRef></a:style>';\n\to[o.length] = '</a:lnDef>';\n\to[o.length] = '</a:objectDefaults>';\n\to[o.length] = '<a:extraClrSchemeLst/>';\n\to[o.length] = '</a:theme>';\n\treturn o.join(\"\");\n}\n/* [MS-XLS] 2.4.326 TODO: payload is a zip file */\nfunction parse_Theme(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar dwThemeVersion = blob.read_shift(4);\n\tif(dwThemeVersion === 124226) return;\n\tif(!opts.cellStyles) { blob.l = end; return; }\n\tvar data = blob.slice(blob.l);\n\tblob.l = end;\n\tvar zip; try { zip = zip_read(data, {type: \"array\"}); } catch(e) { return; }\n\tvar themeXML = getzipstr(zip, \"theme/theme/theme1.xml\", true);\n\tif(!themeXML) return;\n\treturn parse_theme_xml(themeXML, opts);\n}\n\n/* 2.5.49 */\nfunction parse_ColorTheme(blob/*::, length*/) { return blob.read_shift(4); }\n\n/* 2.5.155 */\nfunction parse_FullColorExt(blob/*::, length*/) {\n\tvar o = {};\n\to.xclrType = blob.read_shift(2);\n\to.nTintShade = blob.read_shift(2);\n\tswitch(o.xclrType) {\n\t\tcase 0: blob.l += 4; break;\n\t\tcase 1: o.xclrValue = parse_IcvXF(blob, 4); break;\n\t\tcase 2: o.xclrValue = parse_LongRGBA(blob, 4); break;\n\t\tcase 3: o.xclrValue = parse_ColorTheme(blob, 4); break;\n\t\tcase 4: blob.l += 4; break;\n\t}\n\tblob.l += 8;\n\treturn o;\n}\n\n/* 2.5.164 TODO: read 7 bits*/\nfunction parse_IcvXF(blob, length) {\n\treturn parsenoop(blob, length);\n}\n\n/* 2.5.280 */\nfunction parse_XFExtGradient(blob, length) {\n\treturn parsenoop(blob, length);\n}\n\n/* [MS-XLS] 2.5.108 */\nfunction parse_ExtProp(blob/*::, length*/)/*:Array<any>*/ {\n\tvar extType = blob.read_shift(2);\n\tvar cb = blob.read_shift(2) - 4;\n\tvar o = [extType];\n\tswitch(extType) {\n\t\tcase 0x04: case 0x05: case 0x07: case 0x08:\n\t\tcase 0x09: case 0x0A: case 0x0B: case 0x0D:\n\t\t\to[1] = parse_FullColorExt(blob, cb); break;\n\t\tcase 0x06: o[1] = parse_XFExtGradient(blob, cb); break;\n\t\tcase 0x0E: case 0x0F: o[1] = blob.read_shift(cb === 1 ? 1 : 2); break;\n\t\tdefault: throw new Error(\"Unrecognized ExtProp type: \" + extType + \" \" + cb);\n\t}\n\treturn o;\n}\n\n/* 2.4.355 */\nfunction parse_XFExt(blob, length) {\n\tvar end = blob.l + length;\n\tblob.l += 2;\n\tvar ixfe = blob.read_shift(2);\n\tblob.l += 2;\n\tvar cexts = blob.read_shift(2);\n\tvar ext/*:AOA*/ = [];\n\twhile(cexts-- > 0) ext.push(parse_ExtProp(blob, end-blob.l));\n\treturn {ixfe:ixfe, ext:ext};\n}\n\n/* xf is an XF, see parse_XFExt for xfext */\nfunction update_xfext(xf, xfext) {\n\txfext.forEach(function(xfe) {\n\t\tswitch(xfe[0]) { /* 2.5.108 extPropData */\n\t\t\tcase 0x04: break; /* foreground color */\n\t\t\tcase 0x05: break; /* background color */\n\t\t\tcase 0x06: break; /* gradient fill */\n\t\t\tcase 0x07: break; /* top cell border color */\n\t\t\tcase 0x08: break; /* bottom cell border color */\n\t\t\tcase 0x09: break; /* left cell border color */\n\t\t\tcase 0x0a: break; /* right cell border color */\n\t\t\tcase 0x0b: break; /* diagonal cell border color */\n\t\t\tcase 0x0d: /* text color */\n\t\t\t\tbreak;\n\t\t\tcase 0x0e: break; /* font scheme */\n\t\t\tcase 0x0f: break; /* indentation level */\n\t\t}\n\t});\n}\n\nfunction parse_BrtMdtinfo(data, length) {\n return {\n flags: data.read_shift(4),\n version: data.read_shift(4),\n name: parse_XLWideString(data, length - 8)\n };\n}\nfunction write_BrtMdtinfo(data) {\n var o = new_buf(12 + 2 * data.name.length);\n o.write_shift(4, data.flags);\n o.write_shift(4, data.version);\n write_XLWideString(data.name, o);\n return o.slice(0, o.l);\n}\nfunction parse_BrtMdb(data) {\n var out = [];\n var cnt = data.read_shift(4);\n while (cnt-- > 0)\n out.push([data.read_shift(4), data.read_shift(4)]);\n return out;\n}\nfunction write_BrtMdb(mdb) {\n var o = new_buf(4 + 8 * mdb.length);\n o.write_shift(4, mdb.length);\n for (var i = 0; i < mdb.length; ++i) {\n o.write_shift(4, mdb[i][0]);\n o.write_shift(4, mdb[i][1]);\n }\n return o;\n}\nfunction write_BrtBeginEsfmd(cnt, name) {\n var o = new_buf(8 + 2 * name.length);\n o.write_shift(4, cnt);\n write_XLWideString(name, o);\n return o.slice(0, o.l);\n}\nfunction parse_BrtBeginEsmdb(data) {\n data.l += 4;\n return data.read_shift(4) != 0;\n}\nfunction write_BrtBeginEsmdb(cnt, cm) {\n var o = new_buf(8);\n o.write_shift(4, cnt);\n o.write_shift(4, cm ? 1 : 0);\n return o;\n}\nfunction parse_xlmeta_bin(data, name, _opts) {\n var out = { Types: [], Cell: [], Value: [] };\n var opts = _opts || {};\n var state = [];\n var pass = false;\n var metatype = 2;\n recordhopper(data, function(val, R, RT) {\n switch (RT) {\n case 335:\n out.Types.push({ name: val.name });\n break;\n case 51:\n val.forEach(function(r) {\n if (metatype == 1)\n out.Cell.push({ type: out.Types[r[0] - 1].name, index: r[1] });\n else if (metatype == 0)\n out.Value.push({ type: out.Types[r[0] - 1].name, index: r[1] });\n });\n break;\n case 337:\n metatype = val ? 1 : 0;\n break;\n case 338:\n metatype = 2;\n break;\n case 35:\n state.push(RT);\n pass = true;\n break;\n case 36:\n state.pop();\n pass = false;\n break;\n default:\n if (R.T) {\n } else if (!pass || opts.WTF && state[state.length - 1] != 35)\n throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n }\n });\n return out;\n}\nfunction write_xlmeta_bin() {\n var ba = buf_array();\n write_record(ba, 332);\n write_record(ba, 334, write_UInt32LE(1));\n write_record(ba, 335, write_BrtMdtinfo({\n name: \"XLDAPR\",\n version: 12e4,\n flags: 3496657072\n }));\n write_record(ba, 336);\n write_record(ba, 339, write_BrtBeginEsfmd(1, \"XLDAPR\"));\n write_record(ba, 52);\n write_record(ba, 35, write_UInt32LE(514));\n write_record(ba, 4096, write_UInt32LE(0));\n write_record(ba, 4097, writeuint16(1));\n write_record(ba, 36);\n write_record(ba, 53);\n write_record(ba, 340);\n write_record(ba, 337, write_BrtBeginEsmdb(1, true));\n write_record(ba, 51, write_BrtMdb([[1, 0]]));\n write_record(ba, 338);\n write_record(ba, 333);\n return ba.end();\n}\nfunction parse_xlmeta_xml(data, name, opts) {\n var out = { Types: [], Cell: [], Value: [] };\n if (!data)\n return out;\n var pass = false;\n var metatype = 2;\n var lastmeta;\n data.replace(tagregex, function(x) {\n var y = parsexmltag(x);\n switch (strip_ns(y[0])) {\n case \"<?xml\":\n break;\n case \"<metadata\":\n case \"</metadata>\":\n break;\n case \"<metadataTypes\":\n case \"</metadataTypes>\":\n break;\n case \"<metadataType\":\n out.Types.push({ name: y.name });\n break;\n case \"</metadataType>\":\n break;\n case \"<futureMetadata\":\n for (var j = 0; j < out.Types.length; ++j)\n if (out.Types[j].name == y.name)\n lastmeta = out.Types[j];\n break;\n case \"</futureMetadata>\":\n break;\n case \"<bk>\":\n break;\n case \"</bk>\":\n break;\n case \"<rc\":\n if (metatype == 1)\n out.Cell.push({ type: out.Types[y.t - 1].name, index: +y.v });\n else if (metatype == 0)\n out.Value.push({ type: out.Types[y.t - 1].name, index: +y.v });\n break;\n case \"</rc>\":\n break;\n case \"<cellMetadata\":\n metatype = 1;\n break;\n case \"</cellMetadata>\":\n metatype = 2;\n break;\n case \"<valueMetadata\":\n metatype = 0;\n break;\n case \"</valueMetadata>\":\n metatype = 2;\n break;\n case \"<extLst\":\n case \"<extLst>\":\n case \"</extLst>\":\n case \"<extLst/>\":\n break;\n case \"<ext\":\n pass = true;\n break;\n case \"</ext>\":\n pass = false;\n break;\n case \"<rvb\":\n if (!lastmeta)\n break;\n if (!lastmeta.offsets)\n lastmeta.offsets = [];\n lastmeta.offsets.push(+y.i);\n break;\n default:\n if (!pass && (opts == null ? void 0 : opts.WTF))\n throw new Error(\"unrecognized \" + y[0] + \" in metadata\");\n }\n return x;\n });\n return out;\n}\nfunction write_xlmeta_xml() {\n var o = [XML_HEADER];\n o.push('<metadata xmlns=\"http://schemas.openxmlformats.org/spreadsheetml/2006/main\" xmlns:xlrd=\"http://schemas.microsoft.com/office/spreadsheetml/2017/richdata\" xmlns:xda=\"http://schemas.microsoft.com/office/spreadsheetml/2017/dynamicarray\">\\n <metadataTypes count=\"1\">\\n <metadataType name=\"XLDAPR\" minSupportedVersion=\"120000\" copy=\"1\" pasteAll=\"1\" pasteValues=\"1\" merge=\"1\" splitFirst=\"1\" rowColShift=\"1\" clearFormats=\"1\" clearComments=\"1\" assign=\"1\" coerce=\"1\" cellMeta=\"1\"/>\\n </metadataTypes>\\n <futureMetadata name=\"XLDAPR\" count=\"1\">\\n <bk>\\n <extLst>\\n <ext uri=\"{bdbb8cdc-fa1e-496e-a857-3c3f30c029c3}\">\\n <xda:dynamicArrayProperties fDynamic=\"1\" fCollapsed=\"0\"/>\\n </ext>\\n </extLst>\\n </bk>\\n </futureMetadata>\\n <cellMetadata count=\"1\">\\n <bk>\\n <rc t=\"1\" v=\"0\"/>\\n </bk>\\n </cellMetadata>\\n</metadata>');\n return o.join(\"\");\n}\n/* 18.6 Calculation Chain */\nfunction parse_cc_xml(data/*::, name, opts*/)/*:Array<any>*/ {\n\tvar d = [];\n\tif(!data) return d;\n\tvar i = 1;\n\t(data.match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(y[0]) {\n\t\t\tcase '<?xml': break;\n\t\t\t/* 18.6.2 calcChain CT_CalcChain 1 */\n\t\t\tcase '<calcChain': case '<calcChain>': case '</calcChain>': break;\n\t\t\t/* 18.6.1 c CT_CalcCell 1 */\n\t\t\tcase '<c': delete y[0]; if(y.i) i = y.i; else y.i = i; d.push(y); break;\n\t\t}\n\t});\n\treturn d;\n}\n\n//function write_cc_xml(data, opts) { }\n\n/* [MS-XLSB] 2.6.4.1 */\nfunction parse_BrtCalcChainItem$(data) {\n\tvar out = {};\n\tout.i = data.read_shift(4);\n\tvar cell = {};\n\tcell.r = data.read_shift(4);\n\tcell.c = data.read_shift(4);\n\tout.r = encode_cell(cell);\n\tvar flags = data.read_shift(1);\n\tif(flags & 0x2) out.l = '1';\n\tif(flags & 0x8) out.a = '1';\n\treturn out;\n}\n\n/* 18.6 Calculation Chain */\nfunction parse_cc_bin(data, name, opts) {\n\tvar out = [];\n\tvar pass = false;\n\trecordhopper(data, function hopper_cc(val, R, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x003F: /* 'BrtCalcChainItem$' */\n\t\t\t\tout.push(val); break;\n\n\t\t\tdefault:\n\t\t\t\tif(R.T){/* empty */}\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n\t\t}\n\t});\n\treturn out;\n}\n\n//function write_cc_bin(data, opts) { }\n/* 18.14 Supplementary Workbook Data */\nfunction parse_xlink_xml(/*::data, rel, name:string, _opts*/) {\n\t//var opts = _opts || {};\n\t//if(opts.WTF) throw \"XLSX External Link\";\n}\n\n/* [MS-XLSB] 2.1.7.25 External Link */\nfunction parse_xlink_bin(data, rel, name/*:string*/, _opts) {\n\tif(!data) return data;\n\tvar opts = _opts || {};\n\n\tvar pass = false, end = false;\n\n\trecordhopper(data, function xlink_parse(val, R, RT) {\n\t\tif(end) return;\n\t\tswitch(RT) {\n\t\t\tcase 0x0167: /* 'BrtSupTabs' */\n\t\t\tcase 0x016B: /* 'BrtExternTableStart' */\n\t\t\tcase 0x016C: /* 'BrtExternTableEnd' */\n\t\t\tcase 0x016E: /* 'BrtExternRowHdr' */\n\t\t\tcase 0x016F: /* 'BrtExternCellBlank' */\n\t\t\tcase 0x0170: /* 'BrtExternCellReal' */\n\t\t\tcase 0x0171: /* 'BrtExternCellBool' */\n\t\t\tcase 0x0172: /* 'BrtExternCellError' */\n\t\t\tcase 0x0173: /* 'BrtExternCellString' */\n\t\t\tcase 0x01D8: /* 'BrtExternValueMeta' */\n\t\t\tcase 0x0241: /* 'BrtSupNameStart' */\n\t\t\tcase 0x0242: /* 'BrtSupNameValueStart' */\n\t\t\tcase 0x0243: /* 'BrtSupNameValueEnd' */\n\t\t\tcase 0x0244: /* 'BrtSupNameNum' */\n\t\t\tcase 0x0245: /* 'BrtSupNameErr' */\n\t\t\tcase 0x0246: /* 'BrtSupNameSt' */\n\t\t\tcase 0x0247: /* 'BrtSupNameNil' */\n\t\t\tcase 0x0248: /* 'BrtSupNameBool' */\n\t\t\tcase 0x0249: /* 'BrtSupNameFmla' */\n\t\t\tcase 0x024A: /* 'BrtSupNameBits' */\n\t\t\tcase 0x024B: /* 'BrtSupNameEnd' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\n\t\t\tdefault:\n\t\t\t\tif(R.T){/* empty */}\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n\t\t}\n\t}, opts);\n}\n/* 20.5 DrawingML - SpreadsheetML Drawing */\n/* 20.5.2.35 wsDr CT_Drawing */\nfunction parse_drawing(data, rels/*:any*/) {\n\tif(!data) return \"??\";\n\t/*\n\t Chartsheet Drawing:\n\t - 20.5.2.35 wsDr CT_Drawing\n\t - 20.5.2.1 absoluteAnchor CT_AbsoluteAnchor\n\t - 20.5.2.16 graphicFrame CT_GraphicalObjectFrame\n\t - 20.1.2.2.16 graphic CT_GraphicalObject\n\t - 20.1.2.2.17 graphicData CT_GraphicalObjectData\n - chart reference\n\t the actual type is based on the URI of the graphicData\n\t\tTODO: handle embedded charts and other types of graphics\n\t*/\n\tvar id = (data.match(/<c:chart [^>]*r:id=\"([^\"]*)\"/)||[\"\",\"\"])[1];\n\n\treturn rels['!id'][id].Target;\n}\n\n/* L.5.5.2 SpreadsheetML Comments + VML Schema */\nfunction write_vml(rId/*:number*/, comments) {\n\tvar csize = [21600, 21600];\n\t/* L.5.2.1.2 Path Attribute */\n\tvar bbox = [\"m0,0l0\",csize[1],csize[0],csize[1],csize[0],\"0xe\"].join(\",\");\n\tvar o = [\n\t\twritextag(\"xml\", null, { 'xmlns:v': XLMLNS.v, 'xmlns:o': XLMLNS.o, 'xmlns:x': XLMLNS.x, 'xmlns:mv': XLMLNS.mv }).replace(/\\/>/,\">\"),\n\t\twritextag(\"o:shapelayout\", writextag(\"o:idmap\", null, {'v:ext':\"edit\", 'data':rId}), {'v:ext':\"edit\"})\n\t];\n\n\tvar _shapeid = 65536 * rId;\n\n\tvar _comments = comments || [];\n\tif(_comments.length > 0) o.push(writextag(\"v:shapetype\", [\n\t\twritextag(\"v:stroke\", null, {joinstyle:\"miter\"}),\n\t\twritextag(\"v:path\", null, {gradientshapeok:\"t\", 'o:connecttype':\"rect\"})\n\t].join(\"\"), {id:\"_x0000_t202\", coordsize:csize.join(\",\"), 'o:spt':202, path:bbox}));\n\n\t_comments.forEach(function(x) { ++_shapeid; o.push(write_vml_comment(x, _shapeid)); });\n\to.push('</xml>');\n\treturn o.join(\"\");\n}\n\nfunction write_vml_comment(x, _shapeid)/*:string*/ {\n\tvar c = decode_cell(x[0]);\n\tvar fillopts = /*::(*/{'color2':\"#BEFF82\", 'type':\"gradient\"}/*:: :any)*/;\n\tif(fillopts.type == \"gradient\") fillopts.angle = \"-180\";\n\tvar fillparm = fillopts.type == \"gradient\" ? writextag(\"o:fill\", null, {type:\"gradientUnscaled\", 'v:ext':\"view\"}) : null;\n\tvar fillxml = writextag('v:fill', fillparm, fillopts);\n\n\tvar shadata = ({on:\"t\", 'obscured':\"t\"}/*:any*/);\n\n\treturn [\n\t'<v:shape' + wxt_helper({\n\t\tid:'_x0000_s' + _shapeid,\n\t\ttype:\"#_x0000_t202\",\n\t\tstyle:\"position:absolute; margin-left:80pt;margin-top:5pt;width:104pt;height:64pt;z-index:10\" + (x[1].hidden ? \";visibility:hidden\" : \"\") ,\n\t\tfillcolor:\"#ECFAD4\",\n\t\tstrokecolor:\"#edeaa1\"\n\t}) + '>',\n\t\tfillxml,\n\t\twritextag(\"v:shadow\", null, shadata),\n\t\twritextag(\"v:path\", null, {'o:connecttype':\"none\"}),\n\t\t'<v:textbox><div style=\"text-align:left\"></div></v:textbox>',\n\t\t'<x:ClientData ObjectType=\"Note\">',\n\t\t\t'<x:MoveWithCells/>',\n\t\t\t'<x:SizeWithCells/>',\n\t\t\t/* Part 4 19.4.2.3 Anchor (Anchor) */\n\t\t\twritetag('x:Anchor', [c.c+1, 0, c.r+1, 0, c.c+3, 20, c.r+5, 20].join(\",\")),\n\t\t\twritetag('x:AutoFill', \"False\"),\n\t\t\twritetag('x:Row', String(c.r)),\n\t\t\twritetag('x:Column', String(c.c)),\n\t\t\tx[1].hidden ? '' : '<x:Visible/>',\n\t\t'</x:ClientData>',\n\t'</v:shape>'\n\t].join(\"\");\n}\nfunction sheet_insert_comments(sheet/*:WorkSheet*/, comments/*:Array<RawComment>*/, threaded/*:boolean*/, people/*:?Array<any>*/) {\n\tvar dense = sheet[\"!data\"] != null;\n\tvar cell/*:Cell*/;\n\tcomments.forEach(function(comment) {\n\t\tvar r = decode_cell(comment.ref);\n\t\tif(r.r < 0 || r.c < 0) return;\n\t\tif(dense) {\n\t\t\tif(!sheet[\"!data\"][r.r]) sheet[\"!data\"][r.r] = [];\n\t\t\tcell = sheet[\"!data\"][r.r][r.c];\n\t\t} else cell = sheet[comment.ref];\n\t\tif (!cell) {\n\t\t\tcell = ({t:\"z\"}/*:any*/);\n\t\t\tif(dense) sheet[\"!data\"][r.r][r.c] = cell;\n\t\t\telse sheet[comment.ref] = cell;\n\t\t\tvar range = safe_decode_range(sheet[\"!ref\"]||\"BDWGO1000001:A1\");\n\t\t\tif(range.s.r > r.r) range.s.r = r.r;\n\t\t\tif(range.e.r < r.r) range.e.r = r.r;\n\t\t\tif(range.s.c > r.c) range.s.c = r.c;\n\t\t\tif(range.e.c < r.c) range.e.c = r.c;\n\t\t\tvar encoded = encode_range(range);\n\t\t\tsheet[\"!ref\"] = encoded;\n\t\t}\n\n\t\tif (!cell.c) cell.c = [];\n\t\tvar o/*:Comment*/ = ({a: comment.author, t: comment.t, r: comment.r, T: threaded});\n\t\tif(comment.h) o.h = comment.h;\n\n\t\t/* threaded comments always override */\n\t\tfor(var i = cell.c.length - 1; i >= 0; --i) {\n\t\t\tif(!threaded && cell.c[i].T) return;\n\t\t\tif(threaded && !cell.c[i].T) cell.c.splice(i, 1);\n\t\t}\n\t\tif(threaded && people) for(i = 0; i < people.length; ++i) {\n\t\t\tif(o.a == people[i].id) { o.a = people[i].name || o.a; break; }\n\t\t}\n\t\tcell.c.push(o);\n\t});\n}\n/* 18.7 Comments */\nfunction parse_comments_xml(data/*:string*/, opts)/*:Array<RawComment>*/ {\n\t/* 18.7.6 CT_Comments */\n\tif(data.match(/<(?:\\w+:)?comments *\\/>/)) return [];\n\tvar authors/*:Array<string>*/ = [];\n\tvar commentList/*:Array<RawComment>*/ = [];\n\tvar authtag = data.match(/<(?:\\w+:)?authors>([\\s\\S]*)<\\/(?:\\w+:)?authors>/);\n\tif(authtag && authtag[1]) authtag[1].split(/<\\/\\w*:?author>/).forEach(function(x) {\n\t\tif(x === \"\" || x.trim() === \"\") return;\n\t\tvar a = x.match(/<(?:\\w+:)?author[^>]*>(.*)/);\n\t\tif(a) authors.push(a[1]);\n\t});\n\tvar cmnttag = data.match(/<(?:\\w+:)?commentList>([\\s\\S]*)<\\/(?:\\w+:)?commentList>/);\n\tif(cmnttag && cmnttag[1]) cmnttag[1].split(/<\\/\\w*:?comment>/).forEach(function(x) {\n\t\tif(x === \"\" || x.trim() === \"\") return;\n\t\tvar cm = x.match(/<(?:\\w+:)?comment[^>]*>/);\n\t\tif(!cm) return;\n\t\tvar y = parsexmltag(cm[0]);\n\t\tvar comment/*:RawComment*/ = ({ author: y.authorId && authors[y.authorId] || \"sheetjsghost\", ref: y.ref, guid: y.guid }/*:any*/);\n\t\tvar cell = decode_cell(y.ref);\n\t\tif(opts.sheetRows && opts.sheetRows <= cell.r) return;\n\t\tvar textMatch = x.match(/<(?:\\w+:)?text>([\\s\\S]*)<\\/(?:\\w+:)?text>/);\n\t\tvar rt = !!textMatch && !!textMatch[1] && parse_si(textMatch[1]) || {r:\"\",t:\"\",h:\"\"};\n\t\tcomment.r = rt.r;\n\t\tif(rt.r == \"<t></t>\") rt.t = rt.h = \"\";\n\t\tcomment.t = (rt.t||\"\").replace(/\\r\\n/g,\"\\n\").replace(/\\r/g,\"\\n\");\n\t\tif(opts.cellHTML) comment.h = rt.h;\n\t\tcommentList.push(comment);\n\t});\n\treturn commentList;\n}\n\nfunction write_comments_xml(data/*::, opts*/) {\n\tvar o = [XML_HEADER, writextag('comments', null, { 'xmlns': XMLNS_main[0] })];\n\n\tvar iauthor/*:Array<string>*/ = [];\n\to.push(\"<authors>\");\n\tdata.forEach(function(x) { x[1].forEach(function(w) { var a = escapexml(w.a);\n\t\tif(iauthor.indexOf(a) == -1) {\n\t\t\tiauthor.push(a);\n\t\t\to.push(\"<author>\" + a + \"</author>\");\n\t\t}\n\t\tif(w.T && w.ID && iauthor.indexOf(\"tc=\" + w.ID) == -1) {\n\t\t\tiauthor.push(\"tc=\" + w.ID);\n\t\t\to.push(\"<author>\" + \"tc=\" + w.ID + \"</author>\");\n\t\t}\n\t}); });\n\tif(iauthor.length == 0) { iauthor.push(\"SheetJ5\"); o.push(\"<author>SheetJ5</author>\"); }\n\to.push(\"</authors>\");\n\to.push(\"<commentList>\");\n\tdata.forEach(function(d) {\n\t\t/* 18.7.3 CT_Comment */\n\t\tvar lastauthor = 0, ts = [], tcnt = 0;\n\t\tif(d[1][0] && d[1][0].T && d[1][0].ID) lastauthor = iauthor.indexOf(\"tc=\" + d[1][0].ID);\n\t\td[1].forEach(function(c) {\n\t\t\tif(c.a) lastauthor = iauthor.indexOf(escapexml(c.a));\n\t\t\tif(c.T) ++tcnt;\n\t\t\tts.push(c.t == null ? \"\" : escapexml(c.t));\n\t\t});\n\t\tif(tcnt === 0) {\n\t\t\td[1].forEach(function(c) {\n\t\t\t\to.push('<comment ref=\"' + d[0] + '\" authorId=\"' + iauthor.indexOf(escapexml(c.a)) + '\"><text>');\n\t\t\t\to.push(writetag(\"t\", c.t == null ? \"\" : escapexml(c.t)));\n\t\t\t\to.push('</text></comment>');\n\t\t\t});\n\t\t} else {\n\t\t\t/* based on Threaded Comments -> Comments projection */\n\t\t\to.push('<comment ref=\"' + d[0] + '\" authorId=\"' + lastauthor + '\"><text>');\n\t\t\tvar t = \"Comment:\\n \" + (ts[0]) + \"\\n\";\n\t\t\tfor(var i = 1; i < ts.length; ++i) t += \"Reply:\\n \" + ts[i] + \"\\n\";\n\t\t\to.push(writetag(\"t\", escapexml(t)));\n\t\t\to.push('</text></comment>');\n\t\t}\n\t});\n\to.push(\"</commentList>\");\n\tif(o.length>2) { o[o.length] = ('</comments>'); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n\n/* [MS-XLSX] 2.1.17 */\nfunction parse_tcmnt_xml(data/*:string*/, opts)/*:Array<RawComment>*/ {\n\tvar out = [];\n\tvar pass = false, comment = {}, tidx = 0;\n\tdata.replace(tagregex, function xml_tcmnt(x, idx) {\n\t\tvar y/*:any*/ = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '<?xml': break;\n\n\t\t\t/* 2.6.207 ThreadedComments CT_ThreadedComments */\n\t\t\tcase '<ThreadedComments': break;\n\t\t\tcase '</ThreadedComments>': break;\n\n\t\t\t/* 2.6.205 threadedComment CT_ThreadedComment */\n\t\t\tcase '<threadedComment': comment = {author: y.personId, guid: y.id, ref: y.ref, T: 1}; break;\n\t\t\tcase '</threadedComment>': if(comment.t != null) out.push(comment); break;\n\n\t\t\tcase '<text>': case '<text': tidx = idx + x.length; break;\n\t\t\tcase '</text>': comment.t = data.slice(tidx, idx).replace(/\\r\\n/g, \"\\n\").replace(/\\r/g, \"\\n\"); break;\n\n\t\t\t/* 2.6.206 mentions CT_ThreadedCommentMentions TODO */\n\t\t\tcase '<mentions': case '<mentions>': pass = true; break;\n\t\t\tcase '</mentions>': pass = false; break;\n\n\t\t\t/* 2.6.202 mention CT_Mention TODO */\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '<extLst': case '<extLst>': case '</extLst>': case '<extLst/>': break;\n\t\t\t/* 18.2.7 ext CT_Extension + */\n\t\t\tcase '<ext': pass=true; break;\n\t\t\tcase '</ext>': pass=false; break;\n\n\t\t\tdefault: if(!pass && opts.WTF) throw new Error('unrecognized ' + y[0] + ' in threaded comments');\n\t\t}\n\t\treturn x;\n\t});\n\treturn out;\n}\n\nfunction write_tcmnt_xml(comments, people, opts) {\n\tvar o = [XML_HEADER, writextag('ThreadedComments', null, { 'xmlns': XMLNS.TCMNT }).replace(/[\\/]>/, \">\")];\n\tcomments.forEach(function(carr) {\n\t\tvar rootid = \"\";\n\t\t(carr[1] || []).forEach(function(c, idx) {\n\t\t\tif(!c.T) { delete c.ID; return; }\n\t\t\tif(c.a && people.indexOf(c.a) == -1) people.push(c.a);\n\t\t\tvar tcopts = {\n\t\t\t\tref: carr[0],\n\t\t\t\tid: \"{54EE7951-7262-4200-6969-\" + (\"000000000000\" + opts.tcid++).slice(-12) + \"}\"\n\t\t\t};\n\t\t\tif(idx == 0) rootid = tcopts.id;\n\t\t\telse tcopts.parentId = rootid;\n\t\t\tc.ID = tcopts.id;\n\t\t\tif(c.a) tcopts.personId = \"{54EE7950-7262-4200-6969-\" + (\"000000000000\" + people.indexOf(c.a)).slice(-12) + \"}\";\n\t\t\to.push(writextag('threadedComment', writetag('text', c.t||\"\"), tcopts));\n\t\t});\n\t});\n\to.push('</ThreadedComments>');\n\treturn o.join(\"\");\n}\n\n/* [MS-XLSX] 2.1.18 */\nfunction parse_people_xml(data/*:string*/, opts) {\n\tvar out = [];\n\tvar pass = false;\n\tdata.replace(tagregex, function xml_tcmnt(x) {\n\t\tvar y/*:any*/ = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '<?xml': break;\n\n\t\t\t/* 2.4.85 personList CT_PersonList */\n\t\t\tcase '<personList': break;\n\t\t\tcase '</personList>': break;\n\n\t\t\t/* 2.6.203 person CT_Person TODO: providers */\n\t\t\tcase '<person': out.push({name: y.displayname, id: y.id }); break;\n\t\t\tcase '</person>': break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '<extLst': case '<extLst>': case '</extLst>': case '<extLst/>': break;\n\t\t\t/* 18.2.7 ext CT_Extension + */\n\t\t\tcase '<ext': pass=true; break;\n\t\t\tcase '</ext>': pass=false; break;\n\n\t\t\tdefault: if(!pass && opts.WTF) throw new Error('unrecognized ' + y[0] + ' in threaded comments');\n\t\t}\n\t\treturn x;\n\t});\n\treturn out;\n}\nfunction write_people_xml(people/*, opts*/) {\n\tvar o = [XML_HEADER, writextag('personList', null, {\n\t\t'xmlns': XMLNS.TCMNT,\n\t\t'xmlns:x': XMLNS_main[0]\n\t}).replace(/[\\/]>/, \">\")];\n\tpeople.forEach(function(person, idx) {\n\t\to.push(writextag('person', null, {\n\t\t\tdisplayName: person,\n\t\t\tid: \"{54EE7950-7262-4200-6969-\" + (\"000000000000\" + idx).slice(-12) + \"}\",\n\t\t\tuserId: person,\n\t\t\tproviderId: \"None\"\n\t\t}));\n\t});\n\to.push(\"</personList>\");\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.28 BrtBeginComment */\nfunction parse_BrtBeginComment(data) {\n\tvar out = {};\n\tout.iauthor = data.read_shift(4);\n\tvar rfx = parse_UncheckedRfX(data, 16);\n\tout.rfx = rfx.s;\n\tout.ref = encode_cell(rfx.s);\n\tdata.l += 16; /*var guid = parse_GUID(data); */\n\treturn out;\n}\nfunction write_BrtBeginComment(data, o) {\n\tif(o == null) o = new_buf(36);\n\to.write_shift(4, data[1].iauthor);\n\twrite_UncheckedRfX((data[0]/*:any*/), o);\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.327 BrtCommentAuthor */\nvar parse_BrtCommentAuthor = parse_XLWideString;\nfunction write_BrtCommentAuthor(data) { return write_XLWideString(data.slice(0, 54)); }\n\n/* [MS-XLSB] 2.1.7.8 Comments */\nfunction parse_comments_bin(data, opts)/*:Array<RawComment>*/ {\n\tvar out/*:Array<RawComment>*/ = [];\n\tvar authors/*:Array<string>*/ = [];\n\tvar c = {};\n\tvar pass = false;\n\trecordhopper(data, function hopper_cmnt(val, R, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x0278: /* 'BrtCommentAuthor' */\n\t\t\t\tauthors.push(val); break;\n\t\t\tcase 0x027B: /* 'BrtBeginComment' */\n\t\t\t\tc = val; break;\n\t\t\tcase 0x027D: /* 'BrtCommentText' */\n\t\t\t\tc.t = val.t; c.h = val.h; c.r = val.r; break;\n\t\t\tcase 0x027C: /* 'BrtEndComment' */\n\t\t\t\tc.author = authors[c.iauthor];\n\t\t\t\tdelete (c/*:any*/).iauthor;\n\t\t\t\tif(opts.sheetRows && c.rfx && opts.sheetRows <= c.rfx.r) break;\n\t\t\t\tif(!c.t) c.t = \"\";\n\t\t\t\tdelete c.rfx; out.push(c); break;\n\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */ break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */ break;\n\n\n\t\t\tdefault:\n\t\t\t\tif(R.T){/* empty */}\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n\t\t}\n\t});\n\treturn out;\n}\n\nfunction write_comments_bin(data/*::, opts*/) {\n\tvar ba = buf_array();\n\tvar iauthor/*:Array<string>*/ = [];\n\twrite_record(ba, 0x0274 /* BrtBeginComments */);\n\n\twrite_record(ba, 0x0276 /* BrtBeginCommentAuthors */);\n\tdata.forEach(function(comment) {\n\t\tcomment[1].forEach(function(c) {\n\t\t\tif(iauthor.indexOf(c.a) > -1) return;\n\t\t\tiauthor.push(c.a.slice(0,54));\n\t\t\twrite_record(ba, 0x0278 /* BrtCommentAuthor */, write_BrtCommentAuthor(c.a));\n\t\t});\n\t});\n\twrite_record(ba, 0x0277 /* BrtEndCommentAuthors */);\n\n\twrite_record(ba, 0x0279 /* BrtBeginCommentList */);\n\tdata.forEach(function(comment) {\n\t\tcomment[1].forEach(function(c) {\n\t\t\tc.iauthor = iauthor.indexOf(c.a);\n\t\t\tvar range = {s:decode_cell(comment[0]),e:decode_cell(comment[0])};\n\t\t\twrite_record(ba, 0x027B /* BrtBeginComment */, write_BrtBeginComment([range, c]));\n\t\t\tif(c.t && c.t.length > 0) write_record(ba, 0x027D /* BrtCommentText */, write_BrtCommentText(c));\n\t\t\twrite_record(ba, 0x027C /* BrtEndComment */);\n\t\t\tdelete c.iauthor;\n\t\t});\n\t});\n\twrite_record(ba, 0x027A /* BrtEndCommentList */);\n\n\twrite_record(ba, 0x0275 /* BrtEndComments */);\n\treturn ba.end();\n}\nvar CT_VBA = \"application/vnd.ms-office.vbaProject\";\nfunction make_vba_xls(cfb) {\n var newcfb = CFB.utils.cfb_new({ root: \"R\" });\n cfb.FullPaths.forEach(function(p, i) {\n if (p.slice(-1) === \"/\" || !p.match(/_VBA_PROJECT_CUR/))\n return;\n var newpath = p.replace(/^[^\\/]*/, \"R\").replace(/\\/_VBA_PROJECT_CUR\\u0000*/, \"\");\n CFB.utils.cfb_add(newcfb, newpath, cfb.FileIndex[i].content);\n });\n return CFB.write(newcfb);\n}\nfunction fill_vba_xls(cfb, vba) {\n vba.FullPaths.forEach(function(p, i) {\n if (i == 0)\n return;\n var newpath = p.replace(/[^\\/]*[\\/]/, \"/_VBA_PROJECT_CUR/\");\n if (newpath.slice(-1) !== \"/\")\n CFB.utils.cfb_add(cfb, newpath, vba.FileIndex[i].content);\n });\n}\nvar VBAFMTS = [\"xlsb\", \"xlsm\", \"xlam\", \"biff8\", \"xla\"];\n/* macro and dialog sheet stubs */\nfunction parse_ds_bin(/*::data:any, opts, idx:number, rels, wb, themes, styles*/)/*:Worksheet*/ { return {'!type':'dialog'}; }\nfunction parse_ds_xml(/*::data:any, opts, idx:number, rels, wb, themes, styles*/)/*:Worksheet*/ { return {'!type':'dialog'}; }\nfunction parse_ms_bin(/*::data:any, opts, idx:number, rels, wb, themes, styles*/)/*:Worksheet*/ { return {'!type':'macro'}; }\nfunction parse_ms_xml(/*::data:any, opts, idx:number, rels, wb, themes, styles*/)/*:Worksheet*/ { return {'!type':'macro'}; }\n/* TODO: it will be useful to parse the function str */\nvar rc_to_a1 = /*#__PURE__*/(function(){\n\tvar rcregex = /(^|[^A-Za-z_])R(\\[?-?\\d+\\]|[1-9]\\d*|)C(\\[?-?\\d+\\]|[1-9]\\d*|)(?![A-Za-z0-9_])/g;\n\tvar rcbase/*:Cell*/ = ({r:0,c:0}/*:any*/);\n\tfunction rcfunc($$,$1,$2,$3) {\n\t\tvar cRel = false, rRel = false;\n\n\t\tif($2.length == 0) rRel = true;\n\t\telse if($2.charAt(0) == \"[\") { rRel = true; $2 = $2.slice(1, -1); }\n\n\t\tif($3.length == 0) cRel = true;\n\t\telse if($3.charAt(0) == \"[\") { cRel = true; $3 = $3.slice(1, -1); }\n\n\t\tvar R = $2.length>0?parseInt($2,10)|0:0, C = $3.length>0?parseInt($3,10)|0:0;\n\n\t\tif(cRel) C += rcbase.c; else --C;\n\t\tif(rRel) R += rcbase.r; else --R;\n\t\treturn $1 + (cRel ? \"\" : \"$\") + encode_col(C) + (rRel ? \"\" : \"$\") + encode_row(R);\n\t}\n\treturn function rc_to_a1(fstr/*:string*/, base/*:Cell*/)/*:string*/ {\n\t\trcbase = base;\n\t\treturn fstr.replace(rcregex, rcfunc);\n\t};\n})();\n\nvar crefregex = /(^|[^._A-Z0-9])([$]?)([A-Z]{1,2}|[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D])([$]?)(10[0-3]\\d{4}|104[0-7]\\d{3}|1048[0-4]\\d{2}|10485[0-6]\\d|104857[0-6]|[1-9]\\d{0,5})(?![_.\\(A-Za-z0-9])/g;\nvar a1_to_rc = /*#__PURE__*/(function(){\n\treturn function a1_to_rc(fstr/*:string*/, base/*:CellAddress*/) {\n\t\treturn fstr.replace(crefregex, function($0, $1, $2, $3, $4, $5) {\n\t\t\tvar c = decode_col($3) - ($2 ? 0 : base.c);\n\t\t\tvar r = decode_row($5) - ($4 ? 0 : base.r);\n\t\t\tvar R = $4 == \"$\" ? (r+1) : (r == 0 ? \"\" : \"[\" + r + \"]\");\n\t\t\tvar C = $2 == \"$\" ? (c+1) : (c == 0 ? \"\" : \"[\" + c + \"]\");\n\t\t\treturn $1 + \"R\" + R + \"C\" + C;\n\t\t});\n\t};\n})();\n\n/* no defined name can collide with a valid cell address A1:XFD1048576 ... except LOG10! */\nfunction shift_formula_str(f/*:string*/, delta/*:Cell*/)/*:string*/ {\n\treturn f.replace(crefregex, function($0, $1, $2, $3, $4, $5) {\n\t\treturn $1+($2==\"$\" ? $2+$3 : encode_col(decode_col($3)+delta.c))+($4==\"$\" ? $4+$5 : encode_row(decode_row($5) + delta.r));\n\t});\n}\n\nfunction shift_formula_xlsx(f/*:string*/, range/*:string*/, cell/*:string*/)/*:string*/ {\n\tvar r = decode_range(range), s = r.s, c = decode_cell(cell);\n\tvar delta = {r:c.r - s.r, c:c.c - s.c};\n\treturn shift_formula_str(f, delta);\n}\n\n/* TODO: parse formula */\nfunction fuzzyfmla(f/*:string*/)/*:boolean*/ {\n\tif(f.length == 1) return false;\n\treturn true;\n}\n\nfunction _xlfn(f/*:string*/)/*:string*/ {\n\treturn f.replace(/_xlfn\\./g,\"\");\n}\nfunction parseread1(blob) { blob.l+=1; return; }\n\n/* [MS-XLS] 2.5.51 */\nfunction parse_ColRelU(blob, length) {\n\tvar c = blob.read_shift(length == 1 ? 1 : 2);\n\treturn [c & 0x3FFF, (c >> 14) & 1, (c >> 15) & 1];\n}\n\n/* [MS-XLS] 2.5.198.105 ; [MS-XLSB] 2.5.97.89 */\nfunction parse_RgceArea(blob, length, opts) {\n\tvar w = 2;\n\tif(opts) {\n\t\tif(opts.biff >= 2 && opts.biff <= 5) return parse_RgceArea_BIFF2(blob, length, opts);\n\t\telse if(opts.biff == 12) w = 4;\n\t}\n\tvar r=blob.read_shift(w), R=blob.read_shift(w);\n\tvar c=parse_ColRelU(blob, 2);\n\tvar C=parse_ColRelU(blob, 2);\n\treturn { s:{r:r, c:c[0], cRel:c[1], rRel:c[2]}, e:{r:R, c:C[0], cRel:C[1], rRel:C[2]} };\n}\n/* BIFF 2-5 encodes flags in the row field */\nfunction parse_RgceArea_BIFF2(blob/*::, length, opts*/) {\n\tvar r=parse_ColRelU(blob, 2), R=parse_ColRelU(blob, 2);\n\tvar c=blob.read_shift(1);\n\tvar C=blob.read_shift(1);\n\treturn { s:{r:r[0], c:c, cRel:r[1], rRel:r[2]}, e:{r:R[0], c:C, cRel:R[1], rRel:R[2]} };\n}\n\n/* [MS-XLS] 2.5.198.105 ; [MS-XLSB] 2.5.97.90 */\nfunction parse_RgceAreaRel(blob, length, opts) {\n\tif(opts.biff < 8) return parse_RgceArea_BIFF2(blob, length, opts);\n\tvar r=blob.read_shift(opts.biff == 12 ? 4 : 2), R=blob.read_shift(opts.biff == 12 ? 4 : 2);\n\tvar c=parse_ColRelU(blob, 2);\n\tvar C=parse_ColRelU(blob, 2);\n\treturn { s:{r:r, c:c[0], cRel:c[1], rRel:c[2]}, e:{r:R, c:C[0], cRel:C[1], rRel:C[2]} };\n}\n\n/* [MS-XLS] 2.5.198.109 ; [MS-XLSB] 2.5.97.91 */\nfunction parse_RgceLoc(blob, length, opts) {\n\tif(opts && opts.biff >= 2 && opts.biff <= 5) return parse_RgceLoc_BIFF2(blob, length, opts);\n\tvar r = blob.read_shift(opts && opts.biff == 12 ? 4 : 2);\n\tvar c = parse_ColRelU(blob, 2);\n\treturn {r:r, c:c[0], cRel:c[1], rRel:c[2]};\n}\nfunction parse_RgceLoc_BIFF2(blob/*::, length, opts*/) {\n\tvar r = parse_ColRelU(blob, 2);\n\tvar c = blob.read_shift(1);\n\treturn {r:r[0], c:c, cRel:r[1], rRel:r[2]};\n}\n\n/* [MS-XLS] 2.5.198.107, 2.5.47 */\nfunction parse_RgceElfLoc(blob/*::, length, opts*/) {\n\tvar r = blob.read_shift(2);\n\tvar c = blob.read_shift(2);\n\treturn {r:r, c:c & 0xFF, fQuoted:!!(c & 0x4000), cRel:c>>15, rRel:c>>15 };\n}\n\n/* [MS-XLS] 2.5.198.111 ; [MS-XLSB] 2.5.97.92 TODO */\nfunction parse_RgceLocRel(blob, length, opts) {\n\tvar biff = opts && opts.biff ? opts.biff : 8;\n\tif(biff >= 2 && biff <= 5) return parse_RgceLocRel_BIFF2(blob, length, opts);\n\tvar r = blob.read_shift(biff >= 12 ? 4 : 2);\n\tvar cl = blob.read_shift(2);\n\tvar cRel = (cl & 0x4000) >> 14, rRel = (cl & 0x8000) >> 15;\n\tcl &= 0x3FFF;\n\tif(rRel == 1) while(r > 0x7FFFF) r -= 0x100000;\n\tif(cRel == 1) while(cl > 0x1FFF) cl = cl - 0x4000;\n\treturn {r:r,c:cl,cRel:cRel,rRel:rRel};\n}\nfunction parse_RgceLocRel_BIFF2(blob/*::, length:number, opts*/) {\n\tvar rl = blob.read_shift(2);\n\tvar c = blob.read_shift(1);\n\tvar rRel = (rl & 0x8000) >> 15, cRel = (rl & 0x4000) >> 14;\n\trl &= 0x3FFF;\n\tif(rRel == 1 && rl >= 0x2000) rl = rl - 0x4000;\n\tif(cRel == 1 && c >= 0x80) c = c - 0x100;\n\treturn {r:rl,c:c,cRel:cRel,rRel:rRel};\n}\n\n/* [MS-XLS] 2.5.198.27 ; [MS-XLSB] 2.5.97.18 */\nfunction parse_PtgArea(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar area = parse_RgceArea(blob, opts.biff >= 2 && opts.biff <= 5 ? 6 : 8, opts);\n\treturn [type, area];\n}\n\n/* [MS-XLS] 2.5.198.28 ; [MS-XLSB] 2.5.97.19 */\nfunction parse_PtgArea3d(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar ixti = blob.read_shift(2, 'i');\n\tvar w = 8;\n\tif(opts) switch(opts.biff) {\n\t\tcase 5: blob.l += 12; w = 6; break;\n\t\tcase 12: w = 12; break;\n\t}\n\tvar area = parse_RgceArea(blob, w, opts);\n\treturn [type, ixti, area];\n}\n\n/* [MS-XLS] 2.5.198.29 ; [MS-XLSB] 2.5.97.20 */\nfunction parse_PtgAreaErr(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tblob.l += opts && (opts.biff > 8) ? 12 : (opts.biff < 8 ? 6 : 8);\n\treturn [type];\n}\n/* [MS-XLS] 2.5.198.30 ; [MS-XLSB] 2.5.97.21 */\nfunction parse_PtgAreaErr3d(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar ixti = blob.read_shift(2);\n\tvar w = 8;\n\tif(opts) switch(opts.biff) {\n\t\tcase 5: blob.l += 12; w = 6; break;\n\t\tcase 12: w = 12; break;\n\t}\n\tblob.l += w;\n\treturn [type, ixti];\n}\n\n/* [MS-XLS] 2.5.198.31 ; [MS-XLSB] 2.5.97.22 */\nfunction parse_PtgAreaN(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar area = parse_RgceAreaRel(blob, length - 1, opts);\n\treturn [type, area];\n}\n\n/* [MS-XLS] 2.5.198.32 ; [MS-XLSB] 2.5.97.23 */\nfunction parse_PtgArray(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tblob.l += opts.biff == 2 ? 6 : opts.biff == 12 ? 14 : 7;\n\treturn [type];\n}\n\n/* [MS-XLS] 2.5.198.33 ; [MS-XLSB] 2.5.97.24 */\nfunction parse_PtgAttrBaxcel(blob) {\n\tvar bitSemi = blob[blob.l+1] & 0x01; /* 1 = volatile */\n\tvar bitBaxcel = 1;\n\tblob.l += 4;\n\treturn [bitSemi, bitBaxcel];\n}\n\n/* [MS-XLS] 2.5.198.34 ; [MS-XLSB] 2.5.97.25 */\nfunction parse_PtgAttrChoose(blob, length, opts)/*:Array<number>*/ {\n\tblob.l +=2;\n\tvar offset = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\tvar o/*:Array<number>*/ = [];\n\t/* offset is 1 less than the number of elements */\n\tfor(var i = 0; i <= offset; ++i) o.push(blob.read_shift(opts && opts.biff == 2 ? 1 : 2));\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.198.35 ; [MS-XLSB] 2.5.97.26 */\nfunction parse_PtgAttrGoto(blob, length, opts) {\n\tvar bitGoto = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += 2;\n\treturn [bitGoto, blob.read_shift(opts && opts.biff == 2 ? 1 : 2)];\n}\n\n/* [MS-XLS] 2.5.198.36 ; [MS-XLSB] 2.5.97.27 */\nfunction parse_PtgAttrIf(blob, length, opts) {\n\tvar bitIf = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += 2;\n\treturn [bitIf, blob.read_shift(opts && opts.biff == 2 ? 1 : 2)];\n}\n\n/* [MS-XLSB] 2.5.97.28 */\nfunction parse_PtgAttrIfError(blob) {\n\tvar bitIf = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += 2;\n\treturn [bitIf, blob.read_shift(2)];\n}\n\n/* [MS-XLS] 2.5.198.37 ; [MS-XLSB] 2.5.97.29 */\nfunction parse_PtgAttrSemi(blob, length, opts) {\n\tvar bitSemi = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += opts && opts.biff == 2 ? 3 : 4;\n\treturn [bitSemi];\n}\n\n/* [MS-XLS] 2.5.198.40 ; [MS-XLSB] 2.5.97.32 */\nfunction parse_PtgAttrSpaceType(blob/*::, length*/) {\n\tvar type = blob.read_shift(1), cch = blob.read_shift(1);\n\treturn [type, cch];\n}\n\n/* [MS-XLS] 2.5.198.38 ; [MS-XLSB] 2.5.97.30 */\nfunction parse_PtgAttrSpace(blob) {\n\tblob.read_shift(2);\n\treturn parse_PtgAttrSpaceType(blob, 2);\n}\n\n/* [MS-XLS] 2.5.198.39 ; [MS-XLSB] 2.5.97.31 */\nfunction parse_PtgAttrSpaceSemi(blob) {\n\tblob.read_shift(2);\n\treturn parse_PtgAttrSpaceType(blob, 2);\n}\n\n/* [MS-XLS] 2.5.198.84 ; [MS-XLSB] 2.5.97.68 TODO */\nfunction parse_PtgRef(blob, length, opts) {\n\t//var ptg = blob[blob.l] & 0x1F;\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar loc = parse_RgceLoc(blob, 0, opts);\n\treturn [type, loc];\n}\n\n/* [MS-XLS] 2.5.198.88 ; [MS-XLSB] 2.5.97.72 TODO */\nfunction parse_PtgRefN(blob, length, opts) {\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar loc = parse_RgceLocRel(blob, 0, opts);\n\treturn [type, loc];\n}\n\n/* [MS-XLS] 2.5.198.85 ; [MS-XLSB] 2.5.97.69 TODO */\nfunction parse_PtgRef3d(blob, length, opts) {\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar ixti = blob.read_shift(2); // XtiIndex\n\tif(opts && opts.biff == 5) blob.l += 12;\n\tvar loc = parse_RgceLoc(blob, 0, opts); // TODO: or RgceLocRel\n\treturn [type, ixti, loc];\n}\n\n\n/* [MS-XLS] 2.5.198.62 ; [MS-XLSB] 2.5.97.45 TODO */\nfunction parse_PtgFunc(blob, length, opts) {\n\t//var ptg = blob[blob.l] & 0x1F;\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar iftab = blob.read_shift(opts && opts.biff <= 3 ? 1 : 2);\n\treturn [FtabArgc[iftab], Ftab[iftab], type];\n}\n/* [MS-XLS] 2.5.198.63 ; [MS-XLSB] 2.5.97.46 TODO */\nfunction parse_PtgFuncVar(blob, length, opts) {\n\tvar type = blob[blob.l++];\n\tvar cparams = blob.read_shift(1), tab = opts && opts.biff <= 3 ? [(type == 0x58 ? -1 : 0), blob.read_shift(1)]: parsetab(blob);\n\treturn [cparams, (tab[0] === 0 ? Ftab : Cetab)[tab[1]]];\n}\n\nfunction parsetab(blob) {\n\treturn [blob[blob.l+1]>>7, blob.read_shift(2) & 0x7FFF];\n}\n\n/* [MS-XLS] 2.5.198.41 ; [MS-XLSB] 2.5.97.33 */\nfunction parse_PtgAttrSum(blob, length, opts) {\n\tblob.l += opts && opts.biff == 2 ? 3 : 4; return;\n}\n\n/* [MS-XLS] 2.5.198.58 ; [MS-XLSB] 2.5.97.40 */\nfunction parse_PtgExp(blob, length, opts) {\n\tblob.l++;\n\tif(opts && opts.biff == 12) return [blob.read_shift(4, 'i'), 0];\n\tvar row = blob.read_shift(2);\n\tvar col = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\treturn [row, col];\n}\n\n/* [MS-XLS] 2.5.198.57 ; [MS-XLSB] 2.5.97.39 */\nfunction parse_PtgErr(blob) { blob.l++; return BErr[blob.read_shift(1)]; }\n\n/* [MS-XLS] 2.5.198.66 ; [MS-XLSB] 2.5.97.49 */\nfunction parse_PtgInt(blob) { blob.l++; return blob.read_shift(2); }\n\n/* [MS-XLS] 2.5.198.42 ; [MS-XLSB] 2.5.97.34 */\nfunction parse_PtgBool(blob) { blob.l++; return blob.read_shift(1)!==0;}\n\n/* [MS-XLS] 2.5.198.79 ; [MS-XLSB] 2.5.97.63 */\nfunction parse_PtgNum(blob) { blob.l++; return parse_Xnum(blob, 8); }\n\n/* [MS-XLS] 2.5.198.89 ; [MS-XLSB] 2.5.97.74 */\nfunction parse_PtgStr(blob, length, opts) { blob.l++; return parse_ShortXLUnicodeString(blob, length-1, opts); }\n\n/* [MS-XLS] 2.5.192.112 + 2.5.192.11{3,4,5,6,7} */\n/* [MS-XLSB] 2.5.97.93 + 2.5.97.9{4,5,6,7} */\nfunction parse_SerAr(blob, biff/*:number*/) {\n\tvar val = [blob.read_shift(1)];\n\tif(biff == 12) switch(val[0]) {\n\t\tcase 0x02: val[0] = 0x04; break; /* SerBool */\n\t\tcase 0x04: val[0] = 0x10; break; /* SerErr */\n\t\tcase 0x00: val[0] = 0x01; break; /* SerNum */\n\t\tcase 0x01: val[0] = 0x02; break; /* SerStr */\n\t}\n\tswitch(val[0]) {\n\t\tcase 0x04: /* SerBool -- boolean */\n\t\t\tval[1] = parsebool(blob, 1) ? 'TRUE' : 'FALSE';\n\t\t\tif(biff != 12) blob.l += 7; break;\n\t\tcase 0x25: /* appears to be an alias */\n\t\tcase 0x10: /* SerErr -- error */\n\t\t\tval[1] = BErr[blob[blob.l]];\n\t\t\tblob.l += ((biff == 12) ? 4 : 8); break;\n\t\tcase 0x00: /* SerNil -- honestly, I'm not sure how to reproduce this */\n\t\t\tblob.l += 8; break;\n\t\tcase 0x01: /* SerNum -- Xnum */\n\t\t\tval[1] = parse_Xnum(blob, 8); break;\n\t\tcase 0x02: /* SerStr -- XLUnicodeString (<256 chars) */\n\t\t\tval[1] = parse_XLUnicodeString2(blob, 0, {biff:biff > 0 && biff < 8 ? 2 : biff}); break;\n\t\tdefault: throw new Error(\"Bad SerAr: \" + val[0]); /* Unreachable */\n\t}\n\treturn val;\n}\n\n/* [MS-XLS] 2.5.198.61 ; [MS-XLSB] 2.5.97.44 */\nfunction parse_PtgExtraMem(blob, cce, opts) {\n\tvar count = blob.read_shift((opts.biff == 12) ? 4 : 2);\n\tvar out/*:Array<Range>*/ = [];\n\tfor(var i = 0; i != count; ++i) out.push(((opts.biff == 12) ? parse_UncheckedRfX : parse_Ref8U)(blob, 8));\n\treturn out;\n}\n\n/* [MS-XLS] 2.5.198.59 ; [MS-XLSB] 2.5.97.41 */\nfunction parse_PtgExtraArray(blob, length, opts) {\n\tvar rows = 0, cols = 0;\n\tif(opts.biff == 12) {\n\t\trows = blob.read_shift(4); // DRw\n\t\tcols = blob.read_shift(4); // DCol\n\t} else {\n\t\tcols = 1 + blob.read_shift(1); //DColByteU\n\t\trows = 1 + blob.read_shift(2); //DRw\n\t}\n\tif(opts.biff >= 2 && opts.biff < 8) { --rows; if(--cols == 0) cols = 0x100; }\n\t// $FlowIgnore\n\tfor(var i = 0, o/*:Array<Array<any>>*/ = []; i != rows && (o[i] = []); ++i)\n\t\tfor(var j = 0; j != cols; ++j) o[i][j] = parse_SerAr(blob, opts.biff);\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.198.76 ; [MS-XLSB] 2.5.97.60 */\nfunction parse_PtgName(blob, length, opts) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar w = (!opts || (opts.biff >= 8)) ? 4 : 2;\n\tvar nameindex = blob.read_shift(w);\n\tswitch(opts.biff) {\n\t\tcase 2: blob.l += 5; break;\n\t\tcase 3: case 4: blob.l += 8; break;\n\t\tcase 5: blob.l += 12; break;\n\t}\n\treturn [type, 0, nameindex];\n}\n\n/* [MS-XLS] 2.5.198.77 ; [MS-XLSB] 2.5.97.61 */\nfunction parse_PtgNameX(blob, length, opts) {\n\tif(opts.biff == 5) return parse_PtgNameX_BIFF5(blob, length, opts);\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar ixti = blob.read_shift(2); // XtiIndex\n\tvar nameindex = blob.read_shift(4);\n\treturn [type, ixti, nameindex];\n}\nfunction parse_PtgNameX_BIFF5(blob/*::, length, opts*/) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar ixti = blob.read_shift(2, 'i'); // XtiIndex\n\tblob.l += 8;\n\tvar nameindex = blob.read_shift(2);\n\tblob.l += 12;\n\treturn [type, ixti, nameindex];\n}\n\n/* [MS-XLS] 2.5.198.70 ; [MS-XLSB] 2.5.97.54 */\nfunction parse_PtgMemArea(blob, length, opts) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tblob.l += (opts && opts.biff == 2 ? 3 : 4);\n\tvar cce = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\treturn [type, cce];\n}\n\n/* [MS-XLS] 2.5.198.72 ; [MS-XLSB] 2.5.97.56 */\nfunction parse_PtgMemFunc(blob, length, opts) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar cce = blob.read_shift(opts && opts.biff == 2 ? 1 : 2);\n\treturn [type, cce];\n}\n\n\n/* [MS-XLS] 2.5.198.86 ; [MS-XLSB] 2.5.97.69 */\nfunction parse_PtgRefErr(blob, length, opts) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tblob.l += 4;\n\tif(opts.biff < 8) blob.l--;\n\tif(opts.biff == 12) blob.l += 2;\n\treturn [type];\n}\n\n/* [MS-XLS] 2.5.198.87 ; [MS-XLSB] 2.5.97.71 */\nfunction parse_PtgRefErr3d(blob, length, opts) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar ixti = blob.read_shift(2);\n\tvar w = 4;\n\tif(opts) switch(opts.biff) {\n\t\tcase 5: w = 15; break;\n\t\tcase 12: w = 6; break;\n\t}\n\tblob.l += w;\n\treturn [type, ixti];\n}\n\n/* [MS-XLS] 2.5.198.71 ; [MS-XLSB] 2.5.97.55 */\nvar parse_PtgMemErr = parsenoop;\n/* [MS-XLS] 2.5.198.73 ; [MS-XLSB] 2.5.97.57 */\nvar parse_PtgMemNoMem = parsenoop;\n/* [MS-XLS] 2.5.198.92 */\nvar parse_PtgTbl = parsenoop;\n\nfunction parse_PtgElfLoc(blob, length, opts) {\n\tblob.l += 2;\n\treturn [parse_RgceElfLoc(blob, 4, opts)];\n}\nfunction parse_PtgElfNoop(blob/*::, length, opts*/) {\n\tblob.l += 6;\n\treturn [];\n}\n/* [MS-XLS] 2.5.198.46 */\nvar parse_PtgElfCol = parse_PtgElfLoc;\n/* [MS-XLS] 2.5.198.47 */\nvar parse_PtgElfColS = parse_PtgElfNoop;\n/* [MS-XLS] 2.5.198.48 */\nvar parse_PtgElfColSV = parse_PtgElfNoop;\n/* [MS-XLS] 2.5.198.49 */\nvar parse_PtgElfColV = parse_PtgElfLoc;\n/* [MS-XLS] 2.5.198.50 */\nfunction parse_PtgElfLel(blob/*::, length, opts*/) {\n\tblob.l += 2;\n\treturn [parseuint16(blob), blob.read_shift(2) & 0x01];\n}\n/* [MS-XLS] 2.5.198.51 */\nvar parse_PtgElfRadical = parse_PtgElfLoc;\n/* [MS-XLS] 2.5.198.52 */\nvar parse_PtgElfRadicalLel = parse_PtgElfLel;\n/* [MS-XLS] 2.5.198.53 */\nvar parse_PtgElfRadicalS = parse_PtgElfNoop;\n/* [MS-XLS] 2.5.198.54 */\nvar parse_PtgElfRw = parse_PtgElfLoc;\n/* [MS-XLS] 2.5.198.55 */\nvar parse_PtgElfRwV = parse_PtgElfLoc;\n\n/* [MS-XLSB] 2.5.97.52 TODO */\nvar PtgListRT = [\n\t\"Data\",\n\t\"All\",\n\t\"Headers\",\n\t\"??\",\n\t\"?Data2\",\n\t\"??\",\n\t\"?DataHeaders\",\n\t\"??\",\n\t\"Totals\",\n\t\"??\",\n\t\"??\",\n\t\"??\",\n\t\"?DataTotals\",\n\t\"??\",\n\t\"??\",\n\t\"??\",\n\t\"?Current\"\n];\nfunction parse_PtgList(blob/*::, length, opts*/) {\n\tblob.l += 2;\n\tvar ixti = blob.read_shift(2);\n\tvar flags = blob.read_shift(2);\n\tvar idx = blob.read_shift(4);\n\tvar c = blob.read_shift(2);\n\tvar C = blob.read_shift(2);\n\tvar rt = PtgListRT[(flags >> 2) & 0x1F];\n\treturn {ixti: ixti, coltype:(flags&0x3), rt:rt, idx:idx, c:c, C:C};\n}\n/* [MS-XLS] 2.5.198.91 ; [MS-XLSB] 2.5.97.76 */\nfunction parse_PtgSxName(blob/*::, length, opts*/) {\n\tblob.l += 2;\n\treturn [blob.read_shift(4)];\n}\n\n/* [XLS] old spec */\nfunction parse_PtgSheet(blob, length, opts) {\n\tblob.l += 5;\n\tblob.l += 2;\n\tblob.l += (opts.biff == 2 ? 1 : 4);\n\treturn [\"PTGSHEET\"];\n}\nfunction parse_PtgEndSheet(blob, length, opts) {\n\tblob.l += (opts.biff == 2 ? 4 : 5);\n\treturn [\"PTGENDSHEET\"];\n}\nfunction parse_PtgMemAreaN(blob/*::, length, opts*/) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar cce = blob.read_shift(2);\n\treturn [type, cce];\n}\nfunction parse_PtgMemNoMemN(blob/*::, length, opts*/) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar cce = blob.read_shift(2);\n\treturn [type, cce];\n}\nfunction parse_PtgAttrNoop(blob/*::, length, opts*/) {\n\tblob.l += 4;\n\treturn [0, 0];\n}\n\n/* [MS-XLS] 2.5.198.25 ; [MS-XLSB] 2.5.97.16 */\nvar PtgTypes = {\n\t/*::[*/0x01/*::]*/: { n:'PtgExp', f:parse_PtgExp },\n\t/*::[*/0x02/*::]*/: { n:'PtgTbl', f:parse_PtgTbl },\n\t/*::[*/0x03/*::]*/: { n:'PtgAdd', f:parseread1 },\n\t/*::[*/0x04/*::]*/: { n:'PtgSub', f:parseread1 },\n\t/*::[*/0x05/*::]*/: { n:'PtgMul', f:parseread1 },\n\t/*::[*/0x06/*::]*/: { n:'PtgDiv', f:parseread1 },\n\t/*::[*/0x07/*::]*/: { n:'PtgPower', f:parseread1 },\n\t/*::[*/0x08/*::]*/: { n:'PtgConcat', f:parseread1 },\n\t/*::[*/0x09/*::]*/: { n:'PtgLt', f:parseread1 },\n\t/*::[*/0x0A/*::]*/: { n:'PtgLe', f:parseread1 },\n\t/*::[*/0x0B/*::]*/: { n:'PtgEq', f:parseread1 },\n\t/*::[*/0x0C/*::]*/: { n:'PtgGe', f:parseread1 },\n\t/*::[*/0x0D/*::]*/: { n:'PtgGt', f:parseread1 },\n\t/*::[*/0x0E/*::]*/: { n:'PtgNe', f:parseread1 },\n\t/*::[*/0x0F/*::]*/: { n:'PtgIsect', f:parseread1 },\n\t/*::[*/0x10/*::]*/: { n:'PtgUnion', f:parseread1 },\n\t/*::[*/0x11/*::]*/: { n:'PtgRange', f:parseread1 },\n\t/*::[*/0x12/*::]*/: { n:'PtgUplus', f:parseread1 },\n\t/*::[*/0x13/*::]*/: { n:'PtgUminus', f:parseread1 },\n\t/*::[*/0x14/*::]*/: { n:'PtgPercent', f:parseread1 },\n\t/*::[*/0x15/*::]*/: { n:'PtgParen', f:parseread1 },\n\t/*::[*/0x16/*::]*/: { n:'PtgMissArg', f:parseread1 },\n\t/*::[*/0x17/*::]*/: { n:'PtgStr', f:parse_PtgStr },\n\t/*::[*/0x1A/*::]*/: { n:'PtgSheet', f:parse_PtgSheet },\n\t/*::[*/0x1B/*::]*/: { n:'PtgEndSheet', f:parse_PtgEndSheet },\n\t/*::[*/0x1C/*::]*/: { n:'PtgErr', f:parse_PtgErr },\n\t/*::[*/0x1D/*::]*/: { n:'PtgBool', f:parse_PtgBool },\n\t/*::[*/0x1E/*::]*/: { n:'PtgInt', f:parse_PtgInt },\n\t/*::[*/0x1F/*::]*/: { n:'PtgNum', f:parse_PtgNum },\n\t/*::[*/0x20/*::]*/: { n:'PtgArray', f:parse_PtgArray },\n\t/*::[*/0x21/*::]*/: { n:'PtgFunc', f:parse_PtgFunc },\n\t/*::[*/0x22/*::]*/: { n:'PtgFuncVar', f:parse_PtgFuncVar },\n\t/*::[*/0x23/*::]*/: { n:'PtgName', f:parse_PtgName },\n\t/*::[*/0x24/*::]*/: { n:'PtgRef', f:parse_PtgRef },\n\t/*::[*/0x25/*::]*/: { n:'PtgArea', f:parse_PtgArea },\n\t/*::[*/0x26/*::]*/: { n:'PtgMemArea', f:parse_PtgMemArea },\n\t/*::[*/0x27/*::]*/: { n:'PtgMemErr', f:parse_PtgMemErr },\n\t/*::[*/0x28/*::]*/: { n:'PtgMemNoMem', f:parse_PtgMemNoMem },\n\t/*::[*/0x29/*::]*/: { n:'PtgMemFunc', f:parse_PtgMemFunc },\n\t/*::[*/0x2A/*::]*/: { n:'PtgRefErr', f:parse_PtgRefErr },\n\t/*::[*/0x2B/*::]*/: { n:'PtgAreaErr', f:parse_PtgAreaErr },\n\t/*::[*/0x2C/*::]*/: { n:'PtgRefN', f:parse_PtgRefN },\n\t/*::[*/0x2D/*::]*/: { n:'PtgAreaN', f:parse_PtgAreaN },\n\t/*::[*/0x2E/*::]*/: { n:'PtgMemAreaN', f:parse_PtgMemAreaN },\n\t/*::[*/0x2F/*::]*/: { n:'PtgMemNoMemN', f:parse_PtgMemNoMemN },\n\t/*::[*/0x39/*::]*/: { n:'PtgNameX', f:parse_PtgNameX },\n\t/*::[*/0x3A/*::]*/: { n:'PtgRef3d', f:parse_PtgRef3d },\n\t/*::[*/0x3B/*::]*/: { n:'PtgArea3d', f:parse_PtgArea3d },\n\t/*::[*/0x3C/*::]*/: { n:'PtgRefErr3d', f:parse_PtgRefErr3d },\n\t/*::[*/0x3D/*::]*/: { n:'PtgAreaErr3d', f:parse_PtgAreaErr3d },\n\t/*::[*/0xFF/*::]*/: {}\n};\n/* These are duplicated in the PtgTypes table */\nvar PtgDupes = {\n\t/*::[*/0x40/*::]*/: 0x20, /*::[*/0x60/*::]*/: 0x20,\n\t/*::[*/0x41/*::]*/: 0x21, /*::[*/0x61/*::]*/: 0x21,\n\t/*::[*/0x42/*::]*/: 0x22, /*::[*/0x62/*::]*/: 0x22,\n\t/*::[*/0x43/*::]*/: 0x23, /*::[*/0x63/*::]*/: 0x23,\n\t/*::[*/0x44/*::]*/: 0x24, /*::[*/0x64/*::]*/: 0x24,\n\t/*::[*/0x45/*::]*/: 0x25, /*::[*/0x65/*::]*/: 0x25,\n\t/*::[*/0x46/*::]*/: 0x26, /*::[*/0x66/*::]*/: 0x26,\n\t/*::[*/0x47/*::]*/: 0x27, /*::[*/0x67/*::]*/: 0x27,\n\t/*::[*/0x48/*::]*/: 0x28, /*::[*/0x68/*::]*/: 0x28,\n\t/*::[*/0x49/*::]*/: 0x29, /*::[*/0x69/*::]*/: 0x29,\n\t/*::[*/0x4A/*::]*/: 0x2A, /*::[*/0x6A/*::]*/: 0x2A,\n\t/*::[*/0x4B/*::]*/: 0x2B, /*::[*/0x6B/*::]*/: 0x2B,\n\t/*::[*/0x4C/*::]*/: 0x2C, /*::[*/0x6C/*::]*/: 0x2C,\n\t/*::[*/0x4D/*::]*/: 0x2D, /*::[*/0x6D/*::]*/: 0x2D,\n\t/*::[*/0x4E/*::]*/: 0x2E, /*::[*/0x6E/*::]*/: 0x2E,\n\t/*::[*/0x4F/*::]*/: 0x2F, /*::[*/0x6F/*::]*/: 0x2F,\n\t/*::[*/0x58/*::]*/: 0x22, /*::[*/0x78/*::]*/: 0x22,\n\t/*::[*/0x59/*::]*/: 0x39, /*::[*/0x79/*::]*/: 0x39,\n\t/*::[*/0x5A/*::]*/: 0x3A, /*::[*/0x7A/*::]*/: 0x3A,\n\t/*::[*/0x5B/*::]*/: 0x3B, /*::[*/0x7B/*::]*/: 0x3B,\n\t/*::[*/0x5C/*::]*/: 0x3C, /*::[*/0x7C/*::]*/: 0x3C,\n\t/*::[*/0x5D/*::]*/: 0x3D, /*::[*/0x7D/*::]*/: 0x3D\n};\n\nvar Ptg18 = {\n\t/*::[*/0x01/*::]*/: { n:'PtgElfLel', f:parse_PtgElfLel },\n\t/*::[*/0x02/*::]*/: { n:'PtgElfRw', f:parse_PtgElfRw },\n\t/*::[*/0x03/*::]*/: { n:'PtgElfCol', f:parse_PtgElfCol },\n\t/*::[*/0x06/*::]*/: { n:'PtgElfRwV', f:parse_PtgElfRwV },\n\t/*::[*/0x07/*::]*/: { n:'PtgElfColV', f:parse_PtgElfColV },\n\t/*::[*/0x0A/*::]*/: { n:'PtgElfRadical', f:parse_PtgElfRadical },\n\t/*::[*/0x0B/*::]*/: { n:'PtgElfRadicalS', f:parse_PtgElfRadicalS },\n\t/*::[*/0x0D/*::]*/: { n:'PtgElfColS', f:parse_PtgElfColS },\n\t/*::[*/0x0F/*::]*/: { n:'PtgElfColSV', f:parse_PtgElfColSV },\n\t/*::[*/0x10/*::]*/: { n:'PtgElfRadicalLel', f:parse_PtgElfRadicalLel },\n\t/*::[*/0x19/*::]*/: { n:'PtgList', f:parse_PtgList },\n\t/*::[*/0x1D/*::]*/: { n:'PtgSxName', f:parse_PtgSxName },\n\t/*::[*/0xFF/*::]*/: {}\n};\nvar Ptg19 = {\n\t/*::[*/0x00/*::]*/: { n:'PtgAttrNoop', f:parse_PtgAttrNoop },\n\t/*::[*/0x01/*::]*/: { n:'PtgAttrSemi', f:parse_PtgAttrSemi },\n\t/*::[*/0x02/*::]*/: { n:'PtgAttrIf', f:parse_PtgAttrIf },\n\t/*::[*/0x04/*::]*/: { n:'PtgAttrChoose', f:parse_PtgAttrChoose },\n\t/*::[*/0x08/*::]*/: { n:'PtgAttrGoto', f:parse_PtgAttrGoto },\n\t/*::[*/0x10/*::]*/: { n:'PtgAttrSum', f:parse_PtgAttrSum },\n\t/*::[*/0x20/*::]*/: { n:'PtgAttrBaxcel', f:parse_PtgAttrBaxcel },\n\t/*::[*/0x21/*::]*/: { n:'PtgAttrBaxcel', f:parse_PtgAttrBaxcel },\n\t/*::[*/0x40/*::]*/: { n:'PtgAttrSpace', f:parse_PtgAttrSpace },\n\t/*::[*/0x41/*::]*/: { n:'PtgAttrSpaceSemi', f:parse_PtgAttrSpaceSemi },\n\t/*::[*/0x80/*::]*/: { n:'PtgAttrIfError', f:parse_PtgAttrIfError },\n\t/*::[*/0xFF/*::]*/: {}\n};\n\n/* [MS-XLS] 2.5.198.103 ; [MS-XLSB] 2.5.97.87 */\nfunction parse_RgbExtra(blob, length, rgce, opts) {\n\tif(opts.biff < 8) return parsenoop(blob, length);\n\tvar target = blob.l + length;\n\tvar o = [];\n\tfor(var i = 0; i !== rgce.length; ++i) {\n\t\tswitch(rgce[i][0]) {\n\t\t\tcase 'PtgArray': /* PtgArray -> PtgExtraArray */\n\t\t\t\trgce[i][1] = parse_PtgExtraArray(blob, 0, opts);\n\t\t\t\to.push(rgce[i][1]);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgMemArea': /* PtgMemArea -> PtgExtraMem */\n\t\t\t\trgce[i][2] = parse_PtgExtraMem(blob, rgce[i][1], opts);\n\t\t\t\to.push(rgce[i][2]);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgExp': /* PtgExp -> PtgExtraCol */\n\t\t\t\tif(opts && opts.biff == 12) {\n\t\t\t\t\trgce[i][1][1] = blob.read_shift(4);\n\t\t\t\t\to.push(rgce[i][1]);\n\t\t\t\t} break;\n\t\t\tcase 'PtgList': /* TODO: PtgList -> PtgExtraList */\n\t\t\tcase 'PtgElfRadicalS': /* TODO: PtgElfRadicalS -> PtgExtraElf */\n\t\t\tcase 'PtgElfColS': /* TODO: PtgElfColS -> PtgExtraElf */\n\t\t\tcase 'PtgElfColSV': /* TODO: PtgElfColSV -> PtgExtraElf */\n\t\t\t\tthrow \"Unsupported \" + rgce[i][0];\n\t\t\tdefault: break;\n\t\t}\n\t}\n\tlength = target - blob.l;\n\t/* note: this is technically an error but Excel disregards */\n\t//if(target !== blob.l && blob.l !== target - length) throw new Error(target + \" != \" + blob.l);\n\tif(length !== 0) o.push(parsenoop(blob, length));\n\treturn o;\n}\n\n/* [MS-XLS] 2.5.198.104 ; [MS-XLSB] 2.5.97.88 */\nfunction parse_Rgce(blob, length, opts) {\n\tvar target = blob.l + length;\n\tvar R, id, ptgs = [];\n\twhile(target != blob.l) {\n\t\tlength = target - blob.l;\n\t\tid = blob[blob.l];\n\t\tR = PtgTypes[id] || PtgTypes[PtgDupes[id]];\n\t\tif(id === 0x18 || id === 0x19) R = (id === 0x18 ? Ptg18 : Ptg19)[blob[blob.l + 1]];\n\t\tif(!R || !R.f) { /*ptgs.push*/(parsenoop(blob, length)); }\n\t\telse { ptgs.push([R.n, R.f(blob, length, opts)]); }\n\t}\n\treturn ptgs;\n}\n\nfunction stringify_array(f/*:Array<Array<string>>*/)/*:string*/ {\n\tvar o/*:Array<string>*/ = [];\n\tfor(var i = 0; i < f.length; ++i) {\n\t\tvar x = f[i], r/*:Array<string>*/ = [];\n\t\tfor(var j = 0; j < x.length; ++j) {\n\t\t\tvar y = x[j];\n\t\t\tif(y) switch(y[0]) {\n\t\t\t\t// TODO: handle embedded quotes\n\t\t\t\tcase 0x02:\n\t\t\t\t\t/*:: if(typeof y[1] != 'string') throw \"unreachable\"; */\n\t\t\t\t\tr.push('\"' + y[1].replace(/\"/g,'\"\"') + '\"'); break;\n\t\t\t\tdefault: r.push(y[1]);\n\t\t\t} else r.push(\"\");\n\t\t}\n\t\to.push(r.join(\",\"));\n\t}\n\treturn o.join(\";\");\n}\n\n/* [MS-XLS] 2.2.2 ; [MS-XLSB] 2.2.2 TODO */\nvar PtgBinOp = {\n\tPtgAdd: \"+\",\n\tPtgConcat: \"&\",\n\tPtgDiv: \"/\",\n\tPtgEq: \"=\",\n\tPtgGe: \">=\",\n\tPtgGt: \">\",\n\tPtgLe: \"<=\",\n\tPtgLt: \"<\",\n\tPtgMul: \"*\",\n\tPtgNe: \"<>\",\n\tPtgPower: \"^\",\n\tPtgSub: \"-\"\n};\n\n// TODO: explore space\nfunction make_3d_range(start, end) {\n\tvar s = start.lastIndexOf(\"!\"), e = end.lastIndexOf(\"!\");\n\tif(s == -1 && e == -1) return start + \":\" + end;\n\tif(s > 0 && e > 0 && start.slice(0, s).toLowerCase() == end.slice(0, e).toLowerCase()) return start + \":\" + end.slice(e+1);\n\tconsole.error(\"Cannot hydrate range\", start, end);\n\treturn start + \":\" + end;\n}\n\nfunction get_ixti_raw(supbooks, ixti/*:number*/, opts)/*:string*/ {\n\tif(!supbooks) return \"SH33TJSERR0\";\n\tif(opts.biff > 8 && (!supbooks.XTI || !supbooks.XTI[ixti])) return supbooks.SheetNames[ixti];\n\tif(!supbooks.XTI) return \"SH33TJSERR6\";\n\tvar XTI = supbooks.XTI[ixti];\n\tif(opts.biff < 8) {\n\t\tif(ixti > 10000) ixti-= 65536;\n\t\tif(ixti < 0) ixti = -ixti;\n\t\treturn ixti == 0 ? \"\" : supbooks.XTI[ixti - 1];\n\t}\n\tif(!XTI) return \"SH33TJSERR1\";\n\tvar o = \"\";\n\tif(opts.biff > 8) switch(supbooks[XTI[0]][0]) {\n\t\tcase 0x0165: /* 'BrtSupSelf' */\n\t\t\to = XTI[1] == -1 ? \"#REF\" : supbooks.SheetNames[XTI[1]];\n\t\t\treturn XTI[1] == XTI[2] ? o : o + \":\" + supbooks.SheetNames[XTI[2]];\n\t\tcase 0x0166: /* 'BrtSupSame' */\n\t\t\tif(opts.SID != null) return supbooks.SheetNames[opts.SID];\n\t\t\treturn \"SH33TJSSAME\" + supbooks[XTI[0]][0];\n\t\tcase 0x0163: /* 'BrtSupBookSrc' */\n\t\t\t/* falls through */\n\t\tdefault: return \"SH33TJSSRC\" + supbooks[XTI[0]][0];\n\t}\n\tswitch(supbooks[XTI[0]][0][0]) {\n\t\tcase 0x0401:\n\t\t\to = XTI[1] == -1 ? \"#REF\" : (supbooks.SheetNames[XTI[1]] || \"SH33TJSERR3\");\n\t\t\treturn XTI[1] == XTI[2] ? o : o + \":\" + supbooks.SheetNames[XTI[2]];\n\t\tcase 0x3A01: return supbooks[XTI[0]].slice(1).map(function(name) { return name.Name; }).join(\";;\"); //return \"SH33TJSERR8\";\n\t\tdefault:\n\t\t\tif(!supbooks[XTI[0]][0][3]) return \"SH33TJSERR2\";\n\t\t\to = XTI[1] == -1 ? \"#REF\" : (supbooks[XTI[0]][0][3][XTI[1]] || \"SH33TJSERR4\");\n\t\t\treturn XTI[1] == XTI[2] ? o : o + \":\" + supbooks[XTI[0]][0][3][XTI[2]];\n\t}\n}\nfunction get_ixti(supbooks, ixti/*:number*/, opts)/*:string*/ {\n\tvar ixtiraw = get_ixti_raw(supbooks, ixti, opts);\n\treturn ixtiraw == \"#REF\" ? ixtiraw : formula_quote_sheet_name(ixtiraw, opts);\n}\nfunction stringify_formula(formula/*Array<any>*/, range, cell/*:any*/, supbooks, opts)/*:string*/ {\n\tvar biff = (opts && opts.biff) || 8;\n\tvar _range = /*range != null ? range :*/ {s:{c:0, r:0},e:{c:0, r:0}};\n\tvar stack/*:Array<string>*/ = [], e1, e2, /*::type,*/ c/*:CellAddress*/, ixti=0, nameidx=0, r, sname=\"\";\n\tif(!formula[0] || !formula[0][0]) return \"\";\n\tvar last_sp = -1, sp = \"\";\n\tfor(var ff = 0, fflen = formula[0].length; ff < fflen; ++ff) {\n\t\tvar f = formula[0][ff];\n\t\tswitch(f[0]) {\n\t\t\tcase 'PtgUminus': /* [MS-XLS] 2.5.198.93 */\n\t\t\t\tstack.push(\"-\" + stack.pop()); break;\n\t\t\tcase 'PtgUplus': /* [MS-XLS] 2.5.198.95 */\n\t\t\t\tstack.push(\"+\" + stack.pop()); break;\n\t\t\tcase 'PtgPercent': /* [MS-XLS] 2.5.198.81 */\n\t\t\t\tstack.push(stack.pop() + \"%\"); break;\n\n\t\t\tcase 'PtgAdd': /* [MS-XLS] 2.5.198.26 */\n\t\t\tcase 'PtgConcat': /* [MS-XLS] 2.5.198.43 */\n\t\t\tcase 'PtgDiv': /* [MS-XLS] 2.5.198.45 */\n\t\t\tcase 'PtgEq': /* [MS-XLS] 2.5.198.56 */\n\t\t\tcase 'PtgGe': /* [MS-XLS] 2.5.198.64 */\n\t\t\tcase 'PtgGt': /* [MS-XLS] 2.5.198.65 */\n\t\t\tcase 'PtgLe': /* [MS-XLS] 2.5.198.68 */\n\t\t\tcase 'PtgLt': /* [MS-XLS] 2.5.198.69 */\n\t\t\tcase 'PtgMul': /* [MS-XLS] 2.5.198.75 */\n\t\t\tcase 'PtgNe': /* [MS-XLS] 2.5.198.78 */\n\t\t\tcase 'PtgPower': /* [MS-XLS] 2.5.198.82 */\n\t\t\tcase 'PtgSub': /* [MS-XLS] 2.5.198.90 */\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tif(last_sp >= 0) {\n\t\t\t\t\tswitch(formula[0][last_sp][1][0]) {\n\t\t\t\t\t\tcase 0:\n\t\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\t\tsp = fill(\" \", formula[0][last_sp][1][1]); break;\n\t\t\t\t\t\tcase 1:\n\t\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\t\tsp = fill(\"\\r\", formula[0][last_sp][1][1]); break;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tsp = \"\";\n\t\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\t\tif(opts.WTF) throw new Error(\"Unexpected PtgAttrSpaceType \" + formula[0][last_sp][1][0]);\n\t\t\t\t\t}\n\t\t\t\t\te2 = e2 + sp;\n\t\t\t\t\tlast_sp = -1;\n\t\t\t\t}\n\t\t\t\tstack.push(e2+PtgBinOp[f[0]]+e1);\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgIsect': /* [MS-XLS] 2.5.198.67 */\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tstack.push(e2+\" \"+e1);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgUnion': /* [MS-XLS] 2.5.198.94 */\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tstack.push(e2+\",\"+e1);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgRange': /* [MS-XLS] 2.5.198.83 */\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tstack.push(make_3d_range(e2,e1));\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgAttrChoose': /* [MS-XLS] 2.5.198.34 */\n\t\t\t\tbreak;\n\t\t\tcase 'PtgAttrGoto': /* [MS-XLS] 2.5.198.35 */\n\t\t\t\tbreak;\n\t\t\tcase 'PtgAttrIf': /* [MS-XLS] 2.5.198.36 */\n\t\t\t\tbreak;\n\t\t\tcase 'PtgAttrIfError': /* [MS-XLSB] 2.5.97.28 */\n\t\t\t\tbreak;\n\n\n\t\t\tcase 'PtgRef': /* [MS-XLS] 2.5.198.84 */\n\t\t\t\t/*::type = f[1][0]; */c = shift_cell_xls((f[1][1]/*:any*/), _range, opts);\n\t\t\t\tstack.push(encode_cell_xls(c, biff));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgRefN': /* [MS-XLS] 2.5.198.88 */\n\t\t\t\t/*::type = f[1][0]; */c = cell ? shift_cell_xls((f[1][1]/*:any*/), cell, opts) : (f[1][1]/*:any*/);\n\t\t\t\tstack.push(encode_cell_xls(c, biff));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgRef3d': /* [MS-XLS] 2.5.198.85 */\n\t\t\t\t/*::type = f[1][0]; */ixti = /*::Number(*/f[1][1]/*::)*/; c = shift_cell_xls((f[1][2]/*:any*/), _range, opts);\n\t\t\t\tsname = get_ixti(supbooks, ixti, opts);\n\t\t\t\tvar w = sname; /* IE9 fails on defined names */ // eslint-disable-line no-unused-vars\n\t\t\t\tstack.push(sname + \"!\" + encode_cell_xls(c, biff));\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgFunc': /* [MS-XLS] 2.5.198.62 */\n\t\t\tcase 'PtgFuncVar': /* [MS-XLS] 2.5.198.63 */\n\t\t\t\t/* f[1] = [argc, func, type] */\n\t\t\t\tvar argc/*:number*/ = (f[1][0]/*:any*/), func/*:string*/ = (f[1][1]/*:any*/);\n\t\t\t\tif(!argc) argc = 0;\n\t\t\t\targc &= 0x7F;\n\t\t\t\tvar args = argc == 0 ? [] : stack.slice(-argc);\n\t\t\t\tstack.length -= argc;\n\t\t\t\tif(func === 'User') func = args.shift();\n\t\t\t\tstack.push(func + \"(\" + args.join(\",\") + \")\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgBool': /* [MS-XLS] 2.5.198.42 */\n\t\t\t\tstack.push(f[1] ? \"TRUE\" : \"FALSE\"); break;\n\t\t\tcase 'PtgInt': /* [MS-XLS] 2.5.198.66 */\n\t\t\t\tstack.push(/*::String(*/f[1]/*::)*/); break;\n\t\t\tcase 'PtgNum': /* [MS-XLS] 2.5.198.79 TODO: precision? */\n\t\t\t\tstack.push(String(f[1])); break;\n\t\t\tcase 'PtgStr': /* [MS-XLS] 2.5.198.89 */\n\t\t\t\t// $FlowIgnore\n\t\t\t\tstack.push('\"' + f[1].replace(/\"/g, '\"\"') + '\"'); break;\n\t\t\tcase 'PtgErr': /* [MS-XLS] 2.5.198.57 */\n\t\t\t\tstack.push(/*::String(*/f[1]/*::)*/); break;\n\t\t\tcase 'PtgAreaN': /* [MS-XLS] 2.5.198.31 TODO */\n\t\t\t\t/*::type = f[1][0]; */r = shift_range_xls(f[1][1], cell ? {s:cell} : _range, opts);\n\t\t\t\tstack.push(encode_range_xls((r/*:any*/), opts));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgArea': /* [MS-XLS] 2.5.198.27 TODO: fixed points */\n\t\t\t\t/*::type = f[1][0]; */r = shift_range_xls(f[1][1], _range, opts);\n\t\t\t\tstack.push(encode_range_xls((r/*:any*/), opts));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgArea3d': /* [MS-XLS] 2.5.198.28 TODO */\n\t\t\t\t/*::type = f[1][0]; */ixti = /*::Number(*/f[1][1]/*::)*/; r = f[1][2];\n\t\t\t\tsname = get_ixti(supbooks, ixti, opts);\n\t\t\t\tstack.push(sname + \"!\" + encode_range_xls((r/*:any*/), opts));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgAttrSum': /* [MS-XLS] 2.5.198.41 */\n\t\t\t\tstack.push(\"SUM(\" + stack.pop() + \")\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgAttrBaxcel': /* [MS-XLS] 2.5.198.33 */\n\t\t\tcase 'PtgAttrSemi': /* [MS-XLS] 2.5.198.37 */\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgName': /* [MS-XLS] 2.5.198.76 ; [MS-XLSB] 2.5.97.60 TODO: revisions */\n\t\t\t\t/* f[1] = type, 0, nameindex */\n\t\t\t\tnameidx = (f[1][2]/*:any*/);\n\t\t\t\tvar lbl = (supbooks.names||[])[nameidx-1] || (supbooks[0]||[])[nameidx];\n\t\t\t\tvar name = lbl ? lbl.Name : \"SH33TJSNAME\" + String(nameidx);\n\t\t\t\t/* [MS-XLSB] 2.5.97.10 Ftab -- last verified 20220204 */\n\t\t\t\tif(name && name.slice(0,6) == \"_xlfn.\" && !opts.xlfn) name = name.slice(6);\n\t\t\t\tstack.push(name);\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgNameX': /* [MS-XLS] 2.5.198.77 ; [MS-XLSB] 2.5.97.61 TODO: revisions */\n\t\t\t\t/* f[1] = type, ixti, nameindex */\n\t\t\t\tvar bookidx/*:number*/ = (f[1][1]/*:any*/); nameidx = (f[1][2]/*:any*/); var externbook;\n\t\t\t\t/* TODO: Properly handle missing values -- this should be using get_ixti_raw primarily */\n\t\t\t\tif(opts.biff <= 5) {\n\t\t\t\t\tif(bookidx < 0) bookidx = -bookidx;\n\t\t\t\t\tif(supbooks[bookidx]) externbook = supbooks[bookidx][nameidx];\n\t\t\t\t} else {\n\t\t\t\t\tvar o = \"\";\n\t\t\t\t\tif(((supbooks[bookidx]||[])[0]||[])[0] == 0x3A01){/* empty */}\n\t\t\t\t\telse if(((supbooks[bookidx]||[])[0]||[])[0] == 0x0401){\n\t\t\t\t\t\tif(supbooks[bookidx][nameidx] && supbooks[bookidx][nameidx].itab > 0) {\n\t\t\t\t\t\t\to = supbooks.SheetNames[supbooks[bookidx][nameidx].itab-1] + \"!\";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse o = supbooks.SheetNames[nameidx-1]+ \"!\";\n\t\t\t\t\tif(supbooks[bookidx] && supbooks[bookidx][nameidx]) o += supbooks[bookidx][nameidx].Name;\n\t\t\t\t\telse if(supbooks[0] && supbooks[0][nameidx]) o += supbooks[0][nameidx].Name;\n\t\t\t\t\telse {\n\t\t\t\t\t\tvar ixtidata = (get_ixti_raw(supbooks, bookidx, opts)||\"\").split(\";;\");\n\t\t\t\t\t\tif(ixtidata[nameidx - 1]) o = ixtidata[nameidx - 1]; // TODO: confirm this is correct\n\t\t\t\t\t\telse o += \"SH33TJSERRX\";\n\t\t\t\t\t}\n\t\t\t\t\tstack.push(o);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif(!externbook) externbook = {Name: \"SH33TJSERRY\"};\n\t\t\t\tstack.push(externbook.Name);\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgParen': /* [MS-XLS] 2.5.198.80 */\n\t\t\t\tvar lp = '(', rp = ')';\n\t\t\t\tif(last_sp >= 0) {\n\t\t\t\t\tsp = \"\";\n\t\t\t\t\tswitch(formula[0][last_sp][1][0]) {\n\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\tcase 2: lp = fill(\" \", formula[0][last_sp][1][1]) + lp; break;\n\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\tcase 3: lp = fill(\"\\r\", formula[0][last_sp][1][1]) + lp; break;\n\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\tcase 4: rp = fill(\" \", formula[0][last_sp][1][1]) + rp; break;\n\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\tcase 5: rp = fill(\"\\r\", formula[0][last_sp][1][1]) + rp; break;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\t\t\tif(opts.WTF) throw new Error(\"Unexpected PtgAttrSpaceType \" + formula[0][last_sp][1][0]);\n\t\t\t\t\t}\n\t\t\t\t\tlast_sp = -1;\n\t\t\t\t}\n\t\t\t\tstack.push(lp + stack.pop() + rp); break;\n\n\t\t\tcase 'PtgRefErr': /* [MS-XLS] 2.5.198.86 */\n\t\t\t\tstack.push('#REF!'); break;\n\n\t\t\tcase 'PtgRefErr3d': /* [MS-XLS] 2.5.198.87 */\n\t\t\t\tstack.push('#REF!'); break;\n\n\t\t\tcase 'PtgExp': /* [MS-XLS] 2.5.198.58 TODO */\n\t\t\t\tc = {c:(f[1][1]/*:any*/),r:(f[1][0]/*:any*/)};\n\t\t\t\tvar q = ({c: cell.c, r:cell.r}/*:any*/);\n\t\t\t\tif(supbooks.sharedf[encode_cell(c)]) {\n\t\t\t\t\tvar parsedf = (supbooks.sharedf[encode_cell(c)]);\n\t\t\t\t\tstack.push(stringify_formula(parsedf, _range, q, supbooks, opts));\n\t\t\t\t} else {\n\t\t\t\t\tvar fnd = false;\n\t\t\t\t\tfor(e1=0;e1!=supbooks.arrayf.length; ++e1) {\n\t\t\t\t\t\t/* TODO: should be something like range_has */\n\t\t\t\t\t\te2 = supbooks.arrayf[e1];\n\t\t\t\t\t\tif(c.c < e2[0].s.c || c.c > e2[0].e.c) continue;\n\t\t\t\t\t\tif(c.r < e2[0].s.r || c.r > e2[0].e.r) continue;\n\t\t\t\t\t\tstack.push(stringify_formula(e2[1], _range, q, supbooks, opts));\n\t\t\t\t\t\tfnd = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tif(!fnd) stack.push(/*::String(*/f[1]/*::)*/);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgArray': /* [MS-XLS] 2.5.198.32 TODO */\n\t\t\t\tstack.push(\"{\" + stringify_array(/*::(*/f[1]/*:: :any)*/) + \"}\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMemArea': /* [MS-XLS] 2.5.198.70 TODO: confirm this is a non-display */\n\t\t\t\t//stack.push(\"(\" + f[2].map(encode_range).join(\",\") + \")\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgAttrSpace': /* [MS-XLS] 2.5.198.38 */\n\t\t\tcase 'PtgAttrSpaceSemi': /* [MS-XLS] 2.5.198.39 */\n\t\t\t\tlast_sp = ff;\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgTbl': /* [MS-XLS] 2.5.198.92 TODO */\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMemErr': /* [MS-XLS] 2.5.198.71 */\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMissArg': /* [MS-XLS] 2.5.198.74 */\n\t\t\t\tstack.push(\"\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgAreaErr': /* [MS-XLS] 2.5.198.29 */\n\t\t\t\tstack.push(\"#REF!\"); break;\n\n\t\t\tcase 'PtgAreaErr3d': /* [MS-XLS] 2.5.198.30 */\n\t\t\t\tstack.push(\"#REF!\"); break;\n\n\t\t\tcase 'PtgList': /* [MS-XLSB] 2.5.97.52 */\n\t\t\t\t// $FlowIgnore\n\t\t\t\tstack.push(\"Table\" + f[1].idx + \"[#\" + f[1].rt + \"]\");\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMemAreaN':\n\t\t\tcase 'PtgMemNoMemN':\n\t\t\tcase 'PtgAttrNoop':\n\t\t\tcase 'PtgSheet':\n\t\t\tcase 'PtgEndSheet':\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgMemFunc': /* [MS-XLS] 2.5.198.72 TODO */\n\t\t\t\tbreak;\n\t\t\tcase 'PtgMemNoMem': /* [MS-XLS] 2.5.198.73 TODO */\n\t\t\t\tbreak;\n\n\t\t\tcase 'PtgElfCol': /* [MS-XLS] 2.5.198.46 */\n\t\t\tcase 'PtgElfColS': /* [MS-XLS] 2.5.198.47 */\n\t\t\tcase 'PtgElfColSV': /* [MS-XLS] 2.5.198.48 */\n\t\t\tcase 'PtgElfColV': /* [MS-XLS] 2.5.198.49 */\n\t\t\tcase 'PtgElfLel': /* [MS-XLS] 2.5.198.50 */\n\t\t\tcase 'PtgElfRadical': /* [MS-XLS] 2.5.198.51 */\n\t\t\tcase 'PtgElfRadicalLel': /* [MS-XLS] 2.5.198.52 */\n\t\t\tcase 'PtgElfRadicalS': /* [MS-XLS] 2.5.198.53 */\n\t\t\tcase 'PtgElfRw': /* [MS-XLS] 2.5.198.54 */\n\t\t\tcase 'PtgElfRwV': /* [MS-XLS] 2.5.198.55 */\n\t\t\t\tthrow new Error(\"Unsupported ELFs\");\n\n\t\t\tcase 'PtgSxName': /* [MS-XLS] 2.5.198.91 TODO -- find a test case */\n\t\t\t\tthrow new Error('Unrecognized Formula Token: ' + String(f));\n\t\t\tdefault: throw new Error('Unrecognized Formula Token: ' + String(f));\n\t\t}\n\t\tvar PtgNonDisp = ['PtgAttrSpace', 'PtgAttrSpaceSemi', 'PtgAttrGoto'];\n\t\tif(opts.biff != 3) if(last_sp >= 0 && PtgNonDisp.indexOf(formula[0][ff][0]) == -1) {\n\t\t\tf = formula[0][last_sp];\n\t\t\tvar _left = true;\n\t\t\tswitch(f[1][0]) {\n\t\t\t\t/* note: some bad XLSB files omit the PtgParen */\n\t\t\t\tcase 4: _left = false;\n\t\t\t\t/* falls through */\n\t\t\t\tcase 0:\n\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\tsp = fill(\" \", f[1][1]); break;\n\t\t\t\tcase 5: _left = false;\n\t\t\t\t/* falls through */\n\t\t\t\tcase 1:\n\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\tsp = fill(\"\\r\", f[1][1]); break;\n\t\t\t\tdefault:\n\t\t\t\t\tsp = \"\";\n\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\tif(opts.WTF) throw new Error(\"Unexpected PtgAttrSpaceType \" + f[1][0]);\n\t\t\t}\n\t\t\tstack.push((_left ? sp : \"\") + stack.pop() + (_left ? \"\" : sp));\n\t\t\tlast_sp = -1;\n\t\t}\n\t}\n\tif(stack.length > 1 && opts.WTF) throw new Error(\"bad formula stack\");\n\tif(stack[0] == \"TRUE\") return true; if(stack[0] == \"FALSE\") return false;\n\treturn stack[0];\n}\n\n/* [MS-XLS] 2.5.198.1 TODO */\nfunction parse_ArrayParsedFormula(blob, length, opts/*::, ref*/) {\n\tvar target = blob.l + length, len = opts.biff == 2 ? 1 : 2;\n\tvar rgcb, cce = blob.read_shift(len); // length of rgce\n\tif(cce == 0xFFFF) return [[],parsenoop(blob, length-2)];\n\tvar rgce = parse_Rgce(blob, cce, opts);\n\tif(length !== cce + len) rgcb = parse_RgbExtra(blob, length - cce - len, rgce, opts);\n\tblob.l = target;\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLS] 2.5.198.3 TODO */\nfunction parse_XLSCellParsedFormula(blob, length, opts) {\n\tvar target = blob.l + length, len = opts.biff == 2 ? 1 : 2;\n\tvar rgcb, cce = blob.read_shift(len); // length of rgce\n\tif(cce == 0xFFFF) return [[],parsenoop(blob, length-2)];\n\tvar rgce = parse_Rgce(blob, cce, opts);\n\tif(length !== cce + len) rgcb = parse_RgbExtra(blob, length - cce - len, rgce, opts);\n\tblob.l = target;\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLS] 2.5.198.21 */\nfunction parse_NameParsedFormula(blob, length, opts, cce) {\n\tvar target = blob.l + length;\n\tvar rgce = parse_Rgce(blob, cce, opts);\n\tvar rgcb;\n\tif(target !== blob.l) rgcb = parse_RgbExtra(blob, target - blob.l, rgce, opts);\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLS] 2.5.198.118 TODO */\nfunction parse_SharedParsedFormula(blob, length, opts) {\n\tvar target = blob.l + length;\n\tvar rgcb, cce = blob.read_shift(2); // length of rgce\n\tvar rgce = parse_Rgce(blob, cce, opts);\n\tif(cce == 0xFFFF) return [[],parsenoop(blob, length-2)];\n\tif(length !== cce + 2) rgcb = parse_RgbExtra(blob, target - cce - 2, rgce, opts);\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLS] 2.5.133 TODO: how to emit empty strings? */\nfunction parse_FormulaValue(blob/*::, length*/) {\n\tvar b;\n\tif(__readUInt16LE(blob,blob.l + 6) !== 0xFFFF) return [parse_Xnum(blob),'n'];\n\tswitch(blob[blob.l]) {\n\t\tcase 0x00: blob.l += 8; return [\"String\", 's'];\n\t\tcase 0x01: b = blob[blob.l+2] === 0x1; blob.l += 8; return [b,'b'];\n\t\tcase 0x02: b = blob[blob.l+2]; blob.l += 8; return [b,'e'];\n\t\tcase 0x03: blob.l += 8; return [\"\",'s'];\n\t}\n\treturn [];\n}\nfunction write_FormulaValue(value) {\n\tif(value == null) {\n\t\t// Blank String Value\n\t\tvar o = new_buf(8);\n\t\to.write_shift(1, 0x03);\n\t\to.write_shift(1, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0);\n\t\to.write_shift(2, 0xFFFF);\n\t\treturn o;\n\t} else if(typeof value == \"number\") return write_Xnum(value);\n\treturn write_Xnum(0);\n}\n\n/* [MS-XLS] 2.4.127 TODO */\nfunction parse_Formula(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar cell = parse_XLSCell(blob, 6);\n\tif(opts.biff == 2) ++blob.l;\n\tvar val = parse_FormulaValue(blob,8);\n\tvar flags = blob.read_shift(1);\n\tif(opts.biff != 2) {\n\t\tblob.read_shift(1);\n\t\tif(opts.biff >= 5) {\n\t\t\t/*var chn = */blob.read_shift(4);\n\t\t}\n\t}\n\tvar cbf = parse_XLSCellParsedFormula(blob, end - blob.l, opts);\n\treturn {cell:cell, val:val[0], formula:cbf, shared: (flags >> 3) & 1, tt:val[1]};\n}\nfunction write_Formula(cell/*:Cell*/, R/*:number*/, C/*:number*/, opts, os/*:number*/) {\n\t// Cell\n\tvar o1 = write_XLSCell(R, C, os);\n\n\t// FormulaValue\n\tvar o2 = write_FormulaValue(cell.v);\n\n\t// flags + cache\n\tvar o3 = new_buf(6);\n\tvar flags = 0x01 | 0x20;\n\to3.write_shift(2, flags);\n\to3.write_shift(4, 0);\n\n\t// CellParsedFormula\n\tvar bf = new_buf(cell.bf.length);\n\tfor(var i = 0; i < cell.bf.length; ++i) bf[i] = cell.bf[i];\n\n\tvar out = bconcat([o1, o2, o3, bf]);\n\treturn out;\n}\n\n\n/* XLSB Parsed Formula records have the same shape */\nfunction parse_XLSBParsedFormula(data, length, opts) {\n\tvar cce = data.read_shift(4);\n\tvar rgce = parse_Rgce(data, cce, opts);\n\tvar cb = data.read_shift(4);\n\tvar rgcb = cb > 0 ? parse_RgbExtra(data, cb, rgce, opts) : null;\n\treturn [rgce, rgcb];\n}\n\n/* [MS-XLSB] 2.5.97.1 ArrayParsedFormula */\nvar parse_XLSBArrayParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLSB] 2.5.97.4 CellParsedFormula */\nvar parse_XLSBCellParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLSB] 2.5.97.8 DVParsedFormula */\n//var parse_XLSBDVParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLSB] 2.5.97.9 FRTParsedFormula */\n//var parse_XLSBFRTParsedFormula = parse_XLSBParsedFormula2;\n/* [MS-XLSB] 2.5.97.12 NameParsedFormula */\nvar parse_XLSBNameParsedFormula = parse_XLSBParsedFormula;\n/* [MS-XLSB] 2.5.97.98 SharedParsedFormula */\nvar parse_XLSBSharedParsedFormula = parse_XLSBParsedFormula;\n\n/* Writes a PtgNum or PtgInt */\nfunction write_XLSBFormulaNum(val/*:number*/) {\n\tif((val | 0) == val && val < Math.pow(2,16) && val >= 0) {\n\t\tvar oint = new_buf(11);\n\t\toint.write_shift(4, 3);\n\t\toint.write_shift(1, 0x1e);\n\t\toint.write_shift(2, val);\n\t\toint.write_shift(4, 0);\n\t\treturn oint;\n\t}\n\n\tvar num = new_buf(17);\n\tnum.write_shift(4, 11);\n\tnum.write_shift(1, 0x1f);\n\tnum.write_shift(8, val);\n\tnum.write_shift(4, 0);\n\treturn num;\n}\n/* Writes a PtgErr */\nfunction write_XLSBFormulaErr(val/*:number*/) {\n\tvar oint = new_buf(10);\n\toint.write_shift(4, 2);\n\toint.write_shift(1, 0x1C);\n\toint.write_shift(1, val);\n\toint.write_shift(4, 0);\n\treturn oint;\n}\n/* Writes a PtgBool */\nfunction write_XLSBFormulaBool(val/*:boolean*/) {\n\tvar oint = new_buf(10);\n\toint.write_shift(4, 2);\n\toint.write_shift(1, 0x1D);\n\toint.write_shift(1, val?1:0);\n\toint.write_shift(4, 0);\n\treturn oint;\n}\n\n/* Writes a PtgStr */\nfunction write_XLSBFormulaStr(val/*:string*/) {\n\tvar preamble = new_buf(7);\n\tpreamble.write_shift(4, 3 + 2 * val.length);\n\tpreamble.write_shift(1, 0x17);\n\tpreamble.write_shift(2, val.length);\n\n\tvar body = new_buf(2 * val.length);\n\tbody.write_shift(2 * val.length, val, \"utf16le\");\n\n\tvar postamble = new_buf(4);\n\tpostamble.write_shift(4, 0);\n\n\treturn bconcat([preamble, body, postamble]);\n}\n\n/* Writes a PtgRef */\nfunction write_XLSBFormulaRef(str) {\n\tvar cell = decode_cell(str);\n\tvar out = new_buf(15);\n\tout.write_shift(4, 7);\n\tout.write_shift(1, 0x04 | ((1)<<5));\n\tout.write_shift(4, cell.r);\n\tout.write_shift(2, cell.c | ((str.charAt(0) == \"$\" ? 0 : 1)<<14) | ((str.match(/\\$\\d/) ? 0 : 1)<<15)); // <== ColRelShort\n\tout.write_shift(4, 0);\n\n\treturn out;\n}\n\n/* Writes a PtgRef3d */\nfunction write_XLSBFormulaRef3D(str, wb) {\n\tvar lastbang = str.lastIndexOf(\"!\");\n\tvar sname = str.slice(0, lastbang);\n\tstr = str.slice(lastbang+1);\n\tvar cell = decode_cell(str);\n\tif(sname.charAt(0) == \"'\") sname = sname.slice(1, -1).replace(/''/g, \"'\");\n\n\tvar out = new_buf(17);\n\tout.write_shift(4, 9);\n\tout.write_shift(1, 0x1A | ((1)<<5));\n\tout.write_shift(2, 2 + wb.SheetNames.map(function(n) { return n.toLowerCase(); }).indexOf(sname.toLowerCase()));\n\tout.write_shift(4, cell.r);\n\tout.write_shift(2, cell.c | ((str.charAt(0) == \"$\" ? 0 : 1)<<14) | ((str.match(/\\$\\d/) ? 0 : 1)<<15)); // <== ColRelShort\n\tout.write_shift(4, 0);\n\n\treturn out;\n}\n\n/* Writes a PtgRefErr3d */\nfunction write_XLSBFormulaRefErr3D(str, wb) {\n\tvar lastbang = str.lastIndexOf(\"!\");\n\tvar sname = str.slice(0, lastbang);\n\tstr = str.slice(lastbang+1);\n\tif(sname.charAt(0) == \"'\") sname = sname.slice(1, -1).replace(/''/g, \"'\");\n\n\tvar out = new_buf(17);\n\tout.write_shift(4, 9);\n\tout.write_shift(1, 0x1C | ((1)<<5));\n\tout.write_shift(2, 2 + wb.SheetNames.map(function(n) { return n.toLowerCase(); }).indexOf(sname.toLowerCase()));\n\tout.write_shift(4, 0);\n\tout.write_shift(2, 0); // <== ColRelShort\n\tout.write_shift(4, 0);\n\n\treturn out;\n}\n\n/* Writes a single sheet range [PtgRef PtgRef PtgRange] */\nfunction write_XLSBFormulaRange(_str) {\n\tvar parts = _str.split(\":\"), str = parts[0];\n\n\tvar out = new_buf(23);\n\tout.write_shift(4, 15);\n\n\t/* start cell */\n\tstr = parts[0]; var cell = decode_cell(str);\n\tout.write_shift(1, 0x04 | ((1)<<5));\n\tout.write_shift(4, cell.r);\n\tout.write_shift(2, cell.c | ((str.charAt(0) == \"$\" ? 0 : 1)<<14) | ((str.match(/\\$\\d/) ? 0 : 1)<<15)); // <== ColRelShort\n\tout.write_shift(4, 0);\n\n\t/* end cell */\n\tstr = parts[1]; cell = decode_cell(str);\n\tout.write_shift(1, 0x04 | ((1)<<5));\n\tout.write_shift(4, cell.r);\n\tout.write_shift(2, cell.c | ((str.charAt(0) == \"$\" ? 0 : 1)<<14) | ((str.match(/\\$\\d/) ? 0 : 1)<<15)); // <== ColRelShort\n\tout.write_shift(4, 0);\n\n\t/* PtgRange */\n\tout.write_shift(1, 0x11);\n\n\tout.write_shift(4, 0);\n\n\treturn out;\n}\n\n/* Writes a range with explicit sheet name [PtgRef3D PtgRef3D PtgRange] */\nfunction write_XLSBFormulaRangeWS(_str, wb) {\n\tvar lastbang = _str.lastIndexOf(\"!\");\n\tvar sname = _str.slice(0, lastbang);\n\t_str = _str.slice(lastbang+1);\n\tif(sname.charAt(0) == \"'\") sname = sname.slice(1, -1).replace(/''/g, \"'\");\n\tvar parts = _str.split(\":\"); str = parts[0];\n\n\tvar out = new_buf(27);\n\tout.write_shift(4, 19);\n\n\t/* start cell */\n\tvar str = parts[0], cell = decode_cell(str);\n\tout.write_shift(1, 0x1A | ((1)<<5));\n\tout.write_shift(2, 2 + wb.SheetNames.map(function(n) { return n.toLowerCase(); }).indexOf(sname.toLowerCase()));\n\tout.write_shift(4, cell.r);\n\tout.write_shift(2, cell.c | ((str.charAt(0) == \"$\" ? 0 : 1)<<14) | ((str.match(/\\$\\d/) ? 0 : 1)<<15)); // <== ColRelShort\n\n\t/* end cell */\n\tstr = parts[1]; cell = decode_cell(str);\n\tout.write_shift(1, 0x1A | ((1)<<5));\n\tout.write_shift(2, 2 + wb.SheetNames.map(function(n) { return n.toLowerCase(); }).indexOf(sname.toLowerCase()));\n\tout.write_shift(4, cell.r);\n\tout.write_shift(2, cell.c | ((str.charAt(0) == \"$\" ? 0 : 1)<<14) | ((str.match(/\\$\\d/) ? 0 : 1)<<15)); // <== ColRelShort\n\n\t/* PtgRange */\n\tout.write_shift(1, 0x11);\n\n\tout.write_shift(4, 0);\n\n\treturn out;\n}\n\n/* Writes a range with explicit sheet name [PtgArea3d] */\nfunction write_XLSBFormulaArea3D(_str, wb) {\n\tvar lastbang = _str.lastIndexOf(\"!\");\n\tvar sname = _str.slice(0, lastbang);\n\t_str = _str.slice(lastbang+1);\n\tif(sname.charAt(0) == \"'\") sname = sname.slice(1, -1).replace(/''/g, \"'\");\n\tvar range = decode_range(_str);\n\n\tvar out = new_buf(23);\n\tout.write_shift(4, 15);\n\n\tout.write_shift(1, 0x1B | ((1)<<5));\n\tout.write_shift(2, 2 + wb.SheetNames.map(function(n) { return n.toLowerCase(); }).indexOf(sname.toLowerCase()));\n\tout.write_shift(4, range.s.r);\n\tout.write_shift(4, range.e.r);\n\tout.write_shift(2, range.s.c);\n\tout.write_shift(2, range.e.c);\n\n\tout.write_shift(4, 0);\n\n\treturn out;\n}\n\n\n/* General Formula */\nfunction write_XLSBFormula(val/*:string|number*/, wb) {\n\tif(typeof val == \"number\") return write_XLSBFormulaNum(val);\n\tif(typeof val == \"boolean\") return write_XLSBFormulaBool(val);\n\tif(/^#(DIV\\/0!|GETTING_DATA|N\\/A|NAME\\?|NULL!|NUM!|REF!|VALUE!)$/.test(val)) return write_XLSBFormulaErr(+RBErr[val]);\n\tif(val.match(/^\\$?(?:[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D]|[A-Z]{1,2})\\$?(?:10[0-3]\\d{4}|104[0-7]\\d{3}|1048[0-4]\\d{2}|10485[0-6]\\d|104857[0-6]|[1-9]\\d{0,5})$/)) return write_XLSBFormulaRef(val);\n\tif(val.match(/^\\$?(?:[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D]|[A-Z]{1,2})\\$?(?:10[0-3]\\d{4}|104[0-7]\\d{3}|1048[0-4]\\d{2}|10485[0-6]\\d|104857[0-6]|[1-9]\\d{0,5}):\\$?(?:[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D]|[A-Z]{1,2})\\$?(?:10[0-3]\\d{4}|104[0-7]\\d{3}|1048[0-4]\\d{2}|10485[0-6]\\d|104857[0-6]|[1-9]\\d{0,5})$/)) return write_XLSBFormulaRange(val);\n\tif(val.match(/^#REF!\\$?(?:[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D]|[A-Z]{1,2})\\$?(?:10[0-3]\\d{4}|104[0-7]\\d{3}|1048[0-4]\\d{2}|10485[0-6]\\d|104857[0-6]|[1-9]\\d{0,5}):\\$?(?:[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D]|[A-Z]{1,2})\\$?(?:10[0-3]\\d{4}|104[0-7]\\d{3}|1048[0-4]\\d{2}|10485[0-6]\\d|104857[0-6]|[1-9]\\d{0,5})$/)) return write_XLSBFormulaArea3D(val, wb);\n\tif(val.match(/^(?:'[^\\\\\\/?*\\[\\]:]*'|[^'][^\\\\\\/?*\\[\\]:'`~!@#$%^()\\-=+{}|;,<.>]*)!\\$?(?:[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D]|[A-Z]{1,2})\\$?(?:10[0-3]\\d{4}|104[0-7]\\d{3}|1048[0-4]\\d{2}|10485[0-6]\\d|104857[0-6]|[1-9]\\d{0,5})$/)) return write_XLSBFormulaRef3D(val, wb);\n\tif(val.match(/^(?:'[^\\\\\\/?*\\[\\]:]*'|[^'][^\\\\\\/?*\\[\\]:'`~!@#$%^()\\-=+{}|;,<.>]*)!\\$?(?:[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D]|[A-Z]{1,2})\\$?(?:10[0-3]\\d{4}|104[0-7]\\d{3}|1048[0-4]\\d{2}|10485[0-6]\\d|104857[0-6]|[1-9]\\d{0,5}):\\$?(?:[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D]|[A-Z]{1,2})\\$?(?:10[0-3]\\d{4}|104[0-7]\\d{3}|1048[0-4]\\d{2}|10485[0-6]\\d|104857[0-6]|[1-9]\\d{0,5})$/)) return write_XLSBFormulaRangeWS(val, wb);\n\tif(/^(?:'[^\\\\\\/?*\\[\\]:]*'|[^'][^\\\\\\/?*\\[\\]:'`~!@#$%^()\\-=+{}|;,<.>]*)!#REF!$/.test(val)) return write_XLSBFormulaRefErr3D(val, wb);\n\tif(/^\".*\"$/.test(val)) return write_XLSBFormulaStr(val);\n\tif(/^[+-]\\d+$/.test(val)) return write_XLSBFormulaNum(parseInt(val, 10));\n\tthrow \"Formula |\" + val + \"| not supported for XLSB\";\n}\nvar write_XLSBNameParsedFormula = write_XLSBFormula;\nvar Cetab = {\n 0: \"BEEP\",\n 1: \"OPEN\",\n 2: \"OPEN.LINKS\",\n 3: \"CLOSE.ALL\",\n 4: \"SAVE\",\n 5: \"SAVE.AS\",\n 6: \"FILE.DELETE\",\n 7: \"PAGE.SETUP\",\n 8: \"PRINT\",\n 9: \"PRINTER.SETUP\",\n 10: \"QUIT\",\n 11: \"NEW.WINDOW\",\n 12: \"ARRANGE.ALL\",\n 13: \"WINDOW.SIZE\",\n 14: \"WINDOW.MOVE\",\n 15: \"FULL\",\n 16: \"CLOSE\",\n 17: \"RUN\",\n 22: \"SET.PRINT.AREA\",\n 23: \"SET.PRINT.TITLES\",\n 24: \"SET.PAGE.BREAK\",\n 25: \"REMOVE.PAGE.BREAK\",\n 26: \"FONT\",\n 27: \"DISPLAY\",\n 28: \"PROTECT.DOCUMENT\",\n 29: \"PRECISION\",\n 30: \"A1.R1C1\",\n 31: \"CALCULATE.NOW\",\n 32: \"CALCULATION\",\n 34: \"DATA.FIND\",\n 35: \"EXTRACT\",\n 36: \"DATA.DELETE\",\n 37: \"SET.DATABASE\",\n 38: \"SET.CRITERIA\",\n 39: \"SORT\",\n 40: \"DATA.SERIES\",\n 41: \"TABLE\",\n 42: \"FORMAT.NUMBER\",\n 43: \"ALIGNMENT\",\n 44: \"STYLE\",\n 45: \"BORDER\",\n 46: \"CELL.PROTECTION\",\n 47: \"COLUMN.WIDTH\",\n 48: \"UNDO\",\n 49: \"CUT\",\n 50: \"COPY\",\n 51: \"PASTE\",\n 52: \"CLEAR\",\n 53: \"PASTE.SPECIAL\",\n 54: \"EDIT.DELETE\",\n 55: \"INSERT\",\n 56: \"FILL.RIGHT\",\n 57: \"FILL.DOWN\",\n 61: \"DEFINE.NAME\",\n 62: \"CREATE.NAMES\",\n 63: \"FORMULA.GOTO\",\n 64: \"FORMULA.FIND\",\n 65: \"SELECT.LAST.CELL\",\n 66: \"SHOW.ACTIVE.CELL\",\n 67: \"GALLERY.AREA\",\n 68: \"GALLERY.BAR\",\n 69: \"GALLERY.COLUMN\",\n 70: \"GALLERY.LINE\",\n 71: \"GALLERY.PIE\",\n 72: \"GALLERY.SCATTER\",\n 73: \"COMBINATION\",\n 74: \"PREFERRED\",\n 75: \"ADD.OVERLAY\",\n 76: \"GRIDLINES\",\n 77: \"SET.PREFERRED\",\n 78: \"AXES\",\n 79: \"LEGEND\",\n 80: \"ATTACH.TEXT\",\n 81: \"ADD.ARROW\",\n 82: \"SELECT.CHART\",\n 83: \"SELECT.PLOT.AREA\",\n 84: \"PATTERNS\",\n 85: \"MAIN.CHART\",\n 86: \"OVERLAY\",\n 87: \"SCALE\",\n 88: \"FORMAT.LEGEND\",\n 89: \"FORMAT.TEXT\",\n 90: \"EDIT.REPEAT\",\n 91: \"PARSE\",\n 92: \"JUSTIFY\",\n 93: \"HIDE\",\n 94: \"UNHIDE\",\n 95: \"WORKSPACE\",\n 96: \"FORMULA\",\n 97: \"FORMULA.FILL\",\n 98: \"FORMULA.ARRAY\",\n 99: \"DATA.FIND.NEXT\",\n 100: \"DATA.FIND.PREV\",\n 101: \"FORMULA.FIND.NEXT\",\n 102: \"FORMULA.FIND.PREV\",\n 103: \"ACTIVATE\",\n 104: \"ACTIVATE.NEXT\",\n 105: \"ACTIVATE.PREV\",\n 106: \"UNLOCKED.NEXT\",\n 107: \"UNLOCKED.PREV\",\n 108: \"COPY.PICTURE\",\n 109: \"SELECT\",\n 110: \"DELETE.NAME\",\n 111: \"DELETE.FORMAT\",\n 112: \"VLINE\",\n 113: \"HLINE\",\n 114: \"VPAGE\",\n 115: \"HPAGE\",\n 116: \"VSCROLL\",\n 117: \"HSCROLL\",\n 118: \"ALERT\",\n 119: \"NEW\",\n 120: \"CANCEL.COPY\",\n 121: \"SHOW.CLIPBOARD\",\n 122: \"MESSAGE\",\n 124: \"PASTE.LINK\",\n 125: \"APP.ACTIVATE\",\n 126: \"DELETE.ARROW\",\n 127: \"ROW.HEIGHT\",\n 128: \"FORMAT.MOVE\",\n 129: \"FORMAT.SIZE\",\n 130: \"FORMULA.REPLACE\",\n 131: \"SEND.KEYS\",\n 132: \"SELECT.SPECIAL\",\n 133: \"APPLY.NAMES\",\n 134: \"REPLACE.FONT\",\n 135: \"FREEZE.PANES\",\n 136: \"SHOW.INFO\",\n 137: \"SPLIT\",\n 138: \"ON.WINDOW\",\n 139: \"ON.DATA\",\n 140: \"DISABLE.INPUT\",\n 142: \"OUTLINE\",\n 143: \"LIST.NAMES\",\n 144: \"FILE.CLOSE\",\n 145: \"SAVE.WORKBOOK\",\n 146: \"DATA.FORM\",\n 147: \"COPY.CHART\",\n 148: \"ON.TIME\",\n 149: \"WAIT\",\n 150: \"FORMAT.FONT\",\n 151: \"FILL.UP\",\n 152: \"FILL.LEFT\",\n 153: \"DELETE.OVERLAY\",\n 155: \"SHORT.MENUS\",\n 159: \"SET.UPDATE.STATUS\",\n 161: \"COLOR.PALETTE\",\n 162: \"DELETE.STYLE\",\n 163: \"WINDOW.RESTORE\",\n 164: \"WINDOW.MAXIMIZE\",\n 166: \"CHANGE.LINK\",\n 167: \"CALCULATE.DOCUMENT\",\n 168: \"ON.KEY\",\n 169: \"APP.RESTORE\",\n 170: \"APP.MOVE\",\n 171: \"APP.SIZE\",\n 172: \"APP.MINIMIZE\",\n 173: \"APP.MAXIMIZE\",\n 174: \"BRING.TO.FRONT\",\n 175: \"SEND.TO.BACK\",\n 185: \"MAIN.CHART.TYPE\",\n 186: \"OVERLAY.CHART.TYPE\",\n 187: \"SELECT.END\",\n 188: \"OPEN.MAIL\",\n 189: \"SEND.MAIL\",\n 190: \"STANDARD.FONT\",\n 191: \"CONSOLIDATE\",\n 192: \"SORT.SPECIAL\",\n 193: \"GALLERY.3D.AREA\",\n 194: \"GALLERY.3D.COLUMN\",\n 195: \"GALLERY.3D.LINE\",\n 196: \"GALLERY.3D.PIE\",\n 197: \"VIEW.3D\",\n 198: \"GOAL.SEEK\",\n 199: \"WORKGROUP\",\n 200: \"FILL.GROUP\",\n 201: \"UPDATE.LINK\",\n 202: \"PROMOTE\",\n 203: \"DEMOTE\",\n 204: \"SHOW.DETAIL\",\n 206: \"UNGROUP\",\n 207: \"OBJECT.PROPERTIES\",\n 208: \"SAVE.NEW.OBJECT\",\n 209: \"SHARE\",\n 210: \"SHARE.NAME\",\n 211: \"DUPLICATE\",\n 212: \"APPLY.STYLE\",\n 213: \"ASSIGN.TO.OBJECT\",\n 214: \"OBJECT.PROTECTION\",\n 215: \"HIDE.OBJECT\",\n 216: \"SET.EXTRACT\",\n 217: \"CREATE.PUBLISHER\",\n 218: \"SUBSCRIBE.TO\",\n 219: \"ATTRIBUTES\",\n 220: \"SHOW.TOOLBAR\",\n 222: \"PRINT.PREVIEW\",\n 223: \"EDIT.COLOR\",\n 224: \"SHOW.LEVELS\",\n 225: \"FORMAT.MAIN\",\n 226: \"FORMAT.OVERLAY\",\n 227: \"ON.RECALC\",\n 228: \"EDIT.SERIES\",\n 229: \"DEFINE.STYLE\",\n 240: \"LINE.PRINT\",\n 243: \"ENTER.DATA\",\n 249: \"GALLERY.RADAR\",\n 250: \"MERGE.STYLES\",\n 251: \"EDITION.OPTIONS\",\n 252: \"PASTE.PICTURE\",\n 253: \"PASTE.PICTURE.LINK\",\n 254: \"SPELLING\",\n 256: \"ZOOM\",\n 259: \"INSERT.OBJECT\",\n 260: \"WINDOW.MINIMIZE\",\n 265: \"SOUND.NOTE\",\n 266: \"SOUND.PLAY\",\n 267: \"FORMAT.SHAPE\",\n 268: \"EXTEND.POLYGON\",\n 269: \"FORMAT.AUTO\",\n 272: \"GALLERY.3D.BAR\",\n 273: \"GALLERY.3D.SURFACE\",\n 274: \"FILL.AUTO\",\n 276: \"CUSTOMIZE.TOOLBAR\",\n 277: \"ADD.TOOL\",\n 278: \"EDIT.OBJECT\",\n 279: \"ON.DOUBLECLICK\",\n 280: \"ON.ENTRY\",\n 281: \"WORKBOOK.ADD\",\n 282: \"WORKBOOK.MOVE\",\n 283: \"WORKBOOK.COPY\",\n 284: \"WORKBOOK.OPTIONS\",\n 285: \"SAVE.WORKSPACE\",\n 288: \"CHART.WIZARD\",\n 289: \"DELETE.TOOL\",\n 290: \"MOVE.TOOL\",\n 291: \"WORKBOOK.SELECT\",\n 292: \"WORKBOOK.ACTIVATE\",\n 293: \"ASSIGN.TO.TOOL\",\n 295: \"COPY.TOOL\",\n 296: \"RESET.TOOL\",\n 297: \"CONSTRAIN.NUMERIC\",\n 298: \"PASTE.TOOL\",\n 302: \"WORKBOOK.NEW\",\n 305: \"SCENARIO.CELLS\",\n 306: \"SCENARIO.DELETE\",\n 307: \"SCENARIO.ADD\",\n 308: \"SCENARIO.EDIT\",\n 309: \"SCENARIO.SHOW\",\n 310: \"SCENARIO.SHOW.NEXT\",\n 311: \"SCENARIO.SUMMARY\",\n 312: \"PIVOT.TABLE.WIZARD\",\n 313: \"PIVOT.FIELD.PROPERTIES\",\n 314: \"PIVOT.FIELD\",\n 315: \"PIVOT.ITEM\",\n 316: \"PIVOT.ADD.FIELDS\",\n 318: \"OPTIONS.CALCULATION\",\n 319: \"OPTIONS.EDIT\",\n 320: \"OPTIONS.VIEW\",\n 321: \"ADDIN.MANAGER\",\n 322: \"MENU.EDITOR\",\n 323: \"ATTACH.TOOLBARS\",\n 324: \"VBAActivate\",\n 325: \"OPTIONS.CHART\",\n 328: \"VBA.INSERT.FILE\",\n 330: \"VBA.PROCEDURE.DEFINITION\",\n 336: \"ROUTING.SLIP\",\n 338: \"ROUTE.DOCUMENT\",\n 339: \"MAIL.LOGON\",\n 342: \"INSERT.PICTURE\",\n 343: \"EDIT.TOOL\",\n 344: \"GALLERY.DOUGHNUT\",\n 350: \"CHART.TREND\",\n 352: \"PIVOT.ITEM.PROPERTIES\",\n 354: \"WORKBOOK.INSERT\",\n 355: \"OPTIONS.TRANSITION\",\n 356: \"OPTIONS.GENERAL\",\n 370: \"FILTER.ADVANCED\",\n 373: \"MAIL.ADD.MAILER\",\n 374: \"MAIL.DELETE.MAILER\",\n 375: \"MAIL.REPLY\",\n 376: \"MAIL.REPLY.ALL\",\n 377: \"MAIL.FORWARD\",\n 378: \"MAIL.NEXT.LETTER\",\n 379: \"DATA.LABEL\",\n 380: \"INSERT.TITLE\",\n 381: \"FONT.PROPERTIES\",\n 382: \"MACRO.OPTIONS\",\n 383: \"WORKBOOK.HIDE\",\n 384: \"WORKBOOK.UNHIDE\",\n 385: \"WORKBOOK.DELETE\",\n 386: \"WORKBOOK.NAME\",\n 388: \"GALLERY.CUSTOM\",\n 390: \"ADD.CHART.AUTOFORMAT\",\n 391: \"DELETE.CHART.AUTOFORMAT\",\n 392: \"CHART.ADD.DATA\",\n 393: \"AUTO.OUTLINE\",\n 394: \"TAB.ORDER\",\n 395: \"SHOW.DIALOG\",\n 396: \"SELECT.ALL\",\n 397: \"UNGROUP.SHEETS\",\n 398: \"SUBTOTAL.CREATE\",\n 399: \"SUBTOTAL.REMOVE\",\n 400: \"RENAME.OBJECT\",\n 412: \"WORKBOOK.SCROLL\",\n 413: \"WORKBOOK.NEXT\",\n 414: \"WORKBOOK.PREV\",\n 415: \"WORKBOOK.TAB.SPLIT\",\n 416: \"FULL.SCREEN\",\n 417: \"WORKBOOK.PROTECT\",\n 420: \"SCROLLBAR.PROPERTIES\",\n 421: \"PIVOT.SHOW.PAGES\",\n 422: \"TEXT.TO.COLUMNS\",\n 423: \"FORMAT.CHARTTYPE\",\n 424: \"LINK.FORMAT\",\n 425: \"TRACER.DISPLAY\",\n 430: \"TRACER.NAVIGATE\",\n 431: \"TRACER.CLEAR\",\n 432: \"TRACER.ERROR\",\n 433: \"PIVOT.FIELD.GROUP\",\n 434: \"PIVOT.FIELD.UNGROUP\",\n 435: \"CHECKBOX.PROPERTIES\",\n 436: \"LABEL.PROPERTIES\",\n 437: \"LISTBOX.PROPERTIES\",\n 438: \"EDITBOX.PROPERTIES\",\n 439: \"PIVOT.REFRESH\",\n 440: \"LINK.COMBO\",\n 441: \"OPEN.TEXT\",\n 442: \"HIDE.DIALOG\",\n 443: \"SET.DIALOG.FOCUS\",\n 444: \"ENABLE.OBJECT\",\n 445: \"PUSHBUTTON.PROPERTIES\",\n 446: \"SET.DIALOG.DEFAULT\",\n 447: \"FILTER\",\n 448: \"FILTER.SHOW.ALL\",\n 449: \"CLEAR.OUTLINE\",\n 450: \"FUNCTION.WIZARD\",\n 451: \"ADD.LIST.ITEM\",\n 452: \"SET.LIST.ITEM\",\n 453: \"REMOVE.LIST.ITEM\",\n 454: \"SELECT.LIST.ITEM\",\n 455: \"SET.CONTROL.VALUE\",\n 456: \"SAVE.COPY.AS\",\n 458: \"OPTIONS.LISTS.ADD\",\n 459: \"OPTIONS.LISTS.DELETE\",\n 460: \"SERIES.AXES\",\n 461: \"SERIES.X\",\n 462: \"SERIES.Y\",\n 463: \"ERRORBAR.X\",\n 464: \"ERRORBAR.Y\",\n 465: \"FORMAT.CHART\",\n 466: \"SERIES.ORDER\",\n 467: \"MAIL.LOGOFF\",\n 468: \"CLEAR.ROUTING.SLIP\",\n 469: \"APP.ACTIVATE.MICROSOFT\",\n 470: \"MAIL.EDIT.MAILER\",\n 471: \"ON.SHEET\",\n 472: \"STANDARD.WIDTH\",\n 473: \"SCENARIO.MERGE\",\n 474: \"SUMMARY.INFO\",\n 475: \"FIND.FILE\",\n 476: \"ACTIVE.CELL.FONT\",\n 477: \"ENABLE.TIPWIZARD\",\n 478: \"VBA.MAKE.ADDIN\",\n 480: \"INSERTDATATABLE\",\n 481: \"WORKGROUP.OPTIONS\",\n 482: \"MAIL.SEND.MAILER\",\n 485: \"AUTOCORRECT\",\n 489: \"POST.DOCUMENT\",\n 491: \"PICKLIST\",\n 493: \"VIEW.SHOW\",\n 494: \"VIEW.DEFINE\",\n 495: \"VIEW.DELETE\",\n 509: \"SHEET.BACKGROUND\",\n 510: \"INSERT.MAP.OBJECT\",\n 511: \"OPTIONS.MENONO\",\n 517: \"MSOCHECKS\",\n 518: \"NORMAL\",\n 519: \"LAYOUT\",\n 520: \"RM.PRINT.AREA\",\n 521: \"CLEAR.PRINT.AREA\",\n 522: \"ADD.PRINT.AREA\",\n 523: \"MOVE.BRK\",\n 545: \"HIDECURR.NOTE\",\n 546: \"HIDEALL.NOTES\",\n 547: \"DELETE.NOTE\",\n 548: \"TRAVERSE.NOTES\",\n 549: \"ACTIVATE.NOTES\",\n 620: \"PROTECT.REVISIONS\",\n 621: \"UNPROTECT.REVISIONS\",\n 647: \"OPTIONS.ME\",\n 653: \"WEB.PUBLISH\",\n 667: \"NEWWEBQUERY\",\n 673: \"PIVOT.TABLE.CHART\",\n 753: \"OPTIONS.SAVE\",\n 755: \"OPTIONS.SPELL\",\n 808: \"HIDEALL.INKANNOTS\"\n};\nvar Ftab = {\n 0: \"COUNT\",\n 1: \"IF\",\n 2: \"ISNA\",\n 3: \"ISERROR\",\n 4: \"SUM\",\n 5: \"AVERAGE\",\n 6: \"MIN\",\n 7: \"MAX\",\n 8: \"ROW\",\n 9: \"COLUMN\",\n 10: \"NA\",\n 11: \"NPV\",\n 12: \"STDEV\",\n 13: \"DOLLAR\",\n 14: \"FIXED\",\n 15: \"SIN\",\n 16: \"COS\",\n 17: \"TAN\",\n 18: \"ATAN\",\n 19: \"PI\",\n 20: \"SQRT\",\n 21: \"EXP\",\n 22: \"LN\",\n 23: \"LOG10\",\n 24: \"ABS\",\n 25: \"INT\",\n 26: \"SIGN\",\n 27: \"ROUND\",\n 28: \"LOOKUP\",\n 29: \"INDEX\",\n 30: \"REPT\",\n 31: \"MID\",\n 32: \"LEN\",\n 33: \"VALUE\",\n 34: \"TRUE\",\n 35: \"FALSE\",\n 36: \"AND\",\n 37: \"OR\",\n 38: \"NOT\",\n 39: \"MOD\",\n 40: \"DCOUNT\",\n 41: \"DSUM\",\n 42: \"DAVERAGE\",\n 43: \"DMIN\",\n 44: \"DMAX\",\n 45: \"DSTDEV\",\n 46: \"VAR\",\n 47: \"DVAR\",\n 48: \"TEXT\",\n 49: \"LINEST\",\n 50: \"TREND\",\n 51: \"LOGEST\",\n 52: \"GROWTH\",\n 53: \"GOTO\",\n 54: \"HALT\",\n 55: \"RETURN\",\n 56: \"PV\",\n 57: \"FV\",\n 58: \"NPER\",\n 59: \"PMT\",\n 60: \"RATE\",\n 61: \"MIRR\",\n 62: \"IRR\",\n 63: \"RAND\",\n 64: \"MATCH\",\n 65: \"DATE\",\n 66: \"TIME\",\n 67: \"DAY\",\n 68: \"MONTH\",\n 69: \"YEAR\",\n 70: \"WEEKDAY\",\n 71: \"HOUR\",\n 72: \"MINUTE\",\n 73: \"SECOND\",\n 74: \"NOW\",\n 75: \"AREAS\",\n 76: \"ROWS\",\n 77: \"COLUMNS\",\n 78: \"OFFSET\",\n 79: \"ABSREF\",\n 80: \"RELREF\",\n 81: \"ARGUMENT\",\n 82: \"SEARCH\",\n 83: \"TRANSPOSE\",\n 84: \"ERROR\",\n 85: \"STEP\",\n 86: \"TYPE\",\n 87: \"ECHO\",\n 88: \"SET.NAME\",\n 89: \"CALLER\",\n 90: \"DEREF\",\n 91: \"WINDOWS\",\n 92: \"SERIES\",\n 93: \"DOCUMENTS\",\n 94: \"ACTIVE.CELL\",\n 95: \"SELECTION\",\n 96: \"RESULT\",\n 97: \"ATAN2\",\n 98: \"ASIN\",\n 99: \"ACOS\",\n 100: \"CHOOSE\",\n 101: \"HLOOKUP\",\n 102: \"VLOOKUP\",\n 103: \"LINKS\",\n 104: \"INPUT\",\n 105: \"ISREF\",\n 106: \"GET.FORMULA\",\n 107: \"GET.NAME\",\n 108: \"SET.VALUE\",\n 109: \"LOG\",\n 110: \"EXEC\",\n 111: \"CHAR\",\n 112: \"LOWER\",\n 113: \"UPPER\",\n 114: \"PROPER\",\n 115: \"LEFT\",\n 116: \"RIGHT\",\n 117: \"EXACT\",\n 118: \"TRIM\",\n 119: \"REPLACE\",\n 120: \"SUBSTITUTE\",\n 121: \"CODE\",\n 122: \"NAMES\",\n 123: \"DIRECTORY\",\n 124: \"FIND\",\n 125: \"CELL\",\n 126: \"ISERR\",\n 127: \"ISTEXT\",\n 128: \"ISNUMBER\",\n 129: \"ISBLANK\",\n 130: \"T\",\n 131: \"N\",\n 132: \"FOPEN\",\n 133: \"FCLOSE\",\n 134: \"FSIZE\",\n 135: \"FREADLN\",\n 136: \"FREAD\",\n 137: \"FWRITELN\",\n 138: \"FWRITE\",\n 139: \"FPOS\",\n 140: \"DATEVALUE\",\n 141: \"TIMEVALUE\",\n 142: \"SLN\",\n 143: \"SYD\",\n 144: \"DDB\",\n 145: \"GET.DEF\",\n 146: \"REFTEXT\",\n 147: \"TEXTREF\",\n 148: \"INDIRECT\",\n 149: \"REGISTER\",\n 150: \"CALL\",\n 151: \"ADD.BAR\",\n 152: \"ADD.MENU\",\n 153: \"ADD.COMMAND\",\n 154: \"ENABLE.COMMAND\",\n 155: \"CHECK.COMMAND\",\n 156: \"RENAME.COMMAND\",\n 157: \"SHOW.BAR\",\n 158: \"DELETE.MENU\",\n 159: \"DELETE.COMMAND\",\n 160: \"GET.CHART.ITEM\",\n 161: \"DIALOG.BOX\",\n 162: \"CLEAN\",\n 163: \"MDETERM\",\n 164: \"MINVERSE\",\n 165: \"MMULT\",\n 166: \"FILES\",\n 167: \"IPMT\",\n 168: \"PPMT\",\n 169: \"COUNTA\",\n 170: \"CANCEL.KEY\",\n 171: \"FOR\",\n 172: \"WHILE\",\n 173: \"BREAK\",\n 174: \"NEXT\",\n 175: \"INITIATE\",\n 176: \"REQUEST\",\n 177: \"POKE\",\n 178: \"EXECUTE\",\n 179: \"TERMINATE\",\n 180: \"RESTART\",\n 181: \"HELP\",\n 182: \"GET.BAR\",\n 183: \"PRODUCT\",\n 184: \"FACT\",\n 185: \"GET.CELL\",\n 186: \"GET.WORKSPACE\",\n 187: \"GET.WINDOW\",\n 188: \"GET.DOCUMENT\",\n 189: \"DPRODUCT\",\n 190: \"ISNONTEXT\",\n 191: \"GET.NOTE\",\n 192: \"NOTE\",\n 193: \"STDEVP\",\n 194: \"VARP\",\n 195: \"DSTDEVP\",\n 196: \"DVARP\",\n 197: \"TRUNC\",\n 198: \"ISLOGICAL\",\n 199: \"DCOUNTA\",\n 200: \"DELETE.BAR\",\n 201: \"UNREGISTER\",\n 204: \"USDOLLAR\",\n 205: \"FINDB\",\n 206: \"SEARCHB\",\n 207: \"REPLACEB\",\n 208: \"LEFTB\",\n 209: \"RIGHTB\",\n 210: \"MIDB\",\n 211: \"LENB\",\n 212: \"ROUNDUP\",\n 213: \"ROUNDDOWN\",\n 214: \"ASC\",\n 215: \"DBCS\",\n 216: \"RANK\",\n 219: \"ADDRESS\",\n 220: \"DAYS360\",\n 221: \"TODAY\",\n 222: \"VDB\",\n 223: \"ELSE\",\n 224: \"ELSE.IF\",\n 225: \"END.IF\",\n 226: \"FOR.CELL\",\n 227: \"MEDIAN\",\n 228: \"SUMPRODUCT\",\n 229: \"SINH\",\n 230: \"COSH\",\n 231: \"TANH\",\n 232: \"ASINH\",\n 233: \"ACOSH\",\n 234: \"ATANH\",\n 235: \"DGET\",\n 236: \"CREATE.OBJECT\",\n 237: \"VOLATILE\",\n 238: \"LAST.ERROR\",\n 239: \"CUSTOM.UNDO\",\n 240: \"CUSTOM.REPEAT\",\n 241: \"FORMULA.CONVERT\",\n 242: \"GET.LINK.INFO\",\n 243: \"TEXT.BOX\",\n 244: \"INFO\",\n 245: \"GROUP\",\n 246: \"GET.OBJECT\",\n 247: \"DB\",\n 248: \"PAUSE\",\n 251: \"RESUME\",\n 252: \"FREQUENCY\",\n 253: \"ADD.TOOLBAR\",\n 254: \"DELETE.TOOLBAR\",\n 255: \"User\",\n 256: \"RESET.TOOLBAR\",\n 257: \"EVALUATE\",\n 258: \"GET.TOOLBAR\",\n 259: \"GET.TOOL\",\n 260: \"SPELLING.CHECK\",\n 261: \"ERROR.TYPE\",\n 262: \"APP.TITLE\",\n 263: \"WINDOW.TITLE\",\n 264: \"SAVE.TOOLBAR\",\n 265: \"ENABLE.TOOL\",\n 266: \"PRESS.TOOL\",\n 267: \"REGISTER.ID\",\n 268: \"GET.WORKBOOK\",\n 269: \"AVEDEV\",\n 270: \"BETADIST\",\n 271: \"GAMMALN\",\n 272: \"BETAINV\",\n 273: \"BINOMDIST\",\n 274: \"CHIDIST\",\n 275: \"CHIINV\",\n 276: \"COMBIN\",\n 277: \"CONFIDENCE\",\n 278: \"CRITBINOM\",\n 279: \"EVEN\",\n 280: \"EXPONDIST\",\n 281: \"FDIST\",\n 282: \"FINV\",\n 283: \"FISHER\",\n 284: \"FISHERINV\",\n 285: \"FLOOR\",\n 286: \"GAMMADIST\",\n 287: \"GAMMAINV\",\n 288: \"CEILING\",\n 289: \"HYPGEOMDIST\",\n 290: \"LOGNORMDIST\",\n 291: \"LOGINV\",\n 292: \"NEGBINOMDIST\",\n 293: \"NORMDIST\",\n 294: \"NORMSDIST\",\n 295: \"NORMINV\",\n 296: \"NORMSINV\",\n 297: \"STANDARDIZE\",\n 298: \"ODD\",\n 299: \"PERMUT\",\n 300: \"POISSON\",\n 301: \"TDIST\",\n 302: \"WEIBULL\",\n 303: \"SUMXMY2\",\n 304: \"SUMX2MY2\",\n 305: \"SUMX2PY2\",\n 306: \"CHITEST\",\n 307: \"CORREL\",\n 308: \"COVAR\",\n 309: \"FORECAST\",\n 310: \"FTEST\",\n 311: \"INTERCEPT\",\n 312: \"PEARSON\",\n 313: \"RSQ\",\n 314: \"STEYX\",\n 315: \"SLOPE\",\n 316: \"TTEST\",\n 317: \"PROB\",\n 318: \"DEVSQ\",\n 319: \"GEOMEAN\",\n 320: \"HARMEAN\",\n 321: \"SUMSQ\",\n 322: \"KURT\",\n 323: \"SKEW\",\n 324: \"ZTEST\",\n 325: \"LARGE\",\n 326: \"SMALL\",\n 327: \"QUARTILE\",\n 328: \"PERCENTILE\",\n 329: \"PERCENTRANK\",\n 330: \"MODE\",\n 331: \"TRIMMEAN\",\n 332: \"TINV\",\n 334: \"MOVIE.COMMAND\",\n 335: \"GET.MOVIE\",\n 336: \"CONCATENATE\",\n 337: \"POWER\",\n 338: \"PIVOT.ADD.DATA\",\n 339: \"GET.PIVOT.TABLE\",\n 340: \"GET.PIVOT.FIELD\",\n 341: \"GET.PIVOT.ITEM\",\n 342: \"RADIANS\",\n 343: \"DEGREES\",\n 344: \"SUBTOTAL\",\n 345: \"SUMIF\",\n 346: \"COUNTIF\",\n 347: \"COUNTBLANK\",\n 348: \"SCENARIO.GET\",\n 349: \"OPTIONS.LISTS.GET\",\n 350: \"ISPMT\",\n 351: \"DATEDIF\",\n 352: \"DATESTRING\",\n 353: \"NUMBERSTRING\",\n 354: \"ROMAN\",\n 355: \"OPEN.DIALOG\",\n 356: \"SAVE.DIALOG\",\n 357: \"VIEW.GET\",\n 358: \"GETPIVOTDATA\",\n 359: \"HYPERLINK\",\n 360: \"PHONETIC\",\n 361: \"AVERAGEA\",\n 362: \"MAXA\",\n 363: \"MINA\",\n 364: \"STDEVPA\",\n 365: \"VARPA\",\n 366: \"STDEVA\",\n 367: \"VARA\",\n 368: \"BAHTTEXT\",\n 369: \"THAIDAYOFWEEK\",\n 370: \"THAIDIGIT\",\n 371: \"THAIMONTHOFYEAR\",\n 372: \"THAINUMSOUND\",\n 373: \"THAINUMSTRING\",\n 374: \"THAISTRINGLENGTH\",\n 375: \"ISTHAIDIGIT\",\n 376: \"ROUNDBAHTDOWN\",\n 377: \"ROUNDBAHTUP\",\n 378: \"THAIYEAR\",\n 379: \"RTD\",\n 380: \"CUBEVALUE\",\n 381: \"CUBEMEMBER\",\n 382: \"CUBEMEMBERPROPERTY\",\n 383: \"CUBERANKEDMEMBER\",\n 384: \"HEX2BIN\",\n 385: \"HEX2DEC\",\n 386: \"HEX2OCT\",\n 387: \"DEC2BIN\",\n 388: \"DEC2HEX\",\n 389: \"DEC2OCT\",\n 390: \"OCT2BIN\",\n 391: \"OCT2HEX\",\n 392: \"OCT2DEC\",\n 393: \"BIN2DEC\",\n 394: \"BIN2OCT\",\n 395: \"BIN2HEX\",\n 396: \"IMSUB\",\n 397: \"IMDIV\",\n 398: \"IMPOWER\",\n 399: \"IMABS\",\n 400: \"IMSQRT\",\n 401: \"IMLN\",\n 402: \"IMLOG2\",\n 403: \"IMLOG10\",\n 404: \"IMSIN\",\n 405: \"IMCOS\",\n 406: \"IMEXP\",\n 407: \"IMARGUMENT\",\n 408: \"IMCONJUGATE\",\n 409: \"IMAGINARY\",\n 410: \"IMREAL\",\n 411: \"COMPLEX\",\n 412: \"IMSUM\",\n 413: \"IMPRODUCT\",\n 414: \"SERIESSUM\",\n 415: \"FACTDOUBLE\",\n 416: \"SQRTPI\",\n 417: \"QUOTIENT\",\n 418: \"DELTA\",\n 419: \"GESTEP\",\n 420: \"ISEVEN\",\n 421: \"ISODD\",\n 422: \"MROUND\",\n 423: \"ERF\",\n 424: \"ERFC\",\n 425: \"BESSELJ\",\n 426: \"BESSELK\",\n 427: \"BESSELY\",\n 428: \"BESSELI\",\n 429: \"XIRR\",\n 430: \"XNPV\",\n 431: \"PRICEMAT\",\n 432: \"YIELDMAT\",\n 433: \"INTRATE\",\n 434: \"RECEIVED\",\n 435: \"DISC\",\n 436: \"PRICEDISC\",\n 437: \"YIELDDISC\",\n 438: \"TBILLEQ\",\n 439: \"TBILLPRICE\",\n 440: \"TBILLYIELD\",\n 441: \"PRICE\",\n 442: \"YIELD\",\n 443: \"DOLLARDE\",\n 444: \"DOLLARFR\",\n 445: \"NOMINAL\",\n 446: \"EFFECT\",\n 447: \"CUMPRINC\",\n 448: \"CUMIPMT\",\n 449: \"EDATE\",\n 450: \"EOMONTH\",\n 451: \"YEARFRAC\",\n 452: \"COUPDAYBS\",\n 453: \"COUPDAYS\",\n 454: \"COUPDAYSNC\",\n 455: \"COUPNCD\",\n 456: \"COUPNUM\",\n 457: \"COUPPCD\",\n 458: \"DURATION\",\n 459: \"MDURATION\",\n 460: \"ODDLPRICE\",\n 461: \"ODDLYIELD\",\n 462: \"ODDFPRICE\",\n 463: \"ODDFYIELD\",\n 464: \"RANDBETWEEN\",\n 465: \"WEEKNUM\",\n 466: \"AMORDEGRC\",\n 467: \"AMORLINC\",\n 468: \"CONVERT\",\n 724: \"SHEETJS\",\n 469: \"ACCRINT\",\n 470: \"ACCRINTM\",\n 471: \"WORKDAY\",\n 472: \"NETWORKDAYS\",\n 473: \"GCD\",\n 474: \"MULTINOMIAL\",\n 475: \"LCM\",\n 476: \"FVSCHEDULE\",\n 477: \"CUBEKPIMEMBER\",\n 478: \"CUBESET\",\n 479: \"CUBESETCOUNT\",\n 480: \"IFERROR\",\n 481: \"COUNTIFS\",\n 482: \"SUMIFS\",\n 483: \"AVERAGEIF\",\n 484: \"AVERAGEIFS\"\n};\nvar FtabArgc = {\n 2: 1,\n 3: 1,\n 10: 0,\n 15: 1,\n 16: 1,\n 17: 1,\n 18: 1,\n 19: 0,\n 20: 1,\n 21: 1,\n 22: 1,\n 23: 1,\n 24: 1,\n 25: 1,\n 26: 1,\n 27: 2,\n 30: 2,\n 31: 3,\n 32: 1,\n 33: 1,\n 34: 0,\n 35: 0,\n 38: 1,\n 39: 2,\n 40: 3,\n 41: 3,\n 42: 3,\n 43: 3,\n 44: 3,\n 45: 3,\n 47: 3,\n 48: 2,\n 53: 1,\n 61: 3,\n 63: 0,\n 65: 3,\n 66: 3,\n 67: 1,\n 68: 1,\n 69: 1,\n 70: 1,\n 71: 1,\n 72: 1,\n 73: 1,\n 74: 0,\n 75: 1,\n 76: 1,\n 77: 1,\n 79: 2,\n 80: 2,\n 83: 1,\n 85: 0,\n 86: 1,\n 89: 0,\n 90: 1,\n 94: 0,\n 95: 0,\n 97: 2,\n 98: 1,\n 99: 1,\n 101: 3,\n 102: 3,\n 105: 1,\n 106: 1,\n 108: 2,\n 111: 1,\n 112: 1,\n 113: 1,\n 114: 1,\n 117: 2,\n 118: 1,\n 119: 4,\n 121: 1,\n 126: 1,\n 127: 1,\n 128: 1,\n 129: 1,\n 130: 1,\n 131: 1,\n 133: 1,\n 134: 1,\n 135: 1,\n 136: 2,\n 137: 2,\n 138: 2,\n 140: 1,\n 141: 1,\n 142: 3,\n 143: 4,\n 144: 4,\n 161: 1,\n 162: 1,\n 163: 1,\n 164: 1,\n 165: 2,\n 172: 1,\n 175: 2,\n 176: 2,\n 177: 3,\n 178: 2,\n 179: 1,\n 184: 1,\n 186: 1,\n 189: 3,\n 190: 1,\n 195: 3,\n 196: 3,\n 197: 1,\n 198: 1,\n 199: 3,\n 201: 1,\n 207: 4,\n 210: 3,\n 211: 1,\n 212: 2,\n 213: 2,\n 214: 1,\n 215: 1,\n 225: 0,\n 229: 1,\n 230: 1,\n 231: 1,\n 232: 1,\n 233: 1,\n 234: 1,\n 235: 3,\n 244: 1,\n 247: 4,\n 252: 2,\n 257: 1,\n 261: 1,\n 271: 1,\n 273: 4,\n 274: 2,\n 275: 2,\n 276: 2,\n 277: 3,\n 278: 3,\n 279: 1,\n 280: 3,\n 281: 3,\n 282: 3,\n 283: 1,\n 284: 1,\n 285: 2,\n 286: 4,\n 287: 3,\n 288: 2,\n 289: 4,\n 290: 3,\n 291: 3,\n 292: 3,\n 293: 4,\n 294: 1,\n 295: 3,\n 296: 1,\n 297: 3,\n 298: 1,\n 299: 2,\n 300: 3,\n 301: 3,\n 302: 4,\n 303: 2,\n 304: 2,\n 305: 2,\n 306: 2,\n 307: 2,\n 308: 2,\n 309: 3,\n 310: 2,\n 311: 2,\n 312: 2,\n 313: 2,\n 314: 2,\n 315: 2,\n 316: 4,\n 325: 2,\n 326: 2,\n 327: 2,\n 328: 2,\n 331: 2,\n 332: 2,\n 337: 2,\n 342: 1,\n 343: 1,\n 346: 2,\n 347: 1,\n 350: 4,\n 351: 3,\n 352: 1,\n 353: 2,\n 360: 1,\n 368: 1,\n 369: 1,\n 370: 1,\n 371: 1,\n 372: 1,\n 373: 1,\n 374: 1,\n 375: 1,\n 376: 1,\n 377: 1,\n 378: 1,\n 382: 3,\n 385: 1,\n 392: 1,\n 393: 1,\n 396: 2,\n 397: 2,\n 398: 2,\n 399: 1,\n 400: 1,\n 401: 1,\n 402: 1,\n 403: 1,\n 404: 1,\n 405: 1,\n 406: 1,\n 407: 1,\n 408: 1,\n 409: 1,\n 410: 1,\n 414: 4,\n 415: 1,\n 416: 1,\n 417: 2,\n 420: 1,\n 421: 1,\n 422: 2,\n 424: 1,\n 425: 2,\n 426: 2,\n 427: 2,\n 428: 2,\n 430: 3,\n 438: 3,\n 439: 3,\n 440: 3,\n 443: 2,\n 444: 2,\n 445: 2,\n 446: 2,\n 447: 6,\n 448: 6,\n 449: 2,\n 450: 2,\n 464: 2,\n 468: 3,\n 476: 2,\n 479: 1,\n 480: 2,\n 65535: 0\n};\n/* Part 3 TODO: actually parse formulae */\nfunction ods_to_csf_formula(f/*:string*/)/*:string*/ {\n\tif(f.slice(0,3) == \"of:\") f = f.slice(3);\n\t/* 5.2 Basic Expressions */\n\tif(f.charCodeAt(0) == 61) {\n\t\tf = f.slice(1);\n\t\tif(f.charCodeAt(0) == 61) f = f.slice(1);\n\t}\n\tf = f.replace(/COM\\.MICROSOFT\\./g, \"\");\n\t/* Part 3 Section 5.8 References */\n\tf = f.replace(/\\[((?:\\.[A-Z]+[0-9]+)(?::\\.[A-Z]+[0-9]+)?)\\]/g, function($$, $1) { return $1.replace(/\\./g,\"\"); });\n\tf = f.replace(/\\$'([^']|'')+'/g, function($$) { return $$.slice(1); });\n\tf = f.replace(/\\$([^\\]\\. #$]+)/g, function($$, $1) { return ($1).match(/^([A-Z]{1,2}|[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D])?(10[0-3]\\d{4}|104[0-7]\\d{3}|1048[0-4]\\d{2}|10485[0-6]\\d|104857[0-6]|[1-9]\\d{0,5})?$/) ? $$ : $1; });\n\t/* TODO: something other than this */\n\tf = f.replace(/\\[.(#[A-Z]*[?!])\\]/g, \"$1\");\n\treturn f.replace(/[;~]/g,\",\").replace(/\\|/g,\";\");\n}\n\nfunction csf_to_ods_formula(f/*:string*/)/*:string*/ {\n\tvar o = \"of:=\" + f.replace(crefregex, \"$1[.$2$3$4$5]\").replace(/\\]:\\[/g,\":\");\n\t/* TODO: something other than this */\n\treturn o.replace(/;/g, \"|\").replace(/,/g,\";\");\n}\n\nfunction ods_to_csf_3D(r/*:string*/)/*:[string, string]*/ {\n\tr = r.replace(/\\$'([^']|'')+'/g, function($$) { return $$.slice(1); });\n\tr = r.replace(/\\$([^\\]\\. #$]+)/g, function($$, $1) { return ($1).match(/^([A-Z]{1,2}|[A-W][A-Z]{2}|X[A-E][A-Z]|XF[A-D])?(10[0-3]\\d{4}|104[0-7]\\d{3}|1048[0-4]\\d{2}|10485[0-6]\\d|104857[0-6]|[1-9]\\d{0,5})?$/) ? $$ : $1; });\n\tvar a = r.split(\":\");\n\tvar s = a[0].split(\".\")[0];\n\treturn [s, a[0].split(\".\")[1] + (a.length > 1 ? (\":\" + (a[1].split(\".\")[1] || a[1].split(\".\")[0])) : \"\")];\n}\n\nfunction csf_to_ods_3D(r/*:string*/)/*:string*/ {\n\treturn r.replace(/!/,\".\");\n}\n\nvar strs = {}; // shared strings\nvar _ssfopts = {}; // spreadsheet formatting options\n\n\n/*global Map */\nvar browser_has_Map = typeof Map !== 'undefined';\n\nfunction get_sst_id(sst/*:SST*/, str/*:string*/, rev)/*:number*/ {\n\tvar i = 0, len = sst.length;\n\tif(rev) {\n\t\tif(browser_has_Map ? rev.has(str) : Object.prototype.hasOwnProperty.call(rev, str)) {\n\t\t\tvar revarr = browser_has_Map ? rev.get(str) : rev[str];\n\t\t\tfor(; i < revarr.length; ++i) {\n\t\t\t\tif(sst[revarr[i]].t === str) { sst.Count ++; return revarr[i]; }\n\t\t\t}\n\t\t}\n\t} else for(; i < len; ++i) {\n\t\tif(sst[i].t === str) { sst.Count ++; return i; }\n\t}\n\tsst[len] = ({t:str}/*:any*/); sst.Count ++; sst.Unique ++;\n\tif(rev) {\n\t\tif(browser_has_Map) {\n\t\t\tif(!rev.has(str)) rev.set(str, []);\n\t\t\trev.get(str).push(len);\n\t\t} else {\n\t\t\tif(!Object.prototype.hasOwnProperty.call(rev, str)) rev[str] = [];\n\t\t\trev[str].push(len);\n\t\t}\n\t}\n\treturn len;\n}\n\nfunction col_obj_w(C/*:number*/, col) {\n\tvar p = ({min:C+1,max:C+1}/*:any*/);\n\t/* wch (chars), wpx (pixels) */\n\tvar wch = -1;\n\tif(col.MDW) MDW = col.MDW;\n\tif(col.width != null) p.customWidth = 1;\n\telse if(col.wpx != null) wch = px2char(col.wpx);\n\telse if(col.wch != null) wch = col.wch;\n\tif(wch > -1) { p.width = char2width(wch); p.customWidth = 1; }\n\telse if(col.width != null) p.width = col.width;\n\tif(col.hidden) p.hidden = true;\n\tif(col.level != null) { p.outlineLevel = p.level = col.level; }\n\treturn p;\n}\n\nfunction default_margins(margins/*:Margins*/, mode/*:?string*/) {\n\tif(!margins) return;\n\tvar defs = [0.7, 0.7, 0.75, 0.75, 0.3, 0.3];\n\tif(mode == 'xlml') defs = [1, 1, 1, 1, 0.5, 0.5];\n\tif(margins.left == null) margins.left = defs[0];\n\tif(margins.right == null) margins.right = defs[1];\n\tif(margins.top == null) margins.top = defs[2];\n\tif(margins.bottom == null) margins.bottom = defs[3];\n\tif(margins.header == null) margins.header = defs[4];\n\tif(margins.footer == null) margins.footer = defs[5];\n}\n\nfunction get_cell_style(styles/*:Array<any>*/, cell/*:Cell*/, opts) {\n\tvar z = opts.revssf[cell.z != null ? cell.z : \"General\"];\n\tvar i = 0x3c, len = styles.length;\n\tif(z == null && opts.ssf) {\n\t\tfor(; i < 0x188; ++i) if(opts.ssf[i] == null) {\n\t\t\tSSF__load(cell.z, i);\n\t\t\t// $FlowIgnore\n\t\t\topts.ssf[i] = cell.z;\n\t\t\topts.revssf[cell.z] = z = i;\n\t\t\tbreak;\n\t\t}\n\t}\n\tfor(i = 0; i != len; ++i) if(styles[i].numFmtId === z) return i;\n\tstyles[len] = {\n\t\tnumFmtId:z,\n\t\tfontId:0,\n\t\tfillId:0,\n\t\tborderId:0,\n\t\txfId:0,\n\t\tapplyNumberFormat:1\n\t};\n\treturn len;\n}\n\nfunction safe_format(p/*:Cell*/, fmtid/*:number*/, fillid/*:?number*/, opts, themes, styles) {\n\ttry {\n\t\tif(opts.cellNF) p.z = table_fmt[fmtid];\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(p.t === 'z' && !opts.cellStyles) return;\n\tif(p.t === 'd' && typeof p.v === 'string') p.v = parseDate(p.v);\n\tif((!opts || opts.cellText !== false) && p.t !== 'z') try {\n\t\tif(table_fmt[fmtid] == null) SSF__load(SSFImplicit[fmtid] || \"General\", fmtid);\n\t\tif(p.t === 'e') p.w = p.w || BErr[p.v];\n\t\telse if(fmtid === 0) {\n\t\t\tif(p.t === 'n') {\n\t\t\t\tif((p.v|0) === p.v) p.w = p.v.toString(10);\n\t\t\t\telse p.w = SSF_general_num(p.v);\n\t\t\t}\n\t\t\telse if(p.t === 'd') {\n\t\t\t\tvar dd = datenum(p.v);\n\t\t\t\tif((dd|0) === dd) p.w = dd.toString(10);\n\t\t\t\telse p.w = SSF_general_num(dd);\n\t\t\t}\n\t\t\telse if(p.v === undefined) return \"\";\n\t\t\telse p.w = SSF_general(p.v,_ssfopts);\n\t\t}\n\t\telse if(p.t === 'd') p.w = SSF_format(fmtid,datenum(p.v),_ssfopts);\n\t\telse p.w = SSF_format(fmtid,p.v,_ssfopts);\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(!opts.cellStyles) return;\n\tif(fillid != null) try {\n\t\tp.s = styles.Fills[fillid];\n\t\tif (p.s.fgColor && p.s.fgColor.theme && !p.s.fgColor.rgb) {\n\t\t\tp.s.fgColor.rgb = rgb_tint(themes.themeElements.clrScheme[p.s.fgColor.theme].rgb, p.s.fgColor.tint || 0);\n\t\t\tif(opts.WTF) p.s.fgColor.raw_rgb = themes.themeElements.clrScheme[p.s.fgColor.theme].rgb;\n\t\t}\n\t\tif (p.s.bgColor && p.s.bgColor.theme) {\n\t\t\tp.s.bgColor.rgb = rgb_tint(themes.themeElements.clrScheme[p.s.bgColor.theme].rgb, p.s.bgColor.tint || 0);\n\t\t\tif(opts.WTF) p.s.bgColor.raw_rgb = themes.themeElements.clrScheme[p.s.bgColor.theme].rgb;\n\t\t}\n\t} catch(e) { if(opts.WTF && styles.Fills) throw e; }\n}\n\nfunction check_ws(ws/*:Worksheet*/, sname/*:string*/, i/*:number*/) {\n\tif(ws && ws['!ref']) {\n\t\tvar range = safe_decode_range(ws['!ref']);\n\t\tif(range.e.c < range.s.c || range.e.r < range.s.r) throw new Error(\"Bad range (\" + i + \"): \" + ws['!ref']);\n\t}\n}\nfunction parse_ws_xml_dim(ws/*:Worksheet*/, s/*:string*/) {\n\tvar d = safe_decode_range(s);\n\tif(d.s.r<=d.e.r && d.s.c<=d.e.c && d.s.r>=0 && d.s.c>=0) ws[\"!ref\"] = encode_range(d);\n}\nvar mergecregex = /<(?:\\w:)?mergeCell ref=\"[A-Z0-9:]+\"\\s*[\\/]?>/g;\nvar sheetdataregex = /<(?:\\w+:)?sheetData[^>]*>([\\s\\S]*)<\\/(?:\\w+:)?sheetData>/;\nvar hlinkregex = /<(?:\\w:)?hyperlink [^>]*>/mg;\nvar dimregex = /\"(\\w*:\\w*)\"/;\nvar colregex = /<(?:\\w:)?col\\b[^>]*[\\/]?>/g;\nvar afregex = /<(?:\\w:)?autoFilter[^>]*([\\/]|>([\\s\\S]*)<\\/(?:\\w:)?autoFilter)>/g;\nvar marginregex= /<(?:\\w:)?pageMargins[^>]*\\/>/g;\nvar sheetprregex = /<(?:\\w:)?sheetPr\\b(?:[^>a-z][^>]*)?\\/>/;\nvar sheetprregex2= /<(?:\\w:)?sheetPr[^>]*(?:[\\/]|>([\\s\\S]*)<\\/(?:\\w:)?sheetPr)>/;\nvar svsregex = /<(?:\\w:)?sheetViews[^>]*(?:[\\/]|>([\\s\\S]*)<\\/(?:\\w:)?sheetViews)>/;\n\n/* 18.3 Worksheets */\nfunction parse_ws_xml(data/*:?string*/, opts, idx/*:number*/, rels, wb/*:WBWBProps*/, themes, styles)/*:Worksheet*/ {\n\tif(!data) return data;\n\tif(!rels) rels = {'!id':{}};\n\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\n\t/* 18.3.1.99 worksheet CT_Worksheet */\n\tvar s = ({}/*:any*/); if(opts.dense) s[\"!data\"] = [];\n\tvar refguess/*:Range*/ = ({s: {r:2000000, c:2000000}, e: {r:0, c:0} }/*:any*/);\n\n\tvar data1 = \"\", data2 = \"\";\n\tvar mtch/*:?any*/ = data.match(sheetdataregex);\n\tif(mtch) {\n\t\tdata1 = data.slice(0, mtch.index);\n\t\tdata2 = data.slice(mtch.index + mtch[0].length);\n\t} else data1 = data2 = data;\n\n\t/* 18.3.1.82 sheetPr CT_SheetPr */\n\tvar sheetPr = data1.match(sheetprregex);\n\tif(sheetPr) parse_ws_xml_sheetpr(sheetPr[0], s, wb, idx);\n\telse if((sheetPr = data1.match(sheetprregex2))) parse_ws_xml_sheetpr2(sheetPr[0], sheetPr[1]||\"\", s, wb, idx, styles, themes);\n\n\t/* 18.3.1.35 dimension CT_SheetDimension */\n\tvar ridx = (data1.match(/<(?:\\w*:)?dimension/)||{index:-1}).index;\n\tif(ridx > 0) {\n\t\tvar ref = data1.slice(ridx,ridx+50).match(dimregex);\n\t\tif(ref && !(opts && opts.nodim)) parse_ws_xml_dim(s, ref[1]);\n\t}\n\n\t/* 18.3.1.88 sheetViews CT_SheetViews */\n\tvar svs = data1.match(svsregex);\n\tif(svs && svs[1]) parse_ws_xml_sheetviews(svs[1], wb);\n\n\t/* 18.3.1.17 cols CT_Cols */\n\tvar columns/*:Array<ColInfo>*/ = [];\n\tif(opts.cellStyles) {\n\t\t/* 18.3.1.13 col CT_Col */\n\t\tvar cols = data1.match(colregex);\n\t\tif(cols) parse_ws_xml_cols(columns, cols);\n\t}\n\n\t/* 18.3.1.80 sheetData CT_SheetData ? */\n\tif(mtch) parse_ws_xml_data(mtch[1], s, opts, refguess, themes, styles);\n\n\t/* 18.3.1.2 autoFilter CT_AutoFilter */\n\tvar afilter = data2.match(afregex);\n\tif(afilter) s['!autofilter'] = parse_ws_xml_autofilter(afilter[0]);\n\n\t/* 18.3.1.55 mergeCells CT_MergeCells */\n\tvar merges/*:Array<Range>*/ = [];\n\tvar _merge = data2.match(mergecregex);\n\tif(_merge) for(ridx = 0; ridx != _merge.length; ++ridx)\n\t\tmerges[ridx] = safe_decode_range(_merge[ridx].slice(_merge[ridx].indexOf(\"\\\"\")+1));\n\n\t/* 18.3.1.48 hyperlinks CT_Hyperlinks */\n\tvar hlink = data2.match(hlinkregex);\n\tif(hlink) parse_ws_xml_hlinks(s, hlink, rels);\n\n\t/* 18.3.1.62 pageMargins CT_PageMargins */\n\tvar margins = data2.match(marginregex);\n\tif(margins) s['!margins'] = parse_ws_xml_margins(parsexmltag(margins[0]));\n\n\tif(opts && opts.nodim) refguess.s.c = refguess.s.r = 0;\n\tif(!s[\"!ref\"] && refguess.e.c >= refguess.s.c && refguess.e.r >= refguess.s.r) s[\"!ref\"] = encode_range(refguess);\n\tif(opts.sheetRows > 0 && s[\"!ref\"]) {\n\t\tvar tmpref = safe_decode_range(s[\"!ref\"]);\n\t\tif(opts.sheetRows <= +tmpref.e.r) {\n\t\t\ttmpref.e.r = opts.sheetRows - 1;\n\t\t\tif(tmpref.e.r > refguess.e.r) tmpref.e.r = refguess.e.r;\n\t\t\tif(tmpref.e.r < tmpref.s.r) tmpref.s.r = tmpref.e.r;\n\t\t\tif(tmpref.e.c > refguess.e.c) tmpref.e.c = refguess.e.c;\n\t\t\tif(tmpref.e.c < tmpref.s.c) tmpref.s.c = tmpref.e.c;\n\t\t\ts[\"!fullref\"] = s[\"!ref\"];\n\t\t\ts[\"!ref\"] = encode_range(tmpref);\n\t\t}\n\t}\n\tif(columns.length > 0) s[\"!cols\"] = columns;\n\tif(merges.length > 0) s[\"!merges\"] = merges;\n\treturn s;\n}\n\nfunction write_ws_xml_merges(merges/*:Array<Range>*/)/*:string*/ {\n\tif(merges.length === 0) return \"\";\n\tvar o = '<mergeCells count=\"' + merges.length + '\">';\n\tfor(var i = 0; i != merges.length; ++i) o += '<mergeCell ref=\"' + encode_range(merges[i]) + '\"/>';\n\treturn o + '</mergeCells>';\n}\n\n/* 18.3.1.82-3 sheetPr CT_ChartsheetPr / CT_SheetPr */\nfunction parse_ws_xml_sheetpr(sheetPr/*:string*/, s, wb/*:WBWBProps*/, idx/*:number*/) {\n\tvar data = parsexmltag(sheetPr);\n\tif(!wb.Sheets[idx]) wb.Sheets[idx] = {};\n\tif(data.codeName) wb.Sheets[idx].CodeName = unescapexml(utf8read(data.codeName));\n}\nfunction parse_ws_xml_sheetpr2(sheetPr/*:string*/, body/*:string*/, s, wb/*:WBWBProps*/, idx/*:number*/) {\n\tparse_ws_xml_sheetpr(sheetPr.slice(0, sheetPr.indexOf(\">\")), s, wb, idx);\n}\nfunction write_ws_xml_sheetpr(ws, wb, idx, opts, o) {\n\tvar needed = false;\n\tvar props = {}, payload = null;\n\tif(opts.bookType !== 'xlsx' && wb.vbaraw) {\n\t\tvar cname = wb.SheetNames[idx];\n\t\ttry { if(wb.Workbook) cname = wb.Workbook.Sheets[idx].CodeName || cname; } catch(e) {}\n\t\tneeded = true;\n\t\tprops.codeName = utf8write(escapexml(cname));\n\t}\n\n\tif(ws && ws[\"!outline\"]) {\n\t\tvar outlineprops = {summaryBelow:1, summaryRight:1};\n\t\tif(ws[\"!outline\"].above) outlineprops.summaryBelow = 0;\n\t\tif(ws[\"!outline\"].left) outlineprops.summaryRight = 0;\n\t\tpayload = (payload||\"\") + writextag('outlinePr', null, outlineprops);\n\t}\n\n\tif(!needed && !payload) return;\n\to[o.length] = (writextag('sheetPr', payload, props));\n}\n\n/* 18.3.1.85 sheetProtection CT_SheetProtection */\nvar sheetprot_deffalse = [\"objects\", \"scenarios\", \"selectLockedCells\", \"selectUnlockedCells\"];\nvar sheetprot_deftrue = [\n\t\"formatColumns\", \"formatRows\", \"formatCells\",\n\t\"insertColumns\", \"insertRows\", \"insertHyperlinks\",\n\t\"deleteColumns\", \"deleteRows\",\n\t\"sort\", \"autoFilter\", \"pivotTables\"\n];\nfunction write_ws_xml_protection(sp)/*:string*/ {\n\t// algorithmName, hashValue, saltValue, spinCount\n\tvar o = ({sheet:1}/*:any*/);\n\tsheetprot_deffalse.forEach(function(n) { if(sp[n] != null && sp[n]) o[n] = \"1\"; });\n\tsheetprot_deftrue.forEach(function(n) { if(sp[n] != null && !sp[n]) o[n] = \"0\"; });\n\t/* TODO: algorithm */\n\tif(sp.password) o.password = crypto_CreatePasswordVerifier_Method1(sp.password).toString(16).toUpperCase();\n\treturn writextag('sheetProtection', null, o);\n}\n\nfunction parse_ws_xml_hlinks(s, data/*:Array<string>*/, rels) {\n\tvar dense = s[\"!data\"] != null;\n\tfor(var i = 0; i != data.length; ++i) {\n\t\tvar val = parsexmltag(utf8read(data[i]), true);\n\t\tif(!val.ref) return;\n\t\tvar rel = ((rels || {})['!id']||[])[val.id];\n\t\tif(rel) {\n\t\t\tval.Target = rel.Target;\n\t\t\tif(val.location) val.Target += \"#\"+unescapexml(val.location);\n\t\t} else {\n\t\t\tval.Target = \"#\" + unescapexml(val.location);\n\t\t\trel = {Target: val.Target, TargetMode: 'Internal'};\n\t\t}\n\t\tval.Rel = rel;\n\t\tif(val.tooltip) { val.Tooltip = val.tooltip; delete val.tooltip; }\n\t\tvar rng = safe_decode_range(val.ref);\n\t\tfor(var R=rng.s.r;R<=rng.e.r;++R) for(var C=rng.s.c;C<=rng.e.c;++C) {\n\t\t\tvar addr = encode_col(C) + encode_row(R);\n\t\t\tif(dense) {\n\t\t\t\tif(!s[\"!data\"][R]) s[\"!data\"][R] = [];\n\t\t\t\tif(!s[\"!data\"][R][C]) s[\"!data\"][R][C] = {t:\"z\",v:undefined};\n\t\t\t\ts[\"!data\"][R][C].l = val;\n\t\t\t} else {\n\t\t\t\tif(!s[addr]) s[addr] = {t:\"z\",v:undefined};\n\t\t\t\ts[addr].l = val;\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction parse_ws_xml_margins(margin) {\n\tvar o = {};\n\t[\"left\", \"right\", \"top\", \"bottom\", \"header\", \"footer\"].forEach(function(k) {\n\t\tif(margin[k]) o[k] = parseFloat(margin[k]);\n\t});\n\treturn o;\n}\nfunction write_ws_xml_margins(margin)/*:string*/ {\n\tdefault_margins(margin);\n\treturn writextag('pageMargins', null, margin);\n}\n\nfunction parse_ws_xml_cols(columns, cols) {\n\tvar seencol = false;\n\tfor(var coli = 0; coli != cols.length; ++coli) {\n\t\tvar coll = parsexmltag(cols[coli], true);\n\t\tif(coll.hidden) coll.hidden = parsexmlbool(coll.hidden);\n\t\tvar colm=parseInt(coll.min, 10)-1, colM=parseInt(coll.max,10)-1;\n\t\tif(coll.outlineLevel) coll.level = (+coll.outlineLevel || 0);\n\t\tdelete coll.min; delete coll.max; coll.width = +coll.width;\n\t\tif(!seencol && coll.width) { seencol = true; find_mdw_colw(coll.width); }\n\t\tprocess_col(coll);\n\t\twhile(colm <= colM) columns[colm++] = dup(coll);\n\t}\n}\nfunction write_ws_xml_cols(ws, cols)/*:string*/ {\n\tvar o = [\"<cols>\"], col;\n\tfor(var i = 0; i != cols.length; ++i) {\n\t\tif(!(col = cols[i])) continue;\n\t\to[o.length] = (writextag('col', null, col_obj_w(i, col)));\n\t}\n\to[o.length] = \"</cols>\";\n\treturn o.join(\"\");\n}\n\nfunction parse_ws_xml_autofilter(data/*:string*/) {\n\tvar o = { ref: (data.match(/ref=\"([^\"]*)\"/)||[])[1]};\n\treturn o;\n}\nfunction write_ws_xml_autofilter(data, ws, wb, idx)/*:string*/ {\n\tvar ref = typeof data.ref == \"string\" ? data.ref : encode_range(data.ref);\n\tif(!wb.Workbook) wb.Workbook = ({Sheets:[]}/*:any*/);\n\tif(!wb.Workbook.Names) wb.Workbook.Names = [];\n\tvar names/*: Array<any> */ = wb.Workbook.Names;\n\tvar range = decode_range(ref);\n\tif(range.s.r == range.e.r) { range.e.r = decode_range(ws[\"!ref\"]).e.r; ref = encode_range(range); }\n\tfor(var i = 0; i < names.length; ++i) {\n\t\tvar name = names[i];\n\t\tif(name.Name != '_xlnm._FilterDatabase') continue;\n\t\tif(name.Sheet != idx) continue;\n\t\tname.Ref = formula_quote_sheet_name(wb.SheetNames[idx]) + \"!\" + fix_range(ref); break;\n\t}\n\tif(i == names.length) names.push({ Name: '_xlnm._FilterDatabase', Sheet: idx, Ref: \"'\" + wb.SheetNames[idx] + \"'!\" + ref });\n\treturn writextag(\"autoFilter\", null, {ref:ref});\n}\n\n/* 18.3.1.88 sheetViews CT_SheetViews */\n/* 18.3.1.87 sheetView CT_SheetView */\nvar sviewregex = /<(?:\\w:)?sheetView(?:[^>a-z][^>]*)?\\/?>/g;\nfunction parse_ws_xml_sheetviews(data, wb/*:WBWBProps*/) {\n\tif(!wb.Views) wb.Views = [{}];\n\t(data.match(sviewregex)||[]).forEach(function(r/*:string*/, i/*:number*/) {\n\t\tvar tag = parsexmltag(r);\n\t\t// $FlowIgnore\n\t\tif(!wb.Views[i]) wb.Views[i] = {};\n\t\t// $FlowIgnore\n\t\tif(+tag.zoomScale) wb.Views[i].zoom = +tag.zoomScale;\n\t\t// $FlowIgnore\n\t\tif(tag.rightToLeft && parsexmlbool(tag.rightToLeft)) wb.Views[i].RTL = true;\n\t});\n}\nfunction write_ws_xml_sheetviews(ws, opts, idx, wb)/*:string*/ {\n\tvar sview = ({workbookViewId:\"0\"}/*:any*/);\n\t// $FlowIgnore\n\tif((((wb||{}).Workbook||{}).Views||[])[0]) sview.rightToLeft = wb.Workbook.Views[0].RTL ? \"1\" : \"0\";\n\treturn writextag(\"sheetViews\", writextag(\"sheetView\", null, sview), {});\n}\n\nfunction write_ws_xml_cell(cell/*:Cell*/, ref, ws, opts/*::, idx, wb*/)/*:string*/ {\n\tif(cell.c) ws['!comments'].push([ref, cell.c]);\n\tif((cell.v === undefined || cell.t === \"z\" && !(opts||{}).sheetStubs) && typeof cell.f !== \"string\" && typeof cell.z == \"undefined\") return \"\";\n\tvar vv = \"\";\n\tvar oldt = cell.t, oldv = cell.v;\n\tif(cell.t !== \"z\") switch(cell.t) {\n\t\tcase 'b': vv = cell.v ? \"1\" : \"0\"; break;\n\t\tcase 'n': vv = ''+cell.v; break;\n\t\tcase 'e': vv = BErr[cell.v]; break;\n\t\tcase 'd':\n\t\t\tif(opts && opts.cellDates) vv = parseDate(cell.v, -1).toISOString();\n\t\t\telse {\n\t\t\t\tcell = dup(cell);\n\t\t\t\tcell.t = 'n';\n\t\t\t\tvv = ''+(cell.v = datenum(parseDate(cell.v)));\n\t\t\t}\n\t\t\tif(typeof cell.z === 'undefined') cell.z = table_fmt[14];\n\t\t\tbreak;\n\t\tdefault: vv = cell.v; break;\n\t}\n\tvar v = (cell.t == \"z\" || cell.v == null)? \"\" : writetag('v', escapexml(vv)), o = ({r:ref}/*:any*/);\n\t/* TODO: cell style */\n\tvar os = get_cell_style(opts.cellXfs, cell, opts);\n\tif(os !== 0) o.s = os;\n\tswitch(cell.t) {\n\t\tcase 'n': break;\n\t\tcase 'd': o.t = \"d\"; break;\n\t\tcase 'b': o.t = \"b\"; break;\n\t\tcase 'e': o.t = \"e\"; break;\n\t\tcase 'z': break;\n\t\tdefault: if(cell.v == null) { delete cell.t; break; }\n\t\t\tif(cell.v.length > 32767) throw new Error(\"Text length must not exceed 32767 characters\");\n\t\t\tif(opts && opts.bookSST) {\n\t\t\t\tv = writetag('v', ''+get_sst_id(opts.Strings, cell.v, opts.revStrings));\n\t\t\t\to.t = \"s\"; break;\n\t\t\t}\n\t\t\telse o.t = \"str\"; break;\n\t}\n\tif(cell.t != oldt) { cell.t = oldt; cell.v = oldv; }\n\tif(typeof cell.f == \"string\" && cell.f) {\n\t\tvar ff = cell.F && cell.F.slice(0, ref.length) == ref ? {t:\"array\", ref:cell.F} : null;\n\t\tv = writextag('f', escapexml(cell.f), ff) + (cell.v != null ? v : \"\");\n\t}\n\tif(cell.l) {\n\t\tcell.l.display = escapexml(vv);\n\t\tws['!links'].push([ref, cell.l]);\n\t}\n\tif(cell.D) o.cm = 1;\n\treturn writextag('c', v, o);\n}\n\nvar parse_ws_xml_data = /*#__PURE__*/(function() {\n\tvar cellregex = /<(?:\\w+:)?c[ \\/>]/, rowregex = /<\\/(?:\\w+:)?row>/;\n\tvar rregex = /r=[\"']([^\"']*)[\"']/, isregex = /<(?:\\w+:)?is>([\\S\\s]*?)<\\/(?:\\w+:)?is>/;\n\tvar refregex = /ref=[\"']([^\"']*)[\"']/;\n\tvar match_v = matchtag(\"v\"), match_f = matchtag(\"f\");\n\nreturn function parse_ws_xml_data(sdata/*:string*/, s, opts, guess/*:Range*/, themes, styles) {\n\tvar ri = 0, x = \"\", cells/*:Array<string>*/ = [], cref/*:?Array<string>*/ = [], idx=0, i=0, cc=0, d=\"\", p/*:any*/;\n\tvar tag, tagr = 0, tagc = 0;\n\tvar sstr, ftag;\n\tvar fmtid = 0, fillid = 0;\n\tvar do_format = Array.isArray(styles.CellXf), cf;\n\tvar arrayf/*:Array<[Range, string]>*/ = [];\n\tvar sharedf = [];\n\tvar dense = s[\"!data\"] != null;\n\tvar rows/*:Array<RowInfo>*/ = [], rowobj = {}, rowrite = false;\n\tvar sheetStubs = !!opts.sheetStubs;\n\tfor(var marr = sdata.split(rowregex), mt = 0, marrlen = marr.length; mt != marrlen; ++mt) {\n\t\tx = marr[mt].trim();\n\t\tvar xlen = x.length;\n\t\tif(xlen === 0) continue;\n\n\t\t/* 18.3.1.73 row CT_Row */\n\t\tvar rstarti = 0;\n\t\touta: for(ri = 0; ri < xlen; ++ri) switch(/*x.charCodeAt(ri)*/x[ri]) {\n\t\t\tcase \">\" /*62*/:\n\t\t\t\tif(/*x.charCodeAt(ri-1) != 47*/x[ri-1] != \"/\") { ++ri; break outa; }\n\t\t\t\tif(opts && opts.cellStyles) {\n\t\t\t\t\t// TODO: avoid duplication\n\t\t\t\t\ttag = parsexmltag(x.slice(rstarti,ri), true);\n\t\t\t\t\ttagr = tag.r != null ? parseInt(tag.r, 10) : tagr+1; tagc = -1;\n\t\t\t\t\tif(opts.sheetRows && opts.sheetRows < tagr) continue;\n\t\t\t\t\trowobj = {}; rowrite = false;\n\t\t\t\t\tif(tag.ht) { rowrite = true; rowobj.hpt = parseFloat(tag.ht); rowobj.hpx = pt2px(rowobj.hpt); }\n\t\t\t\t\tif(tag.hidden && parsexmlbool(tag.hidden)) { rowrite = true; rowobj.hidden = true; }\n\t\t\t\t\tif(tag.outlineLevel != null) { rowrite = true; rowobj.level = +tag.outlineLevel; }\n\t\t\t\t\tif(rowrite) rows[tagr-1] = rowobj;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase \"<\" /*60*/: rstarti = ri; break;\n\t\t}\n\t\tif(rstarti >= ri) break;\n\t\ttag = parsexmltag(x.slice(rstarti,ri), true);\n\t\ttagr = tag.r != null ? parseInt(tag.r, 10) : tagr+1; tagc = -1;\n\t\tif(opts.sheetRows && opts.sheetRows < tagr) continue;\n\t\tif(!opts.nodim) {\n\t\t\tif(guess.s.r > tagr - 1) guess.s.r = tagr - 1;\n\t\t\tif(guess.e.r < tagr - 1) guess.e.r = tagr - 1;\n\t\t}\n\n\t\tif(opts && opts.cellStyles) {\n\t\t\trowobj = {}; rowrite = false;\n\t\t\tif(tag.ht) { rowrite = true; rowobj.hpt = parseFloat(tag.ht); rowobj.hpx = pt2px(rowobj.hpt); }\n\t\t\tif(tag.hidden && parsexmlbool(tag.hidden)) { rowrite = true; rowobj.hidden = true; }\n\t\t\tif(tag.outlineLevel != null) { rowrite = true; rowobj.level = +tag.outlineLevel; }\n\t\t\tif(rowrite) rows[tagr-1] = rowobj;\n\t\t}\n\n\t\t/* 18.3.1.4 c CT_Cell */\n\t\tcells = x.slice(ri).split(cellregex);\n\t\tfor(var rslice = 0; rslice != cells.length; ++rslice) if(cells[rslice].trim().charAt(0) != \"<\") break;\n\t\tcells = cells.slice(rslice);\n\t\tfor(ri = 0; ri != cells.length; ++ri) {\n\t\t\tx = cells[ri].trim();\n\t\t\tif(x.length === 0) continue;\n\t\t\tcref = x.match(rregex); idx = ri; i=0; cc=0;\n\t\t\tx = \"<c \" + (x.slice(0,1)==\"<\"?\">\":\"\") + x;\n\t\t\tif(cref != null && cref.length === 2) {\n\t\t\t\tidx = 0; d=cref[1];\n\t\t\t\tfor(i=0; i != d.length; ++i) {\n\t\t\t\t\tif((cc=d.charCodeAt(i)-64) < 1 || cc > 26) break;\n\t\t\t\t\tidx = 26*idx + cc;\n\t\t\t\t}\n\t\t\t\t--idx;\n\t\t\t\ttagc = idx;\n\t\t\t} else ++tagc;\n\t\t\tfor(i = 0; i != x.length; ++i) if(x.charCodeAt(i) === 62) break; ++i;\n\t\t\ttag = parsexmltag(x.slice(0,i), true);\n\t\t\tif(!tag.r) tag.r = encode_cell({r:tagr-1, c:tagc});\n\t\t\td = x.slice(i);\n\t\t\tp = ({t:\"\"}/*:any*/);\n\n\t\t\tif((cref=d.match(match_v))!= null && /*::cref != null && */cref[1] !== '') p.v=unescapexml(cref[1]);\n\t\t\tif(opts.cellFormula) {\n\t\t\t\tif((cref=d.match(match_f))!= null && /*::cref != null && */cref[1] !== '') {\n\t\t\t\t\t/* TODO: match against XLSXFutureFunctions */\n\t\t\t\t\tp.f=unescapexml(utf8read(cref[1]), true);\n\t\t\t\t\tif(!opts.xlfn) p.f = _xlfn(p.f);\n\t\t\t\t\tif(/*::cref != null && cref[0] != null && */cref[0].indexOf('t=\"array\"') > -1) {\n\t\t\t\t\t\tp.F = (d.match(refregex)||[])[1];\n\t\t\t\t\t\tif(p.F.indexOf(\":\") > -1) arrayf.push([safe_decode_range(p.F), p.F]);\n\t\t\t\t\t} else if(/*::cref != null && cref[0] != null && */cref[0].indexOf('t=\"shared\"') > -1) {\n\t\t\t\t\t\t// TODO: parse formula\n\t\t\t\t\t\tftag = parsexmltag(cref[0]);\n\t\t\t\t\t\tvar ___f = unescapexml(utf8read(cref[1]));\n\t\t\t\t\t\tif(!opts.xlfn) ___f = _xlfn(___f);\n\t\t\t\t\t\tsharedf[parseInt(ftag.si, 10)] = [ftag, ___f, tag.r];\n\t\t\t\t\t}\n\t\t\t\t} else if((cref=d.match(/<f[^>]*\\/>/))) {\n\t\t\t\t\tftag = parsexmltag(cref[0]);\n\t\t\t\t\tif(sharedf[ftag.si]) p.f = shift_formula_xlsx(sharedf[ftag.si][1], sharedf[ftag.si][2]/*[0].ref*/, tag.r);\n\t\t\t\t}\n\t\t\t\t/* TODO: factor out contains logic */\n\t\t\t\tvar _tag = decode_cell(tag.r);\n\t\t\t\tfor(i = 0; i < arrayf.length; ++i)\n\t\t\t\t\tif(_tag.r >= arrayf[i][0].s.r && _tag.r <= arrayf[i][0].e.r)\n\t\t\t\t\t\tif(_tag.c >= arrayf[i][0].s.c && _tag.c <= arrayf[i][0].e.c)\n\t\t\t\t\t\t\tp.F = arrayf[i][1];\n\t\t\t}\n\n\t\t\tif(tag.t == null && p.v === undefined) {\n\t\t\t\tif(p.f || p.F) {\n\t\t\t\t\tp.v = 0; p.t = \"n\";\n\t\t\t\t} else if(!sheetStubs) continue;\n\t\t\t\telse p.t = \"z\";\n\t\t\t}\n\t\t\telse p.t = tag.t || \"n\";\n\t\t\tif(guess.s.c > tagc) guess.s.c = tagc;\n\t\t\tif(guess.e.c < tagc) guess.e.c = tagc;\n\t\t\t/* 18.18.11 t ST_CellType */\n\t\t\tswitch(p.t) {\n\t\t\t\tcase 'n':\n\t\t\t\t\tif(p.v == \"\" || p.v == null) {\n\t\t\t\t\t\tif(!sheetStubs) continue;\n\t\t\t\t\t\tp.t = 'z';\n\t\t\t\t\t} else p.v = parseFloat(p.v);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 's':\n\t\t\t\t\tif(typeof p.v == 'undefined') {\n\t\t\t\t\t\tif(!sheetStubs) continue;\n\t\t\t\t\t\tp.t = 'z';\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsstr = strs[parseInt(p.v, 10)];\n\t\t\t\t\t\tp.v = sstr.t;\n\t\t\t\t\t\tp.r = sstr.r;\n\t\t\t\t\t\tif(opts.cellHTML) p.h = sstr.h;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'str':\n\t\t\t\t\tp.t = \"s\";\n\t\t\t\t\tp.v = (p.v!=null) ? unescapexml(utf8read(p.v), true) : '';\n\t\t\t\t\tif(opts.cellHTML) p.h = escapehtml(p.v);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'inlineStr':\n\t\t\t\t\tcref = d.match(isregex);\n\t\t\t\t\tp.t = 's';\n\t\t\t\t\tif(cref != null && (sstr = parse_si(cref[1]))) {\n\t\t\t\t\t\tp.v = sstr.t;\n\t\t\t\t\t\tif(opts.cellHTML) p.h = sstr.h;\n\t\t\t\t\t} else p.v = \"\";\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'b': p.v = parsexmlbool(p.v); break;\n\t\t\t\tcase 'd':\n\t\t\t\t\tif(opts.cellDates) p.v = parseDate(p.v, 1);\n\t\t\t\t\telse { p.v = datenum(parseDate(p.v, 1)); p.t = 'n'; }\n\t\t\t\t\tbreak;\n\t\t\t\t/* error string in .w, number in .v */\n\t\t\t\tcase 'e':\n\t\t\t\t\tif(!opts || opts.cellText !== false) p.w = p.v;\n\t\t\t\t\tp.v = RBErr[p.v]; break;\n\t\t\t}\n\t\t\t/* formatting */\n\t\t\tfmtid = fillid = 0;\n\t\t\tcf = null;\n\t\t\tif(do_format && tag.s !== undefined) {\n\t\t\t\tcf = styles.CellXf[tag.s];\n\t\t\t\tif(cf != null) {\n\t\t\t\t\tif(cf.numFmtId != null) fmtid = cf.numFmtId;\n\t\t\t\t\tif(opts.cellStyles) {\n\t\t\t\t\t\tif(cf.fillId != null) fillid = cf.fillId;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tsafe_format(p, fmtid, fillid, opts, themes, styles);\n\t\t\tif(opts.cellDates && do_format && p.t == 'n' && fmt_is_date(table_fmt[fmtid])) { p.t = 'd'; p.v = numdate(p.v); }\n\t\t\tif(tag.cm && opts.xlmeta) {\n\t\t\t\tvar cm = (opts.xlmeta.Cell||[])[+tag.cm-1];\n\t\t\t\tif(cm && cm.type == 'XLDAPR') p.D = true;\n\t\t\t}\n\t\t\tvar _r;\n\t\t\tif(opts.nodim) {\n\t\t\t\t_r = decode_cell(tag.r);\n\t\t\t\tif(guess.s.r > _r.r) guess.s.r = _r.r;\n\t\t\t\tif(guess.e.r < _r.r) guess.e.r = _r.r;\n\t\t\t}\n\t\t\tif(dense) {\n\t\t\t\t_r = decode_cell(tag.r);\n\t\t\t\tif(!s[\"!data\"][_r.r]) s[\"!data\"][_r.r] = [];\n\t\t\t\ts[\"!data\"][_r.r][_r.c] = p;\n\t\t\t} else s[tag.r] = p;\n\t\t}\n\t}\n\tif(rows.length > 0) s['!rows'] = rows;\n}; })();\n\nfunction write_ws_xml_data(ws/*:Worksheet*/, opts, idx/*:number*/, wb/*:Workbook*//*::, rels*/)/*:string*/ {\n\tvar o/*:Array<string>*/ = [], r/*:Array<string>*/ = [], range = safe_decode_range(ws['!ref']), cell=\"\", ref, rr = \"\", cols/*:Array<string>*/ = [], R=0, C=0, rows = ws['!rows'];\n\tvar dense = ws[\"!data\"] != null;\n\tvar params = ({r:rr}/*:any*/), row/*:RowInfo*/, height = -1;\n\tfor(C = range.s.c; C <= range.e.c; ++C) cols[C] = encode_col(C);\n\tfor(R = range.s.r; R <= range.e.r; ++R) {\n\t\tr = [];\n\t\trr = encode_row(R);\n\t\tfor(C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tref = cols[C] + rr;\n\t\t\tvar _cell = dense ? (ws[\"!data\"][R]||[])[C]: ws[ref];\n\t\t\tif(_cell === undefined) continue;\n\t\t\tif((cell = write_ws_xml_cell(_cell, ref, ws, opts, idx, wb)) != null) r.push(cell);\n\t\t}\n\t\tif(r.length > 0 || (rows && rows[R])) {\n\t\t\tparams = ({r:rr}/*:any*/);\n\t\t\tif(rows && rows[R]) {\n\t\t\t\trow = rows[R];\n\t\t\t\tif(row.hidden) params.hidden = 1;\n\t\t\t\theight = -1;\n\t\t\t\tif(row.hpx) height = px2pt(row.hpx);\n\t\t\t\telse if(row.hpt) height = row.hpt;\n\t\t\t\tif(height > -1) { params.ht = height; params.customHeight = 1; }\n\t\t\t\tif(row.level) { params.outlineLevel = row.level; }\n\t\t\t}\n\t\t\to[o.length] = (writextag('row', r.join(\"\"), params));\n\t\t}\n\t}\n\tif(rows) for(; R < rows.length; ++R) {\n\t\tif(rows && rows[R]) {\n\t\t\tparams = ({r:R+1}/*:any*/);\n\t\t\trow = rows[R];\n\t\t\tif(row.hidden) params.hidden = 1;\n\t\t\theight = -1;\n\t\t\tif (row.hpx) height = px2pt(row.hpx);\n\t\t\telse if (row.hpt) height = row.hpt;\n\t\t\tif (height > -1) { params.ht = height; params.customHeight = 1; }\n\t\t\tif (row.level) { params.outlineLevel = row.level; }\n\t\t\to[o.length] = (writextag('row', \"\", params));\n\t\t}\n\t}\n\treturn o.join(\"\");\n}\n\nfunction write_ws_xml(idx/*:number*/, opts, wb/*:Workbook*/, rels)/*:string*/ {\n\tvar o = [XML_HEADER, writextag('worksheet', null, {\n\t\t'xmlns': XMLNS_main[0],\n\t\t'xmlns:r': XMLNS.r\n\t})];\n\tvar s = wb.SheetNames[idx], sidx = 0, rdata = \"\";\n\tvar ws = wb.Sheets[s];\n\tif(ws == null) ws = {};\n\tvar ref = ws['!ref'] || 'A1';\n\tvar range = safe_decode_range(ref);\n\tif(range.e.c > 0x3FFF || range.e.r > 0xFFFFF) {\n\t\tif(opts.WTF) throw new Error(\"Range \" + ref + \" exceeds format limit A1:XFD1048576\");\n\t\trange.e.c = Math.min(range.e.c, 0x3FFF);\n\t\trange.e.r = Math.min(range.e.c, 0xFFFFF);\n\t\tref = encode_range(range);\n\t}\n\tif(!rels) rels = {};\n\tws['!comments'] = [];\n\tvar _drawing = [];\n\n\twrite_ws_xml_sheetpr(ws, wb, idx, opts, o);\n\n\to[o.length] = (writextag('dimension', null, {'ref': ref}));\n\n\to[o.length] = write_ws_xml_sheetviews(ws, opts, idx, wb);\n\n\t/* TODO: store in WB, process styles */\n\tif(opts.sheetFormat) o[o.length] = (writextag('sheetFormatPr', null, {\n\t\tdefaultRowHeight:opts.sheetFormat.defaultRowHeight||'16',\n\t\tbaseColWidth:opts.sheetFormat.baseColWidth||'10',\n\t\toutlineLevelRow:opts.sheetFormat.outlineLevelRow||'7'\n\t}));\n\n\tif(ws['!cols'] != null && ws['!cols'].length > 0) o[o.length] = (write_ws_xml_cols(ws, ws['!cols']));\n\n\to[sidx = o.length] = '<sheetData/>';\n\tws['!links'] = [];\n\tif(ws['!ref'] != null) {\n\t\trdata = write_ws_xml_data(ws, opts, idx, wb, rels);\n\t\tif(rdata.length > 0) o[o.length] = (rdata);\n\t}\n\tif(o.length>sidx+1) { o[o.length] = ('</sheetData>'); o[sidx]=o[sidx].replace(\"/>\",\">\"); }\n\n\t/* sheetCalcPr */\n\n\tif(ws['!protect']) o[o.length] = write_ws_xml_protection(ws['!protect']);\n\n\t/* protectedRanges */\n\t/* scenarios */\n\n\tif(ws['!autofilter'] != null) o[o.length] = write_ws_xml_autofilter(ws['!autofilter'], ws, wb, idx);\n\n\t/* sortState */\n\t/* dataConsolidate */\n\t/* customSheetViews */\n\n\tif(ws['!merges'] != null && ws['!merges'].length > 0) o[o.length] = (write_ws_xml_merges(ws['!merges']));\n\n\t/* phoneticPr */\n\t/* conditionalFormatting */\n\t/* dataValidations */\n\n\tvar relc = -1, rel, rId = -1;\n\tif(/*::(*/ws['!links']/*::||[])*/.length > 0) {\n\t\to[o.length] = \"<hyperlinks>\";\n\t\t/*::(*/ws['!links']/*::||[])*/.forEach(function(l) {\n\t\t\tif(!l[1].Target) return;\n\t\t\trel = ({\"ref\":l[0]}/*:any*/);\n\t\t\tif(l[1].Target.charAt(0) != \"#\") {\n\t\t\t\trId = add_rels(rels, -1, escapexml(l[1].Target).replace(/#.*$/, \"\"), RELS.HLINK);\n\t\t\t\trel[\"r:id\"] = \"rId\"+rId;\n\t\t\t}\n\t\t\tif((relc = l[1].Target.indexOf(\"#\")) > -1) rel.location = escapexml(l[1].Target.slice(relc+1));\n\t\t\tif(l[1].Tooltip) rel.tooltip = escapexml(l[1].Tooltip);\n\t\t\trel.display = l[1].display;\n\t\t\to[o.length] = writextag(\"hyperlink\",null,rel);\n\t\t});\n\t\to[o.length] = \"</hyperlinks>\";\n\t}\n\tdelete ws['!links'];\n\n\t/* printOptions */\n\n\tif(ws['!margins'] != null) o[o.length] = write_ws_xml_margins(ws['!margins']);\n\n\t/* pageSetup */\n\t/* headerFooter */\n\t/* rowBreaks */\n\t/* colBreaks */\n\t/* customProperties */\n\t/* cellWatches */\n\n\tif(!opts || opts.ignoreEC || (opts.ignoreEC == (void 0))) o[o.length] = writetag(\"ignoredErrors\", writextag(\"ignoredError\", null, {numberStoredAsText:1, sqref:ref}));\n\n\t/* smartTags */\n\n\tif(_drawing.length > 0) {\n\t\trId = add_rels(rels, -1, \"../drawings/drawing\" + (idx+1) + \".xml\", RELS.DRAW);\n\t\to[o.length] = writextag(\"drawing\", null, {\"r:id\":\"rId\" + rId});\n\t\tws['!drawing'] = _drawing;\n\t}\n\n\tif(ws['!comments'].length > 0) {\n\t\trId = add_rels(rels, -1, \"../drawings/vmlDrawing\" + (idx+1) + \".vml\", RELS.VML);\n\t\to[o.length] = writextag(\"legacyDrawing\", null, {\"r:id\":\"rId\" + rId});\n\t\tws['!legacy'] = rId;\n\t}\n\n\t/* legacyDrawingHF */\n\t/* picture */\n\t/* oleObjects */\n\t/* controls */\n\t/* webPublishItems */\n\t/* tableParts */\n\t/* extLst */\n\n\tif(o.length>1) { o[o.length] = ('</worksheet>'); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n\n/* [MS-XLSB] 2.4.726 BrtRowHdr */\nfunction parse_BrtRowHdr(data, length) {\n\tvar z = ({}/*:any*/);\n\tvar tgt = data.l + length;\n\tz.r = data.read_shift(4);\n\tdata.l += 4; // TODO: ixfe\n\tvar miyRw = data.read_shift(2);\n\tdata.l += 1; // TODO: top/bot padding\n\tvar flags = data.read_shift(1);\n\tdata.l = tgt;\n\tif(flags & 0x07) z.level = flags & 0x07;\n\tif(flags & 0x10) z.hidden = true;\n\tif(flags & 0x20) z.hpt = miyRw / 20;\n\treturn z;\n}\nfunction write_BrtRowHdr(R/*:number*/, range, ws) {\n\tvar o = new_buf(17+8*16);\n\tvar row = (ws['!rows']||[])[R]||{};\n\to.write_shift(4, R);\n\n\to.write_shift(4, 0); /* TODO: ixfe */\n\n\tvar miyRw = 0x0140;\n\tif(row.hpx) miyRw = px2pt(row.hpx) * 20;\n\telse if(row.hpt) miyRw = row.hpt * 20;\n\to.write_shift(2, miyRw);\n\n\to.write_shift(1, 0); /* top/bot padding */\n\n\tvar flags = 0x0;\n\tif(row.level) flags |= row.level;\n\tif(row.hidden) flags |= 0x10;\n\tif(row.hpx || row.hpt) flags |= 0x20;\n\to.write_shift(1, flags);\n\n\to.write_shift(1, 0); /* phonetic guide */\n\n\t/* [MS-XLSB] 2.5.8 BrtColSpan explains the mechanism */\n\tvar ncolspan = 0, lcs = o.l;\n\to.l += 4;\n\n\tvar caddr = {r:R, c:0};\n\tvar dense = ws[\"!data\"] != null;\n\tfor(var i = 0; i < 16; ++i) {\n\t\tif((range.s.c > ((i+1) << 10)) || (range.e.c < (i << 10))) continue;\n\t\tvar first = -1, last = -1;\n\t\tfor(var j = (i<<10); j < ((i+1)<<10); ++j) {\n\t\t\tcaddr.c = j;\n\t\t\tvar cell = dense ? (ws[\"!data\"][caddr.r]||[])[caddr.c] : ws[encode_cell(caddr)];\n\t\t\tif(cell) { if(first < 0) first = j; last = j; }\n\t\t}\n\t\tif(first < 0) continue;\n\t\t++ncolspan;\n\t\to.write_shift(4, first);\n\t\to.write_shift(4, last);\n\t}\n\n\tvar l = o.l;\n\to.l = lcs;\n\to.write_shift(4, ncolspan);\n\to.l = l;\n\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\nfunction write_row_header(ba, ws, range, R) {\n\tvar o = write_BrtRowHdr(R, range, ws);\n\tif((o.length > 17) || (ws['!rows']||[])[R]) write_record(ba, 0x0000 /* BrtRowHdr */, o);\n}\n\n/* [MS-XLSB] 2.4.820 BrtWsDim */\nvar parse_BrtWsDim = parse_UncheckedRfX;\nvar write_BrtWsDim = write_UncheckedRfX;\n\n/* [MS-XLSB] 2.4.821 BrtWsFmtInfo */\nfunction parse_BrtWsFmtInfo(/*::data, length*/) {\n}\n//function write_BrtWsFmtInfo(ws, o) { }\n\n/* [MS-XLSB] 2.4.823 BrtWsProp */\nfunction parse_BrtWsProp(data, length) {\n\tvar z = {};\n\tvar f = data[data.l]; ++data.l;\n\tz.above = !(f & 0x40);\n\tz.left = !(f & 0x80);\n\t/* TODO: pull flags */\n\tdata.l += 18;\n\tz.name = parse_XLSBCodeName(data, length - 19);\n\treturn z;\n}\nfunction write_BrtWsProp(str, outl, o) {\n\tif(o == null) o = new_buf(84+4*str.length);\n\tvar f = 0xC0;\n\tif(outl) {\n\t\tif(outl.above) f &= ~0x40;\n\t\tif(outl.left) f &= ~0x80;\n\t}\n\to.write_shift(1, f);\n\tfor(var i = 1; i < 3; ++i) o.write_shift(1,0);\n\twrite_BrtColor({auto:1}, o);\n\to.write_shift(-4,-1);\n\to.write_shift(-4,-1);\n\twrite_XLSBCodeName(str, o);\n\treturn o.slice(0, o.l);\n}\n\n/* [MS-XLSB] 2.4.306 BrtCellBlank */\nfunction parse_BrtCellBlank(data) {\n\tvar cell = parse_XLSBCell(data);\n\treturn [cell];\n}\nfunction write_BrtCellBlank(cell, ncell, o) {\n\tif(o == null) o = new_buf(8);\n\treturn write_XLSBCell(ncell, o);\n}\nfunction parse_BrtShortBlank(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\treturn [cell];\n}\nfunction write_BrtShortBlank(cell, ncell, o) {\n\tif(o == null) o = new_buf(4);\n\treturn write_XLSBShortCell(ncell, o);\n}\n\n/* [MS-XLSB] 2.4.307 BrtCellBool */\nfunction parse_BrtCellBool(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar fBool = data.read_shift(1);\n\treturn [cell, fBool, 'b'];\n}\nfunction write_BrtCellBool(cell, ncell, o) {\n\tif(o == null) o = new_buf(9);\n\twrite_XLSBCell(ncell, o);\n\to.write_shift(1, cell.v ? 1 : 0);\n\treturn o;\n}\nfunction parse_BrtShortBool(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\tvar fBool = data.read_shift(1);\n\treturn [cell, fBool, 'b'];\n}\nfunction write_BrtShortBool(cell, ncell, o) {\n\tif(o == null) o = new_buf(5);\n\twrite_XLSBShortCell(ncell, o);\n\to.write_shift(1, cell.v ? 1 : 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.308 BrtCellError */\nfunction parse_BrtCellError(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar bError = data.read_shift(1);\n\treturn [cell, bError, 'e'];\n}\nfunction write_BrtCellError(cell, ncell, o) {\n\tif(o == null) o = new_buf(9);\n\twrite_XLSBCell(ncell, o);\n\to.write_shift(1, cell.v);\n\treturn o;\n}\nfunction parse_BrtShortError(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\tvar bError = data.read_shift(1);\n\treturn [cell, bError, 'e'];\n}\nfunction write_BrtShortError(cell, ncell, o) {\n\tif(o == null) o = new_buf(8);\n\twrite_XLSBShortCell(ncell, o);\n\to.write_shift(1, cell.v);\n\to.write_shift(2, 0);\n\to.write_shift(1, 0);\n\treturn o;\n}\n\n\n/* [MS-XLSB] 2.4.311 BrtCellIsst */\nfunction parse_BrtCellIsst(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar isst = data.read_shift(4);\n\treturn [cell, isst, 's'];\n}\nfunction write_BrtCellIsst(cell, ncell, o) {\n\tif(o == null) o = new_buf(12);\n\twrite_XLSBCell(ncell, o);\n\to.write_shift(4, ncell.v);\n\treturn o;\n}\nfunction parse_BrtShortIsst(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\tvar isst = data.read_shift(4);\n\treturn [cell, isst, 's'];\n}\nfunction write_BrtShortIsst(cell, ncell, o) {\n\tif(o == null) o = new_buf(8);\n\twrite_XLSBShortCell(ncell, o);\n\to.write_shift(4, ncell.v);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.313 BrtCellReal */\nfunction parse_BrtCellReal(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar value = parse_Xnum(data);\n\treturn [cell, value, 'n'];\n}\nfunction write_BrtCellReal(cell, ncell, o) {\n\tif(o == null) o = new_buf(16);\n\twrite_XLSBCell(ncell, o);\n\twrite_Xnum(cell.v, o);\n\treturn o;\n}\nfunction parse_BrtShortReal(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\tvar value = parse_Xnum(data);\n\treturn [cell, value, 'n'];\n}\nfunction write_BrtShortReal(cell, ncell, o) {\n\tif(o == null) o = new_buf(12);\n\twrite_XLSBShortCell(ncell, o);\n\twrite_Xnum(cell.v, o);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.314 BrtCellRk */\nfunction parse_BrtCellRk(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar value = parse_RkNumber(data);\n\treturn [cell, value, 'n'];\n}\nfunction write_BrtCellRk(cell, ncell, o) {\n\tif(o == null) o = new_buf(12);\n\twrite_XLSBCell(ncell, o);\n\twrite_RkNumber(cell.v, o);\n\treturn o;\n}\nfunction parse_BrtShortRk(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\tvar value = parse_RkNumber(data);\n\treturn [cell, value, 'n'];\n}\nfunction write_BrtShortRk(cell, ncell, o) {\n\tif(o == null) o = new_buf(8);\n\twrite_XLSBShortCell(ncell, o);\n\twrite_RkNumber(cell.v, o);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.323 BrtCellRString */\nfunction parse_BrtCellRString(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar value = parse_RichStr(data);\n\treturn [cell, value, 'is'];\n}\n\n/* [MS-XLSB] 2.4.317 BrtCellSt */\nfunction parse_BrtCellSt(data) {\n\tvar cell = parse_XLSBCell(data);\n\tvar value = parse_XLWideString(data);\n\treturn [cell, value, 'str'];\n}\nfunction write_BrtCellSt(cell, ncell, o) {\n\tvar data = cell.v == null ? \"\" : String(cell.v);\n\tif(o == null) o = new_buf(12 + 4 * cell.v.length);\n\twrite_XLSBCell(ncell, o);\n\twrite_XLWideString(data, o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\nfunction parse_BrtShortSt(data) {\n\tvar cell = parse_XLSBShortCell(data);\n\tvar value = parse_XLWideString(data);\n\treturn [cell, value, 'str'];\n}\nfunction write_BrtShortSt(cell, ncell, o) {\n\tvar data = cell.v == null ? \"\" : String(cell.v);\n\tif(o == null) o = new_buf(8 + 4 * data.length);\n\twrite_XLSBShortCell(ncell, o);\n\twrite_XLWideString(data, o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.653 BrtFmlaBool */\nfunction parse_BrtFmlaBool(data, length, opts) {\n\tvar end = data.l + length;\n\tvar cell = parse_XLSBCell(data);\n\tcell.r = opts['!row'];\n\tvar value = data.read_shift(1);\n\tvar o = [cell, value, 'b'];\n\tif(opts.cellFormula) {\n\t\tdata.l += 2;\n\t\tvar formula = parse_XLSBCellParsedFormula(data, end - data.l, opts);\n\t\to[3] = stringify_formula(formula, null/*range*/, cell, opts.supbooks, opts);/* TODO */\n\t}\n\telse data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.654 BrtFmlaError */\nfunction parse_BrtFmlaError(data, length, opts) {\n\tvar end = data.l + length;\n\tvar cell = parse_XLSBCell(data);\n\tcell.r = opts['!row'];\n\tvar value = data.read_shift(1);\n\tvar o = [cell, value, 'e'];\n\tif(opts.cellFormula) {\n\t\tdata.l += 2;\n\t\tvar formula = parse_XLSBCellParsedFormula(data, end - data.l, opts);\n\t\to[3] = stringify_formula(formula, null/*range*/, cell, opts.supbooks, opts);/* TODO */\n\t}\n\telse data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.655 BrtFmlaNum */\nfunction parse_BrtFmlaNum(data, length, opts) {\n\tvar end = data.l + length;\n\tvar cell = parse_XLSBCell(data);\n\tcell.r = opts['!row'];\n\tvar value = parse_Xnum(data);\n\tvar o = [cell, value, 'n'];\n\tif(opts.cellFormula) {\n\t\tdata.l += 2;\n\t\tvar formula = parse_XLSBCellParsedFormula(data, end - data.l, opts);\n\t\to[3] = stringify_formula(formula, null/*range*/, cell, opts.supbooks, opts);/* TODO */\n\t}\n\telse data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.656 BrtFmlaString */\nfunction parse_BrtFmlaString(data, length, opts) {\n\tvar end = data.l + length;\n\tvar cell = parse_XLSBCell(data);\n\tcell.r = opts['!row'];\n\tvar value = parse_XLWideString(data);\n\tvar o = [cell, value, 'str'];\n\tif(opts.cellFormula) {\n\t\tdata.l += 2;\n\t\tvar formula = parse_XLSBCellParsedFormula(data, end - data.l, opts);\n\t\to[3] = stringify_formula(formula, null/*range*/, cell, opts.supbooks, opts);/* TODO */\n\t}\n\telse data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.682 BrtMergeCell */\nvar parse_BrtMergeCell = parse_UncheckedRfX;\nvar write_BrtMergeCell = write_UncheckedRfX;\n/* [MS-XLSB] 2.4.107 BrtBeginMergeCells */\nfunction write_BrtBeginMergeCells(cnt, o) {\n\tif(o == null) o = new_buf(4);\n\to.write_shift(4, cnt);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.662 BrtHLink */\nfunction parse_BrtHLink(data, length/*::, opts*/) {\n\tvar end = data.l + length;\n\tvar rfx = parse_UncheckedRfX(data, 16);\n\tvar relId = parse_XLNullableWideString(data);\n\tvar loc = parse_XLWideString(data);\n\tvar tooltip = parse_XLWideString(data);\n\tvar display = parse_XLWideString(data);\n\tdata.l = end;\n\tvar o = ({rfx:rfx, relId:relId, loc:loc, display:display}/*:any*/);\n\tif(tooltip) o.Tooltip = tooltip;\n\treturn o;\n}\nfunction write_BrtHLink(l, rId) {\n\tvar o = new_buf(50+4*(l[1].Target.length + (l[1].Tooltip || \"\").length));\n\twrite_UncheckedRfX({s:decode_cell(l[0]), e:decode_cell(l[0])}, o);\n\twrite_RelID(\"rId\" + rId, o);\n\tvar locidx = l[1].Target.indexOf(\"#\");\n\tvar loc = locidx == -1 ? \"\" : l[1].Target.slice(locidx+1);\n\twrite_XLWideString(loc || \"\", o);\n\twrite_XLWideString(l[1].Tooltip || \"\", o);\n\twrite_XLWideString(\"\", o);\n\treturn o.slice(0, o.l);\n}\n\n/* [MS-XLSB] 2.4.692 BrtPane */\nfunction parse_BrtPane(/*data, length, opts*/) {\n}\n\n/* [MS-XLSB] 2.4.6 BrtArrFmla */\nfunction parse_BrtArrFmla(data, length, opts) {\n\tvar end = data.l + length;\n\tvar rfx = parse_RfX(data, 16);\n\tvar fAlwaysCalc = data.read_shift(1);\n\tvar o = [rfx]; o[2] = fAlwaysCalc;\n\tif(opts.cellFormula) {\n\t\tvar formula = parse_XLSBArrayParsedFormula(data, end - data.l, opts);\n\t\to[1] = formula;\n\t} else data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.750 BrtShrFmla */\nfunction parse_BrtShrFmla(data, length, opts) {\n\tvar end = data.l + length;\n\tvar rfx = parse_UncheckedRfX(data, 16);\n\tvar o = [rfx];\n\tif(opts.cellFormula) {\n\t\tvar formula = parse_XLSBSharedParsedFormula(data, end - data.l, opts);\n\t\to[1] = formula;\n\t\tdata.l = end;\n\t} else data.l = end;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.323 BrtColInfo */\n/* TODO: once XLS ColInfo is set, combine the functions */\nfunction write_BrtColInfo(C/*:number*/, col, o) {\n\tif(o == null) o = new_buf(18);\n\tvar p = col_obj_w(C, col);\n\to.write_shift(-4, C);\n\to.write_shift(-4, C);\n\to.write_shift(4, (p.width || 10) * 256);\n\to.write_shift(4, 0/*ixfe*/); // style\n\tvar flags = 0;\n\tif(col.hidden) flags |= 0x01;\n\tif(typeof p.width == 'number') flags |= 0x02;\n\tif(col.level) flags |= (col.level << 8);\n\to.write_shift(2, flags); // bit flag\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.678 BrtMargins */\nvar BrtMarginKeys = [\"left\",\"right\",\"top\",\"bottom\",\"header\",\"footer\"];\nfunction parse_BrtMargins(data/*::, length, opts*/)/*:Margins*/ {\n\tvar margins = ({}/*:any*/);\n\tBrtMarginKeys.forEach(function(k) { margins[k] = parse_Xnum(data, 8); });\n\treturn margins;\n}\nfunction write_BrtMargins(margins/*:Margins*/, o) {\n\tif(o == null) o = new_buf(6*8);\n\tdefault_margins(margins);\n\tBrtMarginKeys.forEach(function(k) { write_Xnum((margins/*:any*/)[k], o); });\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.299 BrtBeginWsView */\nfunction parse_BrtBeginWsView(data/*::, length, opts*/) {\n\tvar f = data.read_shift(2);\n\tdata.l += 28;\n\treturn { RTL: f & 0x20 };\n}\nfunction write_BrtBeginWsView(ws, Workbook, o) {\n\tif(o == null) o = new_buf(30);\n\tvar f = 0x39c;\n\tif((((Workbook||{}).Views||[])[0]||{}).RTL) f |= 0x20;\n\to.write_shift(2, f); // bit flag\n\to.write_shift(4, 0);\n\to.write_shift(4, 0); // view first row\n\to.write_shift(4, 0); // view first col\n\to.write_shift(1, 0); // gridline color ICV\n\to.write_shift(1, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, 100); // zoom scale\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(2, 0);\n\to.write_shift(4, 0); // workbook view id\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.309 BrtCellIgnoreEC */\nfunction write_BrtCellIgnoreEC(ref) {\n\tvar o = new_buf(24);\n\to.write_shift(4, 4);\n\to.write_shift(4, 1);\n\twrite_UncheckedRfX(ref, o);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.748 BrtSheetProtection */\nfunction write_BrtSheetProtection(sp, o) {\n\tif(o == null) o = new_buf(16*4+2);\n\to.write_shift(2, sp.password ? crypto_CreatePasswordVerifier_Method1(sp.password) : 0);\n\to.write_shift(4, 1); // this record should not be written if no protection\n\t[\n\t\t[\"objects\", false], // fObjects\n\t\t[\"scenarios\", false], // fScenarios\n\t\t[\"formatCells\", true], // fFormatCells\n\t\t[\"formatColumns\", true], // fFormatColumns\n\t\t[\"formatRows\", true], // fFormatRows\n\t\t[\"insertColumns\", true], // fInsertColumns\n\t\t[\"insertRows\", true], // fInsertRows\n\t\t[\"insertHyperlinks\", true], // fInsertHyperlinks\n\t\t[\"deleteColumns\", true], // fDeleteColumns\n\t\t[\"deleteRows\", true], // fDeleteRows\n\t\t[\"selectLockedCells\", false], // fSelLockedCells\n\t\t[\"sort\", true], // fSort\n\t\t[\"autoFilter\", true], // fAutoFilter\n\t\t[\"pivotTables\", true], // fPivotTables\n\t\t[\"selectUnlockedCells\", false] // fSelUnlockedCells\n\t].forEach(function(n) {\n\t\t/*:: if(o == null) throw \"unreachable\"; */\n\t\tif(n[1]) o.write_shift(4, sp[n[0]] != null && !sp[n[0]] ? 1 : 0);\n\t\telse o.write_shift(4, sp[n[0]] != null && sp[n[0]] ? 0 : 1);\n\t});\n\treturn o;\n}\n\nfunction parse_BrtDVal(/*data, length, opts*/) {\n}\nfunction parse_BrtDVal14(/*data, length, opts*/) {\n}\n/* [MS-XLSB] 2.1.7.61 Worksheet */\nfunction parse_ws_bin(data, _opts, idx, rels, wb/*:WBWBProps*/, themes, styles)/*:Worksheet*/ {\n\tif(!data) return data;\n\tvar opts = _opts || {};\n\tif(!rels) rels = {'!id':{}};\n\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\tvar s/*:Worksheet*/ = ({}); if(opts.dense) s[\"!data\"] = [];\n\n\tvar ref;\n\tvar refguess = {s: {r:2000000, c:2000000}, e: {r:0, c:0} };\n\n\tvar state/*:Array<string>*/ = [];\n\tvar pass = false, end = false;\n\tvar row, p, cf, R, C, addr, sstr, rr, cell/*:Cell*/;\n\tvar merges/*:Array<Range>*/ = [];\n\topts.biff = 12;\n\topts['!row'] = 0;\n\n\tvar ai = 0, af = false;\n\n\tvar arrayf/*:Array<[Range, string]>*/ = [];\n\tvar sharedf = {};\n\tvar supbooks = opts.supbooks || /*::(*/wb/*:: :any)*/.supbooks || ([[]]/*:any*/);\n\tsupbooks.sharedf = sharedf;\n\tsupbooks.arrayf = arrayf;\n\tsupbooks.SheetNames = wb.SheetNames || wb.Sheets.map(function(x) { return x.name; });\n\tif(!opts.supbooks) {\n\t\topts.supbooks = supbooks;\n\t\tif(wb.Names) for(var i = 0; i < wb.Names.length; ++i) supbooks[0][i+1] = wb.Names[i];\n\t}\n\n\tvar colinfo/*:Array<ColInfo>*/ = [], rowinfo/*:Array<RowInfo>*/ = [];\n\tvar seencol = false;\n\n\tXLSBRecordEnum[0x0010] = { n:\"BrtShortReal\", f:parse_BrtShortReal };\n\n\tvar cm, vm;\n\n\trecordhopper(data, function ws_parse(val, RR, RT) {\n\t\tif(end) return;\n\t\tswitch(RT) {\n\t\t\tcase 0x0094: /* 'BrtWsDim' */\n\t\t\t\tref = val; break;\n\t\t\tcase 0x0000: /* 'BrtRowHdr' */\n\t\t\t\trow = val;\n\t\t\t\tif(opts.sheetRows && opts.sheetRows <= row.r) end=true;\n\t\t\t\trr = encode_row(R = row.r);\n\t\t\t\topts['!row'] = row.r;\n\t\t\t\tif(val.hidden || val.hpt || val.level != null) {\n\t\t\t\t\tif(val.hpt) val.hpx = pt2px(val.hpt);\n\t\t\t\t\trowinfo[val.r] = val;\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0002: /* 'BrtCellRk' */\n\t\t\tcase 0x0003: /* 'BrtCellError' */\n\t\t\tcase 0x0004: /* 'BrtCellBool' */\n\t\t\tcase 0x0005: /* 'BrtCellReal' */\n\t\t\tcase 0x0006: /* 'BrtCellSt' */\n\t\t\tcase 0x0007: /* 'BrtCellIsst' */\n\t\t\tcase 0x0008: /* 'BrtFmlaString' */\n\t\t\tcase 0x0009: /* 'BrtFmlaNum' */\n\t\t\tcase 0x000A: /* 'BrtFmlaBool' */\n\t\t\tcase 0x000B: /* 'BrtFmlaError' */\n\t\t\tcase 0x000D: /* 'BrtShortRk' */\n\t\t\tcase 0x000E: /* 'BrtShortError' */\n\t\t\tcase 0x000F: /* 'BrtShortBool' */\n\t\t\tcase 0x0010: /* 'BrtShortReal' */\n\t\t\tcase 0x0011: /* 'BrtShortSt' */\n\t\t\tcase 0x0012: /* 'BrtShortIsst' */\n\t\t\tcase 0x003E: /* 'BrtCellRString' */\n\t\t\t\tp = ({t:val[2]}/*:any*/);\n\t\t\t\tswitch(val[2]) {\n\t\t\t\t\tcase 'n': p.v = val[1]; break;\n\t\t\t\t\tcase 's': sstr = strs[val[1]]; p.v = sstr.t; p.r = sstr.r; break;\n\t\t\t\t\tcase 'b': p.v = val[1] ? true : false; break;\n\t\t\t\t\tcase 'e': p.v = val[1]; if(opts.cellText !== false) p.w = BErr[p.v]; break;\n\t\t\t\t\tcase 'str': p.t = 's'; p.v = val[1]; break;\n\t\t\t\t\tcase 'is': p.t = 's'; p.v = val[1].t; break;\n\t\t\t\t}\n\t\t\t\tif((cf = styles.CellXf[val[0].iStyleRef])) safe_format(p,cf.numFmtId,null,opts, themes, styles);\n\t\t\t\tC = val[0].c == -1 ? C + 1 : val[0].c;\n\t\t\t\tif(opts.dense) { if(!s[\"!data\"][R]) s[\"!data\"][R] = []; s[\"!data\"][R][C] = p; }\n\t\t\t\telse s[encode_col(C) + rr] = p;\n\t\t\t\tif(opts.cellFormula) {\n\t\t\t\t\taf = false;\n\t\t\t\t\tfor(ai = 0; ai < arrayf.length; ++ai) {\n\t\t\t\t\t\tvar aii = arrayf[ai];\n\t\t\t\t\t\tif(row.r >= aii[0].s.r && row.r <= aii[0].e.r)\n\t\t\t\t\t\t\tif(C >= aii[0].s.c && C <= aii[0].e.c) {\n\t\t\t\t\t\t\t\tp.F = encode_range(aii[0]); af = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif(!af && val.length > 3) p.f = val[3];\n\t\t\t\t}\n\n\t\t\t\tif(refguess.s.r > row.r) refguess.s.r = row.r;\n\t\t\t\tif(refguess.s.c > C) refguess.s.c = C;\n\t\t\t\tif(refguess.e.r < row.r) refguess.e.r = row.r;\n\t\t\t\tif(refguess.e.c < C) refguess.e.c = C;\n\t\t\t\tif(opts.cellDates && cf && p.t == 'n' && fmt_is_date(table_fmt[cf.numFmtId])) {\n\t\t\t\t\tvar _d = SSF_parse_date_code(p.v); if(_d) { p.t = 'd'; p.v = new Date(_d.y, _d.m-1,_d.d,_d.H,_d.M,_d.S,_d.u); }\n\t\t\t\t}\n\t\t\t\tif(cm) {\n\t\t\t\t\tif(cm.type == 'XLDAPR') p.D = true;\n\t\t\t\t\tcm = void 0;\n\t\t\t\t}\n\t\t\t\tif(vm) vm = void 0;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0001: /* 'BrtCellBlank' */\n\t\t\tcase 0x000C: /* 'BrtShortBlank' */\n\t\t\t\tif(!opts.sheetStubs || pass) break;\n\t\t\t\tp = ({t:'z',v:void 0}/*:any*/);\n\t\t\t\tC = val[0].c == -1 ? C + 1 : val[0].c;\n\t\t\t\tif(opts.dense) { if(!s[\"!data\"][R]) s[\"!data\"][R] = []; s[\"!data\"][R][C] = p; }\n\t\t\t\telse s[encode_col(C) + rr] = p;\n\t\t\t\tif(refguess.s.r > row.r) refguess.s.r = row.r;\n\t\t\t\tif(refguess.s.c > C) refguess.s.c = C;\n\t\t\t\tif(refguess.e.r < row.r) refguess.e.r = row.r;\n\t\t\t\tif(refguess.e.c < C) refguess.e.c = C;\n\t\t\t\tif(cm) {\n\t\t\t\t\tif(cm.type == 'XLDAPR') p.D = true;\n\t\t\t\t\tcm = void 0;\n\t\t\t\t}\n\t\t\t\tif(vm) vm = void 0;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x00B0: /* 'BrtMergeCell' */\n\t\t\t\tmerges.push(val); break;\n\n\t\t\tcase 0x0031: { /* 'BrtCellMeta' */\n\t\t\t\tcm = ((opts.xlmeta||{}).Cell||[])[val-1];\n\t\t\t} break;\n\n\t\t\tcase 0x01EE: /* 'BrtHLink' */\n\t\t\t\tvar rel = rels['!id'][val.relId];\n\t\t\t\tif(rel) {\n\t\t\t\t\tval.Target = rel.Target;\n\t\t\t\t\tif(val.loc) val.Target += \"#\"+val.loc;\n\t\t\t\t\tval.Rel = rel;\n\t\t\t\t} else if(val.relId == '') {\n\t\t\t\t\tval.Target = \"#\" + val.loc;\n\t\t\t\t}\n\t\t\t\tfor(R=val.rfx.s.r;R<=val.rfx.e.r;++R) for(C=val.rfx.s.c;C<=val.rfx.e.c;++C) {\n\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\tif(!s[\"!data\"][R]) s[\"!data\"][R] = [];\n\t\t\t\t\t\tif(!s[\"!data\"][R][C]) s[\"!data\"][R][C] = {t:'z',v:undefined};\n\t\t\t\t\t\ts[\"!data\"][R][C].l = val;\n\t\t\t\t\t} else {\n\t\t\t\t\t\taddr = encode_col(C) + encode_row(R);\n\t\t\t\t\t\tif(!s[addr]) s[addr] = {t:'z',v:undefined};\n\t\t\t\t\t\ts[addr].l = val;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 0x01AA: /* 'BrtArrFmla' */\n\t\t\t\tif(!opts.cellFormula) break;\n\t\t\t\tarrayf.push(val);\n\t\t\t\tcell = ((opts.dense ? s[\"!data\"][R][C] : s[encode_col(C) + rr])/*:any*/);\n\t\t\t\tcell.f = stringify_formula(val[1], refguess, {r:row.r, c:C}, supbooks, opts);\n\t\t\t\tcell.F = encode_range(val[0]);\n\t\t\t\tbreak;\n\t\t\tcase 0x01AB: /* 'BrtShrFmla' */\n\t\t\t\tif(!opts.cellFormula) break;\n\t\t\t\tsharedf[encode_cell(val[0].s)] = val[1];\n\t\t\t\tcell = (opts.dense ? s[\"!data\"][R][C] : s[encode_col(C) + rr]);\n\t\t\t\tcell.f = stringify_formula(val[1], refguess, {r:row.r, c:C}, supbooks, opts);\n\t\t\t\tbreak;\n\n\t\t\t/* identical to 'ColInfo' in XLS */\n\t\t\tcase 0x003C: /* 'BrtColInfo' */\n\t\t\t\tif(!opts.cellStyles) break;\n\t\t\t\twhile(val.e >= val.s) {\n\t\t\t\t\tcolinfo[val.e--] = { width: val.w/256, hidden: !!(val.flags & 0x01), level: val.level };\n\t\t\t\t\tif(!seencol) { seencol = true; find_mdw_colw(val.w/256); }\n\t\t\t\t\tprocess_col(colinfo[val.e+1]);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 0x00A1: /* 'BrtBeginAFilter' */\n\t\t\t\ts['!autofilter'] = { ref:encode_range(val) };\n\t\t\t\tbreak;\n\n\t\t\tcase 0x01DC: /* 'BrtMargins' */\n\t\t\t\ts['!margins'] = val;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0093: /* 'BrtWsProp' */\n\t\t\t\tif(!wb.Sheets[idx]) wb.Sheets[idx] = {};\n\t\t\t\tif(val.name) wb.Sheets[idx].CodeName = val.name;\n\t\t\t\tif(val.above || val.left) s['!outline'] = { above: val.above, left: val.left };\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0089: /* 'BrtBeginWsView' */\n\t\t\t\tif(!wb.Views) wb.Views = [{}];\n\t\t\t\tif(!wb.Views[0]) wb.Views[0] = {};\n\t\t\t\tif(val.RTL) wb.Views[0].RTL = true;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x01E5: /* 'BrtWsFmtInfo' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0040: /* 'BrtDVal' */\n\t\t\tcase 0x041D: /* 'BrtDVal14' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0097: /* 'BrtPane' */\n\t\t\t\tbreak;\n\t\t\tcase 0x0098: /* 'BrtSel' */\n\t\t\tcase 0x00AF: /* 'BrtAFilterDateGroupItem' */\n\t\t\tcase 0x0284: /* 'BrtActiveX' */\n\t\t\tcase 0x0271: /* 'BrtBigName' */\n\t\t\tcase 0x0232: /* 'BrtBkHim' */\n\t\t\tcase 0x018C: /* 'BrtBrk' */\n\t\t\tcase 0x0458: /* 'BrtCFIcon' */\n\t\t\tcase 0x047A: /* 'BrtCFRuleExt' */\n\t\t\tcase 0x01D7: /* 'BrtCFVO' */\n\t\t\tcase 0x041A: /* 'BrtCFVO14' */\n\t\t\tcase 0x0289: /* 'BrtCellIgnoreEC' */\n\t\t\tcase 0x0451: /* 'BrtCellIgnoreEC14' */\n\t\t\tcase 0x024D: /* 'BrtCellSmartTagProperty' */\n\t\t\tcase 0x025F: /* 'BrtCellWatch' */\n\t\t\tcase 0x0234: /* 'BrtColor' */\n\t\t\tcase 0x041F: /* 'BrtColor14' */\n\t\t\tcase 0x00A8: /* 'BrtColorFilter' */\n\t\t\tcase 0x00AE: /* 'BrtCustomFilter' */\n\t\t\tcase 0x049C: /* 'BrtCustomFilter14' */\n\t\t\tcase 0x01F3: /* 'BrtDRef' */\n\t\t\tcase 0x01FB: /* 'BrtDXF' */\n\t\t\tcase 0x0226: /* 'BrtDrawing' */\n\t\t\tcase 0x00AB: /* 'BrtDynamicFilter' */\n\t\t\tcase 0x00A7: /* 'BrtFilter' */\n\t\t\tcase 0x0499: /* 'BrtFilter14' */\n\t\t\tcase 0x00A9: /* 'BrtIconFilter' */\n\t\t\tcase 0x049D: /* 'BrtIconFilter14' */\n\t\t\tcase 0x0227: /* 'BrtLegacyDrawing' */\n\t\t\tcase 0x0228: /* 'BrtLegacyDrawingHF' */\n\t\t\tcase 0x0295: /* 'BrtListPart' */\n\t\t\tcase 0x027F: /* 'BrtOleObject' */\n\t\t\tcase 0x01DE: /* 'BrtPageSetup' */\n\t\t\tcase 0x0219: /* 'BrtPhoneticInfo' */\n\t\t\tcase 0x01DD: /* 'BrtPrintOptions' */\n\t\t\tcase 0x0218: /* 'BrtRangeProtection' */\n\t\t\tcase 0x044F: /* 'BrtRangeProtection14' */\n\t\t\tcase 0x02A8: /* 'BrtRangeProtectionIso' */\n\t\t\tcase 0x0450: /* 'BrtRangeProtectionIso14' */\n\t\t\tcase 0x0400: /* 'BrtRwDescent' */\n\t\t\tcase 0x0297: /* 'BrtSheetCalcProp' */\n\t\t\tcase 0x0217: /* 'BrtSheetProtection' */\n\t\t\tcase 0x02A6: /* 'BrtSheetProtectionIso' */\n\t\t\tcase 0x01F8: /* 'BrtSlc' */\n\t\t\tcase 0x0413: /* 'BrtSparkline' */\n\t\t\tcase 0x01AC: /* 'BrtTable' */\n\t\t\tcase 0x00AA: /* 'BrtTop10Filter' */\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\tcase 0x0032: /* 'BrtValueMeta' */\n\t\t\tcase 0x0816: /* 'BrtWebExtension' */\n\t\t\tcase 0x0415: /* 'BrtWsFmtInfoEx14' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */\n\t\t\t\tstate.push(RT); pass = true; break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */\n\t\t\t\tstate.pop(); pass = false; break;\n\n\t\t\tdefault:\n\t\t\t\tif(RR.T){/* empty */}\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n\t\t}\n\t}, opts);\n\n\tdelete opts.supbooks;\n\tdelete opts['!row'];\n\n\tif(!s[\"!ref\"] && (refguess.s.r < 2000000 || ref && (ref.e.r > 0 || ref.e.c > 0 || ref.s.r > 0 || ref.s.c > 0))) s[\"!ref\"] = encode_range(ref || refguess);\n\tif(opts.sheetRows && s[\"!ref\"]) {\n\t\tvar tmpref = safe_decode_range(s[\"!ref\"]);\n\t\tif(opts.sheetRows <= +tmpref.e.r) {\n\t\t\ttmpref.e.r = opts.sheetRows - 1;\n\t\t\tif(tmpref.e.r > refguess.e.r) tmpref.e.r = refguess.e.r;\n\t\t\tif(tmpref.e.r < tmpref.s.r) tmpref.s.r = tmpref.e.r;\n\t\t\tif(tmpref.e.c > refguess.e.c) tmpref.e.c = refguess.e.c;\n\t\t\tif(tmpref.e.c < tmpref.s.c) tmpref.s.c = tmpref.e.c;\n\t\t\ts[\"!fullref\"] = s[\"!ref\"];\n\t\t\ts[\"!ref\"] = encode_range(tmpref);\n\t\t}\n\t}\n\tif(merges.length > 0) s[\"!merges\"] = merges;\n\tif(colinfo.length > 0) s[\"!cols\"] = colinfo;\n\tif(rowinfo.length > 0) s[\"!rows\"] = rowinfo;\n\treturn s;\n}\n\n/* TODO: something useful -- this is a stub */\nfunction write_ws_bin_cell(ba/*:BufArray*/, cell/*:Cell*/, R/*:number*/, C/*:number*/, opts, ws/*:Worksheet*/, last_seen/*:boolean*/)/*:boolean*/ {\n\tvar o/*:any*/ = ({r:R, c:C}/*:any*/);\n\tif(cell.c) ws['!comments'].push([encode_cell(o), cell.c]);\n\tif(cell.v === undefined) return false;\n\tvar vv = \"\";\n\tswitch(cell.t) {\n\t\tcase 'b': vv = cell.v ? \"1\" : \"0\"; break;\n\t\tcase 'd': // no BrtCellDate :(\n\t\t\tcell = dup(cell);\n\t\t\tcell.z = cell.z || table_fmt[14];\n\t\t\tcell.v = datenum(parseDate(cell.v)); cell.t = 'n';\n\t\t\tbreak;\n\t\t/* falls through */\n\t\tcase 'n': case 'e': vv = ''+cell.v; break;\n\t\tdefault: vv = cell.v; break;\n\t}\n\t/* TODO: cell style */\n\to.s = get_cell_style(opts.cellXfs, cell, opts);\n\tif(cell.l) ws['!links'].push([encode_cell(o), cell.l]);\n\tswitch(cell.t) {\n\t\tcase 's': case 'str':\n\t\t\tif(opts.bookSST) {\n\t\t\t\tvv = get_sst_id(opts.Strings, (cell.v == null ? \"\" : String(cell.v)/*:any*/), opts.revStrings);\n\t\t\t\to.t = \"s\"; o.v = vv;\n\t\t\t\tif(last_seen) write_record(ba, 0x0012 /* BrtShortIsst */, write_BrtShortIsst(cell, o));\n\t\t\t\telse write_record(ba, 0x0007 /* BrtCellIsst */, write_BrtCellIsst(cell, o));\n\t\t\t} else {\n\t\t\t\to.t = \"str\";\n\t\t\t\tif(last_seen) write_record(ba, 0x0011 /* BrtShortSt */, write_BrtShortSt(cell, o));\n\t\t\t\telse write_record(ba, 0x0006 /* BrtCellSt */, write_BrtCellSt(cell, o));\n\t\t\t}\n\t\t\treturn true;\n\t\tcase 'n':\n\t\t\t/* TODO: determine threshold for Real vs RK */\n\t\t\tif(cell.v == (cell.v | 0) && cell.v > -1000 && cell.v < 1000) {\n\t\t\t\tif(last_seen) write_record(ba, 0x000D /* BrtShortRk */, write_BrtShortRk(cell, o));\n\t\t\t\telse write_record(ba, 0x0002 /* BrtCellRk */, write_BrtCellRk(cell, o));\n\t\t\t} else {\n\t\t\t\tif(last_seen) write_record(ba, 0x0010 /* BrtShortReal */, write_BrtShortReal(cell, o));\n\t\t\t\telse write_record(ba, 0x0005 /* BrtCellReal */, write_BrtCellReal(cell, o));\n\t\t\t} return true;\n\t\tcase 'b':\n\t\t\to.t = \"b\";\n\t\t\tif(last_seen) write_record(ba, 0x000F /* BrtShortBool */, write_BrtShortBool(cell, o));\n\t\t\telse write_record(ba, 0x0004 /* BrtCellBool */, write_BrtCellBool(cell, o));\n\t\t\treturn true;\n\t\tcase 'e':\n\t\t\to.t = \"e\";\n\t\t\tif(last_seen) write_record(ba, 0x000E /* BrtShortError */, write_BrtShortError(cell, o));\n\t\t\telse write_record(ba, 0x0003 /* BrtCellError */, write_BrtCellError(cell, o));\n\t\t\treturn true;\n\t}\n\tif(last_seen) write_record(ba, 0x000C /* BrtShortBlank */, write_BrtShortBlank(cell, o));\n\telse write_record(ba, 0x0001 /* BrtCellBlank */, write_BrtCellBlank(cell, o));\n\treturn true;\n}\n\nfunction write_CELLTABLE(ba, ws/*:Worksheet*/, idx/*:number*/, opts/*::, wb:Workbook*/) {\n\tvar range = safe_decode_range(ws['!ref'] || \"A1\"), ref, rr = \"\", cols/*:Array<string>*/ = [];\n\twrite_record(ba, 0x0091 /* BrtBeginSheetData */);\n\tvar dense = ws[\"!data\"] != null;\n\tvar cap = range.e.r;\n\tif(ws['!rows']) cap = Math.max(range.e.r, ws['!rows'].length - 1);\n\tfor(var R = range.s.r; R <= cap; ++R) {\n\t\trr = encode_row(R);\n\t\t/* [ACCELLTABLE] */\n\t\t/* BrtRowHdr */\n\t\twrite_row_header(ba, ws, range, R);\n\t\tvar last_seen = false;\n\t\tif(R <= range.e.r) for(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\t/* *16384CELL */\n\t\t\tif(R === range.s.r) cols[C] = encode_col(C);\n\t\t\tref = cols[C] + rr;\n\t\t\tvar cell = dense ? (ws[\"!data\"][R]||[])[C] : ws[ref];\n\t\t\tif(!cell) { last_seen = false; continue; }\n\t\t\t/* write cell */\n\t\t\tlast_seen = write_ws_bin_cell(ba, cell, R, C, opts, ws, last_seen);\n\t\t}\n\t}\n\twrite_record(ba, 0x0092 /* BrtEndSheetData */);\n}\n\nfunction write_MERGECELLS(ba, ws/*:Worksheet*/) {\n\tif(!ws || !ws['!merges']) return;\n\twrite_record(ba, 0x00B1 /* BrtBeginMergeCells */, write_BrtBeginMergeCells(ws['!merges'].length));\n\tws['!merges'].forEach(function(m) { write_record(ba, 0x00B0 /* BrtMergeCell */, write_BrtMergeCell(m)); });\n\twrite_record(ba, 0x00B2 /* BrtEndMergeCells */);\n}\n\nfunction write_COLINFOS(ba, ws/*:Worksheet*//*::, idx:number, opts, wb:Workbook*/) {\n\tif(!ws || !ws['!cols']) return;\n\twrite_record(ba, 0x0186 /* BrtBeginColInfos */);\n\tws['!cols'].forEach(function(m, i) { if(m) write_record(ba, 0x003C /* 'BrtColInfo' */, write_BrtColInfo(i, m)); });\n\twrite_record(ba, 0x0187 /* BrtEndColInfos */);\n}\n\nfunction write_IGNOREECS(ba, ws/*:Worksheet*/) {\n\tif(!ws || !ws['!ref']) return;\n\twrite_record(ba, 0x0288 /* BrtBeginCellIgnoreECs */);\n\twrite_record(ba, 0x0289 /* BrtCellIgnoreEC */, write_BrtCellIgnoreEC(safe_decode_range(ws['!ref'])));\n\twrite_record(ba, 0x028A /* BrtEndCellIgnoreECs */);\n}\n\nfunction write_HLINKS(ba, ws/*:Worksheet*/, rels) {\n\t/* *BrtHLink */\n\tws['!links'].forEach(function(l) {\n\t\tif(!l[1].Target) return;\n\t\tvar rId = add_rels(rels, -1, l[1].Target.replace(/#.*$/, \"\"), RELS.HLINK);\n\t\twrite_record(ba, 0x01EE /* BrtHLink */, write_BrtHLink(l, rId));\n\t});\n\tdelete ws['!links'];\n}\nfunction write_LEGACYDRAWING(ba, ws/*:Worksheet*/, idx/*:number*/, rels) {\n\t/* [BrtLegacyDrawing] */\n\tif(ws['!comments'].length > 0) {\n\t\tvar rId = add_rels(rels, -1, \"../drawings/vmlDrawing\" + (idx+1) + \".vml\", RELS.VML);\n\t\twrite_record(ba, 0x0227 /* BrtLegacyDrawing */, write_RelID(\"rId\" + rId));\n\t\tws['!legacy'] = rId;\n\t}\n}\n\nfunction write_AUTOFILTER(ba, ws, wb, idx) {\n\tif(!ws['!autofilter']) return;\n\tvar data = ws['!autofilter'];\n\tvar ref = typeof data.ref === \"string\" ? data.ref : encode_range(data.ref);\n\n\t/* Update FilterDatabase defined name for the worksheet */\n\tif(!wb.Workbook) wb.Workbook = ({Sheets:[]}/*:any*/);\n\tif(!wb.Workbook.Names) wb.Workbook.Names = [];\n\tvar names/*: Array<any> */ = wb.Workbook.Names;\n\tvar range = decode_range(ref);\n\tif(range.s.r == range.e.r) { range.e.r = decode_range(ws[\"!ref\"]).e.r; ref = encode_range(range); }\n\tfor(var i = 0; i < names.length; ++i) {\n\t\tvar name = names[i];\n\t\tif(name.Name != '_xlnm._FilterDatabase') continue;\n\t\tif(name.Sheet != idx) continue;\n\t\tname.Ref = formula_quote_sheet_name(wb.SheetNames[idx]) + \"!\" + fix_range(ref); break;\n\t}\n\tif(i == names.length) names.push({ Name: '_xlnm._FilterDatabase', Sheet: idx, Ref: formula_quote_sheet_name(wb.SheetNames[idx]) + \"!\" + fix_range(ref) });\n\n\twrite_record(ba, 0x00A1 /* BrtBeginAFilter */, write_UncheckedRfX(safe_decode_range(ref)));\n\t/* *FILTERCOLUMN */\n\t/* [SORTSTATE] */\n\t/* BrtEndAFilter */\n\twrite_record(ba, 0x00A2 /* BrtEndAFilter */);\n}\n\nfunction write_WSVIEWS2(ba, ws, Workbook) {\n\twrite_record(ba, 0x0085 /* BrtBeginWsViews */);\n\t{ /* 1*WSVIEW2 */\n\t\t/* [ACUID] */\n\t\twrite_record(ba, 0x0089 /* BrtBeginWsView */, write_BrtBeginWsView(ws, Workbook));\n\t\t/* [BrtPane] */\n\t\t/* *4BrtSel */\n\t\t/* *4SXSELECT */\n\t\t/* *FRT */\n\t\twrite_record(ba, 0x008A /* BrtEndWsView */);\n\t}\n\t/* *FRT */\n\twrite_record(ba, 0x0086 /* BrtEndWsViews */);\n}\n\nfunction write_WSFMTINFO(/*::ba, ws*/) {\n\t/* [ACWSFMTINFO] */\n\t// write_record(ba, 0x01E5 /* BrtWsFmtInfo */, write_BrtWsFmtInfo(ws));\n}\n\nfunction write_SHEETPROTECT(ba, ws) {\n\tif(!ws['!protect']) return;\n\t/* [BrtSheetProtectionIso] */\n\twrite_record(ba, 0x0217 /* BrtSheetProtection */, write_BrtSheetProtection(ws['!protect']));\n}\n\nfunction write_ws_bin(idx/*:number*/, opts, wb/*:Workbook*/, rels) {\n\tvar ba = buf_array();\n\tvar s = wb.SheetNames[idx], ws = wb.Sheets[s] || {};\n\tvar c/*:string*/ = s; try { if(wb && wb.Workbook) c = wb.Workbook.Sheets[idx].CodeName || c; } catch(e) {}\n\tvar r = safe_decode_range(ws['!ref'] || \"A1\");\n\tif(r.e.c > 0x3FFF || r.e.r > 0xFFFFF) {\n\t\tif(opts.WTF) throw new Error(\"Range \" + (ws['!ref'] || \"A1\") + \" exceeds format limit A1:XFD1048576\");\n\t\tr.e.c = Math.min(r.e.c, 0x3FFF);\n\t\tr.e.r = Math.min(r.e.c, 0xFFFFF);\n\t}\n\tws['!links'] = [];\n\t/* passed back to write_zip and removed there */\n\tws['!comments'] = [];\n\twrite_record(ba, 0x0081 /* BrtBeginSheet */);\n\tif(wb.vbaraw || ws['!outline']) write_record(ba, 0x0093 /* BrtWsProp */, write_BrtWsProp(c, ws['!outline']));\n\twrite_record(ba, 0x0094 /* BrtWsDim */, write_BrtWsDim(r));\n\twrite_WSVIEWS2(ba, ws, wb.Workbook);\n\twrite_WSFMTINFO(ba, ws);\n\twrite_COLINFOS(ba, ws, idx, opts, wb);\n\twrite_CELLTABLE(ba, ws, idx, opts, wb);\n\t/* [BrtSheetCalcProp] */\n\twrite_SHEETPROTECT(ba, ws);\n\t/* *([BrtRangeProtectionIso] BrtRangeProtection) */\n\t/* [SCENMAN] */\n\twrite_AUTOFILTER(ba, ws, wb, idx);\n\t/* [SORTSTATE] */\n\t/* [DCON] */\n\t/* [USERSHVIEWS] */\n\twrite_MERGECELLS(ba, ws);\n\t/* [BrtPhoneticInfo] */\n\t/* *CONDITIONALFORMATTING */\n\t/* [DVALS] */\n\twrite_HLINKS(ba, ws, rels);\n\t/* [BrtPrintOptions] */\n\tif(ws['!margins']) write_record(ba, 0x01DC /* BrtMargins */, write_BrtMargins(ws['!margins']));\n\t/* [BrtPageSetup] */\n\t/* [HEADERFOOTER] */\n\t/* [RWBRK] */\n\t/* [COLBRK] */\n\t/* *BrtBigName */\n\t/* [CELLWATCHES] */\n\tif(!opts || opts.ignoreEC || (opts.ignoreEC == (void 0))) write_IGNOREECS(ba, ws);\n\t/* [SMARTTAGS] */\n\t/* [BrtDrawing] */\n\twrite_LEGACYDRAWING(ba, ws, idx, rels);\n\t/* [BrtLegacyDrawingHF] */\n\t/* [BrtBkHim] */\n\t/* [OLEOBJECTS] */\n\t/* [ACTIVEXCONTROLS] */\n\t/* [WEBPUBITEMS] */\n\t/* [LISTPARTS] */\n\t/* FRTWORKSHEET */\n\twrite_record(ba, 0x0082 /* BrtEndSheet */);\n\treturn ba.end();\n}\nfunction parse_Cache(data/*:string*/)/*:[Array<number|string>, string, ?string]*/ {\n\tvar col/*:Array<number|string>*/ = [];\n\tvar num = data.match(/^<c:numCache>/);\n\tvar f;\n\n\t/* 21.2.2.150 pt CT_NumVal */\n\t(data.match(/<c:pt idx=\"(\\d*)\">(.*?)<\\/c:pt>/mg)||[]).forEach(function(pt) {\n\t\tvar q = pt.match(/<c:pt idx=\"(\\d*?)\"><c:v>(.*)<\\/c:v><\\/c:pt>/);\n\t\tif(!q) return;\n\t\tcol[+q[1]] = num ? +q[2] : q[2];\n\t});\n\n\t/* 21.2.2.71 formatCode CT_Xstring */\n\tvar nf = unescapexml((data.match(/<c:formatCode>([\\s\\S]*?)<\\/c:formatCode>/) || [\"\",\"General\"])[1]);\n\n\t(data.match(/<c:f>(.*?)<\\/c:f>/mg)||[]).forEach(function(F) { f = F.replace(/<.*?>/g,\"\"); });\n\n\treturn [col, nf, f];\n}\n\n/* 21.2 DrawingML - Charts */\nfunction parse_chart(data/*:?string*/, name/*:string*/, opts, rels, wb, csheet) {\n\tvar cs/*:Worksheet*/ = ((csheet || {\"!type\":\"chart\"})/*:any*/);\n\tif(!data) return csheet;\n\t/* 21.2.2.27 chart CT_Chart */\n\n\tvar C = 0, R = 0, col = \"A\";\n\tvar refguess = {s: {r:2000000, c:2000000}, e: {r:0, c:0} };\n\n\t/* 21.2.2.120 numCache CT_NumData */\n\t(data.match(/<c:numCache>[\\s\\S]*?<\\/c:numCache>/gm)||[]).forEach(function(nc) {\n\t\tvar cache = parse_Cache(nc);\n\t\trefguess.s.r = refguess.s.c = 0;\n\t\trefguess.e.c = C;\n\t\tcol = encode_col(C);\n\t\tcache[0].forEach(function(n,i) {\n\t\t\tif(cs[\"!data\"]) {\n\t\t\t\tif(!cs[\"!data\"][i]) cs[\"!data\"][i] = [];\n\t\t\t\tcs[\"!data\"][i][C] = {t:'n', v:n, z:cache[1] };\n\t\t\t} else cs[col + encode_row(i)] = {t:'n', v:n, z:cache[1] };\n\t\t\tR = i;\n\t\t});\n\t\tif(refguess.e.r < R) refguess.e.r = R;\n\t\t++C;\n\t});\n\tif(C > 0) cs[\"!ref\"] = encode_range(refguess);\n\treturn cs;\n}\n/* 18.3 Worksheets also covers Chartsheets */\nfunction parse_cs_xml(data/*:?string*/, opts, idx/*:number*/, rels, wb/*::, themes, styles*/)/*:Worksheet*/ {\n\tif(!data) return data;\n\t/* 18.3.1.12 chartsheet CT_ChartSheet */\n\tif(!rels) rels = {'!id':{}};\n\tvar s = ({'!type':\"chart\", '!drawel':null, '!rel':\"\"}/*:any*/);\n\tvar m;\n\n\t/* 18.3.1.83 sheetPr CT_ChartsheetPr */\n\tvar sheetPr = data.match(sheetprregex);\n\tif(sheetPr) parse_ws_xml_sheetpr(sheetPr[0], s, wb, idx);\n\n\t/* 18.3.1.36 drawing CT_Drawing */\n\tif((m = data.match(/drawing r:id=\"(.*?)\"/))) s['!rel'] = m[1];\n\n\tif(rels['!id'][s['!rel']]) s['!drawel'] = rels['!id'][s['!rel']];\n\treturn s;\n}\n//function write_cs_xml(idx/*:number*/, opts, wb/*:Workbook*/, rels)/*:string*/ {\n//\tvar o = [XML_HEADER, writextag('chartsheet', null, {\n//\t\t'xmlns': XMLNS_main[0],\n//\t\t'xmlns:r': XMLNS.r\n//\t})];\n//\to[o.length] = writextag(\"drawing\", null, {\"r:id\": \"rId1\"});\n//\tadd_rels(rels, -1, \"../drawings/drawing\" + (idx+1) + \".xml\", RELS.DRAW);\n//\tif(o.length>2) { o[o.length] = ('</chartsheet>'); o[1]=o[1].replace(\"/>\",\">\"); }\n//\treturn o.join(\"\");\n//}\n\n/* [MS-XLSB] 2.4.331 BrtCsProp */\nfunction parse_BrtCsProp(data, length/*:number*/) {\n\tdata.l += 10;\n\tvar name = parse_XLWideString(data, length - 10);\n\treturn { name: name };\n}\n\n/* [MS-XLSB] 2.1.7.7 Chart Sheet */\nfunction parse_cs_bin(data, opts, idx/*:number*/, rels, wb/*::, themes, styles*/)/*:Worksheet*/ {\n\tif(!data) return data;\n\tif(!rels) rels = {'!id':{}};\n\tvar s = {'!type':\"chart\", '!drawel':null, '!rel':\"\"};\n\tvar state/*:Array<string>*/ = [];\n\tvar pass = false;\n\trecordhopper(data, function cs_parse(val, R, RT) {\n\t\tswitch(RT) {\n\n\t\t\tcase 0x0226: /* 'BrtDrawing' */\n\t\t\t\ts['!rel'] = val; break;\n\n\t\t\tcase 0x028B: /* 'BrtCsProp' */\n\t\t\t\tif(!wb.Sheets[idx]) wb.Sheets[idx] = {};\n\t\t\t\tif(val.name) wb.Sheets[idx].CodeName = val.name;\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0232: /* 'BrtBkHim' */\n\t\t\tcase 0x028C: /* 'BrtCsPageSetup' */\n\t\t\tcase 0x029D: /* 'BrtCsProtection' */\n\t\t\tcase 0x02A7: /* 'BrtCsProtectionIso' */\n\t\t\tcase 0x0227: /* 'BrtLegacyDrawing' */\n\t\t\tcase 0x0228: /* 'BrtLegacyDrawingHF' */\n\t\t\tcase 0x01DC: /* 'BrtMargins' */\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tpass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tpass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */\n\t\t\t\tstate.push(RT); break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */\n\t\t\t\tstate.pop(); break;\n\n\t\t\tdefault:\n\t\t\t\tif(R.T > 0) state.push(RT);\n\t\t\t\telse if(R.T < 0) state.pop();\n\t\t\t\telse if(!pass || opts.WTF) throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n\t\t}\n\t}, opts);\n\n\tif(rels['!id'][s['!rel']]) s['!drawel'] = rels['!id'][s['!rel']];\n\treturn s;\n}\n//function write_cs_bin(/*::idx:number, opts, wb:Workbook, rels*/) {\n//\tvar ba = buf_array();\n//\twrite_record(ba, 0x0081 /* BrtBeginSheet */);\n//\t/* [BrtCsProp] */\n//\t/* CSVIEWS */\n//\t/* [[BrtCsProtectionIso] BrtCsProtection] */\n//\t/* [USERCSVIEWS] */\n//\t/* [BrtMargins] */\n//\t/* [BrtCsPageSetup] */\n//\t/* [HEADERFOOTER] */\n//\t/* BrtDrawing */\n//\t/* [BrtLegacyDrawing] */\n//\t/* [BrtLegacyDrawingHF] */\n//\t/* [BrtBkHim] */\n//\t/* [WEBPUBITEMS] */\n//\t/* FRTCHARTSHEET */\n//\twrite_record(ba, 0x0082 /* BrtEndSheet */);\n//\treturn ba.end();\n//}\n/* 18.2.28 (CT_WorkbookProtection) Defaults */\nvar WBPropsDef = [\n\t['allowRefreshQuery', false, \"bool\"],\n\t['autoCompressPictures', true, \"bool\"],\n\t['backupFile', false, \"bool\"],\n\t['checkCompatibility', false, \"bool\"],\n\t['CodeName', ''],\n\t['date1904', false, \"bool\"],\n\t['defaultThemeVersion', 0, \"int\"],\n\t['filterPrivacy', false, \"bool\"],\n\t['hidePivotFieldList', false, \"bool\"],\n\t['promptedSolutions', false, \"bool\"],\n\t['publishItems', false, \"bool\"],\n\t['refreshAllConnections', false, \"bool\"],\n\t['saveExternalLinkValues', true, \"bool\"],\n\t['showBorderUnselectedTables', true, \"bool\"],\n\t['showInkAnnotation', true, \"bool\"],\n\t['showObjects', 'all'],\n\t['showPivotChartFilter', false, \"bool\"],\n\t['updateLinks', 'userSet']\n];\n\n/* 18.2.30 (CT_BookView) Defaults */\nvar WBViewDef = [\n\t['activeTab', 0, \"int\"],\n\t['autoFilterDateGrouping', true, \"bool\"],\n\t['firstSheet', 0, \"int\"],\n\t['minimized', false, \"bool\"],\n\t['showHorizontalScroll', true, \"bool\"],\n\t['showSheetTabs', true, \"bool\"],\n\t['showVerticalScroll', true, \"bool\"],\n\t['tabRatio', 600, \"int\"],\n\t['visibility', 'visible']\n\t//window{Height,Width}, {x,y}Window\n];\n\n/* 18.2.19 (CT_Sheet) Defaults */\nvar SheetDef = [\n\t//['state', 'visible']\n];\n\n/* 18.2.2 (CT_CalcPr) Defaults */\nvar CalcPrDef = [\n\t['calcCompleted', 'true'],\n\t['calcMode', 'auto'],\n\t['calcOnSave', 'true'],\n\t['concurrentCalc', 'true'],\n\t['fullCalcOnLoad', 'false'],\n\t['fullPrecision', 'true'],\n\t['iterate', 'false'],\n\t['iterateCount', '100'],\n\t['iterateDelta', '0.001'],\n\t['refMode', 'A1']\n];\n\n/* 18.2.3 (CT_CustomWorkbookView) Defaults */\n/*var CustomWBViewDef = [\n\t['autoUpdate', 'false'],\n\t['changesSavedWin', 'false'],\n\t['includeHiddenRowCol', 'true'],\n\t['includePrintSettings', 'true'],\n\t['maximized', 'false'],\n\t['minimized', 'false'],\n\t['onlySync', 'false'],\n\t['personalView', 'false'],\n\t['showComments', 'commIndicator'],\n\t['showFormulaBar', 'true'],\n\t['showHorizontalScroll', 'true'],\n\t['showObjects', 'all'],\n\t['showSheetTabs', 'true'],\n\t['showStatusbar', 'true'],\n\t['showVerticalScroll', 'true'],\n\t['tabRatio', '600'],\n\t['xWindow', '0'],\n\t['yWindow', '0']\n];*/\n\nfunction push_defaults_array(target, defaults) {\n\tfor(var j = 0; j != target.length; ++j) { var w = target[j];\n\t\tfor(var i=0; i != defaults.length; ++i) { var z = defaults[i];\n\t\t\tif(w[z[0]] == null) w[z[0]] = z[1];\n\t\t\telse switch(z[2]) {\n\t\t\tcase \"bool\": if(typeof w[z[0]] == \"string\") w[z[0]] = parsexmlbool(w[z[0]]); break;\n\t\t\tcase \"int\": if(typeof w[z[0]] == \"string\") w[z[0]] = parseInt(w[z[0]], 10); break;\n\t\t\t}\n\t\t}\n\t}\n}\nfunction push_defaults(target, defaults) {\n\tfor(var i = 0; i != defaults.length; ++i) { var z = defaults[i];\n\t\tif(target[z[0]] == null) target[z[0]] = z[1];\n\t\telse switch(z[2]) {\n\t\t\tcase \"bool\": if(typeof target[z[0]] == \"string\") target[z[0]] = parsexmlbool(target[z[0]]); break;\n\t\t\tcase \"int\": if(typeof target[z[0]] == \"string\") target[z[0]] = parseInt(target[z[0]], 10); break;\n\t\t}\n\t}\n}\n\nfunction parse_wb_defaults(wb) {\n\tpush_defaults(wb.WBProps, WBPropsDef);\n\tpush_defaults(wb.CalcPr, CalcPrDef);\n\n\tpush_defaults_array(wb.WBView, WBViewDef);\n\tpush_defaults_array(wb.Sheets, SheetDef);\n\n\t_ssfopts.date1904 = parsexmlbool(wb.WBProps.date1904);\n}\n\nfunction safe1904(wb/*:Workbook*/)/*:string*/ {\n\t/* TODO: store date1904 somewhere else */\n\tif(!wb.Workbook) return \"false\";\n\tif(!wb.Workbook.WBProps) return \"false\";\n\treturn parsexmlbool(wb.Workbook.WBProps.date1904) ? \"true\" : \"false\";\n}\n\nvar badchars = /*#__PURE__*/\":][*?\\/\\\\\".split(\"\");\nfunction check_ws_name(n/*:string*/, safe/*:?boolean*/)/*:boolean*/ {\n\ttry {\n\t\tif(n == \"\") throw new Error(\"Sheet name cannot be blank\");\n\t\tif(n.length > 31) throw new Error(\"Sheet name cannot exceed 31 chars\");\n\t\tif(n.charCodeAt(0) == 0x27 || n.charCodeAt(n.length - 1) == 0x27) throw new Error(\"Sheet name cannot start or end with apostrophe (')\");\n\t\tif(n.toLowerCase() == \"history\") throw new Error(\"Sheet name cannot be 'History'\");\n\t\tbadchars.forEach(function(c) {\n\t\t\tif(n.indexOf(c) == -1) return;\n\t\t\tthrow new Error(\"Sheet name cannot contain : \\\\ / ? * [ ]\");\n\t\t});\n\t} catch(e) { if(safe) return false; throw e; }\n\treturn true;\n}\nfunction check_wb_names(N, S, codes) {\n\tN.forEach(function(n,i) {\n\t\tcheck_ws_name(n);\n\t\tfor(var j = 0; j < i; ++j) if(n == N[j]) throw new Error(\"Duplicate Sheet Name: \" + n);\n\t\tif(codes) {\n\t\t\tvar cn = (S && S[i] && S[i].CodeName) || n;\n\t\t\tif(cn.charCodeAt(0) == 95 && cn.length > 22) throw new Error(\"Bad Code Name: Worksheet\" + cn);\n\t\t}\n\t});\n}\nfunction check_wb(wb) {\n\tif(!wb || !wb.SheetNames || !wb.Sheets) throw new Error(\"Invalid Workbook\");\n\tif(!wb.SheetNames.length) throw new Error(\"Workbook is empty\");\n\tvar Sheets = (wb.Workbook && wb.Workbook.Sheets) || [];\n\tcheck_wb_names(wb.SheetNames, Sheets, !!wb.vbaraw);\n\tfor(var i = 0; i < wb.SheetNames.length; ++i) check_ws(wb.Sheets[wb.SheetNames[i]], wb.SheetNames[i], i);\n\twb.SheetNames.forEach(function(n, i) {\n\t\tvar ws = wb.Sheets[n];\n\t\tif(!ws || !ws[\"!autofilter\"]) return;\n\t\tvar DN;\n\t\tif(!wb.Workbook) wb.Workbook = {};\n\t\tif(!wb.Workbook.Names) wb.Workbook.Names = [];\n\t\twb.Workbook.Names.forEach(function(dn) { if(dn.Name == \"_xlnm._FilterDatabase\" && dn.Sheet == i) DN = dn; });\n\t\tvar nn = formula_quote_sheet_name(n) + \"!\" + fix_range(ws[\"!autofilter\"].ref);\n\t\tif(DN) DN.Ref = nn;\n\t\telse wb.Workbook.Names.push({Name: \"_xlnm._FilterDatabase\", Sheet: i, Ref: nn});\n\t});\n\t/* TODO: validate workbook */\n}\n/* 18.2 Workbook */\nvar wbnsregex = /<\\w+:workbook/;\nfunction parse_wb_xml(data, opts)/*:WorkbookFile*/ {\n\tif(!data) throw new Error(\"Could not find file\");\n\tvar wb = /*::(*/{ AppVersion:{}, WBProps:{}, WBView:[], Sheets:[], CalcPr:{}, Names:[], xmlns: \"\" }/*::)*/;\n\tvar pass = false, xmlns = \"xmlns\";\n\tvar dname = {}, dnstart = 0;\n\tdata.replace(tagregex, function xml_wb(x, idx) {\n\t\tvar y/*:any*/ = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '<?xml': break;\n\n\t\t\t/* 18.2.27 workbook CT_Workbook 1 */\n\t\t\tcase '<workbook':\n\t\t\t\tif(x.match(wbnsregex)) xmlns = \"xmlns\" + x.match(/<(\\w+):/)[1];\n\t\t\t\twb.xmlns = y[xmlns];\n\t\t\t\tbreak;\n\t\t\tcase '</workbook>': break;\n\n\t\t\t/* 18.2.13 fileVersion CT_FileVersion ? */\n\t\t\tcase '<fileVersion': delete y[0]; wb.AppVersion = y; break;\n\t\t\tcase '<fileVersion/>': case '</fileVersion>': break;\n\n\t\t\t/* 18.2.12 fileSharing CT_FileSharing ? */\n\t\t\tcase '<fileSharing':\n\t\t\t\tbreak;\n\t\t\tcase '<fileSharing/>': break;\n\n\t\t\t/* 18.2.28 workbookPr CT_WorkbookPr ? */\n\t\t\tcase '<workbookPr':\n\t\t\tcase '<workbookPr/>':\n\t\t\t\tWBPropsDef.forEach(function(w) {\n\t\t\t\t\tif(y[w[0]] == null) return;\n\t\t\t\t\tswitch(w[2]) {\n\t\t\t\t\t\tcase \"bool\": wb.WBProps[w[0]] = parsexmlbool(y[w[0]]); break;\n\t\t\t\t\t\tcase \"int\": wb.WBProps[w[0]] = parseInt(y[w[0]], 10); break;\n\t\t\t\t\t\tdefault: wb.WBProps[w[0]] = y[w[0]];\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tif(y.codeName) wb.WBProps.CodeName = utf8read(y.codeName);\n\t\t\t\tbreak;\n\t\t\tcase '</workbookPr>': break;\n\n\t\t\t/* 18.2.29 workbookProtection CT_WorkbookProtection ? */\n\t\t\tcase '<workbookProtection':\n\t\t\t\tbreak;\n\t\t\tcase '<workbookProtection/>': break;\n\n\t\t\t/* 18.2.1 bookViews CT_BookViews ? */\n\t\t\tcase '<bookViews': case '<bookViews>': case '</bookViews>': break;\n\t\t\t/* 18.2.30 workbookView CT_BookView + */\n\t\t\tcase '<workbookView': case '<workbookView/>': delete y[0]; wb.WBView.push(y); break;\n\t\t\tcase '</workbookView>': break;\n\n\t\t\t/* 18.2.20 sheets CT_Sheets 1 */\n\t\t\tcase '<sheets': case '<sheets>': case '</sheets>': break; // aggregate sheet\n\t\t\t/* 18.2.19 sheet CT_Sheet + */\n\t\t\tcase '<sheet':\n\t\t\t\tswitch(y.state) {\n\t\t\t\t\tcase \"hidden\": y.Hidden = 1; break;\n\t\t\t\t\tcase \"veryHidden\": y.Hidden = 2; break;\n\t\t\t\t\tdefault: y.Hidden = 0;\n\t\t\t\t}\n\t\t\t\tdelete y.state;\n\t\t\t\ty.name = unescapexml(utf8read(y.name));\n\t\t\t\tdelete y[0]; wb.Sheets.push(y); break;\n\t\t\tcase '</sheet>': break;\n\n\t\t\t/* 18.2.15 functionGroups CT_FunctionGroups ? */\n\t\t\tcase '<functionGroups': case '<functionGroups/>': break;\n\t\t\t/* 18.2.14 functionGroup CT_FunctionGroup + */\n\t\t\tcase '<functionGroup': break;\n\n\t\t\t/* 18.2.9 externalReferences CT_ExternalReferences ? */\n\t\t\tcase '<externalReferences': case '</externalReferences>': case '<externalReferences>': break;\n\t\t\t/* 18.2.8 externalReference CT_ExternalReference + */\n\t\t\tcase '<externalReference': break;\n\n\t\t\t/* 18.2.6 definedNames CT_DefinedNames ? */\n\t\t\tcase '<definedNames/>': break;\n\t\t\tcase '<definedNames>': case '<definedNames': pass=true; break;\n\t\t\tcase '</definedNames>': pass=false; break;\n\t\t\t/* 18.2.5 definedName CT_DefinedName + */\n\t\t\tcase '<definedName': {\n\t\t\t\tdname = {};\n\t\t\t\tdname.Name = utf8read(y.name);\n\t\t\t\tif(y.comment) dname.Comment = y.comment;\n\t\t\t\tif(y.localSheetId) dname.Sheet = +y.localSheetId;\n\t\t\t\tif(parsexmlbool(y.hidden||\"0\")) dname.Hidden = true;\n\t\t\t\tdnstart = idx + x.length;\n\t\t\t}\tbreak;\n\t\t\tcase '</definedName>': {\n\t\t\t\tdname.Ref = unescapexml(utf8read(data.slice(dnstart, idx)));\n\t\t\t\twb.Names.push(dname);\n\t\t\t} break;\n\t\t\tcase '<definedName/>': break;\n\n\t\t\t/* 18.2.2 calcPr CT_CalcPr ? */\n\t\t\tcase '<calcPr': delete y[0]; wb.CalcPr = y; break;\n\t\t\tcase '<calcPr/>': delete y[0]; wb.CalcPr = y; break;\n\t\t\tcase '</calcPr>': break;\n\n\t\t\t/* 18.2.16 oleSize CT_OleSize ? (ref required) */\n\t\t\tcase '<oleSize': break;\n\n\t\t\t/* 18.2.4 customWorkbookViews CT_CustomWorkbookViews ? */\n\t\t\tcase '<customWorkbookViews>': case '</customWorkbookViews>': case '<customWorkbookViews': break;\n\t\t\t/* 18.2.3 customWorkbookView CT_CustomWorkbookView + */\n\t\t\tcase '<customWorkbookView': case '</customWorkbookView>': break;\n\n\t\t\t/* 18.2.18 pivotCaches CT_PivotCaches ? */\n\t\t\tcase '<pivotCaches>': case '</pivotCaches>': case '<pivotCaches': break;\n\t\t\t/* 18.2.17 pivotCache CT_PivotCache ? */\n\t\t\tcase '<pivotCache': break;\n\n\t\t\t/* 18.2.21 smartTagPr CT_SmartTagPr ? */\n\t\t\tcase '<smartTagPr': case '<smartTagPr/>': break;\n\n\t\t\t/* 18.2.23 smartTagTypes CT_SmartTagTypes ? */\n\t\t\tcase '<smartTagTypes': case '<smartTagTypes>': case '</smartTagTypes>': break;\n\t\t\t/* 18.2.22 smartTagType CT_SmartTagType ? */\n\t\t\tcase '<smartTagType': break;\n\n\t\t\t/* 18.2.24 webPublishing CT_WebPublishing ? */\n\t\t\tcase '<webPublishing': case '<webPublishing/>': break;\n\n\t\t\t/* 18.2.11 fileRecoveryPr CT_FileRecoveryPr ? */\n\t\t\tcase '<fileRecoveryPr': case '<fileRecoveryPr/>': break;\n\n\t\t\t/* 18.2.26 webPublishObjects CT_WebPublishObjects ? */\n\t\t\tcase '<webPublishObjects>': case '<webPublishObjects': case '</webPublishObjects>': break;\n\t\t\t/* 18.2.25 webPublishObject CT_WebPublishObject ? */\n\t\t\tcase '<webPublishObject': break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '<extLst': case '<extLst>': case '</extLst>': case '<extLst/>': break;\n\t\t\t/* 18.2.7 ext CT_Extension + */\n\t\t\tcase '<ext': pass=true; break; //TODO: check with versions of excel\n\t\t\tcase '</ext>': pass=false; break;\n\n\t\t\t/* Others */\n\t\t\tcase '<ArchID': break;\n\t\t\tcase '<AlternateContent':\n\t\t\tcase '<AlternateContent>': pass=true; break;\n\t\t\tcase '</AlternateContent>': pass=false; break;\n\n\t\t\t/* TODO */\n\t\t\tcase '<revisionPtr': break;\n\n\t\t\tdefault: if(!pass && opts.WTF) throw new Error('unrecognized ' + y[0] + ' in workbook');\n\t\t}\n\t\treturn x;\n\t});\n\tif(XMLNS_main.indexOf(wb.xmlns) === -1) throw new Error(\"Unknown Namespace: \" + wb.xmlns);\n\n\tparse_wb_defaults(wb);\n\n\treturn wb;\n}\n\nfunction write_wb_xml(wb/*:Workbook*//*::, opts:?WriteOpts*/)/*:string*/ {\n\tvar o = [XML_HEADER];\n\to[o.length] = writextag('workbook', null, {\n\t\t'xmlns': XMLNS_main[0],\n\t\t//'xmlns:mx': XMLNS.mx,\n\t\t//'xmlns:s': XMLNS_main[0],\n\t\t'xmlns:r': XMLNS.r\n\t});\n\n\tvar write_names = (wb.Workbook && (wb.Workbook.Names||[]).length > 0);\n\n\t/* fileVersion */\n\t/* fileSharing */\n\n\tvar workbookPr/*:any*/ = ({codeName:\"ThisWorkbook\"}/*:any*/);\n\tif(wb.Workbook && wb.Workbook.WBProps) {\n\t\tWBPropsDef.forEach(function(x) {\n\t\t\t/*:: if(!wb.Workbook || !wb.Workbook.WBProps) throw \"unreachable\"; */\n\t\t\tif((wb.Workbook.WBProps[x[0]]/*:any*/) == null) return;\n\t\t\tif((wb.Workbook.WBProps[x[0]]/*:any*/) == x[1]) return;\n\t\t\tworkbookPr[x[0]] = (wb.Workbook.WBProps[x[0]]/*:any*/);\n\t\t});\n\t\t/*:: if(!wb.Workbook || !wb.Workbook.WBProps) throw \"unreachable\"; */\n\t\tif(wb.Workbook.WBProps.CodeName) { workbookPr.codeName = wb.Workbook.WBProps.CodeName; delete workbookPr.CodeName; }\n\t}\n\to[o.length] = (writextag('workbookPr', null, workbookPr));\n\n\t/* workbookProtection */\n\n\tvar sheets = wb.Workbook && wb.Workbook.Sheets || [];\n\tvar i = 0;\n\n\t/* bookViews only written if first worksheet is hidden */\n\tif(sheets && sheets[0] && !!sheets[0].Hidden) {\n\t\to[o.length] = \"<bookViews>\";\n\t\tfor(i = 0; i != wb.SheetNames.length; ++i) {\n\t\t\tif(!sheets[i]) break;\n\t\t\tif(!sheets[i].Hidden) break;\n\t\t}\n\t\tif(i == wb.SheetNames.length) i = 0;\n\t\to[o.length] = '<workbookView firstSheet=\"' + i + '\" activeTab=\"' + i + '\"/>';\n\t\to[o.length] = \"</bookViews>\";\n\t}\n\n\to[o.length] = \"<sheets>\";\n\tfor(i = 0; i != wb.SheetNames.length; ++i) {\n\t\tvar sht = ({name:escapexml(wb.SheetNames[i].slice(0,31))}/*:any*/);\n\t\tsht.sheetId = \"\"+(i+1);\n\t\tsht[\"r:id\"] = \"rId\"+(i+1);\n\t\tif(sheets[i]) switch(sheets[i].Hidden) {\n\t\t\tcase 1: sht.state = \"hidden\"; break;\n\t\t\tcase 2: sht.state = \"veryHidden\"; break;\n\t\t}\n\t\to[o.length] = (writextag('sheet',null,sht));\n\t}\n\to[o.length] = \"</sheets>\";\n\n\t/* functionGroups */\n\t/* externalReferences */\n\n\tif(write_names) {\n\t\to[o.length] = \"<definedNames>\";\n\t\tif(wb.Workbook && wb.Workbook.Names) wb.Workbook.Names.forEach(function(n) {\n\t\t\tvar d/*:any*/ = {name:n.Name};\n\t\t\tif(n.Comment) d.comment = n.Comment;\n\t\t\tif(n.Sheet != null) d.localSheetId = \"\"+n.Sheet;\n\t\t\tif(n.Hidden) d.hidden = \"1\";\n\t\t\tif(!n.Ref) return;\n\t\t\to[o.length] = writextag('definedName', escapexml(n.Ref), d);\n\t\t});\n\t\to[o.length] = \"</definedNames>\";\n\t}\n\n\t/* calcPr */\n\t/* oleSize */\n\t/* customWorkbookViews */\n\t/* pivotCaches */\n\t/* smartTagPr */\n\t/* smartTagTypes */\n\t/* webPublishing */\n\t/* fileRecoveryPr */\n\t/* webPublishObjects */\n\t/* extLst */\n\n\tif(o.length>2){ o[o.length] = '</workbook>'; o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.304 BrtBundleSh */\nfunction parse_BrtBundleSh(data, length/*:number*/) {\n\tvar z = {};\n\tz.Hidden = data.read_shift(4); //hsState ST_SheetState\n\tz.iTabID = data.read_shift(4);\n\tz.strRelID = parse_RelID(data,length-8);\n\tz.name = parse_XLWideString(data);\n\treturn z;\n}\nfunction write_BrtBundleSh(data, o) {\n\tif(!o) o = new_buf(127);\n\to.write_shift(4, data.Hidden);\n\to.write_shift(4, data.iTabID);\n\twrite_RelID(data.strRelID, o);\n\twrite_XLWideString(data.name.slice(0,31), o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.815 BrtWbProp */\nfunction parse_BrtWbProp(data, length)/*:WBProps*/ {\n\tvar o/*:WBProps*/ = ({}/*:any*/);\n\tvar flags = data.read_shift(4);\n\to.defaultThemeVersion = data.read_shift(4);\n\tvar strName = (length > 8) ? parse_XLWideString(data) : \"\";\n\tif(strName.length > 0) o.CodeName = strName;\n\to.autoCompressPictures = !!(flags & 0x10000);\n\to.backupFile = !!(flags & 0x40);\n\to.checkCompatibility = !!(flags & 0x1000);\n\to.date1904 = !!(flags & 0x01);\n\to.filterPrivacy = !!(flags & 0x08);\n\to.hidePivotFieldList = !!(flags & 0x400);\n\to.promptedSolutions = !!(flags & 0x10);\n\to.publishItems = !!(flags & 0x800);\n\to.refreshAllConnections = !!(flags & 0x40000);\n\to.saveExternalLinkValues = !!(flags & 0x80);\n\to.showBorderUnselectedTables = !!(flags & 0x04);\n\to.showInkAnnotation = !!(flags & 0x20);\n\to.showObjects = [\"all\", \"placeholders\", \"none\"][(flags >> 13) & 0x03];\n\to.showPivotChartFilter = !!(flags & 0x8000);\n\to.updateLinks = [\"userSet\", \"never\", \"always\"][(flags >> 8) & 0x03];\n\treturn o;\n}\nfunction write_BrtWbProp(data/*:?WBProps*/, o) {\n\tif(!o) o = new_buf(72);\n\tvar flags = 0;\n\tif(data) {\n\t\t/* TODO: mirror parse_BrtWbProp fields */\n\t\tif(data.date1904) flags |= 0x01;\n\t\tif(data.filterPrivacy) flags |= 0x08;\n\t}\n\to.write_shift(4, flags);\n\to.write_shift(4, 0);\n\twrite_XLSBCodeName(data && data.CodeName || \"ThisWorkbook\", o);\n\treturn o.slice(0, o.l);\n}\n\nfunction parse_BrtFRTArchID$(data, length) {\n\tvar o = {};\n\tdata.read_shift(4);\n\to.ArchID = data.read_shift(4);\n\tdata.l += length - 8;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.687 BrtName */\nfunction parse_BrtName(data, length, opts) {\n\tvar end = data.l + length;\n\tvar flags = data.read_shift(4);\n\tdata.l += 1; //var chKey = data.read_shift(1);\n\tvar itab = data.read_shift(4);\n\tvar name = parse_XLNameWideString(data);\n\tvar formula = parse_XLSBNameParsedFormula(data, 0, opts);\n\tvar comment = parse_XLNullableWideString(data);\n\tif(flags & 0x20) name = \"_xlnm.\" + name;\n\t//if(0 /* fProc */) {\n\t\t// unusedstring1: XLNullableWideString\n\t\t// description: XLNullableWideString\n\t\t// helpTopic: XLNullableWideString\n\t\t// unusedstring2: XLNullableWideString\n\t//}\n\tdata.l = end;\n\tvar out = ({Name:name, Ptg:formula, Flags: flags}/*:any*/);\n\tif(itab < 0xFFFFFFF) out.Sheet = itab;\n\tif(comment) out.Comment = comment;\n\treturn out;\n}\nfunction write_BrtName(name, wb) {\n\tvar o = new_buf(9);\n\tvar flags = 0;\n\tvar dname = name.Name;\n\tif(XLSLblBuiltIn.indexOf(dname) > -1) { flags |= 0x20; dname = dname.slice(6); }\n\to.write_shift(4, flags); // flags\n\to.write_shift(1, 0); // chKey\n\to.write_shift(4, name.Sheet == null ? 0xFFFFFFFF : name.Sheet);\n\n\tvar arr = [\n\t\to,\n\t\twrite_XLWideString(dname),\n\t\twrite_XLSBNameParsedFormula(name.Ref, wb)\n\t];\n\tif(name.Comment) arr.push(write_XLNullableWideString(name.Comment));\n\telse {\n\t\tvar x = new_buf(4);\n\t\tx.write_shift(4, 0xFFFFFFFF);\n\t\tarr.push(x);\n\t}\n\n\t// if macro (flags & 0x0F):\n\t// write_shift(4, 0xFFFFFFFF);\n\t// write_XLNullableWideString(description)\n\t// write_XLNullableWideString(helpTopic)\n\t// write_shift(4, 0xFFFFFFFF);\n\n\treturn bconcat(arr);\n}\n\n/* [MS-XLSB] 2.1.7.61 Workbook */\nfunction parse_wb_bin(data, opts)/*:WorkbookFile*/ {\n\tvar wb = { AppVersion:{}, WBProps:{}, WBView:[], Sheets:[], CalcPr:{}, xmlns: \"\" };\n\tvar state/*:Array<string>*/ = [];\n\tvar pass = false;\n\n\tif(!opts) opts = {};\n\topts.biff = 12;\n\n\tvar Names = [];\n\tvar supbooks = ([[]]/*:any*/);\n\tsupbooks.SheetNames = [];\n\tsupbooks.XTI = [];\n\n\tXLSBRecordEnum[0x0010] = { n:\"BrtFRTArchID$\", f:parse_BrtFRTArchID$ };\n\n\trecordhopper(data, function hopper_wb(val, R, RT) {\n\t\tswitch(RT) {\n\t\t\tcase 0x009C: /* 'BrtBundleSh' */\n\t\t\t\tsupbooks.SheetNames.push(val.name);\n\t\t\t\twb.Sheets.push(val); break;\n\n\t\t\tcase 0x0099: /* 'BrtWbProp' */\n\t\t\t\twb.WBProps = val; break;\n\n\t\t\tcase 0x0027: /* 'BrtName' */\n\t\t\t\tif(val.Sheet != null) opts.SID = val.Sheet;\n\t\t\t\tval.Ref = stringify_formula(val.Ptg, null, null, supbooks, opts);\n\t\t\t\tdelete opts.SID;\n\t\t\t\tdelete val.Ptg;\n\t\t\t\tNames.push(val);\n\t\t\t\tbreak;\n\t\t\tcase 0x040C: /* 'BrtNameExt' */ break;\n\n\t\t\tcase 0x0165: /* 'BrtSupSelf' */\n\t\t\tcase 0x0166: /* 'BrtSupSame' */\n\t\t\tcase 0x0163: /* 'BrtSupBookSrc' */\n\t\t\tcase 0x029B: /* 'BrtSupAddin' */\n\t\t\t\tif(!supbooks[0].length) supbooks[0] = [RT, val];\n\t\t\t\telse supbooks.push([RT, val]);\n\t\t\t\tsupbooks[supbooks.length - 1].XTI = [];\n\t\t\t\tbreak;\n\t\t\tcase 0x016A: /* 'BrtExternSheet' */\n\t\t\t\tif(supbooks.length === 0) { supbooks[0] = []; supbooks[0].XTI = []; }\n\t\t\t\tsupbooks[supbooks.length - 1].XTI = supbooks[supbooks.length - 1].XTI.concat(val);\n\t\t\t\tsupbooks.XTI = supbooks.XTI.concat(val);\n\t\t\t\tbreak;\n\t\t\tcase 0x0169: /* 'BrtPlaceholderName' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0817: /* 'BrtAbsPath15' */\n\t\t\tcase 0x009E: /* 'BrtBookView' */\n\t\t\tcase 0x008F: /* 'BrtBeginBundleShs' */\n\t\t\tcase 0x0298: /* 'BrtBeginFnGroup' */\n\t\t\tcase 0x0161: /* 'BrtBeginExternals' */\n\t\t\t\tbreak;\n\n\t\t\t/* case 'BrtModelTimeGroupingCalcCol' */\n\t\t\tcase 0x0C00: /* 'BrtUid' */\n\t\t\tcase 0x0C01: /* 'BrtRevisionPtr' */\n\t\t\tcase 0x0216: /* 'BrtBookProtection' */\n\t\t\tcase 0x02A5: /* 'BrtBookProtectionIso' */\n\t\t\tcase 0x009D: /* 'BrtCalcProp' */\n\t\t\tcase 0x0262: /* 'BrtCrashRecErr' */\n\t\t\tcase 0x0802: /* 'BrtDecoupledPivotCacheID' */\n\t\t\tcase 0x009B: /* 'BrtFileRecover' */\n\t\t\tcase 0x0224: /* 'BrtFileSharing' */\n\t\t\tcase 0x02A4: /* 'BrtFileSharingIso' */\n\t\t\tcase 0x0080: /* 'BrtFileVersion' */\n\t\t\tcase 0x0299: /* 'BrtFnGroup' */\n\t\t\tcase 0x0850: /* 'BrtModelRelationship' */\n\t\t\tcase 0x084D: /* 'BrtModelTable' */\n\t\t\tcase 0x0225: /* 'BrtOleSize' */\n\t\t\tcase 0x0805: /* 'BrtPivotTableRef' */\n\t\t\tcase 0x0254: /* 'BrtSmartTagType' */\n\t\t\tcase 0x081C: /* 'BrtTableSlicerCacheID' */\n\t\t\tcase 0x081B: /* 'BrtTableSlicerCacheIDs' */\n\t\t\tcase 0x0822: /* 'BrtTimelineCachePivotCacheID' */\n\t\t\tcase 0x018D: /* 'BrtUserBookView' */\n\t\t\tcase 0x009A: /* 'BrtWbFactoid' */\n\t\t\tcase 0x045D: /* 'BrtWbProp14' */\n\t\t\tcase 0x0229: /* 'BrtWebOpt' */\n\t\t\tcase 0x082B: /* 'BrtWorkBookPr15' */\n\t\t\t\tbreak;\n\n\t\t\tcase 0x0023: /* 'BrtFRTBegin' */\n\t\t\t\tstate.push(RT); pass = true; break;\n\t\t\tcase 0x0024: /* 'BrtFRTEnd' */\n\t\t\t\tstate.pop(); pass = false; break;\n\t\t\tcase 0x0025: /* 'BrtACBegin' */\n\t\t\t\tstate.push(RT); pass = true; break;\n\t\t\tcase 0x0026: /* 'BrtACEnd' */\n\t\t\t\tstate.pop(); pass = false; break;\n\n\t\t\tcase 0x0010: /* 'BrtFRTArchID$' */ break;\n\n\t\t\tdefault:\n\t\t\t\tif(R.T){/* empty */}\n\t\t\t\telse if(!pass || (opts.WTF && state[state.length-1] != 0x0025 /* BrtACBegin */ && state[state.length-1] != 0x0023 /* BrtFRTBegin */)) throw new Error(\"Unexpected record 0x\" + RT.toString(16));\n\t\t}\n\t}, opts);\n\n\tparse_wb_defaults(wb);\n\n\t// $FlowIgnore\n\twb.Names = Names;\n\n\t(wb/*:any*/).supbooks = supbooks;\n\treturn wb;\n}\n\nfunction write_BUNDLESHS(ba, wb/*::, opts*/) {\n\twrite_record(ba, 0x008F /* BrtBeginBundleShs */);\n\tfor(var idx = 0; idx != wb.SheetNames.length; ++idx) {\n\t\tvar viz = wb.Workbook && wb.Workbook.Sheets && wb.Workbook.Sheets[idx] && wb.Workbook.Sheets[idx].Hidden || 0;\n\t\tvar d = { Hidden: viz, iTabID: idx+1, strRelID: 'rId' + (idx+1), name: wb.SheetNames[idx] };\n\t\twrite_record(ba, 0x009C /* BrtBundleSh */, write_BrtBundleSh(d));\n\t}\n\twrite_record(ba, 0x0090 /* BrtEndBundleShs */);\n}\n\n/* [MS-XLSB] 2.4.649 BrtFileVersion */\nfunction write_BrtFileVersion(data, o) {\n\tif(!o) o = new_buf(127);\n\tfor(var i = 0; i != 4; ++i) o.write_shift(4, 0);\n\twrite_XLWideString(\"SheetJS\", o);\n\twrite_XLWideString(XLSX.version, o);\n\twrite_XLWideString(XLSX.version, o);\n\twrite_XLWideString(\"7262\", o);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\n/* [MS-XLSB] 2.4.301 BrtBookView */\nfunction write_BrtBookView(idx, o) {\n\tif(!o) o = new_buf(29);\n\to.write_shift(-4, 0);\n\to.write_shift(-4, 460);\n\to.write_shift(4, 28800);\n\to.write_shift(4, 17600);\n\to.write_shift(4, 500);\n\to.write_shift(4, idx);\n\to.write_shift(4, idx);\n\tvar flags = 0x78;\n\to.write_shift(1, flags);\n\treturn o.length > o.l ? o.slice(0, o.l) : o;\n}\n\nfunction write_BOOKVIEWS(ba, wb/*::, opts*/) {\n\t/* required if hidden tab appears before visible tab */\n\tif(!wb.Workbook || !wb.Workbook.Sheets) return;\n\tvar sheets = wb.Workbook.Sheets;\n\tvar i = 0, vistab = -1, hidden = -1;\n\tfor(; i < sheets.length; ++i) {\n\t\tif(!sheets[i] || !sheets[i].Hidden && vistab == -1) vistab = i;\n\t\telse if(sheets[i].Hidden == 1 && hidden == -1) hidden = i;\n\t}\n\tif(hidden > vistab) return;\n\twrite_record(ba, 0x0087 /* BrtBeginBookViews */);\n\twrite_record(ba, 0x009E /* BrtBookView */, write_BrtBookView(vistab));\n\t/* 1*(BrtBookView *FRT) */\n\twrite_record(ba, 0x0088 /* BrtEndBookViews */);\n}\n\nfunction write_BRTNAMES(ba, wb) {\n\tif(!wb.Workbook || !wb.Workbook.Names) return;\n\twb.Workbook.Names.forEach(function(name) { try {\n\t\tif(name.Flags & 0x0e) return; // TODO: macro name write\n\t\twrite_record(ba, 0x0027 /* BrtName */, write_BrtName(name, wb));\n\t} catch(e) {\n\t\tconsole.error(\"Could not serialize defined name \" + JSON.stringify(name));\n\t} });\n}\n\nfunction write_SELF_EXTERNS_xlsb(wb) {\n\tvar L = wb.SheetNames.length;\n\tvar o = new_buf(12 * L + 28);\n\to.write_shift(4, L + 2);\n\to.write_shift(4, 0); o.write_shift(4, -2); o.write_shift(4, -2); // workbook-level reference\n\to.write_shift(4, 0); o.write_shift(4, -1); o.write_shift(4, -1); // #REF!...\n\tfor(var i = 0; i < L; ++i) {\n\t\to.write_shift(4, 0); o.write_shift(4, i); o.write_shift(4, i);\n\t}\n\treturn o;\n}\nfunction write_EXTERNALS_xlsb(ba, wb) {\n\twrite_record(ba, 0x0161 /* BrtBeginExternals */);\n\twrite_record(ba, 0x0165 /* BrtSupSelf */);\n\twrite_record(ba, 0x016A /* BrtExternSheet */, write_SELF_EXTERNS_xlsb(wb, 0));\n\twrite_record(ba, 0x0162 /* BrtEndExternals */);\n}\n\n/* [MS-XLSB] 2.4.305 BrtCalcProp */\n/*function write_BrtCalcProp(data, o) {\n\tif(!o) o = new_buf(26);\n\to.write_shift(4,0); // force recalc\n\to.write_shift(4,1);\n\to.write_shift(4,0);\n\twrite_Xnum(0, o);\n\to.write_shift(-4, 1023);\n\to.write_shift(1, 0x33);\n\to.write_shift(1, 0x00);\n\treturn o;\n}*/\n\n/* [MS-XLSB] 2.4.646 BrtFileRecover */\n/*function write_BrtFileRecover(data, o) {\n\tif(!o) o = new_buf(1);\n\to.write_shift(1,0);\n\treturn o;\n}*/\n\n/* [MS-XLSB] 2.1.7.61 Workbook */\nfunction write_wb_bin(wb, opts) {\n\tvar ba = buf_array();\n\twrite_record(ba, 0x0083 /* BrtBeginBook */);\n\twrite_record(ba, 0x0080 /* BrtFileVersion */, write_BrtFileVersion());\n\t/* [[BrtFileSharingIso] BrtFileSharing] */\n\twrite_record(ba, 0x0099 /* BrtWbProp */, write_BrtWbProp(wb.Workbook && wb.Workbook.WBProps || null));\n\t/* [ACABSPATH] */\n\t/* [[BrtBookProtectionIso] BrtBookProtection] */\n\twrite_BOOKVIEWS(ba, wb, opts);\n\twrite_BUNDLESHS(ba, wb, opts);\n\t/* [FNGROUP] */\n\twrite_EXTERNALS_xlsb(ba, wb);\n\tif((wb.Workbook||{}).Names) write_BRTNAMES(ba, wb);\n\t/* write_record(ba, 0x009D BrtCalcProp, write_BrtCalcProp()); */\n\t/* [BrtOleSize] */\n\t/* *(BrtUserBookView *FRT) */\n\t/* [PIVOTCACHEIDS] */\n\t/* [BrtWbFactoid] */\n\t/* [SMARTTAGTYPES] */\n\t/* [BrtWebOpt] */\n\t/* write_record(ba, 0x009B BrtFileRecover, write_BrtFileRecover()); */\n\t/* [WEBPUBITEMS] */\n\t/* [CRERRS] */\n\t/* FRTWORKBOOK */\n\twrite_record(ba, 0x0084 /* BrtEndBook */);\n\n\treturn ba.end();\n}\nfunction parse_wb(data, name/*:string*/, opts)/*:WorkbookFile*/ {\n\tif(name.slice(-4)===\".bin\") return parse_wb_bin((data/*:any*/), opts);\n\treturn parse_wb_xml((data/*:any*/), opts);\n}\n\nfunction parse_ws(data, name/*:string*/, idx/*:number*/, opts, rels, wb, themes, styles)/*:Worksheet*/ {\n\tif(name.slice(-4)===\".bin\") return parse_ws_bin((data/*:any*/), opts, idx, rels, wb, themes, styles);\n\treturn parse_ws_xml((data/*:any*/), opts, idx, rels, wb, themes, styles);\n}\n\nfunction parse_cs(data, name/*:string*/, idx/*:number*/, opts, rels, wb, themes, styles)/*:Worksheet*/ {\n\tif(name.slice(-4)===\".bin\") return parse_cs_bin((data/*:any*/), opts, idx, rels, wb, themes, styles);\n\treturn parse_cs_xml((data/*:any*/), opts, idx, rels, wb, themes, styles);\n}\n\nfunction parse_ms(data, name/*:string*/, idx/*:number*/, opts, rels, wb, themes, styles)/*:Worksheet*/ {\n\tif(name.slice(-4)===\".bin\") return parse_ms_bin((data/*:any*/), opts, idx, rels, wb, themes, styles);\n\treturn parse_ms_xml((data/*:any*/), opts, idx, rels, wb, themes, styles);\n}\n\nfunction parse_ds(data, name/*:string*/, idx/*:number*/, opts, rels, wb, themes, styles)/*:Worksheet*/ {\n\tif(name.slice(-4)===\".bin\") return parse_ds_bin((data/*:any*/), opts, idx, rels, wb, themes, styles);\n\treturn parse_ds_xml((data/*:any*/), opts, idx, rels, wb, themes, styles);\n}\n\nfunction parse_sty(data, name/*:string*/, themes, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_sty_bin((data/*:any*/), themes, opts);\n\treturn parse_sty_xml((data/*:any*/), themes, opts);\n}\n\nfunction parse_sst(data, name/*:string*/, opts)/*:SST*/ {\n\tif(name.slice(-4)===\".bin\") return parse_sst_bin((data/*:any*/), opts);\n\treturn parse_sst_xml((data/*:any*/), opts);\n}\n\nfunction parse_cmnt(data, name/*:string*/, opts)/*:Array<RawComment>*/ {\n\tif(name.slice(-4)===\".bin\") return parse_comments_bin((data/*:any*/), opts);\n\treturn parse_comments_xml((data/*:any*/), opts);\n}\n\nfunction parse_cc(data, name/*:string*/, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_cc_bin((data/*:any*/), name, opts);\n\treturn parse_cc_xml((data/*:any*/), name, opts);\n}\n\nfunction parse_xlink(data, rel, name/*:string*/, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_xlink_bin((data/*:any*/), rel, name, opts);\n\treturn parse_xlink_xml((data/*:any*/), rel, name, opts);\n}\n\nfunction parse_xlmeta(data, name/*:string*/, opts) {\n\tif(name.slice(-4)===\".bin\") return parse_xlmeta_bin((data/*:any*/), name, opts);\n\treturn parse_xlmeta_xml((data/*:any*/), name, opts);\n}\nvar attregexg2=/([\\w:]+)=((?:\")([^\"]*)(?:\")|(?:')([^']*)(?:'))/g;\nvar attregex2=/([\\w:]+)=((?:\")(?:[^\"]*)(?:\")|(?:')(?:[^']*)(?:'))/;\nfunction xlml_parsexmltag(tag/*:string*/, skip_root/*:?boolean*/) {\n\tvar words = tag.split(/\\s+/);\n\tvar z/*:any*/ = ([]/*:any*/); if(!skip_root) z[0] = words[0];\n\tif(words.length === 1) return z;\n\tvar m = tag.match(attregexg2), y, j, w, i;\n\tif(m) for(i = 0; i != m.length; ++i) {\n\t\ty = m[i].match(attregex2);\n/*:: if(!y || !y[2]) continue; */\n\t\tif((j=y[1].indexOf(\":\")) === -1) z[y[1]] = y[2].slice(1,y[2].length-1);\n\t\telse {\n\t\t\tif(y[1].slice(0,6) === \"xmlns:\") w = \"xmlns\"+y[1].slice(6);\n\t\t\telse w = y[1].slice(j+1);\n\t\t\tz[w] = y[2].slice(1,y[2].length-1);\n\t\t}\n\t}\n\treturn z;\n}\nfunction xlml_parsexmltagobj(tag/*:string*/) {\n\tvar words = tag.split(/\\s+/);\n\tvar z = {};\n\tif(words.length === 1) return z;\n\tvar m = tag.match(attregexg2), y, j, w, i;\n\tif(m) for(i = 0; i != m.length; ++i) {\n\t\ty = m[i].match(attregex2);\n/*:: if(!y || !y[2]) continue; */\n\t\tif((j=y[1].indexOf(\":\")) === -1) z[y[1]] = y[2].slice(1,y[2].length-1);\n\t\telse {\n\t\t\tif(y[1].slice(0,6) === \"xmlns:\") w = \"xmlns\"+y[1].slice(6);\n\t\t\telse w = y[1].slice(j+1);\n\t\t\tz[w] = y[2].slice(1,y[2].length-1);\n\t\t}\n\t}\n\treturn z;\n}\n\n// ----\n\n/* map from xlml named formats to SSF TODO: localize */\nvar XLMLFormatMap/*: {[string]:string}*/;\n\nfunction xlml_format(format, value)/*:string*/ {\n\tvar fmt = XLMLFormatMap[format] || unescapexml(format);\n\tif(fmt === \"General\") return SSF_general(value);\n\treturn SSF_format(fmt, value);\n}\n\nfunction xlml_set_custprop(Custprops, key, cp, val/*:string*/) {\n\tvar oval/*:any*/ = val;\n\tswitch((cp[0].match(/dt:dt=\"([\\w.]+)\"/)||[\"\",\"\"])[1]) {\n\t\tcase \"boolean\": oval = parsexmlbool(val); break;\n\t\tcase \"i2\": case \"int\": oval = parseInt(val, 10); break;\n\t\tcase \"r4\": case \"float\": oval = parseFloat(val); break;\n\t\tcase \"date\": case \"dateTime.tz\": oval = parseDate(val); break;\n\t\tcase \"i8\": case \"string\": case \"fixed\": case \"uuid\": case \"bin.base64\": break;\n\t\tdefault: throw new Error(\"bad custprop:\" + cp[0]);\n\t}\n\tCustprops[unescapexml(key)] = oval;\n}\n\nfunction safe_format_xlml(cell/*:Cell*/, nf, o) {\n\tif(cell.t === 'z') return;\n\tif(!o || o.cellText !== false) try {\n\t\tif(cell.t === 'e') { cell.w = cell.w || BErr[cell.v]; }\n\t\telse if(nf === \"General\") {\n\t\t\tif(cell.t === 'n') {\n\t\t\t\tif((cell.v|0) === cell.v) cell.w = cell.v.toString(10);\n\t\t\t\telse cell.w = SSF_general_num(cell.v);\n\t\t\t}\n\t\t\telse cell.w = SSF_general(cell.v);\n\t\t}\n\t\telse cell.w = xlml_format(nf||\"General\", cell.v);\n\t} catch(e) { if(o.WTF) throw e; }\n\ttry {\n\t\tvar z = XLMLFormatMap[nf]||nf||\"General\";\n\t\tif(o.cellNF) cell.z = z;\n\t\tif(o.cellDates && cell.t == 'n' && fmt_is_date(z)) {\n\t\t\tvar _d = SSF_parse_date_code(cell.v); if(_d) { cell.t = 'd'; cell.v = new Date(_d.y, _d.m-1,_d.d,_d.H,_d.M,_d.S,_d.u); }\n\t\t}\n\t} catch(e) { if(o.WTF) throw e; }\n}\n\nfunction process_style_xlml(styles, stag, opts) {\n\tif(opts.cellStyles) {\n\t\tif(stag.Interior) {\n\t\t\tvar I = stag.Interior;\n\t\t\tif(I.Pattern) I.patternType = XLMLPatternTypeMap[I.Pattern] || I.Pattern;\n\t\t}\n\t}\n\tstyles[stag.ID] = stag;\n}\n\n/* TODO: there must exist some form of OSP-blessed spec */\nfunction parse_xlml_data(xml, ss, data, cell/*:any*/, base, styles, csty, row, arrayf, o) {\n\tvar nf = \"General\", sid = cell.StyleID, S = {}; o = o || {};\n\tvar interiors = [];\n\tvar i = 0;\n\tif(sid === undefined && row) sid = row.StyleID;\n\tif(sid === undefined && csty) sid = csty.StyleID;\n\twhile(styles[sid] !== undefined) {\n\t\tif(styles[sid].nf) nf = styles[sid].nf;\n\t\tif(styles[sid].Interior) interiors.push(styles[sid].Interior);\n\t\tif(!styles[sid].Parent) break;\n\t\tsid = styles[sid].Parent;\n\t}\n\tswitch(data.Type) {\n\t\tcase 'Boolean':\n\t\t\tcell.t = 'b';\n\t\t\tcell.v = parsexmlbool(xml);\n\t\t\tbreak;\n\t\tcase 'String':\n\t\t\tcell.t = 's'; cell.r = xlml_fixstr(unescapexml(xml));\n\t\t\tcell.v = (xml.indexOf(\"<\") > -1 ? unescapexml(ss||xml).replace(/<.*?>/g, \"\") : cell.r); // todo: BR etc\n\t\t\tbreak;\n\t\tcase 'DateTime':\n\t\t\tif(xml.slice(-1) != \"Z\") xml += \"Z\";\n\t\t\tcell.v = (parseDate(xml) - new Date(Date.UTC(1899, 11, 30))) / (24 * 60 * 60 * 1000);\n\t\t\tif(cell.v !== cell.v) cell.v = unescapexml(xml);\n\t\t\telse if(cell.v<60) cell.v = cell.v -1;\n\t\t\tif(!nf || nf == \"General\") nf = \"yyyy-mm-dd\";\n\t\t\t/* falls through */\n\t\tcase 'Number':\n\t\t\tif(cell.v === undefined) cell.v=+xml;\n\t\t\tif(!cell.t) cell.t = 'n';\n\t\t\tbreak;\n\t\tcase 'Error': cell.t = 'e'; cell.v = RBErr[xml]; if(o.cellText !== false) cell.w = xml; break;\n\t\tdefault:\n\t\t\tif(xml == \"\" && ss == \"\") { cell.t = 'z'; }\n\t\t\telse { cell.t = 's'; cell.v = xlml_fixstr(ss||xml); }\n\t\t\tbreak;\n\t}\n\tsafe_format_xlml(cell, nf, o);\n\tif(o.cellFormula !== false) {\n\t\tif(cell.Formula) {\n\t\t\tvar fstr = unescapexml(cell.Formula);\n\t\t\t/* strictly speaking, the leading = is required but some writers omit */\n\t\t\tif(fstr.charCodeAt(0) == 61 /* = */) fstr = fstr.slice(1);\n\t\t\tcell.f = rc_to_a1(fstr, base);\n\t\t\tdelete cell.Formula;\n\t\t\tif(cell.ArrayRange == \"RC\") cell.F = rc_to_a1(\"RC:RC\", base);\n\t\t\telse if(cell.ArrayRange) {\n\t\t\t\tcell.F = rc_to_a1(cell.ArrayRange, base);\n\t\t\t\tarrayf.push([safe_decode_range(cell.F), cell.F]);\n\t\t\t}\n\t\t} else {\n\t\t\tfor(i = 0; i < arrayf.length; ++i)\n\t\t\t\tif(base.r >= arrayf[i][0].s.r && base.r <= arrayf[i][0].e.r)\n\t\t\t\t\tif(base.c >= arrayf[i][0].s.c && base.c <= arrayf[i][0].e.c)\n\t\t\t\t\t\tcell.F = arrayf[i][1];\n\t\t}\n\t}\n\tif(o.cellStyles) {\n\t\tinteriors.forEach(function(x) {\n\t\t\tif(!S.patternType && x.patternType) S.patternType = x.patternType;\n\t\t});\n\t\tcell.s = S;\n\t}\n\tif(cell.StyleID !== undefined) cell.ixfe = cell.StyleID;\n}\n\nfunction xlml_prefix_dname(dname) {\n\treturn XLSLblBuiltIn.indexOf(\"_xlnm.\" + dname) > -1 ? \"_xlnm.\" + dname : dname;\n}\n\nfunction xlml_clean_comment(comment/*:any*/) {\n\tcomment.t = comment.v || \"\";\n\tcomment.t = comment.t.replace(/\\r\\n/g,\"\\n\").replace(/\\r/g,\"\\n\");\n\tcomment.v = comment.w = comment.ixfe = undefined;\n}\n\n/* TODO: Everything */\nfunction parse_xlml_xml(d, _opts)/*:Workbook*/ {\n\tvar opts = _opts || {};\n\tmake_ssf();\n\tvar str = debom(xlml_normalize(d));\n\tif(opts.type == 'binary' || opts.type == 'array' || opts.type == 'base64') {\n\t\tif(typeof $cptable !== 'undefined') str = $cptable.utils.decode(65001, char_codes(str));\n\t\telse str = utf8read(str);\n\t}\n\tvar opening = str.slice(0, 1024).toLowerCase(), ishtml = false;\n\topening = opening.replace(/\".*?\"/g, \"\");\n\tif((opening.indexOf(\">\") & 1023) > Math.min((opening.indexOf(\",\") & 1023), (opening.indexOf(\";\")&1023))) { var _o = dup(opts); _o.type = \"string\"; return PRN.to_workbook(str, _o); }\n\tif(opening.indexOf(\"<?xml\") == -1) [\"html\", \"table\", \"head\", \"meta\", \"script\", \"style\", \"div\"].forEach(function(tag) { if(opening.indexOf(\"<\" + tag) >= 0) ishtml = true; });\n\tif(ishtml) return html_to_workbook(str, opts);\n\n\tXLMLFormatMap = ({\n\t\t\"General Number\": \"General\",\n\t\t\"General Date\": table_fmt[22],\n\t\t\"Long Date\": \"dddd, mmmm dd, yyyy\",\n\t\t\"Medium Date\": table_fmt[15],\n\t\t\"Short Date\": table_fmt[14],\n\t\t\"Long Time\": table_fmt[19],\n\t\t\"Medium Time\": table_fmt[18],\n\t\t\"Short Time\": table_fmt[20],\n\t\t\"Currency\": '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)',\n\t\t\"Fixed\": table_fmt[2],\n\t\t\"Standard\": table_fmt[4],\n\t\t\"Percent\": table_fmt[10],\n\t\t\"Scientific\": table_fmt[11],\n\t\t\"Yes/No\": '\"Yes\";\"Yes\";\"No\";@',\n\t\t\"True/False\": '\"True\";\"True\";\"False\";@',\n\t\t\"On/Off\": '\"Yes\";\"Yes\";\"No\";@'\n\t}/*:any*/);\n\n\n\tvar Rn;\n\tvar state = [], tmp;\n\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\tvar sheets = {}, sheetnames/*:Array<string>*/ = [], cursheet/*:Worksheet*/ = ({}), sheetname = \"\"; if(opts.dense) cursheet[\"!data\"] = [];\n\tvar cell = ({}/*:any*/), row = {};// eslint-disable-line no-unused-vars\n\tvar dtag = xlml_parsexmltag('<Data ss:Type=\"String\">'), didx = 0;\n\tvar c = 0, r = 0;\n\tvar refguess/*:Range*/ = {s: {r:2000000, c:2000000}, e: {r:0, c:0} };\n\tvar styles = {}, stag = {};\n\tvar ss = \"\", fidx = 0;\n\tvar merges/*:Array<Range>*/ = [];\n\tvar Props = {}, Custprops = {}, pidx = 0, cp = [];\n\tvar comments/*:Array<Comment>*/ = [], comment/*:Comment*/ = ({}/*:any*/);\n\tvar cstys = [], csty, seencol = false;\n\tvar arrayf/*:Array<[Range, string]>*/ = [];\n\tvar rowinfo/*:Array<RowInfo>*/ = [], rowobj = {}, cc = 0, rr = 0;\n\tvar Workbook/*:WBWBProps*/ = ({ Sheets:[], WBProps:{date1904:false} }/*:any*/), wsprops = {};\n\txlmlregex.lastIndex = 0;\n\tstr = str.replace(/<!--([\\s\\S]*?)-->/mg,\"\");\n\tvar raw_Rn3 = \"\";\n\twhile((Rn = xlmlregex.exec(str))) switch((Rn[3] = (raw_Rn3 = Rn[3]).toLowerCase())) {\n\t\tcase 'data' /*case 'Data'*/:\n\t\t\tif(raw_Rn3 == \"data\") {\n\t\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif(state[state.length-1][1]) break;\n\t\t\tif(Rn[1]==='/') parse_xlml_data(str.slice(didx, Rn.index), ss, dtag, state[state.length-1][0]==/*\"Comment\"*/\"comment\"?comment:cell, {c:c,r:r}, styles, cstys[c], row, arrayf, opts);\n\t\t\telse { ss = \"\"; dtag = xlml_parsexmltag(Rn[0]); didx = Rn.index + Rn[0].length; }\n\t\t\tbreak;\n\t\tcase 'cell' /*case 'Cell'*/:\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif(comments.length > 0) cell.c = comments;\n\t\t\t\tif((!opts.sheetRows || opts.sheetRows > r) && cell.v !== void 0) {\n\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\tif(!cursheet[\"!data\"][r]) cursheet[\"!data\"][r] = [];\n\t\t\t\t\t\tcursheet[\"!data\"][r][c] = cell;\n\t\t\t\t\t} else cursheet[encode_col(c) + encode_row(r)] = cell;\n\t\t\t\t}\n\t\t\t\tif(cell.HRef) {\n\t\t\t\t\tcell.l = ({Target:unescapexml(cell.HRef)}/*:any*/);\n\t\t\t\t\tif(cell.HRefScreenTip) cell.l.Tooltip = cell.HRefScreenTip;\n\t\t\t\t\tdelete cell.HRef; delete cell.HRefScreenTip;\n\t\t\t\t}\n\t\t\t\tif(cell.MergeAcross || cell.MergeDown) {\n\t\t\t\t\tcc = c + (parseInt(cell.MergeAcross,10)|0);\n\t\t\t\t\trr = r + (parseInt(cell.MergeDown,10)|0);\n\t\t\t\t\tif(cc > c || rr > r) merges.push({s:{c:c,r:r},e:{c:cc,r:rr}});\n\t\t\t\t}\n\t\t\t\tif(!opts.sheetStubs) { if(cell.MergeAcross) c = cc + 1; else ++c; }\n\t\t\t\telse if(cell.MergeAcross || cell.MergeDown) {\n\t\t\t\t\t/*:: if(!cc) cc = 0; if(!rr) rr = 0; */\n\t\t\t\t\tfor(var cma = c; cma <= cc; ++cma) {\n\t\t\t\t\t\tfor(var cmd = r; cmd <= rr; ++cmd) {\n\t\t\t\t\t\t\tif(cma > c || cmd > r) {\n\t\t\t\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\t\t\t\tif(!cursheet[\"!data\"][cmd]) cursheet[\"!data\"][cmd] = [];\n\t\t\t\t\t\t\t\t\tcursheet[\"!data\"][cmd][cma] = {t:'z'};\n\t\t\t\t\t\t\t\t} else cursheet[encode_col(cma) + encode_row(cmd)] = {t:'z'};\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tc = cc + 1;\n\t\t\t\t}\n\t\t\t\telse ++c;\n\t\t\t} else {\n\t\t\t\tcell = xlml_parsexmltagobj(Rn[0]);\n\t\t\t\tif(cell.Index) c = +cell.Index - 1;\n\t\t\t\tif(c < refguess.s.c) refguess.s.c = c;\n\t\t\t\tif(c > refguess.e.c) refguess.e.c = c;\n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") ++c;\n\t\t\t\tcomments = [];\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 'row' /*case 'Row'*/:\n\t\t\tif(Rn[1]==='/' || Rn[0].slice(-2) === \"/>\") {\n\t\t\t\tif(r < refguess.s.r) refguess.s.r = r;\n\t\t\t\tif(r > refguess.e.r) refguess.e.r = r;\n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") {\n\t\t\t\t\trow = xlml_parsexmltag(Rn[0]);\n\t\t\t\t\tif(row.Index) r = +row.Index - 1;\n\t\t\t\t}\n\t\t\t\tc = 0; ++r;\n\t\t\t} else {\n\t\t\t\trow = xlml_parsexmltag(Rn[0]);\n\t\t\t\tif(row.Index) r = +row.Index - 1;\n\t\t\t\trowobj = {};\n\t\t\t\tif(row.AutoFitHeight == \"0\" || row.Height) {\n\t\t\t\t\trowobj.hpx = parseInt(row.Height, 10); rowobj.hpt = px2pt(rowobj.hpx);\n\t\t\t\t\trowinfo[r] = rowobj;\n\t\t\t\t}\n\t\t\t\tif(row.Hidden == \"1\") { rowobj.hidden = true; rowinfo[r] = rowobj; }\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 'worksheet' /*case 'Worksheet'*/: /* TODO: read range from FullRows/FullColumns */\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));\n\t\t\t\tsheetnames.push(sheetname);\n\t\t\t\tif(refguess.s.r <= refguess.e.r && refguess.s.c <= refguess.e.c) {\n\t\t\t\t\tcursheet[\"!ref\"] = encode_range(refguess);\n\t\t\t\t\tif(opts.sheetRows && opts.sheetRows <= refguess.e.r) {\n\t\t\t\t\t\tcursheet[\"!fullref\"] = cursheet[\"!ref\"];\n\t\t\t\t\t\trefguess.e.r = opts.sheetRows - 1;\n\t\t\t\t\t\tcursheet[\"!ref\"] = encode_range(refguess);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(merges.length) cursheet[\"!merges\"] = merges;\n\t\t\t\tif(cstys.length > 0) cursheet[\"!cols\"] = cstys;\n\t\t\t\tif(rowinfo.length > 0) cursheet[\"!rows\"] = rowinfo;\n\t\t\t\tsheets[sheetname] = cursheet;\n\t\t\t} else {\n\t\t\t\trefguess = {s: {r:2000000, c:2000000}, e: {r:0, c:0} };\n\t\t\t\tr = c = 0;\n\t\t\t\tstate.push([Rn[3], false]);\n\t\t\t\ttmp = xlml_parsexmltag(Rn[0]);\n\t\t\t\tsheetname = unescapexml(tmp.Name);\n\t\t\t\tcursheet = ({}); if(opts.dense) cursheet[\"!data\"] = [];\n\t\t\t\tmerges = [];\n\t\t\t\tarrayf = [];\n\t\t\t\trowinfo = [];\n\t\t\t\twsprops = {name:sheetname, Hidden:0};\n\t\t\t\tWorkbook.Sheets.push(wsprops);\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 'table' /*case 'Table'*/:\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\telse if(Rn[0].slice(-2) == \"/>\") break;\n\t\t\telse {\n\t\t\t\tstate.push([Rn[3], false]);\n\t\t\t\tcstys = []; seencol = false;\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'style' /*case 'Style'*/:\n\t\t\tif(Rn[1]==='/') process_style_xlml(styles, stag, opts);\n\t\t\telse stag = xlml_parsexmltag(Rn[0]);\n\t\t\tbreak;\n\n\t\tcase 'numberformat' /*case 'NumberFormat'*/:\n\t\t\tstag.nf = unescapexml(xlml_parsexmltag(Rn[0]).Format || \"General\");\n\t\t\tif(XLMLFormatMap[stag.nf]) stag.nf = XLMLFormatMap[stag.nf];\n\t\t\tfor(var ssfidx = 0; ssfidx != 0x188; ++ssfidx) if(table_fmt[ssfidx] == stag.nf) break;\n\t\t\tif(ssfidx == 0x188) for(ssfidx = 0x39; ssfidx != 0x188; ++ssfidx) if(table_fmt[ssfidx] == null) { SSF__load(stag.nf, ssfidx); break; }\n\t\t\tbreak;\n\n\t\tcase 'column' /*case 'Column'*/:\n\t\t\tif(state[state.length-1][0] !== /*'Table'*/'table') break;\n\t\t\tif(Rn[1]==='/') break;\n\t\t\tcsty = xlml_parsexmltag(Rn[0]);\n\t\t\tif(csty.Hidden) { csty.hidden = true; delete csty.Hidden; }\n\t\t\tif(csty.Width) csty.wpx = parseInt(csty.Width, 10);\n\t\t\tif(!seencol && csty.wpx > 10) {\n\t\t\t\tseencol = true; MDW = DEF_MDW; //find_mdw_wpx(csty.wpx);\n\t\t\t\tfor(var _col = 0; _col < cstys.length; ++_col) if(cstys[_col]) process_col(cstys[_col]);\n\t\t\t}\n\t\t\tif(seencol) process_col(csty);\n\t\t\tcstys[(csty.Index-1||cstys.length)] = csty;\n\t\t\tfor(var i = 0; i < +csty.Span; ++i) cstys[cstys.length] = dup(csty);\n\t\t\tbreak;\n\n\t\tcase 'namedrange' /*case 'NamedRange'*/:\n\t\t\tif(Rn[1]==='/') break;\n\t\t\tif(!Workbook.Names) Workbook.Names = [];\n\t\t\tvar _NamedRange = parsexmltag(Rn[0]);\n\t\t\tvar _DefinedName/*:DefinedName*/ = ({\n\t\t\t\tName: xlml_prefix_dname(_NamedRange.Name),\n\t\t\t\tRef: rc_to_a1(_NamedRange.RefersTo.slice(1), {r:0, c:0})\n\t\t\t}/*:any*/);\n\t\t\tif(Workbook.Sheets.length>0) _DefinedName.Sheet=Workbook.Sheets.length-1;\n\t\t\t/*:: if(Workbook.Names) */Workbook.Names.push(_DefinedName);\n\t\t\tbreak;\n\n\t\tcase 'namedcell' /*case 'NamedCell'*/: break;\n\t\tcase 'b' /*case 'B'*/: break;\n\t\tcase 'i' /*case 'I'*/: break;\n\t\tcase 'u' /*case 'U'*/: break;\n\t\tcase 's' /*case 'S'*/: break;\n\t\tcase 'em' /*case 'EM'*/: break;\n\t\tcase 'h2' /*case 'H2'*/: break;\n\t\tcase 'h3' /*case 'H3'*/: break;\n\t\tcase 'sub' /*case 'Sub'*/: break;\n\t\tcase 'sup' /*case 'Sup'*/: break;\n\t\tcase 'span' /*case 'Span'*/: break;\n\t\tcase 'alignment' /*case 'Alignment'*/:\n\t\t\tbreak;\n\t\tcase 'borders' /*case 'Borders'*/: break;\n\t\tcase 'border' /*case 'Border'*/: break;\n\t\tcase 'font' /*case 'Font'*/:\n\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\telse if(Rn[1]===\"/\") ss += str.slice(fidx, Rn.index);\n\t\t\telse fidx = Rn.index + Rn[0].length;\n\t\t\tbreak;\n\t\tcase 'interior' /*case 'Interior'*/:\n\t\t\tif(!opts.cellStyles) break;\n\t\t\tstag.Interior = xlml_parsexmltag(Rn[0]);\n\t\t\tbreak;\n\t\tcase 'protection' /*case 'Protection'*/: break;\n\n\t\tcase 'author' /*case 'Author'*/:\n\t\tcase 'title' /*case 'Title'*/:\n\t\tcase 'description' /*case 'Description'*/:\n\t\tcase 'created' /*case 'Created'*/:\n\t\tcase 'keywords' /*case 'Keywords'*/:\n\t\tcase 'subject' /*case 'Subject'*/:\n\t\tcase 'category' /*case 'Category'*/:\n\t\tcase 'company' /*case 'Company'*/:\n\t\tcase 'lastauthor' /*case 'LastAuthor'*/:\n\t\tcase 'lastsaved' /*case 'LastSaved'*/:\n\t\tcase 'lastprinted' /*case 'LastPrinted'*/:\n\t\tcase 'version' /*case 'Version'*/:\n\t\tcase 'revision' /*case 'Revision'*/:\n\t\tcase 'totaltime' /*case 'TotalTime'*/:\n\t\tcase 'hyperlinkbase' /*case 'HyperlinkBase'*/:\n\t\tcase 'manager' /*case 'Manager'*/:\n\t\tcase 'contentstatus' /*case 'ContentStatus'*/:\n\t\tcase 'identifier' /*case 'Identifier'*/:\n\t\tcase 'language' /*case 'Language'*/:\n\t\tcase 'appname' /*case 'AppName'*/:\n\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\telse if(Rn[1]===\"/\") xlml_set_prop(Props, raw_Rn3, str.slice(pidx, Rn.index));\n\t\t\telse pidx = Rn.index + Rn[0].length;\n\t\t\tbreak;\n\t\tcase 'paragraphs' /*case 'Paragraphs'*/: break;\n\n\t\tcase 'styles' /*case 'Styles'*/:\n\t\tcase 'workbook' /*case 'Workbook'*/:\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\telse state.push([Rn[3], false]);\n\t\t\tbreak;\n\n\t\tcase 'comment' /*case 'Comment'*/:\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));\n\t\t\t\txlml_clean_comment(comment);\n\t\t\t\tcomments.push(comment);\n\t\t\t} else {\n\t\t\t\tstate.push([Rn[3], false]);\n\t\t\t\ttmp = xlml_parsexmltag(Rn[0]);\n\t\t\t\tcomment = ({a:tmp.Author}/*:any*/);\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'autofilter' /*case 'AutoFilter'*/:\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\tvar AutoFilter = xlml_parsexmltag(Rn[0]);\n\t\t\t\tcursheet['!autofilter'] = { ref:rc_to_a1(AutoFilter.Range).replace(/\\$/g,\"\") };\n\t\t\t\tstate.push([Rn[3], true]);\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'name' /*case 'Name'*/: break;\n\n\t\tcase 'datavalidation' /*case 'DataValidation'*/:\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));\n\t\t\t} else {\n\t\t\t\tif(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'pixelsperinch' /*case 'PixelsPerInch'*/:\n\t\t\tbreak;\n\t\tcase 'componentoptions' /*case 'ComponentOptions'*/:\n\t\tcase 'documentproperties' /*case 'DocumentProperties'*/:\n\t\tcase 'customdocumentproperties' /*case 'CustomDocumentProperties'*/:\n\t\tcase 'officedocumentsettings' /*case 'OfficeDocumentSettings'*/:\n\t\tcase 'pivottable' /*case 'PivotTable'*/:\n\t\tcase 'pivotcache' /*case 'PivotCache'*/:\n\t\tcase 'names' /*case 'Names'*/:\n\t\tcase 'mapinfo' /*case 'MapInfo'*/:\n\t\tcase 'pagebreaks' /*case 'PageBreaks'*/:\n\t\tcase 'querytable' /*case 'QueryTable'*/:\n\t\tcase 'sorting' /*case 'Sorting'*/:\n\t\tcase 'schema' /*case 'Schema'*/: //case 'data' /*case 'data'*/:\n\t\tcase 'conditionalformatting' /*case 'ConditionalFormatting'*/:\n\t\tcase 'smarttagtype' /*case 'SmartTagType'*/:\n\t\tcase 'smarttags' /*case 'SmartTags'*/:\n\t\tcase 'excelworkbook' /*case 'ExcelWorkbook'*/:\n\t\tcase 'workbookoptions' /*case 'WorkbookOptions'*/:\n\t\tcase 'worksheetoptions' /*case 'WorksheetOptions'*/:\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw new Error(\"Bad state: \"+tmp.join(\"|\"));}\n\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\tbreak;\n\n\t\tcase 'null' /*case 'Null'*/: break;\n\n\t\tdefault:\n\t\t\t/* FODS file root is <office:document> */\n\t\t\tif(state.length == 0 && Rn[3] == \"document\") return parse_fods(str, opts);\n\t\t\t/* UOS file root is <uof:UOF> */\n\t\t\tif(state.length == 0 && Rn[3] == \"uof\"/*\"UOF\"*/) return parse_fods(str, opts);\n\n\t\t\tvar seen = true;\n\t\t\tswitch(state[state.length-1][0]) {\n\t\t\t\t/* OfficeDocumentSettings */\n\t\t\t\tcase 'officedocumentsettings' /*case 'OfficeDocumentSettings'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'allowpng' /*case 'AllowPNG'*/: break;\n\t\t\t\t\tcase 'removepersonalinformation' /*case 'RemovePersonalInformation'*/: break;\n\t\t\t\t\tcase 'downloadcomponents' /*case 'DownloadComponents'*/: break;\n\t\t\t\t\tcase 'locationofcomponents' /*case 'LocationOfComponents'*/: break;\n\t\t\t\t\tcase 'colors' /*case 'Colors'*/: break;\n\t\t\t\t\tcase 'color' /*case 'Color'*/: break;\n\t\t\t\t\tcase 'index' /*case 'Index'*/: break;\n\t\t\t\t\tcase 'rgb' /*case 'RGB'*/: break;\n\t\t\t\t\tcase 'targetscreensize' /*case 'TargetScreenSize'*/: break;\n\t\t\t\t\tcase 'readonlyrecommended' /*case 'ReadOnlyRecommended'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* ComponentOptions */\n\t\t\t\tcase 'componentoptions' /*case 'ComponentOptions'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'toolbar' /*case 'Toolbar'*/: break;\n\t\t\t\t\tcase 'hideofficelogo' /*case 'HideOfficeLogo'*/: break;\n\t\t\t\t\tcase 'spreadsheetautofit' /*case 'SpreadsheetAutoFit'*/: break;\n\t\t\t\t\tcase 'label' /*case 'Label'*/: break;\n\t\t\t\t\tcase 'caption' /*case 'Caption'*/: break;\n\t\t\t\t\tcase 'maxheight' /*case 'MaxHeight'*/: break;\n\t\t\t\t\tcase 'maxwidth' /*case 'MaxWidth'*/: break;\n\t\t\t\t\tcase 'nextsheetnumber' /*case 'NextSheetNumber'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* ExcelWorkbook */\n\t\t\t\tcase 'excelworkbook' /*case 'ExcelWorkbook'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'date1904' /*case 'Date1904'*/:\n\t\t\t\t\t\t/*:: if(!Workbook.WBProps) Workbook.WBProps = {}; */\n\t\t\t\t\t\tWorkbook.WBProps.date1904 = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'windowheight' /*case 'WindowHeight'*/: break;\n\t\t\t\t\tcase 'windowwidth' /*case 'WindowWidth'*/: break;\n\t\t\t\t\tcase 'windowtopx' /*case 'WindowTopX'*/: break;\n\t\t\t\t\tcase 'windowtopy' /*case 'WindowTopY'*/: break;\n\t\t\t\t\tcase 'tabratio' /*case 'TabRatio'*/: break;\n\t\t\t\t\tcase 'protectstructure' /*case 'ProtectStructure'*/: break;\n\t\t\t\t\tcase 'protectwindow' /*case 'ProtectWindow'*/: break;\n\t\t\t\t\tcase 'protectwindows' /*case 'ProtectWindows'*/: break;\n\t\t\t\t\tcase 'activesheet' /*case 'ActiveSheet'*/: break;\n\t\t\t\t\tcase 'displayinknotes' /*case 'DisplayInkNotes'*/: break;\n\t\t\t\t\tcase 'firstvisiblesheet' /*case 'FirstVisibleSheet'*/: break;\n\t\t\t\t\tcase 'supbook' /*case 'SupBook'*/: break;\n\t\t\t\t\tcase 'sheetname' /*case 'SheetName'*/: break;\n\t\t\t\t\tcase 'sheetindex' /*case 'SheetIndex'*/: break;\n\t\t\t\t\tcase 'sheetindexfirst' /*case 'SheetIndexFirst'*/: break;\n\t\t\t\t\tcase 'sheetindexlast' /*case 'SheetIndexLast'*/: break;\n\t\t\t\t\tcase 'dll' /*case 'Dll'*/: break;\n\t\t\t\t\tcase 'acceptlabelsinformulas' /*case 'AcceptLabelsInFormulas'*/: break;\n\t\t\t\t\tcase 'donotsavelinkvalues' /*case 'DoNotSaveLinkValues'*/: break;\n\t\t\t\t\tcase 'iteration' /*case 'Iteration'*/: break;\n\t\t\t\t\tcase 'maxiterations' /*case 'MaxIterations'*/: break;\n\t\t\t\t\tcase 'maxchange' /*case 'MaxChange'*/: break;\n\t\t\t\t\tcase 'path' /*case 'Path'*/: break;\n\t\t\t\t\tcase 'xct' /*case 'Xct'*/: break;\n\t\t\t\t\tcase 'count' /*case 'Count'*/: break;\n\t\t\t\t\tcase 'selectedsheets' /*case 'SelectedSheets'*/: break;\n\t\t\t\t\tcase 'calculation' /*case 'Calculation'*/: break;\n\t\t\t\t\tcase 'uncalced' /*case 'Uncalced'*/: break;\n\t\t\t\t\tcase 'startupprompt' /*case 'StartupPrompt'*/: break;\n\t\t\t\t\tcase 'crn' /*case 'Crn'*/: break;\n\t\t\t\t\tcase 'externname' /*case 'ExternName'*/: break;\n\t\t\t\t\tcase 'formula' /*case 'Formula'*/: break;\n\t\t\t\t\tcase 'colfirst' /*case 'ColFirst'*/: break;\n\t\t\t\t\tcase 'collast' /*case 'ColLast'*/: break;\n\t\t\t\t\tcase 'wantadvise' /*case 'WantAdvise'*/: break;\n\t\t\t\t\tcase 'boolean' /*case 'Boolean'*/: break;\n\t\t\t\t\tcase 'error' /*case 'Error'*/: break;\n\t\t\t\t\tcase 'text' /*case 'Text'*/: break;\n\t\t\t\t\tcase 'ole' /*case 'OLE'*/: break;\n\t\t\t\t\tcase 'noautorecover' /*case 'NoAutoRecover'*/: break;\n\t\t\t\t\tcase 'publishobjects' /*case 'PublishObjects'*/: break;\n\t\t\t\t\tcase 'donotcalculatebeforesave' /*case 'DoNotCalculateBeforeSave'*/: break;\n\t\t\t\t\tcase 'number' /*case 'Number'*/: break;\n\t\t\t\t\tcase 'refmoder1c1' /*case 'RefModeR1C1'*/: break;\n\t\t\t\t\tcase 'embedsavesmarttags' /*case 'EmbedSaveSmartTags'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* WorkbookOptions */\n\t\t\t\tcase 'workbookoptions' /*case 'WorkbookOptions'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'owcversion' /*case 'OWCVersion'*/: break;\n\t\t\t\t\tcase 'height' /*case 'Height'*/: break;\n\t\t\t\t\tcase 'width' /*case 'Width'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* WorksheetOptions */\n\t\t\t\tcase 'worksheetoptions' /*case 'WorksheetOptions'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'visible' /*case 'Visible'*/:\n\t\t\t\t\t\tif(Rn[0].slice(-2) === \"/>\"){/* empty */}\n\t\t\t\t\t\telse if(Rn[1]===\"/\") switch(str.slice(pidx, Rn.index)) {\n\t\t\t\t\t\t\tcase \"SheetHidden\": wsprops.Hidden = 1; break;\n\t\t\t\t\t\t\tcase \"SheetVeryHidden\": wsprops.Hidden = 2; break;\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse pidx = Rn.index + Rn[0].length;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'header' /*case 'Header'*/:\n\t\t\t\t\t\tif(!cursheet['!margins']) default_margins(cursheet['!margins']={}, 'xlml');\n\t\t\t\t\t\tif(!isNaN(+parsexmltag(Rn[0]).Margin)) cursheet['!margins'].header = +parsexmltag(Rn[0]).Margin;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'footer' /*case 'Footer'*/:\n\t\t\t\t\t\tif(!cursheet['!margins']) default_margins(cursheet['!margins']={}, 'xlml');\n\t\t\t\t\t\tif(!isNaN(+parsexmltag(Rn[0]).Margin)) cursheet['!margins'].footer = +parsexmltag(Rn[0]).Margin;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'pagemargins' /*case 'PageMargins'*/:\n\t\t\t\t\t\tvar pagemargins = parsexmltag(Rn[0]);\n\t\t\t\t\t\tif(!cursheet['!margins']) default_margins(cursheet['!margins']={},'xlml');\n\t\t\t\t\t\tif(!isNaN(+pagemargins.Top)) cursheet['!margins'].top = +pagemargins.Top;\n\t\t\t\t\t\tif(!isNaN(+pagemargins.Left)) cursheet['!margins'].left = +pagemargins.Left;\n\t\t\t\t\t\tif(!isNaN(+pagemargins.Right)) cursheet['!margins'].right = +pagemargins.Right;\n\t\t\t\t\t\tif(!isNaN(+pagemargins.Bottom)) cursheet['!margins'].bottom = +pagemargins.Bottom;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'displayrighttoleft' /*case 'DisplayRightToLeft'*/:\n\t\t\t\t\t\tif(!Workbook.Views) Workbook.Views = [];\n\t\t\t\t\t\tif(!Workbook.Views[0]) Workbook.Views[0] = {};\n\t\t\t\t\t\tWorkbook.Views[0].RTL = true;\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'freezepanes' /*case 'FreezePanes'*/: break;\n\t\t\t\t\tcase 'frozennosplit' /*case 'FrozenNoSplit'*/: break;\n\n\t\t\t\t\tcase 'splithorizontal' /*case 'SplitHorizontal'*/:\n\t\t\t\t\tcase 'splitvertical' /*case 'SplitVertical'*/:\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'donotdisplaygridlines' /*case 'DoNotDisplayGridlines'*/:\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'activerow' /*case 'ActiveRow'*/: break;\n\t\t\t\t\tcase 'activecol' /*case 'ActiveCol'*/: break;\n\t\t\t\t\tcase 'toprowbottompane' /*case 'TopRowBottomPane'*/: break;\n\t\t\t\t\tcase 'leftcolumnrightpane' /*case 'LeftColumnRightPane'*/: break;\n\n\t\t\t\t\tcase 'unsynced' /*case 'Unsynced'*/: break;\n\t\t\t\t\tcase 'print' /*case 'Print'*/: break;\n\t\t\t\t\tcase 'printerrors' /*case 'PrintErrors'*/: break;\n\t\t\t\t\tcase 'panes' /*case 'Panes'*/: break;\n\t\t\t\t\tcase 'scale' /*case 'Scale'*/: break;\n\t\t\t\t\tcase 'pane' /*case 'Pane'*/: break;\n\t\t\t\t\tcase 'number' /*case 'Number'*/: break;\n\t\t\t\t\tcase 'layout' /*case 'Layout'*/: break;\n\t\t\t\t\tcase 'pagesetup' /*case 'PageSetup'*/: break;\n\t\t\t\t\tcase 'selected' /*case 'Selected'*/: break;\n\t\t\t\t\tcase 'protectobjects' /*case 'ProtectObjects'*/: break;\n\t\t\t\t\tcase 'enableselection' /*case 'EnableSelection'*/: break;\n\t\t\t\t\tcase 'protectscenarios' /*case 'ProtectScenarios'*/: break;\n\t\t\t\t\tcase 'validprinterinfo' /*case 'ValidPrinterInfo'*/: break;\n\t\t\t\t\tcase 'horizontalresolution' /*case 'HorizontalResolution'*/: break;\n\t\t\t\t\tcase 'verticalresolution' /*case 'VerticalResolution'*/: break;\n\t\t\t\t\tcase 'numberofcopies' /*case 'NumberofCopies'*/: break;\n\t\t\t\t\tcase 'activepane' /*case 'ActivePane'*/: break;\n\t\t\t\t\tcase 'toprowvisible' /*case 'TopRowVisible'*/: break;\n\t\t\t\t\tcase 'leftcolumnvisible' /*case 'LeftColumnVisible'*/: break;\n\t\t\t\t\tcase 'fittopage' /*case 'FitToPage'*/: break;\n\t\t\t\t\tcase 'rangeselection' /*case 'RangeSelection'*/: break;\n\t\t\t\t\tcase 'papersizeindex' /*case 'PaperSizeIndex'*/: break;\n\t\t\t\t\tcase 'pagelayoutzoom' /*case 'PageLayoutZoom'*/: break;\n\t\t\t\t\tcase 'pagebreakzoom' /*case 'PageBreakZoom'*/: break;\n\t\t\t\t\tcase 'filteron' /*case 'FilterOn'*/: break;\n\t\t\t\t\tcase 'fitwidth' /*case 'FitWidth'*/: break;\n\t\t\t\t\tcase 'fitheight' /*case 'FitHeight'*/: break;\n\t\t\t\t\tcase 'commentslayout' /*case 'CommentsLayout'*/: break;\n\t\t\t\t\tcase 'zoom' /*case 'Zoom'*/: break;\n\t\t\t\t\tcase 'lefttoright' /*case 'LeftToRight'*/: break;\n\t\t\t\t\tcase 'gridlines' /*case 'Gridlines'*/: break;\n\t\t\t\t\tcase 'allowsort' /*case 'AllowSort'*/: break;\n\t\t\t\t\tcase 'allowfilter' /*case 'AllowFilter'*/: break;\n\t\t\t\t\tcase 'allowinsertrows' /*case 'AllowInsertRows'*/: break;\n\t\t\t\t\tcase 'allowdeleterows' /*case 'AllowDeleteRows'*/: break;\n\t\t\t\t\tcase 'allowinsertcols' /*case 'AllowInsertCols'*/: break;\n\t\t\t\t\tcase 'allowdeletecols' /*case 'AllowDeleteCols'*/: break;\n\t\t\t\t\tcase 'allowinserthyperlinks' /*case 'AllowInsertHyperlinks'*/: break;\n\t\t\t\t\tcase 'allowformatcells' /*case 'AllowFormatCells'*/: break;\n\t\t\t\t\tcase 'allowsizecols' /*case 'AllowSizeCols'*/: break;\n\t\t\t\t\tcase 'allowsizerows' /*case 'AllowSizeRows'*/: break;\n\t\t\t\t\tcase 'nosummaryrowsbelowdetail' /*case 'NoSummaryRowsBelowDetail'*/:\n\t\t\t\t\t\tif(!cursheet[\"!outline\"]) cursheet[\"!outline\"] = {};\n\t\t\t\t\t\tcursheet[\"!outline\"].above = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'tabcolorindex' /*case 'TabColorIndex'*/: break;\n\t\t\t\t\tcase 'donotdisplayheadings' /*case 'DoNotDisplayHeadings'*/: break;\n\t\t\t\t\tcase 'showpagelayoutzoom' /*case 'ShowPageLayoutZoom'*/: break;\n\t\t\t\t\tcase 'nosummarycolumnsrightdetail' /*case 'NoSummaryColumnsRightDetail'*/:\n\t\t\t\t\t\tif(!cursheet[\"!outline\"]) cursheet[\"!outline\"] = {};\n\t\t\t\t\t\tcursheet[\"!outline\"].left = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'blackandwhite' /*case 'BlackAndWhite'*/: break;\n\t\t\t\t\tcase 'donotdisplayzeros' /*case 'DoNotDisplayZeros'*/: break;\n\t\t\t\t\tcase 'displaypagebreak' /*case 'DisplayPageBreak'*/: break;\n\t\t\t\t\tcase 'rowcolheadings' /*case 'RowColHeadings'*/: break;\n\t\t\t\t\tcase 'donotdisplayoutline' /*case 'DoNotDisplayOutline'*/: break;\n\t\t\t\t\tcase 'noorientation' /*case 'NoOrientation'*/: break;\n\t\t\t\t\tcase 'allowusepivottables' /*case 'AllowUsePivotTables'*/: break;\n\t\t\t\t\tcase 'zeroheight' /*case 'ZeroHeight'*/: break;\n\t\t\t\t\tcase 'viewablerange' /*case 'ViewableRange'*/: break;\n\t\t\t\t\tcase 'selection' /*case 'Selection'*/: break;\n\t\t\t\t\tcase 'protectcontents' /*case 'ProtectContents'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* PivotTable */\n\t\t\t\tcase 'pivottable' /*case 'PivotTable'*/: case 'pivotcache' /*case 'PivotCache'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'immediateitemsondrop' /*case 'ImmediateItemsOnDrop'*/: break;\n\t\t\t\t\tcase 'showpagemultipleitemlabel' /*case 'ShowPageMultipleItemLabel'*/: break;\n\t\t\t\t\tcase 'compactrowindent' /*case 'CompactRowIndent'*/: break;\n\t\t\t\t\tcase 'location' /*case 'Location'*/: break;\n\t\t\t\t\tcase 'pivotfield' /*case 'PivotField'*/: break;\n\t\t\t\t\tcase 'orientation' /*case 'Orientation'*/: break;\n\t\t\t\t\tcase 'layoutform' /*case 'LayoutForm'*/: break;\n\t\t\t\t\tcase 'layoutsubtotallocation' /*case 'LayoutSubtotalLocation'*/: break;\n\t\t\t\t\tcase 'layoutcompactrow' /*case 'LayoutCompactRow'*/: break;\n\t\t\t\t\tcase 'position' /*case 'Position'*/: break;\n\t\t\t\t\tcase 'pivotitem' /*case 'PivotItem'*/: break;\n\t\t\t\t\tcase 'datatype' /*case 'DataType'*/: break;\n\t\t\t\t\tcase 'datafield' /*case 'DataField'*/: break;\n\t\t\t\t\tcase 'sourcename' /*case 'SourceName'*/: break;\n\t\t\t\t\tcase 'parentfield' /*case 'ParentField'*/: break;\n\t\t\t\t\tcase 'ptlineitems' /*case 'PTLineItems'*/: break;\n\t\t\t\t\tcase 'ptlineitem' /*case 'PTLineItem'*/: break;\n\t\t\t\t\tcase 'countofsameitems' /*case 'CountOfSameItems'*/: break;\n\t\t\t\t\tcase 'item' /*case 'Item'*/: break;\n\t\t\t\t\tcase 'itemtype' /*case 'ItemType'*/: break;\n\t\t\t\t\tcase 'ptsource' /*case 'PTSource'*/: break;\n\t\t\t\t\tcase 'cacheindex' /*case 'CacheIndex'*/: break;\n\t\t\t\t\tcase 'consolidationreference' /*case 'ConsolidationReference'*/: break;\n\t\t\t\t\tcase 'filename' /*case 'FileName'*/: break;\n\t\t\t\t\tcase 'reference' /*case 'Reference'*/: break;\n\t\t\t\t\tcase 'nocolumngrand' /*case 'NoColumnGrand'*/: break;\n\t\t\t\t\tcase 'norowgrand' /*case 'NoRowGrand'*/: break;\n\t\t\t\t\tcase 'blanklineafteritems' /*case 'BlankLineAfterItems'*/: break;\n\t\t\t\t\tcase 'hidden' /*case 'Hidden'*/: break;\n\t\t\t\t\tcase 'subtotal' /*case 'Subtotal'*/: break;\n\t\t\t\t\tcase 'basefield' /*case 'BaseField'*/: break;\n\t\t\t\t\tcase 'mapchilditems' /*case 'MapChildItems'*/: break;\n\t\t\t\t\tcase 'function' /*case 'Function'*/: break;\n\t\t\t\t\tcase 'refreshonfileopen' /*case 'RefreshOnFileOpen'*/: break;\n\t\t\t\t\tcase 'printsettitles' /*case 'PrintSetTitles'*/: break;\n\t\t\t\t\tcase 'mergelabels' /*case 'MergeLabels'*/: break;\n\t\t\t\t\tcase 'defaultversion' /*case 'DefaultVersion'*/: break;\n\t\t\t\t\tcase 'refreshname' /*case 'RefreshName'*/: break;\n\t\t\t\t\tcase 'refreshdate' /*case 'RefreshDate'*/: break;\n\t\t\t\t\tcase 'refreshdatecopy' /*case 'RefreshDateCopy'*/: break;\n\t\t\t\t\tcase 'versionlastrefresh' /*case 'VersionLastRefresh'*/: break;\n\t\t\t\t\tcase 'versionlastupdate' /*case 'VersionLastUpdate'*/: break;\n\t\t\t\t\tcase 'versionupdateablemin' /*case 'VersionUpdateableMin'*/: break;\n\t\t\t\t\tcase 'versionrefreshablemin' /*case 'VersionRefreshableMin'*/: break;\n\t\t\t\t\tcase 'calculation' /*case 'Calculation'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* PageBreaks */\n\t\t\t\tcase 'pagebreaks' /*case 'PageBreaks'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'colbreaks' /*case 'ColBreaks'*/: break;\n\t\t\t\t\tcase 'colbreak' /*case 'ColBreak'*/: break;\n\t\t\t\t\tcase 'rowbreaks' /*case 'RowBreaks'*/: break;\n\t\t\t\t\tcase 'rowbreak' /*case 'RowBreak'*/: break;\n\t\t\t\t\tcase 'colstart' /*case 'ColStart'*/: break;\n\t\t\t\t\tcase 'colend' /*case 'ColEnd'*/: break;\n\t\t\t\t\tcase 'rowend' /*case 'RowEnd'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* AutoFilter */\n\t\t\t\tcase 'autofilter' /*case 'AutoFilter'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'autofiltercolumn' /*case 'AutoFilterColumn'*/: break;\n\t\t\t\t\tcase 'autofiltercondition' /*case 'AutoFilterCondition'*/: break;\n\t\t\t\t\tcase 'autofilterand' /*case 'AutoFilterAnd'*/: break;\n\t\t\t\t\tcase 'autofilteror' /*case 'AutoFilterOr'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* QueryTable */\n\t\t\t\tcase 'querytable' /*case 'QueryTable'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'id' /*case 'Id'*/: break;\n\t\t\t\t\tcase 'autoformatfont' /*case 'AutoFormatFont'*/: break;\n\t\t\t\t\tcase 'autoformatpattern' /*case 'AutoFormatPattern'*/: break;\n\t\t\t\t\tcase 'querysource' /*case 'QuerySource'*/: break;\n\t\t\t\t\tcase 'querytype' /*case 'QueryType'*/: break;\n\t\t\t\t\tcase 'enableredirections' /*case 'EnableRedirections'*/: break;\n\t\t\t\t\tcase 'refreshedinxl9' /*case 'RefreshedInXl9'*/: break;\n\t\t\t\t\tcase 'urlstring' /*case 'URLString'*/: break;\n\t\t\t\t\tcase 'htmltables' /*case 'HTMLTables'*/: break;\n\t\t\t\t\tcase 'connection' /*case 'Connection'*/: break;\n\t\t\t\t\tcase 'commandtext' /*case 'CommandText'*/: break;\n\t\t\t\t\tcase 'refreshinfo' /*case 'RefreshInfo'*/: break;\n\t\t\t\t\tcase 'notitles' /*case 'NoTitles'*/: break;\n\t\t\t\t\tcase 'nextid' /*case 'NextId'*/: break;\n\t\t\t\t\tcase 'columninfo' /*case 'ColumnInfo'*/: break;\n\t\t\t\t\tcase 'overwritecells' /*case 'OverwriteCells'*/: break;\n\t\t\t\t\tcase 'donotpromptforfile' /*case 'DoNotPromptForFile'*/: break;\n\t\t\t\t\tcase 'textwizardsettings' /*case 'TextWizardSettings'*/: break;\n\t\t\t\t\tcase 'source' /*case 'Source'*/: break;\n\t\t\t\t\tcase 'number' /*case 'Number'*/: break;\n\t\t\t\t\tcase 'decimal' /*case 'Decimal'*/: break;\n\t\t\t\t\tcase 'thousandseparator' /*case 'ThousandSeparator'*/: break;\n\t\t\t\t\tcase 'trailingminusnumbers' /*case 'TrailingMinusNumbers'*/: break;\n\t\t\t\t\tcase 'formatsettings' /*case 'FormatSettings'*/: break;\n\t\t\t\t\tcase 'fieldtype' /*case 'FieldType'*/: break;\n\t\t\t\t\tcase 'delimiters' /*case 'Delimiters'*/: break;\n\t\t\t\t\tcase 'tab' /*case 'Tab'*/: break;\n\t\t\t\t\tcase 'comma' /*case 'Comma'*/: break;\n\t\t\t\t\tcase 'autoformatname' /*case 'AutoFormatName'*/: break;\n\t\t\t\t\tcase 'versionlastedit' /*case 'VersionLastEdit'*/: break;\n\t\t\t\t\tcase 'versionlastrefresh' /*case 'VersionLastRefresh'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\tcase 'datavalidation' /*case 'DataValidation'*/:\n\t\t\t\tswitch(Rn[3]) {\n\t\t\t\t\tcase 'range' /*case 'Range'*/: break;\n\n\t\t\t\t\tcase 'type' /*case 'Type'*/: break;\n\t\t\t\t\tcase 'min' /*case 'Min'*/: break;\n\t\t\t\t\tcase 'max' /*case 'Max'*/: break;\n\t\t\t\t\tcase 'sort' /*case 'Sort'*/: break;\n\t\t\t\t\tcase 'descending' /*case 'Descending'*/: break;\n\t\t\t\t\tcase 'order' /*case 'Order'*/: break;\n\t\t\t\t\tcase 'casesensitive' /*case 'CaseSensitive'*/: break;\n\t\t\t\t\tcase 'value' /*case 'Value'*/: break;\n\t\t\t\t\tcase 'errorstyle' /*case 'ErrorStyle'*/: break;\n\t\t\t\t\tcase 'errormessage' /*case 'ErrorMessage'*/: break;\n\t\t\t\t\tcase 'errortitle' /*case 'ErrorTitle'*/: break;\n\t\t\t\t\tcase 'inputmessage' /*case 'InputMessage'*/: break;\n\t\t\t\t\tcase 'inputtitle' /*case 'InputTitle'*/: break;\n\t\t\t\t\tcase 'combohide' /*case 'ComboHide'*/: break;\n\t\t\t\t\tcase 'inputhide' /*case 'InputHide'*/: break;\n\t\t\t\t\tcase 'condition' /*case 'Condition'*/: break;\n\t\t\t\t\tcase 'qualifier' /*case 'Qualifier'*/: break;\n\t\t\t\t\tcase 'useblank' /*case 'UseBlank'*/: break;\n\t\t\t\t\tcase 'value1' /*case 'Value1'*/: break;\n\t\t\t\t\tcase 'value2' /*case 'Value2'*/: break;\n\t\t\t\t\tcase 'format' /*case 'Format'*/: break;\n\n\t\t\t\t\tcase 'cellrangelist' /*case 'CellRangeList'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\tcase 'sorting' /*case 'Sorting'*/:\n\t\t\t\tcase 'conditionalformatting' /*case 'ConditionalFormatting'*/:\n\t\t\t\tswitch(Rn[3]) {\n\t\t\t\t\tcase 'range' /*case 'Range'*/: break;\n\t\t\t\t\tcase 'type' /*case 'Type'*/: break;\n\t\t\t\t\tcase 'min' /*case 'Min'*/: break;\n\t\t\t\t\tcase 'max' /*case 'Max'*/: break;\n\t\t\t\t\tcase 'sort' /*case 'Sort'*/: break;\n\t\t\t\t\tcase 'descending' /*case 'Descending'*/: break;\n\t\t\t\t\tcase 'order' /*case 'Order'*/: break;\n\t\t\t\t\tcase 'casesensitive' /*case 'CaseSensitive'*/: break;\n\t\t\t\t\tcase 'value' /*case 'Value'*/: break;\n\t\t\t\t\tcase 'errorstyle' /*case 'ErrorStyle'*/: break;\n\t\t\t\t\tcase 'errormessage' /*case 'ErrorMessage'*/: break;\n\t\t\t\t\tcase 'errortitle' /*case 'ErrorTitle'*/: break;\n\t\t\t\t\tcase 'cellrangelist' /*case 'CellRangeList'*/: break;\n\t\t\t\t\tcase 'inputmessage' /*case 'InputMessage'*/: break;\n\t\t\t\t\tcase 'inputtitle' /*case 'InputTitle'*/: break;\n\t\t\t\t\tcase 'combohide' /*case 'ComboHide'*/: break;\n\t\t\t\t\tcase 'inputhide' /*case 'InputHide'*/: break;\n\t\t\t\t\tcase 'condition' /*case 'Condition'*/: break;\n\t\t\t\t\tcase 'qualifier' /*case 'Qualifier'*/: break;\n\t\t\t\t\tcase 'useblank' /*case 'UseBlank'*/: break;\n\t\t\t\t\tcase 'value1' /*case 'Value1'*/: break;\n\t\t\t\t\tcase 'value2' /*case 'Value2'*/: break;\n\t\t\t\t\tcase 'format' /*case 'Format'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* MapInfo (schema) */\n\t\t\t\tcase 'mapinfo' /*case 'MapInfo'*/: case 'schema' /*case 'Schema'*/: case 'data' /*case 'data'*/: switch(Rn[3]) {\n\t\t\t\t\tcase 'map' /*case 'Map'*/: break;\n\t\t\t\t\tcase 'entry' /*case 'Entry'*/: break;\n\t\t\t\t\tcase 'range' /*case 'Range'*/: break;\n\t\t\t\t\tcase 'xpath' /*case 'XPath'*/: break;\n\t\t\t\t\tcase 'field' /*case 'Field'*/: break;\n\t\t\t\t\tcase 'xsdtype' /*case 'XSDType'*/: break;\n\t\t\t\t\tcase 'filteron' /*case 'FilterOn'*/: break;\n\t\t\t\t\tcase 'aggregate' /*case 'Aggregate'*/: break;\n\t\t\t\t\tcase 'elementtype' /*case 'ElementType'*/: break;\n\t\t\t\t\tcase 'attributetype' /*case 'AttributeType'*/: break;\n\t\t\t\t/* These are from xsd (XML Schema Definition) */\n\t\t\t\t\tcase 'schema' /*case 'schema'*/:\n\t\t\t\t\tcase 'element' /*case 'element'*/:\n\t\t\t\t\tcase 'complextype' /*case 'complexType'*/:\n\t\t\t\t\tcase 'datatype' /*case 'datatype'*/:\n\t\t\t\t\tcase 'all' /*case 'all'*/:\n\t\t\t\t\tcase 'attribute' /*case 'attribute'*/:\n\t\t\t\t\tcase 'extends' /*case 'extends'*/: break;\n\n\t\t\t\t\tcase 'row' /*case 'row'*/: break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* SmartTags (can be anything) */\n\t\t\t\tcase 'smarttags' /*case 'SmartTags'*/: break;\n\n\t\t\t\tdefault: seen = false; break;\n\t\t\t}\n\t\t\tif(seen) break;\n\t\t\t/* CustomDocumentProperties */\n\t\t\tif(Rn[3].match(/!\\[CDATA/)) break;\n\t\t\tif(!state[state.length-1][1]) throw 'Unrecognized tag: ' + Rn[3] + \"|\" + state.join(\"|\");\n\t\t\tif(state[state.length-1][0]===/*'CustomDocumentProperties'*/'customdocumentproperties') {\n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\t\telse if(Rn[1]===\"/\") xlml_set_custprop(Custprops, raw_Rn3, cp, str.slice(pidx, Rn.index));\n\t\t\t\telse { cp = Rn; pidx = Rn.index + Rn[0].length; }\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif(opts.WTF) throw 'Unrecognized tag: ' + Rn[3] + \"|\" + state.join(\"|\");\n\t}\n\tvar out = ({}/*:any*/);\n\tif(!opts.bookSheets && !opts.bookProps) out.Sheets = sheets;\n\tout.SheetNames = sheetnames;\n\tout.Workbook = Workbook;\n\tout.SSF = dup(table_fmt);\n\tout.Props = Props;\n\tout.Custprops = Custprops;\n\tout.bookType = \"xlml\";\n\treturn out;\n}\n\nfunction parse_xlml(data/*:RawBytes|string*/, opts)/*:Workbook*/ {\n\tfix_read_opts(opts=opts||{});\n\tswitch(opts.type||\"base64\") {\n\t\tcase \"base64\": return parse_xlml_xml(Base64_decode(data), opts);\n\t\tcase \"binary\": case \"buffer\": case \"file\": return parse_xlml_xml(data, opts);\n\t\tcase \"array\": return parse_xlml_xml(a2s(data), opts);\n\t}\n\t/*:: throw new Error(\"unsupported type \" + opts.type); */\n}\n\n/* TODO */\nfunction write_props_xlml(wb/*:Workbook*/, opts)/*:string*/ {\n\tvar o/*:Array<string>*/ = [];\n\t/* DocumentProperties */\n\tif(wb.Props) o.push(xlml_write_docprops(wb.Props, opts));\n\t/* CustomDocumentProperties */\n\tif(wb.Custprops) o.push(xlml_write_custprops(wb.Props, wb.Custprops, opts));\n\treturn o.join(\"\");\n}\n/* TODO */\nfunction write_wb_xlml(wb/*::, opts*/)/*:string*/ {\n\t/* OfficeDocumentSettings */\n\t/* ExcelWorkbook */\n\tif((((wb||{}).Workbook||{}).WBProps||{}).date1904) return '<ExcelWorkbook xmlns=\"urn:schemas-microsoft-com:office:excel\"><Date1904/></ExcelWorkbook>';\n\treturn \"\";\n}\n/* TODO */\nfunction write_sty_xlml(wb, opts)/*:string*/ {\n\t/* Styles */\n\tvar styles/*:Array<string>*/ = ['<Style ss:ID=\"Default\" ss:Name=\"Normal\"><NumberFormat/></Style>'];\n\topts.cellXfs.forEach(function(xf, id) {\n\t\tvar payload/*:Array<string>*/ = [];\n\t\tpayload.push(writextag('NumberFormat', null, {\"ss:Format\": escapexml(table_fmt[xf.numFmtId])}));\n\n\t\tvar o = /*::(*/{\"ss:ID\": \"s\" + (21+id)}/*:: :any)*/;\n\t\tstyles.push(writextag('Style', payload.join(\"\"), o));\n\t});\n\treturn writextag(\"Styles\", styles.join(\"\"));\n}\nfunction write_name_xlml(n) { return writextag(\"NamedRange\", null, {\"ss:Name\": n.Name.slice(0,6) == \"_xlnm.\" ? n.Name.slice(6) : n.Name, \"ss:RefersTo\":\"=\" + a1_to_rc(n.Ref, {r:0,c:0})}); }\nfunction write_names_xlml(wb/*::, opts*/)/*:string*/ {\n\tif(!((wb||{}).Workbook||{}).Names) return \"\";\n\t/*:: if(!wb || !wb.Workbook || !wb.Workbook.Names) throw new Error(\"unreachable\"); */\n\tvar names/*:Array<any>*/ = wb.Workbook.Names;\n\tvar out/*:Array<string>*/ = [];\n\tfor(var i = 0; i < names.length; ++i) {\n\t\tvar n = names[i];\n\t\tif(n.Sheet != null) continue;\n\t\tif(n.Name.match(/^_xlfn\\./)) continue;\n\t\tout.push(write_name_xlml(n));\n\t}\n\treturn writextag(\"Names\", out.join(\"\"));\n}\nfunction write_ws_xlml_names(ws/*:Worksheet*/, opts, idx/*:number*/, wb/*:Workbook*/)/*:string*/ {\n\tif(!ws) return \"\";\n\tif(!((wb||{}).Workbook||{}).Names) return \"\";\n\t/*:: if(!wb || !wb.Workbook || !wb.Workbook.Names) throw new Error(\"unreachable\"); */\n\tvar names/*:Array<any>*/ = wb.Workbook.Names;\n\tvar out/*:Array<string>*/ = [];\n\tfor(var i = 0; i < names.length; ++i) {\n\t\tvar n = names[i];\n\t\tif(n.Sheet != idx) continue;\n\t\t/*switch(n.Name) {\n\t\t\tcase \"_\": continue;\n\t\t}*/\n\t\tif(n.Name.match(/^_xlfn\\./)) continue;\n\t\tout.push(write_name_xlml(n));\n\t}\n\treturn out.join(\"\");\n}\n/* WorksheetOptions */\nfunction write_ws_xlml_wsopts(ws/*:Worksheet*/, opts, idx/*:number*/, wb/*:Workbook*/)/*:string*/ {\n\tif(!ws) return \"\";\n\tvar o/*:Array<string>*/ = [];\n\t/* NOTE: spec technically allows any order, but stick with implied order */\n\n\t/* FitToPage */\n\t/* DoNotDisplayColHeaders */\n\t/* DoNotDisplayRowHeaders */\n\t/* ViewableRange */\n\t/* Selection */\n\t/* GridlineColor */\n\t/* Name */\n\t/* ExcelWorksheetType */\n\t/* IntlMacro */\n\t/* Unsynced */\n\t/* Selected */\n\t/* CodeName */\n\n\tif(ws['!margins']) {\n\t\to.push(\"<PageSetup>\");\n\t\tif(ws['!margins'].header) o.push(writextag(\"Header\", null, {'x:Margin':ws['!margins'].header}));\n\t\tif(ws['!margins'].footer) o.push(writextag(\"Footer\", null, {'x:Margin':ws['!margins'].footer}));\n\t\to.push(writextag(\"PageMargins\", null, {\n\t\t\t'x:Bottom': ws['!margins'].bottom || \"0.75\",\n\t\t\t'x:Left': ws['!margins'].left || \"0.7\",\n\t\t\t'x:Right': ws['!margins'].right || \"0.7\",\n\t\t\t'x:Top': ws['!margins'].top || \"0.75\"\n\t\t}));\n\t\to.push(\"</PageSetup>\");\n\t}\n\n\t/* PageSetup */\n\t/* DisplayPageBreak */\n\t/* TransitionExpressionEvaluation */\n\t/* TransitionFormulaEntry */\n\t/* Print */\n\t/* Zoom */\n\t/* PageLayoutZoom */\n\t/* PageBreakZoom */\n\t/* ShowPageBreakZoom */\n\t/* DefaultRowHeight */\n\t/* DefaultColumnWidth */\n\t/* StandardWidth */\n\n\tif(wb && wb.Workbook && wb.Workbook.Sheets && wb.Workbook.Sheets[idx]) {\n\t\t/* Visible */\n\t\tif(wb.Workbook.Sheets[idx].Hidden) o.push(writextag(\"Visible\", (wb.Workbook.Sheets[idx].Hidden == 1 ? \"SheetHidden\" : \"SheetVeryHidden\"), {}));\n\t\telse {\n\t\t\t/* Selected */\n\t\t\tfor(var i = 0; i < idx; ++i) if(wb.Workbook.Sheets[i] && !wb.Workbook.Sheets[i].Hidden) break;\n\t\t\tif(i == idx) o.push(\"<Selected/>\");\n\t\t}\n\t}\n\n\t/* LeftColumnVisible */\n\n\tif(((((wb||{}).Workbook||{}).Views||[])[0]||{}).RTL) o.push(\"<DisplayRightToLeft/>\");\n\n\t/* GridlineColorIndex */\n\t/* DisplayFormulas */\n\t/* DoNotDisplayGridlines */\n\t/* DoNotDisplayHeadings */\n\t/* DoNotDisplayOutline */\n\t/* ApplyAutomaticOutlineStyles */\n\t/* NoSummaryRowsBelowDetail */\n\t/* NoSummaryColumnsRightDetail */\n\t/* DoNotDisplayZeros */\n\t/* ActiveRow */\n\t/* ActiveColumn */\n\t/* FilterOn */\n\t/* RangeSelection */\n\t/* TopRowVisible */\n\t/* TopRowBottomPane */\n\t/* LeftColumnRightPane */\n\t/* ActivePane */\n\t/* SplitHorizontal */\n\t/* SplitVertical */\n\t/* FreezePanes */\n\t/* FrozenNoSplit */\n\t/* TabColorIndex */\n\t/* Panes */\n\n\t/* NOTE: Password not supported in XLML Format */\n\tif(ws['!protect']) {\n\t\to.push(writetag(\"ProtectContents\", \"True\"));\n\t\tif(ws['!protect'].objects) o.push(writetag(\"ProtectObjects\", \"True\"));\n\t\tif(ws['!protect'].scenarios) o.push(writetag(\"ProtectScenarios\", \"True\"));\n\t\tif(ws['!protect'].selectLockedCells != null && !ws['!protect'].selectLockedCells) o.push(writetag(\"EnableSelection\", \"NoSelection\"));\n\t\telse if(ws['!protect'].selectUnlockedCells != null && !ws['!protect'].selectUnlockedCells) o.push(writetag(\"EnableSelection\", \"UnlockedCells\"));\n\t[\n\t\t[ \"formatCells\", \"AllowFormatCells\" ],\n\t\t[ \"formatColumns\", \"AllowSizeCols\" ],\n\t\t[ \"formatRows\", \"AllowSizeRows\" ],\n\t\t[ \"insertColumns\", \"AllowInsertCols\" ],\n\t\t[ \"insertRows\", \"AllowInsertRows\" ],\n\t\t[ \"insertHyperlinks\", \"AllowInsertHyperlinks\" ],\n\t\t[ \"deleteColumns\", \"AllowDeleteCols\" ],\n\t\t[ \"deleteRows\", \"AllowDeleteRows\" ],\n\t\t[ \"sort\", \"AllowSort\" ],\n\t\t[ \"autoFilter\", \"AllowFilter\" ],\n\t\t[ \"pivotTables\", \"AllowUsePivotTables\" ]\n\t].forEach(function(x) { if(ws['!protect'][x[0]]) o.push(\"<\"+x[1]+\"/>\"); });\n\t}\n\n\tif(o.length == 0) return \"\";\n\treturn writextag(\"WorksheetOptions\", o.join(\"\"), {xmlns:XLMLNS.x});\n}\nfunction write_ws_xlml_comment(comments/*:Array<any>*/)/*:string*/ {\n\treturn comments.map(function(c) {\n\t\t// TODO: formatted text\n\t\tvar t = xlml_unfixstr(c.t||\"\");\n\t\tvar d =writextag(\"ss:Data\", t, {\"xmlns\":\"http://www.w3.org/TR/REC-html40\"});\n\t\treturn writextag(\"Comment\", d, {\"ss:Author\":c.a});\n\t}).join(\"\");\n}\nfunction write_ws_xlml_cell(cell, ref/*:string*/, ws, opts, idx/*:number*/, wb, addr)/*:string*/{\n\tif(!cell || (cell.v == undefined && cell.f == undefined)) return \"\";\n\n\tvar attr = {};\n\tif(cell.f) attr[\"ss:Formula\"] = \"=\" + escapexml(a1_to_rc(cell.f, addr));\n\tif(cell.F && cell.F.slice(0, ref.length) == ref) {\n\t\tvar end = decode_cell(cell.F.slice(ref.length + 1));\n\t\tattr[\"ss:ArrayRange\"] = \"RC:R\" + (end.r == addr.r ? \"\" : \"[\" + (end.r - addr.r) + \"]\") + \"C\" + (end.c == addr.c ? \"\" : \"[\" + (end.c - addr.c) + \"]\");\n\t}\n\n\tif(cell.l && cell.l.Target) {\n\t\tattr[\"ss:HRef\"] = escapexml(cell.l.Target);\n\t\tif(cell.l.Tooltip) attr[\"x:HRefScreenTip\"] = escapexml(cell.l.Tooltip);\n\t}\n\n\tif(ws['!merges']) {\n\t\tvar marr = ws['!merges'];\n\t\tfor(var mi = 0; mi != marr.length; ++mi) {\n\t\t\tif(marr[mi].s.c != addr.c || marr[mi].s.r != addr.r) continue;\n\t\t\tif(marr[mi].e.c > marr[mi].s.c) attr['ss:MergeAcross'] = marr[mi].e.c - marr[mi].s.c;\n\t\t\tif(marr[mi].e.r > marr[mi].s.r) attr['ss:MergeDown'] = marr[mi].e.r - marr[mi].s.r;\n\t\t}\n\t}\n\n\tvar t = \"\", p = \"\";\n\tswitch(cell.t) {\n\t\tcase 'z': if(!opts.sheetStubs) return \"\"; break;\n\t\tcase 'n': t = 'Number'; p = String(cell.v); break;\n\t\tcase 'b': t = 'Boolean'; p = (cell.v ? \"1\" : \"0\"); break;\n\t\tcase 'e': t = 'Error'; p = BErr[cell.v]; break;\n\t\tcase 'd': t = 'DateTime'; p = new Date(cell.v).toISOString(); if(cell.z == null) cell.z = cell.z || table_fmt[14]; break;\n\t\tcase 's': t = 'String'; p = escapexlml(cell.v||\"\"); break;\n\t}\n\t/* TODO: cell style */\n\tvar os = get_cell_style(opts.cellXfs, cell, opts);\n\tattr[\"ss:StyleID\"] = \"s\" + (21+os);\n\tattr[\"ss:Index\"] = addr.c + 1;\n\tvar _v = (cell.v != null ? p : \"\");\n\tvar m = cell.t == 'z' ? \"\" : ('<Data ss:Type=\"' + t + '\">' + _v + '</Data>');\n\n\tif((cell.c||[]).length > 0) m += write_ws_xlml_comment(cell.c);\n\n\treturn writextag(\"Cell\", m, attr);\n}\nfunction write_ws_xlml_row(R/*:number*/, row)/*:string*/ {\n\tvar o = '<Row ss:Index=\"' + (R+1) + '\"';\n\tif(row) {\n\t\tif(row.hpt && !row.hpx) row.hpx = pt2px(row.hpt);\n\t\tif(row.hpx) o += ' ss:AutoFitHeight=\"0\" ss:Height=\"' + row.hpx + '\"';\n\t\tif(row.hidden) o += ' ss:Hidden=\"1\"';\n\t}\n\treturn o + '>';\n}\n/* TODO */\nfunction write_ws_xlml_table(ws/*:Worksheet*/, opts, idx/*:number*/, wb/*:Workbook*/)/*:string*/ {\n\tif(!ws['!ref']) return \"\";\n\tvar range/*:Range*/ = safe_decode_range(ws['!ref']);\n\tvar marr/*:Array<Range>*/ = ws['!merges'] || [], mi = 0;\n\tvar o/*:Array<string>*/ = [];\n\tif(ws['!cols']) ws['!cols'].forEach(function(n, i) {\n\t\tprocess_col(n);\n\t\tvar w = !!n.width;\n\t\tvar p = col_obj_w(i, n);\n\t\tvar k/*:any*/ = {\"ss:Index\":i+1};\n\t\tif(w) k['ss:Width'] = width2px(p.width);\n\t\tif(n.hidden) k['ss:Hidden']=\"1\";\n\t\to.push(writextag(\"Column\",null,k));\n\t});\n\tvar dense = ws[\"!data\"] != null;\n\tfor(var R = range.s.r; R <= range.e.r; ++R) {\n\t\tvar row = [write_ws_xlml_row(R, (ws['!rows']||[])[R])];\n\t\tfor(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tvar skip = false;\n\t\t\tfor(mi = 0; mi != marr.length; ++mi) {\n\t\t\t\tif(marr[mi].s.c > C) continue;\n\t\t\t\tif(marr[mi].s.r > R) continue;\n\t\t\t\tif(marr[mi].e.c < C) continue;\n\t\t\t\tif(marr[mi].e.r < R) continue;\n\t\t\t\tif(marr[mi].s.c != C || marr[mi].s.r != R) skip = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif(skip) continue;\n\t\t\tvar addr = {r:R,c:C};\n\t\t\tvar ref = encode_col(C) + encode_row(R), cell = dense ? (ws[\"!data\"][R]||[])[C] : ws[ref];\n\t\t\trow.push(write_ws_xlml_cell(cell, ref, ws, opts, idx, wb, addr));\n\t\t}\n\t\trow.push(\"</Row>\");\n\t\tif(row.length > 2) o.push(row.join(\"\"));\n\t}\n\treturn o.join(\"\");\n}\nfunction write_ws_xlml(idx/*:number*/, opts, wb/*:Workbook*/)/*:string*/ {\n\tvar o/*:Array<string>*/ = [];\n\tvar s = wb.SheetNames[idx];\n\tvar ws = wb.Sheets[s];\n\n\tvar t/*:string*/ = ws ? write_ws_xlml_names(ws, opts, idx, wb) : \"\";\n\tif(t.length > 0) o.push(\"<Names>\" + t + \"</Names>\");\n\n\t/* Table */\n\tt = ws ? write_ws_xlml_table(ws, opts, idx, wb) : \"\";\n\tif(t.length > 0) o.push(\"<Table>\" + t + \"</Table>\");\n\n\t/* WorksheetOptions */\n\to.push(write_ws_xlml_wsopts(ws, opts, idx, wb));\n\n\tif(ws[\"!autofilter\"]) o.push('<AutoFilter x:Range=\"' + a1_to_rc(fix_range(ws[\"!autofilter\"].ref), {r:0,c:0}) + '\" xmlns=\"urn:schemas-microsoft-com:office:excel\"></AutoFilter>');\n\n\treturn o.join(\"\");\n}\nfunction write_xlml(wb, opts)/*:string*/ {\n\tif(!opts) opts = {};\n\tif(!wb.SSF) wb.SSF = dup(table_fmt);\n\tif(wb.SSF) {\n\t\tmake_ssf(); SSF_load_table(wb.SSF);\n\t\t// $FlowIgnore\n\t\topts.revssf = evert_num(wb.SSF); opts.revssf[wb.SSF[65535]] = 0;\n\t\topts.ssf = wb.SSF;\n\t\topts.cellXfs = [];\n\t\tget_cell_style(opts.cellXfs, {}, {revssf:{\"General\":0}});\n\t}\n\tvar d/*:Array<string>*/ = [];\n\td.push(write_props_xlml(wb, opts));\n\td.push(write_wb_xlml(wb, opts));\n\td.push(\"\");\n\td.push(\"\");\n\tfor(var i = 0; i < wb.SheetNames.length; ++i)\n\t\td.push(writextag(\"Worksheet\", write_ws_xlml(i, opts, wb), {\"ss:Name\":escapexml(wb.SheetNames[i])}));\n\td[2] = write_sty_xlml(wb, opts);\n\td[3] = write_names_xlml(wb, opts);\n\treturn XML_HEADER + writextag(\"Workbook\", d.join(\"\"), {\n\t\t'xmlns': XLMLNS.ss,\n\t\t'xmlns:o': XLMLNS.o,\n\t\t'xmlns:x': XLMLNS.x,\n\t\t'xmlns:ss': XLMLNS.ss,\n\t\t'xmlns:dt': XLMLNS.dt,\n\t\t'xmlns:html': XLMLNS.html\n\t});\n}\n/* [MS-OLEDS] 2.3.8 CompObjStream */\nfunction parse_compobj(obj/*:CFBEntry*/) {\n\tvar v = {};\n\tvar o = obj.content;\n\t/*:: if(o == null) return; */\n\n\t/* [MS-OLEDS] 2.3.7 CompObjHeader -- All fields MUST be ignored */\n\to.l = 28;\n\n\tv.AnsiUserType = o.read_shift(0, \"lpstr-ansi\");\n\tv.AnsiClipboardFormat = parse_ClipboardFormatOrAnsiString(o);\n\n\tif(o.length - o.l <= 4) return v;\n\n\tvar m/*:number*/ = o.read_shift(4);\n\tif(m == 0 || m > 40) return v;\n\to.l-=4; v.Reserved1 = o.read_shift(0, \"lpstr-ansi\");\n\n\tif(o.length - o.l <= 4) return v;\n\tm = o.read_shift(4);\n\tif(m !== 0x71b239f4) return v;\n\tv.UnicodeClipboardFormat = parse_ClipboardFormatOrUnicodeString(o);\n\n\tm = o.read_shift(4);\n\tif(m == 0 || m > 40) return v;\n\to.l-=4; v.Reserved2 = o.read_shift(0, \"lpwstr\");\n}\n\n/*\n\tContinue logic for:\n\t- 2.4.58 Continue 0x003c\n\t- 2.4.59 ContinueBigName 0x043c\n\t- 2.4.60 ContinueFrt 0x0812\n\t- 2.4.61 ContinueFrt11 0x0875\n\t- 2.4.62 ContinueFrt12 0x087f\n*/\nvar CONTINUE_RT = [ 0x003c, 0x043c, 0x0812, 0x0875, 0x087f ];\nfunction slurp(RecordType, R, blob, length/*:number*/, opts)/*:any*/ {\n\tvar l = length;\n\tvar bufs = [];\n\tvar d = blob.slice(blob.l,blob.l+l);\n\tif(opts && opts.enc && opts.enc.insitu && d.length > 0) switch(RecordType) {\n\tcase 0x0009: case 0x0209: case 0x0409: case 0x0809/* BOF */: case 0x002F /* FilePass */: case 0x0195 /* FileLock */: case 0x00E1 /* InterfaceHdr */: case 0x0196 /* RRDInfo */: case 0x0138 /* RRDHead */: case 0x0194 /* UsrExcl */: case 0x000a /* EOF */:\n\t\tbreak;\n\tcase 0x0085 /* BoundSheet8 */:\n\t\tbreak;\n\tdefault:\n\t\topts.enc.insitu(d);\n\t}\n\tbufs.push(d);\n\tblob.l += l;\n\tvar nextrt = __readUInt16LE(blob,blob.l), next = XLSRecordEnum[nextrt];\n\tvar start = 0;\n\twhile(next != null && CONTINUE_RT.indexOf(nextrt) > -1) {\n\t\tl = __readUInt16LE(blob,blob.l+2);\n\t\tstart = blob.l + 4;\n\t\tif(nextrt == 0x0812 /* ContinueFrt */) start += 4;\n\t\telse if(nextrt == 0x0875 || nextrt == 0x087f) {\n\t\t\tstart += 12;\n\t\t}\n\t\td = blob.slice(start,blob.l+4+l);\n\t\tbufs.push(d);\n\t\tblob.l += 4+l;\n\t\tnext = (XLSRecordEnum[nextrt = __readUInt16LE(blob, blob.l)]);\n\t}\n\tvar b = (bconcat(bufs)/*:any*/);\n\tprep_blob(b, 0);\n\tvar ll = 0; b.lens = [];\n\tfor(var j = 0; j < bufs.length; ++j) { b.lens.push(ll); ll += bufs[j].length; }\n\tif(b.length < length) throw \"XLS Record 0x\" + RecordType.toString(16) + \" Truncated: \" + b.length + \" < \" + length;\n\treturn R.f(b, b.length, opts);\n}\n\nfunction safe_format_xf(p/*:any*/, opts/*:ParseOpts*/, date1904/*:?boolean*/) {\n\tif(p.t === 'z') return;\n\tif(!p.XF) return;\n\tvar fmtid = 0;\n\ttry {\n\t\tfmtid = p.z || p.XF.numFmtId || 0;\n\t\tif(opts.cellNF) p.z = table_fmt[fmtid];\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(!opts || opts.cellText !== false) try {\n\t\tif(p.t === 'e') { p.w = p.w || BErr[p.v]; }\n\t\telse if(fmtid === 0 || fmtid == \"General\") {\n\t\t\tif(p.t === 'n') {\n\t\t\t\tif((p.v|0) === p.v) p.w = p.v.toString(10);\n\t\t\t\telse p.w = SSF_general_num(p.v);\n\t\t\t}\n\t\t\telse p.w = SSF_general(p.v);\n\t\t}\n\t\telse p.w = SSF_format(fmtid,p.v, {date1904:!!date1904, dateNF: opts && opts.dateNF});\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(opts.cellDates && fmtid && p.t == 'n' && fmt_is_date(table_fmt[fmtid] || String(fmtid))) {\n\t\tvar _d = SSF_parse_date_code(p.v); if(_d) { p.t = 'd'; p.v = new Date(_d.y, _d.m-1,_d.d,_d.H,_d.M,_d.S,_d.u); }\n\t}\n}\n\nfunction make_cell(val, ixfe, t)/*:Cell*/ {\n\treturn ({v:val, ixfe:ixfe, t:t}/*:any*/);\n}\n\n// 2.3.2\nfunction parse_workbook(blob, options/*:ParseOpts*/)/*:Workbook*/ {\n\tvar wb = ({opts:{}}/*:any*/);\n\tvar Sheets = {};\n\tif(DENSE != null && options.dense == null) options.dense = DENSE;\n\tvar out/*:Worksheet*/ = ({}/*:any*/); if(options.dense) out[\"!data\"] = [];\n\tvar Directory = {};\n\tvar range/*:Range*/ = ({}/*:any*/);\n\tvar last_formula = null;\n\tvar sst/*:SST*/ = ([]/*:any*/);\n\tvar cur_sheet = \"\";\n\tvar Preamble = {};\n\tvar lastcell, last_cell = \"\", cc/*:Cell*/, cmnt, rngC, rngR;\n\tvar sharedf = {};\n\tvar arrayf/*:Array<[Range, string]>*/ = [];\n\tvar temp_val/*:Cell*/;\n\tvar country;\n\tvar XFs = []; /* XF records */\n\tvar palette/*:Array<[number, number, number]>*/ = [];\n\tvar Workbook/*:WBWBProps*/ = ({ Sheets:[], WBProps:{date1904:false}, Views:[{}] }/*:any*/), wsprops = {};\n\tvar get_rgb = function getrgb(icv/*:number*/)/*:[number, number, number]*/ {\n\t\tif(icv < 8) return XLSIcv[icv];\n\t\tif(icv < 64) return palette[icv-8] || XLSIcv[icv];\n\t\treturn XLSIcv[icv];\n\t};\n\tvar process_cell_style = function pcs(cell, line/*:any*/, options) {\n\t\tvar xfd = line.XF.data;\n\t\tif(!xfd || !xfd.patternType || !options || !options.cellStyles) return;\n\t\tline.s = ({}/*:any*/);\n\t\tline.s.patternType = xfd.patternType;\n\t\tvar t;\n\t\tif((t = rgb2Hex(get_rgb(xfd.icvFore)))) { line.s.fgColor = {rgb:t}; }\n\t\tif((t = rgb2Hex(get_rgb(xfd.icvBack)))) { line.s.bgColor = {rgb:t}; }\n\t};\n\tvar addcell = function addcell(cell/*:any*/, line/*:any*/, options/*:any*/) {\n\t\tif(file_depth > 1) return;\n\t\tif(options.sheetRows && cell.r >= options.sheetRows) return;\n\t\tif(options.cellStyles && line.XF && line.XF.data) process_cell_style(cell, line, options);\n\t\tdelete line.ixfe; delete line.XF;\n\t\tlastcell = cell;\n\t\tlast_cell = encode_cell(cell);\n\t\tif(!range || !range.s || !range.e) range = {s:{r:0,c:0},e:{r:0,c:0}};\n\t\tif(cell.r < range.s.r) range.s.r = cell.r;\n\t\tif(cell.c < range.s.c) range.s.c = cell.c;\n\t\tif(cell.r + 1 > range.e.r) range.e.r = cell.r + 1;\n\t\tif(cell.c + 1 > range.e.c) range.e.c = cell.c + 1;\n\t\tif(options.cellFormula && line.f) {\n\t\t\tfor(var afi = 0; afi < arrayf.length; ++afi) {\n\t\t\t\tif(arrayf[afi][0].s.c > cell.c || arrayf[afi][0].s.r > cell.r) continue;\n\t\t\t\tif(arrayf[afi][0].e.c < cell.c || arrayf[afi][0].e.r < cell.r) continue;\n\t\t\t\tline.F = encode_range(arrayf[afi][0]);\n\t\t\t\tif(arrayf[afi][0].s.c != cell.c || arrayf[afi][0].s.r != cell.r) delete line.f;\n\t\t\t\tif(line.f) line.f = \"\" + stringify_formula(arrayf[afi][1], range, cell, supbooks, opts);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\t{\n\t\t\tif(options.dense) {\n\t\t\t\tif(!out[\"!data\"][cell.r]) out[\"!data\"][cell.r] = [];\n\t\t\t\tout[\"!data\"][cell.r][cell.c] = line;\n\t\t\t} else out[last_cell] = line;\n\t\t}\n\t};\n\tvar opts = ({\n\t\tenc: false, // encrypted\n\t\tsbcch: 0, // cch in the preceding SupBook\n\t\tsnames: [], // sheetnames\n\t\tsharedf: sharedf, // shared formulae by address\n\t\tarrayf: arrayf, // array formulae array\n\t\trrtabid: [], // RRTabId\n\t\tlastuser: \"\", // Last User from WriteAccess\n\t\tbiff: 8, // BIFF version\n\t\tcodepage: 0, // CP from CodePage record\n\t\twinlocked: 0, // fLockWn from WinProtect\n\t\tcellStyles: !!options && !!options.cellStyles,\n\t\tWTF: !!options && !!options.wtf\n\t}/*:any*/);\n\tif(options.password) opts.password = options.password;\n\tvar themes;\n\tvar merges/*:Array<Range>*/ = [];\n\tvar objects = [];\n\tvar colinfo/*:Array<ColInfo>*/ = [], rowinfo/*:Array<RowInfo>*/ = [];\n\tvar seencol = false;\n\tvar supbooks = ([]/*:any*/); // 1-indexed, will hold extern names\n\tsupbooks.SheetNames = opts.snames;\n\tsupbooks.sharedf = opts.sharedf;\n\tsupbooks.arrayf = opts.arrayf;\n\tsupbooks.names = [];\n\tsupbooks.XTI = [];\n\tvar last_RT = 0;\n\tvar file_depth = 0; /* TODO: make a real stack */\n\tvar BIFF2Fmt = 0, BIFF2FmtTable/*:Array<string>*/ = [];\n\tvar FilterDatabases = []; /* TODO: sort out supbooks and process elsewhere */\n\tvar last_lbl/*:?DefinedName*/;\n\n\t/* explicit override for some broken writers */\n\topts.codepage = 1200;\n\tset_cp(1200);\n\tvar seen_codepage = false;\n\twhile(blob.l < blob.length - 1) {\n\t\tvar s = blob.l;\n\t\tvar RecordType = blob.read_shift(2);\n\t\tif(RecordType === 0 && last_RT === 0x000a /* EOF */) break;\n\t\tvar length = (blob.l === blob.length ? 0 : blob.read_shift(2));\n\t\tvar R = XLSRecordEnum[RecordType];\n\t\tif(file_depth == 0 && [0x0009, 0x0209, 0x0409, 0x0809].indexOf(RecordType) == -1 /* BOF */) break;\n\t\t//console.log(RecordType.toString(16), RecordType, R, blob.l, length, blob.length);\n\t\t//if(!R) console.log(blob.slice(blob.l, blob.l + length));\n\t\tif(R && R.f) {\n\t\t\tif(options.bookSheets) {\n\t\t\t\tif(last_RT === 0x0085 /* BoundSheet8 */ && RecordType !== 0x0085 /* R.n !== 'BoundSheet8' */) break;\n\t\t\t}\n\t\t\tlast_RT = RecordType;\n\t\t\tif(R.r === 2 || R.r == 12) {\n\t\t\t\tvar rt = blob.read_shift(2); length -= 2;\n\t\t\t\tif(!opts.enc && rt !== RecordType && (((rt&0xFF)<<8)|(rt>>8)) !== RecordType) throw new Error(\"rt mismatch: \" + rt + \"!=\" + RecordType);\n\t\t\t\tif(R.r == 12){\n\t\t\t\t\tblob.l += 10; length -= 10;\n\t\t\t\t} // skip FRT\n\t\t\t}\n\t\t\t//console.error(R,blob.l,length,blob.length);\n\t\t\tvar val/*:any*/ = ({}/*:any*/);\n\t\t\tif(RecordType === 0x000a /* EOF */) val = /*::(*/R.f(blob, length, opts)/*:: :any)*/;\n\t\t\telse val = /*::(*/slurp(RecordType, R, blob, length, opts)/*:: :any)*/;\n\t\t\t/*:: val = (val:any); */\n\t\t\tif(file_depth == 0 && [0x0009, 0x0209, 0x0409, 0x0809].indexOf(last_RT) === -1 /* BOF */) continue;\n\t\t\tswitch(RecordType) {\n\t\t\t\tcase 0x0022 /* Date1904 */:\n\t\t\t\t\t/*:: if(!Workbook.WBProps) Workbook.WBProps = {}; */\n\t\t\t\t\twb.opts.Date1904 = Workbook.WBProps.date1904 = val; break;\n\t\t\t\tcase 0x0086 /* WriteProtect */: wb.opts.WriteProtect = true; break;\n\t\t\t\tcase 0x002f /* FilePass */:\n\t\t\t\t\tif(!opts.enc) blob.l = 0;\n\t\t\t\t\topts.enc = val;\n\t\t\t\t\tif(!options.password) throw new Error(\"File is password-protected\");\n\t\t\t\t\tif(val.valid == null) throw new Error(\"Encryption scheme unsupported\");\n\t\t\t\t\tif(!val.valid) throw new Error(\"Password is incorrect\");\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x005c /* WriteAccess */: opts.lastuser = val; break;\n\t\t\t\tcase 0x0042 /* CodePage */:\n\t\t\t\t\tvar cpval = Number(val);\n\t\t\t\t\t/* overrides based on test cases */\n\t\t\t\t\tswitch(cpval) {\n\t\t\t\t\t\tcase 0x5212: cpval = 1200; break;\n\t\t\t\t\t\tcase 0x8000: cpval = 10000; break;\n\t\t\t\t\t\tcase 0x8001: cpval = 1252; break;\n\t\t\t\t\t}\n\t\t\t\t\tset_cp(opts.codepage = cpval);\n\t\t\t\t\tseen_codepage = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x013d /* RRTabId */: opts.rrtabid = val; break;\n\t\t\t\tcase 0x0019 /* WinProtect */: opts.winlocked = val; break;\n\t\t\t\tcase 0x01b7 /* RefreshAll */: wb.opts[\"RefreshAll\"] = val; break;\n\t\t\t\tcase 0x000c /* CalcCount */: wb.opts[\"CalcCount\"] = val; break;\n\t\t\t\tcase 0x0010 /* CalcDelta */: wb.opts[\"CalcDelta\"] = val; break;\n\t\t\t\tcase 0x0011 /* CalcIter */: wb.opts[\"CalcIter\"] = val; break;\n\t\t\t\tcase 0x000d /* CalcMode */: wb.opts[\"CalcMode\"] = val; break;\n\t\t\t\tcase 0x000e /* CalcPrecision */: wb.opts[\"CalcPrecision\"] = val; break;\n\t\t\t\tcase 0x005f /* CalcSaveRecalc */: wb.opts[\"CalcSaveRecalc\"] = val; break;\n\t\t\t\tcase 0x000f /* CalcRefMode */: opts.CalcRefMode = val; break; // TODO: implement R1C1\n\t\t\t\tcase 0x08a3 /* ForceFullCalculation */: wb.opts.FullCalc = val; break;\n\t\t\t\tcase 0x0081 /* WsBool */:\n\t\t\t\t\tif(val.fDialog) out[\"!type\"] = \"dialog\";\n\t\t\t\t\tif(!val.fBelow) (out[\"!outline\"] || (out[\"!outline\"] = {})).above = true;\n\t\t\t\t\tif(!val.fRight) (out[\"!outline\"] || (out[\"!outline\"] = {})).left = true;\n\t\t\t\t\tbreak; // TODO\n\t\t\t\tcase 0x00e0 /* XF */:\n\t\t\t\t\tXFs.push(val); break;\n\t\t\t\tcase 0x01ae /* SupBook */:\n\t\t\t\t\tsupbooks.push([val]);\n\t\t\t\t\tsupbooks[supbooks.length-1].XTI = [];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x0023: case 0x0223 /* ExternName */:\n\t\t\t\t\tsupbooks[supbooks.length-1].push(val);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x0018: case 0x0218 /* Lbl */:\n\t\t\t\t\tlast_lbl = ({\n\t\t\t\t\t\tName: val.Name,\n\t\t\t\t\t\tRef: stringify_formula(val.rgce,range,null,supbooks,opts)\n\t\t\t\t\t}/*:DefinedName*/);\n\t\t\t\t\tif(val.itab > 0) last_lbl.Sheet = val.itab - 1;\n\t\t\t\t\tsupbooks.names.push(last_lbl);\n\t\t\t\t\tif(!supbooks[0]) { supbooks[0] = []; supbooks[0].XTI = []; }\n\t\t\t\t\tsupbooks[supbooks.length-1].push(val);\n\t\t\t\t\tif(val.Name == \"_xlnm._FilterDatabase\" && val.itab > 0)\n\t\t\t\t\t\tif(val.rgce && val.rgce[0] && val.rgce[0][0] && val.rgce[0][0][0] == 'PtgArea3d')\n\t\t\t\t\t\t\tFilterDatabases[val.itab - 1] = { ref: encode_range(val.rgce[0][0][1][2]) };\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x0016 /* ExternCount */: opts.ExternCount = val; break;\n\t\t\t\tcase 0x0017 /* ExternSheet */:\n\t\t\t\t\tif(supbooks.length == 0) { supbooks[0] = []; supbooks[0].XTI = []; }\n\t\t\t\t\tsupbooks[supbooks.length - 1].XTI = supbooks[supbooks.length - 1].XTI.concat(val); supbooks.XTI = supbooks.XTI.concat(val); break;\n\t\t\t\tcase 0x0894 /* NameCmt */:\n\t\t\t\t\t/* TODO: search for correct name */\n\t\t\t\t\tif(opts.biff < 8) break;\n\t\t\t\t\tif(last_lbl != null) last_lbl.Comment = val[1];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x0012 /* Protect */: out[\"!protect\"] = val; break; /* for sheet or book */\n\t\t\t\tcase 0x0013 /* Password */: if(val !== 0 && opts.WTF) console.error(\"Password verifier: \" + val); break;\n\t\t\t\tcase 0x0085 /* BoundSheet8 */: {\n\t\t\t\t\tDirectory[val.pos] = val;\n\t\t\t\t\topts.snames.push(val.name);\n\t\t\t\t} break;\n\t\t\t\tcase 0x000a /* EOF */: {\n\t\t\t\t\tif(--file_depth) break;\n\t\t\t\t\tif(range.e) {\n\t\t\t\t\t\tif(range.e.r > 0 && range.e.c > 0) {\n\t\t\t\t\t\t\trange.e.r--; range.e.c--;\n\t\t\t\t\t\t\tout[\"!ref\"] = encode_range(range);\n\t\t\t\t\t\t\tif(options.sheetRows && options.sheetRows <= range.e.r) {\n\t\t\t\t\t\t\t\tvar tmpri = range.e.r;\n\t\t\t\t\t\t\t\trange.e.r = options.sheetRows - 1;\n\t\t\t\t\t\t\t\tout[\"!fullref\"] = out[\"!ref\"];\n\t\t\t\t\t\t\t\tout[\"!ref\"] = encode_range(range);\n\t\t\t\t\t\t\t\trange.e.r = tmpri;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\trange.e.r++; range.e.c++;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(merges.length > 0) out[\"!merges\"] = merges;\n\t\t\t\t\t\tif(objects.length > 0) out[\"!objects\"] = objects;\n\t\t\t\t\t\tif(colinfo.length > 0) out[\"!cols\"] = colinfo;\n\t\t\t\t\t\tif(rowinfo.length > 0) out[\"!rows\"] = rowinfo;\n\t\t\t\t\t\tWorkbook.Sheets.push(wsprops);\n\t\t\t\t\t}\n\t\t\t\t\tif(cur_sheet === \"\") Preamble = out; else Sheets[cur_sheet] = out;\n\t\t\t\t\tout = ({}/*:any*/); if(options.dense) out[\"!data\"] = [];\n\t\t\t\t} break;\n\t\t\t\tcase 0x0009: case 0x0209: case 0x0409: case 0x0809 /* BOF */: {\n\t\t\t\t\tif(opts.biff === 8) opts.biff = {\n\t\t\t\t\t\t/*::[*/0x0009/*::]*/:2,\n\t\t\t\t\t\t/*::[*/0x0209/*::]*/:3,\n\t\t\t\t\t\t/*::[*/0x0409/*::]*/:4\n\t\t\t\t\t}[RecordType] || {\n\t\t\t\t\t\t/*::[*/0x0200/*::]*/:2,\n\t\t\t\t\t\t/*::[*/0x0300/*::]*/:3,\n\t\t\t\t\t\t/*::[*/0x0400/*::]*/:4,\n\t\t\t\t\t\t/*::[*/0x0500/*::]*/:5,\n\t\t\t\t\t\t/*::[*/0x0600/*::]*/:8,\n\t\t\t\t\t\t/*::[*/0x0002/*::]*/:2,\n\t\t\t\t\t\t/*::[*/0x0007/*::]*/:2\n\t\t\t\t\t}[val.BIFFVer] || 8;\n\t\t\t\t\topts.biffguess = val.BIFFVer == 0;\n\t\t\t\t\tif(val.BIFFVer == 0 && val.dt == 0x1000) { opts.biff = 5; seen_codepage = true; set_cp(opts.codepage = 28591); }\n\t\t\t\t\tif(opts.biff == 8 && val.BIFFVer == 0 && val.dt == 16) opts.biff = 2;\n\t\t\t\t\tif(file_depth++) break;\n\t\t\t\t\tout = ({}/*:any*/); if(options.dense) out[\"!data\"] = [];\n\n\t\t\t\t\tif(opts.biff < 8 && !seen_codepage) { seen_codepage = true; set_cp(opts.codepage = options.codepage || 1252); }\n\n\t\t\t\t\tif(opts.biff < 5 || val.BIFFVer == 0 && val.dt == 0x1000) {\n\t\t\t\t\t\tif(cur_sheet === \"\") cur_sheet = \"Sheet1\";\n\t\t\t\t\t\trange = {s:{r:0,c:0},e:{r:0,c:0}};\n\t\t\t\t\t\t/* fake BoundSheet8 */\n\t\t\t\t\t\tvar fakebs8 = {pos: blob.l - length, name:cur_sheet};\n\t\t\t\t\t\tDirectory[fakebs8.pos] = fakebs8;\n\t\t\t\t\t\topts.snames.push(cur_sheet);\n\t\t\t\t\t}\n\t\t\t\t\telse cur_sheet = (Directory[s] || {name:\"\"}).name;\n\t\t\t\t\tif(val.dt == 0x20) out[\"!type\"] = \"chart\";\n\t\t\t\t\tif(val.dt == 0x40) out[\"!type\"] = \"macro\";\n\t\t\t\t\tmerges = [];\n\t\t\t\t\tobjects = [];\n\t\t\t\t\topts.arrayf = arrayf = [];\n\t\t\t\t\tcolinfo = []; rowinfo = [];\n\t\t\t\t\tseencol = false;\n\t\t\t\t\twsprops = {Hidden:(Directory[s]||{hs:0}).hs, name:cur_sheet };\n\t\t\t\t} break;\n\t\t\t\tcase 0x0203 /* Number */: case 0x0003 /* BIFF2NUM */: case 0x0002 /* BIFF2INT */: {\n\t\t\t\t\tif(out[\"!type\"] == \"chart\") if(options.dense ? (out[\"!data\"][val.r]||[])[val.c]: out[encode_col(val.c) + encode_row(val.r)]) ++val.c;\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe]||{}, v:val.val, t:'n'}/*:any*/);\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 0x0005: case 0x0205 /* BoolErr */: {\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe], v:val.val, t:val.t}/*:any*/);\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 0x027e /* RK */: {\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe], v:val.rknum, t:'n'}/*:any*/);\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 0x00bd /* MulRk */: {\n\t\t\t\t\tfor(var j = val.c; j <= val.C; ++j) {\n\t\t\t\t\t\tvar ixfe = val.rkrec[j-val.c][0];\n\t\t\t\t\t\ttemp_val= ({ixfe:ixfe, XF:XFs[ixfe], v:val.rkrec[j-val.c][1], t:'n'}/*:any*/);\n\t\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\t\taddcell({c:j, r:val.r}, temp_val, options);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x0006: case 0x0206: case 0x0406 /* Formula */: {\n\t\t\t\t\tif(val.val == 'String') { last_formula = val; break; }\n\t\t\t\t\ttemp_val = make_cell(val.val, val.cell.ixfe, val.tt);\n\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\tif(options.cellFormula) {\n\t\t\t\t\t\tvar _f = val.formula;\n\t\t\t\t\t\tif(_f && _f[0] && _f[0][0] && _f[0][0][0] == 'PtgExp') {\n\t\t\t\t\t\t\tvar _fr = _f[0][0][1][0], _fc = _f[0][0][1][1];\n\t\t\t\t\t\t\tvar _fe = encode_cell({r:_fr, c:_fc});\n\t\t\t\t\t\t\tif(sharedf[_fe]) temp_val.f = \"\"+stringify_formula(val.formula,range,val.cell,supbooks, opts);\n\t\t\t\t\t\t\telse temp_val.F = ((options.dense ? (out[\"!data\"][_fr]||[])[_fc]: out[_fe]) || {}).F;\n\t\t\t\t\t\t} else temp_val.f = \"\"+stringify_formula(val.formula,range,val.cell,supbooks, opts);\n\t\t\t\t\t}\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell(val.cell, temp_val, options);\n\t\t\t\t\tlast_formula = val;\n\t\t\t\t} break;\n\t\t\t\tcase 0x0007: case 0x0207 /* String */: {\n\t\t\t\t\tif(last_formula) { /* technically always true */\n\t\t\t\t\t\tlast_formula.val = val;\n\t\t\t\t\t\ttemp_val = make_cell(val, last_formula.cell.ixfe, 's');\n\t\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\t\tif(options.cellFormula) {\n\t\t\t\t\t\t\ttemp_val.f = \"\"+stringify_formula(last_formula.formula, range, last_formula.cell, supbooks, opts);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\t\taddcell(last_formula.cell, temp_val, options);\n\t\t\t\t\t\tlast_formula = null;\n\t\t\t\t\t} else throw new Error(\"String record expects Formula\");\n\t\t\t\t} break;\n\t\t\t\tcase 0x0021: case 0x0221 /* Array */: {\n\t\t\t\t\tarrayf.push(val);\n\t\t\t\t\tvar _arraystart = encode_cell(val[0].s);\n\t\t\t\t\tcc = options.dense ? (out[\"!data\"][val[0].s.r]||[])[val[0].s.c] : out[_arraystart];\n\t\t\t\t\tif(options.cellFormula && cc) {\n\t\t\t\t\t\tif(!last_formula) break; /* technically unreachable */\n\t\t\t\t\t\tif(!_arraystart || !cc) break;\n\t\t\t\t\t\tcc.f = \"\"+stringify_formula(val[1], range, val[0], supbooks, opts);\n\t\t\t\t\t\tcc.F = encode_range(val[0]);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x04bc /* ShrFmla */: {\n\t\t\t\t\tif(!options.cellFormula) break;\n\t\t\t\t\tif(last_cell) {\n\t\t\t\t\t\t/* TODO: capture range */\n\t\t\t\t\t\tif(!last_formula) break; /* technically unreachable */\n\t\t\t\t\t\tsharedf[encode_cell(last_formula.cell)]= val[0];\n\t\t\t\t\t\tcc = options.dense ? (out[\"!data\"][last_formula.cell.r]||[])[last_formula.cell.c] : out[encode_cell(last_formula.cell)];\n\t\t\t\t\t\t(cc||{}).f = \"\"+stringify_formula(val[0], range, lastcell, supbooks, opts);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x00fd /* LabelSst */:\n\t\t\t\t\ttemp_val=make_cell(sst[val.isst].t, val.ixfe, 's');\n\t\t\t\t\tif(sst[val.isst].h) temp_val.h = sst[val.isst].h;\n\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x0201 /* Blank */: if(options.sheetStubs) {\n\t\t\t\t\ttemp_val = ({ixfe: val.ixfe, XF: XFs[val.ixfe], t:'z'}/*:any*/);\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 0x00be /* MulBlank */: if(options.sheetStubs) {\n\t\t\t\t\tfor(var _j = val.c; _j <= val.C; ++_j) {\n\t\t\t\t\t\tvar _ixfe = val.ixfe[_j-val.c];\n\t\t\t\t\t\ttemp_val= ({ixfe:_ixfe, XF:XFs[_ixfe], t:'z'}/*:any*/);\n\t\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\t\taddcell({c:_j, r:val.r}, temp_val, options);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x00d6 /* RString */:\n\t\t\t\tcase 0x0204 /* Label */: case 0x0004 /* BIFF2STR */:\n\t\t\t\t\ttemp_val=make_cell(val.val, val.ixfe, 's');\n\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\tif(BIFF2Fmt > 0) temp_val.z = BIFF2FmtTable[(temp_val.ixfe>>8) & 0x3F];\n\t\t\t\t\tsafe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 0x0000: case 0x0200 /* Dimensions */: {\n\t\t\t\t\tif(file_depth === 1) range = val; /* TODO: stack */\n\t\t\t\t} break;\n\t\t\t\tcase 0x00fc /* SST */: {\n\t\t\t\t\tsst = val;\n\t\t\t\t} break;\n\t\t\t\tcase 0x041e /* Format */: { /* val = [id, fmt] */\n\t\t\t\t\tif(opts.biff == 4) {\n\t\t\t\t\t\tBIFF2FmtTable[BIFF2Fmt++] = val[1];\n\t\t\t\t\t\tfor(var b4idx = 0; b4idx < BIFF2Fmt + 163; ++b4idx) if(table_fmt[b4idx] == val[1]) break;\n\t\t\t\t\t\tif(b4idx >= 163) SSF__load(val[1], BIFF2Fmt + 163);\n\t\t\t\t\t}\n\t\t\t\t\telse SSF__load(val[1], val[0]);\n\t\t\t\t} break;\n\t\t\t\tcase 0x001e /* BIFF2FORMAT */: {\n\t\t\t\t\tBIFF2FmtTable[BIFF2Fmt++] = val;\n\t\t\t\t\tfor(var b2idx = 0; b2idx < BIFF2Fmt + 163; ++b2idx) if(table_fmt[b2idx] == val) break;\n\t\t\t\t\tif(b2idx >= 163) SSF__load(val, BIFF2Fmt + 163);\n\t\t\t\t} break;\n\n\t\t\t\tcase 0x00e5 /* MergeCells */: merges = merges.concat(val); break;\n\n\t\t\t\tcase 0x005d /* Obj */: objects[val.cmo[0]] = opts.lastobj = val; break;\n\t\t\t\tcase 0x01b6 /* TxO */: opts.lastobj.TxO = val; break;\n\t\t\t\tcase 0x007f /* ImData */: opts.lastobj.ImData = val; break;\n\n\t\t\t\tcase 0x01b8 /* HLink */: {\n\t\t\t\t\tfor(rngR = val[0].s.r; rngR <= val[0].e.r; ++rngR)\n\t\t\t\t\t\tfor(rngC = val[0].s.c; rngC <= val[0].e.c; ++rngC) {\n\t\t\t\t\t\t\tcc = options.dense ? (out[\"!data\"][rngR]||[])[rngC] : out[encode_cell({c:rngC,r:rngR})];\n\t\t\t\t\t\t\tif(cc) cc.l = val[1];\n\t\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x0800 /* HLinkTooltip */: {\n\t\t\t\t\tfor(rngR = val[0].s.r; rngR <= val[0].e.r; ++rngR)\n\t\t\t\t\t\tfor(rngC = val[0].s.c; rngC <= val[0].e.c; ++rngC) {\n\t\t\t\t\t\t\tcc = options.dense ? (out[\"!data\"][rngR]||[])[rngC] : out[encode_cell({c:rngC,r:rngR})];\n\t\t\t\t\t\t\tif(cc && cc.l) cc.l.Tooltip = val[1];\n\t\t\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x001c /* Note */: {\n\t\t\t\t\tif(opts.biff <= 5 && opts.biff >= 2) break; /* TODO: BIFF5 */\n\t\t\t\t\tcc = options.dense ? (out[\"!data\"][val[0].r]||[])[val[0].c] : out[encode_cell(val[0])];\n\t\t\t\t\tvar noteobj = objects[val[2]];\n\t\t\t\t\tif(!cc) {\n\t\t\t\t\t\tif(options.dense) {\n\t\t\t\t\t\t\tif(!out[\"!data\"][val[0].r]) out[\"!data\"][val[0].r] = [];\n\t\t\t\t\t\t\tcc = out[\"!data\"][val[0].r][val[0].c] = ({t:\"z\"}/*:any*/);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcc = out[encode_cell(val[0])] = ({t:\"z\"}/*:any*/);\n\t\t\t\t\t\t}\n\t\t\t\t\t\trange.e.r = Math.max(range.e.r, val[0].r);\n\t\t\t\t\t\trange.s.r = Math.min(range.s.r, val[0].r);\n\t\t\t\t\t\trange.e.c = Math.max(range.e.c, val[0].c);\n\t\t\t\t\t\trange.s.c = Math.min(range.s.c, val[0].c);\n\t\t\t\t\t}\n\t\t\t\t\tif(!cc.c) cc.c = [];\n\t\t\t\t\tcmnt = {a:val[1],t:noteobj.TxO.t};\n\t\t\t\t\tcc.c.push(cmnt);\n\t\t\t\t} break;\n\t\t\t\tcase 0x087d /* XFExt */: update_xfext(XFs[val.ixfe], val.ext); break;\n\t\t\t\tcase 0x007d /* ColInfo */: {\n\t\t\t\t\tif(!opts.cellStyles) break;\n\t\t\t\t\twhile(val.e >= val.s) {\n\t\t\t\t\t\tcolinfo[val.e--] = { width: val.w/256, level: (val.level || 0), hidden: !!(val.flags & 1) };\n\t\t\t\t\t\tif(!seencol) { seencol = true; find_mdw_colw(val.w/256); }\n\t\t\t\t\t\tprocess_col(colinfo[val.e+1]);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x0208 /* Row */: {\n\t\t\t\t\tvar rowobj = {};\n\t\t\t\t\tif(val.level != null) { rowinfo[val.r] = rowobj; rowobj.level = val.level; }\n\t\t\t\t\tif(val.hidden) { rowinfo[val.r] = rowobj; rowobj.hidden = true; }\n\t\t\t\t\tif(val.hpt) {\n\t\t\t\t\t\trowinfo[val.r] = rowobj;\n\t\t\t\t\t\trowobj.hpt = val.hpt; rowobj.hpx = pt2px(val.hpt);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 0x0026 /* LeftMargin */:\n\t\t\t\tcase 0x0027 /* RightMargin */:\n\t\t\t\tcase 0x0028 /* TopMargin */:\n\t\t\t\tcase 0x0029 /* BottomMargin */:\n\t\t\t\t\tif(!out['!margins']) default_margins(out['!margins'] = {});\n\t\t\t\t\tout['!margins'][({0x26: \"left\", 0x27:\"right\", 0x28:\"top\", 0x29:\"bottom\"})[RecordType]] = val;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x00a1 /* Setup */: // TODO\n\t\t\t\t\tif(!out['!margins']) default_margins(out['!margins'] = {});\n\t\t\t\t\tout['!margins'].header = val.header;\n\t\t\t\t\tout['!margins'].footer = val.footer;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x023e /* Window2 */: // TODO\n\t\t\t\t\t// $FlowIgnore\n\t\t\t\t\tif(val.RTL) Workbook.Views[0].RTL = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0x0092 /* Palette */: palette = val; break;\n\t\t\t\tcase 0x0896 /* Theme */: themes = val; break;\n\t\t\t\tcase 0x008c /* Country */: country = val; break;\n\t\t\t\tcase 0x01ba /* CodeName */: {\n\t\t\t\t\t/*:: if(!Workbook.WBProps) Workbook.WBProps = {}; */\n\t\t\t\t\tif(!cur_sheet) Workbook.WBProps.CodeName = val || \"ThisWorkbook\";\n\t\t\t\t\telse wsprops.CodeName = val || wsprops.name;\n\t\t\t\t} break;\n\t\t\t}\n\t\t} else {\n\t\t\tif(!R) console.error(\"Missing Info for XLS Record 0x\" + RecordType.toString(16));\n\t\t\tblob.l += length;\n\t\t}\n\t}\n\twb.SheetNames=keys(Directory).sort(function(a,b) { return Number(a) - Number(b); }).map(function(x){return Directory[x].name;});\n\tif(!options.bookSheets) wb.Sheets=Sheets;\n\tif(!wb.SheetNames.length && Preamble[\"!ref\"]) {\n\t\twb.SheetNames.push(\"Sheet1\");\n\t\t/*jshint -W069 */\n\t\tif(wb.Sheets) wb.Sheets[\"Sheet1\"] = Preamble;\n\t\t/*jshint +W069 */\n\t} else wb.Preamble=Preamble;\n\tif(wb.Sheets) FilterDatabases.forEach(function(r,i) { wb.Sheets[wb.SheetNames[i]]['!autofilter'] = r; });\n\twb.Strings = sst;\n\twb.SSF = dup(table_fmt);\n\tif(opts.enc) wb.Encryption = opts.enc;\n\tif(themes) wb.Themes = themes;\n\twb.Metadata = {};\n\tif(country !== undefined) wb.Metadata.Country = country;\n\tif(supbooks.names.length > 0) Workbook.Names = supbooks.names;\n\twb.Workbook = Workbook;\n\treturn wb;\n}\n\n/* TODO: split props*/\nvar PSCLSID = {\n\tSI: \"e0859ff2f94f6810ab9108002b27b3d9\",\n\tDSI: \"02d5cdd59c2e1b10939708002b2cf9ae\",\n\tUDI: \"05d5cdd59c2e1b10939708002b2cf9ae\"\n};\nfunction parse_xls_props(cfb/*:CFBContainer*/, props, o) {\n\t/* [MS-OSHARED] 2.3.3.2.2 Document Summary Information Property Set */\n\tvar DSI = CFB.find(cfb, '/!DocumentSummaryInformation');\n\tif(DSI && DSI.size > 0) try {\n\t\tvar DocSummary = parse_PropertySetStream(DSI, DocSummaryPIDDSI, PSCLSID.DSI);\n\t\tfor(var d in DocSummary) props[d] = DocSummary[d];\n\t} catch(e) {if(o.WTF) throw e;/* empty */}\n\n\t/* [MS-OSHARED] 2.3.3.2.1 Summary Information Property Set*/\n\tvar SI = CFB.find(cfb, '/!SummaryInformation');\n\tif(SI && SI.size > 0) try {\n\t\tvar Summary = parse_PropertySetStream(SI, SummaryPIDSI, PSCLSID.SI);\n\t\tfor(var s in Summary) if(props[s] == null) props[s] = Summary[s];\n\t} catch(e) {if(o.WTF) throw e;/* empty */}\n\n\tif(props.HeadingPairs && props.TitlesOfParts) {\n\t\tload_props_pairs(props.HeadingPairs, props.TitlesOfParts, props, o);\n\t\tdelete props.HeadingPairs; delete props.TitlesOfParts;\n\t}\n}\nfunction write_xls_props(wb/*:Workbook*/, cfb/*:CFBContainer*/) {\n\tvar DSEntries = [], SEntries = [], CEntries = [];\n\tvar i = 0, Keys;\n\tvar DocSummaryRE/*:{[key:string]:string}*/ = evert_key(DocSummaryPIDDSI, \"n\");\n\tvar SummaryRE/*:{[key:string]:string}*/ = evert_key(SummaryPIDSI, \"n\");\n\tif(wb.Props) {\n\t\tKeys = keys(wb.Props);\n\t\t// $FlowIgnore\n\t\tfor(i = 0; i < Keys.length; ++i) (Object.prototype.hasOwnProperty.call(DocSummaryRE, Keys[i]) ? DSEntries : Object.prototype.hasOwnProperty.call(SummaryRE, Keys[i]) ? SEntries : CEntries).push([Keys[i], wb.Props[Keys[i]]]);\n\t}\n\tif(wb.Custprops) {\n\t\tKeys = keys(wb.Custprops);\n\t\t// $FlowIgnore\n\t\tfor(i = 0; i < Keys.length; ++i) if(!Object.prototype.hasOwnProperty.call((wb.Props||{}), Keys[i])) (Object.prototype.hasOwnProperty.call(DocSummaryRE, Keys[i]) ? DSEntries : Object.prototype.hasOwnProperty.call(SummaryRE, Keys[i]) ? SEntries : CEntries).push([Keys[i], wb.Custprops[Keys[i]]]);\n\t}\n\tvar CEntries2 = [];\n\tfor(i = 0; i < CEntries.length; ++i) {\n\t\tif(XLSPSSkip.indexOf(CEntries[i][0]) > -1 || PseudoPropsPairs.indexOf(CEntries[i][0]) > -1) continue;\n\t\tif(CEntries[i][1] == null) continue;\n\t\tCEntries2.push(CEntries[i]);\n\t}\n\tif(SEntries.length) CFB.utils.cfb_add(cfb, \"/\\u0005SummaryInformation\", write_PropertySetStream(SEntries, PSCLSID.SI, SummaryRE, SummaryPIDSI));\n\tif(DSEntries.length || CEntries2.length) CFB.utils.cfb_add(cfb, \"/\\u0005DocumentSummaryInformation\", write_PropertySetStream(DSEntries, PSCLSID.DSI, DocSummaryRE, DocSummaryPIDDSI, CEntries2.length ? CEntries2 : null, PSCLSID.UDI));\n}\n\nfunction parse_xlscfb(cfb/*:any*/, options/*:?ParseOpts*/)/*:Workbook*/ {\nif(!options) options = {};\nfix_read_opts(options);\nreset_cp();\nif(options.codepage) set_ansi(options.codepage);\nvar CompObj/*:?CFBEntry*/, WB/*:?any*/;\nif(cfb.FullPaths) {\n\tif(CFB.find(cfb, '/encryption')) throw new Error(\"File is password-protected\");\n\tCompObj = CFB.find(cfb, '!CompObj');\n\tWB = CFB.find(cfb, '/Workbook') || CFB.find(cfb, '/Book');\n} else {\n\tswitch(options.type) {\n\t\tcase 'base64': cfb = s2a(Base64_decode(cfb)); break;\n\t\tcase 'binary': cfb = s2a(cfb); break;\n\t\tcase 'buffer': break;\n\t\tcase 'array': if(!Array.isArray(cfb)) cfb = Array.prototype.slice.call(cfb); break;\n\t}\n\tprep_blob(cfb, 0);\n\tWB = ({content: cfb}/*:any*/);\n}\nvar /*::CompObjP, */WorkbookP/*:: :Workbook = XLSX.utils.book_new(); */;\n\nvar _data/*:?any*/;\nif(CompObj) /*::CompObjP = */parse_compobj(CompObj);\nif(options.bookProps && !options.bookSheets) WorkbookP = ({}/*:any*/);\nelse/*:: if(cfb instanceof CFBContainer) */ {\n\tvar T = has_buf ? 'buffer' : 'array';\n\tif(WB && WB.content) WorkbookP = parse_workbook(WB.content, options);\n\t/* Quattro Pro 7-8 */\n\telse if((_data=CFB.find(cfb, 'PerfectOffice_MAIN')) && _data.content) WorkbookP = WK_.to_workbook(_data.content, (options.type = T, options));\n\t/* Quattro Pro 9 */\n\telse if((_data=CFB.find(cfb, 'NativeContent_MAIN')) && _data.content) WorkbookP = WK_.to_workbook(_data.content, (options.type = T, options));\n\t/* Works 4 for Mac */\n\telse if((_data=CFB.find(cfb, 'MN0')) && _data.content) throw new Error(\"Unsupported Works 4 for Mac file\");\n\telse throw new Error(\"Cannot find Workbook stream\");\n\tif(options.bookVBA && cfb.FullPaths && CFB.find(cfb, '/_VBA_PROJECT_CUR/VBA/dir')) WorkbookP.vbaraw = make_vba_xls(cfb);\n}\n\nvar props = {};\nif(cfb.FullPaths) parse_xls_props(/*::((*/cfb/*:: :any):CFBContainer)*/, props, options);\n\nWorkbookP.Props = WorkbookP.Custprops = props; /* TODO: split up properties */\nif(options.bookFiles) WorkbookP.cfb = cfb;\n/*WorkbookP.CompObjP = CompObjP; // TODO: storage? */\nreturn WorkbookP;\n}\n\n\nfunction write_xlscfb(wb/*:Workbook*/, opts/*:WriteOpts*/)/*:CFBContainer*/ {\n\tvar o = opts || {};\n\tvar cfb = CFB.utils.cfb_new({root:\"R\"});\n\tvar wbpath = \"/Workbook\";\n\tswitch(o.bookType || \"xls\") {\n\t\tcase \"xls\": o.bookType = \"biff8\";\n\t\t/* falls through */\n\t\tcase \"xla\": if(!o.bookType) o.bookType = \"xla\";\n\t\t/* falls through */\n\t\tcase \"biff8\": wbpath = \"/Workbook\"; o.biff = 8; break;\n\t\tcase \"biff5\": wbpath = \"/Book\"; o.biff = 5; break;\n\t\tdefault: throw new Error(\"invalid type \" + o.bookType + \" for XLS CFB\");\n\t}\n\tCFB.utils.cfb_add(cfb, wbpath, write_biff_buf(wb, o));\n\tif(o.biff == 8 && (wb.Props || wb.Custprops)) write_xls_props(wb, cfb);\n\t// TODO: SI, DSI, CO\n\tif(o.biff == 8 && wb.vbaraw) fill_vba_xls(cfb, CFB.read(wb.vbaraw, {type: typeof wb.vbaraw == \"string\" ? \"binary\" : \"buffer\"}));\n\treturn cfb;\n}\n/* [MS-XLSB] 2.3 Record Enumeration */\nvar XLSBRecordEnum = {\n\t/*::[*/0x0000/*::]*/: { /* n:\"BrtRowHdr\", */ f:parse_BrtRowHdr },\n\t/*::[*/0x0001/*::]*/: { /* n:\"BrtCellBlank\", */ f:parse_BrtCellBlank },\n\t/*::[*/0x0002/*::]*/: { /* n:\"BrtCellRk\", */ f:parse_BrtCellRk },\n\t/*::[*/0x0003/*::]*/: { /* n:\"BrtCellError\", */ f:parse_BrtCellError },\n\t/*::[*/0x0004/*::]*/: { /* n:\"BrtCellBool\", */ f:parse_BrtCellBool },\n\t/*::[*/0x0005/*::]*/: { /* n:\"BrtCellReal\", */ f:parse_BrtCellReal },\n\t/*::[*/0x0006/*::]*/: { /* n:\"BrtCellSt\", */ f:parse_BrtCellSt },\n\t/*::[*/0x0007/*::]*/: { /* n:\"BrtCellIsst\", */ f:parse_BrtCellIsst },\n\t/*::[*/0x0008/*::]*/: { /* n:\"BrtFmlaString\", */ f:parse_BrtFmlaString },\n\t/*::[*/0x0009/*::]*/: { /* n:\"BrtFmlaNum\", */ f:parse_BrtFmlaNum },\n\t/*::[*/0x000A/*::]*/: { /* n:\"BrtFmlaBool\", */ f:parse_BrtFmlaBool },\n\t/*::[*/0x000B/*::]*/: { /* n:\"BrtFmlaError\", */ f:parse_BrtFmlaError },\n\t/*::[*/0x000C/*::]*/: { /* n:\"BrtShortBlank\", */ f:parse_BrtShortBlank },\n\t/*::[*/0x000D/*::]*/: { /* n:\"BrtShortRk\", */ f:parse_BrtShortRk },\n\t/*::[*/0x000E/*::]*/: { /* n:\"BrtShortError\", */ f:parse_BrtShortError },\n\t/*::[*/0x000F/*::]*/: { /* n:\"BrtShortBool\", */ f:parse_BrtShortBool },\n\t/*::[*/0x0010/*::]*/: { /* n:\"BrtShortReal\", */ f:parse_BrtShortReal },\n\t/*::[*/0x0011/*::]*/: { /* n:\"BrtShortSt\", */ f:parse_BrtShortSt },\n\t/*::[*/0x0012/*::]*/: { /* n:\"BrtShortIsst\", */ f:parse_BrtShortIsst },\n\t/*::[*/0x0013/*::]*/: { /* n:\"BrtSSTItem\", */ f:parse_RichStr },\n\t/*::[*/0x0014/*::]*/: { /* n:\"BrtPCDIMissing\" */ },\n\t/*::[*/0x0015/*::]*/: { /* n:\"BrtPCDINumber\" */ },\n\t/*::[*/0x0016/*::]*/: { /* n:\"BrtPCDIBoolean\" */ },\n\t/*::[*/0x0017/*::]*/: { /* n:\"BrtPCDIError\" */ },\n\t/*::[*/0x0018/*::]*/: { /* n:\"BrtPCDIString\" */ },\n\t/*::[*/0x0019/*::]*/: { /* n:\"BrtPCDIDatetime\" */ },\n\t/*::[*/0x001A/*::]*/: { /* n:\"BrtPCDIIndex\" */ },\n\t/*::[*/0x001B/*::]*/: { /* n:\"BrtPCDIAMissing\" */ },\n\t/*::[*/0x001C/*::]*/: { /* n:\"BrtPCDIANumber\" */ },\n\t/*::[*/0x001D/*::]*/: { /* n:\"BrtPCDIABoolean\" */ },\n\t/*::[*/0x001E/*::]*/: { /* n:\"BrtPCDIAError\" */ },\n\t/*::[*/0x001F/*::]*/: { /* n:\"BrtPCDIAString\" */ },\n\t/*::[*/0x0020/*::]*/: { /* n:\"BrtPCDIADatetime\" */ },\n\t/*::[*/0x0021/*::]*/: { /* n:\"BrtPCRRecord\" */ },\n\t/*::[*/0x0022/*::]*/: { /* n:\"BrtPCRRecordDt\" */ },\n\t/*::[*/0x0023/*::]*/: { /* n:\"BrtFRTBegin\", */ T:1 },\n\t/*::[*/0x0024/*::]*/: { /* n:\"BrtFRTEnd\", */ T:-1 },\n\t/*::[*/0x0025/*::]*/: { /* n:\"BrtACBegin\", */ T:1 },\n\t/*::[*/0x0026/*::]*/: { /* n:\"BrtACEnd\", */ T:-1 },\n\t/*::[*/0x0027/*::]*/: { /* n:\"BrtName\", */ f:parse_BrtName },\n\t/*::[*/0x0028/*::]*/: { /* n:\"BrtIndexRowBlock\" */ },\n\t/*::[*/0x002A/*::]*/: { /* n:\"BrtIndexBlock\" */ },\n\t/*::[*/0x002B/*::]*/: { /* n:\"BrtFont\", */ f:parse_BrtFont },\n\t/*::[*/0x002C/*::]*/: { /* n:\"BrtFmt\", */ f:parse_BrtFmt },\n\t/*::[*/0x002D/*::]*/: { /* n:\"BrtFill\", */ f:parse_BrtFill },\n\t/*::[*/0x002E/*::]*/: { /* n:\"BrtBorder\", */ f:parse_BrtBorder },\n\t/*::[*/0x002F/*::]*/: { /* n:\"BrtXF\", */ f:parse_BrtXF },\n\t/*::[*/0x0030/*::]*/: { /* n:\"BrtStyle\" */ },\n\t/*::[*/0x0031/*::]*/: { /* n:\"BrtCellMeta\", */ f:parse_Int32LE },\n\t/*::[*/0x0032/*::]*/: { /* n:\"BrtValueMeta\" */ },\n\t/*::[*/0x0033/*::]*/: { /* n:\"BrtMdb\" */ f:parse_BrtMdb },\n\t/*::[*/0x0034/*::]*/: { /* n:\"BrtBeginFmd\", */ T:1 },\n\t/*::[*/0x0035/*::]*/: { /* n:\"BrtEndFmd\", */ T:-1 },\n\t/*::[*/0x0036/*::]*/: { /* n:\"BrtBeginMdx\", */ T:1 },\n\t/*::[*/0x0037/*::]*/: { /* n:\"BrtEndMdx\", */ T:-1 },\n\t/*::[*/0x0038/*::]*/: { /* n:\"BrtBeginMdxTuple\", */ T:1 },\n\t/*::[*/0x0039/*::]*/: { /* n:\"BrtEndMdxTuple\", */ T:-1 },\n\t/*::[*/0x003A/*::]*/: { /* n:\"BrtMdxMbrIstr\" */ },\n\t/*::[*/0x003B/*::]*/: { /* n:\"BrtStr\" */ },\n\t/*::[*/0x003C/*::]*/: { /* n:\"BrtColInfo\", */ f:parse_ColInfo },\n\t/*::[*/0x003E/*::]*/: { /* n:\"BrtCellRString\", */ f:parse_BrtCellRString },\n\t/*::[*/0x003F/*::]*/: { /* n:\"BrtCalcChainItem$\", */ f:parse_BrtCalcChainItem$ },\n\t/*::[*/0x0040/*::]*/: { /* n:\"BrtDVal\", */ f:parse_BrtDVal },\n\t/*::[*/0x0041/*::]*/: { /* n:\"BrtSxvcellNum\" */ },\n\t/*::[*/0x0042/*::]*/: { /* n:\"BrtSxvcellStr\" */ },\n\t/*::[*/0x0043/*::]*/: { /* n:\"BrtSxvcellBool\" */ },\n\t/*::[*/0x0044/*::]*/: { /* n:\"BrtSxvcellErr\" */ },\n\t/*::[*/0x0045/*::]*/: { /* n:\"BrtSxvcellDate\" */ },\n\t/*::[*/0x0046/*::]*/: { /* n:\"BrtSxvcellNil\" */ },\n\t/*::[*/0x0080/*::]*/: { /* n:\"BrtFileVersion\" */ },\n\t/*::[*/0x0081/*::]*/: { /* n:\"BrtBeginSheet\", */ T:1 },\n\t/*::[*/0x0082/*::]*/: { /* n:\"BrtEndSheet\", */ T:-1 },\n\t/*::[*/0x0083/*::]*/: { /* n:\"BrtBeginBook\", */ T:1, f:parsenoop, p:0 },\n\t/*::[*/0x0084/*::]*/: { /* n:\"BrtEndBook\", */ T:-1 },\n\t/*::[*/0x0085/*::]*/: { /* n:\"BrtBeginWsViews\", */ T:1 },\n\t/*::[*/0x0086/*::]*/: { /* n:\"BrtEndWsViews\", */ T:-1 },\n\t/*::[*/0x0087/*::]*/: { /* n:\"BrtBeginBookViews\", */ T:1 },\n\t/*::[*/0x0088/*::]*/: { /* n:\"BrtEndBookViews\", */ T:-1 },\n\t/*::[*/0x0089/*::]*/: { /* n:\"BrtBeginWsView\", */ T:1, f:parse_BrtBeginWsView },\n\t/*::[*/0x008A/*::]*/: { /* n:\"BrtEndWsView\", */ T:-1 },\n\t/*::[*/0x008B/*::]*/: { /* n:\"BrtBeginCsViews\", */ T:1 },\n\t/*::[*/0x008C/*::]*/: { /* n:\"BrtEndCsViews\", */ T:-1 },\n\t/*::[*/0x008D/*::]*/: { /* n:\"BrtBeginCsView\", */ T:1 },\n\t/*::[*/0x008E/*::]*/: { /* n:\"BrtEndCsView\", */ T:-1 },\n\t/*::[*/0x008F/*::]*/: { /* n:\"BrtBeginBundleShs\", */ T:1 },\n\t/*::[*/0x0090/*::]*/: { /* n:\"BrtEndBundleShs\", */ T:-1 },\n\t/*::[*/0x0091/*::]*/: { /* n:\"BrtBeginSheetData\", */ T:1 },\n\t/*::[*/0x0092/*::]*/: { /* n:\"BrtEndSheetData\", */ T:-1 },\n\t/*::[*/0x0093/*::]*/: { /* n:\"BrtWsProp\", */ f:parse_BrtWsProp },\n\t/*::[*/0x0094/*::]*/: { /* n:\"BrtWsDim\", */ f:parse_BrtWsDim, p:16 },\n\t/*::[*/0x0097/*::]*/: { /* n:\"BrtPane\", */ f:parse_BrtPane },\n\t/*::[*/0x0098/*::]*/: { /* n:\"BrtSel\" */ },\n\t/*::[*/0x0099/*::]*/: { /* n:\"BrtWbProp\", */ f:parse_BrtWbProp },\n\t/*::[*/0x009A/*::]*/: { /* n:\"BrtWbFactoid\" */ },\n\t/*::[*/0x009B/*::]*/: { /* n:\"BrtFileRecover\" */ },\n\t/*::[*/0x009C/*::]*/: { /* n:\"BrtBundleSh\", */ f:parse_BrtBundleSh },\n\t/*::[*/0x009D/*::]*/: { /* n:\"BrtCalcProp\" */ },\n\t/*::[*/0x009E/*::]*/: { /* n:\"BrtBookView\" */ },\n\t/*::[*/0x009F/*::]*/: { /* n:\"BrtBeginSst\", */ T:1, f:parse_BrtBeginSst },\n\t/*::[*/0x00A0/*::]*/: { /* n:\"BrtEndSst\", */ T:-1 },\n\t/*::[*/0x00A1/*::]*/: { /* n:\"BrtBeginAFilter\", */ T:1, f:parse_UncheckedRfX },\n\t/*::[*/0x00A2/*::]*/: { /* n:\"BrtEndAFilter\", */ T:-1 },\n\t/*::[*/0x00A3/*::]*/: { /* n:\"BrtBeginFilterColumn\", */ T:1 },\n\t/*::[*/0x00A4/*::]*/: { /* n:\"BrtEndFilterColumn\", */ T:-1 },\n\t/*::[*/0x00A5/*::]*/: { /* n:\"BrtBeginFilters\", */ T:1 },\n\t/*::[*/0x00A6/*::]*/: { /* n:\"BrtEndFilters\", */ T:-1 },\n\t/*::[*/0x00A7/*::]*/: { /* n:\"BrtFilter\" */ },\n\t/*::[*/0x00A8/*::]*/: { /* n:\"BrtColorFilter\" */ },\n\t/*::[*/0x00A9/*::]*/: { /* n:\"BrtIconFilter\" */ },\n\t/*::[*/0x00AA/*::]*/: { /* n:\"BrtTop10Filter\" */ },\n\t/*::[*/0x00AB/*::]*/: { /* n:\"BrtDynamicFilter\" */ },\n\t/*::[*/0x00AC/*::]*/: { /* n:\"BrtBeginCustomFilters\", */ T:1 },\n\t/*::[*/0x00AD/*::]*/: { /* n:\"BrtEndCustomFilters\", */ T:-1 },\n\t/*::[*/0x00AE/*::]*/: { /* n:\"BrtCustomFilter\" */ },\n\t/*::[*/0x00AF/*::]*/: { /* n:\"BrtAFilterDateGroupItem\" */ },\n\t/*::[*/0x00B0/*::]*/: { /* n:\"BrtMergeCell\", */ f:parse_BrtMergeCell },\n\t/*::[*/0x00B1/*::]*/: { /* n:\"BrtBeginMergeCells\", */ T:1 },\n\t/*::[*/0x00B2/*::]*/: { /* n:\"BrtEndMergeCells\", */ T:-1 },\n\t/*::[*/0x00B3/*::]*/: { /* n:\"BrtBeginPivotCacheDef\", */ T:1 },\n\t/*::[*/0x00B4/*::]*/: { /* n:\"BrtEndPivotCacheDef\", */ T:-1 },\n\t/*::[*/0x00B5/*::]*/: { /* n:\"BrtBeginPCDFields\", */ T:1 },\n\t/*::[*/0x00B6/*::]*/: { /* n:\"BrtEndPCDFields\", */ T:-1 },\n\t/*::[*/0x00B7/*::]*/: { /* n:\"BrtBeginPCDField\", */ T:1 },\n\t/*::[*/0x00B8/*::]*/: { /* n:\"BrtEndPCDField\", */ T:-1 },\n\t/*::[*/0x00B9/*::]*/: { /* n:\"BrtBeginPCDSource\", */ T:1 },\n\t/*::[*/0x00BA/*::]*/: { /* n:\"BrtEndPCDSource\", */ T:-1 },\n\t/*::[*/0x00BB/*::]*/: { /* n:\"BrtBeginPCDSRange\", */ T:1 },\n\t/*::[*/0x00BC/*::]*/: { /* n:\"BrtEndPCDSRange\", */ T:-1 },\n\t/*::[*/0x00BD/*::]*/: { /* n:\"BrtBeginPCDFAtbl\", */ T:1 },\n\t/*::[*/0x00BE/*::]*/: { /* n:\"BrtEndPCDFAtbl\", */ T:-1 },\n\t/*::[*/0x00BF/*::]*/: { /* n:\"BrtBeginPCDIRun\", */ T:1 },\n\t/*::[*/0x00C0/*::]*/: { /* n:\"BrtEndPCDIRun\", */ T:-1 },\n\t/*::[*/0x00C1/*::]*/: { /* n:\"BrtBeginPivotCacheRecords\", */ T:1 },\n\t/*::[*/0x00C2/*::]*/: { /* n:\"BrtEndPivotCacheRecords\", */ T:-1 },\n\t/*::[*/0x00C3/*::]*/: { /* n:\"BrtBeginPCDHierarchies\", */ T:1 },\n\t/*::[*/0x00C4/*::]*/: { /* n:\"BrtEndPCDHierarchies\", */ T:-1 },\n\t/*::[*/0x00C5/*::]*/: { /* n:\"BrtBeginPCDHierarchy\", */ T:1 },\n\t/*::[*/0x00C6/*::]*/: { /* n:\"BrtEndPCDHierarchy\", */ T:-1 },\n\t/*::[*/0x00C7/*::]*/: { /* n:\"BrtBeginPCDHFieldsUsage\", */ T:1 },\n\t/*::[*/0x00C8/*::]*/: { /* n:\"BrtEndPCDHFieldsUsage\", */ T:-1 },\n\t/*::[*/0x00C9/*::]*/: { /* n:\"BrtBeginExtConnection\", */ T:1 },\n\t/*::[*/0x00CA/*::]*/: { /* n:\"BrtEndExtConnection\", */ T:-1 },\n\t/*::[*/0x00CB/*::]*/: { /* n:\"BrtBeginECDbProps\", */ T:1 },\n\t/*::[*/0x00CC/*::]*/: { /* n:\"BrtEndECDbProps\", */ T:-1 },\n\t/*::[*/0x00CD/*::]*/: { /* n:\"BrtBeginECOlapProps\", */ T:1 },\n\t/*::[*/0x00CE/*::]*/: { /* n:\"BrtEndECOlapProps\", */ T:-1 },\n\t/*::[*/0x00CF/*::]*/: { /* n:\"BrtBeginPCDSConsol\", */ T:1 },\n\t/*::[*/0x00D0/*::]*/: { /* n:\"BrtEndPCDSConsol\", */ T:-1 },\n\t/*::[*/0x00D1/*::]*/: { /* n:\"BrtBeginPCDSCPages\", */ T:1 },\n\t/*::[*/0x00D2/*::]*/: { /* n:\"BrtEndPCDSCPages\", */ T:-1 },\n\t/*::[*/0x00D3/*::]*/: { /* n:\"BrtBeginPCDSCPage\", */ T:1 },\n\t/*::[*/0x00D4/*::]*/: { /* n:\"BrtEndPCDSCPage\", */ T:-1 },\n\t/*::[*/0x00D5/*::]*/: { /* n:\"BrtBeginPCDSCPItem\", */ T:1 },\n\t/*::[*/0x00D6/*::]*/: { /* n:\"BrtEndPCDSCPItem\", */ T:-1 },\n\t/*::[*/0x00D7/*::]*/: { /* n:\"BrtBeginPCDSCSets\", */ T:1 },\n\t/*::[*/0x00D8/*::]*/: { /* n:\"BrtEndPCDSCSets\", */ T:-1 },\n\t/*::[*/0x00D9/*::]*/: { /* n:\"BrtBeginPCDSCSet\", */ T:1 },\n\t/*::[*/0x00DA/*::]*/: { /* n:\"BrtEndPCDSCSet\", */ T:-1 },\n\t/*::[*/0x00DB/*::]*/: { /* n:\"BrtBeginPCDFGroup\", */ T:1 },\n\t/*::[*/0x00DC/*::]*/: { /* n:\"BrtEndPCDFGroup\", */ T:-1 },\n\t/*::[*/0x00DD/*::]*/: { /* n:\"BrtBeginPCDFGItems\", */ T:1 },\n\t/*::[*/0x00DE/*::]*/: { /* n:\"BrtEndPCDFGItems\", */ T:-1 },\n\t/*::[*/0x00DF/*::]*/: { /* n:\"BrtBeginPCDFGRange\", */ T:1 },\n\t/*::[*/0x00E0/*::]*/: { /* n:\"BrtEndPCDFGRange\", */ T:-1 },\n\t/*::[*/0x00E1/*::]*/: { /* n:\"BrtBeginPCDFGDiscrete\", */ T:1 },\n\t/*::[*/0x00E2/*::]*/: { /* n:\"BrtEndPCDFGDiscrete\", */ T:-1 },\n\t/*::[*/0x00E3/*::]*/: { /* n:\"BrtBeginPCDSDTupleCache\", */ T:1 },\n\t/*::[*/0x00E4/*::]*/: { /* n:\"BrtEndPCDSDTupleCache\", */ T:-1 },\n\t/*::[*/0x00E5/*::]*/: { /* n:\"BrtBeginPCDSDTCEntries\", */ T:1 },\n\t/*::[*/0x00E6/*::]*/: { /* n:\"BrtEndPCDSDTCEntries\", */ T:-1 },\n\t/*::[*/0x00E7/*::]*/: { /* n:\"BrtBeginPCDSDTCEMembers\", */ T:1 },\n\t/*::[*/0x00E8/*::]*/: { /* n:\"BrtEndPCDSDTCEMembers\", */ T:-1 },\n\t/*::[*/0x00E9/*::]*/: { /* n:\"BrtBeginPCDSDTCEMember\", */ T:1 },\n\t/*::[*/0x00EA/*::]*/: { /* n:\"BrtEndPCDSDTCEMember\", */ T:-1 },\n\t/*::[*/0x00EB/*::]*/: { /* n:\"BrtBeginPCDSDTCQueries\", */ T:1 },\n\t/*::[*/0x00EC/*::]*/: { /* n:\"BrtEndPCDSDTCQueries\", */ T:-1 },\n\t/*::[*/0x00ED/*::]*/: { /* n:\"BrtBeginPCDSDTCQuery\", */ T:1 },\n\t/*::[*/0x00EE/*::]*/: { /* n:\"BrtEndPCDSDTCQuery\", */ T:-1 },\n\t/*::[*/0x00EF/*::]*/: { /* n:\"BrtBeginPCDSDTCSets\", */ T:1 },\n\t/*::[*/0x00F0/*::]*/: { /* n:\"BrtEndPCDSDTCSets\", */ T:-1 },\n\t/*::[*/0x00F1/*::]*/: { /* n:\"BrtBeginPCDSDTCSet\", */ T:1 },\n\t/*::[*/0x00F2/*::]*/: { /* n:\"BrtEndPCDSDTCSet\", */ T:-1 },\n\t/*::[*/0x00F3/*::]*/: { /* n:\"BrtBeginPCDCalcItems\", */ T:1 },\n\t/*::[*/0x00F4/*::]*/: { /* n:\"BrtEndPCDCalcItems\", */ T:-1 },\n\t/*::[*/0x00F5/*::]*/: { /* n:\"BrtBeginPCDCalcItem\", */ T:1 },\n\t/*::[*/0x00F6/*::]*/: { /* n:\"BrtEndPCDCalcItem\", */ T:-1 },\n\t/*::[*/0x00F7/*::]*/: { /* n:\"BrtBeginPRule\", */ T:1 },\n\t/*::[*/0x00F8/*::]*/: { /* n:\"BrtEndPRule\", */ T:-1 },\n\t/*::[*/0x00F9/*::]*/: { /* n:\"BrtBeginPRFilters\", */ T:1 },\n\t/*::[*/0x00FA/*::]*/: { /* n:\"BrtEndPRFilters\", */ T:-1 },\n\t/*::[*/0x00FB/*::]*/: { /* n:\"BrtBeginPRFilter\", */ T:1 },\n\t/*::[*/0x00FC/*::]*/: { /* n:\"BrtEndPRFilter\", */ T:-1 },\n\t/*::[*/0x00FD/*::]*/: { /* n:\"BrtBeginPNames\", */ T:1 },\n\t/*::[*/0x00FE/*::]*/: { /* n:\"BrtEndPNames\", */ T:-1 },\n\t/*::[*/0x00FF/*::]*/: { /* n:\"BrtBeginPName\", */ T:1 },\n\t/*::[*/0x0100/*::]*/: { /* n:\"BrtEndPName\", */ T:-1 },\n\t/*::[*/0x0101/*::]*/: { /* n:\"BrtBeginPNPairs\", */ T:1 },\n\t/*::[*/0x0102/*::]*/: { /* n:\"BrtEndPNPairs\", */ T:-1 },\n\t/*::[*/0x0103/*::]*/: { /* n:\"BrtBeginPNPair\", */ T:1 },\n\t/*::[*/0x0104/*::]*/: { /* n:\"BrtEndPNPair\", */ T:-1 },\n\t/*::[*/0x0105/*::]*/: { /* n:\"BrtBeginECWebProps\", */ T:1 },\n\t/*::[*/0x0106/*::]*/: { /* n:\"BrtEndECWebProps\", */ T:-1 },\n\t/*::[*/0x0107/*::]*/: { /* n:\"BrtBeginEcWpTables\", */ T:1 },\n\t/*::[*/0x0108/*::]*/: { /* n:\"BrtEndECWPTables\", */ T:-1 },\n\t/*::[*/0x0109/*::]*/: { /* n:\"BrtBeginECParams\", */ T:1 },\n\t/*::[*/0x010A/*::]*/: { /* n:\"BrtEndECParams\", */ T:-1 },\n\t/*::[*/0x010B/*::]*/: { /* n:\"BrtBeginECParam\", */ T:1 },\n\t/*::[*/0x010C/*::]*/: { /* n:\"BrtEndECParam\", */ T:-1 },\n\t/*::[*/0x010D/*::]*/: { /* n:\"BrtBeginPCDKPIs\", */ T:1 },\n\t/*::[*/0x010E/*::]*/: { /* n:\"BrtEndPCDKPIs\", */ T:-1 },\n\t/*::[*/0x010F/*::]*/: { /* n:\"BrtBeginPCDKPI\", */ T:1 },\n\t/*::[*/0x0110/*::]*/: { /* n:\"BrtEndPCDKPI\", */ T:-1 },\n\t/*::[*/0x0111/*::]*/: { /* n:\"BrtBeginDims\", */ T:1 },\n\t/*::[*/0x0112/*::]*/: { /* n:\"BrtEndDims\", */ T:-1 },\n\t/*::[*/0x0113/*::]*/: { /* n:\"BrtBeginDim\", */ T:1 },\n\t/*::[*/0x0114/*::]*/: { /* n:\"BrtEndDim\", */ T:-1 },\n\t/*::[*/0x0115/*::]*/: { /* n:\"BrtIndexPartEnd\" */ },\n\t/*::[*/0x0116/*::]*/: { /* n:\"BrtBeginStyleSheet\", */ T:1 },\n\t/*::[*/0x0117/*::]*/: { /* n:\"BrtEndStyleSheet\", */ T:-1 },\n\t/*::[*/0x0118/*::]*/: { /* n:\"BrtBeginSXView\", */ T:1 },\n\t/*::[*/0x0119/*::]*/: { /* n:\"BrtEndSXVI\", */ T:-1 },\n\t/*::[*/0x011A/*::]*/: { /* n:\"BrtBeginSXVI\", */ T:1 },\n\t/*::[*/0x011B/*::]*/: { /* n:\"BrtBeginSXVIs\", */ T:1 },\n\t/*::[*/0x011C/*::]*/: { /* n:\"BrtEndSXVIs\", */ T:-1 },\n\t/*::[*/0x011D/*::]*/: { /* n:\"BrtBeginSXVD\", */ T:1 },\n\t/*::[*/0x011E/*::]*/: { /* n:\"BrtEndSXVD\", */ T:-1 },\n\t/*::[*/0x011F/*::]*/: { /* n:\"BrtBeginSXVDs\", */ T:1 },\n\t/*::[*/0x0120/*::]*/: { /* n:\"BrtEndSXVDs\", */ T:-1 },\n\t/*::[*/0x0121/*::]*/: { /* n:\"BrtBeginSXPI\", */ T:1 },\n\t/*::[*/0x0122/*::]*/: { /* n:\"BrtEndSXPI\", */ T:-1 },\n\t/*::[*/0x0123/*::]*/: { /* n:\"BrtBeginSXPIs\", */ T:1 },\n\t/*::[*/0x0124/*::]*/: { /* n:\"BrtEndSXPIs\", */ T:-1 },\n\t/*::[*/0x0125/*::]*/: { /* n:\"BrtBeginSXDI\", */ T:1 },\n\t/*::[*/0x0126/*::]*/: { /* n:\"BrtEndSXDI\", */ T:-1 },\n\t/*::[*/0x0127/*::]*/: { /* n:\"BrtBeginSXDIs\", */ T:1 },\n\t/*::[*/0x0128/*::]*/: { /* n:\"BrtEndSXDIs\", */ T:-1 },\n\t/*::[*/0x0129/*::]*/: { /* n:\"BrtBeginSXLI\", */ T:1 },\n\t/*::[*/0x012A/*::]*/: { /* n:\"BrtEndSXLI\", */ T:-1 },\n\t/*::[*/0x012B/*::]*/: { /* n:\"BrtBeginSXLIRws\", */ T:1 },\n\t/*::[*/0x012C/*::]*/: { /* n:\"BrtEndSXLIRws\", */ T:-1 },\n\t/*::[*/0x012D/*::]*/: { /* n:\"BrtBeginSXLICols\", */ T:1 },\n\t/*::[*/0x012E/*::]*/: { /* n:\"BrtEndSXLICols\", */ T:-1 },\n\t/*::[*/0x012F/*::]*/: { /* n:\"BrtBeginSXFormat\", */ T:1 },\n\t/*::[*/0x0130/*::]*/: { /* n:\"BrtEndSXFormat\", */ T:-1 },\n\t/*::[*/0x0131/*::]*/: { /* n:\"BrtBeginSXFormats\", */ T:1 },\n\t/*::[*/0x0132/*::]*/: { /* n:\"BrtEndSxFormats\", */ T:-1 },\n\t/*::[*/0x0133/*::]*/: { /* n:\"BrtBeginSxSelect\", */ T:1 },\n\t/*::[*/0x0134/*::]*/: { /* n:\"BrtEndSxSelect\", */ T:-1 },\n\t/*::[*/0x0135/*::]*/: { /* n:\"BrtBeginISXVDRws\", */ T:1 },\n\t/*::[*/0x0136/*::]*/: { /* n:\"BrtEndISXVDRws\", */ T:-1 },\n\t/*::[*/0x0137/*::]*/: { /* n:\"BrtBeginISXVDCols\", */ T:1 },\n\t/*::[*/0x0138/*::]*/: { /* n:\"BrtEndISXVDCols\", */ T:-1 },\n\t/*::[*/0x0139/*::]*/: { /* n:\"BrtEndSXLocation\", */ T:-1 },\n\t/*::[*/0x013A/*::]*/: { /* n:\"BrtBeginSXLocation\", */ T:1 },\n\t/*::[*/0x013B/*::]*/: { /* n:\"BrtEndSXView\", */ T:-1 },\n\t/*::[*/0x013C/*::]*/: { /* n:\"BrtBeginSXTHs\", */ T:1 },\n\t/*::[*/0x013D/*::]*/: { /* n:\"BrtEndSXTHs\", */ T:-1 },\n\t/*::[*/0x013E/*::]*/: { /* n:\"BrtBeginSXTH\", */ T:1 },\n\t/*::[*/0x013F/*::]*/: { /* n:\"BrtEndSXTH\", */ T:-1 },\n\t/*::[*/0x0140/*::]*/: { /* n:\"BrtBeginISXTHRws\", */ T:1 },\n\t/*::[*/0x0141/*::]*/: { /* n:\"BrtEndISXTHRws\", */ T:-1 },\n\t/*::[*/0x0142/*::]*/: { /* n:\"BrtBeginISXTHCols\", */ T:1 },\n\t/*::[*/0x0143/*::]*/: { /* n:\"BrtEndISXTHCols\", */ T:-1 },\n\t/*::[*/0x0144/*::]*/: { /* n:\"BrtBeginSXTDMPS\", */ T:1 },\n\t/*::[*/0x0145/*::]*/: { /* n:\"BrtEndSXTDMPs\", */ T:-1 },\n\t/*::[*/0x0146/*::]*/: { /* n:\"BrtBeginSXTDMP\", */ T:1 },\n\t/*::[*/0x0147/*::]*/: { /* n:\"BrtEndSXTDMP\", */ T:-1 },\n\t/*::[*/0x0148/*::]*/: { /* n:\"BrtBeginSXTHItems\", */ T:1 },\n\t/*::[*/0x0149/*::]*/: { /* n:\"BrtEndSXTHItems\", */ T:-1 },\n\t/*::[*/0x014A/*::]*/: { /* n:\"BrtBeginSXTHItem\", */ T:1 },\n\t/*::[*/0x014B/*::]*/: { /* n:\"BrtEndSXTHItem\", */ T:-1 },\n\t/*::[*/0x014C/*::]*/: { /* n:\"BrtBeginMetadata\", */ T:1 },\n\t/*::[*/0x014D/*::]*/: { /* n:\"BrtEndMetadata\", */ T:-1 },\n\t/*::[*/0x014E/*::]*/: { /* n:\"BrtBeginEsmdtinfo\", */ T:1 },\n\t/*::[*/0x014F/*::]*/: { /* n:\"BrtMdtinfo\", */ f:parse_BrtMdtinfo },\n\t/*::[*/0x0150/*::]*/: { /* n:\"BrtEndEsmdtinfo\", */ T:-1 },\n\t/*::[*/0x0151/*::]*/: { /* n:\"BrtBeginEsmdb\", */ f:parse_BrtBeginEsmdb, T:1 },\n\t/*::[*/0x0152/*::]*/: { /* n:\"BrtEndEsmdb\", */ T:-1 },\n\t/*::[*/0x0153/*::]*/: { /* n:\"BrtBeginEsfmd\", */ T:1 },\n\t/*::[*/0x0154/*::]*/: { /* n:\"BrtEndEsfmd\", */ T:-1 },\n\t/*::[*/0x0155/*::]*/: { /* n:\"BrtBeginSingleCells\", */ T:1 },\n\t/*::[*/0x0156/*::]*/: { /* n:\"BrtEndSingleCells\", */ T:-1 },\n\t/*::[*/0x0157/*::]*/: { /* n:\"BrtBeginList\", */ T:1 },\n\t/*::[*/0x0158/*::]*/: { /* n:\"BrtEndList\", */ T:-1 },\n\t/*::[*/0x0159/*::]*/: { /* n:\"BrtBeginListCols\", */ T:1 },\n\t/*::[*/0x015A/*::]*/: { /* n:\"BrtEndListCols\", */ T:-1 },\n\t/*::[*/0x015B/*::]*/: { /* n:\"BrtBeginListCol\", */ T:1 },\n\t/*::[*/0x015C/*::]*/: { /* n:\"BrtEndListCol\", */ T:-1 },\n\t/*::[*/0x015D/*::]*/: { /* n:\"BrtBeginListXmlCPr\", */ T:1 },\n\t/*::[*/0x015E/*::]*/: { /* n:\"BrtEndListXmlCPr\", */ T:-1 },\n\t/*::[*/0x015F/*::]*/: { /* n:\"BrtListCCFmla\" */ },\n\t/*::[*/0x0160/*::]*/: { /* n:\"BrtListTrFmla\" */ },\n\t/*::[*/0x0161/*::]*/: { /* n:\"BrtBeginExternals\", */ T:1 },\n\t/*::[*/0x0162/*::]*/: { /* n:\"BrtEndExternals\", */ T:-1 },\n\t/*::[*/0x0163/*::]*/: { /* n:\"BrtSupBookSrc\", */ f:parse_RelID},\n\t/*::[*/0x0165/*::]*/: { /* n:\"BrtSupSelf\" */ },\n\t/*::[*/0x0166/*::]*/: { /* n:\"BrtSupSame\" */ },\n\t/*::[*/0x0167/*::]*/: { /* n:\"BrtSupTabs\" */ },\n\t/*::[*/0x0168/*::]*/: { /* n:\"BrtBeginSupBook\", */ T:1 },\n\t/*::[*/0x0169/*::]*/: { /* n:\"BrtPlaceholderName\" */ },\n\t/*::[*/0x016A/*::]*/: { /* n:\"BrtExternSheet\", */ f:parse_ExternSheet },\n\t/*::[*/0x016B/*::]*/: { /* n:\"BrtExternTableStart\" */ },\n\t/*::[*/0x016C/*::]*/: { /* n:\"BrtExternTableEnd\" */ },\n\t/*::[*/0x016E/*::]*/: { /* n:\"BrtExternRowHdr\" */ },\n\t/*::[*/0x016F/*::]*/: { /* n:\"BrtExternCellBlank\" */ },\n\t/*::[*/0x0170/*::]*/: { /* n:\"BrtExternCellReal\" */ },\n\t/*::[*/0x0171/*::]*/: { /* n:\"BrtExternCellBool\" */ },\n\t/*::[*/0x0172/*::]*/: { /* n:\"BrtExternCellError\" */ },\n\t/*::[*/0x0173/*::]*/: { /* n:\"BrtExternCellString\" */ },\n\t/*::[*/0x0174/*::]*/: { /* n:\"BrtBeginEsmdx\", */ T:1 },\n\t/*::[*/0x0175/*::]*/: { /* n:\"BrtEndEsmdx\", */ T:-1 },\n\t/*::[*/0x0176/*::]*/: { /* n:\"BrtBeginMdxSet\", */ T:1 },\n\t/*::[*/0x0177/*::]*/: { /* n:\"BrtEndMdxSet\", */ T:-1 },\n\t/*::[*/0x0178/*::]*/: { /* n:\"BrtBeginMdxMbrProp\", */ T:1 },\n\t/*::[*/0x0179/*::]*/: { /* n:\"BrtEndMdxMbrProp\", */ T:-1 },\n\t/*::[*/0x017A/*::]*/: { /* n:\"BrtBeginMdxKPI\", */ T:1 },\n\t/*::[*/0x017B/*::]*/: { /* n:\"BrtEndMdxKPI\", */ T:-1 },\n\t/*::[*/0x017C/*::]*/: { /* n:\"BrtBeginEsstr\", */ T:1 },\n\t/*::[*/0x017D/*::]*/: { /* n:\"BrtEndEsstr\", */ T:-1 },\n\t/*::[*/0x017E/*::]*/: { /* n:\"BrtBeginPRFItem\", */ T:1 },\n\t/*::[*/0x017F/*::]*/: { /* n:\"BrtEndPRFItem\", */ T:-1 },\n\t/*::[*/0x0180/*::]*/: { /* n:\"BrtBeginPivotCacheIDs\", */ T:1 },\n\t/*::[*/0x0181/*::]*/: { /* n:\"BrtEndPivotCacheIDs\", */ T:-1 },\n\t/*::[*/0x0182/*::]*/: { /* n:\"BrtBeginPivotCacheID\", */ T:1 },\n\t/*::[*/0x0183/*::]*/: { /* n:\"BrtEndPivotCacheID\", */ T:-1 },\n\t/*::[*/0x0184/*::]*/: { /* n:\"BrtBeginISXVIs\", */ T:1 },\n\t/*::[*/0x0185/*::]*/: { /* n:\"BrtEndISXVIs\", */ T:-1 },\n\t/*::[*/0x0186/*::]*/: { /* n:\"BrtBeginColInfos\", */ T:1 },\n\t/*::[*/0x0187/*::]*/: { /* n:\"BrtEndColInfos\", */ T:-1 },\n\t/*::[*/0x0188/*::]*/: { /* n:\"BrtBeginRwBrk\", */ T:1 },\n\t/*::[*/0x0189/*::]*/: { /* n:\"BrtEndRwBrk\", */ T:-1 },\n\t/*::[*/0x018A/*::]*/: { /* n:\"BrtBeginColBrk\", */ T:1 },\n\t/*::[*/0x018B/*::]*/: { /* n:\"BrtEndColBrk\", */ T:-1 },\n\t/*::[*/0x018C/*::]*/: { /* n:\"BrtBrk\" */ },\n\t/*::[*/0x018D/*::]*/: { /* n:\"BrtUserBookView\" */ },\n\t/*::[*/0x018E/*::]*/: { /* n:\"BrtInfo\" */ },\n\t/*::[*/0x018F/*::]*/: { /* n:\"BrtCUsr\" */ },\n\t/*::[*/0x0190/*::]*/: { /* n:\"BrtUsr\" */ },\n\t/*::[*/0x0191/*::]*/: { /* n:\"BrtBeginUsers\", */ T:1 },\n\t/*::[*/0x0193/*::]*/: { /* n:\"BrtEOF\" */ },\n\t/*::[*/0x0194/*::]*/: { /* n:\"BrtUCR\" */ },\n\t/*::[*/0x0195/*::]*/: { /* n:\"BrtRRInsDel\" */ },\n\t/*::[*/0x0196/*::]*/: { /* n:\"BrtRREndInsDel\" */ },\n\t/*::[*/0x0197/*::]*/: { /* n:\"BrtRRMove\" */ },\n\t/*::[*/0x0198/*::]*/: { /* n:\"BrtRREndMove\" */ },\n\t/*::[*/0x0199/*::]*/: { /* n:\"BrtRRChgCell\" */ },\n\t/*::[*/0x019A/*::]*/: { /* n:\"BrtRREndChgCell\" */ },\n\t/*::[*/0x019B/*::]*/: { /* n:\"BrtRRHeader\" */ },\n\t/*::[*/0x019C/*::]*/: { /* n:\"BrtRRUserView\" */ },\n\t/*::[*/0x019D/*::]*/: { /* n:\"BrtRRRenSheet\" */ },\n\t/*::[*/0x019E/*::]*/: { /* n:\"BrtRRInsertSh\" */ },\n\t/*::[*/0x019F/*::]*/: { /* n:\"BrtRRDefName\" */ },\n\t/*::[*/0x01A0/*::]*/: { /* n:\"BrtRRNote\" */ },\n\t/*::[*/0x01A1/*::]*/: { /* n:\"BrtRRConflict\" */ },\n\t/*::[*/0x01A2/*::]*/: { /* n:\"BrtRRTQSIF\" */ },\n\t/*::[*/0x01A3/*::]*/: { /* n:\"BrtRRFormat\" */ },\n\t/*::[*/0x01A4/*::]*/: { /* n:\"BrtRREndFormat\" */ },\n\t/*::[*/0x01A5/*::]*/: { /* n:\"BrtRRAutoFmt\" */ },\n\t/*::[*/0x01A6/*::]*/: { /* n:\"BrtBeginUserShViews\", */ T:1 },\n\t/*::[*/0x01A7/*::]*/: { /* n:\"BrtBeginUserShView\", */ T:1 },\n\t/*::[*/0x01A8/*::]*/: { /* n:\"BrtEndUserShView\", */ T:-1 },\n\t/*::[*/0x01A9/*::]*/: { /* n:\"BrtEndUserShViews\", */ T:-1 },\n\t/*::[*/0x01AA/*::]*/: { /* n:\"BrtArrFmla\", */ f:parse_BrtArrFmla },\n\t/*::[*/0x01AB/*::]*/: { /* n:\"BrtShrFmla\", */ f:parse_BrtShrFmla },\n\t/*::[*/0x01AC/*::]*/: { /* n:\"BrtTable\" */ },\n\t/*::[*/0x01AD/*::]*/: { /* n:\"BrtBeginExtConnections\", */ T:1 },\n\t/*::[*/0x01AE/*::]*/: { /* n:\"BrtEndExtConnections\", */ T:-1 },\n\t/*::[*/0x01AF/*::]*/: { /* n:\"BrtBeginPCDCalcMems\", */ T:1 },\n\t/*::[*/0x01B0/*::]*/: { /* n:\"BrtEndPCDCalcMems\", */ T:-1 },\n\t/*::[*/0x01B1/*::]*/: { /* n:\"BrtBeginPCDCalcMem\", */ T:1 },\n\t/*::[*/0x01B2/*::]*/: { /* n:\"BrtEndPCDCalcMem\", */ T:-1 },\n\t/*::[*/0x01B3/*::]*/: { /* n:\"BrtBeginPCDHGLevels\", */ T:1 },\n\t/*::[*/0x01B4/*::]*/: { /* n:\"BrtEndPCDHGLevels\", */ T:-1 },\n\t/*::[*/0x01B5/*::]*/: { /* n:\"BrtBeginPCDHGLevel\", */ T:1 },\n\t/*::[*/0x01B6/*::]*/: { /* n:\"BrtEndPCDHGLevel\", */ T:-1 },\n\t/*::[*/0x01B7/*::]*/: { /* n:\"BrtBeginPCDHGLGroups\", */ T:1 },\n\t/*::[*/0x01B8/*::]*/: { /* n:\"BrtEndPCDHGLGroups\", */ T:-1 },\n\t/*::[*/0x01B9/*::]*/: { /* n:\"BrtBeginPCDHGLGroup\", */ T:1 },\n\t/*::[*/0x01BA/*::]*/: { /* n:\"BrtEndPCDHGLGroup\", */ T:-1 },\n\t/*::[*/0x01BB/*::]*/: { /* n:\"BrtBeginPCDHGLGMembers\", */ T:1 },\n\t/*::[*/0x01BC/*::]*/: { /* n:\"BrtEndPCDHGLGMembers\", */ T:-1 },\n\t/*::[*/0x01BD/*::]*/: { /* n:\"BrtBeginPCDHGLGMember\", */ T:1 },\n\t/*::[*/0x01BE/*::]*/: { /* n:\"BrtEndPCDHGLGMember\", */ T:-1 },\n\t/*::[*/0x01BF/*::]*/: { /* n:\"BrtBeginQSI\", */ T:1 },\n\t/*::[*/0x01C0/*::]*/: { /* n:\"BrtEndQSI\", */ T:-1 },\n\t/*::[*/0x01C1/*::]*/: { /* n:\"BrtBeginQSIR\", */ T:1 },\n\t/*::[*/0x01C2/*::]*/: { /* n:\"BrtEndQSIR\", */ T:-1 },\n\t/*::[*/0x01C3/*::]*/: { /* n:\"BrtBeginDeletedNames\", */ T:1 },\n\t/*::[*/0x01C4/*::]*/: { /* n:\"BrtEndDeletedNames\", */ T:-1 },\n\t/*::[*/0x01C5/*::]*/: { /* n:\"BrtBeginDeletedName\", */ T:1 },\n\t/*::[*/0x01C6/*::]*/: { /* n:\"BrtEndDeletedName\", */ T:-1 },\n\t/*::[*/0x01C7/*::]*/: { /* n:\"BrtBeginQSIFs\", */ T:1 },\n\t/*::[*/0x01C8/*::]*/: { /* n:\"BrtEndQSIFs\", */ T:-1 },\n\t/*::[*/0x01C9/*::]*/: { /* n:\"BrtBeginQSIF\", */ T:1 },\n\t/*::[*/0x01CA/*::]*/: { /* n:\"BrtEndQSIF\", */ T:-1 },\n\t/*::[*/0x01CB/*::]*/: { /* n:\"BrtBeginAutoSortScope\", */ T:1 },\n\t/*::[*/0x01CC/*::]*/: { /* n:\"BrtEndAutoSortScope\", */ T:-1 },\n\t/*::[*/0x01CD/*::]*/: { /* n:\"BrtBeginConditionalFormatting\", */ T:1 },\n\t/*::[*/0x01CE/*::]*/: { /* n:\"BrtEndConditionalFormatting\", */ T:-1 },\n\t/*::[*/0x01CF/*::]*/: { /* n:\"BrtBeginCFRule\", */ T:1 },\n\t/*::[*/0x01D0/*::]*/: { /* n:\"BrtEndCFRule\", */ T:-1 },\n\t/*::[*/0x01D1/*::]*/: { /* n:\"BrtBeginIconSet\", */ T:1 },\n\t/*::[*/0x01D2/*::]*/: { /* n:\"BrtEndIconSet\", */ T:-1 },\n\t/*::[*/0x01D3/*::]*/: { /* n:\"BrtBeginDatabar\", */ T:1 },\n\t/*::[*/0x01D4/*::]*/: { /* n:\"BrtEndDatabar\", */ T:-1 },\n\t/*::[*/0x01D5/*::]*/: { /* n:\"BrtBeginColorScale\", */ T:1 },\n\t/*::[*/0x01D6/*::]*/: { /* n:\"BrtEndColorScale\", */ T:-1 },\n\t/*::[*/0x01D7/*::]*/: { /* n:\"BrtCFVO\" */ },\n\t/*::[*/0x01D8/*::]*/: { /* n:\"BrtExternValueMeta\" */ },\n\t/*::[*/0x01D9/*::]*/: { /* n:\"BrtBeginColorPalette\", */ T:1 },\n\t/*::[*/0x01DA/*::]*/: { /* n:\"BrtEndColorPalette\", */ T:-1 },\n\t/*::[*/0x01DB/*::]*/: { /* n:\"BrtIndexedColor\" */ },\n\t/*::[*/0x01DC/*::]*/: { /* n:\"BrtMargins\", */ f:parse_BrtMargins },\n\t/*::[*/0x01DD/*::]*/: { /* n:\"BrtPrintOptions\" */ },\n\t/*::[*/0x01DE/*::]*/: { /* n:\"BrtPageSetup\" */ },\n\t/*::[*/0x01DF/*::]*/: { /* n:\"BrtBeginHeaderFooter\", */ T:1 },\n\t/*::[*/0x01E0/*::]*/: { /* n:\"BrtEndHeaderFooter\", */ T:-1 },\n\t/*::[*/0x01E1/*::]*/: { /* n:\"BrtBeginSXCrtFormat\", */ T:1 },\n\t/*::[*/0x01E2/*::]*/: { /* n:\"BrtEndSXCrtFormat\", */ T:-1 },\n\t/*::[*/0x01E3/*::]*/: { /* n:\"BrtBeginSXCrtFormats\", */ T:1 },\n\t/*::[*/0x01E4/*::]*/: { /* n:\"BrtEndSXCrtFormats\", */ T:-1 },\n\t/*::[*/0x01E5/*::]*/: { /* n:\"BrtWsFmtInfo\", */ f:parse_BrtWsFmtInfo },\n\t/*::[*/0x01E6/*::]*/: { /* n:\"BrtBeginMgs\", */ T:1 },\n\t/*::[*/0x01E7/*::]*/: { /* n:\"BrtEndMGs\", */ T:-1 },\n\t/*::[*/0x01E8/*::]*/: { /* n:\"BrtBeginMGMaps\", */ T:1 },\n\t/*::[*/0x01E9/*::]*/: { /* n:\"BrtEndMGMaps\", */ T:-1 },\n\t/*::[*/0x01EA/*::]*/: { /* n:\"BrtBeginMG\", */ T:1 },\n\t/*::[*/0x01EB/*::]*/: { /* n:\"BrtEndMG\", */ T:-1 },\n\t/*::[*/0x01EC/*::]*/: { /* n:\"BrtBeginMap\", */ T:1 },\n\t/*::[*/0x01ED/*::]*/: { /* n:\"BrtEndMap\", */ T:-1 },\n\t/*::[*/0x01EE/*::]*/: { /* n:\"BrtHLink\", */ f:parse_BrtHLink },\n\t/*::[*/0x01EF/*::]*/: { /* n:\"BrtBeginDCon\", */ T:1 },\n\t/*::[*/0x01F0/*::]*/: { /* n:\"BrtEndDCon\", */ T:-1 },\n\t/*::[*/0x01F1/*::]*/: { /* n:\"BrtBeginDRefs\", */ T:1 },\n\t/*::[*/0x01F2/*::]*/: { /* n:\"BrtEndDRefs\", */ T:-1 },\n\t/*::[*/0x01F3/*::]*/: { /* n:\"BrtDRef\" */ },\n\t/*::[*/0x01F4/*::]*/: { /* n:\"BrtBeginScenMan\", */ T:1 },\n\t/*::[*/0x01F5/*::]*/: { /* n:\"BrtEndScenMan\", */ T:-1 },\n\t/*::[*/0x01F6/*::]*/: { /* n:\"BrtBeginSct\", */ T:1 },\n\t/*::[*/0x01F7/*::]*/: { /* n:\"BrtEndSct\", */ T:-1 },\n\t/*::[*/0x01F8/*::]*/: { /* n:\"BrtSlc\" */ },\n\t/*::[*/0x01F9/*::]*/: { /* n:\"BrtBeginDXFs\", */ T:1 },\n\t/*::[*/0x01FA/*::]*/: { /* n:\"BrtEndDXFs\", */ T:-1 },\n\t/*::[*/0x01FB/*::]*/: { /* n:\"BrtDXF\" */ },\n\t/*::[*/0x01FC/*::]*/: { /* n:\"BrtBeginTableStyles\", */ T:1 },\n\t/*::[*/0x01FD/*::]*/: { /* n:\"BrtEndTableStyles\", */ T:-1 },\n\t/*::[*/0x01FE/*::]*/: { /* n:\"BrtBeginTableStyle\", */ T:1 },\n\t/*::[*/0x01FF/*::]*/: { /* n:\"BrtEndTableStyle\", */ T:-1 },\n\t/*::[*/0x0200/*::]*/: { /* n:\"BrtTableStyleElement\" */ },\n\t/*::[*/0x0201/*::]*/: { /* n:\"BrtTableStyleClient\" */ },\n\t/*::[*/0x0202/*::]*/: { /* n:\"BrtBeginVolDeps\", */ T:1 },\n\t/*::[*/0x0203/*::]*/: { /* n:\"BrtEndVolDeps\", */ T:-1 },\n\t/*::[*/0x0204/*::]*/: { /* n:\"BrtBeginVolType\", */ T:1 },\n\t/*::[*/0x0205/*::]*/: { /* n:\"BrtEndVolType\", */ T:-1 },\n\t/*::[*/0x0206/*::]*/: { /* n:\"BrtBeginVolMain\", */ T:1 },\n\t/*::[*/0x0207/*::]*/: { /* n:\"BrtEndVolMain\", */ T:-1 },\n\t/*::[*/0x0208/*::]*/: { /* n:\"BrtBeginVolTopic\", */ T:1 },\n\t/*::[*/0x0209/*::]*/: { /* n:\"BrtEndVolTopic\", */ T:-1 },\n\t/*::[*/0x020A/*::]*/: { /* n:\"BrtVolSubtopic\" */ },\n\t/*::[*/0x020B/*::]*/: { /* n:\"BrtVolRef\" */ },\n\t/*::[*/0x020C/*::]*/: { /* n:\"BrtVolNum\" */ },\n\t/*::[*/0x020D/*::]*/: { /* n:\"BrtVolErr\" */ },\n\t/*::[*/0x020E/*::]*/: { /* n:\"BrtVolStr\" */ },\n\t/*::[*/0x020F/*::]*/: { /* n:\"BrtVolBool\" */ },\n\t/*::[*/0x0210/*::]*/: { /* n:\"BrtBeginCalcChain$\", */ T:1 },\n\t/*::[*/0x0211/*::]*/: { /* n:\"BrtEndCalcChain$\", */ T:-1 },\n\t/*::[*/0x0212/*::]*/: { /* n:\"BrtBeginSortState\", */ T:1 },\n\t/*::[*/0x0213/*::]*/: { /* n:\"BrtEndSortState\", */ T:-1 },\n\t/*::[*/0x0214/*::]*/: { /* n:\"BrtBeginSortCond\", */ T:1 },\n\t/*::[*/0x0215/*::]*/: { /* n:\"BrtEndSortCond\", */ T:-1 },\n\t/*::[*/0x0216/*::]*/: { /* n:\"BrtBookProtection\" */ },\n\t/*::[*/0x0217/*::]*/: { /* n:\"BrtSheetProtection\" */ },\n\t/*::[*/0x0218/*::]*/: { /* n:\"BrtRangeProtection\" */ },\n\t/*::[*/0x0219/*::]*/: { /* n:\"BrtPhoneticInfo\" */ },\n\t/*::[*/0x021A/*::]*/: { /* n:\"BrtBeginECTxtWiz\", */ T:1 },\n\t/*::[*/0x021B/*::]*/: { /* n:\"BrtEndECTxtWiz\", */ T:-1 },\n\t/*::[*/0x021C/*::]*/: { /* n:\"BrtBeginECTWFldInfoLst\", */ T:1 },\n\t/*::[*/0x021D/*::]*/: { /* n:\"BrtEndECTWFldInfoLst\", */ T:-1 },\n\t/*::[*/0x021E/*::]*/: { /* n:\"BrtBeginECTwFldInfo\", */ T:1 },\n\t/*::[*/0x0224/*::]*/: { /* n:\"BrtFileSharing\" */ },\n\t/*::[*/0x0225/*::]*/: { /* n:\"BrtOleSize\" */ },\n\t/*::[*/0x0226/*::]*/: { /* n:\"BrtDrawing\", */ f:parse_RelID },\n\t/*::[*/0x0227/*::]*/: { /* n:\"BrtLegacyDrawing\" */ },\n\t/*::[*/0x0228/*::]*/: { /* n:\"BrtLegacyDrawingHF\" */ },\n\t/*::[*/0x0229/*::]*/: { /* n:\"BrtWebOpt\" */ },\n\t/*::[*/0x022A/*::]*/: { /* n:\"BrtBeginWebPubItems\", */ T:1 },\n\t/*::[*/0x022B/*::]*/: { /* n:\"BrtEndWebPubItems\", */ T:-1 },\n\t/*::[*/0x022C/*::]*/: { /* n:\"BrtBeginWebPubItem\", */ T:1 },\n\t/*::[*/0x022D/*::]*/: { /* n:\"BrtEndWebPubItem\", */ T:-1 },\n\t/*::[*/0x022E/*::]*/: { /* n:\"BrtBeginSXCondFmt\", */ T:1 },\n\t/*::[*/0x022F/*::]*/: { /* n:\"BrtEndSXCondFmt\", */ T:-1 },\n\t/*::[*/0x0230/*::]*/: { /* n:\"BrtBeginSXCondFmts\", */ T:1 },\n\t/*::[*/0x0231/*::]*/: { /* n:\"BrtEndSXCondFmts\", */ T:-1 },\n\t/*::[*/0x0232/*::]*/: { /* n:\"BrtBkHim\" */ },\n\t/*::[*/0x0234/*::]*/: { /* n:\"BrtColor\" */ },\n\t/*::[*/0x0235/*::]*/: { /* n:\"BrtBeginIndexedColors\", */ T:1 },\n\t/*::[*/0x0236/*::]*/: { /* n:\"BrtEndIndexedColors\", */ T:-1 },\n\t/*::[*/0x0239/*::]*/: { /* n:\"BrtBeginMRUColors\", */ T:1 },\n\t/*::[*/0x023A/*::]*/: { /* n:\"BrtEndMRUColors\", */ T:-1 },\n\t/*::[*/0x023C/*::]*/: { /* n:\"BrtMRUColor\" */ },\n\t/*::[*/0x023D/*::]*/: { /* n:\"BrtBeginDVals\", */ T:1 },\n\t/*::[*/0x023E/*::]*/: { /* n:\"BrtEndDVals\", */ T:-1 },\n\t/*::[*/0x0241/*::]*/: { /* n:\"BrtSupNameStart\" */ },\n\t/*::[*/0x0242/*::]*/: { /* n:\"BrtSupNameValueStart\" */ },\n\t/*::[*/0x0243/*::]*/: { /* n:\"BrtSupNameValueEnd\" */ },\n\t/*::[*/0x0244/*::]*/: { /* n:\"BrtSupNameNum\" */ },\n\t/*::[*/0x0245/*::]*/: { /* n:\"BrtSupNameErr\" */ },\n\t/*::[*/0x0246/*::]*/: { /* n:\"BrtSupNameSt\" */ },\n\t/*::[*/0x0247/*::]*/: { /* n:\"BrtSupNameNil\" */ },\n\t/*::[*/0x0248/*::]*/: { /* n:\"BrtSupNameBool\" */ },\n\t/*::[*/0x0249/*::]*/: { /* n:\"BrtSupNameFmla\" */ },\n\t/*::[*/0x024A/*::]*/: { /* n:\"BrtSupNameBits\" */ },\n\t/*::[*/0x024B/*::]*/: { /* n:\"BrtSupNameEnd\" */ },\n\t/*::[*/0x024C/*::]*/: { /* n:\"BrtEndSupBook\", */ T:-1 },\n\t/*::[*/0x024D/*::]*/: { /* n:\"BrtCellSmartTagProperty\" */ },\n\t/*::[*/0x024E/*::]*/: { /* n:\"BrtBeginCellSmartTag\", */ T:1 },\n\t/*::[*/0x024F/*::]*/: { /* n:\"BrtEndCellSmartTag\", */ T:-1 },\n\t/*::[*/0x0250/*::]*/: { /* n:\"BrtBeginCellSmartTags\", */ T:1 },\n\t/*::[*/0x0251/*::]*/: { /* n:\"BrtEndCellSmartTags\", */ T:-1 },\n\t/*::[*/0x0252/*::]*/: { /* n:\"BrtBeginSmartTags\", */ T:1 },\n\t/*::[*/0x0253/*::]*/: { /* n:\"BrtEndSmartTags\", */ T:-1 },\n\t/*::[*/0x0254/*::]*/: { /* n:\"BrtSmartTagType\" */ },\n\t/*::[*/0x0255/*::]*/: { /* n:\"BrtBeginSmartTagTypes\", */ T:1 },\n\t/*::[*/0x0256/*::]*/: { /* n:\"BrtEndSmartTagTypes\", */ T:-1 },\n\t/*::[*/0x0257/*::]*/: { /* n:\"BrtBeginSXFilters\", */ T:1 },\n\t/*::[*/0x0258/*::]*/: { /* n:\"BrtEndSXFilters\", */ T:-1 },\n\t/*::[*/0x0259/*::]*/: { /* n:\"BrtBeginSXFILTER\", */ T:1 },\n\t/*::[*/0x025A/*::]*/: { /* n:\"BrtEndSXFilter\", */ T:-1 },\n\t/*::[*/0x025B/*::]*/: { /* n:\"BrtBeginFills\", */ T:1 },\n\t/*::[*/0x025C/*::]*/: { /* n:\"BrtEndFills\", */ T:-1 },\n\t/*::[*/0x025D/*::]*/: { /* n:\"BrtBeginCellWatches\", */ T:1 },\n\t/*::[*/0x025E/*::]*/: { /* n:\"BrtEndCellWatches\", */ T:-1 },\n\t/*::[*/0x025F/*::]*/: { /* n:\"BrtCellWatch\" */ },\n\t/*::[*/0x0260/*::]*/: { /* n:\"BrtBeginCRErrs\", */ T:1 },\n\t/*::[*/0x0261/*::]*/: { /* n:\"BrtEndCRErrs\", */ T:-1 },\n\t/*::[*/0x0262/*::]*/: { /* n:\"BrtCrashRecErr\" */ },\n\t/*::[*/0x0263/*::]*/: { /* n:\"BrtBeginFonts\", */ T:1 },\n\t/*::[*/0x0264/*::]*/: { /* n:\"BrtEndFonts\", */ T:-1 },\n\t/*::[*/0x0265/*::]*/: { /* n:\"BrtBeginBorders\", */ T:1 },\n\t/*::[*/0x0266/*::]*/: { /* n:\"BrtEndBorders\", */ T:-1 },\n\t/*::[*/0x0267/*::]*/: { /* n:\"BrtBeginFmts\", */ T:1 },\n\t/*::[*/0x0268/*::]*/: { /* n:\"BrtEndFmts\", */ T:-1 },\n\t/*::[*/0x0269/*::]*/: { /* n:\"BrtBeginCellXFs\", */ T:1 },\n\t/*::[*/0x026A/*::]*/: { /* n:\"BrtEndCellXFs\", */ T:-1 },\n\t/*::[*/0x026B/*::]*/: { /* n:\"BrtBeginStyles\", */ T:1 },\n\t/*::[*/0x026C/*::]*/: { /* n:\"BrtEndStyles\", */ T:-1 },\n\t/*::[*/0x0271/*::]*/: { /* n:\"BrtBigName\" */ },\n\t/*::[*/0x0272/*::]*/: { /* n:\"BrtBeginCellStyleXFs\", */ T:1 },\n\t/*::[*/0x0273/*::]*/: { /* n:\"BrtEndCellStyleXFs\", */ T:-1 },\n\t/*::[*/0x0274/*::]*/: { /* n:\"BrtBeginComments\", */ T:1 },\n\t/*::[*/0x0275/*::]*/: { /* n:\"BrtEndComments\", */ T:-1 },\n\t/*::[*/0x0276/*::]*/: { /* n:\"BrtBeginCommentAuthors\", */ T:1 },\n\t/*::[*/0x0277/*::]*/: { /* n:\"BrtEndCommentAuthors\", */ T:-1 },\n\t/*::[*/0x0278/*::]*/: { /* n:\"BrtCommentAuthor\", */ f:parse_BrtCommentAuthor },\n\t/*::[*/0x0279/*::]*/: { /* n:\"BrtBeginCommentList\", */ T:1 },\n\t/*::[*/0x027A/*::]*/: { /* n:\"BrtEndCommentList\", */ T:-1 },\n\t/*::[*/0x027B/*::]*/: { /* n:\"BrtBeginComment\", */ T:1, f:parse_BrtBeginComment},\n\t/*::[*/0x027C/*::]*/: { /* n:\"BrtEndComment\", */ T:-1 },\n\t/*::[*/0x027D/*::]*/: { /* n:\"BrtCommentText\", */ f:parse_BrtCommentText },\n\t/*::[*/0x027E/*::]*/: { /* n:\"BrtBeginOleObjects\", */ T:1 },\n\t/*::[*/0x027F/*::]*/: { /* n:\"BrtOleObject\" */ },\n\t/*::[*/0x0280/*::]*/: { /* n:\"BrtEndOleObjects\", */ T:-1 },\n\t/*::[*/0x0281/*::]*/: { /* n:\"BrtBeginSxrules\", */ T:1 },\n\t/*::[*/0x0282/*::]*/: { /* n:\"BrtEndSxRules\", */ T:-1 },\n\t/*::[*/0x0283/*::]*/: { /* n:\"BrtBeginActiveXControls\", */ T:1 },\n\t/*::[*/0x0284/*::]*/: { /* n:\"BrtActiveX\" */ },\n\t/*::[*/0x0285/*::]*/: { /* n:\"BrtEndActiveXControls\", */ T:-1 },\n\t/*::[*/0x0286/*::]*/: { /* n:\"BrtBeginPCDSDTCEMembersSortBy\", */ T:1 },\n\t/*::[*/0x0288/*::]*/: { /* n:\"BrtBeginCellIgnoreECs\", */ T:1 },\n\t/*::[*/0x0289/*::]*/: { /* n:\"BrtCellIgnoreEC\" */ },\n\t/*::[*/0x028A/*::]*/: { /* n:\"BrtEndCellIgnoreECs\", */ T:-1 },\n\t/*::[*/0x028B/*::]*/: { /* n:\"BrtCsProp\", */ f:parse_BrtCsProp },\n\t/*::[*/0x028C/*::]*/: { /* n:\"BrtCsPageSetup\" */ },\n\t/*::[*/0x028D/*::]*/: { /* n:\"BrtBeginUserCsViews\", */ T:1 },\n\t/*::[*/0x028E/*::]*/: { /* n:\"BrtEndUserCsViews\", */ T:-1 },\n\t/*::[*/0x028F/*::]*/: { /* n:\"BrtBeginUserCsView\", */ T:1 },\n\t/*::[*/0x0290/*::]*/: { /* n:\"BrtEndUserCsView\", */ T:-1 },\n\t/*::[*/0x0291/*::]*/: { /* n:\"BrtBeginPcdSFCIEntries\", */ T:1 },\n\t/*::[*/0x0292/*::]*/: { /* n:\"BrtEndPCDSFCIEntries\", */ T:-1 },\n\t/*::[*/0x0293/*::]*/: { /* n:\"BrtPCDSFCIEntry\" */ },\n\t/*::[*/0x0294/*::]*/: { /* n:\"BrtBeginListParts\", */ T:1 },\n\t/*::[*/0x0295/*::]*/: { /* n:\"BrtListPart\" */ },\n\t/*::[*/0x0296/*::]*/: { /* n:\"BrtEndListParts\", */ T:-1 },\n\t/*::[*/0x0297/*::]*/: { /* n:\"BrtSheetCalcProp\" */ },\n\t/*::[*/0x0298/*::]*/: { /* n:\"BrtBeginFnGroup\", */ T:1 },\n\t/*::[*/0x0299/*::]*/: { /* n:\"BrtFnGroup\" */ },\n\t/*::[*/0x029A/*::]*/: { /* n:\"BrtEndFnGroup\", */ T:-1 },\n\t/*::[*/0x029B/*::]*/: { /* n:\"BrtSupAddin\" */ },\n\t/*::[*/0x029C/*::]*/: { /* n:\"BrtSXTDMPOrder\" */ },\n\t/*::[*/0x029D/*::]*/: { /* n:\"BrtCsProtection\" */ },\n\t/*::[*/0x029F/*::]*/: { /* n:\"BrtBeginWsSortMap\", */ T:1 },\n\t/*::[*/0x02A0/*::]*/: { /* n:\"BrtEndWsSortMap\", */ T:-1 },\n\t/*::[*/0x02A1/*::]*/: { /* n:\"BrtBeginRRSort\", */ T:1 },\n\t/*::[*/0x02A2/*::]*/: { /* n:\"BrtEndRRSort\", */ T:-1 },\n\t/*::[*/0x02A3/*::]*/: { /* n:\"BrtRRSortItem\" */ },\n\t/*::[*/0x02A4/*::]*/: { /* n:\"BrtFileSharingIso\" */ },\n\t/*::[*/0x02A5/*::]*/: { /* n:\"BrtBookProtectionIso\" */ },\n\t/*::[*/0x02A6/*::]*/: { /* n:\"BrtSheetProtectionIso\" */ },\n\t/*::[*/0x02A7/*::]*/: { /* n:\"BrtCsProtectionIso\" */ },\n\t/*::[*/0x02A8/*::]*/: { /* n:\"BrtRangeProtectionIso\" */ },\n\t/*::[*/0x02A9/*::]*/: { /* n:\"BrtDValList\" */ },\n\t/*::[*/0x0400/*::]*/: { /* n:\"BrtRwDescent\" */ },\n\t/*::[*/0x0401/*::]*/: { /* n:\"BrtKnownFonts\" */ },\n\t/*::[*/0x0402/*::]*/: { /* n:\"BrtBeginSXTupleSet\", */ T:1 },\n\t/*::[*/0x0403/*::]*/: { /* n:\"BrtEndSXTupleSet\", */ T:-1 },\n\t/*::[*/0x0404/*::]*/: { /* n:\"BrtBeginSXTupleSetHeader\", */ T:1 },\n\t/*::[*/0x0405/*::]*/: { /* n:\"BrtEndSXTupleSetHeader\", */ T:-1 },\n\t/*::[*/0x0406/*::]*/: { /* n:\"BrtSXTupleSetHeaderItem\" */ },\n\t/*::[*/0x0407/*::]*/: { /* n:\"BrtBeginSXTupleSetData\", */ T:1 },\n\t/*::[*/0x0408/*::]*/: { /* n:\"BrtEndSXTupleSetData\", */ T:-1 },\n\t/*::[*/0x0409/*::]*/: { /* n:\"BrtBeginSXTupleSetRow\", */ T:1 },\n\t/*::[*/0x040A/*::]*/: { /* n:\"BrtEndSXTupleSetRow\", */ T:-1 },\n\t/*::[*/0x040B/*::]*/: { /* n:\"BrtSXTupleSetRowItem\" */ },\n\t/*::[*/0x040C/*::]*/: { /* n:\"BrtNameExt\" */ },\n\t/*::[*/0x040D/*::]*/: { /* n:\"BrtPCDH14\" */ },\n\t/*::[*/0x040E/*::]*/: { /* n:\"BrtBeginPCDCalcMem14\", */ T:1 },\n\t/*::[*/0x040F/*::]*/: { /* n:\"BrtEndPCDCalcMem14\", */ T:-1 },\n\t/*::[*/0x0410/*::]*/: { /* n:\"BrtSXTH14\" */ },\n\t/*::[*/0x0411/*::]*/: { /* n:\"BrtBeginSparklineGroup\", */ T:1 },\n\t/*::[*/0x0412/*::]*/: { /* n:\"BrtEndSparklineGroup\", */ T:-1 },\n\t/*::[*/0x0413/*::]*/: { /* n:\"BrtSparkline\" */ },\n\t/*::[*/0x0414/*::]*/: { /* n:\"BrtSXDI14\" */ },\n\t/*::[*/0x0415/*::]*/: { /* n:\"BrtWsFmtInfoEx14\" */ },\n\t/*::[*/0x0416/*::]*/: { /* n:\"BrtBeginConditionalFormatting14\", */ T:1 },\n\t/*::[*/0x0417/*::]*/: { /* n:\"BrtEndConditionalFormatting14\", */ T:-1 },\n\t/*::[*/0x0418/*::]*/: { /* n:\"BrtBeginCFRule14\", */ T:1 },\n\t/*::[*/0x0419/*::]*/: { /* n:\"BrtEndCFRule14\", */ T:-1 },\n\t/*::[*/0x041A/*::]*/: { /* n:\"BrtCFVO14\" */ },\n\t/*::[*/0x041B/*::]*/: { /* n:\"BrtBeginDatabar14\", */ T:1 },\n\t/*::[*/0x041C/*::]*/: { /* n:\"BrtBeginIconSet14\", */ T:1 },\n\t/*::[*/0x041D/*::]*/: { /* n:\"BrtDVal14\", */ f: parse_BrtDVal14 },\n\t/*::[*/0x041E/*::]*/: { /* n:\"BrtBeginDVals14\", */ T:1 },\n\t/*::[*/0x041F/*::]*/: { /* n:\"BrtColor14\" */ },\n\t/*::[*/0x0420/*::]*/: { /* n:\"BrtBeginSparklines\", */ T:1 },\n\t/*::[*/0x0421/*::]*/: { /* n:\"BrtEndSparklines\", */ T:-1 },\n\t/*::[*/0x0422/*::]*/: { /* n:\"BrtBeginSparklineGroups\", */ T:1 },\n\t/*::[*/0x0423/*::]*/: { /* n:\"BrtEndSparklineGroups\", */ T:-1 },\n\t/*::[*/0x0425/*::]*/: { /* n:\"BrtSXVD14\" */ },\n\t/*::[*/0x0426/*::]*/: { /* n:\"BrtBeginSXView14\", */ T:1 },\n\t/*::[*/0x0427/*::]*/: { /* n:\"BrtEndSXView14\", */ T:-1 },\n\t/*::[*/0x0428/*::]*/: { /* n:\"BrtBeginSXView16\", */ T:1 },\n\t/*::[*/0x0429/*::]*/: { /* n:\"BrtEndSXView16\", */ T:-1 },\n\t/*::[*/0x042A/*::]*/: { /* n:\"BrtBeginPCD14\", */ T:1 },\n\t/*::[*/0x042B/*::]*/: { /* n:\"BrtEndPCD14\", */ T:-1 },\n\t/*::[*/0x042C/*::]*/: { /* n:\"BrtBeginExtConn14\", */ T:1 },\n\t/*::[*/0x042D/*::]*/: { /* n:\"BrtEndExtConn14\", */ T:-1 },\n\t/*::[*/0x042E/*::]*/: { /* n:\"BrtBeginSlicerCacheIDs\", */ T:1 },\n\t/*::[*/0x042F/*::]*/: { /* n:\"BrtEndSlicerCacheIDs\", */ T:-1 },\n\t/*::[*/0x0430/*::]*/: { /* n:\"BrtBeginSlicerCacheID\", */ T:1 },\n\t/*::[*/0x0431/*::]*/: { /* n:\"BrtEndSlicerCacheID\", */ T:-1 },\n\t/*::[*/0x0433/*::]*/: { /* n:\"BrtBeginSlicerCache\", */ T:1 },\n\t/*::[*/0x0434/*::]*/: { /* n:\"BrtEndSlicerCache\", */ T:-1 },\n\t/*::[*/0x0435/*::]*/: { /* n:\"BrtBeginSlicerCacheDef\", */ T:1 },\n\t/*::[*/0x0436/*::]*/: { /* n:\"BrtEndSlicerCacheDef\", */ T:-1 },\n\t/*::[*/0x0437/*::]*/: { /* n:\"BrtBeginSlicersEx\", */ T:1 },\n\t/*::[*/0x0438/*::]*/: { /* n:\"BrtEndSlicersEx\", */ T:-1 },\n\t/*::[*/0x0439/*::]*/: { /* n:\"BrtBeginSlicerEx\", */ T:1 },\n\t/*::[*/0x043A/*::]*/: { /* n:\"BrtEndSlicerEx\", */ T:-1 },\n\t/*::[*/0x043B/*::]*/: { /* n:\"BrtBeginSlicer\", */ T:1 },\n\t/*::[*/0x043C/*::]*/: { /* n:\"BrtEndSlicer\", */ T:-1 },\n\t/*::[*/0x043D/*::]*/: { /* n:\"BrtSlicerCachePivotTables\" */ },\n\t/*::[*/0x043E/*::]*/: { /* n:\"BrtBeginSlicerCacheOlapImpl\", */ T:1 },\n\t/*::[*/0x043F/*::]*/: { /* n:\"BrtEndSlicerCacheOlapImpl\", */ T:-1 },\n\t/*::[*/0x0440/*::]*/: { /* n:\"BrtBeginSlicerCacheLevelsData\", */ T:1 },\n\t/*::[*/0x0441/*::]*/: { /* n:\"BrtEndSlicerCacheLevelsData\", */ T:-1 },\n\t/*::[*/0x0442/*::]*/: { /* n:\"BrtBeginSlicerCacheLevelData\", */ T:1 },\n\t/*::[*/0x0443/*::]*/: { /* n:\"BrtEndSlicerCacheLevelData\", */ T:-1 },\n\t/*::[*/0x0444/*::]*/: { /* n:\"BrtBeginSlicerCacheSiRanges\", */ T:1 },\n\t/*::[*/0x0445/*::]*/: { /* n:\"BrtEndSlicerCacheSiRanges\", */ T:-1 },\n\t/*::[*/0x0446/*::]*/: { /* n:\"BrtBeginSlicerCacheSiRange\", */ T:1 },\n\t/*::[*/0x0447/*::]*/: { /* n:\"BrtEndSlicerCacheSiRange\", */ T:-1 },\n\t/*::[*/0x0448/*::]*/: { /* n:\"BrtSlicerCacheOlapItem\" */ },\n\t/*::[*/0x0449/*::]*/: { /* n:\"BrtBeginSlicerCacheSelections\", */ T:1 },\n\t/*::[*/0x044A/*::]*/: { /* n:\"BrtSlicerCacheSelection\" */ },\n\t/*::[*/0x044B/*::]*/: { /* n:\"BrtEndSlicerCacheSelections\", */ T:-1 },\n\t/*::[*/0x044C/*::]*/: { /* n:\"BrtBeginSlicerCacheNative\", */ T:1 },\n\t/*::[*/0x044D/*::]*/: { /* n:\"BrtEndSlicerCacheNative\", */ T:-1 },\n\t/*::[*/0x044E/*::]*/: { /* n:\"BrtSlicerCacheNativeItem\" */ },\n\t/*::[*/0x044F/*::]*/: { /* n:\"BrtRangeProtection14\" */ },\n\t/*::[*/0x0450/*::]*/: { /* n:\"BrtRangeProtectionIso14\" */ },\n\t/*::[*/0x0451/*::]*/: { /* n:\"BrtCellIgnoreEC14\" */ },\n\t/*::[*/0x0457/*::]*/: { /* n:\"BrtList14\" */ },\n\t/*::[*/0x0458/*::]*/: { /* n:\"BrtCFIcon\" */ },\n\t/*::[*/0x0459/*::]*/: { /* n:\"BrtBeginSlicerCachesPivotCacheIDs\", */ T:1 },\n\t/*::[*/0x045A/*::]*/: { /* n:\"BrtEndSlicerCachesPivotCacheIDs\", */ T:-1 },\n\t/*::[*/0x045B/*::]*/: { /* n:\"BrtBeginSlicers\", */ T:1 },\n\t/*::[*/0x045C/*::]*/: { /* n:\"BrtEndSlicers\", */ T:-1 },\n\t/*::[*/0x045D/*::]*/: { /* n:\"BrtWbProp14\" */ },\n\t/*::[*/0x045E/*::]*/: { /* n:\"BrtBeginSXEdit\", */ T:1 },\n\t/*::[*/0x045F/*::]*/: { /* n:\"BrtEndSXEdit\", */ T:-1 },\n\t/*::[*/0x0460/*::]*/: { /* n:\"BrtBeginSXEdits\", */ T:1 },\n\t/*::[*/0x0461/*::]*/: { /* n:\"BrtEndSXEdits\", */ T:-1 },\n\t/*::[*/0x0462/*::]*/: { /* n:\"BrtBeginSXChange\", */ T:1 },\n\t/*::[*/0x0463/*::]*/: { /* n:\"BrtEndSXChange\", */ T:-1 },\n\t/*::[*/0x0464/*::]*/: { /* n:\"BrtBeginSXChanges\", */ T:1 },\n\t/*::[*/0x0465/*::]*/: { /* n:\"BrtEndSXChanges\", */ T:-1 },\n\t/*::[*/0x0466/*::]*/: { /* n:\"BrtSXTupleItems\" */ },\n\t/*::[*/0x0468/*::]*/: { /* n:\"BrtBeginSlicerStyle\", */ T:1 },\n\t/*::[*/0x0469/*::]*/: { /* n:\"BrtEndSlicerStyle\", */ T:-1 },\n\t/*::[*/0x046A/*::]*/: { /* n:\"BrtSlicerStyleElement\" */ },\n\t/*::[*/0x046B/*::]*/: { /* n:\"BrtBeginStyleSheetExt14\", */ T:1 },\n\t/*::[*/0x046C/*::]*/: { /* n:\"BrtEndStyleSheetExt14\", */ T:-1 },\n\t/*::[*/0x046D/*::]*/: { /* n:\"BrtBeginSlicerCachesPivotCacheID\", */ T:1 },\n\t/*::[*/0x046E/*::]*/: { /* n:\"BrtEndSlicerCachesPivotCacheID\", */ T:-1 },\n\t/*::[*/0x046F/*::]*/: { /* n:\"BrtBeginConditionalFormattings\", */ T:1 },\n\t/*::[*/0x0470/*::]*/: { /* n:\"BrtEndConditionalFormattings\", */ T:-1 },\n\t/*::[*/0x0471/*::]*/: { /* n:\"BrtBeginPCDCalcMemExt\", */ T:1 },\n\t/*::[*/0x0472/*::]*/: { /* n:\"BrtEndPCDCalcMemExt\", */ T:-1 },\n\t/*::[*/0x0473/*::]*/: { /* n:\"BrtBeginPCDCalcMemsExt\", */ T:1 },\n\t/*::[*/0x0474/*::]*/: { /* n:\"BrtEndPCDCalcMemsExt\", */ T:-1 },\n\t/*::[*/0x0475/*::]*/: { /* n:\"BrtPCDField14\" */ },\n\t/*::[*/0x0476/*::]*/: { /* n:\"BrtBeginSlicerStyles\", */ T:1 },\n\t/*::[*/0x0477/*::]*/: { /* n:\"BrtEndSlicerStyles\", */ T:-1 },\n\t/*::[*/0x0478/*::]*/: { /* n:\"BrtBeginSlicerStyleElements\", */ T:1 },\n\t/*::[*/0x0479/*::]*/: { /* n:\"BrtEndSlicerStyleElements\", */ T:-1 },\n\t/*::[*/0x047A/*::]*/: { /* n:\"BrtCFRuleExt\" */ },\n\t/*::[*/0x047B/*::]*/: { /* n:\"BrtBeginSXCondFmt14\", */ T:1 },\n\t/*::[*/0x047C/*::]*/: { /* n:\"BrtEndSXCondFmt14\", */ T:-1 },\n\t/*::[*/0x047D/*::]*/: { /* n:\"BrtBeginSXCondFmts14\", */ T:1 },\n\t/*::[*/0x047E/*::]*/: { /* n:\"BrtEndSXCondFmts14\", */ T:-1 },\n\t/*::[*/0x0480/*::]*/: { /* n:\"BrtBeginSortCond14\", */ T:1 },\n\t/*::[*/0x0481/*::]*/: { /* n:\"BrtEndSortCond14\", */ T:-1 },\n\t/*::[*/0x0482/*::]*/: { /* n:\"BrtEndDVals14\", */ T:-1 },\n\t/*::[*/0x0483/*::]*/: { /* n:\"BrtEndIconSet14\", */ T:-1 },\n\t/*::[*/0x0484/*::]*/: { /* n:\"BrtEndDatabar14\", */ T:-1 },\n\t/*::[*/0x0485/*::]*/: { /* n:\"BrtBeginColorScale14\", */ T:1 },\n\t/*::[*/0x0486/*::]*/: { /* n:\"BrtEndColorScale14\", */ T:-1 },\n\t/*::[*/0x0487/*::]*/: { /* n:\"BrtBeginSxrules14\", */ T:1 },\n\t/*::[*/0x0488/*::]*/: { /* n:\"BrtEndSxrules14\", */ T:-1 },\n\t/*::[*/0x0489/*::]*/: { /* n:\"BrtBeginPRule14\", */ T:1 },\n\t/*::[*/0x048A/*::]*/: { /* n:\"BrtEndPRule14\", */ T:-1 },\n\t/*::[*/0x048B/*::]*/: { /* n:\"BrtBeginPRFilters14\", */ T:1 },\n\t/*::[*/0x048C/*::]*/: { /* n:\"BrtEndPRFilters14\", */ T:-1 },\n\t/*::[*/0x048D/*::]*/: { /* n:\"BrtBeginPRFilter14\", */ T:1 },\n\t/*::[*/0x048E/*::]*/: { /* n:\"BrtEndPRFilter14\", */ T:-1 },\n\t/*::[*/0x048F/*::]*/: { /* n:\"BrtBeginPRFItem14\", */ T:1 },\n\t/*::[*/0x0490/*::]*/: { /* n:\"BrtEndPRFItem14\", */ T:-1 },\n\t/*::[*/0x0491/*::]*/: { /* n:\"BrtBeginCellIgnoreECs14\", */ T:1 },\n\t/*::[*/0x0492/*::]*/: { /* n:\"BrtEndCellIgnoreECs14\", */ T:-1 },\n\t/*::[*/0x0493/*::]*/: { /* n:\"BrtDxf14\" */ },\n\t/*::[*/0x0494/*::]*/: { /* n:\"BrtBeginDxF14s\", */ T:1 },\n\t/*::[*/0x0495/*::]*/: { /* n:\"BrtEndDxf14s\", */ T:-1 },\n\t/*::[*/0x0499/*::]*/: { /* n:\"BrtFilter14\" */ },\n\t/*::[*/0x049A/*::]*/: { /* n:\"BrtBeginCustomFilters14\", */ T:1 },\n\t/*::[*/0x049C/*::]*/: { /* n:\"BrtCustomFilter14\" */ },\n\t/*::[*/0x049D/*::]*/: { /* n:\"BrtIconFilter14\" */ },\n\t/*::[*/0x049E/*::]*/: { /* n:\"BrtPivotCacheConnectionName\" */ },\n\t/*::[*/0x0800/*::]*/: { /* n:\"BrtBeginDecoupledPivotCacheIDs\", */ T:1 },\n\t/*::[*/0x0801/*::]*/: { /* n:\"BrtEndDecoupledPivotCacheIDs\", */ T:-1 },\n\t/*::[*/0x0802/*::]*/: { /* n:\"BrtDecoupledPivotCacheID\" */ },\n\t/*::[*/0x0803/*::]*/: { /* n:\"BrtBeginPivotTableRefs\", */ T:1 },\n\t/*::[*/0x0804/*::]*/: { /* n:\"BrtEndPivotTableRefs\", */ T:-1 },\n\t/*::[*/0x0805/*::]*/: { /* n:\"BrtPivotTableRef\" */ },\n\t/*::[*/0x0806/*::]*/: { /* n:\"BrtSlicerCacheBookPivotTables\" */ },\n\t/*::[*/0x0807/*::]*/: { /* n:\"BrtBeginSxvcells\", */ T:1 },\n\t/*::[*/0x0808/*::]*/: { /* n:\"BrtEndSxvcells\", */ T:-1 },\n\t/*::[*/0x0809/*::]*/: { /* n:\"BrtBeginSxRow\", */ T:1 },\n\t/*::[*/0x080A/*::]*/: { /* n:\"BrtEndSxRow\", */ T:-1 },\n\t/*::[*/0x080C/*::]*/: { /* n:\"BrtPcdCalcMem15\" */ },\n\t/*::[*/0x0813/*::]*/: { /* n:\"BrtQsi15\" */ },\n\t/*::[*/0x0814/*::]*/: { /* n:\"BrtBeginWebExtensions\", */ T:1 },\n\t/*::[*/0x0815/*::]*/: { /* n:\"BrtEndWebExtensions\", */ T:-1 },\n\t/*::[*/0x0816/*::]*/: { /* n:\"BrtWebExtension\" */ },\n\t/*::[*/0x0817/*::]*/: { /* n:\"BrtAbsPath15\" */ },\n\t/*::[*/0x0818/*::]*/: { /* n:\"BrtBeginPivotTableUISettings\", */ T:1 },\n\t/*::[*/0x0819/*::]*/: { /* n:\"BrtEndPivotTableUISettings\", */ T:-1 },\n\t/*::[*/0x081B/*::]*/: { /* n:\"BrtTableSlicerCacheIDs\" */ },\n\t/*::[*/0x081C/*::]*/: { /* n:\"BrtTableSlicerCacheID\" */ },\n\t/*::[*/0x081D/*::]*/: { /* n:\"BrtBeginTableSlicerCache\", */ T:1 },\n\t/*::[*/0x081E/*::]*/: { /* n:\"BrtEndTableSlicerCache\", */ T:-1 },\n\t/*::[*/0x081F/*::]*/: { /* n:\"BrtSxFilter15\" */ },\n\t/*::[*/0x0820/*::]*/: { /* n:\"BrtBeginTimelineCachePivotCacheIDs\", */ T:1 },\n\t/*::[*/0x0821/*::]*/: { /* n:\"BrtEndTimelineCachePivotCacheIDs\", */ T:-1 },\n\t/*::[*/0x0822/*::]*/: { /* n:\"BrtTimelineCachePivotCacheID\" */ },\n\t/*::[*/0x0823/*::]*/: { /* n:\"BrtBeginTimelineCacheIDs\", */ T:1 },\n\t/*::[*/0x0824/*::]*/: { /* n:\"BrtEndTimelineCacheIDs\", */ T:-1 },\n\t/*::[*/0x0825/*::]*/: { /* n:\"BrtBeginTimelineCacheID\", */ T:1 },\n\t/*::[*/0x0826/*::]*/: { /* n:\"BrtEndTimelineCacheID\", */ T:-1 },\n\t/*::[*/0x0827/*::]*/: { /* n:\"BrtBeginTimelinesEx\", */ T:1 },\n\t/*::[*/0x0828/*::]*/: { /* n:\"BrtEndTimelinesEx\", */ T:-1 },\n\t/*::[*/0x0829/*::]*/: { /* n:\"BrtBeginTimelineEx\", */ T:1 },\n\t/*::[*/0x082A/*::]*/: { /* n:\"BrtEndTimelineEx\", */ T:-1 },\n\t/*::[*/0x082B/*::]*/: { /* n:\"BrtWorkBookPr15\" */ },\n\t/*::[*/0x082C/*::]*/: { /* n:\"BrtPCDH15\" */ },\n\t/*::[*/0x082D/*::]*/: { /* n:\"BrtBeginTimelineStyle\", */ T:1 },\n\t/*::[*/0x082E/*::]*/: { /* n:\"BrtEndTimelineStyle\", */ T:-1 },\n\t/*::[*/0x082F/*::]*/: { /* n:\"BrtTimelineStyleElement\" */ },\n\t/*::[*/0x0830/*::]*/: { /* n:\"BrtBeginTimelineStylesheetExt15\", */ T:1 },\n\t/*::[*/0x0831/*::]*/: { /* n:\"BrtEndTimelineStylesheetExt15\", */ T:-1 },\n\t/*::[*/0x0832/*::]*/: { /* n:\"BrtBeginTimelineStyles\", */ T:1 },\n\t/*::[*/0x0833/*::]*/: { /* n:\"BrtEndTimelineStyles\", */ T:-1 },\n\t/*::[*/0x0834/*::]*/: { /* n:\"BrtBeginTimelineStyleElements\", */ T:1 },\n\t/*::[*/0x0835/*::]*/: { /* n:\"BrtEndTimelineStyleElements\", */ T:-1 },\n\t/*::[*/0x0836/*::]*/: { /* n:\"BrtDxf15\" */ },\n\t/*::[*/0x0837/*::]*/: { /* n:\"BrtBeginDxfs15\", */ T:1 },\n\t/*::[*/0x0838/*::]*/: { /* n:\"BrtEndDxfs15\", */ T:-1 },\n\t/*::[*/0x0839/*::]*/: { /* n:\"BrtSlicerCacheHideItemsWithNoData\" */ },\n\t/*::[*/0x083A/*::]*/: { /* n:\"BrtBeginItemUniqueNames\", */ T:1 },\n\t/*::[*/0x083B/*::]*/: { /* n:\"BrtEndItemUniqueNames\", */ T:-1 },\n\t/*::[*/0x083C/*::]*/: { /* n:\"BrtItemUniqueName\" */ },\n\t/*::[*/0x083D/*::]*/: { /* n:\"BrtBeginExtConn15\", */ T:1 },\n\t/*::[*/0x083E/*::]*/: { /* n:\"BrtEndExtConn15\", */ T:-1 },\n\t/*::[*/0x083F/*::]*/: { /* n:\"BrtBeginOledbPr15\", */ T:1 },\n\t/*::[*/0x0840/*::]*/: { /* n:\"BrtEndOledbPr15\", */ T:-1 },\n\t/*::[*/0x0841/*::]*/: { /* n:\"BrtBeginDataFeedPr15\", */ T:1 },\n\t/*::[*/0x0842/*::]*/: { /* n:\"BrtEndDataFeedPr15\", */ T:-1 },\n\t/*::[*/0x0843/*::]*/: { /* n:\"BrtTextPr15\" */ },\n\t/*::[*/0x0844/*::]*/: { /* n:\"BrtRangePr15\" */ },\n\t/*::[*/0x0845/*::]*/: { /* n:\"BrtDbCommand15\" */ },\n\t/*::[*/0x0846/*::]*/: { /* n:\"BrtBeginDbTables15\", */ T:1 },\n\t/*::[*/0x0847/*::]*/: { /* n:\"BrtEndDbTables15\", */ T:-1 },\n\t/*::[*/0x0848/*::]*/: { /* n:\"BrtDbTable15\" */ },\n\t/*::[*/0x0849/*::]*/: { /* n:\"BrtBeginDataModel\", */ T:1 },\n\t/*::[*/0x084A/*::]*/: { /* n:\"BrtEndDataModel\", */ T:-1 },\n\t/*::[*/0x084B/*::]*/: { /* n:\"BrtBeginModelTables\", */ T:1 },\n\t/*::[*/0x084C/*::]*/: { /* n:\"BrtEndModelTables\", */ T:-1 },\n\t/*::[*/0x084D/*::]*/: { /* n:\"BrtModelTable\" */ },\n\t/*::[*/0x084E/*::]*/: { /* n:\"BrtBeginModelRelationships\", */ T:1 },\n\t/*::[*/0x084F/*::]*/: { /* n:\"BrtEndModelRelationships\", */ T:-1 },\n\t/*::[*/0x0850/*::]*/: { /* n:\"BrtModelRelationship\" */ },\n\t/*::[*/0x0851/*::]*/: { /* n:\"BrtBeginECTxtWiz15\", */ T:1 },\n\t/*::[*/0x0852/*::]*/: { /* n:\"BrtEndECTxtWiz15\", */ T:-1 },\n\t/*::[*/0x0853/*::]*/: { /* n:\"BrtBeginECTWFldInfoLst15\", */ T:1 },\n\t/*::[*/0x0854/*::]*/: { /* n:\"BrtEndECTWFldInfoLst15\", */ T:-1 },\n\t/*::[*/0x0855/*::]*/: { /* n:\"BrtBeginECTWFldInfo15\", */ T:1 },\n\t/*::[*/0x0856/*::]*/: { /* n:\"BrtFieldListActiveItem\" */ },\n\t/*::[*/0x0857/*::]*/: { /* n:\"BrtPivotCacheIdVersion\" */ },\n\t/*::[*/0x0858/*::]*/: { /* n:\"BrtSXDI15\" */ },\n\t/*::[*/0x0859/*::]*/: { /* n:\"BrtBeginModelTimeGroupings\", */ T:1 },\n\t/*::[*/0x085A/*::]*/: { /* n:\"BrtEndModelTimeGroupings\", */ T:-1 },\n\t/*::[*/0x085B/*::]*/: { /* n:\"BrtBeginModelTimeGrouping\", */ T:1 },\n\t/*::[*/0x085C/*::]*/: { /* n:\"BrtEndModelTimeGrouping\", */ T:-1 },\n\t/*::[*/0x085D/*::]*/: { /* n:\"BrtModelTimeGroupingCalcCol\" */ },\n\t/*::[*/0x0C00/*::]*/: { /* n:\"BrtUid\" */ },\n\t/*::[*/0x0C01/*::]*/: { /* n:\"BrtRevisionPtr\" */ },\n\t/*::[*/0x1000/*::]*/: { /* n:\"BrtBeginDynamicArrayPr\", */ T:1 },\n\t/*::[*/0x1001/*::]*/: { /* n:\"BrtEndDynamicArrayPr\", */ T:-1 },\n\t/*::[*/0x138A/*::]*/: { /* n:\"BrtBeginRichValueBlock\", */ T:1 },\n\t/*::[*/0x138B/*::]*/: { /* n:\"BrtEndRichValueBlock\", */ T:-1 },\n\t/*::[*/0x13D9/*::]*/: { /* n:\"BrtBeginRichFilters\", */ T:1 },\n\t/*::[*/0x13DA/*::]*/: { /* n:\"BrtEndRichFilters\", */ T:-1 },\n\t/*::[*/0x13DB/*::]*/: { /* n:\"BrtRichFilter\" */ },\n\t/*::[*/0x13DC/*::]*/: { /* n:\"BrtBeginRichFilterColumn\", */ T:1 },\n\t/*::[*/0x13DD/*::]*/: { /* n:\"BrtEndRichFilterColumn\", */ T:-1 },\n\t/*::[*/0x13DE/*::]*/: { /* n:\"BrtBeginCustomRichFilters\", */ T:1 },\n\t/*::[*/0x13DF/*::]*/: { /* n:\"BrtEndCustomRichFilters\", */ T:-1 },\n\t/*::[*/0x13E0/*::]*/: { /* n:\"BrtCustomRichFilter\" */ },\n\t/*::[*/0x13E1/*::]*/: { /* n:\"BrtTop10RichFilter\" */ },\n\t/*::[*/0x13E2/*::]*/: { /* n:\"BrtDynamicRichFilter\" */ },\n\t/*::[*/0x13E4/*::]*/: { /* n:\"BrtBeginRichSortCondition\", */ T:1 },\n\t/*::[*/0x13E5/*::]*/: { /* n:\"BrtEndRichSortCondition\", */ T:-1 },\n\t/*::[*/0x13E6/*::]*/: { /* n:\"BrtRichFilterDateGroupItem\" */ },\n\t/*::[*/0x13E7/*::]*/: { /* n:\"BrtBeginCalcFeatures\", */ T:1 },\n\t/*::[*/0x13E8/*::]*/: { /* n:\"BrtEndCalcFeatures\", */ T:-1 },\n\t/*::[*/0x13E9/*::]*/: { /* n:\"BrtCalcFeature\" */ },\n\t/*::[*/0x13EB/*::]*/: { /* n:\"BrtExternalLinksPr\" */ },\n\t/*::[*/0xFFFF/*::]*/: { n:\"\" }\n};\n\n/* [MS-XLS] 2.3 Record Enumeration (and other sources) */\nvar XLSRecordEnum = {\n\t/* [MS-XLS] 2.3 Record Enumeration 2021-08-17 */\n\t/*::[*/0x0006/*::]*/: { /* n:\"Formula\", */ f:parse_Formula },\n\t/*::[*/0x000a/*::]*/: { /* n:\"EOF\", */ f:parsenoop2 },\n\t/*::[*/0x000c/*::]*/: { /* n:\"CalcCount\", */ f:parseuint16 }, //\n\t/*::[*/0x000d/*::]*/: { /* n:\"CalcMode\", */ f:parseuint16 }, //\n\t/*::[*/0x000e/*::]*/: { /* n:\"CalcPrecision\", */ f:parsebool }, //\n\t/*::[*/0x000f/*::]*/: { /* n:\"CalcRefMode\", */ f:parsebool }, //\n\t/*::[*/0x0010/*::]*/: { /* n:\"CalcDelta\", */ f:parse_Xnum }, //\n\t/*::[*/0x0011/*::]*/: { /* n:\"CalcIter\", */ f:parsebool }, //\n\t/*::[*/0x0012/*::]*/: { /* n:\"Protect\", */ f:parsebool },\n\t/*::[*/0x0013/*::]*/: { /* n:\"Password\", */ f:parseuint16 },\n\t/*::[*/0x0014/*::]*/: { /* n:\"Header\", */ f:parse_XLHeaderFooter },\n\t/*::[*/0x0015/*::]*/: { /* n:\"Footer\", */ f:parse_XLHeaderFooter },\n\t/*::[*/0x0017/*::]*/: { /* n:\"ExternSheet\", */ f:parse_ExternSheet },\n\t/*::[*/0x0018/*::]*/: { /* n:\"Lbl\", */ f:parse_Lbl },\n\t/*::[*/0x0019/*::]*/: { /* n:\"WinProtect\", */ f:parsebool },\n\t/*::[*/0x001a/*::]*/: { /* n:\"VerticalPageBreaks\", */ },\n\t/*::[*/0x001b/*::]*/: { /* n:\"HorizontalPageBreaks\", */ },\n\t/*::[*/0x001c/*::]*/: { /* n:\"Note\", */ f:parse_Note },\n\t/*::[*/0x001d/*::]*/: { /* n:\"Selection\", */ },\n\t/*::[*/0x0022/*::]*/: { /* n:\"Date1904\", */ f:parsebool },\n\t/*::[*/0x0023/*::]*/: { /* n:\"ExternName\", */ f:parse_ExternName },\n\t/*::[*/0x0026/*::]*/: { /* n:\"LeftMargin\", */ f:parse_Xnum }, // *\n\t/*::[*/0x0027/*::]*/: { /* n:\"RightMargin\", */ f:parse_Xnum }, // *\n\t/*::[*/0x0028/*::]*/: { /* n:\"TopMargin\", */ f:parse_Xnum }, // *\n\t/*::[*/0x0029/*::]*/: { /* n:\"BottomMargin\", */ f:parse_Xnum }, // *\n\t/*::[*/0x002a/*::]*/: { /* n:\"PrintRowCol\", */ f:parsebool },\n\t/*::[*/0x002b/*::]*/: { /* n:\"PrintGrid\", */ f:parsebool },\n\t/*::[*/0x002f/*::]*/: { /* n:\"FilePass\", */ f:parse_FilePass },\n\t/*::[*/0x0031/*::]*/: { /* n:\"Font\", */ f:parse_Font },\n\t/*::[*/0x0033/*::]*/: { /* n:\"PrintSize\", */ f:parseuint16 },\n\t/*::[*/0x003c/*::]*/: { /* n:\"Continue\", */ },\n\t/*::[*/0x003d/*::]*/: { /* n:\"Window1\", */ f:parse_Window1 },\n\t/*::[*/0x0040/*::]*/: { /* n:\"Backup\", */ f:parsebool },\n\t/*::[*/0x0041/*::]*/: { /* n:\"Pane\", */ f:parse_Pane },\n\t/*::[*/0x0042/*::]*/: { /* n:\"CodePage\", */ f:parseuint16 },\n\t/*::[*/0x004d/*::]*/: { /* n:\"Pls\", */ },\n\t/*::[*/0x0050/*::]*/: { /* n:\"DCon\", */ },\n\t/*::[*/0x0051/*::]*/: { /* n:\"DConRef\", */ },\n\t/*::[*/0x0052/*::]*/: { /* n:\"DConName\", */ },\n\t/*::[*/0x0055/*::]*/: { /* n:\"DefColWidth\", */ f:parseuint16 },\n\t/*::[*/0x0059/*::]*/: { /* n:\"XCT\", */ },\n\t/*::[*/0x005a/*::]*/: { /* n:\"CRN\", */ },\n\t/*::[*/0x005b/*::]*/: { /* n:\"FileSharing\", */ },\n\t/*::[*/0x005c/*::]*/: { /* n:\"WriteAccess\", */ f:parse_WriteAccess },\n\t/*::[*/0x005d/*::]*/: { /* n:\"Obj\", */ f:parse_Obj },\n\t/*::[*/0x005e/*::]*/: { /* n:\"Uncalced\", */ },\n\t/*::[*/0x005f/*::]*/: { /* n:\"CalcSaveRecalc\", */ f:parsebool }, //\n\t/*::[*/0x0060/*::]*/: { /* n:\"Template\", */ },\n\t/*::[*/0x0061/*::]*/: { /* n:\"Intl\", */ },\n\t/*::[*/0x0063/*::]*/: { /* n:\"ObjProtect\", */ f:parsebool },\n\t/*::[*/0x007d/*::]*/: { /* n:\"ColInfo\", */ f:parse_ColInfo },\n\t/*::[*/0x0080/*::]*/: { /* n:\"Guts\", */ f:parse_Guts },\n\t/*::[*/0x0081/*::]*/: { /* n:\"WsBool\", */ f:parse_WsBool },\n\t/*::[*/0x0082/*::]*/: { /* n:\"GridSet\", */ f:parseuint16 },\n\t/*::[*/0x0083/*::]*/: { /* n:\"HCenter\", */ f:parsebool },\n\t/*::[*/0x0084/*::]*/: { /* n:\"VCenter\", */ f:parsebool },\n\t/*::[*/0x0085/*::]*/: { /* n:\"BoundSheet8\", */ f:parse_BoundSheet8 },\n\t/*::[*/0x0086/*::]*/: { /* n:\"WriteProtect\", */ },\n\t/*::[*/0x008c/*::]*/: { /* n:\"Country\", */ f:parse_Country },\n\t/*::[*/0x008d/*::]*/: { /* n:\"HideObj\", */ f:parseuint16 },\n\t/*::[*/0x0090/*::]*/: { /* n:\"Sort\", */ },\n\t/*::[*/0x0092/*::]*/: { /* n:\"Palette\", */ f:parse_Palette },\n\t/*::[*/0x0097/*::]*/: { /* n:\"Sync\", */ },\n\t/*::[*/0x0098/*::]*/: { /* n:\"LPr\", */ },\n\t/*::[*/0x0099/*::]*/: { /* n:\"DxGCol\", */ },\n\t/*::[*/0x009a/*::]*/: { /* n:\"FnGroupName\", */ },\n\t/*::[*/0x009b/*::]*/: { /* n:\"FilterMode\", */ },\n\t/*::[*/0x009c/*::]*/: { /* n:\"BuiltInFnGroupCount\", */ f:parseuint16 },\n\t/*::[*/0x009d/*::]*/: { /* n:\"AutoFilterInfo\", */ },\n\t/*::[*/0x009e/*::]*/: { /* n:\"AutoFilter\", */ },\n\t/*::[*/0x00a0/*::]*/: { /* n:\"Scl\", */ f:parse_Scl },\n\t/*::[*/0x00a1/*::]*/: { /* n:\"Setup\", */ f:parse_Setup },\n\t/*::[*/0x00ae/*::]*/: { /* n:\"ScenMan\", */ },\n\t/*::[*/0x00af/*::]*/: { /* n:\"SCENARIO\", */ },\n\t/*::[*/0x00b0/*::]*/: { /* n:\"SxView\", */ },\n\t/*::[*/0x00b1/*::]*/: { /* n:\"Sxvd\", */ },\n\t/*::[*/0x00b2/*::]*/: { /* n:\"SXVI\", */ },\n\t/*::[*/0x00b4/*::]*/: { /* n:\"SxIvd\", */ },\n\t/*::[*/0x00b5/*::]*/: { /* n:\"SXLI\", */ },\n\t/*::[*/0x00b6/*::]*/: { /* n:\"SXPI\", */ },\n\t/*::[*/0x00b8/*::]*/: { /* n:\"DocRoute\", */ },\n\t/*::[*/0x00b9/*::]*/: { /* n:\"RecipName\", */ },\n\t/*::[*/0x00bd/*::]*/: { /* n:\"MulRk\", */ f:parse_MulRk },\n\t/*::[*/0x00be/*::]*/: { /* n:\"MulBlank\", */ f:parse_MulBlank },\n\t/*::[*/0x00c1/*::]*/: { /* n:\"Mms\", */ f:parsenoop2 },\n\t/*::[*/0x00c5/*::]*/: { /* n:\"SXDI\", */ },\n\t/*::[*/0x00c6/*::]*/: { /* n:\"SXDB\", */ },\n\t/*::[*/0x00c7/*::]*/: { /* n:\"SXFDB\", */ },\n\t/*::[*/0x00c8/*::]*/: { /* n:\"SXDBB\", */ },\n\t/*::[*/0x00c9/*::]*/: { /* n:\"SXNum\", */ },\n\t/*::[*/0x00ca/*::]*/: { /* n:\"SxBool\", */ f:parsebool },\n\t/*::[*/0x00cb/*::]*/: { /* n:\"SxErr\", */ },\n\t/*::[*/0x00cc/*::]*/: { /* n:\"SXInt\", */ },\n\t/*::[*/0x00cd/*::]*/: { /* n:\"SXString\", */ },\n\t/*::[*/0x00ce/*::]*/: { /* n:\"SXDtr\", */ },\n\t/*::[*/0x00cf/*::]*/: { /* n:\"SxNil\", */ },\n\t/*::[*/0x00d0/*::]*/: { /* n:\"SXTbl\", */ },\n\t/*::[*/0x00d1/*::]*/: { /* n:\"SXTBRGIITM\", */ },\n\t/*::[*/0x00d2/*::]*/: { /* n:\"SxTbpg\", */ },\n\t/*::[*/0x00d3/*::]*/: { /* n:\"ObProj\", */ },\n\t/*::[*/0x00d5/*::]*/: { /* n:\"SXStreamID\", */ },\n\t/*::[*/0x00d7/*::]*/: { /* n:\"DBCell\", */ },\n\t/*::[*/0x00d8/*::]*/: { /* n:\"SXRng\", */ },\n\t/*::[*/0x00d9/*::]*/: { /* n:\"SxIsxoper\", */ },\n\t/*::[*/0x00da/*::]*/: { /* n:\"BookBool\", */ f:parseuint16 },\n\t/*::[*/0x00dc/*::]*/: { /* n:\"DbOrParamQry\", */ },\n\t/*::[*/0x00dd/*::]*/: { /* n:\"ScenarioProtect\", */ f:parsebool },\n\t/*::[*/0x00de/*::]*/: { /* n:\"OleObjectSize\", */ },\n\t/*::[*/0x00e0/*::]*/: { /* n:\"XF\", */ f:parse_XF },\n\t/*::[*/0x00e1/*::]*/: { /* n:\"InterfaceHdr\", */ f:parse_InterfaceHdr },\n\t/*::[*/0x00e2/*::]*/: { /* n:\"InterfaceEnd\", */ f:parsenoop2 },\n\t/*::[*/0x00e3/*::]*/: { /* n:\"SXVS\", */ },\n\t/*::[*/0x00e5/*::]*/: { /* n:\"MergeCells\", */ f:parse_MergeCells },\n\t/*::[*/0x00e9/*::]*/: { /* n:\"BkHim\", */ },\n\t/*::[*/0x00eb/*::]*/: { /* n:\"MsoDrawingGroup\", */ },\n\t/*::[*/0x00ec/*::]*/: { /* n:\"MsoDrawing\", */ },\n\t/*::[*/0x00ed/*::]*/: { /* n:\"MsoDrawingSelection\", */ },\n\t/*::[*/0x00ef/*::]*/: { /* n:\"PhoneticInfo\", */ },\n\t/*::[*/0x00f0/*::]*/: { /* n:\"SxRule\", */ },\n\t/*::[*/0x00f1/*::]*/: { /* n:\"SXEx\", */ },\n\t/*::[*/0x00f2/*::]*/: { /* n:\"SxFilt\", */ },\n\t/*::[*/0x00f4/*::]*/: { /* n:\"SxDXF\", */ },\n\t/*::[*/0x00f5/*::]*/: { /* n:\"SxItm\", */ },\n\t/*::[*/0x00f6/*::]*/: { /* n:\"SxName\", */ },\n\t/*::[*/0x00f7/*::]*/: { /* n:\"SxSelect\", */ },\n\t/*::[*/0x00f8/*::]*/: { /* n:\"SXPair\", */ },\n\t/*::[*/0x00f9/*::]*/: { /* n:\"SxFmla\", */ },\n\t/*::[*/0x00fb/*::]*/: { /* n:\"SxFormat\", */ },\n\t/*::[*/0x00fc/*::]*/: { /* n:\"SST\", */ f:parse_SST },\n\t/*::[*/0x00fd/*::]*/: { /* n:\"LabelSst\", */ f:parse_LabelSst },\n\t/*::[*/0x00ff/*::]*/: { /* n:\"ExtSST\", */ f:parse_ExtSST },\n\t/*::[*/0x0100/*::]*/: { /* n:\"SXVDEx\", */ },\n\t/*::[*/0x0103/*::]*/: { /* n:\"SXFormula\", */ },\n\t/*::[*/0x0122/*::]*/: { /* n:\"SXDBEx\", */ },\n\t/*::[*/0x0137/*::]*/: { /* n:\"RRDInsDel\", */ },\n\t/*::[*/0x0138/*::]*/: { /* n:\"RRDHead\", */ },\n\t/*::[*/0x013b/*::]*/: { /* n:\"RRDChgCell\", */ },\n\t/*::[*/0x013d/*::]*/: { /* n:\"RRTabId\", */ f:parseuint16a },\n\t/*::[*/0x013e/*::]*/: { /* n:\"RRDRenSheet\", */ },\n\t/*::[*/0x013f/*::]*/: { /* n:\"RRSort\", */ },\n\t/*::[*/0x0140/*::]*/: { /* n:\"RRDMove\", */ },\n\t/*::[*/0x014a/*::]*/: { /* n:\"RRFormat\", */ },\n\t/*::[*/0x014b/*::]*/: { /* n:\"RRAutoFmt\", */ },\n\t/*::[*/0x014d/*::]*/: { /* n:\"RRInsertSh\", */ },\n\t/*::[*/0x014e/*::]*/: { /* n:\"RRDMoveBegin\", */ },\n\t/*::[*/0x014f/*::]*/: { /* n:\"RRDMoveEnd\", */ },\n\t/*::[*/0x0150/*::]*/: { /* n:\"RRDInsDelBegin\", */ },\n\t/*::[*/0x0151/*::]*/: { /* n:\"RRDInsDelEnd\", */ },\n\t/*::[*/0x0152/*::]*/: { /* n:\"RRDConflict\", */ },\n\t/*::[*/0x0153/*::]*/: { /* n:\"RRDDefName\", */ },\n\t/*::[*/0x0154/*::]*/: { /* n:\"RRDRstEtxp\", */ },\n\t/*::[*/0x015f/*::]*/: { /* n:\"LRng\", */ },\n\t/*::[*/0x0160/*::]*/: { /* n:\"UsesELFs\", */ f:parsebool },\n\t/*::[*/0x0161/*::]*/: { /* n:\"DSF\", */ f:parsenoop2 },\n\t/*::[*/0x0191/*::]*/: { /* n:\"CUsr\", */ },\n\t/*::[*/0x0192/*::]*/: { /* n:\"CbUsr\", */ },\n\t/*::[*/0x0193/*::]*/: { /* n:\"UsrInfo\", */ },\n\t/*::[*/0x0194/*::]*/: { /* n:\"UsrExcl\", */ },\n\t/*::[*/0x0195/*::]*/: { /* n:\"FileLock\", */ },\n\t/*::[*/0x0196/*::]*/: { /* n:\"RRDInfo\", */ },\n\t/*::[*/0x0197/*::]*/: { /* n:\"BCUsrs\", */ },\n\t/*::[*/0x0198/*::]*/: { /* n:\"UsrChk\", */ },\n\t/*::[*/0x01a9/*::]*/: { /* n:\"UserBView\", */ },\n\t/*::[*/0x01aa/*::]*/: { /* n:\"UserSViewBegin\", */ },\n\t/*::[*/0x01ab/*::]*/: { /* n:\"UserSViewEnd\", */ },\n\t/*::[*/0x01ac/*::]*/: { /* n:\"RRDUserView\", */ },\n\t/*::[*/0x01ad/*::]*/: { /* n:\"Qsi\", */ },\n\t/*::[*/0x01ae/*::]*/: { /* n:\"SupBook\", */ f:parse_SupBook },\n\t/*::[*/0x01af/*::]*/: { /* n:\"Prot4Rev\", */ f:parsebool },\n\t/*::[*/0x01b0/*::]*/: { /* n:\"CondFmt\", */ },\n\t/*::[*/0x01b1/*::]*/: { /* n:\"CF\", */ },\n\t/*::[*/0x01b2/*::]*/: { /* n:\"DVal\", */ },\n\t/*::[*/0x01b5/*::]*/: { /* n:\"DConBin\", */ },\n\t/*::[*/0x01b6/*::]*/: { /* n:\"TxO\", */ f:parse_TxO },\n\t/*::[*/0x01b7/*::]*/: { /* n:\"RefreshAll\", */ f:parsebool }, //\n\t/*::[*/0x01b8/*::]*/: { /* n:\"HLink\", */ f:parse_HLink },\n\t/*::[*/0x01b9/*::]*/: { /* n:\"Lel\", */ },\n\t/*::[*/0x01ba/*::]*/: { /* n:\"CodeName\", */ f:parse_XLUnicodeString },\n\t/*::[*/0x01bb/*::]*/: { /* n:\"SXFDBType\", */ },\n\t/*::[*/0x01bc/*::]*/: { /* n:\"Prot4RevPass\", */ f:parseuint16 },\n\t/*::[*/0x01bd/*::]*/: { /* n:\"ObNoMacros\", */ },\n\t/*::[*/0x01be/*::]*/: { /* n:\"Dv\", */ },\n\t/*::[*/0x01c0/*::]*/: { /* n:\"Excel9File\", */ f:parsenoop2 },\n\t/*::[*/0x01c1/*::]*/: { /* n:\"RecalcId\", */ f:parse_RecalcId, r:2},\n\t/*::[*/0x01c2/*::]*/: { /* n:\"EntExU2\", */ f:parsenoop2 },\n\t/*::[*/0x0200/*::]*/: { /* n:\"Dimensions\", */ f:parse_Dimensions },\n\t/*::[*/0x0201/*::]*/: { /* n:\"Blank\", */ f:parse_Blank },\n\t/*::[*/0x0203/*::]*/: { /* n:\"Number\", */ f:parse_Number },\n\t/*::[*/0x0204/*::]*/: { /* n:\"Label\", */ f:parse_Label },\n\t/*::[*/0x0205/*::]*/: { /* n:\"BoolErr\", */ f:parse_BoolErr },\n\t/*::[*/0x0207/*::]*/: { /* n:\"String\", */ f:parse_String },\n\t/*::[*/0x0208/*::]*/: { /* n:\"Row\", */ f:parse_Row },\n\t/*::[*/0x020b/*::]*/: { /* n:\"Index\", */ },\n\t/*::[*/0x0221/*::]*/: { /* n:\"Array\", */ f:parse_Array },\n\t/*::[*/0x0225/*::]*/: { /* n:\"DefaultRowHeight\", */ f:parse_DefaultRowHeight },\n\t/*::[*/0x0236/*::]*/: { /* n:\"Table\", */ },\n\t/*::[*/0x023e/*::]*/: { /* n:\"Window2\", */ f:parse_Window2 },\n\t/*::[*/0x027e/*::]*/: { /* n:\"RK\", */ f:parse_RK },\n\t/*::[*/0x0293/*::]*/: { /* n:\"Style\", */ },\n\t/*::[*/0x0418/*::]*/: { /* n:\"BigName\", */ },\n\t/*::[*/0x041e/*::]*/: { /* n:\"Format\", */ f:parse_Format },\n\t/*::[*/0x043c/*::]*/: { /* n:\"ContinueBigName\", */ },\n\t/*::[*/0x04bc/*::]*/: { /* n:\"ShrFmla\", */ f:parse_ShrFmla },\n\t/*::[*/0x0800/*::]*/: { /* n:\"HLinkTooltip\", */ f:parse_HLinkTooltip },\n\t/*::[*/0x0801/*::]*/: { /* n:\"WebPub\", */ },\n\t/*::[*/0x0802/*::]*/: { /* n:\"QsiSXTag\", */ },\n\t/*::[*/0x0803/*::]*/: { /* n:\"DBQueryExt\", */ },\n\t/*::[*/0x0804/*::]*/: { /* n:\"ExtString\", */ },\n\t/*::[*/0x0805/*::]*/: { /* n:\"TxtQry\", */ },\n\t/*::[*/0x0806/*::]*/: { /* n:\"Qsir\", */ },\n\t/*::[*/0x0807/*::]*/: { /* n:\"Qsif\", */ },\n\t/*::[*/0x0808/*::]*/: { /* n:\"RRDTQSIF\", */ },\n\t/*::[*/0x0809/*::]*/: { /* n:\"BOF\", */ f:parse_BOF },\n\t/*::[*/0x080a/*::]*/: { /* n:\"OleDbConn\", */ },\n\t/*::[*/0x080b/*::]*/: { /* n:\"WOpt\", */ },\n\t/*::[*/0x080c/*::]*/: { /* n:\"SXViewEx\", */ },\n\t/*::[*/0x080d/*::]*/: { /* n:\"SXTH\", */ },\n\t/*::[*/0x080e/*::]*/: { /* n:\"SXPIEx\", */ },\n\t/*::[*/0x080f/*::]*/: { /* n:\"SXVDTEx\", */ },\n\t/*::[*/0x0810/*::]*/: { /* n:\"SXViewEx9\", */ },\n\t/*::[*/0x0812/*::]*/: { /* n:\"ContinueFrt\", */ },\n\t/*::[*/0x0813/*::]*/: { /* n:\"RealTimeData\", */ },\n\t/*::[*/0x0850/*::]*/: { /* n:\"ChartFrtInfo\", */ },\n\t/*::[*/0x0851/*::]*/: { /* n:\"FrtWrapper\", */ },\n\t/*::[*/0x0852/*::]*/: { /* n:\"StartBlock\", */ },\n\t/*::[*/0x0853/*::]*/: { /* n:\"EndBlock\", */ },\n\t/*::[*/0x0854/*::]*/: { /* n:\"StartObject\", */ },\n\t/*::[*/0x0855/*::]*/: { /* n:\"EndObject\", */ },\n\t/*::[*/0x0856/*::]*/: { /* n:\"CatLab\", */ },\n\t/*::[*/0x0857/*::]*/: { /* n:\"YMult\", */ },\n\t/*::[*/0x0858/*::]*/: { /* n:\"SXViewLink\", */ },\n\t/*::[*/0x0859/*::]*/: { /* n:\"PivotChartBits\", */ },\n\t/*::[*/0x085a/*::]*/: { /* n:\"FrtFontList\", */ },\n\t/*::[*/0x0862/*::]*/: { /* n:\"SheetExt\", */ },\n\t/*::[*/0x0863/*::]*/: { /* n:\"BookExt\", */ r:12},\n\t/*::[*/0x0864/*::]*/: { /* n:\"SXAddl\", */ },\n\t/*::[*/0x0865/*::]*/: { /* n:\"CrErr\", */ },\n\t/*::[*/0x0866/*::]*/: { /* n:\"HFPicture\", */ },\n\t/*::[*/0x0867/*::]*/: { /* n:\"FeatHdr\", */ f:parsenoop2 },\n\t/*::[*/0x0868/*::]*/: { /* n:\"Feat\", */ },\n\t/*::[*/0x086a/*::]*/: { /* n:\"DataLabExt\", */ },\n\t/*::[*/0x086b/*::]*/: { /* n:\"DataLabExtContents\", */ },\n\t/*::[*/0x086c/*::]*/: { /* n:\"CellWatch\", */ },\n\t/*::[*/0x0871/*::]*/: { /* n:\"FeatHdr11\", */ },\n\t/*::[*/0x0872/*::]*/: { /* n:\"Feature11\", */ },\n\t/*::[*/0x0874/*::]*/: { /* n:\"DropDownObjIds\", */ },\n\t/*::[*/0x0875/*::]*/: { /* n:\"ContinueFrt11\", */ },\n\t/*::[*/0x0876/*::]*/: { /* n:\"DConn\", */ },\n\t/*::[*/0x0877/*::]*/: { /* n:\"List12\", */ },\n\t/*::[*/0x0878/*::]*/: { /* n:\"Feature12\", */ },\n\t/*::[*/0x0879/*::]*/: { /* n:\"CondFmt12\", */ },\n\t/*::[*/0x087a/*::]*/: { /* n:\"CF12\", */ },\n\t/*::[*/0x087b/*::]*/: { /* n:\"CFEx\", */ },\n\t/*::[*/0x087c/*::]*/: { /* n:\"XFCRC\", */ f:parse_XFCRC, r:12 },\n\t/*::[*/0x087d/*::]*/: { /* n:\"XFExt\", */ f:parse_XFExt, r:12 },\n\t/*::[*/0x087e/*::]*/: { /* n:\"AutoFilter12\", */ },\n\t/*::[*/0x087f/*::]*/: { /* n:\"ContinueFrt12\", */ },\n\t/*::[*/0x0884/*::]*/: { /* n:\"MDTInfo\", */ },\n\t/*::[*/0x0885/*::]*/: { /* n:\"MDXStr\", */ },\n\t/*::[*/0x0886/*::]*/: { /* n:\"MDXTuple\", */ },\n\t/*::[*/0x0887/*::]*/: { /* n:\"MDXSet\", */ },\n\t/*::[*/0x0888/*::]*/: { /* n:\"MDXProp\", */ },\n\t/*::[*/0x0889/*::]*/: { /* n:\"MDXKPI\", */ },\n\t/*::[*/0x088a/*::]*/: { /* n:\"MDB\", */ },\n\t/*::[*/0x088b/*::]*/: { /* n:\"PLV\", */ },\n\t/*::[*/0x088c/*::]*/: { /* n:\"Compat12\", */ f:parsebool, r:12 },\n\t/*::[*/0x088d/*::]*/: { /* n:\"DXF\", */ },\n\t/*::[*/0x088e/*::]*/: { /* n:\"TableStyles\", */ r:12 },\n\t/*::[*/0x088f/*::]*/: { /* n:\"TableStyle\", */ },\n\t/*::[*/0x0890/*::]*/: { /* n:\"TableStyleElement\", */ },\n\t/*::[*/0x0892/*::]*/: { /* n:\"StyleExt\", */ },\n\t/*::[*/0x0893/*::]*/: { /* n:\"NamePublish\", */ },\n\t/*::[*/0x0894/*::]*/: { /* n:\"NameCmt\", */ f:parse_NameCmt, r:12 },\n\t/*::[*/0x0895/*::]*/: { /* n:\"SortData\", */ },\n\t/*::[*/0x0896/*::]*/: { /* n:\"Theme\", */ f:parse_Theme, r:12 },\n\t/*::[*/0x0897/*::]*/: { /* n:\"GUIDTypeLib\", */ },\n\t/*::[*/0x0898/*::]*/: { /* n:\"FnGrp12\", */ },\n\t/*::[*/0x0899/*::]*/: { /* n:\"NameFnGrp12\", */ },\n\t/*::[*/0x089a/*::]*/: { /* n:\"MTRSettings\", */ f:parse_MTRSettings, r:12 },\n\t/*::[*/0x089b/*::]*/: { /* n:\"CompressPictures\", */ f:parsenoop2 },\n\t/*::[*/0x089c/*::]*/: { /* n:\"HeaderFooter\", */ },\n\t/*::[*/0x089d/*::]*/: { /* n:\"CrtLayout12\", */ },\n\t/*::[*/0x089e/*::]*/: { /* n:\"CrtMlFrt\", */ },\n\t/*::[*/0x089f/*::]*/: { /* n:\"CrtMlFrtContinue\", */ },\n\t/*::[*/0x08a3/*::]*/: { /* n:\"ForceFullCalculation\", */ f:parse_ForceFullCalculation },\n\t/*::[*/0x08a4/*::]*/: { /* n:\"ShapePropsStream\", */ },\n\t/*::[*/0x08a5/*::]*/: { /* n:\"TextPropsStream\", */ },\n\t/*::[*/0x08a6/*::]*/: { /* n:\"RichTextStream\", */ },\n\t/*::[*/0x08a7/*::]*/: { /* n:\"CrtLayout12A\", */ },\n\t/*::[*/0x1001/*::]*/: { /* n:\"Units\", */ },\n\t/*::[*/0x1002/*::]*/: { /* n:\"Chart\", */ },\n\t/*::[*/0x1003/*::]*/: { /* n:\"Series\", */ },\n\t/*::[*/0x1006/*::]*/: { /* n:\"DataFormat\", */ },\n\t/*::[*/0x1007/*::]*/: { /* n:\"LineFormat\", */ },\n\t/*::[*/0x1009/*::]*/: { /* n:\"MarkerFormat\", */ },\n\t/*::[*/0x100a/*::]*/: { /* n:\"AreaFormat\", */ },\n\t/*::[*/0x100b/*::]*/: { /* n:\"PieFormat\", */ },\n\t/*::[*/0x100c/*::]*/: { /* n:\"AttachedLabel\", */ },\n\t/*::[*/0x100d/*::]*/: { /* n:\"SeriesText\", */ },\n\t/*::[*/0x1014/*::]*/: { /* n:\"ChartFormat\", */ },\n\t/*::[*/0x1015/*::]*/: { /* n:\"Legend\", */ },\n\t/*::[*/0x1016/*::]*/: { /* n:\"SeriesList\", */ },\n\t/*::[*/0x1017/*::]*/: { /* n:\"Bar\", */ },\n\t/*::[*/0x1018/*::]*/: { /* n:\"Line\", */ },\n\t/*::[*/0x1019/*::]*/: { /* n:\"Pie\", */ },\n\t/*::[*/0x101a/*::]*/: { /* n:\"Area\", */ },\n\t/*::[*/0x101b/*::]*/: { /* n:\"Scatter\", */ },\n\t/*::[*/0x101c/*::]*/: { /* n:\"CrtLine\", */ },\n\t/*::[*/0x101d/*::]*/: { /* n:\"Axis\", */ },\n\t/*::[*/0x101e/*::]*/: { /* n:\"Tick\", */ },\n\t/*::[*/0x101f/*::]*/: { /* n:\"ValueRange\", */ },\n\t/*::[*/0x1020/*::]*/: { /* n:\"CatSerRange\", */ },\n\t/*::[*/0x1021/*::]*/: { /* n:\"AxisLine\", */ },\n\t/*::[*/0x1022/*::]*/: { /* n:\"CrtLink\", */ },\n\t/*::[*/0x1024/*::]*/: { /* n:\"DefaultText\", */ },\n\t/*::[*/0x1025/*::]*/: { /* n:\"Text\", */ },\n\t/*::[*/0x1026/*::]*/: { /* n:\"FontX\", */ f:parseuint16 },\n\t/*::[*/0x1027/*::]*/: { /* n:\"ObjectLink\", */ },\n\t/*::[*/0x1032/*::]*/: { /* n:\"Frame\", */ },\n\t/*::[*/0x1033/*::]*/: { /* n:\"Begin\", */ },\n\t/*::[*/0x1034/*::]*/: { /* n:\"End\", */ },\n\t/*::[*/0x1035/*::]*/: { /* n:\"PlotArea\", */ },\n\t/*::[*/0x103a/*::]*/: { /* n:\"Chart3d\", */ },\n\t/*::[*/0x103c/*::]*/: { /* n:\"PicF\", */ },\n\t/*::[*/0x103d/*::]*/: { /* n:\"DropBar\", */ },\n\t/*::[*/0x103e/*::]*/: { /* n:\"Radar\", */ },\n\t/*::[*/0x103f/*::]*/: { /* n:\"Surf\", */ },\n\t/*::[*/0x1040/*::]*/: { /* n:\"RadarArea\", */ },\n\t/*::[*/0x1041/*::]*/: { /* n:\"AxisParent\", */ },\n\t/*::[*/0x1043/*::]*/: { /* n:\"LegendException\", */ },\n\t/*::[*/0x1044/*::]*/: { /* n:\"ShtProps\", */ f:parse_ShtProps },\n\t/*::[*/0x1045/*::]*/: { /* n:\"SerToCrt\", */ },\n\t/*::[*/0x1046/*::]*/: { /* n:\"AxesUsed\", */ },\n\t/*::[*/0x1048/*::]*/: { /* n:\"SBaseRef\", */ },\n\t/*::[*/0x104a/*::]*/: { /* n:\"SerParent\", */ },\n\t/*::[*/0x104b/*::]*/: { /* n:\"SerAuxTrend\", */ },\n\t/*::[*/0x104e/*::]*/: { /* n:\"IFmtRecord\", */ },\n\t/*::[*/0x104f/*::]*/: { /* n:\"Pos\", */ },\n\t/*::[*/0x1050/*::]*/: { /* n:\"AlRuns\", */ },\n\t/*::[*/0x1051/*::]*/: { /* n:\"BRAI\", */ },\n\t/*::[*/0x105b/*::]*/: { /* n:\"SerAuxErrBar\", */ },\n\t/*::[*/0x105c/*::]*/: { /* n:\"ClrtClient\", */ f:parse_ClrtClient },\n\t/*::[*/0x105d/*::]*/: { /* n:\"SerFmt\", */ },\n\t/*::[*/0x105f/*::]*/: { /* n:\"Chart3DBarShape\", */ },\n\t/*::[*/0x1060/*::]*/: { /* n:\"Fbi\", */ },\n\t/*::[*/0x1061/*::]*/: { /* n:\"BopPop\", */ },\n\t/*::[*/0x1062/*::]*/: { /* n:\"AxcExt\", */ },\n\t/*::[*/0x1063/*::]*/: { /* n:\"Dat\", */ },\n\t/*::[*/0x1064/*::]*/: { /* n:\"PlotGrowth\", */ },\n\t/*::[*/0x1065/*::]*/: { /* n:\"SIIndex\", */ },\n\t/*::[*/0x1066/*::]*/: { /* n:\"GelFrame\", */ },\n\t/*::[*/0x1067/*::]*/: { /* n:\"BopPopCustom\", */ },\n\t/*::[*/0x1068/*::]*/: { /* n:\"Fbi2\", */ },\n\n\t/*::[*/0x0000/*::]*/: { /* n:\"Dimensions\", */ f:parse_Dimensions },\n\t/*::[*/0x0001/*::]*/: { /* n:\"BIFF2BLANK\", */ },\n\t/*::[*/0x0002/*::]*/: { /* n:\"BIFF2INT\", */ f:parse_BIFF2INT },\n\t/*::[*/0x0003/*::]*/: { /* n:\"BIFF2NUM\", */ f:parse_BIFF2NUM },\n\t/*::[*/0x0004/*::]*/: { /* n:\"BIFF2STR\", */ f:parse_BIFF2STR },\n\t/*::[*/0x0005/*::]*/: { /* n:\"BoolErr\", */ f:parse_BoolErr },\n\t/*::[*/0x0007/*::]*/: { /* n:\"String\", */ f:parse_BIFF2STRING },\n\t/*::[*/0x0008/*::]*/: { /* n:\"BIFF2ROW\", */ },\n\t/*::[*/0x0009/*::]*/: { /* n:\"BOF\", */ f:parse_BOF },\n\t/*::[*/0x000b/*::]*/: { /* n:\"Index\", */ },\n\t/*::[*/0x0016/*::]*/: { /* n:\"ExternCount\", */ f:parseuint16 },\n\t/*::[*/0x001e/*::]*/: { /* n:\"BIFF2FORMAT\", */ f:parse_BIFF2Format },\n\t/*::[*/0x001f/*::]*/: { /* n:\"BIFF2FMTCNT\", */ }, /* 16-bit cnt of BIFF2FORMAT records */\n\t/*::[*/0x0020/*::]*/: { /* n:\"BIFF2COLINFO\", */ },\n\t/*::[*/0x0021/*::]*/: { /* n:\"Array\", */ f:parse_Array },\n\t/*::[*/0x0024/*::]*/: { /* n:\"COLWIDTH\", */ },\n\t/*::[*/0x0025/*::]*/: { /* n:\"DefaultRowHeight\", */ f:parse_DefaultRowHeight },\n\t// 0x2c ??\n\t// 0x2d ??\n\t// 0x2e ??\n\t// 0x30 FONTCOUNT: number of fonts\n\t/*::[*/0x0032/*::]*/: { /* n:\"BIFF2FONTXTRA\", */ f:parse_BIFF2FONTXTRA },\n\t// 0x35: INFOOPTS\n\t// 0x36: TABLE (BIFF2 only)\n\t// 0x37: TABLE2 (BIFF2 only)\n\t// 0x38: WNDESK\n\t// 0x39 ??\n\t// 0x3a: BEGINPREF\n\t// 0x3b: ENDPREF\n\t/*::[*/0x003e/*::]*/: { /* n:\"BIFF2WINDOW2\", */ },\n\t// 0x3f ??\n\t// 0x46: SHOWSCROLL\n\t// 0x47: SHOWFORMULA\n\t// 0x48: STATUSBAR\n\t// 0x49: SHORTMENUS\n\t// 0x4A:\n\t// 0x4B:\n\t// 0x4C:\n\t// 0x4E:\n\t// 0x4F:\n\t// 0x58: TOOLBAR (BIFF3)\n\n\t/* - - - */\n\t/*::[*/0x0034/*::]*/: { /* n:\"DDEObjName\", */ },\n\t/*::[*/0x0043/*::]*/: { /* n:\"BIFF2XF\", */ },\n\t/*::[*/0x0044/*::]*/: { /* n:\"BIFF2XFINDEX\", */ f:parseuint16 },\n\t/*::[*/0x0045/*::]*/: { /* n:\"BIFF2FONTCLR\", */ },\n\t/*::[*/0x0056/*::]*/: { /* n:\"BIFF4FMTCNT\", */ }, /* 16-bit cnt, similar to BIFF2 */\n\t/*::[*/0x007e/*::]*/: { /* n:\"RK\", */ }, /* Not necessarily same as 0x027e */\n\t/*::[*/0x007f/*::]*/: { /* n:\"ImData\", */ f:parse_ImData },\n\t/*::[*/0x0087/*::]*/: { /* n:\"Addin\", */ },\n\t/*::[*/0x0088/*::]*/: { /* n:\"Edg\", */ },\n\t/*::[*/0x0089/*::]*/: { /* n:\"Pub\", */ },\n\t// 0x8A\n\t// 0x8B LH: alternate menu key flag (BIFF3/4)\n\t// 0x8E\n\t// 0x8F\n\t/*::[*/0x0091/*::]*/: { /* n:\"Sub\", */ },\n\t// 0x93 STYLE\n\t/*::[*/0x0094/*::]*/: { /* n:\"LHRecord\", */ },\n\t/*::[*/0x0095/*::]*/: { /* n:\"LHNGraph\", */ },\n\t/*::[*/0x0096/*::]*/: { /* n:\"Sound\", */ },\n\t// 0xA2 FNPROTO: function prototypes (BIFF4)\n\t// 0xA3\n\t// 0xA8\n\t/*::[*/0x00a9/*::]*/: { /* n:\"CoordList\", */ },\n\t/*::[*/0x00ab/*::]*/: { /* n:\"GCW\", */ },\n\t/*::[*/0x00bc/*::]*/: { /* n:\"ShrFmla\", */ }, /* Not necessarily same as 0x04bc */\n\t/*::[*/0x00bf/*::]*/: { /* n:\"ToolbarHdr\", */ },\n\t/*::[*/0x00c0/*::]*/: { /* n:\"ToolbarEnd\", */ },\n\t/*::[*/0x00c2/*::]*/: { /* n:\"AddMenu\", */ },\n\t/*::[*/0x00c3/*::]*/: { /* n:\"DelMenu\", */ },\n\t/*::[*/0x00d6/*::]*/: { /* n:\"RString\", */ f:parse_RString },\n\t/*::[*/0x00df/*::]*/: { /* n:\"UDDesc\", */ },\n\t/*::[*/0x00ea/*::]*/: { /* n:\"TabIdConf\", */ },\n\t/*::[*/0x0162/*::]*/: { /* n:\"XL5Modify\", */ },\n\t/*::[*/0x01a5/*::]*/: { /* n:\"FileSharing2\", */ },\n\t/*::[*/0x0206/*::]*/: { /* n:\"Formula\", */ f:parse_Formula },\n\t/*::[*/0x0209/*::]*/: { /* n:\"BOF\", */ f:parse_BOF },\n\t/*::[*/0x0218/*::]*/: { /* n:\"Lbl\", */ f:parse_Lbl },\n\t/*::[*/0x0223/*::]*/: { /* n:\"ExternName\", */ f:parse_ExternName },\n\t/*::[*/0x0231/*::]*/: { /* n:\"Font\", */ },\n\t/*::[*/0x0243/*::]*/: { /* n:\"BIFF3XF\", */ },\n\t/*::[*/0x0406/*::]*/: { /* n:\"Formula\", */ f:parse_Formula },\n\t/*::[*/0x0409/*::]*/: { /* n:\"BOF\", */ f:parse_BOF },\n\t/*::[*/0x0443/*::]*/: { /* n:\"BIFF4XF\", */ },\n\t/*::[*/0x086d/*::]*/: { /* n:\"FeatInfo\", */ },\n\t/*::[*/0x0873/*::]*/: { /* n:\"FeatInfo11\", */ },\n\t/*::[*/0x0881/*::]*/: { /* n:\"SXAddl12\", */ },\n\t/*::[*/0x08c0/*::]*/: { /* n:\"AutoWebPub\", */ },\n\t/*::[*/0x08c1/*::]*/: { /* n:\"ListObj\", */ },\n\t/*::[*/0x08c2/*::]*/: { /* n:\"ListField\", */ },\n\t/*::[*/0x08c3/*::]*/: { /* n:\"ListDV\", */ },\n\t/*::[*/0x08c4/*::]*/: { /* n:\"ListCondFmt\", */ },\n\t/*::[*/0x08c5/*::]*/: { /* n:\"ListCF\", */ },\n\t/*::[*/0x08c6/*::]*/: { /* n:\"FMQry\", */ },\n\t/*::[*/0x08c7/*::]*/: { /* n:\"FMSQry\", */ },\n\t/*::[*/0x08c8/*::]*/: { /* n:\"PLV\", */ },\n\t/*::[*/0x08c9/*::]*/: { /* n:\"LnExt\", */ },\n\t/*::[*/0x08ca/*::]*/: { /* n:\"MkrExt\", */ },\n\t/*::[*/0x08cb/*::]*/: { /* n:\"CrtCoopt\", */ },\n\t/*::[*/0x08d6/*::]*/: { /* n:\"FRTArchId$\", */ r:12 },\n\n\t/* --- multiplan 4 records --- */\n\t/*::[*/0x0065/*::]*/: { /* n:\"\", */ }, // one per window\n\t/*::[*/0x0066/*::]*/: { /* n:\"\", */ }, // calc settings\n\t/*::[*/0x0069/*::]*/: { /* n:\"\", */ }, // print header\n\t/*::[*/0x006a/*::]*/: { /* n:\"\", */ }, // print footer\n\t/*::[*/0x006b/*::]*/: { /* n:\"\", */ }, // print settings\n\t/*::[*/0x006d/*::]*/: { /* n:\"\", */ }, // one per window\n\t/*::[*/0x0070/*::]*/: { /* n:\"\", */ }, // includes default col width\n\t/*::[*/0x0072/*::]*/: { /* n:\"\", */ }, // includes selected cell\n\n\t/*::[*/0x7262/*::]*/: {}\n};\n\nfunction write_biff_rec(ba/*:BufArray*/, type/*:number*/, payload, length/*:?number*/)/*:void*/ {\n\tvar t/*:number*/ = type;\n\tif(isNaN(t)) return;\n\tvar len = length || (payload||[]).length || 0;\n\tvar o = ba.next(4);\n\to.write_shift(2, t);\n\to.write_shift(2, len);\n\tif(/*:: len != null &&*/len > 0 && is_buf(payload)) ba.push(payload);\n}\n\nfunction write_biff_continue(ba/*:BufArray*/, type/*:number*/, payload, length/*:?number*/)/*:void*/ {\n\tvar len = length || (payload||[]).length || 0;\n\tif(len <= 8224) return write_biff_rec(ba, type, payload, len);\n\tvar t = type;\n\tif(isNaN(t)) return;\n\tvar parts = payload.parts || [], sidx = 0;\n\tvar i = 0, w = 0;\n\twhile(w + (parts[sidx] || 8224) <= 8224) { w+= (parts[sidx] || 8224); sidx++; }\n\tvar o = ba.next(4);\n\to.write_shift(2, t);\n\to.write_shift(2, w);\n\tba.push(payload.slice(i, i + w));\n\ti += w;\n\twhile(i < len) {\n\t\to = ba.next(4);\n\t\to.write_shift(2, 0x3c); // TODO: figure out correct continue type\n\t\tw = 0;\n\t\twhile(w + (parts[sidx] || 8224) <= 8224) { w+= (parts[sidx] || 8224); sidx++; }\n\t\to.write_shift(2, w);\n\t\tba.push(payload.slice(i, i+w)); i+= w;\n\t}\n}\n\nfunction write_BIFF2Cell(out, r/*:number*/, c/*:number*/) {\n\tif(!out) out = new_buf(7);\n\tout.write_shift(2, r);\n\tout.write_shift(2, c);\n\tout.write_shift(2, 0);\n\tout.write_shift(1, 0);\n\treturn out;\n}\n\nfunction write_BIFF2BERR(r/*:number*/, c/*:number*/, val, t/*:?string*/) {\n\tvar out = new_buf(9);\n\twrite_BIFF2Cell(out, r, c);\n\twrite_Bes(val, t || 'b', out);\n\treturn out;\n}\n\n/* TODO: codepage, large strings */\nfunction write_BIFF2LABEL(r/*:number*/, c/*:number*/, val) {\n\tvar out = new_buf(8 + 2*val.length);\n\twrite_BIFF2Cell(out, r, c);\n\tout.write_shift(1, val.length);\n\tout.write_shift(val.length, val, 'sbcs');\n\treturn out.l < out.length ? out.slice(0, out.l) : out;\n}\n\nfunction write_ws_biff2_cell(ba/*:BufArray*/, cell/*:Cell*/, R/*:number*/, C/*:number*//*::, opts*/) {\n\tif(cell.v != null) switch(cell.t) {\n\t\tcase 'd': case 'n':\n\t\t\tvar v = cell.t == 'd' ? datenum(parseDate(cell.v)) : cell.v;\n\t\t\tif((v == (v|0)) && (v >= 0) && (v < 65536))\n\t\t\t\twrite_biff_rec(ba, 0x0002, write_BIFF2INT(R, C, v));\n\t\t\telse\n\t\t\t\twrite_biff_rec(ba, 0x0003, write_BIFF2NUM(R,C, v));\n\t\t\treturn;\n\t\tcase 'b': case 'e': write_biff_rec(ba, 0x0005, write_BIFF2BERR(R, C, cell.v, cell.t)); return;\n\t\t/* TODO: codepage, sst */\n\t\tcase 's': case 'str':\n\t\t\twrite_biff_rec(ba, 0x0004, write_BIFF2LABEL(R, C, cell.v == null ? \"\" : String(cell.v).slice(0,255)));\n\t\t\treturn;\n\t}\n\twrite_biff_rec(ba, 0x0001, write_BIFF2Cell(null, R, C));\n}\n\nfunction write_ws_biff2(ba/*:BufArray*/, ws/*:Worksheet*/, idx/*:number*/, opts/*::, wb:Workbook*/) {\n\tvar dense = ws[\"!data\"] != null;\n\tvar range = safe_decode_range(ws['!ref'] || \"A1\"), ref/*:string*/, rr = \"\", cols/*:Array<string>*/ = [];\n\tif(range.e.c > 0xFF || range.e.r > 0x3FFF) {\n\t\tif(opts.WTF) throw new Error(\"Range \" + (ws['!ref'] || \"A1\") + \" exceeds format limit A1:IV16384\");\n\t\trange.e.c = Math.min(range.e.c, 0xFF);\n\t\trange.e.r = Math.min(range.e.c, 0x3FFF);\n\t}\n\tvar row = [];\n\tfor(var C = range.s.c; C <= range.e.c; ++C) cols[C] = encode_col(C);\n\tfor(var R = range.s.r; R <= range.e.r; ++R) {\n\t\tif(dense) row = ws[\"!data\"][R] || [];\n\t\trr = encode_row(R);\n\t\tfor(C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tvar cell = dense ? row[C] : ws[cols[C] + rr];\n\t\t\tif(!cell) continue;\n\t\t\t/* write cell */\n\t\t\twrite_ws_biff2_cell(ba, cell, R, C, opts);\n\t\t}\n\t}\n}\n\n/* Based on test files */\nfunction write_biff2_buf(wb/*:Workbook*/, opts/*:WriteOpts*/) {\n\tvar o = opts || {};\n\tvar ba = buf_array();\n\tvar idx = 0;\n\tfor(var i=0;i<wb.SheetNames.length;++i) if(wb.SheetNames[i] == o.sheet) idx=i;\n\tif(idx == 0 && !!o.sheet && wb.SheetNames[0] != o.sheet) throw new Error(\"Sheet not found: \" + o.sheet);\n\twrite_biff_rec(ba, (o.biff == 4 ? 0x0409 : (o.biff == 3 ? 0x0209 : 0x0009)), write_BOF(wb, 0x10, o));\n\t/* ... */\n\twrite_ws_biff2(ba, wb.Sheets[wb.SheetNames[idx]], idx, o, wb);\n\t/* ... */\n\twrite_biff_rec(ba, 0x000A);\n\treturn ba.end();\n}\n\nfunction write_FONTS_biff8(ba, data, opts) {\n\twrite_biff_rec(ba, 0x0031 /* Font */, write_Font({\n\t\tsz:12,\n\t\tcolor: {theme:1},\n\t\tname: \"Arial\",\n\t\tfamily: 2,\n\t\tscheme: \"minor\"\n\t}, opts));\n}\n\n\nfunction write_FMTS_biff8(ba, NF/*:?SSFTable*/, opts) {\n\tif(!NF) return;\n\t[[5,8],[23,26],[41,44],[/*63*/50,/*66],[164,*/392]].forEach(function(r) {\n\t\t/*:: if(!NF) return; */\n\t\tfor(var i = r[0]; i <= r[1]; ++i) if(NF[i] != null) write_biff_rec(ba, 0x041E /* Format */, write_Format(i, NF[i], opts));\n\t});\n}\n\nfunction write_FEAT(ba, ws) {\n\t/* [MS-XLS] 2.4.112 */\n\tvar o = new_buf(19);\n\to.write_shift(4, 0x867); o.write_shift(4, 0); o.write_shift(4, 0);\n\to.write_shift(2, 3); o.write_shift(1, 1); o.write_shift(4, 0);\n\twrite_biff_rec(ba, 0x0867 /* FeatHdr */, o);\n\t/* [MS-XLS] 2.4.111 */\n\to = new_buf(39);\n\to.write_shift(4, 0x868); o.write_shift(4, 0); o.write_shift(4, 0);\n\to.write_shift(2, 3); o.write_shift(1, 0); o.write_shift(4, 0);\n\to.write_shift(2, 1); o.write_shift(4, 4); o.write_shift(2, 0);\n\twrite_Ref8U(safe_decode_range(ws['!ref']||\"A1\"), o);\n\to.write_shift(4, 4);\n\twrite_biff_rec(ba, 0x0868 /* Feat */, o);\n}\n\nfunction write_CELLXFS_biff8(ba, opts) {\n\tfor(var i = 0; i < 16; ++i) write_biff_rec(ba, 0x00e0 /* XF */, write_XF({numFmtId:0, style:true}, 0, opts));\n\topts.cellXfs.forEach(function(c) {\n\t\twrite_biff_rec(ba, 0x00e0 /* XF */, write_XF(c, 0, opts));\n\t});\n}\n\nfunction write_ws_biff8_hlinks(ba/*:BufArray*/, ws) {\n\tfor(var R=0; R<ws['!links'].length; ++R) {\n\t\tvar HL = ws['!links'][R];\n\t\twrite_biff_rec(ba, 0x01b8 /* HLink */, write_HLink(HL));\n\t\tif(HL[1].Tooltip) write_biff_rec(ba, 0x0800 /* HLinkTooltip */, write_HLinkTooltip(HL));\n\t}\n\tdelete ws['!links'];\n}\n\nfunction write_ws_cols_biff8(ba, cols) {\n\tif(!cols) return;\n\tvar cnt = 0;\n\tcols.forEach(function(col, idx) {\n\t\tif(++cnt <= 256 && col) {\n\t\t\twrite_biff_rec(ba, 0x007d /* ColInfo */, write_ColInfo(col_obj_w(idx, col), idx));\n\t\t}\n\t});\n}\n\nfunction write_ws_biff8_cell(ba/*:BufArray*/, cell/*:Cell*/, R/*:number*/, C/*:number*/, opts) {\n\tvar os = 16 + get_cell_style(opts.cellXfs, cell, opts);\n\tif(cell.v == null && !cell.bf) {\n\t\twrite_biff_rec(ba, 0x0201 /* Blank */, write_XLSCell(R, C, os));\n\t\treturn;\n\t}\n\tif(cell.bf) write_biff_rec(ba, 0x0006 /* Formula */, write_Formula(cell, R, C, opts, os));\n\telse switch(cell.t) {\n\t\tcase 'd': case 'n':\n\t\t\tvar v = cell.t == 'd' ? datenum(parseDate(cell.v)) : cell.v;\n\t\t\t/* TODO: emit RK as appropriate */\n\t\t\twrite_biff_rec(ba, 0x0203 /* Number */, write_Number(R, C, v, os, opts));\n\t\t\tbreak;\n\t\tcase 'b': case 'e':\n\t\t\twrite_biff_rec(ba, 0x0205 /* BoolErr */, write_BoolErr(R, C, cell.v, os, opts, cell.t));\n\t\t\tbreak;\n\t\t/* TODO: codepage, sst */\n\t\tcase 's': case 'str':\n\t\t\tif(opts.bookSST) {\n\t\t\t\tvar isst = get_sst_id(opts.Strings, cell.v == null ? \"\" : String(cell.v), opts.revStrings);\n\t\t\t\twrite_biff_rec(ba, 0x00fd /* LabelSst */, write_LabelSst(R, C, isst, os, opts));\n\t\t\t} else write_biff_rec(ba, 0x0204 /* Label */, write_Label(R, C, (cell.v == null ? \"\" : String(cell.v)).slice(0,255), os, opts));\n\t\t\tbreak;\n\t\tdefault:\n\t\t\twrite_biff_rec(ba, 0x0201 /* Blank */, write_XLSCell(R, C, os));\n\t}\n}\n\n/* [MS-XLS] 2.1.7.20.5 */\nfunction write_ws_biff8(idx/*:number*/, opts, wb/*:Workbook*/) {\n\tvar ba = buf_array();\n\tvar s = wb.SheetNames[idx], ws = wb.Sheets[s] || {};\n\tvar _WB/*:WBWBProps*/ = ((wb||{}).Workbook||{}/*:any*/);\n\tvar _sheet/*:WBWSProp*/ = ((_WB.Sheets||[])[idx]||{}/*:any*/);\n\tvar dense = ws[\"!data\"] != null;\n\tvar b8 = opts.biff == 8;\n\tvar ref/*:string*/, rr = \"\", cols/*:Array<string>*/ = [];\n\tvar range = safe_decode_range(ws['!ref'] || \"A1\");\n\tvar MAX_ROWS = b8 ? 65536 : 16384;\n\tif(range.e.c > 0xFF || range.e.r >= MAX_ROWS) {\n\t\tif(opts.WTF) throw new Error(\"Range \" + (ws['!ref'] || \"A1\") + \" exceeds format limit A1:IV16384\");\n\t\trange.e.c = Math.min(range.e.c, 0xFF);\n\t\trange.e.r = Math.min(range.e.c, MAX_ROWS-1);\n\t}\n\n\twrite_biff_rec(ba, 0x0809, write_BOF(wb, 0x10, opts));\n\t/* [Uncalced] Index */\n\twrite_biff_rec(ba, 0x000d /* CalcMode */, writeuint16(1));\n\twrite_biff_rec(ba, 0x000c /* CalcCount */, writeuint16(100));\n\twrite_biff_rec(ba, 0x000f /* CalcRefMode */, writebool(true));\n\twrite_biff_rec(ba, 0x0011 /* CalcIter */, writebool(false));\n\twrite_biff_rec(ba, 0x0010 /* CalcDelta */, write_Xnum(0.001));\n\twrite_biff_rec(ba, 0x005f /* CalcSaveRecalc */, writebool(true));\n\twrite_biff_rec(ba, 0x002a /* PrintRowCol */, writebool(false));\n\twrite_biff_rec(ba, 0x002b /* PrintGrid */, writebool(false));\n\twrite_biff_rec(ba, 0x0082 /* GridSet */, writeuint16(1));\n\twrite_biff_rec(ba, 0x0080 /* Guts */, write_Guts([0,0]));\n\t/* DefaultRowHeight WsBool [Sync] [LPr] [HorizontalPageBreaks] [VerticalPageBreaks] */\n\t/* Header (string) */\n\t/* Footer (string) */\n\twrite_biff_rec(ba, 0x0083 /* HCenter */, writebool(false));\n\twrite_biff_rec(ba, 0x0084 /* VCenter */, writebool(false));\n\t/* ... */\n\tif(b8) write_ws_cols_biff8(ba, ws[\"!cols\"]);\n\t/* ... */\n\twrite_biff_rec(ba, 0x0200 /* Dimensions */, write_Dimensions(range, opts));\n\t/* ... */\n\n\tif(b8) ws['!links'] = [];\n\tvar comments = [];\n\tvar row = [];\n\tfor(var C = range.s.c; C <= range.e.c; ++C) cols[C] = encode_col(C);\n\tfor(var R = range.s.r; R <= range.e.r; ++R) {\n\t\tif(dense) row = ws[\"!data\"][R] || [];\n\t\trr = encode_row(R);\n\t\tfor(C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tref = cols[C] + rr;\n\t\t\tvar cell = dense ? row[C] : ws[ref];\n\t\t\tif(!cell) continue;\n\t\t\t/* write cell */\n\t\t\twrite_ws_biff8_cell(ba, cell, R, C, opts);\n\t\t\tif(b8 && cell.l) ws['!links'].push([ref, cell.l]);\n\t\t\tif(b8 && cell.c) comments.push([ref, cell.c]);\n\t\t}\n\t}\n\tvar cname/*:string*/ = _sheet.CodeName || _sheet.name || s;\n\t/* ... */\n\t// if(b8) comments.forEach(function(comment) { write_biff_rec(ba, 0x001c /* Note */, write_NoteSh(comment)); });\n\t/* ... */\n\tif(b8) write_biff_rec(ba, 0x023e /* Window2 */, write_Window2((_WB.Views||[])[0]));\n\t/* ... */\n\tif(b8 && (ws['!merges']||[]).length) write_biff_rec(ba, 0x00e5 /* MergeCells */, write_MergeCells(ws['!merges']));\n\t/* [LRng] *QUERYTABLE [PHONETICINFO] CONDFMTS */\n\tif(b8) write_ws_biff8_hlinks(ba, ws);\n\t/* [DVAL] */\n\twrite_biff_rec(ba, 0x01ba /* CodeName */, write_XLUnicodeString(cname, opts));\n\t/* *WebPub *CellWatch [SheetExt] */\n\tif(b8) write_FEAT(ba, ws);\n\t/* *FEAT11 *RECORD12 */\n\twrite_biff_rec(ba, 0x000a /* EOF */);\n\treturn ba.end();\n}\n\n/* [MS-XLS] 2.1.7.20.3 */\nfunction write_biff8_global(wb/*:Workbook*/, bufs, opts/*:WriteOpts*/) {\n\tvar A = buf_array();\n\tvar _WB/*:WBWBProps*/ = ((wb||{}).Workbook||{}/*:any*/);\n\tvar _sheets/*:Array<WBWSProp>*/ = (_WB.Sheets||[]);\n\tvar _wb/*:WBProps*/ = /*::((*/_WB.WBProps||{/*::CodeName:\"ThisWorkbook\"*/}/*:: ):any)*/;\n\tvar b8 = opts.biff == 8, b5 = opts.biff == 5;\n\twrite_biff_rec(A, 0x0809, write_BOF(wb, 0x05, opts));\n\tif(opts.bookType == \"xla\") write_biff_rec(A, 0x0087 /* Addin */);\n\twrite_biff_rec(A, 0x00e1 /* InterfaceHdr */, b8 ? writeuint16(0x04b0) : null);\n\twrite_biff_rec(A, 0x00c1 /* Mms */, writezeroes(2));\n\tif(b5) write_biff_rec(A, 0x00bf /* ToolbarHdr */);\n\tif(b5) write_biff_rec(A, 0x00c0 /* ToolbarEnd */);\n\twrite_biff_rec(A, 0x00e2 /* InterfaceEnd */);\n\twrite_biff_rec(A, 0x005c /* WriteAccess */, write_WriteAccess(\"SheetJS\", opts));\n\t/* [FileSharing] */\n\twrite_biff_rec(A, 0x0042 /* CodePage */, writeuint16(b8 ? 0x04b0 : 0x04E4));\n\t/* *2047 Lel */\n\tif(b8) write_biff_rec(A, 0x0161 /* DSF */, writeuint16(0));\n\tif(b8) write_biff_rec(A, 0x01c0 /* Excel9File */);\n\twrite_biff_rec(A, 0x013d /* RRTabId */, write_RRTabId(wb.SheetNames.length));\n\tif(b8 && wb.vbaraw) write_biff_rec(A, 0x00d3 /* ObProj */);\n\t/* [ObNoMacros] */\n\tif(b8 && wb.vbaraw) {\n\t\tvar cname/*:string*/ = _wb.CodeName || \"ThisWorkbook\";\n\t\twrite_biff_rec(A, 0x01ba /* CodeName */, write_XLUnicodeString(cname, opts));\n\t}\n\twrite_biff_rec(A, 0x009c /* BuiltInFnGroupCount */, writeuint16(0x11));\n\t/* *FnGroupName *FnGrp12 */\n\t/* *Lbl */\n\t/* [OleObjectSize] */\n\twrite_biff_rec(A, 0x0019 /* WinProtect */, writebool(false));\n\twrite_biff_rec(A, 0x0012 /* Protect */, writebool(false));\n\twrite_biff_rec(A, 0x0013 /* Password */, writeuint16(0));\n\tif(b8) write_biff_rec(A, 0x01af /* Prot4Rev */, writebool(false));\n\tif(b8) write_biff_rec(A, 0x01bc /* Prot4RevPass */, writeuint16(0));\n\twrite_biff_rec(A, 0x003d /* Window1 */, write_Window1(opts));\n\twrite_biff_rec(A, 0x0040 /* Backup */, writebool(false));\n\twrite_biff_rec(A, 0x008d /* HideObj */, writeuint16(0));\n\twrite_biff_rec(A, 0x0022 /* Date1904 */, writebool(safe1904(wb)==\"true\"));\n\twrite_biff_rec(A, 0x000e /* CalcPrecision */, writebool(true));\n\tif(b8) write_biff_rec(A, 0x01b7 /* RefreshAll */, writebool(false));\n\twrite_biff_rec(A, 0x00DA /* BookBool */, writeuint16(0));\n\t/* ... */\n\twrite_FONTS_biff8(A, wb, opts);\n\twrite_FMTS_biff8(A, wb.SSF, opts);\n\twrite_CELLXFS_biff8(A, opts);\n\t/* ... */\n\tif(b8) write_biff_rec(A, 0x0160 /* UsesELFs */, writebool(false));\n\tvar a = A.end();\n\n\tvar C = buf_array();\n\t/* METADATA [MTRSettings] [ForceFullCalculation] */\n\tif(b8) write_biff_rec(C, 0x008C /* Country */, write_Country());\n\t/* *SUPBOOK *LBL *RTD [RecalcId] *HFPicture *MSODRAWINGGROUP */\n\n\t/* BIFF8: [SST *Continue] ExtSST */\n\tif(b8 && opts.Strings) write_biff_continue(C, 0x00FC /* SST */, write_SST(opts.Strings, opts));\n\n\t/* *WebPub [WOpt] [CrErr] [BookExt] *FeatHdr *DConn [THEME] [CompressPictures] [Compat12] [GUIDTypeLib] */\n\twrite_biff_rec(C, 0x000A /* EOF */);\n\tvar c = C.end();\n\n\tvar B = buf_array();\n\tvar blen = 0, j = 0;\n\tfor(j = 0; j < wb.SheetNames.length; ++j) blen += (b8 ? 12 : 11) + (b8 ? 2 : 1) * wb.SheetNames[j].length;\n\tvar start = a.length + blen + c.length;\n\tfor(j = 0; j < wb.SheetNames.length; ++j) {\n\t\tvar _sheet/*:WBWSProp*/ = _sheets[j] || ({}/*:any*/);\n\t\twrite_biff_rec(B, 0x0085 /* BoundSheet8 */, write_BoundSheet8({pos:start, hs:_sheet.Hidden||0, dt:0, name:wb.SheetNames[j]}, opts));\n\t\tstart += bufs[j].length;\n\t}\n\t/* 1*BoundSheet8 */\n\tvar b = B.end();\n\tif(blen != b.length) throw new Error(\"BS8 \" + blen + \" != \" + b.length);\n\n\tvar out = [];\n\tif(a.length) out.push(a);\n\tif(b.length) out.push(b);\n\tif(c.length) out.push(c);\n\treturn bconcat(out);\n}\n\n/* [MS-XLS] 2.1.7.20 Workbook Stream */\nfunction write_biff8_buf(wb/*:Workbook*/, opts/*:WriteOpts*/) {\n\tvar o = opts || {};\n\tvar bufs = [];\n\n\tif(wb && !wb.SSF) {\n\t\twb.SSF = dup(table_fmt);\n\t}\n\tif(wb && wb.SSF) {\n\t\tmake_ssf(); SSF_load_table(wb.SSF);\n\t\t// $FlowIgnore\n\t\to.revssf = evert_num(wb.SSF); o.revssf[wb.SSF[65535]] = 0;\n\t\to.ssf = wb.SSF;\n\t}\n\n\to.Strings = /*::((*/[]/*:: :any):SST)*/; o.Strings.Count = 0; o.Strings.Unique = 0;\n\tfix_write_opts(o);\n\n\to.cellXfs = [];\n\tget_cell_style(o.cellXfs, {}, {revssf:{\"General\":0}});\n\n\tif(!wb.Props) wb.Props = {};\n\n\tfor(var i = 0; i < wb.SheetNames.length; ++i) bufs[bufs.length] = write_ws_biff8(i, o, wb);\n\tbufs.unshift(write_biff8_global(wb, bufs, o));\n\treturn bconcat(bufs);\n}\n\nfunction write_biff_buf(wb/*:Workbook*/, opts/*:WriteOpts*/) {\n\tfor(var i = 0; i <= wb.SheetNames.length; ++i) {\n\t\tvar ws = wb.Sheets[wb.SheetNames[i]];\n\t\tif(!ws || !ws[\"!ref\"]) continue;\n\t\tvar range = decode_range(ws[\"!ref\"]);\n\t\tif(range.e.c > 255) { // note: 255 is IV\n\t\t\tif(typeof console != \"undefined\" && console.error) console.error(\"Worksheet '\" + wb.SheetNames[i] + \"' extends beyond column IV (255). Data may be lost.\");\n\t\t}\n\t}\n\n\tvar o = opts || {};\n\tswitch(o.biff || 2) {\n\t\tcase 8: case 5: return write_biff8_buf(wb, opts);\n\t\tcase 4: case 3: case 2: return write_biff2_buf(wb, opts);\n\t}\n\tthrow new Error(\"invalid type \" + o.bookType + \" for BIFF\");\n}\n/* note: browser DOM element cannot see mso- style attrs, must parse */\nfunction html_to_sheet(str/*:string*/, _opts)/*:Workbook*/ {\n\tvar opts = _opts || {};\n\tvar dense = (opts.dense != null) ? opts.dense : DENSE;\n\tvar ws/*:Worksheet*/ = ({}/*:any*/); if(dense) ws[\"!data\"] = [];\n\tstr = str.replace(/<!--.*?-->/g, \"\");\n\tvar mtch/*:any*/ = str.match(/<table/i);\n\tif(!mtch) throw new Error(\"Invalid HTML: could not find <table>\");\n\tvar mtch2/*:any*/ = str.match(/<\\/table/i);\n\tvar i/*:number*/ = mtch.index, j/*:number*/ = mtch2 && mtch2.index || str.length;\n\tvar rows = split_regex(str.slice(i, j), /(:?<tr[^>]*>)/i, \"<tr>\");\n\tvar R = -1, C = 0, RS = 0, CS = 0;\n\tvar range/*:Range*/ = {s:{r:10000000, c:10000000},e:{r:0,c:0}};\n\tvar merges/*:Array<Range>*/ = [];\n\tfor(i = 0; i < rows.length; ++i) {\n\t\tvar row = rows[i].trim();\n\t\tvar hd = row.slice(0,3).toLowerCase();\n\t\tif(hd == \"<tr\") { ++R; if(opts.sheetRows && opts.sheetRows <= R) { --R; break; } C = 0; continue; }\n\t\tif(hd != \"<td\" && hd != \"<th\") continue;\n\t\tvar cells = row.split(/<\\/t[dh]>/i);\n\t\tfor(j = 0; j < cells.length; ++j) {\n\t\t\tvar cell = cells[j].trim();\n\t\t\tif(!cell.match(/<t[dh]/i)) continue;\n\t\t\tvar m = cell, cc = 0;\n\t\t\t/* TODO: parse styles etc */\n\t\t\twhile(m.charAt(0) == \"<\" && (cc = m.indexOf(\">\")) > -1) m = m.slice(cc+1);\n\t\t\tfor(var midx = 0; midx < merges.length; ++midx) {\n\t\t\t\tvar _merge/*:Range*/ = merges[midx];\n\t\t\t\tif(_merge.s.c == C && _merge.s.r < R && R <= _merge.e.r) { C = _merge.e.c + 1; midx = -1; }\n\t\t\t}\n\t\t\tvar tag = parsexmltag(cell.slice(0, cell.indexOf(\">\")));\n\t\t\tCS = tag.colspan ? +tag.colspan : 1;\n\t\t\tif((RS = +tag.rowspan)>1 || CS>1) merges.push({s:{r:R,c:C},e:{r:R + (RS||1) - 1, c:C + CS - 1}});\n\t\t\tvar _t/*:string*/ = tag.t || tag[\"data-t\"] || \"\";\n\t\t\t/* TODO: generate stub cells */\n\t\t\tif(!m.length) { C += CS; continue; }\n\t\t\tm = htmldecode(m);\n\t\t\tif(range.s.r > R) range.s.r = R; if(range.e.r < R) range.e.r = R;\n\t\t\tif(range.s.c > C) range.s.c = C; if(range.e.c < C) range.e.c = C;\n\t\t\tif(!m.length) { C += CS; continue; }\n\t\t\tvar o/*:Cell*/ = {t:'s', v:m};\n\t\t\tif(opts.raw || !m.trim().length || _t == 's'){}\n\t\t\telse if(m === 'TRUE') o = {t:'b', v:true};\n\t\t\telse if(m === 'FALSE') o = {t:'b', v:false};\n\t\t\telse if(!isNaN(fuzzynum(m))) o = {t:'n', v:fuzzynum(m)};\n\t\t\telse if(!isNaN(fuzzydate(m).getDate())) {\n\t\t\t\to = ({t:'d', v:parseDate(m)}/*:any*/);\n\t\t\t\tif(!opts.cellDates) o = ({t:'n', v:datenum(o.v)}/*:any*/);\n\t\t\t\to.z = opts.dateNF || table_fmt[14];\n\t\t\t}\n\t\t\tif(dense) { if(!ws[\"!data\"][R]) ws[\"!data\"][R] = []; ws[\"!data\"][R][C] = o; }\n\t\t\telse ws[encode_cell({r:R, c:C})] = o;\n\t\t\tC += CS;\n\t\t}\n\t}\n\tws['!ref'] = encode_range(range);\n\tif(merges.length) ws[\"!merges\"] = merges;\n\treturn ws;\n}\nfunction make_html_row(ws/*:Worksheet*/, r/*:Range*/, R/*:number*/, o/*:Sheet2HTMLOpts*/)/*:string*/ {\n\tvar M/*:Array<Range>*/ = (ws['!merges'] ||[]);\n\tvar oo/*:Array<string>*/ = [];\n\tvar sp = ({}/*:any*/);\n\tvar dense = ws[\"!data\"] != null;\n\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\tvar RS = 0, CS = 0;\n\t\tfor(var j = 0; j < M.length; ++j) {\n\t\t\tif(M[j].s.r > R || M[j].s.c > C) continue;\n\t\t\tif(M[j].e.r < R || M[j].e.c < C) continue;\n\t\t\tif(M[j].s.r < R || M[j].s.c < C) { RS = -1; break; }\n\t\t\tRS = M[j].e.r - M[j].s.r + 1; CS = M[j].e.c - M[j].s.c + 1; break;\n\t\t}\n\t\tif(RS < 0) continue;\n\t\tvar coord = encode_col(C) + encode_row(R);\n\t\tvar cell = dense ? (ws[\"!data\"][R]||[])[C] : ws[coord];\n\t\t/* TODO: html entities */\n\t\tvar w = (cell && cell.v != null) && (cell.h || escapehtml(cell.w || (format_cell(cell), cell.w) || \"\")) || \"\";\n\t\tsp = ({}/*:any*/);\n\t\tif(RS > 1) sp.rowspan = RS;\n\t\tif(CS > 1) sp.colspan = CS;\n\t\tif(o.editable) w = '<span contenteditable=\"true\">' + w + '</span>';\n\t\telse if(cell) {\n\t\t\tsp[\"data-t\"] = cell && cell.t || 'z';\n\t\t\tif(cell.v != null) sp[\"data-v\"] = cell.v;\n\t\t\tif(cell.z != null) sp[\"data-z\"] = cell.z;\n\t\t\tif(cell.l && (cell.l.Target || \"#\").charAt(0) != \"#\") w = '<a href=\"' + escapehtml(cell.l.Target) +'\">' + w + '</a>';\n\t\t}\n\t\tsp.id = (o.id || \"sjs\") + \"-\" + coord;\n\t\too.push(writextag('td', w, sp));\n\t}\n\tvar preamble = \"<tr>\";\n\treturn preamble + oo.join(\"\") + \"</tr>\";\n}\n\nvar HTML_BEGIN = '<html><head><meta charset=\"utf-8\"/><title>SheetJS Table Export';\nvar HTML_END = '';\n\nfunction html_to_workbook(str/*:string*/, opts)/*:Workbook*/ {\n\tvar mtch = str.match(/[\\s\\S]*?<\\/table>/gi);\n\tif(!mtch || mtch.length == 0) throw new Error(\"Invalid HTML: could not find \");\n\tif(mtch.length == 1) {\n\t\tvar w = sheet_to_workbook(html_to_sheet(mtch[0], opts), opts);\n\t\tw.bookType = \"html\";\n\t\treturn w;\n\t}\n\tvar wb = book_new();\n\tmtch.forEach(function(s, idx) { book_append_sheet(wb, html_to_sheet(s, opts), \"Sheet\" + (idx+1)); });\n\twb.bookType = \"html\";\n\treturn wb;\n}\n\nfunction make_html_preamble(ws/*:Worksheet*/, R/*:Range*/, o/*:Sheet2HTMLOpts*/)/*:string*/ {\n\tvar out/*:Array*/ = [];\n\treturn out.join(\"\") + '';\n}\n\nfunction sheet_to_html(ws/*:Worksheet*/, opts/*:?Sheet2HTMLOpts*//*, wb:?Workbook*/)/*:string*/ {\n\tvar o = opts || {};\n\tvar header = o.header != null ? o.header : HTML_BEGIN;\n\tvar footer = o.footer != null ? o.footer : HTML_END;\n\tvar out/*:Array*/ = [header];\n\tvar r = decode_range(ws['!ref']);\n\tout.push(make_html_preamble(ws, r, o));\n\tfor(var R = r.s.r; R <= r.e.r; ++R) out.push(make_html_row(ws, r, R, o));\n\tout.push(\"
\" + footer);\n\treturn out.join(\"\");\n}\n\nfunction sheet_add_dom(ws/*:Worksheet*/, table/*:HTMLElement*/, _opts/*:?any*/)/*:Worksheet*/ {\n\tvar rows/*:HTMLCollection*/ = table.rows;\n\tif(!rows) {\n\t\t/* not an HTML TABLE */\n\t\tthrow \"Unsupported origin when \" + table.tagName + \" is not a TABLE\";\n\t}\n\n\tvar opts = _opts || {};\n\tvar dense = ws[\"!data\"] != null;\n\tvar or_R = 0, or_C = 0;\n\tif(opts.origin != null) {\n\t\tif(typeof opts.origin == 'number') or_R = opts.origin;\n\t\telse {\n\t\t\tvar _origin/*:CellAddress*/ = typeof opts.origin == \"string\" ? decode_cell(opts.origin) : opts.origin;\n\t\t\tor_R = _origin.r; or_C = _origin.c;\n\t\t}\n\t}\n\n\tvar sheetRows = Math.min(opts.sheetRows||10000000, rows.length);\n\tvar range/*:Range*/ = {s:{r:0,c:0},e:{r:or_R,c:or_C}};\n\tif(ws[\"!ref\"]) {\n\t\tvar _range/*:Range*/ = decode_range(ws[\"!ref\"]);\n\t\trange.s.r = Math.min(range.s.r, _range.s.r);\n\t\trange.s.c = Math.min(range.s.c, _range.s.c);\n\t\trange.e.r = Math.max(range.e.r, _range.e.r);\n\t\trange.e.c = Math.max(range.e.c, _range.e.c);\n\t\tif(or_R == -1) range.e.r = or_R = _range.e.r + 1;\n\t}\n\tvar merges/*:Array*/ = [], midx = 0;\n\tvar rowinfo/*:Array*/ = ws[\"!rows\"] || (ws[\"!rows\"] = []);\n\tvar _R = 0, R = 0, _C = 0, C = 0, RS = 0, CS = 0;\n\tif(!ws[\"!cols\"]) ws['!cols'] = [];\n\tfor(; _R < rows.length && R < sheetRows; ++_R) {\n\t\tvar row/*:HTMLTableRowElement*/ = rows[_R];\n\t\tif (is_dom_element_hidden(row)) {\n\t\t\tif (opts.display) continue;\n\t\t\trowinfo[R] = {hidden: true};\n\t\t}\n\t\tvar elts/*:HTMLCollection*/ = (row.cells);\n\t\tfor(_C = C = 0; _C < elts.length; ++_C) {\n\t\t\tvar elt/*:HTMLTableCellElement*/ = elts[_C];\n\t\t\tif (opts.display && is_dom_element_hidden(elt)) continue;\n\t\t\tvar v/*:?string*/ = elt.hasAttribute('data-v') ? elt.getAttribute('data-v') : elt.hasAttribute('v') ? elt.getAttribute('v') : htmldecode(elt.innerHTML);\n\t\t\tvar z/*:?string*/ = elt.getAttribute('data-z') || elt.getAttribute('z');\n\t\t\tfor(midx = 0; midx < merges.length; ++midx) {\n\t\t\t\tvar m/*:Range*/ = merges[midx];\n\t\t\t\tif(m.s.c == C + or_C && m.s.r < R + or_R && R + or_R <= m.e.r) { C = m.e.c+1 - or_C; midx = -1; }\n\t\t\t}\n\t\t\t/* TODO: figure out how to extract nonstandard mso- style */\n\t\t\tCS = +elt.getAttribute(\"colspan\") || 1;\n\t\t\tif( ((RS = (+elt.getAttribute(\"rowspan\") || 1)))>1 || CS>1) merges.push({s:{r:R + or_R,c:C + or_C},e:{r:R + or_R + (RS||1) - 1, c:C + or_C + (CS||1) - 1}});\n\t\t\tvar o/*:Cell*/ = {t:'s', v:v};\n\t\t\tvar _t/*:string*/ = elt.getAttribute(\"data-t\") || elt.getAttribute(\"t\") || \"\";\n\t\t\tif(v != null) {\n\t\t\t\tif(v.length == 0) o.t = _t || 'z';\n\t\t\t\telse if(opts.raw || v.trim().length == 0 || _t == \"s\"){}\n\t\t\t\telse if(v === 'TRUE') o = {t:'b', v:true};\n\t\t\t\telse if(v === 'FALSE') o = {t:'b', v:false};\n\t\t\t\telse if(!isNaN(fuzzynum(v))) o = {t:'n', v:fuzzynum(v)};\n\t\t\t\telse if(!isNaN(fuzzydate(v).getDate())) {\n\t\t\t\t\to = ({t:'d', v:parseDate(v)}/*:any*/);\n\t\t\t\t\tif(!opts.cellDates) o = ({t:'n', v:datenum(o.v)}/*:any*/);\n\t\t\t\t\to.z = opts.dateNF || table_fmt[14];\n\t\t\t\t}\n\t\t\t}\n\t\t\tif(o.z === undefined && z != null) o.z = z;\n\t\t\t/* The first link is used. Links are assumed to be fully specified.\n\t\t\t * TODO: The right way to process relative links is to make a new */\n\t\t\tvar l = \"\", Aelts = elt.getElementsByTagName(\"A\");\n\t\t\tif(Aelts && Aelts.length) for(var Aelti = 0; Aelti < Aelts.length; ++Aelti)\tif(Aelts[Aelti].hasAttribute(\"href\")) {\n\t\t\t\tl = Aelts[Aelti].getAttribute(\"href\"); if(l.charAt(0) != \"#\") break;\n\t\t\t}\n\t\t\tif(l && l.charAt(0) != \"#\" &&\tl.slice(0, 11).toLowerCase() != 'javascript:') o.l = ({ Target: l });\n\t\t\tif(dense) { if(!ws[\"!data\"][R + or_R]) ws[\"!data\"][R + or_R] = []; ws[\"!data\"][R + or_R][C + or_C] = o; }\n\t\t\telse ws[encode_cell({c:C + or_C, r:R + or_R})] = o;\n\t\t\tif(range.e.c < C + or_C) range.e.c = C + or_C;\n\t\t\tC += CS;\n\t\t}\n\t\t++R;\n\t}\n\tif(merges.length) ws['!merges'] = (ws[\"!merges\"] || []).concat(merges);\n\trange.e.r = Math.max(range.e.r, R - 1 + or_R);\n\tws['!ref'] = encode_range(range);\n\tif(R >= sheetRows) ws['!fullref'] = encode_range((range.e.r = rows.length-_R+R-1 + or_R,range)); // We can count the real number of rows to parse but we don't to improve the performance\n\treturn ws;\n}\n\nfunction parse_dom_table(table/*:HTMLElement*/, _opts/*:?any*/)/*:Worksheet*/ {\n\tvar opts = _opts || {};\n\tvar ws/*:Worksheet*/ = ({}/*:any*/); if(opts.dense) ws[\"!data\"] = [];\n\treturn sheet_add_dom(ws, table, _opts);\n}\n\nfunction table_to_book(table/*:HTMLElement*/, opts/*:?any*/)/*:Workbook*/ {\n\tvar o = sheet_to_workbook(parse_dom_table(table, opts), opts);\n\t//o.bookType = \"dom\"; // TODO: define a type for this\n\treturn o;\n}\n\nfunction is_dom_element_hidden(element/*:HTMLElement*/)/*:boolean*/ {\n\tvar display/*:string*/ = '';\n\tvar get_computed_style/*:?function*/ = get_get_computed_style_function(element);\n\tif(get_computed_style) display = get_computed_style(element).getPropertyValue('display');\n\tif(!display) display = element.style && element.style.display;\n\treturn display === 'none';\n}\n\n/* global getComputedStyle */\nfunction get_get_computed_style_function(element/*:HTMLElement*/)/*:?function*/ {\n\t// The proper getComputedStyle implementation is the one defined in the element window\n\tif(element.ownerDocument.defaultView && typeof element.ownerDocument.defaultView.getComputedStyle === 'function') return element.ownerDocument.defaultView.getComputedStyle;\n\t// If it is not available, try to get one from the global namespace\n\tif(typeof getComputedStyle === 'function') return getComputedStyle;\n\treturn null;\n}\n/* OpenDocument */\nfunction parse_text_p(text/*:string*//*::, tag*/)/*:Array*/ {\n\t/* 6.1.2 White Space Characters */\n\tvar fixed = text\n\t\t.replace(/[\\t\\r\\n]/g, \" \").trim().replace(/ +/g, \" \")\n\t\t.replace(//g,\" \")\n\t\t.replace(//g, function($$,$1) { return Array(parseInt($1,10)+1).join(\" \"); })\n\t\t.replace(/]*\\/>/g,\"\\t\")\n\t\t.replace(//g,\"\\n\");\n\tvar v = unescapexml(fixed.replace(/<[^>]*>/g,\"\"));\n\n\treturn [v];\n}\n\n/* Note: ODS can stick styles in content.xml or styles.xml, FODS blurs lines */\nfunction parse_ods_styles(d/*:string*/, _opts, _nfm) {\n\tvar number_format_map = _nfm || {};\n\tvar str = xlml_normalize(d);\n\txlmlregex.lastIndex = 0;\n\tstr = str.replace(//mg,\"\").replace(//gm,\"\");\n\tvar Rn, NFtag, NF = \"\", tNF = \"\", y, etpos = 0, tidx = -1, infmt = false, payload = \"\";\n\twhile((Rn = xlmlregex.exec(str))) {\n\t\tswitch((Rn[3]=Rn[3].replace(/_.*$/,\"\"))) {\n\t\t/* Number Format Definitions */\n\t\tcase 'number-style': // 16.29.2\n\t\tcase 'currency-style': // 16.29.8\n\t\tcase 'percentage-style': // 16.29.10\n\t\tcase 'date-style': // 16.29.11\n\t\tcase 'time-style': // 16.29.19\n\t\tcase 'text-style': // 16.29.26\n\t\t\tif(Rn[1]==='/') {\n\t\t\t\tinfmt = false;\n\t\t\t\tif(NFtag['truncate-on-overflow'] == \"false\") {\n\t\t\t\t\tif(NF.match(/h/)) NF = NF.replace(/h+/, \"[$&]\");\n\t\t\t\t\telse if(NF.match(/m/)) NF = NF.replace(/m+/, \"[$&]\");\n\t\t\t\t\telse if(NF.match(/s/)) NF = NF.replace(/s+/, \"[$&]\");\n\t\t\t\t}\n\t\t\t\tnumber_format_map[NFtag.name] = NF;\n\t\t\t\tNF = \"\";\n\t\t\t} else if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\tinfmt = true;\n\t\t\t\tNF = \"\";\n\t\t\t\tNFtag = parsexmltag(Rn[0], false);\n\t\t\t} break;\n\n\t\t// LibreOffice bug https://bugs.documentfoundation.org/show_bug.cgi?id=149484\n\t\tcase 'boolean-style': // 16.29.24\n\t\t\tif(Rn[1]==='/') {\n\t\t\t\tinfmt = false;\n\t\t\t\tnumber_format_map[NFtag.name] = \"General\";\n\t\t\t\tNF = \"\";\n\t\t\t} else if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\tinfmt = true;\n\t\t\t\tNF = \"\";\n\t\t\t\tNFtag = parsexmltag(Rn[0], false);\n\t\t\t} break;\n\n\t\t/* Number Format Elements */\n\t\tcase 'boolean': // 16.29.25\n\t\t\tNF += \"General\"; // ODF spec is unfortunately underspecified here\n\t\t\tbreak;\n\n\t\tcase 'text': // 16.29.27\n\t\t\tif(Rn[1]==='/') {\n\t\t\t\tpayload = str.slice(tidx, xlmlregex.lastIndex - Rn[0].length);\n\t\t\t\t// NOTE: Excel has a different interpretation of \"%%\" and friends\n\t\t\t\tif(payload == \"%\" && NFtag[0] == ' 16.29.12\n\t\t\ty = parsexmltag(Rn[0], false);\n\t\t\tswitch(y[\"style\"]) {\n\t\t\t\tcase \"short\": NF += \"d\"; break;\n\t\t\t\tcase \"long\": NF += \"dd\"; break;\n\t\t\t\tdefault: NF += \"dd\"; break; // TODO: error condition\n\t\t\t}\n\t\t} break;\n\n\t\tcase 'day-of-week': { // 16.29.16\n\t\t\ty = parsexmltag(Rn[0], false);\n\t\t\tswitch(y[\"style\"]) {\n\t\t\t\tcase \"short\": NF += \"ddd\"; break;\n\t\t\t\tcase \"long\": NF += \"dddd\"; break;\n\t\t\t\tdefault: NF += \"ddd\"; break;\n\t\t\t}\n\t\t} break;\n\n\t\tcase 'era': { // 16.29.15 TODO: proper mapping\n\t\t\ty = parsexmltag(Rn[0], false);\n\t\t\tswitch(y[\"style\"]) {\n\t\t\t\tcase \"short\": NF += \"ee\"; break;\n\t\t\t\tcase \"long\": NF += \"eeee\"; break;\n\t\t\t\tdefault: NF += \"eeee\"; break; // TODO: error condition\n\t\t\t}\n\t\t} break;\n\n\t\tcase 'hours': { // 16.29.20\n\t\t\ty = parsexmltag(Rn[0], false);\n\t\t\tswitch(y[\"style\"]) {\n\t\t\t\tcase \"short\": NF += \"h\"; break;\n\t\t\t\tcase \"long\": NF += \"hh\"; break;\n\t\t\t\tdefault: NF += \"hh\"; break; // TODO: error condition\n\t\t\t}\n\t\t} break;\n\n\t\tcase 'minutes': { // 16.29.21\n\t\t\ty = parsexmltag(Rn[0], false);\n\t\t\tswitch(y[\"style\"]) {\n\t\t\t\tcase \"short\": NF += \"m\"; break;\n\t\t\t\tcase \"long\": NF += \"mm\"; break;\n\t\t\t\tdefault: NF += \"mm\"; break; // TODO: error condition\n\t\t\t}\n\t\t} break;\n\n\t\tcase 'month': { // 16.29.13\n\t\t\ty = parsexmltag(Rn[0], false);\n\t\t\tif(y[\"textual\"]) NF += \"mm\";\n\t\t\tswitch(y[\"style\"]) {\n\t\t\t\tcase \"short\": NF += \"m\"; break;\n\t\t\t\tcase \"long\": NF += \"mm\"; break;\n\t\t\t\tdefault: NF += \"m\"; break;\n\t\t\t}\n\t\t} break;\n\n\t\tcase 'seconds': { // 16.29.22\n\t\t\ty = parsexmltag(Rn[0], false);\n\t\t\tswitch(y[\"style\"]) {\n\t\t\t\tcase \"short\": NF += \"s\"; break;\n\t\t\t\tcase \"long\": NF += \"ss\"; break;\n\t\t\t\tdefault: NF += \"ss\"; break; // TODO: error condition\n\t\t\t}\n\t\t\tif(y[\"decimal-places\"]) NF += \".\" + fill(\"0\", +y[\"decimal-places\"]);\n\t\t} break;\n\n\t\tcase 'year': { // 16.29.14\n\t\t\ty = parsexmltag(Rn[0], false);\n\t\t\tswitch(y[\"style\"]) {\n\t\t\t\tcase \"short\": NF += \"yy\"; break;\n\t\t\t\tcase \"long\": NF += \"yyyy\"; break;\n\t\t\t\tdefault: NF += \"yy\"; break; // TODO: error condition\n\t\t\t}\n\t\t} break;\n\n\t\tcase 'am-pm': // 16.29.23\n\t\t\tNF += \"AM/PM\"; // LO autocorrects A/P -> AM/PM\n\t\t\tbreak;\n\n\t\tcase 'week-of-year': // 16.29.17\n\t\tcase 'quarter': // 16.29.18\n\t\t\tconsole.error(\"Excel does not support ODS format token \" + Rn[3]);\n\t\t\tbreak;\n\n\t\tcase 'fill-character': // 16.29.5\n\t\t\tif(Rn[1]==='/') {\n\t\t\t\tpayload = str.slice(tidx, xlmlregex.lastIndex - Rn[0].length);\n\t\t\t\t// NOTE: Excel has a different interpretation of \"%%\" and friends\n\t\t\t\tNF += '\"' + payload.replace(/\"/g, '\"\"') + '\"*';\n\t\t\t} else if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\ttidx = xlmlregex.lastIndex;\n\t\t\t} break;\n\n\t\tcase 'scientific-number': // 16.29.6\n\t\t\t// TODO: find a mapping for all parameters\n\t\t\ty = parsexmltag(Rn[0], false);\n\t\t\tNF += \"0.\" + fill(\"0\", +y[\"min-decimal-places\"] || +y[\"decimal-places\"] || 2) + fill(\"?\", +y[\"decimal-places\"] - +y[\"min-decimal-places\"] || 0) + \"E\" + (parsexmlbool(y[\"forced-exponent-sign\"]) ? \"+\" : \"\") + fill(\"0\", +y[\"min-exponent-digits\"] || 2);\n\t\t\tbreak;\n\n\t\tcase 'fraction': // 16.29.7\n\t\t\t// TODO: find a mapping for all parameters\n\t\t\ty = parsexmltag(Rn[0], false);\n\t\t\tif(!+y[\"min-integer-digits\"]) NF += \"#\";\n\t\t\telse NF += fill(\"0\", +y[\"min-integer-digits\"]);\n\t\t\tNF += \" \";\n\t\t\tNF += fill(\"?\", +y[\"min-numerator-digits\"] || 1);\n\t\t\tNF += \"/\";\n\t\t\tif(+y[\"denominator-value\"]) NF += y[\"denominator-value\"];\n\t\t\telse NF += fill(\"?\", +y[\"min-denominator-digits\"] || 1);\n\t\t\tbreak;\n\n\t\tcase 'currency-symbol': // 16.29.9\n\t\t\t// TODO: localization with [$-...]\n\t\t\tif(Rn[1]==='/') {\n\t\t\t\tNF += '\"' + str.slice(tidx, xlmlregex.lastIndex - Rn[0].length).replace(/\"/g, '\"\"') + '\"';\n\t\t\t} else if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\ttidx = xlmlregex.lastIndex;\n\t\t\t} else NF += \"$\";\n\t\t\tbreak;\n\n\t\tcase 'text-properties': // 16.29.29\n\t\t\ty = parsexmltag(Rn[0], false);\n\t\t\tswitch((y[\"color\"]||\"\").toLowerCase().replace(\"#\", \"\")) {\n\t\t\t\tcase \"ff0000\": case \"red\": NF = \"[Red]\" + NF; break;\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'text-content': // 16.29.28\n\t\t\tNF += \"@\";\n\t\t\tbreak;\n\n\t\tcase 'map': // 16.3\n\t\t\t// TODO: handle more complex maps\n\t\t\ty = parsexmltag(Rn[0], false);\n\t\t\tif(unescapexml(y[\"condition\"]) == \"value()>=0\") NF = number_format_map[y[\"apply-style-name\"]] + \";\" + NF;\n\t\t\telse console.error(\"ODS number format may be incorrect: \" + y[\"condition\"]);\n\t\t\tbreak;\n\n\t\tcase 'number': // 16.29.3\n\t\t\t// TODO: handle all the attributes\n\t\t\tif(Rn[1]==='/') break;\n\t\t\ty = parsexmltag(Rn[0], false);\n\t\t\ttNF = \"\";\n\t\t\ttNF += fill(\"0\", +y[\"min-integer-digits\"] || 1);\n\t\t\tif(parsexmlbool(y[\"grouping\"])) tNF = commaify(fill(\"#\", Math.max(0, 4 - tNF.length)) + tNF);\n\t\t\tif(+y[\"min-decimal-places\"] || +y[\"decimal-places\"]) tNF += \".\";\n\t\t\tif(+y[\"min-decimal-places\"]) tNF += fill(\"0\", +y[\"min-decimal-places\"] || 1);\n\t\t\tif(+y[\"decimal-places\"] - (+y[\"min-decimal-places\"]||0)) tNF += fill(\"0\", +y[\"decimal-places\"] - (+y[\"min-decimal-places\"]||0)); // TODO: should this be \"#\" ?\n\t\t\tNF += tNF;\n\t\t\tbreak;\n\n\t\tcase 'embedded-text': // 16.29.4\n\t\t\t// TODO: verify interplay with grouping et al\n\t\t\tif(Rn[1]==='/') {\n\t\t\t\tif(etpos == 0) NF += '\"' + str.slice(tidx, xlmlregex.lastIndex - Rn[0].length).replace(/\"/g, '\"\"') + '\"';\n\t\t\t\telse NF = NF.slice(0, etpos) + '\"' + str.slice(tidx, xlmlregex.lastIndex - Rn[0].length).replace(/\"/g, '\"\"') + '\"' + NF.slice(etpos);\n\t\t\t} else if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\ttidx = xlmlregex.lastIndex;\n\t\t\t\tetpos = -+parsexmltag(Rn[0], false)[\"position\"] || 0;\n\t\t\t} break;\n\n\t}}\n\treturn number_format_map;\n}\n\nfunction parse_content_xml(d/*:string*/, _opts, _nfm)/*:Workbook*/ {\n\t\tvar opts = _opts || {};\n\t\tif(DENSE != null && opts.dense == null) opts.dense = DENSE;\n\t\tvar str = xlml_normalize(d);\n\t\tvar state/*:Array*/ = [], tmp;\n\t\tvar tag/*:: = {}*/;\n\t\tvar nfidx, NF = \"\", pidx = 0;\n\t\tvar sheetag/*:: = {name:\"\", '名称':\"\"}*/;\n\t\tvar rowtag/*:: = {'行号':\"\"}*/;\n\t\tvar Sheets = {}, SheetNames/*:Array*/ = [];\n\t\tvar ws = ({}/*:any*/); if(opts.dense) ws[\"!data\"] = [];\n\t\tvar Rn, q/*:: :any = ({t:\"\", v:null, z:null, w:\"\",c:[],}:any)*/;\n\t\tvar ctag = ({value:\"\"}/*:any*/);\n\t\tvar textp = \"\", textpidx = 0, textptag/*:: = {}*/;\n\t\tvar textR = [];\n\t\tvar R = -1, C = -1, range = {s: {r:1000000,c:10000000}, e: {r:0, c:0}};\n\t\tvar row_ol = 0;\n\t\tvar number_format_map = _nfm || {}, styles = {};\n\t\tvar merges/*:Array*/ = [], mrange = {}, mR = 0, mC = 0;\n\t\tvar rowinfo/*:Array*/ = [], rowpeat = 1, colpeat = 1;\n\t\tvar arrayf/*:Array<[Range, string]>*/ = [];\n\t\tvar WB = {Names:[], WBProps:{}};\n\t\tvar atag = ({}/*:any*/);\n\t\tvar _Ref/*:[string, string]*/ = [\"\", \"\"];\n\t\tvar comments/*:Array*/ = [], comment/*:Comment*/ = ({}/*:any*/);\n\t\tvar creator = \"\", creatoridx = 0;\n\t\tvar isstub = false, intable = false;\n\t\tvar i = 0;\n\t\tvar baddate = 0;\n\t\txlmlregex.lastIndex = 0;\n\t\tstr = str.replace(//mg,\"\").replace(//gm,\"\");\n\t\twhile((Rn = xlmlregex.exec(str))) switch((Rn[3]=Rn[3].replace(/_.*$/,\"\"))) {\n\n\t\t\tcase 'table': case '工作表': // 9.1.2 \n\t\t\t\tif(Rn[1]==='/') {\n\t\t\t\t\tif(range.e.c >= range.s.c && range.e.r >= range.s.r) ws['!ref'] = encode_range(range);\n\t\t\t\t\telse ws['!ref'] = \"A1:A1\";\n\t\t\t\t\tif(opts.sheetRows > 0 && opts.sheetRows <= range.e.r) {\n\t\t\t\t\t\tws['!fullref'] = ws['!ref'];\n\t\t\t\t\t\trange.e.r = opts.sheetRows - 1;\n\t\t\t\t\t\tws['!ref'] = encode_range(range);\n\t\t\t\t\t}\n\t\t\t\t\tif(merges.length) ws['!merges'] = merges;\n\t\t\t\t\tif(rowinfo.length) ws[\"!rows\"] = rowinfo;\n\t\t\t\t\tsheetag.name = sheetag['名称'] || sheetag.name;\n\t\t\t\t\tif(typeof JSON !== 'undefined') JSON.stringify(sheetag);\n\t\t\t\t\tSheetNames.push(sheetag.name);\n\t\t\t\t\tSheets[sheetag.name] = ws;\n\t\t\t\t\tintable = false;\n\t\t\t\t}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\t\tsheetag = parsexmltag(Rn[0], false);\n\t\t\t\t\tR = C = -1;\n\t\t\t\t\trange.s.r = range.s.c = 10000000; range.e.r = range.e.c = 0;\n\t\t\t\t\tws = ({}/*:any*/); if(opts.dense) ws[\"!data\"] = []; merges = [];\n\t\t\t\t\trowinfo = [];\n\t\t\t\t\tintable = true;\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 'table-row-group': // 9.1.9 \n\t\t\t\tif(Rn[1] === \"/\") --row_ol; else ++row_ol;\n\t\t\t\tbreak;\n\t\t\tcase 'table-row': case '行': // 9.1.3 \n\t\t\t\tif(Rn[1] === '/') { R+=rowpeat; rowpeat = 1; break; }\n\t\t\t\trowtag = parsexmltag(Rn[0], false);\n\t\t\t\tif(rowtag['行号']) R = rowtag['行号'] - 1; else if(R == -1) R = 0;\n\t\t\t\trowpeat = +rowtag['number-rows-repeated'] || 1;\n\t\t\t\t/* TODO: remove magic */\n\t\t\t\tif(rowpeat < 10) for(i = 0; i < rowpeat; ++i) if(row_ol > 0) rowinfo[R + i] = {level: row_ol};\n\t\t\t\tC = -1; break;\n\t\t\tcase 'covered-table-cell': // 9.1.5 \n\t\t\t\tif(Rn[1] !== '/') ++C;\n\t\t\t\tif(opts.sheetStubs) {\n\t\t\t\t\tif(opts.dense) { if(!ws[\"!data\"][R]) ws[\"!data\"][R] = []; ws[\"!data\"][R][C] = {t:'z'}; }\n\t\t\t\t\telse ws[encode_cell({r:R,c:C})] = {t:'z'};\n\t\t\t\t}\n\t\t\t\ttextp = \"\"; textR = [];\n\t\t\t\tbreak; /* stub */\n\t\t\tcase 'table-cell': case '数据':\n\t\t\t\tif(Rn[0].charAt(Rn[0].length-2) === '/') {\n\t\t\t\t\t++C;\n\t\t\t\t\tctag = parsexmltag(Rn[0], false);\n\t\t\t\t\tcolpeat = parseInt(ctag['number-columns-repeated']||\"1\", 10);\n\t\t\t\t\tq = ({t:'z', v:null/*:: , z:null, w:\"\",c:[]*/}/*:any*/);\n\t\t\t\t\tif(ctag.formula && opts.cellFormula != false) q.f = ods_to_csf_formula(unescapexml(ctag.formula));\n\t\t\t\t\tif(ctag[\"style-name\"] && styles[ctag[\"style-name\"]]) q.z = styles[ctag[\"style-name\"]];\n\t\t\t\t\tif((ctag['数据类型'] || ctag['value-type']) == \"string\") {\n\t\t\t\t\t\tq.t = \"s\"; q.v = unescapexml(ctag['string-value'] || \"\");\n\t\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\t\tif(!ws[\"!data\"][R]) ws[\"!data\"][R] = [];\n\t\t\t\t\t\t\tws[\"!data\"][R][C] = q;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tws[encode_col(C) + encode_row(R)] = q;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tC+= colpeat-1;\n\t\t\t\t} else if(Rn[1]!=='/') {\n\t\t\t\t\t++C;\n\t\t\t\t\ttextp = \"\"; textpidx = 0; textR = [];\n\t\t\t\t\tcolpeat = 1;\n\t\t\t\t\tvar rptR = rowpeat ? R + rowpeat - 1 : R;\n\t\t\t\t\tif(C > range.e.c) range.e.c = C;\n\t\t\t\t\tif(C < range.s.c) range.s.c = C;\n\t\t\t\t\tif(R < range.s.r) range.s.r = R;\n\t\t\t\t\tif(rptR > range.e.r) range.e.r = rptR;\n\t\t\t\t\tctag = parsexmltag(Rn[0], false);\n\t\t\t\t\tcomments = []; comment = ({}/*:any*/);\n\t\t\t\t\tq = ({t:ctag['数据类型'] || ctag['value-type'], v:null/*:: , z:null, w:\"\",c:[]*/}/*:any*/);\n\t\t\t\t\tif(ctag[\"style-name\"] && styles[ctag[\"style-name\"]]) q.z = styles[ctag[\"style-name\"]];\n\t\t\t\t\tif(opts.cellFormula) {\n\t\t\t\t\t\tif(ctag.formula) ctag.formula = unescapexml(ctag.formula);\n\t\t\t\t\t\tif(ctag['number-matrix-columns-spanned'] && ctag['number-matrix-rows-spanned']) {\n\t\t\t\t\t\t\tmR = parseInt(ctag['number-matrix-rows-spanned'],10) || 0;\n\t\t\t\t\t\t\tmC = parseInt(ctag['number-matrix-columns-spanned'],10) || 0;\n\t\t\t\t\t\t\tmrange = {s: {r:R,c:C}, e:{r:R + mR-1,c:C + mC-1}};\n\t\t\t\t\t\t\tq.F = encode_range(mrange);\n\t\t\t\t\t\t\tarrayf.push([mrange, q.F]);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(ctag.formula) q.f = ods_to_csf_formula(ctag.formula);\n\t\t\t\t\t\telse for(i = 0; i < arrayf.length; ++i)\n\t\t\t\t\t\t\tif(R >= arrayf[i][0].s.r && R <= arrayf[i][0].e.r)\n\t\t\t\t\t\t\t\tif(C >= arrayf[i][0].s.c && C <= arrayf[i][0].e.c)\n\t\t\t\t\t\t\t\t\tq.F = arrayf[i][1];\n\t\t\t\t\t}\n\t\t\t\t\tif(ctag['number-columns-spanned'] || ctag['number-rows-spanned']) {\n\t\t\t\t\t\tmR = parseInt(ctag['number-rows-spanned'],10) || 0;\n\t\t\t\t\t\tmC = parseInt(ctag['number-columns-spanned'],10) || 0;\n\t\t\t\t\t\tmrange = {s: {r:R,c:C}, e:{r:R + mR-1,c:C + mC-1}};\n\t\t\t\t\t\tmerges.push(mrange);\n\t\t\t\t\t}\n\n\t\t\t\t\t/* 19.675.2 table:number-columns-repeated */\n\t\t\t\t\tif(ctag['number-columns-repeated']) colpeat = parseInt(ctag['number-columns-repeated'], 10);\n\n\t\t\t\t\t/* 19.385 office:value-type */\n\t\t\t\t\tswitch(q.t) {\n\t\t\t\t\t\tcase 'boolean': q.t = 'b'; q.v = parsexmlbool(ctag['boolean-value']) || (+ctag['boolean-value'] >= 1); break;\n\t\t\t\t\t\tcase 'float': q.t = 'n'; q.v = parseFloat(ctag.value); break;\n\t\t\t\t\t\tcase 'percentage': q.t = 'n'; q.v = parseFloat(ctag.value); break;\n\t\t\t\t\t\tcase 'currency': q.t = 'n'; q.v = parseFloat(ctag.value); break;\n\t\t\t\t\t\tcase 'date': q.t = 'd'; q.v = parseDate(ctag['date-value']);\n\t\t\t\t\t\t\tif(!opts.cellDates) { q.t = 'n'; q.v = datenum(q.v, WB.WBProps.date1904) - baddate; }\n\t\t\t\t\t\t\tif(!q.z) q.z = 'm/d/yy'; break;\n\t\t\t\t\t\tcase 'time': q.t = 'n'; q.v = parse_isodur(ctag['time-value'])/86400;\n\t\t\t\t\t\t\tif(opts.cellDates) { q.t = 'd'; q.v = numdate(q.v); }\n\t\t\t\t\t\t\tif(!q.z) q.z = 'HH:MM:SS'; break;\n\t\t\t\t\t\tcase 'number': q.t = 'n'; q.v = parseFloat(ctag['数据数值']); break;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tif(q.t === 'string' || q.t === 'text' || !q.t) {\n\t\t\t\t\t\t\t\tq.t = 's';\n\t\t\t\t\t\t\t\tif(ctag['string-value'] != null) { textp = unescapexml(ctag['string-value']); textR = []; }\n\t\t\t\t\t\t\t} else throw new Error('Unsupported value type ' + q.t);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tisstub = false;\n\t\t\t\t\tif(q.t === 's') {\n\t\t\t\t\t\tq.v = textp || '';\n\t\t\t\t\t\tif(textR.length) q.R = textR;\n\t\t\t\t\t\tisstub = textpidx == 0;\n\t\t\t\t\t}\n\t\t\t\t\tif(atag.Target) q.l = atag;\n\t\t\t\t\tif(comments.length > 0) { q.c = comments; comments = []; }\n\t\t\t\t\tif(textp && opts.cellText !== false) q.w = textp;\n\t\t\t\t\tif(isstub) { q.t = \"z\"; delete q.v; }\n\t\t\t\t\tif(!isstub || opts.sheetStubs) {\n\t\t\t\t\t\tif(!(opts.sheetRows && opts.sheetRows <= R)) {\n\t\t\t\t\t\t\tfor(var rpt = 0; rpt < rowpeat; ++rpt) {\n\t\t\t\t\t\t\t\tcolpeat = parseInt(ctag['number-columns-repeated']||\"1\", 10);\n\t\t\t\t\t\t\t\tif(opts.dense) {\n\t\t\t\t\t\t\t\t\tif(!ws[\"!data\"][R + rpt]) ws[\"!data\"][R + rpt] = [];\n\t\t\t\t\t\t\t\t\tws[\"!data\"][R + rpt][C] = rpt == 0 ? q : dup(q);\n\t\t\t\t\t\t\t\t\twhile(--colpeat > 0) ws[\"!data\"][R + rpt][C + colpeat] = dup(q);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tws[encode_cell({r:R + rpt,c:C})] = q;\n\t\t\t\t\t\t\t\t\twhile(--colpeat > 0) ws[encode_cell({r:R + rpt,c:C + colpeat})] = dup(q);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif(range.e.c <= C) range.e.c = C;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcolpeat = parseInt(ctag['number-columns-repeated']||\"1\", 10);\n\t\t\t\t\tC += colpeat-1; colpeat = 0;\n\t\t\t\t\tq = {/*:: t:\"\", v:null, z:null, w:\"\",c:[]*/};\n\t\t\t\t\ttextp = \"\"; textR = [];\n\t\t\t\t}\n\t\t\t\tatag = ({}/*:any*/);\n\t\t\t\tbreak; // 9.1.4 \n\n\t\t\t/* pure state */\n\t\t\tcase 'document': // TODO: is the root for FODS\n\t\t\tcase 'document-content': case '电子表格文档': // 3.1.3.2 \n\t\t\tcase 'spreadsheet': case '主体': // 3.7 \n\t\t\tcase 'scripts': // 3.12 \n\t\t\tcase 'styles': // TODO \n\t\t\tcase 'font-face-decls': // 3.14 \n\t\t\tcase 'master-styles': // 3.15.4 -- relevant for FODS\n\t\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\t\tbreak;\n\n\t\t\tcase 'annotation': // 14.1 \n\t\t\t\tif(Rn[1]==='/'){\n\t\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;\n\t\t\t\t\tcomment.t = textp;\n\t\t\t\t\tif(textR.length) /*::(*/comment/*:: :any)*/.R = textR;\n\t\t\t\t\tcomment.a = creator;\n\t\t\t\t\tcomments.push(comment);\n\t\t\t\t}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') {state.push([Rn[3], false]);}\n\t\t\t\tcreator = \"\"; creatoridx = 0;\n\t\t\t\ttextp = \"\"; textpidx = 0; textR = [];\n\t\t\t\tbreak;\n\n\t\t\tcase 'creator': // 4.3.2.7 \n\t\t\t\tif(Rn[1]==='/') { creator = str.slice(creatoridx,Rn.index); }\n\t\t\t\telse creatoridx = Rn.index + Rn[0].length;\n\t\t\t\tbreak;\n\n\t\t\t/* ignore state */\n\t\t\tcase 'meta': case '元数据': // TODO: FODS/UOF\n\t\t\tcase 'settings': // TODO: \n\t\t\tcase 'config-item-set': // TODO: \n\t\t\tcase 'config-item-map-indexed': // TODO: \n\t\t\tcase 'config-item-map-entry': // TODO: \n\t\t\tcase 'config-item-map-named': // TODO: \n\t\t\tcase 'shapes': // 9.2.8 \n\t\t\tcase 'frame': // 10.4.2 \n\t\t\tcase 'text-box': // 10.4.3 \n\t\t\tcase 'image': // 10.4.4 \n\t\t\tcase 'data-pilot-tables': // 9.6.2 \n\t\t\tcase 'list-style': // 16.30 \n\t\t\tcase 'form': // 13.13 \n\t\t\tcase 'dde-links': // 9.8 \n\t\t\tcase 'event-listeners': // TODO\n\t\t\tcase 'chart': // TODO\n\t\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;}\n\t\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], false]);\n\t\t\t\ttextp = \"\"; textpidx = 0; textR = [];\n\t\t\t\tbreak;\n\n\t\t\tcase 'scientific-number': // \n\t\t\tcase 'currency-symbol': // \n\t\t\tcase 'fill-character': // 16.29.5 \n\t\t\t\tbreak;\n\n\t\t\tcase 'text-style': // 16.27.25 \n\t\t\tcase 'boolean-style': // 16.27.23 \n\t\t\tcase 'number-style': // 16.27.2 \n\t\t\tcase 'currency-style': // 16.29.8 \n\t\t\tcase 'percentage-style': // 16.27.9 \n\t\t\tcase 'date-style': // 16.27.10 \n\t\t\tcase 'time-style': // 16.27.18 \n\t\t\t\tif(Rn[1]==='/'){\n\t\t\t\t\tvar xlmlidx = xlmlregex.lastIndex;\n\t\t\t\t\tparse_ods_styles(str.slice(nfidx, xlmlregex.lastIndex), _opts, number_format_map);\n\t\t\t\t\txlmlregex.lastIndex = xlmlidx;\n\t\t\t\t} else if(Rn[0].charAt(Rn[0].length-2) !== '/') {\n\t\t\t\t\tnfidx = xlmlregex.lastIndex - Rn[0].length;\n\t\t\t\t} break;\n\n\t\t\tcase 'script': break; // 3.13 \n\t\t\tcase 'libraries': break; // TODO: \n\t\t\tcase 'automatic-styles': break; // 3.15.3 \n\n\t\t\tcase 'default-style': // TODO: \n\t\t\tcase 'page-layout': break; // TODO: \n\t\t\tcase 'style': { // 16.2 \n\t\t\t\tvar styletag = parsexmltag(Rn[0], false);\n\t\t\t\tif(styletag[\"family\"] == \"table-cell\" && number_format_map[styletag[\"data-style-name\"]]) styles[styletag[\"name\"]] = number_format_map[styletag[\"data-style-name\"]];\n\t\t\t} break;\n\t\t\tcase 'map': break; // 16.3 \n\t\t\tcase 'font-face': break; // 16.21 \n\n\t\t\tcase 'paragraph-properties': break; // 17.6 \n\t\t\tcase 'table-properties': break; // 17.15 \n\t\t\tcase 'table-column-properties': break; // 17.16 \n\t\t\tcase 'table-row-properties': break; // 17.17 \n\t\t\tcase 'table-cell-properties': break; // 17.18 \n\n\t\t\tcase 'number': // 16.27.3 \n\t\t\t\tbreak;\n\n\t\t\tcase 'fraction': break; // TODO 16.27.6 \n\n\t\t\tcase 'day': // 16.27.11 \n\t\t\tcase 'month': // 16.27.12 \n\t\t\tcase 'year': // 16.27.13 \n\t\t\tcase 'era': // 16.27.14 \n\t\t\tcase 'day-of-week': // 16.27.15 \n\t\t\tcase 'week-of-year': // 16.27.16 \n\t\t\tcase 'quarter': // 16.27.17 \n\t\t\tcase 'hours': // 16.27.19 \n\t\t\tcase 'minutes': // 16.27.20 \n\t\t\tcase 'seconds': // 16.27.21 \n\t\t\tcase 'am-pm': // 16.27.22 \n\t\t\t\tbreak;\n\n\t\t\tcase 'boolean': break; // 16.27.24 \n\t\t\tcase 'text': // 16.27.26 \n\t\t\t\tif(Rn[0].slice(-2) === \"/>\") break;\n\t\t\t\telse if(Rn[1]===\"/\") switch(state[state.length-1][0]) {\n\t\t\t\t\tcase 'number-style':\n\t\t\t\t\tcase 'date-style':\n\t\t\t\t\tcase 'time-style':\n\t\t\t\t\t\tNF += str.slice(pidx, Rn.index);\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\telse pidx = Rn.index + Rn[0].length;\n\t\t\t\tbreak;\n\n\t\t\tcase 'named-range': // 9.4.12 \n\t\t\t\ttag = parsexmltag(Rn[0], false);\n\t\t\t\t_Ref = ods_to_csf_3D(tag['cell-range-address']);\n\t\t\t\tvar nrange = ({Name:tag.name, Ref:_Ref[0] + '!' + _Ref[1]}/*:any*/);\n\t\t\t\tif(intable) nrange.Sheet = SheetNames.length;\n\t\t\t\tWB.Names.push(nrange);\n\t\t\t\tbreak;\n\n\t\t\tcase 'text-content': break; // 16.27.27 \n\t\t\tcase 'text-properties': break; // 16.27.27 \n\t\t\tcase 'embedded-text': break; // 16.27.4 \n\n\t\t\tcase 'body': case '电子表格': break; // 3.3 16.9.6 19.726.3\n\n\t\t\tcase 'forms': break; // 12.25.2 13.2\n\t\t\tcase 'table-column': break; // 9.1.6 \n\t\t\tcase 'table-header-rows': break; // 9.1.7 \n\t\t\tcase 'table-rows': break; // 9.1.12 \n\t\t\t/* TODO: outline levels */\n\t\t\tcase 'table-column-group': break; // 9.1.10 \n\t\t\tcase 'table-header-columns': break; // 9.1.11 \n\t\t\tcase 'table-columns': break; // 9.1.12 \n\n\t\t\tcase 'null-date': // 9.4.2 \n\t\t\t\ttag = parsexmltag(Rn[0], false);\n\t\t\t\tswitch(tag[\"date-value\"]) {\n\t\t\t\t\tcase \"1904-01-01\": WB.WBProps.date1904 = true;\n\t\t\t\t\t/* falls through */\n\t\t\t\t\tcase \"1900-01-01\": baddate = 0;\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 'graphic-properties': break; // 17.21 \n\t\t\tcase 'calculation-settings': break; // 9.4.1 \n\t\t\tcase 'named-expressions': break; // 9.4.11 \n\t\t\tcase 'label-range': break; // 9.4.9 \n\t\t\tcase 'label-ranges': break; // 9.4.10 \n\t\t\tcase 'named-expression': break; // 9.4.13 \n\t\t\tcase 'sort': break; // 9.4.19 \n\t\t\tcase 'sort-by': break; // 9.4.20 \n\t\t\tcase 'sort-groups': break; // 9.4.22 \n\n\t\t\tcase 'tab': break; // 6.1.4 \n\t\t\tcase 'line-break': break; // 6.1.5 \n\t\t\tcase 'span': break; // 6.1.7 \n\t\t\tcase 'p': case '文本串': // 5.1.3 \n\t\t\t\tif(['master-styles'].indexOf(state[state.length-1][0]) > -1) break;\n\t\t\t\tif(Rn[1]==='/' && (!ctag || !ctag['string-value'])) {\n\t\t\t\t\tvar ptp = parse_text_p(str.slice(textpidx,Rn.index), textptag);\n\t\t\t\t\ttextp = (textp.length > 0 ? textp + \"\\n\" : \"\") + ptp[0];\n\t\t\t\t} else { textptag = parsexmltag(Rn[0], false); textpidx = Rn.index + Rn[0].length; }\n\t\t\t\tbreak; // \n\t\t\tcase 's': break; // \n\n\t\t\tcase 'database-range': // 9.4.15 \n\t\t\t\tif(Rn[1]==='/') break;\n\t\t\t\ttry {\n\t\t\t\t\t_Ref = ods_to_csf_3D(parsexmltag(Rn[0])['target-range-address']);\n\t\t\t\t\tSheets[_Ref[0]]['!autofilter'] = { ref:_Ref[1] };\n\t\t\t\t} catch(e) {/* empty */}\n\t\t\t\tbreak;\n\n\t\t\tcase 'date': break; // <*:date>\n\n\t\t\tcase 'object': break; // 10.4.6.2 \n\t\t\tcase 'title': case '标题': break; // <*:title> OR \n\t\t\tcase 'desc': break; // <*:desc>\n\t\t\tcase 'binary-data': break; // 10.4.5 TODO: b64 blob\n\n\t\t\t/* 9.2 Advanced Tables */\n\t\t\tcase 'table-source': break; // 9.2.6\n\t\t\tcase 'scenario': break; // 9.2.6\n\n\t\t\tcase 'iteration': break; // 9.4.3 \n\t\t\tcase 'content-validations': break; // 9.4.4 \n\t\t\tcase 'filter': break; // 9.5.2 \n\t\t\tcase 'filter-and': break; // 9.5.3 \n\t\t\tcase 'filter-or': break; // 9.5.4 \n\t\t\tcase 'filter-condition': break; // 9.5.5 \n\n\t\t\tcase 'list-level-style-bullet': break; // 16.31 \n\t\t\tcase 'page-count': break; // TODO \n\t\t\tcase 'time': break; // TODO \n\n\t\t\t/* 9.3 Advanced Table Cells */\n\t\t\tcase 'cell-range-source': break; // 9.3.1 \n\t\t\tcase 'property': break; // 13.8 \n\n\t\t\tcase 'a': // 6.1.8 hyperlink\n\t\t\t\tif(Rn[1]!== '/') {\n\t\t\t\t\tatag = parsexmltag(Rn[0], false);\n\t\t\t\t\tif(!atag.href) break;\n\t\t\t\t\tatag.Target = unescapexml(atag.href); delete atag.href;\n\t\t\t\t\tif(atag.Target.charAt(0) == \"#\" && atag.Target.indexOf(\".\") > -1) {\n\t\t\t\t\t\t_Ref = ods_to_csf_3D(atag.Target.slice(1));\n\t\t\t\t\t\tatag.Target = \"#\" + _Ref[0] + \"!\" + _Ref[1];\n\t\t\t\t\t} else if(atag.Target.match(/^\\.\\.[\\\\\\/]/)) atag.Target = atag.Target.slice(3);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\t/* non-standard */\n\t\t\tcase 'table-protection': break;\n\t\t\tcase 'data-pilot-grand-total': break; // ',\n\t\t\t'',\n\t\t\t\t'',\n\t\t\t\t'',\n\t\t\t\t'',\n\t\t\t\t'',\n\t\t\t'',\n\t\t''\n\t].join(\"\");\n\n\tvar payload = '' + master_styles + '';\n\n\treturn function wso(/*::wb, opts*/) {\n\t\treturn XML_HEADER + payload;\n\t};\n})();\n\n// TODO: find out if anyone actually read the spec. LO has some wild errors\nfunction write_number_format_ods(nf/*:string*/, nfidx/*:string*/)/*:string*/ {\n\tvar type = \"number\", payload = \"\", nopts = { \"style:name\": nfidx }, c = \"\", i = 0;\n\tnf = nf.replace(/\"[$]\"/g, \"$\");\n\t/* TODO: replace with an actual parser based on a real grammar */\n\tj: {\n\t\t// TODO: support style maps\n\t\tif(nf.indexOf(\";\") > -1) {\n\t\t\tconsole.error(\"Unsupported ODS Style Map exported. Using first branch of \" + nf);\n\t\t\tnf = nf.slice(0, nf.indexOf(\";\"));\n\t\t}\n\n\t\tif(nf == \"@\") { type = \"text\"; payload = \"\"; break j; }\n\n\t\t/* currency flag */\n\t\tif(nf.indexOf(/\\$/) > -1) { type = \"currency\"; }\n\n\t\t/* opening string literal */\n\t\tif(nf[i] == '\"') {\n\t\t\tc = \"\";\n\t\t\twhile(nf[++i] != '\"' || nf[++i] == '\"') c += nf[i]; --i;\n\t\t\tif(nf[i+1] == \"*\") {\n\t\t\t\ti++;\n\t\t\t\tpayload += '' + escapexml(c.replace(/\"\"/g, '\"')) + '';\n\t\t\t} else {\n\t\t\t\tpayload += '' + escapexml(c.replace(/\"\"/g, '\"')) + '';\n\t\t\t}\n\t\t\tnf = nf.slice(i+1); i = 0;\n\t\t}\n\n\t\t/* fractions */\n\t\tvar t = nf.match(/# (\\?+)\\/(\\?+)/);\n\t\tif(t) { payload += writextag(\"number:fraction\", null, {\"number:min-integer-digits\":0, \"number:min-numerator-digits\": t[1].length, \"number:max-denominator-value\": Math.max(+(t[1].replace(/./g, \"9\")), +(t[2].replace(/./g, \"9\"))) }); break j; }\n\t\tif((t=nf.match(/# (\\?+)\\/(\\d+)/))) { payload += writextag(\"number:fraction\", null, {\"number:min-integer-digits\":0, \"number:min-numerator-digits\": t[1].length, \"number:denominator-value\": +t[2]}); break j; }\n\n\t\t/* percentages */\n\t\tif((t=nf.match(/(\\d+)(|\\.\\d+)%/))) { type = \"percentage\"; payload += writextag(\"number:number\", null, {\"number:decimal-places\": t[2] && t.length - 1 || 0, \"number:min-decimal-places\": t[2] && t.length - 1 || 0, \"number:min-integer-digits\": t[1].length }) + \"%\"; break j; }\n\n\t\t/* datetime */\n\t\tvar has_time = false;\n\t\tif([\"y\",\"m\",\"d\"].indexOf(nf[0]) > -1) {\n\t\t\ttype = \"date\";\n\t\t\tk: for(; i < nf.length; ++i) switch((c = nf[i].toLowerCase())) {\n\t\t\t\tcase \"h\": case \"s\": has_time = true; --i; break k;\n\t\t\t\tcase \"m\":\n\t\t\t\t\tl: for(var h = i+1; h < nf.length; ++h) switch(nf[h]) {\n\t\t\t\t\t\tcase \"y\": case \"d\": break l;\n\t\t\t\t\t\tcase \"h\": case \"s\": has_time = true; --i; break k;\n\t\t\t\t\t}\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase \"y\": case \"d\":\n\t\t\t\t\twhile((nf[++i]||\"\").toLowerCase() == c[0]) c += c[0]; --i;\n\t\t\t\t\tswitch(c) {\n\t\t\t\t\t\tcase \"y\": case \"yy\": payload += \"\"; break;\n\t\t\t\t\t\tcase \"yyy\": case \"yyyy\": payload += ''; break;\n\t\t\t\t\t\tcase \"mmmmm\": console.error(\"ODS has no equivalent of format |mmmmm|\");\n\t\t\t\t\t\t\t/* falls through */\n\t\t\t\t\t\tcase \"m\": case \"mm\": case \"mmm\": case \"mmmm\":\n\t\t\t\t\t\t\tpayload += '= 3 ? \"true\" : \"false\") + '\"/>';\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"d\": case \"dd\": payload += ''; break;\n\t\t\t\t\t\tcase \"ddd\": case \"dddd\": payload += ''; break;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase '\"':\n\t\t\t\t\twhile(nf[++i] != '\"' || nf[++i] == '\"') c += nf[i]; --i;\n\t\t\t\t\tpayload += '' + escapexml(c.slice(1).replace(/\"\"/g, '\"')) + '';\n\t\t\t\t\tbreak;\n\t\t\t\tcase '/': payload += '' + escapexml(c) + ''; break;\n\t\t\t\tdefault: console.error(\"unrecognized character \" + c + \" in ODF format \" + nf);\n\t\t\t}\n\t\t\tif(!has_time) break j;\n\t\t\tnf = nf.slice(i+1); i = 0;\n\t\t}\n\t\tif(nf.match(/^\\[?[hms]/)) {\n\t\t\tif(type == \"number\") type = \"time\";\n\t\t\tif(nf.match(/\\[/)) {\n\t\t\t\tnf = nf.replace(/[\\[\\]]/g, \"\");\n\t\t\t\tnopts['number:truncate-on-overflow'] = \"false\";\n\t\t\t}\n\t\t\tfor(; i < nf.length; ++i) switch((c = nf[i].toLowerCase())) {\n\t\t\t\tcase \"h\": case \"m\": case \"s\":\n\t\t\t\t\twhile((nf[++i]||\"\").toLowerCase() == c[0]) c += c[0]; --i;\n\t\t\t\t\tswitch(c) {\n\t\t\t\t\t\tcase \"h\": case \"hh\": payload += ''; break;\n\t\t\t\t\t\tcase \"m\": case \"mm\": payload += ''; break;\n\t\t\t\t\t\tcase \"s\": case \"ss\":\n\t\t\t\t\t\t\tif(nf[i+1] == \".\") do { c += nf[i+1]; ++i; } while(nf[i+1] == \"0\");\n\t\t\t\t\t\t\tpayload += ''; break;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase '\"':\n\t\t\t\t\twhile(nf[++i] != '\"' || nf[++i] == '\"') c += nf[i]; --i;\n\t\t\t\t\tpayload += '' + escapexml(c.slice(1).replace(/\"\"/g, '\"')) + '';\n\t\t\t\t\tbreak;\n\t\t\t\tcase '/': payload += '' + escapexml(c) + ''; break;\n\t\t\t\tcase \"a\":\n\t\t\t\t\tif(nf.slice(i, i+3).toLowerCase() == \"a/p\") { payload += ''; i += 2; break; } // Note: ODF does not support A/P\n\t\t\t\t\tif(nf.slice(i, i+5).toLowerCase() == \"am/pm\") { payload += ''; i += 4; break; }\n\t\t\t\t\t/* falls through */\n\t\t\t\tdefault: console.error(\"unrecognized character \" + c + \" in ODF format \" + nf);\n\t\t\t}\n\t\t\tbreak j;\n\t\t}\n\n\t\t/* currency flag */\n\t\tif(nf.indexOf(/\\$/) > -1) { type = \"currency\"; }\n\n\t\t/* should be in a char loop */\n\t\tif(nf[0] == \"$\") { payload += '$'; nf = nf.slice(1); i = 0; }\n\t\ti = 0; if(nf[i] == '\"') {\n\t\t\twhile(nf[++i] != '\"' || nf[++i] == '\"') c += nf[i]; --i;\n\t\t\tif(nf[i+1] == \"*\") {\n\t\t\t\ti++;\n\t\t\t\tpayload += '' + escapexml(c.replace(/\"\"/g, '\"')) + '';\n\t\t\t} else {\n\t\t\t\tpayload += '' + escapexml(c.replace(/\"\"/g, '\"')) + '';\n\t\t\t}\n\t\t\tnf = nf.slice(i+1); i = 0;\n\t\t}\n\n\t\t/* number TODO: interstitial text e.g. 000)000-0000 */\n\t\tvar np = nf.match(/([#0][0#,]*)(\\.[0#]*|)(E[+]?0*|)/i);\n\t\tif(!np || !np[0]) console.error(\"Could not find numeric part of \" + nf);\n\t\telse {\n\t\t\tvar base = np[1].replace(/,/g, \"\");\n\t\t\tpayload += ' -1 ? ' number:grouping=\"true\"' : \"\") +\n\t\t\t\t(np[2] && ' number:decimal-places=\"' + (np[2].length - 1) + '\"' || ' number:decimal-places=\"0\"') +\n\t\t\t\t(np[3] && np[3].indexOf(\"+\") > -1 ? ' number:forced-exponent-sign=\"true\"' : \"\" ) +\n\t\t\t\t(np[3] ? ' number:min-exponent-digits=\"' + np[3].match(/0+/)[0].length + '\"' : \"\" ) +\n\t\t\t\t'>' +\n\t\t\t\t/* TODO: interstitial text placeholders */\n\t\t\t\t'';\n\t\t\ti = np.index + np[0].length;\n\t\t}\n\n\t\t/* residual text */\n\t\tif(nf[i] == '\"') {\n\t\t\tc = \"\";\n\t\t\twhile(nf[++i] != '\"' || nf[++i] == '\"') c += nf[i]; --i;\n\t\t\tpayload += '' + escapexml(c.replace(/\"\"/g, '\"')) + '';\n\t\t}\n\t}\n\n\tif(!payload) { console.error(\"Could not generate ODS number format for |\" + nf + \"|\"); return \"\"; }\n\treturn writextag(\"number:\" + type + \"-style\", payload, nopts);\n}\n\nfunction write_names_ods(Names, SheetNames, idx) {\n\tvar scoped = Names.filter(function(name) { return name.Sheet == (idx == -1 ? null : idx); });\n\tif(!scoped.length) return \"\";\n\treturn \" \\n\" + scoped.map(function(name) {\n\t\tvar odsref = csf_to_ods_3D(name.Ref);\n\t\treturn \" \" + writextag(\"table:named-range\", null, {\n\t\t\t\"table:name\": name.Name,\n\t\t\t\"table:cell-range-address\": odsref,\n\t\t\t\"table:base-cell-address\": odsref.replace(/[\\.]?[^\\.]*$/, \".$A$1\")\n\t\t});\n\t}).join(\"\\n\") + \"\\n \\n\";\n}\nvar write_content_ods/*:{(wb:any, opts:any):string}*/ = /* @__PURE__ */(function() {\n\t/* 6.1.2 White Space Characters */\n\tvar write_text_p = function(text/*:string*/)/*:string*/ {\n\t\treturn escapexml(text)\n\t\t\t.replace(/ +/g, function($$){return '';})\n\t\t\t.replace(/\\t/g, \"\")\n\t\t\t.replace(/\\n/g, \"\")\n\t\t\t.replace(/^ /, \"\").replace(/ $/, \"\");\n\t};\n\n\tvar null_cell_xml = ' \\n';\n\tvar covered_cell_xml = ' \\n';\n\tvar write_ws = function(ws, wb/*:Workbook*/, i/*:number*/, opts, nfs)/*:string*/ {\n\t\t/* Section 9 Tables */\n\t\tvar o/*:Array*/ = [];\n\t\to.push(' \\n');\n\t\tvar R=0,C=0, range = decode_range(ws['!ref']||\"A1\");\n\t\tvar marr/*:Array*/ = ws['!merges'] || [], mi = 0;\n\t\tvar dense = ws[\"!data\"] != null;\n\t\tif(ws[\"!cols\"]) {\n\t\t\tfor(C = 0; C <= range.e.c; ++C) o.push(' \\n');\n\t\t}\n\t\tvar H = \"\", ROWS = ws[\"!rows\"]||[];\n\t\tfor(R = 0; R < range.s.r; ++R) {\n\t\t\tH = ROWS[R] ? ' table:style-name=\"ro' + ROWS[R].ods + '\"' : \"\";\n\t\t\to.push(' \\n');\n\t\t}\n\t\tfor(; R <= range.e.r; ++R) {\n\t\t\tH = ROWS[R] ? ' table:style-name=\"ro' + ROWS[R].ods + '\"' : \"\";\n\t\t\to.push(' \\n');\n\t\t\tfor(C=0; C < range.s.c; ++C) o.push(null_cell_xml);\n\t\t\tfor(; C <= range.e.c; ++C) {\n\t\t\t\tvar skip = false, ct = {}, textp = \"\";\n\t\t\t\tfor(mi = 0; mi != marr.length; ++mi) {\n\t\t\t\t\tif(marr[mi].s.c > C) continue;\n\t\t\t\t\tif(marr[mi].s.r > R) continue;\n\t\t\t\t\tif(marr[mi].e.c < C) continue;\n\t\t\t\t\tif(marr[mi].e.r < R) continue;\n\t\t\t\t\tif(marr[mi].s.c != C || marr[mi].s.r != R) skip = true;\n\t\t\t\t\tct['table:number-columns-spanned'] = (marr[mi].e.c - marr[mi].s.c + 1);\n\t\t\t\t\tct['table:number-rows-spanned'] = (marr[mi].e.r - marr[mi].s.r + 1);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif(skip) { o.push(covered_cell_xml); continue; }\n\t\t\t\tvar ref = encode_cell({r:R, c:C}), cell = dense ? (ws[\"!data\"][R]||[])[C]: ws[ref];\n\t\t\t\tif(cell && cell.f) {\n\t\t\t\t\tct['table:formula'] = escapexml(csf_to_ods_formula(cell.f));\n\t\t\t\t\tif(cell.F) {\n\t\t\t\t\t\tif(cell.F.slice(0, ref.length) == ref) {\n\t\t\t\t\t\t\tvar _Fref = decode_range(cell.F);\n\t\t\t\t\t\t\tct['table:number-matrix-columns-spanned'] = (_Fref.e.c - _Fref.s.c + 1);\n\t\t\t\t\t\t\tct['table:number-matrix-rows-spanned'] = (_Fref.e.r - _Fref.s.r + 1);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(!cell) { o.push(null_cell_xml); continue; }\n\t\t\t\tswitch(cell.t) {\n\t\t\t\t\tcase 'b':\n\t\t\t\t\t\ttextp = (cell.v ? 'TRUE' : 'FALSE');\n\t\t\t\t\t\tct['office:value-type'] = \"boolean\";\n\t\t\t\t\t\tct['office:boolean-value'] = (cell.v ? 'true' : 'false');\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'n':\n\t\t\t\t\t\ttextp = (cell.w||String(cell.v||0));\n\t\t\t\t\t\tct['office:value-type'] = \"float\";\n\t\t\t\t\t\tct['office:value'] = (cell.v||0);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 's': case 'str':\n\t\t\t\t\t\ttextp = cell.v == null ? \"\" : cell.v;\n\t\t\t\t\t\tct['office:value-type'] = \"string\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'd':\n\t\t\t\t\t\ttextp = (cell.w||(parseDate(cell.v).toISOString()));\n\t\t\t\t\t\tct['office:value-type'] = \"date\";\n\t\t\t\t\t\tct['office:date-value'] = (parseDate(cell.v).toISOString());\n\t\t\t\t\t\tct['table:style-name'] = \"ce1\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t//case 'e':\n\t\t\t\t\tdefault: o.push(null_cell_xml); continue;\n\t\t\t\t}\n\t\t\t\tvar text_p = write_text_p(textp);\n\t\t\t\tif(cell.l && cell.l.Target) {\n\t\t\t\t\tvar _tgt = cell.l.Target;\n\t\t\t\t\t_tgt = _tgt.charAt(0) == \"#\" ? \"#\" + csf_to_ods_3D(_tgt.slice(1)) : _tgt;\n\t\t\t\t\t// TODO: choose correct parent path format based on link delimiters\n\t\t\t\t\tif(_tgt.charAt(0) != \"#\" && !_tgt.match(/^\\w+:/)) _tgt = '../' + _tgt;\n\t\t\t\t\ttext_p = writextag('text:a', text_p, {'xlink:href': _tgt.replace(/&/g, \"&\")});\n\t\t\t\t}\n\t\t\t\tif(nfs[cell.z]) ct[\"table:style-name\"] = \"ce\" + nfs[cell.z].slice(1);\n\t\t\t\to.push(' ' + writextag('table:table-cell', writextag('text:p', text_p, {}), ct) + '\\n');\n\t\t\t}\n\t\t\to.push(' \\n');\n\t\t}\n\t\tif((wb.Workbook||{}).Names) o.push(write_names_ods(wb.Workbook.Names, wb.SheetNames, i));\n\t\to.push(' \\n');\n\t\treturn o.join(\"\");\n\t};\n\n\tvar write_automatic_styles_ods = function(o/*:Array*/, wb) {\n\t\to.push(' \\n');\n\n\t\t/* column styles */\n\t\tvar cidx = 0;\n\t\twb.SheetNames.map(function(n) { return wb.Sheets[n]; }).forEach(function(ws) {\n\t\t\tif(!ws) return;\n\t\t\tif(ws[\"!cols\"]) {\n\t\t\t\tfor(var C = 0; C < ws[\"!cols\"].length; ++C) if(ws[\"!cols\"][C]) {\n\t\t\t\t\tvar colobj = ws[\"!cols\"][C];\n\t\t\t\t\tif(colobj.width == null && colobj.wpx == null && colobj.wch == null) continue;\n\t\t\t\t\tprocess_col(colobj);\n\t\t\t\t\tcolobj.ods = cidx;\n\t\t\t\t\tvar w = ws[\"!cols\"][C].wpx + \"px\";\n\t\t\t\t\to.push(' \\n');\n\t\t\t\t\to.push(' \\n');\n\t\t\t\t\to.push(' \\n');\n\t\t\t\t\t++cidx;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\t/* row styles */\n\t\tvar ridx = 0;\n\t\twb.SheetNames.map(function(n) { return wb.Sheets[n]; }).forEach(function(ws) {\n\t\t\tif(!ws) return;\n\t\t\tif(ws[\"!rows\"]) {\n\t\t\t\tfor(var R = 0; R < ws[\"!rows\"].length; ++R) if(ws[\"!rows\"][R]) {\n\t\t\t\t\tws[\"!rows\"][R].ods = ridx;\n\t\t\t\t\tvar h = ws[\"!rows\"][R].hpx + \"px\";\n\t\t\t\t\to.push(' \\n');\n\t\t\t\t\to.push(' \\n');\n\t\t\t\t\to.push(' \\n');\n\t\t\t\t\t++ridx;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\t/* table */\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\t\to.push(' /\\n');\n\t\to.push(' \\n');\n\t\to.push(' /\\n');\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\n\t\t/* number formats, table cells, text */\n\t\tvar nfs = {};\n\t\tvar nfi = 69;\n\t\twb.SheetNames.map(function(n) { return wb.Sheets[n]; }).forEach(function(ws) {\n\t\t\tif(!ws) return;\n\t\t\tvar dense = (ws[\"!data\"] != null);\n\t\t\tvar range = decode_range(ws[\"!ref\"]);\n\t\t\tfor(var R = 0; R <= range.e.r; ++R) for(var C = 0; C <= range.e.c; ++C) {\n\t\t\t\tvar c = dense ? (ws[\"!data\"][R]||[])[C] : ws[encode_cell({r:R,c:C})];\n\t\t\t\tif(!c || !c.z || c.z.toLowerCase() == \"general\") continue;\n\t\t\t\tif(!nfs[c.z]) {\n\t\t\t\t\tvar out = write_number_format_ods(c.z, \"N\" + nfi);\n\t\t\t\t\tif(out) { nfs[c.z] = \"N\" + nfi; ++nfi; o.push(out + \"\\n\"); }\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\to.push(' \\n');\n\t\tkeys(nfs).forEach(function(nf) {\n\t\t\to.push('\\n');\n\t\t});\n\n\t\t/* page-layout */\n\n\t\to.push(' \\n');\n\t\treturn nfs;\n\t};\n\n\treturn function wcx(wb, opts) {\n\t\tvar o = [XML_HEADER];\n\t\t/* 3.1.3.2 */\n\t\tvar attr = wxt_helper({\n\t\t\t'xmlns:office': \"urn:oasis:names:tc:opendocument:xmlns:office:1.0\",\n\t\t\t'xmlns:table': \"urn:oasis:names:tc:opendocument:xmlns:table:1.0\",\n\t\t\t'xmlns:style': \"urn:oasis:names:tc:opendocument:xmlns:style:1.0\",\n\t\t\t'xmlns:text': \"urn:oasis:names:tc:opendocument:xmlns:text:1.0\",\n\t\t\t'xmlns:draw': \"urn:oasis:names:tc:opendocument:xmlns:drawing:1.0\",\n\t\t\t'xmlns:fo': \"urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0\",\n\t\t\t'xmlns:xlink': \"http://www.w3.org/1999/xlink\",\n\t\t\t'xmlns:dc': \"http://purl.org/dc/elements/1.1/\",\n\t\t\t'xmlns:meta': \"urn:oasis:names:tc:opendocument:xmlns:meta:1.0\",\n\t\t\t'xmlns:number': \"urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0\",\n\t\t\t'xmlns:presentation': \"urn:oasis:names:tc:opendocument:xmlns:presentation:1.0\",\n\t\t\t'xmlns:svg': \"urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0\",\n\t\t\t'xmlns:chart': \"urn:oasis:names:tc:opendocument:xmlns:chart:1.0\",\n\t\t\t'xmlns:dr3d': \"urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0\",\n\t\t\t'xmlns:math': \"http://www.w3.org/1998/Math/MathML\",\n\t\t\t'xmlns:form': \"urn:oasis:names:tc:opendocument:xmlns:form:1.0\",\n\t\t\t'xmlns:script': \"urn:oasis:names:tc:opendocument:xmlns:script:1.0\",\n\t\t\t'xmlns:ooo': \"http://openoffice.org/2004/office\",\n\t\t\t'xmlns:ooow': \"http://openoffice.org/2004/writer\",\n\t\t\t'xmlns:oooc': \"http://openoffice.org/2004/calc\",\n\t\t\t'xmlns:dom': \"http://www.w3.org/2001/xml-events\",\n\t\t\t'xmlns:xforms': \"http://www.w3.org/2002/xforms\",\n\t\t\t'xmlns:xsd': \"http://www.w3.org/2001/XMLSchema\",\n\t\t\t'xmlns:xsi': \"http://www.w3.org/2001/XMLSchema-instance\",\n\t\t\t'xmlns:sheet': \"urn:oasis:names:tc:opendocument:sh33tjs:1.0\",\n\t\t\t'xmlns:rpt': \"http://openoffice.org/2005/report\",\n\t\t\t'xmlns:of': \"urn:oasis:names:tc:opendocument:xmlns:of:1.2\",\n\t\t\t'xmlns:xhtml': \"http://www.w3.org/1999/xhtml\",\n\t\t\t'xmlns:grddl': \"http://www.w3.org/2003/g/data-view#\",\n\t\t\t'xmlns:tableooo': \"http://openoffice.org/2009/table\",\n\t\t\t'xmlns:drawooo': \"http://openoffice.org/2010/draw\",\n\t\t\t'xmlns:calcext': \"urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0\",\n\t\t\t'xmlns:loext': \"urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0\",\n\t\t\t'xmlns:field': \"urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0\",\n\t\t\t'xmlns:formx': \"urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0\",\n\t\t\t'xmlns:css3t': \"http://www.w3.org/TR/css3-text/\",\n\t\t\t'office:version': \"1.2\"\n\t\t});\n\n\t\tvar fods = wxt_helper({\n\t\t\t'xmlns:config': \"urn:oasis:names:tc:opendocument:xmlns:config:1.0\",\n\t\t\t'office:mimetype': \"application/vnd.oasis.opendocument.spreadsheet\"\n\t\t});\n\n\t\tif(opts.bookType == \"fods\") {\n\t\t\to.push('\\n');\n\t\t\to.push(write_meta_ods().replace(//, \"\").replace(/<\\/office:document-meta>/, \"\") + \"\\n\");\n\t\t\t// TODO: settings (equiv of settings.xml for ODS)\n\t\t} else o.push('\\n');\n\t\t// o.push(' \\n');\n\t\tvar nfs = write_automatic_styles_ods(o, wb);\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\t\tif(((wb.Workbook||{}).WBProps||{}).date1904) o.push(' \\n \\n \\n');\n\t\tfor(var i = 0; i != wb.SheetNames.length; ++i) o.push(write_ws(wb.Sheets[wb.SheetNames[i]], wb, i, opts, nfs));\n\t\tif((wb.Workbook||{}).Names) o.push(write_names_ods(wb.Workbook.Names, wb.SheetNames, -1));\n\t\to.push(' \\n');\n\t\to.push(' \\n');\n\t\tif(opts.bookType == \"fods\") o.push('');\n\t\telse o.push('');\n\t\treturn o.join(\"\");\n\t};\n})();\n\nfunction write_ods(wb/*:any*/, opts/*:any*/) {\n\tif(opts.bookType == \"fods\") return write_content_ods(wb, opts);\n\n\tvar zip = zip_new();\n\tvar f = \"\";\n\n\tvar manifest/*:Array >*/ = [];\n\tvar rdf/*:Array<[string, string]>*/ = [];\n\n\t/* Part 3 Section 3.3 MIME Media Type */\n\tf = \"mimetype\";\n\tzip_add_file(zip, f, \"application/vnd.oasis.opendocument.spreadsheet\");\n\n\t/* Part 1 Section 2.2 Documents */\n\tf = \"content.xml\";\n\tzip_add_file(zip, f, write_content_ods(wb, opts));\n\tmanifest.push([f, \"text/xml\"]);\n\trdf.push([f, \"ContentFile\"]);\n\n\t/* TODO: these are hard-coded styles to satiate excel */\n\tf = \"styles.xml\";\n\tzip_add_file(zip, f, write_styles_ods(wb, opts));\n\tmanifest.push([f, \"text/xml\"]);\n\trdf.push([f, \"StylesFile\"]);\n\n\t/* TODO: this is hard-coded to satiate excel */\n\tf = \"meta.xml\";\n\tzip_add_file(zip, f, XML_HEADER + write_meta_ods(/*::wb, opts*/));\n\tmanifest.push([f, \"text/xml\"]);\n\trdf.push([f, \"MetadataFile\"]);\n\n\t/* Part 3 Section 6 Metadata Manifest File */\n\tf = \"manifest.rdf\";\n\tzip_add_file(zip, f, write_rdf(rdf/*, opts*/));\n\tmanifest.push([f, \"application/rdf+xml\"]);\n\n\t/* Part 3 Section 4 Manifest File */\n\tf = \"META-INF/manifest.xml\";\n\tzip_add_file(zip, f, write_manifest(manifest/*, opts*/));\n\n\treturn zip;\n}\n\n/*! sheetjs (C) 2013-present SheetJS -- http://sheetjs.com */\nvar subarray = function() {\n try {\n if (typeof Uint8Array == \"undefined\")\n return \"slice\";\n if (typeof Uint8Array.prototype.subarray == \"undefined\")\n return \"slice\";\n if (typeof Buffer !== \"undefined\") {\n if (typeof Buffer.prototype.subarray == \"undefined\")\n return \"slice\";\n if ((typeof Buffer.from == \"function\" ? Buffer.from([72, 62]) : new Buffer([72, 62])) instanceof Uint8Array)\n return \"subarray\";\n return \"slice\";\n }\n return \"subarray\";\n } catch (e) {\n return \"slice\";\n }\n}();\nfunction u8_to_dataview(array) {\n return new DataView(array.buffer, array.byteOffset, array.byteLength);\n}\nfunction u8str(u8) {\n return typeof TextDecoder != \"undefined\" ? new TextDecoder().decode(u8) : utf8read(a2s(u8));\n}\nfunction stru8(str) {\n return typeof TextEncoder != \"undefined\" ? new TextEncoder().encode(str) : s2a(utf8write(str));\n}\nfunction u8concat(u8a) {\n var len = 0;\n for (var i = 0; i < u8a.length; ++i)\n len += u8a[i].length;\n var out = new Uint8Array(len);\n var off = 0;\n for (i = 0; i < u8a.length; ++i) {\n var u8 = u8a[i], L = u8.length;\n if (L < 250) {\n for (var j = 0; j < L; ++j)\n out[off++] = u8[j];\n } else {\n out.set(u8, off);\n off += L;\n }\n }\n return out;\n}\nfunction popcnt(x) {\n x -= x >> 1 & 1431655765;\n x = (x & 858993459) + (x >> 2 & 858993459);\n return (x + (x >> 4) & 252645135) * 16843009 >>> 24;\n}\nfunction readDecimal128LE(buf, offset) {\n var exp = (buf[offset + 15] & 127) << 7 | buf[offset + 14] >> 1;\n var mantissa = buf[offset + 14] & 1;\n for (var j = offset + 13; j >= offset; --j)\n mantissa = mantissa * 256 + buf[j];\n return (buf[offset + 15] & 128 ? -mantissa : mantissa) * Math.pow(10, exp - 6176);\n}\nfunction writeDecimal128LE(buf, offset, value) {\n var exp = Math.floor(value == 0 ? 0 : Math.LOG10E * Math.log(Math.abs(value))) + 6176 - 16;\n var mantissa = value / Math.pow(10, exp - 6176);\n buf[offset + 15] |= exp >> 7;\n buf[offset + 14] |= (exp & 127) << 1;\n for (var i = 0; mantissa >= 1; ++i, mantissa /= 256)\n buf[offset + i] = mantissa & 255;\n buf[offset + 15] |= value >= 0 ? 0 : 128;\n}\nfunction parse_varint49(buf, ptr) {\n var l = ptr.l;\n var usz = buf[l] & 127;\n varint:\n if (buf[l++] >= 128) {\n usz |= (buf[l] & 127) << 7;\n if (buf[l++] < 128)\n break varint;\n usz |= (buf[l] & 127) << 14;\n if (buf[l++] < 128)\n break varint;\n usz |= (buf[l] & 127) << 21;\n if (buf[l++] < 128)\n break varint;\n usz += (buf[l] & 127) * Math.pow(2, 28);\n ++l;\n if (buf[l++] < 128)\n break varint;\n usz += (buf[l] & 127) * Math.pow(2, 35);\n ++l;\n if (buf[l++] < 128)\n break varint;\n usz += (buf[l] & 127) * Math.pow(2, 42);\n ++l;\n if (buf[l++] < 128)\n break varint;\n }\n ptr.l = l;\n return usz;\n}\nfunction write_varint49(v) {\n var usz = new Uint8Array(7);\n usz[0] = v & 127;\n var L = 1;\n sz:\n if (v > 127) {\n usz[L - 1] |= 128;\n usz[L] = v >> 7 & 127;\n ++L;\n if (v <= 16383)\n break sz;\n usz[L - 1] |= 128;\n usz[L] = v >> 14 & 127;\n ++L;\n if (v <= 2097151)\n break sz;\n usz[L - 1] |= 128;\n usz[L] = v >> 21 & 127;\n ++L;\n if (v <= 268435455)\n break sz;\n usz[L - 1] |= 128;\n usz[L] = v / 256 >>> 21 & 127;\n ++L;\n if (v <= 34359738367)\n break sz;\n usz[L - 1] |= 128;\n usz[L] = v / 65536 >>> 21 & 127;\n ++L;\n if (v <= 4398046511103)\n break sz;\n usz[L - 1] |= 128;\n usz[L] = v / 16777216 >>> 21 & 127;\n ++L;\n }\n return usz[subarray](0, L);\n}\nfunction parse_packed_varints(buf) {\n var ptr = { l: 0 };\n var out = [];\n while (ptr.l < buf.length)\n out.push(parse_varint49(buf, ptr));\n return out;\n}\nfunction write_packed_varints(nums) {\n return u8concat(nums.map(function(x) {\n return write_varint49(x);\n }));\n}\nfunction varint_to_i32(buf) {\n var l = 0, i32 = buf[l] & 127;\n varint:\n if (buf[l++] >= 128) {\n i32 |= (buf[l] & 127) << 7;\n if (buf[l++] < 128)\n break varint;\n i32 |= (buf[l] & 127) << 14;\n if (buf[l++] < 128)\n break varint;\n i32 |= (buf[l] & 127) << 21;\n if (buf[l++] < 128)\n break varint;\n i32 |= (buf[l] & 127) << 28;\n }\n return i32;\n}\nfunction varint_to_u64(buf) {\n var l = 0, lo = buf[l] & 127, hi = 0;\n varint:\n if (buf[l++] >= 128) {\n lo |= (buf[l] & 127) << 7;\n if (buf[l++] < 128)\n break varint;\n lo |= (buf[l] & 127) << 14;\n if (buf[l++] < 128)\n break varint;\n lo |= (buf[l] & 127) << 21;\n if (buf[l++] < 128)\n break varint;\n lo |= (buf[l] & 127) << 28;\n hi = buf[l] >> 4 & 7;\n if (buf[l++] < 128)\n break varint;\n hi |= (buf[l] & 127) << 3;\n if (buf[l++] < 128)\n break varint;\n hi |= (buf[l] & 127) << 10;\n if (buf[l++] < 128)\n break varint;\n hi |= (buf[l] & 127) << 17;\n if (buf[l++] < 128)\n break varint;\n hi |= (buf[l] & 127) << 24;\n if (buf[l++] < 128)\n break varint;\n hi |= (buf[l] & 127) << 31;\n }\n return [lo >>> 0, hi >>> 0];\n}\nfunction parse_shallow(buf) {\n var out = [], ptr = { l: 0 };\n while (ptr.l < buf.length) {\n var off = ptr.l;\n var num = parse_varint49(buf, ptr);\n var type = num & 7;\n num = num / 8 | 0;\n var data;\n var l = ptr.l;\n switch (type) {\n case 0:\n {\n while (buf[l++] >= 128)\n ;\n data = buf[subarray](ptr.l, l);\n ptr.l = l;\n }\n break;\n case 1:\n {\n data = buf[subarray](l, l + 8);\n ptr.l = l + 8;\n }\n break;\n case 2:\n {\n var len = parse_varint49(buf, ptr);\n data = buf[subarray](ptr.l, ptr.l + len);\n ptr.l += len;\n }\n break;\n case 5:\n {\n data = buf[subarray](l, l + 4);\n ptr.l = l + 4;\n }\n break;\n default:\n throw new Error(\"PB Type \".concat(type, \" for Field \").concat(num, \" at offset \").concat(off));\n }\n var v = { data: data, type: type };\n if (out[num] == null)\n out[num] = [];\n out[num].push(v);\n }\n return out;\n}\nfunction write_shallow(proto) {\n var out = [];\n proto.forEach(function(field, idx) {\n if (idx == 0)\n return;\n field.forEach(function(item) {\n if (!item.data)\n return;\n out.push(write_varint49(idx * 8 + item.type));\n if (item.type == 2)\n out.push(write_varint49(item.data.length));\n out.push(item.data);\n });\n });\n return u8concat(out);\n}\nfunction mappa(data, cb) {\n return (data == null ? void 0 : data.map(function(d) {\n return cb(d.data);\n })) || [];\n}\nfunction parse_iwa_file(buf) {\n var _a;\n var out = [], ptr = { l: 0 };\n while (ptr.l < buf.length) {\n var len = parse_varint49(buf, ptr);\n var ai = parse_shallow(buf[subarray](ptr.l, ptr.l + len));\n ptr.l += len;\n var res = {\n id: varint_to_i32(ai[1][0].data),\n messages: []\n };\n ai[2].forEach(function(b) {\n var mi = parse_shallow(b.data);\n var fl = varint_to_i32(mi[3][0].data);\n res.messages.push({\n meta: mi,\n data: buf[subarray](ptr.l, ptr.l + fl)\n });\n ptr.l += fl;\n });\n if ((_a = ai[3]) == null ? void 0 : _a[0])\n res.merge = varint_to_i32(ai[3][0].data) >>> 0 > 0;\n out.push(res);\n }\n return out;\n}\nfunction write_iwa_file(ias) {\n var bufs = [];\n ias.forEach(function(ia) {\n var ai = [\n [],\n [{ data: write_varint49(ia.id), type: 0 }],\n []\n ];\n if (ia.merge != null)\n ai[3] = [{ data: write_varint49(+!!ia.merge), type: 0 }];\n var midata = [];\n ia.messages.forEach(function(mi) {\n midata.push(mi.data);\n mi.meta[3] = [{ type: 0, data: write_varint49(mi.data.length) }];\n ai[2].push({ data: write_shallow(mi.meta), type: 2 });\n });\n var aipayload = write_shallow(ai);\n bufs.push(write_varint49(aipayload.length));\n bufs.push(aipayload);\n midata.forEach(function(mid) {\n return bufs.push(mid);\n });\n });\n return u8concat(bufs);\n}\nfunction parse_snappy_chunk(type, buf) {\n if (type != 0)\n throw new Error(\"Unexpected Snappy chunk type \".concat(type));\n var ptr = { l: 0 };\n var usz = parse_varint49(buf, ptr);\n var chunks = [];\n var l = ptr.l;\n while (l < buf.length) {\n var tag = buf[l] & 3;\n if (tag == 0) {\n var len = buf[l++] >> 2;\n if (len < 60)\n ++len;\n else {\n var c = len - 59;\n len = buf[l];\n if (c > 1)\n len |= buf[l + 1] << 8;\n if (c > 2)\n len |= buf[l + 2] << 16;\n if (c > 3)\n len |= buf[l + 3] << 24;\n len >>>= 0;\n len++;\n l += c;\n }\n chunks.push(buf[subarray](l, l + len));\n l += len;\n continue;\n } else {\n var offset = 0, length = 0;\n if (tag == 1) {\n length = (buf[l] >> 2 & 7) + 4;\n offset = (buf[l++] & 224) << 3;\n offset |= buf[l++];\n } else {\n length = (buf[l++] >> 2) + 1;\n if (tag == 2) {\n offset = buf[l] | buf[l + 1] << 8;\n l += 2;\n } else {\n offset = (buf[l] | buf[l + 1] << 8 | buf[l + 2] << 16 | buf[l + 3] << 24) >>> 0;\n l += 4;\n }\n }\n if (offset == 0)\n throw new Error(\"Invalid offset 0\");\n var j = chunks.length - 1, off = offset;\n while (j >= 0 && off >= chunks[j].length) {\n off -= chunks[j].length;\n --j;\n }\n if (j < 0) {\n if (off == 0)\n off = chunks[j = 0].length;\n else\n throw new Error(\"Invalid offset beyond length\");\n }\n if (length < off)\n chunks.push(chunks[j][subarray](chunks[j].length - off, chunks[j].length - off + length));\n else {\n if (off > 0) {\n chunks.push(chunks[j][subarray](chunks[j].length - off));\n length -= off;\n }\n ++j;\n while (length >= chunks[j].length) {\n chunks.push(chunks[j]);\n length -= chunks[j].length;\n ++j;\n }\n if (length)\n chunks.push(chunks[j][subarray](0, length));\n }\n if (chunks.length > 25)\n chunks = [u8concat(chunks)];\n }\n }\n var clen = 0;\n for (var u8i = 0; u8i < chunks.length; ++u8i)\n clen += chunks[u8i].length;\n if (clen != usz)\n throw new Error(\"Unexpected length: \".concat(clen, \" != \").concat(usz));\n return chunks;\n}\nfunction decompress_iwa_file(buf) {\n if (Array.isArray(buf))\n buf = new Uint8Array(buf);\n var out = [];\n var l = 0;\n while (l < buf.length) {\n var t = buf[l++];\n var len = buf[l] | buf[l + 1] << 8 | buf[l + 2] << 16;\n l += 3;\n out.push.apply(out, parse_snappy_chunk(t, buf[subarray](l, l + len)));\n l += len;\n }\n if (l !== buf.length)\n throw new Error(\"data is not a valid framed stream!\");\n return out.length == 1 ? out[0] : u8concat(out);\n}\nfunction compress_iwa_file(buf) {\n var out = [];\n var l = 0;\n while (l < buf.length) {\n var c = Math.min(buf.length - l, 268435455);\n var frame = new Uint8Array(4);\n out.push(frame);\n var usz = write_varint49(c);\n var L = usz.length;\n out.push(usz);\n if (c <= 60) {\n L++;\n out.push(new Uint8Array([c - 1 << 2]));\n } else if (c <= 256) {\n L += 2;\n out.push(new Uint8Array([240, c - 1 & 255]));\n } else if (c <= 65536) {\n L += 3;\n out.push(new Uint8Array([244, c - 1 & 255, c - 1 >> 8 & 255]));\n } else if (c <= 16777216) {\n L += 4;\n out.push(new Uint8Array([248, c - 1 & 255, c - 1 >> 8 & 255, c - 1 >> 16 & 255]));\n } else if (c <= 4294967296) {\n L += 5;\n out.push(new Uint8Array([252, c - 1 & 255, c - 1 >> 8 & 255, c - 1 >> 16 & 255, c - 1 >>> 24 & 255]));\n }\n out.push(buf[subarray](l, l + c));\n L += c;\n frame[0] = 0;\n frame[1] = L & 255;\n frame[2] = L >> 8 & 255;\n frame[3] = L >> 16 & 255;\n l += c;\n }\n return u8concat(out);\n}\nvar numbers_lut_new = function() {\n return { sst: [], rsst: [], ofmt: [], nfmt: [] };\n};\nfunction numbers_format_cell(cell, t, flags, ofmt, nfmt) {\n var _a, _b, _c, _d;\n var ctype = t & 255, ver = t >> 8;\n var fmt = ver >= 5 ? nfmt : ofmt;\n dur:\n if (flags & (ver > 4 ? 8 : 4) && cell.t == \"n\" && ctype == 7) {\n var dstyle = ((_a = fmt[7]) == null ? void 0 : _a[0]) ? varint_to_i32(fmt[7][0].data) : -1;\n if (dstyle == -1)\n break dur;\n var dmin = ((_b = fmt[15]) == null ? void 0 : _b[0]) ? varint_to_i32(fmt[15][0].data) : -1;\n var dmax = ((_c = fmt[16]) == null ? void 0 : _c[0]) ? varint_to_i32(fmt[16][0].data) : -1;\n var auto = ((_d = fmt[40]) == null ? void 0 : _d[0]) ? varint_to_i32(fmt[40][0].data) : -1;\n var d = cell.v, dd = d;\n autodur:\n if (auto) {\n if (d == 0) {\n dmin = dmax = 2;\n break autodur;\n }\n if (d >= 604800)\n dmin = 1;\n else if (d >= 86400)\n dmin = 2;\n else if (d >= 3600)\n dmin = 4;\n else if (d >= 60)\n dmin = 8;\n else if (d >= 1)\n dmin = 16;\n else\n dmin = 32;\n if (Math.floor(d) != d)\n dmax = 32;\n else if (d % 60)\n dmax = 16;\n else if (d % 3600)\n dmax = 8;\n else if (d % 86400)\n dmax = 4;\n else if (d % 604800)\n dmax = 2;\n if (dmax < dmin)\n dmax = dmin;\n }\n if (dmin == -1 || dmax == -1)\n break dur;\n var dstr = [], zstr = [];\n if (dmin == 1) {\n dd = d / 604800;\n if (dmax == 1) {\n zstr.push('d\"d\"');\n } else {\n dd |= 0;\n d -= 604800 * dd;\n }\n dstr.push(dd + (dstyle == 2 ? \" week\" + (dd == 1 ? \"\" : \"s\") : dstyle == 1 ? \"w\" : \"\"));\n }\n if (dmin <= 2 && dmax >= 2) {\n dd = d / 86400;\n if (dmax > 2) {\n dd |= 0;\n d -= 86400 * dd;\n }\n zstr.push('d\"d\"');\n dstr.push(dd + (dstyle == 2 ? \" day\" + (dd == 1 ? \"\" : \"s\") : dstyle == 1 ? \"d\" : \"\"));\n }\n if (dmin <= 4 && dmax >= 4) {\n dd = d / 3600;\n if (dmax > 4) {\n dd |= 0;\n d -= 3600 * dd;\n }\n zstr.push((dmin >= 4 ? \"[h]\" : \"h\") + '\"h\"');\n dstr.push(dd + (dstyle == 2 ? \" hour\" + (dd == 1 ? \"\" : \"s\") : dstyle == 1 ? \"h\" : \"\"));\n }\n if (dmin <= 8 && dmax >= 8) {\n dd = d / 60;\n if (dmax > 8) {\n dd |= 0;\n d -= 60 * dd;\n }\n zstr.push((dmin >= 8 ? \"[m]\" : \"m\") + '\"m\"');\n if (dstyle == 0)\n dstr.push((dmin == 8 && dmax == 8 || dd >= 10 ? \"\" : \"0\") + dd);\n else\n dstr.push(dd + (dstyle == 2 ? \" minute\" + (dd == 1 ? \"\" : \"s\") : dstyle == 1 ? \"m\" : \"\"));\n }\n if (dmin <= 16 && dmax >= 16) {\n dd = d;\n if (dmax > 16) {\n dd |= 0;\n d -= dd;\n }\n zstr.push((dmin >= 16 ? \"[s]\" : \"s\") + '\"s\"');\n if (dstyle == 0)\n dstr.push((dmax == 16 && dmin == 16 || dd >= 10 ? \"\" : \"0\") + dd);\n else\n dstr.push(dd + (dstyle == 2 ? \" second\" + (dd == 1 ? \"\" : \"s\") : dstyle == 1 ? \"s\" : \"\"));\n }\n if (dmax >= 32) {\n dd = Math.round(1e3 * d);\n if (dmin < 32)\n zstr.push('.000\"ms\"');\n if (dstyle == 0)\n dstr.push((dd >= 100 ? \"\" : dd >= 10 ? \"0\" : \"00\") + dd);\n else\n dstr.push(dd + (dstyle == 2 ? \" millisecond\" + (dd == 1 ? \"\" : \"s\") : dstyle == 1 ? \"ms\" : \"\"));\n }\n cell.w = dstr.join(dstyle == 0 ? \":\" : \" \");\n cell.z = zstr.join(dstyle == 0 ? '\":\"' : \" \");\n if (dstyle == 0)\n cell.w = cell.w.replace(/:(\\d\\d\\d)$/, \".$1\");\n }\n}\nfunction parse_old_storage(buf, lut, v) {\n var dv = u8_to_dataview(buf);\n var flags = dv.getUint32(4, true);\n var ridx = -1, sidx = -1, zidx = -1, ieee = NaN, dt = new Date(2001, 0, 1);\n var doff = v > 1 ? 12 : 8;\n if (flags & 2) {\n zidx = dv.getUint32(doff, true);\n doff += 4;\n }\n doff += popcnt(flags & (v > 1 ? 3468 : 396)) * 4;\n if (flags & 512) {\n ridx = dv.getUint32(doff, true);\n doff += 4;\n }\n doff += popcnt(flags & (v > 1 ? 12288 : 4096)) * 4;\n if (flags & 16) {\n sidx = dv.getUint32(doff, true);\n doff += 4;\n }\n if (flags & 32) {\n ieee = dv.getFloat64(doff, true);\n doff += 8;\n }\n if (flags & 64) {\n dt.setTime(dt.getTime() + dv.getFloat64(doff, true) * 1e3);\n doff += 8;\n }\n if (v > 1) {\n flags = dv.getUint32(8, true) >>> 16;\n if (flags & 255) {\n if (zidx == -1)\n zidx = dv.getUint32(doff, true);\n doff += 4;\n }\n }\n var ret;\n var t = buf[v >= 4 ? 1 : 2];\n switch (t) {\n case 0:\n return void 0;\n case 2:\n ret = { t: \"n\", v: ieee };\n break;\n case 3:\n ret = { t: \"s\", v: lut.sst[sidx] };\n break;\n case 5:\n ret = { t: \"d\", v: dt };\n break;\n case 6:\n ret = { t: \"b\", v: ieee > 0 };\n break;\n case 7:\n ret = { t: \"n\", v: ieee };\n break;\n case 8:\n ret = { t: \"e\", v: 0 };\n break;\n case 9:\n {\n if (ridx > -1)\n ret = { t: \"s\", v: lut.rsst[ridx] };\n else\n throw new Error(\"Unsupported cell type \".concat(buf[subarray](0, 4)));\n }\n break;\n default:\n throw new Error(\"Unsupported cell type \".concat(buf[subarray](0, 4)));\n }\n if (zidx > -1)\n numbers_format_cell(ret, t | v << 8, flags, lut.ofmt[zidx], lut.nfmt[zidx]);\n if (t == 7)\n ret.v /= 86400;\n return ret;\n}\nfunction parse_new_storage(buf, lut) {\n var dv = u8_to_dataview(buf);\n var flags = dv.getUint32(4, true);\n var fields = dv.getUint32(8, true);\n var doff = 12;\n var ridx = -1, sidx = -1, zidx = -1, d128 = NaN, ieee = NaN, dt = new Date(2001, 0, 1);\n if (fields & 1) {\n d128 = readDecimal128LE(buf, doff);\n doff += 16;\n }\n if (fields & 2) {\n ieee = dv.getFloat64(doff, true);\n doff += 8;\n }\n if (fields & 4) {\n dt.setTime(dt.getTime() + dv.getFloat64(doff, true) * 1e3);\n doff += 8;\n }\n if (fields & 8) {\n sidx = dv.getUint32(doff, true);\n doff += 4;\n }\n if (fields & 16) {\n ridx = dv.getUint32(doff, true);\n doff += 4;\n }\n var ret;\n var t = buf[1];\n switch (t) {\n case 0:\n return void 0;\n case 2:\n ret = { t: \"n\", v: d128 };\n break;\n case 3:\n ret = { t: \"s\", v: lut.sst[sidx] };\n break;\n case 5:\n ret = { t: \"d\", v: dt };\n break;\n case 6:\n ret = { t: \"b\", v: ieee > 0 };\n break;\n case 7:\n ret = { t: \"n\", v: ieee };\n break;\n case 8:\n ret = { t: \"e\", v: 0 };\n break;\n case 9:\n ret = { t: \"s\", v: lut.rsst[ridx] };\n break;\n case 10:\n ret = { t: \"n\", v: d128 };\n break;\n default:\n throw new Error(\"Unsupported cell type \".concat(buf[1], \" : \").concat(fields & 31, \" : \").concat(buf[subarray](0, 4)));\n }\n doff += popcnt(fields & 8160) * 4;\n if (fields & 516096) {\n if (zidx == -1)\n zidx = dv.getUint32(doff, true);\n doff += 4;\n }\n if (zidx > -1)\n numbers_format_cell(ret, t | 5 << 8, fields >> 13, lut.ofmt[zidx], lut.nfmt[zidx]);\n if (t == 7)\n ret.v /= 86400;\n return ret;\n}\nfunction write_new_storage(cell, sst) {\n var out = new Uint8Array(32), dv = u8_to_dataview(out), l = 12, flags = 0;\n out[0] = 5;\n switch (cell.t) {\n case \"n\":\n out[1] = 2;\n writeDecimal128LE(out, l, cell.v);\n flags |= 1;\n l += 16;\n break;\n case \"b\":\n out[1] = 6;\n dv.setFloat64(l, cell.v ? 1 : 0, true);\n flags |= 2;\n l += 8;\n break;\n case \"s\":\n var s = cell.v == null ? \"\" : String(cell.v);\n var isst = sst.indexOf(s);\n if (isst == -1)\n sst[isst = sst.length] = s;\n out[1] = 3;\n dv.setUint32(l, isst, true);\n flags |= 8;\n l += 4;\n break;\n default:\n throw \"unsupported cell type \" + cell.t;\n }\n dv.setUint32(8, flags, true);\n return out[subarray](0, l);\n}\nfunction write_old_storage(cell, sst) {\n var out = new Uint8Array(32), dv = u8_to_dataview(out), l = 12, flags = 0;\n out[0] = 4;\n switch (cell.t) {\n case \"n\":\n out[2] = 2;\n dv.setFloat64(l, cell.v, true);\n flags |= 32;\n l += 8;\n break;\n case \"b\":\n out[2] = 6;\n dv.setFloat64(l, cell.v ? 1 : 0, true);\n flags |= 32;\n l += 8;\n break;\n case \"s\":\n var s = cell.v == null ? \"\" : String(cell.v);\n var isst = sst.indexOf(s);\n if (isst == -1)\n sst[isst = sst.length] = s;\n out[2] = 3;\n dv.setUint32(l, isst, true);\n flags |= 16;\n l += 4;\n break;\n default:\n throw \"unsupported cell type \" + cell.t;\n }\n dv.setUint32(8, flags, true);\n return out[subarray](0, l);\n}\nfunction parse_cell_storage(buf, lut) {\n switch (buf[0]) {\n case 0:\n case 1:\n case 2:\n case 3:\n case 4:\n return parse_old_storage(buf, lut, buf[0]);\n case 5:\n return parse_new_storage(buf, lut);\n default:\n throw new Error(\"Unsupported payload version \".concat(buf[0]));\n }\n}\nfunction parse_TSP_Reference(buf) {\n var pb = parse_shallow(buf);\n return varint_to_i32(pb[1][0].data);\n}\nfunction write_TSP_Reference(idx) {\n return write_shallow([\n [],\n [{ type: 0, data: write_varint49(idx) }]\n ]);\n}\nfunction numbers_add_oref(iwa, ref) {\n var _a;\n var orefs = ((_a = iwa.messages[0].meta[5]) == null ? void 0 : _a[0]) ? parse_packed_varints(iwa.messages[0].meta[5][0].data) : [];\n var orefidx = orefs.indexOf(ref);\n if (orefidx == -1) {\n orefs.push(ref);\n iwa.messages[0].meta[5] = [{ type: 2, data: write_packed_varints(orefs) }];\n }\n}\nfunction numbers_del_oref(iwa, ref) {\n var _a;\n var orefs = ((_a = iwa.messages[0].meta[5]) == null ? void 0 : _a[0]) ? parse_packed_varints(iwa.messages[0].meta[5][0].data) : [];\n iwa.messages[0].meta[5] = [{ type: 2, data: write_packed_varints(orefs.filter(function(r) {\n return r != ref;\n })) }];\n}\nfunction parse_TST_TableDataList(M, root) {\n var pb = parse_shallow(root.data);\n var type = varint_to_i32(pb[1][0].data);\n var entries = pb[3];\n var data = [];\n (entries || []).forEach(function(entry) {\n var le = parse_shallow(entry.data);\n if (!le[1])\n return;\n var key = varint_to_i32(le[1][0].data) >>> 0;\n switch (type) {\n case 1:\n data[key] = u8str(le[3][0].data);\n break;\n case 8:\n {\n var rt = M[parse_TSP_Reference(le[9][0].data)][0];\n var rtp = parse_shallow(rt.data);\n var rtpref = M[parse_TSP_Reference(rtp[1][0].data)][0];\n var mtype = varint_to_i32(rtpref.meta[1][0].data);\n if (mtype != 2001)\n throw new Error(\"2000 unexpected reference to \".concat(mtype));\n var tswpsa = parse_shallow(rtpref.data);\n data[key] = tswpsa[3].map(function(x) {\n return u8str(x.data);\n }).join(\"\");\n }\n break;\n case 2:\n data[key] = parse_shallow(le[6][0].data);\n break;\n default:\n throw type;\n }\n });\n return data;\n}\nfunction parse_TST_TileRowInfo(u8, type) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n;\n var pb = parse_shallow(u8);\n var R = varint_to_i32(pb[1][0].data) >>> 0;\n var cnt = varint_to_i32(pb[2][0].data) >>> 0;\n var wide_offsets = ((_b = (_a = pb[8]) == null ? void 0 : _a[0]) == null ? void 0 : _b.data) && varint_to_i32(pb[8][0].data) > 0 || false;\n var used_storage_u8, used_storage;\n if (((_d = (_c = pb[7]) == null ? void 0 : _c[0]) == null ? void 0 : _d.data) && type != 0) {\n used_storage_u8 = (_f = (_e = pb[7]) == null ? void 0 : _e[0]) == null ? void 0 : _f.data;\n used_storage = (_h = (_g = pb[6]) == null ? void 0 : _g[0]) == null ? void 0 : _h.data;\n } else if (((_j = (_i = pb[4]) == null ? void 0 : _i[0]) == null ? void 0 : _j.data) && type != 1) {\n used_storage_u8 = (_l = (_k = pb[4]) == null ? void 0 : _k[0]) == null ? void 0 : _l.data;\n used_storage = (_n = (_m = pb[3]) == null ? void 0 : _m[0]) == null ? void 0 : _n.data;\n } else\n throw \"NUMBERS Tile missing \".concat(type, \" cell storage\");\n var width = wide_offsets ? 4 : 1;\n var used_storage_offsets = u8_to_dataview(used_storage_u8);\n var offsets = [];\n for (var C = 0; C < used_storage_u8.length / 2; ++C) {\n var off = used_storage_offsets.getUint16(C * 2, true);\n if (off < 65535)\n offsets.push([C, off]);\n }\n if (offsets.length != cnt)\n throw \"Expected \".concat(cnt, \" cells, found \").concat(offsets.length);\n var cells = [];\n for (C = 0; C < offsets.length - 1; ++C)\n cells[offsets[C][0]] = used_storage[subarray](offsets[C][1] * width, offsets[C + 1][1] * width);\n if (offsets.length >= 1)\n cells[offsets[offsets.length - 1][0]] = used_storage[subarray](offsets[offsets.length - 1][1] * width);\n return { R: R, cells: cells };\n}\nfunction parse_TST_Tile(M, root) {\n var _a;\n var pb = parse_shallow(root.data);\n var storage = -1;\n if ((_a = pb == null ? void 0 : pb[7]) == null ? void 0 : _a[0]) {\n if (varint_to_i32(pb[7][0].data) >>> 0)\n storage = 1;\n else\n storage = 0;\n }\n var ri = mappa(pb[5], function(u8) {\n return parse_TST_TileRowInfo(u8, storage);\n });\n return {\n nrows: varint_to_i32(pb[4][0].data) >>> 0,\n data: ri.reduce(function(acc, x) {\n if (!acc[x.R])\n acc[x.R] = [];\n x.cells.forEach(function(cell, C) {\n if (acc[x.R][C])\n throw new Error(\"Duplicate cell r=\".concat(x.R, \" c=\").concat(C));\n acc[x.R][C] = cell;\n });\n return acc;\n }, [])\n };\n}\nfunction parse_TST_TableModelArchive(M, root, ws) {\n var _a, _b, _c, _d, _e, _f;\n var pb = parse_shallow(root.data);\n var range = { s: { r: 0, c: 0 }, e: { r: 0, c: 0 } };\n range.e.r = (varint_to_i32(pb[6][0].data) >>> 0) - 1;\n if (range.e.r < 0)\n throw new Error(\"Invalid row varint \".concat(pb[6][0].data));\n range.e.c = (varint_to_i32(pb[7][0].data) >>> 0) - 1;\n if (range.e.c < 0)\n throw new Error(\"Invalid col varint \".concat(pb[7][0].data));\n ws[\"!ref\"] = encode_range(range);\n var dense = ws[\"!data\"] != null, dws = ws;\n var store = parse_shallow(pb[4][0].data);\n var lut = numbers_lut_new();\n if ((_a = store[4]) == null ? void 0 : _a[0])\n lut.sst = parse_TST_TableDataList(M, M[parse_TSP_Reference(store[4][0].data)][0]);\n if ((_b = store[11]) == null ? void 0 : _b[0])\n lut.ofmt = parse_TST_TableDataList(M, M[parse_TSP_Reference(store[11][0].data)][0]);\n if ((_c = store[17]) == null ? void 0 : _c[0])\n lut.rsst = parse_TST_TableDataList(M, M[parse_TSP_Reference(store[17][0].data)][0]);\n if ((_d = store[22]) == null ? void 0 : _d[0])\n lut.nfmt = parse_TST_TableDataList(M, M[parse_TSP_Reference(store[22][0].data)][0]);\n var tile = parse_shallow(store[3][0].data);\n var _R = 0;\n tile[1].forEach(function(t) {\n var tl = parse_shallow(t.data);\n var ref2 = M[parse_TSP_Reference(tl[2][0].data)][0];\n var mtype2 = varint_to_i32(ref2.meta[1][0].data);\n if (mtype2 != 6002)\n throw new Error(\"6001 unexpected reference to \".concat(mtype2));\n var _tile = parse_TST_Tile(M, ref2);\n _tile.data.forEach(function(row, R) {\n row.forEach(function(buf, C) {\n var res = parse_cell_storage(buf, lut);\n if (res) {\n if (dense) {\n if (!dws[\"!data\"][_R + R])\n dws[\"!data\"][_R + R] = [];\n dws[\"!data\"][_R + R][C] = res;\n } else {\n ws[encode_col(C) + encode_row(_R + R)] = res;\n }\n }\n });\n });\n _R += _tile.nrows;\n });\n if ((_e = store[13]) == null ? void 0 : _e[0]) {\n var ref = M[parse_TSP_Reference(store[13][0].data)][0];\n var mtype = varint_to_i32(ref.meta[1][0].data);\n if (mtype != 6144)\n throw new Error(\"Expected merge type 6144, found \".concat(mtype));\n ws[\"!merges\"] = (_f = parse_shallow(ref.data)) == null ? void 0 : _f[1].map(function(pi) {\n var merge = parse_shallow(pi.data);\n var origin = u8_to_dataview(parse_shallow(merge[1][0].data)[1][0].data), size = u8_to_dataview(parse_shallow(merge[2][0].data)[1][0].data);\n return {\n s: { r: origin.getUint16(0, true), c: origin.getUint16(2, true) },\n e: {\n r: origin.getUint16(0, true) + size.getUint16(0, true) - 1,\n c: origin.getUint16(2, true) + size.getUint16(2, true) - 1\n }\n };\n });\n }\n}\nfunction parse_TST_TableInfoArchive(M, root, opts) {\n var pb = parse_shallow(root.data);\n var out = { \"!ref\": \"A1\" };\n if (opts == null ? void 0 : opts.dense)\n out[\"!data\"] = [];\n var tableref = M[parse_TSP_Reference(pb[2][0].data)];\n var mtype = varint_to_i32(tableref[0].meta[1][0].data);\n if (mtype != 6001)\n throw new Error(\"6000 unexpected reference to \".concat(mtype));\n parse_TST_TableModelArchive(M, tableref[0], out);\n return out;\n}\nfunction parse_TN_SheetArchive(M, root, opts) {\n var _a;\n var pb = parse_shallow(root.data);\n var out = {\n name: ((_a = pb[1]) == null ? void 0 : _a[0]) ? u8str(pb[1][0].data) : \"\",\n sheets: []\n };\n var shapeoffs = mappa(pb[2], parse_TSP_Reference);\n shapeoffs.forEach(function(off) {\n M[off].forEach(function(m) {\n var mtype = varint_to_i32(m.meta[1][0].data);\n if (mtype == 6e3)\n out.sheets.push(parse_TST_TableInfoArchive(M, m, opts));\n });\n });\n return out;\n}\nfunction parse_TN_DocumentArchive(M, root, opts) {\n var _a;\n var out = book_new();\n var pb = parse_shallow(root.data);\n if ((_a = pb[2]) == null ? void 0 : _a[0])\n throw new Error(\"Keynote presentations are not supported\");\n var sheetoffs = mappa(pb[1], parse_TSP_Reference);\n sheetoffs.forEach(function(off) {\n M[off].forEach(function(m) {\n var mtype = varint_to_i32(m.meta[1][0].data);\n if (mtype == 2) {\n var root2 = parse_TN_SheetArchive(M, m, opts);\n root2.sheets.forEach(function(sheet, idx) {\n book_append_sheet(out, sheet, idx == 0 ? root2.name : root2.name + \"_\" + idx, true);\n });\n }\n });\n });\n if (out.SheetNames.length == 0)\n throw new Error(\"Empty NUMBERS file\");\n out.bookType = \"numbers\";\n return out;\n}\nfunction parse_numbers_iwa(cfb, opts) {\n var _a, _b, _c, _d, _e, _f, _g;\n var M = {}, indices = [];\n cfb.FullPaths.forEach(function(p) {\n if (p.match(/\\.iwpv2/))\n throw new Error(\"Unsupported password protection\");\n });\n cfb.FileIndex.forEach(function(s) {\n if (!s.name.match(/\\.iwa$/))\n return;\n if (s.content[0] != 0)\n return;\n var o;\n try {\n o = decompress_iwa_file(s.content);\n } catch (e) {\n return console.log(\"?? \" + s.content.length + \" \" + (e.message || e));\n }\n var packets;\n try {\n packets = parse_iwa_file(o);\n } catch (e) {\n return console.log(\"## \" + (e.message || e));\n }\n packets.forEach(function(packet) {\n M[packet.id] = packet.messages;\n indices.push(packet.id);\n });\n });\n if (!indices.length)\n throw new Error(\"File has no messages\");\n if (((_c = (_b = (_a = M == null ? void 0 : M[1]) == null ? void 0 : _a[0].meta) == null ? void 0 : _b[1]) == null ? void 0 : _c[0].data) && varint_to_i32(M[1][0].meta[1][0].data) == 1e4)\n throw new Error(\"Pages documents are not supported\");\n var docroot = ((_g = (_f = (_e = (_d = M == null ? void 0 : M[1]) == null ? void 0 : _d[0]) == null ? void 0 : _e.meta) == null ? void 0 : _f[1]) == null ? void 0 : _g[0].data) && varint_to_i32(M[1][0].meta[1][0].data) == 1 && M[1][0];\n if (!docroot)\n indices.forEach(function(idx) {\n M[idx].forEach(function(iwam) {\n var mtype = varint_to_i32(iwam.meta[1][0].data) >>> 0;\n if (mtype == 1) {\n if (!docroot)\n docroot = iwam;\n else\n throw new Error(\"Document has multiple roots\");\n }\n });\n });\n if (!docroot)\n throw new Error(\"Cannot find Document root\");\n return parse_TN_DocumentArchive(M, docroot, opts);\n}\nfunction write_TST_TileRowInfo(data, SST, wide) {\n var _a, _b;\n var tri = [\n [],\n [{ type: 0, data: write_varint49(0) }],\n [{ type: 0, data: write_varint49(0) }],\n [{ type: 2, data: new Uint8Array([]) }],\n [{ type: 2, data: new Uint8Array(Array.from({ length: 510 }, function() {\n return 255;\n })) }],\n [{ type: 0, data: write_varint49(5) }],\n [{ type: 2, data: new Uint8Array([]) }],\n [{ type: 2, data: new Uint8Array(Array.from({ length: 510 }, function() {\n return 255;\n })) }],\n [{ type: 0, data: write_varint49(1) }]\n ];\n if (!((_a = tri[6]) == null ? void 0 : _a[0]) || !((_b = tri[7]) == null ? void 0 : _b[0]))\n throw \"Mutation only works on post-BNC storages!\";\n var cnt = 0;\n if (tri[7][0].data.length < 2 * data.length) {\n var new_7 = new Uint8Array(2 * data.length);\n new_7.set(tri[7][0].data);\n tri[7][0].data = new_7;\n }\n if (tri[4][0].data.length < 2 * data.length) {\n var new_4 = new Uint8Array(2 * data.length);\n new_4.set(tri[4][0].data);\n tri[4][0].data = new_4;\n }\n var dv = u8_to_dataview(tri[7][0].data), last_offset = 0, cell_storage = [];\n var _dv = u8_to_dataview(tri[4][0].data), _last_offset = 0, _cell_storage = [];\n var width = wide ? 4 : 1;\n for (var C = 0; C < data.length; ++C) {\n if (data[C] == null) {\n dv.setUint16(C * 2, 65535, true);\n _dv.setUint16(C * 2, 65535);\n continue;\n }\n dv.setUint16(C * 2, last_offset / width, true);\n _dv.setUint16(C * 2, _last_offset / width, true);\n var celload, _celload;\n switch (typeof data[C]) {\n case \"string\":\n celload = write_new_storage({ t: \"s\", v: data[C] }, SST);\n _celload = write_old_storage({ t: \"s\", v: data[C] }, SST);\n break;\n case \"number\":\n celload = write_new_storage({ t: \"n\", v: data[C] }, SST);\n _celload = write_old_storage({ t: \"n\", v: data[C] }, SST);\n break;\n case \"boolean\":\n celload = write_new_storage({ t: \"b\", v: data[C] }, SST);\n _celload = write_old_storage({ t: \"b\", v: data[C] }, SST);\n break;\n default:\n if (data[C] instanceof Date) {\n celload = write_new_storage({ t: \"s\", v: data[C].toISOString() }, SST);\n _celload = write_old_storage({ t: \"s\", v: data[C].toISOString() }, SST);\n break;\n }\n throw new Error(\"Unsupported value \" + data[C]);\n }\n cell_storage.push(celload);\n last_offset += celload.length;\n {\n _cell_storage.push(_celload);\n _last_offset += _celload.length;\n }\n ++cnt;\n }\n tri[2][0].data = write_varint49(cnt);\n tri[5][0].data = write_varint49(5);\n for (; C < tri[7][0].data.length / 2; ++C) {\n dv.setUint16(C * 2, 65535, true);\n _dv.setUint16(C * 2, 65535, true);\n }\n tri[6][0].data = u8concat(cell_storage);\n tri[3][0].data = u8concat(_cell_storage);\n tri[8] = [{ type: 0, data: write_varint49(wide ? 1 : 0) }];\n return tri;\n}\nfunction write_iwam(type, payload) {\n return {\n meta: [\n [],\n [{ type: 0, data: write_varint49(type) }]\n ],\n data: payload\n };\n}\nfunction get_unique_msgid(dep, dependents) {\n if (!dependents.last)\n dependents.last = 927262;\n for (var i = dependents.last; i < 2e6; ++i)\n if (!dependents[i]) {\n dependents[dependents.last = i] = dep;\n return i;\n }\n throw new Error(\"Too many messages\");\n}\nfunction build_numbers_deps(cfb) {\n var dependents = {};\n var indices = [];\n cfb.FileIndex.map(function(fi, idx) {\n return [fi, cfb.FullPaths[idx]];\n }).forEach(function(row) {\n var fi = row[0], fp = row[1];\n if (fi.type != 2)\n return;\n if (!fi.name.match(/\\.iwa/))\n return;\n if (fi.content[0] != 0)\n return;\n parse_iwa_file(decompress_iwa_file(fi.content)).forEach(function(packet) {\n indices.push(packet.id);\n dependents[packet.id] = { deps: [], location: fp, type: varint_to_i32(packet.messages[0].meta[1][0].data) };\n });\n });\n cfb.FileIndex.forEach(function(fi) {\n if (!fi.name.match(/\\.iwa/))\n return;\n if (fi.content[0] != 0)\n return;\n parse_iwa_file(decompress_iwa_file(fi.content)).forEach(function(ia) {\n ia.messages.forEach(function(mess) {\n [5, 6].forEach(function(f) {\n if (!mess.meta[f])\n return;\n mess.meta[f].forEach(function(x) {\n dependents[ia.id].deps.push(varint_to_i32(x.data));\n });\n });\n });\n });\n });\n return dependents;\n}\nfunction write_numbers_iwa(wb, opts) {\n if (!opts || !opts.numbers)\n throw new Error(\"Must pass a `numbers` option -- check the README\");\n var cfb = CFB.read(opts.numbers, { type: \"base64\" });\n var deps = build_numbers_deps(cfb);\n var docroot = numbers_iwa_find(cfb, deps, 1);\n if (docroot == null)\n throw \"Could not find message \".concat(1, \" in Numbers template\");\n var sheetrefs = mappa(parse_shallow(docroot.messages[0].data)[1], parse_TSP_Reference);\n if (sheetrefs.length > 1)\n throw new Error(\"Template NUMBERS file must have exactly one sheet\");\n wb.SheetNames.forEach(function(name, idx) {\n if (idx >= 1) {\n numbers_add_ws(cfb, deps, idx + 1);\n docroot = numbers_iwa_find(cfb, deps, 1);\n sheetrefs = mappa(parse_shallow(docroot.messages[0].data)[1], parse_TSP_Reference);\n }\n write_numbers_ws(cfb, deps, wb.Sheets[name], name, idx, sheetrefs[idx]);\n });\n return cfb;\n}\nfunction numbers_iwa_doit(cfb, deps, id, cb) {\n var entry = CFB.find(cfb, deps[id].location);\n if (!entry)\n throw \"Could not find \".concat(deps[id].location, \" in Numbers template\");\n var x = parse_iwa_file(decompress_iwa_file(entry.content));\n var ainfo = x.find(function(packet) {\n return packet.id == id;\n });\n cb(ainfo, x);\n entry.content = compress_iwa_file(write_iwa_file(x));\n entry.size = entry.content.length;\n}\nfunction numbers_iwa_find(cfb, deps, id) {\n var entry = CFB.find(cfb, deps[id].location);\n if (!entry)\n throw \"Could not find \".concat(deps[id].location, \" in Numbers template\");\n var x = parse_iwa_file(decompress_iwa_file(entry.content));\n var ainfo = x.find(function(packet) {\n return packet.id == id;\n });\n return ainfo;\n}\nfunction numbers_add_ws(cfb, deps, wsidx) {\n var sheetref = -1, newsheetref = -1;\n var remap = {};\n numbers_iwa_doit(cfb, deps, 1, function(docroot, arch) {\n var doc = parse_shallow(docroot.messages[0].data);\n sheetref = parse_TSP_Reference(parse_shallow(docroot.messages[0].data)[1][0].data);\n newsheetref = get_unique_msgid({ deps: [1], location: deps[sheetref].location, type: 2 }, deps);\n remap[sheetref] = newsheetref;\n numbers_add_oref(docroot, newsheetref);\n doc[1].push({ type: 2, data: write_TSP_Reference(newsheetref) });\n var sheet = numbers_iwa_find(cfb, deps, sheetref);\n sheet.id = newsheetref;\n if (deps[1].location == deps[newsheetref].location)\n arch.push(sheet);\n else\n numbers_iwa_doit(cfb, deps, newsheetref, function(_, x) {\n return x.push(sheet);\n });\n docroot.messages[0].data = write_shallow(doc);\n });\n var tiaref = -1;\n numbers_iwa_doit(cfb, deps, newsheetref, function(sheetroot, arch) {\n var sa = parse_shallow(sheetroot.messages[0].data);\n for (var i = 3; i <= 69; ++i)\n delete sa[i];\n var drawables = mappa(sa[2], parse_TSP_Reference);\n drawables.forEach(function(n) {\n return numbers_del_oref(sheetroot, n);\n });\n tiaref = get_unique_msgid({ deps: [newsheetref], location: deps[drawables[0]].location, type: deps[drawables[0]].type }, deps);\n numbers_add_oref(sheetroot, tiaref);\n remap[drawables[0]] = tiaref;\n sa[2] = [{ type: 2, data: write_TSP_Reference(tiaref) }];\n var tia = numbers_iwa_find(cfb, deps, drawables[0]);\n tia.id = tiaref;\n if (deps[drawables[0]].location == deps[newsheetref].location)\n arch.push(tia);\n else {\n var loc2 = deps[newsheetref].location;\n loc2 = loc2.replace(/^Root Entry\\//, \"\");\n loc2 = loc2.replace(/^Index\\//, \"\").replace(/\\.iwa$/, \"\");\n numbers_iwa_doit(cfb, deps, 2, function(ai) {\n var mlist = parse_shallow(ai.messages[0].data);\n var parentidx = mlist[3].findIndex(function(m) {\n var _a, _b;\n var mm = parse_shallow(m.data);\n if ((_a = mm[3]) == null ? void 0 : _a[0])\n return u8str(mm[3][0].data) == loc2;\n if (((_b = mm[2]) == null ? void 0 : _b[0]) && u8str(mm[2][0].data) == loc2)\n return true;\n return false;\n });\n var parent = parse_shallow(mlist[3][parentidx].data);\n if (!parent[6])\n parent[6] = [];\n parent[6].push({\n type: 2,\n data: write_shallow([\n [],\n [{ type: 0, data: write_varint49(tiaref) }]\n ])\n });\n mlist[3][parentidx].data = write_shallow(parent);\n ai.messages[0].data = write_shallow(mlist);\n });\n numbers_iwa_doit(cfb, deps, tiaref, function(_, x) {\n return x.push(tia);\n });\n }\n sheetroot.messages[0].data = write_shallow(sa);\n });\n var tmaref = -1;\n numbers_iwa_doit(cfb, deps, tiaref, function(tiaroot, arch) {\n var tia = parse_shallow(tiaroot.messages[0].data);\n var da = parse_shallow(tia[1][0].data);\n for (var i = 3; i <= 69; ++i)\n delete da[i];\n var dap = parse_TSP_Reference(da[2][0].data);\n da[2][0].data = write_TSP_Reference(remap[dap]);\n tia[1][0].data = write_shallow(da);\n var oldtmaref = parse_TSP_Reference(tia[2][0].data);\n numbers_del_oref(tiaroot, oldtmaref);\n tmaref = get_unique_msgid({ deps: [tiaref], location: deps[oldtmaref].location, type: deps[oldtmaref].type }, deps);\n numbers_add_oref(tiaroot, tmaref);\n remap[oldtmaref] = tmaref;\n tia[2][0].data = write_TSP_Reference(tmaref);\n var tma = numbers_iwa_find(cfb, deps, oldtmaref);\n tma.id = tmaref;\n if (deps[tiaref].location == deps[tmaref].location)\n arch.push(tma);\n else\n numbers_iwa_doit(cfb, deps, tmaref, function(_, x) {\n return x.push(tma);\n });\n tiaroot.messages[0].data = write_shallow(tia);\n });\n var loc = deps[tmaref].location;\n loc = loc.replace(/^Root Entry\\//, \"\");\n loc = loc.replace(/^Index\\//, \"\").replace(/\\.iwa$/, \"\");\n numbers_iwa_doit(cfb, deps, tmaref, function(tmaroot, arch) {\n var _a, _b;\n var tma = parse_shallow(tmaroot.messages[0].data);\n var uuid = u8str(tma[1][0].data), new_uuid = uuid.replace(/-[A-Z0-9]*/, \"-\".concat(wsidx.toString(16).padStart(4, \"0\")));\n tma[1][0].data = stru8(new_uuid);\n [12, 13, 29, 31, 32, 33, 39, 44, 47, 81, 82, 84].forEach(function(n) {\n return delete tma[n];\n });\n if (tma[45]) {\n var srrta = parse_shallow(tma[45][0].data);\n var ref = parse_TSP_Reference(srrta[1][0].data);\n numbers_del_oref(tmaroot, ref);\n delete tma[45];\n }\n if (tma[70]) {\n var hsoa = parse_shallow(tma[70][0].data);\n (_a = hsoa[2]) == null ? void 0 : _a.forEach(function(item) {\n var hsa = parse_shallow(item.data);\n [2, 3].map(function(n) {\n return hsa[n][0];\n }).forEach(function(hseadata) {\n var hsea = parse_shallow(hseadata.data);\n if (!hsea[8])\n return;\n var ref2 = parse_TSP_Reference(hsea[8][0].data);\n numbers_del_oref(tmaroot, ref2);\n });\n });\n delete tma[70];\n }\n [\n 46,\n 30,\n 34,\n 35,\n 36,\n 38,\n 48,\n 49,\n 60,\n 61,\n 62,\n 63,\n 64,\n 71,\n 72,\n 73,\n 74,\n 75,\n 85,\n 86,\n 87,\n 88,\n 89\n ].forEach(function(n) {\n if (!tma[n])\n return;\n var ref2 = parse_TSP_Reference(tma[n][0].data);\n delete tma[n];\n numbers_del_oref(tmaroot, ref2);\n });\n var store = parse_shallow(tma[4][0].data);\n {\n [2, 4, 5, 6, 11, 12, 13, 15, 16, 17, 18, 19, 20, 21, 22].forEach(function(n) {\n var _a2;\n if (!((_a2 = store[n]) == null ? void 0 : _a2[0]))\n return;\n var oldref = parse_TSP_Reference(store[n][0].data);\n var newref = get_unique_msgid({ deps: [tmaref], location: deps[oldref].location, type: deps[oldref].type }, deps);\n numbers_del_oref(tmaroot, oldref);\n numbers_add_oref(tmaroot, newref);\n remap[oldref] = newref;\n var msg = numbers_iwa_find(cfb, deps, oldref);\n msg.id = newref;\n if (deps[oldref].location == deps[tmaref].location)\n arch.push(msg);\n else {\n deps[newref].location = deps[oldref].location.replace(oldref.toString(), newref.toString());\n if (deps[newref].location == deps[oldref].location)\n deps[newref].location = deps[newref].location.replace(/\\.iwa/, \"-\".concat(newref, \".iwa\"));\n CFB.utils.cfb_add(cfb, deps[newref].location, compress_iwa_file(write_iwa_file([msg])));\n var newloc = deps[newref].location;\n newloc = newloc.replace(/^Root Entry\\//, \"\");\n newloc = newloc.replace(/^Index\\//, \"\").replace(/\\.iwa$/, \"\");\n numbers_iwa_doit(cfb, deps, 2, function(ai) {\n var mlist = parse_shallow(ai.messages[0].data);\n mlist[3].push({ type: 2, data: write_shallow([\n [],\n [{ type: 0, data: write_varint49(newref) }],\n [{ type: 2, data: stru8(newloc.replace(/-.*$/, \"\")) }],\n [{ type: 2, data: stru8(newloc) }],\n [{ type: 2, data: new Uint8Array([2, 0, 0]) }],\n [{ type: 2, data: new Uint8Array([2, 0, 0]) }],\n [],\n [],\n [],\n [],\n [{ type: 0, data: write_varint49(0) }],\n [],\n [{ type: 0, data: write_varint49(0) }]\n ]) });\n mlist[1] = [{ type: 0, data: write_varint49(Math.max(newref + 1, varint_to_i32(mlist[1][0].data))) }];\n var parentidx = mlist[3].findIndex(function(m) {\n var _a3, _b2;\n var mm = parse_shallow(m.data);\n if ((_a3 = mm[3]) == null ? void 0 : _a3[0])\n return u8str(mm[3][0].data) == loc;\n if (((_b2 = mm[2]) == null ? void 0 : _b2[0]) && u8str(mm[2][0].data) == loc)\n return true;\n return false;\n });\n var parent = parse_shallow(mlist[3][parentidx].data);\n if (!parent[6])\n parent[6] = [];\n parent[6].push({\n type: 2,\n data: write_shallow([\n [],\n [{ type: 0, data: write_varint49(newref) }]\n ])\n });\n mlist[3][parentidx].data = write_shallow(parent);\n ai.messages[0].data = write_shallow(mlist);\n });\n }\n store[n][0].data = write_TSP_Reference(newref);\n });\n var row_headers = parse_shallow(store[1][0].data);\n {\n (_b = row_headers[2]) == null ? void 0 : _b.forEach(function(tspref) {\n var oldref = parse_TSP_Reference(tspref.data);\n var newref = get_unique_msgid({ deps: [tmaref], location: deps[oldref].location, type: deps[oldref].type }, deps);\n numbers_del_oref(tmaroot, oldref);\n numbers_add_oref(tmaroot, newref);\n remap[oldref] = newref;\n var msg = numbers_iwa_find(cfb, deps, oldref);\n msg.id = newref;\n if (deps[oldref].location == deps[tmaref].location) {\n arch.push(msg);\n } else {\n deps[newref].location = deps[oldref].location.replace(oldref.toString(), newref.toString());\n if (deps[newref].location == deps[oldref].location)\n deps[newref].location = deps[newref].location.replace(/\\.iwa/, \"-\".concat(newref, \".iwa\"));\n CFB.utils.cfb_add(cfb, deps[newref].location, compress_iwa_file(write_iwa_file([msg])));\n var newloc = deps[newref].location;\n newloc = newloc.replace(/^Root Entry\\//, \"\");\n newloc = newloc.replace(/^Index\\//, \"\").replace(/\\.iwa$/, \"\");\n numbers_iwa_doit(cfb, deps, 2, function(ai) {\n var mlist = parse_shallow(ai.messages[0].data);\n mlist[3].push({ type: 2, data: write_shallow([\n [],\n [{ type: 0, data: write_varint49(newref) }],\n [{ type: 2, data: stru8(newloc.replace(/-.*$/, \"\")) }],\n [{ type: 2, data: stru8(newloc) }],\n [{ type: 2, data: new Uint8Array([2, 0, 0]) }],\n [{ type: 2, data: new Uint8Array([2, 0, 0]) }],\n [],\n [],\n [],\n [],\n [{ type: 0, data: write_varint49(0) }],\n [],\n [{ type: 0, data: write_varint49(0) }]\n ]) });\n mlist[1] = [{ type: 0, data: write_varint49(Math.max(newref + 1, varint_to_i32(mlist[1][0].data))) }];\n var parentidx = mlist[3].findIndex(function(m) {\n var _a2, _b2;\n var mm = parse_shallow(m.data);\n if ((_a2 = mm[3]) == null ? void 0 : _a2[0])\n return u8str(mm[3][0].data) == loc;\n if (((_b2 = mm[2]) == null ? void 0 : _b2[0]) && u8str(mm[2][0].data) == loc)\n return true;\n return false;\n });\n var parent = parse_shallow(mlist[3][parentidx].data);\n if (!parent[6])\n parent[6] = [];\n parent[6].push({\n type: 2,\n data: write_shallow([\n [],\n [{ type: 0, data: write_varint49(newref) }]\n ])\n });\n mlist[3][parentidx].data = write_shallow(parent);\n ai.messages[0].data = write_shallow(mlist);\n });\n }\n tspref.data = write_TSP_Reference(newref);\n });\n }\n store[1][0].data = write_shallow(row_headers);\n var tiles = parse_shallow(store[3][0].data);\n {\n tiles[1].forEach(function(t) {\n var tst = parse_shallow(t.data);\n var oldtileref = parse_TSP_Reference(tst[2][0].data);\n var newtileref = remap[oldtileref];\n if (!remap[oldtileref]) {\n newtileref = get_unique_msgid({ deps: [tmaref], location: \"\", type: deps[oldtileref].type }, deps);\n deps[newtileref].location = \"Root Entry/Index/Tables/Tile-\".concat(newtileref, \".iwa\");\n remap[oldtileref] = newtileref;\n var oldtile = numbers_iwa_find(cfb, deps, oldtileref);\n oldtile.id = newtileref;\n numbers_del_oref(tmaroot, oldtileref);\n numbers_add_oref(tmaroot, newtileref);\n CFB.utils.cfb_add(cfb, \"/Index/Tables/Tile-\".concat(newtileref, \".iwa\"), compress_iwa_file(write_iwa_file([oldtile])));\n numbers_iwa_doit(cfb, deps, 2, function(ai) {\n var mlist = parse_shallow(ai.messages[0].data);\n mlist[3].push({ type: 2, data: write_shallow([\n [],\n [{ type: 0, data: write_varint49(newtileref) }],\n [{ type: 2, data: stru8(\"Tables/Tile\") }],\n [{ type: 2, data: stru8(\"Tables/Tile-\".concat(newtileref)) }],\n [{ type: 2, data: new Uint8Array([2, 0, 0]) }],\n [{ type: 2, data: new Uint8Array([2, 0, 0]) }],\n [],\n [],\n [],\n [],\n [{ type: 0, data: write_varint49(0) }],\n [],\n [{ type: 0, data: write_varint49(0) }]\n ]) });\n mlist[1] = [{ type: 0, data: write_varint49(Math.max(newtileref + 1, varint_to_i32(mlist[1][0].data))) }];\n var parentidx = mlist[3].findIndex(function(m) {\n var _a2, _b2;\n var mm = parse_shallow(m.data);\n if ((_a2 = mm[3]) == null ? void 0 : _a2[0])\n return u8str(mm[3][0].data) == loc;\n if (((_b2 = mm[2]) == null ? void 0 : _b2[0]) && u8str(mm[2][0].data) == loc)\n return true;\n return false;\n });\n var parent = parse_shallow(mlist[3][parentidx].data);\n if (!parent[6])\n parent[6] = [];\n parent[6].push({\n type: 2,\n data: write_shallow([\n [],\n [{ type: 0, data: write_varint49(newtileref) }]\n ])\n });\n mlist[3][parentidx].data = write_shallow(parent);\n ai.messages[0].data = write_shallow(mlist);\n });\n }\n tst[2][0].data = write_TSP_Reference(newtileref);\n t.data = write_shallow(tst);\n });\n }\n store[3][0].data = write_shallow(tiles);\n }\n tma[4][0].data = write_shallow(store);\n tmaroot.messages[0].data = write_shallow(tma);\n });\n}\nfunction write_numbers_ws(cfb, deps, ws, wsname, sheetidx, rootref) {\n var drawables = [];\n numbers_iwa_doit(cfb, deps, rootref, function(docroot) {\n var sheetref = parse_shallow(docroot.messages[0].data);\n {\n sheetref[1] = [{ type: 2, data: stru8(wsname) }];\n drawables = mappa(sheetref[2], parse_TSP_Reference);\n }\n docroot.messages[0].data = write_shallow(sheetref);\n });\n var tia = numbers_iwa_find(cfb, deps, drawables[0]);\n var tmaref = parse_TSP_Reference(parse_shallow(tia.messages[0].data)[2][0].data);\n numbers_iwa_doit(cfb, deps, tmaref, function(docroot, x) {\n return write_numbers_tma(cfb, deps, ws, docroot, x, tmaref);\n });\n}\nvar USE_WIDE_ROWS = true;\nfunction write_numbers_tma(cfb, deps, ws, tmaroot, tmafile, tmaref) {\n var range = decode_range(ws[\"!ref\"]);\n range.s.r = range.s.c = 0;\n var trunc = false;\n if (range.e.c > 999) {\n trunc = true;\n range.e.c = 999;\n }\n if (range.e.r > 999999) {\n trunc = true;\n range.e.r = 999999;\n }\n if (trunc)\n console.error(\"Truncating to \".concat(encode_range(range)));\n var data = sheet_to_json(ws, { range: range, header: 1 });\n var SST = [\"~Sh33tJ5~\"];\n var loc = deps[tmaref].location;\n loc = loc.replace(/^Root Entry\\//, \"\");\n loc = loc.replace(/^Index\\//, \"\").replace(/\\.iwa$/, \"\");\n var pb = parse_shallow(tmaroot.messages[0].data);\n {\n pb[6][0].data = write_varint49(range.e.r + 1);\n pb[7][0].data = write_varint49(range.e.c + 1);\n delete pb[46];\n var store = parse_shallow(pb[4][0].data);\n {\n var row_header_ref = parse_TSP_Reference(parse_shallow(store[1][0].data)[2][0].data);\n numbers_iwa_doit(cfb, deps, row_header_ref, function(rowhead, _x) {\n var _a;\n var base_bucket = parse_shallow(rowhead.messages[0].data);\n if ((_a = base_bucket == null ? void 0 : base_bucket[2]) == null ? void 0 : _a[0])\n for (var R2 = 0; R2 < data.length; ++R2) {\n var _bucket = parse_shallow(base_bucket[2][0].data);\n _bucket[1][0].data = write_varint49(R2);\n _bucket[4][0].data = write_varint49(data[R2].length);\n base_bucket[2][R2] = { type: base_bucket[2][0].type, data: write_shallow(_bucket) };\n }\n rowhead.messages[0].data = write_shallow(base_bucket);\n });\n var col_header_ref = parse_TSP_Reference(store[2][0].data);\n numbers_iwa_doit(cfb, deps, col_header_ref, function(colhead, _x) {\n var base_bucket = parse_shallow(colhead.messages[0].data);\n for (var C = 0; C <= range.e.c; ++C) {\n var _bucket = parse_shallow(base_bucket[2][0].data);\n _bucket[1][0].data = write_varint49(C);\n _bucket[4][0].data = write_varint49(range.e.r + 1);\n base_bucket[2][C] = { type: base_bucket[2][0].type, data: write_shallow(_bucket) };\n }\n colhead.messages[0].data = write_shallow(base_bucket);\n });\n var rbtree = parse_shallow(store[9][0].data);\n rbtree[1] = [];\n var tilestore = parse_shallow(store[3][0].data);\n {\n var tstride = 256;\n tilestore[2] = [{ type: 0, data: write_varint49(tstride) }];\n var tileref = parse_TSP_Reference(parse_shallow(tilestore[1][0].data)[2][0].data);\n var save_token = function() {\n var metadata = numbers_iwa_find(cfb, deps, 2);\n var mlist = parse_shallow(metadata.messages[0].data);\n var mlst = mlist[3].filter(function(m) {\n return varint_to_i32(parse_shallow(m.data)[1][0].data) == tileref;\n });\n return (mlst == null ? void 0 : mlst.length) ? varint_to_i32(parse_shallow(mlst[0].data)[12][0].data) : 0;\n }();\n {\n CFB.utils.cfb_del(cfb, deps[tileref].location);\n numbers_iwa_doit(cfb, deps, 2, function(ai) {\n var mlist = parse_shallow(ai.messages[0].data);\n mlist[3] = mlist[3].filter(function(m) {\n return varint_to_i32(parse_shallow(m.data)[1][0].data) != tileref;\n });\n var parentidx = mlist[3].findIndex(function(m) {\n var _a, _b;\n var mm = parse_shallow(m.data);\n if ((_a = mm[3]) == null ? void 0 : _a[0])\n return u8str(mm[3][0].data) == loc;\n if (((_b = mm[2]) == null ? void 0 : _b[0]) && u8str(mm[2][0].data) == loc)\n return true;\n return false;\n });\n var parent = parse_shallow(mlist[3][parentidx].data);\n if (!parent[6])\n parent[6] = [];\n parent[6] = parent[6].filter(function(m) {\n return varint_to_i32(parse_shallow(m.data)[1][0].data) != tileref;\n });\n mlist[3][parentidx].data = write_shallow(parent);\n ai.messages[0].data = write_shallow(mlist);\n });\n numbers_del_oref(tmaroot, tileref);\n }\n tilestore[1] = [];\n var ntiles = Math.ceil((range.e.r + 1) / tstride);\n for (var tidx = 0; tidx < ntiles; ++tidx) {\n var newtileid = get_unique_msgid({\n deps: [],\n location: \"\",\n type: 6002\n }, deps);\n deps[newtileid].location = \"Root Entry/Index/Tables/Tile-\".concat(newtileid, \".iwa\");\n var tiledata = [\n [],\n [{ type: 0, data: write_varint49(0) }],\n [{ type: 0, data: write_varint49(Math.min(range.e.r + 1, (tidx + 1) * tstride)) }],\n [{ type: 0, data: write_varint49(0) }],\n [{ type: 0, data: write_varint49(Math.min((tidx + 1) * tstride, range.e.r + 1) - tidx * tstride) }],\n [],\n [{ type: 0, data: write_varint49(5) }],\n [{ type: 0, data: write_varint49(1) }],\n [{ type: 0, data: write_varint49(USE_WIDE_ROWS ? 1 : 0) }]\n ];\n for (var R = tidx * tstride; R <= Math.min(range.e.r, (tidx + 1) * tstride - 1); ++R) {\n var tilerow = write_TST_TileRowInfo(data[R], SST, USE_WIDE_ROWS);\n tilerow[1][0].data = write_varint49(R - tidx * tstride);\n tiledata[5].push({ data: write_shallow(tilerow), type: 2 });\n }\n tilestore[1].push({ type: 2, data: write_shallow([\n [],\n [{ type: 0, data: write_varint49(tidx) }],\n [{ type: 2, data: write_TSP_Reference(newtileid) }]\n ]) });\n var newtile = {\n id: newtileid,\n messages: [write_iwam(6002, write_shallow(tiledata))]\n };\n var tilecontent = compress_iwa_file(write_iwa_file([newtile]));\n CFB.utils.cfb_add(cfb, \"/Index/Tables/Tile-\".concat(newtileid, \".iwa\"), tilecontent);\n numbers_iwa_doit(cfb, deps, 2, function(ai) {\n var mlist = parse_shallow(ai.messages[0].data);\n mlist[3].push({ type: 2, data: write_shallow([\n [],\n [{ type: 0, data: write_varint49(newtileid) }],\n [{ type: 2, data: stru8(\"Tables/Tile\") }],\n [{ type: 2, data: stru8(\"Tables/Tile-\".concat(newtileid)) }],\n [{ type: 2, data: new Uint8Array([2, 0, 0]) }],\n [{ type: 2, data: new Uint8Array([2, 0, 0]) }],\n [],\n [],\n [],\n [],\n [{ type: 0, data: write_varint49(0) }],\n [],\n [{ type: 0, data: write_varint49(save_token) }]\n ]) });\n mlist[1] = [{ type: 0, data: write_varint49(Math.max(newtileid + 1, varint_to_i32(mlist[1][0].data))) }];\n var parentidx = mlist[3].findIndex(function(m) {\n var _a, _b;\n var mm = parse_shallow(m.data);\n if ((_a = mm[3]) == null ? void 0 : _a[0])\n return u8str(mm[3][0].data) == loc;\n if (((_b = mm[2]) == null ? void 0 : _b[0]) && u8str(mm[2][0].data) == loc)\n return true;\n return false;\n });\n var parent = parse_shallow(mlist[3][parentidx].data);\n if (!parent[6])\n parent[6] = [];\n parent[6].push({\n type: 2,\n data: write_shallow([\n [],\n [{ type: 0, data: write_varint49(newtileid) }]\n ])\n });\n mlist[3][parentidx].data = write_shallow(parent);\n ai.messages[0].data = write_shallow(mlist);\n });\n numbers_add_oref(tmaroot, newtileid);\n rbtree[1].push({ type: 2, data: write_shallow([\n [],\n [{ type: 0, data: write_varint49(tidx * tstride) }],\n [{ type: 0, data: write_varint49(tidx) }]\n ]) });\n }\n }\n store[3][0].data = write_shallow(tilestore);\n store[9][0].data = write_shallow(rbtree);\n store[10] = [{ type: 2, data: new Uint8Array([]) }];\n if (ws[\"!merges\"]) {\n var mergeid = get_unique_msgid({\n type: 6144,\n deps: [tmaref],\n location: deps[tmaref].location\n }, deps);\n tmafile.push({\n id: mergeid,\n messages: [write_iwam(6144, write_shallow([\n [],\n ws[\"!merges\"].map(function(m) {\n return { type: 2, data: write_shallow([\n [],\n [{ type: 2, data: write_shallow([\n [],\n [{ type: 5, data: new Uint8Array(new Uint16Array([m.s.r, m.s.c]).buffer) }]\n ]) }],\n [{ type: 2, data: write_shallow([\n [],\n [{ type: 5, data: new Uint8Array(new Uint16Array([m.e.r - m.s.r + 1, m.e.c - m.s.c + 1]).buffer) }]\n ]) }]\n ]) };\n })\n ]))]\n });\n store[13] = [{ type: 2, data: write_TSP_Reference(mergeid) }];\n numbers_iwa_doit(cfb, deps, 2, function(ai) {\n var mlist = parse_shallow(ai.messages[0].data);\n var parentidx = mlist[3].findIndex(function(m) {\n var _a, _b;\n var mm = parse_shallow(m.data);\n if ((_a = mm[3]) == null ? void 0 : _a[0])\n return u8str(mm[3][0].data) == loc;\n if (((_b = mm[2]) == null ? void 0 : _b[0]) && u8str(mm[2][0].data) == loc)\n return true;\n return false;\n });\n var parent = parse_shallow(mlist[3][parentidx].data);\n if (!parent[6])\n parent[6] = [];\n parent[6].push({\n type: 2,\n data: write_shallow([\n [],\n [{ type: 0, data: write_varint49(mergeid) }]\n ])\n });\n mlist[3][parentidx].data = write_shallow(parent);\n ai.messages[0].data = write_shallow(mlist);\n });\n numbers_add_oref(tmaroot, mergeid);\n } else\n delete store[13];\n var sstref = parse_TSP_Reference(store[4][0].data);\n numbers_iwa_doit(cfb, deps, sstref, function(sstroot) {\n var sstdata = parse_shallow(sstroot.messages[0].data);\n {\n sstdata[3] = [];\n SST.forEach(function(str, i) {\n if (i == 0)\n return;\n sstdata[3].push({ type: 2, data: write_shallow([\n [],\n [{ type: 0, data: write_varint49(i) }],\n [{ type: 0, data: write_varint49(1) }],\n [{ type: 2, data: stru8(str) }]\n ]) });\n });\n }\n sstroot.messages[0].data = write_shallow(sstdata);\n });\n }\n pb[4][0].data = write_shallow(store);\n }\n tmaroot.messages[0].data = write_shallow(pb);\n}\nfunction fix_opts_func(defaults/*:Array >*/)/*:{(o:any):void}*/ {\n\treturn function fix_opts(opts) {\n\t\tfor(var i = 0; i != defaults.length; ++i) {\n\t\t\tvar d = defaults[i];\n\t\t\tif(opts[d[0]] === undefined) opts[d[0]] = d[1];\n\t\t\tif(d[2] === 'n') opts[d[0]] = Number(opts[d[0]]);\n\t\t}\n\t};\n}\n\nfunction fix_read_opts(opts) {\nfix_opts_func([\n\t['cellNF', false], /* emit cell number format string as .z */\n\t['cellHTML', true], /* emit html string as .h */\n\t['cellFormula', true], /* emit formulae as .f */\n\t['cellStyles', false], /* emits style/theme as .s */\n\t['cellText', true], /* emit formatted text as .w */\n\t['cellDates', false], /* emit date cells with type `d` */\n\n\t['sheetStubs', false], /* emit empty cells */\n\t['sheetRows', 0, 'n'], /* read n rows (0 = read all rows) */\n\n\t['bookDeps', false], /* parse calculation chains */\n\t['bookSheets', false], /* only try to get sheet names (no Sheets) */\n\t['bookProps', false], /* only try to get properties (no Sheets) */\n\t['bookFiles', false], /* include raw file structure (keys, files, cfb) */\n\t['bookVBA', false], /* include vba raw data (vbaraw) */\n\n\t['password',''], /* password */\n\t['WTF', false] /* WTF mode (throws errors) */\n])(opts);\n}\n\nfunction fix_write_opts(opts) {\nfix_opts_func([\n\t['cellDates', false], /* write date cells with type `d` */\n\n\t['bookSST', false], /* Generate Shared String Table */\n\n\t['bookType', 'xlsx'], /* Type of workbook (xlsx/m/b) */\n\n\t['compression', false], /* Use file compression */\n\n\t['WTF', false] /* WTF mode (throws errors) */\n])(opts);\n}\nfunction get_sheet_type(n/*:string*/)/*:string*/ {\n\tif(RELS.WS.indexOf(n) > -1) return \"sheet\";\n\tif(RELS.CS && n == RELS.CS) return \"chart\";\n\tif(RELS.DS && n == RELS.DS) return \"dialog\";\n\tif(RELS.MS && n == RELS.MS) return \"macro\";\n\treturn (n && n.length) ? n : \"sheet\";\n}\nfunction safe_parse_wbrels(wbrels, sheets) {\n\tif(!wbrels) return 0;\n\ttry {\n\t\twbrels = sheets.map(function pwbr(w) { if(!w.id) w.id = w.strRelID; return [w.name, wbrels['!id'][w.id].Target, get_sheet_type(wbrels['!id'][w.id].Type)]; });\n\t} catch(e) { return null; }\n\treturn !wbrels || wbrels.length === 0 ? null : wbrels;\n}\n\nfunction safe_parse_sheet(zip, path/*:string*/, relsPath/*:string*/, sheet, idx/*:number*/, sheetRels, sheets, stype/*:string*/, opts, wb, themes, styles) {\n\ttry {\n\t\tsheetRels[sheet]=parse_rels(getzipstr(zip, relsPath, true), path);\n\t\tvar data = getzipdata(zip, path);\n\t\tvar _ws;\n\t\tswitch(stype) {\n\t\t\tcase 'sheet': _ws = parse_ws(data, path, idx, opts, sheetRels[sheet], wb, themes, styles); break;\n\t\t\tcase 'chart': _ws = parse_cs(data, path, idx, opts, sheetRels[sheet], wb, themes, styles);\n\t\t\t\tif(!_ws || !_ws['!drawel']) break;\n\t\t\t\tvar dfile = resolve_path(_ws['!drawel'].Target, path);\n\t\t\t\tvar drelsp = get_rels_path(dfile);\n\t\t\t\tvar draw = parse_drawing(getzipstr(zip, dfile, true), parse_rels(getzipstr(zip, drelsp, true), dfile));\n\t\t\t\tvar chartp = resolve_path(draw, dfile);\n\t\t\t\tvar crelsp = get_rels_path(chartp);\n\t\t\t\t_ws = parse_chart(getzipstr(zip, chartp, true), chartp, opts, parse_rels(getzipstr(zip, crelsp, true), chartp), wb, _ws);\n\t\t\t\tbreak;\n\t\t\tcase 'macro': _ws = parse_ms(data, path, idx, opts, sheetRels[sheet], wb, themes, styles); break;\n\t\t\tcase 'dialog': _ws = parse_ds(data, path, idx, opts, sheetRels[sheet], wb, themes, styles); break;\n\t\t\tdefault: throw new Error(\"Unrecognized sheet type \" + stype);\n\t\t}\n\t\tsheets[sheet] = _ws;\n\n\t\t/* scan rels for comments and threaded comments */\n\t\tvar comments = [], tcomments = [];\n\t\tif(sheetRels && sheetRels[sheet]) keys(sheetRels[sheet]).forEach(function(n) {\n\t\t\tvar dfile = \"\";\n\t\t\tif(sheetRels[sheet][n].Type == RELS.CMNT) {\n\t\t\t\tdfile = resolve_path(sheetRels[sheet][n].Target, path);\n\t\t\t\tcomments = parse_cmnt(getzipdata(zip, dfile, true), dfile, opts);\n\t\t\t\tif(!comments || !comments.length) return;\n\t\t\t\tsheet_insert_comments(_ws, comments, false);\n\t\t\t}\n\t\t\tif(sheetRels[sheet][n].Type == RELS.TCMNT) {\n\t\t\t\tdfile = resolve_path(sheetRels[sheet][n].Target, path);\n\t\t\t\ttcomments = tcomments.concat(parse_tcmnt_xml(getzipdata(zip, dfile, true), opts));\n\t\t\t}\n\t\t});\n\t\tif(tcomments && tcomments.length) sheet_insert_comments(_ws, tcomments, true, opts.people || []);\n\t} catch(e) { if(opts.WTF) throw e; }\n}\n\nfunction strip_front_slash(x/*:string*/)/*:string*/ { return x.charAt(0) == '/' ? x.slice(1) : x; }\n\nfunction parse_zip(zip/*:ZIP*/, opts/*:?ParseOpts*/)/*:Workbook*/ {\n\tmake_ssf();\n\topts = opts || {};\n\tfix_read_opts(opts);\n\n\t/* OpenDocument Part 3 Section 2.2.1 OpenDocument Package */\n\tif(safegetzipfile(zip, 'META-INF/manifest.xml')) return parse_ods(zip, opts);\n\t/* UOC */\n\tif(safegetzipfile(zip, 'objectdata.xml')) return parse_ods(zip, opts);\n\t/* Numbers */\n\tif(safegetzipfile(zip, 'Index/Document.iwa')) {\n\t\tif(typeof Uint8Array == \"undefined\") throw new Error('NUMBERS file parsing requires Uint8Array support');\n\t\tif(typeof parse_numbers_iwa != \"undefined\") {\n\t\t\tif(zip.FileIndex) return parse_numbers_iwa(zip, opts);\n\t\t\tvar _zip = CFB.utils.cfb_new();\n\t\t\tzipentries(zip).forEach(function(e) { zip_add_file(_zip, e, getzipbin(zip, e)); });\n\t\t\treturn parse_numbers_iwa(_zip, opts);\n\t\t}\n\t\tthrow new Error('Unsupported NUMBERS file');\n\t}\n\tif(!safegetzipfile(zip, '[Content_Types].xml')) {\n\t\tif(safegetzipfile(zip, 'index.xml.gz')) throw new Error('Unsupported NUMBERS 08 file');\n\t\tif(safegetzipfile(zip, 'index.xml')) throw new Error('Unsupported NUMBERS 09 file');\n\t\tvar index_zip = CFB.find(zip, 'Index.zip');\n\t\tif(index_zip) {\n\t\t\topts = dup(opts);\n\t\t\tdelete opts.type;\n\t\t\tif(typeof index_zip.content == \"string\") opts.type = \"binary\";\n\t\t\t// TODO: Bun buffer bug\n\t\t\tif(typeof Bun !== \"undefined\" && Buffer.isBuffer(index_zip.content)) return readSync(new Uint8Array(index_zip.content), opts);\n\t\t\treturn readSync(index_zip.content, opts);\n\t\t}\n\t\tthrow new Error('Unsupported ZIP file');\n\t}\n\n\tvar entries = zipentries(zip);\n\tvar dir = parse_ct((getzipstr(zip, '[Content_Types].xml')/*:?any*/));\n\tvar xlsb = false;\n\tvar sheets, binname;\n\tif(dir.workbooks.length === 0) {\n\t\tbinname = \"xl/workbook.xml\";\n\t\tif(getzipdata(zip,binname, true)) dir.workbooks.push(binname);\n\t}\n\tif(dir.workbooks.length === 0) {\n\t\tbinname = \"xl/workbook.bin\";\n\t\tif(!getzipdata(zip,binname,true)) throw new Error(\"Could not find workbook\");\n\t\tdir.workbooks.push(binname);\n\t\txlsb = true;\n\t}\n\tif(dir.workbooks[0].slice(-3) == \"bin\") xlsb = true;\n\n\tvar themes = ({}/*:any*/);\n\tvar styles = ({}/*:any*/);\n\tif(!opts.bookSheets && !opts.bookProps) {\n\t\tstrs = [];\n\t\tif(dir.sst) try { strs=parse_sst(getzipdata(zip, strip_front_slash(dir.sst)), dir.sst, opts); } catch(e) { if(opts.WTF) throw e; }\n\n\t\tif(opts.cellStyles && dir.themes.length) themes = parse_theme_xml(getzipstr(zip, dir.themes[0].replace(/^\\//,''), true)||\"\", opts);\n\n\t\tif(dir.style) styles = parse_sty(getzipdata(zip, strip_front_slash(dir.style)), dir.style, themes, opts);\n\t}\n\n\t/*var externbooks = */dir.links.map(function(link) {\n\t\ttry {\n\t\t\tvar rels = parse_rels(getzipstr(zip, get_rels_path(strip_front_slash(link))), link);\n\t\t\treturn parse_xlink(getzipdata(zip, strip_front_slash(link)), rels, link, opts);\n\t\t} catch(e) {}\n\t});\n\n\tvar wb = parse_wb(getzipdata(zip, strip_front_slash(dir.workbooks[0])), dir.workbooks[0], opts);\n\n\tvar props = {}, propdata = \"\";\n\n\tif(dir.coreprops.length) {\n\t\tpropdata = getzipdata(zip, strip_front_slash(dir.coreprops[0]), true);\n\t\tif(propdata) props = parse_core_props(propdata);\n\t\tif(dir.extprops.length !== 0) {\n\t\t\tpropdata = getzipdata(zip, strip_front_slash(dir.extprops[0]), true);\n\t\t\tif(propdata) parse_ext_props(propdata, props, opts);\n\t\t}\n\t}\n\n\tvar custprops = {};\n\tif(!opts.bookSheets || opts.bookProps) {\n\t\tif (dir.custprops.length !== 0) {\n\t\t\tpropdata = getzipstr(zip, strip_front_slash(dir.custprops[0]), true);\n\t\t\tif(propdata) custprops = parse_cust_props(propdata, opts);\n\t\t}\n\t}\n\n\tvar out = ({}/*:any*/);\n\tif(opts.bookSheets || opts.bookProps) {\n\t\tif(wb.Sheets) sheets = wb.Sheets.map(function pluck(x){ return x.name; });\n\t\telse if(props.Worksheets && props.SheetNames.length > 0) sheets=props.SheetNames;\n\t\tif(opts.bookProps) { out.Props = props; out.Custprops = custprops; }\n\t\tif(opts.bookSheets && typeof sheets !== 'undefined') out.SheetNames = sheets;\n\t\tif(opts.bookSheets ? out.SheetNames : opts.bookProps) return out;\n\t}\n\tsheets = {};\n\n\tvar deps = {};\n\tif(opts.bookDeps && dir.calcchain) deps=parse_cc(getzipdata(zip, strip_front_slash(dir.calcchain)),dir.calcchain,opts);\n\n\tvar i=0;\n\tvar sheetRels = ({}/*:any*/);\n\tvar path, relsPath;\n\n\t{\n\t\tvar wbsheets = wb.Sheets;\n\t\tprops.Worksheets = wbsheets.length;\n\t\tprops.SheetNames = [];\n\t\tfor(var j = 0; j != wbsheets.length; ++j) {\n\t\t\tprops.SheetNames[j] = wbsheets[j].name;\n\t\t}\n\t}\n\n\tvar wbext = xlsb ? \"bin\" : \"xml\";\n\tvar wbrelsi = dir.workbooks[0].lastIndexOf(\"/\");\n\tvar wbrelsfile = (dir.workbooks[0].slice(0, wbrelsi+1) + \"_rels/\" + dir.workbooks[0].slice(wbrelsi+1) + \".rels\").replace(/^\\//,\"\");\n\tif(!safegetzipfile(zip, wbrelsfile)) wbrelsfile = 'xl/_rels/workbook.' + wbext + '.rels';\n\tvar wbrels = parse_rels(getzipstr(zip, wbrelsfile, true), wbrelsfile.replace(/_rels.*/, \"s5s\"));\n\n\tif((dir.metadata || []).length >= 1) {\n\t\t/* TODO: MDX and other types of metadata */\n\t\topts.xlmeta = parse_xlmeta(getzipdata(zip, strip_front_slash(dir.metadata[0])),dir.metadata[0],opts);\n\t}\n\n\tif((dir.people || []).length >= 1) {\n\t\topts.people = parse_people_xml(getzipdata(zip, strip_front_slash(dir.people[0])),opts);\n\t}\n\n\tif(wbrels) wbrels = safe_parse_wbrels(wbrels, wb.Sheets);\n\n\t/* Numbers iOS hack */\n\tvar nmode = (getzipdata(zip,\"xl/worksheets/sheet.xml\",true))?1:0;\n\twsloop: for(i = 0; i != props.Worksheets; ++i) {\n\t\tvar stype = \"sheet\";\n\t\tif(wbrels && wbrels[i]) {\n\t\t\tpath = 'xl/' + (wbrels[i][1]).replace(/[\\/]?xl\\//, \"\");\n\t\t\tif(!safegetzipfile(zip, path)) path = wbrels[i][1];\n\t\t\tif(!safegetzipfile(zip, path)) path = wbrelsfile.replace(/_rels\\/.*$/,\"\") + wbrels[i][1];\n\t\t\tstype = wbrels[i][2];\n\t\t} else {\n\t\t\tpath = 'xl/worksheets/sheet'+(i+1-nmode)+\".\" + wbext;\n\t\t\tpath = path.replace(/sheet0\\./,\"sheet.\");\n\t\t}\n\t\trelsPath = path.replace(/^(.*)(\\/)([^\\/]*)$/, \"$1/_rels/$3.rels\");\n\t\tif(opts && opts.sheets != null) switch(typeof opts.sheets) {\n\t\t\tcase \"number\": if(i != opts.sheets) continue wsloop; break;\n\t\t\tcase \"string\": if(props.SheetNames[i].toLowerCase() != opts.sheets.toLowerCase()) continue wsloop; break;\n\t\t\tdefault: if(Array.isArray && Array.isArray(opts.sheets)) {\n\t\t\t\tvar snjseen = false;\n\t\t\t\tfor(var snj = 0; snj != opts.sheets.length; ++snj) {\n\t\t\t\t\tif(typeof opts.sheets[snj] == \"number\" && opts.sheets[snj] == i) snjseen=1;\n\t\t\t\t\tif(typeof opts.sheets[snj] == \"string\" && opts.sheets[snj].toLowerCase() == props.SheetNames[i].toLowerCase()) snjseen = 1;\n\t\t\t\t}\n\t\t\t\tif(!snjseen) continue wsloop;\n\t\t\t}\n\t\t}\n\t\tsafe_parse_sheet(zip, path, relsPath, props.SheetNames[i], i, sheetRels, sheets, stype, opts, wb, themes, styles);\n\t}\n\n\tout = ({\n\t\tDirectory: dir,\n\t\tWorkbook: wb,\n\t\tProps: props,\n\t\tCustprops: custprops,\n\t\tDeps: deps,\n\t\tSheets: sheets,\n\t\tSheetNames: props.SheetNames,\n\t\tStrings: strs,\n\t\tStyles: styles,\n\t\tThemes: themes,\n\t\tSSF: dup(table_fmt)\n\t}/*:any*/);\n\tif(opts && opts.bookFiles) {\n\t\tif(zip.files) {\n\t\t\tout.keys = entries;\n\t\t\tout.files = zip.files;\n\t\t} else {\n\t\t\tout.keys = [];\n\t\t\tout.files = {};\n\t\t\tzip.FullPaths.forEach(function(p, idx) {\n\t\t\t\tp = p.replace(/^Root Entry[\\/]/, \"\");\n\t\t\t\tout.keys.push(p);\n\t\t\t\tout.files[p] = zip.FileIndex[idx];\n\t\t\t});\n\t\t}\n\t}\n\tif(opts && opts.bookVBA) {\n\t\tif(dir.vba.length > 0) out.vbaraw = getzipdata(zip,strip_front_slash(dir.vba[0]),true);\n\t\telse if(dir.defaults && dir.defaults.bin === CT_VBA) out.vbaraw = getzipdata(zip, 'xl/vbaProject.bin',true);\n\t}\n\t// TODO: pass back content types metdata for xlsm/xlsx resolution\n\tout.bookType = xlsb ? \"xlsb\" : \"xlsx\";\n\treturn out;\n}\n\n/* [MS-OFFCRYPTO] 2.1.1 */\nfunction parse_xlsxcfb(cfb, _opts/*:?ParseOpts*/)/*:Workbook*/ {\n\tvar opts = _opts || {};\n\tvar f = 'Workbook', data = CFB.find(cfb, f);\n\ttry {\n\tf = '/!DataSpaces/Version';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\t/*var version = */parse_DataSpaceVersionInfo(data.content);\n\n\t/* 2.3.4.1 */\n\tf = '/!DataSpaces/DataSpaceMap';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\tvar dsm = parse_DataSpaceMap(data.content);\n\tif(dsm.length !== 1 || dsm[0].comps.length !== 1 || dsm[0].comps[0].t !== 0 || dsm[0].name !== \"StrongEncryptionDataSpace\" || dsm[0].comps[0].v !== \"EncryptedPackage\")\n\t\tthrow new Error(\"ECMA-376 Encrypted file bad \" + f);\n\n\t/* 2.3.4.2 */\n\tf = '/!DataSpaces/DataSpaceInfo/StrongEncryptionDataSpace';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\tvar seds = parse_DataSpaceDefinition(data.content);\n\tif(seds.length != 1 || seds[0] != \"StrongEncryptionTransform\")\n\t\tthrow new Error(\"ECMA-376 Encrypted file bad \" + f);\n\n\t/* 2.3.4.3 */\n\tf = '/!DataSpaces/TransformInfo/StrongEncryptionTransform/!Primary';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\t/*var hdr = */parse_Primary(data.content);\n\t} catch(e) {}\n\n\tf = '/EncryptionInfo';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\tvar einfo = parse_EncryptionInfo(data.content);\n\n\t/* 2.3.4.4 */\n\tf = '/EncryptedPackage';\n\tdata = CFB.find(cfb, f); if(!data || !data.content) throw new Error(\"ECMA-376 Encrypted file missing \" + f);\n\n/*global decrypt_agile */\n/*:: declare var decrypt_agile:any; */\n\tif(einfo[0] == 0x04 && typeof decrypt_agile !== 'undefined') return decrypt_agile(einfo[1], data.content, opts.password || \"\", opts);\n/*global decrypt_std76 */\n/*:: declare var decrypt_std76:any; */\n\tif(einfo[0] == 0x02 && typeof decrypt_std76 !== 'undefined') return decrypt_std76(einfo[1], data.content, opts.password || \"\", opts);\n\tthrow new Error(\"File is password-protected\");\n}\n\nfunction write_zip_xlsb(wb/*:Workbook*/, opts/*:WriteOpts*/)/*:ZIP*/ {\n\tif(wb && !wb.SSF) {\n\t\twb.SSF = dup(table_fmt);\n\t}\n\tif(wb && wb.SSF) {\n\t\tmake_ssf(); SSF_load_table(wb.SSF);\n\t\t// $FlowIgnore\n\t\topts.revssf = evert_num(wb.SSF); opts.revssf[wb.SSF[65535]] = 0;\n\t\topts.ssf = wb.SSF;\n\t}\n\topts.rels = {}; opts.wbrels = {};\n\topts.Strings = /*::((*/[]/*:: :any):SST)*/; opts.Strings.Count = 0; opts.Strings.Unique = 0;\n\tif(browser_has_Map) opts.revStrings = new Map();\n\telse { opts.revStrings = {}; opts.revStrings.foo = []; delete opts.revStrings.foo; }\n\tvar wbext = \"bin\";\n\tvar vbafmt = true;\n\tvar ct = new_ct();\n\tfix_write_opts(opts = opts || {});\n\tvar zip = zip_new();\n\tvar f = \"\", rId = 0;\n\n\topts.cellXfs = [];\n\tget_cell_style(opts.cellXfs, {}, {revssf:{\"General\":0}});\n\n\tif(!wb.Props) wb.Props = {};\n\n\tf = \"docProps/core.xml\";\n\tzip_add_file(zip, f, write_core_props(wb.Props, opts));\n\tct.coreprops.push(f);\n\tadd_rels(opts.rels, 2, f, RELS.CORE_PROPS);\n\n\t/*::if(!wb.Props) throw \"unreachable\"; */\n\tf = \"docProps/app.xml\";\n\tif(wb.Props && wb.Props.SheetNames){/* empty */}\n\telse if(!wb.Workbook || !wb.Workbook.Sheets) wb.Props.SheetNames = wb.SheetNames;\n\telse {\n\t\tvar _sn = [];\n\t\tfor(var _i = 0; _i < wb.SheetNames.length; ++_i)\n\t\t\tif((wb.Workbook.Sheets[_i]||{}).Hidden != 2) _sn.push(wb.SheetNames[_i]);\n\t\twb.Props.SheetNames = _sn;\n\t}\n\twb.Props.Worksheets = wb.Props.SheetNames.length;\n\tzip_add_file(zip, f, write_ext_props(wb.Props, opts));\n\tct.extprops.push(f);\n\tadd_rels(opts.rels, 3, f, RELS.EXT_PROPS);\n\n\tif(wb.Custprops !== wb.Props && keys(wb.Custprops||{}).length > 0) {\n\t\tf = \"docProps/custom.xml\";\n\t\tzip_add_file(zip, f, write_cust_props(wb.Custprops, opts));\n\t\tct.custprops.push(f);\n\t\tadd_rels(opts.rels, 4, f, RELS.CUST_PROPS);\n\t}\n\n\tfor(rId=1;rId <= wb.SheetNames.length; ++rId) {\n\t\tvar wsrels = {'!id':{}};\n\t\tvar ws = wb.Sheets[wb.SheetNames[rId-1]];\n\t\tvar _type = (ws || {})[\"!type\"] || \"sheet\";\n\t\tswitch(_type) {\n\t\tcase \"chart\":\n\t\t\t/* falls through */\n\t\tdefault:\n\t\t\tf = \"xl/worksheets/sheet\" + rId + \".\" + wbext;\n\t\t\tzip_add_file(zip, f, write_ws_bin(rId-1, opts, wb, wsrels));\n\t\t\tct.sheets.push(f);\n\t\t\tadd_rels(opts.wbrels, -1, \"worksheets/sheet\" + rId + \".\" + wbext, RELS.WS[0]);\n\t\t}\n\n\t\tif(ws) {\n\t\t\tvar comments = ws['!comments'];\n\t\t\tvar need_vml = false;\n\t\t\tvar cf = \"\";\n\t\t\tif(comments && comments.length > 0) {\n\t\t\t\tcf = \"xl/comments\" + rId + \".\" + wbext;\n\t\t\t\tzip_add_file(zip, cf, write_comments_bin(comments, opts));\n\t\t\t\tct.comments.push(cf);\n\t\t\t\tadd_rels(wsrels, -1, \"../comments\" + rId + \".\" + wbext, RELS.CMNT);\n\t\t\t\tneed_vml = true;\n\t\t\t}\n\t\t\tif(ws['!legacy']) {\n\t\t\t\tif(need_vml) zip_add_file(zip, \"xl/drawings/vmlDrawing\" + (rId) + \".vml\", write_vml(rId, ws['!comments']));\n\t\t\t}\n\t\t\tdelete ws['!comments'];\n\t\t\tdelete ws['!legacy'];\n\t\t}\n\n\t\tif(wsrels['!id'].rId1) zip_add_file(zip, get_rels_path(f), write_rels(wsrels));\n\t}\n\n\tif(opts.Strings != null && opts.Strings.length > 0) {\n\t\tf = \"xl/sharedStrings.\" + wbext;\n\t\tzip_add_file(zip, f, write_sst_bin(opts.Strings, opts));\n\t\tct.strs.push(f);\n\t\tadd_rels(opts.wbrels, -1, \"sharedStrings.\" + wbext, RELS.SST);\n\t}\n\n\tf = \"xl/workbook.\" + wbext;\n\tzip_add_file(zip, f, write_wb_bin(wb, opts));\n\tct.workbooks.push(f);\n\tadd_rels(opts.rels, 1, f, RELS.WB);\n\n\t/* TODO: something more intelligent with themes */\n\n\tf = \"xl/theme/theme1.xml\";\n\tvar ww = write_theme(wb.Themes, opts);\n\tzip_add_file(zip, f, ww);\n\tct.themes.push(f);\n\tadd_rels(opts.wbrels, -1, \"theme/theme1.xml\", RELS.THEME);\n\n\t/* TODO: something more intelligent with styles */\n\n\tf = \"xl/styles.\" + wbext;\n\tzip_add_file(zip, f, write_sty_bin(wb, opts));\n\tct.styles.push(f);\n\tadd_rels(opts.wbrels, -1, \"styles.\" + wbext, RELS.STY);\n\n\tif(wb.vbaraw && vbafmt) {\n\t\tf = \"xl/vbaProject.bin\";\n\t\tzip_add_file(zip, f, wb.vbaraw);\n\t\tct.vba.push(f);\n\t\tadd_rels(opts.wbrels, -1, \"vbaProject.bin\", RELS.VBA);\n\t}\n\n\tf = \"xl/metadata.\" + wbext;\n\tzip_add_file(zip, f, write_xlmeta_bin());\n\tct.metadata.push(f);\n\tadd_rels(opts.wbrels, -1, \"metadata.\" + wbext, RELS.XLMETA);\n\n\tzip_add_file(zip, \"[Content_Types].xml\", write_ct(ct, opts));\n\tzip_add_file(zip, '_rels/.rels', write_rels(opts.rels));\n\tzip_add_file(zip, 'xl/_rels/workbook.' + wbext + '.rels', write_rels(opts.wbrels));\n\n\tdelete opts.revssf; delete opts.ssf;\n\treturn zip;\n}\n\nfunction write_zip_xlsx(wb/*:Workbook*/, opts/*:WriteOpts*/)/*:ZIP*/ {\n\tif(wb && !wb.SSF) {\n\t\twb.SSF = dup(table_fmt);\n\t}\n\tif(wb && wb.SSF) {\n\t\tmake_ssf(); SSF_load_table(wb.SSF);\n\t\t// $FlowIgnore\n\t\topts.revssf = evert_num(wb.SSF); opts.revssf[wb.SSF[65535]] = 0;\n\t\topts.ssf = wb.SSF;\n\t}\n\topts.rels = {}; opts.wbrels = {};\n\topts.Strings = /*::((*/[]/*:: :any):SST)*/; opts.Strings.Count = 0; opts.Strings.Unique = 0;\n\tif(browser_has_Map) opts.revStrings = new Map();\n\telse { opts.revStrings = {}; opts.revStrings.foo = []; delete opts.revStrings.foo; }\n\tvar wbext = \"xml\";\n\tvar vbafmt = VBAFMTS.indexOf(opts.bookType) > -1;\n\tvar ct = new_ct();\n\tfix_write_opts(opts = opts || {});\n\tvar zip = zip_new();\n\tvar f = \"\", rId = 0;\n\n\topts.cellXfs = [];\n\tget_cell_style(opts.cellXfs, {}, {revssf:{\"General\":0}});\n\n\tif(!wb.Props) wb.Props = {};\n\n\tf = \"docProps/core.xml\";\n\tzip_add_file(zip, f, write_core_props(wb.Props, opts));\n\tct.coreprops.push(f);\n\tadd_rels(opts.rels, 2, f, RELS.CORE_PROPS);\n\n\t/*::if(!wb.Props) throw \"unreachable\"; */\n\tf = \"docProps/app.xml\";\n\tif(wb.Props && wb.Props.SheetNames){/* empty */}\n\telse if(!wb.Workbook || !wb.Workbook.Sheets) wb.Props.SheetNames = wb.SheetNames;\n\telse {\n\t\tvar _sn = [];\n\t\tfor(var _i = 0; _i < wb.SheetNames.length; ++_i)\n\t\t\tif((wb.Workbook.Sheets[_i]||{}).Hidden != 2) _sn.push(wb.SheetNames[_i]);\n\t\twb.Props.SheetNames = _sn;\n\t}\n\twb.Props.Worksheets = wb.Props.SheetNames.length;\n\tzip_add_file(zip, f, write_ext_props(wb.Props, opts));\n\tct.extprops.push(f);\n\tadd_rels(opts.rels, 3, f, RELS.EXT_PROPS);\n\n\tif(wb.Custprops !== wb.Props && keys(wb.Custprops||{}).length > 0) {\n\t\tf = \"docProps/custom.xml\";\n\t\tzip_add_file(zip, f, write_cust_props(wb.Custprops, opts));\n\t\tct.custprops.push(f);\n\t\tadd_rels(opts.rels, 4, f, RELS.CUST_PROPS);\n\t}\n\n\tvar people = [\"SheetJ5\"];\n\topts.tcid = 0;\n\n\tfor(rId=1;rId <= wb.SheetNames.length; ++rId) {\n\t\tvar wsrels = {'!id':{}};\n\t\tvar ws = wb.Sheets[wb.SheetNames[rId-1]];\n\t\tvar _type = (ws || {})[\"!type\"] || \"sheet\";\n\t\tswitch(_type) {\n\t\tcase \"chart\":\n\t\t\t/* falls through */\n\t\tdefault:\n\t\t\tf = \"xl/worksheets/sheet\" + rId + \".\" + wbext;\n\t\t\tzip_add_file(zip, f, write_ws_xml(rId-1, opts, wb, wsrels));\n\t\t\tct.sheets.push(f);\n\t\t\tadd_rels(opts.wbrels, -1, \"worksheets/sheet\" + rId + \".\" + wbext, RELS.WS[0]);\n\t\t}\n\n\t\tif(ws) {\n\t\t\tvar comments = ws['!comments'];\n\t\t\tvar need_vml = false;\n\t\t\tvar cf = \"\";\n\t\t\tif(comments && comments.length > 0) {\n\t\t\t\tvar needtc = false;\n\t\t\t\tcomments.forEach(function(carr) {\n\t\t\t\t\tcarr[1].forEach(function(c) { if(c.T == true) needtc = true; });\n\t\t\t\t});\n\t\t\t\tif(needtc) {\n\t\t\t\t\tcf = \"xl/threadedComments/threadedComment\" + rId + \".xml\";\n\t\t\t\t\tzip_add_file(zip, cf, write_tcmnt_xml(comments, people, opts));\n\t\t\t\t\tct.threadedcomments.push(cf);\n\t\t\t\t\tadd_rels(wsrels, -1, \"../threadedComments/threadedComment\" + rId + \".xml\", RELS.TCMNT);\n\t\t\t\t}\n\n\t\t\t\tcf = \"xl/comments\" + rId + \".\" + wbext;\n\t\t\t\tzip_add_file(zip, cf, write_comments_xml(comments, opts));\n\t\t\t\tct.comments.push(cf);\n\t\t\t\tadd_rels(wsrels, -1, \"../comments\" + rId + \".\" + wbext, RELS.CMNT);\n\t\t\t\tneed_vml = true;\n\t\t\t}\n\t\t\tif(ws['!legacy']) {\n\t\t\t\tif(need_vml) zip_add_file(zip, \"xl/drawings/vmlDrawing\" + (rId) + \".vml\", write_vml(rId, ws['!comments']));\n\t\t\t}\n\t\t\tdelete ws['!comments'];\n\t\t\tdelete ws['!legacy'];\n\t\t}\n\n\t\tif(wsrels['!id'].rId1) zip_add_file(zip, get_rels_path(f), write_rels(wsrels));\n\t}\n\n\tif(opts.Strings != null && opts.Strings.length > 0) {\n\t\tf = \"xl/sharedStrings.\" + wbext;\n\t\tzip_add_file(zip, f, write_sst_xml(opts.Strings, opts));\n\t\tct.strs.push(f);\n\t\tadd_rels(opts.wbrels, -1, \"sharedStrings.\" + wbext, RELS.SST);\n\t}\n\n\tf = \"xl/workbook.\" + wbext;\n\tzip_add_file(zip, f, write_wb_xml(wb, opts));\n\tct.workbooks.push(f);\n\tadd_rels(opts.rels, 1, f, RELS.WB);\n\n\t/* TODO: something more intelligent with themes */\n\n\tf = \"xl/theme/theme1.xml\";\n\tzip_add_file(zip, f, write_theme(wb.Themes, opts));\n\tct.themes.push(f);\n\tadd_rels(opts.wbrels, -1, \"theme/theme1.xml\", RELS.THEME);\n\n\t/* TODO: something more intelligent with styles */\n\n\tf = \"xl/styles.\" + wbext;\n\tzip_add_file(zip, f, write_sty_xml(wb, opts));\n\tct.styles.push(f);\n\tadd_rels(opts.wbrels, -1, \"styles.\" + wbext, RELS.STY);\n\n\tif(wb.vbaraw && vbafmt) {\n\t\tf = \"xl/vbaProject.bin\";\n\t\tzip_add_file(zip, f, wb.vbaraw);\n\t\tct.vba.push(f);\n\t\tadd_rels(opts.wbrels, -1, \"vbaProject.bin\", RELS.VBA);\n\t}\n\n\tf = \"xl/metadata.\" + wbext;\n\tzip_add_file(zip, f, write_xlmeta_xml());\n\tct.metadata.push(f);\n\tadd_rels(opts.wbrels, -1, \"metadata.\" + wbext, RELS.XLMETA);\n\n\tif(people.length > 1) {\n\t\tf = \"xl/persons/person.xml\";\n\t\tzip_add_file(zip, f, write_people_xml(people, opts));\n\t\tct.people.push(f);\n\t\tadd_rels(opts.wbrels, -1, \"persons/person.xml\", RELS.PEOPLE);\n\t}\n\n\tzip_add_file(zip, \"[Content_Types].xml\", write_ct(ct, opts));\n\tzip_add_file(zip, '_rels/.rels', write_rels(opts.rels));\n\tzip_add_file(zip, 'xl/_rels/workbook.' + wbext + '.rels', write_rels(opts.wbrels));\n\n\tdelete opts.revssf; delete opts.ssf;\n\treturn zip;\n}\n\nfunction firstbyte(f/*:RawData*/,o/*:?TypeOpts*/)/*:Array*/ {\n\tvar x = \"\";\n\tswitch((o||{}).type || \"base64\") {\n\t\tcase 'buffer': return [f[0], f[1], f[2], f[3], f[4], f[5], f[6], f[7]];\n\t\tcase 'base64': x = Base64_decode(f.slice(0,12)); break;\n\t\tcase 'binary': x = f; break;\n\t\tcase 'array': return [f[0], f[1], f[2], f[3], f[4], f[5], f[6], f[7]];\n\t\tdefault: throw new Error(\"Unrecognized type \" + (o && o.type || \"undefined\"));\n\t}\n\treturn [x.charCodeAt(0), x.charCodeAt(1), x.charCodeAt(2), x.charCodeAt(3), x.charCodeAt(4), x.charCodeAt(5), x.charCodeAt(6), x.charCodeAt(7)];\n}\n\nfunction read_cfb(cfb/*:CFBContainer*/, opts/*:?ParseOpts*/)/*:Workbook*/ {\n\tif(CFB.find(cfb, \"EncryptedPackage\")) return parse_xlsxcfb(cfb, opts);\n\treturn parse_xlscfb(cfb, opts);\n}\n\nfunction read_zip(data/*:RawData*/, opts/*:?ParseOpts*/)/*:Workbook*/ {\n\tvar zip, d = data;\n\tvar o = opts||{};\n\tif(!o.type) o.type = (has_buf && Buffer.isBuffer(data)) ? \"buffer\" : \"base64\";\n\tzip = zip_read(d, o);\n\treturn parse_zip(zip, o);\n}\n\nfunction read_plaintext(data/*:string*/, o/*:ParseOpts*/)/*:Workbook*/ {\n\tvar i = 0;\n\tmain: while(i < data.length) switch(data.charCodeAt(i)) {\n\t\tcase 0x0A: case 0x0D: case 0x20: ++i; break;\n\t\tcase 0x3C: return parse_xlml(data.slice(i),o);\n\t\tdefault: break main;\n\t}\n\treturn PRN.to_workbook(data, o);\n}\n\nfunction read_plaintext_raw(data/*:RawData*/, o/*:ParseOpts*/)/*:Workbook*/ {\n\tvar str = \"\", bytes = firstbyte(data, o);\n\tswitch(o.type) {\n\t\tcase 'base64': str = Base64_decode(data); break;\n\t\tcase 'binary': str = data; break;\n\t\tcase 'buffer': str = data.toString('binary'); break;\n\t\tcase 'array': str = cc2str(data); break;\n\t\tdefault: throw new Error(\"Unrecognized type \" + o.type);\n\t}\n\tif(bytes[0] == 0xEF && bytes[1] == 0xBB && bytes[2] == 0xBF) str = utf8read(str);\n\to.type = \"binary\";\n\treturn read_plaintext(str, o);\n}\n\nfunction read_utf16(data/*:RawData*/, o/*:ParseOpts*/)/*:Workbook*/ {\n\tvar d = data;\n\tif(o.type == 'base64') d = Base64_decode(d);\n\tif(typeof ArrayBuffer !== \"undefined\" && data instanceof ArrayBuffer) d = new Uint8Array(data);\n\td = typeof $cptable !== \"undefined\" ? $cptable.utils.decode(1200, d.slice(2), 'str') : (\n\t\t(has_buf && Buffer.isBuffer(data)) ? data.slice(2).toString(\"utf16le\") :\n\t\t(typeof Uint8Array !== \"undefined\" && d instanceof Uint8Array) ? (\n\t\t\ttypeof TextDecoder !== \"undefined\" ? new TextDecoder(\"utf-16le\").decode(d.slice(2)) : utf16lereadu(d.slice(2))\n\t\t) : utf16leread(d.slice(2))\n\t);\n\to.type = \"binary\";\n\treturn read_plaintext(d, o);\n}\n\nfunction bstrify(data/*:string*/)/*:string*/ {\n\treturn !data.match(/[^\\x00-\\x7F]/) ? data : utf8write(data);\n}\n\nfunction read_prn(data, d, o, str) {\n\tif(str) { o.type = \"string\"; return PRN.to_workbook(data, o); }\n\treturn PRN.to_workbook(d, o);\n}\n\nfunction readSync(data/*:RawData*/, opts/*:?ParseOpts*/)/*:Workbook*/ {\n\treset_cp();\n\tvar o = opts||{};\n\tif(o.codepage && typeof $cptable === \"undefined\") console.error(\"Codepage tables are not loaded. Non-ASCII characters may not give expected results\");\n\tif(typeof ArrayBuffer !== 'undefined' && data instanceof ArrayBuffer) return readSync(new Uint8Array(data), (o = dup(o), o.type = \"array\", o));\n\tif(typeof Uint8Array !== 'undefined' && data instanceof Uint8Array && !o.type) o.type = typeof Deno !== \"undefined\" ? \"buffer\" : \"array\";\n\tvar d = data, n = [0,0,0,0], str = false;\n\tif(o.cellStyles) { o.cellNF = true; o.sheetStubs = true; }\n\t_ssfopts = {};\n\tif(o.dateNF) _ssfopts.dateNF = o.dateNF;\n\tif(!o.type) o.type = (has_buf && Buffer.isBuffer(data)) ? \"buffer\" : \"base64\";\n\tif(o.type == \"file\") { o.type = has_buf ? \"buffer\" : \"binary\"; d = read_binary(data); if(typeof Uint8Array !== 'undefined' && !has_buf) o.type = \"array\"; }\n\tif(o.type == \"string\") { str = true; o.type = \"binary\"; o.codepage = 65001; d = bstrify(data); }\n\tif(o.type == 'array' && typeof Uint8Array !== 'undefined' && data instanceof Uint8Array && typeof ArrayBuffer !== 'undefined') {\n\t\t// $FlowIgnore\n\t\tvar ab=new ArrayBuffer(3), vu=new Uint8Array(ab); vu.foo=\"bar\";\n\t\t// $FlowIgnore\n\t\tif(!vu.foo) {o=dup(o); o.type='array'; return readSync(ab2a(d), o);}\n\t}\n\tswitch((n = firstbyte(d, o))[0]) {\n\t\tcase 0xD0: if(n[1] === 0xCF && n[2] === 0x11 && n[3] === 0xE0 && n[4] === 0xA1 && n[5] === 0xB1 && n[6] === 0x1A && n[7] === 0xE1) return read_cfb(CFB.read(d, o), o); break;\n\t\tcase 0x09: if(n[1] <= 0x08) return parse_xlscfb(d, o); break;\n\t\tcase 0x3C: return parse_xlml(d, o);\n\t\tcase 0x49:\n\t\t\tif(n[1] === 0x49 && n[2] === 0x2a && n[3] === 0x00) throw new Error(\"TIFF Image File is not a spreadsheet\");\n\t\t\tif(n[1] === 0x44) return read_wb_ID(d, o);\n\t\t\tbreak;\n\t\tcase 0x54: if(n[1] === 0x41 && n[2] === 0x42 && n[3] === 0x4C) return DIF.to_workbook(d, o); break;\n\t\tcase 0x50: return (n[1] === 0x4B && n[2] < 0x09 && n[3] < 0x09) ? read_zip(d, o) : read_prn(data, d, o, str);\n\t\tcase 0xEF: return n[3] === 0x3C ? parse_xlml(d, o) : read_prn(data, d, o, str);\n\t\tcase 0xFF:\n\t\t\tif(n[1] === 0xFE) { return read_utf16(d, o); }\n\t\t\telse if(n[1] === 0x00 && n[2] === 0x02 && n[3] === 0x00) return WK_.to_workbook(d, o);\n\t\t\tbreak;\n\t\tcase 0x00:\n\t\t\tif(n[1] === 0x00) {\n\t\t\t\tif(n[2] >= 0x02 && n[3] === 0x00) return WK_.to_workbook(d, o);\n\t\t\t\tif(n[2] === 0x00 && (n[3] === 0x08 || n[3] === 0x09)) return WK_.to_workbook(d, o);\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 0x03: case 0x83: case 0x8B: case 0x8C: return DBF.to_workbook(d, o);\n\t\tcase 0x7B: if(n[1] === 0x5C && n[2] === 0x72 && n[3] === 0x74) return rtf_to_workbook(d, o); break;\n\t\tcase 0x0A: case 0x0D: case 0x20: return read_plaintext_raw(d, o);\n\t\tcase 0x89: if(n[1] === 0x50 && n[2] === 0x4E && n[3] === 0x47) throw new Error(\"PNG Image File is not a spreadsheet\"); break;\n\t\tcase 0x08: if(n[1] === 0xE7) throw new Error(\"Unsupported Multiplan 1.x file!\"); break;\n\t\tcase 0x0C:\n\t\t\tif(n[1] === 0xEC) throw new Error(\"Unsupported Multiplan 2.x file!\");\n\t\t\tif(n[1] === 0xED) throw new Error(\"Unsupported Multiplan 3.x file!\");\n\t\t\tbreak;\n\t}\n\tif(DBF_SUPPORTED_VERSIONS.indexOf(n[0]) > -1 && n[2] <= 12 && n[3] <= 31) return DBF.to_workbook(d, o);\n\treturn read_prn(data, d, o, str);\n}\n\nfunction readFileSync(filename/*:string*/, opts/*:?ParseOpts*/)/*:Workbook*/ {\n\tvar o = opts||{}; o.type = 'file';\n\treturn readSync(filename, o);\n}\nfunction write_cfb_ctr(cfb/*:CFBContainer*/, o/*:WriteOpts*/)/*:any*/ {\n\tswitch(o.type) {\n\t\tcase \"base64\": case \"binary\": break;\n\t\tcase \"buffer\": case \"array\": o.type = \"\"; break;\n\t\tcase \"file\": return write_dl(o.file, CFB.write(cfb, {type:has_buf ? 'buffer' : \"\"}));\n\t\tcase \"string\": throw new Error(\"'string' output type invalid for '\" + o.bookType + \"' files\");\n\t\tdefault: throw new Error(\"Unrecognized type \" + o.type);\n\t}\n\treturn CFB.write(cfb, o);\n}\n\nfunction write_zip(wb/*:Workbook*/, opts/*:WriteOpts*/)/*:ZIP*/ {\n\tswitch(opts.bookType) {\n\t\tcase \"ods\": return write_ods(wb, opts);\n\t\tcase \"numbers\": return write_numbers_iwa(wb, opts);\n\t\tcase \"xlsb\": return write_zip_xlsb(wb, opts);\n\t\tdefault: return write_zip_xlsx(wb, opts);\n\t}\n}\n\n/*:: declare var encrypt_agile:any; */\nfunction write_zip_type(wb/*:Workbook*/, opts/*:?WriteOpts*/)/*:any*/ {\n\tvar o = dup(opts||{});\n\tvar z = write_zip(wb, o);\n\treturn write_zip_denouement(z, o);\n}\nfunction write_zip_typeXLSX(wb/*:Workbook*/, opts/*:?WriteOpts*/)/*:any*/ {\n\tvar o = dup(opts||{});\n\tvar z = write_zip_xlsx(wb, o);\n\treturn write_zip_denouement(z, o);\n}\nfunction write_zip_denouement(z/*:any*/, o/*:?WriteOpts*/)/*:any*/ {\n\tvar oopts = {};\n\tvar ftype = has_buf ? \"nodebuffer\" : (typeof Uint8Array !== \"undefined\" ? \"array\" : \"string\");\n\tif(o.compression) oopts.compression = 'DEFLATE';\n\tif(o.password) oopts.type = ftype;\n\telse switch(o.type) {\n\t\tcase \"base64\": oopts.type = \"base64\"; break;\n\t\tcase \"binary\": oopts.type = \"string\"; break;\n\t\tcase \"string\": throw new Error(\"'string' output type invalid for '\" + o.bookType + \"' files\");\n\t\tcase \"buffer\":\n\t\tcase \"file\": oopts.type = ftype; break;\n\t\tdefault: throw new Error(\"Unrecognized type \" + o.type);\n\t}\n\tvar out = z.FullPaths ? CFB.write(z, {fileType:\"zip\", type: /*::(*/{\"nodebuffer\": \"buffer\", \"string\": \"binary\"}/*:: :any)*/[oopts.type] || oopts.type, compression: !!o.compression}) : z.generate(oopts);\n\tif(typeof Deno !== \"undefined\") {\n\t\tif(typeof out == \"string\") {\n\t\t\tif(o.type == \"binary\" || o.type == \"base64\") return out;\n\t\t\tout = new Uint8Array(s2ab(out));\n\t\t}\n\t}\n/*jshint -W083 */\n\tif(o.password && typeof encrypt_agile !== 'undefined') return write_cfb_ctr(encrypt_agile(out, o.password), o); // eslint-disable-line no-undef\n/*jshint +W083 */\n\tif(o.type === \"file\") return write_dl(o.file, out);\n\treturn o.type == \"string\" ? utf8read(/*::(*/out/*:: :any)*/) : out;\n}\n\nfunction write_cfb_type(wb/*:Workbook*/, opts/*:?WriteOpts*/)/*:any*/ {\n\tvar o = opts||{};\n\tvar cfb/*:CFBContainer*/ = write_xlscfb(wb, o);\n\treturn write_cfb_ctr(cfb, o);\n}\n\nfunction write_string_type(out/*:string*/, opts/*:WriteOpts*/, bom/*:?string*/)/*:any*/ {\n\tif(!bom) bom = \"\";\n\tvar o = bom + out;\n\tswitch(opts.type) {\n\t\tcase \"base64\": return Base64_encode(utf8write(o));\n\t\tcase \"binary\": return utf8write(o);\n\t\tcase \"string\": return out;\n\t\tcase \"file\": return write_dl(opts.file, o, 'utf8');\n\t\tcase \"buffer\": {\n\t\t\tif(has_buf) return Buffer_from(o, 'utf8');\n\t\t\telse if(typeof TextEncoder !== \"undefined\") return new TextEncoder().encode(o);\n\t\t\telse return write_string_type(o, {type:'binary'}).split(\"\").map(function(c) { return c.charCodeAt(0); });\n\t\t}\n\t}\n\tthrow new Error(\"Unrecognized type \" + opts.type);\n}\n\nfunction write_stxt_type(out/*:string*/, opts/*:WriteOpts*/)/*:any*/ {\n\tswitch(opts.type) {\n\t\tcase \"base64\": return Base64_encode_pass(out);\n\t\tcase \"binary\": return out;\n\t\tcase \"string\": return out; /* override in sheet_to_txt */\n\t\tcase \"file\": return write_dl(opts.file, out, 'binary');\n\t\tcase \"buffer\": {\n\t\t\tif(has_buf) return Buffer_from(out, 'binary');\n\t\t\telse return out.split(\"\").map(function(c) { return c.charCodeAt(0); });\n\t\t}\n\t}\n\tthrow new Error(\"Unrecognized type \" + opts.type);\n}\n\n/* TODO: test consistency */\nfunction write_binary_type(out, opts/*:WriteOpts*/)/*:any*/ {\n\tswitch(opts.type) {\n\t\tcase \"string\":\n\t\tcase \"base64\":\n\t\tcase \"binary\":\n\t\t\tvar bstr = \"\";\n\t\t\t// $FlowIgnore\n\t\t\tfor(var i = 0; i < out.length; ++i) bstr += String.fromCharCode(out[i]);\n\t\t\treturn opts.type == 'base64' ? Base64_encode(bstr) : opts.type == 'string' ? utf8read(bstr) : bstr;\n\t\tcase \"file\": return write_dl(opts.file, out);\n\t\tcase \"buffer\": return out;\n\t\tdefault: throw new Error(\"Unrecognized type \" + opts.type);\n\t}\n}\n\nfunction writeSyncXLSX(wb/*:Workbook*/, opts/*:?WriteOpts*/) {\n\treset_cp();\n\tcheck_wb(wb);\n\tvar o = dup(opts||{});\n\tif(o.cellStyles) { o.cellNF = true; o.sheetStubs = true; }\n\tif(o.type == \"array\") { o.type = \"binary\"; var out/*:string*/ = (writeSyncXLSX(wb, o)/*:any*/); o.type = \"array\"; return s2ab(out); }\n\treturn write_zip_typeXLSX(wb, o);\n}\n\nfunction writeSync(wb/*:Workbook*/, opts/*:?WriteOpts*/) {\n\treset_cp();\n\tcheck_wb(wb);\n\tvar o = dup(opts||{});\n\tif(o.cellStyles) { o.cellNF = true; o.sheetStubs = true; }\n\tif(o.type == \"array\") { o.type = \"binary\"; var out/*:string*/ = (writeSync(wb, o)/*:any*/); o.type = \"array\"; return s2ab(out); }\n\tvar idx = 0;\n\tif(o.sheet) {\n\t\tif(typeof o.sheet == \"number\") idx = o.sheet;\n\t\telse idx = wb.SheetNames.indexOf(o.sheet);\n\t\tif(!wb.SheetNames[idx]) throw new Error(\"Sheet not found: \" + o.sheet + \" : \" + (typeof o.sheet));\n\t}\n\tswitch(o.bookType || 'xlsb') {\n\t\tcase 'xml':\n\t\tcase 'xlml': return write_string_type(write_xlml(wb, o), o);\n\t\tcase 'slk':\n\t\tcase 'sylk': return write_string_type(SYLK.from_sheet(wb.Sheets[wb.SheetNames[idx]], o, wb), o);\n\t\tcase 'htm':\n\t\tcase 'html': return write_string_type(sheet_to_html(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'txt': return write_stxt_type(sheet_to_txt(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'csv': return write_string_type(sheet_to_csv(wb.Sheets[wb.SheetNames[idx]], o), o, \"\\ufeff\");\n\t\tcase 'dif': return write_string_type(DIF.from_sheet(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'dbf': return write_binary_type(DBF.from_sheet(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'prn': return write_string_type(PRN.from_sheet(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'rtf': return write_string_type(sheet_to_rtf(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'eth': return write_string_type(ETH.from_sheet(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'fods': return write_string_type(write_ods(wb, o), o);\n\t\tcase 'wk1': return write_binary_type(WK_.sheet_to_wk1(wb.Sheets[wb.SheetNames[idx]], o), o);\n\t\tcase 'wk3': return write_binary_type(WK_.book_to_wk3(wb, o), o);\n\t\tcase 'biff2': if(!o.biff) o.biff = 2; /* falls through */\n\t\tcase 'biff3': if(!o.biff) o.biff = 3; /* falls through */\n\t\tcase 'biff4': if(!o.biff) o.biff = 4; return write_binary_type(write_biff_buf(wb, o), o);\n\t\tcase 'biff5': if(!o.biff) o.biff = 5; /* falls through */\n\t\tcase 'biff8':\n\t\tcase 'xla':\n\t\tcase 'xls': if(!o.biff) o.biff = 8; return write_cfb_type(wb, o);\n\t\tcase 'xlsx':\n\t\tcase 'xlsm':\n\t\tcase 'xlam':\n\t\tcase 'xlsb':\n\t\tcase 'numbers':\n\t\tcase 'ods': return write_zip_type(wb, o);\n\t\tdefault: throw new Error (\"Unrecognized bookType |\" + o.bookType + \"|\");\n\t}\n}\n\nfunction resolve_book_type(o/*:WriteFileOpts*/) {\n\tif(o.bookType) return;\n\tvar _BT = {\n\t\t\"xls\": \"biff8\",\n\t\t\"htm\": \"html\",\n\t\t\"slk\": \"sylk\",\n\t\t\"socialcalc\": \"eth\",\n\t\t\"Sh33tJS\": \"WTF\"\n\t};\n\tvar ext = o.file.slice(o.file.lastIndexOf(\".\")).toLowerCase();\n\tif(ext.match(/^\\.[a-z]+$/)) o.bookType = ext.slice(1);\n\to.bookType = _BT[o.bookType] || o.bookType;\n}\n\nfunction writeFileSync(wb/*:Workbook*/, filename/*:string*/, opts/*:?WriteFileOpts*/) {\n\tvar o = opts||{}; o.type = 'file';\n\to.file = filename;\n\tresolve_book_type(o);\n\treturn writeSync(wb, o);\n}\n\nfunction writeFileSyncXLSX(wb/*:Workbook*/, filename/*:string*/, opts/*:?WriteFileOpts*/) {\n\tvar o = opts||{}; o.type = 'file';\n\to.file = filename;\n\tresolve_book_type(o);\n\treturn writeSyncXLSX(wb, o);\n}\n\n\nfunction writeFileAsync(filename/*:string*/, wb/*:Workbook*/, opts/*:?WriteFileOpts*/, cb/*:?(e?:ErrnoError)=>void*/) {\n\tvar o = opts||{}; o.type = 'file';\n\to.file = filename;\n\tresolve_book_type(o);\n\to.type = 'buffer';\n\tvar _cb = cb; if(!(_cb instanceof Function)) _cb = (opts/*:any*/);\n\treturn _fs.writeFile(filename, writeSync(wb, o), _cb);\n}\n/*::\ntype MJRObject = {\n\trow: any;\n\tisempty: boolean;\n};\n*/\nfunction make_json_row(sheet/*:Worksheet*/, r/*:Range*/, R/*:number*/, cols/*:Array*/, header/*:number*/, hdr/*:Array*/, o/*:Sheet2JSONOpts*/)/*:MJRObject*/ {\n\tvar rr = encode_row(R);\n\tvar defval = o.defval, raw = o.raw || !Object.prototype.hasOwnProperty.call(o, \"raw\");\n\tvar isempty = true, dense = (sheet[\"!data\"] != null);\n\tvar row/*:any*/ = (header === 1) ? [] : {};\n\tif(header !== 1) {\n\t\tif(Object.defineProperty) try { Object.defineProperty(row, '__rowNum__', {value:R, enumerable:false}); } catch(e) { row.__rowNum__ = R; }\n\t\telse row.__rowNum__ = R;\n\t}\n\tif(!dense || sheet[\"!data\"][R]) for (var C = r.s.c; C <= r.e.c; ++C) {\n\t\tvar val = dense ? (sheet[\"!data\"][R]||[])[C] : sheet[cols[C] + rr];\n\t\tif(val === undefined || val.t === undefined) {\n\t\t\tif(defval === undefined) continue;\n\t\t\tif(hdr[C] != null) { row[hdr[C]] = defval; }\n\t\t\tcontinue;\n\t\t}\n\t\tvar v = val.v;\n\t\tswitch(val.t){\n\t\t\tcase 'z': if(v == null) break; continue;\n\t\t\tcase 'e': v = (v == 0 ? null : void 0); break;\n\t\t\tcase 's': case 'd': case 'b': case 'n': break;\n\t\t\tdefault: throw new Error('unrecognized type ' + val.t);\n\t\t}\n\t\tif(hdr[C] != null) {\n\t\t\tif(v == null) {\n\t\t\t\tif(val.t == \"e\" && v === null) row[hdr[C]] = null;\n\t\t\t\telse if(defval !== undefined) row[hdr[C]] = defval;\n\t\t\t\telse if(raw && v === null) row[hdr[C]] = null;\n\t\t\t\telse continue;\n\t\t\t} else {\n\t\t\t\trow[hdr[C]] = raw && (val.t !== \"n\" || (val.t === \"n\" && o.rawNumbers !== false)) ? v : format_cell(val,v,o);\n\t\t\t}\n\t\t\tif(v != null) isempty = false;\n\t\t}\n\t}\n\treturn { row: row, isempty: isempty };\n}\n\n\nfunction sheet_to_json(sheet/*:Worksheet*/, opts/*:?Sheet2JSONOpts*/) {\n\tif(sheet == null || sheet[\"!ref\"] == null) return [];\n\tvar val = {t:'n',v:0}, header = 0, offset = 1, hdr/*:Array*/ = [], v=0, vv=\"\";\n\tvar r = {s:{r:0,c:0},e:{r:0,c:0}};\n\tvar o = opts || {};\n\tvar range = o.range != null ? o.range : sheet[\"!ref\"];\n\tif(o.header === 1) header = 1;\n\telse if(o.header === \"A\") header = 2;\n\telse if(Array.isArray(o.header)) header = 3;\n\telse if(o.header == null) header = 0;\n\tswitch(typeof range) {\n\t\tcase 'string': r = safe_decode_range(range); break;\n\t\tcase 'number': r = safe_decode_range(sheet[\"!ref\"]); r.s.r = range; break;\n\t\tdefault: r = range;\n\t}\n\tif(header > 0) offset = 0;\n\tvar rr = encode_row(r.s.r);\n\tvar cols/*:Array*/ = [];\n\tvar out/*:Array*/ = [];\n\tvar outi = 0, counter = 0;\n\tvar dense = sheet[\"!data\"] != null;\n\tvar R = r.s.r, C = 0;\n\tvar header_cnt = {};\n\tif(dense && !sheet[\"!data\"][R]) sheet[\"!data\"][R] = [];\n\tvar colinfo/*:Array*/ = o.skipHidden && sheet[\"!cols\"] || [];\n\tvar rowinfo/*:Array*/ = o.skipHidden && sheet[\"!rows\"] || [];\n\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\tif(((colinfo[C]||{}).hidden)) continue;\n\t\tcols[C] = encode_col(C);\n\t\tval = dense ? sheet[\"!data\"][R][C] : sheet[cols[C] + rr];\n\t\tswitch(header) {\n\t\t\tcase 1: hdr[C] = C - r.s.c; break;\n\t\t\tcase 2: hdr[C] = cols[C]; break;\n\t\t\tcase 3: hdr[C] = o.header[C - r.s.c]; break;\n\t\t\tdefault:\n\t\t\t\tif(val == null) val = {w: \"__EMPTY\", t: \"s\"};\n\t\t\t\tvv = v = format_cell(val, null, o);\n\t\t\t\tcounter = header_cnt[v] || 0;\n\t\t\t\tif(!counter) header_cnt[v] = 1;\n\t\t\t\telse {\n\t\t\t\t\tdo { vv = v + \"_\" + (counter++); } while(header_cnt[vv]); header_cnt[v] = counter;\n\t\t\t\t\theader_cnt[vv] = 1;\n\t\t\t\t}\n\t\t\t\thdr[C] = vv;\n\t\t}\n\t}\n\tfor (R = r.s.r + offset; R <= r.e.r; ++R) {\n\t\tif ((rowinfo[R]||{}).hidden) continue;\n\t\tvar row = make_json_row(sheet, r, R, cols, header, hdr, o);\n\t\tif((row.isempty === false) || (header === 1 ? o.blankrows !== false : !!o.blankrows)) out[outi++] = row.row;\n\t}\n\tout.length = outi;\n\treturn out;\n}\n\nvar qreg = /\"/g;\nfunction make_csv_row(sheet/*:Worksheet*/, r/*:Range*/, R/*:number*/, cols/*:Array*/, fs/*:number*/, rs/*:number*/, FS/*:string*/, o/*:Sheet2CSVOpts*/)/*:?string*/ {\n\tvar isempty = true;\n\tvar row/*:Array*/ = [], txt = \"\", rr = encode_row(R);\n\tvar dense = sheet[\"!data\"] != null;\n\tvar datarow = dense && sheet[\"!data\"][R] || [];\n\tfor(var C = r.s.c; C <= r.e.c; ++C) {\n\t\tif (!cols[C]) continue;\n\t\tvar val = dense ? datarow[C]: sheet[cols[C] + rr];\n\t\tif(val == null) txt = \"\";\n\t\telse if(val.v != null) {\n\t\t\tisempty = false;\n\t\t\ttxt = ''+(o.rawNumbers && val.t == \"n\" ? val.v : format_cell(val, null, o));\n\t\t\tfor(var i = 0, cc = 0; i !== txt.length; ++i) if((cc = txt.charCodeAt(i)) === fs || cc === rs || cc === 34 || o.forceQuotes) {txt = \"\\\"\" + txt.replace(qreg, '\"\"') + \"\\\"\"; break; }\n\t\t\tif(txt == \"ID\") txt = '\"ID\"';\n\t\t} else if(val.f != null && !val.F) {\n\t\t\tisempty = false;\n\t\t\ttxt = '=' + val.f; if(txt.indexOf(\",\") >= 0) txt = '\"' + txt.replace(qreg, '\"\"') + '\"';\n\t\t} else txt = \"\";\n\t\t/* NOTE: Excel CSV does not support array formulae */\n\t\trow.push(txt);\n\t}\n\tif(o.blankrows === false && isempty) return null;\n\treturn row.join(FS);\n}\n\nfunction sheet_to_csv(sheet/*:Worksheet*/, opts/*:?Sheet2CSVOpts*/)/*:string*/ {\n\tvar out/*:Array*/ = [];\n\tvar o = opts == null ? {} : opts;\n\tif(sheet == null || sheet[\"!ref\"] == null) return \"\";\n\tvar r = safe_decode_range(sheet[\"!ref\"]);\n\tvar FS = o.FS !== undefined ? o.FS : \",\", fs = FS.charCodeAt(0);\n\tvar RS = o.RS !== undefined ? o.RS : \"\\n\", rs = RS.charCodeAt(0);\n\tvar endregex = new RegExp((FS==\"|\" ? \"\\\\|\" : FS)+\"+$\");\n\tvar row = \"\", cols/*:Array*/ = [];\n\tvar colinfo/*:Array*/ = o.skipHidden && sheet[\"!cols\"] || [];\n\tvar rowinfo/*:Array*/ = o.skipHidden && sheet[\"!rows\"] || [];\n\tfor(var C = r.s.c; C <= r.e.c; ++C) if (!((colinfo[C]||{}).hidden)) cols[C] = encode_col(C);\n\tvar w = 0;\n\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\tif ((rowinfo[R]||{}).hidden) continue;\n\t\trow = make_csv_row(sheet, r, R, cols, fs, rs, FS, o);\n\t\tif(row == null) { continue; }\n\t\tif(o.strip) row = row.replace(endregex,\"\");\n\t\tif(row || (o.blankrows !== false)) out.push((w++ ? RS : \"\") + row);\n\t}\n\treturn out.join(\"\");\n}\n\nfunction sheet_to_txt(sheet/*:Worksheet*/, opts/*:?Sheet2CSVOpts*/) {\n\tif(!opts) opts = {}; opts.FS = \"\\t\"; opts.RS = \"\\n\";\n\tvar s = sheet_to_csv(sheet, opts);\n\tif(typeof $cptable == 'undefined' || opts.type == 'string') return s;\n\tvar o = $cptable.utils.encode(1200, s, 'str');\n\treturn String.fromCharCode(255) + String.fromCharCode(254) + o;\n}\n\nfunction sheet_to_formulae(sheet/*:Worksheet*/)/*:Array*/ {\n\tvar y = \"\", x, val=\"\";\n\tif(sheet == null || sheet[\"!ref\"] == null) return [];\n\tvar r = safe_decode_range(sheet['!ref']), rr = \"\", cols/*:Array*/ = [], C;\n\tvar cmds/*:Array*/ = [];\n\tvar dense = sheet[\"!data\"] != null;\n\tfor(C = r.s.c; C <= r.e.c; ++C) cols[C] = encode_col(C);\n\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\trr = encode_row(R);\n\t\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\t\ty = cols[C] + rr;\n\t\t\tx = dense ? (sheet[\"!data\"][R]||[])[C] : sheet[y];\n\t\t\tval = \"\";\n\t\t\tif(x === undefined) continue;\n\t\t\telse if(x.F != null) {\n\t\t\t\ty = x.F;\n\t\t\t\tif(!x.f) continue;\n\t\t\t\tval = x.f;\n\t\t\t\tif(y.indexOf(\":\") == -1) y = y + \":\" + y;\n\t\t\t}\n\t\t\tif(x.f != null) val = x.f;\n\t\t\telse if(x.t == 'z') continue;\n\t\t\telse if(x.t == 'n' && x.v != null) val = \"\" + x.v;\n\t\t\telse if(x.t == 'b') val = x.v ? \"TRUE\" : \"FALSE\";\n\t\t\telse if(x.w !== undefined) val = \"'\" + x.w;\n\t\t\telse if(x.v === undefined) continue;\n\t\t\telse if(x.t == 's') val = \"'\" + x.v;\n\t\t\telse val = \"\"+x.v;\n\t\t\tcmds[cmds.length] = y + \"=\" + val;\n\t\t}\n\t}\n\treturn cmds;\n}\n\nfunction sheet_add_json(_ws/*:?Worksheet*/, js/*:Array*/, opts)/*:Worksheet*/ {\n\tvar o = opts || {};\n\tvar dense = _ws ? (_ws[\"!data\"] != null) : o.dense;\n\tif(DENSE != null && dense == null) dense = DENSE;\n\tvar offset = +!o.skipHeader;\n\tvar ws/*:Worksheet*/ = _ws || ({});\n\tif(!_ws && dense) ws[\"!data\"] = [];\n\tvar _R = 0, _C = 0;\n\tif(ws && o.origin != null) {\n\t\tif(typeof o.origin == 'number') _R = o.origin;\n\t\telse {\n\t\t\tvar _origin/*:CellAddress*/ = typeof o.origin == \"string\" ? decode_cell(o.origin) : o.origin;\n\t\t\t_R = _origin.r; _C = _origin.c;\n\t\t}\n\t}\n\tvar range/*:Range*/ = ({s: {c:0, r:0}, e: {c:_C, r:_R + js.length - 1 + offset}}/*:any*/);\n\tif(ws['!ref']) {\n\t\tvar _range = safe_decode_range(ws['!ref']);\n\t\trange.e.c = Math.max(range.e.c, _range.e.c);\n\t\trange.e.r = Math.max(range.e.r, _range.e.r);\n\t\tif(_R == -1) { _R = _range.e.r + 1; range.e.r = _R + js.length - 1 + offset; }\n\t} else {\n\t\tif(_R == -1) { _R = 0; range.e.r = js.length - 1 + offset; }\n\t}\n\tvar hdr/*:Array*/ = o.header || [], C = 0;\n\tvar ROW = [];\n\tjs.forEach(function (JS, R/*:number*/) {\n\t\tif(dense && !ws[\"!data\"][_R + R + offset]) ws[\"!data\"][_R + R + offset] = [];\n\t\tif(dense) ROW = ws[\"!data\"][_R + R + offset];\n\t\tkeys(JS).forEach(function(k) {\n\t\t\tif((C=hdr.indexOf(k)) == -1) hdr[C=hdr.length] = k;\n\t\t\tvar v = JS[k];\n\t\t\tvar t = 'z';\n\t\t\tvar z = \"\";\n\t\t\tvar ref = dense ? \"\" : (encode_col(_C + C) + encode_row(_R + R + offset));\n\t\t\tvar cell/*:Cell*/ = dense ? ROW[_C + C] : ws[ref];\n\t\t\tif(v && typeof v === 'object' && !(v instanceof Date)){\n\t\t\t\tif(dense) ROW[_C + C] = v;\n\t\t\t\telse ws[ref] = v;\n\t\t\t} else {\n\t\t\t\tif(typeof v == 'number') t = 'n';\n\t\t\t\telse if(typeof v == 'boolean') t = 'b';\n\t\t\t\telse if(typeof v == 'string') t = 's';\n\t\t\t\telse if(v instanceof Date) {\n\t\t\t\t\tt = 'd';\n\t\t\t\t\tif(!o.cellDates) { t = 'n'; v = datenum(v); }\n\t\t\t\t\tz = (cell != null && cell.z && fmt_is_date(cell.z)) ? cell.z : (o.dateNF || table_fmt[14]);\n\t\t\t\t}\n\t\t\t\telse if(v === null && o.nullError) { t = 'e'; v = 0; }\n\t\t\t\tif(!cell) {\n\t\t\t\t\tif(!dense) ws[ref] = cell = ({t:t, v:v}/*:any*/);\n\t\t\t\t\telse ROW[_C + C] = cell = ({t:t, v:v}/*:any*/);\n\t\t\t\t} else {\n\t\t\t\t\tcell.t = t; cell.v = v;\n\t\t\t\t\tdelete cell.w; delete cell.R;\n\t\t\t\t\tif(z) cell.z = z;\n\t\t\t\t}\n\t\t\t\tif(z) cell.z = z;\n\t\t\t}\n\t\t});\n\t});\n\trange.e.c = Math.max(range.e.c, _C + hdr.length - 1);\n\tvar __R = encode_row(_R);\n\tif(dense && !ws[\"!data\"][_R]) ws[\"!data\"][_R] = [];\n\tif(offset) for(C = 0; C < hdr.length; ++C) {\n\t\tif(dense) ws[\"!data\"][_R][C + _C] = {t:'s', v:hdr[C]};\n\t\telse ws[encode_col(C + _C) + __R] = {t:'s', v:hdr[C]};\n\t}\n\tws['!ref'] = encode_range(range);\n\treturn ws;\n}\nfunction json_to_sheet(js/*:Array*/, opts)/*:Worksheet*/ { return sheet_add_json(null, js, opts); }\n\n/* get cell, creating a stub if necessary */\nfunction ws_get_cell_stub(ws/*:Worksheet*/, R, C/*:?number*/)/*:Cell*/ {\n\t/* A1 cell address */\n\tif(typeof R == \"string\") {\n\t\tif(ws[\"!data\"] != null) {\n\t\t\tvar RC = decode_cell(R);\n\t\t\tif(!ws[\"!data\"][RC.r]) ws[\"!data\"][RC.r] = [];\n\t\t\treturn ws[\"!data\"][RC.r][RC.c] || (ws[\"!data\"][RC.r][RC.c] = {t:'z'});\n\t\t}\n\t\treturn ws[R] || (ws[R] = {t:'z'});\n\t}\n\t/* cell address object */\n\tif(typeof R != \"number\") return ws_get_cell_stub(ws, encode_cell(R));\n\t/* R and C are 0-based indices */\n\treturn ws_get_cell_stub(ws, encode_col(C||0) + encode_row(R));\n}\n\n/* find sheet index for given name / validate index */\nfunction wb_sheet_idx(wb/*:Workbook*/, sh/*:number|string*/) {\n\tif(typeof sh == \"number\") {\n\t\tif(sh >= 0 && wb.SheetNames.length > sh) return sh;\n\t\tthrow new Error(\"Cannot find sheet # \" + sh);\n\t} else if(typeof sh == \"string\") {\n\t\tvar idx = wb.SheetNames.indexOf(sh);\n\t\tif(idx > -1) return idx;\n\t\tthrow new Error(\"Cannot find sheet name |\" + sh + \"|\");\n\t} else throw new Error(\"Cannot find sheet |\" + sh + \"|\");\n}\n\n/* simple blank workbook object */\nfunction book_new()/*:Workbook*/ {\n\treturn { SheetNames: [], Sheets: {} };\n}\n\n/* add a worksheet to the end of a given workbook */\nfunction book_append_sheet(wb/*:Workbook*/, ws/*:Worksheet*/, name/*:?string*/, roll/*:?boolean*/)/*:string*/ {\n\tvar i = 1;\n\tif(!name) for(; i <= 0xFFFF; ++i, name = undefined) if(wb.SheetNames.indexOf(name = \"Sheet\" + i) == -1) break;\n\tif(!name || wb.SheetNames.length >= 0xFFFF) throw new Error(\"Too many worksheets\");\n\tif(roll && wb.SheetNames.indexOf(name) >= 0) {\n\t\tvar m = name.match(/(^.*?)(\\d+)$/);\n\t\ti = m && +m[2] || 0;\n\t\tvar root = m && m[1] || name;\n\t\tfor(++i; i <= 0xFFFF; ++i) if(wb.SheetNames.indexOf(name = root + i) == -1) break;\n\t}\n\tcheck_ws_name(name);\n\tif(wb.SheetNames.indexOf(name) >= 0) throw new Error(\"Worksheet with name |\" + name + \"| already exists!\");\n\n\twb.SheetNames.push(name);\n\twb.Sheets[name] = ws;\n\treturn name;\n}\n\n/* set sheet visibility (visible/hidden/very hidden) */\nfunction book_set_sheet_visibility(wb/*:Workbook*/, sh/*:number|string*/, vis/*:number*/) {\n\tif(!wb.Workbook) wb.Workbook = {};\n\tif(!wb.Workbook.Sheets) wb.Workbook.Sheets = [];\n\n\tvar idx = wb_sheet_idx(wb, sh);\n\t// $FlowIgnore\n\tif(!wb.Workbook.Sheets[idx]) wb.Workbook.Sheets[idx] = {};\n\n\tswitch(vis) {\n\t\tcase 0: case 1: case 2: break;\n\t\tdefault: throw new Error(\"Bad sheet visibility setting \" + vis);\n\t}\n\t// $FlowIgnore\n\twb.Workbook.Sheets[idx].Hidden = vis;\n}\n\n/* set number format */\nfunction cell_set_number_format(cell/*:Cell*/, fmt/*:string|number*/) {\n\tcell.z = fmt;\n\treturn cell;\n}\n\n/* set cell hyperlink */\nfunction cell_set_hyperlink(cell/*:Cell*/, target/*:string*/, tooltip/*:?string*/) {\n\tif(!target) {\n\t\tdelete cell.l;\n\t} else {\n\t\tcell.l = ({ Target: target }/*:Hyperlink*/);\n\t\tif(tooltip) cell.l.Tooltip = tooltip;\n\t}\n\treturn cell;\n}\nfunction cell_set_internal_link(cell/*:Cell*/, range/*:string*/, tooltip/*:?string*/) { return cell_set_hyperlink(cell, \"#\" + range, tooltip); }\n\n/* add to cell comments */\nfunction cell_add_comment(cell/*:Cell*/, text/*:string*/, author/*:?string*/) {\n\tif(!cell.c) cell.c = [];\n\tcell.c.push({t:text, a:author||\"SheetJS\"});\n}\n\n/* set array formula and flush related cells */\nfunction sheet_set_array_formula(ws/*:Worksheet*/, range, formula/*:string*/, dynamic/*:boolean*/) {\n\tvar rng = typeof range != \"string\" ? range : safe_decode_range(range);\n\tvar rngstr = typeof range == \"string\" ? range : encode_range(range);\n\tfor(var R = rng.s.r; R <= rng.e.r; ++R) for(var C = rng.s.c; C <= rng.e.c; ++C) {\n\t\tvar cell = ws_get_cell_stub(ws, R, C);\n\t\tcell.t = 'n';\n\t\tcell.F = rngstr;\n\t\tdelete cell.v;\n\t\tif(R == rng.s.r && C == rng.s.c) {\n\t\t\tcell.f = formula;\n\t\t\tif(dynamic) cell.D = true;\n\t\t}\n\t}\n\tvar wsr = decode_range(ws[\"!ref\"]);\n\tif(wsr.s.r > rng.s.r) wsr.s.r = rng.s.r;\n\tif(wsr.s.c > rng.s.c) wsr.s.c = rng.s.c;\n\tif(wsr.e.r < rng.e.r) wsr.e.r = rng.e.r;\n\tif(wsr.e.c < rng.e.c) wsr.e.c = rng.e.c;\n\tws[\"!ref\"] = encode_range(wsr);\n\treturn ws;\n}\n\nvar utils/*:any*/ = {\n\tencode_col: encode_col,\n\tencode_row: encode_row,\n\tencode_cell: encode_cell,\n\tencode_range: encode_range,\n\tdecode_col: decode_col,\n\tdecode_row: decode_row,\n\tsplit_cell: split_cell,\n\tdecode_cell: decode_cell,\n\tdecode_range: decode_range,\n\tformat_cell: format_cell,\n\tsheet_add_aoa: sheet_add_aoa,\n\tsheet_add_json: sheet_add_json,\n\tsheet_add_dom: sheet_add_dom,\n\taoa_to_sheet: aoa_to_sheet,\n\tjson_to_sheet: json_to_sheet,\n\ttable_to_sheet: parse_dom_table,\n\ttable_to_book: table_to_book,\n\tsheet_to_csv: sheet_to_csv,\n\tsheet_to_txt: sheet_to_txt,\n\tsheet_to_json: sheet_to_json,\n\tsheet_to_html: sheet_to_html,\n\tsheet_to_formulae: sheet_to_formulae,\n\tsheet_to_row_object_array: sheet_to_json,\n\tsheet_get_cell: ws_get_cell_stub,\n\tbook_new: book_new,\n\tbook_append_sheet: book_append_sheet,\n\tbook_set_sheet_visibility: book_set_sheet_visibility,\n\tcell_set_number_format: cell_set_number_format,\n\tcell_set_hyperlink: cell_set_hyperlink,\n\tcell_set_internal_link: cell_set_internal_link,\n\tcell_add_comment: cell_add_comment,\n\tsheet_set_array_formula: sheet_set_array_formula,\n\tconsts: {\n\t\tSHEET_VISIBLE: 0,\n\t\tSHEET_HIDDEN: 1,\n\t\tSHEET_VERY_HIDDEN: 2\n\t}\n};\n\nvar _Readable;\nfunction set_readable(R) { _Readable = R; }\n\nfunction write_csv_stream(sheet/*:Worksheet*/, opts/*:?Sheet2CSVOpts*/) {\n\tvar stream = _Readable();\n\tvar o = opts == null ? {} : opts;\n\tif(sheet == null || sheet[\"!ref\"] == null) { stream.push(null); return stream; }\n\tvar r = safe_decode_range(sheet[\"!ref\"]);\n\tvar FS = o.FS !== undefined ? o.FS : \",\", fs = FS.charCodeAt(0);\n\tvar RS = o.RS !== undefined ? o.RS : \"\\n\", rs = RS.charCodeAt(0);\n\tvar endregex = new RegExp((FS==\"|\" ? \"\\\\|\" : FS)+\"+$\");\n\tvar row/*:?string*/ = \"\", cols/*:Array*/ = [];\n\tvar colinfo/*:Array*/ = o.skipHidden && sheet[\"!cols\"] || [];\n\tvar rowinfo/*:Array*/ = o.skipHidden && sheet[\"!rows\"] || [];\n\tfor(var C = r.s.c; C <= r.e.c; ++C) if (!((colinfo[C]||{}).hidden)) cols[C] = encode_col(C);\n\tvar R = r.s.r;\n\tvar BOM = false, w = 0;\n\tstream._read = function() {\n\t\tif(!BOM) { BOM = true; return stream.push(\"\\uFEFF\"); }\n\t\twhile(R <= r.e.r) {\n\t\t\t++R;\n\t\t\tif ((rowinfo[R-1]||{}).hidden) continue;\n\t\t\trow = make_csv_row(sheet, r, R-1, cols, fs, rs, FS, o);\n\t\t\tif(row != null) {\n\t\t\t\tif(o.strip) row = row.replace(endregex,\"\");\n\t\t\t\tif(row || (o.blankrows !== false)) return stream.push((w++ ? RS : \"\") + row);\n\t\t\t}\n\t\t}\n\t\treturn stream.push(null);\n\t};\n\treturn stream;\n}\n\nfunction write_html_stream(ws/*:Worksheet*/, opts/*:?Sheet2HTMLOpts*/) {\n\tvar stream = _Readable();\n\n\tvar o = opts || {};\n\tvar header = o.header != null ? o.header : HTML_BEGIN;\n\tvar footer = o.footer != null ? o.footer : HTML_END;\n\tstream.push(header);\n\tvar r = decode_range(ws['!ref']);\n\tstream.push(make_html_preamble(ws, r, o));\n\tvar R = r.s.r;\n\tvar end = false;\n\tstream._read = function() {\n\t\tif(R > r.e.r) {\n\t\t\tif(!end) { end = true; stream.push(\"\" + footer); }\n\t\t\treturn stream.push(null);\n\t\t}\n\t\twhile(R <= r.e.r) {\n\t\t\tstream.push(make_html_row(ws, r, R, o));\n\t\t\t++R;\n\t\t\tbreak;\n\t\t}\n\t};\n\treturn stream;\n}\n\nfunction write_json_stream(sheet/*:Worksheet*/, opts/*:?Sheet2CSVOpts*/) {\n\tvar stream = _Readable({objectMode:true});\n\n\tif(sheet == null || sheet[\"!ref\"] == null) { stream.push(null); return stream; }\n\tvar val = {t:'n',v:0}, header = 0, offset = 1, hdr/*:Array*/ = [], v=0, vv=\"\";\n\tvar r = {s:{r:0,c:0},e:{r:0,c:0}};\n\tvar o = opts || {};\n\tvar range = o.range != null ? o.range : sheet[\"!ref\"];\n\tif(o.header === 1) header = 1;\n\telse if(o.header === \"A\") header = 2;\n\telse if(Array.isArray(o.header)) header = 3;\n\tswitch(typeof range) {\n\t\tcase 'string': r = safe_decode_range(range); break;\n\t\tcase 'number': r = safe_decode_range(sheet[\"!ref\"]); r.s.r = range; break;\n\t\tdefault: r = range;\n\t}\n\tif(header > 0) offset = 0;\n\tvar rr = encode_row(r.s.r);\n\tvar cols/*:Array*/ = [];\n\tvar counter = 0;\n\tvar dense = sheet[\"!data\"] != null;\n\tvar R = r.s.r, C = 0;\n\tvar header_cnt = {};\n\tif(dense && !sheet[\"!data\"][R]) sheet[\"!data\"][R] = [];\n\tvar colinfo/*:Array*/ = o.skipHidden && sheet[\"!cols\"] || [];\n\tvar rowinfo/*:Array*/ = o.skipHidden && sheet[\"!rows\"] || [];\n\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\tif(((colinfo[C]||{}).hidden)) continue;\n\t\tcols[C] = encode_col(C);\n\t\tval = dense ? sheet[\"!data\"][R][C] : sheet[cols[C] + rr];\n\t\tswitch(header) {\n\t\t\tcase 1: hdr[C] = C - r.s.c; break;\n\t\t\tcase 2: hdr[C] = cols[C]; break;\n\t\t\tcase 3: hdr[C] = o.header[C - r.s.c]; break;\n\t\t\tdefault:\n\t\t\t\tif(val == null) val = {w: \"__EMPTY\", t: \"s\"};\n\t\t\t\tvv = v = format_cell(val, null, o);\n\t\t\t\tcounter = header_cnt[v] || 0;\n\t\t\t\tif(!counter) header_cnt[v] = 1;\n\t\t\t\telse {\n\t\t\t\t\tdo { vv = v + \"_\" + (counter++); } while(header_cnt[vv]); header_cnt[v] = counter;\n\t\t\t\t\theader_cnt[vv] = 1;\n\t\t\t\t}\n\t\t\t\thdr[C] = vv;\n\t\t}\n\t}\n\tR = r.s.r + offset;\n\tstream._read = function() {\n\t\twhile(R <= r.e.r) {\n\t\t\tif ((rowinfo[R-1]||{}).hidden) continue;\n\t\t\tvar row = make_json_row(sheet, r, R, cols, header, hdr, o);\n\t\t\t++R;\n\t\t\tif((row.isempty === false) || (header === 1 ? o.blankrows !== false : !!o.blankrows)) {\n\t\t\t\tstream.push(row.row);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\treturn stream.push(null);\n\t};\n\treturn stream;\n}\n\nvar __stream = {\n\tto_json: write_json_stream,\n\tto_html: write_html_stream,\n\tto_csv: write_csv_stream,\n\tset_readable: set_readable\n};\nexport const version = XLSX.version;\nexport {\n\tparse_xlscfb,\n\tparse_zip,\n\treadSync as read,\n\treadFileSync as readFile,\n\treadFileSync,\n\twriteSync as write,\n\twriteFileSync as writeFile,\n\twriteFileSync,\n\twriteFileAsync,\n\twriteSyncXLSX as writeXLSX,\n\twriteFileSyncXLSX as writeFileXLSX,\n\tutils,\n\tset_fs,\n\tset_cptable,\n\t__stream as stream,\n\tSSF,\n\tCFB\n};\nexport default {\n\tparse_xlscfb,\n\tparse_zip,\n\tread: readSync,\n\treadFile: readFileSync,\n\treadFileSync,\n\twrite: writeSync,\n\twriteFile: writeFileSync,\n\twriteFileSync,\n\twriteFileAsync,\n\twriteXLSX: writeSyncXLSX,\n\twriteFileXLSX: writeFileSyncXLSX,\n\tutils,\n\tset_fs,\n\tset_cptable,\n\tstream: __stream,\n\tSSF,\n\tCFB\n}\n","import * as XLSX from 'xlsx';\r\n\r\n/*\r\n * Xlsx library utils\r\n */\r\n\r\nexport class XlsxUtils {\r\n static sheetFromArrayOfArrays(data: any): any {\r\n const ws = {};\r\n\r\n const range = { s: { c: 10000000, r: 10000000 }, e: { c: 0, r: 0 } };\r\n\r\n for (let R = 0; R !== data.length; ++R) {\r\n for (let C = 0; C !== data[R].length; ++C) {\r\n if (range.s.r > R) {\r\n range.s.r = R;\r\n }\r\n if (range.s.c > C) {\r\n range.s.c = C;\r\n }\r\n if (range.e.r < R) {\r\n range.e.r = R;\r\n }\r\n if (range.e.c < C) {\r\n range.e.c = C;\r\n }\r\n\r\n const cell: any = { v: data[R][C] };\r\n\r\n if (cell.v == null) {\r\n continue;\r\n }\r\n\r\n const cellRef = XLSX.utils.encode_cell({ c: C, r: R });\r\n\r\n if (typeof cell.v === 'number') {\r\n cell.t = 'n';\r\n } else if (typeof cell.v === 'boolean') {\r\n cell.t = 'b';\r\n } else if (cell.v instanceof Date) {\r\n cell.t = 'n';\r\n cell.z = XLSX.SSF._table[14];\r\n cell.v = this.datenum(cell.v, null);\r\n } else {\r\n cell.t = 's';\r\n }\r\n\r\n ws[cellRef] = cell;\r\n }\r\n }\r\n\r\n if (range.s.c < 10000000) {\r\n ws['!ref'] = XLSX.utils.encode_range(range);\r\n }\r\n\r\n return ws;\r\n }\r\n\r\n static s2ab(s: any): any {\r\n const buf = new ArrayBuffer(s.length);\r\n const view = new Uint8Array(buf);\r\n for (let i = 0; i !== s.length; ++i) {\r\n // eslint-disable-next-line no-bitwise\r\n view[i] = s.charCodeAt(i) & 0xff;\r\n }\r\n return buf;\r\n }\r\n\r\n static datenum(v: any, date1904: any): any {\r\n if (date1904) {\r\n v += 1462;\r\n }\r\n\r\n const epoch = Date.parse(v);\r\n return (epoch - new Date(Date.UTC(1899, 11, 30)).getTime()) / (24 * 60 * 60 * 1000);\r\n }\r\n}\r\n","export class Workbook {\r\n SheetNames: Array = [];\r\n Sheets: any = {};\r\n}\r\n","export class ExcelReportUtils {\r\n static roundFormat(value, exp) {\r\n return this.decimalAdjust('round', value, exp);\r\n }\r\n\r\n static decimalAdjust(type, value, exp) {\r\n // If the exp is undefined or zero...\r\n if (typeof exp === 'undefined' || +exp === 0) {\r\n return Math[type](value);\r\n }\r\n value = +value;\r\n exp = +exp;\r\n // If the value is not a number or the exp is not an integer...\r\n if (isNaN(value) || !(typeof exp === 'number' && exp % 1 === 0)) {\r\n return NaN;\r\n }\r\n // Shift\r\n value = value.toString().split('e');\r\n value = Math[type](+`${value[0]}e${value[1] ? +value[1] - exp : -exp}`);\r\n // Shift back\r\n value = value.toString().split('e');\r\n return +`${value[0]}e${value[1] ? +value[1] + exp : exp}`;\r\n }\r\n}\r\n","import { Case, SuncorMaterialStream } from '../../_models';\r\nimport { ExcelReportUtils } from './excel-report.utils';\r\nimport { WaterMaterialStream } from '../../_models/_streams/water-material-stream';\r\nimport { FuelGasMaterialStream } from '../../_models/_streams/fuel-gas-material-stream';\r\nimport { Splitter } from '../../_models/_unit-operations/splitter';\r\nimport { Mixer } from '../../_models/_unit-operations/mixer';\r\n\r\ndeclare let unitConverter: any;\r\n\r\nexport class InletOutletExcelReport {\r\n static generateDataArray(c: Case): any[] {\r\n const dataArray = [];\r\n\r\n Object.values(c.unitOperationPool).forEach(unitOperation => {\r\n if (\r\n !(unitOperation instanceof Splitter) &&\r\n !(unitOperation instanceof Mixer) &&\r\n unitOperation.flowsheetId === ''\r\n ) {\r\n const outletStreams = c.getStreamsByInletUnitOperationId(unitOperation.id) as SuncorMaterialStream[];\r\n const inletStreams = c.getStreamsByOutletUnitOperationId(unitOperation.id) as SuncorMaterialStream[];\r\n\r\n inletStreams.forEach(stream => {\r\n this.addMainFlowsheetStreamReport(dataArray, stream, `${unitOperation.name} Inlet`);\r\n });\r\n\r\n outletStreams.forEach(stream => {\r\n this.addMainFlowsheetStreamReport(dataArray, stream, `${unitOperation.name} Outlet`);\r\n });\r\n }\r\n });\r\n\r\n return dataArray;\r\n }\r\n\r\n static generateUnitOperationFlowsheetDataArray(\r\n c: Case,\r\n flowsheetOwnerId: string,\r\n isUpgraderOwnerFlowsheet: boolean\r\n ): any[] {\r\n const dataArray = [];\r\n const streamIds = c.getAllSuncorMaterialStreamIds();\r\n\r\n for (const id of streamIds) {\r\n const stream = c.getSuncorMaterialStream(id);\r\n if (stream) {\r\n const inletUnitOperationflowsheetId = stream.inletUnitOperation.flowsheetId;\r\n if (inletUnitOperationflowsheetId === flowsheetOwnerId) {\r\n this.addStreamReport(dataArray, stream, isUpgraderOwnerFlowsheet);\r\n }\r\n }\r\n }\r\n\r\n return dataArray;\r\n }\r\n\r\n static generateWaterUtilityFlowsheetDataArray(c: Case, flowsheetOwnerId: string): any[] {\r\n const dataArray = [];\r\n const streamIds = c.getAllWaterMaterialStreamIds();\r\n\r\n for (const id of streamIds) {\r\n const waterStream = c.getWaterStream(id);\r\n if (waterStream) {\r\n const inletUnitOperationflowsheetId = waterStream.inletUnitOperation.flowsheetId;\r\n if (inletUnitOperationflowsheetId === flowsheetOwnerId) {\r\n this.addWaterStreamReport(dataArray, waterStream);\r\n }\r\n }\r\n }\r\n\r\n return dataArray;\r\n }\r\n\r\n static generateFuelGasUtilityFlowsheetDataArray(c: Case, flowsheetOwnerId: string): any[] {\r\n const dataArray = [];\r\n const streamIds = c.getAllFuelGasMaterialStreamIds();\r\n\r\n for (const id of streamIds) {\r\n const fuelGasStream = c.getFuelGasStream(id);\r\n if (fuelGasStream) {\r\n const inletUnitOperationflowsheetId = fuelGasStream.inletUnitOperation.flowsheetId;\r\n if (inletUnitOperationflowsheetId === flowsheetOwnerId) {\r\n this.addFuelGasStreamReport(dataArray, fuelGasStream);\r\n }\r\n }\r\n }\r\n\r\n return dataArray;\r\n }\r\n\r\n private static addMainFlowsheetStreamReport(dataArray: any[], stream: SuncorMaterialStream, columnHeader: string) {\r\n if (typeof dataArray[0] === 'undefined') {\r\n dataArray.push(['Stream name', '']);\r\n this.addStreamReportRowHeadersInCommon(dataArray);\r\n\r\n dataArray.push(['']);\r\n dataArray.push(['Mass Composition (wt%)', '']);\r\n dataArray.push(['Light Ends', '']);\r\n dataArray.push(['Light Naphtha', '']);\r\n dataArray.push(['Heavy Naphtha', '']);\r\n dataArray.push(['Distillate', '']);\r\n dataArray.push(['LGO', '']);\r\n dataArray.push(['HGO', '']);\r\n dataArray.push(['VGO', '']);\r\n dataArray.push(['HVGO', '']);\r\n dataArray.push(['Resid', '']);\r\n dataArray.push(['']);\r\n\r\n this.addDistillationCompositionRowHeaders(dataArray);\r\n }\r\n\r\n let rowNum = 0;\r\n dataArray[rowNum++].push(`${columnHeader} - ${stream.name}`);\r\n rowNum = this.addStreamReportValuesOfRowsInCommon(dataArray, stream, rowNum++);\r\n\r\n dataArray[rowNum++].push('');\r\n dataArray[rowNum++].push('');\r\n dataArray[rowNum++].push('');\r\n\r\n stream.composition.forEach(sc => {\r\n dataArray[rowNum++].push(\r\n ExcelReportUtils.roundFormat(sc.convertToAnotherUnit(unitConverter.units.MassFraction.WATER_PERCENT), -2)\r\n );\r\n });\r\n\r\n this.addDistillationCompositionRowValues(dataArray, stream, rowNum++);\r\n }\r\n\r\n private static addStreamReport(dataArray: any[], stream: SuncorMaterialStream, isUpgraderOwnerFlowsheet: boolean) {\r\n if (typeof dataArray[0] === 'undefined') {\r\n dataArray.push(['Stream name', '']);\r\n dataArray.push(['From', '']);\r\n dataArray.push(['To', '']);\r\n this.addStreamReportRowHeadersInCommon(dataArray);\r\n\r\n if (isUpgraderOwnerFlowsheet) {\r\n this.addDistillationCompositionRowHeaders(dataArray);\r\n }\r\n }\r\n\r\n let rowNum = 0;\r\n dataArray[rowNum++].push(stream.name);\r\n dataArray[rowNum++].push(stream.inletUnitOperation.name);\r\n dataArray[rowNum++].push(stream.outletUnitOperation.name);\r\n rowNum = this.addStreamReportValuesOfRowsInCommon(dataArray, stream, rowNum++);\r\n\r\n if (isUpgraderOwnerFlowsheet) {\r\n this.addDistillationCompositionRowValues(dataArray, stream, rowNum++);\r\n }\r\n }\r\n\r\n private static addWaterStreamReport(dataArray: any[], stream: WaterMaterialStream) {\r\n if (typeof dataArray[0] === 'undefined') {\r\n dataArray.push(['Stream name', '']);\r\n dataArray.push(['From', '']);\r\n dataArray.push(['To', '']);\r\n dataArray.push(['']);\r\n dataArray.push(['Mass Flowrate (kpph)', '']);\r\n dataArray.push(['Temperature (C)', '']);\r\n dataArray.push(['Pressure (kPaa)', '']);\r\n dataArray.push(['']);\r\n }\r\n\r\n let rowNum = 0;\r\n dataArray[rowNum++].push(stream.name);\r\n dataArray[rowNum++].push(stream.inletUnitOperation.name);\r\n dataArray[rowNum++].push(stream.outletUnitOperation.name);\r\n dataArray[rowNum++].push('');\r\n dataArray[rowNum++].push(ExcelReportUtils.roundFormat(stream.massFlowrate.convertToDefaultUnit(), -2));\r\n dataArray[rowNum++].push(ExcelReportUtils.roundFormat(stream.temperature.convertToDefaultUnit(), -2));\r\n dataArray[rowNum++].push(ExcelReportUtils.roundFormat(stream.pressure.convertToDefaultUnit(), -2));\r\n dataArray[rowNum++].push('');\r\n }\r\n\r\n private static addFuelGasStreamReport(dataArray: any[], stream: FuelGasMaterialStream) {\r\n if (typeof dataArray[0] === 'undefined') {\r\n dataArray.push(['Stream name', '']);\r\n dataArray.push(['From', '']);\r\n dataArray.push(['To', '']);\r\n dataArray.push(['']);\r\n dataArray.push(['Volumetric Flowrate (MMSCFD)', '']);\r\n dataArray.push(['Heat Flow (GJ/h)', '']);\r\n dataArray.push(['Lower Heating Value (BTU/scf)', '']);\r\n dataArray.push(['']);\r\n dataArray.push(['Composition (mol%)']);\r\n\r\n const compositionNames = [\r\n 'CO',\r\n 'CO2',\r\n 'H2',\r\n 'N2',\r\n 'H2S',\r\n 'SO2',\r\n 'Methane',\r\n 'Ethane',\r\n 'Propane',\r\n 'IC4',\r\n 'NC4',\r\n 'IC5',\r\n 'NC5',\r\n 'C6+',\r\n ];\r\n\r\n for (const idx in compositionNames) {\r\n dataArray.push([compositionNames[idx], '']);\r\n }\r\n }\r\n\r\n let rowNum = 0;\r\n dataArray[rowNum++].push(stream.name);\r\n dataArray[rowNum++].push(stream.inletUnitOperation.name);\r\n dataArray[rowNum++].push(stream.outletUnitOperation.name);\r\n dataArray[rowNum++].push('');\r\n dataArray[rowNum++].push(ExcelReportUtils.roundFormat(stream.flowrate.convertToDefaultUnit(), -2));\r\n dataArray[rowNum++].push(\r\n ExcelReportUtils.roundFormat(stream.heatFlow.convertToAnotherUnit(unitConverter.units.Energyrate.GJ_H), -2)\r\n );\r\n dataArray[rowNum++].push(\r\n ExcelReportUtils.roundFormat(stream.lhv.convertToAnotherUnit(unitConverter.units.EnergyPerVolume.BTU_SCF), -2)\r\n );\r\n dataArray[rowNum++].push('');\r\n dataArray[rowNum++].push('');\r\n\r\n for (const idx in stream.composition) {\r\n dataArray[rowNum++].push(ExcelReportUtils.roundFormat(stream.composition[idx].convertToDefaultUnit(), -4));\r\n }\r\n }\r\n\r\n private static addStreamReportRowHeadersInCommon(dataArray: any[]) {\r\n dataArray.push(['']);\r\n dataArray.push(['Mass Flowrate (tpd)', '']);\r\n dataArray.push(['Volumetric Flowrate (kbpcd)', '']);\r\n dataArray.push(['GHG Emissions (MMtpa)', '']);\r\n dataArray.push(['GHG Intensity (kg/bbl)', '']);\r\n dataArray.push(['Price (CAD $/bbl)', '']);\r\n dataArray.push(['']);\r\n\r\n dataArray.push(['']);\r\n dataArray.push(['Bulk Properties', '']);\r\n dataArray.push(['Mass density (API)', '']);\r\n dataArray.push(['CCR (wt%)', '']);\r\n dataArray.push(['Sulfur (wt%)', '']);\r\n dataArray.push(['Nitrogen (wt%)', '']);\r\n dataArray.push(['']);\r\n }\r\n\r\n private static addStreamReportValuesOfRowsInCommon(dataArray: any[], stream: SuncorMaterialStream, rowNum: number) {\r\n dataArray[rowNum++].push('');\r\n dataArray[rowNum++].push(\r\n ExcelReportUtils.roundFormat(\r\n stream.massFlowrate.convertToAnotherUnit(unitConverter.units.Massflowrate.TONNES_D),\r\n -2\r\n )\r\n );\r\n dataArray[rowNum++].push(ExcelReportUtils.roundFormat(stream.volumetricFlowrate.convertToDefaultUnit(), -2));\r\n dataArray[rowNum++].push(ExcelReportUtils.roundFormat(stream.ghgEmissions.convertToDefaultUnit(), -2));\r\n dataArray[rowNum++].push(ExcelReportUtils.roundFormat(stream.ghgIntensity.convertToDefaultUnit(), -2));\r\n dataArray[rowNum++].push(ExcelReportUtils.roundFormat(stream.price.convertToDefaultUnit(), -2));\r\n dataArray[rowNum++].push('');\r\n dataArray[rowNum++].push('');\r\n\r\n dataArray[rowNum++].push('');\r\n dataArray[rowNum++].push(ExcelReportUtils.roundFormat(stream.massDensity.convertToDefaultUnit(), -2));\r\n dataArray[rowNum++].push(ExcelReportUtils.roundFormat(stream.ccr.convertToDefaultUnit(), -4));\r\n dataArray[rowNum++].push(ExcelReportUtils.roundFormat(stream.sulfur.convertToDefaultUnit(), -4));\r\n dataArray[rowNum++].push(ExcelReportUtils.roundFormat(stream.nitrogen.convertToDefaultUnit(), -4));\r\n\r\n return rowNum++;\r\n }\r\n\r\n private static addDistillationCompositionRowHeaders(dataArray: any[]) {\r\n dataArray.push(['']);\r\n dataArray.push(['Distillation Composition (vol%)', '']);\r\n dataArray.push(['Naphtha', '']);\r\n dataArray.push(['Kerosene', '']);\r\n dataArray.push(['Light Gas Oil', '']);\r\n dataArray.push(['Heavy Gas Oil', '']);\r\n dataArray.push(['Bottoms', '']);\r\n dataArray.push(['']);\r\n }\r\n\r\n private static addDistillationCompositionRowValues(dataArray: any[], stream: SuncorMaterialStream, rowNum: number) {\r\n dataArray[rowNum++].push('');\r\n dataArray[rowNum++].push('');\r\n dataArray[rowNum++].push('');\r\n\r\n stream.distillationComposition.forEach(sc => {\r\n dataArray[rowNum++].push(\r\n ExcelReportUtils.roundFormat(sc.convertToAnotherUnit(unitConverter.units.VolumeFraction.VOLUME_PERCENT), -2)\r\n );\r\n });\r\n\r\n return rowNum++;\r\n }\r\n}\r\n","import { ExcelReportUtils } from './excel-report.utils';\r\nimport { Case } from '../../_models';\r\n\r\nexport class KpiManagerExcelReport {\r\n static generateDataArray(c: Case) {\r\n const { kpiManager } = c.caseStudyManager;\r\n\r\n const dataArray = [['Variable name', 'Unit', 'Current value']];\r\n // const dataContainer = [];\r\n\r\n for (const kpi of kpiManager.selectedKpis) {\r\n dataArray.push([\r\n kpi.getFullName(),\r\n kpi.unit,\r\n ExcelReportUtils.roundFormat(kpi.convertToDefaultUnit(true, false), -2),\r\n ]);\r\n }\r\n\r\n return dataArray;\r\n }\r\n}\r\n","import { ConstraintsReport } from '../../_models/_reports/_optimization-settings-table/constraints-report';\r\nimport { Case } from '../../_models';\r\nimport { ExcelReportUtils } from './excel-report.utils';\r\nimport { ConstraintReportVariable } from '../../_models/_reports/_optimization-settings-table/constraint-report-variable';\r\n\r\nexport class ConstraintsExcelReport {\r\n static generateDataArray(constraintsReport: ConstraintsReport, c: Case) {\r\n const dataArray = [['Active', 'Block name', 'Constraint', 'Constraint value', 'Current value', 'unit']];\r\n\r\n for (const constraint of constraintsReport.constraints) {\r\n const arrayConstraintElement = [\r\n constraint.unitOperationName,\r\n constraint.name,\r\n ExcelReportUtils.roundFormat(constraint.constraintValue, -2),\r\n ExcelReportUtils.roundFormat(constraint.currentValue, -2),\r\n constraint.constraintUnit,\r\n ];\r\n\r\n if (constraint instanceof ConstraintReportVariable) {\r\n const simvar = c.getSimulationVariable(constraint.simVarId);\r\n arrayConstraintElement.splice(0, 0, simvar.isActive ? 'true' : 'false');\r\n } else {\r\n arrayConstraintElement.splice(0, 0, constraint.isActive ? 'true' : 'false');\r\n }\r\n\r\n dataArray.push(arrayConstraintElement);\r\n }\r\n\r\n return dataArray;\r\n }\r\n}\r\n","import { ConstraintsReport } from '../../_models/_reports/_optimization-settings-table/constraints-report';\r\nimport { Case } from '../../_models';\r\nimport { SuncorUnitOperation } from '../../_models/_unit-operations/suncor-unit-operation';\r\nimport { ExcelReportUtils } from './excel-report.utils';\r\n\r\nexport class MassBalanceExcelReport {\r\n static generateDataArray(c: Case, flowsheetOwnerId?: string): any[] {\r\n const dataArray = [\r\n [\r\n 'Block name',\r\n 'All values in kg/s',\r\n 'Light ends',\r\n 'light naphtha',\r\n 'Heavy naphtha',\r\n 'Distillate',\r\n 'LGO',\r\n 'HGO',\r\n 'VGO',\r\n 'HVGO',\r\n 'Resid',\r\n ],\r\n [''],\r\n ];\r\n\r\n const uos = c.filterUnitOperations((uo: SuncorUnitOperation) => {\r\n if (flowsheetOwnerId) {\r\n return uo instanceof SuncorUnitOperation && uo.flowsheetId === flowsheetOwnerId\r\n ? uo.outletCutMassFlows.length > 0 || uo.inletCutMassFlows.length > 0\r\n : false;\r\n }\r\n return uo instanceof SuncorUnitOperation && uo.flowsheetId === ''\r\n ? uo.outletCutMassFlows.length > 0 || uo.inletCutMassFlows.length > 0\r\n : false;\r\n });\r\n\r\n uos.forEach((uo: SuncorUnitOperation) => {\r\n const inlets = [uo.name, 'Total inlet'];\r\n const outlets = ['', 'Total outlet'];\r\n uo.inletCutMassFlows.forEach(value => {\r\n inlets.push(ExcelReportUtils.roundFormat(value, -2));\r\n });\r\n uo.outletCutMassFlows.forEach(value => {\r\n outlets.push(ExcelReportUtils.roundFormat(value, -2));\r\n });\r\n dataArray.push(inlets);\r\n dataArray.push(outlets);\r\n dataArray.push(['']);\r\n });\r\n return dataArray;\r\n }\r\n}\r\n","import { Case, SuncorMaterialStream, UnitOperation } from '../../_models';\r\nimport { unitOperationsConfig } from '../../_config/unit-operations.config';\r\nimport { CommodityTank } from '../../_models/_unit-operations/commodity-tank';\r\nimport { ExcelReportUtils } from './excel-report.utils';\r\n\r\nexport class CommodityTankExcelReport {\r\n static generateDataArray(c: Case, flowsheetOwnerId: string): any[] {\r\n const dataArray = [\r\n [\r\n 'Commodity Tank Name',\r\n 'Product Price (CAD$/bbl)',\r\n 'GHG Intensity (kg/bbl)',\r\n 'Flow (kbpcd)',\r\n 'Revenue (MMCAD/yr)',\r\n ],\r\n [''],\r\n ];\r\n const commodityTanks = c.filterUnitOperations((uo: UnitOperation) => {\r\n return uo.category === unitOperationsConfig.commodityTank.key && uo.flowsheetId === flowsheetOwnerId;\r\n });\r\n commodityTanks.forEach((ct: CommodityTank) => {\r\n const revenue =\r\n ExcelReportUtils.roundFormat(ct.productPrice.convertToDefaultUnit(true, false), -2) *\r\n ExcelReportUtils.roundFormat(ct.commodityVolume.convertToDefaultUnit(true, false), -2) *\r\n 365 *\r\n 1e-3;\r\n const stream = c.filterSuncorMaterialStreams((s: SuncorMaterialStream) => {\r\n return s.fromPort === ct.id;\r\n })[0];\r\n const row = [ct.name];\r\n row.push(ExcelReportUtils.roundFormat(ct.productPrice.convertToDefaultUnit(true, false), -2));\r\n row.push(ExcelReportUtils.roundFormat(stream.ghgIntensity.convertToDefaultUnit(true, false), -2));\r\n row.push(ExcelReportUtils.roundFormat(ct.commodityVolume.convertToDefaultUnit(true, false), -2));\r\n row.push(ExcelReportUtils.roundFormat(revenue, -2));\r\n dataArray.push(row);\r\n });\r\n\r\n return dataArray;\r\n }\r\n}\r\n","import { Case } from '../../_models';\r\nimport { GhgEmissionsReport } from '../../_models/_reports/ghg-emissions-report';\r\nimport { ExcelReportUtils } from './excel-report.utils';\r\n\r\nexport class GhgExcelReport {\r\n static generateDataArray(ghgEmissionsReport: GhgEmissionsReport, c: Case, flowsheetOwnerId?: string) {\r\n const dataArray = [['Source', 'GHG Value (MMtpa)', 'Flowsheet Owner']];\r\n\r\n if (flowsheetOwnerId) {\r\n for (const upgraderSubFlowsheet of ghgEmissionsReport.contributionByUpgraderSubFlowsheet) {\r\n if (upgraderSubFlowsheet.id === flowsheetOwnerId) {\r\n upgraderSubFlowsheet.data.map(unitData => {\r\n dataArray.push([\r\n unitData.name,\r\n ExcelReportUtils.roundFormat(unitData.value, -2),\r\n upgraderSubFlowsheet.name,\r\n ]);\r\n });\r\n }\r\n }\r\n } else {\r\n for (const unit of ghgEmissionsReport.contributionByUnit) {\r\n unit.data.map(unitData => {\r\n dataArray.push([unitData.name, ExcelReportUtils.roundFormat(unitData.value, -2), '']);\r\n });\r\n }\r\n }\r\n\r\n return dataArray;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\ndeclare let unitConverter: any;\r\n\r\n@Injectable()\r\nexport class NumberToUnitConverter {\r\n convert(value: number, quantity: string, unit: string, round: boolean = false): number {\r\n const internalUnit = this.getInternalUnit(quantity);\r\n const conversion = unitConverter(quantity).convert(value, internalUnit, unit);\r\n\r\n if (round) {\r\n return conversion.round().getValue();\r\n }\r\n\r\n return conversion.getValue();\r\n }\r\n\r\n convertToInternalUnit(options: { value: number; quantity: string; fromUnit: string }): number {\r\n const internalUnit = this.getInternalUnit(options.quantity);\r\n const conversion = unitConverter(options.quantity).convert(options.value, options.fromUnit, internalUnit);\r\n return conversion.getValue();\r\n }\r\n\r\n convertToDefaultUnit(value: number, quantity: string, round: boolean = false): number {\r\n const internalUnit = this.getInternalUnit(quantity);\r\n const defaultUnit = this.getDefaultUnit(quantity);\r\n\r\n const conversion = unitConverter(quantity).convert(value, internalUnit, defaultUnit);\r\n\r\n return round ? conversion.round().getValue() : conversion.getValue();\r\n }\r\n\r\n convertDefaultToInternalUnit(value: number, quantity: string, round: boolean = false): number {\r\n const internalUnit = this.getInternalUnit(quantity);\r\n const defaultUnit = this.getDefaultUnit(quantity);\r\n\r\n return this.convertToAnotherUnit(value, quantity, defaultUnit, internalUnit, round);\r\n }\r\n\r\n convertToAnotherUnit(\r\n value: number,\r\n quantity: string,\r\n fromUnit: string,\r\n toUnit: string,\r\n round: boolean = false\r\n ): number {\r\n const conversion = unitConverter(quantity).convert(value, fromUnit, toUnit);\r\n\r\n if (round) {\r\n return conversion.round().getValue();\r\n }\r\n\r\n return conversion.getValue();\r\n }\r\n\r\n formatNumber(n: number): string {\r\n return unitConverter.formatNumber(n);\r\n }\r\n\r\n private getInternalUnit(quantity: string): string {\r\n return unitConverter(quantity).getInternalUnit();\r\n }\r\n\r\n private getDefaultUnit(quantity: string): string {\r\n return unitConverter(quantity).getDefaultUnit();\r\n }\r\n}\r\n","import { AfterViewInit, Component, Input, OnChanges, SimpleChanges } from '@angular/core';\r\nimport * as Highcharts from 'highcharts';\r\nimport { ChartObject } from 'highcharts';\r\nimport { NumberToUnitConverter } from '../../../_services/number-to-unit-converter.service';\r\nimport { UtilitiesSummaryReportData } from '../../../_models/_reports/utilities-summary-report-data';\r\n\r\n@Component({\r\n selector: 'sob-utilities-summary-report-chart',\r\n templateUrl: './utilities-summary-report-chart.component.html',\r\n styleUrls: ['./utilities-summary-report-chart.component.css'],\r\n})\r\nexport class UtilitiesSummaryReportChartComponent implements AfterViewInit, OnChanges {\r\n @Input() data: UtilitiesSummaryReportData;\r\n @Input() idPrefix: string;\r\n @Input() upgraderName: string;\r\n\r\n constructor(private nuc: NumberToUnitConverter) {}\r\n\r\n ngAfterViewInit() {\r\n this.build();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (!changes['data'].firstChange) {\r\n this.build();\r\n }\r\n }\r\n\r\n build() {\r\n this.buildChart();\r\n this.buildTable();\r\n }\r\n\r\n private buildChart() {\r\n const series = [\r\n {\r\n name: this.data.displayTitle,\r\n colorByPoint: true,\r\n data: this.data.reportItems.map(ri => {\r\n return { y: ri.value, unitOperationName: ri.unitOperationName };\r\n }),\r\n },\r\n ];\r\n\r\n const chartOptions = this.getChartOptions(this.data.displayTitle, 'kpph', series);\r\n const initialisedChart = Highcharts.chart(`${this.idPrefix}usr${this.data.type}`, chartOptions);\r\n this.showEmptyChartMessage(initialisedChart);\r\n }\r\n\r\n showEmptyChartMessage(initialisedChart: ChartObject) {\r\n if (this.data.reportItems.length === 0) {\r\n if (this.data.displayTitle.includes('Make')) {\r\n initialisedChart.showLoading(`Upgrader \"${this.upgraderName}\" does not report Steam Make`);\r\n } else {\r\n initialisedChart.showLoading(`Upgrader \"${this.upgraderName}\" does not report Steam Use`);\r\n }\r\n }\r\n }\r\n\r\n private getChartOptions(title, unit, series) {\r\n return {\r\n chart: {\r\n plotBackgroundColor: null,\r\n plotBorderWidth: null,\r\n plotShadow: false,\r\n type: 'pie',\r\n },\r\n\r\n credits: {\r\n enabled: false,\r\n },\r\n\r\n title: {\r\n text: title,\r\n },\r\n\r\n plotOptions: {\r\n series: {\r\n dataLabels: {\r\n enabled: true,\r\n format: `{point.unitOperationName}: {point.y:,.1f} ${unit}`,\r\n style: {\r\n fontSize: '10px',\r\n },\r\n },\r\n },\r\n },\r\n tooltip: {\r\n headerFormat: '{series.name}
',\r\n // eslint-disable-next-line max-len\r\n pointFormat: `{point.unitOperationName}: {point.y:,.1f} ${unit} - {point.percentage:.1f}%
`,\r\n },\r\n series,\r\n };\r\n }\r\n\r\n private buildTable() {\r\n const $table = $(`#${this.idPrefix}usr${this.data.type}Table`);\r\n\r\n if (($.fn).dataTable.isDataTable(`#${this.idPrefix}usr${this.data.type}Table`)) {\r\n ($table).DataTable().destroy();\r\n }\r\n\r\n const opts = {\r\n data: this.data.reportItems,\r\n paging: false,\r\n searching: false,\r\n info: false,\r\n order: [[1, 'desc']],\r\n columns: [\r\n {\r\n data: 'unitOperationName',\r\n },\r\n {\r\n data: (data, type) => {\r\n if (type === 'display') {\r\n return `${this.nuc.formatNumber(data.value)} kpph`;\r\n }\r\n return data.value;\r\n },\r\n },\r\n ],\r\n };\r\n\r\n ($table).DataTable(opts);\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n

{{ data.displayTitle }}

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
Unit OperationMass Flowrate
Total{{ data.total | thousandSeparator }}
\r\n
\r\n
\r\n
\r\n
\r\n","
\r\n
\r\n
    \r\n
  • \r\n \r\n Make\r\n \r\n
  • \r\n\r\n
  • \r\n \r\n Use\r\n \r\n
  • \r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
    \r\n
  • \r\n \r\n Make\r\n \r\n
  • \r\n\r\n
  • \r\n \r\n Use\r\n \r\n
  • \r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n
    \r\n
  • \r\n \r\n Make\r\n \r\n
  • \r\n\r\n
  • \r\n \r\n Use\r\n \r\n
  • \r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
    \r\n
  • \r\n \r\n Make\r\n \r\n
  • \r\n\r\n
  • \r\n \r\n Use\r\n \r\n
  • \r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n","import { Component, Input } from '@angular/core';\r\nimport { CoreService } from '../../../_services/core.service';\r\nimport { WaterUtilityUnitOperation } from '../../../_models/_unit-operations/utilties/water-utility-unit-operation';\r\nimport { unitOperationsConfig } from '../../../_config/unit-operations.config';\r\nimport { SteamType } from '../../../_config/steam-type.enum';\r\nimport { WaterSourceImport } from '../../../_models/_unit-operations/utilties/water-source-import';\r\nimport { WaterSinkImport } from '../../../_models/_unit-operations/utilties/water-sink-import';\r\nimport { WaterSourceInformationStream } from '../../../_models/_unit-operations/utilties/water-source-information-stream';\r\nimport { BaseWaterImportUnitOperation } from '../../../_models/_unit-operations/utilties/base-water-import-unit-operation';\r\nimport { NumberToUnitConverter } from '../../../_services/number-to-unit-converter.service';\r\nimport { Quantity } from '../../../_config/quantity.enum';\r\nimport { WaterBoiler } from '../../../_models/_unit-operations/utilties/water-boiler';\r\nimport { WaterTurbine } from '../../../_models/_unit-operations/utilties/water-turbine';\r\nimport {\r\n UtilitiesSummaryReportData,\r\n UtilitiesSummaryReportItem,\r\n} from '../../../_models/_reports/utilities-summary-report-data';\r\nimport { WaterCogeneration } from '../../../_models/_unit-operations/utilties/water-cogeneration';\r\nimport { WaterUnitOperation } from '../../../_models/_unit-operations/utilties/water-unit-operation';\r\n\r\ndeclare let unitConverter: any;\r\n\r\n@Component({\r\n selector: 'sob-utilities-summary-report',\r\n templateUrl: './utilities-summary-report.component.html',\r\n styleUrls: ['./utilities-summary-report.component.css'],\r\n})\r\nexport class UtilitiesSummaryReportComponent {\r\n @Input() upgraderName: string;\r\n\r\n steamUse50ReportData: UtilitiesSummaryReportData;\r\n steamMake50ReportData: UtilitiesSummaryReportData;\r\n\r\n steamUse150ReportData: UtilitiesSummaryReportData;\r\n steamMake150ReportData: UtilitiesSummaryReportData;\r\n\r\n steamUse600ReportData: UtilitiesSummaryReportData;\r\n steamMake600ReportData: UtilitiesSummaryReportData;\r\n\r\n steamUse900ReportData: UtilitiesSummaryReportData;\r\n steamMake900ReportData: UtilitiesSummaryReportData;\r\n\r\n upgraderId = '';\r\n\r\n constructor(private coreService: CoreService, private nuc: NumberToUnitConverter) {}\r\n\r\n buildReport(id?: string) {\r\n let utilitiesUnitOperation;\r\n if (id) {\r\n utilitiesUnitOperation = this.getUtilitiesUnitOperation(id);\r\n this.buildData(utilitiesUnitOperation ? utilitiesUnitOperation.id : '');\r\n this.upgraderId = id;\r\n } else {\r\n utilitiesUnitOperation = this.getUtilitiesUnitOperation();\r\n this.buildData(utilitiesUnitOperation ? utilitiesUnitOperation.id : '');\r\n }\r\n }\r\n\r\n private buildData(utilitiesUnitOperationId: string) {\r\n // 50\r\n const steamUse50Units = this.getWaterSinkImportUnits(utilitiesUnitOperationId, SteamType.Steam50);\r\n this.steamUse50ReportData = this.createSingleReportData(steamUse50Units, 'steam50Use', '50 psig Steam Use');\r\n\r\n const steamMake50Units = this.getWaterSourceImportUnits(utilitiesUnitOperationId, SteamType.Steam50);\r\n this.steamMake50ReportData = this.createSingleReportData(steamMake50Units, 'steam50Make', '50 psig Steam Make');\r\n\r\n // 150\r\n const steamUse150Units = this.getWaterSinkImportUnits(utilitiesUnitOperationId, SteamType.Steam150);\r\n this.steamUse150ReportData = this.createSingleReportData(steamUse150Units, 'steam150Use', '150 psig Steam Use');\r\n\r\n const steamMake150Units = this.getWaterSourceImportUnits(utilitiesUnitOperationId, SteamType.Steam150);\r\n this.steamMake150ReportData = this.createSingleReportData(steamMake150Units, 'steam150Make', '150 psig Steam Make');\r\n\r\n // 600\r\n const steamUse600Units = this.getWaterSinkImportUnits(utilitiesUnitOperationId, SteamType.Steam600);\r\n this.steamUse600ReportData = this.createSingleReportData(steamUse600Units, 'steam600Use', '600 psig Steam Use');\r\n\r\n const steamMake600Units = this.getWaterSourceImportUnits(utilitiesUnitOperationId, SteamType.Steam600);\r\n this.steamMake600ReportData = this.createSingleReportData(steamMake600Units, 'steam600Make', '600 psig Steam Make');\r\n\r\n this.buildSteam900Data(utilitiesUnitOperationId);\r\n }\r\n\r\n private buildSteam900Data(utilitiesUnitOperationId: string) {\r\n const steamUse900Units = this.getWaterSinkImportUnits(utilitiesUnitOperationId, SteamType.Steam900);\r\n this.steamUse900ReportData = this.createSingleReportData(\r\n steamUse900Units,\r\n 'steam900Use',\r\n '900 psig Steam Use',\r\n true\r\n );\r\n const turbinesReportData = this.getTurbinesInletFlowrateReportData(utilitiesUnitOperationId);\r\n this.steamUse900ReportData.reportItems.push(...turbinesReportData.reportItems);\r\n this.steamUse900ReportData.total = this.nuc.convert(\r\n this.steamUse900ReportData.total + turbinesReportData.total,\r\n Quantity.MASSFLOWRATE,\r\n unitConverter.units.Massflowrate.KPPH,\r\n true\r\n );\r\n\r\n const steamMake900Units = this.getWaterSourceImportUnits(utilitiesUnitOperationId, SteamType.Steam900);\r\n this.steamMake900ReportData = this.createSingleReportData(\r\n steamMake900Units,\r\n 'steam900Make',\r\n '900 psig Steam Make',\r\n true\r\n );\r\n\r\n const boilersReportData = this.getBoilersOutletFlowrateReportData(utilitiesUnitOperationId);\r\n this.steamMake900ReportData.reportItems.push(...boilersReportData.reportItems);\r\n this.steamMake900ReportData.total = this.nuc.convert(\r\n this.steamMake900ReportData.total + boilersReportData.total,\r\n Quantity.MASSFLOWRATE,\r\n unitConverter.units.Massflowrate.KPPH,\r\n true\r\n );\r\n }\r\n\r\n private createSingleReportData(\r\n waterImportUnitsArray: BaseWaterImportUnitOperation[],\r\n type: string,\r\n displayTitle: string,\r\n totalInInternalUnit: boolean = false\r\n ): UtilitiesSummaryReportData {\r\n let allReportItems: UtilitiesSummaryReportItem[] = [];\r\n\r\n let total = 0;\r\n for (const wiu of waterImportUnitsArray) {\r\n const currentReportItems = [];\r\n for (const infStream of wiu.inletSourceInformationStreams) {\r\n currentReportItems.push(this.informationStreamToUtilitiesSummaryReportItem(infStream));\r\n total += infStream.massFlowrate.value;\r\n }\r\n\r\n allReportItems = allReportItems.concat(currentReportItems);\r\n }\r\n\r\n if (!totalInInternalUnit) {\r\n total = this.nuc.convert(total, Quantity.MASSFLOWRATE, 'kpph', true);\r\n }\r\n\r\n return {\r\n type,\r\n reportItems: allReportItems,\r\n total,\r\n displayTitle,\r\n };\r\n }\r\n\r\n private informationStreamToUtilitiesSummaryReportItem(informationStream: WaterSourceInformationStream) {\r\n const unitOperationName = this.coreService.currentCase.getUnitOperation(\r\n informationStream.providerUnitOperationId\r\n ).name;\r\n const massFlowrateUnit = unitConverter.units.Massflowrate.KPPH;\r\n return {\r\n value: informationStream.massFlowrate.convertToAnotherUnit(massFlowrateUnit),\r\n unitOperationName,\r\n } as UtilitiesSummaryReportItem;\r\n }\r\n\r\n private getUtilitiesUnitOperation(id?: string): WaterUtilityUnitOperation {\r\n let result;\r\n if (id) {\r\n result = this.coreService.currentCase.filterUnitOperations(\r\n uo => uo.category === unitOperationsConfig.waterUtilityUnitOperation.key && uo.flowsheetId === id\r\n );\r\n } else {\r\n result = this.coreService.currentCase.filterUnitOperations(\r\n uo => uo.category === unitOperationsConfig.waterUtilityUnitOperation.key\r\n );\r\n }\r\n // TODO what if it has more than 1 element?\r\n if (result.length) {\r\n return result[0] as WaterUtilityUnitOperation;\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n private getWaterSourceImportUnits(ownerFlowsheetId: string, steamType: SteamType): WaterSourceImport[] {\r\n return this.coreService.currentCase.filterUnitOperations(\r\n uo => uo.flowsheetId === ownerFlowsheetId && uo instanceof WaterSourceImport && uo.steamType === steamType\r\n ) as WaterSourceImport[];\r\n }\r\n\r\n private getWaterSinkImportUnits(ownerFlowsheetId: string, steamType: SteamType): WaterSinkImport[] {\r\n return this.coreService.currentCase.filterUnitOperations(\r\n uo => uo.flowsheetId === ownerFlowsheetId && uo instanceof WaterSinkImport && uo.steamType === steamType\r\n ) as WaterSinkImport[];\r\n }\r\n\r\n private getBoilersOutletFlowrateReportData(ownerFlowsheetId: string): UtilitiesSummaryReportData {\r\n const unitOperations = this.coreService.currentCase.filterUnitOperations(\r\n uo => uo.flowsheetId === ownerFlowsheetId && (uo instanceof WaterBoiler || uo instanceof WaterCogeneration)\r\n ) as WaterUnitOperation[];\r\n\r\n let total = 0;\r\n const reportItems: UtilitiesSummaryReportItem[] = [];\r\n\r\n const massFlowrateUnit = unitConverter.units.Massflowrate.KPPH;\r\n unitOperations.forEach(uo => {\r\n const outletStream = this.coreService.currentCase.filterWaterMaterialStreams(\r\n s => s.inletUnitOperationId === uo.id\r\n )[0];\r\n\r\n if (!outletStream) {\r\n return;\r\n }\r\n\r\n total += outletStream.massFlowrate.hasNumericValue() ? outletStream.massFlowrate.value : 0;\r\n\r\n reportItems.push({\r\n value: outletStream.massFlowrate.convertToAnotherUnit(massFlowrateUnit),\r\n unitOperationName: uo.name,\r\n });\r\n });\r\n\r\n return {\r\n reportItems,\r\n total,\r\n type: '',\r\n displayTitle: '',\r\n };\r\n }\r\n\r\n private getTurbinesInletFlowrateReportData(ownerFlowsheetId: string): UtilitiesSummaryReportData {\r\n const turbines = this.coreService.currentCase.filterUnitOperations(\r\n uo => uo.flowsheetId === ownerFlowsheetId && uo instanceof WaterTurbine\r\n ) as WaterTurbine[];\r\n\r\n let total = 0;\r\n const reportItems: UtilitiesSummaryReportItem[] = [];\r\n\r\n const massFlowrateUnit = unitConverter.units.Massflowrate.KPPH;\r\n turbines.forEach(turbine => {\r\n const inletStream = this.coreService.currentCase.filterWaterMaterialStreams(\r\n s => s.outletUnitOperationId === turbine.id\r\n )[0];\r\n\r\n if (!inletStream) {\r\n return;\r\n }\r\n\r\n total += inletStream.massFlowrate.hasNumericValue() ? inletStream.massFlowrate.value : 0;\r\n\r\n reportItems.push({\r\n value: inletStream.massFlowrate.convertToAnotherUnit(massFlowrateUnit),\r\n unitOperationName: turbine.name,\r\n });\r\n });\r\n\r\n return {\r\n reportItems,\r\n total,\r\n displayTitle: '',\r\n type: '',\r\n };\r\n }\r\n}\r\n","import { Case, UnitOperation } from '../../_models';\r\nimport { UtilitiesSummaryReportComponent } from '../../flowsheet/summary-report/utilities-summary-report/utilities-summary-report.component';\r\nimport { unitOperationsConfig } from '../../_config/unit-operations.config';\r\nimport { ArrayDiff } from '../../_utils/array-diff';\r\nimport { UtilitiesSummaryReportItem } from '../../_models/_reports/utilities-summary-report-data';\r\n\r\nexport class SteamExcelReport {\r\n static generateDataArray(steamReport: UtilitiesSummaryReportComponent, c: Case, flowsheetOwnerId: string) {\r\n const dataArray = [\r\n [\r\n 'Unit Operation Name',\r\n '900# Steam Make',\r\n '900# Steam Use',\r\n '600# Steam Make',\r\n '600# Steam Use',\r\n '150# Steam Make',\r\n '150# Steam Use',\r\n '50# Steam Make',\r\n '50# Steam Use',\r\n ],\r\n ];\r\n\r\n this.getSteamValuesByUnitOperation(steamReport, dataArray, flowsheetOwnerId, c);\r\n return dataArray;\r\n }\r\n\r\n static getUnitOperationNamesBySubFlowsheet(\r\n flowsheetOwnerId: string,\r\n c: Case,\r\n steamReport: UtilitiesSummaryReportComponent\r\n ) {\r\n const upgraderSubFlowsheetUos = c.filterUnitOperations((uo: UnitOperation) => {\r\n return uo.flowsheetId === flowsheetOwnerId;\r\n });\r\n\r\n const steamSubFlowsheet = upgraderSubFlowsheetUos.filter(u => {\r\n return u.category === unitOperationsConfig.waterUtilityUnitOperation.key;\r\n });\r\n\r\n const steamSubFlowsheetUos = c.filterUnitOperations((uo: UnitOperation) => {\r\n if (steamSubFlowsheet.length !== 0) {\r\n return uo.flowsheetId === steamSubFlowsheet[0].id;\r\n }\r\n return false;\r\n });\r\n\r\n const unitOperationNamesBySubFlowsheet = upgraderSubFlowsheetUos.concat(steamSubFlowsheetUos).map(u => {\r\n return u.name;\r\n });\r\n const unitOperationNames = this.getReportUnitOperationNames(steamReport);\r\n\r\n const arrayDiff = new ArrayDiff(unitOperationNamesBySubFlowsheet);\r\n const diff = arrayDiff.diff(unitOperationNames, (l: string, r: string) => {\r\n return l === r;\r\n });\r\n\r\n return diff.intersection.length !== 0 ? diff.intersection : [];\r\n }\r\n\r\n static getReportUnitOperationNames(steamReport: UtilitiesSummaryReportComponent) {\r\n const unitOperationNames = [];\r\n\r\n for (const property in steamReport) {\r\n if (property.includes('ReportData')) {\r\n steamReport[property].reportItems.forEach(uo => {\r\n unitOperationNames.push(uo.unitOperationName);\r\n });\r\n }\r\n }\r\n\r\n return [...new Set(unitOperationNames)];\r\n }\r\n\r\n static getSteamValuesByUnitOperation(\r\n steamReport: UtilitiesSummaryReportComponent,\r\n dataArray: any[],\r\n flowsheetOwnerId: string,\r\n c: Case\r\n ) {\r\n const unitOpNames = this.getUnitOperationNamesBySubFlowsheet(flowsheetOwnerId, c, steamReport);\r\n\r\n if (unitOpNames.length !== 0) {\r\n unitOpNames.forEach(u => {\r\n let sM900;\r\n let sU900;\r\n let sM600;\r\n let sU600;\r\n let sM150;\r\n let sU150;\r\n let sM50;\r\n let sU50;\r\n\r\n sM900 = this.getSteamValue(steamReport.steamMake900ReportData.reportItems, u);\r\n sU900 = this.getSteamValue(steamReport.steamUse900ReportData.reportItems, u);\r\n sM600 = this.getSteamValue(steamReport.steamMake600ReportData.reportItems, u);\r\n sU600 = this.getSteamValue(steamReport.steamUse600ReportData.reportItems, u);\r\n sM150 = this.getSteamValue(steamReport.steamMake150ReportData.reportItems, u);\r\n sU150 = this.getSteamValue(steamReport.steamUse150ReportData.reportItems, u);\r\n sM50 = this.getSteamValue(steamReport.steamMake50ReportData.reportItems, u);\r\n sU50 = this.getSteamValue(steamReport.steamUse50ReportData.reportItems, u);\r\n\r\n dataArray.push([u, sM900, sU900, sM600, sU600, sM150, sU150, sM50, sU50]);\r\n });\r\n }\r\n }\r\n\r\n static getSteamValue(steamReportData: UtilitiesSummaryReportItem[], unitOperationName: string) {\r\n let steamValue = 0;\r\n steamReportData.filter(uo => {\r\n if (uo.unitOperationName === unitOperationName) {\r\n steamValue = uo.value;\r\n }\r\n });\r\n return steamValue;\r\n }\r\n}\r\n","import { AfterViewInit, Component, Input, OnChanges, SimpleChanges } from '@angular/core';\r\nimport * as Highcharts from 'highcharts';\r\nimport { ChartObject } from 'highcharts';\r\nimport { UtilitiesSummaryReportData } from '../../../_models/_reports/utilities-summary-report-data';\r\nimport { NumberToUnitConverter } from '../../../_services/number-to-unit-converter.service';\r\n\r\n@Component({\r\n selector: 'sob-fuel-gas-summary-report-chart',\r\n templateUrl: './fuel-gas-summary-report-chart.component.html',\r\n styleUrls: ['./fuel-gas-summary-report-chart.component.css'],\r\n})\r\nexport class FuelGasSummaryReportChartComponent implements AfterViewInit, OnChanges {\r\n @Input() data: UtilitiesSummaryReportData;\r\n @Input() unit: string;\r\n @Input() idPrefix: string;\r\n @Input() upgraderName: string;\r\n\r\n constructor(private nuc: NumberToUnitConverter) {}\r\n\r\n ngAfterViewInit() {\r\n this.build();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (!changes['data'].firstChange) {\r\n this.build();\r\n }\r\n }\r\n\r\n build() {\r\n this.buildChart();\r\n this.buildTable();\r\n }\r\n\r\n private buildChart() {\r\n const series = [\r\n {\r\n name: this.data.displayTitle,\r\n colorByPoint: true,\r\n data: this.data.reportItems.map(ri => {\r\n return { y: ri.value, unitOperationName: ri.unitOperationName };\r\n }),\r\n },\r\n ];\r\n\r\n const chartOptions = this.getChartOptions(this.data.displayTitle, this.unit, series);\r\n const initialisedChart = Highcharts.chart(`${this.idPrefix}ufgr${this.data.type}`, chartOptions);\r\n this.showEmptyChartMessage(initialisedChart);\r\n }\r\n\r\n showEmptyChartMessage(initialisedChart: ChartObject) {\r\n if (this.data.reportItems.length === 0) {\r\n if (this.data.displayTitle.includes('Make')) {\r\n initialisedChart.showLoading(`Upgrader \"${this.upgraderName}\" does not report Fuel Gas Make`);\r\n } else {\r\n initialisedChart.showLoading(`Upgrader \"${this.upgraderName}\" does not report Fuel Gas Use`);\r\n }\r\n }\r\n }\r\n\r\n private getChartOptions(title, unit, series) {\r\n return {\r\n chart: {\r\n plotBackgroundColor: null,\r\n plotBorderWidth: null,\r\n plotShadow: false,\r\n type: 'pie',\r\n },\r\n\r\n credits: {\r\n enabled: false,\r\n },\r\n\r\n title: {\r\n text: title,\r\n },\r\n\r\n plotOptions: {\r\n series: {\r\n dataLabels: {\r\n enabled: true,\r\n format: `{point.unitOperationName}: {point.y:,.1f} ${unit}`,\r\n style: {\r\n fontSize: '10px',\r\n },\r\n },\r\n },\r\n },\r\n tooltip: {\r\n headerFormat: '{series.name}
',\r\n // eslint-disable-next-line max-len\r\n pointFormat: `{point.unitOperationName}: {point.y:,.1f} ${unit} - {point.percentage:.1f}%
`,\r\n },\r\n series,\r\n };\r\n }\r\n\r\n private buildTable() {\r\n const $table = $(`#${this.idPrefix}ufgr${this.data.type}Table`);\r\n\r\n if (($.fn).dataTable.isDataTable(`#${this.idPrefix}ufgr${this.data.type}Table`)) {\r\n ($table).DataTable().destroy();\r\n }\r\n\r\n const opts = {\r\n data: this.data.reportItems,\r\n paging: false,\r\n searching: false,\r\n info: false,\r\n order: [[1, 'desc']],\r\n columns: [\r\n {\r\n data: 'unitOperationName',\r\n },\r\n {\r\n data: (data, type) => {\r\n if (type === 'display') {\r\n return `${this.nuc.formatNumber(data.value)} ${this.unit}`;\r\n }\r\n return data.value;\r\n },\r\n },\r\n ],\r\n };\r\n\r\n ($table).DataTable(opts);\r\n }\r\n\r\n changeUnitColumnName() {\r\n return this.data.type === 'fuelGasMake' ? 'Flowrate' : 'Energy Use';\r\n }\r\n}\r\n","
    \r\n
  • \r\n \r\n Pie Chart\r\n \r\n
  • \r\n\r\n
  • \r\n \r\n Table\r\n \r\n
  • \r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n

{{ data.displayTitle }}

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
Unit Operation{{ changeUnitColumnName() }}
Total{{ data.total | thousandSeparator }}
\r\n
\r\n
\r\n
\r\n
\r\n","
\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n","import { Component, Input } from '@angular/core';\r\nimport {\r\n UtilitiesSummaryReportData,\r\n UtilitiesSummaryReportItem,\r\n} from '../../../_models/_reports/utilities-summary-report-data';\r\nimport { unitOperationsConfig } from '../../../_config/unit-operations.config';\r\nimport { CoreService } from '../../../_services/core.service';\r\nimport { FuelGasUtilityUnitOperation } from '../../../_models/_unit-operations/fuel-gas/fuel-gas-utility-unit-operation';\r\nimport { FuelGasSourceImport } from '../../../_models/_unit-operations/fuel-gas/fuel-gas-source-import';\r\nimport { FuelGasSource } from '../../../_models/_unit-operations/fuel-gas/fuel-gas-source';\r\nimport { FuelGasSinkImport } from '../../../_models/_unit-operations/fuel-gas/fuel-gas-sink-import';\r\nimport { FuelGasFlare } from '../../../_models/_unit-operations/fuel-gas/fuel-gas-flare';\r\nimport { FuelGasSourceInformationStream } from '../../../_models/_unit-operations/fuel-gas/fuel-gas-source-information-stream';\r\nimport { GasContributorUnitOperation } from '../../../_models/_unit-operations/gas-contributor-unit-operation';\r\nimport { SimulationVariable, UnitOperation } from '../../../_models';\r\nimport { NumberToUnitConverter } from '../../../_services/number-to-unit-converter.service';\r\nimport { Quantity } from '../../../_config/quantity.enum';\r\nimport { WaterBoiler } from '../../../_models/_unit-operations/utilties/water-boiler';\r\nimport { WaterCogeneration } from '../../../_models/_unit-operations/utilties/water-cogeneration';\r\n\r\ndeclare let unitConverter: any;\r\n\r\n@Component({\r\n selector: 'sob-fuel-gas-summary-report',\r\n templateUrl: './fuel-gas-summary-report.component.html',\r\n styleUrls: ['./fuel-gas-summary-report.component.css'],\r\n})\r\nexport class FuelGasSummaryReportComponent {\r\n @Input() upgraderName: string;\r\n fuelGasMakeReportData: UtilitiesSummaryReportData;\r\n fuelGasMakeUnit = unitConverter.units.Molarflowrate.MMSCFD;\r\n fuelGasUseReportData: UtilitiesSummaryReportData;\r\n fuelGasUseUnit = unitConverter.units.Energyrate.GJ_H;\r\n upgraderId = '';\r\n\r\n constructor(private coreService: CoreService, private nuc: NumberToUnitConverter) {}\r\n\r\n buildReport(id?: string) {\r\n let fuelGasUtilityUnitOperation;\r\n if (id) {\r\n fuelGasUtilityUnitOperation = this.getFuelGasUtilityUnitOperation(id);\r\n this.buildData(fuelGasUtilityUnitOperation ? fuelGasUtilityUnitOperation.id : '');\r\n this.upgraderId = id;\r\n } else {\r\n fuelGasUtilityUnitOperation = this.getFuelGasUtilityUnitOperation();\r\n this.buildData(fuelGasUtilityUnitOperation ? fuelGasUtilityUnitOperation.id : '');\r\n }\r\n }\r\n\r\n private getFuelGasUtilityUnitOperation(id?: string): FuelGasUtilityUnitOperation {\r\n let result = null;\r\n if (id) {\r\n result = this.coreService.currentCase.filterUnitOperations(\r\n uo => uo.category === unitOperationsConfig.fuelGasUtilityUnitOperation.key && uo.flowsheetId === id\r\n );\r\n } else {\r\n result = this.coreService.currentCase.filterUnitOperations(\r\n uo => uo.category === unitOperationsConfig.fuelGasUtilityUnitOperation.key\r\n );\r\n }\r\n\r\n // TODO what if it has more than 1 element?\r\n if (result.length) {\r\n return result[0] as FuelGasUtilityUnitOperation;\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n private buildData(ownerFlowsheetId: string) {\r\n this.fuelGasMakeReportData = this.buildFuelGasMakeReportData(ownerFlowsheetId);\r\n this.fuelGasUseReportData = this.buildFuelGasUseReportData(ownerFlowsheetId);\r\n }\r\n\r\n private buildFuelGasMakeReportData(ownerFlowsheetId: string): UtilitiesSummaryReportData {\r\n const fuelGasSourceUnits = this.getFuelGasSourceUnits(ownerFlowsheetId);\r\n const fuelGasMakeContributorsList = this.getFuelGasMakeContributors(ownerFlowsheetId);\r\n\r\n const allReportItems: UtilitiesSummaryReportItem[] = [];\r\n let total = 0;\r\n\r\n for (const fuelGasSource of fuelGasSourceUnits) {\r\n total += fuelGasSource.flowrate.value;\r\n allReportItems.push(this.flowrateToUtilitiesSummaryReportItem(fuelGasSource.flowrate, fuelGasSource.name));\r\n }\r\n\r\n for (const fuelGasMakeContributor of fuelGasMakeContributorsList) {\r\n total += fuelGasMakeContributor.flowrate.value;\r\n allReportItems.push(\r\n this.flowrateToUtilitiesSummaryReportItem(fuelGasMakeContributor.flowrate, fuelGasMakeContributor.name)\r\n );\r\n }\r\n\r\n total = this.nuc.convert(total, Quantity.MOLARFLOWRATE, this.fuelGasMakeUnit, true);\r\n\r\n return {\r\n type: 'fuelGasMake',\r\n reportItems: allReportItems,\r\n total,\r\n displayTitle: 'Fuel Gas Make',\r\n };\r\n }\r\n\r\n private buildFuelGasUseReportData(ownerFlowsheetId: string): UtilitiesSummaryReportData {\r\n const fuelGasFlareUnits = this.getFuelGasFlareUnits(ownerFlowsheetId);\r\n const fuelGasUseContributorsList = this.getFuelGasUseContributors(ownerFlowsheetId);\r\n\r\n const allReportItems: UtilitiesSummaryReportItem[] = [];\r\n let total = 0;\r\n\r\n for (const uo of fuelGasUseContributorsList) {\r\n let simVar;\r\n\r\n if (uo instanceof GasContributorUnitOperation) {\r\n simVar = uo.energyFlow;\r\n } else if (uo instanceof WaterBoiler) {\r\n simVar = uo.power;\r\n } else if (uo instanceof WaterCogeneration) {\r\n simVar = uo.totalEnergyDemand;\r\n }\r\n\r\n total += simVar.value;\r\n\r\n allReportItems.push(this.energyFlowToUtilitiesSummaryReportItem(simVar, uo.name));\r\n }\r\n\r\n total = this.nuc.convert(total, Quantity.ENERGYRATE, this.fuelGasUseUnit, true);\r\n\r\n return {\r\n type: 'fuelGasUse',\r\n reportItems: allReportItems,\r\n total,\r\n displayTitle: 'Fuel Gas Use',\r\n };\r\n }\r\n\r\n private flowrateToUtilitiesSummaryReportItem(flowrate: SimulationVariable, unitOperationName: string) {\r\n const flowrateUnit = unitConverter.units.Molarflowrate.MMSCFD;\r\n return {\r\n value: flowrate.convertToAnotherUnit(flowrateUnit),\r\n unitOperationName,\r\n } as UtilitiesSummaryReportItem;\r\n }\r\n\r\n private energyFlowToUtilitiesSummaryReportItem(energyFlow: SimulationVariable, unitOperationName: string) {\r\n const energyFlowUnit = unitConverter.units.Energyrate.GJ_H;\r\n\r\n return {\r\n value: energyFlow.convertToAnotherUnit(energyFlowUnit),\r\n unitOperationName,\r\n } as UtilitiesSummaryReportItem;\r\n }\r\n\r\n private getFuelGasMakeContributors(ownerFlowsheetId: string): GasContributorUnitOperation[] {\r\n const fuelGasSourceImportUnits = this.getFuelGasSourceImportUnits(ownerFlowsheetId);\r\n\r\n const informationStreams = fuelGasSourceImportUnits.map(fgs => fgs.inletSourceInformationStreams);\r\n\r\n // flat the array, from [][] to []\r\n const flatInformationStreams = [].concat.apply([], informationStreams) as FuelGasSourceInformationStream[];\r\n\r\n const gasContributorIds = flatInformationStreams.map(is => is.providerUnitOperationId);\r\n\r\n const gasContributors = [];\r\n\r\n for (const id of gasContributorIds) {\r\n gasContributors.push(this.coreService.currentCase.getUnitOperation(id));\r\n }\r\n\r\n return gasContributors;\r\n }\r\n\r\n private getFuelGasUseContributors(ownerFlowsheetId: string): UnitOperation[] {\r\n const fuelGasSinkImportUnits = this.getFuelGasSinkImportUnits(ownerFlowsheetId);\r\n\r\n const energyStreams = fuelGasSinkImportUnits.map(fgs => fgs.energyStreams);\r\n\r\n // flatten the array, from [][] to []\r\n const flatEnergyStreams = [].concat.apply([], energyStreams) as FuelGasSourceInformationStream[];\r\n\r\n const gasContributorIds = flatEnergyStreams.map(is => is.providerUnitOperationId);\r\n\r\n const gasContributors = [];\r\n\r\n for (const id of gasContributorIds) {\r\n gasContributors.push(this.coreService.currentCase.getUnitOperation(id));\r\n }\r\n\r\n return gasContributors;\r\n }\r\n\r\n private getFuelGasSourceImportUnits(ownerFlowsheetId: string): FuelGasSourceImport[] {\r\n return this.coreService.currentCase.filterUnitOperations(\r\n uo => uo instanceof FuelGasSourceImport && uo.flowsheetId === ownerFlowsheetId\r\n ) as FuelGasSourceImport[];\r\n }\r\n\r\n private getFuelGasSourceUnits(ownerFlowsheetId: string): FuelGasSource[] {\r\n return this.coreService.currentCase.filterUnitOperations(\r\n uo => uo instanceof FuelGasSource && uo.flowsheetId === ownerFlowsheetId\r\n ) as FuelGasSource[];\r\n }\r\n\r\n private getFuelGasSinkImportUnits(ownerFlowsheetId: string): FuelGasSinkImport[] {\r\n return this.coreService.currentCase.filterUnitOperations(\r\n uo => uo instanceof FuelGasSinkImport && uo.flowsheetId === ownerFlowsheetId\r\n ) as FuelGasSinkImport[];\r\n }\r\n\r\n private getFuelGasFlareUnits(ownerFlowsheetId: string): FuelGasFlare[] {\r\n return this.coreService.currentCase.filterUnitOperations(\r\n uo => uo instanceof FuelGasFlare && uo.flowsheetId === ownerFlowsheetId\r\n ) as FuelGasFlare[];\r\n }\r\n}\r\n","import { FuelGasSummaryReportComponent } from '../../flowsheet/summary-report/fuel-gas-summary-report/fuel-gas-summary-report.component';\r\nimport { Case, UnitOperation } from '../../_models';\r\nimport { unitOperationsConfig } from '../../_config/unit-operations.config';\r\nimport { ArrayDiff } from '../../_utils/array-diff';\r\nimport { UtilitiesSummaryReportItem } from '../../_models/_reports/utilities-summary-report-data';\r\n\r\nexport class FuelGasExcelReport {\r\n static generateDataArray(fuelGasReport: FuelGasSummaryReportComponent, c: Case, flowsheetOwnerId: string) {\r\n const dataArray = [['Source', 'Fuel Gas Make (MMSCFD)', 'Fuel Gas Use (GJ/h)']];\r\n\r\n this.getFuelGasValuesByUnitOperation(fuelGasReport, dataArray, flowsheetOwnerId, c);\r\n return dataArray;\r\n }\r\n\r\n static getUnitOperationNamesBySubFlowsheet(\r\n flowsheetOwnerId: string,\r\n c: Case,\r\n fuelGasReport: FuelGasSummaryReportComponent\r\n ) {\r\n const upgraderSubFlowsheetUos = c.filterUnitOperations((uo: UnitOperation) => {\r\n return uo.flowsheetId === flowsheetOwnerId;\r\n });\r\n\r\n const steamSubFlowsheet = upgraderSubFlowsheetUos.filter(u => {\r\n return u.category === unitOperationsConfig.waterUtilityUnitOperation.key;\r\n });\r\n\r\n const fuelGasSubFlowsheet = upgraderSubFlowsheetUos.filter(u => {\r\n return u.category === unitOperationsConfig.fuelGasUtilityUnitOperation.key;\r\n });\r\n\r\n const fuelGasSubFlowsheetUos = c.filterUnitOperations((uo: UnitOperation) => {\r\n if (fuelGasSubFlowsheet.length !== 0) {\r\n return uo.flowsheetId === fuelGasSubFlowsheet[0].id;\r\n }\r\n\r\n return false;\r\n });\r\n\r\n const steamSubFlowsheetUos = c.filterUnitOperations((uo: UnitOperation) => {\r\n if (steamSubFlowsheet.length !== 0) {\r\n return uo.flowsheetId === steamSubFlowsheet[0].id;\r\n }\r\n\r\n return false;\r\n });\r\n\r\n const unitOperationNamesBySubFlowsheet = upgraderSubFlowsheetUos\r\n .concat(fuelGasSubFlowsheetUos.concat(steamSubFlowsheetUos))\r\n .map(u => {\r\n return u.name;\r\n });\r\n\r\n const unitOperationNames = this.getReportUnitOperationNames(fuelGasReport);\r\n\r\n const arrayDiff = new ArrayDiff(unitOperationNamesBySubFlowsheet);\r\n const diff = arrayDiff.diff(unitOperationNames, (l: string, r: string) => {\r\n return l === r;\r\n });\r\n\r\n return diff.intersection.length !== 0 ? diff.intersection : [];\r\n }\r\n\r\n static getReportUnitOperationNames(fuelGasReport: FuelGasSummaryReportComponent) {\r\n const unitOperationNames = [];\r\n\r\n for (const property in fuelGasReport) {\r\n if (property.includes('ReportData')) {\r\n fuelGasReport[property].reportItems.forEach(uo => {\r\n unitOperationNames.push(uo.unitOperationName);\r\n });\r\n }\r\n }\r\n\r\n return [...new Set(unitOperationNames)];\r\n }\r\n\r\n static getFuelGasValuesByUnitOperation(\r\n fuelGasReport: FuelGasSummaryReportComponent,\r\n dataArray: any[],\r\n flowsheetOwnerId: string,\r\n c: Case\r\n ) {\r\n const uOs = this.getUnitOperationNamesBySubFlowsheet(flowsheetOwnerId, c, fuelGasReport);\r\n\r\n if (uOs.length !== 0) {\r\n uOs.forEach(u => {\r\n const fuelGasMake = this.getFuelGasValue(fuelGasReport.fuelGasMakeReportData.reportItems, u);\r\n const fuelGasUse = this.getFuelGasValue(fuelGasReport.fuelGasUseReportData.reportItems, u);\r\n\r\n dataArray.push([u, fuelGasMake, fuelGasUse]);\r\n });\r\n }\r\n }\r\n\r\n static getFuelGasValue(fuelGasReportData: UtilitiesSummaryReportItem[], unitOperationName: string) {\r\n let fuelGasValue = 0;\r\n fuelGasReportData.filter(uo => {\r\n if (uo.unitOperationName === unitOperationName) {\r\n fuelGasValue = uo.value;\r\n }\r\n });\r\n return fuelGasValue;\r\n }\r\n}\r\n","import { Case } from '../../_models';\r\nimport { ServerUtcDateService } from '../helpers/server-utc-date.service';\r\nimport { MultiPeriodSettings } from '../../_models/_multi-period/multi-period-settings';\r\n\r\ndeclare let unitConverter: any;\r\n\r\nexport class MultiperiodResultsExcelReport {\r\n static dataArray = [];\r\n\r\n static generateResultsArray(c: Case) {\r\n this.dataArray = [['Day']];\r\n const multiPerdiod = c.multiPeriodSettings;\r\n\r\n this.generateMultiperiodParametersDataArray(multiPerdiod);\r\n this.generateMultiperiodResultsDataArray(c, multiPerdiod);\r\n\r\n return this.dataArray;\r\n }\r\n\r\n static generateCaseDataArray(c: Case, utc: ServerUtcDateService) {\r\n const dataArray = [['User name', 'Creation Date', 'Name of the Case']];\r\n const currentDate = utc.getCurrentDate();\r\n dataArray.push([this.getUserName(), this.formatDate(currentDate), c.name]);\r\n return dataArray;\r\n }\r\n\r\n private static generateMultiperiodParametersDataArray(m: MultiPeriodSettings) {\r\n for (let i = 0; i < m.numberOfSteps; i++) {\r\n this.dataArray.push([(i + 1).toString()]);\r\n }\r\n\r\n for (let i = 0; i < m.multiPeriodParameters.length; i++) {\r\n const parameter = m.multiPeriodParameters[i];\r\n const simVar = parameter.simulationVariable;\r\n this.dataArray[0][i + 1] = `${parameter.getFullName()} (${parameter.getDefaultUnit()})`;\r\n\r\n for (let j = 0; j < parameter.multiPeriodValues.length; j++) {\r\n const parameterValue = parameter.multiPeriodValues[j];\r\n const conversion = unitConverter(simVar.quantity).convert(\r\n parameterValue,\r\n simVar.getInternalUnit(),\r\n simVar.getDefaultUnit()\r\n );\r\n const roundedValue = conversion.round();\r\n this.dataArray[j + 1][i + 1] = roundedValue.getValue().toLocaleString();\r\n }\r\n }\r\n }\r\n\r\n private static generateMultiperiodResultsDataArray(c: Case, m: MultiPeriodSettings) {\r\n const selectedKpis = this.noNullSelectedKpis(c);\r\n const index = this.dataArray[0].length;\r\n\r\n for (let i = 0; i < selectedKpis.length; i++) {\r\n const kpi = selectedKpis[i];\r\n this.dataArray[0][index + i] = `${kpi.getFullName()} (${kpi.getDefaultUnit()})`;\r\n\r\n const kpiResults = m.multiPeriodResults.map(arrayValues => {\r\n return arrayValues[kpi.id];\r\n });\r\n\r\n for (let j = 0; j < kpiResults.length; j++) {\r\n const kpiValue = kpiResults[j];\r\n const conversion = unitConverter(kpi.quantity).convert(kpiValue, kpi.getInternalUnit(), kpi.getDefaultUnit());\r\n const roundedValue = conversion.round();\r\n this.dataArray[j + 1][index + i] = roundedValue.getValue().toLocaleString();\r\n }\r\n }\r\n }\r\n\r\n private static formatDate(date) {\r\n const padTo2Digits = num => num.toString().padStart(2, '0');\r\n return [padTo2Digits(date.getDate()), padTo2Digits(date.getMonth() + 1), date.getFullYear()].join('/');\r\n }\r\n\r\n private static getUserName() {\r\n const serializedUser = localStorage.getItem('user');\r\n return JSON.parse(serializedUser || '{}').userName;\r\n }\r\n\r\n private static noNullSelectedKpis(c: Case) {\r\n return c.caseStudyManager.kpiManager.selectedKpis.filter(kpi => {\r\n return kpi.value !== 0;\r\n });\r\n }\r\n}\r\n","import { Case } from '../../_models';\r\nimport { ServerUtcDateService } from '../helpers/server-utc-date.service';\r\nimport { ParametricStudy } from '../../_models/_case-study/parametric-study';\r\nimport { ParametricStudyKpiResult } from '../../_models/_case-study/parametric-study-kpi-result';\r\nimport { ParametricStudyParameter } from '../../_models/_case-study/parametric-study-parameter';\r\n\r\ndeclare let unitConverter: any;\r\n\r\nexport class CaseStudyExcelReport {\r\n static generateCaseInfoDataArray(c: Case, utc: ServerUtcDateService, caseStudy: ParametricStudy) {\r\n const dataArray = [['Username', 'Creation Date', 'Name of the Case', 'Name of the Case Study']];\r\n const currentDate = utc.getCurrentDate();\r\n\r\n dataArray.push([this.getUsername(), this.formatDate(currentDate), c.name, caseStudy.name]);\r\n return dataArray;\r\n }\r\n\r\n static generateKpiResultsDataArray(kpiResult: ParametricStudyKpiResult, parameter: ParametricStudyParameter) {\r\n const dataArray = [\r\n [\r\n `${kpiResult.kpi.getFullName()} (${kpiResult.kpi.getDefaultUnit()})`,\r\n `${parameter.simulationVariable.getFullName()} (${parameter.variableValues.unit})`,\r\n ],\r\n ];\r\n\r\n this.addToDataArrayConvertedValues(kpiResult, parameter, dataArray);\r\n return dataArray;\r\n }\r\n\r\n private static addToDataArrayConvertedValues(\r\n kpiResult: ParametricStudyKpiResult,\r\n parameter: ParametricStudyParameter,\r\n dataArray: string[][]\r\n ) {\r\n const kpiQuantity = kpiResult.kpi.quantity;\r\n const { kpi } = kpiResult;\r\n const parameterQuantity = parameter.variableValues.quantity;\r\n const parameterVariable = parameter.variableValues;\r\n\r\n kpiResult.variableValues.forEach((value, index) => {\r\n const kpiValueConverted = this.convertValuesToDefaultUnit(\r\n value,\r\n kpiQuantity,\r\n kpi.getInternalUnit(),\r\n kpi.getDefaultUnit()\r\n );\r\n\r\n const parameterValueConverted = this.convertValuesToDefaultUnit(\r\n parameterVariable.values[index],\r\n parameterQuantity,\r\n parameterVariable.getInternalUnit(),\r\n parameterVariable.unit\r\n );\r\n\r\n dataArray.push([kpiValueConverted, parameterValueConverted]);\r\n });\r\n }\r\n\r\n private static getUsername() {\r\n const serializedUser = localStorage.getItem('user');\r\n return JSON.parse(serializedUser || '{}').userName;\r\n }\r\n\r\n private static formatDate(date) {\r\n const padTo2Digits = num => num.toString().padStart(2, '0');\r\n return [padTo2Digits(date.getDate()), padTo2Digits(date.getMonth() + 1), date.getFullYear()].join('/');\r\n }\r\n\r\n private static convertValuesToDefaultUnit(\r\n value: number,\r\n quantity: string,\r\n internalUnit: string,\r\n defaultUnit: string\r\n ) {\r\n const conversion = unitConverter(quantity).convert(value, internalUnit, defaultUnit);\r\n return conversion.round().getValue().toString();\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport * as XLSX from 'xlsx';\r\nimport { CoreService } from '../core.service';\r\nimport { unitOperationsConfig } from '../../_config/unit-operations.config';\r\nimport { XlsxUtils } from './xlsx.utils';\r\nimport { Workbook } from './workbook';\r\nimport { InletOutletExcelReport } from './inlet-outlet-excel-report';\r\nimport { KpiManagerExcelReport } from './kpi-manager-excel-report';\r\nimport { ReportService } from '../report.service';\r\nimport { ConstraintsExcelReport } from './constraints-excel-report';\r\nimport { MassBalanceExcelReport } from './mass-balance-excel-report';\r\nimport { Upgrader } from '../../_models/_unit-operations/upgrader';\r\nimport { UnitOperation } from '../../_models';\r\nimport { CommodityTankExcelReport } from './commodity-tank-excel-report';\r\nimport { Extraction } from '../../_models/_unit-operations/extraction';\r\nimport { WaterUtilityUnitOperation } from '../../_models/_unit-operations/utilties/water-utility-unit-operation';\r\nimport { FuelGasUtilityUnitOperation } from '../../_models/_unit-operations/fuel-gas/fuel-gas-utility-unit-operation';\r\nimport { GhgExcelReport } from './ghg-excel-report';\r\nimport { UtilitiesSummaryReportComponent } from '../../flowsheet/summary-report/utilities-summary-report/utilities-summary-report.component';\r\nimport { NumberToUnitConverter } from '../number-to-unit-converter.service';\r\nimport { SteamExcelReport } from './steam-excel-report';\r\nimport { FuelGasSummaryReportComponent } from '../../flowsheet/summary-report/fuel-gas-summary-report/fuel-gas-summary-report.component';\r\nimport { FuelGasExcelReport } from './fuel-gas-excel-report';\r\nimport { FlowsheetTreeService } from '../sub-flowsheet/flowsheet-tree/flowsheet-tree.service';\r\nimport { MultiperiodResultsExcelReport } from './multiperiod-results-excel-report';\r\nimport { ServerUtcDateService } from '../helpers/server-utc-date.service';\r\nimport { CaseStudyExcelReport } from './case-study-excel-report';\r\nimport { ParametricStudyKpiResult } from '../../_models/_case-study/parametric-study-kpi-result';\r\nimport { hasNumericValue } from '../../_utils/utils';\r\nimport { ParametricStudyParameter } from '../../_models/_case-study/parametric-study-parameter';\r\n\r\n@Injectable()\r\nexport class ExcelReportService {\r\n private readonly SHEET_NAME_MAX_LENGTH = 31;\r\n constructor(\r\n private coreService: CoreService,\r\n private reportService: ReportService,\r\n private nuc: NumberToUnitConverter,\r\n private flowsheetTree: FlowsheetTreeService,\r\n private utcDateService: ServerUtcDateService\r\n ) {}\r\n\r\n generateExcelReport(): any {\r\n const wb = new Workbook();\r\n const flowsheetOwners = this.flowsheetTree.getAllFlowsheetOwners(this.coreService.currentCase);\r\n\r\n const extractionsWithSubflowsheet = this.getUnitOperationsWithSubFlowsheet(\r\n flowsheetOwners,\r\n unitOperationsConfig.extraction.key\r\n ) as Extraction[];\r\n\r\n const upgradersWithSubflowsheet = this.getUnitOperationsWithSubFlowsheet(\r\n flowsheetOwners,\r\n unitOperationsConfig.upgrader.key\r\n ) as Upgrader[];\r\n\r\n wb.SheetNames.push('KPI Manager');\r\n wb.Sheets['KPI Manager'] = XlsxUtils.sheetFromArrayOfArrays(\r\n KpiManagerExcelReport.generateDataArray(this.coreService.currentCase)\r\n );\r\n\r\n // Constraints Region\r\n\r\n wb.SheetNames.push('Constraints Main Flowsheet');\r\n wb.Sheets['Constraints Main Flowsheet'] = XlsxUtils.sheetFromArrayOfArrays(\r\n ConstraintsExcelReport.generateDataArray(\r\n this.reportService.buildConstraintsReport(undefined),\r\n this.coreService.currentCase\r\n )\r\n );\r\n\r\n this.generateExtractionConstraintsSheets(wb, extractionsWithSubflowsheet);\r\n this.generateUpgraderConstraintsSheets(wb, upgradersWithSubflowsheet, flowsheetOwners);\r\n\r\n // End Constraints Region\r\n\r\n // Streams Region\r\n\r\n wb.SheetNames.push('Main Flowsheet Streams');\r\n wb.Sheets['Main Flowsheet Streams'] = XlsxUtils.sheetFromArrayOfArrays(\r\n InletOutletExcelReport.generateDataArray(this.coreService.currentCase)\r\n );\r\n\r\n this.generateExtractionsStreamsSheets(wb, extractionsWithSubflowsheet);\r\n this.generateUpgradersStreamsSheets(wb, upgradersWithSubflowsheet, flowsheetOwners);\r\n\r\n // End Streams Region\r\n\r\n // Mass Balance Region\r\n\r\n wb.SheetNames.push('Main Flowsheet Mass Balance');\r\n wb.Sheets['Main Flowsheet Mass Balance'] = XlsxUtils.sheetFromArrayOfArrays(\r\n MassBalanceExcelReport.generateDataArray(this.coreService.currentCase)\r\n );\r\n\r\n this.generateExtractionMassBalanceSheets(wb, extractionsWithSubflowsheet);\r\n this.generateUpgraderMassBalanceSheets(wb, upgradersWithSubflowsheet);\r\n\r\n // End Mass Balance Region\r\n\r\n // Commodity Tanks Region\r\n this.generateUpgradersCommodityTanksSheets(wb, upgradersWithSubflowsheet);\r\n // End Commodity Tanks Region\r\n\r\n // GHG Region\r\n\r\n wb.SheetNames.push('Main Flowsheet GHG Emissions');\r\n wb.Sheets['Main Flowsheet GHG Emissions'] = XlsxUtils.sheetFromArrayOfArrays(\r\n GhgExcelReport.generateDataArray(this.reportService.buildGhgEmissionsReport(), this.coreService.currentCase)\r\n );\r\n\r\n this.generateUpgradersGhgEmissionsSheets(wb, upgradersWithSubflowsheet);\r\n // End GHG Region\r\n\r\n // Steam Region\r\n this.generateUpgradersSteamSheets(wb, upgradersWithSubflowsheet);\r\n // End Steam Region\r\n\r\n // Fuel Gas Region\r\n this.generateUpgradersFuelGasSheets(wb, upgradersWithSubflowsheet);\r\n // End Fuel Gas Region\r\n\r\n return XlsxUtils.s2ab(XLSX.write(wb, { bookType: 'xlsx', bookSST: false, type: 'binary' }));\r\n }\r\n\r\n generateMultiPeriodResultsExcelReport(): any {\r\n const wb = new Workbook();\r\n wb.SheetNames.push('Multi Period Results');\r\n wb.Sheets['Multi Period Results'] = XlsxUtils.sheetFromArrayOfArrays(\r\n MultiperiodResultsExcelReport.generateResultsArray(this.coreService.currentCase)\r\n );\r\n\r\n wb.SheetNames.push('Case');\r\n wb.Sheets.Case = XlsxUtils.sheetFromArrayOfArrays(\r\n MultiperiodResultsExcelReport.generateCaseDataArray(this.coreService.currentCase, this.utcDateService)\r\n );\r\n\r\n return XlsxUtils.s2ab(XLSX.write(wb, { bookType: 'xlsx', bookSST: false, type: 'binary' }));\r\n }\r\n\r\n generateCaseStudyExcelReport() {\r\n const wb = new Workbook();\r\n const currentCaseStudy = this.currentCaseStudy();\r\n\r\n wb.SheetNames.push('Report Info');\r\n wb.Sheets['Report Info'] = XlsxUtils.sheetFromArrayOfArrays(\r\n CaseStudyExcelReport.generateCaseInfoDataArray(\r\n this.coreService.currentCase,\r\n this.utcDateService,\r\n currentCaseStudy\r\n )\r\n );\r\n\r\n this.generateCaseStudyKpiResultsSheets(wb, currentCaseStudy.kpiResults, currentCaseStudy.parameter);\r\n\r\n return XlsxUtils.s2ab(XLSX.write(wb, { bookType: 'xlsx', bookSST: false, type: 'binary' }));\r\n }\r\n\r\n generateCaseStudyKpiResultsSheets(\r\n wb: Workbook,\r\n kpiResults: ParametricStudyKpiResult[],\r\n parameter: ParametricStudyParameter\r\n ) {\r\n kpiResults.forEach(result => {\r\n if (result.kpi.value !== 0 && hasNumericValue(result.kpi.value)) {\r\n let sheetName = result.kpi.getFullName();\r\n if (sheetName.length > this.SHEET_NAME_MAX_LENGTH) {\r\n const excessCharacters = sheetName.length - this.SHEET_NAME_MAX_LENGTH;\r\n sheetName = sheetName.substring(0, sheetName.length - excessCharacters - 3);\r\n }\r\n\r\n sheetName = this.replaceSheetNameForbiddenCharacters(sheetName);\r\n\r\n wb.SheetNames.push(sheetName);\r\n wb.Sheets[sheetName] = XlsxUtils.sheetFromArrayOfArrays(\r\n CaseStudyExcelReport.generateKpiResultsDataArray(result, parameter)\r\n );\r\n }\r\n });\r\n }\r\n\r\n generateExtractionConstraintsSheets(wb: Workbook, extractions: Extraction[]) {\r\n extractions.forEach((extraction: Extraction) => {\r\n let sheetName = `Constraints ${extraction.name}`;\r\n sheetName = this.adjustSheetName(sheetName, extraction.name, 'Constraints');\r\n\r\n wb.SheetNames.push(sheetName);\r\n wb.Sheets[sheetName] = XlsxUtils.sheetFromArrayOfArrays(\r\n ConstraintsExcelReport.generateDataArray(\r\n this.reportService.buildConstraintsReport(extraction.id),\r\n this.coreService.currentCase\r\n )\r\n );\r\n });\r\n }\r\n\r\n generateUpgraderConstraintsSheets(wb: Workbook, upgraders: Upgrader[], flowsheetOwners: UnitOperation[]) {\r\n upgraders.forEach((upg: Upgrader) => {\r\n let sheetName = `Constraints ${upg.name}`;\r\n sheetName = this.adjustSheetName(sheetName, upg.name, 'Constraints');\r\n\r\n wb.SheetNames.push(sheetName);\r\n wb.Sheets[sheetName] = XlsxUtils.sheetFromArrayOfArrays(\r\n ConstraintsExcelReport.generateDataArray(\r\n this.reportService.buildConstraintsReport(upg.id),\r\n this.coreService.currentCase\r\n )\r\n );\r\n\r\n this.generateWaterUtilityConstraintsSheet(wb, upg, flowsheetOwners);\r\n this.generateFuelGasUtilityConstraintsSheet(wb, upg, flowsheetOwners);\r\n });\r\n }\r\n\r\n generateWaterUtilityConstraintsSheet(wb: Workbook, upgrader: Upgrader, flowsheetOwners: UnitOperation[]) {\r\n const waterUtility = this.getUnitOperationsWithSubFlowsheet(\r\n flowsheetOwners,\r\n unitOperationsConfig.waterUtilityUnitOperation.key,\r\n upgrader.id\r\n ) as WaterUtilityUnitOperation[];\r\n\r\n waterUtility.forEach((wU: WaterUtilityUnitOperation) => {\r\n let sheetName = `Constraints ${upgrader.name} ${wU.name}`;\r\n sheetName = this.adjustSheetName(sheetName, upgrader.name, 'Constraints', wU.name);\r\n\r\n wb.SheetNames.push(sheetName);\r\n wb.Sheets[sheetName] = XlsxUtils.sheetFromArrayOfArrays(\r\n ConstraintsExcelReport.generateDataArray(\r\n this.reportService.buildConstraintsReport(wU.id),\r\n this.coreService.currentCase\r\n )\r\n );\r\n });\r\n }\r\n\r\n generateFuelGasUtilityConstraintsSheet(wb: Workbook, upgrader: Upgrader, flowsheetOwners: UnitOperation[]) {\r\n const fuelGasUtility = this.getUnitOperationsWithSubFlowsheet(\r\n flowsheetOwners,\r\n unitOperationsConfig.fuelGasUtilityUnitOperation.key,\r\n upgrader.id\r\n ) as FuelGasUtilityUnitOperation[];\r\n\r\n fuelGasUtility.forEach((fGU: FuelGasUtilityUnitOperation) => {\r\n let sheetName = `Constraints ${upgrader.name} ${fGU.name}`;\r\n sheetName = this.adjustSheetName(sheetName, upgrader.name, 'Constraints', fGU.name);\r\n\r\n wb.SheetNames.push(sheetName);\r\n wb.Sheets[sheetName] = XlsxUtils.sheetFromArrayOfArrays(\r\n ConstraintsExcelReport.generateDataArray(\r\n this.reportService.buildConstraintsReport(fGU.id),\r\n this.coreService.currentCase\r\n )\r\n );\r\n });\r\n }\r\n\r\n generateExtractionsStreamsSheets(wb: Workbook, extractions: Extraction[]) {\r\n extractions.forEach((ext: Extraction) => {\r\n const sheetName = `${ext.name} Streams`;\r\n this.adjustSheetName(sheetName, ext.name, 'Streams');\r\n\r\n wb.SheetNames.push(sheetName);\r\n wb.Sheets[sheetName] = XlsxUtils.sheetFromArrayOfArrays(\r\n InletOutletExcelReport.generateUnitOperationFlowsheetDataArray(this.coreService.currentCase, ext.id, false)\r\n );\r\n });\r\n }\r\n\r\n generateUpgradersStreamsSheets(wb: Workbook, upgraders: Upgrader[], flowsheetOwners: UnitOperation[]) {\r\n upgraders.forEach((upg: Upgrader) => {\r\n let sheetName = `${upg.name} Streams`;\r\n sheetName = this.adjustSheetName(sheetName, upg.name, 'Streams');\r\n\r\n wb.SheetNames.push(sheetName);\r\n wb.Sheets[sheetName] = XlsxUtils.sheetFromArrayOfArrays(\r\n InletOutletExcelReport.generateUnitOperationFlowsheetDataArray(this.coreService.currentCase, upg.id, true)\r\n );\r\n\r\n this.generateWaterUtilityStreamsSheet(wb, upg, flowsheetOwners);\r\n this.generateFuelGasUtilityStreamsSheet(wb, upg, flowsheetOwners);\r\n });\r\n }\r\n\r\n generateWaterUtilityStreamsSheet(wb: Workbook, upg: Upgrader, flowsheetOwners: UnitOperation[]) {\r\n const waterUtilitiesWithSubFlowsheet = this.getUnitOperationsWithSubFlowsheet(\r\n flowsheetOwners,\r\n unitOperationsConfig.waterUtilityUnitOperation.key,\r\n upg.id\r\n ) as WaterUtilityUnitOperation[];\r\n\r\n waterUtilitiesWithSubFlowsheet.forEach((waterUtility: WaterUtilityUnitOperation) => {\r\n let sheetName = `${upg.name} ${waterUtility.name} Streams`;\r\n sheetName = this.adjustSheetName(sheetName, upg.name, 'Streams', waterUtility.name);\r\n\r\n wb.SheetNames.push(sheetName);\r\n wb.Sheets[sheetName] = XlsxUtils.sheetFromArrayOfArrays(\r\n InletOutletExcelReport.generateWaterUtilityFlowsheetDataArray(this.coreService.currentCase, waterUtility.id)\r\n );\r\n });\r\n }\r\n\r\n generateFuelGasUtilityStreamsSheet(wb: Workbook, upg: Upgrader, flowsheetOwners: UnitOperation[]) {\r\n const fuelGasUtilitiesWithSubFlowsheet = this.getUnitOperationsWithSubFlowsheet(\r\n flowsheetOwners,\r\n unitOperationsConfig.fuelGasUtilityUnitOperation.key,\r\n upg.id\r\n ) as FuelGasUtilityUnitOperation[];\r\n\r\n fuelGasUtilitiesWithSubFlowsheet.forEach((fuelGasUtility: FuelGasUtilityUnitOperation) => {\r\n let sheetName = `${upg.name} ${fuelGasUtility.name} Streams`;\r\n sheetName = this.adjustSheetName(sheetName, upg.name, 'Streams', fuelGasUtility.name);\r\n\r\n wb.SheetNames.push(sheetName);\r\n wb.Sheets[sheetName] = XlsxUtils.sheetFromArrayOfArrays(\r\n InletOutletExcelReport.generateFuelGasUtilityFlowsheetDataArray(this.coreService.currentCase, fuelGasUtility.id)\r\n );\r\n });\r\n }\r\n\r\n generateExtractionMassBalanceSheets(wb: Workbook, extractions: Extraction[]) {\r\n extractions.forEach((extraction: Extraction) => {\r\n let sheetName = `${extraction.name} Mass Balance`;\r\n sheetName = this.adjustSheetName(sheetName, extraction.name, 'Mass Balance');\r\n\r\n wb.SheetNames.push(sheetName);\r\n wb.Sheets[sheetName] = XlsxUtils.sheetFromArrayOfArrays(\r\n MassBalanceExcelReport.generateDataArray(this.coreService.currentCase, extraction.id)\r\n );\r\n });\r\n }\r\n\r\n generateUpgraderMassBalanceSheets(wb: Workbook, upgraders: Upgrader[]) {\r\n upgraders.forEach((upgrader: Upgrader) => {\r\n let sheetName = `${upgrader.name} Mass Balance`;\r\n sheetName = this.adjustSheetName(sheetName, upgrader.name, 'Mass Balance');\r\n\r\n wb.SheetNames.push(sheetName);\r\n wb.Sheets[sheetName] = XlsxUtils.sheetFromArrayOfArrays(\r\n MassBalanceExcelReport.generateDataArray(this.coreService.currentCase, upgrader.id)\r\n );\r\n });\r\n }\r\n\r\n generateUpgradersCommodityTanksSheets(wb: Workbook, upgraders: Upgrader[]) {\r\n upgraders.forEach((upg: Upgrader) => {\r\n let sheetName = `Commodities ${upg.name}`;\r\n sheetName = this.adjustSheetName(sheetName, upg.name, 'Commodities');\r\n\r\n wb.SheetNames.push(sheetName);\r\n wb.Sheets[sheetName] = XlsxUtils.sheetFromArrayOfArrays(\r\n CommodityTankExcelReport.generateDataArray(this.coreService.currentCase, upg.id)\r\n );\r\n });\r\n }\r\n\r\n generateUpgradersGhgEmissionsSheets(wb: Workbook, upgraders: Upgrader[]) {\r\n upgraders.forEach((upg: Upgrader) => {\r\n let sheetName = `${upg.name} GHG Emissions`;\r\n sheetName = this.adjustSheetName(sheetName, upg.name, 'GHG Emissions');\r\n\r\n wb.SheetNames.push(sheetName);\r\n wb.Sheets[sheetName] = XlsxUtils.sheetFromArrayOfArrays(\r\n GhgExcelReport.generateDataArray(\r\n this.reportService.buildGhgEmissionsReport(),\r\n this.coreService.currentCase,\r\n upg.id\r\n )\r\n );\r\n });\r\n }\r\n\r\n generateUpgradersSteamSheets(wb: Workbook, upgraders: Upgrader[]) {\r\n upgraders.forEach((upg: Upgrader) => {\r\n const steamReport = new UtilitiesSummaryReportComponent(this.coreService, this.nuc);\r\n steamReport.buildReport(upg.id);\r\n\r\n if (this.detectReportWithData(steamReport) !== 0) {\r\n let sheetName = `${upg.name} Steam`;\r\n sheetName = this.adjustSheetName(sheetName, upg.name, 'Steam');\r\n\r\n wb.SheetNames.push(sheetName);\r\n wb.Sheets[sheetName] = XlsxUtils.sheetFromArrayOfArrays(\r\n SteamExcelReport.generateDataArray(steamReport, this.coreService.currentCase, upg.id)\r\n );\r\n }\r\n });\r\n }\r\n\r\n generateUpgradersFuelGasSheets(wb: Workbook, upgraders: Upgrader[]) {\r\n upgraders.forEach((upg: Upgrader) => {\r\n const fuelGasReport = new FuelGasSummaryReportComponent(this.coreService, this.nuc);\r\n fuelGasReport.buildReport(upg.id);\r\n\r\n if (this.detectReportWithData(fuelGasReport) !== 0) {\r\n let sheetName = `${upg.name} Fuel Gas`;\r\n sheetName = this.adjustSheetName(sheetName, upg.name, 'Fuel Gas');\r\n\r\n wb.SheetNames.push(sheetName);\r\n wb.Sheets[sheetName] = XlsxUtils.sheetFromArrayOfArrays(\r\n FuelGasExcelReport.generateDataArray(fuelGasReport, this.coreService.currentCase, upg.id)\r\n );\r\n }\r\n });\r\n }\r\n\r\n getUnitOperationsWithSubFlowsheet(\r\n flowsheetOwners: UnitOperation[],\r\n category?: string,\r\n flowsheetOwnerId?: string\r\n ): UnitOperation[] {\r\n return flowsheetOwners.filter(uO => {\r\n if (flowsheetOwnerId) {\r\n return uO.flowsheetId === flowsheetOwnerId && uO.category === category;\r\n }\r\n return uO.category === category;\r\n });\r\n }\r\n\r\n detectReportWithData(report: UtilitiesSummaryReportComponent | FuelGasSummaryReportComponent) {\r\n let reportsWithData = 0;\r\n for (const property in report) {\r\n if (property.includes('ReportData') && report[property].reportItems.length !== 0) {\r\n reportsWithData++;\r\n }\r\n }\r\n return reportsWithData;\r\n }\r\n\r\n currentCaseStudy() {\r\n const { caseStudyManager } = this.coreService.currentCase;\r\n return caseStudyManager.findParametricStudy(caseStudyManager.currentStudyId);\r\n }\r\n\r\n adjustSheetName(sheetName: string, mainUnitOpName: string, sheetTypeName: string, subUnitOpName?: string) {\r\n if (sheetName.length > this.SHEET_NAME_MAX_LENGTH) {\r\n const excessCharacters = sheetName.length - this.SHEET_NAME_MAX_LENGTH;\r\n const media = excessCharacters / 2;\r\n if (!subUnitOpName) {\r\n if (sheetTypeName === 'Commodities' || sheetTypeName === 'Constraints') {\r\n sheetName = `${sheetTypeName} ${mainUnitOpName.substring(0, mainUnitOpName.length - excessCharacters)}`;\r\n } else {\r\n sheetName = `${mainUnitOpName.substring(0, mainUnitOpName.length - excessCharacters)} ${sheetTypeName}`;\r\n }\r\n } else if (sheetTypeName === 'Constraints') {\r\n sheetName = `Cstrs ${mainUnitOpName.substring(\r\n 0,\r\n mainUnitOpName.length - media - 3\r\n )}... ${subUnitOpName.substring(0, subUnitOpName.length - media)}`;\r\n } else {\r\n sheetName = `${mainUnitOpName.substring(0, mainUnitOpName.length - media - 3)}... ${subUnitOpName.substring(\r\n 0,\r\n subUnitOpName.length - media\r\n )} ${sheetTypeName}`;\r\n }\r\n }\r\n\r\n return this.replaceSheetNameForbiddenCharacters(sheetName);\r\n }\r\n\r\n replaceSheetNameForbiddenCharacters(sheetName: string) {\r\n return sheetName.replace(/[:\\\\/?*[\\].]/g, '_');\r\n }\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { saveAs } from 'file-saver/FileSaver';\r\nimport { ExcelReportService } from '../../_services/excel-report/excel-report.service';\r\nimport { FlowsheetService } from '../../_services/flowsheet.service';\r\nimport { CoreService } from '../../_services/core.service';\r\n\r\n@Component({\r\n selector: 'sob-excel-report',\r\n templateUrl: './excel-report.component.html',\r\n styleUrls: ['./excel-report.component.css'],\r\n})\r\nexport class ExcelReportComponent {\r\n filename: string;\r\n\r\n constructor(\r\n private xlsxSrv: ExcelReportService,\r\n private flowsheetService: FlowsheetService,\r\n private coreService: CoreService\r\n ) {}\r\n\r\n private downloadExcelReport(filename): void {\r\n if (this.currentCase.getActiveFlowsheet().isSubflowsheet()) {\r\n this.flowsheetService.exitToMainFlowsheet();\r\n }\r\n\r\n const excelFile = this.xlsxSrv.generateExcelReport();\r\n saveAs(new Blob([excelFile], { type: 'application/octet-stream' }), `${filename}.xlsx`);\r\n }\r\n\r\n generateExcel() {\r\n this.filename = this.filename.replace(/\\s/g, '');\r\n\r\n if (this.filename.length > 0) {\r\n this.downloadExcelReport(this.filename);\r\n $('#excelReportModal').modal('hide');\r\n this.filename = '';\r\n }\r\n }\r\n\r\n get currentCase() {\r\n return this.coreService.currentCase;\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n \r\n

Save Excel Report as...

\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n\r\n","import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { WjTreeView } from '@grapecity/wijmo.angular2.nav';\r\nimport { FlowsheetTreeService } from '../../_services/sub-flowsheet/flowsheet-tree/flowsheet-tree.service';\r\nimport { CoreService } from '../../_services/core.service';\r\n\r\n@Component({\r\n selector: 'sob-flowsheet-tree-selector',\r\n templateUrl: './flowsheet-tree-selector.component.html',\r\n styleUrls: ['./flowsheet-tree-selector.component.css'],\r\n})\r\nexport class FlowsheetTreeSelectorComponent implements OnInit {\r\n @ViewChild('flowsheetsTree', { static: true }) flowsheetsTree: WjTreeView;\r\n @Input() modalName: string;\r\n @Output() emitFlowsheetOwnerId = new EventEmitter();\r\n treeData: string[] = [];\r\n selectedFlowsheet: string;\r\n flowsheetOwnerId: string;\r\n\r\n constructor(private flowsheetTree: FlowsheetTreeService, private coreService: CoreService) {}\r\n\r\n ngOnInit(): void {\r\n const $modal = $(`#${this.modalName}`);\r\n\r\n $modal.on('show.bs.modal', () => {\r\n this.initializeTree();\r\n });\r\n\r\n $('#pillContainer').on('shown.bs.tab', () => {\r\n if ($('#multi-period-settings-container').hasClass('active')) {\r\n this.initializeTree();\r\n }\r\n });\r\n }\r\n\r\n initializeTree() {\r\n this.selectedFlowsheet = null;\r\n this.treeData = this.getTreeData();\r\n }\r\n\r\n getTreeData() {\r\n const nodes = [];\r\n nodes.push({ header: 'Main Flowsheet', items: [] });\r\n\r\n for (let i = 0; i < this.flowsheetTree.getFlowsheetOwnersCount(this.currentCase); i++) {\r\n nodes.push(this.getNode_(i));\r\n }\r\n return nodes;\r\n }\r\n\r\n private getNode_(position: number) {\r\n let sortedFlowsheets;\r\n const flowsheetTree = this.flowsheetTree.getFlowsheetTree(this.currentCase).root;\r\n flowsheetTree.children.forEach((parentNode, index) => {\r\n if (index === position) {\r\n sortedFlowsheets = { header: parentNode.name };\r\n if (parentNode.children.length !== 0) {\r\n sortedFlowsheets.items = [];\r\n parentNode.children.forEach(childNode => {\r\n sortedFlowsheets.items.push({ header: childNode.name });\r\n });\r\n }\r\n }\r\n });\r\n return sortedFlowsheets;\r\n }\r\n\r\n keepDropdownOpen(event: any) {\r\n event.stopPropagation();\r\n }\r\n\r\n onCheckedItemsChanged() {\r\n const items = this.flowsheetsTree.checkedItems;\r\n let flowsheetOwnerId;\r\n\r\n if (items.length === 1) {\r\n this.disableCheckBoxes();\r\n flowsheetOwnerId = this.flowsheetTree.getFlowsheetOwnerIdByName(items[0].header, this.currentCase);\r\n if (!flowsheetOwnerId) {\r\n flowsheetOwnerId = '';\r\n }\r\n this.selectedFlowsheet = items[0].header;\r\n } else if (items.length > 1) {\r\n this.disableCheckBoxes();\r\n flowsheetOwnerId = this.flowsheetOwnerId;\r\n } else {\r\n this.selectedFlowsheet = null;\r\n this.enableCheckBoxes();\r\n }\r\n\r\n this.emitFlowsheetOwnerId.emit(flowsheetOwnerId);\r\n }\r\n\r\n disableCheckBoxes() {\r\n this.flowsheetsTree.nodes.forEach(parentNode => {\r\n if (parentNode.nodes) {\r\n if (parentNode.isChecked) {\r\n this.flowsheetOwnerId = this.flowsheetTree.getFlowsheetOwnerIdByName(\r\n parentNode.dataItem.header,\r\n this.currentCase\r\n );\r\n this.selectedFlowsheet = parentNode.dataItem.header;\r\n parentNode.nodes.forEach(childNode => {\r\n childNode.checkBox.disabled = true;\r\n });\r\n } else {\r\n parentNode.checkBox.disabled = true;\r\n parentNode.nodes.forEach(childNode => {\r\n if (!childNode.isChecked) {\r\n childNode.checkBox.disabled = true;\r\n }\r\n });\r\n }\r\n } else if (!parentNode.isChecked && !parentNode.nodes) {\r\n parentNode.checkBox.disabled = true;\r\n }\r\n });\r\n }\r\n\r\n enableCheckBoxes() {\r\n for (let node = this.flowsheetsTree.getFirstNode(); node; node = node.next()) {\r\n node.checkBox.disabled = false;\r\n }\r\n }\r\n\r\n get currentCase() {\r\n return this.coreService.currentCase;\r\n }\r\n}\r\n","
\r\n \r\n {{ selectedFlowsheet ? selectedFlowsheet : 'Select' }}\r\n \r\n \r\n
    \r\n
  • \r\n \r\n \r\n
  • \r\n
\r\n
\r\n","import { AfterViewInit, Component } from '@angular/core';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { ConstraintsReport } from '../../_models/_reports/_optimization-settings-table/constraints-report';\r\nimport { OptimizationVariablesReport } from '../../_models/_reports/_optimization-settings-table/optimization-variables-report';\r\nimport { ReportService } from '../../_services/report.service';\r\nimport { CoreService } from '../../_services/core.service';\r\nimport { Splitter } from '../../_models/_unit-operations/splitter';\r\nimport { DiluentSource } from '../../_models/_unit-operations/diluent-source';\r\nimport { ThirdPartySource } from '../../_models/_unit-operations/third-party-source';\r\nimport { ProductTank } from '../../_models/product-tank';\r\nimport { SubFlowsheetService } from '../../_services/sub-flowsheet/sub-flowsheet.service';\r\nimport { unitOperationsConfig } from '../../_config/unit-operations.config';\r\nimport { MixingConstraintReportVariable } from '../../_models/_reports/_optimization-settings-table/mixing-constraint-report-variable';\r\nimport { Mixer } from '../../_models/_unit-operations/mixer';\r\nimport { UnitOperation } from '../../_models';\r\n\r\ndeclare let unitConverter: any;\r\n\r\n@Component({\r\n selector: 'sob-optimization-settings-table',\r\n templateUrl: './optimization-settings-table.component.html',\r\n styleUrls: ['./optimization-settings-table.component.css'],\r\n})\r\nexport class OptimizationSettingsTableComponent implements AfterViewInit {\r\n optimizationVariablesReport: OptimizationVariablesReport;\r\n constraintsReport: ConstraintsReport;\r\n selectedFlowsheet: string;\r\n\r\n constructor(\r\n private toastr: ToastrService,\r\n private reportService: ReportService,\r\n private coreService: CoreService,\r\n private subFlowsheetService: SubFlowsheetService\r\n ) {\r\n this.coreService.caseChangedRequest.subscribe((data: any) => {\r\n console.log(data);\r\n if (data && !data.solveSuccess && data.isCaseReady) {\r\n this.toastr.error('Constraint violation detected');\r\n this.init();\r\n $('#optimizationSettingsTableModal').modal('show');\r\n }\r\n });\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.init();\r\n }\r\n\r\n init(flowsheetOwnerId?: string) {\r\n if (flowsheetOwnerId || flowsheetOwnerId === '') {\r\n this.buildReports(flowsheetOwnerId);\r\n } else {\r\n this.buildReports();\r\n }\r\n\r\n const $modal = $('#optimizationSettingsTableModal');\r\n\r\n $modal.on('show.bs.modal', () => {\r\n flowsheetOwnerId = null;\r\n this.selectedFlowsheet = null;\r\n this.buildReports();\r\n });\r\n\r\n $modal.on('change', '.optimization-checkbox, .isActive-checkbox', e => {\r\n const $target = $(e.currentTarget);\r\n this.optimizableChanged($target.data('id'), $target.is(':checked'));\r\n this.isActiveChanged($target.data('id'), $target.is(':checked'));\r\n });\r\n\r\n $('.optimization-checkbox').on('checked', e => {\r\n const $target = $(e.currentTarget);\r\n this.optimizableChanged($target.data('id'), $target.is(':checked'));\r\n });\r\n $('.isActive-checkbox').on('checked', e => {\r\n const $target = $(e.currentTarget);\r\n this.isActiveChanged($target.data('id'), $target.is(':checked'));\r\n });\r\n $modal.on('hidden.bs.modal', () => {\r\n this.saveOptimizationVariables();\r\n // this.saveIsActive();\r\n });\r\n }\r\n\r\n get getActiveFlowsheetTitle() {\r\n switch (this.subFlowsheetService.currentSubFlowsheetCategory) {\r\n case unitOperationsConfig.upgrader.key:\r\n return 'Upgrader Optimization Settings Table';\r\n case unitOperationsConfig.extraction.key:\r\n return 'Extraction Optimization Settings Table';\r\n case unitOperationsConfig.waterUtilityUnitOperation.key:\r\n return 'Steam & Power Optimization Settings Table';\r\n case unitOperationsConfig.fuelGasUtilityUnitOperation.key:\r\n return 'Fuel Gas Optimization Settings Table';\r\n default:\r\n return 'Optimization Settings Table';\r\n }\r\n }\r\n\r\n getFlowsheetOwnerId(fOwnerId: string) {\r\n this.init(fOwnerId);\r\n }\r\n\r\n optimizableChanged(id, checked) {\r\n $('#ostOptimizationVariables')\r\n .find(`input[type=checkbox][data-id=\"${id}\"]`)\r\n .each((i, el) => {\r\n $(el).prop('checked', checked);\r\n this.saveOptimizationVariable(id, checked);\r\n });\r\n }\r\n\r\n isActiveChanged(id, checked) {\r\n $('#ostConstraintsTable')\r\n .find(`input[type=checkbox][data-id=\"${id}\"]`)\r\n .each((i, el) => {\r\n $(el).prop('checked', checked);\r\n const simvar = this.coreService.currentCase.getSimulationVariable(id);\r\n if (simvar) {\r\n simvar.setIsActive(checked);\r\n } else {\r\n const constraintReportVar = this.constraintsReport.constraints.find(\r\n (cstr: MixingConstraintReportVariable) => cstr.id === id\r\n );\r\n\r\n const unitOperationOwner = this.coreService.currentCase.getUnitOperation(constraintReportVar.unitOperationId);\r\n if (unitOperationOwner) {\r\n if (this.isRangeConstraintsUser(unitOperationOwner)) {\r\n unitOperationOwner.constraints.constraints[id].isActive = checked;\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n buildReports(flowsheetOwnerId?: string) {\r\n if (flowsheetOwnerId || flowsheetOwnerId === '') {\r\n this.optimizationVariablesReport = this.reportService.buildOptimizationVariablesReport(flowsheetOwnerId);\r\n this.constraintsReport = this.reportService.buildConstraintsReport(flowsheetOwnerId);\r\n } else {\r\n this.optimizationVariablesReport = this.reportService.buildOptimizationVariablesReport(\r\n this.subFlowsheetService.currentSubFlowsheetId\r\n );\r\n this.constraintsReport = this.reportService.buildConstraintsReport(\r\n this.subFlowsheetService.currentSubFlowsheetId\r\n );\r\n }\r\n\r\n this.buildOptimizationVariablesTable();\r\n this.buildConstraintsTable();\r\n }\r\n\r\n buildOptimizationVariablesTable() {\r\n const $table = $('#ostOptimizationVariablesTable');\r\n\r\n if (($.fn).dataTable.isDataTable('#ostOptimizationVariablesTable')) {\r\n ($table).DataTable().destroy();\r\n }\r\n\r\n const opts = {\r\n data: this.optimizationVariablesReport.optimizationTableVariables,\r\n paging: true,\r\n searching: true,\r\n info: false,\r\n order: [[0, 'desc']],\r\n columns: [\r\n {\r\n data: (data, type) => {\r\n if (type === 'display') {\r\n return ``;\r\n }\r\n\r\n return data.isOptimizable;\r\n },\r\n\r\n orderable: true,\r\n width: 50,\r\n },\r\n {\r\n data: 'name',\r\n },\r\n {\r\n data: 'ownerName',\r\n },\r\n {\r\n data: 'unit',\r\n },\r\n {\r\n data: (data, type) => {\r\n if (type === 'display') {\r\n if (data.value === null || data.value === '') {\r\n return 'N/D';\r\n }\r\n\r\n return unitConverter.formatNumber(data.value);\r\n }\r\n\r\n return data.value;\r\n },\r\n },\r\n ],\r\n };\r\n\r\n ($table).DataTable(opts);\r\n }\r\n\r\n buildConstraintsTable() {\r\n const $table = $('#ostConstraintsTable');\r\n\r\n if (($.fn).dataTable.isDataTable('#ostConstraintsTable')) {\r\n ($table).DataTable().destroy();\r\n }\r\n\r\n const opts = {\r\n data: this.constraintsReport.constraints,\r\n paging: true,\r\n searching: true,\r\n info: false,\r\n order: [\r\n [0, 'desc'],\r\n [6, 'desc'],\r\n ],\r\n columns: [\r\n {\r\n data: (data, type) => {\r\n if (type === 'display') {\r\n if (data.constraintDisabled) {\r\n return ``;\r\n }\r\n return ``;\r\n }\r\n\r\n return data.isActive;\r\n },\r\n\r\n orderable: true,\r\n width: 50,\r\n },\r\n {\r\n data: 'unitOperationName',\r\n },\r\n {\r\n data: 'name',\r\n },\r\n {\r\n data: (data, type) => {\r\n if (type === 'display') {\r\n return unitConverter.formatNumber(data.constraintValue);\r\n }\r\n\r\n return data.constraintValue;\r\n },\r\n },\r\n {\r\n data: (data, type) => {\r\n if (type === 'display') {\r\n if (data.currentValue === null || data.currentValue === '') {\r\n return 'N/D';\r\n }\r\n\r\n return unitConverter.formatNumber(data.currentValue);\r\n }\r\n\r\n return data.currentValue;\r\n },\r\n },\r\n {\r\n data: data => {\r\n if (data.constraintValue === null) {\r\n return 'N/D';\r\n }\r\n return data.constraintUnit;\r\n },\r\n },\r\n {\r\n data: 'isConstraintViolated',\r\n visible: false,\r\n },\r\n ],\r\n // Todo: Improve the coloring for constraints in the constraint table\r\n rowCallback(row, data) {\r\n if (data.isConstraintViolated) {\r\n $(row).addClass('text-danger');\r\n }\r\n },\r\n };\r\n\r\n ($table).DataTable(opts);\r\n }\r\n\r\n // region save changes\r\n saveOptimizationVariable(id, isOptimizable) {\r\n const usedSplitterIds = [];\r\n const uo = this.coreService.currentCase.getUnitOperation(id);\r\n\r\n if ((uo instanceof Splitter || uo instanceof ProductTank) && usedSplitterIds.indexOf(id) === -1) {\r\n uo.setOptimizable(isOptimizable);\r\n usedSplitterIds.push(id);\r\n } else if (uo instanceof DiluentSource || uo instanceof ThirdPartySource) {\r\n uo.setOptimizable(isOptimizable);\r\n }\r\n }\r\n\r\n saveOptimizationVariables() {\r\n const usedSplitterIds = [];\r\n\r\n $('#ostOptimizationVariables')\r\n .find('input[type=checkbox]')\r\n .each((i, el) => {\r\n const $el = $(el);\r\n const id = $el.data('id');\r\n const isOptimizable = $el.is(':checked');\r\n const uo = this.coreService.currentCase.getUnitOperation(id);\r\n\r\n if ((uo instanceof Splitter || uo instanceof ProductTank) && usedSplitterIds.indexOf(id) === -1) {\r\n uo.setOptimizable(isOptimizable);\r\n usedSplitterIds.push(id);\r\n } else if (uo instanceof DiluentSource || uo instanceof ThirdPartySource) {\r\n uo.setOptimizable(isOptimizable);\r\n }\r\n });\r\n }\r\n\r\n // saveIsActive() {\r\n // const usedIds = [];\r\n //\r\n // $('#ostConstraintsTable').find('input[type=checkbox]').each((i, el) => {\r\n // const $el = $(el);\r\n // const id = $el.data('id');\r\n // const isActive = $el.is(':checked');\r\n // const simvar = this.coreService.currentCase.getSimulationVariable(id);\r\n // simvar.setIsActive(isActive);\r\n // });\r\n // }\r\n\r\n // endregion\r\n\r\n isRangeConstraintsUser(unitOperation: UnitOperation): unitOperation is Mixer | Splitter {\r\n return unitOperation instanceof Mixer || unitOperation instanceof Splitter;\r\n }\r\n\r\n get isReadOnly() {\r\n return this.coreService.currentCase.multiPeriodEnabled;\r\n }\r\n\r\n get currentCase() {\r\n return this.coreService.currentCase;\r\n }\r\n}\r\n","\r\n
\r\n
\r\n
\r\n \r\n

{{ getActiveFlowsheetTitle }}

\r\n
\r\n\r\n
\r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
ActiveBlock NameConstraintConstraint ValueCurrent ValueUnitViolated
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
OptimizeVariable NameOwnerUnitValue
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n","import { Component } from '@angular/core';\r\nimport { CoreService } from '../../_services/core.service';\r\n\r\n@Component({\r\n selector: 'sob-flowsheet-comments',\r\n templateUrl: './flowsheet-comments.component.html',\r\n styleUrls: ['./flowsheet-comments.component.css'],\r\n})\r\nexport class FlowsheetCommentsComponent {\r\n constructor(private coreService: CoreService) {}\r\n\r\n get currentCase() {\r\n return this.coreService.currentCase;\r\n }\r\n}\r\n","\r\n
\r\n
\r\n
\r\n \r\n

Flowsheet Comments

\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n","import { Component } from '@angular/core';\r\nimport { AppInfo } from '../../_config/app-info';\r\n\r\n@Component({\r\n selector: 'sob-about-window',\r\n templateUrl: './about-window.component.html',\r\n styleUrls: ['./about-window.component.css'],\r\n})\r\nexport class AboutWindowComponent {\r\n get appVersion() {\r\n return AppInfo.APP_VERSION;\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n \r\n

\r\n \r\n About\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \"suncor\r\n
\r\n
\r\n
\r\n\r\n
\r\n

\r\n The Suncor Optimization and Techno-Economic Assessment (Optea) software is a system-wide optimization tool\r\n designed to efficiently evaluate optimal processing pathways and new technology integration in Suncor's\r\n value chain\r\n

\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n \"Process\r\n
\r\n
\r\n
\r\n\r\n
\r\n

\r\n Suncor OPTEA is developed and supported by Process Ecology
\r\n Contact Process Ecology \r\n

\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n v{{ appVersion }}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { SendCaseModalService } from './send-case-modal.service';\r\nimport { CoreService } from '../../_services/core.service';\r\nimport { FlowsheetService } from '../../_services/flowsheet.service';\r\n\r\n@Component({\r\n selector: 'sob-send-case-modal',\r\n templateUrl: './send-case-modal.component.html',\r\n styleUrls: ['./send-case-modal.component.css'],\r\n})\r\nexport class SendCaseModalComponent implements OnInit {\r\n constructor(\r\n private sendCaseModalService: SendCaseModalService,\r\n private coreService: CoreService,\r\n private flowsheetService: FlowsheetService\r\n ) {\r\n this.sendCaseModalService.showRequest.subscribe(() => {\r\n this.show();\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n $('#sendCaseModal').on('show.bs.modal', () => {\r\n this.hideError();\r\n this.hideLoading();\r\n this.showMessage();\r\n });\r\n }\r\n\r\n sendCase() {\r\n if (this.coreService.currentCase.getActiveFlowsheet().isSubflowsheet()) {\r\n this.flowsheetService.closeSubFlowsheet();\r\n }\r\n\r\n this.showLoading();\r\n\r\n setTimeout(() => {\r\n this.coreService.sendCaseToProcessEcology().subscribe(\r\n () => {\r\n this.hideLoading();\r\n this.hide();\r\n },\r\n () => {\r\n this.hideLoading();\r\n this.showError();\r\n }\r\n );\r\n }, 1000);\r\n }\r\n\r\n show() {\r\n $('#sendCaseModal').modal('show');\r\n }\r\n\r\n hide() {\r\n $('#sendCaseModal').modal('hide');\r\n }\r\n\r\n showMessage() {\r\n $('#sendCaseToPEMessage').show();\r\n }\r\n\r\n showLoading() {\r\n $('#sendCaseToPEMessage').hide();\r\n $('#sendCaseToPELoading').show();\r\n }\r\n\r\n hideLoading() {\r\n $('#sendCaseToPELoading').hide();\r\n }\r\n\r\n showError() {\r\n $('#sendCaseError').fadeIn();\r\n }\r\n\r\n hideError() {\r\n $('#sendCaseError').hide();\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n

\r\n \r\n An internal error happened while solving your case\r\n

\r\n
\r\n\r\n
\r\n

\r\n An internal error happened in the calculation engine. Please send the case to Process Ecology\r\n

\r\n

\r\n \r\n Sending case to Process Ecology...\r\n

\r\n
\r\n An error occurred while sending the case.\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n\r\n","import { Injectable } from '@angular/core';\r\nimport { CaseCloner } from './case-cloner';\r\nimport { Case } from '../../_models';\r\nimport { CaseDeserializerService } from '../case-deserializer/case-deserializer.service';\r\nimport { Flowsheet } from '../../_models/flowsheet-manager/flowsheet';\r\n\r\n@Injectable()\r\nexport class CaseClonerService implements CaseCloner {\r\n constructor(private caseDeserializer: CaseDeserializerService) {}\r\n\r\n clone(source: Case, newCaseName: string): Case {\r\n const serializedCase = JSON.stringify(source);\r\n const clonedCase = this.caseDeserializer.deserialize(serializedCase);\r\n\r\n clonedCase.name = newCaseName;\r\n clonedCase.id = (window).uuid();\r\n\r\n // not dangerous call at all\r\n clonedCase.setDiagramString(source.getDiagramString());\r\n this.cloneFlowsheetPool(source, clonedCase);\r\n\r\n return clonedCase;\r\n }\r\n\r\n private cloneFlowsheetPool(source: Case, clonedCase: Case) {\r\n // clone the flowsheet pool\r\n clonedCase.flowsheetPool = {};\r\n\r\n for (const fId of Object.keys(source.flowsheetPool)) {\r\n const sourceFlowsheet = source.getFlowsheet(fId);\r\n const newFlowsheet = new Flowsheet(sourceFlowsheet, clonedCase);\r\n\r\n newFlowsheet.setDiagramJson(sourceFlowsheet.getDiagramJson());\r\n newFlowsheet.unitOperationId = sourceFlowsheet.unitOperationId;\r\n newFlowsheet.id = sourceFlowsheet.id;\r\n\r\n clonedCase.addToPools(newFlowsheet);\r\n }\r\n\r\n clonedCase.setActiveFlowsheet(clonedCase.getFlowsheet(clonedCase.getMainFlowsheetId()));\r\n\r\n // prevent showing the second level by default\r\n // TODO probably not a dangerous call\r\n clonedCase.setDiagramString(clonedCase.getActiveFlowsheet().getDiagramJson());\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n \r\n\r\n

Available Cases

\r\n
\r\n\r\n
\r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n
Current CaseNameActions
\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Select\r\n \r\n\r\n \r\n\r\n \r\n Delete\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n

Clone Case

\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n

Delete Case

\r\n
\r\n\r\n
Delete {{ selectedCaseName }}?
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n","import { Component } from '@angular/core';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { CoreService } from '../../_services/core.service';\r\nimport { CaseClonerService } from '../../_services/case-cloner/case-cloner.service';\r\nimport { LogManagerService } from '../log-manager/log-manager.service';\r\nimport { FlowsheetDiagramService } from '../../_services/flowsheet-diagram/flowsheet-diagram.service';\r\nimport { FlowsheetService } from '../../_services/flowsheet.service';\r\nimport { ProgressIndicatorService } from '../progress-indicator/progress-indicator.service';\r\nimport { SankeyDiagramService } from '../sankey-diagram/sankey-diagram.service';\r\n\r\n@Component({\r\n selector: 'sob-case-list',\r\n templateUrl: './case-list.component.html',\r\n styleUrls: ['./case-list.component.css'],\r\n})\r\nexport class CaseListComponent {\r\n selectedCaseId: string;\r\n selectedCaseName: string;\r\n newCaseName: string;\r\n\r\n constructor(\r\n private coreService: CoreService,\r\n private caseCloner: CaseClonerService,\r\n private logManager: LogManagerService,\r\n private flowsheetService: FlowsheetService,\r\n private progressIndicator: ProgressIndicatorService,\r\n private flowsheetDiagramService: FlowsheetDiagramService,\r\n private sankeyService: SankeyDiagramService,\r\n private toastr: ToastrService\r\n ) {}\r\n\r\n openCloneCaseModal(id) {\r\n $('#cloneCaseModal').modal('show');\r\n this.newCaseName = '';\r\n this.selectedCaseId = id;\r\n }\r\n\r\n cloneCase() {\r\n if (!this.newCaseName) {\r\n this.toastr.warning('Case name is required', '', { positionClass: 'toast-top-right' });\r\n return;\r\n }\r\n const caseToClone = this.project.findCaseById(this.selectedCaseId);\r\n\r\n if (caseToClone === this.currentCase) {\r\n if (!this.currentCase.getActiveFlowsheet().isSubflowsheet()) {\r\n // TODO probably not a dangerous assignment\r\n caseToClone.setDiagramString(this.flowsheetDiagramService.getDiagramJson());\r\n caseToClone.getActiveFlowsheet().setDiagramJson(caseToClone.getDiagramString());\r\n } else {\r\n // I guess this should be done before exiting to the main flowsheet...\r\n this.flowsheetService.exitToMainFlowsheet();\r\n // TODO probably not a dangerous assignment\r\n caseToClone.setDiagramString(this.flowsheetDiagramService.getDiagramJson());\r\n caseToClone.getActiveFlowsheet().setDiagramJson(caseToClone.getDiagramString());\r\n }\r\n }\r\n\r\n const clonedCase = this.caseCloner.clone(caseToClone, this.newCaseName);\r\n\r\n this.project.addCase(clonedCase);\r\n\r\n if (this.currentCase.getActiveFlowsheet().isSubflowsheet()) {\r\n this.flowsheetService.exitToMainFlowsheet();\r\n }\r\n\r\n this.hideCloneCaseModal();\r\n this.hideModal();\r\n\r\n const message = `Case ${clonedCase.name} cloned`;\r\n this.toastr.info(message, '', { positionClass: 'toast-top-right' });\r\n this.logManager.info(message);\r\n\r\n // leave this at the end\r\n this.coreService.setCurrentCase(clonedCase);\r\n }\r\n\r\n hideCloneCaseModal() {\r\n $('#cloneCaseModal').modal('hide');\r\n }\r\n\r\n openDeleteCaseModal(id, name) {\r\n this.selectedCaseId = id;\r\n this.selectedCaseName = name;\r\n $('#deleteCaseModal').modal('show');\r\n }\r\n\r\n deleteCase() {\r\n if (this.selectedCaseId === this.currentCase.id) {\r\n this.toastr.error('Current case cannot be deleted', '', { positionClass: 'toast-top-right' });\r\n\r\n return;\r\n }\r\n\r\n const caseIndex = this.project.cases.findIndex(c => c.id === this.selectedCaseId);\r\n const caseName = this.project.cases[caseIndex].name;\r\n\r\n this.project.cases.splice(caseIndex, 1);\r\n\r\n const message = `${caseName} deleted`;\r\n\r\n this.toastr.info(message, '', { positionClass: 'toast-top-right' });\r\n this.logManager.info(message);\r\n\r\n this.hideDeleteCaseModal();\r\n }\r\n\r\n hideDeleteCaseModal() {\r\n $('#deleteCaseModal').modal('hide');\r\n }\r\n\r\n setCurrentCase(id) {\r\n if (this.currentCase.getActiveFlowsheet().isSubflowsheet()) {\r\n this.flowsheetService.exitToMainFlowsheet();\r\n }\r\n this.coreService.setCurrentCaseById(id);\r\n this.sankeyService.caseToSankeyDiagram(this.coreService.currentCase);\r\n this.hideModal();\r\n }\r\n\r\n hideModal() {\r\n $('#caseListModal').modal('hide');\r\n }\r\n\r\n get project() {\r\n return this.coreService.project;\r\n }\r\n\r\n get currentCase() {\r\n return this.coreService.currentCase;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Project, SimulationVariable } from '../_models';\r\n\r\n@Injectable()\r\nexport class GlobalKpiService {\r\n getGlobalKpiNames(project: Project): { id: string; name: string }[] {\r\n const globalKpis: { id: string; name: string }[] = [];\r\n\r\n const { cases } = project;\r\n\r\n for (const c of cases) {\r\n const kpis = c.caseStudyManager.kpiManager.selectedKpis.map(kpi => kpi.id);\r\n\r\n for (const kpiId of kpis) {\r\n if (globalKpis.find(gKpi => gKpi.id === kpiId)) {\r\n continue;\r\n }\r\n\r\n let existsInAllCases = true;\r\n for (const c2 of cases) {\r\n if (c2 === c) {\r\n continue;\r\n }\r\n\r\n if (!c2.simulationVariablePool[kpiId]) {\r\n existsInAllCases = false;\r\n break;\r\n }\r\n }\r\n\r\n if (existsInAllCases) {\r\n globalKpis.push({\r\n id: kpiId,\r\n name: c.getSimulationVariable(kpiId).getFullName(),\r\n });\r\n }\r\n }\r\n }\r\n\r\n return globalKpis;\r\n }\r\n\r\n getGlobalKpi(kpiId: string, project: Project): SimulationVariable[] {\r\n const kpis = [];\r\n\r\n for (const c of project.cases) {\r\n kpis.push(c.getSimulationVariable(kpiId));\r\n }\r\n\r\n return kpis;\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n \r\n

Global KPI

\r\n
\r\n\r\n
\r\n \r\n\r\n
\r\n
\r\n
\r\n Warning! no KPIs selected. Go to KPI Manager\r\n
\r\n\r\n
\r\n
\r\n
\r\n KPI\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport * as Highcharts from 'highcharts';\r\n\r\nimport { CoreService } from '../../_services/core.service';\r\nimport { GlobalKpiService } from '../../_services/global-kpi.service';\r\nimport { SimulationVariable } from '../../_models';\r\n\r\n@Component({\r\n selector: 'sob-global-kpi',\r\n templateUrl: './global-kpi.component.html',\r\n styleUrls: ['./global-kpi.component.css'],\r\n})\r\nexport class GlobalKpiComponent implements OnInit {\r\n openingKpiManager: boolean;\r\n kpiId: string;\r\n globalKpis: { id: string; name: string }[] = [];\r\n chartType = 'column';\r\n\r\n constructor(private coreService: CoreService, private globalKpiService: GlobalKpiService) {}\r\n\r\n ngOnInit() {\r\n const $modal = $('#globalKpiModal');\r\n\r\n $modal.on('shown.bs.modal', () => {\r\n this.initData();\r\n });\r\n\r\n $modal.on('hidden.bs.modal', () => {\r\n if (this.openingKpiManager) {\r\n this.openingKpiManager = false;\r\n // need to open the new modal when old modal hide animation is completed\r\n $('#kpiManagerModal').modal('show');\r\n }\r\n });\r\n }\r\n\r\n initData() {\r\n this.destroyChart();\r\n\r\n this.globalKpis = this.globalKpiService.getGlobalKpiNames(this.coreService.project);\r\n\r\n if (this.globalKpis.length) {\r\n this.kpiId = this.globalKpis[0].id;\r\n this.displayKpi(this.kpiId);\r\n }\r\n }\r\n\r\n switchChartType() {\r\n this.chartType = this.chartType === 'column' ? 'line' : 'column';\r\n this.displayKpi(this.kpiId);\r\n }\r\n\r\n private destroyChart() {\r\n const $chart = $('#globalKpiChart');\r\n\r\n if ($chart.highcharts()) {\r\n $chart.highcharts().destroy();\r\n }\r\n }\r\n\r\n displayKpi(kpiId: string) {\r\n const kpis = this.globalKpiService.getGlobalKpi(kpiId, this.coreService.project);\r\n\r\n if (!kpis.length) {\r\n return;\r\n }\r\n\r\n const xLabels = [];\r\n const chartData = [];\r\n\r\n for (const kpi of kpis) {\r\n xLabels.push(kpi.ownerCase.name);\r\n chartData.push(kpi.convertToDefaultUnit(true, false));\r\n }\r\n\r\n this.buildChart(kpis, chartData, xLabels);\r\n }\r\n\r\n buildChart(kpis: SimulationVariable[], chartData: number[], xLabels: string[]) {\r\n Highcharts.chart({\r\n chart: {\r\n renderTo: 'globalKpiChart',\r\n type: this.chartType,\r\n },\r\n title: {\r\n text: '',\r\n },\r\n credits: {\r\n enabled: false,\r\n },\r\n legend: {\r\n enabled: false,\r\n },\r\n xAxis: {\r\n categories: xLabels,\r\n },\r\n yAxis: {\r\n title: {\r\n text: `${kpis[0].getFullName()} (${kpis[0].getDefaultUnit()})`,\r\n },\r\n },\r\n tooltip: {\r\n headerFormat: '',\r\n pointFormatter() {\r\n return (\r\n `` +\r\n ``\r\n );\r\n },\r\n footerFormat: '
${kpis[this.index].getFullName()}: ${Highcharts.numberFormat(this.y, 2, '.', ',')}
',\r\n shared: true,\r\n useHTML: true,\r\n followPointer: true,\r\n },\r\n plotOptions: {\r\n column: {\r\n stacking: 'normal',\r\n dataLabels: {\r\n enabled: false,\r\n color: 'white',\r\n },\r\n },\r\n },\r\n series: [\r\n {\r\n data: chartData,\r\n color: '#1034a6',\r\n },\r\n ],\r\n });\r\n }\r\n\r\n kpiChanged($event) {\r\n this.kpiId = $event.target.value;\r\n this.displayKpi(this.kpiId);\r\n }\r\n\r\n openKpiManager() {\r\n this.openingKpiManager = true;\r\n $('#globalKpiModal').modal('hide');\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport * as go from 'gojs';\r\nimport { LayeredDigraphLayout, Link, GraphObject, Shape, Binding } from 'gojs';\r\n\r\nfunction getAutoHeightForNode(node) {\r\n let heightIn = 0;\r\n let it = node.findLinksInto();\r\n while (it.next()) {\r\n const link = it.value;\r\n heightIn += link.computeThickness();\r\n }\r\n let heightOut = 0;\r\n it = node.findLinksOutOf();\r\n while (it.next()) {\r\n const link = it.value;\r\n heightOut += link.computeThickness();\r\n }\r\n let h = Math.max(heightIn, heightOut);\r\n if (h < 10) {\r\n h = 10;\r\n }\r\n return h;\r\n}\r\n\r\nfunction getTextFontSize(node: any, height: number) {\r\n let fontSize;\r\n\r\n if (node.linksConnected.count >= 3) {\r\n fontSize = Math.max(60, Math.round(height / 10));\r\n } else {\r\n fontSize = Math.max(20, Math.round(height / 5));\r\n if (fontSize > height) {\r\n fontSize = height;\r\n }\r\n }\r\n\r\n return fontSize;\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SankeyDiagramTemplateProviderService {\r\n $: any = go.GraphObject.make;\r\n\r\n getDiagramTemplate() {\r\n return this.$(\r\n go.Diagram,\r\n 'sankey-diagram', // the ID of the DIV HTML element\r\n {\r\n initialAutoScale: go.Diagram.UniformToFill,\r\n 'animationManager.isEnabled': false,\r\n 'toolManager.hoverDelay': 60,\r\n }\r\n );\r\n }\r\n\r\n getNodeTemplate() {\r\n return this.$(\r\n go.Node,\r\n go.Panel.Horizontal,\r\n {\r\n locationObjectName: 'SHAPE',\r\n locationSpot: go.Spot.MiddleLeft,\r\n portSpreading: go.Node.SpreadingPacked, // rather than the default go.Node.SpreadingEvenly\r\n },\r\n this.$(go.TextBlock, this.textStyle(), { name: 'LTEXT' }, new go.Binding('text', 'name')),\r\n this.$(\r\n go.Shape,\r\n {\r\n name: 'SHAPE',\r\n figure: 'Rectangle',\r\n fill: '#2E8DEF', // default fill color\r\n stroke: null,\r\n strokeWidth: 0,\r\n portId: '',\r\n fromSpot: go.Spot.RightSide,\r\n toSpot: go.Spot.LeftSide,\r\n height: 50,\r\n width: 20,\r\n },\r\n new go.Binding('fill', 'color')\r\n ),\r\n this.$(go.TextBlock, this.textStyle(), { name: 'TEXT' }, new go.Binding('name'))\r\n );\r\n }\r\n\r\n getLinkTemplate() {\r\n return GraphObject.make(\r\n Link,\r\n Link.Bezier,\r\n {\r\n selectionAdornmentTemplate: this.getLinkSelectionAdornmentTemplate(),\r\n layerName: 'Background',\r\n fromEndSegmentLength: 150,\r\n toEndSegmentLength: 150,\r\n adjusting: Link.End,\r\n },\r\n GraphObject.make(\r\n Shape,\r\n { strokeWidth: 4, stroke: 'rgba(173, 173, 173, 0.25)' },\r\n new Binding('stroke', '', l => {\r\n return this.getAutoLinkColor(l.fromNode.data);\r\n }).ofObject(),\r\n new Binding('strokeWidth', 'width')\r\n ),\r\n {\r\n toolTip: this.getLinkToolTip(),\r\n }\r\n );\r\n }\r\n\r\n getWaterLinkTemplate() {\r\n return GraphObject.make(\r\n Link,\r\n Link.Bezier,\r\n {\r\n selectionAdornmentTemplate: this.getLinkSelectionAdornmentTemplate(),\r\n layerName: 'Background',\r\n fromEndSegmentLength: 150,\r\n toEndSegmentLength: 150,\r\n adjusting: Link.End,\r\n },\r\n GraphObject.make(\r\n Shape,\r\n { strokeWidth: 4, stroke: 'rgba(173, 173, 173, 0.25)' },\r\n new Binding('stroke', '', l => {\r\n return this.getAutoLinkColor(l.fromNode.data);\r\n }).ofObject(),\r\n new Binding('strokeWidth', 'width')\r\n ),\r\n {\r\n toolTip: this.getWaterLinkToolTip(),\r\n }\r\n );\r\n }\r\n\r\n getFuelGasLinkTemplate() {\r\n return GraphObject.make(\r\n Link,\r\n Link.Bezier,\r\n {\r\n selectionAdornmentTemplate: this.getLinkSelectionAdornmentTemplate(),\r\n layerName: 'Background',\r\n fromEndSegmentLength: 150,\r\n toEndSegmentLength: 150,\r\n adjusting: Link.End,\r\n },\r\n GraphObject.make(\r\n Shape,\r\n { strokeWidth: 4, stroke: 'rgba(173, 173, 173, 0.25)' },\r\n new Binding('stroke', '', l => {\r\n return this.getAutoLinkColor(l.fromNode.data);\r\n }).ofObject(),\r\n new Binding('strokeWidth', 'width')\r\n ),\r\n {\r\n toolTip: this.getFuelGasLinkToolTip(),\r\n }\r\n );\r\n }\r\n\r\n textStyle() {\r\n return { font: 'bold 12pt Segoe UI, sans-serif', stroke: 'black', margin: 5 };\r\n }\r\n\r\n getLinkSelectionAdornmentTemplate() {\r\n return this.$(\r\n go.Adornment,\r\n 'Link',\r\n // use selection object's strokeWidth\r\n this.$(go.Shape, { isPanelMain: true, fill: null, stroke: 'rgba(0, 0, 255, 0.3)', strokeWidth: 0 })\r\n );\r\n }\r\n\r\n getLinkToolTip() {\r\n return GraphObject.make(\r\n go.Adornment,\r\n 'Auto',\r\n GraphObject.make(go.Shape, {\r\n fill: '#CEF6F5',\r\n stroke: 'DarkGray',\r\n }),\r\n GraphObject.make(\r\n go.Panel,\r\n 'Table',\r\n {\r\n padding: new go.Margin(3, 5, 1, 5),\r\n },\r\n\r\n GraphObject.make(go.TextBlock, {\r\n margin: new go.Margin(3, 7, 0, 0),\r\n text: 'Volumetric flowrate',\r\n row: 0,\r\n column: 0,\r\n }),\r\n\r\n GraphObject.make(\r\n go.TextBlock,\r\n {\r\n margin: new go.Margin(3, 3, 0, 0),\r\n row: 0,\r\n column: 1,\r\n },\r\n new go.Binding('text', 'volumetricFlowrate')\r\n ),\r\n\r\n GraphObject.make(\r\n go.TextBlock,\r\n {\r\n margin: new go.Margin(3, 7, 0, 0),\r\n row: 0,\r\n column: 2,\r\n },\r\n new go.Binding('text', 'volumetricFlowrateUnit')\r\n )\r\n )\r\n );\r\n }\r\n\r\n getWaterLinkToolTip() {\r\n return GraphObject.make(\r\n go.Adornment,\r\n 'Auto',\r\n GraphObject.make(go.Shape, {\r\n fill: '#CEF6F5',\r\n stroke: 'DarkGray',\r\n }),\r\n GraphObject.make(\r\n go.Panel,\r\n 'Table',\r\n {\r\n padding: new go.Margin(3, 5, 1, 5),\r\n },\r\n\r\n GraphObject.make(go.TextBlock, {\r\n margin: new go.Margin(3, 7, 0, 0),\r\n text: 'Mass flowrate',\r\n row: 0,\r\n column: 0,\r\n }),\r\n\r\n GraphObject.make(\r\n go.TextBlock,\r\n {\r\n margin: new go.Margin(3, 3, 0, 0),\r\n row: 0,\r\n column: 1,\r\n },\r\n new go.Binding('text', 'massFlowrate')\r\n ),\r\n\r\n GraphObject.make(\r\n go.TextBlock,\r\n {\r\n margin: new go.Margin(3, 7, 0, 0),\r\n row: 0,\r\n column: 2,\r\n },\r\n new go.Binding('text', 'massFlowrateUnit')\r\n )\r\n )\r\n );\r\n }\r\n\r\n getFuelGasLinkToolTip() {\r\n return GraphObject.make(\r\n go.Adornment,\r\n 'Auto',\r\n GraphObject.make(go.Shape, {\r\n fill: '#CEF6F5',\r\n stroke: 'DarkGray',\r\n }),\r\n GraphObject.make(\r\n go.Panel,\r\n 'Table',\r\n {\r\n padding: new go.Margin(3, 5, 1, 5),\r\n },\r\n\r\n GraphObject.make(go.TextBlock, {\r\n margin: new go.Margin(3, 7, 0, 0),\r\n text: 'Flowrate',\r\n row: 0,\r\n column: 0,\r\n }),\r\n\r\n GraphObject.make(\r\n go.TextBlock,\r\n {\r\n margin: new go.Margin(3, 3, 0, 0),\r\n row: 0,\r\n column: 1,\r\n },\r\n new go.Binding('text', 'flowrate')\r\n ),\r\n\r\n GraphObject.make(\r\n go.TextBlock,\r\n {\r\n margin: new go.Margin(3, 7, 0, 0),\r\n row: 0,\r\n column: 2,\r\n },\r\n new go.Binding('text', 'flowrateUnit')\r\n )\r\n )\r\n );\r\n }\r\n\r\n getSankeyLayout() {\r\n const sankeyLayout = new LayeredDigraphLayout();\r\n sankeyLayout.setsPortSpots = false;\r\n sankeyLayout.direction = 0;\r\n sankeyLayout.layeringOption = LayeredDigraphLayout.LayerOptimalLinkLength;\r\n sankeyLayout.packOption = LayeredDigraphLayout.PackStraighten || LayeredDigraphLayout.PackMedian;\r\n sankeyLayout.layerSpacing = 300;\r\n sankeyLayout.columnSpacing = 1;\r\n // eslint-disable-next-line func-names\r\n sankeyLayout.createNetwork = function () {\r\n // eslint-disable-next-line func-names\r\n this.diagram.nodes.each(function (node) {\r\n const height = getAutoHeightForNode(node);\r\n const font = `bold ${getTextFontSize(node, height)}pt Segoe UI, sans-serif`;\r\n const shape = node.findObject('SHAPE');\r\n const text = node.findObject('TEXT');\r\n const ltext = node.findObject('LTEXT');\r\n if (shape) {\r\n shape.height = height;\r\n }\r\n if (text) {\r\n text.font = font;\r\n }\r\n if (ltext) {\r\n ltext.font = font;\r\n }\r\n });\r\n return LayeredDigraphLayout.prototype.createNetwork.call(this);\r\n };\r\n\r\n // eslint-disable-next-line func-names\r\n (sankeyLayout as any).nodeMinColumnSpace = function (v, topLeft) {\r\n if (v.node === null) {\r\n if (v.edgesCount >= 1) {\r\n let max = 1;\r\n const it = v.edges;\r\n while (it.next()) {\r\n const edge = it.value;\r\n if (edge.link != null) {\r\n const t = edge.link.computeThickness();\r\n if (t > max) {\r\n max = t;\r\n }\r\n break;\r\n }\r\n }\r\n return Math.ceil(max / this.columnSpacing);\r\n }\r\n return 1;\r\n }\r\n return (LayeredDigraphLayout.prototype as any).nodeMinColumnSpace.call(this, v, topLeft);\r\n };\r\n\r\n // eslint-disable-next-line func-names\r\n (sankeyLayout as any).assignLayers = function () {\r\n (LayeredDigraphLayout.prototype as any).assignLayers.call(this);\r\n const maxlayer = this.maxLayer;\r\n // now make sure every vertex with no outputs is max layer\r\n for (const it = this.network.vertexes.iterator; it.next(); ) {\r\n const v = it.value;\r\n if (v.destinationVertexes.count === 0) {\r\n v.layer = 0;\r\n }\r\n if (v.sourceVertexes.count === 0) {\r\n v.layer = maxlayer;\r\n }\r\n }\r\n };\r\n\r\n // eslint-disable-next-line func-names\r\n (sankeyLayout as any).commitLayout = function () {\r\n (LayeredDigraphLayout.prototype as any).commitLayout.call(this);\r\n for (const it = this.network.edges.iterator; it.next(); ) {\r\n const { link } = it.value;\r\n if (link && link.curve === Link.Bezier) {\r\n // depend on Link.adjusting === go.Link.End to fix up the end points of the links\r\n // without losing the intermediate points of the route as determined by LayeredDigraphLayout\r\n link.invalidateRoute();\r\n }\r\n }\r\n };\r\n return sankeyLayout;\r\n }\r\n\r\n getAutoLinkColor(data) {\r\n let hex = data.color;\r\n hex = hex.replace('#', '');\r\n const r = parseInt(hex.substring(0, 2), 16);\r\n const g = parseInt(hex.substring(2, 4), 16);\r\n const b = parseInt(hex.substring(4, 6), 16);\r\n return `rgba(${r},${g},${b},${30 / 100})`;\r\n }\r\n}\r\n","import { AfterViewInit, Component } from '@angular/core';\r\nimport { SankeyDiagramService } from './sankey-diagram.service';\r\nimport { SankeyDiagramTemplateProviderService } from './sankey-diagram-template-provider.service';\r\nimport { FlowsheetService } from '../../_services/flowsheet.service';\r\nimport { unitOperationsConfig } from '../../_config/unit-operations.config';\r\n\r\n@Component({\r\n selector: 'sob-sankey-diagram',\r\n templateUrl: './sankey-diagram.component.html',\r\n styleUrls: ['./sankey-diagram.component.css'],\r\n})\r\nexport class SankeyDiagramComponent implements AfterViewInit {\r\n constructor(\r\n private sankeyDiagramService: SankeyDiagramService,\r\n private templateProvider: SankeyDiagramTemplateProviderService,\r\n private flowsheetService: FlowsheetService\r\n ) {}\r\n\r\n ngAfterViewInit(): void {\r\n this.initDiagram();\r\n this.flowsheetService.subFlowsheetOpenedRequest.subscribe(n => {\r\n this.changeLinkTemplate(n);\r\n });\r\n\r\n this.flowsheetService.subFlowsheetClosedRequest.subscribe(() => {\r\n this.changeLinkTemplate();\r\n });\r\n }\r\n\r\n initDiagram() {\r\n this.sankeyDiagramService.sankeyDiagram = this.templateProvider.getDiagramTemplate();\r\n this.sankeyDiagramService.sankeyDiagram.nodeTemplate = this.templateProvider.getNodeTemplate();\r\n this.sankeyDiagramService.sankeyDiagram.linkTemplate = this.templateProvider.getLinkTemplate();\r\n this.sankeyDiagramService.sankeyDiagram.layout = this.templateProvider.getSankeyLayout();\r\n }\r\n\r\n changeLinkTemplate(uoName?: string) {\r\n if (uoName) {\r\n if (uoName === unitOperationsConfig.waterUtilityUnitOperation.key) {\r\n this.sankeyDiagramService.sankeyDiagram.linkTemplate = this.templateProvider.getWaterLinkTemplate();\r\n } else if (uoName === unitOperationsConfig.fuelGasUtilityUnitOperation.key) {\r\n this.sankeyDiagramService.sankeyDiagram.linkTemplate = this.templateProvider.getFuelGasLinkTemplate();\r\n }\r\n } else {\r\n this.sankeyDiagramService.sankeyDiagram.linkTemplate = this.templateProvider.getLinkTemplate();\r\n }\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n","import * as wjcCore from '@grapecity/wijmo';\r\n\r\nimport { FlexSheetCellConfig } from './flex-sheet-cell-config';\r\n\r\nexport enum SagdSourceSheetRows {\r\n NAME = 0,\r\n VOLUMETRIC_FLOW_RATE = 2,\r\n GHG_INTENSITY = 3,\r\n COGEN_ELECTRICITY_GENERATION = 5,\r\n NET_ELECTRICITY_EXPORT = 6,\r\n COGEN_INTENSITY = 7,\r\n GRID_INTENSITY = 8,\r\n LIGHT_ENDS = 11,\r\n LIGHT_NAPHTHA = 12,\r\n HEAVY_NAPHTHA = 13,\r\n DISTILLATE = 14,\r\n LGO = 15,\r\n HGO = 16,\r\n VGO = 17,\r\n HVGO = 18,\r\n RESID = 19,\r\n PRICE = 22,\r\n CAPEX_AMORTIZED = 23,\r\n OPEX_FIXED = 24,\r\n OPEX_VAR = 25,\r\n OPEX_GAS_DIESEL = 26,\r\n OPEX_POWER = 27,\r\n}\r\n\r\nexport const SagdSourceCellConfig: FlexSheetCellConfig[] = [\r\n {\r\n row: SagdSourceSheetRows.NAME,\r\n dataType: wjcCore.DataType.String,\r\n format: '',\r\n },\r\n {\r\n row: SagdSourceSheetRows.VOLUMETRIC_FLOW_RATE,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: SagdSourceSheetRows.GHG_INTENSITY,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: SagdSourceSheetRows.COGEN_ELECTRICITY_GENERATION,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: SagdSourceSheetRows.NET_ELECTRICITY_EXPORT,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: SagdSourceSheetRows.COGEN_INTENSITY,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: SagdSourceSheetRows.GRID_INTENSITY,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: SagdSourceSheetRows.LIGHT_ENDS,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: SagdSourceSheetRows.LIGHT_NAPHTHA,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: SagdSourceSheetRows.HEAVY_NAPHTHA,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: SagdSourceSheetRows.DISTILLATE,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: SagdSourceSheetRows.LGO,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: SagdSourceSheetRows.HGO,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: SagdSourceSheetRows.VGO,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: SagdSourceSheetRows.HVGO,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: SagdSourceSheetRows.RESID,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: SagdSourceSheetRows.PRICE,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: SagdSourceSheetRows.CAPEX_AMORTIZED,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: SagdSourceSheetRows.OPEX_FIXED,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: SagdSourceSheetRows.OPEX_VAR,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: SagdSourceSheetRows.OPEX_GAS_DIESEL,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: SagdSourceSheetRows.OPEX_POWER,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n];\r\n","import { FlexSheetMapper } from './flex-sheet-mapper';\r\nimport { SagdSource } from '../../../_models/_unit-operations/sagd-source';\r\nimport { Mapper } from '../../../_models/_interfaces/mapper';\r\nimport { SimulationVariable } from '../../../_models';\r\nimport { NumberToSimulationVariableMapper } from './number-to-simulation-variable-mapper';\r\nimport { SagdSourceSheetRows } from '../cell-config/sagd-source-cell-config';\r\n\r\nexport class SagdSourceFlexSheetMapper implements FlexSheetMapper {\r\n simulationVariableMapper: Mapper;\r\n\r\n constructor(simulationVariableMapper: NumberToSimulationVariableMapper) {\r\n this.simulationVariableMapper = simulationVariableMapper;\r\n }\r\n\r\n map(unitOperation: SagdSource, row: number, value: string | number) {\r\n if (row === SagdSourceSheetRows.NAME && typeof value === 'string') {\r\n unitOperation.name = value;\r\n }\r\n\r\n if (typeof value === 'number') {\r\n switch (row) {\r\n case SagdSourceSheetRows.VOLUMETRIC_FLOW_RATE:\r\n this.simulationVariableMapper.map(value, unitOperation.volumetricFlowrate);\r\n break;\r\n\r\n case SagdSourceSheetRows.GHG_INTENSITY:\r\n this.simulationVariableMapper.map(value, unitOperation.ghgIntensity);\r\n break;\r\n\r\n case SagdSourceSheetRows.COGEN_ELECTRICITY_GENERATION:\r\n this.simulationVariableMapper.map(value, unitOperation.cogenElectricityGeneration);\r\n break;\r\n\r\n case SagdSourceSheetRows.NET_ELECTRICITY_EXPORT:\r\n this.simulationVariableMapper.map(value, unitOperation.netElectricityExport);\r\n break;\r\n\r\n case SagdSourceSheetRows.COGEN_INTENSITY:\r\n this.simulationVariableMapper.map(value, unitOperation.cogenIntensity);\r\n break;\r\n\r\n case SagdSourceSheetRows.GRID_INTENSITY:\r\n this.simulationVariableMapper.map(value, unitOperation.gridIntensity);\r\n break;\r\n\r\n // case SagdSourceSheetRows.LIGHT_ENDS:\r\n // this.simulationVariableMapper.map(value, unitOperation.fluidAnalysis.composition[0]);\r\n // break;\r\n //\r\n // case SagdSourceSheetRows.LIGHT_NAPHTHA:\r\n // this.simulationVariableMapper.map(value, unitOperation.fluidAnalysis.composition[1]);\r\n // break;\r\n //\r\n // case SagdSourceSheetRows.HEAVY_NAPHTHA:\r\n // this.simulationVariableMapper.map(value, unitOperation.fluidAnalysis.composition[2]);\r\n // break;\r\n //\r\n // case SagdSourceSheetRows.DISTILLATE:\r\n // this.simulationVariableMapper.map(value, unitOperation.fluidAnalysis.composition[3]);\r\n // break;\r\n //\r\n // case SagdSourceSheetRows.LGO:\r\n // this.simulationVariableMapper.map(value, unitOperation.fluidAnalysis.composition[4]);\r\n // break;\r\n //\r\n // case SagdSourceSheetRows.HGO:\r\n // this.simulationVariableMapper.map(value, unitOperation.fluidAnalysis.composition[5]);\r\n // break;\r\n //\r\n // case SagdSourceSheetRows.VGO:\r\n // this.simulationVariableMapper.map(value, unitOperation.fluidAnalysis.composition[6]);\r\n // break;\r\n //\r\n // case SagdSourceSheetRows.HVGO:\r\n // this.simulationVariableMapper.map(value, unitOperation.fluidAnalysis.composition[7]);\r\n // break;\r\n //\r\n // case SagdSourceSheetRows.RESID:\r\n // this.simulationVariableMapper.map(value, unitOperation.fluidAnalysis.composition[8]);\r\n // break;\r\n\r\n case SagdSourceSheetRows.PRICE:\r\n this.simulationVariableMapper.map(value, unitOperation.price);\r\n break;\r\n\r\n case SagdSourceSheetRows.CAPEX_AMORTIZED:\r\n this.simulationVariableMapper.map(value, unitOperation.capexAmortized);\r\n break;\r\n\r\n case SagdSourceSheetRows.OPEX_FIXED:\r\n this.simulationVariableMapper.map(value, unitOperation.opexFixed);\r\n break;\r\n\r\n case SagdSourceSheetRows.OPEX_VAR:\r\n this.simulationVariableMapper.map(value, unitOperation.opexVar);\r\n break;\r\n\r\n case SagdSourceSheetRows.OPEX_GAS_DIESEL:\r\n this.simulationVariableMapper.map(value, unitOperation.opexGasDiesel);\r\n break;\r\n\r\n case SagdSourceSheetRows.OPEX_POWER:\r\n this.simulationVariableMapper.map(value, unitOperation.opexPower);\r\n break;\r\n }\r\n }\r\n }\r\n}\r\n","import { Mapper } from '../../../_models/_interfaces/mapper';\r\nimport { SimulationVariable } from '../../../_models';\r\n\r\nexport class NumberToSimulationVariableMapper implements Mapper {\r\n map(source: number, destination: SimulationVariable) {\r\n if (isNaN(source)) {\r\n destination.value = undefined;\r\n return;\r\n }\r\n\r\n const originalUnit = destination.unit;\r\n\r\n destination.value = source;\r\n destination.unit = destination.getDefaultUnit();\r\n\r\n destination.value = destination.convertToInternalUnit();\r\n destination.unit = originalUnit;\r\n }\r\n}\r\n","import * as wjcSheet from '@grapecity/wijmo.grid.sheet';\r\n\r\nimport { SagdSource } from '../../../_models/_unit-operations/sagd-source';\r\nimport { enumValuesToArray } from '../../../_utils/enum-values-to-array';\r\nimport { SagdSourceFlexSheetMapper } from '../mappers/sagd-source-flex-sheet-mapper';\r\nimport { NumberToSimulationVariableMapper } from '../mappers/number-to-simulation-variable-mapper';\r\nimport { SagdSourceSheetRows, SagdSourceCellConfig } from '../cell-config/sagd-source-cell-config';\r\nimport { FlexSheetValueConverter } from '../flex-sheet-value-converter';\r\nimport { UnitOperationFlexSheetEventHandler } from './unit-operation-flex-sheet-event-handler';\r\n\r\nexport class SagdSourceFlexSheetEventHandler implements UnitOperationFlexSheetEventHandler {\r\n constructor(private valueConverter: FlexSheetValueConverter) {}\r\n\r\n handle(unitOperation: SagdSource, spreadsheet: wjcSheet.FlexSheet, flexSheetEvent, rawValue) {\r\n const { row } = flexSheetEvent;\r\n\r\n if (enumValuesToArray(SagdSourceSheetRows).indexOf(row) === -1) {\r\n flexSheetEvent.cancel = true;\r\n return;\r\n }\r\n\r\n const cellConfig = SagdSourceCellConfig.find(rowConfig => rowConfig.row === row);\r\n const convertedValue = this.valueConverter.convert(spreadsheet, rawValue, cellConfig);\r\n\r\n const simulationVariableMapper = new NumberToSimulationVariableMapper();\r\n const mapper = new SagdSourceFlexSheetMapper(simulationVariableMapper);\r\n\r\n mapper.map(unitOperation, row, convertedValue);\r\n }\r\n}\r\n","import * as wjcCore from '@grapecity/wijmo';\r\nimport * as wjcSheet from '@grapecity/wijmo.grid.sheet';\r\nimport { FlexSheetCellConfig } from './cell-config/flex-sheet-cell-config';\r\n\r\nexport class FlexSheetValueConverter {\r\n convert(spreadsheet: wjcSheet.FlexSheet, value, cellConfig: FlexSheetCellConfig): any {\r\n if (cellConfig.dataType === wjcCore.DataType.String) {\r\n return value;\r\n }\r\n\r\n if (typeof value === 'string' && value.startsWith('=')) {\r\n value = spreadsheet.evaluate(value);\r\n }\r\n\r\n return wjcCore.changeType(value, cellConfig.dataType);\r\n }\r\n}\r\n","import * as wjcCore from '@grapecity/wijmo';\r\n\r\nimport { FlexSheetCellConfig } from './flex-sheet-cell-config';\r\n\r\nexport enum MineSourceSheetRows {\r\n NAME = 0,\r\n VOLUMETRIC_FLOW_RATE = 2,\r\n GHG_INTENSITY = 3,\r\n COGEN_ELECTRICITY_GENERATION = 5,\r\n NET_ELECTRICITY_EXPORT = 6,\r\n COGEN_INTENSITY = 7,\r\n GRID_INTENSITY = 8,\r\n LIGHT_ENDS = 11,\r\n LIGHT_NAPHTHA = 12,\r\n HEAVY_NAPHTHA = 13,\r\n DISTILLATE = 14,\r\n LGO = 15,\r\n HGO = 16,\r\n VGO = 17,\r\n HVGO = 18,\r\n RESID = 19,\r\n PRICE = 22,\r\n CAPEX_AMORTIZED = 23,\r\n OPEX_FIXED = 24,\r\n OPEX_VAR = 25,\r\n OPEX_GAS_DIESEL = 26,\r\n OPEX_POWER = 27,\r\n}\r\n\r\nexport const MineSourceCellConfig: FlexSheetCellConfig[] = [\r\n {\r\n row: MineSourceSheetRows.NAME,\r\n dataType: wjcCore.DataType.String,\r\n format: '',\r\n },\r\n {\r\n row: MineSourceSheetRows.VOLUMETRIC_FLOW_RATE,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: MineSourceSheetRows.GHG_INTENSITY,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: MineSourceSheetRows.COGEN_ELECTRICITY_GENERATION,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: MineSourceSheetRows.NET_ELECTRICITY_EXPORT,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: MineSourceSheetRows.COGEN_INTENSITY,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: MineSourceSheetRows.GRID_INTENSITY,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: MineSourceSheetRows.LIGHT_ENDS,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: MineSourceSheetRows.LIGHT_NAPHTHA,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: MineSourceSheetRows.HEAVY_NAPHTHA,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: MineSourceSheetRows.DISTILLATE,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: MineSourceSheetRows.LGO,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: MineSourceSheetRows.HGO,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: MineSourceSheetRows.VGO,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: MineSourceSheetRows.HVGO,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: MineSourceSheetRows.RESID,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: MineSourceSheetRows.PRICE,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: MineSourceSheetRows.CAPEX_AMORTIZED,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: MineSourceSheetRows.OPEX_FIXED,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: MineSourceSheetRows.OPEX_VAR,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: MineSourceSheetRows.OPEX_GAS_DIESEL,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: MineSourceSheetRows.OPEX_POWER,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n];\r\n","import { FlexSheetMapper } from './flex-sheet-mapper';\r\nimport { MineSource } from '../../../_models/_unit-operations/mine-source';\r\nimport { Mapper } from '../../../_models/_interfaces/mapper';\r\nimport { SimulationVariable } from '../../../_models';\r\nimport { NumberToSimulationVariableMapper } from './number-to-simulation-variable-mapper';\r\nimport { MineSourceSheetRows } from '../cell-config/mine-source-cell-config';\r\n\r\nexport class MineSourceFlexSheetMapper implements FlexSheetMapper {\r\n private simulationVariableMapper: Mapper;\r\n\r\n constructor(simulationVariableMapper: NumberToSimulationVariableMapper) {\r\n this.simulationVariableMapper = simulationVariableMapper;\r\n }\r\n\r\n map(unitOperation: MineSource, row: number, value: string | number) {\r\n if (typeof value === 'string' && row === MineSourceSheetRows.NAME) {\r\n unitOperation.name = value;\r\n }\r\n\r\n if (typeof value === 'number') {\r\n switch (row) {\r\n case MineSourceSheetRows.VOLUMETRIC_FLOW_RATE:\r\n this.simulationVariableMapper.map(value, unitOperation.volumetricFlowrate);\r\n break;\r\n\r\n case MineSourceSheetRows.GHG_INTENSITY:\r\n this.simulationVariableMapper.map(value, unitOperation.ghgIntensity);\r\n break;\r\n\r\n case MineSourceSheetRows.COGEN_ELECTRICITY_GENERATION:\r\n this.simulationVariableMapper.map(value, unitOperation.cogenElectricityGeneration);\r\n break;\r\n\r\n case MineSourceSheetRows.NET_ELECTRICITY_EXPORT:\r\n this.simulationVariableMapper.map(value, unitOperation.netElectricityExport);\r\n break;\r\n\r\n case MineSourceSheetRows.COGEN_INTENSITY:\r\n this.simulationVariableMapper.map(value, unitOperation.cogenIntensity);\r\n break;\r\n\r\n case MineSourceSheetRows.GRID_INTENSITY:\r\n this.simulationVariableMapper.map(value, unitOperation.gridIntensity);\r\n break;\r\n\r\n case MineSourceSheetRows.PRICE:\r\n this.simulationVariableMapper.map(value, unitOperation.price);\r\n break;\r\n\r\n case MineSourceSheetRows.CAPEX_AMORTIZED:\r\n this.simulationVariableMapper.map(value, unitOperation.capexAmortized);\r\n break;\r\n\r\n case MineSourceSheetRows.OPEX_FIXED:\r\n this.simulationVariableMapper.map(value, unitOperation.opexFixed);\r\n break;\r\n\r\n case MineSourceSheetRows.OPEX_VAR:\r\n this.simulationVariableMapper.map(value, unitOperation.opexVar);\r\n break;\r\n\r\n case MineSourceSheetRows.OPEX_GAS_DIESEL:\r\n this.simulationVariableMapper.map(value, unitOperation.opexGasDiesel);\r\n break;\r\n\r\n case MineSourceSheetRows.OPEX_POWER:\r\n this.simulationVariableMapper.map(value, unitOperation.opexPower);\r\n break;\r\n }\r\n }\r\n }\r\n}\r\n","import * as wjcSheet from '@grapecity/wijmo.grid.sheet';\r\n\r\nimport { FlexSheetValueConverter } from '../flex-sheet-value-converter';\r\nimport { enumValuesToArray } from '../../../_utils/enum-values-to-array';\r\nimport { NumberToSimulationVariableMapper } from '../mappers/number-to-simulation-variable-mapper';\r\nimport { MineSourceCellConfig, MineSourceSheetRows } from '../cell-config/mine-source-cell-config';\r\nimport { MineSourceFlexSheetMapper } from '../mappers/mine-source-flex-sheet-mapper';\r\nimport { MineSource } from '../../../_models/_unit-operations/mine-source';\r\nimport { UnitOperationFlexSheetEventHandler } from './unit-operation-flex-sheet-event-handler';\r\n\r\nexport class MineSourceFlexSheetEventHandler implements UnitOperationFlexSheetEventHandler {\r\n constructor(private valueConverter: FlexSheetValueConverter) {}\r\n\r\n handle(unitOperation: MineSource, spreadsheet: wjcSheet.FlexSheet, flexSheetEvent, rawValue) {\r\n const { row } = flexSheetEvent;\r\n\r\n if (enumValuesToArray(MineSourceSheetRows).indexOf(row) === -1) {\r\n flexSheetEvent.cancel = true;\r\n return;\r\n }\r\n\r\n const cellConfig = MineSourceCellConfig.find(rowConfig => rowConfig.row === row);\r\n const convertedValue = this.valueConverter.convert(spreadsheet, rawValue, cellConfig);\r\n\r\n const simulationVariableMapper = new NumberToSimulationVariableMapper();\r\n const mapper = new MineSourceFlexSheetMapper(simulationVariableMapper);\r\n\r\n mapper.map(unitOperation, row, convertedValue);\r\n }\r\n}\r\n","import * as wjcCore from '@grapecity/wijmo';\r\n\r\nimport { FlexSheetCellConfig } from './flex-sheet-cell-config';\r\n\r\nexport enum DiluentSourceSheetRows {\r\n NAME = 0,\r\n VOLUMETRIC_FLOW_RATE = 2,\r\n GHG_INTENSITY = 3,\r\n LIGHT_ENDS = 11,\r\n LIGHT_NAPHTHA = 12,\r\n HEAVY_NAPHTHA = 13,\r\n DISTILLATE = 14,\r\n LGO = 15,\r\n HGO = 16,\r\n VGO = 17,\r\n HVGO = 18,\r\n RESID = 19,\r\n}\r\n\r\nexport const DiluentSourceCellConfig: FlexSheetCellConfig[] = [\r\n {\r\n row: DiluentSourceSheetRows.NAME,\r\n dataType: wjcCore.DataType.String,\r\n format: '',\r\n },\r\n {\r\n row: DiluentSourceSheetRows.VOLUMETRIC_FLOW_RATE,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: DiluentSourceSheetRows.GHG_INTENSITY,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: DiluentSourceSheetRows.LIGHT_ENDS,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: DiluentSourceSheetRows.LIGHT_NAPHTHA,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: DiluentSourceSheetRows.HEAVY_NAPHTHA,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: DiluentSourceSheetRows.DISTILLATE,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: DiluentSourceSheetRows.LGO,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: DiluentSourceSheetRows.HGO,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: DiluentSourceSheetRows.VGO,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: DiluentSourceSheetRows.HVGO,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: DiluentSourceSheetRows.RESID,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n];\r\n","import { FlexSheetMapper } from './flex-sheet-mapper';\r\nimport { Mapper } from '../../../_models/_interfaces/mapper';\r\nimport { SimulationVariable } from '../../../_models';\r\nimport { NumberToSimulationVariableMapper } from './number-to-simulation-variable-mapper';\r\nimport { DiluentSource } from '../../../_models/_unit-operations/diluent-source';\r\nimport { DiluentSourceSheetRows } from '../cell-config/diluent-source-cell-config';\r\n\r\nexport class DiluentSourceFlexSheetMapper implements FlexSheetMapper {\r\n private simulationVariableMapper: Mapper;\r\n\r\n constructor(simulationVariableMapper: NumberToSimulationVariableMapper) {\r\n this.simulationVariableMapper = simulationVariableMapper;\r\n }\r\n\r\n map(unitOperation: DiluentSource, row: number, value: string | number) {\r\n if (typeof value === 'string' && row === DiluentSourceSheetRows.NAME) {\r\n unitOperation.name = value;\r\n }\r\n\r\n if (typeof value === 'number') {\r\n switch (row) {\r\n case DiluentSourceSheetRows.VOLUMETRIC_FLOW_RATE:\r\n this.simulationVariableMapper.map(value, unitOperation.volumetricFlowrate);\r\n break;\r\n\r\n case DiluentSourceSheetRows.GHG_INTENSITY:\r\n this.simulationVariableMapper.map(value, unitOperation.ghgIntensity);\r\n break;\r\n }\r\n }\r\n }\r\n}\r\n","import * as wjcSheet from '@grapecity/wijmo.grid.sheet';\r\n\r\nimport { UnitOperationFlexSheetEventHandler } from './unit-operation-flex-sheet-event-handler';\r\nimport { enumValuesToArray } from '../../../_utils/enum-values-to-array';\r\nimport { DiluentSourceCellConfig, DiluentSourceSheetRows } from '../cell-config/diluent-source-cell-config';\r\nimport { NumberToSimulationVariableMapper } from '../mappers/number-to-simulation-variable-mapper';\r\nimport { FlexSheetValueConverter } from '../flex-sheet-value-converter';\r\nimport { DiluentSource } from '../../../_models/_unit-operations/diluent-source';\r\nimport { DiluentSourceFlexSheetMapper } from '../mappers/diluent-source-flex-sheet-mapper';\r\n\r\nexport class DiluentSourceFlexSheetEventHandler implements UnitOperationFlexSheetEventHandler {\r\n constructor(private valueConverter: FlexSheetValueConverter) {}\r\n\r\n handle(unitOperation: DiluentSource, spreadsheet: wjcSheet.FlexSheet, flexSheetEvent, rawValue) {\r\n const { row } = flexSheetEvent;\r\n\r\n if (enumValuesToArray(DiluentSourceSheetRows).indexOf(row) === -1) {\r\n flexSheetEvent.cancel = true;\r\n return;\r\n }\r\n\r\n const cellConfig = DiluentSourceCellConfig.find(rowConfig => rowConfig.row === row);\r\n const convertedValue = this.valueConverter.convert(spreadsheet, rawValue, cellConfig);\r\n\r\n const simulationVariableMapper = new NumberToSimulationVariableMapper();\r\n const mapper = new DiluentSourceFlexSheetMapper(simulationVariableMapper);\r\n\r\n mapper.map(unitOperation, row, convertedValue);\r\n }\r\n}\r\n","import * as wjcCore from '@grapecity/wijmo';\r\n\r\nimport { FlexSheetCellConfig } from './flex-sheet-cell-config';\r\n\r\nexport enum ThirdPartySourceSheetRows {\r\n NAME = 0,\r\n VOLUMETRIC_FLOW_RATE = 2,\r\n GHG_INTENSITY = 3,\r\n LIGHT_ENDS = 11,\r\n LIGHT_NAPHTHA = 12,\r\n HEAVY_NAPHTHA = 13,\r\n DISTILLATE = 14,\r\n LGO = 15,\r\n HGO = 16,\r\n VGO = 17,\r\n HVGO = 18,\r\n RESID = 19,\r\n PRICE = 22,\r\n}\r\n\r\nexport const ThirdPartySourceCellConfig: FlexSheetCellConfig[] = [\r\n {\r\n row: ThirdPartySourceSheetRows.NAME,\r\n dataType: wjcCore.DataType.String,\r\n format: '',\r\n },\r\n {\r\n row: ThirdPartySourceSheetRows.VOLUMETRIC_FLOW_RATE,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: ThirdPartySourceSheetRows.GHG_INTENSITY,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: ThirdPartySourceSheetRows.LIGHT_ENDS,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: ThirdPartySourceSheetRows.LIGHT_NAPHTHA,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: ThirdPartySourceSheetRows.HEAVY_NAPHTHA,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: ThirdPartySourceSheetRows.DISTILLATE,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: ThirdPartySourceSheetRows.LGO,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: ThirdPartySourceSheetRows.HGO,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: ThirdPartySourceSheetRows.VGO,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: ThirdPartySourceSheetRows.HVGO,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: ThirdPartySourceSheetRows.RESID,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: ThirdPartySourceSheetRows.PRICE,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n];\r\n","import { FlexSheetMapper } from './flex-sheet-mapper';\r\nimport { ThirdPartySource } from '../../../_models/_unit-operations/third-party-source';\r\nimport { ThirdPartySourceSheetRows } from '../cell-config/third-party-source-cell-config';\r\nimport { Mapper } from '../../../_models/_interfaces/mapper';\r\nimport { SimulationVariable } from '../../../_models';\r\nimport { NumberToSimulationVariableMapper } from './number-to-simulation-variable-mapper';\r\n\r\nexport class ThirdPartySourceFlexSheetMapper implements FlexSheetMapper {\r\n simulationVariableMapper: Mapper;\r\n\r\n constructor(simulationVariableMapper: NumberToSimulationVariableMapper) {\r\n this.simulationVariableMapper = simulationVariableMapper;\r\n }\r\n\r\n map(unitOperation: ThirdPartySource, row: number, value: string | number) {\r\n if (row === ThirdPartySourceSheetRows.NAME && typeof value === 'string') {\r\n unitOperation.name = value;\r\n }\r\n\r\n if (typeof value === 'number') {\r\n switch (row) {\r\n case ThirdPartySourceSheetRows.VOLUMETRIC_FLOW_RATE:\r\n this.simulationVariableMapper.map(value, unitOperation.volumetricFlowrate);\r\n break;\r\n\r\n case ThirdPartySourceSheetRows.GHG_INTENSITY:\r\n this.simulationVariableMapper.map(value, unitOperation.ghgIntensity);\r\n break;\r\n\r\n case ThirdPartySourceSheetRows.PRICE:\r\n this.simulationVariableMapper.map(value, unitOperation.price);\r\n break;\r\n }\r\n }\r\n }\r\n}\r\n","import * as wjcSheet from '@grapecity/wijmo.grid.sheet';\r\n\r\nimport { UnitOperationFlexSheetEventHandler } from './unit-operation-flex-sheet-event-handler';\r\nimport { ThirdPartySource } from '../../../_models/_unit-operations/third-party-source';\r\nimport { enumValuesToArray } from '../../../_utils/enum-values-to-array';\r\nimport { NumberToSimulationVariableMapper } from '../mappers/number-to-simulation-variable-mapper';\r\nimport { ThirdPartySourceCellConfig, ThirdPartySourceSheetRows } from '../cell-config/third-party-source-cell-config';\r\nimport { FlexSheetValueConverter } from '../flex-sheet-value-converter';\r\nimport { ThirdPartySourceFlexSheetMapper } from '../mappers/third-party-source-flex-sheet-mapper';\r\n\r\nexport class ThirdPartySourceFlexSheetEventHandler implements UnitOperationFlexSheetEventHandler {\r\n constructor(private valueConverter: FlexSheetValueConverter) {}\r\n\r\n handle(unitOperation: ThirdPartySource, spreadsheet: wjcSheet.FlexSheet, flexSheetEvent, rawValue) {\r\n const { row } = flexSheetEvent;\r\n\r\n if (enumValuesToArray(ThirdPartySourceSheetRows).indexOf(row) === -1) {\r\n flexSheetEvent.cancel = true;\r\n return;\r\n }\r\n\r\n const cellConfig = ThirdPartySourceCellConfig.find(rowConfig => rowConfig.row === row);\r\n const convertedValue = this.valueConverter.convert(spreadsheet, rawValue, cellConfig);\r\n\r\n const simulationVariableMapper = new NumberToSimulationVariableMapper();\r\n const mapper = new ThirdPartySourceFlexSheetMapper(simulationVariableMapper);\r\n\r\n mapper.map(unitOperation, row, convertedValue);\r\n }\r\n}\r\n","import * as wjcCore from '@grapecity/wijmo';\r\n\r\nimport { FlexSheetCellConfig } from './flex-sheet-cell-config';\r\n\r\nexport enum OffshoreSourceSheetRows {\r\n NAME = 0,\r\n VOLUMETRIC_FLOW_RATE = 2,\r\n GHG_INTENSITY = 3,\r\n COGEN_ELECTRICITY_GENERATION = 5,\r\n NET_ELECTRICITY_EXPORT = 6,\r\n COGEN_INTENSITY = 7,\r\n GRID_INTENSITY = 8,\r\n LIGHT_ENDS = 11,\r\n LIGHT_NAPHTHA = 12,\r\n HEAVY_NAPHTHA = 13,\r\n DISTILLATE = 14,\r\n LGO = 15,\r\n HGO = 16,\r\n VGO = 17,\r\n HVGO = 18,\r\n RESID = 19,\r\n PRICE = 22,\r\n CAPEX_AMORTIZED = 23,\r\n OPEX_FIXED = 24,\r\n OPEX_VAR = 25,\r\n OPEX_GAS_DIESEL = 26,\r\n OPEX_POWER = 27,\r\n}\r\n\r\nexport const OffshoreSourceCellConfig: FlexSheetCellConfig[] = [\r\n {\r\n row: OffshoreSourceSheetRows.NAME,\r\n dataType: wjcCore.DataType.String,\r\n format: '',\r\n },\r\n {\r\n row: OffshoreSourceSheetRows.VOLUMETRIC_FLOW_RATE,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: OffshoreSourceSheetRows.GHG_INTENSITY,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: OffshoreSourceSheetRows.COGEN_ELECTRICITY_GENERATION,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: OffshoreSourceSheetRows.NET_ELECTRICITY_EXPORT,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: OffshoreSourceSheetRows.COGEN_INTENSITY,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: OffshoreSourceSheetRows.GRID_INTENSITY,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: OffshoreSourceSheetRows.LIGHT_ENDS,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: OffshoreSourceSheetRows.LIGHT_NAPHTHA,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: OffshoreSourceSheetRows.HEAVY_NAPHTHA,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: OffshoreSourceSheetRows.DISTILLATE,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: OffshoreSourceSheetRows.LGO,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: OffshoreSourceSheetRows.HGO,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: OffshoreSourceSheetRows.VGO,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: OffshoreSourceSheetRows.HVGO,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: OffshoreSourceSheetRows.RESID,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: OffshoreSourceSheetRows.PRICE,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: OffshoreSourceSheetRows.CAPEX_AMORTIZED,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: OffshoreSourceSheetRows.OPEX_FIXED,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: OffshoreSourceSheetRows.OPEX_VAR,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: OffshoreSourceSheetRows.OPEX_GAS_DIESEL,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: OffshoreSourceSheetRows.OPEX_POWER,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n];\r\n","import { FlexSheetMapper } from './flex-sheet-mapper';\r\nimport { OffshoreSource } from '../../../_models/_unit-operations/offshore-source';\r\nimport { Mapper } from '../../../_models/_interfaces/mapper';\r\nimport { SimulationVariable } from '../../../_models';\r\nimport { NumberToSimulationVariableMapper } from './number-to-simulation-variable-mapper';\r\nimport { OffshoreSourceSheetRows } from '../cell-config/offshore-source-cell-config';\r\n\r\nexport class OffshoreSourceFlexSheetMapper implements FlexSheetMapper {\r\n simulationVariableMapper: Mapper;\r\n\r\n constructor(simulationVariableMapper: NumberToSimulationVariableMapper) {\r\n this.simulationVariableMapper = simulationVariableMapper;\r\n }\r\n\r\n map(unitOperation: OffshoreSource, row: number, value: string | number) {\r\n if (row === OffshoreSourceSheetRows.NAME && typeof value === 'string') {\r\n unitOperation.name = value;\r\n }\r\n\r\n if (typeof value === 'number') {\r\n switch (row) {\r\n case OffshoreSourceSheetRows.VOLUMETRIC_FLOW_RATE:\r\n this.simulationVariableMapper.map(value, unitOperation.volumetricFlowrate);\r\n break;\r\n\r\n case OffshoreSourceSheetRows.GHG_INTENSITY:\r\n this.simulationVariableMapper.map(value, unitOperation.ghgIntensity);\r\n break;\r\n\r\n case OffshoreSourceSheetRows.COGEN_ELECTRICITY_GENERATION:\r\n this.simulationVariableMapper.map(value, unitOperation.cogenElectricityGeneration);\r\n break;\r\n\r\n case OffshoreSourceSheetRows.NET_ELECTRICITY_EXPORT:\r\n this.simulationVariableMapper.map(value, unitOperation.netElectricityExport);\r\n break;\r\n\r\n case OffshoreSourceSheetRows.COGEN_INTENSITY:\r\n this.simulationVariableMapper.map(value, unitOperation.cogenIntensity);\r\n break;\r\n\r\n case OffshoreSourceSheetRows.GRID_INTENSITY:\r\n this.simulationVariableMapper.map(value, unitOperation.gridIntensity);\r\n break;\r\n\r\n case OffshoreSourceSheetRows.PRICE:\r\n this.simulationVariableMapper.map(value, unitOperation.price);\r\n break;\r\n\r\n case OffshoreSourceSheetRows.CAPEX_AMORTIZED:\r\n this.simulationVariableMapper.map(value, unitOperation.capexAmortized);\r\n break;\r\n\r\n case OffshoreSourceSheetRows.OPEX_FIXED:\r\n this.simulationVariableMapper.map(value, unitOperation.opexFixed);\r\n break;\r\n\r\n case OffshoreSourceSheetRows.OPEX_VAR:\r\n this.simulationVariableMapper.map(value, unitOperation.opexVar);\r\n break;\r\n\r\n case OffshoreSourceSheetRows.OPEX_GAS_DIESEL:\r\n this.simulationVariableMapper.map(value, unitOperation.opexGasDiesel);\r\n break;\r\n\r\n case OffshoreSourceSheetRows.OPEX_POWER:\r\n this.simulationVariableMapper.map(value, unitOperation.opexPower);\r\n break;\r\n }\r\n }\r\n }\r\n}\r\n","import * as wjcSheet from '@grapecity/wijmo.grid.sheet';\r\n\r\nimport { UnitOperationFlexSheetEventHandler } from './unit-operation-flex-sheet-event-handler';\r\nimport { OffshoreSource } from '../../../_models/_unit-operations/offshore-source';\r\nimport { enumValuesToArray } from '../../../_utils/enum-values-to-array';\r\nimport { NumberToSimulationVariableMapper } from '../mappers/number-to-simulation-variable-mapper';\r\nimport { OffshoreSourceCellConfig, OffshoreSourceSheetRows } from '../cell-config/offshore-source-cell-config';\r\nimport { FlexSheetValueConverter } from '../flex-sheet-value-converter';\r\nimport { OffshoreSourceFlexSheetMapper } from '../mappers/offshore-source-flex-sheet-mapper';\r\n\r\nexport class OffshoreSourceFlexSheetEventHandler implements UnitOperationFlexSheetEventHandler {\r\n constructor(private valueConverter: FlexSheetValueConverter) {}\r\n\r\n handle(unitOperation: OffshoreSource, spreadsheet: wjcSheet.FlexSheet, flexSheetEvent, rawValue) {\r\n const { row } = flexSheetEvent;\r\n\r\n if (enumValuesToArray(OffshoreSourceSheetRows).indexOf(row) === -1) {\r\n flexSheetEvent.cancel = true;\r\n return;\r\n }\r\n\r\n const cellConfig = OffshoreSourceCellConfig.find(rowConfig => rowConfig.row === row);\r\n const convertedValue = this.valueConverter.convert(spreadsheet, rawValue, cellConfig);\r\n\r\n const simulationVariableMapper = new NumberToSimulationVariableMapper();\r\n const mapper = new OffshoreSourceFlexSheetMapper(simulationVariableMapper);\r\n\r\n mapper.map(unitOperation, row, convertedValue);\r\n }\r\n}\r\n","import * as wjcCore from '@grapecity/wijmo';\r\n\r\nimport { FlexSheetCellConfig } from './flex-sheet-cell-config';\r\n\r\nexport enum UpgraderSheetRows {\r\n NAME = 0,\r\n CCR_REMOVAL = 3,\r\n NITROGEN_REMOVAL = 4,\r\n SULFUR_REMOVAL = 5,\r\n SWEET_PRODUCT_RATIO = 6,\r\n SWEET_GHG_INTENSITY = 7,\r\n SOUR_GHG_INTENSITY = 8,\r\n CAPACITY = 9,\r\n COGEN_ELECTRICITY_GENERATION = 11,\r\n NET_ELECTRICITY_EXPORT = 12,\r\n COGEN_INTENSITY = 13,\r\n GRID_INTENSITY = 14,\r\n SWEET_PRODUCT_PRICE = 17,\r\n SOUR_PRODUCT_PRICE = 18,\r\n CAPEX_AMORTIZED = 19,\r\n OPEX_FIXED = 20,\r\n OPEX_VAR = 21,\r\n OPEX_GAS_DIESEL = 22,\r\n OPEX_POWER = 23,\r\n TOTAL_H2S_PRODUCTION = 26,\r\n DEA_USE_RATE = 27,\r\n AMINE_CIRCULATION_RATE = 28,\r\n AMINE_RATE_CAPACITY = 29,\r\n}\r\n\r\nexport const UpgraderCellConfig: FlexSheetCellConfig[] = [\r\n {\r\n row: UpgraderSheetRows.NAME,\r\n dataType: wjcCore.DataType.String,\r\n format: '',\r\n },\r\n {\r\n row: UpgraderSheetRows.CCR_REMOVAL,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: UpgraderSheetRows.NITROGEN_REMOVAL,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: UpgraderSheetRows.SULFUR_REMOVAL,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: UpgraderSheetRows.SWEET_PRODUCT_RATIO,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: UpgraderSheetRows.SWEET_GHG_INTENSITY,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: UpgraderSheetRows.SOUR_GHG_INTENSITY,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: UpgraderSheetRows.CAPACITY,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: UpgraderSheetRows.COGEN_ELECTRICITY_GENERATION,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: UpgraderSheetRows.NET_ELECTRICITY_EXPORT,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: UpgraderSheetRows.COGEN_INTENSITY,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: UpgraderSheetRows.GRID_INTENSITY,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: UpgraderSheetRows.SWEET_PRODUCT_PRICE,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: UpgraderSheetRows.SOUR_PRODUCT_PRICE,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: UpgraderSheetRows.CAPEX_AMORTIZED,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: UpgraderSheetRows.OPEX_FIXED,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: UpgraderSheetRows.OPEX_VAR,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: UpgraderSheetRows.OPEX_GAS_DIESEL,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: UpgraderSheetRows.OPEX_POWER,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: UpgraderSheetRows.TOTAL_H2S_PRODUCTION,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: UpgraderSheetRows.DEA_USE_RATE,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: UpgraderSheetRows.AMINE_CIRCULATION_RATE,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: UpgraderSheetRows.AMINE_RATE_CAPACITY,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n];\r\n","import { FlexSheetMapper } from './flex-sheet-mapper';\r\nimport { Upgrader } from '../../../_models/_unit-operations/upgrader';\r\nimport { UpgraderSheetRows } from '../cell-config/upgrader-cell-config';\r\nimport { Mapper } from '../../../_models/_interfaces/mapper';\r\nimport { SimulationVariable } from '../../../_models';\r\nimport { NumberToSimulationVariableMapper } from './number-to-simulation-variable-mapper';\r\n\r\nexport class UpgraderFlexSheetMapper implements FlexSheetMapper {\r\n simulationVariableMapper: Mapper;\r\n\r\n constructor(simulationVariableMapper: NumberToSimulationVariableMapper) {\r\n this.simulationVariableMapper = simulationVariableMapper;\r\n }\r\n\r\n map(unitOperation: Upgrader, row: number, value: string | number) {\r\n if (row === UpgraderSheetRows.NAME && typeof value === 'string') {\r\n unitOperation.name = value;\r\n }\r\n\r\n if (typeof value === 'number') {\r\n switch (row) {\r\n case UpgraderSheetRows.CCR_REMOVAL:\r\n this.simulationVariableMapper.map(value, unitOperation.ccrRemoval);\r\n break;\r\n\r\n case UpgraderSheetRows.NITROGEN_REMOVAL:\r\n this.simulationVariableMapper.map(value, unitOperation.nitrogenRemoval);\r\n break;\r\n\r\n case UpgraderSheetRows.SULFUR_REMOVAL:\r\n this.simulationVariableMapper.map(value, unitOperation.sulfurRemoval);\r\n break;\r\n\r\n case UpgraderSheetRows.SWEET_PRODUCT_RATIO:\r\n this.simulationVariableMapper.map(value, unitOperation.sweetProductRatio);\r\n break;\r\n\r\n case UpgraderSheetRows.SWEET_GHG_INTENSITY:\r\n this.simulationVariableMapper.map(value, unitOperation.sweetGhgIntensity);\r\n break;\r\n\r\n case UpgraderSheetRows.SOUR_GHG_INTENSITY:\r\n this.simulationVariableMapper.map(value, unitOperation.sourGhgIntensity);\r\n break;\r\n\r\n case UpgraderSheetRows.CAPACITY:\r\n this.simulationVariableMapper.map(value, unitOperation.capacity);\r\n break;\r\n\r\n case UpgraderSheetRows.COGEN_ELECTRICITY_GENERATION:\r\n this.simulationVariableMapper.map(value, unitOperation.cogenElectricityGeneration);\r\n break;\r\n\r\n case UpgraderSheetRows.NET_ELECTRICITY_EXPORT:\r\n this.simulationVariableMapper.map(value, unitOperation.netElectricityExport);\r\n break;\r\n\r\n case UpgraderSheetRows.COGEN_INTENSITY:\r\n this.simulationVariableMapper.map(value, unitOperation.cogenIntensity);\r\n break;\r\n\r\n case UpgraderSheetRows.GRID_INTENSITY:\r\n this.simulationVariableMapper.map(value, unitOperation.gridIntensity);\r\n break;\r\n\r\n case UpgraderSheetRows.SWEET_PRODUCT_PRICE:\r\n this.simulationVariableMapper.map(value, unitOperation.sweetProductPrice);\r\n break;\r\n\r\n case UpgraderSheetRows.SOUR_PRODUCT_PRICE:\r\n this.simulationVariableMapper.map(value, unitOperation.sourProductPrice);\r\n break;\r\n\r\n case UpgraderSheetRows.CAPEX_AMORTIZED:\r\n this.simulationVariableMapper.map(value, unitOperation.capexAmortized);\r\n break;\r\n\r\n case UpgraderSheetRows.OPEX_FIXED:\r\n this.simulationVariableMapper.map(value, unitOperation.opexFixed);\r\n break;\r\n\r\n case UpgraderSheetRows.OPEX_VAR:\r\n this.simulationVariableMapper.map(value, unitOperation.opexVar);\r\n break;\r\n\r\n case UpgraderSheetRows.OPEX_GAS_DIESEL:\r\n this.simulationVariableMapper.map(value, unitOperation.opexGasDiesel);\r\n break;\r\n\r\n case UpgraderSheetRows.OPEX_POWER:\r\n this.simulationVariableMapper.map(value, unitOperation.opexPower);\r\n break;\r\n case UpgraderSheetRows.DEA_USE_RATE:\r\n this.simulationVariableMapper.map(value, unitOperation.deaUseRate);\r\n break;\r\n case UpgraderSheetRows.AMINE_RATE_CAPACITY:\r\n this.simulationVariableMapper.map(value, unitOperation.amineRateCapacity);\r\n break;\r\n }\r\n }\r\n }\r\n}\r\n","import * as wjcSheet from '@grapecity/wijmo.grid.sheet';\r\n\r\nimport { UnitOperationFlexSheetEventHandler } from './unit-operation-flex-sheet-event-handler';\r\nimport { Upgrader } from '../../../_models/_unit-operations/upgrader';\r\nimport { FlexSheetValueConverter } from '../flex-sheet-value-converter';\r\nimport { enumValuesToArray } from '../../../_utils/enum-values-to-array';\r\nimport { NumberToSimulationVariableMapper } from '../mappers/number-to-simulation-variable-mapper';\r\nimport { UpgraderCellConfig, UpgraderSheetRows } from '../cell-config/upgrader-cell-config';\r\nimport { UpgraderFlexSheetMapper } from '../mappers/upgrader-flex-sheet-mapper';\r\n\r\nexport class UpgraderFlexSheetEventHandler implements UnitOperationFlexSheetEventHandler {\r\n constructor(private valueConverter: FlexSheetValueConverter) {}\r\n\r\n handle(unitOperation: Upgrader, spreadsheet: wjcSheet.FlexSheet, flexSheetEvent, rawValue) {\r\n const { row } = flexSheetEvent;\r\n\r\n if (\r\n enumValuesToArray(UpgraderSheetRows).indexOf(row) === -1 ||\r\n row === UpgraderSheetRows.TOTAL_H2S_PRODUCTION ||\r\n row === UpgraderSheetRows.AMINE_CIRCULATION_RATE\r\n ) {\r\n flexSheetEvent.cancel = true;\r\n return;\r\n }\r\n\r\n const cellConfig = UpgraderCellConfig.find(rowConfig => rowConfig.row === row);\r\n const convertedValue = this.valueConverter.convert(spreadsheet, rawValue, cellConfig);\r\n\r\n const simulationVariableMapper = new NumberToSimulationVariableMapper();\r\n const mapper = new UpgraderFlexSheetMapper(simulationVariableMapper);\r\n\r\n mapper.map(unitOperation, row, convertedValue);\r\n }\r\n}\r\n","import * as wjcCore from '@grapecity/wijmo';\r\n\r\nimport { FlexSheetCellConfig } from './flex-sheet-cell-config';\r\n\r\nexport enum PipeSheetRows {\r\n NAME = 0,\r\n PIPE_LENGTH = 3,\r\n PRESSURE_DROP = 4,\r\n GHG_INTENSITY_PER_MASS_DISTANCE = 5,\r\n PIPE_DENSITY_SPEC = 6,\r\n CAPACITY = 7,\r\n OPEX_FIXED = 10,\r\n OPEX_VAR = 11,\r\n}\r\n\r\nexport const PipeCellConfig: FlexSheetCellConfig[] = [\r\n {\r\n row: PipeSheetRows.NAME,\r\n dataType: wjcCore.DataType.String,\r\n format: '',\r\n },\r\n {\r\n row: PipeSheetRows.PIPE_LENGTH,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: PipeSheetRows.PRESSURE_DROP,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: PipeSheetRows.GHG_INTENSITY_PER_MASS_DISTANCE,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: PipeSheetRows.PIPE_DENSITY_SPEC,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: PipeSheetRows.CAPACITY,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: PipeSheetRows.OPEX_FIXED,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: PipeSheetRows.OPEX_VAR,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n];\r\n","import { FlexSheetMapper } from './flex-sheet-mapper';\r\nimport { Pipe } from '../../../_models/_unit-operations/pipe';\r\nimport { Mapper } from '../../../_models/_interfaces/mapper';\r\nimport { SimulationVariable } from '../../../_models';\r\nimport { NumberToSimulationVariableMapper } from './number-to-simulation-variable-mapper';\r\nimport { SagdSourceSheetRows } from '../cell-config/sagd-source-cell-config';\r\nimport { PipeSheetRows } from '../cell-config/pipe-cell-config';\r\n\r\nexport class PipeFlexSheetMapper implements FlexSheetMapper {\r\n simulationVariableMapper: Mapper;\r\n\r\n constructor(simulationVariableMapper: NumberToSimulationVariableMapper) {\r\n this.simulationVariableMapper = simulationVariableMapper;\r\n }\r\n\r\n map(unitOperation: Pipe, row: number, value: string | number) {\r\n if (row === SagdSourceSheetRows.NAME && typeof value === 'string') {\r\n unitOperation.name = value;\r\n }\r\n\r\n if (typeof value === 'number') {\r\n switch (row) {\r\n case PipeSheetRows.PIPE_LENGTH:\r\n this.simulationVariableMapper.map(value, unitOperation.pipeLength);\r\n break;\r\n\r\n case PipeSheetRows.PRESSURE_DROP:\r\n this.simulationVariableMapper.map(value, unitOperation.pressureDrop);\r\n break;\r\n\r\n case PipeSheetRows.GHG_INTENSITY_PER_MASS_DISTANCE:\r\n this.simulationVariableMapper.map(value, unitOperation.ghgIntensityPerMassDistance);\r\n break;\r\n\r\n case PipeSheetRows.PIPE_DENSITY_SPEC:\r\n this.simulationVariableMapper.map(value, unitOperation.pipeDensitySpec);\r\n break;\r\n\r\n case PipeSheetRows.CAPACITY:\r\n this.simulationVariableMapper.map(value, unitOperation.capacity);\r\n break;\r\n\r\n case PipeSheetRows.OPEX_FIXED:\r\n this.simulationVariableMapper.map(value, unitOperation.opexFixed);\r\n break;\r\n\r\n case PipeSheetRows.OPEX_VAR:\r\n this.simulationVariableMapper.map(value, unitOperation.opexVar);\r\n break;\r\n }\r\n }\r\n }\r\n}\r\n","import * as wjcSheet from '@grapecity/wijmo.grid.sheet';\r\n\r\nimport { UnitOperationFlexSheetEventHandler } from './unit-operation-flex-sheet-event-handler';\r\nimport { Pipe } from '../../../_models/_unit-operations/pipe';\r\nimport { enumValuesToArray } from '../../../_utils/enum-values-to-array';\r\nimport { PipeSheetRows, PipeCellConfig } from '../cell-config/pipe-cell-config';\r\nimport { NumberToSimulationVariableMapper } from '../mappers/number-to-simulation-variable-mapper';\r\nimport { FlexSheetValueConverter } from '../flex-sheet-value-converter';\r\nimport { PipeFlexSheetMapper } from '../mappers/pipe-flex-sheet-mapper';\r\n\r\nexport class PipeFlexSheetEventHandler implements UnitOperationFlexSheetEventHandler {\r\n constructor(private valueConverter: FlexSheetValueConverter) {}\r\n\r\n handle(unitOperation: Pipe, spreadsheet: wjcSheet.FlexSheet, flexSheetEvent, rawValue) {\r\n const { row } = flexSheetEvent;\r\n\r\n if (enumValuesToArray(PipeSheetRows).indexOf(row) === -1) {\r\n flexSheetEvent.cancel = true;\r\n return;\r\n }\r\n\r\n const cellConfig = PipeCellConfig.find(rowConfig => rowConfig.row === row);\r\n const convertedValue = this.valueConverter.convert(spreadsheet, rawValue, cellConfig);\r\n\r\n const simulationVariableMapper = new NumberToSimulationVariableMapper();\r\n const mapper = new PipeFlexSheetMapper(simulationVariableMapper);\r\n\r\n mapper.map(unitOperation, row, convertedValue);\r\n }\r\n}\r\n","import * as wjcCore from '@grapecity/wijmo';\r\nimport { FlexSheetCellConfig } from './flex-sheet-cell-config';\r\n\r\nexport enum RefinerySheetRows {\r\n NAME = 0,\r\n LIGHT_ENDS_MARGIN = 3,\r\n NAPHTHA_MARGIN = 4,\r\n DISTILLATE_MARGIN = 5,\r\n GAS_OIL_MARGIN = 6,\r\n VACUUM_RESIDUE_MARGIN = 7,\r\n CAPACITY = 8,\r\n CAPEX_AMORTIZED = 11,\r\n OPEX_FIXED = 12,\r\n OPEX_VAR = 13,\r\n OPEX_GAS_DIESEL = 14,\r\n OPEX_POWER = 15,\r\n}\r\n\r\nexport const RefineryCellConfig: FlexSheetCellConfig[] = [\r\n {\r\n row: RefinerySheetRows.NAME,\r\n dataType: wjcCore.DataType.String,\r\n format: '',\r\n },\r\n {\r\n row: RefinerySheetRows.LIGHT_ENDS_MARGIN,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: RefinerySheetRows.NAPHTHA_MARGIN,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: RefinerySheetRows.DISTILLATE_MARGIN,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: RefinerySheetRows.GAS_OIL_MARGIN,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: RefinerySheetRows.VACUUM_RESIDUE_MARGIN,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: RefinerySheetRows.CAPACITY,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: RefinerySheetRows.CAPEX_AMORTIZED,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: RefinerySheetRows.OPEX_FIXED,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: RefinerySheetRows.OPEX_VAR,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: RefinerySheetRows.OPEX_GAS_DIESEL,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: RefinerySheetRows.OPEX_POWER,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n];\r\n","import { FlexSheetMapper } from './flex-sheet-mapper';\r\nimport { Refinery } from '../../../_models/_unit-operations/refinery';\r\nimport { RefinerySheetRows } from '../cell-config/refinery-cell-config';\r\nimport { Mapper } from '../../../_models/_interfaces/mapper';\r\nimport { SimulationVariable } from '../../../_models';\r\nimport { NumberToSimulationVariableMapper } from './number-to-simulation-variable-mapper';\r\n\r\nexport class RefineryFlexSheetMapper implements FlexSheetMapper {\r\n simulationVariableMapper: Mapper;\r\n\r\n constructor(simulationVariableMapper: NumberToSimulationVariableMapper) {\r\n this.simulationVariableMapper = simulationVariableMapper;\r\n }\r\n\r\n map(unitOperation: Refinery, row: number, value: string | number) {\r\n if (row === RefinerySheetRows.NAME && typeof value === 'string') {\r\n unitOperation.name = value;\r\n }\r\n\r\n if (typeof value === 'number') {\r\n switch (row) {\r\n case RefinerySheetRows.LIGHT_ENDS_MARGIN:\r\n this.simulationVariableMapper.map(value, unitOperation.lightEndsMargin);\r\n break;\r\n\r\n case RefinerySheetRows.NAPHTHA_MARGIN:\r\n this.simulationVariableMapper.map(value, unitOperation.naphthaMargin);\r\n break;\r\n\r\n case RefinerySheetRows.DISTILLATE_MARGIN:\r\n this.simulationVariableMapper.map(value, unitOperation.distillateMargin);\r\n break;\r\n\r\n case RefinerySheetRows.GAS_OIL_MARGIN:\r\n this.simulationVariableMapper.map(value, unitOperation.gasOilMargin);\r\n break;\r\n\r\n case RefinerySheetRows.VACUUM_RESIDUE_MARGIN:\r\n this.simulationVariableMapper.map(value, unitOperation.vacuumResidueMargin);\r\n break;\r\n\r\n case RefinerySheetRows.CAPACITY:\r\n this.simulationVariableMapper.map(value, unitOperation.capacity);\r\n break;\r\n\r\n case RefinerySheetRows.CAPEX_AMORTIZED:\r\n this.simulationVariableMapper.map(value, unitOperation.capexAmortized);\r\n break;\r\n\r\n case RefinerySheetRows.OPEX_FIXED:\r\n this.simulationVariableMapper.map(value, unitOperation.opexFixed);\r\n break;\r\n\r\n case RefinerySheetRows.OPEX_VAR:\r\n this.simulationVariableMapper.map(value, unitOperation.opexVar);\r\n break;\r\n\r\n case RefinerySheetRows.OPEX_GAS_DIESEL:\r\n this.simulationVariableMapper.map(value, unitOperation.opexGasDiesel);\r\n break;\r\n\r\n case RefinerySheetRows.OPEX_POWER:\r\n this.simulationVariableMapper.map(value, unitOperation.opexPower);\r\n break;\r\n }\r\n }\r\n }\r\n}\r\n","import * as wjcSheet from '@grapecity/wijmo.grid.sheet';\r\n\r\nimport { UnitOperationFlexSheetEventHandler } from './unit-operation-flex-sheet-event-handler';\r\nimport { Refinery } from '../../../_models/_unit-operations/refinery';\r\nimport { enumValuesToArray } from '../../../_utils/enum-values-to-array';\r\nimport { NumberToSimulationVariableMapper } from '../mappers/number-to-simulation-variable-mapper';\r\nimport { RefineryCellConfig, RefinerySheetRows } from '../cell-config/refinery-cell-config';\r\nimport { FlexSheetValueConverter } from '../flex-sheet-value-converter';\r\nimport { RefineryFlexSheetMapper } from '../mappers/refinery-flex-sheet-mapper';\r\n\r\nexport class RefineryFlexSheetEventHandler implements UnitOperationFlexSheetEventHandler {\r\n constructor(private valueConverter: FlexSheetValueConverter) {}\r\n\r\n handle(unitOperation: Refinery, spreadsheet: wjcSheet.FlexSheet, flexSheetEvent, rawValue) {\r\n const { row } = flexSheetEvent;\r\n\r\n if (enumValuesToArray(RefinerySheetRows).indexOf(row) === -1) {\r\n flexSheetEvent.cancel = true;\r\n return;\r\n }\r\n\r\n const cellConfig = RefineryCellConfig.find(rowConfig => rowConfig.row === row);\r\n const convertedValue = this.valueConverter.convert(spreadsheet, rawValue, cellConfig);\r\n\r\n const simulationVariableMapper = new NumberToSimulationVariableMapper();\r\n const mapper = new RefineryFlexSheetMapper(simulationVariableMapper);\r\n\r\n mapper.map(unitOperation, row, convertedValue);\r\n }\r\n}\r\n","import * as wjcCore from '@grapecity/wijmo';\r\nimport { FlexSheetCellConfig } from './flex-sheet-cell-config';\r\n\r\nexport enum ThirdPartyRefinerySheetRows {\r\n NAME = 0,\r\n LIGHT_ENDS_MARGIN = 3,\r\n NAPHTHA_MARGIN = 4,\r\n DISTILLATE_MARGIN = 5,\r\n GAS_OIL_MARGIN = 6,\r\n VACUUM_RESIDUE_MARGIN = 7,\r\n CAPACITY = 8,\r\n}\r\n\r\nexport const ThirdPartyRefineryCellConfig: FlexSheetCellConfig[] = [\r\n {\r\n row: ThirdPartyRefinerySheetRows.NAME,\r\n dataType: wjcCore.DataType.String,\r\n format: '',\r\n },\r\n {\r\n row: ThirdPartyRefinerySheetRows.LIGHT_ENDS_MARGIN,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: ThirdPartyRefinerySheetRows.NAPHTHA_MARGIN,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: ThirdPartyRefinerySheetRows.DISTILLATE_MARGIN,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: ThirdPartyRefinerySheetRows.GAS_OIL_MARGIN,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: ThirdPartyRefinerySheetRows.VACUUM_RESIDUE_MARGIN,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: ThirdPartyRefinerySheetRows.CAPACITY,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n];\r\n","import { FlexSheetMapper } from './flex-sheet-mapper';\r\nimport { Mapper } from '../../../_models/_interfaces/mapper';\r\nimport { SimulationVariable } from '../../../_models';\r\nimport { NumberToSimulationVariableMapper } from './number-to-simulation-variable-mapper';\r\nimport { ThirdPartyRefinery } from '../../../_models/_unit-operations/third-party-refinery';\r\nimport { ThirdPartyRefinerySheetRows } from '../cell-config/third-party-refinery-cell-config';\r\n\r\nexport class ThirdPartyRefineryFlexSheetMapper implements FlexSheetMapper {\r\n simulationVariableMapper: Mapper;\r\n\r\n constructor(simulationVariableMapper: NumberToSimulationVariableMapper) {\r\n this.simulationVariableMapper = simulationVariableMapper;\r\n }\r\n\r\n map(unitOperation: ThirdPartyRefinery, row: number, value: string | number) {\r\n if (row === ThirdPartyRefinerySheetRows.NAME && typeof value === 'string') {\r\n unitOperation.name = value;\r\n }\r\n\r\n if (typeof value === 'number') {\r\n switch (row) {\r\n case ThirdPartyRefinerySheetRows.LIGHT_ENDS_MARGIN:\r\n this.simulationVariableMapper.map(value, unitOperation.lightEndsMargin);\r\n break;\r\n\r\n case ThirdPartyRefinerySheetRows.NAPHTHA_MARGIN:\r\n this.simulationVariableMapper.map(value, unitOperation.naphthaMargin);\r\n break;\r\n\r\n case ThirdPartyRefinerySheetRows.DISTILLATE_MARGIN:\r\n this.simulationVariableMapper.map(value, unitOperation.distillateMargin);\r\n break;\r\n\r\n case ThirdPartyRefinerySheetRows.GAS_OIL_MARGIN:\r\n this.simulationVariableMapper.map(value, unitOperation.gasOilMargin);\r\n break;\r\n\r\n case ThirdPartyRefinerySheetRows.VACUUM_RESIDUE_MARGIN:\r\n this.simulationVariableMapper.map(value, unitOperation.vacuumResidueMargin);\r\n break;\r\n\r\n case ThirdPartyRefinerySheetRows.CAPACITY:\r\n this.simulationVariableMapper.map(value, unitOperation.capacity);\r\n break;\r\n }\r\n }\r\n }\r\n}\r\n","import * as wjcSheet from '@grapecity/wijmo.grid.sheet';\r\n\r\nimport { UnitOperationFlexSheetEventHandler } from './unit-operation-flex-sheet-event-handler';\r\nimport { enumValuesToArray } from '../../../_utils/enum-values-to-array';\r\nimport { NumberToSimulationVariableMapper } from '../mappers/number-to-simulation-variable-mapper';\r\nimport { FlexSheetValueConverter } from '../flex-sheet-value-converter';\r\nimport { ThirdPartyRefinery } from '../../../_models/_unit-operations/third-party-refinery';\r\n\r\nimport {\r\n ThirdPartyRefineryCellConfig,\r\n ThirdPartyRefinerySheetRows,\r\n} from '../cell-config/third-party-refinery-cell-config';\r\nimport { ThirdPartyRefineryFlexSheetMapper } from '../mappers/third-party-refinery-flex-sheet-mapper';\r\n\r\nexport class ThirdPartyRefineryFlexSheetEventHandler implements UnitOperationFlexSheetEventHandler {\r\n constructor(private valueConverter: FlexSheetValueConverter) {}\r\n\r\n handle(unitOperation: ThirdPartyRefinery, spreadsheet: wjcSheet.FlexSheet, flexSheetEvent, rawValue) {\r\n const { row } = flexSheetEvent;\r\n\r\n if (enumValuesToArray(ThirdPartyRefinerySheetRows).indexOf(row) === -1) {\r\n flexSheetEvent.cancel = true;\r\n return;\r\n }\r\n\r\n const cellConfig = ThirdPartyRefineryCellConfig.find(rowConfig => rowConfig.row === row);\r\n const convertedValue = this.valueConverter.convert(spreadsheet, rawValue, cellConfig);\r\n\r\n const simulationVariableMapper = new NumberToSimulationVariableMapper();\r\n const mapper = new ThirdPartyRefineryFlexSheetMapper(simulationVariableMapper);\r\n\r\n mapper.map(unitOperation, row, convertedValue);\r\n }\r\n}\r\n","import * as wjcCore from '@grapecity/wijmo';\r\nimport { FlexSheetCellConfig } from './flex-sheet-cell-config';\r\n\r\nexport enum AssaySheetRows {\r\n NAME = 1,\r\n TYPE = 2,\r\n COMP_LIGHT_ENDS = 5,\r\n COMP_LIGHT_NAPHTHA = 6,\r\n COMP_HEAVY_NAPHTHA = 7,\r\n COMP_DISTILLATE = 8,\r\n COMP_LGO = 9,\r\n COMP_HGO = 10,\r\n COMP_VGO = 11,\r\n COMP_HVGO = 12,\r\n COMP_RESID = 13,\r\n LE_SULFUR = 16,\r\n LE_ANILINE_POINT = 17,\r\n LE_MASS_DENSITY = 18,\r\n LE_NITROGEN = 19,\r\n LE_CCR = 20,\r\n LN_SULFUR = 23,\r\n LN_ANILINE_POINT = 24,\r\n LN_MASS_DENSITY = 25,\r\n LN_NITROGEN = 26,\r\n LN_CCR = 27,\r\n HN_SULFUR = 30,\r\n HN_ANILINE_POINT = 31,\r\n HN_MASS_DENSITY = 32,\r\n HN_NITROGEN = 33,\r\n HN_CCR = 34,\r\n DIS_SULFUR = 37,\r\n DIS_ANILINE_POINT = 38,\r\n DIS_MASS_DENSITY = 39,\r\n DIS_NITROGEN = 40,\r\n DIS_CCR = 41,\r\n LGO_SULFUR = 44,\r\n LGO_ANILINE_POINT = 45,\r\n LGO_MASS_DENSITY = 46,\r\n LGO_NITROGEN = 47,\r\n LGO_CCR = 48,\r\n HGO_SULFUR = 51,\r\n HGO_ANILINE_POINT = 52,\r\n HGO_MASS_DENSITY = 53,\r\n HGO_NITROGEN = 54,\r\n HGO_CCR = 55,\r\n VGO_SULFUR = 58,\r\n VGO_ANILINE_POINT = 59,\r\n VGO_MASS_DENSITY = 60,\r\n VGO_NITROGEN = 61,\r\n VGO_CCR = 62,\r\n HVGO_SULFUR = 65,\r\n HVGO_ANILINE_POINT = 66,\r\n HVGO_MASS_DENSITY = 67,\r\n HVGO_NITROGEN = 68,\r\n HVGO_CCR = 69,\r\n RES_SULFUR = 72,\r\n RES_ANILINE_POINT = 73,\r\n RES_MASS_DENSITY = 74,\r\n RES_NITROGEN = 75,\r\n RES_CCR = 76,\r\n}\r\n\r\nexport const AssayCellConfig: FlexSheetCellConfig[] = [\r\n {\r\n row: AssaySheetRows.NAME,\r\n dataType: wjcCore.DataType.String,\r\n format: '',\r\n },\r\n {\r\n row: AssaySheetRows.TYPE,\r\n dataType: wjcCore.DataType.String,\r\n format: '',\r\n },\r\n {\r\n row: AssaySheetRows.COMP_LIGHT_ENDS,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: AssaySheetRows.COMP_LIGHT_NAPHTHA,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: AssaySheetRows.COMP_HEAVY_NAPHTHA,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: AssaySheetRows.COMP_DISTILLATE,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: AssaySheetRows.COMP_LGO,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: AssaySheetRows.COMP_HGO,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: AssaySheetRows.COMP_VGO,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: AssaySheetRows.COMP_HVGO,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: AssaySheetRows.COMP_RESID,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: AssaySheetRows.LE_SULFUR,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: AssaySheetRows.LE_ANILINE_POINT,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: AssaySheetRows.LE_MASS_DENSITY,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: AssaySheetRows.LE_NITROGEN,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: AssaySheetRows.LE_CCR,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: AssaySheetRows.LN_SULFUR,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: AssaySheetRows.LN_ANILINE_POINT,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: AssaySheetRows.LN_MASS_DENSITY,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: AssaySheetRows.LN_NITROGEN,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: AssaySheetRows.LN_CCR,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: AssaySheetRows.HN_SULFUR,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: AssaySheetRows.HN_ANILINE_POINT,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: AssaySheetRows.HN_MASS_DENSITY,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: AssaySheetRows.HN_NITROGEN,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: AssaySheetRows.HN_CCR,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: AssaySheetRows.DIS_SULFUR,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: AssaySheetRows.DIS_ANILINE_POINT,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: AssaySheetRows.DIS_MASS_DENSITY,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: AssaySheetRows.DIS_NITROGEN,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: AssaySheetRows.DIS_CCR,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: AssaySheetRows.LGO_SULFUR,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: AssaySheetRows.LGO_ANILINE_POINT,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: AssaySheetRows.LGO_MASS_DENSITY,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: AssaySheetRows.LGO_NITROGEN,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: AssaySheetRows.LGO_CCR,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: AssaySheetRows.HGO_SULFUR,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: AssaySheetRows.HGO_ANILINE_POINT,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: AssaySheetRows.HGO_MASS_DENSITY,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: AssaySheetRows.HGO_NITROGEN,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: AssaySheetRows.HGO_CCR,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: AssaySheetRows.VGO_SULFUR,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: AssaySheetRows.VGO_ANILINE_POINT,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: AssaySheetRows.VGO_MASS_DENSITY,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: AssaySheetRows.VGO_NITROGEN,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: AssaySheetRows.VGO_CCR,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: AssaySheetRows.HVGO_SULFUR,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: AssaySheetRows.HVGO_ANILINE_POINT,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: AssaySheetRows.HVGO_MASS_DENSITY,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: AssaySheetRows.HVGO_NITROGEN,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: AssaySheetRows.HVGO_CCR,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: AssaySheetRows.RES_SULFUR,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: AssaySheetRows.RES_ANILINE_POINT,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: AssaySheetRows.RES_MASS_DENSITY,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: AssaySheetRows.RES_NITROGEN,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: AssaySheetRows.RES_CCR,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n];\r\n","import { FlexSheetMapper } from './flex-sheet-mapper';\r\nimport { Mapper } from '../../../_models/_interfaces/mapper';\r\nimport { SimulationVariable } from '../../../_models';\r\nimport { NumberToSimulationVariableMapper } from './number-to-simulation-variable-mapper';\r\nimport { SuncorFluidAnalysis } from '../../../_models/_fluid/suncor-fluid-analysis';\r\nimport { AssaySheetRows } from '../cell-config/assay-cell-config';\r\n\r\nexport class AssayFlexsheetMapper implements FlexSheetMapper {\r\n simulationVariableMapper: Mapper;\r\n\r\n constructor(simulationVariableMapper: NumberToSimulationVariableMapper) {\r\n this.simulationVariableMapper = simulationVariableMapper;\r\n }\r\n\r\n map(assay: SuncorFluidAnalysis, row: number, value: string | number) {\r\n if (row === AssaySheetRows.NAME && typeof value === 'string') {\r\n assay.assayName = value;\r\n }\r\n if (typeof value === 'number') {\r\n switch (row) {\r\n case AssaySheetRows.COMP_LIGHT_ENDS:\r\n this.simulationVariableMapper.map(value, assay.composition[0]);\r\n break;\r\n\r\n case AssaySheetRows.COMP_LIGHT_NAPHTHA:\r\n this.simulationVariableMapper.map(value, assay.composition[1]);\r\n break;\r\n\r\n case AssaySheetRows.COMP_HEAVY_NAPHTHA:\r\n this.simulationVariableMapper.map(value, assay.composition[2]);\r\n break;\r\n\r\n case AssaySheetRows.COMP_DISTILLATE:\r\n this.simulationVariableMapper.map(value, assay.composition[3]);\r\n break;\r\n\r\n case AssaySheetRows.COMP_LGO:\r\n this.simulationVariableMapper.map(value, assay.composition[4]);\r\n break;\r\n\r\n case AssaySheetRows.COMP_HGO:\r\n this.simulationVariableMapper.map(value, assay.composition[5]);\r\n break;\r\n\r\n case AssaySheetRows.COMP_VGO:\r\n this.simulationVariableMapper.map(value, assay.composition[6]);\r\n break;\r\n\r\n case AssaySheetRows.COMP_HVGO:\r\n this.simulationVariableMapper.map(value, assay.composition[7]);\r\n break;\r\n\r\n case AssaySheetRows.COMP_RESID:\r\n this.simulationVariableMapper.map(value, assay.composition[8]);\r\n break;\r\n // Light ends\r\n case AssaySheetRows.LE_SULFUR:\r\n this.simulationVariableMapper.map(value, assay.lightEndsCut.sulfur);\r\n break;\r\n\r\n case AssaySheetRows.LE_ANILINE_POINT:\r\n this.simulationVariableMapper.map(value, assay.lightEndsCut.anilinePoint);\r\n break;\r\n\r\n case AssaySheetRows.LE_MASS_DENSITY:\r\n this.simulationVariableMapper.map(value, assay.lightEndsCut.massDensity);\r\n break;\r\n\r\n case AssaySheetRows.LE_NITROGEN:\r\n this.simulationVariableMapper.map(value, assay.lightEndsCut.nitrogen);\r\n break;\r\n\r\n case AssaySheetRows.LE_CCR:\r\n this.simulationVariableMapper.map(value, assay.lightEndsCut.ccr);\r\n break;\r\n\r\n // Light naphtha\r\n case AssaySheetRows.LN_SULFUR:\r\n this.simulationVariableMapper.map(value, assay.lightNaphthaCut.sulfur);\r\n break;\r\n\r\n case AssaySheetRows.LN_ANILINE_POINT:\r\n this.simulationVariableMapper.map(value, assay.lightNaphthaCut.anilinePoint);\r\n break;\r\n\r\n case AssaySheetRows.LN_MASS_DENSITY:\r\n this.simulationVariableMapper.map(value, assay.lightNaphthaCut.massDensity);\r\n break;\r\n\r\n case AssaySheetRows.LN_NITROGEN:\r\n this.simulationVariableMapper.map(value, assay.lightNaphthaCut.nitrogen);\r\n break;\r\n\r\n case AssaySheetRows.LN_CCR:\r\n this.simulationVariableMapper.map(value, assay.lightNaphthaCut.ccr);\r\n break;\r\n\r\n // Heavy Naphtha\r\n case AssaySheetRows.HN_SULFUR:\r\n this.simulationVariableMapper.map(value, assay.heavyNaphthaCut.sulfur);\r\n break;\r\n\r\n case AssaySheetRows.HN_ANILINE_POINT:\r\n this.simulationVariableMapper.map(value, assay.heavyNaphthaCut.anilinePoint);\r\n break;\r\n\r\n case AssaySheetRows.HN_MASS_DENSITY:\r\n this.simulationVariableMapper.map(value, assay.heavyNaphthaCut.massDensity);\r\n break;\r\n\r\n case AssaySheetRows.HN_NITROGEN:\r\n this.simulationVariableMapper.map(value, assay.heavyNaphthaCut.nitrogen);\r\n break;\r\n\r\n case AssaySheetRows.HN_CCR:\r\n this.simulationVariableMapper.map(value, assay.heavyNaphthaCut.ccr);\r\n break;\r\n\r\n // Distillate\r\n case AssaySheetRows.DIS_SULFUR:\r\n this.simulationVariableMapper.map(value, assay.distillateCut.sulfur);\r\n break;\r\n\r\n case AssaySheetRows.DIS_ANILINE_POINT:\r\n this.simulationVariableMapper.map(value, assay.distillateCut.anilinePoint);\r\n break;\r\n\r\n case AssaySheetRows.DIS_MASS_DENSITY:\r\n this.simulationVariableMapper.map(value, assay.distillateCut.massDensity);\r\n break;\r\n\r\n case AssaySheetRows.DIS_NITROGEN:\r\n this.simulationVariableMapper.map(value, assay.distillateCut.nitrogen);\r\n break;\r\n\r\n case AssaySheetRows.DIS_CCR:\r\n this.simulationVariableMapper.map(value, assay.distillateCut.ccr);\r\n break;\r\n\r\n // LGO\r\n case AssaySheetRows.LGO_SULFUR:\r\n this.simulationVariableMapper.map(value, assay.LGOCut.sulfur);\r\n break;\r\n\r\n case AssaySheetRows.LGO_ANILINE_POINT:\r\n this.simulationVariableMapper.map(value, assay.LGOCut.anilinePoint);\r\n break;\r\n\r\n case AssaySheetRows.LGO_MASS_DENSITY:\r\n this.simulationVariableMapper.map(value, assay.LGOCut.massDensity);\r\n break;\r\n\r\n case AssaySheetRows.LGO_NITROGEN:\r\n this.simulationVariableMapper.map(value, assay.LGOCut.nitrogen);\r\n break;\r\n\r\n case AssaySheetRows.LGO_CCR:\r\n this.simulationVariableMapper.map(value, assay.LGOCut.ccr);\r\n break;\r\n\r\n // HGO\r\n case AssaySheetRows.HGO_SULFUR:\r\n this.simulationVariableMapper.map(value, assay.HGOCut.sulfur);\r\n break;\r\n\r\n case AssaySheetRows.HGO_ANILINE_POINT:\r\n this.simulationVariableMapper.map(value, assay.HGOCut.anilinePoint);\r\n break;\r\n\r\n case AssaySheetRows.HGO_MASS_DENSITY:\r\n this.simulationVariableMapper.map(value, assay.HGOCut.massDensity);\r\n break;\r\n\r\n case AssaySheetRows.HGO_NITROGEN:\r\n this.simulationVariableMapper.map(value, assay.HGOCut.nitrogen);\r\n break;\r\n\r\n case AssaySheetRows.HGO_CCR:\r\n this.simulationVariableMapper.map(value, assay.HGOCut.ccr);\r\n break;\r\n\r\n // VGO\r\n case AssaySheetRows.VGO_SULFUR:\r\n this.simulationVariableMapper.map(value, assay.VGOCut.sulfur);\r\n break;\r\n\r\n case AssaySheetRows.VGO_ANILINE_POINT:\r\n this.simulationVariableMapper.map(value, assay.VGOCut.anilinePoint);\r\n break;\r\n\r\n case AssaySheetRows.VGO_MASS_DENSITY:\r\n this.simulationVariableMapper.map(value, assay.VGOCut.massDensity);\r\n break;\r\n\r\n case AssaySheetRows.VGO_NITROGEN:\r\n this.simulationVariableMapper.map(value, assay.VGOCut.nitrogen);\r\n break;\r\n\r\n case AssaySheetRows.VGO_CCR:\r\n this.simulationVariableMapper.map(value, assay.VGOCut.ccr);\r\n break;\r\n\r\n // HVGO\r\n case AssaySheetRows.HVGO_SULFUR:\r\n this.simulationVariableMapper.map(value, assay.HVGOCut.sulfur);\r\n break;\r\n\r\n case AssaySheetRows.HVGO_ANILINE_POINT:\r\n this.simulationVariableMapper.map(value, assay.HVGOCut.anilinePoint);\r\n break;\r\n\r\n case AssaySheetRows.HVGO_MASS_DENSITY:\r\n this.simulationVariableMapper.map(value, assay.HVGOCut.massDensity);\r\n break;\r\n\r\n case AssaySheetRows.HVGO_NITROGEN:\r\n this.simulationVariableMapper.map(value, assay.HVGOCut.nitrogen);\r\n break;\r\n\r\n case AssaySheetRows.HVGO_CCR:\r\n this.simulationVariableMapper.map(value, assay.HVGOCut.ccr);\r\n break;\r\n\r\n // Resid\r\n case AssaySheetRows.RES_SULFUR:\r\n this.simulationVariableMapper.map(value, assay.residCut.sulfur);\r\n break;\r\n\r\n case AssaySheetRows.RES_ANILINE_POINT:\r\n this.simulationVariableMapper.map(value, assay.residCut.anilinePoint);\r\n break;\r\n\r\n case AssaySheetRows.RES_MASS_DENSITY:\r\n this.simulationVariableMapper.map(value, assay.residCut.massDensity);\r\n break;\r\n\r\n case AssaySheetRows.RES_NITROGEN:\r\n this.simulationVariableMapper.map(value, assay.residCut.nitrogen);\r\n break;\r\n\r\n case AssaySheetRows.RES_CCR:\r\n this.simulationVariableMapper.map(value, assay.residCut.ccr);\r\n break;\r\n }\r\n }\r\n }\r\n}\r\n","import * as wjcSheet from '@grapecity/wijmo.grid.sheet';\r\nimport { FlexSheetValueConverter } from '../flex-sheet-value-converter';\r\nimport { SuncorFluidAnalysis } from '../../../_models/_fluid/suncor-fluid-analysis';\r\nimport { enumValuesToArray } from '../../../_utils/enum-values-to-array';\r\nimport { AssayCellConfig, AssaySheetRows } from '../cell-config/assay-cell-config';\r\nimport { NumberToSimulationVariableMapper } from '../mappers/number-to-simulation-variable-mapper';\r\nimport { AssayFlexsheetMapper } from '../mappers/assay-flexsheet-mapper';\r\n\r\nexport class AssayFlexsheetEventHandler {\r\n constructor(private valueConverter: FlexSheetValueConverter) {}\r\n\r\n handle(assay: SuncorFluidAnalysis, spreadsheet: wjcSheet.FlexSheet, flexsheetEvent, rawValue) {\r\n const { row } = flexsheetEvent;\r\n\r\n if (enumValuesToArray(AssaySheetRows).indexOf(row) === -1) {\r\n flexsheetEvent.cancel = true;\r\n return;\r\n }\r\n\r\n const cellConfig = AssayCellConfig.find(rowConfig => rowConfig.row === row);\r\n const convertedValue = this.valueConverter.convert(spreadsheet, rawValue, cellConfig);\r\n\r\n const simulationVariableMapper = new NumberToSimulationVariableMapper();\r\n const mapper = new AssayFlexsheetMapper(simulationVariableMapper);\r\n\r\n mapper.map(assay, row, convertedValue);\r\n }\r\n}\r\n","import * as wjcCore from '@grapecity/wijmo';\r\nimport { FlexSheetCellConfig, VerticalFlexSheetCellConfig } from './flex-sheet-cell-config';\r\n\r\nexport enum UtilitiesSheetColumns {\r\n NAME,\r\n HYDROGEN_USE_RATE,\r\n HYDROGEN_USE,\r\n}\r\n\r\nexport const UtilitiesCellConfig: FlexSheetCellConfig[] = [\r\n {\r\n row: UtilitiesSheetColumns.NAME,\r\n dataType: wjcCore.DataType.String,\r\n format: '',\r\n },\r\n {\r\n row: UtilitiesSheetColumns.HYDROGEN_USE_RATE,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: UtilitiesSheetColumns.HYDROGEN_USE,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n];\r\n","import { FlexSheetMapper } from './flex-sheet-mapper';\r\nimport { SimulationVariable } from '../../../_models';\r\nimport { Mapper } from '../../../_models/_interfaces/mapper';\r\nimport { NumberToSimulationVariableMapper } from './number-to-simulation-variable-mapper';\r\nimport { Hydrotreater } from '../../../_models/_unit-operations/hydrotreater';\r\nimport { Hydrocracker } from '../../../_models/_unit-operations/hydrocracker';\r\nimport { UtilitiesSheetColumns } from '../cell-config/utilities-cell-config.enum';\r\n\r\nexport class UtilitiesFlexSheetMapper implements FlexSheetMapper {\r\n simulationVariableMapper: Mapper;\r\n\r\n constructor(simulationVariableMapper: NumberToSimulationVariableMapper) {\r\n this.simulationVariableMapper = simulationVariableMapper;\r\n }\r\n\r\n map(unitOperation: Hydrotreater | Hydrocracker, col: number, value: string | number) {\r\n if (col === UtilitiesSheetColumns.NAME && typeof value === 'string') {\r\n unitOperation.name = value;\r\n }\r\n\r\n if (typeof value === 'number') {\r\n switch (col) {\r\n case UtilitiesSheetColumns.HYDROGEN_USE:\r\n break;\r\n case UtilitiesSheetColumns.HYDROGEN_USE_RATE:\r\n this.updateHydrogenUseRateVariables(unitOperation, value);\r\n break;\r\n }\r\n }\r\n }\r\n\r\n private updateHydrogenUseRateVariables(unitOperation: Hydrotreater | Hydrocracker, value) {\r\n const simvar = new SimulationVariable({ value, quantity: 'GasStdVolumePerVolume', unit: 'scf/bbl' }, null, null);\r\n if (unitOperation instanceof Hydrotreater) {\r\n unitOperation.hydrogenUseRateVariables.forEach(rv => {\r\n rv.value = simvar.convertToInternalUnit();\r\n });\r\n } else {\r\n unitOperation.hydrogenUseRate.value = simvar.convertToInternalUnit();\r\n }\r\n }\r\n}\r\n","import * as wjcSheet from '@grapecity/wijmo.grid.sheet';\r\nimport { FlexSheetValueConverter } from '../flex-sheet-value-converter';\r\nimport { Hydrotreater } from '../../../_models/_unit-operations/hydrotreater';\r\nimport { Hydrocracker } from '../../../_models/_unit-operations/hydrocracker';\r\nimport { enumValuesToArray } from '../../../_utils/enum-values-to-array';\r\nimport { UtilitiesCellConfig, UtilitiesSheetColumns } from '../cell-config/utilities-cell-config.enum';\r\nimport { UtilitiesFlexSheetMapper } from '../mappers/utilities-flex-sheet-mapper';\r\nimport { NumberToSimulationVariableMapper } from '../mappers/number-to-simulation-variable-mapper';\r\n\r\nexport class UtilitiesFlexSheetEventHandler {\r\n constructor(private valueConverter: FlexSheetValueConverter) {}\r\n\r\n handle(unitOperation: Hydrotreater | Hydrocracker, spreadsheet: wjcSheet.FlexSheet, flexSheetEvent, rawValue) {\r\n const column = flexSheetEvent.col;\r\n if (\r\n enumValuesToArray(UtilitiesSheetColumns).indexOf(column) === -1 ||\r\n column === UtilitiesSheetColumns.HYDROGEN_USE\r\n ) {\r\n flexSheetEvent.cancel = true;\r\n return;\r\n }\r\n const cellConfig = UtilitiesCellConfig.find(rowConfig => rowConfig.row === column);\r\n const convertedValue = this.valueConverter.convert(spreadsheet, rawValue, cellConfig);\r\n const simulationVariableMapper = new NumberToSimulationVariableMapper();\r\n const mapper = new UtilitiesFlexSheetMapper(simulationVariableMapper);\r\n mapper.map(unitOperation, column, convertedValue);\r\n }\r\n}\r\n","import * as wjcCore from '@grapecity/wijmo';\r\nimport { FlexSheetCellConfig } from './flex-sheet-cell-config';\r\nimport { UtilitiesSheetColumns } from './utilities-cell-config.enum';\r\n\r\nexport enum H2sSheetColumns {\r\n NAME,\r\n H2S_PRODUCTION_RATE,\r\n H2S_PRODUCTION,\r\n}\r\n\r\nexport const h2sCellConfig: FlexSheetCellConfig[] = [\r\n {\r\n row: H2sSheetColumns.NAME,\r\n dataType: wjcCore.DataType.String,\r\n format: '',\r\n },\r\n {\r\n row: H2sSheetColumns.H2S_PRODUCTION,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: H2sSheetColumns.H2S_PRODUCTION_RATE,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n];\r\n","import { FlexSheetMapper } from './flex-sheet-mapper';\r\nimport { Mapper } from '../../../_models/_interfaces/mapper';\r\nimport { SimulationVariable } from '../../../_models';\r\nimport { NumberToSimulationVariableMapper } from './number-to-simulation-variable-mapper';\r\nimport { Hydrotreater } from '../../../_models/_unit-operations/hydrotreater';\r\nimport { Hydrocracker } from '../../../_models/_unit-operations/hydrocracker';\r\nimport { VAC } from '../../../_models/_unit-operations/vac';\r\nimport { DCU } from '../../../_models/_unit-operations/dcu';\r\nimport { H2sSheetColumns } from '../cell-config/h2s-production-cell-config';\r\n\r\nexport class H2sFlexSheetMapper implements FlexSheetMapper {\r\n simulationVariableMapper: Mapper;\r\n\r\n constructor(simulationVariableMapper: NumberToSimulationVariableMapper) {\r\n this.simulationVariableMapper = simulationVariableMapper;\r\n }\r\n\r\n map(unitOperation: Hydrotreater | Hydrocracker | VAC | DCU, col: number, value: string | number) {\r\n if (col === H2sSheetColumns.NAME && typeof value === 'string') {\r\n unitOperation.name = value;\r\n }\r\n\r\n if (typeof value === 'number') {\r\n switch (col) {\r\n case H2sSheetColumns.H2S_PRODUCTION:\r\n break;\r\n case H2sSheetColumns.H2S_PRODUCTION_RATE:\r\n this.simulationVariableMapper.map(value, unitOperation.h2sProductionRate);\r\n break;\r\n }\r\n }\r\n }\r\n}\r\n","import * as wjcSheet from '@grapecity/wijmo.grid.sheet';\r\nimport { FlexSheetValueConverter } from '../flex-sheet-value-converter';\r\nimport { SuncorUnitOperation } from '../../../_models/_unit-operations/suncor-unit-operation';\r\nimport { enumValuesToArray } from '../../../_utils/enum-values-to-array';\r\nimport { h2sCellConfig, H2sSheetColumns } from '../cell-config/h2s-production-cell-config';\r\nimport { NumberToSimulationVariableMapper } from '../mappers/number-to-simulation-variable-mapper';\r\nimport { H2sFlexSheetMapper } from '../mappers/h2s-flex-sheet-mapper';\r\nimport { Hydrotreater } from '../../../_models/_unit-operations/hydrotreater';\r\nimport { Hydrocracker } from '../../../_models/_unit-operations/hydrocracker';\r\nimport { VAC } from '../../../_models/_unit-operations/vac';\r\nimport { DCU } from '../../../_models/_unit-operations/dcu';\r\n\r\nexport class H2sProductionSheetEventHandler {\r\n constructor(private valueConverter: FlexSheetValueConverter) {}\r\n\r\n handle(\r\n unitOperation: Hydrotreater | Hydrocracker | VAC | DCU,\r\n spreadsheet: wjcSheet.FlexSheet,\r\n flexsheetEvent,\r\n rawValue\r\n ) {\r\n const column = flexsheetEvent.col;\r\n if (enumValuesToArray(H2sSheetColumns).indexOf(column) === -1 || column === H2sSheetColumns.H2S_PRODUCTION) {\r\n flexsheetEvent.cancel = true;\r\n return;\r\n }\r\n const cellConfig = h2sCellConfig.find(rowConfig => rowConfig.row === column);\r\n const convertedValue = this.valueConverter.convert(spreadsheet, rawValue, cellConfig);\r\n const simulationVariableMapper = new NumberToSimulationVariableMapper();\r\n const mapper = new H2sFlexSheetMapper(simulationVariableMapper);\r\n mapper.map(unitOperation, column, convertedValue);\r\n }\r\n}\r\n","import * as wjcSheet from '@grapecity/wijmo.grid.sheet';\r\nimport { FlexSheetValueConverter } from '../flex-sheet-value-converter';\r\nimport { DCU } from '../../../_models/_unit-operations/dcu';\r\nimport { DRU } from '../../../_models/_unit-operations/dru';\r\nimport { VAC } from '../../../_models/_unit-operations/vac';\r\nimport { Hydrocracker } from '../../../_models/_unit-operations/hydrocracker';\r\nimport { Hydrotreater } from '../../../_models/_unit-operations/hydrotreater';\r\n\r\nexport class SteamSheetEventHandler {\r\n constructor(private valueConverter: FlexSheetValueConverter) {}\r\n handle(\r\n unitOperation: DCU | DRU | VAC | Hydrocracker | Hydrotreater,\r\n spreadsheet: wjcSheet.FlexSheet,\r\n flexsheetEvent,\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n rawValue\r\n ) {\r\n flexsheetEvent.cancel = true;\r\n return false;\r\n }\r\n}\r\n","import * as wjcCore from '@grapecity/wijmo';\r\nimport { FlexSheetCellConfig } from './flex-sheet-cell-config';\r\n\r\nexport enum AssayGasesSheetRows {\r\n NAME = 1,\r\n TYPE = 2,\r\n COMP_CO = 5,\r\n COMP_CO2 = 6,\r\n COMP_H2 = 7,\r\n COMP_N2 = 8,\r\n COMP_H2S = 9,\r\n COMP_SO2 = 10,\r\n COMP_METHANE = 11,\r\n COMP_ETHANE = 12,\r\n COMP_PROPANE = 13,\r\n COMP_IC4 = 14,\r\n COMP_NC4 = 15,\r\n COMP_IC5 = 16,\r\n COMP_NC5 = 17,\r\n COMP_C6 = 18,\r\n}\r\n\r\nexport const AssayGasesCellConfig: FlexSheetCellConfig[] = [\r\n {\r\n row: AssayGasesSheetRows.NAME,\r\n dataType: wjcCore.DataType.String,\r\n format: '',\r\n },\r\n {\r\n row: AssayGasesSheetRows.TYPE,\r\n dataType: wjcCore.DataType.String,\r\n format: '',\r\n },\r\n {\r\n row: AssayGasesSheetRows.COMP_CO,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: AssayGasesSheetRows.COMP_CO2,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: AssayGasesSheetRows.COMP_H2,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: AssayGasesSheetRows.COMP_N2,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: AssayGasesSheetRows.COMP_H2S,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: AssayGasesSheetRows.COMP_SO2,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: AssayGasesSheetRows.COMP_METHANE,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: AssayGasesSheetRows.COMP_ETHANE,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: AssayGasesSheetRows.COMP_PROPANE,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: AssayGasesSheetRows.COMP_IC4,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: AssayGasesSheetRows.COMP_NC4,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: AssayGasesSheetRows.COMP_IC5,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: AssayGasesSheetRows.COMP_NC5,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n {\r\n row: AssayGasesSheetRows.COMP_C6,\r\n dataType: wjcCore.DataType.Number,\r\n format: '',\r\n },\r\n];\r\n","import { FlexSheetMapper } from './flex-sheet-mapper';\r\nimport { SimulationVariable } from '../../../_models';\r\nimport { NumberToSimulationVariableMapper } from './number-to-simulation-variable-mapper';\r\nimport { Mapper } from '../../../_models/_interfaces/mapper';\r\nimport { GasFluidAnalysis } from '../../../_models/_fluid/gas-fluid-analysis';\r\nimport { AssayGasesSheetRows } from '../cell-config/assay-gases-cell-config';\r\n\r\nexport class AssayGasesFlexsheetMapper implements FlexSheetMapper {\r\n simulationVariableMapper: Mapper;\r\n\r\n constructor(simulationVariableMapper: NumberToSimulationVariableMapper) {\r\n this.simulationVariableMapper = simulationVariableMapper;\r\n }\r\n\r\n map(assay: GasFluidAnalysis, row: number, value: string | number) {\r\n if (row === AssayGasesSheetRows.NAME && typeof value === 'string') {\r\n assay.assayName = value;\r\n }\r\n\r\n if (typeof value === 'number') {\r\n switch (row) {\r\n case AssayGasesSheetRows.COMP_CO:\r\n this.simulationVariableMapper.map(value, assay.composition[0]);\r\n break;\r\n case AssayGasesSheetRows.COMP_CO2:\r\n this.simulationVariableMapper.map(value, assay.composition[1]);\r\n break;\r\n case AssayGasesSheetRows.COMP_H2:\r\n this.simulationVariableMapper.map(value, assay.composition[2]);\r\n break;\r\n case AssayGasesSheetRows.COMP_N2:\r\n this.simulationVariableMapper.map(value, assay.composition[3]);\r\n break;\r\n case AssayGasesSheetRows.COMP_H2S:\r\n this.simulationVariableMapper.map(value, assay.composition[4]);\r\n break;\r\n case AssayGasesSheetRows.COMP_SO2:\r\n this.simulationVariableMapper.map(value, assay.composition[5]);\r\n break;\r\n case AssayGasesSheetRows.COMP_METHANE:\r\n this.simulationVariableMapper.map(value, assay.composition[6]);\r\n break;\r\n case AssayGasesSheetRows.COMP_ETHANE:\r\n this.simulationVariableMapper.map(value, assay.composition[7]);\r\n break;\r\n case AssayGasesSheetRows.COMP_PROPANE:\r\n this.simulationVariableMapper.map(value, assay.composition[8]);\r\n break;\r\n case AssayGasesSheetRows.COMP_IC4:\r\n this.simulationVariableMapper.map(value, assay.composition[9]);\r\n break;\r\n case AssayGasesSheetRows.COMP_NC4:\r\n this.simulationVariableMapper.map(value, assay.composition[10]);\r\n break;\r\n case AssayGasesSheetRows.COMP_IC5:\r\n this.simulationVariableMapper.map(value, assay.composition[11]);\r\n break;\r\n case AssayGasesSheetRows.COMP_NC5:\r\n this.simulationVariableMapper.map(value, assay.composition[12]);\r\n break;\r\n case AssayGasesSheetRows.COMP_C6:\r\n this.simulationVariableMapper.map(value, assay.composition[13]);\r\n break;\r\n }\r\n }\r\n }\r\n}\r\n","import * as wjcSheet from '@grapecity/wijmo.grid.sheet';\r\nimport { FlexSheetValueConverter } from '../flex-sheet-value-converter';\r\nimport { GasFluidAnalysis } from '../../../_models/_fluid/gas-fluid-analysis';\r\nimport { enumValuesToArray } from '../../../_utils/enum-values-to-array';\r\nimport { AssayGasesCellConfig, AssayGasesSheetRows } from '../cell-config/assay-gases-cell-config';\r\nimport { NumberToSimulationVariableMapper } from '../mappers/number-to-simulation-variable-mapper';\r\nimport { AssayGasesFlexsheetMapper } from '../mappers/assay-gases-flexsheet-mapper';\r\n\r\nexport class AssayGasesFlexsheetEventHandler {\r\n constructor(private valueConverter: FlexSheetValueConverter) {}\r\n\r\n handle(assay: GasFluidAnalysis, spreadsheet: wjcSheet.FlexSheet, flexsheetEvent, rawValue) {\r\n const { row } = flexsheetEvent;\r\n\r\n if (enumValuesToArray(AssayGasesSheetRows).indexOf(row) === -1) {\r\n flexsheetEvent.cancel = true;\r\n return;\r\n }\r\n\r\n const cellConfig = AssayGasesCellConfig.find(rowConfig => rowConfig.row === row);\r\n const convertedValue = this.valueConverter.convert(spreadsheet, rawValue, cellConfig);\r\n\r\n const simulationVariableMapper = new NumberToSimulationVariableMapper();\r\n const mapper = new AssayGasesFlexsheetMapper(simulationVariableMapper);\r\n\r\n mapper.map(assay, row, convertedValue);\r\n }\r\n}\r\n","import * as wjcSheet from '@grapecity/wijmo.grid.sheet';\r\nimport { SagdSource } from '../../../_models/_unit-operations/sagd-source';\r\nimport { SagdSourceFlexSheetEventHandler } from './sagd-source-flex-sheet-event-handler';\r\nimport { FlexSheetValueConverter } from '../flex-sheet-value-converter';\r\nimport { SuncorUnitOperation } from '../../../_models/_unit-operations/suncor-unit-operation';\r\nimport { MineSourceFlexSheetEventHandler } from './mine-source-flex-sheet-event-handler';\r\nimport { MineSource } from '../../../_models/_unit-operations/mine-source';\r\nimport { UnitOperationFlexSheetEventHandler } from './unit-operation-flex-sheet-event-handler';\r\nimport { DiluentSourceFlexSheetEventHandler } from './diluent-source-flex-sheet-event-handler';\r\nimport { DiluentSource } from '../../../_models/_unit-operations/diluent-source';\r\nimport { ThirdPartySourceFlexSheetEventHandler } from './third-party-source-flex-sheet-event-handler';\r\nimport { ThirdPartySource } from '../../../_models/_unit-operations/third-party-source';\r\nimport { OffshoreSource } from '../../../_models/_unit-operations/offshore-source';\r\nimport { OffshoreSourceFlexSheetEventHandler } from './offshore-source-flex-sheet-event-handler';\r\nimport { Upgrader } from '../../../_models/_unit-operations/upgrader';\r\nimport { UpgraderFlexSheetEventHandler } from './upgrader-flex-sheet-event-handler';\r\nimport { PipeFlexSheetEventHandler } from './pipe-flex-sheet-event-handler';\r\nimport { Pipe } from '../../../_models/_unit-operations/pipe';\r\nimport { Refinery } from '../../../_models/_unit-operations/refinery';\r\nimport { RefineryFlexSheetEventHandler } from './refinery-flex-sheet-event-handler';\r\nimport { ThirdPartyRefineryFlexSheetEventHandler } from './third-party-refinery-flex-sheet-event-handler';\r\nimport { ThirdPartyRefinery } from '../../../_models/_unit-operations/third-party-refinery';\r\nimport { AssayFlexsheetEventHandler } from './assay-flexsheet-event-handler';\r\nimport { SuncorFluidAnalysis } from '../../../_models/_fluid/suncor-fluid-analysis';\r\nimport { UtilitiesFlexSheetEventHandler } from './utilities-flex-sheet-event-handler';\r\nimport { H2sProductionSheetEventHandler } from './h2s-production-sheet-event-handler';\r\nimport { SteamSheetEventHandler } from './steam-sheet-event-handler';\r\nimport { GasFluidAnalysis } from '../../../_models/_fluid/gas-fluid-analysis';\r\nimport { AssayGasesFlexsheetEventHandler } from './assay-gases-flexsheet-event-handler';\r\n\r\nexport class FlexSheetEventHandler {\r\n private readonly sagdSourceEventHandler: UnitOperationFlexSheetEventHandler;\r\n private readonly mineSourceEventHandler: UnitOperationFlexSheetEventHandler;\r\n private readonly diluentSourceEventHandler: UnitOperationFlexSheetEventHandler;\r\n private readonly thirdPartySourceEventHandler: UnitOperationFlexSheetEventHandler;\r\n private readonly offshoreSourceEventHandler: UnitOperationFlexSheetEventHandler;\r\n private readonly upgraderEventHandler: UnitOperationFlexSheetEventHandler;\r\n private readonly pipeEventHandler: UnitOperationFlexSheetEventHandler;\r\n private readonly refineryEventHandler: UnitOperationFlexSheetEventHandler;\r\n private readonly thirdPartyRefineryEventHandler: UnitOperationFlexSheetEventHandler;\r\n private readonly assayEventHandler: AssayFlexsheetEventHandler;\r\n private readonly assayGasesEventHandler: AssayGasesFlexsheetEventHandler;\r\n readonly utilitiesEventHandler: UtilitiesFlexSheetEventHandler;\r\n readonly h2sProductionEventHandler: H2sProductionSheetEventHandler;\r\n readonly steamSheetEventHandler: SteamSheetEventHandler;\r\n\r\n constructor() {\r\n const valueConverter = new FlexSheetValueConverter();\r\n\r\n this.sagdSourceEventHandler = new SagdSourceFlexSheetEventHandler(valueConverter);\r\n this.mineSourceEventHandler = new MineSourceFlexSheetEventHandler(valueConverter);\r\n this.diluentSourceEventHandler = new DiluentSourceFlexSheetEventHandler(valueConverter);\r\n this.thirdPartySourceEventHandler = new ThirdPartySourceFlexSheetEventHandler(valueConverter);\r\n this.offshoreSourceEventHandler = new OffshoreSourceFlexSheetEventHandler(valueConverter);\r\n this.upgraderEventHandler = new UpgraderFlexSheetEventHandler(valueConverter);\r\n this.pipeEventHandler = new PipeFlexSheetEventHandler(valueConverter);\r\n this.refineryEventHandler = new RefineryFlexSheetEventHandler(valueConverter);\r\n this.thirdPartyRefineryEventHandler = new ThirdPartyRefineryFlexSheetEventHandler(valueConverter);\r\n this.assayEventHandler = new AssayFlexsheetEventHandler(valueConverter);\r\n this.assayGasesEventHandler = new AssayGasesFlexsheetEventHandler(valueConverter);\r\n this.utilitiesEventHandler = new UtilitiesFlexSheetEventHandler(valueConverter);\r\n this.h2sProductionEventHandler = new H2sProductionSheetEventHandler(valueConverter);\r\n this.steamSheetEventHandler = new SteamSheetEventHandler(valueConverter);\r\n }\r\n\r\n handleEditEvent(\r\n unitOperation: SuncorUnitOperation | SuncorFluidAnalysis | GasFluidAnalysis,\r\n spreadsheet: wjcSheet.FlexSheet,\r\n flexSheetEvent: any\r\n ): boolean {\r\n const rawValue = spreadsheet.activeEditor.value;\r\n return this.handleEvent(unitOperation, spreadsheet, flexSheetEvent, rawValue);\r\n }\r\n\r\n handleCellPasteEvent(\r\n unitOperation: SuncorUnitOperation | SuncorFluidAnalysis | GasFluidAnalysis,\r\n spreadsheet: wjcSheet.FlexSheet,\r\n flexSheetEvent: any\r\n ) {\r\n const rawValue = flexSheetEvent.data;\r\n this.handleEvent(unitOperation, spreadsheet, flexSheetEvent, rawValue);\r\n }\r\n\r\n private handleEvent(\r\n unitOperation: SuncorUnitOperation | SuncorFluidAnalysis | GasFluidAnalysis,\r\n spreadsheet: wjcSheet.FlexSheet,\r\n flexSheetEvent: any,\r\n rawValue\r\n ) {\r\n const eventHandler = this.getEventHandler(unitOperation, spreadsheet.selectedSheetIndex);\r\n if (eventHandler) {\r\n return eventHandler.handle(unitOperation, spreadsheet, flexSheetEvent, rawValue);\r\n }\r\n }\r\n\r\n protected getEventHandler(\r\n unitOperation: SuncorUnitOperation | SuncorFluidAnalysis | GasFluidAnalysis,\r\n activeSheet: number\r\n ): any {\r\n if (unitOperation instanceof SagdSource) {\r\n return this.sagdSourceEventHandler;\r\n }\r\n if (unitOperation instanceof MineSource) {\r\n return this.mineSourceEventHandler;\r\n }\r\n if (unitOperation instanceof DiluentSource) {\r\n return this.diluentSourceEventHandler;\r\n }\r\n if (unitOperation instanceof ThirdPartySource) {\r\n return this.thirdPartySourceEventHandler;\r\n }\r\n if (unitOperation instanceof OffshoreSource) {\r\n return this.offshoreSourceEventHandler;\r\n }\r\n if (unitOperation instanceof Upgrader) {\r\n return this.upgraderEventHandler;\r\n }\r\n if (unitOperation instanceof Pipe) {\r\n return this.pipeEventHandler;\r\n }\r\n if (unitOperation instanceof Refinery) {\r\n return this.refineryEventHandler;\r\n }\r\n if (unitOperation instanceof ThirdPartyRefinery) {\r\n return this.thirdPartyRefineryEventHandler;\r\n }\r\n if (unitOperation instanceof SuncorFluidAnalysis) {\r\n return this.assayEventHandler;\r\n // TODO: we should update this to use sheet index not harcoded\r\n }\r\n if (unitOperation instanceof GasFluidAnalysis) {\r\n return this.assayGasesEventHandler;\r\n }\r\n if (activeSheet === 5) {\r\n return this.utilitiesEventHandler;\r\n }\r\n if (activeSheet === 6) {\r\n return this.h2sProductionEventHandler;\r\n }\r\n }\r\n}\r\n","import { SuncorUnitOperation } from '../../_models/_unit-operations/suncor-unit-operation';\r\nimport { UnitOperation } from '../../_models';\r\nimport { FluidAnalysis } from '../../_models/_fluid/fluid-analysis';\r\n\r\n// this is being used to track rows as well...\r\nexport class FlexSheetColumnTracker {\r\n private unitOperationIds = [];\r\n private assayIds = [];\r\n\r\n constructor(private columnOffset: number) {}\r\n\r\n addUnitOperation(uo: SuncorUnitOperation | UnitOperation) {\r\n this.unitOperationIds.push(uo.id);\r\n }\r\n\r\n addAssay(assay: FluidAnalysis) {\r\n this.assayIds.push(assay.id);\r\n }\r\n\r\n removeUnitOperation(uo: SuncorUnitOperation | UnitOperation) {\r\n const unitOperationIndex = this.unitOperationIds.indexOf(uo.id);\r\n this.unitOperationIds.splice(unitOperationIndex, 1);\r\n }\r\n\r\n removeAssay(assay: FluidAnalysis) {\r\n const assayIndex = this.assayIds.indexOf(assay.id);\r\n this.assayIds.splice(assayIndex, 1);\r\n }\r\n\r\n columnCount(): number {\r\n return this.unitOperationIds.length;\r\n }\r\n\r\n findColumnIndex(unitOperation: SuncorUnitOperation | UnitOperation) {\r\n const unitOperationIndex = this.unitOperationIds.indexOf(unitOperation.id);\r\n return unitOperationIndex === -1 ? unitOperationIndex : unitOperationIndex + this.columnOffset;\r\n }\r\n\r\n findAssayColumnIndex(assay: FluidAnalysis) {\r\n const assayIndex = this.assayIds.indexOf(assay.id);\r\n return assayIndex === -1 ? assayIndex : assayIndex + this.columnOffset;\r\n }\r\n\r\n findAssayId(column: number) {\r\n return this.assayIds[column - this.columnOffset];\r\n }\r\n\r\n clear() {\r\n this.unitOperationIds = [];\r\n this.assayIds = [];\r\n }\r\n}\r\n","import * as wjcSheet from '@grapecity/wijmo.grid.sheet';\r\nimport * as wjCore from '@grapecity/wijmo.grid';\r\nimport { isNumber } from '@grapecity/wijmo';\r\nimport { FlexSheetColumnTracker } from '../flex-sheet-column-tracker';\r\nimport { SuncorUnitOperation } from '../../../_models/_unit-operations/suncor-unit-operation';\r\nimport { Pipe } from '../../../_models/_unit-operations/pipe';\r\nimport { SimulationVariable, UnitOperation } from '../../../_models';\r\nimport { SuncorFluidAnalysis } from '../../../_models/_fluid/suncor-fluid-analysis';\r\nimport { GasFluidAnalysis } from '../../../_models/_fluid/gas-fluid-analysis';\r\n\r\nexport abstract class AbstractSheetHandler {\r\n abstract SHEET_INDEX;\r\n\r\n protected columnTracker: FlexSheetColumnTracker;\r\n protected spreadsheet: wjcSheet.FlexSheet;\r\n\r\n clear() {\r\n this.spreadsheet.sheets[this.SHEET_INDEX].grid.columns.splice(1, this.columnTracker.columnCount());\r\n\r\n this.columnTracker.clear();\r\n }\r\n\r\n init() {\r\n const labels = this.getLabels();\r\n this.arrayToSpreadsheetColumn(labels, 0);\r\n this.spreadsheet.sheets[this.SHEET_INDEX].grid.columns[0].width = 240;\r\n this.spreadsheet.frozenColumns = 1;\r\n }\r\n\r\n protected abstract getLabels(): string[];\r\n\r\n abstract isUnitOperationAllowed(\r\n unitOperation: SuncorUnitOperation | UnitOperation | SuncorFluidAnalysis | GasFluidAnalysis\r\n ): boolean;\r\n\r\n addUnitOperation(unitOperation: SuncorUnitOperation | UnitOperation) {\r\n this.columnTracker.addUnitOperation(unitOperation);\r\n\r\n const column = this.spreadsheet.sheets[this.SHEET_INDEX].grid.columns.length - 1;\r\n this.spreadsheet.sheets[this.SHEET_INDEX].grid.columns.insert(column, new wjCore.Column());\r\n\r\n this.setData(unitOperation);\r\n }\r\n\r\n addAssay(assay: SuncorFluidAnalysis | GasFluidAnalysis) {\r\n this.columnTracker.addAssay(assay);\r\n\r\n const column = this.spreadsheet.sheets[this.SHEET_INDEX].grid.columns.length - 1;\r\n this.spreadsheet.sheets[this.SHEET_INDEX].grid.columns.insert(column, new wjCore.Column());\r\n\r\n this.setData(assay);\r\n }\r\n\r\n updateUnitOperation(unitOperation: SuncorUnitOperation) {\r\n this.setData(unitOperation as Pipe);\r\n }\r\n\r\n updateAssay(assay: SuncorFluidAnalysis | GasFluidAnalysis) {\r\n this.setData(assay);\r\n }\r\n\r\n removeUnitOperation(unitOperation: SuncorUnitOperation) {\r\n const unitOperationColumn = this.columnTracker.findColumnIndex(unitOperation);\r\n\r\n if (unitOperationColumn > -1) {\r\n this.spreadsheet.sheets[this.SHEET_INDEX].grid.columns.removeAt(unitOperationColumn);\r\n this.columnTracker.removeUnitOperation(unitOperation);\r\n }\r\n }\r\n\r\n removeAssay(assay: SuncorFluidAnalysis | GasFluidAnalysis) {\r\n const assayColumn = this.columnTracker.findAssayColumnIndex(assay);\r\n\r\n if (assayColumn > -1) {\r\n this.spreadsheet.sheets[this.SHEET_INDEX].grid.columns.removeAt(assayColumn);\r\n this.columnTracker.removeAssay(assay);\r\n }\r\n }\r\n\r\n protected abstract setData(\r\n unitOperation: SuncorUnitOperation | UnitOperation | SuncorFluidAnalysis | GasFluidAnalysis\r\n );\r\n\r\n protected formatSimulationVariable(simulationVariable: SimulationVariable, unit?: string) {\r\n if (unit) {\r\n return this.formatValue(simulationVariable.convertToAnotherUnit(unit));\r\n }\r\n return this.formatValue(simulationVariable.convertToDefaultUnit());\r\n }\r\n\r\n private formatValue(value: number): number | undefined {\r\n if (isNumber(value)) {\r\n return parseFloat(value.toFixed(10));\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n protected arrayToSpreadsheetColumn(dataArray: any[], column: number) {\r\n for (let row = 0; row < dataArray.length; row++) {\r\n this.spreadsheet.sheets[this.SHEET_INDEX].grid.setCellData(row, column, dataArray[row]);\r\n }\r\n }\r\n\r\n clearColumn(columnIndex: number) {\r\n this.spreadsheet.columns.setAt(columnIndex, new wjCore.Column());\r\n // this.spreadsheet.columns.removeAt(columnIndex);\r\n }\r\n}\r\n","import * as wjcSheet from '@grapecity/wijmo.grid.sheet';\r\nimport { AbstractSheetHandler } from './abstract-sheet-handler';\r\nimport { FlexSheetColumnTracker } from '../flex-sheet-column-tracker';\r\nimport { SuncorFluidAnalysis } from '../../../_models/_fluid/suncor-fluid-analysis';\r\n\r\ndeclare let unitConverter: any;\r\nexport class AssaySheetHandler extends AbstractSheetHandler {\r\n readonly SHEET_INDEX = 0;\r\n\r\n constructor(spreadsheet: wjcSheet.FlexSheet, columnTracker: FlexSheetColumnTracker) {\r\n super();\r\n this.spreadsheet = spreadsheet;\r\n this.columnTracker = columnTracker;\r\n }\r\n\r\n protected getLabels(): string[] {\r\n return [\r\n '',\r\n 'Name',\r\n 'Type',\r\n '',\r\n 'Composition (wt%)',\r\n 'Light ends',\r\n 'Light naphtha',\r\n 'Heavy naphtha',\r\n 'Distillate',\r\n 'LGO',\r\n 'HGO',\r\n 'VGO',\r\n 'HVGO',\r\n 'Resid',\r\n '',\r\n 'Light Ends',\r\n 'Sulfur (wt%)',\r\n 'Aniline point (C)',\r\n 'Mass density (API)',\r\n 'Nitrogen (ppmw)',\r\n 'CCR (wt%)',\r\n '',\r\n 'Light Naphtha',\r\n 'Sulfur (wt%)',\r\n 'Aniline point (C)',\r\n 'Mass density (API)',\r\n 'Nitrogen (ppmw)',\r\n 'CCR (wt%)',\r\n '',\r\n 'Heavy naphtha',\r\n 'Sulfur (wt%)',\r\n 'Aniline point (C)',\r\n 'Mass density (API)',\r\n 'Nitrogen (ppmw)',\r\n 'CCR (wt%)',\r\n '',\r\n 'Distillate',\r\n 'Sulfur (wt%)',\r\n 'Aniline point (C)',\r\n 'Mass density (API)',\r\n 'Nitrogen (ppmw)',\r\n 'CCR (wt%)',\r\n '',\r\n 'LGO',\r\n 'Sulfur (wt%)',\r\n 'Aniline point (C)',\r\n 'Mass density (API)',\r\n 'Nitrogen (ppmw)',\r\n 'CCR (wt%)',\r\n '',\r\n 'HGO',\r\n 'Sulfur (wt%)',\r\n 'Aniline point (C)',\r\n 'Mass density (API)',\r\n 'Nitrogen (ppmw)',\r\n 'CCR (wt%)',\r\n '',\r\n 'VGO',\r\n 'Sulfur (wt%)',\r\n 'Aniline point (C)',\r\n 'Mass density (API)',\r\n 'Nitrogen (ppmw)',\r\n 'CCR (wt%)',\r\n '',\r\n 'HVGO',\r\n 'Sulfur (wt%)',\r\n 'Aniline point (C)',\r\n 'Mass density (API)',\r\n 'Nitrogen (ppmw)',\r\n 'CCR (wt%)',\r\n '',\r\n 'Resid',\r\n 'Sulfur (wt%)',\r\n 'Aniline point (C)',\r\n 'Mass density (API)',\r\n 'Nitrogen (ppmw)',\r\n 'CCR (wt%)',\r\n ];\r\n }\r\n\r\n protected setData(assay: SuncorFluidAnalysis) {\r\n const dataArray = [\r\n '',\r\n assay.assayName,\r\n assay.assayType,\r\n '',\r\n '',\r\n this.formatSimulationVariable(assay.composition[0]),\r\n this.formatSimulationVariable(assay.composition[1]),\r\n this.formatSimulationVariable(assay.composition[2]),\r\n this.formatSimulationVariable(assay.composition[3]),\r\n this.formatSimulationVariable(assay.composition[4]),\r\n this.formatSimulationVariable(assay.composition[5]),\r\n this.formatSimulationVariable(assay.composition[6]),\r\n this.formatSimulationVariable(assay.composition[7]),\r\n this.formatSimulationVariable(assay.composition[8]),\r\n '',\r\n '',\r\n this.formatSimulationVariable(assay.lightEndsCut.sulfur),\r\n this.formatSimulationVariable(assay.lightEndsCut.anilinePoint),\r\n this.formatSimulationVariable(assay.lightEndsCut.massDensity),\r\n this.formatSimulationVariable(assay.lightEndsCut.nitrogen, unitConverter.units.MassFraction.PPMW),\r\n this.formatSimulationVariable(assay.lightEndsCut.ccr),\r\n '',\r\n '',\r\n this.formatSimulationVariable(assay.lightNaphthaCut.sulfur),\r\n this.formatSimulationVariable(assay.lightNaphthaCut.anilinePoint),\r\n this.formatSimulationVariable(assay.lightNaphthaCut.massDensity),\r\n this.formatSimulationVariable(assay.lightNaphthaCut.nitrogen, unitConverter.units.MassFraction.PPMW),\r\n this.formatSimulationVariable(assay.lightNaphthaCut.ccr),\r\n '',\r\n '',\r\n this.formatSimulationVariable(assay.heavyNaphthaCut.sulfur),\r\n this.formatSimulationVariable(assay.heavyNaphthaCut.anilinePoint),\r\n this.formatSimulationVariable(assay.heavyNaphthaCut.massDensity),\r\n this.formatSimulationVariable(assay.heavyNaphthaCut.nitrogen, unitConverter.units.MassFraction.PPMW),\r\n this.formatSimulationVariable(assay.heavyNaphthaCut.ccr),\r\n '',\r\n '',\r\n this.formatSimulationVariable(assay.distillateCut.sulfur),\r\n this.formatSimulationVariable(assay.distillateCut.anilinePoint),\r\n this.formatSimulationVariable(assay.distillateCut.massDensity),\r\n this.formatSimulationVariable(assay.distillateCut.nitrogen, unitConverter.units.MassFraction.PPMW),\r\n this.formatSimulationVariable(assay.distillateCut.ccr),\r\n '',\r\n '',\r\n this.formatSimulationVariable(assay.LGOCut.sulfur),\r\n this.formatSimulationVariable(assay.LGOCut.anilinePoint),\r\n this.formatSimulationVariable(assay.LGOCut.massDensity),\r\n this.formatSimulationVariable(assay.LGOCut.nitrogen, unitConverter.units.MassFraction.PPMW),\r\n this.formatSimulationVariable(assay.LGOCut.ccr),\r\n '',\r\n '',\r\n this.formatSimulationVariable(assay.HGOCut.sulfur),\r\n this.formatSimulationVariable(assay.HGOCut.anilinePoint),\r\n this.formatSimulationVariable(assay.HGOCut.massDensity),\r\n this.formatSimulationVariable(assay.HGOCut.nitrogen, unitConverter.units.MassFraction.PPMW),\r\n this.formatSimulationVariable(assay.HGOCut.ccr),\r\n '',\r\n '',\r\n this.formatSimulationVariable(assay.VGOCut.sulfur),\r\n this.formatSimulationVariable(assay.VGOCut.anilinePoint),\r\n this.formatSimulationVariable(assay.VGOCut.massDensity),\r\n this.formatSimulationVariable(assay.VGOCut.nitrogen, unitConverter.units.MassFraction.PPMW),\r\n this.formatSimulationVariable(assay.VGOCut.ccr),\r\n '',\r\n '',\r\n this.formatSimulationVariable(assay.HVGOCut.sulfur),\r\n this.formatSimulationVariable(assay.HVGOCut.anilinePoint),\r\n this.formatSimulationVariable(assay.HVGOCut.massDensity),\r\n this.formatSimulationVariable(assay.HVGOCut.nitrogen, unitConverter.units.MassFraction.PPMW),\r\n this.formatSimulationVariable(assay.HVGOCut.ccr),\r\n '',\r\n '',\r\n this.formatSimulationVariable(assay.residCut.sulfur),\r\n this.formatSimulationVariable(assay.residCut.anilinePoint),\r\n this.formatSimulationVariable(assay.residCut.massDensity),\r\n this.formatSimulationVariable(assay.residCut.nitrogen, unitConverter.units.MassFraction.PPMW),\r\n this.formatSimulationVariable(assay.residCut.ccr),\r\n ];\r\n const column = this.columnTracker.findAssayColumnIndex(assay);\r\n this.arrayToSpreadsheetColumn(dataArray, column);\r\n }\r\n\r\n isUnitOperationAllowed(assay: SuncorFluidAnalysis): boolean {\r\n return assay instanceof SuncorFluidAnalysis;\r\n }\r\n}\r\n","import * as wjcSheet from '@grapecity/wijmo.grid.sheet';\r\nimport { AbstractSheetHandler } from './abstract-sheet-handler';\r\nimport { FlexSheetColumnTracker } from '../flex-sheet-column-tracker';\r\nimport { GasFluidAnalysis } from '../../../_models/_fluid/gas-fluid-analysis';\r\n\r\nexport class AssayGasesSheetHandler extends AbstractSheetHandler {\r\n readonly SHEET_INDEX = 1;\r\n\r\n constructor(spreadsheet: wjcSheet.FlexSheet, columnTracker: FlexSheetColumnTracker) {\r\n super();\r\n this.spreadsheet = spreadsheet;\r\n this.columnTracker = columnTracker;\r\n }\r\n\r\n protected getLabels(): string[] {\r\n return [\r\n '',\r\n 'Name',\r\n 'Type',\r\n '',\r\n 'Composition (mol%)',\r\n 'CO',\r\n 'CO2',\r\n 'H2',\r\n 'N2',\r\n 'H2S',\r\n 'SO2',\r\n 'Methane',\r\n 'Ethane',\r\n 'Propane',\r\n 'IC4',\r\n 'NC4',\r\n 'IC5',\r\n 'NC5',\r\n 'C6+',\r\n '',\r\n ];\r\n }\r\n\r\n protected setData(assay: GasFluidAnalysis) {\r\n const dataArray = [\r\n '',\r\n assay.assayName,\r\n assay.assayType,\r\n '',\r\n '',\r\n this.formatSimulationVariable(assay.composition[0]),\r\n this.formatSimulationVariable(assay.composition[1]),\r\n this.formatSimulationVariable(assay.composition[2]),\r\n this.formatSimulationVariable(assay.composition[3]),\r\n this.formatSimulationVariable(assay.composition[4]),\r\n this.formatSimulationVariable(assay.composition[5]),\r\n this.formatSimulationVariable(assay.composition[6]),\r\n this.formatSimulationVariable(assay.composition[7]),\r\n this.formatSimulationVariable(assay.composition[8]),\r\n this.formatSimulationVariable(assay.composition[9]),\r\n this.formatSimulationVariable(assay.composition[10]),\r\n this.formatSimulationVariable(assay.composition[11]),\r\n this.formatSimulationVariable(assay.composition[12]),\r\n this.formatSimulationVariable(assay.composition[13]),\r\n '',\r\n ];\r\n\r\n const column = this.columnTracker.findAssayColumnIndex(assay);\r\n this.arrayToSpreadsheetColumn(dataArray, column);\r\n }\r\n\r\n isUnitOperationAllowed(assay: GasFluidAnalysis): boolean {\r\n return assay instanceof GasFluidAnalysis;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport * as wjcSheet from '@grapecity/wijmo.grid.sheet';\r\n\r\nimport { SpreadsheetHandler } from './spreadsheet-handler';\r\nimport { SuncorUnitOperation } from '../../_models/_unit-operations/suncor-unit-operation';\r\nimport { CoreService } from '../core.service';\r\nimport { FlexSheetEventHandler } from './event-handlers/flex-sheet-event-handler';\r\nimport { FlexSheetColumnTracker } from './flex-sheet-column-tracker';\r\nimport { AbstractSheetHandler } from './sheet-handlers/abstract-sheet-handler';\r\nimport { Case, UnitOperation } from '../../_models';\r\nimport { AssaySheetHandler } from './sheet-handlers/assay-sheet-handler';\r\nimport { SuncorFluidAnalysis } from '../../_models/_fluid/suncor-fluid-analysis';\r\nimport { AssayGasesSheetHandler } from './sheet-handlers/assay-gases-sheet-handler';\r\nimport { GasFluidAnalysis } from '../../_models/_fluid/gas-fluid-analysis';\r\n\r\n@Injectable()\r\nexport class FlexSheetSpreadsheetService implements SpreadsheetHandler {\r\n private readonly ASSAY_SHEET = 0;\r\n private readonly ASSAY_COLUMN_OFFSET = 1;\r\n\r\n private readonly ASSAY_GASES_SHEET = 1;\r\n private readonly ASSAY_GASES_COLUMN_OFFSET = 1;\r\n\r\n private spreadsheet: wjcSheet.FlexSheet;\r\n\r\n assaySheetHandler: AbstractSheetHandler;\r\n assayColumnTracker: FlexSheetColumnTracker;\r\n\r\n assayGasesSheetHandler: AbstractSheetHandler;\r\n assayGasesColumnTracker: FlexSheetColumnTracker;\r\n\r\n editHandler: FlexSheetEventHandler;\r\n\r\n constructor(private coreService: CoreService) {\r\n this.coreService.currentCaseReplacedRequest.subscribe(() => {\r\n this.caseToSpreadsheet(this.coreService.currentCase);\r\n });\r\n }\r\n\r\n init(spreadsheet: wjcSheet.FlexSheet) {\r\n this.spreadsheet = spreadsheet;\r\n this.spreadsheet.frozenRows = 3;\r\n this.initializeEditEventHandler();\r\n this.initializePasteEventHandler();\r\n\r\n this.assayColumnTracker = new FlexSheetColumnTracker(this.ASSAY_COLUMN_OFFSET);\r\n this.assaySheetHandler = new AssaySheetHandler(this.spreadsheet, this.assayColumnTracker);\r\n this.assaySheetHandler.init();\r\n\r\n this.assayGasesColumnTracker = new FlexSheetColumnTracker(this.ASSAY_GASES_COLUMN_OFFSET);\r\n this.assayGasesSheetHandler = new AssayGasesSheetHandler(this.spreadsheet, this.assayGasesColumnTracker);\r\n this.assayGasesSheetHandler.init();\r\n\r\n // TODO what to do if case is changed?\r\n this.editHandler = new FlexSheetEventHandler();\r\n\r\n // Hide the context menu for preventing the addition of rows and columns\r\n // https://www.grapecity.com/forums/wijmo/disable-the-context-menu-o_1\r\n this.spreadsheet.hostElement.addEventListener(\r\n 'contextmenu',\r\n function (e) {\r\n e.preventDefault();\r\n },\r\n true\r\n );\r\n\r\n // TODO this should be tested from an ipad or iphone using safari, the context menu hooks in the\r\n // touchstart event\r\n // hide contextmenu in iPad safari/chrome\r\n this.spreadsheet.hostElement.addEventListener(\r\n 'touchstart',\r\n () => {\r\n const { userAgent } = window.navigator;\r\n if (userAgent.match(/iPad/i) || userAgent.match(/iPhone/i)) {\r\n setTimeout(() => {\r\n (this.spreadsheet as any)._contextMenu.hide();\r\n }, 501);\r\n }\r\n },\r\n true\r\n );\r\n\r\n this.spreadsheet.showFilterIcons = false;\r\n }\r\n\r\n dispose() {\r\n // TODO end any subscriptions here\r\n }\r\n\r\n caseToSpreadsheet(c: Case) {\r\n // eslint-disable-next-line guard-for-in\r\n for (const id in c.unitOperationPool) {\r\n this.addUnitOperation(c.getUnitOperation(id) as SuncorUnitOperation);\r\n }\r\n // eslint-disable-next-line guard-for-in\r\n for (const index in c.assayManager.fluidAnalyses) {\r\n if (c.assayManager.fluidAnalyses[index] instanceof SuncorFluidAnalysis) {\r\n this.addAssay(c.assayManager.fluidAnalyses[index] as SuncorFluidAnalysis);\r\n } else if (c.assayManager.fluidAnalyses[index] instanceof GasFluidAnalysis) {\r\n this.addAssay(c.assayManager.fluidAnalyses[index] as GasFluidAnalysis);\r\n }\r\n }\r\n }\r\n\r\n addUnitOperation(unitOperation: SuncorUnitOperation | UnitOperation) {\r\n const sheetHandlers = this.getSheetHandlers(unitOperation);\r\n\r\n sheetHandlers.forEach(sheetHandler => {\r\n sheetHandler.addUnitOperation(unitOperation);\r\n });\r\n }\r\n\r\n addAssay(assay: SuncorFluidAnalysis | GasFluidAnalysis) {\r\n const sheetHandlers = this.getSheetHandlers(assay);\r\n\r\n sheetHandlers.forEach(sheetHandler => {\r\n sheetHandler.addAssay(assay);\r\n });\r\n }\r\n\r\n updateUnitOperation(unitOperation: SuncorUnitOperation) {\r\n const sheetHandlers = this.getSheetHandlers(unitOperation);\r\n\r\n sheetHandlers.forEach(sheetHandler => {\r\n sheetHandler.updateUnitOperation(unitOperation);\r\n });\r\n }\r\n\r\n updateAssay(assay: SuncorFluidAnalysis | GasFluidAnalysis) {\r\n const sheetHandlers = this.getSheetHandlers(assay);\r\n\r\n sheetHandlers.forEach(sheetHandler => {\r\n sheetHandler.updateAssay(assay);\r\n });\r\n }\r\n\r\n removeUnitOperation(unitOperation: SuncorUnitOperation) {\r\n const sheetHandlers = this.getSheetHandlers(unitOperation);\r\n\r\n sheetHandlers.forEach(sheetHandler => {\r\n sheetHandler.removeUnitOperation(unitOperation);\r\n });\r\n }\r\n\r\n removeAssay(assay: SuncorFluidAnalysis | GasFluidAnalysis) {\r\n const sheetHandlers = this.getSheetHandlers(assay);\r\n\r\n sheetHandlers.forEach(sheetHandler => {\r\n sheetHandler.removeAssay(assay);\r\n });\r\n }\r\n\r\n getSheetHandlers(\r\n unitOperation: SuncorUnitOperation | UnitOperation | SuncorFluidAnalysis | GasFluidAnalysis\r\n ): AbstractSheetHandler[] {\r\n const sheetHandlers = [];\r\n\r\n if (this.assaySheetHandler.isUnitOperationAllowed(unitOperation)) {\r\n sheetHandlers.push(this.assaySheetHandler);\r\n }\r\n if (this.assayGasesSheetHandler.isUnitOperationAllowed(unitOperation)) {\r\n sheetHandlers.push(this.assayGasesSheetHandler);\r\n }\r\n\r\n return sheetHandlers;\r\n }\r\n\r\n private initializeEditEventHandler() {\r\n this.spreadsheet.cellEditEnding.addHandler((spreadsheet: wjcSheet.FlexSheet, flexSheetEvent: any) => {\r\n let object = null;\r\n object = this.getUnitOperation(flexSheetEvent);\r\n if (!object) {\r\n flexSheetEvent.cancel = true;\r\n return;\r\n }\r\n this.editHandler.handleEditEvent(object, spreadsheet, flexSheetEvent);\r\n if (object instanceof SuncorFluidAnalysis || object instanceof GasFluidAnalysis) {\r\n this.coreService.notifyAssayUpdated(object, true);\r\n } else {\r\n this.coreService.notifyUnitOperationUpdated(object, true);\r\n }\r\n });\r\n }\r\n\r\n private initializePasteEventHandler() {\r\n this.spreadsheet.pastingCell.addHandler((spreadsheet: wjcSheet.FlexSheet, flexSheetEvent: any) => {\r\n const object = this.getUnitOperation(flexSheetEvent);\r\n\r\n if (!object) {\r\n flexSheetEvent.cancel = true;\r\n return;\r\n }\r\n\r\n this.editHandler.handleCellPasteEvent(object, spreadsheet, flexSheetEvent);\r\n if (object instanceof SuncorFluidAnalysis || object instanceof GasFluidAnalysis) {\r\n this.coreService.notifyAssayUpdated(object, true);\r\n } else {\r\n this.coreService.notifyUnitOperationUpdated(object, true);\r\n }\r\n });\r\n }\r\n\r\n private getUnitOperation(flexsheetEvent: any): SuncorUnitOperation | SuncorFluidAnalysis | GasFluidAnalysis {\r\n let unitOperationId;\r\n let assayId;\r\n const column = flexsheetEvent.col;\r\n if (this.spreadsheet.selectedSheetIndex === this.ASSAY_SHEET) {\r\n assayId = this.assayColumnTracker.findAssayId(column);\r\n } else if (this.spreadsheet.selectedSheetIndex === this.ASSAY_GASES_SHEET) {\r\n assayId = this.assayGasesColumnTracker.findAssayId(column);\r\n }\r\n\r\n if (unitOperationId) {\r\n return this.coreService.currentCase.getUnitOperation(unitOperationId) as SuncorUnitOperation;\r\n }\r\n if (assayId) {\r\n const fluidAnalysis = this.coreService.currentCase.assayManager.findFluidAnalysisById(assayId);\r\n\r\n if (fluidAnalysis instanceof SuncorFluidAnalysis) {\r\n return this.coreService.currentCase.assayManager.findFluidAnalysisById(assayId) as SuncorFluidAnalysis;\r\n }\r\n if (fluidAnalysis instanceof GasFluidAnalysis) {\r\n return this.coreService.currentCase.assayManager.findFluidAnalysisById(assayId) as GasFluidAnalysis;\r\n }\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n clearResults() {}\r\n\r\n clear() {}\r\n}\r\n","import * as wjGrid from '@grapecity/wijmo.grid';\r\nimport * as wjcSheet from '@grapecity/wijmo.grid.sheet';\r\n\r\nimport { CollectionView } from '@grapecity/wijmo';\r\nimport { CoreService } from '../core.service';\r\nimport { FlexSheetColumn } from '../../_models/wijmo/flex-sheet-column';\r\nimport { Case, UnitOperation } from '../../_models';\r\nimport { BaseConstraintsSpreadsheetModel } from '../../_models/constraints-spreadsheet/base-constraints-spreadsheet-model';\r\nimport { UnitOperationConstraints } from '../../_models/_unit-operations/unit-operation-constraints';\r\nimport { ConstraintReportVariable } from '../../_models/_reports/_optimization-settings-table/constraint-report-variable';\r\nimport { FlowsheetTreeService } from '../sub-flowsheet/flowsheet-tree/flowsheet-tree.service';\r\nimport { SuncorUnitOperation } from '../../_models/_unit-operations/suncor-unit-operation';\r\nimport { MixingConstraints } from '../../_models/_unit-operations/mixing-constraints';\r\nimport { Mixer } from '../../_models/_unit-operations/mixer';\r\nimport { SuncorConstraint } from '../../_models/_unit-operations/suncor-constraint';\r\nimport { RangeDistributionConstraint } from '../../_models/_unit-operations/range-distribution-constraint';\r\nimport { MixingConstraintReportVariable } from '../../_models/_reports/_optimization-settings-table/mixing-constraint-report-variable';\r\nimport { MixerBlendRecipeOption } from '../../_config/unit-operations/mixer-enums';\r\nimport { Splitter } from '../../_models/_unit-operations/splitter';\r\nimport { RangeDistributionRatioVariable } from '../../_models/_unit-operations/range-distribution-ratio-variable';\r\nimport { BaseConstraintReportVariable } from '../../_models/_reports/_optimization-settings-table/base-constraint-report-variable';\r\n\r\nexport abstract class AbstractConstraintsHandler {\r\n protected items: BaseConstraintsSpreadsheetModel[];\r\n protected grid: wjGrid.FlexGrid;\r\n protected readonly DEFAULT_NUMBER_OF_ROWS = 90;\r\n protected sheetName: string;\r\n\r\n protected abstract readonly SHEET_INDEX: number;\r\n\r\n // constraints: Array = [];\r\n flowsheetTree = this.flowsheetTreeService.getFlowsheetTree(this.coreService.currentCase);\r\n\r\n protected constructor(protected coreService: CoreService, private flowsheetTreeService: FlowsheetTreeService) {}\r\n\r\n protected abstract isUnitOperationAllowed(unitOperation: UnitOperation): boolean;\r\n\r\n abstract clearResults(): void;\r\n\r\n protected abstract getColumnsConfiguration(): FlexSheetColumn[];\r\n\r\n protected toSpreadsheetItem(\r\n constraint: BaseConstraintReportVariable,\r\n flowsheetOwner?: string\r\n ): BaseConstraintsSpreadsheetModel {\r\n const constraintSpreadsheetModel = {\r\n isActive: constraint.isActive,\r\n unitOperationId: constraint.unitOperationId,\r\n unitOperationName: constraint.unitOperationName,\r\n constraint: constraint.name,\r\n constraintValue: constraint.constraintValue,\r\n currentValue: constraint.currentValue,\r\n flowsheetOwner,\r\n } as BaseConstraintsSpreadsheetModel;\r\n\r\n if (constraint instanceof ConstraintReportVariable) {\r\n constraintSpreadsheetModel.id = constraint.simVarId;\r\n constraintSpreadsheetModel.unit = constraint.currentUnit;\r\n } else {\r\n const mixingConstraintReportVar = constraint as MixingConstraintReportVariable;\r\n constraintSpreadsheetModel.id = mixingConstraintReportVar.id;\r\n constraintSpreadsheetModel.unit = mixingConstraintReportVar.constraintUnit;\r\n }\r\n return constraintSpreadsheetModel;\r\n }\r\n\r\n init(spreadsheet: wjcSheet.FlexSheet, sheetName: string) {\r\n this.grid = new wjGrid.FlexGrid(document.createElement('div'), {\r\n autoGenerateColumns: false,\r\n columns: this.getColumnsConfiguration(),\r\n frozenRows: 1,\r\n frozenColumns: 1,\r\n });\r\n\r\n this.items = [];\r\n this.clearSpreadsheetItems();\r\n\r\n const data = this.createCollectionView();\r\n\r\n spreadsheet.addBoundSheet(sheetName, data, this.SHEET_INDEX, this.grid);\r\n this.sheetName = sheetName;\r\n }\r\n\r\n protected createCollectionView() {\r\n return new CollectionView(this.items);\r\n }\r\n\r\n caseToSpreadsheet(c: Case): void {\r\n const definedConstraints: Array = [];\r\n this.clearSpreadsheetItems();\r\n\r\n let flowsheetOwner = '';\r\n\r\n for (const id in c.unitOperationPool) {\r\n const uo = c.unitOperationPool[id] as UnitOperation;\r\n if (this.isUnitOperationAllowed(uo)) {\r\n if ((uo as any).constraints) {\r\n const { constraints } = (uo as any).constraints as UnitOperationConstraints | MixingConstraints;\r\n for (const id in constraints) {\r\n const constraint = constraints[id];\r\n if (constraint.constraintValueDefined()) {\r\n this.addConstraintReportVariableToArray(definedConstraints, constraint, uo);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n for (const cKey in definedConstraints) {\r\n flowsheetOwner = this.assignFlowsheetOwner(definedConstraints[cKey].unitOperationId);\r\n this.addConstraintWithoutRefreshing(definedConstraints[cKey], flowsheetOwner);\r\n flowsheetOwner = '';\r\n }\r\n\r\n this.grid.collectionView.refresh();\r\n }\r\n\r\n handleEditEvent(spreadsheet: wjcSheet.FlexSheet, flexSheetEvent: any) {\r\n if (spreadsheet.selectedSheet.name !== this.sheetName) {\r\n return;\r\n }\r\n\r\n const item = this.items[flexSheetEvent.row - 1];\r\n if (!item.id) {\r\n flexSheetEvent.cancel = true;\r\n return;\r\n }\r\n\r\n if (spreadsheet.activeEditor) {\r\n if (spreadsheet.activeEditor.value === 'on') {\r\n this.handleEventActiveChange(item, spreadsheet.activeEditor.checked);\r\n }\r\n this.handleEvent(spreadsheet.activeEditor.value, item, flexSheetEvent);\r\n }\r\n }\r\n\r\n handleDeleteEvent(spreadsheet: wjcSheet.FlexSheet, flexSheetEvent: any) {\r\n if (spreadsheet.selectedSheet.name !== this.sheetName) {\r\n return;\r\n }\r\n\r\n const item = this.items[flexSheetEvent.row - 1];\r\n if (!item.id) {\r\n flexSheetEvent.cancel = true;\r\n return;\r\n }\r\n\r\n this.handleEvent('', item, flexSheetEvent);\r\n }\r\n\r\n handleEventActiveChange(item: BaseConstraintsSpreadsheetModel, checked: boolean) {\r\n const simVar = this.coreService.currentCase.getSimulationVariable(item.id);\r\n item.isActive = checked;\r\n\r\n if (simVar) {\r\n simVar.setIsActive(checked);\r\n } else {\r\n const unitOperationOwner = this.coreService.currentCase.getUnitOperation(item.unitOperationId);\r\n if (unitOperationOwner) {\r\n if (this.isMixingConstraintsUser(unitOperationOwner)) {\r\n unitOperationOwner.constraints.constraints[item.id].isActive = checked;\r\n }\r\n }\r\n }\r\n\r\n this.grid.collectionView.refresh();\r\n }\r\n\r\n handlePasteEvent(spreadsheet: wjcSheet.FlexSheet, flexSheetEvent: any): void {\r\n if (spreadsheet.selectedSheet.name !== this.sheetName) {\r\n return;\r\n }\r\n\r\n const item = this.items[flexSheetEvent.row - 1];\r\n if (!item.id) {\r\n flexSheetEvent.cancel = true;\r\n return;\r\n }\r\n\r\n if (!flexSheetEvent.data) {\r\n flexSheetEvent.cancel = true;\r\n return;\r\n }\r\n\r\n this.handleEvent(flexSheetEvent.data, item, flexSheetEvent);\r\n }\r\n\r\n protected handleEvent(rawValue, item: BaseConstraintsSpreadsheetModel, flexSheetEvent?: any) {\r\n let uo;\r\n if (rawValue !== '') {\r\n const valueAsNumber = +rawValue;\r\n\r\n if (Number.isNaN(valueAsNumber)) {\r\n flexSheetEvent.cancel = true;\r\n return;\r\n }\r\n\r\n uo = this.assignValueToUnitOperation(valueAsNumber, item);\r\n } else {\r\n uo = this.deleteUnitOperationValue(item);\r\n flexSheetEvent.cancel = true;\r\n }\r\n\r\n this.coreService.notifyUnitOperationUpdated(uo, true);\r\n }\r\n\r\n abstract assignValueToUnitOperation(\r\n valueAsNumber: number,\r\n item: BaseConstraintsSpreadsheetModel\r\n ): SuncorUnitOperation;\r\n\r\n abstract deleteUnitOperationValue(item: BaseConstraintsSpreadsheetModel): SuncorUnitOperation;\r\n\r\n protected clearSpreadsheetItems() {\r\n this.items.splice(this.DEFAULT_NUMBER_OF_ROWS, this.items.length - this.DEFAULT_NUMBER_OF_ROWS);\r\n for (let i = 0; i < this.DEFAULT_NUMBER_OF_ROWS; i++) {\r\n this.items[i] = {};\r\n }\r\n }\r\n\r\n addUnitOperation(unitOperation: UnitOperation): void {\r\n if (this.isUnitOperationAllowed(unitOperation)) {\r\n this.addConstraintWithoutRefreshing(unitOperation);\r\n this.grid.collectionView.refresh();\r\n }\r\n }\r\n\r\n protected addConstraintWithoutRefreshing(constraint: ConstraintReportVariable | any, flowsheetOwner?: string) {\r\n const index = this.items.findIndex(u => !u.unitOperationName);\r\n\r\n const newItem = this.toSpreadsheetItem(constraint, flowsheetOwner);\r\n\r\n if (index > -1 && index <= this.DEFAULT_NUMBER_OF_ROWS - 1) {\r\n this.items[index] = newItem;\r\n } else {\r\n this.items.push(newItem);\r\n }\r\n }\r\n\r\n updateConstraintValue(unitOperation: UnitOperation): void {\r\n const noDefinedConstraints: Array = [];\r\n const definedConstraints: Array = [];\r\n let flowsheetOwner = '';\r\n\r\n if (this.isUnitOperationAllowed(unitOperation)) {\r\n if ((unitOperation as any).constraints) {\r\n const { constraints } = (unitOperation as any).constraints as UnitOperationConstraints | MixingConstraints;\r\n for (const id in constraints) {\r\n const constraint = constraints[id];\r\n\r\n if (constraint.constraintValueDefined()) {\r\n this.addConstraintReportVariableToArray(definedConstraints, constraint, unitOperation);\r\n }\r\n\r\n if (!constraint.constraintValueDefined()) {\r\n this.addConstraintReportVariableToArray(noDefinedConstraints, constraint, unitOperation);\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (definedConstraints.length === 0 && noDefinedConstraints.length === 0) {\r\n this.removeAllConstraintItemsByUnitOperationId(unitOperation.id);\r\n }\r\n\r\n for (const cKey in definedConstraints) {\r\n let constraintId: string;\r\n const definedConstraint = definedConstraints[cKey];\r\n if (definedConstraint instanceof ConstraintReportVariable) {\r\n constraintId = definedConstraint.simVarId;\r\n } else {\r\n constraintId = (definedConstraint as MixingConstraintReportVariable).id;\r\n }\r\n\r\n flowsheetOwner = this.assignFlowsheetOwner(definedConstraint.unitOperationId);\r\n const index = this.items.findIndex(i => i.id === constraintId);\r\n if (index < 0) {\r\n if (unitOperation instanceof Mixer) {\r\n if (unitOperation.blendRecipeOption === MixerBlendRecipeOption.EXACT) {\r\n this.removeRangeConstraints(unitOperation.id);\r\n } else {\r\n this.removeExactConstraints(unitOperation.id);\r\n }\r\n } else if (unitOperation instanceof Splitter) {\r\n if (unitOperation.isOptimizable) {\r\n this.removeExactConstraints(unitOperation.id);\r\n } else {\r\n this.removeRangeConstraints(unitOperation.id);\r\n }\r\n }\r\n this.addConstraintWithoutRefreshing(definedConstraint, flowsheetOwner);\r\n }\r\n this.items[index] = this.toSpreadsheetItem(definedConstraint, flowsheetOwner);\r\n flowsheetOwner = '';\r\n }\r\n\r\n for (const ck in noDefinedConstraints) {\r\n let constraintId: string;\r\n const noDefinedConstraint = noDefinedConstraints[ck];\r\n if (noDefinedConstraint instanceof ConstraintReportVariable) {\r\n constraintId = (noDefinedConstraint as ConstraintReportVariable).simVarId;\r\n } else {\r\n constraintId = (noDefinedConstraint as MixingConstraintReportVariable).id;\r\n }\r\n\r\n const index = this.items.findIndex(i => i.id === constraintId);\r\n this.items.splice(index, 1);\r\n }\r\n\r\n if (this.isMixingConstraintsUser(unitOperation) && definedConstraints.length > 0) {\r\n this.removeMixingConstraintsWhenStreamDeleted(definedConstraints as MixingConstraintReportVariable[]);\r\n }\r\n\r\n this.grid.collectionView.refresh();\r\n }\r\n\r\n removeUnitOperation(unitOperation: UnitOperation): void {\r\n const noDefinedConstraints: Array = [];\r\n if (this.isUnitOperationAllowed(unitOperation)) {\r\n if ((unitOperation as any).constraints) {\r\n const { constraints } = (unitOperation as any).constraints as UnitOperationConstraints | MixingConstraints;\r\n for (const id in constraints) {\r\n const constraint = constraints[id];\r\n if (constraint.constraintValueDefined()) {\r\n this.addConstraintReportVariableToArray(noDefinedConstraints, constraint, unitOperation);\r\n }\r\n }\r\n }\r\n\r\n for (const cKey in noDefinedConstraints) {\r\n let constraintId: string;\r\n const noDefinedConstraint = noDefinedConstraints[cKey];\r\n if (noDefinedConstraint instanceof ConstraintReportVariable) {\r\n constraintId = (noDefinedConstraint as ConstraintReportVariable).simVarId;\r\n } else {\r\n constraintId = (noDefinedConstraint as MixingConstraintReportVariable).id;\r\n }\r\n\r\n const index = this.items.findIndex(i => i.id === constraintId);\r\n this.items.splice(index, 1);\r\n }\r\n\r\n this.removeMixingConstraintItemsWhenUnitOperationDeleted(unitOperation.id);\r\n\r\n // keep at least 40 rows/items\r\n if (this.items.length < this.DEFAULT_NUMBER_OF_ROWS) {\r\n this.items.push({});\r\n }\r\n\r\n this.grid.collectionView.refresh();\r\n }\r\n }\r\n\r\n getUnitOperationFlowsheetId(id: string) {\r\n let flowshetId = '';\r\n flowshetId = this.coreService.currentCase.getUnitOperation(id).flowsheetId;\r\n return flowshetId;\r\n }\r\n\r\n assignFlowsheetOwner(id: string) {\r\n const flowsheetOwners = this.flowsheetTreeService.getAllFlowsheetOwners(this.coreService.currentCase);\r\n let flowsheetOwner = '';\r\n flowsheetOwners.forEach(uo => {\r\n if (this.getUnitOperationFlowsheetId(id) === '') {\r\n flowsheetOwner = this.flowsheetTree.root.name;\r\n } else if (this.getUnitOperationFlowsheetId(id) === uo.id) {\r\n flowsheetOwner = uo.name;\r\n }\r\n });\r\n return flowsheetOwner;\r\n }\r\n\r\n isMixingConstraintsUser(unitOperation: UnitOperation): unitOperation is Mixer | Splitter {\r\n return unitOperation instanceof Mixer || unitOperation instanceof Splitter;\r\n }\r\n\r\n removeExactConstraints(unitOperationId: string) {\r\n const constraintModels = this.items.filter(cstr => cstr.unitOperationId === unitOperationId);\r\n const exactConstraintModels = constraintModels.filter(exactConstraint =>\r\n exactConstraint.constraint.includes('Exact')\r\n );\r\n\r\n for (let i = 0; i < exactConstraintModels.length; i++) {\r\n const constraintIdx = this.items.findIndex(x => x.id === exactConstraintModels[i].id);\r\n this.items.splice(constraintIdx, 1);\r\n }\r\n }\r\n\r\n removeRangeConstraints(unitOperationId: string) {\r\n const constraintModels = this.items.filter(cstr => cstr.unitOperationId === unitOperationId);\r\n const rangeConstraintModels = constraintModels.filter(\r\n rangeConstraint =>\r\n rangeConstraint.constraint.includes('Minimum') || rangeConstraint.constraint.includes('Maximum')\r\n );\r\n\r\n for (let i = 0; i < rangeConstraintModels.length; i++) {\r\n const constraintIdx = this.items.findIndex(x => x.id === rangeConstraintModels[i].id);\r\n this.items.splice(constraintIdx, 1);\r\n }\r\n }\r\n\r\n removeAllConstraintItemsByUnitOperationId(unitOperationId: string) {\r\n const constraintModels = this.items.filter(cstr => cstr.unitOperationId === unitOperationId);\r\n\r\n for (let i = 0; i < constraintModels.length; i++) {\r\n const constraintIdx = this.items.findIndex(x => x.id === constraintModels[i].id);\r\n this.items.splice(constraintIdx, 1);\r\n }\r\n }\r\n\r\n assignNewValuesForRangeConstraints(\r\n unitOperation: Mixer | Splitter,\r\n item: BaseConstraintsSpreadsheetModel,\r\n value: number\r\n ) {\r\n const { constraints } = unitOperation.constraints;\r\n const unitOpConstraint = constraints[item.id];\r\n let ratioVariable: RangeDistributionRatioVariable;\r\n\r\n if (unitOperation instanceof Mixer) {\r\n ratioVariable = unitOperation.findMixingRatioVariable(unitOpConstraint.sourceUnitOperationId);\r\n } else if (unitOperation instanceof Splitter) {\r\n ratioVariable = unitOperation.findDistributionRatioVariable(unitOpConstraint.sourceUnitOperationId);\r\n }\r\n unitOpConstraint.constraintValue = value;\r\n\r\n if (item.constraint.includes('Minimum')) {\r\n ratioVariable.minimumValue = value;\r\n } else if (item.constraint.includes('Maximum')) {\r\n ratioVariable.maximumValue = value;\r\n } else {\r\n ratioVariable.value = value;\r\n }\r\n }\r\n\r\n addConstraintReportVariableToArray(\r\n constraintArray: Array,\r\n constraint: SuncorConstraint | RangeDistributionConstraint,\r\n unitOperation: UnitOperation\r\n ) {\r\n if (constraint instanceof SuncorConstraint) {\r\n constraintArray.push(ConstraintReportVariable.create(unitOperation, constraint.constraint));\r\n } else {\r\n constraintArray.push(MixingConstraintReportVariable.create(unitOperation, constraint));\r\n }\r\n }\r\n\r\n removeMixingConstraintItemsWhenUnitOperationDeleted(uoId: string) {\r\n const streamsByInletUnitOperation = this.coreService.currentCase.getStreamsByInletUnitOperationId(uoId);\r\n const streamsByOutletUnitOperation = this.coreService.currentCase.getStreamsByOutletUnitOperationId(uoId);\r\n\r\n streamsByOutletUnitOperation.forEach(s => {\r\n if (s.inletUnitOperation instanceof Splitter) {\r\n this.removeListOfMixingConstraintsFromItemsList(uoId, s.inletUnitOperation.constraints.constraints);\r\n }\r\n });\r\n\r\n streamsByInletUnitOperation.forEach(s => {\r\n if (s.outletUnitOperation instanceof Mixer) {\r\n this.removeListOfMixingConstraintsFromItemsList(uoId, s.outletUnitOperation.constraints.constraints);\r\n }\r\n });\r\n }\r\n\r\n removeMixingConstraintsWhenStreamDeleted(definedConstraints: Array) {\r\n const constraintsToDelete: BaseConstraintsSpreadsheetModel[] = [];\r\n this.items.forEach(item => {\r\n if (Object.keys(item).length > 0 && item.unitOperationId === definedConstraints[0].unitOperationId) {\r\n const constraintReportVar = definedConstraints.find(\r\n cstr => cstr.name === item.constraint && cstr.unitOperationId === item.unitOperationId\r\n );\r\n\r\n if (!constraintReportVar) {\r\n constraintsToDelete.push(item);\r\n }\r\n }\r\n });\r\n\r\n constraintsToDelete.forEach(cstr => {\r\n const constraintItemIdx = this.items.findIndex(i => i.id === cstr.id);\r\n this.items.splice(constraintItemIdx, 1);\r\n });\r\n }\r\n\r\n removeListOfMixingConstraintsFromItemsList(\r\n unitOperationId: string,\r\n constraintList: { [p: string]: RangeDistributionConstraint }\r\n ) {\r\n const constraintsToDelete = Object.values(constraintList).filter(c => c.sourceUnitOperationId === unitOperationId);\r\n\r\n constraintsToDelete.forEach(constraint => {\r\n const constraintItemIdx = this.items.findIndex(i => i.id === constraint.id);\r\n this.items.splice(constraintItemIdx, 1);\r\n });\r\n }\r\n}\r\n","import { DataType } from '@grapecity/wijmo';\r\nimport { CoreService } from '../core.service';\r\nimport { AbstractConstraintsHandler } from './abstract-constraints-handler';\r\nimport { SuncorUnitOperation } from '../../_models/_unit-operations/suncor-unit-operation';\r\nimport { FlexSheetColumn } from '../../_models/wijmo/flex-sheet-column';\r\nimport { BaseConstraintsSpreadsheetModel } from '../../_models/constraints-spreadsheet/base-constraints-spreadsheet-model';\r\nimport { Upgrader } from '../../_models/_unit-operations/upgrader';\r\nimport { ThirdPartyRefinery } from '../../_models/_unit-operations/third-party-refinery';\r\nimport { Pipe } from '../../_models/_unit-operations/pipe';\r\nimport { BitumenConversion } from '../../_models/_unit-operations/bitumen-conversion';\r\nimport { Refinery } from '../../_models/_unit-operations/refinery';\r\nimport { DiluentSource } from '../../_models/_unit-operations/diluent-source';\r\nimport { MineSource } from '../../_models/_unit-operations/mine-source';\r\nimport { SagdSource } from '../../_models/_unit-operations/sagd-source';\r\nimport { FlowsheetTreeService } from '../sub-flowsheet/flowsheet-tree/flowsheet-tree.service';\r\nimport { NumberToUnitConverter } from '../number-to-unit-converter.service';\r\nimport { UnitOperation } from '../../_models';\r\nimport { isEmptyValue } from '../../_utils/utils';\r\nimport { Mixer } from '../../_models/_unit-operations/mixer';\r\nimport { Splitter } from '../../_models/_unit-operations/splitter';\r\nimport { BaseConstraintReportVariable } from '../../_models/_reports/_optimization-settings-table/base-constraint-report-variable';\r\n\r\nexport class ConstraintsSheetHandler extends AbstractConstraintsHandler {\r\n protected readonly SHEET_INDEX: number;\r\n constraints: Array = [];\r\n\r\n constructor(\r\n coreService: CoreService,\r\n flowsheetTreeService: FlowsheetTreeService,\r\n private nuc: NumberToUnitConverter\r\n ) {\r\n super(coreService, flowsheetTreeService);\r\n }\r\n\r\n isUnitOperationAllowed(\r\n unitOperation: UnitOperation\r\n ): unitOperation is\r\n | Upgrader\r\n | BitumenConversion\r\n | Refinery\r\n | ThirdPartyRefinery\r\n | Pipe\r\n | DiluentSource\r\n | MineSource\r\n | SagdSource\r\n | Mixer\r\n | Splitter {\r\n if (isEmptyValue(unitOperation.flowsheetId)) {\r\n return (\r\n unitOperation instanceof Upgrader ||\r\n unitOperation instanceof ThirdPartyRefinery ||\r\n unitOperation instanceof Pipe ||\r\n unitOperation instanceof BitumenConversion ||\r\n unitOperation instanceof Refinery ||\r\n unitOperation instanceof DiluentSource ||\r\n unitOperation instanceof MineSource ||\r\n unitOperation instanceof SagdSource ||\r\n unitOperation instanceof Mixer ||\r\n unitOperation instanceof Splitter\r\n );\r\n }\r\n\r\n return false;\r\n }\r\n\r\n // TODO: There should be a type function, getUnitOperation or getConstraint maybe?\r\n\r\n override clearResults(): void {\r\n this.grid.collectionView.refresh();\r\n }\r\n\r\n private getUnitOperation(item: BaseConstraintsSpreadsheetModel): SuncorUnitOperation {\r\n const unitOperation = this.coreService.currentCase.getUnitOperation(item.unitOperationId) as SuncorUnitOperation;\r\n\r\n if (this.isUnitOperationAllowed(unitOperation)) {\r\n return unitOperation;\r\n }\r\n\r\n throw new Error(`A non-allowed unit operation was detected ${unitOperation.category} - ${unitOperation.name}`);\r\n }\r\n\r\n assignValueToUnitOperation(valueAsNumber: number, item: BaseConstraintsSpreadsheetModel): SuncorUnitOperation {\r\n const uo = this.getUnitOperation(item);\r\n\r\n if (this.isMixingConstraintsUser(uo)) {\r\n this.assignNewValuesForRangeConstraints(uo, item, valueAsNumber);\r\n } else {\r\n const simVar = uo.getSimulationVariableSafe(item.id);\r\n simVar.value = this.nuc.convertDefaultToInternalUnit(valueAsNumber, simVar.quantity);\r\n }\r\n return uo;\r\n }\r\n\r\n deleteUnitOperationValue(item: BaseConstraintsSpreadsheetModel): SuncorUnitOperation {\r\n const uo = this.getUnitOperation(item);\r\n\r\n if (this.isMixingConstraintsUser(uo)) {\r\n this.assignNewValuesForRangeConstraints(uo, item, null);\r\n } else {\r\n const simVar = uo.getSimulationVariableSafe(item.id);\r\n simVar.value = null;\r\n }\r\n return uo;\r\n }\r\n\r\n protected getColumnsConfiguration(): FlexSheetColumn[] {\r\n return [\r\n {\r\n header: 'Active',\r\n binding: 'isActive',\r\n dataType: DataType.Boolean,\r\n width: 120,\r\n isReadOnly: false,\r\n },\r\n {\r\n header: 'Unit Name',\r\n binding: 'unitOperationName',\r\n dataType: DataType.String,\r\n width: 200,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: 'Constraint',\r\n binding: 'constraint',\r\n dataType: DataType.String,\r\n width: 200,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: 'Constraint Value',\r\n binding: 'constraintValue',\r\n dataType: DataType.Number,\r\n width: 120,\r\n },\r\n {\r\n header: 'Current Value',\r\n binding: 'currentValue',\r\n dataType: DataType.Number,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: 'Unit',\r\n binding: 'unit',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: 'Flowsheet Owner',\r\n binding: 'flowsheetOwner',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: '',\r\n binding: '',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: '',\r\n binding: '',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: '',\r\n binding: '',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: '',\r\n binding: '',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: '',\r\n binding: '',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: '',\r\n binding: '',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: '',\r\n binding: '',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: '',\r\n binding: '',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: '',\r\n binding: '',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: '',\r\n binding: '',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: '',\r\n binding: '',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: '',\r\n binding: '',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: '',\r\n binding: '',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: '',\r\n binding: '',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: '',\r\n binding: '',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: '',\r\n binding: '',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: '',\r\n binding: '',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: '',\r\n binding: '',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n ];\r\n }\r\n}\r\n","import { DataType } from '@grapecity/wijmo';\r\nimport { AbstractConstraintsHandler } from './abstract-constraints-handler';\r\nimport { BaseConstraintsSpreadsheetModel } from '../../_models/constraints-spreadsheet/base-constraints-spreadsheet-model';\r\nimport { SuncorUnitOperation } from '../../_models/_unit-operations/suncor-unit-operation';\r\nimport { FlexSheetColumn } from '../../_models/wijmo/flex-sheet-column';\r\nimport { UnitOperation } from '../../_models';\r\nimport { DCU } from '../../_models/_unit-operations/dcu';\r\nimport { DRU } from '../../_models/_unit-operations/dru';\r\nimport { VAC } from '../../_models/_unit-operations/vac';\r\nimport { Hydrotreater } from '../../_models/_unit-operations/hydrotreater';\r\nimport { CommodityTank } from '../../_models/_unit-operations/commodity-tank';\r\nimport { Pipe } from '../../_models/_unit-operations/pipe';\r\nimport { Hydrocracker } from '../../_models/_unit-operations/hydrocracker';\r\nimport { FluidCoker } from '../../_models/_unit-operations/fluid-coker';\r\nimport { HgoHydrotreater } from '../../_models/_unit-operations/hgo-hydrotreater';\r\nimport { LgoHydrotreater } from '../../_models/_unit-operations/lgo-hydrotreater';\r\nimport { WaterTurbine } from '../../_models/_unit-operations/utilties/water-turbine';\r\nimport { WaterSink } from '../../_models/_unit-operations/utilties/water-sink';\r\nimport { WaterBoiler } from '../../_models/_unit-operations/utilties/water-boiler';\r\nimport { WaterCogeneration } from '../../_models/_unit-operations/utilties/water-cogeneration';\r\nimport { WaterValve } from '../../_models/_unit-operations/utilties/water-valve';\r\nimport { WaterSinkImport } from '../../_models/_unit-operations/utilties/water-sink-import';\r\nimport { FuelGasSinkImport } from '../../_models/_unit-operations/fuel-gas/fuel-gas-sink-import';\r\nimport { CoreService } from '../core.service';\r\nimport { FlowsheetTreeService } from '../sub-flowsheet/flowsheet-tree/flowsheet-tree.service';\r\nimport { NumberToUnitConverter } from '../number-to-unit-converter.service';\r\nimport { isEmptyValue } from '../../_utils/utils';\r\nimport { Mixer } from '../../_models/_unit-operations/mixer';\r\nimport { Splitter } from '../../_models/_unit-operations/splitter';\r\n\r\nexport class UpgraderConstraintsSheetHandler extends AbstractConstraintsHandler {\r\n protected readonly SHEET_INDEX: number;\r\n\r\n constructor(\r\n coreService: CoreService,\r\n flowsheetTreeService: FlowsheetTreeService,\r\n private nuc: NumberToUnitConverter\r\n ) {\r\n super(coreService, flowsheetTreeService);\r\n }\r\n\r\n isUnitOperationAllowed(\r\n unitOperation: UnitOperation\r\n ): unitOperation is\r\n | DCU\r\n | DRU\r\n | VAC\r\n | Hydrotreater\r\n | CommodityTank\r\n | Pipe\r\n | Hydrocracker\r\n | FluidCoker\r\n | HgoHydrotreater\r\n | LgoHydrotreater\r\n | WaterTurbine\r\n | WaterSink\r\n | WaterBoiler\r\n | WaterCogeneration\r\n | WaterValve\r\n | WaterSinkImport\r\n | FuelGasSinkImport\r\n | Mixer\r\n | Splitter {\r\n if (!isEmptyValue(unitOperation.flowsheetId)) {\r\n return (\r\n unitOperation instanceof DCU ||\r\n unitOperation instanceof DRU ||\r\n unitOperation instanceof VAC ||\r\n unitOperation instanceof Hydrotreater ||\r\n unitOperation instanceof CommodityTank ||\r\n unitOperation instanceof Pipe ||\r\n unitOperation instanceof Hydrocracker ||\r\n unitOperation instanceof FluidCoker ||\r\n unitOperation instanceof HgoHydrotreater ||\r\n unitOperation instanceof LgoHydrotreater ||\r\n unitOperation instanceof WaterTurbine ||\r\n unitOperation instanceof WaterSink ||\r\n unitOperation instanceof WaterBoiler ||\r\n unitOperation instanceof WaterCogeneration ||\r\n unitOperation instanceof WaterValve ||\r\n unitOperation instanceof WaterSinkImport ||\r\n unitOperation instanceof FuelGasSinkImport ||\r\n unitOperation instanceof Mixer ||\r\n unitOperation instanceof Splitter\r\n );\r\n }\r\n\r\n return false;\r\n }\r\n\r\n override clearResults(): void {\r\n for (const i of this.items) {\r\n const item = i as BaseConstraintsSpreadsheetModel;\r\n }\r\n\r\n this.grid.collectionView.refresh();\r\n }\r\n\r\n private getUnitOperation(item: BaseConstraintsSpreadsheetModel): SuncorUnitOperation {\r\n const unitOperation = this.coreService.currentCase.getUnitOperation(item.unitOperationId) as SuncorUnitOperation;\r\n\r\n if (this.isUnitOperationAllowed(unitOperation)) {\r\n return unitOperation;\r\n }\r\n\r\n throw new Error(`A non-allowed unit operation was detected ${unitOperation.category} - ${unitOperation.name}`);\r\n }\r\n\r\n assignValueToUnitOperation(valueAsNumber: number, item: BaseConstraintsSpreadsheetModel): SuncorUnitOperation {\r\n const uo = this.getUnitOperation(item);\r\n\r\n if (this.isMixingConstraintsUser(uo)) {\r\n this.assignNewValuesForRangeConstraints(uo, item, valueAsNumber);\r\n } else {\r\n const simVar = uo.getSimulationVariableSafe(item.id);\r\n simVar.value = this.nuc.convertDefaultToInternalUnit(valueAsNumber, simVar.quantity);\r\n }\r\n\r\n return uo;\r\n }\r\n\r\n deleteUnitOperationValue(item: BaseConstraintsSpreadsheetModel): SuncorUnitOperation {\r\n const uo = this.getUnitOperation(item);\r\n\r\n if (this.isMixingConstraintsUser(uo)) {\r\n this.assignNewValuesForRangeConstraints(uo, item, null);\r\n } else {\r\n const simVar = uo.getSimulationVariableSafe(item.id);\r\n simVar.value = null;\r\n }\r\n\r\n return uo;\r\n }\r\n\r\n protected getColumnsConfiguration(): FlexSheetColumn[] {\r\n return [\r\n {\r\n header: 'Active',\r\n binding: 'isActive',\r\n dataType: DataType.Boolean,\r\n width: 120,\r\n isReadOnly: false,\r\n },\r\n {\r\n header: 'Unit Name',\r\n binding: 'unitOperationName',\r\n dataType: DataType.String,\r\n width: 200,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: 'Constraint',\r\n binding: 'constraint',\r\n dataType: DataType.String,\r\n width: 200,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: 'Constraint Value',\r\n binding: 'constraintValue',\r\n dataType: DataType.Number,\r\n width: 120,\r\n },\r\n {\r\n header: 'Current Value',\r\n binding: 'currentValue',\r\n dataType: DataType.Number,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: 'Unit',\r\n binding: 'unit',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: 'Flowsheet Owner',\r\n binding: 'flowsheetOwner',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: '',\r\n binding: '',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: '',\r\n binding: '',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: '',\r\n binding: '',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: '',\r\n binding: '',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: '',\r\n binding: '',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: '',\r\n binding: '',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: '',\r\n binding: '',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: '',\r\n binding: '',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: '',\r\n binding: '',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: '',\r\n binding: '',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: '',\r\n binding: '',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: '',\r\n binding: '',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: '',\r\n binding: '',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: '',\r\n binding: '',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: '',\r\n binding: '',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: '',\r\n binding: '',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: '',\r\n binding: '',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: '',\r\n binding: '',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n ];\r\n }\r\n}\r\n","import { DataType } from '@grapecity/wijmo';\r\nimport { AbstractConstraintsHandler } from './abstract-constraints-handler';\r\nimport { BaseConstraintsSpreadsheetModel } from '../../_models/constraints-spreadsheet/base-constraints-spreadsheet-model';\r\nimport { FlexSheetColumn } from '../../_models/wijmo/flex-sheet-column';\r\nimport { UnitOperation } from '../../_models';\r\nimport { SuncorUnitOperation } from '../../_models/_unit-operations/suncor-unit-operation';\r\nimport { CoreService } from '../core.service';\r\nimport { FlowsheetTreeService } from '../sub-flowsheet/flowsheet-tree/flowsheet-tree.service';\r\nimport { NumberToUnitConverter } from '../number-to-unit-converter.service';\r\nimport { BitumenConversion } from '../../_models/_unit-operations/bitumen-conversion';\r\nimport { Splitter } from '../../_models/_unit-operations/splitter';\r\nimport { Mixer } from '../../_models/_unit-operations/mixer';\r\nimport { Extraction } from '../../_models/_unit-operations/extraction';\r\nimport { isEmptyValue } from '../../_utils/utils';\r\n\r\nexport class ExtractionConstraintsSheetHandler extends AbstractConstraintsHandler {\r\n protected readonly SHEET_INDEX: number;\r\n\r\n constructor(\r\n coreService: CoreService,\r\n flowsheetTreeService: FlowsheetTreeService,\r\n private nuc: NumberToUnitConverter\r\n ) {\r\n super(coreService, flowsheetTreeService);\r\n }\r\n\r\n protected isUnitOperationAllowed(\r\n unitOperation: UnitOperation\r\n ): unitOperation is BitumenConversion | Splitter | Mixer {\r\n const flowsheet = this.coreService.currentCase.getFlowsheet(unitOperation.flowsheetId);\r\n if (isEmptyValue(flowsheet)) return false;\r\n\r\n const flowsheetOwner = this.coreService.currentCase.getUnitOperation(flowsheet.unitOperationId);\r\n if (flowsheetOwner instanceof Extraction) {\r\n return (\r\n unitOperation instanceof BitumenConversion ||\r\n unitOperation instanceof Splitter ||\r\n unitOperation instanceof Mixer\r\n );\r\n }\r\n\r\n return false;\r\n }\r\n\r\n override clearResults(): void {\r\n this.grid.collectionView.refresh();\r\n }\r\n\r\n private getUnitOperation(item: BaseConstraintsSpreadsheetModel): SuncorUnitOperation {\r\n const unitOperation = this.coreService.currentCase.getUnitOperation(item.unitOperationId) as SuncorUnitOperation;\r\n\r\n if (this.isUnitOperationAllowed(unitOperation)) {\r\n return unitOperation;\r\n }\r\n\r\n throw new Error(`A non-allowed unit operation was detected ${unitOperation.category} - ${unitOperation.name}`);\r\n }\r\n\r\n assignValueToUnitOperation(valueAsNumber: number, item: BaseConstraintsSpreadsheetModel): SuncorUnitOperation {\r\n const uo = this.getUnitOperation(item);\r\n if (this.isMixingConstraintsUser(uo)) {\r\n this.assignNewValuesForRangeConstraints(uo, item, valueAsNumber);\r\n } else {\r\n uo.getSimulationVariableSafe(item.id).value = this.nuc.convertDefaultToInternalUnit(\r\n valueAsNumber,\r\n uo.getSimulationVariableSafe(item.id).quantity\r\n );\r\n }\r\n\r\n return uo;\r\n }\r\n\r\n deleteUnitOperationValue(item: BaseConstraintsSpreadsheetModel): SuncorUnitOperation {\r\n const uo = this.getUnitOperation(item);\r\n\r\n if (this.isMixingConstraintsUser(uo)) {\r\n this.assignNewValuesForRangeConstraints(uo, item, null);\r\n } else {\r\n uo.getSimulationVariableSafe(item.id).value = null;\r\n }\r\n\r\n return uo;\r\n }\r\n\r\n protected getColumnsConfiguration(): FlexSheetColumn[] {\r\n return [\r\n {\r\n header: 'Active',\r\n binding: 'isActive',\r\n dataType: DataType.Boolean,\r\n width: 120,\r\n isReadOnly: false,\r\n },\r\n {\r\n header: 'Unit Name',\r\n binding: 'unitOperationName',\r\n dataType: DataType.String,\r\n width: 200,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: 'Constraint',\r\n binding: 'constraint',\r\n dataType: DataType.String,\r\n width: 200,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: 'Constraint Value',\r\n binding: 'constraintValue',\r\n dataType: DataType.Number,\r\n width: 120,\r\n },\r\n {\r\n header: 'Current Value',\r\n binding: 'currentValue',\r\n dataType: DataType.Number,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: 'Unit',\r\n binding: 'unit',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: 'Flowsheet Owner',\r\n binding: 'flowsheetOwner',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: '',\r\n binding: '',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: '',\r\n binding: '',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: '',\r\n binding: '',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: '',\r\n binding: '',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: '',\r\n binding: '',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: '',\r\n binding: '',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: '',\r\n binding: '',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: '',\r\n binding: '',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: '',\r\n binding: '',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: '',\r\n binding: '',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: '',\r\n binding: '',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: '',\r\n binding: '',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: '',\r\n binding: '',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: '',\r\n binding: '',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: '',\r\n binding: '',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: '',\r\n binding: '',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: '',\r\n binding: '',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: '',\r\n binding: '',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n ];\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport * as wjcSheet from '@grapecity/wijmo.grid.sheet';\r\nimport { AbstractConstraintsHandler } from './abstract-constraints-handler';\r\nimport { CoreService } from '../core.service';\r\nimport { ConstraintsSheetHandler } from './constraints-sheet-handler';\r\nimport { Case, UnitOperation } from '../../_models';\r\nimport { SuncorUnitOperation } from '../../_models/_unit-operations/suncor-unit-operation';\r\nimport { SubFlowsheetService } from '../sub-flowsheet/sub-flowsheet.service';\r\nimport { FlowsheetTreeService } from '../sub-flowsheet/flowsheet-tree/flowsheet-tree.service';\r\nimport { NumberToUnitConverter } from '../number-to-unit-converter.service';\r\nimport { UpgraderConstraintsSheetHandler } from './upgrader-constraints-sheet-handler';\r\nimport { ExtractionConstraintsSheetHandler } from './extraction-constraints-sheet-handler';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ConstraintsSpreadsheetService {\r\n private spreadsheet: wjcSheet.FlexSheet;\r\n\r\n constraintsSheetHandler: ConstraintsSheetHandler;\r\n upgraderConstraintsSheetHandler: UpgraderConstraintsSheetHandler;\r\n extractionConstraintsSheetHandler: ExtractionConstraintsSheetHandler;\r\n\r\n sheetHandlers: AbstractConstraintsHandler[];\r\n\r\n constructor(\r\n private coreService: CoreService,\r\n private subFlowsheetService: SubFlowsheetService,\r\n private flowsheetTreeService: FlowsheetTreeService,\r\n private nuc: NumberToUnitConverter\r\n ) {}\r\n\r\n init(spreadsheet: wjcSheet.FlexSheet) {\r\n this.spreadsheet = spreadsheet;\r\n this.constraintsSheetHandler = new ConstraintsSheetHandler(this.coreService, this.flowsheetTreeService, this.nuc);\r\n this.constraintsSheetHandler.init(this.spreadsheet, 'Constraints - Level 1');\r\n\r\n this.upgraderConstraintsSheetHandler = new UpgraderConstraintsSheetHandler(\r\n this.coreService,\r\n this.flowsheetTreeService,\r\n this.nuc\r\n );\r\n this.upgraderConstraintsSheetHandler.init(this.spreadsheet, 'Upgrader Constraints');\r\n\r\n this.extractionConstraintsSheetHandler = new ExtractionConstraintsSheetHandler(\r\n this.coreService,\r\n this.flowsheetTreeService,\r\n this.nuc\r\n );\r\n this.extractionConstraintsSheetHandler.init(this.spreadsheet, 'Extraction Constraints');\r\n\r\n this.sheetHandlers = [\r\n this.constraintsSheetHandler,\r\n this.upgraderConstraintsSheetHandler,\r\n this.extractionConstraintsSheetHandler,\r\n ];\r\n\r\n spreadsheet.beginningEdit.addHandler((ss: wjcSheet.FlexSheet, flexSheetEvent: any) => {\r\n if (flexSheetEvent.data.code === 'Backspace' || flexSheetEvent.data.code === 'Delete') {\r\n this.sheetHandlers.forEach(sh => sh.handleDeleteEvent(ss, flexSheetEvent));\r\n }\r\n });\r\n\r\n spreadsheet.cellEditEnding.addHandler((ss: wjcSheet.FlexSheet, flexSheetEvent: any) => {\r\n this.sheetHandlers.forEach(sh => sh.handleEditEvent(ss, flexSheetEvent));\r\n });\r\n\r\n spreadsheet.pastingCell.addHandler((ss: wjcSheet.FlexSheet, flexSheetEvent: any) => {\r\n this.sheetHandlers.forEach(sh => sh.handlePasteEvent(ss, flexSheetEvent));\r\n });\r\n }\r\n\r\n caseToSpreadsheet(c: Case): void {\r\n this.sheetHandlers.forEach(sh => sh.caseToSpreadsheet(c));\r\n }\r\n\r\n addUnitOperation(unitOperation: SuncorUnitOperation): void {\r\n this.sheetHandlers.forEach(sh => sh.addUnitOperation(unitOperation));\r\n }\r\n\r\n clearResults(): void {\r\n this.sheetHandlers.forEach(sh => sh.clearResults());\r\n }\r\n\r\n updateConstraintValue(uo: UnitOperation): void {\r\n this.sheetHandlers.forEach(sh => sh.updateConstraintValue(uo));\r\n }\r\n\r\n removeUnitOperation(unitOperation: SuncorUnitOperation): void {\r\n this.sheetHandlers.forEach(sh => sh.removeUnitOperation(unitOperation));\r\n }\r\n}\r\n","import * as wjGrid from '@grapecity/wijmo.grid';\r\nimport * as wjcSheet from '@grapecity/wijmo.grid.sheet';\r\n\r\nimport { CollectionView } from '@grapecity/wijmo';\r\nimport { SuncorUnitOperation } from '../../_models/_unit-operations/suncor-unit-operation';\r\nimport { FlexSheetColumn } from '../../_models/wijmo/flex-sheet-column';\r\nimport { Case, UnitOperation } from '../../_models';\r\nimport { BaseUtilitySpreadsheetModel } from '../../_models/utilities-spreadsheet/base-utility-spreadsheet-model';\r\nimport { Upgrader } from '../../_models/_unit-operations/upgrader';\r\nimport { CoreService } from '../core.service';\r\nimport { SpreadsheetTitle } from '../../_config/spreadsheet/spreadsheet-title.enum';\r\n\r\nexport abstract class AbstractUtilitiesHandler {\r\n protected items: BaseUtilitySpreadsheetModel[];\r\n protected grid: wjGrid.FlexGrid;\r\n protected readonly DEFAULT_NUMBER_OF_ROWS = 40;\r\n sheetName: string;\r\n sheetIndex: number;\r\n ownerUnitOperationId: string;\r\n\r\n protected constructor(protected coreService: CoreService) {}\r\n\r\n abstract isUnitOperationAllowed(unitOperation: UnitOperation): boolean;\r\n\r\n protected abstract toSpreadsheetItem(\r\n unitOperation: UnitOperation,\r\n alternateName?: string\r\n ): BaseUtilitySpreadsheetModel;\r\n\r\n abstract clearResults(): void;\r\n\r\n protected abstract getColumnsConfiguration(): FlexSheetColumn[];\r\n\r\n abstract addTotal(upgrader: Upgrader): void;\r\n\r\n init(spreadsheet: wjcSheet.FlexSheet, sheetName: string, sheetIndex: number) {\r\n this.grid = new wjGrid.FlexGrid(document.createElement('div'), {\r\n autoGenerateColumns: false,\r\n columns: this.getColumnsConfiguration(),\r\n frozenRows: 1,\r\n frozenColumns: 1,\r\n });\r\n\r\n this.items = [];\r\n this.clearSpreadsheetItems();\r\n\r\n const data = this.createCollectionView();\r\n\r\n spreadsheet.addBoundSheet(sheetName, data, sheetIndex, this.grid);\r\n this.sheetName = sheetName;\r\n }\r\n\r\n protected createCollectionView() {\r\n return new CollectionView(this.items);\r\n }\r\n\r\n caseToSpreadsheet(c: Case, upgOwner: Upgrader): void {\r\n this.clearSpreadsheetItems();\r\n\r\n // eslint-disable-next-line guard-for-in\r\n for (const id in c.unitOperationPool) {\r\n const uo = c.unitOperationPool[id] as SuncorUnitOperation;\r\n if (this.isUnitOperationAllowed(uo)) {\r\n this.addUnitOperationWithoutRefreshing(uo);\r\n }\r\n }\r\n\r\n if (c.isSolved) {\r\n this.addTotal(upgOwner);\r\n }\r\n\r\n this.grid.collectionView.refresh();\r\n }\r\n\r\n handleEditEvent(spreadsheet: wjcSheet.FlexSheet, flexSheetEvent: any) {\r\n if (spreadsheet.selectedSheet.name !== this.sheetName) {\r\n return;\r\n }\r\n\r\n const item = this.items[flexSheetEvent.row - 1];\r\n if (!item.id || item.unitOperationName === 'Total') {\r\n flexSheetEvent.cancel = true;\r\n return;\r\n }\r\n\r\n if (!spreadsheet.activeEditor.value) {\r\n flexSheetEvent.cancel = true;\r\n return;\r\n }\r\n\r\n this.handleEvent(spreadsheet.activeEditor.value, item, flexSheetEvent);\r\n }\r\n\r\n handlePasteEvent(spreadsheet: wjcSheet.FlexSheet, flexSheetEvent: any): void {\r\n if (spreadsheet.selectedSheet.name !== this.sheetName) {\r\n return;\r\n }\r\n\r\n const item = this.items[flexSheetEvent.row - 1];\r\n if (!item.id || item.unitOperationName === 'Total') {\r\n flexSheetEvent.cancel = true;\r\n return;\r\n }\r\n\r\n if (!flexSheetEvent.data) {\r\n flexSheetEvent.cancel = true;\r\n return;\r\n }\r\n\r\n this.handleEvent(flexSheetEvent.data, item, flexSheetEvent);\r\n }\r\n\r\n protected handleEvent(rawValue, item: BaseUtilitySpreadsheetModel, flexSheetEvent: any) {\r\n const valueAsNumber = +rawValue;\r\n\r\n if (Number.isNaN(valueAsNumber)) {\r\n flexSheetEvent.cancel = true;\r\n return;\r\n }\r\n\r\n const uo = this.assignValueToUnitOperation(valueAsNumber, item, flexSheetEvent);\r\n\r\n if (uo) {\r\n this.coreService.notifyUnitOperationUpdated(uo, true);\r\n }\r\n }\r\n\r\n abstract assignValueToUnitOperation(\r\n valueAsNumber: number,\r\n item: BaseUtilitySpreadsheetModel,\r\n flexSheetEvent: any\r\n ): SuncorUnitOperation | undefined;\r\n\r\n protected clearSpreadsheetItems() {\r\n this.items.splice(this.DEFAULT_NUMBER_OF_ROWS, this.items.length - this.DEFAULT_NUMBER_OF_ROWS);\r\n for (let i = 0; i < this.DEFAULT_NUMBER_OF_ROWS; i++) {\r\n this.items[i] = {};\r\n }\r\n }\r\n\r\n addUnitOperation(unitOperation: SuncorUnitOperation): void {\r\n if (this.isUnitOperationAllowed(unitOperation)) {\r\n this.addUnitOperationWithoutRefreshing(unitOperation);\r\n this.grid.collectionView.refresh();\r\n }\r\n }\r\n\r\n protected addUnitOperationWithoutRefreshing(unitOperation: UnitOperation) {\r\n const index = this.items.findIndex(u => !u.unitOperationName);\r\n\r\n const newItem = this.toSpreadsheetItem(unitOperation);\r\n\r\n if (index > -1 && index <= this.DEFAULT_NUMBER_OF_ROWS - 1) {\r\n this.items[index] = newItem;\r\n } else {\r\n this.items.push(newItem);\r\n }\r\n }\r\n\r\n updateUnitOperation(unitOperation: SuncorUnitOperation): void {\r\n if (this.isUnitOperationAllowed(unitOperation)) {\r\n const index = this.items.findIndex(i => i.id === unitOperation.id);\r\n this.items[index] = this.toSpreadsheetItem(unitOperation);\r\n this.grid.collectionView.refresh();\r\n }\r\n }\r\n\r\n removeUnitOperation(unitOperation: SuncorUnitOperation): void {\r\n if (this.isUnitOperationAllowed(unitOperation)) {\r\n const index = this.items.findIndex(i => i.id === unitOperation.id);\r\n this.items.splice(index, 1);\r\n\r\n // keep at least 40 rows/items\r\n if (this.items.length < this.DEFAULT_NUMBER_OF_ROWS) {\r\n this.items.push({});\r\n }\r\n\r\n this.grid.collectionView.refresh();\r\n }\r\n }\r\n\r\n belongsToUnitOperation(id: string, sheetType: SpreadsheetTitle) {\r\n return sheetType\r\n ? this.ownerUnitOperationId === id && this.sheetName.includes(sheetType)\r\n : this.ownerUnitOperationId === id;\r\n }\r\n}\r\n","export enum SteamSheetItemType {\r\n HYDROCARBON = 'hydrocarbon',\r\n UTILITIES_TITLE = 'utilities-title',\r\n TOTAL = 'total',\r\n}\r\n","export enum FlowsheetType {\r\n HYDROCARBON = 'hydrocarbon',\r\n UTILITIES = 'utilities',\r\n}\r\n","import { NumberToUnitConverter } from '../number-to-unit-converter.service';\r\nimport { SteamSheetItemType } from '../../_config/spreadsheet/steam-sheet-item-type.enum';\r\nimport { FlowsheetType } from '../../_config/flowsheet-type.enum';\r\nimport { unitOperationsConfig } from '../../_config/unit-operations.config';\r\nimport { UtilitySteamSpreadsheetModel } from '../../_models/utilities-spreadsheet/utility-steam-spreadsheet-model';\r\nimport { UnitOperation } from '../../_models';\r\nimport { BaseUtilitySpreadsheetModel } from '../../_models/utilities-spreadsheet/base-utility-spreadsheet-model';\r\nimport { SteamUseUnitOperation } from '../../_models/_unit-operations/steam-use-unit-operation';\r\nimport { Upgrader } from '../../_models/_unit-operations/upgrader';\r\nimport { WaterBoiler } from '../../_models/_unit-operations/utilties/water-boiler';\r\nimport { Quantity } from '../../_config/quantity.enum';\r\nimport { DRU } from '../../_models/_unit-operations/dru';\r\nimport { VAC } from '../../_models/_unit-operations/vac';\r\nimport { DCU } from '../../_models/_unit-operations/dcu';\r\nimport { Hydrocracker } from '../../_models/_unit-operations/hydrocracker';\r\nimport { Hydrotreater } from '../../_models/_unit-operations/hydrotreater';\r\nimport { HydrogenPlant } from '../../_models/_unit-operations/hydrogen-plant';\r\nimport { SulfurPlant } from '../../_models/_unit-operations/sulfur-plant';\r\nimport { WaterTurbine } from '../../_models/_unit-operations/utilties/water-turbine';\r\nimport { WaterUnitOperation } from '../../_models/_unit-operations/utilties/water-unit-operation';\r\nimport { WaterSourceImport } from '../../_models/_unit-operations/utilties/water-source-import';\r\nimport { hasNumericValue } from '../../_utils/utils';\r\nimport { SteamType } from '../../_config/steam-type.enum';\r\nimport { WaterSinkImport } from '../../_models/_unit-operations/utilties/water-sink-import';\r\nimport { WaterSource } from '../../_models/_unit-operations/utilties/water-source';\r\nimport { WaterHeader } from '../../_models/_unit-operations/utilties/water-header';\r\n\r\ndeclare let unitConverter: any;\r\n\r\nexport class SteamSheetHelper {\r\n constructor(private nuc: NumberToUnitConverter) {}\r\n\r\n // this reflects the order that the items will have in the spreadsheet\r\n itemOrderGuide: { type: string; flowsheet: string }[] = [\r\n { type: SteamSheetItemType.HYDROCARBON, flowsheet: FlowsheetType.HYDROCARBON },\r\n { type: SteamSheetItemType.UTILITIES_TITLE, flowsheet: FlowsheetType.UTILITIES },\r\n { type: unitOperationsConfig.waterBoiler.key, flowsheet: FlowsheetType.UTILITIES },\r\n { type: unitOperationsConfig.waterTurbine.key, flowsheet: FlowsheetType.UTILITIES },\r\n { type: unitOperationsConfig.waterSourceImport.key, flowsheet: FlowsheetType.UTILITIES },\r\n { type: unitOperationsConfig.waterSinkImport.key, flowsheet: FlowsheetType.UTILITIES },\r\n { type: unitOperationsConfig.waterSource.key, flowsheet: FlowsheetType.UTILITIES },\r\n { type: unitOperationsConfig.waterHeader.key, flowsheet: FlowsheetType.UTILITIES },\r\n ];\r\n\r\n calculateNewItemIndex(\r\n items: UtilitySteamSpreadsheetModel[],\r\n newItem: UtilitySteamSpreadsheetModel\r\n ): { index: number; firstItemOfItsType: boolean; firstUtilitiesItem } {\r\n const itemOfSameTypeIndex = this.findLastIndexOfTypeInItems(items, newItem.type);\r\n\r\n if (itemOfSameTypeIndex > -1) {\r\n return {\r\n index: itemOfSameTypeIndex + 1,\r\n firstItemOfItsType: false,\r\n firstUtilitiesItem: false,\r\n };\r\n }\r\n\r\n // if items of same type aren't already in the sheet\r\n const newItemOrder = this.itemOrderGuide.findIndex(io => io.type === newItem.type);\r\n let resultIndex = 0;\r\n\r\n // check if there are items that go before the new item\r\n for (let i = newItemOrder - 1; i >= 0; i--) {\r\n const currentType = this.itemOrderGuide[i].type;\r\n const newItemIndex = this.findLastIndexOfTypeInItems(items, currentType);\r\n\r\n if (newItemIndex > -1) {\r\n resultIndex = newItemIndex + 1;\r\n break;\r\n }\r\n }\r\n\r\n for (let i = newItemOrder + 1; i < this.itemOrderGuide.length; i++) {\r\n const currentType = this.itemOrderGuide[i];\r\n\r\n const newItemIndex = this.findFirstIndexOfTypeInItems(items, currentType.type);\r\n\r\n if (newItemIndex > -1) {\r\n resultIndex = newItemIndex;\r\n break;\r\n }\r\n }\r\n\r\n const isFromUtilitiesFlowsheet = this.isItemFromUtilitiesFlowsheet(newItem);\r\n const utilitiesTypes = this.itemOrderGuide\r\n .filter(io => io.flowsheet === FlowsheetType.UTILITIES)\r\n .map(io => io.type);\r\n\r\n const firstUtilitiesItem =\r\n isFromUtilitiesFlowsheet && items.filter(i => utilitiesTypes.includes(i.type)).length === 0;\r\n\r\n return {\r\n index: resultIndex,\r\n firstUtilitiesItem,\r\n firstItemOfItsType: true,\r\n };\r\n }\r\n\r\n findLastIndexOfTypeInItems(items: UtilitySteamSpreadsheetModel[], typeToSearch: string) {\r\n const itemsOfCurrentType = items.filter(item => item.type === typeToSearch);\r\n if (itemsOfCurrentType.length) {\r\n const lastItem = itemsOfCurrentType[itemsOfCurrentType.length - 1];\r\n\r\n return items.indexOf(lastItem);\r\n }\r\n\r\n return -1;\r\n }\r\n\r\n findFirstIndexOfTypeInItems(items: UtilitySteamSpreadsheetModel[], typeToSearch: string) {\r\n return items.findIndex(item => item.type === typeToSearch);\r\n }\r\n\r\n /**\r\n * Gets other the items that should be removed when a unit operation is removed, for example\r\n * when the last boiler is removed, its spacer should be removed as well\r\n * @param items The list of all the items in the spreadsheet\r\n * @param uo The unit operation being removed\r\n */\r\n getExtraItemsToRemove(items: UtilitySteamSpreadsheetModel[], uo: UnitOperation): UtilitySteamSpreadsheetModel[] {\r\n const result = [];\r\n const uoItem = items.find(i => i.id === uo.id);\r\n\r\n const itemsOfSameType = items.filter(i => i.type === uoItem.type && i.id !== uo.id);\r\n const itemsWithEmptyId = itemsOfSameType.filter(i => !i.id);\r\n\r\n if (itemsOfSameType.length === itemsWithEmptyId.length) {\r\n result.push(...itemsWithEmptyId);\r\n }\r\n\r\n // check if this is the last item from utilities flowsheet...\r\n if (this.isItemFromUtilitiesFlowsheet(uoItem)) {\r\n const utilitiesTypes = this.itemOrderGuide\r\n .filter(io => io.flowsheet === FlowsheetType.UTILITIES)\r\n .map(io => io.type);\r\n const allItemsFromUtilitiesFlowsheet = items.filter(i => utilitiesTypes.includes(i.type) && i.id !== uo.id);\r\n\r\n const utilitiesItemsWithoutId = allItemsFromUtilitiesFlowsheet.filter(i => !i.id);\r\n\r\n if (allItemsFromUtilitiesFlowsheet.length === utilitiesItemsWithoutId.length) {\r\n // this should only include the title.. and probably the spacers?\r\n result.push(...utilitiesItemsWithoutId);\r\n }\r\n }\r\n\r\n return result;\r\n }\r\n\r\n private isItemFromUtilitiesFlowsheet(item: UtilitySteamSpreadsheetModel) {\r\n const utilitiesTypes = this.itemOrderGuide\r\n .filter(io => io.flowsheet === FlowsheetType.UTILITIES)\r\n .map(io => io.type);\r\n return utilitiesTypes.includes(item.type);\r\n }\r\n\r\n toSpreadsheetItem(uo: UnitOperation, alternateName?: string): BaseUtilitySpreadsheetModel {\r\n let result: UtilitySteamSpreadsheetModel;\r\n\r\n if (uo instanceof SteamUseUnitOperation || uo instanceof Upgrader) {\r\n result = this.steamUseUnitOperationToSpreadsheetItem(uo);\r\n } else if (this.isBoiler(uo)) {\r\n result = this.boilerToSpreadsheetItem(uo, false);\r\n } else if (this.isWaterTurbine(uo)) {\r\n result = this.turbineToSpreadsheetItem(uo, false);\r\n } else if (this.isWaterSourceImport(uo)) {\r\n result = this.waterSourceImportToSpreadsheetItem(uo, false);\r\n } else if (this.isWaterSinkImport(uo)) {\r\n result = this.waterSinkImportToSpreadsheetItem(uo, false);\r\n } else if (this.isWaterSource(uo)) {\r\n result = this.waterSourceToSpreadsheetItem(uo, false);\r\n } else if (this.isWaterHeader(uo)) {\r\n result = this.waterHeaderToSpreadsheetItem(uo, false);\r\n }\r\n\r\n if (alternateName) {\r\n result.unitOperationName = alternateName;\r\n }\r\n\r\n return result;\r\n }\r\n\r\n steamUseUnitOperationToSpreadsheetItem(\r\n unitOperation: SteamUseUnitOperation | Upgrader\r\n ): UtilitySteamSpreadsheetModel {\r\n const result: UtilitySteamSpreadsheetModel = {\r\n id: unitOperation.id,\r\n unitOperationName: unitOperation.name,\r\n type: SteamSheetItemType.HYDROCARBON,\r\n };\r\n\r\n if (unitOperation.ownerCase.isSolved) {\r\n result.steamMake900 = unitOperation.steamMake900.convertToAnotherUnit(unitConverter.units.Massflowrate.KPPH);\r\n result.steamUse900 = unitOperation.steamUse900.convertToAnotherUnit(unitConverter.units.Massflowrate.KPPH);\r\n result.steamMake600 = unitOperation.steamMake600.convertToAnotherUnit(unitConverter.units.Massflowrate.KPPH);\r\n result.steamUse600 = unitOperation.steamUse600.convertToAnotherUnit(unitConverter.units.Massflowrate.KPPH);\r\n result.steamMake150 = unitOperation.steamMake150.convertToAnotherUnit(unitConverter.units.Massflowrate.KPPH);\r\n result.steamUse150 = unitOperation.steamUse150.convertToAnotherUnit(unitConverter.units.Massflowrate.KPPH);\r\n result.steamMake50 = unitOperation.steamMake50.convertToAnotherUnit(unitConverter.units.Massflowrate.KPPH);\r\n result.steamUse50 = unitOperation.steamUse50.convertToAnotherUnit(unitConverter.units.Massflowrate.KPPH);\r\n }\r\n\r\n return result;\r\n }\r\n\r\n boilerToSpreadsheetItem(uo: WaterBoiler, rawValue: boolean): UtilitySteamSpreadsheetModel {\r\n const result = this.getEmptySpreadsheetItem(uo.name, uo.category, undefined);\r\n result.id = uo.id;\r\n\r\n if (uo.ownerCase.isSolved) {\r\n const inletStream = uo.ownerCase.filterWaterMaterialStreams(s => s.outletUnitOperationId === uo.id)[0];\r\n\r\n if (inletStream) {\r\n result.steamMake900 = inletStream.massFlowrate.value;\r\n }\r\n }\r\n\r\n if (!rawValue) {\r\n this.convertItemValuesToDisplayUnit(result);\r\n }\r\n\r\n return result;\r\n }\r\n\r\n turbineToSpreadsheetItem(uo: WaterTurbine, rawValue: boolean): UtilitySteamSpreadsheetModel {\r\n const result = this.getEmptySpreadsheetItem(uo.name, uo.category, undefined);\r\n result.id = uo.id;\r\n\r\n if (uo.ownerCase.isSolved) {\r\n const inletStream = uo.ownerCase.filterWaterMaterialStreams(s => s.outletUnitOperationId === uo.id)[0];\r\n\r\n if (inletStream) {\r\n result.steamUse900 = inletStream.massFlowrate.value;\r\n }\r\n }\r\n\r\n if (!rawValue) {\r\n this.convertItemValuesToDisplayUnit(result);\r\n }\r\n\r\n return result;\r\n }\r\n\r\n waterSourceImportToSpreadsheetItem(uo: WaterSourceImport, rawValue: boolean): UtilitySteamSpreadsheetModel {\r\n let totalFlowrate = 0;\r\n for (const informationStream of uo.inletSourceInformationStreams) {\r\n const massFlowrate = informationStream.massFlowrate.value;\r\n totalFlowrate += hasNumericValue(massFlowrate) ? massFlowrate : 0;\r\n }\r\n\r\n const result = this.getEmptySpreadsheetItem(uo.name, uo.category, undefined);\r\n result.id = uo.id;\r\n\r\n switch (uo.steamType) {\r\n case SteamType.Steam50:\r\n result.steamMake50 = totalFlowrate;\r\n break;\r\n\r\n case SteamType.Steam150:\r\n result.steamMake150 = totalFlowrate;\r\n break;\r\n\r\n case SteamType.Steam600:\r\n result.steamMake600 = totalFlowrate;\r\n break;\r\n\r\n case SteamType.Steam900:\r\n result.steamMake900 = totalFlowrate;\r\n break;\r\n }\r\n\r\n if (!rawValue) {\r\n this.convertItemValuesToDisplayUnit(result);\r\n }\r\n\r\n return result;\r\n }\r\n\r\n waterSinkImportToSpreadsheetItem(uo: WaterSinkImport, rawValue: boolean): UtilitySteamSpreadsheetModel {\r\n let totalFlowrate = 0;\r\n for (const informationStream of uo.inletSourceInformationStreams) {\r\n const massFlowrate = informationStream.massFlowrate.value;\r\n totalFlowrate += hasNumericValue(massFlowrate) ? massFlowrate : 0;\r\n }\r\n\r\n const result = this.getEmptySpreadsheetItem(uo.name, uo.category, undefined);\r\n result.id = uo.id;\r\n\r\n switch (uo.steamType) {\r\n case SteamType.Steam50:\r\n result.steamUse50 = totalFlowrate;\r\n break;\r\n\r\n case SteamType.Steam150:\r\n result.steamUse150 = totalFlowrate;\r\n break;\r\n\r\n case SteamType.Steam600:\r\n result.steamUse600 = totalFlowrate;\r\n break;\r\n\r\n case SteamType.Steam900:\r\n result.steamUse900 = totalFlowrate;\r\n break;\r\n }\r\n\r\n if (!rawValue) {\r\n this.convertItemValuesToDisplayUnit(result);\r\n }\r\n\r\n return result;\r\n }\r\n\r\n waterSourceToSpreadsheetItem(uo: WaterSource, rawValue: boolean): UtilitySteamSpreadsheetModel {\r\n const result = this.getEmptySpreadsheetItem(uo.name, uo.category, undefined);\r\n result.id = uo.id;\r\n\r\n if (uo.ownerCase.isSolved) {\r\n const outletStream = uo.ownerCase.filterWaterMaterialStreams(s => s.inletUnitOperationId === uo.id)[0];\r\n\r\n if (outletStream) {\r\n result.steamMake900 = outletStream.massFlowrate.value;\r\n }\r\n }\r\n\r\n if (!rawValue) {\r\n this.convertItemValuesToDisplayUnit(result);\r\n }\r\n\r\n return result;\r\n }\r\n\r\n waterHeaderToSpreadsheetItem(uo: WaterHeader, rawValue: boolean): UtilitySteamSpreadsheetModel {\r\n const result = this.getEmptySpreadsheetItem(uo.name, uo.category, undefined);\r\n result.id = uo.id;\r\n\r\n if (uo.ownerCase.isSolved) {\r\n const inletStreams = uo.ownerCase.filterWaterMaterialStreams(s => s.outletUnitOperationId === uo.id);\r\n let totalInletFlowrate = 0;\r\n for (const stream of inletStreams) {\r\n totalInletFlowrate += stream.massFlowrate.value;\r\n }\r\n\r\n const outletStreams = uo.ownerCase.filterWaterMaterialStreams(s => s.inletUnitOperationId === uo.id);\r\n let totalOutletFlowrate = 0;\r\n for (const stream of inletStreams) {\r\n totalOutletFlowrate += stream.massFlowrate.value;\r\n }\r\n\r\n result.steamMake900 = totalInletFlowrate;\r\n result.steamUse900 = totalOutletFlowrate;\r\n }\r\n\r\n if (!rawValue) {\r\n this.convertItemValuesToDisplayUnit(result);\r\n }\r\n\r\n return result;\r\n }\r\n\r\n getEmptySpreadsheetItem(unitOperationName: string, type: string, subType: string): UtilitySteamSpreadsheetModel {\r\n return {\r\n type,\r\n subType,\r\n unitOperationName,\r\n steamMake900: 0,\r\n steamUse900: 0,\r\n steamMake600: 0,\r\n steamUse600: 0,\r\n steamMake150: 0,\r\n steamUse150: 0,\r\n steamMake50: 0,\r\n steamUse50: 0,\r\n };\r\n }\r\n\r\n convertItemValuesToDisplayUnit(item: UtilitySteamSpreadsheetModel): void {\r\n item.steamUse50 = this.nuc.convert(\r\n item.steamUse50,\r\n Quantity.MASSFLOWRATE,\r\n unitConverter.units.Massflowrate.KPPH,\r\n false\r\n );\r\n item.steamMake50 = this.nuc.convert(\r\n item.steamMake50,\r\n Quantity.MASSFLOWRATE,\r\n unitConverter.units.Massflowrate.KPPH,\r\n false\r\n );\r\n item.steamMake150 = this.nuc.convert(\r\n item.steamMake150,\r\n Quantity.MASSFLOWRATE,\r\n unitConverter.units.Massflowrate.KPPH,\r\n false\r\n );\r\n item.steamUse150 = this.nuc.convert(\r\n item.steamUse150,\r\n Quantity.MASSFLOWRATE,\r\n unitConverter.units.Massflowrate.KPPH,\r\n false\r\n );\r\n item.steamMake600 = this.nuc.convert(\r\n item.steamMake600,\r\n Quantity.MASSFLOWRATE,\r\n unitConverter.units.Massflowrate.KPPH,\r\n false\r\n );\r\n item.steamUse600 = this.nuc.convert(\r\n item.steamUse600,\r\n Quantity.MASSFLOWRATE,\r\n unitConverter.units.Massflowrate.KPPH,\r\n false\r\n );\r\n item.steamMake900 = this.nuc.convert(\r\n item.steamMake900,\r\n Quantity.MASSFLOWRATE,\r\n unitConverter.units.Massflowrate.KPPH,\r\n false\r\n );\r\n item.steamUse900 = this.nuc.convert(\r\n item.steamUse900,\r\n Quantity.MASSFLOWRATE,\r\n unitConverter.units.Massflowrate.KPPH,\r\n false\r\n );\r\n }\r\n\r\n sumValuesToItem(source: UtilitySteamSpreadsheetModel, destination: UtilitySteamSpreadsheetModel): void {\r\n destination.steamMake50 += source.steamMake50;\r\n destination.steamUse50 += source.steamUse50;\r\n destination.steamMake150 += source.steamMake150;\r\n destination.steamUse150 += source.steamUse150;\r\n destination.steamMake600 += source.steamMake600;\r\n destination.steamUse600 += source.steamUse600;\r\n destination.steamMake900 += source.steamMake900;\r\n destination.steamUse900 += source.steamUse900;\r\n }\r\n\r\n isUnitOperationAllowed(uo: UnitOperation): boolean {\r\n return this.isFromHydroCarbonFlowsheet(uo) || this.isBoiler(uo);\r\n }\r\n\r\n isFromHydroCarbonFlowsheet(uo: UnitOperation): uo is SteamUseUnitOperation {\r\n return (\r\n uo instanceof DRU ||\r\n uo instanceof VAC ||\r\n uo instanceof DCU ||\r\n uo instanceof Hydrocracker ||\r\n uo instanceof Hydrotreater ||\r\n uo instanceof HydrogenPlant ||\r\n uo instanceof SulfurPlant\r\n );\r\n }\r\n\r\n isFromUtilitiesFlowsheet(uo: UnitOperation): uo is WaterUnitOperation {\r\n return (\r\n this.isBoiler(uo) ||\r\n this.isWaterTurbine(uo) ||\r\n this.isWaterSourceImport(uo) ||\r\n this.isWaterSinkImport(uo) ||\r\n this.isWaterHeader(uo) ||\r\n this.isWaterSource(uo)\r\n );\r\n }\r\n\r\n isBoiler(uo: UnitOperation): uo is WaterBoiler {\r\n return uo instanceof WaterBoiler;\r\n }\r\n\r\n isWaterTurbine(uo: UnitOperation): uo is WaterTurbine {\r\n return uo instanceof WaterTurbine;\r\n }\r\n\r\n isWaterSourceImport(uo: UnitOperation): uo is WaterSourceImport {\r\n return uo instanceof WaterSourceImport;\r\n }\r\n\r\n isWaterSinkImport(uo: UnitOperation): uo is WaterSinkImport {\r\n return uo instanceof WaterSinkImport;\r\n }\r\n\r\n isWaterSource(uo: UnitOperation): uo is WaterSource {\r\n return uo instanceof WaterSource;\r\n }\r\n\r\n isWaterHeader(uo: UnitOperation): uo is WaterHeader {\r\n return uo instanceof WaterHeader;\r\n }\r\n}\r\n","import { DataType } from '@grapecity/wijmo';\r\n\r\nimport { UtilitySteamSpreadsheetModel } from '../../_models/utilities-spreadsheet/utility-steam-spreadsheet-model';\r\nimport { FlexSheetColumn } from '../../_models/wijmo/flex-sheet-column';\r\nimport { SuncorUnitOperation } from '../../_models/_unit-operations/suncor-unit-operation';\r\nimport { AbstractUtilitiesHandler } from './abstract-utilities-handler';\r\nimport { BaseUtilitySpreadsheetModel } from '../../_models/utilities-spreadsheet/base-utility-spreadsheet-model';\r\nimport { Upgrader } from '../../_models/_unit-operations/upgrader';\r\nimport { CoreService } from '../core.service';\r\nimport { NumberToUnitConverter } from '../number-to-unit-converter.service';\r\nimport { SteamUseUnitOperation } from '../../_models/_unit-operations/steam-use-unit-operation';\r\nimport { Case, UnitOperation } from '../../_models';\r\nimport { unitOperationsConfig } from '../../_config/unit-operations.config';\r\nimport { SteamSheetItemType } from '../../_config/spreadsheet/steam-sheet-item-type.enum';\r\nimport { FlowsheetType } from '../../_config/flowsheet-type.enum';\r\nimport { SteamSheetHelper } from './steam-sheet-helper';\r\nimport { WaterBoiler } from '../../_models/_unit-operations/utilties/water-boiler';\r\nimport { WaterTurbine } from '../../_models/_unit-operations/utilties/water-turbine';\r\nimport { WaterSourceImport } from '../../_models/_unit-operations/utilties/water-source-import';\r\nimport { WaterSinkImport } from '../../_models/_unit-operations/utilties/water-sink-import';\r\nimport { WaterSource } from '../../_models/_unit-operations/utilties/water-source';\r\nimport { WaterHeader } from '../../_models/_unit-operations/utilties/water-header';\r\nimport { WaterUtilityUnitOperation } from '../../_models/_unit-operations/utilties/water-utility-unit-operation';\r\n\r\nexport class SteamSheetHandler extends AbstractUtilitiesHandler {\r\n private steamSheetHelper: SteamSheetHelper;\r\n\r\n constructor(coreService: CoreService, private ownerUnitOperation: UnitOperation, private nuc: NumberToUnitConverter) {\r\n super(coreService);\r\n this.steamSheetHelper = new SteamSheetHelper(this.nuc);\r\n this.ownerUnitOperationId = ownerUnitOperation.id;\r\n }\r\n\r\n override caseToSpreadsheet(c: Case, upgOwner: Upgrader) {\r\n this.clearSpreadsheetItems();\r\n\r\n const itemsAndTotals = this.getItemsAndTotalsConfig();\r\n const hydrocarbonSpreadsheetItems: UtilitySteamSpreadsheetModel[] = [];\r\n\r\n const othersTotal: UtilitySteamSpreadsheetModel = this.steamSheetHelper.getEmptySpreadsheetItem(\r\n 'Others',\r\n SteamSheetItemType.HYDROCARBON,\r\n undefined\r\n );\r\n\r\n // eslint-disable-next-line guard-for-in\r\n for (const id in c.unitOperationPool) {\r\n const uo = c.unitOperationPool[id];\r\n\r\n if (!this.isUnitOperationAllowed(uo)) {\r\n continue;\r\n }\r\n\r\n if (this.steamSheetHelper.isFromHydroCarbonFlowsheet(uo)) {\r\n const uoSteam = uo as SteamUseUnitOperation;\r\n othersTotal.steamMake50 += uoSteam.steamMake50.value;\r\n othersTotal.steamUse50 += uoSteam.steamUse50.value;\r\n othersTotal.steamUse150 += uoSteam.steamUse150.value;\r\n othersTotal.steamMake150 += uoSteam.steamMake150.value;\r\n othersTotal.steamUse600 += uoSteam.steamUse600.value;\r\n othersTotal.steamMake600 += uoSteam.steamMake600.value;\r\n othersTotal.steamUse900 += uoSteam.steamUse900.value;\r\n othersTotal.steamMake900 += uoSteam.steamMake900.value;\r\n\r\n const uoItem = this.toSpreadsheetItem(uo) as UtilitySteamSpreadsheetModel;\r\n\r\n hydrocarbonSpreadsheetItems.push(uoItem);\r\n continue;\r\n }\r\n\r\n const item = this.toSpreadsheetItem(uo) as UtilitySteamSpreadsheetModel;\r\n itemsAndTotals[uo.category].items.push(item);\r\n const itemInRawValue = itemsAndTotals[uo.category].getItemInRawValue(uo, true);\r\n this.steamSheetHelper.sumValuesToItem(itemInRawValue, itemsAndTotals[uo.category].total);\r\n }\r\n\r\n if (c.isSolved) {\r\n othersTotal.steamMake50 = upgOwner.steamMake50.value - othersTotal.steamMake50;\r\n othersTotal.steamUse50 = upgOwner.steamUse50.value - othersTotal.steamUse50;\r\n othersTotal.steamUse150 = upgOwner.steamUse150.value - othersTotal.steamUse150;\r\n othersTotal.steamMake150 = upgOwner.steamMake150.value - othersTotal.steamMake150;\r\n othersTotal.steamUse600 = upgOwner.steamUse600.value - othersTotal.steamUse600;\r\n othersTotal.steamMake600 = upgOwner.steamMake600.value - othersTotal.steamMake600;\r\n othersTotal.steamUse900 = upgOwner.steamUse900.value - othersTotal.steamUse900;\r\n othersTotal.steamMake900 = upgOwner.steamMake900.value - othersTotal.steamMake900;\r\n\r\n this.steamSheetHelper.convertItemValuesToDisplayUnit(othersTotal);\r\n hydrocarbonSpreadsheetItems.push(othersTotal);\r\n\r\n const upgraderTotalItem = this.toSpreadsheetItem(upgOwner, 'Total');\r\n (upgraderTotalItem as UtilitySteamSpreadsheetModel).subType = SteamSheetItemType.TOTAL;\r\n hydrocarbonSpreadsheetItems.push(upgraderTotalItem);\r\n }\r\n\r\n if (hydrocarbonSpreadsheetItems.length) {\r\n const separator = this.getInformativeItem('');\r\n separator.type = FlowsheetType.HYDROCARBON;\r\n hydrocarbonSpreadsheetItems.push(separator);\r\n }\r\n\r\n const keys = Object.keys(itemsAndTotals);\r\n for (const key of keys) {\r\n const iat = itemsAndTotals[key];\r\n\r\n if (iat.items.length) {\r\n if (c.isSolved) {\r\n this.steamSheetHelper.convertItemValuesToDisplayUnit(iat.total);\r\n iat.items.push(iat.total);\r\n }\r\n\r\n const separator = this.getInformativeItem('');\r\n separator.type = key;\r\n iat.items.push(separator);\r\n }\r\n }\r\n\r\n const utilitiesItems = itemsAndTotals[unitOperationsConfig.waterBoiler.key].items\r\n .concat(itemsAndTotals[unitOperationsConfig.waterTurbine.key].items)\r\n .concat(itemsAndTotals[unitOperationsConfig.waterSourceImport.key].items)\r\n .concat(itemsAndTotals[unitOperationsConfig.waterSinkImport.key].items)\r\n .concat(itemsAndTotals[unitOperationsConfig.waterSource.key].items)\r\n .concat(itemsAndTotals[unitOperationsConfig.waterHeader.key].items);\r\n\r\n if (utilitiesItems.length) {\r\n const utilitiesTitle = this.getInformativeItem('Utilities Flowsheet');\r\n utilitiesTitle.type = SteamSheetItemType.UTILITIES_TITLE;\r\n utilitiesItems.splice(0, 0, utilitiesTitle);\r\n }\r\n\r\n const allItems = hydrocarbonSpreadsheetItems.concat(utilitiesItems);\r\n\r\n for (let i = 0; i < allItems.length; i++) {\r\n if (i <= this.DEFAULT_NUMBER_OF_ROWS) {\r\n this.items[i] = allItems[i];\r\n } else {\r\n this.items.push(allItems[i]);\r\n }\r\n }\r\n\r\n this.grid.collectionView.refresh();\r\n }\r\n\r\n /**\r\n * Returns an object that stores the items and the totals of each of the different unit operations that are displayed\r\n * in this spreadsheet at least, for utilities\r\n */\r\n getItemsAndTotalsConfig(): {\r\n [unitOperationType: string]: {\r\n items: UtilitySteamSpreadsheetModel[];\r\n total: UtilitySteamSpreadsheetModel;\r\n getItemInRawValue: (uo: UnitOperation, rawValue: boolean) => UtilitySteamSpreadsheetModel;\r\n };\r\n } {\r\n const boilerTotals: UtilitySteamSpreadsheetModel = this.steamSheetHelper.getEmptySpreadsheetItem(\r\n 'Total Boilers',\r\n unitOperationsConfig.waterBoiler.key,\r\n SteamSheetItemType.TOTAL\r\n );\r\n\r\n const turbineTotals: UtilitySteamSpreadsheetModel = this.steamSheetHelper.getEmptySpreadsheetItem(\r\n 'Total Turbines',\r\n unitOperationsConfig.waterTurbine.key,\r\n SteamSheetItemType.TOTAL\r\n );\r\n\r\n const waterSourceImportTotals: UtilitySteamSpreadsheetModel = this.steamSheetHelper.getEmptySpreadsheetItem(\r\n 'Total Upgrader Steam Make',\r\n unitOperationsConfig.waterSourceImport.key,\r\n SteamSheetItemType.TOTAL\r\n );\r\n\r\n const waterSinkImportTotals: UtilitySteamSpreadsheetModel = this.steamSheetHelper.getEmptySpreadsheetItem(\r\n 'Total Upgrader Steam Use',\r\n unitOperationsConfig.waterSinkImport.key,\r\n SteamSheetItemType.TOTAL\r\n );\r\n\r\n const waterSourceTotals: UtilitySteamSpreadsheetModel = this.steamSheetHelper.getEmptySpreadsheetItem(\r\n 'Total Water Sources',\r\n unitOperationsConfig.waterSource.key,\r\n SteamSheetItemType.TOTAL\r\n );\r\n\r\n const waterHeaderTotals: UtilitySteamSpreadsheetModel = this.steamSheetHelper.getEmptySpreadsheetItem(\r\n 'Total Water Headers',\r\n unitOperationsConfig.waterHeader.key,\r\n SteamSheetItemType.TOTAL\r\n );\r\n\r\n const result: {\r\n [unitOperationType: string]: {\r\n items: UtilitySteamSpreadsheetModel[];\r\n total: UtilitySteamSpreadsheetModel;\r\n getItemInRawValue: (uo: UnitOperation, rawValue: boolean) => UtilitySteamSpreadsheetModel;\r\n };\r\n } = {};\r\n\r\n result[unitOperationsConfig.waterBoiler.key] = {\r\n items: [],\r\n total: boilerTotals,\r\n getItemInRawValue: (uo: UnitOperation, rawValue: boolean) => {\r\n return this.steamSheetHelper.boilerToSpreadsheetItem(uo as WaterBoiler, rawValue);\r\n },\r\n };\r\n\r\n result[unitOperationsConfig.waterTurbine.key] = {\r\n items: [],\r\n total: turbineTotals,\r\n getItemInRawValue: (uo: UnitOperation, rawValue: boolean) => {\r\n return this.steamSheetHelper.turbineToSpreadsheetItem(uo as WaterTurbine, rawValue);\r\n },\r\n };\r\n\r\n result[unitOperationsConfig.waterSourceImport.key] = {\r\n items: [],\r\n total: waterSourceImportTotals,\r\n getItemInRawValue: (uo: UnitOperation, rawValue: boolean) => {\r\n return this.steamSheetHelper.waterSourceImportToSpreadsheetItem(uo as WaterSourceImport, rawValue);\r\n },\r\n };\r\n\r\n result[unitOperationsConfig.waterSinkImport.key] = {\r\n items: [],\r\n total: waterSinkImportTotals,\r\n getItemInRawValue: (uo: UnitOperation, rawValue: boolean) => {\r\n return this.steamSheetHelper.waterSinkImportToSpreadsheetItem(uo as WaterSinkImport, rawValue);\r\n },\r\n };\r\n\r\n result[unitOperationsConfig.waterSource.key] = {\r\n items: [],\r\n total: waterSourceTotals,\r\n getItemInRawValue: (uo: UnitOperation, rawValue: boolean) => {\r\n return this.steamSheetHelper.waterSourceToSpreadsheetItem(uo as WaterSource, rawValue);\r\n },\r\n };\r\n\r\n result[unitOperationsConfig.waterHeader.key] = {\r\n items: [],\r\n total: waterHeaderTotals,\r\n getItemInRawValue: (uo: UnitOperation, rawValue: boolean) => {\r\n return this.steamSheetHelper.waterHeaderToSpreadsheetItem(uo as WaterHeader, rawValue);\r\n },\r\n };\r\n\r\n return result;\r\n }\r\n\r\n protected override addUnitOperationWithoutRefreshing(uo: UnitOperation) {\r\n const newItem = this.toSpreadsheetItem(uo);\r\n\r\n const indexData = this.steamSheetHelper.calculateNewItemIndex(this.items, newItem);\r\n let { index } = indexData;\r\n\r\n if (indexData.firstUtilitiesItem) {\r\n const titleItem = this.getInformativeItem('Utilities Flowsheet');\r\n titleItem.type = SteamSheetItemType.UTILITIES_TITLE;\r\n this.addNewItemAt(titleItem, index);\r\n index++;\r\n }\r\n\r\n if (indexData.firstItemOfItsType) {\r\n this.addNewItemAt(newItem, index);\r\n\r\n const separator = this.getInformativeItem('');\r\n separator.type = (newItem as UtilitySteamSpreadsheetModel).type;\r\n this.addNewItemAt(separator, index + 1);\r\n } else {\r\n this.addNewItemAt(newItem, index - 1); // considering that there will be a separator;\r\n }\r\n }\r\n\r\n private addNewItemAt(item: UtilitySteamSpreadsheetModel, index: number) {\r\n this.items.splice(index, 0, item);\r\n }\r\n\r\n isUnitOperationAllowed(uo: UnitOperation): boolean {\r\n return (\r\n (this.steamSheetHelper.isFromHydroCarbonFlowsheet(uo) || this.steamSheetHelper.isFromUtilitiesFlowsheet(uo)) &&\r\n this.isUpgraderChild(uo.flowsheetId)\r\n );\r\n }\r\n\r\n protected toSpreadsheetItem(unitOperation: UnitOperation, alternateName?: string): BaseUtilitySpreadsheetModel {\r\n return this.steamSheetHelper.toSpreadsheetItem(unitOperation, alternateName);\r\n }\r\n\r\n override clearResults(): void {\r\n for (const i of this.items) {\r\n const item = i as UtilitySteamSpreadsheetModel;\r\n item.steamMake900 = undefined;\r\n item.steamUse900 = undefined;\r\n item.steamMake600 = undefined;\r\n item.steamUse600 = undefined;\r\n item.steamMake150 = undefined;\r\n item.steamUse150 = undefined;\r\n item.steamMake50 = undefined;\r\n item.steamUse50 = undefined;\r\n }\r\n\r\n // remove the 'Total' row\r\n const itemsToRemove = (this.items as UtilitySteamSpreadsheetModel[]).filter(\r\n i => i.subType === SteamSheetItemType.TOTAL\r\n );\r\n for (const i of itemsToRemove) {\r\n const index = this.items.indexOf(i);\r\n this.items.splice(index, 1);\r\n }\r\n\r\n this.grid.collectionView.refresh();\r\n }\r\n\r\n override removeUnitOperation(unitOperation: SuncorUnitOperation) {\r\n if (this.isUnitOperationAllowed(unitOperation)) {\r\n const extraItemsToRemove = this.steamSheetHelper.getExtraItemsToRemove(this.items, unitOperation);\r\n\r\n for (const itemToRemove of extraItemsToRemove) {\r\n const index = this.items.indexOf(itemToRemove);\r\n this.items.splice(index, 1);\r\n }\r\n }\r\n\r\n super.removeUnitOperation(unitOperation);\r\n }\r\n\r\n override addTotal() {\r\n // nothing is done here as the total is added when converting a case to a spreadsheet\r\n }\r\n\r\n override assignValueToUnitOperation(\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n valueAsNumber: number,\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n item: BaseUtilitySpreadsheetModel,\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n flexSheetEvent: any\r\n ): SuncorUnitOperation {\r\n return undefined;\r\n }\r\n\r\n getInformativeItem(text: string): UtilitySteamSpreadsheetModel {\r\n return {\r\n unitOperationName: text,\r\n };\r\n }\r\n\r\n isUpgraderChild(flowsheetId: string): boolean {\r\n const steamAndPowerSubFs = this.coreService.currentCase.filterUnitOperations(uo => {\r\n return uo instanceof WaterUtilityUnitOperation && uo.flowsheetId === this.ownerUnitOperationId;\r\n });\r\n return flowsheetId === this.ownerUnitOperationId || flowsheetId === steamAndPowerSubFs[0].id;\r\n }\r\n\r\n protected getColumnsConfiguration(): FlexSheetColumn[] {\r\n return [\r\n {\r\n header: 'Unit Operation Name',\r\n binding: 'unitOperationName',\r\n dataType: DataType.String,\r\n width: 200,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: '900# Steam Make',\r\n binding: 'steamMake900',\r\n dataType: DataType.Number,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: '900# Steam Use',\r\n binding: 'steamUse900',\r\n dataType: DataType.Number,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: '600# Steam Make',\r\n binding: 'steamMake600',\r\n dataType: DataType.Number,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: '600# Steam Use',\r\n binding: 'steamUse600',\r\n dataType: DataType.Number,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: '150# Steam Make',\r\n binding: 'steamMake150',\r\n dataType: DataType.Number,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: '150# Steam Use',\r\n binding: 'steamUse150',\r\n dataType: DataType.Number,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: '50# Steam Make',\r\n binding: 'steamMake50',\r\n dataType: DataType.Number,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: '50# Steam Use',\r\n binding: 'steamUse50',\r\n dataType: DataType.Number,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n // empty columns to fill the screen...\r\n {\r\n header: '',\r\n binding: '',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: '',\r\n binding: '',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: '',\r\n binding: '',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: '',\r\n binding: '',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: '',\r\n binding: '',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: '',\r\n binding: '',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: '',\r\n binding: '',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: '',\r\n binding: '',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: '',\r\n binding: '',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: '',\r\n binding: '',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: '',\r\n binding: '',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: '',\r\n binding: '',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n ];\r\n }\r\n}\r\n","import { DataType } from '@grapecity/wijmo';\r\nimport { CoreService } from '../core.service';\r\nimport { NumberToUnitConverter } from '../number-to-unit-converter.service';\r\nimport { AbstractUtilitiesHandler } from './abstract-utilities-handler';\r\nimport { Upgrader } from '../../_models/_unit-operations/upgrader';\r\nimport { FlexSheetColumn } from '../../_models/wijmo/flex-sheet-column';\r\nimport { SuncorUnitOperation } from '../../_models/_unit-operations/suncor-unit-operation';\r\nimport { BaseUtilitySpreadsheetModel } from '../../_models/utilities-spreadsheet/base-utility-spreadsheet-model';\r\nimport { Hydrotreater } from '../../_models/_unit-operations/hydrotreater';\r\nimport { Hydrocracker } from '../../_models/_unit-operations/hydrocracker';\r\nimport { UtilityHydrogenSpreadsheetModel } from '../../_models/utilities-spreadsheet/utility-hydrogen-spreadsheet-model';\r\nimport { UtilityH2sSpreadsheetModel } from '../../_models/utilities-spreadsheet/utility-h2s-spreadsheet-model';\r\nimport { HgoHydrotreater } from '../../_models/_unit-operations/hgo-hydrotreater';\r\nimport { LgoHydrotreater } from '../../_models/_unit-operations/lgo-hydrotreater';\r\nimport { UnitOperation } from '../../_models';\r\n\r\nexport class HydrogenSheetHandler extends AbstractUtilitiesHandler {\r\n constructor(coreService: CoreService, private ownerUnitOperation: UnitOperation, private nuc: NumberToUnitConverter) {\r\n super(coreService);\r\n this.ownerUnitOperationId = ownerUnitOperation.id;\r\n }\r\n\r\n private getUnitOperation(\r\n item: UtilityH2sSpreadsheetModel\r\n ): Hydrotreater | Hydrocracker | HgoHydrotreater | LgoHydrotreater {\r\n const unitOperation = this.coreService.currentCase.getUnitOperation(item.id) as SuncorUnitOperation;\r\n\r\n if (this.isUnitOperationAllowed(unitOperation)) {\r\n return unitOperation;\r\n }\r\n\r\n throw new Error(`A non-allowed unit operation was detected ${unitOperation.category} - ${unitOperation.name}`);\r\n }\r\n\r\n addTotal(upgrader: Upgrader): void {\r\n const newItem = this.toSpreadsheetItem(upgrader, 'Total');\r\n const index = this.items.findIndex(u => !u.unitOperationName);\r\n\r\n if (index > -1 && index <= this.DEFAULT_NUMBER_OF_ROWS - 1) {\r\n this.items[index] = newItem;\r\n } else {\r\n this.items.push(newItem);\r\n }\r\n\r\n this.grid.collectionView.refresh();\r\n }\r\n\r\n override clearResults(): void {\r\n for (const i of this.items) {\r\n const item = i as UtilityHydrogenSpreadsheetModel;\r\n item.hydrogenUse = undefined;\r\n }\r\n\r\n const totalIndex = this.items.findIndex(i => i.unitOperationName === 'Total');\r\n if (totalIndex > -1) {\r\n this.items.splice(totalIndex, 1);\r\n }\r\n\r\n this.grid.collectionView.refresh();\r\n }\r\n\r\n isUnitOperationAllowed(\r\n unitOperation: SuncorUnitOperation\r\n ): unitOperation is Hydrotreater | Hydrocracker | HgoHydrotreater | LgoHydrotreater {\r\n return (\r\n (unitOperation instanceof Hydrotreater ||\r\n unitOperation instanceof Hydrocracker ||\r\n unitOperation instanceof HgoHydrotreater ||\r\n unitOperation instanceof LgoHydrotreater) &&\r\n unitOperation.flowsheetId === this.ownerUnitOperationId\r\n );\r\n }\r\n\r\n protected toSpreadsheetItem(\r\n unitOperation: Hydrotreater | Hydrocracker | Upgrader | HgoHydrotreater | LgoHydrotreater,\r\n alternateName?: string\r\n ): BaseUtilitySpreadsheetModel {\r\n const result = {\r\n id: unitOperation.id,\r\n unitOperationName: alternateName || unitOperation.name,\r\n } as UtilityHydrogenSpreadsheetModel;\r\n\r\n if (unitOperation instanceof Hydrotreater && unitOperation.hydrogenUseRateVariables.length) {\r\n result.hydrogenUseRate = this.nuc.convertToDefaultUnit(\r\n unitOperation.hydrogenUseRateVariables[0].value,\r\n 'GasStdVolumePerVolume'\r\n ); // TODO use quantities enum\r\n } else if (\r\n unitOperation instanceof Hydrocracker ||\r\n unitOperation instanceof HgoHydrotreater ||\r\n unitOperation instanceof LgoHydrotreater\r\n ) {\r\n result.hydrogenUseRate = unitOperation.hydrogenUseRate.convertToDefaultUnit();\r\n }\r\n\r\n if (unitOperation.ownerCase.isSolved) {\r\n result.hydrogenUse = unitOperation.hydrogenUse.convertToDefaultUnit();\r\n }\r\n\r\n return result;\r\n }\r\n\r\n assignValueToUnitOperation(\r\n valueAsNumber: number,\r\n item: BaseUtilitySpreadsheetModel,\r\n flexSheetEvent: any\r\n ): SuncorUnitOperation | undefined {\r\n const concreteItem = item as UtilityHydrogenSpreadsheetModel;\r\n if (valueAsNumber === concreteItem.hydrogenUseRate) {\r\n flexSheetEvent.cancel = true;\r\n return undefined;\r\n }\r\n\r\n const uo = this.getUnitOperation(item);\r\n\r\n // it is assumed that only this value is editable...\r\n if (uo instanceof Hydrotreater && uo.hydrogenUseRateVariables.length) {\r\n uo.hydrogenUseRateVariables[0].value = this.nuc.convertDefaultToInternalUnit(\r\n valueAsNumber,\r\n uo.h2sProductionRate.quantity\r\n );\r\n } else {\r\n uo.hydrogenUseRate.value = this.nuc.convertDefaultToInternalUnit(valueAsNumber, uo.h2sProductionRate.quantity);\r\n }\r\n\r\n return uo;\r\n }\r\n\r\n protected getColumnsConfiguration(): FlexSheetColumn[] {\r\n return [\r\n {\r\n header: 'Unit Operation Name',\r\n binding: 'unitOperationName',\r\n dataType: DataType.String,\r\n width: 200,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: 'Hydrogen Use Rate (scf/bbl)',\r\n binding: 'hydrogenUseRate',\r\n dataType: DataType.Number,\r\n width: 180,\r\n },\r\n {\r\n header: 'Hydrogen Use (MMSCFD)',\r\n binding: 'hydrogenUse',\r\n dataType: DataType.Number,\r\n width: 180,\r\n isReadOnly: true,\r\n },\r\n // empty columns to fill the screen...\r\n {\r\n header: '',\r\n binding: '',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: '',\r\n binding: '',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: '',\r\n binding: '',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: '',\r\n binding: '',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: '',\r\n binding: '',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: '',\r\n binding: '',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: '',\r\n binding: '',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: '',\r\n binding: '',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: '',\r\n binding: '',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: '',\r\n binding: '',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: '',\r\n binding: '',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: '',\r\n binding: '',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: '',\r\n binding: '',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: '',\r\n binding: '',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: '',\r\n binding: '',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: '',\r\n binding: '',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: '',\r\n binding: '',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: '',\r\n binding: '',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n ];\r\n }\r\n}\r\n","export enum SpreadsheetTitle {\r\n ACID_GAS_SULFUR = 'Acid Gas & Sulfur',\r\n STEAM_REPORT = 'Steam Report',\r\n HYDROGEN = 'Hydrogen',\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport * as wjcSheet from '@grapecity/wijmo.grid.sheet';\r\nimport { SteamSheetHandler } from './steam-sheet-handler';\r\nimport { CoreService } from '../core.service';\r\nimport { Case } from '../../_models';\r\nimport { SuncorUnitOperation } from '../../_models/_unit-operations/suncor-unit-operation';\r\nimport { NumberToUnitConverter } from '../number-to-unit-converter.service';\r\nimport { HydrogenSheetHandler } from './hydrogen-sheet-handler';\r\nimport { AbstractUtilitiesHandler } from './abstract-utilities-handler';\r\nimport { Upgrader } from '../../_models/_unit-operations/upgrader';\r\nimport { SpreadsheetTitle } from '../../_config/spreadsheet/spreadsheet-title.enum';\r\nimport { WaterUtilityUnitOperation } from '../../_models/_unit-operations/utilties/water-utility-unit-operation';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class UtilitiesSpreadsheetService {\r\n private spreadsheet: wjcSheet.FlexSheet;\r\n sheetHandlers: AbstractUtilitiesHandler[] = [];\r\n\r\n constructor(private coreService: CoreService, private nuc: NumberToUnitConverter) {}\r\n\r\n init(spreadsheet: wjcSheet.FlexSheet, upgsOwners: Upgrader[], sheetType: SpreadsheetTitle) {\r\n this.spreadsheet = spreadsheet;\r\n this.removeSheetHandlersByType(sheetType);\r\n this.removeAllUtilitiesSheetsByType(sheetType);\r\n\r\n let cont = 0;\r\n upgsOwners.forEach((upg, idx) => {\r\n if (sheetType === SpreadsheetTitle.STEAM_REPORT) {\r\n const findUpgraderSteamChild = this.coreService.currentCase.filterUnitOperations(\r\n uo => uo instanceof WaterUtilityUnitOperation && uo.flowsheetId === upg.id\r\n );\r\n if (findUpgraderSteamChild.length !== 0) {\r\n cont++;\r\n const steamSheetHandlerV2 = new SteamSheetHandler(this.coreService, upg, this.nuc);\r\n steamSheetHandlerV2.sheetIndex = this.getSheetIndex() + cont;\r\n steamSheetHandlerV2.init(\r\n this.spreadsheet,\r\n `${upg.name} - ${SpreadsheetTitle.STEAM_REPORT}`,\r\n steamSheetHandlerV2.sheetIndex\r\n );\r\n this.sheetHandlers.push(steamSheetHandlerV2);\r\n }\r\n } else {\r\n const hydrogenSheetHandlerV2 = new HydrogenSheetHandler(this.coreService, upg, this.nuc);\r\n hydrogenSheetHandlerV2.sheetIndex = 2 + idx;\r\n hydrogenSheetHandlerV2.init(\r\n this.spreadsheet,\r\n `${upg.name} - ${SpreadsheetTitle.HYDROGEN}`,\r\n hydrogenSheetHandlerV2.sheetIndex\r\n );\r\n this.sheetHandlers.push(hydrogenSheetHandlerV2);\r\n }\r\n this.caseToSpreadsheet(this.coreService.currentCase, upg, sheetType);\r\n this.addEventsHandlers(spreadsheet, upg, sheetType);\r\n });\r\n\r\n // TODO add more initialization code tht only exists in water-utility-unit-operation-spreadsheet-service\r\n }\r\n\r\n addEventsHandlers(spreadsheet: wjcSheet.FlexSheet, upgOwner: Upgrader, sheetType: SpreadsheetTitle) {\r\n spreadsheet.cellEditEnding.addHandler((ss: wjcSheet.FlexSheet, flexSheetEvent: any) => {\r\n this.sheetHandlers.forEach(sh => {\r\n if (sh.sheetName === `${upgOwner.name} - ${sheetType}`) {\r\n sh.handleEditEvent(ss, flexSheetEvent);\r\n }\r\n });\r\n });\r\n\r\n spreadsheet.pastingCell.addHandler((ss: wjcSheet.FlexSheet, flexSheetEvent: any) => {\r\n this.sheetHandlers.forEach(sh => {\r\n if (sh.sheetName === `${upgOwner.name} - ${sheetType}`) {\r\n sh.handlePasteEvent(ss, flexSheetEvent);\r\n }\r\n });\r\n });\r\n }\r\n\r\n caseToSpreadsheet(c: Case, upgOwner: Upgrader, sheetType: SpreadsheetTitle): void {\r\n this.sheetHandlers.forEach(sh => {\r\n if (sh.belongsToUnitOperation(upgOwner.id, sheetType)) {\r\n sh.caseToSpreadsheet(c, upgOwner);\r\n }\r\n });\r\n }\r\n\r\n addUnitOperation(unitOperation: SuncorUnitOperation, upgOwner: Upgrader, sheetType?: SpreadsheetTitle): void {\r\n this.sheetHandlers.forEach(sh => {\r\n if (sh.belongsToUnitOperation(upgOwner.id, sheetType)) {\r\n sh.addUnitOperation(unitOperation);\r\n }\r\n });\r\n }\r\n\r\n clearResults(): void {\r\n this.sheetHandlers.forEach(sh => {\r\n sh.clearResults();\r\n });\r\n }\r\n\r\n updateUnitOperation(unitOperation: SuncorUnitOperation, upgOwner: Upgrader, sheetType?: SpreadsheetTitle): void {\r\n this.sheetHandlers.forEach(sh => {\r\n if (sh.belongsToUnitOperation(upgOwner.id, sheetType)) {\r\n sh.updateUnitOperation(unitOperation);\r\n }\r\n });\r\n }\r\n\r\n removeUnitOperation(unitOperation: SuncorUnitOperation, upgOwner: Upgrader, sheetType?: SpreadsheetTitle): void {\r\n this.sheetHandlers.forEach(sh => {\r\n if (sh.belongsToUnitOperation(upgOwner.id, sheetType)) {\r\n sh.removeUnitOperation(unitOperation);\r\n }\r\n });\r\n }\r\n\r\n removeAllUtilitiesSheetsByType(sheetType: SpreadsheetTitle) {\r\n const sheetNames = [];\r\n this.spreadsheet.sheets.forEach(sheet => {\r\n if (sheet.name.includes(` - ${sheetType}`)) {\r\n sheetNames.push(sheet.name);\r\n }\r\n });\r\n\r\n sheetNames.forEach(name => {\r\n this.spreadsheet.sheets.forEach((sheet, idx) => {\r\n if (sheet.name === name) {\r\n this.spreadsheet.sheets.removeAt(idx);\r\n }\r\n });\r\n });\r\n }\r\n\r\n removeUtilitiesSheetsByUpgOwner(upgOwner: Upgrader, allSheets: boolean) {\r\n this.spreadsheet.sheets.forEach((sheet, idx) => {\r\n if (allSheets) {\r\n if (sheet.name === `${upgOwner.name} - ${SpreadsheetTitle.HYDROGEN}`) {\r\n this.spreadsheet.sheets.removeAt(idx);\r\n }\r\n }\r\n if (sheet.name === `${upgOwner.name} - ${SpreadsheetTitle.STEAM_REPORT}`) {\r\n this.spreadsheet.sheets.removeAt(idx);\r\n }\r\n });\r\n }\r\n\r\n removeSheetHandlersByType(sheetType: string) {\r\n const sheetNames = [];\r\n this.sheetHandlers.forEach(sheetHandler => {\r\n if (sheetHandler.sheetName.includes(` - ${sheetType}`)) {\r\n sheetNames.push(sheetHandler.sheetName);\r\n }\r\n });\r\n\r\n sheetNames.forEach(name => {\r\n this.sheetHandlers.forEach((sheet, idx) => {\r\n if (sheet.sheetName === name) {\r\n this.sheetHandlers.splice(idx, 1);\r\n }\r\n });\r\n });\r\n }\r\n\r\n getSheetIndex() {\r\n let lastH2sSheetIdx = null;\r\n this.spreadsheet.sheets.forEach((sheet, idx) => {\r\n if (sheet.name.includes(SpreadsheetTitle.ACID_GAS_SULFUR)) {\r\n lastH2sSheetIdx = idx;\r\n }\r\n });\r\n return lastH2sSheetIdx;\r\n }\r\n}\r\n","import { H2sSpreadsheetModel } from '../../../_models/utilities-spreadsheet/h2s-spreadsheet.model';\r\nimport { NumberToUnitConverter } from '../../number-to-unit-converter.service';\r\nimport { GasContributorUnitOperation } from '../../../_models/_unit-operations/gas-contributor-unit-operation';\r\nimport { VAC } from '../../../_models/_unit-operations/vac';\r\nimport { Hydrotreater } from '../../../_models/_unit-operations/hydrotreater';\r\nimport { Hydrocracker } from '../../../_models/_unit-operations/hydrocracker';\r\nimport { DCU } from '../../../_models/_unit-operations/dcu';\r\nimport { HgoHydrotreater } from '../../../_models/_unit-operations/hgo-hydrotreater';\r\nimport { FluidCoker } from '../../../_models/_unit-operations/fluid-coker';\r\nimport { SulfurPlant } from '../../../_models/_unit-operations/sulfur-plant';\r\nimport { LgoHydrotreater } from '../../../_models/_unit-operations/lgo-hydrotreater';\r\nimport { unitOperationsConfig } from '../../../_config/unit-operations.config';\r\n\r\ndeclare let unitConverter: any;\r\nexport type H2sFirstSectionUnitOperation =\r\n | VAC\r\n | Hydrotreater\r\n | Hydrocracker\r\n | DCU\r\n | HgoHydrotreater\r\n | FluidCoker\r\n | LgoHydrotreater;\r\n\r\nexport class H2sSheetUtils {\r\n protected readonly DEFAULT_NUMBER_OF_ROWS = 40;\r\n\r\n constructor(private items: H2sSpreadsheetModel[], private nuc: NumberToUnitConverter) {}\r\n\r\n addUnitOperationToSpreadsheetItem(uo: GasContributorUnitOperation, item: H2sSpreadsheetModel): void {\r\n const h2sUo = uo as H2sFirstSectionUnitOperation;\r\n item.id = uo.id;\r\n item.h2sProductionRate = h2sUo.h2sProductionRate.convertToDefaultUnit();\r\n item.unitOperationName = uo.name;\r\n item.unitCategory = uo.category;\r\n const unit = uo.ownerCase.getUnitOperation(uo.id) as LgoHydrotreater;\r\n\r\n if (unit.category === unitOperationsConfig.lgoHydrotreater.key) {\r\n item.useCustomModel = unit.useCustomModel;\r\n }\r\n\r\n if (uo.ownerCase.isSolved) {\r\n item.h2sProduction = h2sUo.h2sProduction.convertToDefaultUnit();\r\n }\r\n }\r\n\r\n addSulfurPlantToSpreadsheetItem(uo: SulfurPlant, item: H2sSpreadsheetModel): void {\r\n item.sulfurPlantId = uo.id;\r\n item.sulfurPlantName = uo.name;\r\n\r\n item.sulfurCapacity = this.nuc.convert(\r\n uo.sulfurCapacity.value,\r\n uo.sulfurCapacity.quantity,\r\n unitConverter.units.Moleflowrate.MMSCFD\r\n );\r\n\r\n if (uo.ownerCase.isSolved) {\r\n item.sulfurFlowrate = this.nuc.convert(\r\n uo.sulfurFlowrate.value,\r\n uo.sulfurFlowrate.quantity,\r\n unitConverter.units.Moleflowrate.MMSCFD\r\n );\r\n }\r\n }\r\n\r\n findItemByUnitOperationIdOrSulfurPlantId(id: string) {\r\n return this.items.find(i => i.id === id || i.sulfurPlantId === id);\r\n }\r\n\r\n isItemEmpty(item: H2sSpreadsheetModel): boolean {\r\n return !item.id && !item.sulfurPlantId;\r\n }\r\n\r\n copyUnitOperationItemData(source: H2sSpreadsheetModel, destination: H2sSpreadsheetModel): void {\r\n destination.id = source.id;\r\n destination.unitOperationName = source.unitOperationName;\r\n destination.h2sProductionRate = source.h2sProductionRate;\r\n destination.h2sProduction = source.h2sProduction;\r\n destination.useCustomModel = source.useCustomModel;\r\n destination.unitCategory = source.unitCategory;\r\n }\r\n\r\n copySulfurPlantItemData(source: H2sSpreadsheetModel, destination: H2sSpreadsheetModel): void {\r\n destination.sulfurPlantId = source.sulfurPlantId;\r\n destination.sulfurPlantName = source.sulfurPlantName;\r\n destination.sulfurCapacity = source.sulfurCapacity;\r\n destination.sulfurFlowrate = source.sulfurFlowrate;\r\n }\r\n\r\n clearSulfurPlantData(item: H2sSpreadsheetModel): void {\r\n item.sulfurPlantId = '';\r\n item.sulfurPlantName = '';\r\n item.sulfurCapacity = undefined;\r\n item.sulfurFlowrate = undefined;\r\n }\r\n\r\n clearUnitOperationData(item: H2sSpreadsheetModel): void {\r\n item.id = '';\r\n item.unitOperationName = '';\r\n item.h2sProductionRate = undefined;\r\n item.h2sProduction = undefined;\r\n item.useCustomModel = undefined;\r\n item.unitCategory = undefined;\r\n }\r\n\r\n removeItem(item: H2sSpreadsheetModel): void {\r\n const index = this.items.indexOf(item);\r\n this.items.splice(index, 1);\r\n\r\n // keep the minimum amount of rows\r\n if (this.items.length < this.DEFAULT_NUMBER_OF_ROWS) {\r\n this.items.push({});\r\n }\r\n }\r\n\r\n clearSpreadsheetItems(): void {\r\n // delete the items above index covered by the default number of rows\r\n this.items.splice(this.DEFAULT_NUMBER_OF_ROWS, this.items.length - this.DEFAULT_NUMBER_OF_ROWS);\r\n for (let i = 0; i < this.DEFAULT_NUMBER_OF_ROWS; i++) {\r\n this.items[i] = {};\r\n }\r\n }\r\n}\r\n","import { H2sSpreadsheetModel } from '../../../_models/utilities-spreadsheet/h2s-spreadsheet.model';\r\nimport { H2sSheetUtils } from './h2s-sheet-utils';\r\n\r\nexport class H2sSheetItemDataShifter {\r\n constructor(private items: H2sSpreadsheetModel[], private h2sUtils: H2sSheetUtils) {}\r\n\r\n /** *\r\n * Shifts upwards the data of items below, fills empty space left after deleting a unit operation\r\n * @param emptyItem The item that was left empty after a unit operation was deleted\r\n * @param belongsToFirstSection whether the data to be shifted belongs to the first section or not\r\n */\r\n\r\n shiftItemData(emptyItem: H2sSpreadsheetModel, belongsToFirstSection: boolean) {\r\n const startIndex = this.items.indexOf(emptyItem);\r\n const copyDataMethod: (s: H2sSpreadsheetModel, d: H2sSpreadsheetModel) => void = belongsToFirstSection\r\n ? this.h2sUtils.copyUnitOperationItemData\r\n : this.h2sUtils.copySulfurPlantItemData;\r\n\r\n const clearDataMethod: (item: H2sSpreadsheetModel) => void = belongsToFirstSection\r\n ? this.h2sUtils.clearUnitOperationData\r\n : this.h2sUtils.clearSulfurPlantData;\r\n\r\n let lastItem;\r\n\r\n for (let i = startIndex; i < this.items.length; i++) {\r\n const currentItem = this.items[i];\r\n if (i === this.items.length - 1) {\r\n clearDataMethod(currentItem);\r\n lastItem = currentItem;\r\n\r\n continue;\r\n }\r\n\r\n const nextItem = this.items[i + 1];\r\n copyDataMethod(nextItem, currentItem);\r\n }\r\n\r\n if (this.h2sUtils.isItemEmpty(lastItem)) {\r\n this.h2sUtils.removeItem(lastItem);\r\n }\r\n }\r\n}\r\n","import { DataType } from '@grapecity/wijmo';\r\n\r\nexport class H2sSheetColumnsConfiguration {\r\n static get() {\r\n return [\r\n {\r\n header: 'Unit Operation Name',\r\n binding: 'unitOperationName',\r\n dataType: DataType.String,\r\n width: 200,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: 'Acid Gas & Sulphur (scf/bbl)',\r\n binding: 'h2sProductionRate',\r\n dataType: DataType.Number,\r\n width: 220,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: 'H2S Production (MMSCFD)',\r\n binding: 'h2sProduction',\r\n dataType: DataType.Number,\r\n width: 200,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: '',\r\n binding: '',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: 'Sulfur Plant Name',\r\n binding: 'sulfurPlantName',\r\n dataType: DataType.String,\r\n width: 200,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: 'Sulfur Plant Capacity (MMSCFD)',\r\n binding: 'sulfurCapacity',\r\n dataType: DataType.Number,\r\n width: 220,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: 'Sulfur Processing Rate (MMSCFD)',\r\n binding: 'sulfurFlowrate',\r\n dataType: DataType.Number,\r\n width: 220,\r\n isReadOnly: true,\r\n },\r\n // empty columns to fill the screen...\r\n {\r\n header: '',\r\n binding: '',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: '',\r\n binding: '',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: '',\r\n binding: '',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: '',\r\n binding: '',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: '',\r\n binding: '',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: '',\r\n binding: '',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: '',\r\n binding: '',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: '',\r\n binding: '',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: '',\r\n binding: '',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: '',\r\n binding: '',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: '',\r\n binding: '',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: '',\r\n binding: '',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: '',\r\n binding: '',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n {\r\n header: '',\r\n binding: '',\r\n dataType: DataType.String,\r\n width: 120,\r\n isReadOnly: true,\r\n },\r\n ];\r\n }\r\n}\r\n","export enum H2sItemType {\r\n TOTAL = 'Total',\r\n}\r\n","export enum H2sItemTitle {\r\n TOTAL = 'Total',\r\n}\r\n","import * as wjGrid from '@grapecity/wijmo.grid';\r\nimport { CollectionView } from '@grapecity/wijmo';\r\nimport * as wjcSheet from '@grapecity/wijmo.grid.sheet';\r\nimport { H2sSpreadsheetModel } from '../../../_models/utilities-spreadsheet/h2s-spreadsheet.model';\r\nimport { NumberToUnitConverter } from '../../number-to-unit-converter.service';\r\nimport { H2sFirstSectionUnitOperation, H2sSheetUtils } from './h2s-sheet-utils';\r\nimport { H2sSheetItemDataShifter } from './h2s-sheet-item-data-shifter.service';\r\nimport { Case, UnitOperation } from '../../../_models';\r\nimport { H2sSheetColumnsConfiguration } from './h2s-sheet-columns.configuration';\r\nimport { SpreadsheetTitle } from '../../../_config/spreadsheet/spreadsheet-title.enum';\r\nimport { SuncorUnitOperation } from '../../../_models/_unit-operations/suncor-unit-operation';\r\nimport { VAC } from '../../../_models/_unit-operations/vac';\r\nimport { Hydrocracker } from '../../../_models/_unit-operations/hydrocracker';\r\nimport { Hydrotreater } from '../../../_models/_unit-operations/hydrotreater';\r\nimport { DCU } from '../../../_models/_unit-operations/dcu';\r\nimport { HgoHydrotreater } from '../../../_models/_unit-operations/hgo-hydrotreater';\r\nimport { FluidCoker } from '../../../_models/_unit-operations/fluid-coker';\r\nimport { LgoHydrotreater } from '../../../_models/_unit-operations/lgo-hydrotreater';\r\nimport { SulfurPlant } from '../../../_models/_unit-operations/sulfur-plant';\r\nimport { GasContributorUnitOperation } from '../../../_models/_unit-operations/gas-contributor-unit-operation';\r\nimport { H2sItemType } from '../../../_config/spreadsheet/h2s-item-type.enum';\r\nimport { H2sItemTitle } from '../../../_config/spreadsheet/h2s-item-title.enum';\r\nimport { hasNumericValue } from '../../../_utils/utils';\r\nimport { Quantity } from '../../../_config/quantity.enum';\r\nimport { unitOperationsConfig } from '../../../_config/unit-operations.config';\r\n\r\ndeclare let unitConverter: any;\r\n\r\nexport class UpgraderH2sSheetHandler {\r\n protected grid: wjGrid.FlexGrid;\r\n items: H2sSpreadsheetModel[];\r\n protected sheetIndex: number;\r\n private sheetName: string;\r\n private h2sUtils: H2sSheetUtils;\r\n private h2sItemShifter: H2sSheetItemDataShifter;\r\n\r\n private ownerUnitOperationId: string;\r\n\r\n constructor(private ownerUnitOperation: UnitOperation, private nuc: NumberToUnitConverter) {\r\n this.items = [];\r\n this.h2sUtils = new H2sSheetUtils(this.items, this.nuc);\r\n this.h2sItemShifter = new H2sSheetItemDataShifter(this.items, this.h2sUtils);\r\n this.ownerUnitOperationId = ownerUnitOperation.id;\r\n }\r\n\r\n init(spreadsheet: wjcSheet.FlexSheet, c: Case, index: number) {\r\n this.grid = new wjGrid.FlexGrid(document.createElement('div'), {\r\n autoGenerateColumns: false,\r\n columns: H2sSheetColumnsConfiguration.get(),\r\n frozenRows: 1,\r\n });\r\n\r\n this.h2sUtils.clearSpreadsheetItems();\r\n const data = this.createCollectionView();\r\n this.setSheetIndex(spreadsheet);\r\n this.sheetName = `${this.ownerUnitOperation.name} - ${SpreadsheetTitle.ACID_GAS_SULFUR}`;\r\n\r\n spreadsheet.addBoundSheet(this.sheetName, data, this.sheetIndex + index, this.grid);\r\n }\r\n\r\n protected createCollectionView() {\r\n return new CollectionView(this.items);\r\n }\r\n\r\n caseToSpreadsheet(c: Case): void {\r\n for (const id in c.unitOperationPool) {\r\n const uo = c.unitOperationPool[id] as SuncorUnitOperation;\r\n if (this.isUnitOperationAllowed(uo)) {\r\n this.addUnitOperationWithoutRefreshing(uo);\r\n }\r\n }\r\n\r\n // add the totals\r\n if (c.isSolved) {\r\n const grandTotal = this.calculateTotals(c);\r\n const firstSectionTotal = this.getFirstSectionFreeItem();\r\n const secondSectionTotal = this.getSecondSectionFreeItem();\r\n\r\n this.h2sUtils.copyUnitOperationItemData(grandTotal, firstSectionTotal);\r\n this.h2sUtils.copySulfurPlantItemData(grandTotal, secondSectionTotal);\r\n }\r\n }\r\n\r\n addUnitOperation(uo: UnitOperation): void {\r\n if (this.isUnitOperationAllowed(uo)) {\r\n this.addUnitOperationWithoutRefreshing(uo);\r\n this.grid.collectionView.refresh();\r\n }\r\n }\r\n\r\n updateUnitOperation(uo: UnitOperation): void {\r\n if (!this.isUnitOperationAllowed(uo)) {\r\n return;\r\n }\r\n\r\n const item = this.h2sUtils.findItemByUnitOperationIdOrSulfurPlantId(uo.id);\r\n\r\n if (item) {\r\n if (this.unitOperationBelongsToFirstSection(uo)) {\r\n this.h2sUtils.addUnitOperationToSpreadsheetItem(uo as GasContributorUnitOperation, item);\r\n } else if (this.unitOperationBelongsToSecondSection(uo)) {\r\n this.h2sUtils.addSulfurPlantToSpreadsheetItem(uo as SulfurPlant, item);\r\n }\r\n\r\n this.grid.collectionView.refresh();\r\n }\r\n }\r\n\r\n removeUnitOperation(uo: UnitOperation): void {\r\n if (!this.isUnitOperationAllowed(uo)) {\r\n return;\r\n }\r\n\r\n const item = this.h2sUtils.findItemByUnitOperationIdOrSulfurPlantId(uo.id);\r\n const belongsToFirstSection = this.unitOperationBelongsToFirstSection(uo);\r\n\r\n if (belongsToFirstSection) {\r\n this.h2sUtils.clearUnitOperationData(item);\r\n } else {\r\n this.h2sUtils.clearSulfurPlantData(item);\r\n }\r\n\r\n // if no unit operation was left in the row...\r\n if (this.h2sUtils.isItemEmpty(item)) {\r\n this.h2sUtils.removeItem(item);\r\n } else {\r\n this.h2sItemShifter.shiftItemData(item, belongsToFirstSection);\r\n }\r\n\r\n this.grid.collectionView.refresh();\r\n }\r\n\r\n isUnitOperationAllowed(uo: UnitOperation): boolean {\r\n return (\r\n (this.unitOperationBelongsToFirstSection(uo) || this.unitOperationBelongsToSecondSection(uo)) &&\r\n uo.flowsheetId === this.ownerUnitOperationId\r\n );\r\n }\r\n\r\n unitOperationBelongsToFirstSection(uo: UnitOperation): boolean {\r\n return (\r\n uo instanceof VAC ||\r\n uo instanceof Hydrocracker ||\r\n uo instanceof Hydrotreater ||\r\n uo instanceof DCU ||\r\n uo instanceof HgoHydrotreater ||\r\n uo instanceof FluidCoker ||\r\n uo instanceof LgoHydrotreater\r\n );\r\n }\r\n\r\n unitOperationBelongsToSecondSection(uo: UnitOperation): uo is SulfurPlant {\r\n return uo instanceof SulfurPlant;\r\n }\r\n\r\n addUnitOperationWithoutRefreshing(uo: UnitOperation): void {\r\n if (this.unitOperationBelongsToFirstSection(uo)) {\r\n this.addUnitOperationToFirstSection(uo as GasContributorUnitOperation);\r\n } else if (this.unitOperationBelongsToSecondSection(uo)) {\r\n this.addSulfurPlantToSecondSection(uo);\r\n }\r\n }\r\n\r\n clearResults(): void {\r\n for (const item of this.items) {\r\n item.h2sProduction = undefined;\r\n item.sulfurFlowrate = undefined;\r\n\r\n if (item.unitCategory === unitOperationsConfig.lgoHydrotreater.key && item.useCustomModel) {\r\n item.h2sProductionRate = undefined;\r\n }\r\n }\r\n\r\n const totals = this.items.filter(i => i.id === H2sItemType.TOTAL || i.sulfurPlantId === H2sItemType.TOTAL);\r\n\r\n for (const t of totals) {\r\n const index = this.items.indexOf(t);\r\n if (t.id !== H2sItemType.TOTAL) {\r\n this.items[index].sulfurCapacity = undefined;\r\n this.items[index].sulfurPlantName = undefined;\r\n this.items[index].sulfurPlantId = undefined;\r\n } else {\r\n this.items.splice(index, 1);\r\n }\r\n }\r\n }\r\n\r\n addUnitOperationToFirstSection(uo: GasContributorUnitOperation): void {\r\n const item = this.getFirstSectionFreeItem();\r\n this.h2sUtils.addUnitOperationToSpreadsheetItem(uo, item);\r\n }\r\n\r\n addSulfurPlantToSecondSection(uo: SulfurPlant): void {\r\n const item = this.getSecondSectionFreeItem();\r\n this.h2sUtils.addSulfurPlantToSpreadsheetItem(uo, item);\r\n }\r\n\r\n getFirstSectionFreeItem(): H2sSpreadsheetModel {\r\n let freeItem = this.items.find(i => this.firstSectionItemIsFree(i));\r\n\r\n if (!freeItem) {\r\n const newItem = {};\r\n this.items.push(newItem);\r\n freeItem = newItem;\r\n }\r\n return freeItem;\r\n }\r\n\r\n getSecondSectionFreeItem(): H2sSpreadsheetModel {\r\n let freeItem = this.items.find(i => this.secondSectionItemIsFree(i));\r\n\r\n if (!freeItem) {\r\n const newItem = {};\r\n this.items.push(newItem);\r\n freeItem = newItem;\r\n }\r\n return freeItem;\r\n }\r\n\r\n firstSectionItemIsFree(item: H2sSpreadsheetModel): boolean {\r\n return !item.id;\r\n }\r\n\r\n secondSectionItemIsFree(item: H2sSpreadsheetModel): boolean {\r\n return !item.sulfurPlantId;\r\n }\r\n\r\n calculateTotals(c: Case): H2sSpreadsheetModel {\r\n const total: H2sSpreadsheetModel = {\r\n id: H2sItemType.TOTAL,\r\n unitOperationName: H2sItemTitle.TOTAL,\r\n h2sProductionRate: undefined,\r\n h2sProduction: 0,\r\n sulfurPlantId: H2sItemType.TOTAL,\r\n sulfurPlantName: H2sItemTitle.TOTAL,\r\n sulfurFlowrate: 0,\r\n sulfurCapacity: 0,\r\n };\r\n\r\n for (const id in c.unitOperationPool) {\r\n const uo = c.unitOperationPool[id] as SuncorUnitOperation;\r\n if (uo.flowsheetId === this.ownerUnitOperationId) {\r\n if (this.unitOperationBelongsToFirstSection(uo)) {\r\n const h2sUo = uo as H2sFirstSectionUnitOperation;\r\n total.h2sProduction += hasNumericValue(h2sUo.h2sProduction.value) ? h2sUo.h2sProduction.value : 0;\r\n } else if (this.unitOperationBelongsToSecondSection(uo)) {\r\n total.sulfurFlowrate += hasNumericValue(uo.sulfurFlowrate.value) ? uo.sulfurFlowrate.value : 0;\r\n total.sulfurCapacity += hasNumericValue(uo.sulfurCapacity.value) ? uo.sulfurCapacity.value : 0;\r\n }\r\n }\r\n }\r\n\r\n total.h2sProduction = this.nuc.convert(\r\n total.h2sProduction,\r\n Quantity.MOLEFLOWRATE,\r\n unitConverter.units.Moleflowrate.MMSCFD\r\n );\r\n\r\n total.sulfurFlowrate = this.nuc.convert(\r\n total.sulfurFlowrate,\r\n Quantity.MOLEFLOWRATE,\r\n unitConverter.units.Moleflowrate.MMSCFD\r\n );\r\n\r\n total.sulfurCapacity = this.nuc.convert(\r\n total.sulfurCapacity,\r\n Quantity.MOLEFLOWRATE,\r\n unitConverter.units.Moleflowrate.MMSCFD\r\n );\r\n\r\n return total;\r\n }\r\n\r\n /**\r\n * Returns true if this sheet belongs to the unit operation represented by the id\r\n * @param id\r\n */\r\n belongsToUnitOperation(id: string) {\r\n return this.ownerUnitOperationId === id;\r\n }\r\n\r\n setSheetIndex(spreadsheet: wjcSheet.FlexSheet) {\r\n let lastHydrogenSheetIdx = null;\r\n spreadsheet.sheets.forEach((sheet, idx) => {\r\n if (sheet.name.includes(SpreadsheetTitle.HYDROGEN)) {\r\n lastHydrogenSheetIdx = idx;\r\n }\r\n });\r\n this.sheetIndex = lastHydrogenSheetIdx + 1;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport * as wjcSheet from '@grapecity/wijmo.grid.sheet';\r\nimport { Case, UnitOperation } from '../../../_models';\r\nimport { CoreService } from '../../core.service';\r\nimport { NumberToUnitConverter } from '../../number-to-unit-converter.service';\r\nimport { SpreadsheetTitle } from '../../../_config/spreadsheet/spreadsheet-title.enum';\r\nimport { Upgrader } from '../../../_models/_unit-operations/upgrader';\r\nimport { UpgraderH2sSheetHandler } from './upgrader-h2s-sheet-handler';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class H2sSheetGroupHandler {\r\n // TODO probably remove this\r\n private spreadsheet: wjcSheet.FlexSheet;\r\n private sheetHandlers: UpgraderH2sSheetHandler[];\r\n\r\n constructor(private coreService: CoreService, private nuc: NumberToUnitConverter) {}\r\n\r\n // region init - base code\r\n init(spreadsheet: wjcSheet.FlexSheet, upgsOwners: Upgrader[]) {\r\n this.spreadsheet = spreadsheet;\r\n this.sheetHandlers = [];\r\n this.removeAllH2sSheets();\r\n\r\n upgsOwners.forEach((upg, index) => {\r\n const upgraderH2sSheetHandler = new UpgraderH2sSheetHandler(upg, this.nuc);\r\n upgraderH2sSheetHandler.init(this.spreadsheet, this.coreService.currentCase, index);\r\n this.sheetHandlers.push(upgraderH2sSheetHandler);\r\n this.caseToSpreadsheet(this.coreService.currentCase, upg);\r\n });\r\n }\r\n\r\n caseToSpreadsheet(c: Case, upgOwner: Upgrader) {\r\n this.sheetHandlers.forEach(sh => {\r\n if (sh.belongsToUnitOperation(upgOwner.id)) {\r\n sh.caseToSpreadsheet(c);\r\n }\r\n });\r\n }\r\n // endregion\r\n\r\n // region adding\r\n addUnitOperation(uo: UnitOperation): void {\r\n this.sheetHandlers.forEach(sh => {\r\n if (sh.belongsToUnitOperation(uo.flowsheetId)) {\r\n sh.addUnitOperation(uo);\r\n }\r\n });\r\n }\r\n // endregion\r\n\r\n // region updating\r\n updateUnitOperation(uo: UnitOperation): void {\r\n this.sheetHandlers.forEach(sh => {\r\n if (sh.belongsToUnitOperation(uo.flowsheetId)) {\r\n sh.updateUnitOperation(uo);\r\n }\r\n });\r\n }\r\n // endregion\r\n\r\n // region removing\r\n removeUnitOperation(uo: UnitOperation): void {\r\n this.sheetHandlers.forEach(sh => {\r\n if (sh.belongsToUnitOperation(uo.flowsheetId)) {\r\n sh.removeUnitOperation(uo);\r\n }\r\n });\r\n }\r\n // endregion\r\n\r\n clearResults(): void {\r\n this.sheetHandlers.forEach(sh => {\r\n sh.clearResults();\r\n });\r\n }\r\n\r\n removeAllH2sSheets() {\r\n const sheetNames = [];\r\n this.spreadsheet.sheets.forEach(sheet => {\r\n if (sheet.name.includes(` - ${SpreadsheetTitle.ACID_GAS_SULFUR}`)) {\r\n sheetNames.push(sheet.name);\r\n }\r\n });\r\n\r\n sheetNames.forEach(name => {\r\n this.spreadsheet.sheets.forEach((sheet, idx) => {\r\n if (sheet.name === name) {\r\n this.spreadsheet.sheets.removeAt(idx);\r\n }\r\n });\r\n });\r\n }\r\n\r\n removeH2sSheetsByUpgOwner(upgOwner: Upgrader) {\r\n this.spreadsheet.sheets.forEach((sheet, idx) => {\r\n if (sheet.name === `${upgOwner.name} - ${SpreadsheetTitle.ACID_GAS_SULFUR}`) {\r\n this.spreadsheet.sheets.removeAt(idx);\r\n }\r\n });\r\n this.sheetHandlers.forEach((sh, idx) => {\r\n if (sh.belongsToUnitOperation(upgOwner.id)) {\r\n this.sheetHandlers.splice(idx, 1);\r\n }\r\n });\r\n }\r\n}\r\n","import { AfterViewInit, Component } from '@angular/core';\r\n\r\nimport * as wjcSheet from '@grapecity/wijmo.grid.sheet';\r\nimport * as wjcCore from '@grapecity/wijmo';\r\n\r\nimport { CoreService } from '../../_services/core.service';\r\nimport { FlexSheetSpreadsheetService } from '../../_services/flowsheet-spreadsheet/flex-sheet-spreadsheet.service';\r\nimport { environment } from '../../../environments/environment';\r\nimport { SuncorUnitOperation } from '../../_models/_unit-operations/suncor-unit-operation';\r\nimport { ConstraintsSpreadsheetService } from '../../_services/constraints-spreadsheet/constraints-spreadsheet.service';\r\nimport { UtilitiesSpreadsheetService } from '../../_services/utilities-spreadsheet/utilities-spreadsheet.service';\r\nimport { H2sSheetGroupHandler } from '../../_services/utilities-spreadsheet/h2s/h2s-sheet-group-handler.service';\r\nimport { FlowsheetTreeService } from '../../_services/sub-flowsheet/flowsheet-tree/flowsheet-tree.service';\r\nimport { Upgrader } from '../../_models/_unit-operations/upgrader';\r\nimport { WaterUtilityUnitOperation } from '../../_models/_unit-operations/utilties/water-utility-unit-operation';\r\nimport { WaterUnitOperation } from '../../_models/_unit-operations/utilties/water-unit-operation';\r\nimport { UnitOperation } from '../../_models';\r\nimport { SpreadsheetTitle } from '../../_config/spreadsheet/spreadsheet-title.enum';\r\nimport { isEmptyValue } from '../../_utils/utils';\r\nimport { Mixer } from '../../_models/_unit-operations/mixer';\r\nimport { unitOperationsConfig } from '../../_config/unit-operations.config';\r\nimport { Splitter } from '../../_models/_unit-operations/splitter';\r\n\r\n@Component({\r\n selector: 'sob-flowsheet-spreadsheet',\r\n templateUrl: './flowsheet-spreadsheet.component.html',\r\n styleUrls: ['./flowsheet-spreadsheet.component.css'],\r\n})\r\nexport class FlowsheetSpreadsheetComponent implements AfterViewInit {\r\n flexSheet: wjcSheet.FlexSheet;\r\n constructor(\r\n private coreService: CoreService,\r\n private flexSheetService: FlexSheetSpreadsheetService,\r\n private spreadsheetService: ConstraintsSpreadsheetService,\r\n private utilitiesSpreadsheetV2Service: UtilitiesSpreadsheetService,\r\n private h2sSheetGroupHandler: H2sSheetGroupHandler,\r\n private flowsheetTree: FlowsheetTreeService\r\n ) {\r\n this.updateSpreadsheetWhenCaseReplaced();\r\n this.updateSpreadsheetWhenUnitOpAdded();\r\n this.updateSpreadsheetWhenUnitOpUpdated();\r\n this.updateSpreadsheetWhenUnitOpRemoved();\r\n\r\n this.coreService.assayAddedRequest.subscribe(assay => {\r\n this.flexSheetService.addAssay(assay);\r\n });\r\n\r\n this.coreService.assayUpdatedRequest.subscribe(data => {\r\n this.flexSheetService.updateAssay(data.assay);\r\n });\r\n\r\n this.coreService.assayRemovedRequest.subscribe(assay => {\r\n this.flexSheetService.removeAssay(assay);\r\n });\r\n\r\n if (environment.production) {\r\n wjcCore.setLicenseKey(\r\n // eslint-disable-next-line max-len\r\n 'Process Ecology Inc,test.suncor-optea.com|suncor-optea.com|www.suncor-optea.com,492851145592756#B06dJEDMyIiOiIXZ6JCLlNHbhZmOiI7ckJye0ICbuFkI1pjIEJCLi4TPBVzU5FDULdkQ8cHe5Vkarc4aaJnR9p6KU36RaxWd0FkcIRkTVp7dVZWeUllMwY7SQJ4YJdzU9ATdZNFOI56LHVWREdTULZzN6Nlath7dLRzMJBTNrZHb8AjYXpVSX3mT5UTdnF5KUN6c5gGNYhFV4RmWqpWb4gkZGJHWjh6KYFEOhtWT7NEbJpkd03SRaVzVodGS6JUOoFjUzNnVr4EMUlVQrQDOwkVTQRGaOhkSVRWYix6RXFVMBVVSxUTMrtENGF7NShWUXdTVKtiYOtUdiJjTkVGMm9kZ4JkNwZVVwxUcJVXVypncVlEUklWWzona9dVQGVGVPVFN5pXTOFlbPdlRxNGbvETe986MuJ6TFJVY7Z4c0NmcHdmN584Ymh6dSh6QwlEd9tmVpFURwNTVKVWSqpGTCtGbvBlbz9UaxJ6SulneRtyZrFUNXJFVQ5GalZEZol4TiojITJCLiM4M7QEMyUTMiojIIJCLzEDNyczNwkTN0IicfJye35XX3JSSwIjUiojIDJCLi86bpNnblRHeFBCI4VWZoNFelxmRg2Wbql6ViojIOJyes4nI5kkTRJiOiMkIsIibvl6cuVGd8VEIgIXZ7VWaWRncvBXZSBybtpWaXJiOi8kI1xSfis4N8gkI0IyQiwiIu3Waz9WZ4hXRgAydvJVa4xWdNBybtpWaXJiOi8kI1xSfiQjR6QkI0IyQiwiIu3Waz9WZ4hXRgACUBx4TgAybtpWaXJiOi8kI1xSfiMzQwIkI0IyQiwiIlJ7bDBybtpWaXJiOi8kI1xSfiUFO7EkI0IyQiwiIu3Waz9WZ4hXRgACdyFGaDxWYpNmbh9WaGBybtpWaXJiOi8kI1tlOiQmcQJCLiITN4IDOwASNyATM9EDMyIiOiQncDJCLi46bj9SYlRHcv5icvNmb5NnL7d7ds46bj9SYlRHcv5icvNmb5NHLt36YuEWZ4B7btI7bj9Wdz9CdzVGdiojIz5GRiwiIj9WSgk7Zvx6bjVEIzNXZj3mcQJiOiEmTDJCLiYTN7ITO5UDNxETN8ITO4IiOiQWSiwIfsM'\r\n );\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n // yeah, let's hide the annoying grapecity div\r\n // only in dev :^)\r\n if (!environment.production) {\r\n // nice try, with setTimeout the licensing div is successfully removed\r\n setTimeout(() => {\r\n $('a[href=\"https://www.grapecity.com/licensing/wijmo\"]').parent().remove();\r\n }, 500);\r\n }\r\n }\r\n\r\n initializeFlexSheet(flex: wjcSheet.FlexSheet) {\r\n this.flexSheet = flex;\r\n this.flexSheetService.init(flex);\r\n this.spreadsheetService.init(flex);\r\n }\r\n\r\n initializeH2sSheets() {\r\n const upgOwners = this.flowsheetTree.getUpgradersWithSubFlowsheet(this.currentCase);\r\n if (upgOwners.length !== 0) {\r\n this.h2sSheetGroupHandler.init(this.flexSheet, upgOwners);\r\n }\r\n }\r\n\r\n initializeUtilitiesSheets(sheetType: SpreadsheetTitle) {\r\n const upgsOwners = this.flowsheetTree.getUpgradersWithSubFlowsheet(this.currentCase);\r\n if (upgsOwners.length !== 0) {\r\n this.utilitiesSpreadsheetV2Service.init(this.flexSheet, upgsOwners, sheetType);\r\n }\r\n }\r\n\r\n updateSpreadsheetWhenCaseReplaced() {\r\n this.coreService.currentCaseReplacedRequest.subscribe(() => {\r\n this.initializeUtilitiesSheets(SpreadsheetTitle.HYDROGEN);\r\n this.initializeH2sSheets();\r\n this.initializeUtilitiesSheets(SpreadsheetTitle.STEAM_REPORT);\r\n this.spreadsheetService.caseToSpreadsheet(this.coreService.currentCase);\r\n });\r\n }\r\n\r\n updateSpreadsheetWhenUnitOpAdded() {\r\n this.coreService.unitOperationAddedRequest.subscribe(uo => {\r\n const upgraderOwner = this.flowsheetTree.getUpgradersWithSubFlowsheet(this.currentCase, uo.flowsheetId)[0];\r\n\r\n this.flexSheetService.addUnitOperation(uo);\r\n this.spreadsheetService.addUnitOperation(uo as SuncorUnitOperation);\r\n this.updateUtilitiesSheetsWhenUnitOpAdded(uo);\r\n\r\n if (!isEmptyValue(uo.flowsheetId) && upgraderOwner) {\r\n this.h2sSheetGroupHandler.addUnitOperation(uo);\r\n this.initializeH2sSheets();\r\n this.h2sSheetGroupHandler.clearResults();\r\n }\r\n\r\n this.flexSheetService.clearResults();\r\n this.spreadsheetService.clearResults();\r\n });\r\n }\r\n\r\n updateSpreadsheetWhenUnitOpUpdated() {\r\n this.coreService.unitOperationUpdatedRequest.subscribe(data => {\r\n const upgraderOwner = this.flowsheetTree.getUpgradersWithSubFlowsheet(\r\n this.currentCase,\r\n data.unitOperation.flowsheetId\r\n )[0];\r\n\r\n this.flexSheetService.updateUnitOperation(data.unitOperation as SuncorUnitOperation);\r\n this.spreadsheetService.updateConstraintValue(data.unitOperation as SuncorUnitOperation);\r\n\r\n if (data.unitOperation instanceof Upgrader) {\r\n const childUnitOperations = this.coreService.currentCase.filterUnitOperations(\r\n uo => uo.flowsheetId === data.unitOperation.id\r\n );\r\n if (childUnitOperations.length === 0) {\r\n this.initializeUtilitiesSheets(SpreadsheetTitle.HYDROGEN);\r\n this.initializeH2sSheets();\r\n this.initializeUtilitiesSheets(SpreadsheetTitle.STEAM_REPORT);\r\n }\r\n }\r\n this.updateUtilitiesSheetsWhenUnitOpUpdated(data.unitOperation);\r\n if (!isEmptyValue(data.unitOperation.flowsheetId) && upgraderOwner) {\r\n this.h2sSheetGroupHandler.updateUnitOperation(data.unitOperation);\r\n this.h2sSheetGroupHandler.clearResults();\r\n }\r\n this.flexSheetService.clearResults();\r\n this.spreadsheetService.clearResults();\r\n });\r\n }\r\n\r\n updateSpreadsheetWhenUnitOpRemoved() {\r\n this.coreService.unitOperationRemovedRequest.subscribe(uo => {\r\n const upgraderOwner = this.flowsheetTree.getUpgradersWithSubFlowsheet(this.currentCase, uo.flowsheetId)[0];\r\n\r\n this.flexSheetService.removeUnitOperation(uo as SuncorUnitOperation);\r\n this.spreadsheetService.removeUnitOperation(uo as SuncorUnitOperation);\r\n this.updateUtilitiesSheetsWhenUnitOpRemoved(uo);\r\n\r\n if (!isEmptyValue(uo.flowsheetId) && upgraderOwner) {\r\n this.h2sSheetGroupHandler.removeUnitOperation(uo);\r\n this.initializeH2sSheets();\r\n this.h2sSheetGroupHandler.clearResults();\r\n }\r\n if (uo instanceof Upgrader && uo.isFlowsheetOwner) {\r\n this.utilitiesSpreadsheetV2Service.removeUtilitiesSheetsByUpgOwner(uo, true);\r\n this.h2sSheetGroupHandler.removeH2sSheetsByUpgOwner(uo);\r\n }\r\n\r\n this.flexSheetService.clearResults();\r\n this.spreadsheetService.clearResults();\r\n });\r\n }\r\n\r\n updateUtilitiesSheetsWhenUnitOpAdded(uo: UnitOperation) {\r\n const upgraderOwner = this.flowsheetTree.getUpgradersWithSubFlowsheet(this.currentCase, uo.flowsheetId)[0];\r\n\r\n if (uo instanceof WaterUnitOperation) {\r\n const steamAndPowerOwner = this.getSteamAndPowerSubFlowsheet(uo);\r\n const steamAndPowerUpgraderOwner = this.flowsheetTree.getUpgradersWithSubFlowsheet(\r\n this.currentCase,\r\n steamAndPowerOwner[0].flowsheetId\r\n )[0];\r\n\r\n this.utilitiesSpreadsheetV2Service.addUnitOperation(\r\n uo as SuncorUnitOperation,\r\n steamAndPowerUpgraderOwner,\r\n SpreadsheetTitle.STEAM_REPORT\r\n );\r\n this.utilitiesSpreadsheetV2Service.clearResults();\r\n } else if (uo instanceof WaterUtilityUnitOperation) {\r\n this.initializeUtilitiesSheets(SpreadsheetTitle.HYDROGEN);\r\n this.initializeUtilitiesSheets(SpreadsheetTitle.STEAM_REPORT);\r\n } else if (!isEmptyValue(uo.flowsheetId) && upgraderOwner) {\r\n this.utilitiesSpreadsheetV2Service.addUnitOperation(uo as SuncorUnitOperation, upgraderOwner);\r\n this.utilitiesSpreadsheetV2Service.clearResults();\r\n }\r\n }\r\n\r\n updateUtilitiesSheetsWhenUnitOpUpdated(unitOperation: UnitOperation) {\r\n const upgraderOwner = this.flowsheetTree.getUpgradersWithSubFlowsheet(\r\n this.currentCase,\r\n unitOperation.flowsheetId\r\n )[0];\r\n\r\n if (unitOperation instanceof WaterUnitOperation) {\r\n const steamAndPowerOwner = this.getSteamAndPowerSubFlowsheet(unitOperation);\r\n const steamAndPowerUpgraderOwner = this.flowsheetTree.getUpgradersWithSubFlowsheet(\r\n this.currentCase,\r\n steamAndPowerOwner[0].flowsheetId\r\n )[0];\r\n\r\n this.utilitiesSpreadsheetV2Service.updateUnitOperation(\r\n unitOperation as SuncorUnitOperation,\r\n steamAndPowerUpgraderOwner,\r\n SpreadsheetTitle.STEAM_REPORT\r\n );\r\n this.utilitiesSpreadsheetV2Service.clearResults();\r\n } else if (!isEmptyValue(unitOperation.flowsheetId) && upgraderOwner) {\r\n this.utilitiesSpreadsheetV2Service.updateUnitOperation(unitOperation as SuncorUnitOperation, upgraderOwner);\r\n this.utilitiesSpreadsheetV2Service.clearResults();\r\n }\r\n }\r\n\r\n updateUtilitiesSheetsWhenUnitOpRemoved(uo: UnitOperation) {\r\n const upgraderOwner = this.flowsheetTree.getUpgradersWithSubFlowsheet(this.currentCase, uo.flowsheetId)[0];\r\n\r\n if (uo instanceof WaterUnitOperation) {\r\n const steamAndPowerOwner = this.getSteamAndPowerSubFlowsheet(uo);\r\n const steamAndPowerUpgraderOwner = this.flowsheetTree.getUpgradersWithSubFlowsheet(\r\n this.currentCase,\r\n steamAndPowerOwner[0].flowsheetId\r\n )[0];\r\n\r\n this.utilitiesSpreadsheetV2Service.removeUnitOperation(\r\n uo as SuncorUnitOperation,\r\n steamAndPowerUpgraderOwner,\r\n SpreadsheetTitle.STEAM_REPORT\r\n );\r\n this.utilitiesSpreadsheetV2Service.clearResults();\r\n } else if (uo instanceof WaterUtilityUnitOperation) {\r\n this.utilitiesSpreadsheetV2Service.removeUtilitiesSheetsByUpgOwner(upgraderOwner, false);\r\n } else if (!isEmptyValue(uo.flowsheetId) && upgraderOwner) {\r\n this.utilitiesSpreadsheetV2Service.removeUnitOperation(uo as SuncorUnitOperation, upgraderOwner);\r\n this.utilitiesSpreadsheetV2Service.clearResults();\r\n }\r\n }\r\n\r\n get currentCase() {\r\n return this.coreService.currentCase;\r\n }\r\n\r\n getSteamAndPowerSubFlowsheet(uo: UnitOperation) {\r\n return this.flowsheetTree.getAllFlowsheetOwners(this.currentCase).filter(uOpOwner => {\r\n return uOpOwner instanceof WaterUtilityUnitOperation && uOpOwner.id === uo.flowsheetId;\r\n });\r\n }\r\n}\r\n","
\r\n \r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n","import { AfterViewInit, Component } from '@angular/core';\r\nimport * as go from 'gojs';\r\n\r\n@Component({\r\n selector: 'sob-diagram-comment-button',\r\n templateUrl: './diagram-comment-button.component.html',\r\n styleUrls: ['./diagram-comment-button.component.css'],\r\n})\r\nexport class DiagramCommentButtonComponent implements AfterViewInit {\r\n $ = go.GraphObject.make;\r\n private palette: go.Palette;\r\n\r\n ngAfterViewInit() {\r\n this.init();\r\n }\r\n\r\n private init(): void {\r\n this.palette = this.initPaletteElement();\r\n this.palette.nodeTemplate = this.getPaletteNodeTemplate();\r\n\r\n this.palette.model.nodeDataArray = [\r\n {\r\n name: 'Comments',\r\n category: 'diagram-comment',\r\n },\r\n ];\r\n }\r\n\r\n private initPaletteElement() {\r\n return this.$(go.Palette, 'diagramCommentsButton', {\r\n autoScale: go.Diagram.None,\r\n contentAlignment: go.Spot.TopLeft,\r\n 'toolManager.hoverDelay': 60,\r\n allowZoom: false,\r\n padding: 0,\r\n });\r\n }\r\n\r\n private getPaletteNodeTemplate(): any {\r\n return this.$(\r\n go.Node,\r\n 'Auto',\r\n {\r\n width: 28,\r\n height: 28,\r\n selectionAdorned: false,\r\n },\r\n this.$(go.Shape, {\r\n margin: 0,\r\n figure: 'Rectangle',\r\n fill: 'Transparent',\r\n stroke: '#5f5f5f',\r\n strokeWidth: 0,\r\n name: 'BACKGROUND',\r\n }),\r\n this.$(\r\n go.Panel,\r\n 'Vertical',\r\n this.$(go.TextBlock, { text: '\\uf0e6', font: '12pt FontAwesome' })\r\n // this.$(go.Picture,\r\n // {desiredSize: new go.Size(25, 25), margin: 5, name: 'ICON'},\r\n // // Picture.source is data bound to the \"source\" attribute of the model data\r\n // new go.Binding('source', 'icon'))\r\n )\r\n );\r\n }\r\n}\r\n","
\r\n","import { Component } from '@angular/core';\r\nimport { CoreService } from '../../_services/core.service';\r\nimport { FlowsheetDiagramService } from '../../_services/flowsheet-diagram/flowsheet-diagram.service';\r\nimport { Case } from '../../_models';\r\nimport { MultiPeriodService } from '../../_services/multi-period/multi-period.service';\r\n\r\n@Component({\r\n selector: 'sob-diagram-controls',\r\n templateUrl: './diagram-controls.component.html',\r\n styleUrls: ['./diagram-controls.component.css'],\r\n})\r\nexport class DiagramControlsComponent {\r\n hiddenDashedLines = false;\r\n hiddenInactiveItems = false;\r\n hiddenLabels = false;\r\n\r\n constructor(\r\n private flowsheetDiagramService: FlowsheetDiagramService,\r\n private core: CoreService,\r\n private multiPeriodService: MultiPeriodService\r\n ) {}\r\n\r\n toggleDottedLines() {\r\n if (this.hiddenDashedLines) {\r\n this.flowsheetDiagramService.showInactiveItems();\r\n this.hiddenDashedLines = false;\r\n } else {\r\n this.flowsheetDiagramService.hideDashedLineLinks();\r\n this.hiddenDashedLines = true;\r\n }\r\n }\r\n\r\n toggleInactiveItems() {\r\n if (this.hiddenInactiveItems) {\r\n this.flowsheetDiagramService.showInactiveItems();\r\n this.hiddenInactiveItems = false;\r\n } else {\r\n this.flowsheetDiagramService.hideInactiveItems();\r\n this.hiddenInactiveItems = true;\r\n }\r\n }\r\n\r\n toggleLabels() {\r\n if (this.hiddenLabels) {\r\n this.flowsheetDiagramService.showNodeLabels();\r\n this.hiddenLabels = false;\r\n } else {\r\n this.flowsheetDiagramService.hideNodeLabels();\r\n this.hiddenLabels = true;\r\n }\r\n }\r\n\r\n toggleMultiPeriodMode(): void {\r\n if (!this.isMultiPeriodEnabled) {\r\n this.multiPeriodService.enableMultiPeriod({\r\n showSettingsModal: true,\r\n showNotification: true,\r\n });\r\n } else {\r\n const disableMultiPeriodMode = confirm('Disable multi period mode? All your results will be deleted.');\r\n if (disableMultiPeriodMode) {\r\n this.multiPeriodService.disableMultiPeriod({\r\n showNotification: true,\r\n });\r\n }\r\n }\r\n }\r\n\r\n zoomToFit(): void {\r\n this.flowsheetDiagramService.zoomToFit();\r\n }\r\n\r\n get currentCase(): Case {\r\n return this.core.currentCase;\r\n }\r\n\r\n get isMultiPeriodEnabled(): boolean {\r\n return !!this.currentCase.multiPeriodEnabled;\r\n }\r\n}\r\n","
\r\n
    \r\n
  • \r\n \r\n
  • \r\n\r\n
  • \r\n \r\n
  • \r\n\r\n
  • \r\n \r\n
  • \r\n\r\n
  • \r\n \r\n
  • \r\n\r\n \r\n \r\n \r\n
  • \r\n \r\n
  • \r\n
\r\n
\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Observable, Subscriber } from 'rxjs';\r\nimport { ParametricStudy } from '../../_models/_case-study/parametric-study';\r\nimport { Project } from '../../_models';\r\nimport { SolveCaseRequest } from '../../_models/solve-case-request';\r\nimport { environment } from '../../../environments/environment';\r\nimport { UserService } from '../user.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ParametricStudyApiService {\r\n constructor(private http: HttpClient, private userService: UserService) {}\r\n\r\n private static getHeaders() {\r\n const headers = new HttpHeaders();\r\n headers.append('Accept', 'application/json');\r\n return headers;\r\n }\r\n\r\n solveParametricStudy(ps: ParametricStudy, project: Project) {\r\n const dataToSend: SolveCaseRequest = {\r\n solveOption: 'waitForResults',\r\n caseModel: ps.ownerCase,\r\n version: project.version,\r\n username: '',\r\n userId: '',\r\n email: '',\r\n };\r\n\r\n return this.http.post(environment.parametricStudyUrl, dataToSend, {\r\n headers: ParametricStudyApiService.getHeaders(),\r\n });\r\n }\r\n\r\n solveParametricStudyAsync(options: {\r\n promise: Promise;\r\n caseToBeSolvedId: string;\r\n fileName: string;\r\n }): Observable {\r\n return new Observable(observer => {\r\n options.promise.then(data => {\r\n data.append('user', JSON.stringify(this.userService.getCurrentUser()));\r\n data.append('fileName', options.fileName);\r\n data.append('caseToBeSolvedId', options.caseToBeSolvedId);\r\n this.sendSolveAsyncRequest(data, observer);\r\n });\r\n });\r\n }\r\n\r\n private sendSolveAsyncRequest(data, observer: Subscriber) {\r\n this.http.post(environment.parametricStudyAsyncUrl, data, { headers: this.getMultipartHeaders() }).subscribe(\r\n response => {\r\n observer.next(response);\r\n },\r\n () => {\r\n observer.error();\r\n }\r\n );\r\n }\r\n\r\n private getMultipartHeaders(): HttpHeaders {\r\n return new HttpHeaders().set('enctype', 'multipart/form-data');\r\n }\r\n}\r\n","import { SolveCanceller } from '../solve-canceller';\r\nimport { ParametricStudyService } from '../../_services/case-study/parametric-study.service';\r\n\r\nexport class SolveCaseStudyCanceller implements SolveCanceller {\r\n service: ParametricStudyService;\r\n\r\n constructor(service: ParametricStudyService) {\r\n this.service = service;\r\n }\r\n\r\n cancelSolve() {\r\n this.service.cancelSolve();\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable, Subject, Subscription } from 'rxjs';\r\nimport { ParametricStudyApiService } from './parametric-study-api.service';\r\nimport { CoreService } from '../core.service';\r\nimport { SolveCaseStudyCanceller } from '../../_models/_case-study/solve-case-study-canceller';\r\nimport { ApiObjectsBackupManager } from '../../_models/api-objects-backup-manager';\r\nimport { ParametricStudy } from '../../_models/_case-study/parametric-study';\r\nimport { FileService } from '../file.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ParametricStudyService {\r\n subscription: Subscription;\r\n solveSubject: Subject;\r\n solveObservable: Observable;\r\n solveCanceller: SolveCaseStudyCanceller;\r\n\r\n constructor(\r\n private parametricStudyApi: ParametricStudyApiService,\r\n private coreService: CoreService,\r\n private fileService: FileService\r\n ) {\r\n this.solveCanceller = new SolveCaseStudyCanceller(this);\r\n }\r\n\r\n solveParametricStudy(ps: ParametricStudy): Observable {\r\n this.solveSubject = new Subject();\r\n this.solveObservable = this.solveSubject.asObservable();\r\n\r\n ps.clearResults();\r\n const removedStudies = ApiObjectsBackupManager.removeParametricStudies(ps.ownerCase, ps);\r\n\r\n this.subscription = this.parametricStudyApi.solveParametricStudy(ps, this.coreService.project).subscribe(\r\n solvedResponse => {\r\n if ((solvedResponse).caseModel) {\r\n this.handleSuccess(solvedResponse, ps, removedStudies);\r\n this.solveSubject.next();\r\n } else {\r\n this.handleError(solvedResponse, ps, removedStudies);\r\n this.solveSubject.error(solvedResponse);\r\n }\r\n },\r\n error => {\r\n this.handleError(error, ps, removedStudies);\r\n this.solveSubject.error(error);\r\n }\r\n );\r\n\r\n return this.solveObservable;\r\n }\r\n\r\n cancelSolve() {\r\n this.subscription.unsubscribe();\r\n this.solveSubject.error({ cancelled: true });\r\n }\r\n\r\n private handleSuccess(solvedResponse: any, ps: ParametricStudy, removedAnalyses: ParametricStudy[]) {\r\n this.restoreBackup(removedAnalyses);\r\n const serializedCase = solvedResponse.caseModel;\r\n let serializedStudy = serializedCase.otherBaseObjectPool[serializedCase.caseStudyManager].parametricStudies[0];\r\n serializedStudy = serializedCase.otherBaseObjectPool[serializedStudy];\r\n ps.dePersistResults(serializedStudy);\r\n }\r\n\r\n private handleError(error, ps: ParametricStudy, removedAnalyses: ParametricStudy[]) {\r\n // ps.convertToCaptureUnit();\r\n this.restoreBackup(removedAnalyses);\r\n }\r\n\r\n private restoreBackup(removedAnalyses: ParametricStudy[]) {\r\n ApiObjectsBackupManager.restoreRemovedStudies(\r\n removedAnalyses.length ? removedAnalyses[0].ownerCase : undefined,\r\n removedAnalyses\r\n );\r\n }\r\n\r\n solveParametricStudyAsync(): Observable {\r\n const formData = this.coreService.getProjectFormData();\r\n return this.parametricStudyApi.solveParametricStudyAsync({\r\n promise: formData,\r\n caseToBeSolvedId: this.coreService.currentCase.id,\r\n fileName: this.coreService.project.fileName,\r\n });\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n Parameter Values \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n {{ parameter.simulationVariable.getFullName() }}\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
State {{ i + 1 }}
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { UntypedFormArray, UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';\r\nimport { ParametricStudy } from '../../../_models/_case-study/parametric-study';\r\n\r\n@Component({\r\n selector: 'sob-parameter-input',\r\n templateUrl: './parameter-input.component.html',\r\n styleUrls: ['./parameter-input.component.css'],\r\n})\r\nexport class ParameterInputComponent implements OnInit {\r\n @Input()\r\n parametricStudy: ParametricStudy;\r\n\r\n parametersGroup: UntypedFormGroup;\r\n currentUnit: string;\r\n\r\n constructor(private fb: UntypedFormBuilder) {}\r\n\r\n ngOnInit(): void {\r\n this.addControls();\r\n }\r\n\r\n updateUnit($event) {\r\n this.currentUnit = $event;\r\n this.parameter.variableValues.unit = this.currentUnit;\r\n }\r\n\r\n addControls() {\r\n const { variableValues } = this.parametricStudy.parameter;\r\n this.parametersGroup = this.fb.group({\r\n quantity: this.fb.control(variableValues.quantity),\r\n unit: this.fb.control(variableValues.unit),\r\n values: this.fb.array(this.initValues()),\r\n });\r\n }\r\n\r\n initValues() {\r\n return this.parametricStudy.parameter.variableValues.values.map(dv => {\r\n return this.addVariableValueControl(dv);\r\n });\r\n }\r\n\r\n updateVariableValueInput(index) {\r\n this.parameter.variableValues.values[index] = this.valuesGroupArray.controls[index].value.val;\r\n this.parametricStudy.clearResults();\r\n }\r\n\r\n addVariableValueControl(value: number) {\r\n // TODO check if this form group can be changed for a control\r\n return this.fb.group({ val: value });\r\n }\r\n\r\n addState() {\r\n if (this.parameter) {\r\n this.parametricStudy.clearResults();\r\n this.parameter.addState();\r\n const arrayValues = this.parameter.variableValues.values;\r\n const lastParameter = arrayValues[arrayValues.length - 1];\r\n this.addValueControl(lastParameter);\r\n }\r\n }\r\n\r\n addValueControl(value: number) {\r\n this.valuesGroupArray.push(this.addVariableValueControl(value));\r\n }\r\n\r\n removeState() {\r\n if (this.parameter && this.parameter.variableValues.values.length) {\r\n this.parametricStudy.clearResults();\r\n this.parameter.removeLastValue();\r\n this.valuesGroupArray.removeAt(this.valuesGroupArray.length - 1);\r\n }\r\n }\r\n\r\n get valuesGroupArray() {\r\n return this.parametersGroup.get('values') as UntypedFormArray;\r\n }\r\n\r\n get parameter() {\r\n return this.parametricStudy.parameter;\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n Category\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n Parameter Provider\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n Available Parameters\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n No parameter selected\r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { ChangeDetectorRef, Component, Input } from '@angular/core';\r\nimport { ParametricStudy } from '../../../_models/_case-study/parametric-study';\r\nimport { CaseStudyManager } from '../../../_models/_case-study/case-study-manager';\r\nimport { BaseObject } from '../../../_models/base-object';\r\nimport { ParameterProvider } from '../../../_models/_case-study/parameter-provider';\r\nimport { SimulationVariable, UnitOperation } from '../../../_models';\r\nimport { BaseStream } from '../../../_models/_streams/base-stream';\r\nimport { WaterPipeSegment } from '../../../_models/_unit-operations/utilties/water-pipe-segment';\r\nimport { CoreService } from '../../../_services/core.service';\r\n\r\n@Component({\r\n selector: 'sob-parametric-study',\r\n templateUrl: './parametric-study.component.html',\r\n styleUrls: ['./parametric-study.component.css'],\r\n})\r\nexport class ParametricStudyComponent {\r\n @Input()\r\n parametricStudy: ParametricStudy;\r\n\r\n @Input()\r\n caseStudyManager: CaseStudyManager;\r\n\r\n @Input()\r\n currentlyFlowsheetOwnerId: string;\r\n\r\n paramProvidersForCategory: (BaseObject & ParameterProvider)[];\r\n availableParamId: string;\r\n availableParams: SimulationVariable[];\r\n constructor(private ref: ChangeDetectorRef, private coreService: CoreService) {}\r\n\r\n setParameter(): void {\r\n if (\r\n this.availableParamId &&\r\n (!this.parametricStudy.parameter ||\r\n this.parametricStudy.parameter.simulationVariable.id !== this.availableParamId)\r\n ) {\r\n this.parametricStudy.removeParameter();\r\n this.ref.detectChanges();\r\n\r\n this.parametricStudy.setParameterBySimulationVariableId(this.availableParamId);\r\n this.parametricStudy.parameter.addState();\r\n this.parametricStudy.clearResults();\r\n this.ref.detectChanges();\r\n }\r\n }\r\n\r\n categoryChanged(event: any) {\r\n this.paramProvidersForCategory = this.caseStudyManager\r\n .getParameterProvidersByCategoryName(event.target.value)\r\n .filter(parameter => {\r\n if (parameter instanceof UnitOperation) {\r\n return parameter.flowsheetId === this.currentlyFlowsheetOwnerId;\r\n }\r\n if (parameter instanceof BaseStream) {\r\n const inletUnitOperation = this.coreService.currentCase.getUnitOperation(parameter.inletUnitOperationId);\r\n return inletUnitOperation.flowsheetId === this.currentlyFlowsheetOwnerId;\r\n }\r\n if (parameter instanceof WaterPipeSegment) {\r\n return parameter.getWaterPipeSegmentOwner(parameter.id).flowsheetId === this.currentlyFlowsheetOwnerId;\r\n }\r\n return parameter;\r\n });\r\n\r\n this.availableParamId = '';\r\n this.availableParams = [];\r\n }\r\n\r\n parameterProviderChanged(event: any) {\r\n const selectedBaseObject = this.paramProvidersForCategory.find(pp => pp.id === event.target.value);\r\n this.availableParams = (selectedBaseObject).getAvailableParametricStudyParameters();\r\n this.availableParamId = '';\r\n }\r\n\r\n cleanInputs(): void {\r\n $('.parametricStudyControls').find('select').val('');\r\n this.caseStudyManager.parametricStudyCategories = [];\r\n this.availableParamId = '';\r\n this.paramProvidersForCategory = [];\r\n this.availableParams = [];\r\n }\r\n}\r\n","
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n","import { AfterViewInit, Component, Input } from '@angular/core';\r\nimport * as Highcharts from 'highcharts';\r\nimport { ParametricStudy } from '../../../_models/_case-study/parametric-study';\r\nimport { KpiManager } from '../../../_models/_case-study/kpi-manager';\r\nimport { ParametricStudyKpiResult } from '../../../_models/_case-study/parametric-study-kpi-result';\r\nimport { SimulationVariableArray } from '../../../_models/simulation-variable-array';\r\nimport { hasNumericValue } from '../../../_utils/utils';\r\n\r\n@Component({\r\n selector: 'sob-parametric-study-results',\r\n templateUrl: './parametric-study-results.component.html',\r\n styleUrls: ['./parametric-study-results.component.css'],\r\n})\r\nexport class ParametricStudyResultsComponent implements AfterViewInit {\r\n @Input()\r\n parametricStudy: ParametricStudy;\r\n\r\n @Input()\r\n kpiManager: KpiManager;\r\n\r\n selectedKpi: String;\r\n unitCase: string;\r\n ngAfterViewInit() {\r\n if (this.selectedKpisWithResults()) {\r\n this.unitCase = this.parametricStudy.parameter.variableValues.unit;\r\n this.changeResults(this.selectedKpisWithResults()[0].id);\r\n }\r\n }\r\n\r\n changeResults(kpiId: string) {\r\n this.selectedKpi = kpiId;\r\n const results = this.findKpiResultsByKpiId(kpiId);\r\n this.buildChart(results);\r\n this.buildTable(results);\r\n }\r\n\r\n private buildChart(results: ParametricStudyKpiResult) {\r\n const resultsSva = new SimulationVariableArray(\r\n { values: results.variableValues, quantity: results.kpi.quantity },\r\n null,\r\n null\r\n );\r\n const chartData = resultsSva.convertToAnotherUnitArray(true, true, results.kpi.getDefaultUnit());\r\n const p = this.parametricStudy.parameter;\r\n const xLabels = p.variableValues.convertToCaptureUnit(this.unitCase, p.variableValues.getInternalUnit());\r\n\r\n Highcharts.chart({\r\n chart: {\r\n renderTo: 'parametricStudyChart',\r\n },\r\n title: {\r\n text: '',\r\n },\r\n credits: {\r\n enabled: false,\r\n },\r\n legend: {\r\n enabled: false,\r\n },\r\n xAxis: {\r\n title: {\r\n text: `${p.simulationVariable.getFullName()} (${this.unitCase})`,\r\n },\r\n categories: xLabels.sort(function (a, b) {\r\n return a - b;\r\n }),\r\n },\r\n yAxis: {\r\n title: {\r\n text: `${results.kpi.getFullName()} (${results.kpi.getDefaultUnit()})`,\r\n },\r\n },\r\n tooltip: {\r\n headerFormat: '',\r\n pointFormatter() {\r\n return (\r\n `` +\r\n ``\r\n );\r\n },\r\n footerFormat: '
${this.series.name}: ${this.y} ${results.kpi.getDefaultUnit()}
',\r\n shared: true,\r\n useHTML: true,\r\n followPointer: true,\r\n },\r\n plotOptions: {\r\n column: {\r\n stacking: 'normal',\r\n dataLabels: {\r\n enabled: false,\r\n color: 'white',\r\n },\r\n },\r\n },\r\n series: [\r\n {\r\n name: results.kpi.getFullName(),\r\n data: chartData.sort(function (a, b) {\r\n return a - b;\r\n }),\r\n },\r\n ],\r\n });\r\n }\r\n\r\n private buildTable(results: ParametricStudyKpiResult) {\r\n // trying different approach to build the table... avoiding the declaration of a global\r\n // variable for use in the html template\r\n const resultsSva = new SimulationVariableArray(\r\n { values: results.variableValues, quantity: results.kpi.quantity },\r\n null,\r\n null\r\n );\r\n const kpiData = resultsSva.convertToAnotherUnitArray(false, true, results.kpi.getDefaultUnit());\r\n\r\n const p = this.parametricStudy.parameter;\r\n\r\n const parameterData = p.variableValues.convertToCaptureUnit(\r\n p.variableValues.unit,\r\n p.variableValues.getInternalUnit()\r\n );\r\n\r\n let tableHtml = '';\r\n\r\n for (let i = 0; i < kpiData.length; i++) {\r\n tableHtml +=\r\n ` ${kpiData[i]} ${results.kpi.getDefaultUnit()}` +\r\n `${parameterData[i]} ${p.simulationVariable.getDefaultUnit()}`;\r\n }\r\n\r\n const $table = $('#parametricStudyResultsTable');\r\n $table\r\n .find('thead')\r\n .html(`${results.kpi.getFullName()}` + `${p.simulationVariable.getFullName()}`);\r\n\r\n $table.find('tbody').html(tableHtml);\r\n }\r\n\r\n selectedKpisWithResults() {\r\n return this.kpiManager.selectedKpis.filter(\r\n kpi => this.findKpiResultsByKpiId(kpi.id) && kpi.value !== 0 && hasNumericValue(kpi.value)\r\n );\r\n }\r\n\r\n findKpiResultsByKpiId(kpiId: string) {\r\n return this.parametricStudy.kpiResults.find(result => result.kpi.id === kpiId);\r\n }\r\n\r\n excelReport() {\r\n $('#caseStudyModal').modal('hide');\r\n $('#caseStudyExcelReportModal').modal('show');\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n \r\n

Case Study

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n Add\r\n \r\n
\r\n
\r\n
\r\n
\r\n
Please add a name for the new Case Study.
\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n Select Flowsheet: \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Warning! no KPIs selected. Go to KPI manager\r\n
\r\n
\r\n
\r\n \r\n \r\n\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n\r\n
No results available, please run the case study.
\r\n
\r\n
\r\n\r\n
\r\n
\r\n

Please add a case study

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n","import { AfterViewInit, ChangeDetectorRef, Component, Input, ViewChild } from '@angular/core';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { CaseStudyManager } from '../../../_models/_case-study/case-study-manager';\r\nimport { ParametricStudy } from '../../../_models/_case-study/parametric-study';\r\nimport { ProgressIndicatorService } from '../../progress-indicator/progress-indicator.service';\r\nimport { ParametricStudyService } from '../../../_services/case-study/parametric-study.service';\r\nimport { LogManagerService } from '../../log-manager/log-manager.service';\r\nimport { isEmptyValue } from '../../../_utils/utils';\r\nimport { unitOperationsConfig } from '../../../_config/unit-operations.config';\r\nimport { CoreService } from '../../../_services/core.service';\r\nimport { ParametricStudyComponent } from '../parametric-study/parametric-study.component';\r\n\r\nenum ErrorMessage {\r\n KEY_NOT_FOUND = 'was not present',\r\n}\r\n\r\n@Component({\r\n selector: 'sob-parametric-study-window',\r\n templateUrl: './parametric-study-window.component.html',\r\n styleUrls: ['./parametric-study-window.component.css'],\r\n})\r\nexport class ParametricStudyWindowComponent implements AfterViewInit {\r\n @Input()\r\n caseStudyManager: CaseStudyManager;\r\n\r\n @ViewChild(ParametricStudyComponent) parametricStudyComponent: ParametricStudyComponent;\r\n\r\n currentStudy: ParametricStudy;\r\n private openingKpiManager: boolean;\r\n currentlyFlowsheetOwnerId: string;\r\n invalidName: boolean;\r\n\r\n constructor(\r\n private ref: ChangeDetectorRef,\r\n private progressIndicator: ProgressIndicatorService,\r\n private parametricStudyService: ParametricStudyService,\r\n private logManager: LogManagerService,\r\n private toastr: ToastrService,\r\n private coreService: CoreService\r\n ) {}\r\n\r\n ngAfterViewInit() {\r\n const $modal = $('#caseStudyModal');\r\n $modal.on('show.bs.modal', () => {\r\n this.setCurrentStudyById(this.caseStudyManager.currentStudyId);\r\n });\r\n\r\n $modal.on('hidden.bs.modal', () => {\r\n this.invalidName = false;\r\n if (this.parametricStudyComponent) {\r\n this.parametricStudyComponent.cleanInputs();\r\n if (this.openingKpiManager) {\r\n this.openingKpiManager = false;\r\n // need to open the new modal when old modal hide animation is completed\r\n $('#kpiManagerModal').modal('show');\r\n }\r\n }\r\n });\r\n }\r\n\r\n addParametricStudy(name: HTMLInputElement) {\r\n this.validateParametricStudyName(name);\r\n if (!this.invalidName) {\r\n const ps = this.caseStudyManager.addParametricStudy(name.value);\r\n ps.subscribeToOwnerCaseEvents();\r\n this.caseStudyManager.currentStudyId = ps.id;\r\n this.setCurrentStudyById(ps.id);\r\n name.value = '';\r\n } else {\r\n this.invalidName = true;\r\n }\r\n }\r\n\r\n validateParametricStudyName(e: EventTarget) {\r\n this.invalidName = isEmptyValue((e as HTMLInputElement).value);\r\n }\r\n\r\n currentStudyChanged(id: string) {\r\n this.setCurrentStudyById(id);\r\n }\r\n\r\n removeParametricStudy() {\r\n if (this.currentStudy) {\r\n this.caseStudyManager.removeParametricStudy(this.currentStudy.id);\r\n\r\n if (this.caseStudyManager.parametricStudies.length) {\r\n this.setCurrentStudyById(this.caseStudyManager.parametricStudies[0].id);\r\n } else {\r\n this.currentStudy = undefined;\r\n }\r\n }\r\n }\r\n\r\n setCurrentStudyById(id: string) {\r\n if (!id) {\r\n this.currentStudy = undefined;\r\n return;\r\n }\r\n\r\n if (this.currentStudy) {\r\n delete this.currentStudy;\r\n this.ref.detectChanges();\r\n }\r\n\r\n this.currentStudy = this.caseStudyManager.findParametricStudy(id);\r\n this.ref.detectChanges();\r\n }\r\n\r\n solveParametricStudy() {\r\n this.progressIndicator.show({\r\n message: 'Solving case study...',\r\n showStopButton: true,\r\n solveCanceller: this.parametricStudyService.solveCanceller,\r\n });\r\n\r\n this.parametricStudyService.solveParametricStudy(this.currentStudy).subscribe(\r\n () => {\r\n this.setCurrentStudyById(this.currentStudy.id); // let's reload the UI\r\n this.progressIndicator.hide();\r\n\r\n this.toastr.success('Case study solved successfully');\r\n },\r\n error => {\r\n this.progressIndicator.hide();\r\n\r\n this.setCurrentStudyById(this.currentStudy.id);\r\n\r\n if (error.cancelled) {\r\n this.logManager.warning('Case study solve cancelled by user');\r\n this.toastr.warning('Case study solve cancelled by user');\r\n } else if (error.message.includes(ErrorMessage.KEY_NOT_FOUND)) {\r\n this.logManager.error('Invalid Independent Variable');\r\n this.toastr.error('Invalid Independent Variable');\r\n } else {\r\n this.logManager.error('An error occurred while solving the case study');\r\n this.toastr.error('An error occurred while solving the case study');\r\n console.error(error);\r\n }\r\n }\r\n );\r\n }\r\n\r\n solveParametricStudyAsync() {\r\n this.progressIndicator.show();\r\n\r\n this.parametricStudyService.solveParametricStudyAsync().subscribe({\r\n next: () => {\r\n this.progressIndicator.hide();\r\n this.toastr.success('We will send you an email when parametric study is solved');\r\n },\r\n error: () => {\r\n this.progressIndicator.hide();\r\n this.toastr.error('An error occurred while solving your parametric study');\r\n },\r\n });\r\n }\r\n\r\n openKpiManager() {\r\n this.openingKpiManager = true;\r\n $('#caseStudyModal').modal('hide');\r\n }\r\n\r\n getFlowsheetOwnerId(fOwnerId: string) {\r\n this.parametricStudyComponent.cleanInputs();\r\n this.currentlyFlowsheetOwnerId = fOwnerId;\r\n\r\n if (!isEmptyValue(fOwnerId)) {\r\n const flowsheetOwnerCategory = this.coreService.currentCase.getUnitOperation(fOwnerId).category;\r\n\r\n switch (flowsheetOwnerCategory) {\r\n case unitOperationsConfig.upgrader.key:\r\n this.coreService.currentCase.initUpgraderFlowsheetParametricStudyCategories();\r\n break;\r\n case unitOperationsConfig.waterUtilityUnitOperation.key:\r\n this.coreService.currentCase.initSteamFlowsheetParametricStudyCategories();\r\n break;\r\n case unitOperationsConfig.fuelGasUtilityUnitOperation.key:\r\n this.coreService.currentCase.initFuelGasFlowsheetParametricStudyCategories();\r\n break;\r\n case unitOperationsConfig.extraction.key:\r\n this.coreService.currentCase.initExtractionFlowsheetParametricStudyCategories();\r\n break;\r\n default:\r\n break;\r\n }\r\n } else if (fOwnerId === '') {\r\n this.coreService.currentCase.initMainFlowsheetParametricStudyCategories();\r\n }\r\n }\r\n}\r\n","
\r\n \r\n\r\n \r\n {{ ownerName }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n","import { Component, Input } from '@angular/core';\r\nimport { FlowsheetService } from '../../_services/flowsheet.service';\r\nimport { UnitOperation } from '../../_models';\r\nimport { SubFlowsheetService } from '../../_services/sub-flowsheet/sub-flowsheet.service';\r\n\r\n@Component({\r\n selector: 'sob-sub-flowsheet-info',\r\n templateUrl: './sub-flowsheet-info.component.html',\r\n styleUrls: ['./sub-flowsheet-info.component.css'],\r\n})\r\nexport class SubFlowsheetInfoComponent {\r\n @Input() activeFlowsheetOwner: UnitOperation;\r\n constructor(private flowsheetService: FlowsheetService, private subFlowsheetService: SubFlowsheetService) {}\r\n\r\n closeSubFlowsheet() {\r\n this.flowsheetService.closeSubFlowsheet();\r\n }\r\n\r\n get subFlowsheetOwnerNames(): string[] {\r\n return this.subFlowsheetService.getSubFlowsheetOwnerNames();\r\n }\r\n}\r\n","import { Case } from '../../_models';\r\nimport { SuncorFluidAnalysis } from '../../_models/_fluid/suncor-fluid-analysis';\r\nimport { Cut } from '../../_models/_fluid/cut';\r\nimport { GasFluidAnalysis } from '../../_models/_fluid/gas-fluid-analysis';\r\n\r\nexport class AssayManagerExcelReport {\r\n static generateDataArray(c: Case): any[] {\r\n const dataArray = [];\r\n const assays = c.assayManager.fluidAnalyses;\r\n this.addFirstColumn(dataArray);\r\n for (const assay of assays) {\r\n this.addAssay(dataArray, assay);\r\n }\r\n return dataArray;\r\n }\r\n\r\n private static addFirstColumn(dataArray: any[]) {\r\n dataArray.push([]);\r\n dataArray.push(['Assays']);\r\n dataArray.push([]);\r\n dataArray.push(['General']);\r\n dataArray.push(['Name']);\r\n dataArray.push(['Type']);\r\n dataArray.push([]);\r\n dataArray.push(['Composition (wt%)']);\r\n dataArray.push(['Light ends']);\r\n dataArray.push(['Light naphtha']);\r\n dataArray.push(['Heavy naphtha']);\r\n dataArray.push(['Distillate']);\r\n dataArray.push(['LGO']);\r\n dataArray.push(['HGO']);\r\n dataArray.push(['VGO']);\r\n dataArray.push(['HVGO']);\r\n dataArray.push(['Resid']);\r\n dataArray.push([]);\r\n dataArray.push(['Light ends']);\r\n dataArray.push(['Sulfur (wt%)']);\r\n dataArray.push(['Aniline point (C)']);\r\n dataArray.push(['Mass density (API)']);\r\n dataArray.push(['Nitrogen (wt%)']);\r\n dataArray.push(['CCR (wt%)']);\r\n dataArray.push([]);\r\n dataArray.push(['Light naphtha']);\r\n dataArray.push(['Sulfur (wt%)']);\r\n dataArray.push(['Aniline point (C)']);\r\n dataArray.push(['Mass density (API)']);\r\n dataArray.push(['Nitrogen (wt%)']);\r\n dataArray.push(['CCR (wt%)']);\r\n dataArray.push([]);\r\n dataArray.push(['Heavy naphtha']);\r\n dataArray.push(['Sulfur (wt%)']);\r\n dataArray.push(['Aniline point (C)']);\r\n dataArray.push(['Mass density (API)']);\r\n dataArray.push(['Nitrogen (wt%)']);\r\n dataArray.push(['CCR (wt%)']);\r\n dataArray.push([]);\r\n dataArray.push(['Distillate']);\r\n dataArray.push(['Sulfur (wt%)']);\r\n dataArray.push(['Aniline point (C)']);\r\n dataArray.push(['Mass density (API)']);\r\n dataArray.push(['Nitrogen (wt%)']);\r\n dataArray.push(['CCR (wt%)']);\r\n dataArray.push([]);\r\n dataArray.push(['LGO']);\r\n dataArray.push(['Sulfur (wt%)']);\r\n dataArray.push(['Aniline point (C)']);\r\n dataArray.push(['Mass density (API)']);\r\n dataArray.push(['Nitrogen (wt%)']);\r\n dataArray.push(['CCR (wt%)']);\r\n dataArray.push([]);\r\n dataArray.push(['HGO']);\r\n dataArray.push(['Sulfur (wt%)']);\r\n dataArray.push(['Aniline point (C)']);\r\n dataArray.push(['Mass density (API)']);\r\n dataArray.push(['Nitrogen (wt%)']);\r\n dataArray.push(['CCR (wt%)']);\r\n dataArray.push([]);\r\n dataArray.push(['VGO']);\r\n dataArray.push(['Sulfur (wt%)']);\r\n dataArray.push(['Aniline point (C)']);\r\n dataArray.push(['Mass density (API)']);\r\n dataArray.push(['Nitrogen (wt%)']);\r\n dataArray.push(['CCR (wt%)']);\r\n dataArray.push([]);\r\n dataArray.push(['HVGO']);\r\n dataArray.push(['Sulfur (wt%)']);\r\n dataArray.push(['Aniline point (C)']);\r\n dataArray.push(['Mass density (API)']);\r\n dataArray.push(['Nitrogen (wt%)']);\r\n dataArray.push(['CCR (wt%)']);\r\n dataArray.push([]);\r\n dataArray.push(['Resid']);\r\n dataArray.push(['Sulfur (wt%)']);\r\n dataArray.push(['Aniline point (C)']);\r\n dataArray.push(['Mass density (API)']);\r\n dataArray.push(['Nitrogen (wt%)']);\r\n dataArray.push(['CCR (wt%)']);\r\n\r\n return dataArray;\r\n }\r\n\r\n private static addAssay(dataArray: any[], assay: SuncorFluidAnalysis | GasFluidAnalysis) {\r\n let rowNum = 4;\r\n dataArray[rowNum++].push(assay.assayName);\r\n dataArray[rowNum++].push(assay.assayType);\r\n dataArray[rowNum++].push('');\r\n dataArray[rowNum++].push('');\r\n\r\n for (let i = 0; i < assay.composition.length; i++) {\r\n dataArray[rowNum++].push(assay.composition[i].convertToDefaultUnit());\r\n }\r\n const cuts = [\r\n 'lightEndsCut',\r\n 'lightNaphthaCut',\r\n 'heavyNaphthaCut',\r\n 'distillateCut',\r\n 'LGOCut',\r\n 'HGOCut',\r\n 'VGOCut',\r\n 'HVGOCut',\r\n 'residCut',\r\n ];\r\n cuts.forEach(cut => {\r\n const fCut = assay[cut] as Cut;\r\n dataArray[rowNum++].push('');\r\n dataArray[rowNum++].push('');\r\n dataArray[rowNum++].push(fCut.sulfur.isUndefined() ? '' : fCut.sulfur.convertToDefaultUnit());\r\n dataArray[rowNum++].push(fCut.anilinePoint.isUndefined() ? '' : fCut.anilinePoint.convertToDefaultUnit());\r\n dataArray[rowNum++].push(fCut.massDensity.isUndefined() ? '' : fCut.massDensity.convertToDefaultUnit());\r\n dataArray[rowNum++].push(fCut.nitrogen.isUndefined() ? '' : fCut.nitrogen.convertToDefaultUnit());\r\n dataArray[rowNum++].push(fCut.ccr.isUndefined() ? '' : fCut.ccr.convertToDefaultUnit());\r\n });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport * as XLSX from 'xlsx';\r\nimport { CoreService } from '../../core.service';\r\nimport { SuncorFluidAnalysis } from '../../../_models/_fluid/suncor-fluid-analysis';\r\nimport { Cut } from '../../../_models/_fluid/cut';\r\nimport { Workbook } from '../../excel-report/workbook';\r\nimport { XlsxUtils } from '../../excel-report/xlsx.utils';\r\nimport { AssayManagerExcelReport } from '../../excel-report/assay-manager-excel-report';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AssayManagerExcelService {\r\n constructor(private coreService: CoreService) {}\r\n\r\n generateExcelReport(): any {\r\n const wb = new Workbook();\r\n wb.SheetNames.push('Assays');\r\n wb.Sheets.Assays = XlsxUtils.sheetFromArrayOfArrays(\r\n AssayManagerExcelReport.generateDataArray(this.coreService.currentCase)\r\n );\r\n return XlsxUtils.s2ab(XLSX.write(wb, { bookType: 'xlsx', bookSST: false, type: 'binary' }));\r\n }\r\n\r\n uploadAssays(excelFile) {\r\n const { currentCase } = this.coreService;\r\n const wb = XLSX.read(excelFile, { type: 'binary' });\r\n const sheet = wb.Sheets[wb.SheetNames[0]];\r\n const assayFields = XLSX.utils.sheet_to_json(sheet, { header: 1 });\r\n // Get assay names\r\n const assayNames = assayFields[3] as string[];\r\n // first column is property name so it's ignored\r\n for (let i = 1; i < assayNames.length; i++) {\r\n // check if type exists and is correct\r\n if (this.validateType(assayFields[4][i])) {\r\n const fa: SuncorFluidAnalysis = new SuncorFluidAnalysis({}, currentCase, currentCase.assayManager);\r\n fa.assayName = assayNames[i];\r\n fa.assayType = assayFields[4][i];\r\n\r\n // read composition\r\n for (let c = 0; c < 9; c++) {\r\n if (assayFields[7 + c][i]) {\r\n fa.composition[c].setDefaultValue(assayFields[7 + c][i]);\r\n }\r\n }\r\n\r\n const cuts = [\r\n 'lightEndsCut',\r\n 'lightNaphthaCut',\r\n 'heavyNaphthaCut',\r\n 'distillateCut',\r\n 'LGOCut',\r\n 'HGOCut',\r\n 'VGOCut',\r\n 'HVGOCut',\r\n 'residCut',\r\n ];\r\n\r\n cuts.forEach((cut, index) => {\r\n const row = index * 7 + 18;\r\n const fCut = fa[cut] as Cut;\r\n fCut.sulfur.setDefaultValue(assayFields[row][i]);\r\n fCut.anilinePoint.setDefaultValue(assayFields[row + 1][i]);\r\n fCut.massDensity.setDefaultValue(assayFields[row + 2][i]);\r\n fCut.nitrogen.setDefaultValue(assayFields[row + 3][i]);\r\n fCut.ccr.setDefaultValue(assayFields[row + 4][i]);\r\n });\r\n\r\n // add assay to manager and pools\r\n currentCase.assayManager.fluidAnalyses.push(fa);\r\n currentCase.addToPools(fa);\r\n }\r\n }\r\n }\r\n\r\n validateType(type: string): boolean {\r\n let isValid = false;\r\n const types = ['Product', 'Diluent', 'Crude oil - Bitumen'];\r\n if (type) {\r\n if (types.indexOf(type) >= 0) {\r\n isValid = true;\r\n }\r\n }\r\n return isValid;\r\n }\r\n}\r\n","/*! DataTables 1.13.4\n * ©2008-2023 SpryMedia Ltd - datatables.net/license\n */\n\nimport jQuery from 'jquery';\n\n// DataTables code uses $ internally, but we want to be able to\n// reassign $ with the `use` method, so it is a regular var.\nlet $ = jQuery;\n\n\nvar DataTable = function ( selector, options )\n{\n\t// Check if called with a window or jQuery object for DOM less applications\n\t// This is for backwards compatibility\n\tif (DataTable.factory(selector, options)) {\n\t\treturn DataTable;\n\t}\n\n\t// When creating with `new`, create a new DataTable, returning the API instance\n\tif (this instanceof DataTable) {\n\t\treturn $(selector).DataTable(options);\n\t}\n\telse {\n\t\t// Argument switching\n\t\toptions = selector;\n\t}\n\n\t/**\n\t * Perform a jQuery selector action on the table's TR elements (from the tbody) and\n\t * return the resulting jQuery object.\n\t * @param {string|node|jQuery} sSelector jQuery selector or node collection to act on\n\t * @param {object} [oOpts] Optional parameters for modifying the rows to be included\n\t * @param {string} [oOpts.filter=none] Select TR elements that meet the current filter\n\t * criterion (\"applied\") or all TR elements (i.e. no filter).\n\t * @param {string} [oOpts.order=current] Order of the TR elements in the processed array.\n\t * Can be either 'current', whereby the current sorting of the table is used, or\n\t * 'original' whereby the original order the data was read into the table is used.\n\t * @param {string} [oOpts.page=all] Limit the selection to the currently displayed page\n\t * (\"current\") or not (\"all\"). If 'current' is given, then order is assumed to be\n\t * 'current' and filter is 'applied', regardless of what they might be given as.\n\t * @returns {object} jQuery object, filtered by the given selector.\n\t * @dtopt API\n\t * @deprecated Since v1.10\n\t *\n\t * @example\n\t * $(document).ready(function() {\n\t * var oTable = $('#example').dataTable();\n\t *\n\t * // Highlight every second row\n\t * oTable.$('tr:odd').css('backgroundColor', 'blue');\n\t * } );\n\t *\n\t * @example\n\t * $(document).ready(function() {\n\t * var oTable = $('#example').dataTable();\n\t *\n\t * // Filter to rows with 'Webkit' in them, add a background colour and then\n\t * // remove the filter, thus highlighting the 'Webkit' rows only.\n\t * oTable.fnFilter('Webkit');\n\t * oTable.$('tr', {\"search\": \"applied\"}).css('backgroundColor', 'blue');\n\t * oTable.fnFilter('');\n\t * } );\n\t */\n\tthis.$ = function ( sSelector, oOpts )\n\t{\n\t\treturn this.api(true).$( sSelector, oOpts );\n\t};\n\t\n\t\n\t/**\n\t * Almost identical to $ in operation, but in this case returns the data for the matched\n\t * rows - as such, the jQuery selector used should match TR row nodes or TD/TH cell nodes\n\t * rather than any descendants, so the data can be obtained for the row/cell. If matching\n\t * rows are found, the data returned is the original data array/object that was used to\n\t * create the row (or a generated array if from a DOM source).\n\t *\n\t * This method is often useful in-combination with $ where both functions are given the\n\t * same parameters and the array indexes will match identically.\n\t * @param {string|node|jQuery} sSelector jQuery selector or node collection to act on\n\t * @param {object} [oOpts] Optional parameters for modifying the rows to be included\n\t * @param {string} [oOpts.filter=none] Select elements that meet the current filter\n\t * criterion (\"applied\") or all elements (i.e. no filter).\n\t * @param {string} [oOpts.order=current] Order of the data in the processed array.\n\t * Can be either 'current', whereby the current sorting of the table is used, or\n\t * 'original' whereby the original order the data was read into the table is used.\n\t * @param {string} [oOpts.page=all] Limit the selection to the currently displayed page\n\t * (\"current\") or not (\"all\"). If 'current' is given, then order is assumed to be\n\t * 'current' and filter is 'applied', regardless of what they might be given as.\n\t * @returns {array} Data for the matched elements. If any elements, as a result of the\n\t * selector, were not TR, TD or TH elements in the DataTable, they will have a null\n\t * entry in the array.\n\t * @dtopt API\n\t * @deprecated Since v1.10\n\t *\n\t * @example\n\t * $(document).ready(function() {\n\t * var oTable = $('#example').dataTable();\n\t *\n\t * // Get the data from the first row in the table\n\t * var data = oTable._('tr:first');\n\t *\n\t * // Do something useful with the data\n\t * alert( \"First cell is: \"+data[0] );\n\t * } );\n\t *\n\t * @example\n\t * $(document).ready(function() {\n\t * var oTable = $('#example').dataTable();\n\t *\n\t * // Filter to 'Webkit' and get all data for\n\t * oTable.fnFilter('Webkit');\n\t * var data = oTable._('tr', {\"search\": \"applied\"});\n\t *\n\t * // Do something with the data\n\t * alert( data.length+\" rows matched the search\" );\n\t * } );\n\t */\n\tthis._ = function ( sSelector, oOpts )\n\t{\n\t\treturn this.api(true).rows( sSelector, oOpts ).data();\n\t};\n\t\n\t\n\t/**\n\t * Create a DataTables Api instance, with the currently selected tables for\n\t * the Api's context.\n\t * @param {boolean} [traditional=false] Set the API instance's context to be\n\t * only the table referred to by the `DataTable.ext.iApiIndex` option, as was\n\t * used in the API presented by DataTables 1.9- (i.e. the traditional mode),\n\t * or if all tables captured in the jQuery object should be used.\n\t * @return {DataTables.Api}\n\t */\n\tthis.api = function ( traditional )\n\t{\n\t\treturn traditional ?\n\t\t\tnew _Api(\n\t\t\t\t_fnSettingsFromNode( this[ _ext.iApiIndex ] )\n\t\t\t) :\n\t\t\tnew _Api( this );\n\t};\n\t\n\t\n\t/**\n\t * Add a single new row or multiple rows of data to the table. Please note\n\t * that this is suitable for client-side processing only - if you are using\n\t * server-side processing (i.e. \"bServerSide\": true), then to add data, you\n\t * must add it to the data source, i.e. the server-side, through an Ajax call.\n\t * @param {array|object} data The data to be added to the table. This can be:\n\t *
    \n\t *
  • 1D array of data - add a single row with the data provided
  • \n\t *
  • 2D array of arrays - add multiple rows in a single call
  • \n\t *
  • object - data object when using mData
  • \n\t *
  • array of objects - multiple data objects when using mData
  • \n\t *
\n\t * @param {bool} [redraw=true] redraw the table or not\n\t * @returns {array} An array of integers, representing the list of indexes in\n\t * aoData ({@link DataTable.models.oSettings}) that have been added to\n\t * the table.\n\t * @dtopt API\n\t * @deprecated Since v1.10\n\t *\n\t * @example\n\t * // Global var for counter\n\t * var giCount = 2;\n\t *\n\t * $(document).ready(function() {\n\t * $('#example').dataTable();\n\t * } );\n\t *\n\t * function fnClickAddRow() {\n\t * $('#example').dataTable().fnAddData( [\n\t * giCount+\".1\",\n\t * giCount+\".2\",\n\t * giCount+\".3\",\n\t * giCount+\".4\" ]\n\t * );\n\t *\n\t * giCount++;\n\t * }\n\t */\n\tthis.fnAddData = function( data, redraw )\n\t{\n\t\tvar api = this.api( true );\n\t\n\t\t/* Check if we want to add multiple rows or not */\n\t\tvar rows = Array.isArray(data) && ( Array.isArray(data[0]) || $.isPlainObject(data[0]) ) ?\n\t\t\tapi.rows.add( data ) :\n\t\t\tapi.row.add( data );\n\t\n\t\tif ( redraw === undefined || redraw ) {\n\t\t\tapi.draw();\n\t\t}\n\t\n\t\treturn rows.flatten().toArray();\n\t};\n\t\n\t\n\t/**\n\t * This function will make DataTables recalculate the column sizes, based on the data\n\t * contained in the table and the sizes applied to the columns (in the DOM, CSS or\n\t * through the sWidth parameter). This can be useful when the width of the table's\n\t * parent element changes (for example a window resize).\n\t * @param {boolean} [bRedraw=true] Redraw the table or not, you will typically want to\n\t * @dtopt API\n\t * @deprecated Since v1.10\n\t *\n\t * @example\n\t * $(document).ready(function() {\n\t * var oTable = $('#example').dataTable( {\n\t * \"sScrollY\": \"200px\",\n\t * \"bPaginate\": false\n\t * } );\n\t *\n\t * $(window).on('resize', function () {\n\t * oTable.fnAdjustColumnSizing();\n\t * } );\n\t * } );\n\t */\n\tthis.fnAdjustColumnSizing = function ( bRedraw )\n\t{\n\t\tvar api = this.api( true ).columns.adjust();\n\t\tvar settings = api.settings()[0];\n\t\tvar scroll = settings.oScroll;\n\t\n\t\tif ( bRedraw === undefined || bRedraw ) {\n\t\t\tapi.draw( false );\n\t\t}\n\t\telse if ( scroll.sX !== \"\" || scroll.sY !== \"\" ) {\n\t\t\t/* If not redrawing, but scrolling, we want to apply the new column sizes anyway */\n\t\t\t_fnScrollDraw( settings );\n\t\t}\n\t};\n\t\n\t\n\t/**\n\t * Quickly and simply clear a table\n\t * @param {bool} [bRedraw=true] redraw the table or not\n\t * @dtopt API\n\t * @deprecated Since v1.10\n\t *\n\t * @example\n\t * $(document).ready(function() {\n\t * var oTable = $('#example').dataTable();\n\t *\n\t * // Immediately 'nuke' the current rows (perhaps waiting for an Ajax callback...)\n\t * oTable.fnClearTable();\n\t * } );\n\t */\n\tthis.fnClearTable = function( bRedraw )\n\t{\n\t\tvar api = this.api( true ).clear();\n\t\n\t\tif ( bRedraw === undefined || bRedraw ) {\n\t\t\tapi.draw();\n\t\t}\n\t};\n\t\n\t\n\t/**\n\t * The exact opposite of 'opening' a row, this function will close any rows which\n\t * are currently 'open'.\n\t * @param {node} nTr the table row to 'close'\n\t * @returns {int} 0 on success, or 1 if failed (can't find the row)\n\t * @dtopt API\n\t * @deprecated Since v1.10\n\t *\n\t * @example\n\t * $(document).ready(function() {\n\t * var oTable;\n\t *\n\t * // 'open' an information row when a row is clicked on\n\t * $('#example tbody tr').click( function () {\n\t * if ( oTable.fnIsOpen(this) ) {\n\t * oTable.fnClose( this );\n\t * } else {\n\t * oTable.fnOpen( this, \"Temporary row opened\", \"info_row\" );\n\t * }\n\t * } );\n\t *\n\t * oTable = $('#example').dataTable();\n\t * } );\n\t */\n\tthis.fnClose = function( nTr )\n\t{\n\t\tthis.api( true ).row( nTr ).child.hide();\n\t};\n\t\n\t\n\t/**\n\t * Remove a row for the table\n\t * @param {mixed} target The index of the row from aoData to be deleted, or\n\t * the TR element you want to delete\n\t * @param {function|null} [callBack] Callback function\n\t * @param {bool} [redraw=true] Redraw the table or not\n\t * @returns {array} The row that was deleted\n\t * @dtopt API\n\t * @deprecated Since v1.10\n\t *\n\t * @example\n\t * $(document).ready(function() {\n\t * var oTable = $('#example').dataTable();\n\t *\n\t * // Immediately remove the first row\n\t * oTable.fnDeleteRow( 0 );\n\t * } );\n\t */\n\tthis.fnDeleteRow = function( target, callback, redraw )\n\t{\n\t\tvar api = this.api( true );\n\t\tvar rows = api.rows( target );\n\t\tvar settings = rows.settings()[0];\n\t\tvar data = settings.aoData[ rows[0][0] ];\n\t\n\t\trows.remove();\n\t\n\t\tif ( callback ) {\n\t\t\tcallback.call( this, settings, data );\n\t\t}\n\t\n\t\tif ( redraw === undefined || redraw ) {\n\t\t\tapi.draw();\n\t\t}\n\t\n\t\treturn data;\n\t};\n\t\n\t\n\t/**\n\t * Restore the table to it's original state in the DOM by removing all of DataTables\n\t * enhancements, alterations to the DOM structure of the table and event listeners.\n\t * @param {boolean} [remove=false] Completely remove the table from the DOM\n\t * @dtopt API\n\t * @deprecated Since v1.10\n\t *\n\t * @example\n\t * $(document).ready(function() {\n\t * // This example is fairly pointless in reality, but shows how fnDestroy can be used\n\t * var oTable = $('#example').dataTable();\n\t * oTable.fnDestroy();\n\t * } );\n\t */\n\tthis.fnDestroy = function ( remove )\n\t{\n\t\tthis.api( true ).destroy( remove );\n\t};\n\t\n\t\n\t/**\n\t * Redraw the table\n\t * @param {bool} [complete=true] Re-filter and resort (if enabled) the table before the draw.\n\t * @dtopt API\n\t * @deprecated Since v1.10\n\t *\n\t * @example\n\t * $(document).ready(function() {\n\t * var oTable = $('#example').dataTable();\n\t *\n\t * // Re-draw the table - you wouldn't want to do it here, but it's an example :-)\n\t * oTable.fnDraw();\n\t * } );\n\t */\n\tthis.fnDraw = function( complete )\n\t{\n\t\t// Note that this isn't an exact match to the old call to _fnDraw - it takes\n\t\t// into account the new data, but can hold position.\n\t\tthis.api( true ).draw( complete );\n\t};\n\t\n\t\n\t/**\n\t * Filter the input based on data\n\t * @param {string} sInput String to filter the table on\n\t * @param {int|null} [iColumn] Column to limit filtering to\n\t * @param {bool} [bRegex=false] Treat as regular expression or not\n\t * @param {bool} [bSmart=true] Perform smart filtering or not\n\t * @param {bool} [bShowGlobal=true] Show the input global filter in it's input box(es)\n\t * @param {bool} [bCaseInsensitive=true] Do case-insensitive matching (true) or not (false)\n\t * @dtopt API\n\t * @deprecated Since v1.10\n\t *\n\t * @example\n\t * $(document).ready(function() {\n\t * var oTable = $('#example').dataTable();\n\t *\n\t * // Sometime later - filter...\n\t * oTable.fnFilter( 'test string' );\n\t * } );\n\t */\n\tthis.fnFilter = function( sInput, iColumn, bRegex, bSmart, bShowGlobal, bCaseInsensitive )\n\t{\n\t\tvar api = this.api( true );\n\t\n\t\tif ( iColumn === null || iColumn === undefined ) {\n\t\t\tapi.search( sInput, bRegex, bSmart, bCaseInsensitive );\n\t\t}\n\t\telse {\n\t\t\tapi.column( iColumn ).search( sInput, bRegex, bSmart, bCaseInsensitive );\n\t\t}\n\t\n\t\tapi.draw();\n\t};\n\t\n\t\n\t/**\n\t * Get the data for the whole table, an individual row or an individual cell based on the\n\t * provided parameters.\n\t * @param {int|node} [src] A TR row node, TD/TH cell node or an integer. If given as\n\t * a TR node then the data source for the whole row will be returned. If given as a\n\t * TD/TH cell node then iCol will be automatically calculated and the data for the\n\t * cell returned. If given as an integer, then this is treated as the aoData internal\n\t * data index for the row (see fnGetPosition) and the data for that row used.\n\t * @param {int} [col] Optional column index that you want the data of.\n\t * @returns {array|object|string} If mRow is undefined, then the data for all rows is\n\t * returned. If mRow is defined, just data for that row, and is iCol is\n\t * defined, only data for the designated cell is returned.\n\t * @dtopt API\n\t * @deprecated Since v1.10\n\t *\n\t * @example\n\t * // Row data\n\t * $(document).ready(function() {\n\t * oTable = $('#example').dataTable();\n\t *\n\t * oTable.$('tr').click( function () {\n\t * var data = oTable.fnGetData( this );\n\t * // ... do something with the array / object of data for the row\n\t * } );\n\t * } );\n\t *\n\t * @example\n\t * // Individual cell data\n\t * $(document).ready(function() {\n\t * oTable = $('#example').dataTable();\n\t *\n\t * oTable.$('td').click( function () {\n\t * var sData = oTable.fnGetData( this );\n\t * alert( 'The cell clicked on had the value of '+sData );\n\t * } );\n\t * } );\n\t */\n\tthis.fnGetData = function( src, col )\n\t{\n\t\tvar api = this.api( true );\n\t\n\t\tif ( src !== undefined ) {\n\t\t\tvar type = src.nodeName ? src.nodeName.toLowerCase() : '';\n\t\n\t\t\treturn col !== undefined || type == 'td' || type == 'th' ?\n\t\t\t\tapi.cell( src, col ).data() :\n\t\t\t\tapi.row( src ).data() || null;\n\t\t}\n\t\n\t\treturn api.data().toArray();\n\t};\n\t\n\t\n\t/**\n\t * Get an array of the TR nodes that are used in the table's body. Note that you will\n\t * typically want to use the '$' API method in preference to this as it is more\n\t * flexible.\n\t * @param {int} [iRow] Optional row index for the TR element you want\n\t * @returns {array|node} If iRow is undefined, returns an array of all TR elements\n\t * in the table's body, or iRow is defined, just the TR element requested.\n\t * @dtopt API\n\t * @deprecated Since v1.10\n\t *\n\t * @example\n\t * $(document).ready(function() {\n\t * var oTable = $('#example').dataTable();\n\t *\n\t * // Get the nodes from the table\n\t * var nNodes = oTable.fnGetNodes( );\n\t * } );\n\t */\n\tthis.fnGetNodes = function( iRow )\n\t{\n\t\tvar api = this.api( true );\n\t\n\t\treturn iRow !== undefined ?\n\t\t\tapi.row( iRow ).node() :\n\t\t\tapi.rows().nodes().flatten().toArray();\n\t};\n\t\n\t\n\t/**\n\t * Get the array indexes of a particular cell from it's DOM element\n\t * and column index including hidden columns\n\t * @param {node} node this can either be a TR, TD or TH in the table's body\n\t * @returns {int} If nNode is given as a TR, then a single index is returned, or\n\t * if given as a cell, an array of [row index, column index (visible),\n\t * column index (all)] is given.\n\t * @dtopt API\n\t * @deprecated Since v1.10\n\t *\n\t * @example\n\t * $(document).ready(function() {\n\t * $('#example tbody td').click( function () {\n\t * // Get the position of the current data from the node\n\t * var aPos = oTable.fnGetPosition( this );\n\t *\n\t * // Get the data array for this row\n\t * var aData = oTable.fnGetData( aPos[0] );\n\t *\n\t * // Update the data array and return the value\n\t * aData[ aPos[1] ] = 'clicked';\n\t * this.innerHTML = 'clicked';\n\t * } );\n\t *\n\t * // Init DataTables\n\t * oTable = $('#example').dataTable();\n\t * } );\n\t */\n\tthis.fnGetPosition = function( node )\n\t{\n\t\tvar api = this.api( true );\n\t\tvar nodeName = node.nodeName.toUpperCase();\n\t\n\t\tif ( nodeName == 'TR' ) {\n\t\t\treturn api.row( node ).index();\n\t\t}\n\t\telse if ( nodeName == 'TD' || nodeName == 'TH' ) {\n\t\t\tvar cell = api.cell( node ).index();\n\t\n\t\t\treturn [\n\t\t\t\tcell.row,\n\t\t\t\tcell.columnVisible,\n\t\t\t\tcell.column\n\t\t\t];\n\t\t}\n\t\treturn null;\n\t};\n\t\n\t\n\t/**\n\t * Check to see if a row is 'open' or not.\n\t * @param {node} nTr the table row to check\n\t * @returns {boolean} true if the row is currently open, false otherwise\n\t * @dtopt API\n\t * @deprecated Since v1.10\n\t *\n\t * @example\n\t * $(document).ready(function() {\n\t * var oTable;\n\t *\n\t * // 'open' an information row when a row is clicked on\n\t * $('#example tbody tr').click( function () {\n\t * if ( oTable.fnIsOpen(this) ) {\n\t * oTable.fnClose( this );\n\t * } else {\n\t * oTable.fnOpen( this, \"Temporary row opened\", \"info_row\" );\n\t * }\n\t * } );\n\t *\n\t * oTable = $('#example').dataTable();\n\t * } );\n\t */\n\tthis.fnIsOpen = function( nTr )\n\t{\n\t\treturn this.api( true ).row( nTr ).child.isShown();\n\t};\n\t\n\t\n\t/**\n\t * This function will place a new row directly after a row which is currently\n\t * on display on the page, with the HTML contents that is passed into the\n\t * function. This can be used, for example, to ask for confirmation that a\n\t * particular record should be deleted.\n\t * @param {node} nTr The table row to 'open'\n\t * @param {string|node|jQuery} mHtml The HTML to put into the row\n\t * @param {string} sClass Class to give the new TD cell\n\t * @returns {node} The row opened. Note that if the table row passed in as the\n\t * first parameter, is not found in the table, this method will silently\n\t * return.\n\t * @dtopt API\n\t * @deprecated Since v1.10\n\t *\n\t * @example\n\t * $(document).ready(function() {\n\t * var oTable;\n\t *\n\t * // 'open' an information row when a row is clicked on\n\t * $('#example tbody tr').click( function () {\n\t * if ( oTable.fnIsOpen(this) ) {\n\t * oTable.fnClose( this );\n\t * } else {\n\t * oTable.fnOpen( this, \"Temporary row opened\", \"info_row\" );\n\t * }\n\t * } );\n\t *\n\t * oTable = $('#example').dataTable();\n\t * } );\n\t */\n\tthis.fnOpen = function( nTr, mHtml, sClass )\n\t{\n\t\treturn this.api( true )\n\t\t\t.row( nTr )\n\t\t\t.child( mHtml, sClass )\n\t\t\t.show()\n\t\t\t.child()[0];\n\t};\n\t\n\t\n\t/**\n\t * Change the pagination - provides the internal logic for pagination in a simple API\n\t * function. With this function you can have a DataTables table go to the next,\n\t * previous, first or last pages.\n\t * @param {string|int} mAction Paging action to take: \"first\", \"previous\", \"next\" or \"last\"\n\t * or page number to jump to (integer), note that page 0 is the first page.\n\t * @param {bool} [bRedraw=true] Redraw the table or not\n\t * @dtopt API\n\t * @deprecated Since v1.10\n\t *\n\t * @example\n\t * $(document).ready(function() {\n\t * var oTable = $('#example').dataTable();\n\t * oTable.fnPageChange( 'next' );\n\t * } );\n\t */\n\tthis.fnPageChange = function ( mAction, bRedraw )\n\t{\n\t\tvar api = this.api( true ).page( mAction );\n\t\n\t\tif ( bRedraw === undefined || bRedraw ) {\n\t\t\tapi.draw(false);\n\t\t}\n\t};\n\t\n\t\n\t/**\n\t * Show a particular column\n\t * @param {int} iCol The column whose display should be changed\n\t * @param {bool} bShow Show (true) or hide (false) the column\n\t * @param {bool} [bRedraw=true] Redraw the table or not\n\t * @dtopt API\n\t * @deprecated Since v1.10\n\t *\n\t * @example\n\t * $(document).ready(function() {\n\t * var oTable = $('#example').dataTable();\n\t *\n\t * // Hide the second column after initialisation\n\t * oTable.fnSetColumnVis( 1, false );\n\t * } );\n\t */\n\tthis.fnSetColumnVis = function ( iCol, bShow, bRedraw )\n\t{\n\t\tvar api = this.api( true ).column( iCol ).visible( bShow );\n\t\n\t\tif ( bRedraw === undefined || bRedraw ) {\n\t\t\tapi.columns.adjust().draw();\n\t\t}\n\t};\n\t\n\t\n\t/**\n\t * Get the settings for a particular table for external manipulation\n\t * @returns {object} DataTables settings object. See\n\t * {@link DataTable.models.oSettings}\n\t * @dtopt API\n\t * @deprecated Since v1.10\n\t *\n\t * @example\n\t * $(document).ready(function() {\n\t * var oTable = $('#example').dataTable();\n\t * var oSettings = oTable.fnSettings();\n\t *\n\t * // Show an example parameter from the settings\n\t * alert( oSettings._iDisplayStart );\n\t * } );\n\t */\n\tthis.fnSettings = function()\n\t{\n\t\treturn _fnSettingsFromNode( this[_ext.iApiIndex] );\n\t};\n\t\n\t\n\t/**\n\t * Sort the table by a particular column\n\t * @param {int} iCol the data index to sort on. Note that this will not match the\n\t * 'display index' if you have hidden data entries\n\t * @dtopt API\n\t * @deprecated Since v1.10\n\t *\n\t * @example\n\t * $(document).ready(function() {\n\t * var oTable = $('#example').dataTable();\n\t *\n\t * // Sort immediately with columns 0 and 1\n\t * oTable.fnSort( [ [0,'asc'], [1,'asc'] ] );\n\t * } );\n\t */\n\tthis.fnSort = function( aaSort )\n\t{\n\t\tthis.api( true ).order( aaSort ).draw();\n\t};\n\t\n\t\n\t/**\n\t * Attach a sort listener to an element for a given column\n\t * @param {node} nNode the element to attach the sort listener to\n\t * @param {int} iColumn the column that a click on this node will sort on\n\t * @param {function} [fnCallback] callback function when sort is run\n\t * @dtopt API\n\t * @deprecated Since v1.10\n\t *\n\t * @example\n\t * $(document).ready(function() {\n\t * var oTable = $('#example').dataTable();\n\t *\n\t * // Sort on column 1, when 'sorter' is clicked on\n\t * oTable.fnSortListener( document.getElementById('sorter'), 1 );\n\t * } );\n\t */\n\tthis.fnSortListener = function( nNode, iColumn, fnCallback )\n\t{\n\t\tthis.api( true ).order.listener( nNode, iColumn, fnCallback );\n\t};\n\t\n\t\n\t/**\n\t * Update a table cell or row - this method will accept either a single value to\n\t * update the cell with, an array of values with one element for each column or\n\t * an object in the same format as the original data source. The function is\n\t * self-referencing in order to make the multi column updates easier.\n\t * @param {object|array|string} mData Data to update the cell/row with\n\t * @param {node|int} mRow TR element you want to update or the aoData index\n\t * @param {int} [iColumn] The column to update, give as null or undefined to\n\t * update a whole row.\n\t * @param {bool} [bRedraw=true] Redraw the table or not\n\t * @param {bool} [bAction=true] Perform pre-draw actions or not\n\t * @returns {int} 0 on success, 1 on error\n\t * @dtopt API\n\t * @deprecated Since v1.10\n\t *\n\t * @example\n\t * $(document).ready(function() {\n\t * var oTable = $('#example').dataTable();\n\t * oTable.fnUpdate( 'Example update', 0, 0 ); // Single cell\n\t * oTable.fnUpdate( ['a', 'b', 'c', 'd', 'e'], $('tbody tr')[0] ); // Row\n\t * } );\n\t */\n\tthis.fnUpdate = function( mData, mRow, iColumn, bRedraw, bAction )\n\t{\n\t\tvar api = this.api( true );\n\t\n\t\tif ( iColumn === undefined || iColumn === null ) {\n\t\t\tapi.row( mRow ).data( mData );\n\t\t}\n\t\telse {\n\t\t\tapi.cell( mRow, iColumn ).data( mData );\n\t\t}\n\t\n\t\tif ( bAction === undefined || bAction ) {\n\t\t\tapi.columns.adjust();\n\t\t}\n\t\n\t\tif ( bRedraw === undefined || bRedraw ) {\n\t\t\tapi.draw();\n\t\t}\n\t\treturn 0;\n\t};\n\t\n\t\n\t/**\n\t * Provide a common method for plug-ins to check the version of DataTables being used, in order\n\t * to ensure compatibility.\n\t * @param {string} sVersion Version string to check for, in the format \"X.Y.Z\". Note that the\n\t * formats \"X\" and \"X.Y\" are also acceptable.\n\t * @returns {boolean} true if this version of DataTables is greater or equal to the required\n\t * version, or false if this version of DataTales is not suitable\n\t * @method\n\t * @dtopt API\n\t * @deprecated Since v1.10\n\t *\n\t * @example\n\t * $(document).ready(function() {\n\t * var oTable = $('#example').dataTable();\n\t * alert( oTable.fnVersionCheck( '1.9.0' ) );\n\t * } );\n\t */\n\tthis.fnVersionCheck = _ext.fnVersionCheck;\n\t\n\n\tvar _that = this;\n\tvar emptyInit = options === undefined;\n\tvar len = this.length;\n\n\tif ( emptyInit ) {\n\t\toptions = {};\n\t}\n\n\tthis.oApi = this.internal = _ext.internal;\n\n\t// Extend with old style plug-in API methods\n\tfor ( var fn in DataTable.ext.internal ) {\n\t\tif ( fn ) {\n\t\t\tthis[fn] = _fnExternApiFunc(fn);\n\t\t}\n\t}\n\n\tthis.each(function() {\n\t\t// For each initialisation we want to give it a clean initialisation\n\t\t// object that can be bashed around\n\t\tvar o = {};\n\t\tvar oInit = len > 1 ? // optimisation for single table case\n\t\t\t_fnExtend( o, options, true ) :\n\t\t\toptions;\n\n\t\t/*global oInit,_that,emptyInit*/\n\t\tvar i=0, iLen, j, jLen, k, kLen;\n\t\tvar sId = this.getAttribute( 'id' );\n\t\tvar bInitHandedOff = false;\n\t\tvar defaults = DataTable.defaults;\n\t\tvar $this = $(this);\n\t\t\n\t\t\n\t\t/* Sanity check */\n\t\tif ( this.nodeName.toLowerCase() != 'table' )\n\t\t{\n\t\t\t_fnLog( null, 0, 'Non-table node initialisation ('+this.nodeName+')', 2 );\n\t\t\treturn;\n\t\t}\n\t\t\n\t\t/* Backwards compatibility for the defaults */\n\t\t_fnCompatOpts( defaults );\n\t\t_fnCompatCols( defaults.column );\n\t\t\n\t\t/* Convert the camel-case defaults to Hungarian */\n\t\t_fnCamelToHungarian( defaults, defaults, true );\n\t\t_fnCamelToHungarian( defaults.column, defaults.column, true );\n\t\t\n\t\t/* Setting up the initialisation object */\n\t\t_fnCamelToHungarian( defaults, $.extend( oInit, $this.data() ), true );\n\t\t\n\t\t\n\t\t\n\t\t/* Check to see if we are re-initialising a table */\n\t\tvar allSettings = DataTable.settings;\n\t\tfor ( i=0, iLen=allSettings.length ; i').appendTo($this);\n\t\t\t}\n\t\t\toSettings.nTHead = thead[0];\n\t\t\n\t\t\tvar tbody = $this.children('tbody');\n\t\t\tif ( tbody.length === 0 ) {\n\t\t\t\ttbody = $('').insertAfter(thead);\n\t\t\t}\n\t\t\toSettings.nTBody = tbody[0];\n\t\t\n\t\t\tvar tfoot = $this.children('tfoot');\n\t\t\tif ( tfoot.length === 0 && captions.length > 0 && (oSettings.oScroll.sX !== \"\" || oSettings.oScroll.sY !== \"\") ) {\n\t\t\t\t// If we are a scrolling table, and no footer has been given, then we need to create\n\t\t\t\t// a tfoot element for the caption element to be appended to\n\t\t\t\ttfoot = $('').appendTo($this);\n\t\t\t}\n\t\t\n\t\t\tif ( tfoot.length === 0 || tfoot.children().length === 0 ) {\n\t\t\t\t$this.addClass( oClasses.sNoFooter );\n\t\t\t}\n\t\t\telse if ( tfoot.length > 0 ) {\n\t\t\t\toSettings.nTFoot = tfoot[0];\n\t\t\t\t_fnDetectHeader( oSettings.aoFooter, oSettings.nTFoot );\n\t\t\t}\n\t\t\n\t\t\t/* Check if there is data passing into the constructor */\n\t\t\tif ( oInit.aaData ) {\n\t\t\t\tfor ( i=0 ; i/g;\n\n// This is not strict ISO8601 - Date.parse() is quite lax, although\n// implementations differ between browsers.\nvar _re_date = /^\\d{2,4}[\\.\\/\\-]\\d{1,2}[\\.\\/\\-]\\d{1,2}([T ]{1}\\d{1,2}[:\\.]\\d{2}([\\.:]\\d{2})?)?$/;\n\n// Escape regular expression special characters\nvar _re_escape_regex = new RegExp( '(\\\\' + [ '/', '.', '*', '+', '?', '|', '(', ')', '[', ']', '{', '}', '\\\\', '$', '^', '-' ].join('|\\\\') + ')', 'g' );\n\n// http://en.wikipedia.org/wiki/Foreign_exchange_market\n// - \\u20BD - Russian ruble.\n// - \\u20a9 - South Korean Won\n// - \\u20BA - Turkish Lira\n// - \\u20B9 - Indian Rupee\n// - R - Brazil (R$) and South Africa\n// - fr - Swiss Franc\n// - kr - Swedish krona, Norwegian krone and Danish krone\n// - \\u2009 is thin space and \\u202F is narrow no-break space, both used in many\n// - Ƀ - Bitcoin\n// - Ξ - Ethereum\n// standards as thousands separators.\nvar _re_formatted_numeric = /['\\u00A0,$£€¥%\\u2009\\u202F\\u20BD\\u20a9\\u20BArfkɃΞ]/gi;\n\n\nvar _empty = function ( d ) {\n\treturn !d || d === true || d === '-' ? true : false;\n};\n\n\nvar _intVal = function ( s ) {\n\tvar integer = parseInt( s, 10 );\n\treturn !isNaN(integer) && isFinite(s) ? integer : null;\n};\n\n// Convert from a formatted number with characters other than `.` as the\n// decimal place, to a Javascript number\nvar _numToDecimal = function ( num, decimalPoint ) {\n\t// Cache created regular expressions for speed as this function is called often\n\tif ( ! _re_dic[ decimalPoint ] ) {\n\t\t_re_dic[ decimalPoint ] = new RegExp( _fnEscapeRegex( decimalPoint ), 'g' );\n\t}\n\treturn typeof num === 'string' && decimalPoint !== '.' ?\n\t\tnum.replace( /\\./g, '' ).replace( _re_dic[ decimalPoint ], '.' ) :\n\t\tnum;\n};\n\n\nvar _isNumber = function ( d, decimalPoint, formatted ) {\n\tlet type = typeof d;\n\tvar strType = type === 'string';\n\n\tif ( type === 'number' || type === 'bigint') {\n\t\treturn true;\n\t}\n\n\t// If empty return immediately so there must be a number if it is a\n\t// formatted string (this stops the string \"k\", or \"kr\", etc being detected\n\t// as a formatted number for currency\n\tif ( _empty( d ) ) {\n\t\treturn true;\n\t}\n\n\tif ( decimalPoint && strType ) {\n\t\td = _numToDecimal( d, decimalPoint );\n\t}\n\n\tif ( formatted && strType ) {\n\t\td = d.replace( _re_formatted_numeric, '' );\n\t}\n\n\treturn !isNaN( parseFloat(d) ) && isFinite( d );\n};\n\n\n// A string without HTML in it can be considered to be HTML still\nvar _isHtml = function ( d ) {\n\treturn _empty( d ) || typeof d === 'string';\n};\n\n\nvar _htmlNumeric = function ( d, decimalPoint, formatted ) {\n\tif ( _empty( d ) ) {\n\t\treturn true;\n\t}\n\n\tvar html = _isHtml( d );\n\treturn ! html ?\n\t\tnull :\n\t\t_isNumber( _stripHtml( d ), decimalPoint, formatted ) ?\n\t\t\ttrue :\n\t\t\tnull;\n};\n\n\nvar _pluck = function ( a, prop, prop2 ) {\n\tvar out = [];\n\tvar i=0, ien=a.length;\n\n\t// Could have the test in the loop for slightly smaller code, but speed\n\t// is essential here\n\tif ( prop2 !== undefined ) {\n\t\tfor ( ; i')\n\t\t\t.css( {\n\t\t\t\tposition: 'fixed',\n\t\t\t\ttop: 0,\n\t\t\t\tleft: $(window).scrollLeft()*-1, // allow for scrolling\n\t\t\t\theight: 1,\n\t\t\t\twidth: 1,\n\t\t\t\toverflow: 'hidden'\n\t\t\t} )\n\t\t\t.append(\n\t\t\t\t$('
')\n\t\t\t\t\t.css( {\n\t\t\t\t\t\tposition: 'absolute',\n\t\t\t\t\t\ttop: 1,\n\t\t\t\t\t\tleft: 1,\n\t\t\t\t\t\twidth: 100,\n\t\t\t\t\t\toverflow: 'scroll'\n\t\t\t\t\t} )\n\t\t\t\t\t.append(\n\t\t\t\t\t\t$('
')\n\t\t\t\t\t\t\t.css( {\n\t\t\t\t\t\t\t\twidth: '100%',\n\t\t\t\t\t\t\t\theight: 10\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t)\n\t\t\t)\n\t\t\t.appendTo( 'body' );\n\n\t\tvar outer = n.children();\n\t\tvar inner = outer.children();\n\n\t\t// Numbers below, in order, are:\n\t\t// inner.offsetWidth, inner.clientWidth, outer.offsetWidth, outer.clientWidth\n\t\t//\n\t\t// IE6 XP: 100 100 100 83\n\t\t// IE7 Vista: 100 100 100 83\n\t\t// IE 8+ Windows: 83 83 100 83\n\t\t// Evergreen Windows: 83 83 100 83\n\t\t// Evergreen Mac with scrollbars: 85 85 100 85\n\t\t// Evergreen Mac without scrollbars: 100 100 100 100\n\n\t\t// Get scrollbar width\n\t\tbrowser.barWidth = outer[0].offsetWidth - outer[0].clientWidth;\n\n\t\t// IE6/7 will oversize a width 100% element inside a scrolling element, to\n\t\t// include the width of the scrollbar, while other browsers ensure the inner\n\t\t// element is contained without forcing scrolling\n\t\tbrowser.bScrollOversize = inner[0].offsetWidth === 100 && outer[0].clientWidth !== 100;\n\n\t\t// In rtl text layout, some browsers (most, but not all) will place the\n\t\t// scrollbar on the left, rather than the right.\n\t\tbrowser.bScrollbarLeft = Math.round( inner.offset().left ) !== 1;\n\n\t\t// IE8- don't provide height and width for getBoundingClientRect\n\t\tbrowser.bBounding = n[0].getBoundingClientRect().width ? true : false;\n\n\t\tn.remove();\n\t}\n\n\t$.extend( settings.oBrowser, DataTable.__browser );\n\tsettings.oScroll.iBarWidth = DataTable.__browser.barWidth;\n}\n\n\n/**\n * Array.prototype reduce[Right] method, used for browsers which don't support\n * JS 1.6. Done this way to reduce code size, since we iterate either way\n * @param {object} settings dataTables settings object\n * @memberof DataTable#oApi\n */\nfunction _fnReduce ( that, fn, init, start, end, inc )\n{\n\tvar\n\t\ti = start,\n\t\tvalue,\n\t\tisSet = false;\n\n\tif ( init !== undefined ) {\n\t\tvalue = init;\n\t\tisSet = true;\n\t}\n\n\twhile ( i !== end ) {\n\t\tif ( ! that.hasOwnProperty(i) ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tvalue = isSet ?\n\t\t\tfn( value, that[i], i, that ) :\n\t\t\tthat[i];\n\n\t\tisSet = true;\n\t\ti += inc;\n\t}\n\n\treturn value;\n}\n\n/**\n * Add a column to the list used for the table with default values\n * @param {object} oSettings dataTables settings object\n * @param {node} nTh The th element for this column\n * @memberof DataTable#oApi\n */\nfunction _fnAddColumn( oSettings, nTh )\n{\n\t// Add column to aoColumns array\n\tvar oDefaults = DataTable.defaults.column;\n\tvar iCol = oSettings.aoColumns.length;\n\tvar oCol = $.extend( {}, DataTable.models.oColumn, oDefaults, {\n\t\t\"nTh\": nTh ? nTh : document.createElement('th'),\n\t\t\"sTitle\": oDefaults.sTitle ? oDefaults.sTitle : nTh ? nTh.innerHTML : '',\n\t\t\"aDataSort\": oDefaults.aDataSort ? oDefaults.aDataSort : [iCol],\n\t\t\"mData\": oDefaults.mData ? oDefaults.mData : iCol,\n\t\tidx: iCol\n\t} );\n\toSettings.aoColumns.push( oCol );\n\n\t// Add search object for column specific search. Note that the `searchCols[ iCol ]`\n\t// passed into extend can be undefined. This allows the user to give a default\n\t// with only some of the parameters defined, and also not give a default\n\tvar searchCols = oSettings.aoPreSearchCols;\n\tsearchCols[ iCol ] = $.extend( {}, DataTable.models.oSearch, searchCols[ iCol ] );\n\n\t// Use the default column options function to initialise classes etc\n\t_fnColumnOptions( oSettings, iCol, $(nTh).data() );\n}\n\n\n/**\n * Apply options for a column\n * @param {object} oSettings dataTables settings object\n * @param {int} iCol column index to consider\n * @param {object} oOptions object with sType, bVisible and bSearchable etc\n * @memberof DataTable#oApi\n */\nfunction _fnColumnOptions( oSettings, iCol, oOptions )\n{\n\tvar oCol = oSettings.aoColumns[ iCol ];\n\tvar oClasses = oSettings.oClasses;\n\tvar th = $(oCol.nTh);\n\n\t// Try to get width information from the DOM. We can't get it from CSS\n\t// as we'd need to parse the CSS stylesheet. `width` option can override\n\tif ( ! oCol.sWidthOrig ) {\n\t\t// Width attribute\n\t\toCol.sWidthOrig = th.attr('width') || null;\n\n\t\t// Style attribute\n\t\tvar t = (th.attr('style') || '').match(/width:\\s*(\\d+[pxem%]+)/);\n\t\tif ( t ) {\n\t\t\toCol.sWidthOrig = t[1];\n\t\t}\n\t}\n\n\t/* User specified column options */\n\tif ( oOptions !== undefined && oOptions !== null )\n\t{\n\t\t// Backwards compatibility\n\t\t_fnCompatCols( oOptions );\n\n\t\t// Map camel case parameters to their Hungarian counterparts\n\t\t_fnCamelToHungarian( DataTable.defaults.column, oOptions, true );\n\n\t\t/* Backwards compatibility for mDataProp */\n\t\tif ( oOptions.mDataProp !== undefined && !oOptions.mData )\n\t\t{\n\t\t\toOptions.mData = oOptions.mDataProp;\n\t\t}\n\n\t\tif ( oOptions.sType )\n\t\t{\n\t\t\toCol._sManualType = oOptions.sType;\n\t\t}\n\n\t\t// `class` is a reserved word in Javascript, so we need to provide\n\t\t// the ability to use a valid name for the camel case input\n\t\tif ( oOptions.className && ! oOptions.sClass )\n\t\t{\n\t\t\toOptions.sClass = oOptions.className;\n\t\t}\n\t\tif ( oOptions.sClass ) {\n\t\t\tth.addClass( oOptions.sClass );\n\t\t}\n\n\t\tvar origClass = oCol.sClass;\n\n\t\t$.extend( oCol, oOptions );\n\t\t_fnMap( oCol, oOptions, \"sWidth\", \"sWidthOrig\" );\n\n\t\t// Merge class from previously defined classes with this one, rather than just\n\t\t// overwriting it in the extend above\n\t\tif (origClass !== oCol.sClass) {\n\t\t\toCol.sClass = origClass + ' ' + oCol.sClass;\n\t\t}\n\n\t\t/* iDataSort to be applied (backwards compatibility), but aDataSort will take\n\t\t * priority if defined\n\t\t */\n\t\tif ( oOptions.iDataSort !== undefined )\n\t\t{\n\t\t\toCol.aDataSort = [ oOptions.iDataSort ];\n\t\t}\n\t\t_fnMap( oCol, oOptions, \"aDataSort\" );\n\t}\n\n\t/* Cache the data get and set functions for speed */\n\tvar mDataSrc = oCol.mData;\n\tvar mData = _fnGetObjectDataFn( mDataSrc );\n\tvar mRender = oCol.mRender ? _fnGetObjectDataFn( oCol.mRender ) : null;\n\n\tvar attrTest = function( src ) {\n\t\treturn typeof src === 'string' && src.indexOf('@') !== -1;\n\t};\n\toCol._bAttrSrc = $.isPlainObject( mDataSrc ) && (\n\t\tattrTest(mDataSrc.sort) || attrTest(mDataSrc.type) || attrTest(mDataSrc.filter)\n\t);\n\toCol._setter = null;\n\n\toCol.fnGetData = function (rowData, type, meta) {\n\t\tvar innerData = mData( rowData, type, undefined, meta );\n\n\t\treturn mRender && type ?\n\t\t\tmRender( innerData, type, rowData, meta ) :\n\t\t\tinnerData;\n\t};\n\toCol.fnSetData = function ( rowData, val, meta ) {\n\t\treturn _fnSetObjectDataFn( mDataSrc )( rowData, val, meta );\n\t};\n\n\t// Indicate if DataTables should read DOM data as an object or array\n\t// Used in _fnGetRowElements\n\tif ( typeof mDataSrc !== 'number' && ! oCol._isArrayHost ) {\n\t\toSettings._rowReadObject = true;\n\t}\n\n\t/* Feature sorting overrides column specific when off */\n\tif ( !oSettings.oFeatures.bSort )\n\t{\n\t\toCol.bSortable = false;\n\t\tth.addClass( oClasses.sSortableNone ); // Have to add class here as order event isn't called\n\t}\n\n\t/* Check that the class assignment is correct for sorting */\n\tvar bAsc = $.inArray('asc', oCol.asSorting) !== -1;\n\tvar bDesc = $.inArray('desc', oCol.asSorting) !== -1;\n\tif ( !oCol.bSortable || (!bAsc && !bDesc) )\n\t{\n\t\toCol.sSortingClass = oClasses.sSortableNone;\n\t\toCol.sSortingClassJUI = \"\";\n\t}\n\telse if ( bAsc && !bDesc )\n\t{\n\t\toCol.sSortingClass = oClasses.sSortableAsc;\n\t\toCol.sSortingClassJUI = oClasses.sSortJUIAscAllowed;\n\t}\n\telse if ( !bAsc && bDesc )\n\t{\n\t\toCol.sSortingClass = oClasses.sSortableDesc;\n\t\toCol.sSortingClassJUI = oClasses.sSortJUIDescAllowed;\n\t}\n\telse\n\t{\n\t\toCol.sSortingClass = oClasses.sSortable;\n\t\toCol.sSortingClassJUI = oClasses.sSortJUI;\n\t}\n}\n\n\n/**\n * Adjust the table column widths for new data. Note: you would probably want to\n * do a redraw after calling this function!\n * @param {object} settings dataTables settings object\n * @memberof DataTable#oApi\n */\nfunction _fnAdjustColumnSizing ( settings )\n{\n\t/* Not interested in doing column width calculation if auto-width is disabled */\n\tif ( settings.oFeatures.bAutoWidth !== false )\n\t{\n\t\tvar columns = settings.aoColumns;\n\n\t\t_fnCalculateColumnWidths( settings );\n\t\tfor ( var i=0 , iLen=columns.length ; i
\r\n \r\n
\r\n
\r\n
0\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
NameTypeActions
{{ fa.assayName | titlecase }}{{ fa.assayType | titlecase }}\r\n Edit\r\n Clone\r\n Delete\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n\r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n Total Composition cannot be more than 1\r\n \r\n Total Composition cannot be more than 100%\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n

Please add a fluid analysis

\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n

Excel upload

\r\n
\r\n
\r\n
\r\n To import assays, please\r\n download\r\n the generated Excel template and fill-in information\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n","import { AfterViewInit, ChangeDetectorRef, Component, Input, OnInit } from '@angular/core';\r\nimport { AssayManager } from '../../_models/_fluid/assay-manager';\r\nimport { SuncorFluidAnalysis } from '../../_models/_fluid/suncor-fluid-analysis';\r\nimport { FlowsheetService } from '../../_services/flowsheet.service';\r\nimport { AssayManagerExcelService } from '../../_services/excel-upload/assay-manager/assay-manager-excel.service';\r\nimport { CoreService } from '../../_services/core.service';\r\nimport { ResourceDataService } from '../../_services/resource-data.service';\r\nimport { GasFluidAnalysis } from '../../_models/_fluid/gas-fluid-analysis';\r\nimport 'DataTables.net';\r\n\r\n@Component({\r\n selector: 'sob-assay-manager',\r\n templateUrl: './assay-manager.component.html',\r\n styleUrls: ['./assay-manager.component.css'],\r\n})\r\nexport class AssayManagerComponent implements OnInit, AfterViewInit {\r\n @Input() assayManager: AssayManager;\r\n newAnalysisName: string;\r\n newAnalysisType: string;\r\n currentAnalysis: SuncorFluidAnalysis | GasFluidAnalysis;\r\n\r\n constructor(\r\n private ref: ChangeDetectorRef,\r\n private flowsheetService: FlowsheetService,\r\n private coreService: CoreService,\r\n private assayManagerExcelService: AssayManagerExcelService,\r\n private resourceDataService: ResourceDataService\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.newAnalysisType = 'Crude oil - Bitumen';\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n const $modal = $('#assayManagerModal');\r\n $modal.on('hide.bs.modal', () => {\r\n if (this.currentAnalysis) {\r\n this.saveCurrentAnalysis();\r\n this.currentAnalysis = null;\r\n }\r\n });\r\n $modal.on('hidden.bs.modal', () => {\r\n $('#currentAnalysisWrapper').find('select').val('');\r\n });\r\n }\r\n\r\n saveCurrentAnalysis(): void {\r\n if (this.currentAnalysis) {\r\n this.setDefaultCompositionValues();\r\n this.currentAnalysis.convertToInternalUnit();\r\n this.assayManager.findFluidAnalysisById(this.currentAnalysis.id).overwriteValues(this.currentAnalysis);\r\n this.coreService.notifyAssayUpdated(this.currentAnalysis, true);\r\n }\r\n }\r\n\r\n setDefaultCompositionValues() {\r\n for (const sv of this.currentAnalysis.composition) {\r\n if (sv.isUndefined() || sv.value.toString() === '') {\r\n sv.setDefaultValue(0);\r\n }\r\n }\r\n }\r\n\r\n setCurrentAnalysisById(id: string): void {\r\n this.newAnalysisName = '';\r\n if (this.currentAnalysis) {\r\n delete this.currentAnalysis;\r\n }\r\n const originalAnalysis = this.assayManager.findFluidAnalysisById(id);\r\n if (originalAnalysis) {\r\n if (originalAnalysis.assayType === 'Gas') {\r\n this.currentAnalysis = new GasFluidAnalysis(originalAnalysis, originalAnalysis.ownerCase, this.assayManager);\r\n } else {\r\n this.currentAnalysis = new SuncorFluidAnalysis(originalAnalysis, originalAnalysis.ownerCase, this.assayManager);\r\n }\r\n this.assayManager.currentAnalysisId = id;\r\n this.ref.detectChanges();\r\n }\r\n }\r\n\r\n addFluidAnalysis(): void {\r\n if (this.newAnalysisName) {\r\n if (this.validateName(this.newAnalysisName)) {\r\n const resourceData = this.resourceDataService.getAssayManagerResourceData();\r\n\r\n const newAssay = this.assayManager.addFluidAnalysis(this.newAnalysisName, this.newAnalysisType);\r\n\r\n this.newAnalysisName = '';\r\n this.coreService.notifyAssayAdded(newAssay);\r\n this.setCurrentAnalysisById(newAssay.id);\r\n }\r\n }\r\n }\r\n\r\n removeFluidAnalysis(id: string, tableId: string): void {\r\n const assay = this.assayManager.findFluidAnalysisById(id);\r\n this.assayManager.removeFluidAnalysis(id);\r\n this.coreService.notifyAssayDeleted(assay);\r\n $(`#${tableId}`)\r\n .DataTable()\r\n .row($(`#${id}`))\r\n .remove();\r\n }\r\n\r\n cloneFluidAnalysis(id: string): void {\r\n this.newAnalysisName = '';\r\n const assay = this.assayManager.cloneAssay(id);\r\n this.coreService.notifyAssayAdded(assay);\r\n this.setCurrentAnalysisById(assay.id);\r\n }\r\n\r\n removeCurrentAnalysis() {\r\n if (this.validateName(this.currentAnalysis.assayName)) {\r\n this.saveCurrentAnalysis();\r\n this.currentAnalysis = null;\r\n }\r\n }\r\n\r\n uploadAssays() {\r\n if (!File || !FileReader || !FileList || !Blob) {\r\n alert('The file APIs are not fully supported in this browser');\r\n }\r\n const input = document.getElementById('excelFileInput');\r\n if (!input) {\r\n alert('Could not find the file input element');\r\n } else if (!input.files[0]) {\r\n alert('Please select a file before clicking \"Load\"');\r\n } else {\r\n const file = input.files[0];\r\n const fr = new FileReader();\r\n\r\n fr.onload = e => {\r\n this.assayManagerExcelService.uploadAssays((e).target.result);\r\n // this.caseService.loadProjectFile((e).target.result);\r\n // this.logManager.info('File uploaded successfully.');\r\n };\r\n\r\n fr.readAsBinaryString(file);\r\n $('#excelUploadModal').modal('hide');\r\n }\r\n }\r\n\r\n totalOutputWarningMessage() {\r\n const totalOutput = $('#AMcompositionTotal').val();\r\n const selectedUnit = $('#AMcompositionUnit').val() as string;\r\n\r\n if (selectedUnit === 'wt%') {\r\n if (totalOutput > 100) {\r\n return 1;\r\n }\r\n } else if (selectedUnit === 'fraction') {\r\n if (totalOutput > 1) {\r\n return 0;\r\n }\r\n }\r\n\r\n return Number.MAX_SAFE_INTEGER; // none of the above...\r\n }\r\n\r\n validateName(assayName: string) {\r\n const assayByName = this.assayManager.getAssayByName(assayName);\r\n if (assayByName) {\r\n return this.currentAnalysis ? !(assayByName && assayByName.id !== this.currentAnalysis.id) : !assayByName;\r\n }\r\n return true;\r\n }\r\n}\r\n","\r\n
\r\n
\r\n
\r\n \r\n

Constraint Violation Report

\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Owner Operation NameVariable NameConstraint Violation Percent
{{ entry.ownerOperationName }}{{ entry.variableName }}{{ entry.constraintViolationPercent | number : '1.2-2' }}
\r\n
\r\n
\r\n
\r\n\r\n","import { ChangeDetectorRef, Component } from '@angular/core';\r\nimport { CoreService } from '../../_services/core.service';\r\nimport { ConstraintViolationEntry } from '../../_models/constraint-violation-entry';\r\n\r\n@Component({\r\n selector: 'sob-constraint-violation-report',\r\n templateUrl: './constraint-violation-report.component.html',\r\n styleUrls: ['./constraint-violation-report.component.css'],\r\n})\r\nexport class ConstraintViolationReportComponent {\r\n constraintViolationEntries: ConstraintViolationEntry[] = [];\r\n constructor(private coreService: CoreService, private ref: ChangeDetectorRef) {}\r\n\r\n showConstraintViolationReport() {\r\n $('#constraintViolationReportModal').modal('show');\r\n }\r\n}\r\n","
\r\n
    \r\n
  • \r\n \r\n
  • \r\n
  • \r\n \r\n
  • \r\n
\r\n
\r\n","import { Component } from '@angular/core';\r\nimport { SankeyDiagramService } from '../sankey-diagram/sankey-diagram.service';\r\n\r\n@Component({\r\n selector: 'sob-sankey-diagram-controls',\r\n templateUrl: './sankey-diagram-controls.component.html',\r\n styleUrls: ['./sankey-diagram-controls.component.css'],\r\n})\r\nexport class SankeyDiagramControlsComponent {\r\n genericSinksVisible = true;\r\n constructor(private sankeyDiagramService: SankeyDiagramService) {}\r\n\r\n hideGenericSinks() {\r\n this.genericSinksVisible = false;\r\n this.sankeyDiagramService.hideGenericSinks();\r\n }\r\n\r\n showGenericSinks() {\r\n this.genericSinksVisible = true;\r\n this.sankeyDiagramService.showGenericSinks();\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { UnitOperation } from '../_models';\r\n\r\n@Pipe({\r\n name: 'unitOperationFilter',\r\n})\r\nexport class UnitOperationFilterPipePipe implements PipeTransform {\r\n transform(unitOperations: UnitOperation[], searchTerm: string): any[] {\r\n if (!unitOperations) {\r\n return null;\r\n }\r\n if (!searchTerm) {\r\n return unitOperations;\r\n }\r\n searchTerm = searchTerm.toLowerCase();\r\n return unitOperations.filter(uo => {\r\n return uo.name.toLowerCase().includes(searchTerm);\r\n });\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n \r\n

Search

\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
    \r\n \r\n
  • \r\n {{ uo.name }}\r\n
  • \r\n
    \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { AfterViewInit, Component } from '@angular/core';\r\nimport { CoreService } from '../../_services/core.service';\r\nimport { UnitOperation } from '../../_models';\r\nimport { FlowsheetDiagramService } from '../../_services/flowsheet-diagram/flowsheet-diagram.service';\r\n\r\n@Component({\r\n selector: 'sob-search-modal',\r\n templateUrl: './search-modal.component.html',\r\n styleUrls: ['./search-modal.component.css'],\r\n})\r\nexport class SearchModalComponent implements AfterViewInit {\r\n searchTerm = '';\r\n selectedUnitId = '';\r\n\r\n constructor(private coreService: CoreService, private flowsheetDiagramService: FlowsheetDiagramService) {}\r\n\r\n zoomToUnitOperation() {\r\n this.searchTerm = '';\r\n $('#searchModal').modal('hide');\r\n this.flowsheetDiagramService.zoomToUnitOperation(this.selectedUnitId);\r\n this.selectedUnitId = '';\r\n }\r\n\r\n get unitOperations() {\r\n let activeFlowsheet;\r\n if (this.coreService.currentCase.getActiveFlowsheet()) {\r\n const uoId = this.coreService.currentCase.getActiveFlowsheet().unitOperationId;\r\n activeFlowsheet = this.coreService.currentCase.getUnitOperation(uoId);\r\n }\r\n if (activeFlowsheet) {\r\n return this.coreService.currentCase.filterUnitOperations(\r\n uo =>\r\n uo instanceof UnitOperation &&\r\n uo.flowsheetId === this.coreService.currentCase.getActiveFlowsheet().unitOperationId\r\n );\r\n }\r\n return this.coreService.currentCase.filterUnitOperations(\r\n uo => uo instanceof UnitOperation && uo.flowsheetId === ''\r\n );\r\n }\r\n\r\n assignSearchTerm(searchTerm) {\r\n this.searchTerm = searchTerm;\r\n this.selectedUnitId = searchTerm;\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n jQuery('#search-bar').focusin(() => {\r\n jQuery('#facilities').css('display', 'block');\r\n });\r\n jQuery('#facilities').on('click', $e => {\r\n this.searchTerm = $e.target.innerText;\r\n jQuery('#facilities').css('display', 'none');\r\n });\r\n jQuery('#search-bar').focusout(() => {\r\n setTimeout(() => {\r\n jQuery('#facilities').css('display', 'none');\r\n }, 100);\r\n });\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n \r\n

Stream Information

\r\n
\r\n\r\n
\r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Please enter a name for the stream\r\n Entered name is already in use\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n {{ stream.inletUnitOperation.name }}\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n {{ stream.outletUnitOperation.name }}\r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { ChangeDetectorRef, Component, OnInit } from '@angular/core';\r\nimport { AbstractControl, UntypedFormBuilder, UntypedFormControl, UntypedFormGroup, Validators } from '@angular/forms';\r\nimport { WaterMaterialStream } from '../../../_models/_streams/water-material-stream';\r\nimport { CoreService } from '../../../_services/core.service';\r\nimport { FlowsheetService } from '../../../_services/flowsheet.service';\r\n\r\n@Component({\r\n selector: 'sob-water-material-stream',\r\n templateUrl: './water-material-stream.component.html',\r\n styleUrls: ['./water-material-stream.component.css'],\r\n})\r\nexport class WaterMaterialStreamComponent implements OnInit {\r\n stream: WaterMaterialStream;\r\n streamGroup: UntypedFormGroup;\r\n\r\n constructor(\r\n private coreService: CoreService,\r\n private flowsheetService: FlowsheetService,\r\n private ref: ChangeDetectorRef,\r\n private fb: UntypedFormBuilder\r\n ) {\r\n this.flowsheetService.openWaterStreamPropertyWindowRequest.subscribe(streamId => {\r\n this.openStream(streamId);\r\n });\r\n }\r\n\r\n initForm() {\r\n this.streamGroup = this.fb.group({\r\n name: this.fb.control(this.stream.name || '', [Validators.required, this.uniqueNameValidator()]),\r\n });\r\n }\r\n\r\n get nameControl() {\r\n return this.streamGroup ? (this.streamGroup.get('name') as UntypedFormControl) : null;\r\n }\r\n\r\n ngOnInit() {\r\n this.streamGroup = this.fb.group({ name: this.fb.control('') });\r\n\r\n $('#streamWaterModal').on('hide.bs.modal', e => {\r\n if (this.streamGroup.invalid) {\r\n e.preventDefault();\r\n e.stopImmediatePropagation();\r\n this.nameControl.markAsDirty();\r\n return false;\r\n }\r\n\r\n this.save();\r\n return true;\r\n });\r\n }\r\n\r\n openStream(streamId) {\r\n this.stream = null;\r\n this.ref.detectChanges();\r\n this.stream = this.coreService.currentCase.filterWaterMaterialStreams(stream => {\r\n return stream.id === streamId;\r\n })[0];\r\n this.initForm();\r\n this.ref.detectChanges();\r\n\r\n $('#streamWaterModal').modal('show');\r\n }\r\n\r\n save() {\r\n this.stream.name = this.nameControl.value.trim();\r\n this.coreService.saveStream(this.stream);\r\n }\r\n\r\n uniqueNameValidator() {\r\n return (control: AbstractControl): { [key: string]: any } => {\r\n if (\r\n this.stream.ownerCase.filterWaterMaterialStreams(\r\n s => s.name === control.value.trim() && s.id !== this.stream.id\r\n ).length\r\n ) {\r\n return { unique: true };\r\n }\r\n return null;\r\n };\r\n }\r\n}\r\n","import { SimulationVariable } from '../simulation-variable';\r\n\r\nexport interface MultiPeriodTank {\r\n id: string;\r\n name: string;\r\n minVolume: SimulationVariable;\r\n maxVolume: SimulationVariable;\r\n initialVolume: SimulationVariable;\r\n}\r\n\r\nexport function isMultiPeriodTank(tank: any): tank is MultiPeriodTank {\r\n return tank.hasOwnProperty('minVolume') && tank.hasOwnProperty('maxVolume') && tank.hasOwnProperty('initialVolume');\r\n}\r\n","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\r\nimport { hasNumericValue } from '../_utils/utils';\r\n\r\nexport class CustomValidators {\r\n /**\r\n * Positive validator, accepts values with commas\r\n * @param control the FormControl to be validated\r\n */\r\n static positive(control: AbstractControl): ValidationErrors | null {\r\n const numericValue =\r\n typeof control.value === 'string' ? parseFloat(control.value.replace(/,/g, '')) : control.value;\r\n\r\n if (!Number.isNaN(numericValue) && numericValue < 0) {\r\n return {\r\n positive: true,\r\n };\r\n }\r\n\r\n return null;\r\n }\r\n\r\n /**\r\n * Validator for checking that the value of a text input is a valid numeric string\r\n * @param performRequiredValidation If true, empty string will be considered invalid\r\n */\r\n static validNumber(performRequiredValidation: boolean): ValidatorFn {\r\n return (control: AbstractControl): { [key: string]: any } | null => {\r\n if (!performRequiredValidation && !hasNumericValue(control.value)) {\r\n return null;\r\n }\r\n\r\n const regex = /^[-+]?(?:[0-9]+,)*[0-9]+(?:\\.[0-9]+)?$/;\r\n\r\n if (!regex.test(control.value)) {\r\n return {\r\n validNumber: true, // indicates that validNumber validation failed\r\n };\r\n }\r\n\r\n return null;\r\n };\r\n }\r\n}\r\n","
\r\n \r\n This field is required\r\n
\r\n\r\n
\r\n \r\n Please enter a positive number\r\n
\r\n\r\n
\r\n \r\n Please enter a valid number\r\n
\r\n","import { Component, Input } from '@angular/core';\r\nimport { AbstractControl } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'sob-number-validation-messages',\r\n templateUrl: './number-validation-messages.component.html',\r\n styleUrls: ['./number-validation-messages.component.css'],\r\n})\r\nexport class NumberValidationMessagesComponent {\r\n @Input() control: AbstractControl;\r\n}\r\n","
\r\n

Initial Setup

\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n\r\n
\r\n \r\n\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n

\r\n \r\n \r\n {{ tank.name }}\r\n \r\n

\r\n\r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { AbstractControl, UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';\r\nimport { MultiPeriodSettings } from '../../../_models/_multi-period/multi-period-settings';\r\nimport { Case, UnitOperation } from '../../../_models';\r\nimport { isMultiPeriodTank, MultiPeriodTank } from '../../../_models/_multi-period/multi-period-tank';\r\nimport { CustomValidators } from '../../../shared/custom-validators';\r\nimport { SimVarFormBuilder } from '../../../_form-utils/sim-var-form-builder';\r\nimport { SimulationVariableMapper } from '../../../_mappers/simulation-variable-mapper';\r\nimport { CoreService } from '../../../_services/core.service';\r\n\r\n@Component({\r\n selector: 'sob-multi-period-inventory-settings',\r\n templateUrl: './multi-period-inventory-settings.component.html',\r\n styleUrls: ['./multi-period-inventory-settings.component.css'],\r\n})\r\nexport class MultiPeriodInventorySettingsComponent implements OnInit {\r\n @Input() formGroup: UntypedFormGroup;\r\n isSubmitted: boolean;\r\n allTanks: MultiPeriodTank[] = [];\r\n\r\n constructor(\r\n private fb: UntypedFormBuilder,\r\n private svfb: SimVarFormBuilder,\r\n private simVarMapper: SimulationVariableMapper,\r\n private core: CoreService\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.init();\r\n }\r\n\r\n init() {\r\n this.removeFormControls();\r\n this.allTanks = [];\r\n this.addFormControls();\r\n\r\n if (this.currentCase.multiPeriodSettings.evaluateInventory) {\r\n this.findAllTanks();\r\n this.addTanksFormControls();\r\n }\r\n }\r\n\r\n addFormControls() {\r\n this.formGroup.addControl(\r\n 'numberOfSteps',\r\n this.fb.control(this.multiPeriodSettings.numberOfSteps, [\r\n CustomValidators.validNumber(true),\r\n CustomValidators.positive,\r\n ])\r\n );\r\n\r\n this.formGroup.addControl('evaluateInventory', this.fb.control(this.multiPeriodSettings.evaluateInventory));\r\n }\r\n\r\n removeFormControls() {\r\n this.formGroup.removeControl('numberOfSteps');\r\n this.formGroup.removeControl('evaluateInventory');\r\n this.removeTanksFormControls();\r\n }\r\n\r\n onEvaluateInventoryChange($event: Event) {\r\n const { checked } = $event.target as HTMLInputElement;\r\n\r\n if (checked) {\r\n this.onEvaluateInventoryChecked();\r\n } else {\r\n this.onEvaluateInventoryUnchecked();\r\n }\r\n }\r\n\r\n get numberOfStepsControl(): AbstractControl {\r\n return this.formGroup.get('numberOfSteps');\r\n }\r\n\r\n touchedOrDirty(control: AbstractControl): boolean {\r\n return control.touched || control.dirty;\r\n }\r\n\r\n private onEvaluateInventoryChecked() {\r\n this.findAllTanks();\r\n this.addTanksFormControls();\r\n }\r\n\r\n private onEvaluateInventoryUnchecked() {\r\n this.removeTanksFormControls();\r\n this.allTanks = [];\r\n }\r\n\r\n private findAllTanks() {\r\n this.allTanks = this.currentCase\r\n .filterUnitOperations((uo: UnitOperation) => {\r\n return isMultiPeriodTank(uo);\r\n })\r\n .map(t => (isMultiPeriodTank(t) ? t : undefined));\r\n }\r\n\r\n private addTanksFormControls() {\r\n for (const tank of this.allTanks) {\r\n this.formGroup.addControl(\r\n tank.id,\r\n this.fb.group({\r\n minVolume: this.svfb.control(tank.minVolume, false, false, false, [\r\n CustomValidators.validNumber(true),\r\n CustomValidators.positive,\r\n ]),\r\n\r\n maxVolume: this.svfb.control(tank.maxVolume, false, false, false, [\r\n CustomValidators.validNumber(true),\r\n CustomValidators.positive,\r\n ]),\r\n\r\n initialVolume: this.svfb.control(tank.initialVolume, false, false, false, [\r\n CustomValidators.validNumber(true),\r\n CustomValidators.positive,\r\n ]),\r\n })\r\n );\r\n }\r\n }\r\n\r\n private removeTanksFormControls() {\r\n for (const tank of this.allTanks) {\r\n this.formGroup.removeControl(tank.id);\r\n }\r\n }\r\n\r\n getTankValueFormControl(tankId: string, simVarName: string) {\r\n return this.formGroup.get(tankId).get(simVarName).get('value');\r\n }\r\n\r\n shouldShowControlValidation(control: AbstractControl) {\r\n return control.invalid && (this.isSubmitted || this.touchedOrDirty(control));\r\n }\r\n\r\n map(): void {\r\n this.isSubmitted = true;\r\n\r\n if (this.formGroup.valid) {\r\n this.multiPeriodSettings.numberOfSteps = +this.formGroup.value.numberOfSteps;\r\n this.multiPeriodSettings.evaluateInventory = !!this.formGroup.value.evaluateInventory;\r\n this.mapTankValues();\r\n }\r\n }\r\n\r\n private mapTankValues(): void {\r\n for (const tank of this.allTanks) {\r\n let ev = this.formGroup.get(tank.id).get('minVolume').value;\r\n this.simVarMapper.map(ev, tank.minVolume);\r\n\r\n ev = this.formGroup.get(tank.id).get('maxVolume').value;\r\n this.simVarMapper.map(ev, tank.maxVolume);\r\n\r\n ev = this.formGroup.get(tank.id).get('initialVolume').value;\r\n this.simVarMapper.map(ev, tank.initialVolume);\r\n }\r\n }\r\n\r\n private get currentCase(): Case {\r\n return this.core.currentCase;\r\n }\r\n\r\n get multiPeriodSettings(): MultiPeriodSettings {\r\n return this.currentCase.multiPeriodSettings;\r\n }\r\n}\r\n","import * as wjcSheet from '@grapecity/wijmo.grid.sheet';\r\nimport { MultiPeriodSettings } from '../../_models/_multi-period/multi-period-settings';\r\nimport { NumberToUnitConverter } from '../number-to-unit-converter.service';\r\n\r\ndeclare let unitConverter: any;\r\n\r\nexport abstract class AbstractMultiPeriodSpreadsheetEventHandler {\r\n protected constructor(protected spreadsheet: wjcSheet.FlexSheet, private nuc: NumberToUnitConverter) {}\r\n\r\n handle(multiPeriodSettings: MultiPeriodSettings, flexSheetEvent: any): void {\r\n const { col } = flexSheetEvent;\r\n const { row } = flexSheetEvent;\r\n\r\n const multiPeriodParameter = multiPeriodSettings.multiPeriodParameters[col - 1];\r\n if (!multiPeriodSettings.multiPeriodParameters[col - 1] || row - 1 < 0 || row > multiPeriodSettings.numberOfSteps) {\r\n flexSheetEvent.cancel = true;\r\n return;\r\n }\r\n\r\n const rawValue = this.getEventData(flexSheetEvent);\r\n\r\n let convertedValue = unitConverter.parseFloatString(rawValue);\r\n\r\n if (isNaN(convertedValue)) {\r\n flexSheetEvent.cancel = true;\r\n return;\r\n }\r\n\r\n const simVar = multiPeriodParameter.simulationVariable;\r\n convertedValue = this.nuc.convertDefaultToInternalUnit(convertedValue, simVar.quantity);\r\n\r\n const periodIndex = row - 1;\r\n\r\n multiPeriodParameter.multiPeriodValues[periodIndex] = convertedValue;\r\n }\r\n\r\n abstract getEventData(flexSheetEvent: any): string;\r\n}\r\n\r\nexport class MultiPeriodSpreadsheetEditEventHandler extends AbstractMultiPeriodSpreadsheetEventHandler {\r\n // eslint-disable-next-line @typescript-eslint/no-useless-constructor\r\n constructor(spreadsheet: wjcSheet.FlexSheet, nuc: NumberToUnitConverter) {\r\n super(spreadsheet, nuc);\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n getEventData(flexSheetEvent: any): string {\r\n return this.spreadsheet.activeEditor.value;\r\n }\r\n}\r\n\r\nexport class MultiPeriodSpreadsheetPasteEventHandler extends AbstractMultiPeriodSpreadsheetEventHandler {\r\n // eslint-disable-next-line @typescript-eslint/no-useless-constructor\r\n constructor(spreadsheet: wjcSheet.FlexSheet, nuc: NumberToUnitConverter) {\r\n super(spreadsheet, nuc);\r\n }\r\n\r\n getEventData(flexSheetEvent: any): string {\r\n return flexSheetEvent.data;\r\n }\r\n}\r\n","import { Component } from '@angular/core';\r\nimport * as wjcSheet from '@grapecity/wijmo.grid.sheet';\r\nimport { CoreService } from '../../../_services/core.service';\r\nimport { MultiPeriodSettings } from '../../../_models/_multi-period/multi-period-settings';\r\nimport { MultiPeriodParameter } from '../../../_models/_multi-period/multi-period-parameter';\r\nimport { NumberToUnitConverter } from '../../../_services/number-to-unit-converter.service';\r\nimport {\r\n MultiPeriodSpreadsheetEditEventHandler,\r\n MultiPeriodSpreadsheetPasteEventHandler,\r\n} from '../../../_services/multi-period/abstract-multi-period-spreadsheet-event-handler';\r\n\r\n@Component({\r\n selector: 'sob-multi-period-parameter-spreadsheet',\r\n templateUrl: './multi-period-parameter-spreadsheet.component.html',\r\n styleUrls: ['./multi-period-parameter-spreadsheet.component.css'],\r\n})\r\nexport class MultiPeriodParameterSpreadsheetComponent {\r\n private spreadsheet: wjcSheet.FlexSheet;\r\n private editEventHandler: MultiPeriodSpreadsheetEditEventHandler;\r\n private pasteEventHandler: MultiPeriodSpreadsheetPasteEventHandler;\r\n\r\n constructor(private core: CoreService, private numberToUnitConverter: NumberToUnitConverter) {}\r\n\r\n initializeFlexSheet(flex: wjcSheet.FlexSheet) {\r\n this.spreadsheet = flex;\r\n this.spreadsheet.hostElement.style.height = `${93}%`;\r\n this.initializeEditEventHandler();\r\n this.initializePasteEventHandler();\r\n }\r\n\r\n initializeSheet() {\r\n if (this.spreadsheet.sheets.length) {\r\n this.spreadsheet.sheets.removeAt(0);\r\n }\r\n\r\n this.displayPeriodsColumn();\r\n\r\n for (let i = 0; i < this.numberOfMultiPeriodParameters; i++) {\r\n this.parameterToSpreadsheetColumn(this.multiPeriodSettings.multiPeriodParameters[i], i + 1);\r\n }\r\n\r\n // it should not need to use setTimeout...\r\n setTimeout(() => {\r\n this.spreadsheet.autoSizeColumns(1, this.numberOfMultiPeriodParameters);\r\n }, 1);\r\n }\r\n\r\n // region stuff related to displaying\r\n parameterToSpreadsheetColumn(parameter: MultiPeriodParameter, columnNumber: number) {\r\n this.spreadsheet.setCellData(0, columnNumber, `${parameter.getFullName()} (${parameter.getDefaultUnit()})`);\r\n\r\n for (let i = 0; i < parameter.multiPeriodValues.length; i++) {\r\n const simVar = parameter.simulationVariable;\r\n const convertedValue = this.numberToUnitConverter.convertToDefaultUnit(\r\n parameter.multiPeriodValues[i],\r\n simVar.quantity,\r\n true\r\n );\r\n\r\n this.spreadsheet.setCellData(i + 1, columnNumber, convertedValue);\r\n }\r\n }\r\n\r\n displayPeriodsColumn() {\r\n const columnNumber = 0;\r\n\r\n this.spreadsheet.setCellData(0, columnNumber, 'Days');\r\n\r\n for (let i = 0; i < this.multiPeriodSettings.numberOfSteps; i++) {\r\n this.spreadsheet.setCellData(i + 1, columnNumber, i + 1);\r\n }\r\n }\r\n // endregion\r\n\r\n // region event handlers\r\n private initializeEditEventHandler() {\r\n this.editEventHandler = new MultiPeriodSpreadsheetEditEventHandler(this.spreadsheet, this.numberToUnitConverter);\r\n this.spreadsheet.cellEditEnding.addHandler((spreadsheet: wjcSheet.FlexSheet, flexSheetEvent: any) => {\r\n this.editEventHandler.handle(this.multiPeriodSettings, flexSheetEvent);\r\n });\r\n }\r\n\r\n private initializePasteEventHandler() {\r\n this.pasteEventHandler = new MultiPeriodSpreadsheetPasteEventHandler(this.spreadsheet, this.numberToUnitConverter);\r\n this.spreadsheet.pastingCell.addHandler((spreadsheet: wjcSheet.FlexSheet, flexSheetEvent: any) => {\r\n this.pasteEventHandler.handle(this.multiPeriodSettings, flexSheetEvent);\r\n });\r\n }\r\n // endregion\r\n\r\n get multiPeriodSettings(): MultiPeriodSettings {\r\n return this.core.currentCase.multiPeriodSettings;\r\n }\r\n\r\n get numberOfRows() {\r\n const minRows = 35;\r\n return this.multiPeriodSettings.numberOfSteps >= minRows ? this.multiPeriodSettings.numberOfSteps + 1 : minRows;\r\n }\r\n\r\n get numberOfColumns() {\r\n const minCols = 20;\r\n return this.numberOfMultiPeriodParameters >= minCols ? this.numberOfMultiPeriodParameters + 1 : minCols;\r\n }\r\n\r\n get numberOfMultiPeriodParameters() {\r\n return this.multiPeriodSettings.multiPeriodParameters.length;\r\n }\r\n}\r\n","
\r\n

Time-Dependent Values

\r\n
\r\n \r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { BaseObject } from '../_models/base-object';\r\n\r\n@Pipe({\r\n name: 'alphanumericSort',\r\n})\r\nexport class AlphanumericSortPipe implements PipeTransform {\r\n transform(kpiProvider: Array): Array {\r\n const numericArray: string[] = [];\r\n const numericWhitHyphenArray: string[] = [];\r\n\r\n for (const kpiObject of kpiProvider) {\r\n const nameArray = kpiObject.name.split(' ');\r\n for (let i = 0; i < nameArray.length; i++) {\r\n if (nameArray[i].match(/^[0-9]+$/)) {\r\n numericArray.push(nameArray[i]);\r\n }\r\n if (nameArray[i].match(/^[0-9]+-[0-9]+$/)) {\r\n numericWhitHyphenArray.push(nameArray[i]);\r\n }\r\n }\r\n }\r\n const maxNumericLength = this.findMaxStringLength(numericArray);\r\n const maxNumericHyphenLength = this.findMaxStringLength(numericWhitHyphenArray);\r\n\r\n kpiProvider = kpiProvider.sort((objectA, objectB) => {\r\n /* For numeric ends or beginnings */\r\n const arrayObjectA = objectA.name.split(' ');\r\n const arrayObjectB = objectB.name.split(' ');\r\n\r\n for (let i = 0; i < arrayObjectA.length; i++) {\r\n arrayObjectA[i] = this.addZerosIfNumeric(arrayObjectA[i], maxNumericLength, maxNumericHyphenLength);\r\n }\r\n\r\n for (let i = 0; i < arrayObjectB.length; i++) {\r\n arrayObjectB[i] = this.addZerosIfNumeric(arrayObjectB[i], maxNumericLength, maxNumericHyphenLength);\r\n }\r\n\r\n return arrayObjectA > arrayObjectB ? 1 : -1;\r\n });\r\n return kpiProvider;\r\n }\r\n\r\n private findMaxStringLength(stringArray: string[]): number {\r\n if (stringArray.length !== 0) {\r\n let stringToCompare = stringArray[0];\r\n for (let i = 1; i < stringArray.length; i++) {\r\n if (stringArray[i].length > stringToCompare.length) {\r\n stringToCompare = stringArray[i];\r\n }\r\n }\r\n if (stringToCompare.match(/^[0-9]+$/)) {\r\n return stringToCompare.length + 1;\r\n }\r\n return stringToCompare.length + 3;\r\n }\r\n return 0;\r\n }\r\n\r\n private addZerosIfNumeric(s: string, maxNumericLength: number, maxNumericHyphenLength: number): string {\r\n const numericRegEx = /^[0-9]+$/;\r\n const numericWhitHyphenRegEx = /^[0-9]+-[0-9]+$/;\r\n\r\n let result = s;\r\n if (s.match(numericRegEx)) {\r\n result = this.addZeros(s, maxNumericLength);\r\n }\r\n\r\n if (s.match(numericWhitHyphenRegEx)) {\r\n result = this.addZeros(s, maxNumericHyphenLength);\r\n }\r\n\r\n return result;\r\n }\r\n\r\n private addZeros(numericString: string, maxStringLength: number): string {\r\n const numberOfZeros = maxStringLength - numericString.length;\r\n\r\n for (let iterator = 0; iterator < numberOfZeros; iterator++) {\r\n numericString = `0${numericString}`;\r\n }\r\n\r\n return numericString;\r\n }\r\n}\r\n","
\r\n
\r\n Select Flowsheet: \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n Category\r\n \r\n
\r\n
\r\n
\r\n
\r\n KPI Provider\r\n \r\n
\r\n
\r\n
\r\n
\r\n Available KPIs\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n Selected KPIs\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Variable NameUnitCurrent Value
{{ kpi.getFullName() }}{{ kpi.unit }}{{ kpi.convertToCaptureUnit() }}
\r\n
\r\n\r\n
\r\n\r\n \r\n \r\n Copy to clipboard\r\n \r\n\r\n \r\n
\r\n
\r\n\r\n\r\n","import { Component, Input, OnInit, ViewChild } from '@angular/core';\r\nimport { KpiManager } from '../../../_models/_case-study/kpi-manager';\r\nimport { SimulationVariable } from '../../../_models/simulation-variable';\r\nimport { BaseObject } from '../../../_models/base-object';\r\nimport { KpiProvider } from '../../../_models/_case-study/kpi-provider';\r\nimport { UnitOperation } from '../../../_models/unit-operation';\r\nimport { FlowsheetTreeService } from '../../../_services/sub-flowsheet/flowsheet-tree/flowsheet-tree.service';\r\nimport { unitOperationsConfig } from '../../../_config/unit-operations.config';\r\nimport { CoreService } from '../../../_services/core.service';\r\nimport { isEmptyValue } from '../../../_utils/utils';\r\nimport { BaseStream } from '../../../_models/_streams/base-stream';\r\nimport { WaterPipeSegment } from '../../../_models/_unit-operations/utilties/water-pipe-segment';\r\nimport { FlowsheetTreeSelectorComponent } from '../../flowsheet-tree-selector/flowsheet-tree-selector.component';\r\n\r\n@Component({\r\n selector: 'sob-kpi-manager',\r\n templateUrl: './kpi-manager.component.html',\r\n styleUrls: ['./kpi-manager.component.css'],\r\n})\r\nexport class KpiManagerComponent implements OnInit {\r\n @Input()\r\n kpiManager: KpiManager;\r\n\r\n kpiProvidersForCategory: BaseObject[] = [];\r\n availableKpis: SimulationVariable[] = [];\r\n\r\n // references the selected element value in the available kpis list\r\n availableKpiId: string;\r\n currentlyFlowsheetOwnerId: string;\r\n\r\n @ViewChild(FlowsheetTreeSelectorComponent) flowsheetSelector: FlowsheetTreeSelectorComponent;\r\n\r\n constructor(private flowsheetTree: FlowsheetTreeService, private coreService: CoreService) {}\r\n\r\n ngOnInit(): void {\r\n $('#pillContainer').on('shown.bs.tab', () => {\r\n if ($('#multi-period-settings-container').hasClass('active')) {\r\n this.cleanInputs();\r\n }\r\n });\r\n }\r\n\r\n cleanInputs(): void {\r\n $('.kpiManagerControls').find('select').val('');\r\n this.kpiManager.categories = [];\r\n this.currentlyFlowsheetOwnerId = '';\r\n this.availableKpiId = '';\r\n this.kpiProvidersForCategory = [];\r\n this.availableKpis = [];\r\n $('.selectedKpisWrapper').find('input[type=checkbox]:checked').prop('checked', false);\r\n }\r\n\r\n categoryChanged(event: any): void {\r\n this.kpiProvidersForCategory = this.kpiManager\r\n .getKpiProvidersByCategoryName(event.target.value)\r\n .filter(kpiProvider => {\r\n if (kpiProvider instanceof UnitOperation) {\r\n return kpiProvider.flowsheetId === this.currentlyFlowsheetOwnerId;\r\n }\r\n if (kpiProvider instanceof BaseStream) {\r\n const inletUnitOperation = this.coreService.currentCase.getUnitOperation(kpiProvider.inletUnitOperationId);\r\n return inletUnitOperation.flowsheetId === this.currentlyFlowsheetOwnerId;\r\n }\r\n if (kpiProvider instanceof WaterPipeSegment) {\r\n return kpiProvider.getWaterPipeSegmentOwner(kpiProvider.id).flowsheetId === this.currentlyFlowsheetOwnerId;\r\n }\r\n return kpiProvider;\r\n });\r\n this.availableKpis = [];\r\n this.availableKpiId = '';\r\n }\r\n\r\n kpiProviderChanged(event: any) {\r\n const selectedBaseObject = (\r\n this.kpiProvidersForCategory.find(kpiProvider => kpiProvider.id === event.target.value)\r\n );\r\n\r\n this.availableKpis = (selectedBaseObject).getAvailableKpis();\r\n this.availableKpiId = '';\r\n }\r\n\r\n addKpi(): void {\r\n if (this.availableKpiId) {\r\n this.kpiManager.addKpiById(this.availableKpiId);\r\n }\r\n }\r\n\r\n removeKpis(): void {\r\n $('.selectedKpisWrapper')\r\n .find('input[type=checkbox]:checked')\r\n .each((index, elem) => {\r\n this.kpiManager.removeKpiById($(elem).data('kpi'));\r\n });\r\n }\r\n\r\n copyToClipboard() {\r\n let text = 'Variable name\\tUnit\\tCurrent value\\n';\r\n for (const kpi of this.kpiManager.selectedKpis) {\r\n text += `${kpi.getFullName()}\\t${kpi.unit}\\t${kpi.convertToCaptureUnit(true)}\\n`;\r\n }\r\n\r\n (document.getElementById('kpiClipboardText') as HTMLTextAreaElement).value = text;\r\n (document.getElementById('kpiClipboardText') as HTMLTextAreaElement).select();\r\n document.execCommand('copy');\r\n }\r\n\r\n getFlowsheetOwnerId(fOwnerId: string) {\r\n this.cleanInputs();\r\n this.currentlyFlowsheetOwnerId = fOwnerId;\r\n if (!isEmptyValue(fOwnerId)) {\r\n const flowsheetOwnerCategory = this.coreService.currentCase.getUnitOperation(fOwnerId).category;\r\n switch (flowsheetOwnerCategory) {\r\n case unitOperationsConfig.upgrader.key:\r\n this.coreService.currentCase.initUpgraderFlowsheetCategories();\r\n break;\r\n case unitOperationsConfig.waterUtilityUnitOperation.key:\r\n this.coreService.currentCase.initSteamFlowsheetCategories();\r\n break;\r\n case unitOperationsConfig.fuelGasUtilityUnitOperation.key:\r\n this.coreService.currentCase.initFuelGasFlowsheetCategories();\r\n break;\r\n default:\r\n break;\r\n }\r\n } else if (fOwnerId === '') {\r\n this.coreService.currentCase.initMainFlowsheetCategories();\r\n }\r\n }\r\n}\r\n","
\r\n

Time-Dependent Setup

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Multiperiod Category\r\n \r\n
\r\n
\r\n
\r\n
\r\n Multiperiod Parameter Provider\r\n \r\n
\r\n
\r\n
\r\n
\r\n Available Multiperiod Parameters\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Selected Parameters\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Variable NameUnitCurrent Value
{{ parameter.simulationVariable.getFullName() }}{{ parameter.simulationVariable.unit }}{{ parameter.simulationVariable.convertToCaptureUnit() }}
\r\n
\r\n\r\n
\r\n\r\n \r\n \r\n \r\n
\r\n
\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { MultiPeriodSettings } from '../../../_models/_multi-period/multi-period-settings';\r\nimport { BaseObject } from '../../../_models/base-object';\r\nimport { SimulationVariable } from '../../../_models';\r\nimport { MultiPeriodParameterProvider } from '../../../_models/_multi-period/multi-period-parameter-provider';\r\n\r\n@Component({\r\n selector: 'sob-multi-period-parameter-selector',\r\n templateUrl: './multi-period-parameter-selector.component.html',\r\n styleUrls: ['./multi-period-parameter-selector.component.css'],\r\n})\r\nexport class MultiPeriodParameterSelectorComponent implements OnInit {\r\n @Input()\r\n multiPeriodSettings: MultiPeriodSettings;\r\n\r\n multiPeriodProvidersForCategory: Array = [];\r\n availableMultiPeriodParameters: Array = [];\r\n availableMultiPeriodParameterId: string;\r\n\r\n ngOnInit() {\r\n $('.nav-pills.flowsheet-view-selector').on('hidden.bs.tab', ' a[href=\"#multi-period-settings-container\"]', () => {\r\n $('#parameterSelector').find('select').val('');\r\n this.availableMultiPeriodParameterId = '';\r\n this.multiPeriodProvidersForCategory = [];\r\n this.availableMultiPeriodParameters = [];\r\n $('#selectedMultiPeriodParametersWrapper').find('input[type=checkbox]:checked').prop('checked', false);\r\n });\r\n }\r\n\r\n categoryChanged(event: any): void {\r\n this.multiPeriodProvidersForCategory = this.multiPeriodSettings.getMultiPeriodProvidersByCategoryName(\r\n event.target.value\r\n );\r\n this.availableMultiPeriodParameters = [];\r\n this.availableMultiPeriodParameterId = '';\r\n }\r\n\r\n multiPeriodProviderChanged(event: any) {\r\n const selectedBaseObject = (\r\n this.multiPeriodProvidersForCategory.find(multiPeriodProvider => multiPeriodProvider.id === event.target.value)\r\n );\r\n\r\n this.availableMultiPeriodParameters = ((\r\n selectedBaseObject\r\n )).getAvailableMultiPeriodParameters();\r\n this.availableMultiPeriodParameterId = '';\r\n }\r\n\r\n addMultiPeriodParameter(): void {\r\n if (this.availableMultiPeriodParameterId) {\r\n this.multiPeriodSettings.addMultiPeriodParameter(this.availableMultiPeriodParameterId);\r\n }\r\n }\r\n\r\n removeMultiPeriodParameter(): void {\r\n $('#selectedMultiPeriodParametersWrapper')\r\n .find('input[type=checkbox]:checked')\r\n .each((index, elem) => {\r\n this.multiPeriodSettings.removeMultiPeriodParameter($(elem).data('parameter'));\r\n });\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n \r\n \r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n

Define KPIs

\r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';\r\nimport { CoreService } from '../../../_services/core.service';\r\nimport { MultiPeriodInventorySettingsComponent } from '../multi-period-inventory-settings/multi-period-inventory-settings.component';\r\nimport { MultiPeriodSettings } from '../../../_models/_multi-period/multi-period-settings';\r\nimport { MultiPeriodParameterSpreadsheetComponent } from '../multi-period-parameter-spreadsheet/multi-period-parameter-spreadsheet.component';\r\nimport { MultiPeriodService } from '../../../_services/multi-period/multi-period.service';\r\nimport { KpiManager } from '../../../_models/_case-study/kpi-manager';\r\nimport { KpiManagerComponent } from '../../case-study/kpi-manager/kpi-manager.component';\r\n\r\n@Component({\r\n selector: 'sob-multi-period-settings',\r\n templateUrl: './multi-period-settings.component.html',\r\n styleUrls: ['./multi-period-settings.component.css'],\r\n})\r\nexport class MultiPeriodSettingsComponent implements OnInit {\r\n @ViewChild(MultiPeriodInventorySettingsComponent, { static: true })\r\n multiPeriodInventorySettingsComponent: MultiPeriodInventorySettingsComponent;\r\n\r\n @ViewChild(MultiPeriodParameterSpreadsheetComponent, { static: true })\r\n multiPeriodParameterSpreadsheetComponent: MultiPeriodParameterSpreadsheetComponent;\r\n\r\n @ViewChild(KpiManagerComponent, { static: false }) kpiManagerComponent: KpiManagerComponent;\r\n\r\n formGroup: UntypedFormGroup;\r\n\r\n constructor(\r\n private core: CoreService,\r\n private fb: UntypedFormBuilder,\r\n private multiPeriodService: MultiPeriodService\r\n ) {\r\n this.core.currentCaseReplacedRequest.subscribe(() => {\r\n this.init();\r\n });\r\n\r\n this.multiPeriodService.multiPeriodModeEnabledRequest.subscribe(opts => {\r\n if (opts.multiPeriodEnabled) {\r\n this.showFirstStep();\r\n }\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.formGroup = this.fb.group({});\r\n }\r\n\r\n init() {\r\n this.multiPeriodInventorySettingsComponent.init();\r\n }\r\n\r\n onFirstStepNextClicked() {\r\n this.multiPeriodInventorySettingsComponent.isSubmitted = true;\r\n if (this.formGroup.valid) {\r\n this.multiPeriodInventorySettingsComponent.map();\r\n this.showNextStep();\r\n } else {\r\n this.cursorFocusInFieldsWithValidationError();\r\n }\r\n }\r\n\r\n cursorFocusInFieldsWithValidationError() {\r\n for (const control in this.formGroup.controls) {\r\n if (this.formGroup.controls[control].invalid) {\r\n if (control === 'numberOfSteps') {\r\n $('input[formControlName=numberOfSteps]').focus();\r\n break;\r\n } else {\r\n const $formLabel = $(`a[aria-controls=inventorySettings${control}]`);\r\n $formLabel.attr('class', '');\r\n $formLabel.attr('aria-expanded', 'true');\r\n\r\n const $formDiv = $(`#inventorySettings${control}`);\r\n $formDiv.attr('class', 'ng-star-inserted collapse in');\r\n $formDiv.attr('aria-expanded', 'true');\r\n $formDiv.attr('style', '');\r\n\r\n const $labelIcon = $(`a[aria-controls=inventorySettings${control}] > i`);\r\n $labelIcon.attr('class', 'fa fa-minus');\r\n\r\n const $inputs = $('sob-reactive-variable-value-input.ng-invalid > input');\r\n $inputs[0].focus();\r\n }\r\n }\r\n }\r\n }\r\n\r\n onSecondStepNextClicked() {\r\n for (const multiPeriodParameter of this.multiPeriodSettings.multiPeriodParameters) {\r\n let difference = this.multiPeriodSettings.numberOfSteps - multiPeriodParameter.multiPeriodValues.length;\r\n\r\n if (difference > 0) {\r\n for (let i = 0; i < difference; i++) {\r\n multiPeriodParameter.multiPeriodValues.push(undefined);\r\n }\r\n } else {\r\n difference = Math.abs(difference);\r\n for (let i = 0; i < difference; i++) {\r\n multiPeriodParameter.multiPeriodValues.splice(-1, difference);\r\n }\r\n }\r\n }\r\n\r\n this.multiPeriodParameterSpreadsheetComponent.initializeSheet();\r\n this.showNextStep();\r\n }\r\n\r\n onThirdStepNextClicked() {\r\n this.kpiManagerComponent.cleanInputs();\r\n this.kpiManagerComponent.flowsheetSelector.initializeTree();\r\n this.showNextStep();\r\n // TODO remove the categories from the KPI manager - add the new category\r\n this.kpiManager.removeDefaultKpis(this.core.currentCase.calculator);\r\n }\r\n\r\n onFourthStepPreviousClicked() {\r\n this.showPreviousStep();\r\n this.kpiManagerComponent.cleanInputs();\r\n }\r\n\r\n showNextStep(): void {\r\n const visibleStep = $('.multi-period-step:visible');\r\n const hiddenStep = visibleStep.next('.multi-period-step');\r\n\r\n visibleStep.hide();\r\n hiddenStep.fadeIn();\r\n }\r\n\r\n showPreviousStep(): void {\r\n const visibleStep = $('.multi-period-step:visible');\r\n const hiddenStep = visibleStep.prev('.multi-period-step');\r\n\r\n visibleStep.hide();\r\n hiddenStep.fadeIn();\r\n }\r\n\r\n showFirstStep() {\r\n const $step = $('.multi-period-step');\r\n $step.hide();\r\n $step.first().show();\r\n }\r\n\r\n get multiPeriodSettings(): MultiPeriodSettings {\r\n return this.core.currentCase.multiPeriodSettings;\r\n }\r\n\r\n get kpiManager(): KpiManager {\r\n return this.core.currentCase.caseStudyManager.kpiManager;\r\n }\r\n\r\n onMultiPeriodSettingsDone() {\r\n this.kpiManagerComponent.cleanInputs();\r\n this.multiPeriodService.notifyMultiPeriodSettingsCompleted();\r\n this.showFirstStep();\r\n }\r\n\r\n solveCase() {\r\n this.core.solveCase();\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n \r\n

KPI Manager

\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n","import { AfterViewInit, Component, Input, ViewChild } from '@angular/core';\r\nimport { KpiManager } from '../../../_models/_case-study/kpi-manager';\r\nimport { KpiManagerComponent } from '../kpi-manager/kpi-manager.component';\r\n\r\n@Component({\r\n selector: 'sob-kpi-manager-modal',\r\n templateUrl: './kpi-manager-modal.component.html',\r\n styleUrls: ['./kpi-manager-modal.component.css'],\r\n})\r\nexport class KpiManagerModalComponent implements AfterViewInit {\r\n @Input() kpiManager: KpiManager;\r\n @ViewChild(KpiManagerComponent) kpiManagerComponent: KpiManagerComponent;\r\n\r\n ngAfterViewInit(): void {\r\n const $modal = $('#kpiManagerModal');\r\n\r\n $modal.on('hidden.bs.modal', () => {\r\n this.kpiManagerComponent.cleanInputs();\r\n });\r\n }\r\n}\r\n","\r\n
\r\n
\r\n
\r\n \r\n

Multiperiod Results

\r\n
\r\n\r\n
\r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n KPI\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Excel Report \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n selectedKpiOwner.maxVolume.value\">\r\n Maximum Capacity exceeded in tank {{ selectedKpiOwner.name }}\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Day{{ header }}
\r\n {{ cell }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n","import { Component } from '@angular/core';\r\nimport * as Highcharts from 'highcharts';\r\nimport { CoreService } from '../../../_services/core.service';\r\nimport { SimulationVariable } from '../../../_models';\r\nimport { KeyValueObject } from '../../../_models/key-value-object';\r\nimport { NumberToUnitConverter } from '../../../_services/number-to-unit-converter.service';\r\nimport { FlowsheetService } from '../../../_services/flowsheet.service';\r\nimport { hasNumericValue, isTypeNumber } from '../../../_utils/utils';\r\nimport { ProductTank } from '../../../_models/product-tank';\r\nimport { MultiPeriodSettings } from '../../../_models/_multi-period/multi-period-settings';\r\n\r\ndeclare let unitConverter: any;\r\n\r\n@Component({\r\n selector: 'sob-multi-period-results',\r\n templateUrl: './multi-period-results.component.html',\r\n styleUrls: ['./multi-period-results.component.css'],\r\n})\r\nexport class MultiPeriodResultsComponent {\r\n selectedKpis: SimulationVariable[] = [];\r\n selectedKpiId: string;\r\n kpiResults: number[] = [];\r\n multiPeriodReportData: string[][] = [];\r\n headers: string[] = [];\r\n selectedKpiOwner: ProductTank;\r\n\r\n constructor(\r\n private coreService: CoreService,\r\n private nuc: NumberToUnitConverter,\r\n private flowsheetService: FlowsheetService\r\n ) {\r\n // TODO Analyze if this should only be fired when case is solved\r\n // TODO consider subscribing to currentCaseReplacedRequest\r\n this.coreService.caseChangedRequest.subscribe((data: any) => {\r\n if (data && data.solveSuccess) {\r\n if (this.coreService.currentCase.multiPeriodEnabled) {\r\n this.show();\r\n this.generateMultiPeriodReportArray();\r\n }\r\n }\r\n });\r\n\r\n this.coreService.currentCaseReplacedRequest.subscribe(() => {\r\n if (\r\n this.coreService.currentCase.multiPeriodEnabled &&\r\n this.coreService.currentCase.multiPeriodSettings.multiPeriodResults\r\n ) {\r\n this.selectedKpis = this.noNullSelectedKpis();\r\n this.selectedKpiId = this.selectedKpis.length ? this.selectedKpis[0].id : '';\r\n this.kpiChanged();\r\n this.generateMultiPeriodReportArray();\r\n }\r\n });\r\n }\r\n\r\n noNullSelectedKpis() {\r\n return this.coreService.currentCase.caseStudyManager.kpiManager.selectedKpis.filter(kpi => {\r\n return this.findKpiResultsByKpiId(kpi.id);\r\n });\r\n }\r\n\r\n private show() {\r\n $('#multiPeriodResultsModal').modal('show');\r\n this.selectedKpis = this.noNullSelectedKpis();\r\n this.selectedKpiId = this.selectedKpis.length ? this.selectedKpis[0].id : '';\r\n this.kpiChanged();\r\n }\r\n\r\n kpiChanged() {\r\n this.kpiResults = this.getKpiResults();\r\n const selectedKpi = this.selectedKpis.find(kpi => kpi.id === this.selectedKpiId);\r\n const kpiOwnerBaseObject = selectedKpi.ownerBaseObject;\r\n\r\n if (kpiOwnerBaseObject instanceof ProductTank) {\r\n this.selectedKpiOwner = kpiOwnerBaseObject;\r\n this.buildChart(selectedKpi, this.kpiResults, this.selectedKpiOwner.maxVolume.value);\r\n } else {\r\n this.buildChart(selectedKpi, this.kpiResults);\r\n }\r\n\r\n this.buildTable(selectedKpi, this.kpiResults);\r\n }\r\n\r\n getKpiResults(): number[] {\r\n const selectedKpi = this.selectedKpis.find(kpi => kpi.id === this.selectedKpiId);\r\n return Object.entries(this.multiPeriodResults).map(entry => {\r\n return isNaN(entry[1][this.selectedKpiId])\r\n ? undefined\r\n : this.nuc.convertToDefaultUnit(entry[1][this.selectedKpiId], selectedKpi.quantity);\r\n });\r\n }\r\n\r\n findKpiResultsByKpiId(kpiId: string) {\r\n return Object.entries(this.multiPeriodResults).find(\r\n entry => isTypeNumber(entry[1][kpiId]) && entry[1][kpiId] !== 0\r\n );\r\n }\r\n\r\n buildChart(kpi: SimulationVariable, chartData: number[], tankCapacity?: number) {\r\n Highcharts.chart({\r\n chart: {\r\n renderTo: 'multiPeriodResultsChart',\r\n type: 'column',\r\n },\r\n title: {\r\n text: '',\r\n },\r\n credits: {\r\n enabled: false,\r\n },\r\n legend: {\r\n enabled: false,\r\n },\r\n xAxis: {\r\n title: {\r\n text: 'Days',\r\n },\r\n categories: this.getPeriods(chartData),\r\n },\r\n yAxis: {\r\n title: {\r\n text: `${kpi.getFullName()} (${kpi.getDefaultUnit()})`,\r\n },\r\n plotLines: [\r\n {\r\n color: this.setPlotLineColor(chartData, tankCapacity),\r\n width: 5,\r\n value: tankCapacity,\r\n dashStyle: 'solid',\r\n zIndex: 10,\r\n label: {\r\n text: 'Capacity',\r\n align: 'right',\r\n style: { color: this.setPlotLineColor(chartData, tankCapacity) },\r\n x: -10,\r\n y: -7,\r\n },\r\n },\r\n ],\r\n max: this.calculateYAxisMaxValue(chartData, tankCapacity),\r\n },\r\n tooltip: {\r\n headerFormat: '',\r\n pointFormatter() {\r\n return (\r\n `` +\r\n `` +\r\n `'\r\n );\r\n },\r\n footerFormat: '
Day ${this.index + 1}
${kpi.getFullName()}: ${Highcharts.numberFormat(this.y, 2, '.', ',')} ${kpi.getDefaultUnit()}` +\r\n '
',\r\n shared: true,\r\n useHTML: true,\r\n followPointer: true,\r\n },\r\n plotOptions: {\r\n column: {\r\n stacking: 'normal',\r\n dataLabels: {\r\n enabled: false,\r\n color: 'white',\r\n },\r\n },\r\n },\r\n series: [\r\n {\r\n data: chartData,\r\n color: '#1034a6',\r\n },\r\n ],\r\n });\r\n }\r\n\r\n buildTable(kpi: SimulationVariable, data: number[]) {\r\n let tableHtml = '';\r\n\r\n for (let i = 0; i < data.length; i++) {\r\n let dataRounded;\r\n !data[i] ? (dataRounded = '') : (dataRounded = data[i].toFixed(2));\r\n tableHtml +=\r\n ` ${i + 1}` +\r\n `${this.format(dataRounded)} ${kpi.getDefaultUnit()}`;\r\n }\r\n\r\n const $table = $('#multiPeriodResultsTable');\r\n $table\r\n .find('thead')\r\n .html(\r\n `${'Period'}` +\r\n `${kpi.getFullName()}`\r\n );\r\n\r\n // TODO this is a no-no\r\n $table.find('tbody').html(tableHtml);\r\n }\r\n\r\n generateMultiPeriodReportArray() {\r\n this.headers = [];\r\n const multiPerdiod = this.coreService.currentCase.multiPeriodSettings;\r\n\r\n for (let i = 0; i < multiPerdiod.numberOfSteps; i++) {\r\n this.multiPeriodReportData[i] = [(i + 1).toString()];\r\n }\r\n this.generateMultiperiodParametersDataArray(multiPerdiod);\r\n this.generateMultiperiodResultsDataArray(multiPerdiod);\r\n }\r\n\r\n generateMultiperiodParametersDataArray(m: MultiPeriodSettings) {\r\n for (let i = 0; i < m.multiPeriodParameters.length; i++) {\r\n const parameter = m.multiPeriodParameters[i];\r\n const simVar = parameter.simulationVariable;\r\n this.headers.push(`${parameter.getFullName()} (${parameter.getDefaultUnit()})`);\r\n\r\n for (let j = 0; j < parameter.multiPeriodValues.length; j++) {\r\n const parameterValue = parameter.multiPeriodValues[j];\r\n const conversion = unitConverter(simVar.quantity).convert(\r\n parameterValue,\r\n simVar.getInternalUnit(),\r\n simVar.getDefaultUnit()\r\n );\r\n const roundedValue = conversion.round();\r\n this.multiPeriodReportData[j][i + 1] = roundedValue.getValue().toLocaleString();\r\n }\r\n }\r\n }\r\n\r\n generateMultiperiodResultsDataArray(m: MultiPeriodSettings) {\r\n const selectedKpis = this.noNullSelectedKpis();\r\n const index = this.multiPeriodReportData[0].length;\r\n\r\n for (let i = 0; i < selectedKpis.length; i++) {\r\n const kpi = selectedKpis[i];\r\n this.headers.push(`${kpi.getFullName()} (${kpi.getDefaultUnit()})`);\r\n const kpiResults = m.multiPeriodResults.map(arrayValues => {\r\n return arrayValues[kpi.id];\r\n });\r\n\r\n for (let j = 0; j < kpiResults.length; j++) {\r\n const kpiValue = kpiResults[j];\r\n const conversion = unitConverter(kpi.quantity).convert(kpiValue, kpi.getInternalUnit(), kpi.getDefaultUnit());\r\n const roundedValue = conversion.round();\r\n this.multiPeriodReportData[j][index + i] = roundedValue.getValue().toLocaleString();\r\n }\r\n }\r\n }\r\n\r\n format = number => {\r\n const exp = /(\\d)(?=(\\d{3})+(?!\\d))/g;\r\n const rep = '$1,';\r\n return number.toString().replace(exp, rep);\r\n };\r\n\r\n getPeriods(charData) {\r\n return charData.map((quantity, index) => {\r\n return index + 1;\r\n });\r\n }\r\n\r\n get multiPeriodResults(): KeyValueObject[] {\r\n return this.coreService.currentCase.multiPeriodSettings.multiPeriodResults;\r\n }\r\n\r\n excelReport() {\r\n this.flowsheetService.closePropertyWindow();\r\n $('#multiperiodExcelReportModal').modal('show');\r\n }\r\n\r\n calculateYAxisMaxValue(kpiResults: number[], tankCapacity: number) {\r\n const maxKpiResult = this.findMaxKpiResult(kpiResults);\r\n return maxKpiResult < tankCapacity ? tankCapacity * 0.1 + tankCapacity : maxKpiResult * 0.1 + maxKpiResult;\r\n }\r\n\r\n findMaxKpiResult(kpiResults: number[]) {\r\n let maxKpiResult = 0;\r\n kpiResults.forEach((kpi, index) => {\r\n if (hasNumericValue(kpiResults[index + 1])) {\r\n maxKpiResult = Math.max(kpi, kpiResults[index + 1]);\r\n }\r\n });\r\n\r\n return maxKpiResult;\r\n }\r\n\r\n setPlotLineColor(kpiResults: number[], tankCapacity: number) {\r\n if (this.findMaxKpiResult(kpiResults) > tankCapacity) {\r\n return '#ad0012';\r\n }\r\n return 'green';\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n \r\n

Stream Information

\r\n
\r\n\r\n
\r\n
    \r\n
  • \r\n \r\n Model\r\n \r\n
  • \r\n\r\n
  • \r\n \r\n Composition\r\n \r\n
  • \r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Please enter a name for the stream\r\n Entered name is already in use\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n {{ stream.inletUnitOperation.name }}\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n {{ stream.outletUnitOperation.name }}\r\n \r\n
\r\n\r\n
\r\n\r\n \r\n
\r\n \r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { ChangeDetectorRef, Component, OnInit } from '@angular/core';\r\nimport { AbstractControl, UntypedFormBuilder, UntypedFormControl, UntypedFormGroup, Validators } from '@angular/forms';\r\nimport { FuelGasMaterialStream } from '../../../_models/_streams/fuel-gas-material-stream';\r\nimport { CoreService } from '../../../_services/core.service';\r\nimport { FlowsheetService } from '../../../_services/flowsheet.service';\r\nimport { SimVarFormBuilder } from '../../../_form-utils/sim-var-form-builder';\r\n\r\n@Component({\r\n selector: 'sob-fuel-gas-material-stream',\r\n templateUrl: './fuel-gas-material-stream.component.html',\r\n styleUrls: ['./fuel-gas-material-stream.component.css'],\r\n})\r\nexport class FuelGasMaterialStreamComponent implements OnInit {\r\n stream: FuelGasMaterialStream;\r\n streamGroup: UntypedFormGroup;\r\n\r\n constructor(\r\n private coreService: CoreService,\r\n private flowsheetService: FlowsheetService,\r\n private ref: ChangeDetectorRef,\r\n private fb: UntypedFormBuilder,\r\n private svfb: SimVarFormBuilder\r\n ) {\r\n this.flowsheetService.openFuelGasStreamPropertyWindowRequest.subscribe(streamId => {\r\n this.openStream(streamId);\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.streamGroup = this.fb.group({ name: this.fb.control('') });\r\n\r\n $('#fuelGasStreamModal').on('hide.bs.modal', e => {\r\n if (this.streamGroup.invalid) {\r\n e.preventDefault();\r\n e.stopImmediatePropagation();\r\n this.nameControl.markAsDirty();\r\n return false;\r\n }\r\n\r\n this.save();\r\n this.stream = undefined;\r\n return true;\r\n });\r\n }\r\n\r\n openStream(streamId) {\r\n this.ref.detectChanges();\r\n this.stream = this.coreService.currentCase.filterAllMaterialStreams(stream => {\r\n return stream.id === streamId;\r\n })[0] as FuelGasMaterialStream;\r\n\r\n this.addControls();\r\n\r\n $('#fuelGasStreamModal').modal('show');\r\n }\r\n\r\n addControls() {\r\n this.streamGroup = this.fb.group({\r\n name: this.fb.control(this.stream.name || '', [Validators.required, this.uniqueNameValidator()]),\r\n });\r\n\r\n this.streamGroup.addControl('flowrate', this.svfb.control(this.stream.flowrate, true));\r\n this.streamGroup.addControl('heatFlow', this.svfb.control(this.stream.heatFlow, true));\r\n this.streamGroup.addControl('lhv', this.svfb.control(this.stream.lhv, true));\r\n\r\n this.streamGroup.addControl('compositionUnit', this.fb.control(this.stream.composition[0].unit));\r\n const compositionArray = this.fb.array([]);\r\n\r\n for (const sv of this.stream.composition) {\r\n compositionArray.push(this.fb.control({ value: sv.value, disabled: true }));\r\n }\r\n\r\n this.streamGroup.addControl('composition', compositionArray);\r\n }\r\n\r\n uniqueNameValidator() {\r\n return (control: AbstractControl): { [key: string]: any } => {\r\n if (\r\n this.stream.ownerCase.filterAllMaterialStreams(\r\n s => s instanceof FuelGasMaterialStream && s.name === control.value.trim() && s.id !== this.stream.id\r\n ).length\r\n ) {\r\n return { unique: true };\r\n }\r\n return null;\r\n };\r\n }\r\n\r\n save() {\r\n this.stream.name = this.nameControl.value.trim();\r\n this.coreService.saveStream(this.stream);\r\n }\r\n\r\n get nameControl() {\r\n return this.streamGroup ? (this.streamGroup.get('name') as UntypedFormControl) : null;\r\n }\r\n}\r\n","\r\n\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n Total GHG Emissions\r\n {{ (upgTotalGhgEmissions ? upgTotalGhgEmissions : upgraderData?.total) | thousandSeparator }} {{ this.unit }}\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
Unit OperationTypeGHG Emissions
Total{{ this.upgraderData?.total | thousandSeparator }} {{ this.unit }}
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n","import { Component } from '@angular/core';\r\nimport * as Highcharts from 'highcharts';\r\nimport { Upgrader } from '../../../_models/_unit-operations/upgrader';\r\nimport { ReportDataSet } from '../../../_models/_reports/report-data-set';\r\nimport { MixedGhgReportValue } from '../../../_models/_reports/report-value';\r\nimport { ReportService } from '../../../_services/report.service';\r\nimport { NumberToUnitConverter } from '../../../_services/number-to-unit-converter.service';\r\nimport { Quantity } from '../../../_config/quantity.enum';\r\nimport { unitOperationsConfig } from '../../../_config/unit-operations.config';\r\nimport { isEmptyValue } from '../../../_utils/utils';\r\n\r\ndeclare let unitConverter: any;\r\n\r\n@Component({\r\n selector: 'sob-ghg-upgrader-report',\r\n templateUrl: './ghg-upgrader-report.component.html',\r\n styleUrls: ['./ghg-upgrader-report.component.css'],\r\n})\r\nexport class GhgUpgraderReportComponent {\r\n upgraderData: ReportDataSet;\r\n upgrader: Upgrader;\r\n readonly unit = unitConverter.units.Massflowrate.MMTPA;\r\n upgTotalGhgEmissions: number;\r\n\r\n constructor(private reportService: ReportService, private nuc: NumberToUnitConverter) {}\r\n\r\n buildReport(upgrader: Upgrader): void {\r\n this.upgraderData = this.reportService.buildUpgraderDataSet(upgrader.id);\r\n this.upgraderData.total = this.convertToDisplayUnit(this.upgraderData.total);\r\n\r\n if (this.upgraderData.data.length === 0) {\r\n this.upgTotalGhgEmissions = this.getUpgraderTotalGhgEmissions(upgrader);\r\n } else {\r\n this.buildPieChart();\r\n this.buildWaterfallChart();\r\n this.buildTable();\r\n }\r\n }\r\n\r\n getUpgraderTotalGhgEmissions(upgrader: Upgrader) {\r\n let upgTotalGhgEmissions;\r\n this.reportService.buildGhgEmissionsReport().contributionByUnit.forEach(r => {\r\n if (r.id === unitOperationsConfig.upgrader.key) {\r\n r.data.forEach(uO => {\r\n if (uO.name === upgrader.name) {\r\n upgTotalGhgEmissions = uO.value;\r\n }\r\n });\r\n }\r\n });\r\n\r\n return upgTotalGhgEmissions;\r\n }\r\n\r\n buildWaterfallChart() {\r\n const series = [\r\n {\r\n color: Highcharts.getOptions().colors[8],\r\n name: 'GHG Emissions',\r\n data: this.upgraderData.data\r\n .filter(cv => cv.value !== 0 && !isEmptyValue(cv.value))\r\n .sort((a, b) => (a.value > b.value ? -1 : 1))\r\n .map(cv => {\r\n return {\r\n name: cv.name,\r\n y: this.convertToDisplayUnit(cv.value),\r\n };\r\n }),\r\n },\r\n ];\r\n\r\n const totalBarSeries = {\r\n color: Highcharts.getOptions().colors[0],\r\n name: 'GHG Emissions',\r\n data: [\r\n {\r\n name: 'Total Emissions',\r\n y: this.upgraderData.total,\r\n color: Highcharts.getOptions().colors[0],\r\n },\r\n ],\r\n };\r\n\r\n series.push(totalBarSeries);\r\n\r\n Highcharts.chart('urGhgEmissionsWaterfallChart', this.getWaterfallChartOptions(series));\r\n }\r\n\r\n buildPieChart(): void {\r\n const series = [\r\n {\r\n name: 'GHG Emissions',\r\n data: this.upgraderData.data\r\n .filter(cv => !isEmptyValue(cv.value))\r\n .map(cv => {\r\n return {\r\n name: cv.name,\r\n y: this.convertToDisplayUnit(cv.value),\r\n };\r\n }),\r\n },\r\n ];\r\n\r\n const chartOptions = this.getPieChartOptions('GHG Emissions', series);\r\n\r\n Highcharts.chart('urGhgEmissionsChart', chartOptions);\r\n }\r\n\r\n getPieChartOptions(title: string, series) {\r\n const { unit } = this;\r\n return {\r\n chart: {\r\n plotBackgroundColor: null,\r\n plotBorderWidth: null,\r\n plotShadow: false,\r\n type: 'pie',\r\n },\r\n\r\n credits: {\r\n enabled: false,\r\n },\r\n\r\n title: {\r\n text: title,\r\n },\r\n\r\n plotOptions: {\r\n series: {\r\n dataLabels: {\r\n enabled: true,\r\n format: `{point.name}: {point.y:.2f} ${unit}`,\r\n },\r\n },\r\n },\r\n tooltip: {\r\n formatter() {\r\n return (\r\n `${this.series.name}
` +\r\n `${this.point.name}: ${this.y} ${unit}
`\r\n );\r\n },\r\n },\r\n series,\r\n };\r\n }\r\n\r\n buildTable(): void {\r\n const tableData = [];\r\n for (const cv of this.upgraderData.data) {\r\n const reportValue = cv as MixedGhgReportValue;\r\n tableData.push({\r\n name: reportValue.name,\r\n category: reportValue.unitOperationCategory,\r\n value: this.convertToDisplayUnit(reportValue.value),\r\n });\r\n }\r\n\r\n const $table = $('#urGhgEmissionsTable');\r\n\r\n this.destroyDataTable();\r\n\r\n const opts = {\r\n data: tableData,\r\n paging: false,\r\n searching: false,\r\n info: false,\r\n order: [[2, 'desc']],\r\n columns: [\r\n {\r\n data: 'name',\r\n },\r\n {\r\n data: 'category',\r\n },\r\n {\r\n data: (data, type) => {\r\n if (type === 'display') {\r\n return `${unitConverter.formatNumber(data.value)} ${this.unit}`;\r\n }\r\n return data.value;\r\n },\r\n },\r\n ],\r\n };\r\n\r\n ($table).DataTable(opts);\r\n }\r\n\r\n destroyDataTable(): void {\r\n const $table = $('#urGhgEmissionsTable');\r\n\r\n if (($.fn).dataTable.isDataTable('#urGhgEmissionsTable')) {\r\n ($table).DataTable().destroy();\r\n }\r\n }\r\n\r\n getWaterfallChartOptions(series: any) {\r\n const { unit } = this;\r\n return {\r\n chart: {\r\n type: 'waterfall',\r\n },\r\n title: {\r\n text: 'GHG Emissions',\r\n },\r\n xAxis: {\r\n type: 'category',\r\n },\r\n yAxis: {\r\n title: {\r\n text: unit,\r\n },\r\n },\r\n legend: {\r\n enabled: false,\r\n },\r\n credits: {\r\n enabled: false,\r\n },\r\n plotOptions: {\r\n waterfall: {\r\n dataLabels: {\r\n enabled: true,\r\n inside: false,\r\n color: '#000',\r\n },\r\n pointPadding: 0,\r\n borderWidth: 0,\r\n },\r\n },\r\n tooltip: {\r\n formatter() {\r\n return `${this.series.name}
\r\n ${this.point.name}: ${this.y} ${unit}
`;\r\n },\r\n },\r\n\r\n series,\r\n };\r\n }\r\n\r\n private convertToDisplayUnit(value: number) {\r\n return this.nuc.convert(value, Quantity.MASSFLOWRATE, this.unit, true);\r\n }\r\n}\r\n","
0\">\r\n \r\n\r\n
\r\n
\r\n
\r\n \r\n %\r\n MMCAD$/kbpcd\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Block NameConstraintCurrent ValueUnit\r\n Obj. function change rate\r\n \r\n \r\n \r\n UnitOwner Flowsheet
{{ mve.unitOperationName }}{{ mve.variableName }}{{ mve.value | number }}{{ mve.unit }}{{ mve.objFunctionChangeRate | number }}{{ mve.objFunctionChangeRateUnit }}{{ getOwnerFlowsheetName(mve) }}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, Input, ChangeDetectorRef } from '@angular/core';\r\nimport * as Highcharts from 'highcharts';\r\nimport { MarginalValueEntry } from '../../../_models/marginal-value-entry';\r\nimport { isTypeUndefined } from '../../../_utils/utils';\r\nimport { CoreService } from '../../../_services/core.service';\r\n\r\n@Component({\r\n selector: 'sob-constraint-ranking',\r\n templateUrl: './constraint-ranking.component.html',\r\n styleUrls: ['./constraint-ranking.component.css'],\r\n})\r\nexport class ConstraintRankingComponent {\r\n @Input() currentConstraints: MarginalValueEntry[];\r\n constraintRanking: MarginalValueEntry[] = [];\r\n objFunctionUnit = 'MMCAD$/kbpcd';\r\n\r\n constructor(private coreService: CoreService, private ref: ChangeDetectorRef) {}\r\n\r\n buildConstraintRankingGraphics(constraintRanking: MarginalValueEntry[]) {\r\n this.constraintRanking = constraintRanking;\r\n this.ref.detectChanges();\r\n if (this.constraintRanking.length !== 0) {\r\n if (this.objFunctionUnit === 'MMCAD$/kbpcd') {\r\n this.buildConstraintRankingChart();\r\n } else {\r\n this.buildConstraintRankingByPercentChart();\r\n }\r\n }\r\n }\r\n\r\n switchConstraintChartType() {\r\n this.objFunctionUnit = this.objFunctionUnit === '%' ? 'MMCAD$/kbpcd' : '%';\r\n if (this.objFunctionUnit === 'MMCAD$/kbpcd') {\r\n this.buildConstraintRankingChart();\r\n } else {\r\n this.buildConstraintRankingByPercentChart();\r\n }\r\n }\r\n\r\n getOwnerFlowsheetName(mve: MarginalValueEntry) {\r\n const ownerFlowsheet = this.coreService.currentCase.getUnitOperation(mve.ownerOperationId);\r\n if (isTypeUndefined(ownerFlowsheet)) {\r\n return 'Main Flowsheet';\r\n }\r\n return ownerFlowsheet.name;\r\n }\r\n\r\n buildConstraintRankingChart() {\r\n const series = this.constraintRanking\r\n .map(mve => {\r\n return { name: `${mve.variableName} - ${mve.unitOperationName}`, y: mve.objFunctionChangeRate };\r\n })\r\n .filter(mve => !mve.name.startsWith('Minimum Flow'));\r\n\r\n const chartOptions = this.getBarChartOptions(series);\r\n Highcharts.chart('rankingChart', chartOptions);\r\n }\r\n\r\n buildConstraintRankingByPercentChart() {\r\n const totalObjFunctionChangeRateValue = this.getTotalObjFunctionChangeRate();\r\n\r\n const series = this.constraintRanking\r\n .filter(mve => !mve.variableName.startsWith('Minimum Flow'))\r\n .map(mve => {\r\n const percent = (mve.objFunctionChangeRate * 100) / totalObjFunctionChangeRateValue;\r\n return { name: `${mve.variableName} - ${mve.unitOperationName}`, y: percent };\r\n });\r\n\r\n const chartOptions = this.getBarChartOptions(series);\r\n Highcharts.chart('rankingChart', chartOptions);\r\n }\r\n\r\n getBarChartOptions(series) {\r\n return {\r\n chart: {\r\n type: 'column',\r\n },\r\n credits: {\r\n enabled: false,\r\n },\r\n legend: {\r\n enabled: false,\r\n },\r\n title: {\r\n text: undefined,\r\n },\r\n xAxis: {\r\n type: 'category',\r\n },\r\n yAxis: {\r\n title: {\r\n text: `Obj. function change rate value (${this.objFunctionUnit})`,\r\n },\r\n },\r\n plotOptions: {\r\n series: {\r\n dataLabels: {\r\n enabled: false,\r\n },\r\n },\r\n },\r\n tooltip: {\r\n headerFormat: '{series.name}
',\r\n // eslint-disable-next-line max-len\r\n pointFormat: `{point.name}: {point.y:,.3f}${this.objFunctionUnit}
`,\r\n followPointer: true,\r\n },\r\n series: [\r\n {\r\n name: 'Constraint',\r\n data: series,\r\n colorByPoint: true,\r\n },\r\n ],\r\n };\r\n }\r\n\r\n getTotalObjFunctionChangeRate() {\r\n let total = 0;\r\n this.constraintRanking\r\n .filter(mve => !mve.variableName.startsWith('Minimum Flow'))\r\n .forEach(mve => {\r\n total += mve.objFunctionChangeRate;\r\n });\r\n\r\n return total;\r\n }\r\n}\r\n","\r\n
\r\n
\r\n
\r\n \r\n

Upgrader Report

\r\n
\r\n
\r\n
\r\n \r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Upgrader Name
\r\n

{{ up.name }}

\r\n
\r\n Inspect\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n

Selected Upgrader: {{ selectedUpgrader.name }}

\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n","import { Component, ViewChild, ChangeDetectorRef, OnDestroy } from '@angular/core';\r\nimport { SubSink } from 'subsink';\r\nimport { CoreService } from '../../_services/core.service';\r\nimport { FlowsheetTreeService } from '../../_services/sub-flowsheet/flowsheet-tree/flowsheet-tree.service';\r\nimport { Upgrader } from '../../_models/_unit-operations/upgrader';\r\nimport { SubFlowsheetService } from '../../_services/sub-flowsheet/sub-flowsheet.service';\r\nimport { FlowsheetService } from '../../_services/flowsheet.service';\r\nimport { unitOperationsConfig } from '../../_config/unit-operations.config';\r\nimport { FlowsheetTreeNode } from '../../_models/flowsheet-manager/flowsheet-tree-node';\r\nimport { UtilitiesSummaryReportComponent } from '../summary-report/utilities-summary-report/utilities-summary-report.component';\r\nimport { GhgUpgraderReportComponent } from './ghg-upgrader-report/ghg-upgrader-report.component';\r\nimport { FuelGasSummaryReportComponent } from '../summary-report/fuel-gas-summary-report/fuel-gas-summary-report.component';\r\nimport { MarginalValueEntry } from '../../_models/marginal-value-entry';\r\nimport { ConstraintRankingComponent } from './constraint-ranking/constraint-ranking.component';\r\nimport { isTypeUndefined } from '../../_utils/utils';\r\nimport { Case } from '../../_models';\r\n\r\nexport enum TabHref {\r\n STEAM_TAB = '#urSteam',\r\n FUEL_GAS_TAB = '#urFuelGas',\r\n CONSTRAINTS_TAB = '#urRanking',\r\n}\r\n\r\nexport enum TabTooltipText {\r\n STEAM_TAB = 'Steam Make/Use',\r\n FUEL_GAS_TAB = 'Fuel Gas Make/Use',\r\n CONSTRAINTS_TAB = 'Optimization Variable',\r\n}\r\n\r\n@Component({\r\n selector: 'sob-upgrader-report',\r\n templateUrl: './upgrader-report.component.html',\r\n styleUrls: ['./upgrader-report.component.css'],\r\n})\r\nexport class UpgraderReportComponent implements OnDestroy {\r\n @ViewChild(GhgUpgraderReportComponent) ghgReport: GhgUpgraderReportComponent;\r\n @ViewChild(UtilitiesSummaryReportComponent) utilitiesSummaryReport: UtilitiesSummaryReportComponent;\r\n @ViewChild(FuelGasSummaryReportComponent) fuelGasSummaryReport: FuelGasSummaryReportComponent;\r\n @ViewChild(ConstraintRankingComponent) upgraderConstraintRanking: ConstraintRankingComponent;\r\n\r\n topOwners: FlowsheetTreeNode[];\r\n selectedUpgrader: Upgrader;\r\n currentFlowsheetCategory: string;\r\n constraintRanking: MarginalValueEntry[] = [];\r\n private subSink = new SubSink();\r\n\r\n constructor(\r\n private flowsheet: FlowsheetService,\r\n private coreService: CoreService,\r\n private subFlowsheetService: SubFlowsheetService,\r\n private tree: FlowsheetTreeService,\r\n private ref: ChangeDetectorRef\r\n ) {\r\n this.subSink.add(\r\n this.coreService.caseChangedRequest.subscribe((data: any) => {\r\n if (data && data.solveSuccess) {\r\n this.buildReportsForCurrentSubFlowsheet();\r\n }\r\n this.constraintRanking = this.coreService.currentCase.marginalValueEntries;\r\n })\r\n );\r\n\r\n this.subSink.add(\r\n this.coreService.currentCaseReplacedRequest.subscribe(() => {\r\n if (this.coreService.currentCase.isSolved) {\r\n this.buildReportsForCurrentSubFlowsheet();\r\n this.constraintRanking = this.coreService.currentCase.marginalValueEntries;\r\n }\r\n })\r\n );\r\n\r\n this.subSink.add(\r\n this.flowsheet.subFlowsheetOpenedRequest.subscribe(() => {\r\n this.removeUpgrader();\r\n if (this.coreService.currentCase.isSolved) {\r\n this.buildReportsForCurrentSubFlowsheet();\r\n }\r\n })\r\n );\r\n\r\n this.subSink.add(\r\n this.flowsheet.subFlowsheetClosedRequest.subscribe(() => {\r\n this.removeUpgrader();\r\n\r\n if (this.coreService.currentCase.isSolved) {\r\n this.buildReportsForCurrentSubFlowsheet();\r\n }\r\n })\r\n );\r\n }\r\n\r\n buildReportsForCurrentSubFlowsheet() {\r\n this.ref.detectChanges();\r\n this.constraintRanking = this.coreService.currentCase.marginalValueEntries;\r\n this.currentFlowsheetCategory = this.subFlowsheetService.currentSubFlowsheetCategory;\r\n if (\r\n this.currentFlowsheetCategory === undefined ||\r\n this.currentFlowsheetCategory === unitOperationsConfig.extraction.key\r\n ) {\r\n this.getTopFlowsheetOwners();\r\n this.selectedUpgrader = null;\r\n }\r\n\r\n if (this.currentFlowsheetCategory === unitOperationsConfig.upgrader.key) {\r\n const id = this.coreService.currentCase.getActiveFlowsheet().unitOperationId;\r\n const upgrader = this.coreService.currentCase.getUnitOperation(id) as Upgrader;\r\n this.openUpgrader(upgrader);\r\n }\r\n if (\r\n this.currentFlowsheetCategory === unitOperationsConfig.waterUtilityUnitOperation.key ||\r\n this.currentFlowsheetCategory === unitOperationsConfig.fuelGasUtilityUnitOperation.key\r\n ) {\r\n const currentOwnerId = this.coreService.currentCase.getActiveFlowsheet().unitOperationId;\r\n const unitsOwners = this.getAllFlowsheetOwnersIncludeNormalUpgraders(this.coreService.currentCase);\r\n const owner = unitsOwners.filter(uw => {\r\n return uw.id === currentOwnerId;\r\n });\r\n this.selectedUpgrader = this.coreService.currentCase.getUnitOperation(owner[0].flowsheetId) as Upgrader;\r\n this.buildReports();\r\n }\r\n }\r\n\r\n getTopFlowsheetOwners() {\r\n const tree = this.tree.getFlowsheetTreeIncludeNormalUpgraders(this.coreService.currentCase);\r\n this.topOwners = tree.root.children;\r\n }\r\n\r\n openUpgrader(up?) {\r\n if (up) {\r\n this.selectedUpgrader = up;\r\n this.buildReports();\r\n } else {\r\n this.buildReports();\r\n }\r\n }\r\n\r\n removeUpgrader() {\r\n this.selectedUpgrader = null;\r\n this.constraintRanking = this.coreService.currentCase.marginalValueEntries;\r\n }\r\n\r\n buildReports() {\r\n this.ref.detectChanges();\r\n this.ghgReport.buildReport(this.selectedUpgrader);\r\n\r\n this.utilitiesSummaryReport.buildReport(this.selectedUpgrader.id);\r\n this.disableEmptyReportTab(\r\n this.detectReportWithData(this.utilitiesSummaryReport),\r\n TabHref.STEAM_TAB,\r\n TabTooltipText.STEAM_TAB\r\n );\r\n\r\n this.fuelGasSummaryReport.buildReport(this.selectedUpgrader.id);\r\n this.disableEmptyReportTab(\r\n this.detectReportWithData(this.fuelGasSummaryReport),\r\n TabHref.FUEL_GAS_TAB,\r\n TabTooltipText.FUEL_GAS_TAB\r\n );\r\n\r\n this.buildConstraintRanking();\r\n $('#urGhgReport').tab('show');\r\n }\r\n\r\n buildConstraintRanking() {\r\n const currentOwner = this.coreService.currentCase.getActiveFlowsheet().unitOperationId;\r\n if (isTypeUndefined(currentOwner)) {\r\n this.constraintRanking = this.constraintRanking.filter((cr: MarginalValueEntry) => {\r\n return cr.ownerOperationId === this.selectedUpgrader.id;\r\n });\r\n this.upgraderConstraintRanking.buildConstraintRankingGraphics(this.constraintRanking);\r\n } else {\r\n this.constraintRanking = this.constraintRanking.filter((cr: MarginalValueEntry) => {\r\n return cr.ownerOperationId === currentOwner;\r\n });\r\n this.upgraderConstraintRanking.buildConstraintRankingGraphics(this.constraintRanking);\r\n }\r\n\r\n this.disableEmptyReportTab(this.constraintRanking, TabHref.CONSTRAINTS_TAB, TabTooltipText.CONSTRAINTS_TAB);\r\n }\r\n\r\n getAllFlowsheetOwnersIncludeNormalUpgraders(c: Case) {\r\n return c.filterUnitOperations(uo => uo.isFlowsheetOwner || uo instanceof Upgrader);\r\n }\r\n\r\n disableEmptyReportTab(reportData: any, tabHref: string, tooltipText: string) {\r\n const element = $(`a[href*=\"${tabHref}\"]`);\r\n if (reportData.length > 0 || reportData > 0) {\r\n element.attr('data-toggle', 'tab');\r\n element.removeAttr('title');\r\n } else {\r\n element.attr('data-toggle', 'tooltip');\r\n element.attr('title', `Upgrader \"${this.selectedUpgrader.name}\" does not report any ${tooltipText}`);\r\n element.removeAttr('href');\r\n }\r\n }\r\n\r\n detectReportWithData(report: UtilitiesSummaryReportComponent | FuelGasSummaryReportComponent) {\r\n let reportsWithData = 0;\r\n for (const property in report) {\r\n if (property.includes('ReportData') && report[property].reportItems.length !== 0) {\r\n reportsWithData++;\r\n }\r\n }\r\n return reportsWithData;\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subSink.unsubscribe();\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n \r\n

Case Comments

\r\n
\r\n
\r\n
\r\n
\r\n Case Comments\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
OperationFlowsheetInspectCreated byCreated onText
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n \r\n

Edit Comment

\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n","import { AfterViewInit, Component } from '@angular/core';\r\nimport { CommentsService } from '../../_services/helpers/comments.service';\r\nimport { BaseObjectComment } from '../../_models/base-object-comment';\r\nimport { CoreService } from '../../_services/core.service';\r\nimport { isTypeUndefined } from '../../_utils/utils';\r\n\r\n@Component({\r\n selector: 'sob-case-comments',\r\n templateUrl: './case-comments.component.html',\r\n styleUrls: ['./case-comments.component.css'],\r\n})\r\nexport class CaseCommentsComponent implements AfterViewInit {\r\n comments: BaseObjectComment[];\r\n selectedComment: BaseObjectComment = null;\r\n\r\n constructor(private commentsService: CommentsService, private coreService: CoreService) {}\r\n\r\n ngAfterViewInit() {\r\n this.updateDataTable();\r\n }\r\n\r\n updateDataTable() {\r\n const $modal = $('#caseCommentsModal');\r\n $modal.on('show.bs.modal', () => {\r\n this.getCaseComments();\r\n this.buildCommentsTable();\r\n });\r\n\r\n $('#tableCaseComments ').on('click', '.inspectButton', e => {\r\n const $target = $(e.currentTarget);\r\n const id = $target.data('id');\r\n this.selectedComment = this.commentsService.getCommentById(id);\r\n });\r\n }\r\n\r\n saveComment(com: BaseObjectComment) {\r\n this.selectedComment = null;\r\n const $editModal = $('#editComment');\r\n $editModal.modal('hide');\r\n const newText = $('#area').val().toString();\r\n this.commentsService.updateComment(com, newText);\r\n this.getCaseComments();\r\n this.buildCommentsTable();\r\n }\r\n\r\n cancel() {\r\n this.selectedComment = null;\r\n const $editModal = $('#editComment');\r\n $editModal.modal('hide');\r\n }\r\n\r\n getCaseComments() {\r\n this.comments = this.commentsService.getCommentsPool();\r\n }\r\n\r\n getUnitOpOwnerName(idOwner: string) {\r\n const unit = this.coreService.currentCase.getUnitOperation(idOwner);\r\n return unit.name;\r\n }\r\n\r\n getFlowsheetOwner(idOwner: string) {\r\n const unitOp = this.coreService.currentCase.getUnitOperation(idOwner);\r\n const flowsheet = this.coreService.currentCase.getUnitOperation(unitOp.flowsheetId);\r\n return isTypeUndefined(flowsheet) ? 'Main Flowsheet' : flowsheet.name;\r\n }\r\n\r\n buildCommentsTable() {\r\n const $table = $('#tableCaseComments');\r\n\r\n if (($.fn).dataTable.isDataTable('#tableCaseComments')) {\r\n ($table).DataTable().destroy();\r\n }\r\n const opts = {\r\n data: this.comments,\r\n paging: true,\r\n searching: true,\r\n info: false,\r\n order: [[0, 'asc']],\r\n columns: [\r\n {\r\n data: data => {\r\n return this.getUnitOpOwnerName(data.ownerId);\r\n },\r\n },\r\n {\r\n data: data => {\r\n return this.getFlowsheetOwner(data.ownerId);\r\n },\r\n },\r\n {\r\n data: data => {\r\n if (this.validateUser(data.username)) {\r\n return (\r\n ``\r\n );\r\n }\r\n return (\r\n ``\r\n );\r\n },\r\n },\r\n {\r\n data: 'username',\r\n },\r\n {\r\n data: data => {\r\n return this.formatDate(data.commentDate);\r\n },\r\n },\r\n {\r\n data: 'text',\r\n visible: false,\r\n searchable: true,\r\n },\r\n ],\r\n };\r\n ($table).DataTable(opts);\r\n }\r\n\r\n openFlowsheetComments() {\r\n $('#flowsheetCommentsModal').modal('show');\r\n }\r\n\r\n formatDate(date: Date) {\r\n const padTo2Digits = num => num.toString().padStart(2, '0');\r\n return [padTo2Digits(date.getDate()), padTo2Digits(date.getMonth() + 1), date.getFullYear()].join('/');\r\n }\r\n\r\n validateUser(tableUser: string) {\r\n const serializedUser = localStorage.getItem('user');\r\n const currentUser = JSON.parse(serializedUser || '{}').userName;\r\n\r\n return currentUser === tableUser;\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { saveAs } from 'file-saver/FileSaver';\r\nimport { CoreService } from '../../_services/core.service';\r\nimport { FlowsheetService } from '../../_services/flowsheet.service';\r\nimport { ExcelReportService } from '../../_services/excel-report/excel-report.service';\r\n\r\n@Component({\r\n selector: 'sob-multiperiod-excel-report',\r\n templateUrl: './multiperiod-excel-report.component.html',\r\n styleUrls: ['./multiperiod-excel-report.component.css'],\r\n})\r\nexport class MultiperiodExcelReportComponent implements OnInit {\r\n filename: string;\r\n constructor(\r\n private xlsxSrv: ExcelReportService,\r\n private flowsheetService: FlowsheetService,\r\n private coreService: CoreService\r\n ) {}\r\n\r\n // eslint-disable-next-line @angular-eslint/no-empty-lifecycle-method\r\n ngOnInit(): void {}\r\n\r\n generateExcel() {\r\n this.filename = this.filename.replace(/\\s/g, '');\r\n\r\n if (this.filename.length > 0) {\r\n this.downloadExcelReport(this.filename);\r\n $('#multiperiodExcelReportModal').modal('hide');\r\n this.filename = '';\r\n }\r\n }\r\n\r\n private downloadExcelReport(filename): void {\r\n if (this.currentCase.getActiveFlowsheet().isSubflowsheet()) {\r\n this.flowsheetService.exitToMainFlowsheet();\r\n }\r\n\r\n const excelFile = this.xlsxSrv.generateMultiPeriodResultsExcelReport();\r\n saveAs(new Blob([excelFile], { type: 'application/octet-stream' }), `${filename}.xlsx`);\r\n }\r\n\r\n get currentCase() {\r\n return this.coreService.currentCase;\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n \r\n

Save Multiperiod Excel Report as...

\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n","import { Component } from '@angular/core';\r\nimport { saveAs } from 'file-saver/FileSaver';\r\nimport { ExcelReportService } from '../../_services/excel-report/excel-report.service';\r\nimport { FlowsheetService } from '../../_services/flowsheet.service';\r\nimport { CoreService } from '../../_services/core.service';\r\n\r\n@Component({\r\n selector: 'sob-case-study-excel-report',\r\n templateUrl: './case-study-excel-report.component.html',\r\n styleUrls: ['./case-study-excel-report.component.css'],\r\n})\r\nexport class CaseStudyExcelReportComponent {\r\n filename: string;\r\n\r\n constructor(\r\n private xlsxSrv: ExcelReportService,\r\n private flowsheetService: FlowsheetService,\r\n private coreService: CoreService\r\n ) {}\r\n\r\n generateExcel() {\r\n this.filename = this.filename.replace(/\\s/g, '');\r\n\r\n if (this.filename.length > 0) {\r\n this.downloadExcelReport(this.filename);\r\n $('#caseStudyExcelReportModal').modal('hide');\r\n this.filename = '';\r\n }\r\n }\r\n\r\n private downloadExcelReport(filename) {\r\n if (this.currentCase.getActiveFlowsheet().isSubflowsheet()) {\r\n this.flowsheetService.exitToMainFlowsheet();\r\n }\r\n\r\n const excelFile = this.xlsxSrv.generateCaseStudyExcelReport();\r\n saveAs(new Blob([excelFile], { type: 'application/octet-stream' }), `${filename}.xlsx`);\r\n }\r\n\r\n get currentCase() {\r\n return this.coreService.currentCase;\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n \r\n

Save Case Study Excel Report as...

\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n","import { Observable } from '../Observable';\nimport { async } from '../scheduler/async';\nimport { isNumeric } from '../util/isNumeric';\nexport function interval(period = 0, scheduler = async) {\n if (!isNumeric(period) || period < 0) {\n period = 0;\n }\n if (!scheduler || typeof scheduler.schedule !== 'function') {\n scheduler = async;\n }\n return new Observable(subscriber => {\n subscriber.add(scheduler.schedule(dispatch, period, { subscriber, counter: 0, period }));\n return subscriber;\n });\n}\nfunction dispatch(state) {\n const { subscriber, counter, period } = state;\n subscriber.next(counter);\n this.schedule({ subscriber, counter: counter + 1, period }, period);\n}\n","import { SimpleOuterSubscriber, innerSubscribe, SimpleInnerSubscriber } from '../innerSubscribe';\nexport function debounce(durationSelector) {\n return (source) => source.lift(new DebounceOperator(durationSelector));\n}\nclass DebounceOperator {\n constructor(durationSelector) {\n this.durationSelector = durationSelector;\n }\n call(subscriber, source) {\n return source.subscribe(new DebounceSubscriber(subscriber, this.durationSelector));\n }\n}\nclass DebounceSubscriber extends SimpleOuterSubscriber {\n constructor(destination, durationSelector) {\n super(destination);\n this.durationSelector = durationSelector;\n this.hasValue = false;\n }\n _next(value) {\n try {\n const result = this.durationSelector.call(this, value);\n if (result) {\n this._tryNext(value, result);\n }\n }\n catch (err) {\n this.destination.error(err);\n }\n }\n _complete() {\n this.emitValue();\n this.destination.complete();\n }\n _tryNext(value, duration) {\n let subscription = this.durationSubscription;\n this.value = value;\n this.hasValue = true;\n if (subscription) {\n subscription.unsubscribe();\n this.remove(subscription);\n }\n subscription = innerSubscribe(duration, new SimpleInnerSubscriber(this));\n if (subscription && !subscription.closed) {\n this.add(this.durationSubscription = subscription);\n }\n }\n notifyNext() {\n this.emitValue();\n }\n notifyComplete() {\n this.emitValue();\n }\n emitValue() {\n if (this.hasValue) {\n const value = this.value;\n const subscription = this.durationSubscription;\n if (subscription) {\n this.durationSubscription = undefined;\n subscription.unsubscribe();\n this.remove(subscription);\n }\n this.value = undefined;\n this.hasValue = false;\n super._next(value);\n }\n }\n}\n","\r\n \r\n\r\n
\r\n\r\n \r\n
\r\n \r\n
\r\n \r\n\r\n","import { AfterViewInit, Component, NgZone, OnDestroy, ViewChild } from '@angular/core';\r\nimport { SubSink } from 'subsink';\r\nimport * as go from 'gojs';\r\nimport { PopupTrigger } from '@grapecity/wijmo.input';\r\nimport { WjColorPicker, WjPopup } from '@grapecity/wijmo.angular2.input';\r\nimport { interval, Subject } from 'rxjs';\r\nimport { debounce } from 'rxjs/operators';\r\nimport { PopupPosition } from '@grapecity/wijmo';\r\nimport { DiagramItemColorPickerInput, DiagramItemColorPickerService } from './diagram-item-color-picker.service';\r\n\r\ninterface DiagramItemColorPickerComponentState {\r\n diagram: go.Diagram;\r\n diagramItemKey: number | string;\r\n}\r\n\r\n@Component({\r\n selector: 'sob-diagram-item-color-picker',\r\n templateUrl: './diagram-item-color-picker.component.html',\r\n styleUrls: ['./diagram-item-color-picker.component.css'],\r\n})\r\nexport class DiagramItemColorPickerComponent implements AfterViewInit, OnDestroy {\r\n @ViewChild('popup') popup: WjPopup;\r\n @ViewChild('colorPicker') colorPicker: WjColorPicker;\r\n\r\n private subSink = new SubSink();\r\n protected PopupTrigger = PopupTrigger;\r\n\r\n state?: DiagramItemColorPickerComponentState;\r\n private animationInProgress = false;\r\n\r\n // seems like the fadeIn, fadeOut animations last this number of ms\r\n private guessedAnimationTimeMs = 400;\r\n\r\n private colorChangedSubject = new Subject();\r\n private colorChanged$ = this.colorChangedSubject.asObservable();\r\n\r\n // initial value, will be overridden on open\r\n protected selectedColor = 'rgba(255, 255, 255, 1)';\r\n\r\n constructor(private colorPickerService: DiagramItemColorPickerService, private ngZone: NgZone) {\r\n this.subSink.add(\r\n this.colorPickerService.open$.subscribe({\r\n next: params => {\r\n if (this.isAnimating() || this.popup.isVisible) {\r\n return;\r\n }\r\n this.open(params);\r\n },\r\n })\r\n );\r\n\r\n this.subSink.add(\r\n this.colorChanged$\r\n .pipe(\r\n debounce(() => {\r\n return interval(200);\r\n })\r\n )\r\n .subscribe({\r\n next: value => {\r\n // This fill change will actually be tracked by undoManager\r\n this.updateFill(value);\r\n },\r\n })\r\n );\r\n }\r\n\r\n ngAfterViewInit() {\r\n // at the moment of creating this component, it is not possible to set the position\r\n // as a wj-popup input\r\n this.popup.position = PopupPosition.Above;\r\n }\r\n\r\n private open(params: DiagramItemColorPickerInput) {\r\n this.moveContainer(params.documentX, params.documentY);\r\n this.state = { diagram: params.diagram, diagramItemKey: params.diagramItemKey };\r\n this.selectedColor = params.fill;\r\n\r\n // eternal damnation will fall on us for this ;_;\r\n // prevent a visual glitch the first time the popup is shown\r\n // give chance to move the container correctly\r\n setTimeout(() => {\r\n this.ngZone.run(() => {\r\n this.popup.show();\r\n });\r\n }, 1);\r\n }\r\n\r\n private moveContainer(x: number, y: number) {\r\n const container = document.getElementById('diagram-item-color-picker-popup-container');\r\n container.style.left = `${x}px`;\r\n container.style.top = `${y}px`;\r\n }\r\n\r\n protected onColorPickerInputChanged(colorString: string) {\r\n if (!this.state) {\r\n return;\r\n }\r\n\r\n // changing the color \"in real time\"\r\n // not tracked by the undo manager... just in case\r\n const { diagram } = this.state;\r\n const oldSkipsUndoManagerValue = diagram.skipsUndoManager;\r\n diagram.skipsUndoManager = true;\r\n this.updateFill(colorString);\r\n diagram.skipsUndoManager = oldSkipsUndoManagerValue;\r\n\r\n // This observable is debounced\r\n // the last emission of this will be actually tracked by the undoManager\r\n this.colorChangedSubject.next(colorString);\r\n }\r\n\r\n private updateFill(fill: string) {\r\n if (!this.state) {\r\n return;\r\n }\r\n\r\n const { diagram } = this.state;\r\n const commentsNode = diagram.findNodeForKey(this.state.diagramItemKey);\r\n\r\n if (!commentsNode) {\r\n return;\r\n }\r\n\r\n diagram.model.startTransaction('updateFill');\r\n diagram.model.setDataProperty(commentsNode.data, 'fill', fill);\r\n diagram.model.commitTransaction('updateFill');\r\n }\r\n\r\n // region animation guess flags\r\n onPopupShowing() {\r\n this.animationStarting();\r\n }\r\n\r\n onPopupShown() {\r\n // mark the animation as finished after some time...\r\n setTimeout(() => {\r\n this.ngZone.run(() => {\r\n this.animationFinished();\r\n });\r\n }, this.guessedAnimationTimeMs);\r\n }\r\n\r\n onPopupHiding() {\r\n this.animationStarting();\r\n }\r\n\r\n onPopupHidden() {\r\n // mark the animation as finished after some time...\r\n setTimeout(() => {\r\n this.ngZone.run(() => {\r\n this.state = undefined;\r\n this.animationFinished();\r\n });\r\n }, this.guessedAnimationTimeMs);\r\n }\r\n\r\n // flags that should be in sync with animation... :/ to debounce the hide/show of the popup\r\n protected animationStarting() {\r\n this.animationInProgress = true;\r\n }\r\n\r\n protected animationFinished() {\r\n this.animationInProgress = false;\r\n }\r\n\r\n private isAnimating() {\r\n return this.animationInProgress;\r\n }\r\n // endregion\r\n\r\n ngOnDestroy(): void {\r\n this.subSink.unsubscribe();\r\n }\r\n}\r\n","import { isArray } from './isArray';\nexport function isNumeric(val) {\n return !isArray(val) && (val - parseFloat(val) + 1) >= 0;\n}\n","
\r\n \r\n\r\n \r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n","import { AfterViewChecked, AfterViewInit, ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';\r\nimport * as go from 'gojs';\r\nimport { Observable } from 'rxjs';\r\nimport { SubSink } from 'subsink';\r\nimport { debounce, detectBody, flowsheetHeight } from '../app.helpers';\r\nimport { UnitOperation } from '../_models';\r\nimport { CoreService } from '../_services/core.service';\r\nimport { FlowsheetService } from '../_services/flowsheet.service';\r\nimport { KpiManager } from '../_models/_case-study/kpi-manager';\r\nimport { CaseStudyManager } from '../_models/_case-study/case-study-manager';\r\nimport { ObjectiveFunction } from '../_models/_optimization/objective-function';\r\nimport { ProgressIndicatorService } from './progress-indicator/progress-indicator.service';\r\nimport { initStackedModals } from '../ui.helpers';\r\nimport { UncertaintyAnalysis } from '../_models/_case-study/uncertainty-analysis';\r\nimport { UncertaintyAnalysisService } from '../_services/case-study/uncertainty-analysis.service';\r\nimport { AssayManager } from '../_models/_fluid/assay-manager';\r\nimport { FlowsheetDiagramService } from '../_services/flowsheet-diagram/flowsheet-diagram.service';\r\nimport { FileService } from '../_services/file.service';\r\nimport { UserService } from '../_services/user.service';\r\nimport { BaseObjectFormGroupWrapper } from '../_form-utils/base-object-form-group-wrapper';\r\nimport { environment } from '../../environments/environment';\r\nimport { CaseStatsService } from '../_services/case-stats.service';\r\nimport { ServerUtcDateService } from '../_services/helpers/server-utc-date.service';\r\nimport { CommentsService } from '../_services/helpers/comments.service';\r\n\r\n@Component({\r\n selector: 'sob-flowsheet',\r\n templateUrl: './flowsheet.component.html',\r\n styleUrls: ['./flowsheet.component.css'],\r\n})\r\nexport class FlowsheetComponent implements OnInit, AfterViewInit, AfterViewChecked, OnDestroy {\r\n // TODO add all subscriptions to SubSink\r\n private subSink = new SubSink();\r\n\r\n currentUnitOp: UnitOperation;\r\n caseStudyManager: CaseStudyManager;\r\n kpiManager: KpiManager;\r\n assayManager: AssayManager;\r\n objectiveFunction: ObjectiveFunction;\r\n\r\n solveUncertaintyAnalysis: (analysis: UncertaintyAnalysis) => Observable;\r\n private openingPropertyWindow: boolean;\r\n\r\n private calculateHeightFlag = false;\r\n\r\n constructor(\r\n private ref: ChangeDetectorRef,\r\n private coreService: CoreService,\r\n private uncertaintyAnalysisService: UncertaintyAnalysisService,\r\n private flowsheetDiagramService: FlowsheetDiagramService,\r\n private flowsheetService: FlowsheetService,\r\n private fileService: FileService,\r\n private userService: UserService,\r\n private progressIndicator: ProgressIndicatorService,\r\n private caseStatsService: CaseStatsService,\r\n private utcDateService: ServerUtcDateService,\r\n private commentsService: CommentsService\r\n ) {\r\n this.flowsheetService.closePropertyWindowRequest.subscribe(() => {\r\n this.closePropertyWindowAndSave();\r\n });\r\n\r\n this.flowsheetService.saveCustomCodeRequest.subscribe(() => {\r\n this.saveUnitOperationWithCustomCode();\r\n });\r\n\r\n this.flowsheetService.openPropertyWindowRequest.subscribe((uo: UnitOperation) => {\r\n this.loadPropertyView(uo);\r\n });\r\n\r\n this.flowsheetService.subFlowsheetOpenedRequest.subscribe(() => {\r\n this.calculateHeightFlag = true;\r\n });\r\n\r\n this.flowsheetService.subFlowsheetClosedRequest.subscribe(() => {\r\n this.calculateHeightFlag = false;\r\n });\r\n\r\n this.setCaseLevelPropertyValues();\r\n\r\n // TODO consider subscribing to currentCaseReplacedRequest\r\n this.coreService.caseChangedRequest.subscribe(() => {\r\n this.setCaseLevelPropertyValues();\r\n this.ref.detectChanges();\r\n this.progressIndicator.hide();\r\n this.solveUncertaintyAnalysis = (analysis: UncertaintyAnalysis) => {\r\n return this.uncertaintyAnalysisService.solveUncertaintyAnalysis(analysis);\r\n };\r\n });\r\n\r\n window.addEventListener('beforeunload', event => {\r\n event.preventDefault();\r\n\r\n // this error can be forgiven, the MDN docs provide an example exactly like this\r\n // eslint-disable-next-line no-return-assign\r\n return (event.returnValue = 'Unsaved modifications');\r\n });\r\n\r\n if (!environment.production) {\r\n document.onkeydown = evt => {\r\n // add a key combination for quickly opening a file\r\n if (evt.ctrlKey && evt.key === '.') {\r\n this.flowsheetService.closePropertyWindow();\r\n $('#openCaseModal').modal('show');\r\n }\r\n\r\n // and for opening the summary report\r\n if (evt.ctrlKey && evt.key === ',') {\r\n this.flowsheetService.closePropertyWindow();\r\n $('#summaryReportModal').modal('show');\r\n }\r\n };\r\n }\r\n\r\n this.subSink.add(\r\n this.utcDateService.getServerSeedDate().subscribe(serializedDate => {\r\n this.utcDateService.setServerSeedDate(serializedDate);\r\n })\r\n );\r\n }\r\n\r\n private setCaseLevelPropertyValues() {\r\n this.caseStudyManager = this.coreService.currentCase.caseStudyManager;\r\n this.kpiManager = this.caseStudyManager.kpiManager;\r\n this.assayManager = this.coreService.currentCase.assayManager;\r\n this.objectiveFunction = this.coreService.currentCase.objectiveFunction;\r\n }\r\n\r\n ngOnInit() {\r\n // eslint-disable-next-line max-len\r\n (go as any).Diagram.licenseKey =\r\n // eslint-disable-next-line max-len\r\n '73f147e5ba0537c702d90776423d6af919a17564ce841ba4090345f3ba0d6a06329fee2851d38b90d5ac49fe4a7f93d1d8c169209248573de030d5da13e08faaba3375e5400b4589a00a21cbcaff78f1a87c71e0d2b322f2dc78dea2eabad39f5debf3cb4ed50eb9';\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n flowsheetHeight();\r\n detectBody();\r\n initStackedModals();\r\n\r\n const debounced = debounce(\r\n function () {\r\n flowsheetHeight();\r\n detectBody();\r\n },\r\n 500,\r\n false\r\n );\r\n\r\n $(window).bind('resize', debounced);\r\n\r\n $('.metismenu a').click(() => {\r\n setTimeout(() => {\r\n flowsheetHeight();\r\n }, 300);\r\n });\r\n\r\n $(document).on('change', 'input.Default, input.SolverCalculated, input.UnDefined', () => {\r\n $(this).removeClass('Default');\r\n $(this).removeClass('UnDefined');\r\n $(this).removeClass('SolverCalculated');\r\n $(this).addClass('UserSpecified');\r\n });\r\n\r\n $('[data-toggle=\"tooltip\"]').tooltip();\r\n }\r\n\r\n ngAfterViewChecked() {\r\n if (this.calculateHeightFlag) {\r\n this.calculateHeightFlag = false;\r\n flowsheetHeight();\r\n } else {\r\n flowsheetHeight();\r\n }\r\n }\r\n\r\n private setCurrentUnitOp(uo: UnitOperation): void {\r\n this.propertyWindowFormGroupWrapper.clear();\r\n this.currentUnitOp = null;\r\n this.ref.detectChanges();\r\n this.currentUnitOp = uo;\r\n this.ref.detectChanges();\r\n }\r\n\r\n private loadPropertyView(uo: UnitOperation) {\r\n if (this.currentUnitOp) {\r\n this.flowsheetService.closePropertyWindow();\r\n }\r\n this.setCurrentUnitOp(uo);\r\n this.openPropertyWindow();\r\n }\r\n\r\n private openPropertyWindow(): void {\r\n const $propertyWindow = $('#propertyWindow');\r\n\r\n this.openingPropertyWindow = true;\r\n if (!$propertyWindow.is(':visible')) {\r\n $propertyWindow.toggle('slide', {\r\n direction: 'right',\r\n complete: () => {\r\n this.openingPropertyWindow = false;\r\n },\r\n });\r\n }\r\n\r\n $('#closePropertyWindow').removeAttr('disabled');\r\n\r\n // if any unit operation was previously marked as non-deletable it should be marked as deletable\r\n this.flowsheetService.makeAllUnitOperationsDeletable();\r\n this.flowsheetService.preventUnitOperationDeletion(this.currentUnitOp);\r\n }\r\n\r\n private closePropertyWindowAndSave(): void {\r\n if ($('#propertyWindow').is(':visible')) {\r\n this.closePropertyWindow();\r\n this.saveUnitOperation();\r\n\r\n // this.currentUnitOp = undefined;\r\n // this.ref.detectChanges();\r\n }\r\n }\r\n\r\n private closePropertyWindow(): void {\r\n this.flowsheetService.makeAllUnitOperationsDeletable();\r\n $('#closePropertyWindow').attr('disabled', 'disabled');\r\n $('#propertyWindow').toggle('slide', {\r\n direction: 'right',\r\n complete: () => {\r\n if (!this.openingPropertyWindow) {\r\n this.currentUnitOp = undefined;\r\n }\r\n },\r\n });\r\n }\r\n\r\n private saveUnitOperation(): void {\r\n // call prepare for save here?\r\n const isReactiveFormUsed = this.flowsheetService.propertyWindowFormGroupWrapper.hasControls();\r\n if (isReactiveFormUsed) {\r\n this.coreService.saveUnitOperationFromReactiveForm(this.propertyWindowFormGroupWrapper, this.currentUnitOp);\r\n return;\r\n }\r\n\r\n this.coreService.saveUnitOperationFromTemplateDrivenForm(this.currentUnitOp);\r\n }\r\n\r\n private saveUnitOperationWithCustomCode(): void {\r\n const isReactiveFormUsed = this.flowsheetService.propertyWindowFormGroupWrapper.hasControls();\r\n if (isReactiveFormUsed) {\r\n this.coreService.saveUnitOperationWithReactiveFormWhenCustomCodeChange(\r\n this.currentUnitOp,\r\n this.propertyWindowFormGroupWrapper\r\n );\r\n return;\r\n }\r\n\r\n this.coreService.saveUnitOperationWhenCustomCodeChange(this.currentUnitOp);\r\n }\r\n\r\n get activeFlowsheetOwner(): UnitOperation | undefined {\r\n if (this.coreService.currentCase.getActiveFlowsheet()) {\r\n const uoId = this.coreService.currentCase.getActiveFlowsheet().unitOperationId;\r\n return this.coreService.currentCase.getUnitOperation(uoId);\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n get propertyWindowFormGroupWrapper(): BaseObjectFormGroupWrapper {\r\n return this.flowsheetService.propertyWindowFormGroupWrapper;\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subSink.unsubscribe();\r\n }\r\n}\r\n","export function initStackedModals() {\r\n // eslint-disable-next-line func-names\r\n $(document).on('show.bs.modal', function () {\r\n // eslint-disable-next-line func-names\r\n setTimeout(function () {\r\n const $modalVisible = $('.modal:visible');\r\n const zIndex = 2040 + 10 * $modalVisible.length;\r\n\r\n const $backdrop = $('.modal-backdrop').not('.modal-stack');\r\n $backdrop.addClass('modal-stack');\r\n }, 0);\r\n });\r\n\r\n // eslint-disable-next-line func-names\r\n $(document).on('hidden.bs.modal', function () {\r\n if ($('.modal:visible').length) {\r\n $('body').addClass('modal-open');\r\n }\r\n });\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Welcome

\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n {{ error }}\r\n
\r\n
\r\n \r\n {{ success }}\r\n
\r\n
\r\n
\r\n \r\n
Username is required
\r\n
\r\n\r\n
\r\n \r\n
Password is required
\r\n
\r\n \r\n Login\r\n \r\n Sign Up\r\n Forgot your password?\r\n \r\n
\r\n
\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n","/* eslint-disable no-console */\r\nimport { Component, NgZone, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, Params, Router } from '@angular/router';\r\nimport { AuthService } from '../_services/auth.service';\r\n\r\n@Component({\r\n selector: 'sob-login',\r\n templateUrl: './login.component.html',\r\n styleUrls: ['./login.component.css'],\r\n})\r\nexport class LoginComponent implements OnInit {\r\n model: any = {}; // <- dont to this crap\r\n loading = false;\r\n error: string;\r\n success: string;\r\n returnUrl: string;\r\n private sub: any;\r\n message;\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private authenticationService: AuthService,\r\n // WAT\r\n private zone: NgZone,\r\n private _route: ActivatedRoute\r\n ) {\r\n this.sub = this.route.params.subscribe((params: Params) => {\r\n this.message = +params['code'];\r\n if (this.message === 1) {\r\n this.success =\r\n 'Your account is activated successfully. You can now login to Suncor OPTEA using your credentials.';\r\n } else if (this.message === 0) {\r\n this.error = 'An error occurred in your last request';\r\n }\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n // get return url from route parameters or default to '/'\r\n this.returnUrl = this.route.snapshot.queryParams['returnUrl'] || '/';\r\n // reset login status\r\n // should I even reset it?\r\n if (this.authenticationService.isAuthenticated()) {\r\n this.router.navigate(['']);\r\n }\r\n }\r\n\r\n login() {\r\n this.loading = true;\r\n this.authenticationService.login(this.model.username, this.model.password).subscribe(\r\n () => {\r\n this.loading = false;\r\n // WHY YOU FUCKING PIECE OF SHIT\r\n this.zone.run(() => {\r\n this.router.navigate(['']);\r\n });\r\n },\r\n error => {\r\n this.loading = false;\r\n if (error.error instanceof Error) {\r\n // A client-side or network error occurred. Handle it accordingly.\r\n this.error = `An error occurred: ${error.error.message}`;\r\n console.error('An error occurred:', error.error.message);\r\n } else if (error.status === 400) {\r\n console.error(error);\r\n this.error = 'Invalid user name and/or password.';\r\n } else {\r\n // The backend returned an unsuccessful response code.\r\n // The response body may contain clues as to what went wrong,\r\n console.error('An error occurred:');\r\n console.error(error);\r\n console.error(`Backend returned code ${error.status}, body was: ${error.error}`);\r\n }\r\n }\r\n );\r\n }\r\n\r\n closeModal() {\r\n if (this.error) {\r\n this.error = undefined; // <- WHY\r\n }\r\n }\r\n}\r\n","import { Observable } from 'rxjs';\r\nimport { Injectable } from '@angular/core';\r\nimport { CanActivate, CanLoad, Route, Router } from '@angular/router';\r\nimport { AuthService } from '../_services/auth.service';\r\n\r\n@Injectable()\r\nexport class AuthGuard implements CanActivate, CanLoad {\r\n constructor(private router: Router, private authenticationService: AuthService) {}\r\n\r\n canActivate() {\r\n if (this.authenticationService.isAuthenticated()) {\r\n // logged in so return true\r\n return true;\r\n }\r\n\r\n // not logged in so redirect to login page with the return url\r\n this.router.navigate(['/login']);\r\n return false;\r\n }\r\n\r\n canLoad(): boolean | Observable | Promise {\r\n if (this.authenticationService.isAuthenticated()) {\r\n // logged in so return true\r\n return true;\r\n }\r\n\r\n // not logged in so redirect to login page with the return url\r\n this.router.navigate(['/login']);\r\n return false;\r\n }\r\n}\r\n","import { AfterViewInit, Component } from '@angular/core';\r\nimport { detectBody, smoothlyMenu } from '../app.helpers';\r\nimport { AuthService } from '../_services/auth.service';\r\n\r\n@Component({\r\n selector: 'sob-changelog',\r\n templateUrl: './changelog.component.html',\r\n styleUrls: ['./changelog.component.css'],\r\n})\r\nexport class ChangelogComponent implements AfterViewInit {\r\n constructor(private _accessService: AuthService) {}\r\n\r\n ngAfterViewInit() {\r\n detectBody();\r\n }\r\n\r\n toggleNavigation(): void {\r\n $('body').toggleClass('mini-navbar');\r\n smoothlyMenu();\r\n }\r\n\r\n logout() {\r\n this._accessService.logout();\r\n }\r\n}\r\n","
\r\n
\r\n \r\n
\r\n\r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Changelog

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
VersionEngine VersionChangesRelease date
2.82.07572b9f2\r\n
    \r\n
  • IMP: Comments box customization
  • \r\n
  • FIX: Bitumen conversion custom code persistence
  • \r\n
\r\n
20/11/2024
2.81.25101be75\r\n
    \r\n
  • FIX: Remove forbidden characters in Excel report sheet names
  • \r\n
\r\n
25/07/2024
2.81.15101be75\r\n
    \r\n
  • FIX: Fix a bug in split ratios for DRU and VAC blocks
  • \r\n
  • \r\n FIX: Improve runtime error detection in the frontend - consecutive duplicated errors are now\r\n ignored\r\n
  • \r\n
\r\n
25/07/2024
2.81.06785abc2\r\n
    \r\n
  • IMP: Better runtime error detection in the frontend
  • \r\n
  • FIX: Miscellaneous fixes in Constraints report
  • \r\n
  • FIX: Fix a bug related to Upgrader inlet/outlet ports deletion
  • \r\n
  • FIX: Fix problem when editing a unconnected Water Boiler
  • \r\n
  • FIX: Fix deletion of 3rd level sub-flowsheet owners
  • \r\n
  • FIX: Fix a bug in constraints report when a Upgrader with Subflowsheet is deleted
  • \r\n
\r\n
23/07/2024
2.80.136fea39a\r\n
    \r\n
  • IMP: Display Unit Operation readiness status
  • \r\n
  • IMP: Display composition on Streams
  • \r\n
  • IMP: Added distillation profiles to hydrocarbon Streams
  • \r\n
  • IMP: Add blend recipe to the Mixer
  • \r\n
  • IMP: Updates to Bitumen Conversion
  • \r\n
  • IMP: Better usability for Unit Operation connection ports
  • \r\n
  • IMP: Better logic for showing Constraint Violation Report
  • \r\n
  • IMP: Prevent adding assays with duplicated name
  • \r\n
  • FIX: Fix Hydrogen Use Rate in Hydrotreater
  • \r\n
  • FIX: Reorganization of Excel Report
  • \r\n
  • FIX: Code Editor exiting only through Save or Cancel buttons
  • \r\n
  • FIX: Miscellaneous fixes on Unit Operations
  • \r\n
\r\n
05/07/2024
2.71.1b87217e9\r\n
    \r\n
  • FIX: Miscellaneous updates and bug fixes in Multi-period mode
  • \r\n
  • FIX: Miscellaneous updates and bug fixes in Property Windows
  • \r\n
\r\n
24/02/2023
2.71.1b87217e9\r\n
    \r\n
  • FIX: Miscellaneous updates and bug fixes in Multi-period mode
  • \r\n
  • FIX: Miscellaneous updates and bug fixes in Property Windows
  • \r\n
\r\n
24/02/2023
2.71b87217e9\r\n
    \r\n
  • IMP: Background task for Case Study solving
  • \r\n
  • IMP: Excel download for Multi-period results
  • \r\n
  • IMP: Capacity Exceeded in Graph for Multi-period
  • \r\n
  • IMP: Excel download for Case Study results
  • \r\n
  • FIX: Miscellaneous updates and bug fixes in Multi-period mode
  • \r\n
  • FIX: Miscellaneous updates and bug fixes in Property Windows
  • \r\n
\r\n
17/02/2023
2.70.1cc212bb04\r\n
    \r\n
  • IMP: Multi-period support
  • \r\n
  • FIX: Miscellaneous updates and bug fixes in KPIs
  • \r\n
  • FIX: Miscellaneous updates and bug fixes in Case Study
  • \r\n
\r\n
19/01/2023
2.606b75caca\r\n
    \r\n
  • IMP: Case Study
  • \r\n
  • IMP: Add support for multiple upgraders
  • \r\n
  • IMP: Add comments section in Unit Operations
  • \r\n
  • FIX: Miscellaneous updates and bug fixes in KPIs
  • \r\n
  • FIX: Miscellaneous updates and bug fixes in Unit Operations
  • \r\n
\r\n
25/11/2022
2.5911f317b9\r\n
    \r\n
  • IMP: Improve KPI manager organization
  • \r\n
  • IMP: Expand list of available KPIs
  • \r\n
  • IMP: Sort Optimization Settings Table by active constraint
  • \r\n
  • IMP: Add Sum and Validation message to Water Header's distribution ratio variables
  • \r\n
  • FIX: Keep inactive constraint values after solving
  • \r\n
  • FIX: Fixes in constraints spreadsheet
  • \r\n
\r\n
10/10/2022
2.584fcede10\r\n
    \r\n
  • IMP: Additional KPIs available from Streams, Upgrader Subflowsheet, Fuel Gas Flowsheet
  • \r\n
  • IMP: Constraint ranking report now displays owner Flowsheet name
  • \r\n
  • IMP: Add comments section to all blocks
  • \r\n
  • FIX: Solve status displayed correctly in Fuel Gas and Steam and Power blocks
  • \r\n
  • \r\n FIX: Miscellaneous updates and bug fixes in Assay Manager, Property Windows and Upgrader Report\r\n
  • \r\n
\r\n
25/09/2022
2.577f146be9\r\n
    \r\n
  • IMP: Consolidate all spreadsheets
  • \r\n
  • FIX: Update default GHG units in all blocks
  • \r\n
  • FIX: Miscellaneous updates in Property Windows
  • \r\n
\r\n
12/09/2022
2.56eacbaaca\r\n
    \r\n
  • IMP: Flowsheet filter in Optimization Settings Table
  • \r\n
  • IMP: Constraints Spreadsheet
  • \r\n
  • IMP: Consolidate Assay and Constraints Spreadsheets
  • \r\n
\r\n
04/09/2022
2.550372768a\r\n
    \r\n
  • IMP: Upgrader Report
  • \r\n
  • IMP: New Excel Global Report
  • \r\n
  • IMP: New H2s Spreadsheet
  • \r\n
  • FIX: Summary Report - Include new Unit Operations and miscellaneous fixes
  • \r\n
  • FIX: Miscellaneous updates in Property Windows
  • \r\n
\r\n
25/08/2022
2.507b1f9e6d\r\n
    \r\n
  • IMP: Fuel Gas Flowsheet
  • \r\n
  • IMP: New HRSG Unit Operation
  • \r\n
  • IMP: New GHG Report
  • \r\n
  • FIX: Fixes in Steam and Power Flowsheet
  • \r\n
  • FIX: Miscellaneous fixes in User Interface
  • \r\n
  • FIX: Miscellaneous fixes in other unit operations
  • \r\n
  • \r\n
\r\n
10/08/2022
2.44551dfb2e\r\n
    \r\n
  • FIX: Fix bugs in Commodity Tank, Hydrotreater and Product Tank
  • \r\n
  • FIX: Fix bugs in Steam and Power flowsheet
  • \r\n
  • FIX: Improve compatibility with legacy case files
  • \r\n
  • FIX: Miscellaneous fixes in other unit operations
  • \r\n
\r\n
05/07/2022
2.43.138d24ab0\r\n
    \r\n
  • IMP: New Analysis Type - Gas
  • \r\n
  • IMP: Add new fields to Gas Contributor Unit Operations
  • \r\n
  • FIX: Rename Utilities to Steam and Power
  • \r\n
  • FIX: Miscellaneous fixes in spreadsheets and property windows
  • \r\n
\r\n
22/06/2022
2.4254b26404\r\n
    \r\n
  • IMP: Add a visual indicator on Utilities Block for solved status
  • \r\n
  • IMP: Update Summary report, now it includes charts and values for Steam
  • \r\n
  • IMP: Gas Make, Fuel Gas Use and Gas Custom model fields on Unit Operations
  • \r\n
  • IMP: Update Upgrader Steam Use constraints
  • \r\n
  • IMP: Updates and changes on constraints for Upgrader Steam Use, Turbine and Valve
  • \r\n
\r\n
08/06/2022
2.41\r\n
    \r\n
  • IMP: Implement new constraints in Boiler and Turbine
  • \r\n
  • IMP: Improve Upgrader's subflowsheet palette
  • \r\n
  • FIX: Miscellaneous fixes in Utilities Flowsheet
  • \r\n
\r\n
20/05/2022
2.40.2\r\n
    \r\n
  • IMP: Sulfur Plant Unit Operation
  • \r\n
  • FIX: Miscellaneous fixes in Utilities Flowsheet
  • \r\n
\r\n
11/05/2022
2.40.1\r\n
    \r\n
  • IMP: Update in calculation engine
  • \r\n
  • FIX: Minor fixes in icons
  • \r\n
\r\n
09/05/2022
2.40\r\n
    \r\n
  • IMP: Utilities Flowsheet
  • \r\n
  • IMP: Chart for Constraint Ranking
  • \r\n
  • IMP: Mass Flowrate available on Stream property window
  • \r\n
  • IMP: HGO Hydrotreater constraints available in Optimization Settings Table
  • \r\n
  • IMP: Fluid Coker and HGO Hydrotreater available in Spreadsheet
  • \r\n
\r\n
05/05/2022
2.32\r\n
    \r\n
  • FIX: Minor improvements for HGO Hydrotreater
  • \r\n
  • FIX: Steam tab showing correct values on Utilities spreadsheet
  • \r\n
  • IMP: Level 2 Unit Operations available on KPI manager
  • \r\n
  • FIX: Cases with level 2 sent to Process Ecology after an error occurs working as expected
  • \r\n
  • FIX: Login page showing more descriptive messages
  • \r\n
  • FIX: Minor fixes for the Flowsheet diagram
  • \r\n
\r\n
05/04/2022
2.31\r\n
    \r\n
  • IMP: HGO Hydrotreater available on Upgrader subflowsheet
  • \r\n
  • IMP: Pipe available on Upgrader subflowsheet
  • \r\n
  • FIX: Minor improvements on Third Party Source block
  • \r\n
  • FIX: Minor improvements and bug fixes
  • \r\n
\r\n
28/02/2022
2.30\r\n
    \r\n
  • IMP: Mine subflowsheet
  • \r\n
  • IMP: Background solving for cases
  • \r\n
  • IMP: Fluid Coker available on Upgrader subflowsheet
  • \r\n
  • FIX: Fix cloning issues
  • \r\n
  • FIX: Minor improvements and bug fixes
  • \r\n
\r\n
10/02/2022
2.22\r\n
    \r\n
  • IMP: Added property KPIs to streams
  • \r\n
  • FIX: Fix cloning issues
  • \r\n
\r\n
26/10/2021
2.21\r\n
    \r\n
  • FIX: Change palette in subflowsheets
  • \r\n
  • FIX: Miscellaneous changes in calculations
  • \r\n
\r\n
21/10/2021
2.20\r\n
    \r\n
  • FIX: Change extraction block icons
  • \r\n
  • FIX: Fix stream creation quirks
  • \r\n
\r\n
19/10/2021
2.19\r\n
    \r\n
  • IMP: Added Extraction block
  • \r\n
\r\n
07/08/2021
2.18\r\n
    \r\n
  • IMP: Custom model for steam utility use estimation for units in Upgrader subflowsheet
  • \r\n
  • IMP: Search function for unit operations in flowsheet
  • \r\n
\r\n
26/08/2021
2.17.1\r\n
    \r\n
  • FIX: Fixed a problem regarding upgrader's maximum hydrogen production constraint
  • \r\n
\r\n
02/07/2021
2.17.0\r\n
    \r\n
  • \r\n IMP: Added a dropdown to Hydrotreaters to set either \"Properties\" or \"Blend Ratio\" as the\r\n constraint option\r\n
  • \r\n
  • IMP: Added \"Minimum API\" and \"Maximum CCR\" constraints to Hydrocracker and DCU
  • \r\n
  • IMP: Added \"Max flow rate\" constraint to Mine, SAGD and Diluent sources
  • \r\n
  • \r\n FIX: Fixed an issue causing the current value for the hydrotreater's maximum nitrogen constraint\r\n to appear empty\r\n
  • \r\n
  • \r\n FIX: Fixed an issue that caused the Hydrogen use to report 0 for Hydrotreaters when the constraint\r\n option was set to \"Properties\"\r\n
  • \r\n
\r\n
28/06/2021
2.16.0\r\n
    \r\n
  • IMP: Added an option in sankey chart to hide/show generic sinks.
  • \r\n
  • IMP: Separated 'utilities' tab in spreadsheet control in 'H2S Production' and 'utilities'.
  • \r\n
  • FIX: Fixed issue causing spreadsheet to freeze when the values were changed
  • \r\n
\r\n
21/06/2021
2.15.0\r\n
    \r\n
  • \r\n IMP: Added a dropdown to Commodity Tanks to set either \"Properties\" or \"Blend Ratio\" as the\r\n constraint option\r\n
  • \r\n
\r\n
16/06/2021
2.14.0\r\n
    \r\n
  • IMP: Added Utilities tab to Spreadsheet
  • \r\n
\r\n
15/06/2021
2.13.1\r\n
    \r\n
  • FIX: Minor bug fixed for calculation of recovered diluent cost
  • \r\n
\r\n
14/06/2021
2.13.0\r\n
    \r\n
  • IMP: Added utilities tab for Hydrotreater, Hydrocracker, DCU and VAC
  • \r\n
  • IMP: Added Utilities tab to Upgrader
  • \r\n
\r\n
09/06/2021
2.12.1\r\n
    \r\n
  • FIX: Solved an issue that caused the spreedsheet to freeze
  • \r\n
\r\n
03/06/2021
2.12.0\r\n
    \r\n
  • IMP: Added new port \"HGO\" to Hydrocracker
  • \r\n
\r\n
19/05/2021
2.11.1\r\n
    \r\n
  • IMP: Minor adjustments to ranking report to improve visibility
  • \r\n
\r\n
12/04/2021
2.11.0\r\n
    \r\n
  • IMP: Added constraint ranking to summary report
  • \r\n
\r\n
09/04/2021
2.10.2\r\n
    \r\n
  • FIX: Solved problem preventing the L2 sankey diagrams from loading
  • \r\n
\r\n
25/03/2021
2.10.1\r\n
    \r\n
  • FIX: Solved problem preventing the bitumen conversion yield value to be greater than 100
  • \r\n
\r\n
12/03/2021
2.10.0\r\n
    \r\n
  • IMP: Added Infeasibility report
  • \r\n
  • IMP: Added support for multi-product bitumen conversion block
  • \r\n
  • IMP: Sequential Linear Program (SLP) algorithm is set as default solver
  • \r\n
\r\n
11/03/2021
2.9.0\r\n
    \r\n
  • IMP: Allowed for multiple inlets in Upgraders with L2 model enabled
  • \r\n
\r\n
16/11/2020
2.8.1\r\n
    \r\n
  • FIX: Minor improvements and bug fixes
  • \r\n
\r\n
10/11/2020
2.8.0\r\n
    \r\n
  • IMP: Added Hydrocracker unit operation
  • \r\n
  • IMP: Added overview window
  • \r\n
  • FIX: Minor improvements and bug fixes
  • \r\n
\r\n
31/07/2020
2.7.0\r\n
    \r\n
  • IMP: Added Assay Manager
  • \r\n
  • IMP: Added Assay Manager to the Spreadsheet Component
  • \r\n
\r\n
21/07/2020
2.6.0\r\n
    \r\n
  • IMP: Added Sequential Linear Programming (SLP) as the default optimizer
  • \r\n
\r\n
20/07/2020
2.5.1\r\n
    \r\n
  • FIX: Fixed a problem causing the flowsheet to crash after adding some unit operations
  • \r\n
\r\n
13/07/2020
2.5.0\r\n
    \r\n
  • IMP: Improve creation of constraints in the calculation engine
  • \r\n
  • IMP: Revenue and BTCF are shown in Upgrader L1 property even if L2 model is used
  • \r\n
\r\n
08/07/2020
2.4.0\r\n
    \r\n
  • \r\n IMP: Added a new page to excel report and spreadsheet to list the commodity tanks within each\r\n upgrader level 2 model\r\n
  • \r\n
\r\n
22/06/2020
2.3.0\r\n
    \r\n
  • IMP: Added a checkbox to hydrotreaters to disable FeedSlate
  • \r\n
  • FIX: Fixed a problem causing some cases to return an error on solve
  • \r\n
\r\n
17/06/2020
2.2.1\r\n
    \r\n
  • IMP: General cleanup for multi-feed refineries
  • \r\n
  • FIX: Fixed a problem causing stream tooltips to sometimes display wrong information
  • \r\n
\r\n
08/06/2020
2.2.0\r\n
    \r\n
  • IMP: Added Range option for Feedslate constraint option
  • \r\n
  • FIX: Fixed the bug for Hydrotreater constraints
  • \r\n
\r\n
05/06/2020
2.1.1\r\n
    \r\n
  • \r\n FIX: Solved issue that prevented any property window to be closed after opening a mixer or\r\n splitter\r\n
  • \r\n
\r\n
02/06/2020
2.1.0\r\n
    \r\n
  • IMP: Allowed for multiple inlets in hydrotreater
  • \r\n
  • IMP: Added Recipe constraint in hydrotreater
  • \r\n
  • IMP: Added Minimum flow rate constraint to DRU, VAC, DCU, Hydrotreater, and Refinery blocks
  • \r\n
  • \r\n IMP: Modified economic calculations of Upgrader block (L1 Upgrader parameters are always used)\r\n
  • \r\n
\r\n
02/06/2020
2.0.1\r\n
    \r\n
  • IMP: Added Mass balance report in the excel report
  • \r\n
  • IMP: Added property constraint indicators in Commodity tanks
  • \r\n
  • IMP: Improved optimization settings table
  • \r\n
\r\n
20/05/2020
2.0.0\r\n
    \r\n
  • IMP: Added Level 2 modeling for Upgrader
  • \r\n
  • IMP: Added DRU, VAC, DCU, Hydrotreater blocks
  • \r\n
  • IMP: Added product tanks and blending blocks
  • \r\n
  • IMP: Updated characterization of assays
  • \r\n
  • IMP: Added assay manager
  • \r\n
\r\n
15/05/2020
1.4.0\r\n
    \r\n
  • IMP: Addition of Sankey chart.
  • \r\n
  • IMP: Spreadsheet functionality for OPTEA.
  • \r\n
\r\n
28/10/2019
1.3.0\r\n
    \r\n
  • CHANGE: Insights page redesign.
  • \r\n
  • IMP: Implemented grid/snap functionality in the diagram.
  • \r\n
  • IMP: Dynamic resizing of Mixers and Splitters based on their number of connections.
  • \r\n
  • IMP: Bulk property constraints for Refinery, Third party refinery and Upgrader.
  • \r\n
\r\n
08/11/2018
1.2.0\r\n
    \r\n
  • IMP: Renewable block.
  • \r\n
  • CHANGE: Default values for Bitumen conversion block.
  • \r\n
  • CHANGE: Added \"margin\" fields and \"Suncor profit percentage\" to Third Party Refinery.
  • \r\n
  • CHANGE: Added new block icons.
  • \r\n
\r\n
17/10/2018
1.1.0\r\n
    \r\n
  • IMP: Bitumen conversion block.
  • \r\n
  • IMP: Constraint violation indicator.
  • \r\n
  • IMP: Insights page on Summary Report.
  • \r\n
  • CHANGE: Model scaled to fit the screen upon loading.
  • \r\n
  • CHANGE: Tabular format for KPI manager.
  • \r\n
  • CHANGE: Smaller thickness for Streams with 0 Flowrate.
  • \r\n
\r\n
09/10/2018
1.0.1\r\n
    \r\n
  • IMP: Added a function for sending cases to Process Ecology when solve fails.
  • \r\n
  • IMP: Added Suncor OPTEA documentation as downloadable content.
  • \r\n
  • FIX: Removed Sept2017 SUGoal from Cogen methodology options.
  • \r\n
  • FIX: Improved overall diagram performance.
  • \r\n
\r\n
11/07/2018
1.0.0\r\n
    \r\n
  • First release
  • \r\n
\r\n
02/05/2018
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Forgot your password

\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n {{ error }}\r\n
\r\n
\r\n \r\n {{ success }}\r\n
\r\n
\r\n
\r\n \r\n
Username is not valid
\r\n
\r\n \r\n Cancel\r\n
\r\n
\r\n
\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Set your new password

\r\n
\r\n
\r\n \r\n
\r\n
\r\n {{ error }}\r\n
\r\n
\r\n {{ success }}\r\n
\r\n
\r\n
\r\n \r\n
Password is required
\r\n
\r\n
\r\n \r\n
Password is required
\r\n
\r\n \r\n Reset\r\n \r\n \r\n
\r\n Back\r\n
\r\n
\r\n
\r\n

\r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n
\r\n","/* eslint-disable no-console */\r\nimport { Component } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { AuthService } from '../_services/auth.service';\r\n\r\n@Component({\r\n selector: 'sob-forgot-password',\r\n templateUrl: './forgot-password.component.html',\r\n styleUrls: ['./forgot-password.component.css'],\r\n})\r\nexport class ForgotPasswordComponent {\r\n error: string;\r\n success: string;\r\n loading = false;\r\n username: string;\r\n token: string;\r\n userId: string;\r\n password: string;\r\n confirmPassword: string;\r\n\r\n constructor(private authenticationService: AuthService, private activatedRoute: ActivatedRoute) {\r\n this.activatedRoute.queryParams.subscribe(params => {\r\n this.token = params['token'];\r\n this.userId = params['u'];\r\n });\r\n }\r\n\r\n closeModal() {\r\n this.error = undefined; // <- WHY\r\n this.success = undefined;\r\n }\r\n\r\n sendPasswordRecovery() {\r\n if (!this.username) {\r\n return;\r\n }\r\n\r\n this.loading = true;\r\n this.authenticationService.sendPasswordRecovery(this.username).subscribe(\r\n () => {\r\n this.onSendPasswordRecoverySuccess();\r\n },\r\n error => {\r\n this.loading = false;\r\n if (error.error instanceof Error) {\r\n // A client-side or network error occurred. Handle it accordingly.\r\n this.error = `An error occurred: ${error.error.message}`;\r\n console.error('An error occurred:', error.error.message);\r\n } else if (error.status === 400) {\r\n console.error(error);\r\n this.success =\r\n \"We've sent a verification email with the instructions to reset your password to your email address\";\r\n } else {\r\n console.error('An error occurred:');\r\n console.error(error);\r\n console.error(`Backend returned code ${error.status}, body was: ${error.error}`);\r\n }\r\n }\r\n );\r\n }\r\n\r\n onSendPasswordRecoverySuccess() {\r\n this.loading = false;\r\n this.success = \"We've sent a verification email with the instructions to reset your password to your email address\";\r\n }\r\n\r\n setNewPassword() {\r\n this.loading = true;\r\n if (this.password === this.confirmPassword) {\r\n this.error = '';\r\n this.authenticationService.setNewPassword(this.userId, this.token, this.password).subscribe(\r\n () => {\r\n this.loading = false;\r\n this.success = 'Your password has been changed successfully';\r\n },\r\n error => {\r\n this.loading = false;\r\n this.error =\r\n // eslint-disable-next-line max-len\r\n \"There's been an error while trying to update your password, or the token is incorrect, please try again later\";\r\n if (error.error instanceof Error) {\r\n // A client-side or network error occurred. Handle it accordingly.\r\n this.error = `An error occurred: ${error.error.message}`;\r\n console.error('An error occurred:', error.error.message);\r\n } else if (error.status === 400) {\r\n console.error(error);\r\n } else {\r\n console.error('An error occurred:');\r\n console.error(error);\r\n console.error(`Backend returned code ${error.status}, body was: ${error.error}`);\r\n }\r\n }\r\n );\r\n } else {\r\n this.error = 'Passwords do not match';\r\n }\r\n }\r\n}\r\n","
\r\n \r\n Latest Access by User\r\n This data is wiped out when the application stops\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
UsernameLatest Access
{{ latestAccess.username }}\r\n \r\n \r\n {{ latestAccess.ago.toUpperCase() }}\r\n \r\n \r\n \r\n {{ latestAccess.lastAccessDate }}\r\n \r\n
\r\n
\r\n","import { Component, OnDestroy, OnInit } from '@angular/core';\r\nimport * as moment from 'moment';\r\nimport { map } from 'rxjs/operators';\r\nimport { SubSink } from 'subsink';\r\nimport { LatestUserAccessService } from '../_services/latest-user-access.service';\r\n\r\n@Component({\r\n selector: 'sob-latest-access',\r\n templateUrl: './latest-access.component.html',\r\n styleUrls: ['./latest-access.component.css'],\r\n})\r\nexport class LatestAccessComponent implements OnInit, OnDestroy {\r\n latestAccessList: LatestUserAccess[] = [];\r\n\r\n private subSink = new SubSink();\r\n\r\n constructor(private latestUserAccessService: LatestUserAccessService) {}\r\n\r\n ngOnInit(): void {\r\n this.subSink.add(\r\n this.latestUserAccessService\r\n .getLatestAccesses()\r\n .pipe(map(latestAccesses => this.onLatestAccessesReceived(latestAccesses)))\r\n .subscribe(latestAccessList => {\r\n this.latestAccessList = latestAccessList;\r\n })\r\n );\r\n }\r\n\r\n private onLatestAccessesReceived(latestAccesses: any) {\r\n const latestAccessList: LatestUserAccess[] = [];\r\n\r\n for (const key of Object.keys(latestAccesses)) {\r\n const momentDate = moment(latestAccesses[key]);\r\n\r\n latestAccessList.push({\r\n lastAccessDate: momentDate.format('YYYY/MM/DD hh:mm:ss'),\r\n username: key,\r\n ago: momentDate.fromNow(),\r\n });\r\n }\r\n\r\n return latestAccessList;\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subSink.unsubscribe();\r\n }\r\n}\r\n\r\ninterface LatestUserAccess {\r\n username: string;\r\n lastAccessDate: string;\r\n ago: string;\r\n}\r\n","import { Observable } from 'rxjs';\r\nimport { Injectable } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, CanActivate, CanLoad, Router, RouterStateSnapshot } from '@angular/router';\r\nimport { AuthService } from '../_services/auth.service';\r\n\r\n@Injectable()\r\nexport class RoleAdminGuard implements CanActivate, CanLoad {\r\n private readonly token: string;\r\n private readonly role: string;\r\n\r\n constructor(private router: Router, private authService: AuthService) {\r\n this.token = authService.getToken();\r\n this.role = authService.getRole();\r\n }\r\n\r\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {\r\n if (this.authService.isAuthenticated() && this.role === 'ROLE_ADMIN') {\r\n return true;\r\n }\r\n this.router.navigate(['/login'], { queryParams: { returnUrl: state.url } });\r\n return false;\r\n }\r\n\r\n canLoad(): boolean | Observable | Promise {\r\n if (this.authService.isAuthenticated() && this.role === 'ROLE_ADMIN') {\r\n return true;\r\n }\r\n\r\n this.router.navigate(['/login'], { queryParams: { returnUrl: '/' } });\r\n return false;\r\n }\r\n}\r\n","import { Routes, RouterModule } from '@angular/router';\r\nimport { SignupComponent } from './signup/signup.component';\r\nimport { FlowsheetComponent } from './flowsheet/flowsheet.component';\r\n\r\nimport { LoginComponent } from './login/login.component';\r\nimport { AuthGuard } from './_guards/auth.guard';\r\nimport { ChangelogComponent } from './changelog/changelog.component';\r\nimport { ForgotPasswordComponent } from './forgot-password/forgot-password.component';\r\nimport { LatestAccessComponent } from './latest-access/latest-access.component';\r\nimport { RoleAdminGuard } from './_guards/roleAdmin.guard';\r\n\r\nconst appRoutes: Routes = [\r\n // This will redirect to login.\r\n { path: '', component: FlowsheetComponent, canActivate: [AuthGuard] },\r\n { path: 'versionControl', component: ChangelogComponent, canActivate: [AuthGuard] },\r\n { path: 'login', component: LoginComponent },\r\n { path: 'login/:code', component: LoginComponent },\r\n { path: 'signup', component: SignupComponent },\r\n { path: 'forgot-password', component: ForgotPasswordComponent },\r\n { path: 'resetPassword', component: ForgotPasswordComponent },\r\n { path: 'latest-access', component: LatestAccessComponent, canActivate: [RoleAdminGuard] },\r\n // otherwise redirect to home, which will redirect to login here :/\r\n { path: '**', redirectTo: '' },\r\n];\r\n\r\nexport const routing = RouterModule.forRoot(appRoutes, {});\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { CodeEditorComponent } from './code-editor.component';\r\nimport { CodeEditorService } from './code-editor.service';\r\nimport { OpenCodeEditorButtonComponent } from './open-code-editor-button/open-code-editor-button.component';\r\n\r\n@NgModule({\r\n declarations: [CodeEditorComponent, OpenCodeEditorButtonComponent],\r\n imports: [CommonModule, FormsModule],\r\n exports: [CodeEditorComponent, OpenCodeEditorButtonComponent],\r\n providers: [CodeEditorService],\r\n})\r\nexport class CodeEditorModule {}\r\n","import { Mapper } from '../../../_models/_interfaces/mapper';\r\nimport { SimulationVariable } from '../../../_models';\r\n\r\n/**\r\n * Maps a numeric string to a SimulationVariable value in default unit\r\n */\r\nexport class StringToSimulationVariableMapper implements Mapper {\r\n map(source: string, destination: SimulationVariable) {\r\n const value = parseFloat(source);\r\n\r\n if (!isNaN(value)) {\r\n destination.value = value;\r\n destination.unit = destination.getDefaultUnit();\r\n\r\n destination.value = destination.convertToInternalUnit();\r\n } else {\r\n destination.value = undefined;\r\n }\r\n }\r\n}\r\n","import { SagdSource } from '../../../../_models/_unit-operations/sagd-source';\r\nimport { SimulationVariable } from '../../../../_models';\r\nimport { Mapper } from '../../../../_models/_interfaces/mapper';\r\nimport { StringToSimulationVariableMapper } from '../string-to-simulation-variable-mapper';\r\n\r\nexport enum SagdSourceExcelIndexes {\r\n VOLUMETRIC_FLOW_RATE = 4,\r\n GHG_INTENSITY = 5,\r\n COGEN_ELECTRICITY_GENERATION = 7,\r\n NET_ELECTRICITY_EXPORT = 8,\r\n COGEN_INTENSITY = 9,\r\n GRID_INTENSITY = 10,\r\n MASS_DENSITY = 14,\r\n CCR = 15,\r\n SULFUR = 16,\r\n NITROGEN = 17,\r\n LIGHT_ENDS = 20,\r\n NAPHTA = 21,\r\n DISTILLATE = 22,\r\n GAS_OIL = 23,\r\n VACUUM_RESIDUE = 24,\r\n PRICE = 27,\r\n CAPEX_AMORTIZED = 28,\r\n OPEX_FIXED = 29,\r\n OPEX_VAR = 30,\r\n OPEX_GAS_DIESEL = 31,\r\n OPEX_POWER = 32,\r\n}\r\n\r\nexport class ArrayToSagdSourceMapper implements Mapper {\r\n private readonly simulationVariableMapper: Mapper;\r\n\r\n constructor() {\r\n this.simulationVariableMapper = new StringToSimulationVariableMapper();\r\n }\r\n\r\n map(source: string[], destination: SagdSource) {\r\n this.simulationVariableMapper.map(\r\n source[SagdSourceExcelIndexes.VOLUMETRIC_FLOW_RATE],\r\n destination.volumetricFlowrate\r\n );\r\n this.simulationVariableMapper.map(source[SagdSourceExcelIndexes.GHG_INTENSITY], destination.ghgIntensity);\r\n this.simulationVariableMapper.map(\r\n source[SagdSourceExcelIndexes.COGEN_ELECTRICITY_GENERATION],\r\n destination.cogenElectricityGeneration\r\n );\r\n this.simulationVariableMapper.map(\r\n source[SagdSourceExcelIndexes.NET_ELECTRICITY_EXPORT],\r\n destination.netElectricityExport\r\n );\r\n this.simulationVariableMapper.map(source[SagdSourceExcelIndexes.COGEN_INTENSITY], destination.cogenIntensity);\r\n this.simulationVariableMapper.map(source[SagdSourceExcelIndexes.GRID_INTENSITY], destination.gridIntensity);\r\n\r\n this.simulationVariableMapper.map(source[SagdSourceExcelIndexes.PRICE], destination.price);\r\n this.simulationVariableMapper.map(source[SagdSourceExcelIndexes.CAPEX_AMORTIZED], destination.capexAmortized);\r\n this.simulationVariableMapper.map(source[SagdSourceExcelIndexes.OPEX_FIXED], destination.opexFixed);\r\n this.simulationVariableMapper.map(source[SagdSourceExcelIndexes.OPEX_VAR], destination.opexVar);\r\n this.simulationVariableMapper.map(source[SagdSourceExcelIndexes.OPEX_GAS_DIESEL], destination.opexGasDiesel);\r\n this.simulationVariableMapper.map(source[SagdSourceExcelIndexes.OPEX_POWER], destination.opexPower);\r\n }\r\n}\r\n","import { Mapper } from '../../../../_models/_interfaces/mapper';\r\nimport { DiluentSource } from '../../../../_models/_unit-operations/diluent-source';\r\nimport { StringToSimulationVariableMapper } from '../string-to-simulation-variable-mapper';\r\nimport { SimulationVariable } from '../../../../_models';\r\n\r\nexport enum DiluentSourceExcelIndexes {\r\n VOLUMETRIC_FLOW_RATE = 4,\r\n GHG_INTENSITY = 5,\r\n COGEN_ELECTRICITY_GENERATION = 7,\r\n NET_ELECTRICITY_EXPORT = 8,\r\n COGEN_INTENSITY = 9,\r\n GRID_INTENSITY = 10,\r\n MASS_DENSITY = 14,\r\n CCR = 15,\r\n SULFUR = 16,\r\n NITROGEN = 17,\r\n LIGHT_ENDS = 20,\r\n NAPHTA = 21,\r\n DISTILLATE = 22,\r\n GAS_OIL = 23,\r\n VACUUM_RESIDUE = 24,\r\n}\r\n\r\nexport class ArrayToDiluentSourceMapper implements Mapper {\r\n private readonly simulationVariableMapper: Mapper;\r\n\r\n constructor() {\r\n this.simulationVariableMapper = new StringToSimulationVariableMapper();\r\n }\r\n\r\n map(source: string[], destination: DiluentSource) {\r\n this.simulationVariableMapper.map(\r\n source[DiluentSourceExcelIndexes.VOLUMETRIC_FLOW_RATE],\r\n destination.volumetricFlowrate\r\n );\r\n this.simulationVariableMapper.map(source[DiluentSourceExcelIndexes.GHG_INTENSITY], destination.ghgIntensity);\r\n }\r\n}\r\n","import { Mapper } from '../../../../_models/_interfaces/mapper';\r\nimport { SimulationVariable } from '../../../../_models';\r\nimport { StringToSimulationVariableMapper } from '../string-to-simulation-variable-mapper';\r\nimport { MineSource } from '../../../../_models/_unit-operations/mine-source';\r\n\r\nexport enum MineSourceExcelIndexes {\r\n VOLUMETRIC_FLOW_RATE = 4,\r\n GHG_INTENSITY = 5,\r\n COGEN_ELECTRICITY_GENERATION = 7,\r\n NET_ELECTRICITY_EXPORT = 8,\r\n COGEN_INTENSITY = 9,\r\n GRID_INTENSITY = 10,\r\n MASS_DENSITY = 14,\r\n CCR = 15,\r\n SULFUR = 16,\r\n NITROGEN = 17,\r\n LIGHT_ENDS = 20,\r\n NAPHTA = 21,\r\n DISTILLATE = 22,\r\n GAS_OIL = 23,\r\n VACUUM_RESIDUE = 24,\r\n PRICE = 27,\r\n CAPEX_AMORTIZED = 28,\r\n OPEX_FIXED = 29,\r\n OPEX_VAR = 30,\r\n OPEX_GAS_DIESEL = 31,\r\n OPEX_POWER = 32,\r\n}\r\n\r\nexport class ArrayToMineSourceMapper implements Mapper {\r\n private readonly simulationVariableMapper: Mapper;\r\n\r\n constructor() {\r\n this.simulationVariableMapper = new StringToSimulationVariableMapper();\r\n }\r\n\r\n map(source: string[], destination: MineSource) {\r\n this.simulationVariableMapper.map(\r\n source[MineSourceExcelIndexes.VOLUMETRIC_FLOW_RATE],\r\n destination.volumetricFlowrate\r\n );\r\n this.simulationVariableMapper.map(source[MineSourceExcelIndexes.GHG_INTENSITY], destination.ghgIntensity);\r\n this.simulationVariableMapper.map(\r\n source[MineSourceExcelIndexes.COGEN_ELECTRICITY_GENERATION],\r\n destination.cogenElectricityGeneration\r\n );\r\n this.simulationVariableMapper.map(\r\n source[MineSourceExcelIndexes.NET_ELECTRICITY_EXPORT],\r\n destination.netElectricityExport\r\n );\r\n this.simulationVariableMapper.map(source[MineSourceExcelIndexes.COGEN_INTENSITY], destination.cogenIntensity);\r\n this.simulationVariableMapper.map(source[MineSourceExcelIndexes.GRID_INTENSITY], destination.gridIntensity);\r\n\r\n this.simulationVariableMapper.map(source[MineSourceExcelIndexes.PRICE], destination.price);\r\n this.simulationVariableMapper.map(source[MineSourceExcelIndexes.CAPEX_AMORTIZED], destination.capexAmortized);\r\n this.simulationVariableMapper.map(source[MineSourceExcelIndexes.OPEX_FIXED], destination.opexFixed);\r\n this.simulationVariableMapper.map(source[MineSourceExcelIndexes.OPEX_VAR], destination.opexVar);\r\n this.simulationVariableMapper.map(source[MineSourceExcelIndexes.OPEX_GAS_DIESEL], destination.opexGasDiesel);\r\n this.simulationVariableMapper.map(source[MineSourceExcelIndexes.OPEX_POWER], destination.opexPower);\r\n }\r\n}\r\n","import { Mapper } from '../../../_models/_interfaces/mapper';\r\nimport { SimulationVariable } from '../../../_models';\r\nimport { StringToSimulationVariableMapper } from './string-to-simulation-variable-mapper';\r\nimport { ThirdPartySource } from '../../../_models/_unit-operations/third-party-source';\r\n\r\nexport enum ThirdPartySourceExcelIndexes {\r\n VOLUMETRIC_FLOW_RATE = 4,\r\n GHG_INTENSITY = 5,\r\n COGEN_ELECTRICITY_GENERATION = 7,\r\n NET_ELECTRICITY_EXPORT = 8,\r\n COGEN_INTENSITY = 9,\r\n GRID_INTENSITY = 10,\r\n MASS_DENSITY = 14,\r\n CCR = 15,\r\n SULFUR = 16,\r\n NITROGEN = 17,\r\n LIGHT_ENDS = 20,\r\n NAPHTA = 21,\r\n DISTILLATE = 22,\r\n GAS_OIL = 23,\r\n VACUUM_RESIDUE = 24,\r\n PRICE = 27,\r\n}\r\n\r\nexport class ArrayToThirdPartySourceMapper implements Mapper {\r\n private readonly simulationVariableMapper: Mapper;\r\n\r\n constructor() {\r\n this.simulationVariableMapper = new StringToSimulationVariableMapper();\r\n }\r\n\r\n map(source: string[], destination: ThirdPartySource) {\r\n this.simulationVariableMapper.map(\r\n source[ThirdPartySourceExcelIndexes.VOLUMETRIC_FLOW_RATE],\r\n destination.volumetricFlowrate\r\n );\r\n this.simulationVariableMapper.map(source[ThirdPartySourceExcelIndexes.GHG_INTENSITY], destination.ghgIntensity);\r\n this.simulationVariableMapper.map(source[ThirdPartySourceExcelIndexes.PRICE], destination.price);\r\n }\r\n}\r\n","import { OffshoreSource } from '../../../../_models/_unit-operations/offshore-source';\r\nimport { Mapper } from '../../../../_models/_interfaces/mapper';\r\nimport { SimulationVariable } from '../../../../_models';\r\nimport { StringToSimulationVariableMapper } from '../string-to-simulation-variable-mapper';\r\n\r\nexport enum OffshoreSourceExcelIndexes {\r\n VOLUMETRIC_FLOW_RATE = 4,\r\n GHG_INTENSITY = 5,\r\n COGEN_ELECTRICITY_GENERATION = 7,\r\n NET_ELECTRICITY_EXPORT = 8,\r\n COGEN_INTENSITY = 9,\r\n GRID_INTENSITY = 10,\r\n MASS_DENSITY = 14,\r\n CCR = 15,\r\n SULFUR = 16,\r\n NITROGEN = 17,\r\n LIGHT_ENDS = 20,\r\n NAPHTA = 21,\r\n DISTILLATE = 22,\r\n GAS_OIL = 23,\r\n VACUUM_RESIDUE = 24,\r\n PRICE = 27,\r\n CAPEX_AMORTIZED = 28,\r\n OPEX_FIXED = 29,\r\n OPEX_VAR = 30,\r\n OPEX_GAS_DIESEL = 31,\r\n OPEX_POWER = 32,\r\n}\r\n\r\nexport class ArrayToOffshoreSourceMapper implements Mapper {\r\n private readonly simulationVariableMapper: Mapper;\r\n\r\n constructor() {\r\n this.simulationVariableMapper = new StringToSimulationVariableMapper();\r\n }\r\n\r\n map(source: string[], destination: OffshoreSource) {\r\n this.simulationVariableMapper.map(\r\n source[OffshoreSourceExcelIndexes.VOLUMETRIC_FLOW_RATE],\r\n destination.volumetricFlowrate\r\n );\r\n this.simulationVariableMapper.map(source[OffshoreSourceExcelIndexes.GHG_INTENSITY], destination.ghgIntensity);\r\n this.simulationVariableMapper.map(\r\n source[OffshoreSourceExcelIndexes.COGEN_ELECTRICITY_GENERATION],\r\n destination.cogenElectricityGeneration\r\n );\r\n\r\n this.simulationVariableMapper.map(\r\n source[OffshoreSourceExcelIndexes.NET_ELECTRICITY_EXPORT],\r\n destination.netElectricityExport\r\n );\r\n this.simulationVariableMapper.map(source[OffshoreSourceExcelIndexes.COGEN_INTENSITY], destination.cogenIntensity);\r\n this.simulationVariableMapper.map(source[OffshoreSourceExcelIndexes.GRID_INTENSITY], destination.gridIntensity);\r\n\r\n this.simulationVariableMapper.map(source[OffshoreSourceExcelIndexes.PRICE], destination.price);\r\n this.simulationVariableMapper.map(source[OffshoreSourceExcelIndexes.CAPEX_AMORTIZED], destination.capexAmortized);\r\n this.simulationVariableMapper.map(source[OffshoreSourceExcelIndexes.OPEX_FIXED], destination.opexFixed);\r\n this.simulationVariableMapper.map(source[OffshoreSourceExcelIndexes.OPEX_VAR], destination.opexVar);\r\n this.simulationVariableMapper.map(source[OffshoreSourceExcelIndexes.OPEX_GAS_DIESEL], destination.opexGasDiesel);\r\n this.simulationVariableMapper.map(source[OffshoreSourceExcelIndexes.OPEX_POWER], destination.opexPower);\r\n }\r\n}\r\n","import { Mapper } from '../../../_models/_interfaces/mapper';\r\nimport { Upgrader } from '../../../_models/_unit-operations/upgrader';\r\nimport { SimulationVariable } from '../../../_models';\r\nimport { StringToSimulationVariableMapper } from './string-to-simulation-variable-mapper';\r\n\r\nexport enum UpgraderExcelIndexes {\r\n CCR_REMOVAL = 5,\r\n NITROGEN_REMOVAL = 6,\r\n SULFUR_REMOVAL = 7,\r\n SWEET_PRODUCT_RATIO = 8,\r\n SWEET_GHG_INTENSITY = 9,\r\n SOUR_GHG_INTENSITY = 10,\r\n CAPACITY = 11,\r\n COGEN_ELECTRICITY_GENERATION = 13,\r\n NET_ELECTRICITY_EXPORT = 14,\r\n COGEN_INTENSITY = 15,\r\n GRID_INTENSITY = 16,\r\n SWEET_PRODUCT_PRICE = 19,\r\n SOUR_PRODUCT_PRICE = 20,\r\n CAPEX_AMORTIZED = 21,\r\n OPEX_FIXED = 22,\r\n OPEX_VAR = 23,\r\n OPEX_GAS_DIESEL = 24,\r\n OPEX_POWER = 25,\r\n}\r\n\r\nexport class ArrayToUpgraderMapper implements Mapper {\r\n private readonly simulationVariableMapper: Mapper;\r\n\r\n constructor() {\r\n this.simulationVariableMapper = new StringToSimulationVariableMapper();\r\n }\r\n\r\n map(source: string[], destination: Upgrader) {\r\n this.simulationVariableMapper.map(source[UpgraderExcelIndexes.CCR_REMOVAL], destination.ccrRemoval);\r\n this.simulationVariableMapper.map(source[UpgraderExcelIndexes.NITROGEN_REMOVAL], destination.nitrogenRemoval);\r\n this.simulationVariableMapper.map(source[UpgraderExcelIndexes.SULFUR_REMOVAL], destination.sulfurRemoval);\r\n this.simulationVariableMapper.map(source[UpgraderExcelIndexes.SWEET_PRODUCT_RATIO], destination.sweetProductRatio);\r\n this.simulationVariableMapper.map(source[UpgraderExcelIndexes.SWEET_GHG_INTENSITY], destination.sweetGhgIntensity);\r\n this.simulationVariableMapper.map(source[UpgraderExcelIndexes.SOUR_GHG_INTENSITY], destination.sourGhgIntensity);\r\n this.simulationVariableMapper.map(source[UpgraderExcelIndexes.CAPACITY], destination.capacity);\r\n\r\n this.simulationVariableMapper.map(\r\n source[UpgraderExcelIndexes.COGEN_ELECTRICITY_GENERATION],\r\n destination.cogenElectricityGeneration\r\n );\r\n this.simulationVariableMapper.map(\r\n source[UpgraderExcelIndexes.NET_ELECTRICITY_EXPORT],\r\n destination.netElectricityExport\r\n );\r\n this.simulationVariableMapper.map(source[UpgraderExcelIndexes.COGEN_INTENSITY], destination.cogenIntensity);\r\n this.simulationVariableMapper.map(source[UpgraderExcelIndexes.GRID_INTENSITY], destination.gridIntensity);\r\n\r\n this.simulationVariableMapper.map(source[UpgraderExcelIndexes.SWEET_PRODUCT_PRICE], destination.sweetProductPrice);\r\n this.simulationVariableMapper.map(source[UpgraderExcelIndexes.SOUR_PRODUCT_PRICE], destination.sourProductPrice);\r\n this.simulationVariableMapper.map(source[UpgraderExcelIndexes.CAPEX_AMORTIZED], destination.capexAmortized);\r\n this.simulationVariableMapper.map(source[UpgraderExcelIndexes.OPEX_FIXED], destination.opexFixed);\r\n this.simulationVariableMapper.map(source[UpgraderExcelIndexes.OPEX_VAR], destination.opexVar);\r\n this.simulationVariableMapper.map(source[UpgraderExcelIndexes.OPEX_GAS_DIESEL], destination.opexGasDiesel);\r\n this.simulationVariableMapper.map(source[UpgraderExcelIndexes.OPEX_POWER], destination.opexPower);\r\n }\r\n}\r\n","import { Mapper } from '../../../_models/_interfaces/mapper';\r\nimport { Pipe } from '../../../_models/_unit-operations/pipe';\r\nimport { SimulationVariable } from '../../../_models';\r\nimport { StringToSimulationVariableMapper } from './string-to-simulation-variable-mapper';\r\n\r\nexport enum PipeExcelIndexes {\r\n PIPE_LENGTH = 5,\r\n PRESSURE_DROP = 6,\r\n GHG_INTENSITY_PER_MASS_DISTANCE = 7,\r\n PIPE_DENSITY_SPEC = 8,\r\n CAPACITY = 9,\r\n OPEX_FIXED = 12,\r\n OPEX_VAR = 13,\r\n}\r\n\r\nexport class ArrayToPipeMapper implements Mapper {\r\n private readonly simulationVariableMapper: Mapper;\r\n\r\n constructor() {\r\n this.simulationVariableMapper = new StringToSimulationVariableMapper();\r\n }\r\n\r\n map(source: string[], destination: Pipe) {\r\n this.simulationVariableMapper.map(source[PipeExcelIndexes.PIPE_LENGTH], destination.pipeLength);\r\n this.simulationVariableMapper.map(source[PipeExcelIndexes.PRESSURE_DROP], destination.pressureDrop);\r\n\r\n this.simulationVariableMapper.map(\r\n source[PipeExcelIndexes.GHG_INTENSITY_PER_MASS_DISTANCE],\r\n destination.ghgIntensityPerMassDistance\r\n );\r\n\r\n this.simulationVariableMapper.map(source[PipeExcelIndexes.PIPE_DENSITY_SPEC], destination.pipeDensitySpec);\r\n this.simulationVariableMapper.map(source[PipeExcelIndexes.CAPACITY], destination.capacity);\r\n this.simulationVariableMapper.map(source[PipeExcelIndexes.OPEX_FIXED], destination.opexFixed);\r\n this.simulationVariableMapper.map(source[PipeExcelIndexes.OPEX_VAR], destination.opexVar);\r\n }\r\n}\r\n","import { Mapper } from '../../../../_models/_interfaces/mapper';\r\nimport { Refinery } from '../../../../_models/_unit-operations/refinery';\r\nimport { SimulationVariable } from '../../../../_models';\r\nimport { StringToSimulationVariableMapper } from '../string-to-simulation-variable-mapper';\r\n\r\nexport enum RefineryExcelIndexes {\r\n LIGHT_ENDS_MARGIN = 5,\r\n NAPHTHA_MARGIN = 6,\r\n DISTILLATE_MARGIN = 7,\r\n GAS_OIL_MARGIN = 8,\r\n VACUUM_RESIDUE_MARGIN = 9,\r\n CAPACITY = 10,\r\n CAPEX_AMORTIZED = 13,\r\n OPEX_FIXED = 14,\r\n OPEX_VAR = 15,\r\n OPEX_GAS_DIESEL = 16,\r\n OPEX_POWER = 17,\r\n}\r\n\r\nexport class ArrayToRefineryMapper implements Mapper {\r\n private readonly simulationVariableMapper: Mapper;\r\n\r\n constructor() {\r\n this.simulationVariableMapper = new StringToSimulationVariableMapper();\r\n }\r\n\r\n map(source: string[], destination: Refinery) {\r\n this.simulationVariableMapper.map(source[RefineryExcelIndexes.LIGHT_ENDS_MARGIN], destination.lightEndsMargin);\r\n this.simulationVariableMapper.map(source[RefineryExcelIndexes.NAPHTHA_MARGIN], destination.naphthaMargin);\r\n this.simulationVariableMapper.map(source[RefineryExcelIndexes.DISTILLATE_MARGIN], destination.distillateMargin);\r\n this.simulationVariableMapper.map(source[RefineryExcelIndexes.GAS_OIL_MARGIN], destination.gasOilMargin);\r\n this.simulationVariableMapper.map(\r\n source[RefineryExcelIndexes.VACUUM_RESIDUE_MARGIN],\r\n destination.vacuumResidueMargin\r\n );\r\n this.simulationVariableMapper.map(source[RefineryExcelIndexes.CAPACITY], destination.capacity);\r\n\r\n this.simulationVariableMapper.map(source[RefineryExcelIndexes.CAPEX_AMORTIZED], destination.capexAmortized);\r\n this.simulationVariableMapper.map(source[RefineryExcelIndexes.OPEX_FIXED], destination.opexFixed);\r\n this.simulationVariableMapper.map(source[RefineryExcelIndexes.OPEX_VAR], destination.opexVar);\r\n this.simulationVariableMapper.map(source[RefineryExcelIndexes.OPEX_GAS_DIESEL], destination.opexGasDiesel);\r\n this.simulationVariableMapper.map(source[RefineryExcelIndexes.OPEX_POWER], destination.opexPower);\r\n }\r\n}\r\n","import { ThirdPartyRefinery } from '../../../_models/_unit-operations/third-party-refinery';\r\nimport { Mapper } from '../../../_models/_interfaces/mapper';\r\nimport { SimulationVariable } from '../../../_models';\r\nimport { StringToSimulationVariableMapper } from './string-to-simulation-variable-mapper';\r\n\r\nexport enum ThirdPartyRefineryExcelIndexes {\r\n LIGHT_ENDS_MARGIN = 5,\r\n NAPHTHA_MARGIN = 6,\r\n DISTILLATE_MARGIN = 7,\r\n GAS_OIL_MARGIN = 8,\r\n VACUUM_RESIDUE_MARGIN = 9,\r\n CAPACITY = 10,\r\n}\r\n\r\nexport class ArrayToThirdPartyRefineryMapper implements Mapper {\r\n private readonly simulationVariableMapper: Mapper;\r\n\r\n constructor() {\r\n this.simulationVariableMapper = new StringToSimulationVariableMapper();\r\n }\r\n\r\n map(source: string[], destination: ThirdPartyRefinery) {\r\n this.simulationVariableMapper.map(\r\n source[ThirdPartyRefineryExcelIndexes.LIGHT_ENDS_MARGIN],\r\n destination.lightEndsMargin\r\n );\r\n this.simulationVariableMapper.map(source[ThirdPartyRefineryExcelIndexes.NAPHTHA_MARGIN], destination.naphthaMargin);\r\n this.simulationVariableMapper.map(\r\n source[ThirdPartyRefineryExcelIndexes.DISTILLATE_MARGIN],\r\n destination.distillateMargin\r\n );\r\n this.simulationVariableMapper.map(source[ThirdPartyRefineryExcelIndexes.GAS_OIL_MARGIN], destination.gasOilMargin);\r\n this.simulationVariableMapper.map(\r\n source[ThirdPartyRefineryExcelIndexes.VACUUM_RESIDUE_MARGIN],\r\n destination.vacuumResidueMargin\r\n );\r\n this.simulationVariableMapper.map(source[ThirdPartyRefineryExcelIndexes.CAPACITY], destination.capacity);\r\n }\r\n}\r\n","import { Mapper } from '../../../_models/_interfaces/mapper';\r\nimport { SuncorUnitOperation } from '../../../_models/_unit-operations/suncor-unit-operation';\r\nimport { SagdSource } from '../../../_models/_unit-operations/sagd-source';\r\nimport { ArrayToSagdSourceMapper } from './sources/array-to-sagd-source-mapper';\r\nimport { DiluentSource } from '../../../_models/_unit-operations/diluent-source';\r\nimport { ArrayToDiluentSourceMapper } from './sources/array-to-diluent-source-mapper';\r\nimport { MineSource } from '../../../_models/_unit-operations/mine-source';\r\nimport { ArrayToMineSourceMapper } from './sources/array-to-mine-source-mapper';\r\nimport { ThirdPartySource } from '../../../_models/_unit-operations/third-party-source';\r\nimport { ArrayToThirdPartySourceMapper } from './array-to-third-party-source-mapper';\r\nimport { OffshoreSource } from '../../../_models/_unit-operations/offshore-source';\r\nimport { ArrayToOffshoreSourceMapper } from './sources/array-to-offshore-source-mapper';\r\nimport { Upgrader } from '../../../_models/_unit-operations/upgrader';\r\nimport { ArrayToUpgraderMapper } from './array-to-upgrader-mapper';\r\nimport { Pipe } from '../../../_models/_unit-operations/pipe';\r\nimport { ArrayToPipeMapper } from './array-to-pipe-mapper';\r\nimport { Refinery } from '../../../_models/_unit-operations/refinery';\r\nimport { ArrayToRefineryMapper } from './refineries/array-to-refinery-mapper';\r\nimport { ThirdPartyRefinery } from '../../../_models/_unit-operations/third-party-refinery';\r\nimport { ArrayToThirdPartyRefineryMapper } from './array-to-third-party-refinery.mapper';\r\n\r\nexport class ArrayToUnitOperationMapper implements Mapper {\r\n private NAME_INDEX = 0;\r\n\r\n private readonly arrayToSagdSourceMapper: Mapper;\r\n private readonly arrayToDiluentSourceMapper: Mapper;\r\n private readonly arrayToMineSourceMapper: Mapper;\r\n private readonly arrayToThirdPartySourceMapper: Mapper;\r\n private readonly arrayToOffshoreSourceMapper: Mapper;\r\n private readonly arrayToUpgraderMapper: Mapper;\r\n private readonly arrayToPipeMapper: Mapper;\r\n private readonly arrayToRefineryMapper: Mapper;\r\n private readonly arrayToThirdPartyRefineryMapper: Mapper;\r\n\r\n constructor() {\r\n this.arrayToSagdSourceMapper = new ArrayToSagdSourceMapper();\r\n this.arrayToDiluentSourceMapper = new ArrayToDiluentSourceMapper();\r\n this.arrayToMineSourceMapper = new ArrayToMineSourceMapper();\r\n this.arrayToThirdPartySourceMapper = new ArrayToThirdPartySourceMapper();\r\n this.arrayToOffshoreSourceMapper = new ArrayToOffshoreSourceMapper();\r\n this.arrayToUpgraderMapper = new ArrayToUpgraderMapper();\r\n this.arrayToPipeMapper = new ArrayToPipeMapper();\r\n this.arrayToRefineryMapper = new ArrayToRefineryMapper();\r\n this.arrayToThirdPartyRefineryMapper = new ArrayToThirdPartyRefineryMapper();\r\n }\r\n\r\n map(source: string[], destination: SuncorUnitOperation) {\r\n if (source[this.NAME_INDEX]) {\r\n destination.name = source[this.NAME_INDEX];\r\n }\r\n\r\n if (destination instanceof SagdSource) {\r\n this.arrayToSagdSourceMapper.map(source, destination);\r\n } else if (destination instanceof DiluentSource) {\r\n this.arrayToDiluentSourceMapper.map(source, destination);\r\n } else if (destination instanceof MineSource) {\r\n this.arrayToMineSourceMapper.map(source, destination);\r\n } else if (destination instanceof ThirdPartySource) {\r\n this.arrayToThirdPartySourceMapper.map(source, destination);\r\n } else if (destination instanceof OffshoreSource) {\r\n this.arrayToOffshoreSourceMapper.map(source, destination);\r\n } else if (destination instanceof Upgrader) {\r\n this.arrayToUpgraderMapper.map(source, destination);\r\n } else if (destination instanceof Pipe) {\r\n this.arrayToPipeMapper.map(source, destination);\r\n } else if (destination instanceof Refinery) {\r\n this.arrayToRefineryMapper.map(source, destination);\r\n } else if (destination instanceof ThirdPartyRefinery) {\r\n this.arrayToThirdPartyRefineryMapper.map(source, destination);\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport * as XLSX from 'xlsx';\r\nimport { Case } from '../../_models';\r\nimport { SuncorUnitOperation } from '../../_models/_unit-operations/suncor-unit-operation';\r\nimport { ArrayToUnitOperationMapper } from './mappers/array-to-unit-operation-mapper';\r\n\r\n@Injectable()\r\nexport class ExcelUploadService {\r\n private readonly ID_INDEX = 2;\r\n\r\n private readonly SOURCES_SHEET = 0;\r\n private readonly UPGRADERS_SHEET = 1;\r\n private readonly PIPES_SHEET = 2;\r\n private readonly REFINERIES_SHEET = 3;\r\n\r\n private readonly arrayToUnitOperationMapper: ArrayToUnitOperationMapper;\r\n\r\n constructor() {\r\n this.arrayToUnitOperationMapper = new ArrayToUnitOperationMapper();\r\n }\r\n\r\n importExcelFile(c: Case, excelFile) {\r\n const wb = XLSX.read(excelFile, { type: 'binary', sheetStubs: true });\r\n\r\n const sources = this.readSheet(wb, this.SOURCES_SHEET);\r\n this.arrayOfArraysToUnitOperations(sources, c);\r\n\r\n const upgraders = this.readSheet(wb, this.UPGRADERS_SHEET);\r\n this.arrayOfArraysToUnitOperations(upgraders, c);\r\n\r\n const pipes = this.readSheet(wb, this.PIPES_SHEET);\r\n this.arrayOfArraysToUnitOperations(pipes, c);\r\n\r\n const refineries = this.readSheet(wb, this.REFINERIES_SHEET);\r\n this.arrayOfArraysToUnitOperations(refineries, c);\r\n }\r\n\r\n readSheet(wb: XLSX.WorkBook, sheetIndex: number): any[][] {\r\n const sheet = wb.Sheets[wb.SheetNames[sheetIndex]];\r\n const sheetAsJson = XLSX.utils.sheet_to_json(sheet, { header: 1 });\r\n return this.transposeArrayOfArrays(sheetAsJson as any[][]);\r\n }\r\n\r\n transposeArrayOfArrays(source: any[][]): any[][] {\r\n const transposedArray = [];\r\n\r\n // for some reason xlsx library ignores empty cells of the last column\r\n // which creates a jagged array of arrays that causes errors while mapping\r\n // assumes the first row has the maximum number of columns\r\n const numberOfColumns = source.length ? source[0].length : 0;\r\n\r\n for (let rowIndex = 0; rowIndex < source.length; rowIndex++) {\r\n const row = source[rowIndex];\r\n\r\n // un-jag the array\r\n if (source[rowIndex].length < numberOfColumns) {\r\n this.fillRow(source[rowIndex], numberOfColumns - source[rowIndex].length);\r\n }\r\n\r\n for (let cellIndex = 0; cellIndex < row.length; cellIndex++) {\r\n if (typeof transposedArray[cellIndex] === 'undefined') {\r\n transposedArray[cellIndex] = [];\r\n }\r\n\r\n const cellValue = row[cellIndex];\r\n transposedArray[cellIndex].push(cellValue);\r\n }\r\n }\r\n\r\n return transposedArray;\r\n }\r\n\r\n fillRow(array: string[], itemsToAdd: number) {\r\n for (let i = 0; i < itemsToAdd; i++) {\r\n array.push('');\r\n }\r\n }\r\n\r\n arrayOfArraysToUnitOperations(source: any[][], c: Case) {\r\n for (const sourceValues of source) {\r\n const unitOperation = c.getUnitOperation(sourceValues[this.ID_INDEX]) as SuncorUnitOperation;\r\n\r\n if (unitOperation) {\r\n this.arrayToUnitOperationMapper.map(sourceValues, unitOperation);\r\n }\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { OpenReactiveCodeEditorButtonComponent } from './open-reactive-code-editor-button/open-reactive-code-editor-button.component';\r\nimport { CodeEditorService } from '../code-editor/code-editor.service';\r\n\r\n@NgModule({\r\n declarations: [OpenReactiveCodeEditorButtonComponent],\r\n imports: [CommonModule, FormsModule, ReactiveFormsModule],\r\n exports: [OpenReactiveCodeEditorButtonComponent],\r\n providers: [CodeEditorService],\r\n})\r\nexport class ReactiveCodeEditorModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { RouterModule } from '@angular/router';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ColorPickerModule } from 'ngx-color-picker';\r\n\r\nimport { WjGridSheetModule } from '@grapecity/wijmo.angular2.grid.sheet';\r\nimport { WjNavModule } from '@grapecity/wijmo.angular2.nav';\r\nimport { WjInputModule } from '@grapecity/wijmo.angular2.input';\r\nimport { CoreService } from '../_services/core.service';\r\nimport { ApiService } from '../_services/api.service';\r\n\r\nimport { FlowsheetComponent } from './flowsheet.component';\r\nimport { FlowsheetNavbarComponent } from './flowsheet-navbar/flowsheet-navbar.component';\r\nimport { FlowsheetSideMenuComponent } from './flowsheet-side-menu/flowsheet-side-menu.component';\r\nimport { FlowsheetDiagramComponent } from './flowsheet-diagram/flowsheet-diagram.component';\r\n\r\nimport { KeysPipe } from '../shared/keys.pipe';\r\nimport { ThousandSeparatorPipe } from '../shared/thousand-separator.pipe';\r\nimport { UnitOperationFilterPipePipe } from '../shared/unit-operation-filter-pipe.pipe';\r\nimport { TitleCaseCompositionNamePipe } from '../shared/title-case-composition-name.pipe';\r\nimport { AlphanumericSortPipe } from '../shared/alphanumeric-sort.pipe';\r\nimport { FlowsheetDiagramPaletteComponent } from './flowsheet-diagram-palette/flowsheet-diagram-palette.component';\r\nimport { FlowsheetDiagramService } from '../_services/flowsheet-diagram/flowsheet-diagram.service';\r\nimport { FlowsheetDiagramTemplateProvider } from '../_services/flowsheet-diagram/flowsheet-diagram-template-provider.service';\r\nimport { FlowsheetService } from '../_services/flowsheet.service';\r\nimport { PropertyWindowComponent } from './property-window/property-window.component';\r\n\r\nimport { ValueInputComponent } from './shared/value-input/value-input.component';\r\nimport { UnitSelectComponent } from './shared/unit-select/unit-select.component';\r\nimport { SimVarInputComponent } from './shared/sim-var-input/sim-var-input.component';\r\nimport { MultipleSimVarInputDirective } from './shared/multiple-sim-var-input/multiple-sim-var-input.directive';\r\nimport { SimulationVariableArrayComponent } from './shared/simulation-variable-array/simulation-variable-array.component';\r\nimport { DiluentSourceComponent } from './property-window/diluent-source/diluent-source.component';\r\nimport { MineSourceComponent } from './property-window/mine-source/mine-source.component';\r\nimport { SagdSourceComponent } from './property-window/sagd-source/sagd-source.component';\r\nimport { RefineryComponent } from './property-window/refinery/refinery.component';\r\nimport { ThirdPartyRefineryComponent } from './property-window/third-party-refinery/third-party-refinery.component';\r\nimport { UpgraderComponent } from './property-window/upgrader/upgrader.component';\r\nimport { SplitterComponent } from './property-window/splitter/splitter.component';\r\n\r\nimport { MixerComponent } from './property-window/mixer/mixer.component';\r\nimport { CaseSettingsComponent } from './case-settings/case-settings.component';\r\nimport { MaterialStreamComponent } from './property-window/material-stream/material-stream.component';\r\nimport { CollapsePanelIconDirective } from './shared/collapse-panel-icon/collapse-panel-icon.directive';\r\nimport { CutComponent } from './shared/cut/cut.component';\r\nimport { SaveCaseFileComponent } from './save-case-file/save-case-file.component';\r\nimport { OpenCaseFileComponent } from './open-case-file/open-case-file.component';\r\nimport { BottomBarComponent } from './bottom-bar/bottom-bar.component';\r\nimport { LogManagerComponent } from './log-manager/log-manager.component';\r\nimport { LogManagerService } from './log-manager/log-manager.service';\r\nimport { KpiManagerComponent } from './case-study/kpi-manager/kpi-manager.component';\r\nimport { ExcelReportService } from '../_services/excel-report/excel-report.service';\r\nimport { ReportService } from '../_services/report.service';\r\nimport { SummaryReportComponent } from './summary-report/summary-report.component';\r\nimport { ObjectiveFunctionSelectorComponent } from './objective-function-selector/objective-function-selector.component';\r\nimport { ProgressIndicatorComponent } from './progress-indicator/progress-indicator.component';\r\nimport { ProgressIndicatorService } from './progress-indicator/progress-indicator.service';\r\nimport { ThirdPartySourceComponent } from './property-window/third-party-source/third-party-source.component';\r\nimport { ExcelReportComponent } from './excel-report/excel-report.component';\r\nimport { OptimizationSettingsTableComponent } from './optimization-settings-table/optimization-settings-table.component';\r\nimport { CaseStatusIndicatorComponent } from './case-status-indicator/case-status-indicator.component';\r\nimport { FlowsheetCommentsComponent } from './flowsheet-comments/flowsheet-comments.component';\r\nimport { OffshoreSourceComponent } from './property-window/offshore-source/offshore-source.component';\r\nimport { AboutWindowComponent } from './about-window/about-window.component';\r\nimport { SendCaseModalComponent } from './send-case-modal/send-case-modal.component';\r\nimport { SendCaseModalService } from './send-case-modal/send-case-modal.service';\r\nimport { DownloadManualService } from '../_services/download-manual.service';\r\nimport { CompatibilityService } from '../_services/compatibility-service';\r\nimport { CodeEditorModule } from './code-editor/code-editor.module';\r\nimport { InsightsComponent } from './summary-report/insights/insights.component';\r\nimport { SuncorRenewableBlockComponent } from './property-window/suncor-renewable-block/suncor-renewable-block.component';\r\nimport { SuncorRenewableComponent } from './property-window/suncor-renewable-block/suncor-renewable/suncor-renewable.component';\r\nimport { ExcelUploadComponent } from './excel-upload/excel-upload.component';\r\nimport { CaseListComponent } from './case-list/case-list.component';\r\nimport { GlobalKpiComponent } from './global-kpi/global-kpi.component';\r\nimport { GlobalKpiService } from '../_services/global-kpi.service';\r\nimport { CaseClonerService } from '../_services/case-cloner/case-cloner.service';\r\nimport { ExcelUploadService } from '../_services/excel-upload/excel-upload.service';\r\nimport { ProjectDeserializerService } from '../_services/project-deserializer/project-deserializer.service';\r\nimport { CaseDeserializerService } from '../_services/case-deserializer/case-deserializer.service';\r\nimport { FlowsheetSpreadsheetComponent } from './flowsheet-spreadsheet/flowsheet-spreadsheet.component';\r\nimport { FlexSheetSpreadsheetService } from '../_services/flowsheet-spreadsheet/flex-sheet-spreadsheet.service';\r\nimport { FlowsheetViewSelectorComponent } from './flowsheet-view-selector/flowsheet-view-selector.component';\r\nimport { SankeyDiagramComponent } from './sankey-diagram/sankey-diagram.component';\r\nimport { DiagramControlsComponent } from './diagram-controls/diagram-controls.component';\r\nimport { UncertaintyAnalysisComponent } from './case-study/uncertainty-analysis/uncertainty-analysis.component';\r\nimport { UncertainParameterRowComponent } from './case-study/uncertain-parameter-row/uncertain-parameter-row.component';\r\nimport { UncertaintyAnalysisService } from '../_services/case-study/uncertainty-analysis.service';\r\nimport { UncertaintyAnalysisApiService } from '../_services/case-study/uncertainty-analysis-api.service';\r\nimport { ParametricStudyComponent } from './case-study/parametric-study/parametric-study.component';\r\nimport { ParameterInputComponent } from './case-study/parameter-input/parameter-input.component';\r\nimport { ParametricStudyWindowComponent } from './case-study/parametric-study-window/parametric-study-window.component';\r\nimport { ParametricStudyResultsComponent } from './case-study/parametric-study-results/parametric-study-results.component';\r\nimport { SubFlowsheetInfoComponent } from './sub-flowsheet-info/sub-flowsheet-info.component';\r\nimport { DRUComponent } from './property-window/dru/dru.component';\r\nimport { VACComponent } from './property-window/vac/vac.component';\r\nimport { HydrotreaterComponent } from './property-window/hydrotreater/hydrotreater.component';\r\nimport { DCUComponent } from './property-window/dcu/dcu.component';\r\nimport { CutPropertiesComponent } from './shared/cut-properties/cut-properties.component';\r\nimport { CommodityTankComponent } from './property-window/commodity-tank/commodity-tank.component';\r\nimport { ProductTankComponent } from './property-window/product-tank/product-tank.component';\r\nimport { AssayManagerComponent } from './assay-manager/assay-manager.component';\r\nimport { AssaySelectorComponent } from './assay-manager/assay-selector/assay-selector.component';\r\nimport { RangeDistributionRatioVariableComponent } from './shared/range-distriburion-ratio-variable/range-distribution-ratio-variable.component';\r\nimport { HydrocrackerComponent } from './property-window/hydrocracker/hydrocracker.component';\r\nimport { ConstraintViolationReportComponent } from './constraint-violation-report/constraint-violation-report.component';\r\nimport { SankeyDiagramControlsComponent } from './sankey-diagram-controls/sankey-diagram-controls.component';\r\nimport { SearchModalComponent } from './search-modal/search-modal.component';\r\nimport { SteamUseUtilityComponent } from './shared/steam-use-utility/steam-use-utility.component';\r\nimport { SolveResultsTypeSelectorComponent } from './solve-results-type-selector/solve-results-type-selector.component';\r\nimport { NumberToUnitConverter } from '../_services/number-to-unit-converter.service';\r\nimport { GoJsPaletteUtils } from '../_services/flowsheet-palette/gojs-palette-utils';\r\nimport { UpgraderPaletteHandler } from '../_services/flowsheet-palette/upgrader-palette-handler';\r\nimport { FirstLevelPaletteModelProvider } from '../_services/flowsheet-palette/first-level-palette-model-provider';\r\nimport { UpgraderSubFlowsheetHandler } from '../_services/sub-flowsheet/upgrader-sub-flowsheet-handler.service';\r\nimport { ExtractionComponent } from './property-window/extraction/extraction.component';\r\nimport { MultiPeriodSettingsComponent } from './multi-period/multi-period-settings/multi-period-settings.component';\r\nimport { NumberValidationMessagesComponent } from './shared/number-validation-messages/number-validation-messages.component';\r\nimport { MultiPeriodInventorySettingsComponent } from './multi-period/multi-period-inventory-settings/multi-period-inventory-settings.component';\r\nimport { MultiPeriodParameterSelectorComponent } from './multi-period/multi-period-parameter-selector/multi-period-parameter-selector.component';\r\nimport { MultiPeriodParameterSpreadsheetComponent } from './multi-period/multi-period-parameter-spreadsheet/multi-period-parameter-spreadsheet.component';\r\nimport { MultiPeriodResultsComponent } from './multi-period/multi-period-results/multi-period-results.component';\r\nimport { ExtractionPaletteHandler } from '../_services/flowsheet-palette/extraction-palette-handler.service';\r\nimport { ExtractionSubFlowsheetHandler } from '../_services/sub-flowsheet/extraction-sub-flowsheet-handler.service';\r\nimport { ProjectFileLoaderService } from '../_services/project-deserializer/project-file-loader.service';\r\nimport { GoJsDiagramUtils } from '../_services/flowsheet-diagram/go-js-diagram-utils';\r\nimport { UtilitiesFlowsheetHandler } from '../_services/sub-flowsheet/utilities-flowsheet-handler';\r\nimport { UtilitiesPaletteHandler } from '../_services/flowsheet-palette/utilities-palette-handler';\r\nimport { UtilitiesFlowsheetTemplateProvider } from '../_services/flowsheet-diagram/utilities-flowsheet-template-provider';\r\nimport { WaterTurbineComponent } from './property-window/water-turbine/water-turbine.component';\r\nimport { WaterHeatExchangerComponent } from './property-window/water-heat-exchanger/water-heat-exchanger.component';\r\nimport { WaterHeaterComponent } from './property-window/water-heater/water-heater.component';\r\nimport { WaterCoolerComponent } from './property-window/water-cooler/water-cooler.component';\r\nimport { WaterTwoPhaseSeparatorComponent } from './property-window/water-two-phase-separator/water-two-phase-separator.component';\r\nimport { WaterPumpComponent } from './property-window/water-pump/water-pump.component';\r\nimport { WaterUtilityUnitOperationComponent } from './property-window/water-utility-unit-operation/water-utility-unit-operation.component';\r\nimport { WaterValveComponent } from './property-window/water-valve/water-valve.component';\r\nimport { WaterMixerComponent } from './property-window/water-mixer/water-mixer.component';\r\nimport { WaterSplitterComponent } from './property-window/water-splitter/water-splitter.component';\r\nimport { WaterSinkComponent } from './property-window/water-sink/water-sink.component';\r\nimport { WaterMaterialStreamComponent } from './property-window/water-material-stream/water-material-stream.component';\r\nimport { KpiManagerModalComponent } from './case-study/kpi-manager-modal/kpi-manager-modal.component';\r\nimport { FluidCokerComponent } from './property-window/fluid-coker/fluid-coker.component';\r\nimport { HydrogenPlantComponent } from './property-window/hydrogen-plant/hydrogen-plant.component';\r\nimport { HgoHydrotreaterComponent } from './property-window/hgo-hydrotreater/hgo-hydrotreater.component';\r\nimport { ReactiveSimVarInputDirective } from '../shared/reactive-sim-var-input.directive';\r\nimport { ReactiveUnitSelectComponent } from '../shared/reactive-unit-select/reactive-unit-select.component';\r\nimport { ReactiveVariableValueInputComponent } from '../shared/reactive-variable-value-input/reactive-variable-value-input.component';\r\nimport { WaterSourceImportComponent } from './property-window/water-source-import/water-source-import.component';\r\nimport { WaterSourceInformationStreamFormComponent } from './property-window/water-source-information-stream-form/water-source-information-stream-form.component';\r\nimport { WaterPipeComponent } from './property-window/water-pipe/water-pipe.component';\r\nimport { WaterSinkImportComponent } from './property-window/water-sink-import/water-sink-import.component';\r\nimport { WaterBoilerComponent } from './property-window/water-boiler/water-boiler.component';\r\nimport { WaterHeaderComponent } from './property-window/water-header/water-header.component';\r\nimport { ReactiveConstraintCheckBoxComponent } from '../shared/reactive-constraint-check-box/reactive-constraint-check-box.component';\r\nimport { SulfurPlantComponent } from './property-window/sulfur-plant/sulfur-plant.component';\r\nimport { ReactiveSteamUseUtilityComponent } from './shared/reactive-sob-steam-use-utility/reactive-steam-use-utility.component';\r\nimport { ReactiveCodeEditorModule } from './reactive-code-editor/reactive-code-editor.module';\r\nimport { DiagramCommentButtonComponent } from './diagram-comment-button/diagram-comment-button.component';\r\nimport { GasContributorComponent } from './shared/gas-contributor/gas-contributor.component';\r\nimport { UtilitiesSummaryReportComponent } from './summary-report/utilities-summary-report/utilities-summary-report.component';\r\nimport { UtilitiesSummaryReportChartComponent } from './summary-report/utilities-summary-report-chart/utilities-summary-report-chart.component';\r\nimport { FuelGasUtilityUnitOperationComponent } from './property-window/fuel-gas-utility/fuel-gas-utility-unit-operation.component';\r\nimport { FuelGasPaletteHandler } from '../_services/flowsheet-palette/fuel-gas-palette-handler';\r\nimport { FuelGasSubFlowsheetHandler } from '../_services/sub-flowsheet/fuel-gas-sub-flowsheet-handler';\r\nimport { ReactiveGasContributorComponent } from './shared/reactive-gas-contributor/reactive-gas-contributor.component';\r\nimport { WaterCogenerationComponent } from './property-window/water-cogeneration/water-cogeneration.component';\r\nimport { FuelGasFlowsheetTemplateProvider } from '../_services/flowsheet-diagram/fuel-gas-flowsheet-template-provider';\r\nimport { FuelGasFlareComponent } from './property-window/fuel-gas-flare/fuel-gas-flare.component';\r\nimport { FuelGasSinkComponent } from './property-window/fuel-gas-sink/fuel-gas-sink.component';\r\nimport { FuelGasSinkImportComponent } from './property-window/fuel-gas-sink-import/fuel-gas-sink-import.component';\r\nimport { EnergyStreamFormComponent } from './property-window/energy-stream-form/energy-stream-form.component';\r\nimport { FuelGasSourceImportComponent } from './property-window/fuel-gas-source-import/fuel-gas-source-import.component';\r\nimport { FuelGasSourceInformationStreamFormComponent } from './property-window/fuel-gas-source-information-stream-form/fuel-gas-source-information-stream-form.component';\r\nimport { FuelGasMixerComponent } from './property-window/fuel-gas-mixer/fuel-gas-mixer.component';\r\nimport { FuelGasSourceComponent } from './property-window/fuel-gas-source/fuel-gas-source.component';\r\nimport { FuelGasSplitterComponent } from './property-window/fuel-gas-splitter/fuel-gas-splitter.component';\r\nimport { FuelGasMaterialStreamComponent } from './property-window/fuel-gas-material-stream/fuel-gas-material-stream.component';\r\nimport { FuelGasAmineContactorComponent } from './property-window/fuel-gas-amine-contactor/fuel-gas-amine-contactor.component';\r\nimport { ReactiveMultipleVariableInputDirective } from '../shared/reactive-multiple-variable-input.directive';\r\nimport { FuelGasSummaryReportComponent } from './summary-report/fuel-gas-summary-report/fuel-gas-summary-report.component';\r\nimport { FuelGasSummaryReportChartComponent } from './summary-report/fuel-gas-summary-report-chart/fuel-gas-summary-report-chart.component';\r\nimport { GhgSummaryReportComponent } from './summary-report/ghg-summary-report/ghg-summary-report.component';\r\nimport { FlowsheetTreeService } from '../_services/sub-flowsheet/flowsheet-tree/flowsheet-tree.service';\r\nimport { UpgraderReportComponent } from './upgrader-report/upgrader-report.component';\r\nimport { GhgUpgraderReportComponent } from './upgrader-report/ghg-upgrader-report/ghg-upgrader-report.component';\r\nimport { ConstraintRankingComponent } from './upgrader-report/constraint-ranking/constraint-ranking.component';\r\nimport { FlowsheetTreeSelectorComponent } from './flowsheet-tree-selector/flowsheet-tree-selector.component';\r\nimport { ServerUtcDateService } from '../_services/helpers/server-utc-date.service';\r\nimport { CommentsService } from '../_services/helpers/comments.service';\r\nimport { UnitOperationCommentsComponent } from './unit-operation-comments/unit-operation-comments.component';\r\nimport { CaseCommentsComponent } from './case-comments/case-comments.component';\r\nimport { WaterSourceComponent } from './property-window/water-source/water-source.component';\r\nimport { PipeComponent } from './property-window/pipe/pipe.component';\r\nimport { ReactiveCutPropertiesComponent } from './shared/reactive-cut-properties/reactive-cut-properties.component';\r\nimport { ReactiveCutComponent } from './shared/reactive-cut/reactive-cut.component';\r\nimport { BulkPropertiesComponent } from './shared/bulk-properties/bulk-properties.component';\r\nimport { CompositionComponent } from './shared/composition/composition.component';\r\nimport { MultiperiodExcelReportComponent } from './multiperiod-excel-report/multiperiod-excel-report.component';\r\nimport { CaseStudyExcelReportComponent } from './case-study-excel-report/case-study-excel-report.component';\r\nimport { LgoHydrotreaterComponent } from './property-window/lgo-hydrotreater/lgo-hydrotreater.component';\r\nimport { ReactiveRangeDistributionRatioVariablesComponent } from './shared/reactive-range-distribution-ratio-variables/reactive-range-distribution-ratio-variables.component';\r\nimport { AfterDeserializationCompatibilityService } from '../_services/after-deserialization-compatibility-service';\r\nimport { BitumenConversionComponent } from './property-window/bitumen-conversion/bitumen-conversion.component';\r\nimport { DiagramItemColorPickerComponent } from './diagram-item-color-picker/diagram-item-color-picker.component';\r\nimport { DiagramItemColorPickerService } from './diagram-item-color-picker/diagram-item-color-picker.service';\r\nimport { OtherDiagramObjectsTemplateProvider } from '../_services/flowsheet-diagram/other-diagram-objects-template-provider';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n ColorPickerModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n HttpClientModule,\r\n RouterModule,\r\n CodeEditorModule,\r\n ReactiveCodeEditorModule,\r\n WjGridSheetModule,\r\n WjNavModule,\r\n WjInputModule,\r\n ],\r\n exports: [FlowsheetComponent],\r\n declarations: [\r\n KeysPipe,\r\n ThousandSeparatorPipe,\r\n UnitOperationFilterPipePipe,\r\n TitleCaseCompositionNamePipe,\r\n AlphanumericSortPipe,\r\n CollapsePanelIconDirective,\r\n FlowsheetComponent,\r\n FlowsheetSideMenuComponent,\r\n FlowsheetNavbarComponent,\r\n FlowsheetDiagramComponent,\r\n FlowsheetDiagramPaletteComponent,\r\n PropertyWindowComponent,\r\n MultipleSimVarInputDirective,\r\n SimulationVariableArrayComponent,\r\n SimVarInputComponent,\r\n ValueInputComponent,\r\n UnitSelectComponent,\r\n DiluentSourceComponent,\r\n MineSourceComponent,\r\n SagdSourceComponent,\r\n RefineryComponent,\r\n ThirdPartyRefineryComponent,\r\n UpgraderComponent,\r\n SplitterComponent,\r\n MixerComponent,\r\n CaseSettingsComponent,\r\n MaterialStreamComponent,\r\n CutComponent,\r\n SaveCaseFileComponent,\r\n OpenCaseFileComponent,\r\n BottomBarComponent,\r\n LogManagerComponent,\r\n KpiManagerComponent,\r\n SummaryReportComponent,\r\n ObjectiveFunctionSelectorComponent,\r\n ProgressIndicatorComponent,\r\n ThirdPartySourceComponent,\r\n ExcelReportComponent,\r\n OptimizationSettingsTableComponent,\r\n CaseStatusIndicatorComponent,\r\n FlowsheetCommentsComponent,\r\n OffshoreSourceComponent,\r\n AboutWindowComponent,\r\n SendCaseModalComponent,\r\n InsightsComponent,\r\n SuncorRenewableBlockComponent,\r\n SuncorRenewableComponent,\r\n ExcelUploadComponent,\r\n CaseListComponent,\r\n GlobalKpiComponent,\r\n FlowsheetViewSelectorComponent,\r\n SankeyDiagramComponent,\r\n FlowsheetSpreadsheetComponent,\r\n DiagramControlsComponent,\r\n FlowsheetSpreadsheetComponent,\r\n UncertaintyAnalysisComponent,\r\n UncertainParameterRowComponent,\r\n ParametricStudyComponent,\r\n ParameterInputComponent,\r\n ParametricStudyWindowComponent,\r\n ParametricStudyResultsComponent,\r\n SubFlowsheetInfoComponent,\r\n DRUComponent,\r\n VACComponent,\r\n HydrotreaterComponent,\r\n DCUComponent,\r\n CutPropertiesComponent,\r\n AssayManagerComponent,\r\n CommodityTankComponent,\r\n ProductTankComponent,\r\n AssaySelectorComponent,\r\n RangeDistributionRatioVariableComponent,\r\n HydrocrackerComponent,\r\n ConstraintViolationReportComponent,\r\n SankeyDiagramControlsComponent,\r\n SearchModalComponent,\r\n SteamUseUtilityComponent,\r\n SolveResultsTypeSelectorComponent,\r\n ExtractionComponent,\r\n WaterTurbineComponent,\r\n WaterHeatExchangerComponent,\r\n WaterHeaterComponent,\r\n WaterCoolerComponent,\r\n WaterTwoPhaseSeparatorComponent,\r\n WaterPumpComponent,\r\n WaterUtilityUnitOperationComponent,\r\n WaterValveComponent,\r\n WaterMixerComponent,\r\n WaterSplitterComponent,\r\n WaterSinkComponent,\r\n WaterMaterialStreamComponent,\r\n MultiPeriodSettingsComponent,\r\n NumberValidationMessagesComponent,\r\n MultiPeriodInventorySettingsComponent,\r\n MultiPeriodParameterSelectorComponent,\r\n MultiPeriodParameterSpreadsheetComponent,\r\n KpiManagerModalComponent,\r\n FluidCokerComponent,\r\n HydrogenPlantComponent,\r\n HgoHydrotreaterComponent,\r\n MultiPeriodResultsComponent,\r\n LgoHydrotreaterComponent,\r\n ReactiveSimVarInputDirective,\r\n ReactiveUnitSelectComponent,\r\n ReactiveVariableValueInputComponent,\r\n ReactiveConstraintCheckBoxComponent,\r\n WaterSourceImportComponent,\r\n WaterSourceInformationStreamFormComponent,\r\n WaterPipeComponent,\r\n WaterSinkImportComponent,\r\n WaterBoilerComponent,\r\n SulfurPlantComponent,\r\n WaterHeaderComponent,\r\n ReactiveSteamUseUtilityComponent,\r\n DiagramCommentButtonComponent,\r\n GasContributorComponent,\r\n UtilitiesSummaryReportComponent,\r\n UtilitiesSummaryReportChartComponent,\r\n FuelGasUtilityUnitOperationComponent,\r\n ReactiveGasContributorComponent,\r\n WaterCogenerationComponent,\r\n FuelGasFlareComponent,\r\n FuelGasSinkComponent,\r\n FuelGasSinkImportComponent,\r\n EnergyStreamFormComponent,\r\n FuelGasSourceImportComponent,\r\n FuelGasSourceInformationStreamFormComponent,\r\n FuelGasMixerComponent,\r\n FuelGasSourceComponent,\r\n FuelGasSplitterComponent,\r\n FuelGasMaterialStreamComponent,\r\n FuelGasAmineContactorComponent,\r\n ReactiveMultipleVariableInputDirective,\r\n FuelGasSummaryReportComponent,\r\n FuelGasSummaryReportChartComponent,\r\n GhgSummaryReportComponent,\r\n GhgUpgraderReportComponent,\r\n UpgraderReportComponent,\r\n ConstraintRankingComponent,\r\n FlowsheetTreeSelectorComponent,\r\n UnitOperationCommentsComponent,\r\n CaseCommentsComponent,\r\n WaterSourceComponent,\r\n PipeComponent,\r\n RefineryComponent,\r\n ReactiveCutPropertiesComponent,\r\n ReactiveCutComponent,\r\n BulkPropertiesComponent,\r\n CompositionComponent,\r\n MultiperiodExcelReportComponent,\r\n CaseStudyExcelReportComponent,\r\n ReactiveRangeDistributionRatioVariablesComponent,\r\n BitumenConversionComponent,\r\n DiagramItemColorPickerComponent,\r\n ],\r\n\r\n providers: [\r\n NumberToUnitConverter,\r\n ApiService,\r\n CompatibilityService,\r\n AfterDeserializationCompatibilityService,\r\n CoreService,\r\n DownloadManualService,\r\n FlowsheetDiagramService,\r\n FlowsheetDiagramTemplateProvider,\r\n GoJsDiagramUtils,\r\n UtilitiesFlowsheetTemplateProvider,\r\n FuelGasFlowsheetTemplateProvider,\r\n FlowsheetService,\r\n GoJsPaletteUtils,\r\n UpgraderPaletteHandler,\r\n ExtractionPaletteHandler,\r\n UtilitiesPaletteHandler,\r\n FuelGasPaletteHandler,\r\n FirstLevelPaletteModelProvider,\r\n UpgraderSubFlowsheetHandler,\r\n ExtractionSubFlowsheetHandler,\r\n UtilitiesFlowsheetHandler,\r\n FuelGasSubFlowsheetHandler,\r\n LogManagerService,\r\n ProgressIndicatorService,\r\n ReportService,\r\n SendCaseModalService,\r\n ExcelReportService,\r\n ExcelUploadService,\r\n ProjectFileLoaderService,\r\n ProjectDeserializerService,\r\n CaseDeserializerService,\r\n CaseClonerService,\r\n GlobalKpiService,\r\n FlexSheetSpreadsheetService,\r\n UncertaintyAnalysisService,\r\n UncertaintyAnalysisApiService,\r\n FlowsheetTreeService,\r\n ServerUtcDateService,\r\n CommentsService,\r\n OtherDiagramObjectsTemplateProvider,\r\n DiagramItemColorPickerService,\r\n ],\r\n})\r\nexport class FlowsheetModule {}\r\n","/* eslint-disable no-console */\r\nimport { ErrorHandler, Injectable, NgZone } from '@angular/core';\r\nimport { GlobalErrorModalService } from '../shared/global-error-modal/global-error-modal.service';\r\n\r\n@Injectable()\r\nexport class GlobalErrorHandler implements ErrorHandler {\r\n constructor(private zone: NgZone, private globalErrorModalService: GlobalErrorModalService) {}\r\n\r\n handleError(error: unknown): void {\r\n this.zone.run(() => {\r\n console.error('Caught by the global error handler', error);\r\n this.globalErrorModalService.reportError(error);\r\n });\r\n }\r\n}\r\n","import { APP_INITIALIZER, ErrorHandler, NgModule } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';\r\n\r\nimport * as Highcharts from 'highcharts';\r\nimport * as Drilldown from 'highcharts/modules/drilldown.src';\r\nimport * as more from 'highcharts/highcharts-more.src';\r\nimport { ToastrModule } from 'ngx-toastr';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { JsonPipe } from '@angular/common';\r\nimport { HeaderInterceptor } from './shared/header-interceptor';\r\n\r\nimport { routing } from './app.routing';\r\n\r\nimport { AppComponent } from './app.component';\r\nimport { FlowsheetModule } from './flowsheet/flowsheet.module';\r\n\r\nimport { AuthGuard } from './_guards/auth.guard';\r\nimport { AuthService } from './_services/auth.service';\r\nimport { UserService } from './_services/user.service';\r\n\r\nimport { LoginComponent } from './login/login.component';\r\nimport { SignupComponent } from './signup/signup.component';\r\n\r\nimport { EqualValidatorDirective } from './shared/equal-validator.directive';\r\nimport { ChangelogComponent } from './changelog/changelog.component';\r\nimport { ForgotPasswordComponent } from './forgot-password/forgot-password.component';\r\nimport { LatestAccessComponent } from './latest-access/latest-access.component';\r\nimport { RoleAdminGuard } from './_guards/roleAdmin.guard';\r\nimport { GlobalErrorHandler } from './_services/global-error-handler';\r\nimport { GlobalErrorModalComponent } from './shared/global-error-modal/global-error-modal.component';\r\n\r\nexport function initHighcharts() {\r\n return () => {\r\n Drilldown(Highcharts);\r\n more(Highcharts);\r\n };\r\n}\r\n\r\n@NgModule({\r\n declarations: [\r\n AppComponent,\r\n LoginComponent,\r\n SignupComponent,\r\n EqualValidatorDirective,\r\n ChangelogComponent,\r\n ForgotPasswordComponent,\r\n LatestAccessComponent,\r\n GlobalErrorModalComponent,\r\n ],\r\n imports: [\r\n FormsModule,\r\n BrowserModule,\r\n HttpClientModule,\r\n routing,\r\n FlowsheetModule,\r\n BrowserAnimationsModule,\r\n ToastrModule.forRoot({\r\n positionClass: 'toast-top-full-width',\r\n }),\r\n ],\r\n providers: [\r\n AuthGuard,\r\n RoleAdminGuard,\r\n AuthService,\r\n UserService,\r\n JsonPipe,\r\n { provide: APP_INITIALIZER, useFactory: initHighcharts, multi: true, deps: [] },\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: HeaderInterceptor,\r\n multi: true,\r\n },\r\n { provide: ErrorHandler, useClass: GlobalErrorHandler },\r\n ],\r\n exports: [],\r\n bootstrap: [AppComponent],\r\n})\r\nexport class AppModule {}\r\n","import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\nimport { enableProdMode } from '@angular/core';\r\n\r\nimport { environment } from './environments/environment';\r\nimport { AppModule } from './app';\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic().bootstrapModule(AppModule)\r\n // eslint-disable-next-line no-console\r\n .catch(err => console.error(err));\r\n","/*!\n *\n * Wijmo Library 5.20201.680\n * http://wijmo.com/\n *\n * Copyright(c) GrapeCity, Inc. All rights reserved.\n *\n * Licensed under the GrapeCity Commercial License.\n * sales@wijmo.com\n * wijmo.com/products/wijmo-5/license/\n *\n */\n\n\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0});var ɵngcc0 = require('@angular/core');\nvar core_1=require(\"@angular/core\"),wijmo=require(\"@grapecity/wijmo\"),WjOptions=function(){function WjOptions(){}WjOptions.asyncBindings=!0;return WjOptions}();exports.WjOptions=WjOptions;var WjComponentResolvedMetadata=function(){function WjComponentResolvedMetadata(e){this.changeEventMap=[];this.allImplEvents=[];this.resolveChangeEventMap(e)}WjComponentResolvedMetadata.prototype.resolveChangeEventMap=function(e){var t=this.changeEventMap,i=e.outputs,r=e.changeEvents||{};t.splice(0,t.length);this.allImplEvents=[];if(i&&i.length){var n=i.map((function(e){return e.split(\":\")})).map((function(e){return{implName:e[0].trim(),exposeName:e[1]&&e[1].trim()}}));this.allImplEvents=n.map((function(e){return e.implName}));for(var o=0,s=n.filter((function(e){return e.implName&&e.exposeName}));o-1){v={eventImpl:null,event:c,props:r[c].map((function(e){return{prop:e,evExposed:Ng2Utils.getChangeEventNameExposed(e),evImpl:Ng2Utils.getChangeEventNameImplemented(e)}}))};t.push(v)}}};return WjComponentResolvedMetadata}();exports.WjComponentResolvedMetadata=WjComponentResolvedMetadata;var WjDirectiveBehavior=function(){function WjDirectiveBehavior(e,t,i,r){this._pendingEvents=[];this.isInitialized=!1;this.isDestroyed=!1;this.directive=e;this.elementRef=t;this.injector=i;this.injectedParent=r;var n=this.typeData=e.constructor[WjDirectiveBehavior.directiveTypeDataProp];null==n.siblingId&&(n.siblingId=++WjDirectiveBehavior.siblingDirId+\"\");var o=e.constructor[WjDirectiveBehavior.directiveResolvedTypeDataProp];o?this.resolvedTypeData=o:e.constructor[WjDirectiveBehavior.directiveResolvedTypeDataProp]=o=this.resolvedTypeData=new WjComponentResolvedMetadata(n);e[WjDirectiveBehavior.BehaviourRefProp]=this;i[WjDirectiveBehavior.BehaviourRefProp]=this;e[WjDirectiveBehavior.isInitializedPropAttr]=!1;this._createEvents();this._setupAsChild();this._isHostElement()&&t.nativeElement.setAttribute(WjDirectiveBehavior.siblingDirIdAttr,n.siblingId);this.subscribeToEvents(!1)}WjDirectiveBehavior.getHostElement=function(e,t){WjDirectiveBehavior.ngZone||(WjDirectiveBehavior.ngZone=t.get(core_1.NgZone));return e.nativeElement};WjDirectiveBehavior.attach=function(e,t,i,r){return new WjDirectiveBehavior(e,t,i,r)};WjDirectiveBehavior.prototype.ngOnInit=function(){this.isInitialized=!0;this._initParent();this.subscribeToEvents(!0)};WjDirectiveBehavior.prototype.ngAfterViewInit=function(){var e=this;this.directive[WjDirectiveBehavior.isInitializedPropAttr]=!0;setTimeout((function(){e.isDestroyed||e.directive[WjDirectiveBehavior.initializedEventAttr].emit(void 0)}))};WjDirectiveBehavior.prototype.ngOnDestroy=function(){if(!this.isDestroyed){this.isDestroyed=!0;var e=this.directive;this._siblingInsertedEH&&this.elementRef.nativeElement.removeEventListener(\"DOMNodeInserted\",this._siblingInsertedEH);if(this._isChild()&&this.parentBehavior){var t=this.parentBehavior.directive,i=this._getParentProp();if(!this.parentBehavior.isDestroyed&&t&&i&&e){var r=t[i];if(wijmo.isArray(r)&&r){var n=r.indexOf(e);n>=0&&r.splice(n,1)}}}if(e instanceof wijmo.Control&&e.hostElement){var o=this.elementRef.nativeElement,s=o&&o.parentNode,a=s?Array.prototype.indexOf.call(s.childNodes,o):-1;e.dispose();if(a>-1&&Array.prototype.indexOf.call(s.childNodes,o)<0){o.textContent=\"\";a-1)return i;return null};WjDirectiveBehavior.prototype._createEvents=function(){for(var e=0,t=this.resolvedTypeData.allImplEvents;e0)}))}))};WjDirectiveBehavior.prototype.triggerPropChangeEvents=function(e,t){void 0===t&&(t=!0);var i=this.directive;if(e.props&&e.props.length)for(var r=0,n=e.props;r=r.length)&&(o=r.length);r.splice(o,0,i);if(n){this._siblingInsertedEH=this._siblingInserted.bind(this);this.elementRef.nativeElement.addEventListener(\"DOMNodeInserted\",this._siblingInsertedEH)}}else e[t]=i}this._isParentReferencer()&&!this._parentInCtor()&&(i[this._getParentReferenceProperty()]=e)}};WjDirectiveBehavior.prototype._getSiblingIndex=function(){var e=this.elementRef.nativeElement,t=e.parentElement;if(!t)return-1;for(var i=t.childNodes,r=-1,n=this.typeData.siblingId,o=0;o=0&&n>=0&&t!==n){i.splice(n,1);t=Math.min(t,i.length);i.splice(t,0,r)}}};WjDirectiveBehavior.prototype._isHostElement=function(){return this.elementRef.nativeElement.nodeType===Node.ELEMENT_NODE};WjDirectiveBehavior.prototype._runInsideNgZone=function(e){var t=WjDirectiveBehavior;t.ngZone&&!t._ngZoneRun&&(t._ngZoneRun=t.ngZone.run.bind(t.ngZone));return(t._ngZoneRun||function(e){return e()})(e)};WjDirectiveBehavior.prototype._triggerEvent=function(e,t,i){var r=this;if(i&&this._isAsyncBinding()){var n={event:e,args:t};this._pendingEvents.push(n);null==this._pendingEventsTO&&(this._pendingEventsTO=setTimeout((function(){r._triggerPendingEvents(!1)}),0))}else e.emit(t)};WjDirectiveBehavior.prototype._triggerPendingEvents=function(e){if(null!=this._pendingEventsTO){clearTimeout(this._pendingEventsTO);this._pendingEventsTO=null}if(!this.isDestroyed){var t=[].concat(this._pendingEvents);this._pendingEvents.splice(0,this._pendingEvents.length);for(var i=0,r=t;i0&&e.substr(i)===t)return e.substr(0,i)}return null};Ng2Utils.getBaseType=function(e){var t;return e&&(t=Object.getPrototypeOf(e.prototype))&&t.constructor};Ng2Utils.getAnnotations=function(e){return Reflect.getMetadata(\"annotations\",e)};Ng2Utils.getAnnotation=function(e,t){if(t&&e)for(var i=0,r=e;i=0;g--)(r=e[g])&&(a=(i<3?r(a):i>3?r(t,o,a):r(t,o))||a);return i>3&&a&&Object.defineProperty(t,o,a),a},__param=this&&this.__param||function(e,t){return function(o,n){t(o,n,e)}};Object.defineProperty(exports,\"__esModule\",{value:!0});var core_1=require(\"@angular/core\"),common_1=require(\"@angular/common\"),forms_1=require(\"@angular/forms\"),wijmo_angular2_directivebase_1=require(\"@grapecity/wijmo.angular2.directivebase\"),wjcGridSheet=require(\"@grapecity/wijmo.grid.sheet\"),wjFlexSheetMeta={selector:\"wj-flex-sheet\",template:\"
\",inputs:[\"asyncBindings\",\"wjModelProperty\",\"isDisabled\",\"newRowAtTop\",\"allowAddNew\",\"allowDelete\",\"allowDragging\",\"allowMerging\",\"allowResizing\",\"allowSorting\",\"allowPinning\",\"quickAutoSize\",\"autoScroll\",\"autoSearch\",\"autoRowHeights\",\"autoSizeMode\",\"autoGenerateColumns\",\"bigCheckboxes\",\"childItemsPath\",\"groupHeaderFormat\",\"headersVisibility\",\"showSelectedHeaders\",\"showMarquee\",\"itemFormatter\",\"isReadOnly\",\"imeEnabled\",\"mergeManager\",\"selectionMode\",\"showGroups\",\"showSort\",\"showDropDown\",\"showAlternatingRows\",\"showErrors\",\"alternatingRowStep\",\"validateEdits\",\"treeIndent\",\"itemsSource\",\"autoClipboard\",\"expandSelectionOnCopyPaste\",\"frozenRows\",\"frozenColumns\",\"cloneFrozenCells\",\"deferResizing\",\"sortRowIndex\",\"editColumnIndex\",\"stickyHeaders\",\"preserveSelectedState\",\"preserveOutlineState\",\"preserveWhiteSpace\",\"keyActionTab\",\"keyActionEnter\",\"rowHeaderPath\",\"virtualizationThreshold\",\"anchorCursor\",\"lazyRender\",\"refreshOnEdit\",\"copyHeaders\",\"columnGroups\",\"allowAutoFill\",\"isTabHolderVisible\",\"showFilterIcons\",\"enableDragDrop\",\"enableFormulas\",\"selectedSheetIndex\"],outputs:[\"initialized\",\"gotFocusNg: gotFocus\",\"lostFocusNg: lostFocus\",\"refreshingNg: refreshing\",\"refreshedNg: refreshed\",\"beginningEditNg: beginningEdit\",\"cellEditEndedNg: cellEditEnded\",\"cellEditEndingNg: cellEditEnding\",\"prepareCellForEditNg: prepareCellForEdit\",\"formatItemNg: formatItem\",\"resizingColumnNg: resizingColumn\",\"resizedColumnNg: resizedColumn\",\"autoSizingColumnNg: autoSizingColumn\",\"autoSizedColumnNg: autoSizedColumn\",\"draggingColumnNg: draggingColumn\",\"draggingColumnOverNg: draggingColumnOver\",\"draggedColumnNg: draggedColumn\",\"sortingColumnNg: sortingColumn\",\"sortedColumnNg: sortedColumn\",\"pinningColumnNg: pinningColumn\",\"pinnedColumnNg: pinnedColumn\",\"resizingRowNg: resizingRow\",\"resizedRowNg: resizedRow\",\"autoSizingRowNg: autoSizingRow\",\"autoSizedRowNg: autoSizedRow\",\"draggingRowNg: draggingRow\",\"draggingRowOverNg: draggingRowOver\",\"draggedRowNg: draggedRow\",\"deletingRowNg: deletingRow\",\"deletedRowNg: deletedRow\",\"loadingRowsNg: loadingRows\",\"loadedRowsNg: loadedRows\",\"rowEditStartingNg: rowEditStarting\",\"rowEditStartedNg: rowEditStarted\",\"rowEditEndingNg: rowEditEnding\",\"rowEditEndedNg: rowEditEnded\",\"rowAddedNg: rowAdded\",\"groupCollapsedChangedNg: groupCollapsedChanged\",\"groupCollapsedChangingNg: groupCollapsedChanging\",\"itemsSourceChangingNg: itemsSourceChanging\",\"itemsSourceChangedNg: itemsSourceChanged\",\"selectionChangingNg: selectionChanging\",\"selectionChangedNg: selectionChanged\",\"scrollPositionChangedNg: scrollPositionChanged\",\"updatingViewNg: updatingView\",\"updatedViewNg: updatedView\",\"updatingLayoutNg: updatingLayout\",\"updatedLayoutNg: updatedLayout\",\"pastingNg: pasting\",\"pastedNg: pasted\",\"pastingCellNg: pastingCell\",\"pastedCellNg: pastedCell\",\"copyingNg: copying\",\"copiedNg: copied\",\"selectedSheetChangedNg: selectedSheetChanged\",\"selectedSheetIndexChangePC: selectedSheetIndexChange\",\"draggingRowColumnNg: draggingRowColumn\",\"droppingRowColumnNg: droppingRowColumn\",\"beginDroppingRowColumnNg: beginDroppingRowColumn\",\"endDroppingRowColumnNg: endDroppingRowColumn\",\"loadedNg: loaded\",\"unknownFunctionNg: unknownFunction\",\"sheetClearedNg: sheetCleared\",\"prepareChangingRowNg: prepareChangingRow\",\"prepareChangingColumnNg: prepareChangingColumn\",\"rowChangedNg: rowChanged\",\"columnChangedNg: columnChanged\"],providers:[{provide:forms_1.NG_VALUE_ACCESSOR,useFactory:wijmo_angular2_directivebase_1.WjValueAccessorFactory,multi:!0,deps:[\"WjComponent\"]}]};exports.wjFlexSheetMeta=wjFlexSheetMeta;var WjFlexSheet=function(e){__extends(WjFlexSheet,e);function WjFlexSheet(t,o,n){var r=e.call(this,wijmo_angular2_directivebase_1.WjDirectiveBehavior.getHostElement(t,o))||this;r.isInitialized=!1;r._wjBehaviour=wijmo_angular2_directivebase_1.WjDirectiveBehavior.attach(r,t,o,n);r.created();return r}t=WjFlexSheet;WjFlexSheet.prototype.created=function(){};WjFlexSheet.prototype.ngOnInit=function(){this._wjBehaviour.ngOnInit()};WjFlexSheet.prototype.ngAfterViewInit=function(){this._wjBehaviour.ngAfterViewInit()};WjFlexSheet.prototype.ngOnDestroy=function(){this._wjBehaviour.ngOnDestroy()};WjFlexSheet.prototype.addEventListener=function(t,o,n,r){var i=this;void 0===r&&(r=!1);var a=wijmo_angular2_directivebase_1.WjDirectiveBehavior,g=a.ngZone;g&&a.outsideZoneEvents[o]?g.runOutsideAngular((function(){e.prototype.addEventListener.call(i,t,o,n,r)})):e.prototype.addEventListener.call(this,t,o,n,r)};var t;WjFlexSheet.meta={outputs:wjFlexSheetMeta.outputs,changeEvents:{selectedSheetChanged:[\"selectedSheetIndex\"]}};\nWjFlexSheet.ɵfac = function WjFlexSheet_Factory(t) { return new (t || WjFlexSheet)(ɵngcc0.ɵɵdirectiveInject(core_1.ElementRef), ɵngcc0.ɵɵdirectiveInject(core_1.Injector), ɵngcc0.ɵɵdirectiveInject(\"WjComponent\", 12)); };\nWjFlexSheet.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: WjFlexSheet, selectors: [[\"wj-flex-sheet\"]], inputs: { asyncBindings: \"asyncBindings\", wjModelProperty: \"wjModelProperty\", isDisabled: \"isDisabled\", newRowAtTop: \"newRowAtTop\", allowAddNew: \"allowAddNew\", allowDelete: \"allowDelete\", allowDragging: \"allowDragging\", allowMerging: \"allowMerging\", allowResizing: \"allowResizing\", allowSorting: \"allowSorting\", allowPinning: \"allowPinning\", quickAutoSize: \"quickAutoSize\", autoScroll: \"autoScroll\", autoSearch: \"autoSearch\", autoRowHeights: \"autoRowHeights\", autoSizeMode: \"autoSizeMode\", autoGenerateColumns: \"autoGenerateColumns\", bigCheckboxes: \"bigCheckboxes\", childItemsPath: \"childItemsPath\", groupHeaderFormat: \"groupHeaderFormat\", headersVisibility: \"headersVisibility\", showSelectedHeaders: \"showSelectedHeaders\", showMarquee: \"showMarquee\", itemFormatter: \"itemFormatter\", isReadOnly: \"isReadOnly\", imeEnabled: \"imeEnabled\", mergeManager: \"mergeManager\", selectionMode: \"selectionMode\", showGroups: \"showGroups\", showSort: \"showSort\", showDropDown: \"showDropDown\", showAlternatingRows: \"showAlternatingRows\", showErrors: \"showErrors\", alternatingRowStep: \"alternatingRowStep\", validateEdits: \"validateEdits\", treeIndent: \"treeIndent\", itemsSource: \"itemsSource\", autoClipboard: \"autoClipboard\", expandSelectionOnCopyPaste: \"expandSelectionOnCopyPaste\", frozenRows: \"frozenRows\", frozenColumns: \"frozenColumns\", cloneFrozenCells: \"cloneFrozenCells\", deferResizing: \"deferResizing\", sortRowIndex: \"sortRowIndex\", editColumnIndex: \"editColumnIndex\", stickyHeaders: \"stickyHeaders\", preserveSelectedState: \"preserveSelectedState\", preserveOutlineState: \"preserveOutlineState\", preserveWhiteSpace: \"preserveWhiteSpace\", keyActionTab: \"keyActionTab\", keyActionEnter: \"keyActionEnter\", rowHeaderPath: \"rowHeaderPath\", virtualizationThreshold: \"virtualizationThreshold\", anchorCursor: \"anchorCursor\", lazyRender: \"lazyRender\", refreshOnEdit: \"refreshOnEdit\", copyHeaders: \"copyHeaders\", columnGroups: \"columnGroups\", allowAutoFill: \"allowAutoFill\", isTabHolderVisible: \"isTabHolderVisible\", showFilterIcons: \"showFilterIcons\", enableDragDrop: \"enableDragDrop\", enableFormulas: \"enableFormulas\", selectedSheetIndex: \"selectedSheetIndex\" }, outputs: { initialized: \"initialized\", gotFocusNg: \"gotFocus\", lostFocusNg: \"lostFocus\", refreshingNg: \"refreshing\", refreshedNg: \"refreshed\", beginningEditNg: \"beginningEdit\", cellEditEndedNg: \"cellEditEnded\", cellEditEndingNg: \"cellEditEnding\", prepareCellForEditNg: \"prepareCellForEdit\", formatItemNg: \"formatItem\", resizingColumnNg: \"resizingColumn\", resizedColumnNg: \"resizedColumn\", autoSizingColumnNg: \"autoSizingColumn\", autoSizedColumnNg: \"autoSizedColumn\", draggingColumnNg: \"draggingColumn\", draggingColumnOverNg: \"draggingColumnOver\", draggedColumnNg: \"draggedColumn\", sortingColumnNg: \"sortingColumn\", sortedColumnNg: \"sortedColumn\", pinningColumnNg: \"pinningColumn\", pinnedColumnNg: \"pinnedColumn\", resizingRowNg: \"resizingRow\", resizedRowNg: \"resizedRow\", autoSizingRowNg: \"autoSizingRow\", autoSizedRowNg: \"autoSizedRow\", draggingRowNg: \"draggingRow\", draggingRowOverNg: \"draggingRowOver\", draggedRowNg: \"draggedRow\", deletingRowNg: \"deletingRow\", deletedRowNg: \"deletedRow\", loadingRowsNg: \"loadingRows\", loadedRowsNg: \"loadedRows\", rowEditStartingNg: \"rowEditStarting\", rowEditStartedNg: \"rowEditStarted\", rowEditEndingNg: \"rowEditEnding\", rowEditEndedNg: \"rowEditEnded\", rowAddedNg: \"rowAdded\", groupCollapsedChangedNg: \"groupCollapsedChanged\", groupCollapsedChangingNg: \"groupCollapsedChanging\", itemsSourceChangingNg: \"itemsSourceChanging\", itemsSourceChangedNg: \"itemsSourceChanged\", selectionChangingNg: \"selectionChanging\", selectionChangedNg: \"selectionChanged\", scrollPositionChangedNg: \"scrollPositionChanged\", updatingViewNg: \"updatingView\", updatedViewNg: \"updatedView\", updatingLayoutNg: \"updatingLayout\", updatedLayoutNg: \"updatedLayout\", pastingNg: \"pasting\", pastedNg: \"pasted\", pastingCellNg: \"pastingCell\", pastedCellNg: \"pastedCell\", copyingNg: \"copying\", copiedNg: \"copied\", selectedSheetChangedNg: \"selectedSheetChanged\", selectedSheetIndexChangePC: \"selectedSheetIndexChange\", draggingRowColumnNg: \"draggingRowColumn\", droppingRowColumnNg: \"droppingRowColumn\", beginDroppingRowColumnNg: \"beginDroppingRowColumn\", endDroppingRowColumnNg: \"endDroppingRowColumn\", loadedNg: \"loaded\", unknownFunctionNg: \"unknownFunction\", sheetClearedNg: \"sheetCleared\", prepareChangingRowNg: \"prepareChangingRow\", prepareChangingColumnNg: \"prepareChangingColumn\", rowChangedNg: \"rowChanged\", columnChangedNg: \"columnChanged\" }, features: [ɵngcc0.ɵɵProvidersFeature([{ provide: \"WjComponent\", useExisting: core_1.forwardRef((function () { return t; })) }].concat(wjFlexSheetMeta.providers))], ngContentSelectors: _c0, decls: 2, vars: 0, template: function WjFlexSheet_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojectionDef();\n ɵngcc0.ɵɵelementStart(0, \"div\");\n ɵngcc0.ɵɵprojection(1);\n ɵngcc0.ɵɵelementEnd();\n } }, encapsulation: 2 });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(WjFlexSheet, [{\n type: core_1.Component,\n args: [{ selector: wjFlexSheetMeta.selector, template: wjFlexSheetMeta.template, inputs: wjFlexSheetMeta.inputs, outputs: wjFlexSheetMeta.outputs, providers: [{ provide: \"WjComponent\", useExisting: core_1.forwardRef((function () { return t; })) }].concat(wjFlexSheetMeta.providers) }]\n }], function () { return [{ type: undefined, decorators: [{\n type: core_1.Inject,\n args: [core_1.ElementRef]\n }] }, { type: undefined, decorators: [{\n type: core_1.Inject,\n args: [core_1.Injector]\n }] }, { type: undefined, decorators: [{\n type: core_1.Inject,\n args: [\"WjComponent\"]\n }, {\n type: core_1.SkipSelf\n }, {\n type: core_1.Optional\n }] }]; }, null); })();return WjFlexSheet=t=__decorate([,__param(0,core_1.Inject(core_1.ElementRef)),__param(1,core_1.Inject(core_1.Injector)),__param(2,core_1.Inject(\"WjComponent\")),__param(2,core_1.SkipSelf()),__param(2,core_1.Optional())],WjFlexSheet)}(wjcGridSheet.FlexSheet);exports.WjFlexSheet=WjFlexSheet;var wjSheetMeta={selector:\"wj-sheet\",template:\"\",inputs:[\"wjProperty\",\"name\",\"itemsSource\",\"visible\",\"rowCount\",\"columnCount\"],outputs:[\"initialized\",\"nameChangedNg: nameChanged\"],providers:[]};exports.wjSheetMeta=wjSheetMeta;var WjSheet=function(e){__extends(WjSheet,e);function WjSheet(t,o,n){var r=e.call(this,n)||this;r.isInitialized=!1;r.wjProperty=\"sheets\";r._wjBehaviour=wijmo_angular2_directivebase_1.WjDirectiveBehavior.attach(r,t,o,n);r.created();return r}t=WjSheet;WjSheet.prototype.created=function(){};WjSheet.prototype.ngOnInit=function(){this._wjBehaviour.ngOnInit()};WjSheet.prototype.ngAfterViewInit=function(){this._wjBehaviour.ngAfterViewInit()};WjSheet.prototype.ngOnDestroy=function(){this._wjBehaviour.ngOnDestroy()};WjSheet.prototype.ngOnChanges=function(e){var t;(t=e.rowCount)&&t.isFirstChange&&(this.boundRowCount=t.currentValue);(t=e.columnCount)&&t.isFirstChange&&(this.boundColumnCount=t.currentValue)};var t;WjSheet.meta={outputs:wjSheetMeta.outputs};\nWjSheet.ɵfac = function WjSheet_Factory(t) { return new (t || WjSheet)(ɵngcc0.ɵɵdirectiveInject(core_1.ElementRef), ɵngcc0.ɵɵdirectiveInject(core_1.Injector), ɵngcc0.ɵɵdirectiveInject(\"WjComponent\", 12)); };\nWjSheet.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: WjSheet, selectors: [[\"wj-sheet\"]], inputs: { wjProperty: \"wjProperty\", name: \"name\", itemsSource: \"itemsSource\", visible: \"visible\", rowCount: \"rowCount\", columnCount: \"columnCount\" }, outputs: { initialized: \"initialized\", nameChangedNg: \"nameChanged\" }, features: [ɵngcc0.ɵɵProvidersFeature([{ provide: \"WjComponent\", useExisting: core_1.forwardRef((function () { return t; })) }].concat(wjSheetMeta.providers)), ɵngcc0.ɵɵNgOnChangesFeature], decls: 0, vars: 0, template: function WjSheet_Template(rf, ctx) { }, encapsulation: 2 });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(WjSheet, [{\n type: core_1.Component,\n args: [{ selector: wjSheetMeta.selector, template: wjSheetMeta.template, inputs: wjSheetMeta.inputs, outputs: wjSheetMeta.outputs, providers: [{ provide: \"WjComponent\", useExisting: core_1.forwardRef((function () { return t; })) }].concat(wjSheetMeta.providers) }]\n }], function () { return [{ type: undefined, decorators: [{\n type: core_1.Inject,\n args: [core_1.ElementRef]\n }] }, { type: undefined, decorators: [{\n type: core_1.Inject,\n args: [core_1.Injector]\n }] }, { type: undefined, decorators: [{\n type: core_1.Inject,\n args: [\"WjComponent\"]\n }, {\n type: core_1.SkipSelf\n }, {\n type: core_1.Optional\n }] }]; }, null); })();return WjSheet=t=__decorate([,__param(0,core_1.Inject(core_1.ElementRef)),__param(1,core_1.Inject(core_1.Injector)),__param(2,core_1.Inject(\"WjComponent\")),__param(2,core_1.SkipSelf()),__param(2,core_1.Optional())],WjSheet)}(wjcGridSheet.Sheet);exports.WjSheet=WjSheet;var moduleExports=[WjFlexSheet,WjSheet],WjGridSheetModule=function(){function WjGridSheetModule(){}\nWjGridSheetModule.ɵfac = function WjGridSheetModule_Factory(t) { return new (t || WjGridSheetModule)(); };\nWjGridSheetModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: WjGridSheetModule });\nWjGridSheetModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [common_1.CommonModule] });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(WjGridSheetModule, [{\n type: core_1.NgModule,\n args: [{ imports: [common_1.CommonModule], declarations: moduleExports.slice(), exports: moduleExports.slice() }]\n }], function () { return []; }, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(WjGridSheetModule, { declarations: [WjFlexSheet, WjSheet], imports: [ɵngcc1.CommonModule], exports: [WjFlexSheet, WjSheet] }); })();return WjGridSheetModule}();exports.WjGridSheetModule=WjGridSheetModule;\n","/*!\n *\n * Wijmo Library 5.20201.680\n * http://wijmo.com/\n *\n * Copyright(c) GrapeCity, Inc. All rights reserved.\n *\n * Licensed under the GrapeCity Commercial License.\n * sales@wijmo.com\n * wijmo.com/products/wijmo-5/license/\n *\n */\n\n\"use strict\";var ɵngcc0 = require('@angular/core');\nvar ɵngcc1 = require('@angular/common');\n\nvar _c0 = [\"*\"];\nfunction WjMenuItem_div_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\");\n ɵngcc0.ɵɵprojection(1);\n ɵngcc0.ɵɵelementEnd();\n} }\nfunction WjMenuSeparator_div_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"div\", 1);\n} }\nvar __extends=this&&this.__extends||function(){var extendStatics=function(e,t){return(extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var o in t)t.hasOwnProperty(o)&&(e[o]=t[o])})(e,t)};return function(e,t){extendStatics(e,t);function __(){this.constructor=e}e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)}}(),__decorate=this&&this.__decorate||function(e,t,o,n){var r,a=arguments.length,i=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.decorate)i=Reflect.decorate(e,t,o,n);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(i=(a<3?r(i):a>3?r(t,o,i):r(t,o))||i);return a>3&&i&&Object.defineProperty(t,o,i),i},__param=this&&this.__param||function(e,t){return function(o,n){t(o,n,e)}};Object.defineProperty(exports,\"__esModule\",{value:!0});var core_1=require(\"@angular/core\"),common_1=require(\"@angular/common\"),forms_1=require(\"@angular/forms\"),wijmo_angular2_directivebase_1=require(\"@grapecity/wijmo.angular2.directivebase\"),wjcCore=require(\"@grapecity/wijmo\"),wjcInput=require(\"@grapecity/wijmo.input\"),wjListBoxMeta={selector:\"wj-list-box\",template:\"
\",inputs:[\"asyncBindings\",\"wjModelProperty\",\"isDisabled\",\"isContentHtml\",\"maxHeight\",\"selectedValuePath\",\"itemFormatter\",\"displayMemberPath\",\"checkedMemberPath\",\"itemsSource\",\"showGroups\",\"selectedIndex\",\"selectedItem\",\"selectedValue\",\"checkedItems\"],outputs:[\"initialized\",\"gotFocusNg: gotFocus\",\"lostFocusNg: lostFocus\",\"refreshingNg: refreshing\",\"refreshedNg: refreshed\",\"formatItemNg: formatItem\",\"itemsChangedNg: itemsChanged\",\"itemCheckedNg: itemChecked\",\"selectedIndexChangedNg: selectedIndexChanged\",\"selectedIndexChangePC: selectedIndexChange\",\"selectedItemChangePC: selectedItemChange\",\"selectedValueChangePC: selectedValueChange\",\"checkedItemsChangedNg: checkedItemsChanged\",\"checkedItemsChangePC: checkedItemsChange\"],providers:[{provide:forms_1.NG_VALUE_ACCESSOR,useFactory:wijmo_angular2_directivebase_1.WjValueAccessorFactory,multi:!0,deps:[\"WjComponent\"]}]};exports.wjListBoxMeta=wjListBoxMeta;var WjListBox=function(e){__extends(WjListBox,e);function WjListBox(t,o,n){var r=e.call(this,wijmo_angular2_directivebase_1.WjDirectiveBehavior.getHostElement(t,o))||this;r.isInitialized=!1;r.wjModelProperty=\"selectedValue\";r._wjBehaviour=wijmo_angular2_directivebase_1.WjDirectiveBehavior.attach(r,t,o,n);r.created();return r}t=WjListBox;WjListBox.prototype.created=function(){};WjListBox.prototype.ngOnInit=function(){this._wjBehaviour.ngOnInit()};WjListBox.prototype.ngAfterViewInit=function(){this._wjBehaviour.ngAfterViewInit()};WjListBox.prototype.ngOnDestroy=function(){this._wjBehaviour.ngOnDestroy()};WjListBox.prototype.addEventListener=function(t,o,n,r){var a=this;void 0===r&&(r=!1);var i=wijmo_angular2_directivebase_1.WjDirectiveBehavior,s=i.ngZone;s&&i.outsideZoneEvents[o]?s.runOutsideAngular((function(){e.prototype.addEventListener.call(a,t,o,n,r)})):e.prototype.addEventListener.call(this,t,o,n,r)};var t;WjListBox.meta={outputs:wjListBoxMeta.outputs,changeEvents:{selectedIndexChanged:[\"selectedIndex\",\"selectedItem\",\"selectedValue\"],checkedItemsChanged:[\"checkedItems\"]}};\nWjListBox.ɵfac = function WjListBox_Factory(t) { return new (t || WjListBox)(ɵngcc0.ɵɵdirectiveInject(core_1.ElementRef), ɵngcc0.ɵɵdirectiveInject(core_1.Injector), ɵngcc0.ɵɵdirectiveInject(\"WjComponent\", 12)); };\nWjListBox.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: WjListBox, selectors: [[\"wj-list-box\"]], inputs: { asyncBindings: \"asyncBindings\", wjModelProperty: \"wjModelProperty\", isDisabled: \"isDisabled\", isContentHtml: \"isContentHtml\", maxHeight: \"maxHeight\", selectedValuePath: \"selectedValuePath\", itemFormatter: \"itemFormatter\", displayMemberPath: \"displayMemberPath\", checkedMemberPath: \"checkedMemberPath\", itemsSource: \"itemsSource\", showGroups: \"showGroups\", selectedIndex: \"selectedIndex\", selectedItem: \"selectedItem\", selectedValue: \"selectedValue\", checkedItems: \"checkedItems\" }, outputs: { initialized: \"initialized\", gotFocusNg: \"gotFocus\", lostFocusNg: \"lostFocus\", refreshingNg: \"refreshing\", refreshedNg: \"refreshed\", formatItemNg: \"formatItem\", itemsChangedNg: \"itemsChanged\", itemCheckedNg: \"itemChecked\", selectedIndexChangedNg: \"selectedIndexChanged\", selectedIndexChangePC: \"selectedIndexChange\", selectedItemChangePC: \"selectedItemChange\", selectedValueChangePC: \"selectedValueChange\", checkedItemsChangedNg: \"checkedItemsChanged\", checkedItemsChangePC: \"checkedItemsChange\" }, features: [ɵngcc0.ɵɵProvidersFeature([{ provide: \"WjComponent\", useExisting: core_1.forwardRef((function () { return t; })) }].concat(wjListBoxMeta.providers))], ngContentSelectors: _c0, decls: 2, vars: 0, template: function WjListBox_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojectionDef();\n ɵngcc0.ɵɵelementStart(0, \"div\");\n ɵngcc0.ɵɵprojection(1);\n ɵngcc0.ɵɵelementEnd();\n } }, encapsulation: 2 });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(WjListBox, [{\n type: core_1.Component,\n args: [{ selector: wjListBoxMeta.selector, template: wjListBoxMeta.template, inputs: wjListBoxMeta.inputs, outputs: wjListBoxMeta.outputs, providers: [{ provide: \"WjComponent\", useExisting: core_1.forwardRef((function () { return t; })) }].concat(wjListBoxMeta.providers) }]\n }], function () { return [{ type: undefined, decorators: [{\n type: core_1.Inject,\n args: [core_1.ElementRef]\n }] }, { type: undefined, decorators: [{\n type: core_1.Inject,\n args: [core_1.Injector]\n }] }, { type: undefined, decorators: [{\n type: core_1.Inject,\n args: [\"WjComponent\"]\n }, {\n type: core_1.SkipSelf\n }, {\n type: core_1.Optional\n }] }]; }, null); })();return WjListBox=t=__decorate([,__param(0,core_1.Inject(core_1.ElementRef)),__param(1,core_1.Inject(core_1.Injector)),__param(2,core_1.Inject(\"WjComponent\")),__param(2,core_1.SkipSelf()),__param(2,core_1.Optional())],WjListBox)}(wjcInput.ListBox);exports.WjListBox=WjListBox;var wjMultiSelectListBoxMeta={selector:\"wj-multi-select-list-box\",template:\"\",inputs:[\"asyncBindings\",\"wjModelProperty\",\"isDisabled\",\"itemsSource\",\"displayMemberPath\",\"isContentHtml\",\"showGroups\",\"checkOnFilter\",\"showFilterInput\",\"filterInputPlaceholder\",\"showSelectAllCheckbox\",\"selectAllLabel\",\"checkedMemberPath\",\"checkedItems\"],outputs:[\"initialized\",\"gotFocusNg: gotFocus\",\"lostFocusNg: lostFocus\",\"refreshingNg: refreshing\",\"refreshedNg: refreshed\",\"checkedItemsChangedNg: checkedItemsChanged\",\"checkedItemsChangePC: checkedItemsChange\"],providers:[{provide:forms_1.NG_VALUE_ACCESSOR,useFactory:wijmo_angular2_directivebase_1.WjValueAccessorFactory,multi:!0,deps:[\"WjComponent\"]}]};exports.wjMultiSelectListBoxMeta=wjMultiSelectListBoxMeta;var WjMultiSelectListBox=function(e){__extends(WjMultiSelectListBox,e);function WjMultiSelectListBox(t,o,n){var r=e.call(this,wijmo_angular2_directivebase_1.WjDirectiveBehavior.getHostElement(t,o))||this;r.isInitialized=!1;r.wjModelProperty=\"checkedItems\";r._wjBehaviour=wijmo_angular2_directivebase_1.WjDirectiveBehavior.attach(r,t,o,n);r.created();return r}t=WjMultiSelectListBox;WjMultiSelectListBox.prototype.created=function(){};WjMultiSelectListBox.prototype.ngOnInit=function(){this._wjBehaviour.ngOnInit()};WjMultiSelectListBox.prototype.ngAfterViewInit=function(){this._wjBehaviour.ngAfterViewInit()};WjMultiSelectListBox.prototype.ngOnDestroy=function(){this._wjBehaviour.ngOnDestroy()};WjMultiSelectListBox.prototype.addEventListener=function(t,o,n,r){var a=this;void 0===r&&(r=!1);var i=wijmo_angular2_directivebase_1.WjDirectiveBehavior,s=i.ngZone;s&&i.outsideZoneEvents[o]?s.runOutsideAngular((function(){e.prototype.addEventListener.call(a,t,o,n,r)})):e.prototype.addEventListener.call(this,t,o,n,r)};var t;WjMultiSelectListBox.meta={outputs:wjMultiSelectListBoxMeta.outputs,changeEvents:{checkedItemsChanged:[\"checkedItems\"]}};\nWjMultiSelectListBox.ɵfac = function WjMultiSelectListBox_Factory(t) { return new (t || WjMultiSelectListBox)(ɵngcc0.ɵɵdirectiveInject(core_1.ElementRef), ɵngcc0.ɵɵdirectiveInject(core_1.Injector), ɵngcc0.ɵɵdirectiveInject(\"WjComponent\", 12)); };\nWjMultiSelectListBox.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: WjMultiSelectListBox, selectors: [[\"wj-multi-select-list-box\"]], inputs: { asyncBindings: \"asyncBindings\", wjModelProperty: \"wjModelProperty\", isDisabled: \"isDisabled\", itemsSource: \"itemsSource\", displayMemberPath: \"displayMemberPath\", isContentHtml: \"isContentHtml\", showGroups: \"showGroups\", checkOnFilter: \"checkOnFilter\", showFilterInput: \"showFilterInput\", filterInputPlaceholder: \"filterInputPlaceholder\", showSelectAllCheckbox: \"showSelectAllCheckbox\", selectAllLabel: \"selectAllLabel\", checkedMemberPath: \"checkedMemberPath\", checkedItems: \"checkedItems\" }, outputs: { initialized: \"initialized\", gotFocusNg: \"gotFocus\", lostFocusNg: \"lostFocus\", refreshingNg: \"refreshing\", refreshedNg: \"refreshed\", checkedItemsChangedNg: \"checkedItemsChanged\", checkedItemsChangePC: \"checkedItemsChange\" }, features: [ɵngcc0.ɵɵProvidersFeature([{ provide: \"WjComponent\", useExisting: core_1.forwardRef((function () { return t; })) }].concat(wjMultiSelectListBoxMeta.providers))], decls: 0, vars: 0, template: function WjMultiSelectListBox_Template(rf, ctx) { }, encapsulation: 2 });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(WjMultiSelectListBox, [{\n type: core_1.Component,\n args: [{ selector: wjMultiSelectListBoxMeta.selector, template: wjMultiSelectListBoxMeta.template, inputs: wjMultiSelectListBoxMeta.inputs, outputs: wjMultiSelectListBoxMeta.outputs, providers: [{ provide: \"WjComponent\", useExisting: core_1.forwardRef((function () { return t; })) }].concat(wjMultiSelectListBoxMeta.providers) }]\n }], function () { return [{ type: undefined, decorators: [{\n type: core_1.Inject,\n args: [core_1.ElementRef]\n }] }, { type: undefined, decorators: [{\n type: core_1.Inject,\n args: [core_1.Injector]\n }] }, { type: undefined, decorators: [{\n type: core_1.Inject,\n args: [\"WjComponent\"]\n }, {\n type: core_1.SkipSelf\n }, {\n type: core_1.Optional\n }] }]; }, null); })();return WjMultiSelectListBox=t=__decorate([,__param(0,core_1.Inject(core_1.ElementRef)),__param(1,core_1.Inject(core_1.Injector)),__param(2,core_1.Inject(\"WjComponent\")),__param(2,core_1.SkipSelf()),__param(2,core_1.Optional())],WjMultiSelectListBox)}(wjcInput.MultiSelectListBox);exports.WjMultiSelectListBox=WjMultiSelectListBox;var wjComboBoxMeta={selector:\"wj-combo-box\",template:\"
\",inputs:[\"asyncBindings\",\"wjModelProperty\",\"isDisabled\",\"isDroppedDown\",\"showDropDownButton\",\"autoExpandSelection\",\"placeholder\",\"dropDownCssClass\",\"isAnimated\",\"isReadOnly\",\"isRequired\",\"inputType\",\"clickAction\",\"displayMemberPath\",\"selectedValuePath\",\"headerPath\",\"isContentHtml\",\"isEditable\",\"maxDropDownHeight\",\"maxDropDownWidth\",\"itemFormatter\",\"showGroups\",\"trimText\",\"itemsSource\",\"text\",\"selectedIndex\",\"selectedItem\",\"selectedValue\"],outputs:[\"initialized\",\"gotFocusNg: gotFocus\",\"lostFocusNg: lostFocus\",\"refreshingNg: refreshing\",\"refreshedNg: refreshed\",\"isDroppedDownChangingNg: isDroppedDownChanging\",\"isDroppedDownChangedNg: isDroppedDownChanged\",\"isDroppedDownChangePC: isDroppedDownChange\",\"textChangedNg: textChanged\",\"textChangePC: textChange\",\"itemsSourceChangedNg: itemsSourceChanged\",\"formatItemNg: formatItem\",\"selectedIndexChangedNg: selectedIndexChanged\",\"selectedIndexChangePC: selectedIndexChange\",\"selectedItemChangePC: selectedItemChange\",\"selectedValueChangePC: selectedValueChange\"],providers:[{provide:forms_1.NG_VALUE_ACCESSOR,useFactory:wijmo_angular2_directivebase_1.WjValueAccessorFactory,multi:!0,deps:[\"WjComponent\"]}]};exports.wjComboBoxMeta=wjComboBoxMeta;var WjComboBox=function(e){__extends(WjComboBox,e);function WjComboBox(t,o,n){var r=e.call(this,wijmo_angular2_directivebase_1.WjDirectiveBehavior.getHostElement(t,o))||this;r.isInitialized=!1;r.wjModelProperty=\"selectedValue\";r._wjBehaviour=wijmo_angular2_directivebase_1.WjDirectiveBehavior.attach(r,t,o,n);r.created();return r}t=WjComboBox;WjComboBox.prototype.created=function(){};WjComboBox.prototype.ngOnInit=function(){this._wjBehaviour.ngOnInit()};WjComboBox.prototype.ngAfterViewInit=function(){this._wjBehaviour.ngAfterViewInit()};WjComboBox.prototype.ngOnDestroy=function(){this._wjBehaviour.ngOnDestroy()};WjComboBox.prototype.addEventListener=function(t,o,n,r){var a=this;void 0===r&&(r=!1);var i=wijmo_angular2_directivebase_1.WjDirectiveBehavior,s=i.ngZone;s&&i.outsideZoneEvents[o]?s.runOutsideAngular((function(){e.prototype.addEventListener.call(a,t,o,n,r)})):e.prototype.addEventListener.call(this,t,o,n,r)};var t;WjComboBox.meta={outputs:wjComboBoxMeta.outputs,changeEvents:{isDroppedDownChanged:[\"isDroppedDown\"],textChanged:[\"text\"],selectedIndexChanged:[\"selectedIndex\",\"selectedItem\",\"selectedValue\"]}};\nWjComboBox.ɵfac = function WjComboBox_Factory(t) { return new (t || WjComboBox)(ɵngcc0.ɵɵdirectiveInject(core_1.ElementRef), ɵngcc0.ɵɵdirectiveInject(core_1.Injector), ɵngcc0.ɵɵdirectiveInject(\"WjComponent\", 12)); };\nWjComboBox.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: WjComboBox, selectors: [[\"wj-combo-box\"]], inputs: { asyncBindings: \"asyncBindings\", wjModelProperty: \"wjModelProperty\", isDisabled: \"isDisabled\", isDroppedDown: \"isDroppedDown\", showDropDownButton: \"showDropDownButton\", autoExpandSelection: \"autoExpandSelection\", placeholder: \"placeholder\", dropDownCssClass: \"dropDownCssClass\", isAnimated: \"isAnimated\", isReadOnly: \"isReadOnly\", isRequired: \"isRequired\", inputType: \"inputType\", clickAction: \"clickAction\", displayMemberPath: \"displayMemberPath\", selectedValuePath: \"selectedValuePath\", headerPath: \"headerPath\", isContentHtml: \"isContentHtml\", isEditable: \"isEditable\", maxDropDownHeight: \"maxDropDownHeight\", maxDropDownWidth: \"maxDropDownWidth\", itemFormatter: \"itemFormatter\", showGroups: \"showGroups\", trimText: \"trimText\", itemsSource: \"itemsSource\", text: \"text\", selectedIndex: \"selectedIndex\", selectedItem: \"selectedItem\", selectedValue: \"selectedValue\" }, outputs: { initialized: \"initialized\", gotFocusNg: \"gotFocus\", lostFocusNg: \"lostFocus\", refreshingNg: \"refreshing\", refreshedNg: \"refreshed\", isDroppedDownChangingNg: \"isDroppedDownChanging\", isDroppedDownChangedNg: \"isDroppedDownChanged\", isDroppedDownChangePC: \"isDroppedDownChange\", textChangedNg: \"textChanged\", textChangePC: \"textChange\", itemsSourceChangedNg: \"itemsSourceChanged\", formatItemNg: \"formatItem\", selectedIndexChangedNg: \"selectedIndexChanged\", selectedIndexChangePC: \"selectedIndexChange\", selectedItemChangePC: \"selectedItemChange\", selectedValueChangePC: \"selectedValueChange\" }, features: [ɵngcc0.ɵɵProvidersFeature([{ provide: \"WjComponent\", useExisting: core_1.forwardRef((function () { return t; })) }].concat(wjComboBoxMeta.providers))], ngContentSelectors: _c0, decls: 2, vars: 0, template: function WjComboBox_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojectionDef();\n ɵngcc0.ɵɵelementStart(0, \"div\");\n ɵngcc0.ɵɵprojection(1);\n ɵngcc0.ɵɵelementEnd();\n } }, encapsulation: 2 });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(WjComboBox, [{\n type: core_1.Component,\n args: [{ selector: wjComboBoxMeta.selector, template: wjComboBoxMeta.template, inputs: wjComboBoxMeta.inputs, outputs: wjComboBoxMeta.outputs, providers: [{ provide: \"WjComponent\", useExisting: core_1.forwardRef((function () { return t; })) }].concat(wjComboBoxMeta.providers) }]\n }], function () { return [{ type: undefined, decorators: [{\n type: core_1.Inject,\n args: [core_1.ElementRef]\n }] }, { type: undefined, decorators: [{\n type: core_1.Inject,\n args: [core_1.Injector]\n }] }, { type: undefined, decorators: [{\n type: core_1.Inject,\n args: [\"WjComponent\"]\n }, {\n type: core_1.SkipSelf\n }, {\n type: core_1.Optional\n }] }]; }, null); })();return WjComboBox=t=__decorate([,__param(0,core_1.Inject(core_1.ElementRef)),__param(1,core_1.Inject(core_1.Injector)),__param(2,core_1.Inject(\"WjComponent\")),__param(2,core_1.SkipSelf()),__param(2,core_1.Optional())],WjComboBox)}(wjcInput.ComboBox);exports.WjComboBox=WjComboBox;var wjAutoCompleteMeta={selector:\"wj-auto-complete\",template:\"\",inputs:[\"asyncBindings\",\"wjModelProperty\",\"isDisabled\",\"isDroppedDown\",\"showDropDownButton\",\"autoExpandSelection\",\"placeholder\",\"dropDownCssClass\",\"isAnimated\",\"isReadOnly\",\"isRequired\",\"inputType\",\"clickAction\",\"displayMemberPath\",\"selectedValuePath\",\"headerPath\",\"isContentHtml\",\"isEditable\",\"maxDropDownHeight\",\"maxDropDownWidth\",\"itemFormatter\",\"showGroups\",\"trimText\",\"delay\",\"maxItems\",\"minLength\",\"cssMatch\",\"itemsSourceFunction\",\"searchMemberPath\",\"itemsSource\",\"text\",\"selectedIndex\",\"selectedItem\",\"selectedValue\"],outputs:[\"initialized\",\"gotFocusNg: gotFocus\",\"lostFocusNg: lostFocus\",\"refreshingNg: refreshing\",\"refreshedNg: refreshed\",\"isDroppedDownChangingNg: isDroppedDownChanging\",\"isDroppedDownChangedNg: isDroppedDownChanged\",\"isDroppedDownChangePC: isDroppedDownChange\",\"textChangedNg: textChanged\",\"textChangePC: textChange\",\"itemsSourceChangedNg: itemsSourceChanged\",\"formatItemNg: formatItem\",\"selectedIndexChangedNg: selectedIndexChanged\",\"selectedIndexChangePC: selectedIndexChange\",\"selectedItemChangePC: selectedItemChange\",\"selectedValueChangePC: selectedValueChange\"],providers:[{provide:forms_1.NG_VALUE_ACCESSOR,useFactory:wijmo_angular2_directivebase_1.WjValueAccessorFactory,multi:!0,deps:[\"WjComponent\"]}]};exports.wjAutoCompleteMeta=wjAutoCompleteMeta;var WjAutoComplete=function(e){__extends(WjAutoComplete,e);function WjAutoComplete(t,o,n){var r=e.call(this,wijmo_angular2_directivebase_1.WjDirectiveBehavior.getHostElement(t,o))||this;r.isInitialized=!1;r.wjModelProperty=\"selectedValue\";r._wjBehaviour=wijmo_angular2_directivebase_1.WjDirectiveBehavior.attach(r,t,o,n);r.created();return r}t=WjAutoComplete;WjAutoComplete.prototype.created=function(){};WjAutoComplete.prototype.ngOnInit=function(){this._wjBehaviour.ngOnInit()};WjAutoComplete.prototype.ngAfterViewInit=function(){this._wjBehaviour.ngAfterViewInit()};WjAutoComplete.prototype.ngOnDestroy=function(){this._wjBehaviour.ngOnDestroy()};WjAutoComplete.prototype.addEventListener=function(t,o,n,r){var a=this;void 0===r&&(r=!1);var i=wijmo_angular2_directivebase_1.WjDirectiveBehavior,s=i.ngZone;s&&i.outsideZoneEvents[o]?s.runOutsideAngular((function(){e.prototype.addEventListener.call(a,t,o,n,r)})):e.prototype.addEventListener.call(this,t,o,n,r)};var t;WjAutoComplete.meta={outputs:wjAutoCompleteMeta.outputs,changeEvents:{isDroppedDownChanged:[\"isDroppedDown\"],textChanged:[\"text\"],selectedIndexChanged:[\"selectedIndex\",\"selectedItem\",\"selectedValue\"]}};\nWjAutoComplete.ɵfac = function WjAutoComplete_Factory(t) { return new (t || WjAutoComplete)(ɵngcc0.ɵɵdirectiveInject(core_1.ElementRef), ɵngcc0.ɵɵdirectiveInject(core_1.Injector), ɵngcc0.ɵɵdirectiveInject(\"WjComponent\", 12)); };\nWjAutoComplete.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: WjAutoComplete, selectors: [[\"wj-auto-complete\"]], inputs: { asyncBindings: \"asyncBindings\", wjModelProperty: \"wjModelProperty\", isDisabled: \"isDisabled\", isDroppedDown: \"isDroppedDown\", showDropDownButton: \"showDropDownButton\", autoExpandSelection: \"autoExpandSelection\", placeholder: \"placeholder\", dropDownCssClass: \"dropDownCssClass\", isAnimated: \"isAnimated\", isReadOnly: \"isReadOnly\", isRequired: \"isRequired\", inputType: \"inputType\", clickAction: \"clickAction\", displayMemberPath: \"displayMemberPath\", selectedValuePath: \"selectedValuePath\", headerPath: \"headerPath\", isContentHtml: \"isContentHtml\", isEditable: \"isEditable\", maxDropDownHeight: \"maxDropDownHeight\", maxDropDownWidth: \"maxDropDownWidth\", itemFormatter: \"itemFormatter\", showGroups: \"showGroups\", trimText: \"trimText\", delay: \"delay\", maxItems: \"maxItems\", minLength: \"minLength\", cssMatch: \"cssMatch\", itemsSourceFunction: \"itemsSourceFunction\", searchMemberPath: \"searchMemberPath\", itemsSource: \"itemsSource\", text: \"text\", selectedIndex: \"selectedIndex\", selectedItem: \"selectedItem\", selectedValue: \"selectedValue\" }, outputs: { initialized: \"initialized\", gotFocusNg: \"gotFocus\", lostFocusNg: \"lostFocus\", refreshingNg: \"refreshing\", refreshedNg: \"refreshed\", isDroppedDownChangingNg: \"isDroppedDownChanging\", isDroppedDownChangedNg: \"isDroppedDownChanged\", isDroppedDownChangePC: \"isDroppedDownChange\", textChangedNg: \"textChanged\", textChangePC: \"textChange\", itemsSourceChangedNg: \"itemsSourceChanged\", formatItemNg: \"formatItem\", selectedIndexChangedNg: \"selectedIndexChanged\", selectedIndexChangePC: \"selectedIndexChange\", selectedItemChangePC: \"selectedItemChange\", selectedValueChangePC: \"selectedValueChange\" }, features: [ɵngcc0.ɵɵProvidersFeature([{ provide: \"WjComponent\", useExisting: core_1.forwardRef((function () { return t; })) }].concat(wjAutoCompleteMeta.providers))], decls: 0, vars: 0, template: function WjAutoComplete_Template(rf, ctx) { }, encapsulation: 2 });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(WjAutoComplete, [{\n type: core_1.Component,\n args: [{ selector: wjAutoCompleteMeta.selector, template: wjAutoCompleteMeta.template, inputs: wjAutoCompleteMeta.inputs, outputs: wjAutoCompleteMeta.outputs, providers: [{ provide: \"WjComponent\", useExisting: core_1.forwardRef((function () { return t; })) }].concat(wjAutoCompleteMeta.providers) }]\n }], function () { return [{ type: undefined, decorators: [{\n type: core_1.Inject,\n args: [core_1.ElementRef]\n }] }, { type: undefined, decorators: [{\n type: core_1.Inject,\n args: [core_1.Injector]\n }] }, { type: undefined, decorators: [{\n type: core_1.Inject,\n args: [\"WjComponent\"]\n }, {\n type: core_1.SkipSelf\n }, {\n type: core_1.Optional\n }] }]; }, null); })();return WjAutoComplete=t=__decorate([,__param(0,core_1.Inject(core_1.ElementRef)),__param(1,core_1.Inject(core_1.Injector)),__param(2,core_1.Inject(\"WjComponent\")),__param(2,core_1.SkipSelf()),__param(2,core_1.Optional())],WjAutoComplete)}(wjcInput.AutoComplete);exports.WjAutoComplete=WjAutoComplete;var wjCalendarMeta={selector:\"wj-calendar\",template:\"\",inputs:[\"asyncBindings\",\"wjModelProperty\",\"isDisabled\",\"monthView\",\"showHeader\",\"itemFormatter\",\"itemValidator\",\"firstDayOfWeek\",\"max\",\"min\",\"formatYearMonth\",\"formatDayHeaders\",\"formatDays\",\"formatYear\",\"formatMonths\",\"selectionMode\",\"isReadOnly\",\"repeatButtons\",\"showYearPicker\",\"value\",\"displayMonth\"],outputs:[\"initialized\",\"gotFocusNg: gotFocus\",\"lostFocusNg: lostFocus\",\"refreshingNg: refreshing\",\"refreshedNg: refreshed\",\"valueChangedNg: valueChanged\",\"valueChangePC: valueChange\",\"displayMonthChangedNg: displayMonthChanged\",\"displayMonthChangePC: displayMonthChange\",\"formatItemNg: formatItem\"],providers:[{provide:forms_1.NG_VALUE_ACCESSOR,useFactory:wijmo_angular2_directivebase_1.WjValueAccessorFactory,multi:!0,deps:[\"WjComponent\"]}]};exports.wjCalendarMeta=wjCalendarMeta;var WjCalendar=function(e){__extends(WjCalendar,e);function WjCalendar(t,o,n){var r=e.call(this,wijmo_angular2_directivebase_1.WjDirectiveBehavior.getHostElement(t,o))||this;r.isInitialized=!1;r.wjModelProperty=\"value\";r._wjBehaviour=wijmo_angular2_directivebase_1.WjDirectiveBehavior.attach(r,t,o,n);r.created();return r}t=WjCalendar;WjCalendar.prototype.created=function(){};WjCalendar.prototype.ngOnInit=function(){this._wjBehaviour.ngOnInit()};WjCalendar.prototype.ngAfterViewInit=function(){this._wjBehaviour.ngAfterViewInit()};WjCalendar.prototype.ngOnDestroy=function(){this._wjBehaviour.ngOnDestroy()};WjCalendar.prototype.addEventListener=function(t,o,n,r){var a=this;void 0===r&&(r=!1);var i=wijmo_angular2_directivebase_1.WjDirectiveBehavior,s=i.ngZone;s&&i.outsideZoneEvents[o]?s.runOutsideAngular((function(){e.prototype.addEventListener.call(a,t,o,n,r)})):e.prototype.addEventListener.call(this,t,o,n,r)};var t;WjCalendar.meta={outputs:wjCalendarMeta.outputs,changeEvents:{valueChanged:[\"value\"],displayMonthChanged:[\"displayMonth\"]}};\nWjCalendar.ɵfac = function WjCalendar_Factory(t) { return new (t || WjCalendar)(ɵngcc0.ɵɵdirectiveInject(core_1.ElementRef), ɵngcc0.ɵɵdirectiveInject(core_1.Injector), ɵngcc0.ɵɵdirectiveInject(\"WjComponent\", 12)); };\nWjCalendar.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: WjCalendar, selectors: [[\"wj-calendar\"]], inputs: { asyncBindings: \"asyncBindings\", wjModelProperty: \"wjModelProperty\", isDisabled: \"isDisabled\", monthView: \"monthView\", showHeader: \"showHeader\", itemFormatter: \"itemFormatter\", itemValidator: \"itemValidator\", firstDayOfWeek: \"firstDayOfWeek\", max: \"max\", min: \"min\", formatYearMonth: \"formatYearMonth\", formatDayHeaders: \"formatDayHeaders\", formatDays: \"formatDays\", formatYear: \"formatYear\", formatMonths: \"formatMonths\", selectionMode: \"selectionMode\", isReadOnly: \"isReadOnly\", repeatButtons: \"repeatButtons\", showYearPicker: \"showYearPicker\", value: \"value\", displayMonth: \"displayMonth\" }, outputs: { initialized: \"initialized\", gotFocusNg: \"gotFocus\", lostFocusNg: \"lostFocus\", refreshingNg: \"refreshing\", refreshedNg: \"refreshed\", valueChangedNg: \"valueChanged\", valueChangePC: \"valueChange\", displayMonthChangedNg: \"displayMonthChanged\", displayMonthChangePC: \"displayMonthChange\", formatItemNg: \"formatItem\" }, features: [ɵngcc0.ɵɵProvidersFeature([{ provide: \"WjComponent\", useExisting: core_1.forwardRef((function () { return t; })) }].concat(wjCalendarMeta.providers))], decls: 0, vars: 0, template: function WjCalendar_Template(rf, ctx) { }, encapsulation: 2 });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(WjCalendar, [{\n type: core_1.Component,\n args: [{ selector: wjCalendarMeta.selector, template: wjCalendarMeta.template, inputs: wjCalendarMeta.inputs, outputs: wjCalendarMeta.outputs, providers: [{ provide: \"WjComponent\", useExisting: core_1.forwardRef((function () { return t; })) }].concat(wjCalendarMeta.providers) }]\n }], function () { return [{ type: undefined, decorators: [{\n type: core_1.Inject,\n args: [core_1.ElementRef]\n }] }, { type: undefined, decorators: [{\n type: core_1.Inject,\n args: [core_1.Injector]\n }] }, { type: undefined, decorators: [{\n type: core_1.Inject,\n args: [\"WjComponent\"]\n }, {\n type: core_1.SkipSelf\n }, {\n type: core_1.Optional\n }] }]; }, null); })();return WjCalendar=t=__decorate([,__param(0,core_1.Inject(core_1.ElementRef)),__param(1,core_1.Inject(core_1.Injector)),__param(2,core_1.Inject(\"WjComponent\")),__param(2,core_1.SkipSelf()),__param(2,core_1.Optional())],WjCalendar)}(wjcInput.Calendar);exports.WjCalendar=WjCalendar;var wjColorPickerMeta={selector:\"wj-color-picker\",template:\"\",inputs:[\"asyncBindings\",\"wjModelProperty\",\"isDisabled\",\"showAlphaChannel\",\"showColorString\",\"palette\",\"value\"],outputs:[\"initialized\",\"gotFocusNg: gotFocus\",\"lostFocusNg: lostFocus\",\"refreshingNg: refreshing\",\"refreshedNg: refreshed\",\"valueChangedNg: valueChanged\",\"valueChangePC: valueChange\"],providers:[{provide:forms_1.NG_VALUE_ACCESSOR,useFactory:wijmo_angular2_directivebase_1.WjValueAccessorFactory,multi:!0,deps:[\"WjComponent\"]}]};exports.wjColorPickerMeta=wjColorPickerMeta;var WjColorPicker=function(e){__extends(WjColorPicker,e);function WjColorPicker(t,o,n){var r=e.call(this,wijmo_angular2_directivebase_1.WjDirectiveBehavior.getHostElement(t,o))||this;r.isInitialized=!1;r.wjModelProperty=\"value\";r._wjBehaviour=wijmo_angular2_directivebase_1.WjDirectiveBehavior.attach(r,t,o,n);r.created();return r}t=WjColorPicker;WjColorPicker.prototype.created=function(){};WjColorPicker.prototype.ngOnInit=function(){this._wjBehaviour.ngOnInit()};WjColorPicker.prototype.ngAfterViewInit=function(){this._wjBehaviour.ngAfterViewInit()};WjColorPicker.prototype.ngOnDestroy=function(){this._wjBehaviour.ngOnDestroy()};WjColorPicker.prototype.addEventListener=function(t,o,n,r){var a=this;void 0===r&&(r=!1);var i=wijmo_angular2_directivebase_1.WjDirectiveBehavior,s=i.ngZone;s&&i.outsideZoneEvents[o]?s.runOutsideAngular((function(){e.prototype.addEventListener.call(a,t,o,n,r)})):e.prototype.addEventListener.call(this,t,o,n,r)};var t;WjColorPicker.meta={outputs:wjColorPickerMeta.outputs,changeEvents:{valueChanged:[\"value\"]}};\nWjColorPicker.ɵfac = function WjColorPicker_Factory(t) { return new (t || WjColorPicker)(ɵngcc0.ɵɵdirectiveInject(core_1.ElementRef), ɵngcc0.ɵɵdirectiveInject(core_1.Injector), ɵngcc0.ɵɵdirectiveInject(\"WjComponent\", 12)); };\nWjColorPicker.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: WjColorPicker, selectors: [[\"wj-color-picker\"]], inputs: { asyncBindings: \"asyncBindings\", wjModelProperty: \"wjModelProperty\", isDisabled: \"isDisabled\", showAlphaChannel: \"showAlphaChannel\", showColorString: \"showColorString\", palette: \"palette\", value: \"value\" }, outputs: { initialized: \"initialized\", gotFocusNg: \"gotFocus\", lostFocusNg: \"lostFocus\", refreshingNg: \"refreshing\", refreshedNg: \"refreshed\", valueChangedNg: \"valueChanged\", valueChangePC: \"valueChange\" }, features: [ɵngcc0.ɵɵProvidersFeature([{ provide: \"WjComponent\", useExisting: core_1.forwardRef((function () { return t; })) }].concat(wjColorPickerMeta.providers))], decls: 0, vars: 0, template: function WjColorPicker_Template(rf, ctx) { }, encapsulation: 2 });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(WjColorPicker, [{\n type: core_1.Component,\n args: [{ selector: wjColorPickerMeta.selector, template: wjColorPickerMeta.template, inputs: wjColorPickerMeta.inputs, outputs: wjColorPickerMeta.outputs, providers: [{ provide: \"WjComponent\", useExisting: core_1.forwardRef((function () { return t; })) }].concat(wjColorPickerMeta.providers) }]\n }], function () { return [{ type: undefined, decorators: [{\n type: core_1.Inject,\n args: [core_1.ElementRef]\n }] }, { type: undefined, decorators: [{\n type: core_1.Inject,\n args: [core_1.Injector]\n }] }, { type: undefined, decorators: [{\n type: core_1.Inject,\n args: [\"WjComponent\"]\n }, {\n type: core_1.SkipSelf\n }, {\n type: core_1.Optional\n }] }]; }, null); })();return WjColorPicker=t=__decorate([,__param(0,core_1.Inject(core_1.ElementRef)),__param(1,core_1.Inject(core_1.Injector)),__param(2,core_1.Inject(\"WjComponent\")),__param(2,core_1.SkipSelf()),__param(2,core_1.Optional())],WjColorPicker)}(wjcInput.ColorPicker);exports.WjColorPicker=WjColorPicker;var wjInputMaskMeta={selector:\"wj-input-mask\",template:\"\",inputs:[\"asyncBindings\",\"wjModelProperty\",\"isDisabled\",\"mask\",\"isRequired\",\"isReadOnly\",\"promptChar\",\"placeholder\",\"inputType\",\"rawValue\",\"value\"],outputs:[\"initialized\",\"gotFocusNg: gotFocus\",\"lostFocusNg: lostFocus\",\"refreshingNg: refreshing\",\"refreshedNg: refreshed\",\"valueChangedNg: valueChanged\",\"rawValueChangePC: rawValueChange\",\"valueChangePC: valueChange\"],providers:[{provide:forms_1.NG_VALUE_ACCESSOR,useFactory:wijmo_angular2_directivebase_1.WjValueAccessorFactory,multi:!0,deps:[\"WjComponent\"]}]};exports.wjInputMaskMeta=wjInputMaskMeta;var WjInputMask=function(e){__extends(WjInputMask,e);function WjInputMask(t,o,n){var r=e.call(this,wijmo_angular2_directivebase_1.WjDirectiveBehavior.getHostElement(t,o))||this;r.isInitialized=!1;r.wjModelProperty=\"value\";r._wjBehaviour=wijmo_angular2_directivebase_1.WjDirectiveBehavior.attach(r,t,o,n);r.created();return r}t=WjInputMask;WjInputMask.prototype.created=function(){};WjInputMask.prototype.ngOnInit=function(){this._wjBehaviour.ngOnInit()};WjInputMask.prototype.ngAfterViewInit=function(){this._wjBehaviour.ngAfterViewInit()};WjInputMask.prototype.ngOnDestroy=function(){this._wjBehaviour.ngOnDestroy()};WjInputMask.prototype.addEventListener=function(t,o,n,r){var a=this;void 0===r&&(r=!1);var i=wijmo_angular2_directivebase_1.WjDirectiveBehavior,s=i.ngZone;s&&i.outsideZoneEvents[o]?s.runOutsideAngular((function(){e.prototype.addEventListener.call(a,t,o,n,r)})):e.prototype.addEventListener.call(this,t,o,n,r)};var t;WjInputMask.meta={outputs:wjInputMaskMeta.outputs,changeEvents:{valueChanged:[\"rawValue\",\"value\"]}};\nWjInputMask.ɵfac = function WjInputMask_Factory(t) { return new (t || WjInputMask)(ɵngcc0.ɵɵdirectiveInject(core_1.ElementRef), ɵngcc0.ɵɵdirectiveInject(core_1.Injector), ɵngcc0.ɵɵdirectiveInject(\"WjComponent\", 12)); };\nWjInputMask.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: WjInputMask, selectors: [[\"wj-input-mask\"]], inputs: { asyncBindings: \"asyncBindings\", wjModelProperty: \"wjModelProperty\", isDisabled: \"isDisabled\", mask: \"mask\", isRequired: \"isRequired\", isReadOnly: \"isReadOnly\", promptChar: \"promptChar\", placeholder: \"placeholder\", inputType: \"inputType\", rawValue: \"rawValue\", value: \"value\" }, outputs: { initialized: \"initialized\", gotFocusNg: \"gotFocus\", lostFocusNg: \"lostFocus\", refreshingNg: \"refreshing\", refreshedNg: \"refreshed\", valueChangedNg: \"valueChanged\", rawValueChangePC: \"rawValueChange\", valueChangePC: \"valueChange\" }, features: [ɵngcc0.ɵɵProvidersFeature([{ provide: \"WjComponent\", useExisting: core_1.forwardRef((function () { return t; })) }].concat(wjInputMaskMeta.providers))], decls: 0, vars: 0, template: function WjInputMask_Template(rf, ctx) { }, encapsulation: 2 });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(WjInputMask, [{\n type: core_1.Component,\n args: [{ selector: wjInputMaskMeta.selector, template: wjInputMaskMeta.template, inputs: wjInputMaskMeta.inputs, outputs: wjInputMaskMeta.outputs, providers: [{ provide: \"WjComponent\", useExisting: core_1.forwardRef((function () { return t; })) }].concat(wjInputMaskMeta.providers) }]\n }], function () { return [{ type: undefined, decorators: [{\n type: core_1.Inject,\n args: [core_1.ElementRef]\n }] }, { type: undefined, decorators: [{\n type: core_1.Inject,\n args: [core_1.Injector]\n }] }, { type: undefined, decorators: [{\n type: core_1.Inject,\n args: [\"WjComponent\"]\n }, {\n type: core_1.SkipSelf\n }, {\n type: core_1.Optional\n }] }]; }, null); })();return WjInputMask=t=__decorate([,__param(0,core_1.Inject(core_1.ElementRef)),__param(1,core_1.Inject(core_1.Injector)),__param(2,core_1.Inject(\"WjComponent\")),__param(2,core_1.SkipSelf()),__param(2,core_1.Optional())],WjInputMask)}(wjcInput.InputMask);exports.WjInputMask=WjInputMask;var wjInputColorMeta={selector:\"wj-input-color\",template:\"\",inputs:[\"asyncBindings\",\"wjModelProperty\",\"isDisabled\",\"isDroppedDown\",\"showDropDownButton\",\"autoExpandSelection\",\"placeholder\",\"dropDownCssClass\",\"isAnimated\",\"isReadOnly\",\"isRequired\",\"inputType\",\"clickAction\",\"showAlphaChannel\",\"value\",\"text\"],outputs:[\"initialized\",\"gotFocusNg: gotFocus\",\"lostFocusNg: lostFocus\",\"refreshingNg: refreshing\",\"refreshedNg: refreshed\",\"isDroppedDownChangingNg: isDroppedDownChanging\",\"isDroppedDownChangedNg: isDroppedDownChanged\",\"isDroppedDownChangePC: isDroppedDownChange\",\"textChangedNg: textChanged\",\"textChangePC: textChange\",\"valueChangedNg: valueChanged\",\"valueChangePC: valueChange\"],providers:[{provide:forms_1.NG_VALUE_ACCESSOR,useFactory:wijmo_angular2_directivebase_1.WjValueAccessorFactory,multi:!0,deps:[\"WjComponent\"]}]};exports.wjInputColorMeta=wjInputColorMeta;var WjInputColor=function(e){__extends(WjInputColor,e);function WjInputColor(t,o,n){var r=e.call(this,wijmo_angular2_directivebase_1.WjDirectiveBehavior.getHostElement(t,o))||this;r.isInitialized=!1;r.wjModelProperty=\"value\";r._wjBehaviour=wijmo_angular2_directivebase_1.WjDirectiveBehavior.attach(r,t,o,n);r.created();return r}t=WjInputColor;WjInputColor.prototype.created=function(){};WjInputColor.prototype.ngOnInit=function(){this._wjBehaviour.ngOnInit()};WjInputColor.prototype.ngAfterViewInit=function(){this._wjBehaviour.ngAfterViewInit()};WjInputColor.prototype.ngOnDestroy=function(){this._wjBehaviour.ngOnDestroy()};WjInputColor.prototype.addEventListener=function(t,o,n,r){var a=this;void 0===r&&(r=!1);var i=wijmo_angular2_directivebase_1.WjDirectiveBehavior,s=i.ngZone;s&&i.outsideZoneEvents[o]?s.runOutsideAngular((function(){e.prototype.addEventListener.call(a,t,o,n,r)})):e.prototype.addEventListener.call(this,t,o,n,r)};var t;WjInputColor.meta={outputs:wjInputColorMeta.outputs,changeEvents:{isDroppedDownChanged:[\"isDroppedDown\"],textChanged:[\"text\"],valueChanged:[\"value\"]}};\nWjInputColor.ɵfac = function WjInputColor_Factory(t) { return new (t || WjInputColor)(ɵngcc0.ɵɵdirectiveInject(core_1.ElementRef), ɵngcc0.ɵɵdirectiveInject(core_1.Injector), ɵngcc0.ɵɵdirectiveInject(\"WjComponent\", 12)); };\nWjInputColor.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: WjInputColor, selectors: [[\"wj-input-color\"]], inputs: { asyncBindings: \"asyncBindings\", wjModelProperty: \"wjModelProperty\", isDisabled: \"isDisabled\", isDroppedDown: \"isDroppedDown\", showDropDownButton: \"showDropDownButton\", autoExpandSelection: \"autoExpandSelection\", placeholder: \"placeholder\", dropDownCssClass: \"dropDownCssClass\", isAnimated: \"isAnimated\", isReadOnly: \"isReadOnly\", isRequired: \"isRequired\", inputType: \"inputType\", clickAction: \"clickAction\", showAlphaChannel: \"showAlphaChannel\", value: \"value\", text: \"text\" }, outputs: { initialized: \"initialized\", gotFocusNg: \"gotFocus\", lostFocusNg: \"lostFocus\", refreshingNg: \"refreshing\", refreshedNg: \"refreshed\", isDroppedDownChangingNg: \"isDroppedDownChanging\", isDroppedDownChangedNg: \"isDroppedDownChanged\", isDroppedDownChangePC: \"isDroppedDownChange\", textChangedNg: \"textChanged\", textChangePC: \"textChange\", valueChangedNg: \"valueChanged\", valueChangePC: \"valueChange\" }, features: [ɵngcc0.ɵɵProvidersFeature([{ provide: \"WjComponent\", useExisting: core_1.forwardRef((function () { return t; })) }].concat(wjInputColorMeta.providers))], decls: 0, vars: 0, template: function WjInputColor_Template(rf, ctx) { }, encapsulation: 2 });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(WjInputColor, [{\n type: core_1.Component,\n args: [{ selector: wjInputColorMeta.selector, template: wjInputColorMeta.template, inputs: wjInputColorMeta.inputs, outputs: wjInputColorMeta.outputs, providers: [{ provide: \"WjComponent\", useExisting: core_1.forwardRef((function () { return t; })) }].concat(wjInputColorMeta.providers) }]\n }], function () { return [{ type: undefined, decorators: [{\n type: core_1.Inject,\n args: [core_1.ElementRef]\n }] }, { type: undefined, decorators: [{\n type: core_1.Inject,\n args: [core_1.Injector]\n }] }, { type: undefined, decorators: [{\n type: core_1.Inject,\n args: [\"WjComponent\"]\n }, {\n type: core_1.SkipSelf\n }, {\n type: core_1.Optional\n }] }]; }, null); })();return WjInputColor=t=__decorate([,__param(0,core_1.Inject(core_1.ElementRef)),__param(1,core_1.Inject(core_1.Injector)),__param(2,core_1.Inject(\"WjComponent\")),__param(2,core_1.SkipSelf()),__param(2,core_1.Optional())],WjInputColor)}(wjcInput.InputColor);exports.WjInputColor=WjInputColor;var wjMultiSelectMeta={selector:\"wj-multi-select\",template:\"
\",inputs:[\"asyncBindings\",\"wjModelProperty\",\"isDisabled\",\"isDroppedDown\",\"showDropDownButton\",\"autoExpandSelection\",\"placeholder\",\"dropDownCssClass\",\"isAnimated\",\"isReadOnly\",\"isRequired\",\"inputType\",\"clickAction\",\"displayMemberPath\",\"selectedValuePath\",\"headerPath\",\"isContentHtml\",\"isEditable\",\"maxDropDownHeight\",\"maxDropDownWidth\",\"itemFormatter\",\"showGroups\",\"trimText\",\"checkedMemberPath\",\"maxHeaderItems\",\"headerFormat\",\"headerFormatter\",\"showSelectAllCheckbox\",\"selectAllLabel\",\"showFilterInput\",\"filterInputPlaceholder\",\"checkOnFilter\",\"itemsSource\",\"checkedItems\",\"text\",\"selectedIndex\",\"selectedItem\",\"selectedValue\"],outputs:[\"initialized\",\"gotFocusNg: gotFocus\",\"lostFocusNg: lostFocus\",\"refreshingNg: refreshing\",\"refreshedNg: refreshed\",\"isDroppedDownChangingNg: isDroppedDownChanging\",\"isDroppedDownChangedNg: isDroppedDownChanged\",\"isDroppedDownChangePC: isDroppedDownChange\",\"textChangedNg: textChanged\",\"textChangePC: textChange\",\"itemsSourceChangedNg: itemsSourceChanged\",\"formatItemNg: formatItem\",\"selectedIndexChangedNg: selectedIndexChanged\",\"selectedIndexChangePC: selectedIndexChange\",\"selectedItemChangePC: selectedItemChange\",\"selectedValueChangePC: selectedValueChange\",\"checkedItemsChangedNg: checkedItemsChanged\",\"checkedItemsChangePC: checkedItemsChange\"],providers:[{provide:forms_1.NG_VALUE_ACCESSOR,useFactory:wijmo_angular2_directivebase_1.WjValueAccessorFactory,multi:!0,deps:[\"WjComponent\"]}]};exports.wjMultiSelectMeta=wjMultiSelectMeta;var WjMultiSelect=function(e){__extends(WjMultiSelect,e);function WjMultiSelect(t,o,n){var r=e.call(this,wijmo_angular2_directivebase_1.WjDirectiveBehavior.getHostElement(t,o))||this;r.isInitialized=!1;r.wjModelProperty=\"checkedItems\";r._wjBehaviour=wijmo_angular2_directivebase_1.WjDirectiveBehavior.attach(r,t,o,n);r.created();return r}t=WjMultiSelect;WjMultiSelect.prototype.created=function(){};WjMultiSelect.prototype.ngOnInit=function(){this._wjBehaviour.ngOnInit()};WjMultiSelect.prototype.ngAfterViewInit=function(){this._wjBehaviour.ngAfterViewInit()};WjMultiSelect.prototype.ngOnDestroy=function(){this._wjBehaviour.ngOnDestroy()};WjMultiSelect.prototype.addEventListener=function(t,o,n,r){var a=this;void 0===r&&(r=!1);var i=wijmo_angular2_directivebase_1.WjDirectiveBehavior,s=i.ngZone;s&&i.outsideZoneEvents[o]?s.runOutsideAngular((function(){e.prototype.addEventListener.call(a,t,o,n,r)})):e.prototype.addEventListener.call(this,t,o,n,r)};var t;WjMultiSelect.meta={outputs:wjMultiSelectMeta.outputs,changeEvents:{isDroppedDownChanged:[\"isDroppedDown\"],textChanged:[\"text\"],selectedIndexChanged:[\"selectedIndex\",\"selectedItem\",\"selectedValue\"],checkedItemsChanged:[\"checkedItems\"]}};\nWjMultiSelect.ɵfac = function WjMultiSelect_Factory(t) { return new (t || WjMultiSelect)(ɵngcc0.ɵɵdirectiveInject(core_1.ElementRef), ɵngcc0.ɵɵdirectiveInject(core_1.Injector), ɵngcc0.ɵɵdirectiveInject(\"WjComponent\", 12)); };\nWjMultiSelect.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: WjMultiSelect, selectors: [[\"wj-multi-select\"]], inputs: { asyncBindings: \"asyncBindings\", wjModelProperty: \"wjModelProperty\", isDisabled: \"isDisabled\", isDroppedDown: \"isDroppedDown\", showDropDownButton: \"showDropDownButton\", autoExpandSelection: \"autoExpandSelection\", placeholder: \"placeholder\", dropDownCssClass: \"dropDownCssClass\", isAnimated: \"isAnimated\", isReadOnly: \"isReadOnly\", isRequired: \"isRequired\", inputType: \"inputType\", clickAction: \"clickAction\", displayMemberPath: \"displayMemberPath\", selectedValuePath: \"selectedValuePath\", headerPath: \"headerPath\", isContentHtml: \"isContentHtml\", isEditable: \"isEditable\", maxDropDownHeight: \"maxDropDownHeight\", maxDropDownWidth: \"maxDropDownWidth\", itemFormatter: \"itemFormatter\", showGroups: \"showGroups\", trimText: \"trimText\", checkedMemberPath: \"checkedMemberPath\", maxHeaderItems: \"maxHeaderItems\", headerFormat: \"headerFormat\", headerFormatter: \"headerFormatter\", showSelectAllCheckbox: \"showSelectAllCheckbox\", selectAllLabel: \"selectAllLabel\", showFilterInput: \"showFilterInput\", filterInputPlaceholder: \"filterInputPlaceholder\", checkOnFilter: \"checkOnFilter\", itemsSource: \"itemsSource\", checkedItems: \"checkedItems\", text: \"text\", selectedIndex: \"selectedIndex\", selectedItem: \"selectedItem\", selectedValue: \"selectedValue\" }, outputs: { initialized: \"initialized\", gotFocusNg: \"gotFocus\", lostFocusNg: \"lostFocus\", refreshingNg: \"refreshing\", refreshedNg: \"refreshed\", isDroppedDownChangingNg: \"isDroppedDownChanging\", isDroppedDownChangedNg: \"isDroppedDownChanged\", isDroppedDownChangePC: \"isDroppedDownChange\", textChangedNg: \"textChanged\", textChangePC: \"textChange\", itemsSourceChangedNg: \"itemsSourceChanged\", formatItemNg: \"formatItem\", selectedIndexChangedNg: \"selectedIndexChanged\", selectedIndexChangePC: \"selectedIndexChange\", selectedItemChangePC: \"selectedItemChange\", selectedValueChangePC: \"selectedValueChange\", checkedItemsChangedNg: \"checkedItemsChanged\", checkedItemsChangePC: \"checkedItemsChange\" }, features: [ɵngcc0.ɵɵProvidersFeature([{ provide: \"WjComponent\", useExisting: core_1.forwardRef((function () { return t; })) }].concat(wjMultiSelectMeta.providers))], ngContentSelectors: _c0, decls: 2, vars: 0, template: function WjMultiSelect_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojectionDef();\n ɵngcc0.ɵɵelementStart(0, \"div\");\n ɵngcc0.ɵɵprojection(1);\n ɵngcc0.ɵɵelementEnd();\n } }, encapsulation: 2 });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(WjMultiSelect, [{\n type: core_1.Component,\n args: [{ selector: wjMultiSelectMeta.selector, template: wjMultiSelectMeta.template, inputs: wjMultiSelectMeta.inputs, outputs: wjMultiSelectMeta.outputs, providers: [{ provide: \"WjComponent\", useExisting: core_1.forwardRef((function () { return t; })) }].concat(wjMultiSelectMeta.providers) }]\n }], function () { return [{ type: undefined, decorators: [{\n type: core_1.Inject,\n args: [core_1.ElementRef]\n }] }, { type: undefined, decorators: [{\n type: core_1.Inject,\n args: [core_1.Injector]\n }] }, { type: undefined, decorators: [{\n type: core_1.Inject,\n args: [\"WjComponent\"]\n }, {\n type: core_1.SkipSelf\n }, {\n type: core_1.Optional\n }] }]; }, null); })();return WjMultiSelect=t=__decorate([,__param(0,core_1.Inject(core_1.ElementRef)),__param(1,core_1.Inject(core_1.Injector)),__param(2,core_1.Inject(\"WjComponent\")),__param(2,core_1.SkipSelf()),__param(2,core_1.Optional())],WjMultiSelect)}(wjcInput.MultiSelect);exports.WjMultiSelect=WjMultiSelect;var wjMultiAutoCompleteMeta={selector:\"wj-multi-auto-complete\",template:\"\",inputs:[\"asyncBindings\",\"wjModelProperty\",\"isDisabled\",\"isDroppedDown\",\"showDropDownButton\",\"autoExpandSelection\",\"placeholder\",\"dropDownCssClass\",\"isAnimated\",\"isReadOnly\",\"isRequired\",\"inputType\",\"clickAction\",\"displayMemberPath\",\"selectedValuePath\",\"headerPath\",\"isContentHtml\",\"isEditable\",\"maxDropDownHeight\",\"maxDropDownWidth\",\"itemFormatter\",\"showGroups\",\"trimText\",\"delay\",\"maxItems\",\"minLength\",\"cssMatch\",\"itemsSourceFunction\",\"searchMemberPath\",\"maxSelectedItems\",\"selectedItems\",\"itemsSource\",\"selectedMemberPath\",\"text\",\"selectedIndex\",\"selectedItem\",\"selectedValue\"],outputs:[\"initialized\",\"gotFocusNg: gotFocus\",\"lostFocusNg: lostFocus\",\"refreshingNg: refreshing\",\"refreshedNg: refreshed\",\"isDroppedDownChangingNg: isDroppedDownChanging\",\"isDroppedDownChangedNg: isDroppedDownChanged\",\"isDroppedDownChangePC: isDroppedDownChange\",\"textChangedNg: textChanged\",\"textChangePC: textChange\",\"itemsSourceChangedNg: itemsSourceChanged\",\"formatItemNg: formatItem\",\"selectedIndexChangedNg: selectedIndexChanged\",\"selectedIndexChangePC: selectedIndexChange\",\"selectedItemChangePC: selectedItemChange\",\"selectedValueChangePC: selectedValueChange\",\"selectedItemsChangedNg: selectedItemsChanged\",\"selectedItemsChangePC: selectedItemsChange\"],providers:[{provide:forms_1.NG_VALUE_ACCESSOR,useFactory:wijmo_angular2_directivebase_1.WjValueAccessorFactory,multi:!0,deps:[\"WjComponent\"]}]};exports.wjMultiAutoCompleteMeta=wjMultiAutoCompleteMeta;var WjMultiAutoComplete=function(e){__extends(WjMultiAutoComplete,e);function WjMultiAutoComplete(t,o,n){var r=e.call(this,wijmo_angular2_directivebase_1.WjDirectiveBehavior.getHostElement(t,o))||this;r.isInitialized=!1;r.wjModelProperty=\"selectedItems\";r._wjBehaviour=wijmo_angular2_directivebase_1.WjDirectiveBehavior.attach(r,t,o,n);r.created();return r}t=WjMultiAutoComplete;WjMultiAutoComplete.prototype.created=function(){};WjMultiAutoComplete.prototype.ngOnInit=function(){this._wjBehaviour.ngOnInit()};WjMultiAutoComplete.prototype.ngAfterViewInit=function(){this._wjBehaviour.ngAfterViewInit()};WjMultiAutoComplete.prototype.ngOnDestroy=function(){this._wjBehaviour.ngOnDestroy()};WjMultiAutoComplete.prototype.addEventListener=function(t,o,n,r){var a=this;void 0===r&&(r=!1);var i=wijmo_angular2_directivebase_1.WjDirectiveBehavior,s=i.ngZone;s&&i.outsideZoneEvents[o]?s.runOutsideAngular((function(){e.prototype.addEventListener.call(a,t,o,n,r)})):e.prototype.addEventListener.call(this,t,o,n,r)};var t;WjMultiAutoComplete.meta={outputs:wjMultiAutoCompleteMeta.outputs,changeEvents:{isDroppedDownChanged:[\"isDroppedDown\"],textChanged:[\"text\"],selectedIndexChanged:[\"selectedIndex\",\"selectedItem\",\"selectedValue\"],selectedItemsChanged:[\"selectedItems\"]}};\nWjMultiAutoComplete.ɵfac = function WjMultiAutoComplete_Factory(t) { return new (t || WjMultiAutoComplete)(ɵngcc0.ɵɵdirectiveInject(core_1.ElementRef), ɵngcc0.ɵɵdirectiveInject(core_1.Injector), ɵngcc0.ɵɵdirectiveInject(\"WjComponent\", 12)); };\nWjMultiAutoComplete.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: WjMultiAutoComplete, selectors: [[\"wj-multi-auto-complete\"]], inputs: { asyncBindings: \"asyncBindings\", wjModelProperty: \"wjModelProperty\", isDisabled: \"isDisabled\", isDroppedDown: \"isDroppedDown\", showDropDownButton: \"showDropDownButton\", autoExpandSelection: \"autoExpandSelection\", placeholder: \"placeholder\", dropDownCssClass: \"dropDownCssClass\", isAnimated: \"isAnimated\", isReadOnly: \"isReadOnly\", isRequired: \"isRequired\", inputType: \"inputType\", clickAction: \"clickAction\", displayMemberPath: \"displayMemberPath\", selectedValuePath: \"selectedValuePath\", headerPath: \"headerPath\", isContentHtml: \"isContentHtml\", isEditable: \"isEditable\", maxDropDownHeight: \"maxDropDownHeight\", maxDropDownWidth: \"maxDropDownWidth\", itemFormatter: \"itemFormatter\", showGroups: \"showGroups\", trimText: \"trimText\", delay: \"delay\", maxItems: \"maxItems\", minLength: \"minLength\", cssMatch: \"cssMatch\", itemsSourceFunction: \"itemsSourceFunction\", searchMemberPath: \"searchMemberPath\", maxSelectedItems: \"maxSelectedItems\", selectedItems: \"selectedItems\", itemsSource: \"itemsSource\", selectedMemberPath: \"selectedMemberPath\", text: \"text\", selectedIndex: \"selectedIndex\", selectedItem: \"selectedItem\", selectedValue: \"selectedValue\" }, outputs: { initialized: \"initialized\", gotFocusNg: \"gotFocus\", lostFocusNg: \"lostFocus\", refreshingNg: \"refreshing\", refreshedNg: \"refreshed\", isDroppedDownChangingNg: \"isDroppedDownChanging\", isDroppedDownChangedNg: \"isDroppedDownChanged\", isDroppedDownChangePC: \"isDroppedDownChange\", textChangedNg: \"textChanged\", textChangePC: \"textChange\", itemsSourceChangedNg: \"itemsSourceChanged\", formatItemNg: \"formatItem\", selectedIndexChangedNg: \"selectedIndexChanged\", selectedIndexChangePC: \"selectedIndexChange\", selectedItemChangePC: \"selectedItemChange\", selectedValueChangePC: \"selectedValueChange\", selectedItemsChangedNg: \"selectedItemsChanged\", selectedItemsChangePC: \"selectedItemsChange\" }, features: [ɵngcc0.ɵɵProvidersFeature([{ provide: \"WjComponent\", useExisting: core_1.forwardRef((function () { return t; })) }].concat(wjMultiAutoCompleteMeta.providers))], decls: 0, vars: 0, template: function WjMultiAutoComplete_Template(rf, ctx) { }, encapsulation: 2 });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(WjMultiAutoComplete, [{\n type: core_1.Component,\n args: [{ selector: wjMultiAutoCompleteMeta.selector, template: wjMultiAutoCompleteMeta.template, inputs: wjMultiAutoCompleteMeta.inputs, outputs: wjMultiAutoCompleteMeta.outputs, providers: [{ provide: \"WjComponent\", useExisting: core_1.forwardRef((function () { return t; })) }].concat(wjMultiAutoCompleteMeta.providers) }]\n }], function () { return [{ type: undefined, decorators: [{\n type: core_1.Inject,\n args: [core_1.ElementRef]\n }] }, { type: undefined, decorators: [{\n type: core_1.Inject,\n args: [core_1.Injector]\n }] }, { type: undefined, decorators: [{\n type: core_1.Inject,\n args: [\"WjComponent\"]\n }, {\n type: core_1.SkipSelf\n }, {\n type: core_1.Optional\n }] }]; }, null); })();return WjMultiAutoComplete=t=__decorate([,__param(0,core_1.Inject(core_1.ElementRef)),__param(1,core_1.Inject(core_1.Injector)),__param(2,core_1.Inject(\"WjComponent\")),__param(2,core_1.SkipSelf()),__param(2,core_1.Optional())],WjMultiAutoComplete)}(wjcInput.MultiAutoComplete);exports.WjMultiAutoComplete=WjMultiAutoComplete;var wjInputNumberMeta={selector:\"wj-input-number\",template:\"\",inputs:[\"asyncBindings\",\"wjModelProperty\",\"isDisabled\",\"showSpinner\",\"repeatButtons\",\"max\",\"min\",\"step\",\"isRequired\",\"placeholder\",\"inputType\",\"format\",\"isReadOnly\",\"value\",\"text\"],outputs:[\"initialized\",\"gotFocusNg: gotFocus\",\"lostFocusNg: lostFocus\",\"refreshingNg: refreshing\",\"refreshedNg: refreshed\",\"valueChangedNg: valueChanged\",\"valueChangePC: valueChange\",\"textChangedNg: textChanged\",\"textChangePC: textChange\"],providers:[{provide:forms_1.NG_VALUE_ACCESSOR,useFactory:wijmo_angular2_directivebase_1.WjValueAccessorFactory,multi:!0,deps:[\"WjComponent\"]}]};exports.wjInputNumberMeta=wjInputNumberMeta;var WjInputNumber=function(e){__extends(WjInputNumber,e);function WjInputNumber(t,o,n){var r=e.call(this,wijmo_angular2_directivebase_1.WjDirectiveBehavior.getHostElement(t,o))||this;r.isInitialized=!1;r.wjModelProperty=\"value\";r._wjBehaviour=wijmo_angular2_directivebase_1.WjDirectiveBehavior.attach(r,t,o,n);r.created();return r}t=WjInputNumber;WjInputNumber.prototype.created=function(){};WjInputNumber.prototype.ngOnInit=function(){this._wjBehaviour.ngOnInit()};WjInputNumber.prototype.ngAfterViewInit=function(){this._wjBehaviour.ngAfterViewInit()};WjInputNumber.prototype.ngOnDestroy=function(){this._wjBehaviour.ngOnDestroy()};WjInputNumber.prototype.addEventListener=function(t,o,n,r){var a=this;void 0===r&&(r=!1);var i=wijmo_angular2_directivebase_1.WjDirectiveBehavior,s=i.ngZone;s&&i.outsideZoneEvents[o]?s.runOutsideAngular((function(){e.prototype.addEventListener.call(a,t,o,n,r)})):e.prototype.addEventListener.call(this,t,o,n,r)};var t;WjInputNumber.meta={outputs:wjInputNumberMeta.outputs,changeEvents:{valueChanged:[\"value\"],textChanged:[\"text\"]}};\nWjInputNumber.ɵfac = function WjInputNumber_Factory(t) { return new (t || WjInputNumber)(ɵngcc0.ɵɵdirectiveInject(core_1.ElementRef), ɵngcc0.ɵɵdirectiveInject(core_1.Injector), ɵngcc0.ɵɵdirectiveInject(\"WjComponent\", 12)); };\nWjInputNumber.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: WjInputNumber, selectors: [[\"wj-input-number\"]], inputs: { asyncBindings: \"asyncBindings\", wjModelProperty: \"wjModelProperty\", isDisabled: \"isDisabled\", showSpinner: \"showSpinner\", repeatButtons: \"repeatButtons\", max: \"max\", min: \"min\", step: \"step\", isRequired: \"isRequired\", placeholder: \"placeholder\", inputType: \"inputType\", format: \"format\", isReadOnly: \"isReadOnly\", value: \"value\", text: \"text\" }, outputs: { initialized: \"initialized\", gotFocusNg: \"gotFocus\", lostFocusNg: \"lostFocus\", refreshingNg: \"refreshing\", refreshedNg: \"refreshed\", valueChangedNg: \"valueChanged\", valueChangePC: \"valueChange\", textChangedNg: \"textChanged\", textChangePC: \"textChange\" }, features: [ɵngcc0.ɵɵProvidersFeature([{ provide: \"WjComponent\", useExisting: core_1.forwardRef((function () { return t; })) }].concat(wjInputNumberMeta.providers))], decls: 0, vars: 0, template: function WjInputNumber_Template(rf, ctx) { }, encapsulation: 2 });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(WjInputNumber, [{\n type: core_1.Component,\n args: [{ selector: wjInputNumberMeta.selector, template: wjInputNumberMeta.template, inputs: wjInputNumberMeta.inputs, outputs: wjInputNumberMeta.outputs, providers: [{ provide: \"WjComponent\", useExisting: core_1.forwardRef((function () { return t; })) }].concat(wjInputNumberMeta.providers) }]\n }], function () { return [{ type: undefined, decorators: [{\n type: core_1.Inject,\n args: [core_1.ElementRef]\n }] }, { type: undefined, decorators: [{\n type: core_1.Inject,\n args: [core_1.Injector]\n }] }, { type: undefined, decorators: [{\n type: core_1.Inject,\n args: [\"WjComponent\"]\n }, {\n type: core_1.SkipSelf\n }, {\n type: core_1.Optional\n }] }]; }, null); })();return WjInputNumber=t=__decorate([,__param(0,core_1.Inject(core_1.ElementRef)),__param(1,core_1.Inject(core_1.Injector)),__param(2,core_1.Inject(\"WjComponent\")),__param(2,core_1.SkipSelf()),__param(2,core_1.Optional())],WjInputNumber)}(wjcInput.InputNumber);exports.WjInputNumber=WjInputNumber;var wjInputDateMeta={selector:\"wj-input-date\",template:\"\",inputs:[\"asyncBindings\",\"wjModelProperty\",\"isDisabled\",\"isDroppedDown\",\"showDropDownButton\",\"autoExpandSelection\",\"placeholder\",\"dropDownCssClass\",\"isAnimated\",\"isReadOnly\",\"isRequired\",\"inputType\",\"clickAction\",\"selectionMode\",\"format\",\"mask\",\"max\",\"min\",\"inputType\",\"repeatButtons\",\"showYearPicker\",\"itemValidator\",\"itemFormatter\",\"text\",\"value\"],outputs:[\"initialized\",\"gotFocusNg: gotFocus\",\"lostFocusNg: lostFocus\",\"refreshingNg: refreshing\",\"refreshedNg: refreshed\",\"isDroppedDownChangingNg: isDroppedDownChanging\",\"isDroppedDownChangedNg: isDroppedDownChanged\",\"isDroppedDownChangePC: isDroppedDownChange\",\"textChangedNg: textChanged\",\"textChangePC: textChange\",\"valueChangedNg: valueChanged\",\"valueChangePC: valueChange\"],providers:[{provide:forms_1.NG_VALUE_ACCESSOR,useFactory:wijmo_angular2_directivebase_1.WjValueAccessorFactory,multi:!0,deps:[\"WjComponent\"]}]};exports.wjInputDateMeta=wjInputDateMeta;var WjInputDate=function(e){__extends(WjInputDate,e);function WjInputDate(t,o,n){var r=e.call(this,wijmo_angular2_directivebase_1.WjDirectiveBehavior.getHostElement(t,o))||this;r.isInitialized=!1;r.wjModelProperty=\"value\";r._wjBehaviour=wijmo_angular2_directivebase_1.WjDirectiveBehavior.attach(r,t,o,n);r.created();return r}t=WjInputDate;WjInputDate.prototype.created=function(){};WjInputDate.prototype.ngOnInit=function(){this._wjBehaviour.ngOnInit()};WjInputDate.prototype.ngAfterViewInit=function(){this._wjBehaviour.ngAfterViewInit()};WjInputDate.prototype.ngOnDestroy=function(){this._wjBehaviour.ngOnDestroy()};WjInputDate.prototype.addEventListener=function(t,o,n,r){var a=this;void 0===r&&(r=!1);var i=wijmo_angular2_directivebase_1.WjDirectiveBehavior,s=i.ngZone;s&&i.outsideZoneEvents[o]?s.runOutsideAngular((function(){e.prototype.addEventListener.call(a,t,o,n,r)})):e.prototype.addEventListener.call(this,t,o,n,r)};var t;WjInputDate.meta={outputs:wjInputDateMeta.outputs,changeEvents:{isDroppedDownChanged:[\"isDroppedDown\"],textChanged:[\"text\"],valueChanged:[\"value\"]}};\nWjInputDate.ɵfac = function WjInputDate_Factory(t) { return new (t || WjInputDate)(ɵngcc0.ɵɵdirectiveInject(core_1.ElementRef), ɵngcc0.ɵɵdirectiveInject(core_1.Injector), ɵngcc0.ɵɵdirectiveInject(\"WjComponent\", 12)); };\nWjInputDate.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: WjInputDate, selectors: [[\"wj-input-date\"]], inputs: { asyncBindings: \"asyncBindings\", wjModelProperty: \"wjModelProperty\", isDisabled: \"isDisabled\", isDroppedDown: \"isDroppedDown\", showDropDownButton: \"showDropDownButton\", autoExpandSelection: \"autoExpandSelection\", placeholder: \"placeholder\", dropDownCssClass: \"dropDownCssClass\", isAnimated: \"isAnimated\", isReadOnly: \"isReadOnly\", isRequired: \"isRequired\", inputType: \"inputType\", clickAction: \"clickAction\", selectionMode: \"selectionMode\", format: \"format\", mask: \"mask\", max: \"max\", min: \"min\", repeatButtons: \"repeatButtons\", showYearPicker: \"showYearPicker\", itemValidator: \"itemValidator\", itemFormatter: \"itemFormatter\", text: \"text\", value: \"value\" }, outputs: { initialized: \"initialized\", gotFocusNg: \"gotFocus\", lostFocusNg: \"lostFocus\", refreshingNg: \"refreshing\", refreshedNg: \"refreshed\", isDroppedDownChangingNg: \"isDroppedDownChanging\", isDroppedDownChangedNg: \"isDroppedDownChanged\", isDroppedDownChangePC: \"isDroppedDownChange\", textChangedNg: \"textChanged\", textChangePC: \"textChange\", valueChangedNg: \"valueChanged\", valueChangePC: \"valueChange\" }, features: [ɵngcc0.ɵɵProvidersFeature([{ provide: \"WjComponent\", useExisting: core_1.forwardRef((function () { return t; })) }].concat(wjInputDateMeta.providers))], decls: 0, vars: 0, template: function WjInputDate_Template(rf, ctx) { }, encapsulation: 2 });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(WjInputDate, [{\n type: core_1.Component,\n args: [{ selector: wjInputDateMeta.selector, template: wjInputDateMeta.template, inputs: wjInputDateMeta.inputs, outputs: wjInputDateMeta.outputs, providers: [{ provide: \"WjComponent\", useExisting: core_1.forwardRef((function () { return t; })) }].concat(wjInputDateMeta.providers) }]\n }], function () { return [{ type: undefined, decorators: [{\n type: core_1.Inject,\n args: [core_1.ElementRef]\n }] }, { type: undefined, decorators: [{\n type: core_1.Inject,\n args: [core_1.Injector]\n }] }, { type: undefined, decorators: [{\n type: core_1.Inject,\n args: [\"WjComponent\"]\n }, {\n type: core_1.SkipSelf\n }, {\n type: core_1.Optional\n }] }]; }, null); })();return WjInputDate=t=__decorate([,__param(0,core_1.Inject(core_1.ElementRef)),__param(1,core_1.Inject(core_1.Injector)),__param(2,core_1.Inject(\"WjComponent\")),__param(2,core_1.SkipSelf()),__param(2,core_1.Optional())],WjInputDate)}(wjcInput.InputDate);exports.WjInputDate=WjInputDate;var wjInputTimeMeta={selector:\"wj-input-time\",template:\"\",inputs:[\"asyncBindings\",\"wjModelProperty\",\"isDisabled\",\"isDroppedDown\",\"showDropDownButton\",\"autoExpandSelection\",\"placeholder\",\"dropDownCssClass\",\"isAnimated\",\"isReadOnly\",\"isRequired\",\"inputType\",\"clickAction\",\"displayMemberPath\",\"selectedValuePath\",\"headerPath\",\"isContentHtml\",\"isEditable\",\"maxDropDownHeight\",\"maxDropDownWidth\",\"itemFormatter\",\"showGroups\",\"trimText\",\"max\",\"min\",\"step\",\"format\",\"mask\",\"inputType\",\"itemsSource\",\"text\",\"selectedIndex\",\"selectedItem\",\"selectedValue\",\"value\"],outputs:[\"initialized\",\"gotFocusNg: gotFocus\",\"lostFocusNg: lostFocus\",\"refreshingNg: refreshing\",\"refreshedNg: refreshed\",\"isDroppedDownChangingNg: isDroppedDownChanging\",\"isDroppedDownChangedNg: isDroppedDownChanged\",\"isDroppedDownChangePC: isDroppedDownChange\",\"textChangedNg: textChanged\",\"textChangePC: textChange\",\"itemsSourceChangedNg: itemsSourceChanged\",\"formatItemNg: formatItem\",\"selectedIndexChangedNg: selectedIndexChanged\",\"selectedIndexChangePC: selectedIndexChange\",\"selectedItemChangePC: selectedItemChange\",\"selectedValueChangePC: selectedValueChange\",\"valueChangedNg: valueChanged\",\"valueChangePC: valueChange\"],providers:[{provide:forms_1.NG_VALUE_ACCESSOR,useFactory:wijmo_angular2_directivebase_1.WjValueAccessorFactory,multi:!0,deps:[\"WjComponent\"]}]};exports.wjInputTimeMeta=wjInputTimeMeta;var WjInputTime=function(e){__extends(WjInputTime,e);function WjInputTime(t,o,n){var r=e.call(this,wijmo_angular2_directivebase_1.WjDirectiveBehavior.getHostElement(t,o))||this;r.isInitialized=!1;r.wjModelProperty=\"value\";r._wjBehaviour=wijmo_angular2_directivebase_1.WjDirectiveBehavior.attach(r,t,o,n);r.created();return r}t=WjInputTime;WjInputTime.prototype.created=function(){};WjInputTime.prototype.ngOnInit=function(){this._wjBehaviour.ngOnInit()};WjInputTime.prototype.ngAfterViewInit=function(){this._wjBehaviour.ngAfterViewInit()};WjInputTime.prototype.ngOnDestroy=function(){this._wjBehaviour.ngOnDestroy()};WjInputTime.prototype.addEventListener=function(t,o,n,r){var a=this;void 0===r&&(r=!1);var i=wijmo_angular2_directivebase_1.WjDirectiveBehavior,s=i.ngZone;s&&i.outsideZoneEvents[o]?s.runOutsideAngular((function(){e.prototype.addEventListener.call(a,t,o,n,r)})):e.prototype.addEventListener.call(this,t,o,n,r)};var t;WjInputTime.meta={outputs:wjInputTimeMeta.outputs,changeEvents:{isDroppedDownChanged:[\"isDroppedDown\"],textChanged:[\"text\"],selectedIndexChanged:[\"selectedIndex\",\"selectedItem\",\"selectedValue\"],valueChanged:[\"value\"]}};\nWjInputTime.ɵfac = function WjInputTime_Factory(t) { return new (t || WjInputTime)(ɵngcc0.ɵɵdirectiveInject(core_1.ElementRef), ɵngcc0.ɵɵdirectiveInject(core_1.Injector), ɵngcc0.ɵɵdirectiveInject(\"WjComponent\", 12)); };\nWjInputTime.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: WjInputTime, selectors: [[\"wj-input-time\"]], inputs: { asyncBindings: \"asyncBindings\", wjModelProperty: \"wjModelProperty\", isDisabled: \"isDisabled\", isDroppedDown: \"isDroppedDown\", showDropDownButton: \"showDropDownButton\", autoExpandSelection: \"autoExpandSelection\", placeholder: \"placeholder\", dropDownCssClass: \"dropDownCssClass\", isAnimated: \"isAnimated\", isReadOnly: \"isReadOnly\", isRequired: \"isRequired\", inputType: \"inputType\", clickAction: \"clickAction\", displayMemberPath: \"displayMemberPath\", selectedValuePath: \"selectedValuePath\", headerPath: \"headerPath\", isContentHtml: \"isContentHtml\", isEditable: \"isEditable\", maxDropDownHeight: \"maxDropDownHeight\", maxDropDownWidth: \"maxDropDownWidth\", itemFormatter: \"itemFormatter\", showGroups: \"showGroups\", trimText: \"trimText\", max: \"max\", min: \"min\", step: \"step\", format: \"format\", mask: \"mask\", itemsSource: \"itemsSource\", text: \"text\", selectedIndex: \"selectedIndex\", selectedItem: \"selectedItem\", selectedValue: \"selectedValue\", value: \"value\" }, outputs: { initialized: \"initialized\", gotFocusNg: \"gotFocus\", lostFocusNg: \"lostFocus\", refreshingNg: \"refreshing\", refreshedNg: \"refreshed\", isDroppedDownChangingNg: \"isDroppedDownChanging\", isDroppedDownChangedNg: \"isDroppedDownChanged\", isDroppedDownChangePC: \"isDroppedDownChange\", textChangedNg: \"textChanged\", textChangePC: \"textChange\", itemsSourceChangedNg: \"itemsSourceChanged\", formatItemNg: \"formatItem\", selectedIndexChangedNg: \"selectedIndexChanged\", selectedIndexChangePC: \"selectedIndexChange\", selectedItemChangePC: \"selectedItemChange\", selectedValueChangePC: \"selectedValueChange\", valueChangedNg: \"valueChanged\", valueChangePC: \"valueChange\" }, features: [ɵngcc0.ɵɵProvidersFeature([{ provide: \"WjComponent\", useExisting: core_1.forwardRef((function () { return t; })) }].concat(wjInputTimeMeta.providers))], decls: 0, vars: 0, template: function WjInputTime_Template(rf, ctx) { }, encapsulation: 2 });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(WjInputTime, [{\n type: core_1.Component,\n args: [{ selector: wjInputTimeMeta.selector, template: wjInputTimeMeta.template, inputs: wjInputTimeMeta.inputs, outputs: wjInputTimeMeta.outputs, providers: [{ provide: \"WjComponent\", useExisting: core_1.forwardRef((function () { return t; })) }].concat(wjInputTimeMeta.providers) }]\n }], function () { return [{ type: undefined, decorators: [{\n type: core_1.Inject,\n args: [core_1.ElementRef]\n }] }, { type: undefined, decorators: [{\n type: core_1.Inject,\n args: [core_1.Injector]\n }] }, { type: undefined, decorators: [{\n type: core_1.Inject,\n args: [\"WjComponent\"]\n }, {\n type: core_1.SkipSelf\n }, {\n type: core_1.Optional\n }] }]; }, null); })();return WjInputTime=t=__decorate([,__param(0,core_1.Inject(core_1.ElementRef)),__param(1,core_1.Inject(core_1.Injector)),__param(2,core_1.Inject(\"WjComponent\")),__param(2,core_1.SkipSelf()),__param(2,core_1.Optional())],WjInputTime)}(wjcInput.InputTime);exports.WjInputTime=WjInputTime;var wjInputDateTimeMeta={selector:\"wj-input-date-time\",template:\"\",inputs:[\"asyncBindings\",\"wjModelProperty\",\"isDisabled\",\"isDroppedDown\",\"showDropDownButton\",\"autoExpandSelection\",\"placeholder\",\"dropDownCssClass\",\"isAnimated\",\"isReadOnly\",\"isRequired\",\"inputType\",\"clickAction\",\"selectionMode\",\"format\",\"mask\",\"max\",\"min\",\"inputType\",\"repeatButtons\",\"showYearPicker\",\"itemValidator\",\"itemFormatter\",\"timeMax\",\"timeMin\",\"timeStep\",\"timeFormat\",\"text\",\"value\"],outputs:[\"initialized\",\"gotFocusNg: gotFocus\",\"lostFocusNg: lostFocus\",\"refreshingNg: refreshing\",\"refreshedNg: refreshed\",\"isDroppedDownChangingNg: isDroppedDownChanging\",\"isDroppedDownChangedNg: isDroppedDownChanged\",\"isDroppedDownChangePC: isDroppedDownChange\",\"textChangedNg: textChanged\",\"textChangePC: textChange\",\"valueChangedNg: valueChanged\",\"valueChangePC: valueChange\"],providers:[{provide:forms_1.NG_VALUE_ACCESSOR,useFactory:wijmo_angular2_directivebase_1.WjValueAccessorFactory,multi:!0,deps:[\"WjComponent\"]}]};exports.wjInputDateTimeMeta=wjInputDateTimeMeta;var WjInputDateTime=function(e){__extends(WjInputDateTime,e);function WjInputDateTime(t,o,n){var r=e.call(this,wijmo_angular2_directivebase_1.WjDirectiveBehavior.getHostElement(t,o))||this;r.isInitialized=!1;r.wjModelProperty=\"value\";r._wjBehaviour=wijmo_angular2_directivebase_1.WjDirectiveBehavior.attach(r,t,o,n);r.created();return r}t=WjInputDateTime;WjInputDateTime.prototype.created=function(){};WjInputDateTime.prototype.ngOnInit=function(){this._wjBehaviour.ngOnInit()};WjInputDateTime.prototype.ngAfterViewInit=function(){this._wjBehaviour.ngAfterViewInit()};WjInputDateTime.prototype.ngOnDestroy=function(){this._wjBehaviour.ngOnDestroy()};WjInputDateTime.prototype.addEventListener=function(t,o,n,r){var a=this;void 0===r&&(r=!1);var i=wijmo_angular2_directivebase_1.WjDirectiveBehavior,s=i.ngZone;s&&i.outsideZoneEvents[o]?s.runOutsideAngular((function(){e.prototype.addEventListener.call(a,t,o,n,r)})):e.prototype.addEventListener.call(this,t,o,n,r)};var t;WjInputDateTime.meta={outputs:wjInputDateTimeMeta.outputs,changeEvents:{isDroppedDownChanged:[\"isDroppedDown\"],textChanged:[\"text\"],valueChanged:[\"value\"]}};\nWjInputDateTime.ɵfac = function WjInputDateTime_Factory(t) { return new (t || WjInputDateTime)(ɵngcc0.ɵɵdirectiveInject(core_1.ElementRef), ɵngcc0.ɵɵdirectiveInject(core_1.Injector), ɵngcc0.ɵɵdirectiveInject(\"WjComponent\", 12)); };\nWjInputDateTime.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: WjInputDateTime, selectors: [[\"wj-input-date-time\"]], inputs: { asyncBindings: \"asyncBindings\", wjModelProperty: \"wjModelProperty\", isDisabled: \"isDisabled\", isDroppedDown: \"isDroppedDown\", showDropDownButton: \"showDropDownButton\", autoExpandSelection: \"autoExpandSelection\", placeholder: \"placeholder\", dropDownCssClass: \"dropDownCssClass\", isAnimated: \"isAnimated\", isReadOnly: \"isReadOnly\", isRequired: \"isRequired\", inputType: \"inputType\", clickAction: \"clickAction\", selectionMode: \"selectionMode\", format: \"format\", mask: \"mask\", max: \"max\", min: \"min\", repeatButtons: \"repeatButtons\", showYearPicker: \"showYearPicker\", itemValidator: \"itemValidator\", itemFormatter: \"itemFormatter\", timeMax: \"timeMax\", timeMin: \"timeMin\", timeStep: \"timeStep\", timeFormat: \"timeFormat\", text: \"text\", value: \"value\" }, outputs: { initialized: \"initialized\", gotFocusNg: \"gotFocus\", lostFocusNg: \"lostFocus\", refreshingNg: \"refreshing\", refreshedNg: \"refreshed\", isDroppedDownChangingNg: \"isDroppedDownChanging\", isDroppedDownChangedNg: \"isDroppedDownChanged\", isDroppedDownChangePC: \"isDroppedDownChange\", textChangedNg: \"textChanged\", textChangePC: \"textChange\", valueChangedNg: \"valueChanged\", valueChangePC: \"valueChange\" }, features: [ɵngcc0.ɵɵProvidersFeature([{ provide: \"WjComponent\", useExisting: core_1.forwardRef((function () { return t; })) }].concat(wjInputDateTimeMeta.providers))], decls: 0, vars: 0, template: function WjInputDateTime_Template(rf, ctx) { }, encapsulation: 2 });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(WjInputDateTime, [{\n type: core_1.Component,\n args: [{ selector: wjInputDateTimeMeta.selector, template: wjInputDateTimeMeta.template, inputs: wjInputDateTimeMeta.inputs, outputs: wjInputDateTimeMeta.outputs, providers: [{ provide: \"WjComponent\", useExisting: core_1.forwardRef((function () { return t; })) }].concat(wjInputDateTimeMeta.providers) }]\n }], function () { return [{ type: undefined, decorators: [{\n type: core_1.Inject,\n args: [core_1.ElementRef]\n }] }, { type: undefined, decorators: [{\n type: core_1.Inject,\n args: [core_1.Injector]\n }] }, { type: undefined, decorators: [{\n type: core_1.Inject,\n args: [\"WjComponent\"]\n }, {\n type: core_1.SkipSelf\n }, {\n type: core_1.Optional\n }] }]; }, null); })();return WjInputDateTime=t=__decorate([,__param(0,core_1.Inject(core_1.ElementRef)),__param(1,core_1.Inject(core_1.Injector)),__param(2,core_1.Inject(\"WjComponent\")),__param(2,core_1.SkipSelf()),__param(2,core_1.Optional())],WjInputDateTime)}(wjcInput.InputDateTime);exports.WjInputDateTime=WjInputDateTime;var wjMenuMeta={selector:\"wj-menu\",template:\"
\",inputs:[\"asyncBindings\",\"wjModelProperty\",\"isDisabled\",\"isDroppedDown\",\"showDropDownButton\",\"autoExpandSelection\",\"placeholder\",\"dropDownCssClass\",\"isAnimated\",\"isReadOnly\",\"isRequired\",\"inputType\",\"clickAction\",\"displayMemberPath\",\"selectedValuePath\",\"headerPath\",\"isContentHtml\",\"isEditable\",\"maxDropDownHeight\",\"maxDropDownWidth\",\"itemFormatter\",\"showGroups\",\"trimText\",\"header\",\"commandParameterPath\",\"commandPath\",\"subItemsPath\",\"openOnHover\",\"closeOnLeave\",\"isButton\",\"itemsSource\",\"text\",\"selectedIndex\",\"selectedItem\",\"selectedValue\",\"value\"],outputs:[\"initialized\",\"gotFocusNg: gotFocus\",\"lostFocusNg: lostFocus\",\"refreshingNg: refreshing\",\"refreshedNg: refreshed\",\"isDroppedDownChangingNg: isDroppedDownChanging\",\"isDroppedDownChangedNg: isDroppedDownChanged\",\"isDroppedDownChangePC: isDroppedDownChange\",\"textChangedNg: textChanged\",\"textChangePC: textChange\",\"itemsSourceChangedNg: itemsSourceChanged\",\"formatItemNg: formatItem\",\"selectedIndexChangedNg: selectedIndexChanged\",\"selectedIndexChangePC: selectedIndexChange\",\"selectedItemChangePC: selectedItemChange\",\"selectedValueChangePC: selectedValueChange\",\"itemClickedNg: itemClicked\",\"valueChangePC: valueChange\"],providers:[{provide:forms_1.NG_VALUE_ACCESSOR,useFactory:wijmo_angular2_directivebase_1.WjValueAccessorFactory,multi:!0,deps:[\"WjComponent\"]}]};exports.wjMenuMeta=wjMenuMeta;var WjMenu=function(e){__extends(WjMenu,e);function WjMenu(t,o,n){var r=e.call(this,wijmo_angular2_directivebase_1.WjDirectiveBehavior.getHostElement(t,o))||this;r.isInitialized=!1;r.wjModelProperty=\"selectedValue\";r._wjBehaviour=wijmo_angular2_directivebase_1.WjDirectiveBehavior.attach(r,t,o,n);r.itemsSource=new wjcCore.ObservableArray;r.selectedIndex=0;r.created();return r}t=WjMenu;WjMenu.prototype.created=function(){};WjMenu.prototype.ngOnInit=function(){this._wjBehaviour.ngOnInit();this._attachToControl();this._updateHeader()};WjMenu.prototype.ngAfterViewInit=function(){this._wjBehaviour.ngAfterViewInit()};WjMenu.prototype.ngOnDestroy=function(){this._wjBehaviour.ngOnDestroy();this.listBox.formatItem.removeHandler(this._fmtItem,this);this.listBox.loadingItems.removeHandler(this._loadingItems,this)};WjMenu.prototype.addEventListener=function(t,o,n,r){var a=this;void 0===r&&(r=!1);var i=wijmo_angular2_directivebase_1.WjDirectiveBehavior,s=i.ngZone;s&&i.outsideZoneEvents[o]?s.runOutsideAngular((function(){e.prototype.addEventListener.call(a,t,o,n,r)})):e.prototype.addEventListener.call(this,t,o,n,r)};Object.defineProperty(WjMenu.prototype,\"value\",{get:function(){return this._value},set:function(e){this._value=e;if(null!=e){this.selectedValue=e;this._updateHeader()}},enumerable:!0,configurable:!0});WjMenu.prototype.ngOnChanges=function(e){var t=e.header;if(t){this._definedHeader=t.currentValue;this._updateHeader()}};WjMenu.prototype.ngAfterContentInit=function(){this.value=this.value};WjMenu.prototype.onItemClicked=function(t){this.value=this.selectedValue;e.prototype.onItemClicked.call(this,t)};WjMenu.prototype.refresh=function(t){void 0===t&&(t=!0);e.prototype.refresh.call(this,t);this._updateHeader()};WjMenu.prototype._attachToControl=function(){this.listBox.formatItem.addHandler(this._fmtItem,this);this.listBox.loadingItems.addHandler(this._loadingItems,this);this.invalidate()};WjMenu.prototype._loadingItems=function(e){for(var t=e.hostElement.getElementsByClassName(\"wj-listbox-item\"),o=t.length-1;o>=0;o--){t[o].textContent=\"\"}};WjMenu.prototype._fmtItem=function(e,t){if(t.data instanceof WjMenuItem){var o=t.item;o.textContent=\"\";var n=t.data,r=n.contentRoot;if(r){o.appendChild(r);n.added(o)}}};WjMenu.prototype._updateHeader=function(){this.header=this._definedHeader||\"\";var e=this.selectedItem;if(null!=this.value&&e&&this.displayMemberPath){var t=null;if(e instanceof WjMenuItem){var o=e.contentRoot;t=o?o.innerHTML:e[this.displayMemberPath]}null!=t&&(this.header+=\": \"+t+\"\")}};var t;WjMenu.meta={outputs:wjMenuMeta.outputs,changeEvents:{isDroppedDownChanged:[\"isDroppedDown\"],textChanged:[\"text\"],selectedIndexChanged:[\"selectedIndex\",\"selectedItem\",\"selectedValue\"],itemClicked:[\"value\"]}};\nWjMenu.ɵfac = function WjMenu_Factory(t) { return new (t || WjMenu)(ɵngcc0.ɵɵdirectiveInject(core_1.ElementRef), ɵngcc0.ɵɵdirectiveInject(core_1.Injector), ɵngcc0.ɵɵdirectiveInject(\"WjComponent\", 12)); };\nWjMenu.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: WjMenu, selectors: [[\"wj-menu\"]], inputs: { asyncBindings: \"asyncBindings\", wjModelProperty: \"wjModelProperty\", isDisabled: \"isDisabled\", isDroppedDown: \"isDroppedDown\", showDropDownButton: \"showDropDownButton\", autoExpandSelection: \"autoExpandSelection\", placeholder: \"placeholder\", dropDownCssClass: \"dropDownCssClass\", isAnimated: \"isAnimated\", isReadOnly: \"isReadOnly\", isRequired: \"isRequired\", inputType: \"inputType\", clickAction: \"clickAction\", displayMemberPath: \"displayMemberPath\", selectedValuePath: \"selectedValuePath\", headerPath: \"headerPath\", isContentHtml: \"isContentHtml\", isEditable: \"isEditable\", maxDropDownHeight: \"maxDropDownHeight\", maxDropDownWidth: \"maxDropDownWidth\", itemFormatter: \"itemFormatter\", showGroups: \"showGroups\", trimText: \"trimText\", header: \"header\", commandParameterPath: \"commandParameterPath\", commandPath: \"commandPath\", subItemsPath: \"subItemsPath\", openOnHover: \"openOnHover\", closeOnLeave: \"closeOnLeave\", isButton: \"isButton\", itemsSource: \"itemsSource\", text: \"text\", selectedIndex: \"selectedIndex\", selectedItem: \"selectedItem\", selectedValue: \"selectedValue\", value: \"value\" }, outputs: { initialized: \"initialized\", gotFocusNg: \"gotFocus\", lostFocusNg: \"lostFocus\", refreshingNg: \"refreshing\", refreshedNg: \"refreshed\", isDroppedDownChangingNg: \"isDroppedDownChanging\", isDroppedDownChangedNg: \"isDroppedDownChanged\", isDroppedDownChangePC: \"isDroppedDownChange\", textChangedNg: \"textChanged\", textChangePC: \"textChange\", itemsSourceChangedNg: \"itemsSourceChanged\", formatItemNg: \"formatItem\", selectedIndexChangedNg: \"selectedIndexChanged\", selectedIndexChangePC: \"selectedIndexChange\", selectedItemChangePC: \"selectedItemChange\", selectedValueChangePC: \"selectedValueChange\", itemClickedNg: \"itemClicked\", valueChangePC: \"valueChange\" }, features: [ɵngcc0.ɵɵProvidersFeature([{ provide: \"WjComponent\", useExisting: core_1.forwardRef((function () { return t; })) }].concat(wjMenuMeta.providers)), ɵngcc0.ɵɵNgOnChangesFeature], ngContentSelectors: _c0, decls: 2, vars: 0, template: function WjMenu_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojectionDef();\n ɵngcc0.ɵɵelementStart(0, \"div\");\n ɵngcc0.ɵɵprojection(1);\n ɵngcc0.ɵɵelementEnd();\n } }, encapsulation: 2 });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(WjMenu, [{\n type: core_1.Component,\n args: [{ selector: wjMenuMeta.selector, template: wjMenuMeta.template, inputs: wjMenuMeta.inputs, outputs: wjMenuMeta.outputs, providers: [{ provide: \"WjComponent\", useExisting: core_1.forwardRef((function () { return t; })) }].concat(wjMenuMeta.providers) }]\n }], function () { return [{ type: undefined, decorators: [{\n type: core_1.Inject,\n args: [core_1.ElementRef]\n }] }, { type: undefined, decorators: [{\n type: core_1.Inject,\n args: [core_1.Injector]\n }] }, { type: undefined, decorators: [{\n type: core_1.Inject,\n args: [\"WjComponent\"]\n }, {\n type: core_1.SkipSelf\n }, {\n type: core_1.Optional\n }] }]; }, null); })();return WjMenu=t=__decorate([,__param(0,core_1.Inject(core_1.ElementRef)),__param(1,core_1.Inject(core_1.Injector)),__param(2,core_1.Inject(\"WjComponent\")),__param(2,core_1.SkipSelf()),__param(2,core_1.Optional())],WjMenu)}(wjcInput.Menu);exports.WjMenu=WjMenu;var wjMenuItemMeta={selector:\"wj-menu-item\",template:\"
\",inputs:[\"wjProperty\",\"value\",\"cmd\",\"cmdParam\"],outputs:[\"initialized\"],providers:[]};exports.wjMenuItemMeta=wjMenuItemMeta;var WjMenuItem=function(){function WjMenuItem(e,t,o,n){this.viewContainerRef=n;this.isInitialized=!1;this.wjProperty=\"itemsSource\";var r=this._wjBehaviour=wijmo_angular2_directivebase_1.WjDirectiveBehavior.attach(this,e,t,o);this._ownerMenu=r.parentBehavior.directive;this.created()}e=WjMenuItem;WjMenuItem.prototype.created=function(){};WjMenuItem.prototype.ngOnInit=function(){this._wjBehaviour.ngOnInit();var e=this._ownerMenu;1==e.itemsSource.length&&e.selectedIndex<0&&(e.selectedIndex=0);e.displayMemberPath||(e.displayMemberPath=\"header\");e.selectedValuePath||(e.selectedValuePath=\"value\");e.commandPath||(e.commandPath=\"cmd\");e.commandParameterPath||(e.commandParameterPath=\"cmdParam\")};WjMenuItem.prototype.ngAfterViewInit=function(){this._wjBehaviour.ngAfterViewInit()};WjMenuItem.prototype.ngOnDestroy=function(){this._wjBehaviour.ngOnDestroy()};WjMenuItem.prototype.added=function(e){};var e;WjMenuItem.meta={outputs:wjMenuItemMeta.outputs,siblingId:\"menuItemDir\"};\nWjMenuItem.ɵfac = function WjMenuItem_Factory(t) { return new (t || WjMenuItem)(ɵngcc0.ɵɵdirectiveInject(core_1.ElementRef), ɵngcc0.ɵɵdirectiveInject(core_1.Injector), ɵngcc0.ɵɵdirectiveInject(\"WjComponent\", 12), ɵngcc0.ɵɵdirectiveInject(core_1.ViewContainerRef)); };\nWjMenuItem.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: WjMenuItem, selectors: [[\"wj-menu-item\"]], inputs: { wjProperty: \"wjProperty\", value: \"value\", cmd: \"cmd\", cmdParam: \"cmdParam\" }, outputs: { initialized: \"initialized\" }, features: [ɵngcc0.ɵɵProvidersFeature([{ provide: \"WjComponent\", useExisting: core_1.forwardRef((function () { return e; })) }].concat(wjMenuItemMeta.providers))], ngContentSelectors: _c0, decls: 1, vars: 0, consts: [[4, \"wjMenuItemTemplateDir\"]], template: function WjMenuItem_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojectionDef();\n ɵngcc0.ɵɵtemplate(0, WjMenuItem_div_0_Template, 2, 0, \"div\", 0);\n } }, dependencies: function () { return [WjMenuItemTemplateDir]; }, encapsulation: 2 });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(WjMenuItem, [{\n type: core_1.Component,\n args: [{ selector: wjMenuItemMeta.selector, template: wjMenuItemMeta.template, inputs: wjMenuItemMeta.inputs, outputs: wjMenuItemMeta.outputs, providers: [{ provide: \"WjComponent\", useExisting: core_1.forwardRef((function () { return e; })) }].concat(wjMenuItemMeta.providers) }]\n }], function () { return [{ type: undefined, decorators: [{\n type: core_1.Inject,\n args: [core_1.ElementRef]\n }] }, { type: undefined, decorators: [{\n type: core_1.Inject,\n args: [core_1.Injector]\n }] }, { type: undefined, decorators: [{\n type: core_1.Inject,\n args: [\"WjComponent\"]\n }, {\n type: core_1.SkipSelf\n }, {\n type: core_1.Optional\n }] }, { type: undefined, decorators: [{\n type: core_1.Inject,\n args: [core_1.ViewContainerRef]\n }] }]; }, null); })();return WjMenuItem=e=__decorate([,__param(0,core_1.Inject(core_1.ElementRef)),__param(1,core_1.Inject(core_1.Injector)),__param(2,core_1.Inject(\"WjComponent\")),__param(2,core_1.SkipSelf()),__param(2,core_1.Optional()),__param(3,core_1.Inject(core_1.ViewContainerRef))],WjMenuItem)}();exports.WjMenuItem=WjMenuItem;var WjMenuItemTemplateDir=function(){function WjMenuItemTemplateDir(e,t,o,n,r,a){this.viewContainerRef=e;this.templateRef=t;this.elRef=o;this.ownerItem=r||a;this.ownerItem.templateDir=this}WjMenuItemTemplateDir.prototype.ngAfterContentInit=function(){var e=this;setTimeout((function(){var t=wijmo_angular2_directivebase_1.WjDirectiveBehavior.instantiateTemplate(null,e.viewContainerRef,e.templateRef,!0).rootElement;e.contentRoot=t;e.ownerItem.contentRoot=t;e.ownerItem._ownerMenu.listBox.loadList();e.ownerItem._ownerMenu.invalidate()}),0)};\nWjMenuItemTemplateDir.ɵfac = function WjMenuItemTemplateDir_Factory(t) { return new (t || WjMenuItemTemplateDir)(ɵngcc0.ɵɵdirectiveInject(core_1.ViewContainerRef), ɵngcc0.ɵɵdirectiveInject(core_1.TemplateRef, 8), ɵngcc0.ɵɵdirectiveInject(core_1.ElementRef), ɵngcc0.ɵɵdirectiveInject(core_1.Injector), ɵngcc0.ɵɵdirectiveInject(WjMenuItem, 8), ɵngcc0.ɵɵdirectiveInject(core_1.forwardRef((function () { return WjMenuSeparator; })), 8)); };\nWjMenuItemTemplateDir.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: WjMenuItemTemplateDir, selectors: [[\"\", \"wjMenuItemTemplateDir\", \"\"]], inputs: { wjMenuItemTemplateDir: \"wjMenuItemTemplateDir\" } });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(WjMenuItemTemplateDir, [{\n type: core_1.Directive,\n args: [{ selector: \"[wjMenuItemTemplateDir]\", inputs: [\"wjMenuItemTemplateDir\"] }]\n }], function () { return [{ type: undefined, decorators: [{\n type: core_1.Inject,\n args: [core_1.ViewContainerRef]\n }] }, { type: undefined, decorators: [{\n type: core_1.Inject,\n args: [core_1.TemplateRef]\n }, {\n type: core_1.Optional\n }] }, { type: undefined, decorators: [{\n type: core_1.Inject,\n args: [core_1.ElementRef]\n }] }, { type: undefined, decorators: [{\n type: core_1.Inject,\n args: [core_1.Injector]\n }] }, { type: undefined, decorators: [{\n type: core_1.Inject,\n args: [WjMenuItem]\n }, {\n type: core_1.Optional\n }] }, { type: undefined, decorators: [{\n type: core_1.Inject,\n args: [core_1.forwardRef((function () { return WjMenuSeparator; }))]\n }, {\n type: core_1.Optional\n }] }]; }, null); })();return WjMenuItemTemplateDir=__decorate([,__param(0,core_1.Inject(core_1.ViewContainerRef)),__param(1,core_1.Inject(core_1.TemplateRef)),__param(1,core_1.Optional()),__param(2,core_1.Inject(core_1.ElementRef)),__param(3,core_1.Inject(core_1.Injector)),__param(4,core_1.Inject(WjMenuItem)),__param(4,core_1.Optional()),__param(5,core_1.Inject(core_1.forwardRef((function(){return WjMenuSeparator})))),__param(5,core_1.Optional())],WjMenuItemTemplateDir)}();exports.WjMenuItemTemplateDir=WjMenuItemTemplateDir;var wjMenuSeparatorMeta={selector:\"wj-menu-separator\",template:'
',inputs:[\"wjProperty\"],outputs:[\"initialized\"],providers:[]};exports.wjMenuSeparatorMeta=wjMenuSeparatorMeta;var WjMenuSeparator=function(e){__extends(WjMenuSeparator,e);function WjMenuSeparator(t,o,n,r){var a=e.call(this,t,o,n,r)||this;a.created();return a}t=WjMenuSeparator;WjMenuSeparator.prototype.added=function(e){wjcCore.addClass(e,\"wj-state-disabled\")};var t;\nWjMenuSeparator.ɵfac = function WjMenuSeparator_Factory(t) { return new (t || WjMenuSeparator)(ɵngcc0.ɵɵdirectiveInject(core_1.ElementRef), ɵngcc0.ɵɵdirectiveInject(core_1.Injector), ɵngcc0.ɵɵdirectiveInject(\"WjComponent\", 12), ɵngcc0.ɵɵdirectiveInject(core_1.ViewContainerRef)); };\nWjMenuSeparator.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: WjMenuSeparator, selectors: [[\"wj-menu-separator\"]], inputs: { wjProperty: \"wjProperty\" }, outputs: { initialized: \"initialized\" }, features: [ɵngcc0.ɵɵProvidersFeature([{ provide: \"WjComponent\", useExisting: core_1.forwardRef((function () { return t; })) }].concat(wjMenuSeparatorMeta.providers))], decls: 1, vars: 0, consts: [[\"class\", \"wj-state-disabled\", \"style\", \"width:100%;height:1px;background-color:lightgray\", 4, \"wjMenuItemTemplateDir\"], [1, \"wj-state-disabled\", 2, \"width\", \"100%\", \"height\", \"1px\", \"background-color\", \"lightgray\"]], template: function WjMenuSeparator_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, WjMenuSeparator_div_0_Template, 1, 0, \"div\", 0);\n } }, dependencies: [WjMenuItemTemplateDir], encapsulation: 2 });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(WjMenuSeparator, [{\n type: core_1.Component,\n args: [{ selector: wjMenuSeparatorMeta.selector, template: wjMenuSeparatorMeta.template, inputs: wjMenuSeparatorMeta.inputs, outputs: wjMenuSeparatorMeta.outputs, providers: [{ provide: \"WjComponent\", useExisting: core_1.forwardRef((function () { return t; })) }].concat(wjMenuSeparatorMeta.providers) }]\n }], function () { return [{ type: undefined, decorators: [{\n type: core_1.Inject,\n args: [core_1.ElementRef]\n }] }, { type: undefined, decorators: [{\n type: core_1.Inject,\n args: [core_1.Injector]\n }] }, { type: undefined, decorators: [{\n type: core_1.Inject,\n args: [\"WjComponent\"]\n }, {\n type: core_1.SkipSelf\n }, {\n type: core_1.Optional\n }] }, { type: undefined, decorators: [{\n type: core_1.Inject,\n args: [core_1.ViewContainerRef]\n }] }]; }, null); })();return WjMenuSeparator=t=__decorate([,__param(0,core_1.Inject(core_1.ElementRef)),__param(1,core_1.Inject(core_1.Injector)),__param(2,core_1.Inject(\"WjComponent\")),__param(2,core_1.SkipSelf()),__param(2,core_1.Optional()),__param(3,core_1.Inject(core_1.ViewContainerRef))],WjMenuSeparator)}(WjMenuItem);exports.WjMenuSeparator=WjMenuSeparator;var wjItemTemplateMeta={selector:\"[wjItemTemplate]\",inputs:[\"wjItemTemplate\"],outputs:[\"initialized\"],exportAs:\"wjItemTemplate\",providers:[]};exports.wjItemTemplateMeta=wjItemTemplateMeta;var WjItemTemplate=function(){function WjItemTemplate(t,o,n,r,a,i){this.viewContainerRef=r;this.templateRef=a;this.isInitialized=!1;var s=this._wjBehaviour=wijmo_angular2_directivebase_1.WjDirectiveBehavior.attach(this,t,o,n);this.ownerControl=s.parentBehavior.directive;this.listBox=e._getListBox(this.ownerControl);this._cdRef=i;this.created()}e=WjItemTemplate;WjItemTemplate.prototype.created=function(){};WjItemTemplate.prototype.ngOnInit=function(){this._wjBehaviour.ngOnInit();this._attachToControl()};WjItemTemplate.prototype.ngAfterViewInit=function(){this._wjBehaviour.ngAfterViewInit()};WjItemTemplate.prototype.ngOnDestroy=function(){var e=this.ownerControl,t=this.listBox;if(t){t.formatItem.removeHandler(this._fmtItem,this);t.loadingItems.removeHandler(this._loadingItems,this)}e&&e.invalidate()};WjItemTemplate.prototype._attachToControl=function(){this.listBox.formatItem.addHandler(this._fmtItem,this);this.listBox.loadingItems.addHandler(this._loadingItems,this);this.ownerControl.invalidate()};WjItemTemplate.prototype._loadingItems=function(e){this.viewContainerRef.clear()};WjItemTemplate.prototype._fmtItem=function(e,t){var o=t.item;o.textContent=\"\";var n=this._instantiateTemplate(o);n.context.control=e;n.context.item=t.data;n.context.itemIndex=t.index;t.index===this.listBox.collectionView.items.length-1&&this._cdRef.detectChanges()};WjItemTemplate.prototype._instantiateTemplate=function(e){return wijmo_angular2_directivebase_1.WjDirectiveBehavior.instantiateTemplate(e,this.viewContainerRef,this.templateRef).viewRef};WjItemTemplate._getListBox=function(e){return e?e instanceof wjcInput.ListBox?e:e.listBox:null};var e;WjItemTemplate.meta={outputs:wjItemTemplateMeta.outputs,parentRefProperty:\"owner\"};\nWjItemTemplate.ɵfac = function WjItemTemplate_Factory(t) { return new (t || WjItemTemplate)(ɵngcc0.ɵɵdirectiveInject(core_1.ElementRef), ɵngcc0.ɵɵdirectiveInject(core_1.Injector), ɵngcc0.ɵɵdirectiveInject(\"WjComponent\", 12), ɵngcc0.ɵɵdirectiveInject(core_1.ViewContainerRef), ɵngcc0.ɵɵdirectiveInject(core_1.TemplateRef, 8), ɵngcc0.ɵɵdirectiveInject(core_1.ChangeDetectorRef)); };\nWjItemTemplate.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: WjItemTemplate, selectors: [[\"\", \"wjItemTemplate\", \"\"]], inputs: { wjItemTemplate: \"wjItemTemplate\" }, outputs: { initialized: \"initialized\" }, exportAs: [\"wjItemTemplate\"], features: [ɵngcc0.ɵɵProvidersFeature([{ provide: \"WjComponent\", useExisting: core_1.forwardRef((function () { return e; })) }].concat(wjItemTemplateMeta.providers))] });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(WjItemTemplate, [{\n type: core_1.Directive,\n args: [{ selector: wjItemTemplateMeta.selector, inputs: wjItemTemplateMeta.inputs, outputs: wjItemTemplateMeta.outputs, exportAs: wjItemTemplateMeta.exportAs, providers: [{ provide: \"WjComponent\", useExisting: core_1.forwardRef((function () { return e; })) }].concat(wjItemTemplateMeta.providers) }]\n }], function () { return [{ type: undefined, decorators: [{\n type: core_1.Inject,\n args: [core_1.ElementRef]\n }] }, { type: undefined, decorators: [{\n type: core_1.Inject,\n args: [core_1.Injector]\n }] }, { type: undefined, decorators: [{\n type: core_1.Inject,\n args: [\"WjComponent\"]\n }, {\n type: core_1.SkipSelf\n }, {\n type: core_1.Optional\n }] }, { type: undefined, decorators: [{\n type: core_1.Inject,\n args: [core_1.ViewContainerRef]\n }] }, { type: undefined, decorators: [{\n type: core_1.Inject,\n args: [core_1.TemplateRef]\n }, {\n type: core_1.Optional\n }] }, { type: undefined, decorators: [{\n type: core_1.Inject,\n args: [core_1.ChangeDetectorRef]\n }] }]; }, null); })();return WjItemTemplate=e=__decorate([,__param(0,core_1.Inject(core_1.ElementRef)),__param(1,core_1.Inject(core_1.Injector)),__param(2,core_1.Inject(\"WjComponent\")),__param(2,core_1.SkipSelf()),__param(2,core_1.Optional()),__param(3,core_1.Inject(core_1.ViewContainerRef)),__param(4,core_1.Inject(core_1.TemplateRef)),__param(4,core_1.Optional()),__param(5,core_1.Inject(core_1.ChangeDetectorRef))],WjItemTemplate)}();exports.WjItemTemplate=WjItemTemplate;var wjPopupMeta={selector:\"wj-popup\",template:\"
\",inputs:[\"wjModelProperty\",\"isDisabled\",\"owner\",\"showTrigger\",\"hideTrigger\",\"fadeIn\",\"fadeOut\",\"isDraggable\",\"isResizable\",\"dialogResultEnter\",\"modal\",\"removeOnHide\"],outputs:[\"initialized\",\"gotFocusNg: gotFocus\",\"lostFocusNg: lostFocus\",\"refreshingNg: refreshing\",\"refreshedNg: refreshed\",\"showingNg: showing\",\"shownNg: shown\",\"hidingNg: hiding\",\"hiddenNg: hidden\"],providers:[{provide:forms_1.NG_VALUE_ACCESSOR,useFactory:wijmo_angular2_directivebase_1.WjValueAccessorFactory,multi:!0,deps:[\"WjComponent\"]}]};exports.wjPopupMeta=wjPopupMeta;var WjPopup=function(e){__extends(WjPopup,e);function WjPopup(t,o,n){var r=e.call(this,wijmo_angular2_directivebase_1.WjDirectiveBehavior.getHostElement(t,o))||this;r.isInitialized=!1;r._wjBehaviour=wijmo_angular2_directivebase_1.WjDirectiveBehavior.attach(r,t,o,n);r.created();return r}t=WjPopup;WjPopup.prototype.created=function(){};WjPopup.prototype.ngOnInit=function(){this._wjBehaviour.ngOnInit()};WjPopup.prototype.ngAfterViewInit=function(){this._wjBehaviour.ngAfterViewInit()};WjPopup.prototype.ngOnDestroy=function(){this._wjBehaviour.ngOnDestroy()};WjPopup.prototype.addEventListener=function(t,o,n,r){var a=this;void 0===r&&(r=!1);var i=wijmo_angular2_directivebase_1.WjDirectiveBehavior,s=i.ngZone;s&&i.outsideZoneEvents[o]?s.runOutsideAngular((function(){e.prototype.addEventListener.call(a,t,o,n,r)})):e.prototype.addEventListener.call(this,t,o,n,r)};WjPopup.prototype.ngOnChanges=function(e){e.owner&&null==this.modal&&(this.modal=!this.owner)};WjPopup.prototype.dispose=function(){if(this.isVisible){this.hiding.removeAllHandlers();this.fadeOut=!1;this.hide()}e.prototype.dispose.call(this)};var t;WjPopup.meta={outputs:wjPopupMeta.outputs};\nWjPopup.ɵfac = function WjPopup_Factory(t) { return new (t || WjPopup)(ɵngcc0.ɵɵdirectiveInject(core_1.ElementRef), ɵngcc0.ɵɵdirectiveInject(core_1.Injector), ɵngcc0.ɵɵdirectiveInject(\"WjComponent\", 12)); };\nWjPopup.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: WjPopup, selectors: [[\"wj-popup\"]], inputs: { wjModelProperty: \"wjModelProperty\", isDisabled: \"isDisabled\", owner: \"owner\", showTrigger: \"showTrigger\", hideTrigger: \"hideTrigger\", fadeIn: \"fadeIn\", fadeOut: \"fadeOut\", isDraggable: \"isDraggable\", isResizable: \"isResizable\", dialogResultEnter: \"dialogResultEnter\", modal: \"modal\", removeOnHide: \"removeOnHide\" }, outputs: { initialized: \"initialized\", gotFocusNg: \"gotFocus\", lostFocusNg: \"lostFocus\", refreshingNg: \"refreshing\", refreshedNg: \"refreshed\", showingNg: \"showing\", shownNg: \"shown\", hidingNg: \"hiding\", hiddenNg: \"hidden\" }, features: [ɵngcc0.ɵɵProvidersFeature([{ provide: \"WjComponent\", useExisting: core_1.forwardRef((function () { return t; })) }].concat(wjPopupMeta.providers)), ɵngcc0.ɵɵNgOnChangesFeature], ngContentSelectors: _c0, decls: 2, vars: 0, template: function WjPopup_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojectionDef();\n ɵngcc0.ɵɵelementStart(0, \"div\");\n ɵngcc0.ɵɵprojection(1);\n ɵngcc0.ɵɵelementEnd();\n } }, encapsulation: 2 });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(WjPopup, [{\n type: core_1.Component,\n args: [{ selector: wjPopupMeta.selector, template: wjPopupMeta.template, inputs: wjPopupMeta.inputs, outputs: wjPopupMeta.outputs, providers: [{ provide: \"WjComponent\", useExisting: core_1.forwardRef((function () { return t; })) }].concat(wjPopupMeta.providers) }]\n }], function () { return [{ type: undefined, decorators: [{\n type: core_1.Inject,\n args: [core_1.ElementRef]\n }] }, { type: undefined, decorators: [{\n type: core_1.Inject,\n args: [core_1.Injector]\n }] }, { type: undefined, decorators: [{\n type: core_1.Inject,\n args: [\"WjComponent\"]\n }, {\n type: core_1.SkipSelf\n }, {\n type: core_1.Optional\n }] }]; }, null); })();return WjPopup=t=__decorate([,__param(0,core_1.Inject(core_1.ElementRef)),__param(1,core_1.Inject(core_1.Injector)),__param(2,core_1.Inject(\"WjComponent\")),__param(2,core_1.SkipSelf()),__param(2,core_1.Optional())],WjPopup)}(wjcInput.Popup);exports.WjPopup=WjPopup;var WjContextMenu=function(){function WjContextMenu(e){this.elRef=e}WjContextMenu.prototype.onContextMenu=function(e){var t=this.wjContextMenu,o=t.dropDown;if(t&&o&&!wjcCore.closest(e.target,\"[disabled]\")){e.preventDefault();e.stopPropagation();t.owner=this.elRef.nativeElement;t.show(e)}};\nWjContextMenu.ɵfac = function WjContextMenu_Factory(t) { return new (t || WjContextMenu)(ɵngcc0.ɵɵdirectiveInject(core_1.ElementRef)); };\nWjContextMenu.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: WjContextMenu, selectors: [[\"\", \"wjContextMenu\", \"\"]], hostBindings: function WjContextMenu_HostBindings(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"contextmenu\", function WjContextMenu_contextmenu_HostBindingHandler($event) { return ctx.onContextMenu($event); });\n } }, inputs: { wjContextMenu: \"wjContextMenu\" }, exportAs: [\"wjContextMenu\"] });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(WjContextMenu, [{\n type: core_1.Directive,\n args: [{ selector: \"[wjContextMenu]\", inputs: [\"wjContextMenu\"], exportAs: \"wjContextMenu\", host: { \"(contextmenu)\": \"onContextMenu($event)\" } }]\n }], function () { return [{ type: undefined, decorators: [{\n type: core_1.Inject,\n args: [core_1.ElementRef]\n }] }]; }, null); })();return WjContextMenu=__decorate([,__param(0,core_1.Inject(core_1.ElementRef))],WjContextMenu)}();exports.WjContextMenu=WjContextMenu;var wjCollectionViewNavigatorMeta={selector:\"wj-collection-view-navigator\",template:\"\",inputs:[\"wjModelProperty\",\"isDisabled\",\"cv\",\"byPage\",\"headerFormat\",\"repeatButtons\"],outputs:[\"initialized\",\"gotFocusNg: gotFocus\",\"lostFocusNg: lostFocus\",\"refreshingNg: refreshing\",\"refreshedNg: refreshed\"],providers:[{provide:forms_1.NG_VALUE_ACCESSOR,useFactory:wijmo_angular2_directivebase_1.WjValueAccessorFactory,multi:!0,deps:[\"WjComponent\"]}]};exports.wjCollectionViewNavigatorMeta=wjCollectionViewNavigatorMeta;var WjCollectionViewNavigator=function(e){__extends(WjCollectionViewNavigator,e);function WjCollectionViewNavigator(t,o,n){var r=e.call(this,wijmo_angular2_directivebase_1.WjDirectiveBehavior.getHostElement(t,o))||this;r.isInitialized=!1;r._wjBehaviour=wijmo_angular2_directivebase_1.WjDirectiveBehavior.attach(r,t,o,n);r.created();return r}t=WjCollectionViewNavigator;WjCollectionViewNavigator.prototype.created=function(){};WjCollectionViewNavigator.prototype.ngOnInit=function(){this._wjBehaviour.ngOnInit()};WjCollectionViewNavigator.prototype.ngAfterViewInit=function(){this._wjBehaviour.ngAfterViewInit()};WjCollectionViewNavigator.prototype.ngOnDestroy=function(){this._wjBehaviour.ngOnDestroy()};WjCollectionViewNavigator.prototype.addEventListener=function(t,o,n,r){var a=this;void 0===r&&(r=!1);var i=wijmo_angular2_directivebase_1.WjDirectiveBehavior,s=i.ngZone;s&&i.outsideZoneEvents[o]?s.runOutsideAngular((function(){e.prototype.addEventListener.call(a,t,o,n,r)})):e.prototype.addEventListener.call(this,t,o,n,r)};var t;WjCollectionViewNavigator.meta={outputs:wjCollectionViewNavigatorMeta.outputs};\nWjCollectionViewNavigator.ɵfac = function WjCollectionViewNavigator_Factory(t) { return new (t || WjCollectionViewNavigator)(ɵngcc0.ɵɵdirectiveInject(core_1.ElementRef), ɵngcc0.ɵɵdirectiveInject(core_1.Injector), ɵngcc0.ɵɵdirectiveInject(\"WjComponent\", 12)); };\nWjCollectionViewNavigator.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: WjCollectionViewNavigator, selectors: [[\"wj-collection-view-navigator\"]], inputs: { wjModelProperty: \"wjModelProperty\", isDisabled: \"isDisabled\", cv: \"cv\", byPage: \"byPage\", headerFormat: \"headerFormat\", repeatButtons: \"repeatButtons\" }, outputs: { initialized: \"initialized\", gotFocusNg: \"gotFocus\", lostFocusNg: \"lostFocus\", refreshingNg: \"refreshing\", refreshedNg: \"refreshed\" }, features: [ɵngcc0.ɵɵProvidersFeature([{ provide: \"WjComponent\", useExisting: core_1.forwardRef((function () { return t; })) }].concat(wjCollectionViewNavigatorMeta.providers))], decls: 0, vars: 0, template: function WjCollectionViewNavigator_Template(rf, ctx) { }, encapsulation: 2 });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(WjCollectionViewNavigator, [{\n type: core_1.Component,\n args: [{ selector: wjCollectionViewNavigatorMeta.selector, template: wjCollectionViewNavigatorMeta.template, inputs: wjCollectionViewNavigatorMeta.inputs, outputs: wjCollectionViewNavigatorMeta.outputs, providers: [{ provide: \"WjComponent\", useExisting: core_1.forwardRef((function () { return t; })) }].concat(wjCollectionViewNavigatorMeta.providers) }]\n }], function () { return [{ type: undefined, decorators: [{\n type: core_1.Inject,\n args: [core_1.ElementRef]\n }] }, { type: undefined, decorators: [{\n type: core_1.Inject,\n args: [core_1.Injector]\n }] }, { type: undefined, decorators: [{\n type: core_1.Inject,\n args: [\"WjComponent\"]\n }, {\n type: core_1.SkipSelf\n }, {\n type: core_1.Optional\n }] }]; }, null); })();return WjCollectionViewNavigator=t=__decorate([,__param(0,core_1.Inject(core_1.ElementRef)),__param(1,core_1.Inject(core_1.Injector)),__param(2,core_1.Inject(\"WjComponent\")),__param(2,core_1.SkipSelf()),__param(2,core_1.Optional())],WjCollectionViewNavigator)}(wjcInput.CollectionViewNavigator);exports.WjCollectionViewNavigator=WjCollectionViewNavigator;var wjCollectionViewPagerMeta={selector:\"wj-collection-view-pager\",template:\"\",inputs:[\"wjModelProperty\",\"cv\"],outputs:[\"initialized\"],providers:[{provide:forms_1.NG_VALUE_ACCESSOR,useFactory:wijmo_angular2_directivebase_1.WjValueAccessorFactory,multi:!0,deps:[\"WjComponent\"]}]};exports.wjCollectionViewPagerMeta=wjCollectionViewPagerMeta;var WjCollectionViewPager=function(e){__extends(WjCollectionViewPager,e);function WjCollectionViewPager(t,o,n){var r=e.call(this,wijmo_angular2_directivebase_1.WjDirectiveBehavior.getHostElement(t,o))||this;r.isInitialized=!1;r._wjBehaviour=wijmo_angular2_directivebase_1.WjDirectiveBehavior.attach(r,t,o,n);r.byPage=!0;r.created();return r}t=WjCollectionViewPager;WjCollectionViewPager.prototype.created=function(){};WjCollectionViewPager.prototype.ngOnInit=function(){this._wjBehaviour.ngOnInit()};WjCollectionViewPager.prototype.ngAfterViewInit=function(){this._wjBehaviour.ngAfterViewInit()};WjCollectionViewPager.prototype.ngOnDestroy=function(){this._wjBehaviour.ngOnDestroy()};WjCollectionViewPager.prototype.addEventListener=function(t,o,n,r){var a=this;void 0===r&&(r=!1);var i=wijmo_angular2_directivebase_1.WjDirectiveBehavior,s=i.ngZone;s&&i.outsideZoneEvents[o]?s.runOutsideAngular((function(){e.prototype.addEventListener.call(a,t,o,n,r)})):e.prototype.addEventListener.call(this,t,o,n,r)};var t;WjCollectionViewPager.meta={outputs:wjCollectionViewPagerMeta.outputs};\nWjCollectionViewPager.ɵfac = function WjCollectionViewPager_Factory(t) { return new (t || WjCollectionViewPager)(ɵngcc0.ɵɵdirectiveInject(core_1.ElementRef), ɵngcc0.ɵɵdirectiveInject(core_1.Injector), ɵngcc0.ɵɵdirectiveInject(\"WjComponent\", 12)); };\nWjCollectionViewPager.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: WjCollectionViewPager, selectors: [[\"wj-collection-view-pager\"]], inputs: { wjModelProperty: \"wjModelProperty\", cv: \"cv\" }, outputs: { initialized: \"initialized\" }, features: [ɵngcc0.ɵɵProvidersFeature([{ provide: \"WjComponent\", useExisting: core_1.forwardRef((function () { return t; })) }].concat(wjCollectionViewPagerMeta.providers))], decls: 0, vars: 0, template: function WjCollectionViewPager_Template(rf, ctx) { }, encapsulation: 2 });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(WjCollectionViewPager, [{\n type: core_1.Component,\n args: [{ selector: wjCollectionViewPagerMeta.selector, template: wjCollectionViewPagerMeta.template, inputs: wjCollectionViewPagerMeta.inputs, outputs: wjCollectionViewPagerMeta.outputs, providers: [{ provide: \"WjComponent\", useExisting: core_1.forwardRef((function () { return t; })) }].concat(wjCollectionViewPagerMeta.providers) }]\n }], function () { return [{ type: undefined, decorators: [{\n type: core_1.Inject,\n args: [core_1.ElementRef]\n }] }, { type: undefined, decorators: [{\n type: core_1.Inject,\n args: [core_1.Injector]\n }] }, { type: undefined, decorators: [{\n type: core_1.Inject,\n args: [\"WjComponent\"]\n }, {\n type: core_1.SkipSelf\n }, {\n type: core_1.Optional\n }] }]; }, null); })();return WjCollectionViewPager=t=__decorate([,__param(0,core_1.Inject(core_1.ElementRef)),__param(1,core_1.Inject(core_1.Injector)),__param(2,core_1.Inject(\"WjComponent\")),__param(2,core_1.SkipSelf()),__param(2,core_1.Optional())],WjCollectionViewPager)}(wjcInput.CollectionViewNavigator);exports.WjCollectionViewPager=WjCollectionViewPager;var moduleExports=[WjListBox,WjMultiSelectListBox,WjComboBox,WjAutoComplete,WjCalendar,WjColorPicker,WjInputMask,WjInputColor,WjMultiSelect,WjMultiAutoComplete,WjInputNumber,WjInputDate,WjInputTime,WjInputDateTime,WjMenu,WjMenuItem,WjMenuSeparator,WjItemTemplate,WjPopup,WjContextMenu,WjCollectionViewNavigator,WjCollectionViewPager],WjInputModule=function(){function WjInputModule(){}\nWjInputModule.ɵfac = function WjInputModule_Factory(t) { return new (t || WjInputModule)(); };\nWjInputModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: WjInputModule });\nWjInputModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [common_1.CommonModule] });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(WjInputModule, [{\n type: core_1.NgModule,\n args: [{ imports: [common_1.CommonModule], declarations: moduleExports.concat([WjMenuItemTemplateDir]), exports: moduleExports.slice() }]\n }], function () { return []; }, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(WjInputModule, { declarations: [WjListBox, WjMultiSelectListBox, WjComboBox, WjAutoComplete, WjCalendar, WjColorPicker, WjInputMask, WjInputColor, WjMultiSelect, WjMultiAutoComplete, WjInputNumber, WjInputDate, WjInputTime, WjInputDateTime, WjMenu, WjMenuItem, WjMenuSeparator, WjItemTemplate, WjPopup, WjContextMenu, WjCollectionViewNavigator, WjCollectionViewPager, WjMenuItemTemplateDir], imports: [ɵngcc1.CommonModule], exports: [WjListBox, WjMultiSelectListBox, WjComboBox, WjAutoComplete, WjCalendar, WjColorPicker, WjInputMask, WjInputColor, WjMultiSelect, WjMultiAutoComplete, WjInputNumber, WjInputDate, WjInputTime, WjInputDateTime, WjMenu, WjMenuItem, WjMenuSeparator, WjItemTemplate, WjPopup, WjContextMenu, WjCollectionViewNavigator, WjCollectionViewPager] }); })();return WjInputModule}();exports.WjInputModule=WjInputModule;\n","/*!\n *\n * Wijmo Library 5.20201.680\n * http://wijmo.com/\n *\n * Copyright(c) GrapeCity, Inc. All rights reserved.\n *\n * Licensed under the GrapeCity Commercial License.\n * sales@wijmo.com\n * wijmo.com/products/wijmo-5/license/\n *\n */\n\n\"use strict\";var ɵngcc0 = require('@angular/core');\nvar ɵngcc1 = require('@angular/common');\n\nvar _c0 = [\"*\"];\nvar __extends=this&&this.__extends||function(){var extendStatics=function(e,t){return(extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)};return function(e,t){extendStatics(e,t);function __(){this.constructor=e}e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)}}(),__decorate=this&&this.__decorate||function(e,t,n,o){var r,a=arguments.length,i=a<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,n):o;if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.decorate)i=Reflect.decorate(e,t,n,o);else for(var c=e.length-1;c>=0;c--)(r=e[c])&&(i=(a<3?r(i):a>3?r(t,n,i):r(t,n))||i);return a>3&&i&&Object.defineProperty(t,n,i),i},__param=this&&this.__param||function(e,t){return function(n,o){t(n,o,e)}};Object.defineProperty(exports,\"__esModule\",{value:!0});var core_1=require(\"@angular/core\"),common_1=require(\"@angular/common\"),forms_1=require(\"@angular/forms\"),wijmo_angular2_directivebase_1=require(\"@grapecity/wijmo.angular2.directivebase\"),wjcCore=require(\"@grapecity/wijmo\"),wjcNav=require(\"@grapecity/wijmo.nav\"),wjTreeViewMeta={selector:\"wj-tree-view\",template:\"\",inputs:[\"asyncBindings\",\"wjModelProperty\",\"isDisabled\",\"childItemsPath\",\"displayMemberPath\",\"imageMemberPath\",\"checkedMemberPath\",\"isContentHtml\",\"showCheckboxes\",\"autoCollapse\",\"isAnimated\",\"isReadOnly\",\"allowDragging\",\"checkOnClick\",\"expandOnClick\",\"expandOnLoad\",\"lazyLoadFunction\",\"itemsSource\",\"selectedItem\",\"selectedNode\",\"checkedItems\"],outputs:[\"initialized\",\"gotFocusNg: gotFocus\",\"lostFocusNg: lostFocus\",\"refreshingNg: refreshing\",\"refreshedNg: refreshed\",\"itemsSourceChangedNg: itemsSourceChanged\",\"loadingItemsNg: loadingItems\",\"loadedItemsNg: loadedItems\",\"itemClickedNg: itemClicked\",\"selectedItemChangedNg: selectedItemChanged\",\"selectedItemChangePC: selectedItemChange\",\"selectedNodeChangePC: selectedNodeChange\",\"checkedItemsChangedNg: checkedItemsChanged\",\"checkedItemsChangePC: checkedItemsChange\",\"isCollapsedChangingNg: isCollapsedChanging\",\"isCollapsedChangedNg: isCollapsedChanged\",\"isCheckedChangingNg: isCheckedChanging\",\"isCheckedChangedNg: isCheckedChanged\",\"formatItemNg: formatItem\",\"dragStartNg: dragStart\",\"dragOverNg: dragOver\",\"dropNg: drop\",\"dragEndNg: dragEnd\",\"nodeEditStartingNg: nodeEditStarting\",\"nodeEditStartedNg: nodeEditStarted\",\"nodeEditEndingNg: nodeEditEnding\",\"nodeEditEndedNg: nodeEditEnded\"],providers:[{provide:forms_1.NG_VALUE_ACCESSOR,useFactory:wijmo_angular2_directivebase_1.WjValueAccessorFactory,multi:!0,deps:[\"WjComponent\"]}]};exports.wjTreeViewMeta=wjTreeViewMeta;var WjTreeView=function(e){__extends(WjTreeView,e);function WjTreeView(t,n,o){var r=e.call(this,wijmo_angular2_directivebase_1.WjDirectiveBehavior.getHostElement(t,n))||this;r.isInitialized=!1;r._wjBehaviour=wijmo_angular2_directivebase_1.WjDirectiveBehavior.attach(r,t,n,o);r.created();return r}t=WjTreeView;WjTreeView.prototype.created=function(){};WjTreeView.prototype.ngOnInit=function(){this._wjBehaviour.ngOnInit()};WjTreeView.prototype.ngAfterViewInit=function(){this._wjBehaviour.ngAfterViewInit()};WjTreeView.prototype.ngOnDestroy=function(){this._wjBehaviour.ngOnDestroy()};WjTreeView.prototype.addEventListener=function(t,n,o,r){var a=this;void 0===r&&(r=!1);var i=wijmo_angular2_directivebase_1.WjDirectiveBehavior,c=i.ngZone;c&&i.outsideZoneEvents[n]?c.runOutsideAngular((function(){e.prototype.addEventListener.call(a,t,n,o,r)})):e.prototype.addEventListener.call(this,t,n,o,r)};var t;WjTreeView.meta={outputs:wjTreeViewMeta.outputs,changeEvents:{selectedItemChanged:[\"selectedItem\",\"selectedNode\"],checkedItemsChanged:[\"checkedItems\"]}};\nWjTreeView.ɵfac = function WjTreeView_Factory(t) { return new (t || WjTreeView)(ɵngcc0.ɵɵdirectiveInject(core_1.ElementRef), ɵngcc0.ɵɵdirectiveInject(core_1.Injector), ɵngcc0.ɵɵdirectiveInject(\"WjComponent\", 12)); };\nWjTreeView.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: WjTreeView, selectors: [[\"wj-tree-view\"]], inputs: { asyncBindings: \"asyncBindings\", wjModelProperty: \"wjModelProperty\", isDisabled: \"isDisabled\", childItemsPath: \"childItemsPath\", displayMemberPath: \"displayMemberPath\", imageMemberPath: \"imageMemberPath\", checkedMemberPath: \"checkedMemberPath\", isContentHtml: \"isContentHtml\", showCheckboxes: \"showCheckboxes\", autoCollapse: \"autoCollapse\", isAnimated: \"isAnimated\", isReadOnly: \"isReadOnly\", allowDragging: \"allowDragging\", checkOnClick: \"checkOnClick\", expandOnClick: \"expandOnClick\", expandOnLoad: \"expandOnLoad\", lazyLoadFunction: \"lazyLoadFunction\", itemsSource: \"itemsSource\", selectedItem: \"selectedItem\", selectedNode: \"selectedNode\", checkedItems: \"checkedItems\" }, outputs: { initialized: \"initialized\", gotFocusNg: \"gotFocus\", lostFocusNg: \"lostFocus\", refreshingNg: \"refreshing\", refreshedNg: \"refreshed\", itemsSourceChangedNg: \"itemsSourceChanged\", loadingItemsNg: \"loadingItems\", loadedItemsNg: \"loadedItems\", itemClickedNg: \"itemClicked\", selectedItemChangedNg: \"selectedItemChanged\", selectedItemChangePC: \"selectedItemChange\", selectedNodeChangePC: \"selectedNodeChange\", checkedItemsChangedNg: \"checkedItemsChanged\", checkedItemsChangePC: \"checkedItemsChange\", isCollapsedChangingNg: \"isCollapsedChanging\", isCollapsedChangedNg: \"isCollapsedChanged\", isCheckedChangingNg: \"isCheckedChanging\", isCheckedChangedNg: \"isCheckedChanged\", formatItemNg: \"formatItem\", dragStartNg: \"dragStart\", dragOverNg: \"dragOver\", dropNg: \"drop\", dragEndNg: \"dragEnd\", nodeEditStartingNg: \"nodeEditStarting\", nodeEditStartedNg: \"nodeEditStarted\", nodeEditEndingNg: \"nodeEditEnding\", nodeEditEndedNg: \"nodeEditEnded\" }, features: [ɵngcc0.ɵɵProvidersFeature([{ provide: \"WjComponent\", useExisting: core_1.forwardRef((function () { return t; })) }].concat(wjTreeViewMeta.providers))], decls: 0, vars: 0, template: function WjTreeView_Template(rf, ctx) { }, encapsulation: 2 });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(WjTreeView, [{\n type: core_1.Component,\n args: [{ selector: wjTreeViewMeta.selector, template: wjTreeViewMeta.template, inputs: wjTreeViewMeta.inputs, outputs: wjTreeViewMeta.outputs, providers: [{ provide: \"WjComponent\", useExisting: core_1.forwardRef((function () { return t; })) }].concat(wjTreeViewMeta.providers) }]\n }], function () { return [{ type: undefined, decorators: [{\n type: core_1.Inject,\n args: [core_1.ElementRef]\n }] }, { type: undefined, decorators: [{\n type: core_1.Inject,\n args: [core_1.Injector]\n }] }, { type: undefined, decorators: [{\n type: core_1.Inject,\n args: [\"WjComponent\"]\n }, {\n type: core_1.SkipSelf\n }, {\n type: core_1.Optional\n }] }]; }, null); })();return WjTreeView=t=__decorate([,__param(0,core_1.Inject(core_1.ElementRef)),__param(1,core_1.Inject(core_1.Injector)),__param(2,core_1.Inject(\"WjComponent\")),__param(2,core_1.SkipSelf()),__param(2,core_1.Optional())],WjTreeView)}(wjcNav.TreeView);exports.WjTreeView=WjTreeView;var wjTabPanelMeta={selector:\"wj-tab-panel\",template:\"
\",inputs:[\"asyncBindings\",\"wjModelProperty\",\"isDisabled\",\"isAnimated\",\"autoSwitch\",\"selectedIndex\",\"selectedTab\"],outputs:[\"initialized\",\"gotFocusNg: gotFocus\",\"lostFocusNg: lostFocus\",\"refreshingNg: refreshing\",\"refreshedNg: refreshed\",\"selectedIndexChangedNg: selectedIndexChanged\",\"selectedIndexChangePC: selectedIndexChange\",\"selectedTabChangePC: selectedTabChange\"],providers:[{provide:forms_1.NG_VALUE_ACCESSOR,useFactory:wijmo_angular2_directivebase_1.WjValueAccessorFactory,multi:!0,deps:[\"WjComponent\"]}]};exports.wjTabPanelMeta=wjTabPanelMeta;var WjTabPanel=function(e){__extends(WjTabPanel,e);function WjTabPanel(t,n,o){var r=e.call(this,wijmo_angular2_directivebase_1.WjDirectiveBehavior.getHostElement(t,n))||this;r.isInitialized=!1;r._wjBehaviour=wijmo_angular2_directivebase_1.WjDirectiveBehavior.attach(r,t,n,o);r.created();return r}t=WjTabPanel;WjTabPanel.prototype.created=function(){};WjTabPanel.prototype.ngOnInit=function(){this.tabs.beginUpdate();this._wjBehaviour.ngOnInit()};WjTabPanel.prototype.ngAfterViewInit=function(){this.selectedIndex<0&&this.tabs.length&&(this.selectedIndex=0);this._wjBehaviour.ngAfterViewInit()};WjTabPanel.prototype.ngOnDestroy=function(){this._wjBehaviour.ngOnDestroy()};WjTabPanel.prototype.addEventListener=function(t,n,o,r){var a=this;void 0===r&&(r=!1);var i=wijmo_angular2_directivebase_1.WjDirectiveBehavior,c=i.ngZone;c&&i.outsideZoneEvents[n]?c.runOutsideAngular((function(){e.prototype.addEventListener.call(a,t,n,o,r)})):e.prototype.addEventListener.call(this,t,n,o,r)};WjTabPanel.prototype.ngAfterContentInit=function(){var e=this.selectedIndex,t=this.tabs;e>-1&&e\",inputs:[\"wjProperty\",\"isDisabled\",\"isVisible\"],outputs:[\"initialized\"],providers:[]};exports.wjTabMeta=wjTabMeta;var WjTab=function(e){__extends(WjTab,e);function WjTab(t,n,o){var r=e.call(this,document.createElement(\"div\"),document.createElement(\"div\"))||this;r.isInitialized=!1;r.wjProperty=\"tabs\";r._wjBehaviour=wijmo_angular2_directivebase_1.WjDirectiveBehavior.attach(r,t,n,o);r.created();return r}t=WjTab;WjTab.prototype.created=function(){};WjTab.prototype.ngOnInit=function(){this._wjBehaviour.ngOnInit()};WjTab.prototype.ngAfterViewInit=function(){this._wjBehaviour.ngAfterViewInit()};WjTab.prototype.ngOnDestroy=function(){this._wjBehaviour.ngOnDestroy()};WjTab.prototype.ngAfterContentInit=function(){var e=this._wjBehaviour.elementRef.nativeElement;this._setParts(e.children[0],e.children[1])};var t;WjTab.meta={outputs:wjTabMeta.outputs};\nWjTab.ɵfac = function WjTab_Factory(t) { return new (t || WjTab)(ɵngcc0.ɵɵdirectiveInject(core_1.ElementRef), ɵngcc0.ɵɵdirectiveInject(core_1.Injector), ɵngcc0.ɵɵdirectiveInject(\"WjComponent\", 12)); };\nWjTab.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: WjTab, selectors: [[\"wj-tab\"]], inputs: { wjProperty: \"wjProperty\", isDisabled: \"isDisabled\", isVisible: \"isVisible\" }, outputs: { initialized: \"initialized\" }, features: [ɵngcc0.ɵɵProvidersFeature([{ provide: \"WjComponent\", useExisting: core_1.forwardRef((function () { return t; })) }].concat(wjTabMeta.providers))], ngContentSelectors: _c0, decls: 1, vars: 0, template: function WjTab_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojectionDef();\n ɵngcc0.ɵɵprojection(0);\n } }, encapsulation: 2 });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(WjTab, [{\n type: core_1.Component,\n args: [{ selector: wjTabMeta.selector, template: wjTabMeta.template, inputs: wjTabMeta.inputs, outputs: wjTabMeta.outputs, providers: [{ provide: \"WjComponent\", useExisting: core_1.forwardRef((function () { return t; })) }].concat(wjTabMeta.providers) }]\n }], function () { return [{ type: undefined, decorators: [{\n type: core_1.Inject,\n args: [core_1.ElementRef]\n }] }, { type: undefined, decorators: [{\n type: core_1.Inject,\n args: [core_1.Injector]\n }] }, { type: undefined, decorators: [{\n type: core_1.Inject,\n args: [\"WjComponent\"]\n }, {\n type: core_1.SkipSelf\n }, {\n type: core_1.Optional\n }] }]; }, null); })();return WjTab=t=__decorate([,__param(0,core_1.Inject(core_1.ElementRef)),__param(1,core_1.Inject(core_1.Injector)),__param(2,core_1.Inject(\"WjComponent\")),__param(2,core_1.SkipSelf()),__param(2,core_1.Optional())],WjTab)}(wjcNav.Tab);exports.WjTab=WjTab;var wjAccordionMeta={selector:\"wj-accordion\",template:\"
\",inputs:[\"asyncBindings\",\"wjModelProperty\",\"isDisabled\",\"isAnimated\",\"autoSwitch\",\"selectedIndex\",\"selectedPane\",\"showIcons\",\"allowCollapseAll\",\"allowExpandMany\"],outputs:[\"initialized\",\"gotFocusNg: gotFocus\",\"lostFocusNg: lostFocus\",\"refreshingNg: refreshing\",\"refreshedNg: refreshed\",\"selectedIndexChangedNg: selectedIndexChanged\",\"selectedIndexChangePC: selectedIndexChange\"],providers:[{provide:forms_1.NG_VALUE_ACCESSOR,useFactory:wijmo_angular2_directivebase_1.WjValueAccessorFactory,multi:!0,deps:[\"WjComponent\"]}]};exports.wjAccordionMeta=wjAccordionMeta;var WjAccordion=function(e){__extends(WjAccordion,e);function WjAccordion(t,n,o){var r=e.call(this,wijmo_angular2_directivebase_1.WjDirectiveBehavior.getHostElement(t,n))||this;r.isInitialized=!1;r._wjBehaviour=wijmo_angular2_directivebase_1.WjDirectiveBehavior.attach(r,t,n,o);r.created();return r}t=WjAccordion;WjAccordion.prototype.created=function(){};WjAccordion.prototype.ngOnInit=function(){this.panes.beginUpdate();this._wjBehaviour.ngOnInit()};WjAccordion.prototype.ngAfterViewInit=function(){this.selectedIndex<0&&this.panes.length&&(this.selectedIndex=0);this._wjBehaviour.ngAfterViewInit()};WjAccordion.prototype.ngOnDestroy=function(){this._wjBehaviour.ngOnDestroy()};WjAccordion.prototype.addEventListener=function(t,n,o,r){var a=this;void 0===r&&(r=!1);var i=wijmo_angular2_directivebase_1.WjDirectiveBehavior,c=i.ngZone;c&&i.outsideZoneEvents[n]?c.runOutsideAngular((function(){e.prototype.addEventListener.call(a,t,n,o,r)})):e.prototype.addEventListener.call(this,t,n,o,r)};WjAccordion.prototype.ngAfterContentInit=function(){var e=this.selectedIndex,t=this.panes;e>-1&&e\",inputs:[\"wjProperty\",\"isDisabled\",\"isVisible\"],outputs:[\"initialized\"],providers:[]};exports.wjAccordionPaneMeta=wjAccordionPaneMeta;var WjAccordionPane=function(e){__extends(WjAccordionPane,e);function WjAccordionPane(t,n,o){var r=e.call(this,document.createElement(\"div\"),document.createElement(\"div\"))||this;r.isInitialized=!1;r.wjProperty=\"panes\";r._wjBehaviour=wijmo_angular2_directivebase_1.WjDirectiveBehavior.attach(r,t,n,o);r.created();return r}t=WjAccordionPane;WjAccordionPane.prototype.created=function(){};WjAccordionPane.prototype.ngOnInit=function(){this._wjBehaviour.ngOnInit()};WjAccordionPane.prototype.ngAfterViewInit=function(){this._wjBehaviour.ngAfterViewInit()};WjAccordionPane.prototype.ngOnDestroy=function(){this._wjBehaviour.ngOnDestroy()};WjAccordionPane.prototype.ngAfterContentInit=function(){var e=this._wjBehaviour.elementRef.nativeElement;this._setParts(e.children[0],e.children[1])};var t;WjAccordionPane.meta={outputs:wjAccordionPaneMeta.outputs};\nWjAccordionPane.ɵfac = function WjAccordionPane_Factory(t) { return new (t || WjAccordionPane)(ɵngcc0.ɵɵdirectiveInject(core_1.ElementRef), ɵngcc0.ɵɵdirectiveInject(core_1.Injector), ɵngcc0.ɵɵdirectiveInject(\"WjComponent\", 12)); };\nWjAccordionPane.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: WjAccordionPane, selectors: [[\"wj-accordion-pane\"]], inputs: { wjProperty: \"wjProperty\", isDisabled: \"isDisabled\", isVisible: \"isVisible\" }, outputs: { initialized: \"initialized\" }, features: [ɵngcc0.ɵɵProvidersFeature([{ provide: \"WjComponent\", useExisting: core_1.forwardRef((function () { return t; })) }].concat(wjAccordionPaneMeta.providers))], ngContentSelectors: _c0, decls: 1, vars: 0, template: function WjAccordionPane_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojectionDef();\n ɵngcc0.ɵɵprojection(0);\n } }, encapsulation: 2 });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(WjAccordionPane, [{\n type: core_1.Component,\n args: [{ selector: wjAccordionPaneMeta.selector, template: wjAccordionPaneMeta.template, inputs: wjAccordionPaneMeta.inputs, outputs: wjAccordionPaneMeta.outputs, providers: [{ provide: \"WjComponent\", useExisting: core_1.forwardRef((function () { return t; })) }].concat(wjAccordionPaneMeta.providers) }]\n }], function () { return [{ type: undefined, decorators: [{\n type: core_1.Inject,\n args: [core_1.ElementRef]\n }] }, { type: undefined, decorators: [{\n type: core_1.Inject,\n args: [core_1.Injector]\n }] }, { type: undefined, decorators: [{\n type: core_1.Inject,\n args: [\"WjComponent\"]\n }, {\n type: core_1.SkipSelf\n }, {\n type: core_1.Optional\n }] }]; }, null); })();return WjAccordionPane=t=__decorate([,__param(0,core_1.Inject(core_1.ElementRef)),__param(1,core_1.Inject(core_1.Injector)),__param(2,core_1.Inject(\"WjComponent\")),__param(2,core_1.SkipSelf()),__param(2,core_1.Optional())],WjAccordionPane)}(wjcNav.AccordionPane);exports.WjAccordionPane=WjAccordionPane;var moduleExports=[WjTreeView,WjTabPanel,WjTab,WjAccordion,WjAccordionPane],WjNavModule=function(){function WjNavModule(){}\nWjNavModule.ɵfac = function WjNavModule_Factory(t) { return new (t || WjNavModule)(); };\nWjNavModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: WjNavModule });\nWjNavModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [common_1.CommonModule] });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(WjNavModule, [{\n type: core_1.NgModule,\n args: [{ imports: [common_1.CommonModule], declarations: moduleExports.slice(), exports: moduleExports.slice() }]\n }], function () { return []; }, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(WjNavModule, { declarations: [WjTreeView, WjTabPanel, WjTab, WjAccordion, WjAccordionPane], imports: [ɵngcc1.CommonModule], exports: [WjTreeView, WjTabPanel, WjTab, WjAccordion, WjAccordionPane] }); })();return WjNavModule}();exports.WjNavModule=WjNavModule;\n","/*!\n *\n * Wijmo Library 5.20201.680\n * http://wijmo.com/\n *\n * Copyright(c) GrapeCity, Inc. All rights reserved.\n *\n * Licensed under the GrapeCity Commercial License.\n * sales@wijmo.com\n * wijmo.com/products/wijmo-5/license/\n *\n */\n\nvar __extends=this&&this.__extends||function(){var extendStatics=function(e,t){return(extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var i in t)t.hasOwnProperty(i)&&(e[i]=t[i])})(e,t)};return function(e,t){extendStatics(e,t);function __(){this.constructor=e}e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)}}();import{Column,DataMap,FlexGrid,DataMapEditor,CellRange,CellRangeEventArgs}from\"@grapecity/wijmo.grid\";import{Globalize,asString,asNumber,asArray,asBoolean,asType,asEnum,isString,isDate,DateTime,culture,isNumber,copy,changeType,createElement,setAttribute,showPopup,hidePopup,isFunction,toggleClass,removeClass,closestClass,setAriaLabel,Control,Event,DataType,Key,setText,escapeRegExp,CollectionView,SortDescription,SortNulls,_addCultureInfo,moveFocus,hasClass,_registerModule}from\"@grapecity/wijmo\";import*as input from\"@grapecity/wijmo.input\";import*as selfModule from\"@grapecity/wijmo.grid.filter\";var FilterCondition=function(){function FilterCondition(e){this._op=null;this._filter=e}Object.defineProperty(FilterCondition.prototype,\"operator\",{get:function(){return this._op},set:function(e){this._op=asEnum(e,Operator,!0)},enumerable:!0,configurable:!0});Object.defineProperty(FilterCondition.prototype,\"value\",{get:function(){return this._val},set:function(e){this._val=e;this._strVal=isString(e)?e.toString().toLowerCase():null},enumerable:!0,configurable:!0});Object.defineProperty(FilterCondition.prototype,\"isActive\",{get:function(){switch(this._op){case null:return!1;case Operator.EQ:case Operator.NE:return!0;default:return null!=this._val||null!=this._strVal}},enumerable:!0,configurable:!0});FilterCondition.prototype.clear=function(){this.operator=null;this.value=null};FilterCondition.prototype.apply=function(e,t,i){var r=this._strVal||this._val;isString(e)&&(e=e.toLowerCase());isString(r)&&null==e&&(e=\"\");isDate(r)&&(t?r=DateTime.fromDateTime(r,FilterCondition._refDateTime):i&&(r=DateTime.fromDateTime(FilterCondition._refDateTime,r)));var n=Operator;switch(this._op){case null:return!0;case n.EQ:return null!=e&&null!=r?e.valueOf()==r.valueOf():e==r;case n.NE:return null!=e&&null!=r?e.valueOf()!=r.valueOf():e!=r;case n.GT:return e>r;case n.GE:return e>=r;case n.LT:return e=this._strVal.length)&&e.substr(e.length-this._strVal.length)==r;case n.CT:return!(null==this._strVal||!isString(e))&&e.indexOf(this._strVal)>-1;case n.NC:return!(null==this._strVal||!isString(e))&&e.indexOf(this._strVal)<0}throw\"Unknown operator\"};FilterCondition._refDateTime=new Date(2e3,0,1,0,0,0);return FilterCondition}();export{FilterCondition};export var Operator;!function(e){e[e.EQ=0]=\"EQ\";e[e.NE=1]=\"NE\";e[e.GT=2]=\"GT\";e[e.GE=3]=\"GE\";e[e.LT=4]=\"LT\";e[e.LE=5]=\"LE\";e[e.BW=6]=\"BW\";e[e.EW=7]=\"EW\";e[e.CT=8]=\"CT\";e[e.NC=9]=\"NC\"}(Operator||(Operator={}));var ConditionFilter=function(){function ConditionFilter(e){this._c1=new FilterCondition(this);this._c2=new FilterCondition(this);this._and=!0;this._col=e}Object.defineProperty(ConditionFilter.prototype,\"condition1\",{get:function(){return this._c1},enumerable:!0,configurable:!0});Object.defineProperty(ConditionFilter.prototype,\"condition2\",{get:function(){return this._c2},enumerable:!0,configurable:!0});Object.defineProperty(ConditionFilter.prototype,\"and\",{get:function(){return this._and},set:function(e){this._and=asBoolean(e)},enumerable:!0,configurable:!0});Object.defineProperty(ConditionFilter.prototype,\"dataMap\",{get:function(){return this._map},set:function(e){this._map=asType(e,DataMap,!0)},enumerable:!0,configurable:!0});Object.defineProperty(ConditionFilter.prototype,\"column\",{get:function(){return this._col},enumerable:!0,configurable:!0});Object.defineProperty(ConditionFilter.prototype,\"isActive\",{get:function(){return this._c1.isActive||this._c2.isActive},enumerable:!0,configurable:!0});ConditionFilter.prototype.apply=function(e){var t=this._col,i=this._c1,r=this._c2,n=!1,l=!1;if(!t||!t._binding||!this.isActive)return!0;e=t._binding.getValue(e);var o=this.dataMap||t.dataMap;if(o)e=o.getDisplayValue(e);else if(isDate(e)){n=!this._hasTimePart();l=!this._hasDatePart();var a=FilterCondition._refDateTime;n?e=DateTime.fromDateTime(e,a):l&&(e=DateTime.fromDateTime(a,e))}else if(isNumber(e)){var s=Globalize,u=t.format,d=s.formatNumber(e,u);e=s.parseFloat(d,u)}var c=i.apply(e,n,l),p=r.apply(e,n,l);return i.isActive&&r.isActive?this._and?c&&p:c||p:i.isActive?c:!r.isActive||p};ConditionFilter.prototype.clear=function(){this._c1.clear();this._c2.clear();this.and=!0};ConditionFilter.prototype._hasDatePart=function(){var e=this._col.format;if(!e)return!0;e=culture.Globalize.calendar.patterns[e]||e;return/[yMd]+/.test(e)};ConditionFilter.prototype._hasTimePart=function(){var e=this._col.format;if(!e)return!1;e=culture.Globalize.calendar.patterns[e]||e;return/[Hmst]+/.test(e)};ConditionFilter.prototype.implementsInterface=function(e){return\"IColumnFilter\"==e};return ConditionFilter}();export{ConditionFilter};var ConditionFilterEditor=function(e){__extends(ConditionFilterEditor,e);function ConditionFilterEditor(t,i){var r=e.call(this,t)||this;r._filter=asType(i,ConditionFilter,!1);var n=r.getTemplate();r.applyTemplate(\"wj-control wj-conditionfilter-editor\",n,{_divHdr:\"div-hdr\",_divCmb1:\"div-cmb1\",_divVal1:\"div-val1\",_btnAnd:\"btn-and\",_btnOr:\"btn-or\",_spAnd:\"sp-and\",_spOr:\"sp-or\",_divCmb2:\"div-cmb2\",_divVal2:\"div-val2\"});var l=culture.FlexGridFilter,o=l.ariaLabels;setAriaLabel(r._btnAnd,o.and);setAriaLabel(r._btnOr,o.or);setText(r._divHdr,l.header);setText(r._spAnd,l.and);setText(r._spOr,l.or);r._cmb1=r._createOperatorCombo(r._divCmb1,o.op1);r._cmb2=r._createOperatorCombo(r._divCmb2,o.op2);r._val1=r._createValueInput(r._divVal1,o.val1);r._val2=r._createValueInput(r._divVal2,o.val2);r._val1.isDisabled=!0;r._cmb1.selectedIndexChanged.addHandler((function(e,t){r._val1.isDisabled=null==e.selectedValue}));r._val2.isDisabled=!0;r._cmb2.selectedIndexChanged.addHandler((function(e,t){r._val2.isDisabled=null==e.selectedValue}));var a=r.hostElement;r.addEventListener(a,\"change\",r._btnAndOrChanged.bind(r));r.addEventListener(a,\"keydown\",r._keydown.bind(r));setTimeout((function(){r.updateEditor()}));return r}Object.defineProperty(ConditionFilterEditor.prototype,\"filter\",{get:function(){return this._filter},enumerable:!0,configurable:!0});ConditionFilterEditor.prototype.updateEditor=function(){var e=this._filter.condition1,t=this._filter.condition2;this._cmb1.selectedValue=e.operator;this._cmb2.selectedValue=t.operator;if(this._val1 instanceof input.ComboBox&&!(this._val1 instanceof input.InputTime)){this._val1.text=changeType(e.value,DataType.String);this._val2.text=changeType(t.value,DataType.String)}else{this._val1.value=e.value;this._val2.value=t.value}var i=this._filter.and;this._checkRadio(this._btnAnd,i);this._checkRadio(this._btnOr,!i)};ConditionFilterEditor.prototype.clearEditor=function(){this._cmb1.selectedValue=this._cmb2.selectedValue=null;this._val1.text=this._val2.text=null;this._checkRadio(this._btnAnd,!0);this._checkRadio(this._btnOr,!1)};Object.defineProperty(ConditionFilterEditor.prototype,\"isEditorClear\",{get:function(){return null==this._cmb1.selectedValue&&!this._val1.text&&null==this._cmb2.selectedValue&&!this._val2.text},enumerable:!0,configurable:!0});ConditionFilterEditor.prototype.updateFilter=function(){var e=this._filter.condition1,t=this._filter.condition2;e.operator=this._cmb1.selectedValue;t.operator=this._cmb2.selectedValue;if(\"value\"in this._val1){e.value=this._val1.value;t.value=this._val2.value}else{e.value=this._getComboValue(this._val1);t.value=this._getComboValue(this._val2)}this._filter.and=this._btnAnd.checked};ConditionFilterEditor.prototype._getComboValue=function(e){return e.selectedIndex>-1?e.selectedValue:e.text};ConditionFilterEditor.prototype._createOperatorCombo=function(e,t){var i=this._filter.column,r=culture.FlexGridFilter,n=r.stringOperators,l=this._filter.dataMap||i.dataMap,o=DataType;i.dataType==o.Date?n=r.dateOperators:i.dataType!=o.Number||l?i.dataType!=o.Boolean||l||(n=r.booleanOperators):n=r.numberOperators;var a=new input.ComboBox(e,{itemsSource:n,displayMemberPath:\"name\",selectedValuePath:\"op\"});setAriaLabel(a.inputElement,t);return a};ConditionFilterEditor.prototype._createValueInput=function(e,t){var i=this._filter,r=i.column,n=i.dataMap||r.dataMap,l=null,o=DataType;if(r.dataType==o.Date)(l=i._hasDatePart()?i._hasTimePart()?new input.InputDateTime(e):new input.InputDate(e):new input.InputTime(e)).format=r.format;else if(r.dataType!=o.Number||n){l=new input.ComboBox(e);if(n){l.itemsSource=n.getDisplayValues();l.isEditable=!0}else r.dataType==o.Boolean&&(l.itemsSource=[!0,!1])}else(l=new input.InputNumber(e)).format=r.format;l.isRequired=!1;setAriaLabel(l.inputElement,t);return l};ConditionFilterEditor.prototype._btnAndOrChanged=function(e){var t=e.target==this._btnAnd,i=e.target==this._btnOr;if(t||i){this._checkRadio(this._btnAnd,t);this._checkRadio(this._btnOr,i)}};ConditionFilterEditor.prototype._checkRadio=function(e,t){e.checked=t;e.setAttribute(\"aria-checked\",t.toString());e.setAttribute(\"tabindex\",t?\"1\":\"-1\")};ConditionFilterEditor.prototype._keydown=function(e){var t=e.target==this._btnAnd,i=e.target==this._btnOr;if(t||i)switch(e.keyCode){case Key.Left:case Key.Right:case Key.Up:case Key.Down:var r=t?this._btnOr:this._btnAnd;r.click();r.focus();e.preventDefault()}};ConditionFilterEditor.controlTemplate='


   


';return ConditionFilterEditor}(Control);export{ConditionFilterEditor};var ValueFilter=function(){function ValueFilter(e){this._xValueSearch=!0;this._maxValues=250;this._sortValues=!0;this._col=e}Object.defineProperty(ValueFilter.prototype,\"showValues\",{get:function(){return this._values},set:function(e){this._values=e},enumerable:!0,configurable:!0});Object.defineProperty(ValueFilter.prototype,\"filterText\",{get:function(){return this._filterText},set:function(e){this._filterText=asString(e)},enumerable:!0,configurable:!0});Object.defineProperty(ValueFilter.prototype,\"exclusiveValueSearch\",{get:function(){return this._xValueSearch},set:function(e){this._xValueSearch=asBoolean(e)},enumerable:!0,configurable:!0});Object.defineProperty(ValueFilter.prototype,\"maxValues\",{get:function(){return this._maxValues},set:function(e){this._maxValues=asNumber(e,!1,!0)},enumerable:!0,configurable:!0});Object.defineProperty(ValueFilter.prototype,\"uniqueValues\",{get:function(){return this._uniqueValues},set:function(e){this._uniqueValues=asArray(e)},enumerable:!0,configurable:!0});Object.defineProperty(ValueFilter.prototype,\"sortValues\",{get:function(){return this._sortValues},set:function(e){this._sortValues=asBoolean(e)},enumerable:!0,configurable:!0});Object.defineProperty(ValueFilter.prototype,\"dataMap\",{get:function(){return this._map},set:function(e){this._map=asType(e,DataMap,!0)},enumerable:!0,configurable:!0});Object.defineProperty(ValueFilter.prototype,\"column\",{get:function(){return this._col},enumerable:!0,configurable:!0});Object.defineProperty(ValueFilter.prototype,\"isActive\",{get:function(){return null!=this._values&&Object.keys(this._values).length>0},enumerable:!0,configurable:!0});ValueFilter.prototype.apply=function(e){var t=this.column;if(!(t&&t._binding&&this._values&&Object.keys(this._values).length))return!0;e=t._binding.getValue(e);e=this.dataMap?this.dataMap.getDisplayValue(e):t.dataMap?t.dataMap.getDisplayValue(e):Globalize.format(e,t.format);return null!=this._values[e]};ValueFilter.prototype.clear=function(){this.showValues=null;this.filterText=null};ValueFilter.prototype.implementsInterface=function(e){return\"IColumnFilter\"==e};ValueFilter.prototype._getUniqueValues=function(e,t){var i=[];if(this.uniqueValues){this.uniqueValues.forEach((function(e){i.push({value:e,text:e.toString()})}));return i}var r={},n=e.collectionView,l=n?n.sourceCollection:[];if(t&&n&&n.sourceCollection&&n.filter){var o=this.showValues;this.showValues=null;for(var a=[],s=0;s50){o.pageSize=50;setTimeout((function(){o.pageSize=a}))}else o.pageSize=a;o.sourceCollection=t};ValueFilterEditor.prototype.clearEditor=function(e){void 0===e&&(e=!0);this._cmbFilter.text=\"\";this._filterText=\"\";this._rxFilter=null;var t=this._view;t.pageSize=0;t.items.forEach((function(t){t.show=e}));t.moveCurrentTo(-1);t.refresh();t.pageSize=this._filter.maxValues};Object.defineProperty(ValueFilterEditor.prototype,\"isEditorClear\",{get:function(){return!this._filterText&&!this._cbSelectAll.indeterminate},enumerable:!0,configurable:!0});ValueFilterEditor.prototype.updateFilter=function(){var e=null,t=this._getItems();if(this._filterText||this._cbSelectAll.indeterminate){e={};for(var i=0;i
';return ValueFilterEditor}(Control);export{ValueFilterEditor};var ColumnFilter=function(){function ColumnFilter(e,t){this._owner=e;this._col=t;this._valueFilter=new ValueFilter(t);this._valueFilter.exclusiveValueSearch=e.exclusiveValueSearch;this._conditionFilter=new ConditionFilter(t)}Object.defineProperty(ColumnFilter.prototype,\"filterType\",{get:function(){return null!=this._filterType?this._filterType:this._owner.defaultFilterType},set:function(e){if((e=asEnum(e,FilterType,!0))!=this._filterType){var t=this.isActive;this.clear();this._filterType=e;t?this._owner.apply():this._col.grid&&this._col.grid.invalidate()}},enumerable:!0,configurable:!0});Object.defineProperty(ColumnFilter.prototype,\"dataMap\",{get:function(){return this.conditionFilter.dataMap||this.valueFilter.dataMap},set:function(e){this.conditionFilter.dataMap=e;this.valueFilter.dataMap=e},enumerable:!0,configurable:!0});Object.defineProperty(ColumnFilter.prototype,\"valueFilter\",{get:function(){return this._valueFilter},enumerable:!0,configurable:!0});Object.defineProperty(ColumnFilter.prototype,\"conditionFilter\",{get:function(){return this._conditionFilter},enumerable:!0,configurable:!0});Object.defineProperty(ColumnFilter.prototype,\"column\",{get:function(){return this._col},enumerable:!0,configurable:!0});Object.defineProperty(ColumnFilter.prototype,\"isActive\",{get:function(){return this._conditionFilter.isActive||this._valueFilter.isActive},enumerable:!0,configurable:!0});ColumnFilter.prototype.apply=function(e){return this._conditionFilter.apply(e)&&this._valueFilter.apply(e)};ColumnFilter.prototype.clear=function(){this._valueFilter.clear();this._conditionFilter.clear()};ColumnFilter.prototype.implementsInterface=function(e){return\"IColumnFilter\"==e};return ColumnFilter}();export{ColumnFilter};export var FilterType;!function(e){e[e.None=0]=\"None\";e[e.Condition=1]=\"Condition\";e[e.Value=2]=\"Value\";e[e.Both=3]=\"Both\"}(FilterType||(FilterType={}));var FlexGridFilter=function(){function FlexGridFilter(e,t){this._showIcons=!0;this._showSort=!0;this._defFilterType=FilterType.Both;this._xValueSearch=!0;this.filterApplied=new Event;this.filterChanging=new Event;this.filterChanged=new Event;this._filters=[];this._g=asType(e,FlexGrid,!1);this._g.formatItem.addHandler(this._formatItem.bind(this));this._g.itemsSourceChanged.addHandler(this.clear.bind(this));var i=this._g.hostElement;e.addEventListener(i,\"mousedown\",this._mousedown.bind(this),!0);e.addEventListener(i,\"click\",this._click.bind(this),!0);e.addEventListener(i,\"keydown\",this._keydown.bind(this),!0);this._g.invalidate();t&©(this,t)}Object.defineProperty(FlexGridFilter.prototype,\"grid\",{get:function(){return this._g},enumerable:!0,configurable:!0});Object.defineProperty(FlexGridFilter.prototype,\"filterColumns\",{get:function(){return this._filterColumns},set:function(e){this._filterColumns=asArray(e);this.clear()},enumerable:!0,configurable:!0});Object.defineProperty(FlexGridFilter.prototype,\"showFilterIcons\",{get:function(){return this._showIcons},set:function(e){if(e!=this.showFilterIcons){this._showIcons=asBoolean(e);this._g&&this._g.invalidate()}},enumerable:!0,configurable:!0});Object.defineProperty(FlexGridFilter.prototype,\"showSortButtons\",{get:function(){return this._showSort},set:function(e){this._showSort=asBoolean(e)},enumerable:!0,configurable:!0});FlexGridFilter.prototype.getColumnFilter=function(e,t){void 0===t&&(t=!0);if(e=this._asColumn(e)){for(var i=0;i'),o=this.getColumnFilter(e),a=new ColumnFilterEditor(l,o,this.showSortButtons);this._divEdt=l;this._edtCol=e;n.rightToLeft&&(l.dir=\"rtl\");var s=new CellRangeEventArgs(n.cells,new CellRange(-1,e.index));if(this.onFilterChanging(s)){s.cancel=!0;a.filterChanged.addHandler((function(){s.cancel=!1;setTimeout((function(){s.cancel||r.apply()}))}));a.buttonClicked.addHandler((function(){r.closeEditor();n.focus();r.onFilterChanged(s)}));a.lostFocus.addHandler((function(){setTimeout((function(){var e=Control.getControl(r._divEdt);e&&!e.containsFocus()&&r.closeEditor()}),10)}));var u=t?t.col:e.index,d=n.columns[u];!t&&d&&d.binding!=e.binding&&(u=n.selection.leftCol);n._edtHdl._commitRowEdits();n.scrollIntoView(-1,u,!0);var c=n.columnHeaders,p=t&&t.panel==c?t.row:c.rows.length-1,h=u,f=i||c.getCellElement(p,h),_=f?null:c.getCellBoundingRect(p,h);f?showPopup(l,f,!1,!1,!1):showPopup(l,_);this._setAriaExpanded(f,!0);this._setAriaExpanded(n.cells.getCellElement(-1,h),!0);for(var b=a.hostElement.querySelectorAll(\"input\"),v=0;v0&&m.tabIndex>-1&&!m.disabled){m.focus();break}}a.containsFocus()||a.focus()}else this._divEdt=this._edtCol=null};FlexGridFilter.prototype._setAriaExpanded=function(e,t){if(e){var i=e.querySelector(\".\"+FlexGridFilter._WJC_FILTER);setAttribute(i,\"aria-expanded\",t)}};FlexGridFilter.prototype.closeEditor=function(){var e=this._g,t=Control.getControl(this._divEdt),i=this._edtCol;t&&hidePopup(t.hostElement,(function(){t.dispose()}));if(i){var r=e.columnHeaders,n=r.rows.length?r.getCellElement(r.rows.length-1,i.index):null;this._setAriaExpanded(n,!1);n=e.cells.getCellElement(-1,i.index);this._setAriaExpanded(n,!1)}this._divEdt=null;this._edtCol=null};FlexGridFilter.prototype.apply=function(){var e=this._g.collectionView;if(e){var t=this._g.editableCollectionView;if(t){t.commitEdit();t.commitNew()}e.filter=this._filter.bind(this)}var i=e?e.updateFilterDefinition:null;isFunction(i)&&i.call(e,this);this.onFilterApplied()};FlexGridFilter.prototype.clear=function(){if(this._filters.length){this._filters=[];this.apply()}};FlexGridFilter.prototype.onFilterApplied=function(e){this.filterApplied.raise(this,e)};FlexGridFilter.prototype.onFilterChanging=function(e){this.filterChanging.raise(this,e);return!e.cancel};FlexGridFilter.prototype.onFilterChanged=function(e){this.filterChanged.raise(this,e)};FlexGridFilter.prototype._asColumn=function(e){return isString(e)?this._g.getColumn(e):isNumber(e)?this._g.columns[e]:asType(e,Column,!1)};FlexGridFilter.prototype._filter=function(e){for(var t=0;t');setAriaLabel(n,culture.FlexGridFilter.ariaLabels.edit+\" \"+e.header);setAttribute(n,\"aria-haspopup\",\"dialog\");setAttribute(n,\"aria-expanded\",!1);setAttribute(n,\"aria-describedby\",e.describedById);setAttribute(n,\"aria-pressed\",t.isActive);if(!i.querySelector(\".\"+r)){1==i.children.length&&(i=i.querySelector(\"div\")||i);i.insertBefore(n,i.firstChild)}};FlexGridFilter.prototype._mousedown=function(e){this._edtColPrev=this._edtCol};FlexGridFilter.prototype._click=function(e){if(this._toggleEditor(e)){e.stopPropagation();e.preventDefault()}};FlexGridFilter.prototype._toggleEditor=function(e){var t=this;if(!e.defaultPrevented&&0==e.button)if(closestClass(e.target,FlexGridFilter._WJC_FILTER)){var i=this._g,r=i.hitTest(e.target);r.panel||(r=i.hitTest(e));if(r.panel==i.columnHeaders||r.panel==i.cells&&-1==r.row){var n=i.columns[r.col],l=i._getBindingColumn(r.panel,r.row,n);if(this._divEdt&&this._edtCol==l){this.closeEditor();i.focus()}else l!=this._edtColPrev&&setTimeout((function(){t.editColumnFilter(l,r)}),this._divEdt?100:0);return!0}}else this.closeEditor();return!1};FlexGridFilter.prototype._keydown=function(e){if(!e.defaultPrevented&&!e.ctrlKey&&e.altKey&&(e.keyCode==Key.Down||e.keyCode==Key.Up)){var t=this.grid,i=t.selection,r=i.col>-1?t.columns[i.col]:null,n=r?t._getBindingColumn(t.cells,i.row,r):null,l=n&&n.dataMap&&n.dataMapEditor==DataMapEditor.DropDownList;if(n&&!l){var o=this.getColumnFilter(n,!1);if(o&&o.filterType!=FilterType.None){this.editColumnFilter(n);e.preventDefault();e.stopPropagation()}}}};FlexGridFilter._WJC_FILTER=\"wj-elem-filter\";return FlexGridFilter}();export{FlexGridFilter};_addCultureInfo(\"FlexGridFilter\",{ariaLabels:{edit:\"Edit Filter for Column\",dialog:\"Filter Editor for Column\",asc:\"Sort Column in Ascending Order\",dsc:\"Sort Column in Descending Order\",search:\"Search Item List\",op1:\"First Condition Operator\",val1:\"First Condition Value\",and:\"Require both Conditions\",or:\"Require either Condition\",op2:\"Second Condition Operator\",val2:\"Second Condition Value\"},ascending:\"↑ Ascending\",descending:\"↓ Descending\",apply:\"Apply\",cancel:\"Cancel\",clear:\"Clear\",conditions:\"Filter by Condition\",values:\"Filter by Value\",search:\"Search\",selectAll:\"Select All\",null:\"(nothing)\",header:\"Show items where the value\",and:\"And\",or:\"Or\",stringOperators:[{name:\"(not set)\",op:null},{name:\"Equals\",op:Operator.EQ},{name:\"Does not equal\",op:Operator.NE},{name:\"Begins with\",op:Operator.BW},{name:\"Ends with\",op:Operator.EW},{name:\"Contains\",op:Operator.CT},{name:\"Does not contain\",op:Operator.NC}],numberOperators:[{name:\"(not set)\",op:null},{name:\"Equals\",op:Operator.EQ},{name:\"Does not equal\",op:Operator.NE},{name:\"Is Greater than\",op:Operator.GT},{name:\"Is Greater than or equal to\",op:Operator.GE},{name:\"Is Less than\",op:Operator.LT},{name:\"Is Less than or equal to\",op:Operator.LE}],dateOperators:[{name:\"(not set)\",op:null},{name:\"Equals\",op:Operator.EQ},{name:\"Is Before\",op:Operator.LT},{name:\"Is After\",op:Operator.GT}],booleanOperators:[{name:\"(not set)\",op:null},{name:\"Equals\",op:Operator.EQ},{name:\"Does not equal\",op:Operator.NE}]});var ColumnFilterEditor=function(e){__extends(ColumnFilterEditor,e);function ColumnFilterEditor(t,i,r){void 0===r&&(r=!0);var n=e.call(this,t,null,!0)||this;n.filterChanged=new Event;n.buttonClicked=new Event;n._filter=asType(i,ColumnFilter);var l=n.getTemplate();n.applyTemplate(\"wj-control wj-content wj-columnfiltereditor\",l,{_divSort:\"div-sort\",_btnAsc:\"btn-asc\",_btnDsc:\"btn-dsc\",_divType:\"div-type\",_aVal:\"a-val\",_aCnd:\"a-cnd\",_divEdtVal:\"div-edt-val\",_divEdtCnd:\"div-edt-cnd\",_btnApply:\"btn-apply\",_btnCancel:\"btn-cancel\",_btnClear:\"btn-clear\"});var o=culture.FlexGridFilter,a=o.ariaLabels,s=n.hostElement,u=n.filter.column,d=u.grid.collectionView;setAttribute(s,\"role\",\"dialog\");setAriaLabel(s,a.dialog+\" \"+u.header);setAriaLabel(n._btnAsc,a.asc);setAriaLabel(n._btnDsc,a.dsc);setText(n._btnAsc,o.ascending);setText(n._btnDsc,o.descending);setText(n._aVal,o.values);setText(n._aCnd,o.conditions);setText(n._btnApply,o.apply);setText(n._btnCancel,o.cancel);setText(n._btnClear,o.clear);var c=n.filter.conditionFilter.isActive||0==(i.filterType&FilterType.Value)?FilterType.Condition:FilterType.Value;n._showFilter(c);r&&d&&d.canSort||(n._divSort.style.display=\"none\");var p=n._btnClicked.bind(n);n._btnApply.addEventListener(\"click\",p);n._btnCancel.addEventListener(\"click\",p);n._btnClear.addEventListener(\"click\",p);n._btnAsc.addEventListener(\"click\",p);n._btnDsc.addEventListener(\"click\",p);n._aVal.addEventListener(\"click\",p);n._aCnd.addEventListener(\"click\",p);n.addEventListener(s,\"keydown\",(function(e){if(!e.defaultPrevented){var t=e.target.tagName.match(/^(a|button)$/i);switch(e.keyCode){case Key.Space:if(t){n._btnClicked(e);e.preventDefault()}break;case Key.Enter:if(t)n._btnClicked(e);else{n.updateFilter();n.onFilterChanged();n.onButtonClicked()}e.preventDefault();break;case Key.Escape:n.onButtonClicked();e.preventDefault();break;case Key.Tab:moveFocus(n.hostElement,e.shiftKey?-1:1);e.preventDefault()}}}));n.addEventListener(window,\"resize\",(function(){n.isTouching||n._wasTouching||n.onButtonClicked()}));return n}Object.defineProperty(ColumnFilterEditor.prototype,\"filter\",{get:function(){return this._filter},enumerable:!0,configurable:!0});ColumnFilterEditor.prototype.updateEditor=function(){this._edtVal&&this._edtVal.updateEditor();this._edtCnd&&this._edtCnd.updateEditor()};ColumnFilterEditor.prototype.updateFilter=function(){switch(this._getFilterType()){case FilterType.Value:this._edtVal.updateFilter();this.filter.conditionFilter.clear();break;case FilterType.Condition:this._edtCnd.updateFilter();this.filter.valueFilter.clear()}};ColumnFilterEditor.prototype.onFilterChanged=function(e){this.filterChanged.raise(this,e)};ColumnFilterEditor.prototype.onButtonClicked=function(e){this.buttonClicked.raise(this,e)};ColumnFilterEditor.prototype._showFilter=function(e){this._wasTouching=this.isTouching;e==FilterType.Value&&null==this._edtVal&&(this._edtVal=new ValueFilterEditor(this._divEdtVal,this.filter.valueFilter));e==FilterType.Condition&&null==this._edtCnd&&(this._edtCnd=new ConditionFilterEditor(this._divEdtCnd,this.filter.conditionFilter));if(0!=(e&this.filter.filterType))if(e==FilterType.Value){this._divEdtVal.style.display=\"\";this._divEdtCnd.style.display=\"none\";this._enableLink(this._aVal,!1);this._enableLink(this._aCnd,!0);this._edtVal.focus()}else{this._divEdtVal.style.display=\"none\";this._divEdtCnd.style.display=\"\";this._enableLink(this._aVal,!0);this._enableLink(this._aCnd,!1);this._edtCnd.focus()}var t=this._divType.style;switch(this.filter.filterType){case FilterType.None:case FilterType.Condition:case FilterType.Value:t.display=\"none\";break;default:t.display=\"\"}};ColumnFilterEditor.prototype._enableLink=function(e,t){toggleClass(e,\"wj-state-disabled\",!t);setAttribute(e,\"href\",t?\"\":null);setAttribute(e,\"disabled\",t?null:\"disabled\")};ColumnFilterEditor.prototype._getFilterType=function(){var e=FilterType;return\"none\"!=this._divEdtVal.style.display?e.Value:e.Condition};ColumnFilterEditor.prototype._btnClicked=function(e){var t=e.target;e.preventDefault();e.stopPropagation();if(!hasClass(t,\"wj-state-disabled\"))if(t!=this._aVal)if(t!=this._aCnd){if(t==this._btnAsc||t==this._btnDsc){var i=this.filter.column,r=i.sortMemberPath?i.sortMemberPath:i.binding,n=i.grid.collectionView,l=new SortDescription(r,e.target==this._btnAsc);n.sortDescriptions.deferUpdate((function(){n.sortDescriptions.clear();n.sortDescriptions.push(l)}))}if(t==this._btnApply){this.updateFilter();this.onFilterChanged()}else if(t==this._btnClear){if(this.filter.isActive){this.filter.clear();this.onFilterChanged()}}else this.updateEditor();this.onButtonClicked()}else{this._showFilter(FilterType.Condition);moveFocus(this._edtCnd.hostElement,0)}else{this._showFilter(FilterType.Value);moveFocus(this._edtVal.hostElement,0)}};ColumnFilterEditor.controlTemplate='
   
 | 
    
';return ColumnFilterEditor}(Control);export{ColumnFilterEditor};_registerModule(\"wijmo.grid.filter\",selfModule);","/*!\n *\n * Wijmo Library 5.20201.680\n * http://wijmo.com/\n *\n * Copyright(c) GrapeCity, Inc. All rights reserved.\n *\n * Licensed under the GrapeCity Commercial License.\n * sales@wijmo.com\n * wijmo.com/products/wijmo-5/license/\n *\n */\n\nvar __extends=this&&this.__extends||function(){var extendStatics=function(e,t){return(extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var o in t)t.hasOwnProperty(o)&&(e[o]=t[o])})(e,t)};return function(e,t){extendStatics(e,t);function __(){this.constructor=e}e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)}}();import{culture,isDate,isNumber,isInt,isFunction,asEnum,assert,Color,isString,isNullOrWhiteSpace,isObject,isBoolean,_registerModule}from\"@grapecity/wijmo\";import*as JSZipRef from\"jszip\";import*as selfModule from\"@grapecity/wijmo.xlsx\";var Workbook=function(){function Workbook(){this._externalCancellation=null}Object.defineProperty(Workbook.prototype,\"sheets\",{get:function(){null==this._sheets&&(this._sheets=[]);return this._sheets},enumerable:!0,configurable:!0});Object.defineProperty(Workbook.prototype,\"styles\",{get:function(){null==this._styles&&(this._styles=[]);return this._styles},enumerable:!0,configurable:!0});Object.defineProperty(Workbook.prototype,\"definedNames\",{get:function(){null==this._definedNames&&(this._definedNames=[]);return this._definedNames},enumerable:!0,configurable:!0});Object.defineProperty(Workbook.prototype,\"colorThemes\",{get:function(){null==this._colorThemes&&(this._colorThemes=[]);return this._colorThemes},enumerable:!0,configurable:!0});Object.defineProperty(Workbook.prototype,\"reservedContent\",{get:function(){null==this._reservedContent&&(this._reservedContent={});return this._reservedContent},set:function(e){this._reservedContent=e},enumerable:!0,configurable:!0});Workbook.prototype.save=function(e){var t=_xlsx.save(this),o=!(!this._reservedContent||!this._reservedContent.macros);e&&Workbook._saveToFile(t.base64,e,o);return t.base64};Workbook.prototype.saveAsync=function(e,t,o,r){var l=this;this.cancelAsync((function(){l._cs=isFunction(l._externalCancellation)?l._externalCancellation():new _SyncPromise;_xlsx.saveAsync(l,l._cs,o,r).then((function(o){if(e){var s=!(!l._reservedContent||!l._reservedContent.macros);Workbook._saveToFile(o,e,s)}l._cs=null;isFunction(r)&&r(100);t&&t(o)}),(function(){return l._cs=null}))}))};Workbook.prototype.cancelAsync=function(e){var t=this;if(this._cs){this._cs.cancel();setTimeout((function(){t._cs=null;isFunction(e)&&e()}),100)}else isFunction(e)&&e()};Workbook.prototype.load=function(e){var t=_xlsx.load(this._getBase64String(e));this._deserialize(t);t=null};Workbook.prototype.loadAsync=function(e,t,o){var r=this;_xlsx.loadAsync(r._getBase64String(e)).then((function(e){r._deserialize(e);e=null;t(r)})).catch(o)};Workbook.prototype._serialize=function(){var e={sheets:[]};e.sheets=this._serializeWorkSheets();this._styles&&this._styles.length>0&&(e.styles=this._serializeWorkbookStyles());this._reservedContent&&(e.reservedContent=this._reservedContent);null!=this.activeWorksheet&&!isNaN(this.activeWorksheet)&&this.activeWorksheet>=0&&(e.activeWorksheet=this.activeWorksheet);this.application&&(e.application=this.application);this.company&&(e.company=this.company);null!=this.created&&(e.created=this.created);this.creator&&(e.creator=this.creator);this.lastModifiedBy&&(e.lastModifiedBy=this.lastModifiedBy);null!=this.modified&&(e.modified=this.modified);this._definedNames&&this._definedNames.length>0&&(e.definedNames=this._serializeDefinedNames());this._colorThemes&&this._colorThemes.length>0&&(e.colorThemes=this._colorThemes.slice());return e};Workbook.prototype._deserialize=function(e){this._deserializeWorkSheets(e.sheets);e.styles&&e.styles.length>0&&this._deserializeWorkbookStyles(e.styles);this.activeWorksheet=e.activeWorksheet;this.application=e.application;this.company=e.company;this.created=e.created;this.creator=e.creator;this.lastModifiedBy=e.lastModifiedBy;this.modified=e.modified;this.reservedContent=e.reservedContent;e.definedNames&&e.definedNames.length>0&&this._deserializeDefinedNames(e.definedNames);e.colorThemes&&e.colorThemes.length>0&&(this._colorThemes=e.colorThemes.slice())};Workbook.prototype._addWorkSheet=function(e,t){null==this._sheets&&(this._sheets=[]);null==t||isNaN(t)?this._sheets.push(e):this._sheets[t]=e};Workbook._saveToFile=function(e,t,o){var r,l,s,i,n,a,h=window.document,f=o?\"xlsm\":\"xlsx\",c=\"xlsm\"===f?\"application/vnd.ms-excel.sheet.macroEnabled.12\":\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\";if((l=t.lastIndexOf(\".\"))<0)t+=\".\"+f;else{if(0===l)throw\"Invalid file name.\";\"\"===(r=t.substring(l+1))?t+=\".\"+f:r!==f&&(t+=\".\"+f)}s=new Blob([Workbook._base64DecToArr(e)],{type:c});if(navigator.msSaveBlob)navigator.msSaveBlob(s,t);else if(URL.createObjectURL){n=h.createElement(\"a\");a=function(e){var t=h.createEvent(\"MouseEvents\");t.initMouseEvent(\"click\",!0,!1,window,0,0,0,0,0,!1,!1,!1,!1,0,null);e.dispatchEvent(t)};n.download=t;n.href=URL.createObjectURL(s);a(n);n=null}else{i=new FileReader;n=h.createElement(\"a\");a=function(e){var t=h.createEvent(\"MouseEvents\");t.initMouseEvent(\"click\",!0,!1,window,0,0,0,0,0,!1,!1,!1,!1,0,null);e.dispatchEvent(t)};i.onload=function(){n.download=t;n.href=i.result;a(n);n=null};i.readAsDataURL(s)}};Workbook.prototype._getBase64String=function(e){var t;if(null==e||0===e.length)throw\"Invalid xlsx file content.\";-1!==(t=e.search(/base64,/i))&&(e=e.substring(t+7));return e};Workbook.toXlsxDateFormat=function(e){var t;if(1===e.length)switch(e){case\"r\":case\"R\":return\"ddd, dd MMM yyyy HH:mm:ss "GMT"\";case\"u\":return\"yyyy-MM-dd"T"HH:mm:ss"Z"\";case\"o\":case\"O\":t=(t=culture.Globalize.calendar.patterns[e]).replace(/f+k/gi,\"000\");break;default:t=culture.Globalize.calendar.patterns[e]}t||(t=e);t=t.replace(/\"/g,\"\").replace(/tt/,\"AM/PM\").replace(/t/,\"A/P\").replace(/M+/gi,(function(e){return e.toLowerCase()})).replace(/g+y+/gi,(function(e){return e.substring(0,e.indexOf(\"y\"))+\"e\"}));return/FY|Q/i.test(t)?\"General\":t};Workbook.toXlsxNumberFormat=function(e){var t,o,r,l,s,i,n,a=-1,h=e?e.toLowerCase():\"\",f=[];if(/^[ncpfdg]\\d*.*,*$/.test(h)){t=h[0];o=this._formatMap[t]}if(o){l=h.split(\",\");if(\"c\"===t){\"​\"===(r=(n=e?e.match(/([a-z])(\\d*)(,*)(.*)/i):null)&&n[4]?n[4]:culture.Globalize.numberFormat.currency.symbol)&&(r=\"\");o=o.replace(/\\{1\\}/g,r)}h.length>1?a=parseInt(l[0].substr(1)):\"d\"!==t&&(a=2);if(!isNaN(a))for(i=0;i0?\"d\"===t?o.replace(/\\{0\\}/g,f.join(\"\")):o.replace(/\\{0\\}/g,(!isNaN(a)&&a>0?\".\":\"\")+f.join(\"\")):\"d\"===t?o.replace(/\\{0\\}/g,\"0\"):o.replace(/\\{0\\}/g,\"\")}else s=h;return s};Workbook.fromXlsxFormat=function(e){var t,o,r,l,s,i,n,a,h,f=[],c=culture.Globalize.numberFormat.currency.symbol;if(!e||\"General\"===e)return[\"\"];o=(e=e.replace(/;@/g,\"\").replace(/"?/g,\"\")).split(\";\");for(l=0;l-1?e.toLowerCase():e})).replace(/g+e/gi,(function(e){return e.substring(0,e.length-1)+\"yy\"}));else{i=r.lastIndexOf(\".\");n=r.lastIndexOf(\"0\");a=r.lastIndexOf(\",\");t=r.search(/\\[\\$([^\\-\\]]+)[^\\]]*\\]/)>-1||r.indexOf(c)>-1&&-1===r.search(/\\[\\$([\\-\\]]+)[^\\]]*\\]/)?\"c\":\"%\"===r[e.length-1]?\"p\":\"n\";t+=i>-1&&i-1&&n>-1&&n/g,\">\").replace(/\"/g,\""\"):\"\"};Workbook._unescapeXML=function(e){return\"string\"==typeof e?e.replace(/&/g,\"&\").replace(/</g,\"<\").replace(/>/g,\">\").replace(/"/g,'\"').replace(/'/g,\"'\").replace(///g,\"/\"):\"\"};Workbook._numAlpha=function(e){var t=Math.floor(e/26)-1;return(t>-1?this._numAlpha(t):\"\")+this._alphabet.charAt(e%26)};Workbook._alphaNum=function(e){var t=0;e&&(e=e.toUpperCase());2===e.length&&(t=this._alphaNum(e.charAt(0))+1);return 26*t+this._alphabet.indexOf(e.substr(-1))};Workbook._b64ToUint6=function(e){return e>64&&e<91?e-65:e>96&&e<123?e-71:e>47&&e<58?e+4:43===e?62:47===e?63:0};Workbook._base64DecToArr=function(e,t){for(var o,r,l=e.replace(/[^A-Za-z0-9\\+\\/]/g,\"\"),s=l.length,i=t?Math.ceil((3*s+1>>2)/t)*t:3*s+1>>2,n=new Uint8Array(i),a=0,h=0,f=0;f>>(16>>>o&24)&255;a=0}}return n};Workbook._uint6ToB64=function(e){return e<26?e+65:e<52?e+71:e<62?e-4:62===e?43:63===e?47:65};Workbook._base64EncArr=function(e){for(var t=2,o=\"\",r=e.length,l=0,s=0;s0&&4*s/3%76==0&&(o+=\"\\r\\n\");l|=e[s]<<(16>>>t&24);if(2===t||e.length-s==1){o+=String.fromCharCode(this._uint6ToB64(l>>>18&63),this._uint6ToB64(l>>>12&63),this._uint6ToB64(l>>>6&63),this._uint6ToB64(63&l));l=0}}return o.substr(0,o.length-2+t)+(2===t?\"\":1===t?\"=\":\"==\")};Workbook.prototype._serializeWorkSheets=function(){var e,t,o=[];for(t=0;t0&&(e.columns=this._serializeWorkbookColumns());this._rows&&this._rows.length>0&&(e.rows=this._serializeWorkbookRows());this.frozenPane&&(e.frozenPane=this.frozenPane._serialize());this.name&&(e.name=this.name);null!=this.summaryBelow&&(e.summaryBelow=this.summaryBelow);null!=this.visible&&(e.visible=this.visible);this._tables&&this._tables.length>0&&(e.tables=this._serializeTables());return e};WorkSheet.prototype._deserialize=function(e){var t,o;if(e.style){(o=new WorkbookStyle)._deserialize(e.style);this.style=o}e.columns&&e.columns.length>0&&this._deserializeWorkbookColumns(e.columns);e.rows&&e.rows.length>0&&this._deserializeWorkbookRows(e.rows);if(e.frozenPane){(t=new WorkbookFrozenPane)._deserialize(e.frozenPane);this.frozenPane=t}this.name=e.name;this.summaryBelow=e.summaryBelow;this.visible=e.visible;e.tables&&e.tables.length>0&&this._deserializeTables(e.tables)};WorkSheet.prototype._addWorkbookColumn=function(e,t){null==this._columns&&(this._columns=[]);null==t||isNaN(t)?this._columns.push(e):this._columns[t]=e};WorkSheet.prototype._addWorkbookRow=function(e,t){null==this._rows&&(this._rows=[]);null==t||isNaN(t)?this._rows.push(e):this._rows[t]=e};WorkSheet.prototype._serializeWorkbookColumns=function(){var e,t,o=[];for(t=0;t0&&(e.cells=this._serializeWorkbookCells());this.style&&(e.style=this.style._serialize());null!=this.collapsed&&(e.collapsed=this.collapsed);null==this.groupLevel||isNaN(this.groupLevel)||(e.groupLevel=this.groupLevel);null==this.height||isNaN(this.height)||(e.height=this.height);null!=this.visible&&(e.visible=this.visible);return e};WorkbookRow.prototype._deserialize=function(e){var t;e.cells&&e.cells.length>0&&this._deserializeWorkbookCells(e.cells);if(e.style){(t=new WorkbookStyle)._deserialize(e.style);this.style=t}this.collapsed=e.collapsed;this.groupLevel=e.groupLevel;this.height=e.height;this.visible=e.visible};WorkbookRow.prototype._addWorkbookCell=function(e,t){null==this._cells&&(this._cells=[]);null==t||isNaN(t)?this._cells.push(e):this._cells[t]=e};WorkbookRow.prototype._serializeWorkbookCells=function(){var e,t,o=[];for(t=0;t1&&(e.colSpan=this.colSpan);null!=this.rowSpan&&!isNaN(this.rowSpan)&&this.rowSpan>1&&(e.rowSpan=this.rowSpan);this.link&&(e.link=this.link);this.textRuns&&this.textRuns.length>0&&(e.textRuns=this._serializeTextRuns());return e};WorkbookCell.prototype._deserialize=function(e){var t;if(e.style){(t=new WorkbookStyle)._deserialize(e.style);this.style=t}this.value=e.value;this.formula=e.formula;this.isDate=e.isDate;this.colSpan=e.colSpan;this.rowSpan=e.rowSpan;this.link=e.link;e.textRuns&&e.textRuns.length>0&&this._deserializeTextRuns(e.textRuns)};WorkbookCell.prototype._serializeTextRuns=function(){var e,t,o=[];for(t=0;t0||o.externalLinks&&o.externalLinks.length>0)){var r=0,l='';if(o.externalLinks&&o.externalLinks.length>0){l+=i._generateHyperlinkRel(o.externalLinks);r=o.externalLinks.length}if(o.tables&&o.tables.length>0){null==s&&(s=t.folder(\"tables\"));for(var h=0;h'}}l+=\"\";n.folder(\"_rels\").file(\"sheet\"+(f+1)+\".xml.rels\",i._xmlDescription+l)}a.resolve()}));return a}))};a--;)_loop_1();return _SyncPromise.serial(o,h).then((function(){isFunction(l)&&l(100)}))};_xlsx._getSharedString=function(e){var t,o,r,l,s,i,n,a,h=e.split(//g),f=h.length;this._sharedStrings=[];for(;--f;){t=1;l=!1;if(h[f].search(//gi)>-1){l=!0;o=h[f].split(//g)}else if(h[f].indexOf(\"\")>=0)o=[\"\",\"\"];else{h[f]=h[f].substring(0,h[f].indexOf(\"\"));o=h[f].split(//g)}for(;t\")&&(i=this._getTextRunFont(o[t]));(r=o[t].match(/()(.*)/))&&3===r.length&&null!=r[2]&&-1!==(a=(n=r[2]).indexOf(\"\"))&&(n=n.substring(0,a));s={font:i,text:Workbook._unescapeXML(n)};null==this._sharedStrings[f-1]?this._sharedStrings[f-1]=[s]:this._sharedStrings[f-1].push(s)}else this._sharedStrings[f-1]=Workbook._unescapeXML(o[t]);t++}}};_xlsx._getInlineString=function(e){for(var t=e.split(\"\"),o=t.length,r=\"\";--o;)r+=t[o].substring(0,t[o].indexOf(\"\"));return r};_xlsx._getCoreSetting=function(e,t){var o,r;if((r=e.indexOf(\"\"))>=0){o=e.substr(r+12);t.creator=o.substring(0,o.indexOf(\"\"))}if((r=e.indexOf(\"\"))>=0){o=e.substr(r+19);t.lastModifiedBy=o.substring(0,o.indexOf(\"\"))}if((r=e.indexOf(''))>=0){o=e.substr(r+43);t.created=new Date(o.substring(0,o.indexOf(\"\")))}if((r=e.indexOf(''))>=0){o=e.substr(r+44);t.modified=new Date(o.substring(0,o.indexOf(\"\")))}};_xlsx._getWorkbook=function(e,t){var o,r,l,s,i,n,a,h,f=e.substring(e.indexOf(\"\"),e.indexOf(\"\")),c=\"\",u=e.indexOf(\"\");f&&(c=this._getAttr(f,\"activeTab\"));t.activeWorksheet=+c;n=(i=e.split(\"-1){t.definedNames=[];n=(i=e.substring(u,e.indexOf(\"\")).split(\".+(?=<\\/definedName>)/)){r=r[0].replace(/(.*>)(.+)/,\"$2\");r=isNaN(+r)?r:+r}o={name:a,value:r};\"\"!==(l=this._getAttr(i[n],\"localSheetId\"))&&(s=t.sheets[+l])&&(o.sheetName=s.name);t.definedNames.unshift(o)}}};_xlsx._getTheme=function(e){e=e.substring(e.indexOf(\"\"));this._colorThemes=this._defaultColorThemes.slice();this._colorThemes[0]=this._getAttr(e.substring(e.indexOf(\"a:lt1\"),e.indexOf(\"\")),\"lastClr\")||this._getAttr(e.substring(e.indexOf(\"a:lt1\"),e.indexOf(\"\")),\"val\");this._colorThemes[1]=this._getAttr(e.substring(e.indexOf(\"a:dk1\"),e.indexOf(\"\")),\"lastClr\")||this._getAttr(e.substring(e.indexOf(\"a:dk1\"),e.indexOf(\"\")),\"val\");this._colorThemes[2]=this._getAttr(e.substring(e.indexOf(\"a:lt2\"),e.indexOf(\"\")),\"val\");this._colorThemes[3]=this._getAttr(e.substring(e.indexOf(\"a:dk2\"),e.indexOf(\"\")),\"val\");for(var t=e.substring(e.indexOf(\"\")).split(\"=0){var f=e.substring(r+8,e.indexOf(\"\")).split(\"=0){var c,u=e.substring(r,e.indexOf(\"\")).split(\"\");t=u.length;for(;--t;){o=u[t];l=this._getChildNodeValue(o,\"sz\");i[t-1]={bold:o.indexOf(\"\")>=0||\"true\"===this._getChildNodeValue(o,\"b\"),italic:o.indexOf(\"\")>=0||\"true\"===this._getChildNodeValue(o,\"i\"),underline:o.indexOf(\"\")>=0||(c=this._getChildNodeValue(o,\"u\"))&&\"none\"!==c,size:Math.round(l?96*+l/72:14),family:this._getChildNodeValue(o,\"name\"),color:this._getColor(o,!1)};l=null}}if((r=e.indexOf(\"=0){var d=e.substring(r,e.indexOf(\"\")).split(\"\");t=d.length;for(;--t;)n[t-1]=this._getColor(d[t],!0)}if((r=e.indexOf(\"=0){var p=e.substring(r+8,e.indexOf(\"\")).split(\"=0){var m,g,_,y,b,k,x=e.substring(r,e.indexOf(\"\")).split(\"-1?\"number\":\"@\"===m?\"string\":\"unknown\":\"unknown\";y=(_=+this._getAttr(o,\"fontId\"))>0?i[_]:null;b=(_=+this._getAttr(o,\"fillId\"))>1?n[_]:null;k=(_=+this._getAttr(o,\"borderId\"))>0?a[_]:null;r=o.indexOf(\"=0?Workbook._parseStringToHAlign(this._getAttr(o,\"horizontal\")):null,vAlign:r>=0?Workbook._parseStringToVAlign(this._getAttr(o,\"vertical\")):null,wordWrap:r>=0?\"1\"===this._getAttr(o,\"wrapText\"):null,quotePrefix:1===s})}}if(e.indexOf(\"-1){this._tableStyles=[];var S=e.substring(e.indexOf(\"\")),v=e.substring(e.indexOf(\"\"));this._getTableStyles(S,v.split(\"\"))}};_xlsx._getEdgeBorder=function(e,t){var o,r,l,s,i=e.indexOf(\"<\"+t),n=e.indexOf(\"\");if(i>=0){r=e.substring(i);r=n>=0?r.substring(0,n):r.substring(0,r.indexOf(\"/>\"));var a=this._getAttr(r,\"style\");if(a){l=Workbook._parseStringToBorderType(a);s=this._getColor(r,!1);if(l!==BorderStyle.Thin||!s||\"#c6c6c6\"!==s.toLowerCase()){(o={}).style=l;o.color=s}}}return o};_xlsx._getSheet=function(e,t,o){var r,l=[];if(e.indexOf(\"-1)for(var s=e.substring(e.indexOf(\"\")).split(\"=0){var h=this._getAttr(n[0].substr(n[0].indexOf(\"-1){var c=e.substring(f,e.indexOf(\"\")).split(\"0&&n[0].indexOf(\"-1&&\"frozen\"===this._getAttr(n[0].substr(n[0].indexOf(\"\")).indexOf(\"hidden\")>-1&&\"1\"===this._getAttr(n[i],\"hidden\")&&(y.visible=!1);if(\"1\"===this._getAttr(n[i],\"customHeight\")){var b=+this._getAttr(n[i].substring(0,n[i].indexOf(\">\")).replace(\"customHeight\",\"\"),\"ht\");y.height=96*b/72}g=null;_=null;\"1\"===this._getAttr(n[i],\"customFormat\")&&(g=(_=this._styles[+this._getAttr(n[i].substring(n[i].indexOf(\" s=\")),\"s\")]||{type:\"General\",formatCode:null}).font||_.fillColor||_.hAlign||_.vAlign||_.wordWrap||_.borders||_.formatCode&&\"General\"!==_.formatCode?{format:_.formatCode&&\"General\"!==_.formatCode?_.formatCode:null,font:_.font,fill:{color:_.fillColor},borders:_.borders,hAlign:_.hAlign,vAlign:_.vAlign,wordWrap:_.wordWrap}:null);y.style=g;var k=this._getAttr(n[i],\"outlineLevel\");y.groupLevel=k&&\"\"!==k?+k:NaN;y.collapsed=\"1\"===this._getAttr(n[i],\"collapsed\");var x=n[i].split(\"\")),\"t\")||_.type,C=null,W=\"inlineStr\"===w||v.indexOf(\"\")>=0;W?C=this._getInlineString(v):v.indexOf(\"\")>-1&&(C=v.substring(v.indexOf(\"\")+3,v.indexOf(\"\")));var T=null,F=null,A=null;if(v.indexOf(\"-1)if(v.indexOf(\"\")>-1)(T=v.match(/.+(?=<\\/f>)/))&&(T=T[0].replace(/(\\)(.+)/,\"$2\"));else if(F=this._getAttr(v,\"si\")){A=this._getAttr(v,\"r\");T=this._getSharedFormula(F,A)}null!=T&&(T=T.replace(/\\[\\#This Row\\]\\s*,\\s*/gi,\"@\"));\"str\"===w||\"e\"===w||W||(C=C?+C:C);m=this._alphaNum(this._getAttr(v,\"r\").match(/[a-zA-Z]*/g)[0]);var z=null;switch(w){case\"s\":if(null!=(C=this._sharedStrings[C]))if(isString(C))_&&_.quotePrefix&&(C=\"'\"+C);else{z=C.slice();C=this._getTextOfTextRuns(z)}break;case\"b\":C=1===C;break;case\"date\":C=C?this._convertDate(C):\"\"}if(isNumber(C)){null==g&&(g={format:\"\"});isInt(C)?g.format=g.format||\"#,##0\":g.format=g.format||\"#,##0.00\"}y.cells[m]={value:C,textRuns:z,isDate:\"date\"===w,formula:Workbook._unescapeXML(T),style:g}}}var R=[],O=[];g=null;_=null;if(n.length>0&&n[0].indexOf(\"\")>-1)for(var D=(R=n[0].substring(n[0].indexOf(\"\")+6,n[0].indexOf(\"\")).split(\"0;D--){var B=this._parseCharWidthToPixel(+this._getAttr(R[D],\"width\"));_=null;R[D].indexOf(\"style\")>-1&&(_=this._styles[+this._getAttr(R[D],\"style\")]||{type:\"General\",formatCode:null});g=null;_&&(_.font||_.fillColor||_.hAlign||_.vAlign||_.wordWrap||_.borders||_.formatCode&&\"General\"!==_.formatCode)&&(g={format:_.formatCode&&\"General\"!==_.formatCode?_.formatCode:null,font:_.font,fill:{color:_.fillColor},borders:_.borders,hAlign:_.hAlign,vAlign:_.vAlign,wordWrap:_.wordWrap});for(m=+this._getAttr(R[D],\"min\")-1;m<+this._getAttr(R[D],\"max\")&&m-1)for(var M=e.substring(P,e.indexOf(\"\")).split(\"-1)for(var h=e.substring(e.indexOf(\"\")).split(\"\")+2+\"totalsRowFormula\".length,e.indexOf(\"\")));t.totalRowFunction=r}return t};_xlsx._getSheetRelatedTable=function(e){var t=this._getAttr(e,\"Target\");t=t.substring(t.lastIndexOf(\"/\")+1);for(var o=0;o\");if(s>=0){t=e.substring(s,e.indexOf(\"\"));var i=this._getChildNodeValue(t,\"sz\");o={bold:\"1\"===this._getChildNodeValue(t,\"b\"),italic:\"1\"===this._getChildNodeValue(t,\"i\"),underline:\"1\"===this._getChildNodeValue(t,\"u\"),size:Math.round(i?96*+i/72:14),family:this._getChildNodeValue(t,\"name\"),color:this._getColor(t,!1)}}t=null;if((s=e.indexOf(\"\"))>=0){t=e.substring(s,e.indexOf(\"\"));r={color:this._getColor(t,!0)}}t=null;if((s=e.indexOf(\"\"))>=0){t=e.substring(s,e.indexOf(\"\"));l={left:this._getEdgeBorder(t,\"left\"),right:this._getEdgeBorder(t,\"right\"),top:this._getEdgeBorder(t,\"top\"),bottom:this._getEdgeBorder(t,\"bottom\"),vertical:this._getEdgeBorder(t,\"vertical\"),horizontal:this._getEdgeBorder(t,\"horizontal\")}}return{font:o,fill:r,borders:l}};_xlsx._getTableStyleByName=function(e){var t,o;if(null==this._tableStyles||0===this._tableStyles.length)return null;for(t=0;t\")>=0||\"true\"===this._getChildNodeValue(e,\"b\"),italic:e.indexOf(\"\")>=0||\"true\"===this._getChildNodeValue(e,\"i\"),underline:e.indexOf(\"\")>=0||(t=this._getChildNodeValue(e,\"u\"))&&\"none\"!==t,size:Math.round(o?96*+o/72:14),family:this._getChildNodeValue(e,\"name\"),color:this._getColor(e,!1)}};_xlsx._getTextOfTextRuns=function(e){var t,o,r=\"\";for(t=0;t=1&&t<=21)return!0}else if(0===e.search(/TableStyleMedium/i)){t=+e.substring(16);if(!isNaN(t)&&t>=1&&t<=28)return!0}else if(0===e.search(/TableStyleDark/i)){t=+e.substring(14);if(!isNaN(t)&&t>=1&&t<=11)return!0}return!1};_xlsx._generateRelsDoc=function(){return''};_xlsx._generateThemeDoc=function(){return''+this._generateClrScheme()+this._generateFontScheme()+this._generateFmtScheme()+\"\"};_xlsx._generateClrScheme=function(){null===this._colorThemes&&(this._colorThemes=[]);return''};_xlsx._generateFontScheme=function(){return''};_xlsx._generateFmtScheme=function(){return''+this._generateFillScheme()+this._generateLineStyles()+this._generateEffectScheme()+this._generateBgFillScheme()+\"\"};_xlsx._generateFillScheme=function(){return''};_xlsx._generateLineStyles=function(){return''};_xlsx._generateEffectScheme=function(){return''};_xlsx._generateBgFillScheme=function(){return''};_xlsx._generateCoreDoc=function(e){var t='';e.creator?t+=\"\"+e.creator+\"\":t+=\"\";e.lastModifiedBy?t+=\"\"+e.lastModifiedBy+\"\":t+=\"\";return t+=''+(e.created||new Date).toISOString()+''+(e.modified||new Date).toISOString()+\"\"};_xlsx._generateSheetGlobalSetting=function(e,t,o){var r=t.rows&&t.rows[0]&&t.rows[0].cells?t.rows[0].cells.length:0,l=' xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\" xmlns:mc=\"http://schemas.openxmlformats.org/markup-compatibility/2006\" mc:Ignorable=\"x14ac\" xmlns:x14ac=\"http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac\">';l+='';l+='0?\":\"+this._numAlpha(r-1)+t.rows.length:\"\")+'\"/>';l+='\";else{l+=\">\";l+='';l+=\"\"}l+=\"\";return l+=''};_xlsx._generateCell=function(e,t,o,r,l,s){var i='\"+Workbook._escapeXML(s)+\"\"}null!=l&&\"\"!==l&&(n+=\"\"+l+\"\");return i+(n?\">\"+n+\"\":\"/>\")};_xlsx._generateMergeSetting=function(e){for(var t='',o=0;o';return t+\"\"};_xlsx._generateStyleDoc=function(){var e='',t=\"\",o=\"\",r=[],l=0,s=0,i=\"\",n=\"\";n=this._generateFontStyle({},!0);var a=\"\",h=\"\";h+=this._generateFillStyle(\"none\",null);h+=this._generateFillStyle(\"gray125\",null);var f=\"\",c=\"\";c+=this._generateBorderStyle({});var u=\"\",d=\"\";d+=this._generateCellXfs(0,0,0,0,{});for(;l';s++}else m=164+g}var _=0;if(p.borders){var y=JSON.stringify(p.borders);if((_=this._borders.indexOf(y))<0){_=this._borders.push(y)-1;c+=this._generateBorderStyle(p.borders)}}var b=0;if(p.font){var k=JSON.stringify(p.font);if((b=this._fonts.indexOf(k))<0){b=this._fonts.push(k)-1;n+=this._generateFontStyle(p.font)}}var x=0;if(p.fill&&p.fill.color){var S=JSON.stringify(p.fill);if((x=this._fills.indexOf(S))<0){x=this._fills.push(S)-1;h+=this._generateFillStyle(\"solid\",p.fill.color)}}d+=this._generateCellXfs(m,_,b,x,p)}l++}r=null;if(s>0){t='';t+=o;t+=\"\"}else t='';e+=t;i='';i+=n;e+=i+=\"\";a='';a+=h;e+=a+=\"\";f='';f+=c;e+=f+=\"\";e+='';u='';u+=d;u+=\"\";var v=\"\",w=\"\";if(this._tableStyles.length>0){this._getDxfs();this._dxfs.length>0&&(v=this._generateDxfs());w=this._generateTableStyles()}return e+=u+''+(\"\"===v?'':v)+(\"\"===w?'':w)+''};_xlsx._generateBorderStyle=function(e,t){void 0===t&&(t=!1);var o,r,l=\"\";for(var s in{left:0,right:0,top:0,bottom:0,diagonal:0,vertical:0,horizontal:0})if(t||\"vertical\"!==s&&\"horizontal\"!==s){if(e[s]){o=\"<\"+s+' style=\"'+e[s].style+'\">';\"\";6===(r=(r=e[s].color)?\"#\"===r[0]?r.substring(1):r:\"\").length&&(r=\"FF\"+r);r||(r=\"FF000000\");o+='';o+=\"\"}else o=\"<\"+s+\"/>\";l+=o}return l+=\"\"};_xlsx._generateFontStyle=function(e,t){void 0===t&&(t=!1);var o=\"\";e.bold&&(o+=\"\");e.italic&&(o+=\"\");e.underline&&(o+=\"\");o+='';e.color?o+='':o+='';o+='';o+='';t&&(o+='');return o+=\"\"};_xlsx._generateFillStyle=function(e,t,o){void 0===o&&(o=!1);var r,l='';if(t){r=o?\"'}return l+=\"\"};_xlsx._generateCellXfs=function(e,t,o,r,l){var s='0&&(s+='applyNumberFormat=\"1\" ');s+='borderId=\"'+t.toString()+'\" ';t>0&&(s+='applyBorder=\"1\" ');s+='fontId=\"'+o.toString()+'\" ';o>0&&(s+='applyFont=\"1\" ');s+='fillId=\"'+r.toString()+'\" ';r>0&&(s+='applyFill=\"1\" ');l.quotePrefix&&(s+='quotePrefix=\"1\" ');if(l.hAlign||l.vAlign||l.indent||l.wordWrap){s+='applyAlignment=\"1\">';var i=\"\";s+=\"\"}else s+=\"/>\";return s};_xlsx._generateContentTypesDoc=function(){var e,t='';this._macroEnabled&&(t+='');t+='';for(e=0;e';for(e=0;e';return t+=\"\"};_xlsx._generateAppDoc=function(e){for(var t=''+(e.application||\"wijmo.xlsx\")+'0falseWorksheets'+this._props.length+'',o=0;o\"+this._props[o]+\"\";return t+=\"\"+(e.company||\"GrapeCity, Inc.\")+\"falsefalsefalse1.0\"};_xlsx._generateWorkbookRels=function(){for(var e='',t=0;t';this._macroEnabled&&(e+='');return e+=\"\"};_xlsx._generateWorkbook=function(e){for(var t='\",o=0;o\";if(e.definedNames&&e.definedNames.length>0){t+=\"\";for(o=0;o-1?'localSheetId=\"'+r+'\"':\"\")+\">\"+e.definedNames[o].value+\"\"}t+=\"\"}return t+=''};_xlsx._generateWorksheetRows=function(e,t,o,r,l,s,i,n,a,h){for(var f,c=this,_loop_2=function(d,p){if(i&&i.cancelled)return{value:void 0};if(n&&d-t>100&&Date.now()-e>100){setTimeout((function(){if(!i||!i.cancelled){a(Math.round((d+1)/o.length*100));c._generateWorksheetRows(Date.now(),d,o,r,l,s,i,n,a,h)}}),0);return{value:void 0}}var m=-1,g=o[d]&&o[d].cells?o[d].cells.length:0,_=null;s.sheetData+='\"},u=this,d=t,p=o.length;d\"};this._generateWorksheetRows(Date.now(),0,n.rows,c,f,d,r,l,s,(function(){var t=e+1,r=1;d.sheetData+=\"\";if(h&&h.length>0){u+=\"\";for(var l=0;l-1?i._parseCharCountToCharWidth(g.substring(0,g.indexOf(\"ch\"))):i._parsePixelToCharWidth(g):8.43;var _=(l+1).toString();u+='=0&&(u+=' style=\"'+c.toString()+'\"');g&&(u+=' width=\"'+g+'\" customWidth=\"1\"');!1!==h[l].autoWidth&&(u+=' bestFit=\"1\"');!1===h[l].visible&&(u+=' hidden=\"1\"');u+=\"/>\"}}u+=\"\"}d.sheetData=u+d.sheetData;u=d.sheetData;d.sheetData=null;d.merges.length>0&&(u+=i._generateMergeSetting(d.merges));var y=d.hyperlinks;if(y&&y.length>0){u+=\"\";for(l=0;l';else{null==n.externalLinks&&(n.externalLinks=[]);n.externalLinks.push(y[l].href);u+='';r++}u+=\"\"}u+='';if(n.tables&&n.tables.length>0){u+='';for(l=0;l';r++}u+=\"\"}u+=\"\";o.file(\"sheet\"+t+\".xml\",i._xmlDescription+u);u=null;var b='';i._contentTypes.unshift(b);i._props.unshift(Workbook._escapeXML(n.name)||\"Sheet\"+t);var k='';i._xlRels.unshift(k);var x='\";i._worksheets.unshift(x);s(100);a.resolve()}));return a};_xlsx._generateSharedStringsDoc=function(){var e,t='';for(e=0;e\";var o=this._sharedStrings[0][e];if(o&&0===o.indexOf(\"{RichTextMark}\"))try{var r=JSON.parse(o.substring(14));if(r&&r.length>0){for(var l=0;l\";var s=r[l];s.font&&(t+=this._generateFontStyle(s.font,!0).replace(/font/g,\"rPr\"));t+=this._generatePlainText(s.text);t+=\"\"}t+=\"\"}}catch(e){t+=this._generatePlainText(o)+\"\"}else t+=this._generatePlainText(o)+\"\"}return t+\"\"};_xlsx._generatePlainText=function(e){if(\"\"===e)return\"\";var t=\"\"+Workbook._escapeXML(e)+\"\"};_xlsx._generateTable=function(e,t){var o=this._tables.length+1,r=\"table\"+o+\".xml\";e.fileName=r;this._tables.push(r);var l='';!1!==e.showHeaderRow&&(l+=this._generateTableFilterSetting(e.range,e.showTotalRow,e.columns));l+='';for(var s=\"\",i=0;i-1?s+='totalsRowFunction=\"'+n.totalRowFunction+'\"/>':s+='totalsRowFunction=\"custom\">'+n.totalRowFunction+\"\":s+=(n.totalRowLabel?'totalsRowLabel=\"'+n.totalRowLabel+'\"':\"\")+\"/>\"}l+=s+\"\";l+='
';if(!this._isBuiltInStyleName(e.style.name)){var a=JSON.stringify(e.style);-1===this._tableStyles.indexOf(a)&&this._tableStyles.push(a)}t.file(r,this._xmlDescription+l);l=null};_xlsx._generateTableFilterSetting=function(e,t,o){var r=e;if(t){var l=r.indexOf(\":\")+1,s=Workbook.tableAddress(r.substring(r.indexOf(\":\")+1));s.row-=1;r=r.substring(0,l)+Workbook.xlsxAddress(s.row,s.col)}for(var i='');return i+=\"\"===n?\"/>\":\">\"+n+\"\"};_xlsx._generateHyperlinkRel=function(e){for(var t=\"\",o=0;o';return t};_xlsx._getDxfs=function(){for(var e,t=this,o=0;o',o=0;o\";(e=JSON.parse(this._dxfs[o])).font&&(t+=this._generateFontStyle(e.font));e.fill&&e.fill.color&&(t+=this._generateFillStyle(\"solid\",e.fill.color,!0));if(e.borders&&!this._isEmpty(e.borders)){e.borders=this._extend({},e.borders);this._parseBorder(e.borders,!1);t+=this._generateBorderStyle(e.borders,!0)}t+=\"\"}return t+=\"\"};_xlsx._generateTableStyles=function(){for(var e,t,o,r,l,s,i='',n=0;n\"}}if(s>0){i+='';i+=l+\"\"}}return i+=\"\"};_xlsx._isEmptyStyleEle=function(e){return this._isEmpty(e.borders)&&(this._isEmpty(e.fill)||isNullOrWhiteSpace(e.fill.color))&&(this._isEmpty(e.font)||!0!==e.font.bold&&isNullOrWhiteSpace(e.font.color)&&isNullOrWhiteSpace(e.font.family)&&!0!==e.font.italic&&null==e.font.size&&!0!==e.font.underline)};_xlsx._getTableFileName=function(e,t){for(var o=\"\",r=0;r\")):e.substring(e.indexOf(\"[^<]+(?=\\<\\/f>)/g);this._sharedFormulas=[];if(l&&l.length>0)for(var s=0;s)(.+)/,\"$2\");this._sharedFormulas[+o]=this._parseSharedFormulaInfo(r,t)}};_xlsx._parseSharedFormulaInfo=function(e,t){var o,r,l,s,i,n=t.match(/(\\'?\\w+\\'?\\!)?(\\$?[A-Za-z]+)(\\$?\\d+)/g);s=Workbook.tableAddress(e);if(n&&n.length>0){i=[];for(var a=0;a0){l=o.substring(0,r);o=o.substring(r+1)}i[a]={cellAddress:Workbook.tableAddress(o),sheetRef:l}}}return{cellRef:s,formula:t,formulaRefs:i}};_xlsx._getSharedFormula=function(e,t){var o,r,l,s,i,n,a,h,f,c,u,d;if(this._sharedFormulas&&this._sharedFormulas.length>0&&(o=this._sharedFormulas[+e])){f=o.formula;if((c=o.formulaRefs)&&c.length>0){r=Workbook.tableAddress(t);a=o.cellRef?o.cellRef.row:0;h=o.cellRef?o.cellRef.col:0;l=r.row-a;s=r.col-h;for(var p=0;p59?1:0;return 0!==(i=6e4*((o=new Date(1e3*Math.round((+r+864e5*(e-t))/1e3))).getTimezoneOffset()-r.getTimezoneOffset()))?new Date(1e3*Math.round((+r+i-n+864e5*(e-t))/1e3)):o}return null};_xlsx._parseBorder=function(e,t){for(var o in{left:0,right:0,top:0,bottom:0,diagonal:0}){var r=e[o];if(r){isString(r.color)&&(r.color=this._parseColor(r.color));null==r.style||isString(r.style)||(r.style=Workbook._parseBorderTypeToString(asEnum(r.style,BorderStyle,!1)));!t&&r.color&&\"#c6c6c6\"===r.color.toLowerCase()&&\"thin\"===r.style&&(e[o]=null)}}};_xlsx._applyDefaultBorder=function(e){if(e.fill&&e.fill.color){null==e.borders&&(e.borders={});for(var t in{left:0,right:0,top:0,bottom:0})null==e.borders[t]&&(e.borders[t]={style:BorderStyle.Thin,color:\"#C6C6C6\"})}};_xlsx._resolveStyleInheritance=function(e){var t;if(!e.basedOn)return e;for(var o in e.basedOn)if(\"basedOn\"===o){t=this._resolveStyleInheritance(e.basedOn);for(o in t){var r=t[o];e[o]=null==e[o]?r:this._extend(e[o],r)}}else{r=e.basedOn[o];e[o]=null==e[o]?r:this._extend(e[o],r)}delete e.basedOn;return e};_xlsx._parsePixelToCharWidth=function(e){return null==e||isNaN(+e)?null:((+e-5)/7*100+.5)/100};_xlsx._parseCharWidthToPixel=function(e){return null==e||isNaN(+e)?null:Math.floor((256*+e+128/7)/256*7)+5};_xlsx._parseCharCountToCharWidth=function(e){return null==e||isNaN(+e)?null:(7*+e+5)/7*256/256};_xlsx._numAlpha=function(e){var t=Math.floor(e/26)-1;return(t>-1?this._numAlpha(t):\"\")+this._alphabet.charAt(e%26)};_xlsx._alphaNum=function(e){return e.length>1?(this._alphabet.indexOf(e[0])+1)*Math.pow(26,e.length-1)+this._alphaNum(e.substring(1)):this._alphabet.indexOf(e)};_xlsx._typeOf=function(e){return{}.toString.call(e).match(/\\s([a-zA-Z]+)/)[1].toLowerCase()};_xlsx._extend=function(e,t){if(isObject(e)&&isObject(t)){for(var o in t){var r=t[o];isObject(r)&&null!=e[o]?this._extend(e[o],r):null!=r&&null==e[o]&&(e[o]=r)}return e}return t};_xlsx._isEmpty=function(e){var t=Object.prototype.hasOwnProperty;if(null==e)return!0;if(e.length>0)return!1;if(0===e.length)return!0;for(var o in e)if(t.call(e,o))return!1;return!0};_xlsx._cloneStyle=function(e){var t;if(null==e||\"object\"!=typeof e)return e;t={};for(var o in e)e.hasOwnProperty(o)&&(t[o]=this._cloneStyle(e[o]));return t};_xlsx._cloneColumnsStyle=function(e){for(var t,o=[],r=0;rh||t+o-1f||r+l-1=0?(e=e.substr(o+t.length+2)).substring(0,e.indexOf('\"')):\"\"};_xlsx._getChildNodeValue=function(e,t){var o=e.indexOf(t+' val=\"');return o>=0?(e=e.substr(o+t.length+6)).substring(0,e.indexOf('\"')):\"\"};_xlsx._getSheetIndexBySheetName=function(e,t){for(var o=0;o0&&\"uint8array\"===t[0].toLowerCase()?this._obj.asUint8Array():this._obj.asText();return new _JSZipSyncPromise(e)};_JsZipWrapper.prototype.folder=function(e){var t=this._obj.folder(e);return this._wrapOrNull(t)};_JsZipWrapper.prototype.forEach=function(e){var t=this._obj.root,o=t.length,r=this._obj.files;for(var l in r)l.length>o&&l.substr(0,o).toLowerCase()===t&&e(l.substr(o),new _JsZipWrapper(r[l]))};_JsZipWrapper.prototype._wrapOrNull=function(e){return null!=e?new _JsZipWrapper(e):null};return _JsZipWrapper}(),_SyncPromise=function(){function _SyncPromise(e,t){this._callbacks=[];this._cs=e;this._onCancel=t}_SyncPromise.serial=function(e,t){t=t.slice();var o=new _SyncPromise(e),r=[],drain=function(){o.cancelled?t=[]:t.length?t.shift()().then((function(e){r.push(e);drain()}),(function(e){t=[];o.reject(e)})):o.resolve(r)};drain();return o};_SyncPromise.prototype.cancel=function(){this._cancelled=!0;this._onCancel&&this._onCancel()};Object.defineProperty(_SyncPromise.prototype,\"cancelled\",{get:function(){return this._cancelled||this._cs&&this._cs.cancelled},enumerable:!0,configurable:!0});_SyncPromise.prototype.then=function(e,t){this._callbacks.push({onFulfilled:e,onRejected:t});this._resolved&&this.resolve(this._resolved.value);return this};_SyncPromise.prototype.catch=function(e){return this.then(null,e)};_SyncPromise.prototype.resolve=function(e){if(this.cancelled)return this;this._resolved={value:e};try{this.onFulfilled(e)}catch(e){this.onRejected(e)}return this};_SyncPromise.prototype.reject=function(e){if(this.cancelled)return this;this.onRejected(e);return this};_SyncPromise.prototype.onFulfilled=function(e){for(;this._callbacks.length;){var t=this._callbacks[0];t.onFulfilled&&t.onFulfilled(e);this._callbacks.shift()}};_SyncPromise.prototype.onRejected=function(e){for(var t;t=this._callbacks.shift();)t.onRejected&&t.onRejected(e)};return _SyncPromise}();export{_SyncPromise};export function _map(e,t,o,r,l){var s=o-t;0==s&&(s=1);return(e-t)*((l-r)/s)+r}_registerModule(\"wijmo.xlsx\",selfModule);","/*!\n *\n * Wijmo Library 5.20201.680\n * http://wijmo.com/\n *\n * Copyright(c) GrapeCity, Inc. All rights reserved.\n *\n * Licensed under the GrapeCity Commercial License.\n * sales@wijmo.com\n * wijmo.com/products/wijmo-5/license/\n *\n */\n\nvar __extends=this&&this.__extends||function(){var extendStatics=function(e,l){return(extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,l){e.__proto__=l}||function(e,l){for(var t in l)l.hasOwnProperty(t)&&(e[t]=l[t])})(e,l)};return function(e,l){extendStatics(e,l);function __(){this.constructor=e}e.prototype=null===l?Object.create(l):(__.prototype=l.prototype,new __)}}();import{_getModule,Globalize,DataType,asBoolean,isString,isNumber,isInt,isDate,isFunction,isNullOrWhiteSpace,isObject,asEnum,getType,copy,_registerModule}from\"@grapecity/wijmo\";import{FlexGrid,Row,GroupRow,Column,CellRange,CellRangeEventArgs,RowColFlags,CellType,_NewRowTemplate}from\"@grapecity/wijmo.grid\";import*as mXlsx from\"@grapecity/wijmo.xlsx\";import*as selfModule from\"@grapecity/wijmo.grid.xlsx\";export function softDetail(){return _getModule(\"wijmo.grid.detail\")}export function softMultiRow(){return _getModule(\"wijmo.grid.multirow\")}export function softTransGrid(){return _getModule(\"wijmo.grid.transposed\")}var FlexGridXlsxConverter=function(){function FlexGridXlsxConverter(){}FlexGridXlsxConverter.save=function(e,l,t){var r=new mXlsx.Workbook;this._saveFlexGridToWorkbook(r,e,l,!1,null);t&&r.save(t);return r};FlexGridXlsxConverter.saveAsync=function(e,l,t,r,o,n){var s=this,i=null!=t,a=new mXlsx.Workbook;this.cancelAsync((function(){var u,d=[e.collectionView&&e.collectionView.collectionChanged,e.columns&&e.columns.collectionChanged,e.rows&&e.rows.collectionChanged,e.resizedColumn,e.resizedRow],removeHandlers=function(){return d.forEach((function(e){e&&e.removeHandler(restart)}))},restart=function(){clearTimeout(u);u=setTimeout((function(){removeHandlers();a=null;s.saveAsync(e,l,t,r,o,n)}),100)},finish=function(){clearTimeout(u);s._cs=null;removeHandlers()};s._cs=new mXlsx._SyncPromise(null,finish);d.forEach((function(e){e&&e.addHandler(restart)}));s._saveFlexGridToWorkbook(a,e,l,!0,s._cs,(function(e){isFunction(n)&&n(i?Math.round(mXlsx._map(e,0,100,0,50)):e)})).then((function(){if(t){a._externalCancellation=function(){return s._cs};a.saveAsync(t,(function(e){finish();isFunction(r)&&r(e,a)}),(function(e){finish();isFunction(o)&&o(e)}),(function(e){isFunction(n)&&n(Math.round(mXlsx._map(e,0,100,51,100)))}))}else{finish();isFunction(n)&&n(100);isFunction(r)&&r(null,a)}}),(function(e){finish();throw e}))}));return a};FlexGridXlsxConverter.cancelAsync=function(e){var l=this;if(this._cs){this._cs.cancel();setTimeout((function(){l._cs=null;isFunction(e)&&e()}),100)}else isFunction(e)&&e()};FlexGridXlsxConverter.load=function(e,l,t){var r=this;if(l instanceof Blob){var o=new FileReader;o.onload=function(){var l=mXlsx.Workbook._base64EncArr(new Uint8Array(o.result)),n=new mXlsx.Workbook;n.load(l);l=null;e.deferUpdate((function(){r._loadToFlexGrid(e,n,t);n=null}))};o.readAsArrayBuffer(l)}else if(l instanceof mXlsx.Workbook)e.deferUpdate((function(){r._loadToFlexGrid(e,l,t);l=null}));else{if(l instanceof ArrayBuffer)l=mXlsx.Workbook._base64EncArr(new Uint8Array(l));else if(!isString(l))throw\"Invalid workbook.\";var n=new mXlsx.Workbook;n.load(l);l=null;e.deferUpdate((function(){r._loadToFlexGrid(e,n,t);n=null}))}};FlexGridXlsxConverter.loadAsync=function(e,l,t,r,o){var n=this;if(l instanceof Blob){var s=new FileReader;s.onload=function(){var l=mXlsx.Workbook._base64EncArr(new Uint8Array(s.result)),i=new mXlsx.Workbook;i.loadAsync(l,(function(o){l=null;i=null;e.deferUpdate((function(){n._loadToFlexGrid(e,o,t);r&&r(o);o=null}))}),o)};s.readAsArrayBuffer(l)}else if(l instanceof mXlsx.Workbook)e.deferUpdate((function(){n._loadToFlexGrid(e,l,t);r&&r(l);l=null}));else{if(l instanceof ArrayBuffer)l=mXlsx.Workbook._base64EncArr(new Uint8Array(l));else if(!isString(l))throw\"Invalid workbook.\";(new mXlsx.Workbook).loadAsync(l,(function(o){l=null;e.deferUpdate((function(){n._loadToFlexGrid(e,o,t);r&&r(o);o=null}))}),o)}};FlexGridXlsxConverter._saveFlexGridToWorkbook=function(e,l,t,r,o,n){var s,i=this,a=new mXlsx._SyncPromise(o),u=new mXlsx.WorkSheet,d=!t||null==t.includeColumnHeaders||t.includeColumnHeaders,c=!(!t||null==t.includeRowHeaders)&&t.includeRowHeaders,f=_IncludeCellStyles.Cache,h=t?t.includeColumns:null,m=t?t.formatItem:null,p=0,x=c?l.rowHeaders.columns.length:0,g=[];t&&(f=!1===asBoolean(t.includeCellStyles,!0)?_IncludeCellStyles.None:!1===asBoolean(t.quickCellStyles,!0)?_IncludeCellStyles.Regular:_IncludeCellStyles.Cache);var y=f===_IncludeCellStyles.Cache?new _StyleCache(500):null;null==this.hasCssText&&(this.hasCssText=\"cssText\"in document.body.style);var w,_=l.wj_sheetInfo;u.name=t?t.sheetName:\"\";u.visible=!t||!1!==t.sheetVisible;if(_&&_.tables&&_.tables.length>0)for(var C=0;C<_.tables.length;C++)u.tables.push(_.tables[C]);s=[];if(!_&&(f!==_IncludeCellStyles.None||m)){(w=document.createElement(\"div\")).style.visibility=\"hidden\";w.setAttribute(FlexGrid._WJS_MEASURE,\"true\");l.hostElement.appendChild(w)}(c?[l.rowHeaders,l.columnHeaders]:[l.columnHeaders]).forEach((function(e){for(var t=e.rows,r=e.columns,o=0,n=e.cellType===CellType.ColumnHeader?x:0,a=0;ay&&Date.now()-t>100){setTimeout((function(){if(!e||!e.cancelled){p(_);g._saveContentToWorksheet(e,l,Date.now(),_,o,n,s,i,a,u,d,c,f,h,m,p,x)}}),0);return{value:void 0}}if(_-o.rowsOffset>=o.panels[o.panelIdx][1].rows.length){o.rowsOffset+=o.panels[o.panelIdx][1].rows.length;o.panelIdx++}var C=o.panels[o.panelIdx],v=C[0],b=C[1],S=_-o.rowsOffset,X=b.rows[S];if(b.cellType!==CellType.Cell&&X.renderSize<=0||X instanceof _NewRowTemplate)return\"continue\";var k=0,F={},T=new mXlsx.WorkbookRow,R=X instanceof GroupRow,G=0;b.cellType===CellType.Cell&&(R?G=X.level:n.rows.maxGroupLevel>-1&&(G=n.rows.maxGroupLevel+1));i&&(k=w._parseFlexGridRowToSheetRow(v,F,S,0,a,u,d,c,f,R,G,h,m));w._parseFlexGridRowToSheetRow(b,F,S,k,a,u,d,c,f,R,G,h,m);if(F.cells.length>0){T._deserialize(F);s._addWorkbookRow(T,o.globRowIdx)}o.globRowIdx++},w=this,_=r;_=l.sheets.length)throw\"The sheet index option is out of the sheet range of current workbook.\";if(null!=t.sheetName)for(var d=0;d0,g=x?this._getColumnHeadersHeight(r):0,y=!1,w=[],_=r.frozenPane&&r.frozenPane.rows,C=r.frozenPane&&r.frozenPane.columns;_=isNumber(_)&&!isNaN(_)?_:null;C=isNumber(C)&&!isNaN(C)?C:null;for(var v=g;v0){e.rows[v-g].isContentHtml=!0;e.setCellData(v-g,m,this._parseTextRunsToHTML(R.textRuns))}else e.setCellData(v-g,m,G&&o?G:this._getItemValue(R));b||this._setColumn(w,m,R);var A=v*c+m,W=R?R.style:null,I=mXlsx.Workbook._parseExcelFormat(R),E=void 0;if(W){S=null==S?!!W.wordWrap:S&&!!W.wordWrap;if(W.hAlign)E=mXlsx.Workbook._parseHAlignToString(asEnum(W.hAlign,mXlsx.HAlign));else switch(this._getItemType(R)){case DataType.Number:E=\"right\";break;case DataType.Boolean:E=\"center\";break;default:E=I&&0===I.search(/[n,c,p]/i)?\"right\":\"left\"}n[A]={fontWeight:W.font&&W.font.bold?\"bold\":\"none\",fontStyle:W.font&&W.font.italic?\"italic\":\"none\",textDecoration:W.font&&W.font.underline?\"underline\":\"none\",textAlign:E,fontFamily:W.font&&W.font.family?W.font.family:\"\",fontSize:W.font&&W.font.size?W.font.size+\"px\":\"\",color:W.font&&W.font.color?W.font.color:\"\",backgroundColor:W.fill&&W.fill.color?W.fill.color:\"\",whiteSpace:W.wordWrap?\"pre-wrap\":\"normal\",format:I};if(W.borders){if(W.borders.left){this._parseBorderStyle(W.borders.left.style,\"Left\",n[A]);n[A].borderLeftColor=W.borders.left.color}if(W.borders.right){this._parseBorderStyle(W.borders.right.style,\"Right\",n[A]);n[A].borderRightColor=W.borders.right.color}if(W.borders.top){this._parseBorderStyle(W.borders.top.style,\"Top\",n[A]);n[A].borderTopColor=W.borders.top.color}if(W.borders.bottom){this._parseBorderStyle(W.borders.bottom.style,\"Bottom\",n[A]);n[A].borderBottomColor=W.borders.bottom.color}}if(W.fill&&W.fill.color){var N=n[A],D=W.borders,B=W.fill.color;if(D){D.left&&D.left.color||(N.borderLeftColor=B);D.right&&D.right.color||m===C-1||(N.borderRightColor=B);D.top&&D.top.color||(N.borderTopColor=B);D.bottom&&D.bottom.color||v===_-1||(N.borderBottomColor=B)}else{N.borderLeftColor=B;m!==C-1&&(N.borderRightColor=B);N.borderTopColor=B;v!==_-1&&(N.borderBottomColor=B)}}W.font&&-1===i.indexOf(W.font.family)&&i.push(W.font.family)}R&&isNumber(R.rowSpan)&&R.rowSpan>0&&isNumber(R.colSpan)&&R.colSpan>0&&(R.rowSpan>1||R.colSpan>1)&&s.push(new CellRange(v,m,v+R.rowSpan-1,m+R.colSpan-1))}if(X){this._checkParentCollapsed(a,X.groupLevel)||X.visible||null==X.visible||(e.rows[v-g].visible=X.visible);e.rows[v-g].wordWrap=!!X.style&&!!X.style.wordWrap||!!S}}p&&(p.isCollapsed=y);null!=C&&(e.frozenColumns=C);null!=_&&(e.frozenRows=x&&_>0?_-1:_);for(m=0;m1&&\"=\"===e[0]&&\"=\"===e[1])?\"'\"+e:e};FlexGridXlsxConverter._parseFlexGridRowToSheetRow=function(e,l,t,r,o,n,s,i,a,u,d,c,f){var h,m,p,x,g,y,w,_,C,v,b,S,X,k,F,T,R,G,A,W,I,E,N,D,B,H,M,z,O,j,L=!1,P=!1;(A=(h=e.grid).wj_sheetInfo)&&(W=A.evaluateFormula);if(null==(m=e.rows[t]).recordIndex){D=0;e.cellType===CellType.ColumnHeader&&e.rows.length>1&&(D=t===o.length?t-1:t)}else D=m.recordIndex;l.cells||(l.cells=[]);l.visible=m.isVisible;l.height=m.renderHeight||e.rows.defaultSize;l.groupLevel=d;u&&(l.collapsed=m.isCollapsed);m.wordWrap&&(l.style={wordWrap:m.wordWrap});(m.constructor===Row||m.constructor===_NewRowTemplate||softTransGrid()&&h instanceof softTransGrid().TransposedGrid&&m instanceof Row||softDetail()&&m.constructor===softDetail().DetailRow||softMultiRow()&&m.constructor===softMultiRow()._MultiRow)&&(L=!0);softDetail()&&m.constructor===softDetail().DetailRow&&(P=!0);for(x=0;x-1){y=\"m/d/yyyy h:mm\";I=!0}else if(S.indexOf(\"today()\")>-1||S.indexOf(\"date(\")>-1){y=\"m/d/yyyy\";I=!0}else if(S.indexOf(\"time(\")>-1){y=\"h:mm AM/PM\";I=!0}}else y=\"General\"}else{w=N?h.columnHeaders.getCellData(0,x,!0):null;y=\"General\"}if(isString(w)&&-1!==w.indexOf(\"/g,\"\").replace(/'/g,\"'\"));if(null==v&&!F)continue;!(I=isDate(v))&&g&&\"d\"===g.toLowerCase()&&isInt(v)&&(y=\"0\");v=isString(v)?mXlsx.Workbook._unescapeXML(v):v;x===h.columns.firstVisibleIndex&&h.treeIndent&&(O=d);B={value:v,isDate:I,formula:b?this._parseToExcelFormula(w,I):null,colSpan:G,rowSpan:R,style:this._extend(M,{format:y,font:{bold:!0},hAlign:mXlsx.HAlign.Left,indent:O}),textRuns:_}}else{w=isString(w)?mXlsx.Workbook._unescapeXML(w):w;C=isString(C)?mXlsx.Workbook._unescapeXML(C):C;!I&&g&&\"d\"===g.toLowerCase()&&isInt(C)&&(y=\"0\");z=M&&M.hAlign?M.hAlign:p&&p.style&&null!=p.style.hAlign?asEnum(p.style.hAlign,mXlsx.HAlign,!0):isDate(C)?mXlsx.HAlign.Left:mXlsx.HAlign.General;x!==h.columns.firstVisibleIndex||!h.treeIndent||z!==mXlsx.HAlign.Left&&z!==mXlsx.HAlign.General||(O=d);B={value:b?X:\"General\"!==y||\"\"===w&&null==C?this._escapePlainText(C):this._escapePlainText(w),isDate:I,formula:b?this._parseToExcelFormula(w,I):null,colSpan:x1?e===h.cells||!1===h.centerHeadersVertically?mXlsx.VAlign.Top:mXlsx.VAlign.Center:null,indent:O}),textRuns:_};P&&(j=e.getCellElement(t,x))&&j.appendChild(m.detail)}f&&f(new XlsxFormatItemEventArgs(e,new CellRange(t,x),H,s,i,a,B));l.cells.push(B)}}return r+x};FlexGridXlsxConverter._parseCellStyle=function(e,l){void 0===l&&(l=!1);if(null==e)return null;var t=e.fontSize;t=t?+t.substring(0,t.indexOf(\"px\")):null;isNaN(t)&&(t=null);var r=e.fontWeight;r=\"bold\"===r||+r>=700;var o=\"italic\"===e.fontStyle,n=e.textDecorationStyle;null==n&&(n=e.textDecoration);n=\"underline\"===n;var s=e.whiteSpace;s=!!s&&s.indexOf(\"pre\")>-1;return{font:{bold:r,italic:o,underline:n,family:this._parseToExcelFontFamily(e.fontFamily),size:t,color:e.color},fill:{color:e.backgroundColor},borders:this._parseBorder(e,l),hAlign:mXlsx.Workbook._parseStringToHAlign(e.textAlign),wordWrap:s}};FlexGridXlsxConverter._parseBorder=function(e,l){var t={};t.left=this._parseEgdeBorder(e,\"Left\");t.right=this._parseEgdeBorder(e,\"Right\");t.top=this._parseEgdeBorder(e,\"Top\");t.bottom=this._parseEgdeBorder(e,\"Bottom\");if(l){t.vertical=this._parseEgdeBorder(e,\"Vertical\");t.horizontal=this._parseEgdeBorder(e,\"Horizontal\")}return t};FlexGridXlsxConverter._parseEgdeBorder=function(e,l){var t,r=e[\"border\"+l+\"Style\"],o=e[\"border\"+l+\"Width\"];o&&o.length>2&&(o=+o.substring(0,o.length-2));if(r&&\"none\"!==r&&\"hidden\"!==r){t={};switch(r=r.toLowerCase()){case\"dotted\":t.style=o>1?mXlsx.BorderStyle.MediumDashDotted:mXlsx.BorderStyle.Dotted;break;case\"dashed\":t.style=o>1?mXlsx.BorderStyle.MediumDashed:mXlsx.BorderStyle.Dashed;break;case\"double\":t.style=mXlsx.BorderStyle.Double;break;default:t.style=o>2?mXlsx.BorderStyle.Thick:o>1?mXlsx.BorderStyle.Medium:mXlsx.BorderStyle.Thin}t.color=e[\"border\"+l+\"Color\"]}return t};FlexGridXlsxConverter._parseBorderStyle=function(e,l,t){var r=\"border\"+l+\"Style\",o=\"border\"+l+\"Width\";switch(e){case mXlsx.BorderStyle.Dotted:case mXlsx.BorderStyle.Hair:t[r]=\"dotted\";t[o]=\"1px\";break;case mXlsx.BorderStyle.Dashed:case mXlsx.BorderStyle.ThinDashDotDotted:case mXlsx.BorderStyle.ThinDashDotted:t[r]=\"dashed\";t[o]=\"1px\";break;case mXlsx.BorderStyle.MediumDashed:case mXlsx.BorderStyle.MediumDashDotDotted:case mXlsx.BorderStyle.MediumDashDotted:case mXlsx.BorderStyle.SlantedMediumDashDotted:t[r]=\"dashed\";t[o]=\"2px\";break;case mXlsx.BorderStyle.Double:t[r]=\"double\";t[o]=\"3px\";break;case mXlsx.BorderStyle.Medium:t[r]=\"solid\";t[o]=\"2px\";break;case mXlsx.BorderStyle.Thick:t[r]=\"solid\";t[o]=\"3px\";break;default:t[r]=\"solid\";t[o]=\"1px\"}};FlexGridXlsxConverter._parseToExcelFontFamily=function(e){var l;e&&(l=e.split(\",\"))&&l.length>0&&(e=l[0].replace(/\\\"|\\'/g,\"\"));return e};FlexGridXlsxConverter._parseToExcelFormula=function(e,l){var t,r,o,n,s,i,a,u=/\\\"?\\w+\\\"?\\s*\\,\\s*\\\"(\\w+)\\\"/i;if(t=e.match(/(floor|ceiling)\\([+-]?\\d+\\.?\\d*\\)/gi))for(s=0;s\")?{text:t.substring(t.indexOf(\">\")+1,t.indexOf(\"\")),font:this._parseToTextRunFont(t.substring(t.indexOf('style=\"')+7,t.indexOf(';\"')))}:{text:t};n.push(r)}return n};FlexGridXlsxConverter._parseToTextRunFont=function(e){var l,t,r,o,n,s,i,a,u,d=e.split(\";\");if(d.length>0){for(l=0;l=700;break;case\"font-style\":o=\"italic\"===t[1];break;case\"text-decoration-style\":case\"text-decoration\":n=\"underline\"===t[1];break;case\"font-family\":i=this._parseToExcelFontFamily(t[1]);break;case\"color\":a=t[1]}}u={bold:r,italic:o,underline:n,family:i,size:s,color:a}}return u};FlexGridXlsxConverter._getMeasureCell=function(e,l,t,r){var o=r[e.cellType],n=o&&o[l],s=null==n;if(n){if(this.hasCssText){n.style;n.style.cssText=\"\";n.style.visibility=\"hidden\"}}else{o||(r[e.cellType]=o=[]);o[l]=n=t.cloneNode()}!s&&n.parentElement||(e.hostElement.children.length>0?e.hostElement.children[0].appendChild(n):e.hostElement.appendChild(n));return n};FlexGridXlsxConverter._getColumnSetting=function(e,l,t){var r=e;null!=e.colspan&&(r=this._getRenderColumn(l,t));return r?{autoWidth:!0,width:r.renderWidth||t.defaultSize,visible:r.visible,style:{format:r.format?mXlsx.Workbook._parseCellFormat(r.format,r.dataType===DataType.Date):\"\",hAlign:mXlsx.Workbook._parseStringToHAlign(this._toExcelHAlign(r.getAlignment())),wordWrap:r.wordWrap}}:null};FlexGridXlsxConverter._toExcelHAlign=function(e){return(e=e?e.trim().toLowerCase():e)?e.indexOf(\"center\")>-1?\"center\":e.indexOf(\"right\")>-1||e.indexOf(\"end\")>-1?\"right\":e.indexOf(\"justify\")>-1?\"justify\":\"left\":e};FlexGridXlsxConverter._getColumnCount=function(e){for(var l,t=0,r=0,o=0;o0){r=l.length;isInt(l[r-1].colSpan)&&l[r-1].colSpan>1&&(r=r+l[r-1].colSpan-1);r>t&&(t=r)}return t};FlexGridXlsxConverter._getRowCount=function(e,l){for(var t,r,o=e.length,n=o-1,s=0;s=0;n--)if((r=((t=e[n])&&t.cells?t.cells:[])[s])&&(null!=r.value&&\"\"!==r.value||isInt(r.rowSpan)&&r.rowSpan>1)){isInt(r.rowSpan)&&r.rowSpan>1&&n+r.rowSpan>o&&(o=n+r.rowSpan);break e}return o};FlexGridXlsxConverter._numAlpha=function(e){var l=Math.floor(e/26)-1;return(l>-1?this._numAlpha(l):\"\")+String.fromCharCode(65+e%26)};FlexGridXlsxConverter._getItemType=function(e){return null==e||null==e.value||isNaN(e.value)?null:getType(e.value)};FlexGridXlsxConverter._setColumn=function(e,l,t){var r,o,n,s=e[l];if(s){r=this._getItemType(t);s.dataType!==r&&s.dataType===DataType.Boolean&&r!==DataType.Boolean&&(s.dataType=r);!t||null==t.value||isString(t.value)&&isNullOrWhiteSpace(t.value)||(o=mXlsx.Workbook._parseExcelFormat(t))&&s.format!==o&&\"General\"!==o&&(s.format=o);if(t&&t.style){t.style.hAlign&&(n=mXlsx.Workbook._parseHAlignToString(asEnum(t.style.hAlign,mXlsx.HAlign)));null==s.wordWrap?s.wordWrap=!!t.style.wordWrap:s.wordWrap=s.wordWrap&&!!t.style.wordWrap}n||r!==DataType.Number||(n=\"right\");s.hAlign=n}else e[l]={dataType:this._getItemType(t),format:mXlsx.Workbook._parseExcelFormat(t),hAlign:\"\",wordWrap:null}};FlexGridXlsxConverter._getItemValue=function(e){if(null==e||null==e.value)return null;var l=e.value;isString(l)&&\"'\"===l[0]&&(l=l.substr(1));return isNumber(l)&&isNaN(l)?\"\":l instanceof Date&&isNaN(l.getTime())?\"\":l};FlexGridXlsxConverter._getCellStyle=function(e,l,t,r,o){var n;try{e.grid.cellFactory.updateCell(e,t,r,l,null,!o&&void 0);l.className=l.className.replace(\"wj-state-selected\",\"\");l.className=l.className.replace(\"wj-state-multi-selected\",\"\")}catch(e){return null}if(o){var s,i=e.hostElement,a=l;s=a.style.cssText.split(/;\\s+/).filter((function(e){var l=e.substring(0,e.indexOf(\":\"));return/^(color|background|border|font|text|whitespace)/i.test(l)})).join(\";\");do{s=a.className+s}while(a!==i&&(a=a.parentElement));if(!(n=o.getValue(s))){n=window.getComputedStyle(l);o.add(s,n)}}else n=window.getComputedStyle(l);return n};FlexGridXlsxConverter._parseTextRunsToHTML=function(e){var l,t,r,o;r=\"\";for(o=0;o'+l.text+\"\":l.text;return r};FlexGridXlsxConverter._extend=function(e,l){for(var t in l){var r=l[t];isObject(r)&&e[t]?copy(e[t],r):e[t]=r}return e};FlexGridXlsxConverter._checkParentCollapsed=function(e,l){var t=!1;Object.keys(e).forEach((function(r){!0===e[r]&&!1===t&&!isNaN(l)&&+r=l.length?null:l[e]};FlexGridXlsxConverter._getMergedRange=function(e,l,t){var r,o;for(r=0;r=(o=t[r]).topRow&&e<=o.bottomRow&&l>=o.leftCol&&l<=o.rightCol)return o;return null};FlexGridXlsxConverter._isFormula=function(e){return e&&\"string\"==typeof e&&e.length>1&&\"=\"===e[0]&&\"=\"!==e[1]};return FlexGridXlsxConverter}();export{FlexGridXlsxConverter};var _IncludeCellStyles,XlsxFormatItemEventArgs=function(e){__extends(XlsxFormatItemEventArgs,e);function XlsxFormatItemEventArgs(l,t,r,o,n,s,i){var a=e.call(this,l,t)||this;a._cell=r;a._patternCell=o;a._xlsxCell=i;a._cellsCache=n;a._styleCache=s;return a}Object.defineProperty(XlsxFormatItemEventArgs.prototype,\"cell\",{get:function(){return this._cell},enumerable:!0,configurable:!0});Object.defineProperty(XlsxFormatItemEventArgs.prototype,\"xlsxCell\",{get:function(){return this._xlsxCell},set:function(e){this._xlsxCell=e},enumerable:!0,configurable:!0});XlsxFormatItemEventArgs.prototype.getFormattedCell=function(){if(!this._cell){this._cell=FlexGridXlsxConverter._getMeasureCell(this.panel,this.col,this._patternCell,this._cellsCache);FlexGridXlsxConverter._getCellStyle(this.panel,this._cell,this.row,this.col,this._styleCache)}return this._cell};return XlsxFormatItemEventArgs}(CellRangeEventArgs);export{XlsxFormatItemEventArgs};!function(e){e[e.None=0]=\"None\";e[e.Regular=1]=\"Regular\";e[e.Cache=2]=\"Cache\"}(_IncludeCellStyles||(_IncludeCellStyles={}));var _StyleCache=function(){function _StyleCache(e){this._cache={};this._size=0;this._max=e}_StyleCache.prototype.add=function(e,l){this._size>=this._max&&this.clear();this._cache[e]=this._cloneStyle(l);this._size++};_StyleCache.prototype.clear=function(){this._cache={};this._size=0};_StyleCache.prototype.getValue=function(e){return this._cache[e]||null};_StyleCache.prototype.hasKey=function(e){return!!this._cache[e]};_StyleCache.prototype._cloneStyle=function(e){if(!e)return null;for(var l={},toCamel=function(e){return e.replace(/\\-([a-z])/g,(function(e,l,t){return t>0?l.toUpperCase():l}))},t=0,r=e.length;t0&&this._pushTableColumns(n);if(null!=i){null!=i.showHeaderRow&&(this._showHeaderRow=i.showHeaderRow);null!=i.showTotalRow&&(this._showTotalRow=i.showTotalRow);null!=i.showBandedColumns&&(this._showBandedColumns=i.showBandedColumns);null!=i.showBandedRows&&(this._showBandedRows=i.showBandedRows);null!=i.alterFirstColumn&&(this._alterFirstColumn=i.alterFirstColumn);null!=i.alterLastColumn&&(this._alterLastColumn=i.alterLastColumn)}}Object.defineProperty(Table.prototype,\"name\",{get:function(){return this._name},set:function(e){var t,o;if(null==e||\"\"===e)throw\"The name of the Table should not be empty.\";if(this._name.toLowerCase()!==e.toLowerCase()){o=this._name;this._name=e;if(this._owner){!this._owner._isUndoing&&this._owner.undoStack.stackSize>0&&(t=new _TableSettingAction(this._owner,this));this._owner._updateFormulasWithNameUpdating(o,e,!0);if(t){t.saveNewState();this._owner.undoStack._addAction(t);t=null}}}},enumerable:!0,configurable:!0});Object.defineProperty(Table.prototype,\"sheet\",{get:function(){return this._sheet},enumerable:!0,configurable:!0});Object.defineProperty(Table.prototype,\"style\",{get:function(){return this._style},set:function(e){var t;if(e.name!==this._style.name){this._owner&&!this._owner._isUndoing&&this._owner.undoStack.stackSize>0&&(t=new _TableSettingAction(this._owner,this));this._style=e;if(this._owner){if(t){t.saveNewState();this._owner.undoStack._addAction(t);t=null}this._owner.refresh()}}},enumerable:!0,configurable:!0});Object.defineProperty(Table.prototype,\"showHeaderRow\",{get:function(){return this._showHeaderRow},set:function(e){var t,o;if(e!==this._showHeaderRow){this._owner&&!this._owner._isUndoing&&this._owner.undoStack.stackSize>0&&(t=new _TableSettingAction(this._owner,this));o=this._showHeaderRow;this._showHeaderRow=e;if(this._owner)try{this._owner.beginUpdate();this._adjustTableRangeWithHeaderRow();if(t){t.saveNewState();this._owner.undoStack._addAction(t)}}catch(e){this._showHeaderRow=o;throw e}finally{t=null;this._owner.endUpdate()}}},enumerable:!0,configurable:!0});Object.defineProperty(Table.prototype,\"showTotalRow\",{get:function(){return this._showTotalRow},set:function(e){var t,o;if(e!==this._showTotalRow){this._owner&&!this._owner._isUndoing&&this._owner.undoStack.stackSize>0&&(t=new _TableSettingAction(this._owner,this));o=this._showTotalRow;this._showTotalRow=e;if(this._owner)try{this._owner.beginUpdate();this._adjustTableRangeWithTotalRow();if(t){t.saveNewState();this._owner.undoStack._addAction(t)}}catch(e){this._showTotalRow=o;throw e}finally{t=null;this._owner.endUpdate()}}},enumerable:!0,configurable:!0});Object.defineProperty(Table.prototype,\"showBandedColumns\",{get:function(){return this._showBandedColumns},set:function(e){var t;if(e!==this._showBandedColumns){this._owner&&!this._owner._isUndoing&&this._owner.undoStack.stackSize>0&&(t=new _TableSettingAction(this._owner,this));this._showBandedColumns=e;if(this._owner){if(t){t.saveNewState();this._owner.undoStack._addAction(t);t=null}this._owner.refresh()}}},enumerable:!0,configurable:!0});Object.defineProperty(Table.prototype,\"showBandedRows\",{get:function(){return this._showBandedRows},set:function(e){var t;if(e!==this._showBandedRows){this._owner&&!this._owner._isUndoing&&this._owner.undoStack.stackSize>0&&(t=new _TableSettingAction(this._owner,this));this._showBandedRows=e;if(this._owner){if(t){t.saveNewState();this._owner.undoStack._addAction(t);t=null}this._owner.refresh()}}},enumerable:!0,configurable:!0});Object.defineProperty(Table.prototype,\"alterFirstColumn\",{get:function(){return this._alterFirstColumn},set:function(e){var t;if(e!==this._alterFirstColumn){this._owner&&!this._owner._isUndoing&&this._owner.undoStack.stackSize>0&&(t=new _TableSettingAction(this._owner,this));this._alterFirstColumn=e;if(this._owner){if(t){t.saveNewState();this._owner.undoStack._addAction(t);t=null}this._owner.refresh()}}},enumerable:!0,configurable:!0});Object.defineProperty(Table.prototype,\"alterLastColumn\",{get:function(){return this._alterLastColumn},set:function(e){var t;if(e!==this._alterLastColumn){this._owner&&!this._owner._isUndoing&&this._owner.undoStack.stackSize>0&&(t=new _TableSettingAction(this._owner,this));this._alterLastColumn=e;if(this._owner){if(t){t.saveNewState();this._owner.undoStack._addAction(t);t=null}this._owner.refresh()}}},enumerable:!0,configurable:!0});Table.prototype.getRange=function(e,t){void 0===e&&(e=TableSection.All);var o;switch(e){case TableSection.Data:o=this._getDataRange();break;case TableSection.Header:o=this._getHeaderRange();break;case TableSection.Footer:o=this._getFooterRange();break;default:o=this._range.clone()}if(null!=t&&o){var n=this._getColumnIndex(t);if(null==n)return null;o.col=o.col2=o.leftCol+n}return o};Table.prototype.getColumns=function(){return this._columns?this._columns.slice():[]};Table.prototype.insertRows=function(e,t,o){void 0===o&&(o=!0);var n,i,l,r,s,a=this.getRange(),h=!1;null==t&&(t=1);if(!isInt(t)||t<1)return!1;if(0===e&&this._showHeaderRow||e===this._range.rowSpan-1&&this._showTotalRow||e<0||e>=this._range.rowSpan)return!1;if(this._owner){this._owner.beginUpdate();r=this._sheet===this._owner.selectedSheet?this._owner:this._sheet.grid;if(o){l=new CellRange(a.bottomRow+1,a.col,a.bottomRow+1,a.col2);if(this._sheet._canShiftCells(l)){n=this._sheet._needAddRowCountForInsertTableRows(t,a);if(r.collectionView){s=r.itemsSource instanceof CollectionView;r.collectionView.beginUpdate();for(i=0;i=this._range.rowSpan||e+t>this._range.rowSpan-(this._showTotalRow?1:0)))if(this._owner){this._owner.beginUpdate();if(o){n=new CellRange(l.bottomRow+1,l.col,l.bottomRow+1,l.col2);this._sheet._canShiftCells(n)&&(i=!0)}else i=!0;if(i){this._sheet._moveUpCellsWithinTable(e,t,l);o&&this._sheet._moveUpCells(t,n);this._updateTableRange(0,-t,0,0)}this._owner.endUpdate()}else this._updateTableRange(0,-t,0,0)};Table.prototype._addColumn=function(e,t){var o,n=this.getRange();if(e<=0||e>this._columns.length)throw\"The column index is out of range.\";t=this._getUniqueColumnName(e,t);(o=new TableColumn(t))._attach(this);this._columns.splice(e,0,o);this.showHeaderRow&&this._owner&&this._sheet&&(this._sheet===this._owner.selectedSheet?this._owner:this._sheet.grid).setCellData(n.topRow,n.leftCol+e,t)};Table.prototype._updateCell=function(e,t,o){var n,i=e-this._range.topRow,l=t-this._range.leftCol;if(null!=this._style){n=this._getTableCellAppliedStyles(i,l);this._applyStylesForCell(n,o)}};Table.prototype._updateTableRange=function(e,t,o,n){if(this._range.row<=this._range.row2){this._range.row+=e;this._range.row2+=t}else{this._range.row2+=e;this._range.row+=t}if(this._range.col<=this._range.col2){this._range.col+=o;this._range.col2+=n}else{this._range.col2+=o;this._range.col+=n}};Table.prototype._setTableRange=function(e,t){var o;this._range=e;if(null!=t){this._columns.splice(0,this._columns.length);for(o=0;o1){this._orgHeaderCellsContent[s]=this._sheet.grid.getCellData(this._range.topRow,this._range.leftCol+s,!1);isNaN(+t)||i.format||n&&n.format||(n?n.format=\"@\":this._sheet._styledCells[l]={format:\"@\"});r.setCellData(this._range.topRow,this._range.leftCol+s,t,!1)}(o=new TableColumn(t))._attach(this);0===s?o._totalRowLabel=\"Total\":s===this._range.columnSpan-1&&(o._totalRowFunction=\"Sum\");this._columns.push(o)}};Table.prototype._getTableCellAppliedStyles=function(e,t){var o,n={},i=!1,l=!1,r=0;this._showHeaderRow&&(r=1);this._showHeaderRow&&0===e?i=!0:this._showTotalRow&&e===this._range.rowSpan-1&&(l=!0);this._extendStyle(n,this._style.wholeTableStyle,e,t,i,l);if(!i&&!l){!this._showBandedColumns||null==this._style.firstBandedColumnStyle&&null==this._style.secondBandedColumnStyle||(t%((o=this._style.firstBandedColumnStyle?null==this._style.firstBandedColumnStyle.size?1:this._style.firstBandedColumnStyle.size:1)+(this._style.secondBandedColumnStyle?null==this._style.secondBandedColumnStyle.size?1:this._style.secondBandedColumnStyle.size:1))>=o?this._style.secondBandedColumnStyle&&this._extendStyle(n,this._style.secondBandedRowStyle,e,t,i,l):this._style.firstBandedColumnStyle&&this._extendStyle(n,this._style.firstBandedColumnStyle,e,t,i,l));!this._showBandedRows||null==this._style.firstBandedRowStyle&&null==this._style.secondBandedRowStyle||((e-r)%((o=this._style.firstBandedRowStyle?null==this._style.firstBandedRowStyle.size?1:this._style.firstBandedRowStyle.size:1)+(this._style.secondBandedRowStyle?null==this._style.secondBandedRowStyle.size?1:this._style.secondBandedRowStyle.size:1))>=o?this._style.secondBandedRowStyle&&this._extendStyle(n,this._style.secondBandedRowStyle,e,t,i,l):this._style.firstBandedRowStyle&&this._extendStyle(n,this._style.firstBandedRowStyle,e,t,i,l))}this._alterLastColumn&&t===this._range.columnSpan-1&&this._style.lastColumnStyle&&this._extendStyle(n,this._style.lastColumnStyle,e,t,i,l);this._alterFirstColumn&&0===t&&this._style.firstColumnStyle&&this._extendStyle(n,this._style.firstColumnStyle,e,t,i,l);if(i){this._style.headerRowStyle&&this._extendStyle(n,this._style.headerRowStyle,e,t,i,l);t===this._range.columnSpan-1&&this._style.lastHeaderCellStyle&&this._extendStyle(n,this._style.lastHeaderCellStyle,e,t,i,l);0===t&&this._style.firstHeaderCellStyle&&this._extendStyle(n,this._style.firstHeaderCellStyle,e,t,i,l)}else if(l){this._style.totalRowStyle&&this._extendStyle(n,this._style.totalRowStyle,e,t,i,l);t===this._range.columnSpan-1&&this._style.lastTotalCellStyle&&this._extendStyle(n,this._style.lastTotalCellStyle,e,t,i,l);0===t&&this._style.firstTotalCellStyle&&this._extendStyle(n,this._style.firstTotalCellStyle,e,t,i,l)}return n};Table.prototype._applyStylesForCell=function(e,t){var o,n=t.style;for(var i in e)(o=e[i])&&(n[i]=o)};Table.prototype._extendStyle=function(e,t,o,n,i,l){var r;for(var s in t)null!==(r=t[s])&&(s.indexOf(\"borderTop\")>-1?(0===o||l)&&(e[s]=r):s.indexOf(\"borderBottom\")>-1?(o===this._range.rowSpan-1||i)&&(e[s]=r):s.indexOf(\"borderLeft\")>-1?0===n&&(e[s]=r):s.indexOf(\"borderRight\")>-1?n===this._range.columnSpan-1&&(e[s]=r):s.indexOf(\"borderHorizontal\")>-1?o-1?n=r.rows.length)return!1;for(t=1;t<=e;t++){o=this._range.bottomRow+t;for(n=this._range.leftCol;n<=this._range.rightCol;n++){i=r.getCellData(o,n,!1);l=this._sheet.getCellStyle(o,n);if(null!=i&&\"\"!==i||null!=l)return!1}}return!0};Table.prototype._beneathRowIsEmpty=function(){var e,t,o,n=this._range.bottomRow+1,i=this._sheet===this._owner.selectedSheet?this._owner:this._sheet.grid;if(n>=i.rows.length)return!1;for(e=this._range.leftCol;e<=this._range.rightCol;e++){if(null!=(t=i.getCellData(this._range.bottomRow+1,e,!1))&&\"\"!==t)return!1;if(null!=this._sheet.getCellStyle(this._range.bottomRow+1,e))return!1;if(null!=this._sheet.findTable(n,e))return null;o=n*i.columns.length+e;if(null!=this._sheet._mergedRanges[o])return!1}return!0};Table.prototype._getDataRange=function(){var e=this._range.topRow,t=this._range.bottomRow;this._showHeaderRow&&(e+=1);this._showTotalRow&&(t-=1);return new CellRange(e,this._range.leftCol,t,this._range.rightCol)};Table.prototype._getHeaderRange=function(){return this._showHeaderRow?new CellRange(this._range.topRow,this._range.leftCol,this._range.topRow,this._range.rightCol):null};Table.prototype._getFooterRange=function(){return this._showTotalRow?new CellRange(this._range.bottomRow,this._range.leftCol,this._range.bottomRow,this._range.rightCol):null};Table.prototype._getColumnIndex=function(e){var t,o,n;if(isInt(e)&&e>=0&&e0?t.selectedSheet.selectionRanges.slice():[t.selection.clone()];n._mergeAction=new _CellMergeAction(t);n._cellStyleAction=new _CellStyleAction(t);n._saveValues(!0);return n}Object.defineProperty(_EditAction.prototype,\"isPaste\",{get:function(){return this._isPaste},enumerable:!0,configurable:!0});_EditAction.prototype.undo=function(){this._handleUndoRedo(!0)};_EditAction.prototype.redo=function(){this._handleUndoRedo(!1)};_EditAction.prototype.saveNewState=function(){if(!this._saveValues(!1))return!1;this._mergeAction.saveNewState();this._cellStyleAction.saveNewState();return this._checkActionState()};_EditAction.prototype.markIsPaste=function(){this._isPaste=!0};_EditAction.prototype.updateForPasting=function(e){var t=this._selections[this._selections.length-1],o=this._owner.getCellData(e.row,e.col,!!this._owner.columns[e.col].dataMap);if(!t){t=this._owner.selection;this._selections=[t]}o=null==o?\"\":o;this._oldValues[\"r\"+e.row+\"_c\"+e.col]={row:e.row,col:e.col,value:o};t.row=Math.min(t.topRow,e.topRow);t.row2=Math.max(t.bottomRow,e.bottomRow);t.col=Math.min(t.leftCol,e.leftCol);t.col2=Math.max(t.rightCol,e.rightCol)};_EditAction.prototype._storeDeletedTables=function(e){null==this._deletedTables&&(this._deletedTables=[]);this._deletedTables.push(e)};_EditAction.prototype._checkActionState=function(){var e=this,t=!1;Object.keys(e._oldValues).forEach((function(o){var n,i;if(!t){n=e._oldValues[o];i=e._newValues[o];n&&i&&n.value!==i.value&&(t=!0)}}));return t||e._mergeAction._checkActionState()||e._cellStyleAction._checkActionState()};_EditAction.prototype._saveValues=function(e){var t,o,n,i,l,r,s={};for(t=0;t0)for(o=0;o0)for(a=0;a0)for(o=0;o=0;t--){o._delSubActions[t]._handleUndoRedo(e,!1)}else for(var n=0;n0){for(n=0;n=this._columnIndex;n--)(i=this._owner.columns[n])&&i.isVisible&&this._owner.columns.removeAt(n);this._owner.columns.endUpdate();this._owner.selectedSheet._styledCells=this._owner._cloneObject(f.styledCells);for(g=0;g0)for(l=0;l0)for(r=0;r0)for(l=0;l-1&&(this._owner.definedNames[_].value=d.value)}this._owner.selectedSheet.grid.wj_sheetInfo.styledCells=this._owner.selectedSheet._styledCells;this._owner.selectedSheet.grid.wj_sheetInfo.mergedRanges=this._owner.selectedSheet._mergedRanges;this._owner._isUndoing=!1}finally{t&&this._owner.endUpdate()}this._owner._copyColumnsToSelectedSheet();this._owner.sortManager.sortDescriptions.sourceCollection=f.sortList.slice();this._owner.selectedSheet._filterDefinition=f.filterDef;this._owner.sortManager.commitSort(!1);this._owner.selection=f.selection}};return _ColumnsChangedAction}(_UndoAction);export{_ColumnsChangedAction};var _RowsChangedAction=function(e){__extends(_RowsChangedAction,e);function _RowsChangedAction(t,o,n,i){var l=e.call(this,t)||this;l._delSubActions=[];l._rowIndex=o;l._count=n;l._isAdding=i;l._saveValues(!0);return l}_RowsChangedAction.prototype.undo=function(){this._handleUndoRedo(!0)};_RowsChangedAction.prototype.redo=function(){this._handleUndoRedo(!1)};_RowsChangedAction.prototype.saveNewState=function(){this._saveValues(!1);return!0};_RowsChangedAction.prototype.addDeleteSubAction=function(e){this._delSubActions.push(e)};_RowsChangedAction.prototype._saveValues=function(e){var t,o,n,i,l,r,s,a,h=[],u=[],c=[];if(null==this._isAdding)if(this._owner.itemsSource){r=this._owner.itemsSource instanceof CollectionView?this._owner.itemsSource.sourceCollection.slice():this._owner.itemsSource.slice();for(n=0;n0&&(s=this._owner.collectionView._view.slice())}if(this._owner.selectedSheet.tables&&this._owner.selectedSheet.tables.length>0)for(i=0;i=0;t--){o._delSubActions[t]._handleUndoRedo(e,!1)}else for(var n=0;n0){for(n=0;n=this._rowIndex;n--)if(i=this._owner.rows[n])if(S&&i.dataItem){C=null!=i.dataItem._itemIdx?i.dataItem._itemIdx:n-(this._owner.allowAddNew&&this._owner.newRowAtTop?2:1);if(this._owner.itemsSource instanceof CollectionView){this._owner.itemsSource.sourceCollection.splice(C,1);this._owner._updateItemIndexForRemovingRow(this._owner.itemsSource.sourceCollection,C)}else{this._owner.itemsSource.splice(C,1);this._owner._updateItemIndexForRemovingRow(this._owner.itemsSource,C)}}else this._owner.rows.removeAt(n);if(S){this._owner._lastCount=this._owner.collectionView.itemCount;this._owner.collectionView.endUpdate(!0);if(b.dataView&&b.dataView.length>0){this._owner.collectionView._view=b.dataView;this._owner.collectionView._pgView=this._owner.collectionView._getPageView();if(!(this._owner.itemsSource instanceof CollectionView)){this._owner.selectedSheet.grid.collectionView._view=b.dataView;this._owner.selectedSheet.grid.collectionView._pgView=this._owner.selectedSheet.grid.collectionView._getPageView()}this._owner._bindGrid(!1);this._owner.selectedSheet.grid._bindGrid(!1)}this._owner.autoGenerateColumns=w}this._owner.rows.endUpdate()}this._owner.selectedSheet._styledCells=this._owner._cloneObject(b.styledCells);for(f=0;f0)for(r=0;r0)for(s=0;s0)for(r=0;r-1&&(this._owner.definedNames[g].value=_.value)}this._owner.selectedSheet.grid.wj_sheetInfo.styledCells=this._owner.selectedSheet._styledCells;this._owner.selectedSheet.grid.wj_sheetInfo.mergedRanges=this._owner.selectedSheet._mergedRanges;this._owner.selection=b.selection;this._owner.scrollPosition=b.scrollPosition;this._owner._isUndoing=!1}finally{t&&this._owner.endUpdate()}this._owner._copyRowsToSelectedSheet()}};return _RowsChangedAction}(_UndoAction);export{_RowsChangedAction};var _CellStyleAction=function(e){__extends(_CellStyleAction,e);function _CellStyleAction(t,o){var n=e.call(this,t)||this;n._oldStyledCells=o?t._cloneObject(o):t.selectedSheet?t._cloneObject(t.selectedSheet._styledCells):null;return n}_CellStyleAction.prototype.undo=function(){this._handleUndoRedo(!0)};_CellStyleAction.prototype.redo=function(){this._handleUndoRedo(!1)};_CellStyleAction.prototype.saveNewState=function(){this._newStyledCells=this._owner.selectedSheet?this._owner._cloneObject(this._owner.selectedSheet._styledCells):null;return!0};_CellStyleAction.prototype._checkActionState=function(){return null!=this._oldStyledCells&&null==this._newStyledCells||null==this._oldStyledCells&&null!=this._newStyledCells||null!=this._oldStyledCells&&null!=this._newStyledCells&&this._oldStyledCells.length!==this._newStyledCells.length};_CellStyleAction.prototype._handleUndoRedo=function(e){var t;if(this._owner.selectedSheet){t=e?this._oldStyledCells:this._newStyledCells;this._owner.selectedSheet._styledCells=this._owner._cloneObject(t);this._owner.selectedSheet.grid.wj_sheetInfo.styledCells=this._owner.selectedSheet._styledCells;this._owner.refresh(!1)}};return _CellStyleAction}(_UndoAction);export{_CellStyleAction};var _CellMergeAction=function(e){__extends(_CellMergeAction,e);function _CellMergeAction(t){var o=e.call(this,t)||this;o._oldMergedCells=t.selectedSheet?t.selectedSheet._cloneMergedCells():null;return o}_CellMergeAction.prototype.undo=function(){this._handleUndoRedo(!0)};_CellMergeAction.prototype.redo=function(){this._handleUndoRedo(!1)};_CellMergeAction.prototype.saveNewState=function(){this._newMergedCells=this._owner.selectedSheet?this._owner.selectedSheet._cloneMergedCells():null;return!0};_CellMergeAction.prototype._handleUndoRedo=function(e){var t,o;if(this._owner.selectedSheet){t=e?this._oldMergedCells:this._newMergedCells;this._owner._clearCalcEngine();if(t){this._owner.selectedSheet._mergedRanges.length=0;for(o=0;o0){l._owner.collectionView._view=r.dataView;l._owner.collectionView._pgView=l._owner.collectionView._getPageView();if(!a){l._owner.selectedSheet.grid.collectionView._view=r.dataView;l._owner.selectedSheet.grid.collectionView._pgView=l._owner.selectedSheet.grid.collectionView._getPageView()}l._owner._bindGrid(!1);l._owner.selectedSheet.grid._bindGrid(!1)}}else{l._owner.rows.clear();l._owner.selectedSheet.grid.rows.clear();for(t=0;t0&&this._draggingTableColumns&&this._draggingTableColumns.length>0)for(r=0;r0)for(r=0;r0)for(t=0;t0)for(t=0;t-1&&(c._owner.definedNames[u].value=h.value)}for(t=0;t0)for(t=0;t=c._dropRange.leftCol;i--){c._owner._updateColumnFiler(i,l);l--}}}else if(c._isDraggingColumns)if(c._dragRange.leftCol>c._dropRange.leftCol){l=c._dropRange.leftCol;for(i=c._dragRange.leftCol;i<=c._dragRange.rightCol;i++){c._owner._updateColumnFiler(i,l);l++}}else{l=c._dropRange.rightCol;for(i=c._dragRange.rightCol;i>=c._dragRange.leftCol;i--){c._owner._updateColumnFiler(i,l);l--}}}}))}};return _MoveCellsAction}(_UndoAction);export{_MoveCellsAction};var _CutAction=function(e){__extends(_CutAction,e);function _CutAction(t){var o=e.call(this,t)||this;o._oldValues=[];o._mergeAction=new _CellMergeAction(t);o._celltyleAction=new _CellStyleAction(t);o._cutSheet=t._copiedSheet;o._selection=t.selection;o._cutSelection=t.selectionMode===SelectionMode.ListBox?t._getSelectionForListBoxMode(o._cutSheet.grid):t._copiedRanges[0];o._saveCutValues(!0);return o}_CutAction.prototype.undo=function(){this._handleUndoRedo(!0)};_CutAction.prototype.redo=function(){this._handleUndoRedo(!1)};_CutAction.prototype.saveNewState=function(){var e,t,o;this._cutSheet===this._owner.selectedSheet?this._owner:this._cutSheet.grid;this._saveCutValues(!1);this._newValues=[];for(e=this._selection.topRow;e<=this._selection.bottomRow;e++)for(t=this._selection.leftCol;t<=this._selection.rightCol;t++){if(!this._owner.columns[t])return!1;o=null==(o=this._owner.getCellData(e,t,!!this._owner.columns[t].dataMap))?\"\":o;this._newValues.push({row:e,col:t,value:o})}this._mergeAction.saveNewState();this._celltyleAction.saveNewState();return!0};_CutAction.prototype.updateForPasting=function(e){var t=this._owner.getCellData(e.row,e.col,!!this._owner.columns[e.col].dataMap);t=null==t?\"\":t;this._oldValues.push({row:e.row,col:e.col,value:t});this._selection.row=Math.min(this._selection.topRow,e.topRow);this._selection.row2=Math.max(this._selection.bottomRow,e.bottomRow);this._selection.col=Math.min(this._selection.leftCol,e.leftCol);this._selection.col2=Math.max(this._selection.rightCol,e.rightCol)};_CutAction.prototype._saveCutValues=function(e){var t,o,n,i=this._cutSheet===this._owner.selectedSheet?this._owner:this._cutSheet.grid,l=[];for(t=this._cutSelection.topRow;t<=this._cutSelection.bottomRow;t++)if(null!=i.rows[t])for(o=this._cutSelection.leftCol;o<=this._cutSelection.rightCol;o++){n=null==(n=i.getCellData(t,o,!!i.columns[o].dataMap))?\"\":n;l.push({row:t,col:o,value:n})}e?this._oldCutValues=l:this._newCutValues=l};_CutAction.prototype._handleUndoRedo=function(e){var t=this,o=e?t._oldCutValues:t._newCutValues,n=e?t._oldValues:t._newValues;t._owner._clearCalcEngine();t._owner.selectedSheet.selectionRanges.clear();t._owner.deferUpdate((function(){var i,l,r=t._cutSheet===t._owner.selectedSheet?t._owner:t._cutSheet.grid;t._owner.selectedSheet.selectionRanges.push(t._selection);for(i=0;i0)for(t=0;t-1&&i>-1){o.splice(n,1);o.splice(i,0,t);this._sortDescriptions.refresh();this._sortDescriptions.moveCurrentTo(t)}}};SortManager.prototype.checkSortItemExists=function(e){for(var t=0,o=this._sortDescriptions.itemCount;t0&&(s=new _SortColumnAction(p));this._sortDescriptions.itemCount>0?this._committedList=this._cloneSortList(this._sortDescriptions.items):this._committedList=[new ColumnSortDescription(-1,!0)];if(p.collectionView){p._isSorting=!0;p.beginUpdate();(a=p.editableCollectionView)&&a.currentEditItem&&-1!==a.items.indexOf(a.currentEditItem)&&!this._isEmpty(a.currentEditItem)&&a.commitEdit();p.collectionView.beginUpdate();C||p.selectedSheet.grid.collectionView.beginUpdate();(n=p.collectionView.sortDescriptions).clear();h=p.selection.clone();g=p.allowAddNew&&p.newRowAtTop?p.rows[1]:p.rows[0];f=(p.allowAddNew&&p.newRowAtTop?1:0)+(g instanceof HeaderRow?1:0);var S=[];if(p.filter&&p.filter._filteringIsActive())for(l=0;l-1){p.collectionView.useStableSort=!0;w||C||(p.selectedSheet.grid.collectionView.useStableSort=!0)}for(l=0;l-1&&t.columnIndex-1&&r.push(new _UnboundSortDescription(p.columns[t.columnIndex],t.ascending));p.filter&&!p.filter._filteringIsActive()&&setTimeout((function(){return p.filter.apply()}),10)}if(s){s.saveNewState();p.undoStack._addAction(s)}p._copiedRanges=null;p._needCopyToSheet=!0}};SortManager.prototype.cancelSort=function(){this._sortDescriptions.sourceCollection=this._committedList.slice()};SortManager.prototype.clearSort=function(){this._sortDescriptions.sourceCollection=[];this.commitSort()};SortManager.prototype._getSortItem=function(e){var t=this.checkSortItemExists(e);if(t>-1)return this._sortDescriptions.items[t]};SortManager.prototype._cloneSortList=function(e){for(var t=[],o=0;o=0;n--){i=this._sortDescriptions.items[n];o?i.columnIndex>e&&(i.columnIndex+=t):i.columnIndex>=e+t?i.columnIndex-=t:i.columnIndex>=e&&this._sortDescriptions.remove(i)}};SortManager.prototype._isEmpty=function(e){var t=Object.prototype.hasOwnProperty;if(null==e)return!0;if(e.length>0)return!1;if(0===e.length)return!0;for(var o in e)if(t.call(e,o))return!1;return!0};return SortManager}();export{SortManager};var ColumnSortDescription=function(){function ColumnSortDescription(e,t){this._columnIndex=e;this._ascending=t}Object.defineProperty(ColumnSortDescription.prototype,\"columnIndex\",{get:function(){return this._columnIndex},set:function(e){this._columnIndex=+e},enumerable:!0,configurable:!0});Object.defineProperty(ColumnSortDescription.prototype,\"ascending\",{get:function(){return this._ascending},set:function(e){this._ascending=e},enumerable:!0,configurable:!0});ColumnSortDescription.prototype.clone=function(){return new ColumnSortDescription(this._columnIndex,this._ascending)};return ColumnSortDescription}();export{ColumnSortDescription};_addCultureInfo(\"FlexSheet\",{insertRow:\"Insert Row\",deleteRow:\"Delete Rows\",insertCol:\"Insert Column\",deleteCol:\"Delete Columns\",convertTable:\"Convert To Table\",insertSheet:\"Insert\",deleteSheet:\"Delete\",renameSheet:\"Rename\",copyCells:\"Copy Cells\",fillSeries:\"Fill Series\",fillFormat:\"Fill Formatting Only\",fillWithoutFormat:\"Fill Without Formatting\"});var FlexSheetFunctions=[{name:\"abs\",description:\"Returns the absolute value of a number.\"},{name:\"acos\",description:\"Returns the arccosine of a number.\"},{name:\"address\",description:\"Obtains the address of a cell in a worksheet by given specified row and column numbers.\"},{name:\"and\",description:\"Returns TRUE if all of its arguments are TRUE.\"},{name:\"asin\",description:\"Returns the arcsine of a number.\"},{name:\"atan\",description:\"Returns the arctangent of a number.\"},{name:\"atan2\",description:\"Returns the arctangent from x- and y-coordinates.\"},{name:\"average\",description:\"Returns the average of its arguments.\"},{name:\"ceiling\",description:\"Rounds a number to the nearest integer or to the nearest multiple of significance.\"},{name:\"char\",description:\"Returns the character specified by the code number.\"},{name:\"choose\",description:\"Chooses a value from a list of values.\"},{name:\"code\",description:\"Returns a numeric code for the first character in a text string.\"},{name:\"column\",description:\"Returns the column number of a reference.\"},{name:\"columns\",description:\"Returns the number of columns in a reference.\"},{name:\"concatenate\",description:\"Joins several text items into one text item.\"},{name:\"cos\",description:\"Returns the cosine of a number.\"},{name:\"count\",description:\"Counts how many numbers are in the list of arguments.\"},{name:\"counta\",description:\"Counts how many values are in the list of arguments.\"},{name:\"countblank\",description:\"Counts the number of blank cells within a range.\"},{name:\"countif\",description:\"Counts the number of cells within a range that meet the given criteria.\"},{name:\"countifs\",description:\"Counts the number of cells within a range that meet multiple criteria.\"},{name:\"date\",description:\"Returns the serial number of a particular date.\"},{name:\"datedif\",description:\"Calculates the number of days, months, or years between two dates.\"},{name:\"day\",description:\"Converts a serial number to a day of the month.\"},{name:\"dcount\",description:\"Counts the cells that contain numbers in a database.\"},{name:\"exp\",description:\"Returns e raised to the power of a given number.\"},{name:\"exact\",description:\"Compares two text strings and returns TRUE if they are exactly the same, FALSE otherwise.\"},{name:\"false\",description:\"Returns the logical value FALSE.\"},{name:\"find\",description:\"Finds one text value within another (case-sensitive).\"},{name:\"floor\",description:\"Rounds a number down, toward zero.\"},{name:\"hlookup\",description:\"Looks in the top row of an array and returns the value of the indicated cell.\"},{name:\"hour\",description:\"Converts a serial number to an hour.\"},{name:\"if\",description:\"Specifies a logical test to perform.\"},{name:\"iferror\",description:\"Returns a value you specify if a formula evaluates to an error; otherwise, it returns the result of the formula.\"},{name:\"index\",description:\"Uses an index to choose a value from a reference.\"},{name:\"indirect\",description:\"Returns the reference specified by a text string. References are immediately evaluated to display their contents.\"},{name:\"iserr\",description:\"Checks if value is an error (#VALUE!, #REF!, #DIV/0!, #NUM!, #NAME?, or #NULL!) excluding #N/A, and returns TRUE or FALSE.\"},{name:\"iserror\",description:\"Checks if value is an error (#N/A, #VALUE!, #REF!, #DIV/0!, #NUM!, #NAME?, or #NULL!), and returns TRUE or FALSE.\"},{name:\"left\",description:\"Returns the leftmost characters from a text value.\"},{name:\"len\",description:\"Returns the number of characters in a text string.\"},{name:\"ln\",description:\"Returns the natural logarithm of a number.\"},{name:\"lower\",description:\"Converts text to lowercase.\"},{name:\"max\",description:\"Returns the maximum value in a list of arguments.\"},{name:\"mid\",description:\"Returns a specific number of characters from a text string starting at the position you specify.\"},{name:\"min\",description:\"Returns the minimum value in a list of arguments.\"},{name:\"mod\",description:\"Returns the remainder from division.\"},{name:\"month\",description:\"Converts a serial number to a month.\"},{name:\"not\",description:\"Reverses the logic of its argument.\"},{name:\"now\",description:\"Returns the serial number of the current date and time.\"},{name:\"or\",description:\"Returns TRUE if any argument is TRUE.\"},{name:\"pi\",description:\"Returns the value of pi.\"},{name:\"power\",description:\"Returns the result of a number raised to a power.\"},{name:\"product\",description:\"Multiplies its arguments.\"},{name:\"proper\",description:\"Capitalizes the first letter in each word of a text value.\"},{name:\"rand\",description:\"Returns a random number between 0 and 1.\"},{name:\"rank\",description:\"Returns the rank of a number in a list of numbers.\"},{name:\"rate\",description:\"Returns the interest rate per period of an annuity.\"},{name:\"replace\",description:\"Replaces characters within text.\"},{name:\"rept\",description:\"Repeats text a given number of times.\"},{name:\"right\",description:\"Returns the rightmost characters from a text value.\"},{name:\"round\",description:\"Rounds a number to a specified number of digits.\"},{name:\"rounddown\",description:\"Rounds a number down, toward zero.\"},{name:\"roundup\",description:\"Rounds a number up, away from zero.\"},{name:\"row\",description:\"Returns the row number of a reference.\"},{name:\"rows\",description:\"Returns the number of rows in a reference.\"},{name:\"search\",description:\"Finds one text value within another (not case-sensitive).\"},{name:\"sin\",description:\"Returns the sine of the given angle.\"},{name:\"sqrt\",description:\"Returns a positive square root.\"},{name:\"stdev\",description:\"Estimates standard deviation based on a sample.\"},{name:\"stdevp\",description:\"Calculates standard deviation based on the entire population.\"},{name:\"substitute\",description:\"Substitutes new text for old text in a text string.\"},{name:\"subtotal\",description:\"Returns a subtotal in a list or database.\"},{name:\"sum\",description:\"Adds its arguments.\"},{name:\"sumif\",description:\"Adds the cells specified by a given criteria.\"},{name:\"sumifs\",description:\"Adds the cells in a range that meet multiple criteria.\"},{name:\"sumproduct\",description:\"Multiplies corresponding components in the given arrays, and returns the sum of those products.\"},{name:\"tan\",description:\"Returns the tangent of a number.\"},{name:\"text\",description:\"Formats a number and converts it to text.\"},{name:\"time\",description:\"Returns the serial number of a particular time.\"},{name:\"today\",description:\"Returns the serial number of today's date.\"},{name:\"trim\",description:\"Removes spaces from text.\"},{name:\"true\",description:\"Returns the logical value TRUE.\"},{name:\"trunc\",description:\"Truncates a number to an integer.\"},{name:\"upper\",description:\"Converts text to uppercase.\"},{name:\"value\",description:\"Converts a text argument to a number.\"},{name:\"var\",description:\"Estimates variance based on a sample.\"},{name:\"varp\",description:\"Calculates variance based on the entire population.\"},{name:\"vlookup\",description:\"Looks in the first column of an array and returns the value of the indicated cell.\"},{name:\"year\",description:\"Converts a serial number to a year.\"}],FlexSheet=function(e){__extends(FlexSheet,e);function FlexSheet(t,o){var n=e.call(this,t,o)||this;n._selectedSheetIndex=-1;n._columnHeaderClicked=!1;n._addingSheet=!1;n._mouseMoveHdl=n._mouseMove.bind(n);n._clickHdl=n._click.bind(n);n._touchStartHdl=n._touchStart.bind(n);n._touchEndHdl=n._touchEnd.bind(n);n._keydownHdl=n._keydown.bind(n);n._isContextMenuKeyDown=!1;n._isClicking=!1;n._definedNames=new ObservableArray;n._builtInTableStylesCache=null;n._needCopyToSheet=!0;n._isSorting=!1;n._fillingData=!1;n._endDragFillOperationHdl=n._endDragFillOperation.bind(n);n._enableDragDrop=!0;n._enableFormulas=!0;n._headerRowRemoved=!1;n._clearCalcCacheOnRefresh=!0;n._copyingTo=!1;n._ignoreBindGrid=!1;n.selectedSheetChanged=new Event;n.draggingRowColumn=new Event;n.droppingRowColumn=new Event;n.beginDroppingRowColumn=new Event;n.endDroppingRowColumn=new Event;n.loaded=new Event;n.unknownFunction=new Event;n.sheetCleared=new Event;n.prepareChangingRow=new Event;n.prepareChangingColumn=new Event;n.rowChanged=new Event;n.columnChanged=new Event;n.autoFilling=new Event;n.autoFilled=new Event;o&&null!=o.allowAutoFill||(n._allowAutoFill=!0);n._needCopyToSheet=!1;n._colorThemes=[\"FFFFFF\",\"000000\",\"EEECE1\",\"1F497D\",\"4F818D\",\"C0504D\",\"9BBB59\",\"8064A2\",\"4BACC6\",\"F79646\"];n._eCt.style.backgroundColor=\"white\";addClass(n.hostElement,\"wj-flexsheet\");setCss(n.hostElement,{fontFamily:\"Arial\"});n._cf=new _FlexSheetCellFactory;n._bndSortConverter=n._sheetSortConverter.bind(n);n._selHdl=new _FlexSheetSelectionHandler(n);n.quickAutoSize=!1;n._init();n.showSort=!1;n.allowSorting=AllowSorting.None;n.showGroups=!1;n.showMarquee=!0;n.showSelectedHeaders=HeadersVisibility.All;n.allowResizing=AllowResizing.Both;n.allowDragging=AllowDragging.None;n.keyActionTab=KeyAction.CycleOut;n._needCopyToSheet=!0;return n}FlexSheet.prototype._getProductInfo=function(){return\"R20I,FlexSheet\"};Object.defineProperty(FlexSheet.prototype,\"sheets\",{get:function(){this._sheets||(this._sheets=new SheetCollection);return this._sheets},enumerable:!0,configurable:!0});Object.defineProperty(FlexSheet.prototype,\"selectedSheetIndex\",{get:function(){return this._selectedSheetIndex},set:function(e){if(e!==this._selectedSheetIndex){this._showSheet(e);this._sheets.selectedIndex=e}},enumerable:!0,configurable:!0});Object.defineProperty(FlexSheet.prototype,\"selectedSheet\",{get:function(){return this._selectedSheetIndex>=0?this._sheets[this._selectedSheetIndex]:null},enumerable:!0,configurable:!0});Object.defineProperty(FlexSheet.prototype,\"isFunctionListOpen\",{get:function(){return this._functionListHost&&\"none\"!==this._functionListHost.style.display},enumerable:!0,configurable:!0});Object.defineProperty(FlexSheet.prototype,\"isTabHolderVisible\",{get:function(){return this._tabHolder.visible},set:function(e){if(e!==this._tabHolder.visible){this._updateDivContainerHeight(e);e?this._eFocus.removeAttribute(\"tabindex\"):this._eFocus.tabIndex=this._orgTabIndex;this._tabHolder.visible=e;this.invalidate()}},enumerable:!0,configurable:!0});Object.defineProperty(FlexSheet.prototype,\"undoStack\",{get:function(){return this._undoStack},enumerable:!0,configurable:!0});Object.defineProperty(FlexSheet.prototype,\"sortManager\",{get:function(){return this._sortManager},enumerable:!0,configurable:!0});Object.defineProperty(FlexSheet.prototype,\"filter\",{get:function(){return this._filter},enumerable:!0,configurable:!0});Object.defineProperty(FlexSheet.prototype,\"showFilterIcons\",{get:function(){return!!this._filter&&this._filter.showFilterIcons},set:function(e){this._filter&&this._filter.showFilterIcons!==e&&(this._filter.showFilterIcons=e)},enumerable:!0,configurable:!0});Object.defineProperty(FlexSheet.prototype,\"definedNames\",{get:function(){return this._definedNames},enumerable:!0,configurable:!0});Object.defineProperty(FlexSheet.prototype,\"enableDragDrop\",{get:function(){return this._enableDragDrop},set:function(e){this._enableDragDrop=e},enumerable:!0,configurable:!0});Object.defineProperty(FlexSheet.prototype,\"enableFormulas\",{get:function(){return this._enableFormulas},set:function(e){if(this._enableFormulas!==e){this._enableFormulas=e;this.refresh()}},enumerable:!0,configurable:!0});Object.defineProperty(FlexSheet.prototype,\"allowAutoFill\",{get:function(){return this._allowAutoFill},set:function(e){this._allowAutoFill=asBoolean(e)},enumerable:!0,configurable:!0});Object.defineProperty(FlexSheet.prototype,\"_lastSelMovePos\",{get:function(){return this._lsmPos},set:function(e){this._lsmPos=e?e.clone():null},enumerable:!0,configurable:!0});FlexSheet.prototype.onSelectedSheetChanged=function(e){this.selectedSheetChanged.raise(this,e)};FlexSheet.prototype.onDraggingRowColumn=function(e){this.draggingRowColumn.raise(this,e)};FlexSheet.prototype.onDroppingRowColumn=function(e){_deprecated(\"droppingRowColumn\",\"beginDroppingRowColumn and endDroppingRowColumn\");this.droppingRowColumn.raise(this,new EventArgs)};FlexSheet.prototype.onBeginDroppingRowColumn=function(e){this.beginDroppingRowColumn.raise(this,e)};FlexSheet.prototype.onEndDroppingRowColumn=function(e){this.endDroppingRowColumn.raise(this,e)};FlexSheet.prototype.onLoaded=function(e){var t=this;if(this._toRefresh){clearTimeout(this._toRefresh);this._toRefresh=null}this._toRefresh=setTimeout((function(){t._setFlexSheetToDirty();t.invalidate()}),10);this.loaded.raise(this,new EventArgs)};FlexSheet.prototype.onUnknownFunction=function(e){this.unknownFunction.raise(this,e)};FlexSheet.prototype.onSheetCleared=function(e){this.sheetCleared.raise(this,e)};FlexSheet.prototype.onPrepareChangingRow=function(e){this.prepareChangingRow.raise(this,e)};FlexSheet.prototype.onPrepareChangingColumn=function(e){this.prepareChangingColumn.raise(this,e)};FlexSheet.prototype.onRowChanged=function(e){this.rowChanged.raise(this,e)};FlexSheet.prototype.onColumnChanged=function(e){this.columnChanged.raise(this,e)};FlexSheet.prototype.onAutoFilling=function(e){this.autoFilling.raise(this,e)};FlexSheet.prototype.onAutoFilled=function(e){this.autoFilled.raise(this,e)};FlexSheet.prototype.refresh=function(t){void 0===t&&(t=!0);var o,n,i;this.hostElement&&this._updateDivContainerHeight(this.isTabHolderVisible);if(!this.preserveSelectedState&&this.selectedSheet){this.selectedSheet.selectionRanges.clear();this.selectedSheet.selectionRanges.push(this.selection)}if(t){this._clearCalcCacheOnRefresh&&this._clearCalcEngine();this._clearCalcCacheOnRefresh=!0}this._lastVisibleFrozenRow=-1;if(this.frozenRows>0)for(var l=this.frozenRows-1;l>=0;l--)if(this.rows[l]&&this.rows[l].isVisible){this._lastVisibleFrozenRow=l;break}this._lastVisibleFrozenColumn=-1;if(this.frozenColumns>0)for(var r=this.frozenColumns-1;r>=0;r--)if(this.columns[r]&&this.columns[r].isVisible){this._lastVisibleFrozenColumn=r;break}if(this.selectedSheet){if(this.selectedSheet._freezeHiddenRows&&this.selectedSheet._freezeHiddenRows.length>0)for(o=0;o0)for(i=0;i0,h=t||[this.selection];if(this.selectedSheet)if(e||!this._cloneStyle){if(h){if(t||o)o&&!this._cloneStyle&&(this._cloneStyle=this._cloneObject(this.selectedSheet._styledCells));else{this.undoStack.stackSize>0&&(s=new _CellStyleAction(this,this._cloneStyle));this._cloneStyle=null}for(r=0;r0?r.selection.leftCol:0;n=r.selection.topRow>0?r.selection.topRow:0}else{for(e=0;e0?this.selection.col:0;this.columns.length>0&&this._filter.editColumnFilter(this.columns[e])};FlexSheet.prototype.clear=function(){this.beginUpdate();this.selection=new CellRange;this.sheets.clear();this._selectedSheetIndex=-1;this.columns.clear();this.rows.clear();this.columnHeaders.columns.clear();this.rowHeaders.rows.clear();this._undoStack.clear();this._ptScrl=new Point;this._clearCalcEngine();this._definedNames.clear();this._builtInTableStylesCache=null;this._copiedRanges=null;this._copiedSheet=null;this._isCutting=!1;this._cutValue=null;this._reservedContent=null;this._lastVisibleFrozenRow=-1;this._lastVisibleFrozenColumn=-1;this.addUnboundSheet();this.endUpdate()};FlexSheet.prototype.getSelectionFormatState=function(){var e,t,o=this.rows.length,n=this.columns.length,i={isBold:!1,isItalic:!1,isUnderline:!1,textAlign:\"left\",isMergedCell:!1};if(0===o||0===n)return i;if(this.selection){if(this.selection.row>=o||this.selection.row2>=o||this.selection.col>=n||this.selection.col2>=n)return i;for(e=this.selection.topRow;e<=this.selection.bottomRow;e++)for(t=this.selection.leftCol;t<=this.selection.rightCol;t++)this._checkCellFormat(e,t,i)}return i};FlexSheet.prototype.insertRows=function(e,t){var o,n,i,l,r,s,a,h,u,c=this,d=isNumber(e)&&e>=0?e:c.selection&&c.selection.topRow>-1?c.selection.topRow:0,_=isNumber(t)?t:1,g=c.rows[d],f=!1;if(c.selectedSheet){c.rows.length>0?d>=c.rows.length&&(d=c.rows.length-1):d=0;c._clearCalcEngine();c.finishEditing();0===d&&g&&g.constructor===HeaderRow&&(d=1);c.onPrepareChangingRow(new RowColumnChangedEventArgs(d,_,!0,!1));c.undoStack.stackSize>0&&(o=new _RowsChangedAction(c,d,_,!0));c._updateCellsForUpdatingRow(c.rows.length,d,_);if(!c.collectionView||0===c.collectionView.sortDescriptions.length){n=c._updateAffectedFormula(d,_,!0,!0);i=c._updateAffectedNamedRanges(d,_,!0,!0)}if(o){o._affectedFormulas=n;o._affectedDefinedNameVals=i}var p=null==this.selectedSheet.grid.collectionView;if(c.collectionView){c.selectedSheet._dataView=c.collectionView._view.slice();f=!0;r=c.itemsSource instanceof CollectionView;h=c.autoGenerateColumns;c.autoGenerateColumns=!1;c.collectionView.beginUpdate();if(!r){u=c.selectedSheet.grid.autoGenerateColumns;c.selectedSheet.grid.autoGenerateColumns=!1;p||c.selectedSheet.grid.collectionView.beginUpdate()}for(l=0;l<_;l++){a=Math.max(d-(c.allowAddNew&&c.newRowAtTop?2:1),0);if(r){s=c.itemsSource.newItemCreator?c.itemsSource.newItemCreator():{};c.itemsSource.sourceCollection.splice(a,0,s)}else{s={};c.itemsSource.splice(a,0,s);c.itemsSource!==c.selectedSheet.grid.itemsSource&&c.selectedSheet.grid.itemsSource&&c.selectedSheet.grid.itemsSource.splice(a,0,s)}c.selectedSheet._dataView.splice(a,0,s)}c._updateItemIndexForInsertingRow(c.collectionView.sourceCollection,a,_);if(!r){p||c.selectedSheet.grid.collectionView.endUpdate(!0);c.selectedSheet.grid.autoGenerateColumns=u}c.collectionView.endUpdate(!0);if(c.collectionView.sortDescriptions.length>0){c.collectionView._view=c.selectedSheet._dataView;c.collectionView._pgView=c.collectionView._getPageView();if(!r&&!p){c.selectedSheet.grid.collectionView._view=c.selectedSheet._dataView;c.selectedSheet.grid.collectionView._pgView=c.selectedSheet.grid.collectionView._getPageView()}c._bindGrid(!1);c.selectedSheet.grid._bindGrid(!1)}setTimeout((function(){c._filter.apply()}));c.autoGenerateColumns=h}else{c.rows.beginUpdate();for(l=0;l<_;l++)c.rows.insert(d,new Row);c.rows.endUpdate()}c._updateTablesForUpdatingRow(d,_);c.selection&&-1!==c.selection.row&&-1!==c.selection.col||(c.selection=new CellRange(0,0));if(o){o.saveNewState();c._undoStack._addAction(o)}c.onRowChanged(new RowColumnChangedEventArgs(d,_,!0,!1));f&&c.refresh()}};FlexSheet.prototype.deleteRows=function(e,t){if(this.selectedSheet&&!(this.rows.length<1)){var o=e,n=isArray(e);if(!n)if(isNumber(e)){if((t=isNumber(t)?t:1)<1)return;o=[new CellRange(e,-1,e+t-1,-1)]}else n=(o=this._selections()).length>1;if((o=_RangesHelper.validateRowRanges(o,this.rows.length)).length){var i=0;o.forEach((function(e){e.col=e.col2=-1;i+=e.rowSpan}));this._clearCalcEngine();this.finishEditing();var l,r,s,a=this.selection.topRow,h=n?new RowColumnChangedEventArgs(o,!1,!1):new RowColumnChangedEventArgs(o[0].topRow,o[0].rowSpan,!1,!1);this.onPrepareChangingRow(h);this.undoStack.stackSize>0&&(s=new _RowsChangedAction(this,null,null,!1));var u=i===this.rows.length,c=!!this.collectionView,d=c&&this.itemsSource instanceof CollectionView,_=null==this.selectedSheet.grid.collectionView;this.rows.beginUpdate();if(c){this.selectedSheet._dataView=this.collectionView._view.slice();l=this.autoGenerateColumns;this.autoGenerateColumns=!1;this.collectionView.beginUpdate();if(!d){r=this.selectedSheet.grid.autoGenerateColumns;this.selectedSheet.grid.autoGenerateColumns=!1;_||this.selectedSheet.grid.collectionView.beginUpdate()}}for(var g=o.length-1;g>=0;g--){var f=o[g],p=void 0;if(s){(p=new _RowsChangedAction(this,f.topRow,f.rowSpan,!1))._affectedFormulas=this._updateAffectedFormula(f.bottomRow,f.rowSpan,!1,!0);p._affectedDefinedNameVals=this._updateAffectedNamedRanges(f.bottomRow,f.rowSpan,!1,!0);p._deletedTables=this._updateTablesForUpdatingRow(f.topRow,f.rowSpan,!0);s.addDeleteSubAction(p)}this._updateCellsForUpdatingRow(this.rows.length,f.topRow,f.rowSpan,!0);for(var w=f.bottomRow;w>=f.topRow;w--){var m=this.rows[w];if(!m||(m.constructor!==HeaderRow||u)&&m.isVisible)if(m.dataItem&&this.collectionView){var C=this._getCvIndex(w);if(C>-1){var S=this.collectionView.items[C],b=void 0;if(d){b=this.itemsSource.sourceCollection.indexOf(S);this.itemsSource.sourceCollection.splice(b,1)}else{b=this.itemsSource.indexOf(S);this.itemsSource.splice(b,1);this.itemsSource!==this.selectedSheet.grid.itemsSource&&this.selectedSheet.grid.itemsSource&&this.selectedSheet.grid.itemsSource.splice(b,1)}this.selectedSheet._dataView.splice(this.selectedSheet._dataView.indexOf(S),1);this._updateItemIndexForRemovingRow(this.collectionView.sourceCollection,b)}}else this.rows.removeAt(w)}p&&p.saveNewState()}if(c){if(!d){_||this.selectedSheet.grid.collectionView.endUpdate(!0);this.selectedSheet.grid.autoGenerateColumns=r}this.collectionView.endUpdate(!0);if(this.collectionView.sortDescriptions.length>0){this.collectionView._view=this.selectedSheet._dataView;this.collectionView._pgView=this.collectionView._getPageView();if(!d&&!_){this.selectedSheet.grid.collectionView._view=this.selectedSheet._dataView;this.selectedSheet.grid.collectionView._pgView=this.selectedSheet.grid.collectionView._getPageView()}this._bindGrid(!1);this.selectedSheet.grid._bindGrid(!1)}this.autoGenerateColumns=l}this.rows.endUpdate();this.selectedSheet.selectionRanges.clear();var y=this.rows.length;if(0===y){this.select(new CellRange);\"move\"===this.hostElement.style.cursor&&(this.hostElement.style.cursor=\"default\")}else if(this.selection.topRow>=y)this.select(new CellRange(y-1,0,y-1,this.columns.length-1));else{var R=a-i+1;R=Math.max(R,o[0].topRow);R=Math.min(R,this.selection.topRow);this.select(new CellRange(R,this.selection.col,R,this.selection.col2))}s&&this._undoStack._addAction(s);this.onRowChanged(h);c&&this.refresh()}}};FlexSheet.prototype.insertColumns=function(e,t){var o,n,i,l,r,s,a=isNumber(e)&&e>=0?e:this.selection&&this.selection.leftCol>-1?this.selection.leftCol:0,h=isNumber(t)?t:1;if(this.selectedSheet){this.columns.length>0?a>=this.columns.length&&(a=this.columns.length-1):a=0;this._clearCalcEngine();this.finishEditing();this.onPrepareChangingColumn(new RowColumnChangedEventArgs(a,h,!0,!0));this.undoStack.stackSize>0&&(o=new _ColumnsChangedAction(this,a,h,!0));this._updateCellsForUpdatingColumn(this.columns.length,a,h);r=this._updateAffectedFormula(a,h,!0,!1);s=this._updateAffectedNamedRanges(a,h,!0,!1);if(o){o._affectedFormulas=r;o._affectedDefinedNameVals=s}this.columns.beginUpdate();for(i=0;i1;if((o=_RangesHelper.validateColumnRanges(o,this.columns.length)).length){var i=this.selection.leftCol,l=0;o.forEach((function(e){l+=e.columnSpan;e.row=e.row2=-1}));this._clearCalcEngine();this.finishEditing();var r,s=n?new RowColumnChangedEventArgs(o,!1,!0):new RowColumnChangedEventArgs(o[0].leftCol,o[0].columnSpan,!1,!0);this.onPrepareChangingColumn(s);this.undoStack.stackSize>0&&(r=new _ColumnsChangedAction(this,null,null,!1));this.columns.beginUpdate();for(var a=o.length-1;a>=0;a--){var h=o[a],u=void 0;if(r){(u=new _ColumnsChangedAction(this,h.leftCol,h.columnSpan,!1))._affectedFormulas=this._updateAffectedFormula(h.rightCol,h.columnSpan,!1,!1);u._affectedDefinedNameVals=this._updateAffectedNamedRanges(h.rightCol,h.columnSpan,!1,!1);u._deletedTables=this._updateTablesForUpdatingColumn(h.leftCol,h.columnSpan,!0);r._delSubActions.push(u)}this._updateCellsForUpdatingColumn(this.columns.length,h.leftCol,h.columnSpan,!0);for(var c=h.rightCol;c>=h.leftCol;c--)if(this.columns[c].isVisible){this.columns.removeAt(c);this._sortManager.deleteSortLevel(c)}this._sortManager._updateSortSortDescription(h.leftCol,h.columnSpan,!1)}this.columns.endUpdate();this.selectedSheet._filterDefinition=this._filter.filterDefinition;this.selectedSheet.grid.columns._dirty=!1;this._sortManager.commitSort(!1);this.selectedSheet.selectionRanges.clear();var d=this.columns.length;if(0===d){this.select(new CellRange);\"move\"===this.hostElement.style.cursor&&(this.hostElement.style.cursor=\"default\")}else if(this.selection.leftCol>=d)this.select(new CellRange(0,d-1,this.rows.length-1,d-1));else{var _=i-l+1;_=Math.max(_,o[0].leftCol);_=Math.min(_,this.selection.leftCol);this.select(new CellRange(this.selection.row,_,this.selection.row2,_))}if(r){this._undoStack._addAction(r);r._delSubActions.forEach((function(e){return e.saveNewState()}))}this.onColumnChanged(s)}}};FlexSheet.prototype.mergeRange=function(e,t){void 0===t&&(t=!1);var o,n,i,l,r,s=e||this.selection,a=-1,h=-1;if(this.selectedSheet){if(s){if(1===s.rowSpan&&1===s.columnSpan)return;for(o=s.topRow;o<=s.bottomRow;o++)for(n=s.leftCol;n<=s.rightCol;n++)if(this.selectedSheet.findTable(o,n))return;if(!e&&!t){this.undoStack.stackSize>0&&(r=new _CellMergeAction(this));this.hostElement.focus()}if(!this._resetMergedRange(s)){for(o=s.topRow;o<=s.bottomRow;o++)if((i=this.rows[o])&&i.isVisible){a=o;break}for(n=s.leftCol;n<=s.rightCol;n++)if((l=this.columns[n])&&l.isVisible){h=n;break}a>-1&&h>-1&&this.selectedSheet._mergedRanges.push(new CellRange(a,h,s.bottomRow,s.rightCol))}if(r){r.saveNewState();this._undoStack._addAction(r)}}e||this.refresh()}};FlexSheet.prototype.getMergedRange=function(t,o,n,i){void 0===i&&(i=!0);var l,r,s,a,h=this.selectedSheet?this.selectedSheet._getMergedRange(o,n):null;if(t===this.cells&&h){if(!h.isSingleCell&&(this.frozenRows>0||this.frozenColumns>0)&&(h.topRow=this.frozenRows||h.leftCol=this.frozenColumns)){l=h.topRow;r=h.bottomRow;s=h.leftCol;a=h.rightCol;o>=this.frozenRows&&h.topRow=this.frozenRows&&(r=this.frozenRows-1);r>=this.rows.length&&(r=this.rows.length-1);n>=this.frozenColumns&&h.leftCol=this.frozenColumns&&(a=this.frozenColumns-1);a>=this.columns.length&&(a=this.columns.length-1);return new CellRange(l,s,r,a)}return h.bottomRow>=this.rows.length?new CellRange(h.topRow,h.leftCol,this.rows.length-1,h.rightCol):h.rightCol>=this.columns.length?new CellRange(h.topRow,h.leftCol,h.bottomRow,this.columns.length-1):h.clone()}return n>=0&&this.columns&&this.columns.length>n&&o>=0&&this.rows&&this.rows.length>o?e.prototype.getMergedRange.call(this,t,o,n,i):null};FlexSheet.prototype.evaluate=function(e,t,o,n){void 0===n&&(n=!0);var i=this._evaluate(e,t,o);return n&&null!=i&&!isPrimitive(i)?i instanceof FormulaError?i.error:i.value:i};FlexSheet.prototype.getCellValue=function(e,t,o,n){void 0===o&&(o=!1);var i,l,r=n&&n!==this.selectedSheet?n.grid.columns[t]:this.columns[t],s=this._getCellStyle(e,t,n);i=s&&s.format?s.format:\"\";l=n&&n!==this.selectedSheet?n.grid.getCellData(e,t,!1):this.getCellData(e,t,!1);if(isString(l)){var a=_FormulaErrorHelper.asError(l);if(a)return a;if(_isFormula(l)&&(l=this._evaluate(l,o?i:\"\",n,e,t))instanceof FormulaError)return l}if(o){i||null==l||isPrimitive(l)||(i=l.format);l=this._formatEvaluatedResult(l,r,i)}else null==l||isPrimitive(l)||(l=l.value);return null==l?\"\":l};FlexSheet.prototype.showFunctionList=function(e){var t,o,n=this,i=n._cumulativeOffset(e),l=n._cumulativeOffset(n._root);if(n._enableFormulas){n._functionTarget=tryCast(e,HTMLInputElement);if(n._functionTarget&&n._functionTarget.value&&\"=\"===n._functionTarget.value[0]){n._functionList._cv.filter=function(e){var t,o=e.actualvalue.toLowerCase(),i=n._getCurrentFormulaIndex(n._functionTarget.value);-1===i&&(i=0);return(t=n._functionTarget.value.substr(i+1).trim().toLowerCase()).length>0&&0===o.indexOf(t)||\"=\"===n._functionTarget.value};n._functionList.selectedIndex=0;t=i.y+e.clientHeight+2+(hasClass(e,\"wj-grid-editor\")?this._ptScrl.y:0);o=i.x+(hasClass(e,\"wj-grid-editor\")?this._ptScrl.x:0);setCss(n._functionListHost,{height:n._functionList._cv.items.length>5?\"218px\":\"auto\",display:n._functionList._cv.items.length>0?\"block\":\"none\",top:\"\",left:\"\"});n._functionListHost.scrollTop=0;n._functionListHost.offsetHeight+t>l.y+n._root.offsetHeight?t=t-e.clientHeight-n._functionListHost.offsetHeight-5:t+=5;n._functionListHost.offsetWidth+o>l.x+n._root.offsetWidth&&(o=l.x+n._root.offsetWidth-n._functionListHost.offsetWidth);setCss(n._functionListHost,{top:t,left:o})}else n.hideFunctionList()}};FlexSheet.prototype.hideFunctionList=function(){this._functionListHost.style.display=\"none\"};FlexSheet.prototype.selectPreviousFunction=function(){this._functionList.selectedIndex>0&&this._functionList.selectedIndex--};FlexSheet.prototype.selectNextFunction=function(){this._functionList.selectedIndex1){if(this._isMultipleRowsSelected()){a=\"\";(o=this._selections()).sort(this._sortByRow);for(i=0;i-1&&(s='\"'+s.replace(/\"/g,'\"\"')+'\"');a+=s}}return a};FlexSheet.prototype.setClipString=function(t,o){var n,i,l,r,s,a,h,u,c,d,_,g,f,p,w,m,C,S,b,y,R,v,x,T=null==o,E=!1,F=this.editableCollectionView;if(this.selectedSheet){o=o?asType(o,CellRange):this.selection;v=t=asString(t).replace(/\\r\\n/g,\"\\n\").replace(/\\r/g,\"\\n\");u=this._edtHdl._parseClipString(asString(t));T&&!o.isSingleCell&&u.length&&this._edtHdl._expandClipRows(u,o);b=this._containsMultiLineText(u);if(this._copiedRanges&&0!==this._copiedRanges.length&&(v.trim()===this._getRangeString(this._copiedRanges,this._copiedSheet).trim()||this._containsRandFormula(this._copiedRanges,this._copiedSheet))&&!this._cutValue||b){if(this._copiedRanges){var A=this._getRangeString(this._copiedRanges,this._copiedSheet,!1)+\"\\r\\n\";A=asString(A).replace(/\\r\\n/g,\"\\n\").replace(/\\r/g,\"\\n\");u=this._edtHdl._parseClipString(asString(A));T&&!o.isSingleCell&&u.length&&this._edtHdl._expandClipRows(u,o)}(r=o.topRow+u.length-1)>=this.rows.length&&(r=this.rows.length-1);(s=o.leftCol+u[0].length-1)>=this.columns.length&&(s=this.columns.length-1);n=new CellRange(o.topRow,o.leftCol,r,s);if(!this.onPasting(new CellRangeEventArgs(this.cells,n))){this._cutValue=null;this._copiedRanges=null;this._copiedSheet=null;return!1}this.beginUpdate();if(b||!this._copiedRanges||this._copiedRanges.length>1||0===this._copiedRanges.length){i=o.topRow;a=(S=this._copiedRanges&&this._copiedRanges.length>1?this._copiedRanges[0]:new CellRange).topRow;for(_=0;_=0&&h++}else g--;a>=0&&a++}else _--}else if(this._copiedRanges&&1===this._copiedRanges.length){y=0;S=this.selectionMode===SelectionMode.ListBox?this._getSelectionForListBoxMode(this._copiedSheet.grid):this._copiedRanges[0];i=o.topRow;for(_=0;_=S.rowSpan&&(y%=S.rowSpan);if(!this._copiedSheet.grid.rows[S.topRow+y])break;f=i-S.topRow-y;c=u[_];l=o.leftCol;for(g=0;g=S.columnSpan&&(R%=S.columnSpan);if(!this._copiedSheet.grid.columns[S.leftCol+R])break;p=l-S.leftCol-R;if(!this.columns[l].isReadOnly&&!this.rows[i].isReadOnly){d=c[g];x=this._getCellStyle(S.topRow+y,S.leftCol+R,this._copiedSheet);if(_isFormula(d)&&(0!==f||0!==p))try{w=this._calcEngine._parse(d);m=new CellRange(S.topRow+y,S.leftCol+R);C=new CellRange(S.topRow+y+f,S.leftCol+R+p);w._moveCellRangeExp(this.selectedSheetIndex,m,C,!1,!0)&&(d=\"=\"+w._getStringExpression())}catch(e){}this._copiedSheet.grid.columns[S.leftCol+R].format&&!this.columns[l].format&&(x?x.format||(x.format=this._copiedSheet.grid.columns[S.leftCol+R].format):x={format:this._copiedSheet.grid.columns[S.leftCol+R].format});E=this._postSetClipStringProcess(d,i,l,S.topRow+y,S.leftCol+R,F,x);n.row2=Math.max(n.row2,i);n.col2=Math.max(n.col2,l)}R++}else g--;y++}else _--}}if(this._isCutting){this._delCutData(u.length,u[0].length);this._isCutting=!1;this._cutValue=v;this._copiedRanges=null;this._copiedSheet=null}this.endUpdate();if(this.collectionView&&E){F&&F.commitEdit();this.collectionView.refresh()}this.select(n);this.onPasted(new CellRangeEventArgs(this.cells,n))}else{if(v!==this._cutValue){this._cutValue=null;e.prototype.setClipString.call(this,t)}this._copiedRanges=null;this._copiedSheet=null}}else e.prototype.setClipString.call(this,t,o)};FlexSheet.prototype.getBuiltInTableStyle=function(e){var t;null==this._builtInTableStylesCache&&(this._builtInTableStylesCache={});if(null==(t=this._builtInTableStylesCache[e.toLowerCase()])){t=this._createBuiltInTableStyle(e);Object.freeze(t);this._builtInTableStylesCache[e.toLowerCase()]=t}return t};FlexSheet.prototype._getCvIndex=function(t){return t>-1&&this.collectionView?this.rows[t]instanceof HeaderRow?t:e.prototype._getCvIndex.call(this,t):-1};FlexSheet.prototype._bindGrid=function(t){if(!this._ignoreBindGrid)if(this.itemsSource)e.prototype._bindGrid.call(this,t);else{var o=this._selHdl.selection;o.row=o.row2=-1}};FlexSheet.prototype._init=function(){var e=this,t=this,o=window.navigator.userAgent,mouseUp=function(e){document.removeEventListener(\"mouseup\",mouseUp);t._mouseUp(e)};t.hostElement.setAttribute(\"tabindex\",\"-1\");t._divContainer=t.hostElement.querySelector('[wj-part=\"container\"]');t._tabHolder=new _TabHolder(t.hostElement.querySelector('[wj-part=\"tab-holder\"]'),t);this._sheets.selectedSheetChanged.addHandler(this._selectedSheetChange,this);this._sheets.collectionChanged.addHandler(this._sourceChange,this);this._sheets.sheetVisibleChanged.addHandler(this._sheetVisibleChange,this);this._sheets.sheetCleared.addHandler(this.onSheetCleared,this);t._contextMenu=new _SheetContextMenu(t.hostElement.querySelector('[wj-part=\"context-menu\"]'),t);t._tabHolder.addEventListener(t._tabHolder.hostElement,\"mousedown\",(function(){o.match(/iPad/i)||o.match(/iPhone/i)||t._hideContextMenu()}));t._gpCells=new FlexSheetPanel(t,CellType.Cell,t.rows,t.columns,t._eCt);t._gpCHdr=new FlexSheetPanel(t,CellType.ColumnHeader,t._hdrRows,t.columns,t._eCHdrCt);t._gpRHdr=new FlexSheetPanel(t,CellType.RowHeader,t.rows,t._hdrCols,t._eRHdrCt);t._gpTL=new FlexSheetPanel(t,CellType.TopLeft,t._hdrRows,t._hdrCols,t._eTLCt);t._syncSelection=t._flexSheetSyncSelection.bind(t);t._sortManager=new SortManager(t);t._filter=new FlexSheetFilter(t);t._filter.filterApplied.addHandler((function(){if(t.selectedSheet){t.selectedSheet._filterDefinition=t._filter.filterDefinition;if(t.selectedSheet.itemsSource){t.selectedSheet._storeRowSettings();t.selectedSheet._setRowSettings()}}}));t._calcEngine=new _CalcEngine(t);t._calcEngine.unknownFunction.addHandler((function(e,o){t.onUnknownFunction(o)}),t);t._initFuncsList();t._undoStack=new UndoStack(t);t.loadedRows.addHandler((function(){if(t.collectionView&&!(t.rows[0]instanceof HeaderRow)&&!t._headerRowRemoved){var e,o=new HeaderRow;o.isReadOnly=!0;for(var n=0;n1)if(t._isMultipleRowsSelected()){(n=t.selectedSheet.selectionRanges.slice(0)).sort(t._sortByRow);t._copiedRanges=n}else if(t._isMultipleColumnsSelected()){(n=t.selectedSheet.selectionRanges.slice(0)).sort(t._sortByColumn);t._copiedRanges=n}else assert(!1,\"Copy operation cannot be used on multiple selections.\");else t._copiedRanges=[o.range]}}));t.rows.collectionChanged.addHandler((function(e,o){t._clearForEmptySheet(\"rows\");t.itemsSource||!t.selectedSheet||!t._needCopyToSheet||t._isCopying||t._isUndoing||o.item instanceof _NewRowTemplate||t._copyRowsToSelectedSheet();t.itemsSource&&t.selectedSheet&&o.action===NotifyCollectionChangedAction.Remove&&o.item instanceof HeaderRow&&(t._headerRowRemoved=!0)}),t);t.columns.collectionChanged.addHandler((function(e,o){t._clearForEmptySheet(\"columns\");t.selectedSheet&&t._needCopyToSheet&&!t._isCopying&&!t._isUndoing&&t._copyColumnsToSelectedSheet()}),t);t.definedNames.collectionChanged.addHandler((function(e,o){if(o.action===NotifyCollectionChangedAction.Add||o.action===NotifyCollectionChangedAction.Change){var n=o.action===NotifyCollectionChangedAction.Add?\"inserted\":\"updated\";if(!(o.item instanceof DefinedName)){t.definedNames.remove(o.item);throw\"Invalid defined name item object was \"+n+\". The DefinedName instance should be \"+n+\" in the definedNames array.\"}if(!o.item||!o.item.name||null==o.item.value){t.definedNames.remove(o.item);throw\"Invalid defined name was \"+n+\".\"}if(null!=o.item.sheetName&&!t._validateSheetName(o.item.sheetName)){t.definedNames.remove(o.item);throw\"The sheet name (\"+o.item.sheetName+\") does not exist in FlexSheet.\"}if(t._checkExistDefinedName(o.item.name,o.item.sheetName,o.index)){t.definedNames.remove(o.item);throw\"The \"+o.item.name+\" already existed in definedNames.\"}}}));t.addEventListener(t.hostElement,\"mousedown\",(function(e){document.addEventListener(\"mouseup\",mouseUp);t._isDescendant(t._divContainer,e.target)&&t._mouseDown(e)}),!0);t.addEventListener(t.hostElement,\"dragend\",(function(){t._columnHeaderClicked=!1;t._htDown=null}));t.addEventListener(t.hostElement,\"contextmenu\",(function(e){if(!e.defaultPrevented&&t.selectedSheet){if(!t.activeEditor){var o=void 0,n=void 0;if(t._isContextMenuKeyDown&&t.selection.row>-1&&t.selection.col>-1&&t.rows.length>0&&t.columns.length>0){var i=t.columns[t.selection.col],l=t.rows[t.selection.row],r=t._cumulativeOffset(t.hostElement),s=t._cumulativeScrollOffset(t.hostElement),a=i.pos+t._eCt.offsetLeft+r.x+i.renderSize/2+t._ptScrl.x,h=l.pos+t._eCt.offsetTop+r.y+l.renderSize/2+t._ptScrl.y;n=new Point(a-s.x,h-s.y);o=t.hitTest(a,h)}else o=t.hitTest(e);e.preventDefault();if(o&&o.cellType!==CellType.None){var u=t.columns.length-1,c=t.rows.length-1,d=void 0;switch(o.cellType){case CellType.TopLeft:d=new CellRange(Math.min(0,c),Math.min(0,u),c,u);break;case CellType.RowHeader:d=new CellRange(o.row,Math.min(0,u),o.row,u);break;case CellType.ColumnHeader:d=new CellRange(t.itemsSource&&t.rows[0]&&!t.rows[0].isVisible?1:Math.min(0,c),o.col,c,o.col);break;case CellType.Cell:d=new CellRange(o.row,o.col)}(t.selection.contains(d)||o.cellType==CellType.Cell&&t._isCellSelected(o.row,o.col))&&(d=null);if(d){if(t.selectedSheet){t.selectedSheet.selectionRanges.clear();t.selectedSheet.selectionRanges.push(d)}t.selection=d}t._contextMenu.show(e,n)}}t._isContextMenuKeyDown=!1}}));t.prepareCellForEdit.addHandler(t._prepareCellForEditHandler,t);t.cellEditEnded.addHandler((function(e,o){(!o.data||46!==o.data.keyCode&&8!==o.data.keyCode)&&setTimeout((function(){t.hideFunctionList()}),200)}));t.cellEditEnding.addHandler((function(o,n){if(!n.cancel&&(!n.data||46!==n.data.keyCode&&8!==n.data.keyCode)){var i,l,r;i=t.getCellData(n.row,n.col,!1);l=t.cellFactory.getEditorValue(t);if((null==i||\"\"===i)&&null!=l&&\"\"!==l&&!isNaN(+l)){r=t._updateFormulaBoundaryForEditingCell(n.row,n.col);t._undoStack._pendingAction&&t._undoStack._pendingAction instanceof _EditAction&&(t._undoStack._pendingAction._affectedFormulas=r)}t._clearCalcEngine();e._clearCalcCacheOnRefresh=!1}}));t.rowEditEnding.addHandler((function(e,o){var n=t.collectionView;if(n){t._orgRowVisible=t.rows[o.row].visible;(n.sortDescriptions.length>0||t.selectedSheet._dataView)&&(t.selectedSheet._dataView=n._view.slice());n.sortDescriptions.length>0&&(t.selectedSheet._scrollPosition=t.scrollPosition)}}));t.rowEditEnded.addHandler((function(e,o){var n=t.collectionView;if(n){t.selectedSheet._dataView&&(t.selectedSheet._dataView=n._view.slice());if(n.sortDescriptions.length>0){n._view=t.selectedSheet._dataView;n._pgView=n._getPageView();if(!(t.itemsSource instanceof CollectionView)){t.selectedSheet.grid.collectionView._view=t.selectedSheet._dataView;t.selectedSheet.grid.collectionView._pgView=t.selectedSheet.grid.collectionView._getPageView()}t._bindGrid(!1);t.selectedSheet.grid._bindGrid(!1);t.scrollPosition=t.selectedSheet._scrollPosition}t.rows[o.row]&&(t.rows[o.row].visible=t._orgRowVisible)}}));t.pasting.addHandler((function(){t._needCopyToSheet=!1;t._isPasting=!0}));t.pasted.addHandler((function(){t.selection;t._needCopyToSheet=!0;t._isPasting=!1;t._clearCalcEngine()}));t.resizingColumn.addHandler((function(){t._resizing=!0}));t.resizingRow.addHandler((function(){t._resizing=!0}));t.resizedColumn.addHandler((function(){t._resizing=!1}));t.resizedRow.addHandler((function(){t._resizing=!1}));t.selectionChanged.addHandler((function(){var e=t.selection;e.rightCol>=t.columns.length&&(t.selection=new CellRange(e.row,Math.min(e.col,t.columns.length-1),e.row2,Math.min(t.selection.col2,t.columns.length-1)));t._enableMulSel||t._isCopying||!t.selectedSheet||t.selectedSheet.selectionRanges.clear()}));t.addEventListener(t.hostElement,\"keydown\",(function(e){var o,n,i=!1,l=!1;if(e.ctrlKey){if(89===e.keyCode){t.finishEditing();t.redo();e.preventDefault()}if(90===e.keyCode){t.finishEditing();t.undo();e.preventDefault()}if(t.selectedSheet&&65===e.keyCode){t.selectedSheet.selectionRanges.clear();t.selectedSheet.selectionRanges.push(t.selection)}if(67===e.keyCode||45==e.keyCode){if(t.activeEditor){t._copiedRanges=null;t._copiedSheet=null}t._cutValue=null}if(88===e.keyCode&&!t.activeEditor){e.stopPropagation();if(t.selectionMode===SelectionMode.ListBox)for(var r=0;r1)assert(!1,\"Cut operation cannot be used on multiple selections.\");else{t.finishEditing();o=new CellRangeEventArgs(t.cells,t.selection);if(t.onCopying(o)){t._cutValue=null;n=t.getClipString();t._isCutting=!0;Clipboard.copy(n);t.onCopied(o)}}}e.keyCode!==Key.Space||!t.selection.isValid||t.selectionMode!==SelectionMode.CellRange&&t.selectionMode!==SelectionMode.MultiRange||t.select(new CellRange(0,t.selection.col,t.rows.length-1,t.selection.col))}e.keyCode===Key.Escape&&t._hideContextMenu();(93===e.keyCode||e.shiftKey&&121===e.keyCode)&&(t._contextMenu.visible&&!isFirefox()?t._isContextMenuKeyDown=!1:t._isContextMenuKeyDown=!0)}));t.addEventListener(document.body,\"keydown\",t._keydownHdl,!0);t.addEventListener(document.body,\"click\",t._clickHdl);t.addEventListener(document.body,\"mousemove\",t._mouseMoveHdl);if(o.match(/iPad/i)||o.match(/iPhone/i)){t.addEventListener(document.body,\"touchstart\",t._touchStartHdl);t.addEventListener(document.body,\"touchend\",t._touchEndHdl)}};FlexSheet.prototype._flexSheetSyncSelection=function(e){if(this.collectionView&&this.selectionMode!=SelectionMode.None){var t=this.selection,o=t.row>-1&&t.row'+e.name+'
'+e.description+\"
\",actualvalue:e.name})}return t};FlexSheet.prototype._addCustomFunctionDescription=function(e,t){for(var o={displayValue:'
'+e+\"
\"+(t?'
'+t+\"
\":\"\"),actualvalue:e},n=this._functionList.itemsSource,i=-1,l=0;l-1?n.splice(i,1,o):n.push(o)};FlexSheet.prototype._getCurrentFormulaIndex=function(e){var t=-1;[\"+\",\"-\",\"*\",\"/\",\"^\",\"(\",\"&\"].forEach((function(o){var n=e.lastIndexOf(o);\"/\"===o&&(n>=2&&\"#N\"===e.substr(n-2,2)||n>=4&&\"#DIV\"===e.substr(n-4,4))||n>t&&(t=n)}));return t};FlexSheet.prototype._prepareCellForEditHandler=function(){var e=this,t=e._edtHdl._edt;if(t){e.addEventListener(t,\"keydown\",(function(t){if(e.isFunctionListOpen)switch(t.keyCode){case Key.Up:e.selectPreviousFunction();t.preventDefault();t.stopPropagation();break;case Key.Down:e.selectNextFunction();t.preventDefault();t.stopPropagation();break;case Key.Tab:case Key.Enter:e.applyFunctionToCell();t.preventDefault();t.stopPropagation();break;case Key.Escape:e.hideFunctionList();t.preventDefault();t.stopPropagation()}}));e.addEventListener(t,\"keyup\",(function(o){(o.keyCode>40||o.keyCode<32)&&o.keyCode!==Key.Tab&&o.keyCode!==Key.Escape&&setTimeout((function(){e.showFunctionList(t)}),0)}))}};FlexSheet.prototype._addSheet=function(e,t,o,n,i){var l=this,r=new Sheet(l,i,e,t,o);l.sheets.isValidSheetName(r)||r._setValidName(l.sheets.getValidSheetName(r));r.nameChanged.addHandler((function(e,t){l._updateDefinedNameWithSheetRefUpdating(t.oldValue,t.newValue)}));if(\"number\"==typeof n){n<0&&(n=0);n>=l.sheets.length&&(n=l.sheets.length)}else n=l.sheets.length;l.sheets.insert(n,r);return r};FlexSheet.prototype._showSheet=function(e){if(!(!this.sheets||!this.sheets.length||e>=this.sheets.length||e<0||e===this.selectedSheetIndex||this.sheets[e]&&!this.sheets[e].visible)){this.beginUpdate();this.finishEditing();this._clearCalcEngine();this._isCopying=!0;if(this.selectedSheetIndex>-1&&this.selectedSheetIndex0){0===this.selectedSheetIndex&&this._copyFrom(this.selectedSheet);this.selectedSheetIndex=0}else{this.rows.clear();this.columns.clear();this._selectedSheetIndex=-1}}else if(this.sheets.length>0){if(this.selectedSheetIndex===t.index){this._selectedSheetIndex=-1;this.sheets._setCurrentIdx(-1);this.selectedSheetIndex=t.index>this.sheets.length-1?this.sheets.length-1:t.index}else if(this.selectedSheetIndex>t.index){this._selectedSheetIndex--;this.sheets._setCurrentIdx(this._selectedSheetIndex)}}else{this.rows.clear();this.columns.clear();this._selectedSheetIndex=-1}this._updateDivContainerHeight(this.isTabHolderVisible);this.endUpdate()}};FlexSheet.prototype._sheetVisibleChange=function(e,t){t.item.visible||t.index===this.selectedSheetIndex&&(this.selectedSheetIndex===this.sheets.length-1?this.selectedSheetIndex=t.index-1:this.selectedSheetIndex=t.index+1)};FlexSheet.prototype._applyStyleForCell=function(e,t,o,n){void 0===n&&(n=!1);var i,l,r,s=this.rows[e];if(!(null==s||s instanceof HeaderRow||!s.isVisible&&!n)){r=e*this.columns.length+t;(l=this.selectedSheet._getMergedRange(e,t))&&(r=l.topRow*this.columns.length+l.leftCol);if(i=this.selectedSheet._styledCells[r]){i.className=\"normal\"===o.className?\"\":o.className||i.className;i.textAlign=o.textAlign||i.textAlign;i.verticalAlign=o.verticalAlign||i.verticalAlign;i.fontFamily=o.fontFamily||i.fontFamily;i.fontSize=o.fontSize||i.fontSize;i.backgroundColor=o.backgroundColor||i.backgroundColor;i.color=o.color||i.color;i.fontStyle=\"none\"===o.fontStyle?\"\":o.fontStyle||i.fontStyle;i.fontWeight=\"none\"===o.fontWeight?\"\":o.fontWeight||i.fontWeight;i.textDecoration=\"none\"===o.textDecoration?\"\":o.textDecoration||i.textDecoration;i.format=o.format||i.format;i.whiteSpace=o.whiteSpace||i.whiteSpace;i.borderTopColor=o.borderTopColor||i.borderTopColor;i.borderTopStyle=o.borderTopStyle||i.borderTopStyle;i.borderTopWidth=o.borderTopWidth||i.borderTopWidth;i.borderBottomColor=o.borderBottomColor||i.borderBottomColor;i.borderBottomStyle=o.borderBottomStyle||i.borderBottomStyle;i.borderBottomWidth=o.borderBottomWidth||i.borderBottomWidth;i.borderLeftColor=o.borderLeftColor||i.borderLeftColor;i.borderLeftStyle=o.borderLeftStyle||i.borderLeftStyle;i.borderLeftWidth=o.borderLeftWidth||i.borderLeftWidth;i.borderRightColor=o.borderRightColor||i.borderRightColor;i.borderRightStyle=o.borderRightStyle||i.borderRightStyle;i.borderRightWidth=o.borderRightWidth||i.borderRightWidth}else this.selectedSheet._styledCells[r]={className:o.className,textAlign:o.textAlign,verticalAlign:o.verticalAlign,fontStyle:o.fontStyle,fontWeight:o.fontWeight,fontFamily:o.fontFamily,fontSize:o.fontSize,textDecoration:o.textDecoration,backgroundColor:o.backgroundColor,color:o.color,format:o.format,whiteSpace:o.whiteSpace,borderTopColor:o.borderTopColor,borderTopStyle:o.borderTopStyle,borderTopWidth:o.borderTopWidth,borderBottomColor:o.borderBottomColor,borderBottomStyle:o.borderBottomStyle,borderBottomWidth:o.borderBottomWidth,borderLeftColor:o.borderLeftColor,borderLeftStyle:o.borderLeftStyle,borderLeftWidth:o.borderLeftWidth,borderRightColor:o.borderRightColor,borderRightStyle:o.borderRightStyle,borderRightWidth:o.borderRightWidth}}};FlexSheet.prototype._checkCellFormat=function(e,t,o){var n,i,l=e*this.columns.length+t;if(this.selectedSheet){if(n=this.selectedSheet._getMergedRange(e,t)){o.isMergedCell=!0;l=n.topRow*this.columns.length+n.leftCol}if(i=this.selectedSheet._styledCells[l]){o.isBold=o.isBold||\"bold\"===i.fontWeight;o.isItalic=o.isItalic||\"italic\"===i.fontStyle;o.isUnderline=o.isUnderline||\"underline\"===i.textDecoration}e===this.selection.row&&t===this.selection.col&&(i&&i.textAlign?o.textAlign=i.textAlign:t>-1&&(o.textAlign=this.columns[t].getAlignment()||o.textAlign))}};FlexSheet.prototype._resetMergedRange=function(e){var t,o,n,i,l=!1;for(t=e.topRow;t<=e.bottomRow;t++)for(o=e.leftCol;o<=e.rightCol;o++)if(i=this.selectedSheet._getMergedRange(t,o)){l=!0;n=this.selectedSheet._mergedRanges.indexOf(i);this.selectedSheet._mergedRanges.splice(n,1)}return l};FlexSheet.prototype._updateCellsForUpdatingRow=function(e,t,o,n){var i,l,r,s,a,h,u,c=e*this.columns.length;if(n)for(l=i=t*this.columns.length;l=(t+o)*this.columns.length&&(this.selectedSheet._styledCells[r]=s);delete this.selectedSheet._styledCells[l]}}else{i=t*this.columns.length-1;for(l=c-1;l>i;l--){r=l+this.columns.length*o;if(s=this.selectedSheet._styledCells[l]){this.selectedSheet._styledCells[r]=s;delete this.selectedSheet._styledCells[l]}}}if(this.selectedSheet._mergedRanges.length>0)for(h=this.selectedSheet._mergedRanges.length-1;h>=0;h--){a=this.selectedSheet._mergedRanges[h];if(n)if((u=t+o-1)=a.topRow&&u<=a.bottomRow)if(t<=a.topRow&&u>=a.bottomRow)this.selectedSheet._mergedRanges.splice(h,1);else if(ta.topRow&&t<=a.bottomRow&&(a.row<=a.row2?a.row2+=o:a.row+=o)}};FlexSheet.prototype._updateCellsForUpdatingColumn=function(e,t,o,n){var i,l,r,s,a,h,u,c=this.rows.length*e;if(n)for(i=t;i=t?1:0));if(r=this.selectedSheet._styledCells[i]){(s=t+o)&&(this.selectedSheet._styledCells[l]=r);delete this.selectedSheet._styledCells[i]}}else for(i=c-1;i>=t;i--){l=i+Math.floor(i/e)*o+((s=i%e)>=t?1:0);if(r=this.selectedSheet._styledCells[i]){this.selectedSheet._styledCells[l]=r;delete this.selectedSheet._styledCells[i]}}if(this.selectedSheet._mergedRanges.length>0)for(h=this.selectedSheet._mergedRanges.length-1;h>=0;h--){a=this.selectedSheet._mergedRanges[h];if(n)if((u=t+o-1)=a.leftCol&&u<=a.rightCol)if(t<=a.leftCol&&u>=a.rightCol)this.selectedSheet._mergedRanges.splice(h,1);else if(ta.leftCol&&t<=a.rightCol&&(a.col<=a.col2?a.col2+=o:a.col+=o)}};FlexSheet.prototype._cloneObject=function(e){var t;if(null==e||!isObject(e))return e;t={};for(var o in e)e.hasOwnProperty(o)&&null!=e[o]&&(e[o].clone?t[o]=e[o].clone():t[o]=this._cloneObject(e[o]));return t};FlexSheet.prototype._evaluate=function(e,t,o,n,i){if(e&&e.length>1&&this._enableFormulas){e=\"=\"===e[0]?e:\"=\"+e;return this._calcEngine.evaluate(e,t,o,n,i)}return e};FlexSheet.prototype._clearAndCheckItemsOwner=function(e){if(e&&e.length){var t=e[0]._list;e.clear();this._checkCollectionOwner(t)}};FlexSheet.prototype._checkCollectionOwner=function(e,t){void 0===t&&(t=!0);if(e&&e.length&&(!e[0]._list||!t&&e[0]._list!=e))for(var o=0,n=e.length;o0&&(e._dataView=this.collectionView._view.slice());e.grid.collectionView.beginUpdate()}else{e.itemsSource=null;for(var n=0;n1&&(this.selectionMode===SelectionMode.CellRange||this.selectionMode===SelectionMode.MultiRange)&&(this._enableMulSel=!0);this._headerRowRemoved=e._ownerHeaderRowRemoved;if(e.itemsSource){this.autoGenerateColumns=!1;this._ignoreBindGrid=isArray(e.itemsSource)||e.itemsSource instanceof CollectionView;this.itemsSource=e.itemsSource;this._ignoreBindGrid=!1;this.collectionView.beginUpdate()}else for(i=0;i0)for(var o=0;o0&&this.addUnboundSheet();var i=this.selectedSheet,l=i.grid,r=l.wj_sheetInfo={};FlexGridXlsxConverter.load(l,e,{sheetIndex:o,includeColumnHeaders:!1});i.name=r.name;i.visible=r.visible;i._styledCells=r.styledCells;if(r.mergedRanges){for(var s=0;s0)for(var a=0;a-1&&e.activeWorksheet0){i.grid.wj_sheetInfo.tables=[];for(r=0;r0){i.grid.wj_sheetInfo.tables=[];for(r=0;r0)for(r=0;r-1&&this.columns[i.col].isSelected)&&hasClass(e.target,\"wj-cell\")&&!i.edgeRight){this._columnHeaderClicked=!0;o=this.itemsSource&&this.rows[0]&&!this.rows[0].isVisible?1:0;e.target.focus();if(e.shiftKey)this._multiSelectColumns(i);else{t=new CellRange(o,i.col,this.rows.length-1,i.col);if(3===e.which&&this.selection.contains(t))return;this.select(t)}this._eCt.children[o]&&this._eCt.children[o].children[i.col]&&this._eCt.children[o].children[i.col].focus();this.allowSorting&&e.preventDefault()}}}else{this.finishEditing();this._fillingData=!0;this._fillingPoint=new Point(e.clientX-this.scrollPosition.x,e.clientY-this.scrollPosition.y);this._fillingSource=this.selection.clone();this._fillingMarker=document.createElement(\"div\");setCss(this._fillingMarker,{position:\"absolute\",display:\"none\",border:\"2px dashed\"});this._root.appendChild(this._fillingMarker);this._fillingTooltip=new Tooltip;e.preventDefault()}};FlexSheet.prototype._mouseMove=function(e){var t,o=this.hitTest(e),n=this.selection.clone(),i=this.rows.length,l=this.columns.length,r=this.hostElement.style.cursor;if(0!==this.rows.length&&0!==this.columns.length)if(this._isDragging){this.hostElement.style.cursor=\"move\";this._showDraggingMarker(e)}else if(!this._isClicking&&o.edgeBottom&&o.edgeRight&&o.row===n.bottomRow&&o.col===n.rightCol&&this.allowAutoFill)this.hostElement.style.cursor=\"crosshair\";else if(this._fillingData){this.hostElement.style.cursor=\"crosshair\";this._showFillMarker(e)}else{t=this.itemsSource?0===n.topRow||1===n.topRow:0===n.topRow;if(!this._isClicking&&n&&o.cellType!==CellType.None&&!this.itemsSource&&!this.isReadOnly&&this._enableDragDrop){this._draggingColumn=t&&n.bottomRow===i-1;this._draggingRow=0===n.leftCol&&n.rightCol===l-1;if(o.cellType===CellType.Cell){this._draggingColumn&&((o.col===n.leftCol-1||o.col===n.rightCol)&&o.edgeRight||o.row===i-1&&o.edgeBottom)&&(r=\"move\");this._draggingRow&&!this._containsGroupRows(n)&&((o.row===n.topRow-1||o.row===n.bottomRow)&&o.edgeBottom||o.col===l-1&&o.edgeRight)&&(r=\"move\")}else o.cellType===CellType.ColumnHeader?o.edgeBottom&&(this._draggingColumn&&o.col>=n.leftCol&&o.col<=n.rightCol?r=\"move\":this._draggingRow&&0===n.topRow&&(r=\"move\")):o.cellType===CellType.RowHeader&&o.edgeRight&&(this._draggingColumn&&0===n.leftCol?r=\"move\":this._draggingRow&&o.row>=n.topRow&&o.row<=n.bottomRow&&!this._containsGroupRows(n)&&(r=\"move\"));this._dragable=\"move\"===r;this.hostElement.style.cursor=r}if(this._htDown&&this._htDown.panel){o=new HitTestInfo(this._htDown.panel,e);this._multiSelectColumns(o);o.cellType===CellType.Cell&&this.scrollIntoView(o.row,o.col)}}else{this._dragable=!1;o.cellType===CellType.Cell&&(this.hostElement.style.cursor=\"default\")}};FlexSheet.prototype._mouseUp=function(e){try{if(this._isDragging){if(this._dropRange&&!this._draggingCells.equals(this._dropRange)){var t=new DroppingRowColumnEventArgs(this._dropRange.clone(),this._draggingRow),o=new CancelEventArgs;this.onBeginDroppingRowColumn(t);o.cancel=t.cancel;t.cancel||this._handleDropping(e);this.onEndDroppingRowColumn(o)}}else if(this._fillingData){var n=AutoFillOperation.CopyContent,i=this._fillingRange,l=this._fillingSource,r=void 0;this._orgCellSettings=null;if(this._fillingRange&&this._fillingRange.isValid){assert(this._canDoFillOperation(),\"To do this, all the merged cells need be the same size.\");l.leftCol===i.leftCol&&l.rightCol===i.rightCol?l.row!==l.row2&&(n=AutoFillOperation.FillSeries):l.col!==l.col2&&(n=AutoFillOperation.FillSeries);this._orgCellSettings=this._getCellSettingsForFill();r=new _FillAction(this,this._fillingSource);this._undoStack._addAction(r);n=AutoFillOperation.CopyFormat|n;this._fillData(n)&&this._showFillMenuSmartTag(n)}}}finally{if(this._isDragging){this._draggingCells=null;this._dropRange=null;document.body.removeChild(this._draggingMarker);this._draggingMarker=null;this._draggingTooltip.hide();this._draggingTooltip=null;this._isDragging=!1;this._draggingColumn=!1;this._draggingRow=!1}if(this._htDown&&this._htDown.cellType!==CellType.None&&this.selectedSheet){this._htDown.cellType!==CellType.TopLeft||this.selectionMode!==SelectionMode.CellRange&&this.selectionMode!==SelectionMode.MultiRange||(this.selection=new CellRange(0,0,this.rows.length-1,this.columns.length-1));this.selection.isValid&&this.selectedSheet._addSelection(this.selection);this._enableMulSel=!1}if(this._fillingData){this._fillingData=!1;this._fillingPoint=null;this._fillingRange=null;this._root.removeChild(this._fillingMarker);this._fillingMarker=null;this._fillingTooltip.hide();this._fillingTooltip=null;this.hostElement.style.cursor=\"default\"}this._isClicking=!1;this._columnHeaderClicked=!1;this._htDown=null}};FlexSheet.prototype._click=function(){var e=this,t=window.navigator.userAgent;t.match(/iPad/i)||t.match(/iPhone/i)||e._hideContextMenu();setTimeout((function(){e.hideFunctionList()}),200)};FlexSheet.prototype._touchStart=function(e){var t=this;hasClass(e.target,\"wj-context-menu-item\")||t._hideContextMenu();t._longClickTimer=setTimeout((function(){var o;if(t._isDescendant(t._divContainer,e.target)&&(o=t.hitTest(e))&&o.cellType!==CellType.None&&!t._resizing){if(o.cellType===CellType.TopLeft){t.selection=new CellRange(0,0,t.rows.length-1,t.columns.length-1);if(t.selectedSheet){t.selectedSheet.selectionRanges.clear();t.selectedSheet.selectionRanges.push(t.selection)}}t._contextMenu.show(null,new Point(e.pageX+10,e.pageY+10))}}),500)};FlexSheet.prototype._touchEnd=function(){clearTimeout(this._longClickTimer)};FlexSheet.prototype._keydown=function(e){this._endDragFillOperation(e);if((this._isDescendant(this.hostElement,e.target)||this.hostElement===e.target)&&!this._edtHdl.activeEditor&&!(e.target instanceof HTMLInputElement)&&this.selectedSheet&&(e.keyCode===Key.Delete||e.keyCode===Key.Back)){this._delSeletionContent(e);e.preventDefault()}var t=this._contextMenu.visible?this._contextMenu:this._tabHolder.sheetControl._contextMenu.visible?this._tabHolder.sheetControl._contextMenu:null;if(t){e.keyCode===Key.Down&&t.moveToNext();e.keyCode===Key.Up&&t.moveToPrev();e.keyCode===Key.Home&&t.moveToFirst();e.keyCode===Key.End&&t.moveToLast();e.keyCode===Key.Enter&&t.handleContextMenu();e.preventDefault()}};FlexSheet.prototype._showDraggingMarker=function(e){var t,o,n,i,l,r,s,a,h,u=new HitTestInfo(this.cells,e),c=this.selection,d=this.columns.length,_=this.rows.length,g=this._cumulativeScrollOffset(this.hostElement),f=this._root.getBoundingClientRect(),p=f.left+g.x,w=f.top+g.y;this.scrollIntoView(u.row,u.col);if(this._draggingColumn){o=c.rightCol-c.leftCol+1;l=0;((n=u.col)<0||n+o>d)&&(n=d-o);t=this.cells.getCellBoundingRect(0,n);r=this._root.offsetHeight-this._eCHdr.offsetHeight;i=(i=this.cells.height)>r?r:i;for(s=0;s_)&&(n=_-o);t=this.cells.getCellBoundingRect(n,0);r=this._root.offsetWidth-this._eRHdr.offsetWidth;for(s=0;sr?r:l;a=n+1+\" : \"+(n+o);if(this._dropRange){this._dropRange.row=n;this._dropRange.row2=n+o-1}else this._dropRange=new CellRange(n,0,n+o-1,this.columns.length-1)}if(t){h={display:\"inline\",zIndex:\"9999\",opacity:.5,top:t.top-(this._draggingColumn?this._ptScrl.y:0)+g.y,left:t.left-(this._draggingRow?this._ptScrl.x:0)+g.x,height:i,width:l};t.top=t.top-(this._draggingColumn?this._ptScrl.y:0);t.left=t.left-(this._draggingRow?this._ptScrl.x:0);if(this.rightToLeft&&this._draggingRow){h.left=h.left-l+t.width+2*this._ptScrl.x;t.left=t.left+2*this._ptScrl.x}if(this._draggingRow){if(p+this._eRHdr.offsetWidth!==h.left||w+this._root.offsetHeight+1-1&&h.col>-1){t=e.clientX-this.scrollPosition.x-this._fillingPoint.x;o=e.clientY-this.scrollPosition.y-this._fillingPoint.y;if(Math.abs(t)>=Math.abs(o)){n=this._fillingSource.topRow;l=this._fillingSource.bottomRow;i=t>=0?this._fillingSource.leftCol:h.col;r=t>=0?h.col:this._fillingSource.rightCol}else{n=o>=0?this._fillingSource.topRow:h.row;l=o>=0?h.row:this._fillingSource.bottomRow;i=this._fillingSource.leftCol;r=this._fillingSource.rightCol}s=this.cells.getCellBoundingRect(n,i,!0);a=this.cells.getCellBoundingRect(l,r,!0);setCss(this._fillingMarker,{left:s.left+this.cells.hostElement.offsetLeft-2,top:s.top+this.cells.hostElement.offsetTop-2,width:a.right-s.left+4,height:a.bottom-s.top+4,display:\"\",zIndex:\"9999\"});this._fillingRange=new CellRange(n,i,l,r);this.scrollIntoView(h.row,h.col);this._showFillTooltip()}};FlexSheet.prototype._showFillTooltip=function(){var e,t,o,n,i,l,r,s,a,h,u,c,d=this._fillingSource,_=this._fillingRange;this._fillingTooltip.hide();if(!_.equals(d)&&!d.contains(_)){if(t=d.leftCol===_.leftCol&&d.rightCol===_.rightCol){if(_.bottomRow>d.bottomRow){(e=this.cells.getCellBoundingRect(_.bottomRow,_.rightCol)).top=e.bottom+10;o=_.bottomRow-d.topRow}else{(e=this.cells.getCellBoundingRect(_.topRow,_.rightCol)).top+=10;o=_.topRow-d.topRow}e.left=e.right;(n=o%d.rowSpan)<0&&(n+=d.rowSpan);d.row===d.row2&&(i=!0);a=this.selectedSheet.getCellStyle(d.topRow+n,d.leftCol);h=this.getMergedRange(this.cells,d.topRow+n,d.leftCol);u=this.columns[d.leftCol];c=a&&a.format?a.format:u.format;if(i)s=_isFormula(s=this.getCellData(h?h.topRow:d.topRow+n,d.leftCol,!1))?\"\":Globalize.format(s,c);else{l=this.getCellData(d.topRow+n,d.leftCol,!1);if(isNumber(l)||isDate(l))if(r=this._getFillSeries(t,0,n)){s=this._getFillData(n,o,d,t,r,!0);s=Globalize.format(s,c)}else s=\"\";else _isFormula(s=l)&&(s=\"\")}}else{if(_.rightCol>d.rightCol){e=this.cells.getCellBoundingRect(_.bottomRow,_.rightCol);o=_.rightCol-d.leftCol}else{e=this.cells.getCellBoundingRect(_.bottomRow,_.leftCol);o=_.leftCol-d.leftCol}e.top=e.bottom+10;(n=o%d.columnSpan)<0&&(n+=d.columnSpan);d.col===d.col2&&(i=!0);a=this.selectedSheet.getCellStyle(d.topRow,d.leftCol+n);h=this.getMergedRange(this.cells,d.topRow,d.leftCol+n);u=this.columns[d.leftCol+n];c=a&&a.format?a.format:u.format;if(i)s=_isFormula(s=this.getCellData(d.topRow,h?h.leftCol:d.leftCol+n,!1))?\"\":Globalize.format(s,c);else{l=this.getCellData(d.topRow,d.leftCol+n,!1);if(isNumber(l)||isDate(l))if(r=this._getFillSeries(t,0,n)){s=this._getFillData(n,o,d,t,r,!0);s=Globalize.format(s,c)}else s=\"\";else _isFormula(s=l)&&(s=\"\")}}e.top+=this.cells.hostElement.offsetTop;this._fillingTooltip.show(this.hostElement,s,e)}};FlexSheet.prototype._showFillMenuSmartTag=function(e){var t=this,o=document.createElement(\"img\"),n=document.createElement(\"img\"),i=t.selection,l=t.cells.getCellBoundingRect(i.bottomRow,i.rightCol,!0),r=l.right+t.cells.hostElement.offsetLeft,s=l.bottom+t.cells.hostElement.offsetTop;t.addEventListener(document.body,\"mousedown\",t._endDragFillOperationHdl,!0);t._fillSmartTagHost=document.createElement(\"div\");addClass(t._fillSmartTagHost,\"wj-flexsheet-smart-tag\");r+t._ptScrl.x+32+(t.cells.hostElement.offsetHeight>t._root.offsetHeight?17:0)>t._root.offsetWidth&&(r-=32);s+t._ptScrl.y+18+(t.cells.hostElement.offsetWidth>t._root.offsetWidth?17:0)>t._root.offsetHeight&&(s-=18);setCss(t._fillSmartTagHost,{left:r,top:s});o.setAttribute(\"src\",\"data:image/png;base64, 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\");setCss(o,{float:\"left\",height:18,margin:0});n.setAttribute(\"src\",\"data:image/png;base64, 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\");setCss(n,{float:\"left\",margin:0,height:18,display:\"none\"});t._fillSmartTagHost.appendChild(o);t._fillSmartTagHost.appendChild(n);t._root.appendChild(t._fillSmartTagHost);t.addEventListener(t._fillSmartTagHost,\"mouseover\",(function(){t._fillSmartTagHost.style.width=\"32px\";n.style.display=\"\"}));t.addEventListener(t._fillSmartTagHost,\"mouseleave\",(function(){if(!t._fillMenuHost){t._fillSmartTagHost.style.width=\"18px\";n.style.display=\"none\"}}));t.addEventListener(t._fillSmartTagHost,\"mousedown\",(function(o){if(hasClass(t._fillSmartTagHost,\"wj-flexsheet-smart-tag-active\")){removeClass(t._fillSmartTagHost,\"wj-flexsheet-smart-tag-active\");t._fillMenuHost.style.display=\"none\"}else{addClass(t._fillSmartTagHost,\"wj-flexsheet-smart-tag-active\");t._showFillMenu(e);e=null}o.preventDefault()}),!0)};FlexSheet.prototype._selections=function(){var e=[];if(!this.selectedSheet)return e;if(this.selectionMode==SelectionMode.ListBox)for(var t=0,o=this.rows.length,n=this.columns.length-1;t'+n.copyCells+'
'+n.fillSeries+'
'+n.fillFormat+'
'+n.fillWithoutFormat+\"
\";addClass(i._fillMenuHost,\"wj-flexsheet-fill-menu\");i._root.appendChild(i._fillMenuHost);for(var _loop_1=function(e){t=i._fillMenuHost.childNodes[e];i.addEventListener(t,\"mousedown\",(function(t){var o;i._removeActiveStyleForFillMenuItem();addClass(t.target,\"wj-flexsheet-fill-menu-item-active\");switch(e){case 0:o=AutoFillOperation.CopyFormat|AutoFillOperation.CopyContent;break;case 1:o=AutoFillOperation.CopyFormat|AutoFillOperation.FillSeries;break;case 2:o=AutoFillOperation.CopyFormat;break;case 3:o=AutoFillOperation.FillSeries}i._fillData(o);i._fillMenuHost.style.display=\"none\";removeClass(i._fillSmartTagHost,\"wj-flexsheet-smart-tag-active\");t.preventDefault()}),!0)},s=0;si._root.offsetHeight?17:0)>i._root.offsetWidth&&(l=l-i._fillMenuHost.offsetWidth+i._fillSmartTagHost.offsetWidth);r+i._ptScrl.y+i._fillMenuHost.offsetHeight+ +(i.cells.hostElement.offsetWidth>i._root.offsetWidth?17:0)>i._root.offsetHeight&&(r=i._fillSmartTagHost.offsetTop-i._fillMenuHost.offsetHeight);i._fillMenuHost.style.left=l+\"px\";i._fillMenuHost.style.top=r+\"px\"};FlexSheet.prototype._endDragFillOperation=function(e){if(this._fillSmartTagHost&&(!(e instanceof MouseEvent)||e.target!==this._fillSmartTagHost&&!this._isDescendant(this._fillSmartTagHost,e.target)&&e.target!==this._fillMenuHost&&!this._isDescendant(this._fillMenuHost,e.target))){this.removeEventListener(document.body,\"mousedown\",this._endDragFillOperationHdl);this._disposeFillSmartTag();this._fillMenuHost&&this._disposeFillMenu();this._undoStack._updateCurrentAction(_FillAction)}};FlexSheet.prototype._removeActiveStyleForFillMenuItem=function(){for(var e,t=0;tthis._dropRange.leftCol||this._draggingRow&&this._draggingCells.topRow>this._dropRange.topRow)if(e.shiftKey){if(!this._allowExchangeCells(this._draggingRow,!0)){console.warn(\"Can not complete operation: You are attempting to change a position of table row or column in a way that is not allowed.\");return}if(this._draggingColumn){i=this._dropRange.leftCol;for(o=this._draggingCells.leftCol;o<=this._draggingCells.rightCol;o++){this.columns.moveElement(o,i);i++}this._exchangeTableColumns(!0)}else if(this._draggingRow){n=this._dropRange.topRow;for(t=this._draggingCells.topRow;t<=this._draggingCells.bottomRow;t++){this.rows.moveElement(t,n);n++}}this._exchangeCellStyle(!0)}else{this.undoStack.stackSize>0&&(l=new _MoveCellsAction(this,this._draggingCells,this._dropRange,e.ctrlKey));n=this._dropRange.topRow;for(t=this._draggingCells.topRow;t<=this._draggingCells.bottomRow;t++){i=this._dropRange.leftCol;for(o=this._draggingCells.leftCol;o<=this._draggingCells.rightCol;o++){this._moveCellContent(t,o,n,i,e.ctrlKey);if(this._draggingColumn&&n===this._dropRange.topRow){this.columns[i].dataType=this.columns[o].dataType?this.columns[o].dataType:DataType.Object;this.columns[i].align=this.columns[o].align;this.columns[i].format=this.columns[o].format;if(!e.ctrlKey){this.columns[o].dataType=DataType.Object;this.columns[o].align=null;this.columns[o].format=null}}i++}n++}if(this._draggingColumn&&!e.ctrlKey){i=this._dropRange.leftCol;for(o=this._draggingCells.leftCol;o<=this._draggingCells.rightCol;o++){this._updateColumnFiler(o,i);i++}}}else if(this._draggingColumn&&this._draggingCells.leftCol=this._draggingCells.leftCol;o--){this.columns.moveElement(o,i);i--}this._exchangeTableColumns(!1)}else if(this._draggingRow){n=this._dropRange.bottomRow;for(t=this._draggingCells.bottomRow;t>=this._draggingCells.topRow;t--){this.rows.moveElement(t,n);n--}}this._exchangeCellStyle(!1)}else{this.undoStack.stackSize>0&&(l=new _MoveCellsAction(this,this._draggingCells,this._dropRange,e.ctrlKey));n=this._dropRange.bottomRow;for(t=this._draggingCells.bottomRow;t>=this._draggingCells.topRow;t--){i=this._dropRange.rightCol;for(o=this._draggingCells.rightCol;o>=this._draggingCells.leftCol;o--){this._moveCellContent(t,o,n,i,e.ctrlKey);if(this._draggingColumn&&n===this._dropRange.bottomRow){this.columns[i].dataType=this.columns[o].dataType?this.columns[o].dataType:DataType.Object;this.columns[i].align=this.columns[o].align;this.columns[i].format=this.columns[o].format;if(!e.ctrlKey){this.columns[o].dataType=DataType.Object;this.columns[o].align=null;this.columns[o].format=null}}i--}n--}if(this._draggingColumn&&!e.ctrlKey){i=this._dropRange.rightCol;for(o=this._draggingCells.rightCol;o>=this._draggingCells.leftCol;o--){this._updateColumnFiler(o,i);i--}}}if(!e.ctrlKey){r=this._updateFormulaForDropping(e.shiftKey);s=this._updateNamedRangesForDropping(e.shiftKey)}if(l&&l.saveNewState()){l._affectedFormulas=r;l._affectedDefinedNameVals=s;this._undoStack._addAction(l)}if(this._undoStack._pendingAction){this._undoStack._pendingAction._affectedFormulas=r;this._undoStack._pendingAction._affectedDefinedNameVals=s}this.select(this._dropRange);this.selectedSheet._addSelection(this.selection);this.hostElement.focus()}};FlexSheet.prototype._moveCellContent=function(e,t,o,n,i){var l,r,s,a,h,u,c,d,_,g=this.getCellData(e,t,!1),f=e*this.columns.length+t,p=o*this.columns.length+n,w=this.selectedSheet._styledCells[f],m=!0;if(r=this.selectedSheet.findTable(o,n)){c=r.getRange();d=r.getColumns();if(r.showHeaderRow&&o===c.topRow){h=d[a=n-c.leftCol].name;null==g||\"\"===g?m=!1:d[a].name=g}}if(m){if(i&&_isFormula(g)&&p-f!=0)try{(_=this._calcEngine._parse(g))._moveCellRangeExp(this.selectedSheetIndex,new CellRange(e,t),new CellRange(o,n),!1,!0)&&(g=\"=\"+_._getStringExpression())}catch(e){}this.setCellData(o,n,g)}else m=!0;w?this.selectedSheet._styledCells[p]=this._cloneObject(w):delete this.selectedSheet._styledCells[p];if(i){if(l=this.selectedSheet.findTable(e,t)){u=l.getRange();if(l===r&&e===o&&l.showHeaderRow&&e===u.topRow){s=t-u.leftCol;l._updateColumnName(s,g)}}}else{delete this.selectedSheet._styledCells[f];if(l=this.selectedSheet.findTable(e,t)){u=l.getRange();if(l===r&&e===o&&l.showHeaderRow&&e===u.topRow){s=t-u.leftCol;l._updateColumnName(s,h);return}if(l.showHeaderRow&&e===u.topRow)return}this.setCellData(e,t,null)}};FlexSheet.prototype._allowExchangeCells=function(e,t){var o,n,i,l,r,s=this.selectedSheet.tables;for(o=0;o=this._draggingCells.rightCol){i=(e?this._draggingCells.leftCol:this._draggingCells.rightCol)-n.leftCol;l=(e?this._dropRange.leftCol:this._dropRange.rightCol)-n.leftCol;for(r=0;r=this._dropRange.leftCol;o--)for(t=0;t=this._dropRange.topRow;t--)for(o=0;o0&&(_=new _EditAction(this));var w=this._selections();for(n=0;n0)for(r=a-1;r>=0;r--){s=this.selectedSheet.tables[r];if(t.contains(s.getRange())){_&&_._storeDeletedTables(s);this.selectedSheet.tables.remove(s)}}for(l=t.topRow;l<=t.bottomRow;l++)if((c=this.rows[l])&&!c.isReadOnly&&(c.visible||this.selectedSheet._freezeHiddenRows&&this.selectedSheet._freezeHiddenRows[l]))for(i=t.leftCol;i<=t.rightCol;i++)if((h=this._getBindingColumn(this.cells,l,this.columns[i]))&&!h.isReadOnly&&(!1===h.isRequired||null==h.isRequired&&h.dataType==DataType.String)&&(h.visible||this.selectedSheet._freezeHiddenCols&&this.selectedSheet._freezeHiddenCols[i])&&this.getCellData(l,i,!0)){o.setRange(l,i);u.cancel=!1;if(this.onBeginningEdit(u)){if(g){if(!f){f=!0;g.beginUpdate()}g.editItem(c.dataItem);this._edtHdl._edItem=g.currentEditItem}this.setCellData(l,i,\"\",!0);d=!0;this.onCellEditEnding(u);this.onCellEditEnded(u)}}if(f){g.endUpdate(!0);g._pendingRefresh=!1;t.rowSpan>1&&g.commitEdit()}}if(d&&_){_.saveNewState();this._undoStack._addAction(_)}this.selection=t;this.scrollPosition=p;this.endUpdate()}};FlexSheet.prototype._updateAffectedFormula=function(e,t,o,n,i){var l,r,s,a,h,u,c,d,_,g=[],f=[],p=this.selection.clone();this.selectedSheet._storeRowSettings();this.beginUpdate();for(l=0;l=e&&(o?u+=t:u-=t):h>=e&&(o?c+=t:c-=t);if(!o&&(n&&a<=e&&a>=e-t+1||!n&&h<=e&&h>=e-t+1))continue}s.setCellData(a,h,_,!1);f.push({sheet:r,point:new Point(u,c),formula:_})}}this.selection=p;this.endUpdate();return{oldFormulas:g,newFormulas:f}};FlexSheet.prototype._updateAffectedNamedRanges=function(e,t,o,n){var i,l,r,s,a=[],h=[];for(i=0;i1){if(this._isMultipleRowsSelected(e,t)){a=\"\";for(i=0;i-1&&(r='\"'+r.replace(/\"/g,'\"\"')+'\"');a+=r}}return a};FlexSheet.prototype._getSelectionForListBoxMode=function(e){for(var t,o=0;o1?i=e:this.selectedSheet.selectionRanges.length>1&&(i=this.selectedSheet.selectionRanges);o=i[0];for(var l=1;l1?i=e:this.selectedSheet.selectionRanges.length>1&&(i=this.selectedSheet.selectionRanges);o=i[0];for(var l=0;l=0&&i>=0&&this._copiedSheet&&(s=this._copiedSheet._getMergedRange(n,i))&&s.topRow===n&&s.leftCol===i){var h=t+s.rowSpan-1;h=h0){r?r.whiteSpace=\"pre\":r={whiteSpace:\"pre\"};this.rows[t].height=this.rows.defaultSize*(p.length+1)}}var w=(s=this.selectedSheet._getMergedRange(t,o))?s.topRow*this.columns.length+s.leftCol:t*this.columns.length+o;r&&(this.selectedSheet._styledCells[w]=this._cloneObject(r));this.onPastedCell(a)}}return f};FlexSheet.prototype._delCutData=function(e,t){var o,n,i,l,r=this._copiedSheet===this.selectedSheet?this:this._copiedSheet.grid;for(o=(l=this.selectionMode===SelectionMode.ListBox?this._getSelectionForListBoxMode(r):this._copiedRanges[0]).topRow;o<=l.bottomRow;o++)if(null!=r.rows[o])for(n=l.leftCol;n<=l.rightCol;n++)(this._copiedSheet!==this.selectedSheet||othis.selection.topRow+e-1||nthis.selection.leftCol+t-1)&&(0==(i=r._getBindingColumn(r.cells,o,r.columns[n])).isRequired||null==i.isRequired&&i.dataType==DataType.String)&&r.getCellData(o,n,!0)&&r.setCellData(o,n,\"\",!0)};FlexSheet.prototype._containsMultiLineText=function(e){for(var t=0;t0)return!0;return!1};FlexSheet.prototype._sortByRow=function(e,t){return e.topRow>t.topRow?1:e.topRowt.leftCol?1:e.leftCol=0)do{t=Math.floor(e/26);o=e%26;n=String.fromCharCode(o+65)+n;e=t-1}while(t);return n};FlexSheet.prototype._updateFormulaForReorderingRows=function(e,t,o){void 0===o&&(o=!1);var n,i,l=o?e-t:t-e;this.beginUpdate();for(var r=0;r0)for(var r=0;r-1;){h=\"\";u=\"\";a>0&&(h=s[a-1]);a+e.length0)for(n=this.selectedSheet.tables.length-1;n>=0;n--){l=(i=this.selectedSheet.tables[n]).getRange();if(o){if((r=e+t-1)=l.topRow&&r<=l.bottomRow){if(e<=l.topRow&&r===l.bottomRow){null==s&&(s=[]);s.push(i);this.selectedSheet.tables.remove(i);continue}if(el.topRow&&e<=l.bottomRow&&i._updateTableRange(0,t,0,0)}return s};FlexSheet.prototype._updateTablesForUpdatingColumn=function(e,t,o){var n,i,l,r,s,a,h,u;if(this.selectedSheet.tables.length>0)for(n=this.selectedSheet.tables.length-1;n>=0;n--){l=(i=this.selectedSheet.tables[n]).getRange();if(o){if((r=e+t-1)=l.leftCol&&r<=l.rightCol){if(e<=l.leftCol&&r===l.rightCol){null==u&&(u=[]);u.push(i);this.selectedSheet.tables.remove(i);continue}if(el.leftCol&&e<=l.rightCol){i._updateTableRange(0,0,0,t);a=e-l.leftCol;for(h=0;h0)for(o=0;o=e&&i.topRow<=t)return!0}return!1};FlexSheet.prototype._copy=function(t,o){var n,i;if(\"columns\"==t){e.prototype._copy.call(this,t,o);if(this.itemsSource&&(n=this.rows[0])instanceof HeaderRow){n._ubv=null;n._ubv={};for(var l=0;l-1)return o;return-1};FlexSheet.prototype._sheetSortConverter=function(t,o,n,i){_isFormula(n=e.prototype._sortConverter.call(this,t,o,n,i))&&(n=this.evaluate(n));return n};FlexSheet.prototype._formatEvaluatedResult=function(e,t,o){if(isPrimitive(e)){t.dataMap&&(e=t.dataMap.getDisplayValue(e));if(!isInt(e)||t.format||t.dataMap||o){(o&&\"@\"!==o||t.format&&\"@\"!==t.format)&&isString(e)&&(+e).toString()===e&&(e=+e);e=null!=e?Globalize.format(e,o||t.format):\"\"}else e=e.toString()}else if(e){if(e instanceof FormulaError)return e.error;if(!isInt(e.value)||t.format||t.dataMap||o||e.format){isString(e.value)&&(+e.value).toString()===e.value&&(e.value=+e.value);e=null!=e.value?Globalize.format(e.value,o||e.format||t.format):\"\"}else e=e.value.toString()}return e};FlexSheet.prototype._updateCellRef=function(e,t,o,n,i,l,r){var s;try{s=this._calcEngine._parse(e)}catch(e){return null}return s._updateCellRangeExp(t,o,n,i,l,r)?\"=\"+s._getStringExpression():null};FlexSheet.prototype._updateCellBoundary=function(e,t,o){var n;try{n=this._calcEngine._parse(e)}catch(e){return null}return n instanceof _FunctionExpression&&n._updateCellBoundary(t,o)?\"=\"+n._getStringExpression():null};FlexSheet.prototype._fillData=function(e){void 0===e&&(e=AutoFillOperation.CopyFormat|AutoFillOperation.FillSeries);var t=this._fillingRange||this.selection,o=this._fillingSource,n=0!=(e&AutoFillOperation.CopyFormat),i=0!=(e&AutoFillOperation.CopyContent),l=0!=(e&AutoFillOperation.FillSeries),r=o.leftCol===t.leftCol&&o.rightCol===t.rightCol,s=[],a=new AutoFillingEventArgs(t,e);this.onAutoFilling(a);if(a.cancel)return!1;this.beginUpdate();this._resetCellsForFillRange(e);for(var h=0;h=0&&c=0&&f=l&&o<=s)return{type:i,startIndex:l,endIndex:s-1,items:d,itemIndexes:_};d.splice(0,d.length);_.splice(0,_.length)}}else if(d.length>0){if(o>=l&&o<=s)return{type:i,startIndex:l,endIndex:s-1,items:d,itemIndexes:_};d.splice(0,d.length);_.splice(0,_.length)}}}else{o=c.leftCol+o;r=0;for(s=c.leftCol;s<=c.rightCol;s++){if(a=this.getMergedRange(this.cells,c.topRow+t,s))if(h&&!a.equals(h)){r+=h.columnSpan;h=a;if(a.topRow!==c.topRow+t)continue}else{if(a.leftCol!==s||a.topRow!==c.topRow+t)continue;r+=1;h=a}else if(h){r+=h.columnSpan;h=null}else r+=1;if(null!=(u=this.getCellData(c.topRow+t,s,!1))&&\"\"!==u)if(isNumber(u)||isDate(u)){n=isNumber(u)?\"number\":\"date\";isDate(u)&&(u=FlexSheet._toOADate(u));if(0===d.length){l=s;i=n;d.push(u);_.push(r)}else if(n===i){d.push(u);_.push(r)}else{if(o>=l&&o<=s)return{type:i,startIndex:l,endIndex:s-1,items:d,itemIndexes:_};d.splice(0,d.length);_.splice(0,_.length)}}else if(d.length>0){if(o>=l&&o<=s)return{type:i,startIndex:l,endIndex:s-1,items:d,itemIndexes:_};d.splice(0,d.length);_.splice(0,_.length)}}}return d.length>0?{type:i,startIndex:l,endIndex:s-1,items:d,itemIndexes:_}:null};FlexSheet.prototype._getLinearBestFitTrendData=function(e,t,o){var n,i,l,r,s=0,a=0,h=0,u=0;if(1===(r=e.length))return e[0]+o-1;for(n=0;n=e.topRow&&o<=e.bottomRow&&n>=e.leftCol&&n<=e.rightCol)){i=this.getCellData(o,n,!1);l=this._cloneObject(this.selectedSheet.getCellStyle(o,n));(s=this.getMergedRange(this.cells,o,n))&&s.topRow===o&&s.leftCol===n||(s=null);r.push({row:o,col:n,value:i,style:l,mergedCell:s?s.clone():null})}return r};FlexSheet.prototype._resetCellsForFillRange=function(e){var t=0!=(e&AutoFillOperation.CopyFormat),o=0!=(e&AutoFillOperation.CopyContent),n=0!=(e&AutoFillOperation.FillSeries);if(this._orgCellSettings&&this._orgCellSettings.length>0)for(var i=0;i=0&&i=0&&s=t&&(i._itemIdx+=o)};FlexSheet.prototype._updateItemIndexForRemovingRow=function(e,t){var o,n;for(o=0;o=t&&(n._itemIdx-=1)};FlexSheet.prototype._copyRowsToSelectedSheet=function(){var e,t=this;if(t.selectedSheet){t.selectedSheet.grid.rows.clear();for(e=0;e=t.rowCount){d=o.bottomRow-t.rowCount+1;for(g=0;g=t.columnCount){d=o.rightCol-t.columnCount+1;for(g=0;g0){a=[];for(var g=0;g=1&&t<=21)return!0}else if(0===e.search(/TableStyleMedium/i)){t=+e.substring(16);if(!isNaN(t)&&t>=1&&t<=28)return!0}else if(0===e.search(/TableStyleDark/i)){t=+e.substring(14);if(!isNaN(t)&&t>=1&&t<=11)return!0}return!1};FlexSheet.prototype._getTable=function(e){for(var t,o,n,i=0;i=1&&t<=21)return t<=7?this._generateTableLightStyle1(t-1,e,!0):t<=14?this._generateTableLightStyle2(t-8,e):this._generateTableLightStyle1(t-15,e,!1)}else if(0===e.search(/TableStyleMedium/i)){t=+e.substring(16);if(!isNaN(t)&&t>=1&&t<=28)return t<=7?this._generateTableMediumStyle1(t-1,e):t<=14?this._generateTableMediumStyle2(t-8,e):t<=21?this._generateTableMediumStyle3(t-15,e):this._generateTableMediumStyle4(t-22,e)}else if(0===e.search(/TableStyleDark/i)){t=+e.substring(14);if(!isNaN(t)&&t>=1&&t<=11)return t<=7?this._generateTableDarkStyle1(t-1,e):this._generateTableDarkStyle2(t-8,e)}return null};FlexSheet.prototype._generateTableLightStyle1=function(e,t,o){var n=new TableStyle(t,!0),i=0===e?1:e+3,l=o?\"1px\":\"2px\",r=o?\"solid\":\"double\",s=o?\"1px\":\"3px\";n.wholeTableStyle={borderTopColor:this._getThemeColor(i),borderTopStyle:\"solid\",borderTopWidth:\"1px\",borderBottomColor:this._getThemeColor(i),borderBottomStyle:\"solid\",borderBottomWidth:\"1px\"};n.firstColumnStyle={fontWeight:\"bold\"};n.lastColumnStyle={fontWeight:\"bold\"};n.headerRowStyle={borderBottomColor:this._getThemeColor(i),borderBottomStyle:\"solid\",borderBottomWidth:l,fontWeight:\"bold\"};n.totalRowStyle={borderTopColor:this._getThemeColor(i),borderTopStyle:r,borderTopWidth:s,fontWeight:\"bold\"};if(0===e){n.wholeTableStyle.color=this._getThemeColor(i);n.firstColumnStyle.color=this._getThemeColor(i);n.lastColumnStyle.color=this._getThemeColor(i);n.headerRowStyle.color=this._getThemeColor(i);n.totalRowStyle.color=this._getThemeColor(i);n.firstBandedRowStyle={backgroundColor:this._getThemeColor(0,-.15)};n.firstBandedColumnStyle={backgroundColor:this._getThemeColor(0,-.15)}}else{if(o){n.wholeTableStyle.color=this._getThemeColor(i,-.25);n.firstColumnStyle.color=this._getThemeColor(i,-.25);n.lastColumnStyle.color=this._getThemeColor(i,-.25);n.headerRowStyle.color=this._getThemeColor(i,-.25);n.totalRowStyle.color=this._getThemeColor(i,-.25)}else{n.wholeTableStyle.color=this._getThemeColor(1);n.firstColumnStyle.color=this._getThemeColor(1);n.lastColumnStyle.color=this._getThemeColor(1);n.headerRowStyle.color=this._getThemeColor(1);n.totalRowStyle.color=this._getThemeColor(1)}n.firstBandedRowStyle={backgroundColor:this._getThemeColor(i,.8)};n.firstBandedColumnStyle={backgroundColor:this._getThemeColor(i,.8)}}if(!o){n.wholeTableStyle.borderLeftColor=this._getThemeColor(i);n.wholeTableStyle.borderLeftStyle=\"solid\";n.wholeTableStyle.borderLeftWidth=\"1px\";n.wholeTableStyle.borderRightColor=this._getThemeColor(i);n.wholeTableStyle.borderRightStyle=\"solid\";n.wholeTableStyle.borderRightWidth=\"1px\";n.wholeTableStyle.borderHorizontalColor=this._getThemeColor(i);n.wholeTableStyle.borderHorizontalStyle=\"solid\";n.wholeTableStyle.borderHorizontalWidth=\"1px\";n.wholeTableStyle.borderVerticalColor=this._getThemeColor(i);n.wholeTableStyle.borderVerticalStyle=\"solid\";n.wholeTableStyle.borderVerticalWidth=\"1px\"}return n};FlexSheet.prototype._generateTableLightStyle2=function(e,t){var o=new TableStyle(t,!0),n=0===e?1:e+3;o.wholeTableStyle={borderTopColor:this._getThemeColor(n),borderTopStyle:\"solid\",borderTopWidth:\"1px\",borderBottomColor:this._getThemeColor(n),borderBottomStyle:\"solid\",borderBottomWidth:\"1px\",borderLeftColor:this._getThemeColor(n),borderLeftStyle:\"solid\",borderLeftWidth:\"1px\",borderRightColor:this._getThemeColor(n),borderRightStyle:\"solid\",borderRightWidth:\"1px\",color:this._getThemeColor(1)};o.firstBandedRowStyle={borderTopColor:this._getThemeColor(n),borderTopStyle:\"solid\",borderTopWidth:\"1px\"};o.secondBandedRowStyle={borderTopColor:this._getThemeColor(n),borderTopStyle:\"solid\",borderTopWidth:\"1px\"};o.firstBandedColumnStyle={borderLeftColor:this._getThemeColor(n),borderLeftStyle:\"solid\",borderLeftWidth:\"1px\"};o.secondBandedColumnStyle={borderLeftColor:this._getThemeColor(n),borderLeftStyle:\"solid\",borderLeftWidth:\"1px\"};o.firstColumnStyle={fontWeight:\"bold\",color:this._getThemeColor(1)};o.lastColumnStyle={fontWeight:\"bold\",color:this._getThemeColor(1)};o.headerRowStyle={backgroundColor:this._getThemeColor(n),fontWeight:\"bold\",color:this._getThemeColor(0)};o.totalRowStyle={borderTopColor:this._getThemeColor(n),borderTopStyle:\"double\",borderTopWidth:\"3px\",fontWeight:\"bold\",color:this._getThemeColor(1)};return o};FlexSheet.prototype._generateTableMediumStyle1=function(e,t){var o=new TableStyle(t,!0),n=0===e?1:e+3;o.wholeTableStyle={borderTopStyle:\"solid\",borderTopWidth:\"1px\",borderBottomStyle:\"solid\",borderBottomWidth:\"1px\",borderLeftStyle:\"solid\",borderLeftWidth:\"1px\",borderRightStyle:\"solid\",borderRightWidth:\"1px\",borderHorizontalStyle:\"solid\",borderHorizontalWidth:\"1px\",color:this._getThemeColor(1)};if(0===e){o.wholeTableStyle.borderTopColor=this._getThemeColor(n);o.wholeTableStyle.borderBottomColor=this._getThemeColor(n);o.wholeTableStyle.borderLeftColor=this._getThemeColor(n);o.wholeTableStyle.borderRightColor=this._getThemeColor(n);o.wholeTableStyle.borderHorizontalColor=this._getThemeColor(n);o.firstBandedRowStyle={backgroundColor:this._getThemeColor(0,-.15)};o.firstBandedColumnStyle={backgroundColor:this._getThemeColor(0,-.15)}}else{o.wholeTableStyle.borderTopColor=this._getThemeColor(n,.4);o.wholeTableStyle.borderBottomColor=this._getThemeColor(n,.4);o.wholeTableStyle.borderLeftColor=this._getThemeColor(n,.4);o.wholeTableStyle.borderRightColor=this._getThemeColor(n,.4);o.wholeTableStyle.borderHorizontalColor=this._getThemeColor(n,.4);o.firstBandedRowStyle={backgroundColor:this._getThemeColor(n,.8)};o.firstBandedColumnStyle={backgroundColor:this._getThemeColor(n,.8)}}o.firstColumnStyle={fontWeight:\"bold\",color:this._getThemeColor(1)};o.lastColumnStyle={fontWeight:\"bold\",color:this._getThemeColor(1)};o.headerRowStyle={backgroundColor:this._getThemeColor(n),fontWeight:\"bold\",color:this._getThemeColor(0)};o.totalRowStyle={borderTopColor:this._getThemeColor(n),borderTopStyle:\"double\",borderTopWidth:\"3px\",fontWeight:\"bold\",color:this._getThemeColor(1)};return o};FlexSheet.prototype._generateTableMediumStyle2=function(e,t){var o=new TableStyle(t,!0),n=0===e?1:e+3;o.wholeTableStyle={borderVerticalStyle:\"solid\",borderVerticalWidth:\"1px\",borderVerticalColor:this._getThemeColor(0),borderHorizontalStyle:\"solid\",borderHorizontalWidth:\"1px\",borderHorizontalColor:this._getThemeColor(0),color:this._getThemeColor(1)};if(0===e){o.wholeTableStyle.backgroundColor=this._getThemeColor(0,-.15);o.firstBandedRowStyle={backgroundColor:this._getThemeColor(0,-.35)};o.firstBandedColumnStyle={backgroundColor:this._getThemeColor(0,-.35)}}else{o.wholeTableStyle.backgroundColor=this._getThemeColor(n,.8);o.firstBandedRowStyle={backgroundColor:this._getThemeColor(n,.6)};o.firstBandedColumnStyle={backgroundColor:this._getThemeColor(n,.6)}}o.firstColumnStyle={fontWeight:\"bold\",color:this._getThemeColor(0),backgroundColor:this._getThemeColor(n)};o.lastColumnStyle={fontWeight:\"bold\",color:this._getThemeColor(0),backgroundColor:this._getThemeColor(n)};o.headerRowStyle={borderBottomColor:this._getThemeColor(0),borderBottomStyle:\"solid\",borderBottomWidth:\"3px\",backgroundColor:this._getThemeColor(n),fontWeight:\"bold\",color:this._getThemeColor(0)};o.totalRowStyle={borderTopColor:this._getThemeColor(0),borderTopStyle:\"solid\",borderTopWidth:\"3px\",backgroundColor:this._getThemeColor(n),fontWeight:\"bold\",color:this._getThemeColor(0)};return o};FlexSheet.prototype._generateTableMediumStyle3=function(e,t){var o=new TableStyle(t,!0),n=0===e?1:e+3;o.wholeTableStyle={borderTopStyle:\"solid\",borderTopWidth:\"2px\",borderTopColor:this._getThemeColor(1),borderBottomStyle:\"solid\",borderBottomWidth:\"2px\",borderBottomColor:this._getThemeColor(1),color:this._getThemeColor(1)};if(0===e){o.wholeTableStyle.borderLeftColor=this._getThemeColor(1);o.wholeTableStyle.borderLeftStyle=\"solid\";o.wholeTableStyle.borderLeftWidth=\"1px\";o.wholeTableStyle.borderRightColor=this._getThemeColor(1);o.wholeTableStyle.borderRightStyle=\"solid\";o.wholeTableStyle.borderRightWidth=\"1px\";o.wholeTableStyle.borderVerticalColor=this._getThemeColor(1);o.wholeTableStyle.borderVerticalStyle=\"solid\";o.wholeTableStyle.borderVerticalWidth=\"1px\";o.wholeTableStyle.borderHorizontalColor=this._getThemeColor(1);o.wholeTableStyle.borderHorizontalStyle=\"solid\";o.wholeTableStyle.borderHorizontalWidth=\"1px\"}o.firstBandedRowStyle={backgroundColor:this._getThemeColor(0,-.35)};o.firstBandedColumnStyle={backgroundColor:this._getThemeColor(0,-.35)};o.firstColumnStyle={fontWeight:\"bold\",color:this._getThemeColor(0),backgroundColor:this._getThemeColor(n)};o.lastColumnStyle={fontWeight:\"bold\",color:this._getThemeColor(0),backgroundColor:this._getThemeColor(n)};o.headerRowStyle={borderBottomColor:this._getThemeColor(1),borderBottomStyle:\"solid\",borderBottomWidth:\"2px\",backgroundColor:this._getThemeColor(n),fontWeight:\"bold\",color:this._getThemeColor(0)};o.totalRowStyle={borderTopColor:this._getThemeColor(1),borderTopStyle:\"double\",borderTopWidth:\"3px\"};return o};FlexSheet.prototype._generateTableMediumStyle4=function(e,t){var o=new TableStyle(t,!0),n=0===e?1:e+3;o.wholeTableStyle={borderTopStyle:\"solid\",borderTopWidth:\"1px\",borderBottomStyle:\"solid\",borderBottomWidth:\"1px\",borderLeftStyle:\"solid\",borderLeftWidth:\"1px\",borderRightStyle:\"solid\",borderRightWidth:\"1px\",borderVerticalStyle:\"solid\",borderVerticalWidth:\"1px\",borderHorizontalStyle:\"solid\",borderHorizontalWidth:\"1px\",color:this._getThemeColor(1)};if(0===e){o.wholeTableStyle.borderTopColor=this._getThemeColor(n);o.wholeTableStyle.borderBottomColor=this._getThemeColor(n);o.wholeTableStyle.borderLeftColor=this._getThemeColor(n);o.wholeTableStyle.borderRightColor=this._getThemeColor(n);o.wholeTableStyle.borderVerticalColor=this._getThemeColor(n);o.wholeTableStyle.borderHorizontalColor=this._getThemeColor(n);o.wholeTableStyle.backgroundColor=this._getThemeColor(0,-.15);o.firstBandedRowStyle={backgroundColor:this._getThemeColor(0,-.35)};o.firstBandedColumnStyle={backgroundColor:this._getThemeColor(0,-.35)}}else{o.wholeTableStyle.borderTopColor=this._getThemeColor(n,.4);o.wholeTableStyle.borderBottomColor=this._getThemeColor(n,.4);o.wholeTableStyle.borderLeftColor=this._getThemeColor(n,.4);o.wholeTableStyle.borderRightColor=this._getThemeColor(n,.4);o.wholeTableStyle.borderVerticalColor=this._getThemeColor(n,.4);o.wholeTableStyle.borderHorizontalColor=this._getThemeColor(n,.4);o.wholeTableStyle.backgroundColor=this._getThemeColor(n,.8);o.firstBandedRowStyle={backgroundColor:this._getThemeColor(n,.6)};o.firstBandedColumnStyle={backgroundColor:this._getThemeColor(n,.6)}}o.firstColumnStyle={fontWeight:\"bold\",color:this._getThemeColor(1)};o.lastColumnStyle={fontWeight:\"bold\",color:this._getThemeColor(1)};o.headerRowStyle={fontWeight:\"bold\",color:this._getThemeColor(1)};o.totalRowStyle={borderTopColor:this._getThemeColor(n),borderTopStyle:\"solid\",borderTopWidth:\"2px\",fontWeight:\"bold\",color:this._getThemeColor(1)};return o};FlexSheet.prototype._generateTableDarkStyle1=function(e,t){var o=new TableStyle(t,!0),n=0===e?1:e+3,i=0===e?.25:-.25;o.wholeTableStyle={color:this._getThemeColor(0)};o.firstBandedRowStyle={backgroundColor:this._getThemeColor(n,i)};o.firstBandedColumnStyle={backgroundColor:this._getThemeColor(n,i)};o.firstColumnStyle={borderRightColor:this._getThemeColor(0),borderRightStyle:\"solid\",borderRightWidth:\"2px\",fontWeight:\"bold\",color:this._getThemeColor(0),backgroundColor:this._getThemeColor(n,i)};o.lastColumnStyle={borderLeftColor:this._getThemeColor(0),borderLeftStyle:\"solid\",borderLeftWidth:\"2px\",fontWeight:\"bold\",color:this._getThemeColor(0),backgroundColor:this._getThemeColor(n,i)};o.headerRowStyle={borderBottomColor:this._getThemeColor(0),borderBottomStyle:\"solid\",borderBottomWidth:\"2px\",fontWeight:\"bold\",color:this._getThemeColor(0),backgroundColor:this._getThemeColor(1)};o.totalRowStyle={borderTopColor:this._getThemeColor(0),borderTopStyle:\"solid\",borderTopWidth:\"2px\",fontWeight:\"bold\",color:this._getThemeColor(0)};if(0===e){o.wholeTableStyle.backgroundColor=this._getThemeColor(n,.5);o.totalRowStyle.backgroundColor=this._getThemeColor(n,.15)}else{o.wholeTableStyle.backgroundColor=this._getThemeColor(n);o.totalRowStyle.backgroundColor=this._getThemeColor(n,-.5)}return o};FlexSheet.prototype._generateTableDarkStyle2=function(e,t){var o=new TableStyle(t,!0),n=0===e?0:2*e+2,i=0===e?1:2*e+3,l=0===e?-.15:.8;o.wholeTableStyle={backgroundColor:this._getThemeColor(n,l)};o.firstBandedRowStyle={backgroundColor:this._getThemeColor(n,l-.2)};o.firstBandedColumnStyle={backgroundColor:this._getThemeColor(n,l-.2)};o.firstColumnStyle={fontWeight:\"bold\",color:this._getThemeColor(1)};o.lastColumnStyle={fontWeight:\"bold\",color:this._getThemeColor(1)};o.headerRowStyle={color:this._getThemeColor(0),backgroundColor:this._getThemeColor(i)};o.totalRowStyle={borderTopColor:this._getThemeColor(1),borderTopStyle:\"double\",borderTopWidth:\"3px\",fontWeight:\"bold\",color:this._getThemeColor(1)};return o};FlexSheet._getHeaderRowText=function(e){var t=e.binding,o=e._hdr;null!=o&&\"\"!=o.trim()||(o=toHeaderCase(t||\"\"));return o};FlexSheet._toOADate=function(e){var t,o=new Date(1900,0,0),n=Date.UTC(1900,0,0),i=o.getTime()-n-6e4*o.getTimezoneOffset(),l=6e4*(e.getTimezoneOffset()-o.getTimezoneOffset());t=(e.getTime()-o.getTime()-(0!==l?l-i:0))/864e5;return t+=t>59?1:0};FlexSheet._fromOADate=function(e){var t,o,n,i=new Date(1900,0,0),l=Date.UTC(1900,0,0),r=i.getTime()-l-6e4*i.getTimezoneOffset();o=e>59?1:0;return 0!==(t=6e4*((n=new Date(i.getTime()+864e5*(e-o))).getTimezoneOffset()-i.getTimezoneOffset()))?new Date(i.getTime()+t-r+864e5*(e-o)):n};FlexSheet.controlTemplate='
'+FlexGrid.controlTemplate+'
';return FlexSheet}(FlexGrid);export{FlexSheet};var DraggingRowColumnEventArgs=function(e){__extends(DraggingRowColumnEventArgs,e);function DraggingRowColumnEventArgs(t,o,n){var i=e.call(this)||this;i._draggingRange=t;i._isDraggingRows=o;i._isShiftKey=n;return i}Object.defineProperty(DraggingRowColumnEventArgs.prototype,\"draggingRange\",{get:function(){return this._draggingRange},enumerable:!0,configurable:!0});Object.defineProperty(DraggingRowColumnEventArgs.prototype,\"isDraggingRows\",{get:function(){return this._isDraggingRows},enumerable:!0,configurable:!0});Object.defineProperty(DraggingRowColumnEventArgs.prototype,\"isShiftKey\",{get:function(){return this._isShiftKey},enumerable:!0,configurable:!0});return DraggingRowColumnEventArgs}(EventArgs);export{DraggingRowColumnEventArgs};var DroppingRowColumnEventArgs=function(e){__extends(DroppingRowColumnEventArgs,e);function DroppingRowColumnEventArgs(t,o){var n=e.call(this)||this;n._droppingRange=t;n._isDroppingRows=o;return n}Object.defineProperty(DroppingRowColumnEventArgs.prototype,\"droppingRange\",{get:function(){return this._droppingRange},enumerable:!0,configurable:!0});Object.defineProperty(DroppingRowColumnEventArgs.prototype,\"isDroppingRows\",{get:function(){return this._isDroppingRows},enumerable:!0,configurable:!0});return DroppingRowColumnEventArgs}(CancelEventArgs);export{DroppingRowColumnEventArgs};var UnknownFunctionEventArgs=function(e){__extends(UnknownFunctionEventArgs,e);function UnknownFunctionEventArgs(t,o){var n=e.call(this)||this;n._funcName=t;n._params=o;return n}Object.defineProperty(UnknownFunctionEventArgs.prototype,\"funcName\",{get:function(){return this._funcName},enumerable:!0,configurable:!0});Object.defineProperty(UnknownFunctionEventArgs.prototype,\"params\",{get:function(){return this._params},enumerable:!0,configurable:!0});return UnknownFunctionEventArgs}(EventArgs);export{UnknownFunctionEventArgs};var RowColumnChangedEventArgs=function(e){__extends(RowColumnChangedEventArgs,e);function RowColumnChangedEventArgs(t,o,n,i){var l=e.call(this)||this;if(isArray(t)){l._ranges=t;l._added=o;if(1===t.length){var r=t[0];if(n){l._index=r.leftCol;l._count=r.columnSpan}else{l._index=r.topRow;l._count=r.rowSpan}}else{l._index=-1;l._count=-1}}else{l._index=t;l._count=o;l._added=n;l._ranges=i?[new CellRange(-1,l._index,-1,l._index+l._count-1)]:[new CellRange(l._index,-1,l._index+l._count-1,-1)]}return l}Object.defineProperty(RowColumnChangedEventArgs.prototype,\"ranges\",{get:function(){return this._ranges},enumerable:!0,configurable:!0});Object.defineProperty(RowColumnChangedEventArgs.prototype,\"index\",{get:function(){return this._index},enumerable:!0,configurable:!0});Object.defineProperty(RowColumnChangedEventArgs.prototype,\"count\",{get:function(){return this._count},enumerable:!0,configurable:!0});Object.defineProperty(RowColumnChangedEventArgs.prototype,\"added\",{get:function(){return this._added},enumerable:!0,configurable:!0});Object.defineProperty(RowColumnChangedEventArgs.prototype,\"isAdd\",{get:function(){_deprecated(\"RowColumnChangedEventArgs.isAdd\",\"RowColumnChangedEventArgs.added\");return this._added},enumerable:!0,configurable:!0});return RowColumnChangedEventArgs}(EventArgs);export{RowColumnChangedEventArgs};var AutoFillingEventArgs=function(e){__extends(AutoFillingEventArgs,e);function AutoFillingEventArgs(t,o){var n=e.call(this)||this;n._range=t;n._op=o;return n}Object.defineProperty(AutoFillingEventArgs.prototype,\"range\",{get:function(){return this._range},enumerable:!0,configurable:!0});Object.defineProperty(AutoFillingEventArgs.prototype,\"operation\",{get:function(){return this._op},enumerable:!0,configurable:!0});return AutoFillingEventArgs}(CancelEventArgs);export{AutoFillingEventArgs};var AutoFilledEventArgs=function(e){__extends(AutoFilledEventArgs,e);function AutoFilledEventArgs(t,o){var n=e.call(this)||this;n._range=t;n._op=o;return n}Object.defineProperty(AutoFilledEventArgs.prototype,\"range\",{get:function(){return this._range},enumerable:!0,configurable:!0});Object.defineProperty(AutoFilledEventArgs.prototype,\"operation\",{get:function(){return this._op},enumerable:!0,configurable:!0});return AutoFilledEventArgs}(EventArgs);export{AutoFilledEventArgs};var FlexSheetPanel=function(e){__extends(FlexSheetPanel,e);function FlexSheetPanel(t,o,n,i,l){return e.call(this,t,o,n,i,l)||this}FlexSheetPanel.prototype.getSelectedState=function(t,o,n){if(this.grid){var i=this.grid.selectedSheet,l=i?i.selectionRanges:null,r=l?l.length:0,s=e.prototype.getSelectedState.call(this,t,o,n);if(s===SelectedState.None&&r>0)for(var a=this.grid.getMergedRange(this,t,o),h=this.columns.length-1,u=this.rows.length-1,c=0;c=this.rows.length||asNumber(o,!1,!0)>=this.columns.length)return null;if(this.cellType===CellType.RowHeader)return t+1+\"\";var i=this.columns[asNumber(o,!1,!0)],l=this.grid?this.grid._getBindingColumn(this,t,i):i,r=this.grid;if(this.cellType===CellType.ColumnHeader){var s=this.rows[t];if(s&&s._ubv&&null!=s._ubv[i._hash])return e.prototype.getCellData.call(this,t,o,n);var a=r&&r.selectedSheet;if(a&&a.itemsSource||r&&r.itemsSource){var h=l._hdr;return a&&a._showDefaultHeader||null==h||h===l.binding||h===toHeaderCase(l.binding)?FlexSheet.convertNumberToAlpha(o):h}return a&&a._showDefaultHeader||null==l.header?FlexSheet.convertNumberToAlpha(o):l.header}var u=void 0,c=!1;if(n&&(!l||!l.dataMap)){var d=e.prototype.getCellData.call(this,t,o,!1),_=this.grid.editRange;if(isDate(d)&&(!_||!_.contains(t,o))||isNumber(d)){var g=r&&r._getCellStyle(t,o),f=g?g.format:\"\";\"\"===f&&(f=l?l.format:\"\");c=!0;u=Globalize.format(d,f)}}c||(u=e.prototype.getCellData.call(this,t,o,n));return u};FlexSheetPanel.prototype.setCellData=function(t,o,n,i,l){void 0===i&&(i=!0);void 0===l&&(l=!0);if(t>=this.rows.length||o>=this.columns.length)return!1;var r,s=this.getCellData(t,o,!1),a=this.grid._isPasting,h=this.columns[o],u=this.grid?this.grid._getBindingColumn(this,t,h):h,c=this.rows[t],d=(this.grid?this.grid._getCellStyle(t,o):null)||{},_=getType(s),g=culture.Globalize.numberFormat.currency.symbol,f=!1,p=!1;if(n instanceof _ValWithFormat){r=n.format;n=n.value}if(this.grid&&this.grid.selectedSheet){var w=this.grid.selectedSheet.findTable(t,o);if(w&&w.showHeaderRow){var m=w.getRange(TableSection.Header);if(t===m.row&&o>=m.leftCol&&o<=m.rightCol){if(null==n||isString(n)&&isNullOrWhiteSpace(n)&&!u.dataMap)return;if(!(c instanceof HeaderRow))return e.prototype.setCellData.call(this,t,o,n.toString(),!1,l);c._ubv[u._hash]=n.toString()}}}if(i&&n&&isString(n)&&\"'\"!==n[0]&&\"=\"!==n[0]){if(this.getCellData(t,o,!0)===n)return!1;var C=r||d.format||u.format,S=null;/[yYMhsmt\\:-]/.test(C)&&(S=Globalize.parseDate(n,C));null==S&&(S=Globalize.parseDate(n,\"\"));if(S)n=S;else{var b=new RegExp(\"[^\\\\d,\\\\.]\",\"g\");f=n[0]===g;p=\"%\"===n[n.length-1];if(u.dataType===DataType.String||isNullOrWhiteSpace(n)||null!=s&&_!==DataType.Number||b.test(n)&&!f&&!p)u.dataType===DataType.Boolean&&(n=changeType(n,DataType.Boolean,null));else{var y=changeType(n,DataType.Number,\"\");if(isNumber(y)){n=y;C||(f?this.grid.applyCellsStyle({format:\"C\"+(isInt(n)?\"0\":\"\")},[new CellRange(t,o)]):p&&this.grid.applyCellsStyle({format:\"P\"+(isInt(100*n)?\"0\":\"\")},[new CellRange(t,o)]))}else i=!1}}}(_isFormula(n)||isString(n)&&\"'\"===n[0]||!u.dataType)&&(i=!1);if(!(c instanceof HeaderRow))return e.prototype.setCellData.call(this,t,o,n,i&&!a,l);c._ubv[u._hash]=n};FlexSheetPanel.prototype._renderCell=function(t,o,n,i,l,r){var s,a,h,u,c=o*this.grid.columns.length+n,d=this.grid.getMergedRange(this,o,n);u=e.prototype._renderCell.call(this,t,o,n,i,l,r);if(this.cellType!==CellType.Cell)return u;if(d&&c>d.topRow*this.grid.columns.length+d.leftCol)return u;if(this.columns[n].renderSize<=0&&(!d||d.getRenderSize(this).width<=0))return u;if(s=t.childNodes[r]){null!=this.grid.editRange&&this.grid.editRange.contains(o,n)||this.grid.selectedSheet&&(h=this.grid.selectedSheet.findTable(o,n))&&h._updateCell(o,n,s);if(hasClass(s,\"wj-state-selected\")||hasClass(s,\"wj-state-multi-selected\")){s.style.backgroundColor=\"\";s.style.color=\"\"}else if(this.grid.selectedSheet&&(a=this.grid.selectedSheet._styledCells[c])){\"\"!==a.backgroundColor&&(s.style.backgroundColor=a.backgroundColor);\"\"!==a.color&&(s.style.color=a.color)}}return u};return FlexSheetPanel}(GridPanel);export{FlexSheetPanel};var HeaderRow=function(e){__extends(HeaderRow,e);function HeaderRow(){var t=e.call(this)||this;t.isReadOnly=!0;return t}return HeaderRow}(Row);export{HeaderRow};var DefinedName=function(){function DefinedName(e,t,o,n){this._owner=e;this._name=t;this._value=o;if(null!=n){if(!e._validateSheetName(n))throw\"The sheet name:(\"+n+\") does not exist in FlexSheet.\";this._sheetName=n}}Object.defineProperty(DefinedName.prototype,\"name\",{get:function(){return this._name},set:function(e){var t;if(this._name!==e){if(this._owner._checkExistDefinedName(name,this._sheetName))throw\"The \"+name+\" already existed in definedNames.\";t=this._name;this._name=e;this._owner._updateFormulasWithNameUpdating(t,this._name)}},enumerable:!0,configurable:!0});Object.defineProperty(DefinedName.prototype,\"value\",{get:function(){return this._value},set:function(e){this._value!==e&&(this._value=e)},enumerable:!0,configurable:!0});Object.defineProperty(DefinedName.prototype,\"sheetName\",{get:function(){return this._sheetName},enumerable:!0,configurable:!0});return DefinedName}();export{DefinedName};export function _isFormula(e){return e&&\"string\"==typeof e&&e.length>1&&\"=\"===e[0]&&\"=\"!==e[1]}export var AutoFillOperation;!function(e){e[e.CopyFormat=1]=\"CopyFormat\";e[e.CopyContent=2]=\"CopyContent\";e[e.FillSeries=4]=\"FillSeries\"}(AutoFillOperation||(AutoFillOperation={}));var _RangesHelper=function(){function _RangesHelper(){}_RangesHelper.validateRowRanges=function(e,t){return this._validateCellRanges(e,t,\"topRow\",\"bottomRow\",\"row2\")};_RangesHelper.validateColumnRanges=function(e,t){return this._validateCellRanges(e,t,\"leftCol\",\"rightCol\",\"col2\")};_RangesHelper._validateCellRanges=function(e,t,o,n,i){var l=(e=e.filter((function(e){return e&&e[o]>=0&&e[n]>=0&&e[o]1){for(var r=[],s=(e=e.sort((function(e,t){return t[o]>=e[o]&&t[n]<=e[n]?-1:e[o]-t[o]})))[0].clone(),a=1;a=s[o]&&h[n]<=s[n]);else if(h[o]<=s[n]+1)s[i]=h[n];else{r.push(s);s=h.clone()}a===l-1&&r.push(s)}e=r}return e};return _RangesHelper}(),_ValWithFormat=function _ValWithFormat(e,t){this.value=e;this.format=t},UndoStack=function(){function UndoStack(e){this.MAX_STACK_SIZE=500;this._stack=[];this._pointer=-1;this._resizingTriggered=!1;this.undoStackChanged=new Event;var t=this;t._owner=e;t._owner.prepareCellForEdit.addHandler(t._initCellEditAction,t);t._owner.cellEditEnded.addHandler((function(e,o){t._pendingAction&&(!o.data||46!==o.data.keyCode&&8!==o.data.keyCode)&&t._pendingAction instanceof _EditAction&&!t._pendingAction.isPaste&&t._afterProcessCellEditAction(t)}),t);t._owner.pasting.addHandler(t._initCellEditActionForPasting,t);t._owner.pastingCell.addHandler((function(e,o){t._pendingAction&&(t._pendingAction instanceof _EditAction?t._pendingAction.updateForPasting(o.range):t._pendingAction instanceof _CutAction&&t._pendingAction.updateForPasting(o.range))}),t);t._owner.pasted.addHandler((function(){if(t._pendingAction)if(t._pendingAction instanceof _EditAction&&t._pendingAction.isPaste)t._afterProcessCellEditAction(t);else if(t._pendingAction instanceof _CutAction){t._pendingAction.saveNewState();t._addAction(t._pendingAction);t._pendingAction=null}}),t);t._owner.resizingColumn.addHandler((function(e,o){if(0!==t.stackSize&&t._owner.selectedSheet&&!t._resizingTriggered){t._pendingAction=new _ColumnResizeAction(t._owner,o.panel,o.col);t._resizingTriggered=!0}}),t);t._owner.resizedColumn.addHandler((function(e,o){t._pendingAction instanceof _ColumnResizeAction&&t._pendingAction.saveNewState()&&t._addAction(t._pendingAction);t._pendingAction=null;t._resizingTriggered=!1}),t);t._owner.resizingRow.addHandler((function(e,o){if(0!==t.stackSize&&t._owner.selectedSheet&&!t._resizingTriggered){t._pendingAction=new _RowResizeAction(t._owner,o.panel,o.row);t._resizingTriggered=!0}}),t);t._owner.resizedRow.addHandler((function(e,o){t._pendingAction instanceof _RowResizeAction&&t._pendingAction.saveNewState()&&t._addAction(t._pendingAction);t._pendingAction=null;t._resizingTriggered=!1}),t);t._owner.draggingRowColumn.addHandler((function(e,o){0!==t.stackSize&&t._owner.selectedSheet&&o.isShiftKey&&(o.isDraggingRows?t._pendingAction=new _RowsChangedAction(t._owner):t._pendingAction=new _ColumnsChangedAction(t._owner))}),t);t._owner.endDroppingRowColumn.addHandler((function(e,o){!o.cancel&&t._pendingAction&&t._pendingAction.saveNewState()&&t._addAction(t._pendingAction);t._pendingAction=null}),t)}Object.defineProperty(UndoStack.prototype,\"stackSize\",{get:function(){return null==this._stackSize?this.MAX_STACK_SIZE:this._stackSize},set:function(e){isNumber(e)&&(e<0?this._stackSize=0:e>this.MAX_STACK_SIZE?this._stackSize=this.MAX_STACK_SIZE:this._stackSize=Math.floor(e))},enumerable:!0,configurable:!0});Object.defineProperty(UndoStack.prototype,\"canUndo\",{get:function(){return this._pointer>-1&&this._pointer-1&&this._pointer+10&&this._stack.length>this._pointer+1&&this._stack.splice(this._pointer+1,this._stack.length-this._pointer-1);this._stack.length>=this.stackSize&&this._stack.splice(0,this._stack.length-this.stackSize+1);this._pointer=this._stack.length;this._stack.push(e);this.onUndoStackChanged()};UndoStack.prototype._pop=function(){var e;if(this._pointer<0)return null;e=this._stack[this._pointer];this._pointer--;return e};UndoStack.prototype._updateCurrentAction=function(e){var t;this._pointer<0||(t=this._stack[this._pointer])instanceof e&&t.saveNewState()};UndoStack.prototype._initCellEditAction=function(e,t){0!==this.stackSize&&this._owner.selectedSheet&&(this._pendingAction=new _EditAction(this._owner,t.range))};UndoStack.prototype._initCellEditActionForPasting=function(){if(0!==this.stackSize&&this._owner.selectedSheet)if(this._owner._isCutting)this._pendingAction=new _CutAction(this._owner);else{this._pendingAction=new _EditAction(this._owner);this._pendingAction.markIsPaste()}};UndoStack.prototype._afterProcessCellEditAction=function(e){if(e._pendingAction){e._pendingAction instanceof _EditAction&&e._pendingAction.saveNewState()&&e._addAction(this._pendingAction);e._pendingAction=null}};UndoStack.prototype._beforeUndoRedo=function(e){this._owner.selectedSheetIndex=e.sheetIndex};return UndoStack}();export{UndoStack};var FlexSheetValueFilterEditor=function(e){__extends(FlexSheetValueFilterEditor,e);function FlexSheetValueFilterEditor(){return null!==e&&e.apply(this,arguments)||this}FlexSheetValueFilterEditor.prototype.updateEditor=function(){var t=this.filter.column,o=t.grid,n=t.index,i=[],l={};if(this.filter.uniqueValues||null!=o.itemsSource&&null!=o.childItemsPath)e.prototype.updateEditor.call(this);else{for(var r=0;r-1){l.sortDescriptions.moveCurrentToPosition(o);l.sortDescriptions.currentItem.ascending=t;n=-o}else{l.addSortLevel(i.index,t);n=-(l.sortDescriptions.items.length-1)}l.moveSortLevel(n);l.commitSort();this.onButtonClicked()};FlexSheetColumnFilterEditor.prototype.cloneElement=function(e){for(var t=e.cloneNode();e.firstChild;)t.appendChild(e.lastChild);return t};return FlexSheetColumnFilterEditor}(ColumnFilterEditor);export{FlexSheetColumnFilterEditor};var FlexSheetFilter=function(e){__extends(FlexSheetFilter,e);function FlexSheetFilter(){return null!==e&&e.apply(this,arguments)||this}Object.defineProperty(FlexSheetFilter.prototype,\"filterDefinition\",{get:function(){for(var e={filters:[]},t=0;t-1)if(o.conditionFilter.isActive){var n=o.conditionFilter;e.filters.push({columnIndex:o.column.index,type:\"condition\",condition1:{operator:n.condition1.operator,value:n.condition1.value},and:n.and,condition2:{operator:n.condition2.operator,value:n.condition2.value}})}else if(o.valueFilter.isActive){var i=o.valueFilter;e.filters.push({columnIndex:o.column.index,type:\"value\",filterText:i.filterText,showValues:i.showValues})}}return JSON.stringify(e)},set:function(e){var t=JSON.parse(asString(e));this.clear();for(var o=0;o0&&(o._undoAcion=new _FilteringAction(n));n.rightToLeft&&(i.dir=\"rtl\");r.filterChanged.addHandler((function(){s.cancel=!1;o._filterChanged=!0;setTimeout((function(){if(!s.cancel){o.apply();if(o._undoAcion){o._undoAcion.saveNewState();n.undoStack._addAction(o._undoAcion);o._undoAcion=null}}}))}));r.buttonClicked.addHandler((function(){o.closeEditor();n.focus();o.onFilterChanged(s)}));r.lostFocus.addHandler((function(){setTimeout((function(){var e=Control.getControl(o._divEdt);e&&!e.containsFocus()&&o.closeEditor()}),10)}));n._edtHdl._commitRowEdits();n.scrollIntoView(-1,e.index,!0);var a=o.grid.columnHeaders,h=t?t.row:a.rows.length-1,u=t?t.col:e.index,c=a.getCellBoundingRect(h,u),d=document.elementFromPoint(c.left+c.width/2,c.top+c.height/2);(d=closest(d,\".wj-cell\"))?showPopup(i,d,!1,!1,!1):showPopup(i,c);o._setAriaExpanded(d,!0);o._setAriaExpanded(n.cells.getCellElement(-1,u),!0);for(var _=r.hostElement.querySelectorAll(\"input\"),g=0;g<_.length;g++){var f=_[g];if(f.offsetHeight>0&&f.tabIndex>-1&&!f.disabled){f.focus();break}}r.containsFocus()||r.focus()}};FlexSheetFilter.prototype.closeEditor=function(){this._undoAcion&&!this._filterChanged&&(this._undoAcion=null);e.prototype.closeEditor.call(this)};FlexSheetFilter.prototype.getColumnFilter=function(e,t){void 0===t&&(t=!0);isString(e)?e=this.grid.columns.getColumn(e):isNumber(e)&&(e=this.grid.columns[e]);if(!e)return null;e=asType(e,Column);for(var o=0;o=0}))};FlexSheetFilter.prototype._checkGroupVisible=function(e){for(var t,o=!0,n=e.topRow+1;n<=e.bottomRow;n++)if(t=this.grid.rows[n])if(t instanceof GroupRow)o=this._checkGroupVisible(t.getCellRange());else if(o=this._filter(n))break;return o};return FlexSheetFilter}(FlexGridFilter);export{FlexSheetFilter};var _FlexSheetSelectionHandler=function(e){__extends(_FlexSheetSelectionHandler,e);function _FlexSheetSelectionHandler(t){var o=e.call(this,t)||this;o._fs=t;return o}_FlexSheetSelectionHandler.prototype.moveSelection=function(t,o,n){var i=this._fs;!n&&i._lastSelMovePos&&this.selection.copy(i._lastSelMovePos);i._lastSelMovePos=null;e.prototype.moveSelection.call(this,t,o,n)};return _FlexSheetSelectionHandler}(_SelectionHandler);export{_FlexSheetSelectionHandler};var _ContextMenu=function(e){__extends(_ContextMenu,e);function _ContextMenu(t,o){var n=e.call(this,t)||this;n._idx=-1;n._owner=o;return n}Object.defineProperty(_ContextMenu.prototype,\"visible\",{get:function(){return\"none\"!==this.hostElement.style.display},enumerable:!0,configurable:!0});_ContextMenu.prototype.show=function(e,t){if(this._owner.selectedSheet){var o=(t?t.x:e.clientX)+(e?window.pageXOffset:0),n=(t?t.y:e.clientY)+(e?window.pageYOffset:0);this.hostElement.style.position=\"absolute\";this.hostElement.style.display=\"inline\";n+this.hostElement.clientHeight>window.innerHeight+(e?window.pageYOffset:0)&&(n-=this.hostElement.clientHeight);o+this.hostElement.clientWidth>window.innerWidth+(e?window.pageXOffset:0)&&(o-=this.hostElement.clientWidth);this.hostElement.style.top=n+\"px\";this.hostElement.style.left=o+\"px\"}};_ContextMenu.prototype.hide=function(){this._idx=-1;var e=this.hostElement.querySelectorAll(\".wj-context-menu-item\");this._removeSelectedState(e);this.hostElement.style.display=\"none\"};_ContextMenu.prototype.moveToNext=function(){var e=this.hostElement.querySelectorAll(\".wj-context-menu-item\");this._removeSelectedState(e);this._idx++;for(;e[this._idx]&&(\"none\"===e[this._idx].style.display||hasClass(e[this._idx],\"wj-state-disabled\"));)this._idx++;this._idx>=e.length&&(this._idx=0);addClass(e[this._idx],\"wj-context-menu-item-selected\")};_ContextMenu.prototype.moveToPrev=function(){var e=this.hostElement.querySelectorAll(\".wj-context-menu-item\");this._removeSelectedState(e);this._idx--;this._idx<0&&(this._idx=e.length-1);for(;this._idx>0&&(\"none\"===e[this._idx].style.display||hasClass(e[this._idx],\"wj-state-disabled\"));)this._idx--;addClass(e[this._idx],\"wj-context-menu-item-selected\")};_ContextMenu.prototype.moveToFirst=function(){var e=this.hostElement.querySelectorAll(\".wj-context-menu-item\");this._removeSelectedState(e);this._idx=0;addClass(e[this._idx],\"wj-context-menu-item-selected\")};_ContextMenu.prototype.moveToLast=function(){var e=this.hostElement.querySelectorAll(\".wj-context-menu-item\");this._removeSelectedState(e);this._idx=e.length-1;e[this._idx]&&\"none\"===e[this._idx].style.display&&this._idx--;addClass(e[this._idx],\"wj-context-menu-item-selected\")};_ContextMenu.prototype.handleContextMenu=function(){if(-1===this._idx)this.moveToNext();else{var e=this.hostElement.querySelectorAll(\".wj-context-menu-item\");this._handleMenuItemOperation(e);this.hide();this._owner.hostElement.focus()}};_ContextMenu.prototype.refresh=function(t){void 0===t&&(t=!0);e.prototype.refresh.call(this,t);this._localize()};_ContextMenu.prototype._init=function(){var e=this,t=e.hostElement.querySelectorAll(\".wj-context-menu-item\");e.hostElement.style.zIndex=\"9999\";document.body.appendChild(e.hostElement);e.addEventListener(document.body,\"mousemove\",(function(){e._removeSelectedState(t)}));e.addEventListener(e.hostElement,\"contextmenu\",(function(e){e.preventDefault()}));this._localize()};_ContextMenu.prototype._handleMenuItemOperation=function(e){};_ContextMenu.prototype._localize=function(){};_ContextMenu.prototype._removeSelectedState=function(e){for(var t=0;t
';return _SheetTabContextMenu}(_ContextMenu);export{_SheetTabContextMenu};var Sheet=function(){function Sheet(e,t,o,n,i){this._visible=!0;this._unboundSortDesc=new ObservableArray;this._currentStyledCells={};this._currentMergedRanges=[];this._isEmptyGrid=!1;this._rowSettings=[];this._scrollPosition=new Point;this._showDefaultHeader=!1;this._ownerHeaderRowRemoved=!1;this.nameChanged=new Event;this.visibleChanged=new Event;var l=this;l._owner=e;l._name=o;l._sortList=[new ColumnSortDescription(-1,!0)];isNumber(n)&&!isNaN(n)&&n>=0?l._rowCount=n:l._rowCount=200;isNumber(i)&&!isNaN(i)&&i>=0?l._columnCount=i:l._columnCount=20;if(t){l._showDefaultHeader=!0;l._grid=t;l._addHeaderRow(!0)}else l._grid=this._createGrid();l._grid.loadedRows.addHandler((function(){l._owner&&l._owner._checkCollectionsOwner();l._addHeaderRow();l._setRowSettings()}));l._grid.refreshed.addHandler((function(){l._owner&&l._owner._checkCollectionsOwner()}));l._grid.itemsSourceChanged.addHandler(this._gridItemsSourceChanged,this);l._unboundSortDesc.collectionChanged.addHandler((function(){var e,t,o=l._unboundSortDesc,n={};for(e=0;e=s.rows.length||r.leftCol>=s.columns.length)throw\"\";if(r.leftCol+r.columnSpan>s.columns.length)throw\"\";if(r.topRow+r.rowSpan>s.rows.length)throw\"\";for(o=r.topRow;o<=r.bottomRow;o++)for(n=r.leftCol;n<=r.rightCol;n++)if(l.findTable(o,n)!==i)throw\"\";i._attachSheet(l)}catch(e){l.tables.removeAt(t.index)}}}else t.action===NotifyCollectionChangedAction.Remove&&t.item&&t.item._detachSheet()}))}Object.defineProperty(Sheet.prototype,\"grid\",{get:function(){null==this._grid.wj_sheetInfo&&(this._grid.wj_sheetInfo={});return this._grid},enumerable:!0,configurable:!0});Object.defineProperty(Sheet.prototype,\"name\",{get:function(){return this._name},set:function(e){if(!isNullOrWhiteSpace(e)&&(this._name&&this._name.toLowerCase()!==e.toLowerCase()||!this._name)){var t=new PropertyChangedEventArgs(\"sheetName\",this._name,e);this._name=e;this.grid.wj_sheetInfo.name=e;this.onNameChanged(t)}},enumerable:!0,configurable:!0});Object.defineProperty(Sheet.prototype,\"visible\",{get:function(){return this._visible},set:function(e){if(this._visible!==e){this._visible=e;this.grid.wj_sheetInfo.visible=e;this.onVisibleChanged(new EventArgs)}},enumerable:!0,configurable:!0});Object.defineProperty(Sheet.prototype,\"rowCount\",{get:function(){return null!=this._grid?this._grid.rows.length:0},set:function(e){var t;if(!this.itemsSource&&isNumber(e)&&!isNaN(e)&&e>=0&&this._rowCount!==e){if(this._rowCount=0&&this._columnCount!==e){if(this._columnCount0&&(o=e._selectionRanges[t-1])&&o instanceof CellRange&&(e._owner.selection=o);if(t>1){e._owner._enableMulSel=!0;e._owner.refresh(!1)}e._owner._enableMulSel=!1}}),this)}return this._selectionRanges},enumerable:!0,configurable:!0});Object.defineProperty(Sheet.prototype,\"itemsSource\",{get:function(){return null!=this._grid?this._grid.itemsSource:null},set:function(e){if(!this._grid||this._grid.itemsSource!=e){if(null==this._grid){this._createGrid();this._grid.itemsSourceChanged.addHandler(this._gridItemsSourceChanged,this)}this._owner&&this._owner._isCopying||(this._dataView=null);this._isEmptyGrid&&this._clearGrid();this._grid.itemsSource=e}},enumerable:!0,configurable:!0});Object.defineProperty(Sheet.prototype,\"filterSetting\",{get:function(){this._owner&&this===this._owner.selectedSheet&&this._getFilterSetting();return this._filterSetting},set:function(e){this._filterSetting=e;this._owner&&this===this._owner.selectedSheet&&this._applyFilterSetting()},enumerable:!0,configurable:!0});Object.defineProperty(Sheet.prototype,\"tables\",{get:function(){null==this._tables&&(this._tables=new ObservableArray);return this._tables},enumerable:!0,configurable:!0});Object.defineProperty(Sheet.prototype,\"_styledCells\",{get:function(){this._currentStyledCells||(this._currentStyledCells={});return this._currentStyledCells},set:function(e){this._currentStyledCells=e},enumerable:!0,configurable:!0});Object.defineProperty(Sheet.prototype,\"_mergedRanges\",{get:function(){this._currentMergedRanges||(this._currentMergedRanges=[]);return this._currentMergedRanges},enumerable:!0,configurable:!0});Sheet.prototype.onNameChanged=function(e){this.nameChanged.raise(this,e)};Sheet.prototype.onVisibleChanged=function(e){this.visibleChanged.raise(this,e)};Sheet.prototype.dispose=function(){this._clearGrid();this._grid.wj_sheetInfo=null;this._grid.dispose();this._grid=null;if(null!=this._tables){for(var e=0;e=n||t>=i)return null;o=e*i+t;return this._styledCells[o]};Sheet.prototype.addTableFromArray=function(e,t,o,n,i,l,r,s){void 0===s&&(s=!0);var a,h,u,c,d,_,g,f,p,w,m,C,S=!1;if(this._owner){m=this===this._owner.selectedSheet?this._owner:this.grid;if(null==o||0===o.length)throw\"Invalid array to load.\";if(!(null!=n&&0!==n.length||null!=(n=Object.keys(o[0]))&&0!==n.length))throw\"Invalid array to load.\";if(e>=this.rowCount||t>=this.columnCount)return null;var b=null==(r&&r.showHeaderRow)||r.showHeaderRow,y=!(!r||!r.showTotalRow),R=e+(b?1:0),v=R+o.length-1+(y?1:0);a=[];for(p=0;p=m.columns.length){if(!s)return null;_=t+n.length-m.columns.length+1;if(this.itemsSource&&_>0)return null;m.columns.beginUpdate();for(g=0;g<_;g++)m.columns.push(new Column);m.columns.endUpdate()}m.beginUpdate();S&&this._moveDownCells(c,u);if(b)for(p=0;p0)for(var i=0;i=(n=(o=this._tables[i]).getRange()).topRow&&e<=n.bottomRow&&t>=n.leftCol&&t<=n.rightCol)return o;return null};Sheet.prototype._attachOwner=function(e){var t=this;if(this._owner!==e){this._owner=e;if(this._owner){var o=!1;this._owner.loadedRows.addHandler((function(){if(!o){o=!0;t._addHeaderRow()}}))}}};Sheet.prototype._setValidName=function(e){this._name=e;this.grid.wj_sheetInfo.name=e};Sheet.prototype._storeRowSettings=function(){var e,t=0;if(this._owner){this._rowSettings=[];for(;t=0;o--){t=this.selectionRanges[o];e.contains(t)&&this.selectionRanges.removeAt(o)}e.isValid&&this.selectionRanges.push(e);this.selectionRanges.endUpdate()};Sheet.prototype._compareRows=function(){var e=this,t=this._unboundSortDesc;return function(o,n){for(var i=0;is?1:0;isString(r)&&isNumber(s)&&(a=1);isString(s)&&isNumber(r)&&(a=-1);if(0!==a)return l.ascending?+a:-a}return 0}};Sheet.prototype._createGrid=function(){var e,t,o,n,i=document.createElement(\"div\");this._isEmptyGrid=!0;i.style.visibility=\"hidden\";document.body.appendChild(i);e=new FlexGrid(i);document.body.removeChild(i);for(n=0;n=r.rows.length)return i=e.rowSpan-l;for(o=e.leftCol;o<=e.rightCol&&o=l.topRow;t--)for(o=l.leftCol;o<=l.rightCol;o++){i=null!=r.columns[o].dataMap;n=r.getCellData(t,o,i);r.setCellData(t+1,o,n);r.setCellData(t,o,\"\")}e._updateTableRange(1,1,0,0)};Sheet.prototype._moveDownCells=function(e,t){var o,n,i,l,r,s,a,h,u,c,d=this===this._owner.selectedSheet?this._owner:this.grid;for(o=d.rows.length-1-e;o>=t.topRow;o--)for(n=t.leftCol;n<=t.rightCol&&no.topRow+e;n--)for(i=o.leftCol;i<=o.rightCol;i++){r=null!=s.columns[i].dataMap;l=s.getCellData(n,i,r);s.setCellData(n+t,i,l);s.setCellData(n,i,\"\");(n+t)*s.columns.length+i;n*s.columns.length+i;void 0}};Sheet.prototype._moveUpCellsWithinTable=function(e,t,o){var n,i,l,r,s=o.topRow+e,a=this===this._owner.selectedSheet?this._owner:this.grid;for(n=s;n<=o.bottomRow;n++)for(i=o.leftCol;i<=o.rightCol;i++){if(n>=s+t){r=null!=a.columns[i].dataMap;l=a.getCellData(n,i,r);a.setCellData(n-t,i,l)}a.setCellData(n,i,\"\");(n-t)*a.columns.length+i;n*a.columns.length+i;void 0}};Sheet.prototype._canShiftCells=function(e){var t,o,n,i,l,r,s=this===this._owner.selectedSheet?this._owner:this.grid;for(t=e.topRow;te.rightCol))return!1;n=t*s.columns.length+o;if((i=this._mergedRanges[n])&&(i.leftCole.rightCol))return!1}return!0};Sheet.prototype._needMoveDownTable=function(e){var t,o,n=e.getRange(),i=e.getColumns(),l=this===this._owner.selectedSheet?this._owner:this.grid;if(0===n.topRow)return!0;for(t=0;t0)for(;u=(n=this._mergedRanges[o]).topRow&&e<=n.bottomRow&&t>=n.leftCol&&t<=n.rightCol)return n;return null};return Sheet}();export{Sheet};var SheetCollection=function(e){__extends(SheetCollection,e);function SheetCollection(){var t=null!==e&&e.apply(this,arguments)||this;t._current=-1;t.sheetCleared=new Event;t.selectedSheetChanged=new Event;t.sheetNameChanged=new Event;t.sheetVisibleChanged=new Event;return t}SheetCollection.prototype.onSheetCleared=function(){this.sheetCleared.raise(this)};Object.defineProperty(SheetCollection.prototype,\"selectedIndex\",{get:function(){return this._current},set:function(e){this._moveCurrentTo(+e)},enumerable:!0,configurable:!0});SheetCollection.prototype.onSelectedSheetChanged=function(e){this.selectedSheetChanged.raise(this,e)};SheetCollection.prototype.insert=function(t,o){var n;(n=o.name?this.getValidSheetName(o):this._getUniqueName())!==o.name&&(o.name=n);e.prototype.insert.call(this,t,o);this._postprocessSheet(o)};SheetCollection.prototype.push=function(){for(var t=[],o=0;o=this.length&&(this._current=this.length-1);e.prototype.onCollectionChanged.call(this,t)};SheetCollection.prototype.onSheetNameChanged=function(e){this.sheetNameChanged.raise(this,e)};SheetCollection.prototype.onSheetVisibleChanged=function(e){this.sheetVisibleChanged.raise(this,e)};SheetCollection.prototype.selectFirst=function(){return this._moveCurrentTo(0)};SheetCollection.prototype.selectLast=function(){return this._moveCurrentTo(this.length-1)};SheetCollection.prototype.selectPrevious=function(){return this._moveCurrentTo(this._current-1)};SheetCollection.prototype.selectNext=function(){return this._moveCurrentTo(this._current+1)};SheetCollection.prototype.hide=function(e){if(e<0&&e>=this.length)return!1;if(!this[e].visible)return!1;this[e].visible=!1;return!0};SheetCollection.prototype.show=function(e){if(e<0&&e>=this.length)return!1;this[e].visible=!0;this._moveCurrentTo(e);return!0};SheetCollection.prototype.clear=function(){for(var t=0;t=this.length)return!1;if(this._currento)for(;o>=0&&!this[o].visible;)o--;if(o===this.length){o=e;for(;o>=0&&!this[o].visible;)o--}if(o<0)return!1;if(o!==this._current){t=new PropertyChangedEventArgs(\"sheetIndex\",this._current,o);this._current=o;this.onSelectedSheetChanged(t)}return!0};SheetCollection.prototype._getSheetIndexFrom=function(e){var t;if(!e)return-1;e=e.toLowerCase();for(var o=0;o-1){if(t.target instanceof HTMLLIElement&&e._owner._isDescendant(e._tabContainer,t.target))o=e._getItemIndex(e._tabContainer,t.target);else{i=e._tabContainer.getBoundingClientRect();o=t.clientXi.right?e._sheets.length-1:-1}if(o!==e._dragSrcIdx){n=e._sheets[e._dragSrcIdx];e._sheets._exchangingPosition=!0;e._sheets.beginUpdate();e._sheets.splice(e._dragSrcIdx,1);e._sheets.splice(o,0,n);e._sheets.endUpdate();e._owner.selectedSheetIndex=o;e._sheets._exchangingPosition=!1}}e._dragSrcIdx=-1;t.preventDefault();t.stopPropagation()}));e.addEventListener(e._newSheet,\"click\",(function(t){var o=e._owner.selectedSheetIndex;e._owner.addUnboundSheet();e._scrollToActiveSheet(e._owner.selectedSheetIndex,o)}));e._sheets.collectionChanged.addHandler(e._sourceChanged,e);e._sheets.selectedSheetChanged.addHandler(e._selectedSheetChanged,e);e._sheets.sheetNameChanged.addHandler(e._updateSheetName,e);e._sheets.sheetVisibleChanged.addHandler(e._updateTabShown,e);e._initSheetPage();e._initSheetTab()};_SheetTabs.prototype._initSheetTab=function(){var e=this;e.addEventListener(e._tabContainer,\"mousedown\",(function(t){var o,n=t.target;if(n instanceof HTMLLIElement){e._sheetTabClicked=!0;o=e._getItemIndex(e._tabContainer,n);e._scrollSheetTabContainer(n);o>-1&&(e._sheets.selectedIndex=o)}}));e.addEventListener(e._tabContainer,\"dblclick\",(function(t){var o,n=t.target;if(n instanceof HTMLLIElement){o=e._getItemIndex(e._tabContainer,n);e._scrollSheetTabContainer(n);o>-1&&e._startEditingSheetName(o)}}));e.addEventListener(e._tabContainer,\"contextmenu\",(function(t){t.preventDefault();e._contextMenu.show(t)}))};_SheetTabs.prototype._initSheetPage=function(){var e=this;e.hostElement.querySelector(\"div.wj-sheet-page\").addEventListener(\"click\",(function(t){var o=\"[object HTMLButtonElement]\"===t.target.toString()?t.target:t.target.parentElement,n=e._getItemIndex(e._sheetPage,o);if(0!==e._sheets.length)switch(n){case 0:e._sheets.selectFirst();break;case 1:e._sheets.selectPrevious();break;case 2:e._sheets.selectNext();break;case 3:e._sheets.selectLast()}}))};_SheetTabs.prototype._getSheetTabs=function(){var e,t=\"\";for(e=0;e\"};_SheetTabs.prototype._updateTabActive=function(e,t){e>=0&&e=this._tabContainer.children.length)){t.item.visible?removeClass(this._tabContainer.children[t.index],\"hidden\"):addClass(this._tabContainer.children[t.index],\"hidden\");this._adjustSize()}};_SheetTabs.prototype._adjustSize=function(){var e,t,o,n=this._tabContainer.childElementCount,i=0;if(\"none\"!==this.hostElement.style.display){o=this._tabContainer.parentElement.scrollLeft;this._tabContainer.parentElement.style.width=\"\";this._tabContainer.style.width=\"\";this._sheetPage.parentElement.style.width=\"\";for(e=0;et?t:i)+\"px\";this._tabContainer.style.width=i+\"px\";this._sheetPage.parentElement.style.width=this._sheetPage.offsetWidth+this._newSheet.offsetWidth+this._tabContainer.parentElement.offsetWidth+3+\"px\";this._tabContainer.parentElement.scrollLeft=o}};_SheetTabs.prototype._getItemIndex=function(e,t){for(var o=0;ol+o?this._tabContainer.parentElement.scrollLeft+=e.offsetWidth:t+e.offsetLeftl+o&&(this._tabContainer.parentElement.scrollLeft+=e.offsetWidth);break;default:e.offsetLeft-i+o<0?this._tabContainer.parentElement.scrollLeft+=e.offsetWidth:e.offsetLeft+e.offsetWidth-i+o>l&&(this._tabContainer.parentElement.scrollLeft-=e.offsetWidth)}else e.offsetLeft+e.offsetWidth-n>l+o?this._tabContainer.parentElement.scrollLeft+=e.offsetWidth:e.offsetLeft-nthis._tabContainer.parentElement.clientWidth?this._tabContainer.clientWidth-this._tabContainer.parentElement.clientWidth:0;if(l.length>0&&e=t)for(i=t+1;i<=e;i++){o=l[i];this._scrollSheetTabContainer(o)}else for(i=t-1;i>=e;i--){o=l[i];this._scrollSheetTabContainer(o)}}};_SheetTabs.prototype._adjustNavigationButtons=function(e){var t,o=this.hostElement.querySelectorAll(\".wj-sheet-page button\");if(o&&4===o.length)if(e){t=o[0].querySelector(\"span\");removeClass(t,\"wj-glyph-step-backward\");addClass(t,\"wj-glyph-step-forward\");t=o[1].querySelector(\"span\");removeClass(t,\"wj-glyph-left\");addClass(t,\"wj-glyph-right\");t=o[2].querySelector(\"span\");removeClass(t,\"wj-glyph-right\");addClass(t,\"wj-glyph-left\");t=o[3].querySelector(\"span\");removeClass(t,\"wj-glyph-step-forward\");addClass(t,\"wj-glyph-step-backward\")}else{t=o[0].querySelector(\"span\");removeClass(t,\"wj-glyph-step-forward\");addClass(t,\"wj-glyph-step-backward\");t=o[1].querySelector(\"span\");removeClass(t,\"wj-glyph-right\");addClass(t,\"wj-glyph-left\");t=o[2].querySelector(\"span\");removeClass(t,\"wj-glyph-left\");addClass(t,\"wj-glyph-right\");t=o[3].querySelector(\"span\");removeClass(t,\"wj-glyph-step-backward\");addClass(t,\"wj-glyph-step-forward\")}};_SheetTabs.prototype._startEditingSheetName=function(e){var t,o=this,n=o._tabContainer.children[e],i=n.textContent;o._editingSheetTab=n;o._measureEle=document.createElement(\"span\");o._measureEle.setAttribute(FlexGrid._WJS_MEASURE,\"true\");o._measureEle.style.visibility=\"hidden\";o.hostElement.appendChild(o._measureEle);n.innerHTML='';t=n.children[0];addClass(t,\"wj-sheet-name-editor wj-form-control\");t.value=i;setSelectionRange(t,0,i.length);o.addEventListener(t,\"keydown\",(function(e){e.keyCode===Key.Enter?o._commitSheetName():o._measureInputWidth(e.key)}));o.addEventListener(t,\"blur\",o._commitSheetName.bind(o))};_SheetTabs.prototype._commitSheetName=function(){var e,t,o;if(this._editingSheetTab){o=this._editingSheetTab.children[0];this.removeEventListener(o);e=o.value;t=this._getItemIndex(this._tabContainer,this._editingSheetTab);if(null!=e&&\"\"!==e&&-1===this._sheets._getSheetIndexFrom(e)){this._sheets[t].name=e;this._editingSheetTab.textContent=e}else this._editingSheetTab.textContent=this._sheets[t].name;this._editingSheetTab=null;removeChild(this._measureEle);this._measureEle=null;this._adjustSize()}};_SheetTabs.prototype._measureInputWidth=function(e){var t,o,n,i;if(this._editingSheetTab&&!(e.length>1)){o=(t=this._editingSheetTab.children[0]).selectionStart;n=t.selectionEnd;if(null!=(i=(i=t.value).substring(0,o)+e+i.substring(n))&&\"\"!==i){this._measureEle.textContent=i;t.style.width=this._measureEle.offsetWidth+\"px\";this._adjustSize()}}};_SheetTabs.controlTemplate='
    ';return _SheetTabs}(Control);export{_SheetTabs};var _UnboundSortDescription=function(){function _UnboundSortDescription(e,t){this._column=e;this._ascending=t}Object.defineProperty(_UnboundSortDescription.prototype,\"column\",{get:function(){return this._column},enumerable:!0,configurable:!0});Object.defineProperty(_UnboundSortDescription.prototype,\"ascending\",{get:function(){return this._ascending},enumerable:!0,configurable:!0});return _UnboundSortDescription}();export{_UnboundSortDescription};var _TabHolder=function(e){__extends(_TabHolder,e);function _TabHolder(t,o){var n=e.call(this,t)||this;n._splitterMousedownHdl=n._splitterMousedownHandler.bind(n);n._owner=o;n.applyTemplate(\"\",n.getTemplate(),{_divSheet:\"left\",_divSplitter:\"splitter\",_divRight:\"right\"});n._init();return n}Object.defineProperty(_TabHolder.prototype,\"sheetControl\",{get:function(){return this._sheetControl},enumerable:!0,configurable:!0});Object.defineProperty(_TabHolder.prototype,\"visible\",{get:function(){return\"none\"!==this.hostElement.style.display},set:function(e){this.hostElement.style.display=e?\"block\":\"none\";this._divSheet.style.display=e?\"block\":\"none\"},enumerable:!0,configurable:!0});_TabHolder.prototype.getSheetBlanketSize=function(){return 20};_TabHolder.prototype.adjustSize=function(){var e=this._owner.scrollSize.width-this._owner.clientSize.width,t=(this._owner.scrollSize.height,this._owner.clientSize.height,this._divSplitter.parentElement);if(e<=0){t.style.minWidth=\"100px\";this._divSplitter.style.display=\"none\";this._divRight.style.display=\"none\";this._divSheet.style.width=\"100%\";this._divSplitter.removeEventListener(\"mousedown\",this._splitterMousedownHdl,!0)}else{t.style.minWidth=\"300px\";this._divSplitter.style.display=\"none\";this._divRight.style.display=\"none\";this._divSheet.style.width=\"100%\";this._divSplitter.removeEventListener(\"mousedown\",this._splitterMousedownHdl,!0);this._divSplitter.addEventListener(\"mousedown\",this._splitterMousedownHdl,!0)}this._sheetControl._adjustSize()};_TabHolder.prototype._init=function(){var e=this;e._funSplitterMousedown=function(t){e._splitterMouseupHandler(t)};e._divSplitter.parentElement.style.height=e.getSheetBlanketSize()+\"px\";e._sheetControl=new _SheetTabs(e._divSheet,this._owner)};_TabHolder.prototype._splitterMousedownHandler=function(e){this._startPos=e.pageX;document.addEventListener(\"mousemove\",this._splitterMousemoveHandler.bind(this),!0);document.addEventListener(\"mouseup\",this._funSplitterMousedown,!0);e.preventDefault()};_TabHolder.prototype._splitterMousemoveHandler=function(e){null!==this._startPos&&void 0!==this._startPos&&this._adjustDis(e.pageX-this._startPos)};_TabHolder.prototype._splitterMouseupHandler=function(e){document.removeEventListener(\"mousemove\",this._splitterMousemoveHandler,!0);document.removeEventListener(\"mouseup\",this._funSplitterMousedown,!0);this._adjustDis(e.pageX-this._startPos);this._startPos=null};_TabHolder.prototype._adjustDis=function(e){var t=this._divRight.offsetWidth-e,o=this._divSheet.offsetWidth+e;if(t<=100){t=100;e=this._divRight.offsetWidth-t;o=this._divSheet.offsetWidth+e}else if(o<=100){e=(o=100)-this._divSheet.offsetWidth;t=this._divRight.offsetWidth-e}if(0!=e){this._divRight.style.width=t+\"px\";this._divSheet.style.width=o+\"px\";this._startPos=this._startPos+e}};_TabHolder.controlTemplate='
    ';return _TabHolder}(Control);export{_TabHolder};var _Expression=function(){function _Expression(e){this._token=e?e instanceof _Token?e:new _Token(e,_TokenID.ATOM,_TokenType.LITERAL):new _Token(null,_TokenID.ATOM,_TokenType.IDENTIFIER)}Object.defineProperty(_Expression.prototype,\"token\",{get:function(){return this._token},enumerable:!0,configurable:!0});_Expression.prototype.evaluate=function(e,t,o){if(this._token.tokenType===_TokenType.ERROR)throw this._token.value;if(this._token.tokenType!==_TokenType.LITERAL)throw new SyntaxError(_ErrorMessages.BadExpression);return this._token.value};_Expression.toString=function(e,t,o,n){var i=e.evaluate(t,o,n);if(i instanceof FormulaError)throw i;isPrimitive(i)||(i=i.value);return null!=i?i.toString():\"\"};_Expression.toNumber=function(e,t,o,n){var i=e.evaluate(t,o,n);if(i instanceof FormulaError)throw i;isPrimitive(i)||(i=i.value);if(isNumber(i))return i;if(isBoolean(i))return i?1:0;if(isDate(i))return FlexSheet._toOADate(i);if(isString(i)){if(this.isNullOrWhiteSpace(i))return i;if(!isNaN(+i))return+i;if(this.isDateValue(i))return FlexSheet._toOADate(new Date(i))}return changeType(i,DataType.Number,\"\")};_Expression.toBoolean=function(e,t,o,n){var i=e.evaluate(t,o,n);if(i instanceof FormulaError)throw i;isPrimitive(i)||(i=i.value);return isBoolean(i)?i:isNumber(i)?0!==i:changeType(i,DataType.Boolean,\"\")};_Expression.toDate=function(e,t,o,n){var i=e.evaluate(t,o,n);if(i instanceof FormulaError)throw i;isPrimitive(i)||(i=i.value);return isDate(i)?i:isNumber(i)?FlexSheet._fromOADate(i):changeType(i,DataType.Date,\"\")};_Expression.isDateValue=function(e){var t,o=[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\",\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"];isPrimitive(e)||(e=e.value);if(!(t=isDate(e))&&isString(e))for(var n in o)if(e.indexOf(o[n])>-1){t=!0;break}return t};_Expression.isNullOrWhiteSpace=function(e){return null==e||!/\\S/.test(e)};_Expression.prototype._updateCellRangeExp=function(e,t,o,n,i,l){return!1};_Expression.prototype._moveCellRangeExp=function(e,t,o,n,i){void 0===n&&(n=!1);void 0===i&&(i=!1);return!1};_Expression.prototype._updateCellRangeExpForReorderingRows=function(e){return!1};_Expression.prototype._updateCellBoundary=function(e,t){return!1};_Expression.prototype._getStringExpression=function(){return null==this._token.value?\"\":isString(this._token.value)?'\"'+this._token.value+'\"':this._token.value.toString()};return _Expression}();export{_Expression};var _UnaryExpression=function(e){__extends(_UnaryExpression,e);function _UnaryExpression(t,o){var n=e.call(this,t)||this;n._expr=o;return n}_UnaryExpression.prototype.evaluate=function(e,t,o){if(this._expr.token.tokenType===_TokenType.ERROR)throw this._expr.token.value;if(this.token.tokenID===_TokenID.SUB){if(null==this._evaluatedValue){var n=_Expression.toNumber(this._expr,e,t,o);this._evaluatedValue=isString(n)?NaN:-n}return this._evaluatedValue}if(this.token.tokenID===_TokenID.ADD){if(null==this._evaluatedValue){n=_Expression.toNumber(this._expr,e,t,o);this._evaluatedValue=isString(n)?NaN:+n}return this._evaluatedValue}throw new SyntaxError(_ErrorMessages.BadExpression)};_UnaryExpression.prototype._updateCellRangeExp=function(e,t,o,n,i,l){return this._expr._updateCellRangeExp(e,t,o,n,i,l)};_UnaryExpression.prototype._moveCellRangeExp=function(e,t,o,n,i){void 0===n&&(n=!1);void 0===i&&(i=!1);return this._expr._moveCellRangeExp(e,t,o,n,i)};_UnaryExpression.prototype._updateCellRangeExpForReorderingRows=function(e){return this._expr._updateCellRangeExpForReorderingRows(e)};_UnaryExpression.prototype._getStringExpression=function(){return this.token.tokenID===_TokenID.SUB?(this._inGroup?\"(\":\"\")+\"-\"+this._expr._getStringExpression()+(this._inGroup?\")\":\"\"):this.token.tokenID===_TokenID.ADD?(this._inGroup?\"(\":\"\")+\"+\"+this._expr._getStringExpression()+(this._inGroup?\")\":\"\"):\"\"};return _UnaryExpression}(_Expression);export{_UnaryExpression};var _BinaryExpression=function(e){__extends(_BinaryExpression,e);function _BinaryExpression(t,o,n){var i=e.call(this,t)||this;i._leftExpr=o;i._rightExpr=n;return i}_BinaryExpression.prototype.evaluate=function(e,t,o){var n,i,l,r,s,a,h,u,c;if(null!=this._evaluatedValue)return this._evaluatedValue;if(this._leftExpr.token.tokenType===_TokenType.ERROR)throw this._leftExpr.token.value;if(this._rightExpr.token.tokenType===_TokenType.ERROR)throw this._rightExpr.token.value;n=_Expression.toString(this._leftExpr,e,t,o);i=_Expression.toString(this._rightExpr,e,t,o);if(this.token.tokenType===_TokenType.CONCAT){this._evaluatedValue=n+i;return this._evaluatedValue}l=this._leftExpr.evaluate(e,t,o);if(!isPrimitive(l)){s=l.format;l=l.value}r=this._rightExpr.evaluate(e,t,o);if(!isPrimitive(r)){a=r.format;r=r.value}if(c=_Expression.isDateValue(l)||_Expression.isDateValue(r)){h=isDate(l)?FlexSheet._toOADate(l):isNumber(l)?l:FlexSheet._toOADate(new Date(l));u=isDate(r)?FlexSheet._toOADate(r):isNumber(r)?r:FlexSheet._toOADate(new Date(r))}else{h=_Expression.toNumber(this._leftExpr,e,t,o);u=_Expression.toNumber(this._rightExpr,e,t,o)}if(this.token.tokenType===_TokenType.COMPARE){if(typeof h!=typeof u)return!1;var d=h-u;switch(this.token.tokenID){case _TokenID.GT:return d>0;case _TokenID.LT:return d<0;case _TokenID.GE:return d>=0;case _TokenID.LE:return d<=0;case _TokenID.EQ:if(isNaN(d)){this._evaluatedValue=n.toLowerCase()===i.toLowerCase();return this._evaluatedValue}this._evaluatedValue=0===d;return this._evaluatedValue;case _TokenID.NE:if(isNaN(d)){this._evaluatedValue=n.toLowerCase()!==i.toLowerCase();return this._evaluatedValue}this._evaluatedValue=0!==d;return this._evaluatedValue}}switch(this.token.tokenID){case _TokenID.ADD:this._evaluatedValue=h+u;break;case _TokenID.SUB:this._evaluatedValue=h-u;break;case _TokenID.MUL:this._evaluatedValue=h*u;break;case _TokenID.DIV:if(0===u)throw this._evaluatedValue=new DivideByZeroError;this._evaluatedValue=h/u;break;case _TokenID.DIVINT:if(0===u)throw this._evaluatedValue=new DivideByZeroError;this._evaluatedValue=Math.floor(h/u);break;case _TokenID.MOD:if(0===u)throw this._evaluatedValue=new DivideByZeroError;this._evaluatedValue=Math.floor(h%u);break;case _TokenID.POWER:0===u&&(this._evaluatedValue=1);.5===u&&(this._evaluatedValue=Math.sqrt(h));1===u&&(this._evaluatedValue=h);2===u&&(this._evaluatedValue=h*h);3===u&&(this._evaluatedValue=h*h*h);4===u&&(this._evaluatedValue=h*h*h*h);this._evaluatedValue=Math.pow(h,u);break;default:this._evaluatedValue=NaN}if(!isNaN(this._evaluatedValue)){c&&(this._evaluatedValue={value:FlexSheet._fromOADate(this._evaluatedValue),format:s||a});return this._evaluatedValue}throw new SyntaxError(_ErrorMessages.BadExpression)};_BinaryExpression.prototype._updateCellRangeExp=function(e,t,o,n,i,l){var r,s=!1;r=this._leftExpr._updateCellRangeExp(e,t,o,n,i,l);s=s||r;r=this._rightExpr._updateCellRangeExp(e,t,o,n,i,l);return s||r};_BinaryExpression.prototype._moveCellRangeExp=function(e,t,o,n,i){void 0===n&&(n=!1);void 0===i&&(i=!1);var l,r=!1;l=this._leftExpr._moveCellRangeExp(e,t,o,n,i);r=r||l;l=this._rightExpr._moveCellRangeExp(e,t,o,n,i);return r||l};_BinaryExpression.prototype._updateCellRangeExpForReorderingRows=function(e){var t,o=!1;t=this._leftExpr._updateCellRangeExpForReorderingRows(e);o=o||t;t=this._rightExpr._updateCellRangeExpForReorderingRows(e);return o||t};_BinaryExpression.prototype._getStringExpression=function(){var e;switch(this.token.tokenID){case _TokenID.GT:e=\">\";break;case _TokenID.LT:e=\"<\";break;case _TokenID.GE:e=\">=\";break;case _TokenID.LE:e=\"<=\";break;case _TokenID.EQ:e=\"=\";break;case _TokenID.NE:e=\"<>\";break;case _TokenID.ADD:e=\"+\";break;case _TokenID.SUB:e=\"-\";break;case _TokenID.MUL:e=\"*\";break;case _TokenID.DIV:e=\"/\";break;case _TokenID.DIVINT:e=\"\\\\\";break;case _TokenID.POWER:e=\"^\";break;case _TokenID.CONCAT:e=\"&\";break;default:return\"\"}return(this._inGroup?\"(\":\"\")+this._leftExpr._getStringExpression()+e+this._rightExpr._getStringExpression()+(this._inGroup?\")\":\"\")};return _BinaryExpression}(_Expression);export{_BinaryExpression};var _CellRangeExpression=function(e){__extends(_CellRangeExpression,e);function _CellRangeExpression(t,o,n,i,l,r,s,a,h){void 0===i&&(i=!0);void 0===l&&(l=!1);void 0===r&&(r=!1);void 0===s&&(s=!1);void 0===a&&(a=!1);var u=e.call(this)||this;u._cells=new CellRange(t.topRow,t.leftCol,t.bottomRow,t.rightCol);u._sheetRef=o;u._flex=n;u._evalutingRange={};u._isCellRange=i;u._absRow=l;u._absCol=r;u._absRow2=s;u._absCol2=a;u._isWholeRow=h;return u}_CellRangeExpression.prototype.evaluate=function(e,t,o){var n=this._cells.clone();if(null==this._evaluatedValue){if(null!=this._isWholeRow)if(this._isWholeRow){n.col=0;n.col2=o?o.grid.columns.length-1:this._flex.columns.length-1}else{n.row=0;n.row2=o?o.grid.rows.length-1:this._flex.rows.length-1}this._evaluatedValue=this._getCellValue(n,o,e,t)}return this._evaluatedValue};_CellRangeExpression.prototype.getValues=function(e,t,o){void 0===e&&(e=!0);var n,i,l,r,s,a=[],h=0;if(!(o=this._getSheet()||o||this._flex.selectedSheet))return null;s=this._cells.clone();if(null!=this._isWholeRow)if(this._isWholeRow){s.col=0;s.col2=o.grid.columns.length-1}else{s.row=0;s.row2=o.grid.rows.length-1}l=null==t||isNaN(+t)?s.leftCol:t;r=null==t||isNaN(+t)?s.rightCol:t;for(i=s.topRow;i<=s.bottomRow&&i=e.topRow&&o<=e.bottomRow&&e.col===e.col2){l=o;r=e.col}if(null!=n&&n>=e.leftCol&&n<=e.rightCol&&e.row===e.row2){l=e.row;r=n}}if(null==l||null==r)throw new ReferenceError(_ErrorMessages.InvalidCellRef);i=t.name+\":\"+l+\",\"+r+\"-\"+l+\",\"+r;if(this._evalutingRange[i])throw new SyntaxError(_ErrorMessages.CircRef);try{if(this._flex){this._evalutingRange[i]=!0;var h=t===this._flex.selectedSheet?this._flex:t.grid;if(l0)return!1;if(e===this._flex.selectedSheetIndex){if(this._sheetRef&&this._sheetRef.toLowerCase()!==this._flex.selectedSheet.name.toLowerCase())return!1}else if(!this._sheetRef||this._sheetRef.toLowerCase()!==this._flex.selectedSheet.name.toLowerCase())return!1;if(i){if(null==this._isWholeRow||this._isWholeRow){if(l&&(r.leftCol>l.rightCol||r.rightCol=t){r.row+=o;r.row2+=o;s=!0}else if(r.topRow=t){r.row2+=o;s=!0}}else if(r.topRow>t){r.row-=o;r.row2-=o;s=!0}else if(r.isSingleCell){if(r.row>=t-o+1){r.row=t-o+1;r.row2=t-o+1;s=!0}}else if(r.topRow>=t-o+1){r.row=t-o+1;r.row2-=o;s=!0}else if(r.topRow=t-o+1){r.bottomRow>t?r.row2-=o:r.row2=t-o;s=!0}}}else if(null==this._isWholeRow||!this._isWholeRow){if(l&&(r.topRow>l.bottomRow||r.bottomRow=t){r.col+=o;r.col2+=o;s=!0}else if(r.leftCol=t){r.col2+=o;s=!0}}else if(r.leftCol>t){r.col-=o;r.col2-=o;s=!0}else if(r.isSingleCell){if(r.col>=t-o+1){r.col=t-o+1;r.col2=t-o+1;s=!0}}else if(r.leftCol>=t-o+1){r.col=t-o+1;r.col2-=o;s=!0}else if(r.leftCol=t-o+1){r.rightCol>t?r.col2-=o:r.col2=t-o;s=!0}}return s};_CellRangeExpression.prototype._moveCellRangeExp=function(e,t,o,n,i){void 0===n&&(n=!1);void 0===i&&(i=!1);var l,r,s=this._cells,a=!1;if(this._tableParams&&this._tableParams.length>0)return!1;if(this._flex.selectedSheetIndex!=e&&(!this._sheetRef||this._sheetRef.toLowerCase()!==this._flex.selectedSheet.name.toLowerCase()))return!1;if(!i&&this._flex.selectedSheetIndex==e&&this._sheetRef&&this._sheetRef.toLowerCase()!==this._flex.selectedSheet.name.toLowerCase())return!1;l=o.topRow-t.topRow;r=o.leftCol-t.leftCol;if(i){if(0!==l&&(null==this._isWholeRow||this._isWholeRow)){s.row+=i&&this._absRow?0:l;s.row2+=this._isCellRange?i&&this._absRow2?0:l:i&&this._absRow?0:l;a=!0}if(0!==r&&(null==this._isWholeRow||!this._isWholeRow)){s.col+=i&&this._absCol?0:r;s.col2+=this._isCellRange?i&&this._absCol2?0:r:i&&this._absCol?0:r;a=!0}return a}if(t.contains(s)){if(0!==l&&(null==this._isWholeRow||this._isWholeRow)){s.row+=l;s.row2+=l;a=!0}if(0!==r&&(null==this._isWholeRow||!this._isWholeRow)){s.col+=r;s.col2+=r;a=!0}}else if(t.intersects(s)){if(t.intersectsRow(s)){var h=t.topRow>=s.topRow&&t.bottomRow<=s.bottomRow;if(0!==l&&(null==this._isWholeRow||this._isWholeRow))if(t.topRow<=s.topRow){if(l<0){s.row+=l;a=!0}else if(l>0){var u=h&&o.bottomRow=s.bottomRow){if(l>0){s.row2+=l;a=!0}else if(l<0){var c=h&&o.topRow>s.topRow;if(n&&!c){t.bottomRow>s.bottomRow&&(s.row2+=t.bottomRow-s.bottomRow);s.row+=t.rowSpan;a=!0}}}else if(n){l<0&&o.topRow0&&o.bottomRow>s.bottomRow&&(s.row2-=t.rowSpan);a=!0}}if(t.intersectsColumn(s)&&0!==r&&(null==this._isWholeRow||!this._isWholeRow))if(t.leftCol<=s.leftCol){if(r<0){s.col+=r;a=!0}else if(r>0&&n){t.leftCol=s.rightCol){if(r>0){s.col2+=r;a=!0}else if(r<0&&n){t.rightCol>s.rightCol&&(s.col2+=t.rightCol-s.rightCol);s.col+=t.columnSpan;a=!0}}else if(n){r<0?s.col+=t.columnSpan:s.col2-=t.columnSpan;a=!0}}else if(n){if(null==this._isWholeRow||this._isWholeRow)if(s.containsRow(o.topRow)){l<0?s.row2+=o.rowSpan:s.row-=o.rowSpan;a=!0}else{if(s.topRow>=o.topRow&&s.topRowt.bottomRow&&s.bottomRow<=o.bottomRow&&l>0){s.row-=o.rowSpan;s.row2-=o.rowSpan;a=!0}}if(null==this._isWholeRow||!this._isWholeRow)if(s.containsColumn(o.leftCol)){r<0?s.col2+=o.columnSpan:s.col-=o.columnSpan;a=!0}else{if(s.leftCol>=o.leftCol&&s.leftColt.rightCol&&s.rightCol<=o.rightCol&&r>0){s.col-=o.columnSpan;s.col2-=o.columnSpan;a=!0}}}return a};_CellRangeExpression.prototype._updateCellRangeExpForReorderingRows=function(e){var t,o=this._cells;if(null==this._isWholeRow||this._isWholeRow){(t=this._cells.row+e)<0?t=0:t>=this._flex.rows.length&&(t=this._flex.rows.length-1);o.row=t;this._isCellRange&&((t=this._cells.row2+e)<0?t=0:t>=this._flex.rows.length&&(t=this._flex.rows.length-1));o.row2=t}return!0};_CellRangeExpression.prototype._updateCellBoundary=function(e,t){var o=this._cells;if(this._sheetRef&&this._sheetRef.toLowerCase()!==this._flex.selectedSheet.name.toLowerCase())return!1;if(o.row===o.row2&&o.row===e&&t===o.col2+1){o.col2+=1;return!0}if(o.col===o.col2&&o.col===t&&e===o.row2+1){o.row2+=1;return!0}return!1};_CellRangeExpression.prototype._getStringExpression=function(){return this._tableParams&&this._tableParams.length>0?this._getTableParamsStringExpression():(this._sheetRef?this._sheetRef+\"!\":\"\")+Workbook.xlsxAddress(this._cells.row,this._cells.col,this._absRow,this._absCol,this._isWholeRow)+(this._isCellRange?\":\"+Workbook.xlsxAddress(this._cells.row2,this._cells.col2,this._absRow2,this._absCol2,this._isWholeRow):\"\")};_CellRangeExpression.prototype._getTableParamsStringExpression=function(){for(var e,t=0,o=\"\",n=this._tableParams.length,i=!1;t1&&(o=\"[\"+o+\"]\");this._tableName&&(o=this._tableName+o);return o};return _CellRangeExpression}(_Expression);export{_CellRangeExpression};var _FunctionExpression=function(e){__extends(_FunctionExpression,e);function _FunctionExpression(t,o,n,i){void 0===i&&(i=!0);var l=e.call(this)||this;l._funcId=t;l._funcDefinition=o;l._params=n;l._needCacheEvaluatedVal=i;return l}_FunctionExpression.prototype.evaluate=function(e,t,o){if(!this._needCacheEvaluatedVal)return this._funcDefinition.func(this._params,o,e,t);null==this._evaluatedValue&&(this._evaluatedValue=this._funcDefinition.func(this._params,o,e,t));return this._evaluatedValue};_FunctionExpression.prototype._updateCellRangeExp=function(e,t,o,n,i,l){var r,s,a=!1;if(this._params&&this._params.length>0)for(r=0;r0)for(l=0;l0)for(t=0;t0){t=\"\";for(e=0;e0){o=[];for(var i=0;i0)for(var l=0;l0)for(var l=0;l0&&\"=\"===this._expression[0]&&this._pointer++;return this._parseExpression()};_CalcEngine.prototype._buildSymbolTable=function(){if(!this._tokenTable){this._tokenTable={};this._addToken(\"+\",_TokenID.ADD,_TokenType.ADDSUB);this._addToken(\"-\",_TokenID.SUB,_TokenType.ADDSUB);this._addToken(\"(\",_TokenID.OPEN,_TokenType.GROUP);this._addToken(\")\",_TokenID.CLOSE,_TokenType.GROUP);this._addToken(\"*\",_TokenID.MUL,_TokenType.MULDIV);this._addToken(\",\",_TokenID.COMMA,_TokenType.GROUP);this._addToken(\".\",_TokenID.PERIOD,_TokenType.GROUP);this._addToken(\"/\",_TokenID.DIV,_TokenType.MULDIV);this._addToken(\"\\\\\",_TokenID.DIVINT,_TokenType.MULDIV);this._addToken(\"=\",_TokenID.EQ,_TokenType.COMPARE);this._addToken(\">\",_TokenID.GT,_TokenType.COMPARE);this._addToken(\"<\",_TokenID.LT,_TokenType.COMPARE);this._addToken(\"^\",_TokenID.POWER,_TokenType.POWER);this._addToken(\"<>\",_TokenID.NE,_TokenType.COMPARE);this._addToken(\">=\",_TokenID.GE,_TokenType.COMPARE);this._addToken(\"<=\",_TokenID.LE,_TokenType.COMPARE);this._addToken(\"&\",_TokenID.CONCAT,_TokenType.CONCAT);this._addToken(\"[\",_TokenID.OPEN,_TokenType.SQUAREBRACKETS);this._addToken(\"]\",_TokenID.CLOSE,_TokenType.SQUAREBRACKETS)}};_CalcEngine.prototype._registerAggregateFunction=function(){var e=this;e._functionTable.sum=new _FunctionDefinition((function(t,o){return e._getAggregateResult(Aggregate.Sum,t,o)}));e._functionTable.average=new _FunctionDefinition((function(t,o){return e._getAggregateResult(Aggregate.Avg,t,o)}));e._functionTable.max=new _FunctionDefinition((function(t,o){return e._getAggregateResult(Aggregate.Max,t,o)}));e._functionTable.min=new _FunctionDefinition((function(t,o){return e._getAggregateResult(Aggregate.Min,t,o)}));e._functionTable.var=new _FunctionDefinition((function(t,o){return e._getAggregateResult(Aggregate.Var,t,o)}));e._functionTable.varp=new _FunctionDefinition((function(t,o){return e._getAggregateResult(Aggregate.VarPop,t,o)}));e._functionTable.stdev=new _FunctionDefinition((function(t,o){return e._getAggregateResult(Aggregate.Std,t,o)}));e._functionTable.stdevp=new _FunctionDefinition((function(t,o){return e._getAggregateResult(Aggregate.StdPop,t,o)}));e._functionTable.count=new _FunctionDefinition((function(t,o){return e._getFlexSheetAggregateResult(_FlexSheetAggregate.Count,t,o)}));e._functionTable.counta=new _FunctionDefinition((function(t,o){return e._getFlexSheetAggregateResult(_FlexSheetAggregate.CountA,t,o)}));e._functionTable.countblank=new _FunctionDefinition((function(t,o){return e._getFlexSheetAggregateResult(_FlexSheetAggregate.ConutBlank,t,o)}));e._functionTable.countif=new _FunctionDefinition((function(t,o){return e._getFlexSheetAggregateResult(_FlexSheetAggregate.CountIf,t,o)}),2,2);e._functionTable.countifs=new _FunctionDefinition((function(t,o){return e._getFlexSheetAggregateResult(_FlexSheetAggregate.CountIfs,t,o)}),254,2);e._functionTable.sumif=new _FunctionDefinition((function(t,o){return e._getFlexSheetAggregateResult(_FlexSheetAggregate.SumIf,t,o)}),3,2);e._functionTable.sumifs=new _FunctionDefinition((function(t,o){return e._getFlexSheetAggregateResult(_FlexSheetAggregate.SumIfs,t,o)}),255,2);e._functionTable.rank=new _FunctionDefinition((function(t,o){return e._getFlexSheetAggregateResult(_FlexSheetAggregate.Rank,t,o)}),3,2);e._functionTable.product=new _FunctionDefinition((function(t,o){return e._getFlexSheetAggregateResult(_FlexSheetAggregate.Product,t,o)}),255,1);e._functionTable.subtotal=new _FunctionDefinition((function(t,o){return e._handleSubtotal(t,o)}),255,2);e._functionTable.dcount=new _FunctionDefinition((function(t,o){return e._handleDCount(t,o)}),3,3);e._functionTable.sumproduct=new _FunctionDefinition((function(t,o){return e._getSumProduct(t,o)}),255,1)};_CalcEngine.prototype._registerMathFunction=function(){var e=this;e._functionTable.pi=new _FunctionDefinition((function(){return Math.PI}),0,0);e._functionTable.rand=new _FunctionDefinition((function(){return Math.random()}),0,0);e._functionTable.power=new _FunctionDefinition((function(t,o){return Math.pow(_Expression.toNumber(t[0],e._rowIndex,e._columnIndex,o),_Expression.toNumber(t[1],e._rowIndex,e._columnIndex,o))}),2,2);e._functionTable.atan2=new _FunctionDefinition((function(t,o){var n=_Expression.toNumber(t[0],e._rowIndex,e._columnIndex,o),i=_Expression.toNumber(t[1],e._rowIndex,e._columnIndex,o);if(0===n&&0===i)throw new DivideByZeroError(_ErrorMessages.Atan2ArgsLessThanZero);return Math.atan2(i,n)}),2,2);e._functionTable.mod=new _FunctionDefinition((function(t,o){var n=_Expression.toNumber(t[0],e._rowIndex,e._columnIndex,o),i=_Expression.toNumber(t[1],e._rowIndex,e._columnIndex,o),l=Math.abs(i);if(0===l)throw new DivideByZeroError;var r=Math.abs(n)%l;i<0&&(r=-r);return r}),2,2);e._functionTable.trunc=new _FunctionDefinition((function(t,o){var n,i,l,r=_Expression.toNumber(t[0],e._rowIndex,e._columnIndex,o),s=2===t.length?_Expression.toNumber(t[1],e._rowIndex,e._columnIndex,o):0;if(0===s){l=\"n0\";i=r>=0?Math.floor(r):Math.ceil(r)}else{l=\"n\"+((s=s>0?Math.floor(s):Math.ceil(s))>0?s:0);n=Math.pow(10,s);i=r>=0?Math.floor(r*n)/n:Math.ceil(r*n)/n}if(null!=i)return{value:i,format:l}}),2,1);[\"ceiling\",\"floor\"].forEach((function(t){e._functionTable[t]=new _FunctionDefinition((function(o,n){var i,l,r=_Expression.toNumber(o[0],e._rowIndex,e._columnIndex,n),s=2===o.length?_Expression.toNumber(o[1],e._rowIndex,e._columnIndex,n):1;if(isNaN(r))throw new ValueError(_ErrorMessages.InvalidParameter(\"number\"));if(isNaN(s))throw new ValueError(_ErrorMessages.InvalidParameter(\"significance\"));if(r>0&&s<0)throw new NumericError(_ErrorMessages.InvalidParameter(\"significance\"));if(0===r||0===s)return 0;l=1;if(0!==(i=s-Math.floor(s)))for(;i<1;){l*=10;i*=10}return s*l*(\"ceiling\"===t?Math.ceil(r/s):Math.floor(r/s))/l}),2,1)}));[\"round\",\"rounddown\",\"roundup\"].forEach((function(t){e._functionTable[t]=new _FunctionDefinition((function(o,n){var i,l,r,s,a=_Expression.toNumber(o[0],e._rowIndex,e._columnIndex,n),h=_Expression.toNumber(o[1],e._rowIndex,e._columnIndex,n);if(0===h){switch(t){case\"rounddown\":i=a>=0?Math.floor(a):Math.ceil(a);break;case\"roundup\":i=a>=0?Math.ceil(a):Math.floor(a);break;case\"round\":s=a>=0?0:.1;i=Math.round(a-s);break;default:i=Math.floor(a)}l=\"n0\"}else{h=h>0?Math.floor(h):Math.ceil(h);r=Math.pow(10,h);switch(t){case\"rounddown\":i=a>=0?Math.floor(a*r)/r:Math.ceil(a*r)/r;break;case\"roundup\":i=a>=0?Math.ceil(a*r)/r:Math.floor(a*r)/r;break;case\"round\":s=a>=0?0:1*r/10;i=Math.round(a*r-s)/r}l=\"n\"+(h>0?h:0)}if(null!=i)return{value:i,format:l}}),2,2)}));[\"abs\",\"acos\",\"asin\",\"atan\",\"cos\",\"exp\",\"ln\",\"sin\",\"sqrt\",\"tan\"].forEach((function(t){e._functionTable[t]=new _FunctionDefinition((function(o,n){return\"ln\"===t?Math.log(_Expression.toNumber(o[0],e._rowIndex,e._columnIndex,n)):Math[t](_Expression.toNumber(o[0],e._rowIndex,e._columnIndex,n))}),1,1)}))};_CalcEngine.prototype._registerLogicalFunction=function(){var e=this;e._functionTable.and=new _FunctionDefinition((function(t,o){var n,i=!0;for(n=0;n0?n.charCodeAt(0):-1}),1,1);e._functionTable.concatenate=new _FunctionDefinition((function(t,o){var n,i=\"\";for(n=0;n0?n.slice(0,i):null}),2,1);e._functionTable.right=new _FunctionDefinition((function(t,o){var n=_Expression.toString(t[0],e._rowIndex,e._columnIndex,o),i=null==t[1]?1:Math.floor(_Expression.toNumber(t[1],e._rowIndex,e._columnIndex,o));return n&&n.length>0?i?n.slice(-i):\"\":null}),2,1);e._functionTable.find=new _FunctionDefinition((function(t,o){var n,i=_Expression.toString(t[0],e._rowIndex,e._columnIndex,o),l=_Expression.toString(t[1],e._rowIndex,e._columnIndex,o),r=null!=t[2]?asInt(_Expression.toNumber(t[2],e._rowIndex,e._columnIndex,o)):0;return null!=l&&null!=i&&(n=!isNaN(r)&&r>0&&r<=l.length?l.indexOf(i,r-1):l.indexOf(i))>-1?n+1:-1}),3,2);e._functionTable.search=new _FunctionDefinition((function(t,o){var n,i,l,r=_Expression.toString(t[0],e._rowIndex,e._columnIndex,o),s=_Expression.toString(t[1],e._rowIndex,e._columnIndex,o),a=null!=t[2]?asInt(_Expression.toNumber(t[2],e._rowIndex,e._columnIndex,o)):0;if(null!=s&&null!=r){i=new RegExp(r,\"i\");if(!isNaN(a)&&a>0&&a-1)return l+n}return-1}),3,2);e._functionTable.len=new _FunctionDefinition((function(t,o){var n=_Expression.toString(t[0],e._rowIndex,e._columnIndex,o);return null!=n?n.length:-1}),1,1);e._functionTable.mid=new _FunctionDefinition((function(t,o){var n=_Expression.toString(t[0],e._rowIndex,e._columnIndex,o),i=Math.floor(_Expression.toNumber(t[1],e._rowIndex,e._columnIndex,o)),l=Math.floor(_Expression.toNumber(t[2],e._rowIndex,e._columnIndex,o));return n&&n.length>0&&i>0?n.substr(i-1,l):null}),3,3);e._functionTable.lower=new _FunctionDefinition((function(t,o){var n=_Expression.toString(t[0],e._rowIndex,e._columnIndex,o);return n&&n.length>0?n.toLowerCase():null}),1,1);e._functionTable.upper=new _FunctionDefinition((function(t,o){var n=_Expression.toString(t[0],e._rowIndex,e._columnIndex,o);return n&&n.length>0?n.toUpperCase():null}),1,1);e._functionTable.proper=new _FunctionDefinition((function(t,o){var n=_Expression.toString(t[0],e._rowIndex,e._columnIndex,o);if(n&&n.length>0){n=(n=n.toLowerCase())[0].toUpperCase()+n.substring(1);for(var i=1;i0?n.trim().replace(/\\s+/gm,\" \"):null}),1,1);e._functionTable.replace=new _FunctionDefinition((function(t,o){var n=_Expression.toString(t[0],e._rowIndex,e._columnIndex,o),i=Math.floor(_Expression.toNumber(t[1],e._rowIndex,e._columnIndex,o)),l=Math.floor(_Expression.toNumber(t[2],e._rowIndex,e._columnIndex,o)),r=_Expression.toString(t[3],e._rowIndex,e._columnIndex,o);return n&&n.length>0&&i>0?n.substring(0,i-1)+r+n.slice(i-1+l):null}),4,4);e._functionTable.substitute=new _FunctionDefinition((function(t,o){var n,i=_Expression.toString(t[0],e._rowIndex,e._columnIndex,o),l=_Expression.toString(t[1],e._rowIndex,e._columnIndex,o),r=_Expression.toString(t[2],e._rowIndex,e._columnIndex,o),s=4===t.length?_Expression.toNumber(t[3],e._rowIndex,e._columnIndex,o):null,a=0;if(null!=s&&s<1||isNaN(s))throw new ValueError(_ErrorMessages.InvalidParameter(\"instance_num\"));if(i&&i.length>0&&l&&l.length>0){n=new RegExp(l,\"g\");return i.replace(n,(function(e){a++;if(null!=s){s=Math.floor(s);return a===s?r:e}return r}))}return null}),4,3);e._functionTable.rept=new _FunctionDefinition((function(t,o){var n,i=_Expression.toString(t[0],e._rowIndex,e._columnIndex,o),l=Math.floor(_Expression.toNumber(t[1],e._rowIndex,e._columnIndex,o)),r=\"\";if(i&&i.length>0&&l>0)for(n=0;n-1?e.toLowerCase():e})).replace(/g+e/gi,(function(e){return e.substring(0,e.length-1)+\"yy\"}));else{if(!isNumber(i))return i;if((n=l.match(/^(\\d+)(\\.\\d+)?\\E\\+(\\d+)(\\.\\d+)?$/))&&5===n.length)return e._parseToScientificValue(i,n[1],n[2],n[3],n[4]);/M{1,4}|d{1,4}|y{1,4}/.test(l)?i=new Date(1900,0,i-1):l&&!/[ncpfdg]\\d?/i.test(l)&&(l=Workbook.fromXlsxFormat(l)[0])}if(isDate(i))switch(l){case\"d\":return i.getDate();case\"M\":return i.getMonth()+1;case\"y\":l=\"yy\";break;case\"yyy\":l=\"yyyy\"}return Globalize.format(i,l)}),2,2);e._functionTable.value=new _FunctionDefinition((function(t,o){var n,i=_Expression.toString(t[0],e._rowIndex,e._columnIndex,o);if((i=i.replace(/(\\,\\d{3})/g,(function(e){return e.substring(1)}))).length>0){if(i[0]===culture.Globalize.numberFormat.currency.symbol)return+(i=i.substring(1));if(\"%\"===i[i.length-1])return+(i=i.substring(0,i.length-1))/100}n=+i;return isNaN(n)?_Expression.toNumber(t[0],e._rowIndex,e._columnIndex,o):n}),1,1);e._functionTable.exact=new _FunctionDefinition((function(t,o){return _Expression.toString(t[0],e._rowIndex,e._columnIndex,o)==_Expression.toString(t[1],e._rowIndex,e._columnIndex,o)}),2,2)};_CalcEngine.prototype._registerDateFunction=function(){var e=this;e._functionTable.now=new _FunctionDefinition((function(){return{value:new Date,format:\"M/d/yyyy h:mm\"}}),0,0);e._functionTable.today=new _FunctionDefinition((function(){var e=new Date;return{value:new Date(e.getFullYear(),e.getMonth(),e.getDate()),format:\"M/d/yyyy\"}}),0,0);e._functionTable.year=new _FunctionDefinition((function(t,o){var n=_Expression.toDate(t[0],e._rowIndex,e._columnIndex,o);return!isPrimitive(n)&&n?n.value:isDate(n)?n.getFullYear():1900}),1,1);e._functionTable.month=new _FunctionDefinition((function(t,o){var n=_Expression.toDate(t[0],e._rowIndex,e._columnIndex,o);return!isPrimitive(n)&&n?n.value:isDate(n)?n.getMonth()+1:1}),1,1);e._functionTable.day=new _FunctionDefinition((function(t,o){var n=_Expression.toDate(t[0],e._rowIndex,e._columnIndex,o);return!isPrimitive(n)&&n?n.value:isDate(n)?n.getDate():0}),1,1);e._functionTable.hour=new _FunctionDefinition((function(t,o){var n=t[0].evaluate(e._rowIndex,e._columnIndex,o);if(isNumber(n)&&!isNaN(n))return Math.floor(24*(n-Math.floor(n)));if(isDate(n))return n.getHours();n=_Expression.toDate(t[0],e._rowIndex,e._columnIndex,o);!isPrimitive(n)&&n&&(n=n.value);if(isDate(n))return n.getHours();throw new ValueError(_ErrorMessages.InvalidParameter(\"serial_number\"))}),1,1);e._functionTable.time=new _FunctionDefinition((function(t,o){var n=t[0].evaluate(e._rowIndex,e._columnIndex,o),i=t[1].evaluate(e._rowIndex,e._columnIndex,o),l=t[2].evaluate(e._rowIndex,e._columnIndex,o);if(isNumber(n)&&isNumber(i)&&isNumber(l)){n%=24;i%=60;l%=60;return{value:new Date(0,0,0,n,i,l),format:\"h:mm tt\"}}throw new ValueError(_ErrorMessages.InvalidParameters)}),3,3);e._functionTable.date=new _FunctionDefinition((function(t,o){var n=t[0].evaluate(e._rowIndex,e._columnIndex,o),i=t[1].evaluate(e._rowIndex,e._columnIndex,o),l=t[2].evaluate(e._rowIndex,e._columnIndex,o);if(isNumber(n)&&isNumber(i)&&isNumber(l))return{value:new Date(n,i-1,l),format:\"M/d/yyyy\"};throw new ValueError(_ErrorMessages.InvalidParameters)}),3,3);e._functionTable.datedif=new _FunctionDefinition((function(t,o){var n,i,l,r,s,a=_Expression.toDate(t[0],e._rowIndex,e._columnIndex,o),h=_Expression.toDate(t[1],e._rowIndex,e._columnIndex,o),u=t[2].evaluate(e._rowIndex,e._columnIndex,o);!isPrimitive(a)&&a&&(a=a.value);!isPrimitive(h)&&h&&(h=h.value);if(isDate(a)&&isDate(h)&&isString(u)){if((n=a.getTime())>(i=h.getTime()))throw new NumericError(_ErrorMessages.InvalidParameter(\"start_date\"));l=h.getDate()-a.getDate();r=h.getMonth()-a.getMonth();s=h.getFullYear()-a.getFullYear();switch(u.toUpperCase()){case\"Y\":return r>0?s:r<0?s-1:l>=0?s:s-1;case\"M\":return l>=0?12*s+r:12*s+r-1;case\"D\":return(i-n)/864e5;case\"YM\":return(r=l>=0?12*s+r:12*s+r-1)%12;case\"YD\":return r>0?(new Date(a.getFullYear(),h.getMonth(),h.getDate()).getTime()-a.getTime())/864e5:r<0?(new Date(a.getFullYear()+1,h.getMonth(),h.getDate()).getTime()-a.getTime())/864e5:l>=0?l:(new Date(a.getFullYear()+1,h.getMonth(),h.getDate()).getTime()-a.getTime())/864e5;case\"MD\":return l>=0?l:l=new Date(h.getFullYear(),h.getMonth(),0).getDate()-new Date(h.getFullYear(),h.getMonth()-1,1).getDate()+1+l;default:throw new NumericError(_ErrorMessages.InvalidParameter(\"unit\"))}}throw new ValueError(_ErrorMessages.InvalidParameters)}),3,3)};_CalcEngine.prototype._registLookUpReferenceFunction=function(){var e=this;e._functionTable.column=new _FunctionDefinition((function(t,o,n,i){var l;if(null==t)return i+1;l=t[0];if((l=e._ensureNonFunctionExpression(l,o))instanceof _CellRangeExpression)return l.cells.col+1;throw new SyntaxError(_ErrorMessages.InvalidCellRef)}),1,0);e._functionTable.columns=new _FunctionDefinition((function(t,o){var n=t[0];if((n=e._ensureNonFunctionExpression(n,o))instanceof _CellRangeExpression)return n.cells.columnSpan;throw new SyntaxError(_ErrorMessages.InvalidCellRef)}),1,1);e._functionTable.row=new _FunctionDefinition((function(t,o,n,i){var l;if(null==t)return n+1;l=t[0];if((l=e._ensureNonFunctionExpression(l,o))instanceof _CellRangeExpression)return l.cells.row+1;throw new SyntaxError(_ErrorMessages.InvalidCellRef)}),1,0);e._functionTable.rows=new _FunctionDefinition((function(t,o){var n=t[0];if((n=e._ensureNonFunctionExpression(n,o))instanceof _CellRangeExpression)return n.cells.rowSpan;throw new SyntaxError(_ErrorMessages.InvalidCellRef)}),1,1);e._functionTable.choose=new _FunctionDefinition((function(t,o){var n=_Expression.toNumber(t[0],e._rowIndex,e._columnIndex,o);if(isNaN(n))throw new ValueError(_ErrorMessages.InvalidParameter(\"index_num\"));if(n<1||n>=t.length)throw new ValueError(_ErrorMessages.ParameterIsOutOfRange(\"index_num\"));return t[n=Math.floor(n)].evaluate(e._rowIndex,e._columnIndex,o)}),255,2);e._functionTable.index=new _FunctionDefinition((function(t,o){var n,i=t[0],l=_Expression.toNumber(t[1],e._rowIndex,e._columnIndex,o),r=null!=t[2]?_Expression.toNumber(t[2],e._rowIndex,e._columnIndex,o):0;if(isNaN(l)||l<0)throw new ValueError(_ErrorMessages.InvalidParameter(\"row_num\"));if(isNaN(r)||r<0)throw new ValueError(_ErrorMessages.InvalidParameter(\"column_num\"));if((i=e._ensureNonFunctionExpression(i,o))instanceof _CellRangeExpression){if(l>(n=i.cells).rowSpan)throw new ReferenceError(_ErrorMessages.ParameterIsOutOfRange(\"row_num\"));if(r>n.columnSpan)throw new ReferenceError(_ErrorMessages.ParameterIsOutOfRange(\"column_num\"));if(l>0&&r>0)return e._owner.getCellValue(n.topRow+l-1,n.leftCol+r-1,!0,o);if(0===l&&0===r)return i;if(0===l)return new _CellRangeExpression(new CellRange(n.topRow,n.leftCol+r-1,n.bottomRow,n.leftCol+r-1),i.sheetRef,e._owner);if(0===r)return new _CellRangeExpression(new CellRange(n.topRow+l-1,n.leftCol,n.topRow+l-1,n.rightCol),i.sheetRef,e._owner)}throw new SyntaxError(_ErrorMessages.InvalidCellRef)}),4,2);e._functionTable.hlookup=new _FunctionDefinition((function(t,o){return e._handleHLookup(t,o)}),4,3);e._functionTable.vlookup=new _FunctionDefinition((function(t,o){return e._handleVLookup(t,o)}),4,3)};_CalcEngine.prototype._registFinacialFunction=function(){var e=this;e._functionTable.rate=new _FunctionDefinition((function(t,o){return{value:e._calculateRate(t,o),format:\"p2\"}}),6,3)};_CalcEngine.prototype._registAddressRelatedFunction=function(){var e=this;e._functionTable.indirect=new _FunctionDefinition((function(t,o){var n,i,l,r,s,a,h,u,c=e._ensureNonFunctionExpression(t[0],o);if(c instanceof _CellRangeExpression){n=c.cells;i=c.evaluate(n.row,n.col,o)}else i=c.evaluate(e._rowIndex,e._columnIndex,o);if(isString(i)){if(2===(l=i.split(\"!\")).length){r=l[0].toLowerCase();s=l[1].toLowerCase()}else s=l[0].toLowerCase();a=e._getDefinedName(s,r||e._sheet.name.toLowerCase());o=o||e._owner.selectedSheet;if(a){if(a.sheetName&&a.sheetName.toLowerCase()!==o.name.toLowerCase())throw new ReferenceError(_ErrorMessages.InvalidCellRef);i=a.value}if(h=e._getCellRange(i)){if(h.sheetRef){for(var d=0;d1048576)throw new ValueError(_ErrorMessages.InvalidParameter(\"row_num\"));if(isNaN(r)||!isInt(r)||r<1||r>16384)throw new ValueError(_ErrorMessages.InvalidParameter(\"column_num\"));if(null!=t[2]){n=_Expression.toNumber(t[2],e._rowIndex,e._columnIndex,o);if(isNaN(n)||!isInt(n)||n<1||n>4)throw new ValueError(_ErrorMessages.InvalidParameter(\"abs_num\"))}null!=t[4]&&(i=_Expression.toString(t[4],e._rowIndex,e._columnIndex,o));if(null==n||1===n){s=!0;a=!0}else 2===n?s=!0:3===n&&(a=!0);return(null!=i?i+\"!\":\"\")+(a?\"$\":\"\")+e._numAlpha(r)+(s?\"$\":\"\")+l.toString()}),5,2)};_CalcEngine.prototype._registerErrorFunctions=function(){var e=this,isError=function(t,o){var n;try{n=t.evaluate(e._rowIndex,e._columnIndex,o)}catch(e){e instanceof FormulaError&&(n=e)}return n};this._functionTable.iserror=new _FunctionDefinition((function(e,t){return isError(e[0],t)instanceof FormulaError}),1,1);this._functionTable.iserr=new _FunctionDefinition((function(e,t){var o=isError(e[0],t);return o instanceof FormulaError&&!(o instanceof NotAvailableError)}),1,1);this._functionTable.iferror=new _FunctionDefinition((function(t,o){var n=isError(t[0],o);return n instanceof FormulaError?t[1].evaluate(e._rowIndex,e._columnIndex,o):n}),2,2)};_CalcEngine.prototype._addToken=function(e,t,o){var n=new _Token(e,t,o);this._tokenTable[e]=n};_CalcEngine.prototype._parseExpression=function(){this._getToken();return this._parseCompareOrConcat()};_CalcEngine.prototype._parseCompareOrConcat=function(){for(var e,t,o=this._parseAddSub();this._token.tokenType===_TokenType.COMPARE||this._token.tokenType===_TokenType.CONCAT;){e=this._token;this._getToken();t=this._parseAddSub();o=new _BinaryExpression(e,o,t)}return o};_CalcEngine.prototype._parseAddSub=function(){for(var e,t,o=this._parseMulDiv();this._token.tokenType===_TokenType.ADDSUB;){e=this._token;this._getToken();t=this._parseMulDiv();o=new _BinaryExpression(e,o,t)}return o};_CalcEngine.prototype._parseMulDiv=function(){for(var e,t,o=this._parsePower();this._token.tokenType===_TokenType.MULDIV;){e=this._token;this._getToken();t=this._parsePower();o=new _BinaryExpression(e,o,t)}return o};_CalcEngine.prototype._parsePower=function(){for(var e,t,o=this._parseUnary();this._token.tokenType===_TokenType.POWER;){e=this._token;this._getToken();t=this._parseUnary();o=new _BinaryExpression(e,o,t)}return o};_CalcEngine.prototype._parseUnary=function(){var e,t;if(this._token.tokenID===_TokenID.ADD||this._token.tokenID===_TokenID.SUB){e=this._token;this._getToken();t=this._parseAtom();return new _UnaryExpression(e,t)}return this._parseAtom()};_CalcEngine.prototype._parseAtom=function(){var e,t,o,n,i,l,r,s,a,h,u,c,d,_=null;switch(this._token.tokenType){case _TokenType.LITERAL:case _TokenType.ERROR:_=new _Expression(this._token);break;case _TokenType.IDENTIFIER:e=this._token.value.toString().toLowerCase();if(t=this._functionTable[e]){o=this._getParameters();if(this._token.tokenType===_TokenType.GROUP&&this._token.tokenID===_TokenID.CLOSE){n=o?o.length:0;if(-1!==t.paramMin&&nt.paramMax)throw new SyntaxError(_ErrorMessages.TooManyParameters);\"rand\"!==e&&(\"column\"!==e&&\"row\"!==e||0!==n)||(this._containsCellRef=!0);_=new _FunctionExpression(e,t,o);break}if(\"true\"===e||\"false\"===e){_=new _FunctionExpression(e,t,o,!1);break}}if(2===(h=e.split(\"!\")).length){c=h[0];u=h[1]}else u=h[0];if(l=this._getDefinedName(u,c||this._sheet.name.toLowerCase())){if(l.sheetName&&l.sheetName!==this._sheet.name&&l.sheetName.toLowerCase()!==c)throw new NameError(_ErrorMessages.DefNameInvalidSheet(l.sheetName));a=this._pointer;s=this._expressLength;r=this._expression;this._pointer=0;_=this._checkCache(l.value);this._pointer=a;this._expressLength=s;this._expression=r;break}c=\"\";if(null!=(d=this._owner._getTable(e))){if(\"\"===(c=d.sheet.name))throw new NameError(_ErrorMessages.InvalidTable(e));this._getToken();if(this._token.tokenType!==_TokenType.SQUAREBRACKETS||this._token.tokenID!==_TokenID.OPEN)throw new SyntaxError(_ErrorMessages.InvalidTableRef);this._tableRefStart=!0;_=this._getTableReference(d,c);break}if(i=this._getCellRange(e)){this._containsCellRef=!0;_=new _CellRangeExpression(i.cellRef.cellRange,i.sheetRef,this._owner,e.indexOf(\":\")>-1,i.cellRef.absRow,i.cellRef.absCol,i.cellRef.absRow2,i.cellRef.absCol2,i.isWholeRow);break}o=this._getParameters();_=this.onUnknownFunction(e,o);break;case _TokenType.GROUP:if(this._token.tokenID!==_TokenID.OPEN)throw new SyntaxError(_ErrorMessages.ExpressionExpected);this._getToken();_=this._parseCompareOrConcat();if(this._token.tokenID!==_TokenID.CLOSE)throw new SyntaxError(_ErrorMessages.UnbalancedParenthesis);_._inGroup=!0;break;case _TokenType.SQUAREBRACKETS:if(this._token.tokenID!==_TokenID.OPEN)throw new ValueError(_ErrorMessages.TableReferencesExpected);if(null!=(d=this._sheet.findTable(this._rowIndex,this._columnIndex))){c=d.sheet.name;this._tableRefStart=!0;_=this._getTableReference(d,c,!1)}}if(null===_)throw new SyntaxError(_ErrorMessages.BadExpression);this._getToken();return _};_CalcEngine.prototype._getToken=function(){for(var e,t,o,n,i,l,r=\"\",s=\"\",a=new RegExp(\"[ -〿぀-ゟ゠-ヿ＀-゚一-龯㐀-䶿]\");this._pointer=this._expressLength)this._token=new _Token(null,_TokenID.END,_TokenType.GROUP);else{l=(t=this._expression[this._pointer])>=\"0\"&&t<=\"9\"||\".\"==t;if(!(i=t>=\"a\"&&t<=\"z\"||t>=\"A\"&&t<=\"Z\"||a.test(t))&&!l){var h=this._tokenTable[t];if(h){this._token=h;this._pointer++;if(this._pointer\"===t||\"<\"===t)&&(h=this._tokenTable[this._expression.substring(this._pointer-1,this._pointer+1)])){this._token=h;this._pointer++}return}}if(l){n=this._pointer;this._parseDigit();if(\":\"!==this._expression[this._pointer])return;this._pointer=n}if('\"'!==t){if((\"'\"!==t||(s=this._parseSheetRef()))&&(\"#\"!==t||!this._parseError()))if(\"#\"!==t){if(!i&&!l&&\"_\"!==t&&this._idChars.indexOf(t)<0&&!s)throw new SyntaxError(_ErrorMessages.IdentifierExpected);for(e=1;e+this._pointer=\"a\"&&t<=\"z\"||t>=\"A\"&&t<=\"Z\"||a.test(t);l=t>=\"0\"&&t<=\"9\";if(\"'\"!==t||\":\"!==o){o=t;if(!i&&!l&&\"_\"!==t&&this._idChars.indexOf(t)<0)break}else{r=s+this._expression.substring(this._pointer,this._pointer+e);this._pointer+=e;s=this._parseSheetRef();e=0}}r+=s+this._expression.substring(this._pointer,this._pointer+e);this._pointer+=e;this._token=new _Token(r,_TokenID.ATOM,_TokenType.IDENTIFIER)}else this._parseDate()}else this._parseString()}};_CalcEngine.prototype._getTableToken=function(){for(var e,t,o,n=\"\",i=!1;this._pointer=\"0\"&&t<=\"9\"){l=10*l+(+t-0);o>-1&&(o*=10)}else if(\".\"===t&&o<0)o=1;else{if(\"E\"!==t&&\"e\"!==t||n){if(\"%\"===t){i=!0;e++;break}break}n=!0;\"+\"!==(t=this._expression[this._pointer+e+1])&&\"-\"!==t||e++}if(n)l=+this._expression.substring(this._pointer,this._pointer+e);else{o>1&&(l/=o);i&&(l/=100)}this._token=new _Token(l,_TokenID.ATOM,_TokenType.LITERAL);this._pointer+=e};_CalcEngine.prototype._parseString=function(){var e,t,o;for(e=1;e+this._pointer=\"a\"&&o<=\"z\"||o>=\"A\"&&o<=\"Z\"||(\"0\"===o||\"?\"===o||\"!\"===o||\"/\"===o)&&(n>=\"a\"&&n<=\"z\"||n>=\"A\"&&n<=\"Z\"||\"/\"===n||\"0\"===n)))break}var i=e-t;if(i>3){var l=this._expression.substring(t,t+i),r=_FormulaErrorHelper.asError(l);if(r){this._token=new _Token(r,_TokenID.ATOM,_TokenType.ERROR);this._pointer+=i;return!0}}return!1};_CalcEngine.prototype._parseSheetRef=function(){var e,t,o;for(e=1;e+this._pointer0&&t.length<3){if(null==(o=this._parseCell(t[0])).cellRef)return null;i=o.cellRef.cellRange;if(null!=o.cellRef.isWholeRow&&1===t.length)return null;if(i&&2===t.length){l=(n=this._parseCell(t[1])).cellRef.cellRange;if(null!=o.cellRef.isWholeRow&&o.cellRef.isWholeRow!==n.cellRef.isWholeRow)return null;o.sheetRef&&!n.sheetRef&&(n.sheetRef=o.sheetRef);if(o.sheetRef!==n.sheetRef)throw new ReferenceError(_ErrorMessages.CellRefMustBeInSameSheet);if(l){i.col2=l.col;i.row2=l.row}else i=null}}return null==i?null:{cellRef:{cellRange:i,absRow:o.cellRef.absRow,absCol:o.cellRef.absCol,absRow2:n?n.cellRef.absRow:null,absCol2:n?n.cellRef.absCol:null},sheetRef:o.sheetRef,isWholeRow:o.cellRef.isWholeRow}};_CalcEngine.prototype._parseCellRange=function(e){var t,o,n,i,l=-1,r=-1,s=!1,a=!1;for(t=0;t=\"a\"&&n<=\"z\"||n>=\"A\"&&n<=\"Z\"))break;l<0&&(l=0);l=26*l+(n.toUpperCase().charCodeAt(0)-\"A\".charCodeAt(0)+1)}else s=!0;for(;t=\"0\"&&n<=\"9\"))break;r<0&&(r=0);r=10*r+(+n-0)}else a=!0;if(t-1&&l>-1)o=new CellRange(r-1,l-1);else if(-1===l){i=!0;o=new CellRange(r-1,0)}else if(-1===r){i=!1;o=new CellRange(0,l-1)}return{cellRange:o,absRow:a,absCol:s,isWholeRow:i}};_CalcEngine.prototype._parseCell=function(e){var t,o,n;if((t=e.lastIndexOf(\"!\"))>0&&t=l.topRow&&this._rowIndex<=l.bottomRow))throw new ValueError(_ErrorMessages.RowIsOutOfTableRange(e.name));r=new CellRange(this._rowIndex,l.leftCol,this._rowIndex,l.rightCol);break;default:throw new ValueError(_ErrorMessages.InvalidTableRef)}if(null==r)throw new ValueError(_ErrorMessages.InvalidTableRef);if(null==i)i=r;else{i.row=i.topRowr.bottomRow?i.bottomRow:r.bottomRow}}else{n=!0;s=o.split(\":\");for(var h=0;h2)throw new ValueError(_ErrorMessages.InvalidTableColRef);if(\"@\"===(o=s[h])[0]){if(null==(r=e.getRange(TableSection.Data,o.substring(1))))throw new ValueError(_ErrorMessages.InvalidTableRef);if(!(this._rowIndex>=r.topRow&&this._rowIndex<=r.bottomRow))throw new ValueError(_ErrorMessages.RowIsOutOfTableRange(name));r.row=this._rowIndex;r.row2=this._rowIndex}else if(null==(r=e.getRange(TableSection.Data,o)))throw new ValueError(_ErrorMessages.InvalidTableRef);0===h&&(null==i?i=r:i.col=r.col);i.col2=r.col;r=null}}}return i};_CalcEngine.prototype._getAggregateResult=function(e,t,o){var n,i=this._getItemList(t,o);n=getAggregate(e,i.items);i.isDate&&(n={value:n=new Date(n),format:i.format||\"M/d/yyyy\"});return n};_CalcEngine.prototype._getFlexSheetAggregateResult=function(e,t,o){var n,i,l,r;switch(e){case _FlexSheetAggregate.Count:n=this._getItemList(t,o,!0,!1);return this._countNumberCells(n.items);case _FlexSheetAggregate.CountA:return(n=this._getItemList(t,o,!1,!1)).items.length;case _FlexSheetAggregate.ConutBlank:n=this._getItemList(t,o,!1,!0);return this._countBlankCells(n.items);case _FlexSheetAggregate.Rank:l=_Expression.toNumber(t[0],this._rowIndex,this._columnIndex,o);r=t[2]?_Expression.toNumber(t[2],this._rowIndex,this._columnIndex,o):0;if(isNaN(l))throw new ValueError(_ErrorMessages.InvalidParameter(\"number\"));if(isNaN(r))throw new ValueError(_ErrorMessages.InvalidParameter(\"order\"));t[1]=this._ensureNonFunctionExpression(t[1],o);if(t[1]instanceof _CellRangeExpression){n=this._getItemList([t[1]],o);return this._getRankOfCellRange(l,n.items,r)}throw new SyntaxError(_ErrorMessages.InvalidCellRef);case _FlexSheetAggregate.CountIf:t[0]=this._ensureNonFunctionExpression(t[0],o);if(t[0]instanceof _CellRangeExpression){n=this._getItemList([t[0]],o,!1);return this._countCellsByCriteria([n.items],[t[1]],o)}throw new SyntaxError(_ErrorMessages.InvalidCellRef);case _FlexSheetAggregate.CountIfs:return this._handleCountIfs(t,o);case _FlexSheetAggregate.SumIf:t[0]=this._ensureNonFunctionExpression(t[0],o);if(t[0]instanceof _CellRangeExpression){var s=!1;t[2]=this._ensureNonFunctionExpression(t[2],o);null!=t[2]&&t[2]instanceof _CellRangeExpression&&(i=this._getItemList([t[2]],o,void 0,s=!0));n=this._getItemList([t[0]],o,!1,s);return this._sumCellsByCriteria([n.items],[t[1]],i?i.items:null,o)}throw new SyntaxError(_ErrorMessages.InvalidCellRef);case _FlexSheetAggregate.SumIfs:return this._handleSumIfs(t,o);case _FlexSheetAggregate.Product:n=this._getItemList(t,o);return this._getProductOfNumbers(n.items)}throw\"Invalid aggregate type.\"};_CalcEngine.prototype._getItemList=function(e,t,o,n,i,l){void 0===o&&(o=!0);void 0===n&&(n=!1);void 0===i&&(i=!0);var r,s,a,h,u,c,d,_,g,f,p,w=new Array;for(s=0;s0&&(c=r instanceof Date)}}0===w.length&&(c=!1);return{isDate:c,items:w,format:d}};_CalcEngine.prototype._countBlankCells=function(e){for(var t,o=0,n=0;o=1&&o<=11||o>=101&&o<=111){o>=101&&o<=111&&(r=!1);(o=asEnum(o,_SubtotalFunction))!==_SubtotalFunction.CountA&&o!==_SubtotalFunction.CountAWithoutHidden||(s=!1);n=this._getItemList(e.slice(1),t,s,!1,r);switch(o){case _SubtotalFunction.Count:case _SubtotalFunction.CountWithoutHidden:return this._countNumberCells(n.items);case _SubtotalFunction.CountA:case _SubtotalFunction.CountAWithoutHidden:return n.items.length;case _SubtotalFunction.Product:case _SubtotalFunction.ProductWithoutHidden:return this._getProductOfNumbers(n.items);case _SubtotalFunction.Average:case _SubtotalFunction.AverageWithoutHidden:i=Aggregate.Avg;break;case _SubtotalFunction.Max:case _SubtotalFunction.MaxWithoutHidden:i=Aggregate.Max;break;case _SubtotalFunction.Min:case _SubtotalFunction.MinWithoutHidden:i=Aggregate.Min;break;case _SubtotalFunction.Std:case _SubtotalFunction.StdWithoutHidden:i=Aggregate.Std;break;case _SubtotalFunction.StdPop:case _SubtotalFunction.StdPopWithoutHidden:i=Aggregate.StdPop;break;case _SubtotalFunction.Sum:case _SubtotalFunction.SumWithoutHidden:i=Aggregate.Sum;break;case _SubtotalFunction.Var:case _SubtotalFunction.VarWithoutHidden:i=Aggregate.Var;break;case _SubtotalFunction.VarPop:case _SubtotalFunction.VarPopWithoutHidden:i=Aggregate.VarPop}l=getAggregate(i,n.items);n.isDate&&(l=new Date(l));return l}throw new ValueError(_ErrorMessages.InvalidParameter(\"Function_num\"))};_CalcEngine.prototype._handleDCount=function(e,t){var o,n,i,l=e[0],r=e[2];l=this._ensureNonFunctionExpression(l,t);r=this._ensureNonFunctionExpression(r,t);if(l instanceof _CellRangeExpression&&r instanceof _CellRangeExpression){o=e[1].evaluate(this._rowIndex,this._columnIndex,t);n=this._getColumnIndexByField(l,o);return(i=this._getItemList([l],t,!0,!1,!0,n)).items&&i.items.length?this._DCountWithCriteria(i.items,l,r):0}throw new ValueError(_ErrorMessages.InvalidParameter(\"Database\"))};_CalcEngine.prototype._DCountWithCriteria=function(e,t,o){var n,i,l,r,s,a,h,u,c,d,_,g=o.cells,f=0;n=this._getSheet(t.sheetRef);i=this._getSheet(o.sheetRef);if(g.rowSpan>1){l=g.topRow;for(r=g.bottomRow;r>g.topRow;r--){d=[];_=[];for(s=g.leftCol;s<=g.rightCol;s++)if(null!=(h=this._owner.getCellValue(r,s,!1,i))&&\"\"!==h){_.push(new _Expression(h));u=this._owner.getCellValue(l,s,!1,i);a=this._getColumnIndexByField(t,u);if(!(null!=(c=this._getItemList([t],n,!1,!1,!0,a)).items&&c.items.length>1))throw new ValueError(\"Criteria\");d.push(c.items.slice(1))}f+=this._countCellsByCriteria(d,_,n,e)}return f}throw new ValueError(\"Criteria\")};_CalcEngine.prototype._getColumnIndexByField=function(e,t){var o,n,i,l,r;if(-1===(r=(o=e.cells).topRow))throw new ValueError(_ErrorMessages.InvalidParameter(\"Database\"));if(isInt(t)&&!isNaN(t)){if(t>=1&&t<=o.columnSpan)return i=o.leftCol+t-1}else{n=this._getSheet(e.sheetRef);for(i=o.leftCol;i<=o.rightCol;i++){l=this._owner.getCellValue(r,i,!1,n);if((t=isString(t)?t.toLowerCase():t)===(l=isString(l)?l.toLowerCase():l))return i}}throw new ValueError(_ErrorMessages.InvalidParameter(\"Field\"))};_CalcEngine.prototype._getSumProduct=function(e,t){var o,n,i,l=0,r=this._getItemListForSumProduct(e,t);if(r.length>0){n=r[0].length;i=r.length;for(var s=0;s0&&o.length!==a[0].length)throw new ValueError(_ErrorMessages.RangesMustBeTheSame);a[i]=o}return a};_CalcEngine.prototype._getSheet=function(e){var t,o=0;if(e)for(;o-1||e.indexOf(\"*\")>-1){if(null==(t=e.match(/=?([\\?\\*]*)(\\w*)([\\?\\*]*)(\\w*)([\\?\\*]*)/))||6!==t.length)throw new ValueError(_ErrorMessages.InvalidParameter(\"Criteria\"));o=new RegExp(\"^\"+(t[1].length>0?this._parseRegCriteria(t[1]):\"\")+t[2]+(t[3].length>0?this._parseRegCriteria(t[3]):\"\")+t[4]+(t[5].length>0?this._parseRegCriteria(t[5]):\"\")+\"$\",\"i\");/^[<>=]/.test(e)?\"=\"===e.trim()[0]&&(n=!0):n=!0;return{reg:o,checkMathces:n}}if(isNaN(+e))if(/^\\w/.test(e))e='=\"'+e+'\"';else{if(!/^[<>=]{1,2}\\s*-?.+$/.test(e))throw new ValueError(_ErrorMessages.InvalidParameter(\"Criteria\"));e=e.replace(/([<>=]{1,2})\\s*(-?.+)/,'$1\"$2\"')}else e=\"=\"+ +e;return e};_CalcEngine.prototype._combineExpr=function(e,t){(isString(e)||isDate(e))&&(e='\"'+e+'\"');return(e=\"=\"+e)+t};_CalcEngine.prototype._parseRegCriteria=function(e){for(var t=0,o=0,n=\"\";t0){n+=\"\\\\w{\"+o+\"}\";o=0}n+=\"\\\\w*\"}else\"?\"===e[t]&&o++;o>0&&(n+=\"\\\\w{\"+o+\"}\");return n};_CalcEngine.prototype._calculateRate=function(e,t){var o,n,i,l,r,s,a,h,u,c,d=0,_=0;i=_Expression.toNumber(e[0],this._rowIndex,this._columnIndex,t);l=_Expression.toNumber(e[1],this._rowIndex,this._columnIndex,t);r=_Expression.toNumber(e[2],this._rowIndex,this._columnIndex,t);s=null!=e[3]?_Expression.toNumber(e[3],this._rowIndex,this._columnIndex,t):0;a=null!=e[4]?_Expression.toNumber(e[4],this._rowIndex,this._columnIndex,t):0;n=null!=e[5]?_Expression.toNumber(e[5],this._rowIndex,this._columnIndex,t):.1;Math.abs(n)<1e-7?r*(1+i*n)+l*(1+n*a)*i+s:r*(h=Math.exp(i*Math.log(1+n)))+l*(1/n+a)*(h-1)+s;u=r+l*i+s;c=r*h+l*(1/n+a)*(h-1)+s;o=n;for(;Math.abs(u-c)>1e-7&&d<20;){n=(c*_-u*o)/(c-u);_=o;o=n;u=c;c=Math.abs(n)<1e-7?r*(1+i*n)+l*(1+n*a)*i+s:r*(h=Math.exp(i*Math.log(1+n)))+l*(1/n+a)*(h-1)+s;++d}if(Math.abs(u-c)>1e-7&&20===d)throw new NumericError(_ErrorMessages.RateCriteriaFails);return n};_CalcEngine.prototype._handleHLookup=function(e,t){var o=this;return this._handleLookup(e,t,{base:function(e){return e.topRow},span:function(e){return e.rowSpan},iterStart:function(e){return e.leftCol},iterEnd:function(e){return e.rightCol},getValue:function(e,n){return o._owner.getCellValue(e,n,!1,t)}})};_CalcEngine.prototype._handleVLookup=function(e,t){var o=this;return this._handleLookup(e,t,{base:function(e){return e.leftCol},span:function(e){return e.columnSpan},iterStart:function(e){return e.topRow},iterEnd:function(e){return e.bottomRow},getValue:function(e,n){return o._owner.getCellValue(n,e,!1,t)}})};_CalcEngine.prototype._handleLookup=function(e,t,o){var n=e[0].evaluate(this._rowIndex,this._columnIndex,t),i=e[1],l=_Expression.toNumber(e[2],this._rowIndex,this._columnIndex,t),r=null==e[3]||_Expression.toBoolean(e[3],this._rowIndex,this._columnIndex,t);if(null==n||\"\"==n)throw new ValueError(_ErrorMessages.InvalidParameter(\"Lookup_value\"));if(isNaN(l)||l<0)throw new ValueError(_ErrorMessages.InvalidParameter(\"index_num\"));if((i=this._ensureNonFunctionExpression(i,t))instanceof _CellRangeExpression){var s,a=i.cells;if(l>o.span(a))throw new ValueError(_ErrorMessages.ParameterIsOutOfRange(\"index_num\"));r?-1===(s=this._exactMatch(n,a,!1,o))&&(s=this._approximateMatch(n,a,o)):s=this._exactMatch(n,a,!0,o);if(-1===s)throw new NotAvailableError;return o.getValue(o.base(a)+l-1,s)}throw new SyntaxError(_ErrorMessages.InvalidCellRef)};_CalcEngine.prototype._exactMatch=function(e,t,o,n){var i,l=n.base(t);isString(e)&&(e=e.toLowerCase());if(o&&isString(e)&&(e.indexOf(\"?\")>-1||e.indexOf(\"*\")>-1)){var r=e.match(/([\\?\\*]*)(\\w+)([\\?\\*]*)(\\w+)([\\?\\*]*)/);if(null==r||6!==r.length)throw new ValueError(_ErrorMessages.InvalidParameter(\"Lookup_value\"));i=new RegExp(\"^\"+(r[1].length>0?this._parseRegCriteria(r[1]):\"\")+r[2]+(r[3].length>0?this._parseRegCriteria(r[3]):\"\")+r[4]+(r[5].length>0?this._parseRegCriteria(r[5]):\"\")+\"$\",\"i\")}for(var s=n.iterStart(t);s<=n.iterEnd(t);s++){var a=n.getValue(l,s);if(null!=i){if(i.test(a))return s}else{isString(a)&&(a=a.toLowerCase());if(e===a)return s}}return-1};_CalcEngine.prototype._approximateMatch=function(e,t,o){var n=o.base(t),i=[];isString(e)&&(e=e.toLowerCase());for(var l=o.iterStart(t);l<=o.iterEnd(t);l++){var r=o.getValue(n,l);r=isNaN(+r)?r:+r;i.push({value:r,index:l})}i.sort((function(e,t){isString(e.value)&&(e.value=e.value.toLowerCase());isString(t.value)&&(t.value=t.value.toLowerCase());return e.value>t.value?-1:e.value===t.value?t.index-e.index:1}));for(var s=0;sr.value)return r.index}throw new NotAvailableError};_CalcEngine.prototype._parseToScientificValue=function(e,t,o,n,i){var l,r,s,a,h=0;if(Math.abs(e)>=1){r=\"+\";l=Math.pow(10,t.length);for(;e>l;){e/=l;h+=t.length}}else{r=\"-\";l=Math.pow(10,t.length);for(;e*l-1)a=s.length-1-s.indexOf(\".\");else{s+=\".\";a=0}for(;a1e4&&this._clearExpressionCache();this._expressionCache[this._sheet.name+(this._containsCellRef?\"_\"+this._rowIndex+\"_\"+this._columnIndex:\"\")+\":\"+e]=i;this._cacheSize++;return i};_CalcEngine.prototype._ensureNonFunctionExpression=function(e,t){for(;e instanceof _FunctionExpression;)e=e.evaluate(this._rowIndex,this._columnIndex,t);return e};_CalcEngine.prototype._getDefinedName=function(e,t){for(var o,n,i=0;i0?this._numAlpha(t):\"\")+String.fromCharCode((e-1)%26+65)};return _CalcEngine}();export{_CalcEngine};var _Token=function(){function _Token(e,t,o){this._value=e;this._tokenID=t;this._tokenType=o}Object.defineProperty(_Token.prototype,\"value\",{get:function(){return this._value},enumerable:!0,configurable:!0});Object.defineProperty(_Token.prototype,\"tokenID\",{get:function(){return this._tokenID},enumerable:!0,configurable:!0});Object.defineProperty(_Token.prototype,\"tokenType\",{get:function(){return this._tokenType},enumerable:!0,configurable:!0});return _Token}();export{_Token};var _FlexSheetAggregate,_SubtotalFunction,_FunctionDefinition=function(){function _FunctionDefinition(e,t,o){this._paramMax=Number.MAX_VALUE;this._paramMin=Number.MIN_VALUE;this._func=e;isNumber(t)&&!isNaN(t)&&(this._paramMax=t);isNumber(o)&&!isNaN(o)&&(this._paramMin=o)}Object.defineProperty(_FunctionDefinition.prototype,\"paramMax\",{get:function(){return this._paramMax},enumerable:!0,configurable:!0});Object.defineProperty(_FunctionDefinition.prototype,\"paramMin\",{get:function(){return this._paramMin},enumerable:!0,configurable:!0});Object.defineProperty(_FunctionDefinition.prototype,\"func\",{get:function(){return this._func},enumerable:!0,configurable:!0});return _FunctionDefinition}();export{_FunctionDefinition};export var _TokenType;!function(e){e[e.COMPARE=0]=\"COMPARE\";e[e.ADDSUB=1]=\"ADDSUB\";e[e.MULDIV=2]=\"MULDIV\";e[e.POWER=3]=\"POWER\";e[e.CONCAT=4]=\"CONCAT\";e[e.GROUP=5]=\"GROUP\";e[e.LITERAL=6]=\"LITERAL\";e[e.IDENTIFIER=7]=\"IDENTIFIER\";e[e.ERROR=8]=\"ERROR\";e[e.SQUAREBRACKETS=9]=\"SQUAREBRACKETS\"}(_TokenType||(_TokenType={}));export var _TokenID;!function(e){e[e.GT=0]=\"GT\";e[e.LT=1]=\"LT\";e[e.GE=2]=\"GE\";e[e.LE=3]=\"LE\";e[e.EQ=4]=\"EQ\";e[e.NE=5]=\"NE\";e[e.ADD=6]=\"ADD\";e[e.SUB=7]=\"SUB\";e[e.MUL=8]=\"MUL\";e[e.DIV=9]=\"DIV\";e[e.DIVINT=10]=\"DIVINT\";e[e.MOD=11]=\"MOD\";e[e.POWER=12]=\"POWER\";e[e.CONCAT=13]=\"CONCAT\";e[e.OPEN=14]=\"OPEN\";e[e.CLOSE=15]=\"CLOSE\";e[e.END=16]=\"END\";e[e.COMMA=17]=\"COMMA\";e[e.PERIOD=18]=\"PERIOD\";e[e.ATOM=19]=\"ATOM\"}(_TokenID||(_TokenID={}));!function(e){e[e.Count=0]=\"Count\";e[e.CountA=1]=\"CountA\";e[e.ConutBlank=2]=\"ConutBlank\";e[e.CountIf=3]=\"CountIf\";e[e.CountIfs=4]=\"CountIfs\";e[e.Rank=5]=\"Rank\";e[e.SumIf=6]=\"SumIf\";e[e.SumIfs=7]=\"SumIfs\";e[e.Product=8]=\"Product\"}(_FlexSheetAggregate||(_FlexSheetAggregate={}));!function(e){e[e.Average=1]=\"Average\";e[e.Count=2]=\"Count\";e[e.CountA=3]=\"CountA\";e[e.Max=4]=\"Max\";e[e.Min=5]=\"Min\";e[e.Product=6]=\"Product\";e[e.Std=7]=\"Std\";e[e.StdPop=8]=\"StdPop\";e[e.Sum=9]=\"Sum\";e[e.Var=10]=\"Var\";e[e.VarPop=11]=\"VarPop\";e[e.AverageWithoutHidden=101]=\"AverageWithoutHidden\";e[e.CountWithoutHidden=102]=\"CountWithoutHidden\";e[e.CountAWithoutHidden=103]=\"CountAWithoutHidden\";e[e.MaxWithoutHidden=104]=\"MaxWithoutHidden\";e[e.MinWithoutHidden=105]=\"MinWithoutHidden\";e[e.ProductWithoutHidden=106]=\"ProductWithoutHidden\";e[e.StdWithoutHidden=107]=\"StdWithoutHidden\";e[e.StdPopWithoutHidden=108]=\"StdPopWithoutHidden\";e[e.SumWithoutHidden=109]=\"SumWithoutHidden\";e[e.VarWithoutHidden=110]=\"VarWithoutHidden\";e[e.VarPopWithoutHidden=111]=\"VarPopWithoutHidden\"}(_SubtotalFunction||(_SubtotalFunction={}));var rgLetter=/[A-Za-z\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u05D0-\\u05EA\\u05EF-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086A\\u08A0-\\u08B4\\u08B6-\\u08BD\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u09FC\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0AF9\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C60\\u0C61\\u0C80\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D54-\\u0D56\\u0D5F-\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16F1-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1878\\u1880-\\u1884\\u1887-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1C80-\\u1C88\\u1C90-\\u1CBA\\u1CBD-\\u1CBF\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2183\\u2184\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005\\u3006\\u3031-\\u3035\\u303B\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312F\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FEF\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6E5\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7B9\\uA7F7-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\uA8FE\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB65\\uAB70-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]/,_FlexSheetCellFactory=function(e){__extends(_FlexSheetCellFactory,e);function _FlexSheetCellFactory(){return null!==e&&e.apply(this,arguments)||this}_FlexSheetCellFactory.prototype.updateCell=function(t,o,n,i,l){var r=t.grid,s=/^border/;t.cellType===CellType.Cell&&this._resetCellStyle(i);e.prototype.updateCell.call(this,t,o,n,i,l);if(l&&!l.isSingleCell){o=l.row;n=l.col}switch(t.cellType){case CellType.ColumnHeader:var a=t.getCellData(o,n,!0);i.textContent?i.innerHTML=i.innerHTML.replace(escapeHtml(i.textContent),a).replace(i.textContent,a):i.innerHTML+=a;i.style.textAlign=\"center\";break;case CellType.Cell:var h=r.selectedSheet,u=r._getBindingColumn(t,o,t.columns[n]),c=o*r.columns.length+n,d=h&&h._styledCells?h._styledCells[c]:null;if(l&&!l.isSingleCell){var _=this._getFirstVisibleCell(r,l);o=_.row;n=_.col}if(t.rows[o]instanceof HeaderRow){(t.columns[n].dataMapEditor===DataMapEditor.RadioButtons&&i.firstElementChild instanceof HTMLLabelElement||t.columns[n].dataType===DataType.Boolean&&1===i.childElementCount&&i.firstElementChild instanceof HTMLLabelElement&&i.firstElementChild.firstElementChild instanceof HTMLInputElement&&\"checkbox\"===i.firstElementChild.firstElementChild.type||t.columns[n].dataType!==DataType.Boolean&&!i.innerHTML)&&(i.innerHTML=escapeHtml(r.getCellValue(o,n)));addClass(i,\"wj-header-row\")}else{var g=r.getCellValue(o,n,!1),f=_isFormula(r.getCellData(o,n,!1)),p=t.rows[o]instanceof GroupRow,w=(d?d.format:null)||(p?null:u.format);if(r.editRange&&r.editRange.contains(o,n)){if(isNumber(g)&&!u.dataMap&&!f){w&&(g=this._getFormattedValue(g,w));var m=i.querySelector(\"input\");m&&(m.value=g)}}else if(t.columns[n].dataType===DataType.Boolean){var C=i.querySelector('[type=\"checkbox\"]');if(C){C.checked=r.getCellValue(o,n);C.disabled=C.disabled||!r.canEditCell(o,n)}}else if(u.dataMap&&!p){g=r.getCellValue(o,n,!0);var S=i.firstChild;S&&3===S.nodeType&&S.nodeValue!==g&&(S.nodeValue=g)}else if(0===i.childElementCount&&i.textContent===r.getCellData(o,n,!0)){if(\"\"!==(g=r.getCellValue(o,n,!0))&&isNumber(+g)&&!isNaN(+g)&&/[hsmy\\:]/i.test(w)){var b=FlexSheet._fromOADate(+g);isNaN(b.getTime())||(g=Globalize.formatDate(b,w))}if(w||!p){g=isString(g)?g.replace(/^(\\')(\\s*[\\w|=])/,\"$2\"):g;isString(g)?g&&this._isURL(g)?i.innerHTML=''+escapeHtml(g)+\"\":i.innerHTML=escapeHtml(g):i.innerHTML=g}}if(d){var y,R=i.style;for(var v in d)if(\"className\"===v)d.className&&addClass(i,d.className);else if(\"format\"!==v&&(y=d[v]))if(!hasClass(i,\"wj-state-selected\")&&!hasClass(i,\"wj-state-multi-selected\")||\"color\"!==v&&\"backgroundColor\"!==v)if(\"whiteSpace\"===v&&\"normal\"===y)R[v]=\"\";else{if(s.test(v))continue;R[v]=y}else R[v]=\"\"}var x=this._getCellBorders(r,r.selectedSheet,l||new CellRange(o,n));if(x)for(var T in x)i.style[T]=x[T]}if(i.style.backgroundColor||i.style.color){if(!d){d={};h&&h._styledCells[c]}i.style.backgroundColor&&(d.backgroundColor=i.style.backgroundColor);i.style.color&&(d.color=i.style.color)}}if(t.cellType===CellType.Cell){o!==r._lastVisibleFrozenRow||hasClass(i,\"wj-frozen-row\")||addClass(i,\"wj-frozen-row\");n!==r._lastVisibleFrozenColumn||hasClass(i,\"wj-frozen-col\")||addClass(i,\"wj-frozen-col\")}};_FlexSheetCellFactory.prototype._resetCellStyle=function(e){var t=e.style;t.fontFamily=\"\";t.fontSize=\"\";t.fontStyle=\"\";t.fontWeight=\"\";t.textDecoration=\"\";t.textAlign=\"\";t.verticalAlign=\"\";t.backgroundColor=\"\";t.color=\"\";t.whiteSpace=\"\";t.borderLeftStyle=\"\";t.borderLeftColor=\"\";t.borderLeftWidth=\"\";t.borderRightStyle=\"\";t.borderRightColor=\"\";t.borderRightWidth=\"\";t.borderTopStyle=\"\";t.borderTopColor=\"\";t.borderTopWidth=\"\";t.borderBottomStyle=\"\";t.borderBottomColor=\"\";t.borderBottomWidth=\"\"};_FlexSheetCellFactory.prototype._getFormattedValue=function(e,t){e!==Math.round(e)&&(t=t.replace(/([a-z])(\\d*)(.*)/gi,\"$0112$3\"));return Globalize.formatNumber(e,t,!0)};_FlexSheetCellFactory.prototype._getFirstVisibleCell=function(e,t){var o,n;for(o=t.topRow;o<=t.bottomRow&&!e.rows[o].isVisible;o++);for(n=t.leftCol;n<=t.rightCol&&!e.columns[n].isVisible;n++);return new CellRange(o,n)};_FlexSheetCellFactory.prototype._isURL=function(e){return new RegExp(\"^(https|http|ftp|rtsp|mms)://(([0-9a-z_!~*'().&=+$%-]+: )?[0-9a-z_!~*'().&=+$%-]+@)?(([0-9]{1,3}.){3}[0-9]{1,3}|([0-9a-z_!~*'()-]+.)*([0-9a-z][0-9a-z-]{0,61})?[0-9a-z].[a-z]{2,6})(:[0-9]{1,4})?(/($|[a-zA-Z0-9.,?'\\\\+&%$#=~_-]+))*\").test(e)};_FlexSheetCellFactory.prototype._getCellBorders=function(e,t,o){var n=t&&t._styledCells;if(!n)return null;var i=o.topRow,l=o.leftCol,r=o.bottomRow,s=o.rightCol,a=e.columns.length,h=n[i*a+l],u=n[r*a+s],c=l>0?n[i*a+l-1]:null,d=s+10?n[(i-1)*a+l]:null,g=n[(r+1)*a+l];if(!(h||u||c||d||_||g))return null;var f={},p=h&&!!(h.borderLeftColor||h.borderLeftStyle||h.borderLeftWidth),w=c&&!!(c.borderRightColor||c.borderRightStyle||c.borderRightWidth);if(!p&&w||p&&w&&parseInt(c.borderRightWidth||1)>parseInt(h.borderLeftWidth||1)){if(\"double\"!==c.borderRightStyle){f.borderLeftColor=c.borderRightColor;f.borderLeftStyle=c.borderRightStyle;f.borderLeftWidth=Math.floor(parseInt(c.borderRightWidth)/2)+\"px\"}}else if(p){f.borderLeftColor=h.borderLeftColor;f.borderLeftStyle=h.borderLeftStyle;f.borderLeftWidth=\"double\"!==h.borderLeftStyle?Math.ceil(parseInt(h.borderLeftWidth)/2)+\"px\":f.borderLeftWidth=h.borderLeftWidth}var m=h&&!!(h.borderTopColor||h.borderTopStyle||h.borderTopWidth),C=_&&!!(_.borderBottomColor||_.borderBottomStyle||_.borderBottomWidth);if(!m&&C||m&&C&&parseInt(_.borderBottomWidth||1)>parseInt(h.borderTopWidth||1)){if(\"double\"!==_.borderBottomStyle){f.borderTopColor=_.borderBottomColor;f.borderTopStyle=_.borderBottomStyle;f.borderTopWidth=Math.floor(parseInt(_.borderBottomWidth)/2)+\"px\"}}else if(m){f.borderTopColor=h.borderTopColor;f.borderTopStyle=h.borderTopStyle;f.borderTopWidth=\"double\"!==h.borderTopStyle?Math.ceil(parseInt(h.borderTopWidth)/2)+\"px\":h.borderTopStyle}var S=u&&!!(u.borderRightColor||u.borderRightStyle||u.borderRightWidth),b=d&&!!(d.borderLeftColor||d.borderLeftStyle||d.borderLeftWidth);if(!S&&b||S&&b&&parseInt(d.borderLeftWidth||1)>=parseInt(u.borderRightWidth||1)){if(\"double\"!==d.borderLeftStyle){f.borderRightColor=d.borderLeftColor;f.borderRightStyle=d.borderLeftStyle;f.borderRightWidth=Math.floor(parseInt(d.borderLeftWidth)/2)+\"px\"}}else if(S){f.borderRightColor=u.borderRightColor;f.borderRightStyle=u.borderRightStyle;f.borderRightWidth=\"double\"!==u.borderRightStyle?Math.ceil(parseInt(u.borderRightWidth)/2)+\"px\":u.borderRightWidth}var y=u&&!!(u.borderBottomColor||u.borderBottomStyle||u.borderBottomWidth),R=g&&!!(g.borderTopColor||g.borderTopStyle||g.borderTopWidth);if(!y&&R||y&&R&&parseInt(g.borderTopWidth||1)>=parseInt(u.borderBottomWidth||1)){if(\"double\"!==g.borderTopStyle){f.borderBottomColor=g.borderTopColor;f.borderBottomStyle=g.borderTopStyle;f.borderBottomWidth=Math.floor(parseInt(g.borderTopWidth)/2)+\"px\"}}else if(y){f.borderBottomColor=u.borderBottomColor;f.borderBottomStyle=u.borderBottomStyle;f.borderBottomWidth=\"double\"!==u.borderBottomStyle?Math.ceil(parseInt(u.borderBottomWidth)/2)+\"px\":u.borderBottomWidth}return f};return _FlexSheetCellFactory}(CellFactory);export{_FlexSheetCellFactory};_registerModule(\"wijmo.grid.sheet\",selfModule);","/*!\n *\n * Wijmo Library 5.20201.680\n * http://wijmo.com/\n *\n * Copyright(c) GrapeCity, Inc. All rights reserved.\n *\n * Licensed under the GrapeCity Commercial License.\n * sales@wijmo.com\n * wijmo.com/products/wijmo-5/license/\n *\n */\n\nvar _a,__extends=this&&this.__extends||function(){var extendStatics=function(e,t){return(extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var i in t)t.hasOwnProperty(i)&&(e[i]=t[i])})(e,t)};return function(e,t){extendStatics(e,t);function __(){this.constructor=e}e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)}}();import{isInt,asInt,_addCultureInfo,tryCast,format,Size,CancelEventArgs,asType,asBoolean,ObservableArray,isNumber,assert,changeType,setAttribute,isIE,isFirefox,setCss,createElement,asNumber,isString,getType,hasClass,toggleClass,DateTime,DataType,Point,Rect,Globalize,CollectionView,CollectionViewGroup,NotifyCollectionChangedAction,NotifyCollectionChangedEventArgs,Aggregate,getAggregate,_getModule,isArray,asString,asCollectionView,toPlainText,Event,_MaskProvider,culture,escapeHtml,isBoolean,addClass,contains,setAriaLabel,disableAutoComplete,evalTemplate,mouseToPage,closest,closestClass,removeClass,getActiveElement,removeChild,_startDrag,isSafari,isIE9,clamp,Control,SortDescription,Key,setSelectionRange,isDate,showPopup,hidePopup,Clipboard,copy,asArray,toHeaderCase,Tooltip,Binding,isFunction,isPrimitive,enable,asFunction,asEnum,setText,getTypes,hasItems,getElementRect,supportsFocusOptions,_deprecated,isMobile,_registerModule}from\"@grapecity/wijmo\";import*as mInput from\"@grapecity/wijmo.input\";import*as selfModule from\"@grapecity/wijmo.grid\";export var DataMapEditor;!function(e){e[e.AutoComplete=0]=\"AutoComplete\";e[e.DropDownList=1]=\"DropDownList\";e[e.RadioButtons=2]=\"RadioButtons\"}(DataMapEditor||(DataMapEditor={}));var DataMap=function(){function DataMap(e,t,i){this.mapChanged=new Event;if(isArray(e)&&!t&&!i){e=e.map((function(e){return{value:e}}));t=i=\"value\"}this._cv=asCollectionView(e);this._keyPath=asString(t,!1);this._displayPath=asString(i,!1);this._cv.collectionChanged.addHandler(this.onMapChanged,this)}Object.defineProperty(DataMap.prototype,\"sortByDisplayValues\",{get:function(){return 1!=this._sortByKey},set:function(e){this._sortByKey=!asBoolean(e)},enumerable:!0,configurable:!0});Object.defineProperty(DataMap.prototype,\"collectionView\",{get:function(){return this._cv},enumerable:!0,configurable:!0});Object.defineProperty(DataMap.prototype,\"selectedValuePath\",{get:function(){return this._keyPath},enumerable:!0,configurable:!0});Object.defineProperty(DataMap.prototype,\"displayMemberPath\",{get:function(){return this._displayPath},enumerable:!0,configurable:!0});DataMap.prototype.getDataItem=function(e){var t=this;if(!this._hash){var i=this._cv.sourceCollection,o={};isArray(i)&&this._keyPath&&i.forEach((function(e){var i=e[t._keyPath];null==o[i]&&(o[i]=e)}));this._hash=o}return this._hash[e]};DataMap.prototype.getDisplayValue=function(e){var t=this._displayPath,i=this.getDataItem(e);return t&&i?i[t]:e};DataMap.prototype.getKeyValue=function(e,t){var i=this._displayPath,o=this._indexOf(e,i,t,!0);o<0&&(o=this._indexOf(e,i,t,!1));return o>-1?this._cv.sourceCollection[o][this._keyPath]:null};DataMap.prototype.getDisplayValues=function(e){var t=this;return this._cv&&this._displayPath?this._cv.items.map((function(e){return e[t._displayPath]})):[]};DataMap.prototype.getKeyValues=function(){var e=this;return this._cv&&this._keyPath?this._cv.items.map((function(t){return t[e._keyPath]})):[]};Object.defineProperty(DataMap.prototype,\"isEditable\",{get:function(){return this._editable},set:function(e){this._editable=asBoolean(e)},enumerable:!0,configurable:!0});DataMap.prototype.onMapChanged=function(e){this._hash=null;this.mapChanged.raise(this,e)};DataMap.prototype._indexOf=function(e,t,i,o){var n=-1,r=-1;if(this._cv&&t)for(var l=null!=e?e.toString():\"\",s=o?l:l.toLowerCase(),a=this._cv.sourceCollection,c=0;c-1&&this._col>-1&&this._row2>-1&&this._col2>-1},enumerable:!0,configurable:!0});Object.defineProperty(CellRange.prototype,\"isSingleCell\",{get:function(){return this._row==this._row2&&this._col==this._col2},enumerable:!0,configurable:!0});CellRange.prototype.contains=function(e,t){var i=tryCast(e,CellRange);if(i)return i.topRow>=this.topRow&&i.bottomRow<=this.bottomRow&&i.leftCol>=this.leftCol&&i.rightCol<=this.rightCol;if(isInt(e)&&isInt(t))return e>=this.topRow&&e<=this.bottomRow&&t>=this.leftCol&&t<=this.rightCol;throw\"contains expects a CellRange or row/column indices.\"};CellRange.prototype.containsRow=function(e){return asInt(e)>=this.topRow&&e<=this.bottomRow};CellRange.prototype.containsColumn=function(e){return asInt(e)>=this.leftCol&&e<=this.rightCol};CellRange.prototype.intersects=function(e){return this.intersectsRow(e)&&this.intersectsColumn(e)};CellRange.prototype.intersectsRow=function(e){return e&&!(this.bottomRowe.bottomRow)};CellRange.prototype.intersectsColumn=function(e){return e&&!(this.rightCole.rightCol)};CellRange.prototype.getRenderSize=function(e){var t=new Size(0,0);if(this.isValid){for(var i=this.topRow;i<=this.bottomRow;i++)t.height+=e.rows[i].renderSize;for(var o=this.leftCol;o<=this.rightCol;o++)t.width+=e.columns[o].renderSize}return t};CellRange.prototype.equals=function(e){return e instanceof CellRange&&this._row==e._row&&this._col==e._col&&this._row2==e._row2&&this._col2==e._col2};CellRange.prototype.combine=function(e){return e?new CellRange(Math.min(this.topRow,e.topRow),Math.min(this.leftCol,e.leftCol),Math.max(this.bottomRow,e.bottomRow),Math.max(this.rightCol,e.rightCol)):this};CellRange.prototype.toString=function(){return format(\"({row}, {col})-({row2}, {col2})\",this)};return CellRange}();export{CellRange};var CellRangeEventArgs=function(e){__extends(CellRangeEventArgs,e);function CellRangeEventArgs(t,i,o){var n=e.call(this)||this;n._p=asType(t,GridPanel,!0);n._rng=asType(i,CellRange,!0);n._data=o;return n}Object.defineProperty(CellRangeEventArgs.prototype,\"panel\",{get:function(){return this._p},enumerable:!0,configurable:!0});Object.defineProperty(CellRangeEventArgs.prototype,\"range\",{get:function(){return this._rng.clone()},enumerable:!0,configurable:!0});Object.defineProperty(CellRangeEventArgs.prototype,\"row\",{get:function(){return this._rng.row},enumerable:!0,configurable:!0});Object.defineProperty(CellRangeEventArgs.prototype,\"col\",{get:function(){return this._rng.col},enumerable:!0,configurable:!0});Object.defineProperty(CellRangeEventArgs.prototype,\"data\",{get:function(){return this._data},set:function(e){this._data=e},enumerable:!0,configurable:!0});CellRangeEventArgs.prototype.getRow=function(){return this._p&&this.row>-1?this._p.rows[this.row]:null};CellRangeEventArgs.prototype.getColumn=function(){return this._p&&this.col>-1?this._p.columns[this.col]:null};return CellRangeEventArgs}(CancelEventArgs);export{CellRangeEventArgs};var FormatItemEventArgs=function(e){__extends(FormatItemEventArgs,e);function FormatItemEventArgs(t,i,o){var n=e.call(this,t,i)||this;n._cell=asType(o,HTMLElement);return n}Object.defineProperty(FormatItemEventArgs.prototype,\"cell\",{get:function(){return this._cell},enumerable:!0,configurable:!0});return FormatItemEventArgs}(CellRangeEventArgs);export{FormatItemEventArgs};var CellEditEndingEventArgs=function(e){__extends(CellEditEndingEventArgs,e);function CellEditEndingEventArgs(){var t=null!==e&&e.apply(this,arguments)||this;t._stayInEditMode=!1;t._refresh=!0;return t}Object.defineProperty(CellEditEndingEventArgs.prototype,\"stayInEditMode\",{get:function(){return this._stayInEditMode},set:function(e){this._stayInEditMode=asBoolean(e)},enumerable:!0,configurable:!0});Object.defineProperty(CellEditEndingEventArgs.prototype,\"refresh\",{get:function(){return this._refresh},set:function(e){this._refresh=asBoolean(e)},enumerable:!0,configurable:!0});return CellEditEndingEventArgs}(CellRangeEventArgs);export{CellEditEndingEventArgs};export var SelectionMode;!function(e){e[e.None=0]=\"None\";e[e.Cell=1]=\"Cell\";e[e.CellRange=2]=\"CellRange\";e[e.Row=3]=\"Row\";e[e.RowRange=4]=\"RowRange\";e[e.ListBox=5]=\"ListBox\";e[e.MultiRange=6]=\"MultiRange\"}(SelectionMode||(SelectionMode={}));export var SelectedState;!function(e){e[e.None=0]=\"None\";e[e.Selected=1]=\"Selected\";e[e.Cursor=2]=\"Cursor\";e[e.Active=3]=\"Active\"}(SelectedState||(SelectedState={}));export var SelMove;!function(e){e[e.None=0]=\"None\";e[e.Next=1]=\"Next\";e[e.Prev=2]=\"Prev\";e[e.NextPage=3]=\"NextPage\";e[e.PrevPage=4]=\"PrevPage\";e[e.Home=5]=\"Home\";e[e.End=6]=\"End\";e[e.NextCell=7]=\"NextCell\";e[e.PrevCell=8]=\"PrevCell\"}(SelMove||(SelMove={}));var _SelectionHandler=function(){function _SelectionHandler(e){this._sel=new CellRange(0,0);this._xSel=new ObservableArray;this._mode=SelectionMode.CellRange;this._g=e;this._e=new CellRangeEventArgs(e.cells,new CellRange(0,0));this._xSel.collectionChanged.addHandler((function(){e.invalidate()}))}Object.defineProperty(_SelectionHandler.prototype,\"selectionMode\",{get:function(){return this._mode},set:function(e){e!=this._mode&&this._setSelectionMode(e)},enumerable:!0,configurable:!0});Object.defineProperty(_SelectionHandler.prototype,\"selection\",{get:function(){return this._sel},set:function(e){this.select(e)},enumerable:!0,configurable:!0});Object.defineProperty(_SelectionHandler.prototype,\"extendedSelection\",{get:function(){return this._xSel},enumerable:!0,configurable:!0});_SelectionHandler.prototype.select=function(e,t,i){void 0===t&&(t=!0);void 0===i&&(i=!1);var o=this._g,n=this._e.range,r=this._sel,l=n,s=!1,a=SelectionMode;if(isNumber(e)&&isNumber(t)){n.setRange(e,t);t=!0}else e instanceof CellRange?n.copy(e):assert(!1,\"CellRange expected\");switch(o.selectionMode){case a.Cell:l.row2=l.row;l.col2=l.col;break;case a.Row:l.row2=l.row;break;case a.ListBox:s=!0}var c=l.equals(r);s&&l.row>-1&&l.row1||r.rowSpan>1)&&o.rows.forEach((function(e,t){e._setFlag(RowColFlags.Selected,l.containsRow(t),!0)}));l.row=Math.min(l.row,o.rows.length-1);l.row2=Math.min(l.row2,o.rows.length-1);this._sel.copy(l);o.refreshCells(!1,!0,!0);t&&this._showSelection();var u=o.collectionView;if(u){var h=o._getCvIndex(l.row);u.moveCurrentToPosition(h)}o.onSelectionChanged(d);return!0};_SelectionHandler.prototype.moveSelection=function(e,t,i){var o=this._g,n=this._sel,r=i&&o.anchorCursor?new CellRange(n.row2,n.col2):new CellRange(n.row,n.col);this._adjustReferenceCell(r,e,t);var l=r.row,s=r.col,a=o.rows,c=o.columns,d=Math.max(0,o._szClient.height-o.columnHeaders.height),u=SelMove;switch(t){case u.NextCell:if((s=c.getNextCell(s,u.Next,d))==r.col&&(l=a.getNextCell(l,u.Next,d))>r.row){s=c.getNextCell(0,u.Next,d);s=c.getNextCell(s,u.Prev,d)}o.select(l,s);break;case u.PrevCell:if((s=c.getNextCell(r.col,u.Prev,d))==r.col&&(l=a.getNextCell(l,u.Prev,d))t.maxSize&&(e=t.maxSize);null!=this._szMin&&ethis._szMax&&(e=this._szMax)}return e},enumerable:!0,configurable:!0});Object.defineProperty(RowCol.prototype,\"allowResizing\",{get:function(){return this._getFlag(RowColFlags.AllowResizing)},set:function(e){this._setFlag(RowColFlags.AllowResizing,e)},enumerable:!0,configurable:!0});Object.defineProperty(RowCol.prototype,\"allowDragging\",{get:function(){return this._getFlag(RowColFlags.AllowDragging)},set:function(e){this._setFlag(RowColFlags.AllowDragging,e)},enumerable:!0,configurable:!0});Object.defineProperty(RowCol.prototype,\"allowMerging\",{get:function(){return this._getFlag(RowColFlags.AllowMerging)},set:function(e){this._setFlag(RowColFlags.AllowMerging,e)},enumerable:!0,configurable:!0});Object.defineProperty(RowCol.prototype,\"isSelected\",{get:function(){return this._getFlag(RowColFlags.Selected)},set:function(e){if(this._setFlag(RowColFlags.Selected,e,!0)){var t=this.grid;t&&t.refreshCells(!1,!0,!0)}},enumerable:!0,configurable:!0});Object.defineProperty(RowCol.prototype,\"isReadOnly\",{get:function(){return this._getFlag(RowColFlags.ReadOnly)},set:function(e){this._setFlag(RowColFlags.ReadOnly,e)},enumerable:!0,configurable:!0});Object.defineProperty(RowCol.prototype,\"isRequired\",{get:function(){return this._required},set:function(e){this._required=asBoolean(e,!0)},enumerable:!0,configurable:!0});Object.defineProperty(RowCol.prototype,\"isContentHtml\",{get:function(){return this._getFlag(RowColFlags.HtmlContent)},set:function(e){if(this.isContentHtml!=e){this._setFlag(RowColFlags.HtmlContent,e);this.grid&&this.grid.invalidate()}},enumerable:!0,configurable:!0});Object.defineProperty(RowCol.prototype,\"wordWrap\",{get:function(){return this._getFlag(RowColFlags.WordWrap)},set:function(e){this._setFlag(RowColFlags.WordWrap,e)},enumerable:!0,configurable:!0});Object.defineProperty(RowCol.prototype,\"multiLine\",{get:function(){return this._getFlag(RowColFlags.MultiLine)},set:function(e){this._setFlag(RowColFlags.MultiLine,e)},enumerable:!0,configurable:!0});Object.defineProperty(RowCol.prototype,\"cssClass\",{get:function(){return this._cssClass},set:function(e){if(e!=this._cssClass){this._cssClass=asString(e);this.grid&&this.grid.invalidate()}},enumerable:!0,configurable:!0});Object.defineProperty(RowCol.prototype,\"cssClassAll\",{get:function(){return this._cssClassAll},set:function(e){if(e!=this._cssClassAll){this._cssClassAll=asString(e);this.grid&&this.grid.invalidate()}},enumerable:!0,configurable:!0});Object.defineProperty(RowCol.prototype,\"grid\",{get:function(){return this._list?this._list._g:null},enumerable:!0,configurable:!0});Object.defineProperty(RowCol.prototype,\"collectionView\",{get:function(){return this.grid?this.grid.collectionView:null},enumerable:!0,configurable:!0});RowCol.prototype.onPropertyChanged=function(){if(this._list){this._list._dirty=!0;this.grid.invalidate()}};RowCol.prototype.onGridChanged=function(e){this.gridChanged.raise(this,e)};RowCol.prototype._setList=function(e){if(e!=this._list){this._list=e;this.onGridChanged()}};RowCol.prototype._getFlag=function(e){return 0!=(this._f&e)};RowCol.prototype._setFlag=function(e,t,i){if(t!=this._getFlag(e)){this._f=t?this._f|e:this._f&~e;i||this.onPropertyChanged();return!0}return!1};return RowCol}();export{RowCol};var Column=function(e){__extends(Column,e);function Column(t){var i=e.call(this)||this;i._f=RowColFlags.ColumnDefault;i._hash=Column._ctr.toString(36);Column._ctr++;t&©(i,t);return i}Object.defineProperty(Column.prototype,\"name\",{get:function(){return this._name},set:function(e){this._name=e},enumerable:!0,configurable:!0});Object.defineProperty(Column.prototype,\"width\",{get:function(){return null!=this._szStar?this._szStar:this.size},set:function(e){if(null!=Column._parseStarSize(e)){this._szStar=e;this.onPropertyChanged()}else{this._szStar=null;this.size=asNumber(e,!0)}},enumerable:!0,configurable:!0});Object.defineProperty(Column.prototype,\"minWidth\",{get:function(){return this._szMin},set:function(e){if(e!=this._szMin){this._szMin=asNumber(e,!0,!0);this.onPropertyChanged()}},enumerable:!0,configurable:!0});Object.defineProperty(Column.prototype,\"maxWidth\",{get:function(){return this._szMax},set:function(e){if(e!=this._szMax){this._szMax=asNumber(e,!0,!0);this.onPropertyChanged()}},enumerable:!0,configurable:!0});Object.defineProperty(Column.prototype,\"quickAutoSize\",{get:function(){return this._quickSize},set:function(e){this._quickSize=asBoolean(e,!0)},enumerable:!0,configurable:!0});Column.prototype._getQuickAutoSize=function(){return!!this.grid._getQuickAutoSize()&&(isBoolean(this._quickSize)?this._quickSize:!(this.isContentHtml||this.wordWrap||this.multiLine||this._getFlag(RowColFlags.HasTemplate)))};Object.defineProperty(Column.prototype,\"renderWidth\",{get:function(){return this.renderSize},enumerable:!0,configurable:!0});Object.defineProperty(Column.prototype,\"header\",{get:function(){return this._hdr?this._hdr:this.binding},set:function(e){if(this._hdr!=e){this._hdr=e;this.onPropertyChanged()}},enumerable:!0,configurable:!0});Object.defineProperty(Column.prototype,\"cellTemplate\",{get:function(){return this._tpl},set:function(e){if(e!=this._tpl){assert(null==e||isString(e)||isFunction(e),\"cellTemplate should be a string or an ICellTemplateFunction.\");this._tpl=e;this._setFlag(RowColFlags.HasTemplate,null!=e&&\"\"!=e);this.onPropertyChanged()}},enumerable:!0,configurable:!0});Object.defineProperty(Column.prototype,\"allowSorting\",{get:function(){return this._getFlag(RowColFlags.AllowSorting)},set:function(e){this._setFlag(RowColFlags.AllowSorting,e)},enumerable:!0,configurable:!0});Object.defineProperty(Column.prototype,\"currentSort\",{get:function(){var e=this.currentSortIndex;if(e>-1){return this.grid.collectionView.sortDescriptions[e].ascending?\"+\":\"-\"}return null},enumerable:!0,configurable:!0});Object.defineProperty(Column.prototype,\"currentSortIndex\",{get:function(){var e=this.grid?this.grid.collectionView:null,t=e?e.sortDescriptions:null,i=t&&t.length?this._getBindingSort():null;if(i)for(var o=0;o0:!e||e.dataType!=DataType.String||(null!=e.dataMap||null!=e.mask&&e.mask.length>0)};Column.prototype.getAlignment=function(e){if(null!=this._align)return this._align;if(e&&null!=e.align)return e.align;if(!this._map)switch(this.dataType){case DataType.Boolean:return\"center\";case DataType.Number:return\"right\"}if(e&&!e.dataMap)switch(e.dataType){case DataType.Boolean:return\"center\";case DataType.Number:return\"right\"}return\"\"};Column.prototype._getBindingSort=function(){return this.sortMemberPath?this.sortMemberPath:this.binding?this.binding:null};Column._parseStarSize=function(e){if(isString(e)){var t=e.length;if(t>0&&\"*\"==e[t-1]){var i=1==t?1:parseFloat(e);if(i>0&&!isNaN(i))return i}}return null};Column._ctr=0;return Column}(RowCol);export{Column};var Row=function(e){__extends(Row,e);function Row(t){var i=e.call(this)||this;i._f=RowColFlags.ColumnDefault;i._data=t;return i}Object.defineProperty(Row.prototype,\"dataItem\",{get:function(){return this._data},set:function(e){this._data=e},enumerable:!0,configurable:!0});Object.defineProperty(Row.prototype,\"dataIndex\",{get:function(){this._list&&this._list._dirty&&this._list._update();return this._idxData},enumerable:!0,configurable:!0});Object.defineProperty(Row.prototype,\"height\",{get:function(){return this.size},set:function(e){this.size=e},enumerable:!0,configurable:!0});Object.defineProperty(Row.prototype,\"renderHeight\",{get:function(){return this.renderSize},enumerable:!0,configurable:!0});return Row}(RowCol);export{Row};var GroupRow=function(e){__extends(GroupRow,e);function GroupRow(t){var i=e.call(this,t)||this;i._level=-1;i.level=t instanceof CollectionViewGroup?t.level:-1;i.isReadOnly=!0;return i}Object.defineProperty(GroupRow.prototype,\"level\",{get:function(){return this._level},set:function(e){asInt(e);if(e!=this._level){this._level=e;this.onPropertyChanged()}},enumerable:!0,configurable:!0});Object.defineProperty(GroupRow.prototype,\"hasChildren\",{get:function(){if(null!=this.grid&&null!=this._list){this._list._update();var e=this.indexthis.level)}return!0},enumerable:!0,configurable:!0});Object.defineProperty(GroupRow.prototype,\"isCollapsed\",{get:function(){return this._getFlag(RowColFlags.Collapsed)},set:function(e){e!=this.isCollapsed&&null!=this._list&&this._setCollapsed(asBoolean(e))},enumerable:!0,configurable:!0});GroupRow.prototype.getGroupHeader=function(){var e=this.grid,t=e.groupHeaderFormat||culture.FlexGrid.groupHeaderFormat,i=this.dataItem;if(i instanceof CollectionViewGroup&&t&&e.showGroups&&!e.childItemsPath){var o=i.groupDescription.propertyName,n=i.name,r=e.getColumn(o),l=this.isContentHtml;if(r){l=l||r.isContentHtml;r.header&&(o=r.header);var s=r.dataMap;s&&(n=s.getDisplayValue(n));r.dataType==getType(n)&&(n=Globalize.format(n,r.format))}else o=toHeaderCase(o);var a=i.getAggregate(Aggregate.CntAll,null,e.collectionView);return format(t,{name:escapeHtml(o),value:l?n:escapeHtml(n),level:i.level,count:a})}return\"\"};GroupRow.prototype._setCollapsed=function(e){var t=this,i=this.grid,o=i.rows,n=this.getCellRange(),r=new CellRangeEventArgs(i.cells,new CellRange(this.index,-1));if(i.onGroupCollapsedChanging(r)){i.deferUpdate((function(){o.deferUpdate((function(){t._setFlag(RowColFlags.Collapsed,e,!0);for(var i=n.topRow+1;i<=n.bottomRow&&i>-1&&i0&&this[0].renderSize)return 0;for(var t,i,o=this.length,n=0,r=o-1;n<=r;)if((i=this[t=n+r>>>1])._pos>e&&t>0)r=t-1;else{if(!(i._pos+i.renderSize<=e&&t0&&!this[t].renderSize;)t--;for(;t0)return o;break;case n.Prev:for(o=e-1;o>=0;o--)if(this[o].renderSize>0)return o;break;case n.End:for(o=this.length-1;o>=0;o--)if(this[o].renderSize>0)return o;break;case n.Home:for(o=0;o0)return o;break;case n.NextPage:return(o=this.getItemAt(this[e].pos+this[e].renderSize+i))<0?this.getNextCell(e,SelMove.End,i):o==e&&o0&&this[o-1].renderSize?o-1:o}return e};RowColCollection.prototype.canMoveElement=function(e,t,i){void 0===i&&(i=!0);if(t==e)return!1;if(e<0||e>=this.length||t>=this.length)return!1;if(i){t<0&&(t=this.length-1);for(var o=Math.min(e,t),n=Math.max(e,t),r=o;r<=n;r++)if(!this[r].allowDragging)return!1}return!(this[t]instanceof _NewRowTemplate)};RowColCollection.prototype.moveElement=function(e,t,i){void 0===i&&(i=!0);if(this.canMoveElement(e,t,i)){var o=this[e];this.removeAt(e);t<0&&(t=this.length);this.insert(t,o);if(i){var n=this.frozen;e=n?this.frozen--:e>=n&&t0){t+=i;e++;n-1?this[t]:null};ColumnCollection.prototype.indexOf=function(t){if(t instanceof Column)return e.prototype.indexOf.call(this,t);for(var i=0;i0?s=r:r-=s=Math.max(0,Math.round(Column._parseStarSize(l._szStar)/o*e));if(s!=l._sz){l._sz=s;i=!0}}}if(i){this._dirty=!0;this._update()}return i}return!1};return ColumnCollection}(RowColCollection);export{ColumnCollection};var RowCollection=function(e){__extends(RowCollection,e);function RowCollection(){var t=null!==e&&e.apply(this,arguments)||this;t._maxLevel=-1;return t}Object.defineProperty(RowCollection.prototype,\"ariaLabel\",{get:function(){return this._ariaLabel},set:function(e){if(e!=this.ariaLabel){this._ariaLabel=asString(e);this._g&&this._g.refresh()}},enumerable:!0,configurable:!0});Object.defineProperty(RowCollection.prototype,\"maxGroupLevel\",{get:function(){this._dirty&&this._update();return this._maxLevel},enumerable:!0,configurable:!0});RowCollection.prototype._update=function(){var t=this;if(e.prototype._update.call(this)){var i=this.grid?this.grid.collectionView:null,o=i?i.items:null,n=0;this._maxLevel=-1;this.forEach((function(e){e instanceof GroupRow&&e.level>t._maxLevel&&(t._maxLevel=e.level);e._idxData=-1;var i=e.dataItem;i&&o&&(e._idxData=i===o[n]?n:i===o[n+1]?++n:-1)}));return!0}return!1};return RowCollection}(RowColCollection);export{RowCollection};var _AddNewHandler=function(){function _AddNewHandler(e){this._nrt=new _NewRowTemplate;this._g=e;this._keydownBnd=this._keydown.bind(this);this._attach()}Object.defineProperty(_AddNewHandler.prototype,\"newRowAtTop\",{get:function(){return this._top},set:function(e){if(e!=this.newRowAtTop){this._top=asBoolean(e);this.updateNewRowTemplate();var t=this._g;if(this._top&&t.selectionMode==SelectionMode.ListBox){t.rows.forEach((function(e,t){e._setFlag(RowColFlags.Selected,0==t,!0)}));t.select(0,t.selection.col)}}},enumerable:!0,configurable:!0});_AddNewHandler.prototype.updateNewRowTemplate=function(){var e=this._g,t=e.editableCollectionView,i=e.rows,o=this._nrt,n=t&&t.canAddNew&&e.allowAddNew&&!e.isReadOnly,r=i.indexOf(o),l=this._top?0:i.length-1,s=!1;if(!n&&r>-1){var a=e.selection;a.row==r&&e.select(a.row-1,a.col);i.removeAt(r)}else if(n){if(r<0)s=!0;else if(r!=l){i.removeAt(r);s=!0}s&&(this._top?i.insert(0,o):i.push(o));if(o){o._ubv=null;o._setFlag(RowColFlags.ParentCollapsed,!1);this._top&&e.selectionMode==SelectionMode.ListBox||o._setFlag(RowColFlags.Selected,!1)}}};_AddNewHandler.prototype._attach=function(){var e=this._g;if(e){e.beginningEdit.addHandler(this._beginningEdit,this);e.pastingCell.addHandler(this._beginningEdit,this);e.rowEditEnded.addHandler(this._rowEditEnded,this);e.loadedRows.addHandler(this.updateNewRowTemplate,this);e.hostElement.addEventListener(\"keydown\",this._keydownBnd,!0)}};_AddNewHandler.prototype._detach=function(){var e=this._g;if(e){e.beginningEdit.removeHandler(this._beginningEdit);e.pastingCell.removeHandler(this._beginningEdit);e.rowEditEnded.removeHandler(this._rowEditEnded);e.loadedRows.removeHandler(this.updateNewRowTemplate);e.hostElement.removeEventListener(\"keydown\",this._keydownBnd,!0)}};_AddNewHandler.prototype._keydown=function(e){if(!e.defaultPrevented&&e.keyCode==Key.Escape&&null==this._g.activeEditor&&this._top&&this._nrt.dataItem){this._nrt.dataItem=null;this._g.invalidate()}};_AddNewHandler.prototype._beginningEdit=function(e,t){if(!t.cancel){var i=e.rows[t.row];if(i instanceof _NewRowTemplate){var o=e.editableCollectionView;if(o&&o.canAddNew)if(this._top){if(null==this._nrt.dataItem){var n=null,r=o.sourceCollection,l=o.newItemCreator;n=isFunction(l)?l():r&&r.length?new r[0].constructor:{};this._nrt.dataItem=n}}else{n=o.currentAddItem&&o.currentAddItem==i.dataItem?o.currentAddItem:o.addNew();o.moveCurrentTo(n);var s=this._nrt.isSelected;this.updateNewRowTemplate();s&&t.row>-1&&(e.rows[t.row].isSelected=!0);e.refresh(!0);e.onRowAdded(t)||o.cancelNew()}}}};_AddNewHandler.prototype._rowEditEnded=function(e,t){var i=this,o=e.editableCollectionView,n=this._nrt.dataItem;if(o&&!this._committing)if(o.isAddingNew)o.commitNew();else if(n&&!t.cancel){this._committing=!0;this._nrt.dataItem=null;var r=o.addNew();for(var l in n)r[l]=n[l];e.onRowAdded(t)?o.commitNew():o.cancelNew();setTimeout((function(){e.select(0,e.columns.firstVisibleIndex);i.updateNewRowTemplate()}),20);this._committing=!1}};return _AddNewHandler}();export{_AddNewHandler};var _NewRowTemplate=function(e){__extends(_NewRowTemplate,e);function _NewRowTemplate(){return null!==e&&e.apply(this,arguments)||this}return _NewRowTemplate}(Row);export{_NewRowTemplate};_addCultureInfo(\"FlexGrid\",{groupHeaderFormat:\"{name}: {value} ({count:n0} items)\",ariaLabels:{toggleDropDown:\"Toggle Dropdown\",toggleGroup:\"Toggle Group\"}});export var AllowSorting;!function(e){e[e.None=0]=\"None\";e[e.SingleColumn=1]=\"SingleColumn\";e[e.MultiColumn=2]=\"MultiColumn\"}(AllowSorting||(AllowSorting={}));export var AllowPinning;!function(e){e[e.None=0]=\"None\";e[e.SingleColumn=1]=\"SingleColumn\";e[e.ColumnRange=2]=\"ColumnRange\";e[e.Both=3]=\"Both\"}(AllowPinning||(AllowPinning={}));export var HeadersVisibility;!function(e){e[e.None=0]=\"None\";e[e.Column=1]=\"Column\";e[e.Row=2]=\"Row\";e[e.All=3]=\"All\"}(HeadersVisibility||(HeadersVisibility={}));export var ClipStringOptions;!function(e){e[e.Default=0]=\"Default\";e[e.CSV=1]=\"CSV\";e[e.QuoteAll=2]=\"QuoteAll\";e[e.SkipMerged=4]=\"SkipMerged\";e[e.Unformatted=8]=\"Unformatted\";e[e.InvisibleRows=16]=\"InvisibleRows\";e[e.InvisibleColumns=32]=\"InvisibleColumns\";e[e.InvisibleCells=48]=\"InvisibleCells\"}(ClipStringOptions||(ClipStringOptions={}));var FlexGrid=function(e){__extends(FlexGrid,e);function FlexGrid(t,i){var o=e.call(this,t,null,!0)||this;o._szClient=new Size(0,0);o._offsetY=0;o._cssPage=0;o._ptScrl=new Point(0,0);o._cellPadLeft=3;o._cellPadHorz=3;o._cellPadVert=0;o._clipToScreen=!1;o._autoGenCols=!0;o._autoClipboard=!0;o._xOnCopyPaste=!0;o._autoScroll=!0;o._autoSearch=!1;o._caseSensitive=!1;o._readOnly=!1;o._indent=14;o._autoSizeMode=AutoSizeMode.Both;o._autoHeights=!1;o._hdrVis=HeadersVisibility.All;o._alSorting=AllowSorting.SingleColumn;o._alPinning=AllowPinning.None;o._alAddNew=!1;o._alDelete=!1;o._alResizing=AllowResizing.Columns;o._alDragging=AllowDragging.Columns;o._alMerging=AllowMerging.None;o._ssHdr=HeadersVisibility.None;o._shSort=!0;o._shGroups=!0;o._shMarquee=!1;o._altStep=1;o._shErr=!0;o._shDropDown=!0;o._valEdt=!0;o._deferResizing=!1;o._pSel=!0;o._pOutline=!0;o._stickyHdr=!1;o._anchorCursor=!1;o._copyHeaders=HeadersVisibility.None;o._bigChecks=!1;o._vt=0;o._vtRows=0;o._vtCols=0;o._lazyRender=!0;o._refreshOnEdit=!0;o._reorderCells=!0;o.itemsSourceChanging=new Event;o.itemsSourceChanged=new Event;o.scrollPositionChanged=new Event;o.selectionChanging=new Event;o.selectionChanged=new Event;o.loadingRows=new Event;o.loadedRows=new Event;o.updatingLayout=new Event;o.updatedLayout=new Event;o.resizingColumn=new Event;o.resizedColumn=new Event;o.autoSizingColumn=new Event;o.autoSizedColumn=new Event;o.starSizedColumns=new Event;o.draggingColumn=new Event;o.draggingColumnOver=new Event;o.draggedColumn=new Event;o.pinningColumn=new Event;o.pinnedColumn=new Event;o.resizingRow=new Event;o.resizedRow=new Event;o.autoSizingRow=new Event;o.autoSizedRow=new Event;o.draggingRow=new Event;o.draggingRowOver=new Event;o.draggedRow=new Event;o.groupCollapsedChanging=new Event;o.groupCollapsedChanged=new Event;o.columnGroupCollapsedChanging=new Event;o.columnGroupCollapsedChanged=new Event;o.sortingColumn=new Event;o.sortedColumn=new Event;o.beginningEdit=new Event;o.prepareCellForEdit=new Event;o.cellEditEnding=new Event;o.cellEditEnded=new Event;o.rowEditStarting=new Event;o.rowEditStarted=new Event;o.rowEditEnding=new Event;o.rowEditEnded=new Event;o.rowAdded=new Event;o.deletingRow=new Event;o.deletedRow=new Event;o.copying=new Event;o.copied=new Event;o.pasting=new Event;o.pasted=new Event;o.pastingCell=new Event;o.pastedCell=new Event;o.formatItem=new Event((function(){o._clearCells()}));o.updatingView=new Event;o.updatedView=new Event;o._mappedColumns=null;var n=o.hostElement;isIE()&&(n.style.borderRadius=\"0\");var r=o.getTemplate();o.applyTemplate(\"wj-control wj-content wj-flexgrid\",r,{_root:\"root\",_eSz:\"sz\",_eCt:\"cells\",_fCt:\"fcells\",_eTL:\"tl\",_eBL:\"bl\",_eCHdr:\"ch\",_eRHdr:\"rh\",_eCFtr:\"cf\",_eTLCt:\"tlcells\",_eBLCt:\"blcells\",_eCHdrCt:\"chcells\",_eCFtrCt:\"cfcells\",_eRHdrCt:\"rhcells\",_eMarquee:\"marquee\",_eFocus:\"focus\"});setCss(o._root.parentElement,{position:\"relative\",left:\"0\",top:\"0\",width:\"100%\",height:\"100%\",overflow:\"hidden\",maxWidth:\"inherit\",maxHeight:\"inherit\"});setCss(o._root,{position:\"absolute\",left:\"0\",top:\"0\",width:\"100%\",height:\"100%\",overflow:\"auto\",maxWidth:\"inherit\",maxHeight:\"inherit\",webkitOverflowScrolling:\"touch\"});setCss(o._eCt,{position:\"absolute\"});setCss(o._eMarquee,{display:\"none\"});setCss(o._eMarquee.firstChild,{width:\"100%\",height:\"100%\"});setCss(o._fCt,{position:\"absolute\",left:\"0\",top:\"0\",overflow:\"hidden\",pointerEvents:\"none\"});setCss(o._eFocus,{position:\"fixed\",left:\"-32000px\"});setCss(o._eSz,{position:\"relative\",visibility:\"hidden\"});[o._eRHdr,o._eCFtr,o._eCHdr,o._eBL,o._eTL].forEach((function(e){setAttribute(e,\"aria-hidden\",!0);setCss(e,{position:\"absolute\",overflow:\"hidden\",outline:\"none\"});setCss(e.firstElementChild,{position:\"relative\"})}));[o._eFocus,o._eMarquee,o._fCt,o._eSz].forEach((function(e){setAttribute(e,\"aria-hidden\",!0)}));n.tabIndex=-1;o.deferUpdate((function(){var e=o._getDefaultRowHeight();o._rows=new RowCollection(o,e);o._cols=new ColumnCollection(o,4*e);o._hdrRows=new RowCollection(o,e);o._hdrCols=new ColumnCollection(o,Math.round(1.25*e));o._ftrRows=new RowCollection(o,e);var t=CellType;o._gpTL=new GridPanel(o,t.TopLeft,o._hdrRows,o._hdrCols,o._eTLCt);o._gpCHdr=new GridPanel(o,t.ColumnHeader,o._hdrRows,o._cols,o._eCHdrCt);o._gpRHdr=new GridPanel(o,t.RowHeader,o._rows,o._hdrCols,o._eRHdrCt);o._gpCells=new GridPanel(o,t.Cell,o._rows,o._cols,o._eCt);o._gpBL=new GridPanel(o,t.BottomLeft,o._ftrRows,o._hdrCols,o._eBLCt);o._gpCFtr=new GridPanel(o,t.ColumnFooter,o._ftrRows,o._cols,o._eCFtrCt);o._hdrRows.push(new Row);o._hdrCols.push(new Column({align:\"center\"}));o._cf=new CellFactory;o._keyHdl=new _KeyboardHandler(o);o._mouseHdl=new _MouseHandler(o);o._edtHdl=new _EditHandler(o);o._selHdl=new _SelectionHandler(o);o._addHdl=new _AddNewHandler(o);o._grpHdl=new _ColumnGroupHandler(o);o._mrgMgr=new MergeManager(o);o._bndSortConverter=o._sortConverter.bind(o);o._errorTip=new Tooltip({isContentHtml:!1,showDelay:0,cssClass:\"wj-error-tip\"});setAttribute(o.cells.hostElement,\"role\",\"grid\");o.selectionMode=SelectionMode.CellRange;o._root.tabIndex=-1;o.initialize(i)}));o.addEventListener(o._root,\"scroll\",(function(e){if(o._updateScrollPosition()){o.finishEditing();o._updateContent(!0);o.frozenColumns&&setTimeout((function(){var e=o.columnHeaders.hostElement.style,t=parseInt(e.left),i=o._ptScrl.x;Math.abs(t-i)>1&&o.invalidate()}))}}));o.addEventListener(n,\"focus\",(function(e){if(n.tabIndex>-1){var t=e.target;if(t instanceof HTMLElement&&t.tabIndex<0){o._setFocus(!0);return}}}),!0);return o}FlexGrid.prototype._handleResize=function(){this._rcBounds=null;e.prototype._handleResize.call(this)};Object.defineProperty(FlexGrid.prototype,\"headersVisibility\",{get:function(){return this._hdrVis},set:function(e){if((e=asEnum(e,HeadersVisibility))!=this._hdrVis){this._hdrVis=e;this.invalidate()}},enumerable:!0,configurable:!0});Object.defineProperty(FlexGrid.prototype,\"stickyHeaders\",{get:function(){return this._stickyHdr},set:function(e){if(e!=this._stickyHdr){this._stickyHdr=asBoolean(e);this._updateStickyHeaders();this.invalidate()}},enumerable:!0,configurable:!0});Object.defineProperty(FlexGrid.prototype,\"preserveSelectedState\",{get:function(){return this._pSel},set:function(e){this._pSel=asBoolean(e)},enumerable:!0,configurable:!0});Object.defineProperty(FlexGrid.prototype,\"preserveOutlineState\",{get:function(){return this._pOutline},set:function(e){this._pOutline=asBoolean(e)},enumerable:!0,configurable:!0});Object.defineProperty(FlexGrid.prototype,\"anchorCursor\",{get:function(){return this._anchorCursor},set:function(e){this._anchorCursor=asBoolean(e)},enumerable:!0,configurable:!0});Object.defineProperty(FlexGrid.prototype,\"copyHeaders\",{get:function(){return this._copyHeaders},set:function(e){this._copyHeaders=asEnum(e,HeadersVisibility)},enumerable:!0,configurable:!0});Object.defineProperty(FlexGrid.prototype,\"lazyRender\",{get:function(){return this._lazyRender},set:function(e){this._lazyRender=asBoolean(e)},enumerable:!0,configurable:!0});Object.defineProperty(FlexGrid.prototype,\"refreshOnEdit\",{get:function(){return this._refreshOnEdit},set:function(e){this._refreshOnEdit=asBoolean(e)},enumerable:!0,configurable:!0});Object.defineProperty(FlexGrid.prototype,\"virtualizationThreshold\",{get:function(){return this._vt},set:function(e){this._vt=e;if(isNumber(e))this._vtRows=this._vtCols=asNumber(e);else if(e)if(isArray(e)&&2==e.length){this._vtRows=asNumber(e[0]);this._vtCols=asNumber(e[1])}else assert(!1,\"virtualizationThreshold should be a number or an array with two numbers.\");else this._vtRows=this._vtCols=0},enumerable:!0,configurable:!0});Object.defineProperty(FlexGrid.prototype,\"autoGenerateColumns\",{get:function(){return this._autoGenCols},set:function(e){this._autoGenCols=asBoolean(e)},enumerable:!0,configurable:!0});Object.defineProperty(FlexGrid.prototype,\"autoClipboard\",{get:function(){return this._autoClipboard},set:function(e){this._autoClipboard=asBoolean(e)},enumerable:!0,configurable:!0});Object.defineProperty(FlexGrid.prototype,\"expandSelectionOnCopyPaste\",{get:function(){return this._xOnCopyPaste},set:function(e){this._xOnCopyPaste=asBoolean(e)},enumerable:!0,configurable:!0});Object.defineProperty(FlexGrid.prototype,\"autoScroll\",{get:function(){return this._autoScroll},set:function(e){this._autoScroll=asBoolean(e)},enumerable:!0,configurable:!0});Object.defineProperty(FlexGrid.prototype,\"autoSearch\",{get:function(){return this._autoSearch},set:function(e){this._autoSearch=asBoolean(e)},enumerable:!0,configurable:!0});Object.defineProperty(FlexGrid.prototype,\"caseSensitiveSearch\",{get:function(){return this._caseSensitive},set:function(e){this._caseSensitive=asBoolean(e)},enumerable:!0,configurable:!0});Object.defineProperty(FlexGrid.prototype,\"columnLayout\",{get:function(){var e=FlexGrid._getSerializableProperties(Column),t=new Column,i=[];this.columns.forEach((function(o){var n={};e.forEach((function(e){var i=o[e];i!=t[e]&&isPrimitive(i)&&\"size\"!=e&&(n[e]=i)}));i.push(n)}));return JSON.stringify({columns:i})},set:function(e){var t=JSON.parse(asString(e));if(!t||null==t.columns)throw\"Invalid columnLayout data.\";this.columns.clear();this.initialize(t)},enumerable:!0,configurable:!0});Object.defineProperty(FlexGrid.prototype,\"columnGroups\",{get:function(){return this._grpHdl.getGroupDefinitions()},set:function(e){this.columns.clear();this._grpHdl.createColumnGroups(asArray(e))},enumerable:!0,configurable:!0});Object.defineProperty(FlexGrid.prototype,\"isReadOnly\",{get:function(){return this._readOnly},set:function(e){if(e!=this._readOnly){this._readOnly=asBoolean(e);this.finishEditing();this.invalidate(!0);this._addHdl.updateNewRowTemplate();toggleClass(this.hostElement,\"wj-state-readonly\",this.isReadOnly);this._setAria(\"readonly\",this.isReadOnly?\"true\":null)}},enumerable:!0,configurable:!0});Object.defineProperty(FlexGrid.prototype,\"bigCheckboxes\",{get:function(){return this._bigChecks},set:function(e){this._bigChecks=asBoolean(e)},enumerable:!0,configurable:!0});Object.defineProperty(FlexGrid.prototype,\"isDisabled\",{get:function(){return this._e&&null!=this._e.getAttribute(\"disabled\")},set:function(e){if((e=asBoolean(e,!0))!=this.isDisabled){var t=this._e;if(t){enable(t,!e);this.invalidate()}}},enumerable:!0,configurable:!0});Object.defineProperty(FlexGrid.prototype,\"imeEnabled\",{get:function(){return null!=this._imeHdl},set:function(e){if(asBoolean(e)!=this.imeEnabled&&this.finishEditing()){var t=this.containsFocus();if(this._imeHdl){this._imeHdl.dispose();this._imeHdl=null}e&&(this._imeHdl=new _ImeHandler(this));t&&this.focus()}},enumerable:!0,configurable:!0});Object.defineProperty(FlexGrid.prototype,\"allowResizing\",{get:function(){return this._alResizing},set:function(e){this._alResizing=asEnum(e,AllowResizing)},enumerable:!0,configurable:!0});Object.defineProperty(FlexGrid.prototype,\"deferResizing\",{get:function(){return this._deferResizing},set:function(e){this._deferResizing=asBoolean(e)},enumerable:!0,configurable:!0});Object.defineProperty(FlexGrid.prototype,\"autoSizeMode\",{get:function(){return this._autoSizeMode},set:function(e){this._autoSizeMode=asEnum(e,AutoSizeMode)},enumerable:!0,configurable:!0});Object.defineProperty(FlexGrid.prototype,\"autoRowHeights\",{get:function(){return this._autoHeights},set:function(e){this._autoHeights=asBoolean(e)},enumerable:!0,configurable:!0});Object.defineProperty(FlexGrid.prototype,\"quickAutoSize\",{get:function(){return this._quickSize},set:function(e){this._quickSize=asBoolean(e,!0)},enumerable:!0,configurable:!0});FlexGrid.prototype._getQuickAutoSize=function(){return isBoolean(this._quickSize)?this._quickSize:!this.formatItem.hasHandlers&&null==this.itemFormatter};Object.defineProperty(FlexGrid.prototype,\"allowSorting\",{get:function(){return this._alSorting},set:function(e){isBoolean(e)&&(e=e?AllowSorting.SingleColumn:AllowSorting.None);this._alSorting=asEnum(e,AllowSorting)},enumerable:!0,configurable:!0});Object.defineProperty(FlexGrid.prototype,\"allowPinning\",{get:function(){return this._alPinning},set:function(e){if(e!=this._alPinning){isBoolean(e)&&(e=e?AllowPinning.SingleColumn:AllowPinning.None);this._alPinning=asEnum(e,AllowPinning);this.invalidate()}},enumerable:!0,configurable:!0});Object.defineProperty(FlexGrid.prototype,\"allowAddNew\",{get:function(){return this._alAddNew},set:function(e){if(e!=this._alAddNew){this._alAddNew=asBoolean(e);this._addHdl.updateNewRowTemplate()}},enumerable:!0,configurable:!0});Object.defineProperty(FlexGrid.prototype,\"newRowAtTop\",{get:function(){return this._addHdl.newRowAtTop},set:function(e){this._addHdl.newRowAtTop=asBoolean(e)},enumerable:!0,configurable:!0});Object.defineProperty(FlexGrid.prototype,\"allowDelete\",{get:function(){return this._alDelete},set:function(e){e!=this._alDelete&&(this._alDelete=asBoolean(e))},enumerable:!0,configurable:!0});Object.defineProperty(FlexGrid.prototype,\"allowMerging\",{get:function(){return this._alMerging},set:function(e){if((e=asEnum(e,AllowMerging))!=this._alMerging){this._alMerging=e;this.invalidate()}},enumerable:!0,configurable:!0});Object.defineProperty(FlexGrid.prototype,\"showSelectedHeaders\",{get:function(){return this._ssHdr},set:function(e){if((e=asEnum(e,HeadersVisibility))!=this._ssHdr){this._ssHdr=e;this.invalidate()}},enumerable:!0,configurable:!0});Object.defineProperty(FlexGrid.prototype,\"showMarquee\",{get:function(){return this._shMarquee},set:function(e){if(e!=this._shMarquee){this._shMarquee=asBoolean(e);this.invalidate()}},enumerable:!0,configurable:!0});Object.defineProperty(FlexGrid.prototype,\"showSort\",{get:function(){return this._shSort},set:function(e){if(e!=this._shSort){this._shSort=asBoolean(e);this.invalidate()}},enumerable:!0,configurable:!0});Object.defineProperty(FlexGrid.prototype,\"showGroups\",{get:function(){return this._shGroups},set:function(e){if(e!=this._shGroups){this._shGroups=asBoolean(e);this._bindGrid(!1)}},enumerable:!0,configurable:!0});Object.defineProperty(FlexGrid.prototype,\"alternatingRowStep\",{get:function(){return this._altStep},set:function(e){if(e!=this._altStep){this._altStep=asInt(e,!1,!0);this.invalidate()}},enumerable:!0,configurable:!0});Object.defineProperty(FlexGrid.prototype,\"showAlternatingRows\",{get:function(){return this._altStep>0},set:function(e){_deprecated(\"showAlternatingRows\",\"alternatingRowStep\");this.alternatingRowStep=e?1:0},enumerable:!0,configurable:!0});Object.defineProperty(FlexGrid.prototype,\"showErrors\",{get:function(){return this._shErr},set:function(e){if(e!=this._shErr){this._clearCells();this._shErr=asBoolean(e)}},enumerable:!0,configurable:!0});Object.defineProperty(FlexGrid.prototype,\"errorTip\",{get:function(){return this._errorTip},set:function(e){if(e!=this._errorTip){this._clearCells();this._errorTip=asType(e,Tooltip,!0)}},enumerable:!0,configurable:!0});Object.defineProperty(FlexGrid.prototype,\"itemValidator\",{get:function(){return this._itemValidator},set:function(e){if(e!=this.itemValidator){this._itemValidator=asFunction(e);this.invalidate()}},enumerable:!0,configurable:!0});Object.defineProperty(FlexGrid.prototype,\"validateEdits\",{get:function(){return this._valEdt},set:function(e){this._valEdt=asBoolean(e)},enumerable:!0,configurable:!0});Object.defineProperty(FlexGrid.prototype,\"groupHeaderFormat\",{get:function(){return this._gHdrFmt},set:function(e){if(e!=this._gHdrFmt){this._gHdrFmt=asString(e);this._bindGrid(!1)}},enumerable:!0,configurable:!0});Object.defineProperty(FlexGrid.prototype,\"allowDragging\",{get:function(){return this._alDragging},set:function(e){if((e=asEnum(e,AllowDragging))!=this._alDragging){this._alDragging=e;this.invalidate()}},enumerable:!0,configurable:!0});Object.defineProperty(FlexGrid.prototype,\"itemsSource\",{get:function(){return this._items},set:function(e){if(e!=this._items){var t=new CancelEventArgs;if(this.onItemsSourceChanging(t)){if(this._cv){(i=tryCast(this._cv,CollectionView))&&i.sortConverter==this._bndSortConverter&&(i.sortConverter=null);this._cv.currentChanged.removeHandler(this._cvCurrentChanged,this);this._cv.collectionChanged.removeHandler(this._cvCollectionChanged,this);this._cv=null}this._items=e;this._cv=this._getCollectionView(e);this._lastCount=0;if(this._cv){this._cv.currentChanged.addHandler(this._cvCurrentChanged,this);this._cv.collectionChanged.addHandler(this._cvCollectionChanged,this);var i;(i=tryCast(this._cv,CollectionView))&&!i.sortConverter&&(i.sortConverter=this._bndSortConverter)}this._bindGrid(!0);this._selHdl._setSelectionMode(this.selectionMode);this.onItemsSourceChanged(t)}}},enumerable:!0,configurable:!0});Object.defineProperty(FlexGrid.prototype,\"collectionView\",{get:function(){return this._cv},enumerable:!0,configurable:!0});Object.defineProperty(FlexGrid.prototype,\"editableCollectionView\",{get:function(){return tryCast(this._cv,\"IEditableCollectionView\")},enumerable:!0,configurable:!0});Object.defineProperty(FlexGrid.prototype,\"childItemsPath\",{get:function(){return this._childItemsPath},set:function(e){if(e!=this._childItemsPath){assert(null==e||isArray(e)||isString(e),\"childItemsPath should be an array or a string.\");this._childItemsPath=e;this._bindGrid(!0)}},enumerable:!0,configurable:!0});Object.defineProperty(FlexGrid.prototype,\"rowHeaderPath\",{get:function(){return this._rowHdrPath?this._rowHdrPath.path:null},set:function(e){if(e!=this.rowHeaderPath){e=asString(e);this._rowHdrPath=e?new Binding(e):null;this.invalidate()}},enumerable:!0,configurable:!0});Object.defineProperty(FlexGrid.prototype,\"cells\",{get:function(){return this._gpCells},enumerable:!0,configurable:!0});Object.defineProperty(FlexGrid.prototype,\"columnHeaders\",{get:function(){return this._gpCHdr},enumerable:!0,configurable:!0});Object.defineProperty(FlexGrid.prototype,\"columnFooters\",{get:function(){return this._gpCFtr},enumerable:!0,configurable:!0});Object.defineProperty(FlexGrid.prototype,\"rowHeaders\",{get:function(){return this._gpRHdr},enumerable:!0,configurable:!0});Object.defineProperty(FlexGrid.prototype,\"topLeftCells\",{get:function(){return this._gpTL},enumerable:!0,configurable:!0});Object.defineProperty(FlexGrid.prototype,\"bottomLeftCells\",{get:function(){return this._gpBL},enumerable:!0,configurable:!0});Object.defineProperty(FlexGrid.prototype,\"rows\",{get:function(){return this._rows},enumerable:!0,configurable:!0});Object.defineProperty(FlexGrid.prototype,\"columns\",{get:function(){return this._cols},enumerable:!0,configurable:!0});FlexGrid.prototype.getColumn=function(e){return this.columns.getColumn(e)};Object.defineProperty(FlexGrid.prototype,\"frozenRows\",{get:function(){return this.rows.frozen},set:function(e){this.rows.frozen=e},enumerable:!0,configurable:!0});Object.defineProperty(FlexGrid.prototype,\"frozenColumns\",{get:function(){return this.columns.frozen},set:function(e){this.columns.frozen=e},enumerable:!0,configurable:!0});Object.defineProperty(FlexGrid.prototype,\"cloneFrozenCells\",{get:function(){return this._fzClone},set:function(e){if(e!=this._fzClone){setText(this._fCt,null);this._fzClone=asBoolean(e,!0);this.invalidate()}},enumerable:!0,configurable:!0});Object.defineProperty(FlexGrid.prototype,\"sortRowIndex\",{get:function(){return this._sortRowIndex},set:function(e){if(e!=this._sortRowIndex){this._sortRowIndex=asNumber(e,!0);this.invalidate()}},enumerable:!0,configurable:!0});Object.defineProperty(FlexGrid.prototype,\"editColumnIndex\",{get:function(){return this._editColIndex},set:function(e){if(e!=this._editColIndex){this._editColIndex=asNumber(e,!0);this.invalidate()}},enumerable:!0,configurable:!0});Object.defineProperty(FlexGrid.prototype,\"scrollPosition\",{get:function(){return this._ptScrl.clone()},set:function(e){var t=this._root,i=-e.x;if(this.rightToLeft)switch(FlexGrid._getRtlMode()){case\"rev\":i=t.scrollWidth-t.clientWidth+e.x;break;case\"neg\":i=e.x;break;default:i=-e.x}t.scrollLeft=i;t.scrollTop=-e.y},enumerable:!0,configurable:!0});Object.defineProperty(FlexGrid.prototype,\"clientSize\",{get:function(){return this._szClient},enumerable:!0,configurable:!0});Object.defineProperty(FlexGrid.prototype,\"controlRect\",{get:function(){this._rcBounds||(this._rcBounds=getElementRect(this._root));return this._rcBounds},enumerable:!0,configurable:!0});Object.defineProperty(FlexGrid.prototype,\"scrollSize\",{get:function(){return new Size(this._gpCells.width,this._heightBrowser)},enumerable:!0,configurable:!0});Object.defineProperty(FlexGrid.prototype,\"viewRange\",{get:function(){return this._gpCells.viewRange},enumerable:!0,configurable:!0});Object.defineProperty(FlexGrid.prototype,\"cellFactory\",{get:function(){return this._cf},set:function(e){if(e!=this._cf){this._clearCells();this._cf=asType(e,CellFactory,!1)}},enumerable:!0,configurable:!0});Object.defineProperty(FlexGrid.prototype,\"itemFormatter\",{get:function(){return this._itemFormatter},set:function(e){if(e!=this._itemFormatter){this._clearCells();this._itemFormatter=asFunction(e)}},enumerable:!0,configurable:!0});FlexGrid.prototype.canEditCell=function(e,t){return this._edtHdl._allowEdit(e,t)};FlexGrid.prototype.getCellData=function(e,t,i){return this.cells.getCellData(e,t,i)};FlexGrid.prototype.getCellBoundingRect=function(e,t,i){return this.cells.getCellBoundingRect(e,t,i)};FlexGrid.prototype.setCellData=function(e,t,i,o,n){void 0===o&&(o=!0);void 0===n&&(n=!0);return this.cells.setCellData(e,t,i,o,n)};FlexGrid.prototype.hitTest=function(e,t){isNumber(e)&&isNumber(t)&&(e=new Point(e,t));isBoolean(t)&&t&&(this._rcBounds=null);return new HitTestInfo(this,e)};FlexGrid.prototype.getClipString=function(e,t,i,o){var n;n=null==t||isBoolean(t)?t?ClipStringOptions.CSV:ClipStringOptions.Default:t;assert(isNumber(n),\"Unexpected value for ClipStringOptions parameter.\");return this._edtHdl.getClipString(e,n,i,o)};FlexGrid.prototype.setClipString=function(e,t){this._edtHdl.setClipString(e,t)};FlexGrid.prototype.focus=function(){this._setFocus(!1)};FlexGrid.prototype.dispose=function(){this.finishEditing(!0);this.itemsSource=null;e.prototype.dispose.call(this)};FlexGrid.prototype.refresh=function(t){void 0===t&&(t=!0);e.prototype.refresh.call(this,t);this.finishEditing();if(t){this._updateColumnTypes();this.scrollPosition=this._ptScrl;var i=this._getDefaultRowHeight();this._rows._setDefaultSize(i);this._cols._setDefaultSize(4*i);this._hdrRows._setDefaultSize(i);this._hdrCols._setDefaultSize(Math.round(1.25*i));this._ftrRows._setDefaultSize(i);clearTimeout(this._toInv);this._toInv=null}this.refreshCells(t);var o=this._e;o&&(this._szCtl=new Size(o.offsetWidth,o.offsetHeight))};FlexGrid.prototype.refreshCells=function(e,t,i){this.isUpdating||(e?this._updateLayout():this._updateContent(t,i))};FlexGrid.prototype.refreshRange=function(e){for(var t=e.topRow;t<=e.bottomRow;t++)for(var i=e.leftCol;i<=e.rightCol;i++){var o=this.cells.getCellElement(t,i);if(o){var n=o[GridPanel._INDEX_KEY];this.cellFactory.updateCell(this.cells,t,i,o,n.rng)}}};FlexGrid.prototype.autoSizeColumn=function(e,t,i){void 0===t&&(t=!1);void 0===i&&(i=4);this.autoSizeColumns(e,e,t,i)};FlexGrid.prototype.autoSizeColumns=function(e,t,i,o){var n=this;void 0===i&&(i=!1);void 0===o&&(o=4);var r=0,l=i?this.topLeftCells:this.columnHeaders,s=i?this.bottomLeftCells:this.columnFooters,a=i?this.rowHeaders:this.cells,c=this.viewRange;e=null==e?0:asInt(e);t=null==t?a.columns.length-1:asInt(t);c.row=Math.max(0,c.row-1e3);c.row2=Math.min(c.row2+1e3,this.rows.length-1);this.finishEditing()&&this.columns.deferUpdate((function(){setCss(n._eCt,{width:n._gpCells.width});for(var i=createElement(\"
    ',a.hostElement,{visibility:\"hidden\"}),d=n._getCanvasContext(),u=e;u<=t&&u>-1&&u0&&(h.width=r+o+2)}}n.cellFactory.disposeCell(i);removeChild(i)}))};FlexGrid.prototype.autoSizeRow=function(e,t,i){void 0===t&&(t=!1);void 0===i&&(i=0);this.autoSizeRows(e,e,t,i)};FlexGrid.prototype.autoSizeRows=function(e,t,i,o){var n=this;void 0===i&&(i=!1);void 0===o&&(o=0);var r=0,l=i?this.topLeftCells:this.rowHeaders,s=i?this.columnHeaders:this.cells;i=asBoolean(i);o=asNumber(o);e=null==e?0:asInt(e);t=null==t?s.rows.length-1:asInt(t);if(this.finishEditing()){setCss(this._eCt,{width:this._gpCells.width});var a=createElement(\"
    ',s.hostElement,{visibility:\"hidden\"});this.rows.deferUpdate((function(){for(var i={},c=e;c<=t&&c>-1&&c0&&(s.rows[c].height=r+o)}}}));this.cellFactory.disposeCell(a);removeChild(a)}};Object.defineProperty(FlexGrid.prototype,\"treeIndent\",{get:function(){return this._indent},set:function(e){if(e!=this._indent){this._indent=asNumber(e,!1,!0);this.columns.onCollectionChanged()}},enumerable:!0,configurable:!0});FlexGrid.prototype.collapseGroupsToLevel=function(e){var t=this;this.finishEditing()&&this.deferUpdate((function(){var i=t.rows;i.deferUpdate((function(){for(var t=0;t=e)}}))}))};Object.defineProperty(FlexGrid.prototype,\"selectionMode\",{get:function(){return this._selHdl.selectionMode},set:function(e){(e=asEnum(e,SelectionMode))!=this.selectionMode&&(this._selHdl.selectionMode=e)},enumerable:!0,configurable:!0});Object.defineProperty(FlexGrid.prototype,\"selection\",{get:function(){return this._selHdl.selection.clone()},set:function(e){this._selHdl.selection=e},enumerable:!0,configurable:!0});FlexGrid.prototype.select=function(e,t){void 0===t&&(t=!0);return this._selHdl.select(e,t)};FlexGrid.prototype.selectAll=function(){var e=this.rows.length,t=this.columns.length;return!(!e||!t)&&this.select(new CellRange(0,0,e-1,t-1),!1)};FlexGrid.prototype.getSelectedState=function(e,t){return this.cells.getSelectedState(e,t,null)};Object.defineProperty(FlexGrid.prototype,\"selectedRows\",{get:function(){for(var e=[],t=0;t-1&&t<=o.bottomRow;t++)e.push(this.rows[t])}return e},set:function(e){var t=this;assert(this.selectionMode==SelectionMode.ListBox,\"This property can be set only in ListBox mode.\");e=asArray(e);this.deferUpdate((function(){for(var i=0,o=!0;i-1;if(r&&o){o=!1;t.select(i,t.selection.col)}n.isSelected=r}}))},enumerable:!0,configurable:!0});Object.defineProperty(FlexGrid.prototype,\"selectedItems\",{get:function(){var e=[];this.selectedRows.forEach((function(t){t&&t.dataItem&&e.push(t.dataItem)}));return e},set:function(e){var t=this;assert(this.selectionMode==SelectionMode.ListBox,\"This property can be set only in ListBox mode.\");e=asArray(e);this.deferUpdate((function(){for(var i=0,o=!0;i-1;if(r&&o){o=!1;t.select(i,t.selection.col)}n.isSelected=r}}))},enumerable:!0,configurable:!0});Object.defineProperty(FlexGrid.prototype,\"selectedRanges\",{get:function(){var e=[this.selection];this._selHdl.extendedSelection.forEach((function(t){e.push(t)}));return e},set:function(e){if((e=asArray(e))&&e.length>0){this.select(e[0]);if(this.selectionMode==SelectionMode.MultiRange){var t=this._selHdl.extendedSelection;t.deferUpdate((function(){t.clear();for(var i=1;i-1&&e=this._rows.frozen){var a=this._rows[e],c=this._getCssPage(a.pos);if(c!=this._cssPage){for(var d=this._maxOffsetY,u=Math.round(d*c);u>a.pos;c-=.1)u=Math.round(d*c);this._offsetY=u}var h=a.pos-this._offsetY,g=h+a.renderSize;g>l-o.y&&(o.y=Math.max(-h,l-g));h-s.y<-o.y&&(o.y=-(h-s.y));c!=this._cssPage&&(this._cssPage=this._getCssPage(-o.y))}if((t=asInt(t))>-1&&t=this._cols.frozen){var p=this._cols[t],f=p.pos+p.renderSize;f>-o.x+r&&(o.x=Math.max(-p.pos,r-f));p.pos-s.x<-o.x&&(o.x=-(p.pos-s.x))}if(!o.equals(this._ptScrl)){this.scrollPosition=o;if(i){this._updateScrollPosition();this.refresh()}return!0}if(this._focus&&this._activeCell&&e>-1&&t>-1){var _=this._root;if(_.scrollWidth==_.clientWidth||_.scrollHeight==_.clientHeight){var w=this._activeCell.getBoundingClientRect(),C=innerWidth,m=innerHeight;if(w.top<0||w.left<0||w.bottom>m||w.right>C)if(isIE()){o.x=pageXOffset+(w.left<0?w.left:w.right>C?w.right-C:0);o.y=pageYOffset+(w.top<0?w.top:w.bottom>m?w.bottom-m:0);scrollTo(o.x,o.y)}else this._activeCell.scrollIntoView({behavior:\"auto\",block:\"nearest\",inline:\"nearest\"})}}return!1};FlexGrid.prototype.isRangeValid=function(e){return e&&e.isValid&&e.bottomRow
    0
    ',document.documentElement);e&&i.setAttribute(\"class\",e.getAttribute(\"class\"));t=i.children[0]}var o=t.offsetHeight;(isNaN(o)||o<=6)&&(o=28);removeChild(i);return o};FlexGrid.prototype._getCollectionView=function(e){return asCollectionView(e)};FlexGrid.prototype._getCanvasContext=function(){var e=document.createElement(\"canvas\").getContext(\"2d\"),t=getComputedStyle(this.hostElement);e.font=t.fontSize+\" \"+t.fontFamily.split(\",\")[0];return e};FlexGrid.prototype._getWidestRow=function(e,t,i,o){for(var n=0,r=0,l=e.columns[i].dataType==DataType.Boolean,s=t.row;s<=t.row2;s++)if(e.rows[s].isVisible){var a=e.getCellData(s,i,!0),c=o.measureText(a).width,d=this.getMergedRange(e,s,i,!1);d&&d.columnSpan>1&&(c/=d.columnSpan);if(c>r){r=c;n=s}if(l)break}return n};FlexGrid.prototype._getDesiredWidth=function(e,t,i,o){var n=this.getMergedRange(e,t,i,!1),r=o.style;this.cellFactory.updateCell(e,t,i,o,n);r.width=r.top=r.left=\"\";return o.offsetWidth/(n&&n.columnSpan>1?n.columnSpan:1)};FlexGrid.prototype._getDesiredHeight=function(e,t,i,o){var n=o.style,r=this.getMergedRange(e,t,i,!1),l=r?r.rowSpan:1;this.cellFactory.updateCell(e,t,i,o,r);o.innerHTML.trim()||(o.innerHTML=\" \");n.height=n.top=n.left=\"\";return o.offsetHeight/l};FlexGrid.prototype._getDesiredRowHeight=function(e,t,i,o){for(var n=0,r=this._getQuickAutoSize(),l=0;l1?a.rowSpan:1,data:s.dataType!=DataType.Number||s.dataMap?e.getCellData(t,l,!0):\"1\"},u=JSON.stringify(d);if(null==(c=o[u])){c=this._getDesiredHeight(e,t,l,i);o[u]=c}}else c=this._getDesiredHeight(e,t,l,i);n=Math.max(c,n)}}return n};FlexGrid.prototype._getSortRowIndex=function(){return null!=this._sortRowIndex?this._sortRowIndex:this.columnHeaders.rows.length-1};FlexGrid.prototype._getEditColumnIndex=function(){return null!=this._editColIndex?this._editColIndex:this.rowHeaders.columns.length-1};FlexGrid.prototype._sortConverter=function(e,t,i,o){var n,r=this;if(o){this._mappedColumns=null;this._cv&&this._cv.sortDescriptions.forEach((function(e){if((n=r.getColumn(e.property))&&n.dataMap){r._mappedColumns||(r._mappedColumns={});r._mappedColumns[n.binding]=n.dataMap}}));if(this._mouseHdl._htDown&&this._mouseHdl._htDown.col>-1){n=this.columns[this._mouseHdl._htDown.col];this._mappedColumns&&n.dataMap&&(this._mappedColumns[n.binding]=n.dataMap)}}if(this._mappedColumns){var l=this._mappedColumns[e.property];l&&l.sortByDisplayValues&&(i=l.getDisplayValue(i))}return i};FlexGrid.prototype._bindGrid=function(e){var t=this;this.finishEditing();this.deferUpdate((function(){t.autoGenerateColumns&&0==t._lastCount&&hasItems(t._cv)&&(e=!0);var i,o;t.preserveSelectedState&&(i=t._getMap())&&t.rows.forEach((function(e){e.isSelected&&e.dataItem&&i.set(e.dataItem,!0)}));if(t.preserveOutlineState&&t.rows.maxGroupLevel>-1&&(o=t._getMap()))for(var n=0;n0&&t.selectionMode==SelectionMode.ListBox){var c=t.selection;for(n=c.topRow;n<=c.bottomRow&&n>-1&&n-1){this.rows.removeAt(n);this._syncSelection();return}assert(!1,\"removed item not found on grid.\")}this._bindGrid(!1)}}};FlexGrid.prototype._cvCurrentChanged=function(e,t){this._syncSelection()};FlexGrid.prototype._syncSelection=function(e){if(this._cv&&this.selectionMode!=SelectionMode.None){var t=this._selHdl.selection,i=t.row>-1&&t.row-1){for(var i=this._cv.items[e];e-1?t[o]:null;return n&&(n instanceof GroupRow||null==n.dataItem)?o:-1}return this.selection.row};FlexGrid.prototype._getCvIndex=function(e){return e>-1&&e0;this._rcBounds=null}this._eTL.style.top=this._eCHdr.style.top=e?-t+\"px\":\"\";toggleClass(this._eTL,FlexGrid._WJS_STICKY,e);toggleClass(this._eCHdr,FlexGrid._WJS_STICKY,e)};FlexGrid.prototype._updateScrollHandler=function(){this._clipToScreen=this._getClipToScreen();var e=this._stickyHdr||this._clipToScreen;if(e!=this._scrollHandlerAttached){this._scrollHandlerAttached=e;e?this.addEventListener(window,\"scroll\",this._scroll.bind(this),!0):this.removeEventListener(window,\"scroll\")}};FlexGrid.prototype._getClipToScreen=function(){if(this.rows.length<=FlexGrid._MIN_VIRT_ROWS)return!1;if(this._root.scrollHeight>this._root.clientHeight)return!1;for(var e=this.hostElement;e&&e!=document.documentElement;e=e.parentElement){if(\"auto\"==getComputedStyle(e).overflow)return!1}return!0};FlexGrid.prototype._scroll=function(e){var t=this;if(contains(e.target,this.hostElement)){if(this._clipToScreen){this._afClip&&cancelAnimationFrame(this._afClip);this._afClip=requestAnimationFrame((function(){t._afClip=null;t.finishEditing();t._updateContent(!0)}))}if(this._stickyHdr){this._afSticky&&cancelAnimationFrame(this._afSticky);this._afSticky=requestAnimationFrame((function(){t._afSticky=null;var e=new CancelEventArgs;if(t.onUpdatingLayout(e)){t._updateStickyHeaders();t.onUpdatedLayout(e)}}))}}};FlexGrid.prototype._getCssPage=function(e){if(this._heightReal>this._heightBrowser){var t=this._szClient.height-this._gpCFtr.rows.getTotalSize();if(this._heightBrowser>t)return clamp(Math.round(e/(this._heightBrowser-t)*10)/10,0,1)}return 0};FlexGrid.prototype._updateScrollPosition=function(){var e=this._root,t=e.scrollTop,i=e.scrollLeft;this.rightToLeft&&\"rev\"==FlexGrid._getRtlMode()&&(i=e.scrollWidth-e.clientWidth-i);var o=new Point(-Math.abs(i),-t);if(!this._ptScrl.equals(o)){this._ptScrl=o;this.onScrollPositionChanged();return!0}return!1};FlexGrid.prototype._updateContent=function(e,t){var i=this,o=this._root,n=this.hostElement,r=this.cells.hostElement,l=this._activeCell,s=getActiveElement(),a=contains(n,s),c=closest(s,\".wj-flexgrid\")==n?s:null,d=new CancelEventArgs;if(this.onUpdatingView(d)){setAttribute(r,\"role\",this.rows.maxGroupLevel<0?\"grid\":\"treegrid\");this._hasValidation=isFunction(this._itemValidator)||this._cv&&isFunction(this._cv.getError);var u=!t&&this._errorTip&&this._errorTip._tips.length,h=this._getCssPage(-this._ptScrl.y);if(h!=this._cssPage){this._cssPage=h;this._offsetY=Math.round(this._maxOffsetY*h)}this._updateScrollPosition();var g=this._gpCells._updateContent(e,t,this._offsetY),p=this._hdrVis;if(p&HeadersVisibility.Column&&(!t||this._ssHdr&p)){this._gpCHdr._updateContent(e,t,0);this.rightToLeft||(this._eCHdr.scrollLeft=0)}if(p&HeadersVisibility.Row&&(!t||this._ssHdr&p)){this._gpRHdr._updateContent(e,t,this._offsetY);this._eRHdr.scrollTop=0}p&&!t&&this._gpTL._updateContent(e,t,0);if(this._gpCFtr.rows.length){this._gpBL._updateContent(e,t,0);this._gpCFtr._updateContent(e,t,0)}this._updateMarquee();if(u&&this._errorTip&&this._errorTip._tips.length){clearTimeout(this._toErrorTips);this._toErrorTips=setTimeout((function(){i._errorTip.hide();for(var e=i._errorTip._tips,t=0;t=0;for(o=0;o=o&&t.top=o&&i.bottom=r&&t.right>n.left&&(t.left=n.left-t.width);e.rightCol>=r&&i.left>n.left&&(i.left=n.left)}else{e.leftCol>=r&&t.left=r&&i.right0&&(o.width=n)}t.push(o)}));this._updateColumnTypes()};FlexGrid.prototype._getColumnTypes=function(e){return getTypes(e)};FlexGrid.prototype._updateColumnTypes=function(){var e=this._cv;if(hasItems(e)){var t=e.items[0];this.columns.forEach((function(e){null==e.dataType&&e._binding&&(e.dataType=getType(e._binding.getValue(t)))}))}};FlexGrid.prototype._getMapEditor=function(e,t){return!e.dataMap||e instanceof GroupRow?t.dataMap?t.dataMapEditor:null:e.dataMapEditor};FlexGrid.prototype._getBindingColumn=function(e,t,i){return i};FlexGrid.prototype._getBindingColumns=function(){return this.columns};FlexGrid.prototype._getRowHeaderPath=function(){return this._rowHdrPath};FlexGrid.prototype._bindRows=function(){this.rows.clear();var e=this._cv;if(e&&e.items){var t=e.items,i=e.groups;if(this.childItemsPath)for(var o=0;o0&&this.showGroups)for(o=0;o
    ');setCss(e,{visibility:\"hidden\",width:100,height:100,overflow:\"auto\"});setCss(e.firstChild,{width:2e3,height:2e3});document.body.appendChild(e);var t=e.scrollLeft;e.scrollLeft=-1e3;var i=e.scrollLeft;removeChild(e);FlexGrid._rtlMode=i<0?\"neg\":t>0?\"rev\":\"std\"}return FlexGrid._rtlMode};FlexGrid._WJS_STICKY=\"wj-state-sticky\";FlexGrid._WJS_MEASURE=\"wj-state-measuring\";FlexGrid._WJS_UPDATING=\"wj-state-updating\";FlexGrid._WJS_WSPRE=\"wj-whitespace-pre\";FlexGrid._MIN_VIRT_ROWS=200;FlexGrid._defTypeWidth=((_a={})[DataType.Number]=\"0.714285714*\",_a);FlexGrid.controlTemplate='
    0
    ';return FlexGrid}(Control);export{FlexGrid};var _ImeHandler=function(){function _ImeHandler(e){this._updateImeFocusBnd=this._updateImeFocus.bind(this);this._cmpstartBnd=this._compositionstart.bind(this);this._mousedownBnd=this._mousedown.bind(this);this._mouseupBnd=this._mouseup.bind(this);this._keypressBnd=this._keypress.bind(this);this._g=e;var t=createElement('':'';var X=o.children[0];addClass(X,\"wj-grid-editor wj-form-control\");disableAutoComplete(X);X.value=x.isContentHtml||d.isContentHtml?toPlainText(V):V;X.tabIndex=-1;X.required=x.getIsRequired(d);setAttribute(X,\"aria-required\",X.required);var Z=x.maxLength||d.maxLength;Z&&(X.maxLength=Z);X.style.textAlign=x.getAlignment(d);var Q=x.mask||d.mask;Q&&new _MaskProvider(X,Q);l._edtHdl._edt=X}else{if(F){var $=[],ee=e.getCellData(t,i,!1);S.getDisplayValues(d.dataItem).forEach((function(e){var t=S.getKeyValue(e)==ee?\" checked\":\"\",i=l.isReadOnly||d.isReadOnly||u.isReadOnly?\" disabled\":\"\";$.push('\")}));o.innerHTML=$.join(\" \");m+=\" \"+CellFactory._WJC_RADIOMAP}var te=M?x._tpl:null;if(te){var ie=CellFactory._tplCtx;ie.value=k;ie.text=V;ie.item=d.dataItem;ie.row=d;ie.col=x;var oe=isString(te)?evalTemplate(te,ie):te(ie,o);null==oe||F||(o.innerHTML=oe)}else F||(C==b.Cell&&(d.isContentHtml||x.isContentHtml)?o.innerHTML=V:o.textContent=V||\"\");if(j&&j.collapseTo){var ne=j._rng;if(ne&&ne.columnSpan>1){var re=j.isCollapsed;o.innerHTML='
     '+o.innerHTML;re&&addClass(o,\"wj-state-collapsed\")}}}else{var le=o.firstChild;if(!l._isNativeCheckbox(le)){o.innerHTML='';le=o.querySelector(\"input\")}le.checked=1==k;le.indeterminate=null==k;le.disabled=!l.canEditCell(t,i);le.disabled&&(le.style.cursor=\"default\");l.editRange&&l.editRange.contains(t,i)&&(l._edtHdl._edt=le)}else{var se=l.editableCollectionView,ae=se?se.currentEditItem:null;ae&&d.dataItem==ae?o.innerHTML='':d instanceof _NewRowTemplate&&(o.innerHTML='')}else{o.innerHTML=escapeHtml(V);var ce=x.currentSort;if(ce&&l.showSort){m+=\" wj-sort-\"+(\"+\"==ce?\"asc\":\"desc\");o.innerHTML+=\" \"+this._getSortIcon(x)}l.allowPinning&&contains(l.hostElement,o)&&this._addPinButton(o,iwe&&(o.style.height=we+\"px\");_e.width>Ce&&(o.style.width=Ce+\"px\")}if((C==b.Cell||C==b.RowHeader)&&l._getShowErrors()){var me=l._getError(e,t,i);l._edtHdl._setCellError(o,me)}l.itemFormatter&&l.itemFormatter(e,t,i,o);if(l.formatItem.hasHandlers){var ye=CellFactory._fmtRng;ye?ye.setRange(t,i,h,g):ye=CellFactory._fmtRng=new CellRange(t,i,h,g);var ve=new FormatItemEventArgs(e,ye,o);l.onFormatItem(ve)}};CellFactory.prototype.disposeCell=function(e){};CellFactory.prototype.getEditorValue=function(e){var t=e._edtHdl._edt;if(t instanceof HTMLInputElement&&\"checkbox\"==t.type)return t.checked;if(t instanceof HTMLInputElement||t instanceof HTMLTextAreaElement){var i=t.value,o=t.maxLength;isNumber(o)&&o>-1&&i.length>o&&(i=i.substr(0,o));return i}return null};CellFactory.prototype._isEditingCell=function(e,t,i){return e.editRange&&e.editRange.contains(t,i)};CellFactory.prototype._getDropDownBtn=function(){var e=CellFactory._ddBtn;if(!e){e=CellFactory._ddBtn=createElement('');setAriaLabel(e,culture.FlexGrid.ariaLabels.toggleDropDown);setAttribute(e,\"aria-expanded\",!1)}return e.cloneNode(!0)};CellFactory.prototype._getTreeBtn=function(e){var t=CellFactory._WJC_COLLAPSE,i=(e.isCollapsed?\"\":\"down-\")+(e.grid.rightToLeft?\"left\":\"right\"),o=createElement('');setAriaLabel(o,culture.FlexGrid.ariaLabels.toggleGroup);setAttribute(o,\"aria-expanded\",!e.isCollapsed);return o};CellFactory.prototype._getSortIcon=function(e){var t='',i=e.grid.collectionView;if(i&&i.sortDescriptions.length>1){var o=e.currentSortIndex;o>-1&&(t+=''+(o+1)+\"\")}return t};CellFactory.prototype._addPinButton=function(e,t){var i=CellFactory._WJC_PIN,o=createElement('');toggleClass(o,\"wj-state-pinned\",t);setAttribute(o,\"aria-pressed\",t);e.insertBefore(o,e.firstChild)};CellFactory._WJC_RADIOMAP=\"wj-radio-map\";CellFactory._WJC_CHECKBOX=\"wj-cell-check\";CellFactory._WJC_COLLAPSE=\"wj-elem-collapse\";CellFactory._WJC_DROPDOWN=\"wj-elem-dropdown\";CellFactory._WJC_PIN=\"wj-elem-pin\";CellFactory._tplCtx={row:null,col:null,value:null,text:null,item:null};return CellFactory}();export{CellFactory};var _LB_PAGE_SIZE=4,_EditHandler=function(){function _EditHandler(e){var t=this;this._fullEdit=!1;this._list=null;this._g=e;this._evtInput=document.createEvent(\"HTMLEvents\");this._evtInput.initEvent(\"input\",!0,!1);this._evtChange=document.createEvent(\"HTMLEvents\");this._evtChange.initEvent(\"change\",!0,!1);e.selectionChanging.addHandler((function(i,o){if(t.finishEditing()){var n=e._selHdl.selection.row;if(n!=o.row){var r=e.rows.length;(n>-1&&n-1&&o.row-1:null==x&&(b=/^p/i.test(g.format))&&m.value.indexOf(R)<0&&(m.value+=R);if(b){var E=m.value;y=0;v=E.length;for(;v>0&&(E[v-1]==R||\" \"==E[v-1]);)v--;for(;y1){var w=this._sameCols(_),C=this._sameRows(_);if(w||C){(_=_.slice()).sort((function(e,t){var i=e.topRow-t.topRow;return i||e.leftCol-t.leftCol}));for(var m=0;m<_.length;m++)for(var y=_[m],v=m+1;v<_.length;v++)if(y.contains(_[v])){_.splice(v,1);v--}if(w){var b=[];_.forEach((function(e){b.push(r.getClipString(e,t,i,o));i=!1}));return b.join(d)}if(C){var R;_.forEach((function(e){var n=r.getClipString(e,t,i,o).split(d);if(null==R){R=n;o=!1}else n.forEach((function(e,t){R[t]+=u+e}))}));return R.join(d)}}}}}i&&(n=l.columnHeaders).rows.forEach((function(i,l){if(h||i.isVisible){var s=r._getRowClipString(n,l,e,t,o);a.push(s)}}));n=l.cells;if(s==g.ListBox)n.rows.forEach((function(i,l){if(i.isSelected&&(h||i.isVisible)){var s=r._getRowClipString(n,l,e,t,o);a.push(s)}}));else for(m=e.topRow;m<=e.bottomRow;m++)if(h||n.rows[m].isVisible){var x=this._getRowClipString(n,m,e,t,o);a.push(x)}return a.join(d)};_EditHandler.prototype._getRowClipString=function(e,t,i,o,n){var r=[],l=e.rows[t],s=ClipStringOptions,a=0!=(o&s.CSV),c=0!=(o&s.InvisibleColumns),d=0==(o&s.Unformatted),u=0!=(o&s.SkipMerged);if(l.isVisible){if(n)for(var h=e.cellType==CellType.ColumnHeader?e.grid.topLeftCells:e.grid.rowHeaders,g=0;g-1);i&&(e='\"'+(e=e.replace(/\"/g,'\"\"'))+'\"');return e};_EditHandler.prototype._sameRows=function(e){for(var t=e[0],i=1;i1){n&&n.beginUpdate();s.forEach((function(t){o.setClipString(e,t)}));n&&n.endUpdate();o.selectedRanges=s;return}}}t=asType(t,CellRange);var a=this._parseClipString(asString(e));!r&&a.length>t.rowSpan&&(a=a.slice(0,t.rowSpan));this._expandClipRows(a,t);var c=r?new CellRange(t.topRow,t.leftCol,t.topRow+a.length-1,t.leftCol+a[0].length-1):t,d=new CellRangeEventArgs(o.cells,c,e);if(!o.onPasting(d))return!1;c=new CellRange(t.topRow,t.leftCol);var u=!1,h=t.topRow,g=o.newRowAtTop&&0==h,p=o.rows,f=o.columns;o.deferUpdate((function(){for(var e=0;e1&&'\"'==C[0]&&'\"'==C[m-1]&&C.indexOf(\"\\n\")>-1&&(C=C.substr(1,m-2));var y=w.maxLength||r.maxLength;y&&(C=C.substr(0,y));var v=new CellRangeEventArgs(o.cells,new CellRange(h,s),C);if(o.onPastingCell(v)){if(n){n.editItem(p[h].dataItem);i._edItem=n.currentEditItem}if(o.setCellData(h,s,v.data)){o.onPastedCell(v);u=!0}}c.row2=Math.max(c.row2,h);c.col2=Math.max(c.col2,s)}}else _--}if(i._edItem&&n instanceof CollectionView){var b=new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Change,i._edItem,h);n.onCollectionChanged(b)}if(g)break}else e--}n&&a.length>1&&c.rowSpan>1&&n.commitEdit();o.select(c);o.onPasted(d);if(u&&closest(o.hostElement,\"form\")){var R=document.createEvent(\"HTMLEvents\"),x=createElement(\"\",o.hostElement);R.initEvent(\"change\",!0,!1);x.dispatchEvent(R);removeChild(x)}}))};_EditHandler.prototype._parseClipString=function(e){e=(e=e.replace(/\\r\\n/g,\"\\n\").replace(/\\r/g,\"\\n\")).replace(/\\n$/,\"\");var t=0,i=0,o=[];for(t=0;t2&&'\"'==r[0]&&'\"'==r[l-1]&&r.indexOf('\"\"')>-1?r=(r=r.substr(1,l-2)).replace(/\"\"/g,'\"'):\"\\t\"==r&&(r=\"\");e[e.length-1].push(r);n&&e.push([])};_EditHandler.prototype._expandClipRows=function(e,t){for(var i=e.length,o=0,n=0;n1||s>1){1==l&&(l=i);1==s&&(s=o);if(s%o==0&&l%i==0){for(c=o;c=i.rows.length)return!1;var o=i.rows[e];if(!o||o.isReadOnly||!o.isVisible)return!1}if(null!=t){if(t<0||t>=i.columns.length)return!1;var n=i._getBindingColumn(i.cells,e,i.columns[t]);if(!n||n.isReadOnly||!n.isVisible)return!1}return!0};_EditHandler.prototype._commitRowEdits=function(){var e=this._g;if(this.finishEditing()&&this._edItem){var t=e.editableCollectionView;if(t&&(t.currentEditItem||t.currentAddItem)){var i=new CellRangeEventArgs(e.cells,e.selection);e.onRowEditEnding(i);t.commitEdit();e.onRowEditEnded(i)}this._edItem=null}};_EditHandler.prototype._keydown=function(e){var t=this._edt;switch(e.keyCode){case Key.F2:this._fullEdit=!this._fullEdit;e.preventDefault();return!0;case Key.F4:this._toggleListBox(e);e.preventDefault();return!0;case Key.Space:if(t&&\"checkbox\"==t.type&&!t.disabled&&!t.readOnly){t.checked=!t.checked;this.finishEditing();e.preventDefault()}return!0;case Key.Enter:e.preventDefault();if(t&&e.altKey){var i=e.target;if(i instanceof HTMLTextAreaElement&&\"soft\"==i.wrap){var o=i.value,n=i.selectionStart,r=i.selectionEnd;i.value=o.substr(0,n)+\"\\n\"+o.substr(r);setSelectionRange(i,n+1)}return!0}return!this.finishEditing();case Key.Tab:e.preventDefault();return!this.finishEditing();case Key.Escape:e.preventDefault();this.finishEditing(!0);return!0;case Key.Up:case Key.Down:case Key.Left:case Key.Right:case Key.PageUp:case Key.PageDown:case Key.Home:case Key.End:if(this._lbx)return this._keydownListBox(e);if(e.altKey)switch(e.keyCode){case Key.Up:case Key.Down:this._toggleListBox(e);e.preventDefault();return!0}if(!this._fullEdit&&this.finishEditing())return!1}return!0};_EditHandler.prototype._keydownListBox=function(e){var t=!0;if(this._lbx)switch(e.keyCode){case Key.Up:e.altKey?this._toggleListBox(e):this._lbx.selectedIndex>0&&this._lbx.selectedIndex--;break;case Key.Down:e.altKey?this._toggleListBox(e):this._lbx.selectedIndex++;break;case Key.Home:case Key.PageUp:this._lbx.selectedIndex=0;break;case Key.End:case Key.PageDown:this._lbx.selectedIndex=this._lbx.collectionView.items.length-1;break;default:t=!1}if(t){e.preventDefault();return!0}return!1};_EditHandler.prototype._keypress=function(e){if(\"AltLeft\"!=e.code&&\"AltRight\"!=e.code){var t=this._edt,i=e.charCode||32;if(t&&\"checkbox\"!=t.type&&getActiveElement()==t&&this._list&&this._list.length>0&&i>=32){var o=t.selectionStart,n=t.value.substr(0,o);if(e.target==t&&e.charCode){n+=String.fromCharCode(e.charCode);o++}var r=this._findString(this._list,n,!0);r<0&&(r=this._findString(this._list,n,!1));if(r>-1){t.value=this._list[r];setSelectionRange(t,o,t.value.length);t.dispatchEvent(this._evtInput);e.preventDefault&&e.preventDefault()}}}else e.preventDefault()};_EditHandler.prototype._findString=function(e,t,i){i||(t=t.toLowerCase());for(var o=0;oKey.Space&&\"AltLeft\"!=e.code&&\"AltRight\"!=e.code)if(this._startEditing(!1,e)&&i.activeEditor){var n=getActiveElement();if(n instanceof HTMLInputElement&&\"checkbox\"!=n.type||n instanceof HTMLTextAreaElement){var r=i._selHdl.selection,l=i.getCellData(r.row,r.col,!0),s=i.getCellData(r.row,r.col,!1),a=culture.Globalize.numberFormat[\"%\"]||\"%\",c=String.fromCharCode(e.charCode),d=isNumber(s)&&l.indexOf(a)>-1||\"\"==l&&n.value==a;n.value=c+(d?a:\"\");setSelectionRange(n,1);n.dispatchEvent(o._evtInput);o._keypress(e);o._edtValue=n.value!=l?n.value:null;e.preventDefault()}}else if(i.autoSearch){var u=!1;r=i._selHdl.selection;if(e.charCode>32||32==e.charCode&&this._search){e.preventDefault();this._search+=String.fromCharCode(e.charCode);this._toSearch&&clearTimeout(this._toSearch);this._toSearch=setTimeout((function(){t._toSearch=null;t._search=\"\"}),Control._SEARCH_DELAY);var h=this._findNext(r.row,r.col);if(h<0&&this._search.length>1){this._search=this._search[this._search.length-1];h=this._findNext(r.row,r.col)}if(h>-1){u=!0;i.select(h,r.col)}}u||(this._search=\"\")}}};_KeyboardHandler.prototype._findNext=function(e,t){var i=this._g,o=i.rows.length;(e<0||1==this._search.length)&&e++;var n=this._search,r=i.caseSensitiveSearch;r||(n=n.toLowerCase());for(var l=0;l-1&&t<=e.bottomRow;t++){var n=o[t];l.indexOf(n)<0&&l.push(n)}}));break;case c.Row:r.topRow>-1&&l.push(o[r.topRow]);break;case c.RowRange:for(var d=r.topRow;d>-1&&d<=r.bottomRow;d++)l.push(o[d])}if(l.length>0){i.deferUpdate((function(){n&&n.beginUpdate();for(var e=l.length-1;e>=0;e--){var t=l[e];if(!(t instanceof _NewRowTemplate)){s.setRange(t.index,-1);if(i.onDeletingRow(a)){n&&t.dataItem?n.remove(t.dataItem):i.rows.removeAt(t.index);i.onDeletedRow(a)}}}n&&n.endUpdate(!1)}));var u=r.topRow;u=Math.min(u,i.rows.length-1);for(;u>0&&i.rows[u]instanceof _NewRowTemplate;)u--;r.row=r.row2=u;i.select(r,!1);i.childItemsPath&&n&&n.refresh();return!0}if(0==l.length){i.deferUpdate((function(){var o=i.scrollPosition;n&&n.beginUpdate();t._deleteRange(e,r);i.selectionMode==c.MultiRange&&i._selHdl.extendedSelection.forEach((function(i){t._deleteRange(e,i)}));i.select(r,!1);i.scrollPosition=o;n&&n.endUpdate()}));return!0}return!1};_KeyboardHandler.prototype._deleteRange=function(e,t){for(var i=this._g,o=i.editableCollectionView,n=new CellRange,r=new CellEditEndingEventArgs(i.cells,n,e),l=t.row>t.row2?1:-1,s=t.row2;t.containsRow(s);s+=l){var a=i.rows[s];if(!a.isReadOnly)for(var c=t.leftCol;c<=t.rightCol;c++){if(!i._getBindingColumn(i.cells,s,i.columns[c]).getIsRequired(a)&&i.canEditCell(a.index,c)&&i.getCellData(s,c,!0)){n.setRange(s,c);r.cancel=!1;if(i.onBeginningEdit(r)){if(o){var d=a.dataItem;o.editItem(d);i._edtHdl._edItem=d}i.setCellData(s,c,\"\",!0,!1);i.onCellEditEnding(r);i.onCellEditEnded(r)}}}}};_KeyboardHandler.prototype._startEditing=function(e,t,i,o){return this._g._edtHdl.startEditing(e,i,o,!0,t)};return _KeyboardHandler}();export{_KeyboardHandler};var _AR_ALLCELLS=4,_WJC_DRAGSRC=\"wj-state-dragsrc\",_WJC_FLEXGRID=\"wj-flexgrid\";export var AllowResizing;!function(e){e[e.None=0]=\"None\";e[e.Columns=1]=\"Columns\";e[e.Rows=2]=\"Rows\";e[e.Both=3]=\"Both\";e[e.ColumnsAllCells=e.Columns|_AR_ALLCELLS]=\"ColumnsAllCells\";e[e.RowsAllCells=e.Rows|_AR_ALLCELLS]=\"RowsAllCells\";e[e.BothAllCells=e.Both|_AR_ALLCELLS]=\"BothAllCells\"}(AllowResizing||(AllowResizing={}));export var AutoSizeMode;!function(e){e[e.None=0]=\"None\";e[e.Headers=1]=\"Headers\";e[e.Cells=2]=\"Cells\";e[e.Both=3]=\"Both\"}(AutoSizeMode||(AutoSizeMode={}));export var AllowDragging;!function(e){e[e.None=0]=\"None\";e[e.Columns=1]=\"Columns\";e[e.Rows=2]=\"Rows\";e[e.Both=3]=\"Both\"}(AllowDragging||(AllowDragging={}));var _MouseHandler=function(){function _MouseHandler(e){var t=this,i=e.hostElement,o=e.addEventListener.bind(e),n=e.removeEventListener.bind(e);this._g=e;this._dvMarker=createElement('
     
    ');o(i,\"mousedown\",(function(i){e._rcBounds=null;if(!i.defaultPrevented&&0==i.button){var r=i.target;if(!e.containsFocus()){var l=r instanceof HTMLElement&&r.tabIndex>-1?r:e._eFocus;e._setFocusNoScroll(l)}setTimeout((function(){i.defaultPrevented||e.focus()}));var s=closestClass(r,_WJC_FLEXGRID);if(s&&s!=e.hostElement||!e.activeEditor&&e._isInputElement(r)&&!t._hasRadioMap(i)&&!e._isNativeCheckbox(r)){var a=e.hitTest(i),c=CellType;switch(a.cellType){case c.Cell:e.select(a.range,!1);r instanceof HTMLElement&&\"root\"!=r.getAttribute(\"wj-part\")&&r.focus();break;case c.ColumnHeader:case c.ColumnFooter:e.scrollIntoView(-1,a.col);break;case c.RowHeader:e.scrollIntoView(a.row,-1)}isIE()&&a.cellType!=c.Cell&&e._isInputElement(r)&&r.focus();return}var d=document;n(d,\"mousemove\");n(d,\"mouseup\");o(d,\"mousemove\",mouseMove);o(d,\"mouseup\",mouseUp);t._isDown=!0;t._mousedown(i)}}));var mouseMove=function(e){t._mousemove(e)},mouseUp=function(e){t._isDown=!1;n(document,\"mousemove\");n(document,\"mouseup\");t._mouseup(e)};o(i,\"mouseenter\",(function(t){e._rcBounds=null}));o(i,\"mousemove\",this._hover.bind(this));o(i,\"dblclick\",this._dblclick.bind(this));o(i,\"click\",this._click.bind(this));o(i,\"selectstart\",(function(t){e._isInputElement(t.target)||t.preventDefault()}));o(i,\"wheel\",(function(t){if(!t.defaultPrevented&&t.deltaY&&!t.ctrlKey&&!t.metaKey){var i=e._root,o=t.deltaY,n=0;if(i.scrollHeight>i.offsetHeight&&closestClass(t.target,_WJC_FLEXGRID)==e.hostElement){switch(t.deltaMode){case 1:n=e.rows.defaultSize*(o<0?-1:1);break;case 2:n=i.clientHeight*(o<0?-1:1);break;case 0:default:isSafari()&&(o=clamp(o,-150,150));n=o}e.focus();t.shiftKey?i.scrollLeft+=n:i.scrollTop+=n;t.preventDefault()}}}));o(i,\"dragstart\",this._dragstart.bind(this));o(i,\"dragover\",this._dragover.bind(this));o(i,\"dragleave\",this._dragover.bind(this));o(i,\"drop\",this._drop.bind(this));o(i,\"dragend\",this._dragend.bind(this))}_MouseHandler.prototype.resetMouseState=function(){var e=this._g,t=e.hostElement;if(this._updating){this._updating=!1;e.endUpdate()}this._dragSrc&&removeClass(this._dragSrc,_WJC_DRAGSRC);this._showDragMarker(null);t&&(t.style.cursor=\"\");e.removeEventListener(document,\"mousemove\");e.removeEventListener(document,\"mouseup\");this._eMouse=null;this._isDown=null;this._htDown=null;this._lbSelRows=null;this._szRowCol=null;this._szArgs=null;e._rcBounds=null};_MouseHandler.prototype._mousedown=function(e){var t=this._g,i=t.hitTest(e),o=i.cellType,n=CellType,r=e.ctrlKey||e.metaKey,l=e.target;this._selDown=t.selection;if(i.panel==t.cells){if(closestClass(l,CellFactory._WJC_DROPDOWN)){t._edtHdl._toggleListBox(e,i.range);e.preventDefault();return}if(t.editRange&&t.editRange.contains(i.range))return}var s=getActiveElement();if(l!=s||!t._isInputElement(l))if(o!=n.None){this._htDown=i;this._eMouse=e;this._resized=!1;if(null==this._szRowCol){var a=t.allowResizing,c=AllowResizing;if(o==n.RowHeader&&i.edgeBottom&&a&c.Rows&&this._getResizeRowHt(i))this._resized=!0;else if(o==n.ColumnHeader&&i.edgeRight&&a&c.Columns&&this._getResizeColHt(i))this._resized=!0;else{var d=t.allowDragging,u=AllowDragging;switch(o){case n.Cell:case n.RowHeader:r&&t.selectionMode==SelectionMode.ListBox&&this._startListBoxSelection(i.row);this._mouseSelect(e,e.shiftKey);if(o==n.RowHeader&&!(d&u.Rows)){e.preventDefault();t.focus()}break;case n.ColumnHeader:t.allowSorting||d&u.Columns||this._mouseSelect(e,e.shiftKey)}if(o==n.Cell&&t.rows.maxGroupLevel>-1){var h=tryCast(t.rows[i.row],GroupRow),g=null!=closestClass(l,CellFactory._WJC_COLLAPSE);if(isIE9()&&t.showMarquee){var p=h?t.cells.getCellElement(i.row,i.col):null,f=p?p.querySelector(\".\"+CellFactory._WJC_COLLAPSE):null,_=f?Rect.fromBoundingRect(f.getBoundingClientRect()):null,w=e.touches||e;g=_&&_.contains(new Point(w.clientX,w.clientY))}if(g){r?t.collapseGroupsToLevel(h.isCollapsed?h.level+1:h.level):h.isCollapsed=!h.isCollapsed;this.resetMouseState()}}}}else{var C=t._eFocus;if(s!=C){C.tabIndex=0;C.focus()}this._resized=!0;this._handleResizing(e)}}else{t.finishEditing();l!=t._root&&l!=t._fCt&&t._edtHdl._commitRowEdits()}};_MouseHandler.prototype._mousemove=function(e){if(this._htDown&&!e.defaultPrevented){if(0==e.buttons&&this._eMouse&&e.timeStamp-this._eMouse.timeStamp>600){this.resetMouseState();return}this._eMouse=e;if(this._szRowCol)this._handleResizing(e);else{var t=this._g,i=t.allowDragging,o=AllowDragging,n=CellType;switch(this._htDown.cellType){case n.Cell:this._mouseSelect(e,!0);break;case n.RowHeader:i&o.Rows||this._mouseSelect(e,!0);break;case n.ColumnHeader:i&o.Columns||t.allowSorting||this._mouseSelect(e,!0)}}}};_MouseHandler.prototype._mouseup=function(e){var t=this._g;if(!t.isTouching||!(this._dragSrc||e.target instanceof HTMLHtmlElement)){var i=t.hitTest(e),o=this._htDown;if(o&&!e.defaultPrevented){this._szArgs&&this._finishResizing(e);if(!this._szArgs&&i.panel==o.panel&&i.row==o.row&&i.col==o.col){var n=i.target;if(n!=o.target&&n instanceof HTMLElement){if(o.target instanceof HTMLInputElement){var r=i.point,l=o.point;Math.abs(r.x-l.x)+Math.abs(r.y-l.y)<10&&(n=n.querySelector(\"input\")||n)}n.click()}}}this.resetMouseState()}};_MouseHandler.prototype._click=function(e){if(!e.defaultPrevented){var t=this._g,i=e.target;if(this._resized){e.preventDefault();return}var o=tryCast(i,HTMLInputElement);!o&&t.bigCheckboxes&&(o=i.querySelector(\"input.\"+CellFactory._WJC_CHECKBOX));if(o!=t.activeEditor&&t._isNativeCheckbox(o)){if((r=t.hitTest(i)).panel==t.cells&&t.startEditing(!1,r.row,r.col,!1,e)){var n=t.getCellData(r.row,r.col,!1);t.activeEditor.checked=!n;t.finishEditing();t.focus()}return}if(this._hasRadioMap(e)){this._handleClick(e);return}if(!(e.ctrlKey||e.metaKey||e.shiftKey||t.activeEditor)){var r;if((r=t.hitTest(i)).panel==t.cells&&t.selection.equals(this._selDown)){t.startEditing(!0,null,null,!0,e);return}}this._handleClick(e)}};_MouseHandler.prototype._handleClick=function(e){var t=this._g,i=e.target,o=t.hitTest(i),n=o.panel;if(!e.defaultPrevented&&o.grid==t){if(n==t.cells&&this._hasRadioMap(e)){var r=i instanceof HTMLInputElement?i:i.querySelector(\"input\");if(r instanceof HTMLInputElement&&!r.disabled){if(r.parentElement instanceof HTMLLabelElement&&t.startEditing(!1,o.row,o.col,!1)){t.setCellData(o.row,o.col,r.parentElement.textContent);t.finishEditing()}}return}if(!t._isInputElement(i)){if(n==t.topLeftCells){var l=SelectionMode;switch(t.selectionMode){case l.None:case l.Cell:break;default:t.selectAll()}return}if(n==t.columnHeaders){if(t.allowPinning&&closestClass(i,CellFactory._WJC_PIN))this._clickPin(e,o);else if(closestClass(e.target,CellFactory._WJC_COLLAPSE)){var s=t._getColumnGroup(o.row,o.col);s&&(s.isCollapsed=!s.isCollapsed)}else{i instanceof HTMLSpanElement&&i.parentElement instanceof HTMLLabelElement&&(i=i.parentElement.querySelector(\"input\"));i instanceof HTMLInputElement||this._clickSort(e,o);t.focus()}return}if(n==t.cells){if(o.row<0){this._clickSort(e,o);return}if(closestClass(i,CellFactory._WJC_COLLAPSE)){var a=t.rows[o.row];a instanceof GroupRow&&(e.ctrlKey?t.collapseGroupsToLevel(a.isCollapsed?a.level+1:a.level):a.isCollapsed=!a.isCollapsed);return}}}}};_MouseHandler.prototype._hasRadioMap=function(e){var t=e.target;if(t instanceof HTMLInputElement||t instanceof HTMLLabelElement){var i=closestClass(t,CellFactory._WJC_RADIOMAP);return closestClass(i,_WJC_FLEXGRID)==this._g.hostElement}};_MouseHandler.prototype._clickSort=function(e,t){var i=this._g,o=i.allowSorting,n=i.collectionView,r=n?n.sortDescriptions:null,l=e.ctrlKey||e.metaKey,s=e.shiftKey;if(n&&n.canSort&&o!=AllowSorting.None){var a=t.panel.columns[t.col],c=i._getBindingColumn(t.panel,t.row,a),d=c?c._getBindingSort():null;if(c.allowSorting&&d){if(a==c){var u=i.getMergedRange(t.panel,t.row,t.col,!1);if(u&&u.columnSpan>1)return}var h=new CellRangeEventArgs(t.panel,t.range,e);if(i.onSortingColumn(h)){i._edtHdl._commitRowEdits();for(var g=-1,p=0;p=n){o.moveElement(t.col,n,!1);o.frozen++}else{o.moveElement(t.col,n-1,!1);o.frozen--}r==AllowPinning.ColumnRange&&(t.col+1!=n?o.frozen=t.col+1:o.frozen=0);i.onPinnedColumn(l)}};_MouseHandler.prototype._dblclick=function(e){var t,i=this._g,o=i.hitTest(e),n=o.cellType,r=i.selection,l=o.range;if(!e.defaultPrevented){var s=i.allowResizing,a=AllowResizing,c=CellType;if(o.edgeRight&&s&a.Columns){if(n==c.ColumnHeader||n==c.Cell&&s&_AR_ALLCELLS){e.ctrlKey&&r.containsColumn(o.col)&&(l=r);for(var d=l.leftCol;d<=l.rightCol;d++)if(i.columns[d].allowResizing){t=new CellRangeEventArgs(i.cells,new CellRange(-1,d));if(i.onAutoSizingColumn(t)&&i.onResizingColumn(t)){this._resized=!0;i.autoSizeColumn(d);i.onResizedColumn(t);i.onAutoSizedColumn(t);e.preventDefault()}}}else if(n==c.TopLeft&&o.panel.columns[o.col].allowResizing){t=new CellRangeEventArgs(o.panel,new CellRange(-1,o.col));if(i.onAutoSizingColumn(t)&&i.onResizingColumn(t)){this._resized=!0;i.autoSizeColumn(o.col,!0);i.onAutoSizedColumn(t);i.onResizedColumn(t);e.preventDefault()}}this.resetMouseState()}else if(o.edgeBottom&&s&a.Rows){if(n==c.RowHeader||n==c.Cell&&s&_AR_ALLCELLS){e.ctrlKey&&r.containsRow(o.row)&&(l=r);for(var u=l.topRow;u<=l.bottomRow;u++)if(i.rows[u].allowResizing){t=new CellRangeEventArgs(i.cells,new CellRange(u,-1));if(i.onAutoSizingRow(t)&&i.onResizingRow(t)){this._resized=!0;i.autoSizeRow(u);i.onResizedRow(t);i.onAutoSizedRow(t);e.preventDefault()}}}else if(n==c.TopLeft&&o.getRow().allowResizing){t=new CellRangeEventArgs(o.panel,new CellRange(o.row,-1));if(i.onAutoSizingRow(t)&&i.onResizingRow(t)){this._resized=!0;i.autoSizeRow(o.row,!0);i.onResizedRow(t);i.onAutoSizedRow(t);e.preventDefault()}}this.resetMouseState()}else;}};_MouseHandler.prototype._hover=function(e){if(!this._isDown){var t=this._g,i=t.hitTest(e),o=\"\";this._szRowCol=this._getResizeColHt(i)||this._getResizeRowHt(i);this._szRowCol instanceof Column?o=\"col-resize\":this._szRowCol instanceof Row&&(o=\"row-resize\");this._szStart=this._szRowCol?this._szRowCol.renderSize:0;t.hostElement.style.cursor=o;return i}return null};_MouseHandler.prototype._getResizeColHt=function(e){var t,i=this._g.allowResizing,o=e.cellType,n=CellType;if(i&AllowResizing.Columns&&(o==n.ColumnHeader||o==n.TopLeft||o==n.Cell&&i&_AR_ALLCELLS)){e.edgeRight&&(t=e.getColumn());e.edgeFarRight&&(t=this._getResizeCol(e.panel,e.col)||e.getColumn());e.edgeLeft&&(t=this._getResizeCol(e.panel,e.col,!0))}return t&&t.allowResizing?t:null};_MouseHandler.prototype._getResizeRowHt=function(e){var t,i=this._g.allowResizing,o=e.cellType,n=CellType;if(i&AllowResizing.Rows&&(o==n.RowHeader||o==n.TopLeft||o==n.Cell&&i&_AR_ALLCELLS)){e.edgeBottom&&(t=e.getRow());e.edgeFarBottom&&(t=this._getResizeRow(e.panel,e.row)||e.getRow());e.edgeTop&&(t=this._getResizeRow(e.panel,e.row,!0))}return t&&t.allowResizing?t:null};_MouseHandler.prototype._getResizeCol=function(e,t,i){void 0===i&&(i=!1);var o=this._g,n=e.columns;if(i){for(var r=t-1;r>=0;r--){if((l=n[r]).visible)return this._asResizable(l)}if(n==o.columns&&0!=(o.headersVisibility&HeadersVisibility.Row))for(r=(n=o.rowHeaders.columns).length-1;r>=0;r--){if((l=n[r]).visible)return this._asResizable(l)}return null}for(r=t+1;r=0;r--){if((l=n[r]).visible)return this._asResizable(l)}if(n==o.rows&&0!=(o.headersVisibility&HeadersVisibility.Column))for(r=(n=o.columnHeaders.rows).length-1;r>=0;r--){if((l=n[r]).visible)return this._asResizable(l)}return null}for(r=t+1;r=0&&e.target!=o._root&&((n=new HitTestInfo(o,e)).panel||setTimeout((function(){i._isDown&&i._eMouse&&i._mouseSelect(i._eMouse,t)}),100))}};_MouseHandler.prototype._handleResizing=function(e){e.preventDefault();if(this._szRowCol instanceof Column){var t=this._g,i=mouseToPage(e).x,o=Math.round(Math.max(_MouseHandler._SZ_MIN,this._szStart+(i-this._htDown.point.x)*(t.rightToLeft?-1:1)));if(this._szRowCol.renderSize!=o){if(null==this._szArgs){var n=t.rowHeaders.columns.indexOf(this._szRowCol)>-1?t.rowHeaders:t.cells;this._szArgs=new CellRangeEventArgs(n,new CellRange(-1,this._szRowCol.index))}this._szArgs.cancel=!1;t.onResizingColumn(this._szArgs)&&(t.deferResizing?this._showResizeMarker(o):this._szRowCol.width=o)}}if(this._szRowCol instanceof Row){t=this._g;var r=mouseToPage(e).y;o=Math.round(Math.max(_MouseHandler._SZ_MIN,this._szStart+(r-this._htDown.point.y)));if(this._szRowCol.renderSize!=o){if(null==this._szArgs){n=t.columnHeaders.rows.indexOf(this._szRowCol)>-1?t.columnHeaders:t.cells;this._szArgs=new CellRangeEventArgs(n,new CellRange(this._szRowCol.index,-1))}this._szArgs.cancel=!1;t.onResizingRow(this._szArgs)&&(t.deferResizing?this._showResizeMarker(o):this._szRowCol.height=o)}}};_MouseHandler.prototype._dragstart=function(e){var t=this._g,i=this._htDown,o=AllowDragging;if(i){this._dragSrc=null;this._htDrag=null;if(!this._szRowCol){var n=new CellRangeEventArgs(i.panel,i.range);if(i.cellType==CellType.ColumnHeader&&t.allowDragging&o.Columns&&i.col>-1&&t.columns[i.col].allowDragging)t.onDraggingColumn(n)?this._dragSrc=e.target:e.preventDefault();else if(i.cellType==CellType.RowHeader&&t.allowDragging&o.Rows&&i.row>-1&&t.rows[i.row].allowDragging){var r=t.rows[i.row];r instanceof GroupRow||r instanceof _NewRowTemplate||(t.onDraggingRow(n)?this._dragSrc=e.target:e.preventDefault())}else i.cellType==CellType.TopLeft&&t.allowDragging&o.Columns&&i.col>-1&&t.topLeftCells.columns[i.col].allowDragging&&(t.onDraggingColumn(n)?this._dragSrc=e.target:e.preventDefault())}if(this._dragSrc&&e.dataTransfer&&!e.defaultPrevented){this._htDrag=i;_startDrag(e.dataTransfer,\"move\");e.stopPropagation();addClass(this._dragSrc,_WJC_DRAGSRC);t.beginUpdate();this._updating=!0}}};_MouseHandler.prototype._dragend=function(e){this._dragSrc=null;this._htDrag=null;this.resetMouseState()};_MouseHandler.prototype._dragover=function(e){var t=this._g,i=this._hitTest(e),o=this._dragSrc?this._htDrag:null,n=CellType,r=!1;if(o&&i.cellType==o.cellType){var l=new CellRangeEventArgs(i.panel,i.range,o);if(i.cellType==n.ColumnHeader){l.cancel=!t.columns.canMoveElement(o.col,i.col);r=t.onDraggingColumnOver(l)}else if(i.cellType==n.RowHeader){l.cancel=!t.rows.canMoveElement(o.row,i.row);r=t.onDraggingRowOver(l)}else if(i.cellType==n.TopLeft){l.cancel=!t.topLeftCells.columns.canMoveElement(o.col,i.col);r=t.onDraggingColumnOver(l)}}if(r){e.dataTransfer.dropEffect=\"move\";e.preventDefault();e.stopPropagation();this._showDragMarker(i)}else this._showDragMarker(null);if(o&&t.autoScroll){var s=t.controlRect,a=t.scrollPosition,c=Control._DRAG_SCROLL_EDGE,d=Control._DRAG_SCROLL_STEP;if(o.panel==t.columnHeaders){e.pageX-s.leftthis._htDown.col&&(l.left+=s.renderWidth);e.cellType==r.ColumnHeader&&e.colthis._htDown.row&&(l.top+=a.renderHeight);e.row-1){var l=o.col,s=mouseToPage(e).x,a=Math.round(Math.max(_MouseHandler._SZ_MIN,this._szStart+(s-this._htDown.point.x)*(this._g.rightToLeft?-1:1)));o.panel.columns[l].width=Math.round(a);t.onResizedColumn(o);if(n&&this._htDown.cellType==r.ColumnHeader&&i.containsColumn(l))for(var c=i.leftCol;c<=i.rightCol;c++)if(t.columns[c].allowResizing&&c!=l){o=new CellRangeEventArgs(t.cells,new CellRange(-1,c));if(t.onResizingColumn(o)){t.columns[c].size=t.columns[l].size;t.onResizedColumn(o)}}e.preventDefault()}if(o.row>-1){var d=o.row,u=mouseToPage(e).y;a=Math.round(Math.max(_MouseHandler._SZ_MIN,this._szStart+(u-this._htDown.point.y)));o.getRow().height=Math.round(a);t.onResizedRow(o);if(n&&this._htDown.cellType==r.RowHeader&&i.containsRow(d))for(var h=i.topRow;h<=i.bottomRow;h++)if(t.rows[h].allowResizing&&h!=d){o=new CellRangeEventArgs(t.cells,new CellRange(h,-1));if(t.onResizingRow(o)){t.rows[h].size=t.rows[d].size;t.onResizedRow(o)}}e.preventDefault()}}};_MouseHandler.prototype._startListBoxSelection=function(e){var t=this._g.rows,i=this._lbSelRows={};this._lbSelState=!t[e].isSelected;for(var o=0;o-1&&e.indexOf(n._chrPct)<0&&(e+=n._chrPct);n._setText(e)}))}));var h=n._clickSpinner.bind(n);l(n._btnUp,\"click\",h);l(n._btnDn,\"click\",h);n._rptUp=new _ClickRepeater(n._btnUp.querySelector(\"button\"));n._rptDn=new _ClickRepeater(n._btnDn.querySelector(\"button\"));l(a,\"wheel\",(function(e){if(!e.defaultPrevented&&!e.ctrlKey&&!n.isReadOnly&&n.containsFocus()){var t=clamp(-e.deltaY,-1,1);n._increment((n.step||1)*t);setTimeout((function(){return n.selectAll()}));e.preventDefault()}}));n.value=0;n.isRequired=!0;n.initialize(i);return n}Object.defineProperty(InputNumber.prototype,\"inputElement\",{get:function(){return this._tbx},enumerable:!0,configurable:!0});Object.defineProperty(InputNumber.prototype,\"inputType\",{get:function(){return this._tbx.type},set:function(e){this._tbx.type=asString(e)},enumerable:!0,configurable:!0});Object.defineProperty(InputNumber.prototype,\"value\",{get:function(){return this._value},set:function(e){if(e!=this._value)if(null==(e=asNumber(e,!this.isRequired||null==e&&null==this._value)))this._setText(\"\");else if(!isNaN(e)){var t=Globalize.format(e,this.format);this._setText(t)}},enumerable:!0,configurable:!0});Object.defineProperty(InputNumber.prototype,\"isRequired\",{get:function(){return this._tbx.required},set:function(e){this._tbx.required=asBoolean(e)},enumerable:!0,configurable:!0});Object.defineProperty(InputNumber.prototype,\"isReadOnly\",{get:function(){return this._readOnly},set:function(e){this._readOnly=asBoolean(e);this.inputElement.readOnly=this._readOnly;toggleClass(this.hostElement,\"wj-state-readonly\",this.isReadOnly)},enumerable:!0,configurable:!0});Object.defineProperty(InputNumber.prototype,\"min\",{get:function(){return this._min},set:function(e){if(e!=this._min){this._min=asNumber(e,!0);this._updateAria()}},enumerable:!0,configurable:!0});Object.defineProperty(InputNumber.prototype,\"max\",{get:function(){return this._max},set:function(e){if(e!=this._max){this._max=asNumber(e,!0);this._updateAria()}},enumerable:!0,configurable:!0});Object.defineProperty(InputNumber.prototype,\"step\",{get:function(){return this._step},set:function(e){this._step=asNumber(e,!0);this._updateBtn()},enumerable:!0,configurable:!0});Object.defineProperty(InputNumber.prototype,\"format\",{get:function(){return this._format},set:function(e){if(e!=this.format){this._format=asString(e);this.refresh()}},enumerable:!0,configurable:!0});Object.defineProperty(InputNumber.prototype,\"text\",{get:function(){return this._tbx.value},set:function(e){if(e!=this.text){this._oldText=null;this._setText(e)}},enumerable:!0,configurable:!0});Object.defineProperty(InputNumber.prototype,\"placeholder\",{get:function(){return this._tbx.placeholder},set:function(e){this._tbx.placeholder=e},enumerable:!0,configurable:!0});Object.defineProperty(InputNumber.prototype,\"showSpinner\",{get:function(){return this._showBtn},set:function(e){this._showBtn=asBoolean(e);this._updateBtn()},enumerable:!0,configurable:!0});Object.defineProperty(InputNumber.prototype,\"repeatButtons\",{get:function(){return!this._rptUp.disabled},set:function(e){this._rptUp.disabled=this._rptDn.disabled=!asBoolean(e)},enumerable:!0,configurable:!0});InputNumber.prototype.selectAll=function(){var e=this._tbx;setSelectionRange(e,0,e.value.length)};InputNumber.prototype.clamp=function(e){return clamp(e,this.min,this.max)};InputNumber.prototype.onTextChanged=function(e){this.textChanged.raise(this,e);this._updateState()};InputNumber.prototype.onValueChanged=function(e){this._updateAria();this.valueChanged.raise(this,e)};InputNumber.prototype.dispose=function(){this._rptUp.element=null;this._rptDn.element=null;e.prototype.dispose.call(this)};InputNumber.prototype.onGotFocus=function(t){this._oldValue=this.value;if(!this.isTouching){this._tbx.focus();this.selectAll()}e.prototype.onGotFocus.call(this,t)};InputNumber.prototype.onLostFocus=function(t){if(this._composing){this._composing=!1;this._setText(this.text)}if(!this.isReadOnly){var i=this.clamp(this.value),n=Globalize.format(i,this.format);this._setText(n)}e.prototype.onLostFocus.call(this,t)};InputNumber.prototype.refresh=function(t){void 0===t&&(t=!0);e.prototype.refresh.call(this,t);if(this.hostElement){this._updateSymbols();var i=Globalize.format(this.value,this.format);this._setText(i)}};InputNumber.prototype._updateSymbols=function(){var e=culture.Globalize.numberFormat,t=this.format?this.format.match(/([a-z])(\\d*)(,*)(.*)/i):null;this._chrDec=e[\".\"]||\".\";this._chrTho=e[\",\"]||\",\";this._chrNeg=e[\"-\"]||\"-\";this._chrPls=e[\"+\"]||\"+\";this._chrPct=e[\"%\"]||\"%\";this._chrCur=t&&t[4]?t[4]:e.currency.symbol||\"$\";this._fmtSpc=t&&t[1]?t[1].toLowerCase():\"n\";this._fmtPrc=t&&t[2]?parseInt(t[2]):null;this._rxSym=new RegExp(\"^[%+\\\\-() \\\\\"+this._chrDec+\"\\\\\"+this._chrCur+\"\\\\\"+this._chrNeg+\"\\\\\"+this._chrPls+\"\\\\\"+this._chrPct+\"]*$\");this._rxNeg=new RegExp(\"(\\\\-|\\\\(|\\\\\"+this._chrNeg+\")\")};InputNumber.prototype._isNumeric=function(e,t){var i=e==this._chrDec||e>=\"0\"&&e<=\"9\",n=\"x\"==this._fmtSpc;!i&&n&&(i=e>=\"a\"&&e<=\"f\"||e>=\"A\"&&e<=\"F\");i||t||n||(i=e==this._chrPls||e==this._chrNeg||\"(\"==e||\")\"==e);return i};InputNumber.prototype._getInputRange=function(e){for(var t=[0,0],i=this.text,n=!1,o=0;o=0;i++)if(this._isNumeric(t[i],!0)){if(!e){setSelectionRange(this._tbx,i);break}e--}else if(!e){setSelectionRange(this._tbx,i);break}};InputNumber.prototype._increment=function(e){if(e){var t=this.clamp(isNumber(this.value)?this.value+e:0),i=Globalize.format(t,this.format,!1,!1);this._setText(i)}};InputNumber.prototype._updateBtn=function(){var e=this.showSpinner&&!!this.step,t=e;setCss([this._btnUp,this._btnDn],{display:e?\"\":\"none\"});toggleClass(this.hostElement,\"wj-input-show-spinner\",e);enable(this._btnUp,t);enable(this._btnDn,t);this._updateAria()};InputNumber.prototype._setText=function(e){if(!this._composing){var t=this._tbx,i=this._rxNeg.test(e),n=this._delKey,o=this.containsFocus();e&&this._rxSym.test(e)&&o&&(e=this.isRequired||!n?\"0\":\"\");this._delKey=!1;n&&0==this.value&&!this.isRequired&&(e=\"\");if(!e){if(!this.isRequired){t.value=\"\";if(null!=this._value){this._value=null;this.onValueChanged()}if(this._oldText){this._oldText=e;this.onTextChanged()}this._updateBtn();return}e=\"0\"}var s=this._format||(e.indexOf(this._chrDec)>-1?\"n2\":\"n0\"),r=Globalize.parseFloat(e,s);if(isNaN(r))t.value=this._oldText;else{var a=Globalize.format(r,s,!1);i&&r>=0&&!n&&(a=this._chrNeg+a);o&&(null!=this._fmtPrc&&\"g\"!=this._fmtSpc||!n&&t.value.match(/\\.0?$/)&&(a=e+(\"0\"==e?this._chrDec:\"\")));if(t.value!=a){\"g\"==this._fmtSpc&&t.value.match(a+\"0*\")&&this.containsFocus()&&t.selectionStart==t.value.length&&(a=t.value);t.value=a;r=Globalize.parseFloat(a,this.format)}if(r!=this._value){this._value=r;this.onValueChanged()}if(this.text!=this._oldText){this._oldText=this.text;this.onTextChanged()}this._updateBtn()}}};InputNumber.prototype._keypress=function(e){if(!(e.defaultPrevented||this._composing||this.isReadOnly)&&e.charCode&&!e.ctrlKey&&!e.metaKey){var t=this._tbx,i=String.fromCharCode(e.charCode);if(this._isNumeric(i,!1)){var n=t.maxLength;if(n>-1&&t.value.length>=n&&t.selectionEnd==t.selectionStart){e.preventDefault();return}var o=this._getInputRange(!0),s=t.selectionStart,r=t.selectionEnd;if(s=o[1]){var a=null!=this._fmtPrc?this._fmtPrc:2,l=t.value.indexOf(this._chrDec);l>-1&&s-l>a&&e.preventDefault()}}else e.preventDefault();switch(i){case\"-\":case this._chrNeg:if(this.clamp(-1)>=0)this.value<0&&this._flipSign();else if(this.value&&t.selectionStart==t.selectionEnd)this._flipSign();else if(this.clamp(-1)<0){t.value=this._chrNeg;setSelectionRange(t,1)}e.preventDefault();break;case\"+\":case this._chrPls:this.value<0&&this._flipSign();e.preventDefault();break;case\".\":case this._chrDec:if(0==this._fmtPrc)e.preventDefault();else{var h=t.value.indexOf(this._chrDec);if(h>-1){t.selectionStart<=h&&h++;setSelectionRange(t,h);e.preventDefault()}}}if(!e.defaultPrevented&&isIE()){var u=t.value;if((s=t.selectionStart)==(r=t.selectionEnd)){t.value=u.substr(0,s)+i+u.substr(r);setSelectionRange(t,s+1);e.preventDefault();this._input()}}}};InputNumber.prototype._keydown=function(e){var t=this;this._delKey=!1;if(!e.defaultPrevented&&!this._composing){var i=this._tbx,n=i.value,o=i.selectionStart,s=i.selectionEnd;switch(e.keyCode){case 65:if(e.ctrlKey){setTimeout((function(){t.selectAll()}));e.preventDefault()}break;case Key.Up:case Key.Down:if(this.step&&!this.isReadOnly){this._increment(this.step*(e.keyCode==Key.Up?1:-1));setTimeout((function(){t.selectAll()}));e.preventDefault()}break;case Key.Back:this._delKey=!0;if(s-o<2&&!this.isReadOnly){var r=n[s-1];if(r==this._chrDec||r==this._chrPct||r==this._chrTho||\")\"==r){setTimeout((function(){s=r==t._chrPct?t._getInputRange(!0)[1]:s-1;setSelectionRange(i,s)}));e.preventDefault()}}break;case Key.Delete:this._delKey=!0;if(s-o<2&&!this.isReadOnly)if(\"0\"==n&&1==o)setSelectionRange(i,0);else{var a=n[o];if(a==this._chrDec||a==this._chrPct){setTimeout((function(){setSelectionRange(i,o+1)}));e.preventDefault()}}break;case Key.Escape:this.value=this._oldValue;this.selectAll()}}};InputNumber.prototype._input=function(){var e=this;this._composing||setTimeout((function(){var t=e._tbx,i=t.value,n=i.indexOf(e._chrDec),o=t.selectionStart,s=e._getSelStartDigits();\"p\"==e._fmtSpc&&i.length&&i.indexOf(e._chrPct)<0&&(i+=e._chrPct);e._setText(i);if(e.containsFocus()){var r=t.value,a=r.indexOf(e._chrDec),l=e._getInputRange(!0);if(i==e._chrNeg+e._chrDec&&a>-1){setSelectionRange(t,a+1);return}if(i[0]==e._chrNeg&&r[0]!=e._chrNeg){1==r.length?setSelectionRange(t,1):e._setSelStartDigits(s);return}i?i==e._chrDec&&a>-1?o=a+1:o<=n&&a>-1||n<0&&a<0?o+=r.length-i.length:n<0&&a>-1&&(o=a):o=a>-1?a:l[1];o=clamp(o,l[0],l[1]);setSelectionRange(t,o)}}))};InputNumber.prototype._clickSpinner=function(e){var t=this;if(!e.defaultPrevented&&!this.isReadOnly&&this.step){this._increment(this.step*(contains(this._btnUp,e.target)?1:-1));this.isTouching||setTimeout((function(){return t.selectAll()}))}};InputNumber.prototype._updateAria=function(){var e=this.hostElement;if(e){setAttribute(e,\"aria-valuemin\",this.min);setAttribute(e,\"aria-valuemax\",this.max);setAttribute(e,\"aria-valuenow\",this.value)}};InputNumber.controlTemplate='
    ';return InputNumber}(Control);export{InputNumber};var InputMask=function(e){__extends(InputMask,e);function InputMask(t,i){var n=e.call(this,t)||this;n.valueChanged=new Event;var o=n.getTemplate();n.applyTemplate(\"wj-control wj-content wj-inputmask\",o,{_tbx:\"input\"},\"input\");if(\"INPUT\"==n._orgTag){var s=n._tbx.getAttribute(\"value\");s&&(n.value=s)}n._msk=new _MaskProvider(n._tbx);n.isRequired=!0;n.initialize(i);n.addEventListener(n._tbx,\"input\",(function(){n.onValueChanged()}));return n}Object.defineProperty(InputMask.prototype,\"inputElement\",{get:function(){return this._tbx},enumerable:!0,configurable:!0});Object.defineProperty(InputMask.prototype,\"inputType\",{get:function(){return this._tbx.type},set:function(e){this._tbx.type=asString(e)},enumerable:!0,configurable:!0});Object.defineProperty(InputMask.prototype,\"value\",{get:function(){return this._tbx.value},set:function(e){if(e!=this.value){this._tbx.value=asString(e);e=this._msk._applyMask();this._tbx.value=e;this.onValueChanged()}},enumerable:!0,configurable:!0});Object.defineProperty(InputMask.prototype,\"rawValue\",{get:function(){return this._msk.getRawValue()},set:function(e){e!=this.rawValue&&(this.value=asString(e))},enumerable:!0,configurable:!0});Object.defineProperty(InputMask.prototype,\"mask\",{get:function(){return this._msk.mask},set:function(e){var t=this.value;this._msk.mask=asString(e);this.value!=t&&this.onValueChanged()},enumerable:!0,configurable:!0});Object.defineProperty(InputMask.prototype,\"promptChar\",{get:function(){return this._msk.promptChar},set:function(e){var t=this.value;this._msk.promptChar=e;this.value!=t&&this.onValueChanged()},enumerable:!0,configurable:!0});Object.defineProperty(InputMask.prototype,\"placeholder\",{get:function(){return this._tbx.placeholder},set:function(e){this._tbx.placeholder=e},enumerable:!0,configurable:!0});Object.defineProperty(InputMask.prototype,\"maskFull\",{get:function(){return this._msk.maskFull},enumerable:!0,configurable:!0});Object.defineProperty(InputMask.prototype,\"isRequired\",{get:function(){return this._tbx.required},set:function(e){this._tbx.required=asBoolean(e)},enumerable:!0,configurable:!0});Object.defineProperty(InputMask.prototype,\"isReadOnly\",{get:function(){return this._tbx.readOnly},set:function(e){this._tbx.readOnly=asBoolean(e);toggleClass(this.hostElement,\"wj-state-readonly\",this.isReadOnly)},enumerable:!0,configurable:!0});InputMask.prototype.selectAll=function(){var e=this._msk.getMaskRange();setSelectionRange(this._tbx,e[0],e[1]+1)};InputMask.prototype.onValueChanged=function(e){if(this.value!=this._oldValue){this._oldValue=this.value;this.valueChanged.raise(this,e)}this._updateState()};InputMask.prototype._updateState=function(){e.prototype._updateState.call(this);var t=!this._pristine&&this._tbx.value&&!this.maskFull;toggleClass(this.hostElement,\"wj-state-invalid\",t)};InputMask.prototype.dispose=function(){this._msk.input=null;e.prototype.dispose.call(this)};InputMask.prototype.refresh=function(t){void 0===t&&(t=!0);e.prototype.refresh.call(this,t);this.hostElement&&this._msk.refresh()};InputMask.prototype.onGotFocus=function(t){e.prototype.onGotFocus.call(this,t);this.selectAll()};InputMask.controlTemplate='
    ';return InputMask}(Control);export{InputMask};var ColorPicker=function(e){__extends(ColorPicker,e);function ColorPicker(t,i){var n=e.call(this,t)||this;n._hsb=[.5,1,1];n._alpha=1;n.valueChanged=new Event;var o=n.getTemplate();n.applyTemplate(\"wj-control wj-content wj-colorpicker\",o,{_eSB:\"div-sb\",_eHue:\"div-hue\",_eAlpha:\"div-alpha\",_ePreview:\"div-pv\",_ePal:\"div-pal\",_eText:\"div-text\"});n._palette=\"#FFF,#000, #F00,#FFC000,#FFFF00,#92D050,#00B050,#00B0F0,#0070C0,#7030A0\".split(\",\");n._updatePalette();n._eHue.style.backgroundImage=\"url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAD4CAIAAACi6hsPAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAYdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuM4zml1AAAAGvSURBVDhPXdBPaM9xHMfxz4pWaxcmtoOhpdXSVpiyHWxqmVpDjaU5rK34XfypjTJ/p+ZPay6jhsOsRrKwaJElf9IQq03WIkv4FeMwMq221tfje1ByeFzfvd7PEKWGEKWTQRZLySWfVRRTQjmVbKWGOhLsZT+HaeY0bbTTQSfdXOcWffTzmAFeMcwoYyT5ygS/mA5hNgphip98J8kHRnnNSwZ4yH1uc4OrdHGR87RximYO0cgedlLLdqqoYAPrWMtKVrCcJSxiPmnMJUQp/Bsyk2xyyKOAQooopYwKtlDNDur5G7SBJo7RQiv/B+2hl3s84CkvGGKEOOYnxolj/mYmhBmDJ5ngCx95xxsGecYj4pB3iENeoZMO2mmlhaMcpIE4ZII6aqhmM3HMMkooopB88sghm0wySCeVlCjMCVFIYx4LWUwOeRSwhmLWU84mqqihll3sppEmjnOSs5zjEl1c4yZ99POE5wwxwns+840fTDFLFKaZZIJxkozxlmEGGSC+GF++Sy89dHOZC8Rr4lVnOMERDrCPBPXEX22jko2UEn+/mnxyWUYWC0gnNUQh/AEc0HJs6cex0gAAAABJRU5ErkJggg==)\";n._eHue.style.backgroundSize=\"contain\";if(navigator.appVersion.indexOf(\"MSIE 9\")>-1){n._eSB.children[0].style.filter=\"progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffffff,endColorstr=#00ffffff,GradientType=1)\";n._eSB.children[1].style.filter=\"progid:DXImageTransform.Microsoft.gradient(startColorstr=#00000000,endColorstr=#ff000000,GradientType=0)\"}o=ColorPicker._tplCursor;n._cSB=createElement(o);n._cHue=createElement(o);n._cHue.style.width=\"100%\";n._cAlpha=createElement(o);n._cAlpha.style.height=\"100%\";n._eSB.appendChild(n._cSB);n._eHue.appendChild(n._cHue);n._eAlpha.appendChild(n._cAlpha);var s=n.addEventListener.bind(n),r=n.removeEventListener.bind(n),a=document;s(n.hostElement,\"mousedown\",(function(e){s(a,\"mousemove\",mouseMove);s(a,\"mouseup\",mouseUp);n._mouseDown(e)}));s(n.hostElement,\"touchstart\",(function(e){s(a,\"touchmove\",mouseMove);s(a,\"touchend\",mouseUp);n._mouseDown(e)}));var mouseMove=function(e){n._mouseMove(e)},mouseUp=function(e){r(a,\"mousemove\",mouseMove);r(a,\"mouseup\",mouseUp);r(a,\"touchmove\",mouseMove);r(a,\"touchend\",mouseUp);n._mouseUp(e)};s(n.hostElement,\"click\",(function(e){var t=e.target;if(t&&\"DIV\"==t.tagName&&contains(n._ePal,t)){var i=t.style.backgroundColor;i&&(n.value=new Color(i).toString())}}));n.value=\"#ffffff\";n.initialize(i);n._updatePanels();return n}Object.defineProperty(ColorPicker.prototype,\"showAlphaChannel\",{get:function(){return\"none\"!=this._eAlpha.parentElement.style.display},set:function(e){this._eAlpha.parentElement.style.display=asBoolean(e)?\"\":\"none\"},enumerable:!0,configurable:!0});Object.defineProperty(ColorPicker.prototype,\"showColorString\",{get:function(){return\"none\"!=this._eText.style.display},set:function(e){this._eText.style.display=asBoolean(e)?\"\":\"none\"},enumerable:!0,configurable:!0});Object.defineProperty(ColorPicker.prototype,\"value\",{get:function(){return this._value},set:function(e){if(e!=this.value){this._value=asString(e);this._eText.innerText=this._value;var t=new Color(this._value),i=t.getHsb();if(this._hsb[0]!=i[0]||this._hsb[1]!=i[1]||this._hsb[2]!=i[2]||this._alpha!=t.a){if(0==i[2]){i[0]=this._hsb[0];i[1]=this._hsb[1]}else 0==i[1]&&(i[0]=this._hsb[0]);this._hsb=i;this._alpha=t.a;this.onValueChanged()}}},enumerable:!0,configurable:!0});Object.defineProperty(ColorPicker.prototype,\"palette\",{get:function(){return this._palette},set:function(e){e=asArray(e);for(var t=0;t'),o=new Color(this._palette[i]),s=o.getHsb();n.appendChild(this._makePalEntry(o,4));for(var r=0;r<5;r++){if(0==s[1]){var a=.1*r+(s[2]>.5?.05:.55);o=Color.interpolate(e,t,a)}else o=Color.fromHsb(s[0],.1+.2*r,1-.1*r);n.appendChild(this._makePalEntry(o,0))}this._ePal.appendChild(n)}};ColorPicker.prototype._makePalEntry=function(e,t){var i=document.createElement(\"div\");setCss(i,{cursor:\"pointer\",backgroundColor:e.toString(),marginBottom:t||\"\"});i.innerHTML=\" \";return i};ColorPicker.prototype._updatePanels=function(){var e=Color.fromHsb(this._hsb[0],1,1,1),t=Color.fromHsb(this._hsb[0],this._hsb[1],this._hsb[2],1);this._eSB.style.backgroundColor=e.toString();this._eAlpha.style.background=\"linear-gradient(to right, transparent 0%, \"+t.toString()+\" 100%)\";navigator.appVersion.indexOf(\"MSIE 9\")>-1&&(this._eAlpha.style.filter=\"progid:DXImageTransform.Microsoft.gradient(startColorstr=#00000000,endColorstr=\"+t.toString()+\", GradientType = 1)\");this._ePreview.style.backgroundColor=this.value;this._cHue.style.top=(100*this._hsb[0]).toFixed(0)+\"%\";this._cSB.style.left=(100*this._hsb[1]).toFixed(0)+\"%\";this._cSB.style.top=(100-100*this._hsb[2]).toFixed(0)+\"%\";this._cAlpha.style.left=(100*this._alpha).toFixed(0)+\"%\"};ColorPicker.prototype._getTargetPanel=function(e){var t=e.target;return contains(this._eSB,t)?this._eSB:contains(this._eHue,t)?this._eHue:contains(this._eAlpha,t)?this._eAlpha:null};ColorPicker.controlTemplate='
     
    ';ColorPicker._tplCursor='
    ';return ColorPicker}(Control);export{ColorPicker};var CollectionViewNavigator=function(e){__extends(CollectionViewNavigator,e);function CollectionViewNavigator(t,i){var n=e.call(this,t)||this;n._byPage=!1;n._fmt=\"{current:n0} / {count:n0}\";var o=n.getTemplate();n.applyTemplate(\"wj-control wj-content wj-pager wj-collectionview-navigator\",o,{_btnFirst:\"btn-first\",_btnPrev:\"btn-prev\",_txtCurr:\"txt-curr\",_btnNext:\"btn-next\",_btnLast:\"btn-last\"},\"input\");n._rptNext=new _ClickRepeater(n._btnNext.querySelector(\"button\"));n._rptPrev=new _ClickRepeater(n._btnPrev.querySelector(\"button\"));n.addEventListener(n.hostElement,\"click\",n._click.bind(n));n.initialize(i);n._update();return n}Object.defineProperty(CollectionViewNavigator.prototype,\"cv\",{get:function(){return this._view},set:function(e){if(e!=this._view){var t=this._view;if(t){t.collectionChanged.removeHandler(this._collectionChanged);t.currentChanged.removeHandler(this._currentChanged)}t=this._view=asType(e,\"ICollectionView\",!0);this._update();if(t){t.collectionChanged.addHandler(this._collectionChanged,this);t.currentChanged.addHandler(this._currentChanged,this)}}},enumerable:!0,configurable:!0});Object.defineProperty(CollectionViewNavigator.prototype,\"byPage\",{get:function(){return this._byPage},set:function(e){if(e!=this._byPage){this._byPage=asBoolean(e);this._update()}},enumerable:!0,configurable:!0});Object.defineProperty(CollectionViewNavigator.prototype,\"headerFormat\",{get:function(){return this._fmt},set:function(e){if(e!=this._fmt){this._fmt=asString(e);this._update()}},enumerable:!0,configurable:!0});Object.defineProperty(CollectionViewNavigator.prototype,\"repeatButtons\",{get:function(){return!this._rptNext.disabled},set:function(e){this._rptNext.disabled=this._rptPrev.disabled=!asBoolean(e)},enumerable:!0,configurable:!0});CollectionViewNavigator.prototype._update=function(){var e=this._view,t=this._byPage,i=e?t?e.pageIndex:e.currentPosition:0,n=e?t?e.pageCount:e.itemCount:0;enable(this._btnFirst,e&&i>0);enable(this._btnPrev,e&&i>0);enable(this._txtCurr,null!=e);enable(this._btnNext,e&&i
    ';return CollectionViewNavigator}(Control);export{CollectionViewNavigator};var ListBox=function(e){__extends(ListBox,e);function ListBox(t,i){var n=e.call(this,t)||this;n._pathDisplay=new Binding(null);n._pathValue=new Binding(null);n._pathChecked=new Binding(null);n._html=!1;n._shGroups=!1;n._itemRole=\"option\";n._search=\"\";n._caseSensitive=!1;n._fmtItemHandlers=0;n._itemCount=0;n.selectedIndexChanged=new Event;n.itemsChanged=new Event;n.loadingItems=new Event;n.loadedItems=new Event;n.itemChecked=new Event;n.checkedItemsChanged=new Event;n.formatItem=new Event((function(){n.invalidate()}));n.applyTemplate(\"wj-control wj-content wj-listbox\",null,null);var o=n.hostElement;setAttribute(o,\"role\",\"listbox\",!0);\"SELECT\"==n._orgTag&&n._initFromSelect(n.hostElement);n.addEventListener(o,\"click\",n._click.bind(n));n.addEventListener(o,\"keydown\",n._keydown.bind(n));n.addEventListener(o,\"keypress\",n._keypress.bind(n));n.addEventListener(o,\"wheel\",(function(e){if(o.scrollHeight>o.offsetHeight&&(e.deltaY<0&&0==o.scrollTop||e.deltaY>0&&o.scrollTop+o.offsetHeight>=o.scrollHeight)){e.preventDefault();e.stopPropagation();e.stopImmediatePropagation()}}));n.initialize(i);return n}Object.defineProperty(ListBox.prototype,\"itemsSource\",{get:function(){return this._items},set:function(e){if(this._items!=e){if(this._cv){this._cv.currentChanged.removeHandler(this._cvCurrentChanged,this);this._cv.collectionChanged.removeHandler(this._cvCollectionChanged,this);this._cv=null}this._items=e;this._checkedItems=null;this._cv=asCollectionView(e);if(null!=this._cv){this._cv.currentChanged.addHandler(this._cvCurrentChanged,this);this._cv.collectionChanged.addHandler(this._cvCollectionChanged,this)}this._populateList();this.onItemsChanged();this.onSelectedIndexChanged()}},enumerable:!0,configurable:!0});Object.defineProperty(ListBox.prototype,\"collectionView\",{get:function(){return this._cv},enumerable:!0,configurable:!0});Object.defineProperty(ListBox.prototype,\"showGroups\",{get:function(){return this._shGroups},set:function(e){if(e!=this._shGroups){this._shGroups=asBoolean(e);this._populateList()}},enumerable:!0,configurable:!0});Object.defineProperty(ListBox.prototype,\"isContentHtml\",{get:function(){return this._html},set:function(e){if(e!=this._html){this._html=asBoolean(e);this._populateList()}},enumerable:!0,configurable:!0});Object.defineProperty(ListBox.prototype,\"itemFormatter\",{get:function(){return this._itemFormatter},set:function(e){if(e!=this._itemFormatter){this._itemFormatter=asFunction(e);this._populateList()}},enumerable:!0,configurable:!0});Object.defineProperty(ListBox.prototype,\"displayMemberPath\",{get:function(){return this._pathDisplay.path},set:function(e){if(e!=this.displayMemberPath){this._pathDisplay.path=asString(e);this._populateList()}},enumerable:!0,configurable:!0});Object.defineProperty(ListBox.prototype,\"selectedValuePath\",{get:function(){return this._pathValue.path},set:function(e){this._pathValue.path=asString(e)},enumerable:!0,configurable:!0});Object.defineProperty(ListBox.prototype,\"checkedMemberPath\",{get:function(){return this._pathChecked.path},set:function(e){if(e!=this.checkedMemberPath){this._pathChecked.path=asString(e);this._populateList()}},enumerable:!0,configurable:!0});Object.defineProperty(ListBox.prototype,\"caseSensitiveSearch\",{get:function(){return this._caseSensitive},set:function(e){this._caseSensitive=asBoolean(e)},enumerable:!0,configurable:!0});Object.defineProperty(ListBox.prototype,\"itemRole\",{get:function(){return this._itemRole},set:function(e){if(e!=this.itemRole){this._itemRole=asString(e);this._populateList()}},enumerable:!0,configurable:!0});ListBox.prototype.getDisplayValue=function(e){var t=null;if(e>-1&&hasItems(this._cv)){t=this._cv.items[e];this.displayMemberPath&&(t=this._pathDisplay.getValue(t))}var i=null!=t?t.toString():\"\";this._itemFormatter&&(i=this._itemFormatter(e,i));return i};ListBox.prototype.getDisplayText=function(e){var t=this._getChild(e);return null!=t?t.textContent:\"\"};ListBox.prototype.isItemEnabled=function(e){var t=this._getChild(e);return null!=t&&!t.hasAttribute(\"disabled\")&&!hasClass(t,\"wj-state-disabled\")&&!hasClass(t,\"wj-separator\")};Object.defineProperty(ListBox.prototype,\"selectedIndex\",{get:function(){return this._cv?this._cv.currentPosition:-1},set:function(e){this._cv&&this._cv.moveCurrentToPosition(asNumber(e))},enumerable:!0,configurable:!0});Object.defineProperty(ListBox.prototype,\"selectedItem\",{get:function(){return this._cv?this._cv.currentItem:null},set:function(e){this._cv&&this._cv.moveCurrentTo(e)},enumerable:!0,configurable:!0});Object.defineProperty(ListBox.prototype,\"selectedValue\",{get:function(){var e=this.selectedItem;e&&this.selectedValuePath&&(e=this._pathValue.getValue(e));return e},set:function(e){var t=this.selectedValuePath,i=-1;if(this._cv){for(var n=0;n-1&&tu.bottom?i.scrollTop+=h.bottom-u.bottom:h.top-1){null==e&&(e=this.containsFocus());if(e){(s=n[t])instanceof HTMLElement&&!contains(s,getActiveElement())&&s.focus()}}i.tabIndex=t<0?this._orgTabIndex:-1};ListBox.prototype.loadList=function(){this._populateList()};ListBox.prototype.getItemChecked=function(e){var t=this._cv.items[e],i=this._pathChecked;if(isObject(t)&&i.path)return i.getValue(t);var n=this._getCheckbox(e);return!!n&&n.checked};ListBox.prototype.setItemChecked=function(e,t){this._setItemChecked(e,t,!0)};ListBox.prototype.toggleItemChecked=function(e){this.setItemChecked(e,!this.getItemChecked(e))};Object.defineProperty(ListBox.prototype,\"checkedItems\",{get:function(){var e=this;if(null==this._checkedItems){var t=this.collectionView;this._checkedItems=t&&this.checkedMemberPath?t.items.filter((function(t,i){return e.getItemChecked(i)})):[]}return this._checkedItems},set:function(e){var t=this,i=asArray(e,!1),n=this._cv,o=this.hostElement;if(n){var s=n.currentPosition,r=o.scrollTop;n.items.forEach((function(e,n){var o=i.indexOf(e)>-1;t._setItemChecked(n,o,!1)}));n.moveCurrentToPosition(s);o.scrollTop=r}this.onCheckedItemsChanged()},enumerable:!0,configurable:!0});ListBox.prototype.indexOf=function(e){if(this._shGroups&&hasClass(e,\"wj-header\"))return-1;for(var t=this.hostElement.children,i=0,n=0;i=0?e.children[this._getElementIndex(i)]:e).focus()}else i>0&&this.showSelection();this.onLoadedItems()}};ListBox.prototype._createItem=function(e){var t=this._cv.items[e],i=e==this._cv.currentPosition,n=this.getDisplayValue(e);1!=this._html&&(n=escapeHtml(n));var o=null;this.checkedMemberPath&&(n='\");var s=\"wj-listbox-item\";i&&(s+=\" wj-state-selected\");o&&(s+=\" wj-state-checked\");if(this._html){var r=[\"wj-separator\",\"wj-state-disabled\"];if(n.indexOf(r[0])>-1||n.indexOf(r[1])>-1){var a=createElement(n);r.forEach((function(e){hasClass(a,e)&&(s+=\" \"+e)}))}}return'
    '+n+\"
    \"};ListBox.prototype._getAriaSelected=function(e,t){return!(!t&&!e)||null};ListBox.prototype._createHeaderItem=function(e){return'
    '+escapeHtml(e.name)+\"
    \"};ListBox.prototype._click=function(e){if(0==e.button&&!e.defaultPrevented){var t=this.indexOf(e.target);if(t>-1){this.selectedIndex=t;if(this.checkedMemberPath){var i=this._getCheckbox(t),n=this.hostElement.children[t];if(i==e.target||e.target==n){n.focus({preventScroll:!0});this.setItemChecked(t,i.checked)}}}}};ListBox.prototype._keydown=function(e){var t=this.selectedIndex;this.hostElement;if(!e.defaultPrevented){if(65==e.keyCode&&(e.ctrlKey||e.metaKey)){var i=this.collectionView;if(this.checkedMemberPath&&hasItems(i)){this.checkedItems=this.checkedItems.length!=i.items.length?i.items:[];e.preventDefault();return}}if(!(e.ctrlKey||e.shiftKey||e.altKey||e.metaKey))switch(e.keyCode){case Key.Down:e.preventDefault();this._selectNext();break;case Key.Up:e.preventDefault();this._selectPrev();break;case Key.Home:e.preventDefault();this._selectFirst();break;case Key.End:e.preventDefault();this._selectLast();break;case Key.PageDown:e.preventDefault();this._selectNextPage();break;case Key.PageUp:e.preventDefault();this._selectPrevPage();break;case Key.Space:if(this.checkedMemberPath&&t>-1){var n=this._getCheckbox(t);if(n&&this.isItemEnabled(t)){this.setItemChecked(t,!n.checked);e.preventDefault()}}}}};ListBox.prototype._keypress=function(e){var t=this;if(!e.defaultPrevented&&!(e.target instanceof HTMLInputElement)&&(e.charCode>32||32==e.charCode&&this._search)){e.preventDefault();this._search+=String.fromCharCode(e.charCode);this._toSearch&&clearTimeout(this._toSearch);this._toSearch=setTimeout((function(){t._toSearch=null;t._search=\"\"}),Control._SEARCH_DELAY);var i=this._findNext();if(i<0&&this._search.length>1){this._search=this._search[this._search.length-1];i=this._findNext()}i>-1&&(this.selectedIndex=i)}};ListBox.prototype._selectNext=function(){for(var e=this.hostElement.children.length,t=this.selectedIndex+1;t=0;e--)if(this.isItemEnabled(e)){this.selectedIndex=e;return!0}return!1};ListBox.prototype._selectFirst=function(){for(var e=this.hostElement.children.length,t=0;t=0;e--)if(this.isItemEnabled(e)){this.selectedIndex=e;return!0}return!1};ListBox.prototype._selectNextPage=function(){for(var e=this.hostElement,t=e.offsetHeight,i=e.children,n=0,o=this.selectedIndex+1;ot&&this.isItemEnabled(o)){this.selectedIndex=o;return!0}n+=s}return this._selectLast()};ListBox.prototype._selectPrevPage=function(){for(var e=this.hostElement,t=e.offsetHeight,i=e.children,n=0,o=this.selectedIndex-1;o>0;o--){var s=i[o].scrollHeight;if(n+s>t&&this.isItemEnabled(o)){this.selectedIndex=o;return!0}n+=s}return this._selectFirst()};ListBox.prototype._findNext=function(){if(this.hostElement){var e=this.hostElement.childElementCount,t=this.selectedIndex;(t<0||1==this._search.length)&&t++;var i=this._search,n=this.caseSensitiveSearch;n||(i=i.toLowerCase());for(var o=0;o-1&&e'});e.removeChild(s);o--}}if(i){this.displayMemberPath=\"hdr\";this.selectedValuePath=\"val\";this.itemsSource=i;this.selectedIndex=n}};return ListBox}(Control);export{ListBox};var FormatItemEventArgs=function(e){__extends(FormatItemEventArgs,e);function FormatItemEventArgs(t,i,n){var o=e.call(this)||this;o._index=asNumber(t);o._data=i;o._item=asType(n,HTMLElement,!0);return o}Object.defineProperty(FormatItemEventArgs.prototype,\"index\",{get:function(){return this._index},enumerable:!0,configurable:!0});Object.defineProperty(FormatItemEventArgs.prototype,\"data\",{get:function(){return this._data},enumerable:!0,configurable:!0});Object.defineProperty(FormatItemEventArgs.prototype,\"item\",{get:function(){return this._item},enumerable:!0,configurable:!0});return FormatItemEventArgs}(EventArgs);export{FormatItemEventArgs};_addCultureInfo(\"MultiSelectListBox\",{filterPlaceholder:\"Filter\",selectAll:\"Select All\"});var MultiSelectListBox=function(e){__extends(MultiSelectListBox,e);function MultiSelectListBox(t,i){var n=e.call(this,t)||this;n._filterText=\"\";n._checkOnFilter=!0;n.checkedItemsChanged=new Event;var o=n.getTemplate();n.applyTemplate(\"wj-control wj-content wj-multiselectlistbox\",o,{_selectAll:\"select-all\",_filter:\"filter\",_lbHost:\"list-box\"});n._selectAll.style.display=\"none\";n._filter.style.display=\"none\";n._lbx=new ListBox(n._lbHost,{checkedMemberPath:MultiSelectListBox._DEF_CHECKED_PATH,checkedItemsChanged:function(){n.onCheckedItemsChanged()}});n._cbSelectAll=n._selectAll.querySelector(\"input[type=checkbox]\");n._spSelectAll=n._selectAll.querySelector(\"label>span\");var s=culture.MultiSelectListBox;setText(n._spSelectAll,s.selectAll);n._filter.placeholder=s.filterPlaceholder;n.initialize(i);n.addEventListener(n._filter,\"input\",(function(){if(n._filter.value!=n._filterText){n._filterText=n._filter.value;n._toSearch&&clearTimeout(n._toSearch);n._toSearch=setTimeout((function(){n._toSearch=null;n._applyFilter()}),Control._SEARCH_DELAY)}}));n.addEventListener(n._cbSelectAll,\"click\",(function(e){var t=n._lbx.collectionView;hasItems(t)&&(n.checkedItems=e.target.checked?t.items:[])}));n.addEventListener(n.hostElement,\"keydown\",(function(e){var t=n._filter;if(e.keyCode==Key.F3){setSelectionRange(t,0,t.value.length);e.preventDefault()}if(getActiveElement()==t)e.stopPropagation();else switch(e.keyCode){case Key.Down:case Key.Up:case Key.Home:case Key.End:case Key.PageDown:case Key.PageUp:n._lbx.focus()}}));return n}Object.defineProperty(MultiSelectListBox.prototype,\"itemsSource\",{get:function(){return this._lbx.itemsSource},set:function(e){this._lbx.itemsSource=e},enumerable:!0,configurable:!0});Object.defineProperty(MultiSelectListBox.prototype,\"displayMemberPath\",{get:function(){return this._lbx.displayMemberPath},set:function(e){this._lbx.displayMemberPath=e},enumerable:!0,configurable:!0});Object.defineProperty(MultiSelectListBox.prototype,\"isContentHtml\",{get:function(){return this._lbx.isContentHtml},set:function(e){this._lbx.isContentHtml=e},enumerable:!0,configurable:!0});Object.defineProperty(MultiSelectListBox.prototype,\"showGroups\",{get:function(){return this._lbx.showGroups},set:function(e){this._lbx.showGroups=e},enumerable:!0,configurable:!0});Object.defineProperty(MultiSelectListBox.prototype,\"checkOnFilter\",{get:function(){return this._checkOnFilter},set:function(e){if(e!=this.checkOnFilter){this._checkOnFilter=asBoolean(e);this.checkedItems=[]}},enumerable:!0,configurable:!0});Object.defineProperty(MultiSelectListBox.prototype,\"listBox\",{get:function(){return this._lbx},enumerable:!0,configurable:!0});Object.defineProperty(MultiSelectListBox.prototype,\"showFilterInput\",{get:function(){return\"\"==this._filter.style.display},set:function(e){if(e!=this.showFilterInput){this._filter.style.display=asBoolean(e)?\"\":\"none\";if(!this.showFilterInput){this._filter.value=\"\";this._applyFilter()}}},enumerable:!0,configurable:!0});Object.defineProperty(MultiSelectListBox.prototype,\"filterInputPlaceholder\",{get:function(){return this._filterPlaceholder},set:function(e){if(e!=this._filterPlaceholder){this._filterPlaceholder=asString(e);this.invalidate()}},enumerable:!0,configurable:!0});Object.defineProperty(MultiSelectListBox.prototype,\"showSelectAllCheckbox\",{get:function(){return\"\"==this._selectAll.style.display},set:function(e){this._selectAll.style.display=asBoolean(e)?\"\":\"none\"},enumerable:!0,configurable:!0});Object.defineProperty(MultiSelectListBox.prototype,\"selectAllLabel\",{get:function(){return this._selectAllLabel},set:function(e){if(e!=this._selectAllLabel){this._selectAllLabel=asString(e);this.refresh()}},enumerable:!0,configurable:!0});Object.defineProperty(MultiSelectListBox.prototype,\"checkedMemberPath\",{get:function(){var e=this.listBox.checkedMemberPath;return e!=MultiSelectListBox._DEF_CHECKED_PATH?e:null},set:function(e){e=asString(e);this.listBox.checkedMemberPath=e||MultiSelectListBox._DEF_CHECKED_PATH},enumerable:!0,configurable:!0});Object.defineProperty(MultiSelectListBox.prototype,\"checkedItems\",{get:function(){return this.listBox.checkedItems},set:function(e){this.listBox.checkedItems=asArray(e)},enumerable:!0,configurable:!0});MultiSelectListBox.prototype.onCheckedItemsChanged=function(e){this._updateCheckAllCheckbox();this.checkedItemsChanged.raise(this,e)};MultiSelectListBox.prototype.refresh=function(t){void 0===t&&(t=!0);e.prototype.refresh.call(this,t);if(this.hostElement){var i=culture.MultiSelectListBox;this._filter.placeholder=null!=this._filterPlaceholder?this._filterPlaceholder:i.filterPlaceholder;this._spSelectAll&&setText(this._spSelectAll,null!=this._selectAllLabel?this._selectAllLabel:i.selectAll);this._updateCheckAllCheckbox()}};MultiSelectListBox.prototype.dispose=function(){this.listBox.dispose();e.prototype.dispose.call(this)};MultiSelectListBox.prototype._applyFilter=function(){var e=this,t=this._lbx,i=t.collectionView,n=this._filter.value,o=n?new RegExp(escapeRegExp(n),\"i\"):null,s=this.displayMemberPath,r=s?new Binding(s):null,a=this._checkOnFilter?this.checkedItems:[];i.filter=function(t){if(null!=o){r&&(t=r.getValue(t));e.isContentHtml&&(t=toPlainText(t));return o.test(t.toString())}return!0};t.selectedIndex=Math.max(0,t.selectedIndex);this.checkedItems=this._checkOnFilter?o?i.items:[]:a};MultiSelectListBox.prototype._updateCheckAllCheckbox=function(){var e=this._lbx.collectionView,t=this._cbSelectAll;if(hasItems(e)){var i=e.items.length,n=this.checkedItems.length;t.checked=n==i;t.indeterminate=n0;t.disabled=!1}else{t.checked=!1;t.disabled=!0}};MultiSelectListBox._DEF_CHECKED_PATH=\"$checked\";MultiSelectListBox.controlTemplate='
    ';return MultiSelectListBox}(Control);export{MultiSelectListBox};_addCultureInfo(\"Calendar\",{ariaLabels:{calendar:\"Calendar\",monthView:\"Month View\",yearView:\"Year View\",prvMo:\"Previous Month\",today:\"Today\",nxtMo:\"Next Month\",prvYr:\"Previous Year\",currMo:\"Current Month\",nxtYr:\"Next Year\"}});export var DateSelectionMode;!function(e){e[e.None=0]=\"None\";e[e.Day=1]=\"Day\";e[e.Month=2]=\"Month\"}(DateSelectionMode||(DateSelectionMode={}));var Calendar=function(e){__extends(Calendar,e);function Calendar(t,i){var n=e.call(this,t)||this;n._min=null;n._max=null;n._readOnly=!1;n._selMode=DateSelectionMode.Day;n._yrPicker=!0;n._tmYrHidden=0;n._fmtYrMo=\"y\";n._fmtYr=\"yyyy\";n._fmtDayHdr=\"ddd\";n._fmtDay=\"d \";n._fmtMonths=\"MMM\";n.valueChanged=new Event;n.displayMonthChanged=new Event;n.formatItem=new Event((function(){n.invalidate()}));n._value=DateTime.newDate();n._currMonth=n._getMonth(n._value);n._createChildren();n._createYearPicker();var o=n.hostElement,s=n.addEventListener.bind(n);s(o,\"keydown\",n._keydown.bind(n));s(o,\"click\",n._click.bind(n));n._rptUp=new _ClickRepeater(n._btnPrv);n._rptDn=new _ClickRepeater(n._btnNxt);n.addEventListener(o,\"wheel\",(function(e){if(!e.defaultPrevented&&!n.isReadOnly&&n.containsFocus()){clamp(-e.deltaY,-1,1);e.deltaY<0?n._btnPrv.click():n._btnNxt.click();e.preventDefault()}}));n.initialize(i);n.refresh(!0);return n}Object.defineProperty(Calendar.prototype,\"value\",{get:function(){return this._value},set:function(e){e=asDate(e,!0);e=this._clamp(e);if(this._valid(e)||null==e){this.displayMonth=this._getMonth(e);if(!DateTime.equals(this._value,e)){this._value=e;this.invalidate(!1);this.onValueChanged()}}},enumerable:!0,configurable:!0});Object.defineProperty(Calendar.prototype,\"min\",{get:function(){return this._min},set:function(e){if(e!=this.min){this._min=asDate(e,!0);this.refresh()}},enumerable:!0,configurable:!0});Object.defineProperty(Calendar.prototype,\"max\",{get:function(){return this._max},set:function(e){if(e!=this.max){this._max=asDate(e,!0);this.refresh()}},enumerable:!0,configurable:!0});Object.defineProperty(Calendar.prototype,\"selectionMode\",{get:function(){return this._selMode},set:function(e){if((e=asEnum(e,DateSelectionMode))!=this._selMode){this._selMode=e;var t=this._monthMode();t&&(this.monthView=!1);var i=this._btnMth.querySelector(\".wj-glyph-down\");i&&(i.style.display=t?\"none\":\"\");this.refresh()}},enumerable:!0,configurable:!0});Object.defineProperty(Calendar.prototype,\"isReadOnly\",{get:function(){return this._readOnly},set:function(e){this._readOnly=asBoolean(e);toggleClass(this.hostElement,\"wj-state-readonly\",this.isReadOnly)},enumerable:!0,configurable:!0});Object.defineProperty(Calendar.prototype,\"repeatButtons\",{get:function(){return!this._rptUp.disabled},set:function(e){this._rptUp.disabled=this._rptDn.disabled=!asBoolean(e)},enumerable:!0,configurable:!0});Object.defineProperty(Calendar.prototype,\"showYearPicker\",{get:function(){return this._yrPicker},set:function(e){this._yrPicker=asBoolean(e)},enumerable:!0,configurable:!0});Object.defineProperty(Calendar.prototype,\"firstDayOfWeek\",{get:function(){return this._fdw},set:function(e){if(e!=this._fdw){if((e=asNumber(e,!0))&&(e>6||e<0))throw\"firstDayOfWeek must be between 0 and 6 (Sunday to Saturday).\";this._fdw=e;this.refresh()}},enumerable:!0,configurable:!0});Object.defineProperty(Calendar.prototype,\"displayMonth\",{get:function(){return this._currMonth},set:function(e){if(!DateTime.equals(this.displayMonth,e)){e=asDate(e);if(this.monthView?this._monthInValidRange(e):this._yearInValidRange(e)){this._currMonth=this._getMonth(this._clamp(e));this.invalidate(!0);this.onDisplayMonthChanged()}}},enumerable:!0,configurable:!0});Object.defineProperty(Calendar.prototype,\"formatYearMonth\",{get:function(){return this._fmtYrMo},set:function(e){if(e!=this._fmtYrMo){this._fmtYrMo=asString(e);this.invalidate()}},enumerable:!0,configurable:!0});Object.defineProperty(Calendar.prototype,\"formatDayHeaders\",{get:function(){return this._fmtDayHdr},set:function(e){if(e!=this._fmtDayHdr){this._fmtDayHdr=asString(e);this.invalidate()}},enumerable:!0,configurable:!0});Object.defineProperty(Calendar.prototype,\"formatDays\",{get:function(){return this._fmtDay},set:function(e){if(e!=this._fmtDay){this._fmtDay=asString(e);this.invalidate()}},enumerable:!0,configurable:!0});Object.defineProperty(Calendar.prototype,\"formatYear\",{get:function(){return this._fmtYr},set:function(e){if(e!=this._fmtYr){this._fmtYr=asString(e);this.invalidate()}},enumerable:!0,configurable:!0});Object.defineProperty(Calendar.prototype,\"formatMonths\",{get:function(){return this._fmtMonths},set:function(e){if(e!=this._fmtMonths){this._fmtMonths=asString(e);this.invalidate()}},enumerable:!0,configurable:!0});Object.defineProperty(Calendar.prototype,\"showHeader\",{get:function(){return\"none\"!=this._tbHdr.style.display},set:function(e){this._tbHdr.style.display=asBoolean(e)?\"\":\"none\"},enumerable:!0,configurable:!0});Object.defineProperty(Calendar.prototype,\"monthView\",{get:function(){return\"none\"!=this._tbMth.style.display},set:function(e){if(e!=this.monthView){this._tbMth.style.display=e?\"\":\"none\";this._tbYr.style.display=e?\"none\":\"\";this.refresh();var t=culture.Calendar.ariaLabels;setAriaLabel(this._btnPrv,e?t.prvMo:t.prvYr);setAriaLabel(this._btnTdy,e?t.today:t.currMo);setAriaLabel(this._btnNxt,e?t.nxtMo:t.nxtYr);setAriaLabel(this._btnMth,e?t.monthView:t.yearView)}},enumerable:!0,configurable:!0});Object.defineProperty(Calendar.prototype,\"itemFormatter\",{get:function(){return this._itemFormatter},set:function(e){if(e!=this._itemFormatter){this._itemFormatter=asFunction(e);this.invalidate()}},enumerable:!0,configurable:!0});Object.defineProperty(Calendar.prototype,\"itemValidator\",{get:function(){return this._itemValidator},set:function(e){if(e!=this._itemValidator){this._itemValidator=asFunction(e);this.invalidate()}},enumerable:!0,configurable:!0});Calendar.prototype.onValueChanged=function(e){this.valueChanged.raise(this,e)};Calendar.prototype.onDisplayMonthChanged=function(e){this.displayMonthChanged.raise(this,e)};Calendar.prototype.onFormatItem=function(e){this.formatItem.raise(this,e)};Calendar.prototype.containsFocus=function(){return e.prototype.containsFocus.call(this)||this._lbYears.containsFocus()};Calendar.prototype.dispose=function(){this._rptUp.element=null;this._rptDn.element=null;this._lbYears.dispose();e.prototype.dispose.call(this)};Calendar.prototype.refresh=function(t){void 0===t&&(t=!0);var i,n,o,s=this.displayMonth,r=null!=this.firstDayOfWeek?this.firstDayOfWeek:Globalize.getFirstDayOfWeek();if(this.hostElement){var a=this.hostElement,l=getActiveElement(),h=this.containsFocus();contains(a,l);e.prototype.refresh.call(this,t);this._firstDay=DateTime.addDays(s,-(s.getDay()-r+7)%7);setText(this._spMth,Globalize.format(s,this._fmtYrMo));i=this._tbMth.querySelectorAll(\"td\");for(var u=0;u<7&&uDateTime.fromDateTime(this.max,e))};Calendar.prototype._monthInValidRange=function(e){if(this.min||this.max){var t=e.getFullYear(),i=e.getMonth(),n=DateTime.newDate(t,i,1),o=DateTime.newDate(t,i+1,0);if(this.min&&this.min>o)return!1;if(this.max&&this.maxn)return!1;if(this.max&&this.maxi&&(e=i)}}return e};Calendar.prototype._createChildren=function(){var e=this.getTemplate();this.applyTemplate(\"wj-control wj-calendar\",e,{_tbHdr:\"tbl-header\",_btnMth:\"btn-month\",_spMth:\"span-month\",_btnPrv:\"btn-prev\",_btnTdy:\"btn-today\",_btnNxt:\"btn-next\",_tbMth:\"tbl-month\",_tbYr:\"tbl-year\"});this._tbYr.style.display=\"none\";var t=culture.Calendar.ariaLabels;setAriaLabel(this._tbMth,t.calendar);setAriaLabel(this._tbYr,t.calendar);setAriaLabel(this._btnPrv,t.calendar);setAriaLabel(this._btnMth,t.monthView);setAriaLabel(this._btnPrv,t.prvMo);setAriaLabel(this._btnTdy,t.today);setAriaLabel(this._btnNxt,t.nxtMo);for(var i=this._createElement(\"tr\",this._tbMth,\"wj-header\"),n=0;n<7;n++)this._createElement(\"td\",i);for(var o=0;o<6;o++){i=this._createElement(\"tr\",this._tbMth);for(n=0;n<7;n++)this._createElement(\"td\",i)}i=this._createElement(\"tr\",this._tbYr,\"wj-header\");this._createElement(\"td\",i).setAttribute(\"colspan\",\"4\");for(var s=0;s<3;s++){i=this._createElement(\"tr\",this._tbYr);for(var r=0;r<4;r++)this._createElement(\"td\",i)}};Calendar.prototype._createYearPicker=function(){var e=this,t=this.hostElement,i=this._createElement(\"div\",null,\"wj-dropdown-panel wj-yearpicker\");i.tabIndex=this._orgTabIndex;this._lbYears=new ListBox(i,{lostFocus:function(t){hidePopup(i);e._tmYrHidden=Date.now();e.removeEventListener(window,\"touchstart\");if(t.selectedIndex>-1){var n=DateTime.clone(e.displayMonth);n.setFullYear(t.selectedIndex+t.itemsSource[0]);e.displayMonth=n}}});this.addEventListener(i,\"keydown\",(function(i){switch(i.keyCode){case Key.Enter:t.focus();break;case Key.Escape:e._lbYears.selectedIndex=-1;t.focus()}i.defaultPrevented&&i.stopPropagation()}));this.addEventListener(i,\"click\",(function(e){t.focus()}))};Calendar.prototype._createElement=function(e,t,i){var n=document.createElement(e);i&&addClass(n,i);t&&t.appendChild(n);return n};Calendar.prototype._click=function(e){var t=this;if(!e.defaultPrevented&&0==e.button){var i=!1,n=e.target;if(contains(this._btnMth,n)&&!this._monthMode()){this.monthView=!this.monthView;i=!0}else if(contains(this._btnPrv,n)){this._navigate(-1);i=!0}else if(contains(this._btnNxt,n)){this._navigate(1);i=!0}else if(contains(this._btnTdy,n)){this._navigate(0);i=!0}if(n&&!i&&this._yrPicker&&contains(this._tbYr,n)&&closest(n,\".wj-header\")){if(Date.now()-this._tmYrHidden<600){e.preventDefault();return}for(var o=this.displayMonth.getFullYear(),s=this.min?this.min.getFullYear():o-100,r=this.max?this.max.getFullYear():o+100,a=[],l=s;l<=r;l++)a.push(l);var h=this._lbYears,u=h.hostElement,c=closest(n,\".wj-header\");h.itemsSource=a;h.selectedIndex=o-a[0];setAttribute(u,\"dir\",this.rightToLeft?\"rtl\":null);setCss(u,{minWidth:\"\",width:c.offsetWidth});showPopup(u,c,!1,!1,this.hostElement);requestAnimationFrame((function(){h.showSelection(!0)}));this.addEventListener(window,\"touchstart\",(function(e){if(!contains(u,e.target)){hidePopup(u);t._tmYrHidden=Date.now();t.removeEventListener(window,\"touchstart\")}}));e.preventDefault();return}if(n&&!i){var p=closest(n,\"TD\");if(p)if(this.monthView){if((f=this._getCellIndex(this._tbMth,p))>6&&this._canChangeValue()){var d=DateTime.fromDateTime(DateTime.addDays(this._firstDay,f-7),this.value);this._inValidRange(d)&&this._valid(d)&&(this.value=d);i=!0}}else{var f;if((f=this._getCellIndex(this._tbYr,p))>0){this.displayMonth=DateTime.newDate(this.displayMonth.getFullYear(),f-1,1);if(this._monthMode()){if(this._canChangeValue()){d=DateTime.fromDateTime(this.displayMonth,this.value);this._inValidRange(d)&&(this.value=d)}}else this.monthView=!0;i=!0}}}if(i){e.preventDefault();this.focus()}}};Calendar.prototype._getCellIndex=function(e,t){for(var i=e.querySelectorAll(\"TD\"),n=0;n0||n>0?1:-1);this.value=r}o&&e.preventDefault()}}};Calendar.prototype._getMonth=function(e){e||(e=DateTime.newDate());return DateTime.newDate(e.getFullYear(),e.getMonth(),1)};Calendar.prototype._monthMode=function(){return this.selectionMode==DateSelectionMode.Month};Calendar.prototype._navigate=function(e){var t=this.monthView,i=this.displayMonth;switch(e){case 0:var n=DateTime.newDate();this._canChangeValue()&&(this.value=t?DateTime.fromDateTime(n,this.value):this._getMonth(n));i=this._getMonth(n);break;case 1:i=DateTime.addMonths(i,t?1:12);break;case-1:i=DateTime.addMonths(i,t?-1:-12)}this.displayMonth=i};Calendar.controlTemplate='
    ';return Calendar}(Control);export{Calendar};_addCultureInfo(\"DropDown\",{ariaLabels:{tgl:\"Toggle Dropdown\"}});export var ClickAction;!function(e){e[e.Select=0]=\"Select\";e[e.Open=1]=\"Open\";e[e.Toggle=2]=\"Toggle\"}(ClickAction||(ClickAction={}));var _Edges,DropDown=function(e){__extends(DropDown,e);function DropDown(t,i){var n=e.call(this,t)||this;n._clickAction=ClickAction.Select;n._showBtn=!0;n._autoExpand=!0;n._animate=!1;n._oldText=\"\";n.textChanged=new Event;n.isDroppedDownChanging=new Event;n.isDroppedDownChanged=new Event;var o=n.getTemplate();n.applyTemplate(\"wj-control wj-content wj-dropdown\",o,{_tbx:\"input\",_btn:\"btn\",_dropDown:\"dropdown\"},\"input\");n._dropDown.style.display=\"none\";var s=culture.DropDown.ariaLabels;setAriaLabel(n._btn.querySelector(\"button\"),s.tgl);var r=n._elRef=n._tbx;disableAutoComplete(r);n._createDropDown();n._updateBtn();var a=n.hostElement;addClass(a,\"wj-state-collapsed\");n.addEventListener(window,\"resize\",(function(){n.isDroppedDown&&n.invalidate()}));var l=n.dropDown,h=n.addEventListener.bind(n),u=n._updateFocusState.bind(n);h(l,\"blur\",u,!0);h(l,\"focus\",u);var c=n._keydown.bind(n);h(a,\"keydown\",c);h(l,\"keydown\",c);h(r,\"keypress\",(function(e){\"AltLeft\"!=e.code&&\"AltRight\"!=e.code||e.preventDefault()}));h(r,\"input\",(function(){n._setText(n.text,!1)}));h(r,\"click\",(function(){n._autoExpand&&n._expandSelection()}));h(r,\"blur\",(function(){n._commitText()}),!0);h(r,\"mousedown\",(function(e){switch(n._clickAction){case ClickAction.Open:if(!n.isDroppedDown){n.isDroppedDown=!0;n.focus();e.preventDefault()}break;case ClickAction.Toggle:n.isDroppedDown=!n.isDroppedDown;n.focus();e.preventDefault()}}));h(n._btn,\"mousedown\",(function(e){n._btnclick(e)}));removeChild(l);isIE()&&n._elRef==n._tbx&&h(a,\"mouseup\",(function(e){if(!e.defaultPrevented&&0==e.button&&hasClass(e.target,\"wj-btn\")){var t=getActiveElement();t&&t!=e.target&&setTimeout((function(){t.focus()}))}}));isIE9()&&h(r,\"keyup\",(function(){n._setText(n.text,!1)}));h(l,\"click\",n._dropDownClick.bind(n));return n}Object.defineProperty(DropDown.prototype,\"text\",{get:function(){return this._tbx.value},set:function(e){if(e!=this.text){this._setText(e,!0);this._commitText()}},enumerable:!0,configurable:!0});Object.defineProperty(DropDown.prototype,\"inputElement\",{get:function(){return this._tbx},enumerable:!0,configurable:!0});Object.defineProperty(DropDown.prototype,\"inputType\",{get:function(){return this._tbx.type},set:function(e){this._tbx.type=asString(e)},enumerable:!0,configurable:!0});Object.defineProperty(DropDown.prototype,\"isReadOnly\",{get:function(){return this._tbx.readOnly},set:function(e){this._tbx.readOnly=asBoolean(e);toggleClass(this.hostElement,\"wj-state-readonly\",this.isReadOnly)},enumerable:!0,configurable:!0});Object.defineProperty(DropDown.prototype,\"isRequired\",{get:function(){return this._tbx.required},set:function(e){this._tbx.required=asBoolean(e)},enumerable:!0,configurable:!0});Object.defineProperty(DropDown.prototype,\"placeholder\",{get:function(){return this._tbx.placeholder},set:function(e){this._tbx.placeholder=e},enumerable:!0,configurable:!0});Object.defineProperty(DropDown.prototype,\"clickAction\",{get:function(){return this._clickAction},set:function(e){this._clickAction=asEnum(e,ClickAction)},enumerable:!0,configurable:!0});Object.defineProperty(DropDown.prototype,\"isDroppedDown\",{get:function(){var e=this._dropDown;return e&&\"none\"!=e.style.display},set:function(e){var t=this,i=this.hostElement,n=this._dropDown,o=this.containsFocus()||this._setFocus;if(i&&n&&(e=asBoolean(e)&&!this.isDisabled&&!this.isReadOnly)!=this.isDroppedDown&&this.onIsDroppedDownChanging(new CancelEventArgs)){if(e){this._minWidthDropdown=n.style.minWidth;n.style.display=\"block\";this._updateDropDown();this.addEventListener(window,\"touchstart\",(function(e){for(var n=e.target;n;){if(n==i)return;n=n[Control._OWNR_KEY]||n.parentNode}Control._touching=!0;t.isDroppedDown=!1;Control._touching=!1}))}else{this.removeEventListener(window,\"touchstart\");hidePopup(n);n.style.minWidth=this._minWidthDropdown}this._setFocus=!1;o&&(this.isTouching&&this.showDropDownButton?i.focus():this.selectAll());this._updateFocusState();toggleClass(i,\"wj-state-collapsed\",!this.isDroppedDown);this.onIsDroppedDownChanged()}},enumerable:!0,configurable:!0});Object.defineProperty(DropDown.prototype,\"dropDown\",{get:function(){return this._dropDown},enumerable:!0,configurable:!0});Object.defineProperty(DropDown.prototype,\"dropDownCssClass\",{get:function(){return this._cssClass},set:function(e){if(e!=this._cssClass){removeClass(this._dropDown,this._cssClass);this._cssClass=asString(e);addClass(this._dropDown,this._cssClass)}},enumerable:!0,configurable:!0});Object.defineProperty(DropDown.prototype,\"showDropDownButton\",{get:function(){return this._showBtn},set:function(e){this._showBtn=asBoolean(e);this._updateBtn()},enumerable:!0,configurable:!0});Object.defineProperty(DropDown.prototype,\"autoExpandSelection\",{get:function(){return this._autoExpand},set:function(e){this._autoExpand=asBoolean(e)},enumerable:!0,configurable:!0});Object.defineProperty(DropDown.prototype,\"isAnimated\",{get:function(){return this._animate},set:function(e){this._animate=asBoolean(e)},enumerable:!0,configurable:!0});DropDown.prototype.selectAll=function(){var e=this._tbx;this._elRef==e&&setSelectionRange(e,0,this.text.length);this.containsFocus()||this.focus()};DropDown.prototype.onTextChanged=function(e){this.textChanged.raise(this,e);this._updateState()};DropDown.prototype.onIsDroppedDownChanging=function(e){this.isDroppedDownChanging.raise(this,e);return!e.cancel};DropDown.prototype.onIsDroppedDownChanged=function(e){this.isDroppedDownChanged.raise(this,e)};DropDown.prototype.onGotFocus=function(t){this.isTouching||contains(this._dropDown,getActiveElement())||this.selectAll();e.prototype.onGotFocus.call(this,t)};DropDown.prototype.onLostFocus=function(t){this._commitText();this.isDroppedDown=!1;e.prototype.onLostFocus.call(this,t)};DropDown.prototype.containsFocus=function(){return e.prototype.containsFocus.call(this)||this.isDroppedDown&&contains(this._dropDown,getActiveElement())};DropDown.prototype.dispose=function(){this.isDroppedDown=!1;var t=this._dropDown;if(t){var i=Control.getControl(t);i&&i.dispose();removeChild(t);this._dropDown=null}e.prototype.dispose.call(this)};DropDown.prototype.refresh=function(t){void 0===t&&(t=!0);e.prototype.refresh.call(this,t);var i=this.hostElement;if(i&&i.offsetHeight&&this.isDroppedDown){var n=getActiveElement();this.isAnimated&&\"\"!=this._dropDown.style.opacity||showPopup(this._dropDown,i,!1,!1,null==this.dropDownCssClass);n instanceof HTMLElement&&n!=getActiveElement()&&n.focus()}};DropDown.prototype._handleResize=function(){this.isDroppedDown&&this.refresh()};DropDown.prototype._dropDownClick=function(e){e.stopPropagation()};DropDown.prototype._expandSelection=function(){var e=this._tbx,t=e.value,i=e.selectionStart,n=e.selectionEnd;if(t&&i==n){var o=this._getCharType(t,i);if(o>-1){for(;n0&&this._getCharType(t,i-1)==o;i--);i!=n&&setSelectionRange(e,i,n)}}};DropDown.prototype._getCharType=function(e,t){var i=e[t];return i>=\"0\"&&i<=\"9\"?0:i>=\"a\"&&i<=\"z\"||i>=\"A\"&&i<=\"Z\"?1:-1};DropDown.prototype._keydown=function(e){if(!e.defaultPrevented)switch(e.keyCode){case Key.Tab:case Key.Escape:case Key.Enter:if(this.isDroppedDown){this.isDroppedDown=!1;e.keyCode==Key.Tab||this.containsFocus()||this.focus();e.preventDefault()}break;case Key.F4:case Key.Up:case Key.Down:if(e.keyCode==Key.F4||e.altKey){var t=this.hostElement;if(t&&t.offsetHeight){this.isDroppedDown=!this.isDroppedDown;e.preventDefault()}}}};DropDown.prototype._btnclick=function(e){if(!e.defaultPrevented&&0==e.button){this._setFocus=!0;this.isDroppedDown=!this.isDroppedDown;e.preventDefault()}};DropDown.prototype._setText=function(e,t){null==e&&(e=\"\");(e=e.toString())!=this._tbx.value&&(this._tbx.value=e);if(e!=this._oldText){this._oldText=e;this.onTextChanged()}};DropDown.prototype._updateBtn=function(){this._btn.style.display=this._showBtn?\"\":\"none\"};DropDown.prototype._createDropDown=function(){};DropDown.prototype._commitText=function(){};DropDown.prototype._updateDropDown=function(){if(this.isDroppedDown){this._commitText();var e=this.dropDown;setAttribute(e,\"dir\",this.rightToLeft?\"rtl\":null);showPopup(e,this.hostElement,!1,this._animate,null==this.dropDownCssClass)}};DropDown.controlTemplate='
    ';return DropDown}(Control);export{DropDown};export var PopupTrigger;!function(e){e[e.None=0]=\"None\";e[e.ClickOwner=1]=\"ClickOwner\";e[e.ClickPopup=2]=\"ClickPopup\";e[e.Click=3]=\"Click\";e[e.BlurOwner=4]=\"BlurOwner\";e[e.BlurPopup=8]=\"BlurPopup\";e[e.Blur=12]=\"Blur\";e[e.ClickOrBlur=15]=\"ClickOrBlur\";e[e.DownOwner=16]=\"DownOwner\";e[e.DownPopup=32]=\"DownPopup\";e[e.Down=48]=\"Down\";e[e.EnterOwner=64]=\"EnterOwner\";e[e.EnterPopup=128]=\"EnterPopup\";e[e.Enter=192]=\"Enter\";e[e.LeaveOwner=256]=\"LeaveOwner\";e[e.LeavePopup=512]=\"LeavePopup\";e[e.Leave=768]=\"Leave\"}(PopupTrigger||(PopupTrigger={}));!function(e){e[e.None=0]=\"None\";e[e.Left=1]=\"Left\";e[e.Top=2]=\"Top\";e[e.Right=4]=\"Right\";e[e.Bottom=8]=\"Bottom\";e[e.LeftTop=3]=\"LeftTop\";e[e.RightTop=6]=\"RightTop\";e[e.RightBottom=12]=\"RightBottom\";e[e.LeftBottom=9]=\"LeftBottom\"}(_Edges||(_Edges={}));var Popup=function(e){__extends(Popup,e);function Popup(t,i){var n=e.call(this,t)||this;n._modal=!1;n._position=PopupPosition.BelowLeft;n._showTrigger=PopupTrigger.ClickOwner;n._hideTrigger=PopupTrigger.Blur;n._hideAnim=[];n._fadeIn=!0;n._fadeOut=!0;n._removeOnHide=!0;n._draggable=!1;n._resizable=!1;n._visible=!1;n._ownerClickBnd=n._ownerClick.bind(n);n._ownerDownBnd=n._ownerDown.bind(n);n._ownerBlurBnd=n._ownerBlur.bind(n);n._ownerEnterBnd=n._ownerEnter.bind(n);n._ownerLeaveBnd=n._ownerLeave.bind(n);n._mousedownBnd=n._mousedown.bind(n);n._mousemoveBnd=n._mousemove.bind(n);n._mousedragBnd=n._mousedrag.bind(n);n._mouseupBnd=n._mouseup.bind(n);n._hideBnd=n.hide.bind(n);n._lastShow=0;n.showing=new Event;n.shown=new Event;n.hiding=new Event;n.hidden=new Event;n.resizing=new Event;n.resized=new Event;n.dragging=new Event;n.dragged=new Event;n.sizeChanging=new Event;n.sizeChanged=new Event;n.positionChanging=new Event;n.positionChanged=new Event;var o=n.hostElement;addClass(o,\"wj-control wj-content wj-popup\");o.getAttribute(\"tabindex\")||(o.tabIndex=0);hidePopup(o,!1);var s=n.addEventListener.bind(n);s(o,\"compositionstart\",(function(){n._composing=!0}));s(o,\"compositionend\",(function(){n._composing=!1}));s(window,\"resize\",(function(){!n.isVisible||n._dragged||n.isTouching||n.invalidate()}));s(o,\"keydown\",(function(e){if(!e.defaultPrevented){if(e.keyCode==Key.Escape&&!n._composing){var t=n._oldFocus;e.preventDefault();n.hide();t&&t.offsetHeight&&t.focus()}if(e.keyCode==Key.Enter&&!n._composing){var i=n.dialogResultEnter;if(i){e.preventDefault();n._validateAndHide(i)}}if(e.keyCode==Key.Tab&&n.modal){e.preventDefault();moveFocus(o,e.shiftKey?-1:1)}}}));s(o,\"click\",(function(e){if(e.target instanceof HTMLElement){var t=e.target.className.match(/\\bwj-hide[\\S]*\\b/);if(t&&t.length>0){e.preventDefault();e.stopPropagation();n.hide(t[0])}}}));var r=n._toggle.bind(n),a=PopupTrigger;n.addEventListener(o,\"click\",(function(e){n._ignoreClick||r(e,a.ClickPopup)}),!0);n.addEventListener(o,\"mousedown\",(function(e){n._ignoreClick=!1;r(e,a.DownPopup)}),!0);n.addEventListener(o,\"mouseenter\",(function(e){e.target==o&&r(e,a.EnterPopup)}),!0);n.addEventListener(o,\"mouseleave\",(function(e){e.target==o&&r(e,a.LeavePopup)}),!0);n.addEventListener(o,\"blur\",(function(e){n.containsFocus()||r(e,a.BlurPopup)}),!0);s(document,\"wheel\",(function(e){if(n.isVisible&&n._modal){for(var t=e.target;t&&t!=document.body;t=t.parentElement)if(t.scrollHeight>t.clientHeight)return;e.preventDefault()}}));n.initialize(i);return n}Object.defineProperty(Popup.prototype,\"owner\",{get:function(){return this._owner},set:function(e){var t=this._owner;if(t){this.removeEventListener(t,\"click\");this.removeEventListener(t,\"mousedown\");this.removeEventListener(t,\"mouseenter\");this.removeEventListener(t,\"mouseleave\");this.removeEventListener(t,\"blur\")}if(t=this._owner=null!=e?getElement(e):null){this.addEventListener(t,\"click\",this._ownerClickBnd,!0);this.addEventListener(t,\"mousedown\",this._ownerDownBnd,!0);this.addEventListener(t,\"mouseenter\",this._ownerEnterBnd,!0);this.addEventListener(t,\"mouseleave\",this._ownerLeaveBnd,!0);this.addEventListener(t,\"blur\",this._ownerBlurBnd,!0)}},enumerable:!0,configurable:!0});Object.defineProperty(Popup.prototype,\"position\",{get:function(){return this._position},set:function(e){this._position=asEnum(e,PopupPosition)},enumerable:!0,configurable:!0});Object.defineProperty(Popup.prototype,\"content\",{get:function(){return this.hostElement.firstElementChild},set:function(e){if(e!=this.content){this.hostElement.innerHTML=\"\";e instanceof HTMLElement&&this.hostElement.appendChild(e)}},enumerable:!0,configurable:!0});Object.defineProperty(Popup.prototype,\"showTrigger\",{get:function(){return this._showTrigger},set:function(e){this._showTrigger=asEnum(e,PopupTrigger)},enumerable:!0,configurable:!0});Object.defineProperty(Popup.prototype,\"hideTrigger\",{get:function(){return this._hideTrigger},set:function(e){this._hideTrigger=asEnum(e,PopupTrigger)},enumerable:!0,configurable:!0});Object.defineProperty(Popup.prototype,\"fadeIn\",{get:function(){return this._fadeIn},set:function(e){this._fadeIn=asBoolean(e)},enumerable:!0,configurable:!0});Object.defineProperty(Popup.prototype,\"fadeOut\",{get:function(){return this._fadeOut},set:function(e){this._fadeOut=asBoolean(e)},enumerable:!0,configurable:!0});Object.defineProperty(Popup.prototype,\"removeOnHide\",{get:function(){return this._removeOnHide},set:function(e){this._removeOnHide=asBoolean(e)},enumerable:!0,configurable:!0});Object.defineProperty(Popup.prototype,\"modal\",{get:function(){return this._modal},set:function(e){this._modal=asBoolean(e)},enumerable:!0,configurable:!0});Object.defineProperty(Popup.prototype,\"isDraggable\",{get:function(){return this._draggable},set:function(e){this._draggable=asBoolean(e)},enumerable:!0,configurable:!0});Object.defineProperty(Popup.prototype,\"isResizable\",{get:function(){return this._resizable},set:function(e){this._resizable=asBoolean(e)},enumerable:!0,configurable:!0});Object.defineProperty(Popup.prototype,\"dialogResult\",{get:function(){return this._result},set:function(e){this._result=e},enumerable:!0,configurable:!0});Object.defineProperty(Popup.prototype,\"dialogResultEnter\",{get:function(){return this._resultEnter},set:function(e){this._resultEnter=e},enumerable:!0,configurable:!0});Object.defineProperty(Popup.prototype,\"isVisible\",{get:function(){var e=this.hostElement;return this._visible&&null!=e&&e.offsetHeight>0},enumerable:!0,configurable:!0});Popup.prototype.show=function(e,t){var i=this;this._lastShow=Date.now();if(!this.isVisible){var n=this.hostElement;this.dialogResult=null;this._callback=null;this._oldFocus=null;this._hideAnim.forEach((function(e){clearInterval(e)}));this._hideAnim.length=0;var o=new CancelEventArgs;if(this.onShowing(o)){null!=e&&(this.modal=asBoolean(e));null!=t&&(this._callback=asFunction(t));this._oldFocus=getActiveElement();showPopup(n,this._owner,this._position,this._fadeIn,!1,this._hideBnd);this._modal&&this._showBackdrop();this._composing=!1;this._visible=!0;this.onShown(o);this.modal&&this.addEventListener(window,\"focus\",(function(){i.containsFocus()||moveFocus(n,0)}));this._resized=this._dragged=this._ignoreClick=!1;this._handleDragResize(!0);this.addEventListener(window,\"touchstart\",(function(e){i._hideTrigger&PopupTrigger.Blur&&!contains(n,e.target,!0)&&i.hide()}));setTimeout((function(){if(!i.isTouching){var e=n.querySelector(\"[autofocus]\");if(e&&e.clientHeight>0&&!e.disabled&&e.tabIndex>-1&&!closest(e,\"[disabled],.wj-state-disabled\")){e.focus();isFunction(e.select)&&e.select()}else moveFocus(n,0)}if(!i.containsFocus()){n.tabIndex=0;n.focus()}}),200)}}};Popup.prototype.hide=function(e){var t=this;this._handleDragResize(!1);this.removeEventListener(window,\"touchstart\");if(this.isVisible){isUndefined(e)||(this.dialogResult=e);var i=new CancelEventArgs,n=this.hostElement;if(this.onHiding(i)){for(var o=n.querySelectorAll(\".wj-control.wj-dropdown\"),s=0;s0?e.touches[0]:e;this._edges=this._getEdges(this.hostElement,t);if(this._edges||this._draggable&&this._getClosestHeader(e.target)){var i=new CancelEventArgs;if(this._edges?this.onResizing(i):this.onDragging(i)){this._mousedownEvt=t;this._rcBounds=this.hostElement.getBoundingClientRect();var n=this.addEventListener.bind(this),o=document,s=this._mousedragBnd,r=this._mouseupBnd;n(o,\"mousemove\",s);n(o,\"touchmove\",s);n(o,\"mouseup\",r);n(o,\"touchend\",r)}}this._ignoreClick=!1}};Popup.prototype._mouseup=function(){this._mousedownEvt=null;this._rcBounds=null;var e=this.removeEventListener.bind(this),t=document,i=this._mousedragBnd,n=this._mouseupBnd;e(t,\"mousemove\",i);e(t,\"touchmove\",i);e(t,\"mouseup\",n);e(t,\"touchend\",n);this._resized?this.onResized():this._dragged&&this.onDragged()};Popup.prototype._mousedrag=function(e){if(!e.defaultPrevented){var t=this.hostElement,i=this._mousedownEvt,n=e.touches&&e.touches.length>0?e.touches[0]:e,o=n.clientX-i.clientX,s=n.clientY-i.clientY,r=this._rcBounds,a=this._edges,l=Popup._SZ_MIN,h=Rect.fromBoundingRect(r);if(a){if(a&_Edges.Left){h.left=r.left+o+(n.pageX-n.clientX);h.width=Math.max(r.width-o,l)}else if(a&_Edges.Right){h.left=r.left;h.width=Math.max(r.width+o,l)}if(a&_Edges.Top){h.top=r.top+s+(n.pageY-n.clientY);h.height=Math.max(r.height-s,l)}else if(a&_Edges.Bottom){h.top=r.top;h.height=Math.max(r.height+s,l)}if(this.onSizeChanging(new PopupBoundsChangingEventArgs(h))){setCss(t,{left:h.left,top:h.top,width:h.width,height:h.height});this._resized=this._dragged=this._ignoreClick=!0;this.onSizeChanged()}if(!window.ResizeObserver)for(var u=this.hostElement.children,c=0;cPopup._DRAG_THRESHOLD)){h.left=Math.max(r.left+o+(n.pageX-n.clientX),50-r.width);h.top=Math.max(r.top+s+(n.pageY-n.clientY),0);if(this.onPositionChanging(new PopupBoundsChangingEventArgs(h))){setCss(t,{left:h.left,top:h.top});this._dragged=this._ignoreClick=!0;this.onPositionChanged()}}}};Popup.prototype._getEdges=function(e,t){var i=0;if(this._resizable){var n=e.getBoundingClientRect(),o=Popup._SZ_EDGE;t.clientX-n.left
    ',n.hostElement.firstElementChild);if(\"INPUT\"==n._orgTag){n._tbx.type=\"\";n._commitText()}n.value=\"#ffffff\";n.isRequired=!0;n.initialize(i);n.addEventListener(n._colorPicker.hostElement,\"click\",(function(e){var t=e.target;if(t&&\"DIV\"==t.tagName&&(closest(t,'[wj-part=\"div-pal\"]')||closest(t,'[wj-part=\"div-pv\"]'))){t.style.backgroundColor&&(n.isDroppedDown=!1)}}));return n}Object.defineProperty(InputColor.prototype,\"value\",{get:function(){return this._value},set:function(e){e!=this.value&&(!e&&this.isRequired||(this.text=asString(e)))},enumerable:!0,configurable:!0});Object.defineProperty(InputColor.prototype,\"text\",{get:function(){return this._tbx.value},set:function(e){if(e!=this.text){this._setText(asString(e),!0);this._commitText()}},enumerable:!0,configurable:!0});Object.defineProperty(InputColor.prototype,\"showAlphaChannel\",{get:function(){return this._colorPicker.showAlphaChannel},set:function(e){this._colorPicker.showAlphaChannel=e},enumerable:!0,configurable:!0});Object.defineProperty(InputColor.prototype,\"palette\",{get:function(){return this._colorPicker.palette},set:function(e){this._colorPicker.palette=e},enumerable:!0,configurable:!0});Object.defineProperty(InputColor.prototype,\"colorPicker\",{get:function(){return this._colorPicker},enumerable:!0,configurable:!0});InputColor.prototype.onValueChanged=function(e){this.valueChanged.raise(this,e)};InputColor.prototype.onIsDroppedDownChanged=function(t){e.prototype.onIsDroppedDownChanged.call(this,t);this.isDroppedDown&&!this.isTouching&&this.selectAll()};InputColor.prototype._createDropDown=function(){var e=this;this._colorPicker=new ColorPicker(this._dropDown);setCss(this._dropDown,{minWidth:420,minHeight:200});this._colorPicker.valueChanged.addHandler((function(){e.value=e._colorPicker.value}))};InputColor.prototype._keydown=function(t){if(!t.defaultPrevented)switch(t.keyCode){case Key.Enter:this._commitText();this.selectAll();break;case Key.Escape:this.text=this.value;this.selectAll()}e.prototype._keydown.call(this,t)};InputColor.prototype._commitText=function(){if(this.value!=this.text){if(!this.isRequired&&!this.text){this._value=this.text;this._ePreview.style.backgroundColor=\"\";return}if(Color.fromString(this.text)){this._colorPicker.value=this.text;this._value=this._colorPicker.value;this._ePreview.style.backgroundColor=this.value;this.onValueChanged()}else this.text=this._value?this._value:\"\"}};return InputColor}(DropDown);export{InputColor};var ComboBox=function(e){__extends(ComboBox,e);function ComboBox(t,i){var n=e.call(this,t)||this;n._editable=!1;n._trimText=!0;n._delKey=0;n._composing=!1;n._pathHdr=new Binding(null);n._bsCollapse=!0;n._fmtItemHandlers=0;n.itemsSourceChanged=new Event;n.selectedIndexChanged=new Event;var o=n.hostElement;addClass(o,\"wj-combobox\");n.dropDown.id=getUniqueId(o.id+\"_dropdown\");n.autoExpandSelection=!1;n.addEventListener(n._tbx,\"compositionstart\",(function(){n._composing=!0}));n.addEventListener(n._tbx,\"compositionend\",(function(){n._composing=!1;n._setText(n.text,!0)}));n.addEventListener(o,\"wheel\",n._wheel.bind(n));\"SELECT\"==n._orgTag&&n._lbx._initFromSelect(o);n._lbx.loadedItems.addHandler((function(e){n.selectedIndex>-1&&(n.selectedIndex=n._lbx.selectedIndex)}));n.isRequired=!0;n.initialize(i);return n}Object.defineProperty(ComboBox.prototype,\"itemsSource\",{get:function(){return this._lbx.itemsSource},set:function(e){if(this._lbx.itemsSource!=e){this._lbx.itemsSource=e;this.onItemsSourceChanged()}this._updateBtn()},enumerable:!0,configurable:!0});Object.defineProperty(ComboBox.prototype,\"collectionView\",{get:function(){return this._lbx.collectionView},enumerable:!0,configurable:!0});Object.defineProperty(ComboBox.prototype,\"showGroups\",{get:function(){return this._lbx.showGroups},set:function(e){this._lbx.showGroups=e},enumerable:!0,configurable:!0});Object.defineProperty(ComboBox.prototype,\"displayMemberPath\",{get:function(){return this._lbx.displayMemberPath},set:function(e){this._lbx.displayMemberPath=e;var t=this.getDisplayText();this.text!=t&&this._setText(t,!0)},enumerable:!0,configurable:!0});Object.defineProperty(ComboBox.prototype,\"headerPath\",{get:function(){return this._pathHdr.path},set:function(e){this._pathHdr.path=asString(e);var t=this.getDisplayText();this.text!=t&&this._setText(t,!0)},enumerable:!0,configurable:!0});Object.defineProperty(ComboBox.prototype,\"selectedValuePath\",{get:function(){return this._lbx.selectedValuePath},set:function(e){this._lbx.selectedValuePath=e},enumerable:!0,configurable:!0});Object.defineProperty(ComboBox.prototype,\"isContentHtml\",{get:function(){return this._lbx.isContentHtml},set:function(e){if(e!=this.isContentHtml){this._lbx.isContentHtml=asBoolean(e);var t=this.getDisplayText();this.text!=t&&this._setText(t,!0)}},enumerable:!0,configurable:!0});Object.defineProperty(ComboBox.prototype,\"caseSensitiveSearch\",{get:function(){return this._lbx.caseSensitiveSearch},set:function(e){this._lbx.caseSensitiveSearch=asBoolean(e)},enumerable:!0,configurable:!0});Object.defineProperty(ComboBox.prototype,\"trimText\",{get:function(){return this._trimText},set:function(e){if(e!=this._trimText){this._trimText=asBoolean(e);this.invalidate()}},enumerable:!0,configurable:!0});Object.defineProperty(ComboBox.prototype,\"itemFormatter\",{get:function(){return this._lbx.itemFormatter},set:function(e){this._lbx.itemFormatter=asFunction(e);this.selectedIndex=this._lbx.selectedIndex},enumerable:!0,configurable:!0});Object.defineProperty(ComboBox.prototype,\"formatItem\",{get:function(){return this.listBox.formatItem},enumerable:!0,configurable:!0});Object.defineProperty(ComboBox.prototype,\"selectedIndex\",{get:function(){return this._lbx.selectedIndex},set:function(e){e!=this.selectedIndex&&isNumber(e)&&(this._lbx.selectedIndex=e);e=this.selectedIndex;var t=this.getDisplayText(e);this.text!=t&&this._setText(t,!0)},enumerable:!0,configurable:!0});Object.defineProperty(ComboBox.prototype,\"selectedItem\",{get:function(){return this._lbx.selectedItem},set:function(e){this._lbx.selectedItem=e},enumerable:!0,configurable:!0});Object.defineProperty(ComboBox.prototype,\"selectedValue\",{get:function(){return this.collectionView?this._lbx.selectedValue:this.text},set:function(e){this.collectionView?this._lbx.selectedValue=e:null!=e&&(this.text=e.toString())},enumerable:!0,configurable:!0});Object.defineProperty(ComboBox.prototype,\"isEditable\",{get:function(){return this._editable},set:function(e){this._editable=asBoolean(e)},enumerable:!0,configurable:!0});Object.defineProperty(ComboBox.prototype,\"maxDropDownHeight\",{get:function(){return this._lbx.maxHeight},set:function(e){this._lbx.maxHeight=asNumber(e)},enumerable:!0,configurable:!0});Object.defineProperty(ComboBox.prototype,\"maxDropDownWidth\",{get:function(){var e=this._dropDown;return e?parseInt(e.style.maxWidth):0},set:function(e){var t=this._dropDown;t.style.maxWidth=asNumber(e)+\"px\";t.style.minWidth=\"\"},enumerable:!0,configurable:!0});ComboBox.prototype.getDisplayText=function(e){void 0===e&&(e=this.selectedIndex);var t;if(this.headerPath&&e>-1&&hasItems(this.collectionView)){var i=this.collectionView.items[e];t=null!=(t=i?this._pathHdr.getValue(i):null)?t.toString():\"\";this.isContentHtml&&(t=toPlainText(t))}else t=this._lbx.getDisplayText(e);return this._trimText?t.trim():t};ComboBox.prototype.indexOf=function(e,t){var i=this.collectionView,n=this.caseSensitiveSearch;if(hasItems(i)&&null!=e){e=e.toString();n||(e=e.toLowerCase());var o=this.selectedIndex,s=this.getDisplayText(o);if(t){n||(s=s.toLowerCase());if(e==s)return o}for(var r=0;r-1&&(this.selectedIndex=this._lbx.selectedIndex)}};ComboBox.prototype.onLostFocus=function(t){if(this._composing){this._composing=!1;this._setText(this.text,!0)}this.isEditable&&this.isRequired&&!this.text&&hasItems(this.collectionView)&&(this.selectedIndex=0);e.prototype.onLostFocus.call(this,t)};ComboBox.prototype.onIsDroppedDownChanging=function(t){if(!this.isDroppedDown&&!this._hasItems()){t.cancel=!0;return!1}return e.prototype.onIsDroppedDownChanging.call(this,t)};ComboBox.prototype.onIsDroppedDownChanged=function(t){e.prototype.onIsDroppedDownChanged.call(this,t);if(this.isDroppedDown){this._fmtItemHandlers=this.formatItem.handlerCount;this._lbx.showSelection()}this._updateAria()};ComboBox.prototype._updateBtn=function(){var t=this.collectionView,i=this._tbx,n=this._hasItems();e.prototype._updateBtn.call(this);this._btn.style.display=this._showBtn&&null!=t?\"\":\"none\";enable(this._btn,n);setAttribute(i,\"role\",n?\"combobox\":null);setAttribute(i,\"aria-autocomplete\",n?\"both\":null);this._updateAria()};ComboBox.prototype._hasItems=function(){return hasItems(this.collectionView)};ComboBox.prototype._updateAria=function(){var e=this._tbx,t=this.isDroppedDown,i=this.dropDown?this.dropDown.id:null,n=i&&hasItems(this.collectionView);setAttribute(e,\"aria-owns\",n&&t?i:null);setAttribute(e,\"aria-expanded\",n?t:null)};ComboBox.prototype._createDropDown=function(){var e=this;this._lbx||(this._lbx=new ListBox(this._dropDown));this._lbx.maxHeight=200;this._lbx.selectedIndexChanged.addHandler((function(){e._updateBtn();var t=e._lbx.selectedIndex,i=e._lbx.hostElement.children,n=t>-1&&t-1){var t=this._findNext(\"\",e.deltaY>0?1:-1);t>-1&&(this.selectedIndex=t);e.preventDefault()}};ComboBox.prototype._dropDownClick=function(t){t.defaultPrevented||t.target!=this._dropDown&&(this.isDroppedDown=!1);e.prototype._dropDownClick.call(this,t)};ComboBox.prototype._setText=function(t,i){if(!this._settingText){this._settingText=!0;if(this.containsFocus()){var n=this.formatItem.handlerCount;if(this._fmtItemHandlers!=n){this._fmtItemHandlers=n;this._lbx.loadList()}}null==t&&(t=\"\");t=t.toString();var o=this.selectedIndex,s=this.collectionView,r=this._getSelStart(),a=-1,l=!0;if(this.isEditable&&(this._delKey||this._getSelEnd()0&&(o=this.indexOf(t.substr(0,r),!1))}if(o<0&&!this.isEditable&&hasItems(s)&&(this.isRequired||t)){var h=this._oldText||\"\";o=Math.max(0,this.indexOf(h,!1));for(var u=0;u-1){a=r;t=this.getDisplayText(o)}t!=this._tbx.value&&(this._tbx.value=t);a>-1&&this.containsFocus()&&!this.isTouching&&this._updateInputSelection(a);s&&s.moveCurrentToPosition(o);this._delKey=0;this._settingText=!1;e.prototype._setText.call(this,t,i)}};ComboBox.prototype._findNext=function(e,t){var i=this.selectedIndex,n=this.collectionView,o=n?n.items.length:0,s=this.listBox,r=this.caseSensitiveSearch;if(n&&o&&t){r||(e=e.toLowerCase());for(var a=i+t;a>-1&&a0&&n==this._tbx.value.length&&hasItems(this.collectionView)&&this._setSelRange(i-1,n)}this._delKey=t.keyCode;break;case Key.Delete:this._delKey=t.keyCode;break;case Key.Up:case Key.Down:i==this.text.length&&(i=0);this.selectedIndex=this._findNext(this.text.substr(0,i),t.keyCode==Key.Up?-1:1);this._setSelRange(i,this.text.length);t.preventDefault();break;case Key.PageUp:this._lbx._selectPrevPage();this.selectAll();t.preventDefault();break;case Key.PageDown:this._lbx._selectNextPage();this.selectAll();t.preventDefault()}}};ComboBox.prototype._updateInputSelection=function(e){this._elRef==this._tbx&&this._setSelRange(e,this._tbx.value.length)};ComboBox.prototype._getSelStart=function(){return this._tbx&&this._tbx.value?this._tbx.selectionStart:0};ComboBox.prototype._getSelEnd=function(){return this._tbx&&this._tbx.value?this._tbx.selectionEnd:0};ComboBox.prototype._setSelRange=function(e,t){var i=this._tbx;this._elRef!=i||i.readOnly||setSelectionRange(i,e,t)};return ComboBox}(DropDown);export{ComboBox};_addCultureInfo(\"MultiSelect\",{itemsSelected:\"{count:n0} items selected\",selectAll:\"Select All\"});var MultiSelect=function(e){__extends(MultiSelect,e);function MultiSelect(t,i){var n=e.call(this,t)||this;n._maxHdrItems=2;n._readOnly=!1;n._hdrFmt=null;n.checkedItemsChanged=new Event;addClass(n.hostElement,\"wj-multiselect\");n._tbx.readOnly=!0;n.checkedMemberPath=null;n.removeEventListener(n.dropDown,\"click\");n.listBox.itemsChanged.addHandler((function(){n._updateHeader()}));n.listBox.checkedItemsChanged.addHandler((function(){n._updateHeader();n.onCheckedItemsChanged()}));n.clickAction=ClickAction.Toggle;n.initialize(i);return n}Object.defineProperty(MultiSelect.prototype,\"showSelectAllCheckbox\",{get:function(){return this._msLbx.showSelectAllCheckbox},set:function(e){this._msLbx.showSelectAllCheckbox=asBoolean(e)},enumerable:!0,configurable:!0});Object.defineProperty(MultiSelect.prototype,\"showFilterInput\",{get:function(){return this._msLbx.showFilterInput},set:function(e){this._msLbx.showFilterInput=asBoolean(e)},enumerable:!0,configurable:!0});Object.defineProperty(MultiSelect.prototype,\"filterInputPlaceholder\",{get:function(){return this._msLbx.filterInputPlaceholder},set:function(e){this._msLbx.filterInputPlaceholder=asString(e)},enumerable:!0,configurable:!0});Object.defineProperty(MultiSelect.prototype,\"checkOnFilter\",{get:function(){return this._msLbx.checkOnFilter},set:function(e){if(e!=this.checkOnFilter){this._msLbx.checkOnFilter=asBoolean(e);this.checkedItems=[]}},enumerable:!0,configurable:!0});Object.defineProperty(MultiSelect.prototype,\"selectAllLabel\",{get:function(){return this._msLbx.selectAllLabel},set:function(e){this._msLbx.selectAllLabel=asString(e)},enumerable:!0,configurable:!0});Object.defineProperty(MultiSelect.prototype,\"checkedMemberPath\",{get:function(){return this._msLbx.checkedMemberPath},set:function(e){this._msLbx.checkedMemberPath=asString(e)},enumerable:!0,configurable:!0});Object.defineProperty(MultiSelect.prototype,\"maxHeaderItems\",{get:function(){return this._maxHdrItems},set:function(e){if(this._maxHdrItems!=e){this._maxHdrItems=asNumber(e);this._updateHeader()}},enumerable:!0,configurable:!0});Object.defineProperty(MultiSelect.prototype,\"headerFormat\",{get:function(){return this._hdrFmt},set:function(e){if(e!=this._hdrFmt){this._hdrFmt=asString(e);this._updateHeader()}},enumerable:!0,configurable:!0});Object.defineProperty(MultiSelect.prototype,\"headerFormatter\",{get:function(){return this._hdrFormatter},set:function(e){if(e!=this._hdrFormatter){this._hdrFormatter=asFunction(e);this._updateHeader()}},enumerable:!0,configurable:!0});Object.defineProperty(MultiSelect.prototype,\"checkedItems\",{get:function(){return this._msLbx.checkedItems},set:function(e){this._msLbx.checkedItems=asArray(e)},enumerable:!0,configurable:!0});MultiSelect.prototype.onCheckedItemsChanged=function(e){this.checkedItemsChanged.raise(this,e)};MultiSelect.prototype.dispose=function(){this.listBox.dispose();e.prototype.dispose.call(this)};MultiSelect.prototype.onIsDroppedDownChanged=function(t){var i=this;e.prototype.onIsDroppedDownChanged.call(this,t);setTimeout((function(){if(i.isDroppedDown&&i.containsFocus())if(i.showFilterInput&&!i.isTouching)i._msLbx._filter.focus();else{i.listBox.showSelection(!0);i.listBox.focus()}}))};MultiSelect.prototype._createDropDown=function(){var t=createElement(\"
    \",this._dropDown);this._msLbx=new MultiSelectListBox(t);this._lbx=this._msLbx.listBox;e.prototype._createDropDown.call(this)};Object.defineProperty(MultiSelect.prototype,\"isReadOnly\",{get:function(){return this._readOnly},set:function(e){this._readOnly=asBoolean(e);toggleClass(this.hostElement,\"wj-state-readonly\",this.isReadOnly)},enumerable:!0,configurable:!0});MultiSelect.prototype.refresh=function(t){void 0===t&&(t=!0);e.prototype.refresh.call(this,t);this.hostElement&&this._updateHeader()};MultiSelect.prototype._setText=function(e,t){};MultiSelect.prototype._keydown=function(t){e.prototype._keydown.call(this,t);!t.defaultPrevented&&hasItems(this.collectionView)&&t.keyCode>32&&(this.isDroppedDown=!0)};MultiSelect.prototype._hasItems=function(){var e=this.collectionView,t=e?e.sourceCollection:null;return hasItems(e)||t&&t.length&&this.showFilterInput};MultiSelect.prototype._updateHeader=function(){var e=this.checkedItems;if(isFunction(this._hdrFormatter))this.inputElement.value=this._hdrFormatter(this);else{var t=\"\";if(e.length>0)if(e.length<=this._maxHdrItems){if(this.displayMemberPath){var i=new Binding(this.displayMemberPath);e=e.map((function(e){return i.getValue(e)}))}this.isContentHtml&&(e=e.map((function(e){return toPlainText(e)})));t=e.join(\", \")}else t=format(this.headerFormat||culture.MultiSelect.itemsSelected,{count:e.length});this.inputElement.value=t}this._updateState()};MultiSelect._DEF_CHECKED_PATH=\"$checked\";return MultiSelect}(ComboBox);export{MultiSelect};var Menu=function(e){__extends(Menu,e);function Menu(t,i){var n=e.call(this,t)||this;n._isButton=!1;n._openOnHover=!1;n._closeOnLeave=!0;n._hoverEnterBnd=n._hoverEnter.bind(n);n._hoverLeaveBnd=n._hoverLeave.bind(n);n._hoverOverBnd=n._hoverOver.bind(n);n.itemClicked=new Event;var o=n.hostElement,s=n._tbx,r=n._lbx,a=n.dropDown;addClass(o,\"wj-menu\");s.style.display=\"none\";n._hdr=n._elRef=createElement('
    ');s.parentElement.insertBefore(n._hdr,n._tbx);var l=n._orgOuter.match(/tabindex=\"?(-?\\d+)\"?/i);o.tabIndex=l?parseInt(l[1]):0;n.isRequired=!1;setAttribute(o,\"role\",\"menubar\",!0);setAttribute(s,\"role\",null);setAttribute(s,\"aria-autocomplete\",null);setAttribute(s,\"aria-owns\",null);setAttribute(a,\"role\",\"menu\");r.itemRole=\"menuitem\";if(\"SELECT\"==n._orgTag){n.header=o.getAttribute(\"header\");n._lbx.itemsSource&&(n.commandParameterPath=\"cmdParam\")}n.isContentHtml=!0;n.maxDropDownHeight=500;n.addEventListener(n._hdr,\"click\",(function(e){if(!e.defaultPrevented){n._clearHover(e);if(n._isButton){n.isDroppedDown=!1;n._raiseCommand()}else n.isDroppedDown=!n.isDroppedDown}}));r.lostFocus.addHandler((function(){n.containsFocus()||(n.isDroppedDown=!1)}));addClass(a,\"wj-menu-items\");r.formatItem.addHandler(n._formatMenuItem.bind(n));n.initialize(i);return n}Object.defineProperty(Menu.prototype,\"header\",{get:function(){return this._hdr.innerHTML},set:function(e){this._hdr.innerHTML=asString(e)},enumerable:!0,configurable:!0});Object.defineProperty(Menu.prototype,\"command\",{get:function(){return this._cmd},set:function(e){this._cmd=e},enumerable:!0,configurable:!0});Object.defineProperty(Menu.prototype,\"commandPath\",{get:function(){return this._cmdPath},set:function(e){this._cmdPath=asString(e)},enumerable:!0,configurable:!0});Object.defineProperty(Menu.prototype,\"commandParameterPath\",{get:function(){return this._cmdParamPath},set:function(e){this._cmdParamPath=asString(e)},enumerable:!0,configurable:!0});Object.defineProperty(Menu.prototype,\"subItemsPath\",{get:function(){return this._subPath},set:function(e){if(e!=this._subPath){this._subPath=e;this.refresh(!0)}},enumerable:!0,configurable:!0});Object.defineProperty(Menu.prototype,\"openOnHover\",{get:function(){return this._openOnHover},set:function(e){this._openOnHover=asBoolean(e);this._updateHoverEvents()},enumerable:!0,configurable:!0});Object.defineProperty(Menu.prototype,\"closeOnLeave\",{get:function(){return this._closeOnLeave},set:function(e){this._closeOnLeave=asBoolean(e);this._updateHoverEvents()},enumerable:!0,configurable:!0});Object.defineProperty(Menu.prototype,\"isButton\",{get:function(){return this._isButton},set:function(e){this._isButton=asBoolean(e)},enumerable:!0,configurable:!0});Object.defineProperty(Menu.prototype,\"owner\",{get:function(){return this._owner},set:function(e){this._owner=asType(e,HTMLElement,!0);this._enableDisableItems()},enumerable:!0,configurable:!0});Menu.prototype.show=function(e){if(!this.isDroppedDown){this.selectedIndex=-1;if(this.onIsDroppedDownChanging(new CancelEventArgs)){var t=this.dropDown,i=this.owner;!i&&e instanceof MouseEvent&&(i=e.target);i instanceof HTMLElement&&(t[Control._OWNR_KEY]=i);showPopup(t,e,!1,this.isAnimated);this.onIsDroppedDownChanged();t.focus()}}};Menu.prototype.hide=function(){if(this.isDroppedDown&&this.onIsDroppedDownChanging(new CancelEventArgs)){hidePopup(this.dropDown);this.onIsDroppedDownChanged()}};Menu.prototype.onItemClicked=function(e){this.itemClicked.raise(this,e)};Menu.prototype.refresh=function(t){void 0===t&&(t=!0);e.prototype.refresh.call(this,t);this.hostElement&&this._enableDisableItems()};Menu.prototype.onIsDroppedDownChanged=function(t){e.prototype.onIsDroppedDownChanged.call(this,t);if(this.isDroppedDown){this._closing=!0;this._defaultItem=this.selectedItem;this.isRequired=!1;this.selectedIndex=-1;this._enableDisableItems();this._closing=!1;this.dropDown.focus()}else{this.selectedItem||(this.selectedItem=this._defaultItem);var i=this._subMenu;i&&(i.isDroppedDown=!1)}};Menu.prototype._updateHoverEvents=function(){var e=this.hostElement,t=this.dropDown,i=this.addEventListener.bind(this),n=this.removeEventListener.bind(this),o=\"mouseleave\";n(e,\"mouseenter\",this._hoverEnterBnd);n(e,o,this._hoverLeaveBnd);n(t,\"mouseover\",this._hoverOverBnd);n(t,o,this._hoverLeaveBnd);if(this._openOnHover){i(e,\"mouseenter\",this._hoverEnterBnd);i(t,\"mouseover\",this._hoverOverBnd);if(this._closeOnLeave){i(e,o,this._hoverLeaveBnd);i(t,o,this._hoverLeaveBnd)}}};Menu.prototype._getSubItems=function(e){var t=this.subItemsPath,i=e&&t?e[t]:null;return isArray(i)&&i.length?i:null};Menu.prototype._formatMenuItem=function(e,t){var i=t.item;if(this._getSubItems(t.data))addClass(i,\"wj-subitems\");else if(\"-\"==i.innerHTML){i.innerHTML=\"\";addClass(i,\"wj-separator\")}};Menu.prototype._keydown=function(t){if(!t.defaultPrevented){var i=this._getKeyCode(t);if(this.isDroppedDown)switch(i){case Key.Enter:case Key.Right:if(this._showSubMenu()){t.preventDefault();return}break;case Key.Left:var n=Control.getControl(this.owner);if(n instanceof Menu){var o=n.dropDown,s=n.selectedIndex;(s>-1?o.children[s]:o).focus();t.preventDefault();return}}if(i==Key.Enter)if(this.isDroppedDown)this.getDisplayText(this.selectedIndex)&&this._raiseCommand();else{this.isDroppedDown=!0;t.preventDefault()}}e.prototype._keydown.call(this,t)};Menu.prototype._dropDownClick=function(t){if(!t.defaultPrevented&&t.target!=this.dropDown){this._clearHover(t);if(this._showSubMenu()){t.preventDefault();return}this.getDisplayText(this.selectedIndex)&&this._raiseCommand()}e.prototype._dropDownClick.call(this,t)};Menu.prototype._showSubMenu=function(){var e=this,t=this._getSubItems(this.selectedItem);if(!t)return null;var i=this.dropDown.children[this.selectedIndex].getBoundingClientRect(),n=new Point(i.right,i.top);if(0==i.height)return null;var o=this.rightToLeft||\"rtl\"==this.dropDown.getAttribute(\"dir\");o&&(n.x=i.left);var s=this._subMenu;s&&(s.isDroppedDown=!1);s=new Menu(document.createElement(\"div\"),{owner:this.hostElement,itemsSource:t,itemClicked:function(t,i){e.itemClicked.raise(t,i)}});\"displayMemberPath,selectedValuePath,isContentHtml,command,commandPath,commandParameterPath,maxDropDownWidth,maxDropDownHeight,dropDownCssClass,isAnimated,subItemsPath,openOnHover,closeOnLeave\".split(\",\").forEach((function(t){s[t]=e[t]}));var r=s.dropDown;setAttribute(r,\"dir\",o?\"rtl\":null);s.show(n);r[Control._OWNR_KEY]=this.dropDown;r.focus();return s};Menu.prototype._raiseCommand=function(e){var t=this.selectedItem,i=this._getSubItems(t),n=this._getCommand(t);if(n&&!i){var o=this._getCommandParm(t);if(!this._canExecuteCommand(n,o))return;this._executeCommand(n,o)}this.onItemClicked(e);if(this.containsFocus()){for(var s=this;s&&s.owner;){var r=Control.getControl(s.owner);if(!(r instanceof Menu))break;s=r}var a=s.owner;!a&&s.dropDown&&(a=s.dropDown[Control._OWNR_KEY]);s.isDroppedDown=!1;s.focus();s.containsFocus()||a instanceof HTMLElement&&a.focus()}};Menu.prototype._getCommand=function(e){var t=e&&this._cmdPath?e[this._cmdPath]:null;return t||this._cmd};Menu.prototype._getCommandParm=function(e){var t=this._cmdParamPath;return e&&t?e[t]:e};Menu.prototype._executeCommand=function(e,t){e&&!isFunction(e)&&(e=e.executeCommand);isFunction(e)&&e(t)};Menu.prototype._canExecuteCommand=function(e,t){if(e){var i=e.canExecuteCommand;if(isFunction(i))return i(t)}return!0};Menu.prototype._enableDisableItems=function(){if(this.collectionView&&(this._cmd||this._cmdPath))for(var e=this.collectionView.items,t=0;t-1){t.selectedIndex=i;t._subMenu=t._showSubMenu()}}),Control._HOVER_DELAY)};return Menu}(ComboBox);export{Menu};var InputTime=function(e){__extends(InputTime,e);function InputTime(t,i){var n=e.call(this,t)||this;n._format=\"t\";n.valueChanged=new Event;addClass(n.hostElement,\"wj-inputtime\");n.isEditable=!0;n._value=DateTime.newDate();n._msk=new _MaskProvider(n._tbx);isIE9()||(n._tbx.type=\"tel\");if(\"INPUT\"==n._orgTag){var o=n._tbx.getAttribute(\"value\");o&&(n.value=Globalize.parseDate(o,\"HH:mm:ss\"))}n.step=15;n.autoExpandSelection=!0;n.initialize(i);return n}Object.defineProperty(InputTime.prototype,\"inputElement\",{get:function(){return this._tbx},enumerable:!0,configurable:!0});Object.defineProperty(InputTime.prototype,\"inputType\",{get:function(){return this._tbx.type},set:function(e){this._tbx.type=asString(e)},enumerable:!0,configurable:!0});Object.defineProperty(InputTime.prototype,\"value\",{get:function(){return this._value},set:function(e){(e=asDate(e,!this.isRequired))&&(e=this._clamp(e));this._setText(e?Globalize.format(e,this.format):\"\",!0);this.selectedItem&&this.selectedItem.value&&(e=DateTime.fromDateTime(e,this.selectedItem.value));if(e!=this._value&&!DateTime.equals(e,this._value)){this._value=e;this.onValueChanged()}},enumerable:!0,configurable:!0});Object.defineProperty(InputTime.prototype,\"text\",{get:function(){return this._tbx.value},set:function(e){if(e!=this.text){this._setText(e,!0);this._commitText()}},enumerable:!0,configurable:!0});Object.defineProperty(InputTime.prototype,\"min\",{get:function(){return this._min},set:function(e){this._min=asDate(e,!0);this.isDroppedDown=!1;this._updateItems()},enumerable:!0,configurable:!0});Object.defineProperty(InputTime.prototype,\"max\",{get:function(){return this._max},set:function(e){this._max=asDate(e,!0);this.isDroppedDown=!1;this._updateItems()},enumerable:!0,configurable:!0});Object.defineProperty(InputTime.prototype,\"step\",{get:function(){return this._step},set:function(e){this._step=asNumber(e,!0);this.isDroppedDown=!1;this._updateItems()},enumerable:!0,configurable:!0});Object.defineProperty(InputTime.prototype,\"format\",{get:function(){return this._format},set:function(e){if(e!=this.format){this._format=asString(e);this._tbx.value=Globalize.format(this.value,this.format);hasItems(this.collectionView)&&this._updateItems()}},enumerable:!0,configurable:!0});Object.defineProperty(InputTime.prototype,\"mask\",{get:function(){return this._msk.mask},set:function(e){this._msk.mask=asString(e)},enumerable:!0,configurable:!0});InputTime.prototype.onValueChanged=function(e){this.valueChanged.raise(this,e)};InputTime.prototype.onItemsSourceChanged=function(t){e.prototype.onItemsSourceChanged.call(this,t);this._hasCustomItems=null!=this.itemsSource};InputTime.prototype.refresh=function(t){void 0===t&&(t=!0);e.prototype.refresh.call(this,t);if(this.hostElement){this._msk.refresh();this._tbx.value=Globalize.format(this.value,this.format);this._updateItems()}};InputTime.prototype.onSelectedIndexChanged=function(t){if(this.selectedIndex>-1&&!this._settingText){var i=this.value?this.value:DateTime.newDate(),n=null!=this.selectedItem.value?this.selectedItem.value:Globalize.parseDate(this.text,this.format,this.value);this.value=DateTime.fromDateTime(i,n)}e.prototype.onSelectedIndexChanged.call(this,t)};InputTime.prototype._clamp=function(e){null!=this._min&&this._getTime(e)this._getTime(this._max)&&(e=DateTime.fromDateTime(e,this._max));return e};InputTime.prototype._wheel=function(t){if(!t.defaultPrevented&&!this.isDroppedDown&&!this.isReadOnly&&this.containsFocus()&&this.selectedIndex<0&&this.value&&isNumber(this.step)&&this.step>0){var i=DateTime.addMinutes(this.value,this.step*clamp(t.deltaY,-1,1));this.value=this._clamp(i);this.selectAll();t.preventDefault()}e.prototype._wheel.call(this,t)};InputTime.prototype._updateInputSelection=function(t){if(this._delKey)e.prototype._updateInputSelection.call(this,t);else{for(var i=this._tbx.value;t0)for(var n=t;n<=i;n=DateTime.addMinutes(n,this.step))e.push({value:n,text:Globalize.format(n,this.format)});var o=this.value;this._settingText=!0;this.displayMemberPath=\"text\";this.selectedValuePath=\"text\";this.itemsSource=e;this._hasCustomItems=!1;this._settingText=!1;this.value=o}};InputTime.prototype._getTime=function(e){return 3600*e.getHours()+60*e.getMinutes()+e.getSeconds()};InputTime.prototype._keydown=function(t){e.prototype._keydown.call(this,t);if(!t.defaultPrevented)switch(t.keyCode){case Key.Enter:if(!this.isDroppedDown){this._commitText();this.selectAll()}break;case Key.Escape:this.text=Globalize.format(this.value,this.format);this.selectAll()}};InputTime.prototype._commitText=function(){if(this.text||this.isRequired){var e=this.value?Globalize.format(this.value,this.format):null;if(this.text!=e){var t=this.selectedItem&&this.selectedItem.value?this.selectedItem.value:Globalize.parseDate(this.text,this.format,this.value);t?this.value=DateTime.fromDateTime(this.value,t):this.text=e}}else this.value=null};return InputTime}(ComboBox);export{InputTime};_addCultureInfo(\"InputDateTime\",{ariaLabels:{tglDate:\"Toggle Calendar\",tglTime:\"Toggle Time List\"}});var InputDateTime=function(e){__extends(InputDateTime,e);function InputDateTime(t,i){var n=e.call(this,t)||this;addClass(n.hostElement,\"wj-inputdatetime\");var o=culture.InputDateTime.ariaLabels;setAriaLabel(n._btn,o.tglDate);setAriaLabel(n._btnTm,o.tglTime);n.format=\"g\";n._inputTime=new InputTime(document.createElement(\"div\"),{valueChanged:function(e){n.value=DateTime.fromDateTime(n.value,e.value)}});var s=n.addEventListener.bind(n);n._btnTm=n.hostElement.querySelector('[wj-part=\"btn-tm\"]');s(n._btnTm,\"mousedown\",(function(e){n._btnclick(e)}));var r=n._inputTime.dropDown;s(r,\"keydown\",n._keydown.bind(n),!0);s(r,\"blur\",(function(){n._updateFocusState()}),!0);s(r,\"click\",(function(e){e.defaultPrevented||e.target!=r&&n.hostElement.focus()}),!0);n.initialize(i);return n}Object.defineProperty(InputDateTime.prototype,\"timeMin\",{get:function(){return this._inputTime.min},set:function(e){this._inputTime.min=e},enumerable:!0,configurable:!0});Object.defineProperty(InputDateTime.prototype,\"timeMax\",{get:function(){return this._inputTime.max},set:function(e){this._inputTime.max=e},enumerable:!0,configurable:!0});Object.defineProperty(InputDateTime.prototype,\"timeFormat\",{get:function(){return this._inputTime.format},set:function(e){this._inputTime.format=e},enumerable:!0,configurable:!0});Object.defineProperty(InputDateTime.prototype,\"timeStep\",{get:function(){return this._inputTime.step},set:function(e){this._inputTime.step=e},enumerable:!0,configurable:!0});Object.defineProperty(InputDateTime.prototype,\"inputTime\",{get:function(){return this._inputTime},enumerable:!0,configurable:!0});InputDateTime.prototype._btnclick=function(t){var i=closest(t.target,\"button\")==this._btn?this.calendar.hostElement:this._inputTime.dropDown;this._setDropdown(i);e.prototype._btnclick.call(this,t)};InputDateTime.prototype.dispose=function(){this._setDropdown(this.calendar.hostElement);e.prototype.dispose.call(this);this._inputTime.dispose()};InputDateTime.prototype.refresh=function(t){void 0===t&&(t=!0);this._inputTime.refresh();e.prototype.refresh.call(this,t)};InputDateTime.prototype._updateBtn=function(){e.prototype._updateBtn.call(this);if(this._btnTm){this._btnTm.tabIndex=this._btn.tabIndex;this._btnTm.parentElement.style.display=this._btn.style.display}};InputDateTime.prototype._clamp=function(e){if(e){this.min&&ethis.max&&(e=this.max)}return e};InputDateTime.prototype._commitText=function(){var e=this._tbx.value;if(e||this.isRequired){var t=Globalize.parseDate(e,this.format,this.value);t?this.value=t:this._tbx.value=Globalize.format(this.value,this.format)}else this.value=null};InputDateTime.prototype._setDropdown=function(e){if(this._dropDown==e)return!1;this.isDroppedDown&&(this.isDroppedDown=!1);var t=this.dropDownCssClass;this.dropDownCssClass=\"\";this._dropDown=e;this.dropDownCssClass=t;return!0};InputDateTime.prototype._updateDropDown=function(){var t=this._inputTime;if(this._dropDown==t.dropDown){this._commitText();e.prototype._updateDropDown.call(this);t.isRequired=this.isRequired&&null!=this.value;t.value=this.value;this.isDroppedDown&&t.listBox.showSelection()}else e.prototype._updateDropDown.call(this)};InputDateTime.controlTemplate='
    ';return InputDateTime}(InputDate);export{InputDateTime};var AutoComplete=function(e){__extends(AutoComplete,e);function AutoComplete(t,i){var n=e.call(this,t)||this;n._cssMatch=\"wj-state-match\";n._minLength=2;n._maxItems=6;n._itemCount=0;n._delay=Control._SEARCH_DELAY;n._query=\"\";n._inCallback=!1;n._srchProps=[];addClass(n.hostElement,\"wj-autocomplete\");n._bsCollapse=!1;n.isEditable=!0;n.isRequired=!1;n.listBox.formatItem.addHandler(n._formatListItem,n);n._itemsSourceFnCallBackBnd=n._itemSourceFunctionCallback.bind(n);n.initialize(i);return n}Object.defineProperty(AutoComplete.prototype,\"minLength\",{get:function(){return this._minLength},set:function(e){this._minLength=asNumber(e,!1,!0)},enumerable:!0,configurable:!0});Object.defineProperty(AutoComplete.prototype,\"maxItems\",{get:function(){return this._maxItems},set:function(e){this._maxItems=asNumber(e,!1,!0)},enumerable:!0,configurable:!0});Object.defineProperty(AutoComplete.prototype,\"delay\",{get:function(){return this._delay},set:function(e){this._delay=asNumber(e,!1,!0)},enumerable:!0,configurable:!0});Object.defineProperty(AutoComplete.prototype,\"searchMemberPath\",{get:function(){return this._srchProp},set:function(e){this._srchProp=asString(e);this._srchProps=e?e.trim().split(/\\s*,\\s*/):[]},enumerable:!0,configurable:!0});Object.defineProperty(AutoComplete.prototype,\"itemsSourceFunction\",{get:function(){return this._itemsSourceFn},set:function(e){this._itemsSourceFn=asFunction(e);isFunction(this._itemsSourceFn)&&this.itemsSourceFunction(this.text,this.maxItems,this._itemsSourceFnCallBackBnd)},enumerable:!0,configurable:!0});Object.defineProperty(AutoComplete.prototype,\"cssMatch\",{get:function(){return this._cssMatch},set:function(e){this._cssMatch=asString(e)},enumerable:!0,configurable:!0});AutoComplete.prototype._keydown=function(t){if(!t.defaultPrevented&&this.isDroppedDown)switch(t.keyCode){case Key.Up:case Key.Down:this.selectAll()}e.prototype._keydown.call(this,t)};AutoComplete.prototype._setText=function(e){var t=this;if(!this._inCallback&&!this._composing){!e&&this.selectedIndex>-1&&this.getDisplayText()&&(this.selectedIndex=-1);if(e!=this._oldText){this._tbx.value!=e&&(this._tbx.value=e);this._oldText=e;this.onTextChanged();if(!e&&this.collectionView){(this._query||this.selectedIndex<0)&&(this.isDroppedDown=!1);this._query=this._rxHighlight=null;this.collectionView.filter=null;return}}this._toSearch&&clearTimeout(this._toSearch);e!=this.getDisplayText()&&(this._toSearch=setTimeout((function(){t._toSearch=null;var e=t.text.trim();if(e.length>=t._minLength&&e!=t._query){t._query=e;e=escapeRegExp(e);var i=escapeHtml(e),n=t.caseSensitiveSearch?\"g\":\"ig\";t._rxSrch=new RegExp(\"(?=.*\"+e.replace(/ /g,\")(?=.*\")+\")\",n);t._rxHighlight=new RegExp(\"(\"+i.replace(/\\s+/g,\"|\")+\")\",n);var o=t.itemsSourceFunction;isFunction(o)?o(t._query,t.maxItems,t._itemsSourceFnCallBackBnd):t._updateItems()}}),this._delay))}};AutoComplete.prototype._itemSourceFunctionCallback=function(e){this._inCallback=!0;var t=asCollectionView(e);t&&t.moveCurrentToPosition(-1);this.itemsSource=t;this._inCallback=!1;if(this.containsFocus()){var i=this._tbx,n=i.selectionStart,o=i.selectionEnd;this.isDroppedDown=!0;setSelectionRange(i,n,o);this.refresh()}};AutoComplete.prototype.onIsDroppedDownChanged=function(t){e.prototype.onIsDroppedDownChanged.call(this,t);if(this.containsFocus()&&!this.isTouching&&this.selectedIndex<0){var i=this.collectionView.items,n=this.text;1==i.length&&i[0]==n?this.selectedIndex=0:setSelectionRange(this._tbx,n.length)}this._query=\"\"};AutoComplete.prototype._updateItems=function(){var e=this.collectionView;if(e){this._inCallback=!0;e.beginUpdate();this._itemCount=0;e.filter=this._filter.bind(this);e.moveCurrentToPosition(-1);e.endUpdate();this._inCallback=!1;var t=e.items.length,i=this._tbx,n=i.selectionStart,o=i.selectionEnd;this.isDroppedDown=t>0&&this.containsFocus();t||this.isEditable||(this.selectedIndex=-1);this.isDroppedDown&&setSelectionRange(i,n,o);this.refresh()}};AutoComplete.prototype._filter=function(e){if(this._itemCount>=this._maxItems)return!1;var t=this._getItemText(e,!1);this._srchProps&&this._srchProps.forEach((function(i){var n=e[i];null!=n&&(t+=\"\\0\"+n)}));this.isContentHtml&&(t=t.replace(/(<[^>]*>|&[^;]*;)/g,\"\"));if(this._rxSrch.test(t)){this._itemCount++;return!0}return!1};AutoComplete.prototype._getItemText=function(e,t){var i=e?e.toString():\"\",n=t&&this.headerPath?this._pathHdr:this._lbx._pathDisplay;n&&(i=null!=(i=n.getValue(e))?i.toString():\"\");return i};AutoComplete.prototype._formatListItem=function(e,t){var i=this;this._cssMatch&&this._rxHighlight&&(t.item.innerHTML=t.item.innerHTML.replace(this._rxHighlight,(function(e,t,n,o){return i._enclosed(o,n,\"<\",\">\")||i._enclosed(o,n,\"&\",\";\")?e:''+e+\"\"})))};AutoComplete.prototype._enclosed=function(e,t,i,n){for(var o=t;o>=0&&e[o]!=n;o--)if(e[o]==i)for(var s=t;s-1&&!this._notAddItm&&this._addItem(!0);this._notAddItm=!1;e.prototype.onIsDroppedDownChanged.call(this,t)};MultiAutoComplete.prototype.refresh=function(t){void 0===t&&(t=!0);e.prototype.refresh.call(this,t);if(this.hostElement){this._initSeltems();this.isDroppedDown||this._refreshHeader()}};MultiAutoComplete.prototype._keydown=function(t){if(!this.isReadOnly){if(!t.defaultPrevented)switch(t.keyCode){case Key.Back:this._lastInputValue=this._tbx.value;break;case Key.Enter:this._itemOff();this._addItem(!0);isIE&&setSelectionRange(this._tbx,0,0);break;case Key.Tab:if(this.isDroppedDown){this._addItem(!1);this._tbx.value=\"\";this._lbx.selectedIndex=-1;t.preventDefault()}else this._updateFocus();break;case Key.Space:if(\"\"!==this._tbx.value)return;if(!this.isDroppedDown&&!this._tbx.disabled){this.isDroppedDown=!0;this._clearSelIndex()}break;case Key.Escape:this.isDroppedDown&&(this._notAddItm=!0);break;case Key.Left:this._itemOn(!this.rightToLeft);break;case Key.Right:this._itemOn(!!this.rightToLeft);break;case Key.Up:case Key.Down:var i=getActiveElement();if(t.altKey){if(this._tbx==i){this.isDroppedDown=!this.isDroppedDown;this.isDroppedDown||this._tbx.focus();t.preventDefault();return}}else if(this._tbx!==i)return;default:if(t.keyCode===Key.Back||t.keyCode===Key.Delete)return;this._itemOff();null!=this._maxSelItems&&this._selItems.length>=this._maxSelItems&&t.preventDefault()}this._tbx.disabled||e.prototype._keydown.call(this,t)}};MultiAutoComplete.prototype._updateState=function(){e.prototype._updateState.call(this);this._wjTpl&&(hasClass(this.hostElement,\"wj-state-focused\")||this._itemOff())};MultiAutoComplete.prototype._keyup=function(e){if(!this.isReadOnly&&!e.defaultPrevented)switch(e.keyCode){case Key.Back:0===this._tbx.value.length&&0===this._lastInputValue.length&&this._delItem(!1);break;case Key.Delete:this._delItem(!0)}};MultiAutoComplete.prototype._addHelperInput=function(){var e=document.createElement(\"input\");e.type=\"text\";e.tabIndex=-1;e.className=\"wj-token-helper\";e.readOnly=!0;this._wjTpl.insertBefore(e,this._wjInput);this._helperInput=e};MultiAutoComplete.prototype._refreshHeader=function(){for(var e=this.hostElement.querySelectorAll(\".wj-token\"),t=0;tthis._maxSelItems&&(this._selItems=this._selItems.slice(0,this._maxSelItems))};MultiAutoComplete.prototype._updateFocus=function(){var e=this,t=this._wjTpl.querySelector(\".\"+MultiAutoComplete._clsActive);if(t){removeClass(t,MultiAutoComplete._clsActive);setTimeout((function(){e._tbx.focus()}))}else{this._clearSelIndex();removeClass(this.hostElement,\"wj-state-focused\")}};MultiAutoComplete.prototype._addItem=function(e){if(this.selectedItems.indexOf(this.selectedItem)>-1)this._clearSelIndex();else if(this.selectedIndex>-1){this._updateSelItems(this.selectedItem,!0);this._refreshHeader();e&&this._clearSelIndex();this._disableInput(!0)}};MultiAutoComplete.prototype._delItem=function(e){var t,i,n=this._wjTpl.querySelector(\".\"+MultiAutoComplete._clsActive),o=!1;if(!e||n){if(n){if((i=this._getItemIndex(n))>-1){t=this._selItems[i];o=!0}}else if(this._selItems.length>0){t=this._selItems[this._selItems.length-1];o=!0}if(o){this._updateSelItems(t,!1);this._refreshHeader();this._clearSelIndex();this._disableInput(!1)}this._tbx.focus()}};MultiAutoComplete.prototype._updateSelItems=function(e,t){if(t){this._selItems&&0!==this._selItems.length||(this._selItems=[]);if(null!=this._maxSelItems&&this._selItems.length>=this._maxSelItems)return;this._selItems.push(e)}else{var i=this._selItems.indexOf(e);this._selItems.splice(i,1)}this._hasSelectedMemeberPath()&&this._setSelItem(e,t);this.onSelectedItemsChanged()};MultiAutoComplete.prototype._createItem=function(e){var t=this,i=document.createElement(\"div\"),n=document.createElement(\"span\"),o=document.createElement(\"a\");i.appendChild(n);i.appendChild(o);i.className=\"wj-token\";n.className=\"wj-token-label\";n.innerHTML=e;o.className=\"wj-token-close\";o.href=\"#\";o.tabIndex=-1;o.text=\"×\";i.style.cssFloat=this.rightToLeft?\"right\":\"left\";this.addEventListener(i,\"click\",(function(e){t._helperInput.focus();var n=t._wjTpl.querySelector(\".\"+MultiAutoComplete._clsActive);n&&removeClass(n,MultiAutoComplete._clsActive);addClass(i,MultiAutoComplete._clsActive);e.stopPropagation();e.preventDefault()}));this.addEventListener(o,\"click\",(function(e){if(!t.isReadOnly){var n=t._getItemIndex(i);if(n>-1){var o=t._selItems[n];t._updateSelItems(o,!1)}t._wjTpl.removeChild(i);t._adjustInputWidth();t._disableInput(!1);t._tbx.focus();e.stopPropagation();e.preventDefault()}}));return i};MultiAutoComplete.prototype._itemOn=function(e){var t,i,n,o=getActiveElement();if((this._tbx!=o||0===this._tbx.value.length)&&0!==(t=this._wjTpl.querySelectorAll(\".wj-token\")).length){i=this._wjTpl.querySelector(\".\"+MultiAutoComplete._clsActive);n=this._getItemIndex(i);if(e){if(0===n)return;if(-1===n){addClass(t[t.length-1],MultiAutoComplete._clsActive);this._helperInput.focus()}else{removeClass(i,MultiAutoComplete._clsActive);addClass(t[n-1],MultiAutoComplete._clsActive);this._helperInput.focus()}}else if(!e){if(-1===n)return;if(n!==t.length-1){removeClass(i,MultiAutoComplete._clsActive);addClass(t[n+1],MultiAutoComplete._clsActive);this._helperInput.focus()}else{removeClass(i,MultiAutoComplete._clsActive);this._tbx.focus()}}}};MultiAutoComplete.prototype._itemOff=function(){var e=this._wjTpl.querySelector(\".\"+MultiAutoComplete._clsActive);e&&removeClass(e,MultiAutoComplete._clsActive)};MultiAutoComplete.prototype._initSeltems=function(){if(this.selectedMemberPath){this._selItems.splice(0,this._selItems.length);var e=this.collectionView;if(e)for(var t=0;t-1?this._tabs[e]:null},set:function(e){for(var t=-1,n=0;n0&&(t=0);t>-1?this.selectedIndex=t:this.selectedIndex>-1&&this.selectedIndex-1&&r-1){var n=this._tabs[t];!n.isDisabled&&n.isVisible&&(this.selectedIndex=t)}};TabPanel.prototype._keydown=function(e){if(!e.defaultPrevented){var t=this._getTabIndex(getActiveElement());if(t>-1){var n=this._getKeyCode(e);switch(n){case Key.Left:case Key.Up:case Key.Right:case Key.Down:case Key.Home:case Key.PageUp:case Key.End:case Key.PageDown:switch(n){case Key.Left:case Key.Up:t=this._getNextIndex(t,-1);break;case Key.Right:case Key.Down:t=this._getNextIndex(t,1);break;case Key.Home:case Key.PageUp:t=this._getNextIndex(-1,1);break;case Key.End:case Key.PageDown:t=this._getNextIndex(this._tabs.length,-1)}t>-1&&(this._autoSwitch?this.selectedIndex=t:this._tabs[t].header.focus());e.preventDefault();break;case Key.Enter:case Key.Space:if(t>-1){this._tabs[t].header.click()}e.preventDefault()}}}};TabPanel.prototype._getTabIndex=function(e){var t=closest(e,\".wj-tabheader\");if(t&&closest(t,\".wj-tabpanel\")==this.hostElement)for(var n=0;n-1&&n-1?this._panes[e]:null},set:function(e){for(var t=-1,n=0;n-1?this.selectedIndex=t:this.selectedIndex>-1&&this.selectedIndex-1){var n=this._panes,i=n[t];if(!i.isDisabled&&i.isVisible){if(!hasClass(i.header,_CLS_ACTIVE)||this._autoSwitching)this.selectedIndex=t;else{for(var r=-1,o=1;o-1||this._alCollapseAll){this._hidePane=i;this.selectedIndex=r}}}}};Accordion.prototype._keydown=function(e){if(!e.defaultPrevented){var t=this._getPaneIndex(getActiveElement());if(t>-1){var n=this._getKeyCode(e);switch(n){case Key.Left:case Key.Up:case Key.Right:case Key.Down:case Key.Home:case Key.PageUp:case Key.End:case Key.PageDown:switch(n){case Key.Left:case Key.Up:t=this._getNextIndex(t,-1);break;case Key.Right:case Key.Down:t=this._getNextIndex(t,1);break;case Key.Home:case Key.PageUp:t=this._getNextIndex(-1,1);break;case Key.End:case Key.PageDown:t=this._getNextIndex(this._panes.length,-1)}if(t>-1){var i=this._panes[t];if(this._autoSwitch){this._autoSwitching=!0;i.header.click();this._autoSwitching=!1}else i.header.focus()}e.preventDefault();break;case Key.Enter:case Key.Space:if(t>-1){(i=this._panes[t]).header.click()}e.preventDefault()}}}};Accordion.prototype._getPaneIndex=function(e){var t=closest(e,\".wj-header\");if(t&&closest(t,\".wj-accordion\")==this.hostElement)for(var n=0;n-1&&ni.bottom?t.scrollTop+=n.bottom-i.bottom:n.top=1?d.opacity=h.overflowY=\"\":(e*a).toFixed(0)+\"px\"}),TreeView._AN_DLY)}}}else toggleClass(r,TreeView._CCLD,e);if(!e&&n){var c=r.parentElement;if(TreeNode._isNodeList(c))for(var u=0;u-1?this._bindings[n].getValue(e):null};_BindingArray.prototype.setValue=function(e,t,n){var i=Math.min(t,this._maxLevel);i>-1&&this._bindings[i].setValue(e,n)};return _BindingArray}();export{_BindingArray};var TreeView=function(e){__extends(TreeView,e);function TreeView(t,n){var i=e.call(this,t)||this;i._itmPath=new _BindingArray(\"items\");i._chkPath=new _BindingArray;i._dspPath=new _BindingArray(\"header\");i._imgPath=new _BindingArray;i._html=!1;i._animated=!0;i._chkOnClick=!1;i._xpndOnClick=!0;i._xpndOnLoad=!0;i._autoColl=!0;i._showChk=!1;i._srch=\"\";i._isReadOnly=!0;i.itemsSourceChanged=new Event;i.loadingItems=new Event;i.loadedItems=new Event;i.itemClicked=new Event;i.selectedItemChanged=new Event;i.checkedItemsChanged=new Event;i.isCollapsedChanging=new Event;i.isCollapsedChanged=new Event;i.isCheckedChanging=new Event;i.isCheckedChanged=new Event;i.formatItem=new Event((function(){i.invalidate()}));i.dragStart=new Event;i.dragOver=new Event;i.drop=new Event;i.dragEnd=new Event;i.nodeEditStarting=new Event;i.nodeEditStarted=new Event;i.nodeEditEnding=new Event;i.nodeEditEnded=new Event;var r=i.getTemplate();i.applyTemplate(\"wj-control wj-content wj-treeview\",r,{_root:\"root\"});var o=i.hostElement;setAttribute(o,\"role\",\"tree\",!0);addClass(i._root,TreeView._CNDL);setAttribute(i._root,\"role\",\"group\",!0);i.addEventListener(o,\"mousedown\",i._mousedown.bind(i));i.addEventListener(o,\"click\",i._click.bind(i));i.addEventListener(o,\"keydown\",i._keydown.bind(i));i.addEventListener(o,\"keypress\",i._keypress.bind(i));i.addEventListener(o,\"wheel\",(function(e){o.scrollHeight>o.offsetHeight&&(e.deltaY<0&&0==o.scrollTop||e.deltaY>0&&o.scrollTop+o.offsetHeight>=o.scrollHeight)&&e.preventDefault()}));i.addEventListener(o,\"blur\",(function(){i._edtNode&&!contains(i._edtNode.element,getActiveElement())&&i.finishEditing()}),!0);i.addEventListener(o,\"paste\",(function(e){if(i._edtNode&&!i.isContentHtml){var t=(e.clipboardData||window.clipboardData).getData(\"text\"),n=window.getSelection();if(t&&n.rangeCount){n.deleteFromDocument();n.getRangeAt(0).insertNode(document.createTextNode(t));e.preventDefault()}}}));i.initialize(n);i.refresh();return i}Object.defineProperty(TreeView.prototype,\"itemsSource\",{get:function(){return this._items},set:function(e){if(this._items!=e){this._items=asArray(e);this.onItemsSourceChanged();this._reload()}},enumerable:!0,configurable:!0});Object.defineProperty(TreeView.prototype,\"childItemsPath\",{get:function(){return this._itmPath.path},set:function(e){if(e!=this.childItemsPath){this._itmPath.path=e;this._reload()}},enumerable:!0,configurable:!0});Object.defineProperty(TreeView.prototype,\"displayMemberPath\",{get:function(){return this._dspPath.path},set:function(e){if(e!=this.displayMemberPath){this._dspPath.path=e;this._reload()}},enumerable:!0,configurable:!0});Object.defineProperty(TreeView.prototype,\"imageMemberPath\",{get:function(){return this._imgPath.path},set:function(e){if(e!=this.imageMemberPath){this._imgPath.path=e;this._reload()}},enumerable:!0,configurable:!0});Object.defineProperty(TreeView.prototype,\"checkedMemberPath\",{get:function(){return this._chkPath.path},set:function(e){if(e!=this.checkedMemberPath){this._chkPath.path=e;this._reload()}},enumerable:!0,configurable:!0});Object.defineProperty(TreeView.prototype,\"isContentHtml\",{get:function(){return this._html},set:function(e){if(e!=this._html){this._html=asBoolean(e);this._reload()}},enumerable:!0,configurable:!0});Object.defineProperty(TreeView.prototype,\"showCheckboxes\",{get:function(){return this._showChk},set:function(e){if(e!=this._showChk){this._showChk=asBoolean(e);this._reload()}},enumerable:!0,configurable:!0});Object.defineProperty(TreeView.prototype,\"autoCollapse\",{get:function(){return this._autoColl},set:function(e){this._autoColl=asBoolean(e)},enumerable:!0,configurable:!0});Object.defineProperty(TreeView.prototype,\"isAnimated\",{get:function(){return this._animated},set:function(e){e!=this._animated&&(this._animated=asBoolean(e))},enumerable:!0,configurable:!0});Object.defineProperty(TreeView.prototype,\"isReadOnly\",{get:function(){return this._isReadOnly},set:function(e){this._isReadOnly=asBoolean(e);toggleClass(this.hostElement,\"wj-state-readonly\",this.isReadOnly)},enumerable:!0,configurable:!0});TreeView.prototype.startEditing=function(e){if(this.isReadOnly)return!1;e||(e=this.selectedNode);if(!e||e.isDisabled)return!1;if(!this.finishEditing())return!1;var t=e.element.querySelector(\".\"+TreeView._CNDT);if(!t)return!1;var n=new TreeNodeEventArgs(e);if(!this.onNodeEditStarting(n))return!1;t.tabIndex=0;t.focus();t.contentEditable=\"true\";t.style.cursor=\"auto\";var i=document.createRange();i.selectNodeContents(t);var r=getSelection();r.removeAllRanges();r.addRange(i);t.focus();setAttribute(t,\"autocomplete\",\"off\");setAttribute(t,\"autocorrect\",\"off\");this._edtNode=e;this.onNodeEditStarted(n);return!0};TreeView.prototype.finishEditing=function(e){var t=this._edtNode;if(t){var n=t.element.querySelector(\".\"+TreeView._CNDT);if(!n)return!1;var i=new TreeNodeEventArgs(t);if(!this.onNodeEditEnding(i))return!1;var r=t.dataItem,o=t.level;this.isContentHtml?e?n.innerHTML=this._dspPath.getValue(r,o):this._dspPath.setValue(r,o,n.innerHTML):e?n.textContent=this._dspPath.getValue(r,o):this._dspPath.setValue(r,o,n.textContent);document.createRange().selectNodeContents(n);getSelection().removeAllRanges();n.contentEditable=\"false\";n.style.cursor=\"\";this._edtNode=null;this.onNodeEditEnded(i)}return!0};Object.defineProperty(TreeView.prototype,\"allowDragging\",{get:function(){return null!=this._dd},set:function(e){if(e!=this.allowDragging){if(asBoolean(e))this._dd=new _TreeDragDropManager(this);else{this._dd.dispose();this._dd=null}for(var t=this.hostElement.querySelectorAll(\".\"+TreeView._CND),n=0;n input:checked.\"+e._CNDC,n=this._root.querySelectorAll(t);this._chkItems=[];for(var i=0;i-1;o.isChecked!=s&&(o.isChecked=s)}},enumerable:!0,configurable:!0});TreeView.prototype.checkAllItems=function(e){if(this.showCheckboxes)for(var t=TreeView,n=\".\"+t._CND+\".\"+t._CEMP,i=this._root.querySelectorAll(n),r=0;rt.offsetHeight)&&(r=t.querySelector(i));t.focus();if(r){e.preventDefault();e.stopPropagation();setTimeout((function(){r.indeterminate=!1;n.isChecked=!n.isChecked}))}if(!r){var a=(e.ctrlKey||e.metaKey)&&!n.hasPendingChildren,d=!1;if(s<=t.offsetHeight){a?this.collapseToLevel(n.isCollapsed?n.level+1:n.level):n.isCollapsed=!n.isCollapsed;d=!0}else if(this.expandOnClick&&n.isCollapsed){a?this.collapseToLevel(n.level):n.isCollapsed=!1;d=!0}d&&a&&this.selectedNode&&this.selectedNode.ensureVisible();d||this.isReadOnly||this.selectedNode&&this.selectedNode.equals(this._prevSel)&&this.startEditing()}this.selectedItem&&this.onItemClicked()}}};TreeView.prototype._keydown=function(e){if(!e.defaultPrevented){var t=this._getKeyCode(e),n=this._selNode,i=void 0,r=!0;if(!n)switch(t){case Key.Up:case Key.Down:case Key.Left:case Key.Right:case Key.Enter:case Key.Home:case Key.End:if(i=this.getFirstNode(!0,!0)){this.selectedNode=i;e.preventDefault();return}}if(n&&!n.isDisabled){switch(t){case Key.F2:this.startEditing();e.preventDefault();break;case Key.Escape:this.finishEditing(!0);e.preventDefault();break;case Key.Up:case Key.Down:this.finishEditing();break;case Key.Enter:if(this._edtNode){this.finishEditing();t=Key.Down}else{this.startEditing();e.preventDefault()}}if(this._edtNode)return;if(this.rightToLeft)switch(t){case Key.Left:t=Key.Right;break;case Key.Right:t=Key.Left}switch(t){case Key.Left:!n.isCollapsed&&n.hasChildren?n.isCollapsed=!0:(n=n.parentNode)&&n.select();break;case Key.Right:n.isCollapsed&&n.hasChildren&&(n.isCollapsed=!1);break;case Key.Up:i=n.previous(!0,!0);break;case Key.Down:i=n.next(!0,!0);break;case Key.Home:i=this.getFirstNode(!0,!0);break;case Key.End:i=this.getLastNode(!0,!0);break;case Key.Space:if(this.selectedItem){var o=n.checkBox;o&&(n.isChecked=!o.checked)}break;case Key.Enter:this.selectedItem&&this.onItemClicked();break;default:r=!1}if(r){e.preventDefault();i&&i.select()}}}};TreeView.prototype._keypress=function(e){var t=this;if(!e.defaultPrevented){if(e.ctrlKey||e.metaKey||e.altKey)return;if(e.target instanceof HTMLInputElement)return;if(this._edtNode)return;if(e.charCode>32&&this.startEditing(this.selectedNode)){var n=getActiveElement();if(contains(this._edtNode.element,n)){n.textContent=String.fromCharCode(e.charCode);e.preventDefault();var i=document.createRange();i.selectNodeContents(n);i.collapse(!1);var r=getSelection();r.removeAllRanges();r.addRange(i)}return}if(e.charCode>32||32==e.charCode&&this._srch){e.preventDefault();this._srch+=String.fromCharCode(e.charCode).toLowerCase();this._toSrch&&clearTimeout(this._toSrch);this._toSrch=setTimeout((function(){t._toSrch=null;t._srch=\"\"}),TreeView._AS_DLY);var o=this._findNext();if(null==o&&this._srch.length>1){this._srch=this._srch[this._srch.length-1];o=this._findNext()}null!=o&&(this.selectedItem=o)}}};TreeView.prototype._findNext=function(){if(this.hostElement&&this.selectedItem){var e=this.getNode(this.selectedItem),t=e,n=!1,i=!1;1==this._srch.length&&(i=!0);for(;t;){if(!t.isDisabled&&!i){if(0==t.element.textContent.trim().toLowerCase().indexOf(this._srch))return t.dataItem}var r=t.next(!0,!0);if(r==e&&n)break;if(!r&&!n){r=this.getFirstNode(!0,!0);n=!0}t=r;i=!1}}return null};TreeView.prototype._loadTree=function(e){var t=this,n=this._root;if(n){if(!this.onLoadingItems(new CancelEventArgs))return;this._isDirty=!1;var i=this.containsFocus(),r=this.selectedItem;this.selectedItem=null;this._chkItems=null;this._ldLvl=-1;var o=void 0;if(e&&isFunction(window.Map)){o=new Map;for(var s=this.hostElement.querySelectorAll(\".\"+TreeView._CND),a=0;athis._ldLvl&&h){this._ldLvl=t;if(0==s.length){h=!1;addClass(a,TreeView._CCLD)}}else{h=!1;addClass(a,TreeView._CCLD);t0){var c=document.createElement(\"div\");c.tabIndex=-1;addClass(c,TreeView._CNDL);for(var u=0;u=t;r.hasChildren&&this._collapseToLevel(r.nodes,t,n+1)}}};TreeView.prototype._lazyLoadNode=function(e){var t=this.hostElement;if(!hasClass(t,TreeView._CLDG)){addClass(t,TreeView._CLDG);addClass(e.element,TreeView._CLDG);this.lazyLoadFunction(e,this._lazyLoadCallback.bind(e))}};TreeView.prototype._lazyLoadCallback=function(e){this.treeView._lazyLoadNodeDone(this,e)};TreeView.prototype._lazyLoadNodeDone=function(e,t){var n=TreeView;removeClass(e.element,n._CLDG);removeClass(this.hostElement,n._CLDG);var i=e.dataItem,r=e.level,o=asArray(t,!0);if(null==o||0==o.length){this._itmPath.setValue(i,r,null);addClass(e.element,n._CEMP)}else if(o.length){this._itmPath.setValue(i,r,o);var s=document.createElement(\"div\"),a=e.element;addClass(s,n._CNDL);a.parentElement.insertBefore(s,a.nextSibling);for(var d=0;d
    ';return TreeView}(Control);export{TreeView};var _TreeDragDropManager=function(){function _TreeDragDropManager(e){this._tree=asType(e,TreeView);this._dragstartBnd=this._dragstart.bind(this);this._dragoverBnd=this._dragover.bind(this);this._dropBnd=this._drop.bind(this);this._dragendBnd=this._dragend.bind(this);var t=this._tree,n=t.hostElement;t.addEventListener(n,\"dragstart\",this._dragstartBnd);t.addEventListener(n,\"dragover\",this._dragoverBnd);t.addEventListener(n,\"dragleave\",this._dragoverBnd);t.addEventListener(n,\"drop\",this._dropBnd);t.addEventListener(n,\"dragend\",this._dragendBnd);t.addEventListener(n,\"keydown\",this._keydown)}_TreeDragDropManager.prototype.dispose=function(){var e=this._tree,t=e.hostElement;e.removeEventListener(t,\"dragstart\",this._dragstartBnd);e.removeEventListener(t,\"dragover\",this._dragoverBnd);e.removeEventListener(t,\"dragleave\",this._dragoverBnd);e.removeEventListener(t,\"drop\",this._dropBnd);e.removeEventListener(t,\"dragend\",this._dragendBnd);e.removeEventListener(t,\"keydown\",this._keydown);this._showDragMarker()};_TreeDragDropManager.prototype._dragstart=function(e){if(!e.defaultPrevented){var t=this._tree,n=closestClass(e.target,TreeView._CND),i=_TreeDragDropManager;i._drgSrc=TreeNode._isNode(n)?new TreeNode(t,n):null;if(i._drgSrc){var r=new TreeNodeEventArgs(i._drgSrc);t.onDragStart(r)||(i._drgSrc=null)}if(i._drgSrc&&e.dataTransfer){_startDrag(e.dataTransfer,\"copyMove\");e.stopPropagation()}else e.preventDefault()}};_TreeDragDropManager.prototype._dragover=function(e){this._handleDragDrop(e,!1)};_TreeDragDropManager.prototype._drop=function(e){this._handleDragDrop(e,!0)};_TreeDragDropManager.prototype._dragend=function(e){_TreeDragDropManager._drgSrc=null;this._showDragMarker();this._tree.onDragEnd()};_TreeDragDropManager.prototype._keydown=function(e){e.defaultPrevented||e.keyCode==Key.Escape&&this._dragendBnd(null)};_TreeDragDropManager.prototype._handleDragDrop=function(e,t){var n,i,r=this._tree,o=_TreeDragDropManager,s=DropPosition,a=s.Into;if(!e.defaultPrevented&&o._drgSrc){var d=document.elementFromPoint(e.clientX,e.clientY),l=closestClass(d,TreeView._CND);if(null==l){var h=Control.getControl(closest(d,\".wj-treeview\"));h instanceof TreeView&&0==h.totalItemCount&&(l=h.hostElement)}l==o._drgSrc.element&&(l=null);if(l){i=l.getBoundingClientRect();var c=new TreeNode(r,l),u=c.hasPendingChildren?i.height/2:i.height/3;if(null==c.element){(i=Rect.fromBoundingRect(i)).inflate(-12,-12);a=s.Before}else if(e.clientYi.bottom-u||c.hasPendingChildren){a=s.After;if(c.hasChildren&&!c.isCollapsed&&!c.hasPendingChildren){a=s.Before;i=(l=(c=c.next(!0,!1)).element).getBoundingClientRect()}}if(o._drgSrc._contains(c))l=null;else{(n=new TreeNodeDragDropEventArgs(o._drgSrc,c,a)).cancel=o._drgSrc.treeView!=c.treeView;r.onDragOver(n)||(l=null)}}if(l)if((a=n.position)==s.Before){var p=n.dragSource.next(!0,!1);p&&p.element==l&&(l=null)}else if(a==s.After){var _=n.dragSource.previous(!0,!1);_&&_.element==l&&(l=null)}if(l&&!t){e.dataTransfer.dropEffect=\"move\";e.preventDefault();e.stopPropagation();this._showDragMarker(i,a)}else this._showDragMarker();if(l&&t&&r.onDrop(n)){r.hostElement.focus();var f=n.dragSource;f.move(n.dropTarget,n.position);f.ensureVisible();f.select()}}};_TreeDragDropManager.prototype._showDragMarker=function(e,t){var n=this._tree,i=_TreeDragDropManager._dMarker.parentElement;if(e){var r=n.hostElement.getBoundingClientRect(),o=t==DropPosition.After?e.bottom:e.top,s={top:Math.round(o-r.top+n.hostElement.scrollTop-2),width:\"75%\",height:t==DropPosition.Into?e.height:4,opacity:t==DropPosition.Into?\"0.15\":\"\"};n.rightToLeft?s.right=Math.round(r.right-e.right):s.left=Math.round(e.left-r.left);setCss(_TreeDragDropManager._dMarker,s);i!=n._root&&n._root.appendChild(_TreeDragDropManager._dMarker)}else i&&i.removeChild(_TreeDragDropManager._dMarker)};_TreeDragDropManager._dMarker=\"undefined\"!=typeof window?createElement('
     
    '):null;return _TreeDragDropManager}();export{_TreeDragDropManager};_registerModule(\"wijmo.nav\",selfModule);","/*!\n *\n * Wijmo Library 5.20201.680\n * http://wijmo.com/\n *\n * Copyright(c) GrapeCity, Inc. All rights reserved.\n *\n * Licensed under the GrapeCity Commercial License.\n * sales@wijmo.com\n * wijmo.com/products/wijmo-5/license/\n *\n */\n\nvar __extends=this&&this.__extends||function(){var extendStatics=function(e,t){return(extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)};return function(e,t){extendStatics(e,t);function __(){this.constructor=e}e.prototype=null===t?Object.create(t):(__.prototype=t.prototype,new __)}}();import*as selfModule from\"@grapecity/wijmo\";var Binding=function(){function Binding(e){this.path=e}Object.defineProperty(Binding.prototype,\"path\",{get:function(){return this._path},set:function(e){this._path=e;this._parts=e?e.split(\".\"):[];for(var t=0;t-1){this._parts[t]=n.substr(0,r);this._parts.splice(++t,0,parseInt(n.substr(r+1)))}}this._key=1==this._parts.length?this._parts[0]:null},enumerable:!0,configurable:!0});Binding.prototype.getValue=function(e){if(e){if(this._key)return e[this._key];if(this._path&&this._path in e)return e[this._path];for(var t=0;t0;this._handlers.length=0;e&&isFunction(this._handlersChanged)&&this._handlersChanged()};Event.prototype.raise=function(e,t){void 0===t&&(t=EventArgs.empty);for(var n=this._handlers,r=0;r0},enumerable:!0,configurable:!0});Object.defineProperty(Event.prototype,\"handlerCount\",{get:function(){return this._handlers.length},enumerable:!0,configurable:!0});return Event}();export{Event};var EventArgs=function(){function EventArgs(){}EventArgs.empty=new EventArgs;return EventArgs}();export{EventArgs};var CancelEventArgs=function(e){__extends(CancelEventArgs,e);function CancelEventArgs(){var t=null!==e&&e.apply(this,arguments)||this;t.cancel=!1;return t}return CancelEventArgs}(EventArgs);export{CancelEventArgs};var PropertyChangedEventArgs=function(e){__extends(PropertyChangedEventArgs,e);function PropertyChangedEventArgs(t,n,r){var i=e.call(this)||this;i._name=t;i._oldVal=n;i._newVal=r;return i}Object.defineProperty(PropertyChangedEventArgs.prototype,\"propertyName\",{get:function(){return this._name},enumerable:!0,configurable:!0});Object.defineProperty(PropertyChangedEventArgs.prototype,\"oldValue\",{get:function(){return this._oldVal},enumerable:!0,configurable:!0});Object.defineProperty(PropertyChangedEventArgs.prototype,\"newValue\",{get:function(){return this._newVal},enumerable:!0,configurable:!0});return PropertyChangedEventArgs}(EventArgs);export{PropertyChangedEventArgs};var RequestErrorEventArgs=function(e){__extends(RequestErrorEventArgs,e);function RequestErrorEventArgs(t,n){var r=e.call(this)||this;r._xhr=t;r._msg=n;return r}Object.defineProperty(RequestErrorEventArgs.prototype,\"request\",{get:function(){return this._xhr},enumerable:!0,configurable:!0});Object.defineProperty(RequestErrorEventArgs.prototype,\"message\",{get:function(){return this._msg},set:function(e){this._msg=e},enumerable:!0,configurable:!0});return RequestErrorEventArgs}(CancelEventArgs);export{RequestErrorEventArgs};export var NotifyCollectionChangedAction;!function(e){e[e.Add=0]=\"Add\";e[e.Remove=1]=\"Remove\";e[e.Change=2]=\"Change\";e[e.Reset=3]=\"Reset\"}(NotifyCollectionChangedAction||(NotifyCollectionChangedAction={}));var NotifyCollectionChangedEventArgs=function(e){__extends(NotifyCollectionChangedEventArgs,e);function NotifyCollectionChangedEventArgs(t,n,r){void 0===t&&(t=NotifyCollectionChangedAction.Reset);void 0===n&&(n=null);void 0===r&&(r=-1);var i=e.call(this)||this;i.action=t;i.item=n;i.index=r;return i}NotifyCollectionChangedEventArgs.reset=new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Reset);return NotifyCollectionChangedEventArgs}(EventArgs);export{NotifyCollectionChangedEventArgs};var SortDescription=function(){function SortDescription(e,t){this._bnd=new Binding(e);this._asc=t}Object.defineProperty(SortDescription.prototype,\"property\",{get:function(){return this._bnd.path},enumerable:!0,configurable:!0});Object.defineProperty(SortDescription.prototype,\"ascending\",{get:function(){return this._asc},enumerable:!0,configurable:!0});return SortDescription}();export{SortDescription};var PageChangingEventArgs=function(e){__extends(PageChangingEventArgs,e);function PageChangingEventArgs(t){var n=e.call(this)||this;n.newPageIndex=t;return n}return PageChangingEventArgs}(CancelEventArgs);export{PageChangingEventArgs};var GroupDescription=function(){function GroupDescription(){}GroupDescription.prototype.groupNameFromItem=function(e,t){return\"\"};GroupDescription.prototype.namesMatch=function(e,t){return e===t};return GroupDescription}();export{GroupDescription};var PropertyGroupDescription=function(e){__extends(PropertyGroupDescription,e);function PropertyGroupDescription(t,n){var r=e.call(this)||this;r._bnd=new Binding(t);r._converter=n;return r}Object.defineProperty(PropertyGroupDescription.prototype,\"propertyName\",{get:function(){return this._bnd.path},enumerable:!0,configurable:!0});PropertyGroupDescription.prototype.groupNameFromItem=function(e,t){return this._converter?this._converter(e,this.propertyName):this._bnd.getValue(e)};PropertyGroupDescription.prototype.namesMatch=function(e,t){return e===t};return PropertyGroupDescription}(GroupDescription);export{PropertyGroupDescription};var _VERSION=\"5.20201.680\";export function getVersion(){return _VERSION}export function setLicenseKey(e){Control._licKey=e}export var Key;!function(e){e[e.Back=8]=\"Back\";e[e.Tab=9]=\"Tab\";e[e.Enter=13]=\"Enter\";e[e.Escape=27]=\"Escape\";e[e.Space=32]=\"Space\";e[e.PageUp=33]=\"PageUp\";e[e.PageDown=34]=\"PageDown\";e[e.End=35]=\"End\";e[e.Home=36]=\"Home\";e[e.Left=37]=\"Left\";e[e.Up=38]=\"Up\";e[e.Right=39]=\"Right\";e[e.Down=40]=\"Down\";e[e.Delete=46]=\"Delete\";e[e.F1=112]=\"F1\";e[e.F2=113]=\"F2\";e[e.F3=114]=\"F3\";e[e.F4=115]=\"F4\";e[e.F5=116]=\"F5\";e[e.F6=117]=\"F6\";e[e.F7=118]=\"F7\";e[e.F8=119]=\"F8\";e[e.F9=120]=\"F9\";e[e.F10=121]=\"F10\";e[e.F11=122]=\"F11\";e[e.F12=123]=\"F12\"}(Key||(Key={}));export var DataType;!function(e){e[e.Object=0]=\"Object\";e[e.String=1]=\"String\";e[e.Number=2]=\"Number\";e[e.Boolean=3]=\"Boolean\";e[e.Date=4]=\"Date\";e[e.Array=5]=\"Array\"}(DataType||(DataType={}));export function tryCast(e,t){return null==e?null:isString(t)?isFunction(e.implementsInterface)&&e.implementsInterface(t)?e:null:e instanceof t?e:null}export function isPrimitive(e){return isString(e)||isNumber(e)||isBoolean(e)||isDate(e)}export function isString(e){return\"string\"==typeof e}export function isNullOrWhiteSpace(e){return!e||!/\\S/.test(e)}export function isNumber(e){return\"number\"==typeof e}export function isInt(e){return isNumber(e)&&e==Math.round(e)}export function isBoolean(e){return\"boolean\"==typeof e}export function isFunction(e){return\"function\"==typeof e}export function isUndefined(e){return void 0===e}export function isDate(e){return(e instanceof Date||\"[object Date]\"===Object.prototype.toString.call(e))&&!isNaN(e.getTime())}export function isArray(e){return e instanceof Array||Array.isArray(e)||\"[object Array]\"===Object.prototype.toString.call(e)}export function isObject(e){return null!=e&&\"object\"==typeof e&&!isDate(e)&&!isArray(e)}export function isEmpty(e){for(var t in e)return!1;return!0}export function getUniqueId(e){for(var t=e,n=0;null!=document.getElementById(t);n++)t=e+n;return t}export function mouseToPage(e){if(e instanceof Point)return e;e.touches&&e.touches.length>0&&(e=e.touches[0]);if(isNumber(e.clientX)&&isNumber(e.clientY))return new Point(e.clientX+pageXOffset,e.clientY+pageYOffset);throw\"Mouse or touch event expected.\"}export function getType(e){return isNumber(e)?DataType.Number:isBoolean(e)?DataType.Boolean:isDate(e)?DataType.Date:isString(e)?DataType.String:isArray(e)?DataType.Array:DataType.Object}export function getTypes(e){var t=[];if(e&&e.length>0){var n=e[0];for(var r in n)for(var i=null,o=0;o-1){i=i.substr(0,r+1+t);e=parseFloat(i)}}else{var i=e.toFixed(t);e=parseFloat(i)}return e}export function format(e,t,n){if((e=asString(e)).match(/\\{.*\"count\".*:.*\"when\".*:.*\\}/))try{var r=JSON.parse(e);if(isString(r.count)){var i=t[r.count],o=r.when;if(isNumber(i)&&isObject(o)){var s=o[i]||o.other;isString(s)&&(e=s)}}}catch(e){}return e.replace(/\\{(.*?)(:(.*?))?\\}/g,(function(e,r,i,o){var s=e;if(r&&\"{\"!=r[0]&&t){s=new Binding(r).getValue(t);o&&(s=Globalize.format(s,o));n&&(s=n(t,r,o,s))}return null==s?\"\":s}))}export function glbz(){for(var e=[],t=0;t0&&i!=r){var o=e[i],s=t.match(/^:([a-z][0-9]*\\b)/i)||t.match(/^:'(.+?)'/)||t.match(/^:\"(.+?)\"/);if(s){o=Globalize.format(o,s[1]);t=t.substr(s[0].length)}else if(\":\"==t&&in&&(e=n);null!=t&&e0}export function toHeaderCase(e){return e&&e.length?e[0].toUpperCase()+e.substr(1).replace(/([a-z])([A-Z])/g,\"$1 $2\"):\"\"}export function escapeHtml(e){e&&isString(e)&&(e=e.replace(/[&<>\"'\\/]/g,(function(e){return _ENTITYMAP[e]})));return e}var _ENTITYMAP={\"&\":\"&\",\"<\":\"<\",\">\":\">\",'\"':\""\",\"'\":\"'\",\"/\":\"/\"};export function escapeRegExp(e){return e.replace(/([.?*+^$[\\]\\\\(){}|-])/g,\"\\\\$1\")}export function toPlainText(e){var t=e;if(t.indexOf(\"<\")>-1){var n=document.createElement(\"div\");n.innerHTML=t;t=n.textContent}return t}export function hasClass(e,t){if(e&&t){if(e instanceof HTMLElement&&e.classList&&!isIE9())return e.classList.contains(t);if(e.getAttribute){var n=new RegExp(\"(\\\\s|^)\"+t+\"(\\\\s|$)\");return e&&n.test(e.getAttribute(\"class\"))}}return!1}export function addClass(e,t){if(e&&t){if(e instanceof HTMLElement&&e.classList&&!isIE9()){t.indexOf(\" \")<0?e.classList.add(t):t.split(\" \").forEach((function(t){e.classList.add(t)}));return}e.setAttribute&&t.split(\" \").forEach((function(t){if(!hasClass(e,t)){var n=e.getAttribute(\"class\");e.setAttribute(\"class\",n?n+\" \"+t:t)}}))}}export function removeClass(e,t){if(e&&t){if(e instanceof HTMLElement&&e.classList&&!isIE9()){t.indexOf(\" \")<0?e.classList.remove(t):t.split(\" \").forEach((function(t){e.classList.remove(t)}));return}e.setAttribute&&t.split(\" \").forEach((function(t){if(hasClass(e,t)){var n=new RegExp(\"((\\\\s|^)\"+t+\"(\\\\s|$))\",\"g\"),r=e.getAttribute(\"class\");(r=r.replace(n,\" \").replace(/ +/g,\" \").trim())?e.setAttribute(\"class\",r):e.removeAttribute(\"class\")}}))}}export function toggleClass(e,t,n){null==n&&(n=!hasClass(e,t));n?addClass(e,t):removeClass(e,t)}export function setAttribute(e,t,n,r){e&&(null!=n?r&&e.getAttribute(t)||e.setAttribute(t,n.toString()):e.removeAttribute(t))}export function setAriaLabel(e,t){setAttribute(e,\"aria-label\",t)}export function setSelectionRange(e,t,n){void 0===n&&(n=t);assert(e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement,\"INPUT or TEXTAREA element expected\");if(contains(document.body,e)&&!e.disabled&&e.offsetHeight){try{e.setSelectionRange(t,n,\"backward\")}catch(e){}try{e.focus();return!0}catch(e){}}return!1}export function disableAutoComplete(e){var t=\"autocomplete\",n=e.getAttribute(t);n&&\"on\"!=n||e.setAttribute(t,\"off\");\"autocorrect,autocapitalize,spellcheck\".split(\",\").forEach((function(t){e.setAttribute(t,\"spellcheck\"==t?\"false\":\"off\")}))}export function removeChild(e){return e&&e.parentNode?e.parentNode.removeChild(e):null}export function getActiveElement(){var e=document.activeElement;if(e){var t=e.shadowRoot;t&&t.activeElement&&(e=t.activeElement)}return e}export function moveFocus(e,t){var n=_getFocusableElements(e),r=0;if(t){var i=n.indexOf(getActiveElement());i>-1&&(r=(i+t+n.length)%n.length)}if(r0&&i.tabIndex>-1&&!i.disabled&&!closest(i,\"[disabled],.wj-state-disabled\")){if(i instanceof HTMLAnchorElement&&!i.hasAttribute(\"href\"))continue;if(isIE()&&!i.hasAttribute(\"tabindex\")){if(i instanceof HTMLDivElement)continue;var o=Control.getControl(closest(i,\".wj-flexgrid\"));if(o&&0==o.keyActionTab)continue}!Control.getControl(i)&&_getFocusableElements(i).length||t.push(i)}}return t}export function saveFile(e,t,n){void 0===n&&(n=\"text/plain\");(n.match(/\\bcsv\\b/i)||t.match(/\\.csv$/i))&&(e=\"\\ufeff\"+e);var r=new Blob([e],{type:n});if(isFunction(navigator.msSaveBlob))navigator.msSaveBlob(r,t);else{var i=URL.createObjectURL(r),o=createElement('',document.body,{display:\"none\"});o.click();o.remove();URL.revokeObjectURL(i)}}export function getElement(e){return e instanceof Element?e:isString(e)?document.querySelector(e):e&&e.jquery?e[0]:null}export function createElement(e,t,n){e=e.replace(/\\bstyle\\s*=\\s*\"/g,'_wj-style=\"');var r=document.createElement(\"div\");r.innerHTML=e;if(e.indexOf(\"_wj-style\")>-1)for(var i=r.querySelectorAll(\"[_wj-style]\"),_loop_1=function(e){var t=i[e];t.getAttribute(\"_wj-style\").split(\";\").forEach((function(e){var n=e.split(\":\");2==n.length&&(t.style[n[0].trim()]=n[1].trim())}));t.removeAttribute(\"_wj-style\")},o=0;o=1&&clearInterval(o)}),n);return o}var Point=function(){function Point(e,t){void 0===e&&(e=0);void 0===t&&(t=0);this.x=asNumber(e);this.y=asNumber(t)}Point.prototype.equals=function(e){return e instanceof Point&&this.x==e.x&&this.y==e.y};Point.prototype.clone=function(){return new Point(this.x,this.y)};return Point}();export{Point};var Size=function(){function Size(e,t){void 0===e&&(e=0);void 0===t&&(t=0);this.width=asNumber(e);this.height=asNumber(t)}Size.prototype.equals=function(e){return e instanceof Size&&this.width==e.width&&this.height==e.height};Size.prototype.clone=function(){return new Size(this.width,this.height)};return Size}();export{Size};var Rect=function(){function Rect(e,t,n,r){this.left=asNumber(e);this.top=asNumber(t);this.width=asNumber(n);this.height=asNumber(r)}Object.defineProperty(Rect.prototype,\"right\",{get:function(){return this.left+this.width},enumerable:!0,configurable:!0});Object.defineProperty(Rect.prototype,\"bottom\",{get:function(){return this.top+this.height},enumerable:!0,configurable:!0});Rect.prototype.equals=function(e){return e instanceof Rect&&this.left==e.left&&this.top==e.top&&this.width==e.width&&this.height==e.height};Rect.prototype.clone=function(){return new Rect(this.left,this.top,this.width,this.height)};Rect.fromBoundingRect=function(e){if(null!=e.left)return new Rect(e.left,e.top,e.width,e.height);if(null!=e.x)return new Rect(e.x,e.y,e.width,e.height);assert(!1,\"Invalid source rectangle.\")};Rect.union=function(e,t){var n=Math.min(e.left,t.left),r=Math.min(e.top,t.top);return new Rect(n,r,Math.max(e.right,t.right)-n,Math.max(e.bottom,t.bottom)-r)};Rect.intersection=function(e,t){var n=Math.max(e.left,t.left),r=Math.max(e.top,t.top);return new Rect(n,r,Math.min(e.right,t.right)-n,Math.min(e.bottom,t.bottom)-r)};Rect.prototype.contains=function(e){if(e instanceof Point)return e.x>=this.left&&e.x<=this.right&&e.y>=this.top&&e.y<=this.bottom;if(e instanceof Rect){var t=e;return t.left>=this.left&&t.right<=this.right&&t.top>=this.top&&t.bottom<=this.bottom}assert(!1,\"Point or Rect expected.\")};Rect.prototype.inflate=function(e,t){return new Rect(this.left-e,this.top-t,this.width+2*e,this.height+2*t)};return Rect}();export{Rect};var DateTime=function(){function DateTime(){}DateTime.addDays=function(e,t){var n=e.getTime()+24*t*3600*1e3;return new Date(n)};DateTime.addMonths=function(e,t){(e=new Date(e.getTime())).setMonth(e.getMonth()+t);return e};DateTime.addYears=function(e,t){(e=new Date(e.getTime())).setFullYear(e.getFullYear()+t);return e};DateTime.addHours=function(e,t){var n=e.getTime()+3600*t*1e3;return new Date(n)};DateTime.addMinutes=function(e,t){var n=e.getTime()+60*t*1e3;return new Date(n)};DateTime.addSeconds=function(e,t){var n=e.getTime()+1e3*t;return new Date(n)};DateTime.sameDate=function(e,t){return isDate(e)&&isDate(t)&&e.getFullYear()==t.getFullYear()&&e.getMonth()==t.getMonth()&&e.getDate()==t.getDate()};DateTime.sameTime=function(e,t){return isDate(e)&&isDate(t)&&e.getHours()==t.getHours()&&e.getMinutes()==t.getMinutes()&&e.getSeconds()==t.getSeconds()&&e.getMilliseconds()==t.getMilliseconds()};DateTime.equals=function(e,t){return isDate(e)&&isDate(t)&&e.getTime()==t.getTime()};DateTime.fromDateTime=function(e,t){if(!e&&!t)return null;e||(e=t);t||(t=e);return DateTime.newDate(e.getFullYear(),e.getMonth(),e.getDate(),t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds())};DateTime.toFiscal=function(e,t){var n=culture.Globalize.calendar;return isArray(n.fiscalYearOffsets)?DateTime.addMonths(e,-n.fiscalYearOffsets[t?0:1]):e};DateTime.fromFiscal=function(e,t){var n=culture.Globalize.calendar;return isArray(n.fiscalYearOffsets)?DateTime.addMonths(e,+n.fiscalYearOffsets[t?0:1]):e};DateTime.newDate=function(e,t,n,r,i,o,s){if(null==e||null==t||null==n){var a=new Date;null==e&&(e=a.getFullYear());null==t&&(t=a.getMonth());null==n&&(n=a.getDate())}null==r&&(r=0);null==i&&(i=0);null==o&&(o=0);null==s&&(s=0);var l=new Date(e,t,n,r,i,o,s),c=l.getFullYear();e<100&&c>=1900&&l.setFullYear(l.getFullYear()-1900);return l};DateTime.clone=function(e){return DateTime.fromDateTime(e,e)};return DateTime}();export{DateTime};export function httpRequest(e,t){var n=t||{},r=n.method?asString(n.method).toUpperCase():\"GET\",i=null==n.async||asBoolean(n.async),o=n.data;if(null!=o&&\"GET\"==r){var s=[];for(var a in o){var l=o[a];isDate(l)&&(l=l.toJSON());s.push(a+\"=\"+encodeURI(l))}if(s.length){var c=e.indexOf(\"?\")<0?\"?\":\"&\";e+=c+s.join(\"&\")}o=null}var u=new XMLHttpRequest;u.URL_DEBUG=e;var h=!1;if(null!=o&&!isString(o)){h=isObject(o);o=JSON.stringify(o)}u.onload=function(){if(4==u.readyState){u.status<300?n.success&&asFunction(n.success)(u):n.error&&asFunction(n.error)(u);n.complete&&asFunction(n.complete)(u)}};u.onerror=function(){if(!isFunction(n.error))throw\"HttpRequest Error: \"+u.status+\" \"+u.statusText;n.error(u)};u.open(r,e,i,n.user,n.password);n.user&&n.password&&u.setRequestHeader(\"Authorization\",\"Basic \"+btoa(n.user+\":\"+n.password));h&&u.setRequestHeader(\"Content-Type\",\"application/json\");if(n.requestHeaders)for(var p in n.requestHeaders)u.setRequestHeader(p,n.requestHeaders[p]);isNumber(n.timeout)&&(u.timeout=n.timeout);isFunction(n.beforeSend)&&n.beforeSend(u);u.send(o);return u}var _modules={};export function _registerModule(e,t){_modules[e]=t;if(\"wijmo\"===e){var n=\"undefined\"!=typeof window?window:\"undefined\"!=typeof self?self:null;n&&(n.wijmo=t)}}export function _getModule(e){return _modules[e]}var Color=function(){function Color(e){this._r=0;this._g=0;this._b=0;this._a=1;e&&this._parse(e)}Object.defineProperty(Color.prototype,\"r\",{get:function(){return this._r},set:function(e){this._r=clamp(asNumber(e),0,255)},enumerable:!0,configurable:!0});Object.defineProperty(Color.prototype,\"g\",{get:function(){return this._g},set:function(e){this._g=clamp(asNumber(e),0,255)},enumerable:!0,configurable:!0});Object.defineProperty(Color.prototype,\"b\",{get:function(){return this._b},set:function(e){this._b=clamp(asNumber(e),0,255)},enumerable:!0,configurable:!0});Object.defineProperty(Color.prototype,\"a\",{get:function(){return this._a},set:function(e){this._a=clamp(asNumber(e),0,1)},enumerable:!0,configurable:!0});Color.prototype.equals=function(e){return e instanceof Color&&this.r==e.r&&this.g==e.g&&this.b==e.b&&this.a==e.a};Color.prototype.toString=function(){var e=Math.round(100*this.a);return e>99?\"#\"+((1<<24)+(this.r<<16)+(this.g<<8)+this.b).toString(16).slice(1):\"rgba(\"+this.r+\",\"+this.g+\",\"+this.b+\",\"+e/100+\")\"};Color.fromRgba=function(e,t,n,r){void 0===r&&(r=1);var i=new Color(null);i.r=Math.round(clamp(asNumber(e),0,255));i.g=Math.round(clamp(asNumber(t),0,255));i.b=Math.round(clamp(asNumber(n),0,255));i.a=clamp(asNumber(r),0,1);return i};Color.fromHsb=function(e,t,n,r){void 0===r&&(r=1);var i=Color._hsbToRgb(clamp(asNumber(e),0,1),clamp(asNumber(t),0,1),clamp(asNumber(n),0,1));return Color.fromRgba(i[0],i[1],i[2],r)};Color.fromHsl=function(e,t,n,r){void 0===r&&(r=1);var i=Color._hslToRgb(clamp(asNumber(e),0,1),clamp(asNumber(t),0,1),clamp(asNumber(n),0,1));return Color.fromRgba(i[0],i[1],i[2],r)};Color.fromString=function(e){var t=new Color(null);return t._parse(asString(e))?t:null};Color.prototype.getHsb=function(){return Color._rgbToHsb(this.r,this.g,this.b)};Color.prototype.getHsl=function(){return Color._rgbToHsl(this.r,this.g,this.b)};Color.interpolate=function(e,t,n){n=clamp(asNumber(n),0,1);var r=Color._rgbToHsl(e.r,e.g,e.b),i=Color._rgbToHsl(t.r,t.g,t.b),o=1-n,s=e.a*o+t.a*n,a=[r[0]*o+i[0]*n,r[1]*o+i[1]*n,r[2]*o+i[2]*n],l=Color._hslToRgb(a[0],a[1],a[2]);return Color.fromRgba(l[0],l[1],l[2],s)};Color.toOpaque=function(e,t){if(1==(e=isString(e)?Color.fromString(e):asType(e,Color)).a)return e;t=null==t?Color.fromRgba(255,255,255,1):isString(t)?Color.fromString(t):asType(t,Color);var n=e.a,r=1-n;return Color.fromRgba(e.r*n+t.r*r,e.g*n+t.g*r,e.b*n+t.b*r)};Color.prototype._parse=function(e){if(\"transparent\"==(e=e.toLowerCase())){this._r=this._g=this._b=this._a=0;return!0}if(e&&0!=e.indexOf(\"#\")&&0!=e.indexOf(\"rgb\")&&0!=e.indexOf(\"hsl\")){var t=document.createElement(\"div\");t.style.color=e;var n=t.style.color;if(n==e&&!(n=window.getComputedStyle(t).color)){document.body.appendChild(t);n=window.getComputedStyle(t).color;removeChild(t)}e=n.toLowerCase()}if(0==e.indexOf(\"#\")){if(4==e.length){this.r=parseInt(e[1]+e[1],16);this.g=parseInt(e[2]+e[2],16);this.b=parseInt(e[3]+e[3],16);this.a=1;return!0}if(7==e.length){this.r=parseInt(e.substr(1,2),16);this.g=parseInt(e.substr(3,2),16);this.b=parseInt(e.substr(5,2),16);this.a=1;return!0}return!1}if(0==e.indexOf(\"rgb\")){var r=e.indexOf(\"(\"),i=e.indexOf(\")\");if(r>-1&&i>-1){if((o=e.substr(r+1,i-(r+1)).split(\",\")).length>2){this.r=parseInt(o[0]);this.g=parseInt(o[1]);this.b=parseInt(o[2]);this.a=o.length>3?parseFloat(o[3]):1;return!0}}}if(0==e.indexOf(\"hsl\")){r=e.indexOf(\"(\"),i=e.indexOf(\")\");if(r>-1&&i>-1){var o;if((o=e.substr(r+1,i-(r+1)).split(\",\")).length>2){var s=parseInt(o[0])/360,a=parseInt(o[1]),l=parseInt(o[2]);o[1].indexOf(\"%\")>-1&&(a/=100);o[2].indexOf(\"%\")>-1&&(l/=100);var c=Color._hslToRgb(s,a,l);this.r=c[0];this.g=c[1];this.b=c[2];this.a=o.length>3?parseFloat(o[3]):1;return!0}}}return!1};Color._hslToRgb=function(e,t,n){assert(e>=0&&e<=1&&t>=0&&t<=1&&n>=0&&n<=1,\"bad HSL values\");var r,i,o;if(0==t)r=i=o=n;else{var s=n<.5?n*(1+t):n+t-n*t,a=2*n-s;r=Color._hue2rgb(a,s,e+1/3);i=Color._hue2rgb(a,s,e);o=Color._hue2rgb(a,s,e-1/3)}return[Math.round(255*r),Math.round(255*i),Math.round(255*o)]};Color._hue2rgb=function(e,t,n){n<0&&(n+=1);n>1&&(n-=1);return n<1/6?e+6*(t-e)*n:n<.5?t:n<2/3?e+(t-e)*(2/3-n)*6:e};Color._rgbToHsl=function(e,t,n){assert(e>=0&&e<=255&&t>=0&&t<=255&&n>=0&&n<=255,\"bad RGB values\");e/=255,t/=255,n/=255;var r,i,o=Math.max(e,t,n),s=Math.min(e,t,n),a=(o+s)/2;if(o==s)r=i=0;else{var l=o-s;i=a>.5?l/(2-o-s):l/(o+s);switch(o){case e:r=(t-n)/l+(t=0&&e<=255&&t>=0&&t<=255&&n>=0&&n<=255,\"bad RGB values\");var r=Color._rgbToHsl(e,t,n);return Color._hslToHsb(r[0],r[1],r[2])};Color._hsbToRgb=function(e,t,n){var r=Color._hsbToHsl(e,t,n);return Color._hslToRgb(r[0],r[1],r[2])};Color._hsbToHsl=function(e,t,n){assert(e>=0&&e<=1&&t>=0&&t<=1&&n>=0&&n<=1,\"bad HSB values\");var r=clamp(n*(2-t)/2,0,1),i=1-Math.abs(2*r-1),o=clamp(i>0?n*t/i:t,0,1);assert(!isNaN(r)&&!isNaN(o),\"bad conversion to HSL\");return[e,o,r]};Color._hslToHsb=function(e,t,n){assert(e>=0&&e<=1&&t>=0&&t<=1&&n>=0&&n<=1,\"bad HSL values\");var r=clamp(1==n?1:(2*n+t*(1-Math.abs(2*n-1)))/2,0,1),i=clamp(r>0?2*(r-n)/r:t,0,1);assert(!isNaN(r)&&!isNaN(i),\"bad conversion to HSB\");return[e,i,r]};return Color}();export{Color};export var culture=\"undefined\"!=typeof window&&window.wijmo&&window.wijmo.culture||{Globalize:{numberFormat:{\".\":\".\",\",\":\",\",\"-\":\"-\",\"+\":\"+\",\"%\":\"%\",percent:{pattern:[\"-n %\",\"n %\"]},currency:{decimals:2,symbol:\"$\",pattern:[\"($n)\",\"$n\"]}},calendar:{\"/\":\"/\",\":\":\":\",firstDay:0,days:[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"],daysAbbr:[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"],months:[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"],monthsAbbr:[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"],am:[\"AM\",\"A\"],pm:[\"PM\",\"P\"],eras:[\"A.D.\",\"B.C.\"],patterns:{d:\"M/d/yyyy\",D:\"dddd, MMMM dd, yyyy\",f:\"dddd, MMMM dd, yyyy h:mm tt\",F:\"dddd, MMMM dd, yyyy h:mm:ss tt\",t:\"h:mm tt\",T:\"h:mm:ss tt\",M:\"MMMM d\",m:\"MMMM d\",Y:\"MMMM, yyyy\",y:\"MMMM, yyyy\",g:\"M/d/yyyy h:mm tt\",G:\"M/d/yyyy h:mm:ss tt\",s:'yyyy\"-\"MM\"-\"dd\"T\"HH\":\"mm\":\"ss',o:'yyyy\"-\"MM\"-\"dd\"T\"HH\":\"mm\":\"ss\".\"fffffffK',O:'yyyy\"-\"MM\"-\"dd\"T\"HH\":\"mm\":\"ss\".\"fffffffK',U:\"dddd, MMMM dd, yyyy h:mm:ss tt\"},fiscalYearOffsets:[-3,-3]}}};var Globalize=function(){function Globalize(){}Globalize.format=function(e,t,n,r){if(isString(e))return e;if(isNumber(e)){t=t||(e==Math.round(e)?\"n0\":\"n2\");return Globalize.formatNumber(e,t,n,r)}if(isDate(e)){t=t||\"d\";return Globalize.formatDate(e,t)}return null!=e?e.toString():\"\"};Globalize.formatNumber=function(e,t,n,r){e=asNumber(e);t=asString(t);var i,o=culture.Globalize.numberFormat,s=Globalize._parseNumericFormat(t),a=s.spec,l=s.prec,c=o[\".\"]||\".\",u=o[\",\"]||\",\",h=o[\"-\"]||\"-\";null==l&&(l=\"c\"==a?o.currency.decimals:\"e\"==a?6:e==Math.round(e)?0:2);s.scale&&(e/=Math.pow(10,s.scale));if(\"d\"==a||\"x\"==a){i=Math.round(Math.abs(e)).toString(\"d\"==a?10:16);for(;i.length-1&&(i=i.replace(/(\\.\\d*?)0+$/g,\"$1\").replace(/\\.$/,\"\"));\".\"!=c&&(i=i.replace(\".\",c));\"-\"!=h&&(i=i.replace(\"-\",h));if(u&&(\"n\"==a||\"c\"==a||\"p\"==a||\"F\"==s.specRaw||\"G\"==s.specRaw)){var p=i.indexOf(c),f=/\\B(?=(\\d\\d\\d)+(?!\\d))/g;i=p>-1?i.substr(0,p).replace(f,u)+i.substr(p):i.replace(f,u)}if(\"c\"==a){var d=o.currency.pattern[e<0?0:1],g=s.curr||o.currency.symbol;\"​\"==g&&(g=\"\");i=d.replace(\"n\",i).replace(\"$\",g)}if(\"p\"==a){d=o.percent.pattern[e<0?0:1];var _=o[\"%\"]||\"%\";i=d.replace(\"n\",i);\"%\"!=_&&(i=i.replace(\"%\",_));\"-\"!=h&&e<0&&(i=i.replace(\"-\",h))}return s.prefix||s.suffix?s.prefix+i+s.suffix:i};Globalize.formatDate=function(e,t){e=asDate(e);switch(t){case\"r\":case\"R\":return e.toUTCString();case\"u\":return e.toISOString().replace(/\\.\\d{3}/,\"\")}t=Globalize._expandFormat(t);return Globalize._parseDateFormat(t).map((function(n){return Globalize._formatDatePart(e,t,n)})).join(\"\")};Globalize.parseInt=function(e,t){return Math.round(Globalize.parseFloat(e,t))};Globalize.parseFloat=function(e,t){var n=culture.Globalize.numberFormat,r=n[\".\"]||\".\",i=n[\"-\"]||\"-\",o=n[\"%\"]||\"%\",s=e.indexOf(i)>-1||e.indexOf(\"(\")>-1&&e.indexOf(\")\")>-1?-1:1,a=e.indexOf(o)>-1,l=t?t[0].toLowerCase():null,c=t?t.match(/,+/):null,u=c?Math.pow(10,3*c[0].length):1,h=0;if(\"x\"==l){e=e.replace(/[^0-9a-f]+.*$/gi,\"\");h=parseInt(e,16)}else{var p=\"e\"==l?new RegExp(\"[^+-eE\\\\d\\\\\"+r+\"]\",\"g\"):new RegExp(\"[^\\\\d\\\\\"+r+\"]\",\"g\");e=e.replace(p,\"\").replace(r,\".\");h=Math.abs(parseFloat(e))}a&&(h=Globalize._shiftDecimal(h,-2));return h*s*u};Globalize.parseDate=function(e,t,n){if(!(e=asString(e)))return null;if(\"u\"==t)return new Date(e);var r;if(\"R\"==t||\"r\"==t){var i=e.match(/((\\d+)\\-(\\d+)\\-(\\d+))?\\s?((\\d+):(\\d+)(:(\\d+))?)?/);if(i[1]||i[5]){r=i[1]?new Date(parseInt(i[2]),parseInt(i[3])-1,parseInt(i[4])):new Date;if(i[5]){r.setHours(parseInt(i[6]));r.setMinutes(parseInt(i[7]));r.setSeconds(i[8]?parseInt(i[9]):0)}}else r=new Date(e);return isNaN(r.getTime())?null:r}t=Globalize._expandFormat(t||\"d\");var o,s,a,l,c,u=culture.Globalize.calendar,h=Globalize._CJK,p=new RegExp(\"(\\\\\"+u[\"/\"]+\")|(\\\\\"+u[\":\"]+\")|(\\\\d+)|([\"+h+\"\\\\.]{2,})|([\"+h+\"]+)\",\"gi\"),f=e.match(p),d=Globalize._parseDateFormat(t),g=0,_=-1,m=0,v=1,b=0,y=0,C=0,w=0,E=-1,A=-1;if(!(f&&f.length&&d&&d.length))return null;for(var x=0;x-1&&P1&&T.length>S){f[P]=T.substr(S);T=T.substr(0,S);g++}_=parseInt(T);l=4==T.length;break;case\"MMMM\":case\"MMM\":a=!0;var D=T.toLowerCase();m=-1;for(var O=0;O<12;O++)if(0==u.months[O].toLowerCase().indexOf(D)){m=O;break}if(m>-1)break;case\"MM\":case\"M\":a=!0;if(S>1&&T.length>S){f[P]=T.substr(S);T=T.substr(0,S);g++}m=parseInt(T)-1;break;case\"dddd\":case\"ddd\":o=!0;break;case\"dd\":case\"d\":if(S>1&&T.length>S){f[P]=T.substr(S);T=T.substr(0,S);g++}v=parseInt(T);s=!0;break;case\"hh\":case\"h\":if(S>1&&T.length>S){f[P]=T.substr(S);T=T.substr(0,S);g++}b=12==(b=parseInt(T))?0:b;break;case\"HH\":if(S>1&&T.length>S){f[P]=T.substr(S);T=T.substr(0,S);g++}b=parseInt(T);break;case\"H\":b=parseInt(T);break;case\"mm\":case\"m\":if(S>1&&T.length>S){f[P]=T.substr(S);T=T.substr(0,S);g++}y=parseInt(T);break;case\"ss\":case\"s\":if(S>1&&T.length>S){f[P]=T.substr(S);T=T.substr(0,S);g++}C=parseInt(T);break;case\"fffffff\":case\"FFFFFFF\":case\"ffffff\":case\"FFFFFF\":case\"fffff\":case\"FFFFF\":case\"ffff\":case\"FFFF\":case\"fff\":case\"FFF\":case\"ff\":case\"FF\":case\"f\":case\"F\":w=parseInt(T)/Math.pow(10,S-3);break;case\"tt\":case\"t\":T=T.toUpperCase();b<12&&u.pm.indexOf(T)>-1&&(b+=12);break;case\"q\":case\"Q\":case\"u\":case\"U\":A=this.parseInt(T);break;case\"ggg\":case\"gg\":case\"g\":E=u.eras.length>1?Globalize._getEra(T,u):-1;break;case\"/\":case\":\":if(T&&T!=u[d[x]])return null;break;case\"K\":break;default:Globalize._unquote(d[x]).trim()!=T.trim()&&g++}}if(a&&s){isNaN(b)&&(b=0);isNaN(y)&&(y=0);isNaN(C)&&(C=0)}if(m<0||m>11||isNaN(m)||v<1||v>31||isNaN(v)||b<0||b>=24||isNaN(b)||y<0||y>=60||isNaN(y)||C<0||C>=60||isNaN(C))return null;if(c){if(!a)return null;var M=culture.Globalize.calendar;if(isArray(M.fiscalYearOffsets)){var F=\"E\"==c[0],R=m-M.fiscalYearOffsets[F?0:1];_+=R>11?-1:R<0?1:0}}if(o&&!s)return null;!a&&A>=1&&A<=4&&(m=3*(A-1));if(isNaN(_)||_<0)_=isDate(n)?n.getFullYear():(new Date).getFullYear();else if(E>-1)_=_+u.eras[E].start.getFullYear()-1;else if(_<100&&!l)if(n)_+=100*Math.floor(n.getFullYear()/100);else{var k=isNumber(u.twoDigitYearMax)?u.twoDigitYearMax:2029;k>99&&(_+=_+2e3<=k?2e3:1900)}return(r=DateTime.newDate(_,m,v,b,y+0,C,w)).getMonth()!=m||r.getDate()!=v?null:isNaN(r.getTime())?null:r};Globalize.getFirstDayOfWeek=function(){var e=culture.Globalize.calendar.firstDay;return e||0};Globalize.getNumberDecimalSeparator=function(){var e=culture.Globalize.numberFormat[\".\"];return e||\".\"};Globalize._toFixedStr=function(e,t){var n=e.toString(),r=n.indexOf(\".\"),i=t-(n.length-r)+1,o=n.indexOf(\"e\")>-1;if(!o&&r>-1&&i>=0)return n+Array(i+1).join(\"0\");if(r>-1&&!o&&\"5\"==n[n.length-1]){e=+(Math.round(+(Math.abs(e)+\"e\"+t))+\"e\"+-t)*(e<0?-1:1)}return e.toFixed(t)};Globalize._unquote=function(e){return e.length>1&&e[0]==e[e.length-1]&&(\"'\"==e[0]||'\"'==e[0])?e.substr(1,e.length-2):e};Globalize._parseNumericFormat=function(e){var t=Globalize._numFormatInfo[e];if(!t){var n=e&&e.match(/(\\\"(.*?)\\\"\\s*)?([a-z])\\s*(\\d*)\\s*(,*)(\\s*\\\"(.*?)\\\"\\s*)?(.*)/i)||[],r=n[3]?n[3]:\"n\";t={prefix:n[2]||\"\",spec:r.toLowerCase(),specRaw:r,prec:n[4]?parseInt(n[4]):null,scale:n[5]?3*n[5].length:0,suffix:n[7]||\"\",curr:n[8]||null};Globalize._numFormatInfo[e]=t}return t};Globalize._parseDateFormat=function(e){var t=Globalize._dateFormatParts[e];if(!t){t=[];if(e){var n=void 0,r=void 0;for(n=0;n>-1&&n-1){t.push(e.substring(n,r+1));n=r}else if(\"\\\\\"==i&&n1&&t.indexOf(\"g\")>-1&&(o=Globalize._getEra(e,i))>-1){s=isDate((u=i.eras[o]).start)?s-u.start.getFullYear()+1:Math.abs(s)}var c=n.length<3?s%100:3==n.length?s%1e3:s;return Globalize._zeroPad(c,n.length);case\"MMMMM\":return i.monthsAbbr[e.getMonth()][0];case\"MMMM\":return i.months[e.getMonth()];case\"MMM\":return i.monthsAbbr[e.getMonth()];case\"MM\":case\"M\":return Globalize._zeroPad(e.getMonth()+1,l);case\"dddd\":return i.days[e.getDay()];case\"ddd\":return i.daysAbbr[e.getDay()];case\"dd\":return Globalize._zeroPad(e.getDate(),2);case\"d\":return e.getDate().toString();case\"hh\":case\"h\":return Globalize._zeroPad(Globalize._h12(e),l);case\"HH\":case\"H\":return Globalize._zeroPad(e.getHours(),l);case\"mm\":case\"m\":return Globalize._zeroPad(e.getMinutes(),l);case\"ss\":case\"s\":return Globalize._zeroPad(e.getSeconds(),l);case\"fffffff\":case\"FFFFFFF\":case\"ffffff\":case\"FFFFFF\":case\"fffff\":case\"FFFFF\":case\"ffff\":case\"FFFF\":case\"fff\":case\"FFF\":case\"ff\":case\"FF\":case\"f\":case\"F\":a=e.getMilliseconds()*Math.pow(10,l-3);return\"f\"==n[0]?Globalize._zeroPad(a,l):a.toFixed(0);case\"tt\":return e.getHours()<12?i.am[0]:i.pm[0];case\"t\":return e.getHours()<12?i.am[1]:i.pm[1];case\"q\":case\"Q\":return(Math.floor(e.getMonth()/3)+1).toString();case\"u\":case\"U\":r=DateTime.toFiscal(e,\"U\"==n);return(Math.floor(r.getMonth()/3)+1).toString();case\"ggg\":case\"gg\":case\"g\":if(i.eras.length>1&&(o=Globalize._getEra(e,i))>-1){var u;if(isString(u=i.eras[o]))return u;switch(n){case\"gg\":return u.name[0];case\"g\":return u.symbol;default:return u.name}}return i.eras[0];case\":\":case\"/\":return i[n];case\"K\":var h=e.toString().match(/(\\+|\\-)(\\d{2})(\\d{2})/);return h?h[1]+h[2]+h[3]:\"\";case\"zzz\":case\"zz\":case\"z\":var p=-e.getTimezoneOffset(),f=void 0;switch(n){case\"zzz\":f=Globalize.format(p/60,\"d2\",!1,!0)+i[\":\"]+Globalize.format(p%60,\"d2\",!1,!0);break;case\"zz\":f=Globalize.format(p/60,\"d2\",!1,!0);break;case\"z\":f=Globalize.format(p/60,\"d\",!1,!0)}return p>=0?\"+\"+f:f}return l>1&&n[0]==n[l-1]&&('\"'==n[0]||\"'\"==n[0])?n.substr(1,l-2):n};Globalize._getEra=function(e,t){if(t.eras){var n=t.eras.length;if(isDate(e)){if(isString(t.eras[0]))return e.getFullYear()>=0?0:1;if(isDate(t.eras[0].start)){for(var r=0;r=t.eras[r].start)return r;return n-1}}else if(isString(e)&&e.length>0){e=e.toLowerCase();for(r=0;r0?Array(r).join(\"0\")+n:n};Globalize._h12=function(e){var t=culture.Globalize.calendar,n=e.getHours();t.am&&t.am[0]&&0==(n%=12)&&(n=12);return n};Globalize._shiftDecimal=function(e,t){if(0==t||isNaN(e))return e;var n=e.toString();if(n.indexOf(\"e\")>-1)return e*Math.pow(10,t);var r=Array(Math.abs(t)+1).join(\"0\");t<0&&(n=r+n);var i=n.indexOf(\".\");i<0&&(i=(n+=\".\").indexOf(\".\"));t>0&&(n+=r);i+=t;n=(n=n.replace(\".\",\"\")).substr(0,i)+\".\"+n.substr(i);return parseFloat(n)};Globalize._CJK=\"a-z\"+\"u00c0-u017fu3000-u30ffu4e00-u9faf\".replace(/u/g,\"\\\\u\")+\"u1100-u11ffu3130-u318fua960-ua97fuac00-ud7afud7b0-ud7ff\".replace(/u/g,\"\\\\u\");Globalize._numFormatInfo={};Globalize._dateFormatParts={};return Globalize}();export{Globalize};export function _updateCulture(e){culture=e}export function _addCultureInfo(e,t){culture[e]=\"undefined\"!=typeof window&&window.wijmo.culture[e]||t}var _agent=\"undefined\"!=typeof navigator?navigator.userAgent:\"\",_isMobile=null!=_agent.match(/iPad|iPhone|iPod|Android|webOS|BlackBerry|Windows Phone/i);export function isMobile(){return _isMobile}var _isiOS=null!=_agent.match(/iPad|iPhone|iPod/i);export function isiOS(){return _isiOS}var _isFF=null!=_agent.match(/Firefox\\//);export function isFirefox(){return _isFF}var _isSafari=null!=_agent.match(/^((?!Chrome|Android).)*safari/i);export function isSafari(){return _isSafari}var _isEdge=null!=_agent.match(/Edge\\//);export function isEdge(){return _isEdge}var _isIE=null!=_agent.match(/MSIE |Trident\\/|Edge\\//);export function isIE(){return _isIE}var _isIE9=!1;export function isIE9(){return _isIE9}var _isIE10=!1;export function isIE10(){return _isIE10}var _supportsPassive=!1;\"undefined\"!=typeof document&&document.addEventListener(\"test\",(function(e){}),{get passive(){_supportsPassive=!0;return!0}});export function getEventOptions(e,t){return _supportsPassive?{capture:e,passive:t}:e}var _supportsFocusOptions=!1;\"undefined\"!=typeof document&&document.createElement(\"div\").focus({get preventScroll(){_supportsFocusOptions=!0;return!0}});export function supportsFocusOptions(){return _supportsFocusOptions}export function _startDrag(e,t){e.effectAllowed=t;isFirefox()&&e.setData(\"text\",\"\")}if(\"undefined\"!=typeof document&&document.doctype){navigator.appVersion.indexOf(\"MSIE 10\")>-1&&(_isIE10=!0);if(navigator.appVersion.indexOf(\"MSIE 9\")>-1){_isIE9=!0;document.addEventListener(\"mousemove\",(function(e){if(1==e.which){var t=closest(e.target,\".wj-control\");if(t&&!t.style.cursor)for(var n=e.target;n;n=n.parentElement)if(n.attributes&&n.attributes.draggable){n.dragDrop();return!1}}}))}}if(\"undefined\"!=typeof window){var raf=\"requestAnimationFrame\",caf=\"cancelAnimationFrame\";if(!window[raf]){var expectedTime_1=0;window[raf]=function(e){var t=Date.now(),n=16-(t-expectedTime_1),r=n>0?n:0;expectedTime_1=t+r;return setTimeout((function(){e(expectedTime_1)}),r)};window[caf]=clearTimeout}if(!window.atob){var keys_1=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\",keysRe_1=new RegExp(\"[^\"+keys_1+\"]\");window.atob=function(e){var t,n,r,i,o=[],s=0,a=e.length;if(keysRe_1.test(e)||/=/.test(e)&&(/=[^=]/.test(e)||/={3}/.test(e)))throw new Error(\"Invalid base64 data\");a%4>0&&(a=(e+=Array(4-a%4+1).join(\"=\")).length);for(;s>16,64===n[2]?-1:(65280&t)>>8,64===n[3]?-1:255&t];for(i=0;i<3;++i)(r[i]>=0||0===i)&&o.push(String.fromCharCode(r[i]))}return o.join(\"\")};window.btoa=function(e){for(var t,n,r=[],i=0,o=e.length;i>18),keys_1.charAt((258048&t)>>12),keys_1.charAt(isNaN(n[1])?64:(4032&t)>>6),keys_1.charAt(isNaN(n[2])?64:63&t))}return r.join(\"\")}}}var PrintDocument=function(){function PrintDocument(e){this._copyCss=!0;null!=e&©(this,e)}Object.defineProperty(PrintDocument.prototype,\"title\",{get:function(){return this._title},set:function(e){this._title=asString(e)},enumerable:!0,configurable:!0});Object.defineProperty(PrintDocument.prototype,\"copyCss\",{get:function(){return this._copyCss},set:function(e){this._copyCss=asBoolean(e)},enumerable:!0,configurable:!0});PrintDocument.prototype.addCSS=function(e){this._css||(this._css=[]);this._css.push(e)};PrintDocument.prototype.append=function(e){var t=this._getDocument();isString(e)?t.write(e):e instanceof HTMLElement?t.write(e.outerHTML):assert(!1,\"child should be an HTML element or a string.\")};PrintDocument.prototype.print=function(e){var t=this;if(this._iframe){this._close();setTimeout((function(){var n=t._iframe.contentWindow,r=\"onafterprint\"in n&&!isFirefox();r&&(n.onafterprint=function(){t._afterPrint(e)});if(!(isIE()&&null==n.document.body)&&document.queryCommandSupported(\"print\"))n.document.execCommand(\"print\",!0,null);else{n.focus();n.print()}r||t._afterPrint(e)}),100)}};PrintDocument.prototype._afterPrint=function(e){document.body.removeChild(this._iframe);this._iframe=null;isFunction(e)&&e()};PrintDocument.prototype._getDocument=function(){if(!this._iframe){var e=this._iframe=document.createElement(\"iframe\");addClass(e,\"wj-printdocument\");setCss(e,{position:\"fixed\",left:32e3,top:32e3});document.body.appendChild(e)}return this._iframe.contentDocument};PrintDocument.prototype._close=function(){var e=this._getDocument();e.close();e.title=null!=this.title?this.title:document.title;e.title&&e.title.trim()||(e.title=\" \");if(this._copyCss){for(var t=document.head.querySelectorAll(\"LINK\"),n=0;nl)&&(l=p);c=p;if(isNumber(p)&&!isNaN(p)){i++;o+=p;s+=p*p}else if(isBoolean(p)){i++;if(1==p){o++;s++}}}}var f=0==i?0:o/i;switch(e){case Aggregate.Avg:return f;case Aggregate.Cnt:return r;case Aggregate.Max:return l;case Aggregate.Min:return a;case Aggregate.Rng:return l-a;case Aggregate.Sum:return o;case Aggregate.VarPop:return i<=1?0:s/i-f*f;case Aggregate.StdPop:return i<=1?0:Math.sqrt(s/i-f*f);case Aggregate.Var:return i<=1?0:(s/i-f*f)*i/(i-1);case Aggregate.Std:return i<=1?0:Math.sqrt((s/i-f*f)*i/(i-1));case Aggregate.Last:return c}throw\"Invalid aggregate type.\"}var ArrayBase=function(e){__extends(ArrayBase,e);function ArrayBase(){var t=this;canChangePrototype?t.length=0:t=e.call(this)||this;return t}return ArrayBase}(Array);export{ArrayBase};var canChangePrototype=!0;try{ArrayBase.prototype=Array.prototype;canChangePrototype=ArrayBase.prototype===Array.prototype}catch(e){canChangePrototype=!1}var symb=\"undefined\"!=typeof window?window.Symbol:null;!canChangePrototype&&symb&&symb.species&&Object.defineProperty(ArrayBase,symb.species,{get:function(){return Array},enumerable:!1,configurable:!1});var ObservableArray=function(e){__extends(ObservableArray,e);function ObservableArray(t){var n=e.call(this)||this;n._updating=0;n.collectionChanged=new Event;if(t){t=asArray(t);n._updating++;for(var r=0;r-1&&this.removeAt(t);return t>-1};ObservableArray.prototype.removeAt=function(e){this.splice(e,1)};ObservableArray.prototype.setAt=function(e,t){e>=this.length&&(this.length=e+1);this.splice(e,1,t)};ObservableArray.prototype.clear=function(){this.length&&this.splice(0,this.length)};ObservableArray.prototype.beginUpdate=function(){this._updating++};ObservableArray.prototype.endUpdate=function(){this._updating--;this._updating<=0&&this._raiseCollectionChanged()};Object.defineProperty(ObservableArray.prototype,\"isUpdating\",{get:function(){return this._updating>0},enumerable:!0,configurable:!0});ObservableArray.prototype.deferUpdate=function(e){try{this.beginUpdate();e()}finally{this.endUpdate()}};ObservableArray.prototype.implementsInterface=function(e){return\"INotifyCollectionChanged\"==e};ObservableArray.prototype.onCollectionChanged=function(e){void 0===e&&(e=NotifyCollectionChangedEventArgs.reset);this.isUpdating||this.collectionChanged.raise(this,e)};ObservableArray.prototype._raiseCollectionChanged=function(e,t,n){void 0===e&&(e=NotifyCollectionChangedAction.Reset);if(!this.isUpdating){var r=new NotifyCollectionChangedEventArgs(e,t,n);this.onCollectionChanged(r)}};return ObservableArray}(ArrayBase);export{ObservableArray};export var SortNulls;!function(e){e[e.Natural=0]=\"Natural\";e[e.First=1]=\"First\";e[e.Last=2]=\"Last\"}(SortNulls||(SortNulls={}));var CollectionView=function(){function CollectionView(e,t){var n=this;this._idx=-1;this._filters=new ObservableArray;this._srtDsc=new ObservableArray;this._grpDesc=new ObservableArray;this._newItem=null;this._edtItem=null;this._pgSz=0;this._pgIdx=0;this._updating=0;this._stableSort=!1;this._srtNulls=SortNulls.Last;this._canFilter=!0;this._canGroup=!0;this._canSort=!0;this._canAddNew=!0;this._canCancelEdit=!0;this._canRemove=!0;this._canChangePage=!0;this._refreshOnEdit=!0;this._trackChanges=!1;this._chgAdded=new ObservableArray;this._chgRemoved=new ObservableArray;this._chgEdited=new ObservableArray;this.collectionChanged=new Event;this.sourceCollectionChanging=new Event;this.sourceCollectionChanged=new Event;this.currentChanged=new Event;this.currentChanging=new Event;this.pageChanged=new Event;this.pageChanging=new Event;this._srtDsc.collectionChanged.addHandler((function(){n._srtDsc.forEach((function(e){assert(e instanceof SortDescription,\"sortDescriptions array must contain SortDescription objects.\")}));n.canSort&&n._commitAndRefresh()}));this._grpDesc.collectionChanged.addHandler((function(){n._grpDesc.forEach((function(e){assert(e instanceof GroupDescription,\"groupDescriptions array must contain GroupDescription objects.\")}));n.canGroup&&n._commitAndRefresh()}));this._filters.collectionChanged.addHandler((function(){n._filters.forEach((function(e){assert(isFunction(e),\"filters array must contain IPredicate functions.\")}));n.canFilter&&n._commitAndRefresh()}));this.sourceCollection=e||new ObservableArray;t&&this.deferUpdate((function(){copy(n,t)}));null==this._keepCurrentItem&&(this._keepCurrentItem=!0)}CollectionView.prototype._copy=function(e,t){switch(e){case\"sortDescriptions\":var n=this.sortDescriptions;n.deferUpdate((function(){n.clear();asArray(t).forEach((function(e){isString(e)?e=new SortDescription(e,!0):e instanceof SortDescription||!e.property||(e=new SortDescription(e.property,e.ascending));n.push(e)}))}));return!0;case\"groupDescriptions\":var r=this.groupDescriptions;r.deferUpdate((function(){r.clear();t.forEach((function(e){isString(e)&&(e=new PropertyGroupDescription(e));r.push(e)}))}));return!0;case\"currentItem\":this.currentItem=t;return!0}return!1};Object.defineProperty(CollectionView.prototype,\"newItemCreator\",{get:function(){return this._itemCreator},set:function(e){this._itemCreator=asFunction(e)},enumerable:!0,configurable:!0});Object.defineProperty(CollectionView.prototype,\"sortConverter\",{get:function(){return this._srtCvt},set:function(e){e!=this._srtCvt&&(this._srtCvt=asFunction(e,!0))},enumerable:!0,configurable:!0});Object.defineProperty(CollectionView.prototype,\"sortComparer\",{get:function(){return this._srtCmp},set:function(e){e!=this._srtCmp&&(this._srtCmp=asFunction(e,!0))},enumerable:!0,configurable:!0});Object.defineProperty(CollectionView.prototype,\"useStableSort\",{get:function(){return this._stableSort},set:function(e){if(e!=this._stableSort){this._stableSort=asBoolean(e);this.refresh()}},enumerable:!0,configurable:!0});Object.defineProperty(CollectionView.prototype,\"sortNulls\",{get:function(){return this._srtNulls},set:function(e){if((e=asEnum(e,SortNulls))!=this._srtNulls){this._srtNulls=e;this.refresh()}},enumerable:!0,configurable:!0});Object.defineProperty(CollectionView.prototype,\"sortNullsFirst\",{get:function(){return this.sortNulls!=SortNulls.Last},set:function(e){_deprecated(\"sortNullsFirst\",\"sortNulls\");this.sortNulls=asBoolean(e)?SortNulls.First:SortNulls.Last},enumerable:!0,configurable:!0});CollectionView.prototype.getAggregate=function(e,t,n){return getAggregate(e,n?this._pgView:this._view,t)};Object.defineProperty(CollectionView.prototype,\"trackChanges\",{get:function(){return this._trackChanges},set:function(e){this._trackChanges=asBoolean(e)},enumerable:!0,configurable:!0});Object.defineProperty(CollectionView.prototype,\"refreshOnEdit\",{get:function(){return this._refreshOnEdit},set:function(e){this._refreshOnEdit=asBoolean(e)},enumerable:!0,configurable:!0});Object.defineProperty(CollectionView.prototype,\"itemsAdded\",{get:function(){return this._chgAdded},enumerable:!0,configurable:!0});Object.defineProperty(CollectionView.prototype,\"itemsRemoved\",{get:function(){return this._chgRemoved},enumerable:!0,configurable:!0});Object.defineProperty(CollectionView.prototype,\"itemsEdited\",{get:function(){return this._chgEdited},enumerable:!0,configurable:!0});CollectionView.prototype.clearChanges=function(){this._chgAdded.clear();this._chgRemoved.clear();this._chgEdited.clear()};CollectionView.prototype.implementsInterface=function(e){switch(e){case\"ICollectionView\":case\"IEditableCollectionView\":case\"IPagedCollectionView\":case\"INotifyCollectionChanged\":return!0}return!1};Object.defineProperty(CollectionView.prototype,\"getError\",{get:function(){return this._getError},set:function(e){if(this._getError!=e){this._getError=asFunction(e);this._raiseCollectionChanged()}},enumerable:!0,configurable:!0});CollectionView.prototype.onCollectionChanged=function(e){void 0===e&&(e=NotifyCollectionChangedEventArgs.reset);e.action!=NotifyCollectionChangedAction.Change||this._committing||this._canceling||e.item==this.currentEditItem||e.item==this.currentAddItem||this._trackItemChanged(e.item);this._updating||this.collectionChanged.raise(this,e)};CollectionView.prototype._raiseCollectionChanged=function(e,t,n){void 0===e&&(e=NotifyCollectionChangedAction.Reset);var r=new NotifyCollectionChangedEventArgs(e,t,n);this.onCollectionChanged(r)};CollectionView.prototype.onSourceCollectionChanging=function(e){this.sourceCollectionChanging.raise(this,e);return!e.cancel};CollectionView.prototype.onSourceCollectionChanged=function(e){this.sourceCollectionChanged.raise(this,e)};Object.defineProperty(CollectionView.prototype,\"canFilter\",{get:function(){return this._canFilter},set:function(e){this._canFilter=asBoolean(e)},enumerable:!0,configurable:!0});Object.defineProperty(CollectionView.prototype,\"canGroup\",{get:function(){return this._canGroup},set:function(e){this._canGroup=asBoolean(e)},enumerable:!0,configurable:!0});Object.defineProperty(CollectionView.prototype,\"canSort\",{get:function(){return this._canSort},set:function(e){this._canSort=asBoolean(e)},enumerable:!0,configurable:!0});Object.defineProperty(CollectionView.prototype,\"currentItem\",{get:function(){return this._pgView&&this._idx>-1&&this._idx-1&&this.onCurrentChanged()}},enumerable:!0,configurable:!0});CollectionView.prototype._sourceChanged=function(e,t){this._updating<=0&&this.refresh()};CollectionView.prototype.contains=function(e){return this._pgView.indexOf(e)>-1};CollectionView.prototype.moveCurrentTo=function(e){return this.moveCurrentToPosition(this._pgView.indexOf(e))};CollectionView.prototype.moveCurrentToFirst=function(){return this.moveCurrentToPosition(0)};CollectionView.prototype.moveCurrentToLast=function(){return this.moveCurrentToPosition(this._pgView.length-1)};CollectionView.prototype.moveCurrentToPrevious=function(){return this._idx>0&&this.moveCurrentToPosition(this._idx-1)};CollectionView.prototype.moveCurrentToNext=function(){return this.moveCurrentToPosition(this._idx+1)};CollectionView.prototype.moveCurrentToPosition=function(e){if(e>=-1&&e0)this._pendingRefresh=!0;else{this._performRefresh();this.onCollectionChanged()}};CollectionView.prototype._commitAndRefresh=function(){if(this.currentEditItem||this.currentAddItem){this._pendingRefresh=!0;this.commitEdit()}else this.refresh()};CollectionView.prototype._performRefresh=function(){if(this._updating>0)this._pendingRefresh=!0;else{this._pendingRefresh=!1;var e=this.currentItem;this._view=this._src?this._performFilter(this._src):[];if(this.canSort&&this._srtDsc.length>0){this._view==this._src&&(this._view=this._src.slice());this._performSort(this._view)}this._groups=this.canGroup?this._createGroups(this._view):null;this._fullGroups=this._groups;this._groups&&(this._view=this._mergeGroupItems(this._groups));this._pgIdx=clamp(this._pgIdx,0,this.pageCount-1);this._pgView=this._getPageView();if(this._groups&&this.pageCount>1){this._groups=this._createGroups(this._pgView);this._mergeGroupItems(this._groups)}var t=this._keepCurrentItem?this._pgView.indexOf(e):-1;t<0&&(t=Math.min(this._idx,this._pgView.length-1));this._idx=t;this._digest=this._getGroupsDigest(this.groups)}};CollectionView.prototype._performSort=function(e){if(this._stableSort){var t=e.map((function(e,t){return{item:e,index:t}})),n=this._compareItems();t.sort((function(e,t){var r=n(e.item,t.item);return 0==r?e.index-t.index:r}));for(var r=0;rp?1:0))return u.ascending?+s:-s}}return 0}};CollectionView.prototype._performFilter=function(e){return this.canFilter&&(this._filter||this._filters.length)?e.filter(this._filterItem,this):e};CollectionView.prototype._filterItem=function(e){for(var t=!this._filter||this._filter(e),n=0;n0},enumerable:!0,configurable:!0});CollectionView.prototype.deferUpdate=function(e,t){void 0===t&&(t=!0);try{this.beginUpdate();e()}finally{this.endUpdate(t)}};Object.defineProperty(CollectionView.prototype,\"canAddNew\",{get:function(){return this._canAddNew},set:function(e){if(e!=this._canAddNew){this._canAddNew=asBoolean(e);this._raiseCollectionChanged()}},enumerable:!0,configurable:!0});Object.defineProperty(CollectionView.prototype,\"canCancelEdit\",{get:function(){return this._canCancelEdit},set:function(e){this._canCancelEdit=asBoolean(e)},enumerable:!0,configurable:!0});Object.defineProperty(CollectionView.prototype,\"canRemove\",{get:function(){return this._canRemove},set:function(e){this._canRemove=asBoolean(e)},enumerable:!0,configurable:!0});Object.defineProperty(CollectionView.prototype,\"currentAddItem\",{get:function(){return this._newItem},enumerable:!0,configurable:!0});Object.defineProperty(CollectionView.prototype,\"currentEditItem\",{get:function(){return this._edtItem},enumerable:!0,configurable:!0});Object.defineProperty(CollectionView.prototype,\"isAddingNew\",{get:function(){return null!=this._newItem},enumerable:!0,configurable:!0});Object.defineProperty(CollectionView.prototype,\"isEditingItem\",{get:function(){return null!=this._edtItem},enumerable:!0,configurable:!0});CollectionView.prototype.editItem=function(e){if(e!=this._edtItem&&this.moveCurrentTo(e)){this.commitEdit();this._edtItem=e;this._edtClone={};this._extend(this._edtClone,this._edtItem)}};CollectionView.prototype.commitEdit=function(){var e=this._edtItem,t=this._edtClone;if(null!=e){this._committing=!0;var n=this._getChangedFields(e,t),r=this._pendingRefresh;this._edtItem=null;this._edtClone=null;var i=this._pgView.indexOf(e),o=this._digest;this._needRefresh(n)&&this._refreshOnEdit&&this._performRefresh();n&&this._trackItemChanged(e);this._pgView.indexOf(e)!=i||o!=this._digest||r?this._raiseCollectionChanged():this._raiseCollectionChanged(NotifyCollectionChangedAction.Change,e,i);this.commitNew();this._committing=!1;if(this.sourceCollection instanceof ObservableArray){this._updating++;var s=new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Change,e);this.sourceCollection.onCollectionChanged(s);this._updating--}}};CollectionView.prototype.cancelEdit=function(){var e=this._edtItem;if(null!=e){this._edtItem=null;if(!this.canCancelEdit)return;var t=this._src.indexOf(e);if(t>=0&&this._edtClone){this._extend(this._src[t],this._edtClone);this._edtClone=null;this._canceling=!0;this._raiseCollectionChanged(NotifyCollectionChangedAction.Change,e,t);this._canceling=!1;if(this._pendingRefresh&&this._refreshOnEdit){this._performRefresh();this._raiseCollectionChanged()}}}};CollectionView.prototype.addNew=function(){arguments.length>0&&assert(!1,\"addNew does not take any parameters, it creates an empty new item.\");this.commitEdit();if(!this.canAddNew)return null;var e=null,t=this.sourceCollection;if(null!=(e=this.newItemCreator?this.newItemCreator():t&&t.length?new t[0].constructor:{})){this._newItem=e;this._updating++;this._src.push(e);this._updating--;this._pgView!=this._src&&this._pgView.push(e);if(this.groups&&this.groups.length){var n=this.groups[this.groups.length-1];n.items.push(e);for(;n.groups&&n.groups.length;)(n=n.groups[n.groups.length-1]).items.push(e)}this._raiseCollectionChanged(NotifyCollectionChangedAction.Add,e,this._pgView.length-1);this.moveCurrentTo(e)}return this._newItem};CollectionView.prototype.commitNew=function(){var e=this._newItem;if(null!=e){this._newItem=null;var t=this._pgView.indexOf(e),n=this._digest;this._refreshOnEdit&&this._performRefresh();if(this._trackChanges){var r=this._chgEdited.indexOf(e);r>-1&&this._chgEdited.removeAt(r);this._chgAdded.indexOf(e)<0&&this._chgAdded.push(e)}this._pgView.indexOf(e)==t&&n==this._digest?this._raiseCollectionChanged(NotifyCollectionChangedAction.Change,e,t):this._raiseCollectionChanged()}};CollectionView.prototype.cancelNew=function(){var e=this._newItem;null!=e&&this.remove(e)};CollectionView.prototype.remove=function(e){var t=e==this._newItem;t&&(this._newItem=null);e==this._edtItem&&this.cancelEdit();if(this.canRemove){var n=this._src.indexOf(e);if(n>-1){var r=this.currentItem;this._updating++;this._src.splice(n,1);this._updating--;var i=this._digest;if(this._refreshOnEdit)this._performRefresh();else{var o=this._pgView.indexOf(e);o>=0&&this._pgView.splice(o,1)}if(this._trackChanges){var s=this._chgAdded.indexOf(e);s>-1&&this._chgAdded.removeAt(s);var a=this._chgEdited.indexOf(e);a>-1&&this._chgEdited.removeAt(a);this._chgRemoved.indexOf(e)<0&&!t&&s<0&&this._chgRemoved.push(e)}var l=this.sortDescriptions.length>0,c=this.pageSize>0&&this._pgIdx>-1;l||c||i!=this._getGroupsDigest(this.groups)?this._raiseCollectionChanged():this._raiseCollectionChanged(NotifyCollectionChangedAction.Remove,e,n);this.currentItem!==r&&this.onCurrentChanged()}}};CollectionView.prototype.removeAt=function(e){e=asInt(e);this.remove(this._pgView[e])};CollectionView.prototype._trackItemChanged=function(e){if(this._trackChanges){var t=this.sourceCollection;if(t&&t.indexOf(e)>-1){var n=this._chgEdited.indexOf(e),r=NotifyCollectionChangedAction.Change;if(n<0&&this._chgAdded.indexOf(e)<0)this._chgEdited.push(e);else if(n>-1){var i=new NotifyCollectionChangedEventArgs(r,e,n);this._chgEdited.onCollectionChanged(i)}else if((n=this._chgAdded.indexOf(e))>-1){i=new NotifyCollectionChangedEventArgs(r,e,n);this._chgAdded.onCollectionChanged(i)}}}};CollectionView.prototype._extend=function(e,t){for(var n in t)e[n]=t[n]};CollectionView.prototype._needRefresh=function(e){if(this._pendingRefresh)return!0;if(!e)return!1;if(this._filter)return!0;for(var t=0;t-1)return!0}for(t=0;t-1)return!0}return!1};CollectionView.prototype._getBindingRoot=function(e){var t=e.indexOf(\".\");return t>-1?e.substr(0,t):e};CollectionView.prototype._sameContent=function(e,t){return null==this._getChangedFields(e,t)};CollectionView.prototype._getChangedFields=function(e,t){assert(null!=t&&null!=e,\"Two objects expected.\");var n={};for(var r in t)this._sameValue(e[r],t[r])&&!isObject(t[r])||(n[r]=!0);for(var r in e)this._sameValue(e[r],t[r])&&!isObject(e[r])||(n[r]=!0);var i=Object.keys(n);return i.length?i:null};CollectionView.prototype._sameValue=function(e,t){return e===t||DateTime.equals(e,t)};Object.defineProperty(CollectionView.prototype,\"canChangePage\",{get:function(){return this._canChangePage},set:function(e){this._canChangePage=asBoolean(e)},enumerable:!0,configurable:!0});Object.defineProperty(CollectionView.prototype,\"isPageChanging\",{get:function(){return!1},enumerable:!0,configurable:!0});Object.defineProperty(CollectionView.prototype,\"itemCount\",{get:function(){return this._pgView.length},enumerable:!0,configurable:!0});Object.defineProperty(CollectionView.prototype,\"pageIndex\",{get:function(){return this._pgIdx},enumerable:!0,configurable:!0});Object.defineProperty(CollectionView.prototype,\"pageSize\",{get:function(){return this._pgSz},set:function(e){if(e!=this._pgSz){this._pgSz=asInt(e);this.refresh()}},enumerable:!0,configurable:!0});Object.defineProperty(CollectionView.prototype,\"totalItemCount\",{get:function(){return this._view.length},enumerable:!0,configurable:!0});Object.defineProperty(CollectionView.prototype,\"pageCount\",{get:function(){return this.pageSize?Math.ceil(this.totalItemCount/this.pageSize):1},enumerable:!0,configurable:!0});CollectionView.prototype.moveToFirstPage=function(){return this.moveToPage(0)};CollectionView.prototype.moveToLastPage=function(){return this.moveToPage(this.pageCount-1)};CollectionView.prototype.moveToPreviousPage=function(){return this.moveToPage(this.pageIndex-1)};CollectionView.prototype.moveToNextPage=function(){return this.moveToPage(this.pageIndex+1)};CollectionView.prototype.moveToPage=function(e){var t=clamp(e,0,this.pageCount-1);if(t!=this._pgIdx){if(!this.canChangePage)return;var n=new PageChangingEventArgs(t);if(this.onPageChanging(n)){this._pgIdx=t;this._pgView=this._getPageView();this._idx=0;this.groupDescriptions&&0!=this.groupDescriptions.length?this.refresh():this.onCollectionChanged();this.onPageChanged()}}return this._pgIdx==e};CollectionView.prototype.onPageChanged=function(e){this.pageChanged.raise(this,e)};CollectionView.prototype.onPageChanging=function(e){this.pageChanging.raise(this,e);return!e.cancel};CollectionView.prototype._getFullGroup=function(e){var t=this._getGroupByPath(this._fullGroups,e.level,e._path);null!=t&&(e=t);return e};CollectionView.prototype._getGroupByPath=function(e,t,n){if(e)for(var r=0;r0){t+=\",\";t+=this._getGroupsDigest(r.groups)}t+=\"}\"}return t};CollectionView.prototype._mergeGroupItems=function(e){for(var t=[],n=0;n2&&0==i.indexOf(\"on\")){(s=this[i[2].toLowerCase()+i.substr(3)])instanceof Event&&s.removeAllHandlers()}var o=this.collectionView;if(o instanceof CollectionView)for(var i in o){var s;(s=o[i])instanceof Event&&s.removeHandler(null,this)}this._e.parentNode&&(this._e.outerHTML=this._orgOuter);this._e[Control._CTRL_KEY]=null;this._e=this._orgOuter=this._orgTag=this._szObserver=null}};Control.getControl=function(e){var t=getElement(e);return t?asType(t[Control._CTRL_KEY],Control,!0):null};Object.defineProperty(Control.prototype,\"hostElement\",{get:function(){return this._e},enumerable:!0,configurable:!0});Object.defineProperty(Control.prototype,\"rightToLeft\",{get:function(){null==this._rtlDir&&(this._rtlDir=!!this._e&&\"rtl\"==getComputedStyle(this._e).direction);return this._rtlDir},enumerable:!0,configurable:!0});Control.prototype.focus=function(){var e=this._e;e&&(e.tabIndex>=0||!moveFocus(e,0))&&e.focus()};Control.prototype.containsFocus=function(){return contains(this._e,getActiveElement(),!0)};Control.prototype.invalidate=function(e){var t=this;void 0===e&&(e=!0);this._rtlDir=null;this._fullUpdate=this._fullUpdate||e;if(this._toInv){clearTimeout(this._toInv);this._toInv=null}this.isUpdating||(this._toInv=setTimeout((function(){t.refresh(t._fullUpdate);t._toInv=null}),Control._REFRESH_INTERVAL))};Control.prototype.refresh=function(e){var t=this;void 0===e&&(e=!0);if(!this.isUpdating){this.onRefreshing();setTimeout((function(){t.onRefreshed()}))}if(!this.isUpdating&&this._toInv){clearTimeout(this._toInv);this._toInv=null;this._fullUpdate=!1}this._updateState();this._updateWme()};Control.invalidateAll=function(e){e||(e=document.body);var t=e.children;if(t)for(var n=0;n0},enumerable:!0,configurable:!0});Control.prototype.deferUpdate=function(e){try{this.beginUpdate();e()}finally{this.endUpdate()}};Object.defineProperty(Control.prototype,\"isTouching\",{get:function(){return Control._touching},enumerable:!0,configurable:!0});Object.defineProperty(Control.prototype,\"isDisabled\",{get:function(){return this._e&&null!=this._e.getAttribute(\"disabled\")},set:function(e){if((e=asBoolean(e,!0))!=this.isDisabled){var t=this._e;if(t){enable(t,!e);t.tabIndex=this.isDisabled||t.querySelector(\"input\")?-1:this._orgTabIndex}}},enumerable:!0,configurable:!0});Control.prototype.initialize=function(e){e&©(this,e)};Control.prototype.addEventListener=function(e,t,n,r,i){if(e){null==r&&(r=!1);isBoolean(r)&&null==i&&(t.indexOf(\"touch\")>-1||t.indexOf(\"wheel\")>-1)&&(i=!1);var o=isBoolean(r)&&isBoolean(i)?getEventOptions(r,i):r;e.addEventListener(t,n,o);this._listeners.push({target:e,type:t,fn:n,capture:r})}};Control.prototype.removeEventListener=function(e,t,n,r){for(var i=0,o=0;o0)}}};Control.prototype._handleTouchStart=function(e){if(null==e.pointerType||\"touch\"==e.pointerType){if(Control._toTouch){clearTimeout(Control._toTouch);Control._toTouch=null}Control._touching=!0;var t=e.target,n=getActiveElement();if(n&&!contains(n,t)){Control.getControl(n.closest(\".wj-control\"))&&t.focus()}}};Control.prototype._handleTouchEnd=function(e){if(null==e.pointerType||\"touch\"==e.pointerType){Control._toTouch=setTimeout((function(){Control._toTouch=null;Control._touching=!1}),900);if(document.querySelector(\"ion-app\")){var t=e.target;if(closest(t,\".wj-dropdown-panel,.wj-dropdown\")){t.focus();e.stopPropagation();e.stopImmediatePropagation()}}}};Control.prototype._handleDisabled=function(e){if(this.isDisabled||closest(e.target,\".wj-state-disabled\")){e.preventDefault();e.stopPropagation();e.stopImmediatePropagation()}};Control.prototype._replaceWithDiv=function(e){var t=document.createElement(\"div\");e.parentElement.replaceChild(t,e);t.innerHTML=e.innerHTML;this._copyAttributes(t,e.attributes,/id|style|class/i);return t};Control.prototype._copyAttributes=function(e,t,n){if(e)for(var r=0;r',r,{position:\"fixed\",opacity:\"0\"});o.onkeydown=function(e){return e.preventDefault()};o.onchange=function(e){return e.stopImmediatePropagation()};if(isString(e)){o.value=e;o.select();document.execCommand(\"copy\")&&(i=!0)}else{o.select();if(isFunction(t)&&document.execCommand(\"paste\")){t(o.value);i=!0}}setTimeout((function(){n.focus({preventScroll:!0});removeChild(o);!i&&isFunction(t)&&t(o.value)}),Control._CLIPBOARD_DELAY)}};return Clipboard}();export{Clipboard};var _MaskProvider=function(){function _MaskProvider(e,t,n){void 0===t&&(t=null);void 0===n&&(n=\"_\");this._promptChar=\"_\";this._mskArr=[];this._full=!0;this._inputBnd=this._input.bind(this);this._keydownBnd=this._keydown.bind(this);this._keypressBnd=this._keypress.bind(this);this._cmpstartBnd=this._cmpstart.bind(this);this._cmpendBnd=this._cmpend.bind(this);this.mask=asString(t);this.input=e;this.promptChar=asString(n,!1);this._connect(!0);this._evtInput=document.createEvent(\"HTMLEvents\");this._evtInput.initEvent(\"input\",!0,!1)}Object.defineProperty(_MaskProvider.prototype,\"input\",{get:function(){return this._tbx},set:function(e){this._connect(!1);this._tbx=e;this._connect(!0)},enumerable:!0,configurable:!0});Object.defineProperty(_MaskProvider.prototype,\"mask\",{get:function(){return this._msk},set:function(e){if(e!=this._msk){this._msk=asString(e,!0);this._parseMask();this._valueChanged()}},enumerable:!0,configurable:!0});Object.defineProperty(_MaskProvider.prototype,\"promptChar\",{get:function(){return this._promptChar},set:function(e){if(e!=this._promptChar){this._promptChar=asString(e,!1);assert(1==this._promptChar.length,\"promptChar must be a string with length 1.\");this._valueChanged()}},enumerable:!0,configurable:!0});Object.defineProperty(_MaskProvider.prototype,\"maskFull\",{get:function(){return this._full},enumerable:!0,configurable:!0});_MaskProvider.prototype.getMaskRange=function(){return this._mskArr.length?[this._firstPos,this._lastPos]:[0,this._tbx.value.length-1]};_MaskProvider.prototype.getRawValue=function(){var e=this._tbx?this._tbx.value:\"\";if(!this.mask)return e;for(var t=\"\",n=0;n=this._mskArr.length)return!0;var i=this._mskArr[n];if(i.literal)this._validatePosition(n);else if(i.wildCard!=r&&!this._isCharValid(i.wildCard,r))return!0}return!1};_MaskProvider.prototype._connect=function(e){var t=this._tbx;if(t){assert(t instanceof HTMLInputElement||t instanceof HTMLTextAreaElement,\"INPUT or TEXTAREA element expected.\");if(e){this._autoComplete=t.autocomplete;this._spellCheck=t.spellcheck;t.autocomplete=\"off\";t.spellcheck=!1;t.addEventListener(\"input\",this._inputBnd,!0);t.addEventListener(\"keydown\",this._keydownBnd,!0);t.addEventListener(\"keypress\",this._keypressBnd,!0);t.addEventListener(\"compositionstart\",this._cmpstartBnd,!0);t.addEventListener(\"compositionend\",this._cmpendBnd,!0);t.addEventListener(\"blur\",this._cmpendBnd,!0);this._valueChanged()}else{t.autocomplete=this._autoComplete;t.spellcheck=this._spellCheck;t.removeEventListener(\"input\",this._inputBnd,!0);t.removeEventListener(\"keydown\",this._keydownBnd,!0);t.removeEventListener(\"keypress\",this._keypressBnd,!0);t.removeEventListener(\"compositionstart\",this._cmpstartBnd,!0);t.removeEventListener(\"compositionend\",this._cmpendBnd,!0);t.removeEventListener(\"blur\",this._cmpendBnd,!0)}}};_MaskProvider.prototype._valueChanged=function(){if(!this._tbx||!this._msk)return!1;var e=this._tbx,t=e.value.length<2,n=e.selectionStart,r=n>0?e.value[n-1]:\"\",i=e.value;e.value=this._applyMask();t&&(n=this._firstPos+1);var o=n>0?e.value[n-1]:\"\";n>0&&o==this._promptChar&&r!=this.promptChar&&n--;n==i.length&&(n=this._matchEnd);this._validatePosition(n);return i!=e.value};_MaskProvider.prototype._applyMask=function(){this._full=!0;this._matchEnd=0;var e=this._tbx.value;if(!this._msk)return e;if(!e&&!this._tbx.required)return e;var t=\"\",n=0,r=this._promptChar;e=this._handleVagueLiterals(e);for(var i=0;i\":s=s.toUpperCase();break;case\"<\":s=s.toLowerCase()}s!=r&&(this._matchEnd=t.length+1);break}n=a+1}s==r&&(this._full=!1)}t+=s}return t};_MaskProvider.prototype._handleVagueLiterals=function(e){if(e.length>this._mskArr.length+1)return e;var t=e.length-this._mskArr.length;if(0!=t&&e.length>1){for(var n=-1,r=this._tbx,i=r==getActiveElement()?r.selectionStart:r.value.length,o=Math.max(0,i-t);o-1)if(t<0){var s=Array(1-t).join(this._promptChar),a=n+t;a>-1&&(e=e.substr(0,a)+s+e.substr(a))}else{for(;n>0&&this._mskArr[n-1].literal;)n--;e=e.substr(0,n)+e.substr(n+t)}}return e};_MaskProvider.prototype._isCharValid=function(e,t){if(t==this._promptChar)return!0;switch(e){case\"0\":return this._isDigit(t);case\"9\":return this._isDigit(t)||\" \"==t;case\"#\":return this._isDigit(t)||\" \"==t||\"+\"==t||\"-\"==t;case\"L\":return this._isLetter(t);case\"l\":return this._isLetter(t)||\" \"==t;case\"A\":return this._isDigit(t)||this._isLetter(t);case\"a\":return this._isDigit(t)||this._isLetter(t)||\" \"==t;case\"9\":return t>=\"0\"&&t<=\"9\";case\"J\":case\"G\":return!(\"G\"==e&&_MaskProvider._X_DBCS_BIG_HIRA.indexOf(t)>-1)&&(t>=\"ぁ\"&&t<=\"ゟ\");case\"K\":case\"N\":return!(\"N\"==e&&_MaskProvider._X_DBCS_BIG_KATA.indexOf(t)>-1)&&(t>=\"゠\"&&t<=\"ヿ\");case\"Z\":return t<=\"!\"||t>=\"ÿ\";case\"H\":return t>=\"!\"&&t<=\"ÿ\"||t>=\"＀\"&&t<=\"￯\";case\"K\":case\"N\":return!(\"N\"==e&&_MaskProvider._X_SBCS_BIG_KATA.indexOf(t)>-1)&&(t>=\"ヲ\"&&t<=\"゚\")}return!1};_MaskProvider.prototype._isDigit=function(e){return e>=\"0\"&&e<=\"9\"};_MaskProvider.prototype._isLetter=function(e){return e>=\"a\"&&e<=\"z\"||e>=\"A\"&&e<=\"Z\"};_MaskProvider.prototype._validatePosition=function(e){var t=this._mskArr;if(this._backSpace)for(;e>0&&e\":case\"|\":n=t[r];break;case\"\\\\\":r1.005){var s=t==n?i:e.offsetParent||t;s==n&&(s=t);if(s){var a=s.getBoundingClientRect();r=new Point(s.scrollLeft-a.left,s.scrollTop-a.top)}}var l=getComputedStyle(t);r.x-=parseFloat(l.borderLeftWidth);r.y-=parseFloat(l.borderTopWidth);return r}function _copyPopupStyles(e,t,n){if(t instanceof HTMLElement&&n){var r=n instanceof HTMLElement?n:t,i=getComputedStyle(r);1==new Color(i.backgroundColor).a&&setCss(e,{color:i.color,backgroundColor:i.backgroundColor,fontFamily:i.fontFamily,fontSize:i.fontSize,fontWeight:i.fontWeight,fontStyle:i.fontStyle})}}function _hidePopupOnscroll(e,t,n){var r=t instanceof MouseEvent?t.target:t;if(r instanceof HTMLElement&&r.parentElement!=document.body){var i=Date.now(),o=r.getBoundingClientRect(),s=new Control(document.createElement(\"div\"));e[Control._SCRL_KEY]=s;s.addEventListener(document,\"scroll\",(function(a){if(a.target!=e.parentElement&&Date.now()-i>100&&contains(document,r)&&!contains(e,a.target)&&(a.target!=document||null!=t&&\"fixed\"==e.style.position)){var l=r.getBoundingClientRect(),c=Math.abs(l.left-o.left),u=Math.abs(l.top-o.top);if(c>1||u>1){isFunction(n)&&n();_hidePopup(e,!0);s.dispose()}}}),!0)}}function _getPopupPosition(e,t,n,r){var i=document.documentElement,o=i.clientWidth,s=i.clientHeight,a=PopupPosition;switch(n){case a.AboveLeft:case a.AboveRight:case a.BelowLeft:case a.BelowRight:if(t){var l=t.width;if(e.offsetWidth=p.width||d>=g?t.left-p.width:t.right;break;case a.RightTop:case a.RightBottom:case a.Right:f.x=g>=p.width||g>=d?t.right:t.left-p.width}var _=t.top,m=s-t.bottom;switch(n){case a.Above:case a.AboveLeft:case a.AboveRight:f.y=_>p.height||_>m?t.top-p.height:t.bottom;break;case a.Below:case a.BelowLeft:case a.BelowRight:f.y=m>p.height||m>_?t.bottom:t.top-p.height;break;case a.LeftTop:case a.RightTop:f.y=t.top;break;case a.LeftBottom:case a.RightBottom:f.y=t.bottom-p.height;break;case a.Left:case a.Right:f.y=t.bottom-p.height+(p.height-t.height)/2}}f.x=Math.min(f.x,o-p.width);f.y=Math.min(f.y,s-p.height);f.x=Math.max(0,f.x)+r.x;f.y=Math.max(0,f.y)+r.y;return f}function _getRtlPosition(e){var t=PopupPosition;switch(e){case t.AboveLeft:return t.AboveRight;case t.AboveRight:return t.AboveLeft;case t.BelowLeft:return t.BelowRight;case t.BelowRight:return t.BelowLeft;case t.Left:return t.Right;case t.LeftTop:return t.RightTop;case t.LeftBottom:return t.RightBottom;case t.Right:return t.Left;case t.RightTop:return t.LeftTop;case t.RightBottom:return t.LeftBottom}return e}function _getReferenceRect(e,t){if(t instanceof MouseEvent){if(t.clientX<=0&&t.clientY<=0&&t.target instanceof HTMLElement)return Rect.fromBoundingRect(t.target.getBoundingClientRect());var n=Control._POPUP_OFFSET;return new Rect(t.pageX-pageXOffset-n,t.pageY-pageYOffset-n,0,0)}return t instanceof Point?new Rect(t.x,t.y,0,0):t instanceof HTMLElement?Rect.fromBoundingRect(t.getBoundingClientRect()):t&&null!=t.top&&null!=t.left?t:null}var Tooltip=function(){function Tooltip(e){this._showAutoTipBnd=this._showAutoTip.bind(this);this._hideAutoTipBnd=this._hideAutoTip.bind(this);this._html=!0;this._gap=6;this._isAnimated=!1;this._position=PopupPosition.Above;this._showAtMouse=!1;this._showDelay=500;this._hideDelay=0;this._tips=[];this.popup=new Event;copy(this,e)}Object.defineProperty(Tooltip.prototype,\"position\",{get:function(){return this._position},set:function(e){this._position=asEnum(e,PopupPosition)},enumerable:!0,configurable:!0});Object.defineProperty(Tooltip.prototype,\"isAnimated\",{get:function(){return this._isAnimated},set:function(e){this._isAnimated=asBoolean(e)},enumerable:!0,configurable:!0});Tooltip.prototype.setTooltip=function(e,t,n){e=getElement(e);t=this._getContent(t);var r=this._indexOf(e);if(r>-1){this._detach(e);this._tips.splice(r,1)}if(t){this._attach(e);this._tips.push({element:e,content:t,position:n})}var i=Tooltip._eTip;i&&i[Control._TTIP_KEY]==e&&(t?this._setContent(t):this._hideAutoTip())};Tooltip.prototype.getTooltip=function(e){e=getElement(e);for(var t=this._tips,n=0;n0},enumerable:!0,configurable:!0});Object.defineProperty(Tooltip.prototype,\"isContentHtml\",{get:function(){return this._html},set:function(e){this._html=asBoolean(e)},enumerable:!0,configurable:!0});Object.defineProperty(Tooltip.prototype,\"cssClass\",{get:function(){return this._cssClass},set:function(e){this._cssClass=asString(e)},enumerable:!0,configurable:!0});Object.defineProperty(Tooltip.prototype,\"gap\",{get:function(){return this._gap},set:function(e){this._gap=asNumber(e)},enumerable:!0,configurable:!0});Object.defineProperty(Tooltip.prototype,\"showAtMouse\",{get:function(){return this._showAtMouse},set:function(e){this._showAtMouse=asBoolean(e)},enumerable:!0,configurable:!0});Object.defineProperty(Tooltip.prototype,\"showDelay\",{get:function(){return this._showDelay},set:function(e){this._showDelay=asInt(e)},enumerable:!0,configurable:!0});Object.defineProperty(Tooltip.prototype,\"hideDelay\",{get:function(){return this._hideDelay},set:function(e){this._hideDelay=asInt(e)},enumerable:!0,configurable:!0});Tooltip.prototype.onPopup=function(e){this.popup&&this.popup.raise(this,e);return!e.cancel};Tooltip.prototype._indexOf=function(e){for(var t=0;t-1){var i=t._tips[n],o=t._showAtMouse?new Rect(e.clientX,e.clientY,0,0):null;t.show(i.element,i.content,o,i.position);r>0&&(t._toHide=setTimeout((function(){t.hide()}),r))}}),n)}else this._hideAutoTip()};Tooltip.prototype._hideAutoTip=function(){this._clearTimeouts();this.hide()};Tooltip.prototype._clearTimeouts=function(){if(this._toShow){clearTimeout(this._toShow);this._toShow=null}if(this._toHide){clearTimeout(this._toHide);this._toHide=null}};Tooltip.prototype._getContent=function(e){if((e=asString(e))&&\"#\"==e[0]){var t=getElement(e);t&&(e=t.innerHTML)}return e};Tooltip.prototype._setContent=function(e){var t=Tooltip._eTip;t&&(this._html?t.innerHTML=e:t.textContent=e)};return Tooltip}();export{Tooltip};var TooltipEventArgs=function(e){__extends(TooltipEventArgs,e);function TooltipEventArgs(t,n){var r=e.call(this)||this;r._content=asString(t);r._e=n;return r}Object.defineProperty(TooltipEventArgs.prototype,\"tip\",{get:function(){return Tooltip._eTip},enumerable:!0,configurable:!0});Object.defineProperty(TooltipEventArgs.prototype,\"element\",{get:function(){return this._e},enumerable:!0,configurable:!0});Object.defineProperty(TooltipEventArgs.prototype,\"content\",{get:function(){return this._content},set:function(e){this._content=asString(e)},enumerable:!0,configurable:!0});return TooltipEventArgs}(CancelEventArgs);export{TooltipEventArgs};_registerModule(\"wijmo\",selfModule);var theLic=\"The Wijmo license in this application \",_licStr={evl:\"Wijmo Evaluation Version ({version})\",prd:theLic+\"is not valid for the {control} control.\",ver:theLic+\"is not valid for the version in use. The license version is {licVer}; the product version is {version}.\",dmn:theLic+\"is not valid for the current domain. The license domain is {licDomain}; the current domain is {domain}.\",exp:theLic+\"has expired. The license expiration date is {expDate:d}.\",lic:theLic+\"is invalid.\",mss:theLic+\"is not set.\",ctc:'Please create a license or contact GrapeCity: us.sales@grapecity.com.',hdr:\"Wijmo License\",cls:\"CLOSE\"},_codes={};export function _updateWme(e,t){var n=Control._wme;if(!(n&&contains(document.body,n)&&n.offsetWidth&&n.offsetHeight))if(t){var r=_getControlCode(e);if(!_codes[r]){_codes[r]=!0;_attorn(t,{algorithmCode:\"B0\",publicKey:\"l6/zrbWoSbcLFwEetFh38rH3ErBZE9H+Cqix3R+wTlfA1wD5B+lUcCQn+EJ60I4RGrm0x1sFjkiLWwB0jAn6BWZv0W4WbqAKriOdeoivxDp1Wmjs3qkEDhvbsjPtfvwx2BHil6o+/tDrdMJQSGs18WZm2PoQLQuL+9VhZ4FNRHUQU3Jtioke/OZEGHJOdYVwvCGalzBad6QFOiVbDBQPePpS3++GJzOxN8SN/7lyS5/IdKiy3WJRaVGkB370+HbN6hKraDfUgReLX26yxRaKC/5aWnGAJ2NnWLoGyAGRcwT9dVjo4bcAZNrrA0U9JVKQxaSskhdv2p49XzJkltXx5w==\"},(function(n){_checkLicense(e,t,n)}),(function(){_checkLicense(e,t,null)}));setTimeout((function(){delete _codes[r]}),50)}}else _checkLicense(e,null,null)}function _getControlCode(e){return e._getProductInfo().split(\",\")[0]}function _getControlName(e){return e._getProductInfo().split(\",\")[1]}function _checkLicense(e,t,n){var r=culture.Licensing||_licStr,i=null;n?_checkExpiration(e,n)?_checkVersion(e,n)?_checkDomain(e,n)?_checkProductCode(e,n)?_checkEval(e,n)&&(i=r.evl):i=r.prd:i=r.dmn:i=r.ver:i=r.exp:i=t?r.lic:r.mss;i&&_addWme(e,i+=\"

    \"+r.ctc,n)}function _checkProductCode(e,t){var n=_getControlCode(e);if(n&&n.length>=4)for(var r=0;r-1)return!0;return!1}function _checkExpiration(e,t){if(t.Exp){var n=t.Exp,r=new Date(parseInt(n.substr(0,4))||0,parseInt(n.substr(4,2))-1||0,parseInt(n.substr(6,2))||0);if(Math.ceil((r.valueOf()-Date.now())/864e5)<=0)return!1}return!0}function _checkVersion(e,t){var n=t.Anl?t.Anl.ver:null,r=getVersion();if(n&&r){return parseInt(n.replace(\"v\",\"\"))+10>=parseInt(r.split(\".\")[1])}return!0}function _checkDomain(e,t){if(_isLocalHost()||!t.Dms)return!0;for(var n=location.hostname,r=t.Dms.split(\",\"),i=0;i

    '+r.hdr+\"

    \"+t+'

    \",document.body);i.addEventListener(\"click\",(function(e){e.target instanceof HTMLButtonElement&&removeChild(i)}))}if(!Control._wme){var o=createElement('\"),s={position:\"fixed\",display:\"block\",visibility:\"visible\",background:\"rgba(240,240,240,.9)\",padding:\"8px 12px\",margin:\"6px\",fontFamily:\"sans-serif\",fontSize:\"14pt\",fontWeight:\"bold\",zIndex:1e4,opacity:.8,height:\"auto\",width:\"auto\",transform:\"none\"};switch(Math.round(100*Math.random())%3){case 0:s.right=s.bottom=0;break;case 1:s.left=s.bottom=0;break;case 2:s.right=s.top=0}setCss(o,s);document.body.appendChild(o);Control._wme=o;(new Tooltip).setTooltip(o,t)}}function _getWmeHref(){return\"ja\"==culture.Globalize.name?\"https://www.grapecity.co.jp/developer/support/wijmo-license\":\"https://www.grapecity.com/licensing/wijmo\"}function _getMessage(e,t,n){if(!t||t.trim().length<15){t=(culture.Licensing||_licStr).evl}(!t||t.trim().length<15)&&(t=atob(\"V2lqbW8gRXZhbHVhdGlvbiBWZXJzaW9uICh7dmVyc2lvbn0p\"));var r=null;if(n&&n.Exp){var i=n.Exp;r=new Date(parseInt(i.substr(0,4))||0,parseInt(i.substr(4,2))-1||0,parseInt(i.substr(6,2))||0)}return t=format(t,{version:getVersion(),domain:location.hostname,control:_getControlName(e),licVer:n&&n.Anl?\"5.\"+n.Anl.ver.replace(\"v\",\"\")+\".*\":null,licDomain:n?n.Dms:null,expDate:r})}function _attorn(e,t,n,r){var i=parseKeyData(e,t.algorithmCode);if(!i)return r();var o=i.lic,s=i.prefix+\"#\"+t.algorithmCode;if(tripleHash(s+JSON.stringify(o.D))!=o.H)return r();var a=window.msCrypto||window.crypto,l=a?a.subtle:null;if(!l||!location.protocol.match(/^https/i))return n(o.D);var c={name:\"RSASSA-PKCS1-v1_5\",hash:{name:\"SHA-256\"}},u={alg:\"RS256\",e:\"AQAB\",kty:\"RSA\",n:str64ToJwkBase64(t.publicKey)};u=window.msCrypto?str2ArrayBuffer(JSON.stringify(u)):u;try{asPromise(l.importKey(\"jwk\",u,c,!1,[\"verify\"])).then((function(e){var t=s+arrayBuffer2Str(str64ToArrayBuffer(str64EncodeUnicode(JSON.stringify(o.D))));asPromise(l.verify(c,e,str64ToArrayBuffer(o.S),str2ArrayBuffer(t))).then((function(e){return e?n(o.D):r()}))}),(function(){return n(o.D)}))}catch(e){return n(o.D)}}var uint8Array=\"undefined\"==typeof window?null:window.Uint8Array||window.TypedArray;function parseKeyData(e,t){try{t=\"#\"+t;var n=e.indexOf(t);if(n>-1)return{prefix:e.substring(0,n),lic:JSON.parse(decode(e.substr(n+t.length)))}}catch(e){}return null}function decode(e){if(!e)return\"\";var t=unshiftString(e);t=reverseString(t);var n=Math.ceil(t.length/2);return str64DecodeUnicode(t=(t=(t=t.substr(n)+t.substr(0,n)).replace(\"#\",\"=\")).replace(\"&\",\"==\"))}function unshiftString(e){for(var t=e.split(\"\"),n=t.length-5;n>=0;n--){swapArrayElements(t,n+1,n+3,unshiftChar);swapArrayElements(t,n,n+2,unshiftChar)}return t.join(\"\")}function swapArrayElements(e,t,n,r){e.length>1&&e.splice(n,1,r(e.splice(t,1,r(e[n]))[0]))}function shiftChar(e,t){var n=e.charCodeAt(0);return n>=65&&n<=90?e.toLowerCase():n>=97&&n<=122?e.toUpperCase():n>=48&&n<=57?String.fromCharCode(48+(n-48+10+t)%10):e}function unshiftChar(e){return shiftChar(e,-1)}function reverseString(e){return e.split(\"\").reverse().join(\"\")}function str64DecodeUnicode(e){for(var t=atob(e),n=\"\",r=0;r=0;i--){var o=e.charCodeAt(i);t=o+(t<<6)+(t<<16)-t;n=o+((n<<5)+n);r=o+((r<<5)-r)}var s=t^n^r;s<0&&(s=~s);return s.toString(16).toUpperCase()}function asPromise(e){if(\"oncomplete\"in e){e.then=function(t,n){e.resolve=t;e.reject=n};e.oncomplete=function(t){e.resolve(e.result)};e.onerror=function(t){e.reject()}}return e}","/* FileSaver.js\n * A saveAs() FileSaver implementation.\n * 1.3.2\n * 2016-06-16 18:25:19\n *\n * By Eli Grey, http://eligrey.com\n * License: MIT\n * See https://github.com/eligrey/FileSaver.js/blob/master/LICENSE.md\n */\n\n/*global self */\n/*jslint bitwise: true, indent: 4, laxbreak: true, laxcomma: true, smarttabs: true, plusplus: true */\n\n/*! @source http://purl.eligrey.com/github/FileSaver.js/blob/master/FileSaver.js */\n\nvar saveAs = saveAs || (function(view) {\n\t\"use strict\";\n\t// IE <10 is explicitly unsupported\n\tif (typeof view === \"undefined\" || typeof navigator !== \"undefined\" && /MSIE [1-9]\\./.test(navigator.userAgent)) {\n\t\treturn;\n\t}\n\tvar\n\t\t doc = view.document\n\t\t // only get URL when necessary in case Blob.js hasn't overridden it yet\n\t\t, get_URL = function() {\n\t\t\treturn view.URL || view.webkitURL || view;\n\t\t}\n\t\t, save_link = doc.createElementNS(\"http://www.w3.org/1999/xhtml\", \"a\")\n\t\t, can_use_save_link = \"download\" in save_link\n\t\t, click = function(node) {\n\t\t\tvar event = new MouseEvent(\"click\");\n\t\t\tnode.dispatchEvent(event);\n\t\t}\n\t\t, is_safari = /constructor/i.test(view.HTMLElement) || view.safari\n\t\t, is_chrome_ios =/CriOS\\/[\\d]+/.test(navigator.userAgent)\n\t\t, throw_outside = function(ex) {\n\t\t\t(view.setImmediate || view.setTimeout)(function() {\n\t\t\t\tthrow ex;\n\t\t\t}, 0);\n\t\t}\n\t\t, force_saveable_type = \"application/octet-stream\"\n\t\t// the Blob API is fundamentally broken as there is no \"downloadfinished\" event to subscribe to\n\t\t, arbitrary_revoke_timeout = 1000 * 40 // in ms\n\t\t, revoke = function(file) {\n\t\t\tvar revoker = function() {\n\t\t\t\tif (typeof file === \"string\") { // file is an object URL\n\t\t\t\t\tget_URL().revokeObjectURL(file);\n\t\t\t\t} else { // file is a File\n\t\t\t\t\tfile.remove();\n\t\t\t\t}\n\t\t\t};\n\t\t\tsetTimeout(revoker, arbitrary_revoke_timeout);\n\t\t}\n\t\t, dispatch = function(filesaver, event_types, event) {\n\t\t\tevent_types = [].concat(event_types);\n\t\t\tvar i = event_types.length;\n\t\t\twhile (i--) {\n\t\t\t\tvar listener = filesaver[\"on\" + event_types[i]];\n\t\t\t\tif (typeof listener === \"function\") {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tlistener.call(filesaver, event || filesaver);\n\t\t\t\t\t} catch (ex) {\n\t\t\t\t\t\tthrow_outside(ex);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t, auto_bom = function(blob) {\n\t\t\t// prepend BOM for UTF-8 XML and text/* types (including HTML)\n\t\t\t// note: your browser will automatically convert UTF-16 U+FEFF to EF BB BF\n\t\t\tif (/^\\s*(?:text\\/\\S*|application\\/xml|\\S*\\/\\S*\\+xml)\\s*;.*charset\\s*=\\s*utf-8/i.test(blob.type)) {\n\t\t\t\treturn new Blob([String.fromCharCode(0xFEFF), blob], {type: blob.type});\n\t\t\t}\n\t\t\treturn blob;\n\t\t}\n\t\t, FileSaver = function(blob, name, no_auto_bom) {\n\t\t\tif (!no_auto_bom) {\n\t\t\t\tblob = auto_bom(blob);\n\t\t\t}\n\t\t\t// First try a.download, then web filesystem, then object URLs\n\t\t\tvar\n\t\t\t\t filesaver = this\n\t\t\t\t, type = blob.type\n\t\t\t\t, force = type === force_saveable_type\n\t\t\t\t, object_url\n\t\t\t\t, dispatch_all = function() {\n\t\t\t\t\tdispatch(filesaver, \"writestart progress write writeend\".split(\" \"));\n\t\t\t\t}\n\t\t\t\t// on any filesys errors revert to saving with object URLs\n\t\t\t\t, fs_error = function() {\n\t\t\t\t\tif ((is_chrome_ios || (force && is_safari)) && view.FileReader) {\n\t\t\t\t\t\t// Safari doesn't allow downloading of blob urls\n\t\t\t\t\t\tvar reader = new FileReader();\n\t\t\t\t\t\treader.onloadend = function() {\n\t\t\t\t\t\t\tvar url = is_chrome_ios ? reader.result : reader.result.replace(/^data:[^;]*;/, 'data:attachment/file;');\n\t\t\t\t\t\t\tvar popup = view.open(url, '_blank');\n\t\t\t\t\t\t\tif(!popup) view.location.href = url;\n\t\t\t\t\t\t\turl=undefined; // release reference before dispatching\n\t\t\t\t\t\t\tfilesaver.readyState = filesaver.DONE;\n\t\t\t\t\t\t\tdispatch_all();\n\t\t\t\t\t\t};\n\t\t\t\t\t\treader.readAsDataURL(blob);\n\t\t\t\t\t\tfilesaver.readyState = filesaver.INIT;\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\t// don't create more object URLs than needed\n\t\t\t\t\tif (!object_url) {\n\t\t\t\t\t\tobject_url = get_URL().createObjectURL(blob);\n\t\t\t\t\t}\n\t\t\t\t\tif (force) {\n\t\t\t\t\t\tview.location.href = object_url;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar opened = view.open(object_url, \"_blank\");\n\t\t\t\t\t\tif (!opened) {\n\t\t\t\t\t\t\t// Apple does not allow window.open, see https://developer.apple.com/library/safari/documentation/Tools/Conceptual/SafariExtensionGuide/WorkingwithWindowsandTabs/WorkingwithWindowsandTabs.html\n\t\t\t\t\t\t\tview.location.href = object_url;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tfilesaver.readyState = filesaver.DONE;\n\t\t\t\t\tdispatch_all();\n\t\t\t\t\trevoke(object_url);\n\t\t\t\t}\n\t\t\t;\n\t\t\tfilesaver.readyState = filesaver.INIT;\n\n\t\t\tif (can_use_save_link) {\n\t\t\t\tobject_url = get_URL().createObjectURL(blob);\n\t\t\t\tsetTimeout(function() {\n\t\t\t\t\tsave_link.href = object_url;\n\t\t\t\t\tsave_link.download = name;\n\t\t\t\t\tclick(save_link);\n\t\t\t\t\tdispatch_all();\n\t\t\t\t\trevoke(object_url);\n\t\t\t\t\tfilesaver.readyState = filesaver.DONE;\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tfs_error();\n\t\t}\n\t\t, FS_proto = FileSaver.prototype\n\t\t, saveAs = function(blob, name, no_auto_bom) {\n\t\t\treturn new FileSaver(blob, name || blob.name || \"download\", no_auto_bom);\n\t\t}\n\t;\n\t// IE 10+ (native saveAs)\n\tif (typeof navigator !== \"undefined\" && navigator.msSaveOrOpenBlob) {\n\t\treturn function(blob, name, no_auto_bom) {\n\t\t\tname = name || blob.name || \"download\";\n\n\t\t\tif (!no_auto_bom) {\n\t\t\t\tblob = auto_bom(blob);\n\t\t\t}\n\t\t\treturn navigator.msSaveOrOpenBlob(blob, name);\n\t\t};\n\t}\n\n\tFS_proto.abort = function(){};\n\tFS_proto.readyState = FS_proto.INIT = 0;\n\tFS_proto.WRITING = 1;\n\tFS_proto.DONE = 2;\n\n\tFS_proto.error =\n\tFS_proto.onwritestart =\n\tFS_proto.onprogress =\n\tFS_proto.onwrite =\n\tFS_proto.onabort =\n\tFS_proto.onerror =\n\tFS_proto.onwriteend =\n\t\tnull;\n\n\treturn saveAs;\n}(\n\t typeof self !== \"undefined\" && self\n\t|| typeof window !== \"undefined\" && window\n\t|| this.content\n));\n// `self` is undefined in Firefox for Android content script context\n// while `this` is nsIContentFrameMessageManager\n// with an attribute `content` that corresponds to the window\n\nif (typeof module !== \"undefined\" && module.exports) {\n module.exports.saveAs = saveAs;\n} else if ((typeof define !== \"undefined\" && define !== null) && (define.amd !== null)) {\n define(\"FileSaver.js\", function() {\n return saveAs;\n });\n}\n","/*\n * GoJS v2.1.13 JavaScript Library for HTML Diagrams, https://gojs.net\n * GoJS and Northwoods Software are registered trademarks of Northwoods Software Corporation, https://www.nwoods.com.\n * Copyright (C) 1998-2020 by Northwoods Software Corporation. All Rights Reserved.\n * THIS SOFTWARE IS LICENSED. THE LICENSE AGREEMENT IS AT: https://gojs.net/2.1.13/license.html.\n * DO NOT MODIFY THIS FILE. DO NOT DISTRIBUTE A MODIFIED COPY OF THE CONTENTS OF THIS FILE.\n */\n(function() { var t;function aa(a){var b=0;return function(){return bc&&(c=Math.max(0,b+c));if(null==d||d>b)d=b;d=Number(d);0>d&&(d=Math.max(0,b+d));for(c=Number(c||0);c=a.length?a.push(c):a.splice(b,0,c):B(\"Cannot insert an object into an HTMLCollection or NodeList: \"+c+\" at \"+b)}function Da(a,b){Array.isArray(a)?b>=a.length?a.pop():a.splice(b,1):B(\"Cannot remove an object from an HTMLCollection or NodeList at \"+b)}function Fa(){var a=Ga.pop();return void 0===a?[]:a}function Ha(a){a.length=0;Ga.push(a)}\nfunction Ia(a){if(\"function\"===typeof a){if(a.className)return a.className;if(a.name)return a.name;var b=a.toString();b=b.substring(9,b.indexOf(\"(\")).trim();if(\"\"!==b)return a._className=b}else if(za(a)&&a.constructor)return Ia(a.constructor);return typeof a}\nfunction Ja(a){var b=a;za(a)&&(a.text?b=a.text:a.name?b=a.name:void 0!==a.key?b=a.key:void 0!==a.id?b=a.id:a.constructor===Object&&(a.Text?b=a.Text:a.Name?b=a.Name:void 0!==a.Key?b=a.Key:void 0!==a.Id?b=a.Id:void 0!==a.ID&&(b=a.ID)));return void 0===b?\"undefined\":null===b?\"null\":b.toString()}function Ka(a,b){if(a.hasOwnProperty(b))return!0;for(a=Object.getPrototypeOf(a);a&&a!==Function;){if(a.hasOwnProperty(b))return!0;var c=a.FA;if(c&&c[b])return!0;a=Object.getPrototypeOf(a)}return!1}\nfunction La(a,b,c){Object.defineProperty(Oa.prototype,a,{get:b,set:c})}function Pa(){var a=Qa;if(0===a.length)for(var b=x.document.getElementsByTagName(\"canvas\"),c=b.length,d=0;dc;c++)b[\"0123456789abcdef\".charAt(c>>4)+\"0123456789abcdef\".charAt(c&15)]=String.fromCharCode(c);a.length%2&&(a=\"0\"+a);c=[];for(var d=0,e=0;ec;c++)b[c]=c;for(c=d=0;256>c;c++)d=(d+b[c]+119)%256,e=b[c],b[c]=b[d],b[d]=e;d=c=0;for(var f=\"\",g=0;gthis.key)return!1;a=a.j;var b=a.length,c=++this.Pa,d=this.$e;if(null!==d)for(;cthis.key)return!1;var b=--this.Pa;if(0<=b)return this.key=b,this.value=a.j[b],!0;this.Bd();return!1};kb.prototype.ed=function(){return this.next()};\nkb.prototype.first=function(){var a=this.nb;this.ia=a.Aa;var b=a.j;this.Pa=a=b.length-1;return 0<=a?(b=b[a],this.key=a,this.value=b):null};kb.prototype.any=function(a){var b=this.nb;b.bh=null;b=b.j;var c=b.length;this.Pa=c;for(--c;0<=c;c--)if(a(b[c]))return!0;return!1};kb.prototype.all=function(a){var b=this.nb;b.bh=null;b=b.j;var c=b.length;this.Pa=c;for(--c;0<=c;c--)if(!a(b[c]))return!1;return!0};\nkb.prototype.each=function(a){var b=this.nb;b.bh=null;b=b.j;var c=b.length;this.Pa=c;for(--c;0<=c;c--)a(b[c]);return this};kb.prototype.map=function(a){var b=this.nb;b.bh=null;var c=[];b=b.j;var d=b.length;this.Pa=d;for(--d;0<=d;d--)c.push(a(b[d]));a=new E;a.j=c;a.ib();return a.iterator};kb.prototype.filter=function(a){var b=this.nb;b.bh=null;var c=[];b=b.j;var d=b.length;this.Pa=d;for(--d;0<=d;d--){var e=b[d];a(e)&&c.push(e)}a=new E;a.j=c;a.ib();return a.iterator};\nkb.prototype.Bd=function(){this.key=-1;this.value=null;this.ia=-1;this.nb.bh=this};kb.prototype.toString=function(){return\"ListIteratorBackwards(\"+this.Pa+\"/\"+this.nb.count+\")\"};ma.Object.defineProperties(kb.prototype,{iterator:{get:function(){return this}},count:{get:function(){return this.nb.j.length}}});kb.prototype.first=kb.prototype.first;kb.prototype.hasNext=kb.prototype.ed;kb.prototype.next=kb.prototype.next;kb.prototype.reset=kb.prototype.reset;\nkb.className=\"ListIteratorBackwards\";function E(a){Ya(this);this.s=!1;this.j=[];this.Aa=0;this.bh=this.Fa=null;void 0!==a&&(\"function\"===typeof a||\"string\"===typeof a?ya():this.addAll(a))}t=E.prototype;t.ib=function(){var a=this.Aa;a++;999999999a||a>=b.length)&&va(a,\"0 <= i < length\",E,\"elt:i\");return b[a]};t.get=function(a){return this.L(a)};t.gd=function(a,b){var c=this.j;(0>a||a>=c.length)&&va(a,\"0 <= i < length\",E,\"setElt:i\");this.s&&ua(this,a);c[a]=b};t.set=function(a,b){this.gd(a,b)};t.first=function(){var a=this.j;return 0===a.length?null:a[0]};t.Xb=function(){var a=this.j,b=a.length;return 0a&&va(a,\">= 0\",E,\"insertAt:i\");this.s&&ua(this,a);var c=this.j;a>=c.length?c.push(b):c.splice(a,0,b);this.ib()};t.remove=function(a){if(null===a)return!1;this.s&&ua(this,a);var b=this.j;a=b.indexOf(a);if(-1===a)return!1;a===b.length-1?b.pop():b.splice(a,1);this.ib();return!0};t.delete=function(a){return this.remove(a)};\nt.lb=function(a){var b=this.j;(0>a||a>=b.length)&&va(a,\"0 <= i < length\",E,\"removeAt:i\");this.s&&ua(this,a);a===b.length-1?b.pop():b.splice(a,1);this.ib()};t.removeRange=function(a,b){var c=this.j,d=c.length;if(0>a)a=0;else if(a>=d)return this;if(0>b)return this;b>=d&&(b=d-1);if(a>b)return this;this.s&&ua(this);for(var e=a,f=b+1;f=f)return this;(0>b||b>=e-1)&&va(b,\"0 <= from < length\",E,\"sortRange:from\");if(2===f)return c=d[b],e=d[b+1],0=e)d.sort(a);else for(b=d.slice(0,c),b.sort(a),a=0;a=e)for(c=d.slice(b),c.sort(a),a=b;a=this.j.length)return fb;var a=this.Fa;return null!==a?(a.reset(),a):new jb(this)}},iteratorBackwards:{\nget:function(){if(0>=this.j.length)return fb;var a=this.bh;return null!==a?(a.reset(),a):new kb(this)}}});E.prototype.reverse=E.prototype.reverse;E.prototype.sortRange=E.prototype.ej;E.prototype.sort=E.prototype.sort;E.prototype.toSet=E.prototype.mw;E.prototype.toArray=E.prototype.na;E.prototype.removeRange=E.prototype.removeRange;E.prototype.removeAt=E.prototype.lb;E.prototype[\"delete\"]=E.prototype.delete;E.prototype.remove=E.prototype.remove;E.prototype.insertAt=E.prototype.Kb;\nE.prototype.pop=E.prototype.pop;E.prototype.last=E.prototype.Xb;E.prototype.first=E.prototype.first;E.prototype.set=E.prototype.set;E.prototype.setElt=E.prototype.gd;E.prototype.get=E.prototype.get;E.prototype.elt=E.prototype.L;E.prototype.indexOf=E.prototype.indexOf;E.prototype.has=E.prototype.has;E.prototype.contains=E.prototype.contains;E.prototype.clear=E.prototype.clear;E.prototype.addAll=E.prototype.addAll;E.prototype.push=E.prototype.push;E.prototype.add=E.prototype.add;E.prototype.thaw=E.prototype.ea;\nE.prototype.freeze=E.prototype.freeze;E.className=\"List\";function mb(a){this.rg=a;a.Fa=null;this.ia=a.Aa;this.la=null}mb.prototype.reset=function(){var a=this.rg;a.Fa=null;this.ia=a.Aa;this.la=null};mb.prototype.next=function(){var a=this.rg;if(a.Aa!==this.ia&&null===this.key)return!1;var b=this.la;b=null===b?a.ba:b.oa;if(null!==b)return this.la=b,this.value=b.value,this.key=b.key,!0;this.Bd();return!1};mb.prototype.ed=function(){return this.next()};\nmb.prototype.first=function(){var a=this.rg;this.ia=a.Aa;a=a.ba;if(null!==a){this.la=a;var b=a.value;this.key=a.key;return this.value=b}return null};mb.prototype.any=function(a){var b=this.rg;this.la=b.Fa=null;for(b=b.ba;null!==b;){if(a(b.value))return!0;b=b.oa}return!1};mb.prototype.all=function(a){var b=this.rg;this.la=b.Fa=null;for(b=b.ba;null!==b;){if(!a(b.value))return!1;b=b.oa}return!0};mb.prototype.each=function(a){var b=this.rg;this.la=b.Fa=null;for(b=b.ba;null!==b;)a(b.value),b=b.oa;return this};\nmb.prototype.map=function(a){var b=this.rg;b.Fa=null;var c=new E;for(b=b.ba;null!==b;)c.add(a(b.value)),b=b.oa;return c.iterator};mb.prototype.filter=function(a){var b=this.rg;b.Fa=null;var c=new E;for(b=b.ba;null!==b;){var d=b.value;a(d)&&c.add(d);b=b.oa}return c.iterator};mb.prototype.Bd=function(){this.value=this.key=null;this.ia=-1;this.rg.Fa=this};mb.prototype.toString=function(){return null!==this.la?\"SetIterator@\"+this.la.value:\"SetIterator\"};\nma.Object.defineProperties(mb.prototype,{iterator:{get:function(){return this}},count:{get:function(){return this.rg.Cb}}});mb.prototype.first=mb.prototype.first;mb.prototype.hasNext=mb.prototype.ed;mb.prototype.next=mb.prototype.next;mb.prototype.reset=mb.prototype.reset;mb.className=\"SetIterator\";\nfunction F(a){Ya(this);this.s=!1;this.Eb={};this.Cb=0;this.Fa=null;this.Aa=0;this.Ue=this.ba=null;void 0!==a&&(\"function\"===typeof a||\"string\"===typeof a?ya():this.addAll(a))}t=F.prototype;t.ib=function(){var a=this.Aa;a++;999999999=this.Cb)return fb;var a=this.Fa;return null!==a?(a.reset(),a):new mb(this)}}});F.prototype.toList=F.prototype.lw;F.prototype.toArray=F.prototype.na;F.prototype.clear=F.prototype.clear;F.prototype.retainAll=F.prototype.qA;F.prototype.removeAll=F.prototype.Fq;\nF.prototype[\"delete\"]=F.prototype.delete;F.prototype.remove=F.prototype.remove;F.prototype.first=F.prototype.first;F.prototype.containsAny=F.prototype.Vy;F.prototype.containsAll=F.prototype.Uy;F.prototype.has=F.prototype.has;F.prototype.contains=F.prototype.contains;F.prototype.addAll=F.prototype.addAll;F.prototype.add=F.prototype.add;F.prototype.thaw=F.prototype.ea;F.prototype.freeze=F.prototype.freeze;var pb=1;F.className=\"Set\";F.uniqueHash=Ya;F.hashIdUnique=nb;F.hashId=lb;\nfunction rb(a){this.fa=a;this.ia=a.Aa;this.la=null}rb.prototype.reset=function(){this.ia=this.fa.Aa;this.la=null};rb.prototype.next=function(){var a=this.fa;if(a.Aa!==this.ia&&null===this.key)return!1;var b=this.la;b=null===b?a.ba:b.oa;if(null!==b)return this.la=b,this.value=this.key=a=b.key,!0;this.Bd();return!1};rb.prototype.ed=function(){return this.next()};rb.prototype.first=function(){var a=this.fa;this.ia=a.Aa;a=a.ba;return null!==a?(this.la=a,this.value=this.key=a=a.key):null};\nrb.prototype.any=function(a){var b=this.fa;this.la=null;for(b=b.ba;null!==b;){if(a(b.key))return!0;b=b.oa}return!1};rb.prototype.all=function(a){var b=this.fa;this.la=null;for(b=b.ba;null!==b;){if(!a(b.key))return!1;b=b.oa}return!0};rb.prototype.each=function(a){var b=this.fa;this.la=null;for(b=b.ba;null!==b;)a(b.key),b=b.oa;return this};rb.prototype.map=function(a){var b=this.fa;this.la=null;var c=new E;for(b=b.ba;null!==b;)c.add(a(b.key)),b=b.oa;return c.iterator};\nrb.prototype.filter=function(a){var b=this.fa;this.la=null;var c=new E;for(b=b.ba;null!==b;){var d=b.key;a(d)&&c.add(d);b=b.oa}return c.iterator};rb.prototype.Bd=function(){this.value=this.key=null;this.ia=-1};rb.prototype.toString=function(){return null!==this.la?\"MapKeySetIterator@\"+this.la.value:\"MapKeySetIterator\"};ma.Object.defineProperties(rb.prototype,{iterator:{get:function(){return this}},count:{get:function(){return this.fa.Cb}}});\nrb.prototype.first=rb.prototype.first;rb.prototype.hasNext=rb.prototype.ed;rb.prototype.next=rb.prototype.next;rb.prototype.reset=rb.prototype.reset;rb.className=\"MapKeySetIterator\";function sb(a){F.call(this);Ya(this);this.s=!0;this.fa=a}la(sb,F);t=sb.prototype;t.freeze=function(){return this};t.ea=function(){return this};t.toString=function(){return\"MapKeySet(\"+this.fa.toString()+\")\"};t.add=function(){B(\"This Set is read-only: \"+this.toString());return this};t.contains=function(a){return this.fa.contains(a)};\nt.has=function(a){return this.contains(a)};t.remove=function(){B(\"This Set is read-only: \"+this.toString());return!1};t.delete=function(a){return this.remove(a)};t.clear=function(){B(\"This Set is read-only: \"+this.toString())};t.first=function(){var a=this.fa.ba;return null!==a?a.key:null};sb.prototype.any=function(a){for(var b=this.fa.ba;null!==b;){if(a(b.key))return!0;b=b.oa}return!1};sb.prototype.all=function(a){for(var b=this.fa.ba;null!==b;){if(!a(b.key))return!1;b=b.oa}return!0};\nsb.prototype.each=function(a){for(var b=this.fa.ba;null!==b;)a(b.key),b=b.oa;return this};sb.prototype.map=function(a){for(var b=new F,c=this.fa.ba;null!==c;)b.add(a(c.key)),c=c.oa;return b};sb.prototype.filter=function(a){for(var b=new F,c=this.fa.ba;null!==c;){var d=c.key;a(d)&&b.add(d);c=c.oa}return b};sb.prototype.copy=function(){return new sb(this.fa)};sb.prototype.mw=function(){var a=new F,b=this.fa.Eb,c;for(c in b)a.add(b[c].key);return a};\nsb.prototype.na=function(){var a=this.fa.Eb,b=Array(this.fa.Cb),c=0,d;for(d in a)b[c]=a[d].key,c++;return b};sb.prototype.lw=function(){var a=new E,b=this.fa.Eb,c;for(c in b)a.add(b[c].key);return a};ma.Object.defineProperties(sb.prototype,{count:{get:function(){return this.fa.Cb}},size:{get:function(){return this.fa.Cb}},iterator:{get:function(){return 0>=this.fa.Cb?fb:new rb(this.fa)}}});\nsb.prototype.toList=sb.prototype.lw;sb.prototype.toArray=sb.prototype.na;sb.prototype.toSet=sb.prototype.mw;sb.prototype.first=sb.prototype.first;sb.prototype.clear=sb.prototype.clear;sb.prototype[\"delete\"]=sb.prototype.delete;sb.prototype.remove=sb.prototype.remove;sb.prototype.has=sb.prototype.has;sb.prototype.contains=sb.prototype.contains;sb.prototype.add=sb.prototype.add;sb.prototype.thaw=sb.prototype.ea;sb.prototype.freeze=sb.prototype.freeze;sb.className=\"MapKeySet\";\nfunction tb(a){this.fa=a;a.Te=null;this.ia=a.Aa;this.la=null}tb.prototype.reset=function(){var a=this.fa;a.Te=null;this.ia=a.Aa;this.la=null};tb.prototype.next=function(){var a=this.fa;if(a.Aa!==this.ia&&null===this.key)return!1;var b=this.la;b=null===b?a.ba:b.oa;if(null!==b)return this.la=b,this.value=b.value,this.key=b.key,!0;this.Bd();return!1};tb.prototype.ed=function(){return this.next()};\ntb.prototype.first=function(){var a=this.fa;this.ia=a.Aa;a=a.ba;if(null!==a){this.la=a;var b=a.value;this.key=a.key;return this.value=b}return null};tb.prototype.any=function(a){var b=this.fa;this.la=b.Te=null;for(b=b.ba;null!==b;){if(a(b.value))return!0;b=b.oa}return!1};tb.prototype.all=function(a){var b=this.fa;this.la=b.Te=null;for(b=b.ba;null!==b;){if(!a(b.value))return!1;b=b.oa}return!0};tb.prototype.each=function(a){var b=this.fa;this.la=b.Te=null;for(b=b.ba;null!==b;)a(b.value),b=b.oa;return this};\ntb.prototype.map=function(a){var b=this.fa;this.la=b.Te=null;var c=new E;for(b=b.ba;null!==b;)c.add(a(b.value)),b=b.oa;return c.iterator};tb.prototype.filter=function(a){var b=this.fa;this.la=b.Te=null;var c=new E;for(b=b.ba;null!==b;){var d=b.value;a(d)&&c.add(d);b=b.oa}return c.iterator};tb.prototype.Bd=function(){this.value=this.key=null;this.ia=-1;this.fa.Te=this};tb.prototype.toString=function(){return null!==this.la?\"MapValueSetIterator@\"+this.la.value:\"MapValueSetIterator\"};\nma.Object.defineProperties(tb.prototype,{iterator:{get:function(){return this}},count:{get:function(){return this.fa.Cb}}});tb.prototype.first=tb.prototype.first;tb.prototype.hasNext=tb.prototype.ed;tb.prototype.next=tb.prototype.next;tb.prototype.reset=tb.prototype.reset;tb.className=\"MapValueSetIterator\";function ob(a,b){this.key=a;this.value=b;this.Dl=this.oa=null}ob.prototype.toString=function(){return\"{\"+this.key+\":\"+this.value+\"}\"};\nob.className=\"KeyValuePair\";function ub(a){this.fa=a;a.Fa=null;this.ia=a.Aa;this.la=null}ub.prototype.reset=function(){var a=this.fa;a.Fa=null;this.ia=a.Aa;this.la=null};ub.prototype.next=function(){var a=this.fa;if(a.Aa!==this.ia&&null===this.key)return!1;var b=this.la;b=null===b?a.ba:b.oa;if(null!==b)return this.la=b,this.key=b.key,this.value=b.value,!0;this.Bd();return!1};ub.prototype.ed=function(){return this.next()};\nub.prototype.first=function(){var a=this.fa;this.ia=a.Aa;a=a.ba;return null!==a?(this.la=a,this.key=a.key,this.value=a.value,a):null};ub.prototype.any=function(a){var b=this.fa;this.la=b.Fa=null;for(b=b.ba;null!==b;){if(a(b))return!0;b=b.oa}return!1};ub.prototype.all=function(a){var b=this.fa;this.la=b.Fa=null;for(b=b.ba;null!==b;){if(!a(b))return!1;b=b.oa}return!0};ub.prototype.each=function(a){var b=this.fa;this.la=b.Fa=null;for(b=b.ba;null!==b;)a(b),b=b.oa;return this};\nub.prototype.map=function(a){var b=this.fa;this.la=b.Fa=null;var c=new E;for(b=b.ba;null!==b;)c.add(a(b)),b=b.oa;return c.iterator};ub.prototype.filter=function(a){var b=this.fa;this.la=b.Fa=null;var c=new E;for(b=b.ba;null!==b;)a(b)&&c.add(b),b=b.oa;return c.iterator};ub.prototype.Bd=function(){this.value=this.key=null;this.ia=-1;this.fa.Fa=this};ub.prototype.toString=function(){return null!==this.la?\"MapIterator@\"+this.la:\"MapIterator\"};\nma.Object.defineProperties(ub.prototype,{iterator:{get:function(){return this}},count:{get:function(){return this.fa.Cb}}});ub.prototype.first=ub.prototype.first;ub.prototype.hasNext=ub.prototype.ed;ub.prototype.next=ub.prototype.next;ub.prototype.reset=ub.prototype.reset;ub.className=\"MapIterator\";\nfunction H(a){Ya(this);this.s=!1;this.Eb={};this.Cb=0;this.Te=this.Fa=null;this.Aa=0;this.Ue=this.ba=null;void 0!==a&&(\"function\"===typeof a||\"string\"===typeof a?ya():this.addAll(a))}t=H.prototype;t.ib=function(){var a=this.Aa;a++;999999999=this.count)return fb;var a=this.Fa;return null!==a?(a.reset(),a):new ub(this)}},iteratorKeys:{get:function(){return 0>=this.count?fb:new rb(this)}},iteratorValues:{get:function(){if(0>=this.count)return fb;\nvar a=this.Te;return null!==a?(a.reset(),a):new tb(this)}}});H.prototype.toKeySet=H.prototype.Df;H.prototype.toArray=H.prototype.na;H.prototype.clear=H.prototype.clear;H.prototype[\"delete\"]=H.prototype.delete;H.prototype.remove=H.prototype.remove;H.prototype.get=H.prototype.get;H.prototype.getValue=H.prototype.H;H.prototype.has=H.prototype.has;H.prototype.contains=H.prototype.contains;H.prototype.first=H.prototype.first;H.prototype.addAll=H.prototype.addAll;H.prototype.set=H.prototype.set;\nH.prototype.add=H.prototype.add;H.prototype.thaw=H.prototype.ea;H.prototype.freeze=H.prototype.freeze;H.className=\"Map\";function I(a,b){void 0===a?this.y=this.x=0:\"number\"===typeof a&&\"number\"===typeof b?(this.x=a,this.y=b):B(\"Invalid arguments to Point constructor: \"+a+\", \"+b);this.s=!1}I.prototype.assign=function(a){this.x=a.x;this.y=a.y;return this};I.prototype.h=function(a,b){this.x=a;this.y=b;return this};I.prototype.Fg=function(a,b){this.x=a;this.y=b;return this};\nI.prototype.set=function(a){this.x=a.x;this.y=a.y;return this};I.prototype.copy=function(){var a=new I;a.x=this.x;a.y=this.y;return a};t=I.prototype;t.ca=function(){this.s=!0;Object.freeze(this);return this};t.G=function(){return this.s||Object.isFrozen(this)?this:this.copy().freeze()};t.freeze=function(){this.s=!0;return this};t.ea=function(){Object.isFrozen(this)&&B(\"cannot thaw constant: \"+this);this.s=!1;return this};\nfunction vb(a){if(\"string\"===typeof a){a=a.split(\" \");for(var b=0,c=0;\"\"===a[b];)b++;var d=a[b++];d&&(c=parseFloat(d));for(var e=0;\"\"===a[b];)b++;(d=a[b++])&&(e=parseFloat(d));return new I(c,e)}return new I}function wb(a){return a.x.toString()+\" \"+a.y.toString()}t.toString=function(){return\"Point(\"+this.x+\",\"+this.y+\")\"};t.w=function(a){return a instanceof I?this.x===a.x&&this.y===a.y:!1};t.Ri=function(a,b){return this.x===a&&this.y===b};t.Ma=function(a){return J.A(this.x,a.x)&&J.A(this.y,a.y)};\nt.add=function(a){this.x+=a.x;this.y+=a.y;return this};t.Zd=function(a){this.x-=a.x;this.y-=a.y;return this};t.offset=function(a,b){this.x+=a;this.y+=b;return this};I.prototype.rotate=function(a){if(0===a)return this;var b=this.x,c=this.y;if(0===b&&0===c)return this;360<=a?a-=360:0>a&&(a+=360);if(90===a){a=0;var d=1}else 180===a?(a=-1,d=0):270===a?(a=0,d=-1):(d=a*Math.PI/180,a=Math.cos(d),d=Math.sin(d));this.x=a*b-d*c;this.y=d*b+a*c;return this};t=I.prototype;\nt.scale=function(a,b){this.x*=a;this.y*=b;return this};t.Ae=function(a){var b=a.x-this.x;a=a.y-this.y;return b*b+a*a};t.dd=function(a,b){a-=this.x;b-=this.y;return a*a+b*b};t.normalize=function(){var a=this.x,b=this.y,c=Math.sqrt(a*a+b*b);0b?270:0;if(0===b)return 0a?c=0>b?c+180:180-c:0>b&&(c=360-c);return c}t.kA=function(a,b,c,d){J.Lh(a,b,c,d,this.x,this.y,this);return this};t.lA=function(a,b){J.Lh(a.x,a.y,b.x,b.y,this.x,this.y,this);return this};t.wA=function(a,b,c,d){J.mq(this.x,this.y,a,b,c,d,this);return this};t.xA=function(a,b){J.mq(this.x,this.y,a.x,a.y,b.width,b.height,this);return this};\nt.dj=function(a,b){this.x=a.x+b.x*a.width+b.offsetX;this.y=a.y+b.y*a.height+b.offsetY;return this};t.xk=function(a,b,c,d,e){this.x=a+e.x*c+e.offsetX;this.y=b+e.y*d+e.offsetY;return this};t.transform=function(a){a.ra(this);return this};function zb(a,b){b.Vd(a);return a}function Ab(a,b,c,d,e,f){var g=e-c,h=f-d,k=g*g+h*h;c-=a;d-=b;var l=-c*g-d*h;if(0>=l||l>=k)return g=e-a,h=f-b,Math.min(c*c+d*d,g*g+h*h);a=g*d-h*c;return a*a/k}function Bb(a,b,c,d){a=c-a;b=d-b;return a*a+b*b}\nfunction Cb(a,b,c,d){a=c-a;b=d-b;if(0===a)return 0b?270:0;if(0===b)return 0a?d=0>b?d+180:180-d:0>b&&(d=360-d);return d}t.v=function(){return isFinite(this.x)&&isFinite(this.y)};I.alloc=function(){var a=Db.pop();return void 0===a?new I:a};I.allocAt=function(a,b){var c=Db.pop();if(void 0===c)return new I(a,b);c.x=a;c.y=b;return c};I.free=function(a){Db.push(a)};I.prototype.isReal=I.prototype.v;\nI.prototype.setSpot=I.prototype.xk;I.prototype.setRectSpot=I.prototype.dj;I.prototype.snapToGridPoint=I.prototype.xA;I.prototype.snapToGrid=I.prototype.wA;I.prototype.projectOntoLineSegmentPoint=I.prototype.lA;I.prototype.projectOntoLineSegment=I.prototype.kA;I.intersectingLineSegments=function(a,b,c,d,e,f,g,h){return J.sq(a,b,c,d,e,f,g,h)};I.prototype.direction=I.prototype.direction;I.prototype.directionPoint=I.prototype.Ta;I.prototype.normalize=I.prototype.normalize;\nI.prototype.distanceSquared=I.prototype.dd;I.prototype.distanceSquaredPoint=I.prototype.Ae;I.prototype.scale=I.prototype.scale;I.prototype.rotate=I.prototype.rotate;I.prototype.offset=I.prototype.offset;I.prototype.subtract=I.prototype.Zd;I.prototype.add=I.prototype.add;I.prototype.equalsApprox=I.prototype.Ma;I.prototype.equalTo=I.prototype.Ri;I.prototype.equals=I.prototype.w;I.prototype.set=I.prototype.set;I.prototype.setTo=I.prototype.Fg;var Fb=null,Gb=null,Hb=null,Ib=null,Jb=null,Db=[];\nI.className=\"Point\";I.parse=vb;I.stringify=wb;I.distanceLineSegmentSquared=Ab;I.distanceSquared=Bb;I.direction=Cb;I.Origin=Fb=(new I(0,0)).ca();I.InfiniteTopLeft=Gb=(new I(-Infinity,-Infinity)).ca();I.InfiniteBottomRight=Hb=(new I(Infinity,Infinity)).ca();I.SixPoint=Ib=(new I(6,6)).ca();I.NoPoint=Jb=(new I(NaN,NaN)).ca();I.parse=vb;I.stringify=wb;I.distanceLineSegmentSquared=Ab;I.distanceSquared=Bb;I.direction=Cb;\nfunction M(a,b){void 0===a?this.height=this.width=0:\"number\"===typeof a&&(0<=a||isNaN(a))&&\"number\"===typeof b&&(0<=b||isNaN(b))?(this.width=a,this.height=b):B(\"Invalid arguments to Size constructor: \"+a+\", \"+b);this.s=!1}var Kb,Lb,Mb,Nb,Ob,Pb,Rb;M.prototype.assign=function(a){this.width=a.width;this.height=a.height;return this};M.prototype.h=function(a,b){this.width=a;this.height=b;return this};M.prototype.Fg=function(a,b){this.width=a;this.height=b;return this};\nM.prototype.set=function(a){this.width=a.width;this.height=a.height;return this};M.prototype.copy=function(){var a=new M;a.width=this.width;a.height=this.height;return a};t=M.prototype;t.ca=function(){this.s=!0;Object.freeze(this);return this};t.G=function(){return this.s||Object.isFrozen(this)?this:this.copy().freeze()};t.freeze=function(){this.s=!0;return this};t.ea=function(){Object.isFrozen(this)&&B(\"cannot thaw constant: \"+this);this.s=!1;return this};\nfunction Sb(a){if(\"string\"===typeof a){a=a.split(\" \");for(var b=0,c=0;\"\"===a[b];)b++;var d=a[b++];d&&(c=parseFloat(d));for(var e=0;\"\"===a[b];)b++;(d=a[b++])&&(e=parseFloat(d));return new M(c,e)}return new M}function Tb(a){return a.width.toString()+\" \"+a.height.toString()}t.toString=function(){return\"Size(\"+this.width+\",\"+this.height+\")\"};t.w=function(a){return a instanceof M?this.width===a.width&&this.height===a.height:!1};t.Ri=function(a,b){return this.width===a&&this.height===b};\nt.Ma=function(a){return J.A(this.width,a.width)&&J.A(this.height,a.height)};t.v=function(){return isFinite(this.width)&&isFinite(this.height)};M.alloc=function(){var a=Ub.pop();return void 0===a?new M:a};M.free=function(a){Ub.push(a)};M.prototype.isReal=M.prototype.v;M.prototype.equalsApprox=M.prototype.Ma;M.prototype.equalTo=M.prototype.Ri;M.prototype.equals=M.prototype.w;M.prototype.set=M.prototype.set;M.prototype.setTo=M.prototype.Fg;var Ub=[];M.className=\"Size\";M.parse=Sb;M.stringify=Tb;\nM.ZeroSize=Kb=(new M(0,0)).ca();M.OneSize=Lb=(new M(1,1)).ca();M.SixSize=Mb=(new M(6,6)).ca();M.EightSize=Nb=(new M(8,8)).ca();M.TenSize=Ob=(new M(10,10)).ca();M.InfiniteSize=Pb=(new M(Infinity,Infinity)).ca();M.NoSize=Rb=(new M(NaN,NaN)).ca();M.parse=Sb;M.stringify=Tb;\nfunction N(a,b,c,d){void 0===a?this.height=this.width=this.y=this.x=0:a instanceof I?(c=a.x,a=a.y,b instanceof I?(d=b.x,b=b.y,this.x=Math.min(c,d),this.y=Math.min(a,b),this.width=Math.abs(c-d),this.height=Math.abs(a-b)):b instanceof M?(this.x=c,this.y=a,this.width=b.width,this.height=b.height):B(\"Incorrect arguments supplied to Rect constructor\")):\"number\"===typeof a&&\"number\"===typeof b&&\"number\"===typeof c&&(0<=c||isNaN(c))&&\"number\"===typeof d&&(0<=d||isNaN(d))?(this.x=a,this.y=b,this.width=c,\nthis.height=d):B(\"Invalid arguments to Rect constructor: \"+a+\", \"+b+\", \"+c+\", \"+d);this.s=!1}t=N.prototype;t.assign=function(a){this.x=a.x;this.y=a.y;this.width=a.width;this.height=a.height;return this};t.h=function(a,b,c,d){this.x=a;this.y=b;this.width=c;this.height=d;return this};function Vb(a,b,c){a.width=b;a.height=c}t.Fg=function(a,b,c,d){this.x=a;this.y=b;this.width=c;this.height=d;return this};t.set=function(a){this.x=a.x;this.y=a.y;this.width=a.width;this.height=a.height;return this};\nt.hd=function(a){this.x=a.x;this.y=a.y;return this};t.uA=function(a){this.width=a.width;this.height=a.height;return this};N.prototype.copy=function(){var a=new N;a.x=this.x;a.y=this.y;a.width=this.width;a.height=this.height;return a};t=N.prototype;t.ca=function(){this.s=!0;Object.freeze(this);return this};t.G=function(){return this.s||Object.isFrozen(this)?this:this.copy().freeze()};t.freeze=function(){this.s=!0;return this};\nt.ea=function(){Object.isFrozen(this)&&B(\"cannot thaw constant: \"+this);this.s=!1;return this};function Wb(a){if(\"string\"===typeof a){a=a.split(\" \");for(var b=0,c=0;\"\"===a[b];)b++;var d=a[b++];d&&(c=parseFloat(d));for(var e=0;\"\"===a[b];)b++;(d=a[b++])&&(e=parseFloat(d));for(var f=0;\"\"===a[b];)b++;(d=a[b++])&&(f=parseFloat(d));for(var g=0;\"\"===a[b];)b++;(d=a[b++])&&(g=parseFloat(d));return new N(c,e,f,g)}return new N}\nfunction Zb(a){return a.x.toString()+\" \"+a.y.toString()+\" \"+a.width.toString()+\" \"+a.height.toString()}t.toString=function(){return\"Rect(\"+this.x+\",\"+this.y+\",\"+this.width+\",\"+this.height+\")\"};t.w=function(a){return a instanceof N?this.x===a.x&&this.y===a.y&&this.width===a.width&&this.height===a.height:!1};t.Ri=function(a,b,c,d){return this.x===a&&this.y===b&&this.width===c&&this.height===d};t.Ma=function(a){return J.A(this.x,a.x)&&J.A(this.y,a.y)&&J.A(this.width,a.width)&&J.A(this.height,a.height)};\nfunction $b(a,b){return J.$(a.x,b.x)&&J.$(a.y,b.y)&&J.$(a.width,b.width)&&J.$(a.height,b.height)}t.aa=function(a){return this.x<=a.x&&this.x+this.width>=a.x&&this.y<=a.y&&this.y+this.height>=a.y};t.ze=function(a){return this.x<=a.x&&a.x+a.width<=this.x+this.width&&this.y<=a.y&&a.y+a.height<=this.y+this.height};t.contains=function(a,b,c,d){void 0===c&&(c=0);void 0===d&&(d=0);return this.x<=a&&a+c<=this.x+this.width&&this.y<=b&&b+d<=this.y+this.height};t.offset=function(a,b){this.x+=a;this.y+=b;return this};\nt.Vc=function(a,b){return ac(this,b,a,b,a)};t.cq=function(a){return ac(this,a.top,a.right,a.bottom,a.left)};t.kw=function(a){return ac(this,-a.top,-a.right,-a.bottom,-a.left)};t.Oz=function(a,b,c,d){return ac(this,a,b,c,d)};function ac(a,b,c,d,e){var f=a.width;c+e<=-f?(a.x+=f/2,a.width=0):(a.x-=e,a.width+=c+e);c=a.height;b+d<=-c?(a.y+=c/2,a.height=0):(a.y-=b,a.height+=b+d);return a}t.Sz=function(a){return bc(this,a.x,a.y,a.width,a.height)};t.Dv=function(a,b,c,d){return bc(this,a,b,c,d)};\nfunction bc(a,b,c,d,e){var f=Math.max(a.x,b),g=Math.max(a.y,c);b=Math.min(a.x+a.width,b+d);c=Math.min(a.y+a.height,c+e);a.x=f;a.y=g;a.width=Math.max(0,b-f);a.height=Math.max(0,c-g);return a}t.Gc=function(a){return this.Ev(a.x,a.y,a.width,a.height)};t.Ev=function(a,b,c,d){var e=this.width,f=this.x;if(Infinity!==e&&Infinity!==c&&(e+=f,c+=a,isNaN(c)||isNaN(e)||f>c||a>e))return!1;a=this.height;c=this.y;return Infinity!==a&&Infinity!==d&&(a+=c,d+=b,isNaN(d)||isNaN(a)||c>d||b>a)?!1:!0};\nfunction dc(a,b){var c=a.width,d=a.x,e=b.x-10;if(d>b.width+10+10+e||e>c+d)return!1;c=a.height;a=a.y;d=b.y-10;return a>b.height+10+10+d||d>c+a?!1:!0}t.He=function(a){return ec(this,a.x,a.y,0,0)};t.Hc=function(a){return ec(this,a.x,a.y,a.width,a.height)};t.rw=function(a,b,c,d){void 0===c&&(c=0);void 0===d&&(d=0);return ec(this,a,b,c,d)};\nfunction ec(a,b,c,d,e){var f=Math.min(a.x,b),g=Math.min(a.y,c);b=Math.max(a.x+a.width,b+d);c=Math.max(a.y+a.height,c+e);a.x=f;a.y=g;a.width=b-f;a.height=c-g;return a}t.xk=function(a,b,c){this.x=a-c.offsetX-c.x*this.width;this.y=b-c.offsetY-c.y*this.height;return this};function fc(a,b,c,d,e,f,g,h){void 0===g&&(g=0);void 0===h&&(h=0);return a<=e&&e+g<=a+c&&b<=f&&f+h<=b+d}function gc(a,b,c,d,e,f,g,h){return a>g+e||e>c+a?!1:b>h+f||f>d+b?!1:!0}\nt.v=function(){return isFinite(this.x)&&isFinite(this.y)&&isFinite(this.width)&&isFinite(this.height)};t.Uz=function(){return 0===this.width&&0===this.height};N.alloc=function(){var a=hc.pop();return void 0===a?new N:a};N.allocAt=function(a,b,c,d){var e=hc.pop();return void 0===e?new N(a,b,c,d):e.h(a,b,c,d)};N.free=function(a){hc.push(a)};\nma.Object.defineProperties(N.prototype,{left:{get:function(){return this.x},set:function(a){this.x=a}},top:{get:function(){return this.y},set:function(a){this.y=a}},right:{get:function(){return this.x+this.width},set:function(a){this.x+=a-(this.x+this.width)}},bottom:{get:function(){return this.y+this.height},set:function(a){this.y+=a-(this.y+this.height)}},position:{\nget:function(){return new I(this.x,this.y)},set:function(a){this.x=a.x;this.y=a.y}},size:{get:function(){return new M(this.width,this.height)},set:function(a){this.width=a.width;this.height=a.height}},center:{get:function(){return new I(this.x+this.width/2,this.y+this.height/2)},set:function(a){this.x=a.x-this.width/2;this.y=a.y-this.height/2}},centerX:{get:function(){return this.x+this.width/2},\nset:function(a){this.x=a-this.width/2}},centerY:{get:function(){return this.y+this.height/2},set:function(a){this.y=a-this.height/2}}});N.prototype.isEmpty=N.prototype.Uz;N.prototype.isReal=N.prototype.v;N.intersectsLineSegment=function(a,b,c,d,e,f,g,h){return J.Rx(a,b,c,d,e,f,g,h)};N.prototype.setSpot=N.prototype.xk;N.prototype.union=N.prototype.rw;N.prototype.unionRect=N.prototype.Hc;N.prototype.unionPoint=N.prototype.He;N.prototype.intersects=N.prototype.Ev;\nN.prototype.intersectsRect=N.prototype.Gc;N.prototype.intersect=N.prototype.Dv;N.prototype.intersectRect=N.prototype.Sz;N.prototype.grow=N.prototype.Oz;N.prototype.subtractMargin=N.prototype.kw;N.prototype.addMargin=N.prototype.cq;N.prototype.inflate=N.prototype.Vc;N.prototype.offset=N.prototype.offset;N.prototype.contains=N.prototype.contains;N.prototype.containsRect=N.prototype.ze;N.prototype.containsPoint=N.prototype.aa;N.prototype.equalsApprox=N.prototype.Ma;N.prototype.equalTo=N.prototype.Ri;\nN.prototype.equals=N.prototype.w;N.prototype.setSize=N.prototype.uA;N.prototype.setPoint=N.prototype.hd;N.prototype.set=N.prototype.set;N.prototype.setTo=N.prototype.Fg;var ic=null,nc=null,hc=[];N.className=\"Rect\";N.parse=Wb;N.stringify=Zb;N.contains=fc;N.intersects=gc;N.ZeroRect=ic=(new N(0,0,0,0)).ca();N.NoRect=nc=(new N(NaN,NaN,NaN,NaN)).ca();N.parse=Wb;N.stringify=Zb;N.contains=fc;N.intersects=gc;\nfunction oc(a,b,c,d){void 0===a?this.left=this.bottom=this.right=this.top=0:void 0===b?this.left=this.bottom=this.right=this.top=a:void 0===c?(this.top=a,this.right=b,this.bottom=a,this.left=b):void 0!==d?(this.top=a,this.right=b,this.bottom=c,this.left=d):B(\"Invalid arguments to Margin constructor: \"+a+\", \"+b+\", \"+c+\", \"+d);this.s=!1}oc.prototype.assign=function(a){this.top=a.top;this.right=a.right;this.bottom=a.bottom;this.left=a.left;return this};\noc.prototype.Fg=function(a,b,c,d){this.top=a;this.right=b;this.bottom=c;this.left=d;return this};oc.prototype.set=function(a){this.top=a.top;this.right=a.right;this.bottom=a.bottom;this.left=a.left;return this};oc.prototype.copy=function(){var a=new oc;a.top=this.top;a.right=this.right;a.bottom=this.bottom;a.left=this.left;return a};t=oc.prototype;t.ca=function(){this.s=!0;Object.freeze(this);return this};t.G=function(){return this.s||Object.isFrozen(this)?this:this.copy().freeze()};\nt.freeze=function(){this.s=!0;return this};t.ea=function(){Object.isFrozen(this)&&B(\"cannot thaw constant: \"+this);this.s=!1;return this};\nfunction pc(a){if(\"string\"===typeof a){a=a.split(\" \");for(var b=0,c=NaN;\"\"===a[b];)b++;var d=a[b++];d&&(c=parseFloat(d));if(isNaN(c))return new oc;for(var e=NaN;\"\"===a[b];)b++;(d=a[b++])&&(e=parseFloat(d));if(isNaN(e))return new oc(c);for(var f=NaN;\"\"===a[b];)b++;(d=a[b++])&&(f=parseFloat(d));if(isNaN(f))return new oc(c,e);for(var g=NaN;\"\"===a[b];)b++;(d=a[b++])&&(g=parseFloat(d));return isNaN(g)?new oc(c,e):new oc(c,e,f,g)}return new oc}\nfunction qc(a){return a.top.toString()+\" \"+a.right.toString()+\" \"+a.bottom.toString()+\" \"+a.left.toString()}t.toString=function(){return\"Margin(\"+this.top+\",\"+this.right+\",\"+this.bottom+\",\"+this.left+\")\"};t.w=function(a){return a instanceof oc?this.top===a.top&&this.right===a.right&&this.bottom===a.bottom&&this.left===a.left:!1};t.Ri=function(a,b,c,d){return this.top===a&&this.right===b&&this.bottom===c&&this.left===d};\nt.Ma=function(a){return J.A(this.top,a.top)&&J.A(this.right,a.right)&&J.A(this.bottom,a.bottom)&&J.A(this.left,a.left)};t.v=function(){return isFinite(this.top)&&isFinite(this.right)&&isFinite(this.bottom)&&isFinite(this.left)};oc.alloc=function(){var a=rc.pop();return void 0===a?new oc:a};oc.free=function(a){rc.push(a)};oc.prototype.isReal=oc.prototype.v;oc.prototype.equalsApprox=oc.prototype.Ma;oc.prototype.equalTo=oc.prototype.Ri;oc.prototype.equals=oc.prototype.w;oc.prototype.set=oc.prototype.set;\noc.prototype.setTo=oc.prototype.Fg;var sc=null,tc=null,rc=[];oc.className=\"Margin\";oc.parse=pc;oc.stringify=qc;oc.ZeroMargin=sc=(new oc(0,0,0,0)).ca();oc.TwoMargin=tc=(new oc(2,2,2,2)).ca();oc.parse=pc;oc.stringify=qc;function P(a,b,c,d){void 0===a?this.offsetY=this.offsetX=this.y=this.x=0:(void 0===b&&(b=0),void 0===c&&(c=0),void 0===d&&(d=0),this.x=a,this.y=b,this.offsetX=c,this.offsetY=d);this.s=!1}\nvar uc,vc,xc,yc,zc,Ac,Bc,Cc,Fc,Gc,Hc,Ic,Jc,Kc,Lc,Mc,Nc,Pc,Qc,Rc,Sc,Tc,Uc,Vc,Yc,Zc,$c,ad,bd,cd,dd,ed,fd,gd,hd,id;P.prototype.assign=function(a){this.x=a.x;this.y=a.y;this.offsetX=a.offsetX;this.offsetY=a.offsetY;return this};P.prototype.Fg=function(a,b,c,d){this.x=a;this.y=b;this.offsetX=c;this.offsetY=d;return this};P.prototype.set=function(a){this.x=a.x;this.y=a.y;this.offsetX=a.offsetX;this.offsetY=a.offsetY;return this};\nP.prototype.copy=function(){var a=new P;a.x=this.x;a.y=this.y;a.offsetX=this.offsetX;a.offsetY=this.offsetY;return a};t=P.prototype;t.ca=function(){this.s=!0;Object.freeze(this);return this};t.G=function(){return this.s||Object.isFrozen(this)?this:this.copy().freeze()};t.freeze=function(){this.s=!0;return this};t.ea=function(){Object.isFrozen(this)&&B(\"cannot thaw constant: \"+this);this.s=!1;return this};function jd(a,b){a.x=NaN;a.y=NaN;a.offsetX=b;return a}\nfunction kd(a){if(\"string\"===typeof a){a=a.trim();if(\"None\"===a)return uc;if(\"TopLeft\"===a)return vc;if(\"Top\"===a||\"TopCenter\"===a||\"MiddleTop\"===a)return xc;if(\"TopRight\"===a)return yc;if(\"Left\"===a||\"LeftCenter\"===a||\"MiddleLeft\"===a)return zc;if(\"Center\"===a)return Ac;if(\"Right\"===a||\"RightCenter\"===a||\"MiddleRight\"===a)return Bc;if(\"BottomLeft\"===a)return Cc;if(\"Bottom\"===a||\"BottomCenter\"===a||\"MiddleBottom\"===a)return Fc;if(\"BottomRight\"===a)return Gc;if(\"TopSide\"===a)return Hc;if(\"LeftSide\"===\na)return Ic;if(\"RightSide\"===a)return Jc;if(\"BottomSide\"===a)return Kc;if(\"TopBottomSides\"===a)return Lc;if(\"LeftRightSides\"===a)return Mc;if(\"TopLeftSides\"===a)return Nc;if(\"TopRightSides\"===a)return Pc;if(\"BottomLeftSides\"===a)return Qc;if(\"BottomRightSides\"===a)return Rc;if(\"NotTopSide\"===a)return Sc;if(\"NotLeftSide\"===a)return Tc;if(\"NotRightSide\"===a)return Uc;if(\"NotBottomSide\"===a)return Vc;if(\"AllSides\"===a)return Yc;if(\"Default\"===a)return Zc;a=a.split(\" \");for(var b=0,c=0;\"\"===a[b];)b++;\nvar d=a[b++];void 0!==d&&0a&&(a+=360);if(0===a)return this;this.translate(b,c);if(90===a){a=0;var d=1}else 180===a?(a=-1,d=0):270===a?(a=0,d=-1):(d=a*Math.PI/180,a=Math.cos(d),d=Math.sin(d));var e=this.m12*a+this.m22*d,f=this.m11*-d+this.m21*a,g=this.m12*-d+this.m22*a;this.m11=this.m11*a+this.m21*d;this.m12=e;this.m21=f;this.m22=g;this.translate(-b,-c);return this};t=rd.prototype;t.translate=function(a,b){this.dx+=this.m11*a+this.m21*b;this.dy+=this.m12*a+this.m22*b;return this};\nt.scale=function(a,b){void 0===b&&(b=a);this.m11*=a;this.m12*=a;this.m21*=b;this.m22*=b;return this};t.ra=function(a){var b=a.x,c=a.y;return a.h(b*this.m11+c*this.m21+this.dx,b*this.m12+c*this.m22+this.dy)};t.Vd=function(a){var b=1/(this.m11*this.m22-this.m12*this.m21),c=a.x,d=a.y;return a.h(c*this.m22*b+d*-this.m21*b+b*(this.m21*this.dy-this.m22*this.dx),c*-this.m12*b+d*this.m11*b+b*(this.m12*this.dx-this.m11*this.dy))};\nt.qw=function(a){var b=a.x,c=a.y,d=b+a.width,e=c+a.height,f=this.m11,g=this.m12,h=this.m21,k=this.m22,l=this.dx,m=this.dy,n=b*f+c*h+l,p=b*g+c*k+m,r=d*f+c*h+l,q=d*g+c*k+m;c=b*f+e*h+l;b=b*g+e*k+m;f=d*f+e*h+l;d=d*g+e*k+m;e=Math.min(n,r);n=Math.max(n,r);r=Math.min(p,q);p=Math.max(p,q);e=Math.min(e,c);n=Math.max(n,c);r=Math.min(r,b);p=Math.max(p,b);e=Math.min(e,f);n=Math.max(n,f);r=Math.min(r,d);p=Math.max(p,d);a.h(e,r,n-e,p-r);return a};rd.alloc=function(){var a=sd.pop();return void 0===a?new rd:a};\nrd.free=function(a){sd.push(a)};rd.prototype.transformRect=rd.prototype.qw;rd.prototype.invertedTransformPoint=rd.prototype.Vd;rd.prototype.transformPoint=rd.prototype.ra;rd.prototype.scale=rd.prototype.scale;rd.prototype.translate=rd.prototype.translate;rd.prototype.rotate=rd.prototype.rotate;rd.prototype.invert=rd.prototype.tt;rd.prototype.multiplyInverted=rd.prototype.Lv;rd.prototype.multiply=rd.prototype.multiply;rd.prototype.reset=rd.prototype.reset;rd.prototype.isIdentity=rd.prototype.ut;\nrd.prototype.equals=rd.prototype.w;rd.prototype.set=rd.prototype.set;var sd=[];rd.className=\"Transform\";rd.xF=\"54a702f3e53909c447824c6706603faf4c\";\nvar J={DA:\"7da71ca0ad381e90\",Ig:(Math.sqrt(2)-1)/3*4,Hw:null,sqrt:function(a){if(0>=a)return 0;var b=J.Hw;if(null===b){b=[];for(var c=0;2E3>=c;c++)b[c]=Math.sqrt(c);J.Hw=b}return 1>a?(c=1/a,2E3>=c?1/b[c|0]:Math.sqrt(a)):2E3>=a?b[a|0]:Math.sqrt(a)},A:function(a,b){a-=b;return.5>a&&-.5a&&-5E-8=e&&(e=1E-6);if(am-l)if(a-c>e||c-a>e){if(f=(d-b)/(c-a)*(f-a)+b,f-e<=g&&g<=f+e)return!0}else return!0;else if(b-d>e||d-b>e){if(g=(c-a)/(d-b)*(g-b)+a,g-e<=f&&f<=g+e)return!0}else return!0;return!1},at:function(a,b,c,d,e,f,g,h,k,l,m,n){if(J.Nb(a,b,g,h,n,c,d)&&J.Nb(a,b,g,h,n,e,f))return J.Nb(a,b,g,h,n,l,m);var p=(a+c)/2,r=(b+d)/2,q=(c+e)/2,u=(d+f)/2;e=(e+g)/2;f=(f+h)/2;d=(p+q)/2;c=(r+u)/2;q=(q+e)/2;u=(u+f)/2;var v=(d+q)/2,w=(c+u)/2;return J.at(a,\nb,p,r,d,c,v,w,k,l,m,n)||J.at(v,w,q,u,e,f,g,h,k,l,m,n)},Qy:function(a,b,c,d,e,f,g,h,k){var l=(c+e)/2,m=(d+f)/2;k.h((((a+c)/2+l)/2+(l+(e+g)/2)/2)/2,(((b+d)/2+m)/2+(m+(f+h)/2)/2)/2);return k},Py:function(a,b,c,d,e,f,g,h){var k=(c+e)/2,l=(d+f)/2;return Cb(((a+c)/2+k)/2,((b+d)/2+l)/2,(k+(e+g)/2)/2,(l+(f+h)/2)/2)},bm:function(a,b,c,d,e,f,g,h,k,l){if(J.Nb(a,b,g,h,k,c,d)&&J.Nb(a,b,g,h,k,e,f))ec(l,a,b,0,0),ec(l,g,h,0,0);else{var m=(a+c)/2,n=(b+d)/2,p=(c+e)/2,r=(d+f)/2;e=(e+g)/2;f=(f+h)/2;d=(m+p)/2;c=(n+r)/\n2;p=(p+e)/2;r=(r+f)/2;var q=(d+p)/2,u=(c+r)/2;J.bm(a,b,m,n,d,c,q,u,k,l);J.bm(q,u,p,r,e,f,g,h,k,l)}return l},ye:function(a,b,c,d,e,f,g,h,k,l){if(J.Nb(a,b,g,h,k,c,d)&&J.Nb(a,b,g,h,k,e,f))0===l.length&&(l.push(a),l.push(b)),l.push(g),l.push(h);else{var m=(a+c)/2,n=(b+d)/2,p=(c+e)/2,r=(d+f)/2;e=(e+g)/2;f=(f+h)/2;d=(m+p)/2;c=(n+r)/2;p=(p+e)/2;r=(r+f)/2;var q=(d+p)/2,u=(c+r)/2;J.ye(a,b,m,n,d,c,q,u,k,l);J.ye(q,u,p,r,e,f,g,h,k,l)}return l},Sv:function(a,b,c,d,e,f,g,h,k,l){if(J.Nb(a,b,e,f,l,c,d))return J.Nb(a,\nb,e,f,l,h,k);var m=(a+c)/2,n=(b+d)/2;c=(c+e)/2;d=(d+f)/2;var p=(m+c)/2,r=(n+d)/2;return J.Sv(a,b,m,n,p,r,g,h,k,l)||J.Sv(p,r,c,d,e,f,g,h,k,l)},JA:function(a,b,c,d,e,f,g){g.h(((a+c)/2+(c+e)/2)/2,((b+d)/2+(d+f)/2)/2);return g},Rv:function(a,b,c,d,e,f,g,h){if(J.Nb(a,b,e,f,g,c,d))ec(h,a,b,0,0),ec(h,e,f,0,0);else{var k=(a+c)/2,l=(b+d)/2;c=(c+e)/2;d=(d+f)/2;var m=(k+c)/2,n=(l+d)/2;J.Rv(a,b,k,l,m,n,g,h);J.Rv(m,n,c,d,e,f,g,h)}return h},Cq:function(a,b,c,d,e,f,g,h){if(J.Nb(a,b,e,f,g,c,d))0===h.length&&(h.push(a),\nh.push(b)),h.push(e),h.push(f);else{var k=(a+c)/2,l=(b+d)/2;c=(c+e)/2;d=(d+f)/2;var m=(k+c)/2,n=(l+d)/2;J.Cq(a,b,k,l,m,n,g,h);J.Cq(m,n,c,d,e,f,g,h)}return h},eq:function(a,b,c,d,e,f,g,h,k,l,m,n,p,r){if(J.Nb(a,b,g,h,p,c,d)&&J.Nb(a,b,g,h,p,e,f)){var q=(a-g)*(l-n)-(b-h)*(k-m);if(0===q)return!1;p=((a*h-b*g)*(k-m)-(a-g)*(k*n-l*m))/q;q=((a*h-b*g)*(l-n)-(b-h)*(k*n-l*m))/q;if((k>m?k-m:m-k)<(l>n?l-n:n-l)){if(bh)return!1}else if(ag)return!1;r.h(p,q);return!0}q=\n(a+c)/2;var u=(b+d)/2;c=(c+e)/2;d=(d+f)/2;e=(e+g)/2;f=(f+h)/2;var v=(q+c)/2,w=(u+d)/2;c=(c+e)/2;d=(d+f)/2;var y=(v+c)/2,z=(w+d)/2,A=(m-k)*(m-k)+(n-l)*(n-l),C=!1;J.eq(a,b,q,u,v,w,y,z,k,l,m,n,p,r)&&(a=(r.x-k)*(r.x-k)+(r.y-l)*(r.y-l),a=m)return r;if((k>m?k-m:m-k)<(l>n?l-n:n-l)){if(bb)return r}else if(aa)return r;0p&&r--}else{q=(a+c)/2;u=(b+d)/2;var v=(c+e)/2,w=(d+f)/2;e=(e+g)/2;f=(f+h)/2;d=(q+v)/2;c=(u+w)/2;v=(v+e)/2;w=(w+f)/2;var y=(d+v)/2,z=(c+w)/2;r+=J.fq(a,b,q,u,d,c,y,z,k,l,m,n,p);r+=J.fq(y,z,v,w,e,f,g,h,k,l,m,n,p)}return r},Lh:function(a,b,c,d,e,f,g){if(J.$(a,c)){bb)return g.h(a,b),!1;g.h(a,f);return!0}if(J.$(b,d)){aa)return g.h(a,b),!1;g.h(e,b);return!0}e=((a-e)*(a-c)+(b-f)*(b-d))/((c-a)*(c-a)+(d-b)*(d-b));if(-5E-6>e)return g.h(a,b),!1;if(1.000005b)return k.h(a,b),!1;k.h(a,c);return!0}g=(d-b)/(c-a);if(J.$(h,g))return J.Lh(a,b,c,d,e,f,k),!1;e=(g*a-h*e+f-b)/(g-h);if(J.$(g,0)){aa)return k.h(a,b),!1;k.h(e,b);return!0}return J.Lh(a,b,c,d,e,g*(e-a)+b,k)},IA:function(a,b,c,d,e){return J.De(c.x,c.y,d.x,d.y,a.x,a.y,b.x,b.y,e)},HA:function(a,b,c,d,e,f,g,h,k,l){function m(c,d){var e=(c-a)*(c-a)+(d-b)*(d-b);e(c>a?c-a:a-c)){p=1-(c-e)*(c-e)/(p*p);if(0>p)return k;p=Math.sqrt(p);d=-l*p+f;m(c,l*p+f);m(c,d)}else{c=(d-b)/(c-a);d=1/(p*p)+c*c/(l*l);h=2*c*(b-c*a)/(l*l)-2*c*f/(l*l)-2*e/(p*p);p=h*h-4*d*(2*c*a*f/(l*l)-2*b*f/(l*l)+f*f/(l*l)+e*e/(p*p)-1+(b-c*a)*(b-c*a)/(l*l));if(0>p)return k;p=Math.sqrt(p);l=(-h+p)/(2*d);m(l,c*l-c*a+b);p=(-h-p)/(2*d);m(p,c*p-c*a+b)}return k},\nUc:function(a,b,c,d,e,f,g,h,k){var l=1E21,m=a,n=b;if(J.De(a,b,a,d,e,f,g,h,k)){var p=(k.x-e)*(k.x-e)+(k.y-f)*(k.y-f);pl},GA:function(a,b,c,d,e,f,g,h,k){c=a-c;g=e-g;0===c||0===g?0===c?(b=(f-h)/g,h=a,e=b*h+(f-\nb*e)):(f=(b-d)/c,h=e,e=f*h+(b-f*a)):(d=(b-d)/c,h=(f-h)/g,a=b-d*a,h=(f-h*e-a)/(d-h),e=d*h+a);k.h(h,e);return k},rt:function(a,b,c){return J.Rx(a.x,a.y,a.width,a.height,b.x,b.y,c.x,c.y)},Rx:function(a,b,c,d,e,f,g,h){var k=a+c,l=b+d;return e===g?(f=b):f===h?(e=a):fc(a,b,c,d,e,f)||fc(a,b,c,d,g,h)||J.sq(a,b,k,b,e,f,g,h)||J.sq(k,b,k,l,e,f,g,h)||J.sq(k,l,a,l,e,f,g,h)||J.sq(a,l,a,b,e,f,g,h)?!0:!1},sq:function(a,b,c,d,e,f,g,h){return 0>=\nJ.dt(a,b,c,d,e,f)*J.dt(a,b,c,d,g,h)&&0>=J.dt(e,f,g,h,a,b)*J.dt(e,f,g,h,c,d)},dt:function(a,b,c,d,e,f){c-=a;d-=b;a=e-a;b=f-b;f=a*d-b*c;0===f&&(f=a*c+b*d,0f&&(f=0)));return 0>f?-1:0a&&(a+=360);360<=a&&(a-=360);return a},Cx:function(a,b,c,d,e,f){var g=Math.PI;f||(d*=g/180,e*=g/180);var h=d>e?-1:1;f=[];var k=g/2,l=d;d=Math.min(2*g,Math.abs(e-d));if(1E-5>d)return k=l+h*Math.min(d,k),h=a+c*Math.cos(l),l=b+c*Math.sin(l),a+=c*Math.cos(k),b+=c*Math.sin(k),\nc=(h+a)/2,k=(l+b)/2,f.push([h,l,c,k,c,k,a,b]),f;for(;1E-5c,f=0>d;if(al;++l){b=\n.5*(h+k);if(b===h||b===k)break;var m=a/(b+e),n=g/(b+f);m=m*m+n*n-1;if(0m)k=b;else break}c=e*c/(b+e)-c;d=f*d/(b+f)-d;c=Math.sqrt(c*c+d*d)}else c=Math.abs(d-b);else d=a*a-b*b,f=a*c,fa?\"M\"+this.startX.toString()+\" \"+this.startY.toString()+\"L\"+this.endX.toString()+\" \"+this.endY.toString():\"M\"+this.startX.toFixed(a)+\" \"+this.startY.toFixed(a)+\"L\"+this.endX.toFixed(a)+\" \"+this.endY.toFixed(a);case Gd:var b=new N(this.startX,this.startY,0,0);b.rw(this.endX,this.endY,0,0);return 0>a?\"M\"+b.x.toString()+\" \"+b.y.toString()+\"H\"+b.right.toString()+\"V\"+b.bottom.toString()+\"H\"+b.left.toString()+\"z\":\"M\"+b.x.toFixed(a)+\n\" \"+b.y.toFixed(a)+\"H\"+b.right.toFixed(a)+\"V\"+b.bottom.toFixed(a)+\"H\"+b.left.toFixed(a)+\"z\";case Hd:b=new N(this.startX,this.startY,0,0);b.rw(this.endX,this.endY,0,0);if(0>a)return a=b.left.toString()+\" \"+(b.y+b.height/2).toString(),\"M\"+a+\"A\"+(b.width/2).toString()+\" \"+(b.height/2).toString()+\" 0 0 1 \"+(b.right.toString()+\" \"+(b.y+b.height/2).toString())+\"A\"+(b.width/2).toString()+\" \"+(b.height/2).toString()+\" 0 0 1 \"+a;var c=b.left.toFixed(a)+\" \"+(b.y+b.height/2).toFixed(a);return\"M\"+c+\"A\"+(b.width/\n2).toFixed(a)+\" \"+(b.height/2).toFixed(a)+\" 0 0 1 \"+(b.right.toFixed(a)+\" \"+(b.y+b.height/2).toFixed(a))+\"A\"+(b.width/2).toFixed(a)+\" \"+(b.height/2).toFixed(a)+\" 0 0 1 \"+c;case ud:b=\"\";c=this.figures.j;for(var d=c.length,e=0;e=A-1?!0:null!==k[u+1].match(/[UuBbMmZzLlHhVvCcSsQqTtAaFfXx]/)}function d(){u++;return k[u]}function e(){var a=new I(parseFloat(d()),parseFloat(d()));v===v.toLowerCase()&&(a.x=z.x+a.x,a.y=z.y+a.y);return a}function f(){return z=e()}function g(){return y=e()}function h(){var a=w.toLowerCase();return\"c\"!==a&&\"s\"!==a&&\"q\"!==a&&\"t\"!==a?z:new I(2*z.x-y.x,2*z.y-y.y)}void 0===b&&(b=!1);a=a.replace(/,/gm,\" \");a=a.replace(/([UuBbMmZzLlHhVvCcSsQqTtAaFfXx])([UuBbMmZzLlHhVvCcSsQqTtAaFfXx])/gm,\n\"$1 $2\");a=a.replace(/([UuBbMmZzLlHhVvCcSsQqTtAaFfXx])([UuBbMmZzLlHhVvCcSsQqTtAaFfXx])/gm,\"$1 $2\");a=a.replace(/([UuBbMmZzLlHhVvCcSsQqTtAaFfXx])([^\\s])/gm,\"$1 $2\");a=a.replace(/([^\\s])([UuBbMmZzLlHhVvCcSsQqTtAaFfXx])/gm,\"$1 $2\");a=a.replace(/([0-9])([+\\-])/gm,\"$1 $2\");a=a.replace(/([Aa](\\s+[0-9]+){3})\\s+([01])\\s*([01])/gm,\"$1 $3 $4 \");a=a.replace(/[\\s\\r\\t\\n]+/gm,\" \");a=a.replace(/^\\s+|\\s+$/g,\"\");var k=a.split(\" \");for(a=0;a=A-1);)if(w=v,v=d(),\"\"!==v)switch(v.toUpperCase()){case \"X\":p=!0;n=l=!1;break;case \"M\":r=f();null===a.fc||!0===p?(Kd(a,r.x,r.y,l,!n),p=!1):a.moveTo(r.x,r.y);for(m=z;!c();)r=f(),a.lineTo(r.x,r.y);break;\ncase \"L\":for(;!c();)r=f(),a.lineTo(r.x,r.y);break;case \"H\":for(;!c();)z=new I((v===v.toLowerCase()?z.x:0)+parseFloat(d()),z.y),a.lineTo(z.x,z.y);break;case \"V\":for(;!c();)z=new I(z.x,(v===v.toLowerCase()?z.y:0)+parseFloat(d())),a.lineTo(z.x,z.y);break;case \"C\":for(;!c();){r=e();q=g();var C=f();Ld(a,r.x,r.y,q.x,q.y,C.x,C.y)}break;case \"S\":for(;!c();)r=h(),q=g(),C=f(),Ld(a,r.x,r.y,q.x,q.y,C.x,C.y);break;case \"Q\":for(;!c();)r=g(),q=f(),Qd(a,r.x,r.y,q.x,q.y);break;case \"T\":for(;!c();)y=r=h(),q=f(),Qd(a,\nr.x,r.y,q.x,q.y);break;case \"B\":for(;!c();){r=parseFloat(d());q=parseFloat(d());C=parseFloat(d());var G=parseFloat(d()),L=parseFloat(d()),K=L,V=!1;c()||(K=parseFloat(d()),c()||(V=0!==parseFloat(d())));v===v.toLowerCase()&&(C+=z.x,G+=z.y);a.arcTo(r,q,C,G,L,K,V)}break;case \"A\":for(;!c();)r=Math.abs(parseFloat(d())),q=Math.abs(parseFloat(d())),C=parseFloat(d()),G=!!parseFloat(d()),L=!!parseFloat(d()),K=f(),Rd(a,r,q,C,G,L,K.x,K.y);break;case \"Z\":Sd(a);z=m;break;case \"F\":r=\"\";for(q=1;k[u+q];)if(null!==\nk[u+q].match(/[Uu]/))q++;else if(null===k[u+q].match(/[UuBbMmZzLlHhVvCcSsQqTtAaFfXx]/))q++;else{r=k[u+q];break}r.match(/[Mm]/)?l=!0:0g&&(g+=360),q.startAngle+=g);0>a&&(q.startAngle=180-q.startAngle,q.sweepAngle=-q.sweepAngle);0>d&&\n(q.startAngle=-q.startAngle,q.sweepAngle=-q.sweepAngle);q.radiusX*=Math.sqrt(a*a+c*c);void 0!==q.radiusY&&(q.radiusY*=Math.sqrt(b*b+d*d));break;case $d:g=q.endX;h=q.endY;q.endX=g*a+h*c+e;q.endY=g*b+h*d+f;0!==b&&(g=180*Math.atan2(b,a)/Math.PI,0>g&&(g+=360),q.xAxisRotation+=g);0>a&&(q.xAxisRotation=180-q.xAxisRotation,q.isClockwiseArc=!q.isClockwiseArc);0>d&&(q.xAxisRotation=-q.xAxisRotation,q.isClockwiseArc=!q.isClockwiseArc);q.radiusX*=Math.sqrt(a*a+c*c);q.radiusY*=Math.sqrt(b*b+d*d);break;default:B(\"Unknown Segment type: \"+\nq.type)}}}}this.qa=!0;return this};\nt.aa=function(a,b){void 0===b&&(b=0);var c=this.Rc,d=this.Sc,e=this.ec,f=this.mc;switch(this.type){case wd:return J.Nb(c,d,e,f,b,a.x,a.y);case Gd:var g=N.allocAt(Math.min(c,e)-b,Math.min(d,f)-b,Math.abs(e-c)+2*b,Math.abs(f-d)+2*b);a=g.aa(a);N.free(g);return a;case Hd:g=Math.min(c,e)-b;var h=Math.min(d,f)-b;c=(Math.abs(e-c)+2*b)/2;b=(Math.abs(f-d)+2*b)/2;if(0>=c||0>=b)return!1;g=a.x-(g+c);h=a.y-(h+b);return 1>=g*g/(c*c)+h*h/(b*b);case ud:return ce(this,a,b,!0,!1);default:return!1}};\nfunction ce(a,b,c,d,e){var f=b.x;b=b.y;for(var g=a.bounds.x-20,h=0,k,l,m,n,p=a.figures.j,r=p.length,q=0;q=a)return 0;if((e>g?e-g:g-e)<(f>h?f-h:h-f))if(fh)return 0}else{if(bf)return 0}else if(eg)return 0}else if(le)return 0;return 0a?a=0:1=f)return d=f-g,d=0===m?0:d/m,c=c[h],h=c[2*a],e=c[2*a+1],b.h(h+(c[2*a+2]-h)*d,e+(c[2*a+3]-e)*d),b;g+=m}}return b};\nt.Ox=function(a){0>a?a=0:1=e)return e=b[g],b=e[2*a],c=e[2*a+1],d=e[2*a+2],a=e[2*a+3],1>Math.abs(d-b)&&1>Math.abs(a-c)?0:1>Math.abs(d-b)?0<=a-c?90:270:1>Math.abs(a-c)?0<=d-b?0:180:180*Math.atan2(a-c,d-b)/Math.PI;f+=l}}return NaN};\nt.zv=function(a,b){0>a?a=0:1=f)return d=f-g,d=0===m?0:d/m,m=c[h],c=m[2*a],h=m[2*a+1],e=m[2*a+2],a=m[2*a+\n3],b[0]=c+(e-c)*d,b[1]=h+(a-h)*d,b[2]=1>Math.abs(e-c)&&1>Math.abs(a-h)?0:1>Math.abs(e-c)?0<=a-h?90:270:1>Math.abs(a-h)?0<=e-c?0:180:180*Math.atan2(a-h,e-c)/Math.PI,b;g+=m}}return b};\nt.Px=function(a){if(this.type===wd){var b=this.startX,c=this.startY,d=this.endX,e=this.endY;if(b!==d||c!==e){var f=a.x;a=a.y;if(b===d){if(c=d?d===c?0:1:Math.abs(a-c)/(d-g)}if(c===e)return b=d?d===b?0:1:Math.abs(f-b)/(d-g);g=(d-b)*(d-b)+(e-c)*(e-c);var h=I.alloc();J.Lh(b,c,d,e,f,a,h);a=h.x;f=h.y;I.free(h);return Math.sqrt(((a-b)*(a-b)+(f-c)*(f-c))/g)}}else if(this.type===Gd){g=this.startX;h=this.startY;var k=this.endX;\ne=this.endY;if(g!==k||h!==e){b=k-g;c=e-h;f=2*b+2*c;d=a.x;a=a.y;d=Math.min(Math.max(d,g),k);a=Math.min(Math.max(a,h),e);g=Math.abs(d-g);k=Math.abs(d-k);h=Math.abs(a-h);e=Math.abs(a-e);var l=Math.min(g,k,h,e);if(l===h)return d/f;if(l===k)return(b+a)/f;if(l===e)return(2*b+c-d)/f;if(l===g)return(2*b+2*c-a)/f}}else{b=this.flattenedSegments;c=this.flattenedLengths;f=this.flattenedTotalLength;d=I.alloc();e=Infinity;h=g=0;k=b.length;for(var m=l=0,n=0;na?0:1a?\"M\"+this.startX.toString()+\" \"+this.startY.toString():\"M\"+this.startX.toFixed(a)+\" \"+this.startY.toFixed(a);for(var c=this.segments.j,d=c.length,e=0;ea&&(a+=360),this.ue=a,this.Di=0,this.Ei=Math.max(d,0),this.kh=Math.max(e,0),this.sl=\"boolean\"===typeof g?!!g:!1,this.Kk=!!h):(this.ue=d,this.Di=e,a===Zd&&(f=Math.max(f,0)),this.Ei=f,\"number\"===typeof g?(a===Zd&&(g=Math.max(g,0)),this.kh=g):this.kh=0,this.Kk=this.sl=!1);this.wj=\n!1;this.qa=!0;this.Le=null}le.prototype.copy=function(){var a=new le;a.pa=this.pa;a.ec=this.ec;a.mc=this.mc;a.ue=this.ue;a.Di=this.Di;a.Ei=this.Ei;a.kh=this.kh;a.sl=this.sl;a.Kk=this.Kk;a.wj=this.wj;a.qa=this.qa;return a};t=le.prototype;\nt.Ma=function(a){if(!(a instanceof le)||this.type!==a.type||this.isClosed!==a.isClosed)return!1;switch(this.type){case Wd:case yd:return J.A(this.endX,a.endX)&&J.A(this.endY,a.endY);case Xd:return J.A(this.endX,a.endX)&&J.A(this.endY,a.endY)&&J.A(this.point1X,a.point1X)&&J.A(this.point1Y,a.point1Y)&&J.A(this.point2X,a.point2X)&&J.A(this.point2Y,a.point2Y);case Yd:return J.A(this.endX,a.endX)&&J.A(this.endY,a.endY)&&J.A(this.point1X,a.point1X)&&J.A(this.point1Y,a.point1Y);case Zd:return J.A(this.startAngle,\na.startAngle)&&J.A(this.sweepAngle,a.sweepAngle)&&J.A(this.centerX,a.centerX)&&J.A(this.centerY,a.centerY)&&J.A(this.radiusX,a.radiusX)&&J.A(this.radiusY,a.radiusY);case $d:return this.isClockwiseArc===a.isClockwiseArc&&this.isLargeArc===a.isLargeArc&&J.A(this.xAxisRotation,a.xAxisRotation)&&J.A(this.endX,a.endX)&&J.A(this.endY,a.endY)&&J.A(this.radiusX,a.radiusX)&&J.A(this.radiusY,a.radiusY);default:return!1}};t.cb=function(a){a.classType===le&&(this.type=a)};\nt.toString=function(a){void 0===a&&(a=-1);switch(this.type){case Wd:a=0>a?\"M\"+this.endX.toString()+\" \"+this.endY.toString():\"M\"+this.endX.toFixed(a)+\" \"+this.endY.toFixed(a);break;case yd:a=0>a?\"L\"+this.endX.toString()+\" \"+this.endY.toString():\"L\"+this.endX.toFixed(a)+\" \"+this.endY.toFixed(a);break;case Xd:a=0>a?\"C\"+this.point1X.toString()+\" \"+this.point1Y.toString()+\" \"+this.point2X.toString()+\" \"+this.point2Y.toString()+\" \"+this.endX.toString()+\" \"+this.endY.toString():\"C\"+this.point1X.toFixed(a)+\n\" \"+this.point1Y.toFixed(a)+\" \"+this.point2X.toFixed(a)+\" \"+this.point2Y.toFixed(a)+\" \"+this.endX.toFixed(a)+\" \"+this.endY.toFixed(a);break;case Yd:a=0>a?\"Q\"+this.point1X.toString()+\" \"+this.point1Y.toString()+\" \"+this.endX.toString()+\" \"+this.endY.toString():\"Q\"+this.point1X.toFixed(a)+\" \"+this.point1Y.toFixed(a)+\" \"+this.endX.toFixed(a)+\" \"+this.endY.toFixed(a);break;case Zd:a=0>a?\"B\"+this.startAngle.toString()+\" \"+this.sweepAngle.toString()+\" \"+this.centerX.toString()+\" \"+this.centerY.toString()+\n\" \"+this.radiusX.toString()+\" \"+this.radiusY.toString():\"B\"+this.startAngle.toFixed(a)+\" \"+this.sweepAngle.toFixed(a)+\" \"+this.centerX.toFixed(a)+\" \"+this.centerY.toFixed(a)+\" \"+this.radiusX.toFixed(a)+\" \"+this.radiusY.toFixed(a);break;case $d:a=0>a?\"A\"+this.radiusX.toString()+\" \"+this.radiusY.toString()+\" \"+this.xAxisRotation.toString()+\" \"+(this.isLargeArc?1:0)+\" \"+(this.isClockwiseArc?1:0)+\" \"+this.endX.toString()+\" \"+this.endY.toString():\"A\"+this.radiusX.toFixed(a)+\" \"+this.radiusY.toFixed(a)+\n\" \"+this.xAxisRotation.toFixed(a)+\" \"+(this.isLargeArc?1:0)+\" \"+(this.isClockwiseArc?1:0)+\" \"+this.endX.toFixed(a)+\" \"+this.endY.toFixed(a);break;default:a=this.type.toString()}return a+(this.wj?\"z\":\"\")};t.freeze=function(){this.s=!0;return this};t.ea=function(){this.s=!1;return this};t.close=function(){this.wj=!0;return this};\nfunction ae(a,b){if(null!==a.Le&&!1===b.qa)return a.Le;var c=a.radiusX,d=a.radiusY;void 0===d&&(d=c);if(0===c||0===d)return a.Le=[],a.Le;b=a.ue;var e=a.Di,f=J.Cx(0,0,c=r?g=Math.PI:1<=r&&(g=0);!k&&0g&&(g+=2*Math.PI);k=b>f?1:b/f;r=b>f?f/b:1;b=J.Cx(0,0,b>f?b:f,m,m+g,!0);f=rd.alloc();f.reset();f.translate(c,d);f.rotate(a.ue,0,0);f.scale(k,r);Ud(b,f);rd.free(f);a.Le=b;return a.Le}\nma.Object.defineProperties(le.prototype,{isClosed:{get:function(){return this.wj},set:function(a){this.wj!==a&&(this.wj=a,this.qa=!0)}},type:{get:function(){return this.pa},set:function(a){this.s&&ua(this,a);this.pa=a;this.qa=!0}},endX:{get:function(){return this.ec},set:function(a){this.s&&ua(this,a);this.ec=a;this.qa=!0}},endY:{get:function(){return this.mc},set:function(a){this.s&&\nua(this,a);this.mc=a;this.qa=!0}},point1X:{get:function(){return this.ue},set:function(a){this.s&&ua(this,a);this.ue=a;this.qa=!0}},point1Y:{get:function(){return this.Di},set:function(a){this.s&&ua(this,a);this.Di=a;this.qa=!0}},point2X:{get:function(){return this.Ei},set:function(a){this.s&&ua(this,a);this.Ei=a;this.qa=!0}},point2Y:{get:function(){return this.kh},set:function(a){this.s&&\nua(this,a);this.kh=a;this.qa=!0}},centerX:{get:function(){return this.ue},set:function(a){this.s&&ua(this,a);this.ue=a;this.qa=!0}},centerY:{get:function(){return this.Di},set:function(a){this.s&&ua(this,a);this.Di=a;this.qa=!0}},radiusX:{get:function(){return this.Ei},set:function(a){0>a&&va(a,\">= zero\",le,\"radiusX\");this.s&&ua(this,a);this.Ei=a;this.qa=!0}},radiusY:{get:function(){return this.kh},\nset:function(a){0>a&&va(a,\">= zero\",le,\"radiusY\");this.s&&ua(this,a);this.kh=a;this.qa=!0}},startAngle:{get:function(){return this.ec},set:function(a){this.ec!==a&&(this.s&&ua(this,a),a%=360,0>a&&(a+=360),this.ec=a,this.qa=!0)}},sweepAngle:{get:function(){return this.mc},set:function(a){this.s&&ua(this,a);360a&&(a=-360);this.mc=a;this.qa=!0}},isClockwiseArc:{get:function(){return this.Kk},set:function(a){this.s&&\nua(this,a);this.Kk=a;this.qa=!0}},isLargeArc:{get:function(){return this.sl},set:function(a){this.s&&ua(this,a);this.sl=a;this.qa=!0}},xAxisRotation:{get:function(){return this.ue},set:function(a){a%=360;0>a&&(a+=360);this.s&&ua(this,a);this.ue=a;this.qa=!0}}});le.prototype.equalsApprox=le.prototype.Ma;\nvar Wd=new D(le,\"Move\",0),yd=new D(le,\"Line\",1),Xd=new D(le,\"Bezier\",2),Yd=new D(le,\"QuadraticBezier\",3),Zd=new D(le,\"Arc\",4),$d=new D(le,\"SvgArc\",4);le.className=\"PathSegment\";le.Move=Wd;le.Line=yd;le.Bezier=Xd;le.QuadraticBezier=Yd;le.Arc=Zd;le.SvgArc=$d;function ne(){this.B=null;this.Yu=(new I(0,0)).freeze();this.iu=(new I(0,0)).freeze();this.cr=this.fs=0;this.dr=1;this.Wr=\"\";this.Ws=this.xr=!1;this.ur=this.fr=0;this.Mg=this.Hr=this.Qr=!1;this.Cr=null;this.Rs=0;this.bd=this.Qs=null}\nne.prototype.copy=function(){var a=new ne;return this.clone(a)};ne.prototype.clone=function(a){a.B=this.B;a.Yu.assign(this.viewPoint);a.iu.assign(this.documentPoint);a.fs=this.fs;a.cr=this.cr;a.dr=this.dr;a.Wr=this.Wr;a.xr=this.xr;a.Ws=this.Ws;a.fr=this.fr;a.ur=this.ur;a.Qr=this.Qr;a.Hr=this.Hr;a.Mg=this.Mg;a.Cr=this.Cr;a.Rs=this.Rs;a.Qs=this.Qs;a.bd=this.bd;return a};\nne.prototype.toString=function(){var a=\"^\";0!==this.modifiers&&(a+=\"M:\"+this.modifiers);0!==this.button&&(a+=\"B:\"+this.button);\"\"!==this.key&&(a+=\"K:\"+this.key);0!==this.clickCount&&(a+=\"C:\"+this.clickCount);0!==this.delta&&(a+=\"D:\"+this.delta);this.handled&&(a+=\"h\");this.bubbles&&(a+=\"b\");null!==this.documentPoint&&(a+=\"@\"+this.documentPoint.toString());return a};ne.prototype.oq=function(a,b){var c=this.diagram;if(null===c)return b;oe(c,this.event,a,b);return b};\nne.prototype.Ez=function(a,b){var c=this.diagram;if(null===c)return b;oe(c,this.event,a,b);b.assign(c.Pt(b));return b};\nma.Object.defineProperties(ne.prototype,{diagram:{get:function(){return this.B},set:function(a){this.B=a}},viewPoint:{get:function(){return this.Yu},set:function(a){this.Yu.assign(a)}},documentPoint:{get:function(){return this.iu},set:function(a){this.iu.assign(a)}},modifiers:{get:function(){return this.fs},set:function(a){this.fs=a}},button:{get:function(){return this.cr},\nset:function(a){this.cr=a;if(null===this.event)switch(a){case 0:this.buttons=1;break;case 1:this.buttons=4;break;case 2:this.buttons=2}}},buttons:{get:function(){return this.dr},set:function(a){this.dr=a}},key:{get:function(){return this.Wr},set:function(a){this.Wr=a}},down:{get:function(){return this.xr},set:function(a){this.xr=a}},up:{get:function(){return this.Ws},set:function(a){this.Ws=\na}},clickCount:{get:function(){return this.fr},set:function(a){this.fr=a}},delta:{get:function(){return this.ur},set:function(a){this.ur=a}},isMultiTouch:{get:function(){return this.Qr},set:function(a){this.Qr=a}},handled:{get:function(){return this.Hr},set:function(a){this.Hr=a}},bubbles:{get:function(){return this.Mg},set:function(a){this.Mg=a}},event:{\nget:function(){return this.Cr},set:function(a){this.Cr=a}},isTouchEvent:{get:function(){var a=x.TouchEvent,b=this.event;return a&&b instanceof a?!0:(a=x.PointerEvent)&&b instanceof a&&(\"touch\"===b.pointerType||\"pen\"===b.pointerType)}},timestamp:{get:function(){return this.Rs},set:function(a){this.Rs=a}},targetDiagram:{get:function(){return this.Qs},set:function(a){this.Qs=a}},targetObject:{\nget:function(){return this.bd},set:function(a){this.bd=a}},control:{get:function(){return 0!==(this.modifiers&1)},set:function(a){this.modifiers=a?this.modifiers|1:this.modifiers&-2}},shift:{get:function(){return 0!==(this.modifiers&4)},set:function(a){this.modifiers=a?this.modifiers|4:this.modifiers&-5}},alt:{get:function(){return 0!==(this.modifiers&2)},set:function(a){this.modifiers=a?this.modifiers|\n2:this.modifiers&-3}},meta:{get:function(){return 0!==(this.modifiers&8)},set:function(a){this.modifiers=a?this.modifiers|8:this.modifiers&-9}},left:{get:function(){var a=this.event;return null===a||\"mousedown\"!==a.type&&\"mouseup\"!==a.type&&\"pointerdown\"!==a.type&&\"pointerup\"!==a.type?0!==(this.buttons&1):0===this.button},set:function(a){this.buttons=a?this.buttons|1:this.buttons&-2}},right:{get:function(){var a=\nthis.event;return null===a||\"mousedown\"!==a.type&&\"mouseup\"!==a.type&&\"pointerdown\"!==a.type&&\"pointerup\"!==a.type?0!==(this.buttons&2):2===this.button},set:function(a){this.buttons=a?this.buttons|2:this.buttons&-3}},middle:{get:function(){var a=this.event;return null===a||\"mousedown\"!==a.type&&\"mouseup\"!==a.type&&\"pointerdown\"!==a.type&&\"pointerup\"!==a.type?0!==(this.buttons&4):1===this.button},set:function(a){this.buttons=a?this.buttons|4:this.buttons&-5}}});\nne.prototype.getMultiTouchDocumentPoint=ne.prototype.Ez;ne.prototype.getMultiTouchViewPoint=ne.prototype.oq;ne.className=\"InputEvent\";function pe(){this.B=null;this.Ra=\"\";this.qs=this.Ps=null}pe.prototype.copy=function(){var a=new pe;a.B=this.B;a.Ra=this.Ra;a.Ps=this.Ps;a.qs=this.qs;return a};pe.prototype.toString=function(){var a=\"*\"+this.name;null!==this.subject&&(a+=\":\"+this.subject.toString());null!==this.parameter&&(a+=\"(\"+this.parameter.toString()+\")\");return a};\nma.Object.defineProperties(pe.prototype,{diagram:{get:function(){return this.B},set:function(a){this.B=a}},name:{get:function(){return this.Ra},set:function(a){this.Ra=a}},subject:{get:function(){return this.Ps},set:function(a){this.Ps=a}},parameter:{get:function(){return this.qs},set:function(a){this.qs=a}}});pe.className=\"DiagramEvent\";\nfunction qe(){this.dn=re;this.af=this.es=\"\";this.Oo=this.Po=this.Vo=this.Wo=this.Uo=this.B=this.ac=null}qe.prototype.clear=function(){this.Oo=this.Po=this.Vo=this.Wo=this.Uo=this.B=this.ac=null};\nqe.prototype.copy=function(){var a=new qe;a.dn=this.dn;a.es=this.es;a.af=this.af;a.ac=this.ac;a.B=this.B;a.Uo=this.Uo;var b=this.Wo;a.Wo=za(b)&&\"function\"===typeof b.G?b.G():b;b=this.Vo;a.Vo=za(b)&&\"function\"===typeof b.G?b.G():b;b=this.Po;a.Po=za(b)&&\"function\"===typeof b.G?b.G():b;b=this.Oo;a.Oo=za(b)&&\"function\"===typeof b.G?b.G():b;return a};qe.prototype.cb=function(a){a.classType===qe&&(this.change=a)};\nqe.prototype.toString=function(){var a=\"\";a=this.change===se?a+\"* \":this.change===re?a+(null!==this.model?\"!m\":\"!d\"):a+((null!==this.model?\"!m\":\"!d\")+this.change);this.propertyName&&\"string\"===typeof this.propertyName&&(a+=\" \"+this.propertyName);this.modelChange&&this.modelChange!==this.propertyName&&(a+=\" \"+this.modelChange);a+=\": \";this.change===se?null!==this.oldValue&&(a+=\" \"+this.oldValue):(null!==this.object&&(a+=Ja(this.object)),null!==this.oldValue&&(a+=\" old: \"+Ja(this.oldValue)),null!==\nthis.oldParam&&(a+=\" \"+this.oldParam),null!==this.newValue&&(a+=\" new: \"+Ja(this.newValue)),null!==this.newParam&&(a+=\" \"+this.newParam));return a};qe.prototype.H=function(a){return a?this.oldValue:this.newValue};qe.prototype.Gz=function(a){return a?this.oldParam:this.newParam};qe.prototype.canUndo=function(){return null!==this.model||null!==this.diagram?!0:!1};\nqe.prototype.undo=function(){this.canUndo()&&(null!==this.model?this.model.changeState(this,!0):null!==this.diagram&&this.diagram.changeState(this,!0))};qe.prototype.canRedo=function(){return null!==this.model||null!==this.diagram?!0:!1};qe.prototype.redo=function(){this.canRedo()&&(null!==this.model?this.model.changeState(this,!1):null!==this.diagram&&this.diagram.changeState(this,!1))};\nma.Object.defineProperties(qe.prototype,{model:{get:function(){return this.ac},set:function(a){this.ac=a}},diagram:{get:function(){return this.B},set:function(a){this.B=a}},change:{get:function(){return this.dn},set:function(a){this.dn=a}},modelChange:{get:function(){return this.es},set:function(a){this.es=a}},propertyName:{get:function(){return this.af},\nset:function(a){this.af=a}},isTransactionFinished:{get:function(){return this.dn===se&&(\"CommittedTransaction\"===this.af||\"FinishedUndo\"===this.af||\"FinishedRedo\"===this.af)}},object:{get:function(){return this.Uo},set:function(a){this.Uo=a}},oldValue:{get:function(){return this.Wo},set:function(a){this.Wo=a}},oldParam:{get:function(){return this.Vo},set:function(a){this.Vo=a}},\nnewValue:{get:function(){return this.Po},set:function(a){this.Po=a}},newParam:{get:function(){return this.Oo},set:function(a){this.Oo=a}}});qe.prototype.redo=qe.prototype.redo;qe.prototype.canRedo=qe.prototype.canRedo;qe.prototype.undo=qe.prototype.undo;qe.prototype.canUndo=qe.prototype.canUndo;qe.prototype.getParam=qe.prototype.Gz;qe.prototype.getValue=qe.prototype.H;qe.prototype.clear=qe.prototype.clear;\nvar se=new D(qe,\"Transaction\",-1),re=new D(qe,\"Property\",0),te=new D(qe,\"Insert\",1),ue=new D(qe,\"Remove\",2);qe.className=\"ChangedEvent\";qe.Transaction=se;qe.Property=re;qe.Insert=te;qe.Remove=ue;function ve(){this.u=(new E).freeze();this.Ra=\"\";this.l=!1}ve.prototype.toString=function(a){var b=\"Transaction: \"+this.name+\" \"+this.changes.count.toString()+(this.isComplete?\"\":\", incomplete\");if(void 0!==a&&0a.transactionLevel&&wa(\"Ending transaction without having started a transaction: \"+c);var d=1===a.transactionLevel;d&&b&&a.xb(\"CommittingTransaction\",c,a.currentTransaction);var e=0;if(0a.historyIndex;e--)f=d.L(e),null!==f&&f.clear(),d.lb(e),a.zu=!0;e=a.maxHistoryLength;0<=e&&(0===e?d.clear():d.count>=e&&(f=d.L(0),null!==f&&f.clear(),d.lb(0),a.Gd--));0!==e&&(d.add(b),a.Gd++);d.freeze();f=b}a.xb(\"CommittedTransaction\",c,f)}else{a.ke=!0;try{a.isEnabled&&null!==f&&(f.isComplete=!0,f.undo())}finally{a.xb(\"RolledBackTransaction\",c,f),a.ke=!1}null!==f&&f.clear()}a.rr=null;return!0}if(a.isEnabled&&!b&&null!==f){a=e;c=\nf.changes;for(b=c.count-1;b>=a;b--)d=c.L(b),null!==d&&d.undo(),c.ea(),c.lb(b);c.freeze()}return!1}we.prototype.canUndo=function(){if(!this.isEnabled||0=this.transactionLevel&&!this.pu&&(a=a.diagram,null!==a&&!1===a.kk||wa(\"Change not within a transaction: \"+c.toString()))}};\nwe.prototype.skipsEvent=function(a){if(null===a||0>a.change.value)return!0;a=a.object;if(null===a)return!1;if(void 0!==a.layer){if(a=a.layer,null!==a&&a.isTemporary)return!0}else if(a.isTemporary)return!0;return!1};\nma.Object.defineProperties(we.prototype,{models:{get:function(){return this.Fu.iterator}},isEnabled:{get:function(){return this.Mc},set:function(a){this.Mc=a}},transactionToUndo:{get:function(){return 0<=this.historyIndex&&this.historyIndex<=this.history.count-1?this.history.L(this.historyIndex):null}},transactionToRedo:{get:function(){return this.historyIndexe&&(e=-3),0g&&(g=-3);if(void 0===h||void 0===e||void 0===g||0===e&&0===g||b.shift)!b.shift&&a.allowVerticalScroll?(f=3*f*a.scrollVerticalLineChange,0e||Math.abs(b.y-a.y)>d};\nma.Object.defineProperties(ye.prototype,{diagram:{get:function(){return this.B},set:function(a){a instanceof R&&(this.B=a)}},name:{get:function(){return this.Ra},set:function(a){this.Ra=a}},isEnabled:{get:function(){return this.Mc},set:function(a){this.Mc=a}},isActive:{get:function(){return this.jd},set:function(a){this.jd=a}},transactionResult:{get:function(){return this.Gw},\nset:function(a){this.Gw=a}}});ye.prototype.stopTransaction=ye.prototype.Hg;ye.prototype.startTransaction=ye.prototype.ua;ye.className=\"Tool\";function Oa(){ye.call(this);this.name=\"ToolManager\";this.Ic=new E;this.Yc=new E;this.Ef=new E;this.Y=this.Ha=850;this.u=(new M(2,2)).ca();this.Za=5E3;this.Ia=Ce;this.I=Ke;this.qr=this.l=null;this.Qj=-1}la(Oa,ye);Oa.prototype.initializeStandardTools=function(){};\nOa.prototype.updateAdornments=function(a){var b=this.currentToolTip;if(b instanceof Je&&this.qr===a){var c=b.adornedObject;(null!==a?c.part===a:null===c)?this.showToolTip(b,c):this.hideToolTip()}};\nOa.prototype.doMouseDown=function(){var a=this.diagram,b=a.lastInput;b.isTouchEvent&&this.gestureBehavior===Le&&(b.bubbles=!1);if(b.isMultiTouch){this.cancelWaitAfter();if(this.gestureBehavior===Me){b.bubbles=!0;return}if(this.gestureBehavior===Le)return;if(a.currentTool.canStartMultiTouch()){a.currentTool.standardPinchZoomStart();return}}for(var c=this.mouseDownTools.length,d=0;de.right&&(c.x-=d.width+5/b.scale);c.xe.bottom?c.y-(d.height+5/b.scale):c.y+20/b.scale;c.ye&&(e=g),h>f&&(f=h))}}Infinity===c?b.h(0,0,0,0):b.h(c,d,e-c,f-d)}\nfunction pf(a,b){if(null===a.copiedParts){var c=a.diagram;if((!b||!c.isReadOnly&&!c.isModelReadOnly)&&null!==a.draggedParts){var d=c.undoManager;d.isEnabled&&d.isInTransaction?null!==d.currentTransaction&&0c.pointsCount)){var d=a.diagram;if(!d.isReadOnly){var e=a.og;if(null!==e){var f=null,g=null;null===c.fromNode&&(f=xf(a,c.i(0),!1),null!==f&&(g=f.part));var h=null,k=null;null===c.toNode&&(h=xf(a,c.i(c.pointsCount-1),!0),null!==h&&(k=h.part));e.isValidLink(g,f,k,h)?b?(c.defaultFromPoint=c.i(0),c.defaultToPoint=c.i(c.pointsCount-1),c.suspendsRouting=!1,c.fromNode=g,null!==f&&(c.fromPortId=f.portId),c.toNode=k,null!==h&&(c.toPortId=h.portId),c.fromPort!==\nd.Xx&&d.R(\"LinkRelinked\",c,d.Xx),c.toPort!==d.Yx&&d.R(\"LinkRelinked\",c,d.Yx)):yf(e,g,f,k,h):yf(e,null,null,null,null)}}}}Qe.prototype.doDragOver=function(){};\nfunction Ef(a,b){var c=a.diagram;a.dragsLink&&uf(a,!0);ef(a);var d=a.findDragOverObject(b),e=c.lastInput;e.targetObject=d;if(null!==d){e.handled=!1;for(var f=d;null!==f;){var g=f.mouseDrop;if(null!==g&&(g(e,f),e.handled))break;Ff(a,e,f);f=wf(f)}}else f=c.mouseDrop,null!==f&&f(e);if(a.isActive||null!==Se){for(e=(a.copiedParts||a.draggedParts).iterator;e.next();)f=e.key,f instanceof W&&f.linksConnected.each(function(a){a.suspendsRouting=!1});a.doDropOnto(b,d);if(a.isActive||null!==Se){a=N.alloc();for(b=\nc.selection.iterator;b.next();)d=b.value,d instanceof W&&Gf(c,d,a);N.free(a)}}}function Ff(a,b,c){a=a.diagram;c=c.part;!a.handlesDragDropForTopLevelParts||!c.isTopLevel||c instanceof T||(c=a.mouseDrop,null!==c&&c(b))}function Gf(a,b,c){var d=!1;b.getAvoidableRect(c);a.viewportBounds.ze(c)&&(d=!0);a=a.uv(c,function(a){return a.part},function(a){return a instanceof S},!0,function(a){return a instanceof S},d);if(0!==a.count)for(a=a.iterator;a.next();)c=a.value,!c.Wd(b)&&c.isAvoiding&&c.Oa()}\nQe.prototype.doDropOnto=function(){};Qe.prototype.doMouseMove=function(){if(this.isActive){var a=this.diagram,b=a.lastInput;this.simulatedMouseMove(b.event,b.documentPoint,b.targetDiagram)||null===this.currentPart||null===this.draggedParts||(this.mayCopy()?(pf(this,!1),Ve(a,this.copiedParts),rf(this,this.copiedParts,!1),ff(a,this.copiedParts)):this.mayMove()?(jf(this),rf(this,this.draggedParts,!0)):this.mayDragOut()?(pf(this,!1),rf(this,this.copiedParts,!1)):jf(this),tf(this,a.lastInput.documentPoint))}};\nQe.prototype.doMouseUp=function(){if(this.isActive){var a=this.diagram,b=a.lastInput;if(!this.simulatedMouseUp(b.event,b.documentPoint,b.targetDiagram)){b=!1;var c=this.mayCopy();c&&null!==this.copiedParts?(jf(this),pf(this,!0),Ve(a,this.copiedParts),rf(this,this.copiedParts,!1),ff(a,this.copiedParts),null!==this.copiedParts&&(a.R(\"ChangingSelection\",a.selection),a.clearSelection(!0),this.copiedParts.iteratorKeys.each(function(a){a.isSelected=!0}))):(b=!0,jf(this),this.mayMove()&&(rf(this,this.draggedParts,\n!0),tf(this,a.lastInput.documentPoint)));this.Bn=!0;Ef(this,a.lastInput.documentPoint);if(this.isActive){var d=c?this.copiedParts.Df():this.draggedParts.Df();this.copiedParts=null;b&&Hf(this);a.Na();ff(a,this.draggedParts);this.transactionResult=c?\"Copy\":\"Move\";a.R(c?\"SelectionCopied\":\"SelectionMoved\",d)}this.stopTool();c&&a.R(\"ChangedSelection\",a.selection)}}};\nQe.prototype.simulatedMouseMove=function(a,b,c){if(null===Se)return!1;var d=Se.diagram;c instanceof R||(c=null);var e=We;c!==e&&(null!==e&&e!==d&&(e.Cf(),Se.isDragOutStarted=!1,e=e.toolManager.findTool(\"Dragging\"),null!==e&&e.doSimulatedDragLeave()),We=c,null!==c&&c!==d&&(mf(),e=c.toolManager.findTool(\"Dragging\"),null!==e&&(gf.contains(e)||gf.add(e),e.doSimulatedDragEnter())));if(null===c||c===d||!c.allowDrop||c.isReadOnly||!c.allowInsert)return!1;d=c.toolManager.findTool(\"Dragging\");null!==d&&(null!==\na&&(void 0!==a.targetTouches&&(0=d&&(d=.1);var e=this,f=b.Ag(c,d,function(b){return e.findValidLinkablePort(b,a)},null,!0);d=Infinity;b=null;for(f=f.iterator;f.next();){var g=f.value,h=g.part;if(h instanceof W){var k=g.ga(Ac,I.alloc()),l=c.x-k.x,m=c.y-k.y;I.free(k);k=l*l+m*m;kc){if(null!==this.originalLink&&a===this.originalFromNode&&b===this.originalFromPort)return!0;b=b.portId;null===b&&(b=\"\");if(a.lq(b).count>=c)return!1}return!0};\nKf.prototype.isValidTo=function(a,b){if(null===a||null===b)return this.isUnconnectedLinkValid;if(this.diagram.currentTool===this&&(null!==a.layer&&!a.layer.allowLink||!0!==b.toLinkable))return!1;var c=b.toMaxLinks;if(Infinity>c){if(null!==this.originalLink&&a===this.originalToNode&&b===this.originalToPort)return!0;b=b.portId;null===b&&(b=\"\");if(a.vd(b).count>=c)return!1}return!0};\nKf.prototype.isInSameNode=function(a,b){if(null===a||null===b)return!1;if(a===b)return!0;a=a.part;b=b.part;return null!==a&&a===b};Kf.prototype.isLinked=function(a,b){if(null===a||null===b)return!1;var c=a.part;if(!(c instanceof W))return!1;a=a.portId;null===a&&(a=\"\");var d=b.part;if(!(d instanceof W))return!1;b=b.portId;null===b&&(b=\"\");for(b=d.vd(b);b.next();)if(d=b.value,d.fromNode===c&&d.fromPortId===a)return!0;return!1};\nKf.prototype.isValidLink=function(a,b,c,d){if(!this.isValidFrom(a,b)||!this.isValidTo(c,d)||!(null===b||null===d||(b.fromLinkableSelfNode&&d.toLinkableSelfNode||!this.isInSameNode(b,d))&&(b.fromLinkableDuplicates&&d.toLinkableDuplicates||!this.isLinked(b,d)))||null!==this.originalLink&&(null!==a&&this.isLabelDependentOnLink(a,this.originalLink)||null!==c&&this.isLabelDependentOnLink(c,this.originalLink))||null!==a&&null!==c&&(null===a.data&&null!==c.data||null!==a.data&&null===c.data)||!this.isValidCycle(a,\nc,this.originalLink))return!1;if(null!==a){var e=a.linkValidation;if(null!==e&&!e(a,b,c,d,this.originalLink))return!1}if(null!==c&&(e=c.linkValidation,null!==e&&!e(a,b,c,d,this.originalLink)))return!1;e=this.linkValidation;return null!==e?e(a,b,c,d,this.originalLink):!0};Kf.prototype.isLabelDependentOnLink=function(a,b){if(null===a)return!1;var c=a.labeledLink;if(null===c)return!1;if(c===b)return!0;var d=new F;d.add(a);return Mf(this,c,b,d)};\nfunction Mf(a,b,c,d){if(b===c)return!0;var e=b.fromNode;if(null!==e&&e.isLinkLabel&&(d.add(e),Mf(a,e.labeledLink,c,d)))return!0;b=b.toNode;return null!==b&&b.isLinkLabel&&(d.add(b),Mf(a,b.labeledLink,c,d))?!0:!1}\nKf.prototype.isValidCycle=function(a,b,c){void 0===c&&(c=null);if(null===a||null===b)return this.isUnconnectedLinkValid;var d=this.diagram.validCycle;if(d!==Nf){if(d===Of){d=c||this.temporaryLink;if(null!==d&&!d.isTreeLink)return!0;for(d=b.linksConnected;d.next();){var e=d.value;if(e!==c&&e.isTreeLink&&e.toNode===b)return!1}return!Pf(this,a,b,c,!0)}if(d===Qf){d=c||this.temporaryLink;if(null!==d&&!d.isTreeLink)return!0;for(d=a.linksConnected;d.next();)if(e=d.value,e!==c&&e.isTreeLink&&e.fromNode===\na)return!1;return!Pf(this,a,b,c,!0)}if(d===Rf)return a===b?a=!0:(d=new F,d.add(b),a=Sf(this,d,a,b,c)),!a;if(d===Tf)return!Pf(this,a,b,c,!1);if(d===Uf)return a===b?a=!0:(d=new F,d.add(b),a=Vf(this,d,a,b,c)),!a}return!0};function Pf(a,b,c,d,e){if(b===c)return!0;if(null===b||null===c)return!1;for(var f=b.linksConnected;f.next();){var g=f.value;if(g!==d&&(!e||g.isTreeLink)&&g.toNode===b&&(g=g.fromNode,g!==b&&Pf(a,g,c,d,e)))return!0}return!1}\nfunction Sf(a,b,c,d,e){if(c===d)return!0;if(null===c||null===d||b.contains(c))return!1;b.add(c);for(var f=c.linksConnected;f.next();){var g=f.value;if(g!==e&&g.toNode===c&&(g=g.fromNode,g!==c&&Sf(a,b,g,d,e)))return!0}return!1}function Vf(a,b,c,d,e){if(c===d)return!0;if(null===c||null===d||b.contains(c))return!1;b.add(c);for(var f=c.linksConnected;f.next();){var g=f.value;if(g!==e){var h=g.fromNode;g=g.toNode;h=h===c?g:h;if(h!==c&&Vf(a,b,h,d,e))return!0}}return!1}\nma.Object.defineProperties(Kf.prototype,{portGravity:{get:function(){return this.Ef},set:function(a){0<=a&&(this.Ef=a)}},isUnconnectedLinkValid:{get:function(){return this.Y},set:function(a){this.Y=a}},linkingCursor:{get:function(){return this.fi},set:function(a){this.fi=a}},temporaryLink:{get:function(){return this.Dw},set:function(a){this.Dw=a}},temporaryFromNode:{\nget:function(){return this.Bw},set:function(a){this.Bw=a}},temporaryFromPort:{get:function(){return this.Cw},set:function(a){this.Cw=a}},temporaryToNode:{get:function(){return this.Ew},set:function(a){this.Ew=a}},temporaryToPort:{get:function(){return this.Fw},set:function(a){this.Fw=a}},originalLink:{get:function(){return this.Za},set:function(a){this.Za=a}},originalFromNode:{\nget:function(){return this.Ha},set:function(a){this.Ha=a}},originalFromPort:{get:function(){return this.Ia},set:function(a){this.Ia=a}},originalToNode:{get:function(){return this.Ic},set:function(a){this.Ic=a}},originalToPort:{get:function(){return this.Yc},set:function(a){this.Yc=a}},isForwards:{get:function(){return this.I},set:function(a){this.I=a}},validPortsCache:{\nget:function(){return this.vy}},targetPort:{get:function(){return this.Sq},set:function(a){this.Sq=a}},linkValidation:{get:function(){return this.xi},set:function(a){this.xi=a}},portTargeted:{get:function(){return this.Oh},set:function(a){this.Oh=a}}});Kf.className=\"LinkingBaseTool\";function Wf(){Kf.call(this);this.name=\"Linking\";this.u={};this.l=null;this.J=Xf;this.Ie=null}la(Wf,Kf);\nWf.prototype.canStart=function(){if(!this.isEnabled)return!1;var a=this.diagram;return a.isReadOnly||a.isModelReadOnly||!a.allowLink||!a.model.vt()||!a.lastInput.left||a.currentTool!==this&&!this.isBeyondDragSize()?!1:null!==this.findLinkablePort()};\nWf.prototype.findLinkablePort=function(){var a=this.diagram,b=this.startObject;null===b&&(b=a.Ub(a.firstInput.documentPoint,null,null));if(null===b||!(b.part instanceof W))return null;a=this.direction;if(a===Xf||a===Yf){var c=this.findValidLinkablePort(b,!1);if(null!==c)return this.isForwards=!0,c}if(a===Xf||a===Zf)if(b=this.findValidLinkablePort(b,!0),null!==b)return this.isForwards=!1,b;return null};\nWf.prototype.doActivate=function(){var a=this.diagram,b=this.findLinkablePort();null!==b&&(this.ua(this.name),a.isMouseCaptured=!0,a.currentCursor=this.linkingCursor,this.isForwards?(null===this.temporaryToNode||this.temporaryToNode.location.v()||(this.temporaryToNode.location=a.lastInput.documentPoint),this.originalFromPort=b,b=this.originalFromPort.part,b instanceof W&&(this.originalFromNode=b),this.copyPortProperties(this.originalFromNode,this.originalFromPort,this.temporaryFromNode,this.temporaryFromPort,\n!1)):(null===this.temporaryFromNode||this.temporaryFromNode.location.v()||(this.temporaryFromNode.location=a.lastInput.documentPoint),this.originalToPort=b,b=this.originalToPort.part,b instanceof W&&(this.originalToNode=b),this.copyPortProperties(this.originalToNode,this.originalToPort,this.temporaryToNode,this.temporaryToPort,!0)),a.add(this.temporaryFromNode),a.add(this.temporaryToNode),null!==this.temporaryLink&&(null!==this.temporaryFromNode&&(this.temporaryLink.fromNode=this.temporaryFromNode),\nnull!==this.temporaryToNode&&(this.temporaryLink.toNode=this.temporaryToNode),this.temporaryLink.isTreeLink=this.isNewTreeLink(),this.temporaryLink.Oa(),a.add(this.temporaryLink)),this.isActive=!0)};Wf.prototype.doDeactivate=function(){this.isActive=!1;var a=this.diagram;a.remove(this.temporaryLink);a.remove(this.temporaryFromNode);a.remove(this.temporaryToNode);a.isMouseCaptured=!1;a.currentCursor=\"\";this.Hg()};Wf.prototype.doStop=function(){Kf.prototype.doStop.call(this);this.startObject=null};\nWf.prototype.doMouseUp=function(){var a=this.diagram;if(this.isActive){var b=this.transactionResult=null,c=null,d=null,e=null,f=null;try{var g=this.targetPort=this.findTargetPort(this.isForwards);if(null!==g){var h=g.part;h instanceof W&&(this.isForwards?(null!==this.originalFromNode&&(b=this.originalFromNode,c=this.originalFromPort),d=h,e=g):(b=h,c=g,null!==this.originalToNode&&(d=this.originalToNode,e=this.originalToPort)))}else this.isForwards?null!==this.originalFromNode&&this.isUnconnectedLinkValid&&\n(b=this.originalFromNode,c=this.originalFromPort):null!==this.originalToNode&&this.isUnconnectedLinkValid&&(d=this.originalToNode,e=this.originalToPort);null!==b||null!==d?(f=this.insertLink(b,c,d,e),null!==f?(null===g&&(this.isForwards?f.defaultToPoint=a.lastInput.documentPoint:f.defaultFromPoint=a.lastInput.documentPoint),a.allowSelect&&(a.R(\"ChangingSelection\",a.selection),a.clearSelection(!0),f.isSelected=!0),this.transactionResult=this.name,a.R(\"LinkDrawn\",f)):(a.model.gq(),this.doNoLink(b,c,\nd,e))):this.isForwards?this.doNoLink(this.originalFromNode,this.originalFromPort,null,null):this.doNoLink(null,null,this.originalToNode,this.originalToPort)}finally{this.stopTool(),f&&a.allowSelect&&a.R(\"ChangedSelection\",a.selection)}}};\nWf.prototype.isNewTreeLink=function(){var a=this.archetypeLinkData;if(null===a)return!0;if(a instanceof S)return a.isTreeLink;var b=this.diagram;if(null===b)return!0;a=b.partManager.getLinkCategoryForData(a);b=b.partManager.findLinkTemplateForCategory(a);return null!==b?b.isTreeLink:!0};Wf.prototype.insertLink=function(a,b,c,d){return this.diagram.partManager.insertLink(a,b,c,d)};Wf.prototype.doNoLink=function(){};\nma.Object.defineProperties(Wf.prototype,{archetypeLinkData:{get:function(){return this.u},set:function(a){this.u=a}},archetypeLabelNodeData:{get:function(){return this.l},set:function(a){this.l=a}},direction:{get:function(){return this.J},set:function(a){this.J=a}},startObject:{get:function(){return this.Ie},set:function(a){this.Ie=a}}});\nvar Xf=new D(Wf,\"Either\",0),Yf=new D(Wf,\"ForwardsOnly\",0),Zf=new D(Wf,\"BackwardsOnly\",0);Wf.className=\"LinkingTool\";Wf.Either=Xf;Wf.ForwardsOnly=Yf;Wf.BackwardsOnly=Zf;\nfunction Xe(){Kf.call(this);this.name=\"Relinking\";var a=new Lf;a.figure=\"Diamond\";a.desiredSize=Nb;a.fill=\"lightblue\";a.stroke=\"dodgerblue\";a.cursor=this.linkingCursor;a.segmentIndex=0;this.u=a;a=new Lf;a.figure=\"Diamond\";a.desiredSize=Nb;a.fill=\"lightblue\";a.stroke=\"dodgerblue\";a.cursor=this.linkingCursor;a.segmentIndex=-1;this.Ie=a;this.l=null;this.gx=new N}la(Xe,Kf);\nXe.prototype.updateAdornments=function(a){if(null!==a&&a instanceof S){var b=\"RelinkFrom\",c=null;if(a.isSelected&&!this.diagram.isReadOnly){var d=a.selectionObject;null!==d&&a.canRelinkFrom()&&a.actualBounds.v()&&a.isVisible()&&d.actualBounds.v()&&d.zf()&&(c=a.fk(b),null===c&&(c=this.makeAdornment(d,!1),a.Ch(b,c)))}null===c&&a.Af(b);b=\"RelinkTo\";c=null;a.isSelected&&!this.diagram.isReadOnly&&(d=a.selectionObject,null!==d&&a.canRelinkTo()&&a.actualBounds.v()&&a.isVisible()&&d.actualBounds.v()&&d.zf()&&\n(c=a.fk(b),null===c?(c=this.makeAdornment(d,!0),a.Ch(b,c)):c.o()));null===c&&a.Af(b)}};Xe.prototype.makeAdornment=function(a,b){var c=new Je;c.type=X.Link;b=b?this.toHandleArchetype:this.fromHandleArchetype;null!==b&&c.add(b.copy());c.adornedObject=a;return c};\nXe.prototype.canStart=function(){if(!this.isEnabled)return!1;var a=this.diagram;if(a.isReadOnly||a.isModelReadOnly||!a.allowRelink||!a.model.vt()||!a.lastInput.left)return!1;var b=this.findToolHandleAt(a.firstInput.documentPoint,\"RelinkFrom\");null===b&&(b=this.findToolHandleAt(a.firstInput.documentPoint,\"RelinkTo\"));return null!==b};\nXe.prototype.doActivate=function(){var a=this.diagram;if(null===this.originalLink){var b=this.handle;null===b&&(b=this.findToolHandleAt(a.firstInput.documentPoint,\"RelinkFrom\"),null===b&&(b=this.findToolHandleAt(a.firstInput.documentPoint,\"RelinkTo\")));if(null===b)return;var c=b.part;if(!(c instanceof Je&&c.adornedPart instanceof S))return;this.handle=b;this.isForwards=null===c||\"RelinkTo\"===c.category;this.originalLink=c.adornedPart}this.ua(this.name);a.isMouseCaptured=!0;a.currentCursor=this.linkingCursor;\nthis.originalFromPort=this.originalLink.fromPort;this.originalFromNode=this.originalLink.fromNode;this.originalToPort=this.originalLink.toPort;this.originalToNode=this.originalLink.toNode;this.gx.set(this.originalLink.actualBounds);null!==this.originalLink&&0b.firstPickIndex+1&&c=c.x)b=0>=c.y?b+225:1<=c.y?b+135:b+180;else if(1<=c.x)0>=c.y?b+=315:1<=c.y&&(b+=45);else if(0>=c.y)b+=270;else if(1<=c.y)b+=90;else break a;0>b?b+=360:360<=b&&(b-=360);a.cursor=22.5>b?\"e-resize\":67.5>b?\"se-resize\":112.5>b?\"s-resize\":157.5>b?\"sw-resize\":202.5>b?\"w-resize\":247.5>b?\"nw-resize\":292.5>b?\"n-resize\":337.5>b?\"ne-resize\":\n\"e-resize\"}else if(a instanceof X)for(a=a.elements;a.next();)this.updateResizeHandles(a.value,b)};vg.prototype.canStart=function(){if(!this.isEnabled)return!1;var a=this.diagram;return!a.isReadOnly&&a.allowResize&&a.lastInput.left?null!==this.findToolHandleAt(a.firstInput.documentPoint,this.name):!1};\nvg.prototype.doActivate=function(){var a=this.diagram;null===this.handle&&(this.handle=this.findToolHandleAt(a.firstInput.documentPoint,this.name));null!==this.handle&&(this.adornedObject=this.handle.part.adornedObject,null!==this.adornedObject&&(this.os.set(this.adornedObject.ga(this.handle.alignment.Pv())),this.Xo.set(this.adornedObject.part.location),this.ex.set(this.adornedObject.desiredSize),this.lu=this.computeCellSize(),this.nu=this.computeMinSize(),this.mu=this.computeMaxSize(),a.isMouseCaptured=\n!0,this.$w=a.animationManager.isEnabled,a.animationManager.isEnabled=!1,this.ua(this.name),this.isActive=!0))};vg.prototype.doDeactivate=function(){var a=this.diagram;this.Hg();this.ae=this.handle=null;this.isActive=a.isMouseCaptured=!1;a.animationManager.isEnabled=this.$w};vg.prototype.doCancel=function(){null!==this.adornedObject&&(this.adornedObject.desiredSize=this.originalDesiredSize,this.adornedObject.part.location=this.originalLocation);this.stopTool()};\nvg.prototype.doMouseMove=function(){var a=this.diagram;if(this.isActive){var b=this.nu,c=this.mu,d=this.lu,e=this.adornedObject.ot(a.lastInput.documentPoint,I.alloc()),f=this.computeReshape();b=this.computeResize(e,this.handle.alignment,b,c,d,f);this.resize(b);a.Wc();I.free(e)}};\nvg.prototype.doMouseUp=function(){var a=this.diagram;if(this.isActive){var b=this.nu,c=this.mu,d=this.lu,e=this.adornedObject.ot(a.lastInput.documentPoint,I.alloc()),f=this.computeReshape();b=this.computeResize(e,this.handle.alignment,b,c,d,f);this.resize(b);I.free(e);a.Na();this.transactionResult=this.name;a.R(\"PartResized\",this.adornedObject,this.originalDesiredSize)}this.stopTool()};\nvg.prototype.resize=function(a){var b=this.diagram,c=this.adornedObject;if(null!==c){c.desiredSize=a.size;a=c.part;a.yb();c=c.ga(this.handle.alignment.Pv());if(a instanceof T){var d=new E;d.add(a);b.moveParts(d,this.oppositePoint.copy().Zd(c),!0)}else a.location=a.location.copy().Zd(c).add(this.oppositePoint);b.Wc()}};\nvg.prototype.computeResize=function(a,b,c,d,e,f){b.jc()&&(b=Ac);var g=this.adornedObject.naturalBounds,h=g.x,k=g.y,l=g.x+g.width,m=g.y+g.height,n=1;if(!f){n=g.width;var p=g.height;0>=n&&(n=1);0>=p&&(p=1);n=p/n}p=I.alloc();J.mq(a.x,a.y,h,k,e.width,e.height,p);a=g.copy();0>=b.x?0>=b.y?(a.x=Math.max(p.x,l-d.width),a.x=Math.min(a.x,l-c.width),a.width=Math.max(l-a.x,c.width),a.y=Math.max(p.y,m-d.height),a.y=Math.min(a.y,m-c.height),a.height=Math.max(m-a.y,c.height),f||(1<=a.height/a.width?(a.height=Math.max(Math.min(n*\na.width,d.height),c.height),a.width=a.height/n):(a.width=Math.max(Math.min(a.height/n,d.width),c.width),a.height=n*a.width),a.x=l-a.width,a.y=m-a.height)):1<=b.y?(a.x=Math.max(p.x,l-d.width),a.x=Math.min(a.x,l-c.width),a.width=Math.max(l-a.x,c.width),a.height=Math.max(Math.min(p.y-k,d.height),c.height),f||(1<=a.height/a.width?(a.height=Math.max(Math.min(n*a.width,d.height),c.height),a.width=a.height/n):(a.width=Math.max(Math.min(a.height/n,d.width),c.width),a.height=n*a.width),a.x=l-a.width)):(a.x=\nMath.max(p.x,l-d.width),a.x=Math.min(a.x,l-c.width),a.width=l-a.x,f||(a.height=Math.max(Math.min(n*a.width,d.height),c.height),a.width=a.height/n,a.y=k+.5*(m-k-a.height))):1<=b.x?0>=b.y?(a.width=Math.max(Math.min(p.x-h,d.width),c.width),a.y=Math.max(p.y,m-d.height),a.y=Math.min(a.y,m-c.height),a.height=Math.max(m-a.y,c.height),f||(1<=a.height/a.width?(a.height=Math.max(Math.min(n*a.width,d.height),c.height),a.width=a.height/n):(a.width=Math.max(Math.min(a.height/n,d.width),c.width),a.height=n*a.width),\na.y=m-a.height)):1<=b.y?(a.width=Math.max(Math.min(p.x-h,d.width),c.width),a.height=Math.max(Math.min(p.y-k,d.height),c.height),f||(1<=a.height/a.width?(a.height=Math.max(Math.min(n*a.width,d.height),c.height),a.width=a.height/n):(a.width=Math.max(Math.min(a.height/n,d.width),c.width),a.height=n*a.width))):(a.width=Math.max(Math.min(p.x-h,d.width),c.width),f||(a.height=Math.max(Math.min(n*a.width,d.height),c.height),a.width=a.height/n,a.y=k+.5*(m-k-a.height))):0>=b.y?(a.y=Math.max(p.y,m-d.height),\na.y=Math.min(a.y,m-c.height),a.height=m-a.y,f||(a.width=Math.max(Math.min(a.height/n,d.width),c.width),a.height=n*a.width,a.x=h+.5*(l-h-a.width))):1<=b.y&&(a.height=Math.max(Math.min(p.y-k,d.height),c.height),f||(a.width=Math.max(Math.min(a.height/n,d.width),c.width),a.height=n*a.width,a.x=h+.5*(l-h-a.width)));I.free(p);return a};vg.prototype.computeReshape=function(){var a=zg;this.adornedObject instanceof Lf&&(a=Ag(this.adornedObject));return!(a===Bg||this.diagram.lastInput.shift)};\nvg.prototype.computeMinSize=function(){var a=this.adornedObject.minSize.copy(),b=this.minSize;!isNaN(b.width)&&b.width>a.width&&(a.width=b.width);!isNaN(b.height)&&b.height>a.height&&(a.height=b.height);return a};vg.prototype.computeMaxSize=function(){var a=this.adornedObject.maxSize.copy(),b=this.maxSize;!isNaN(b.width)&&b.widthc?c+=360:360<=c&&(c-=360);c=Math.round(45*Math.round(c/45));var d=this.handleDistance;0===c?b.x=a.naturalBounds.width+d:45===c?(b.x=a.naturalBounds.width+d,b.y=a.naturalBounds.height+d):90===c?b.y=a.naturalBounds.height+d:135===c?(b.x=-d,b.y=a.naturalBounds.height+d):180===c?b.x=-d:225===c?(b.x=-d,b.y=-d):270===c?b.y=-d:315===c&&(b.x=a.naturalBounds.width+\nd,b.y=-d);return a.ga(b)};Cg.prototype.doDeactivate=function(){var a=this.diagram;this.Hg();this.ae=this.handle=null;this.Lu=new I(NaN,NaN);this.isActive=a.isMouseCaptured=!1};Cg.prototype.doCancel=function(){this.diagram.delaysLayout=!1;this.rotate(this.originalAngle);this.stopTool()};Cg.prototype.doMouseMove=function(){var a=this.diagram;this.isActive&&(a=this.computeRotate(a.lastInput.documentPoint),this.rotate(a))};\nCg.prototype.doMouseUp=function(){var a=this.diagram;if(this.isActive){a.delaysLayout=!1;var b=this.computeRotate(a.lastInput.documentPoint);this.rotate(b);a.Na();this.transactionResult=this.name;a.R(\"PartRotated\",this.adornedObject,this.originalAngle)}this.stopTool()};\nCg.prototype.rotate=function(a){var b=this.adornedObject;if(null!==b){b.angle=a;b=b.part;b.yb();var c=b.locationObject,d=b.rotateObject;if(c===d||c.Dg(d))c=this.Xo.copy(),b.location=c.Zd(this.rotationPoint).rotate(a-this.originalAngle).add(this.rotationPoint);this.diagram.Wc()}};\nCg.prototype.computeRotate=function(a){a=this.rotationPoint.Ta(a)-this.handleAngle;var b=this.adornedObject.panel;null!==b&&(a-=b.Xi());360<=a?a-=360:0>a&&(a+=360);b=Math.min(Math.abs(this.snapAngleMultiple),180);var c=Math.min(Math.abs(this.snapAngleEpsilon),b/2);!this.diagram.lastInput.shift&&0b-c&&(a=(Math.floor(a/b)+1)*b));360<=a?a-=360:0>a&&(a+=360);return a};\nma.Object.defineProperties(Cg.prototype,{handleArchetype:{get:function(){return this.u},set:function(a){this.u=a}},handle:{get:function(){return this.l},set:function(a){if(null!==a&&!(a.part instanceof Je))throw Error(\"new handle is not in an Adornment: \"+a);this.l=a}},adornedObject:{get:function(){return this.ae},set:function(a){if(null!==a&&a.part instanceof Je)throw Error(\"new handle must not be in an Adornment: \"+\na);this.ae=a}},snapAngleMultiple:{get:function(){return this.Ia},set:function(a){this.Ia=a}},snapAngleEpsilon:{get:function(){return this.Ha},set:function(a){this.Ha=a}},originalAngle:{get:function(){return this.bx}},rotationPoint:{get:function(){return this.Lu}},handleAngle:{get:function(){return this.I},set:function(a){this.I=a}},handleDistance:{\nget:function(){return this.Y},set:function(a){this.Y=a}}});Cg.className=\"RotatingTool\";La(\"rotatingTool\",function(){return this.findTool(\"Rotating\")},function(a){this.Va(\"Rotating\",a,this.mouseDownTools)});function Dg(){ye.call(this);this.name=\"ClickSelecting\"}la(Dg,ye);Dg.prototype.canStart=function(){return!this.isEnabled||this.isBeyondDragSize()?!1:!0};\nDg.prototype.doMouseUp=function(){this.isActive&&(this.standardMouseSelect(),!this.standardMouseClick()&&this.diagram.lastInput.isTouchEvent&&this.diagram.toolManager.doToolTip());this.stopTool()};Dg.className=\"ClickSelectingTool\";function Eg(){ye.call(this);this.name=\"Action\";this.Bk=null}la(Eg,ye);\nEg.prototype.canStart=function(){if(!this.isEnabled)return!1;var a=this.diagram,b=a.lastInput,c=a.Ub(b.documentPoint,function(a){for(;null!==a.panel&&!a.isActionable;)a=a.panel;return a});if(null!==c){if(!c.isActionable)return!1;this.Bk=c;a.mj=a.Ub(b.documentPoint,null,null);return!0}return!1};Eg.prototype.doMouseDown=function(){if(this.isActive){var a=this.diagram.lastInput,b=this.Bk;null!==b&&(a.targetObject=b,null!==b.actionDown&&b.actionDown(a,b))}else this.canStart()&&this.doActivate()};\nEg.prototype.doMouseMove=function(){if(this.isActive){var a=this.diagram.lastInput,b=this.Bk;null!==b&&(a.targetObject=b,null!==b.actionMove&&b.actionMove(a,b))}};Eg.prototype.doMouseUp=function(){if(this.isActive){var a=this.diagram.lastInput,b=this.Bk;if(null===b)return;a.targetObject=b;null!==b.actionUp&&b.actionUp(a,b);this.standardMouseClick(function(a){for(;null!==a.panel&&(!a.isActionable||a!==b);)a=a.panel;return a},function(a){return a===b})}this.stopTool()};\nEg.prototype.doCancel=function(){var a=this.diagram.lastInput,b=this.Bk;null!==b&&(a.targetObject=b,null!==b.actionCancel&&b.actionCancel(a,b),this.stopTool())};Eg.prototype.doStop=function(){this.Bk=null};Eg.className=\"ActionTool\";function Fg(){ye.call(this);this.name=\"ClickCreating\";this.ij=null;this.u=!0;this.l=!1;this.Uw=new I(0,0)}la(Fg,ye);\nFg.prototype.canStart=function(){if(!this.isEnabled||null===this.archetypeNodeData)return!1;var a=this.diagram;if(a.isReadOnly||a.isModelReadOnly||!a.allowInsert||!a.lastInput.left||this.isBeyondDragSize())return!1;if(this.isDoubleClick){if(1===a.lastInput.clickCount&&(this.Uw=a.lastInput.viewPoint.copy()),2!==a.lastInput.clickCount||this.isBeyondDragSize(this.Uw))return!1}else if(1!==a.lastInput.clickCount)return!1;return a.currentTool!==this&&null!==a.jm(a.lastInput.documentPoint,!0)?!1:!0};\nFg.prototype.doMouseUp=function(){var a=this.diagram;this.isActive&&this.insertPart(a.lastInput.documentPoint);this.stopTool()};\nFg.prototype.insertPart=function(a){var b=this.diagram,c=this.archetypeNodeData;if(null===c)return null;var d=null;try{b.R(\"ChangingSelection\",b.selection);this.ua(this.name);if(c instanceof U)c.Wb()&&(yg(c),d=c.copy(),null!==d&&b.add(d));else if(null!==c){var e=b.model.copyNodeData(c);za(e)&&(b.model.pf(e),d=b.wc(e))}if(null!==d){var f=I.allocAt(a.x,a.y);this.isGridSnapEnabled&&Gg(this.diagram,d,a,f);d.location=f;b.allowSelect&&(b.clearSelection(!0),d.isSelected=!0);I.free(f)}b.Na();this.transactionResult=\nthis.name;b.R(\"PartCreated\",d)}finally{this.Hg(),b.R(\"ChangedSelection\",b.selection)}return d};ma.Object.defineProperties(Fg.prototype,{archetypeNodeData:{get:function(){return this.ij},set:function(a){this.ij=a}},isDoubleClick:{get:function(){return this.u},set:function(a){this.u=a}},isGridSnapEnabled:{get:function(){return this.l},set:function(a){this.l=a}}});Fg.className=\"ClickCreatingTool\";\nfunction Hg(){ye.call(this);this.name=\"DragSelecting\";this.Vk=175;this.u=!1;var a=new U;a.layerName=\"Tool\";a.selectable=!1;var b=new Lf;b.name=\"SHAPE\";b.figure=\"Rectangle\";b.fill=null;b.stroke=\"magenta\";a.add(b);this.l=a}la(Hg,ye);\nHg.prototype.canStart=function(){if(!this.isEnabled)return!1;var a=this.diagram;if(!a.allowSelect)return!1;var b=a.lastInput;return!b.left||a.currentTool!==this&&(!this.isBeyondDragSize()||b.timestamp-a.firstInput.timestampe.right&&(c.x-=d.width+5/b.scale);c.xe.bottom&&(c.y-=d.height+5/b.scale);c.ya.lastInput.clickCount?!1:!0};Vg.prototype.doStart=function(){eh=this;null!==this.textBlock&&this.doActivate()};\nVg.prototype.doActivate=function(){if(!this.isActive){var a=this.diagram;if(null!==a){var b=this.textBlock;null===b&&(b=a.Ub(a.lastInput.documentPoint));if(null!==b&&b instanceof Wg&&(this.textBlock=b,null!==b.part)){this.isActive=!0;this.ia=bh;var c=this.defaultTextEditor;null!==b.textEditor&&(c=b.textEditor);this.vh=this.textBlock.copy();var d=new N(this.textBlock.ga(vc),this.textBlock.ga(Gc));a.cw(d);c.show(b,a,this);this.currentTextEditor=c}}}};Vg.prototype.doCancel=function(){this.stopTool()};\nVg.prototype.doMouseUp=function(){this.canStart()&&this.doActivate()};Vg.prototype.doMouseDown=function(){this.isActive&&this.acceptText(fh)};Vg.prototype.acceptText=function(a){switch(a){case fh:if(this.ia===hh)this.currentTextEditor instanceof HTMLElement&&this.currentTextEditor.focus();else if(this.ia===bh||this.ia===dh||this.ia===ch)this.ia=ih,jh(this);break;case kh:case $g:case ah:if($g!==a||!0!==this.textBlock.isMultiline)if(this.ia===bh||this.ia===dh||this.ia===ch)this.ia=ih,jh(this)}};\nfunction jh(a){var b=a.textBlock,c=a.diagram,d=a.currentTextEditor;if(null!==b&&null!==d){var e=b.text,f=\"\";null!==d.valueFunction&&(f=d.valueFunction());if(a.isValidText(b,e,f))a.ua(a.name),a.ia=hh,a.transactionResult=a.name,b.text=f,d=a.textBlock,null!==d.textEdited&&d.textEdited(d,e,f),null!==c&&c.R(\"TextEdited\",b,e),a.Hg(),a.stopTool(),null!==c&&c.doFocus();else{a.ia=dh;var g=a.textBlock;null!==g.errorFunction&&g.errorFunction(a,e,f);d.show(b,c,a)}}}\nVg.prototype.doDeactivate=function(){var a=this.diagram;null!==a&&(this.ia=Yg,this.textBlock=null,null!==this.currentTextEditor&&this.currentTextEditor.hide(a,this),this.isActive=!1)};Vg.prototype.doStop=function(){eh=null};Vg.prototype.isValidText=function(a,b,c){var d=this.textValidation;if(null!==d&&!d(a,b,c))return!1;d=a.textValidation;return null===d||d(a,b,c)?!0:!1};Vg.prototype.Wx=function(a){var b=this.vh;b.text=a;b.measure(this.textBlock.ti,Infinity);return b};\nma.Object.defineProperties(Vg.prototype,{textBlock:{get:function(){return this.Ia},set:function(a){this.Ia=a}},currentTextEditor:{get:function(){return this.u},set:function(a){this.u=a}},defaultTextEditor:{get:function(){return this.l},set:function(a){this.l=a}},starting:{get:function(){return this.Ha},set:function(a){this.Ha=a}},textValidation:{get:function(){return this.Ji},\nset:function(a){this.Ji=a}},minimumEditorScale:{get:function(){return this.I},set:function(a){this.I=a}},selectsTextOnActivate:{get:function(){return this.Y},set:function(a){this.Y=a}},state:{get:function(){return this.ia},set:function(a){this.ia!==a&&(this.ia=a)}}});Vg.prototype.measureTemporaryTextBlock=Vg.prototype.Wx;\nvar kh=new D(Vg,\"LostFocus\",0),fh=new D(Vg,\"MouseDown\",1),ah=new D(Vg,\"Tab\",2),$g=new D(Vg,\"Enter\",3),th=new D(Vg,\"SingleClick\",0),Xg=new D(Vg,\"SingleClickSelected\",1),gh=new D(Vg,\"DoubleClick\",2),Yg=new D(Vg,\"StateNone\",0),bh=new D(Vg,\"StateActive\",1),ch=new D(Vg,\"StateEditing\",2),ih=new D(Vg,\"StateValidating\",3),dh=new D(Vg,\"StateInvalid\",4),hh=new D(Vg,\"StateValidated\",5),eh=null;Vg.className=\"TextEditingTool\";Vg.LostFocus=kh;Vg.MouseDown=fh;Vg.Tab=ah;Vg.Enter=$g;Vg.SingleClick=th;\nVg.SingleClickSelected=Xg;Vg.DoubleClick=gh;Vg.StateNone=Yg;Vg.StateActive=bh;Vg.StateEditing=ch;Vg.StateValidating=ih;Vg.StateInvalid=dh;Vg.StateValidated=hh;La(\"textEditingTool\",function(){return this.findTool(\"TextEditing\")},function(a){this.Va(\"TextEditing\",a,this.mouseUpTools)});\nfunction uh(){vh||(wh(),vh=!0);this.B=ze;this.gl=this.Ze=this.qc=this.Tr=this.hc=!1;this.px=!0;this.hl=xh;this.bn=!1;this.oi=this.Mc=!0;this.Ug=600;this.Mw=this.ox=!1;this.Ke=new F;this.Ad=new yh;this.Ad.Jc=this;this.Ck=new F;this.Tu=new F;this.Ss=new F}uh.prototype.Yd=function(a){this.B=a};uh.prototype.canStart=function(){return!0};function zh(a,b){Ah(a,b)&&(a.Ze=!0)}function Ah(a,b){if(!a.Mc||!a.canStart(b))return!1;a.Ke.add(b);a.defaultAnimation.isAnimating&&a.Xc();return a.qc=!0}\nfunction Bh(a){if(a.Mc&&a.qc){var b=a.Ad,c=a.B,d=a.Ke.contains(\"Model\");d&&(a.gl=!0,a.hl===xh?(b.isViewportUnconstrained=!0,b.pc.clear(),b.add(c,\"position\",c.position.copy().offset(0,-200),c.position),b.add(c,\"opacity\",0,1)):a.hl===Ch&&b.pc.clear(),c.R(\"InitialAnimationStarting\",a));d&&!a.oi||0===b.pc.count?(a.Ke.clear(),a.qc=!1,a.Ze=!1,b.pc.clear(),Dh(b),a.gl=!1,c.M()):(a.Ke.clear(),c.we=!1,x.requestAnimationFrame(function(){!1===a.qc||b.hc||(c.Be(\"temporaryPixelRatio\")&&Ue(c),Eh(c),a.qc=!1,a.Ze=\n!1,a.px=d&&a.hl===Fh&&c.Nu.w(c.ma)?!0:!1,b.start(),Gh(a),c.Na(),Hh(b,0),If(c,!0),Ih(a),c.R(\"AnimationStarting\",a))}))}}function Jh(a,b,c,d){b instanceof S&&(null!==b.fromNode||null!==b.toNode)||a.Ad.add(b,\"position\",c,d,!1)}t=uh.prototype;t.Dt=function(a){return this.Ad.Dt(a)};t.Gv=function(a){return this.Ad.Gv(a)};\nfunction Kh(a,b){function c(){0a&&va(a,\">= 1\",uh,\"duration\");this.Ug=a}},isAnimating:{get:function(){return this.hc}},isTicking:{get:function(){return this.Tr}},isInitial:{\nget:function(){return this.oi},set:function(a){this.oi=a}},defaultAnimation:{get:function(){return this.Ad}},activeAnimations:{get:function(){return this.Ck}},initialAnimationStyle:{get:function(){return this.hl},set:function(a){this.hl=a}}});uh.prototype.stopAnimation=uh.prototype.Xc;var Th=null,vh=!1,xh=new D(uh,\"Default\",1),Fh=new D(uh,\"AnimateLocations\",2),Ch=new D(uh,\"None\",3);\nuh.className=\"AnimationManager\";uh.defineAnimationEffect=function(a,b){vh||(wh(),vh=!0);Th.add(a,b)};uh.Default=xh;uh.AnimateLocations=Fh;uh.None=Ch;function yh(){this.Xu=this.nx=this.Jc=this.B=null;this.pl=this.hc=this.l=!1;this.Gn=this.td=0;this.nr=this.ku=Uh;this.ol=this.lp=!1;this.Mu=1;this.Ku=0;this.md=this.Ug=NaN;this.Pw=0;this.Hn=null;this.u=Fb;this.pc=new H;this.Gu=new H;this.Xl=new F;this.Hu=new F;this.Nw=Vh}yh.prototype.suspend=function(){this.pl=!0};\nyh.prototype.advanceTo=function(a,b){b&&(this.pl=!1);this.lp&&a>=this.md&&(this.ol=!0,a-=this.md);this.Pw=a;Lh(this,!0);Gh(this.Jc);If(this.B);Ih(this.Jc);this.B.Ee()};function Dh(a){a.Gu.clear();a.ol=!1;a.Ku=0;a.md=NaN;0a.Gn?a.md:d-a.td;b&&(e=a.Pw,ea.Gn&&(a.lp&&!a.ol?(a.td=+new Date,a.Gn=a.td+a.md,a.ol=!0):a.gm(!1))}}}\nfunction Hh(a,b){for(var c=a.md,d=a.pc.iterator,e=a.ol;d.next();){var f=d.key;if(!(f instanceof Y&&null===f.diagram)){var g=d.value,h=e?g.end:g.start;g=e?g.start:g.end;var k=Th,l;for(l in g)\"position\"===l&&(g[\"position:placeholder\"]||g[\"position:node\"])||null===k.get(l)||k.get(l)(f,h[l],g[l],a.nr,b,c,a)}}}t.stop=function(){this.hc&&this.gm(!0)};\nt.gm=function(a){null!==this.Xu&&this.Xu.sp.remove(this.nx);if(this.hc){var b=this.B,c=this.Jc;this.pl=this.hc=c.gl=!1;Gh(c);for(var d=this.pc,e=this.Xl.iterator;e.next();)b.remove(e.value);for(e=this.Hu.iterator;e.next();)e.value.o();e=this.lp;d=d.iterator;for(var f=Th;d.next();){var g=d.key,h=d.value,k=e?h.end:h.start,l=e?h.start:h.end,m=h.pv,n;for(n in l)if(null!==f.get(n)){var p=n;!h.kv||\"position:node\"!==p&&\"position:placeholder\"!==p||(p=\"position\");f.get(p)(g,k[n],void 0!==m[n]?m[n]:h.kv?k[n]:\nl[n],this.nr,this.md,this.md,this)}h.kv&&void 0!==m.location&&g instanceof U&&(g.location=m.location);h.Uv&&g instanceof U&&g.Ob(!1)}if(c.defaultAnimation===this)for(n=this.B.links;n.next();)e=n.value,null===e.oh?(d=e.path,null!==d&&(e.kd=!1,e.o(),d.o())):(e.points=e.oh,e.oh=null);b.yt.clear();kf(b,!1);b.Na();b.M();If(b,!0);this.isViewportUnconstrained&&(b.scrollMode=this.Nw);Ih(c);this.Ku++;!a&&this.Mu>this.Ku?(this.ol=!1,this.start()):(this.Hn&&this.Hn(this),Dh(this),c.gm(this),b.Pb())}};\nt.Vj=function(a,b){var c=b.actualBounds,d=null;b instanceof T&&(d=b.placeholder);null!==d?(c=d.ga(vc),d=d.padding,c.x+=d.left,c.y+=d.top,this.add(a,\"position\",c,a.position,!1)):this.add(a,\"position\",new I(c.x+c.width/2,c.y+c.height/2),a.position,!1);this.add(a,\"scale\",.01,a.scale,!1);if(a instanceof T)for(a=a.memberParts;a.next();)d=a.value,d instanceof W&&this.Vj(d,b)};\nt.Tj=function(a,b){if(a.isVisible()){var c=null;b instanceof T&&(c=b.placeholder);null!==c?this.add(a,\"position:placeholder\",a.position,c,!0):this.add(a,\"position:node\",a.position,b,!0);this.add(a,\"scale\",a.scale,.01,!0);c=this.pc;c.contains(a)&&(c.H(a).Uv=!0);if(a instanceof T)for(a=a.memberParts;a.next();)c=a.value,c instanceof W&&this.Tj(c,b)}};t.Hz=function(a){var b=this.Gu.get(a);null===b&&(b={},this.Gu.add(a,b));return b};\nma.Object.defineProperties(yh.prototype,{duration:{get:function(){return this.Ug},set:function(a){1>a&&va(a,\">= 1\",yh,\"duration\");this.Ug=a}},reversible:{get:function(){return this.lp},set:function(a){this.lp=a}},runCount:{get:function(){return this.Mu},set:function(a){0a?c/2*a*a+b:-c/2*(--a*(a-2)-1)+b}function Wh(a,b,c,d){return a===d?b+c:c*(-Math.pow(2,-10*a/d)+1)+b}yh.className=\"Animation\";yh.EaseLinear=function(a,b,c,d){return c*a/d+b};yh.EaseInOutQuad=Uh;yh.EaseInQuad=function(a,b,c,d){return c*(a/=d)*a+b};yh.EaseOutQuad=function(a,b,c,d){return-c*(a/=d)*(a-2)+b};yh.EaseInExpo=function(a,b,c,d){return 0===a?b:c*Math.pow(2,10*(a/d-1))+b};yh.EaseOutExpo=Wh;\nfunction Zh(a,b,c){this.start=a;this.end=b;this.pv={};this.kv=c;this.Uv=!1}Zh.className=\"AnimationState\";function $h(a,b,c){this.bd=null;this.af=a;this.Mp=c||ai;this.Hk=null;void 0!==b&&(this.Hk=b,void 0===c&&(this.Mp=bi))}$h.prototype.copy=function(){var a=new $h(this.af);a.Mp=this.Mp;var b=this.Hk;if(null!==b){var c={};void 0!==b.duration&&(c.Hx=b.duration);void 0!==b.finished&&(c.Hx=b.finished);void 0!==b.easing&&(c.Hx=b.easing);a.Hk=c}return a};\nfunction ci(a,b){a=a.Hk;null!==a&&(a.duration&&(b.duration=a.duration),a.finished&&(b.finished=a.finished),a.easing&&(b.easing=a.easing))}ma.Object.defineProperties($h.prototype,{propertyName:{get:function(){return this.af},set:function(a){this.af=a}},animationSettings:{get:function(){return this.Hk},set:function(a){this.Hk=a}},startCondition:{get:function(){return this.Mp},set:function(a){this.Mp=a}}});\nvar ai=new D($h,\"Default\",1),bi=new D($h,\"Immediate\",2),di=new D($h,\"Bundled\",3);$h.className=\"AnimationTrigger\";$h.Default=ai;$h.Immediate=bi;$h.Bundled=di;function ei(){Ya(this);this.B=null;this.Ca=new E;this.Ra=\"\";this.qb=1;this.u=!1;this.Bi=this.I=this.$h=this.Zh=this.Yh=this.Xh=this.Vh=this.Wh=this.Uh=this.bi=this.Th=this.ai=this.Sh=this.Rh=!0;this.l=!1;this.Yo=[]}t=ei.prototype;t.clear=function(){this.Ca.clear();this.Yo.length=0};t.Yd=function(a){this.B=a};\nt.toString=function(a){void 0===a&&(a=0);var b='Layer \"'+this.name+'\"';if(0>=a)return b;for(var c=0,d=0,e=0,f=0,g=0,h=this.Ca.iterator;h.next();){var k=h.value;k instanceof T?e++:k instanceof W?d++:k instanceof S?f++:k instanceof Je?g++:c++}h=\"\";0c.Bo||g.height*e>c.Bo?b.bc(a,c):(e=b.actualBounds,f=b.naturalBounds,0===e.width||0===e.height||isNaN(e.x)||isNaN(e.y)||!b.isVisible()||(c=b.transform,null!==b.areaBackground&&\n(ii(b,a,b.areaBackground,!0,!0,f,e),a.fillRect(e.x,e.y,e.width,e.height)),null===b.areaBackground&&null===b.background&&(ii(b,a,\"rgba(0,0,0,0.3)\",!0,!1,f,e),a.fillRect(e.x,e.y,e.width,e.height)),null!==b.background&&(a.transform(c.m11,c.m12,c.m21,c.m22,c.dx,c.dy),ii(b,a,b.background,!0,!1,f,e),a.fillRect(0,0,f.width/2,f.height/2),c.ut()||(b=1/(c.m11*c.m22-c.m12*c.m21),a.transform(c.m22*b,-c.m12*b,-c.m21*b,c.m11*b,b*(c.m21*c.dy-c.m22*c.dx),b*(c.m12*c.dx-c.m11*c.dy))))));d&&(a.restore(),a.sc(!0))};\nt.g=function(a,b,c,d,e){var f=this.diagram;null!==f&&f.Ya(re,a,this,b,c,d,e)};t.aj=function(a,b,c){var d=this.Ca;b.ui=this;if(a>=d.count)a=d.count;else if(d.L(a)===b)return-1;d.Kb(a,b);b.qq(c);d=this.diagram;null!==d&&(c?d.M():d.aj(b));ji(this,a,b);return a};\nt.Fc=function(a,b,c){if(!c&&b.layer!==this&&null!==b.layer)return b.layer.Fc(a,b,c);var d=this.Ca;if(0>a||a>=d.length){if(a=d.indexOf(b),0>a)return-1}else if(d.L(a)!==b&&(a=d.indexOf(b),0>a))return-1;b.rq(c);d.lb(a);d=this.diagram;null!==d&&(c?d.M():d.Fc(b));b.ui=null;return a};\nfunction ji(a,b,c){b=ki(a,b,c);if(c instanceof T&&null!==c&&isNaN(c.zOrder)){if(0!==c.memberParts.count){for(var d=-1,e=a.Ca.j,f=e.length,g=0;gd&&h.containingGroup===c&&(d=g,0<=b))break}!(0>d)&&d=e)return b;0>b&&(b=a.indexOf(c));if(0>b)return-1;for(var f=b-1,g=NaN;0<=f;){g=a.L(f).zOrder;if(!isNaN(g))break;f--}for(var h=b+1,k=NaN;hd)for(;;){if(-1===f||g<=d){f++;if(f===b)break;a.lb(b);a.Kb(f,c);return f}for(g=NaN;0<=--f&&(g=a.L(f).zOrder,isNaN(g)););}else if(!isNaN(k)&&k=d){h--;if(h===b)break;a.lb(b);a.Kb(h,c);return h}for(k=NaN;++h<\ne&&(k=a.L(h).zOrder,isNaN(k)););}return b}\nma.Object.defineProperties(ei.prototype,{parts:{get:function(){return this.Ca.iterator}},partsBackwards:{get:function(){return this.Ca.iteratorBackwards}},diagram:{get:function(){return this.B}},name:{get:function(){return this.Ra},set:function(a){var b=this.Ra;if(b!==a){var c=this.diagram;if(null!==c)for(\"\"===b&&B(\"Cannot rename default Layer to: \"+a),c=c.layers;c.next();)c.value.name===\na&&B(\"Layer.name is already present in this diagram: \"+a);this.Ra=a;this.g(\"name\",b,a);for(a=this.Ca.iterator;a.next();)a.value.layerName=this.Ra}}},opacity:{get:function(){return this.qb},set:function(a){var b=this.qb;b!==a&&((0>a||1=a)return b;for(var c=this.Ja.iterator;c.next();)b+=\"\\n \"+c.value.toString(a-1);return b};R.prototype.addEventListener=function(a,b,c,d){a.addEventListener(b,c,d)};\nR.prototype.removeEventListener=function(a,b,c,d){a.removeEventListener(b,c,d)};\nfunction Mi(a){var b=a.sa.Ea;b instanceof HTMLCanvasElement&&(a.Vm?(a.addEventListener(b,\"pointerdown\",a.tm,!1),a.addEventListener(b,\"pointermove\",a.um,!1),a.addEventListener(b,\"pointerup\",a.wm,!1),a.addEventListener(b,\"pointerout\",a.vm,!1)):(a.addEventListener(b,\"touchstart\",a.pw,!1),a.addEventListener(b,\"touchmove\",a.ow,!1),a.addEventListener(b,\"touchend\",a.nw,!1),a.addEventListener(b,\"mousemove\",a.qk,!1),a.addEventListener(b,\"mousedown\",a.pk,!1),a.addEventListener(b,\"mouseup\",a.sk,!1),a.addEventListener(b,\n\"mouseout\",a.rk,!1)),a.addEventListener(b,\"mouseenter\",a.dz,!1),a.addEventListener(b,\"mouseleave\",a.ez,!1),a.addEventListener(b,\"wheel\",a.tk,!1),a.addEventListener(b,\"keydown\",a.Xz,!1),a.addEventListener(b,\"keyup\",a.Yz,!1),a.addEventListener(b,\"blur\",a.Ry,!1),a.addEventListener(b,\"focus\",a.Sy,!1),a.addEventListener(b,\"selectstart\",function(a){a.preventDefault();return!1},!1),a.addEventListener(b,\"contextmenu\",function(a){a.preventDefault();return!1},!1),a.addEventListener(b,\"gesturestart\",function(b){a.toolManager.gestureBehavior!==\nMe&&(a.toolManager.gestureBehavior===Le?b.preventDefault():a.je&&a.lastInput.handled||(b.preventDefault(),a.Cl=a.scale,a.currentTool.doCancel()))},!1),a.addEventListener(b,\"gesturechange\",function(b){if(a.toolManager.gestureBehavior!==Me)if(a.toolManager.gestureBehavior===Le)b.preventDefault();else if(!a.je||!a.lastInput.handled){b.preventDefault();var c=b.scale;if(null!==a.Cl){var e=a.sa.getBoundingClientRect();b=new I(b.pageX-window.scrollX-a.wa/e.width*e.left,b.pageY-window.scrollY-a.va/e.height*\ne.top);c=a.Cl*c;e=a.commandHandler;if(c!==a.scale&&e.canResetZoom(c)){var f=a.zoomPoint;a.zoomPoint=b;e.resetZoom(c);a.zoomPoint=f}}}},!1),a.addEventListener(x,\"resize\",a.vw,!1))}function Ue(a){30p&&(this.position=q.h(-(this.Es.scrollWidth-this.wa)+u-this.wa/c+k,this.position.y))),a.By&&this.allowVerticalScroll&&(fr&&(this.position=q.h(this.position.x,\n-(this.Es.scrollHeight-this.va)+a.scrollTop-this.va/c+d))),I.free(q),Ri(this),this.li=this.vp=!1,b=this.documentBounds,c=this.viewportBounds,k=b.right,p=c.right,d=b.bottom,r=c.bottom,e=b.x,l=c.x,f=b.y,b=c.y,m>=g&&e>=l&&k<=p&&(this.wp.style.width=\"1px\"),n>=h&&f>=b&&d<=r&&(this.wp.style.height=\"1px\"))}};R.prototype.computeBounds=function(){0c&&(b=c),ba.maxScale&&(b=a.maxScale),b):b===Zi?(b=k>h?(g-a.jb)/d:(f-a.jb)/e,b>c&&(b=c),ba.maxScale&&(b=a.maxScale),b):a.scale}\nR.prototype.zoomToFit=function(){var a=this.Gi;this.Gi=Vh;this.scale=Vi(this,Yi);a!==Vh&&(Ui(this,!1),Wi(this,this.documentBounds,this.wa/this.ya,this.va/this.ya,this.lj,!1));this.Gi=a};t=R.prototype;\nt.EA=function(a,b){void 0===b&&(b=Yi);var c=a.width,d=a.height;if(!(0===c||0===d||isNaN(c)&&isNaN(d))){var e=1;if(b===Yi||b===Zi)if(isNaN(c))e=this.viewportBounds.height*this.scale/d;else if(isNaN(d))e=this.viewportBounds.width*this.scale/c;else{e=this.wa;var f=this.va;e=b===Zi?f/d>e/c?(f-(this.he?this.jb:0))/d:(e-(this.Se?this.jb:0))/c:Math.min(f/d,e/c)}this.scale=e;this.position=new I(a.x,a.y)}};\nt.My=function(a,b){Ii(this);var c=this.documentBounds,d=this.viewportBounds;this.position=new I(c.x+(a.x*c.width+a.offsetX)-(b.x*d.width-b.offsetX),c.y+(a.y*c.height+a.offsetY)-(b.y*d.height-b.offsetY))};t.Az=function(a){if(a instanceof Y){this.In=a;var b=I.alloc();this.Jn=this.Nq(a.ga(vc,b));I.free(b)}else this.In=null,this.Jn=Jb};\nfunction Wi(a,b,c,d,e,f){var g=I.allocAt(a.ma.x,a.ma.y),h=g.x,k=g.y;if(null!==a.In){var l=I.alloc();l=a.In.ga(vc,l);h=l.x-a.Jn.x/a.scale;k=l.y-a.Jn.y/a.scale;e=uc;I.free(l)}if(f||a.scrollMode===Vh)e.eb()&&(c>b.width&&(h=b.x+(e.x*b.width+e.offsetX)-(e.x*c-e.offsetX)),d>b.height&&(k=b.y+(e.y*b.height+e.offsetY)-(e.y*d-e.offsetY))),e=a.Fi,f=c-b.width,cb.left?h=b.left:hb.top?k=b.top:kb.targetTouches.length)return;b=b.targetTouches[c]}else if(null!==a.Kj[0])b=a.Kj[c];else return;c=a.sa;null!==c&&(c=c.getBoundingClientRect(),d.h(b.clientX-a.wa/c.width*c.left,b.clientY-a.va/c.height*c.top))}t=R.prototype;t.Na=function(){this.ki||(this.ki=!0,this.Pb(!0))};function jj(a){a.Bc||Si(a);Ii(a)}t.Ee=function(){this.Rb||this.Bc||(this.M(),Xi(this),Ri(this),this.Na(),this.Wc())};t.Wz=function(){return this.we};\nt.Zy=function(a){void 0===a&&(a=null);var b=this.animationManager,c=b.isEnabled;b.Xc();b.isEnabled=!1;If(this);this.ie=!1;b.isEnabled=c;null!==a&&sa(function(){zh(b,\"Model\");a()},1)};t.Pb=function(a){void 0===a&&(a=!1);if(!0!==this.we&&!(this.Rb||!1===a&&this.Bc)){this.we=!0;var b=this;x.requestAnimationFrame(function(){b.we&&b.Wc()})}};t.Wc=function(){if(!this.sj||this.we)this.sj&&(this.sj=!1),If(this)};\nfunction kj(a,b,c){a.animationManager.defaultAnimation.isAnimating||a.Rb||!a.li||Pi(a)||(b&&Si(a),c&&Ui(a,!1))}\nfunction If(a,b){if(!a.Bc&&(a.we=!1,null!==a.La||a.Zl.v())){a.Bc=!0;var c=a.animationManager,d=a.ss;if(!c.isAnimating&&0!==d.length){for(var e=d.j,f=e.length,g=0;gb;b++){var c=a.nd.iterator;if(null===c||0===a.nd.count)break;a.nd=new F;a.uw(c,a.nd)}a.nodes.each(function(a){a instanceof T&&0!==(a.P&65536)!==!1&&(a.P=a.P^65536)})}}\nt.uw=function(a,b){for(a.reset();a.next();){var c=a.value;!c.Wb()||c instanceof T||(c.bj()?(c.measure(Infinity,Infinity),c.arrange()):b.add(c))}for(a.reset();a.next();)c=a.value,c instanceof T&&c.isVisible()&&pj(this,c);for(a.reset();a.next();)c=a.value,c instanceof S&&c.isVisible()&&(c.bj()?(c.measure(Infinity,Infinity),c.arrange()):b.add(c));for(a.reset();a.next();)c=a.value,c instanceof Je&&c.isVisible()&&(c.bj()?(c.measure(Infinity,Infinity),c.arrange()):b.add(c))};\nfunction pj(a,b){for(var c=Fa(),d=Fa(),e=b.memberParts;e.next();){var f=e.value;f.isVisible()&&(f instanceof T?(qj(f)||rj(f)||sj(f))&&pj(a,f):f instanceof S?f.fromNode===b||f.toNode===b?d.push(f):c.push(f):(f.measure(Infinity,Infinity),f.arrange()))}a=c.length;for(e=0;ec&&(r=y.left,q=y.right),p.height>w&&(u=y.top,v=y.bottom)):\n(r=y.left,q=y.right,u=y.top,v=y.bottom);y=p.width+r+q;var z=p.height+u+v;r=p.x-r;var A=n.x;q=p.right+q;var C=n.right+h;u=p.y-u;var G=n.y;p=p.bottom+v;n=n.bottom+k;var L=\"1px\",K=\"1px\";v=a.scale;l=y>l/v;m=z>m/v;a.scrollMode===Vh&&(l||m)&&(l&&a.hasHorizontalScrollbar&&a.allowHorizontalScroll&&(l=1,r+1C+1&&(l=Math.max((q-C)*v+a.wa,l)),c+h+1n+1&&(l=Math.max((p-n)*v+a.va,l)),w+k+1C+1&&(h=Math.max((q-C)*v+a.wa,h)),c+1n+1&&(k=Math.max((p-n)*v+h,k)),w+1C+1&&(k=a.position.x*v));if(a.nl)switch(a.zs){case \"negative\":k=-(b.scrollWidth-k-b.clientWidth);break;case \"reverse\":k=b.scrollWidth-k-b.clientWidth}b.scrollLeft=k;a.hasVerticalScrollbar&&a.allowVerticalScroll&&(w+1n+1&&(b.scrollTop=\na.position.y*v));l=a.wa;m=a.va;b.style.width=l+(a.Se?a.jb:0)+\"px\";b.style.height=m+(a.he?a.jb:0)+\"px\";return d!==l||e!==m||a.animationManager.qc?(a.Bq(f,a.viewportBounds,v,g),!1):!0}\nt.add=function(a){var b=a.diagram;if(b!==this&&(null!==b&&B(\"Cannot add part \"+a.toString()+\" to \"+this.toString()+\". It is already a part of \"+b.toString()),b=this.im(a.layerName),null===b&&(b=this.im(\"\")),null===b&&B('Cannot add a Part when unable find a Layer named \"'+a.layerName+'\" and there is no default Layer'),a.layer!==b)){var c=b.aj(99999999,a,a.diagram===this);0<=c&&this.Ya(te,\"parts\",b,null,a,null,c);b.isTemporary||this.Na();a.C(1);c=a.layerChanged;null!==c&&c(a,null,b)}};\nt.aj=function(a){this.partManager.aj(a);var b=this;Dj(a,function(a){Ej(b,a)});(a instanceof Je||a instanceof T&&null!==a.placeholder)&&a.o();null!==a.data&&Dj(a,function(a){Fj(b.partManager,a)});!0!==rj(a)&&!0!==sj(a)||this.nd.add(a);Gj(a,!0,this);Hj(a)?(a.actualBounds.v()&&this.M(Bj(a,a.actualBounds)),this.Na()):a.isVisible()&&a.actualBounds.v()&&this.M(Bj(a,a.actualBounds));this.Pb()};\nt.Fc=function(a){a.Yj();this.partManager.Fc(a);var b=this;null!==a.data&&Dj(a,function(a){Ij(b.partManager,a,b)});this.nd.remove(a);Hj(a)?(a.actualBounds.v()&&this.M(Bj(a,a.actualBounds)),this.Na()):a.isVisible()&&a.actualBounds.v()&&this.M(Bj(a,a.actualBounds));this.Pb()};t.remove=function(a){Jj(this,a,!0)};\nfunction Jj(a,b,c){var d=b.layer;null!==d&&d.diagram===a&&(b.isSelected=!1,b.isHighlighted=!1,b.C(2),c&&b.dk(),c=d.Fc(-1,b,!1),0<=c&&a.Ya(ue,\"parts\",d,b,null,c,null),a=b.layerChanged,null!==a&&a(b,d,null))}t.Jt=function(a,b){if(Aa(a))for(var c=a.length,d=0;dd&&this.Na()};\nt.Gy=function(a,b){Pj(this,a,b);a.Yd(this);var c=this.Ja,d=c.indexOf(a);0<=d&&(c.remove(a),null!==this.ac&&this.Ya(ue,\"layers\",this,a,null,d,null));var e=c.count,f;for(f=0;fd&&this.Na()};\nt.mA=function(a){a.diagram!==this&&B(\"Cannot remove a Layer from another Diagram: \"+a+\" of \"+a.diagram);if(\"\"!==a.name){var b=this.Ja,c=b.indexOf(a);if(b.remove(a)){for(b=a.Ca.copy().iterator;b.next();){var d=b.value,e=d.layerName;e!==a.name?d.layerName=e:d.layerName=\"\"}null!==this.ac&&this.Ya(ue,\"layers\",this,a,null,c,null);this.M();this.Na()}}};t.im=function(a){for(var b=this.layers;b.next();){var c=b.value;if(c.name===a)return c}return null};\nt.vx=function(a){null===this.oe&&(this.oe=new E);this.oe.add(a);this.model.Dh(a)};t.oA=function(a){null!==this.oe&&(this.oe.remove(a),0===this.oe.count&&(this.oe=null));this.model.wk(a)};t.Dh=function(a){null===this.Mf&&(this.Mf=new E);this.Mf.add(a)};t.wk=function(a){null!==this.Mf&&(this.Mf.remove(a),0===this.Mf.count&&(this.Mf=null))};\nt.bt=function(a){this.skipsUndoManager||this.model.skipsUndoManager||this.model.undoManager.Cv(a);a.change!==se&&(this.isModified=!0);if(null!==this.Mf)for(var b=this.Mf,c=b.length,d=0;dp.Ca.indexOf(q)&&p.aj(r,q,u):(q.isSelected=!1,q.isHighlighted=!1,q.Lb(),p.Fc(u?r:-1,q,u)))}else p instanceof R?\"number\"===typeof r&&q instanceof ei&&(b?(q.Yd(this),this.Ja.Kb(r,q)):this.Ja.lb(r)):B(\"unknown ChangedEvent.Remove object: \"+\na.toString());this.isModified=!0}else d!==se&&B(\"unknown ChangedEvent: \"+a.toString())}finally{this.skipsModelSourceBindings=c}}};R.prototype.ua=function(a){return this.undoManager.ua(a)};R.prototype.Ua=function(a){return this.undoManager.Ua(a)};R.prototype.Bf=function(){return this.undoManager.Bf()};\nR.prototype.commit=function(a,b){void 0===b&&(b=\"\");var c=this.skipsUndoManager;null===b&&(this.skipsUndoManager=!0,b=\"\");this.undoManager.ua(b);var d=!1;try{a(this),d=!0}finally{d?this.undoManager.Ua(b):this.undoManager.Bf(),this.skipsUndoManager=c}};R.prototype.updateAllTargetBindings=function(a){this.partManager.updateAllTargetBindings(a)};R.prototype.Pq=function(){this.partManager.Pq()};\nfunction Sj(a,b,c){var d=a.animationManager;if(a.Rb||a.Bc)a.ya=c,d.Ze&&d.Ad.add(d.B,\"scale\",b,a.ya);else if(a.Rb=!0,null===a.sa)a.ya=c;else{var e=a.viewportBounds.copy(),f=a.wa,g=a.va;e.width=a.wa/b;e.height=a.va/b;var h=a.zoomPoint.x,k=a.zoomPoint.y,l=a.contentAlignment;isNaN(h)&&(l.yf()?l.wf(Ic)?h=0:l.wf(Jc)&&(h=f-1):h=l.eb()?l.x*(f-1):f/2);isNaN(k)&&(l.yf()?l.wf(Hc)?k=0:l.wf(Kc)&&(k=g-1):k=l.eb()?l.y*(g-1):g/2);null===a.scaleComputation||a.animationManager.isAnimating||(c=a.scaleComputation(a,\nc));ca.maxScale&&(c=a.maxScale);f=I.allocAt(a.ma.x+h/b-h/c,a.ma.y+k/b-k/c);a.position=f;I.free(f);a.ya=c;a.Bq(e,a.viewportBounds,b,!1);a.Rb=!1;Ui(a,!1);d.Ze&&d.Ad.add(d.B,\"scale\",b,a.ya);a.M();Xi(a)}}\nR.prototype.Bq=function(a,b,c,d){if(!a.w(b)){void 0===d&&(d=!1);d||Xi(this);Ri(this);var e=this.layout;null===e||!e.isViewportSized||this.autoScale!==ni||d||a.width===b.width&&a.height===b.height||e.C();e=this.currentTool;!0===this.Yf&&e instanceof Oa&&(this.lastInput.documentPoint=this.Pt(this.lastInput.viewPoint),Ne(e,this));this.Rb||this.Sx(a,b);mj(this);this.Rd.scale=c;this.Rd.position.x=a.x;this.Rd.position.y=a.y;this.Rd.bounds.assign(a);this.Rd.Jv=d;this.R(\"ViewportBoundsChanged\",this.Rd,a);\nthis.isVirtualized&&this.links.each(function(a){a.isAvoiding&&a.actualBounds.Gc(b)&&a.Oa()})}};\nfunction mj(a,b){void 0===b&&(b=null);var c=a.Fb;if(null!==c&&c.visible){for(var d=M.alloc(),e=1,f=1,g=c.W.j,h=g.length,k=0;km||(dk(l.figure)?f=f*m/J.Nx(f,m):e=e*m/J.Nx(e,m))}g=c.gridCellSize;d.h(f*g.width,e*g.height);if(null!==b)e=b.width,f=b.height,a=b.x,g=b.y;else{b=N.alloc();a=a.viewportBounds;b.h(a.x,a.y,a.width,a.height);if(!b.v()){N.free(b);return}e=b.width;f=b.height;a=b.x;g=b.y;N.free(b)}c.width=e+2*d.width;c.height=f+2*d.height;b=I.alloc();J.mq(a,g,0,0,\nd.width,d.height,b);b.offset(-d.width,-d.height);M.free(d);c.part.location=b;I.free(b)}}R.prototype.clearSelection=function(a){void 0===a&&(a=!1);var b=this.selection;if(0!==b.count){a||this.R(\"ChangingSelection\",b);for(var c=b.na(),d=c.length,e=0;e=d&&!f.isAnimating&&!f.qc&&(b||zh(f,\"Layout\"));a.If=!1;for(var g=a.zh.iterator;g.next();)pk(a,g.value,b,d);e.isValidLayout||(!b||e.isRealtime||null===e.isRealtime||0===d?(e.doLayout(a),Si(a),e.isValidLayout=!0):a.If=!0)}finally{0===d&&a.Ua(\"Layout\"),a.If=!e.isValidLayout,a.Z=c}}}\nfunction pk(a,b,c,d){if(null!==b){for(var e=b.zl.iterator;e.next();)pk(a,e.value,c,d);e=b.layout;null===e||e.isValidLayout||(!c||e.isRealtime||0===d?(b.uk=!b.location.v(),e.doLayout(b),b.C(32),pj(a,b),e.isValidLayout=!0):a.If=!0)}}t.zz=function(){for(var a=new E,b=this.nodes;b.next();){var c=b.value;c.isTopLevel&&null===c.Vi()&&a.add(c)}return a.iterator};\nfunction oi(a){function b(a){var b=a.toLowerCase(),e=new E;c.add(a,e);c.add(b,e);d.add(a,a);d.add(b,a)}var c=new H,d=new H;b(\"InitialAnimationStarting\");b(\"AnimationStarting\");b(\"AnimationFinished\");b(\"BackgroundSingleClicked\");b(\"BackgroundDoubleClicked\");b(\"BackgroundContextClicked\");b(\"ClipboardChanged\");b(\"ClipboardPasted\");b(\"DocumentBoundsChanged\");b(\"ExternalObjectsDropped\");b(\"GainedFocus\");b(\"InitialLayoutCompleted\");b(\"LayoutCompleted\");b(\"LinkDrawn\");b(\"LinkRelinked\");b(\"LinkReshaped\");\nb(\"LostFocus\");b(\"Modified\");b(\"ObjectSingleClicked\");b(\"ObjectDoubleClicked\");b(\"ObjectContextClicked\");b(\"PartCreated\");b(\"PartResized\");b(\"PartRotated\");b(\"SelectionMoved\");b(\"SelectionCopied\");b(\"SelectionDeleting\");b(\"SelectionDeleted\");b(\"SelectionGrouped\");b(\"SelectionUngrouped\");b(\"ChangingSelection\");b(\"ChangedSelection\");b(\"SubGraphCollapsed\");b(\"SubGraphExpanded\");b(\"TextEdited\");b(\"TreeCollapsed\");b(\"TreeExpanded\");b(\"ViewportBoundsChanged\");b(\"InvalidateDraw\");a.wr=c;a.vr=d}\nfunction yj(a,b){var c=a.vr.H(b);return null!==c?c:a.vr.H(b.toLowerCase())}function qk(a,b){var c=a.wr.H(b);if(null!==c)return c;c=a.wr.H(b.toLowerCase());if(null!==c)return c;B(\"Unknown DiagramEvent name: \"+b);return null}t.Uj=function(a,b){a=qk(this,a);null!==a&&a.add(b)};t.ym=function(a,b){a=qk(this,a);null!==a&&a.remove(b)};\nt.R=function(a,b,c){var d=qk(this,a),e=new pe;e.diagram=this;a=yj(this,a);null!==a&&(e.name=a);void 0!==b&&(e.subject=b);void 0!==c&&(e.parameter=c);b=d.length;if(1===b)d.L(0)(e);else if(0!==b)for(d=d.na(),c=0;c=d.top&&0>=d.left&&0>=d.right&&0>=d.bottom)return c;var e=a.viewportBounds,f=a.scale;e=N.allocAt(0,0,e.width*f,e.height*f);var g=I.allocAt(0,0);if(b.x>=e.x&&b.xe.x+e.width-d.right&&(h=Math.max(a.scrollHorizontalLineChange,1),h|=0,g.x+=h,b.x>e.x+e.width-d.right/2&&(g.x+=h),b.x>e.x+e.width-d.right/4&&\n(g.x+=4*h));b.y>=e.y&&b.ye.y+e.height-d.bottom&&(a=Math.max(a.scrollVerticalLineChange,1),a|=0,g.y+=a,b.y>e.y+e.height-d.bottom/2&&(g.y+=a),b.y>e.y+e.height-d.bottom/4&&(g.y+=4*a));g.Ma(Fb)||(c=new I(c.x+g.x/f,c.y+g.y/f));N.free(e);I.free(g);return c}t.At=function(){return null};t.Kv=function(){return null};t.Ky=function(a,b){this.jx.add(a,b)};\nfunction Ak(a,b,c){function d(){var a=+new Date;f=!0;for(g.reset();g.next();)if(!g.value[0].vl){f=!1;break}f||a-l>k?b(c,e,h):x.requestAnimationFrame(d)}for(var e=c.callback,f=!0,g=a.Ci.iterator;g.next();)if(!g.value[0].vl){f=!1;break}if(\"function\"!==typeof e||f)return b(c,e,a);var h=a,k=c.callbackTimeout||300,l=+new Date;x.requestAnimationFrame(function(){d()});return null}t.cA=function(a){if(!Ug)return null;void 0===a&&(a=new db);a.returnType=\"Image\";return this.Ux(a)};\nt.Ux=function(a){void 0===a&&(a=new db);return Ak(this,this.dA,a)};\nt.dA=function(a,b,c){var d=Bk(c,a,\"canvas\",null);if(null===d)return null;c=d.V.canvas;var e=null;if(null!==c)switch(e=a.returnType,void 0===e?e=\"string\":e=e.toLowerCase(),e){case \"imagedata\":e=d.getImageData(0,0,c.width,c.height);break;case \"image\":d=(a.document||document).createElement(\"img\");d.src=c.toDataURL(a.type,a.details);e=d;break;case \"blob\":\"function\"!==typeof b&&B('Error: Diagram.makeImageData called with \"returnType: toBlob\", but no required \"callback\" function property defined.');if(\"function\"===\ntypeof c.toBlob)return c.toBlob(b,a.type,a.details),\"toBlob\";if(\"function\"===typeof c.msToBlob)return b(c.msToBlob()),\"msToBlob\";b(null);return null;default:e=c.toDataURL(a.type,a.details)}return\"function\"===typeof b?(b(e),null):e};\nfunction Bk(a,b,c,d){a.animationManager.Xc();a.Wc();if(null===a.sa)return null;\"object\"!==typeof b&&B(\"properties argument must be an Object.\");var e=b.size||null,f=b.scale||null;void 0!==b.scale&&isNaN(b.scale)&&(f=\"NaN\");var g=b.maxSize;void 0===b.maxSize&&(g=\"SVG\"===c?new M(Infinity,Infinity):new M(2E3,2E3));var h=b.position||null,k=b.parts||null,l=void 0===b.padding?1:b.padding,m=b.background||null,n=b.omitTemporary;void 0===n&&(n=!0);var p=b.document||document,r=b.elementFinished||null,q=b.showTemporary;\nvoid 0===q&&(q=!n);b=b.showGrid;void 0===b&&(b=q);null!==e&&isNaN(e.width)&&isNaN(e.height)&&(e=null);\"number\"===typeof l?l=new oc(l):l instanceof oc||B(\"MakeImage padding must be a Margin or a number.\");l.left=Math.max(l.left,0);l.right=Math.max(l.right,0);l.top=Math.max(l.top,0);l.bottom=Math.max(l.bottom,0);a.Db.sc(!0);n=new Ck(null,p);var u=n.context;if(!(e||f||k||h)){n.width=a.wa+Math.ceil(l.left+l.right);n.height=a.va+Math.ceil(l.top+l.bottom);if(\"SVG\"===c){if(null===d)return null;d.resize(n.width,\nn.height,n.width,n.height);d.ownerDocument=p;d.jq=r;wj(a,d.context,l,new M(n.width,n.height),a.ya,a.ma,k,m,q,b);return d.context}a.Xk=!1;wj(a,u,l,new M(n.width,n.height),a.ya,a.ma,k,m,q,b);a.Xk=!0;return n.context}var v=a.yn,w=a.documentBounds.copy();w.kw(a.bb);if(q)for(var y=a.Ja.j,z=y.length,A=0;Av?(f=v,e=w.width,w=w.height):(e=g.width,w=g.height)):(e=w.width*f,w=w.height*f):(f=v,e=w.width,w=w.height);null!==l?(e+=h,w+=V):l=new oc(0);null!==g&&(v=g.width,g=g.height,isNaN(v)&&(v=2E3),isNaN(g)&&(g=2E3),isFinite(v)&&\n(e=Math.min(e,v)),isFinite(g)&&(w=Math.min(w,g)));n.width=Math.ceil(e);n.height=Math.ceil(w);if(\"SVG\"===c){if(null===d)return null;d.resize(n.width,n.height,n.width,n.height);d.ownerDocument=p;d.jq=r;wj(a,d.context,l,new M(Math.ceil(e),Math.ceil(w)),f,y,k,m,q,b);return d.context}a.Xk=!1;wj(a,u,l,new M(Math.ceil(e),Math.ceil(w)),f,y,k,m,q,b);a.Xk=!0;return n.context}\nma.Object.defineProperties(R.prototype,{div:{get:function(){return this.La},set:function(a){if(this.La!==a){Qa=[];var b=this.La;null!==b?(b.B=void 0,b.innerHTML=\"\",null!==this.sa&&(b=this.sa.Ea,this.removeEventListener(b,\"touchstart\",this.pw,!1),this.removeEventListener(b,\"touchmove\",this.ow,!1),this.removeEventListener(b,\"touchend\",this.nw,!1),this.sa.Fx()),b=this.toolManager,null!==b&&(b.mouseDownTools.each(function(a){a.cancelWaitAfter()}),b.mouseMoveTools.each(function(a){a.cancelWaitAfter()}),\nb.mouseUpTools.each(function(a){a.cancelWaitAfter()})),b.cancelWaitAfter(),this.currentTool.doCancel(),this.Db=this.sa=null,this.removeEventListener(x,\"resize\",this.vw,!1),this.removeEventListener(x,\"mousemove\",this.qk,!0),this.removeEventListener(x,\"mousedown\",this.pk,!0),this.removeEventListener(x,\"mouseup\",this.sk,!0),this.removeEventListener(x,\"wheel\",this.tk,!0),this.removeEventListener(x,\"mouseout\",this.rk,!0),ze===this&&(ze=null)):this.ie=!1;this.La=null;if(null!==a){if(b=a.B)b.div=null;Ei(this,\na);this.Ee()}}}},xx:{get:function(){return this.Io}},kk:{get:function(){return this.ie}},draggedLink:{get:function(){return this.yr},set:function(a){this.yr!==a&&(this.yr=a,null!==a&&(this.ms=a.fromPort,this.ns=a.toPort))}},Xx:{get:function(){return this.ms},set:function(a){this.ms=a}},Yx:{get:function(){return this.ns},set:function(a){this.ns=a}},animationManager:{\nget:function(){return this.Jc}},undoManager:{get:function(){return this.ac.undoManager}},skipsUndoManager:{get:function(){return this.sg},set:function(a){this.sg=a;this.ac.skipsUndoManager=a}},delaysLayout:{get:function(){return this.tr},set:function(a){this.tr=a}},opacity:{get:function(){return this.qb},set:function(a){var b=this.qb;b!==a&&((0>a||1a&&va(a,\">= 0\",R,\"scrollHorizontalLineChange\"),this.Cs=a,this.g(\"scrollHorizontalLineChange\",b,a))}},scrollVerticalLineChange:{get:function(){return this.Gs},set:function(a){var b=this.Gs;b!==a&&(0>a&&va(a,\">= 0\",R,\"scrollVerticalLineChange\"),this.Gs=a,this.g(\"scrollVerticalLineChange\",\nb,a))}},lastInput:{get:function(){return this.dh},set:function(a){this.dh=a}},firstInput:{get:function(){return this.Uf},set:function(a){this.Uf=a}},currentCursor:{get:function(){return this.mr},set:function(a){\"\"===a&&(a=this.xn);if(this.mr!==a){var b=this.sa,c=this.La;if(null!==b){this.mr=a;var d=b.style.cursor;b.style.cursor=a;c.style.cursor=a;b.style.cursor===d&&(b.style.cursor=\"-webkit-\"+a,c.style.cursor=\n\"-webkit-\"+a,b.style.cursor===d&&(b.style.cursor=\"-moz-\"+a,c.style.cursor=\"-moz-\"+a,b.style.cursor===d&&(b.style.cursor=a,c.style.cursor=a)))}}}},defaultCursor:{get:function(){return this.xn},set:function(a){\"\"===a&&(a=\"auto\");var b=this.xn;b!==a&&(this.xn=a,this.g(\"defaultCursor\",b,a))}},click:{get:function(){return this.Nf},set:function(a){var b=this.Nf;b!==a&&(this.Nf=a,this.g(\"click\",b,a))}},doubleClick:{\nget:function(){return this.Sf},set:function(a){var b=this.Sf;b!==a&&(this.Sf=a,this.g(\"doubleClick\",b,a))}},contextClick:{get:function(){return this.Of},set:function(a){var b=this.Of;b!==a&&(this.Of=a,this.g(\"contextClick\",b,a))}},mouseOver:{get:function(){return this.kg},set:function(a){var b=this.kg;b!==a&&(this.kg=a,this.g(\"mouseOver\",b,a))}},mouseHover:{get:function(){return this.ig},set:function(a){var b=\nthis.ig;b!==a&&(this.ig=a,this.g(\"mouseHover\",b,a))}},mouseHold:{get:function(){return this.hg},set:function(a){var b=this.hg;b!==a&&(this.hg=a,this.g(\"mouseHold\",b,a))}},mouseDragOver:{get:function(){return this.gs},set:function(a){var b=this.gs;b!==a&&(this.gs=a,this.g(\"mouseDragOver\",b,a))}},mouseDrop:{get:function(){return this.fg},set:function(a){var b=this.fg;b!==a&&(this.fg=a,this.g(\"mouseDrop\",b,a))}},\nhandlesDragDropForTopLevelParts:{get:function(){return this.Ir},set:function(a){var b=this.Ir;b!==a&&(this.Ir=a,this.g(\"handlesDragDropForTopLevelParts\",b,a))}},mouseEnter:{get:function(){return this.gg},set:function(a){var b=this.gg;b!==a&&(this.gg=a,this.g(\"mouseEnter\",b,a))}},mouseLeave:{get:function(){return this.jg},set:function(a){var b=this.jg;b!==a&&(this.jg=a,this.g(\"mouseLeave\",b,a))}},toolTip:{\nget:function(){return this.ug},set:function(a){var b=this.ug;b!==a&&(this.ug=a,this.g(\"toolTip\",b,a))}},contextMenu:{get:function(){return this.Pf},set:function(a){var b=this.Pf;b!==a&&(this.Pf=a,this.g(\"contextMenu\",b,a))}},commandHandler:{get:function(){return this.gr},set:function(a){this.gr!==a&&(this.gr=a,a.Yd(this))}},toolManager:{get:function(){return this.Ts},set:function(a){this.Ts!==a&&\n(this.Ts=a,a.diagram=this)}},defaultTool:{get:function(){return this.sr},set:function(a){var b=this.sr;b!==a&&(this.sr=a,a.diagram=this,this.currentTool===b&&(this.currentTool=a))}},currentTool:{get:function(){return this.pr},set:function(a){var b=this.pr;null!==b&&(b.isActive&&b.doDeactivate(),b.cancelWaitAfter(),b.doStop());null===a&&(a=this.defaultTool);null!==a&&(this.pr=a,a.diagram=this,a.doStart())}},selection:{\nget:function(){return this.Qu}},maxSelectionCount:{get:function(){return this.cs},set:function(a){var b=this.cs;if(b!==a)if(0<=a&&!isNaN(a)){if(this.cs=a,this.g(\"maxSelectionCount\",b,a),!this.undoManager.isUndoingRedoing&&(a=this.selection.count-a,0= 0\",R,\"maxSelectionCount\")}},nodeSelectionAdornmentTemplate:{\nget:function(){return this.Ro},set:function(a){var b=this.Ro;b!==a&&(this.Ro=a,this.g(\"nodeSelectionAdornmentTemplate\",b,a))}},groupSelectionAdornmentTemplate:{get:function(){return this.Vn},set:function(a){var b=this.Vn;b!==a&&(this.Vn=a,this.g(\"groupSelectionAdornmentTemplate\",b,a))}},linkSelectionAdornmentTemplate:{get:function(){return this.qo},set:function(a){var b=this.qo;b!==a&&(this.qo=a,this.g(\"linkSelectionAdornmentTemplate\",\nb,a))}},highlighteds:{get:function(){return this.ru}},isModified:{get:function(){var a=this.undoManager;return a.isEnabled?null!==a.currentTransaction?!0:this.$n&&this.Gd!==a.historyIndex:this.$n},set:function(a){if(this.$n!==a){this.$n=a;var b=this.undoManager;!a&&b.isEnabled&&(this.Gd=b.historyIndex);a||hk(this)}}},model:{get:function(){return this.ac},set:function(a){var b=this.ac;if(b!==a){this.currentTool.doCancel();\nnull!==b&&b.undoManager!==a.undoManager&&b.undoManager.isInTransaction&&B(\"Do not replace a Diagram.model while a transaction is in progress.\");this.animationManager.Xc(!0);var c=Hi(this,!0);this.ie=!1;this.sj=!0;this.Gd=-2;this.we=!1;var d=this.Bc;this.Bc=!0;zh(this.animationManager,\"Model\");null!==b&&(null!==this.oe&&this.oe.each(function(a){b.wk(a)}),b.wk(this.Ic));this.ac=a;this.partManager=ik(this.ac.constructor.type);for(var e=0;ethis.scale&&(this.scale=a)):va(a,\"> 0\",R,\"minScale\"))}},maxScale:{get:function(){return this.bs},set:function(a){var b=this.bs;b!==a&&(0 0\",R,\"maxScale\"))}},zoomPoint:{get:function(){return this.$s},set:function(a){this.$s.w(a)||(this.$s=a=a.G())}},contentAlignment:{get:function(){return this.lj},set:function(a){var b=this.lj;b.w(a)||(this.lj=a=a.G(),this.g(\"contentAlignment\",b,a),Ui(this,!1))}},initialContentAlignment:{get:function(){return this.Xn},set:function(a){var b=this.Xn;b.w(a)||(this.Xn=a=a.G(),this.g(\"initialContentAlignment\",\nb,a))}},padding:{get:function(){return this.bb},set:function(a){\"number\"===typeof a&&(a=new oc(a));var b=this.bb;b.w(a)||(this.bb=a=a.G(),this.Na(),this.g(\"padding\",b,a))}},partManager:{get:function(){return this.Ia},set:function(a){var b=this.Ia;b!==a&&(null!==a.diagram&&B(\"Cannot share PartManagers between Diagrams: \"+a.toString()),null!==b&&b.Yd(null),this.Ia=a,a.Yd(this))}},nodes:{get:function(){return this.partManager.nodes.iterator}},\nlinks:{get:function(){return this.partManager.links.iterator}},parts:{get:function(){return this.partManager.parts.iterator}},layout:{get:function(){return this.ic},set:function(a){var b=this.ic;b!==a&&(this.ic=a,a.diagram=this,a.group=null,this.If=!0,this.g(\"layout\",b,a),this.Pb())}},isTreePathToChildren:{get:function(){return this.Ur},set:function(a){var b=this.Ur;if(b!==a&&(this.Ur=\na,this.g(\"isTreePathToChildren\",b,a),!this.undoManager.isUndoingRedoing))for(a=this.nodes;a.next();)Dk(a.value)}},treeCollapsePolicy:{get:function(){return this.Vs},set:function(a){var b=this.Vs;b!==a&&(a!==pi&&a!==Ek&&a!==Fk&&B(\"Unknown Diagram.treeCollapsePolicy: \"+a),this.Vs=a,this.g(\"treeCollapsePolicy\",b,a))}},Ce:{get:function(){return this.uu},set:function(a){this.uu=a}},autoScrollInterval:{get:function(){return this.Zm},\nset:function(a){var b=this.Zm;b!==a&&(this.Zm=a,this.g(\"autoScrollInterval\",b,a))}},autoScrollRegion:{get:function(){return this.an},set:function(a){\"number\"===typeof a&&(a=new oc(a));var b=this.an;b.w(a)||(this.an=a=a.G(),this.Na(),this.g(\"autoScrollRegion\",b,a))}}});ma.Object.defineProperties(R,{licenseKey:{get:function(){return Gk.Xb()},set:function(a){Gk.add(a)}},version:{get:function(){return Hk}}});\nR.prototype.makeImageData=R.prototype.Ux;R.prototype.makeImage=R.prototype.cA;R.prototype.addRenderer=R.prototype.Ky;R.prototype.makeSVG=R.prototype.Kv;R.prototype.makeSvg=R.prototype.At;R.prototype.stopAutoScroll=R.prototype.Cf;R.prototype.doAutoScroll=R.prototype.gt;R.prototype.isUnoccupied=R.prototype.lk;R.prototype.raiseDiagramEvent=R.prototype.R;R.prototype.removeDiagramListener=R.prototype.ym;R.prototype.addDiagramListener=R.prototype.Uj;R.prototype.findTreeRoots=R.prototype.zz;\nR.prototype.layoutDiagram=R.prototype.aA;R.prototype.findTopLevelGroups=R.prototype.rz;R.prototype.findTopLevelNodesAndLinks=R.prototype.sz;R.prototype.findLinksByExample=R.prototype.jt;R.prototype.findNodesByExample=R.prototype.kt;R.prototype.findLinkForData=R.prototype.vc;R.prototype.findNodeForData=R.prototype.Si;R.prototype.findPartForData=R.prototype.wc;R.prototype.findLinkForKey=R.prototype.findLinkForKey;R.prototype.findNodeForKey=R.prototype.Jb;R.prototype.findPartForKey=R.prototype.findPartForKey;\nR.prototype.rebuildParts=R.prototype.xd;R.prototype.transformViewToDoc=R.prototype.Pt;R.prototype.transformRectDocToView=R.prototype.BA;R.prototype.transformDocToView=R.prototype.Nq;R.prototype.centerRect=R.prototype.ct;R.prototype.scrollToRect=R.prototype.cw;R.prototype.scroll=R.prototype.scroll;R.prototype.highlightCollection=R.prototype.Qz;R.prototype.highlight=R.prototype.Pz;R.prototype.selectCollection=R.prototype.sA;R.prototype.select=R.prototype.select;\nR.prototype.updateAllRelationshipsFromData=R.prototype.Pq;R.prototype.updateAllTargetBindings=R.prototype.updateAllTargetBindings;R.prototype.commit=R.prototype.commit;R.prototype.rollbackTransaction=R.prototype.Bf;R.prototype.commitTransaction=R.prototype.Ua;R.prototype.startTransaction=R.prototype.ua;R.prototype.raiseChanged=R.prototype.g;R.prototype.raiseChangedEvent=R.prototype.Ya;R.prototype.removeChangedListener=R.prototype.wk;R.prototype.addChangedListener=R.prototype.Dh;\nR.prototype.removeModelChangedListener=R.prototype.oA;R.prototype.addModelChangedListener=R.prototype.vx;R.prototype.findLayer=R.prototype.im;R.prototype.removeLayer=R.prototype.mA;R.prototype.addLayerAfter=R.prototype.Gy;R.prototype.addLayerBefore=R.prototype.tx;R.prototype.addLayer=R.prototype.$l;R.prototype.moveParts=R.prototype.moveParts;R.prototype.copyParts=R.prototype.ck;R.prototype.removeParts=R.prototype.Jt;R.prototype.remove=R.prototype.remove;R.prototype.add=R.prototype.add;\nR.prototype.clearDelayedGeometries=R.prototype.gv;R.prototype.setProperties=R.prototype.iw;R.prototype.resetInputOptions=R.prototype.$v;R.prototype.setInputOption=R.prototype.tA;R.prototype.getInputOption=R.prototype.mm;R.prototype.resetRenderingHints=R.prototype.aw;R.prototype.setRenderingHint=R.prototype.ly;R.prototype.getRenderingHint=R.prototype.Be;R.prototype.maybeUpdate=R.prototype.Wc;R.prototype.requestUpdate=R.prototype.Pb;R.prototype.delayInitialization=R.prototype.Zy;\nR.prototype.isUpdateRequested=R.prototype.Wz;R.prototype.redraw=R.prototype.Ee;R.prototype.invalidateDocumentBounds=R.prototype.Na;R.prototype.findObjectsNear=R.prototype.Ag;R.prototype.findPartsNear=R.prototype.oz;R.prototype.findObjectsIn=R.prototype.tf;R.prototype.findPartsIn=R.prototype.Mx;R.prototype.findObjectsAt=R.prototype.Ti;R.prototype.findPartsAt=R.prototype.nz;R.prototype.findObjectAt=R.prototype.Ub;R.prototype.findPartAt=R.prototype.jm;R.prototype.focusObject=R.prototype.Az;\nR.prototype.alignDocument=R.prototype.My;R.prototype.zoomToRect=R.prototype.EA;R.prototype.zoomToFit=R.prototype.zoomToFit;R.prototype.diagramScroll=R.prototype.Ex;R.prototype.focus=R.prototype.focus;R.prototype.reset=R.prototype.reset;R.useDOM=function(a){Ug=a?void 0!==x.document:!1};R.isUsingDOM=function(){return Ug};\nvar ze=null,qi=new H,Li=null,Ki=null,Ug=void 0!==x.document,Fi=null,Gi=\"\",ni=new D(R,\"None\",0),Yi=new D(R,\"Uniform\",1),Zi=new D(R,\"UniformToFill\",2),Nf=new D(R,\"CycleAll\",10),Rf=new D(R,\"CycleNotDirected\",11),Tf=new D(R,\"CycleNotDirectedFast\",12),Uf=new D(R,\"CycleNotUndirected\",13),Of=new D(R,\"CycleDestinationTree\",14),Qf=new D(R,\"CycleSourceTree\",15),Vh=new D(R,\"DocumentScroll\",1),Xh=new D(R,\"InfiniteScroll\",2),pi=new D(R,\"TreeParentCollapsed\",21),Ek=new D(R,\"AllParentsCollapsed\",22),Fk=new D(R,\n\"AnyParentsCollapsed\",23),Gk=new E,Hk=\"2.1.13\",Ik=null,li=!1;\nfunction mi(){if(Ug){var a=x.document.createElement(\"canvas\"),b=a.getContext(\"2d\"),c=Ra(\"7ca11abfd022028846\");b[c]=Ra(\"398c3597c01238\");for(var d=[\"5da73c80a36455d5038e4972187c3cae51fd22\",qa.Dx+\"4ae6247590da4bb21c324ba3a84e385776\",rd.xF+\"fb236cdfda5de14c134ba1a95a2d4c7cc6f93c1387\",J.za],e=1;5>e;e++)b[Ra(\"7ca11abfd7330390\")](Ra(d[e-1]),10,15*e);b[c]=Ra(\"39f046ebb36e4b\");for(c=1;5>c;c++)b[Ra(\"7ca11abfd7330390\")](Ra(d[c-1]),10,15*c);Ik=a}}R.className=\"Diagram\";\nR.fromDiv=function(a){var b=a;\"string\"===typeof a&&(b=x.document.getElementById(a));return b instanceof HTMLDivElement&&b.B instanceof R?b.B:null};R.inherit=function(a,b){function c(){}if(Object.getPrototypeOf(a).prototype)throw Error(\"Used go.Diagram.inherit defining already defined class \\n\"+a);c.prototype=b.prototype;a.prototype=new c;a.prototype.constructor=a};R.None=ni;R.Uniform=Yi;R.UniformToFill=Zi;R.CycleAll=Nf;R.CycleNotDirected=Rf;R.CycleNotDirectedFast=Tf;R.CycleNotUndirected=Uf;\nR.CycleDestinationTree=Of;R.CycleSourceTree=Qf;R.DocumentScroll=Vh;R.InfiniteScroll=Xh;R.TreeParentCollapsed=pi;R.AllParentsCollapsed=Ek;R.AnyParentsCollapsed=Fk;function Di(){this.Cy=null;this.l=\"zz@orderNum\";\"63ad05bbe23a1786468a4c741b6d2\"===this._tk?this.Pe=this.l=!0:this.Pe=null}\nfunction vj(a,b){b.Db.setTransform(b.Sb,0,0,b.Sb,0,0);if(null===a.Pe){b=\"f\";var c=x[Ra(\"76a715b2f73f148a\")][Ra(\"72ba13b5\")];a.Pe=!0;if(Ug){var d=R[Ra(\"76a115b6ed251eaf4692\")];if(d)for(var e=Gk.iterator;e.next();){d=e.value;d=Ra(d).split(Ra(\"39e9\"));if(6>d.length)break;var f=Ra(d[1]).split(\".\");if(\"7da71ca0\"!==d[4])break;var g=Ra(qa[Ra(\"6cae19\")]).split(\".\");if(f[0]>g[0]||f[0]===g[0]&&f[1]>=g[1]){f=c[Ra(\"76ad18b4f73e\")];for(g=c[Ra(\"73a612b6fb191d\")](Ra(\"35e7\"))+2;gf&&Ra(d[2])!==Ra(\"7da71ca0ad381e90\")&&(f=b[Ra(\"73a612b6fb191d\")](Ra(\"76a715b2ef3e149757\")));0>f&&(f=b[Ra(\"73a612b6fb191d\")](Ra(\"76a715b2ef3e149757\")));0>f&&(f=c[Ra(\"73a612b6fb191d\")](Ra(\"7baa19a6f76c1988428554\")));a.Pe=!(0<=f&&fh.length;)h+=\"9\";h=h.substr(h.length-4);d=\"\";d+=[\"gsh\",\"gsf\"][parseInt(h.substr(0,\n1),10)%2];d+=[\"Header\",\"Background\",\"Display\",\"Feedback\"][parseInt(h.substr(0,1),10)%4];g[Ra(\"79a417a0f0181a8946\")]=d;if(x.document[Ra(\"78a712aa\")]){x.document[Ra(\"78a712aa\")][Ra(\"7bb806b6ed32388c4a875b\")](g);h=x.getComputedStyle(g).getPropertyValue(Ra(\"78a704b7e62456904c9b12701b6532a8\"));x.document[Ra(\"78a712aa\")][Ra(\"68ad1bbcf533388c4a875b\")](g);if(!h)break;if(-1!==h.indexOf(parseInt(f[1]+f[2],16))&&-1!==h.indexOf(parseInt(f[3]+f[4],16))){a.Pe=!1;break}else if(Sa||Ta||Ua||Va)for(d=\".\"+d,f=0;fMath.abs(b.deltaY)?-d:-e):void 0!==b.wheelDeltaX?(0!==b.wheelDeltaX&&(d=0Math.abs(b.wheelDeltaY)?-d:-e):void 0!==b.wheelDelta&&0!==b.wheelDelta&&(c.delta=0e||Math.abs(d.y-b.screenY)>e)?a.od++:a.od=1;c.clickCount=a.od;a.Aj=b.timeStamp;a.lo.Fg(b.screenX,b.screenY);a.doMouseDown();1===b.button?b.preventDefault():ij(c,b)}};a.um=function(b){if(a.isEnabled){a.Yf=!0;var c=a.Kj;if(null!==c[0]&&c[0].pointerId===b.pointerId)c[0]=b;else{if(null!==c[1]&&c[1].pointerId===b.pointerId){c[1]=b;return}if(null===c[0])c[0]=b;else return}c[0].pointerId===b.pointerId&&\n(c=hj(a,b,b,null!==c[1]),c.targetDiagram=ej(b),a.doMouseMove(),ij(c,b))}};a.wm=function(b){if(a.isEnabled){a.Yf=!0;var c=\"touch\"===b.pointerType||\"pen\"===b.pointerType,d=a.ts;if(c&&a.Pj)delete d[b.pointerId],b.preventDefault();else if(d=a.Kj,null!==d[0]&&d[0].pointerId===b.pointerId){d[0]=null;d=gj(a,b,!1,!0,!0,!1);var e=x.document.elementFromPoint(b.clientX,b.clientY);null!==e&&e.B instanceof R&&e.B!==a&&dj(e.B,b,d);dj(a,b,d);d.clickCount=a.od;null===e?d.targetDiagram=ej(b):e.B?d.targetDiagram=e.B:\nd.targetDiagram=null;d.targetObject=null;a.doMouseUp();ij(d,b);c&&(a.je=!1)}else null!==d[1]&&d[1].pointerId===b.pointerId&&(d[1]=null)}};a.vm=function(b){if(a.isEnabled){a.Yf=!1;var c=a.ts;c[b.pointerId]&&delete c[b.pointerId];c=a.Kj;null!==c[0]&&c[0].pointerId===b.pointerId&&(c[0]=null);null!==c[1]&&c[1].pointerId===b.pointerId&&(c[1]=null);\"touch\"!==b.pointerType&&\"pen\"!==b.pointerType&&(b=a.currentTool,b.cancelWaitAfter(),b.standardMouseOver())}};b.sc(!0);Mi(a)}}Di.className=\"DiagramHelper\";\nfunction df(a){this.l=void 0===a?new I:a;this.u=new I}ma.Object.defineProperties(df.prototype,{point:{get:function(){return this.l},set:function(a){this.l=a}},shifted:{get:function(){return this.u},set:function(a){this.u=a}}});df.className=\"DraggingInfo\";function Nj(a,b,c){this.node=a;this.info=b;this.Bv=c}Nj.className=\"DraggingNodeInfoPair\";function Re(){this.reset()}\nRe.prototype.reset=function(){this.isGridSnapEnabled=!1;this.isGridSnapRealtime=!0;this.gridSnapCellSize=(new M(NaN,NaN)).freeze();this.gridSnapCellSpot=vc;this.gridSnapOrigin=(new I(NaN,NaN)).freeze();this.Nz=this.dragsTree=this.dragsLink=!1;this.Mz=!0};function Jk(a){1\nb.updateDelay?b.M():b.Y||(b.Y=!0,setTimeout(function(){b.Y=!1;Pk(b);b.M()},b.updateDelay))};this.Yc=function(){null!==b.observed&&Ok(b)};this.autoScale=Yi;this.Rb=!1}la(Mk,R);Mk.prototype.computePixelRatio=function(){return 1};\nMk.prototype.bc=function(){null===this.La&&B(\"No div specified\");null===this.sa&&B(\"No canvas specified\");if(!(this.sa instanceof Aj)&&(fi(this.box),this.Ac)){var a=this.observed;if(null!==a&&!a.animationManager.isAnimating){tj(this);var b=this.sa;a=this.Db;a.sc(!0);a.setTransform(1,0,0,1,0,0);a.clearRect(0,0,b.width,b.height);1>this.updateDelay?Qk(this):null!==this.Ml&&(a.drawImage(this.Ml.Ea,0,0),b=this.kb,b.reset(),1!==this.scale&&b.scale(this.scale),0===this.position.x&&0===this.position.y||b.translate(-this.position.x,\n-this.position.y),a.scale(this.Sb,this.Sb),a.transform(b.m11,b.m12,b.m21,b.m22,b.dx,b.dy));b=this.Ja.j;for(var c=b.length,d=0;da&&(a=0);this.Za!==a&&(this.Za=a)}}});Mk.className=\"Overview\";function Nk(){Qe.call(this);this.l=null}la(Nk,Qe);\nNk.prototype.canStart=function(){if(!this.isEnabled)return!1;var a=this.diagram;if(null===a||!a.allowMove||!a.allowSelect)return!1;var b=a.observed;if(null===b)return!1;var c=a.lastInput;if(!c.left||a.currentTool!==this&&(!this.isBeyondDragSize()||c.isTouchEvent&&c.timestamp-a.firstInput.timestampb.maxScale||(b.scale=a))};Rk.prototype.canDecreaseZoom=function(a){void 0===a&&(a=1/this.zoomFactor);var b=this.diagram;if(b.autoScale!==ni)return!1;a=b.scale*a;return ab.maxScale?!1:b.allowZoom};\nRk.prototype.increaseZoom=function(a){void 0===a&&(a=this.zoomFactor);var b=this.diagram;b.autoScale===ni&&(a=b.scale*a,ab.maxScale||(b.scale=a))};Rk.prototype.canIncreaseZoom=function(a){void 0===a&&(a=this.zoomFactor);var b=this.diagram;if(b.autoScale!==ni)return!1;a=b.scale*a;return ab.maxScale?!1:b.allowZoom};Rk.prototype.resetZoom=function(a){void 0===a&&(a=this.defaultScale);var b=this.diagram;ab.maxScale||(b.scale=a)};\nRk.prototype.canResetZoom=function(a){void 0===a&&(a=this.defaultScale);var b=this.diagram;return ab.maxScale?!1:b.allowZoom};Rk.prototype.zoomToFit=function(){var a=this.diagram,b=a.animationManager;b.Xc();a.Ee();var c=a.position,d=a.scale;zh(b,\"Zoom To Fit\");d===this.bv&&!isNaN(this.Au)&&a.documentBounds.w(this.av)?(a.scale=this.Au,a.position=this.Ww,this.bv=NaN,this.av=ic):(this.Au=d,this.Ww=c.copy(),a.zoomToFit(),this.bv=a.scale,this.av=a.documentBounds.copy());Bh(b)};\nRk.prototype.canZoomToFit=function(){return this.diagram.allowZoom};\nRk.prototype.scrollToPart=function(a){void 0===a&&(a=null);var b=this.diagram;Ii(b);if(null===a){try{null!==this.pg&&(this.pg.next()?a=this.pg.value:this.pg=null)}catch(k){this.pg=null}null===a&&(0a&&(a+=360));return a};\nt.uf=function(){if(0!==(this.F&4096)===!1)return this.Wk;var a=this.ya;return null!==this.panel?a*this.panel.uf():a};t.ot=function(a,b){void 0===b&&(b=new I);b.assign(a);this.ud.Vd(b);return b};t.Uc=function(a,b,c){return this.hk(a.x,a.y,b.x,b.y,c)};\nt.hk=function(a,b,c,d,e){var f=this.transform,g=1/(f.m11*f.m22-f.m12*f.m21),h=f.m22*g,k=-f.m12*g,l=-f.m21*g,m=f.m11*g,n=g*(f.m21*f.dy-f.m22*f.dx),p=g*(f.m12*f.dx-f.m11*f.dy);if(null!==this.areaBackground)return f=this.actualBounds,J.Uc(f.left,f.top,f.right,f.bottom,a,b,c,d,e);g=a*h+b*l+n;a=a*k+b*m+p;b=c*h+d*l+n;c=c*k+d*m+p;e.h(0,0);d=this.naturalBounds;c=J.Uc(0,0,d.width,d.height,g,a,b,c,e);e.transform(f);return c};\nY.prototype.measure=function(a,b,c,d){if(!1!==qj(this)){var e=this.fh,f=e.right+e.left;e=e.top+e.bottom;a=Math.max(a-f,0);b=Math.max(b-e,0);c=Math.max((c||0)-f,0);d=Math.max((d||0)-e,0);f=this.angle;e=this.desiredSize;var g=0;this instanceof Lf&&(g=this.strokeWidth);90===f||270===f?(a=isFinite(e.height)?e.height+g:a,b=isFinite(e.width)?e.width+g:b):(a=isFinite(e.width)?e.width+g:a,b=isFinite(e.height)?e.height+g:b);e=c||0;g=d||0;var h=this instanceof X;switch(kl(this,!0)){case zg:g=e=0;h&&(b=a=Infinity);\nbreak;case vd:isFinite(a)&&a>c&&(e=a);isFinite(b)&&b>d&&(g=b);break;case Wk:isFinite(a)&&a>c&&(e=a);g=0;h&&(b=Infinity);break;case Xk:isFinite(b)&&b>d&&(g=b),e=0,h&&(a=Infinity)}h=this.maxSize;var k=this.minSize;e>h.width&&k.widthh.height&&k.heighta.height||this.pb>a.width)))c=!0;this.F=c?this.F|256:this.F&-257;this.ub.v()||B(\"Non-real actualBounds has been set. Object \"+this+\", actualBounds: \"+this.ub.toString());this.Et(f,this.ub);ll(this,!1);N.free(f)};t=Y.prototype;t.Fh=function(){};\nfunction ml(a,b,c,d,e){a.ub.h(b,c,d,e);if(!a.desiredSize.v()){var f=a.nc;c=a.fh;b=c.right+c.left;var g=c.top+c.bottom;c=f.width+b;f=f.height+g;d+=b;e+=g;b=kl(a,!0);c===d&&f===e&&(b=zg);switch(b){case zg:if(c>d||f>e)lj(a,!0),a.measure(c>d?d:c,f>e?e:f,0,0);break;case vd:lj(a,!0);a.measure(d,e,0,0);break;case Wk:lj(a,!0);a.measure(d,f,0,0);break;case Xk:lj(a,!0),a.measure(c,e,0,0)}}}\nt.Et=function(a,b){var c=this.part;null!==c&&null!==c.diagram&&(c.selectionObject!==this&&c.resizeObject!==this&&c.rotateObject!==this||nl(c,!0),this.M(),$b(a,b)||(c.Jh(),this.To(c)))};t.To=function(a){null!==this.portId&&(nl(a,!0),a instanceof W&&ol(a,this))};\nt.bc=function(a,b){if(this.visible){var c=this instanceof X&&(this.type===X.TableRow||this.type===X.TableColumn),d=this.ub;if(c||0!==d.width&&0!==d.height&&!isNaN(d.x)&&!isNaN(d.y)){var e=this.opacity;if(0!==e){var f=1;1!==e&&(f=a.globalAlpha,a.globalAlpha=f*e);if(!this.Gx(a,b))if(c)pl(this,a,b);else{this instanceof S&&this.nk(!1);c=this.transform;var g=this.panel;0!==(this.F&4096)===!0&&ql(this);var h=this.part,k=!1,l=0;if(h&&b.Be(\"drawShadows\")&&(k=h.isShadowed)){var m=h.shadowOffset;l=Math.max(m.y,\nm.x)*b.scale*b.Sb}if(!(m=b.ni||!this.xf())){var n=this.naturalBounds;m=this.Qh;var p=m.m11,r=m.m21,q=m.dx,u=m.m12,v=m.m22,w=m.dy,y,z=y=0;m=y*p+z*r+q;var A=y*u+z*v+w;y=n.width+l;z=0;var C=y*p+z*r+q;y=y*u+z*v+w;z=Math.min(m,C);var G=Math.min(A,y);var L=Math.max(m+0,C)-z;var K=Math.max(A+0,y)-G;m=z;A=G;y=n.width+l;z=n.height+l;C=y*p+z*r+q;y=y*u+z*v+w;z=Math.min(m,C);G=Math.min(A,y);L=Math.max(m+L,C)-z;K=Math.max(A+K,y)-G;m=z;A=G;y=0;z=n.height+l;C=y*p+z*r+q;y=y*u+z*v+w;z=Math.min(m,C);G=Math.min(A,y);\nL=Math.max(m+L,C)-z;K=Math.max(A+K,y)-G;m=z;A=G;l=b.viewportBounds;n=l.x;p=l.y;m=!(m>l.width+n||n>L+m||A>l.height+p||p>K+A)}if(m){m=0!==(this.F&256);a.clipInsteadOfFill&&(m=!1);this instanceof Wg&&(a.font=this.font);if(m){A=g.$d()?g.naturalBounds:g.actualBounds;null!==this.ld?(n=this.ld,L=n.x,K=n.y,l=n.width,n=n.height):(L=Math.max(d.x,A.x),K=Math.max(d.y,A.y),l=Math.min(d.right,A.right)-L,n=Math.min(d.bottom,A.bottom)-K);if(L>d.width+d.x||d.x>A.width+A.x){1!==e&&(a.globalAlpha=f);return}a.save();\na.beginPath();a.rect(L,K,l,n);a.clip()}if(this.xf()){if(!h.isVisible()){1!==e&&(a.globalAlpha=f);return}k&&(A=h.shadowOffset,a.jw(A.x*b.scale*b.Sb,A.y*b.scale*b.Sb,h.shadowBlur),rl(a),a.shadowColor=h.shadowColor)}!0===this.shadowVisible?rl(a):!1===this.shadowVisible&&sl(a);h=this.naturalBounds;null!==this.dc&&(ii(this,a,this.dc,!0,!0,h,d),this.dc instanceof tl&&this.dc.type===ul?(a.beginPath(),a.rect(d.x,d.y,d.width,d.height),a.Ud(this.dc)):a.fillRect(d.x,d.y,d.width,d.height));a.transform(c.m11,\nc.m12,c.m21,c.m22,c.dx,c.dy);k&&(null!==g&&0!==(g.F&512)||null!==g&&(g.type===X.Auto||g.type===X.Spot)&&g.zb()!==this)&&null===this.shadowVisible&&sl(a);null!==this.gb&&(l=this.naturalBounds,L=A=0,K=l.width,l=l.height,n=0,this instanceof Lf&&(l=this.ka.bounds,A=l.x,L=l.y,K=l.width,l=l.height,n=this.strokeWidth),ii(this,a,this.gb,!0,!1,h,d),this.gb instanceof tl&&this.gb.type===ul?(a.beginPath(),a.rect(A-n/2,L-n/2,K+n,l+n),a.Ud(this.gb)):a.fillRect(A-n/2,L-n/2,K+n,l+n));k&&(null!==this.gb||null!==\nthis.dc||null!==g&&0!==(g.F&512)||null!==g&&(g.type===X.Auto||g.type===X.Spot)&&g.zb()!==this)?(vl(this,!0),null===this.shadowVisible&&sl(a)):vl(this,!1);this.Qi(a,b);k&&0!==(this.F&512)===!0&&rl(a);this.xf()&&k&&sl(a);m?(a.restore(),this instanceof X?a.sc(!0):a.sc(!1)):c.ut()||(b=1/(c.m11*c.m22-c.m12*c.m21),a.transform(c.m22*b,-c.m12*b,-c.m21*b,c.m11*b,b*(c.m21*c.dy-c.m22*c.dx),b*(c.m12*c.dx-c.m11*c.dy)))}}1!==e&&(a.globalAlpha=f)}}}};t.Gx=function(){return!1};\nfunction pl(a,b,c){var d=a.ub,e=a.oc;null!==a.dc&&(ii(a,b,a.dc,!0,!0,e,d),a.dc instanceof tl&&a.dc.type===ul?(b.beginPath(),b.rect(d.x,d.y,d.width,d.height),b.Ud(a.dc)):b.fillRect(d.x,d.y,d.width,d.height));null!==a.gb&&(ii(a,b,a.gb,!0,!1,e,d),a.gb instanceof tl&&a.gb.type===ul?(b.beginPath(),b.rect(d.x,d.y,d.width,d.height),b.Ud(a.gb)):b.fillRect(d.x,d.y,d.width,d.height));a.Qi(b,c)}t.Qi=function(){};\nfunction ii(a,b,c,d,e,f,g){if(null!==c){var h=1,k=1;if(\"string\"===typeof c)d?b.fillStyle=c:b.strokeStyle=c;else if(c.type===wl)d?b.fillStyle=c.color:b.strokeStyle=c.color;else{h=f.width;k=f.height;e&&(h=g.width,k=g.height);if((f=b instanceof xl)&&c.ce&&(c.type===yl||c.Mk===h&&c.au===k))var l=c.ce;else{var m=0,n=0,p=0,r=0,q=0,u=0;u=q=0;e&&(q=g.x,u=g.y);m=c.start.x*h+c.start.offsetX;n=c.start.y*k+c.start.offsetY;p=c.end.x*h+c.end.offsetX;r=c.end.y*k+c.end.offsetY;m+=q;p+=q;n+=u;r+=u;if(c.type===zl)l=\nb.createLinearGradient(m,n,p,r);else if(c.type===ul)u=isNaN(c.endRadius)?Math.max(h,k)/2:c.endRadius,isNaN(c.startRadius)?(q=0,u=Math.max(h,k)/2):q=c.startRadius,l=b.createRadialGradient(m,n,q,p,r,u);else if(c.type===yl)try{l=b.createPattern(c.pattern,\"repeat\")}catch(w){l=null}if(c.type!==yl&&(e=c.colorStops,null!==e))for(e=e.iterator;e.next();)l.addColorStop(e.key,e.value);if(f&&(c.ce=l,null!==l&&(c.Mk=h,c.au=k),null===l&&c.type===yl&&-1!==c.Mk)){c.Mk=-1;var v=a.diagram;null!==v&&-1===c.Mk&&sa(function(){v.Ee()},\n600)}}d?b.fillStyle=l:b.strokeStyle=l}}}t.Dg=function(a){if(a instanceof X)a:{if(this!==a&&null!==a)for(var b=this.panel;null!==b;){if(b===a){a=!0;break a}b=b.panel}a=!1}else a=!1;return a};t.zf=function(){if(!this.visible)return!1;var a=this.panel;return null!==a?a.zf():!0};t.Eg=function(){for(var a=this instanceof X?this:this.panel;null!==a&&a.isEnabled;)a=a.panel;return null===a};\nfunction ql(a){if(0!==(a.F&2048)===!0){var b=a.kb;b.reset();if(!a.ub.v()||!a.nc.v()){Al(a,!1);return}b.translate(a.ub.x-a.nc.x,a.ub.y-a.nc.y);if(1!==a.scale||0!==a.angle){var c=a.naturalBounds;il(a,b,c.x,c.y,c.width,c.height)}Al(a,!1);Bl(a,!0)}0!==(a.F&4096)===!0&&(b=a.panel,null===b?(a.Qh.set(a.kb),a.Wk=a.scale,Bl(a,!1)):null!==b.ud&&(c=a.Qh,c.reset(),b.$d()?c.multiply(b.Qh):null!==b.panel&&c.multiply(b.panel.Qh),c.multiply(a.kb),a.Wk=a.scale*b.Wk,Bl(a,!1)))}\nfunction il(a,b,c,d,e,f){1!==a.scale&&b.scale(a.scale);if(0!==a.Yb){var g=Ac;a.xf()&&a.locationSpot.eb()&&(g=a.locationSpot);var h=I.alloc();if(a instanceof U&&a.locationObject!==a)for(c=a.locationObject,d=c.naturalBounds,h.xk(d.x,d.y,d.width,d.height,g),c.bg.ra(h),h.offset(-c.measuredBounds.x,-c.measuredBounds.y),g=c.panel;null!==g&&g!==a;)g.bg.ra(h),h.offset(-g.measuredBounds.x,-g.measuredBounds.y),g=g.panel;else h.xk(c,d,e,f,g);b.rotate(a.Yb,h.x,h.y);I.free(h)}}\nt.o=function(a){void 0===a&&(a=!1);if(!0!==qj(this)){lj(this,!0);ll(this,!0);var b=this.panel;null===b||a||b.o()}};t.om=function(){!0!==qj(this)&&(lj(this,!0),ll(this,!0))};function Cl(a){if(!1===rj(a)){var b=a.panel;null!==b?b.o():a.xf()&&(b=a.diagram,null!==b&&(b.nd.add(a),a instanceof W&&a.fd(),b.Pb()));ll(a,!0)}}t.ml=function(){0!==(this.F&2048)===!1&&(Al(this,!0),Bl(this,!0))};t.Fv=function(){Bl(this,!0)};t.M=function(){var a=this.part;null!==a&&a.M()};\nfunction kl(a,b){var c=a.stretch,d=a.panel;if(null!==d&&d.type===X.Table)return Dl(a,d.getRowDefinition(a.row),d.getColumnDefinition(a.column),b);if(null!==d&&d.type===X.Auto&&d.zb()===a)return El(a,vd,b);if(c===Vk){if(null!==d){if(d.type===X.Spot&&d.zb()===a)return El(a,vd,b);c=d.defaultStretch;return c===Vk?El(a,zg,b):El(a,c,b)}return El(a,zg,b)}return El(a,c,b)}\nfunction Dl(a,b,c,d){var e=a.stretch;if(e!==Vk)return El(a,e,d);var f=e=null;switch(b.stretch){case Xk:f=!0;break;case vd:f=!0}switch(c.stretch){case Wk:e=!0;break;case vd:e=!0}b=a.panel.defaultStretch;null===e&&(e=b===Wk||b===vd);null===f&&(f=b===Xk||b===vd);return!0===e&&!0===f?El(a,vd,d):!0===e?El(a,Wk,d):!0===f?El(a,Xk,d):El(a,zg,d)}\nfunction El(a,b,c){if(c)return b;if(b===zg)return zg;c=a.desiredSize;if(c.v())return zg;a=a.angle;if(!isNaN(c.width))if(90!==a&&270!==a){if(b===Wk)return zg;if(b===vd)return Xk}else{if(b===Xk)return zg;if(b===vd)return Wk}if(!isNaN(c.height))if(90!==a&&270!==a){if(b===Xk)return zg;if(b===vd)return Wk}else{if(b===Wk)return zg;if(b===vd)return Xk}return b}function vl(a,b){a.F=b?a.F|512:a.F&-513}function el(a){return 0!==(a.F&1024)}function Fl(a,b){a.F=b?a.F|1024:a.F&-1025}\nfunction Al(a,b){a.F=b?a.F|2048:a.F&-2049}function Bl(a,b){a.F=b?a.F|4096:a.F&-4097}function qj(a){return 0!==(a.F&8192)}function lj(a,b){a.F=b?a.F|8192:a.F&-8193}function rj(a){return 0!==(a.F&16384)}function ll(a,b){a.F=b?a.F|16384:a.F&-16385}t.cj=function(a){this.ng=a};t.hw=function(){};t.gw=function(a){this.ma.assign(a);Cl(this);return!0};t.Kq=function(a,b){if(this.ma.x!==a||this.ma.y!==b)this.ma.h(a,b),this.ml()};\nfunction Gl(a){var b=a.part;if(b instanceof W&&(null!==a.portId||a===b.port)){var c=b.diagram;null===c||c.undoManager.isUndoingRedoing||ol(b,a)}}function Hl(a){var b=a.diagram;null===b||b.undoManager.isUndoingRedoing||(a instanceof X?a instanceof W?a.fd():a.Km(a,function(a){Gl(a)}):Gl(a))}t.bind=function(a){a.bd=this;var b=this.Ui();null!==b&&Il(b)&&B(\"Cannot add a Binding to a template that has already been copied: \"+a);null===this.$a&&(this.$a=new E);this.$a.add(a)};\nt.Ui=function(){for(var a=this instanceof X?this:this.panel;null!==a;){if(null!==a.ci)return a;a=a.panel}return null};t.iw=function(a){xj(this,a)};function Jl(a,b){b.bd=a;null===a.Kg&&(a.Kg=new H);a.Kg.add(b.propertyName,b)}\nfunction Kl(a,b){for(var c=1;ce)&&B(\"Must specify non-negative integer row for RowColumnDefinition \"+b+\", not: \"+e),a.isRow=\n!0,a.index=e):void 0!==b.column&&(e=b.column,(void 0===e||null===e||Infinity===e||isNaN(e)||0>e)&&B(\"Must specify non-negative integer column for RowColumnDefinition \"+b+\", not: \"+e),a.isRow=!1,a.index=e);e=new db;for(c in b)\"row\"!==c&&\"column\"!==c&&(e[c]=b[c]);xj(a,e)}else xj(a,b);else B('Unknown initializer \"'+b+'\" for object being constructed by GraphObject.make: '+a)}function Pl(a,b){Ll.add(a,b)}\nfunction Ql(a,b,c){void 0===c&&(c=null);var d=a[1];if(\"function\"===typeof c?c(d):\"string\"===typeof d)return a.splice(1,1),d;if(void 0===b)throw Error(\"no \"+(\"function\"===typeof c?\"satisfactory\":\"string\")+\" argument for GraphObject builder \"+a[0]);return b}\nma.Object.defineProperties(Y.prototype,{shadowVisible:{get:function(){return this.Ll},set:function(a){var b=this.Ll;b!==a&&(this.Ll=a,this.M(),this.g(\"shadowVisible\",b,a))}},enabledChanged:{get:function(){return null!==this.N?this.N.En:null},set:function(a){bl(this);var b=this.N.En;b!==a&&(this.N.En=a,this.g(\"enabledChanged\",b,a))}},segmentOrientation:{get:function(){return this.Jl},set:function(a){var b=this.Jl;\nb!==a&&(this.Jl=a,this.o(),this.g(\"segmentOrientation\",b,a),a===bg&&(this.angle=0))}},segmentIndex:{get:function(){return this.xp},set:function(a){a=Math.round(a);var b=this.xp;b!==a&&(this.xp=a,this.o(),this.g(\"segmentIndex\",b,a))}},segmentFraction:{get:function(){return this.Hl},set:function(a){isNaN(a)?a=0:0>a?a=0:1a||1=a&&B(\"GraphObject.scale for \"+this+\" must be greater than zero, not: \"+a),this.ya=a,this.o(),this.g(\"scale\",b,a))}},angle:{get:function(){return this.Yb},set:function(a){var b=this.Yb;b!==a&&(a%=360,0>a&&(a+=360),b!==a&&(this.Yb=a,Hl(this),this.o(),this.g(\"angle\",b,a)))}},desiredSize:{get:function(){return this.Lc},set:function(a){var b=a.width,c=a.height,d=this.Lc,e=d.width,f=d.height;(e===b||isNaN(e)&&\nisNaN(b))&&(f===c||isNaN(f)&&isNaN(c))||(this.Lc=a=a.G(),this.o(),this instanceof Lf&&this.cc(),this.g(\"desiredSize\",d,a),el(this)&&(a=this.part,null!==a&&(fl(this,a,\"width\"),fl(this,a,\"height\"))))}},width:{get:function(){return this.Lc.width},set:function(a){var b=this.Lc.width;b===a||isNaN(b)&&isNaN(a)||(b=this.Lc,this.Lc=a=(new M(a,this.Lc.height)).freeze(),this.o(),this instanceof Lf&&this.cc(),this.g(\"desiredSize\",b,a),el(this)&&(a=this.part,null!==a&&fl(this,a,\n\"width\")))}},height:{get:function(){return this.Lc.height},set:function(a){var b=this.Lc.height;b===a||isNaN(b)&&isNaN(a)||(b=this.Lc,this.Lc=a=(new M(this.Lc.width,a)).freeze(),this.o(),this instanceof Lf&&this.cc(),this.g(\"desiredSize\",b,a),el(this)&&(a=this.part,null!==a&&fl(this,a,\"height\")))}},minSize:{get:function(){return this.eg},set:function(a){var b=this.eg;b.w(a)||(a=a.copy(),isNaN(a.width)&&(a.width=0),isNaN(a.height)&&(a.height=\n0),a.freeze(),this.eg=a,this.o(),this.g(\"minSize\",b,a))}},maxSize:{get:function(){return this.dg},set:function(a){var b=this.dg;b.w(a)||(a=a.copy(),isNaN(a.width)&&(a.width=Infinity),isNaN(a.height)&&(a.height=Infinity),a.freeze(),this.dg=a,this.o(),this.g(\"maxSize\",b,a))}},measuredBounds:{get:function(){return this.nc}},naturalBounds:{get:function(){return this.oc}},margin:{get:function(){return this.fh},\nset:function(a){\"number\"===typeof a&&(a=new oc(a));var b=this.fh;b.w(a)||(this.fh=a=a.G(),this.o(),this.g(\"margin\",b,a))}},transform:{get:function(){0!==(this.F&2048)===!0&&ql(this);return this.kb}},ud:{get:function(){0!==(this.F&4096)===!0&&ql(this);return this.Qh}},alignment:{get:function(){return this.vb},set:function(a){var b=this.vb;b.w(a)||(a.jc()&&!a.Mb()&&B(\"GraphObject.alignment for \"+this+\" must be a real Spot or Spot.Default, not: \"+\na),this.vb=a=a.G(),Cl(this),this.g(\"alignment\",b,a))}},column:{get:function(){return this.Og},set:function(a){a=Math.round(a);var b=this.Og;b!==a&&(0>a&&va(a,\">= 0\",Y,\"column\"),this.Og=a,this.o(),this.g(\"column\",b,a))}},columnSpan:{get:function(){return this.gn},set:function(a){a=Math.round(a);var b=this.gn;b!==a&&(1>a&&va(a,\">= 1\",Y,\"columnSpan\"),this.gn=a,this.o(),this.g(\"columnSpan\",b,a))}},row:{get:function(){return this.pp},\nset:function(a){a=Math.round(a);var b=this.pp;b!==a&&(0>a&&va(a,\">= 0\",Y,\"row\"),this.pp=a,this.o(),this.g(\"row\",b,a))}},rowSpan:{get:function(){return this.qp},set:function(a){a=Math.round(a);var b=this.qp;b!==a&&(1>a&&va(a,\">= 1\",Y,\"rowSpan\"),this.qp=a,this.o(),this.g(\"rowSpan\",b,a))}},spanAllocation:{get:function(){return this.Kp},set:function(a){var b=this.Kp;b!==a&&(this.Kp=a,this.o(),this.g(\"spanAllocation\",b,a))}},alignmentFocus:{\nget:function(){return this.Fk},set:function(a){var b=this.Fk;b.w(a)||(this.Fk=a=a.G(),this.o(),this.g(\"alignmentFocus\",b,a))}},portId:{get:function(){return this.cp},set:function(a){var b=this.cp;if(b!==a){var c=this.part;null===c||c instanceof W||(B(\"Cannot set portID on a Link: \"+a),c=null);null!==b&&null!==c&&Sl(c,this);this.cp=a;null!==a&&null!==c&&(c.Ih=!0,Tl(c,this));this.g(\"portId\",b,a)}}},toSpot:{get:function(){return null!==\nthis.O?this.O.yh:uc},set:function(a){this.Ec();var b=this.O.yh;b.w(a)||(a=a.G(),this.O.yh=a,this.g(\"toSpot\",b,a),Gl(this))}},toEndSegmentLength:{get:function(){return null!==this.O?this.O.wh:10},set:function(a){this.Ec();var b=this.O.wh;b!==a&&(0>a&&va(a,\">= 0\",Y,\"toEndSegmentLength\"),this.O.wh=a,this.g(\"toEndSegmentLength\",b,a),Gl(this))}},toShortLength:{get:function(){return null!==this.O?this.O.xh:0},set:function(a){this.Ec();var b=this.O.xh;\nb!==a&&(this.O.xh=a,this.g(\"toShortLength\",b,a),Gl(this))}},toLinkable:{get:function(){return null!==this.O?this.O.Tp:null},set:function(a){this.Ec();var b=this.O.Tp;b!==a&&(this.O.Tp=a,this.g(\"toLinkable\",b,a))}},toMaxLinks:{get:function(){return null!==this.O?this.O.Up:Infinity},set:function(a){this.Ec();var b=this.O.Up;b!==a&&(0>a&&va(a,\">= 0\",Y,\"toMaxLinks\"),this.O.Up=a,this.g(\"toMaxLinks\",b,a))}},fromSpot:{\nget:function(){return null!==this.O?this.O.Yg:uc},set:function(a){this.Ec();var b=this.O.Yg;b.w(a)||(a=a.G(),this.O.Yg=a,this.g(\"fromSpot\",b,a),Gl(this))}},fromEndSegmentLength:{get:function(){return null!==this.O?this.O.Wg:10},set:function(a){this.Ec();var b=this.O.Wg;b!==a&&(0>a&&va(a,\">= 0\",Y,\"fromEndSegmentLength\"),this.O.Wg=a,this.g(\"fromEndSegmentLength\",b,a),Gl(this))}},fromShortLength:{get:function(){return null!==this.O?this.O.Xg:\n0},set:function(a){this.Ec();var b=this.O.Xg;b!==a&&(this.O.Xg=a,this.g(\"fromShortLength\",b,a),Gl(this))}},fromLinkable:{get:function(){return null!==this.O?this.O.Kn:null},set:function(a){this.Ec();var b=this.O.Kn;b!==a&&(this.O.Kn=a,this.g(\"fromLinkable\",b,a))}},fromMaxLinks:{get:function(){return null!==this.O?this.O.Ln:Infinity},set:function(a){this.Ec();var b=this.O.Ln;b!==a&&(0>a&&va(a,\">= 0\",Y,\"fromMaxLinks\"),this.O.Ln=a,this.g(\"fromMaxLinks\",\nb,a))}},cursor:{get:function(){return this.fi},set:function(a){var b=this.fi;b!==a&&(this.fi=a,this.g(\"cursor\",b,a))}},click:{get:function(){return null!==this.N?this.N.Nf:null},set:function(a){bl(this);var b=this.N.Nf;b!==a&&(this.N.Nf=a,this.g(\"click\",b,a))}},doubleClick:{get:function(){return null!==this.N?this.N.Sf:null},set:function(a){bl(this);var b=this.N.Sf;b!==a&&(this.N.Sf=a,this.g(\"doubleClick\",b,\na))}},contextClick:{get:function(){return null!==this.N?this.N.Of:null},set:function(a){bl(this);var b=this.N.Of;b!==a&&(this.N.Of=a,this.g(\"contextClick\",b,a))}},mouseEnter:{get:function(){return null!==this.N?this.N.gg:null},set:function(a){bl(this);var b=this.N.gg;b!==a&&(this.N.gg=a,this.g(\"mouseEnter\",b,a))}},mouseLeave:{get:function(){return null!==this.N?this.N.jg:null},set:function(a){bl(this);var b=\nthis.N.jg;b!==a&&(this.N.jg=a,this.g(\"mouseLeave\",b,a))}},mouseOver:{get:function(){return null!==this.N?this.N.kg:null},set:function(a){bl(this);var b=this.N.kg;b!==a&&(this.N.kg=a,this.g(\"mouseOver\",b,a))}},mouseHover:{get:function(){return null!==this.N?this.N.ig:null},set:function(a){bl(this);var b=this.N.ig;b!==a&&(this.N.ig=a,this.g(\"mouseHover\",b,a))}},mouseHold:{get:function(){return null!==this.N?this.N.hg:\nnull},set:function(a){bl(this);var b=this.N.hg;b!==a&&(this.N.hg=a,this.g(\"mouseHold\",b,a))}},mouseDragEnter:{get:function(){return null!==this.N?this.N.Fo:null},set:function(a){bl(this);var b=this.N.Fo;b!==a&&(this.N.Fo=a,this.g(\"mouseDragEnter\",b,a))}},mouseDragLeave:{get:function(){return null!==this.N?this.N.Go:null},set:function(a){bl(this);var b=this.N.Go;b!==a&&(this.N.Go=a,this.g(\"mouseDragLeave\",b,a))}},mouseDrop:{\nget:function(){return null!==this.N?this.N.fg:null},set:function(a){bl(this);var b=this.N.fg;b!==a&&(this.N.fg=a,this.g(\"mouseDrop\",b,a))}},actionDown:{get:function(){return null!==this.N?this.N.Pm:null},set:function(a){bl(this);var b=this.N.Pm;b!==a&&(this.N.Pm=a,this.g(\"actionDown\",b,a))}},actionMove:{get:function(){return null!==this.N?this.N.Qm:null},set:function(a){bl(this);var b=this.N.Qm;b!==a&&(this.N.Qm=a,this.g(\"actionMove\",\nb,a))}},actionUp:{get:function(){return null!==this.N?this.N.Rm:null},set:function(a){bl(this);var b=this.N.Rm;b!==a&&(this.N.Rm=a,this.g(\"actionUp\",b,a))}},actionCancel:{get:function(){return null!==this.N?this.N.Om:null},set:function(a){bl(this);var b=this.N.Om;b!==a&&(this.N.Om=a,this.g(\"actionCancel\",b,a))}},toolTip:{get:function(){return null!==this.N?this.N.ug:null},set:function(a){bl(this);var b=this.N.ug;\nb!==a&&(this.N.ug=a,this.g(\"toolTip\",b,a))}},contextMenu:{get:function(){return null!==this.N?this.N.Pf:null},set:function(a){bl(this);var b=this.N.Pf;b!==a&&(this.N.Pf=a,this.g(\"contextMenu\",b,a))}}});Y.prototype.setProperties=Y.prototype.iw;Y.prototype.findTemplateBinder=Y.prototype.Ui;Y.prototype.bind=Y.prototype.bind;Y.prototype.isEnabledObject=Y.prototype.Eg;Y.prototype.isVisibleObject=Y.prototype.zf;Y.prototype.isContainedBy=Y.prototype.Dg;\nY.prototype.getNearestIntersectionPoint=Y.prototype.Uc;Y.prototype.getLocalPoint=Y.prototype.ot;Y.prototype.getDocumentScale=Y.prototype.uf;Y.prototype.getDocumentAngle=Y.prototype.Xi;Y.prototype.getDocumentBounds=Y.prototype.lm;Y.prototype.getDocumentPoint=Y.prototype.ga;Y.prototype.intersectsRect=Y.prototype.Gc;Y.prototype.containedInRect=Y.prototype.Gh;Y.prototype.containsRect=Y.prototype.ze;Y.prototype.containsPoint=Y.prototype.aa;Y.prototype.raiseChanged=Y.prototype.g;\nY.prototype.raiseChangedEvent=Y.prototype.Ya;Y.prototype.addCopyProperty=Y.prototype.sx;var Ll=null;Y.className=\"GraphObject\";Ll=new H;\nPl(\"Button\",function(){function a(a,b){return null!==a.diagram.Ub(a.documentPoint,function(a){for(;null!==a.panel&&!a.isActionable;)a=a.panel;return a},function(a){return a===b})}var b=Kl(X,X.Auto,{isActionable:!0,enabledChanged:function(a,b){if(a instanceof X){var c=a.Xa(\"ButtonBorder\");null!==c&&(c.fill=b?a._buttonFillNormal:a._buttonFillDisabled)}},cursor:\"pointer\",_buttonFillNormal:\"#F5F5F5\",_buttonStrokeNormal:\"#BDBDBD\",_buttonFillOver:\"#E0E0E0\",_buttonStrokeOver:\"#9E9E9E\",_buttonFillPressed:\"#BDBDBD\",\n_buttonStrokePressed:\"#9E9E9E\",_buttonFillDisabled:\"#E5E5E5\"},Kl(Lf,{name:\"ButtonBorder\",figure:\"RoundedRectangle\",spot1:new P(0,0,2.76142374915397,2.761423749153969),spot2:new P(1,1,-2.76142374915397,-2.761423749153969),parameter1:2,parameter2:2,fill:\"#F5F5F5\",stroke:\"#BDBDBD\"}));b.mouseEnter=function(a,b){if(b.Eg()&&b instanceof X&&(a=b.Xa(\"ButtonBorder\"),a instanceof Lf)){var c=b._buttonFillOver;b._buttonFillNormal=a.fill;a.fill=c;c=b._buttonStrokeOver;b._buttonStrokeNormal=a.stroke;a.stroke=c}};\nb.mouseLeave=function(a,b){b.Eg()&&b instanceof X&&(a=b.Xa(\"ButtonBorder\"),a instanceof Lf&&(a.fill=b._buttonFillNormal,a.stroke=b._buttonStrokeNormal))};b.actionDown=function(a,b){if(b.Eg()&&b instanceof X&&null!==b._buttonFillPressed&&0===a.button){var c=b.Xa(\"ButtonBorder\");if(c instanceof Lf){a=a.diagram;var d=a.skipsUndoManager;a.skipsUndoManager=!0;var g=b._buttonFillPressed;b._buttonFillOver=c.fill;c.fill=g;g=b._buttonStrokePressed;b._buttonStrokeOver=c.stroke;c.stroke=g;a.skipsUndoManager=\nd}}};b.actionUp=function(b,d){if(d.Eg()&&d instanceof X&&null!==d._buttonFillPressed&&0===b.button){var c=d.Xa(\"ButtonBorder\");if(c instanceof Lf){var f=b.diagram,g=f.skipsUndoManager;f.skipsUndoManager=!0;a(b,d)?(c.fill=d._buttonFillOver,c.stroke=d._buttonStrokeOver):(c.fill=d._buttonFillNormal,c.stroke=d._buttonStrokeNormal);f.skipsUndoManager=g}}};b.actionCancel=function(b,d){if(d.Eg()&&d instanceof X&&null!==d._buttonFillPressed){var c=d.Xa(\"ButtonBorder\");if(c instanceof Lf){var f=b.diagram,\ng=f.skipsUndoManager;f.skipsUndoManager=!0;a(b,d)?(c.fill=d._buttonFillOver,c.stroke=d._buttonStrokeOver):(c.fill=d._buttonFillNormal,c.stroke=d._buttonStrokeNormal);f.skipsUndoManager=g}}};b.actionMove=function(b,d){if(d.Eg()&&d instanceof X&&null!==d._buttonFillPressed){var c=b.diagram;if(0===c.firstInput.button&&(c.currentTool.standardMouseOver(),a(b,d)&&(b=d.Xa(\"ButtonBorder\"),b instanceof Lf))){var f=c.skipsUndoManager;c.skipsUndoManager=!0;var g=d._buttonFillPressed;b.fill!==g&&(b.fill=g);g=\nd._buttonStrokePressed;b.stroke!==g&&(b.stroke=g);c.skipsUndoManager=f}}};return b});\nPl(\"TreeExpanderButton\",function(){var a=Kl(\"Button\",{_treeExpandedFigure:\"MinusLine\",_treeCollapsedFigure:\"PlusLine\"},Kl(Lf,{name:\"ButtonIcon\",figure:\"MinusLine\",stroke:\"#424242\",strokeWidth:2,desiredSize:Nb},(new Ji(\"figure\",\"isTreeExpanded\",function(a,c){c=c.panel;return a?c._treeExpandedFigure:c._treeCollapsedFigure})).Aq()),{visible:!1},(new Ji(\"visible\",\"isTreeLeaf\",function(a){return!a})).Aq());a.click=function(a,c){c=c.part;c instanceof Je&&(c=c.adornedPart);if(c instanceof W){var b=c.diagram;\nif(null!==b){b=b.commandHandler;if(c.isTreeExpanded){if(!b.canCollapseTree(c))return}else if(!b.canExpandTree(c))return;a.handled=!0;c.isTreeExpanded?b.collapseTree(c):b.expandTree(c)}}};return a});\nPl(\"SubGraphExpanderButton\",function(){var a=Kl(\"Button\",{_subGraphExpandedFigure:\"MinusLine\",_subGraphCollapsedFigure:\"PlusLine\"},Kl(Lf,{name:\"ButtonIcon\",figure:\"MinusLine\",stroke:\"#424242\",strokeWidth:2,desiredSize:Nb},(new Ji(\"figure\",\"isSubGraphExpanded\",function(a,c){c=c.panel;return a?c._subGraphExpandedFigure:c._subGraphCollapsedFigure})).Aq()));a.click=function(a,c){c=c.part;c instanceof Je&&(c=c.adornedPart);if(c instanceof T){var b=c.diagram;if(null!==b){b=b.commandHandler;if(c.isSubGraphExpanded){if(!b.canCollapseSubGraph(c))return}else if(!b.canExpandSubGraph(c))return;\na.handled=!0;c.isSubGraphExpanded?b.collapseSubGraph(c):b.expandSubGraph(c)}}};return a});Pl(\"ToolTip\",function(){return Kl(Je,X.Auto,{isShadowed:!0,shadowColor:\"rgba(0, 0, 0, .4)\",shadowOffset:new I(0,3),shadowBlur:5},Kl(Lf,{name:\"Border\",figure:\"RoundedRectangle\",parameter1:1,parameter2:1,fill:\"#F5F5F5\",stroke:\"#F0F0F0\",spot1:new P(0,0,4,6),spot2:new P(1,1,-4,-4)}))});\nPl(\"ContextMenu\",function(){return Kl(Je,X.Vertical,{background:\"#F5F5F5\",isShadowed:!0,shadowColor:\"rgba(0, 0, 0, .4)\",shadowOffset:new I(0,3),shadowBlur:5},new Ji(\"background\",\"\",function(a){return null!==a.adornedPart&&null!==a.placeholder?null:\"#F5F5F5\"}))});Pl(\"ContextMenuButton\",function(){var a=Kl(\"Button\");a.stretch=Wk;var b=a.Xa(\"ButtonBorder\");b instanceof Lf&&(b.figure=\"Rectangle\",b.strokeWidth=0,b.spot1=new P(0,0,2,3),b.spot2=new P(1,1,-2,-2));return a});\nPl(\"PanelExpanderButton\",function(a){var b=Ql(a,\"COLLAPSIBLE\"),c=Kl(\"Button\",{_buttonExpandedFigure:\"M0 0 M0 6 L4 2 8 6 M8 8\",_buttonCollapsedFigure:\"M0 0 M0 2 L4 6 8 2 M8 8\",_buttonFillNormal:\"rgba(0, 0, 0, 0)\",_buttonStrokeNormal:null,_buttonFillOver:\"rgba(0, 0, 0, .2)\",_buttonStrokeOver:null,_buttonFillPressed:\"rgba(0, 0, 0, .4)\",_buttonStrokePressed:null},Kl(Lf,{name:\"ButtonIcon\",strokeWidth:2},(new Ji(\"geometryString\",\"visible\",function(a){return a?c._buttonExpandedFigure:c._buttonCollapsedFigure})).Aq(b)));\na=c.Xa(\"ButtonBorder\");a instanceof Lf&&(a.stroke=null,a.fill=\"rgba(0, 0, 0, 0)\");c.click=function(a,c){var d=c.diagram;if(null!==d&&!d.isReadOnly){var e=c.Ui();null===e&&(e=c.part);null!==e&&(c=e.Xa(b),null!==c&&(a.handled=!0,d.ua(\"Collapse/Expand Panel\"),c.visible=!c.visible,d.Ua(\"Collapse/Expand Panel\")))}};return c});\nPl(\"CheckBoxButton\",function(a){var b=Ql(a);a=Kl(\"Button\",{desiredSize:new M(14,14)},Kl(Lf,{name:\"ButtonIcon\",geometryString:\"M0 0 M0 8.85 L4.9 13.75 16.2 2.45 M16.2 16.2\",strokeWidth:2,stretch:vd,geometryStretch:Bg,visible:!1},\"\"!==b?(new Ji(\"visible\",b)).Vx():[]));a.click=function(a,d){if(d instanceof X){var c=a.diagram;if(!(null===c||c.isReadOnly||\"\"!==b&&c.model.isReadOnly)){a.handled=!0;var f=d.Xa(\"ButtonIcon\");c.ua(\"checkbox\");f.visible=!f.visible;\"function\"===typeof d._doClick&&d._doClick(a,\nd);c.Ua(\"checkbox\")}}};return a});\nPl(\"CheckBox\",function(a){a=Ql(a);a=Kl(\"CheckBoxButton\",a,{name:\"Button\",isActionable:!1,margin:new oc(0,1,0,0)});var b=Kl(X,\"Horizontal\",a,{isActionable:!0,cursor:a.cursor,margin:1,_buttonFillNormal:a._buttonFillNormal,_buttonStrokeNormal:a._buttonStrokeNormal,_buttonFillOver:a._buttonFillOver,_buttonStrokeOver:a._buttonStrokeOver,_buttonFillPressed:a._buttonFillPressed,_buttonStrokePressed:a._buttonStrokePressed,_buttonFillDisabled:a._buttonFillDisabled,mouseEnter:a.mouseEnter,mouseLeave:a.mouseLeave,\nactionDown:a.actionDown,actionUp:a.actionUp,actionCancel:a.actionCancel,actionMove:a.actionMove,click:a.click,_buttonClick:a.click});a.mouseEnter=null;a.mouseLeave=null;a.actionDown=null;a.actionUp=null;a.actionCancel=null;a.actionMove=null;a.click=null;return b});Y.None=zg=new D(Y,\"None\",0);Y.Default=Vk=new D(Y,\"Default\",0);Y.Vertical=Xk=new D(Y,\"Vertical\",4);Y.Horizontal=Wk=new D(Y,\"Horizontal\",5);Y.Fill=vd=new D(Y,\"Fill\",3);Y.Uniform=Bg=new D(Y,\"Uniform\",1);\nY.UniformToFill=Yk=new D(Y,\"UniformToFill\",2);Y.FlipVertical=Zk=new D(Y,\"FlipVertical\",1);Y.FlipHorizontal=$k=new D(Y,\"FlipHorizontal\",2);Y.FlipBoth=al=new D(Y,\"FlipBoth\",3);Y.make=Kl;Y.getBuilders=function(){var a=new H,b;for(b in Ll)if(b!==b.toLowerCase()){var c=Ll.H(b);\"function\"===typeof c&&a.add(b,c)}a.freeze();return a};Y.defineBuilder=Pl;Y.takeBuilderArgument=Ql;\nfunction cl(){this.En=this.Pf=this.ug=this.Om=this.Rm=this.Qm=this.Pm=this.fg=this.Go=this.Fo=this.hg=this.ig=this.kg=this.jg=this.gg=this.Of=this.Sf=this.Nf=null}cl.prototype.copy=function(){var a=new cl;a.Nf=this.Nf;a.Sf=this.Sf;a.Of=this.Of;a.gg=this.gg;a.jg=this.jg;a.kg=this.kg;a.ig=this.ig;a.hg=this.hg;a.Fo=this.Fo;a.Go=this.Go;a.fg=this.fg;a.Pm=this.Pm;a.Qm=this.Qm;a.Rm=this.Rm;a.Om=this.Om;a.ug=this.ug;a.Pf=this.Pf;a.En=this.En;return a};cl.className=\"GraphObjectEventHandlers\";\nfunction Ul(){this.Ka=[1,0,0,1,0,0]}Ul.prototype.copy=function(){var a=new Ul;a.Ka[0]=this.Ka[0];a.Ka[1]=this.Ka[1];a.Ka[2]=this.Ka[2];a.Ka[3]=this.Ka[3];a.Ka[4]=this.Ka[4];a.Ka[5]=this.Ka[5];return a};Ul.prototype.translate=function(a,b){this.Ka[4]+=this.Ka[0]*a+this.Ka[2]*b;this.Ka[5]+=this.Ka[1]*a+this.Ka[3]*b};Ul.prototype.scale=function(a,b){this.Ka[0]*=a;this.Ka[1]*=a;this.Ka[2]*=b;this.Ka[3]*=b};Ul.className=\"STransform\";\nfunction Vl(a){this.type=a;this.r2=this.y2=this.x2=this.r1=this.y1=this.x1=0;this.zx=[];this.pattern=null}Vl.prototype.addColorStop=function(a,b){this.zx.push({offset:a,color:b})};Vl.className=\"SGradient\";\nfunction Aj(a,b){this.ownerDocument=a=void 0===b?x.document:b;this.hA=\"http://www.w3.org/2000/svg\";void 0!==a&&(this.Ea=this.tb(\"svg\",{width:\"1px\",height:\"1px\",viewBox:\"0 0 1 1\"}),this.Ea.setAttributeNS(\"http://www.w3.org/2000/xmlns/\",\"xmlns\",\"http://www.w3.org/2000/svg\"),this.Ea.setAttributeNS(\"http://www.w3.org/2000/xmlns/\",\"xmlns:xlink\",\"http://www.w3.org/1999/xlink\"));this.jq=null;this.context=new Wl(this)}\nAj.prototype.resize=function(a,b,c,d){return this.width!==a||this.height!==b?(this.style.width=c+\"px\",this.style.height=d+\"px\",this.Ea.setAttributeNS(null,\"width\",c+\"px\"),this.Ea.setAttributeNS(null,\"height\",d+\"px\"),this.Ea.setAttributeNS(null,\"viewBox\",\"0 0 \"+c+\" \"+d),this.context.Cu.firstElementChild.setAttributeNS(null,\"width\",c+\"px\"),this.context.Cu.firstElementChild.setAttributeNS(null,\"height\",d+\"px\"),!0):!1};\nAj.prototype.tb=function(a,b,c){a=this.ownerDocument.createElementNS(this.hA,a);if(za(b))for(var d in b)a.setAttributeNS(\"href\"===d?\"http://www.w3.org/1999/xlink\":\"\",d,b[d]);void 0!==c&&(a.textContent=c);return a};Aj.prototype.getBoundingClientRect=function(){return this.Ea.getBoundingClientRect()};Aj.prototype.focus=function(){this.Ea.focus()};Aj.prototype.Fx=function(){this.ownerDocument=null};\nma.Object.defineProperties(Aj.prototype,{width:{get:function(){return this.Ea.width.baseVal.value},set:function(a){this.Ea.width=a}},height:{get:function(){return this.Ea.height.baseVal.value},set:function(a){this.Ea.height=a}},style:{get:function(){return this.Ea.style}}});Aj.className=\"SVGSurface\";\nfunction Wl(a){this.yk=a;this.svg=a.Ea;this.stack=[];this.xc=[];this.fillStyle=\"#000000\";this.font=\"10px sans-serif\";this.globalAlpha=1;this.lineCap=\"butt\";this.lineDashOffset=0;this.lineJoin=\"miter\";this.lineWidth=1;this.miterLimit=10;this.shadowBlur=0;this.shadowColor=\"rgba(0, 0, 0, 0)\";this.shadowOffsetY=this.shadowOffsetX=0;this.strokeStyle=\"#000000\";this.textAlign=\"start\";this.clipInsteadOfFill=!1;this.df=this.Gp=this.Fp=0;this.uq=null;this.path=[];this.vu=!1;this.rh=null;this.sh=0;this.Td=new Ul;\nXl(this,1,0,0,1,0,0);var b=pb++,c=this.tb(\"clipPath\",{id:\"mainClip\"+b});c.appendChild(this.tb(\"rect\",{x:0,y:0,width:a.width,height:a.height}));this.Cu=c;this.yk.Ea.appendChild(c);this.xc[0].setAttributeNS(null,\"clip-path\",\"url(#mainClip\"+b+\")\");this.jA={}}t=Wl.prototype;\nt.reset=function(){this.stack=[];this.xc=[];this.fillStyle=\"#000000\";this.font=\"10px sans-serif\";this.globalAlpha=1;this.lineCap=\"butt\";this.lineDashOffset=0;this.lineJoin=\"miter\";this.lineWidth=1;this.miterLimit=10;this.shadowBlur=0;this.shadowColor=\"rgba(0, 0, 0, 0)\";this.shadowOffsetY=this.shadowOffsetX=0;this.strokeStyle=\"#000000\";this.textAlign=\"start\";this.clipInsteadOfFill=!1;this.df=this.Gp=this.Fp=0;this.uq=null;this.path=[];this.Td=new Ul;Xl(this,1,0,0,1,0,0);var a=pb++,b=this.tb(\"clipPath\",\n{id:\"mainClip\"+a});b.appendChild(this.tb(\"rect\",{x:0,y:0,width:this.yk.width,height:this.yk.height}));this.Cu=b;this.yk.Ea.appendChild(b);this.xc[0].setAttributeNS(null,\"clip-path\",\"url(#mainClip\"+a+\")\")};\nt.arc=function(a,b,c,d,e,f,g,h){var k=2*Math.PI,l=k-1E-6,m=c*Math.cos(d),n=c*Math.sin(d),p=a+m,r=b+n,q=f?0:1;d=f?d-e:e-d;(1E-6d&&(d=d%k+k);d>l?(this.path.push([\"A\",c,c,0,1,q,a-m,b-n]),this.path.push([\"A\",c,c,0,1,q,p,r])):1E-6=Math.PI),q,a+c*Math.cos(e),b+c*Math.sin(e)])};t.beginPath=function(){this.path=[]};t.bezierCurveTo=function(a,b,c,d,e,f){this.path.push([\"C\",a,b,c,d,e,f])};t.clearRect=function(){};\nt.clip=function(){this.addPath(\"clipPath\",this.path,this.Td);this.addPath(\"clipPath\",this.path,new Ul)};t.closePath=function(){this.path.push([\"z\"])};t.createLinearGradient=function(a,b,c,d){var e=new Vl(\"linear\");e.x1=a;e.y1=b;e.x2=c;e.y2=d;return e};\nt.createPattern=function(a){var b=\"\";a instanceof HTMLCanvasElement&&(b=a.toDataURL());a instanceof HTMLImageElement&&(b=a.getAttribute(\"src\"));var c=this.jA;if(c[b])return\"url(#\"+c[b]+\")\";var d=\"PATTERN\"+pb++,e={x:0,y:0,width:a.width,height:a.height,href:b};a=this.tb(\"pattern\",{width:a.width,height:a.height,id:d,patternUnits:\"userSpaceOnUse\"});a.appendChild(this.tb(\"image\",e));this.svg.appendChild(a);c[b]=d;return\"url(#\"+d+\")\"};\nt.createRadialGradient=function(a,b,c,d,e,f){var g=new Vl(\"radial\");g.x1=a;g.y1=b;g.r1=c;g.x2=d;g.y2=e;g.r2=f;return g};\nt.drawImage=function(a,b,c,d,e,f,g,h,k){var l=\"\";a instanceof HTMLCanvasElement&&(l=a.toDataURL());a instanceof HTMLImageElement&&(l=a.getAttribute(\"src\"));var m=a instanceof HTMLImageElement?a.naturalWidth:a.width,n=a instanceof HTMLImageElement?a.naturalHeight:a.height;void 0===d&&(f=b,g=c,h=d=m,k=e=n);d=d||0;e=e||0;f=f||0;g=g||0;h=h||0;k=k||0;l={x:0,y:0,width:m||d,height:n||e,href:l,preserveAspectRatio:\"xMidYMid slice\"};J.$(d,h)&&J.$(e,k)||(l.preserveAspectRatio=\"none\");a=\"\";h/=d;k/=e;if(0!==f||\n0!==g)a+=\" translate(\"+f+\", \"+g+\")\";if(1!==h||1!==k)a+=\" scale(\"+h+\", \"+k+\")\";if(0!==b||0!==c)a+=\" translate(\"+-b+\", \"+-c+\")\";if(0!==b||0!==c||d!==m||e!==n)f=\"CLIP\"+pb++,g=this.tb(\"clipPath\",{id:f}),g.appendChild(this.tb(\"rect\",{x:b,y:c,width:d,height:e})),this.svg.appendChild(g),l[\"clip-path\"]=\"url(#\"+f+\")\";Yl(this,\"image\",l,this.Td,a);this.addElement(\"image\",l)};t.fill=function(){this.addPath(\"fill\",this.path,this.Td)};t.Ud=function(){this.clipInsteadOfFill?this.clip():this.fill()};\nt.fillRect=function(a,b,c,d){a=[a,b,c,d];a={x:a[0],y:a[1],width:a[2],height:a[3]};Yl(this,\"fill\",a,this.Td);this.addElement(\"rect\",a)};t.fillText=function(a,b,c){a=[a,b,c];b=this.textAlign;\"left\"===b?b=\"start\":\"right\"===b?b=\"end\":\"center\"===b&&(b=\"middle\");b={x:a[1],y:a[2],style:\"font: \"+this.font,\"text-anchor\":b};Yl(this,\"fill\",b,this.Td);this.addElement(\"text\",b,a[0])};t.lineTo=function(a,b){this.path.push([\"L\",a,b])};t.moveTo=function(a,b){this.path.push([\"M\",a,b])};\nt.quadraticCurveTo=function(a,b,c,d){this.path.push([\"Q\",a,b,c,d])};t.rect=function(a,b,c,d){this.path.push([\"M\",a,b],[\"L\",a+c,b],[\"L\",a+c,b+d],[\"L\",a,b+d],[\"z\"])};\nt.restore=function(){this.Td=this.stack.pop();this.path=this.stack.pop();var a=this.stack.pop();this.fillStyle=a.fillStyle;this.font=a.font;this.globalAlpha=a.globalAlpha;this.lineCap=a.lineCap;this.lineDashOffset=a.lineDashOffset;this.lineJoin=a.lineJoin;this.lineWidth=a.lineWidth;this.miterLimit=a.miterLimit;this.shadowBlur=a.shadowBlur;this.shadowColor=a.shadowColor;this.shadowOffsetX=a.shadowOffsetX;this.shadowOffsetY=a.shadowOffsetY;this.strokeStyle=a.strokeStyle;this.textAlign=a.textAlign};\nt.save=function(){this.stack.push({fillStyle:this.fillStyle,font:this.font,globalAlpha:this.globalAlpha,lineCap:this.lineCap,lineDashOffset:this.lineDashOffset,lineJoin:this.lineJoin,lineWidth:this.lineWidth,miterLimit:this.miterLimit,shadowBlur:this.shadowBlur,shadowColor:this.shadowColor,shadowOffsetX:this.shadowOffsetX,shadowOffsetY:this.shadowOffsetY,strokeStyle:this.strokeStyle,textAlign:this.textAlign});for(var a=[],b=0;bb.offset?1:-1});for(e=0;ee.width+e.x||e.x>k.width+k.x||n>e.height+e.y||e.y>k.height+k.y)return!0;k=!0;Xl(a,1,0,0,1,0,0);a.save();a.beginPath();a.rect(m,n,p,l);a.clip()}if(this.xf()&&!this.isVisible())return!0;a.Td.Ka=[1,0,0,1,0,0];(this instanceof Wg&&1b?(this.scale(b/a,1),this.translate((a-b)/2,0)):b>a&&(this.scale(1,a/b),this.translate(0,(b-a)/2));this.fn?this.clip():this.fill();a>b?(this.translate(-(a-b)/2,0),this.scale(1/(b/a),1)):b>a&&(this.translate(0,-(b-a)/2),this.scale(1,1/(a/b)))}else this.fn?this.clip():this.fill()};t.fj=function(){this.fn||this.stroke()};t.jw=function(a,b,c){this.Fp=a;this.Gp=b;this.df=c};\nt.ht=function(a,b){var c=this.V;void 0!==c.setLineDash&&(c.setLineDash(a),c.lineDashOffset=b)};t.ft=function(){var a=this.V;void 0!==a.setLineDash&&(a.setLineDash($l),a.lineDashOffset=0)};t.sc=function(a){a&&(this.Zt=\"\");this.Yt=this.$t=\"\"};\nma.Object.defineProperties(xl.prototype,{fillStyle:{get:function(){return this.V.fillStyle},set:function(a){this.Yt!==a&&(this.Yt=this.V.fillStyle=a)}},font:{get:function(){return this.V.font},set:function(a){this.Zt!==a&&(this.Zt=this.V.font=a)}},globalAlpha:{get:function(){return this.V.globalAlpha},set:function(a){this.V.globalAlpha=a}},lineCap:{get:function(){return this.V.lineCap},\nset:function(a){this.V.lineCap=a}},lineDashOffset:{get:function(){return this.V.lineDashOffset},set:function(a){this.V.lineDashOffset=a}},lineJoin:{get:function(){return this.V.lineJoin},set:function(a){this.V.lineJoin=a}},lineWidth:{get:function(){return this.V.lineWidth},set:function(a){this.V.lineWidth=a}},miterLimit:{get:function(){return this.V.miterLimit},set:function(a){this.V.miterLimit=\na}},shadowBlur:{get:function(){return this.V.shadowBlur},set:function(a){this.V.shadowBlur=a}},shadowColor:{get:function(){return this.V.shadowColor},set:function(a){this.V.shadowColor=a}},shadowOffsetX:{get:function(){return this.V.shadowOffsetX},set:function(a){this.V.shadowOffsetX=a}},shadowOffsetY:{get:function(){return this.V.shadowOffsetY},set:function(a){this.V.shadowOffsetY=\na}},strokeStyle:{get:function(){return this.V.strokeStyle},set:function(a){this.$t!==a&&(this.$t=this.V.strokeStyle=a)}},textAlign:{get:function(){return this.V.textAlign},set:function(a){this.V.textAlign=a}},imageSmoothingEnabled:{get:function(){return this.V.imageSmoothingEnabled},set:function(a){this.V.imageSmoothingEnabled=a}},clipInsteadOfFill:{get:function(){return this.fn},\nset:function(a){this.fn=a}}});var $l=Object.freeze([]);xl.className=\"CanvasSurfaceContext\";function am(){this.Y=this.u=this.I=this.l=0}am.className=\"ColorNumbers\";function tl(a){bm||(cm(),bm=!0);Ya(this);this.s=!1;void 0===a?(this.pa=wl,this.Lk=\"black\"):\"string\"===typeof a?(this.pa=wl,this.Lk=a):(this.pa=a,this.Lk=\"black\");a=this.pa;a===zl?(this.td=xc,this.Yk=Fc):this.Yk=a===ul?this.td=Ac:this.td=uc;this.Os=0;this.Br=NaN;this.ce=this.rs=this.be=null;this.au=this.Mk=0}\ntl.prototype.copy=function(){var a=new tl;a.pa=this.pa;a.Lk=this.Lk;a.td=this.td.G();a.Yk=this.Yk.G();a.Os=this.Os;a.Br=this.Br;null!==this.be&&(a.be=this.be.copy());a.rs=this.rs;return a};t=tl.prototype;t.freeze=function(){this.s=!0;null!==this.be&&this.be.freeze();return this};t.ea=function(){Object.isFrozen(this)&&B(\"cannot thaw constant: \"+this);this.s=!1;null!==this.be&&this.be.ea();return this};t.cb=function(a){a.classType===tl&&(this.type=a)};\nt.toString=function(){var a=\"Brush(\";if(this.type===wl)a+=this.color;else if(a=this.type===zl?a+\"Linear \":this.type===ul?a+\"Radial \":this.type===yl?a+\"Pattern \":a+\"(unknown) \",a+=this.start+\" \"+this.end,null!==this.colorStops)for(var b=this.colorStops.iterator;b.next();)a+=\" \"+b.key+\":\"+b.value;return a+\")\"};\nt.addColorStop=function(a,b){this.s&&ua(this);(\"number\"!==typeof a||!isFinite(a)||1a)&&va(a,\"0 <= loc <= 1\",tl,\"addColorStop:loc\");null===this.be&&(this.be=new H);this.be.add(a,b);this.pa===wl&&(this.type=zl);this.ce=null;return this};\nt.bA=function(a,b){this.s&&ua(this);a=void 0===a||\"number\"!==typeof a?.2:a;b=void 0===b?dm:b;if(this.type===wl)Qh(this.color),this.color=em(a,b);else if((this.type===zl||this.type===ul)&&null!==this.colorStops)for(var c=this.colorStops.iterator;c.next();)Qh(c.value),this.addColorStop(c.key,em(a,b));return this};function fm(a,b,c){b=void 0===b||\"number\"!==typeof b?.2:b;c=void 0===c?dm:c;Qh(a);return em(b,c)}\nt.Yy=function(a,b){this.s&&ua(this);a=void 0===a||\"number\"!==typeof a?.2:a;b=void 0===b?dm:b;if(this.type===wl)Qh(this.color),this.color=em(-a,b);else if((this.type===zl||this.type===ul)&&null!==this.colorStops)for(var c=this.colorStops.iterator;c.next();)Qh(c.value),this.addColorStop(c.key,em(-a,b));return this};function gm(a,b,c){b=void 0===b||\"number\"!==typeof b?.2:b;c=void 0===c?dm:c;Qh(a);return em(-b,c)}\nfunction hm(a,b,c){Qh(a);a=im.l;var d=im.I,e=im.u,f=im.Y;Qh(b);void 0===c&&(c=.5);return\"rgba(\"+Math.round((im.l-a)*c+a)+\", \"+Math.round((im.I-d)*c+d)+\", \"+Math.round((im.u-e)*c+e)+\", \"+Math.round((im.Y-f)*c+f)+\")\"}\nt.Tx=function(){if(this.type===wl)return jm(this.color);if((this.type===zl||this.type===ul)&&null!==this.colorStops){var a=this.colorStops;if(this.type===ul)return jm(a.first().value);if(null!==a.get(.5))return jm(a.get(.5));if(2===a.count)return a=a.na(),jm(hm(a[0].value,a[1].value));for(var b=a.iterator,c=-1,d=-1,e=1,f=1;b.next();){var g=b.key,h=Math.abs(.5-b.key);e>f&&h=e&&hd&&(f=c,c=d,d=f,f=e);e=d-c;return jm(hm(a.get(c),a.get(d),1-f/e))}return!1};\nfunction jm(a){if(null===a)return null;if(a instanceof tl)return a.Tx();Qh(a);return 128>(299*im.l+587*im.I+114*im.u)/1E3}\nfunction em(a,b){switch(b){case dm:b=100*km(im.l);var c=100*km(im.I),d=100*km(im.u);lm.l=.4124564*b+.3575761*c+.1804375*d;lm.I=.2126729*b+.7151522*c+.072175*d;lm.u=.0193339*b+.119192*c+.9503041*d;lm.Y=im.Y;b=mm(lm.l/nm[0]);c=mm(lm.I/nm[1]);d=mm(lm.u/nm[2]);om.l=116*c-16;om.I=500*(b-c);om.u=200*(c-d);om.Y=lm.Y;om.l=Math.min(100,Math.max(0,om.l+100*a));a=(om.l+16)/116;b=a-om.u/200;lm.l=nm[0]*pm(om.I/500+a);lm.I=nm[1]*(om.l>qm*rm?Math.pow(a,3):om.l/qm);lm.u=nm[2]*pm(b);lm.Y=om.Y;a=-.969266*lm.l+1.8760108*\nlm.I+.041556*lm.u;b=.0556434*lm.l+-.2040259*lm.I+1.0572252*lm.u;im.l=255*sm((3.2404542*lm.l+-1.5371385*lm.I+-.4985314*lm.u)/100);im.I=255*sm(a/100);im.u=255*sm(b/100);im.Y=lm.Y;im.l=Math.round(im.l);255im.l&&(im.l=0);im.I=Math.round(im.I);255im.I&&(im.I=0);im.u=Math.round(im.u);255im.u&&(im.u=0);return\"rgba(\"+im.l+\", \"+im.I+\", \"+im.u+\", \"+im.Y+\")\";case tm:return Rh(),Sh.u=Math.min(100,Math.max(0,Sh.u+100*a)),\"hsla(\"+Sh.l+\", \"+Sh.I+\"%, \"+Sh.u+\"%, \"+\nSh.Y+\")\";default:return B(\"Unknown color space: \"+b),\"rgba(0, 0, 0, 1)\"}}function Qh(a){bm||(cm(),bm=!0);var b=um;if(null!==b){b.clearRect(0,0,1,1);b.fillStyle=\"#000000\";var c=b.fillStyle;b.fillStyle=a;b.fillStyle!==c?(b.fillRect(0,0,1,1),a=b.getImageData(0,0,1,1).data,im.l=a[0],im.I=a[1],im.u=a[2],im.Y=a[3]/255):(b.fillStyle=\"#FFFFFF\",b.fillStyle=a,im.l=0,im.I=0,im.u=0,im.Y=1)}}\nfunction Rh(){var a=im.l/255,b=im.I/255,c=im.u/255,d=Math.max(a,b,c),e=Math.min(a,b,c),f=d-e;e=(d+e)/2;if(0===f)var g=a=0;else{switch(d){case a:g=(b-c)/f%6;break;case b:g=(c-a)/f+2;break;case c:g=(a-b)/f+4}g*=60;0>g&&(g+=360);a=f/(1-Math.abs(2*e-1))}Sh.l=Math.round(g);Sh.I=Math.round(100*a);Sh.u=Math.round(100*e);Sh.Y=im.Y}function km(a){a/=255;return.04045>=a?a/12.92:Math.pow((a+.055)/1.055,2.4)}function sm(a){return.0031308>=a?12.92*a:1.055*Math.pow(a,1/2.4)-.055}\nfunction mm(a){return a>rm?Math.pow(a,1/3):(qm*a+16)/116}function pm(a){var b=a*a*a;return b>rm?b:(116*a-16)/qm}function Rl(a,b){\"string\"!==typeof a&&(a instanceof tl||B(\"Value for \"+b+\" must be a color string or a Brush, not \"+a))}function cm(){um=Ug?(new Ck(null)).context:null}\nma.Object.defineProperties(tl.prototype,{type:{get:function(){return this.pa},set:function(a){this.s&&ua(this,a);this.pa=a;this.start.jc()&&(a===zl?this.start=xc:a===ul&&(this.start=Ac));this.end.jc()&&(a===zl?this.end=Fc:a===ul&&(this.end=Ac));this.ce=null}},color:{get:function(){return this.Lk},set:function(a){this.s&&ua(this,a);this.Lk=a;this.ce=null}},start:{get:function(){return this.td},set:function(a){this.s&&\nua(this,a);this.td=a.G();this.ce=null}},end:{get:function(){return this.Yk},set:function(a){this.s&&ua(this,a);this.Yk=a.G();this.ce=null}},startRadius:{get:function(){return this.Os},set:function(a){this.s&&ua(this,a);0>a&&va(a,\">= zero\",tl,\"startRadius\");this.Os=a;this.ce=null}},endRadius:{get:function(){return this.Br},set:function(a){this.s&&ua(this,a);0>a&&va(a,\">= zero\",tl,\"endRadius\");this.Br=a;this.ce=\nnull}},colorStops:{get:function(){return this.be},set:function(a){this.s&&ua(this,a);this.be=a;this.ce=null}},pattern:{get:function(){return this.rs},set:function(a){this.s&&ua(this,a);this.rs=a;this.ce=null}}});tl.prototype.isDark=tl.prototype.Tx;tl.prototype.darkenBy=tl.prototype.Yy;tl.prototype.lightenBy=tl.prototype.bA;tl.prototype.addColorStop=tl.prototype.addColorStop;\nvar rm=216/24389,qm=24389/27,nm=[95.047,100,108.883],um=null,im=new am,Sh=new am,lm=new am,om=new am,bm=!1;tl.className=\"Brush\";var wl;tl.Solid=wl=new D(tl,\"Solid\",0);var zl;tl.Linear=zl=new D(tl,\"Linear\",1);var ul;tl.Radial=ul=new D(tl,\"Radial\",2);var yl;tl.Pattern=yl=new D(tl,\"Pattern\",4);var dm;tl.Lab=dm=new D(tl,\"Lab\",5);var tm;tl.HSL=tm=new D(tl,\"HSL\",6);\ntl.randomColor=function(a,b){void 0===a&&(a=128);void 0===b&&(b=Math.max(a,255));var c=Math.abs(b-a);b=Math.floor(a+Math.random()*c).toString(16);var d=Math.floor(a+Math.random()*c).toString(16);a=Math.floor(a+Math.random()*c).toString(16);2>b.length&&(b=\"0\"+b);2>d.length&&(d=\"0\"+d);2>a.length&&(a=\"0\"+a);return\"#\"+b+d+a};\ntl.isValidColor=function(a){if(\"black\"===a)return!0;if(\"\"===a)return!1;bm||(cm(),bm=!0);var b=um;if(null===b)return!0;b.fillStyle=\"#000000\";var c=b.fillStyle;b.fillStyle=a;if(b.fillStyle!==c)return!0;b.fillStyle=\"#FFFFFF\";c=b.fillStyle;b.fillStyle=a;return b.fillStyle!==c};tl.lighten=function(a){return fm(a)};tl.lightenBy=fm;tl.darken=function(a){return gm(a)};tl.darkenBy=gm;tl.mix=hm;tl.isDark=jm;function Ol(){this.name=\"Base\"}Ol.prototype.measure=function(){};\nOl.prototype.eA=function(a,b,c,d,e){a.measure(b,c,d,e)};Ol.prototype.arrange=function(){};Ol.prototype.Oy=function(a,b,c,d,e,f){a.arrange(b,c,d,e,f)};Ol.prototype.bc=function(){};ma.Object.defineProperties(Ol.prototype,{classType:{get:function(){return X}}});Ol.prototype.arrangeElement=Ol.prototype.Oy;Ol.prototype.measureElement=Ol.prototype.eA;Ol.className=\"PanelLayout\";function vm(){this.name=\"Base\";this.name=\"Position\"}la(vm,Ol);\nvm.prototype.measure=function(a,b,c,d,e,f,g){var h=d.length;a=wm(a);for(var k=0;kQ&&(ib=Math.max(Q-mh,0));var nn=0===O.actual;O.actual=O.actual+ib;Q=Math.max(Q-(ib+(nn?mh:0)),0)}if(1===Dc.columnSpan&&(Eb===zg||Eb===Xk)){O=a.getColumnDefinition(wc);\nvar fg=O.uc();ib=Math.max(Wc-O.actual,0);ib+fg>V&&(ib=Math.max(V-fg,0));var Uj=0===O.actual;O.actual=O.actual+ib;V=Math.max(V-(ib+(Uj?fg:0)),0)}Af&&Dc.om()}}}}}Ha(A);var Yb=0,Oc=0;h=a.columnCount;for(var cc=0;cc=a.rowCount);Fe++)O=a.getRowDefinition(Na.row+Fe),ib=0,\nib=Eb===vd||Eb===Xk?Math.max(O.minimum,0===Xc[Na.row+Fe]?O.maximum:Math.min(Xc[Na.row+Fe],O.maximum)):Math.max(O.minimum,isNaN(O.Pc)?O.maximum:Math.min(O.Pc,O.maximum)),Ed.height+=ib;for(var Df=1;Df=a.columnCount);Df++)O=a.getColumnDefinition(Na.column+Df),ib=0,ib=Eb===vd||Eb===Wk?Math.max(O.minimum,0===he[Na.column+Df]?O.maximum:Math.min(he[Na.column+Df],O.maximum)):Math.max(O.minimum,isNaN(O.Pc)?O.maximum:Math.min(O.Pc,O.maximum)),Ed.width+=ib;ab.width+=Ed.width;ab.height+=\nEd.height;var bf=Na.margin,Pd=bf.right+bf.left,Ge=bf.top+bf.bottom;Na.measure(ab.width,ab.height,f,g);for(var cf=Na.measuredBounds,He=Math.max(cf.width+Pd,0),Ie=Math.max(cf.height+Ge,0),nd=0,mg=0;mg=a.rowCount);mg++)O=a.getRowDefinition(Na.row+mg),nd+=O.total||0;if(nd=je)&&!(Na.row+od>=a.rowCount);od++){O=a.getRowDefinition(Na.row+od);var ng=O.ha||0,tn=sn(Na,O,rn);O.actual=\nMath.min(O.maximum,ng+tn);O.ha!==ng&&(je-=O.ha-ng)}for(;0sh&&(O.actual=Math.min(O.maximum,sh+je),O.ha!==sh&&(je-=O.ha-sh));if(0===O.index)break;O=a.getRowDefinition(O.index-1)}}for(var Xj=0,Yj=0;Yj=a.columnCount);Yj++)O=a.getColumnDefinition(Na.column+Yj),Xj+=O.total||0;if(Xj=vi)&&!(Na.column+Zj>=a.columnCount);Zj++){O=\na.getColumnDefinition(Na.column+Zj);var un=O.ha||0,Nt=Mt(Na,O,Lt);O.actual=Math.min(O.maximum,un+Nt);O.ha!==un&&(vi-=O.ha-un)}for(;0ak&&(O.actual=Math.min(O.maximum,ak+vi),O.ha!==ak&&(vi-=O.ha-ak));if(0===O.index)break;O=a.getColumnDefinition(O.index-1)}}}}Ha(C);M.free(Ed);M.free(ab);void 0!==Xc&&Ha(Xc);void 0!==he&&Ha(he);var og=0,pg=0,bk=a.desiredSize,jr=a.maxSize;Eb=kl(a,!0);var wi=Oc=Yb=0,xi=0;h=a.columnCount;for(var ck=0;ck=a.rowCount);K++)L=a.getRowDefinition(q+K),r.height+=L.total;for(K=1;K=a.columnCount);K++)L=a.getColumnDefinition(v+K),r.width+=L.total;var V=w.ha+r.width,Q=u.ha+r.height;K=\nh;L=k;var ca=V,pa=Q,O=h,xa=k,Ma=V,hb=Q;h+V>c.width&&(Ma=Math.max(c.width-h,0));k+Q>c.height&&(hb=Math.max(c.height-k,0));var Ea=C.alignment;if(Ea.Mb()){Ea=a.defaultAlignment;Ea.eb()||(Ea=Ac);var xb=Ea.x;var Ad=Ea.y;var ib=Ea.offsetX;Ea=Ea.offsetY;var Xb=w.alignment,$a=u.alignment;Xb.eb()&&(xb=Xb.x,ib=Xb.offsetX);$a.eb()&&(Ad=$a.y,Ea=$a.offsetY)}else xb=Ea.x,Ad=Ea.y,ib=Ea.offsetX,Ea=Ea.offsetY;if(isNaN(xb)||isNaN(Ad))Ad=xb=.5,Ea=ib=0;Xb=G.width;$a=G.height;var Md=C.margin,wc=Md.left+Md.right,zf=Md.top+\nMd.bottom,Ye=Dl(C,u,w,!1);!isNaN(C.desiredSize.width)||Ye!==vd&&Ye!==Wk||(Xb=Math.max(V-wc,0));!isNaN(C.desiredSize.height)||Ye!==vd&&Ye!==Xk||($a=Math.max(Q-zf,0));V=C.maxSize;Q=C.minSize;Xb=Math.min(V.width,Xb);$a=Math.min(V.height,$a);Xb=Math.max(Q.width,Xb);$a=Math.max(Q.height,$a);V=$a+zf;K+=ca*xb-(Xb+wc)*xb+ib+Md.left;L+=pa*Ad-V*Ad+Ea+Md.top;C.visible&&(fc(O,xa,Ma,hb,K,L,G.width,G.height)?C.arrange(K,L,Xb,$a):C.arrange(K,L,Xb,$a,new N(O,xa,Ma,hb)))}else C.ml(),C.actualBounds.ea(),ca=C.actualBounds,\nK=N.allocAt(ca.x,ca.y,ca.width,ca.height),ca.x=L.type===X.TableRow?f:h,ca.y=L.type===X.TableColumn?e:k,ca.width=G.width,ca.height=G.height,C.actualBounds.freeze(),ll(C,!1),$b(K,ca)||(G=C.part,null!==G&&(G.Jh(),C.To(G))),N.free(K)}}}M.free(r);for(a=0;a=c&&(c=1);var d=a.gridCellSize,e=d.width;d=d.height;var f=a.naturalBounds,g=a.actualBounds,h=f.width,k=f.height,l=Math.ceil(h/e),m=Math.ceil(k/d),n=a.gridOrigin;b.save();b.beginPath();b.rect(0,0,h,k);b.clip();for(var p=[],r=a.W.j,q=r.length,u=0;uy)){v=dk(v.figure);for(var z=0;zy&&w.push(A))}}}}r=a.W.j;q=\nr.length;for(u=0;ue*Math.abs(w)*c))){y=C.opacity;v=1;if(1!==y){if(0===y)continue;v=b.globalAlpha;b.globalAlpha=v*y}z=p[u];A=!1;var G=C.strokeDashArray;null!==G&&(A=!0,b.ht(G,C.strokeDashOffset));if(\"LineV\"===C.figure&&null!==C.stroke&&0b)return 0===a%b;if(0!==a%b)return!1;b=c.length;for(var d=0;df)w.measure(Infinity,Infinity,0,0),y=w.measuredBounds,b.Hc(y),a.l.push(y);else{var z=w.segmentIndex,A=w.segmentFraction,C=w.alignmentFocus;C.jc()&&(C=Ac);var G=w.segmentOrientation,L=w.segmentOffset;if(isNaN(z)){var K=k.ka;y=Fa();K.zv(A,y);var V=I.allocAt(y[0],y[1]);V.add(k.i(0));K.type===\nwd?V.offset(-K.startX,-K.startY):(K=K.figures.first(),V.offset(-K.startX,-K.startY));K=y[2];if(G!==bg){var Q=k.computeAngle(w,G,K);w.Yb=Q}Q=V.x-m.x;var ca=V.y-m.y;I.free(V);Ha(y)}else if(z<-f||z>=f)ca=k.midPoint,K=k.midAngle,G!==bg&&(Q=k.computeAngle(w,G,K),w.Yb=Q),Q=ca.x-m.x,ca=ca.y-m.y;else{Q=0;0<=z?(ca=n.L(z),y=zpa+10?\n0<=z?K.Ta(ca):ca.Ta(K):pa>V+10?0<=z?y.Ta(Q):Q.Ta(y):0<=z?K.Ta(Q):Q.Ta(K)}else K=0<=z?ca.Ta(y):y.Ta(ca);G!==bg&&(Q=k.computeAngle(w,G,K),w.Yb=Q);Q=ca.x+(y.x-ca.x)*A-m.x;ca=ca.y+(y.y-ca.y)*A-m.y}w.measure(Infinity,Infinity,0,0);y=w.measuredBounds;V=w.naturalBounds;var O=0;w instanceof Lf&&(O=w.strokeWidth);pa=V.width+O;var xa=V.height+O;h.reset();h.translate(-y.x,-y.y);h.scale(w.scale,w.scale);h.rotate(G===bg?w.angle:K,pa/2,xa/2);G!==Nm&&G!==Om||h.rotate(90,pa/2,xa/2);G!==Pm&&G!==Qm||h.rotate(-90,pa/\n2,xa/2);G===Rm&&(45K||225K)&&h.rotate(-K,pa/2,xa/2);V=new N(0,0,pa,xa);q.dj(V,C);h.ra(q);C=-q.x+O/2*w.scale;w=-q.y+O/2*w.scale;u.assign(L);O=isNaN(L.x);var Ma=isNaN(L.y);if(O||Ma){pa=pa/2+3;xa=xa/2+3;var hb=45<=K&&135>=K,Ea=225<=K&&315>=K;G===bg&&(hb||Ea)?(u.x=Ma?pa:L.y,u.y=O?xa:L.x,hb?0<=z||isNaN(z)&&.5>A||!O||(u.y=-xa):Ea&&((0<=z||isNaN(z)&&.5>A)&&O&&(u.y=-xa),Ma&&(u.x=-pa))):(O&&(u.x=0<=z||isNaN(z)&&.5>A?pa:-pa),Ma&&(u.y=-xa),u.rotate(K))}else u.rotate(K);Q+=u.x;ca+=u.y;V.set(y);\nV.h(Q+C,ca+w,y.width,y.height);a.l.push(V);b.Hc(V)}}if(null!==g)for(d=g.labelNodes;d.next();)d.value.measure(Infinity,Infinity);a.vg=b;a=a.location;a.h(a.x+b.x,a.y+b.y);Vb(e,b.width||0,b.height||0);rd.free(h);I.free(q);I.free(u)}}}};\nLm.prototype.arrange=function(a,b){var c=b.length;if(a instanceof Je||a instanceof S){var d=null,e=null,f=null;a instanceof S&&(e=d=a);a instanceof Je&&(f=a,d=f.adornedPart);var g=a instanceof Je?null:d.path;if(0!==a.l.length){var h=a.l,k=0;if(null!==g&&k=c)v=p.midPoint,n=p.midAngle,l!==bg&&(p=p.computeAngle(g,l,n),g.angle=p),p=v.x,v=v.y;\nelse{u=0;0<=h?(q=b.j[h],v=hy+10?0<=h?n.Ta(q):q.Ta(n):y>w+10?0<=h?v.Ta(u):u.Ta(v):0<=h?n.Ta(u):u.Ta(n)}else n=0<=h?q.Ta(v):v.Ta(q);l!==bg&&(p=p.computeAngle(g,l,n),g.angle=p);p=q.x+(v.x-q.x)*k;v=q.y+(v.y-q.y)*k}if(r.wt())g.location=new I(p,v);else{r.jc()&&(r=Ac);q=rd.alloc();q.reset();q.scale(g.scale,g.scale);q.rotate(g.angle,0,\n0);var z=g.naturalBounds;u=N.allocAt(0,0,z.width,z.height);w=I.alloc();w.dj(u,r);q.ra(w);r=-w.x;y=-w.y;var A=z.width,C=z.height;z=I.alloc();z.assign(m);var G=isNaN(m.x),L=isNaN(m.y);if(G||L){A=A/2+3;C=C/2+3;var K=45<=n&&135>=n,V=225<=n&&315>=n;l===bg&&(K||V)?(z.x=L?A:m.y,z.y=G?C:m.x,K?0<=h||isNaN(h)&&.5>k||!G||(z.y=-C):V&&((0<=h||isNaN(h)&&.5>k)&&G&&(z.y=-C),L&&(z.x=-A))):(G&&(z.x=0<=h||isNaN(h)&&.5>k?A:-A),L&&(z.y=-C),z.rotate(n))}else z.rotate(n);p+=z.x;v+=z.y;q.qw(u);r+=u.x;y+=u.y;h=I.allocAt(p+\nr,v+y);g.move(h);I.free(h);I.free(z);I.free(w);N.free(u);rd.free(q)}}null!==f?f.nk(!1):null!==e&&e.nk(!1)}};\nfunction Mm(a,b,c,d){if(!1!==qj(d)){var e=d.strokeWidth;0===e&&a instanceof Je&&a.type===X.Link&&a.adornedObject instanceof Lf&&(e=a.adornedObject.strokeWidth);e*=d.ya;a instanceof S&&null!==a.ka?(a=a.ka.bounds,hl(d,a.x-e/2,a.y-e/2,a.width+e,a.height+e)):a instanceof Je&&null!==a.adornedPart.ka?(a=a.adornedPart.ka.bounds,hl(d,a.x-e/2,a.y-e/2,a.width+e,a.height+e)):hl(d,-(e/2),-(e/2),b+e,c+e);lj(d,!1)}}function Sm(){this.name=\"Base\";this.name=\"Graduated\"}la(Sm,Ol);\nSm.prototype.measure=function(a,b,c,d,e,f,g){var h=a.zb();a.Zg=[];var k=h.margin,l=k.right+k.left,m=k.top+k.bottom;h.measure(b,c,f,g);var n=h.measuredBounds,p=new N(-k.left,-k.top,Math.max(n.width+l,0),Math.max(n.height+m,0));a.Zg.push(p);e.assign(p);for(var r=h.geometry,q=h.strokeWidth,u=r.flattenedSegments,v=r.flattenedLengths,w=r.flattenedTotalLength,y=u.length,z=0,A=0,C=Fa(),G=0;GO&&(O+=360);K.push(O)}z=ca;A=pa}C.push(K)}if(null===a.$g){for(var xa=[],Ma=a.W.j,hb=Ma.length,Ea=0;Eaib))for(var Xb=0;Xbib&&Ad.push(Md)}}}}a.$g=xa}var wc=a.$g;var zf=a.W.j,Ye=zf.length,De=0,lh=0,Dc=w;a.uj=[];for(var Af,Ze=0;ZeEb*Tj*w/a.graduatedRange)){var Bf=v[0][0],Bd=0,jc=0;lh=w*Nd.graduatedStart-1E-4;Dc=w*Nd.graduatedEnd+1E-4;var $e=Eb*Tj,Wc=a.graduatedTickBase;if(Wca.graduatedMin+$e&&(Wc-=Math.floor((Wc-a.graduatedMin)/$e)*$e);for(var mh=wc[Ze];Wc<=a.graduatedMax;){a:{for(var nn=mh.length,fg=0;fgw&&(De=w),lh<=De&&De<=Dc)){for(var Yb=C[Bd][jc],Oc=v[Bd][jc];BdBf&&jc\naf?0Ed;Ed++){switch(Ed){case 0:bb.h(Cd,Dd);break;case 1:bb.h(Cd+kg,Dd);break;case 2:bb.h(Cd,Dd+lc);break;case 3:bb.h(Cd+kg,Dd+lc)}bb.rotate(lg+Qb.angle);bb.offset(qh,rh);0===oh&&0===Ed?Od.h(bb.x,bb.y,0,0):Od.He(bb);bb.offset(-qh,-rh);bb.rotate(-lg-Qb.angle)}I.free(bb);null!==Wj.Zg&&Wj.Zg.push(Od);ec(ti,Od.x,Od.y,Od.width,Od.height)}else if(Qb instanceof Wg){var Xc=a,he=e;null===Xc.vh&&(Xc.vh=new Wg);var qb=Xc.vh;Tm(qb,Qb);var ui=Qb.alignmentFocus;ui.jc()&&(ui=xc);for(var md=\nQb.segmentOrientation,qn=Qb.segmentOffset,ie=new N,Na=0,Fd=0,mc=0,Fe=0,Df=ig.length,bf=0;bfmc||225mc)&&nd.rotate(-mc,He/2,Ie/2);var mg=N.allocAt(0,0,He,Ie),je=I.alloc();je.dj(mg,ui);nd.ra(je);var rn=-je.x,sn=-je.y,od=I.alloc();od.assign(qn);isNaN(od.x)&&(od.x=He/2+3);isNaN(od.y)&&(od.y=-(Ie/2+3));od.rotate(mc);Na+=od.x+rn;Fd+=od.y+sn;var ng=new N(Na,Fd,Ge.width,Ge.height),tn=new N(Ge.x,Ge.y,Ge.width,Ge.height),sh=new N(cf.x,cf.y,cf.width,cf.height);Pd.Zz=Fe;Pd.lineCount=qb.lineCount;Pd.lines=[qb.pb,qb.ti,qb.ge,qb.te,qb.Qb,qb.fb,qb.ee];Pd.actualBounds=\nng;Pd.measuredBounds=tn;Pd.naturalBounds=sh;0===bf?ie.assign(ng):ie.Hc(ng);I.free(od);I.free(je);N.free(mg);rd.free(nd)}null!==Xc.Zg&&Xc.Zg.push(ie);ec(he,ie.x,ie.y,ie.width,ie.height)}lj(Qb,!1)}}};\nSm.prototype.arrange=function(a,b,c){if(null!==a.Zg){var d=a.zb(),e=a.uj;if(null!==e){var f=a.Zg,g=0,h=f[g];g++;null!==d&&d.arrange(h.x-c.x,h.y-c.y,h.width,h.height);for(var k=b.length,l=0;l=e&&(e=1);for(var g=f.actualBounds,h=a.W.j,k=a.uj,l=h.length,m=0;ma.graduatedTickUnit*n.interval*f.geometry.flattenedTotalLength/a.graduatedRange*e)){var q=n.measuredBounds,u=n.strokeWidth*n.scale,v=n.alignmentFocus;v.jc()&&\n(v=xc);for(var w=0;wf.height)continue}else if(l.position>f.width)continue;var m=l.separatorStrokeWidth;isNaN(m)&&(m=c?a.Rg:a.Qg);var n=l.separatorStroke;null===n&&(n=c?a.ii:a.Pg);if(0!==m&&null!==n){ii(a,b,n,!1,!1,g,f);n=!1;var p=l.separatorDashArray;null===p&&(p=c?a.hi:a.gi);null!==p&&(n=!0,b.ht(p,0));b.beginPath();p=l.position+m;c?p>f.height&&(m-=\np-f.height):p>f.width&&(m-=p-f.width);l=l.position+m/2;b.lineWidth=m;m=a.bb;c?(l+=m.top,p=f.width-m.right,b.moveTo(m.left,l),b.lineTo(p,l)):(l+=m.left,p=f.height-m.bottom,b.moveTo(l,m.top),b.lineTo(l,p));b.stroke();n&&b.ft()}}}}\nfunction Wm(a,b,c,d,e){for(var f=d.length,g=a.actualBounds,h=a.naturalBounds,k=0;km)){var n=l.uc(),p=l.separatorStrokeWidth;isNaN(p)&&(p=c?a.Rg:a.Qg);var r=l.separatorStroke;null===r&&(r=c?a.ii:a.Pg);null===r&&(p=0);n-=p;p=l.position+p;n+=l.actual;p+n>m&&(n=m-p);0>=n||(m=a.bb,ii(a,b,l.background,!0,!1,h,g),c?b.fillRect(m.left,p+m.top,g.width-(m.left+m.right),n):b.fillRect(p+\nm.left,m.top,n,g.height-(m.top+m.bottom)))}}}}function dk(a){return\"LineV\"===a||\"BarV\"===a}\nt.hk=function(a,b,c,d,e){var f=this.$d(),g=this.transform,h=1/(g.m11*g.m22-g.m12*g.m21),k=g.m22*h,l=-g.m12*h,m=-g.m21*h,n=g.m11*h,p=h*(g.m21*g.dy-g.m22*g.dx),r=h*(g.m12*g.dx-g.m11*g.dy);if(null!==this.areaBackground)return g=this.actualBounds,J.Uc(g.left,g.top,g.right,g.bottom,a,b,c,d,e);if(null!==this.background)return f=a*k+b*m+p,h=a*l+b*n+r,a=c*k+d*m+p,k=c*l+d*n+r,e.h(0,0),c=this.naturalBounds,f=J.Uc(0,0,c.width,c.height,f,h,a,k,e),e.transform(g),f;f||(k=1,m=l=0,n=1,r=p=0);h=a*k+b*m+p;a=a*l+b*\nn+r;k=c*k+d*m+p;c=c*l+d*n+r;e.h(k,c);d=(k-h)*(k-h)+(c-a)*(c-a);l=!1;n=this.W.j;r=n.length;m=I.alloc();p=null;b=Infinity;var q=null,u=this.isClipping&&this.pa===X.Spot;u&&(q=I.alloc(),p=this.zb(),(l=p.hk(h,a,k,c,q))&&(b=(h-q.x)*(h-q.x)+(a-q.y)*(a-q.y)));for(var v=0;vd&&e.set(q),I.free(q));I.free(m);f&&e.transform(g);return l};\nt.o=function(a){if(!0!==qj(this)){Y.prototype.o.call(this,a);a=null;if(this.pa===X.Auto||this.pa===X.Link)a=this.zb();for(var b=this.W.j,c=b.length,d=0;dc||f>d)this.o(),this.measure(b>c?c:b,f>d?d:f,0,0);break;case vd:this.o(!0);this.measure(c+h,d+g,0,0);break;case Wk:this.o(!0);this.measure(c+h,f+g,0,0);break;case Xk:this.o(!0),this.measure(b+h,d+g,0,0)}}this.pa.arrange(this,e,this.vg)}};\nt.Hh=function(a){var b=this.naturalBounds,c=wm(this);if(fc(0,0,b.width,b.height,a.x,a.y)){b=this.W.j;for(var d=b.length,e=I.allocAt(0,0);d--;){var f=b[d];if(f.visible||f===c)if(zb(e.set(a),f.transform),f.aa(e))return I.free(e),!0}I.free(e);return null===this.gb&&null===this.dc?!1:!0}return!1};t.it=function(a){if(this.Jk===a)return this;for(var b=this.W.j,c=b.length,d=0;dp.width||n.y>p.height||0>n.x+n.width||0>n.y+n.height)){n=m;m=m instanceof X?m:null;p=rd.alloc();p.set(g);\nif(null!==m?m.tf(a,b,c,d,e,p):jl(n,a,d,p))null!==b&&(n=b(n)),null===n||null!==c&&!c(n)||e.add(n);rd.free(p)}}}void 0===f&&rd.free(g);return d}void 0===f&&rd.free(g);return!1};function dn(a,b,c,d){for(var e=a.W.j,f=e.length;f--;){var g=e[f];if(g.visible){var h=g.actualBounds,k=a.naturalBounds;h.x>k.width||h.y>k.height||0>h.x+h.width||0>h.y+h.height||(g instanceof X&&dn(g,b,c,d),null!==b&&(g=b(g)),null===g||null!==c&&!c(g)||d.add(g))}}}\nt.Ag=function(a,b,c,d,e,f){if(!1===this.pickable)return!1;void 0===c&&(c=null);void 0===d&&(d=null);var g=this.naturalBounds,h=this.$d(),k=h?a:zb(I.allocAt(a.x,a.y),this.transform),l=h?b:zb(I.allocAt(b.x,b.y),this.transform),m=k.Ae(l),n=0v.width||u.y>v.height||0>u.x+u.width||0>u.y+u.height))if(q.$d()?(u=q.transform,zb(k.set(a),u),zb(l.set(b),u)):(k.set(a),l.set(b)),u=q,q=q instanceof X?q:null,null!==q?q.Ag(k,l,c,d,e,f):u.Lx(k,l,e))null!==c&&(u=c(u)),null===u||null!==d&&!d(u)||f.add(u)}}I.free(k);I.free(l)}return e?n:g}return!1};\nfunction Bm(a){var b=null;a instanceof Lf&&(b=a.spot1,b===Zc&&(b=null),a=a.geometry,null!==a&&null===b&&(b=a.spot1));null===b&&(b=vc);return b}function Cm(a){var b=null;a instanceof Lf&&(b=a.spot2,b===Zc&&(b=null),a=a.geometry,null!==a&&null===b&&(b=a.spot2));null===b&&(b=Gc);return b}t.add=function(a){this.Kb(this.W.count,a)};t.L=function(a){return this.W.L(a)};\nt.Kb=function(a,b){b instanceof U&&B(\"Cannot add a Part to a Panel: \"+b+\"; use a Panel instead\");if(this===b||this.Dg(b))this===b&&B(\"Cannot make a Panel contain itself: \"+this.toString()),B(\"Cannot make a Panel indirectly contain itself: \"+this.toString()+\" already contains \"+b.toString());var c=b.panel;null!==c&&c!==this&&B(\"Cannot add a GraphObject that already belongs to another Panel to this Panel: \"+b.toString()+\", already contained by \"+c.toString()+\", cannot be shared by this Panel: \"+this.toString());\nthis.pa!==X.Grid||b instanceof Lf||B(\"Can only add Shapes to a Grid Panel, not: \"+b);this.pa!==X.Graduated||b instanceof Lf||b instanceof Wg||B(\"Can only add Shapes or TextBlocks to a Graduated Panel, not: \"+b);b.cj(this);b.Jj=null;if(null!==this.itemArray){var d=b.data;null!==d&&\"object\"===typeof d&&(null===this.Jd&&(this.Jd=new H),this.Jd.add(d,b))}var e=this.W;d=-1;if(c===this){for(var f=-1,g=this.W.j,h=g.length,k=0;k=e.count&&a>=e.count)return;\ne.lb(f);d=f}else B(\"element \"+b.toString()+\" has panel \"+c.toString()+\" but is not contained by it.\")}if(0>a||a>e.count)a=e.count;e.Kb(a,b);if(0===a||b.isPanelMain)this.Hi=null;qj(this)||this.o();b.o(!1);null!==b.portId?this.Ih=!0:b instanceof X&&!0===b.Ih&&(this.Ih=!0);this.$g=null;c=this.part;null!==c&&(c.Fj=null,c.gh=NaN,this.Ih&&c instanceof W&&(c.Ih=!0),c.Ih&&c instanceof W&&(c.rc=null),e=this.diagram,null!==e&&e.undoManager.isUndoingRedoing||(-1!==d&&c.Ya(ue,\"elements\",this,b,null,d,null),c.Ya(te,\n\"elements\",this,null,b,null,a),this.Eg()||en(this,b,!1)))};function fn(a,b){a.F=b?a.F|16777216:a.F&-16777217}t.remove=function(a){for(var b=this.W.j,c=b.length,d=-1,e=0;ea&&va(a,\">= 0\",X,\"getRowDefinition:idx\");a=Math.round(a);var b=this.rb;if(void 0===b)return null;if(void 0===b[a]){var c=new Rj;c.cj(this);c.isRow=!0;c.index=a;b[a]=c}return b[a]};X.prototype.Yv=function(a){0>a&&va(a,\">= 0\",X,\"removeRowDefinition:idx\");a=Math.round(a);var b=this.rb;void 0!==b&&(this.Ya(ue,\"coldefs\",this,b[a],null,a,null),b[a]&&delete b[a],this.o())};\nX.prototype.getColumnDefinition=function(a){0>a&&va(a,\">= 0\",X,\"getColumnDefinition:idx\");a=Math.round(a);var b=this.mb;if(void 0===b)return null;if(void 0===b[a]){var c=new Rj;c.cj(this);c.isRow=!1;c.index=a;b[a]=c}return b[a]};t=X.prototype;t.Wv=function(a){0>a&&va(a,\">= 0\",X,\"removeColumnDefinition:idx\");a=Math.round(a);var b=this.mb;void 0!==b&&(this.Ya(ue,\"coldefs\",this,b[a],null,a,null),b[a]&&delete b[a],this.o())};\nt.pz=function(a){if(0>a||this.type!==X.Table)return-1;for(var b=0,c=this.rb,d=c.length,e=this.Ki;ea||this.type!==X.Table)return-1;for(var b=0,c=this.mb,d=c.length,e=this.vi;ea;)this.Fc(this.W.length-1,!1);a=this.itemArray;if(null!==a)for(var b=a.length,c=0;cc)){var d=kn(a,b),e=a.itemTemplateMap,f=null;null!==e&&(f=e.H(d));null===f&&(ln||(ln=!0,wa('No item template Panel found for category \"'+d+'\" on '+a),wa(\" Using default item template.\"),d=new X,e=new Wg,e.bind(new Ji(\"text\",\"\",Ja)),d.add(e),mn=d),f=mn);d=f;null!==d&&(yg(d),d=d.copy(),0!==(d.F&16777216)&&(e=a.Ui(),null!==e&&fn(e,!0)),\"object\"===typeof b&&(null===a.Jd&&(a.Jd=new H),a.Jd.add(b,d)),e=c+bn(a),a.Kb(e,d),d.hb=b,yn(a,e,c),d.hb=null,d.data=\nb)}}function yn(a,b,c){for(a=a.W;ba&&va(a,\">= 0\",X,\"padding\"),a=new oc(a)):(0>a.left&&va(a.left,\">= 0\",X,\"padding:value.left\"),0>a.right&&va(a.right,\">= 0\",X,\"padding:value.right\"),0>a.top&&va(a.top,\">= 0\",X,\"padding:value.top\"),0>a.bottom&&va(a.bottom,\">= 0\",X,\"padding:value.bottom\"));var b=this.bb;b.w(a)||(this.bb=a=a.G(),this.o(),this.g(\"padding\",b,a))}},defaultAlignment:{get:function(){return this.un},set:function(a){var b=this.un;b.w(a)||(this.un=a=a.G(),this.o(),this.g(\"defaultAlignment\",\nb,a))}},defaultStretch:{get:function(){return this.Qf},set:function(a){var b=this.Qf;b!==a&&(this.Qf=a,this.o(),this.g(\"defaultStretch\",b,a))}},defaultSeparatorPadding:{get:function(){return void 0===this.nj?sc:this.nj},set:function(a){if(void 0!==this.nj){\"number\"===typeof a&&(a=new oc(a));var b=this.nj;b.w(a)||(this.nj=a=a.G(),this.o(),this.g(\"defaultSeparatorPadding\",b,a))}}},defaultRowSeparatorStroke:{get:function(){return void 0===\nthis.ii?null:this.ii},set:function(a){var b=this.ii;b!==a&&(null===a||\"string\"===typeof a||a instanceof tl)&&(a instanceof tl&&a.freeze(),this.ii=a,this.M(),this.g(\"defaultRowSeparatorStroke\",b,a))}},defaultRowSeparatorStrokeWidth:{get:function(){return void 0===this.Rg?1:this.Rg},set:function(a){if(void 0!==this.Rg){var b=this.Rg;b!==a&&isFinite(a)&&0<=a&&(this.Rg=a,this.o(),this.g(\"defaultRowSeparatorStrokeWidth\",b,a))}}},defaultRowSeparatorDashArray:{\nget:function(){return void 0===this.hi?null:this.hi},set:function(a){if(void 0!==this.hi){var b=this.hi;if(b!==a){if(null!==a){for(var c=a.length,d=0,e=0;ea)&&B(\"Panel.topIndex must be greater than zero and a real number, not: \"+a),this.Ki=a,this.o(),\nthis.g(\"topIndex\",b,a))}}},leftIndex:{get:function(){return void 0===this.vi?0:this.vi},set:function(a){if(void 0!==this.vi){var b=this.vi;b!==a&&((!isFinite(a)||0>a)&&B(\"Panel.leftIndex must be greater than zero and a real number, not: \"+a),this.vi=a,this.o(),this.g(\"leftIndex\",b,a))}}},data:{get:function(){return this.hb},set:function(a){var b=this.hb;if(b!==a){var c=this instanceof U&&!(this instanceof Je);yg(this);this.hb=a;var d=this.diagram;\nnull!==d&&(c?(c=d.partManager,this instanceof S?(null!==b&&c.Ne.remove(b),null!==a&&c.Ne.add(a,this)):this instanceof U&&(null!==b&&c.Oe.remove(b),null!==a&&c.Oe.add(a,this))):(c=this.panel,null!==c&&null!==c.Jd&&(null!==b&&c.Jd.remove(b),null!==a&&c.Jd.add(a,this))));this.g(\"data\",b,a);null!==d&&d.undoManager.isUndoingRedoing||null!==a&&this.Ba()}}},itemIndex:{get:function(){return this.io},set:function(a){var b=this.io;b!==a&&(this.io=a,this.g(\"itemIndex\",b,a))}},itemArray:{\nget:function(){return this.si},set:function(a){var b=this.si;if(b!==a||null!==a&&hn(this,a)){var c=this.diagram;b!==a&&(null!==c&&null!==b&&Ij(c.partManager,this,c),this.si=a,null!==c&&null!==a&&Fj(c.partManager,this));this.g(\"itemArray\",b,a);null!==c&&c.undoManager.isUndoingRedoing||this.Gt()}}},itemTemplate:{get:function(){return null===this.le?null:this.le.H(\"\")},set:function(a){if(null===this.le){if(null===a)return;this.le=new H}var b=this.le.H(\"\");\nb!==a&&((a instanceof U||a.isPanelMain)&&B(\"Panel.itemTemplate must not be a Part or be Panel.isPanelMain: \"+a),this.le.add(\"\",a),this.g(\"itemTemplate\",b,a),a=this.diagram,null!==a&&a.undoManager.isUndoingRedoing||this.Gt())}},itemTemplateMap:{get:function(){return this.le},set:function(a){var b=this.le;if(b!==a){for(var c=a.iterator;c.next(););this.le=a;this.g(\"itemTemplateMap\",b,a);a=this.diagram;null!==a&&a.undoManager.isUndoingRedoing||this.Gt()}}},itemCategoryProperty:{\nget:function(){return this.ql},set:function(a){var b=this.ql;b!==a&&(this.ql=a,this.g(\"itemCategoryProperty\",b,a))}},isAtomic:{get:function(){return 0!==(this.F&1048576)},set:function(a){var b=0!==(this.F&1048576);b!==a&&(this.F^=1048576,this.g(\"isAtomic\",b,a))}},isClipping:{get:function(){return 0!==(this.F&2097152)},set:function(a){var b=0!==(this.F&2097152);b!==a&&(a&&this.type!==X.Spot&&wa(\"Warning: Panel.isClipping set on non-Spot Panel: \"+\nthis.toString()),this.F^=2097152,this.o(),this.g(\"isClipping\",b,a))}},isOpposite:{get:function(){return 0!==(this.F&33554432)},set:function(a){var b=0!==(this.F&33554432);b!==a&&(this.F^=33554432,this.o(),this.g(\"isOpposite\",b,a))}},isEnabled:{get:function(){return 0!==(this.F&4194304)},set:function(a){var b=0!==(this.F&4194304);if(b!==a){var c=null===this.panel||this.panel.Eg();this.F^=4194304;this.g(\"isEnabled\",b,a);b=this.diagram;null!==\nb&&b.undoManager.isUndoingRedoing||c&&en(this,this,a)}}},alignmentFocusName:{get:function(){return this.Jg},set:function(a){var b=this.Jg;b!==a&&(this.Jg=a,this.o(),this.g(\"alignmentFocusName\",b,a))}}});\nma.Object.defineProperties(X,{Position:{get:function(){return Nl.H(\"Position\")}},Horizontal:{get:function(){return Nl.H(\"Horizontal\")}},Vertical:{get:function(){return Nl.H(\"Vertical\")}},Spot:{get:function(){return Nl.H(\"Spot\")}},Auto:{get:function(){return Nl.H(\"Auto\")}},Table:{get:function(){return Nl.H(\"Table\")}},Viewbox:{\nget:function(){return Nl.H(\"Viewbox\")}},TableRow:{get:function(){return Nl.H(\"TableRow\")}},TableColumn:{get:function(){return Nl.H(\"TableColumn\")}},Link:{get:function(){return Nl.H(\"Link\")}},Grid:{get:function(){return Nl.H(\"Grid\")}},Graduated:{get:function(){return Nl.H(\"Graduated\")}}});X.prototype.findItemPanelForData=X.prototype.Kx;\nX.prototype.rebuildItemElements=X.prototype.Gt;X.prototype.updateTargetBindings=X.prototype.Ba;X.prototype.copyTemplate=X.prototype.Wy;X.prototype.graduatedValueForPoint=X.prototype.Lz;X.prototype.graduatedPointForValue=X.prototype.Kz;X.prototype.findColumnForLocalX=X.prototype.hz;X.prototype.findRowForLocalY=X.prototype.pz;X.prototype.removeColumnDefinition=X.prototype.Wv;X.prototype.removeRowDefinition=X.prototype.Yv;X.prototype.removeAt=X.prototype.lb;X.prototype.remove=X.prototype.remove;\nX.prototype.insertAt=X.prototype.Kb;X.prototype.elt=X.prototype.L;X.prototype.add=X.prototype.add;X.prototype.findObject=X.prototype.Xa;X.prototype.findInVisualTree=X.prototype.hm;X.prototype.walkVisualTreeFrom=X.prototype.Km;X.prototype.findMainElement=X.prototype.zb;var ln=!1,mn=null,Nl=new H;X.className=\"Panel\";X.definePanelLayout=An;An(\"Position\",new vm);An(\"Vertical\",new ym);An(\"Auto\",new Am);An(\"Link\",new Lm);\nfunction Rj(){Ya(this);this.ng=null;this.Rr=!0;this.Pa=0;this.Pc=NaN;this.ih=0;this.hh=Infinity;this.vb=Zc;this.ma=this.ha=0;this.$a=null;this.Hp=Bn;this.ve=Vk;this.Bp=this.qg=null;this.Cp=NaN;this.gb=this.Nj=null;this.qn=!1}\nRj.prototype.copy=function(){var a=new Rj;a.Rr=this.Rr;a.Pa=this.Pa;a.Pc=this.Pc;a.ih=this.ih;a.hh=this.hh;a.vb=this.vb;a.ha=this.ha;a.ma=this.ma;a.ve=this.ve;a.Hp=this.Hp;null===this.qg?a.qg=null:a.qg=this.qg.G();a.Bp=this.Bp;a.Cp=this.Cp;a.Nj=null;null!==this.Nj&&(a.separatorDashArray=Ba(this.separatorDashArray));a.gb=this.gb;a.qn=this.qn;a.$a=this.$a;return a};t=Rj.prototype;\nt.et=function(a){a.isRow?this.height=a.height:this.width=a.width;this.minimum=a.minimum;this.maximum=a.maximum;this.alignment=a.alignment;this.stretch=a.stretch;this.sizing=a.sizing;this.qg=null===a.separatorPadding?null:a.separatorPadding.G();this.separatorStroke=a.separatorStroke;this.separatorStrokeWidth=a.separatorStrokeWidth;this.Nj=null;a.separatorDashArray&&(this.Nj=Ba(a.separatorDashArray));this.background=a.background;this.coversSeparators=a.coversSeparators;this.$a=a.$a};\nt.cb=function(a){a.classType===Rj&&(this.sizing=a)};t.toString=function(){return\"RowColumnDefinition \"+(this.isRow?\"(Row \":\"(Column \")+this.index+\") #\"+lb(this)};t.cj=function(a){this.ng=a};\nt.iv=function(){var a=0,b=0,c=this.ng,d=this.isRow;if(null!==c&&c.type===X.Table)for(var e=d?c.rb.length:c.mb.length,f=0;fa&&va(a,\">= 0\",Rj,\"height\"),this.Pc=a,this.actual=this.ha,null!==this.panel&&this.panel.o(),\nthis.xb(\"height\",b,a))}},width:{get:function(){return this.Pc},set:function(a){var b=this.Pc;b!==a&&(0>a&&va(a,\">= 0\",Rj,\"width\"),this.Pc=a,this.actual=this.ha,null!==this.panel&&this.panel.o(),this.xb(\"width\",b,a))}},minimum:{get:function(){return this.ih},set:function(a){var b=this.ih;b!==a&&((0>a||!isFinite(a))&&va(a,\">= 0\",Rj,\"minimum\"),this.ih=a,this.actual=this.ha,null!==this.panel&&this.panel.o(),this.xb(\"minimum\",b,a))}},maximum:{\nget:function(){return this.hh},set:function(a){var b=this.hh;b!==a&&(0>a&&va(a,\">= 0\",Rj,\"maximum\"),this.hh=a,this.actual=this.ha,null!==this.panel&&this.panel.o(),this.xb(\"maximum\",b,a))}},alignment:{get:function(){return this.vb},set:function(a){var b=this.vb;b.w(a)||(this.vb=a.G(),null!==this.panel&&this.panel.o(),this.xb(\"alignment\",b,a))}},stretch:{get:function(){return this.ve},set:function(a){var b=this.ve;b!==a&&(this.ve=\na,null!==this.panel&&this.panel.o(),this.xb(\"stretch\",b,a))}},separatorPadding:{get:function(){return this.qg},set:function(a){\"number\"===typeof a&&(a=new oc(a));var b=this.qg;null!==a&&null!==b&&b.w(a)||(null!==a&&(a=a.G()),this.qg=a,null!==this.panel&&this.panel.o(),this.xb(\"separatorPadding\",b,a))}},separatorStroke:{get:function(){return this.Bp},set:function(a){var b=this.Bp;b!==a&&(null!==a&&Rl(a,\"RowColumnDefinition.separatorStroke\"),\na instanceof tl&&a.freeze(),this.Bp=a,null!==this.panel&&this.panel.o(),this.xb(\"separatorStroke\",b,a))}},separatorStrokeWidth:{get:function(){return this.Cp},set:function(a){var b=this.Cp;b!==a&&(this.Cp=a,null!==this.panel&&this.panel.o(),this.xb(\"separatorStrokeWidth\",b,a))}},separatorDashArray:{get:function(){return this.Nj},set:function(a){var b=this.Nj;if(b!==a){if(null!==a){for(var c=a.length,d=0,e=0;ee)){var f=d.measuredBounds,g=Math.max(1,f.width);f=f.height;for(var h=c[0],k=c[1],l,m,n,p,r,q,u=0,v=Fa(),w=2;wn&&(n=1);e=c=n;l=g/2;m=0===l?!1:!0;w=0;q=v[w];n=q[0];r=q[1];p=q[2];q=q[3];for(var y=0;.1<=u;){0===y&&(m?(e=c,e-=l,u-=l,m=!1):e=c,0===e&&(e=1));\nif(e>u){Ha(v);return}e>q?(y=e-q,e=q):y=0;var z=Math.sqrt(e*e/(1+p*p));0>n&&(z=-z);h+=z;k+=p*z;a.translate(h,k);a.rotate(r);a.translate(-(g/2),-(f/2));0===y&&d.Qi(a,b);a.translate(g/2,f/2);a.rotate(-r);a.translate(-h,-k);u-=e;q-=e;if(0!==y){w++;if(w===v.length){Ha(v);return}q=v[w];n=q[0];r=q[1];p=q[2];q=q[3];e=y}}Ha(v)}}\nt.Qi=function(a,b){var c=this.Dc,d=this.$k;if(null!==c||null!==d){var e=this.actualBounds,f=this.naturalBounds;null!==d&&ii(this,a,d,!0,!1,f,e);var g=this.part,h=this.th;null!==c&&0===h&&null!==g&&(h=g.type===X.Link&&g instanceof Je&&\"Selection\"===g.category&&g.adornedObject instanceof Lf&&g.adornedPart.zb()===g.adornedObject?g.adornedObject.strokeWidth:0);null!==c&&0!==h&&(ii(this,a,c,!1,!1,f,e),a.lineWidth=h,a.lineJoin=this.Sl,a.lineCap=this.Rl,a.miterLimit=this.Oj);e=!1;g&&b.Be(\"drawShadows\")&&\n(e=g.isShadowed);g=!0;null===c||null!==d&&\"transparent\"!==d||(g=!1);f=!1;var k=this.strokeDashArray;null!==k&&(f=!0,a.ht(k,this.sh));var l=this.ka;if(null!==l){if(l.type===wd)a.beginPath(),a.moveTo(l.startX,l.startY),a.lineTo(l.endX,l.endY),null!==d&&a.Ud(d),0!==h&&null!==c&&a.fj();else if(l.type===Gd){var m=l.startX;k=l.startY;var n=l.endX,p=l.endY;l=Math.min(m,n);var r=Math.min(k,p);m=Math.abs(n-m);k=Math.abs(p-k);a.beginPath();a.rect(l,r,m,k);null!==d&&a.Ud(d);if(null!==c){g&&e&&sl(a);if(0!==h){if(0===\nm||0===k)a.beginPath(),a.rect(l,r,Math.max(m,.1),Math.max(k,.1));a.fj()}g&&e&&rl(a)}}else if(l.type===Hd)m=l.startX,k=l.startY,n=l.endX,p=l.endY,l=Math.abs(n-m)/2,r=Math.abs(p-k)/2,m=Math.min(m,n)+l,k=Math.min(k,p)+r,a.beginPath(),a.moveTo(m,k-r),a.bezierCurveTo(m+J.Ig*l,k-r,m+l,k-J.Ig*r,m+l,k),a.bezierCurveTo(m+l,k+J.Ig*r,m+J.Ig*l,k+r,m,k+r),a.bezierCurveTo(m-J.Ig*l,k+r,m-l,k+J.Ig*r,m-l,k),a.bezierCurveTo(m-l,k-J.Ig*r,m-J.Ig*l,k-r,m,k-r),a.closePath(),null!==d&&a.Ud(d),0!==h&&null!==c&&(g&&e?(sl(a),\na.fj(),rl(a)):a.fj());else if(l.type===ud)for(k=l.figures,l=k.length,r=0;rv.sweepAngle,null!==q?q.endX:m.startX,null!==q?q.endY:m.startY)}else if(q=ae(v,m),w=q.length,0===w)a.lineTo(v.centerX,v.centerY);else for(var y=0;y(c.startX-c.endX)*(a.x-c.endX)+(c.startY-c.endY)*(a.y-c.endY)||0>d)return!1;N.free(f);return J.Nb(c.startX,c.startY,c.endX,c.endY,e,a.x,a.y)}if(c.type===\nGd){b=c.startX;var g=c.startY,h=c.endX;c=c.endY;f.x=Math.min(b,h);f.y=Math.min(g,c);f.width=Math.abs(h-b);f.height=Math.abs(c-g);if(null===this.fill){f.Vc(-d,-d);if(f.aa(a))return N.free(f),!1;f.Vc(d,d)}null!==this.stroke&&f.Vc(e,e);a=f.aa(a);N.free(f);return a}if(c.type===Hd){g=c.startX;e=c.startY;h=c.endX;var k=c.endY;c=Math.min(g,h);b=Math.min(e,k);g=Math.abs(h-g)/2;e=Math.abs(k-e)/2;c=a.x-(c+g);b=a.y-(b+e);if(null===this.fill){g-=d;e-=d;if(0>=g||0>=e||1>=c*c/(g*g)+b*b/(e*e))return N.free(f),!1;\ng+=d;e+=d}null!==this.stroke&&(g+=d,e+=d);N.free(f);return 0>=g||0>=e?!1:1>=c*c/(g*g)+b*b/(e*e)}if(c.type===ud)return N.free(f),null===this.fill?ee(c,a.x,a.y,e):ce(c,a,e,1=this.strokeWidth)m=J.De(l.startX,l.startY,l.endX,l.endY,f,g,h,k,e);else{l.startX===l.endX?(d=n,m=0):(b=(l.endY-l.startY)/(l.endX-l.startX),m=n/Math.sqrt(1+b*b),d=m*\nb);b=Fa();a=new I;J.De(l.startX+d,l.startY+m,l.endX+d,l.endY+m,f,g,h,k,a)&&b.push(a);a=new I;J.De(l.startX-d,l.startY-m,l.endX-d,l.endY-m,f,g,h,k,a)&&b.push(a);a=new I;J.De(l.startX+d,l.startY+m,l.startX-d,l.startY-m,f,g,h,k,a)&&b.push(a);a=new I;J.De(l.endX+d,l.endY+m,l.endX-d,l.endY-m,f,g,h,k,a)&&b.push(a);h=b.length;if(0===h)return Ha(b),!1;m=!0;k=Infinity;for(d=0;dMath.abs(c)){k=g-m-c*(f-d);if(0>a*a*c*c+l*l-k*k){e.x=NaN;e.y=NaN;m=!1;break a}n=Math.sqrt(a*a*c*c+l*l-k*k);h=(-(a*a*c*k)+a*l*n)/(l*l+a*a*c*c)+d;a=(-(a*a*c*k)-a*l*n)/(l*l+a*a*c*c)+d;l=c*(h-d)+k+m;k=c*\n(a-d)+k+m;Math.abs((f-h)*(f-h))+Math.abs((g-l)*(g-l))h){e.x=NaN;e.y=NaN;m=!1;break a}k=Math.sqrt(h);h=m+k;k=m-k;Math.abs(h-g)c?a-c:c-a)<(b>d?b-d:d-b)?(a=ba||J.$(k.y,a))&&(k.yb||J.$(k.x,b))&&(k.x=a&&d<=b;a=d&&c<=a}\nt.Lx=function(a,b,c){function d(a,b){for(var c=a.length,d=0;de)return!0;return!1}if(c&&null!==this.fill&&this.Hh(a,!0))return!0;var e=a.Ae(b),f=e;1.5=e||Bb(b,f,0,-n)>=e||Bb(b,\nf,0,n)>=e||Bb(b,f,m,0)>=e?!1:!0}else if(b.type===ud){l=b.bounds;f=l.x;h=l.y;k=l.x+l.width;l=l.y+l.height;if(a.x>k&&a.xl&&a.ye&&Ab(a.x,a.y,f,h,k,h)>e&&Ab(a.x,a.y,k,l,f,l)>e&&Ab(a.x,a.y,k,l,k,h)>e)return!1;f=Math.sqrt(e);if(c){if(null===this.fill?ee(b,a.x,a.y,f):ce(b,a,f,!0,!1))return!0}else{c=b.figures;for(b=0;be)return!1;h=f.segments.j;k=h.length;for(l=0;le)return!1;break;case Xd:var p=Fa();J.ye(g,m,n.point1X,n.point1Y,n.point2X,n.point2Y,n.endX,n.endY,.8,p);g=d(p,a);Ha(p);if(g)return!1;g=n.endX;m=n.endY;if(a.dd(g,m)>e)return!1;break;case Yd:p=Fa();J.Cq(g,m,n.point1X,n.point1Y,n.endX,n.endY,.8,p);g=d(p,a);Ha(p);if(g)return!1;g=n.endX;m=n.endY;if(a.dd(g,m)>e)return!1;break;case Zd:case $d:p=n.type===Zd?ae(n,f):be(n,f,g,m);var r=p.length;if(0===r){g=n.centerX;m=n.centerY;if(a.dd(g,m)>e)return!1;break}n=null;for(var q=Fa(),u=0;u<\nr;u++)if(n=p[u],q.length=0,J.ye(n[0],n[1],n[2],n[3],n[4],n[5],n[6],n[7],.8,q),d(q,a))return Ha(q),!1;Ha(q);null!==n&&(g=n[6],m=n[7]);break;default:B(\"Unknown Segment type: \"+n.type)}}return!0}}}return!1};t.cc=function(){this.ka=null};function Hn(a){var b=a.diagram;null!==b&&b.undoManager.isUndoingRedoing||(a.segmentOrientation=In,\"None\"!==a.Yl?(a.segmentIndex=-1,a.alignmentFocus=fd):\"None\"!==a.al&&(a.segmentIndex=0,a.alignmentFocus=new P(1-fd.x,fd.y)))}\nLf.makeGeometry=function(a,b,c){if(\"None\"!==a.toArrow)var d=Jn[a.toArrow];else\"None\"!==a.fromArrow?d=Jn[a.fromArrow]:(d=J.Je[a.figure],\"string\"===typeof d&&(d=J.Je[d]),void 0===d&&B(\"Unknown Shape.figure: \"+a.figure),d=d(a,b,c),d.kl=b,d.jl=c);if(null===d){var e=J.Je.Rectangle;\"function\"===typeof e&&(d=e(a,b,c))}return d};\nfunction Kn(a){var b=Jn[a];if(void 0===b){var c=a.toLowerCase();if(\"none\"===c)return\"None\";b=Jn[c];if(void 0===b){var d=null,e;for(e in J.Nm)if(e.toLowerCase()===c){d=e;break}if(null!==d)return a=Id(J.Nm[d],!1),Jn[d]=a,c!==d&&(Jn[c]=d),d}}return\"string\"===typeof b?b:b instanceof td?a:null}\nma.Object.defineProperties(Lf.prototype,{geometry:{get:function(){return null!==this.ka?this.ka:this.Qd},set:function(a){var b=this.ka;if(b!==a){null!==a?this.Qd=this.ka=a.freeze():this.Qd=this.ka=null;var c=this.part;null!==c&&(c.gh=NaN);this.o();this.g(\"geometry\",b,a);el(this)&&(a=this.part,null!==a&&fl(this,a,\"geometryString\"))}}},geometryString:{get:function(){return null===this.geometry?\"\":this.geometry.toString()},set:function(a){a=\nId(a);var b=a.normalize();this.geometry=a;this.position=a=I.allocAt(-b.x,-b.y);I.free(a)}},isGeometryPositioned:{get:function(){return this.Zn},set:function(a){var b=this.Zn;b!==a&&(this.Zn=a,this.o(),this.g(\"isGeometryPositioned\",b,a))}},fill:{get:function(){return this.$k},set:function(a){var b=this.$k;b!==a&&(null!==a&&Rl(a,\"Shape.fill\"),a instanceof tl&&a.freeze(),this.$k=a,this.M(),this.g(\"fill\",b,a))}},stroke:{\nget:function(){return this.Dc},set:function(a){var b=this.Dc;b!==a&&(null!==a&&Rl(a,\"Shape.stroke\"),a instanceof tl&&a.freeze(),this.Dc=a,this.M(),this.g(\"stroke\",b,a))}},strokeWidth:{get:function(){return this.th},set:function(a){var b=this.th;if(b!==a)if(0<=a){this.th=a;this.o();var c=this.part;null!==c&&(c.gh=NaN);this.g(\"strokeWidth\",b,a)}else va(a,\"value >= 0\",Lf,\"strokeWidth:value\")}},strokeCap:{get:function(){return this.Rl},set:function(a){var b=\nthis.Rl;b!==a&&(\"string\"!==typeof a||\"butt\"!==a&&\"round\"!==a&&\"square\"!==a?va(a,'\"butt\", \"round\", or \"square\"',Lf,\"strokeCap\"):(this.Rl=a,this.M(),this.g(\"strokeCap\",b,a)))}},strokeJoin:{get:function(){return this.Sl},set:function(a){var b=this.Sl;b!==a&&(\"string\"!==typeof a||\"miter\"!==a&&\"bevel\"!==a&&\"round\"!==a?va(a,'\"miter\", \"bevel\", or \"round\"',Lf,\"strokeJoin\"):(this.Sl=a,this.M(),this.g(\"strokeJoin\",b,a)))}},strokeMiterLimit:{get:function(){return this.Oj},\nset:function(a){var b=this.Oj;if(b!==a&&1<=a){this.Oj=a;this.M();var c=this.part;null!==c&&(c.gh=NaN);this.g(\"strokeMiterLimit\",b,a)}}},strokeDashArray:{get:function(){return this.rh},set:function(a){var b=this.rh;if(b!==a){if(null!==a){for(var c=a.length,d=0,e=0;ea?a=0:1a?a=0:1p*m*m&&(c=!0);b.Db!==a&&(c=!1);!1===b.Be(\"textGreeking\")&&\n(c=!1);b=this.ff;p=this.gf;switch(this.flip){case $k:a.translate(e,0);a.scale(-1,1);break;case Zk:a.translate(0,f);a.scale(1,-1);break;case al:a.translate(e,f),a.scale(-1,-1)}m=this.Nc;n=(b+g+p)*m;f>n&&(d=this.Mi,d=d.y*f-d.y*n+d.offsetY);if(1===m&&null!==this.ee)p=this.pb,p>e&&(p=e),this.Pi(this.ee,a,0,d+b,e,g,p,c,h,k,l);else if(null!==this.Qb&&null!==this.fb)for(n=0;ne&&(r=e);d+=b;this.Pi(this.fb[n],a,0,d,e,g,r,c,h,k,l);d+=g+p}switch(this.flip){case $k:a.scale(-1,1);a.translate(-e,\n0);break;case Zk:a.scale(1,-1);a.translate(0,-f);break;case al:a.scale(-1,-1),a.translate(-e,-f)}}};\nt.Pi=function(a,b,c,d,e,f,g,h,k,l,m){var n=0;h?(\"left\"===k?n=0:\"right\"===k?n=e-g:\"center\"===k&&(n=(e-g)/2),b.fillRect(c+n,d+.25*f,g,1)):(\"left\"===k?n=0:\"right\"===k?n=e:\"center\"===k&&(n=e/2),e=null!==Qn?Qn(this,f):.75*f,b.fillText(a,c+n,d+e),a=f/20|0,0===a&&(a=1),\"right\"===k?n-=g:\"center\"===k&&(n-=g/2),l&&(k=null!==Rn?Rn(this,f):.8*f,b.beginPath(),b.lineWidth=a,b.moveTo(c+n,d+k),b.lineTo(c+n+g,d+k),b.stroke()),m&&(b.beginPath(),b.lineWidth=a,d=d+f-f/2.2|0,0!==a%2&&(d+=.5),b.moveTo(c+n,d),b.lineTo(c+\nn+g,d),b.stroke()))};\nt.sm=function(a,b,c,d){this.ti=a;var e=this.fe;null!==Mn&&Sn!==e&&(Sn=Mn.font=e);this.pb=this.te=0;this.ee=this.fb=this.Qb=this.ge=null;var f;if(isNaN(this.desiredSize.width)){e=this.Tb.replace(/\\r\\n/g,\"\\n\").replace(/\\r/g,\"\\n\");if(0===e.length)e=0;else if(this.isMultiline){for(var g=f=0,h=!1;!h;){var k=e.indexOf(\"\\n\",g);-1===k&&(k=e.length,h=!0);f=Math.max(f,Tn(e.substr(g,k-g).trim()));g=k+1}e=f}else f=e.indexOf(\"\\n\",0),0<=f&&(e=e.substr(0,f)),e=Tn(e);e=Math.min(e,a/this.scale);e=Math.max(8,e)}else e=\nthis.desiredSize.width;null!==this.panel&&(e=Math.min(e,this.panel.maxSize.width));f=Un(this,e);isNaN(this.desiredSize.height)?f=Math.min(f,b/this.scale):f=this.desiredSize.height;g=f;if(0!==this.pb&&null!==this.Qb&&null!==this.fb&&this.lg===Vn&&(b=this.fe,b=this.lg===Vn?Wn(b):0,h=this.ff+this.gf,h=Math.max(0,Pn(this)+h),g=Math.min(this.maxLines-1,Math.max(Math.floor(g/h+.01)-1,0)),!(g+1>=this.fb.length))){h=this.fb[g];for(b=Math.max(1,a-b);Tn(h)>b&&1=a.ne)null!==d&&d.h(0,g);else{var k=b;if(a.wg===ao)if(a.te=1,f=Tn(b),0===h||f<=c)a.pb=Math.max(a.pb,f),Zn(a,b,a.pb),null!==d&&d.h(f,g);else{e=bo(a,k);k=k.substr(e.length);b=bo(a,k);for(f=Tn(e+b);0c&&1c;){var m=1;f=Tn(l.substr(0,m));for(b=0;f<=c;)m++,b=f,f=Tn(l.substr(0,m));if(1===m){var n=f;e=Math.max(e,f)}else n=b,e=Math.max(e,b);m--;1>m&&(m=1);Zn(a,l.substr(0,m),n);h++;l=l.substr(m);if(a.Nc+h>a.ne)break}b=bo(a,k);for(f=Tn(l+b);0a.ne))break}a.te=Math.min(a.ne,h);a.pb=Math.max(a.pb,e);null!==d&&d.h(a.pb,g*a.te)}}}function bo(a,b){if(a.wg===co)return b.substr(0,1);a=b.length;for(var c=0,d=eo;c=a?b:b.substr(0,c)}function Tn(a){return null===Mn?8*a.length:Mn.measureText(a).width}\nfunction Pn(a){if(null!==a.ge)return a.ge;var b=a.fe;if(null===Mn){var c=16;return a.ge=c}void 0!==fo[b]&&5E3>go?c=fo[b]:(c=1.3*Mn.measureText(\"M\").width,fo[b]=c,go++);return a.ge=c}function Wn(a){if(null===Mn)return 6;if(void 0!==ho[a]&&5E3>io)var b=ho[a];else b=Mn.measureText(Xn).width,ho[a]=b,io++;return b}\nfunction Un(a,b){var c=a.Tb.replace(/\\r\\n/g,\"\\n\").replace(/\\r/g,\"\\n\"),d=a.ff+a.gf;d=Math.max(0,Pn(a)+d);if(0===c.length)return a.pb=0,a.Nc=1,d;if(!a.isMultiline){var e=c.indexOf(\"\\n\",0);0<=e&&(c=c.substr(0,e))}e=0;for(var f=a.Nc=0,g,h=!1;!h;){g=c.indexOf(\"\\n\",f);-1===g&&(g=c.length,h=!0);if(f<=g){f=c.substr(f,g-f);if(a.wg!==ao){a.te=0;var k=M.alloc();$n(a,f,b,k);e+=k.height;M.free(k);a.Nc+=a.te}else $n(a,f,b,null),e+=d,a.Nc++;a.Nc===a.ne&&(h=!0)}f=g+1}return a.$r=e}\nma.Object.defineProperties(Wg.prototype,{font:{get:function(){return this.fe},set:function(a){var b=this.fe;b!==a&&(this.fe=a,this.ge=null,this.o(),this.g(\"font\",b,a))}},text:{get:function(){return this.Tb},set:function(a){var b=this.Tb;null!==a&&void 0!==a?a=a.toString():a=\"\";b!==a&&(this.Tb=a,this.o(),this.g(\"text\",b,a))}},textAlign:{get:function(){return this.Ii},set:function(a){var b=this.Ii;b===a||\"start\"!==\na&&\"end\"!==a&&\"left\"!==a&&\"right\"!==a&&\"center\"!==a||(this.Ii=a,this.M(),this.g(\"textAlign\",b,a))}},flip:{get:function(){return this.Cd},set:function(a){var b=this.Cd;b!==a&&(this.Cd=a,this.M(),this.g(\"flip\",b,a))}},verticalAlignment:{get:function(){return this.Mi},set:function(a){var b=this.Mi;b.w(a)||(this.Mi=a=a.G(),Cl(this),this.g(\"verticalAlignment\",b,a))}},naturalBounds:{get:function(){if(!this.oc.v()){var a=\nM.alloc();$n(this,this.Tb,999999,a);var b=a.width;M.free(a);a=Un(this,b);var c=this.desiredSize;isNaN(c.width)||(b=c.width);isNaN(c.height)||(a=c.height);Vb(this.oc,b,a)}return this.oc}},isMultiline:{get:function(){return this.xj},set:function(a){var b=this.xj;b!==a&&(this.xj=a,this.o(),this.g(\"isMultiline\",b,a))}},isUnderline:{get:function(){return this.ri},set:function(a){var b=this.ri;b!==a&&(this.ri=a,this.M(),this.g(\"isUnderline\",b,\na))}},isStrikethrough:{get:function(){return this.pi},set:function(a){var b=this.pi;b!==a&&(this.pi=a,this.M(),this.g(\"isStrikethrough\",b,a))}},wrap:{get:function(){return this.wg},set:function(a){var b=this.wg;b!==a&&(this.wg=a,this.o(),this.g(\"wrap\",b,a))}},overflow:{get:function(){return this.lg},set:function(a){var b=this.lg;b!==a&&(this.lg=a,this.o(),this.g(\"overflow\",b,a))}},stroke:{\nget:function(){return this.Dc},set:function(a){var b=this.Dc;b!==a&&(null!==a&&Rl(a,\"TextBlock.stroke\"),a instanceof tl&&a.freeze(),this.Dc=a,this.M(),this.g(\"stroke\",b,a))}},lineCount:{get:function(){return this.Nc}},editable:{get:function(){return this.Dn},set:function(a){var b=this.Dn;b!==a&&(this.Dn=a,this.g(\"editable\",b,a))}},textEditor:{get:function(){return this.Sp},set:function(a){var b=this.Sp;b!==a&&\n(this.Sp=a,this.g(\"textEditor\",b,a))}},errorFunction:{get:function(){return this.zc},set:function(a){var b=this.zc;b!==a&&(this.zc=a,this.g(\"errorFunction\",b,a))}},interval:{get:function(){return this.Hd},set:function(a){var b=this.Hd;a=Math.round(a);if(b!==a&&0!==a&&isFinite(a)){this.Hd=a;this.o();var c=this.panel;null!==c&&(c.$g=null);this.g(\"interval\",b,a)}}},graduatedStart:{get:function(){return this.Fd},\nset:function(a){var b=this.Fd;b!==a&&(0>a?a=0:1a?a=0:1=a&&va(a,\"> 0\",Wg,\"maxLines\"),this.ne=a,this.g(\"maxLines\",b,a),this.o())}},metrics:{get:function(){return{arrSize:null!==this.Qb?this.Qb:\n[this.pb],arrText:null!==this.fb?this.fb:[this.ee],maxLineWidth:this.pb,fontHeight:this.ge}}},choices:{get:function(){return this.en},set:function(a){var b=this.en;b!==a&&(this.en=a,this.g(\"choices\",b,a))}}});\nvar Qn=null,Rn=null,ao=new D(Wg,\"None\",0),Yn=new D(Wg,\"WrapFit\",1),On=new D(Wg,\"WrapDesiredSize\",2),co=new D(Wg,\"WrapBreakAll\",3),Nn=new D(Wg,\"OverflowClip\",0),Vn=new D(Wg,\"OverflowEllipsis\",1),eo=/[ \\u200b\\u00ad]/,fo=new db,go=0,ho=new db,io=0,Xn=\"...\",Sn=\"\",Mn=null,Ln=!1;Wg.className=\"TextBlock\";Wg.getEllipsis=function(){return Xn};Wg.setEllipsis=function(a){Xn=a;ho=new db;io=0};Wg.getBaseline=function(){return Qn};Wg.setBaseline=function(a){Qn=a;a=Pa();for(var b=a.length,c=0;c=d.width&&(e=e+r.offsetX+(m*r.x-d.width*r.x));n>=d.height&&(f=f+r.offsetY+(n*r.y-d.height*r.y));h=Math.min(d.width,m);g=Math.min(d.height,n);break;case vd:m=d.width;n=d.height;break;case Bg:case Yk:p===Bg?(p=Math.min(d.height/n,d.width/m),m*=p,n*=p):p===Yk&&(p=Math.max(d.height/n,d.width/m),m*=p,n*=p,m>=d.width&&(e=(e+r.offsetX+(m*r.x-d.width*r.x)/m)*h),n>=d.height&&(f=(f+r.offsetY+(n*r.y-d.height*r.y)/\nn)*g),h*=1/(m/d.width),g*=1/(n/d.height),m=d.width,n=d.height)}p=this.uf()*b.scale;var q=m*p*n*p,u=h*g/q,v=c.__goCache;p=null;var w=oo;if(c.Pr&&void 0!==v&&4w*w)for(null===v.Oi&&(po(v,4,k,l,c),po(v,16,k,l,c)),k=v.Oi,l=k.length,q=0;qJ.Gf;var d=\"r\"+b+\",\"+c,e=J.Ff[d];if(void 0!==e)return e;e=new td(Gd);e.endX=b;e.endY=c;a&&(J.Ff[d]=e,J.Gf++);return e});to(\"Square\",function(a,b,c){a=50>J.Gf;var d=\"s\"+b+\",\"+c,e=J.Ff[d];if(void 0!==e)return e;e=new td(Gd);e.endX=b;e.endY=c;e.defaultStretch=Bg;a&&(J.Ff[d]=e,J.Gf++);return e});\nto(\"RoundedRectangle\",function(a,b,c){var d=50>J.Gf,e=\"rr\"+b+\",\"+c,f=J.Ff[e];if(void 0===f){f=a?a.parameter1:NaN;if(isNaN(f)||0>=f)f=5;f=Math.min(f,b/3);f=Math.min(f,c/3);a=f*J.Ig;f=(new td).add((new ke(f,0,!0)).add(new le(yd,b-f,0)).add(new le(Xd,b,f,b-a,0,b,a)).add(new le(yd,b,c-f)).add(new le(Xd,b-f,c,b,c-a,b-a,c)).add(new le(yd,f,c)).add(new le(Xd,0,c-f,a,c,0,c-a)).add(new le(yd,0,f)).add((new le(Xd,f,0,0,a,a,0)).close()));1J.Gf;var d=\"e\"+b+\",\"+c,e=J.Ff[d];if(void 0!==e)return e;e=new td(Hd);e.endX=b;e.endY=c;e.spot1=hd;e.spot2=id;a&&(J.Ff[d]=e,J.Gf++);return e});to(\"Circle\",function(a,b,c){a=50>J.Gf;var d=\"c\"+b+\",\"+c,e=J.Ff[d];if(void 0!==e)return e;e=new td(Hd);e.endX=b;e.endY=c;e.spot1=hd;e.spot2=id;e.defaultStretch=Bg;a&&(J.Ff[d]=e,J.Gf++);return e});\nto(\"TriangleRight\",function(a,b,c){return(new td).add((new ke(0,0)).add(new le(yd,b,.5*c)).add((new le(yd,0,c)).close())).Jm(0,.25,.5,.75)});to(\"TriangleDown\",function(a,b,c){return(new td).add((new ke(0,0)).add(new le(yd,b,0)).add((new le(yd,.5*b,c)).close())).Jm(.25,0,.75,.5)});to(\"TriangleLeft\",function(a,b,c){return(new td).add((new ke(b,c)).add(new le(yd,0,.5*c)).add((new le(yd,b,0)).close())).Jm(.5,.25,1,.75)});\nto(\"TriangleUp\",function(a,b,c){return(new td).add((new ke(b,c)).add(new le(yd,0,c)).add((new le(yd,.5*b,0)).close())).Jm(.25,.5,.75,1)});to(\"Triangle\",\"TriangleUp\");to(\"Diamond\",function(a,b,c){return(new td).add((new ke(.5*b,0)).add(new le(yd,0,.5*c)).add(new le(yd,.5*b,c)).add((new le(yd,b,.5*c)).close())).Jm(.25,.25,.75,.75)});to(\"LineH\",function(a,b,c){a=new td(wd);a.startX=0;a.startY=c/2;a.endX=b;a.endY=c/2;return a});\nto(\"LineV\",function(a,b,c){a=new td(wd);a.startX=b/2;a.startY=0;a.endX=b/2;a.endY=c;return a});to(\"None\",\"Rectangle\");to(\"BarH\",\"Rectangle\");to(\"BarV\",\"Rectangle\");to(\"MinusLine\",\"LineH\");to(\"PlusLine\",function(a,b,c){return(new td).add((new ke(0,c/2,!1)).add(new le(yd,b,c/2)).add(new le(Wd,b/2,0)).add(new le(yd,b/2,c)))});to(\"XLine\",function(a,b,c){return(new td).add((new ke(0,c,!1)).add(new le(yd,b,0)).add(new le(Wd,0,0)).add(new le(yd,b,c)))});\nJ.Nm={\"\":\"\",Standard:\"F1 m 0,0 l 8,4 -8,4 2,-4 z\",Backward:\"F1 m 8,0 l -2,4 2,4 -8,-4 z\",Triangle:\"F1 m 0,0 l 8,4.62 -8,4.62 z\",BackwardTriangle:\"F1 m 8,4 l 0,4 -8,-4 8,-4 0,4 z\",Boomerang:\"F1 m 0,0 l 8,4 -8,4 4,-4 -4,-4 z\",BackwardBoomerang:\"F1 m 8,0 l -8,4 8,4 -4,-4 4,-4 z\",SidewaysV:\"m 0,0 l 8,4 -8,4 0,-1 6,-3 -6,-3 0,-1 z\",BackwardV:\"m 8,0 l -8,4 8,4 0,-1 -6,-3 6,-3 0,-1 z\",OpenTriangle:\"m 0,0 l 8,4 -8,4\",BackwardOpenTriangle:\"m 8,0 l -8,4 8,4\",OpenTriangleLine:\"m 0,0 l 8,4 -8,4 m 8.5,0 l 0,-8\",\nBackwardOpenTriangleLine:\"m 8,0 l -8,4 8,4 m -8.5,0 l 0,-8\",OpenTriangleTop:\"m 0,0 l 8,4 m 0,4\",BackwardOpenTriangleTop:\"m 8,0 l -8,4 m 0,4\",OpenTriangleBottom:\"m 0,8 l 8,-4\",BackwardOpenTriangleBottom:\"m 0,4 l 8,4\",HalfTriangleTop:\"F1 m 0,0 l 0,4 8,0 z m 0,8\",BackwardHalfTriangleTop:\"F1 m 8,0 l 0,4 -8,0 z m 0,8\",HalfTriangleBottom:\"F1 m 0,4 l 0,4 8,-4 z\",BackwardHalfTriangleBottom:\"F1 m 8,4 l 0,4 -8,-4 z\",ForwardSemiCircle:\"m 4,0 b 270 180 0 4 4\",BackwardSemiCircle:\"m 4,8 b 90 180 0 -4 4\",Feather:\"m 0,0 l 3,4 -3,4\",\nBackwardFeather:\"m 3,0 l -3,4 3,4\",DoubleFeathers:\"m 0,0 l 3,4 -3,4 m 3,-8 l 3,4 -3,4\",BackwardDoubleFeathers:\"m 3,0 l -3,4 3,4 m 3,-8 l -3,4 3,4\",TripleFeathers:\"m 0,0 l 3,4 -3,4 m 3,-8 l 3,4 -3,4 m 3,-8 l 3,4 -3,4\",BackwardTripleFeathers:\"m 3,0 l -3,4 3,4 m 3,-8 l -3,4 3,4 m 3,-8 l -3,4 3,4\",ForwardSlash:\"m 0,8 l 5,-8\",BackSlash:\"m 0,0 l 5,8\",DoubleForwardSlash:\"m 0,8 l 4,-8 m -2,8 l 4,-8\",DoubleBackSlash:\"m 0,0 l 4,8 m -2,-8 l 4,8\",TripleForwardSlash:\"m 0,8 l 4,-8 m -2,8 l 4,-8 m -2,8 l 4,-8\",\nTripleBackSlash:\"m 0,0 l 4,8 m -2,-8 l 4,8 m -2,-8 l 4,8\",Fork:\"m 0,4 l 8,0 m -8,0 l 8,-4 m -8,4 l 8,4\",BackwardFork:\"m 8,4 l -8,0 m 8,0 l -8,-4 m 8,4 l -8,4\",LineFork:\"m 0,0 l 0,8 m 0,-4 l 8,0 m -8,0 l 8,-4 m -8,4 l 8,4\",BackwardLineFork:\"m 8,4 l -8,0 m 8,0 l -8,-4 m 8,4 l -8,4 m 8,-8 l 0,8\",CircleFork:\"F1 m 6,4 b 0 360 -3 0 3 z m 0,0 l 6,0 m -6,0 l 6,-4 m -6,4 l 6,4\",BackwardCircleFork:\"F1 m 0,4 l 6,0 m -6,-4 l 6,4 m -6,4 l 6,-4 m 6,0 b 0 360 -3 0 3\",CircleLineFork:\"F1 m 6,4 b 0 360 -3 0 3 z m 1,-4 l 0,8 m 0,-4 l 6,0 m -6,0 l 6,-4 m -6,4 l 6,4\",\nBackwardCircleLineFork:\"F1 m 0,4 l 6,0 m -6,-4 l 6,4 m -6,4 l 6,-4 m 0,-4 l 0,8 m 7,-4 b 0 360 -3 0 3\",Circle:\"F1 m 8,4 b 0 360 -4 0 4 z\",Block:\"F1 m 0,0 l 0,8 8,0 0,-8 z\",StretchedDiamond:\"F1 m 0,3 l 5,-3 5,3 -5,3 -5,-3 z\",Diamond:\"F1 m 0,4 l 4,-4 4,4 -4,4 -4,-4 z\",Chevron:\"F1 m 0,0 l 5,0 3,4 -3,4 -5,0 3,-4 -3,-4 z\",StretchedChevron:\"F1 m 0,0 l 8,0 3,4 -3,4 -8,0 3,-4 -3,-4 z\",NormalArrow:\"F1 m 0,2 l 4,0 0,-2 4,4 -4,4 0,-2 -4,0 z\",X:\"m 0,0 l 8,8 m 0,-8 l -8,8\",TailedNormalArrow:\"F1 m 0,0 l 2,0 1,2 3,0 0,-2 2,4 -2,4 0,-2 -3,0 -1,2 -2,0 1,-4 -1,-4 z\",\nDoubleTriangle:\"F1 m 0,0 l 4,4 -4,4 0,-8 z m 4,0 l 4,4 -4,4 0,-8 z\",BigEndArrow:\"F1 m 0,0 l 5,2 0,-2 3,4 -3,4 0,-2 -5,2 0,-8 z\",ConcaveTailArrow:\"F1 m 0,2 h 4 v -2 l 4,4 -4,4 v -2 h -4 l 2,-2 -2,-2 z\",RoundedTriangle:\"F1 m 0,1 a 1,1 0 0 1 1,-1 l 7,3 a 0.5,1 0 0 1 0,2 l -7,3 a 1,1 0 0 1 -1,-1 l 0,-6 z\",SimpleArrow:\"F1 m 1,2 l -1,-2 2,0 1,2 -1,2 -2,0 1,-2 5,0 0,-2 2,2 -2,2 0,-2 z\",AccelerationArrow:\"F1 m 0,0 l 0,8 0.2,0 0,-8 -0.2,0 z m 2,0 l 0,8 1,0 0,-8 -1,0 z m 3,0 l 2,0 2,4 -2,4 -2,0 0,-8 z\",BoxArrow:\"F1 m 0,0 l 4,0 0,2 2,0 0,-2 2,4 -2,4 0,-2 -2,0 0,2 -4,0 0,-8 z\",\nTriangleLine:\"F1 m 8,4 l -8,-4 0,8 8,-4 z m 0.5,4 l 0,-8\",CircleEndedArrow:\"F1 m 10,4 l -2,-3 0,2 -2,0 0,2 2,0 0,2 2,-3 z m -4,0 b 0 360 -3 0 3 z\",DynamicWidthArrow:\"F1 m 0,3 l 2,0 2,-1 2,-2 2,4 -2,4 -2,-2 -2,-1 -2,0 0,-2 z\",EquilibriumArrow:\"m 0,3 l 8,0 -3,-3 m 3,5 l -8,0 3,3\",FastForward:\"F1 m 0,0 l 3.5,4 0,-4 3.5,4 0,-4 1,0 0,8 -1,0 0,-4 -3.5,4 0,-4 -3.5,4 0,-8 z\",Kite:\"F1 m 0,4 l 2,-4 6,4 -6,4 -2,-4 z\",HalfArrowTop:\"F1 m 0,0 l 4,4 4,0 -8,-4 z m 0,8\",HalfArrowBottom:\"F1 m 0,8 l 4,-4 4,0 -8,4 z\",\nOpposingDirectionDoubleArrow:\"F1 m 0,4 l 2,-4 0,2 4,0 0,-2 2,4 -2,4 0,-2 -4,0 0,2 -2,-4 z\",PartialDoubleTriangle:\"F1 m 0,0 4,3 0,-3 4,4 -4,4 0,-3 -4,3 0,-8 z\",LineCircle:\"F1 m 0,0 l 0,8 m 7 -4 b 0 360 -3 0 3 z\",DoubleLineCircle:\"F1 m 0,0 l 0,8 m 2,-8 l 0,8 m 7 -4 b 0 360 -3 0 3 z\",TripleLineCircle:\"F1 m 0,0 l 0,8 m 2,-8 l 0,8 m 2,-8 l 0,8 m 7 -4 b 0 360 -3 0 3 z\",CircleLine:\"F1 m 6 4 b 0 360 -3 0 3 z m 1,-4 l 0,8\",DiamondCircle:\"F1 m 8,4 l -4,4 -4,-4 4,-4 4,4 m 8,0 b 0 360 -4 0 4 z\",PlusCircle:\"F1 m 8,4 b 0 360 -4 0 4 l -8 0 z m -4 -4 l 0 8\",\nOpenRightTriangleTop:\"m 8,0 l 0,4 -8,0 m 0,4\",OpenRightTriangleBottom:\"m 8,8 l 0,-4 -8,0\",Line:\"m 0,0 l 0,8\",DoubleLine:\"m 0,0 l 0,8 m 2,0 l 0,-8\",TripleLine:\"m 0,0 l 0,8 m 2,0 l 0,-8 m 2,0 l 0,8\",PentagonArrow:\"F1 m 8,4 l -4,-4 -4,0 0,8 4,0 4,-4 z\"};\nfunction U(a){X.call(this,a);this.D=2408959;this.eh=this.Lf=\"\";this.mp=this.ip=this.yp=this.mo=null;this.Ap=\"\";this.Hf=this.Wn=this.zp=this.ph=null;this.kp=\"\";this.jp=Rb;this.Tb=this.np=\"\";this.ui=this.hn=this.di=null;this.cg=(new I(NaN,NaN)).freeze();this.to=\"\";this.Xe=null;this.uo=vc;this.op=Zc;this.Do=Gb;this.vo=Hb;this.An=null;this.no=127;this.Ep=Ib;this.Dp=\"gray\";this.df=4;this.Xw=-1;this.aq=NaN;this.yy=new N;this.Fj=null;this.gh=NaN}la(U,X);\nU.prototype.cloneProtected=function(a){X.prototype.cloneProtected.call(this,a);a.D=this.D&-4097|49152;a.Lf=this.Lf;a.eh=this.eh;a.mo=this.mo;a.yp=this.yp;a.ip=this.ip;a.mp=this.mp;a.Ap=this.Ap;a.zp=this.zp;a.Wn=this.Wn;a.Hf=null;a.kp=this.kp;a.jp=this.jp.G();a.np=this.np;a.op=this.op.G();a.Tb=this.Tb;a.hn=this.hn;a.cg.assign(this.cg);a.to=this.to;a.uo=this.uo.G();a.Do=this.Do.G();a.vo=this.vo.G();a.An=this.An;a.no=this.no;a.Ep=this.Ep.G();a.Dp=this.Dp;a.df=this.df;a.aq=this.aq};\nU.prototype.sf=function(a){X.prototype.sf.call(this,a);a.Jh();a.ph=null;a.Xe=null;a.Fj=null};U.prototype.toString=function(){var a=Ia(this.constructor)+\"#\"+lb(this);null!==this.data&&(a+=\"(\"+Ja(this.data)+\")\");return a};U.prototype.vk=function(a,b,c,d,e,f,g){var h=this.diagram;null!==h&&(a===te&&\"elements\"===b?e instanceof X?Dj(e,function(a){Fj(h.partManager,a);Ej(h,a)}):jk(h,e):a===ue&&\"elements\"===b&&(e instanceof X?Dj(e,function(a){Ij(h.partManager,a,h)}):lk(h,e)),h.Ya(a,b,c,d,e,f,g))};\nU.prototype.Ba=function(a){X.prototype.Ba.call(this,a);if(null!==this.data){for(var b=this.W.j,c=b.length,d=0;de.x&&a.y>e.y&&a.righte.x&&b.y>e.y&&b.right=c.maxSelectionCount)){this.D^=4096;var d=!1;if(null!==c){d=c.skipsUndoManager;c.skipsUndoManager=!0;var e=c.selection;e.ea();a?e.add(this):e.remove(this);e.freeze()}this.g(\"isSelected\",b,a);this.Lb();a=this.selectionChanged;null!==a&&a(this);null!==c&&(c.Pb(),c.skipsUndoManager=d)}}}},isHighlighted:{get:function(){return 0!==(this.D&524288)},set:function(a){var b=0!==(this.D&524288);\nif(b!==a){this.D^=524288;var c=this.diagram;null!==c&&(c=c.highlighteds,c.ea(),a?c.add(this):c.remove(this),c.freeze());this.g(\"isHighlighted\",b,a);this.M();a=this.highlightedChanged;null!==a&&a(this)}}},isShadowed:{get:function(){return 0!==(this.D&8192)},set:function(a){var b=0!==(this.D&8192);b!==a&&(this.D^=8192,this.g(\"isShadowed\",b,a),this.M())}},isAnimated:{get:function(){return 0!==(this.D&262144)},set:function(a){var b=0!==(this.D&\n262144);b!==a&&(this.D^=262144,this.g(\"isAnimated\",b,a))}},highlightedChanged:{get:function(){return this.Wn},set:function(a){var b=this.Wn;b!==a&&(this.Wn=a,this.g(\"highlightedChanged\",b,a))}},selectionObjectName:{get:function(){return this.Ap},set:function(a){var b=this.Ap;b!==a&&(this.Ap=a,this.ph=null,this.g(\"selectionObjectName\",b,a))}},selectionAdornmentTemplate:{get:function(){return this.yp},set:function(a){var b=\nthis.yp;b!==a&&(this.yp=a,this.g(\"selectionAdornmentTemplate\",b,a))}},selectionObject:{get:function(){if(null===this.ph){var a=this.selectionObjectName;null!==a&&\"\"!==a?(a=this.Xa(a),null!==a?this.ph=a:this.ph=this):this instanceof S?(a=this.path,null!==a?this.ph=a:this.ph=this):this.ph=this}return this.ph}},selectionChanged:{get:function(){return this.zp},set:function(a){var b=this.zp;b!==a&&(this.zp=a,this.g(\"selectionChanged\",b,a))}},\nresizeAdornmentTemplate:{get:function(){return this.ip},set:function(a){var b=this.ip;b!==a&&(this.ip=a,this.g(\"resizeAdornmentTemplate\",b,a))}},resizeObjectName:{get:function(){return this.kp},set:function(a){var b=this.kp;b!==a&&(this.kp=a,this.g(\"resizeObjectName\",b,a))}},resizeObject:{get:function(){var a=this.resizeObjectName;return\"\"!==a&&(a=this.Xa(a),null!==a)?a:this}},resizeCellSize:{\nget:function(){return this.jp},set:function(a){var b=this.jp;b.w(a)||(this.jp=a=a.G(),this.g(\"resizeCellSize\",b,a))}},rotateAdornmentTemplate:{get:function(){return this.mp},set:function(a){var b=this.mp;b!==a&&(this.mp=a,this.g(\"rotateAdornmentTemplate\",b,a))}},rotateObjectName:{get:function(){return this.np},set:function(a){var b=this.np;b!==a&&(this.np=a,this.g(\"rotateObjectName\",b,a))}},rotateObject:{\nget:function(){var a=this.rotateObjectName;return\"\"!==a&&(a=this.Xa(a),null!==a)?a:this}},rotationSpot:{get:function(){return this.op},set:function(a){var b=this.op;b.w(a)||(this.op=a=a.G(),this.g(\"rotationSpot\",b,a))}},text:{get:function(){return this.Tb},set:function(a){var b=this.Tb;b!==a&&(this.Tb=a,this.g(\"text\",b,a))}},containingGroup:{get:function(){return this.di},set:function(a){if(this.Wb()){var b=\nthis.di;if(b!==a){null===a||this!==a&&!a.Wd(this)||(this===a&&B(\"Cannot make a Group a member of itself: \"+this.toString()),B(\"Cannot make a Group indirectly contain itself: \"+this.toString()+\" already contains \"+a.toString()));this.C(2);var c=this.diagram;null!==b?Go(b,this):this instanceof T&&null!==c&&c.zh.remove(this);this.di=a;null!==a?Fo(a,this):this instanceof T&&null!==c&&c.zh.add(this);this.C(1);if(null!==c&&c.Z){var d=this.data,e=c.model;if(null!==d&&e.jk()){var f=e.ja(null!==a?a.data:null);\ne.Mt(d,f)}}d=this.containingGroupChanged;null!==d&&(e=!0,null!==c&&(e=c.Z,c.Z=!0),d(this,b,a),null!==c&&(c.Z=e));if(this instanceof T)for(c=new F,Sk(c,this,!0,0,!0),c=c.iterator;c.next();)if(d=c.value,d instanceof W)for(d=d.linksConnected;d.next();)Lo(d.value);if(this instanceof W){for(c=this.linksConnected;c.next();)Lo(c.value);c=this.labeledLink;null!==c&&Lo(c)}this.g(\"containingGroup\",b,a);null!==a&&(b=a.layer,null!==b&&ji(b,-1,a))}}else B(\"cannot set the Part.containingGroup of a Link or Adornment\")}},\ncontainingGroupChanged:{get:function(){return this.hn},set:function(a){var b=this.hn;b!==a&&(this.hn=a,this.g(\"containingGroupChanged\",b,a))}},isTopLevel:{get:function(){return null!==this.containingGroup||this instanceof W&&null!==this.labeledLink?!1:!0}},layoutConditions:{get:function(){return this.no},set:function(a){var b=this.no;b!==a&&(this.no=a,this.g(\"layoutConditions\",b,a))}},dragComputation:{\nget:function(){return this.An},set:function(a){var b=this.An;b!==a&&(this.An=a,this.g(\"dragComputation\",b,a))}},shadowOffset:{get:function(){return this.Ep},set:function(a){var b=this.Ep;b.w(a)||(this.Ep=a=a.G(),this.M(),this.g(\"shadowOffset\",b,a))}},shadowColor:{get:function(){return this.Dp},set:function(a){var b=this.Dp;b!==a&&(this.Dp=a,this.M(),this.g(\"shadowColor\",b,a))}},shadowBlur:{get:function(){return this.df},\nset:function(a){var b=this.df;b!==a&&(this.df=a,this.M(),this.g(\"shadowBlur\",b,a))}}});U.prototype.invalidateLayout=U.prototype.C;U.prototype.findCommonContainingGroup=U.prototype.Ix;U.prototype.isMemberOf=U.prototype.Wd;U.prototype.findTopLevelPart=U.prototype.uz;U.prototype.findSubGraphLevel=U.prototype.qz;U.prototype.ensureBounds=U.prototype.yb;U.prototype.getDocumentBounds=U.prototype.lm;U.prototype.getRelativePoint=U.prototype.vf;U.prototype.findObject=U.prototype.Xa;U.prototype.moveTo=U.prototype.moveTo;\nU.prototype.invalidateAdornments=U.prototype.Lb;U.prototype.clearAdornments=U.prototype.Yj;U.prototype.removeAdornment=U.prototype.Af;U.prototype.addAdornment=U.prototype.Ch;U.prototype.findAdornment=U.prototype.fk;U.prototype.updateTargetBindings=U.prototype.Ba;var Do=!1;U.className=\"Part\";U.LayoutNone=0;U.LayoutAdded=1;U.LayoutRemoved=2;U.LayoutShown=4;U.LayoutHidden=8;U.LayoutNodeSized=16;U.LayoutGroupLayout=32;U.LayoutNodeReplaced=64;U.LayoutStandard=127;U.LayoutAll=16777215;\nfunction Je(a){U.call(this,a);this.D&=-257;this.eh=\"Adornment\";this.ae=null;this.ax=0;this.qx=!1;this.l=[];this.Sa=null}la(Je,U);Je.prototype.toString=function(){var a=this.adornedPart;return\"Adornment(\"+this.category+\")\"+(null!==a?a.toString():\"\")};Je.prototype.updateRelationshipsFromData=function(){};\nJe.prototype.nk=function(a){var b=this.adornedObject.part;if(b instanceof S&&this.adornedObject instanceof Lf){var c=b.path;b.nk(a);a=c.geometry;b=this.W.j;c=b.length;for(var d=0;da&&(a=1);var b=this.diagram;if(null!==b&&!b.Ce){b.Ce=!0;var c=new F;c.add(this);Wo(this,c,b.isTreePathToChildren,a,b,this,b.treeCollapsePolicy===pi);b.Ce=!1}};function Wo(a,b,c,d,e,f,g){if(1a&&(a=2);var b=this.diagram;if(null!==b&&!b.Ce){b.Ce=!0;var c=new F;c.add(this);Yo(this,c,b.isTreePathToChildren,a,b,this,b.treeCollapsePolicy===pi);b.Ce=!1}};\nfunction Yo(a,b,c,d,e,f,g){for(var h=f===a?!1:a.isTreeExpanded,k=c?a.lq():a.vd();k.next();){var l=k.value;l.isTreeLink&&(h||l.kd||l.Oa(),l=l.pt(a),null!==l&&l!==a&&!b.contains(l)&&(b.add(l),h||(l.Ob(!0),l.Jh(),g&&e.Vj(l,f)),2e&&(e=h.right);h.bottom>f&&(f=h.bottom)}}isFinite(c)&&isFinite(d)?a.h(c,d,e-c,f-d):(b=b.location,\na.h(b.x,b.y,0,0));return a};ma.Object.defineProperties(xg.prototype,{padding:{get:function(){return this.bb},set:function(a){\"number\"===typeof a&&(a=new oc(a));var b=this.bb;b.w(a)||(this.bb=a=a.G(),this.g(\"padding\",b,a))}}});xg.className=\"Placeholder\";\nfunction S(){U.call(this,X.Link);this.Qa=8;this.Qe=null;this.Re=\"\";this.lf=this.Mn=null;this.mf=\"\";this.Vp=null;this.Dk=bg;this.pn=0;this.rn=bg;this.sn=NaN;this.Lj=cp;this.Ip=.5;this.ad=null;this.wb=(new E).freeze();this.oh=this.jh=null;this.El=new N;this.ka=new td;this.Yn=!0;this.I=this.u=this.Kf=this.Tf=null;this.l=[];this.Vu=new I;this.Gr=this.mx=this.lx=null;this.qu=NaN;this.O=null}la(S,U);\nS.prototype.cloneProtected=function(a){U.prototype.cloneProtected.call(this,a);a.Qa=this.Qa&-113;a.Re=this.Re;a.Mn=this.Mn;a.mf=this.mf;a.Vp=this.Vp;a.Dk=this.Dk;a.pn=this.pn;a.rn=this.rn;a.sn=this.sn;a.Lj=this.Lj;a.Ip=this.Ip;null!==this.O&&(a.O=this.O.copy())};t=S.prototype;t.sf=function(a){U.prototype.sf.call(this,a);this.Re=a.Re;this.mf=a.mf;a.jh=null;a.Oa();a.Kf=this.Kf;var b=a.fromPort;null!==b&&Po(a.fromNode,b);b=a.toPort;null!==b&&Po(a.toNode,b)};\nt.cb=function(a){a.classType===S?2===(a.value&2)?this.routing=a:a===qg||a===ag||a===$f?this.curve=a:a===dp||a===ep||a===fp?this.adjusting=a:a!==cp&&a!==bg&&B(\"Unknown Link enum value for a Link property: \"+a):U.prototype.cb.call(this,a)};t.Ec=function(){null===this.O&&(this.O=new dl)};t.bj=function(){var a=this.fromNode;if(null!==a){var b=a.findVisibleNode();null!==b&&(a=b);if(rj(a)||sj(a))return!1}a=this.toNode;return null!==a&&(b=a.findVisibleNode(),null!==b&&(a=b),rj(a)||sj(a))?!1:!0};t.gw=function(){return!1};\nt.hw=function(){};t.Wb=function(){return!1};S.prototype.computeAngle=function(a,b,c){return S.computeAngle(b,c)};S.computeAngle=function(a,b){switch(a){default:case bg:a=0;break;case In:a=b;break;case Nm:a=b+90;break;case Pm:a=b-90;break;case gp:a=b+180;break;case hp:a=J.zq(b);90a&&(a-=180);break;case Om:a=J.zq(b+90);90a&&(a-=180);break;case Qm:a=J.zq(b-90);90a&&(a-=180);break;case Rm:a=J.zq(b);if(45a||225a)return 0;90a&&(a-=180)}return J.zq(a)};\nfunction Lo(a){var b=a.fromNode,c=a.toNode,d=null;null!==b?d=null!==c?b.Ix(c):b.containingGroup:null!==c?d=c.containingGroup:d=null;b=d;c=a.di;if(c!==b){null!==c&&Go(c,a);a.di=b;null!==b&&Fo(b,a);var e=a.containingGroupChanged;if(null!==e){var f=!0,g=a.diagram;null!==g&&(f=g.Z,g.Z=!0);e(a,c,b);null!==g&&(g.Z=f)}!a.kd||a.lx!==c&&a.mx!==c||a.Oa()}if(a.isLabeledLink)for(a=a.labelNodes;a.next();)a.value.containingGroup=d}t=S.prototype;\nt.Jh=function(){var a=this.containingGroup;null!==a&&this.fromNode!==a&&this.toNode!==a&&a.computesBoundsIncludingLinks&&U.prototype.Jh.call(this)};t.pt=function(a){var b=this.fromNode;return a===b?this.toNode:b};t.Fz=function(a){var b=this.fromPort;return a===b?this.toPort:b};function To(a,b){null===a.ad&&(a.ad=new F);a.ad.add(b);a.o()}\nt.qq=function(a){U.prototype.qq.call(this,a);ip(this)&&this.tq(this.actualBounds);if(!a){a=this.Qe;var b=null;null!==a&&(b=this.fromPort,Ro(a,this,b));var c=this.lf;if(null!==c){var d=this.toPort;c===a&&d===b||Ro(c,this,d)}jp(this)}};t.rq=function(a){U.prototype.rq.call(this,a);ip(this)&&this.tq(this.actualBounds);if(!a){a=this.Qe;var b=null;null!==a&&(b=this.fromPort,So(a,this,b));var c=this.lf;if(null!==c){var d=this.toPort;c===a&&d===b||So(c,this,d)}kp(this)}};\nt.dk=function(){this.kd=!0;if(null!==this.ad){var a=this.diagram;if(null!==a)for(var b=this.ad.copy().iterator;b.next();)a.remove(b.value)}null!==this.data&&(a=this.diagram,null!==a&&a.partManager.removeDataForLink(this))};S.prototype.updateRelationshipsFromData=function(){if(null!==this.data){var a=this.diagram;null!==a&&a.partManager.updateRelationshipsFromData(this)}};\nS.prototype.move=function(a,b){var c=b?this.location:this.position,d=c.x;isNaN(d)&&(d=0);var e=c.y;isNaN(e)&&(e=0);d=a.x-d;e=a.y-e;!0===b?U.prototype.move.call(this,a,!1):(a=I.allocAt(c.x+d,c.y+e),U.prototype.move.call(this,a,!1),I.free(a));qf(this,d,e);for(a=this.labelNodes;a.next();)b=a.value,c=b.position,b.moveTo(c.x+d,c.y+e)};\nS.prototype.canRelinkFrom=function(){if(!this.relinkableFrom)return!1;var a=this.layer;if(null===a)return!0;if(!a.allowRelink)return!1;a=a.diagram;return null===a||a.allowRelink?!0:!1};S.prototype.canRelinkTo=function(){if(!this.relinkableTo)return!1;var a=this.layer;if(null===a)return!0;if(!a.allowRelink)return!1;a=a.diagram;return null===a||a.allowRelink?!0:!1};\nS.prototype.computeMidPoint=function(a){var b=this.pointsCount;if(0===b)return a.assign(Jb),a;if(1===b)return a.assign(this.i(0)),a;if(2===b){var c=this.i(0),d=this.i(1);a.h((c.x+d.x)/2,(c.y+d.y)/2);return a}if(this.isOrthogonal&&(15<=this.computeCorner()||this.computeCurve()===qg))return this.ka.yv(.5,a),a.add(this.i(0)),c=this.ka.figures.first(),a.offset(-c.startX,-c.startY),a;if(this.computeCurve()===qg){if(3===b)return this.i(1);d=(b-1)/3|0;c=3*(d/2|0);if(1===d%2){d=this.i(c);var e=this.i(c+1),\nf=this.i(c+2);c=this.i(c+3);J.Qy(d.x,d.y,e.x,e.y,f.x,f.y,c.x,c.y,a)}else a.assign(this.i(c));return a}var g=this.flattenedLengths;c=this.flattenedTotalLength;for(e=f=d=0;dc/2)break;d+=e;f++}b=this.i(f);f=this.i(f+1);1>Math.abs(b.x-f.x)?b.y>f.y?a.h(b.x,b.y-(c/2-d)):a.h(b.x,b.y+(c/2-d)):1>Math.abs(b.y-f.y)?b.x>f.x?a.h(b.x-(c/2-d),b.y):a.h(b.x+(c/2-d),b.y):(c=(c/2-d)/e,a.h(b.x+c*(f.x-b.x),b.y+c*(f.y-b.y)));return a};\nS.prototype.computeMidAngle=function(){var a=this.pointsCount;if(2>a)return NaN;if(2===a)return this.i(0).Ta(this.i(1));if(this.isOrthogonal&&(15<=this.computeCorner()||this.computeCurve()===qg))return this.ka.Ox(.5);if(this.computeCurve()===qg&&4<=a){var b=(a-1)/3|0,c=3*(b/2|0);if(1===b%2){c=Math.floor(c);a=this.i(c);b=this.i(c+1);var d=this.i(c+2);c=this.i(c+3);return J.Py(a.x,a.y,b.x,b.y,d.x,d.y,c.x,c.y)}if(0d/2)break;e+=f;c++}b=this.i(c);d=this.i(c+1);if(1>Math.abs(b.x-d.x)&&1>Math.abs(b.y-d.y)){if(0Math.abs(b.x-d.x))return b.y>d.y?270:90;if(1>Math.abs(b.y-d.y))return b.x>d.x?180:0}return b.Ta(d)};t=S.prototype;t.i=function(a){return this.wb.j[a]};t.hd=function(a,b){this.wb.gd(a,b)};t.K=function(a,b,c){this.wb.gd(a,new I(b,c))};t.Rz=function(a,b){this.wb.Kb(a,b)};\nt.m=function(a,b,c){this.wb.Kb(a,new I(b,c))};t.xe=function(a){this.wb.add(a)};t.qf=function(a,b){this.wb.add(new I(a,b))};t.Xv=function(a){this.wb.lb(a)};t.Zj=function(){this.wb.clear()};\nfunction qf(a,b,c){if(0!==b||0!==c){for(var d=a.kd,e=new E,f=a.wb.iterator;f.next();){var g=f.value;e.add((new I(g.x+b,g.y+c)).freeze())}e.freeze();f=a.wb;a.wb=e;g=a.diagram;isNaN(b)||isNaN(c)||null!==g&&g.animationManager.qc?a.o():(a.cg.h(a.cg.x+b,a.cg.y+c),a.ma.h(a.ma.x+b,a.ma.y+c),Cl(a));d&&lp(a);null!==g&&g.animationManager.qc&&(a.oh=e);a.g(\"points\",f,e)}}t.Nh=function(){null===this.jh&&(this.jh=this.wb,this.wb=this.wb.copy())};\nt.rf=function(){if(null!==this.jh){for(var a=this.jh,b=this.wb,c=Infinity,d=Infinity,e=a.j,f=e.length,g=0;gl&&(n=-n),u=(0>k?-1:1)*n+r,v=m*(u-r)+q);r=g.x+2*h/3;q=g.y+2*k/3;var w=r,y=q;J.A(k,0)?y=0k?-1:1)*n+r,y=m*(w-r)+q);this.Zj();this.xe(g);this.qf(u,v);this.qf(w,y);this.xe(p);this.hd(0,this.getLinkPoint(b,c,d,!0,!1,e,f));this.hd(3,this.getLinkPoint(e,f,a,!1,!1,b,c))}else d=this.getLinkPoint(b,c,d,!0,!1,e,f),a=this.getLinkPoint(e,\nf,a,!1,!1,b,c),this.hasCurviness()?(p=a.x-d.x,e=a.y-d.y,f=this.computeCurviness(),b=d.x+p/2,c=d.y+e/2,g=b,h=c,J.A(e,0)?h=0f&&(g=-g),g=(0>e?-1:1)*g+b,h=p*(g-b)+c),this.xe(d),this.qf(g,h)):this.xe(d),this.xe(a)}else{n=this.isAvoiding;p&&(m&&n||l)&&this.Zj();var z=l?this.computeCurviness():0;n=this.getLinkPoint(b,c,d,!0,m,e,f);r=u=q=0;if(m||!h||l)v=this.computeEndSegmentLength(b,c,d,!0),r=this.getLinkDirection(b,c,n,d,!0,m,e,f),l&&(h||d.w(a)||!m&&1===d.x+\na.x&&1===d.y+a.y)&&(r-=m?90:30,0>z&&(r-=180)),0>r?r+=360:360<=r&&(r-=360),l&&(v+=Math.abs(z)*(m?1:2)),0===r?q=v:90===r?u=v:180===r?q=-v:270===r?u=-v:(q=v*Math.cos(r*Math.PI/180),u=v*Math.sin(r*Math.PI/180)),d.jc()&&l&&(v=c.ga(Ac,I.alloc()),w=I.allocAt(v.x+1E3*q,v.y+1E3*u),this.getLinkPointFromPoint(b,c,v,w,!0,n),I.free(v),I.free(w));v=this.getLinkPoint(e,f,a,!1,m,b,c);var A=y=w=0;if(m||!k||l){var C=this.computeEndSegmentLength(e,f,a,!1);A=this.getLinkDirection(e,f,v,a,!1,m,b,c);l&&(k||d.w(a)||!m&&\n1===d.x+a.x&&1===d.y+a.y)&&(A+=m?0:30,0>z&&(A+=180));0>A?A+=360:360<=A&&(A-=360);l&&(C+=Math.abs(z)*(m?1:2));0===A?w=C:90===A?y=C:180===A?w=-C:270===A?y=-C:(w=C*Math.cos(A*Math.PI/180),y=C*Math.sin(A*Math.PI/180));a.jc()&&l&&(a=f.ga(Ac,I.alloc()),d=I.allocAt(a.x+1E3*w,a.y+1E3*y),this.getLinkPointFromPoint(e,f,a,d,!1,v),I.free(a),I.free(d))}a=n;if(m||!h||l)a=new I(n.x+q,n.y+u);d=v;if(m||!k||l)d=new I(v.x+w,v.y+y);!p&&!m&&h&&3Math.abs(b.y-a.y)?(b.x>=a.x?b.x=a.x+9E9:b.x=a.x-9E9,b.y=a.y):(b.y>=a.y?b.y=a.y+9E9:b.y=a.y-9E9,b.x=a.x);return b}\nS.prototype.getLinkPointFromPoint=function(a,b,c,d,e,f){void 0===f&&(f=new I);if(null===a||null===b)return f.assign(c),f;a.isVisible()||(e=a.findVisibleNode(),null!==e&&e!==a&&(b=e.port));a=null;e=b.panel;null===e||e.$d()||(e=e.panel);if(null===e){e=d.x;d=d.y;var g=c.x;c=c.y}else{a=e.ud;e=1/(a.m11*a.m22-a.m12*a.m21);g=a.m22*e;var h=-a.m12*e,k=-a.m21*e,l=a.m11*e,m=e*(a.m21*a.dy-a.m22*a.dx),n=e*(a.m12*a.dx-a.m11*a.dy);e=d.x*g+d.y*k+m;d=d.x*h+d.y*l+n;g=c.x*g+c.y*k+m;c=c.x*h+c.y*l+n}b.hk(e,d,g,c,f);null!==\na&&f.transform(a);return f};function pp(a,b){var c=b.ep;null===c&&(c=new qp,c.port=b,c.node=b.part,b.ep=c);return rp(c,a)}\nS.prototype.getLinkPoint=function(a,b,c,d,e,f,g,h){void 0===h&&(h=new I);if(c.eb()&&!np(c))return b.ga(c,h),h;if(c.yf()){var k=pp(this,b);if(null!==k){h.assign(k.wq);if(e&&this.routing===sp){var l=pp(this,g);if(null!==l&&k.em=m.y&&a.y<=m.y+m.height?h.y=a.y:(c.wf(Hc)||c.wf(Kc))&&a.x>=m.x&&a.x<=m.x+m.width&&(h.x=a.x);I.free(k);I.free(l)}}return h}}c=\nb.ga(.5===c.x&&.5===c.y?c:Ac,I.alloc());this.pointsCount>(e?6:2)?(g=d?this.i(1):this.i(this.pointsCount-2),e&&(g=op(c,g.copy()))):(k=this.computeSpot(!d,g),f=I.alloc(),g=g.ga(.5===k.x&&.5===k.y?k:Ac,f),e&&(g=op(c,g)),I.free(f));this.getLinkPointFromPoint(a,b,c,g,d,h);I.free(c);return h};\nS.prototype.getLinkDirection=function(a,b,c,d,e,f,g,h){a:if(d.eb())var k=d.x>d.y?d.x>1-d.y?0:d.x<1-d.y?270:315:d.x1-d.y?90:d.x<1-d.y?180:135:.5>d.x?225:.5(f?6:2)?(h=e?this.i(1):this.i(this.pointsCount-2),h=f?op(k,h.copy()):c):(c=I.alloc(),h=h.ga(Ac,c),I.free(c));c=Math.abs(h.x-k.x)>Math.abs(h.y-k.y)?h.x>=\nk.x?0:180:h.y>=k.y?90:270;I.free(k);k=c}d.jc()&&g.Wd(a)&&(k+=180,360<=k&&(k-=360));if(np(d))return k;a=b.Xi();if(0===a)return k;45<=a&&135>a?k+=90:135<=a&&225>a?k+=180:225<=a&&315>a&&(k+=270);360<=k&&(k-=360);return k};S.prototype.computeEndSegmentLength=function(a,b,c,d){if(null!==b&&c.yf()&&(a=pp(this,b),null!==a))return a.ov;a=d?this.fromEndSegmentLength:this.toEndSegmentLength;null!==b&&isNaN(a)&&(a=d?b.fromEndSegmentLength:b.toEndSegmentLength);isNaN(a)&&(a=10);return a};\nS.prototype.computeSpot=function(a,b){void 0===b&&(b=null);a?(a=b?b:this.fromPort,null===a?a=Ac:(b=this.fromSpot,b.Mb()&&(b=a.fromSpot),a=b===Zc?uc:b)):(a=b?b:this.toPort,null===a?a=Ac:(b=this.toSpot,b.Mb()&&(b=a.toSpot),a=b===Zc?uc:b));return a};function np(a){return a===uc||.5===a.x&&.5===a.y}S.prototype.computeOtherPoint=function(a,b){if(this.computeAdjusting()!==bg&&4p.width||n.y>p.height||0>n.x+n.width||0>n.y+n.height)){n=rd.alloc();n.set(g);\nif(m instanceof X)h=m.tf(a,b,c,d,e,n);else if(this.path===m){if(m instanceof Lf)if(h=a,p=d,!1===m.pickable)h=!1;else if(n.multiply(m.transform),p)b:{var r=h,q=n;if(m.Gh(r,q))h=!0;else{if(void 0===q&&(q=m.transform,r.ze(m.actualBounds))){h=!0;break b}h=r.left;p=r.right;var u=r.top;r=r.bottom;var v=I.alloc(),w=I.alloc(),y=I.alloc(),z=rd.alloc();z.set(q);z.Lv(m.transform);z.tt();w.x=p;w.y=u;w.transform(z);v.x=h;v.y=u;v.transform(z);q=!1;Gn(m,v,w,y)?q=!0:(v.x=p,v.y=r,v.transform(z),Gn(m,v,w,y)?q=!0:(w.x=\nh,w.y=r,w.transform(z),Gn(m,v,w,y)?q=!0:(v.x=h,v.y=u,v.transform(z),Gn(m,v,w,y)&&(q=!0))));rd.free(z);I.free(v);I.free(w);I.free(y);h=q}}else h=m.Gh(h,n)}else h=jl(m,a,d,n);h&&(p=m,null!==b&&(p=b(m)),p&&(null===c||c(p))&&e.add(p));rd.free(n)}}}void 0===f&&rd.free(g);return h||null!==this.background||null!==this.areaBackground}void 0===f&&rd.free(g);return!1};\nS.prototype.computeCurve=function(){if(null===this.Tf){var a=this.fromPort,b=this.isOrthogonal;this.Tf=null!==a&&a===this.toPort&&!b}return this.Tf?qg:this.curve};S.prototype.computeCorner=function(){if(this.curve===qg)return 0;var a=this.corner;if(isNaN(a)||0>a)a=10;return a};\nS.prototype.findMidLabel=function(){for(var a=this.path,b=this.W.j,c=b.length,d=0;dk?-Math.PI/2:Math.PI/2;else m=Math.atan(k/Math.abs(h)),0>h&&(m=Math.PI-m);g=b.x;var n=b.y;h=d.x-g;var p=d.y-n;k=Math.sqrt(h*h+p*p);J.$(h,0)?p=0>p?-Math.PI/2:Math.PI/2:(p=Math.atan(p/Math.abs(h)),0>h&&(p=Math.PI-p));l=\nk/l;m=p-m;this.hd(a,b);for(a+=1;ak?-Math.PI/2:Math.PI/2:(k=Math.atan(k/Math.abs(h)),0>h&&(k=Math.PI-k)),h=k+m,b*=l,this.K(a,g+b*Math.cos(h),n+b*Math.sin(h)));this.hd(c,d)}}return!0;case fp:f=this.i(a);n=this.i(c);if(!f.Ma(b)||!n.Ma(d)){e=f.x;f=f.y;g=n.x;n=n.y;l=(g-e)*(g-e)+(n-f)*(n-f);h=b.x;m=b.y;k=d.x;p=d.y;var r=1;if(0!==k-h){var q=(p-m)/(k-h);r=Math.sqrt(1+1/(q*q))}else q=9E9;this.hd(a,b);for(a+=1;ab?0:45<=b&&135>b?90:135<=b&&225>b?180:270;d=-45<=d&&45>d?0:45<=d&&135>d?90:135<=d&&225>d?180:270;var g=e.actualBounds.copy(),h=f.actualBounds.copy();if(g.v()&&h.v()){g.Vc(8,8);h.Vc(8,8);g.He(a);h.He(c);if(0===b)if(c.x>a.x||270===d&&c.ya.x||90===d&&c.y>a.y&&h.right>a.x){var k=new I(c.x,a.y);var l=new I(c.x,(a.y+c.y)/2);180===d?(k.x=this.computeMidOrthoPosition(a.x,a.y,c.x,c.y,!1),l.x=k.x,l.y=c.y):270===d&&c.ya.y?(k.x=a.xh.bottom)?this.computeMidOrthoPosition(a.x,a.y,c.x,c.y,!1):h.right,l.x=k.x,l.y=c.y):0===d&&a.xh.top&&a.yg.bottom)180===d&&(h.aa(a)||g.aa(c))?k.y=this.computeMidOrthoPosition(a.x,a.y,c.x,c.y,!0):\nc.ya.y&&(180===d||270===d)&&(k.y=this.computeMidOrthoPosition(a.x,g.bottom,c.x,Math.min(c.y,h.top),!0)),l.x=c.x,l.y=k.y;if(k.y>g.top&&k.y=g.left&&c.x<=a.x||a.x<=h.right&&a.x>=c.x){if(90===d||270===d)k=new I(Math.max((a.x+c.x)/2,a.x),a.y),l=new I(k.x,c.y)}else k.y=270===d||(0===d||180===d)&&c.ya.y&&h.lefta.y?(k.x=a.x>h.right?this.computeMidOrthoPosition(a.x,a.y,h.right,c.y,!1):a.x>h.left&&(270===d&&a.yh.bottom)?this.computeMidOrthoPosition(a.x,a.y,c.x,c.y,!1):h.left,l.x=k.x,l.y=c.y):180===d&&a.x>h.right&&a.y>h.top&&a.y<\nh.bottom&&(k.x=a.x,k.y=a.yg.bottom)0===d&&(h.aa(a)||g.aa(c))?k.y=this.computeMidOrthoPosition(a.x,a.y,c.x,c.y,!0):c.ya.y&&(0===d||270===d)&&(k.y=this.computeMidOrthoPosition(a.x,g.bottom,c.x,Math.min(c.y,h.top),!0)),l.x=c.x,l.y=k.y;if(k.y>g.top&&k.y=a.x||a.x>=h.left&&a.x<=c.x){if(90===d||270===d)k=new I(Math.min((a.x+c.x)/2,a.x),a.y),l=new I(k.x,c.y)}else k.y=270===d||(0===d||180===d)&&c.ya.y||180===d&&c.xa.y||0===d&&c.x>a.x&&h.bottom>a.y)k=new I(a.x,c.y),l=new I((a.x+c.x)/2,c.y),270===d?(k.y=this.computeMidOrthoPosition(a.x,a.y,c.x,c.y,!0),l.x=c.x,l.y=k.y):180===\nd&&c.xa.x?(k.y=a.yh.right)?this.computeMidOrthoPosition(a.x,a.y,c.x,c.y,!0):h.bottom,l.x=c.x,l.y=k.y):90===d&&a.yh.left&&a.xg.right)270===d&&(h.aa(a)||g.aa(c))?k.x=this.computeMidOrthoPosition(a.x,\na.y,c.x,c.y,!1):c.xa.x&&(270===d||180===d)&&(k.x=this.computeMidOrthoPosition(g.right,a.y,Math.min(c.x,h.left),c.y,!1)),l.x=k.x,l.y=c.y;if(k.x>g.left&&k.x=g.top&&c.y<=a.y||a.y<=h.bottom&&a.y>=c.y){if(0===d||180===d)k=new I(a.x,Math.max((a.y+c.y)/2,a.y)),l=new I(c.x,k.y)}else k.x=180===d||(90===d||270===d)&&c.xa.x&&h.top=a.x?(k.y=a.y>h.bottom?this.computeMidOrthoPosition(a.x,a.y,c.x,h.bottom,!0):a.y>h.top&&(180===d&&a.xh.right)?this.computeMidOrthoPosition(a.x,a.y,c.x,c.y,!0):h.top,l.x=c.x,l.y=k.y):270===d&&a.y>h.bottom&&a.x>\nh.left&&a.xg.right)90===d&&(h.aa(a)||g.aa(c))?k.x=this.computeMidOrthoPosition(a.x,a.y,c.x,c.y,!1):c.xa.x&&(90===d||180===d)&&(k.x=this.computeMidOrthoPosition(g.right,a.y,Math.min(c.x,h.left),c.y,!1)),l.x=k.x,l.y=c.y;if(k.x>g.left&&\nk.x=a.y||a.y>=h.top&&a.y<=c.y){if(0===d||180===d)k=new I(a.x,Math.min((a.y+c.y)/2,a.y)),l=new I(c.x,k.y)}else k.x=180===d||(90===d||270===d)&&c.x=wp&&(vk(q),h=q.$z,g.Vc(q.dm*h,q.cm*\nh),up(q,a,b,p,d,g),h=vp(q,p.x,p.y));!q.abort&&h>=wp&&q.CA&&(vk(q),up(q,a,b,p,d,q.bounds),h=vp(q,p.x,p.y));if(!q.abort&&hthis.pointsCount)0===b||180===b?(g.x=a.x,g.y=p.y):(g.x=p.x,g.y=a.y),this.K(2,g.x,g.y),this.m(3,g.x,g.y);else if(p=this.i(3),0===b||180===b)J.A(g.x,p.x)?(g=0===b?Math.max(g.x,a.x):Math.min(g.x,a.x),this.K(2,g,a.y),this.K(3,g,p.y)):J.A(g.y,p.y)?(Math.abs(a.y-g.y)<=q.cm/2&&(this.K(2,g.x,a.y),this.K(3,p.x,a.y)),this.m(2,\ng.x,a.y)):this.K(2,a.x,g.y);else if(90===b||270===b)J.A(g.y,p.y)?(g=90===b?Math.max(g.y,a.y):Math.min(g.y,a.y),this.K(2,a.x,g),this.K(3,p.x,g)):J.A(g.x,p.x)?(Math.abs(a.x-g.x)<=q.dm/2&&(this.K(2,a.x,g.y),this.K(3,a.x,p.y)),this.m(2,a.x,g.y)):this.K(2,g.x,a.y);null!==c&&(a=this.i(1),p=this.i(2),a.x!==p.x&&a.y!==p.y?0===b||180===b?this.m(2,a.x,p.y):this.m(2,p.x,a.y):0===b||180===b?this.m(2,e.x,c.y):this.m(2,c.x,e.y));null!==u&&(0===d||180===d?this.qf(f.x,u.y):this.qf(u.x,f.y));b=!0}else b=!1}}}else b=\n!1;b||(this.xe(k),this.xe(l))}};S.prototype.computeMidOrthoPosition=function(a,b,c,d,e){var f=0;this.hasCurviness()&&(f=this.computeCurviness());return e?(b+d)/2+f:(a+c)/2+f};function Oj(a){if(null===a.diagram||!a.isAvoiding||!rk(a.diagram))return!1;var b=a.points.j,c=b.length;if(4>c)return!1;a=sk(a.diagram,!0,a.containingGroup,null);for(var d=1;dzp&&vp(b,l,m)===k-1;)c=l,d=m,0===e?l+=g:90===e?m+=h:180===e?l-=g:m-=h,--k;if(f){if(k>zp)if(180===e||0===e)c=Math.floor(c/g)*g+g/2;else if(90===e||270===e)d=Math.floor(d/h)*h+h/2}else c=Math.floor(c/g)*g+g/2,d=Math.floor(d/h)*h+h/2;k>zp&&(f=e,l=c,m=d,0===e?(f=90,m+=h):90===e?(f=180,l-=g):180===e?(f=270,m-=h):270===e&&(f=0,l+=g),vp(b,l,m)===k-1?yp(a,b,l,m,f,!1):(l=c,m=d,0===e?(f=270,m-=h):90===\ne?(f=0,l+=g):180===e?(f=90,m+=h):270===e&&(f=180,l-=g),vp(b,l,m)===k-1&&yp(a,b,l,m,f,!1)));a.qf(c,d)}S.prototype.gz=function(a){var b=a.x;a=a.y;for(var c=this.i(0),d=this.i(1),e=Ab(b,a,c.x,c.y,d.x,d.y),f=0,g=1;gb)return a.type=wd,this.Yn=!1,a;var c=!1,d=this.diagram;null!==d&&ip(this)&&d.Sg.contains(this)&&(0!==this.El.width||0!==this.El.height)&&(c=!0);var e=this.i(0).copy(),f=e.copy();d=this.wb.j;var g=this.computeCurve();if(g===qg&&3<=b&&!J.$(this.smoothness,0))if(3===b){var h=this.i(1);d=Math.min(e.x,h.x);var k=Math.min(e.y,h.y);h=this.i(2);d=Math.min(d,h.x);k=Math.min(k,h.y)}else{if(this.isOrthogonal)for(k=0;k=b&&(d=b-1),k=this.i(d),f.x=Math.min(k.x,f.x),f.y=Math.min(k.y,f.y);d=f.x;k=f.y}else{for(k=0;kv?q>r?(g.x=w-z,g.y=r-z,b.x=w+u,b.y=r+u):(g.x=\nw-z,g.y=r+z,b.x=w+u,b.y=r-u):q>r?(g.x=w+z,g.y=r-z,b.x=w-u,b.y=r+u):(g.x=w+z,g.y=r+z,b.x=w-u,b.y=r-u));J.$(v,w)&&J.$(r,q)&&(r>p?(y>w?(g.x=w-z,g.y=r-z,b.x=w+u):(g.x=w+z,g.y=r-z,b.x=w-u),b.y=r+u):(y>w?(g.x=w-z,g.y=r+z,b.x=w+u):(g.x=w+z,g.y=r+z,b.x=w-u),b.y=r-u));if(J.$(v,w)&&J.$(w,y)||J.$(p,r)&&J.$(r,q))v=.5*(v+y),p=.5*(p+q),g.x=v,g.y=p,b.x=v,b.y=p;1===n?(e.x=.5*(c.x+l.x),e.y=.5*(c.y+l.y)):2===n&&J.$(c.x,this.i(0).x)&&J.$(c.y,this.i(0).y)&&(e.x=.5*(c.x+l.x),e.y=.5*(c.y+l.y));Ld(h,e.x-d,e.y-k,g.x-d,g.y-\nk,l.x-d,l.y-k);f.set(g);e.set(b);c=l}}f=c.x;c=c.y;e=this.i(this.pointsCount-1);0!==this.computeShortLength(!1)&&(e=Ap(this,e.copy(),!1,Fb));f=.5*(f+e.x);c=.5*(c+e.y);Ld(h,b.x-d,b.y-k,f-d,c-k,e.x-d,e.y-k)}else for(c=3;c=b&&(c=b-1),e=this.i(c-1),g=this.i(c),c===b-1&&0!==this.computeShortLength(!1)&&(g=Ap(this,g.copy(),!1,Fb)),Ld(h,f.x-d,f.y-k,e.x-d,e.y-k,g.x-d,g.y-k);else{f=I.alloc();f.assign(this.i(0));g=1;for(e=0;g=b-1){if(!f.w(m))0!==\nthis.computeShortLength(!1)&&(m=Ap(this,m.copy(),!1,Fb)),Dp(this,h,-d,-k,f,m,c);else if(0===e)for(g=1;gf.x?w=m.x-p:w=m.x+p,n.y>m.y?q=m.y+u:q=m.y-u,Dp(this,h,g,l,f,new I(w,r),v),Qd(h,m.x+g,m.y+l,y+g,q+l),\nf.h(y,q))):J.A(f.x,m.x)&&J.A(m.y,n.y)?(p=this.computeCorner(),p=Math.min(p,Math.abs(m.y-f.y)/2),p=u=Math.min(p,Math.abs(n.x-m.x)/2),J.A(u,0)?(Dp(this,h,g,l,f,m,v),f.assign(m)):(w=m.x,r=m.y,y=w,q=r,m.y>f.y?r=m.y-p:r=m.y+p,n.x>m.x?y=m.x+u:y=m.x-u,Dp(this,h,g,l,f,new I(w,r),v),Qd(h,m.x+g,m.y+l,y+g,q+l),f.h(y,q))):(Dp(this,h,g,l,f,m,v),f.assign(m));g=e}I.free(f)}Td=h}else h=this.i(1).copy(),h.x-=d,h.y-=k,0!==this.computeShortLength(!0)&&(e=Ap(this,e,!0,f)),0!==this.computeShortLength(!1)&&(h=Ap(this,\nh,!1,f)),a.type=wd,a.startX=e.x,a.startY=e.y,a.endX=h.x,a.endY=h.y;this.Yn=!1;return a};function Cp(a,b,c,d){a=c-a;if(isNaN(a)||Infinity===a||-Infinity===a)return NaN;0>a&&(a=-a);b=d-b;if(isNaN(b)||Infinity===b||-Infinity===b)return NaN;0>b&&(b=-b);return J.$(a,0)?b:J.$(b,0)?a:Math.sqrt(a*a+b*b)}\nfunction Ap(a,b,c,d){var e=a.pointsCount;if(2>e)return b;if(c){var f=a.i(1);c=f.x-d.x;f=f.y-d.y;d=Cp(b.x,b.y,c,f);if(0===d)return b;e=2===e?.5*d:d;a=a.computeShortLength(!0);a>e&&(a=e);e=a*(f-b.y)/d;b.x+=a*(c-b.x)/d;b.y+=e}else{f=a.i(e-2);c=f.x-d.x;f=f.y-d.y;d=Cp(b.x,b.y,c,f);if(0===d)return b;e=2===e?.5*d:d;a=a.computeShortLength(!1);a>e&&(a=e);e=a*(b.y-f)/d;b.x-=a*(b.x-c)/d;b.y-=e}return b}\nfunction Bp(a,b,c,d){for(var e=a.pointsCount,f=b;J.$(b.x,f.x)&&J.$(b.y,f.y);){if(c>=e)return e-1;f=a.i(c++)}if(!J.$(b.x,f.x)&&!J.$(b.y,f.y))return c-1;for(var g=f;J.$(b.x,f.x)&&J.$(f.x,g.x)&&(!d||(b.y>=f.y?f.y>=g.y:f.y<=g.y))||J.$(b.y,f.y)&&J.$(f.y,g.y)&&(!d||(b.x>=f.x?f.x>=g.x:f.x<=g.x));){if(c>=e)return e-1;g=a.i(c++)}return c-2}\nfunction Dp(a,b,c,d,e,f,g){if(!g&&ip(a)){g=[];var h=0;a.isVisible()&&(h=Ep(a,e,f,g));if(0\nl-10)h--,l=Math.max(k-5,f.x);else break;k=f.y-10+d;l+=c;n=f.y+d;a.curve===ag?Kd(b,l,n,!1):Ld(b,m,k,l,k,l,n)}else if(J.A(e.x,f.x))if(e.yk-10)h--,k=Math.max(l-5,f.y);else break;l=f.x-10+c;n=f.x+c;k+=d;a.curve===ag?Kd(b,n,k,!1):Ld(b,l,m,l,k,n,k)}}b.lineTo(f.x+c,f.y+d)}\nfunction Ep(a,b,c,d){var e=a.diagram;if(null===e||b.w(c))return 0;for(e=e.layers;e.next();){var f=e.value;if(null!==f&&f.visible){f=f.Ca.j;for(var g=f.length,h=0;hg.x&&m.x>=l.x||l.xg.y&&m.y>=l.y||l.yq&&Math.min(g,v)n&&!J.A(g,v)){h.x=q;h.y=n;m=!0;break a}}else if(!J.A(n,r)&&\nJ.A(g,v)&&Math.min(n,r)g&&Math.min(q,u)m&&!J.A(q,u)){h.x=m;h.y=g;m=!0;break a}h.x=0;h.y=0;m=!1}m&&(e?c.push(h.x):c.push(h.y));g=l}I.free(h)}function ip(a){a=a.curve;return a===$f||a===ag}function mp(a,b){if(b||ip(a))b=a.diagram,null===b||b.animationManager.isTicking||b.Sg.contains(a)||0===a.El.width&&0===a.El.height||b.Sg.add(a,a.El.copy())}\nS.prototype.tq=function(a){var b=this.layer;if(null!==b&&b.visible&&!b.isTemporary){var c=b.diagram;if(null!==c&&!c.animationManager.isAnimating){var d=!1;for(c=c.layers;c.next();){var e=c.value;if(e.visible)if(e===b){d=!0;var f=!1;e=e.Ca.j;for(var g=e.length,h=0;ha&&va(a,\">= 0\",S,\"fromEndSegmentLength\"),this.O.Wg=a,this.g(\"fromEndSegmentLength\",b,a),this.Oa())}},\nfromShortLength:{get:function(){return null!==this.O?this.O.Xg:NaN},set:function(a){this.Ec();var b=this.O.Xg;b!==a&&(this.O.Xg=a,this.g(\"fromShortLength\",b,a),this.Oa(),this.cc())}},toSpot:{get:function(){return null!==this.O?this.O.yh:Zc},set:function(a){this.Ec();var b=this.O.yh;b.w(a)||(a=a.G(),this.O.yh=a,this.g(\"toSpot\",b,a),this.Oa())}},toEndSegmentLength:{get:function(){return null!==this.O?this.O.wh:\nNaN},set:function(a){this.Ec();var b=this.O.wh;b!==a&&(0>a&&va(a,\">= 0\",S,\"toEndSegmentLength\"),this.O.wh=a,this.g(\"toEndSegmentLength\",b,a),this.Oa())}},toShortLength:{get:function(){return null!==this.O?this.O.xh:NaN},set:function(a){this.Ec();var b=this.O.xh;b!==a&&(this.O.xh=a,this.g(\"toShortLength\",b,a),this.Oa(),this.cc())}},isLabeledLink:{get:function(){return null===this.ad?!1:0=d&&(f=d-1);var h=this.i(f-1),k=this.i(f);J.bm(e.x,e.y,g.x,g.y,h.x,h.y,k.x,k.y,.5,a);b=Math.min(k.x,b);c=Math.min(k.y,c);e=k}else for(e=this.i(0),f=this.i(1),b=Math.min(e.x,f.x),c=Math.min(e.y,f.y),a.h(e.x,e.y,0,0),a.He(f),e=2;ed&&(d=-d)):J.$(d.y,e.y)?(d=e.x-d.x,0>d&&(d=-d)):d=Math.sqrt(d.Ae(e));a.push(d)}}return this.Gr}},flattenedTotalLength:{get:function(){var a=this.qu;if(isNaN(a)){for(var b=this.flattenedLengths,\nc=b.length,d=a=0;d=this.pointsCount?0:this.isOrthogonal||\n!np(this.computeSpot(!0))?1:0}},lastPickIndex:{get:function(){var a=this.pointsCount;return 0===a?0:2>=a?a-1:this.isOrthogonal||!np(this.computeSpot(!1))?a-2:a-1}},adjusting:{get:function(){return this.Dk},set:function(a){var b=this.Dk;b!==a&&(this.Dk=a,this.g(\"adjusting\",b,a))}},corner:{get:function(){return this.pn},set:function(a){var b=this.pn;b!==a&&(this.pn=a,this.cc(),this.g(\"corner\",b,a))}},curve:{\nget:function(){return this.rn},set:function(a){var b=this.rn;b!==a&&(this.rn=a,this.Oa(),this.cc(),mp(this,b===ag||b===$f||a===ag||a===$f),this.g(\"curve\",b,a))}},curviness:{get:function(){return this.sn},set:function(a){var b=this.sn;b!==a&&(this.sn=a,this.Oa(),this.cc(),this.g(\"curviness\",b,a))}},routing:{get:function(){return this.Lj},set:function(a){var b=this.Lj;b!==a&&(this.Lj=a,this.Tf=null,this.Oa(),mp(this,2===(b.value&\n2)||2===(a.value&2)),this.g(\"routing\",b,a))}},smoothness:{get:function(){return this.Ip},set:function(a){var b=this.Ip;b!==a&&(this.Ip=a,this.cc(),this.g(\"smoothness\",b,a))}},key:{get:function(){var a=this.diagram;if(null!==a&&a.model.pm())return a.model.Vb(this.data)}}});S.prototype.invalidateOtherJumpOvers=S.prototype.tq;S.prototype.findClosestSegment=S.prototype.gz;S.prototype.updateRoute=S.prototype.hj;S.prototype.invalidateRoute=S.prototype.Oa;\nS.prototype.rollbackRoute=S.prototype.ey;S.prototype.commitRoute=S.prototype.rf;S.prototype.startRoute=S.prototype.Nh;S.prototype.clearPoints=S.prototype.Zj;S.prototype.removePoint=S.prototype.Xv;S.prototype.addPointAt=S.prototype.qf;S.prototype.addPoint=S.prototype.xe;S.prototype.insertPointAt=S.prototype.m;S.prototype.insertPoint=S.prototype.Rz;S.prototype.setPointAt=S.prototype.K;S.prototype.setPoint=S.prototype.hd;S.prototype.getPoint=S.prototype.i;S.prototype.getOtherPort=S.prototype.Fz;\nS.prototype.getOtherNode=S.prototype.pt;\nvar cp=new D(S,\"Normal\",1),Ip=new D(S,\"Orthogonal\",2),Jp=new D(S,\"AvoidsNodes\",6),sp=new D(S,\"AvoidsNodesStraight\",7),bg=new D(S,\"None\",0),qg=new D(S,\"Bezier\",9),ag=new D(S,\"JumpGap\",10),$f=new D(S,\"JumpOver\",11),dp=new D(S,\"End\",17),ep=new D(S,\"Scale\",18),fp=new D(S,\"Stretch\",19),In=new D(S,\"OrientAlong\",21),Nm=new D(S,\"OrientPlus90\",22),Pm=new D(S,\"OrientMinus90\",23),gp=new D(S,\"OrientOpposite\",24),hp=new D(S,\"OrientUpright\",25),Om=new D(S,\"OrientPlus90Upright\",26),Qm=new D(S,\"OrientMinus90Upright\",\n27),Rm=new D(S,\"OrientUpright45\",28);S.className=\"Link\";S.Normal=cp;S.Orthogonal=Ip;S.AvoidsNodes=Jp;S.AvoidsNodesStraight=sp;S.None=bg;S.Bezier=qg;S.JumpGap=ag;S.JumpOver=$f;S.End=dp;S.Scale=ep;S.Stretch=fp;S.OrientAlong=In;S.OrientPlus90=Nm;S.OrientMinus90=Pm;S.OrientOpposite=gp;S.OrientUpright=hp;S.OrientPlus90Upright=Om;S.OrientMinus90Upright=Qm;S.OrientUpright45=Rm;function Hp(a,b,c,d){Ya(this);this.ke=this.Nr=!1;this.Bt=a;this.Zx=b;this.Mv=c;this.$x=d;this.links=[]}\nHp.prototype.nm=function(){if(!this.Nr){var a=this.links;0=a.width||0>=a.height)){var b=a.y,c=a.x+a.width,d=a.y+a.height;this.Md=Math.floor((a.x-this.kc)/this.kc)*this.kc;this.Nd=Math.floor((b-this.lc)/this.lc)*this.lc;this.wo=Math.ceil((c+2*this.kc)/this.kc)*this.kc;this.xo=Math.ceil((d+2*this.lc)/this.lc)*this.lc;a=1+(Math.ceil((this.wo-this.Md)/this.kc)|0);b=1+(Math.ceil((this.xo-this.Nd)/this.lc)|0);if(null===this.Bb||this.Rj=zp&&(a.Bb[b][c]=Kp)}\ntk.prototype.lk=function(a,b,c,d){if(a>this.wo||a+cthis.xo||b+da&&(c+=a,a=0);0>b&&(e+=b,b=0);if(0>c||0>e)return!0;d=Math.min(a+c-1,this.Rj)|0;for(c=Math.min(b+e-1,this.Sj)|0;a<=d;a++)for(e=b;e<=c;e++)if(this.Bb[a][e]===xp)return!1;return!0};\nfunction Lp(a,b,c,d,e,f,g,h,k){if(!(bg||ck)){var l=b|0;var m=c|0;var n=a.Bb[l][m];if(n>=zp&&n=a.Bb[l][m]);)a.Bb[l][m]=n,n+=1,e?m+=d:l+=d;l=e?m:l;if(e)if(0l;c+=d)Lp(a,b,c,1,!e,f,g,h,k),Lp(a,b,c,-1,!e,f,g,h,k);else if(0l;b+=d)Lp(a,b,c,1,!e,f,g,h,k),Lp(a,b,c,-1,!e,f,g,h,\nk)}}function Mp(a,b,c,d,e,f,g,h,k){b|=0;c|=0;var l=xp,m=zp;for(a.Bb[b][c]=m;l===xp&&b>f&&bh&&cf&&bh&&c=Math.abs(g-b)&&1>=Math.abs(h-d))a.abort=!0;else{var k=f.x,l=f.y,m=f.x+f.width,n=f.y+f.height;k-=a.Md;k/=a.kc;l-=a.Nd;l/=a.lc;m-=a.Md;m/=a.kc;n-=a.Nd;n/=a.lc;f=Math.max(0,Math.min(a.Rj,k|0));m=Math.min(a.Rj,Math.max(0,m|0));l=Math.max(0,Math.min(a.Sj,l|0));n=Math.min(a.Sj,Math.max(0,n|0));g|=0;h|=0;b|=0;d|=0;k=0===c||90===c?\n1:-1;c=90===c||270===c;a.Bb[g][h]===xp?(Mp(a,g,h,k,c,f,m,l,n),Mp(a,g,h,1,!c,f,m,l,n),Mp(a,g,h,-1,!c,f,m,l,n)):Mp(a,g,h,k,c,g,h,g,h);a.Bb[b][d]===xp?(Np(a,b,d,0===e||90===e?1:-1,90===e||270===e,f,m,l,n),Np(a,b,d,1,!(90===e||270===e),f,m,l,n),Np(a,b,d,-1,!(90===e||270===e),f,m,l,n)):Np(a,b,d,k,c,b,d,b,d);a.abort||(Lp(a,g,h,1,!1,f,m,l,n),Lp(a,g,h,-1,!1,f,m,l,n),Lp(a,g,h,1,!0,f,m,l,n),Lp(a,g,h,-1,!0,f,m,l,n))}}}\nma.Object.defineProperties(tk.prototype,{bounds:{get:function(){return new N(this.Md,this.Nd,this.wo-this.Md,this.xo-this.Nd)}},dm:{get:function(){return this.kc},set:function(a){0=c?180:0}a=180*Math.atan2(a.height,a.width)/Math.PI;switch(b){case 3:return c>a&&c<=180+a?180:270;case 5:return c>180-a&&c<=360-a?270:0;case 12:return c>a&&c<=180+a?90:0;case 10:return c>180-a&&c<=360-a?180:90;case 7:return 90180+a&&c<=360-a?270:0;case 13:return 180a&&180>=c?90:0;case 14:return c>\na&&c<=180-a?90:c>180-a&&270>=c?180:0;case 11:return c>180-a&&c<=180+a?180:c>180+a?270:90}d&&15!==b&&(c-=15,0>c&&(c+=360));return c>a&&c<180-a?90:c>=180-a&&c<=180+a?180:c>180+a&&c<360-a?270:0}qp.prototype.nm=function(){this.Xd.length=0};\nfunction rp(a,b){var c=a.Xd;if(0===c.length){a:if(!a.yq){c=a.yq;a.yq=!0;var d=null,e=a.node,f=e instanceof T?e:null;if(null===f||f.isSubGraphExpanded)var g=e.isTreeExpanded?e.findLinksConnected(a.port.portId):e.Jx();else{if(!f.actualBounds.v()){a.yq=c;break a}d=f;g=d.qv()}f=a.Xd.length=0;var h=a.port.ga(vc,I.alloc()),k=a.port.ga(Gc,I.alloc());e=N.allocAt(h.x,h.y,0,0);e.He(k);I.free(h);I.free(k);h=I.allocAt(e.x+e.width/2,e.y+e.height/2);k=a.port.Xi();for(g=g.iterator;g.next();){var l=g.value;if(l.isVisible()&&\nl.fromPort!==l.toPort){var m=l.fromPort===a.port||null!==l.fromNode&&l.fromNode.Wd(d),n=l.computeSpot(m,a.port);if(n.yf()&&(m=m?l.toPort:l.fromPort,null!==m)){var p=m.part;if(null!==p){var r=p.findVisibleNode();null!==r&&r!==p&&(p=r,m=p.port);m=l.computeOtherPoint(p,m);p=h.Ta(m);p-=k;0>p&&(p+=360);n=Op(e,n,p,l.isOrthogonal);0===n?(n=4,180Math.abs(u)?(y=Math.abs(u)/p,p=Math.abs(u)):y=1;break;case 2:r>Math.abs(z)?(y=Math.abs(z)/r,r=Math.abs(z)):y=1;break;case 1:n>Math.abs(u)?(y=Math.abs(u)/n,n=Math.abs(u)):y=1;break;default:case 4:m>Math.abs(z)?(y=Math.abs(z)/m,m=Math.abs(z)):y=1}w=0}var G=A.wq;if(d===$o){A=\nA.link.computeThickness();A*=y;G.set(C);switch(q){case 8:G.x=C.x+u/2+p/2-w-A/2;break;case 2:G.y=C.y+z/2+r/2-w-A/2;break;case 1:G.x=C.x+u/2-n/2+w+A/2;break;default:case 4:G.y=C.y+z/2-m/2+w+A/2}w+=A}else{var L=.5;d===Mo&&(L=(A.pq+1)/(A.em+1));G.x=C.x+u*L;G.y=C.y+z*L}}}I.free(h);I.free(k);I.free(g);I.free(l);C=a.Xd;for(f=0;fb.yc?1:a.angleb.angle?1:0};qp.prototype.computeEndSegmentLength=function(a){var b=a.link,c=b.computeEndSegmentLength(this.node,this.port,uc,b.fromPort===this.port),d=a.pq;if(0>d)return c;var e=a.em;if(1>=e||!b.isOrthogonal)return c;b=a.Qv;var f=a.wq;if(2===a.yc||8===a.yc)d=e-1-d;return((a=2===a.yc||4===a.yc)?b.y=c-1?(g=0,e=d,f+=h+20,h=0):g++}null!==a&&a.Ua(\"Layout\")}this.isValidLayout=!0};Ci.prototype.uk=function(a){return!a.location.v()||a instanceof T&&a.uk?!0:!1};\nfunction Rp(a,b,c,d,e,f,g,h){for(c=c.iterator;c.next();){var k=c.value;d&&!k.isTopLevel||null!==e&&!e(k)||!k.canLayout()||(f&&k instanceof W?k.isLinkLabel||(k instanceof T?null===k.layout?Rp(a,b,k.memberParts,!1,e,f,g,h):(Sp(k),b.add(k)):(Sp(k),b.add(k))):g&&k instanceof S?b.add(k):!h||!k.Wb()||k instanceof W||(Sp(k),b.add(k)))}}function Sp(a){var b=a.actualBounds;(0===b.width||0===b.height||isNaN(b.width)||isNaN(b.height))&&a.yb()}\nCi.prototype.Zi=function(a,b){var c=this.boundsComputation;if(null!==c)return b||(b=new N),c(a,this,b);if(!b)return a.actualBounds;b.set(a.actualBounds);return b};Ci.prototype.yx=function(a){var b=new F;a instanceof R?(Rp(this,b,a.nodes,!0,null,!0,!0,!0),Rp(this,b,a.links,!0,null,!0,!0,!0),Rp(this,b,a.parts,!0,null,!0,!0,!0)):a instanceof T?Rp(this,b,a.memberParts,!1,null,!0,!0,!0):Rp(this,b,a.iterator,!1,null,!0,!0,!0);return b};\nCi.prototype.initialOrigin=function(a){var b=this.group;if(null!==b){var c=b.position.copy();(isNaN(c.x)||isNaN(c.y))&&c.set(a);b=b.placeholder;null!==b&&(c=b.ga(vc),(isNaN(c.x)||isNaN(c.y))&&c.set(a),a=b.padding,c.x+=a.left,c.y+=a.top);return c}return a};\nma.Object.defineProperties(Ci.prototype,{diagram:{get:function(){return this.B},set:function(a){this.B=a}},group:{get:function(){return this.I},set:function(a){this.I!==a&&(this.I=a,null!==a&&(this.B=a.diagram))}},isOngoing:{get:function(){return this.ao},set:function(a){this.ao!==a&&(this.ao=a)}},isInitial:{get:function(){return this.oi},set:function(a){this.oi=a;a||(this.fo=!0)}},\nisViewportSized:{get:function(){return this.ho},set:function(a){this.ho!==a&&(this.ho=a)&&this.C()}},isRouting:{get:function(){return this.co},set:function(a){this.co!==a&&(this.co=a)}},isRealtime:{get:function(){return this.bo},set:function(a){this.bo!==a&&(this.bo=a)}},isValidLayout:{get:function(){return this.fo},set:function(a){this.fo!==a&&(this.fo=a,a||(a=this.diagram,null!==\na&&(a.If=!0)))}},network:{get:function(){return this.l},set:function(a){this.l!==a&&(this.l=a,null!==a&&(a.layout=this))}},boundsComputation:{get:function(){return this.u},set:function(a){this.u!==a&&(this.u=a,this.C())}},arrangementOrigin:{get:function(){return this.Wm},set:function(a){this.Wm.w(a)||(this.Wm.assign(a),this.C())}}});Ci.prototype.collectParts=Ci.prototype.yx;Ci.prototype.getLayoutBounds=Ci.prototype.Zi;\nCi.prototype.invalidateLayout=Ci.prototype.C;Ci.className=\"Layout\";function Qp(a){Ya(this);this.ic=a;this.nf=new F;this.de=new F;this.Ct=new H;this.xt=new H}Qp.prototype.clear=function(){if(this.nf)for(var a=this.nf.iterator;a.next();)a.value.clear();if(this.de)for(a=this.de.iterator;a.next();)a.value.clear();this.nf=new F;this.de=new F;this.Ct=new H;this.xt=new H};\nQp.prototype.toString=function(a){void 0===a&&(a=0);var b=\"LayoutNetwork\"+(null!==this.layout?\"(\"+this.layout.toString()+\")\":\"\");if(0>=a)return b;b+=\" vertexes: \"+this.nf.count+\" edges: \"+this.de.count;if(1b?1:0):1:null!==b?-1:0}\nma.Object.defineProperties(Tp.prototype,{sourceEdgesArrayAccess:{get:function(){return this.Gg._dataArray}},destinationEdgesArrayAccess:{get:function(){return this.yg._dataArray}},data:{get:function(){return this.hb},set:function(a){this.hb=a;if(null!==a){var b=a.bounds;a=b.x;var c=b.y,d=b.width;b=b.height;this.u.h(d/2,b/2);this.l.h(a,c,d,b)}}},node:{get:function(){return this.zi},\nset:function(a){if(this.zi!==a){this.zi=a;a.yb();var b=this.network.layout,c=N.alloc(),d=b.Zi(a,c);b=d.x;var e=d.y,f=d.width;d=d.height;isNaN(b)&&(b=0);isNaN(e)&&(e=0);this.l.h(b,e,f,d);N.free(c);if(!(a instanceof T)&&(a=a.locationObject.ga(Ac),a.v())){this.u.h(a.x-b,a.y-e);return}this.u.h(f/2,d/2)}}},bounds:{get:function(){return this.l},set:function(a){this.l.w(a)||this.l.assign(a)}},focus:{get:function(){return this.u},set:function(a){this.u.w(a)||\nthis.u.assign(a)}},centerX:{get:function(){return this.l.x+this.u.x},set:function(a){var b=this.l;b.x+this.u.x!==a&&(b.ea(),b.x=a-this.u.x,b.freeze())}},centerY:{get:function(){return this.l.y+this.u.y},set:function(a){var b=this.l;b.y+this.u.y!==a&&(b.ea(),b.y=a-this.u.y,b.freeze())}},focusX:{get:function(){return this.u.x},set:function(a){var b=this.u;b.x!==a&&(b.ea(),b.x=a,b.freeze())}},focusY:{\nget:function(){return this.u.y},set:function(a){var b=this.u;b.y!==a&&(b.ea(),b.y=a,b.freeze())}},x:{get:function(){return this.l.x},set:function(a){var b=this.l;b.x!==a&&(b.ea(),b.x=a,b.freeze())}},y:{get:function(){return this.l.y},set:function(a){var b=this.l;b.y!==a&&(b.ea(),b.y=a,b.freeze())}},width:{get:function(){return this.l.width},set:function(a){var b=this.l;b.width!==a&&(b.ea(),b.width=\na,b.freeze())}},height:{get:function(){return this.l.height},set:function(a){var b=this.l;b.height!==a&&(b.ea(),b.height=a,b.freeze())}},network:{get:function(){return this.Yc},set:function(a){this.Yc=a}},sourceVertexes:{get:function(){for(var a=new F,b=this.sourceEdges;b.next();)a.add(b.value.fromVertex);return a.iterator}},destinationVertexes:{get:function(){for(var a=new F,b=\nthis.destinationEdges;b.next();)a.add(b.value.toVertex);return a.iterator}},vertexes:{get:function(){for(var a=new F,b=this.sourceEdges;b.next();)a.add(b.value.fromVertex);for(b=this.destinationEdges;b.next();)a.add(b.value.toVertex);return a.iterator}},sourceEdges:{get:function(){return this.Gg.iterator}},destinationEdges:{get:function(){return this.yg.iterator}},edges:{get:function(){for(var a=\nnew E,b=this.sourceEdges;b.next();)a.add(b.value);for(b=this.destinationEdges;b.next();)a.add(b.value);return a.iterator}},edgesCount:{get:function(){return this.Gg.count+this.yg.count}}});Tp.prototype.deleteDestinationEdge=Tp.prototype.lv;Tp.prototype.addDestinationEdge=Tp.prototype.cv;Tp.prototype.deleteSourceEdge=Tp.prototype.mv;Tp.prototype.addSourceEdge=Tp.prototype.ev;Tp.className=\"LayoutVertex\";Tp.standardComparer=$p;\nTp.smartComparer=function(a,b){if(null!==a){if(null!==b){a=a.zi;var c=b.zi;if(null!==a){if(null!==c){b=a.text.toLocaleLowerCase().split(/([+\\-]?[\\.]?\\d+(?:\\.\\d*)?(?:e[+\\-]?\\d+)?)/);a=c.text.toLocaleLowerCase().split(/([+\\-]?[\\.]?\\d+(?:\\.\\d*)?(?:e[+\\-]?\\d+)?)/);for(c=0;c=f&&0>=g&&(f=1);b=this.spacing.width;isFinite(b)||(b=0);c=this.spacing.height;isFinite(c)||(c=0);null!==a&&a.ua(\"Layout\");d=[];switch(this.alignment){case iq:var h=b,k=c,l=N.alloc(),m=Math.max(this.cellSize.width,1);if(!isFinite(m))for(var n=m=0;nf-1||0g)d.push(new N(0,u,g+h,w)),v=0,q=r,u+=w,w=0;w=Math.max(w,G);switch(p){case hq:A=-A.width;break;default:A=\n0}z.moveTo(q+A,u);switch(p){case hq:q-=C;break;default:q+=C}v++}d.push(new N(0,u,g+h,w));N.free(l);break;case aq:k=g;m=f;n=b;p=c;g=N.alloc();r=Math.max(this.cellSize.width,1);f=u=l=0;h=I.alloc();for(q=0;q=l&&(k-=l);l=z=0;C=Math.max(this.cellSize.height,1);A=f=0;G=!0;v=I.alloc();for(L=0;Lm-1||0k){d.push(new N(0,G?y-f:y,k+n,A+f+p));for(K=0;Kl&&(f.width+=f.x-l,f.x=l);N.free(g)}for(h=f=g=e=0;hb?1:0}\nma.Object.defineProperties(Lk.prototype,{wrappingWidth:{get:function(){return this.$p},set:function(a){this.$p!==a&&(0n)){var u=n+bn(q);q.Fc(u,!0);yn(q,u,n)}}b.isModified=!0}}finally{b.Z=!0}}}}};ri.prototype.updateAllTargetBindings=function(a){void 0===a&&(a=\"\");for(var b=this.parts.iterator;b.next();)b.value.Ba(a);for(b=this.nodes.iterator;b.next();)b.value.Ba(a);for(b=this.links.iterator;b.next();)b.value.Ba(a)};\nri.prototype.Pq=function(){for(var a=this.B.model,b=new F,c=a.nodeDataArray,d=0;df?b+(\"\\\\u000\"+a.charCodeAt(d).toString(16)):32>f?b+(\"\\\\u00\"+a.charCodeAt(d).toString(16)):8232===f?b+\"\\\\u2028\":8233===f?b+\"\\\\u2029\":b+e}}return'\"'+b+'\"'};\nt.Lm=function(a){return void 0===a?\"undefined\":null===a?\"null\":!0===a?\"true\":!1===a?\"false\":\"string\"===typeof a?this.quote(a):\"number\"===typeof a?Infinity===a?\"9e9999\":-Infinity===a?\"-9e9999\":isNaN(a)?'{\"class\":\"NaN\"}':a.toString():a instanceof Date?'{\"class\":\"Date\", \"value\":\"'+a.toJSON()+'\"}':a instanceof Number?this.Lm(a.valueOf()):Aa(a)?Pq(this,a):za(a)?Mq(this,a):\"function\"===typeof a?\"null\":a.toString()};\nfunction Pq(a,b,c){void 0===c&&(c=!1);var d=b.length;if(0>=d)return\"[]\";var e=new cb;e.add(\"[ \");c&&1d)return;Da(a.Cc,d)}Xq(a,\"nodeDataArray\",ue,\"nodeDataArray\",a,b,null,d,null);a.Oq(b)}t.pA=function(a){if(Aa(a))for(var b=a.length,c=0;cb&&(b=a.length);Ca(a,b,c);Xq(this,\"\",te,\"\",a,null,c,null,b)};t.Vv=function(a,b){void 0===b&&(b=-1);a===this.Cc&&B(\"Model.removeArrayItem should not be called on the Model.nodeDataArray\");-1===b&&(b=a.length-1);var c=a[b];Da(a,b);Xq(this,\"\",ue,\"\",a,c,null,b,null)};\nt.nt=function(a){if(null===a)return\"\";var b=this.Gj;if(\"\"===b)return\"\";b=zn(a,b);if(void 0===b)return\"\";if(\"string\"===typeof b)return b;B(\"getCategoryForNodeData found a non-string category for \"+a+\": \"+b);return\"\"};t.Jq=function(a,b){if(null!==a){var c=this.Gj;if(\"\"!==c)if(this.sb(a)){var d=zn(a,c);void 0===d&&(d=\"\");d!==b&&(Qj(a,c,b),Xq(this,\"nodeCategory\",re,c,a,d,b))}else Qj(a,c,b)}};t.qm=function(){return!1};t.ik=function(){return!1};t.pm=function(){return!1};t.vt=function(){return!1};t.jk=function(){return!1};\nfunction Ai(){return new Z}function Sq(a,b){if(\"function\"===typeof b){if(b.className)return b.className;if(b.name)return b.name}else if(\"object\"===typeof b&&null!==b&&b.constructor)return Sq(a,b.constructor);return typeof b}function Vq(a){return $q[a]?$q[a]:void 0!==x.go&&x.go[a]?x.go[a]:null}function zn(a,b){if(!a||!b)return null;try{if(\"function\"===typeof b)var c=b(a);else\"function\"===typeof a.getAttribute?(c=a.getAttribute(b),null===c&&(c=void 0)):c=a[b]}catch(d){}return c}\nfunction Qj(a,b,c){if(a&&b)try{\"function\"===typeof b?b(a,c):\"function\"===typeof a.setAttribute?a.setAttribute(b,c):a[b]=c}catch(d){}}\nma.Object.defineProperties(Z.prototype,{name:{get:function(){return this.Ra},set:function(a){var b=this.Ra;b!==a&&(this.Ra=a,this.g(\"name\",b,a))}},dataFormat:{get:function(){return this.tn},set:function(a){var b=this.tn;b!==a&&(this.tn=a,this.g(\"dataFormat\",b,a))}},isReadOnly:{get:function(){return this.Zf},set:function(a){var b=this.Zf;b!==a&&(this.Zf=a,this.g(\"isReadOnly\",b,a))}},modelData:{\nget:function(){return this.l},set:function(a){var b=this.l;b!==a&&(this.l=a,this.g(\"modelData\",b,a),this.Ba(a))}},undoManager:{get:function(){return this.u},set:function(a){var b=this.u;b!==a&&(null!==b&&b.by(this),this.u=a,null!==a&&a.ux(this))}},skipsUndoManager:{get:function(){return this.sg},set:function(a){this.sg=a}},nodeKeyProperty:{get:function(){return this.Ai},set:function(a){var b=this.Ai;\nb!==a&&(\"\"===a&&B(\"Model.nodeKeyProperty may not be the empty string\"),0d.indexOf(a.newValue)&&\nd.splice(c,0,a.newValue));return}}else if(a.change===ue){c=a.oldParam;if(\"linkDataArray\"===a.modelChange){a=a.oldValue;za(a)&&\"number\"===typeof c&&(d=this.Vb(a),b?(this.$f.add(a),this.Oc[c]!==a&&this.Oc.splice(c,0,a),void 0!==d&&this.ob.add(d,a)):(this.$f.remove(a),this.Oc[c]===a&&this.Oc.splice(c,1),void 0!==d&&this.ob.remove(d)));return}if(\"linkLabelKeys\"===a.modelChange){d=this.Cg(a.object);Array.isArray(d)&&\"number\"===typeof c&&(b?0>d.indexOf(a.newValue)&&d.splice(c,0,a.newValue):(c=d.indexOf(a.newValue),\n0<=c&&d.splice(c,1)));return}}Z.prototype.changeState.call(this,a,b)};t=br.prototype;t.rm=function(a){if(void 0!==a){var b=this.ij;if(null!==b){var c=this.Ib(a);null===c&&(c=this.copyNodeData(b),Qj(c,this.nodeKeyProperty,a),this.pf(c))}return a}};t.Cz=function(a){return wq(this,a,!0)};t.iy=function(a,b){Eq(this,a,b,!0)};t.Iz=function(a){return wq(this,a,!1)};t.my=function(a,b){Eq(this,a,b,!1)};\nfunction wq(a,b,c){if(null!==b&&(a=c?a.Ve:a.We,\"\"!==a&&(a=zn(b,a),void 0!==a))){if(yq(a))return a;B((c?\"FromKey\":\"ToKey\")+\" value for link data \"+b+\" is not a number or a string: \"+a)}}function Eq(a,b,c,d){null===c&&(c=void 0);if(null!==b){var e=d?a.Ve:a.We;if(\"\"!==e)if(c=a.rm(c),a.cd(b)){var f=zn(b,e);f!==c&&(Cq(a,f,b),Qj(b,e,c),null===a.Ib(c)&&Dq(a,c,b),Xq(a,d?\"linkFromKey\":\"linkToKey\",re,e,b,f,c),\"string\"===typeof e&&a.Ba(b,e))}else Qj(b,e,c)}}t.Dz=function(a){return vq(this,a,!0)};\nt.jy=function(a,b){Fq(this,a,b,!0)};t.Jz=function(a){return vq(this,a,!1)};t.ny=function(a,b){Fq(this,a,b,!1)};function vq(a,b,c){if(null===b)return\"\";a=c?a.Cj:a.Dj;if(\"\"===a)return\"\";b=zn(b,a);return void 0===b?\"\":b}function Fq(a,b,c,d){if(null!==b){var e=d?a.Cj:a.Dj;if(\"\"!==e)if(a.cd(b)){var f=zn(b,e);void 0===f&&(f=\"\");f!==c&&(Qj(b,e,c),Xq(a,d?\"linkFromPortId\":\"linkToPortId\",re,e,b,f,c),\"string\"===typeof e&&a.Ba(b,e))}else Qj(b,e,c)}}\nt.Cg=function(a){if(null===a)return dr;var b=this.Ld;if(\"\"===b)return dr;a=zn(a,b);return void 0===a?dr:a};t.dw=function(a,b){if(null!==a){var c=this.Ld;if(\"\"!==c)if(this.cd(a)){var d=zn(a,c);void 0===d&&(d=dr);if(d!==b){if(Array.isArray(d))for(var e=d.length,f=0;fe||(d.splice(e,1),this.cd(a)&&(Cq(this,b,a),Xq(this,\"linkLabelKeys\",ue,c,a,b,null,e,null)))}else void 0!==d&&B(c+\" property is not an Array; cannot removeLabelKeyforLinkData: \"+a)}}};t.Vb=function(a){if(null!==a){var b=this.wi;if(\"\"!==b&&(b=zn(a,b),void 0!==b)){if(yq(b))return b;B(\"Key value for link data \"+a+\" is not a number or a string: \"+b)}}};\nt.Nt=function(a,b){if(null!==a){var c=this.wi;if(\"\"!==c)if(this.cd(a)){var d=zn(a,c);d!==b&&null===this.zg(b)&&(Qj(a,c,b),void 0!==d&&this.ob.remove(d),this.ob.add(b,a),Xq(this,\"linkKey\",re,c,a,d,b),\"string\"===typeof c&&this.Ba(a,c))}else Qj(a,c,b)}};t.zg=function(a){null===a&&B(\"GraphLinksModel.findLinkDataForKey:key must not be null\");return void 0!==a&&yq(a)?this.ob.H(a):null};\nt.xq=function(a){if(null!==a){var b=this.wi;if(\"\"!==b){var c=this.Vb(a);if(void 0===c||this.ob.contains(c)){var d=this.xl;if(null!==d&&(c=d(this,a),void 0!==c&&null!==c&&!this.ob.contains(c))){Qj(a,b,c);return}if(\"string\"===typeof c){for(d=2;this.ob.contains(c+d);)d++;Qj(a,b,c+d)}else if(void 0===c||\"number\"===typeof c){for(c=-this.ob.count-1;this.ob.contains(c);)c--;Qj(a,b,c)}}}}};t.cd=function(a){return null===a?!1:this.$f.contains(a)};t.Ni=function(a){null!==a&&(nb(a),this.cd(a)||Aq(this,a,!0))};\nfunction Aq(a,b,c){if(\"\"!==a.linkKeyProperty){var d=a.Vb(b);if(void 0!==d&&a.ob.H(d)===b)return;a.xq(b);d=a.Vb(b);if(void 0===d){B(\"GraphLinksModel.makeLinkDataKeyUnique failed on \"+b+\". Data not added to model.\");return}a.ob.add(d,b)}a.$f.add(b);d=null;c&&(d=a.Oc.length,a.Oc.splice(d,0,b));Xq(a,\"linkDataArray\",te,\"linkDataArray\",a,null,b,null,d);er(a,b)}t.Iy=function(a){if(Array.isArray(a))for(var b=a.length,c=0;cd)return;a.Oc.splice(d,1)}Xq(a,\"linkDataArray\",ue,\"linkDataArray\",a,b,null,d,null);c=wq(a,b,!0);Cq(a,c,b);c=wq(a,b,!1);Cq(a,c,b);d=a.Cg(b);if(Array.isArray(d))for(var e=d.length,f=0;f=a.count)1===a.count&&(a=a.first(),a.centerX=0,a.centerY=0);else{var b=new E;b.addAll(a.iterator);a=new E;var c=new E;var d=this.sort(b);var e,f,g=this.lr;var h=this.arrangement;var k=this.nodeDiameterFormula;var l=this.radius;if(!isFinite(l)||0>=l)l=NaN;var m=this.aspectRatio;if(!isFinite(m)||0>=m)m=1;var n=this.startAngle;\nisFinite(n)||(n=0);var p=this.sweepAngle;if(!isFinite(p)||360p)p=360;b=this.spacing;isFinite(b)||(b=NaN);h===wr&&k===xr?h=hr:h===wr&&k!==xr&&(h=this.arrangement);if((this.direction===rr||this.direction===sr)&&this.sorting!==lr){for(k=0;!(k>=d.length);k+=2){a.add(d.L(k));if(k+1>=d.length)break;c.add(d.L(k+1))}this.direction===rr?(this.arrangement===wr&&a.reverse(),d=new E,d.addAll(a),d.addAll(c)):(this.arrangement===wr&&c.reverse(),d=new E,d.addAll(c),d.addAll(a))}k=d.length;for(var r=f=e=0;r<\nd.length;r++){var q=n+p*f*(this.direction===kr?1:-1)/k,u=d.L(r).diameter;isNaN(u)&&(u=zr(d.L(r),q));360>p&&(0===r||r===d.length-1)&&(u/=2);e+=u;f++}if(isNaN(l)||h===wr){isNaN(b)&&(b=6);if(h!==hr&&h!==wr){f=-Infinity;for(g=0;gl?(l=e,f=l*m):g=\nr/(360<=p?k:k-1)}this.Sw=h;this.$b=l;this.Cn=m;this.Tw=n;this.Ar=p;this.qj=b;this.Sd=f;this.lr=g;b=d;d=this.Sw;h=this.$b;l=this.Tw;m=this.Ar;n=this.qj;p=this.Sd;k=this.lr;if(this.direction!==rr&&this.direction!==sr||d!==wr)if(this.direction===rr||this.direction===sr){g=0;switch(d){case vr:g=180*Cr(this,h,p,l,k)/Math.PI;break;case hr:k=b=0;g=a.first();null!==g&&(b=zr(g,Math.PI/2));g=c.first();null!==g&&(k=zr(g,Math.PI/2));g=180*Cr(this,h,p,l,n+(b+k)/2)/Math.PI;break;case ur:g=m/b.length}if(this.direction===\nrr){switch(d){case vr:Dr(this,a,l,tr);break;case hr:Er(this,a,l,tr);break;case ur:Fr(this,a,m/2,l,tr)}switch(d){case vr:Dr(this,c,l+g,kr);break;case hr:Er(this,c,l+g,kr);break;case ur:Fr(this,c,m/2,l+g,kr)}}else{switch(d){case vr:Dr(this,c,l,tr);break;case hr:Er(this,c,l,tr);break;case ur:Fr(this,c,m/2,l,tr)}switch(d){case vr:Dr(this,a,l+g,kr);break;case hr:Er(this,a,l+g,kr);break;case ur:Fr(this,a,m/2,l+g,kr)}}}else switch(d){case vr:Dr(this,b,l,this.direction);break;case hr:Er(this,b,l,this.direction);\nbreak;case ur:Fr(this,b,m,l,this.direction);break;case wr:Gr(this,b,m,l,this.direction)}else Gr(this,b,m,l-m/2,kr)}this.updateParts();this.network=null;this.isValidLayout=!0};function Fr(a,b,c,d,e){var f=a.Ar,g=a.$b;a=a.Sd;d=d*Math.PI/180;c=c*Math.PI/180;for(var h=b.length,k=0;kc){for(f=d+(e===kr?f:-f);0>f;)f+=360;f%=360;180=m.length-1)break;Jr(a,k,l,m,n,e,f)||Kr(a,k,l,m,n,e,f);k=f.x;l=f.y}I.free(f);a.Hj++;if(!(23Math.abs(r)?Math.abs(k-f)<(m[0].width+m[m.length-1].width)/2&&(g=0):g=0Math.abs(p)?\n0:p;k=Math.abs(f)>Math.abs(n)?0n:0a.Hj?a.$b-g/(2*Math.PI):5>m.length&&10=n.length-1)break;Jr(a,k,l,n,p,e,m)||Kr(a,k,l,n,p,e,m);k=m.x;l=m.y}I.free(m);a.Hj++;if(!(23a.Hj?a.$b-f/(2*Math.PI):a.$b-(0h){f=b-a;if(f<-h)return g.x=f,g.y=l,!1;m=!0}}else if(f=b-a,f<-h){f=b+a;if(f>h)return g.x=f,g.y=l,!1;m=!0}l=Math.sqrt(1-Math.min(1,f*f/(h*h)))*k;0>c!==m&&(l=-l);if(Math.abs(c-l)>(d[e].height+d[e+1].height)/2)return g.x=f,g.y=l,!1;g.x=f;g.y=l;return!0}\nfunction Kr(a,b,c,d,e,f,g){var h=a.$b,k=a.Sd,l=0;a=(d[e].height+d[e+1].height)/2+a.qj;d=!1;if(0<=b!==(f===kr)){if(f=c-a,f<-k){f=c+a;if(f>k){g.x=l;g.y=f;return}d=!0}}else if(f=c+a,f>k){f=c-a;if(f<-k){g.x=l;g.y=f;return}d=!0}l=Math.sqrt(1-Math.min(1,f*f/(k*k)))*h;0>b!==d&&(l=-l);g.x=l;g.y=f}gr.prototype.commitLayout=function(){this.commitNodes();this.isRouting&&this.commitLinks()};\ngr.prototype.commitNodes=function(){var a=null!==this.group&&null!==this.group.placeholder&&this.group.isSubGraphExpanded,b=a?this.group.location.copy():null,c=this.actualCenter;a?c=new I(0,0):(c.x=this.arrangementOrigin.x+this.$b,c.y=this.arrangementOrigin.y+this.Sd);for(var d=this.network.vertexes.iterator;d.next();){var e=d.value;e.x+=c.x;e.y+=c.y;e.commit()}a&&(this.group.yb(),a=this.group.position.copy(),c=this.group.location.copy(),b=b.Zd(c.Zd(a)),this.group.move(b),this.Kw=b.Zd(a))};\ngr.prototype.commitLinks=function(){for(var a=this.network.edges.iterator;a.next();)a.value.commit()};function Br(a,b,c,d,e){var f=a.zy;if(.001>Math.abs(a.Cn-1))return void 0!==d&&void 0!==e?e*b:2*Math.PI*b;a=b>c?Math.sqrt(b*b-c*c)/b:Math.sqrt(c*c-b*b)/c;var g=0;var h=void 0!==d&&void 0!==e?e/(f+1):Math.PI/(2*(f+1));for(var k=0,l=0;l<=f;l++){void 0!==d&&void 0!==e?k=d+l*e/f:k=l*Math.PI/(2*f);var m=Math.sin(k);g+=Math.sqrt(1-a*a*m*m)*h}return void 0!==d&&void 0!==e?(b>c?b:c)*g:4*(b>c?b:c)*g}\nfunction Ar(a,b,c,d,e){return b/(void 0!==d&&void 0!==e?Br(a,1,c,d,e):Br(a,1,c))}function Cr(a,b,c,d,e){if(.001>Math.abs(a.Cn-1))return e/b;var f=b>c?Math.sqrt(b*b-c*c)/b:Math.sqrt(c*c-b*b)/c,g=0;a=2*Math.PI/(700*a.network.vertexes.count);b>c&&(d+=Math.PI/2);for(var h=0;;h++){var k=Math.sin(d+h*a);g+=(b>c?b:c)*Math.sqrt(1-f*f*k*k)*a;if(g>=e)return h*a}}\ngr.prototype.sort=function(a){switch(this.sorting){case pr:break;case qr:a.reverse();break;case nr:a.sort(this.comparer);break;case or:a.sort(this.comparer);a.reverse();break;case lr:for(var b=[],c=0;ce&&(e=h,f=g)}else for(g=0;ge&&(e=h,f=g);c.add(a.L(f));b[f]=-1;f=a.L(f);for(g=f.sourceEdges;g.next();)e=a.indexOf(g.value.fromVertex),0>e||0<=\nb[e]&&b[e]++;for(f=f.destinationEdges;f.next();)e=a.indexOf(f.value.toVertex),0>e||0<=b[e]&&b[e]++}a=[];for(b=0;ba[b].indexOf(d)&&a[b].push(d);for(e=e.sourceEdges;e.next();)d=c.indexOf(e.value.fromVertex),d!==b&&0>a[b].indexOf(d)&&a[b].push(d)}f=[];for(b=0;ba[b[q]].indexOf(b[q===b.length-1?0:q+1])&&r.push(q===b.length-1?0:q+1);if(0===r.length)for(q=0;qb.indexOf(G)||Cb.indexOf(G)||C=u?C+1:C)),w+=C=u&&C++,z>=u&&z++,C>z&&(A=z,z=C,C=A),z-C<(b.length+2)/2===(Cr||r===m||(q=r>m?r-m:m-r,n+=rg-q?1:-1);b.splice(0>n?m:m+1,0,k);e.splice(h,1);h--}else f=!1;if(f)break;else b.push(e[0]),e.splice(0,1)}for(a=0;a=a?this.Tl=a:this.Tl=360,this.C())}},arrangement:{get:function(){return this.Ab},set:function(a){this.Ab===a||a!==wr&&a!==hr&&a!==vr&&a!==ur||(this.Ab=a,this.C())}},direction:{get:function(){return this.J},set:function(a){this.J===a||a!==kr&&a!==tr&&a!==rr&&a!==sr||(this.J=a,this.C())}},sorting:{get:function(){return this.Qc},set:function(a){this.Qc===a||a!==pr&&a!==qr&&\na!==nr&&!or&&a!==lr||(this.Qc=a,this.C())}},comparer:{get:function(){return this.Kc},set:function(a){this.Kc!==a&&(this.Kc=a,this.C())}},spacing:{get:function(){return this.ef},set:function(a){this.ef!==a&&(this.ef=a,this.C())}},nodeDiameterFormula:{get:function(){return this.Qo},set:function(a){this.Qo===a||a!==mr&&a!==xr||(this.Qo=a,this.C())}},actualXRadius:{get:function(){return this.$b}},\nactualYRadius:{get:function(){return this.Sd}},actualSpacing:{get:function(){return this.qj}},actualCenter:{get:function(){return this.Kw}}});\nvar hr=new D(gr,\"ConstantSpacing\",0),vr=new D(gr,\"ConstantDistance\",1),ur=new D(gr,\"ConstantAngle\",2),wr=new D(gr,\"Packed\",3),kr=new D(gr,\"Clockwise\",4),tr=new D(gr,\"Counterclockwise\",5),rr=new D(gr,\"BidirectionalLeft\",6),sr=new D(gr,\"BidirectionalRight\",7),pr=new D(gr,\"Forwards\",8),qr=new D(gr,\"Reverse\",9),nr=new D(gr,\"Ascending\",10),or=new D(gr,\"Descending\",11),lr=new D(gr,\"Optimized\",12),mr=new D(gr,\"Pythagorean\",13),xr=new D(gr,\"Circular\",14);gr.className=\"CircularLayout\";gr.ConstantSpacing=hr;\ngr.ConstantDistance=vr;gr.ConstantAngle=ur;gr.Packed=wr;gr.Clockwise=kr;gr.Counterclockwise=tr;gr.BidirectionalLeft=rr;gr.BidirectionalRight=sr;gr.Forwards=pr;gr.Reverse=qr;gr.Ascending=nr;gr.Descending=or;gr.Optimized=lr;gr.Pythagorean=mr;gr.Circular=xr;function ir(){this.km=-Infinity;this.Mm=this.Ak=null}\nir.prototype.compare=function(a,b){if(0this.km||Math.abs(a)a&&0f?(e=r.x+r.width/2,h=r.y+r.height/2,k[0]=new I(r.x+r.width+d.width,r.y),k[1]=new I(r.x,r.y+r.height+d.height),f=2):(m=Qr(k,f,e,h,r.width,r.height,d),p=k[m],n=new I(p.x+r.width+d.width,p.y),r=new I(p.x,p.y+r.height+\nd.height),m+1this.network.vertexes.count)return!1;for(var a=0,b=0,c=this.network.vertexes.first().bounds,d=this.network.vertexes.iterator;d.next();){if(d.value.bounds.Gc(c)&&(a++,2a.network.vertexes.count)return!1;a.Bh=a.network.vertexes.na();a=a.Bh;a.sort(function(a,b){return null===a||null===b||a===b?0:b.wd-a.wd});for(b=a.length-1;0<=b&&1>=a[b].wd;)b--;return 1=g))){for(var l=h=0,m=k.count-g;mr&&\n(r=1);h=J.sqrt((h+r+l*l*4/(g*g))/r);g=(h-1)*m/2;h=(h-1)*n/2;e.bounds=new N(f-p.x-g,k-p.y-h,m+2*g,n+2*h);e.focus=new I(p.x+g,p.y+h)}}a.network=d;return c}function Ur(a,b){for(var c=a.network.vertexes.iterator;c.next();){var d=c.value;d.network=b;if(null!==d.Fe){var e=d.Fe.L(d.bw);d.wd=e.Rt;var f=e.zw,g=e.Aw;d.bounds=new N(d.centerX-f,d.centerY-g,e.St,e.Qt);d.focus=new I(f,g);d.bw--}}for(c=a.network.edges.iterator;c.next();)c.value.network=b;a.network=b}\nfunction Vr(a,b){var c=b.$j;if(null!==c&&0!==c.count){var d=b.centerX,e=b.centerY,f=b.width,g=b.height;null!==b.Fe&&0=n.wd?k++:(h=!0,l++,g+=Math.atan2(b.centerY-n.centerY,b.centerX-n.centerX))}if(0!==k)for(0>1)+l)*(0===h%2?1:-1);k.centerX=d+m*Math.cos(n);k.centerY=e+m*Math.sin(n);h++}}}\nfunction Qr(a,b,c,d,e,f,g){var h=9E19,k=-1,l=0;a:for(;lm.y&&a[p].x-m.xm.x&&a[p].y-m.yb+f?(c=d+e-g,a=a-b-f,J.sqrt(c*c+a*a)):a+cg+h?a>b+f?(c=d-g-h,a=a-b-f,J.sqrt(c*c+a*a)):a+cb+f?a-(b+f):a+c=b.length)return!1;var c=b[0];c.forceX=0;c.forceY=0;for(var d=c.centerX,e=d,f=c=c.centerY,g=1;gf-c)?b.sort(function(a,b){return null===a||null===b||a===b?0:a.centerX-b.centerX}):b.sort(function(a,b){return null===a||null===b||a===b?0:a.centerY-b.centerY});c=a.Wf;var l=d=h=0;for(f=\n0;fc||l-k>c){if(e)break}else if(m-r>c||r-m>c){if(!e)break}else{var q=Xr(g,p);1>q?(d=a.randomNumberGenerator,null===d&&(a.randomNumberGenerator=d=new Zr),q=d.random(),\nh=d.random(),k>l?(d=Math.abs(p.bounds.right-g.bounds.x),d=(1+d)*q):kr?(l=Math.abs(p.bounds.bottom-g.bounds.y),l=(1+l)*h):kn?(n=a.randomNumberGenerator,null===n&&(a.randomNumberGenerator=n=new Zr),h=n.random(),n=n.random(),d=(d>k?1:-1)*(1+(f.width>c.width?f.width:c.width))*h,l=(g>m?1:-1)*(1+(f.height>c.height?f.height:c.height))*n):(h=h.stiffness*(n-h.length),d=(k-d)/n*h,l=(m-g)/n*h),c.forceX+=d,c.forceY+=l,f.forceX-=d,f.forceY-=l;d=0;e=a.moveLimit;for(c=0;ce&&(g=e),k<-e?k=-e:k>e&&(k=e),f.centerX+=g,f.centerY+=k,d=Math.max(d,g*g+k*k));return d>a.epsilonDistance*a.epsilonDistance}Nr.prototype.moveFixedVertex=function(){};Nr.prototype.commitLayout=function(){this.fw();this.commitNodes();this.isRouting&&this.commitLinks()};Nr.prototype.fw=function(){if(this.setsPortSpots)for(var a=this.network.edges.iterator;a.next();){var b=a.value.link;null!==b&&(b.fromSpot=Zc,b.toSpot=Zc)}};\nNr.prototype.commitNodes=function(){var a=0,b=0;if(this.arrangesToOrigin){var c=N.alloc();this.computeBounds(this.network,c);b=this.arrangementOrigin;a=b.x-c.x;b=b.y-c.y;N.free(c)}c=N.alloc();for(var d=this.network.vertexes.iterator;d.next();){var e=d.value;if(0!==a||0!==b)c.assign(e.bounds),c.x+=a,c.y+=b,e.bounds=c;e.commit()}N.free(c)};Nr.prototype.commitLinks=function(){for(var a=this.network.edges.iterator;a.next();)a.value.commit()};\nNr.prototype.springStiffness=function(a){a=a.stiffness;return isNaN(a)?this.Uk:a};Nr.prototype.springLength=function(a){a=a.length;return isNaN(a)?this.Tk:a};Nr.prototype.electricalCharge=function(a){a=a.charge;return isNaN(a)?this.Rk:a};Nr.prototype.electricalFieldX=function(){return 0};Nr.prototype.electricalFieldY=function(){return 0};Nr.prototype.gravitationalMass=function(a){a=a.mass;return isNaN(a)?this.Sk:a};Nr.prototype.gravitationalFieldX=function(){return 0};\nNr.prototype.gravitationalFieldY=function(){return 0};Nr.prototype.isFixed=function(a){return a.isFixed};\nma.Object.defineProperties(Nr.prototype,{currentIteration:{get:function(){return this.jo}},arrangementSpacing:{get:function(){return this.zd},set:function(a){this.zd.w(a)||(this.zd.assign(a),this.C())}},arrangesToOrigin:{get:function(){return this.Xm},set:function(a){this.Xm!==a&&(this.Xm=a,this.C())}},setsPortSpots:{get:function(){return this.cf},set:function(a){this.cf!==a&&(this.cf=\na,this.C())}},comments:{get:function(){return this.Zc},set:function(a){this.Zc!==a&&(this.Zc=a,this.C())}},maxIterations:{get:function(){return this.yl},set:function(a){this.yl!==a&&0<=a&&(this.yl=a,this.C())}},epsilonDistance:{get:function(){return this.Fn},set:function(a){this.Fn!==a&&0u&&0u&&0a[this.rd]&&(this.Zr=a[c]-1,this.rd=c),a[c]g)for(var m=g+1;mk;m--)n=d[m],n.near===l&&n.Wj===l.Wj||h++;var p;if(0<=c)for(k=d[g].sourceEdgesArrayAccess,l=0;lu||n===u&&r>q)&&h++;vn||u===n&&q>r)&&h++}}}if(0>=c)for(k=d[g].destinationEdgesArrayAccess,l=0;lu||n===u&&m>v)&&h++,qn||u===n&&v>m)&&h++);f[g*e+g]=h;for(k=g+\n1;k=c)for(h=d[g].destinationEdgesArrayAccess,z=d[k].destinationEdgesArrayAccess,l=0;l=c&&(k=h.sourceEdgesArrayAccess);var l=null;0<=c&&(l=h.destinationEdgesArrayAccess);var m=0,n=0,p=h.near;null!==p&&p.layer===h.layer&&(m+=p.column-1,n++);if(null!==k)for(p=0;p=c&&(k=h.sourceEdgesArrayAccess);var l=null;0<=c&&(l=h.destinationEdgesArrayAccess);var m=0,n=[],p=h.near;null!==p&&p.layer===h.layer&&(n[m]=p.column-1,m++);h=void 0;if(null!==k)for(p=0;p>1,f[g]=0!==(m&1)?n[l]:n[l-1]+n[l]>>1)}ls(a,b,d);return f}function ts(a,b,c,d,e,f){if(b.component===d){b.component=c;if(e)for(var g=b.destinationEdges;g.next();){var h=g.value;var k=h.toVertex;var l=b.layer-k.layer;h=a.linkMinLength(h);l===h&&ts(a,k,c,d,e,f)}if(f)for(g=b.sourceEdges;g.next();)h=g.value,k=h.fromVertex,l=k.layer-b.layer,h=a.linkMinLength(h),l===h&&ts(a,k,c,d,e,f)}}\nfunction us(a,b,c,d,e,f){if(b.component===d){b.component=c;if(e)for(var g=b.destinationEdges;g.next();)us(a,g.value.toVertex,c,d,e,f);if(f)for(b=b.sourceEdges;b.next();)us(a,b.value.fromVertex,c,d,e,f)}}\nbs.prototype.removeCycles=function(){for(var a=this.network.edges.iterator;a.next();)a.value.rev=!1;switch(this.Pk){default:case vs:a=this.network;var b=0,c=a.vertexes.count-1,d=[];d.length=c+1;for(var e=a.vertexes.iterator;e.next();)e.value.valid=!0;for(;null!==ws(a);){for(e=xs(a);null!==e;)d[c]=e,c--,e.valid=!1,e=xs(a);for(e=ys(a);null!==e;)d[b]=e,b++,e.valid=!1,e=ys(a);e=null;for(var f=0,g=this.network.vertexes.iterator;g.next();){var h=g.value;if(h.valid){for(var k=0,l=h.destinationEdges;l.next();)l.value.toVertex.valid&&\nk++;l=0;for(var m=h.sourceEdges;m.next();)m.value.fromVertex.valid&&l++;if(null===e||fb.toVertex.index&&(a.Em(b),b.rev=!0);break;case cs:for(d=this.network.vertexes.iterator;d.next();)a=d.value,a.fm=-1,a.finish=-1;for(a=this.network.edges.iterator;a.next();)a.value.forest=!1;this.Mo=0;for(d.reset();d.next();)b=d.value,0===b.sourceEdges.count&&\nzs(this,b);for(d.reset();d.next();)b=d.value,-1===b.fm&&zs(this,b);for(a.reset();a.next();)d=a.value,d.forest||(b=d.fromVertex,c=b.finish,e=d.toVertex,f=e.finish,e.fmd){if(0>d)for(b.reset();b.next();)b.value.layer-=d;d=[];for(b.reset();b.next();)c=b.value,e=d[c.layer],void 0===e?d[c.layer]=[c]:e.push(c);for(c=b=0;cg&&ts(a,h,0,-1,!0,!1)}for(ts(a,b,1,-1,!0,!0);0!==b.component;){f=0;d=Infinity;h=0;k=null;for(g=a.network.vertexes.iterator;g.next();){var l=g.value;if(1===l.component){var m=0,n=!1,p=l.sourceEdgesArrayAccess;\ne=p.length;for(var r=0;rf)&&!m&&(h=g,f=l)}if(0>d){for(c.reset();c.next();)d=c.value,1===d.component&&(d.layer-=e);b.component=0}else h.component=0}}}\nfunction js(a,b,c){return 90===a.J?c&&!b.rev||!c&&b.rev?270:90:180===a.J?c&&!b.rev||!c&&b.rev?0:180:270===a.J?c&&!b.rev||!c&&b.rev?90:270:c&&!b.rev||!c&&b.rev?180:0}\nbs.prototype.initializeIndices=function(){switch(this.il){default:case Gs:for(var a=this.network.vertexes.iterator;a.next();){var b=a.value,c=b.layer;b.index=this.gc[c];this.gc[c]++}break;case es:a=this.network.vertexes.iterator;for(b=this.xa;0<=b;b--)for(a.reset();a.next();)c=a.value,c.layer===b&&-1===c.index&&Hs(this,c);break;case Is:for(a=this.network.vertexes.iterator,b=0;b<=this.xa;b++)for(a.reset();a.next();)c=a.value,c.layer===b&&-1===c.index&&Js(this,c)}};\nfunction Hs(a,b){var c=b.layer;b.index=a.gc[c];a.gc[c]++;b=b.destinationEdgesArrayAccess;for(c=!0;c;){c=!1;for(var d=0;df.portFromColOffset&&(c=!0,b[d]=f,b[d+1]=e)}}for(c=0;cf.portToColOffset&&(d=!0,b[c]=f,b[c+1]=e)}for(c=0;c=g;d--)f=Ls(this,d,-1)||f;e=this.countCrossings();e>=a?os(this,b):(a=e,b=ns(this));for(f=!0;f;)for(f=!1,d=c;d>=g;d--)f=Ls(this,d,1)||f;e=this.countCrossings();e>=a?os(this,b):(a=e,b=ns(this));for(f=!0;f;)for(f=!1,d=g;d<=c;d++)f=Ls(this,d,1)||f;e>=a?os(this,b):(a=e,b=ns(this));for(f=!0;f;)for(f=!1,d=g;d<=c;d++)f=\nLs(this,d,-1)||f;e>=a?os(this,b):(a=e,b=ns(this));for(f=!0;f;)for(f=!1,d=c;d>=g;d--)f=Ls(this,d,0)||f;e>=a?os(this,b):(a=e,b=ns(this));for(f=!0;f;)for(f=!1,d=g;d<=c;d++)f=Ls(this,d,0)||f;e>=a?os(this,b):(a=e,b=ns(this))}break;default:case fs:for(c=this.xa,g=0,h=a+1;(d=this.countCrossings())=g;d--)f=Ls(this,d,-1)||f;e=this.countCrossings();e>=a?os(this,b):(a=e,b=ns(this));for(f=!0;f;)for(f=!1,d=c;d>=g;d--)f=Ls(this,d,1)||f;e=this.countCrossings();e>=a?os(this,b):\n(a=e,b=ns(this));for(f=!0;f;)for(f=!1,d=g;d<=c;d++)f=Ls(this,d,1)||f;e>=a?os(this,b):(a=e,b=ns(this));for(f=!0;f;)for(f=!1,d=g;d<=c;d++)f=Ls(this,d,-1)||f;e>=a?os(this,b):(a=e,b=ns(this));for(f=!0;f;)for(f=!1,d=c;d>=g;d--)f=Ls(this,d,0)||f;e>=a?os(this,b):(a=e,b=ns(this));for(f=!0;f;)for(f=!1,d=g;d<=c;d++)f=Ls(this,d,0)||f;e>=a?os(this,b):(a=e,b=ns(this))}}os(this,b)};\nfunction Ks(a,b,c){var d=ks(a,b),e=a.gc[b],f=ss(a,b,c),g=rs(a,b,c);for(c=0;cf+1&&(p+=4*(y-f),r+=4*(y-(f+1)))}A=d[f].destinationEdges.iterator;for(A.reset();A.next();)if(y=A.value,z=y.toVertex,y.valid&&z.layer===b){for(y=0;d[y]!==z;)y++;y===f+1&&(r+=1)}A=d[f+1].sourceEdges.iterator;for(A.reset();A.next();)if(y=A.value,z=y.fromVertex,y.valid&&z.layer===b){for(y=0;d[y]!==z;)y++;yf+1&&(p+=4*(y-(f+1)),r+=4*(y-f))}A=d[f+1].destinationEdges.iterator;\nfor(A.reset();A.next();)if(y=A.value,z=y.toVertex,y.valid&&z.layer===b){for(y=0;d[y]!==z;)y++;y===f&&(p+=1)}y=z=0;A=g[d[f].index];var C=h[d[f].index],G=g[d[f+1].index],L=h[d[f+1].index];-1!==A&&(z+=Math.abs(A-q),y+=Math.abs(A-w));-1!==C&&(z+=Math.abs(C-q),y+=Math.abs(C-w));-1!==G&&(z+=Math.abs(G-u),y+=Math.abs(G-v));-1!==L&&(z+=Math.abs(L-u),y+=Math.abs(L-v));if(r>1)+8*d;this.Da*=8}if(0!==(this.mg&2))for(c=!0;c;){c=!1;for(b=this.rd+1;b<=this.xa;b++)c=Os(this,b,1)||c;for(b=\nthis.rd-1;0<=b;b--)c=Os(this,b,-1)||c;c=Os(this,this.rd,0)||c}if(0!==(this.mg&4)){for(b=this.rd+1;b<=this.xa;b++)Ps(this,b,1);for(b=this.rd-1;0<=b;b--)Ps(this,b,-1);Ps(this,this.rd,0)}a&&(Qs(this,-1),Qs(this,1));if(0!==(this.mg&2))for(c=!0;c;){c=!1;c=Os(this,this.rd,0)||c;for(b=this.rd+1;b<=this.xa;b++)c=Os(this,b,0)||c;for(b=this.rd-1;0<=b;b--)c=Os(this,b,0)||c}};function Os(a,b,c){for(var d=!1;Rs(a,b,c);)d=!0;return d}\nfunction Rs(a,b,c){var d,e=ks(a,b),f=a.gc[b],g=rs(a,b,-1);if(0c)for(d=0;dd-1||m-e[d-1].column-1>n+a.nodeMinColumnSpace(e[d-1],!1)?r=m-1:r=m;n=d+1>=f||e[d+1].column-m-1>p+a.nodeMinColumnSpace(e[d+1],!0)?m+1:m;var q=p=0,u=0;if(0>=c)for(var v=e[d].sourceEdges.iterator;v.next();){var w=v.value;var y=w.fromVertex;\nif(w.valid&&y.layer!==b){var z=ms(w);var A=w.portFromColOffset;w=w.portToColOffset;y=y.column;p+=(Math.abs(m+w-(y+A))+1)*z;q+=(Math.abs(r+w-(y+A))+1)*z;u+=(Math.abs(n+w-(y+A))+1)*z}}if(0<=c)for(v=e[d].destinationEdges.iterator;v.next();)w=v.value,y=w.toVertex,w.valid&&y.layer!==b&&(z=ms(w),A=w.portFromColOffset,w=w.portToColOffset,y=y.column,p+=(Math.abs(m+A-(y+w))+1)*z,q+=(Math.abs(r+A-(y+w))+1)*z,u+=(Math.abs(n+A-(y+w))+1)*z);w=A=z=0;v=g[e[d].index];y=h[e[d].index];-1!==v&&(z+=Math.abs(v-m),A+=\nMath.abs(v-r),w+=Math.abs(v-n));-1!==y&&(z+=Math.abs(y-m),A+=Math.abs(y-r),w+=Math.abs(y-n));if(q=g[c]?m=k:l<=g[c]&&(m=l));m!==h&&(f=!0,d[c].column=m)}ls(a,b,d);a.normalize()}\nfunction Ss(a,b){for(var c=!0,d=a.network.vertexes.iterator;d.next();){var e=d.value,f=a.nodeMinColumnSpace(e,!0),g=a.nodeMinColumnSpace(e,!1);if(e.column-f<=b&&e.column+g>=b){c=!1;break}}a=!1;if(c)for(d.reset();d.next();)c=d.value,c.column>b&&(--c.column,a=!0);return a}\nfunction Ts(a,b){var c=b+1;var d,e=[],f=[];for(d=0;d<=a.xa;d++)e[d]=!1,f[d]=!1;for(var g=a.network.vertexes.iterator;g.next();){d=g.value;var h=d.column-a.nodeMinColumnSpace(d,!0),k=d.column+a.nodeMinColumnSpace(d,!1);h<=b&&k>=b&&(e[d.layer]=!0);h<=c&&k>=c&&(f[d.layer]=!0)}h=!0;c=!1;for(d=0;d<=a.xa;d++)h=h&&!(e[d]&&f[d]);if(h)for(g.reset();g.next();)a=g.value,a.column>b&&(--a.column,c=!0);return c}\nfunction Qs(a,b){for(var c=0;c<=a.Da;c++)for(;Ss(a,c););a.normalize();for(c=0;cf?os(a,e):gb)for(c=a.Da;0<=c;c--)for(e=ns(a),f=qs(a),d=f+1;ff?os(a,e):gc)for(d.reset();d.next();)e=d.value,e.column+a.nodeMinColumnSpace(e,!1)>=b&&(e.component=a.Od);a.Od++;for(d.reset();d.next();)b=d.value,-1===b.component&&(us(a,b,a.Od,-1,!0,!0),a.Od++);var f;b=[];for(f=0;fc)for(g=a.Da;0c)for(d.reset();d.next();)c=d.value,e[c.component]&&(c.column+=1)}\nbs.prototype.commitLayout=function(){if(this.setsPortSpots)for(var a=is(this,!0),b=is(this,!1),c=this.network.edges.iterator;c.next();){var d=c.value.link;null!==d&&(d.fromSpot=a,d.toSpot=b)}this.commitNodes();this.hv();this.isRouting&&this.commitLinks()};function is(a,b){return 270===a.J?b?dd:gd:90===a.J?b?gd:dd:180===a.J?b?ed:fd:b?fd:ed}\nbs.prototype.commitNodes=function(){this.Kd=[];this.qd=[];this.pd=[];this.Ga=[];for(var a=0;a<=this.xa;a++)this.Kd[a]=0,this.qd[a]=0,this.pd[a]=0,this.Ga[a]=0;for(a=this.network.vertexes.iterator;a.next();){var b=a.value,c=b.layer;this.Kd[c]=Math.max(this.Kd[c],this.nodeMinLayerSpace(b,!0));this.qd[c]=Math.max(this.qd[c],this.nodeMinLayerSpace(b,!1))}b=0;c=this.me;for(var d=0;d<=this.xa;d++){var e=c;0>=this.Kd[d]+this.qd[d]&&(e=0);0=n.bounds.bottom?\n(n=n.bounds.y+n.bounds.height,b.m(q++,z,n+C),b.m(q++,z,n),b.m(q++,z,n-y)):(b.m(q++,z,A+C),b.m(q++,z,A),b.m(q++,z,A-y)):270===this.J?A<=n.bounds.y?(n=n.bounds.y,b.m(q++,z,n-y),b.m(q++,z,n),b.m(q++,z,n+C)):(b.m(q++,z,A-y),b.m(q++,z,A),b.m(q++,z,A+C)):0===this.J&&(z>=n.bounds.right?(n=n.bounds.x+n.bounds.width,b.m(q++,n+C,A),b.m(q++,n,A),b.m(q++,n-y,A)):(b.m(q++,z+C,A),b.m(q++,z,A),b.m(q++,z-y,A)));else{b.m(q++,v,w);var G=0;if(180===this.J||0===this.J){if(180===this.J?z>=n.bounds.right:z<=n.bounds.x)G=\n(0===this.J?-y:C)/2;b.m(q++,v+G,A)}else{if(270===this.J?A>=n.bounds.bottom:A<=n.bounds.y)G=(90===this.J?-y:C)/2;b.m(q++,z,w+G)}b.m(q++,z,A)}}else y=Math.max(10,this.Kd[u.layer]),C=Math.max(10,this.qd[u.layer]),180===this.J?(r&&b.m(q++,z-y,A),b.m(q++,z,A),r&&b.m(q++,z+C,A)):90===this.J?(r&&b.m(q++,z,A+C),b.m(q++,z,A),r&&b.m(q++,z,A-y)):270===this.J?(r&&b.m(q++,z,A-y),b.m(q++,z,A),r&&b.m(q++,z,A+C)):(r&&b.m(q++,z+C,A),b.m(q++,z,A),r&&b.m(q++,z-y,A))}n=u}if(null===h||l!==uc||p)if(v=b.i(q-1).x,w=b.i(q-\n1).y,z=b.i(q).x,A=b.i(q).y,p)n=this.qd[m.layer],180===this.J||0===this.J?(p=w,p>=m.bounds.y&&p<=m.bounds.bottom&&(180===this.J?z>=m.bounds.x:z<=m.bounds.right)&&(n=m.centerX+(180===this.J?-n:n),p=m.bounds.x&&p<=m.bounds.right&&(270===this.J?A>=m.bounds.y:A<=m.bounds.bottom)&&(n=m.centerY+(270===this.J?-n:n),p=m.bounds.x?(n=m.bounds.x+m.bounds.width,b.K(q-2,n,w),b.K(q-1,n+C,w)):90===this.J&&A<=m.bounds.bottom?(n=m.bounds.y,b.K(q-2,v,n),b.K(q-1,v,n-y)):270===this.J&&A>=m.bounds.y?(n=m.bounds.y+m.bounds.height,b.K(q-2,v,n),b.K(q-1,v,n+C)):0===this.J&&z<=m.bounds.right&&(n=m.bounds.x,b.K(q-2,n,w),b.K(q-1,n-y,w));else{y=Math.max(10,this.Kd[m.layer]);C=Math.max(10,\nthis.qd[m.layer]);p=0;if(180===this.J||0===this.J){if(180===this.J?z<=m.bounds.x:z>=m.bounds.right)p=(0===this.J?C:-y)/2;b.m(q++,z+p,w)}else{if(270===this.J?A<=m.bounds.y:A>=m.bounds.bottom)p=(90===this.J?C:-y)/2;b.m(q++,v,A+p)}b.m(q++,z,A)}}else{for(;null!==m&&m!==n;){y=u=null;for(m=m.destinationEdges.iterator;m.next()&&(v=m.value,v.link!==c.link||(u=v.toVertex,y=v.fromVertex,null!==y.node&&(y=null),null!==u.node)););u!==n&&(v=b.i(q-1).x,w=b.i(q-1).y,z=u.centerX,A=u.centerY,p?180===this.J||0===this.J?\n(null!==y?y.centerY:w)!==A&&(y=this.Ga[u.layer]+this.Jf.x,q===b.firstPickIndex+1&&(y=0===this.J?Math.max(y,v):Math.min(y,v)),b.m(q++,y,w),b.m(q++,y,A)):(null!==y?y.centerX:v)!==z&&(y=this.Ga[u.layer]+this.Jf.y,q===b.firstPickIndex+1&&(y=90===this.J?Math.max(y,w):Math.min(y,w)),b.m(q++,v,y),b.m(q++,z,y)):(y=Math.max(10,this.Kd[u.layer]),C=Math.max(10,this.qd[u.layer]),180===this.J?(b.m(q++,z+C,A),r&&b.m(q++,z,A),b.m(q++,z-y,A)):90===this.J?(b.m(q++,z,A-y),r&&b.m(q++,z,A),b.m(q++,z,A+C)):270===this.J?\n(b.m(q++,z,A+C),r&&b.m(q++,z,A),b.m(q++,z,A-y)):(b.m(q++,z-y,A),r&&b.m(q++,z,A),b.m(q++,z+C,A))));m=u}p&&(v=b.i(q-1).x,w=b.i(q-1).y,z=b.i(q).x,A=b.i(q).y,180===this.J||0===this.J?w!==A&&(y=0===this.J?Math.min(Math.max((z+v)/2,this.Ga[n.layer]+this.Jf.x),z):Math.max(Math.min((z+v)/2,this.Ga[n.layer]+this.Jf.x),z),b.m(q++,y,w),b.m(q++,y,A)):v!==z&&(y=90===this.J?Math.min(Math.max((A+w)/2,this.Ga[n.layer]+this.Jf.y),A):Math.max(Math.min((A+w)/2,this.Ga[n.layer]+this.Jf.y),A),b.m(q++,v,y),b.m(q++,z,y)))}null!==\nd&&r&&(null!==g&&(l===uc&&(l=b.i(0),d=b.i(2),l.w(d)||b.K(1,(l.x+d.x)/2,(l.y+d.y)/2)),l=b.getLinkPoint(e,g,uc,!0,!1,f,h),l.v()||l.set(e.actualBounds.center),b.K(0,l.x,l.y)),null!==h&&(k===uc&&(k=b.i(b.pointsCount-1),l=b.i(b.pointsCount-3),k.w(l)||b.K(b.pointsCount-2,(k.x+l.x)/2,(k.y+l.y)/2)),e=b.getLinkPoint(f,h,uc,!1,!1,e,g),e.v()||e.set(f.actualBounds.center),b.K(b.pointsCount-1,e.x,e.y)));b.rf();c.commit()}}}this.avoidOrthogonalOverlaps()};\nbs.prototype.avoidOrthogonalOverlaps=function(){for(var a=new E,b=this.network.edges.iterator;b.next();){var c=b.value.link;null!==c&&c.isOrthogonal&&!a.contains(c)&&a.add(c)}if(0f.y&&(m=l.y>f.y?0:g.xf.x&&(m=l.x>f.x?0:g.yb.layer?1:a.Tcb.Tc?1:a.tcb.tc?1:0:0};t.gy=function(a,b){return a instanceof Vs&&b instanceof Vs&&a!==b?a.firstb.first||a.lb.l||a.Tcb.Tc?1:a.tcb.tc?1:0:0};\nt.Kt=function(a,b){return a instanceof Vs&&b instanceof Vs&&a!==b?a.Xbb.Xb||a.lb.l||a.Tcb.Tc?1:a.tcb.tc?1:0:0};t.A=function(a,b){a-=b;return-1a};\nt.ej=function(a,b,c,d){var e=a.length,f=d-c;if(!(1>=f))if((0>c||c>=e-1)&&B(\"not in range 0 <= from < length: \"+c),2===f)d=a[c],e=a[c+1],0=e)a.sort(b);else for(c=a.slice(0,d),c.sort(b),b=0;b=e)for(d=a.slice(c),d.sort(b),b=c;b=a.pe.length){var d=[];for(var e=0;ea&&(this.mg=a,this.C())}},setsPortSpots:{get:function(){return this.cf},set:function(a){this.cf!==a&&(this.cf=a,this.C())}},\nlinkSpacing:{get:function(){return this.ro},set:function(a){this.ro!==a&&0<=a&&(this.ro=a,this.C())}},maxLayer:{get:function(){return this.xa}},maxIndex:{get:function(){return this.Zr}},maxColumn:{get:function(){return this.Da}},minIndexLayer:{get:function(){return this.Co}},maxIndexLayer:{get:function(){return this.rd}}});\nvar cs=new D(bs,\"CycleDepthFirst\",0),vs=new D(bs,\"CycleGreedy\",1),hs=new D(bs,\"CycleFromLayers\",2),ds=new D(bs,\"LayerOptimalLinkLength\",0),As=new D(bs,\"LayerLongestPathSink\",1),Cs=new D(bs,\"LayerLongestPathSource\",2),es=new D(bs,\"InitDepthFirstOut\",0),Is=new D(bs,\"InitDepthFirstIn\",1),Gs=new D(bs,\"InitNaive\",2),Ms=new D(bs,\"AggressiveNone\",0),fs=new D(bs,\"AggressiveLess\",1),Ns=new D(bs,\"AggressiveMore\",2);bs.className=\"LayeredDigraphLayout\";bs.CycleDepthFirst=cs;bs.CycleGreedy=vs;\nbs.CycleFromLayers=hs;bs.LayerOptimalLinkLength=ds;bs.LayerLongestPathSink=As;bs.LayerLongestPathSource=Cs;bs.InitDepthFirstOut=es;bs.InitDepthFirstIn=Is;bs.InitNaive=Gs;bs.AggressiveNone=Ms;bs.AggressiveLess=fs;bs.AggressiveMore=Ns;bs.PackNone=0;bs.PackExpand=1;bs.PackStraighten=2;bs.PackMedian=4;bs.PackAll=7;function Vs(){this.index=this.tc=this.Tc=this.Xb=this.first=this.layer=0;this.link=null;this.l=0}Vs.className=\"SegInfo\";function gs(a){Qp.call(this,a)}la(gs,Qp);gs.prototype.createVertex=function(){return new Ws(this)};\ngs.prototype.createEdge=function(){return new Xs(this)};gs.className=\"LayeredDigraphNetwork\";function Ws(a){Tp.call(this,a);this.Pa=this.Og=this.ui=-1;this.I=NaN;this.Y=null;this.valid=!1;this.finish=this.fm=NaN;this.Wj=0;this.Nv=this.Ov=null}la(Ws,Tp);\nma.Object.defineProperties(Ws.prototype,{layer:{get:function(){return this.ui},set:function(a){this.ui!==a&&(this.ui=a)}},column:{get:function(){return this.Og},set:function(a){this.Og!==a&&(this.Og=a)}},index:{get:function(){return this.Pa},set:function(a){this.Pa!==a&&(this.Pa=a)}},component:{get:function(){return this.I},set:function(a){this.I!==a&&(this.I=a)}},near:{\nget:function(){return this.Y},set:function(a){this.Y!==a&&(this.Y=a)}}});Ws.className=\"LayeredDigraphVertex\";function Xs(a){Up.call(this,a);this.l=this.Ia=this.Za=!1;this.Ha=this.I=NaN;this.Y=this.u=0}la(Xs,Up);\nma.Object.defineProperties(Xs.prototype,{valid:{get:function(){return this.Za},set:function(a){this.Za!==a&&(this.Za=a)}},rev:{get:function(){return this.Ia},set:function(a){this.Ia!==a&&(this.Ia=a)}},forest:{get:function(){return this.l},set:function(a){this.l!==a&&(this.l=a)}},portFromPos:{get:function(){return this.I},set:function(a){this.I!==a&&(this.I=a)}},portToPos:{\nget:function(){return this.Ha},set:function(a){this.Ha!==a&&(this.Ha=a)}},portFromColOffset:{get:function(){return this.u},set:function(a){this.u!==a&&(this.u=a)}},portToColOffset:{get:function(){return this.Y},set:function(a){this.Y!==a&&(this.Y=a)}}});Xs.className=\"LayeredDigraphEdge\";\nfunction Ys(){Ci.call(this);this.Hb=new F;this.ap=Zs;this.$c=$s;this.Xp=at;this.Yr=bt;this.Lw=[];this.Zc=!0;this.Ab=ct;this.zd=(new M(10,10)).freeze();var a=new dt(this);this.T=new et(a);this.U=new et(a);this.Uu=[]}la(Ys,Ci);Ys.prototype.cloneProtected=function(a){Ci.prototype.cloneProtected.call(this,a);a.ap=this.ap;a.Xp=this.Xp;a.Yr=this.Yr;a.Zc=this.Zc;a.Ab=this.Ab;a.zd.assign(this.zd);a.T.copyInheritedPropertiesFrom(this.T);a.U.copyInheritedPropertiesFrom(this.U)};\nYs.prototype.cb=function(a){a.classType===Ys?0===a.name.indexOf(\"Alignment\")?this.alignment=a:0===a.name.indexOf(\"Arrangement\")?this.arrangement=a:0===a.name.indexOf(\"Compaction\")?this.compaction=a:0===a.name.indexOf(\"Path\")?this.path=a:0===a.name.indexOf(\"Sorting\")?this.sorting=a:0===a.name.indexOf(\"Style\")?this.treeStyle=a:B(\"Unknown enum value: \"+a):Ci.prototype.cb.call(this,a)};Ys.prototype.createNetwork=function(){return new dt(this)};\nYs.prototype.makeNetwork=function(a){function b(a){if(a instanceof W)return!a.isLinkLabel&&\"Comment\"!==a.category;if(a instanceof S){var b=a.fromNode;if(null===b||b.isLinkLabel||\"Comment\"===b.category)return!1;a=a.toNode;return null===a||a.isLinkLabel||\"Comment\"===a.category?!1:!0}return!1}var c=this.createNetwork();a instanceof R?(c.xg(a.nodes,!0,b),c.xg(a.links,!0,b)):a instanceof T?c.xg(a.memberParts,!1,b):c.xg(a.iterator,!1,b);return c};\nYs.prototype.doLayout=function(a){null===this.network&&(this.network=this.makeNetwork(a));this.arrangement!==ft&&(this.arrangementOrigin=this.initialOrigin(this.arrangementOrigin));var b=this.diagram;null===b&&a instanceof R&&(b=a);this.path===Zs&&null!==b?this.$c=b.isTreePathToChildren?$s:gt:this.$c=this.path===Zs?$s:this.path;if(0b.level)return!1;a.removeChild(c.parent,c)}return!0}Ys.prototype.removeChild=function(a,b){if(null!==a&&null!==b){for(var c=a.children,d=0,e=0;ee?St(a,g,O,w,y):Tt(a,g,O,w,y);O=y.x;w=y.width;y=y.height;break;case Bt:for(A=0;An&&(KEa&&(Yt(a,-Ea,0,pa,xa-1),Zt(A,-Ea,0),Zt(C,-Ea,0),Ea=0)}Ma.S.h(Ea,V);w=Math.max(w,G);y=Math.max(y,z+(0===Q?0:q)+hb.height);K=G}else{0n&&(VEa&&(Yt(a,0,-Ea,pa,xa-1),Zt(A,0,-Ea),Zt(C,0,-Ea),Ea=0);Ma.S.h(K,Ea);y=Math.max(y,L);w=Math.max(w,z+(0===Q?0:q)+hb.width);V=L}ca++}0l&&(l=0),135u&&(u=0),\nk===Ct&&(h+=p/2+a.focus.y),g+=d+c):b?(null===a.comments?d>w&&(w=du(k,d-w,0),g=w.x,h=w.y,w=d,l=0):w=bu(a,w,l),0>l&&(g-=l,l=0),135y&&(y=du(k,0,v-y),g=y.x,h=y.y,y=v,u=0):y=cu(a,y,u),0>u&&(h-=u,u=0),g+=d+c);if(0e[0].x?e[2].assign(e[1]):e[1].assign(e[2])),e[3].ye[0].x?e[3].assign(e[2]):e[2].assign(e[3])),Q[0].h(l+d,0),Q[1].h(Q[0].x,v),Q[2].ye[0].y?e[2].assign(e[1]):e[1].assign(e[2])),e[3].xe[0].y?e[3].assign(e[2]):e[2].assign(e[3])),Q[0].h(0,u+v),Q[1].h(d,Q[0].y),Q[2].xd?St(b,e,ca,\nz,A):Tt(b,e,ca,z,A);ca=A.x;z=A.width;A=A.height;break;case Bt:for(a=0;ap&&(Gp&&(Ln&&(n=0),135w&&(w=0));b.da.h(n,w);b.ta.h(z,A)}}\nfunction St(a,b,c,d,e){var f=b.length;if(0===f)return new N(c,0,d,e);if(1===f)return a=b[0],d=a.ta.width,e=a.ta.height,new N(c,0,d,e);for(var g=a.nodeSpacing,h=a.rowSpacing,k=90===It(a),l=0,m=0,n=0,p=0;pk&&(d-=k),e=Math.max(e,Math.max(p,n)+h+f.height),0>b.S.x&&\n(c=gu(a,b.S.x,!1,c,g))):(b.S.h(d+h,c+g/2-b.focus.y-b.da.y),d=Math.max(d,Math.max(r,m)+h+f.width),n=c+g/2-b.focus.y-b.da.y,e=Math.max(e,n+f.height),0>n&&(e-=n),0>b.S.y&&(c=gu(a,b.S.y,!0,c,g))));return new N(c,0,d,e)}\nfunction Tt(a,b,c,d,e){var f=b.length;if(0===f)return new N(c,0,d,e);if(1===f)return b=b[0],d=b.ta.width,e=b.ta.height,new N(c,0,d,e);for(var g=a.nodeSpacing,h=a.rowSpacing,k=270===It(a),l=0,m=0,n=0,p=0;pm&&(d-=m),e=Math.max(e,Math.abs(Math.min(p,n))+q+l.height),\n0>h.S.x&&(c=gu(a,h.S.x,!1,c,g))):(h.S.h(-d-l.width-q,c+g/2-h.focus.y-h.da.y),d=Math.max(d,Math.abs(Math.min(r,m))+q+l.width),n=c+g/2-h.focus.y-h.da.y,e=Math.max(e,n+l.height),0>n&&(e-=n),0>h.S.y&&(c=gu(a,h.S.y,!0,c,g))));for(a=0;ab&&(b=c+a.width),0>c&&(b-=c),b;case Rt:return a.width>b?a.width:b;case Jt:return 2*a.focus.x>b?a.width:b+a.width-2*a.focus.x;case At:case qt:return Math.max(a.width,Math.max(b,c+a.width)-Math.min(0,c));case Bt:return a.width-a.focus.x+a.nodeSpacing/2+b;case Ct:return Math.max(a.width,a.focus.x+a.nodeSpacing/2+b);default:return b}}\nfunction cu(a,b,c){switch(a.alignment){case au:case $t:return c+a.height>b&&(b=c+a.height),0>c&&(b-=c),b;case Rt:return a.height>b?a.height:b;case Jt:return 2*a.focus.y>b?a.height:b+a.height-2*a.focus.y;case At:case qt:return Math.max(a.height,Math.max(b,c+a.height)-Math.min(0,c));case Bt:return a.height-a.focus.y+a.nodeSpacing/2+b;case Ct:return Math.max(a.height,a.focus.y+a.nodeSpacing/2+b);default:return b}}\nfunction du(a,b,c){switch(a){case $t:b/=2;c/=2;break;case au:b/=2;c/=2;break;case Rt:c=b=0;break;case Jt:break;default:B(\"Unhandled alignment value \"+a.toString())}return new I(b,c)}function Vt(a,b,c,d,e,f){b=du(b,c,d);Yt(a,b.x,b.y,e,f)}function Yt(a,b,c,d,e){if(0!==b||0!==c)for(a=a.children;d<=e;d++){var f=a[d].S;f.x+=b;f.y+=c}}\nfunction Wt(a,b,c,d){var e=b.parent;switch(a.$c){case $s:for(a=b.sourceEdges;a.next();)b=a.value,b.fromVertex===e&&b.relativePoint.h(c,d);break;case gt:for(a=b.destinationEdges;a.next();)b=a.value,b.toVertex===e&&b.relativePoint.h(c,d);break;default:B(\"Unhandled path value \"+a.$c.toString())}}function Zt(a,b,c){for(var d=0;dn.length||null===r||2>r.length))for(e=c=0;cl&&f.yf.y&&lb.length||null===c||2>c.length)d=null;else{m=Ut(a,b.length+c.length);for(d=f=k=0;fk;)l=c[f++],m[d++].h(l.x+e,l.y);c=Ut(a,d);for(k=0;kn.length||null===f||2>f.length)e=null;else{m=Ut(a,n.length+f.length);for(e=l=c=0;cf;)k=n[c++],m[e++].h(k.x,k.y);f=Ut(a,e);for(c=0;cn.length||null===r||2>r.length))for(e=c=0;ck&&f.xf.x&&kb.length||null===c||2>c.length)d=null;else{m=Ut(a,b.length+c.length);for(d=f=k=0;fk;)l=c[f++],m[d++].h(l.x,l.y+e);c=Ut(a,d);for(k=0;kn.length||null===f||2>f.length)e=null;else{m=Ut(a,n.length+f.length);for(e=l=c=0;cf;)k=n[c++],m[e++].h(k.x,k.y);f=Ut(a,e);for(c=0;c=a?0:135>=a?90:225>=a?180:315>=a?270:0}function Kt(a){var b=It(a);b=90===b||270===b;var c=a.layerSpacing;if(0=a&&(this.T.nodeIndentPastParent=a,this.C())}},nodeSpacing:{get:function(){return this.T.nodeSpacing},set:function(a){this.T.nodeSpacing!==a&&(this.T.nodeSpacing=a,this.C())}},layerSpacing:{get:function(){return this.T.layerSpacing},set:function(a){this.T.layerSpacing!==\na&&(this.T.layerSpacing=a,this.C())}},layerSpacingParentOverlap:{get:function(){return this.T.layerSpacingParentOverlap},set:function(a){this.T.layerSpacingParentOverlap!==a&&0<=a&&1>=a&&(this.T.layerSpacingParentOverlap=a,this.C())}},compaction:{get:function(){return this.T.compaction},set:function(a){this.T.compaction===a||a!==Ft&&a!==Ht||(this.T.compaction=a,this.C())}},breadthLimit:{get:function(){return this.T.breadthLimit},\nset:function(a){this.T.breadthLimit!==a&&0<=a&&(this.T.breadthLimit=a,this.C())}},rowSpacing:{get:function(){return this.T.rowSpacing},set:function(a){this.T.rowSpacing!==a&&(this.T.rowSpacing=a,this.C())}},rowIndent:{get:function(){return this.T.rowIndent},set:function(a){this.T.rowIndent!==a&&0<=a&&(this.T.rowIndent=a,this.C())}},commentSpacing:{get:function(){return this.T.commentSpacing},set:function(a){this.T.commentSpacing!==\na&&(this.T.commentSpacing=a,this.C())}},commentMargin:{get:function(){return this.T.commentMargin},set:function(a){this.T.commentMargin!==a&&(this.T.commentMargin=a,this.C())}},setsPortSpot:{get:function(){return this.T.setsPortSpot},set:function(a){this.T.setsPortSpot!==a&&(this.T.setsPortSpot=a,this.C())}},portSpot:{get:function(){return this.T.portSpot},set:function(a){this.T.portSpot.w(a)||(this.T.portSpot=\na,this.C())}},setsChildPortSpot:{get:function(){return this.T.setsChildPortSpot},set:function(a){this.T.setsChildPortSpot!==a&&(this.T.setsChildPortSpot=a,this.C())}},childPortSpot:{get:function(){return this.T.childPortSpot},set:function(a){this.T.childPortSpot.w(a)||(this.T.childPortSpot=a,this.C())}},alternateSorting:{get:function(){return this.U.sorting},set:function(a){this.U.sorting===a||a!==vt&&a!==wt&&\na!==xt&&!yt||(this.U.sorting=a,this.C())}},alternateComparer:{get:function(){return this.U.comparer},set:function(a){this.U.comparer!==a&&(this.U.comparer=a,this.C())}},alternateAngle:{get:function(){return this.U.angle},set:function(a){this.U.angle===a||0!==a&&90!==a&&180!==a&&270!==a||(this.U.angle=a,this.C())}},alternateAlignment:{get:function(){return this.U.alignment},set:function(a){this.U.alignment!==\na&&(this.U.alignment=a,this.C())}},alternateNodeIndent:{get:function(){return this.U.nodeIndent},set:function(a){this.U.nodeIndent!==a&&0<=a&&(this.U.nodeIndent=a,this.C())}},alternateNodeIndentPastParent:{get:function(){return this.U.nodeIndentPastParent},set:function(a){this.U.nodeIndentPastParent!==a&&0<=a&&1>=a&&(this.U.nodeIndentPastParent=a,this.C())}},alternateNodeSpacing:{get:function(){return this.U.nodeSpacing},\nset:function(a){this.U.nodeSpacing!==a&&(this.U.nodeSpacing=a,this.C())}},alternateLayerSpacing:{get:function(){return this.U.layerSpacing},set:function(a){this.U.layerSpacing!==a&&(this.U.layerSpacing=a,this.C())}},alternateLayerSpacingParentOverlap:{get:function(){return this.U.layerSpacingParentOverlap},set:function(a){this.U.layerSpacingParentOverlap!==a&&0<=a&&1>=a&&(this.U.layerSpacingParentOverlap=a,this.C())}},alternateCompaction:{\nget:function(){return this.U.compaction},set:function(a){this.U.compaction===a||a!==Ft&&a!==Ht||(this.U.compaction=a,this.C())}},alternateBreadthLimit:{get:function(){return this.U.breadthLimit},set:function(a){this.U.breadthLimit!==a&&0<=a&&(this.U.breadthLimit=a,this.C())}},alternateRowSpacing:{get:function(){return this.U.rowSpacing},set:function(a){this.U.rowSpacing!==a&&(this.U.rowSpacing=a,this.C())}},alternateRowIndent:{\nget:function(){return this.U.rowIndent},set:function(a){this.U.rowIndent!==a&&0<=a&&(this.U.rowIndent=a,this.C())}},alternateCommentSpacing:{get:function(){return this.U.commentSpacing},set:function(a){this.U.commentSpacing!==a&&(this.U.commentSpacing=a,this.C())}},alternateCommentMargin:{get:function(){return this.U.commentMargin},set:function(a){this.U.commentMargin!==a&&(this.U.commentMargin=a,this.C())}},alternateSetsPortSpot:{\nget:function(){return this.U.setsPortSpot},set:function(a){this.U.setsPortSpot!==a&&(this.U.setsPortSpot=a,this.C())}},alternatePortSpot:{get:function(){return this.U.portSpot},set:function(a){this.U.portSpot.w(a)||(this.U.portSpot=a,this.C())}},alternateSetsChildPortSpot:{get:function(){return this.U.setsChildPortSpot},set:function(a){this.U.setsChildPortSpot!==a&&(this.U.setsChildPortSpot=a,this.C())}},alternateChildPortSpot:{\nget:function(){return this.U.childPortSpot},set:function(a){this.U.childPortSpot.w(a)||(this.U.childPortSpot=a,this.C())}}});\nvar Zs=new D(Ys,\"PathDefault\",-1),$s=new D(Ys,\"PathDestination\",0),gt=new D(Ys,\"PathSource\",1),vt=new D(Ys,\"SortingForwards\",10),wt=new D(Ys,\"SortingReverse\",11),xt=new D(Ys,\"SortingAscending\",12),yt=new D(Ys,\"SortingDescending\",13),$t=new D(Ys,\"AlignmentCenterSubtrees\",20),au=new D(Ys,\"AlignmentCenterChildren\",21),Rt=new D(Ys,\"AlignmentStart\",22),Jt=new D(Ys,\"AlignmentEnd\",23),At=new D(Ys,\"AlignmentBus\",24),qt=new D(Ys,\"AlignmentBusBranching\",25),Bt=new D(Ys,\"AlignmentTopLeftBus\",26),Ct=new D(Ys,\n\"AlignmentBottomRightBus\",27),Ft=new D(Ys,\"CompactionNone\",30),Ht=new D(Ys,\"CompactionBlock\",31),at=new D(Ys,\"StyleLayered\",40),ut=new D(Ys,\"StyleLastParents\",41),tt=new D(Ys,\"StyleAlternating\",42),st=new D(Ys,\"StyleRootOnly\",43),ct=new D(Ys,\"ArrangementVertical\",50),iu=new D(Ys,\"ArrangementHorizontal\",51),ft=new D(Ys,\"ArrangementFixedRoots\",52),bt=new D(Ys,\"LayerIndividual\",60),ot=new D(Ys,\"LayerSiblings\",61),nt=new D(Ys,\"LayerUniform\",62);Ys.className=\"TreeLayout\";Ys.PathDefault=Zs;\nYs.PathDestination=$s;Ys.PathSource=gt;Ys.SortingForwards=vt;Ys.SortingReverse=wt;Ys.SortingAscending=xt;Ys.SortingDescending=yt;Ys.AlignmentCenterSubtrees=$t;Ys.AlignmentCenterChildren=au;Ys.AlignmentStart=Rt;Ys.AlignmentEnd=Jt;Ys.AlignmentBus=At;Ys.AlignmentBusBranching=qt;Ys.AlignmentTopLeftBus=Bt;Ys.AlignmentBottomRightBus=Ct;Ys.CompactionNone=Ft;Ys.CompactionBlock=Ht;Ys.StyleLayered=at;Ys.StyleLastParents=ut;Ys.StyleAlternating=tt;Ys.StyleRootOnly=st;Ys.ArrangementVertical=ct;\nYs.ArrangementHorizontal=iu;Ys.ArrangementFixedRoots=ft;Ys.LayerIndividual=bt;Ys.LayerSiblings=ot;Ys.LayerUniform=nt;function dt(a){Qp.call(this,a)}la(dt,Qp);dt.prototype.createVertex=function(){return new et(this)};dt.prototype.createEdge=function(){return new ku(this)};dt.className=\"TreeNetwork\";\nfunction et(a){Tp.call(this,a);this.Ha=!1;this.Ic=null;this.I=[];this.jd=this.Za=this.Y=this.Ia=0;this.Zc=null;this.S=new I(0,0);this.ta=new M(0,0);this.da=new I(0,0);this.Gm=this.Fm=this.rA=!1;this.Iq=this.vq=null;this.Qc=vt;this.Kc=$p;this.Yb=0;this.vb=au;this.ks=this.js=0;this.ls=20;this.me=50;this.Xr=0;this.jr=Ht;this.br=0;this.ys=25;this.ir=this.xs=10;this.hr=20;this.Ks=!0;this.us=Zc;this.Js=!0;this.er=Zc}la(et,Tp);\net.prototype.copyInheritedPropertiesFrom=function(a){null!==a&&(this.Qc=a.sorting,this.Kc=a.comparer,this.Yb=a.angle,this.vb=a.alignment,this.js=a.nodeIndent,this.ks=a.nodeIndentPastParent,this.ls=a.nodeSpacing,this.me=a.layerSpacing,this.Xr=a.layerSpacingParentOverlap,this.jr=a.compaction,this.br=a.breadthLimit,this.ys=a.rowSpacing,this.xs=a.rowIndent,this.ir=a.commentSpacing,this.hr=a.commentMargin,this.Ks=a.setsPortSpot,this.us=a.portSpot,this.Js=a.setsChildPortSpot,this.er=a.childPortSpot)};\nma.Object.defineProperties(et.prototype,{initialized:{get:function(){return this.Ha},set:function(a){this.Ha!==a&&(this.Ha=a)}},parent:{get:function(){return this.Ic},set:function(a){this.Ic!==a&&(this.Ic=a)}},children:{get:function(){return this.I},set:function(a){if(this.I!==a){if(null!==a)for(var b=a.length,c=0;cp.y+c.rowIndent&&(e=Math.min(e,Math.max(m.y,e-Qt(c))))):c.alignment===Rt?(e=d.top+b.y,0===b.y&&m.yp.x+c.rowIndent&&(e=Math.min(e,Math.max(m.x,e-Qt(c))))):c.alignment===Rt?(e=d.left+b.x,0===b.x&&m.xp.y+c.rowIndent&&(e=Math.min(e,Math.max(m.y,e-Qt(c))))):c.alignment===Rt?(e=d.top+b.y,0===b.y&&m.yp.x+c.rowIndent&&(e=Math.min(e,Math.max(m.x,e-Qt(c))))):c.alignment===Rt?(e=d.left+b.x,0===b.x&&m.x}\n\t\t * @sample {highcharts} highcharts/demo/gauge-vu-meter/\n\t\t * Two gauges with different center\n\t\t * @default [\"50%\", \"50%\"]\n\t\t * @since 2.3.0\n\t\t * @product highcharts\n\t\t */\n\t\t center: ['50%', '50%'],\n\n\t\t /**\n\t\t * The size of the pane, either as a number defining pixels, or a\n\t\t * percentage defining a percentage of the plot are.\n\t\t *\n\t\t * @type {Number|String}\n\t\t * @sample {highcharts} highcharts/demo/gauge-vu-meter/ Smaller size\n\t\t * @default 85%\n\t\t * @product highcharts\n\t\t */\n\t\t size: '85%',\n\n\t\t /**\n\t\t * The start angle of the polar X axis or gauge axis, given in degrees\n\t\t * where 0 is north. Defaults to 0.\n\t\t *\n\t\t * @type {Number}\n\t\t * @sample {highcharts} highcharts/demo/gauge-vu-meter/\n\t\t * VU-meter with custom start and end angle\n\t\t * @since 2.3.0\n\t\t * @product highcharts\n\t\t */\n\t\t startAngle: 0\n\t\t },\n\n\t\t /**\n\t\t * An array of background items for the pane.\n\t\t * @type {Array}\n\t\t * @sample {highcharts} highcharts/demo/gauge-speedometer/\n\t\t * Speedometer gauge with multiple backgrounds\n\t\t * @optionparent pane.background\n\t\t */\n\t\t defaultBackgroundOptions: {\n\t\t /**\n\t\t * The class name for this background.\n\t\t *\n\t\t * @type {String}\n\t\t * @sample {highcharts} highcharts/css/pane/ Panes styled by CSS\n\t\t * @sample {highstock} highcharts/css/pane/ Panes styled by CSS\n\t\t * @sample {highmaps} highcharts/css/pane/ Panes styled by CSS\n\t\t * @default highcharts-pane\n\t\t * @since 5.0.0\n\t\t * @apioption pane.background.className\n\t\t */\n\n\t\t /**\n\t\t * The shape of the pane background. When `solid`, the background\n\t\t * is circular. When `arc`, the background extends only from the min\n\t\t * to the max of the value axis.\n\t\t *\n\t\t * @validvalue [\"solid\", \"arc\"]\n\t\t * @type {String}\n\t\t * @default solid\n\t\t * @since 2.3.0\n\t\t * @product highcharts\n\t\t */\n\t\t shape: 'circle',\n \n\n\t\t /**\n\t\t * The pixel border width of the pane background.\n\t\t *\n\t\t * @type {Number}\n\t\t * @default 1\n\t\t * @since 2.3.0\n\t\t * @product highcharts\n\t\t */\n\t\t borderWidth: 1,\n\n\t\t /**\n\t\t * The pane background border color.\n\t\t *\n\t\t * @type {Color}\n\t\t * @default #cccccc\n\t\t * @since 2.3.0\n\t\t * @product highcharts\n\t\t */\n\t\t borderColor: '#cccccc',\n\n\t\t /**\n\t\t * The background color or gradient for the pane.\n\t\t *\n\t\t * @type {Color}\n\t\t * @since 2.3.0\n\t\t * @product highcharts\n\t\t */\n\t\t backgroundColor: {\n\t\t /**\n\t\t * Definition of the gradient, similar to SVG: object literal holds\n\t\t * start position (x1, y1) and the end position (x2, y2) relative\n\t\t * to the shape, where 0 means top/left and 1 is bottom/right.\n\t\t * All positions are floats between 0 and 1.\n\t\t *\n\t\t * @type {Object}\n\t\t */\n\t\t linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },\n\t\t /**\n\t\t * The stops is an array of tuples, where the first item is a float\n\t\t * between 0 and 1 assigning the relative position in the gradient,\n\t\t * and the second item is the color.\n\t\t *\n\t\t * @default [[0, #ffffff], [1, #e6e6e6]]\n\t\t * @type {Array}\n\t\t */\n\t\t stops: [\n\t\t [0, '#ffffff'],\n\t\t [1, '#e6e6e6']\n\t\t ]\n\t\t },\n \n\n\t\t /** @ignore-option */\n\t\t from: -Number.MAX_VALUE, // corrected to axis min\n\n\t\t /**\n\t\t * The inner radius of the pane background. Can be either numeric\n\t\t * (pixels) or a percentage string.\n\t\t *\n\t\t * @type {Number|String}\n\t\t * @default 0\n\t\t * @since 2.3.0\n\t\t * @product highcharts\n\t\t */\n\t\t innerRadius: 0,\n\n\t\t /** @ignore-option */\n\t\t to: Number.MAX_VALUE, // corrected to axis max\n\n\t\t /**\n\t\t * The outer radius of the circular pane background. Can be either\n\t\t * numeric (pixels) or a percentage string.\n\t\t *\n\t\t * @type {Number|String}\n\t\t * @default 105%\n\t\t * @since 2.3.0\n\t\t * @product highcharts\n\t\t */\n\t\t outerRadius: '105%'\n\t\t },\n\n\t\t /**\n\t\t * Gets the center for the pane and its axis.\n\t\t */\n\t\t updateCenter: function (axis) {\n\t\t this.center = (axis || this.axis || {}).center =\n\t\t CenteredSeriesMixin.getCenter.call(this);\n\t\t },\n\n\t\t /**\n\t\t * Destroy the pane item\n\t\t * /\n\t\t destroy: function () {\n\t\t H.erase(this.chart.pane, this);\n\t\t each(this.background, function (background) {\n\t\t background.destroy();\n\t\t });\n\t\t this.background.length = 0;\n\t\t this.group = this.group.destroy();\n\t\t },\n\t\t */\n\n\t\t /**\n\t\t * Update the pane item with new options\n\t\t * @param {Object} options New pane options\n\t\t */\n\t\t update: function (options, redraw) {\n\n\t\t merge(true, this.options, options);\n\t\t this.setOptions(this.options);\n\t\t this.render();\n\t\t each(this.chart.axes, function (axis) {\n\t\t if (axis.pane === this) {\n\t\t axis.pane = null;\n\t\t axis.update({}, redraw);\n\t\t }\n\t\t }, this);\n\t\t }\n\n\t\t});\n\n\t\tH.Pane = Pane;\n\n\t}(Highcharts));\n\t(function (H) {\n\t\t/**\n\t\t * (c) 2010-2018 Torstein Honsi\n\t\t *\n\t\t * License: www.highcharts.com/license\n\t\t */\n\t\tvar addEvent = H.addEvent,\n\t\t Axis = H.Axis,\n\t\t each = H.each,\n\t\t extend = H.extend,\n\t\t map = H.map,\n\t\t merge = H.merge,\n\t\t noop = H.noop,\n\t\t pick = H.pick,\n\t\t pInt = H.pInt,\n\t\t Tick = H.Tick,\n\t\t wrap = H.wrap,\n\t\t correctFloat = H.correctFloat,\n\n\n\t\t hiddenAxisMixin, // @todo Extract this to a new file\n\t\t radialAxisMixin, // @todo Extract this to a new file\n\t\t axisProto = Axis.prototype,\n\t\t tickProto = Tick.prototype;\n\n\t\tif (!H.radialAxisExtended) {\n\t\t H.radialAxisExtended = true;\n\n\t\t /**\n\t\t * Augmented methods for the x axis in order to hide it completely, used for\n\t\t * the X axis in gauges\n\t\t */\n\t\t hiddenAxisMixin = {\n\t\t getOffset: noop,\n\t\t redraw: function () {\n\t\t this.isDirty = false; // prevent setting Y axis dirty\n\t\t },\n\t\t render: function () {\n\t\t this.isDirty = false; // prevent setting Y axis dirty\n\t\t },\n\t\t setScale: noop,\n\t\t setCategories: noop,\n\t\t setTitle: noop\n\t\t };\n\n\t\t /**\n\t\t * Augmented methods for the value axis\n\t\t */\n\t\t radialAxisMixin = {\n\n\t\t /**\n\t\t * The default options extend defaultYAxisOptions\n\t\t */\n\t\t defaultRadialGaugeOptions: {\n\t\t labels: {\n\t\t align: 'center',\n\t\t x: 0,\n\t\t y: null // auto\n\t\t },\n\t\t minorGridLineWidth: 0,\n\t\t minorTickInterval: 'auto',\n\t\t minorTickLength: 10,\n\t\t minorTickPosition: 'inside',\n\t\t minorTickWidth: 1,\n\t\t tickLength: 10,\n\t\t tickPosition: 'inside',\n\t\t tickWidth: 2,\n\t\t title: {\n\t\t rotation: 0\n\t\t },\n\t\t zIndex: 2 // behind dials, points in the series group\n\t\t },\n\n\t\t // Circular axis around the perimeter of a polar chart\n\t\t defaultRadialXOptions: {\n\t\t gridLineWidth: 1, // spokes\n\t\t labels: {\n\t\t align: null, // auto\n\t\t distance: 15,\n\t\t x: 0,\n\t\t y: null, // auto\n\t\t style: {\n\t\t textOverflow: 'none' // wrap lines by default (#7248)\n\t\t }\n\t\t },\n\t\t maxPadding: 0,\n\t\t minPadding: 0,\n\t\t showLastLabel: false,\n\t\t tickLength: 0\n\t\t },\n\n\t\t // Radial axis, like a spoke in a polar chart\n\t\t defaultRadialYOptions: {\n\t\t gridLineInterpolation: 'circle',\n\t\t labels: {\n\t\t align: 'right',\n\t\t x: -3,\n\t\t y: -2\n\t\t },\n\t\t showLastLabel: false,\n\t\t title: {\n\t\t x: 4,\n\t\t text: null,\n\t\t rotation: 90\n\t\t }\n\t\t },\n\n\t\t /**\n\t\t * Merge and set options\n\t\t */\n\t\t setOptions: function (userOptions) {\n\n\t\t var options = this.options = merge(\n\t\t this.defaultOptions,\n\t\t this.defaultRadialOptions,\n\t\t userOptions\n\t\t );\n\n\t\t // Make sure the plotBands array is instanciated for each Axis\n\t\t // (#2649)\n\t\t if (!options.plotBands) {\n\t\t options.plotBands = [];\n\t\t }\n\n\t\t H.fireEvent(this, 'afterSetOptions');\n\n\t\t },\n\n\t\t /**\n\t\t * Wrap the getOffset method to return zero offset for title or labels\n\t\t * in a radial axis\n\t\t */\n\t\t getOffset: function () {\n\t\t // Call the Axis prototype method (the method we're in now is on the\n\t\t // instance)\n\t\t axisProto.getOffset.call(this);\n\n\t\t // Title or label offsets are not counted\n\t\t this.chart.axisOffset[this.side] = 0;\n\n\t\t },\n\n\n\t\t /**\n\t\t * Get the path for the axis line. This method is also referenced in the\n\t\t * getPlotLinePath method.\n\t\t */\n\t\t getLinePath: function (lineWidth, radius) {\n\t\t var center = this.center,\n\t\t end,\n\t\t chart = this.chart,\n\t\t r = pick(radius, center[2] / 2 - this.offset),\n\t\t path;\n\n\t\t if (this.isCircular || radius !== undefined) {\n\t\t path = this.chart.renderer.symbols.arc(\n\t\t this.left + center[0],\n\t\t this.top + center[1],\n\t\t r,\n\t\t r,\n\t\t {\n\t\t start: this.startAngleRad,\n\t\t end: this.endAngleRad,\n\t\t open: true,\n\t\t innerR: 0\n\t\t }\n\t\t );\n\n\t\t // Bounds used to position the plotLine label next to the line\n\t\t // (#7117)\n\t\t path.xBounds = [this.left + center[0]];\n\t\t path.yBounds = [this.top + center[1] - r];\n\n\t\t } else {\n\t\t end = this.postTranslate(this.angleRad, r);\n\t\t path = [\n\t\t 'M',\n\t\t center[0] + chart.plotLeft,\n\t\t center[1] + chart.plotTop,\n\t\t 'L',\n\t\t end.x,\n\t\t end.y\n\t\t ];\n\t\t }\n\t\t return path;\n\t\t },\n\n\t\t /**\n\t\t * Override setAxisTranslation by setting the translation to the\n\t\t * difference in rotation. This allows the translate method to return\n\t\t * angle for any given value.\n\t\t */\n\t\t setAxisTranslation: function () {\n\n\t\t // Call uber method\n\t\t axisProto.setAxisTranslation.call(this);\n\n\t\t // Set transA and minPixelPadding\n\t\t if (this.center) { // it's not defined the first time\n\t\t if (this.isCircular) {\n\n\t\t this.transA = (this.endAngleRad - this.startAngleRad) /\n\t\t ((this.max - this.min) || 1);\n\n\n\t\t } else {\n\t\t this.transA = (\n\t\t (this.center[2] / 2) /\n\t\t ((this.max - this.min) || 1)\n\t\t );\n\t\t }\n\n\t\t if (this.isXAxis) {\n\t\t this.minPixelPadding = this.transA * this.minPointOffset;\n\t\t } else {\n\t\t // This is a workaround for regression #2593, but categories\n\t\t // still don't position correctly.\n\t\t this.minPixelPadding = 0;\n\t\t }\n\t\t }\n\t\t },\n\n\t\t /**\n\t\t * In case of auto connect, add one closestPointRange to the max value\n\t\t * right before tickPositions are computed, so that ticks will extend\n\t\t * passed the real max.\n\t\t */\n\t\t beforeSetTickPositions: function () {\n\t\t // If autoConnect is true, polygonal grid lines are connected, and\n\t\t // one closestPointRange is added to the X axis to prevent the last\n\t\t // point from overlapping the first.\n\t\t this.autoConnect = (\n\t\t this.isCircular &&\n\t\t pick(this.userMax, this.options.max) === undefined &&\n\t\t correctFloat(this.endAngleRad - this.startAngleRad) ===\n\t\t correctFloat(2 * Math.PI)\n\t\t );\n\n\t\t if (this.autoConnect) {\n\t\t this.max += (\n\t\t (this.categories && 1) ||\n\t\t this.pointRange ||\n\t\t this.closestPointRange ||\n\t\t 0\n\t\t ); // #1197, #2260\n\t\t }\n\t\t },\n\n\t\t /**\n\t\t * Override the setAxisSize method to use the arc's circumference as\n\t\t * length. This allows tickPixelInterval to apply to pixel lengths along\n\t\t * the perimeter\n\t\t */\n\t\t setAxisSize: function () {\n\n\t\t axisProto.setAxisSize.call(this);\n\n\t\t if (this.isRadial) {\n\n\t\t // Set the center array\n\t\t this.pane.updateCenter(this);\n\n\t\t // The sector is used in Axis.translate to compute the\n\t\t // translation of reversed axis points (#2570)\n\t\t if (this.isCircular) {\n\t\t this.sector = this.endAngleRad - this.startAngleRad;\n\t\t }\n\n\t\t // Axis len is used to lay out the ticks\n\t\t this.len = this.width = this.height =\n\t\t this.center[2] * pick(this.sector, 1) / 2;\n\n\t\t }\n\t\t },\n\n\t\t /**\n\t\t * Returns the x, y coordinate of a point given by a value and a pixel\n\t\t * distance from center\n\t\t */\n\t\t getPosition: function (value, length) {\n\t\t return this.postTranslate(\n\t\t this.isCircular ?\n\t\t this.translate(value) :\n\t\t this.angleRad, // #2848\n\t\t pick(\n\t\t this.isCircular ? length : this.translate(value),\n\t\t this.center[2] / 2\n\t\t ) - this.offset\n\t\t );\n\t\t },\n\n\t\t /**\n\t\t * Translate from intermediate plotX (angle), plotY (axis.len - radius)\n\t\t * to final chart coordinates.\n\t\t */\n\t\t postTranslate: function (angle, radius) {\n\n\t\t var chart = this.chart,\n\t\t center = this.center;\n\n\t\t angle = this.startAngleRad + angle;\n\n\t\t return {\n\t\t x: chart.plotLeft + center[0] + Math.cos(angle) * radius,\n\t\t y: chart.plotTop + center[1] + Math.sin(angle) * radius\n\t\t };\n\n\t\t },\n\n\t\t /**\n\t\t * Find the path for plot bands along the radial axis\n\t\t */\n\t\t getPlotBandPath: function (from, to, options) {\n\t\t var center = this.center,\n\t\t startAngleRad = this.startAngleRad,\n\t\t fullRadius = center[2] / 2,\n\t\t radii = [\n\t\t pick(options.outerRadius, '100%'),\n\t\t options.innerRadius,\n\t\t pick(options.thickness, 10)\n\t\t ],\n\t\t offset = Math.min(this.offset, 0),\n\t\t percentRegex = /%$/,\n\t\t start,\n\t\t end,\n\t\t open,\n\t\t isCircular = this.isCircular, // X axis in a polar chart\n\t\t ret;\n\n\t\t // Polygonal plot bands\n\t\t if (this.options.gridLineInterpolation === 'polygon') {\n\t\t ret = this.getPlotLinePath(from).concat(\n\t\t this.getPlotLinePath(to, true)\n\t\t );\n\n\t\t // Circular grid bands\n\t\t } else {\n\n\t\t // Keep within bounds\n\t\t from = Math.max(from, this.min);\n\t\t to = Math.min(to, this.max);\n\n\t\t // Plot bands on Y axis (radial axis) - inner and outer radius\n\t\t // depend on to and from\n\t\t if (!isCircular) {\n\t\t radii[0] = this.translate(from);\n\t\t radii[1] = this.translate(to);\n\t\t }\n\n\t\t // Convert percentages to pixel values\n\t\t radii = map(radii, function (radius) {\n\t\t if (percentRegex.test(radius)) {\n\t\t radius = (pInt(radius, 10) * fullRadius) / 100;\n\t\t }\n\t\t return radius;\n\t\t });\n\n\t\t // Handle full circle\n\t\t if (options.shape === 'circle' || !isCircular) {\n\t\t start = -Math.PI / 2;\n\t\t end = Math.PI * 1.5;\n\t\t open = true;\n\t\t } else {\n\t\t start = startAngleRad + this.translate(from);\n\t\t end = startAngleRad + this.translate(to);\n\t\t }\n\n\t\t radii[0] -= offset; // #5283\n\t\t radii[2] -= offset; // #5283\n\n\t\t ret = this.chart.renderer.symbols.arc(\n\t\t this.left + center[0],\n\t\t this.top + center[1],\n\t\t radii[0],\n\t\t radii[0],\n\t\t {\n\t\t // Math is for reversed yAxis (#3606)\n\t\t start: Math.min(start, end),\n\t\t end: Math.max(start, end),\n\t\t innerR: pick(radii[1], radii[0] - radii[2]),\n\t\t open: open\n\t\t }\n\t\t );\n\t\t }\n\n\t\t return ret;\n\t\t },\n\n\t\t /**\n\t\t * Find the path for plot lines perpendicular to the radial axis.\n\t\t */\n\t\t getPlotLinePath: function (value, reverse) {\n\t\t var axis = this,\n\t\t center = axis.center,\n\t\t chart = axis.chart,\n\t\t end = axis.getPosition(value),\n\t\t xAxis,\n\t\t xy,\n\t\t tickPositions,\n\t\t ret;\n\n\t\t // Spokes\n\t\t if (axis.isCircular) {\n\t\t ret = [\n\t\t 'M',\n\t\t center[0] + chart.plotLeft,\n\t\t center[1] + chart.plotTop,\n\t\t 'L',\n\t\t end.x,\n\t\t end.y\n\t\t ];\n\n\t\t // Concentric circles\n\t\t } else if (axis.options.gridLineInterpolation === 'circle') {\n\t\t value = axis.translate(value);\n\n\t\t // a value of 0 is in the center, so it won't be visible,\n\t\t // but draw it anyway for update and animation (#2366)\n\t\t ret = axis.getLinePath(0, value);\n\t\t // Concentric polygons\n\t\t } else {\n\t\t // Find the X axis in the same pane\n\t\t each(chart.xAxis, function (a) {\n\t\t if (a.pane === axis.pane) {\n\t\t xAxis = a;\n\t\t }\n\t\t });\n\t\t ret = [];\n\t\t value = axis.translate(value);\n\t\t tickPositions = xAxis.tickPositions;\n\t\t if (xAxis.autoConnect) {\n\t\t tickPositions = tickPositions.concat([tickPositions[0]]);\n\t\t }\n\t\t // Reverse the positions for concatenation of polygonal plot\n\t\t // bands\n\t\t if (reverse) {\n\t\t tickPositions = [].concat(tickPositions).reverse();\n\t\t }\n\n\t\t each(tickPositions, function (pos, i) {\n\t\t xy = xAxis.getPosition(pos, value);\n\t\t ret.push(i ? 'L' : 'M', xy.x, xy.y);\n\t\t });\n\n\t\t }\n\t\t return ret;\n\t\t },\n\n\t\t /**\n\t\t * Find the position for the axis title, by default inside the gauge\n\t\t */\n\t\t getTitlePosition: function () {\n\t\t var center = this.center,\n\t\t chart = this.chart,\n\t\t titleOptions = this.options.title;\n\n\t\t return {\n\t\t x: chart.plotLeft + center[0] + (titleOptions.x || 0),\n\t\t y: (\n\t\t chart.plotTop +\n\t\t center[1] -\n\t\t (\n\t\t {\n\t\t high: 0.5,\n\t\t middle: 0.25,\n\t\t low: 0\n\t\t }[titleOptions.align] * center[2]\n\t\t ) +\n\t\t (titleOptions.y || 0)\n\t\t )\n\t\t };\n\t\t }\n\n\t\t };\n\n\t\t /**\n\t\t * Actions before axis init.\n\t\t */\n\t\t addEvent(Axis, 'init', function (e) {\n\t\t var chart = this.chart,\n\t\t angular = chart.angular,\n\t\t polar = chart.polar,\n\t\t isX = this.isXAxis,\n\t\t isHidden = angular && isX,\n\t\t isCircular,\n\t\t chartOptions = chart.options,\n\t\t paneIndex = e.userOptions.pane || 0,\n\t\t pane = this.pane = chart.pane && chart.pane[paneIndex];\n\n\t\t // Before prototype.init\n\t\t if (angular) {\n\t\t extend(this, isHidden ? hiddenAxisMixin : radialAxisMixin);\n\t\t isCircular = !isX;\n\t\t if (isCircular) {\n\t\t this.defaultRadialOptions = this.defaultRadialGaugeOptions;\n\t\t }\n\n\t\t } else if (polar) {\n\t\t extend(this, radialAxisMixin);\n\t\t isCircular = isX;\n\t\t this.defaultRadialOptions = isX ?\n\t\t this.defaultRadialXOptions :\n\t\t merge(this.defaultYAxisOptions, this.defaultRadialYOptions);\n\n\t\t }\n\n\t\t // Disable certain features on angular and polar axes\n\t\t if (angular || polar) {\n\t\t this.isRadial = true;\n\t\t chart.inverted = false;\n\t\t chartOptions.chart.zoomType = null;\n\t\t } else {\n\t\t this.isRadial = false;\n\t\t }\n\n\t\t // A pointer back to this axis to borrow geometry\n\t\t if (pane && isCircular) {\n\t\t pane.axis = this;\n\t\t }\n\n\t\t this.isCircular = isCircular;\n\n\t\t });\n\n\t\t addEvent(Axis, 'afterInit', function () {\n\n\t\t var chart = this.chart,\n\t\t options = this.options,\n\t\t isHidden = chart.angular && this.isXAxis,\n\t\t pane = this.pane,\n\t\t paneOptions = pane && pane.options;\n\n\t\t if (!isHidden && pane && (chart.angular || chart.polar)) {\n\n\t\t // Start and end angle options are\n\t\t // given in degrees relative to top, while internal computations are\n\t\t // in radians relative to right (like SVG).\n\n\t\t // Y axis in polar charts\n\t\t this.angleRad = (options.angle || 0) * Math.PI / 180;\n\t\t // Gauges\n\t\t this.startAngleRad = (paneOptions.startAngle - 90) * Math.PI / 180;\n\t\t this.endAngleRad = (\n\t\t pick(paneOptions.endAngle, paneOptions.startAngle + 360) - 90\n\t\t ) * Math.PI / 180; // Gauges\n\t\t this.offset = options.offset || 0;\n\n\t\t }\n\n\t\t });\n\n\t\t /**\n\t\t * Wrap auto label align to avoid setting axis-wide rotation on radial axes\n\t\t * (#4920)\n\t\t * @param {Function} proceed\n\t\t * @returns {String} Alignment\n\t\t */\n\t\t wrap(axisProto, 'autoLabelAlign', function (proceed) {\n\t\t if (!this.isRadial) {\n\t\t return proceed.apply(this, [].slice.call(arguments, 1));\n\t\t } // else return undefined\n\t\t });\n\n\t\t /**\n\t\t * Add special cases within the Tick class' methods for radial axes.\n\t\t */\n\t\t addEvent(Tick, 'afterGetPosition', function (e) {\n\t\t if (this.axis.getPosition) {\n\t\t extend(e.pos, this.axis.getPosition(this.pos));\n\t\t }\n\t\t });\n\n\t\t /**\n\t\t * Find the center position of the label based on the distance option.\n\t\t */\n\t\t addEvent(Tick, 'afterGetLabelPosition', function (e) {\n\t\t var axis = this.axis,\n\t\t label = this.label,\n\t\t labelOptions = axis.options.labels,\n\t\t optionsY = labelOptions.y,\n\t\t ret,\n\t\t centerSlot = 20, // 20 degrees to each side at the top and bottom\n\t\t align = labelOptions.align,\n\t\t angle = (\n\t\t (axis.translate(this.pos) + axis.startAngleRad + Math.PI / 2) /\n\t\t Math.PI * 180\n\t\t ) % 360;\n\n\t\t if (axis.isRadial) { // Both X and Y axes in a polar chart\n\t\t ret = axis.getPosition(this.pos, (axis.center[2] / 2) +\n\t\t pick(labelOptions.distance, -25));\n\n\t\t // Automatically rotated\n\t\t if (labelOptions.rotation === 'auto') {\n\t\t label.attr({\n\t\t rotation: angle\n\t\t });\n\n\t\t // Vertically centered\n\t\t } else if (optionsY === null) {\n\t\t optionsY = (\n\t\t axis.chart.renderer\n\t\t .fontMetrics(label.styles && label.styles.fontSize).b -\n\t\t label.getBBox().height / 2\n\t\t );\n\t\t }\n\n\t\t // Automatic alignment\n\t\t if (align === null) {\n\t\t if (axis.isCircular) { // Y axis\n\t\t if (\n\t\t this.label.getBBox().width >\n\t\t axis.len * axis.tickInterval / (axis.max - axis.min)\n\t\t ) { // #3506\n\t\t centerSlot = 0;\n\t\t }\n\t\t if (angle > centerSlot && angle < 180 - centerSlot) {\n\t\t align = 'left'; // right hemisphere\n\t\t } else if (\n\t\t angle > 180 + centerSlot &&\n\t\t angle < 360 - centerSlot\n\t\t ) {\n\t\t align = 'right'; // left hemisphere\n\t\t } else {\n\t\t align = 'center'; // top or bottom\n\t\t }\n\t\t } else {\n\t\t align = 'center';\n\t\t }\n\t\t label.attr({\n\t\t align: align\n\t\t });\n\t\t }\n\n\t\t e.pos.x = ret.x + labelOptions.x;\n\t\t e.pos.y = ret.y + optionsY;\n\n\t\t }\n\t\t });\n\n\t\t /**\n\t\t * Wrap the getMarkPath function to return the path of the radial marker\n\t\t */\n\t\t wrap(tickProto, 'getMarkPath', function (\n\t\t proceed,\n\t\t x,\n\t\t y,\n\t\t tickLength,\n\t\t tickWidth,\n\t\t horiz,\n\t\t renderer\n\t\t ) {\n\t\t var axis = this.axis,\n\t\t endPoint,\n\t\t ret;\n\n\t\t if (axis.isRadial) {\n\t\t endPoint = axis.getPosition(\n\t\t this.pos,\n\t\t axis.center[2] / 2 + tickLength\n\t\t );\n\t\t ret = [\n\t\t 'M',\n\t\t x,\n\t\t y,\n\t\t 'L',\n\t\t endPoint.x,\n\t\t endPoint.y\n\t\t ];\n\t\t } else {\n\t\t ret = proceed.call(\n\t\t this,\n\t\t x,\n\t\t y,\n\t\t tickLength,\n\t\t tickWidth,\n\t\t horiz,\n\t\t renderer\n\t\t );\n\t\t }\n\t\t return ret;\n\t\t });\n\t\t}\n\n\t}(Highcharts));\n\t(function (H) {\n\t\t/**\n\t\t * (c) 2010-2018 Torstein Honsi\n\t\t *\n\t\t * License: www.highcharts.com/license\n\t\t */\n\t\tvar each = H.each,\n\t\t noop = H.noop,\n\t\t pick = H.pick,\n\t\t extend = H.extend,\n\t\t isArray = H.isArray,\n\t\t defined = H.defined,\n\t\t Series = H.Series,\n\t\t seriesType = H.seriesType,\n\t\t seriesTypes = H.seriesTypes,\n\t\t seriesProto = Series.prototype,\n\t\t pointProto = H.Point.prototype;\n\n\t\t/**\n\t\t * The area range series is a carteseian series with higher and lower values\n\t\t * for each point along an X axis, where the area between the values is shaded.\n\t\t * Requires `highcharts-more.js`.\n\t\t *\n\t\t * @extends plotOptions.area\n\t\t * @product highcharts highstock\n\t\t * @sample {highcharts} highcharts/demo/arearange/\n\t\t * Area range chart\n\t\t * @sample {highstock} stock/demo/arearange/\n\t\t * Area range chart\n\t\t * @excluding stack,stacking\n\t\t * @optionparent plotOptions.arearange\n\t\t */\n\t\tseriesType('arearange', 'area', {\n \n\n\t\t /**\n\t\t * Whether to apply a drop shadow to the graph line. Since 2.3 the shadow\n\t\t * can be an object configuration containing `color`, `offsetX`, `offsetY`,\n\t\t * `opacity` and `width`.\n\t\t *\n\t\t * @type {Boolean|Object}\n\t\t * @product highcharts\n\t\t * @apioption plotOptions.arearange.shadow\n\t\t */\n\n\t\t /**\n\t\t * Pixel width of the arearange graph line.\n\t\t *\n\t\t * @since 2.3.0\n\t\t * @product highcharts highstock\n\t\t */\n\t\t lineWidth: 1,\n \n\n\t\t threshold: null,\n\n\t\t tooltip: {\n \n\n\t\t pointFormat: '\\u25CF {series.name}: {point.low} - {point.high}
    ' // eslint-disable-line no-dupe-keys\n \n\t\t },\n\n\t\t /**\n\t\t * Whether the whole area or just the line should respond to mouseover\n\t\t * tooltips and other mouse or touch events.\n\t\t *\n\t\t * @since 2.3.0\n\t\t * @product highcharts highstock\n\t\t */\n\t\t trackByArea: true,\n\n\t\t /**\n\t\t * Extended data labels for range series types. Range series data labels\n\t\t * have no `x` and `y` options. Instead, they have `xLow`, `xHigh`,\n\t\t * `yLow` and `yHigh` options to allow the higher and lower data label\n\t\t * sets individually.\n\t\t *\n\t\t * @type {Object}\n\t\t * @extends plotOptions.series.dataLabels\n\t\t * @excluding x,y\n\t\t * @since 2.3.0\n\t\t * @product highcharts highstock\n\t\t */\n\t\t dataLabels: {\n\n\t\t align: null,\n\t\t verticalAlign: null,\n\n\t\t /**\n\t\t * X offset of the lower data labels relative to the point value.\n\t\t *\n\t\t * @sample {highcharts} highcharts/plotoptions/arearange-datalabels/\n\t\t * Data labels on range series\n\t\t * @sample {highstock} highcharts/plotoptions/arearange-datalabels/\n\t\t * Data labels on range series\n\t\t * @since 2.3.0\n\t\t * @product highcharts highstock\n\t\t */\n\t\t xLow: 0,\n\n\t\t /**\n\t\t * X offset of the higher data labels relative to the point value.\n\t\t *\n\t\t * @sample {highcharts|highstock}\n\t\t * highcharts/plotoptions/arearange-datalabels/\n\t\t * Data labels on range series\n\t\t * @since 2.3.0\n\t\t * @product highcharts highstock\n\t\t */\n\t\t xHigh: 0,\n\n\t\t /**\n\t\t * Y offset of the lower data labels relative to the point value.\n\t\t *\n\t\t * @sample {highcharts|highstock}\n\t\t * highcharts/plotoptions/arearange-datalabels/\n\t\t * Data labels on range series\n\t\t * @default 16\n\t\t * @since 2.3.0\n\t\t * @product highcharts highstock\n\t\t */\n\t\t yLow: 0,\n\n\t\t /**\n\t\t * Y offset of the higher data labels relative to the point value.\n\t\t *\n\t\t * @sample {highcharts|highstock}\n\t\t * highcharts/plotoptions/arearange-datalabels/\n\t\t * Data labels on range series\n\t\t * @default -6\n\t\t * @since 2.3.0\n\t\t * @product highcharts highstock\n\t\t */\n\t\t yHigh: 0\n\t\t }\n\n\t\t// Prototype members\n\t\t}, {\n\t\t pointArrayMap: ['low', 'high'],\n\t\t toYData: function (point) {\n\t\t return [point.low, point.high];\n\t\t },\n\t\t pointValKey: 'low',\n\t\t deferTranslatePolar: true,\n\n\t\t /**\n\t\t * Translate a point's plotHigh from the internal angle and radius\n\t\t * measures to true plotHigh coordinates. This is an addition of the\n\t\t * toXY method found in Polar.js, because it runs too early for\n\t\t * arearanges to be considered (#3419).\n\t\t */\n\t\t highToXY: function (point) {\n\t\t // Find the polar plotX and plotY\n\t\t var chart = this.chart,\n\t\t xy = this.xAxis.postTranslate(\n\t\t point.rectPlotX,\n\t\t this.yAxis.len - point.plotHigh\n\t\t );\n\t\t point.plotHighX = xy.x - chart.plotLeft;\n\t\t point.plotHigh = xy.y - chart.plotTop;\n\t\t point.plotLowX = point.plotX;\n\t\t },\n\n\t\t /**\n\t\t * Translate data points from raw values x and y to plotX and plotY\n\t\t */\n\t\t translate: function () {\n\t\t var series = this,\n\t\t yAxis = series.yAxis,\n\t\t hasModifyValue = !!series.modifyValue;\n\n\t\t seriesTypes.area.prototype.translate.apply(series);\n\n\t\t // Set plotLow and plotHigh\n\t\t each(series.points, function (point) {\n\n\t\t var low = point.low,\n\t\t high = point.high,\n\t\t plotY = point.plotY;\n\n\t\t if (high === null || low === null) {\n\t\t point.isNull = true;\n\t\t point.plotY = null;\n\t\t } else {\n\t\t point.plotLow = plotY;\n\t\t point.plotHigh = yAxis.translate(\n\t\t hasModifyValue ? series.modifyValue(high, point) : high,\n\t\t 0,\n\t\t 1,\n\t\t 0,\n\t\t 1\n\t\t );\n\t\t if (hasModifyValue) {\n\t\t point.yBottom = point.plotHigh;\n\t\t }\n\t\t }\n\t\t });\n\n\t\t // Postprocess plotHigh\n\t\t if (this.chart.polar) {\n\t\t each(this.points, function (point) {\n\t\t series.highToXY(point);\n\t\t point.tooltipPos = [\n\t\t (point.plotHighX + point.plotLowX) / 2,\n\t\t (point.plotHigh + point.plotLow) / 2\n\t\t ];\n\t\t });\n\t\t }\n\t\t },\n\n\t\t /**\n\t\t * Extend the line series' getSegmentPath method by applying the segment\n\t\t * path to both lower and higher values of the range\n\t\t */\n\t\t getGraphPath: function (points) {\n\n\t\t var highPoints = [],\n\t\t highAreaPoints = [],\n\t\t i,\n\t\t getGraphPath = seriesTypes.area.prototype.getGraphPath,\n\t\t point,\n\t\t pointShim,\n\t\t linePath,\n\t\t lowerPath,\n\t\t options = this.options,\n\t\t connectEnds = this.chart.polar && options.connectEnds !== false,\n\t\t connectNulls = options.connectNulls,\n\t\t step = options.step,\n\t\t higherPath,\n\t\t higherAreaPath;\n\n\t\t points = points || this.points;\n\t\t i = points.length;\n\n\t\t /**\n\t\t * Create the top line and the top part of the area fill. The area\n\t\t * fill compensates for null points by drawing down to the lower graph,\n\t\t * moving across the null gap and starting again at the lower graph.\n\t\t */\n\t\t i = points.length;\n\t\t while (i--) {\n\t\t point = points[i];\n\n\t\t if (\n\t\t !point.isNull &&\n\t\t !connectEnds &&\n\t\t !connectNulls &&\n\t\t (!points[i + 1] || points[i + 1].isNull)\n\t\t ) {\n\t\t highAreaPoints.push({\n\t\t plotX: point.plotX,\n\t\t plotY: point.plotY,\n\t\t doCurve: false // #5186, gaps in areasplinerange fill\n\t\t });\n\t\t }\n\n\t\t pointShim = {\n\t\t polarPlotY: point.polarPlotY,\n\t\t rectPlotX: point.rectPlotX,\n\t\t yBottom: point.yBottom,\n\t\t // plotHighX is for polar charts\n\t\t plotX: pick(point.plotHighX, point.plotX),\n\t\t plotY: point.plotHigh,\n\t\t isNull: point.isNull\n\t\t };\n\n\t\t highAreaPoints.push(pointShim);\n\n\t\t highPoints.push(pointShim);\n\n\t\t if (\n\t\t !point.isNull &&\n\t\t !connectEnds &&\n\t\t !connectNulls &&\n\t\t (!points[i - 1] || points[i - 1].isNull)\n\t\t ) {\n\t\t highAreaPoints.push({\n\t\t plotX: point.plotX,\n\t\t plotY: point.plotY,\n\t\t doCurve: false // #5186, gaps in areasplinerange fill\n\t\t });\n\t\t }\n\t\t }\n\n\t\t // Get the paths\n\t\t lowerPath = getGraphPath.call(this, points);\n\t\t if (step) {\n\t\t if (step === true) {\n\t\t step = 'left';\n\t\t }\n\t\t options.step = {\n\t\t left: 'right',\n\t\t center: 'center',\n\t\t right: 'left'\n\t\t }[step]; // swap for reading in getGraphPath\n\t\t }\n\t\t higherPath = getGraphPath.call(this, highPoints);\n\t\t higherAreaPath = getGraphPath.call(this, highAreaPoints);\n\t\t options.step = step;\n\n\t\t // Create a line on both top and bottom of the range\n\t\t linePath = [].concat(lowerPath, higherPath);\n\n\t\t // For the area path, we need to change the 'move' statement\n\t\t // into 'lineTo' or 'curveTo'\n\t\t if (!this.chart.polar && higherAreaPath[0] === 'M') {\n\t\t higherAreaPath[0] = 'L'; // this probably doesn't work for spline\n\t\t }\n\n\t\t this.graphPath = linePath;\n\t\t this.areaPath = lowerPath.concat(higherAreaPath);\n\n\t\t // Prepare for sideways animation\n\t\t linePath.isArea = true;\n\t\t linePath.xMap = lowerPath.xMap;\n\t\t this.areaPath.xMap = lowerPath.xMap;\n\n\t\t return linePath;\n\t\t },\n\n\t\t /**\n\t\t * Extend the basic drawDataLabels method by running it for both lower\n\t\t * and higher values.\n\t\t */\n\t\t drawDataLabels: function () {\n\n\t\t var data = this.points,\n\t\t length = data.length,\n\t\t i,\n\t\t originalDataLabels = [],\n\t\t dataLabelOptions = this.options.dataLabels,\n\t\t point,\n\t\t up,\n\t\t inverted = this.chart.inverted,\n\t\t upperDataLabelOptions,\n\t\t lowerDataLabelOptions;\n\n\t\t // Split into upper and lower options. If data labels is an array, the\n\t\t // first element is the upper label, the second is the lower.\n\t\t //\n\t\t // TODO: We want to change this and allow multiple labels for both upper\n\t\t // and lower values in the future - introducing some options for which\n\t\t // point value to use as Y for the dataLabel, so that this could be\n\t\t // handled in Series.drawDataLabels. This would also improve performance\n\t\t // since we now have to loop over all the points multiple times to work\n\t\t // around the data label logic.\n\t\t if (isArray(dataLabelOptions)) {\n\t\t if (dataLabelOptions.length > 1) {\n\t\t upperDataLabelOptions = dataLabelOptions[0];\n\t\t lowerDataLabelOptions = dataLabelOptions[1];\n\t\t } else {\n\t\t upperDataLabelOptions = dataLabelOptions[0];\n\t\t lowerDataLabelOptions = { enabled: false };\n\t\t }\n\t\t } else {\n\t\t upperDataLabelOptions = extend({}, dataLabelOptions); // Make copy;\n\t\t upperDataLabelOptions.x = dataLabelOptions.xHigh;\n\t\t upperDataLabelOptions.y = dataLabelOptions.yHigh;\n\t\t lowerDataLabelOptions = extend({}, dataLabelOptions); // Make copy\n\t\t lowerDataLabelOptions.x = dataLabelOptions.xLow;\n\t\t lowerDataLabelOptions.y = dataLabelOptions.yLow;\n\t\t }\n\n\t\t // Draw upper labels\n\t\t if (upperDataLabelOptions.enabled || this._hasPointLabels) {\n\t\t // Set preliminary values for plotY and dataLabel\n\t\t // and draw the upper labels\n\t\t i = length;\n\t\t while (i--) {\n\t\t point = data[i];\n\t\t if (point) {\n\t\t up = upperDataLabelOptions.inside ?\n\t\t point.plotHigh < point.plotLow :\n\t\t point.plotHigh > point.plotLow;\n\n\t\t point.y = point.high;\n\t\t point._plotY = point.plotY;\n\t\t point.plotY = point.plotHigh;\n\n\t\t // Store original data labels and set preliminary label\n\t\t // objects to be picked up in the uber method\n\t\t originalDataLabels[i] = point.dataLabel;\n\t\t point.dataLabel = point.dataLabelUpper;\n\n\t\t // Set the default offset\n\t\t point.below = up;\n\t\t if (inverted) {\n\t\t if (!upperDataLabelOptions.align) {\n\t\t upperDataLabelOptions.align = up ? 'right' : 'left';\n\t\t }\n\t\t } else {\n\t\t if (!upperDataLabelOptions.verticalAlign) {\n\t\t upperDataLabelOptions.verticalAlign = up ?\n\t\t 'top' :\n\t\t 'bottom';\n\t\t }\n\t\t }\n\t\t }\n\t\t }\n\n\t\t this.options.dataLabels = upperDataLabelOptions;\n\n\t\t if (seriesProto.drawDataLabels) {\n\t\t seriesProto.drawDataLabels.apply(this, arguments); // #1209\n\t\t }\n\n\t\t // Reset state after the upper labels were created. Move\n\t\t // it to point.dataLabelUpper and reassign the originals.\n\t\t // We do this here to support not drawing a lower label.\n\t\t i = length;\n\t\t while (i--) {\n\t\t point = data[i];\n\t\t if (point) {\n\t\t point.dataLabelUpper = point.dataLabel;\n\t\t point.dataLabel = originalDataLabels[i];\n\t\t delete point.dataLabels;\n\t\t point.y = point.low;\n\t\t point.plotY = point._plotY;\n\t\t }\n\t\t }\n\t\t }\n\n\t\t // Draw lower labels\n\t\t if (lowerDataLabelOptions.enabled || this._hasPointLabels) {\n\t\t i = length;\n\t\t while (i--) {\n\t\t point = data[i];\n\t\t if (point) {\n\t\t up = lowerDataLabelOptions.inside ?\n\t\t point.plotHigh < point.plotLow :\n\t\t point.plotHigh > point.plotLow;\n\n\t\t // Set the default offset\n\t\t point.below = !up;\n\t\t if (inverted) {\n\t\t if (!lowerDataLabelOptions.align) {\n\t\t lowerDataLabelOptions.align = up ? 'left' : 'right';\n\t\t }\n\t\t } else {\n\t\t if (!lowerDataLabelOptions.verticalAlign) {\n\t\t lowerDataLabelOptions.verticalAlign = up ?\n\t\t 'bottom' :\n\t\t 'top';\n\t\t }\n\t\t }\n\t\t }\n\t\t }\n\n\t\t this.options.dataLabels = lowerDataLabelOptions;\n\n\t\t if (seriesProto.drawDataLabels) {\n\t\t seriesProto.drawDataLabels.apply(this, arguments);\n\t\t }\n\t\t }\n\n\t\t // Merge upper and lower into point.dataLabels for later destroying\n\t\t if (upperDataLabelOptions.enabled) {\n\t\t i = length;\n\t\t while (i--) {\n\t\t point = data[i];\n\t\t if (point && point.dataLabelUpper) {\n\t\t point.dataLabels = [point.dataLabelUpper, point.dataLabel];\n\t\t }\n\t\t }\n\t\t }\n\n\t\t // Reset options\n\t\t this.options.dataLabels = dataLabelOptions;\n\t\t },\n\n\t\t alignDataLabel: function () {\n\t\t seriesTypes.column.prototype.alignDataLabel.apply(this, arguments);\n\t\t },\n\n\t\t drawPoints: function () {\n\t\t var series = this,\n\t\t pointLength = series.points.length,\n\t\t point,\n\t\t i;\n\n\t\t // Draw bottom points\n\t\t seriesProto.drawPoints.apply(series, arguments);\n\n\t\t // Prepare drawing top points\n\t\t i = 0;\n\t\t while (i < pointLength) {\n\t\t point = series.points[i];\n\n\t\t // Save original props to be overridden by temporary props for top\n\t\t // points\n\t\t point.origProps = {\n\t\t plotY: point.plotY,\n\t\t plotX: point.plotX,\n\t\t isInside: point.isInside,\n\t\t negative: point.negative,\n\t\t zone: point.zone,\n\t\t y: point.y\n\t\t };\n\n\t\t point.lowerGraphic = point.graphic;\n\t\t point.graphic = point.upperGraphic;\n\t\t point.plotY = point.plotHigh;\n\t\t if (defined(point.plotHighX)) {\n\t\t point.plotX = point.plotHighX;\n\t\t }\n\t\t point.y = point.high;\n\t\t point.negative = point.high < (series.options.threshold || 0);\n\t\t point.zone = series.zones.length && point.getZone();\n\n\t\t if (!series.chart.polar) {\n\t\t point.isInside = point.isTopInside = (\n\t\t point.plotY !== undefined &&\n\t\t point.plotY >= 0 &&\n\t\t point.plotY <= series.yAxis.len && // #3519\n\t\t point.plotX >= 0 &&\n\t\t point.plotX <= series.xAxis.len\n\t\t );\n\t\t }\n\t\t i++;\n\t\t }\n\n\t\t // Draw top points\n\t\t seriesProto.drawPoints.apply(series, arguments);\n\n\t\t // Reset top points preliminary modifications\n\t\t i = 0;\n\t\t while (i < pointLength) {\n\t\t point = series.points[i];\n\t\t point.upperGraphic = point.graphic;\n\t\t point.graphic = point.lowerGraphic;\n\t\t H.extend(point, point.origProps);\n\t\t delete point.origProps;\n\t\t i++;\n\t\t }\n\t\t },\n\n\t\t setStackedPoints: noop\n\t\t}, {\n\t\t setState: function () {\n\t\t var prevState = this.state,\n\t\t series = this.series,\n\t\t isPolar = series.chart.polar;\n\n\n\t\t if (!defined(this.plotHigh)) {\n\t\t // Boost doesn't calculate plotHigh\n\t\t this.plotHigh = series.yAxis.toPixels(this.high, true);\n\t\t }\n\n\t\t if (!defined(this.plotLow)) {\n\t\t // Boost doesn't calculate plotLow\n\t\t this.plotLow = this.plotY = series.yAxis.toPixels(this.low, true);\n\t\t }\n\n\t\t if (series.stateMarkerGraphic) {\n\t\t series.lowerStateMarkerGraphic = series.stateMarkerGraphic;\n\t\t series.stateMarkerGraphic = series.upperStateMarkerGraphic;\n\t\t }\n\n\t\t // Change state also for the top marker\n\t\t this.graphic = this.upperGraphic;\n\t\t this.plotY = this.plotHigh;\n\n\t\t if (isPolar) {\n\t\t this.plotX = this.plotHighX;\n\t\t }\n\n\t\t // Top state:\n\t\t pointProto.setState.apply(this, arguments);\n\n\t\t this.state = prevState;\n\n\t\t // Now restore defaults\n\t\t this.plotY = this.plotLow;\n\t\t this.graphic = this.lowerGraphic;\n\n\t\t if (isPolar) {\n\t\t this.plotX = this.plotLowX;\n\t\t }\n\n\t\t if (series.stateMarkerGraphic) {\n\t\t series.upperStateMarkerGraphic = series.stateMarkerGraphic;\n\t\t series.stateMarkerGraphic = series.lowerStateMarkerGraphic;\n\t\t // Lower marker is stored at stateMarkerGraphic\n\t\t // to avoid reference duplication (#7021)\n\t\t series.lowerStateMarkerGraphic = undefined;\n\t\t }\n\n\t\t pointProto.setState.apply(this, arguments);\n\n\t\t },\n\t\t haloPath: function () {\n\t\t var isPolar = this.series.chart.polar,\n\t\t path = [];\n\n\t\t // Bottom halo\n\t\t this.plotY = this.plotLow;\n\t\t if (isPolar) {\n\t\t this.plotX = this.plotLowX;\n\t\t }\n\n\t\t if (this.isInside) {\n\t\t path = pointProto.haloPath.apply(this, arguments);\n\t\t }\n\n\t\t // Top halo\n\t\t this.plotY = this.plotHigh;\n\t\t if (isPolar) {\n\t\t this.plotX = this.plotHighX;\n\t\t }\n\t\t if (this.isTopInside) {\n\t\t path = path.concat(\n\t\t pointProto.haloPath.apply(this, arguments)\n\t\t );\n\t\t }\n\n\t\t return path;\n\t\t },\n\t\t destroyElements: function () {\n\t\t var graphics = ['lowerGraphic', 'upperGraphic'];\n\n\t\t each(graphics, function (graphicName) {\n\t\t if (this[graphicName]) {\n\t\t this[graphicName] = this[graphicName].destroy();\n\t\t }\n\t\t }, this);\n\n\t\t // Clear graphic for states, removed in the above each:\n\t\t this.graphic = null;\n\n\t\t return pointProto.destroyElements.apply(this, arguments);\n\t\t }\n\t\t});\n\n\n\t\t/**\n\t\t * A `arearange` series. If the [type](#series.arearange.type) option\n\t\t * is not specified, it is inherited from [chart.type](#chart.type).\n\t\t *\n\t\t *\n\t\t * @type {Object}\n\t\t * @extends series,plotOptions.arearange\n\t\t * @excluding dataParser,dataURL,stack,stacking\n\t\t * @product highcharts highstock\n\t\t * @apioption series.arearange\n\t\t */\n\n\t\t/**\n\t\t * An array of data points for the series. For the `arearange` series\n\t\t * type, points can be given in the following ways:\n\t\t *\n\t\t * 1. An array of arrays with 3 or 2 values. In this case, the values\n\t\t * correspond to `x,low,high`. If the first value is a string, it is\n\t\t * applied as the name of the point, and the `x` value is inferred.\n\t\t * The `x` value can also be omitted, in which case the inner arrays\n\t\t * should be of length 2\\. Then the `x` value is automatically calculated,\n\t\t * either starting at 0 and incremented by 1, or from `pointStart`\n\t\t * and `pointInterval` given in the series options.\n\t\t *\n\t\t * ```js\n\t\t * data: [\n\t\t * [0, 8, 3],\n\t\t * [1, 1, 1],\n\t\t * [2, 6, 8]\n\t\t * ]\n\t\t * ```\n\t\t *\n\t\t * 2. An array of objects with named values. The following snippet shows only a\n\t\t * few settings, see the complete options set below. If the total number of data\n\t\t * points exceeds the series'\n\t\t * [turboThreshold](#series.arearange.turboThreshold),\n\t\t * this option is not available.\n\t\t *\n\t\t * ```js\n\t\t * data: [{\n\t\t * x: 1,\n\t\t * low: 9,\n\t\t * high: 0,\n\t\t * name: \"Point2\",\n\t\t * color: \"#00FF00\"\n\t\t * }, {\n\t\t * x: 1,\n\t\t * low: 3,\n\t\t * high: 4,\n\t\t * name: \"Point1\",\n\t\t * color: \"#FF00FF\"\n\t\t * }]\n\t\t * ```\n\t\t *\n\t\t * @type {Array}\n\t\t * @extends series.line.data\n\t\t * @excluding marker,y\n\t\t * @sample {highcharts} highcharts/chart/reflow-true/\n\t\t * Numerical values\n\t\t * @sample {highcharts} highcharts/series/data-array-of-arrays/\n\t\t * Arrays of numeric x and y\n\t\t * @sample {highcharts} highcharts/series/data-array-of-arrays-datetime/\n\t\t * Arrays of datetime x and y\n\t\t * @sample {highcharts} highcharts/series/data-array-of-name-value/\n\t\t * Arrays of point.name and y\n\t\t * @sample {highcharts} highcharts/series/data-array-of-objects/\n\t\t * Config objects\n\t\t * @product highcharts highstock\n\t\t * @apioption series.arearange.data\n\t\t */\n\n\t\t/**\n\t\t * The high or maximum value for each data point.\n\t\t *\n\t\t * @type {Number}\n\t\t * @product highcharts highstock\n\t\t * @apioption series.arearange.data.high\n\t\t */\n\n\t\t/**\n\t\t * The low or minimum value for each data point.\n\t\t *\n\t\t * @type {Number}\n\t\t * @product highcharts highstock\n\t\t * @apioption series.arearange.data.low\n\t\t */\n\n\t\t /**\n\t\t * @excluding x,y\n\t\t * @product highcharts highstock\n\t\t * @apioption series.arearange.dataLabels\n\t\t */\n\n\t}(Highcharts));\n\t(function (H) {\n\t\t/**\n\t\t * (c) 2010-2018 Torstein Honsi\n\t\t *\n\t\t * License: www.highcharts.com/license\n\t\t */\n\n\t\tvar seriesType = H.seriesType,\n\t\t seriesTypes = H.seriesTypes;\n\n\t\t/**\n\t\t * The area spline range is a cartesian series type with higher and\n\t\t * lower Y values along an X axis. The area inside the range is colored, and\n\t\t * the graph outlining the area is a smoothed spline. Requires\n\t\t * `highcharts-more.js`.\n\t\t *\n\t\t * @extends plotOptions.arearange\n\t\t * @excluding step\n\t\t * @since 2.3.0\n\t\t * @sample {highstock|highstock} stock/demo/areasplinerange/\n\t\t * Area spline range\n\t\t * @product highcharts highstock\n\t\t * @apioption plotOptions.areasplinerange\n\t\t */\n\t\tseriesType('areasplinerange', 'arearange', null, {\n\t\t getPointSpline: seriesTypes.spline.prototype.getPointSpline\n\t\t});\n\n\t\t/**\n\t\t * A `areasplinerange` series. If the [type](#series.areasplinerange.type)\n\t\t * option is not specified, it is inherited from [chart.type](#chart.type).\n\t\t *\n\t\t * @type {Object}\n\t\t * @extends series,plotOptions.areasplinerange\n\t\t * @excluding dataParser,dataURL,stack\n\t\t * @product highcharts highstock\n\t\t * @apioption series.areasplinerange\n\t\t */\n\n\t\t/**\n\t\t * An array of data points for the series. For the `areasplinerange`\n\t\t * series type, points can be given in the following ways:\n\t\t *\n\t\t * 1. An array of arrays with 3 or 2 values. In this case, the values\n\t\t * correspond to `x,low,high`. If the first value is a string, it is\n\t\t * applied as the name of the point, and the `x` value is inferred.\n\t\t * The `x` value can also be omitted, in which case the inner arrays\n\t\t * should be of length 2\\. Then the `x` value is automatically calculated,\n\t\t * either starting at 0 and incremented by 1, or from `pointStart`\n\t\t * and `pointInterval` given in the series options.\n\t\t *\n\t\t * ```js\n\t\t * data: [\n\t\t * [0, 0, 5],\n\t\t * [1, 9, 1],\n\t\t * [2, 5, 2]\n\t\t * ]\n\t\t * ```\n\t\t *\n\t\t * 2. An array of objects with named values. The following snippet shows only a\n\t\t * few settings, see the complete options set below. If the total number of data\n\t\t * points exceeds the series' [turboThreshold](\n\t\t * #series.areasplinerange.turboThreshold), this option is not available.\n\t\t *\n\t\t * ```js\n\t\t * data: [{\n\t\t * x: 1,\n\t\t * low: 5,\n\t\t * high: 0,\n\t\t * name: \"Point2\",\n\t\t * color: \"#00FF00\"\n\t\t * }, {\n\t\t * x: 1,\n\t\t * low: 4,\n\t\t * high: 1,\n\t\t * name: \"Point1\",\n\t\t * color: \"#FF00FF\"\n\t\t * }]\n\t\t * ```\n\t\t *\n\t\t * @type {Array}\n\t\t * @extends series.arearange.data\n\t\t * @sample {highcharts} highcharts/chart/reflow-true/\n\t\t * Numerical values\n\t\t * @sample {highcharts} highcharts/series/data-array-of-arrays/\n\t\t * Arrays of numeric x and y\n\t\t * @sample {highcharts} highcharts/series/data-array-of-arrays-datetime/\n\t\t * Arrays of datetime x and y\n\t\t * @sample {highcharts} highcharts/series/data-array-of-name-value/\n\t\t * Arrays of point.name and y\n\t\t * @sample {highcharts} highcharts/series/data-array-of-objects/\n\t\t * Config objects\n\t\t * @product highcharts highstock\n\t\t * @apioption series.areasplinerange.data\n\t\t */\n\n\t}(Highcharts));\n\t(function (H) {\n\t\t/**\n\t\t * (c) 2010-2018 Torstein Honsi\n\t\t *\n\t\t * License: www.highcharts.com/license\n\t\t */\n\t\tvar defaultPlotOptions = H.defaultPlotOptions,\n\t\t each = H.each,\n\t\t merge = H.merge,\n\t\t noop = H.noop,\n\t\t pick = H.pick,\n\t\t seriesType = H.seriesType,\n\t\t seriesTypes = H.seriesTypes;\n\n\t\tvar colProto = seriesTypes.column.prototype;\n\t\t/**\n\t\t * The column range is a cartesian series type with higher and lower\n\t\t * Y values along an X axis. Requires `highcharts-more.js`. To display\n\t\t * horizontal bars, set [chart.inverted](#chart.inverted) to `true`.\n\t\t *\n\t\t * @type {Object}\n\t\t * @extends plotOptions.column\n\t\t * @excluding negativeColor,stacking,softThreshold,threshold\n\t\t * @sample {highcharts|highstock} highcharts/demo/columnrange/\n\t\t * Inverted column range\n\t\t * @since 2.3.0\n\t\t * @product highcharts highstock\n\t\t * @optionparent plotOptions.columnrange\n\t\t */\n\t\tvar columnRangeOptions = {\n\n\t\t /**\n\t\t * Extended data labels for range series types. Range series data labels\n\t\t * have no `x` and `y` options. Instead, they have `xLow`, `xHigh`,\n\t\t * `yLow` and `yHigh` options to allow the higher and lower data label\n\t\t * sets individually.\n\t\t *\n\t\t * @type {Object}\n\t\t * @extends plotOptions.arearange.dataLabels\n\t\t * @excluding x,y\n\t\t * @since 2.3.0\n\t\t * @product highcharts highstock\n\t\t * @apioption plotOptions.columnrange.dataLabels\n\t\t */\n\n\t\t pointRange: null,\n\n\t\t /** @ignore-option */\n\t\t marker: null,\n\n\t\t states: {\n\t\t hover: {\n\t\t /** @ignore-option */\n\t\t halo: false\n\t\t }\n\t\t }\n\t\t};\n\t\t/**\n\t\t * The ColumnRangeSeries class\n\t\t */\n\t\tseriesType('columnrange', 'arearange', merge(\n\t\t defaultPlotOptions.column,\n\t\t defaultPlotOptions.arearange,\n\t\t columnRangeOptions\n\n\t\t), {\n\t\t /**\n\t\t * Translate data points from raw values x and y to plotX and plotY\n\t\t */\n\t\t translate: function () {\n\t\t var series = this,\n\t\t yAxis = series.yAxis,\n\t\t xAxis = series.xAxis,\n\t\t startAngleRad = xAxis.startAngleRad,\n\t\t start,\n\t\t chart = series.chart,\n\t\t isRadial = series.xAxis.isRadial,\n\t\t safeDistance = Math.max(chart.chartWidth, chart.chartHeight) + 999,\n\t\t plotHigh;\n\n\t\t // Don't draw too far outside plot area (#6835)\n\t\t function safeBounds(pixelPos) {\n\t\t return Math.min(Math.max(\n\t\t -safeDistance,\n\t\t pixelPos\n\t\t ), safeDistance);\n\t\t }\n\n\n\t\t colProto.translate.apply(series);\n\n\t\t // Set plotLow and plotHigh\n\t\t each(series.points, function (point) {\n\t\t var shapeArgs = point.shapeArgs,\n\t\t minPointLength = series.options.minPointLength,\n\t\t heightDifference,\n\t\t height,\n\t\t y;\n\n\t\t point.plotHigh = plotHigh = safeBounds(\n\t\t yAxis.translate(point.high, 0, 1, 0, 1)\n\t\t );\n\t\t point.plotLow = safeBounds(point.plotY);\n\n\t\t // adjust shape\n\t\t y = plotHigh;\n\t\t height = pick(point.rectPlotY, point.plotY) - plotHigh;\n\n\t\t // Adjust for minPointLength\n\t\t if (Math.abs(height) < minPointLength) {\n\t\t heightDifference = (minPointLength - height);\n\t\t height += heightDifference;\n\t\t y -= heightDifference / 2;\n\n\t\t // Adjust for negative ranges or reversed Y axis (#1457)\n\t\t } else if (height < 0) {\n\t\t height *= -1;\n\t\t y -= height;\n\t\t }\n\n\t\t if (isRadial) {\n\n\t\t start = point.barX + startAngleRad;\n\t\t point.shapeType = 'path';\n\t\t point.shapeArgs = {\n\t\t d: series.polarArc(\n\t\t y + height,\n\t\t y,\n\t\t start,\n\t\t start + point.pointWidth\n\t\t )\n\t\t };\n\t\t } else {\n\n\t\t shapeArgs.height = height;\n\t\t shapeArgs.y = y;\n\n\t\t point.tooltipPos = chart.inverted ?\n\t\t [\n\t\t yAxis.len + yAxis.pos - chart.plotLeft - y - height / 2,\n\t\t xAxis.len + xAxis.pos - chart.plotTop - shapeArgs.x -\n\t\t shapeArgs.width / 2,\n\t\t height\n\t\t ] : [\n\t\t xAxis.left - chart.plotLeft + shapeArgs.x +\n\t\t shapeArgs.width / 2,\n\t\t yAxis.pos - chart.plotTop + y + height / 2,\n\t\t height\n\t\t ]; // don't inherit from column tooltip position - #3372\n\t\t }\n\t\t });\n\t\t },\n\t\t directTouch: true,\n\t\t trackerGroups: ['group', 'dataLabelsGroup'],\n\t\t drawGraph: noop,\n\t\t getSymbol: noop,\n\t\t crispCol: colProto.crispCol,\n\t\t drawPoints: colProto.drawPoints,\n\t\t drawTracker: colProto.drawTracker,\n\t\t getColumnMetrics: colProto.getColumnMetrics,\n\t\t pointAttribs: colProto.pointAttribs,\n\n\t\t // Overrides from modules that may be loaded after this module\n\t\t animate: function () {\n\t\t return colProto.animate.apply(this, arguments);\n\t\t },\n\t\t polarArc: function () {\n\t\t return colProto.polarArc.apply(this, arguments);\n\t\t },\n\t\t translate3dPoints: function () {\n\t\t return colProto.translate3dPoints.apply(this, arguments);\n\t\t },\n\t\t translate3dShapes: function () {\n\t\t return colProto.translate3dShapes.apply(this, arguments);\n\t\t }\n\t\t}, {\n\t\t setState: colProto.pointClass.prototype.setState\n\t\t});\n\n\n\t\t/**\n\t\t * A `columnrange` series. If the [type](#series.columnrange.type)\n\t\t * option is not specified, it is inherited from\n\t\t * [chart.type](#chart.type).\n\t\t *\n\t\t * @type {Object}\n\t\t * @extends series,plotOptions.columnrange\n\t\t * @excluding dataParser,dataURL,stack,stacking\n\t\t * @product highcharts highstock\n\t\t * @apioption series.columnrange\n\t\t */\n\n\t\t/**\n\t\t * An array of data points for the series. For the `columnrange` series\n\t\t * type, points can be given in the following ways:\n\t\t *\n\t\t * 1. An array of arrays with 3 or 2 values. In this case, the values\n\t\t * correspond to `x,low,high`. If the first value is a string, it is\n\t\t * applied as the name of the point, and the `x` value is inferred.\n\t\t * The `x` value can also be omitted, in which case the inner arrays\n\t\t * should be of length 2\\. Then the `x` value is automatically calculated,\n\t\t * either starting at 0 and incremented by 1, or from `pointStart`\n\t\t * and `pointInterval` given in the series options.\n\t\t *\n\t\t * ```js\n\t\t * data: [\n\t\t * [0, 4, 2],\n\t\t * [1, 2, 1],\n\t\t * [2, 9, 10]\n\t\t * ]\n\t\t * ```\n\t\t *\n\t\t * 2. An array of objects with named values. The following snippet shows only a\n\t\t * few settings, see the complete options set below. If the total number of data\n\t\t * points exceeds the series' [turboThreshold](\n\t\t * #series.columnrange.turboThreshold), this option is not available.\n\t\t *\n\t\t * ```js\n\t\t * data: [{\n\t\t * x: 1,\n\t\t * low: 0,\n\t\t * high: 4,\n\t\t * name: \"Point2\",\n\t\t * color: \"#00FF00\"\n\t\t * }, {\n\t\t * x: 1,\n\t\t * low: 5,\n\t\t * high: 3,\n\t\t * name: \"Point1\",\n\t\t * color: \"#FF00FF\"\n\t\t * }]\n\t\t * ```\n\t\t *\n\t\t * @type {Array}\n\t\t * @extends series.arearange.data\n\t\t * @excluding marker\n\t\t * @sample {highcharts} highcharts/chart/reflow-true/\n\t\t * Numerical values\n\t\t * @sample {highcharts} highcharts/series/data-array-of-arrays/\n\t\t * Arrays of numeric x and y\n\t\t * @sample {highcharts} highcharts/series/data-array-of-arrays-datetime/\n\t\t * Arrays of datetime x and y\n\t\t * @sample {highcharts} highcharts/series/data-array-of-name-value/\n\t\t * Arrays of point.name and y\n\t\t * @sample {highcharts} highcharts/series/data-array-of-objects/\n\t\t * Config objects\n\t\t * @product highcharts highstock\n\t\t * @apioption series.columnrange.data\n\t\t */\n\n\t\t/**\n\t\t * @excluding halo,lineWidth,lineWidthPlus,marker\n\t\t * @product highcharts highstock\n\t\t * @apioption series.columnrange.states.hover\n\t\t */\n\n\t\t/**\n\t\t * @excluding halo,lineWidth,lineWidthPlus,marker\n\t\t * @product highcharts highstock\n\t\t * @apioption series.columnrange.states.select\n\t\t */\n\n\t}(Highcharts));\n\t(function (H) {\n\t\t/**\n\t\t * (c) 2010-2018 Torstein Honsi\n\t\t *\n\t\t * License: www.highcharts.com/license\n\t\t */\n\t\tvar each = H.each,\n\t\t isNumber = H.isNumber,\n\t\t merge = H.merge,\n\t\t noop = H.noop,\n\t\t pick = H.pick,\n\t\t pInt = H.pInt,\n\t\t Series = H.Series,\n\t\t seriesType = H.seriesType,\n\t\t TrackerMixin = H.TrackerMixin;\n\n\n\t\t/**\n\t\t * Gauges are circular plots displaying one or more values with a dial pointing\n\t\t * to values along the perimeter.\n\t\t *\n\t\t * @sample highcharts/demo/gauge-speedometer/ Gauge chart\n\t\t * @extends {plotOptions.line}\n\t\t * @excluding animationLimit,boostThreshold,connectEnds,connectNulls,\n\t\t * cropThreshold,dashStyle,findNearestPointBy,getExtremesFromAll,\n\t\t * marker,negativeColor,pointPlacement,shadow,softThreshold,\n\t\t * stacking,states,step,threshold,turboThreshold,xAxis,zoneAxis,\n\t\t * zones\n\t\t * @product highcharts\n\t\t * @optionparent plotOptions.gauge\n\t\t */\n\t\tseriesType('gauge', 'line', {\n\n\t\t /**\n\t\t * When this option is `true`, the dial will wrap around the axes. For\n\t\t * instance, in a full-range gauge going from 0 to 360, a value of 400\n\t\t * will point to 40\\. When `wrap` is `false`, the dial stops at 360.\n\t\t *\n\t\t * @type {Boolean}\n\t\t * @see [overshoot](#plotOptions.gauge.overshoot)\n\t\t * @default true\n\t\t * @since 3.0\n\t\t * @product highcharts\n\t\t * @apioption plotOptions.gauge.wrap\n\t\t */\n\n\t\t /**\n\t\t * Data labels for the gauge. For gauges, the data labels are enabled\n\t\t * by default and shown in a bordered box below the point.\n\t\t *\n\t\t * @type {Object}\n\t\t * @extends plotOptions.series.dataLabels\n\t\t * @since 2.3.0\n\t\t * @product highcharts\n\t\t */\n\t\t dataLabels: {\n\n\t\t /**\n\t\t * Enable or disable the data labels.\n\t\t *\n\t\t * @since 2.3.0\n\t\t * @product highcharts highmaps\n\t\t */\n\t\t enabled: true,\n\n\t\t defer: false,\n\n\t\t /**\n\t\t * The y position offset of the label relative to the center of the\n\t\t * gauge.\n\t\t *\n\t\t * @since 2.3.0\n\t\t * @product highcharts highmaps\n\t\t */\n\t\t y: 15,\n\n\t\t /**\n\t\t * The border radius in pixels for the gauge's data label.\n\t\t *\n\t\t * @since 2.3.0\n\t\t * @product highcharts highmaps\n\t\t */\n\t\t borderRadius: 3,\n\n\t\t crop: false,\n\n\t\t /**\n\t\t * The vertical alignment of the data label.\n\t\t *\n\t\t * @product highcharts highmaps\n\t\t */\n\t\t verticalAlign: 'top',\n\n\t\t /**\n\t\t * The Z index of the data labels. A value of 2 display them behind\n\t\t * the dial.\n\t\t *\n\t\t * @since 2.1.5\n\t\t * @product highcharts highmaps\n\t\t */\n\t\t zIndex: 2,\n \n\t\t // Presentational\n\n\t\t /**\n\t\t * The border width in pixels for the gauge data label.\n\t\t *\n\t\t * @since 2.3.0\n\t\t * @product highcharts highmaps\n\t\t */\n\t\t borderWidth: 1,\n\n\t\t /**\n\t\t * The border color for the data label.\n\t\t *\n\t\t * @type {Color}\n\t\t * @default #cccccc\n\t\t * @since 2.3.0\n\t\t * @product highcharts highmaps\n\t\t */\n\t\t borderColor: '#cccccc'\n \n\t\t },\n\n\t\t /**\n\t\t * Options for the dial or arrow pointer of the gauge.\n\t\t *\n\t\t * In styled mode, the dial is styled with the\n\t\t * `.highcharts-gauge-series .highcharts-dial` rule.\n\t\t *\n\t\t * @type {Object}\n\t\t * @sample {highcharts} highcharts/css/gauge/ Styled mode\n\t\t * @since 2.3.0\n\t\t * @product highcharts\n\t\t */\n\t\t dial: {},\n\n\t\t /**\n\t\t * The length of the dial's base part, relative to the total radius\n\t\t * or length of the dial.\n\t\t *\n\t\t * @type {String}\n\t\t * @sample {highcharts} highcharts/plotoptions/gauge-dial/\n\t\t * Dial options demonstrated\n\t\t * @default 70%\n\t\t * @since 2.3.0\n\t\t * @product highcharts\n\t\t * @apioption plotOptions.gauge.dial.baseLength\n\t\t */\n\n\t\t /**\n\t\t * The pixel width of the base of the gauge dial. The base is the part\n\t\t * closest to the pivot, defined by baseLength.\n\t\t *\n\t\t * @type {Number}\n\t\t * @sample {highcharts} highcharts/plotoptions/gauge-dial/\n\t\t * Dial options demonstrated\n\t\t * @default 3\n\t\t * @since 2.3.0\n\t\t * @product highcharts\n\t\t * @apioption plotOptions.gauge.dial.baseWidth\n\t\t */\n\n\t\t /**\n\t\t * The radius or length of the dial, in percentages relative to the\n\t\t * radius of the gauge itself.\n\t\t *\n\t\t * @type {String}\n\t\t * @sample {highcharts} highcharts/plotoptions/gauge-dial/\n\t\t * Dial options demonstrated\n\t\t * @default 80%\n\t\t * @since 2.3.0\n\t\t * @product highcharts\n\t\t * @apioption plotOptions.gauge.dial.radius\n\t\t */\n\n\t\t /**\n\t\t * The length of the dial's rear end, the part that extends out on the\n\t\t * other side of the pivot. Relative to the dial's length.\n\t\t *\n\t\t * @type {String}\n\t\t * @sample {highcharts} highcharts/plotoptions/gauge-dial/\n\t\t * Dial options demonstrated\n\t\t * @default 10%\n\t\t * @since 2.3.0\n\t\t * @product highcharts\n\t\t * @apioption plotOptions.gauge.dial.rearLength\n\t\t */\n\n\t\t /**\n\t\t * The width of the top of the dial, closest to the perimeter. The pivot\n\t\t * narrows in from the base to the top.\n\t\t *\n\t\t * @type {Number}\n\t\t * @sample {highcharts} highcharts/plotoptions/gauge-dial/\n\t\t * Dial options demonstrated\n\t\t * @default 1\n\t\t * @since 2.3.0\n\t\t * @product highcharts\n\t\t * @apioption plotOptions.gauge.dial.topWidth\n\t\t */\n\n \n\n\t\t /**\n\t\t * The background or fill color of the gauge's dial.\n\t\t *\n\t\t * @type {Color}\n\t\t * @sample {highcharts} highcharts/plotoptions/gauge-dial/\n\t\t * Dial options demonstrated\n\t\t * @default #000000\n\t\t * @since 2.3.0\n\t\t * @product highcharts\n\t\t * @apioption plotOptions.gauge.dial.backgroundColor\n\t\t */\n\n\t\t /**\n\t\t * The border color or stroke of the gauge's dial. By default, the\n\t\t * borderWidth is 0, so this must be set in addition to a custom border\n\t\t * color.\n\t\t *\n\t\t * @type {Color}\n\t\t * @sample {highcharts} highcharts/plotoptions/gauge-dial/\n\t\t * Dial options demonstrated\n\t\t * @default #cccccc\n\t\t * @since 2.3.0\n\t\t * @product highcharts\n\t\t * @apioption plotOptions.gauge.dial.borderColor\n\t\t */\n\n\t\t /**\n\t\t * The width of the gauge dial border in pixels.\n\t\t *\n\t\t * @type {Number}\n\t\t * @sample {highcharts} highcharts/plotoptions/gauge-dial/\n\t\t * Dial options demonstrated\n\t\t * @default 0\n\t\t * @since 2.3.0\n\t\t * @product highcharts\n\t\t * @apioption plotOptions.gauge.dial.borderWidth\n\t\t */\n\n \n\n\t\t /**\n\t\t * Allow the dial to overshoot the end of the perimeter axis by this\n\t\t * many degrees. Say if the gauge axis goes from 0 to 60, a value of\n\t\t * 100, or 1000, will show 5 degrees beyond the end of the axis when this\n\t\t * option is set to 5.\n\t\t *\n\t\t * @type {Number}\n\t\t * @see [wrap](#plotOptions.gauge.wrap)\n\t\t * @sample {highcharts} highcharts/plotoptions/gauge-overshoot/\n\t\t * Allow 5 degrees overshoot\n\t\t * @default 0\n\t\t * @since 3.0.10\n\t\t * @product highcharts\n\t\t * @apioption plotOptions.gauge.overshoot\n\t\t */\n\n\t\t /**\n\t\t * Options for the pivot or the center point of the gauge.\n\t\t *\n\t\t * In styled mode, the pivot is styled with the\n\t\t * `.highcharts-gauge-series .highcharts-pivot` rule.\n\t\t *\n\t\t * @type {Object}\n\t\t * @sample {highcharts} highcharts/css/gauge/ Styled mode\n\t\t * @since 2.3.0\n\t\t * @product highcharts\n\t\t */\n\t\t pivot: {},\n\n\t\t /**\n\t\t * The pixel radius of the pivot.\n\t\t *\n\t\t * @type {Number}\n\t\t * @sample {highcharts} highcharts/plotoptions/gauge-pivot/\n\t\t * Pivot options demonstrated\n\t\t * @default 5\n\t\t * @since 2.3.0\n\t\t * @product highcharts\n\t\t * @apioption plotOptions.gauge.pivot.radius\n\t\t */\n\n \n\n\t\t /**\n\t\t * The border or stroke width of the pivot.\n\t\t *\n\t\t * @type {Number}\n\t\t * @sample {highcharts} highcharts/plotoptions/gauge-pivot/\n\t\t * Pivot options demonstrated\n\t\t * @default 0\n\t\t * @since 2.3.0\n\t\t * @product highcharts\n\t\t * @apioption plotOptions.gauge.pivot.borderWidth\n\t\t */\n\n\t\t /**\n\t\t * The border or stroke color of the pivot. In able to change this,\n\t\t * the borderWidth must also be set to something other than the default\n\t\t * 0.\n\t\t *\n\t\t * @type {Color}\n\t\t * @sample {highcharts} highcharts/plotoptions/gauge-pivot/\n\t\t * Pivot options demonstrated\n\t\t * @default #cccccc\n\t\t * @since 2.3.0\n\t\t * @product highcharts\n\t\t * @apioption plotOptions.gauge.pivot.borderColor\n\t\t */\n\n\t\t /**\n\t\t * The background color or fill of the pivot.\n\t\t *\n\t\t * @type {Color}\n\t\t * @sample {highcharts} highcharts/plotoptions/gauge-pivot/\n\t\t * Pivot options demonstrated\n\t\t * @default #000000\n\t\t * @since 2.3.0\n\t\t * @product highcharts\n\t\t * @apioption plotOptions.gauge.pivot.backgroundColor\n\t\t */\n \n\n\n\t\t tooltip: {\n\t\t headerFormat: ''\n\t\t },\n\n\t\t /**\n\t\t * Whether to display this particular series or series type in the\n\t\t * legend. Defaults to false for gauge series.\n\t\t *\n\t\t * @since 2.3.0\n\t\t * @product highcharts\n\t\t */\n\t\t showInLegend: false\n\n\n\n\t\t// Prototype members\n\t\t}, {\n\t\t // chart.angular will be set to true when a gauge series is present,\n\t\t // and this will be used on the axes\n\t\t angular: true,\n\t\t directTouch: true, // #5063\n\t\t drawGraph: noop,\n\t\t fixedBox: true,\n\t\t forceDL: true,\n\t\t noSharedTooltip: true,\n\t\t trackerGroups: ['group', 'dataLabelsGroup'],\n\n\t\t /**\n\t\t * Calculate paths etc\n\t\t */\n\t\t translate: function () {\n\n\t\t var series = this,\n\t\t yAxis = series.yAxis,\n\t\t options = series.options,\n\t\t center = yAxis.center;\n\n\t\t series.generatePoints();\n\n\t\t each(series.points, function (point) {\n\n\t\t var dialOptions = merge(options.dial, point.dial),\n\t\t radius = (pInt(pick(dialOptions.radius, 80)) * center[2]) /\n\t\t 200,\n\t\t baseLength = (pInt(pick(dialOptions.baseLength, 70)) * radius) /\n\t\t 100,\n\t\t rearLength = (pInt(pick(dialOptions.rearLength, 10)) * radius) /\n\t\t 100,\n\t\t baseWidth = dialOptions.baseWidth || 3,\n\t\t topWidth = dialOptions.topWidth || 1,\n\t\t overshoot = options.overshoot,\n\t\t rotation = yAxis.startAngleRad +\n\t\t yAxis.translate(point.y, null, null, null, true);\n\n\t\t // Handle the wrap and overshoot options\n\t\t if (isNumber(overshoot)) {\n\t\t overshoot = overshoot / 180 * Math.PI;\n\t\t rotation = Math.max(\n\t\t yAxis.startAngleRad - overshoot,\n\t\t Math.min(yAxis.endAngleRad + overshoot, rotation)\n\t\t );\n\n\t\t } else if (options.wrap === false) {\n\t\t rotation = Math.max(\n\t\t yAxis.startAngleRad,\n\t\t Math.min(yAxis.endAngleRad, rotation)\n\t\t );\n\t\t }\n\n\t\t rotation = rotation * 180 / Math.PI;\n\n\t\t point.shapeType = 'path';\n\t\t point.shapeArgs = {\n\t\t d: dialOptions.path || [\n\t\t 'M',\n\t\t -rearLength, -baseWidth / 2,\n\t\t 'L',\n\t\t baseLength, -baseWidth / 2,\n\t\t radius, -topWidth / 2,\n\t\t radius, topWidth / 2,\n\t\t baseLength, baseWidth / 2,\n\t\t -rearLength, baseWidth / 2,\n\t\t 'z'\n\t\t ],\n\t\t translateX: center[0],\n\t\t translateY: center[1],\n\t\t rotation: rotation\n\t\t };\n\n\t\t // Positions for data label\n\t\t point.plotX = center[0];\n\t\t point.plotY = center[1];\n\t\t });\n\t\t },\n\n\t\t /**\n\t\t * Draw the points where each point is one needle\n\t\t */\n\t\t drawPoints: function () {\n\n\t\t var series = this,\n\t\t center = series.yAxis.center,\n\t\t pivot = series.pivot,\n\t\t options = series.options,\n\t\t pivotOptions = options.pivot,\n\t\t renderer = series.chart.renderer;\n\n\t\t each(series.points, function (point) {\n\n\t\t var graphic = point.graphic,\n\t\t shapeArgs = point.shapeArgs,\n\t\t d = shapeArgs.d,\n\t\t dialOptions = merge(options.dial, point.dial); // #1233\n\n\t\t if (graphic) {\n\t\t graphic.animate(shapeArgs);\n\t\t shapeArgs.d = d; // animate alters it\n\t\t } else {\n\t\t point.graphic = renderer[point.shapeType](shapeArgs)\n\t\t .attr({\n\t\t // required by VML when animation is false\n\t\t rotation: shapeArgs.rotation,\n\t\t zIndex: 1\n\t\t })\n\t\t .addClass('highcharts-dial')\n\t\t .add(series.group);\n\n \n\t\t // Presentational attributes\n\t\t point.graphic.attr({\n\t\t stroke: dialOptions.borderColor || 'none',\n\t\t 'stroke-width': dialOptions.borderWidth || 0,\n\t\t fill: dialOptions.backgroundColor ||\n\t\t '#000000'\n\t\t });\n \n\t\t }\n\t\t });\n\n\t\t // Add or move the pivot\n\t\t if (pivot) {\n\t\t pivot.animate({ // #1235\n\t\t translateX: center[0],\n\t\t translateY: center[1]\n\t\t });\n\t\t } else {\n\t\t series.pivot = renderer.circle(0, 0, pick(pivotOptions.radius, 5))\n\t\t .attr({\n\t\t zIndex: 2\n\t\t })\n\t\t .addClass('highcharts-pivot')\n\t\t .translate(center[0], center[1])\n\t\t .add(series.group);\n\n \n\t\t // Presentational attributes\n\t\t series.pivot.attr({\n\t\t 'stroke-width': pivotOptions.borderWidth || 0,\n\t\t stroke: pivotOptions.borderColor ||\n\t\t '#cccccc',\n\t\t fill: pivotOptions.backgroundColor ||\n\t\t '#000000'\n\t\t });\n \n\t\t }\n\t\t },\n\n\t\t /**\n\t\t * Animate the arrow up from startAngle\n\t\t */\n\t\t animate: function (init) {\n\t\t var series = this;\n\n\t\t if (!init) {\n\t\t each(series.points, function (point) {\n\t\t var graphic = point.graphic;\n\n\t\t if (graphic) {\n\t\t // start value\n\t\t graphic.attr({\n\t\t rotation: series.yAxis.startAngleRad * 180 / Math.PI\n\t\t });\n\n\t\t // animate\n\t\t graphic.animate({\n\t\t rotation: point.shapeArgs.rotation\n\t\t }, series.options.animation);\n\t\t }\n\t\t });\n\n\t\t // delete this function to allow it only once\n\t\t series.animate = null;\n\t\t }\n\t\t },\n\n\t\t render: function () {\n\t\t this.group = this.plotGroup(\n\t\t 'group',\n\t\t 'series',\n\t\t this.visible ? 'visible' : 'hidden',\n\t\t this.options.zIndex,\n\t\t this.chart.seriesGroup\n\t\t );\n\t\t Series.prototype.render.call(this);\n\t\t this.group.clip(this.chart.clipRect);\n\t\t },\n\n\t\t /**\n\t\t * Extend the basic setData method by running processData and generatePoints\n\t\t * immediately, in order to access the points from the legend.\n\t\t */\n\t\t setData: function (data, redraw) {\n\t\t Series.prototype.setData.call(this, data, false);\n\t\t this.processData();\n\t\t this.generatePoints();\n\t\t if (pick(redraw, true)) {\n\t\t this.chart.redraw();\n\t\t }\n\t\t },\n\n\t\t /**\n\t\t * If the tracking module is loaded, add the point tracker\n\t\t */\n\t\t drawTracker: TrackerMixin && TrackerMixin.drawTrackerPoint\n\n\t\t// Point members\n\t\t}, {\n\t\t /**\n\t\t * Don't do any hover colors or anything\n\t\t */\n\t\t setState: function (state) {\n\t\t this.state = state;\n\t\t }\n\t\t});\n\n\t\t/**\n\t\t * A `gauge` series. If the [type](#series.gauge.type) option is not\n\t\t * specified, it is inherited from [chart.type](#chart.type).\n\t\t *\n\t\t * @type {Object}\n\t\t * @extends series,plotOptions.gauge\n\t\t * @excluding animationLimit,boostThreshold,connectEnds,connectNulls,\n\t\t * cropThreshold,dashStyle,dataParser,dataURL,findNearestPointBy,\n\t\t * getExtremesFromAll,marker,negativeColor,pointPlacement,shadow,\n\t\t * softThreshold,stack,stacking,states,step,threshold,\n\t\t * turboThreshold,zoneAxis,zones\n\t\t * @product highcharts\n\t\t * @apioption series.gauge\n\t\t */\n\n\t\t/**\n\t\t * An array of data points for the series. For the `gauge` series type,\n\t\t * points can be given in the following ways:\n\t\t *\n\t\t * 1. An array of numerical values. In this case, the numerical values\n\t\t * will be interpreted as `y` options. Example:\n\t\t *\n\t\t * ```js\n\t\t * data: [0, 5, 3, 5]\n\t\t * ```\n\t\t *\n\t\t * 2. An array of objects with named values. The following snippet shows only a\n\t\t * few settings, see the complete options set below. If the total number of data\n\t\t * points exceeds the series' [turboThreshold](#series.gauge.turboThreshold),\n\t\t * this option is not available.\n\t\t *\n\t\t * ```js\n\t\t * data: [{\n\t\t * y: 6,\n\t\t * name: \"Point2\",\n\t\t * color: \"#00FF00\"\n\t\t * }, {\n\t\t * y: 8,\n\t\t * name: \"Point1\",\n\t\t * color: \"#FF00FF\"\n\t\t * }]\n\t\t *\n\t\t * The typical gauge only contains a single data value.\n\t\t *\n\t\t * @type {Array}\n\t\t * @extends series.line.data\n\t\t * @excluding drilldown,marker,x\n\t\t * @sample {highcharts} highcharts/chart/reflow-true/\n\t\t * Numerical values\n\t\t * @sample {highcharts} highcharts/series/data-array-of-arrays/\n\t\t * Arrays of numeric x and y\n\t\t * @sample {highcharts} highcharts/series/data-array-of-arrays-datetime/\n\t\t * Arrays of datetime x and y\n\t\t * @sample {highcharts} highcharts/series/data-array-of-name-value/\n\t\t * Arrays of point.name and y\n\t\t * @sample {highcharts} highcharts/series/data-array-of-objects/\n\t\t * Config objects\n\t\t * @product highcharts\n\t\t * @apioption series.gauge.data\n\t\t */\n\n\t}(Highcharts));\n\t(function (H) {\n\t\t/**\n\t\t * (c) 2010-2018 Torstein Honsi\n\t\t *\n\t\t * License: www.highcharts.com/license\n\t\t */\n\n\t\tvar each = H.each,\n\t\t noop = H.noop,\n\t\t pick = H.pick,\n\t\t seriesType = H.seriesType,\n\t\t seriesTypes = H.seriesTypes;\n\n\t\t/**\n\t\t * The boxplot series type.\n\t\t *\n\t\t * @constructor seriesTypes.boxplot\n\t\t * @augments seriesTypes.column\n\t\t */\n\n\t\t/**\n\t\t * A box plot is a convenient way of depicting groups of data through their\n\t\t * five-number summaries: the smallest observation (sample minimum), lower\n\t\t * quartile (Q1), median (Q2), upper quartile (Q3), and largest observation\n\t\t * (sample maximum).\n\t\t *\n\t\t * @sample highcharts/demo/box-plot/ Box plot\n\t\t * @extends {plotOptions.column}\n\t\t * @product highcharts\n\t\t * @excluding borderColor,borderRadius,borderWidth,groupZPadding,states\n\t\t * @optionparent plotOptions.boxplot\n\t\t */\n\t\tseriesType('boxplot', 'column', {\n\n\t\t threshold: null,\n\n\t\t tooltip: {\n \n\n\t\t pointFormat: // eslint-disable-line no-dupe-keys\n\t\t '\\u25CF ' +\n\t\t '{series.name}
    ' +\n\t\t 'Maximum: {point.high}
    ' +\n\t\t 'Upper quartile: {point.q3}
    ' +\n\t\t 'Median: {point.median}
    ' +\n\t\t 'Lower quartile: {point.q1}
    ' +\n\t\t 'Minimum: {point.low}
    '\n \n\t\t },\n\n\t\t /**\n\t\t * The length of the whiskers, the horizontal lines marking low and\n\t\t * high values. It can be a numerical pixel value, or a percentage\n\t\t * value of the box width. Set `0` to disable whiskers.\n\t\t *\n\t\t * @type {Number|String}\n\t\t * @sample {highcharts} highcharts/plotoptions/box-plot-styling/\n\t\t * True by default\n\t\t * @since 3.0\n\t\t * @product highcharts\n\t\t */\n\t\t whiskerLength: '50%',\n \n\n\t\t /**\n\t\t * The fill color of the box.\n\t\t *\n\t\t * In styled mode, the fill color can be set with the\n\t\t * `.highcharts-boxplot-box` class.\n\t\t *\n\t\t * @type {Color}\n\t\t * @sample {highcharts} highcharts/plotoptions/box-plot-styling/\n\t\t * Box plot styling\n\t\t * @default #ffffff\n\t\t * @since 3.0\n\t\t * @product highcharts\n\t\t */\n\t\t fillColor: '#ffffff',\n\n\t\t /**\n\t\t * The width of the line surrounding the box. If any of\n\t\t * [stemWidth](#plotOptions.boxplot.stemWidth),\n\t\t * [medianWidth](#plotOptions.boxplot.medianWidth)\n\t\t * or [whiskerWidth](#plotOptions.boxplot.whiskerWidth) are `null`,\n\t\t * the lineWidth also applies to these lines.\n\t\t *\n\t\t * @sample {highcharts} highcharts/plotoptions/box-plot-styling/\n\t\t * Box plot styling\n\t\t * @sample {highcharts} highcharts/plotoptions/error-bar-styling/\n\t\t * Error bar styling\n\t\t * @since 3.0\n\t\t * @product highcharts\n\t\t */\n\t\t lineWidth: 1,\n\n\t\t /**\n\t\t * The color of the median line. If `null`, the general series color\n\t\t * applies.\n\t\t *\n\t\t * In styled mode, the median stroke width can be set with the\n\t\t * `.highcharts-boxplot-median` class.\n\t\t *\n\t\t * @type {Color}\n\t\t * @sample {highcharts} highcharts/plotoptions/box-plot-styling/\n\t\t * Box plot styling\n\t\t * @sample {highcharts} highcharts/css/boxplot/\n\t\t * Box plot in styled mode\n\t\t * @sample {highcharts} highcharts/plotoptions/error-bar-styling/\n\t\t * Error bar styling\n\t\t * @default null\n\t\t * @since 3.0\n\t\t * @product highcharts\n\t\t * @apioption plotOptions.boxplot.medianColor\n\t\t */\n\n\t\t /**\n\t\t * The pixel width of the median line. If `null`, the\n\t\t * [lineWidth](#plotOptions.boxplot.lineWidth) is used.\n\t\t *\n\t\t * In styled mode, the median stroke width can be set with the\n\t\t * `.highcharts-boxplot-median` class.\n\t\t *\n\t\t * @sample {highcharts} highcharts/plotoptions/box-plot-styling/\n\t\t * Box plot styling\n\t\t * @sample {highcharts} highcharts/css/boxplot/\n\t\t * Box plot in styled mode\n\t\t * @since 3.0\n\t\t * @product highcharts\n\t\t */\n\t\t medianWidth: 2,\n\n\t\t /*\n\t\t // States are not working and are removed from docs.\n\t\t // Refer to: #2340\n\t\t states: {\n\t\t hover: {\n\t\t brightness: -0.3\n\t\t }\n\t\t },\n\t\t */\n\n\t\t /**\n\t\t * The color of the stem, the vertical line extending from the box to\n\t\t * the whiskers. If `null`, the series color is used.\n\t\t *\n\t\t * In styled mode, the stem stroke can be set with the\n\t\t * `.highcharts-boxplot-stem` class.\n\t\t *\n\t\t * @type {Color}\n\t\t * @sample {highcharts} highcharts/plotoptions/box-plot-styling/\n\t\t * Box plot styling\n\t\t * @sample {highcharts} highcharts/css/boxplot/\n\t\t * Box plot in styled mode\n\t\t * @sample {highcharts} highcharts/plotoptions/error-bar-styling/\n\t\t * Error bar styling\n\t\t * @default null\n\t\t * @since 3.0\n\t\t * @product highcharts\n\t\t * @apioption plotOptions.boxplot.stemColor\n\t\t */\n\n\t\t /**\n\t\t * The dash style of the stem, the vertical line extending from the\n\t\t * box to the whiskers.\n\t\t *\n\t\t * @validvalue [\"Solid\", \"ShortDash\", \"ShortDot\", \"ShortDashDot\",\n\t\t * \"ShortDashDotDot\", \"Dot\", \"Dash\" ,\"LongDash\", \"DashDot\",\n\t\t * \"LongDashDot\", \"LongDashDotDot\"]\n\t\t * @type {String}\n\t\t * @sample {highcharts} highcharts/plotoptions/box-plot-styling/\n\t\t * Box plot styling\n\t\t * @sample {highcharts} highcharts/css/boxplot/\n\t\t * Box plot in styled mode\n\t\t * @sample {highcharts} highcharts/plotoptions/error-bar-styling/\n\t\t * Error bar styling\n\t\t * @default Solid\n\t\t * @since 3.0\n\t\t * @product highcharts\n\t\t * @apioption plotOptions.boxplot.stemDashStyle\n\t\t */\n\n\t\t /**\n\t\t * The width of the stem, the vertical line extending from the box to\n\t\t * the whiskers. If `null`, the width is inherited from the\n\t\t * [lineWidth](#plotOptions.boxplot.lineWidth) option.\n\t\t *\n\t\t * In styled mode, the stem stroke width can be set with the\n\t\t * `.highcharts-boxplot-stem` class.\n\t\t *\n\t\t * @type {Number}\n\t\t * @sample {highcharts} highcharts/plotoptions/box-plot-styling/\n\t\t * Box plot styling\n\t\t * @sample {highcharts} highcharts/css/boxplot/\n\t\t * Box plot in styled mode\n\t\t * @sample {highcharts} highcharts/plotoptions/error-bar-styling/\n\t\t * Error bar styling\n\t\t * @default null\n\t\t * @since 3.0\n\t\t * @product highcharts\n\t\t * @apioption plotOptions.boxplot.stemWidth\n\t\t */\n\n\t\t /**\n\t\t * The color of the whiskers, the horizontal lines marking low and high\n\t\t * values. When `null`, the general series color is used.\n\t\t *\n\t\t * In styled mode, the whisker stroke can be set with the\n\t\t * `.highcharts-boxplot-whisker` class .\n\t\t *\n\t\t * @type {Color}\n\t\t * @sample {highcharts} highcharts/plotoptions/box-plot-styling/\n\t\t * Box plot styling\n\t\t * @sample {highcharts} highcharts/css/boxplot/\n\t\t * Box plot in styled mode\n\t\t * @default null\n\t\t * @since 3.0\n\t\t * @product highcharts\n\t\t * @apioption plotOptions.boxplot.whiskerColor\n\t\t */\n\n\t\t /**\n\t\t * The line width of the whiskers, the horizontal lines marking low and\n\t\t * high values. When `null`, the general\n\t\t * [lineWidth](#plotOptions.boxplot.lineWidth) applies.\n\t\t *\n\t\t * In styled mode, the whisker stroke width can be set with the\n\t\t * `.highcharts-boxplot-whisker` class.\n\t\t *\n\t\t * @sample {highcharts} highcharts/plotoptions/box-plot-styling/\n\t\t * Box plot styling\n\t\t * @sample {highcharts} highcharts/css/boxplot/\n\t\t * Box plot in styled mode\n\t\t * @since 3.0\n\t\t * @product highcharts\n\t\t */\n\t\t whiskerWidth: 2\n \n\n\t\t}, /** @lends seriesTypes.boxplot */ {\n\n\t\t // array point configs are mapped to this\n\t\t pointArrayMap: ['low', 'q1', 'median', 'q3', 'high'],\n\t\t toYData: function (point) { // return a plain array for speedy calculation\n\t\t return [point.low, point.q1, point.median, point.q3, point.high];\n\t\t },\n\n\t\t // defines the top of the tracker\n\t\t pointValKey: 'high',\n\n \n\t\t /**\n\t\t * Get presentational attributes\n\t\t */\n\t\t pointAttribs: function () {\n\t\t // No attributes should be set on point.graphic which is the group\n\t\t return {};\n\t\t },\n \n\n\t\t /**\n\t\t * Disable data labels for box plot\n\t\t */\n\t\t drawDataLabels: noop,\n\n\t\t /**\n\t\t * Translate data points from raw values x and y to plotX and plotY\n\t\t */\n\t\t translate: function () {\n\t\t var series = this,\n\t\t yAxis = series.yAxis,\n\t\t pointArrayMap = series.pointArrayMap;\n\n\t\t seriesTypes.column.prototype.translate.apply(series);\n\n\t\t // do the translation on each point dimension\n\t\t each(series.points, function (point) {\n\t\t each(pointArrayMap, function (key) {\n\t\t if (point[key] !== null) {\n\t\t point[key + 'Plot'] = yAxis.translate(\n\t\t point[key], 0, 1, 0, 1\n\t\t );\n\t\t }\n\t\t });\n\t\t });\n\t\t },\n\n\t\t /**\n\t\t * Draw the data points\n\t\t */\n\t\t drawPoints: function () {\n\t\t var series = this,\n\t\t points = series.points,\n\t\t options = series.options,\n\t\t chart = series.chart,\n\t\t renderer = chart.renderer,\n\t\t q1Plot,\n\t\t q3Plot,\n\t\t highPlot,\n\t\t lowPlot,\n\t\t medianPlot,\n\t\t medianPath,\n\t\t crispCorr,\n\t\t crispX = 0,\n\t\t boxPath,\n\t\t width,\n\t\t left,\n\t\t right,\n\t\t halfWidth,\n\t\t // error bar inherits this series type but doesn't do quartiles\n\t\t doQuartiles = series.doQuartiles !== false,\n\t\t pointWiskerLength,\n\t\t whiskerLength = series.options.whiskerLength;\n\n\n\t\t each(points, function (point) {\n\n\t\t var graphic = point.graphic,\n\t\t verb = graphic ? 'animate' : 'attr',\n\t\t shapeArgs = point.shapeArgs; // the box\n\n \n\t\t var boxAttr = {},\n\t\t stemAttr = {},\n\t\t whiskersAttr = {},\n\t\t medianAttr = {},\n\t\t color = point.color || series.color;\n \n\n\t\t if (point.plotY !== undefined) {\n\n\t\t // crisp vector coordinates\n\t\t width = shapeArgs.width;\n\t\t left = Math.floor(shapeArgs.x);\n\t\t right = left + width;\n\t\t halfWidth = Math.round(width / 2);\n\t\t q1Plot = Math.floor(doQuartiles ? point.q1Plot : point.lowPlot);\n\t\t q3Plot = Math.floor(doQuartiles ? point.q3Plot : point.lowPlot);\n\t\t highPlot = Math.floor(point.highPlot);\n\t\t lowPlot = Math.floor(point.lowPlot);\n\n\t\t if (!graphic) {\n\t\t point.graphic = graphic = renderer.g('point')\n\t\t .add(series.group);\n\n\t\t point.stem = renderer.path()\n\t\t .addClass('highcharts-boxplot-stem')\n\t\t .add(graphic);\n\n\t\t if (whiskerLength) {\n\t\t point.whiskers = renderer.path()\n\t\t .addClass('highcharts-boxplot-whisker')\n\t\t .add(graphic);\n\t\t }\n\t\t if (doQuartiles) {\n\t\t point.box = renderer.path(boxPath)\n\t\t .addClass('highcharts-boxplot-box')\n\t\t .add(graphic);\n\t\t }\n\t\t point.medianShape = renderer.path(medianPath)\n\t\t .addClass('highcharts-boxplot-median')\n\t\t .add(graphic);\n\t\t }\n\n \n\n\t\t // Stem attributes\n\t\t stemAttr.stroke = point.stemColor || options.stemColor || color;\n\t\t stemAttr['stroke-width'] = pick(\n\t\t point.stemWidth,\n\t\t options.stemWidth,\n\t\t options.lineWidth\n\t\t );\n\t\t stemAttr.dashstyle =\n\t\t point.stemDashStyle || options.stemDashStyle;\n\t\t point.stem.attr(stemAttr);\n\n\t\t // Whiskers attributes\n\t\t if (whiskerLength) {\n\t\t whiskersAttr.stroke =\n\t\t point.whiskerColor || options.whiskerColor || color;\n\t\t whiskersAttr['stroke-width'] = pick(\n\t\t point.whiskerWidth,\n\t\t options.whiskerWidth,\n\t\t options.lineWidth\n\t\t );\n\t\t point.whiskers.attr(whiskersAttr);\n\t\t }\n\n\t\t if (doQuartiles) {\n\t\t boxAttr.fill = (\n\t\t point.fillColor ||\n\t\t options.fillColor ||\n\t\t color\n\t\t );\n\t\t boxAttr.stroke = options.lineColor || color;\n\t\t boxAttr['stroke-width'] = options.lineWidth || 0;\n\t\t point.box.attr(boxAttr);\n\t\t }\n\n\n\t\t // Median attributes\n\t\t medianAttr.stroke =\n\t\t point.medianColor || options.medianColor || color;\n\t\t medianAttr['stroke-width'] = pick(\n\t\t point.medianWidth,\n\t\t options.medianWidth,\n\t\t options.lineWidth\n\t\t );\n\t\t point.medianShape.attr(medianAttr);\n\n \n\n\n\t\t // The stem\n\t\t crispCorr = (point.stem.strokeWidth() % 2) / 2;\n\t\t crispX = left + halfWidth + crispCorr;\n\t\t point.stem[verb]({ d: [\n\t\t // stem up\n\t\t 'M',\n\t\t crispX, q3Plot,\n\t\t 'L',\n\t\t crispX, highPlot,\n\n\t\t // stem down\n\t\t 'M',\n\t\t crispX, q1Plot,\n\t\t 'L',\n\t\t crispX, lowPlot\n\t\t ] });\n\n\t\t // The box\n\t\t if (doQuartiles) {\n\t\t crispCorr = (point.box.strokeWidth() % 2) / 2;\n\t\t q1Plot = Math.floor(q1Plot) + crispCorr;\n\t\t q3Plot = Math.floor(q3Plot) + crispCorr;\n\t\t left += crispCorr;\n\t\t right += crispCorr;\n\t\t point.box[verb]({ d: [\n\t\t 'M',\n\t\t left, q3Plot,\n\t\t 'L',\n\t\t left, q1Plot,\n\t\t 'L',\n\t\t right, q1Plot,\n\t\t 'L',\n\t\t right, q3Plot,\n\t\t 'L',\n\t\t left, q3Plot,\n\t\t 'z'\n\t\t ] });\n\t\t }\n\n\t\t // The whiskers\n\t\t if (whiskerLength) {\n\t\t crispCorr = (point.whiskers.strokeWidth() % 2) / 2;\n\t\t highPlot = highPlot + crispCorr;\n\t\t lowPlot = lowPlot + crispCorr;\n\t\t pointWiskerLength = (/%$/).test(whiskerLength) ?\n\t\t halfWidth * parseFloat(whiskerLength) / 100 :\n\t\t whiskerLength / 2;\n\t\t point.whiskers[verb]({ d: [\n\t\t // High whisker\n\t\t 'M',\n\t\t crispX - pointWiskerLength,\n\t\t highPlot,\n\t\t 'L',\n\t\t crispX + pointWiskerLength,\n\t\t highPlot,\n\n\t\t // Low whisker\n\t\t 'M',\n\t\t crispX - pointWiskerLength,\n\t\t lowPlot,\n\t\t 'L',\n\t\t crispX + pointWiskerLength,\n\t\t lowPlot\n\t\t ] });\n\t\t }\n\n\t\t // The median\n\t\t medianPlot = Math.round(point.medianPlot);\n\t\t crispCorr = (point.medianShape.strokeWidth() % 2) / 2;\n\t\t medianPlot = medianPlot + crispCorr;\n\n\t\t point.medianShape[verb]({ d: [\n\t\t 'M',\n\t\t left,\n\t\t medianPlot,\n\t\t 'L',\n\t\t right,\n\t\t medianPlot\n\t\t ] });\n\t\t }\n\t\t });\n\n\t\t },\n\t\t setStackedPoints: noop // #3890\n\n\t\t});\n\n\t\t/**\n\t\t * A `boxplot` series. If the [type](#series.boxplot.type) option is\n\t\t * not specified, it is inherited from [chart.type](#chart.type).\n\t\t *\n\t\t * @type {Object}\n\t\t * @extends series,plotOptions.boxplot\n\t\t * @excluding dataParser,dataURL,marker,stack,stacking,states\n\t\t * @product highcharts\n\t\t * @apioption series.boxplot\n\t\t */\n\n\t\t/**\n\t\t * An array of data points for the series. For the `boxplot` series\n\t\t * type, points can be given in the following ways:\n\t\t *\n\t\t * 1. An array of arrays with 6 or 5 values. In this case, the values\n\t\t * correspond to `x,low,q1,median,q3,high`. If the first value is a\n\t\t * string, it is applied as the name of the point, and the `x` value\n\t\t * is inferred. The `x` value can also be omitted, in which case the\n\t\t * inner arrays should be of length 5\\. Then the `x` value is automatically\n\t\t * calculated, either starting at 0 and incremented by 1, or from `pointStart`\n\t\t * and `pointInterval` given in the series options.\n\t\t *\n\t\t * ```js\n\t\t * data: [\n\t\t * [0, 3, 0, 10, 3, 5],\n\t\t * [1, 7, 8, 7, 2, 9],\n\t\t * [2, 6, 9, 5, 1, 3]\n\t\t * ]\n\t\t * ```\n\t\t *\n\t\t * 2. An array of objects with named values. The following snippet shows only a\n\t\t * few settings, see the complete options set below. If the total number of data\n\t\t * points exceeds the series' [turboThreshold](#series.boxplot.turboThreshold),\n\t\t * this option is not available.\n\t\t *\n\t\t * ```js\n\t\t * data: [{\n\t\t * x: 1,\n\t\t * low: 4,\n\t\t * q1: 9,\n\t\t * median: 9,\n\t\t * q3: 1,\n\t\t * high: 10,\n\t\t * name: \"Point2\",\n\t\t * color: \"#00FF00\"\n\t\t * }, {\n\t\t * x: 1,\n\t\t * low: 5,\n\t\t * q1: 7,\n\t\t * median: 3,\n\t\t * q3: 6,\n\t\t * high: 2,\n\t\t * name: \"Point1\",\n\t\t * color: \"#FF00FF\"\n\t\t * }]\n\t\t * ```\n\t\t *\n\t\t * @type {Array}\n\t\t * @extends series.line.data\n\t\t * @excluding marker\n\t\t * @sample {highcharts} highcharts/chart/reflow-true/\n\t\t * Numerical values\n\t\t * @sample {highcharts} highcharts/series/data-array-of-arrays/\n\t\t * Arrays of numeric x and y\n\t\t * @sample {highcharts} highcharts/series/data-array-of-arrays-datetime/\n\t\t * Arrays of datetime x and y\n\t\t * @sample {highcharts} highcharts/series/data-array-of-name-value/\n\t\t * Arrays of point.name and y\n\t\t * @sample {highcharts} highcharts/series/data-array-of-objects/\n\t\t * Config objects\n\t\t * @product highcharts\n\t\t * @apioption series.boxplot.data\n\t\t */\n\n\t\t/**\n\t\t * The `high` value for each data point, signifying the highest value\n\t\t * in the sample set. The top whisker is drawn here.\n\t\t *\n\t\t * @type {Number}\n\t\t * @product highcharts\n\t\t * @apioption series.boxplot.data.high\n\t\t */\n\n\t\t/**\n\t\t * The `low` value for each data point, signifying the lowest value\n\t\t * in the sample set. The bottom whisker is drawn here.\n\t\t *\n\t\t * @type {Number}\n\t\t * @product highcharts\n\t\t * @apioption series.boxplot.data.low\n\t\t */\n\n\t\t/**\n\t\t * The median for each data point. This is drawn as a line through the\n\t\t * middle area of the box.\n\t\t *\n\t\t * @type {Number}\n\t\t * @product highcharts\n\t\t * @apioption series.boxplot.data.median\n\t\t */\n\n\t\t/**\n\t\t * The lower quartile for each data point. This is the bottom of the\n\t\t * box.\n\t\t *\n\t\t * @type {Number}\n\t\t * @product highcharts\n\t\t * @apioption series.boxplot.data.q1\n\t\t */\n\n\t\t/**\n\t\t * The higher quartile for each data point. This is the top of the box.\n\t\t *\n\t\t * @type {Number}\n\t\t * @product highcharts\n\t\t * @apioption series.boxplot.data.q3\n\t\t */\n\n\t}(Highcharts));\n\t(function (H) {\n\t\t/**\n\t\t * (c) 2010-2018 Torstein Honsi\n\t\t *\n\t\t * License: www.highcharts.com/license\n\t\t */\n\t\tvar each = H.each,\n\t\t noop = H.noop,\n\t\t seriesType = H.seriesType,\n\t\t seriesTypes = H.seriesTypes;\n\n\t\t/**\n\t\t * Error bars are a graphical representation of the variability of data and are\n\t\t * used on graphs to indicate the error, or uncertainty in a reported\n\t\t * measurement.\n\t\t *\n\t\t * @sample highcharts/demo/error-bar/\n\t\t * Error bars on a column series\n\t\t * @sample highcharts/series-errorbar/on-scatter/\n\t\t * Error bars on a scatter series\n\t\t * @extends {plotOptions.boxplot}\n\t\t * @product highcharts highstock\n\t\t * @optionparent plotOptions.errorbar\n\t\t */\n\t\tseriesType('errorbar', 'boxplot', {\n \n\n\t\t /**\n\t\t * The main color of the bars. This can be overridden by\n\t\t * [stemColor](#plotOptions.errorbar.stemColor) and\n\t\t * [whiskerColor](#plotOptions.errorbar.whiskerColor) individually.\n\t\t *\n\t\t * @type {Color}\n\t\t * @sample {highcharts} highcharts/plotoptions/error-bar-styling/\n\t\t * Error bar styling\n\t\t * @default #000000\n\t\t * @since 3.0\n\t\t * @product highcharts\n\t\t */\n\t\t color: '#000000',\n \n\n\t\t grouping: false,\n\n\t\t /**\n\t\t * The parent series of the error bar. The default value links it to\n\t\t * the previous series. Otherwise, use the id of the parent series.\n\t\t *\n\t\t * @since 3.0\n\t\t * @product highcharts\n\t\t */\n\t\t linkedTo: ':previous',\n\n\t\t tooltip: {\n\t\t pointFormat: '\\u25CF {series.name}: {point.low} - {point.high}
    '\n\t\t },\n\n\t\t /**\n\t\t * The line width of the whiskers, the horizontal lines marking low\n\t\t * and high values. When `null`, the general\n\t\t * [lineWidth](#plotOptions.errorbar.lineWidth) applies.\n\t\t *\n\t\t * @type {Number}\n\t\t * @sample {highcharts} highcharts/plotoptions/error-bar-styling/\n\t\t * Error bar styling\n\t\t * @since 3.0\n\t\t * @product highcharts\n\t\t */\n\t\t whiskerWidth: null\n\n\t\t// Prototype members\n\t\t}, {\n\t\t type: 'errorbar',\n\t\t pointArrayMap: ['low', 'high'], // array point configs are mapped to this\n\t\t toYData: function (point) { // return a plain array for speedy calculation\n\t\t return [point.low, point.high];\n\t\t },\n\t\t pointValKey: 'high', // defines the top of the tracker\n\t\t doQuartiles: false,\n\t\t drawDataLabels: seriesTypes.arearange ?\n\t\t function () {\n\t\t var valKey = this.pointValKey;\n\t\t seriesTypes.arearange.prototype.drawDataLabels.call(this);\n\t\t // Arearange drawDataLabels does not reset point.y to high,\n\t\t // but to low after drawing (#4133)\n\t\t each(this.data, function (point) {\n\t\t point.y = point[valKey];\n\t\t });\n\t\t } :\n\t\t noop,\n\n\t\t /**\n\t\t * Get the width and X offset, either on top of the linked series column\n\t\t * or standalone\n\t\t */\n\t\t getColumnMetrics: function () {\n\t\t return (this.linkedParent && this.linkedParent.columnMetrics) ||\n\t\t seriesTypes.column.prototype.getColumnMetrics.call(this);\n\t\t }\n\t\t});\n\n\t\t/**\n\t\t * A `errorbar` series. If the [type](#series.errorbar.type) option\n\t\t * is not specified, it is inherited from [chart.type](#chart.type).\n\t\t *\n\t\t * @type {Object}\n\t\t * @extends series,plotOptions.errorbar\n\t\t * @excluding dataParser,dataURL,stack,stacking\n\t\t * @product highcharts\n\t\t * @apioption series.errorbar\n\t\t */\n\n\t\t/**\n\t\t * An array of data points for the series. For the `errorbar` series\n\t\t * type, points can be given in the following ways:\n\t\t *\n\t\t * 1. An array of arrays with 3 or 2 values. In this case, the values\n\t\t * correspond to `x,low,high`. If the first value is a string, it is\n\t\t * applied as the name of the point, and the `x` value is inferred.\n\t\t * The `x` value can also be omitted, in which case the inner arrays\n\t\t * should be of length 2\\. Then the `x` value is automatically calculated,\n\t\t * either starting at 0 and incremented by 1, or from `pointStart`\n\t\t * and `pointInterval` given in the series options.\n\t\t *\n\t\t * ```js\n\t\t * data: [\n\t\t * [0, 10, 2],\n\t\t * [1, 1, 8],\n\t\t * [2, 4, 5]\n\t\t * ]\n\t\t * ```\n\t\t *\n\t\t * 2. An array of objects with named values. The following snippet shows only a\n\t\t * few settings, see the complete options set below. If the total number of data\n\t\t * points exceeds the series' [turboThreshold](#series.errorbar.turboThreshold),\n\t\t * this option is not available.\n\t\t *\n\t\t * ```js\n\t\t * data: [{\n\t\t * x: 1,\n\t\t * low: 0,\n\t\t * high: 0,\n\t\t * name: \"Point2\",\n\t\t * color: \"#00FF00\"\n\t\t * }, {\n\t\t * x: 1,\n\t\t * low: 5,\n\t\t * high: 5,\n\t\t * name: \"Point1\",\n\t\t * color: \"#FF00FF\"\n\t\t * }]\n\t\t * ```\n\t\t *\n\t\t * @type {Array}\n\t\t * @extends series.arearange.data\n\t\t * @excluding dataLabels,drilldown,marker,states\n\t\t * @sample {highcharts} highcharts/chart/reflow-true/\n\t\t * Numerical values\n\t\t * @sample {highcharts} highcharts/series/data-array-of-arrays/\n\t\t * Arrays of numeric x and y\n\t\t * @sample {highcharts} highcharts/series/data-array-of-arrays-datetime/\n\t\t * Arrays of datetime x and y\n\t\t * @sample {highcharts} highcharts/series/data-array-of-name-value/\n\t\t * Arrays of point.name and y\n\t\t * @sample {highcharts} highcharts/series/data-array-of-objects/\n\t\t * Config objects\n\t\t * @product highcharts\n\t\t * @apioption series.errorbar.data\n\t\t */\n\n\t}(Highcharts));\n\t(function (H) {\n\t\t/**\n\t\t * (c) 2010-2018 Torstein Honsi\n\t\t *\n\t\t * License: www.highcharts.com/license\n\t\t */\n\t\tvar correctFloat = H.correctFloat,\n\t\t isNumber = H.isNumber,\n\t\t pick = H.pick,\n\t\t Point = H.Point,\n\t\t Series = H.Series,\n\t\t seriesType = H.seriesType,\n\t\t seriesTypes = H.seriesTypes;\n\n\t\t/**\n\t\t * A waterfall chart displays sequentially introduced positive or negative\n\t\t * values in cumulative columns.\n\t\t *\n\t\t * @sample highcharts/demo/waterfall/\n\t\t * Waterfall chart\n\t\t * @sample highcharts/plotoptions/waterfall-inverted/\n\t\t * Horizontal (inverted) waterfall\n\t\t * @sample highcharts/plotoptions/waterfall-stacked/\n\t\t * Stacked waterfall chart\n\t\t * @extends {plotOptions.column}\n\t\t * @product highcharts\n\t\t * @optionparent plotOptions.waterfall\n\t\t */\n\t\tseriesType('waterfall', 'column', {\n\n\t\t /**\n\t\t * The color used specifically for positive point columns. When not\n\t\t * specified, the general series color is used.\n\t\t *\n\t\t * In styled mode, the waterfall colors can be set with the\n\t\t * `.highcharts-point-negative`, `.highcharts-sum` and\n\t\t * `.highcharts-intermediate-sum` classes.\n\t\t *\n\t\t * @type {Color}\n\t\t * @sample {highcharts} highcharts/demo/waterfall/ Waterfall\n\t\t * @product highcharts\n\t\t * @apioption plotOptions.waterfall.upColor\n\t\t */\n\n\t\t dataLabels: {\n\t\t inside: true\n\t\t },\n \n\n\t\t /**\n\t\t * The width of the line connecting waterfall columns.\n\t\t *\n\t\t * @product highcharts\n\t\t */\n\t\t lineWidth: 1,\n\n\t\t /**\n\t\t * The color of the line that connects columns in a waterfall series.\n\t\t *\n\t\t * In styled mode, the stroke can be set with the `.highcharts-graph` class.\n\t\t *\n\t\t * @type {Color}\n\t\t * @default #333333\n\t\t * @since 3.0\n\t\t * @product highcharts\n\t\t */\n\t\t lineColor: '#333333',\n\n\t\t /**\n\t\t * A name for the dash style to use for the line connecting the columns\n\t\t * of the waterfall series. Possible values:\n\t\t *\n\t\t * * Solid\n\t\t * * ShortDash\n\t\t * * ShortDot\n\t\t * * ShortDashDot\n\t\t * * ShortDashDotDot\n\t\t * * Dot\n\t\t * * Dash\n\t\t * * LongDash\n\t\t * * DashDot\n\t\t * * LongDashDot\n\t\t * * LongDashDotDot\n\t\t *\n\t\t * In styled mode, the stroke dash-array can be set with the\n\t\t * `.highcharts-graph` class.\n\t\t *\n\t\t * @type {String}\n\t\t * @default Dot\n\t\t * @since 3.0\n\t\t * @product highcharts\n\t\t */\n\t\t dashStyle: 'dot',\n\n\t\t /**\n\t\t * The color of the border of each waterfall column.\n\t\t *\n\t\t * In styled mode, the border stroke can be set with the\n\t\t * `.highcharts-point` class.\n\t\t *\n\t\t * @type {Color}\n\t\t * @default #333333\n\t\t * @since 3.0\n\t\t * @product highcharts\n\t\t */\n\t\t borderColor: '#333333',\n\n\t\t states: {\n\t\t hover: {\n\t\t lineWidthPlus: 0 // #3126\n\t\t }\n\t\t }\n \n\n\t\t// Prototype members\n\t\t}, {\n\t\t pointValKey: 'y',\n\n\t\t /**\n\t\t * Property needed to prevent lines between the columns from disappearing\n\t\t * when negativeColor is used.\n\t\t */\n\t\t showLine: true,\n\n\t\t /**\n\t\t * After generating points, set y-values for all sums.\n\t\t */\n\t\t generatePoints: function () {\n\t\t var previousIntermediate = this.options.threshold,\n\t\t point,\n\t\t len,\n\t\t i,\n\t\t y;\n\t\t // Parent call:\n\t\t seriesTypes.column.prototype.generatePoints.apply(this);\n\n\t\t for (i = 0, len = this.points.length; i < len; i++) {\n\t\t point = this.points[i];\n\t\t y = this.processedYData[i];\n\t\t // override point value for sums\n\t\t // #3710 Update point does not propagate to sum\n\t\t if (point.isSum) {\n\t\t point.y = correctFloat(y);\n\t\t } else if (point.isIntermediateSum) {\n\t\t point.y = correctFloat(y - previousIntermediate); // #3840\n\t\t previousIntermediate = y;\n\t\t }\n\t\t }\n\t\t },\n\n\t\t /**\n\t\t * Translate data points from raw values\n\t\t */\n\t\t translate: function () {\n\t\t var series = this,\n\t\t options = series.options,\n\t\t yAxis = series.yAxis,\n\t\t len,\n\t\t i,\n\t\t points,\n\t\t point,\n\t\t shapeArgs,\n\t\t stack,\n\t\t y,\n\t\t yValue,\n\t\t previousY,\n\t\t previousIntermediate,\n\t\t range,\n\t\t minPointLength = pick(options.minPointLength, 5),\n\t\t halfMinPointLength = minPointLength / 2,\n\t\t threshold = options.threshold,\n\t\t stacking = options.stacking,\n\t\t stackIndicator,\n\t\t tooltipY;\n\n\t\t // run column series translate\n\t\t seriesTypes.column.prototype.translate.apply(series);\n\n\t\t previousY = previousIntermediate = threshold;\n\t\t points = series.points;\n\n\t\t for (i = 0, len = points.length; i < len; i++) {\n\t\t // cache current point object\n\t\t point = points[i];\n\t\t yValue = series.processedYData[i];\n\t\t shapeArgs = point.shapeArgs;\n\n\t\t // get current stack\n\t\t stack = stacking &&\n\t\t yAxis.stacks[\n\t\t (series.negStacks && yValue < threshold ? '-' : '') +\n\t\t series.stackKey\n\t\t ];\n\t\t stackIndicator = series.getStackIndicator(\n\t\t stackIndicator,\n\t\t point.x,\n\t\t series.index\n\t\t );\n\t\t range = pick(\n\t\t stack && stack[point.x].points[stackIndicator.key],\n\t\t [0, yValue]\n\t\t );\n\n\t\t // up points\n\t\t y = Math.max(previousY, previousY + point.y) + range[0];\n\t\t shapeArgs.y = yAxis.translate(y, 0, 1, 0, 1);\n\n\t\t // sum points\n\t\t if (point.isSum) {\n\t\t shapeArgs.y = yAxis.translate(range[1], 0, 1, 0, 1);\n\t\t shapeArgs.height = Math.min(\n\t\t yAxis.translate(range[0], 0, 1, 0, 1),\n\t\t yAxis.len\n\t\t ) - shapeArgs.y; // #4256\n\n\t\t } else if (point.isIntermediateSum) {\n\t\t shapeArgs.y = yAxis.translate(range[1], 0, 1, 0, 1);\n\t\t shapeArgs.height = Math.min(\n\t\t yAxis.translate(previousIntermediate, 0, 1, 0, 1),\n\t\t yAxis.len\n\t\t ) - shapeArgs.y;\n\t\t previousIntermediate = range[1];\n\n\t\t // If it's not the sum point, update previous stack end position\n\t\t // and get shape height (#3886)\n\t\t } else {\n\t\t shapeArgs.height = yValue > 0 ?\n\t\t yAxis.translate(previousY, 0, 1, 0, 1) - shapeArgs.y :\n\t\t yAxis.translate(previousY, 0, 1, 0, 1) -\n\t\t yAxis.translate(previousY - yValue, 0, 1, 0, 1);\n\n\t\t previousY += stack && stack[point.x] ?\n\t\t stack[point.x].total :\n\t\t yValue;\n\n\t\t point.below = previousY < pick(threshold, 0);\n\t\t }\n\n\t\t // #3952 Negative sum or intermediate sum not rendered correctly\n\t\t if (shapeArgs.height < 0) {\n\t\t shapeArgs.y += shapeArgs.height;\n\t\t shapeArgs.height *= -1;\n\t\t }\n\n\t\t point.plotY = shapeArgs.y = Math.round(shapeArgs.y) -\n\t\t (series.borderWidth % 2) / 2;\n\t\t // #3151\n\t\t shapeArgs.height = Math.max(Math.round(shapeArgs.height), 0.001);\n\t\t point.yBottom = shapeArgs.y + shapeArgs.height;\n\n\t\t if (shapeArgs.height <= minPointLength && !point.isNull) {\n\t\t shapeArgs.height = minPointLength;\n\t\t shapeArgs.y -= halfMinPointLength;\n\t\t point.plotY = shapeArgs.y;\n\t\t if (point.y < 0) {\n\t\t point.minPointLengthOffset = -halfMinPointLength;\n\t\t } else {\n\t\t point.minPointLengthOffset = halfMinPointLength;\n\t\t }\n\t\t } else {\n\t\t if (point.isNull) {\n\t\t shapeArgs.width = 0;\n\t\t }\n\t\t point.minPointLengthOffset = 0;\n\t\t }\n\n\t\t // Correct tooltip placement (#3014)\n\t\t tooltipY = point.plotY + (point.negative ? shapeArgs.height : 0);\n\n\t\t if (series.chart.inverted) {\n\t\t point.tooltipPos[0] = yAxis.len - tooltipY;\n\t\t } else {\n\t\t point.tooltipPos[1] = tooltipY;\n\t\t }\n\t\t }\n\t\t },\n\n\t\t /**\n\t\t * Call default processData then override yData to reflect\n\t\t * waterfall's extremes on yAxis\n\t\t */\n\t\t processData: function (force) {\n\t\t var series = this,\n\t\t options = series.options,\n\t\t yData = series.yData,\n\t\t // #3710 Update point does not propagate to sum\n\t\t points = series.options.data,\n\t\t point,\n\t\t dataLength = yData.length,\n\t\t threshold = options.threshold || 0,\n\t\t subSum,\n\t\t sum,\n\t\t dataMin,\n\t\t dataMax,\n\t\t y,\n\t\t i;\n\n\t\t sum = subSum = dataMin = dataMax = threshold;\n\n\t\t for (i = 0; i < dataLength; i++) {\n\t\t y = yData[i];\n\t\t point = points && points[i] ? points[i] : {};\n\n\t\t if (y === 'sum' || point.isSum) {\n\t\t yData[i] = correctFloat(sum);\n\t\t } else if (y === 'intermediateSum' || point.isIntermediateSum) {\n\t\t yData[i] = correctFloat(subSum);\n\t\t } else {\n\t\t sum += y;\n\t\t subSum += y;\n\t\t }\n\t\t dataMin = Math.min(sum, dataMin);\n\t\t dataMax = Math.max(sum, dataMax);\n\t\t }\n\n\t\t Series.prototype.processData.call(this, force);\n\n\t\t // Record extremes only if stacking was not set:\n\t\t if (!series.options.stacking) {\n\t\t series.dataMin = dataMin;\n\t\t series.dataMax = dataMax;\n\t\t }\n\t\t },\n\n\t\t /**\n\t\t * Return y value or string if point is sum\n\t\t */\n\t\t toYData: function (pt) {\n\t\t if (pt.isSum) {\n\t\t // #3245 Error when first element is Sum or Intermediate Sum\n\t\t return (pt.x === 0 ? null : 'sum');\n\t\t }\n\t\t if (pt.isIntermediateSum) {\n\t\t return (pt.x === 0 ? null : 'intermediateSum'); // #3245\n\t\t }\n\t\t return pt.y;\n\t\t },\n\n \n\t\t /**\n\t\t * Postprocess mapping between options and SVG attributes\n\t\t */\n\t\t pointAttribs: function (point, state) {\n\n\t\t var upColor = this.options.upColor,\n\t\t attr;\n\n\t\t // Set or reset up color (#3710, update to negative)\n\t\t if (upColor && !point.options.color) {\n\t\t point.color = point.y > 0 ? upColor : null;\n\t\t }\n\n\t\t attr = seriesTypes.column.prototype.pointAttribs.call(\n\t\t this,\n\t\t point,\n\t\t state\n\t\t );\n\n\t\t // The dashStyle option in waterfall applies to the graph, not\n\t\t // the points\n\t\t delete attr.dashstyle;\n\n\t\t return attr;\n\t\t },\n \n\n\t\t /**\n\t\t * Return an empty path initially, because we need to know the\n\t\t * stroke-width in order to set the final path.\n\t\t */\n\t\t getGraphPath: function () {\n\t\t return ['M', 0, 0];\n\t\t },\n\n\t\t /**\n\t\t * Draw columns' connector lines\n\t\t */\n\t\t getCrispPath: function () {\n\n\t\t var data = this.data,\n\t\t length = data.length,\n\t\t lineWidth = this.graph.strokeWidth() + this.borderWidth,\n\t\t normalizer = Math.round(lineWidth) % 2 / 2,\n\t\t reversedXAxis = this.xAxis.reversed,\n\t\t reversedYAxis = this.yAxis.reversed,\n\t\t path = [],\n\t\t prevArgs,\n\t\t pointArgs,\n\t\t i,\n\t\t d;\n\n\t\t for (i = 1; i < length; i++) {\n\t\t pointArgs = data[i].shapeArgs;\n\t\t prevArgs = data[i - 1].shapeArgs;\n\n\t\t d = [\n\t\t 'M',\n\t\t prevArgs.x + (reversedXAxis ? 0 : prevArgs.width),\n\t\t prevArgs.y + data[i - 1].minPointLengthOffset + normalizer,\n\t\t 'L',\n\t\t pointArgs.x + (reversedXAxis ? prevArgs.width : 0),\n\t\t prevArgs.y + data[i - 1].minPointLengthOffset + normalizer\n\t\t ];\n\n\t\t if (\n\t\t (data[i - 1].y < 0 && !reversedYAxis) ||\n\t\t (data[i - 1].y > 0 && reversedYAxis)\n\t\t ) {\n\t\t d[2] += prevArgs.height;\n\t\t d[5] += prevArgs.height;\n\t\t }\n\n\t\t path = path.concat(d);\n\t\t }\n\n\t\t return path;\n\t\t },\n\n\t\t /**\n\t\t * The graph is initially drawn with an empty definition, then updated with\n\t\t * crisp rendering.\n\t\t */\n\t\t drawGraph: function () {\n\t\t Series.prototype.drawGraph.call(this);\n\t\t this.graph.attr({\n\t\t d: this.getCrispPath()\n\t\t });\n\t\t },\n\n\t\t /**\n\t\t * Waterfall has stacking along the x-values too.\n\t\t */\n\t\t setStackedPoints: function () {\n\t\t var series = this,\n\t\t options = series.options,\n\t\t stackedYLength,\n\t\t i;\n\n\t\t Series.prototype.setStackedPoints.apply(series, arguments);\n\n\t\t stackedYLength = series.stackedYData ? series.stackedYData.length : 0;\n\n\t\t // Start from the second point:\n\t\t for (i = 1; i < stackedYLength; i++) {\n\t\t if (\n\t\t !options.data[i].isSum &&\n\t\t !options.data[i].isIntermediateSum\n\t\t ) {\n\t\t // Sum previous stacked data as waterfall can grow up/down:\n\t\t series.stackedYData[i] += series.stackedYData[i - 1];\n\t\t }\n\t\t }\n\t\t },\n\n\t\t /**\n\t\t * Extremes for a non-stacked series are recorded in processData.\n\t\t * In case of stacking, use Series.stackedYData to calculate extremes.\n\t\t */\n\t\t getExtremes: function () {\n\t\t if (this.options.stacking) {\n\t\t return Series.prototype.getExtremes.apply(this, arguments);\n\t\t }\n\t\t }\n\n\n\t\t// Point members\n\t\t}, {\n\t\t getClassName: function () {\n\t\t var className = Point.prototype.getClassName.call(this);\n\n\t\t if (this.isSum) {\n\t\t className += ' highcharts-sum';\n\t\t } else if (this.isIntermediateSum) {\n\t\t className += ' highcharts-intermediate-sum';\n\t\t }\n\t\t return className;\n\t\t },\n\t\t /**\n\t\t * Pass the null test in ColumnSeries.translate.\n\t\t */\n\t\t isValid: function () {\n\t\t return isNumber(this.y, true) || this.isSum || this.isIntermediateSum;\n\t\t }\n\n\t\t});\n\n\t\t/**\n\t\t * A `waterfall` series. If the [type](#series.waterfall.type) option\n\t\t * is not specified, it is inherited from [chart.type](#chart.type).\n\t\t *\n\t\t * @type {Object}\n\t\t * @extends series,plotOptions.waterfall\n\t\t * @excluding dataParser,dataURL\n\t\t * @product highcharts\n\t\t * @apioption series.waterfall\n\t\t */\n\n\t\t/**\n\t\t * An array of data points for the series. For the `waterfall` series\n\t\t * type, points can be given in the following ways:\n\t\t *\n\t\t * 1. An array of numerical values. In this case, the numerical values\n\t\t * will be interpreted as `y` options. The `x` values will be automatically\n\t\t * calculated, either starting at 0 and incremented by 1, or from `pointStart`\n\t\t * and `pointInterval` given in the series options. If the axis has\n\t\t * categories, these will be used. Example:\n\t\t *\n\t\t * ```js\n\t\t * data: [0, 5, 3, 5]\n\t\t * ```\n\t\t *\n\t\t * 2. An array of arrays with 2 values. In this case, the values correspond\n\t\t * to `x,y`. If the first value is a string, it is applied as the name\n\t\t * of the point, and the `x` value is inferred.\n\t\t *\n\t\t * ```js\n\t\t * data: [\n\t\t * [0, 7],\n\t\t * [1, 8],\n\t\t * [2, 3]\n\t\t * ]\n\t\t * ```\n\t\t *\n\t\t * 3. An array of objects with named values. The following snippet shows only a\n\t\t * few settings, see the complete options set below. If the total number of data\n\t\t * points exceeds the series'\n\t\t * [turboThreshold](#series.waterfall.turboThreshold),\n\t\t * this option is not available.\n\t\t *\n\t\t * ```js\n\t\t * data: [{\n\t\t * x: 1,\n\t\t * y: 8,\n\t\t * name: \"Point2\",\n\t\t * color: \"#00FF00\"\n\t\t * }, {\n\t\t * x: 1,\n\t\t * y: 8,\n\t\t * name: \"Point1\",\n\t\t * color: \"#FF00FF\"\n\t\t * }]\n\t\t * ```\n\t\t *\n\t\t * @type {Array}\n\t\t * @extends series.line.data\n\t\t * @excluding marker\n\t\t * @sample {highcharts} highcharts/chart/reflow-true/\n\t\t * Numerical values\n\t\t * @sample {highcharts} highcharts/series/data-array-of-arrays/\n\t\t * Arrays of numeric x and y\n\t\t * @sample {highcharts} highcharts/series/data-array-of-arrays-datetime/\n\t\t * Arrays of datetime x and y\n\t\t * @sample {highcharts} highcharts/series/data-array-of-name-value/\n\t\t * Arrays of point.name and y\n\t\t * @sample {highcharts} highcharts/series/data-array-of-objects/\n\t\t * Config objects\n\t\t * @product highcharts\n\t\t * @apioption series.waterfall.data\n\t\t */\n\n\n\t\t/**\n\t\t * When this property is true, the points acts as a summary column for\n\t\t * the values added or substracted since the last intermediate sum,\n\t\t * or since the start of the series. The `y` value is ignored.\n\t\t *\n\t\t * @type {Boolean}\n\t\t * @sample {highcharts} highcharts/demo/waterfall/ Waterfall\n\t\t * @default false\n\t\t * @product highcharts\n\t\t * @apioption series.waterfall.data.isIntermediateSum\n\t\t */\n\n\t\t/**\n\t\t * When this property is true, the point display the total sum across\n\t\t * the entire series. The `y` value is ignored.\n\t\t *\n\t\t * @type {Boolean}\n\t\t * @sample {highcharts} highcharts/demo/waterfall/ Waterfall\n\t\t * @default false\n\t\t * @product highcharts\n\t\t * @apioption series.waterfall.data.isSum\n\t\t */\n\n\t}(Highcharts));\n\t(function (H) {\n\t\t/**\n\t\t * (c) 2010-2018 Torstein Honsi\n\t\t *\n\t\t * License: www.highcharts.com/license\n\t\t */\n\t\tvar LegendSymbolMixin = H.LegendSymbolMixin,\n\t\t noop = H.noop,\n\t\t Series = H.Series,\n\t\t seriesType = H.seriesType,\n\t\t seriesTypes = H.seriesTypes;\n\n\t\t/**\n\t\t * A polygon series can be used to draw any freeform shape in the cartesian\n\t\t * coordinate system. A fill is applied with the `color` option, and\n\t\t * stroke is applied through `lineWidth` and `lineColor` options. Requires\n\t\t * the `highcharts-more.js` file.\n\t\t *\n\t\t * @type {Object}\n\t\t * @extends plotOptions.scatter\n\t\t * @excluding softThreshold,threshold\n\t\t * @sample {highcharts} highcharts/demo/polygon/ Polygon\n\t\t * @sample {highstock} highcharts/demo/polygon/ Polygon\n\t\t * @since 4.1.0\n\t\t * @product highcharts highstock\n\t\t * @optionparent plotOptions.polygon\n\t\t */\n\t\tseriesType('polygon', 'scatter', {\n\t\t marker: {\n\t\t enabled: false,\n\t\t states: {\n\t\t hover: {\n\t\t enabled: false\n\t\t }\n\t\t }\n\t\t },\n\t\t stickyTracking: false,\n\t\t tooltip: {\n\t\t followPointer: true,\n\t\t pointFormat: ''\n\t\t },\n\t\t trackByArea: true\n\n\t\t// Prototype members\n\t\t}, {\n\t\t type: 'polygon',\n\t\t getGraphPath: function () {\n\n\t\t var graphPath = Series.prototype.getGraphPath.call(this),\n\t\t i = graphPath.length + 1;\n\n\t\t // Close all segments\n\t\t while (i--) {\n\t\t if ((i === graphPath.length || graphPath[i] === 'M') && i > 0) {\n\t\t graphPath.splice(i, 0, 'z');\n\t\t }\n\t\t }\n\t\t this.areaPath = graphPath;\n\t\t return graphPath;\n\t\t },\n\t\t drawGraph: function () {\n \n\t\t // Hack into the fill logic in area.drawGraph\n\t\t this.options.fillColor = this.color;\n \n\t\t seriesTypes.area.prototype.drawGraph.call(this);\n\t\t },\n\t\t drawLegendSymbol: LegendSymbolMixin.drawRectangle,\n\t\t drawTracker: Series.prototype.drawTracker,\n\t\t setStackedPoints: noop // No stacking points on polygons (#5310)\n\t\t});\n\n\n\n\t\t/**\n\t\t * A `polygon` series. If the [type](#series.polygon.type) option is\n\t\t * not specified, it is inherited from [chart.type](#chart.type).\n\t\t *\n\t\t * @type {Object}\n\t\t * @extends series,plotOptions.polygon\n\t\t * @excluding dataParser,dataURL,stack\n\t\t * @product highcharts highstock\n\t\t * @apioption series.polygon\n\t\t */\n\n\t\t/**\n\t\t * An array of data points for the series. For the `polygon` series\n\t\t * type, points can be given in the following ways:\n\t\t *\n\t\t * 1. An array of numerical values. In this case, the numerical values\n\t\t * will be interpreted as `y` options. The `x` values will be automatically\n\t\t * calculated, either starting at 0 and incremented by 1, or from `pointStart`\n\t\t * and `pointInterval` given in the series options. If the axis has\n\t\t * categories, these will be used. Example:\n\t\t *\n\t\t * ```js\n\t\t * data: [0, 5, 3, 5]\n\t\t * ```\n\t\t *\n\t\t * 2. An array of arrays with 2 values. In this case, the values correspond\n\t\t * to `x,y`. If the first value is a string, it is applied as the name\n\t\t * of the point, and the `x` value is inferred.\n\t\t *\n\t\t * ```js\n\t\t * data: [\n\t\t * [0, 10],\n\t\t * [1, 3],\n\t\t * [2, 1]\n\t\t * ]\n\t\t * ```\n\t\t *\n\t\t * 3. An array of objects with named values. The following snippet shows only a\n\t\t * few settings, see the complete options set below. If the total number of data\n\t\t * points exceeds the series' [turboThreshold](#series.polygon.turboThreshold),\n\t\t * this option is not available.\n\t\t *\n\t\t * ```js\n\t\t * data: [{\n\t\t * x: 1,\n\t\t * y: 1,\n\t\t * name: \"Point2\",\n\t\t * color: \"#00FF00\"\n\t\t * }, {\n\t\t * x: 1,\n\t\t * y: 8,\n\t\t * name: \"Point1\",\n\t\t * color: \"#FF00FF\"\n\t\t * }]\n\t\t * ```\n\t\t *\n\t\t * @type {Array}\n\t\t * @extends series.line.data\n\t\t * @sample {highcharts} highcharts/chart/reflow-true/\n\t\t * Numerical values\n\t\t * @sample {highcharts} highcharts/series/data-array-of-arrays/\n\t\t * Arrays of numeric x and y\n\t\t * @sample {highcharts} highcharts/series/data-array-of-arrays-datetime/\n\t\t * Arrays of datetime x and y\n\t\t * @sample {highcharts} highcharts/series/data-array-of-name-value/\n\t\t * Arrays of point.name and y\n\t\t * @sample {highcharts} highcharts/series/data-array-of-objects/\n\t\t * Config objects\n\t\t * @product highcharts highstock\n\t\t * @apioption series.polygon.data\n\t\t */\n\n\t}(Highcharts));\n\t(function (H) {\n\t\t/**\n\t\t * (c) 2010-2018 Torstein Honsi\n\t\t *\n\t\t * License: www.highcharts.com/license\n\t\t */\n\t\tvar arrayMax = H.arrayMax,\n\t\t arrayMin = H.arrayMin,\n\t\t Axis = H.Axis,\n\t\t color = H.color,\n\t\t each = H.each,\n\t\t isNumber = H.isNumber,\n\t\t noop = H.noop,\n\t\t pick = H.pick,\n\t\t pInt = H.pInt,\n\t\t Point = H.Point,\n\t\t Series = H.Series,\n\t\t seriesType = H.seriesType,\n\t\t seriesTypes = H.seriesTypes;\n\n\n\t\t/**\n\t\t * A bubble series is a three dimensional series type where each point renders\n\t\t * an X, Y and Z value. Each points is drawn as a bubble where the position\n\t\t * along the X and Y axes mark the X and Y values, and the size of the bubble\n\t\t * relates to the Z value. Requires `highcharts-more.js`.\n\t\t *\n\t\t * @sample {highcharts} highcharts/demo/bubble/ Bubble chart\n\t\t * @extends plotOptions.scatter\n\t\t * @product highcharts highstock\n\t\t * @optionparent plotOptions.bubble\n\t\t */\n\t\tseriesType('bubble', 'scatter', {\n\n\t\t dataLabels: {\n\t\t formatter: function () { // #2945\n\t\t return this.point.z;\n\t\t },\n\t\t inside: true,\n\t\t verticalAlign: 'middle'\n\t\t },\n\n\t\t /**\n\t\t * If there are more points in the series than the `animationLimit`, the\n\t\t * animation won't run. Animation affects overall performance and doesn't\n\t\t * work well with heavy data series.\n\t\t * @since 6.1.0\n\t\t */\n\t\t animationLimit: 250,\n\n\t\t /**\n\t\t * Whether to display negative sized bubbles. The threshold is given\n\t\t * by the [zThreshold](#plotOptions.bubble.zThreshold) option, and negative\n\t\t * bubbles can be visualized by setting\n\t\t * [negativeColor](#plotOptions.bubble.negativeColor).\n\t\t *\n\t\t * @type {Boolean}\n\t\t * @sample {highcharts} highcharts/plotoptions/bubble-negative/\n\t\t * Negative bubbles\n\t\t * @default true\n\t\t * @since 3.0\n\t\t * @apioption plotOptions.bubble.displayNegative\n\t\t */\n\n\t\t /**\n\t\t * @extends plotOptions.series.marker\n\t\t * @excluding enabled,enabledThreshold,height,radius,width\n\t\t */\n\t\t marker: {\n \n\t\t lineColor: null, // inherit from series.color\n\t\t lineWidth: 1,\n\n\t\t /**\n\t\t * The fill opacity of the bubble markers.\n\t\t */\n\t\t fillOpacity: 0.5,\n \n\t\t /**\n\t\t * In bubble charts, the radius is overridden and determined based on\n\t\t * the point's data value.\n\t\t */\n\t\t /**\n\t\t * @ignore-option\n\t\t */\n\t\t radius: null,\n\n\t\t states: {\n\t\t hover: {\n\t\t radiusPlus: 0\n\t\t }\n\t\t },\n\n\t\t /**\n\t\t * A predefined shape or symbol for the marker. Possible values are\n\t\t * \"circle\", \"square\", \"diamond\", \"triangle\" and \"triangle-down\".\n\t\t *\n\t\t * Additionally, the URL to a graphic can be given on the form\n\t\t * `url(graphic.png)`. Note that for the image to be applied to exported\n\t\t * charts, its URL needs to be accessible by the export server.\n\t\t *\n\t\t * Custom callbacks for symbol path generation can also be added to\n\t\t * `Highcharts.SVGRenderer.prototype.symbols`. The callback is then\n\t\t * used by its method name, as shown in the demo.\n\t\t *\n\t\t * @validvalue [\"circle\", \"square\", \"diamond\", \"triangle\",\n\t\t * \"triangle-down\"]\n\t\t * @sample {highcharts} highcharts/plotoptions/bubble-symbol/\n\t\t * Bubble chart with various symbols\n\t\t * @sample {highcharts} highcharts/plotoptions/series-marker-symbol/\n\t\t * General chart with predefined, graphic and custom markers\n\t\t * @since 5.0.11\n\t\t */\n\t\t symbol: 'circle'\n\t\t },\n\n\t\t /**\n\t\t * Minimum bubble size. Bubbles will automatically size between the\n\t\t * `minSize` and `maxSize` to reflect the `z` value of each bubble.\n\t\t * Can be either pixels (when no unit is given), or a percentage of\n\t\t * the smallest one of the plot width and height.\n\t\t *\n\t\t * @type {Number|String}\n\t\t * @sample {highcharts} highcharts/plotoptions/bubble-size/ Bubble size\n\t\t * @since 3.0\n\t\t * @product highcharts highstock\n\t\t */\n\t\t minSize: 8,\n\n\t\t /**\n\t\t * Maximum bubble size. Bubbles will automatically size between the\n\t\t * `minSize` and `maxSize` to reflect the `z` value of each bubble.\n\t\t * Can be either pixels (when no unit is given), or a percentage of\n\t\t * the smallest one of the plot width and height.\n\t\t *\n\t\t * @type {Number|String}\n\t\t * @sample {highcharts} highcharts/plotoptions/bubble-size/\n\t\t * Bubble size\n\t\t * @since 3.0\n\t\t * @product highcharts highstock\n\t\t */\n\t\t maxSize: '20%',\n\n\t\t /**\n\t\t * When a point's Z value is below the\n\t\t * [zThreshold](#plotOptions.bubble.zThreshold) setting, this color is used.\n\t\t *\n\t\t * @type {Color}\n\t\t * @sample {highcharts} highcharts/plotoptions/bubble-negative/\n\t\t * Negative bubbles\n\t\t * @default null\n\t\t * @since 3.0\n\t\t * @product highcharts\n\t\t * @apioption plotOptions.bubble.negativeColor\n\t\t */\n\n\t\t /**\n\t\t * Whether the bubble's value should be represented by the area or the\n\t\t * width of the bubble. The default, `area`, corresponds best to the\n\t\t * human perception of the size of each bubble.\n\t\t *\n\t\t * @validvalue [\"area\", \"width\"]\n\t\t * @type {String}\n\t\t * @sample {highcharts} highcharts/plotoptions/bubble-sizeby/\n\t\t * Comparison of area and size\n\t\t * @default area\n\t\t * @since 3.0.7\n\t\t * @apioption plotOptions.bubble.sizeBy\n\t\t */\n\n\t\t /**\n\t\t * When this is true, the absolute value of z determines the size of\n\t\t * the bubble. This means that with the default `zThreshold` of 0, a\n\t\t * bubble of value -1 will have the same size as a bubble of value 1,\n\t\t * while a bubble of value 0 will have a smaller size according to\n\t\t * `minSize`.\n\t\t *\n\t\t * @type {Boolean}\n\t\t * @sample {highcharts}\n\t\t * highcharts/plotoptions/bubble-sizebyabsolutevalue/\n\t\t * Size by absolute value, various thresholds\n\t\t * @default false\n\t\t * @since 4.1.9\n\t\t * @product highcharts\n\t\t * @apioption plotOptions.bubble.sizeByAbsoluteValue\n\t\t */\n\n\t\t /**\n\t\t * When this is true, the series will not cause the Y axis to cross\n\t\t * the zero plane (or [threshold](#plotOptions.series.threshold) option)\n\t\t * unless the data actually crosses the plane.\n\t\t *\n\t\t * For example, if `softThreshold` is `false`, a series of 0, 1, 2,\n\t\t * 3 will make the Y axis show negative values according to the `minPadding`\n\t\t * option. If `softThreshold` is `true`, the Y axis starts at 0.\n\t\t *\n\t\t * @since 4.1.9\n\t\t * @product highcharts\n\t\t */\n\t\t softThreshold: false,\n\n\t\t states: {\n\t\t hover: {\n\t\t halo: {\n\t\t size: 5\n\t\t }\n\t\t }\n\t\t },\n\n\t\t tooltip: {\n\t\t pointFormat: '({point.x}, {point.y}), Size: {point.z}'\n\t\t },\n\n\t\t turboThreshold: 0,\n\n\t\t /**\n\t\t * The minimum for the Z value range. Defaults to the highest Z value\n\t\t * in the data.\n\t\t *\n\t\t * @type {Number}\n\t\t * @see [zMin](#plotOptions.bubble.zMin)\n\t\t * @sample {highcharts} highcharts/plotoptions/bubble-zmin-zmax/\n\t\t * Z has a possible range of 0-100\n\t\t * @default null\n\t\t * @since 4.0.3\n\t\t * @product highcharts\n\t\t * @apioption plotOptions.bubble.zMax\n\t\t */\n\n\t\t /**\n\t\t * The minimum for the Z value range. Defaults to the lowest Z value\n\t\t * in the data.\n\t\t *\n\t\t * @type {Number}\n\t\t * @see [zMax](#plotOptions.bubble.zMax)\n\t\t * @sample {highcharts} highcharts/plotoptions/bubble-zmin-zmax/\n\t\t * Z has a possible range of 0-100\n\t\t * @default null\n\t\t * @since 4.0.3\n\t\t * @product highcharts\n\t\t * @apioption plotOptions.bubble.zMin\n\t\t */\n\n\t\t /**\n\t\t * When [displayNegative](#plotOptions.bubble.displayNegative) is `false`,\n\t\t * bubbles with lower Z values are skipped. When `displayNegative`\n\t\t * is `true` and a [negativeColor](#plotOptions.bubble.negativeColor)\n\t\t * is given, points with lower Z is colored.\n\t\t *\n\t\t * @type {Number}\n\t\t * @sample {highcharts} highcharts/plotoptions/bubble-negative/\n\t\t * Negative bubbles\n\t\t * @default 0\n\t\t * @since 3.0\n\t\t * @product highcharts\n\t\t */\n\t\t zThreshold: 0,\n\n\t\t zoneAxis: 'z'\n\n\t\t// Prototype members\n\t\t}, {\n\t\t pointArrayMap: ['y', 'z'],\n\t\t parallelArrays: ['x', 'y', 'z'],\n\t\t trackerGroups: ['group', 'dataLabelsGroup'],\n\t\t specialGroup: 'group', // To allow clipping (#6296)\n\t\t bubblePadding: true,\n\t\t zoneAxis: 'z',\n\t\t directTouch: true,\n\n \n\t\t pointAttribs: function (point, state) {\n\t\t var markerOptions = this.options.marker,\n\t\t fillOpacity = markerOptions.fillOpacity,\n\t\t attr = Series.prototype.pointAttribs.call(this, point, state);\n\n\t\t if (fillOpacity !== 1) {\n\t\t attr.fill = color(attr.fill).setOpacity(fillOpacity).get('rgba');\n\t\t }\n\n\t\t return attr;\n\t\t },\n \n\n\t\t /**\n\t\t * Get the radius for each point based on the minSize, maxSize and each\n\t\t * point's Z value. This must be done prior to Series.translate because\n\t\t * the axis needs to add padding in accordance with the point sizes.\n\t\t */\n\t\t getRadii: function (zMin, zMax, minSize, maxSize) {\n\t\t var len,\n\t\t i,\n\t\t pos,\n\t\t zData = this.zData,\n\t\t radii = [],\n\t\t options = this.options,\n\t\t sizeByArea = options.sizeBy !== 'width',\n\t\t zThreshold = options.zThreshold,\n\t\t zRange = zMax - zMin,\n\t\t value,\n\t\t radius;\n\n\t\t // Set the shape type and arguments to be picked up in drawPoints\n\t\t for (i = 0, len = zData.length; i < len; i++) {\n\n\t\t value = zData[i];\n\n\t\t // When sizing by threshold, the absolute value of z determines\n\t\t // the size of the bubble.\n\t\t if (options.sizeByAbsoluteValue && value !== null) {\n\t\t value = Math.abs(value - zThreshold);\n\t\t zMax = zRange = Math.max(\n\t\t zMax - zThreshold,\n\t\t Math.abs(zMin - zThreshold)\n\t\t );\n\t\t zMin = 0;\n\t\t }\n\n\t\t if (!isNumber(value)) {\n\t\t radius = null;\n\t\t // Issue #4419 - if value is less than zMin, push a radius that's\n\t\t // always smaller than the minimum size\n\t\t } else if (value < zMin) {\n\t\t radius = minSize / 2 - 1;\n\t\t } else {\n\t\t // Relative size, a number between 0 and 1\n\t\t pos = zRange > 0 ? (value - zMin) / zRange : 0.5;\n\n\t\t if (sizeByArea && pos >= 0) {\n\t\t pos = Math.sqrt(pos);\n\t\t }\n\t\t radius = Math.ceil(minSize + pos * (maxSize - minSize)) / 2;\n\t\t }\n\t\t radii.push(radius);\n\t\t }\n\t\t this.radii = radii;\n\t\t },\n\n\t\t /**\n\t\t * Perform animation on the bubbles\n\t\t */\n\t\t animate: function (init) {\n\t\t if (\n\t\t !init &&\n\t\t this.points.length < this.options.animationLimit // #8099\n\t\t ) {\n\t\t each(this.points, function (point) {\n\t\t var graphic = point.graphic,\n\t\t animationTarget;\n\n\t\t if (graphic && graphic.width) { // URL symbols don't have width\n\t\t animationTarget = {\n\t\t x: graphic.x,\n\t\t y: graphic.y,\n\t\t width: graphic.width,\n\t\t height: graphic.height\n\t\t };\n\n\t\t // Start values\n\t\t graphic.attr({\n\t\t x: point.plotX,\n\t\t y: point.plotY,\n\t\t width: 1,\n\t\t height: 1\n\t\t });\n\n\t\t // Run animation\n\t\t graphic.animate(animationTarget, this.options.animation);\n\t\t }\n\t\t }, this);\n\n\t\t // delete this function to allow it only once\n\t\t this.animate = null;\n\t\t }\n\t\t },\n\n\t\t /**\n\t\t * Extend the base translate method to handle bubble size\n\t\t */\n\t\t translate: function () {\n\n\t\t var i,\n\t\t data = this.data,\n\t\t point,\n\t\t radius,\n\t\t radii = this.radii;\n\n\t\t // Run the parent method\n\t\t seriesTypes.scatter.prototype.translate.call(this);\n\n\t\t // Set the shape type and arguments to be picked up in drawPoints\n\t\t i = data.length;\n\n\t\t while (i--) {\n\t\t point = data[i];\n\t\t radius = radii ? radii[i] : 0; // #1737\n\n\t\t if (isNumber(radius) && radius >= this.minPxSize / 2) {\n\t\t // Shape arguments\n\t\t point.marker = H.extend(point.marker, {\n\t\t radius: radius,\n\t\t width: 2 * radius,\n\t\t height: 2 * radius\n\t\t });\n\n\t\t // Alignment box for the data label\n\t\t point.dlBox = {\n\t\t x: point.plotX - radius,\n\t\t y: point.plotY - radius,\n\t\t width: 2 * radius,\n\t\t height: 2 * radius\n\t\t };\n\t\t } else { // below zThreshold\n\t\t // #1691\n\t\t point.shapeArgs = point.plotY = point.dlBox = undefined;\n\t\t }\n\t\t }\n\t\t },\n\n\t\t alignDataLabel: seriesTypes.column.prototype.alignDataLabel,\n\t\t buildKDTree: noop,\n\t\t applyZones: noop\n\n\t\t// Point class\n\t\t}, {\n\t\t haloPath: function (size) {\n\t\t return Point.prototype.haloPath.call(\n\t\t this,\n\t\t // #6067\n\t\t size === 0 ? 0 : (this.marker ? this.marker.radius || 0 : 0) + size\n\t\t );\n\t\t },\n\t\t ttBelow: false\n\t\t});\n\n\t\t/**\n\t\t * Add logic to pad each axis with the amount of pixels\n\t\t * necessary to avoid the bubbles to overflow.\n\t\t */\n\t\tAxis.prototype.beforePadding = function () {\n\t\t var axis = this,\n\t\t axisLength = this.len,\n\t\t chart = this.chart,\n\t\t pxMin = 0,\n\t\t pxMax = axisLength,\n\t\t isXAxis = this.isXAxis,\n\t\t dataKey = isXAxis ? 'xData' : 'yData',\n\t\t min = this.min,\n\t\t extremes = {},\n\t\t smallestSize = Math.min(chart.plotWidth, chart.plotHeight),\n\t\t zMin = Number.MAX_VALUE,\n\t\t zMax = -Number.MAX_VALUE,\n\t\t range = this.max - min,\n\t\t transA = axisLength / range,\n\t\t activeSeries = [];\n\n\t\t // Handle padding on the second pass, or on redraw\n\t\t each(this.series, function (series) {\n\n\t\t var seriesOptions = series.options,\n\t\t zData;\n\n\t\t if (\n\t\t series.bubblePadding &&\n\t\t (series.visible || !chart.options.chart.ignoreHiddenSeries)\n\t\t ) {\n\n\t\t // Correction for #1673\n\t\t axis.allowZoomOutside = true;\n\n\t\t // Cache it\n\t\t activeSeries.push(series);\n\n\t\t if (isXAxis) { // because X axis is evaluated first\n\n\t\t // For each series, translate the size extremes to pixel values\n\t\t each(['minSize', 'maxSize'], function (prop) {\n\t\t var length = seriesOptions[prop],\n\t\t isPercent = /%$/.test(length);\n\n\t\t length = pInt(length);\n\t\t extremes[prop] = isPercent ?\n\t\t smallestSize * length / 100 :\n\t\t length;\n\n\t\t });\n\t\t series.minPxSize = extremes.minSize;\n\t\t // Prioritize min size if conflict to make sure bubbles are\n\t\t // always visible. #5873\n\t\t series.maxPxSize = Math.max(extremes.maxSize, extremes.minSize);\n\n\t\t // Find the min and max Z\n\t\t zData = H.grep(series.zData, H.isNumber);\n\t\t if (zData.length) { // #1735\n\t\t zMin = pick(seriesOptions.zMin, Math.min(\n\t\t zMin,\n\t\t Math.max(\n\t\t arrayMin(zData),\n\t\t seriesOptions.displayNegative === false ?\n\t\t seriesOptions.zThreshold :\n\t\t -Number.MAX_VALUE\n\t\t )\n\t\t ));\n\t\t zMax = pick(\n\t\t seriesOptions.zMax,\n\t\t Math.max(zMax, arrayMax(zData))\n\t\t );\n\t\t }\n\t\t }\n\t\t }\n\t\t });\n\n\t\t each(activeSeries, function (series) {\n\n\t\t var data = series[dataKey],\n\t\t i = data.length,\n\t\t radius;\n\n\t\t if (isXAxis) {\n\t\t series.getRadii(zMin, zMax, series.minPxSize, series.maxPxSize);\n\t\t }\n\n\t\t if (range > 0) {\n\t\t while (i--) {\n\t\t if (\n\t\t isNumber(data[i]) &&\n\t\t axis.dataMin <= data[i] &&\n\t\t data[i] <= axis.dataMax\n\t\t ) {\n\t\t radius = series.radii[i];\n\t\t pxMin = Math.min(\n\t\t ((data[i] - min) * transA) - radius,\n\t\t pxMin\n\t\t );\n\t\t pxMax = Math.max(\n\t\t ((data[i] - min) * transA) + radius,\n\t\t pxMax\n\t\t );\n\t\t }\n\t\t }\n\t\t }\n\t\t });\n\n\t\t // Apply the padding to the min and max properties\n\t\t if (activeSeries.length && range > 0 && !this.isLog) {\n\t\t pxMax -= axisLength;\n\t\t transA *= (\n\t\t axisLength +\n\t\t Math.max(0, pxMin) - // #8901\n\t\t Math.min(pxMax, axisLength)\n\t\t ) / axisLength;\n\t\t each(\n\t\t [['min', 'userMin', pxMin], ['max', 'userMax', pxMax]],\n\t\t function (keys) {\n\t\t if (pick(axis.options[keys[0]], axis[keys[1]]) === undefined) {\n\t\t axis[keys[0]] += keys[2] / transA;\n\t\t }\n\t\t }\n\t\t );\n\t\t }\n\t\t};\n\n\n\t\t/**\n\t\t * A `bubble` series. If the [type](#series.bubble.type) option is\n\t\t * not specified, it is inherited from [chart.type](#chart.type).\n\t\t *\n\t\t * @type {Object}\n\t\t * @extends series,plotOptions.bubble\n\t\t * @excluding dataParser,dataURL,stack\n\t\t * @product highcharts highstock\n\t\t * @apioption series.bubble\n\t\t */\n\n\t\t/**\n\t\t * An array of data points for the series. For the `bubble` series type,\n\t\t * points can be given in the following ways:\n\t\t *\n\t\t * 1. An array of arrays with 3 or 2 values. In this case, the values\n\t\t * correspond to `x,y,z`. If the first value is a string, it is applied\n\t\t * as the name of the point, and the `x` value is inferred. The `x`\n\t\t * value can also be omitted, in which case the inner arrays should\n\t\t * be of length 2\\. Then the `x` value is automatically calculated,\n\t\t * either starting at 0 and incremented by 1, or from `pointStart` and\n\t\t * `pointInterval` given in the series options.\n\t\t *\n\t\t * ```js\n\t\t * data: [\n\t\t * [0, 1, 2],\n\t\t * [1, 5, 5],\n\t\t * [2, 0, 2]\n\t\t * ]\n\t\t * ```\n\t\t *\n\t\t * 2. An array of objects with named values. The following snippet shows only a\n\t\t * few settings, see the complete options set below. If the total number of data\n\t\t * points exceeds the series' [turboThreshold](#series.bubble.turboThreshold),\n\t\t * this option is not available.\n\t\t *\n\t\t * ```js\n\t\t * data: [{\n\t\t * x: 1,\n\t\t * y: 1,\n\t\t * z: 1,\n\t\t * name: \"Point2\",\n\t\t * color: \"#00FF00\"\n\t\t * }, {\n\t\t * x: 1,\n\t\t * y: 5,\n\t\t * z: 4,\n\t\t * name: \"Point1\",\n\t\t * color: \"#FF00FF\"\n\t\t * }]\n\t\t * ```\n\t\t *\n\t\t * @type {Array}\n\t\t * @extends series.line.data\n\t\t * @excluding marker\n\t\t * @sample {highcharts} highcharts/chart/reflow-true/\n\t\t * Numerical values\n\t\t * @sample {highcharts} highcharts/series/data-array-of-arrays/\n\t\t * Arrays of numeric x and y\n\t\t * @sample {highcharts} highcharts/series/data-array-of-arrays-datetime/\n\t\t * Arrays of datetime x and y\n\t\t * @sample {highcharts} highcharts/series/data-array-of-name-value/\n\t\t * Arrays of point.name and y\n\t\t * @sample {highcharts} highcharts/series/data-array-of-objects/\n\t\t * Config objects\n\t\t * @product highcharts\n\t\t * @apioption series.bubble.data\n\t\t */\n\n\t\t/**\n\t\t * The size value for each bubble. The bubbles' diameters are computed\n\t\t * based on the `z`, and controlled by series options like `minSize`,\n\t\t * `maxSize`, `sizeBy`, `zMin` and `zMax`.\n\t\t *\n\t\t * @type {Number}\n\t\t * @product highcharts\n\t\t * @apioption series.bubble.data.z\n\t\t */\n\n\t\t/**\n\t\t * @excluding enabled,enabledThreshold,height,radius,width\n\t\t * @apioption series.bubble.marker\n\t\t */\n\n\t}(Highcharts));\n\t(function (H) {\n\t\t/**\n\t\t * (c) 2010-2018 Torstein Honsi\n\t\t *\n\t\t * License: www.highcharts.com/license\n\t\t */\n\n\t\t/**\n\t\t * Extensions for polar charts. Additionally, much of the geometry required for\n\t\t * polar charts is gathered in RadialAxes.js.\n\t\t */\n\n\t\tvar each = H.each,\n\t\t pick = H.pick,\n\t\t Pointer = H.Pointer,\n\t\t Series = H.Series,\n\t\t seriesTypes = H.seriesTypes,\n\t\t wrap = H.wrap,\n\n\t\t seriesProto = Series.prototype,\n\t\t pointerProto = Pointer.prototype,\n\t\t colProto;\n\n\t\tif (!H.polarExtended) {\n\t\t H.polarExtended = true;\n\n\n\t\t /**\n\t\t * Search a k-d tree by the point angle, used for shared tooltips in polar\n\t\t * charts\n\t\t */\n\t\t seriesProto.searchPointByAngle = function (e) {\n\t\t var series = this,\n\t\t chart = series.chart,\n\t\t xAxis = series.xAxis,\n\t\t center = xAxis.pane.center,\n\t\t plotX = e.chartX - center[0] - chart.plotLeft,\n\t\t plotY = e.chartY - center[1] - chart.plotTop;\n\n\t\t return this.searchKDTree({\n\t\t clientX: 180 + (Math.atan2(plotX, plotY) * (-180 / Math.PI))\n\t\t });\n\n\t\t };\n\n\t\t /**\n\t\t * #6212 Calculate connectors for spline series in polar chart.\n\t\t * @param {Boolean} calculateNeighbours\n\t\t * Check if connectors should be calculated for neighbour points as\n\t\t * well allows short recurence\n\t\t */\n\t\t seriesProto.getConnectors = function (\n\t\t segment,\n\t\t index,\n\t\t calculateNeighbours,\n\t\t connectEnds\n\t\t ) {\n\n\t\t var i,\n\t\t prevPointInd,\n\t\t nextPointInd,\n\t\t previousPoint,\n\t\t nextPoint,\n\t\t previousX,\n\t\t previousY,\n\t\t nextX,\n\t\t nextY,\n\t\t plotX,\n\t\t plotY,\n\t\t ret,\n\t\t // 1 means control points midway between points, 2 means 1/3 from\n\t\t // the point, 3 is 1/4 etc;\n\t\t smoothing = 1.5,\n\t\t denom = smoothing + 1,\n\t\t leftContX,\n\t\t leftContY,\n\t\t rightContX,\n\t\t rightContY,\n\t\t dLControlPoint, // distance left control point\n\t\t dRControlPoint,\n\t\t leftContAngle,\n\t\t rightContAngle,\n\t\t jointAngle,\n\t\t addedNumber = connectEnds ? 1 : 0;\n\n\t\t // Calculate final index of points depending on the initial index value.\n\t\t // Because of calculating neighbours, index may be outisde segment\n\t\t // array.\n\t\t if (index >= 0 && index <= segment.length - 1) {\n\t\t i = index;\n\t\t } else if (index < 0) {\n\t\t i = segment.length - 1 + index;\n\t\t } else {\n\t\t i = 0;\n\t\t }\n\n\t\t prevPointInd = (i - 1 < 0) ? segment.length - (1 + addedNumber) : i - 1;\n\t\t nextPointInd = (i + 1 > segment.length - 1) ? addedNumber : i + 1;\n\t\t previousPoint = segment[prevPointInd];\n\t\t nextPoint = segment[nextPointInd];\n\t\t previousX = previousPoint.plotX;\n\t\t previousY = previousPoint.plotY;\n\t\t nextX = nextPoint.plotX;\n\t\t nextY = nextPoint.plotY;\n\t\t plotX = segment[i].plotX; // actual point\n\t\t plotY = segment[i].plotY;\n\t\t leftContX = (smoothing * plotX + previousX) / denom;\n\t\t leftContY = (smoothing * plotY + previousY) / denom;\n\t\t rightContX = (smoothing * plotX + nextX) / denom;\n\t\t rightContY = (smoothing * plotY + nextY) / denom;\n\t\t dLControlPoint = Math.sqrt(\n\t\t Math.pow(leftContX - plotX, 2) + Math.pow(leftContY - plotY, 2)\n\t\t );\n\t\t dRControlPoint = Math.sqrt(\n\t\t Math.pow(rightContX - plotX, 2) + Math.pow(rightContY - plotY, 2)\n\t\t );\n\t\t leftContAngle = Math.atan2(leftContY - plotY, leftContX - plotX);\n\t\t rightContAngle = Math.atan2(rightContY - plotY, rightContX - plotX);\n\t\t jointAngle = (Math.PI / 2) + ((leftContAngle + rightContAngle) / 2);\n\t\t // Ensure the right direction, jointAngle should be in the same quadrant\n\t\t // as leftContAngle\n\t\t if (Math.abs(leftContAngle - jointAngle) > Math.PI / 2) {\n\t\t jointAngle -= Math.PI;\n\t\t }\n\t\t // Find the corrected control points for a spline straight through the\n\t\t // point\n\t\t leftContX = plotX + Math.cos(jointAngle) * dLControlPoint;\n\t\t leftContY = plotY + Math.sin(jointAngle) * dLControlPoint;\n\t\t rightContX = plotX + Math.cos(Math.PI + jointAngle) * dRControlPoint;\n\t\t rightContY = plotY + Math.sin(Math.PI + jointAngle) * dRControlPoint;\n\n\t\t // push current point's connectors into returned object\n\n\t\t ret = {\n\t\t rightContX: rightContX,\n\t\t rightContY: rightContY,\n\t\t leftContX: leftContX,\n\t\t leftContY: leftContY,\n\t\t plotX: plotX,\n\t\t plotY: plotY\n\t\t };\n\n\t\t // calculate connectors for previous and next point and push them inside\n\t\t // returned object\n\t\t if (calculateNeighbours) {\n\t\t ret.prevPointCont = this.getConnectors(\n\t\t segment,\n\t\t prevPointInd,\n\t\t false,\n\t\t connectEnds\n\t\t );\n\t\t }\n\t\t return ret;\n\t\t };\n\n\t\t /**\n\t\t * Wrap the buildKDTree function so that it searches by angle (clientX) in\n\t\t * case of shared tooltip, and by two dimensional distance in case of\n\t\t * non-shared.\n\t\t */\n\t\t wrap(seriesProto, 'buildKDTree', function (proceed) {\n\t\t if (this.chart.polar) {\n\t\t if (this.kdByAngle) {\n\t\t this.searchPoint = this.searchPointByAngle;\n\t\t } else {\n\t\t this.options.findNearestPointBy = 'xy';\n\t\t }\n\t\t }\n\t\t proceed.apply(this);\n\t\t });\n\n\t\t /**\n\t\t * Translate a point's plotX and plotY from the internal angle and radius\n\t\t * measures to true plotX, plotY coordinates\n\t\t */\n\t\t seriesProto.toXY = function (point) {\n\t\t var xy,\n\t\t chart = this.chart,\n\t\t plotX = point.plotX,\n\t\t plotY = point.plotY,\n\t\t clientX;\n\n\t\t // Save rectangular plotX, plotY for later computation\n\t\t point.rectPlotX = plotX;\n\t\t point.rectPlotY = plotY;\n\n\t\t // Find the polar plotX and plotY\n\t\t xy = this.xAxis.postTranslate(point.plotX, this.yAxis.len - plotY);\n\t\t point.plotX = point.polarPlotX = xy.x - chart.plotLeft;\n\t\t point.plotY = point.polarPlotY = xy.y - chart.plotTop;\n\n\t\t // If shared tooltip, record the angle in degrees in order to align X\n\t\t // points. Otherwise, use a standard k-d tree to get the nearest point\n\t\t // in two dimensions.\n\t\t if (this.kdByAngle) {\n\t\t clientX = (\n\t\t (plotX / Math.PI * 180) + this.xAxis.pane.options.startAngle\n\t\t ) % 360;\n\t\t if (clientX < 0) { // #2665\n\t\t clientX += 360;\n\t\t }\n\t\t point.clientX = clientX;\n\t\t } else {\n\t\t point.clientX = point.plotX;\n\t\t }\n\t\t };\n\n\t\t if (seriesTypes.spline) {\n\t\t /**\n\t\t * Overridden method for calculating a spline from one point to the next\n\t\t */\n\t\t wrap(\n\t\t seriesTypes.spline.prototype,\n\t\t 'getPointSpline',\n\t\t function (proceed, segment, point, i) {\n\t\t var ret,\n\t\t connectors;\n\n\t\t if (this.chart.polar) {\n\t\t // moveTo or lineTo\n\t\t if (!i) {\n\t\t ret = ['M', point.plotX, point.plotY];\n\t\t } else { // curve from last point to this\n\t\t connectors = this.getConnectors(\n\t\t segment,\n\t\t i,\n\t\t true,\n\t\t this.connectEnds\n\t\t );\n\t\t ret = [\n\t\t 'C',\n\t\t connectors.prevPointCont.rightContX,\n\t\t connectors.prevPointCont.rightContY,\n\t\t connectors.leftContX,\n\t\t connectors.leftContY,\n\t\t connectors.plotX,\n\t\t connectors.plotY\n\t\t ];\n\t\t }\n\t\t } else {\n\t\t ret = proceed.call(this, segment, point, i);\n\t\t }\n\t\t return ret;\n\t\t }\n\t\t );\n\n\t\t // #6430 Areasplinerange series use unwrapped getPointSpline method, so\n\t\t // we need to set this method again.\n\t\t if (seriesTypes.areasplinerange) {\n\t\t seriesTypes.areasplinerange.prototype.getPointSpline =\n\t\t seriesTypes.spline.prototype.getPointSpline;\n\t\t }\n\t\t }\n\n\t\t /**\n\t\t * Extend translate. The plotX and plotY values are computed as if the polar\n\t\t * chart were a cartesian plane, where plotX denotes the angle in radians\n\t\t * and (yAxis.len - plotY) is the pixel distance from center.\n\t\t */\n\t\t H.addEvent(Series, 'afterTranslate', function () {\n\t\t var chart = this.chart,\n\t\t points,\n\t\t i;\n\n\t\t if (chart.polar) {\n\t\t // Postprocess plot coordinates\n\t\t this.kdByAngle = chart.tooltip && chart.tooltip.shared;\n\n\t\t if (!this.preventPostTranslate) {\n\t\t points = this.points;\n\t\t i = points.length;\n\n\t\t while (i--) {\n\t\t // Translate plotX, plotY from angle and radius to true plot\n\t\t // coordinates\n\t\t this.toXY(points[i]);\n\t\t }\n\t\t }\n\n\t\t // Perform clip after render\n\t\t if (!this.hasClipCircleSetter) {\n\t\t this.hasClipCircleSetter = Boolean(\n\t\t H.addEvent(this, 'afterRender', function () {\n\t\t var circ;\n\t\t if (chart.polar) {\n\t\t circ = this.yAxis.center;\n\t\t this.group.clip(\n\t\t chart.renderer.clipCircle(\n\t\t circ[0],\n\t\t circ[1],\n\t\t circ[2] / 2\n\t\t )\n\t\t );\n\t\t this.setClip = H.noop;\n\t\t }\n\t\t })\n\t\t );\n\t\t }\n\t\t }\n\t\t }, { order: 2 }); // Run after translation of ||-coords\n\n\t\t /**\n\t\t * Extend getSegmentPath to allow connecting ends across 0 to provide a\n\t\t * closed circle in line-like series.\n\t\t */\n\t\t wrap(seriesProto, 'getGraphPath', function (proceed, points) {\n\t\t var series = this,\n\t\t i,\n\t\t firstValid,\n\t\t popLastPoint;\n\n\t\t // Connect the path\n\t\t if (this.chart.polar) {\n\t\t points = points || this.points;\n\n\t\t // Append first valid point in order to connect the ends\n\t\t for (i = 0; i < points.length; i++) {\n\t\t if (!points[i].isNull) {\n\t\t firstValid = i;\n\t\t break;\n\t\t }\n\t\t }\n\n\n\t\t /**\n\t\t * Polar charts only. Whether to connect the ends of a line series\n\t\t * plot across the extremes.\n\t\t *\n\t\t * @type {Boolean}\n\t\t * @sample {highcharts} highcharts/plotoptions/line-connectends-false/\n\t\t * Do not connect\n\t\t * @since 2.3.0\n\t\t * @product highcharts\n\t\t * @apioption plotOptions.series.connectEnds\n\t\t */\n\t\t if (\n\t\t this.options.connectEnds !== false &&\n\t\t firstValid !== undefined\n\t\t ) {\n\t\t this.connectEnds = true; // re-used in splines\n\t\t points.splice(points.length, 0, points[firstValid]);\n\t\t popLastPoint = true;\n\t\t }\n\n\t\t // For area charts, pseudo points are added to the graph, now we\n\t\t // need to translate these\n\t\t each(points, function (point) {\n\t\t if (point.polarPlotY === undefined) {\n\t\t series.toXY(point);\n\t\t }\n\t\t });\n\t\t }\n\n\t\t // Run uber method\n\t\t var ret = proceed.apply(this, [].slice.call(arguments, 1));\n\n\t\t // #6212 points.splice method is adding points to an array. In case of\n\t\t // areaspline getGraphPath method is used two times and in both times\n\t\t // points are added to an array. That is why points.pop is used, to get\n\t\t // unmodified points.\n\t\t if (popLastPoint) {\n\t\t points.pop();\n\t\t }\n\t\t return ret;\n\t\t });\n\n\n\t\t var polarAnimate = function (proceed, init) {\n\t\t var chart = this.chart,\n\t\t animation = this.options.animation,\n\t\t group = this.group,\n\t\t markerGroup = this.markerGroup,\n\t\t center = this.xAxis.center,\n\t\t plotLeft = chart.plotLeft,\n\t\t plotTop = chart.plotTop,\n\t\t attribs;\n\n\t\t // Specific animation for polar charts\n\t\t if (chart.polar) {\n\n\t\t // Enable animation on polar charts only in SVG. In VML, the scaling\n\t\t // is different, plus animation would be so slow it would't matter.\n\t\t if (chart.renderer.isSVG) {\n\n\t\t if (animation === true) {\n\t\t animation = {};\n\t\t }\n\n\t\t // Initialize the animation\n\t\t if (init) {\n\n\t\t // Scale down the group and place it in the center\n\t\t attribs = {\n\t\t translateX: center[0] + plotLeft,\n\t\t translateY: center[1] + plotTop,\n\t\t scaleX: 0.001, // #1499\n\t\t scaleY: 0.001\n\t\t };\n\n\t\t group.attr(attribs);\n\t\t if (markerGroup) {\n\t\t markerGroup.attr(attribs);\n\t\t }\n\n\t\t // Run the animation\n\t\t } else {\n\t\t attribs = {\n\t\t translateX: plotLeft,\n\t\t translateY: plotTop,\n\t\t scaleX: 1,\n\t\t scaleY: 1\n\t\t };\n\t\t group.animate(attribs, animation);\n\t\t if (markerGroup) {\n\t\t markerGroup.animate(attribs, animation);\n\t\t }\n\n\t\t // Delete this function to allow it only once\n\t\t this.animate = null;\n\t\t }\n\t\t }\n\n\t\t // For non-polar charts, revert to the basic animation\n\t\t } else {\n\t\t proceed.call(this, init);\n\t\t }\n\t\t };\n\n\t\t // Define the animate method for regular series\n\t\t wrap(seriesProto, 'animate', polarAnimate);\n\n\n\t\t if (seriesTypes.column) {\n\n\t\t colProto = seriesTypes.column.prototype;\n\n\t\t colProto.polarArc = function (low, high, start, end) {\n\t\t var center = this.xAxis.center,\n\t\t len = this.yAxis.len;\n\n\t\t return this.chart.renderer.symbols.arc(\n\t\t center[0],\n\t\t center[1],\n\t\t len - high,\n\t\t null,\n\t\t {\n\t\t start: start,\n\t\t end: end,\n\t\t innerR: len - pick(low, len)\n\t\t }\n\t\t );\n\t\t };\n\n\t\t /**\n\t\t * Define the animate method for columnseries\n\t\t */\n\t\t wrap(colProto, 'animate', polarAnimate);\n\n\n\t\t /**\n\t\t * Extend the column prototype's translate method\n\t\t */\n\t\t wrap(colProto, 'translate', function (proceed) {\n\n\t\t var xAxis = this.xAxis,\n\t\t startAngleRad = xAxis.startAngleRad,\n\t\t start,\n\t\t points,\n\t\t point,\n\t\t i;\n\n\t\t this.preventPostTranslate = true;\n\n\t\t // Run uber method\n\t\t proceed.call(this);\n\n\t\t // Postprocess plot coordinates\n\t\t if (xAxis.isRadial) {\n\t\t points = this.points;\n\t\t i = points.length;\n\t\t while (i--) {\n\t\t point = points[i];\n\t\t start = point.barX + startAngleRad;\n\t\t point.shapeType = 'path';\n\t\t point.shapeArgs = {\n\t\t d: this.polarArc(\n\t\t point.yBottom,\n\t\t point.plotY,\n\t\t start,\n\t\t start + point.pointWidth\n\t\t )\n\t\t };\n\t\t // Provide correct plotX, plotY for tooltip\n\t\t this.toXY(point);\n\t\t point.tooltipPos = [point.plotX, point.plotY];\n\t\t point.ttBelow = point.plotY > xAxis.center[1];\n\t\t }\n\t\t }\n\t\t });\n\n\n\t\t /**\n\t\t * Align column data labels outside the columns. #1199.\n\t\t */\n\t\t wrap(colProto, 'alignDataLabel', function (\n\t\t proceed,\n\t\t point,\n\t\t dataLabel,\n\t\t options,\n\t\t alignTo,\n\t\t isNew\n\t\t ) {\n\n\t\t if (this.chart.polar) {\n\t\t var angle = point.rectPlotX / Math.PI * 180,\n\t\t align,\n\t\t verticalAlign;\n\n\t\t // Align nicely outside the perimeter of the columns\n\t\t if (options.align === null) {\n\t\t if (angle > 20 && angle < 160) {\n\t\t align = 'left'; // right hemisphere\n\t\t } else if (angle > 200 && angle < 340) {\n\t\t align = 'right'; // left hemisphere\n\t\t } else {\n\t\t align = 'center'; // top or bottom\n\t\t }\n\t\t options.align = align;\n\t\t }\n\t\t if (options.verticalAlign === null) {\n\t\t if (angle < 45 || angle > 315) {\n\t\t verticalAlign = 'bottom'; // top part\n\t\t } else if (angle > 135 && angle < 225) {\n\t\t verticalAlign = 'top'; // bottom part\n\t\t } else {\n\t\t verticalAlign = 'middle'; // left or right\n\t\t }\n\t\t options.verticalAlign = verticalAlign;\n\t\t }\n\n\t\t seriesProto.alignDataLabel.call(\n\t\t this,\n\t\t point,\n\t\t dataLabel,\n\t\t options,\n\t\t alignTo,\n\t\t isNew\n\t\t );\n\t\t } else {\n\t\t proceed.call(this, point, dataLabel, options, alignTo, isNew);\n\t\t }\n\n\t\t });\n\t\t }\n\n\t\t /**\n\t\t * Extend getCoordinates to prepare for polar axis values\n\t\t */\n\t\t wrap(pointerProto, 'getCoordinates', function (proceed, e) {\n\t\t var chart = this.chart,\n\t\t ret = {\n\t\t xAxis: [],\n\t\t yAxis: []\n\t\t };\n\n\t\t if (chart.polar) {\n\n\t\t each(chart.axes, function (axis) {\n\t\t var isXAxis = axis.isXAxis,\n\t\t center = axis.center,\n\t\t x = e.chartX - center[0] - chart.plotLeft,\n\t\t y = e.chartY - center[1] - chart.plotTop;\n\n\t\t ret[isXAxis ? 'xAxis' : 'yAxis'].push({\n\t\t axis: axis,\n\t\t value: axis.translate(\n\t\t isXAxis ?\n\t\t Math.PI - Math.atan2(x, y) : // angle\n\t\t // distance from center\n\t\t Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2)),\n\t\t true\n\t\t )\n\t\t });\n\t\t });\n\n\t\t } else {\n\t\t ret = proceed.call(this, e);\n\t\t }\n\n\t\t return ret;\n\t\t });\n\n\t\t H.SVGRenderer.prototype.clipCircle = function (x, y, r) {\n\t\t var wrapper,\n\t\t id = H.uniqueKey(),\n\n\t\t clipPath = this.createElement('clipPath').attr({\n\t\t id: id\n\t\t }).add(this.defs);\n\n\t\t wrapper = this.circle(x, y, r).add(clipPath);\n\t\t wrapper.id = id;\n\t\t wrapper.clipPath = clipPath;\n\n\t\t return wrapper;\n\t\t };\n\n\t\t H.addEvent(H.Chart, 'getAxes', function () {\n\n\t\t if (!this.pane) {\n\t\t this.pane = [];\n\t\t }\n\t\t each(H.splat(this.options.pane), function (paneOptions) {\n\t\t new H.Pane( // eslint-disable-line no-new\n\t\t paneOptions,\n\t\t this\n\t\t );\n\t\t }, this);\n\t\t });\n\n\t\t H.addEvent(H.Chart, 'afterDrawChartBox', function () {\n\t\t each(this.pane, function (pane) {\n\t\t pane.render();\n\t\t });\n\t\t });\n\n\t\t /**\n\t\t * Extend chart.get to also search in panes. Used internally in\n\t\t * responsiveness and chart.update.\n\t\t */\n\t\t wrap(H.Chart.prototype, 'get', function (proceed, id) {\n\t\t return H.find(this.pane, function (pane) {\n\t\t return pane.options.id === id;\n\t\t }) || proceed.call(this, id);\n\t\t });\n\t\t}\n\n\t}(Highcharts));\n\treturn (function () {\n\n\n\t}());\n}));\n","/*\n Highcharts JS v6.2.0 (2018-10-17)\n\n (c) 2009-2016 Torstein Honsi\n\n License: www.highcharts.com/license\n*/\n(function(S,K){\"object\"===typeof module&&module.exports?module.exports=S.document?K(S):K:\"function\"===typeof define&&define.amd?define(function(){return K(S)}):S.Highcharts=K(S)})(\"undefined\"!==typeof window?window:this,function(S){var K=function(){var a=\"undefined\"===typeof S?window:S,C=a.document,F=a.navigator&&a.navigator.userAgent||\"\",I=C&&C.createElementNS&&!!C.createElementNS(\"http://www.w3.org/2000/svg\",\"svg\").createSVGRect,n=/(edge|msie|trident)/i.test(F)&&!a.opera,f=-1!==F.indexOf(\"Firefox\"),\ne=-1!==F.indexOf(\"Chrome\"),u=f&&4>parseInt(F.split(\"Firefox/\")[1],10);return a.Highcharts?a.Highcharts.error(16,!0):{product:\"Highcharts\",version:\"6.2.0\",deg2rad:2*Math.PI/360,doc:C,hasBidiBug:u,hasTouch:C&&void 0!==C.documentElement.ontouchstart,isMS:n,isWebKit:-1!==F.indexOf(\"AppleWebKit\"),isFirefox:f,isChrome:e,isSafari:!e&&-1!==F.indexOf(\"Safari\"),isTouchDevice:/(Mobile|Android|Windows Phone)/.test(F),SVG_NS:\"http://www.w3.org/2000/svg\",chartCount:0,seriesTypes:{},symbolSizes:{},svg:I,win:a,marginNames:[\"plotTop\",\n\"marginRight\",\"marginBottom\",\"plotLeft\"],noop:function(){},charts:[]}}();(function(a){a.timers=[];var C=a.charts,F=a.doc,I=a.win;a.error=function(n,f){n=a.isNumber(n)?\"Highcharts error #\"+n+\": www.highcharts.com/errors/\"+n:n;if(f)throw Error(n);I.console&&console.log(n)};a.Fx=function(a,f,e){this.options=f;this.elem=a;this.prop=e};a.Fx.prototype={dSetter:function(){var a=this.paths[0],f=this.paths[1],e=[],u=this.now,x=a.length,t;if(1===u)e=this.toD;else if(x===f.length&&1>u)for(;x--;)t=parseFloat(a[x]),\ne[x]=isNaN(t)?f[x]:u*parseFloat(f[x]-t)+t;else e=f;this.elem.attr(\"d\",e,null,!0)},update:function(){var a=this.elem,f=this.prop,e=this.now,u=this.options.step;if(this[f+\"Setter\"])this[f+\"Setter\"]();else a.attr?a.element&&a.attr(f,e,null,!0):a.style[f]=e+this.unit;u&&u.call(a,e,this)},run:function(n,f,e){var u=this,x=u.options,t=function(a){return t.stopped?!1:u.step(a)},w=I.requestAnimationFrame||function(a){setTimeout(a,13)},y=function(){for(var c=0;c=w+this.startTime?(this.now=this.end,this.pos=\n1,this.update(),e=y[this.prop]=!0,a.objectEach(y,function(a){!0!==a&&(e=!1)}),e&&t&&t.call(x),n=!1):(this.pos=u.easing((f-this.startTime)/w),this.now=this.start+(this.end-this.start)*this.pos,this.update(),n=!0);return n},initPath:function(n,f,e){function u(a){var b,k;for(d=a.length;d--;)b=\"M\"===a[d]||\"L\"===a[d],k=/[a-zA-Z]/.test(a[d+3]),b&&k&&a.splice(d+1,0,a[d+1],a[d+2],a[d+1],a[d+2])}function x(a,h){for(;a.lengtha&&-Infinity=e&&(f=[1/e])));for(u=0;u=n||!x&&t<=(f[u]+(f[u+1]||f[u]))/2);u++);return w=a.correctFloat(w*e,-Math.round(Math.log(.001)/Math.LN10))};a.stableSort=function(a,f){var e=a.length,n,x;for(x=0;xe&&(e=a[f]);return e};a.destroyObjectProperties=function(n,f){a.objectEach(n,function(a,u){a&&a!==f&&a.destroy&&a.destroy();delete n[u]})};a.discardElement=function(n){var f=a.garbageBin;f||(f=a.createElement(\"div\"));n&&f.appendChild(n);f.innerHTML=\"\"};a.correctFloat=function(a,f){return parseFloat(a.toPrecision(f||\n14))};a.setAnimation=function(n,f){f.renderer.globalAnimation=a.pick(n,f.options.chart.animation,!0)};a.animObject=function(n){return a.isObject(n)?a.merge(n):{duration:n?500:0}};a.timeUnits={millisecond:1,second:1E3,minute:6E4,hour:36E5,day:864E5,week:6048E5,month:24192E5,year:314496E5};a.numberFormat=function(n,f,e,u){n=+n||0;f=+f;var x=a.defaultOptions.lang,t=(n.toString().split(\".\")[1]||\"\").split(\"e\")[0].length,w,y,c=n.toString().split(\"e\");-1===f?f=Math.min(t,20):a.isNumber(f)?f&&c[1]&&0>c[1]&&\n(w=f+ +c[1],0<=w?(c[0]=(+c[0]).toExponential(w).split(\"e\")[0],f=w):(c[0]=c[0].split(\".\")[0]||0,n=20>f?(c[0]*Math.pow(10,c[1])).toFixed(f):0,c[1]=0)):f=2;y=(Math.abs(c[1]?c[0]:n)+Math.pow(10,-Math.max(f,t)-1)).toFixed(f);t=String(a.pInt(y));w=3n?\"-\":\"\")+(w?t.substr(0,w)+u:\"\");n+=t.substr(w).replace(/(\\d{3})(?=\\d)/g,\"$1\"+u);f&&(n+=e+y.slice(-f));c[1]&&0!==+n&&(n+=\"e\"+c[1]);return n};Math.easeInOutSine=function(a){return-.5*\n(Math.cos(Math.PI*a)-1)};a.getStyle=function(n,f,e){if(\"width\"===f)return Math.max(0,Math.min(n.offsetWidth,n.scrollWidth)-a.getStyle(n,\"padding-left\")-a.getStyle(n,\"padding-right\"));if(\"height\"===f)return Math.max(0,Math.min(n.offsetHeight,n.scrollHeight)-a.getStyle(n,\"padding-top\")-a.getStyle(n,\"padding-bottom\"));I.getComputedStyle||a.error(27,!0);if(n=I.getComputedStyle(n,void 0))n=n.getPropertyValue(f),a.pick(e,\"opacity\"!==f)&&(n=a.pInt(n));return n};a.inArray=function(n,f,e){return(a.indexOfPolyfill||\nArray.prototype.indexOf).call(f,n,e)};a.grep=function(n,f){return(a.filterPolyfill||Array.prototype.filter).call(n,f)};a.find=Array.prototype.find?function(a,f){return a.find(f)}:function(a,f){var e,u=a.length;for(e=0;e>16,(e&65280)>>8,e&255,1]:4===f&&(x=[(e&3840)>>4|(e&3840)>>8,(e&240)>>4|e&240,(e&15)<<4|e&15,1])),!x)for(t=this.parsers.length;t--&&!x;)w=this.parsers[t],\n(f=w.regex.exec(e))&&(x=w.parse(f));this.rgba=x||[]},get:function(a){var e=this.input,f=this.rgba,t;this.stops?(t=n(e),t.stops=[].concat(t.stops),C(this.stops,function(e,y){t.stops[y]=[t.stops[y][0],e.get(a)]})):t=f&&F(f[0])?\"rgb\"===a||!a&&1===f[3]?\"rgb(\"+f[0]+\",\"+f[1]+\",\"+f[2]+\")\":\"a\"===a?f[3]:\"rgba(\"+f.join(\",\")+\")\":e;return t},brighten:function(a){var e,x=this.rgba;if(this.stops)C(this.stops,function(e){e.brighten(a)});else if(F(a)&&0!==a)for(e=0;3>e;e++)x[e]+=f(255*a),0>x[e]&&(x[e]=0),255z.width)z={width:0,height:0}}else z=this.htmlGetBBox();r.isSVG&&(a=z.width,r=z.height,\nv&&(z.height=r={\"11px,17\":14,\"13px,20\":16}[m&&m.fontSize+\",\"+Math.round(r)]||r),g&&(z.width=Math.abs(r*Math.sin(d))+Math.abs(a*Math.cos(d)),z.height=Math.abs(r*Math.cos(d))+Math.abs(a*Math.sin(d))));if(l&&0]*>/g,\"\").replace(/</g,\"\\x3c\").replace(/>/g,\"\\x3e\")))},textSetter:function(a){a!==this.textStr&&(delete this.bBox,this.textStr=a,this.added&&this.renderer.buildText(this))},fillSetter:function(a,g,r){\"string\"===typeof a?r.setAttribute(g,a):a&&this.complexColor(a,g,r)},visibilitySetter:function(a,g,r){\"inherit\"===a?r.removeAttribute(g):this[g]!==a&&r.setAttribute(g,a);this[g]=a},zIndexSetter:function(a,r){var z=this.renderer,d=this.parentGroup,\nb=(d||z).element||z.box,m,k=this.element,c,H,z=b===z.box;m=this.added;var h;w(a)?(k.setAttribute(\"data-z-index\",a),a=+a,this[r]===a&&(m=!1)):w(this[r])&&k.removeAttribute(\"data-z-index\");this[r]=a;if(m){(a=this.zIndex)&&d&&(d.handleZ=!0);r=b.childNodes;for(h=r.length-1;0<=h&&!c;h--)if(d=r[h],m=d.getAttribute(\"data-z-index\"),H=!w(m),d!==k)if(0>a&&H&&!z&&!h)b.insertBefore(k,r[h]),c=!0;else if(g(m)<=a||H&&(!w(a)||0<=a))b.insertBefore(k,r[h+1]||null),c=!0;c||(b.insertBefore(k,r[z?3:0]||null),c=!0)}return c},\n_defaultSetter:function(a,g,r){r.setAttribute(g,a)}});C.prototype.yGetter=C.prototype.xGetter;C.prototype.translateXSetter=C.prototype.translateYSetter=C.prototype.rotationSetter=C.prototype.verticalAlignSetter=C.prototype.rotationOriginXSetter=C.prototype.rotationOriginYSetter=C.prototype.scaleXSetter=C.prototype.scaleYSetter=C.prototype.matrixSetter=function(a,g){this[g]=a;this.doTransform=!0};C.prototype[\"stroke-widthSetter\"]=C.prototype.strokeSetter=function(a,g,r){this[g]=a;this.stroke&&this[\"stroke-width\"]?\n(C.prototype.fillSetter.call(this,this.stroke,\"stroke\",r),r.setAttribute(\"stroke-width\",this[\"stroke-width\"]),this.hasStroke=!0):\"stroke-width\"===g&&0===a&&this.hasStroke&&(r.removeAttribute(\"stroke\"),this.hasStroke=!1)};F=a.SVGRenderer=function(){this.init.apply(this,arguments)};k(F.prototype,{Element:C,SVG_NS:H,init:function(a,g,r,d,b,k){var z;d=this.createElement(\"svg\").attr({version:\"1.1\",\"class\":\"highcharts-root\"}).css(this.getStyle(d));z=d.element;a.appendChild(z);f(a,\"dir\",\"ltr\");-1===a.innerHTML.indexOf(\"xmlns\")&&\nf(z,\"xmlns\",this.SVG_NS);this.isSVG=!0;this.box=z;this.boxWrapper=d;this.alignedObjects=[];this.url=(l||m)&&h.getElementsByTagName(\"base\").length?Q.location.href.split(\"#\")[0].replace(/<[^>]*>/g,\"\").replace(/([\\('\\)])/g,\"\\\\$1\").replace(/ /g,\"%20\"):\"\";this.createElement(\"desc\").add().element.appendChild(h.createTextNode(\"Created with Highcharts 6.2.0\"));this.defs=this.createElement(\"defs\").add();this.allowHTML=k;this.forExport=b;this.gradients={};this.cache={};this.cacheKeys=[];this.imgCount=0;this.setSize(g,\nr,!1);var c;l&&a.getBoundingClientRect&&(g=function(){x(a,{left:0,top:0});c=a.getBoundingClientRect();x(a,{left:Math.ceil(c.left)-c.left+\"px\",top:Math.ceil(c.top)-c.top+\"px\"})},g(),this.unSubPixelFix=I(Q,\"resize\",g))},getStyle:function(a){return this.style=k({fontFamily:'\"Lucida Grande\", \"Lucida Sans Unicode\", Arial, Helvetica, sans-serif',fontSize:\"12px\"},a)},setStyle:function(a){this.boxWrapper.css(this.getStyle(a))},isHidden:function(){return!this.boxWrapper.getBBox().width},destroy:function(){var a=\nthis.defs;this.box=null;this.boxWrapper=this.boxWrapper.destroy();c(this.gradients||{});this.gradients=null;a&&(this.defs=a.destroy());this.unSubPixelFix&&this.unSubPixelFix();return this.alignedObjects=null},createElement:function(a){var g=new this.Element;g.init(this,a);return g},draw:A,getRadialAttr:function(a,g){return{cx:a[0]-a[2]/2+g.cx*a[2],cy:a[1]-a[2]/2+g.cy*a[2],r:g.r*a[2]}},truncate:function(a,g,r,d,b,m,k){var z=this,c=a.rotation,H,q=d?1:0,A=(r||d).length,v=A,p=[],l=function(a){g.firstChild&&\ng.removeChild(g.firstChild);a&&g.appendChild(h.createTextNode(a))},O=function(m,c){c=c||m;if(void 0===p[c])if(g.getSubStringLength)try{p[c]=b+g.getSubStringLength(0,d?c+1:c)}catch(Y){}else z.getSpanWidth&&(l(k(r||d,m)),p[c]=b+z.getSpanWidth(a,g));return p[c]},G,M;a.rotation=0;G=O(g.textContent.length);if(M=b+G>m){for(;q<=A;)v=Math.ceil((q+A)/2),d&&(H=k(d,v)),G=O(v,H&&H.length-1),q===A?q=A+1:G>m?A=v-1:q=v;0===A?l(\"\"):r&&A===r.length-1||l(H||k(r||d,v))}d&&d.splice(0,v);a.actualWidth=G;a.rotation=c;\nreturn M},escapes:{\"\\x26\":\"\\x26amp;\",\"\\x3c\":\"\\x26lt;\",\"\\x3e\":\"\\x26gt;\",\"'\":\"\\x26#39;\",'\"':\"\\x26quot;\"},buildText:function(a){var r=a.element,b=this,m=b.forExport,c=E(a.textStr,\"\").toString(),z=-1!==c.indexOf(\"\\x3c\"),k=r.childNodes,q,A=f(r,\"x\"),l=a.styles,G=a.textWidth,M=l&&l.lineHeight,e=l&&l.textOutline,B=l&&\"ellipsis\"===l.textOverflow,R=l&&\"nowrap\"===l.whiteSpace,y=l&&l.fontSize,t,D,J=k.length,l=G&&!a.added&&this.box,w=function(a){var d;d=/(px|em)$/.test(a&&a.style.fontSize)?a.style.fontSize:y||\nb.style.fontSize||12;return M?g(M):b.fontMetrics(d,a.getAttribute(\"style\")?a:r).h},Q=function(a,g){N(b.escapes,function(r,d){g&&-1!==v(r,g)||(a=a.toString().replace(new RegExp(r,\"g\"),d))});return a},u=function(a,g){var r;r=a.indexOf(\"\\x3c\");a=a.substring(r,a.indexOf(\"\\x3e\")-r);r=a.indexOf(g+\"\\x3d\");if(-1!==r&&(r=r+g.length+1,g=a.charAt(r),'\"'===g||\"'\"===g))return a=a.substring(r+1),a.substring(0,a.indexOf(g))};t=[c,B,R,M,e,y,G].join();if(t!==a.textCache){for(a.textCache=t;J--;)r.removeChild(k[J]);\nz||e||B||G||-1!==c.indexOf(\" \")?(l&&l.appendChild(r),c=z?c.replace(/<(b|strong)>/g,'\\x3cspan style\\x3d\"font-weight:bold\"\\x3e').replace(/<(i|em)>/g,'\\x3cspan style\\x3d\"font-style:italic\"\\x3e').replace(//g,\"\\x3c/span\\x3e\").split(//g):[c],c=d(c,function(a){return\"\"!==a}),p(c,function(g,d){var c,z=0,k=0;g=g.replace(/^\\s+|\\s+$/g,\"\").replace(//g,\"\\x3c/span\\x3e|||\");c=g.split(\"|||\");p(c,function(g){if(\"\"!==g||1===\nc.length){var v={},l=h.createElementNS(b.SVG_NS,\"tspan\"),p,M;(p=u(g,\"class\"))&&f(l,\"class\",p);if(p=u(g,\"style\"))p=p.replace(/(;| |^)color([ :])/,\"$1fill$2\"),f(l,\"style\",p);(M=u(g,\"href\"))&&!m&&(f(l,\"onclick\",'location.href\\x3d\"'+M+'\"'),f(l,\"class\",\"highcharts-anchor\"),x(l,{cursor:\"pointer\"}));g=Q(g.replace(/<[a-zA-Z\\/](.|\\n)*?>/g,\"\")||\" \");if(\" \"!==g){l.appendChild(h.createTextNode(g));z?v.dx=0:d&&null!==A&&(v.x=A);f(l,v);r.appendChild(l);!z&&D&&(!O&&m&&x(l,{display:\"block\"}),f(l,\"dy\",w(l)));if(G){var e=\ng.replace(/([^\\^])-/g,\"$1- \").split(\" \"),v=!R&&(1Math.abs(b.end-b.start-2*Math.PI));var h=Math.cos(c),q=Math.sin(c),A=Math.cos(k),k=Math.sin(k);b=.001>b.end-c-Math.PI?0:1;m=[\"M\",a+m*h,g+H*q,\"A\",m,H,0,b,1,a+m*A,g+H*k];w(r)&&m.push(d?\"M\":\"L\",a+r*A,g+r*k,\"A\",r,r,0,b,0,a+r*h,g+r*q);m.push(d?\"\":\"Z\");return m},callout:function(a,g,r,d,b){var c=Math.min(b&&b.r||0,r,d),m=c+6,H=b&&b.anchorX;b=b&&b.anchorY;var k;k=[\"M\",a+c,g,\"L\",a+r-c,g,\"C\",a+r,g,a+r,g,a+r,g+c,\"L\",a+r,g+d-c,\"C\",a+r,g+d,a+r,g+d,a+r-c,g+d,\"L\",a+c,g+d,\"C\",a,g+d,a,g+d,a,g+d-c,\"L\",a,g+c,\n\"C\",a,g,a,g,a+c,g];H&&H>r?b>g+m&&bH?b>g+m&&bd&&H>a+m&&Hb&&H>a+m&&Ha?a+3:Math.round(1.2*a);return{h:r,b:Math.round(.8*r),f:a}},rotCorr:function(a,g,r){var d=a;g&&r&&(d=Math.max(d*Math.cos(g*y),4));return{x:-a/3*Math.sin(g*y),y:d}},label:function(g,d,b,c,m,H,h,q,A){var v=this,l=v.g(\"button\"!==A&&\"label\"),M=l.text=v.text(\"\",0,0,h).attr({zIndex:1}),O,z,e=0,B=3,R=0,f,y,t,D,J,E={},N,x,Q=/^url\\((.*?)\\)$/.test(c),u=Q,L,n,\nP,T;A&&l.addClass(\"highcharts-\"+A);u=Q;L=function(){return(N||0)%2/2};n=function(){var a=M.element.style,g={};z=(void 0===f||void 0===y||J)&&w(M.textStr)&&M.getBBox();l.width=(f||z.width||0)+2*B+R;l.height=(y||z.height||0)+2*B;x=B+v.fontMetrics(a&&a.fontSize,M).b;u&&(O||(l.box=O=v.symbols[c]||Q?v.symbol(c):v.rect(),O.addClass((\"button\"===A?\"\":\"highcharts-label-box\")+(A?\" highcharts-\"+A+\"-box\":\"\")),O.add(l),a=L(),g.x=a,g.y=(q?-x:0)+a),g.width=Math.round(l.width),g.height=Math.round(l.height),O.attr(k(g,\nE)),E={})};P=function(){var a=R+B,g;g=q?0:x;w(f)&&z&&(\"center\"===J||\"right\"===J)&&(a+={center:.5,right:1}[J]*(f-z.width));if(a!==M.x||g!==M.y)M.attr(\"x\",a),M.hasBoxWidthChanged&&(z=M.getBBox(!0),n()),void 0!==g&&M.attr(\"y\",g);M.x=a;M.y=g};T=function(a,g){O?O.attr(a,g):E[a]=g};l.onAdd=function(){M.add(l);l.attr({text:g||0===g?g:\"\",x:d,y:b});O&&w(m)&&l.attr({anchorX:m,anchorY:H})};l.widthSetter=function(g){f=a.isNumber(g)?g:null};l.heightSetter=function(a){y=a};l[\"text-alignSetter\"]=function(a){J=a};\nl.paddingSetter=function(a){w(a)&&a!==B&&(B=l.padding=a,P())};l.paddingLeftSetter=function(a){w(a)&&a!==R&&(R=a,P())};l.alignSetter=function(a){a={left:0,center:.5,right:1}[a];a!==e&&(e=a,z&&l.attr({x:t}))};l.textSetter=function(a){void 0!==a&&M.textSetter(a);n();P()};l[\"stroke-widthSetter\"]=function(a,g){a&&(u=!0);N=this[\"stroke-width\"]=a;T(g,a)};l.strokeSetter=l.fillSetter=l.rSetter=function(a,g){\"r\"!==g&&(\"fill\"===g&&a&&(u=!0),l[g]=a);T(g,a)};l.anchorXSetter=function(a,g){m=l.anchorX=a;T(g,Math.round(a)-\nL()-t)};l.anchorYSetter=function(a,g){H=l.anchorY=a;T(g,a-D)};l.xSetter=function(a){l.x=a;e&&(a-=e*((f||z.width)+2*B),l[\"forceAnimate:x\"]=!0);t=Math.round(a);l.attr(\"translateX\",t)};l.ySetter=function(a){D=l.y=Math.round(a);l.attr(\"translateY\",D)};var V=l.css;return k(l,{css:function(a){if(a){var g={};a=G(a);p(l.textProps,function(r){void 0!==a[r]&&(g[r]=a[r],delete a[r])});M.css(g);\"width\"in g&&n()}return V.call(l,a)},getBBox:function(){return{width:z.width+2*B,height:z.height+2*B,x:z.x-B,y:z.y-\nB}},shadow:function(a){a&&(n(),O&&O.shadow(a));return l},destroy:function(){r(l.element,\"mouseenter\");r(l.element,\"mouseleave\");M&&(M=M.destroy());O&&(O=O.destroy());C.prototype.destroy.call(l);l=v=n=P=T=null}})}});a.Renderer=F})(K);(function(a){var C=a.attr,F=a.createElement,I=a.css,n=a.defined,f=a.each,e=a.extend,u=a.isFirefox,x=a.isMS,t=a.isWebKit,w=a.pick,y=a.pInt,c=a.SVGRenderer,h=a.win,p=a.wrap;e(a.SVGElement.prototype,{htmlCss:function(a){var c=\"SPAN\"===this.element.tagName&&a&&\"width\"in a,\nd=w(c&&a.width,void 0);c&&(delete a.width,this.textWidth=d,this.htmlUpdateTransform());a&&\"ellipsis\"===a.textOverflow&&(a.whiteSpace=\"nowrap\",a.overflow=\"hidden\");this.styles=e(this.styles,a);I(this.element,a);return this},htmlGetBBox:function(){var a=this.element;return{x:a.offsetLeft,y:a.offsetTop,width:a.offsetWidth,height:a.offsetHeight}},htmlUpdateTransform:function(){if(this.added){var a=this.renderer,c=this.element,d=this.translateX||0,b=this.translateY||0,h=this.x||0,p=this.y||0,l=this.textAlign||\n\"left\",e={left:0,center:.5,right:1}[l],B=this.styles,t=B&&B.whiteSpace;I(c,{marginLeft:d,marginTop:b});this.shadows&&f(this.shadows,function(a){I(a,{marginLeft:d+1,marginTop:b+1})});this.inverted&&f(c.childNodes,function(d){a.invertChild(d,c)});if(\"SPAN\"===c.tagName){var B=this.rotation,m=this.textWidth&&y(this.textWidth),G=[B,l,c.innerHTML,this.textWidth,this.textAlign].join(),A;(A=m!==this.oldTextWidth)&&!(A=m>this.oldTextWidth)&&((A=this.textPxLength)||(I(c,{width:\"\",whiteSpace:t||\"nowrap\"}),A=\nc.offsetWidth),A=A>m);A&&/[ \\-]/.test(c.textContent||c.innerText)?(I(c,{width:m+\"px\",display:\"block\",whiteSpace:t||\"normal\"}),this.oldTextWidth=m,this.hasBoxWidthChanged=!0):this.hasBoxWidthChanged=!1;G!==this.cTT&&(t=a.fontMetrics(c.style.fontSize).b,!n(B)||B===(this.oldRotation||0)&&l===this.oldAlign||this.setSpanRotation(B,e,t),this.getSpanCorrection(!n(B)&&this.textPxLength||c.offsetWidth,t,e,B,l));I(c,{left:h+(this.xCorr||0)+\"px\",top:p+(this.yCorr||0)+\"px\"});this.cTT=G;this.oldRotation=B;this.oldAlign=\nl}}else this.alignOnAdd=!0},setSpanRotation:function(a,c,d){var b={},k=this.renderer.getTransformKey();b[k]=b.transform=\"rotate(\"+a+\"deg)\";b[k+(u?\"Origin\":\"-origin\")]=b.transformOrigin=100*c+\"% \"+d+\"px\";I(this.element,b)},getSpanCorrection:function(a,c,d){this.xCorr=-a*d;this.yCorr=-c}});e(c.prototype,{getTransformKey:function(){return x&&!/Edge/.test(h.navigator.userAgent)?\"-ms-transform\":t?\"-webkit-transform\":u?\"MozTransform\":h.opera?\"-o-transform\":\"\"},html:function(a,c,d){var b=this.createElement(\"span\"),\nk=b.element,h=b.renderer,l=h.isSVG,q=function(a,d){f([\"opacity\",\"visibility\"],function(b){p(a,b+\"Setter\",function(a,b,c,m){a.call(this,b,c,m);d[c]=b})});a.addedSetters=!0};b.textSetter=function(a){a!==k.innerHTML&&delete this.bBox;this.textStr=a;k.innerHTML=w(a,\"\");b.doTransform=!0};l&&q(b,b.element.style);b.xSetter=b.ySetter=b.alignSetter=b.rotationSetter=function(a,d){\"align\"===d&&(d=\"textAlign\");b[d]=a;b.doTransform=!0};b.afterSetters=function(){this.doTransform&&(this.htmlUpdateTransform(),this.doTransform=\n!1)};b.attr({text:a,x:Math.round(c),y:Math.round(d)}).css({fontFamily:this.style.fontFamily,fontSize:this.style.fontSize,position:\"absolute\"});k.style.whiteSpace=\"nowrap\";b.css=b.htmlCss;l&&(b.add=function(a){var d,c=h.box.parentNode,l=[];if(this.parentGroup=a){if(d=a.div,!d){for(;a;)l.push(a),a=a.parentGroup;f(l.reverse(),function(a){function m(g,d){a[d]=g;\"translateX\"===d?k.left=g+\"px\":k.top=g+\"px\";a.doTransform=!0}var k,g=C(a.element,\"class\");g&&(g={className:g});d=a.div=a.div||F(\"div\",g,{position:\"absolute\",\nleft:(a.translateX||0)+\"px\",top:(a.translateY||0)+\"px\",display:a.display,opacity:a.opacity,pointerEvents:a.styles&&a.styles.pointerEvents},d||c);k=d.style;e(a,{classSetter:function(a){return function(g){this.element.setAttribute(\"class\",g);a.className=g}}(d),on:function(){l[0].div&&b.on.apply({element:l[0].div},arguments);return a},translateXSetter:m,translateYSetter:m});a.addedSetters||q(a,k)})}}else d=c;d.appendChild(k);b.added=!0;b.alignOnAdd&&b.htmlUpdateTransform();return b});return b}})})(K);\n(function(a){var C=a.defined,F=a.each,I=a.extend,n=a.merge,f=a.pick,e=a.timeUnits,u=a.win;a.Time=function(a){this.update(a,!1)};a.Time.prototype={defaultOptions:{},update:function(a){var e=f(a&&a.useUTC,!0),w=this;this.options=a=n(!0,this.options||{},a);this.Date=a.Date||u.Date;this.timezoneOffset=(this.useUTC=e)&&a.timezoneOffset;this.getTimezoneOffset=this.timezoneOffsetFunction();(this.variableTimezone=!(e&&!a.getTimezoneOffset&&!a.timezone))||this.timezoneOffset?(this.get=function(a,c){var h=\nc.getTime(),p=h-w.getTimezoneOffset(c);c.setTime(p);a=c[\"getUTC\"+a]();c.setTime(h);return a},this.set=function(a,c,h){var p;if(\"Milliseconds\"===a||\"Seconds\"===a||\"Minutes\"===a&&0===c.getTimezoneOffset()%60)c[\"set\"+a](h);else p=w.getTimezoneOffset(c),p=c.getTime()-p,c.setTime(p),c[\"setUTC\"+a](h),a=w.getTimezoneOffset(c),p=c.getTime()+a,c.setTime(p)}):e?(this.get=function(a,c){return c[\"getUTC\"+a]()},this.set=function(a,c,h){return c[\"setUTC\"+a](h)}):(this.get=function(a,c){return c[\"get\"+a]()},this.set=\nfunction(a,c,h){return c[\"set\"+a](h)})},makeTime:function(e,t,w,y,c,h){var p,k,q;this.useUTC?(p=this.Date.UTC.apply(0,arguments),k=this.getTimezoneOffset(p),p+=k,q=this.getTimezoneOffset(p),k!==q?p+=q-k:k-36E5!==this.getTimezoneOffset(p-36E5)||a.isSafari||(p-=36E5)):p=(new this.Date(e,t,f(w,1),f(y,0),f(c,0),f(h,0))).getTime();return p},timezoneOffsetFunction:function(){var e=this,f=this.options,w=u.moment;if(!this.useUTC)return function(a){return 6E4*(new Date(a)).getTimezoneOffset()};if(f.timezone){if(w)return function(a){return 6E4*\n-w.tz(a,f.timezone).utcOffset()};a.error(25)}return this.useUTC&&f.getTimezoneOffset?function(a){return 6E4*f.getTimezoneOffset(a)}:function(){return 6E4*(e.timezoneOffset||0)}},dateFormat:function(e,f,w){if(!a.defined(f)||isNaN(f))return a.defaultOptions.lang.invalidDate||\"\";e=a.pick(e,\"%Y-%m-%d %H:%M:%S\");var t=this,c=new this.Date(f),h=this.get(\"Hours\",c),p=this.get(\"Day\",c),k=this.get(\"Date\",c),q=this.get(\"Month\",c),d=this.get(\"FullYear\",c),b=a.defaultOptions.lang,v=b.weekdays,J=b.shortWeekdays,\nl=a.pad,c=a.extend({a:J?J[p]:v[p].substr(0,3),A:v[p],d:l(k),e:l(k,2,\" \"),w:p,b:b.shortMonths[q],B:b.months[q],m:l(q+1),o:q+1,y:d.toString().substr(2,2),Y:d,H:l(h),k:h,I:l(h%12||12),l:h%12||12,M:l(t.get(\"Minutes\",c)),p:12>h?\"AM\":\"PM\",P:12>h?\"am\":\"pm\",S:l(c.getSeconds()),L:l(Math.floor(f%1E3),3)},a.dateFormats);a.objectEach(c,function(a,d){for(;-1!==e.indexOf(\"%\"+d);)e=e.replace(\"%\"+d,\"function\"===typeof a?a.call(t,f):a)});return w?e.substr(0,1).toUpperCase()+e.substr(1):e},resolveDTLFormat:function(e){return a.isObject(e,\n!0)?e:(e=a.splat(e),{main:e[0],from:e[1],to:e[2]})},getTimeTicks:function(a,t,w,y){var c=this,h=[],p,k={},q;p=new c.Date(t);var d=a.unitRange,b=a.count||1,v;y=f(y,1);if(C(t)){c.set(\"Milliseconds\",p,d>=e.second?0:b*Math.floor(c.get(\"Milliseconds\",p)/b));d>=e.second&&c.set(\"Seconds\",p,d>=e.minute?0:b*Math.floor(c.get(\"Seconds\",p)/b));d>=e.minute&&c.set(\"Minutes\",p,d>=e.hour?0:b*Math.floor(c.get(\"Minutes\",p)/b));d>=e.hour&&c.set(\"Hours\",p,d>=e.day?0:b*Math.floor(c.get(\"Hours\",p)/b));d>=e.day&&c.set(\"Date\",\np,d>=e.month?1:b*Math.floor(c.get(\"Date\",p)/b));d>=e.month&&(c.set(\"Month\",p,d>=e.year?0:b*Math.floor(c.get(\"Month\",p)/b)),q=c.get(\"FullYear\",p));d>=e.year&&c.set(\"FullYear\",p,q-q%b);d===e.week&&(q=c.get(\"Day\",p),c.set(\"Date\",p,c.get(\"Date\",p)-q+y+(q4*e.month||c.getTimezoneOffset(t)!==c.getTimezoneOffset(w));t=p.getTime();for(p=1;th.length&&F(h,function(a){0===a%18E5&&\"000000000\"===c.dateFormat(\"%H%M%S%L\",a)&&(k[a]=\"day\")})}h.info=I(a,{higherRanks:k,totalRange:d*b});return h}}})(K);(function(a){var C=a.color,F=a.merge;a.defaultOptions={colors:\"#7cb5ec #434348 #90ed7d #f7a35c #8085e9 #f15c80 #e4d354 #2b908f #f45b5b #91e8e1\".split(\" \"),symbols:[\"circle\",\n\"diamond\",\"square\",\"triangle\",\"triangle-down\"],lang:{loading:\"Loading...\",months:\"January February March April May June July August September October November December\".split(\" \"),shortMonths:\"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec\".split(\" \"),weekdays:\"Sunday Monday Tuesday Wednesday Thursday Friday Saturday\".split(\" \"),decimalPoint:\".\",numericSymbols:\"kMGTPE\".split(\"\"),resetZoom:\"Reset zoom\",resetZoomTitle:\"Reset zoom level 1:1\",thousandsSep:\" \"},global:{},time:a.Time.prototype.defaultOptions,\nchart:{borderRadius:0,defaultSeriesType:\"line\",ignoreHiddenSeries:!0,spacing:[10,10,15,10],resetZoomButton:{theme:{zIndex:6},position:{align:\"right\",x:-10,y:10}},width:null,height:null,borderColor:\"#335cad\",backgroundColor:\"#ffffff\",plotBorderColor:\"#cccccc\"},title:{text:\"Chart title\",align:\"center\",margin:15,widthAdjust:-44},subtitle:{text:\"\",align:\"center\",widthAdjust:-44},plotOptions:{},labels:{style:{position:\"absolute\",color:\"#333333\"}},legend:{enabled:!0,align:\"center\",alignColumns:!0,layout:\"horizontal\",\nlabelFormatter:function(){return this.name},borderColor:\"#999999\",borderRadius:0,navigation:{activeColor:\"#003399\",inactiveColor:\"#cccccc\"},itemStyle:{color:\"#333333\",fontSize:\"12px\",fontWeight:\"bold\",textOverflow:\"ellipsis\"},itemHoverStyle:{color:\"#000000\"},itemHiddenStyle:{color:\"#cccccc\"},shadow:!1,itemCheckboxStyle:{position:\"absolute\",width:\"13px\",height:\"13px\"},squareSymbol:!0,symbolPadding:5,verticalAlign:\"bottom\",x:0,y:0,title:{style:{fontWeight:\"bold\"}}},loading:{labelStyle:{fontWeight:\"bold\",\nposition:\"relative\",top:\"45%\"},style:{position:\"absolute\",backgroundColor:\"#ffffff\",opacity:.5,textAlign:\"center\"}},tooltip:{enabled:!0,animation:a.svg,borderRadius:3,dateTimeLabelFormats:{millisecond:\"%A, %b %e, %H:%M:%S.%L\",second:\"%A, %b %e, %H:%M:%S\",minute:\"%A, %b %e, %H:%M\",hour:\"%A, %b %e, %H:%M\",day:\"%A, %b %e, %Y\",week:\"Week from %A, %b %e, %Y\",month:\"%B %Y\",year:\"%Y\"},footerFormat:\"\",padding:8,snap:a.isTouchDevice?25:10,backgroundColor:C(\"#f7f7f7\").setOpacity(.85).get(),borderWidth:1,headerFormat:'\\x3cspan style\\x3d\"font-size: 10px\"\\x3e{point.key}\\x3c/span\\x3e\\x3cbr/\\x3e',\npointFormat:'\\x3cspan style\\x3d\"color:{point.color}\"\\x3e\\u25cf\\x3c/span\\x3e {series.name}: \\x3cb\\x3e{point.y}\\x3c/b\\x3e\\x3cbr/\\x3e',shadow:!0,style:{color:\"#333333\",cursor:\"default\",fontSize:\"12px\",pointerEvents:\"none\",whiteSpace:\"nowrap\"}},credits:{enabled:!0,href:\"https://www.highcharts.com\",position:{align:\"right\",x:-10,verticalAlign:\"bottom\",y:-5},style:{cursor:\"pointer\",color:\"#999999\",fontSize:\"9px\"},text:\"Highcharts.com\"}};a.setOptions=function(C){a.defaultOptions=F(!0,a.defaultOptions,C);\na.time.update(F(a.defaultOptions.global,a.defaultOptions.time),!1);return a.defaultOptions};a.getOptions=function(){return a.defaultOptions};a.defaultPlotOptions=a.defaultOptions.plotOptions;a.time=new a.Time(F(a.defaultOptions.global,a.defaultOptions.time));a.dateFormat=function(C,n,f){return a.time.dateFormat(C,n,f)}})(K);(function(a){var C=a.correctFloat,F=a.defined,I=a.destroyObjectProperties,n=a.fireEvent,f=a.isNumber,e=a.merge,u=a.pick,x=a.deg2rad;a.Tick=function(a,e,f,c,h){this.axis=a;this.pos=\ne;this.type=f||\"\";this.isNewLabel=this.isNew=!0;this.parameters=h||{};this.tickmarkOffset=this.parameters.tickmarkOffset;this.options=this.parameters.options;f||c||this.addLabel()};a.Tick.prototype={addLabel:function(){var f=this,w=f.axis,y=w.options,c=w.chart,h=w.categories,p=w.names,k=f.pos,q=u(f.options&&f.options.labels,y.labels),d=w.tickPositions,b=k===d[0],v=k===d[d.length-1],h=this.parameters.category||(h?u(h[k],p[k],k):k),J=f.label,d=d.info,l,n,B,D;w.isDatetimeAxis&&d&&(n=c.time.resolveDTLFormat(y.dateTimeLabelFormats[!y.grid&&\nd.higherRanks[k]||d.unitName]),l=n.main);f.isFirst=b;f.isLast=v;f.formatCtx={axis:w,chart:c,isFirst:b,isLast:v,dateTimeLabelFormat:l,tickPositionInfo:d,value:w.isLog?C(w.lin2log(h)):h,pos:k};y=w.labelFormatter.call(f.formatCtx,this.formatCtx);if(D=n&&n.list)f.shortenLabel=function(){for(B=0;Bd&&c-b*vp&&(B=Math.round((h-c)/Math.cos(d*x)));else if(h=c+(1-b)*v,c-b*vp&&(l=p-a.x+l*b,t=-1),l=Math.min(J,l),ll||e.autoRotation&&(q.styles||\n{}).width)B=l;B&&(this.shortenLabel?this.shortenLabel():(D.width=B,(f.style||{}).textOverflow||(D.textOverflow=\"ellipsis\"),q.css(D)))},getPosition:function(e,f,y,c){var h=this.axis,p=h.chart,k=c&&p.oldChartHeight||p.chartHeight;e={x:e?a.correctFloat(h.translate(f+y,null,null,c)+h.transB):h.left+h.offset+(h.opposite?(c&&p.oldChartWidth||p.chartWidth)-h.right-h.left:0),y:e?k-h.bottom+h.offset-(h.opposite?h.height:0):a.correctFloat(k-h.translate(f+y,null,null,c)-h.transB)};n(this,\"afterGetPosition\",\n{pos:e});return e},getLabelPosition:function(a,e,f,c,h,p,k,q){var d=this.axis,b=d.transA,v=d.reversed,J=d.staggerLines,l=d.tickRotCorr||{x:0,y:0},t=h.y,B=c||d.reserveSpaceDefault?0:-d.labelOffset*(\"center\"===d.labelAlign?.5:1),D={};F(t)||(t=0===d.side?f.rotation?-8:-f.getBBox().height:2===d.side?l.y+8:Math.cos(f.rotation*x)*(l.y-f.getBBox(!1,0).height/2));a=a+h.x+B+l.x-(p&&c?p*b*(v?-1:1):0);e=e+t-(p&&!c?p*b*(v?1:-1):0);J&&(f=k/(q||1)%J,d.opposite&&(f=J-f-1),e+=d.labelOffset/J*f);D.x=a;D.y=Math.round(e);\nn(this,\"afterGetLabelPosition\",{pos:D});return D},getMarkPath:function(a,e,f,c,h,p){return p.crispLine([\"M\",a,e,\"L\",a+(h?0:-f),e+(h?f:0)],c)},renderGridLine:function(a,e,f){var c=this.axis,h=c.options,p=this.gridLine,k={},q=this.pos,d=this.type,b=u(this.tickmarkOffset,c.tickmarkOffset),v=c.chart.renderer,J=d?d+\"Grid\":\"grid\",l=h[J+\"LineWidth\"],t=h[J+\"LineColor\"],h=h[J+\"LineDashStyle\"];p||(k.stroke=t,k[\"stroke-width\"]=l,h&&(k.dashstyle=h),d||(k.zIndex=1),a&&(e=0),this.gridLine=p=v.path().attr(k).addClass(\"highcharts-\"+\n(d?d+\"-\":\"\")+\"grid-line\").add(c.gridGroup));if(p&&(f=c.getPlotLinePath(q+b,p.strokeWidth()*f,a,\"pass\")))p[a||this.isNew?\"attr\":\"animate\"]({d:f,opacity:e})},renderMark:function(a,e,f){var c=this.axis,h=c.options,p=c.chart.renderer,k=this.type,q=k?k+\"Tick\":\"tick\",d=c.tickSize(q),b=this.mark,v=!b,J=a.x;a=a.y;var l=u(h[q+\"Width\"],!k&&c.isXAxis?1:0),h=h[q+\"Color\"];d&&(c.opposite&&(d[0]=-d[0]),v&&(this.mark=b=p.path().addClass(\"highcharts-\"+(k?k+\"-\":\"\")+\"tick\").add(c.axisGroup),b.attr({stroke:h,\"stroke-width\":l})),\nb[v?\"attr\":\"animate\"]({d:this.getMarkPath(J,a,d[0],b.strokeWidth()*f,c.horiz,p),opacity:e}))},renderLabel:function(a,e,y,c){var h=this.axis,p=h.horiz,k=h.options,q=this.label,d=k.labels,b=d.step,h=u(this.tickmarkOffset,h.tickmarkOffset),v=!0,J=a.x;a=a.y;q&&f(J)&&(q.xy=a=this.getLabelPosition(J,a,q,p,d,h,c,b),this.isFirst&&!this.isLast&&!u(k.showFirstLabel,1)||this.isLast&&!this.isFirst&&!u(k.showLastLabel,1)?v=!1:!p||d.step||d.rotation||e||0===y||this.handleOverflow(a),b&&c%b&&(v=!1),v&&f(a.y)?(a.opacity=\ny,q[this.isNewLabel?\"attr\":\"animate\"](a),this.isNewLabel=!1):(q.attr(\"y\",-9999),this.isNewLabel=!0))},render:function(e,f,y){var c=this.axis,h=c.horiz,p=this.pos,k=u(this.tickmarkOffset,c.tickmarkOffset),p=this.getPosition(h,p,k,f),k=p.x,q=p.y,c=h&&k===c.pos+c.len||!h&&q===c.pos?-1:1;y=u(y,1);this.isActive=!0;this.renderGridLine(f,y,c);this.renderMark(p,y,c);this.renderLabel(p,f,y,e);this.isNew=!1;a.fireEvent(this,\"afterRender\")},destroy:function(){I(this,this.axis)}}})(K);var W=function(a){var C=\na.addEvent,F=a.animObject,I=a.arrayMax,n=a.arrayMin,f=a.color,e=a.correctFloat,u=a.defaultOptions,x=a.defined,t=a.deg2rad,w=a.destroyObjectProperties,y=a.each,c=a.extend,h=a.fireEvent,p=a.format,k=a.getMagnitude,q=a.grep,d=a.inArray,b=a.isArray,v=a.isNumber,J=a.isString,l=a.merge,L=a.normalizeTickInterval,B=a.objectEach,D=a.pick,m=a.removeEvent,G=a.splat,A=a.syncTimeout,N=a.Tick,E=function(){this.init.apply(this,arguments)};a.extend(E.prototype,{defaultOptions:{dateTimeLabelFormats:{millisecond:{main:\"%H:%M:%S.%L\",\nrange:!1},second:{main:\"%H:%M:%S\",range:!1},minute:{main:\"%H:%M\",range:!1},hour:{main:\"%H:%M\",range:!1},day:{main:\"%e. %b\"},week:{main:\"%e. %b\"},month:{main:\"%b '%y\"},year:{main:\"%Y\"}},endOnTick:!1,labels:{enabled:!0,indentation:10,x:0,style:{color:\"#666666\",cursor:\"default\",fontSize:\"11px\"}},maxPadding:.01,minorTickLength:2,minorTickPosition:\"outside\",minPadding:.01,startOfWeek:1,startOnTick:!1,tickLength:10,tickPixelInterval:100,tickmarkPlacement:\"between\",tickPosition:\"outside\",title:{align:\"middle\",\nstyle:{color:\"#666666\"}},type:\"linear\",minorGridLineColor:\"#f2f2f2\",minorGridLineWidth:1,minorTickColor:\"#999999\",lineColor:\"#ccd6eb\",lineWidth:1,gridLineColor:\"#e6e6e6\",tickColor:\"#ccd6eb\"},defaultYAxisOptions:{endOnTick:!0,maxPadding:.05,minPadding:.05,tickPixelInterval:72,showLastLabel:!0,labels:{x:-8},startOnTick:!0,title:{rotation:270,text:\"Values\"},stackLabels:{allowOverlap:!1,enabled:!1,formatter:function(){return a.numberFormat(this.total,-1)},style:{color:\"#000000\",fontSize:\"11px\",fontWeight:\"bold\",\ntextOutline:\"1px contrast\"}},gridLineWidth:1,lineWidth:0},defaultLeftAxisOptions:{labels:{x:-15},title:{rotation:270}},defaultRightAxisOptions:{labels:{x:15},title:{rotation:90}},defaultBottomAxisOptions:{labels:{autoRotation:[-45],x:0},title:{rotation:0}},defaultTopAxisOptions:{labels:{autoRotation:[-45],x:0},title:{rotation:0}},init:function(a,r){var g=r.isX,b=this;b.chart=a;b.horiz=a.inverted&&!b.isZAxis?!g:g;b.isXAxis=g;b.coll=b.coll||(g?\"xAxis\":\"yAxis\");h(this,\"init\",{userOptions:r});b.opposite=\nr.opposite;b.side=r.side||(b.horiz?b.opposite?0:2:b.opposite?1:3);b.setOptions(r);var c=this.options,m=c.type;b.labelFormatter=c.labels.formatter||b.defaultLabelFormatter;b.userOptions=r;b.minPixelPadding=0;b.reversed=c.reversed;b.visible=!1!==c.visible;b.zoomEnabled=!1!==c.zoomEnabled;b.hasNames=\"category\"===m||!0===c.categories;b.categories=c.categories||b.hasNames;b.names||(b.names=[],b.names.keys={});b.plotLinesAndBandsGroups={};b.isLog=\"logarithmic\"===m;b.isDatetimeAxis=\"datetime\"===m;b.positiveValuesOnly=\nb.isLog&&!b.allowNegativeLog;b.isLinked=x(c.linkedTo);b.ticks={};b.labelEdge=[];b.minorTicks={};b.plotLinesAndBands=[];b.alternateBands={};b.len=0;b.minRange=b.userMinRange=c.minRange||c.maxZoom;b.range=c.range;b.offset=c.offset||0;b.stacks={};b.oldStacks={};b.stacksTouched=0;b.max=null;b.min=null;b.crosshair=D(c.crosshair,G(a.options.tooltip.crosshairs)[g?0:1],!1);r=b.options.events;-1===d(b,a.axes)&&(g?a.axes.splice(a.xAxis.length,0,b):a.axes.push(b),a[b.coll].push(b));b.series=b.series||[];a.inverted&&\n!b.isZAxis&&g&&void 0===b.reversed&&(b.reversed=!0);B(r,function(a,g){C(b,g,a)});b.lin2log=c.linearToLogConverter||b.lin2log;b.isLog&&(b.val2lin=b.log2lin,b.lin2val=b.lin2log);h(this,\"afterInit\")},setOptions:function(a){this.options=l(this.defaultOptions,\"yAxis\"===this.coll&&this.defaultYAxisOptions,[this.defaultTopAxisOptions,this.defaultRightAxisOptions,this.defaultBottomAxisOptions,this.defaultLeftAxisOptions][this.side],l(u[this.coll],a));h(this,\"afterSetOptions\",{userOptions:a})},defaultLabelFormatter:function(){var g=\nthis.axis,r=this.value,b=g.chart.time,d=g.categories,c=this.dateTimeLabelFormat,m=u.lang,k=m.numericSymbols,m=m.numericSymbolMagnitude||1E3,h=k&&k.length,l,q=g.options.labels.format,g=g.isLog?Math.abs(r):g.tickInterval;if(q)l=p(q,this,b);else if(d)l=r;else if(c)l=b.dateFormat(c,r);else if(h&&1E3<=g)for(;h--&&void 0===l;)b=Math.pow(m,h+1),g>=b&&0===10*r%b&&null!==k[h]&&0!==r&&(l=a.numberFormat(r/b,-1)+k[h]);void 0===l&&(l=1E4<=Math.abs(r)?a.numberFormat(r,-1):a.numberFormat(r,-1,void 0,\"\"));return l},\ngetSeriesExtremes:function(){var a=this,r=a.chart;h(this,\"getSeriesExtremes\",null,function(){a.hasVisibleSeries=!1;a.dataMin=a.dataMax=a.threshold=null;a.softThreshold=!a.isXAxis;a.buildStacks&&a.buildStacks();y(a.series,function(g){if(g.visible||!r.options.chart.ignoreHiddenSeries){var b=g.options,d=b.threshold,c;a.hasVisibleSeries=!0;a.positiveValuesOnly&&0>=d&&(d=null);if(a.isXAxis)b=g.xData,b.length&&(g=n(b),c=I(b),v(g)||g instanceof Date||(b=q(b,v),g=n(b),c=I(b)),b.length&&(a.dataMin=Math.min(D(a.dataMin,\nb[0],g),g),a.dataMax=Math.max(D(a.dataMax,b[0],c),c)));else if(g.getExtremes(),c=g.dataMax,g=g.dataMin,x(g)&&x(c)&&(a.dataMin=Math.min(D(a.dataMin,g),g),a.dataMax=Math.max(D(a.dataMax,c),c)),x(d)&&(a.threshold=d),!b.softThreshold||a.positiveValuesOnly)a.softThreshold=!1}})});h(this,\"afterGetSeriesExtremes\")},translate:function(a,r,b,d,c,m){var g=this.linkedParent||this,k=1,H=0,l=d?g.oldTransA:g.transA;d=d?g.oldMin:g.min;var h=g.minPixelPadding;c=(g.isOrdinal||g.isBroken||g.isLog&&c)&&g.lin2val;l||\n(l=g.transA);b&&(k*=-1,H=g.len);g.reversed&&(k*=-1,H-=k*(g.sector||g.len));r?(a=(a*k+H-h)/l+d,c&&(a=g.lin2val(a))):(c&&(a=g.val2lin(a)),a=v(d)?k*(a-d)*l+H+k*h+(v(m)?l*m:0):void 0);return a},toPixels:function(a,r){return this.translate(a,!1,!this.horiz,null,!0)+(r?0:this.pos)},toValue:function(a,r){return this.translate(a-(r?0:this.pos),!0,!this.horiz,null,!0)},getPlotLinePath:function(a,r,b,d,c){var g=this.chart,m=this.left,k=this.top,H,l,h=b&&g.oldChartHeight||g.chartHeight,q=b&&g.oldChartWidth||\ng.chartWidth,A;H=this.transB;var e=function(a,g,r){if(\"pass\"!==d&&ar)d?a=Math.min(Math.max(g,a),r):A=!0;return a};c=D(c,this.translate(a,null,null,b));c=Math.min(Math.max(-1E5,c),1E5);a=b=Math.round(c+H);H=l=Math.round(h-c-H);v(c)?this.horiz?(H=k,l=h-this.bottom,a=b=e(a,m,m+this.width)):(a=m,b=q-this.right,H=l=e(H,k,k+this.height)):(A=!0,d=!1);return A&&!d?null:g.renderer.crispLine([\"M\",a,H,\"L\",b,l],r||1)},getLinearTickPositions:function(a,r,b){var g,d=e(Math.floor(r/a)*a);b=e(Math.ceil(b/a)*\na);var c=[],m;e(d+a)===d&&(m=20);if(this.single)return[r];for(r=d;r<=b;){c.push(r);r=e(r+a,m);if(r===g)break;g=r}return c},getMinorTickInterval:function(){var a=this.options;return!0===a.minorTicks?D(a.minorTickInterval,\"auto\"):!1===a.minorTicks?null:a.minorTickInterval},getMinorTickPositions:function(){var a=this,r=a.options,b=a.tickPositions,d=a.minorTickInterval,c=[],m=a.pointRangePadding||0,k=a.min-m,m=a.max+m,l=m-k;if(l&&l/d=this.minRange,v=this.minRange,d=(v-b+r)/2,d=[r-d,D(a.min,r-d)],c&&(d[2]=this.isLog?this.log2lin(this.dataMin):this.dataMin),r=I(d),b=[r+v,D(a.max,r+v)],c&&(b[2]=this.isLog?this.log2lin(this.dataMax):this.dataMax),b=n(b),b-r=E?(w=E,f=0):b.dataMax<=E&&(t=E,p=0)),b.min=D(u,w,b.dataMin),b.max=D(n,t,b.dataMax));m&&(b.positiveValuesOnly&&!g&&0>=Math.min(b.min,D(b.dataMin,b.min))&&a.error(10,1),b.min=e(b.log2lin(b.min),15),b.max=e(b.log2lin(b.max),15));b.range&&x(b.max)&&(b.userMin=b.min=u=Math.max(b.dataMin,b.minFromRange()),b.userMax=n=b.max,b.range=null);h(b,\"foundExtremes\");b.beforePadding&&b.beforePadding();\nb.adjustForMinRange();!(J||b.axisPointRange||b.usePercentage||A)&&x(b.min)&&x(b.max)&&(d=b.max-b.min)&&(!x(u)&&f&&(b.min-=d*f),!x(n)&&p&&(b.max+=d*p));v(c.softMin)&&!v(b.userMin)&&(b.min=Math.min(b.min,c.softMin));v(c.softMax)&&!v(b.userMax)&&(b.max=Math.max(b.max,c.softMax));v(c.floor)&&(b.min=Math.max(b.min,c.floor));v(c.ceiling)&&(b.max=Math.min(b.max,c.ceiling));N&&x(b.dataMin)&&(E=E||0,!x(u)&&b.min=E?b.min=E:!x(n)&&b.max>E&&b.dataMax<=E&&(b.max=E));b.tickInterval=b.min===b.max||\nvoid 0===b.min||void 0===b.max?1:A&&!G&&B===b.linkedParent.options.tickPixelInterval?G=b.linkedParent.tickInterval:D(G,this.tickAmount?(b.max-b.min)/Math.max(this.tickAmount-1,1):void 0,J?1:(b.max-b.min)*B/Math.max(b.len,B));q&&!g&&y(b.series,function(a){a.processData(b.min!==b.oldMin||b.max!==b.oldMax)});b.setAxisTranslation(!0);b.beforeSetTickPositions&&b.beforeSetTickPositions();b.postProcessTickInterval&&(b.tickInterval=b.postProcessTickInterval(b.tickInterval));b.pointRange&&!G&&(b.tickInterval=\nMath.max(b.pointRange,b.tickInterval));g=D(c.minTickInterval,b.isDatetimeAxis&&b.closestPointRange);!G&&b.tickIntervalb.tickInterval&&1E3b.max)),!!this.tickAmount));this.tickAmount||(b.tickInterval=b.unsquish());this.setTickPositions()},setTickPositions:function(){var g=this.options,b,d=g.tickPositions;b=this.getMinorTickInterval();var c=g.tickPositioner,m=\ng.startOnTick,k=g.endOnTick;this.tickmarkOffset=this.categories&&\"between\"===g.tickmarkPlacement&&1===this.tickInterval?.5:0;this.minorTickInterval=\"auto\"===b&&this.tickInterval?this.tickInterval/5:b;this.single=this.min===this.max&&x(this.min)&&!this.tickAmount&&(parseInt(this.min,10)===this.min||!1!==g.allowDecimals);this.tickPositions=b=d&&d.slice();!b&&(!this.ordinalPositions&&(this.max-this.min)/this.tickInterval>Math.max(2*this.len,200)?(b=[this.min,this.max],a.error(19)):b=this.isDatetimeAxis?\nthis.getTimeTicks(this.normalizeTimeTickInterval(this.tickInterval,g.units),this.min,this.max,g.startOfWeek,this.ordinalPositions,this.closestPointRange,!0):this.isLog?this.getLogTickPositions(this.tickInterval,this.min,this.max):this.getLinearTickPositions(this.tickInterval,this.min,this.max),b.length>this.len&&(b=[b[0],b.pop()],b[0]===b[1]&&(b.length=1)),this.tickPositions=b,c&&(c=c.apply(this,[this.min,this.max])))&&(this.tickPositions=b=c);this.paddedTicks=b.slice(0);this.trimTicks(b,m,k);this.isLinked||\n(this.single&&2>b.length&&(this.min-=.5,this.max+=.5),d||c||this.adjustTickAmount());h(this,\"afterSetTickPositions\")},trimTicks:function(a,b,d){var g=a[0],c=a[a.length-1],m=this.minPointOffset||0;if(!this.isLinked){if(b&&-Infinity!==g)this.min=g;else for(;this.min-m>a[0];)a.shift();if(d)this.max=c;else for(;this.max+mb&&(this.finalTickAmt=b,b=5);this.tickAmount=\nb},adjustTickAmount:function(){var a=this.tickInterval,b=this.tickPositions,d=this.tickAmount,c=this.finalTickAmt,m=b&&b.length,k=D(this.threshold,this.softThreshold?0:null);if(this.hasData()){if(md&&(this.tickInterval*=2,this.setTickPositions());if(x(c)){for(a=d=b.length;a--;)(3===c&&1===a%2||2>=c&&0c&&(a=c)),x(d)&&(bc&&(b=c))),this.displayBtn=void 0!==a||void 0!==b,this.setExtremes(a,b,!1,void 0,{trigger:\"zoom\"});return!0},setAxisSize:function(){var b=this.chart,d=this.options,c=d.offsets||[0,0,0,0],m=this.horiz,k=this.width=Math.round(a.relativeLength(D(d.width,b.plotWidth-c[3]+c[1]),b.plotWidth)),l=this.height=Math.round(a.relativeLength(D(d.height,b.plotHeight-c[0]+c[2]),b.plotHeight)),h=this.top=Math.round(a.relativeLength(D(d.top,\nb.plotTop+c[0]),b.plotHeight,b.plotTop)),d=this.left=Math.round(a.relativeLength(D(d.left,b.plotLeft+c[3]),b.plotWidth,b.plotLeft));this.bottom=b.chartHeight-l-h;this.right=b.chartWidth-k-d;this.len=Math.max(m?k:l,0);this.pos=m?d:h},getExtremes:function(){var a=this.isLog;return{min:a?e(this.lin2log(this.min)):this.min,max:a?e(this.lin2log(this.max)):this.max,dataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}},getThreshold:function(a){var b=this.isLog,g=b?this.lin2log(this.min):\nthis.min,b=b?this.lin2log(this.max):this.max;null===a||-Infinity===a?a=g:Infinity===a?a=b:g>a?a=g:ba?\"right\":195a?\"left\":\"center\"},tickSize:function(a){var b=this.options,g=b[a+\"Length\"],d=D(b[a+\"Width\"],\"tick\"===a&&this.isXAxis?1:0);if(d&&g)return\"inside\"===b[a+\"Position\"]&&(g=-g),[g,d]},labelMetrics:function(){var a=this.tickPositions&&this.tickPositions[0]||0;return this.chart.renderer.fontMetrics(this.options.labels.style&&\nthis.options.labels.style.fontSize,this.ticks[a]&&this.ticks[a].label)},unsquish:function(){var a=this.options.labels,b=this.horiz,d=this.tickInterval,c=d,m=this.len/(((this.categories?1:0)+this.max-this.min)/d),k,l=a.rotation,h=this.labelMetrics(),q,v=Number.MAX_VALUE,A,p=function(a){a/=m||1;a=1=a)q=p(Math.abs(h.h/Math.sin(t*a))),b=\nq+Math.abs(a/360),b(d.step||0)&&!d.rotation&&(this.staggerLines||1)*this.len/c||!g&&(d.style&&parseInt(d.style.width,10)||m&&m-b.spacing[3]||.33*b.chartWidth)},renderUnsquish:function(){var a=this.chart,b=a.renderer,d=this.tickPositions,\nc=this.ticks,m=this.options.labels,k=m&&m.style||{},l=this.horiz,h=this.getSlotWidth(),q=Math.max(1,Math.round(h-2*(m.padding||5))),v={},A=this.labelMetrics(),e=m.style&&m.style.textOverflow,p,f,G=0,B;J(m.rotation)||(v.rotation=m.rotation||0);y(d,function(a){(a=c[a])&&a.label&&a.label.textPxLength>G&&(G=a.label.textPxLength)});this.maxLabelLength=G;if(this.autoRotation)G>q&&G>A.h?v.rotation=this.labelRotation:this.labelRotation=0;else if(h&&(p=q,!e))for(f=\"clip\",q=d.length;!l&&q--;)if(B=d[q],B=c[B].label)B.styles&&\n\"ellipsis\"===B.styles.textOverflow?B.css({textOverflow:\"clip\"}):B.textPxLength>h&&B.css({width:h+\"px\"}),B.getBBox().height>this.len/d.length-(A.h-A.f)&&(B.specificTextOverflow=\"ellipsis\");v.rotation&&(p=G>.5*a.chartHeight?.33*a.chartHeight:G,e||(f=\"ellipsis\"));if(this.labelAlign=m.align||this.autoLabelAlign(this.labelRotation))v.align=this.labelAlign;y(d,function(a){var b=(a=c[a])&&a.label,g=k.width,d={};b&&(b.attr(v),a.shortenLabel?a.shortenLabel():p&&!g&&\"nowrap\"!==k.whiteSpace&&(p=this.min&&a<=this.max)g[a]||(g[a]=new N(this,a)),c&&g[a].isNew&&g[a].render(b,!0,-1),g[a].render(b)},render:function(){var b=this,d=b.chart,c=b.options,m=b.isLog,k=b.isLinked,l=b.tickPositions,q=b.axisTitle,e=b.ticks,p=b.minorTicks,f=b.alternateBands,G=c.stackLabels,J=c.alternateGridColor,E=b.tickmarkOffset,D=b.axisLine,t=b.showAxis,w=F(d.renderer.globalAnimation),u,n;b.labelEdge.length=\n0;b.overlap=!1;y([e,p,f],function(a){B(a,function(a){a.isActive=!1})});if(b.hasData()||k)b.minorTickInterval&&!b.categories&&y(b.getMinorTickPositions(),function(a){b.renderMinorTick(a)}),l.length&&(y(l,function(a,d){b.renderTick(a,d)}),E&&(0===b.min||b.single)&&(e[-1]||(e[-1]=new N(b,-1,null,!0)),e[-1].render(-1))),J&&y(l,function(c,g){n=void 0!==l[g+1]?l[g+1]+E:b.max-E;0===g%2&&cu&&(!t||q<=x)&&void 0!==q&&c.push(q),q>x&&(d=!0),q=k;else u=this.lin2log(u),x=this.lin2log(x),a=t?this.getMinorTickInterval():e.tickInterval,a=f(\"auto\"===a?null:a,this._minorAutoInterval,e.tickPixelInterval/(t?5:1)*(x-u)/((t?y/this.tickPositions.length:y)||1)),a=n(a,null,F(a)),c=I(this.getLinearTickPositions(a,u,x),this.log2lin),t||(this._minorAutoInterval=a/5);t||(this.tickInterval=\na);return c};C.prototype.log2lin=function(a){return Math.log(a)/Math.LN10};C.prototype.lin2log=function(a){return Math.pow(10,a)}})(K);(function(a,C){var F=a.arrayMax,I=a.arrayMin,n=a.defined,f=a.destroyObjectProperties,e=a.each,u=a.erase,x=a.merge,t=a.pick;a.PlotLineOrBand=function(a,e){this.axis=a;e&&(this.options=e,this.id=e.id)};a.PlotLineOrBand.prototype={render:function(){a.fireEvent(this,\"render\");var e=this,f=e.axis,c=f.horiz,h=e.options,p=h.label,k=e.label,q=h.to,d=h.from,b=h.value,v=n(d)&&\nn(q),J=n(b),l=e.svgElem,u=!l,B=[],D=h.color,m=t(h.zIndex,0),G=h.events,B={\"class\":\"highcharts-plot-\"+(v?\"band \":\"line \")+(h.className||\"\")},A={},N=f.chart.renderer,E=v?\"bands\":\"lines\";f.isLog&&(d=f.log2lin(d),q=f.log2lin(q),b=f.log2lin(b));J?(B.stroke=D,B[\"stroke-width\"]=h.width,h.dashStyle&&(B.dashstyle=h.dashStyle)):v&&(D&&(B.fill=D),h.borderWidth&&(B.stroke=h.borderColor,B[\"stroke-width\"]=h.borderWidth));A.zIndex=m;E+=\"-\"+m;(D=f.plotLinesAndBandsGroups[E])||(f.plotLinesAndBandsGroups[E]=D=N.g(\"plot-\"+\nE).attr(A).add());u&&(e.svgElem=l=N.path().attr(B).add(D));if(J)B=f.getPlotLinePath(b,l.strokeWidth());else if(v)B=f.getPlotBandPath(d,q,h);else return;u&&B&&B.length?(l.attr({d:B}),G&&a.objectEach(G,function(a,b){l.on(b,function(a){G[b].apply(e,[a])})})):l&&(B?(l.show(),l.animate({d:B})):(l.hide(),k&&(e.label=k=k.destroy())));p&&n(p.text)&&B&&B.length&&0this.max&&e>this.max;if(h&&c)for(a&&(d=h.toString()===c.toString(),q=0),a=0;aA-b?A:A-b);else if(v)d[a]=Math.max(k,m+b+g>c?m:m+b);else return!1},N=function(a,b,c,g){var m;gb-q?m=!1:d[a]=gb-c/2?b-c-2:g-c/2;return m},E=function(a){var b=D;D=m;m=b;v=a},g=function(){!1!==A.apply(0,D)?!1!==N.apply(0,m)||v||(E(!0),g()):v?d.x=d.y=0:(E(!0),g())};(c.inverted||1p&&(b=!1);a=(c.series&&c.series.yAxis&&c.series.yAxis.pos)+(c.plotY||0);a-=B;c.isHeader&&(a=l?-f:q.plotHeight+f);k.push({target:a,rank:c.isHeader?1:0,size:m.tt.getBBox().height+1,point:c,x:p,tt:A})}});this.cleanSplit();a.distribute(k,q.plotHeight+f);F(k,function(a){var c=a.point,d=c.series;a.tt.attr({visibility:void 0===a.pos?\"hidden\":\"inherit\",x:b||c.isHeader?a.x:c.plotX+q.plotLeft+x(v.distance,16),y:a.pos+B,anchorX:c.isHeader?\nc.plotX+q.plotLeft:c.plotX+d.xAxis.pos,anchorY:c.isHeader?q.plotTop+q.plotHeight/2:c.plotY+d.yAxis.pos})})},updatePosition:function(a){var c=this.chart,e=this.getLabel(),k=(this.options.positioner||this.getPosition).call(this,e.width,e.height,a),q=a.plotX+c.plotLeft;a=a.plotY+c.plotTop;var d;this.outside&&(d=(this.options.borderWidth||0)+2*this.distance,this.renderer.setSize(e.width+d,e.height+d,!1),q+=c.pointer.chartPosition.left-k.x,a+=c.pointer.chartPosition.top-k.y);this.move(Math.round(k.x),\nMath.round(k.y||0),q,a)},getDateFormat:function(a,h,e,k){var c=this.chart.time,d=c.dateFormat(\"%m-%d %H:%M:%S.%L\",h),b,v,f={millisecond:15,second:12,minute:9,hour:6,day:3},l=\"millisecond\";for(v in y){if(a===y.week&&+c.dateFormat(\"%w\",h)===e&&\"00:00:00.000\"===d.substr(6)){v=\"week\";break}if(y[v]>a){v=l;break}if(f[v]&&d.substr(f[v])!==\"01-01 00:00:00.000\".substr(f[v]))break;\"week\"!==v&&(l=v)}v&&(b=c.resolveDTLFormat(k[v]).main);return b},getXDateFormat:function(a,h,e){h=h.dateTimeLabelFormats;var c=\ne&&e.closestPointRange;return(c?this.getDateFormat(c,a.x,e.options.startOfWeek,h):h.day)||h.year},tooltipFooterHeaderFormatter:function(a,h){h=h?\"footer\":\"header\";var c=a.series,k=c.tooltipOptions,e=k.xDateFormat,d=c.xAxis,b=d&&\"datetime\"===d.options.type&&f(a.key),v=k[h+\"Format\"];b&&!e&&(e=this.getXDateFormat(a,k,d));b&&e&&F(a.point&&a.point.tooltipDateKeys||[\"key\"],function(a){v=v.replace(\"{point.\"+a+\"}\",\"{point.\"+a+\":\"+e+\"}\")});return n(v,{point:a,series:c},this.chart.time)},bodyFormatter:function(a){return e(a,\nfunction(a){var c=a.series.tooltipOptions;return(c[(a.point.formatPrefix||\"point\")+\"Formatter\"]||a.point.tooltipFormatter).call(a.point,c[(a.point.formatPrefix||\"point\")+\"Format\"])})}}})(K);(function(a){var C=a.addEvent,F=a.attr,I=a.charts,n=a.color,f=a.css,e=a.defined,u=a.each,x=a.extend,t=a.find,w=a.fireEvent,y=a.isNumber,c=a.isObject,h=a.offset,p=a.pick,k=a.splat,q=a.Tooltip;a.Pointer=function(a,b){this.init(a,b)};a.Pointer.prototype={init:function(a,b){this.options=b;this.chart=a;this.runChartClick=\nb.chart.events&&!!b.chart.events.click;this.pinchDown=[];this.lastValidTouch={};q&&(a.tooltip=new q(a,b.tooltip),this.followTouchMove=p(b.tooltip.followTouchMove,!0));this.setDOMEvents()},zoomOption:function(a){var b=this.chart,c=b.options.chart,d=c.zoomType||\"\",b=b.inverted;/touch/.test(a.type)&&(d=p(c.pinchType,d));this.zoomX=a=/x/.test(d);this.zoomY=d=/y/.test(d);this.zoomHor=a&&!b||d&&b;this.zoomVert=d&&!b||a&&b;this.hasZoom=a||d},normalize:function(a,b){var c;c=a.touches?a.touches.length?a.touches.item(0):\na.changedTouches[0]:a;b||(this.chartPosition=b=h(this.chart.container));return x(a,{chartX:Math.round(c.pageX-b.left),chartY:Math.round(c.pageY-b.top)})},getCoordinates:function(a){var b={xAxis:[],yAxis:[]};u(this.chart.axes,function(c){b[c.isXAxis?\"xAxis\":\"yAxis\"].push({axis:c,value:c.toValue(a[c.horiz?\"chartX\":\"chartY\"])})});return b},findNearestKDPoint:function(a,b,k){var d;u(a,function(a){var l=!(a.noSharedTooltip&&b)&&0>a.options.findNearestPointBy.indexOf(\"y\");a=a.searchPoint(k,l);if((l=c(a,\n!0))&&!(l=!c(d,!0)))var l=d.distX-a.distX,e=d.dist-a.dist,h=(a.series.group&&a.series.group.zIndex)-(d.series.group&&d.series.group.zIndex),l=0<(0!==l&&b?l:0!==e?e:0!==h?h:d.series.index>a.series.index?-1:1);l&&(d=a)});return d},getPointFromEvent:function(a){a=a.target;for(var b;a&&!b;)b=a.point,a=a.parentNode;return b},getChartCoordinatesFromPoint:function(a,b){var c=a.series,d=c.xAxis,c=c.yAxis,k=p(a.clientX,a.plotX),e=a.shapeArgs;if(d&&c)return b?{chartX:d.len+d.pos-k,chartY:c.len+c.pos-a.plotY}:\n{chartX:k+d.pos,chartY:a.plotY+c.pos};if(e&&e.x&&e.y)return{chartX:e.x,chartY:e.y}},getHoverData:function(d,b,k,e,l,h,q){var v,m=[],f=q&&q.isBoosting;e=!(!e||!d);q=b&&!b.stickyTracking?[b]:a.grep(k,function(a){return a.visible&&!(!l&&a.directTouch)&&p(a.options.enableMouseTracking,!0)&&a.stickyTracking});b=(v=e?d:this.findNearestKDPoint(q,l,h))&&v.series;v&&(l&&!b.noSharedTooltip?(q=a.grep(k,function(a){return a.visible&&!(!l&&a.directTouch)&&p(a.options.enableMouseTracking,!0)&&!a.noSharedTooltip}),\nu(q,function(a){var b=t(a.points,function(a){return a.x===v.x&&!a.isNull});c(b)&&(f&&(b=a.getPoint(b)),m.push(b))})):m.push(v));return{hoverPoint:v,hoverSeries:b,hoverPoints:m}},runPointActions:function(c,b){var d=this.chart,k=d.tooltip&&d.tooltip.options.enabled?d.tooltip:void 0,l=k?k.shared:!1,e=b||d.hoverPoint,h=e&&e.series||d.hoverSeries,h=this.getHoverData(e,h,d.series,\"touchmove\"!==c.type&&(!!b||h&&h.directTouch&&this.isDirectTouch),l,c,{isBoosting:d.isBoosting}),q,e=h.hoverPoint;q=h.hoverPoints;\nb=(h=h.hoverSeries)&&h.tooltipOptions.followPointer;l=l&&h&&!h.noSharedTooltip;if(e&&(e!==d.hoverPoint||k&&k.isHidden)){u(d.hoverPoints||[],function(b){-1===a.inArray(b,q)&&b.setState()});u(q||[],function(a){a.setState(\"hover\")});if(d.hoverSeries!==h)h.onMouseOver();d.hoverPoint&&d.hoverPoint.firePointEvent(\"mouseOut\");if(!e.series)return;e.firePointEvent(\"mouseOver\");d.hoverPoints=q;d.hoverPoint=e;k&&k.refresh(l?q:e,c)}else b&&k&&!k.isHidden&&(e=k.getAnchor([{}],c),k.updatePosition({plotX:e[0],plotY:e[1]}));\nthis.unDocMouseMove||(this.unDocMouseMove=C(d.container.ownerDocument,\"mousemove\",function(b){var c=I[a.hoverChartIndex];if(c)c.pointer.onDocumentMouseMove(b)}));u(d.axes,function(b){var d=p(b.crosshair.snap,!0),m=d?a.find(q,function(a){return a.series[b.coll]===b}):void 0;m||!d?b.drawCrosshair(c,m):b.hideCrosshair()})},reset:function(a,b){var c=this.chart,d=c.hoverSeries,l=c.hoverPoint,e=c.hoverPoints,h=c.tooltip,q=h&&h.shared?e:l;a&&q&&u(k(q),function(b){b.series.isCartesian&&void 0===b.plotX&&\n(a=!1)});if(a)h&&q&&(h.refresh(q),h.shared&&e?u(e,function(a){a.setState(a.state,!0);a.series.isCartesian&&(a.series.xAxis.crosshair&&a.series.xAxis.drawCrosshair(null,a),a.series.yAxis.crosshair&&a.series.yAxis.drawCrosshair(null,a))}):l&&(l.setState(l.state,!0),u(c.axes,function(a){a.crosshair&&a.drawCrosshair(null,l)})));else{if(l)l.onMouseOut();e&&u(e,function(a){a.setState()});if(d)d.onMouseOut();h&&h.hide(b);this.unDocMouseMove&&(this.unDocMouseMove=this.unDocMouseMove());u(c.axes,function(a){a.hideCrosshair()});\nthis.hoverX=c.hoverPoints=c.hoverPoint=null}},scaleGroups:function(a,b){var c=this.chart,d;u(c.series,function(k){d=a||k.getPlotBox();k.xAxis&&k.xAxis.zoomEnabled&&k.group&&(k.group.attr(d),k.markerGroup&&(k.markerGroup.attr(d),k.markerGroup.clip(b?c.clipRect:null)),k.dataLabelsGroup&&k.dataLabelsGroup.attr(d))});c.clipRect.attr(b||c.clipBox)},dragStart:function(a){var b=this.chart;b.mouseIsDown=a.type;b.cancelClick=!1;b.mouseDownX=this.mouseDownX=a.chartX;b.mouseDownY=this.mouseDownY=a.chartY},drag:function(a){var b=\nthis.chart,c=b.options.chart,d=a.chartX,k=a.chartY,e=this.zoomHor,h=this.zoomVert,q=b.plotLeft,m=b.plotTop,f=b.plotWidth,A=b.plotHeight,p,E=this.selectionMarker,g=this.mouseDownX,r=this.mouseDownY,t=c.panKey&&a[c.panKey+\"Key\"];E&&E.touch||(dq+f&&(d=q+f),km+A&&(k=m+A),this.hasDragged=Math.sqrt(Math.pow(g-d,2)+Math.pow(r-k,2)),10m.max&&(e=m.max-l,r=!0);r?(N-=.8*(N-h[q][0]),G||(g-=.8*(g-h[q][1])),f()):h[q]=\n[N,g];D||(c[q]=u-t,c[v]=l);c=D?1/B:B;y[v]=l;y[q]=e;n[D?a?\"scaleY\":\"scaleX\":\"scale\"+d]=B;n[\"translate\"+d]=c*t+(N-c*A)},pinch:function(a){var u=this,t=u.chart,w=u.pinchDown,y=a.touches,c=y.length,h=u.lastValidTouch,p=u.hasZoom,k=u.selectionMarker,q={},d=1===c&&(u.inClass(a.target,\"highcharts-tracker\")&&t.runTrackerClick||u.runChartClick),b={};1c-6&&kp?this.maxItemWidth:a.itemWidth;b&&this.itemX-d+c>p&&(this.itemX=d,this.itemY+=l+this.lastLineHeight+e,this.lastLineHeight=0);this.lastItemY=l+this.itemY+e;this.lastLineHeight=Math.max(h,this.lastLineHeight);a._legendItemPos=[this.itemX,this.itemY];b?this.itemX+=c:(this.itemY+=l+h+e,this.lastLineHeight=h);this.offsetWidth=f||Math.max((b?this.itemX-d-(a.checkbox?0:k):c)+d,this.offsetWidth)},getAllItems:function(){var a=[];f(this.chart.series,function(c){var d=\nc&&c.options;c&&w(d.showInLegend,n(d.linkedTo)?!1:void 0,!0)&&(a=a.concat(c.legendItems||(\"point\"===d.legendType?c.data:c)))});e(this,\"afterGetAllItems\",{allItems:a});return a},getAlignment:function(){var a=this.options;return this.proximate?a.align.charAt(0)+\"tv\":a.floating?\"\":a.align.charAt(0)+a.verticalAlign.charAt(0)+a.layout.charAt(0)},adjustMargins:function(a,c){var d=this.chart,b=this.options,h=this.getAlignment();h&&f([/(lth|ct|rth)/,/(rtv|rm|rbv)/,/(rbh|cb|lbh)/,/(lbv|lm|ltv)/],function(e,\nl){e.test(h)&&!n(a[l])&&(d[x[l]]=Math.max(d[x[l]],d.legend[(l+1)%2?\"legendHeight\":\"legendWidth\"]+[1,-1,-1,1][l]*b[l%2?\"x\":\"y\"]+w(b.margin,12)+c[l]+(0===l&&void 0!==d.options.title.margin?d.titleOffset+d.options.title.margin:0)))})},proximatePositions:function(){var c=this.chart,h=[],d=\"left\"===this.options.align;f(this.allItems,function(b){var e,k;e=d;b.xAxis&&b.points&&(b.xAxis.options.reversed&&(e=!e),e=a.find(e?b.points:b.points.slice(0).reverse(),function(b){return a.isNumber(b.plotY)}),k=b.legendGroup.getBBox().height,\nh.push({target:b.visible?(e?e.plotY:b.xAxis.height)-.3*k:c.plotHeight,size:k,item:b}))},this);a.distribute(h,c.plotHeight);f(h,function(a){a.item._legendItemPos[1]=c.plotTop-c.spacing[0]+a.pos})},render:function(){var a=this.chart,h=a.renderer,d=this.group,b,e,p,l=this.box,n=this.options,B=this.padding;this.itemX=B;this.itemY=this.initialItemY;this.lastItemY=this.offsetWidth=0;d||(this.group=d=h.g(\"legend\").attr({zIndex:7}).add(),this.contentGroup=h.g().attr({zIndex:1}).add(d),this.scrollGroup=h.g().add(this.contentGroup));\nthis.renderTitle();b=this.getAllItems();c(b,function(a,b){return(a.options&&a.options.legendIndex||0)-(b.options&&b.options.legendIndex||0)});n.reversed&&b.reverse();this.allItems=b;this.display=e=!!b.length;this.itemHeight=this.totalItemWidth=this.maxItemWidth=this.lastLineHeight=0;f(b,this.renderItem,this);f(b,this.layoutItem,this);b=(n.width||this.offsetWidth)+B;p=this.lastItemY+this.lastLineHeight+this.titleHeight;p=this.handleOverflow(p);p+=B;l||(this.box=l=h.rect().addClass(\"highcharts-legend-box\").attr({r:n.borderRadius}).add(d),\nl.isNew=!0);l.attr({stroke:n.borderColor,\"stroke-width\":n.borderWidth||0,fill:n.backgroundColor||\"none\"}).shadow(n.shadow);0d&&!1!==n.enabled?(this.clipHeight=k=Math.max(d-20-this.titleHeight-l,0),this.currentPage=w(this.currentPage,1),this.fullHeight=a,f(g,function(a,b){var c=a._legendItemPos[1],d=Math.round(a.legendItem.getBBox().height),m=t.length;if(!m||c-t[m-1]>k&&(E||c)!==t[m-1])t.push(E||c),m++;a.pageIx=m-1;E&&(g[b-1].pageIx=m-1);b===g.length-1&&c+d-t[m-1]>k&&(t.push(c),a.pageIx=m);c!==E&&(E=c)}),p||(p=c.clipRect=\nb.clipRect(0,l,9999,0),c.contentGroup.clip(p)),r(k),A||(this.nav=A=b.g().attr({zIndex:1}).add(this.group),this.up=b.symbol(\"triangle\",0,0,G,G).on(\"click\",function(){c.scroll(-1,m)}).add(A),this.pager=b.text(\"\",15,10).addClass(\"highcharts-legend-navigation\").css(n.style).add(A),this.down=b.symbol(\"triangle-down\",0,0,G,G).on(\"click\",function(){c.scroll(1,m)}).add(A)),c.scroll(0),a=d):A&&(r(),this.nav=A.destroy(),this.scrollGroup.attr({translateY:1}),this.clipHeight=0);return a},scroll:function(a,c){var d=\nthis.pages,b=d.length;a=this.currentPage+a;var h=this.clipHeight,e=this.options.navigation,l=this.pager,f=this.padding;a>b&&(a=b);0b&&(h=typeof c[0],\"string\"===h?e.name=c[0]:\"number\"===h&&(e.x=c[0]),v++);n=f.value;)f=c[++e];this.nonZonedColor||(this.nonZonedColor=this.color);this.color=f&&f.color&&!this.options.color?f.color:this.nonZonedColor;return f},\ndestroy:function(){var a=this.series.chart,e=a.hoverPoints,f;a.pointCount--;e&&(this.setState(),n(e,this),e.length||(a.hoverPoints=null));if(this===a.hoverPoint)this.onMouseOut();if(this.graphic||this.dataLabel||this.dataLabels)c(this),this.destroyElements();this.legendItem&&a.legend.destroyItem(this);for(f in this)this[f]=null},destroyElements:function(){for(var a=[\"graphic\",\"dataLabel\",\"dataLabelUpper\",\"connector\",\"shadowGroup\"],c,e=6;e--;)c=a[e],this[c]&&(this[c]=this[c].destroy());this.dataLabels&&\n(F(this.dataLabels,function(a){a.element&&a.destroy()}),delete this.dataLabels);this.connectors&&(F(this.connectors,function(a){a.element&&a.destroy()}),delete this.connectors)},getLabelConfig:function(){return{x:this.category,y:this.y,color:this.color,colorIndex:this.colorIndex,key:this.name||this.category,series:this.series,point:this,percentage:this.percentage,total:this.total||this.stackTotal}},tooltipFormatter:function(a){var c=this.series,h=c.tooltipOptions,f=t(h.valueDecimals,\"\"),d=h.valuePrefix||\n\"\",b=h.valueSuffix||\"\";F(c.pointArrayMap||[\"y\"],function(c){c=\"{point.\"+c;if(d||b)a=a.replace(RegExp(c+\"}\",\"g\"),d+c+\"}\"+b);a=a.replace(RegExp(c+\"}\",\"g\"),c+\":,.\"+f+\"f}\")});return e(a,{point:this,series:this.series},c.chart.time)},firePointEvent:function(a,c,e){var h=this,d=this.series.options;(d.point.events[a]||h.options&&h.options.events&&h.options.events[a])&&this.importEvents();\"click\"===a&&d.allowPointSelect&&(e=function(a){h.select&&h.select(null,a.ctrlKey||a.metaKey||a.shiftKey)});f(this,a,\nc,e)},visible:!0}})(K);(function(a){var C=a.addEvent,F=a.animObject,I=a.arrayMax,n=a.arrayMin,f=a.correctFloat,e=a.defaultOptions,u=a.defaultPlotOptions,x=a.defined,t=a.each,w=a.erase,y=a.extend,c=a.fireEvent,h=a.grep,p=a.isArray,k=a.isNumber,q=a.isString,d=a.merge,b=a.objectEach,v=a.pick,J=a.removeEvent,l=a.splat,L=a.SVGElement,B=a.syncTimeout,D=a.win;a.Series=a.seriesType(\"line\",null,{lineWidth:2,allowPointSelect:!1,showCheckbox:!1,animation:{duration:1E3},events:{},marker:{lineWidth:0,lineColor:\"#ffffff\",\nenabledThreshold:2,radius:4,states:{normal:{animation:!0},hover:{animation:{duration:50},enabled:!0,radiusPlus:2,lineWidthPlus:1},select:{fillColor:\"#cccccc\",lineColor:\"#000000\",lineWidth:2}}},point:{events:{}},dataLabels:{align:\"center\",formatter:function(){return null===this.y?\"\":a.numberFormat(this.y,-1)},style:{fontSize:\"11px\",fontWeight:\"bold\",color:\"contrast\",textOutline:\"1px contrast\"},verticalAlign:\"bottom\",x:0,y:0,padding:5},cropThreshold:300,pointRange:0,softThreshold:!0,states:{normal:{animation:!0},\nhover:{animation:{duration:50},lineWidthPlus:1,marker:{},halo:{size:10,opacity:.25}},select:{}},stickyTracking:!0,turboThreshold:1E3,findNearestPointBy:\"x\"},{isCartesian:!0,pointClass:a.Point,sorted:!0,requireSorting:!0,directTouch:!1,axisTypes:[\"xAxis\",\"yAxis\"],colorCounter:0,parallelArrays:[\"x\",\"y\"],coll:\"series\",init:function(a,d){var m=this,e,h=a.series,g;m.chart=a;m.options=d=m.setOptions(d);m.linkedSeries=[];m.bindAxes();y(m,{name:d.name,state:\"\",visible:!1!==d.visible,selected:!0===d.selected});\ne=d.events;b(e,function(a,b){C(m,b,a)});if(e&&e.click||d.point&&d.point.events&&d.point.events.click||d.allowPointSelect)a.runTrackerClick=!0;m.getColor();m.getSymbol();t(m.parallelArrays,function(a){m[a+\"Data\"]=[]});m.setData(d.data,!1);m.isCartesian&&(a.hasCartesianSeries=!0);h.length&&(g=h[h.length-1]);m._i=v(g&&g._i,-1)+1;a.orderSeries(this.insert(h));c(this,\"afterInit\")},insert:function(a){var b=this.options.index,c;if(k(b)){for(c=a.length;c--;)if(b>=v(a[c].options.index,a[c]._i)){a.splice(c+\n1,0,this);break}-1===c&&a.unshift(this);c+=1}else a.push(this);return v(c,a.length-1)},bindAxes:function(){var b=this,c=b.options,d=b.chart,e;t(b.axisTypes||[],function(m){t(d[m],function(a){e=a.options;if(c[m]===e.index||void 0!==c[m]&&c[m]===e.id||void 0===c[m]&&0===e.index)b.insert(a.series),b[m]=a,a.isDirty=!0});b[m]||b.optionalAxis===m||a.error(18,!0)})},updateParallelArrays:function(a,b){var c=a.series,d=arguments,m=k(b)?function(g){var d=\"y\"===g&&c.toYData?c.toYData(a):a[g];c[g+\"Data\"][b]=\nd}:function(a){Array.prototype[b].apply(c[a+\"Data\"],Array.prototype.slice.call(d,2))};t(c.parallelArrays,m)},autoIncrement:function(){var a=this.options,b=this.xIncrement,c,d=a.pointIntervalUnit,e=this.chart.time,b=v(b,a.pointStart,0);this.pointInterval=c=v(this.pointInterval,a.pointInterval,1);d&&(a=new e.Date(b),\"day\"===d?e.set(\"Date\",a,e.get(\"Date\",a)+c):\"month\"===d?e.set(\"Month\",a,e.get(\"Month\",a)+c):\"year\"===d&&e.set(\"FullYear\",a,e.get(\"FullYear\",a)+c),c=a.getTime()-b);this.xIncrement=b+c;return b},\nsetOptions:function(a){var b=this.chart,m=b.options,h=m.plotOptions,f=(b.userOptions||{}).plotOptions||{},g=h[this.type];this.userOptions=a;b=d(g,h.series,a);this.tooltipOptions=d(e.tooltip,e.plotOptions.series&&e.plotOptions.series.tooltip,e.plotOptions[this.type].tooltip,m.tooltip.userOptions,h.series&&h.series.tooltip,h[this.type].tooltip,a.tooltip);this.stickyTracking=v(a.stickyTracking,f[this.type]&&f[this.type].stickyTracking,f.series&&f.series.stickyTracking,this.tooltipOptions.shared&&!this.noSharedTooltip?\n!0:b.stickyTracking);null===g.marker&&delete b.marker;this.zoneAxis=b.zoneAxis;a=this.zones=(b.zones||[]).slice();!b.negativeColor&&!b.negativeFillColor||b.zones||a.push({value:b[this.zoneAxis+\"Threshold\"]||b.threshold||0,className:\"highcharts-negative\",color:b.negativeColor,fillColor:b.negativeFillColor});a.length&&x(a[a.length-1].value)&&a.push({color:this.color,fillColor:this.fillColor});c(this,\"afterSetOptions\",{options:b});return b},getName:function(){return this.name||\"Series \"+(this.index+\n1)},getCyclic:function(a,b,c){var d,e=this.chart,g=this.userOptions,m=a+\"Index\",h=a+\"Counter\",f=c?c.length:v(e.options.chart[a+\"Count\"],e[a+\"Count\"]);b||(d=v(g[m],g[\"_\"+m]),x(d)||(e.series.length||(e[h]=0),g[\"_\"+m]=d=e[h]%f,e[h]+=1),c&&(b=c[d]));void 0!==d&&(this[m]=d);this[a]=b},getColor:function(){this.options.colorByPoint?this.options.color=null:this.getCyclic(\"color\",this.options.color||u[this.type].color,this.chart.options.colors)},getSymbol:function(){this.getCyclic(\"symbol\",this.options.marker.symbol,\nthis.chart.options.symbols)},drawLegendSymbol:a.LegendSymbolMixin.drawLineMarker,updateData:function(b){var c=this.options,d=this.points,e=[],m,g,h,f=this.requireSorting;t(b,function(b){var g;g=a.defined(b)&&this.pointClass.prototype.optionsToObject.call({series:this},b).x;k(g)&&(g=a.inArray(g,this.xData,h),-1===g||d[g].touched?e.push(b):b!==c.data[g]?(d[g].update(b,!1,null,!1),d[g].touched=!0,f&&(h=g+1)):d[g]&&(d[g].touched=!0),m=!0)},this);if(m)for(b=d.length;b--;)g=d[b],g.touched||g.remove(!1),\ng.touched=!1;else if(b.length===d.length)t(b,function(a,b){d[b].update&&a!==c.data[b]&&d[b].update(a,!1,null,!1)});else return!1;t(e,function(a){this.addPoint(a,!1)},this);return!0},setData:function(b,c,d,e){var m=this,g=m.points,h=g&&g.length||0,f,l=m.options,A=m.chart,G=null,n=m.xAxis,B=l.turboThreshold,u=this.xData,D=this.yData,y=(f=m.pointArrayMap)&&f.length,N;b=b||[];f=b.length;c=v(c,!0);!1!==e&&f&&h&&!m.cropped&&!m.hasGroupedData&&m.visible&&!m.isSeriesBoosting&&(N=this.updateData(b));if(!N){m.xIncrement=\nnull;m.colorCounter=0;t(this.parallelArrays,function(a){m[a+\"Data\"].length=0});if(B&&f>B){for(d=0;null===G&&dl||this.forceCrop)&&(c[e-1]t?(c=[],d=[]):this.yData&&(c[0]t)&&(m=this.cropData(this.xData,this.yData,B,t),c=m.xData,d=m.yData,m=m.start,g=!0));for(l=c.length||1;--l;)e=v?k(c[l])-k(c[l-1]):c[l]-c[l-1],0e&&n&&(a.error(15),n=!1);this.cropped=g;this.cropStart=m;this.processedXData=c;this.processedYData=d;this.closestPointRange=h},cropData:function(a,\nb,c,d,e){var g=a.length,m=0,h=g,f;e=v(e,this.cropShoulder,1);for(f=0;f=c){m=Math.max(0,f-e);break}for(c=f;cd){h=c+e;break}return{xData:a.slice(m,h),yData:b.slice(m,h),start:m,end:h}},generatePoints:function(){var a=this.options,b=a.data,c=this.data,d,e=this.processedXData,g=this.processedYData,h=this.pointClass,f=e.length,k=this.cropStart||0,p,q=this.hasGroupedData,a=a.keys,v,n=[],B;c||q||(c=[],c.length=b.length,c=this.data=c);a&&q&&(this.options.keys=!1);for(B=0;B=m&&(c[B-q]||l)<=h,f&&l)if(f=v.length)for(;f--;)\"number\"===typeof v[f]&&(e[g++]=v[f]);else e[g++]=v;this.dataMin=n(e);this.dataMax=I(e)},translate:function(){this.processedXData||this.processData();this.generatePoints();\nvar a=this.options,b=a.stacking,d=this.xAxis,e=d.categories,h=this.yAxis,g=this.points,l=g.length,p=!!this.modifyValue,q=a.pointPlacement,B=\"between\"===q||k(q),n=a.threshold,t=a.startFromThreshold?n:0,u,D,y,w,J=Number.MAX_VALUE;\"between\"===q&&(q=.5);k(q)&&(q*=v(a.pointRange||d.pointRange));for(a=0;a=F&&(L.isNull=!0);L.plotX=u=f(Math.min(Math.max(-1E5,d.translate(C,\n0,0,0,1,q,\"flags\"===this.type)),1E5));b&&this.visible&&!L.isNull&&I&&I[C]&&(w=this.getStackIndicator(w,C,this.index),K=I[C],F=K.points[w.key],D=F[0],F=F[1],D===t&&w.key===I[C].base&&(D=v(k(n)&&n,h.min)),h.positiveValuesOnly&&0>=D&&(D=null),L.total=L.stackTotal=K.total,L.percentage=K.total&&L.y/K.total*100,L.stackY=F,K.setOffset(this.pointXOffset||0,this.barW||0));L.yBottom=x(D)?Math.min(Math.max(-1E5,h.translate(D,0,1,0,1)),1E5):null;p&&(F=this.modifyValue(F,L));L.plotY=D=\"number\"===typeof F&&Infinity!==\nF?Math.min(Math.max(-1E5,h.translate(F,0,1,0,1)),1E5):void 0;L.isInside=void 0!==D&&0<=D&&D<=h.len&&0<=u&&u<=d.len;L.clientX=B?f(d.translate(C,0,0,0,1,q)):u;L.negative=L.y<(n||0);L.category=e&&void 0!==e[L.x]?e[L.x]:L.x;L.isNull||(void 0!==y&&(J=Math.min(J,Math.abs(u-y))),y=u);L.zone=this.zones.length&&L.getZone()}this.closestPointRangePx=J;c(this,\"afterTranslate\")},getValidPoints:function(a,b){var c=this.chart;return h(a||this.points||[],function(a){return b&&!c.isInsidePlot(a.plotX,a.plotY,c.inverted)?\n!1:!a.isNull})},setClip:function(a){var b=this.chart,c=this.options,d=b.renderer,e=b.inverted,g=this.clipBox,m=g||b.clipBox,h=this.sharedClipKey||[\"_sharedClip\",a&&a.duration,a&&a.easing,m.height,c.xAxis,c.yAxis].join(),f=b[h],l=b[h+\"m\"];f||(a&&(m.width=0,e&&(m.x=b.plotSizeX),b[h+\"m\"]=l=d.clipRect(e?b.plotSizeX+99:-99,e?-b.plotLeft:-b.plotTop,99,e?b.chartWidth:b.chartHeight)),b[h]=f=d.clipRect(m),f.count={length:0});a&&!f.count[this.index]&&(f.count[this.index]=!0,f.count.length+=1);!1!==c.clip&&\n(this.group.clip(a||g?f:b.clipRect),this.markerGroup.clip(l),this.sharedClipKey=h);a||(f.count[this.index]&&(delete f.count[this.index],--f.count.length),0===f.count.length&&h&&b[h]&&(g||(b[h]=b[h].destroy()),b[h+\"m\"]&&(b[h+\"m\"]=b[h+\"m\"].destroy())))},animate:function(a){var b=this.chart,c=F(this.options.animation),d;a?this.setClip(c):(d=this.sharedClipKey,(a=b[d])&&a.animate({width:b.plotSizeX,x:0},c),b[d+\"m\"]&&b[d+\"m\"].animate({width:b.plotSizeX+99,x:0},c),this.animate=null)},afterAnimate:function(){this.setClip();\nc(this,\"afterAnimate\");this.finishedAnimating=!0},drawPoints:function(){var a=this.points,b=this.chart,c,d,e,g,h=this.options.marker,f,l,k,p=this[this.specialGroup]||this.markerGroup,q,n=v(h.enabled,this.xAxis.isRadial?!0:null,this.closestPointRangePx>=h.enabledThreshold*h.radius);if(!1!==h.enabled||this._hasPointMarkers)for(c=0;cg&&b.shadow));h&&(h.startX=c.xMap,h.isArea=c.isArea)})},getZonesGraphs:function(a){t(this.zones,function(b,c){a.push([\"zone-graph-\"+c,\n\"highcharts-graph highcharts-zone-graph-\"+c+\" \"+(b.className||\"\"),b.color||this.color,b.dashStyle||this.options.dashStyle])},this);return a},applyZones:function(){var a=this,b=this.chart,c=b.renderer,d=this.zones,e,g,h=this.clips||[],f,l=this.graph,k=this.area,p=Math.max(b.chartWidth,b.chartHeight),q=this[(this.zoneAxis||\"y\")+\"Axis\"],n,B,u=b.inverted,D,y,w,x,J=!1;d.length&&(l||k)&&q&&void 0!==q.min&&(B=q.reversed,D=q.horiz,l&&!this.showLine&&l.hide(),k&&k.hide(),n=q.getExtremes(),t(d,function(d,m){e=\nB?D?b.plotWidth:0:D?0:q.toPixels(n.min);e=Math.min(Math.max(v(g,e),0),p);g=Math.min(Math.max(Math.round(q.toPixels(v(d.value,n.max),!0)),0),p);J&&(e=g=q.toPixels(n.max));y=Math.abs(e-g);w=Math.min(e,g);x=Math.max(e,g);q.isXAxis?(f={x:u?x:w,y:0,width:y,height:p},D||(f.x=b.plotHeight-f.x)):(f={x:0,y:u?x:w,width:p,height:y},D&&(f.y=b.plotWidth-f.y));u&&c.isVML&&(f=q.isXAxis?{x:0,y:B?w:x,height:f.width,width:b.chartWidth}:{x:f.y-b.plotLeft-b.spacingBox.x,y:0,width:f.height,height:b.chartHeight});h[m]?\nh[m].animate(f):(h[m]=c.clipRect(f),l&&a[\"zone-graph-\"+m].clip(h[m]),k&&a[\"zone-area-\"+m].clip(h[m]));J=d.value>n.max;a.resetZones&&0===g&&(g=void 0)}),this.clips=h)},invertGroups:function(a){function b(){t([\"group\",\"markerGroup\"],function(b){c[b]&&(d.renderer.isVML&&c[b].attr({width:c.yAxis.len,height:c.xAxis.len}),c[b].width=c.yAxis.len,c[b].height=c.xAxis.len,c[b].invert(a))})}var c=this,d=c.chart,e;c.xAxis&&(e=C(d,\"resize\",b),C(c,\"destroy\",e),b(a),c.invertGroups=b)},plotGroup:function(a,b,c,d,\ne){var g=this[a],h=!g;h&&(this[a]=g=this.chart.renderer.g().attr({zIndex:d||.1}).add(e));g.addClass(\"highcharts-\"+b+\" highcharts-series-\"+this.index+\" highcharts-\"+this.type+\"-series \"+(x(this.colorIndex)?\"highcharts-color-\"+this.colorIndex+\" \":\"\")+(this.options.className||\"\")+(g.hasClass(\"highcharts-tracker\")?\" highcharts-tracker\":\"\"),!0);g.attr({visibility:c})[h?\"attr\":\"animate\"](this.getPlotBox());return g},getPlotBox:function(){var a=this.chart,b=this.xAxis,c=this.yAxis;a.inverted&&(b=c,c=this.xAxis);\nreturn{translateX:b?b.left:a.plotLeft,translateY:c?c.top:a.plotTop,scaleX:1,scaleY:1}},render:function(){var a=this,b=a.chart,d,e=a.options,h=!!a.animate&&b.renderer.isSVG&&F(e.animation).duration,g=a.visible?\"inherit\":\"hidden\",f=e.zIndex,l=a.hasRendered,k=b.seriesGroup,p=b.inverted;d=a.plotGroup(\"group\",\"series\",g,f,k);a.markerGroup=a.plotGroup(\"markerGroup\",\"markers\",g,f,k);h&&a.animate(!0);d.inverted=a.isCartesian?p:!1;a.drawGraph&&(a.drawGraph(),a.applyZones());a.drawDataLabels&&a.drawDataLabels();\na.visible&&a.drawPoints();a.drawTracker&&!1!==a.options.enableMouseTracking&&a.drawTracker();a.invertGroups(p);!1===e.clip||a.sharedClipKey||l||d.clip(b.clipRect);h&&a.animate();l||(a.animationTimeout=B(function(){a.afterAnimate()},h));a.isDirty=!1;a.hasRendered=!0;c(a,\"afterRender\")},redraw:function(){var a=this.chart,b=this.isDirty||this.isDirtyData,c=this.group,d=this.xAxis,e=this.yAxis;c&&(a.inverted&&c.attr({width:a.plotWidth,height:a.plotHeight}),c.animate({translateX:v(d&&d.left,a.plotLeft),\ntranslateY:v(e&&e.top,a.plotTop)}));this.translate();this.render();b&&delete this.kdTree},kdAxisArray:[\"clientX\",\"plotY\"],searchPoint:function(a,b){var c=this.xAxis,d=this.yAxis,e=this.chart.inverted;return this.searchKDTree({clientX:e?c.len-a.chartY+c.pos:a.chartX-c.pos,plotY:e?d.len-a.chartX+d.pos:a.chartY-d.pos},b)},buildKDTree:function(){function a(c,d,g){var e,h;if(h=c&&c.length)return e=b.kdAxisArray[d%g],c.sort(function(a,b){return a[e]-b[e]}),h=Math.floor(h/2),{point:c[h],left:a(c.slice(0,\nh),d+1,g),right:a(c.slice(h+1),d+1,g)}}this.buildingKdTree=!0;var b=this,c=-1k?\"left\":\"right\";q=0>k?\"right\":\"left\";b[p]&&(p=c(a,b[p],f+1,l),r=p[h]n;)v--;this.updateParallelArrays(k,\"splice\",v,0,0);this.updateParallelArrays(k,v);g&&k.name&&(g[n]=k.name);m.splice(v,0,a);p&&(this.data.splice(v,0,null),this.processData());\"point\"===h.legendType&&\nthis.generatePoints();c&&(f[0]&&f[0].remove?f[0].remove(!1):(f.shift(),this.updateParallelArrays(k,\"shift\"),m.shift()));this.isDirtyData=this.isDirty=!0;b&&l.redraw(e)},removePoint:function(a,b,c){var e=this,h=e.data,f=h[a],m=e.points,g=e.chart,k=function(){m&&m.length===h.length&&m.splice(a,1);h.splice(a,1);e.options.data.splice(a,1);e.updateParallelArrays(f||{series:e},\"splice\",a,1);f&&f.destroy();e.isDirty=!0;e.isDirtyData=!0;b&&g.redraw()};l(c,g);b=d(b,!0);f?f.firePointEvent(\"remove\",null,k):\nk()},remove:function(a,b,c){function e(){h.destroy();h.remove=null;f.isDirtyLegend=f.isDirtyBox=!0;f.linkSeries();d(a,!0)&&f.redraw(b)}var h=this,f=h.chart;!1!==c?w(h,\"remove\",null,e):e()},update:function(b,c){var e=this,h=e.chart,f=e.userOptions,l=e.oldType||e.type,q=b.type||f.type||h.options.chart.type,g=J[l].prototype,p,v=[\"group\",\"markerGroup\",\"dataLabelsGroup\"],n=[\"navigatorSeries\",\"baseSeries\"],B=e.finishedAnimating&&{animation:!1},D=[\"data\",\"name\",\"turboThreshold\"],x=a.keys(b),L=0a&&t>e?(t=Math.max(a,e),y=2*e-t):tn&&y>e?(y=Math.max(n,e),t=2*e-y):y=Math.abs(e)&&.5a.closestPointRange*a.xAxis.transA,k=a.borderWidth=x(p.borderWidth,k?0:1),q=a.yAxis,d=p.threshold,b=a.translatedThreshold=q.getThreshold(d),v=x(p.minPointLength,5),n=a.getColumnMetrics(),l=n.width,\nu=a.barW=Math.max(l,1+2*k),B=a.pointXOffset=n.offset;e.inverted&&(b-=.5);p.pointPadding&&(u=Math.ceil(u));t.prototype.translate.apply(a);I(a.points,function(c){var h=x(c.yBottom,b),k=999+Math.abs(h),p=l,k=Math.min(Math.max(-k,c.plotY),q.len+k),n=c.plotX+B,t=u,g=Math.min(k,h),r,w=Math.max(k,h)-g;v&&Math.abs(w)v?h-v:b-(r?v:0));f(c.options.pointWidth)&&(p=t=Math.ceil(c.options.pointWidth),\nn-=Math.round((p-l)/2));c.barX=n;c.pointWidth=p;c.tooltipPos=e.inverted?[q.len+q.pos-e.plotLeft-k,a.xAxis.len-n-t/2,w]:[n+t/2,k+q.pos-e.plotTop,w];c.shapeType=\"rect\";c.shapeArgs=a.crispCol.apply(a,c.isNull?[n,b,t,0]:[n,g,t,w])})},getSymbol:a.noop,drawLegendSymbol:a.LegendSymbolMixin.drawRectangle,drawGraph:function(){this.group[this.dense?\"addClass\":\"removeClass\"](\"highcharts-dense-data\")},pointAttribs:function(a,e){var c=this.options,f,h=this.pointAttrToOptions||{};f=h.stroke||\"borderColor\";var d=\nh[\"stroke-width\"]||\"borderWidth\",b=a&&a.color||this.color,n=a&&a[f]||c[f]||this.color||b,t=a&&a[d]||c[d]||this[d]||0,h=c.dashStyle;a&&this.zones.length&&(b=a.getZone(),b=a.options.color||b&&b.color||this.color);e&&(a=u(c.states[e],a.options.states&&a.options.states[e]||{}),e=a.brightness,b=a.color||void 0!==e&&F(b).brighten(a.brightness).get()||b,n=a[f]||n,t=a[d]||t,h=a.dashStyle||h);f={fill:b,stroke:n,\"stroke-width\":t};h&&(f.dashstyle=h);return f},drawPoints:function(){var a=this,f=this.chart,p=\na.options,k=f.renderer,q=p.animationLimit||250,d;I(a.points,function(b){var c=b.graphic,h=c&&f.pointCounty;++y)c=t[y],a=2>y||2===y&&\n/%$/.test(c),t[y]=n(c,[x,e,w,t[2]][y])+(a?u:0);t[3]>t[2]&&(t[3]=t[2]);return t},getStartAndEndRadians:function(a,e){a=F(a)?a:0;e=F(e)&&e>a&&360>e-a?e:a+360;return{start:C*(a+-90),end:C*(e+-90)}}}})(K);(function(a){var C=a.addEvent,F=a.CenteredSeriesMixin,I=a.defined,n=a.each,f=a.extend,e=F.getStartAndEndRadians,u=a.inArray,x=a.noop,t=a.pick,w=a.Point,y=a.Series,c=a.seriesType,h=a.setAnimation;c(\"pie\",\"line\",{center:[null,null],clip:!1,colorByPoint:!0,dataLabels:{allowOverlap:!0,distance:30,enabled:!0,\nformatter:function(){return this.point.isNull?void 0:this.point.name},x:0},ignoreHiddenPoint:!0,legendType:\"point\",marker:null,size:null,showInLegend:!1,slicedOffset:10,stickyTracking:!1,tooltip:{followPointer:!0},borderColor:\"#ffffff\",borderWidth:1,states:{hover:{brightness:.1}}},{isCartesian:!1,requireSorting:!1,directTouch:!0,noSharedTooltip:!0,trackerGroups:[\"group\",\"dataLabelsGroup\"],axisTypes:[],pointAttribs:a.seriesTypes.column.prototype.pointAttribs,animate:function(a){var c=this,e=c.points,\nd=c.startAngleRad;a||(n(e,function(a){var b=a.graphic,e=a.shapeArgs;b&&(b.attr({r:a.startR||c.center[3]/2,start:d,end:d}),b.animate({r:e.r,start:e.start,end:e.end},c.options.animation))}),c.animate=null)},updateTotals:function(){var a,c=0,e=this.points,d=e.length,b,f=this.options.ignoreHiddenPoint;for(a=0;a1.5*Math.PI?l-=2*Math.PI:l<-Math.PI/2&&(l+=2*Math.PI);E.slicedTranslation={translateX:Math.round(Math.cos(l)*d),translateY:Math.round(Math.sin(l)*d)};n=Math.cos(l)*a[2]/\n2;m=Math.sin(l)*a[2]/2;E.tooltipPos=[a[0]+.7*n,a[1]+.7*m];E.half=l<-Math.PI/2||l>Math.PI/2?1:0;E.angle=l;h=Math.min(b,E.labelDistance/5);E.labelPos=[a[0]+n+Math.cos(l)*E.labelDistance,a[1]+m+Math.sin(l)*E.labelDistance,a[0]+n+Math.cos(l)*h,a[1]+m+Math.sin(l)*h,a[0]+n,a[1]+m,0>E.labelDistance?\"center\":E.half?\"right\":\"left\",l]}},drawGraph:null,drawPoints:function(){var a=this,c=a.chart.renderer,e,d,b,h,t=a.options.shadow;t&&!a.shadowGroup&&(a.shadowGroup=c.g(\"shadow\").add(a.group));n(a.points,function(l){d=\nl.graphic;if(l.isNull)d&&(l.graphic=d.destroy());else{h=l.shapeArgs;e=l.getTranslate();var k=l.shadowGroup;t&&!k&&(k=l.shadowGroup=c.g(\"shadow\").add(a.shadowGroup));k&&k.attr(e);b=a.pointAttribs(l,l.selected&&\"select\");d?d.setRadialReference(a.center).attr(b).animate(f(h,e)):(l.graphic=d=c[l.shapeType](h).setRadialReference(a.center).attr(e).add(a.group),d.attr(b).attr({\"stroke-linejoin\":\"round\"}).shadow(t,k));d.attr({visibility:l.visible?\"inherit\":\"hidden\"});d.addClass(l.getClassName())}})},searchPoint:x,\nsortByAngle:function(a,c){a.sort(function(a,d){return void 0!==a.angle&&(d.angle-a.angle)*c})},drawLegendSymbol:a.LegendSymbolMixin.drawRectangle,getCenter:F.getCenter,getSymbol:x},{init:function(){w.prototype.init.apply(this,arguments);var a=this,c;a.name=t(a.name,\"Slice\");c=function(c){a.slice(\"select\"===c.type)};C(a,\"select\",c);C(a,\"unselect\",c);return a},isValid:function(){return a.isNumber(this.y,!0)&&0<=this.y},setVisible:function(a,c){var e=this,d=e.series,b=d.chart,f=d.options.ignoreHiddenPoint;\nc=t(c,f);a!==e.visible&&(e.visible=e.options.visible=a=void 0===a?!e.visible:a,d.options.data[u(e,d.data)]=e.options,n([\"graphic\",\"dataLabel\",\"connector\",\"shadowGroup\"],function(b){if(e[b])e[b][a?\"show\":\"hide\"](!0)}),e.legendItem&&b.legend.colorizeItem(e,a),a||\"hover\"!==e.state||e.setState(\"\"),f&&(d.isDirty=!0),c&&b.redraw())},slice:function(a,c,e){var d=this.series;h(e,d.chart);t(c,!0);this.sliced=this.options.sliced=I(a)?a:!this.sliced;d.options.data[u(this,d.data)]=this.options;this.graphic.animate(this.getTranslate());\nthis.shadowGroup&&this.shadowGroup.animate(this.getTranslate())},getTranslate:function(){return this.sliced?this.slicedTranslation:{translateX:0,translateY:0}},haloPath:function(a){var c=this.shapeArgs;return this.sliced||!this.visible?[]:this.series.chart.renderer.symbols.arc(c.x,c.y,c.r+a,c.r+a,{innerR:this.shapeArgs.r-1,start:c.start,end:c.end})}})})(K);(function(a){var C=a.addEvent,F=a.arrayMax,I=a.defined,n=a.each,f=a.extend,e=a.format,u=a.map,x=a.merge,t=a.noop,w=a.pick,y=a.relativeLength,c=\na.Series,h=a.seriesTypes,p=a.some,k=a.stableSort,q=a.isArray,d=a.splat;a.distribute=function(b,c,d){function e(a,b){return a.target-b.target}var f,h=!0,q=b,m=[],v;v=0;var t=q.reducedLen||c;for(f=b.length;f--;)v+=b[f].size;if(v>t){k(b,function(a,b){return(b.rank||0)-(a.rank||0)});for(v=f=0;v<=t;)v+=b[f].size,f++;m=b.splice(f-1,b.length)}k(b,e);for(b=u(b,function(a){return{size:a.size,targets:[a.target],align:w(a.align,.5)}});h;){for(f=b.length;f--;)h=b[f],v=(Math.min.apply(0,h.targets)+Math.max.apply(0,\nh.targets))/2,h.pos=Math.min(Math.max(0,v-h.size*h.align),c-h.size);f=b.length;for(h=!1;f--;)0b[f].pos&&(b[f-1].size+=b[f].size,b[f-1].targets=b[f-1].targets.concat(b[f].targets),b[f-1].align=.5,b[f-1].pos+b[f-1].size>c&&(b[f-1].pos=c-b[f-1].size),b.splice(f,1),h=!0)}q.push.apply(q,m);f=0;p(b,function(b){var e=0;if(p(b.targets,function(){q[f].pos=b.pos+e;if(Math.abs(q[f].pos-q[f].target)>d)return n(q.slice(0,f+1),function(a){delete a.pos}),q.reducedLen=(q.reducedLen||c)-\n.1*c,q.reducedLen>.1*c&&a.distribute(q,c,d),!0;e+=q[f].size;f++}))return!0});k(q,e)};c.prototype.drawDataLabels=function(){function b(a,b){var c=b.filter;return c?(b=c.operator,a=a[c.property],c=c.value,\"\\x3e\"===b&&a>c||\"\\x3c\"===b&&a=c||\"\\x3c\\x3d\"===b&&a<=c||\"\\x3d\\x3d\"===b&&a==c||\"\\x3d\\x3d\\x3d\"===b&&a===c?!0:!1):!0}function c(a,b){var c=[],d;if(q(a)&&!q(b))c=u(a,function(a){return x(a,b)});else if(q(b)&&!q(a))c=u(b,function(b){return x(a,b)});else if(q(a)||q(b))for(d=Math.max(a.length,\nb.length);d--;)c[d]=x(a[d],b[d]);else c=x(a,b);return c}var f=this,h=f.chart,k=f.options,p=k.dataLabels,t=f.points,m,y=f.hasRendered||0,A,F=w(p.defer,!!k.animation),E=h.renderer,p=c(c(h.options.plotOptions&&h.options.plotOptions.series&&h.options.plotOptions.series.dataLabels,h.options.plotOptions&&h.options.plotOptions[f.type]&&h.options.plotOptions[f.type].dataLabels),p);if(q(p)||p.enabled||f._hasPointLabels)A=f.plotGroup(\"dataLabelsGroup\",\"data-labels\",F&&!y?\"hidden\":\"visible\",p.zIndex||6),F&&\n(A.attr({opacity:+y}),y||C(f,\"afterAnimate\",function(){f.visible&&A.show(!0);A[k.animation?\"animate\":\"attr\"]({opacity:1},{duration:200})})),n(t,function(g){m=d(c(p,g.dlOptions||g.options&&g.options.dataLabels));n(m,function(c,d){var l=c.enabled&&!g.isNull&&b(g,c),m,n,q,r,p=g.dataLabels?g.dataLabels[d]:g.dataLabel,v=g.connectors?g.connectors[d]:g.connector,t=!p;l&&(m=g.getLabelConfig(),n=c[g.formatPrefix+\"Format\"]||c.format,m=I(n)?e(n,m,h.time):(c[g.formatPrefix+\"Formatter\"]||c.formatter).call(m,c),\nn=c.style,q=c.rotation,n.color=w(c.color,n.color,f.color,\"#000000\"),\"contrast\"===n.color&&(g.contrastColor=E.getContrast(g.color||f.color),n.color=c.inside||0>w(c.distance,g.labelDistance)||k.stacking?g.contrastColor:\"#000000\"),k.cursor&&(n.cursor=k.cursor),r={fill:c.backgroundColor,stroke:c.borderColor,\"stroke-width\":c.borderWidth,r:c.borderRadius||0,rotation:q,padding:c.padding,zIndex:1},a.objectEach(r,function(a,b){void 0===a&&delete r[b]}));!p||l&&I(m)?l&&I(m)&&(p?r.text=m:(g.dataLabels=g.dataLabels||\n[],p=g.dataLabels[d]=q?E.text(m,0,-9999).addClass(\"highcharts-data-label\"):E.label(m,0,-9999,c.shape,null,null,c.useHTML,null,\"data-label\"),d||(g.dataLabel=p),p.addClass(\" highcharts-data-label-color-\"+g.colorIndex+\" \"+(c.className||\"\")+(c.useHTML?\" highcharts-tracker\":\"\"))),p.options=c,p.attr(r),p.css(n).shadow(c.shadow),p.added||p.add(A),f.alignDataLabel(g,p,c,null,t)):(g.dataLabel=g.dataLabel.destroy(),g.dataLabels&&(1===g.dataLabels.length?delete g.dataLabels:delete g.dataLabels[d]),d||delete g.dataLabel,\nv&&(g.connector=g.connector.destroy(),g.connectors&&(1===g.connectors.length?delete g.connectors:delete g.connectors[d])))})});a.fireEvent(this,\"afterDrawDataLabels\")};c.prototype.alignDataLabel=function(a,c,d,e,h){var b=this.chart,l=b.inverted,m=w(a.dlBox&&a.dlBox.centerX,a.plotX,-9999),k=w(a.plotY,-9999),n=c.getBBox(),q,p=d.rotation,g=d.align,r=this.visible&&(a.series.forceDL||b.isInsidePlot(m,Math.round(k),l)||e&&b.isInsidePlot(m,l?e.x+1:e.y+e.height-1,l)),v=\"justify\"===w(d.overflow,\"justify\");\nif(r&&(q=d.style.fontSize,q=b.renderer.fontMetrics(q,c).b,e=f({x:l?this.yAxis.len-k:m,y:Math.round(l?this.xAxis.len-m:k),width:0,height:0},e),f(d,{width:n.width,height:n.height}),p?(v=!1,m=b.renderer.rotCorr(q,p),m={x:e.x+d.x+e.width/2+m.x,y:e.y+d.y+{top:0,middle:.5,bottom:1}[d.verticalAlign]*e.height},c[h?\"attr\":\"animate\"](m).attr({align:g}),k=(p+720)%360,k=180k,\"left\"===g?m.y-=k?n.height:0:\"center\"===g?(m.x-=n.width/2,m.y-=n.height/2):\"right\"===g&&(m.x-=n.width,m.y-=k?0:n.height),c.placed=\n!0,c.alignAttr=m):(c.align(d,null,e),m=c.alignAttr),v&&0<=e.height?a.isLabelJustified=this.justifyDataLabel(c,d,m,n,e,h):w(d.crop,!0)&&(r=b.isInsidePlot(m.x,m.y)&&b.isInsidePlot(m.x+n.width,m.y+n.height)),d.shape&&!p))c[h?\"attr\":\"animate\"]({anchorX:l?b.plotWidth-a.plotY:a.plotX,anchorY:l?b.plotHeight-a.plotX:a.plotY});r||(c.attr({y:-9999}),c.placed=!1)};c.prototype.justifyDataLabel=function(a,c,d,e,f,h){var b=this.chart,l=c.align,k=c.verticalAlign,n,q,p=a.box?0:a.padding||0;n=d.x+p;0>n&&(\"right\"===\nl?c.align=\"left\":c.x=-n,q=!0);n=d.x+e.width-p;n>b.plotWidth&&(\"left\"===l?c.align=\"right\":c.x=b.plotWidth-n,q=!0);n=d.y+p;0>n&&(\"bottom\"===k?c.verticalAlign=\"top\":c.y=-n,q=!0);n=d.y+e.height-p;n>b.plotHeight&&(\"top\"===k?c.verticalAlign=\"bottom\":c.y=b.plotHeight-n,q=!0);q&&(a.placed=!h,a.align(c,null,f));return q};h.pie&&(h.pie.prototype.drawDataLabels=function(){var b=this,d=b.data,e,f=b.chart,h=b.options.dataLabels,k=w(h.connectorPadding,10),q=w(h.connectorWidth,1),m=f.plotWidth,p=f.plotHeight,t=\nMath.round(f.chartWidth/3),u,x=b.center,g=x[2]/2,r=x[1],y,C,H,K,Q=[[],[]],z,P,T,S,U=[0,0,0,0];b.visible&&(h.enabled||b._hasPointLabels)&&(n(d,function(a){a.dataLabel&&a.visible&&a.dataLabel.shortened&&(a.dataLabel.attr({width:\"auto\"}).css({width:\"auto\",textOverflow:\"clip\"}),a.dataLabel.shortened=!1)}),c.prototype.drawDataLabels.apply(b),n(d,function(a){a.dataLabel&&(a.visible?(Q[a.half].push(a),a.dataLabel._pos=null,!I(h.style.width)&&!I(a.options.dataLabels&&a.options.dataLabels.style&&a.options.dataLabels.style.width)&&\na.dataLabel.getBBox().width>t&&(a.dataLabel.css({width:.7*t}),a.dataLabel.shortened=!0)):(a.dataLabel=a.dataLabel.destroy(),a.dataLabels&&1===a.dataLabels.length&&delete a.dataLabels))}),n(Q,function(c,d){var l,q,t=c.length,v=[],u;if(t)for(b.sortByAngle(c,d-.5),0e.bottom-2?l:P,d,e),y._attr={visibility:T,align:H[6]},\ny._pos={x:z+h.x+({left:k,right:-k}[H[6]]||0),y:P+h.y-10},H.x=z,H.y=P,w(h.crop,!0)&&(C=y.getBBox().width,l=null,z-Cm-k&&0===d&&(l=Math.round(z+C-m+k),U[1]=Math.max(l,U[1])),0>P-K/2?U[0]=Math.max(Math.round(-P+K/2),U[0]):P+K/2>p&&(U[2]=Math.max(Math.round(P+K/2-p),U[2])),y.sideOverflow=l)}),0===F(U)||this.verifyDataLabelOverflow(U))&&(this.placeDataLabels(),q&&n(this.points,function(a){var c;u=a.connector;if((y=a.dataLabel)&&y._pos&&a.visible&&\n0w(this.translatedThreshold,l.yAxis.len)),n=w(e.inside,!!this.options.stacking);m&&(f=x(m),0>f.y&&(f.height+=f.y,f.y=0),m=f.y+f.height-l.yAxis.len,0a+b||f+kc+e||h+nthis.pointCount))},pan:function(a,b){var c=this,d=c.hoverPoints,e;d&&u(d,function(a){a.setState()});u(\"xy\"===b?[1,0]:[1],function(b){b=c[b?\"xAxis\":\"yAxis\"][0];var d=b.horiz,f=a[d?\"chartX\":\"chartY\"],d=d?\"mouseDownX\":\"mouseDownY\",h=c[d],g=(b.pointRange||\n0)/2,l=b.reversed&&!c.inverted||!b.reversed&&c.inverted?-1:1,m=b.getExtremes(),k=b.toValue(h-f,!0)+g*l,l=b.toValue(h+b.len-f,!0)-g*l,n=l=e(n.minWidth,0)&&this.chartHeight>=e(n.minHeight,0)}).call(this)&&f.push(a._id)};C.prototype.currentOptions=function(e){function t(e,c,h,p){var k;a.objectEach(e,function(a,d){if(!p&&-1